From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 14:51:41 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 14:51:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPqpf-0000i8-Gy; Mon, 04 Jun 2018 14:51:39 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=uma/=iw=citrix.com=prvs=6860a9805=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fPqpe-0000i3-St
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 14:51:39 +0000
X-Inumbo-ID: 771cd422-6806-11e8-9728-bc764e045a96
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id 771cd422-6806-11e8-9728-bc764e045a96;
 Mon, 04 Jun 2018 16:49:22 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.49,476,1520899200"; d="scan'208";a="74116576"
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/9] Update blkif.h to upstream
Thread-Index: AQHT9zULL03ETIORLEOpbeaucm0f8KRQOGbw
Date: Mon, 4 Jun 2018 14:51:31 +0000
Message-ID: <d6cc62e7e7514efcbecbff6344f0093b@AMSPEX02CL03.citrite.net>
References: <20180529100717.8340-1-owen.smith@citrix.com>
 <20180529100717.8340-2-owen.smith@citrix.com>
In-Reply-To: <20180529100717.8340-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
Subject: Re: [win-pv-devel] [PATCH 1/9] Update blkif.h to upstream
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjkgTWF5IDIwMTggMTE6MDcNCj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBj
aXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0ggMS85XSBVcGRhdGUg
YmxraWYuaCB0byB1cHN0cmVhbQ0KPiANCj4gVXBkYXRlcyBibGtpZi5oIHRvIHRoZSB2ZXJzaW9u
IGluIHhlbi5naXQgYXQgdGFnICI0LjExLjAtcmMzIg0KPiANCj4gQnkgb2JzZXJ2YXRpb24sIG1h
aW4gZGlmZmVyZW5jZXMgYXJlIHdoaXRlc3BhY2UgYW5kIGFuIGV4dHJhDQo+IGNvbW1lbnQgYmxv
Y2sgZGVzY3JpYmluZyBtdWx0aS1xdWV1ZSBjaGFuZ2VzDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBP
d2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+DQoNClRoZXJlIHNlZW1zIHRvIGJlIGEg
bG90IG9mIHdoaXRlc3BhY2UgZGFtYWdlIGhlcmUuIEknbGwgcmUtd29yayB0aGlzIHVzaW5nIHRo
ZSBnZXRfeGVuX2hlYWRlcnMucHkgc2NyaXB0IGFuZCBwdWxsIGluIGEgY29uc2lzdGVudCBzZXQg
b2YgdXBkYXRlZCBoZWFkZXJzLg0KDQogIFBhdWwNCg0KPiAtLS0NCj4gIGluY2x1ZGUveGVuL2lv
L2Jsa2lmLmggfCAxMTAwICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t
LQ0KPiAtLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCA1OTcgaW5zZXJ0aW9ucygrKSwgNTAzIGRl
bGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2lvL2Jsa2lmLmggYi9p
bmNsdWRlL3hlbi9pby9ibGtpZi5oDQo+IGluZGV4IGMzZTE2OWMuLmY2NTk4ODEgMTAwNjQ0DQo+
IC0tLSBhL2luY2x1ZGUveGVuL2lvL2Jsa2lmLmgNCj4gKysrIGIvaW5jbHVkZS94ZW4vaW8vYmxr
aWYuaA0KPiBAQCAtMSwyOSArMSwyOSBAQA0KPiANCj4gLyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gKioqKioqKioqKioqKioqKioq
KioNCj4gLSAqIGJsa2lmLmgNCj4gLSAqDQo+IC0gKiBVbmlmaWVkIGJsb2NrLWRldmljZSBJL08g
aW50ZXJmYWNlIGZvciBYZW4gZ3Vlc3QgT1Nlcy4NCj4gLSAqDQo+IC0gKiBQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg
YQ0KPiBjb3B5DQo+IC0gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50
YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8NCj4gLSAqIGRlYWwgaW4gdGhlIFNvZnR3
YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhl
DQo+IC0gKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0
cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3INCj4gLSAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0
d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlDQo+IGlzDQo+
IC0gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOg0KPiAtICoNCj4gLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluDQo+IC0gKiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4NCj4gLSAqDQo+IC0gKiBUSEUg
U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwNCj4gRVhQUkVTUyBPUg0KPiAtICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF
RCBUTyBUSEUgV0FSUkFOVElFUyBPRg0KPiBNRVJDSEFOVEFCSUxJVFksDQo+IC0gKiBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTw0KPiBF
VkVOVCBTSEFMTCBUSEUNCj4gLSAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB
QkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMNCj4gT1IgT1RIRVINCj4gLSAqIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLA0KPiBB
UklTSU5HDQo+IC0gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU
V0FSRSBPUiBUSEUgVVNFIE9SDQo+IE9USEVSDQo+IC0gKiBERUFMSU5HUyBJTiBUSEUgU09GVFdB
UkUuDQo+IC0gKg0KPiAtICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDQsIEtlaXIgRnJhc2VyDQo+
IC0gKiBDb3B5cmlnaHQgKGMpIDIwMTIsIFNwZWN0cmEgTG9naWMgQ29ycG9yYXRpb24NCj4gLSAq
Lw0KPiArKiBibGtpZi5oDQo+ICsqDQo+ICsqIFVuaWZpZWQgYmxvY2stZGV2aWNlIEkvTyBpbnRl
cmZhY2UgZm9yIFhlbiBndWVzdCBPU2VzLg0KPiArKg0KPiArKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQ0KPiBj
b3B5DQo+ICsqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm
aWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bw0KPiArKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRo
b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQ0KPiArKiBy
aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3INCj4gKyogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg
dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUNCj4gaXMNCj4gKyogZnVybmlz
aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNCj4gKyoN
Cj4gKyogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp
Y2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4NCj4gKyogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuDQo+ICsqDQo+ICsqIFRIRSBTT0ZUV0FSRSBJUyBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELA0KPiBFWFBSRVNTIE9S
DQo+ICsqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ
RVMgT0YNCj4gTUVSQ0hBTlRBQklMSVRZLA0KPiArKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTw0KPiBFVkVOVCBTSEFMTCBUSEUNCj4g
KyogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwg
REFNQUdFUw0KPiBPUiBPVEhFUg0KPiArKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O
IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwNCj4gQVJJU0lORw0KPiArKiBGUk9NLCBP
VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SDQo+
IE9USEVSDQo+ICsqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4NCj4gKyoNCj4gKyogQ29weXJp
Z2h0IChjKSAyMDAzLTIwMDQsIEtlaXIgRnJhc2VyDQo+ICsqIENvcHlyaWdodCAoYykgMjAxMiwg
U3BlY3RyYSBMb2dpYyBDb3Jwb3JhdGlvbg0KPiArKi8NCj4gDQo+ICAjaWZuZGVmIF9fWEVOX1BV
QkxJQ19JT19CTEtJRl9IX18NCj4gICNkZWZpbmUgX19YRU5fUFVCTElDX0lPX0JMS0lGX0hfXw0K
PiBAQCAtMzIsMTYgKzMyLDE2IEBADQo+ICAjaW5jbHVkZSAiLi4vZ3JhbnRfdGFibGUuaCINCj4g
DQo+ICAvKg0KPiAtICogRnJvbnQtPmJhY2sgbm90aWZpY2F0aW9uczogV2hlbiBlbnF1ZXVpbmcg
YSBuZXcgcmVxdWVzdCwgc2VuZGluZyBhDQo+IC0gKiBub3RpZmljYXRpb24gY2FuIGJlIG1hZGUg
Y29uZGl0aW9uYWwgb24gcmVxX2V2ZW50IChpLmUuLCB0aGUgZ2VuZXJpYw0KPiAtICogaG9sZC1v
ZmYgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3JvcykuIEJhY2tlbmRzIG11c3Qg
c2V0DQo+IC0gKiByZXFfZXZlbnQgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNpbmcNCj4gUklOR19G
SU5BTF9DSEVDS19GT1JfUkVRVUVTVFMoKSkuDQo+IC0gKg0KPiAtICogQmFjay0+ZnJvbnQgbm90
aWZpY2F0aW9uczogV2hlbiBlbnF1ZXVpbmcgYSBuZXcgcmVzcG9uc2UsIHNlbmRpbmcgYQ0KPiAt
ICogbm90aWZpY2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHJzcF9ldmVudCAoaS5l
LiwgdGhlIGdlbmVyaWMNCj4gLSAqIGhvbGQtb2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUg
cmluZyBtYWNyb3MpLiBGcm9udGVuZHMgbXVzdCBzZXQNCj4gLSAqIHJzcF9ldmVudCBhcHByb3By
aWF0ZWx5IChlLmcuLCB1c2luZw0KPiBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVNQT05TRVMoKSku
DQo+IC0gKi8NCj4gKyogRnJvbnQtPmJhY2sgbm90aWZpY2F0aW9uczogV2hlbiBlbnF1ZXVpbmcg
YSBuZXcgcmVxdWVzdCwgc2VuZGluZyBhDQo+ICsqIG5vdGlmaWNhdGlvbiBjYW4gYmUgbWFkZSBj
b25kaXRpb25hbCBvbiByZXFfZXZlbnQgKGkuZS4sIHRoZSBnZW5lcmljDQo+ICsqIGhvbGQtb2Zm
IG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmluZyBtYWNyb3MpLiBCYWNrZW5kcyBtdXN0IHNl
dA0KPiArKiByZXFfZXZlbnQgYXBwcm9wcmlhdGVseSAoZS5nLiwgdXNpbmcNCj4gUklOR19GSU5B
TF9DSEVDS19GT1JfUkVRVUVTVFMoKSkuDQo+ICsqDQo+ICsqIEJhY2stPmZyb250IG5vdGlmaWNh
dGlvbnM6IFdoZW4gZW5xdWV1aW5nIGEgbmV3IHJlc3BvbnNlLCBzZW5kaW5nIGENCj4gKyogbm90
aWZpY2F0aW9uIGNhbiBiZSBtYWRlIGNvbmRpdGlvbmFsIG9uIHJzcF9ldmVudCAoaS5lLiwgdGhl
IGdlbmVyaWMNCj4gKyogaG9sZC1vZmYgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHRoZSByaW5nIG1h
Y3JvcykuIEZyb250ZW5kcyBtdXN0IHNldA0KPiArKiByc3BfZXZlbnQgYXBwcm9wcmlhdGVseSAo
ZS5nLiwgdXNpbmcNCj4gUklOR19GSU5BTF9DSEVDS19GT1JfUkVTUE9OU0VTKCkpLg0KPiArKi8N
Cj4gDQo+ICAjaWZuZGVmIGJsa2lmX3ZkZXZfdA0KPiAgI2RlZmluZSBibGtpZl92ZGV2X3QgICB1
aW50MTZfdA0KPiBAQCAtNDksNDg3ICs0OSw1ODEgQEANCj4gICNkZWZpbmUgYmxraWZfc2VjdG9y
X3QgdWludDY0X3QNCj4gDQo+ICAvKg0KPiAtICogRmVhdHVyZSBhbmQgUGFyYW1ldGVyIE5lZ290
aWF0aW9uDQo+IC0gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gLSAqIFRo
ZSB0d28gaGFsdmVzIG9mIGEgWGVuIGJsb2NrIGRyaXZlciB1dGlsaXplIG5vZGVzIHdpdGhpbiB0
aGUgWGVuU3RvcmUgdG8NCj4gLSAqIGNvbW11bmljYXRlIGNhcGFiaWxpdGllcyBhbmQgdG8gbmVn
b3RpYXRlIG9wZXJhdGluZyBwYXJhbWV0ZXJzLiAgVGhpcw0KPiAtICogc2VjdGlvbiBlbnVtZXJh
dGVzIHRoZXNlIG5vZGVzIHdoaWNoIHJlc2lkZSBpbiB0aGUgcmVzcGVjdGl2ZSBmcm9udCBhbmQN
Cj4gLSAqIGJhY2tlbmQgcG9ydGlvbnMgb2YgdGhlIFhlblN0b3JlLCBmb2xsb3dpbmcgdGhlIFhl
bkJ1cyBjb252ZW50aW9uLg0KPiAtICoNCj4gLSAqIEFsbCBkYXRhIGluIHRoZSBYZW5TdG9yZSBp
cyBzdG9yZWQgYXMgc3RyaW5ncy4gIE5vZGVzIHNwZWNpZnlpbmcgbnVtZXJpYw0KPiAtICogdmFs
dWVzIGFyZSBlbmNvZGVkIGluIGRlY2ltYWwuICBJbnRlZ2VyIHZhbHVlIHJhbmdlcyBsaXN0ZWQg
YmVsb3cgYXJlDQo+IC0gKiBleHByZXNzZWQgYXMgZml4ZWQgc2l6ZWQgaW50ZWdlciB0eXBlcyBj
YXBhYmxlIG9mIHN0b3JpbmcgdGhlIGNvbnZlcnNpb24NCj4gLSAqIG9mIGEgcHJvcGVybHkgZm9y
bWF0ZWQgbm9kZSBzdHJpbmcsIHdpdGhvdXQgbG9zcyBvZiBpbmZvcm1hdGlvbi4NCj4gLSAqDQo+
IC0gKiBBbnkgc3BlY2lmaWVkIGRlZmF1bHQgdmFsdWUgaXMgaW4gZWZmZWN0IGlmIHRoZSBjb3Jy
ZXNwb25kaW5nIFhlbkJ1cyBub2RlDQo+IC0gKiBpcyBub3QgcHJlc2VudCBpbiB0aGUgWGVuU3Rv
cmUuDQo+IC0gKg0KPiAtICogWGVuU3RvcmUgbm9kZXMgaW4gc2VjdGlvbnMgbWFya2VkICJQUklW
QVRFIiBhcmUgc29sZWx5IGZvciB1c2UgYnkgdGhlDQo+IC0gKiBkcml2ZXIgc2lkZSB3aG9zZSBY
ZW5CdXMgdHJlZSBjb250YWlucyB0aGVtLg0KPiAtICoNCj4gLSAqIFhlblN0b3JlIG5vZGVzIG1h
cmtlZCAiREVQUkVDQVRFRCIgaW4gdGhlaXIgbm90ZXMgc2VjdGlvbiBzaG91bGQgb25seQ0KPiBi
ZQ0KPiAtICogdXNlZCB0byBwcm92aWRlIGludGVyb3BlcmFiaWxpdHkgd2l0aCBsZWdhY3kgaW1w
bGVtZW50YXRpb25zLg0KPiAtICoNCj4gLSAqIFNlZSB0aGUgWGVuQnVzIHN0YXRlIHRyYW5zaXRp
b24gZGlhZ3JhbSBiZWxvdyBmb3IgZGV0YWlscyBvbiB3aGVuDQo+IFhlbkJ1cw0KPiAtICogbm9k
ZXMgbXVzdCBiZSBwdWJsaXNoZWQgYW5kIHdoZW4gdGhleSBjYW4gYmUgcXVlcmllZC4NCj4gLSAq
DQo+IC0NCj4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKg0KPiAqKioqKioqKioqKioqKioqKioqDQo+IC0gKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBCYWNrZW5kIFhlbkJ1cyBOb2Rlcw0KPiAtDQo+ICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gKioqKioqKioqKioq
KioqKioqKg0KPiAtICoNCj4gLSAqLS0tLS0tLS0tLS0tLS0tLS0tIEJhY2tlbmQgRGV2aWNlIElk
ZW50aWZpY2F0aW9uIChQUklWQVRFKSAtLS0tLS0tLS0tLS0tLS0tLS0NCj4gLSAqDQo+IC0gKiBt
b2RlDQo+IC0gKiAgICAgIFZhbHVlczogICAgICAgICAiciIgKHJlYWQgb25seSksICJ3IiAod3Jp
dGFibGUpDQo+IC0gKg0KPiAtICogICAgICBUaGUgcmVhZCBvciB3cml0ZSBhY2Nlc3MgcGVybWlz
c2lvbnMgdG8gdGhlIGJhY2tpbmcgc3RvcmUgdG8gYmUNCj4gLSAqICAgICAgZ3JhbnRlZCB0byB0
aGUgZnJvbnRlbmQuDQo+IC0gKg0KPiAtICogcGFyYW1zDQo+IC0gKiAgICAgIFZhbHVlczogICAg
ICAgICBzdHJpbmcNCj4gLSAqDQo+IC0gKiAgICAgIEEgZnJlZSBmb3JtYXR0ZWQgc3RyaW5nIHBy
b3ZpZGluZyBzdWZmaWNpZW50IGluZm9ybWF0aW9uIGZvciB0aGUNCj4gLSAqICAgICAgYmFja2Vu
ZCBkcml2ZXIgdG8gb3BlbiB0aGUgYmFja2luZyBkZXZpY2UuICAoZS5nLiB0aGUgcGF0aCB0byB0
aGUNCj4gLSAqICAgICAgZmlsZSBvciBibG9jayBkZXZpY2UgcmVwcmVzZW50aW5nIHRoZSBiYWNr
aW5nIHN0b3JlLikNCj4gLSAqDQo+IC0gKiB0eXBlDQo+IC0gKiAgICAgIFZhbHVlczogICAgICAg
ICAiZmlsZSIsICJwaHkiLCAidGFwIg0KPiAtICoNCj4gLSAqICAgICAgVGhlIHR5cGUgb2YgdGhl
IGJhY2tpbmcgZGV2aWNlL29iamVjdC4NCj4gLSAqDQo+IC0gKi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBGZWF0dXJlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
Cj4gLSAqDQo+IC0gKiBmZWF0dXJlLWJhcnJpZXINCj4gLSAqICAgICAgVmFsdWVzOiAgICAgICAg
IDAvMSAoYm9vbGVhbikNCj4gLSAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDANCj4gLSAqDQo+IC0g
KiAgICAgIEEgdmFsdWUgb2YgIjEiIGluZGljYXRlcyB0aGF0IHRoZSBiYWNrZW5kIGNhbiBwcm9j
ZXNzIHJlcXVlc3RzDQo+IC0gKiAgICAgIGNvbnRhaW5pbmcgdGhlIEJMS0lGX09QX1dSSVRFX0JB
UlJJRVIgcmVxdWVzdCBvcGNvZGUuICBSZXF1ZXN0cw0KPiAtICogICAgICBvZiB0aGlzIHR5cGUg
bWF5IHN0aWxsIGJlIHJldHVybmVkIGF0IGFueSB0aW1lIHdpdGggdGhlDQo+IC0gKiAgICAgIEJM
S0lGX1JTUF9FT1BOT1RTVVBQIHJlc3VsdCBjb2RlLg0KPiAtICoNCj4gLSAqIGZlYXR1cmUtZmx1
c2gtY2FjaGUNCj4gLSAqICAgICAgVmFsdWVzOiAgICAgICAgIDAvMSAoYm9vbGVhbikNCj4gLSAq
ICAgICAgRGVmYXVsdCBWYWx1ZTogIDANCj4gLSAqDQo+IC0gKiAgICAgIEEgdmFsdWUgb2YgIjEi
IGluZGljYXRlcyB0aGF0IHRoZSBiYWNrZW5kIGNhbiBwcm9jZXNzIHJlcXVlc3RzDQo+IC0gKiAg
ICAgIGNvbnRhaW5pbmcgdGhlIEJMS0lGX09QX0ZMVVNIX0RJU0tDQUNIRSByZXF1ZXN0IG9wY29k
ZS4NCj4gUmVxdWVzdHMNCj4gLSAqICAgICAgb2YgdGhpcyB0eXBlIG1heSBzdGlsbCBiZSByZXR1
cm5lZCBhdCBhbnkgdGltZSB3aXRoIHRoZQ0KPiAtICogICAgICBCTEtJRl9SU1BfRU9QTk9UU1VQ
UCByZXN1bHQgY29kZS4NCj4gLSAqDQo+IC0gKiBmZWF0dXJlLWRpc2NhcmQNCj4gLSAqICAgICAg
VmFsdWVzOiAgICAgICAgIDAvMSAoYm9vbGVhbikNCj4gLSAqICAgICAgRGVmYXVsdCBWYWx1ZTog
IDANCj4gLSAqDQo+IC0gKiAgICAgIEEgdmFsdWUgb2YgIjEiIGluZGljYXRlcyB0aGF0IHRoZSBi
YWNrZW5kIGNhbiBwcm9jZXNzIHJlcXVlc3RzDQo+IC0gKiAgICAgIGNvbnRhaW5pbmcgdGhlIEJM
S0lGX09QX0RJU0NBUkQgcmVxdWVzdCBvcGNvZGUuICBSZXF1ZXN0cw0KPiAtICogICAgICBvZiB0
aGlzIHR5cGUgbWF5IHN0aWxsIGJlIHJldHVybmVkIGF0IGFueSB0aW1lIHdpdGggdGhlDQo+IC0g
KiAgICAgIEJMS0lGX1JTUF9FT1BOT1RTVVBQIHJlc3VsdCBjb2RlLg0KPiAtICoNCj4gLSAqIGZl
YXR1cmUtcGVyc2lzdGVudA0KPiAtICogICAgICBWYWx1ZXM6ICAgICAgICAgMC8xIChib29sZWFu
KQ0KPiAtICogICAgICBEZWZhdWx0IFZhbHVlOiAgMA0KPiAtICogICAgICBOb3RlczogNw0KPiAt
ICoNCj4gLSAqICAgICAgQSB2YWx1ZSBvZiAiMSIgaW5kaWNhdGVzIHRoYXQgdGhlIGJhY2tlbmQg
Y2FuIGtlZXAgdGhlIGdyYW50cyB1c2VkDQo+IC0gKiAgICAgIGJ5IHRoZSBmcm9udGVuZCBkcml2
ZXIgbWFwcGVkLCBzbyB0aGUgc2FtZSBzZXQgb2YgZ3JhbnRzIHNob3VsZCBiZQ0KPiAtICogICAg
ICB1c2VkIGluIGFsbCB0cmFuc2FjdGlvbnMuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBncmFudHMg
dGhlIGJhY2tlbmQNCj4gLSAqICAgICAgY2FuIG1hcCBwZXJzaXN0ZW50bHkgZGVwZW5kcyBvbiB0
aGUgaW1wbGVtZW50YXRpb24sIGJ1dCBpZGVhbGx5IGl0DQo+IC0gKiAgICAgIHNob3VsZCBiZSBS
SU5HX1NJWkUgKiBCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVFU1QuIFVzaW5nDQo+IHRoaXMN
Cj4gLSAqICAgICAgZmVhdHVyZSB0aGUgYmFja2VuZCBkb2Vzbid0IG5lZWQgdG8gdW5tYXAgZWFj
aCBncmFudCwgcHJldmVudGluZw0KPiAtICogICAgICBjb3N0bHkgVExCIGZsdXNoZXMuIFRoZSBi
YWNrZW5kIGRyaXZlciBzaG91bGQgb25seSBtYXAgZ3JhbnRzDQo+IC0gKiAgICAgIHBlcnNpc3Rl
bnRseSBpZiB0aGUgZnJvbnRlbmQgc3VwcG9ydHMgaXQuIElmIGEgYmFja2VuZCBkcml2ZXIgY2hv
b3Nlcw0KPiAtICogICAgICB0byB1c2UgdGhlIHBlcnNpc3RlbnQgcHJvdG9jb2wgd2hlbiB0aGUg
ZnJvbnRlbmQgZG9lc24ndCBzdXBwb3J0IGl0LA0KPiAtICogICAgICBpdCB3aWxsIHByb2JhYmx5
IGhpdCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcGVyc2lzdGVudGx5IG1hcHBlZCBncmFudHMNCj4g
LSAqICAgICAgKGR1ZSB0byB0aGUgZmFjdCB0aGF0IHRoZSBmcm9udGVuZCB3b24ndCBiZSByZXVz
aW5nIHRoZSBzYW1lIGdyYW50cyksDQo+IC0gKiAgICAgIGFuZCBmYWxsIGJhY2sgdG8gbm9uLXBl
cnNpc3RlbnQgbW9kZS4gQmFja2VuZCBpbXBsZW1lbnRhdGlvbnMgbWF5DQo+IC0gKiAgICAgIHNo
cmluayBvciBleHBhbmQgdGhlIG51bWJlciBvZiBwZXJzaXN0ZW50bHkgbWFwcGVkIGdyYW50cyB3
aXRob3V0DQo+IC0gKiAgICAgIG5vdGlmeWluZyB0aGUgZnJvbnRlbmQgZGVwZW5kaW5nIG9uIG1l
bW9yeSBjb25zdHJhaW50cyAodGhpcyBtaWdodA0KPiAtICogICAgICBjYXVzZSBhIHBlcmZvcm1h
bmNlIGRlZ3JhZGF0aW9uKS4NCj4gLSAqDQo+IC0gKiAgICAgIElmIGEgYmFja2VuZCBkcml2ZXIg
d2FudHMgdG8gbGltaXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBlcnNpc3RlbnRseQ0KPiAtICog
ICAgICBtYXBwZWQgZ3JhbnRzIHRvIGEgdmFsdWUgbGVzcyB0aGFuIFJJTkdfU0laRSAqDQo+IC0g
KiAgICAgIEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVCBhIExSVSBzdHJhdGVneSBzaG91
bGQgYmUgdXNlZA0KPiB0bw0KPiAtICogICAgICBkaXNjYXJkIHRoZSBncmFudHMgdGhhdCBhcmUg
bGVzcyBjb21tb25seSB1c2VkLiBVc2luZyBhIExSVSBpbiB0aGUNCj4gLSAqICAgICAgYmFja2Vu
ZCBkcml2ZXIgcGFpcmVkIHdpdGggYSBMSUZPIHF1ZXVlIGluIHRoZSBmcm9udGVuZCB3aWxsDQo+
IC0gKiAgICAgIGFsbG93IHVzIHRvIGhhdmUgYmV0dGVyIHBlcmZvcm1hbmNlIGluIHRoaXMgc2Nl
bmFyaW8uDQo+IC0gKg0KPiAtICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXF1ZXN0IFRyYW5z
cG9ydCBQYXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtICoNCj4gLSAqIG1h
eC1yaW5nLXBhZ2Utb3JkZXINCj4gLSAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4N
Cj4gLSAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDANCj4gLSAqICAgICAgTm90ZXM6ICAgICAgICAg
IDEsIDMNCj4gLSAqDQo+IC0gKiAgICAgIFRoZSBtYXhpbXVtIHN1cHBvcnRlZCBzaXplIG9mIHRo
ZSByZXF1ZXN0IHJpbmcgYnVmZmVyIGluIHVuaXRzIG9mDQo+IC0gKiAgICAgIGxiKG1hY2hpbmUg
cGFnZXMpLiAoZS5nLiAwID09IDEgcGFnZSwgIDEgPSAyIHBhZ2VzLCAyID09IDQgcGFnZXMsDQo+
IC0gKiAgICAgIGV0Yy4pLg0KPiAtICoNCj4gLSAqIG1heC1yaW5nLXBhZ2VzDQo+IC0gKiAgICAg
IFZhbHVlczogICAgICAgICA8dWludDMyX3Q+DQo+IC0gKiAgICAgIERlZmF1bHQgVmFsdWU6ICAx
DQo+IC0gKiAgICAgIE5vdGVzOiAgICAgICAgICBERVBSRUNBVEVELCAyLCAzDQo+IC0gKg0KPiAt
ICogICAgICBUaGUgbWF4aW11bSBzdXBwb3J0ZWQgc2l6ZSBvZiB0aGUgcmVxdWVzdCByaW5nIGJ1
ZmZlciBpbiB1bml0cyBvZg0KPiAtICogICAgICBtYWNoaW5lIHBhZ2VzLiAgVGhlIHZhbHVlIG11
c3QgYmUgYSBwb3dlciBvZiAyLg0KPiAtICoNCj4gLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBCYWNrZW5kIERldmljZSBQcm9wZXJ0aWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g
LSAqDQo+IC0gKiBkaXNjYXJkLWFsaWdubWVudA0KPiAtICogICAgICBWYWx1ZXM6ICAgICAgICAg
PHVpbnQzMl90Pg0KPiAtICogICAgICBEZWZhdWx0IFZhbHVlOiAgMA0KPiAtICogICAgICBOb3Rl
czogICAgICAgICAgNCwgNQ0KPiAtICoNCj4gLSAqICAgICAgVGhlIG9mZnNldCwgaW4gYnl0ZXMg
ZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSB2aXJ0dWFsIGJsb2NrIGRldmljZSwNCj4gLSAqICAg
ICAgdG8gdGhlIGZpcnN0LCBhZGRyZXNzYWJsZSwgZGlzY2FyZCBleHRlbnQgb24gdGhlIHVuZGVy
bHlpbmcgZGV2aWNlLg0KPiAtICoNCj4gLSAqIGRpc2NhcmQtZ3JhbnVsYXJpdHkNCj4gLSAqICAg
ICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4NCj4gLSAqICAgICAgRGVmYXVsdCBWYWx1ZTog
IDwic2VjdG9yLXNpemUiPg0KPiAtICogICAgICBOb3RlczogICAgICAgICAgNA0KPiAtICoNCj4g
LSAqICAgICAgVGhlIHNpemUsIGluIGJ5dGVzLCBvZiB0aGUgaW5kaXZpZHVhbGx5IGFkZHJlc3Nh
YmxlIGRpc2NhcmQgZXh0ZW50cw0KPiAtICogICAgICBvZiB0aGUgdW5kZXJseWluZyBkZXZpY2Uu
DQo+IC0gKg0KPiAtICogZGlzY2FyZC1zZWN1cmUNCj4gLSAqICAgICAgVmFsdWVzOiAgICAgICAg
IDAvMSAoYm9vbGVhbikNCj4gLSAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDANCj4gLSAqICAgICAg
Tm90ZXM6ICAgICAgICAgIDEwDQo+IC0gKg0KPiAtICogICAgICBBIHZhbHVlIG9mICIxIiBpbmRp
Y2F0ZXMgdGhhdCB0aGUgYmFja2VuZCBjYW4gcHJvY2Vzcw0KPiBCTEtJRl9PUF9ESVNDQVJEDQo+
IC0gKiAgICAgIHJlcXVlc3RzIHdpdGggdGhlIEJMS0lGX0RJU0NBUkRfU0VDVVJFIGZsYWcgc2V0
Lg0KPiAtICoNCj4gLSAqIGluZm8NCj4gLSAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJf
dD4gKGJpdG1hcCkNCj4gLSAqDQo+IC0gKiAgICAgIEEgY29sbGVjdGlvbiBvZiBiaXQgZmxhZ3Mg
ZGVzY3JpYmluZyBhdHRyaWJ1dGVzIG9mIHRoZSBiYWNraW5nDQo+IC0gKiAgICAgIGRldmljZS4g
IFRoZSBWRElTS18qIG1hY3JvcyBkZWZpbmUgdGhlIG1lYW5pbmcgb2YgZWFjaCBiaXQNCj4gLSAq
ICAgICAgbG9jYXRpb24uDQo+IC0gKg0KPiAtICogc2VjdG9yLXNpemUNCj4gLSAqICAgICAgVmFs
dWVzOiAgICAgICAgIDx1aW50MzJfdD4NCj4gLSAqDQo+IC0gKiAgICAgIFRoZSBsb2dpY2FsIHNl
Y3RvciBzaXplLCBpbiBieXRlcywgb2YgdGhlIGJhY2tlbmQgZGV2aWNlLg0KPiAtICoNCj4gLSAq
IHBoeXNpY2FsLXNlY3Rvci1zaXplDQo+IC0gKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMy
X3Q+DQo+IC0gKg0KPiAtICogICAgICBUaGUgcGh5c2ljYWwgc2VjdG9yIHNpemUsIGluIGJ5dGVz
LCBvZiB0aGUgYmFja2VuZCBkZXZpY2UuDQo+IC0gKg0KPiAtICogc2VjdG9ycw0KPiAtICogICAg
ICBWYWx1ZXM6ICAgICAgICAgPHVpbnQ2NF90Pg0KPiAtICoNCj4gLSAqICAgICAgVGhlIHNpemUg
b2YgdGhlIGJhY2tlbmQgZGV2aWNlLCBleHByZXNzZWQgaW4gdW5pdHMgb2YgaXRzIGxvZ2ljYWwN
Cj4gLSAqICAgICAgc2VjdG9yIHNpemUgKCJzZWN0b3Itc2l6ZSIpLg0KPiAtICoNCj4gLQ0KPiAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
DQo+ICoqKioqKioqKioqKioqKioqKioNCj4gLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEZyb250ZW5kIFhlbkJ1cyBOb2Rlcw0KPiAtDQo+ICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gKioqKioqKioqKioqKioqKioqKg0K
PiAtICoNCj4gLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVxdWVzdCBUcmFuc3BvcnQgUGFy
YW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtICoNCj4gLSAqIGV2ZW50LWNoYW5u
ZWwNCj4gLSAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4NCj4gLSAqDQo+IC0gKiAg
ICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBYZW4gZXZlbnQgY2hhbm5lbCB1c2VkIHRvIHNpZ25h
bCBhY3Rpdml0eQ0KPiAtICogICAgICBpbiB0aGUgcmluZyBidWZmZXIuDQo+IC0gKg0KPiAtICog
cmluZy1yZWYNCj4gLSAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4NCj4gLSAqICAg
ICAgTm90ZXM6ICAgICAgICAgIDYNCj4gLSAqDQo+IC0gKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVm
ZXJlbmNlIGdyYW50aW5nIHBlcm1pc3Npb24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcA0KPiAtICog
ICAgICB0aGUgc29sZSBwYWdlIGluIGEgc2luZ2xlIHBhZ2Ugc2l6ZWQgcmluZyBidWZmZXIuDQo+
IC0gKg0KPiAtICogcmluZy1yZWYldQ0KPiAtICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQz
Ml90Pg0KPiAtICogICAgICBOb3RlczogICAgICAgICAgNg0KPiAtICoNCj4gLSAqICAgICAgRm9y
IGEgZnJvbnRlbmQgcHJvdmlkaW5nIGEgbXVsdGktcGFnZSByaW5nLCBhICJudW1iZXIgb2Ygcmlu
ZyBwYWdlcyINCj4gLSAqICAgICAgc2l6ZWQgbGlzdCBvZiBub2RlcywgZWFjaCBjb250YWluaW5n
IGEgWGVuIGdyYW50IHJlZmVyZW5jZSBncmFudGluZw0KPiAtICogICAgICBwZXJtaXNzaW9uIGZv
ciB0aGUgYmFja2VuZCB0byBtYXAgdGhlIHBhZ2Ugb2YgdGhlIHJpbmcgbG9jYXRlZA0KPiAtICog
ICAgICBhdCBwYWdlIGluZGV4ICIldSIuICBQYWdlIGluZGV4ZXMgYXJlIHplcm8gYmFzZWQuDQo+
IC0gKg0KPiAtICogcHJvdG9jb2wNCj4gLSAqICAgICAgVmFsdWVzOiAgICAgICAgIHN0cmluZyAo
WEVOX0lPX1BST1RPX0FCSV8qKQ0KPiAtICogICAgICBEZWZhdWx0IFZhbHVlOiAgWEVOX0lPX1BS
T1RPX0FCSV9OQVRJVkUNCj4gLSAqDQo+IC0gKiAgICAgIFRoZSBtYWNoaW5lIEFCSSBydWxlcyBn
b3Zlcm5pbmcgdGhlIGZvcm1hdCBvZiBhbGwgcmluZyByZXF1ZXN0IGFuZA0KPiAtICogICAgICBy
ZXNwb25zZSBzdHJ1Y3R1cmVzLg0KPiAtICoNCj4gLSAqIHJpbmctcGFnZS1vcmRlcg0KPiAtICog
ICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pg0KPiAtICogICAgICBEZWZhdWx0IFZhbHVl
OiAgMA0KPiAtICogICAgICBNYXhpbXVtIFZhbHVlOiAgTUFYKGZmcyhtYXgtcmluZy1wYWdlcykg
LSAxLCBtYXgtcmluZy1wYWdlLW9yZGVyKQ0KPiAtICogICAgICBOb3RlczogICAgICAgICAgMSwg
Mw0KPiAtICoNCj4gLSAqICAgICAgVGhlIHNpemUgb2YgdGhlIGZyb250ZW5kIGFsbG9jYXRlZCBy
ZXF1ZXN0IHJpbmcgYnVmZmVyIGluIHVuaXRzDQo+IC0gKiAgICAgIG9mIGxiKG1hY2hpbmUgcGFn
ZXMpLiAoZS5nLiAwID09IDEgcGFnZSwgMSA9IDIgcGFnZXMsIDIgPT0gNCBwYWdlcywNCj4gLSAq
ICAgICAgZXRjLikuDQo+IC0gKg0KPiAtICogbnVtLXJpbmctcGFnZXMNCj4gLSAqICAgICAgVmFs
dWVzOiAgICAgICAgIDx1aW50MzJfdD4NCj4gLSAqICAgICAgRGVmYXVsdCBWYWx1ZTogIDENCj4g
LSAqICAgICAgTWF4aW11bSBWYWx1ZTogIE1BWChtYXgtcmluZy1wYWdlcywoMHgxIDw8IG1heC1y
aW5nLXBhZ2Utb3JkZXIpKQ0KPiAtICogICAgICBOb3RlczogICAgICAgICAgREVQUkVDQVRFRCwg
MiwgMw0KPiAtICoNCj4gLSAqICAgICAgVGhlIHNpemUgb2YgdGhlIGZyb250ZW5kIGFsbG9jYXRl
ZCByZXF1ZXN0IHJpbmcgYnVmZmVyIGluIHVuaXRzIG9mDQo+IC0gKiAgICAgIG1hY2hpbmUgcGFn
ZXMuICBUaGUgdmFsdWUgbXVzdCBiZSBhIHBvd2VyIG9mIDIuDQo+IC0gKg0KPiAtICogZmVhdHVy
ZS1wZXJzaXN0ZW50DQo+IC0gKiAgICAgIFZhbHVlczogICAgICAgICAwLzEgKGJvb2xlYW4pDQo+
IC0gKiAgICAgIERlZmF1bHQgVmFsdWU6ICAwDQo+IC0gKiAgICAgIE5vdGVzOiA3LCA4LCA5DQo+
IC0gKg0KPiAtICogICAgICBBIHZhbHVlIG9mICIxIiBpbmRpY2F0ZXMgdGhhdCB0aGUgZnJvbnRl
bmQgd2lsbCByZXVzZSB0aGUgc2FtZSBncmFudHMNCj4gLSAqICAgICAgZm9yIGFsbCB0cmFuc2Fj
dGlvbnMsIGFsbG93aW5nIHRoZSBiYWNrZW5kIHRvIG1hcCB0aGVtIHdpdGggd3JpdGUNCj4gLSAq
ICAgICAgYWNjZXNzIChldmVuIHdoZW4gaXQgc2hvdWxkIGJlIHJlYWQtb25seSkuIElmIHRoZSBm
cm9udGVuZCBoaXRzIHRoZQ0KPiAtICogICAgICBtYXhpbXVtIG51bWJlciBvZiBhbGxvd2VkIHBl
cnNpc3RlbnRseSBtYXBwZWQgZ3JhbnRzLCBpdCBjYW4NCj4gZmFsbGJhY2sNCj4gLSAqICAgICAg
dG8gbm9uIHBlcnNpc3RlbnQgbW9kZS4gVGhpcyB3aWxsIGNhdXNlIGEgcGVyZm9ybWFuY2UgZGVn
cmFkYXRpb24sDQo+IC0gKiAgICAgIHNpbmNlIHRoZSB0aGUgYmFja2VuZCBkcml2ZXIgd2lsbCBz
dGlsbCB0cnkgdG8gbWFwIHRob3NlIGdyYW50cw0KPiAtICogICAgICBwZXJzaXN0ZW50bHkuIFNp
bmNlIHRoZSBwZXJzaXN0ZW50IGdyYW50cyBwcm90b2NvbCBpcyBjb21wYXRpYmxlIHdpdGgNCj4g
LSAqICAgICAgdGhlIHByZXZpb3VzIHByb3RvY29sLCBhIGZyb250ZW5kIGRyaXZlciBjYW4gY2hv
b3NlIHRvIHdvcmsgaW4NCj4gLSAqICAgICAgcGVyc2lzdGVudCBtb2RlIGV2ZW4gd2hlbiB0aGUg
YmFja2VuZCBkb2Vzbid0IHN1cHBvcnQgaXQuDQo+IC0gKg0KPiAtICogICAgICBJdCBpcyByZWNv
bW1lbmRlZCB0aGF0IHRoZSBmcm9udGVuZCBkcml2ZXIgc3RvcmVzIHRoZSBwZXJzaXN0ZW50bHkN
Cj4gLSAqICAgICAgbWFwcGVkIGdyYW50cyBpbiBhIExJRk8gcXVldWUsIHNvIGEgc3Vic2V0IG9m
IGFsbCBwZXJzaXN0ZW50bHkgbWFwcGVkDQo+IC0gKiAgICAgIGdyYW50cyBnZXRzIHVzZWQgY29t
bW9ubHkuIFRoaXMgaXMgZG9uZSBpbiBjYXNlIHRoZSBiYWNrZW5kIGRyaXZlcg0KPiAtICogICAg
ICBkZWNpZGVzIHRvIGxpbWl0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBwZXJzaXN0ZW50bHkgbWFw
cGVkIGdyYW50cw0KPiAtICogICAgICB0byBhIHZhbHVlIGxlc3MgdGhhbiBSSU5HX1NJWkUgKg0K
PiBCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVFU1QuDQo+IC0gKg0KPiAtICotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIFZpcnR1YWwgRGV2aWNlIFByb3BlcnRpZXMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KPiAtICoNCj4gLSAqIGRldmljZS10eXBlDQo+IC0gKiAgICAgIFZhbHVlczog
ICAgICAgICAiZGlzayIsICJjZHJvbSIsICJmbG9wcHkiLCBldGMuDQo+IC0gKg0KPiAtICogdmly
dHVhbC1kZXZpY2UNCj4gLSAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4NCj4gLSAq
DQo+IC0gKiAgICAgIEEgdmFsdWUgaW5kaWNhdGluZyB0aGUgcGh5c2ljYWwgZGV2aWNlIHRvIHZp
cnR1YWxpemUgd2l0aGluIHRoZQ0KPiAtICogICAgICBmcm9udGVuZCdzIGRvbWFpbi4gIChlLmcu
ICJUaGUgZmlyc3QgQVRBIGRpc2siLCAiVGhlIHRoaXJkIFNDU0kNCj4gLSAqICAgICAgZGlzayIs
IGV0Yy4pDQo+IC0gKg0KPiAtICogICAgICBTZWUgZG9jcy9taXNjL3ZiZC1pbnRlcmZhY2UudHh0
IGZvciBkZXRhaWxzIG9uIHRoZSBmb3JtYXQgb2YgdGhpcw0KPiAtICogICAgICB2YWx1ZS4NCj4g
LSAqDQo+IC0gKiBOb3Rlcw0KPiAtICogLS0tLS0NCj4gLSAqICgxKSBNdWx0aS1wYWdlIHJpbmcg
YnVmZmVyIHNjaGVtZSBmaXJzdCBkZXZlbG9wZWQgaW4gdGhlIENpdHJpeCBYZW5TZXJ2ZXINCj4g
LSAqICAgICBQViBkcml2ZXJzLg0KPiAtICogKDIpIE11bHRpLXBhZ2UgcmluZyBidWZmZXIgc2No
ZW1lIGZpcnN0IHVzZWQgaW4gc29tZSBSZWRIYXQgZGlzdHJpYnV0aW9ucw0KPiAtICogICAgIGlu
Y2x1ZGluZyBhIGRpc3RyaWJ1dGlvbiBkZXBsb3llZCBvbiBjZXJ0YWluIG5vZGVzIG9mIHRoZSBB
bWF6b24NCj4gLSAqICAgICBFQzIgY2x1c3Rlci4NCj4gLSAqICgzKSBTdXBwb3J0IGZvciBtdWx0
aS1wYWdlIHJpbmcgYnVmZmVycyB3YXMgaW1wbGVtZW50ZWQgaW5kZXBlbmRlbnRseSwNCj4gLSAq
ICAgICBpbiBzbGlnaHRseSBkaWZmZXJlbnQgZm9ybXMsIGJ5IGJvdGggQ2l0cml4IGFuZCBSZWRI
YXQvQW1hem9uLg0KPiAtICogICAgIEZvciBmdWxsIGludGVyb3BlcmFiaWxpdHksIGJsb2NrIGZy
b250IGFuZCBiYWNrZW5kcyBzaG91bGQgcHVibGlzaA0KPiAtICogICAgIGlkZW50aWNhbCByaW5n
IHBhcmFtZXRlcnMsIGFkanVzdGVkIGZvciB1bml0IGRpZmZlcmVuY2VzLCB0byB0aGUNCj4gLSAq
ICAgICBYZW5TdG9yZSBub2RlcyB1c2VkIGluIGJvdGggc2NoZW1lcy4NCj4gLSAqICg0KSBEZXZp
Y2VzIHRoYXQgc3VwcG9ydCBkaXNjYXJkIGZ1bmN0aW9uYWxpdHkgbWF5IGludGVybmFsbHkgYWxs
b2NhdGUgc3BhY2UNCj4gLSAqICAgICAoZGlzY2FyZGFibGUgZXh0ZW50cykgaW4gdW5pdHMgdGhh
dCBhcmUgbGFyZ2VyIHRoYW4gdGhlIGV4cG9ydGVkIGxvZ2ljYWwNCj4gLSAqICAgICBibG9jayBz
aXplLiBJZiB0aGUgYmFja2luZyBkZXZpY2UgaGFzIHN1Y2ggZGlzY2FyZGFibGUgZXh0ZW50cyB0
aGUNCj4gLSAqICAgICBiYWNrZW5kIHNob3VsZCBwcm92aWRlIGJvdGggZGlzY2FyZC1ncmFudWxh
cml0eSBhbmQgZGlzY2FyZC1hbGlnbm1lbnQuDQo+IC0gKiAgICAgUHJvdmlkaW5nIGp1c3Qgb25l
IG9mIHRoZSB0d28gbWF5IGJlIGNvbnNpZGVyZWQgYW4gZXJyb3IgYnkgdGhlDQo+IGZyb250ZW5k
Lg0KPiAtICogICAgIEJhY2tlbmRzIHN1cHBvcnRpbmcgZGlzY2FyZCBzaG91bGQgaW5jbHVkZSBk
aXNjYXJkLWdyYW51bGFyaXR5IGFuZA0KPiAtICogICAgIGRpc2NhcmQtYWxpZ25tZW50IGV2ZW4g
aWYgaXQgc3VwcG9ydHMgZGlzY2FyZGluZyBpbmRpdmlkdWFsIHNlY3RvcnMuDQo+IC0gKiAgICAg
RnJvbnRlbmRzIHNob3VsZCBhc3N1bWUgZGlzY2FyZC1hbGlnbm1lbnQgPT0gMCBhbmQgZGlzY2Fy
ZC0NCj4gZ3JhbnVsYXJpdHkNCj4gLSAqICAgICA9PSBzZWN0b3Igc2l6ZSBpZiB0aGVzZSBrZXlz
IGFyZSBtaXNzaW5nLg0KPiAtICogKDUpIFRoZSBkaXNjYXJkLWFsaWdubWVudCBwYXJhbWV0ZXIg
YWxsb3dzIGEgcGh5c2ljYWwgZGV2aWNlIHRvIGJlDQo+IC0gKiAgICAgcGFydGl0aW9uZWQgaW50
byB2aXJ0dWFsIGRldmljZXMgdGhhdCBkbyBub3QgbmVjZXNzYXJpbHkgYmVnaW4gb3INCj4gLSAq
ICAgICBlbmQgb24gYSBkaXNjYXJkYWJsZSBleHRlbnQgYm91bmRhcnkuDQo+IC0gKiAoNikgV2hl
biB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHBhZ2UgYWxsb2NhdGVkIHRvIHRoZSByZXF1ZXN0IHJp
bmcsDQo+IC0gKiAgICAgJ3JpbmctcmVmJyBpcyB1c2VkIHRvIGNvbW11bmljYXRlIHRoZSBncmFu
dCByZWZlcmVuY2UgZm9yIHRoaXMNCj4gLSAqICAgICBwYWdlIHRvIHRoZSBiYWNrZW5kLiAgV2hl
biB1c2luZyBhIG11bHRpLXBhZ2UgcmluZywgdGhlICdyaW5nLXJlZicNCj4gLSAqICAgICBub2Rl
IGlzIG5vdCBjcmVhdGVkLiAgSW5zdGVhZCAncmluZy1yZWYwJyAtICdyaW5nLXJlZk4nIGFyZSB1
c2VkLg0KPiAtICogKDcpIFdoZW4gdXNpbmcgcGVyc2lzdGVudCBncmFudHMgZGF0YSBoYXMgdG8g
YmUgY29waWVkIGZyb20vdG8gdGhlIHBhZ2UNCj4gLSAqICAgICB3aGVyZSB0aGUgZ3JhbnQgaXMg
Y3VycmVudGx5IG1hcHBlZC4gVGhlIG92ZXJoZWFkIG9mIGRvaW5nIHRoaXMgY29weQ0KPiAtICog
ICAgIGhvd2V2ZXIgZG9lc24ndCBzdXBwcmVzcyB0aGUgc3BlZWQgaW1wcm92ZW1lbnQgb2Ygbm90
IGhhdmluZyB0bw0KPiB1bm1hcA0KPiAtICogICAgIHRoZSBncmFudHMuDQo+IC0gKiAoOCkgVGhl
IGZyb250ZW5kIGRyaXZlciBoYXMgdG8gYWxsb3cgdGhlIGJhY2tlbmQgZHJpdmVyIHRvIG1hcCBh
bGwgZ3JhbnRzDQo+IC0gKiAgICAgd2l0aCB3cml0ZSBhY2Nlc3MsIGV2ZW4gd2hlbiB0aGV5IHNo
b3VsZCBiZSBtYXBwZWQgcmVhZC1vbmx5LCBzaW5jZQ0KPiAtICogICAgIGZ1cnRoZXIgcmVxdWVz
dHMgbWF5IHJldXNlIHRoZXNlIGdyYW50cyBhbmQgcmVxdWlyZSB3cml0ZSBwZXJtaXNzaW9ucy4N
Cj4gLSAqICg5KSBMaW51eCBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGhhdmUgYSBsaW1pdCBvbiB0
aGUgbWF4aW11bSBudW1iZXIgb2YNCj4gLSAqICAgICBncmFudHMgdGhhdCBjYW4gYmUgcGVyc2lz
dGVudGx5IG1hcHBlZCBpbiB0aGUgZnJvbnRlbmQgZHJpdmVyLCBidXQNCj4gLSAqICAgICBkdWUg
dG8gdGhlIGZyb250ZW50IGRyaXZlciBpbXBsZW1lbnRhdGlvbiBpdCBzaG91bGQgbmV2ZXIgYmUg
YmlnZ2VyDQo+IC0gKiAgICAgdGhhbiBSSU5HX1NJWkUgKiBCTEtJRl9NQVhfU0VHTUVOVFNfUEVS
X1JFUVVFU1QuDQo+IC0gKigxMCkgVGhlIGRpc2NhcmQtc2VjdXJlIHByb3BlcnR5IG1heSBiZSBw
cmVzZW50IGFuZCB3aWxsIGJlIHNldCB0byAxIGlmIHRoZQ0KPiAtICogICAgIGJhY2tpbmcgZGV2
aWNlIHN1cHBvcnRzIHNlY3VyZSBkaXNjYXJkLg0KPiAtICovDQo+ICsqIEZlYXR1cmUgYW5kIFBh
cmFtZXRlciBOZWdvdGlhdGlvbg0KPiArKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCj4gKyogVGhlIHR3byBoYWx2ZXMgb2YgYSBYZW4gYmxvY2sgZHJpdmVyIHV0aWxpemUgbm9k
ZXMgd2l0aGluIHRoZSBYZW5TdG9yZSB0bw0KPiArKiBjb21tdW5pY2F0ZSBjYXBhYmlsaXRpZXMg
YW5kIHRvIG5lZ290aWF0ZSBvcGVyYXRpbmcgcGFyYW1ldGVycy4gIFRoaXMNCj4gKyogc2VjdGlv
biBlbnVtZXJhdGVzIHRoZXNlIG5vZGVzIHdoaWNoIHJlc2lkZSBpbiB0aGUgcmVzcGVjdGl2ZSBm
cm9udCBhbmQNCj4gKyogYmFja2VuZCBwb3J0aW9ucyBvZiB0aGUgWGVuU3RvcmUsIGZvbGxvd2lu
ZyB0aGUgWGVuQnVzIGNvbnZlbnRpb24uDQo+ICsqDQo+ICsqIEFsbCBkYXRhIGluIHRoZSBYZW5T
dG9yZSBpcyBzdG9yZWQgYXMgc3RyaW5ncy4gIE5vZGVzIHNwZWNpZnlpbmcgbnVtZXJpYw0KPiAr
KiB2YWx1ZXMgYXJlIGVuY29kZWQgaW4gZGVjaW1hbC4gIEludGVnZXIgdmFsdWUgcmFuZ2VzIGxp
c3RlZCBiZWxvdyBhcmUNCj4gKyogZXhwcmVzc2VkIGFzIGZpeGVkIHNpemVkIGludGVnZXIgdHlw
ZXMgY2FwYWJsZSBvZiBzdG9yaW5nIHRoZSBjb252ZXJzaW9uDQo+ICsqIG9mIGEgcHJvcGVybHkg
Zm9ybWF0ZWQgbm9kZSBzdHJpbmcsIHdpdGhvdXQgbG9zcyBvZiBpbmZvcm1hdGlvbi4NCj4gKyoN
Cj4gKyogQW55IHNwZWNpZmllZCBkZWZhdWx0IHZhbHVlIGlzIGluIGVmZmVjdCBpZiB0aGUgY29y
cmVzcG9uZGluZyBYZW5CdXMgbm9kZQ0KPiArKiBpcyBub3QgcHJlc2VudCBpbiB0aGUgWGVuU3Rv
cmUuDQo+ICsqDQo+ICsqIFhlblN0b3JlIG5vZGVzIGluIHNlY3Rpb25zIG1hcmtlZCAiUFJJVkFU
RSIgYXJlIHNvbGVseSBmb3IgdXNlIGJ5IHRoZQ0KPiArKiBkcml2ZXIgc2lkZSB3aG9zZSBYZW5C
dXMgdHJlZSBjb250YWlucyB0aGVtLg0KPiArKg0KPiArKiBYZW5TdG9yZSBub2RlcyBtYXJrZWQg
IkRFUFJFQ0FURUQiIGluIHRoZWlyIG5vdGVzIHNlY3Rpb24gc2hvdWxkIG9ubHkNCj4gYmUNCj4g
KyogdXNlZCB0byBwcm92aWRlIGludGVyb3BlcmFiaWxpdHkgd2l0aCBsZWdhY3kgaW1wbGVtZW50
YXRpb25zLg0KPiArKg0KPiArKiBTZWUgdGhlIFhlbkJ1cyBzdGF0ZSB0cmFuc2l0aW9uIGRpYWdy
YW0gYmVsb3cgZm9yIGRldGFpbHMgb24gd2hlbg0KPiBYZW5CdXMNCj4gKyogbm9kZXMgbXVzdCBi
ZSBwdWJsaXNoZWQgYW5kIHdoZW4gdGhleSBjYW4gYmUgcXVlcmllZC4NCj4gKyoNCj4gKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiAq
KioqKioqKioqKioqKioqKioqKg0KPiArKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNr
ZW5kIFhlbkJ1cyBOb2Rlcw0KPiArKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqDQo+ICoqKioqKioqKioqKioqKioqKioqDQo+ICsqDQo+ICsq
LS0tLS0tLS0tLS0tLS0tLS0tIEJhY2tlbmQgRGV2aWNlIElkZW50aWZpY2F0aW9uIChQUklWQVRF
KSAtLS0tLS0tLS0tLS0tLS0tLS0NCj4gKyoNCj4gKyogbW9kZQ0KPiArKiAgICAgIFZhbHVlczog
ICAgICAgICAiciIgKHJlYWQgb25seSksICJ3IiAod3JpdGFibGUpDQo+ICsqDQo+ICsqICAgICAg
VGhlIHJlYWQgb3Igd3JpdGUgYWNjZXNzIHBlcm1pc3Npb25zIHRvIHRoZSBiYWNraW5nIHN0b3Jl
IHRvIGJlDQo+ICsqICAgICAgZ3JhbnRlZCB0byB0aGUgZnJvbnRlbmQuDQo+ICsqDQo+ICsqIHBh
cmFtcw0KPiArKiAgICAgIFZhbHVlczogICAgICAgICBzdHJpbmcNCj4gKyoNCj4gKyogICAgICBB
IGZyZWUgZm9ybWF0dGVkIHN0cmluZyBwcm92aWRpbmcgc3VmZmljaWVudCBpbmZvcm1hdGlvbiBm
b3IgdGhlDQo+ICsqICAgICAgaG90cGx1ZyBzY3JpcHQgdG8gYXR0YWNoIHRoZSBkZXZpY2UgYW5k
IHByb3ZpZGUgYSBzdWl0YWJsZQ0KPiArKiAgICAgIGhhbmRsZXIgKGllOiBhIGJsb2NrIGRldmlj
ZSkgZm9yIGJsa2JhY2sgdG8gdXNlLg0KPiArKg0KPiArKiBwaHlzaWNhbC1kZXZpY2UNCj4gKyog
ICAgICBWYWx1ZXM6ICAgICAgICAgIk1BSk9SOk1JTk9SIg0KPiArKiAgICAgIE5vdGVzOiAxMQ0K
PiArKg0KPiArKiAgICAgIE1BSk9SIGFuZCBNSU5PUiBhcmUgdGhlIG1ham9yIG51bWJlciBhbmQg
bWlub3IgbnVtYmVyIG9mIHRoZQ0KPiArKiAgICAgIGJhY2tpbmcgZGV2aWNlIHJlc3BlY3RpdmVs
eS4NCj4gKyoNCj4gKyogcGh5c2ljYWwtZGV2aWNlLXBhdGgNCj4gKyogICAgICBWYWx1ZXM6ICAg
ICAgICAgcGF0aCBzdHJpbmcNCj4gKyoNCj4gKyogICAgICBBIHN0cmluZyB0aGF0IGNvbnRhaW5z
IHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBkaXNrIGltYWdlLiBPbg0KPiArKiAgICAgIE5ldEJT
RCBhbmQgTGludXggdGhpcyBpcyBhbHdheXMgYSBibG9jayBkZXZpY2UsIHdoaWxlIG9uIEZyZWVC
U0QNCj4gKyogICAgICBpdCBjYW4gYmUgZWl0aGVyIGEgYmxvY2sgZGV2aWNlIG9yIGEgcmVndWxh
ciBmaWxlLg0KPiArKg0KPiArKiB0eXBlDQo+ICsqICAgICAgVmFsdWVzOiAgICAgICAgICJmaWxl
IiwgInBoeSIsICJ0YXAiDQo+ICsqDQo+ICsqICAgICAgVGhlIHR5cGUgb2YgdGhlIGJhY2tpbmcg
ZGV2aWNlL29iamVjdC4NCj4gKyoNCj4gKyoNCj4gKyogZGlyZWN0LWlvLXNhZmUNCj4gKyogICAg
ICBWYWx1ZXM6ICAgICAgICAgMC8xIChib29sZWFuKQ0KPiArKiAgICAgIERlZmF1bHQgVmFsdWU6
ICAwDQo+ICsqDQo+ICsqICAgICAgVGhlIHVuZGVybHlpbmcgc3RvcmFnZSBpcyBub3QgYWZmZWN0
ZWQgYnkgdGhlIGRpcmVjdCBJTyBtZW1vcnkNCj4gKyogICAgICBsaWZldGltZSBidWcuICBTZWU6
DQo+ICsqICAgICAgICBodHRwOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZl
bC8yMDEyLTEyL21zZzAxMTU0Lmh0bWwNCj4gKyoNCj4gKyogICAgICBUaGVyZWZvcmUgdGhpcyBv
cHRpb24gZ2l2ZXMgdGhlIGJhY2tlbmQgcGVybWlzc2lvbiB0byB1c2UNCj4gKyogICAgICBPX0RJ
UkVDVCwgbm90d2l0aHN0YW5kaW5nIHRoYXQgYnVnLg0KPiArKg0KPiArKiAgICAgIFRoYXQgaXMs
IGlmIHRoaXMgb3B0aW9uIGlzIGVuYWJsZWQsIHVzZSBvZiBPX0RJUkVDVCBpcyBzYWZlLA0KPiAr
KiAgICAgIGluIGNpcmN1bXN0YW5jZXMgd2hlcmUgd2Ugd291bGQgbm9ybWFsbHkgaGF2ZSBhdm9p
ZGVkIGl0IGFzIGENCj4gKyogICAgICB3b3JrYXJvdW5kIGZvciB0aGF0IGJ1Zy4gIFRoaXMgb3B0
aW9uIGlzIG5vdCByZWxldmFudCBmb3IgYWxsDQo+ICsqICAgICAgYmFja2VuZHMsIGFuZCBldmVu
IG5vdCBuZWNlc3NhcmlseSBzdXBwb3J0ZWQgZm9yIHRob3NlIGZvcg0KPiArKiAgICAgIHdoaWNo
IGl0IGlzIHJlbGV2YW50LiAgQSBiYWNrZW5kIHdoaWNoIGtub3dzIHRoYXQgaXQgaXMgbm90DQo+
ICsqICAgICAgYWZmZWN0ZWQgYnkgdGhlIGJ1ZyBjYW4gaWdub3JlIHRoaXMgb3B0aW9uLg0KPiAr
Kg0KPiArKiAgICAgIFRoaXMgb3B0aW9uIGRvZXNuJ3QgcmVxdWlyZSBhIGJhY2tlbmQgdG8gdXNl
IE9fRElSRUNULCBzbyBpdA0KPiArKiAgICAgIHNob3VsZCBub3QgYmUgdXNlZCB0byB0cnkgdG8g
Y29udHJvbCB0aGUgY2FjaGluZyBiZWhhdmlvdXIuDQo+ICsqDQo+ICsqLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIEZlYXR1cmVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KPiArKg0KPiArKiBmZWF0dXJlLWJhcnJpZXINCj4gKyogICAgICBWYWx1ZXM6ICAgICAg
ICAgMC8xIChib29sZWFuKQ0KPiArKiAgICAgIERlZmF1bHQgVmFsdWU6ICAwDQo+ICsqDQo+ICsq
ICAgICAgQSB2YWx1ZSBvZiAiMSIgaW5kaWNhdGVzIHRoYXQgdGhlIGJhY2tlbmQgY2FuIHByb2Nl
c3MgcmVxdWVzdHMNCj4gKyogICAgICBjb250YWluaW5nIHRoZSBCTEtJRl9PUF9XUklURV9CQVJS
SUVSIHJlcXVlc3Qgb3Bjb2RlLiAgUmVxdWVzdHMNCj4gKyogICAgICBvZiB0aGlzIHR5cGUgbWF5
IHN0aWxsIGJlIHJldHVybmVkIGF0IGFueSB0aW1lIHdpdGggdGhlDQo+ICsqICAgICAgQkxLSUZf
UlNQX0VPUE5PVFNVUFAgcmVzdWx0IGNvZGUuDQo+ICsqDQo+ICsqIGZlYXR1cmUtZmx1c2gtY2Fj
aGUNCj4gKyogICAgICBWYWx1ZXM6ICAgICAgICAgMC8xIChib29sZWFuKQ0KPiArKiAgICAgIERl
ZmF1bHQgVmFsdWU6ICAwDQo+ICsqDQo+ICsqICAgICAgQSB2YWx1ZSBvZiAiMSIgaW5kaWNhdGVz
IHRoYXQgdGhlIGJhY2tlbmQgY2FuIHByb2Nlc3MgcmVxdWVzdHMNCj4gKyogICAgICBjb250YWlu
aW5nIHRoZSBCTEtJRl9PUF9GTFVTSF9ESVNLQ0FDSEUgcmVxdWVzdCBvcGNvZGUuDQo+IFJlcXVl
c3RzDQo+ICsqICAgICAgb2YgdGhpcyB0eXBlIG1heSBzdGlsbCBiZSByZXR1cm5lZCBhdCBhbnkg
dGltZSB3aXRoIHRoZQ0KPiArKiAgICAgIEJMS0lGX1JTUF9FT1BOT1RTVVBQIHJlc3VsdCBjb2Rl
Lg0KPiArKg0KPiArKiBmZWF0dXJlLWRpc2NhcmQNCj4gKyogICAgICBWYWx1ZXM6ICAgICAgICAg
MC8xIChib29sZWFuKQ0KPiArKiAgICAgIERlZmF1bHQgVmFsdWU6ICAwDQo+ICsqDQo+ICsqICAg
ICAgQSB2YWx1ZSBvZiAiMSIgaW5kaWNhdGVzIHRoYXQgdGhlIGJhY2tlbmQgY2FuIHByb2Nlc3Mg
cmVxdWVzdHMNCj4gKyogICAgICBjb250YWluaW5nIHRoZSBCTEtJRl9PUF9ESVNDQVJEIHJlcXVl
c3Qgb3Bjb2RlLiAgUmVxdWVzdHMNCj4gKyogICAgICBvZiB0aGlzIHR5cGUgbWF5IHN0aWxsIGJl
IHJldHVybmVkIGF0IGFueSB0aW1lIHdpdGggdGhlDQo+ICsqICAgICAgQkxLSUZfUlNQX0VPUE5P
VFNVUFAgcmVzdWx0IGNvZGUuDQo+ICsqDQo+ICsqIGZlYXR1cmUtcGVyc2lzdGVudA0KPiArKiAg
ICAgIFZhbHVlczogICAgICAgICAwLzEgKGJvb2xlYW4pDQo+ICsqICAgICAgRGVmYXVsdCBWYWx1
ZTogIDANCj4gKyogICAgICBOb3RlczogNw0KPiArKg0KPiArKiAgICAgIEEgdmFsdWUgb2YgIjEi
IGluZGljYXRlcyB0aGF0IHRoZSBiYWNrZW5kIGNhbiBrZWVwIHRoZSBncmFudHMgdXNlZA0KPiAr
KiAgICAgIGJ5IHRoZSBmcm9udGVuZCBkcml2ZXIgbWFwcGVkLCBzbyB0aGUgc2FtZSBzZXQgb2Yg
Z3JhbnRzIHNob3VsZCBiZQ0KPiArKiAgICAgIHVzZWQgaW4gYWxsIHRyYW5zYWN0aW9ucy4gVGhl
IG1heGltdW0gbnVtYmVyIG9mIGdyYW50cyB0aGUgYmFja2VuZA0KPiArKiAgICAgIGNhbiBtYXAg
cGVyc2lzdGVudGx5IGRlcGVuZHMgb24gdGhlIGltcGxlbWVudGF0aW9uLCBidXQgaWRlYWxseSBp
dA0KPiArKiAgICAgIHNob3VsZCBiZSBSSU5HX1NJWkUgKiBCTEtJRl9NQVhfU0VHTUVOVFNfUEVS
X1JFUVVFU1QuIFVzaW5nDQo+IHRoaXMNCj4gKyogICAgICBmZWF0dXJlIHRoZSBiYWNrZW5kIGRv
ZXNuJ3QgbmVlZCB0byB1bm1hcCBlYWNoIGdyYW50LCBwcmV2ZW50aW5nDQo+ICsqICAgICAgY29z
dGx5IFRMQiBmbHVzaGVzLiBUaGUgYmFja2VuZCBkcml2ZXIgc2hvdWxkIG9ubHkgbWFwIGdyYW50
cw0KPiArKiAgICAgIHBlcnNpc3RlbnRseSBpZiB0aGUgZnJvbnRlbmQgc3VwcG9ydHMgaXQuIElm
IGEgYmFja2VuZCBkcml2ZXIgY2hvb3Nlcw0KPiArKiAgICAgIHRvIHVzZSB0aGUgcGVyc2lzdGVu
dCBwcm90b2NvbCB3aGVuIHRoZSBmcm9udGVuZCBkb2Vzbid0IHN1cHBvcnQgaXQsDQo+ICsqICAg
ICAgaXQgd2lsbCBwcm9iYWJseSBoaXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBlcnNpc3RlbnRs
eSBtYXBwZWQgZ3JhbnRzDQo+ICsqICAgICAgKGR1ZSB0byB0aGUgZmFjdCB0aGF0IHRoZSBmcm9u
dGVuZCB3b24ndCBiZSByZXVzaW5nIHRoZSBzYW1lIGdyYW50cyksDQo+ICsqICAgICAgYW5kIGZh
bGwgYmFjayB0byBub24tcGVyc2lzdGVudCBtb2RlLiBCYWNrZW5kIGltcGxlbWVudGF0aW9ucyBt
YXkNCj4gKyogICAgICBzaHJpbmsgb3IgZXhwYW5kIHRoZSBudW1iZXIgb2YgcGVyc2lzdGVudGx5
IG1hcHBlZCBncmFudHMgd2l0aG91dA0KPiArKiAgICAgIG5vdGlmeWluZyB0aGUgZnJvbnRlbmQg
ZGVwZW5kaW5nIG9uIG1lbW9yeSBjb25zdHJhaW50cyAodGhpcyBtaWdodA0KPiArKiAgICAgIGNh
dXNlIGEgcGVyZm9ybWFuY2UgZGVncmFkYXRpb24pLg0KPiArKg0KPiArKiAgICAgIElmIGEgYmFj
a2VuZCBkcml2ZXIgd2FudHMgdG8gbGltaXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBlcnNpc3Rl
bnRseQ0KPiArKiAgICAgIG1hcHBlZCBncmFudHMgdG8gYSB2YWx1ZSBsZXNzIHRoYW4gUklOR19T
SVpFICoNCj4gKyogICAgICBCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVFU1QgYSBMUlUgc3Ry
YXRlZ3kgc2hvdWxkIGJlIHVzZWQNCj4gdG8NCj4gKyogICAgICBkaXNjYXJkIHRoZSBncmFudHMg
dGhhdCBhcmUgbGVzcyBjb21tb25seSB1c2VkLiBVc2luZyBhIExSVSBpbiB0aGUNCj4gKyogICAg
ICBiYWNrZW5kIGRyaXZlciBwYWlyZWQgd2l0aCBhIExJRk8gcXVldWUgaW4gdGhlIGZyb250ZW5k
IHdpbGwNCj4gKyogICAgICBhbGxvdyB1cyB0byBoYXZlIGJldHRlciBwZXJmb3JtYW5jZSBpbiB0
aGlzIHNjZW5hcmlvLg0KPiArKg0KPiArKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlcXVlc3Qg
VHJhbnNwb3J0IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsqDQo+ICsq
IG1heC1yaW5nLXBhZ2Utb3JkZXINCj4gKyogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90
Pg0KPiArKiAgICAgIERlZmF1bHQgVmFsdWU6ICAwDQo+ICsqICAgICAgTm90ZXM6ICAgICAgICAg
IDEsIDMNCj4gKyoNCj4gKyogICAgICBUaGUgbWF4aW11bSBzdXBwb3J0ZWQgc2l6ZSBvZiB0aGUg
cmVxdWVzdCByaW5nIGJ1ZmZlciBpbiB1bml0cyBvZg0KPiArKiAgICAgIGxiKG1hY2hpbmUgcGFn
ZXMpLiAoZS5nLiAwID09IDEgcGFnZSwgIDEgPSAyIHBhZ2VzLCAyID09IDQgcGFnZXMsDQo+ICsq
ICAgICAgZXRjLikuDQo+ICsqDQo+ICsqIG1heC1yaW5nLXBhZ2VzDQo+ICsqICAgICAgVmFsdWVz
OiAgICAgICAgIDx1aW50MzJfdD4NCj4gKyogICAgICBEZWZhdWx0IFZhbHVlOiAgMQ0KPiArKiAg
ICAgIE5vdGVzOiAgICAgICAgICBERVBSRUNBVEVELCAyLCAzDQo+ICsqDQo+ICsqICAgICAgVGhl
IG1heGltdW0gc3VwcG9ydGVkIHNpemUgb2YgdGhlIHJlcXVlc3QgcmluZyBidWZmZXIgaW4gdW5p
dHMgb2YNCj4gKyogICAgICBtYWNoaW5lIHBhZ2VzLiAgVGhlIHZhbHVlIG11c3QgYmUgYSBwb3dl
ciBvZiAyLg0KPiArKg0KPiArKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQmFja2VuZCBEZXZp
Y2UgUHJvcGVydGllcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsqDQo+ICsqIGRpc2Nh
cmQtZW5hYmxlDQo+ICsqICAgICAgVmFsdWVzOiAgICAgICAgIDAvMSAoYm9vbGVhbikNCj4gKyog
ICAgICBEZWZhdWx0IFZhbHVlOiAgMQ0KPiArKg0KPiArKiAgICAgIFRoaXMgb3B0aW9uYWwgcHJv
cGVydHksIHNldCBieSB0aGUgdG9vbHN0YWNrLCBpbnN0cnVjdHMgdGhlIGJhY2tlbmQNCj4gKyog
ICAgICB0byBvZmZlciAob3Igbm90IHRvIG9mZmVyKSBkaXNjYXJkIHRvIHRoZSBmcm9udGVuZC4g
SWYgdGhlIHByb3BlcnR5DQo+ICsqICAgICAgaXMgbWlzc2luZyB0aGUgYmFja2VuZCBzaG91bGQg
b2ZmZXIgZGlzY2FyZCBpZiB0aGUgYmFja2luZyBzdG9yYWdlDQo+ICsqICAgICAgYWN0dWFsbHkg
c3VwcG9ydHMgaXQuDQo+ICsqDQo+ICsqIGRpc2NhcmQtYWxpZ25tZW50DQo+ICsqICAgICAgVmFs
dWVzOiAgICAgICAgIDx1aW50MzJfdD4NCj4gKyogICAgICBEZWZhdWx0IFZhbHVlOiAgMA0KPiAr
KiAgICAgIE5vdGVzOiAgICAgICAgICA0LCA1DQo+ICsqDQo+ICsqICAgICAgVGhlIG9mZnNldCwg
aW4gYnl0ZXMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSB2aXJ0dWFsIGJsb2NrIGRldmljZSwN
Cj4gKyogICAgICB0byB0aGUgZmlyc3QsIGFkZHJlc3NhYmxlLCBkaXNjYXJkIGV4dGVudCBvbiB0
aGUgdW5kZXJseWluZyBkZXZpY2UuDQo+ICsqDQo+ICsqIGRpc2NhcmQtZ3JhbnVsYXJpdHkNCj4g
KyogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pg0KPiArKiAgICAgIERlZmF1bHQgVmFs
dWU6ICA8InNlY3Rvci1zaXplIj4NCj4gKyogICAgICBOb3RlczogICAgICAgICAgNA0KPiArKg0K
PiArKiAgICAgIFRoZSBzaXplLCBpbiBieXRlcywgb2YgdGhlIGluZGl2aWR1YWxseSBhZGRyZXNz
YWJsZSBkaXNjYXJkIGV4dGVudHMNCj4gKyogICAgICBvZiB0aGUgdW5kZXJseWluZyBkZXZpY2Uu
DQo+ICsqDQo+ICsqIGRpc2NhcmQtc2VjdXJlDQo+ICsqICAgICAgVmFsdWVzOiAgICAgICAgIDAv
MSAoYm9vbGVhbikNCj4gKyogICAgICBEZWZhdWx0IFZhbHVlOiAgMA0KPiArKiAgICAgIE5vdGVz
OiAgICAgICAgICAxMA0KPiArKg0KPiArKiAgICAgIEEgdmFsdWUgb2YgIjEiIGluZGljYXRlcyB0
aGF0IHRoZSBiYWNrZW5kIGNhbiBwcm9jZXNzDQo+IEJMS0lGX09QX0RJU0NBUkQNCj4gKyogICAg
ICByZXF1ZXN0cyB3aXRoIHRoZSBCTEtJRl9ESVNDQVJEX1NFQ1VSRSBmbGFnIHNldC4NCj4gKyoN
Cj4gKyogaW5mbw0KPiArKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+IChiaXRtYXAp
DQo+ICsqDQo+ICsqICAgICAgQSBjb2xsZWN0aW9uIG9mIGJpdCBmbGFncyBkZXNjcmliaW5nIGF0
dHJpYnV0ZXMgb2YgdGhlIGJhY2tpbmcNCj4gKyogICAgICBkZXZpY2UuICBUaGUgVkRJU0tfKiBt
YWNyb3MgZGVmaW5lIHRoZSBtZWFuaW5nIG9mIGVhY2ggYml0DQo+ICsqICAgICAgbG9jYXRpb24u
DQo+ICsqDQo+ICsqIHNlY3Rvci1zaXplDQo+ICsqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50
MzJfdD4NCj4gKyoNCj4gKyogICAgICBUaGUgbG9naWNhbCBzZWN0b3Igc2l6ZSwgaW4gYnl0ZXMs
IG9mIHRoZSBiYWNrZW5kIGRldmljZS4NCj4gKyoNCj4gKyogcGh5c2ljYWwtc2VjdG9yLXNpemUN
Cj4gKyogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pg0KPiArKg0KPiArKiAgICAgIFRo
ZSBwaHlzaWNhbCBzZWN0b3Igc2l6ZSwgaW4gYnl0ZXMsIG9mIHRoZSBiYWNrZW5kIGRldmljZS4N
Cj4gKyoNCj4gKyogc2VjdG9ycw0KPiArKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDY0X3Q+
DQo+ICsqDQo+ICsqICAgICAgVGhlIHNpemUgb2YgdGhlIGJhY2tlbmQgZGV2aWNlLCBleHByZXNz
ZWQgaW4gdW5pdHMgb2YgaXRzIGxvZ2ljYWwNCj4gKyogICAgICBzZWN0b3Igc2l6ZSAoInNlY3Rv
ci1zaXplIikuDQo+ICsqDQo+ICsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioNCj4gKioqKioqKioqKioqKioqKioqKioNCj4gKyogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQgWGVuQnVzIE5vZGVzDQo+ICsqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gKioqKioq
KioqKioqKioqKioqKioNCj4gKyoNCj4gKyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXF1ZXN0
IFRyYW5zcG9ydCBQYXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsqDQo+ICsq
IGV2ZW50LWNoYW5uZWwNCj4gKyogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pg0KPiAr
Kg0KPiArKiAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBYZW4gZXZlbnQgY2hhbm5lbCB1c2Vk
IHRvIHNpZ25hbCBhY3Rpdml0eQ0KPiArKiAgICAgIGluIHRoZSByaW5nIGJ1ZmZlci4NCj4gKyoN
Cj4gKyogcmluZy1yZWYNCj4gKyogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pg0KPiAr
KiAgICAgIE5vdGVzOiAgICAgICAgICA2DQo+ICsqDQo+ICsqICAgICAgVGhlIFhlbiBncmFudCBy
ZWZlcmVuY2UgZ3JhbnRpbmcgcGVybWlzc2lvbiBmb3IgdGhlIGJhY2tlbmQgdG8gbWFwDQo+ICsq
ICAgICAgdGhlIHNvbGUgcGFnZSBpbiBhIHNpbmdsZSBwYWdlIHNpemVkIHJpbmcgYnVmZmVyLg0K
PiArKg0KPiArKiByaW5nLXJlZiV1DQo+ICsqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJf
dD4NCj4gKyogICAgICBOb3RlczogICAgICAgICAgNg0KPiArKg0KPiArKiAgICAgIEZvciBhIGZy
b250ZW5kIHByb3ZpZGluZyBhIG11bHRpLXBhZ2UgcmluZywgYSAibnVtYmVyIG9mIHJpbmcgcGFn
ZXMiDQo+ICsqICAgICAgc2l6ZWQgbGlzdCBvZiBub2RlcywgZWFjaCBjb250YWluaW5nIGEgWGVu
IGdyYW50IHJlZmVyZW5jZSBncmFudGluZw0KPiArKiAgICAgIHBlcm1pc3Npb24gZm9yIHRoZSBi
YWNrZW5kIHRvIG1hcCB0aGUgcGFnZSBvZiB0aGUgcmluZyBsb2NhdGVkDQo+ICsqICAgICAgYXQg
cGFnZSBpbmRleCAiJXUiLiAgUGFnZSBpbmRleGVzIGFyZSB6ZXJvIGJhc2VkLg0KPiArKg0KPiAr
KiBwcm90b2NvbA0KPiArKiAgICAgIFZhbHVlczogICAgICAgICBzdHJpbmcgKFhFTl9JT19QUk9U
T19BQklfKikNCj4gKyogICAgICBEZWZhdWx0IFZhbHVlOiAgWEVOX0lPX1BST1RPX0FCSV9OQVRJ
VkUNCj4gKyoNCj4gKyogICAgICBUaGUgbWFjaGluZSBBQkkgcnVsZXMgZ292ZXJuaW5nIHRoZSBm
b3JtYXQgb2YgYWxsIHJpbmcgcmVxdWVzdCBhbmQNCj4gKyogICAgICByZXNwb25zZSBzdHJ1Y3R1
cmVzLg0KPiArKg0KPiArKiByaW5nLXBhZ2Utb3JkZXINCj4gKyogICAgICBWYWx1ZXM6ICAgICAg
ICAgPHVpbnQzMl90Pg0KPiArKiAgICAgIERlZmF1bHQgVmFsdWU6ICAwDQo+ICsqICAgICAgTWF4
aW11bSBWYWx1ZTogIE1BWChmZnMobWF4LXJpbmctcGFnZXMpIC0gMSwgbWF4LXJpbmctcGFnZS1v
cmRlcikNCj4gKyogICAgICBOb3RlczogICAgICAgICAgMSwgMw0KPiArKg0KPiArKiAgICAgIFRo
ZSBzaXplIG9mIHRoZSBmcm9udGVuZCBhbGxvY2F0ZWQgcmVxdWVzdCByaW5nIGJ1ZmZlciBpbiB1
bml0cw0KPiArKiAgICAgIG9mIGxiKG1hY2hpbmUgcGFnZXMpLiAoZS5nLiAwID09IDEgcGFnZSwg
MSA9IDIgcGFnZXMsIDIgPT0gNCBwYWdlcywNCj4gKyogICAgICBldGMuKS4NCj4gKyoNCj4gKyog
bnVtLXJpbmctcGFnZXMNCj4gKyogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pg0KPiAr
KiAgICAgIERlZmF1bHQgVmFsdWU6ICAxDQo+ICsqICAgICAgTWF4aW11bSBWYWx1ZTogIE1BWCht
YXgtcmluZy1wYWdlcywoMHgxIDw8IG1heC1yaW5nLXBhZ2Utb3JkZXIpKQ0KPiArKiAgICAgIE5v
dGVzOiAgICAgICAgICBERVBSRUNBVEVELCAyLCAzDQo+ICsqDQo+ICsqICAgICAgVGhlIHNpemUg
b2YgdGhlIGZyb250ZW5kIGFsbG9jYXRlZCByZXF1ZXN0IHJpbmcgYnVmZmVyIGluIHVuaXRzIG9m
DQo+ICsqICAgICAgbWFjaGluZSBwYWdlcy4gIFRoZSB2YWx1ZSBtdXN0IGJlIGEgcG93ZXIgb2Yg
Mi4NCj4gKyoNCj4gKyogZmVhdHVyZS1wZXJzaXN0ZW50DQo+ICsqICAgICAgVmFsdWVzOiAgICAg
ICAgIDAvMSAoYm9vbGVhbikNCj4gKyogICAgICBEZWZhdWx0IFZhbHVlOiAgMA0KPiArKiAgICAg
IE5vdGVzOiA3LCA4LCA5DQo+ICsqDQo+ICsqICAgICAgQSB2YWx1ZSBvZiAiMSIgaW5kaWNhdGVz
IHRoYXQgdGhlIGZyb250ZW5kIHdpbGwgcmV1c2UgdGhlIHNhbWUgZ3JhbnRzDQo+ICsqICAgICAg
Zm9yIGFsbCB0cmFuc2FjdGlvbnMsIGFsbG93aW5nIHRoZSBiYWNrZW5kIHRvIG1hcCB0aGVtIHdp
dGggd3JpdGUNCj4gKyogICAgICBhY2Nlc3MgKGV2ZW4gd2hlbiBpdCBzaG91bGQgYmUgcmVhZC1v
bmx5KS4gSWYgdGhlIGZyb250ZW5kIGhpdHMgdGhlDQo+ICsqICAgICAgbWF4aW11bSBudW1iZXIg
b2YgYWxsb3dlZCBwZXJzaXN0ZW50bHkgbWFwcGVkIGdyYW50cywgaXQgY2FuDQo+IGZhbGxiYWNr
DQo+ICsqICAgICAgdG8gbm9uIHBlcnNpc3RlbnQgbW9kZS4gVGhpcyB3aWxsIGNhdXNlIGEgcGVy
Zm9ybWFuY2UgZGVncmFkYXRpb24sDQo+ICsqICAgICAgc2luY2UgdGhlIHRoZSBiYWNrZW5kIGRy
aXZlciB3aWxsIHN0aWxsIHRyeSB0byBtYXAgdGhvc2UgZ3JhbnRzDQo+ICsqICAgICAgcGVyc2lz
dGVudGx5LiBTaW5jZSB0aGUgcGVyc2lzdGVudCBncmFudHMgcHJvdG9jb2wgaXMgY29tcGF0aWJs
ZSB3aXRoDQo+ICsqICAgICAgdGhlIHByZXZpb3VzIHByb3RvY29sLCBhIGZyb250ZW5kIGRyaXZl
ciBjYW4gY2hvb3NlIHRvIHdvcmsgaW4NCj4gKyogICAgICBwZXJzaXN0ZW50IG1vZGUgZXZlbiB3
aGVuIHRoZSBiYWNrZW5kIGRvZXNuJ3Qgc3VwcG9ydCBpdC4NCj4gKyoNCj4gKyogICAgICBJdCBp
cyByZWNvbW1lbmRlZCB0aGF0IHRoZSBmcm9udGVuZCBkcml2ZXIgc3RvcmVzIHRoZSBwZXJzaXN0
ZW50bHkNCj4gKyogICAgICBtYXBwZWQgZ3JhbnRzIGluIGEgTElGTyBxdWV1ZSwgc28gYSBzdWJz
ZXQgb2YgYWxsIHBlcnNpc3RlbnRseSBtYXBwZWQNCj4gKyogICAgICBncmFudHMgZ2V0cyB1c2Vk
IGNvbW1vbmx5LiBUaGlzIGlzIGRvbmUgaW4gY2FzZSB0aGUgYmFja2VuZCBkcml2ZXINCj4gKyog
ICAgICBkZWNpZGVzIHRvIGxpbWl0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBwZXJzaXN0ZW50bHkg
bWFwcGVkIGdyYW50cw0KPiArKiAgICAgIHRvIGEgdmFsdWUgbGVzcyB0aGFuIFJJTkdfU0laRSAq
DQo+IEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVC4NCj4gKyoNCj4gKyotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIFZpcnR1YWwgRGV2aWNlIFByb3BlcnRpZXMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KPiArKg0KPiArKiBkZXZpY2UtdHlwZQ0KPiArKiAgICAgIFZhbHVlczogICAg
ICAgICAiZGlzayIsICJjZHJvbSIsICJmbG9wcHkiLCBldGMuDQo+ICsqDQo+ICsqIHZpcnR1YWwt
ZGV2aWNlDQo+ICsqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4NCj4gKyoNCj4gKyog
ICAgICBBIHZhbHVlIGluZGljYXRpbmcgdGhlIHBoeXNpY2FsIGRldmljZSB0byB2aXJ0dWFsaXpl
IHdpdGhpbiB0aGUNCj4gKyogICAgICBmcm9udGVuZCdzIGRvbWFpbi4gIChlLmcuICJUaGUgZmly
c3QgQVRBIGRpc2siLCAiVGhlIHRoaXJkIFNDU0kNCj4gKyogICAgICBkaXNrIiwgZXRjLikNCj4g
KyoNCj4gKyogICAgICBTZWUgZG9jcy9taXNjL3ZiZC1pbnRlcmZhY2UudHh0IGZvciBkZXRhaWxz
IG9uIHRoZSBmb3JtYXQgb2YgdGhpcw0KPiArKiAgICAgIHZhbHVlLg0KPiArKg0KPiArKiBOb3Rl
cw0KPiArKiAtLS0tLQ0KPiArKiAoMSkgTXVsdGktcGFnZSByaW5nIGJ1ZmZlciBzY2hlbWUgZmly
c3QgZGV2ZWxvcGVkIGluIHRoZSBDaXRyaXggWGVuU2VydmVyDQo+ICsqICAgICBQViBkcml2ZXJz
Lg0KPiArKiAoMikgTXVsdGktcGFnZSByaW5nIGJ1ZmZlciBzY2hlbWUgZmlyc3QgdXNlZCBpbiBz
b21lIFJlZEhhdCBkaXN0cmlidXRpb25zDQo+ICsqICAgICBpbmNsdWRpbmcgYSBkaXN0cmlidXRp
b24gZGVwbG95ZWQgb24gY2VydGFpbiBub2RlcyBvZiB0aGUgQW1hem9uDQo+ICsqICAgICBFQzIg
Y2x1c3Rlci4NCj4gKyogKDMpIFN1cHBvcnQgZm9yIG11bHRpLXBhZ2UgcmluZyBidWZmZXJzIHdh
cyBpbXBsZW1lbnRlZCBpbmRlcGVuZGVudGx5LA0KPiArKiAgICAgaW4gc2xpZ2h0bHkgZGlmZmVy
ZW50IGZvcm1zLCBieSBib3RoIENpdHJpeCBhbmQgUmVkSGF0L0FtYXpvbi4NCj4gKyogICAgIEZv
ciBmdWxsIGludGVyb3BlcmFiaWxpdHksIGJsb2NrIGZyb250IGFuZCBiYWNrZW5kcyBzaG91bGQg
cHVibGlzaA0KPiArKiAgICAgaWRlbnRpY2FsIHJpbmcgcGFyYW1ldGVycywgYWRqdXN0ZWQgZm9y
IHVuaXQgZGlmZmVyZW5jZXMsIHRvIHRoZQ0KPiArKiAgICAgWGVuU3RvcmUgbm9kZXMgdXNlZCBp
biBib3RoIHNjaGVtZXMuDQo+ICsqICg0KSBEZXZpY2VzIHRoYXQgc3VwcG9ydCBkaXNjYXJkIGZ1
bmN0aW9uYWxpdHkgbWF5IGludGVybmFsbHkgYWxsb2NhdGUgc3BhY2UNCj4gKyogICAgIChkaXNj
YXJkYWJsZSBleHRlbnRzKSBpbiB1bml0cyB0aGF0IGFyZSBsYXJnZXIgdGhhbiB0aGUgZXhwb3J0
ZWQgbG9naWNhbA0KPiArKiAgICAgYmxvY2sgc2l6ZS4gSWYgdGhlIGJhY2tpbmcgZGV2aWNlIGhh
cyBzdWNoIGRpc2NhcmRhYmxlIGV4dGVudHMgdGhlDQo+ICsqICAgICBiYWNrZW5kIHNob3VsZCBw
cm92aWRlIGJvdGggZGlzY2FyZC1ncmFudWxhcml0eSBhbmQgZGlzY2FyZC1hbGlnbm1lbnQuDQo+
ICsqICAgICBQcm92aWRpbmcganVzdCBvbmUgb2YgdGhlIHR3byBtYXkgYmUgY29uc2lkZXJlZCBh
biBlcnJvciBieSB0aGUNCj4gZnJvbnRlbmQuDQo+ICsqICAgICBCYWNrZW5kcyBzdXBwb3J0aW5n
IGRpc2NhcmQgc2hvdWxkIGluY2x1ZGUgZGlzY2FyZC1ncmFudWxhcml0eSBhbmQNCj4gKyogICAg
IGRpc2NhcmQtYWxpZ25tZW50IGV2ZW4gaWYgaXQgc3VwcG9ydHMgZGlzY2FyZGluZyBpbmRpdmlk
dWFsIHNlY3RvcnMuDQo+ICsqICAgICBGcm9udGVuZHMgc2hvdWxkIGFzc3VtZSBkaXNjYXJkLWFs
aWdubWVudCA9PSAwIGFuZCBkaXNjYXJkLQ0KPiBncmFudWxhcml0eQ0KPiArKiAgICAgPT0gc2Vj
dG9yIHNpemUgaWYgdGhlc2Uga2V5cyBhcmUgbWlzc2luZy4NCj4gKyogKDUpIFRoZSBkaXNjYXJk
LWFsaWdubWVudCBwYXJhbWV0ZXIgYWxsb3dzIGEgcGh5c2ljYWwgZGV2aWNlIHRvIGJlDQo+ICsq
ICAgICBwYXJ0aXRpb25lZCBpbnRvIHZpcnR1YWwgZGV2aWNlcyB0aGF0IGRvIG5vdCBuZWNlc3Nh
cmlseSBiZWdpbiBvcg0KPiArKiAgICAgZW5kIG9uIGEgZGlzY2FyZGFibGUgZXh0ZW50IGJvdW5k
YXJ5Lg0KPiArKiAoNikgV2hlbiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHBhZ2UgYWxsb2NhdGVk
IHRvIHRoZSByZXF1ZXN0IHJpbmcsDQo+ICsqICAgICAncmluZy1yZWYnIGlzIHVzZWQgdG8gY29t
bXVuaWNhdGUgdGhlIGdyYW50IHJlZmVyZW5jZSBmb3IgdGhpcw0KPiArKiAgICAgcGFnZSB0byB0
aGUgYmFja2VuZC4gIFdoZW4gdXNpbmcgYSBtdWx0aS1wYWdlIHJpbmcsIHRoZSAncmluZy1yZWYn
DQo+ICsqICAgICBub2RlIGlzIG5vdCBjcmVhdGVkLiAgSW5zdGVhZCAncmluZy1yZWYwJyAtICdy
aW5nLXJlZk4nIGFyZSB1c2VkLg0KPiArKiAoNykgV2hlbiB1c2luZyBwZXJzaXN0ZW50IGdyYW50
cyBkYXRhIGhhcyB0byBiZSBjb3BpZWQgZnJvbS90byB0aGUgcGFnZQ0KPiArKiAgICAgd2hlcmUg
dGhlIGdyYW50IGlzIGN1cnJlbnRseSBtYXBwZWQuIFRoZSBvdmVyaGVhZCBvZiBkb2luZyB0aGlz
IGNvcHkNCj4gKyogICAgIGhvd2V2ZXIgZG9lc24ndCBzdXBwcmVzcyB0aGUgc3BlZWQgaW1wcm92
ZW1lbnQgb2Ygbm90IGhhdmluZyB0bw0KPiB1bm1hcA0KPiArKiAgICAgdGhlIGdyYW50cy4NCj4g
KyogKDgpIFRoZSBmcm9udGVuZCBkcml2ZXIgaGFzIHRvIGFsbG93IHRoZSBiYWNrZW5kIGRyaXZl
ciB0byBtYXAgYWxsIGdyYW50cw0KPiArKiAgICAgd2l0aCB3cml0ZSBhY2Nlc3MsIGV2ZW4gd2hl
biB0aGV5IHNob3VsZCBiZSBtYXBwZWQgcmVhZC1vbmx5LCBzaW5jZQ0KPiArKiAgICAgZnVydGhl
ciByZXF1ZXN0cyBtYXkgcmV1c2UgdGhlc2UgZ3JhbnRzIGFuZCByZXF1aXJlIHdyaXRlIHBlcm1p
c3Npb25zLg0KPiArKiAoOSkgTGludXggaW1wbGVtZW50YXRpb24gZG9lc24ndCBoYXZlIGEgbGlt
aXQgb24gdGhlIG1heGltdW0gbnVtYmVyIG9mDQo+ICsqICAgICBncmFudHMgdGhhdCBjYW4gYmUg
cGVyc2lzdGVudGx5IG1hcHBlZCBpbiB0aGUgZnJvbnRlbmQgZHJpdmVyLCBidXQNCj4gKyogICAg
IGR1ZSB0byB0aGUgZnJvbnRlbnQgZHJpdmVyIGltcGxlbWVudGF0aW9uIGl0IHNob3VsZCBuZXZl
ciBiZSBiaWdnZXINCj4gKyogICAgIHRoYW4gUklOR19TSVpFICogQkxLSUZfTUFYX1NFR01FTlRT
X1BFUl9SRVFVRVNULg0KPiArKigxMCkgVGhlIGRpc2NhcmQtc2VjdXJlIHByb3BlcnR5IG1heSBi
ZSBwcmVzZW50IGFuZCB3aWxsIGJlIHNldCB0byAxIGlmIHRoZQ0KPiArKiAgICAgYmFja2luZyBk
ZXZpY2Ugc3VwcG9ydHMgc2VjdXJlIGRpc2NhcmQuDQo+ICsqKDExKSBPbmx5IHVzZWQgYnkgTGlu
dXggYW5kIE5ldEJTRC4NCj4gKyovDQo+IA0KPiAgLyoNCj4gLSAqIFNUQVRFIERJQUdSQU1TDQo+
IC0gKg0KPiAtDQo+ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioNCj4gKioqKioqKioqKioqKioqKioqKg0KPiAtICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0dXAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqDQo+IC0NCj4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKg0KPiAqKioqKioqKioqKioqKioqKioqDQo+IC0gKg0KPiAtICogVG9v
bCBzdGFjayBjcmVhdGVzIGZyb250IGFuZCBiYWNrIG5vZGVzIHdpdGggc3RhdGUgWGVuYnVzU3Rh
dGVJbml0aWFsaXNpbmcuDQo+IC0gKg0KPiAtICogRnJvbnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEJhY2sNCj4gLSAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IC0gKiBYZW5idXNTdGF0
ZUluaXRpYWxpc2luZyAgICAgICAgICAgICAgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcNCj4gLSAq
ICBvIFF1ZXJ5IHZpcnR1YWwgZGV2aWNlICAgICAgICAgICAgICAgbyBRdWVyeSBiYWNrZW5kIGRl
dmljZSBpZGVudGlmaWNhdGlvbg0KPiAtICogICAgcHJvcGVydGllcy4gICAgICAgICAgICAgICAg
ICAgICAgICAgIGRhdGEuDQo+IC0gKiAgbyBTZXR1cCBPUyBkZXZpY2UgaW5zdGFuY2UuICAgICAg
ICAgIG8gT3BlbiBhbmQgdmFsaWRhdGUgYmFja2VuZCBkZXZpY2UuDQo+IC0gKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gUHVibGlzaCBiYWNrZW5kIGZlYXR1cmVzIGFu
ZA0KPiAtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcG9y
dCBwYXJhbWV0ZXJzLg0KPiAtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8DQo+IC0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwNCj4gLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVg0KPiAtICogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlSW5pdFdhaXQNCj4gLSAqDQo+IC0gKiBvIFF1ZXJ5
IGJhY2tlbmQgZmVhdHVyZXMgYW5kDQo+IC0gKiAgIHRyYW5zcG9ydCBwYXJhbWV0ZXJzLg0KPiAt
ICogbyBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZSB0aGUNCj4gLSAqICAgcmVxdWVzdCByaW5nLg0K
PiAtICogbyBQdWJsaXNoIHRyYW5zcG9ydCBwYXJhbWV0ZXJzDQo+IC0gKiAgIHRoYXQgd2lsbCBi
ZSBpbiBlZmZlY3QgZHVyaW5nDQo+IC0gKiAgIHRoaXMgY29ubmVjdGlvbi4NCj4gLSAqICAgICAg
ICAgICAgICB8DQo+IC0gKiAgICAgICAgICAgICAgfA0KPiAtICogICAgICAgICAgICAgIFYNCj4g
LSAqIFhlbmJ1c1N0YXRlSW5pdGlhbGlzZWQNCj4gLSAqDQo+IC0gKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG8gUXVlcnkgZnJvbnRlbmQgdHJhbnNwb3J0IHBhcmFtZXRl
cnMuDQo+IC0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gQ29ubmVj
dCB0byB0aGUgcmVxdWVzdCByaW5nIGFuZA0KPiAtICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV2ZW50IGNoYW5uZWwuDQo+IC0gKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG8gUHVibGlzaCBiYWNrZW5kIGRldmljZSBwcm9wZXJ0aWVzLg0K
PiAtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8DQo+IC0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwNCj4gLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVg0KPiAtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFhlbmJ1c1N0YXRlQ29ubmVjdGVkDQo+IC0gKg0KPiAtICogIG8gUXVlcnkgYmFja2VuZCBkZXZp
Y2UgcHJvcGVydGllcy4NCj4gLSAqICBvIEZpbmFsaXplIE9TIHZpcnR1YWwgZGV2aWNlDQo+IC0g
KiAgICBpbnN0YW5jZS4NCj4gLSAqICAgICAgICAgICAgICB8DQo+IC0gKiAgICAgICAgICAgICAg
fA0KPiAtICogICAgICAgICAgICAgIFYNCj4gLSAqIFhlbmJ1c1N0YXRlQ29ubmVjdGVkDQo+IC0g
Kg0KPiAtICogTm90ZTogRHJpdmVycyB0aGF0IGRvIG5vdCBzdXBwb3J0IGFueSBvcHRpb25hbCBm
ZWF0dXJlcywgb3IgdGhlDQo+IG5lZ290aWF0aW9uDQo+IC0gKiAgICAgICBvZiB0cmFuc3BvcnQg
cGFyYW1ldGVycywgY2FuIHNraXAgY2VydGFpbiBzdGF0ZXMgaW4gdGhlIHN0YXRlIG1hY2hpbmU6
DQo+IC0gKg0KPiAtICogICAgICAgbyBBIGZyb250ZW5kIG1heSB0cmFuc2l0aW9uIHRvIFhlbmJ1
c1N0YXRlSW5pdGlhbGlzZWQgd2l0aG91dA0KPiAtICogICAgICAgICB3YWl0aW5nIGZvciB0aGUg
YmFja2VuZCB0byBlbnRlciBYZW5idXNTdGF0ZUluaXRXYWl0LiAgSW4gdGhpcw0KPiAtICogICAg
ICAgICBjYXNlLCBkZWZhdWx0IHRyYW5zcG9ydCBwYXJhbWV0ZXJzIGFyZSBpbiBlZmZlY3QgYW5k
IGFueQ0KPiAtICogICAgICAgICB0cmFuc3BvcnQgcGFyYW1ldGVycyBwdWJsaXNoZWQgYnkgdGhl
IGZyb250ZW5kIG11c3QgY29udGFpbg0KPiAtICogICAgICAgICB0aGVpciBkZWZhdWx0IHZhbHVl
cy4NCj4gLSAqDQo+IC0gKiAgICAgICBvIEEgYmFja2VuZCBtYXkgdHJhbnNpdGlvbiB0byBYZW5i
dXNTdGF0ZUluaXRpYWxpc2VkLCBieXBhc3NpbmcNCj4gLSAqICAgICAgICAgWGVuYnVzU3RhdGVJ
bml0V2FpdCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgZnJvbnRlbmQgdG8gZmlyc3QNCj4gLSAq
ICAgICAgICAgZW50ZXIgdGhlIFhlbmJ1c1N0YXRlSW5pdGlhbGlzZWQgc3RhdGUuICBJbiB0aGlz
IGNhc2UsIGRlZmF1bHQNCj4gLSAqICAgICAgICAgdHJhbnNwb3J0IHBhcmFtZXRlcnMgYXJlIGlu
IGVmZmVjdCBhbmQgYW55IHRyYW5zcG9ydCBwYXJhbWV0ZXJzDQo+IC0gKiAgICAgICAgIHB1Ymxp
c2hlZCBieSB0aGUgYmFja2VuZCBtdXN0IGNvbnRhaW4gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuDQo+
IC0gKg0KPiAtICogICAgICAgRHJpdmVycyB0aGF0IHN1cHBvcnQgb3B0aW9uYWwgZmVhdHVyZXMg
YW5kL29yIHRyYW5zcG9ydCBwYXJhbWV0ZXINCj4gLSAqICAgICAgIG5lZ290aWF0aW9uIG11c3Qg
dG9sZXJhdGUgdGhlc2UgYWRkaXRpb25hbCBzdGF0ZSB0cmFuc2l0aW9uIHBhdGhzLg0KPiAtICog
ICAgICAgSW4gZ2VuZXJhbCB0aGlzIG1lYW5zIHBlcmZvcm1pbmcgdGhlIHdvcmsgb2YgYW55IHNr
aXBwZWQgc3RhdGUNCj4gLSAqICAgICAgIHRyYW5zaXRpb24sIGlmIGl0IGhhcyBub3QgYWxyZWFk
eSBiZWVuIHBlcmZvcm1lZCwgaW4gYWRkaXRpb24gdG8gdGhlDQo+IC0gKiAgICAgICB3b3JrIGFz
c29jaWF0ZWQgd2l0aCBlbnRyeSBpbnRvIHRoZSBjdXJyZW50IHN0YXRlLg0KPiAtICovDQo+ICsq
IE11bHRpcGxlIGhhcmR3YXJlIHF1ZXVlcy9yaW5nczoNCj4gKyogSWYgc3VwcG9ydGVkLCB0aGUg
YmFja2VuZCB3aWxsIHdyaXRlIHRoZSBrZXkgIm11bHRpLXF1ZXVlLW1heC1xdWV1ZXMiDQo+IHRv
DQo+ICsqIHRoZSBkaXJlY3RvcnkgZm9yIHRoYXQgdmJkLCBhbmQgc2V0IGl0cyB2YWx1ZSB0byB0
aGUgbWF4aW11bSBzdXBwb3J0ZWQNCj4gKyogbnVtYmVyIG9mIHF1ZXVlcy4NCj4gKyogRnJvbnRl
bmRzIHRoYXQgYXJlIGF3YXJlIG9mIHRoaXMgZmVhdHVyZSBhbmQgd2lzaCB0byB1c2UgaXQgY2Fu
IHdyaXRlIHRoZQ0KPiArKiBrZXkgIm11bHRpLXF1ZXVlLW51bS1xdWV1ZXMiIHdpdGggdGhlIG51
bWJlciB0aGV5IHdpc2ggdG8gdXNlLCB3aGljaA0KPiBtdXN0IGJlDQo+ICsqIGdyZWF0ZXIgdGhh
biB6ZXJvLCBhbmQgbm8gbW9yZSB0aGFuIHRoZSB2YWx1ZSByZXBvcnRlZCBieSB0aGUgYmFja2Vu
ZCBpbg0KPiArKiAibXVsdGktcXVldWUtbWF4LXF1ZXVlcyIuDQo+ICsqDQo+ICsqIEZvciBmcm9u
dGVuZHMgcmVxdWVzdGluZyBqdXN0IG9uZSBxdWV1ZSwgdGhlIHVzdWFsIGV2ZW50LWNoYW5uZWwg
YW5kDQo+ICsqIHJpbmctcmVmIGtleXMgYXJlIHdyaXR0ZW4gYXMgYmVmb3JlLCBzaW1wbGlmeWlu
ZyB0aGUgYmFja2VuZCBwcm9jZXNzaW5nDQo+ICsqIHRvIGF2b2lkIGRpc3Rpbmd1aXNoaW5nIGJl
dHdlZW4gYSBmcm9udGVuZCB0aGF0IGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGUNCj4gKyogbXVsdGkt
cXVldWUgZmVhdHVyZSwgYW5kIG9uZSB0aGF0IGRvZXMsIGJ1dCByZXF1ZXN0ZWQgb25seSBvbmUg
cXVldWUuDQo+ICsqDQo+ICsqIEZyb250ZW5kcyByZXF1ZXN0aW5nIHR3byBvciBtb3JlIHF1ZXVl
cyBtdXN0IG5vdCB3cml0ZSB0aGUgdG9wbGV2ZWwNCj4gKyogZXZlbnQtY2hhbm5lbCBhbmQgcmlu
Zy1yZWYga2V5cywgaW5zdGVhZCB3cml0aW5nIHRob3NlIGtleXMgdW5kZXIgc3ViLQ0KPiBrZXlz
DQo+ICsqIGhhdmluZyB0aGUgbmFtZSAicXVldWUtTiIgd2hlcmUgTiBpcyB0aGUgaW50ZWdlciBJ
RCBvZiB0aGUgcXVldWUvcmluZw0KPiBmb3INCj4gKyogd2hpY2ggdGhvc2Uga2V5cyBiZWxvbmcu
IFF1ZXVlcyBhcmUgaW5kZXhlZCBmcm9tIHplcm8uDQo+ICsqIEZvciBleGFtcGxlLCBhIGZyb250
ZW5kIHdpdGggdHdvIHF1ZXVlcyBtdXN0IHdyaXRlIHRoZSBmb2xsb3dpbmcgc2V0IG9mDQo+ICsq
IHF1ZXVlLXJlbGF0ZWQga2V5czoNCj4gKyoNCj4gKyogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92
YmQvMC9tdWx0aS1xdWV1ZS1udW0tcXVldWVzID0gIjIiDQo+ICsqIC9sb2NhbC9kb21haW4vMS9k
ZXZpY2UvdmJkLzAvcXVldWUtMCA9ICIiDQo+ICsqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJk
LzAvcXVldWUtMC9yaW5nLXJlZiA9ICI8cmluZy1yZWYjMD4iDQo+ICsqIC9sb2NhbC9kb21haW4v
MS9kZXZpY2UvdmJkLzAvcXVldWUtMC9ldmVudC1jaGFubmVsID0gIjxldnRjaG4jMD4iDQo+ICsq
IC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJkLzAvcXVldWUtMSA9ICIiDQo+ICsqIC9sb2NhbC9k
b21haW4vMS9kZXZpY2UvdmJkLzAvcXVldWUtMS9yaW5nLXJlZiA9ICI8cmluZy1yZWYjMT4iDQo+
ICsqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJkLzAvcXVldWUtMS9ldmVudC1jaGFubmVsID0g
IjxldnRjaG4jMT4iDQo+ICsqDQo+ICsqIEl0IGlzIGFsc28gcG9zc2libGUgdG8gdXNlIG11bHRp
cGxlIHF1ZXVlcy9yaW5ncyB0b2dldGhlciB3aXRoDQo+ICsqIGZlYXR1cmUgbXVsdGktcGFnZSBy
aW5nIGJ1ZmZlci4NCj4gKyogRm9yIGV4YW1wbGUsIGEgZnJvbnRlbmQgcmVxdWVzdHMgdHdvIHF1
ZXVlcy9yaW5ncyBhbmQgdGhlIHNpemUgb2YgZWFjaA0KPiByaW5nDQo+ICsqIGJ1ZmZlciBpcyB0
d28gcGFnZXMgbXVzdCB3cml0ZSB0aGUgZm9sbG93aW5nIHNldCBvZiByZWxhdGVkIGtleXM6DQo+
ICsqDQo+ICsqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmJkLzAvbXVsdGktcXVldWUtbnVtLXF1
ZXVlcyA9ICIyIg0KPiArKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3JpbmctcGFnZS1v
cmRlciA9ICIxIg0KPiArKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTAgPSAi
Ig0KPiArKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTAvcmluZy1yZWYwID0g
IjxyaW5nLXJlZiMwPiINCj4gKyogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9xdWV1ZS0w
L3JpbmctcmVmMSA9ICI8cmluZy1yZWYjMT4iDQo+ICsqIC9sb2NhbC9kb21haW4vMS9kZXZpY2Uv
dmJkLzAvcXVldWUtMC9ldmVudC1jaGFubmVsID0gIjxldnRjaG4jMD4iDQo+ICsqIC9sb2NhbC9k
b21haW4vMS9kZXZpY2UvdmJkLzAvcXVldWUtMSA9ICIiDQo+ICsqIC9sb2NhbC9kb21haW4vMS9k
ZXZpY2UvdmJkLzAvcXVldWUtMS9yaW5nLXJlZjAgPSAiPHJpbmctcmVmIzI+Ig0KPiArKiAvbG9j
YWwvZG9tYWluLzEvZGV2aWNlL3ZiZC8wL3F1ZXVlLTEvcmluZy1yZWYxID0gIjxyaW5nLXJlZiMz
PiINCj4gKyogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92YmQvMC9xdWV1ZS0xL2V2ZW50LWNoYW5u
ZWwgPSAiPGV2dGNobiMxPiINCj4gKyoNCj4gKyovDQo+IA0KPiAgLyoNCj4gLSAqIFJFUVVFU1Qg
Q09ERVMuDQo+IC0gKi8NCj4gKyogU1RBVEUgRElBR1JBTVMNCj4gKyoNCj4gKyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiAqKioqKioq
KioqKioqKioqKioqKg0KPiArKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rh
cnR1cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCj4gKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiAqKioqKioqKioq
KioqKioqKioqKg0KPiArKg0KPiArKiBUb29sIHN0YWNrIGNyZWF0ZXMgZnJvbnQgYW5kIGJhY2sg
bm9kZXMgd2l0aCBzdGF0ZSBYZW5idXNTdGF0ZUluaXRpYWxpc2luZy4NCj4gKyoNCj4gKyogRnJv
bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2sNCj4gKyogPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCj4gKyogWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgICAgICAgICAgICAgIFhlbmJ1c1N0
YXRlSW5pdGlhbGlzaW5nDQo+ICsqICBvIFF1ZXJ5IHZpcnR1YWwgZGV2aWNlICAgICAgICAgICAg
ICAgbyBRdWVyeSBiYWNrZW5kIGRldmljZSBpZGVudGlmaWNhdGlvbg0KPiArKiAgICBwcm9wZXJ0
aWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS4NCj4gKyogIG8gU2V0dXAgT1MgZGV2
aWNlIGluc3RhbmNlLiAgICAgICAgICBvIE9wZW4gYW5kIHZhbGlkYXRlIGJhY2tlbmQgZGV2aWNl
Lg0KPiArKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gUHVibGlzaCBi
YWNrZW5kIGZlYXR1cmVzIGFuZA0KPiArKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHJhbnNwb3J0IHBhcmFtZXRlcnMuDQo+ICsqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKyogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWDQo+ICsqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNTdGF0ZUluaXRXYWl0DQo+ICsqDQo+
ICsqIG8gUXVlcnkgYmFja2VuZCBmZWF0dXJlcyBhbmQNCj4gKyogICB0cmFuc3BvcnQgcGFyYW1l
dGVycy4NCj4gKyogbyBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZSB0aGUNCj4gKyogICByZXF1ZXN0
IHJpbmcuDQo+ICsqIG8gUHVibGlzaCB0cmFuc3BvcnQgcGFyYW1ldGVycw0KPiArKiAgIHRoYXQg
d2lsbCBiZSBpbiBlZmZlY3QgZHVyaW5nDQo+ICsqICAgdGhpcyBjb25uZWN0aW9uLg0KPiArKiAg
ICAgICAgICAgICAgfA0KPiArKiAgICAgICAgICAgICAgfA0KPiArKiAgICAgICAgICAgICAgVg0K
PiArKiBYZW5idXNTdGF0ZUluaXRpYWxpc2VkDQo+ICsqDQo+ICsqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbyBRdWVyeSBmcm9udGVuZCB0cmFuc3BvcnQgcGFyYW1ldGVy
cy4NCj4gKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIENvbm5lY3Qg
dG8gdGhlIHJlcXVlc3QgcmluZyBhbmQNCj4gKyogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGV2ZW50IGNoYW5uZWwuDQo+ICsqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbyBQdWJsaXNoIGJhY2tlbmQgZGV2aWNlIHByb3BlcnRpZXMuDQo+ICsq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0K
PiArKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwNCj4gKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBWDQo+ICsqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYZW5idXNT
dGF0ZUNvbm5lY3RlZA0KPiArKg0KPiArKiAgbyBRdWVyeSBiYWNrZW5kIGRldmljZSBwcm9wZXJ0
aWVzLg0KPiArKiAgbyBGaW5hbGl6ZSBPUyB2aXJ0dWFsIGRldmljZQ0KPiArKiAgICBpbnN0YW5j
ZS4NCj4gKyogICAgICAgICAgICAgIHwNCj4gKyogICAgICAgICAgICAgIHwNCj4gKyogICAgICAg
ICAgICAgIFYNCj4gKyogWGVuYnVzU3RhdGVDb25uZWN0ZWQNCj4gKyoNCj4gKyogTm90ZTogRHJp
dmVycyB0aGF0IGRvIG5vdCBzdXBwb3J0IGFueSBvcHRpb25hbCBmZWF0dXJlcywgb3IgdGhlDQo+
IG5lZ290aWF0aW9uDQo+ICsqICAgICAgIG9mIHRyYW5zcG9ydCBwYXJhbWV0ZXJzLCBjYW4gc2tp
cCBjZXJ0YWluIHN0YXRlcyBpbiB0aGUgc3RhdGUgbWFjaGluZToNCj4gKyoNCj4gKyogICAgICAg
byBBIGZyb250ZW5kIG1heSB0cmFuc2l0aW9uIHRvIFhlbmJ1c1N0YXRlSW5pdGlhbGlzZWQgd2l0
aG91dA0KPiArKiAgICAgICAgIHdhaXRpbmcgZm9yIHRoZSBiYWNrZW5kIHRvIGVudGVyIFhlbmJ1
c1N0YXRlSW5pdFdhaXQuICBJbiB0aGlzDQo+ICsqICAgICAgICAgY2FzZSwgZGVmYXVsdCB0cmFu
c3BvcnQgcGFyYW1ldGVycyBhcmUgaW4gZWZmZWN0IGFuZCBhbnkNCj4gKyogICAgICAgICB0cmFu
c3BvcnQgcGFyYW1ldGVycyBwdWJsaXNoZWQgYnkgdGhlIGZyb250ZW5kIG11c3QgY29udGFpbg0K
PiArKiAgICAgICAgIHRoZWlyIGRlZmF1bHQgdmFsdWVzLg0KPiArKg0KPiArKiAgICAgICBvIEEg
YmFja2VuZCBtYXkgdHJhbnNpdGlvbiB0byBYZW5idXNTdGF0ZUluaXRpYWxpc2VkLCBieXBhc3Np
bmcNCj4gKyogICAgICAgICBYZW5idXNTdGF0ZUluaXRXYWl0LCB3aXRob3V0IHdhaXRpbmcgZm9y
IHRoZSBmcm9udGVuZCB0byBmaXJzdA0KPiArKiAgICAgICAgIGVudGVyIHRoZSBYZW5idXNTdGF0
ZUluaXRpYWxpc2VkIHN0YXRlLiAgSW4gdGhpcyBjYXNlLCBkZWZhdWx0DQo+ICsqICAgICAgICAg
dHJhbnNwb3J0IHBhcmFtZXRlcnMgYXJlIGluIGVmZmVjdCBhbmQgYW55IHRyYW5zcG9ydCBwYXJh
bWV0ZXJzDQo+ICsqICAgICAgICAgcHVibGlzaGVkIGJ5IHRoZSBiYWNrZW5kIG11c3QgY29udGFp
biB0aGVpciBkZWZhdWx0IHZhbHVlcy4NCj4gKyoNCj4gKyogICAgICAgRHJpdmVycyB0aGF0IHN1
cHBvcnQgb3B0aW9uYWwgZmVhdHVyZXMgYW5kL29yIHRyYW5zcG9ydCBwYXJhbWV0ZXINCj4gKyog
ICAgICAgbmVnb3RpYXRpb24gbXVzdCB0b2xlcmF0ZSB0aGVzZSBhZGRpdGlvbmFsIHN0YXRlIHRy
YW5zaXRpb24gcGF0aHMuDQo+ICsqICAgICAgIEluIGdlbmVyYWwgdGhpcyBtZWFucyBwZXJmb3Jt
aW5nIHRoZSB3b3JrIG9mIGFueSBza2lwcGVkIHN0YXRlDQo+ICsqICAgICAgIHRyYW5zaXRpb24s
IGlmIGl0IGhhcyBub3QgYWxyZWFkeSBiZWVuIHBlcmZvcm1lZCwgaW4gYWRkaXRpb24gdG8gdGhl
DQo+ICsqICAgICAgIHdvcmsgYXNzb2NpYXRlZCB3aXRoIGVudHJ5IGludG8gdGhlIGN1cnJlbnQg
c3RhdGUuDQo+ICsqLw0KPiArDQo+ICsvKg0KPiArKiBSRVFVRVNUIENPREVTLg0KPiArKi8NCj4g
ICNkZWZpbmUgQkxLSUZfT1BfUkVBRCAgICAgICAgICAgICAgMA0KPiAgI2RlZmluZSBCTEtJRl9P
UF9XUklURSAgICAgICAgICAgICAxDQo+ICAvKg0KPiAtICogQWxsIHdyaXRlcyBpc3N1ZWQgcHJp
b3IgdG8gYSByZXF1ZXN0IHdpdGggdGhlIEJMS0lGX09QX1dSSVRFX0JBUlJJRVINCj4gLSAqIG9w
ZXJhdGlvbiBjb2RlICgiYmFycmllciByZXF1ZXN0IikgbXVzdCBiZSBjb21wbGV0ZWQgcHJpb3Ig
dG8gdGhlDQo+IC0gKiBleGVjdXRpb24gb2YgdGhlIGJhcnJpZXIgcmVxdWVzdC4gIEFsbCB3cml0
ZXMgaXNzdWVkIGFmdGVyIHRoZSBiYXJyaWVyDQo+IC0gKiByZXF1ZXN0IG11c3Qgbm90IGV4ZWN1
dGUgdW50aWwgYWZ0ZXIgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGJhcnJpZXINCj4gcmVxdWVzdC4N
Cj4gLSAqDQo+IC0gKiBPcHRpb25hbC4gIFNlZSAiZmVhdHVyZS1iYXJyaWVyIiBYZW5CdXMgbm9k
ZSBkb2N1bWVudGF0aW9uIGFib3ZlLg0KPiAtICovDQo+ICsqIEFsbCB3cml0ZXMgaXNzdWVkIHBy
aW9yIHRvIGEgcmVxdWVzdCB3aXRoIHRoZSBCTEtJRl9PUF9XUklURV9CQVJSSUVSDQo+ICsqIG9w
ZXJhdGlvbiBjb2RlICgiYmFycmllciByZXF1ZXN0IikgbXVzdCBiZSBjb21wbGV0ZWQgcHJpb3Ig
dG8gdGhlDQo+ICsqIGV4ZWN1dGlvbiBvZiB0aGUgYmFycmllciByZXF1ZXN0LiAgQWxsIHdyaXRl
cyBpc3N1ZWQgYWZ0ZXIgdGhlIGJhcnJpZXINCj4gKyogcmVxdWVzdCBtdXN0IG5vdCBleGVjdXRl
IHVudGlsIGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBiYXJyaWVyDQo+IHJlcXVlc3QuDQo+
ICsqDQo+ICsqIE9wdGlvbmFsLiAgU2VlICJmZWF0dXJlLWJhcnJpZXIiIFhlbkJ1cyBub2RlIGRv
Y3VtZW50YXRpb24gYWJvdmUuDQo+ICsqLw0KPiAgI2RlZmluZSBCTEtJRl9PUF9XUklURV9CQVJS
SUVSICAgICAyDQo+ICAvKg0KPiAtICogQ29tbWl0IGFueSB1bmNvbW1pdHRlZCBjb250ZW50cyBv
ZiB0aGUgYmFja2luZyBkZXZpY2UncyB2b2xhdGlsZSBjYWNoZQ0KPiAtICogdG8gc3RhYmxlIHN0
b3JhZ2UuDQo+IC0gKg0KPiAtICogT3B0aW9uYWwuICBTZWUgImZlYXR1cmUtZmx1c2gtY2FjaGUi
IFhlbkJ1cyBub2RlIGRvY3VtZW50YXRpb24gYWJvdmUuDQo+IC0gKi8NCj4gKyogQ29tbWl0IGFu
eSB1bmNvbW1pdHRlZCBjb250ZW50cyBvZiB0aGUgYmFja2luZyBkZXZpY2UncyB2b2xhdGlsZSBj
YWNoZQ0KPiArKiB0byBzdGFibGUgc3RvcmFnZS4NCj4gKyoNCj4gKyogT3B0aW9uYWwuICBTZWUg
ImZlYXR1cmUtZmx1c2gtY2FjaGUiIFhlbkJ1cyBub2RlIGRvY3VtZW50YXRpb24gYWJvdmUuDQo+
ICsqLw0KPiAgI2RlZmluZSBCTEtJRl9PUF9GTFVTSF9ESVNLQ0FDSEUgICAzDQo+ICAvKg0KPiAt
ICogVXNlZCBpbiBTTEVTIHNvdXJjZXMgZm9yIGRldmljZSBzcGVjaWZpYyBjb21tYW5kIHBhY2tl
dA0KPiAtICogY29udGFpbmVkIHdpdGhpbiB0aGUgcmVxdWVzdC4gUmVzZXJ2ZWQgZm9yIHRoYXQg
cHVycG9zZS4NCj4gLSAqLw0KPiArKiBVc2VkIGluIFNMRVMgc291cmNlcyBmb3IgZGV2aWNlIHNw
ZWNpZmljIGNvbW1hbmQgcGFja2V0DQo+ICsqIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHJlcXVlc3Qu
IFJlc2VydmVkIGZvciB0aGF0IHB1cnBvc2UuDQo+ICsqLw0KPiAgI2RlZmluZSBCTEtJRl9PUF9S
RVNFUlZFRF8xICAgICAgICA0DQo+ICAvKg0KPiAtICogSW5kaWNhdGUgdG8gdGhlIGJhY2tlbmQg
ZGV2aWNlIHRoYXQgYSByZWdpb24gb2Ygc3RvcmFnZSBpcyBubyBsb25nZXIgaW4NCj4gLSAqIHVz
ZSwgYW5kIG1heSBiZSBkaXNjYXJkZWQgYXQgYW55IHRpbWUgd2l0aG91dCBpbXBhY3QgdG8gdGhl
IGNsaWVudC4gIElmDQo+IC0gKiB0aGUgQkxLSUZfRElTQ0FSRF9TRUNVUkUgZmxhZyBpcyBzZXQg
b24gdGhlIHJlcXVlc3QsIGFsbCBjb3BpZXMgb2YgdGhlDQo+IC0gKiBkaXNjYXJkZWQgcmVnaW9u
IG9uIHRoZSBkZXZpY2UgbXVzdCBiZSByZW5kZXJlZCB1bnJlY292ZXJhYmxlIGJlZm9yZQ0KPiB0
aGUNCj4gLSAqIGNvbW1hbmQgcmV0dXJucy4NCj4gLSAqDQo+IC0gKiBUaGlzIG9wZXJhdGlvbiBp
cyBhbmFsb2dvdXMgdG8gcGVyZm9ybWluZyBhIHRyaW0gKEFUQSkgb3IgdW5hbXAgKFNDU0kpLA0K
PiAtICogY29tbWFuZCBvbiBhIG5hdGl2ZSBkZXZpY2UuDQo+IC0gKg0KPiAtICogTW9yZSBpbmZv
cm1hdGlvbiBhYm91dCB0cmltL3VubWFwIG9wZXJhdGlvbnMgY2FuIGJlIGZvdW5kIGF0Og0KPiAt
ICogaHR0cDovL3QxMy5vcmcvRG9jdW1lbnRzL1VwbG9hZGVkRG9jdW1lbnRzL2RvY3MyMDA4Lw0K
PiAtICogICAgIGUwNzE1NHI2LURhdGFfU2V0X01hbmFnZW1lbnRfUHJvcG9zYWxfZm9yX0FUQS1B
Q1MyLmRvYw0KPiAtICogaHR0cDovL3d3dy5zZWFnYXRlLmNvbS9zdGF0aWNmaWxlcy9zdXBwb3J0
L2Rpc2MvbWFudWFscy8NCj4gLSAqICAgICBJbnRlcmZhY2UlMjBtYW51YWxzLzEwMDI5MzA2OGMu
cGRmDQo+IC0gKg0KPiAtICogT3B0aW9uYWwuICBTZWUgImZlYXR1cmUtZGlzY2FyZCIsICJkaXNj
YXJkLWFsaWdubWVudCIsDQo+IC0gKiAiZGlzY2FyZC1ncmFudWxhcml0eSIsIGFuZCAiZGlzY2Fy
ZC1zZWN1cmUiIGluIHRoZSBYZW5CdXMgbm9kZQ0KPiAtICogZG9jdW1lbnRhdGlvbiBhYm92ZS4N
Cj4gLSAqLw0KPiArKiBJbmRpY2F0ZSB0byB0aGUgYmFja2VuZCBkZXZpY2UgdGhhdCBhIHJlZ2lv
biBvZiBzdG9yYWdlIGlzIG5vIGxvbmdlciBpbg0KPiArKiB1c2UsIGFuZCBtYXkgYmUgZGlzY2Fy
ZGVkIGF0IGFueSB0aW1lIHdpdGhvdXQgaW1wYWN0IHRvIHRoZSBjbGllbnQuICBJZg0KPiArKiB0
aGUgQkxLSUZfRElTQ0FSRF9TRUNVUkUgZmxhZyBpcyBzZXQgb24gdGhlIHJlcXVlc3QsIGFsbCBj
b3BpZXMgb2YgdGhlDQo+ICsqIGRpc2NhcmRlZCByZWdpb24gb24gdGhlIGRldmljZSBtdXN0IGJl
IHJlbmRlcmVkIHVucmVjb3ZlcmFibGUgYmVmb3JlDQo+IHRoZQ0KPiArKiBjb21tYW5kIHJldHVy
bnMuDQo+ICsqDQo+ICsqIFRoaXMgb3BlcmF0aW9uIGlzIGFuYWxvZ291cyB0byBwZXJmb3JtaW5n
IGEgdHJpbSAoQVRBKSBvciB1bmFtcCAoU0NTSSksDQo+ICsqIGNvbW1hbmQgb24gYSBuYXRpdmUg
ZGV2aWNlLg0KPiArKg0KPiArKiBNb3JlIGluZm9ybWF0aW9uIGFib3V0IHRyaW0vdW5tYXAgb3Bl
cmF0aW9ucyBjYW4gYmUgZm91bmQgYXQ6DQo+ICsqIGh0dHA6Ly90MTMub3JnL0RvY3VtZW50cy9V
cGxvYWRlZERvY3VtZW50cy9kb2NzMjAwOC8NCj4gKyogICAgIGUwNzE1NHI2LURhdGFfU2V0X01h
bmFnZW1lbnRfUHJvcG9zYWxfZm9yX0FUQS1BQ1MyLmRvYw0KPiArKiBodHRwOi8vd3d3LnNlYWdh
dGUuY29tL3N0YXRpY2ZpbGVzL3N1cHBvcnQvZGlzYy9tYW51YWxzLw0KPiArKiAgICAgSW50ZXJm
YWNlJTIwbWFudWFscy8xMDAyOTMwNjhjLnBkZg0KPiArKg0KPiArKiBPcHRpb25hbC4gIFNlZSAi
ZmVhdHVyZS1kaXNjYXJkIiwgImRpc2NhcmQtYWxpZ25tZW50IiwNCj4gKyogImRpc2NhcmQtZ3Jh
bnVsYXJpdHkiLCBhbmQgImRpc2NhcmQtc2VjdXJlIiBpbiB0aGUgWGVuQnVzIG5vZGUNCj4gKyog
ZG9jdW1lbnRhdGlvbiBhYm92ZS4NCj4gKyovDQo+ICAjZGVmaW5lIEJMS0lGX09QX0RJU0NBUkQg
ICAgICAgICAgIDUNCj4gDQo+ICAvKg0KPiAtICogUmVjb2duaXplZCBpZiAiZmVhdHVyZS1tYXgt
aW5kaXJlY3Qtc2VnbWVudHMiIGluIHByZXNlbnQgaW4gdGhlIGJhY2tlbmQNCj4gLSAqIHhlbmJ1
cyBpbmZvLiBUaGUgImZlYXR1cmUtbWF4LWluZGlyZWN0LXNlZ21lbnRzIiBub2RlIGNvbnRhaW5z
IHRoZQ0KPiBtYXhpbXVtDQo+IC0gKiBudW1iZXIgb2Ygc2VnbWVudHMgYWxsb3dlZCBieSB0aGUg
YmFja2VuZCBwZXIgcmVxdWVzdC4gSWYgdGhlIG5vZGUgaXMNCj4gLSAqIHByZXNlbnQsIHRoZSBm
cm9udGVuZCBtaWdodCB1c2UgYmxraWZfcmVxdWVzdF9pbmRpcmVjdCBzdHJ1Y3RzIGluIG9yZGVy
IHRvDQo+IC0gKiBpc3N1ZSByZXF1ZXN0cyB3aXRoIG1vcmUgdGhhbiBCTEtJRl9NQVhfU0VHTUVO
VFNfUEVSX1JFUVVFU1QNCj4gKDExKS4gVGhlDQo+IC0gKiBtYXhpbXVtIG51bWJlciBvZiBpbmRp
cmVjdCBzZWdtZW50cyBpcyBmaXhlZCBieSB0aGUgYmFja2VuZCwgYnV0IHRoZQ0KPiAtICogZnJv
bnRlbmQgY2FuIGlzc3VlIHJlcXVlc3RzIHdpdGggYW55IG51bWJlciBvZiBpbmRpcmVjdCBzZWdt
ZW50cyBhcyBsb25nDQo+IGFzDQo+IC0gKiBpdCdzIGxlc3MgdGhhbiB0aGUgbnVtYmVyIHByb3Zp
ZGVkIGJ5IHRoZSBiYWNrZW5kLiBUaGUgaW5kaXJlY3RfZ3JlZnMNCj4gZmllbGQNCj4gLSAqIGlu
IGJsa2lmX3JlcXVlc3RfaW5kaXJlY3Qgc2hvdWxkIGJlIGZpbGxlZCBieSB0aGUgZnJvbnRlbmQg
d2l0aCB0aGUNCj4gLSAqIGdyYW50IHJlZmVyZW5jZXMgb2YgdGhlIHBhZ2VzIHRoYXQgYXJlIGhv
bGRpbmcgdGhlIGluZGlyZWN0IHNlZ21lbnRzLg0KPiAtICogVGhlc2UgcGFnZXMgYXJlIGZpbGxl
ZCB3aXRoIGFuIGFycmF5IG9mIGJsa2lmX3JlcXVlc3Rfc2VnbWVudCB0aGF0IGhvbGQNCj4gdGhl
DQo+IC0gKiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2VnbWVudHMuIFRoZSBudW1iZXIgb2YgaW5k
aXJlY3QgcGFnZXMgdG8gdXNlIGlzDQo+IC0gKiBkZXRlcm1pbmVkIGJ5IHRoZSBudW1iZXIgb2Yg
c2VnbWVudHMgYW4gaW5kaXJlY3QgcmVxdWVzdCBjb250YWlucy4NCj4gRXZlcnkNCj4gLSAqIGlu
ZGlyZWN0IHBhZ2UgY2FuIGNvbnRhaW4gYSBtYXhpbXVtIG9mDQo+IC0gKiAoUEFHRV9TSVpFIC8g
c2l6ZW9mKHN0cnVjdCBibGtpZl9yZXF1ZXN0X3NlZ21lbnQpKSBzZWdtZW50cywgc28gdG8NCj4g
LSAqIGNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGluZGlyZWN0IHBhZ2VzIHRvIHVzZSB3ZSBoYXZl
IHRvIGRvDQo+IC0gKiBjZWlsKGluZGlyZWN0X3NlZ21lbnRzIC8gKFBBR0VfU0laRSAvIHNpemVv
ZihzdHJ1Y3QNCj4gYmxraWZfcmVxdWVzdF9zZWdtZW50KSkpLg0KPiAtICoNCj4gLSAqIElmIGEg
YmFja2VuZCBkb2VzIG5vdCByZWNvZ25pemUgQkxLSUZfT1BfSU5ESVJFQ1QsIGl0IHNob3VsZCAq
bm90Kg0KPiAtICogY3JlYXRlIHRoZSAiZmVhdHVyZS1tYXgtaW5kaXJlY3Qtc2VnbWVudHMiIG5v
ZGUhDQo+IC0gKi8NCj4gKyogUmVjb2duaXplZCBpZiAiZmVhdHVyZS1tYXgtaW5kaXJlY3Qtc2Vn
bWVudHMiIGluIHByZXNlbnQgaW4gdGhlIGJhY2tlbmQNCj4gKyogeGVuYnVzIGluZm8uIFRoZSAi
ZmVhdHVyZS1tYXgtaW5kaXJlY3Qtc2VnbWVudHMiIG5vZGUgY29udGFpbnMgdGhlDQo+IG1heGlt
dW0NCj4gKyogbnVtYmVyIG9mIHNlZ21lbnRzIGFsbG93ZWQgYnkgdGhlIGJhY2tlbmQgcGVyIHJl
cXVlc3QuIElmIHRoZSBub2RlIGlzDQo+ICsqIHByZXNlbnQsIHRoZSBmcm9udGVuZCBtaWdodCB1
c2UgYmxraWZfcmVxdWVzdF9pbmRpcmVjdCBzdHJ1Y3RzIGluIG9yZGVyIHRvDQo+ICsqIGlzc3Vl
IHJlcXVlc3RzIHdpdGggbW9yZSB0aGFuIEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVA0K
PiAoMTEpLiBUaGUNCj4gKyogbWF4aW11bSBudW1iZXIgb2YgaW5kaXJlY3Qgc2VnbWVudHMgaXMg
Zml4ZWQgYnkgdGhlIGJhY2tlbmQsIGJ1dCB0aGUNCj4gKyogZnJvbnRlbmQgY2FuIGlzc3VlIHJl
cXVlc3RzIHdpdGggYW55IG51bWJlciBvZiBpbmRpcmVjdCBzZWdtZW50cyBhcyBsb25nDQo+IGFz
DQo+ICsqIGl0J3MgbGVzcyB0aGFuIHRoZSBudW1iZXIgcHJvdmlkZWQgYnkgdGhlIGJhY2tlbmQu
IFRoZSBpbmRpcmVjdF9ncmVmcw0KPiBmaWVsZA0KPiArKiBpbiBibGtpZl9yZXF1ZXN0X2luZGly
ZWN0IHNob3VsZCBiZSBmaWxsZWQgYnkgdGhlIGZyb250ZW5kIHdpdGggdGhlDQo+ICsqIGdyYW50
IHJlZmVyZW5jZXMgb2YgdGhlIHBhZ2VzIHRoYXQgYXJlIGhvbGRpbmcgdGhlIGluZGlyZWN0IHNl
Z21lbnRzLg0KPiArKiBUaGVzZSBwYWdlcyBhcmUgZmlsbGVkIHdpdGggYW4gYXJyYXkgb2YgYmxr
aWZfcmVxdWVzdF9zZWdtZW50IHRoYXQgaG9sZA0KPiB0aGUNCj4gKyogaW5mb3JtYXRpb24gYWJv
dXQgdGhlIHNlZ21lbnRzLiBUaGUgbnVtYmVyIG9mIGluZGlyZWN0IHBhZ2VzIHRvIHVzZSBpcw0K
PiArKiBkZXRlcm1pbmVkIGJ5IHRoZSBudW1iZXIgb2Ygc2VnbWVudHMgYW4gaW5kaXJlY3QgcmVx
dWVzdCBjb250YWlucy4NCj4gRXZlcnkNCj4gKyogaW5kaXJlY3QgcGFnZSBjYW4gY29udGFpbiBh
IG1heGltdW0gb2YNCj4gKyogKFBBR0VfU0laRSAvIHNpemVvZihzdHJ1Y3QgYmxraWZfcmVxdWVz
dF9zZWdtZW50KSkgc2VnbWVudHMsIHNvIHRvDQo+ICsqIGNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9m
IGluZGlyZWN0IHBhZ2VzIHRvIHVzZSB3ZSBoYXZlIHRvIGRvDQo+ICsqIGNlaWwoaW5kaXJlY3Rf
c2VnbWVudHMgLyAoUEFHRV9TSVpFIC8gc2l6ZW9mKHN0cnVjdA0KPiBibGtpZl9yZXF1ZXN0X3Nl
Z21lbnQpKSkuDQo+ICsqDQo+ICsqIElmIGEgYmFja2VuZCBkb2VzIG5vdCByZWNvZ25pemUgQkxL
SUZfT1BfSU5ESVJFQ1QsIGl0IHNob3VsZCAqbm90Kg0KPiArKiBjcmVhdGUgdGhlICJmZWF0dXJl
LW1heC1pbmRpcmVjdC1zZWdtZW50cyIgbm9kZSENCj4gKyovDQo+ICAjZGVmaW5lIEJMS0lGX09Q
X0lORElSRUNUICAgICAgICAgIDYNCj4gDQo+ICAvKg0KPiAtICogTWF4aW11bSBzY2F0dGVyL2dh
dGhlciBzZWdtZW50cyBwZXIgcmVxdWVzdC4NCj4gLSAqIFRoaXMgaXMgY2FyZWZ1bGx5IGNob3Nl
biBzbyB0aGF0IHNpemVvZihibGtpZl9yaW5nX3QpIDw9IFBBR0VfU0laRS4NCj4gLSAqIE5CLiBU
aGlzIGNvdWxkIGJlIDEyIGlmIHRoZSByaW5nIGluZGV4ZXMgd2VyZW4ndCBzdG9yZWQgaW4gdGhl
IHNhbWUgcGFnZS4NCj4gLSAqLw0KPiArKiBNYXhpbXVtIHNjYXR0ZXIvZ2F0aGVyIHNlZ21lbnRz
IHBlciByZXF1ZXN0Lg0KPiArKiBUaGlzIGlzIGNhcmVmdWxseSBjaG9zZW4gc28gdGhhdCBzaXpl
b2YoYmxraWZfcmluZ190KSA8PSBQQUdFX1NJWkUuDQo+ICsqIE5CLiBUaGlzIGNvdWxkIGJlIDEy
IGlmIHRoZSByaW5nIGluZGV4ZXMgd2VyZW4ndCBzdG9yZWQgaW4gdGhlIHNhbWUgcGFnZS4NCj4g
KyovDQo+ICAjZGVmaW5lIEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVCAxMQ0KPiANCj4g
IC8qDQo+IC0gKiBNYXhpbXVtIG51bWJlciBvZiBpbmRpcmVjdCBwYWdlcyB0byB1c2UgcGVyIHJl
cXVlc3QuDQo+IC0gKi8NCj4gKyogTWF4aW11bSBudW1iZXIgb2YgaW5kaXJlY3QgcGFnZXMgdG8g
dXNlIHBlciByZXF1ZXN0Lg0KPiArKi8NCj4gICNkZWZpbmUgQkxLSUZfTUFYX0lORElSRUNUX1BB
R0VTX1BFUl9SRVFVRVNUIDgNCj4gDQo+ICAvKg0KPiAtICogTkIuIGZpcnN0X3NlY3QgYW5kIGxh
c3Rfc2VjdCBpbiBibGtpZl9yZXF1ZXN0X3NlZ21lbnQsIGFzIHdlbGwgYXMNCj4gLSAqIHNlY3Rv
cl9udW1iZXIgaW4gYmxraWZfcmVxdWVzdCwgYXJlIGFsd2F5cyBleHByZXNzZWQgaW4gNTEyLWJ5
dGUgdW5pdHMuDQo+IC0gKiBIb3dldmVyIHRoZXkgbXVzdCBiZSBwcm9wZXJseSBhbGlnbmVkIHRv
IHRoZSByZWFsIHNlY3RvciBzaXplIG9mIHRoZQ0KPiAtICogcGh5c2ljYWwgZGlzaywgd2hpY2gg
aXMgcmVwb3J0ZWQgaW4gdGhlICJwaHlzaWNhbC1zZWN0b3Itc2l6ZSIgbm9kZSBpbg0KPiAtICog
dGhlIGJhY2tlbmQgeGVuYnVzIGluZm8uIEFsc28gdGhlIHhlbmJ1cyAic2VjdG9ycyIgbm9kZSBp
cyBleHByZXNzZWQgaW4NCj4gLSAqIDUxMi1ieXRlIHVuaXRzLg0KPiAtICovDQo+ICsqIE5CLiBm
aXJzdF9zZWN0IGFuZCBsYXN0X3NlY3QgaW4gYmxraWZfcmVxdWVzdF9zZWdtZW50LCBhcyB3ZWxs
IGFzDQo+ICsqIHNlY3Rvcl9udW1iZXIgaW4gYmxraWZfcmVxdWVzdCwgYXJlIGFsd2F5cyBleHBy
ZXNzZWQgaW4gNTEyLWJ5dGUgdW5pdHMuDQo+ICsqIEhvd2V2ZXIgdGhleSBtdXN0IGJlIHByb3Bl
cmx5IGFsaWduZWQgdG8gdGhlIHJlYWwgc2VjdG9yIHNpemUgb2YgdGhlDQo+ICsqIHBoeXNpY2Fs
IGRpc2ssIHdoaWNoIGlzIHJlcG9ydGVkIGluIHRoZSAicGh5c2ljYWwtc2VjdG9yLXNpemUiIG5v
ZGUgaW4NCj4gKyogdGhlIGJhY2tlbmQgeGVuYnVzIGluZm8uIEFsc28gdGhlIHhlbmJ1cyAic2Vj
dG9ycyIgbm9kZSBpcyBleHByZXNzZWQgaW4NCj4gKyogNTEyLWJ5dGUgdW5pdHMuDQo+ICsqLw0K
PiAgc3RydWN0IGJsa2lmX3JlcXVlc3Rfc2VnbWVudCB7DQo+ICAgICAgZ3JhbnRfcmVmX3QgZ3Jl
ZjsgICAgICAgIC8qIHJlZmVyZW5jZSB0byBJL08gYnVmZmVyIGZyYW1lICAgICAgICAqLw0KPiAt
ICAgIC8qIEBmaXJzdF9zZWN0OiBmaXJzdCBzZWN0b3IgaW4gZnJhbWUgdG8gdHJhbnNmZXIgKGlu
Y2x1c2l2ZSkuICAgKi8NCj4gLSAgICAvKiBAbGFzdF9zZWN0OiBsYXN0IHNlY3RvciBpbiBmcmFt
ZSB0byB0cmFuc2ZlciAoaW5jbHVzaXZlKS4gICAgICovDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8qIEBmaXJzdF9zZWN0OiBmaXJzdCBzZWN0b3IgaW4gZnJhbWUgdG8gdHJhbnNm
ZXIgKGluY2x1c2l2ZSkuICAgKi8NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
QGxhc3Rfc2VjdDogbGFzdCBzZWN0b3IgaW4gZnJhbWUgdG8gdHJhbnNmZXIgKGluY2x1c2l2ZSku
ICAgICAqLw0KPiAgICAgIHVpbnQ4X3QgICAgIGZpcnN0X3NlY3QsIGxhc3Rfc2VjdDsNCj4gIH07
DQo+IA0KPiAgLyoNCj4gLSAqIFN0YXJ0aW5nIHJpbmcgZWxlbWVudCBmb3IgYW55IEkvTyByZXF1
ZXN0Lg0KPiAtICovDQo+ICsqIFN0YXJ0aW5nIHJpbmcgZWxlbWVudCBmb3IgYW55IEkvTyByZXF1
ZXN0Lg0KPiArKi8NCj4gIHN0cnVjdCBibGtpZl9yZXF1ZXN0IHsNCj4gICAgICB1aW50OF90ICAg
ICAgICBvcGVyYXRpb247ICAgIC8qIEJMS0lGX09QXz8/PyAgICAgICAgICAgICAgICAgICAgICAg
ICAqLw0KPiAgICAgIHVpbnQ4X3QgICAgICAgIG5yX3NlZ21lbnRzOyAgLyogbnVtYmVyIG9mIHNl
Z21lbnRzICAgICAgICAgICAgICAgICAgICovDQo+IEBAIC01NDEsOSArNjM1LDkgQEAgc3RydWN0
IGJsa2lmX3JlcXVlc3Qgew0KPiAgdHlwZWRlZiBzdHJ1Y3QgYmxraWZfcmVxdWVzdCBibGtpZl9y
ZXF1ZXN0X3Q7DQo+IA0KPiAgLyoNCj4gLSAqIENhc3QgdG8gdGhpcyBzdHJ1Y3R1cmUgd2hlbiBi
bGtpZl9yZXF1ZXN0Lm9wZXJhdGlvbiA9PQ0KPiBCTEtJRl9PUF9ESVNDQVJEDQo+IC0gKiBzaXpl
b2Yoc3RydWN0IGJsa2lmX3JlcXVlc3RfZGlzY2FyZCkgPD0gc2l6ZW9mKHN0cnVjdCBibGtpZl9y
ZXF1ZXN0KQ0KPiAtICovDQo+ICsqIENhc3QgdG8gdGhpcyBzdHJ1Y3R1cmUgd2hlbiBibGtpZl9y
ZXF1ZXN0Lm9wZXJhdGlvbiA9PQ0KPiBCTEtJRl9PUF9ESVNDQVJEDQo+ICsqIHNpemVvZihzdHJ1
Y3QgYmxraWZfcmVxdWVzdF9kaXNjYXJkKSA8PSBzaXplb2Yoc3RydWN0IGJsa2lmX3JlcXVlc3Qp
DQo+ICsqLw0KPiAgc3RydWN0IGJsa2lmX3JlcXVlc3RfZGlzY2FyZCB7DQo+ICAgICAgdWludDhf
dCAgICAgICAgb3BlcmF0aW9uOyAgICAvKiBCTEtJRl9PUF9ESVNDQVJEICAgICAgICAgICAgICAg
ICAgICAgKi8NCj4gICAgICB1aW50OF90ICAgICAgICBmbGFnOyAgICAgICAgIC8qIEJMS0lGX0RJ
U0NBUkRfU0VDVVJFIG9yIHplcm8gICAgICAgICAqLw0KPiBAQCAtNTc3LDE4ICs2NzEsMTggQEAg
c3RydWN0IGJsa2lmX3Jlc3BvbnNlIHsNCj4gIHR5cGVkZWYgc3RydWN0IGJsa2lmX3Jlc3BvbnNl
IGJsa2lmX3Jlc3BvbnNlX3Q7DQo+IA0KPiAgLyoNCj4gLSAqIFNUQVRVUyBSRVRVUk4gQ09ERVMu
DQo+IC0gKi8NCj4gLSAvKiBPcGVyYXRpb24gbm90IHN1cHBvcnRlZCAob25seSBoYXBwZW5zIG9u
IGJhcnJpZXIgd3JpdGVzKS4gKi8NCj4gKyogU1RBVFVTIFJFVFVSTiBDT0RFUy4NCj4gKyovDQo+
ICsvKiBPcGVyYXRpb24gbm90IHN1cHBvcnRlZCAob25seSBoYXBwZW5zIG9uIGJhcnJpZXIgd3Jp
dGVzKS4gKi8NCj4gICNkZWZpbmUgQkxLSUZfUlNQX0VPUE5PVFNVUFAgIC0yDQo+IC0gLyogT3Bl
cmF0aW9uIGZhaWxlZCBmb3Igc29tZSB1bnNwZWNpZmllZCByZWFzb24gKC1FSU8pLiAqLw0KPiAr
LyogT3BlcmF0aW9uIGZhaWxlZCBmb3Igc29tZSB1bnNwZWNpZmllZCByZWFzb24gKC1FSU8pLiAq
Lw0KPiAgI2RlZmluZSBCTEtJRl9SU1BfRVJST1IgICAgICAgLTENCj4gLSAvKiBPcGVyYXRpb24g
Y29tcGxldGVkIHN1Y2Nlc3NmdWxseS4gKi8NCj4gKy8qIE9wZXJhdGlvbiBjb21wbGV0ZWQgc3Vj
Y2Vzc2Z1bGx5LiAqLw0KPiAgI2RlZmluZSBCTEtJRl9SU1BfT0tBWSAgICAgICAgIDANCj4gDQo+
ICAvKg0KPiAtICogR2VuZXJhdGUgYmxraWYgcmluZyBzdHJ1Y3R1cmVzIGFuZCB0eXBlcy4NCj4g
LSAqLw0KPiArKiBHZW5lcmF0ZSBibGtpZiByaW5nIHN0cnVjdHVyZXMgYW5kIHR5cGVzLg0KPiAr
Ki8NCj4gIERFRklORV9SSU5HX1RZUEVTKGJsa2lmLCBzdHJ1Y3QgYmxraWZfcmVxdWVzdCwgc3Ry
dWN0IGJsa2lmX3Jlc3BvbnNlKTsNCj4gDQo+ICAjZGVmaW5lIFZESVNLX0NEUk9NICAgICAgICAw
eDENCj4gQEAgLTU5OCwxMSArNjkyLDExIEBAIERFRklORV9SSU5HX1RZUEVTKGJsa2lmLCBzdHJ1
Y3QgYmxraWZfcmVxdWVzdCwNCj4gc3RydWN0IGJsa2lmX3Jlc3BvbnNlKTsNCj4gICNlbmRpZiAv
KiBfX1hFTl9QVUJMSUNfSU9fQkxLSUZfSF9fICovDQo+IA0KPiAgLyoNCj4gLSAqIExvY2FsIHZh
cmlhYmxlczoNCj4gLSAqIG1vZGU6IEMNCj4gLSAqIGMtZmlsZS1zdHlsZTogIkJTRCINCj4gLSAq
IGMtYmFzaWMtb2Zmc2V0OiA0DQo+IC0gKiB0YWItd2lkdGg6IDQNCj4gLSAqIGluZGVudC10YWJz
LW1vZGU6IG5pbA0KPiAtICogRW5kOg0KPiAtICovDQo+ICsqIExvY2FsIHZhcmlhYmxlczoNCj4g
KyogbW9kZTogQw0KPiArKiBjLWZpbGUtc3R5bGU6ICJCU0QiDQo+ICsqIGMtYmFzaWMtb2Zmc2V0
OiA0DQo+ICsqIHRhYi13aWR0aDogNA0KPiArKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwNCj4gKyog
RW5kOg0KPiArKi8NCj4gLS0NCj4gMi4xNi4yLndpbmRvd3MuMQ0KPiANCj4gDQo+IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBt
YWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBz
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZl
bCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v
bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 14:52:51 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 14:52:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPqqo-0000kl-NS; Mon, 04 Jun 2018 14:52:50 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=uma/=iw=citrix.com=prvs=6860a9805=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fPqqn-0000kg-MG
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 14:52:49 +0000
X-Inumbo-ID: a2961dba-6806-11e8-9728-bc764e045a96
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id a2961dba-6806-11e8-9728-bc764e045a96;
 Mon, 04 Jun 2018 16:50:35 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.49,476,1520899200"; d="scan'208";a="74116629"
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/9] Query "multi-queue-max-queues"
Thread-Index: AQHT9zTuyiRuDP15pE2ic4+2kR/4VKRQOLcQ
Date: Mon, 4 Jun 2018 14:52:12 +0000
Message-ID: <e86c88227c184941ab6c2fab5b290166@AMSPEX02CL03.citrite.net>
References: <20180529100717.8340-1-owen.smith@citrix.com>
 <20180529100717.8340-3-owen.smith@citrix.com>
In-Reply-To: <20180529100717.8340-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
Subject: Re: [win-pv-devel] [PATCH 2/9] Query "multi-queue-max-queues"
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjkgTWF5IDIwMTggMTE6MDcNCj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBj
aXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0ggMi85XSBRdWVyeSAi
bXVsdGktcXVldWUtbWF4LXF1ZXVlcyINCj4gDQo+IFF1ZXJ5ICJtdWx0aS1xdWV1ZS1tYXgtcXVl
dWVzIiwgYW5kIG92ZXJyaWRlIGlmIG5lY2Nlc3NhcnksIGFuZCB3b3JrDQo+IG91dCBhIHN1aXRh
YmxlIHZhbHVlIGZvciB0aGUgbnVtYmVyIG9mIHF1ZXVlcyB1c2VkLiBBbHNvIGFkZHMgdGhlDQo+
IGNvbW1lbnRlZCBvdXQgd3JpdGluZyBjb2RlIHRvIHNldCAibXVsdGktcXVldWUtbnVtLXF1ZXVl
cyINCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNv
bT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoN
Cj4gLS0tDQo+ICBzcmMveGVudmJkL2RyaXZlci5jICAgfCAgIDMgKy0NCj4gIHNyYy94ZW52YmQv
ZHJpdmVyLmggICB8ICAgMSArDQo+ICBzcmMveGVudmJkL2Zyb250ZW5kLmMgfCAyNzAgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0NCj4gLS0tLS0tLS0tLS0tDQo+ICBzcmMv
eGVudmJkL2Zyb250ZW5kLmggfCAgIDIgKw0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAxODQgaW5zZXJ0
aW9ucygrKSwgOTIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9k
cml2ZXIuYyBiL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gaW5kZXggNTliMzgwYy4uMmU5YmE1NCAx
MDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9kcml2ZXIuYw0KPiArKysgYi9zcmMveGVudmJkL2Ry
aXZlci5jDQo+IEBAIC0yNjcsNyArMjY3LDggQEAgX19Ecml2ZXJJbml0aWFsaXplT3ZlcnJpZGVz
KA0KPiAgICAgICAgICAgICAgICB7ICJkaXNjYXJkLXNlY3VyZSIsIEZlYXR1cmVEaXNjYXJkU2Vj
dXJlIH0sDQo+ICAgICAgICAgICAgICAgIHsgImRpc2NhcmQtYWxpZ25tZW50IiwgRmVhdHVyZURp
c2NhcmRBbGlnbm1lbnQgfSwNCj4gICAgICAgICAgICAgICAgeyAiZGlzY2FyZC1ncmFudWxhcml0
eSIsIEZlYXR1cmVEaXNjYXJkR3JhbnVsYXJpdHkgfSwNCj4gLSAgICAgICAgICAgICAgeyAibWF4
LXJpbmctcGFnZS1vcmRlciIsIEZlYXR1cmVNYXhSaW5nUGFnZU9yZGVyIH0NCj4gKyAgICAgICAg
ICAgICAgeyAibWF4LXJpbmctcGFnZS1vcmRlciIsIEZlYXR1cmVNYXhSaW5nUGFnZU9yZGVyIH0s
DQo+ICsgICAgICAgICAgICAgIHsgIm11bHRpLXF1ZXVlLW1heC1xdWV1ZXMiLCBGZWF0dXJlTXVs
dGlRdWV1ZU1heFF1ZXVlcyB9DQo+ICAgICAgICAgICAgfTsNCj4gDQo+ICAgICAgZm9yIChJbmRl
eCA9IDA7IEluZGV4IDwgQVJSQVlTSVpFKE1hcHBpbmcpOyBJbmRleCsrKSB7DQo+IGRpZmYgLS1n
aXQgYS9zcmMveGVudmJkL2RyaXZlci5oIGIvc3JjL3hlbnZiZC9kcml2ZXIuaA0KPiBpbmRleCBk
OTljMDlhLi41YTI0YzRhIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2RyaXZlci5oDQo+ICsr
KyBiL3NyYy94ZW52YmQvZHJpdmVyLmgNCj4gQEAgLTgwLDYgKzgwLDcgQEAgdHlwZWRlZiBlbnVt
IF9YRU5WQkRfRkVBVFVSRSB7DQo+ICAgICAgRmVhdHVyZURpc2NhcmRBbGlnbm1lbnQsDQo+ICAg
ICAgRmVhdHVyZURpc2NhcmRHcmFudWxhcml0eSwNCj4gICAgICBGZWF0dXJlTWF4UmluZ1BhZ2VP
cmRlciwNCj4gKyAgICBGZWF0dXJlTXVsdGlRdWV1ZU1heFF1ZXVlcywNCj4gDQo+ICAgICAgLy8g
QWRkIGFueSBuZXcgZmVhdHVyZXMgYmVmb3JlIHRoaXMgZW51bQ0KPiAgICAgIE51bWJlck9mRmVh
dHVyZXMNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvZnJvbnRlbmQuYyBiL3NyYy94ZW52YmQv
ZnJvbnRlbmQuYw0KPiBpbmRleCBiN2U2MWMyLi5kYjk2YTM2IDEwMDY0NA0KPiAtLS0gYS9zcmMv
eGVudmJkL2Zyb250ZW5kLmMNCj4gKysrIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5jDQo+IEBAIC03
NCw2ICs3NCw4IEBAIHN0cnVjdCBfWEVOVkJEX0ZST05URU5EIHsNCj4gICAgICBYRU5WQkRfRElT
S0lORk8gICAgICAgICAgICAgRGlza0luZm87DQo+ICAgICAgWEVOVkJEX1BBR0UgICAgICAgICAg
ICAgICAgIFBhZ2U4MDsNCj4gICAgICBYRU5WQkRfUEFHRSAgICAgICAgICAgICAgICAgUGFnZTgz
Ow0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICBNYXhRdWV1ZXM7DQo+ICsgICAg
VUxPTkcgICAgICAgICAgICAgICAgICAgICAgIE51bVF1ZXVlczsNCj4gDQo+ICAgICAgLy8gSW50
ZXJmYWNlcyB0byBYZW5CdXMNCj4gICAgICBYRU5CVVNfU1RPUkVfSU5URVJGQUNFICAgICAgU3Rv
cmVJbnRlcmZhY2U7DQo+IEBAIC0xMTEsNiArMTEzLDEwMSBAQCBfX1hlbnZiZFN0YXRlTmFtZSgN
Cj4gICAgICBkZWZhdWx0OiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiVU5LTk9XTiI7
DQo+ICAgICAgfQ0KPiAgfQ0KPiArDQo+ICsNCj4gKyNkZWZpbmUgRlJPTlRFTkRfR0VUX1BST1BF
UlRZKF9uYW1lLCBfdHlwZSkgICAgIFwNCj4gK3N0YXRpYyBGT1JDRUlOTElORSBfdHlwZSAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCj4gK19fRnJvbnRlbmRHZXQgIyMgX25hbWUgIyMgKCAgICAg
ICAgICAgICAgICAgICAgIFwNCj4gKyAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICBGcm9udGVu
ZCAgICAgICAgICAgIFwNCj4gKyAgICApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCj4gK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCj4gKyAgICByZXR1cm4gRnJvbnRlbmQtPiAjIyBfbmFtZSAjIyA7ICAgICAgICAg
ICAgIFwNCj4gK30gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCj4gK190eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
Cj4gK0Zyb250ZW5kR2V0ICMjIF9uYW1lICMjICggICAgICAgICAgICAgICAgICAgICAgIFwNCj4g
KyAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICBGcm9udGVuZCAgICAgICAgICAgIFwNCj4gKyAg
ICApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gK3sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICByZXR1
cm4gX19Gcm9udGVuZEdldCAjIyBfbmFtZSAjIyAoRnJvbnRlbmQpO1wNCj4gK30NCj4gKw0KPiAr
RlJPTlRFTkRfR0VUX1BST1BFUlRZKFRhcmdldCwgUFhFTlZCRF9UQVJHRVQpDQo+ICtGUk9OVEVO
RF9HRVRfUFJPUEVSVFkoUmluZywgUFhFTlZCRF9SSU5HKQ0KPiArRlJPTlRFTkRfR0VUX1BST1BF
UlRZKEdyYW50ZXIsIFBYRU5WQkRfR1JBTlRFUikNCj4gK0ZST05URU5EX0dFVF9QUk9QRVJUWShU
YXJnZXRJZCwgVUxPTkcpDQo+ICtGUk9OVEVORF9HRVRfUFJPUEVSVFkoRGV2aWNlSWQsIFVMT05H
KQ0KPiArRlJPTlRFTkRfR0VUX1BST1BFUlRZKEJhY2tlbmREb21haW4sIFVMT05HKQ0KPiArRlJP
TlRFTkRfR0VUX1BST1BFUlRZKEJhY2tlbmRQYXRoLCBQQ0hBUikNCj4gK0ZST05URU5EX0dFVF9Q
Uk9QRVJUWShGcm9udGVuZFBhdGgsIFBDSEFSKQ0KPiArLy9GUk9OVEVORF9HRVRfUFJPUEVSVFko
Q2FwcywgUFhFTlZCRF9DQVBTKQ0KPiArUFhFTlZCRF9DQVBTDQo+ICtGcm9udGVuZEdldENhcHMo
DQo+ICsgICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgRnJvbnRlbmQNCj4gKyAgICApDQo+ICt7
DQo+ICsgICAgcmV0dXJuICZGcm9udGVuZC0+Q2FwczsNCj4gK30NCj4gKy8vRlJPTlRFTkRfR0VU
X1BST1BFUlRZKEZlYXR1cmVzLCBQWEVOVkJEX0ZFQVRVUkVTKQ0KPiArUFhFTlZCRF9GRUFUVVJF
Uw0KPiArRnJvbnRlbmRHZXRGZWF0dXJlcygNCj4gKyAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAg
ICBGcm9udGVuZA0KPiArICAgICkNCj4gK3sNCj4gKyAgICByZXR1cm4gJkZyb250ZW5kLT5GZWF0
dXJlczsNCj4gK30NCj4gKy8vRlJPTlRFTkRfR0VUX1BST1BFUlRZKERpc2tJbmZvLCBQWEVOVkJE
X0RJU0tJTkZPKQ0KPiArUFhFTlZCRF9ESVNLSU5GTw0KPiArRnJvbnRlbmRHZXREaXNrSW5mbygN
Cj4gKyAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICBGcm9udGVuZA0KPiArICAgICkNCj4gK3sN
Cj4gKyAgICByZXR1cm4gJkZyb250ZW5kLT5EaXNrSW5mbzsNCj4gK30NCj4gKy8vRlJPTlRFTkRf
R0VUX1BST1BFUlRZKENvbm5lY3RlZCwgQk9PTEVBTikNCj4gK0JPT0xFQU4NCj4gK0Zyb250ZW5k
R2V0Q29ubmVjdGVkKA0KPiArICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgIEZyb250ZW5kDQo+
ICsgICAgKQ0KPiArew0KPiArICAgIHJldHVybiBGcm9udGVuZC0+Q2Fwcy5Db25uZWN0ZWQ7DQo+
ICt9DQo+ICsvL0ZST05URU5EX0dFVF9QUk9QRVJUWShSZWFkT25seSwgQk9PTEVBTikNCj4gK0JP
T0xFQU4NCj4gK0Zyb250ZW5kR2V0UmVhZE9ubHkoDQo+ICsgICAgSU4gIFBYRU5WQkRfRlJPTlRF
TkQgICAgRnJvbnRlbmQNCj4gKyAgICApDQo+ICt7DQo+ICsgICAgcmV0dXJuICEhKEZyb250ZW5k
LT5EaXNrSW5mby5EaXNrSW5mbyAmIFZESVNLX1JFQURPTkxZKTsNCj4gK30NCj4gKy8vRlJPTlRF
TkRfR0VUX1BST1BFUlRZKERpc2NhcmQsIEJPT0xFQU4pDQo+ICtCT09MRUFODQo+ICtGcm9udGVu
ZEdldERpc2NhcmQoDQo+ICsgICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgRnJvbnRlbmQNCj4g
KyAgICApDQo+ICt7DQo+ICsgICAgcmV0dXJuIEZyb250ZW5kLT5EaXNrSW5mby5EaXNjYXJkOw0K
PiArfQ0KPiArLy9GUk9OVEVORF9HRVRfUFJPUEVSVFkoRmx1c2hDYWNoZSwgQk9PTEVBTikNCj4g
K0JPT0xFQU4NCj4gK0Zyb250ZW5kR2V0Rmx1c2hDYWNoZSgNCj4gKyAgICBJTiAgUFhFTlZCRF9G
Uk9OVEVORCAgICBGcm9udGVuZA0KPiArICAgICkNCj4gK3sNCj4gKyAgICByZXR1cm4gRnJvbnRl
bmQtPkRpc2tJbmZvLkZsdXNoQ2FjaGU7DQo+ICt9DQo+ICsvL0ZST05URU5EX0dFVF9QUk9QRVJU
WShCYXJyaWVyLCBCT09MRUFOKQ0KPiArQk9PTEVBTg0KPiArRnJvbnRlbmRHZXRCYXJyaWVyKA0K
PiArICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgIEZyb250ZW5kDQo+ICsgICAgKQ0KPiArew0K
PiArICAgIHJldHVybiBGcm9udGVuZC0+RGlza0luZm8uQmFycmllcjsNCj4gK30NCj4gK0ZST05U
RU5EX0dFVF9QUk9QRVJUWShNYXhRdWV1ZXMsIFVMT05HKQ0KPiArRlJPTlRFTkRfR0VUX1BST1BF
UlRZKE51bVF1ZXVlcywgVUxPTkcpDQo+ICsNCj4gKyN1bmRlZiBGUk9OVEVORF9HRVRfUFJPUEVS
VFkNCj4gKw0KPiANCj4gLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCj4gPT09PT09PT09PT09PT09PT09PT0NCj4gICNkZWZpbmUgRlJP
TlRFTkRfUE9PTF9UQUcgICAgICAgICAgICAndG5GWCcNCj4gIF9fY2hlY2tSZXR1cm4NCj4gQEAg
LTEwODEsNiArMTE3OCwzOCBAQCBmYWlsMToNCj4gICAgICBFcnJvcigiRmFpbDEgKCUwOHgpXG4i
LCBTdGF0dXMpOw0KPiAgICAgIHJldHVybiBTdGF0dXM7DQo+ICB9DQo+ICtzdGF0aWMgVk9JRA0K
PiArRnJvbnRlbmRTZXROdW1RdWV1ZXMoDQo+ICsgICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAg
RnJvbnRlbmQNCj4gKyAgICApDQo+ICt7DQo+ICsgICAgUENIQVIgICAgICAgICAgICAgICAgICAg
QnVmZmVyOw0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgIEJhY2tlbmRNYXhRdWV1ZXM7
DQo+ICsgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgc3RhdHVzOw0KPiArDQo+ICsgICAgc3Rh
dHVzID0gWEVOQlVTX1NUT1JFKFJlYWQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICZG
cm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIF9fRnJvbnRlbmRHZXRCYWNrZW5kUGF0
aChGcm9udGVuZCksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICJtdWx0aS1xdWV1ZS1t
YXgtcXVldWVzIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgJkJ1ZmZlcik7DQo+ICsg
ICAgaWYgKE5UX1NVQ0NFU1Moc3RhdHVzKSkgew0KPiArICAgICAgICBCYWNrZW5kTWF4UXVldWVz
ID0gKFVMT05HKXN0cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCk7DQo+ICsNCj4gKyAgICAgICAgWEVO
QlVTX1NUT1JFKEZyZWUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3Jl
SW50ZXJmYWNlLA0KPiArICAgICAgICAgICAgICAgICAgICAgQnVmZmVyKTsNCj4gKyAgICB9IGVs
c2Ugew0KPiArICAgICAgICBCYWNrZW5kTWF4UXVldWVzID0gMTsNCj4gKyAgICB9DQo+ICsNCj4g
KyAgICBGcm9udGVuZC0+TnVtUXVldWVzID0gX19taW4oX19Gcm9udGVuZEdldE1heFF1ZXVlcyhG
cm9udGVuZCksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhY2tlbmRNYXhR
dWV1ZXMpOw0KPiArDQo+ICsgICAgVmVyYm9zZSgiVGFyZ2V0WyV1XSBOdW1RdWV1ZXMgJXVcbiIs
DQo+ICsgICAgICAgICAgICBfX0Zyb250ZW5kR2V0VGFyZ2V0SWQoRnJvbnRlbmQpLA0KPiArICAg
ICAgICAgICAgRnJvbnRlbmQtPk51bVF1ZXVlcyk7DQo+ICt9DQo+ICBfX2Rydl9yZXF1aXJlc0lS
UUwoRElTUEFUQ0hfTEVWRUwpDQo+ICBzdGF0aWMgTlRTVEFUVVMNCj4gIEZyb250ZW5kQ29ubmVj
dCgNCj4gQEAgLTEwOTAsNiArMTIxOSw4IEBAIEZyb250ZW5kQ29ubmVjdCgNCj4gICAgICBOVFNU
QVRVUyAgICAgICAgU3RhdHVzOw0KPiAgICAgIFhlbmJ1c1N0YXRlICAgICBCYWNrZW5kU3RhdGU7
DQo+IA0KPiArICAgIEZyb250ZW5kU2V0TnVtUXVldWVzKEZyb250ZW5kKTsNCj4gKw0KPiAgICAg
IC8vIEFsbG9jIFJpbmcsIENyZWF0ZSBFdnRjaG4sIEdudHRhYiBtYXANCj4gICAgICBTdGF0dXMg
PSBHcmFudGVyQ29ubmVjdChGcm9udGVuZC0+R3JhbnRlcik7DQo+ICAgICAgaWYgKCFOVF9TVUND
RVNTKFN0YXR1cykpDQo+IEBAIC0xMTQ3LDYgKzEyNzgsMTYgQEAgRnJvbnRlbmRDb25uZWN0KA0K
PiAgICAgICAgICBpZiAoIU5UX1NVQ0NFU1MoU3RhdHVzKSkNCj4gICAgICAgICAgICAgIGdvdG8g
YWJvcnQ7DQo+IA0KPiArICAgICAgICAvL3N0YXR1cyA9IFhFTkJVU19TVE9SRShQcmludGYsDQo+
ICsgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZh
Y2UsDQo+ICsgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIFRyYW5zYWN0aW9uLA0KPiAr
ICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZC0+RnJvbnRlbmRQYXRoLA0K
PiArICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAibXVsdGktcXVldWUtbnVtLXF1ZXVl
cyIsDQo+ICsgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICIldSIsDQo+ICsgICAgICAg
IC8vICAgICAgICAgICAgICAgICAgICAgIF9fRnJvbnRlbmRHZXROdW1RdWV1ZXMoRnJvbnRlbmQp
KTsNCj4gKyAgICAgICAgLy9pZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gKyAgICAgICAgLy8g
ICAgZ290byBhYm9ydDsNCj4gKw0KPiAgICAgICAgICBTdGF0dXMgPSBYRU5CVVNfU1RPUkUoVHJh
bnNhY3Rpb25FbmQsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQt
PlN0b3JlSW50ZXJmYWNlLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNh
Y3Rpb24sDQo+IEBAIC0xMjE3LDYgKzEzNTgsNyBAQCBmYWlsMjoNCj4gICAgICBHcmFudGVyRGlz
Y29ubmVjdChGcm9udGVuZC0+R3JhbnRlcik7DQo+ICBmYWlsMToNCj4gICAgICBFcnJvcigiRmFp
bDEgKCUwOHgpXG4iLCBTdGF0dXMpOw0KPiArICAgIEZyb250ZW5kLT5OdW1RdWV1ZXMgPSAwOw0K
PiAgICAgIHJldHVybiBTdGF0dXM7DQo+ICB9DQo+ICBfX2Rydl9yZXF1aXJlc0lSUUwoRElTUEFU
Q0hfTEVWRUwpDQo+IEBAIC0xMjI4LDYgKzEzNzAsOCBAQCBGcm9udGVuZERpc2Nvbm5lY3QoDQo+
ICAgICAgUmluZ0Rpc2Nvbm5lY3QoRnJvbnRlbmQtPlJpbmcpOw0KPiAgICAgIEdyYW50ZXJEaXNj
b25uZWN0KEZyb250ZW5kLT5HcmFudGVyKTsNCj4gDQo+ICsgICAgRnJvbnRlbmQtPk51bVF1ZXVl
cyA9IDA7DQo+ICsNCj4gICAgICBCYXNlNjRGcmVlKEZyb250ZW5kLT5QYWdlODAuRGF0YSk7DQo+
ICAgICAgRnJvbnRlbmQtPlBhZ2U4MC5EYXRhID0gTlVMTDsNCj4gICAgICBGcm9udGVuZC0+UGFn
ZTgwLlNpemUgPSAwOw0KPiBAQCAtMTcyNiw2ICsxODcwLDI5IEBAIGZhaWwxOg0KPiAgICAgIHJl
dHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiArc3RhdGljIFZPSUQNCj4gK0Zyb250ZW5kU2V0TWF4
UXVldWVzKA0KPiArICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgIEZyb250ZW5kDQo+ICsgICAg
KQ0KPiArew0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgIEZyb250ZW5kTWF4UXVldWVz
Ow0KPiArDQo+ICsgICAgRnJvbnRlbmQtPk1heFF1ZXVlcyA9DQo+IEtlUXVlcnlBY3RpdmVQcm9j
ZXNzb3JDb3VudEV4KEFMTF9QUk9DRVNTT1JfR1JPVVBTKTsNCj4gKw0KPiArICAgIGlmIChEcml2
ZXJHZXRGZWF0dXJlT3ZlcnJpZGUoRmVhdHVyZU11bHRpUXVldWVNYXhRdWV1ZXMsDQo+ICsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmRNYXhRdWV1ZXMpKSB7DQo+ICsg
ICAgICAgIGlmIChGcm9udGVuZE1heFF1ZXVlcyA8IEZyb250ZW5kLT5NYXhRdWV1ZXMpDQo+ICsg
ICAgICAgICAgICBGcm9udGVuZC0+TWF4UXVldWVzID0gRnJvbnRlbmRNYXhRdWV1ZXM7DQo+ICsg
ICAgfQ0KPiArDQo+ICsgICAgaWYgKEZyb250ZW5kLT5NYXhRdWV1ZXMgPT0gMCkNCj4gKyAgICAg
ICAgRnJvbnRlbmQtPk1heFF1ZXVlcyA9IDE7DQo+ICsNCj4gKyAgICBWZXJib3NlKCJUYXJnZXRb
JXVdIE1heFF1ZXVlcyAldVxuIiwNCj4gKyAgICAgICAgICAgIF9fRnJvbnRlbmRHZXRUYXJnZXRJ
ZChGcm9udGVuZCksDQo+ICsgICAgICAgICAgICBGcm9udGVuZC0+TWF4UXVldWVzKTsNCj4gK30N
Cj4gKw0KPiAgTlRTVEFUVVMNCj4gIEZyb250ZW5kQ3JlYXRlKA0KPiAgICAgIElOICBQWEVOVkJE
X1RBUkdFVCAgICAgIFRhcmdldCwNCj4gQEAgLTE3NTIsNiArMTkxOSw4IEBAIEZyb250ZW5kQ3Jl
YXRlKA0KPiAgICAgIEZyb250ZW5kLT5TdGF0ZSA9IFhFTlZCRF9JTklUSUFMSVpFRDsNCj4gICAg
ICBGcm9udGVuZC0+RGlza0luZm8uU2VjdG9yU2l6ZSA9IDUxMjsgLy8gZGVmYXVsdCBzZWN0b3Ig
c2l6ZQ0KPiAgICAgIEZyb250ZW5kLT5CYWNrZW5kRG9tYWluID0gRE9NSURfSU5WQUxJRDsNCj4g
Kw0KPiArICAgIEZyb250ZW5kU2V0TWF4UXVldWVzKEZyb250ZW5kKTsNCj4gDQo+ICAgICAgc3Rh
dHVzID0gUnRsU3RyaW5nQ2JQcmludGZBKEZyb250ZW5kLT5Gcm9udGVuZFBhdGgsDQo+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihGcm9udGVuZC0+RnJvbnRlbmRQYXRo
KSwNCj4gQEAgLTE4MDAsNiArMTk2OSwxNCBAQCBmYWlsMzoNCj4gICAgICBFcnJvcigiZmFpbDNc
biIpOw0KPiAgZmFpbDI6DQo+ICAgICAgRXJyb3IoIkZhaWwyXG4iKTsNCj4gKyAgICBGcm9udGVu
ZC0+VGFyZ2V0ID0gTlVMTDsNCj4gKyAgICBGcm9udGVuZC0+VGFyZ2V0SWQgPSAwOw0KPiArICAg
IEZyb250ZW5kLT5EZXZpY2VJZCA9IDA7DQo+ICsgICAgRnJvbnRlbmQtPlN0YXRlID0gWEVOVkJE
X1NUQVRFX0lOVkFMSUQ7IC8vIDANCj4gKyAgICBGcm9udGVuZC0+RGlza0luZm8uU2VjdG9yU2l6
ZSA9IDA7DQo+ICsgICAgRnJvbnRlbmQtPkJhY2tlbmREb21haW4gPSAwOw0KPiArICAgIEZyb250
ZW5kLT5NYXhRdWV1ZXMgPSAwOw0KPiArICAgIEFTU0VSVChJc1plcm9NZW1vcnkoRnJvbnRlbmQs
IHNpemVvZihYRU5WQkRfRlJPTlRFTkQpKSk7DQo+ICAgICAgX19Gcm9udGVuZEZyZWUoRnJvbnRl
bmQpOw0KPiAgZmFpbDE6DQo+ICAgICAgRXJyb3IoIkZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsN
Cj4gQEAgLTE4MjQsNiArMjAwMSw4IEBAIEZyb250ZW5kRGVzdHJveSgNCj4gICAgICBGcm9udGVu
ZC0+UGFnZTgzLkRhdGEgPSBOVUxMOw0KPiAgICAgIEZyb250ZW5kLT5QYWdlODMuU2l6ZSA9IDA7
DQo+IA0KPiArICAgIEZyb250ZW5kLT5NYXhRdWV1ZXMgPSAwOw0KPiArDQo+ICAgICAgVGhyZWFk
QWxlcnQoRnJvbnRlbmQtPkJhY2tlbmRUaHJlYWQpOw0KPiAgICAgIFRocmVhZEpvaW4oRnJvbnRl
bmQtPkJhY2tlbmRUaHJlYWQpOw0KPiAgICAgIEZyb250ZW5kLT5CYWNrZW5kVGhyZWFkID0gTlVM
TDsNCj4gQEAgLTE4NDAsOTQgKzIwMTksMyBAQCBGcm9udGVuZERlc3Ryb3koDQo+ICAgICAgX19G
cm9udGVuZEZyZWUoRnJvbnRlbmQpOw0KPiAgICAgIFRyYWNlKCJUYXJnZXRbJWRdIEAgKCVkKSA8
PT09PT1cbiIsIFRhcmdldElkLCBLZUdldEN1cnJlbnRJcnFsKCkpOw0KPiAgfQ0KPiAtDQo+IC0j
ZGVmaW5lIEZST05URU5EX0dFVF9QUk9QRVJUWShfbmFtZSwgX3R5cGUpICAgICBcDQo+IC1zdGF0
aWMgRk9SQ0VJTkxJTkUgX3R5cGUgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IC1fX0Zyb250
ZW5kR2V0ICMjIF9uYW1lICMjICggICAgICAgICAgICAgICAgICAgICBcDQo+IC0gICAgSU4gIFBY
RU5WQkRfRlJPTlRFTkQgICAgRnJvbnRlbmQgICAgICAgICAgICBcDQo+IC0gICAgKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IC17ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IC0gICAgcmV0dXJuIEZyb250ZW5k
LT4gIyMgX25hbWUgIyMgOyAgICAgICAgICAgICBcDQo+IC19ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IC1fdHlwZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQo+IC1Gcm9udGVuZEdldCAjIyBfbmFtZSAjIyAoICAg
ICAgICAgICAgICAgICAgICAgICBcDQo+IC0gICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgRnJv
bnRlbmQgICAgICAgICAgICBcDQo+IC0gICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQo+IC17ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQo+IC0gICAgcmV0dXJuIF9fRnJvbnRlbmRHZXQgIyMgX25hbWUgIyMgKEZy
b250ZW5kKTtcDQo+IC19DQo+IC0NCj4gLUZST05URU5EX0dFVF9QUk9QRVJUWShUYXJnZXQsIFBY
RU5WQkRfVEFSR0VUKQ0KPiAtRlJPTlRFTkRfR0VUX1BST1BFUlRZKFJpbmcsIFBYRU5WQkRfUklO
RykNCj4gLUZST05URU5EX0dFVF9QUk9QRVJUWShHcmFudGVyLCBQWEVOVkJEX0dSQU5URVIpDQo+
IC1GUk9OVEVORF9HRVRfUFJPUEVSVFkoVGFyZ2V0SWQsIFVMT05HKQ0KPiAtRlJPTlRFTkRfR0VU
X1BST1BFUlRZKERldmljZUlkLCBVTE9ORykNCj4gLUZST05URU5EX0dFVF9QUk9QRVJUWShCYWNr
ZW5kRG9tYWluLCBVTE9ORykNCj4gLUZST05URU5EX0dFVF9QUk9QRVJUWShCYWNrZW5kUGF0aCwg
UENIQVIpDQo+IC1GUk9OVEVORF9HRVRfUFJPUEVSVFkoRnJvbnRlbmRQYXRoLCBQQ0hBUikNCj4g
LS8vRlJPTlRFTkRfR0VUX1BST1BFUlRZKENhcHMsIFBYRU5WQkRfQ0FQUykNCj4gLVBYRU5WQkRf
Q0FQUw0KPiAtRnJvbnRlbmRHZXRDYXBzKA0KPiAtICAgIElOICBQWEVOVkJEX0ZST05URU5EICAg
IEZyb250ZW5kDQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIHJldHVybiAmRnJvbnRlbmQtPkNhcHM7
DQo+IC19DQo+IC0vL0ZST05URU5EX0dFVF9QUk9QRVJUWShGZWF0dXJlcywgUFhFTlZCRF9GRUFU
VVJFUykNCj4gLVBYRU5WQkRfRkVBVFVSRVMNCj4gLUZyb250ZW5kR2V0RmVhdHVyZXMoDQo+IC0g
ICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgRnJvbnRlbmQNCj4gLSAgICApDQo+IC17DQo+IC0g
ICAgcmV0dXJuICZGcm9udGVuZC0+RmVhdHVyZXM7DQo+IC19DQo+IC0vL0ZST05URU5EX0dFVF9Q
Uk9QRVJUWShEaXNrSW5mbywgUFhFTlZCRF9ESVNLSU5GTykNCj4gLVBYRU5WQkRfRElTS0lORk8N
Cj4gLUZyb250ZW5kR2V0RGlza0luZm8oDQo+IC0gICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAg
RnJvbnRlbmQNCj4gLSAgICApDQo+IC17DQo+IC0gICAgcmV0dXJuICZGcm9udGVuZC0+RGlza0lu
Zm87DQo+IC19DQo+IC0vL0ZST05URU5EX0dFVF9QUk9QRVJUWShDb25uZWN0ZWQsIEJPT0xFQU4p
DQo+IC1CT09MRUFODQo+IC1Gcm9udGVuZEdldENvbm5lY3RlZCgNCj4gLSAgICBJTiAgUFhFTlZC
RF9GUk9OVEVORCAgICBGcm9udGVuZA0KPiAtICAgICkNCj4gLXsNCj4gLSAgICByZXR1cm4gRnJv
bnRlbmQtPkNhcHMuQ29ubmVjdGVkOw0KPiAtfQ0KPiAtLy9GUk9OVEVORF9HRVRfUFJPUEVSVFko
UmVhZE9ubHksIEJPT0xFQU4pDQo+IC1CT09MRUFODQo+IC1Gcm9udGVuZEdldFJlYWRPbmx5KA0K
PiAtICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgIEZyb250ZW5kDQo+IC0gICAgKQ0KPiAtew0K
PiAtICAgIHJldHVybiAhIShGcm9udGVuZC0+RGlza0luZm8uRGlza0luZm8gJiBWRElTS19SRUFE
T05MWSk7DQo+IC19DQo+IC0vL0ZST05URU5EX0dFVF9QUk9QRVJUWShEaXNjYXJkLCBCT09MRUFO
KQ0KPiAtQk9PTEVBTg0KPiAtRnJvbnRlbmRHZXREaXNjYXJkKA0KPiAtICAgIElOICBQWEVOVkJE
X0ZST05URU5EICAgIEZyb250ZW5kDQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIHJldHVybiBGcm9u
dGVuZC0+RGlza0luZm8uRGlzY2FyZDsNCj4gLX0NCj4gLS8vRlJPTlRFTkRfR0VUX1BST1BFUlRZ
KEZsdXNoQ2FjaGUsIEJPT0xFQU4pDQo+IC1CT09MRUFODQo+IC1Gcm9udGVuZEdldEZsdXNoQ2Fj
aGUoDQo+IC0gICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgRnJvbnRlbmQNCj4gLSAgICApDQo+
IC17DQo+IC0gICAgcmV0dXJuIEZyb250ZW5kLT5EaXNrSW5mby5GbHVzaENhY2hlOw0KPiAtfQ0K
PiAtLy9GUk9OVEVORF9HRVRfUFJPUEVSVFkoQmFycmllciwgQk9PTEVBTikNCj4gLUJPT0xFQU4N
Cj4gLUZyb250ZW5kR2V0QmFycmllcigNCj4gLSAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICBG
cm9udGVuZA0KPiAtICAgICkNCj4gLXsNCj4gLSAgICByZXR1cm4gRnJvbnRlbmQtPkRpc2tJbmZv
LkJhcnJpZXI7DQo+IC19DQo+IC0NCj4gLSN1bmRlZiBGUk9OVEVORF9HRVRfUFJPUEVSVFkNCj4g
ZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvZnJvbnRlbmQuaCBiL3NyYy94ZW52YmQvZnJvbnRlbmQu
aA0KPiBpbmRleCAxNDg4NDc2Li5mY2Y1NjMyIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2Zy
b250ZW5kLmgNCj4gKysrIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5oDQo+IEBAIC0xNjcsNiArMTY3
LDggQEAgRlJPTlRFTkRfR0VUX1BST1BFUlRZKFJlYWRPbmx5LCBCT09MRUFOKQ0KPiAgRlJPTlRF
TkRfR0VUX1BST1BFUlRZKERpc2NhcmQsIEJPT0xFQU4pDQo+ICBGUk9OVEVORF9HRVRfUFJPUEVS
VFkoRmx1c2hDYWNoZSwgQk9PTEVBTikNCj4gIEZST05URU5EX0dFVF9QUk9QRVJUWShCYXJyaWVy
LCBCT09MRUFOKQ0KPiArRlJPTlRFTkRfR0VUX1BST1BFUlRZKE1heFF1ZXVlcywgVUxPTkcpDQo+
ICtGUk9OVEVORF9HRVRfUFJPUEVSVFkoTnVtUXVldWVzLCBVTE9ORykNCj4gDQo+ICAjdW5kZWYg
RlJPTlRFTkRfR0VUX1BST1BFUlRZDQo+IA0KPiAtLQ0KPiAyLjE2LjIud2luZG93cy4xDQo+IA0K
PiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4g
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 14:52:59 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 14:52:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPqqx-0000lh-PE; Mon, 04 Jun 2018 14:52:59 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=uma/=iw=citrix.com=prvs=6860a9805=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fPqqw-0000lb-Sy
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 14:52:58 +0000
X-Inumbo-ID: a87e811f-6806-11e8-9728-bc764e045a96
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id a87e811f-6806-11e8-9728-bc764e045a96;
 Mon, 04 Jun 2018 16:50:44 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.49,476,1520899200"; d="scan'208";a="74116653"
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/9] Remove RingTrigger
Thread-Index: AQHT9zUHJ3KDYGeJEEeO54G1Hpe7lKRQOOYw
Date: Mon, 4 Jun 2018 14:52:48 +0000
Message-ID: <3ab8c800ea0b4d668c537ef4f8f8fe27@AMSPEX02CL03.citrite.net>
References: <20180529100717.8340-1-owen.smith@citrix.com>
 <20180529100717.8340-4-owen.smith@citrix.com>
In-Reply-To: <20180529100717.8340-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
Subject: Re: [win-pv-devel] [PATCH 3/9] Remove RingTrigger
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjkgTWF5IDIwMTggMTE6MDcNCj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBj
aXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0ggMy85XSBSZW1vdmUg
UmluZ1RyaWdnZXINCj4gDQo+IFJpbmdUcmlnZ2VyIGNhbGxzIFhFTkJVU19FVlRDSE4oVHJpZ2dl
ci4uKSBvbiBkdXJpbmcgdGhlIHN1c3BlbmQNCj4gY2FsbGJhY2suIEp1c3QgYmVmb3JlIHRoaXMs
IHRoZSByaW5nIGlzIHJlY3JlYXRlZCBhbmQgZW5hYmxlZCwgd2hpY2gNCj4gYWxzbyBjYWxscyBY
RU5CVVNfRVZUQ0hOKFRyaWdnZXIuLikuIFRoZSBleHBsaWNpdCBjYWxsIFJpbmdUcmlnZ2VyIGlz
DQo+IHVubmVjY2Vzc2FyeQ0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5z
bWl0aEBjaXRyaXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRA
Y2l0cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZnJvbnRlbmQuYyB8ICAyIC0tDQo+
ICBzcmMveGVudmJkL3JpbmcuYyAgICAgfCAxMyAtLS0tLS0tLS0tLS0tDQo+ICBzcmMveGVudmJk
L3JpbmcuaCAgICAgfCAgNSAtLS0tLQ0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAyMCBkZWxldGlvbnMo
LSkNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zyb250ZW5kLmMgYi9zcmMveGVudmJk
L2Zyb250ZW5kLmMNCj4gaW5kZXggZGI5NmEzNi4uNDdkNzQ0YiAxMDA2NDQNCj4gLS0tIGEvc3Jj
L3hlbnZiZC9mcm9udGVuZC5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZnJvbnRlbmQuYw0KPiBAQCAt
MTU5NSw4ICsxNTk1LDYgQEAgRnJvbnRlbmRTdXNwZW5kQ2FsbGJhY2soDQo+ICAgICAgICAgIEFT
U0VSVChGQUxTRSk7DQo+ICAgICAgfQ0KPiANCj4gLSAgICBSaW5nVHJpZ2dlcihGcm9udGVuZC0+
UmluZyk7DQo+IC0NCj4gICAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogPD09PSByZXN0b3JlZCAl
c1xuIiwgRnJvbnRlbmQtPlRhcmdldElkLA0KPiBfX1hlbnZiZFN0YXRlTmFtZShGcm9udGVuZC0+
U3RhdGUpKTsNCj4gIH0NCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL3JpbmcuYyBiL3Ny
Yy94ZW52YmQvcmluZy5jDQo+IGluZGV4IDMzYjM0NmQuLmU0MWMxYjcgMTAwNjQ0DQo+IC0tLSBh
L3NyYy94ZW52YmQvcmluZy5jDQo+ICsrKyBiL3NyYy94ZW52YmQvcmluZy5jDQo+IEBAIC0yMDM3
LDE5ICsyMDM3LDYgQEAgUmluZ0Rpc2Nvbm5lY3QoDQo+ICAgICAgUmluZy0+UmVjZWl2ZWQgPSAw
Ow0KPiAgfQ0KPiANCj4gLVZPSUQNCj4gLVJpbmdUcmlnZ2VyKA0KPiAtICAgIElOICBQWEVOVkJE
X1JJTkcgICAgUmluZw0KPiAtICAgICkNCj4gLXsNCj4gLSAgICBpZiAoIVJpbmctPkVuYWJsZWQp
DQo+IC0gICAgICAgIHJldHVybjsNCj4gLQ0KPiAtICAgIFhFTkJVU19FVlRDSE4oVHJpZ2dlciwN
Cj4gLSAgICAgICAgICAgICAgICAgICZSaW5nLT5FdnRjaG5JbnRlcmZhY2UsDQo+IC0gICAgICAg
ICAgICAgICAgICBSaW5nLT5DaGFubmVsKTsNCj4gLX0NCj4gLQ0KPiAgQk9PTEVBTg0KPiAgUmlu
Z1F1ZXVlUmVxdWVzdCgNCj4gICAgICBJTiAgUFhFTlZCRF9SSU5HICAgIFJpbmcsDQo+IGRpZmYg
LS1naXQgYS9zcmMveGVudmJkL3JpbmcuaCBiL3NyYy94ZW52YmQvcmluZy5oDQo+IGluZGV4IDli
OGE1ODcuLmUzMzA5ZTIgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvcmluZy5oDQo+ICsrKyBi
L3NyYy94ZW52YmQvcmluZy5oDQo+IEBAIC03NCwxMSArNzQsNiBAQCBSaW5nRGlzY29ubmVjdCgN
Cj4gICAgICBJTiAgUFhFTlZCRF9SSU5HICAgIFJpbmcNCj4gICAgICApOw0KPiANCj4gLWV4dGVy
biBWT0lEDQo+IC1SaW5nVHJpZ2dlcigNCj4gLSAgICBJTiAgUFhFTlZCRF9SSU5HICAgIFJpbmcN
Cj4gLSAgICApOw0KPiAtDQo+ICBleHRlcm4gQk9PTEVBTg0KPiAgUmluZ1F1ZXVlUmVxdWVzdCgN
Cj4gICAgICBJTiAgUFhFTlZCRF9SSU5HICAgIFJpbmcsDQo+IC0tDQo+IDIuMTYuMi53aW5kb3dz
LjENCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZw0KPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz
dGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu
Zm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 14:53:22 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 14:53:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPqrJ-0000nF-RY; Mon, 04 Jun 2018 14:53:21 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=uma/=iw=citrix.com=prvs=6860a9805=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fPqrJ-0000nA-8z
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 14:53:21 +0000
X-Inumbo-ID: b570591b-6806-11e8-9728-bc764e045a96
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id b570591b-6806-11e8-9728-bc764e045a96;
 Mon, 04 Jun 2018 16:51:06 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.49,476,1520899200"; d="scan'208";a="74116678"
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/9] Dont close ring during FrontendReset
Thread-Index: AQHT9zUTKz1x7/B0H0C5+RibuErpB6RQOQrA
Date: Mon, 4 Jun 2018 14:53:17 +0000
Message-ID: <b45f88b15bd745929c1846170ea16e02@AMSPEX02CL03.citrite.net>
References: <20180529100717.8340-1-owen.smith@citrix.com>
 <20180529100717.8340-5-owen.smith@citrix.com>
In-Reply-To: <20180529100717.8340-5-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
Subject: Re: [win-pv-devel] [PATCH 4/9] Dont close ring during FrontendReset
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjkgTWF5IDIwMTggMTE6MDcNCj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBj
aXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0ggNC85XSBEb250IGNs
b3NlIHJpbmcgZHVyaW5nIEZyb250ZW5kUmVzZXQNCj4gDQo+IENsb3NpbmcgdGhlIHJpbmcgKGFu
ZCBkZXN0cm95aW5nIHRoZSBzaGFyZWQgcGFnZXMsIGV0YykgaXMgbm90IHJlcXVpcmVkDQo+IHdo
ZW4gYSBId1N0b3JSZXNldEJ1cyBvciBTUkJfRlVOQ1RJT05fUkVTRVRfREVWSUNFIGlzIHRyaWdn
ZXJlZC4NCj4gRGlzYWJsaW5nIHRoZSByaW5nIHdpbGwgY2F1c2UgYW55IG91dHN0YW5kaW5nIGJs
a2lmX3JlcXVlc3RzIGFuZCBTUkJzIHRvDQo+IGJlIGZhaWxlZC4NCj4gDQo+IFNpZ25lZC1vZmYt
Ynk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwg
RHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJk
L2Zyb250ZW5kLmMgfCA3ICsrKy0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo
KyksIDQgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9mcm9udGVu
ZC5jIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5jDQo+IGluZGV4IDQ3ZDc0NGIuLjkwMGFkMmIgMTAw
NjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvZnJvbnRlbmQuYw0KPiArKysgYi9zcmMveGVudmJkL2Zy
b250ZW5kLmMNCj4gQEAgLTE4NDYsMTcgKzE4NDYsMTYgQEAgRnJvbnRlbmRSZXNldCgNCj4gICAg
ICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICBGcm9udGVuZA0KPiAgICAgICkNCj4gIHsNCj4gLSAg
ICBYRU5WQkRfU1RBVEUgICAgICAgICAgICBQcmV2aW91c1N0YXRlID0gRnJvbnRlbmQtPlN0YXRl
Ow0KPiAgICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsNCj4gDQo+IC0gICAgaWYg
KFByZXZpb3VzU3RhdGUgIT0gWEVOVkJEX0VOQUJMRUQpDQo+ICsgICAgaWYgKEZyb250ZW5kLT5T
dGF0ZSAhPSBYRU5WQkRfRU5BQkxFRCkNCj4gICAgICAgICAgZ290byBkb25lOw0KPiANCj4gLSAg
ICBzdGF0dXMgPSBGcm9udGVuZFNldFN0YXRlKEZyb250ZW5kLCBYRU5WQkRfQ0xPU0VEKTsNCj4g
KyAgICBzdGF0dXMgPSBGcm9udGVuZFNldFN0YXRlKEZyb250ZW5kLCBYRU5WQkRfQ09OTkVDVEVE
KTsNCj4gICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gICAgICAgICAgZ290byBmYWls
MTsNCj4gDQo+IC0gICAgc3RhdHVzID0gRnJvbnRlbmRTZXRTdGF0ZShGcm9udGVuZCwgUHJldmlv
dXNTdGF0ZSk7DQo+ICsgICAgc3RhdHVzID0gRnJvbnRlbmRTZXRTdGF0ZShGcm9udGVuZCwgWEVO
VkJEX0VOQUJMRUQpOw0KPiAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiAgICAgICAg
ICBnb3RvIGZhaWwyOw0KPiANCj4gLS0NCj4gMi4xNi4yLndpbmRvd3MuMQ0KPiANCj4gDQo+IF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1k
ZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+
IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2
ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1w
di1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 14:54:26 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 14:54:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPqsM-0000tW-Bh; Mon, 04 Jun 2018 14:54:26 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=uma/=iw=citrix.com=prvs=6860a9805=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fPqsK-0000tM-RT
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 14:54:24 +0000
X-Inumbo-ID: dbbc420c-6806-11e8-9728-bc764e045a96
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id dbbc420c-6806-11e8-9728-bc764e045a96;
 Mon, 04 Jun 2018 16:52:11 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.49,476,1520899200"; d="scan'208";a="74116744"
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 5/9] Force single queue in crash/hibernate
 path
Thread-Index: AQHT9zTxs2i2Qb0bx0eFYep9gVe6f6RQOTgQ
Date: Mon, 4 Jun 2018 14:54:21 +0000
Message-ID: <b3d69143027b42c39281bef9e505ba62@AMSPEX02CL03.citrite.net>
References: <20180529100717.8340-1-owen.smith@citrix.com>
 <20180529100717.8340-6-owen.smith@citrix.com>
In-Reply-To: <20180529100717.8340-6-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
Subject: Re: [win-pv-devel] [PATCH 5/9] Force single queue in
 crash/hibernate path
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjkgTWF5IDIwMTggMTE6MDcNCj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBj
aXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0ggNS85XSBGb3JjZSBz
aW5nbGUgcXVldWUgaW4gY3Jhc2gvaGliZXJuYXRlDQo+IHBhdGgNCj4gDQo+IFJlbW92ZSAibXVs
dGktcXVldWUtbnVtLXF1ZXVlcyIgZnJvbSBmcm9udGVuZCBhcmVhIHdoZW4gdGhlDQo+IGNyYXNo
dW1wDQo+IGRyaXZlciBpcyBhY3RpdmUuIFRoaXMgd2lsbCBmb3JjZSB0aGUgYmFja2VuZCB0byB1
c2UgYSBzaW5nbGUgcXVldWUsDQo+IHdoaWNoIHRoZSBjcmFzaGR1bXAgZnJvbnRlbmQgaXMgc3Vw
cGx5aW5nDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJp
eC5jb20+DQoNClRoZXJlJ3Mgc29tZSB3aGl0ZXNwYWNlIGluY29uc2lzdGVuY3kgaW50cm9kdWNl
ZCBpbiB0aGlzLiBJJ2xsIGZpeCBpdCB1cC4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1
bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVuY3JzaC9mcm9udGVuZC5j
IHwgMiArKw0KPiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW5jcnNoL2Zyb250ZW5kLmMgYi9zcmMveGVuY3JzaC9mcm9udGVuZC5jDQo+
IGluZGV4IDBmYmJiZWIuLmU5OTAyY2UgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW5jcnNoL2Zyb250
ZW5kLmMNCj4gKysrIGIvc3JjL3hlbmNyc2gvZnJvbnRlbmQuYw0KPiBAQCAtNzM4LDYgKzczOCw4
IEBAIEZyb250ZW5kQ2xvc2UoDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICJmZWF0dXJlLW9u
bGluZS1yZXNpemUiKTsNCj4gICAgICAoVk9JRCkgU3RvcmVSZW1vdmUoTlVMTCwgRnJvbnRlbmQt
PkZyb250ZW5kUGF0aCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgImZlYXR1cmUtc3VycHJp
c2UtcmVtb3ZlIik7DQo+ICsgICAgKFZPSUQpU3RvcmVSZW1vdmUoTlVMTCwgRnJvbnRlbmQtPkZy
b250ZW5kUGF0aCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAibXVsdGktcXVldWUtbnVtLXF1
ZXVlcyIpOw0KPiANCj4gICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+IA0KPiAtLQ0KPiAy
LjE2LjIud2luZG93cy4xDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 14:55:11 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 14:55:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPqt5-0000y4-Gv; Mon, 04 Jun 2018 14:55:11 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=uma/=iw=citrix.com=prvs=6860a9805=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fPqt3-0000xx-P2
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 14:55:10 +0000
X-Inumbo-ID: f3937de9-6806-11e8-9728-bc764e045a96
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id f3937de9-6806-11e8-9728-bc764e045a96;
 Mon, 04 Jun 2018 16:52:50 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.49,476,1520899200"; d="scan'208";a="74116784"
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 6/9] Implement multi-queues
Thread-Index: AQHT9zUWScrcetKSkkaoVAgc9wOC6KRQOYIg
Date: Mon, 4 Jun 2018 14:55:01 +0000
Message-ID: <446d3744de434b5ca46b594238a8fba9@AMSPEX02CL03.citrite.net>
References: <20180529100717.8340-1-owen.smith@citrix.com>
 <20180529100717.8340-7-owen.smith@citrix.com>
In-Reply-To: <20180529100717.8340-7-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
Subject: Re: [win-pv-devel] [PATCH 6/9] Implement multi-queues
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjkgTWF5IDIwMTggMTE6MDcNCj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBj
aXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0ggNi85XSBJbXBsZW1l
bnQgbXVsdGktcXVldWVzDQo+IA0KPiBTcGxpdHMgWEVOVkJEX1JJTkcgaW50byBtdWx0aXBsZSBY
RU5WQkRfQkxLSUZfUklOR3MsIG9uZSBmb3IgZWFjaA0KPiBzaGFyZWQNCj4gcmluZy4gVXAtdG8g
Im11bHRpLXF1ZXVlLW1heC1xdWV1ZXMiIHJpbmdzIGFyZSB1c2VkIHRvIHBhc3MNCj4gYmxraWZf
cmVxdWVzdHMgYW5kIGJsa2lmX3Jlc3BvbnNlcyBiZXR3ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5k
Lg0KPiBSZXdvcmtzDQo+IHRoZSByaW5nIGludGVyYWN0aW9ucyB0byByZW1vdmUgdGhlIGxvY2tz
IHVzZWQgYnkgWEVOVkJEX1FVRVVFLA0KPiBpbXBsZW1lbnRpbmcgYSBxdWV1ZSBzeXN0ZW0gc2lt
aWxhciB0byBYZW5WaWZzIHRyYW5zbWl0dGVyIHF1ZXVlcy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6
IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVy
cmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJkL2Zy
b250ZW5kLmMgfCAgIDE4ICstDQo+ICBzcmMveGVudmJkL3JpbmcuYyAgICAgfCAzMDk3ICsrKysr
KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0NCj4gLS0tLS0tDQo+ICAyIGZp
bGVzIGNoYW5nZWQsIDE4NDcgaW5zZXJ0aW9ucygrKSwgMTI2OCBkZWxldGlvbnMoLSkNCj4gDQo+
IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zyb250ZW5kLmMgYi9zcmMveGVudmJkL2Zyb250ZW5k
LmMNCj4gaW5kZXggOTAwYWQyYi4uZmQyYzI0NyAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9m
cm9udGVuZC5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZnJvbnRlbmQuYw0KPiBAQCAtMTI3OCwxNSAr
MTI3OCwxNSBAQCBGcm9udGVuZENvbm5lY3QoDQo+ICAgICAgICAgIGlmICghTlRfU1VDQ0VTUyhT
dGF0dXMpKQ0KPiAgICAgICAgICAgICAgZ290byBhYm9ydDsNCj4gDQo+IC0gICAgICAgIC8vc3Rh
dHVzID0gWEVOQlVTX1NUT1JFKFByaW50ZiwNCj4gLSAgICAgICAgLy8gICAgICAgICAgICAgICAg
ICAgICAgJkZyb250ZW5kLT5TdG9yZUludGVyZmFjZSwNCj4gLSAgICAgICAgLy8gICAgICAgICAg
ICAgICAgICAgICAgVHJhbnNhY3Rpb24sDQo+IC0gICAgICAgIC8vICAgICAgICAgICAgICAgICAg
ICAgIEZyb250ZW5kLT5Gcm9udGVuZFBhdGgsDQo+IC0gICAgICAgIC8vICAgICAgICAgICAgICAg
ICAgICAgICJtdWx0aS1xdWV1ZS1udW0tcXVldWVzIiwNCj4gLSAgICAgICAgLy8gICAgICAgICAg
ICAgICAgICAgICAgIiV1IiwNCj4gLSAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgX19G
cm9udGVuZEdldE51bVF1ZXVlcyhGcm9udGVuZCkpOw0KPiAtICAgICAgICAvL2lmICghTlRfU1VD
Q0VTUyhzdGF0dXMpKQ0KPiAtICAgICAgICAvLyAgICBnb3RvIGFib3J0Ow0KPiArICAgICAgICBT
dGF0dXMgPSBYRU5CVVNfU1RPUkUoUHJpbnRmLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJkZyb250ZW5kLT5TdG9yZUludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFRyYW5zYWN0aW9uLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RnJvbnRlbmQtPkZyb250ZW5kUGF0aCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJtdWx0aS1xdWV1ZS1udW0tcXVldWVzIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIldSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0Zyb250ZW5kR2V0
TnVtUXVldWVzKEZyb250ZW5kKSk7DQo+ICsgICAgICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMp
KQ0KPiArICAgICAgICAgICAgZ290byBhYm9ydDsNCj4gDQo+ICAgICAgICAgIFN0YXR1cyA9IFhF
TkJVU19TVE9SRShUcmFuc2FjdGlvbkVuZCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJk
L3JpbmcuYyBiL3NyYy94ZW52YmQvcmluZy5jDQo+IGluZGV4IGU0MWMxYjcuLmNkMmNjMGUgMTAw
NjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvcmluZy5jDQo+ICsrKyBiL3NyYy94ZW52YmQvcmluZy5j
DQo+IEBAIC00Nyw3ICs0Nyw2IEBADQo+ICAjaW5jbHVkZSAic3JiZXh0LmgiDQo+ICAjaW5jbHVk
ZSAiZHJpdmVyLmgiDQo+ICAjaW5jbHVkZSAiZ3JhbnRlci5oIg0KPiAtI2luY2x1ZGUgInF1ZXVl
LmgiDQo+IA0KPiAgI2luY2x1ZGUgInV0aWwuaCINCj4gICNpbmNsdWRlICJkZWJ1Zy5oIg0KPiBA
QCAtNTYsNDcgKzU1LDcyIEBADQo+ICAjZGVmaW5lIFhFTlZCRF9NQVhfUklOR19QQUdFX09SREVS
ICAoNCkNCj4gICNkZWZpbmUgWEVOVkJEX01BWF9SSU5HX1BBR0VTICAgICAgICgxIDw8DQo+IFhF
TlZCRF9NQVhfUklOR19QQUdFX09SREVSKQ0KPiANCj4gLXN0cnVjdCBfWEVOVkJEX1JJTkcgew0K
PiAtICAgIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgICAgICAgICAgRnJvbnRlbmQ7DQo+ICsjZGVm
aW5lIHhlbl9tYiAgS2VNZW1vcnlCYXJyaWVyDQo+ICsjZGVmaW5lIHhlbl93bWIgS2VNZW1vcnlC
YXJyaWVyDQo+ICsNCj4gK3R5cGVkZWYgc3RydWN0IF9YRU5WQkRfU1JCX1NUQVRFIHsNCj4gKyAg
ICBMSVNUX0VOVFJZICAgICAgICAgICAgICAgICAgICAgIExpc3Q7DQo+ICsgICAgVUxPTkcgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDb3VudDsNCj4gK30gWEVOVkJEX1NSQl9TVEFURSwgKlBY
RU5WQkRfU1JCX1NUQVRFOw0KPiArDQo+ICt0eXBlZGVmIHN0cnVjdCBfWEVOVkJEX0JMS0lGX1JJ
Tkcgew0KPiArICAgIFBYRU5WQkRfUklORyAgICAgICAgICAgICAgICAgICAgUmluZzsNCj4gKyAg
ICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiArICAgIFBDSEFSICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUGF0aDsNCj4gKyAgICBQWEVOQlVTX0NBQ0hFICAgICAg
ICAgICAgICAgICAgIFJlcXVlc3RDYWNoZTsNCj4gKyAgICBQWEVOQlVTX0NBQ0hFICAgICAgICAg
ICAgICAgICAgIFNlZ21lbnRDYWNoZTsNCj4gKyAgICBQWEVOQlVTX0NBQ0hFICAgICAgICAgICAg
ICAgICAgIEluZGlyZWN0Q2FjaGU7DQo+ICsgICAgUE1ETCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBNZGw7DQo+ICsgICAgYmxraWZfc3JpbmdfdCAgICAgICAgICAgICAgICAgICAqU2hhcmVk
Ow0KPiArICAgIGJsa2lmX2Zyb250X3JpbmdfdCAgICAgICAgICAgICAgRnJvbnQ7DQo+ICsgICAg
UFhFTkJVU19HTlRUQUJfRU5UUlkgICAgICAgICAgICBHcmFudHNbWEVOVkJEX01BWF9SSU5HX1BB
R0VTXTsNCj4gKyAgICBQWEVOQlVTX0VWVENITl9DSEFOTkVMICAgICAgICAgIENoYW5uZWw7DQo+
ICsgICAgS0RQQyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEcGM7DQo+ICsgICAgVUxPTkcg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEcGNzOw0KPiArICAgIFVMT05HICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRXZlbnRzOw0KPiAgICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAg
ICAgICAgQ29ubmVjdGVkOw0KPiAgICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAg
RW5hYmxlZDsNCj4gKyAgICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3BwZWQ7
DQo+ICsgICAgUFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NrOw0KPiArICAgIFBL
VEhSRUFEICAgICAgICAgICAgICAgICAgICAgICAgTG9ja1RocmVhZDsNCj4gKyAgICBYRU5WQkRf
U1JCX1NUQVRFICAgICAgICAgICAgICAgIFN0YXRlOw0KPiArICAgIExJU1RfRU5UUlkgICAgICAg
ICAgICAgICAgICAgICAgU3JiUXVldWU7DQo+ICsgICAgTElTVF9FTlRSWSAgICAgICAgICAgICAg
ICAgICAgICBTdWJtaXR0ZWRMaXN0Ow0KPiArICAgIExJU1RfRU5UUlkgICAgICAgICAgICAgICAg
ICAgICAgU2h1dGRvd25RdWV1ZTsNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNyYnNRdWV1ZWQ7DQo+ICsgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBT
cmJzQ29tcGxldGVkOw0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Ji
c0ZhaWxlZDsNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVlc3Rz
UG9zdGVkOw0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWVzdHNQ
dXNoZWQ7DQo+ICsgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNwb25zZXNQ
cm9jZXNzZWQ7DQo+ICsgICAgUFhFTkJVU19ERUJVR19DQUxMQkFDSyAgICAgICAgICBEZWJ1Z0Nh
bGxiYWNrOw0KPiArfSBYRU5WQkRfQkxLSUZfUklORywgKlBYRU5WQkRfQkxLSUZfUklORzsNCj4g
Kw0KPiArdHlwZWRlZiBlbnVtIF9YRU5WQkRfU1RBVCB7DQo+ICsgICAgWEVOVkJEX1NUQVRfQkxL
SUZfT1BfUkVBRF9ESVJFQ1QgPSAwLA0KPiArICAgIFhFTlZCRF9TVEFUX0JMS0lGX09QX1JFQURf
SU5ESVJFQ1QsDQo+ICsgICAgWEVOVkJEX1NUQVRfQkxLSUZfT1BfV1JJVEVfRElSRUNULA0KPiAr
ICAgIFhFTlZCRF9TVEFUX0JMS0lGX09QX1dSSVRFX0lORElSRUNULA0KPiArICAgIFhFTlZCRF9T
VEFUX0JMS0lGX09QX1dSSVRFX0JBUlJJRVIsDQo+ICsgICAgWEVOVkJEX1NUQVRfQkxLSUZfT1Bf
RkxVU0hfRElTS0NBQ0hFLA0KPiArICAgIFhFTlZCRF9TVEFUX0JMS0lGX09QX0RJU0NBUkQsDQo+
ICsgICAgWEVOVkJEX1NUQVRfQkxLSUZfT1BfVU5LTk9XTiwNCj4gKyAgICBYRU5WQkRfU1RBVF9T
RUdNRU5UU19HUkFOVEVELA0KPiArICAgIFhFTlZCRF9TVEFUX1NFR01FTlRTX0JPVU5DRUQsDQo+
ICsNCj4gKyAgICBYRU5WQkRfU1RBVF9fTUFYDQo+ICt9IFhFTlZCRF9TVEFULCAqUFhFTlZCRF9T
VEFUOw0KPiANCj4gK3N0cnVjdCBfWEVOVkJEX1JJTkcgew0KPiArICAgIFBYRU5WQkRfRlJPTlRF
TkQgICAgICAgICAgICAgICAgRnJvbnRlbmQ7DQo+ICsgICAgWEVOQlVTX0RFQlVHX0lOVEVSRkFD
RSAgICAgICAgICBEZWJ1Z0ludGVyZmFjZTsNCj4gICAgICBYRU5CVVNfQ0FDSEVfSU5URVJGQUNF
ICAgICAgICAgIENhY2hlSW50ZXJmYWNlOw0KPiAgICAgIFhFTkJVU19TVE9SRV9JTlRFUkZBQ0Ug
ICAgICAgICAgU3RvcmVJbnRlcmZhY2U7DQo+ICAgICAgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0Ug
ICAgICAgICBFdnRjaG5JbnRlcmZhY2U7DQo+IC0gICAgWEVOQlVTX0RFQlVHX0lOVEVSRkFDRSAg
ICAgICAgICBEZWJ1Z0ludGVyZmFjZTsNCj4gLQ0KPiAgICAgIFBYRU5CVVNfREVCVUdfQ0FMTEJB
Q0sgICAgICAgICAgRGVidWdDYWxsYmFjazsNCj4gLQ0KPiAtICAgIEtTUElOX0xPQ0sgICAgICAg
ICAgICAgICAgICAgICAgTG9jazsNCj4gLSAgICBQTURMICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE1kbDsNCj4gLSAgICBibGtpZl9zcmluZ190KiAgICAgICAgICAgICAgICAgIFNoYXJlZDsN
Cj4gLSAgICBibGtpZl9mcm9udF9yaW5nX3QgICAgICAgICAgICAgIEZyb250Ow0KPiAgICAgIFVM
T05HICAgICAgICAgICAgICAgICAgICAgICAgICAgT3JkZXI7DQo+IC0gICAgUFZPSUQgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHcmFudHNbWEVOVkJEX01BWF9SSU5HX1BBR0VTXTsNCj4gLSAg
ICBQWEVOQlVTX0VWVENITl9DSEFOTkVMICAgICAgICAgIENoYW5uZWw7DQo+IC0gICAgS0RQQyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEcGM7DQo+IC0NCj4gLSAgICBQWEVOQlVTX0NBQ0hF
ICAgICAgICAgICAgICAgICAgIFJlcXVlc3RDYWNoZTsNCj4gLSAgICBQWEVOQlVTX0NBQ0hFICAg
ICAgICAgICAgICAgICAgIFNlZ21lbnRDYWNoZTsNCj4gLSAgICBQWEVOQlVTX0NBQ0hFICAgICAg
ICAgICAgICAgICAgIEluZGlyZWN0Q2FjaGU7DQo+IC0gICAgWEVOVkJEX1FVRVVFICAgICAgICAg
ICAgICAgICAgICBQcmVwYXJlZFJlcXM7DQo+IC0gICAgWEVOVkJEX1FVRVVFICAgICAgICAgICAg
ICAgICAgICBTdWJtaXR0ZWRSZXFzOw0KPiAtICAgIFhFTlZCRF9RVUVVRSAgICAgICAgICAgICAg
ICAgICAgU2h1dGRvd25TcmJzOw0KPiAtDQo+IC0gICAgVUxPTkcgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTdWJtaXR0ZWQ7DQo+IC0gICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZWNlaXZlZDsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50
czsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgICAgIERwY3M7DQo+IC0gICAg
VUxPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICBCbGtPcFJlYWQ7DQo+IC0gICAgVUxPTkcg
ICAgICAgICAgICAgICAgICAgICAgICAgICBCbGtPcFdyaXRlOw0KPiAtICAgIFVMT05HICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQmxrT3BJbmRpcmVjdFJlYWQ7DQo+IC0gICAgVUxPTkcgICAg
ICAgICAgICAgICAgICAgICAgICAgICBCbGtPcEluZGlyZWN0V3JpdGU7DQo+IC0gICAgVUxPTkcg
ICAgICAgICAgICAgICAgICAgICAgICAgICBCbGtPcEJhcnJpZXI7DQo+IC0gICAgVUxPTkcgICAg
ICAgICAgICAgICAgICAgICAgICAgICBCbGtPcERpc2NhcmQ7DQo+IC0gICAgVUxPTkcgICAgICAg
ICAgICAgICAgICAgICAgICAgICBCbGtPcEZsdXNoOw0KPiAtICAgIFVMT05HNjQgICAgICAgICAg
ICAgICAgICAgICAgICAgU2Vnc0dyYW50ZWQ7DQo+IC0gICAgVUxPTkc2NCAgICAgICAgICAgICAg
ICAgICAgICAgICBTZWdzQm91bmNlZDsNCj4gKyAgICBQWEVOVkJEX0JMS0lGX1JJTkcgICAgICAg
ICAgICAgICpSaW5nOw0KPiArICAgIExPTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rh
dHNbWEVOVkJEX1NUQVRfX01BWF07DQo+ICB9Ow0KPiANCj4gICNkZWZpbmUgTUFYX05BTUVfTEVO
ICAgICAgICAgICAgICAgIDY0DQo+IEBAIC0xMjMsMTM4ICsxNDcsMTE5IEBAIF9fUmluZ0ZyZWUo
DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJJTkdfUE9PTF9UQUcpOw0KPiAgfQ0KPiAN
Cj4gLXN0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+IC14ZW5fbWIoKQ0KPiArc3RhdGljIEZPUkNF
SU5MSU5FIFBDSEFSDQo+ICtfX0Jsa2lmT3BlcmF0aW9uTmFtZSgNCj4gKyAgICBJTiAgVUNIQVIg
ICBPcGVyYXRpb24NCj4gKyAgICApDQo+ICB7DQo+IC0gICAgS2VNZW1vcnlCYXJyaWVyKCk7DQo+
IC0gICAgX1JlYWRXcml0ZUJhcnJpZXIoKTsNCj4gKyAgICBzd2l0Y2ggKE9wZXJhdGlvbikgew0K
PiArICAgIGNhc2UgQkxLSUZfT1BfUkVBRDogICAgICAgICAgICAgcmV0dXJuICJSRUFEIjsNCj4g
KyAgICBjYXNlIEJMS0lGX09QX1dSSVRFOiAgICAgICAgICAgIHJldHVybiAiV1JJVEUiOw0KPiAr
ICAgIGNhc2UgQkxLSUZfT1BfV1JJVEVfQkFSUklFUjogICAgcmV0dXJuICJXUklURV9CQVJSSUVS
IjsNCj4gKyAgICBjYXNlIEJMS0lGX09QX0ZMVVNIX0RJU0tDQUNIRTogIHJldHVybiAiRkxVU0hf
RElTS0NBQ0hFIjsNCj4gKyAgICBjYXNlIEJMS0lGX09QX1JFU0VSVkVEXzE6ICAgICAgIHJldHVy
biAiUkVTRVJWRURfMSI7DQo+ICsgICAgY2FzZSBCTEtJRl9PUF9ESVNDQVJEOiAgICAgICAgICBy
ZXR1cm4gIkRJU0NBUkQiOw0KPiArICAgIGNhc2UgQkxLSUZfT1BfSU5ESVJFQ1Q6ICAgICAgICAg
cmV0dXJuICJJTkRJUkVDVCI7DQo+ICsgICAgZGVmYXVsdDogICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gIjx1bmtub3duPiI7DQo+ICsgICAgfQ0KPiAgfQ0KPiANCj4gLXN0YXRpYyBGT1JD
RUlOTElORSBWT0lEDQo+IC14ZW5fd21iKCkNCj4gK3N0YXRpYyBGT1JDRUlOTElORSBQQ0hBUg0K
PiArX19TdGF0TmFtZSgNCj4gKyAgICBJTiAgWEVOVkJEX1NUQVQgT3BlcmF0aW9uDQo+ICsgICAg
KQ0KPiAgew0KPiAtICAgIEtlTWVtb3J5QmFycmllcigpOw0KPiAtICAgIF9Xcml0ZUJhcnJpZXIo
KTsNCj4gKyAgICBzd2l0Y2ggKE9wZXJhdGlvbikgew0KPiArICAgIGNhc2UgWEVOVkJEX1NUQVRf
QkxLSUZfT1BfUkVBRF9ESVJFQ1Q6ICAgICAgcmV0dXJuICJCTEtJRl9PUF9SRUFEDQo+IChkaXJl
Y3QpIjsNCj4gKyAgICBjYXNlIFhFTlZCRF9TVEFUX0JMS0lGX09QX1JFQURfSU5ESVJFQ1Q6ICAg
IHJldHVybg0KPiAiQkxLSUZfT1BfUkVBRCAoaW5kaXJlY3QpIjsNCj4gKyAgICBjYXNlIFhFTlZC
RF9TVEFUX0JMS0lGX09QX1dSSVRFX0RJUkVDVDogICAgIHJldHVybg0KPiAiQkxLSUZfT1BfV1JJ
VEUgKGRpcmVjdCkiOw0KPiArICAgIGNhc2UgWEVOVkJEX1NUQVRfQkxLSUZfT1BfV1JJVEVfSU5E
SVJFQ1Q6ICAgcmV0dXJuDQo+ICJCTEtJRl9PUF9XUklURSAoaW5kaXJlY3QpIjsNCj4gKyAgICBj
YXNlIFhFTlZCRF9TVEFUX0JMS0lGX09QX1dSSVRFX0JBUlJJRVI6ICAgIHJldHVybg0KPiAiQkxL
SUZfT1BfV1JJVEVfQkFSUklFUiI7DQo+ICsgICAgY2FzZSBYRU5WQkRfU1RBVF9CTEtJRl9PUF9G
TFVTSF9ESVNLQ0FDSEU6ICByZXR1cm4NCj4gIkJMS0lGX09QX0ZMVVNIX0RJU0tDQUNIRSI7DQo+
ICsgICAgY2FzZSBYRU5WQkRfU1RBVF9CTEtJRl9PUF9ESVNDQVJEOiAgICAgICAgICByZXR1cm4N
Cj4gIkJMS0lGX09QX0RJU0NBUkQiOw0KPiArICAgIGNhc2UgWEVOVkJEX1NUQVRfU0VHTUVOVFNf
R1JBTlRFRDogICAgICAgICAgcmV0dXJuDQo+ICJTZWdtZW50c0dyYW50ZWQiOw0KPiArICAgIGNh
c2UgWEVOVkJEX1NUQVRfU0VHTUVOVFNfQk9VTkNFRDogICAgICAgICAgcmV0dXJuDQo+ICJTZWdt
ZW50c0JvdW5jZWQiOw0KPiArICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJVTktOT1dOIjsNCj4gKyAgICB9DQo+ICB9DQo+IA0KPiAtc3RhdGlj
IEZPUkNFSU5MSU5FIFZPSUQNCj4gLV9fUmluZ0luc2VydCgNCj4gLSAgICBJTiAgUFhFTlZCRF9S
SU5HICAgICAgICBSaW5nLA0KPiAtICAgIElOICBQWEVOVkJEX1JFUVVFU1QgICAgIFJlcXVlc3Qs
DQo+IC0gICAgSU4gIGJsa2lmX3JlcXVlc3RfdCogICAgcmVxDQo+ICtzdGF0aWMgRk9SQ0VJTkxJ
TkUgVUxPTkcNCj4gK19fU2VjdG9yc1BlclBhZ2UoDQo+ICsgICAgSU4gIFVMT05HICAgU2VjdG9y
U2l6ZQ0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBQWEVOVkJEX0dSQU5URVIgICAgICAgICBHcmFu
dGVyID0gRnJvbnRlbmRHZXRHcmFudGVyKFJpbmctPkZyb250ZW5kKTsNCj4gLQ0KPiAtICAgIHN3
aXRjaCAoUmVxdWVzdC0+T3BlcmF0aW9uKSB7DQo+IC0gICAgY2FzZSBCTEtJRl9PUF9SRUFEOg0K
PiAtICAgIGNhc2UgQkxLSUZfT1BfV1JJVEU6DQo+IC0gICAgICAgIGlmIChSZXF1ZXN0LT5OclNl
Z21lbnRzID4gQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUKSB7DQo+IC0gICAgICAgICAg
ICAvLyBJbmRpcmVjdA0KPiAtICAgICAgICAgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAg
IFBhZ2VJZHg7DQo+IC0gICAgICAgICAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgU2Vn
SWR4Ow0KPiAtICAgICAgICAgICAgUExJU1RfRU5UUlkgICAgICAgICAgICAgICAgIFBhZ2VFbnRy
eTsNCj4gLSAgICAgICAgICAgIFBMSVNUX0VOVFJZICAgICAgICAgICAgICAgICBTZWdFbnRyeTsN
Cj4gLSAgICAgICAgICAgIGJsa2lmX3JlcXVlc3RfaW5kaXJlY3RfdCogICByZXFfaW5kaXJlY3Q7
DQo+IC0NCj4gLSAgICAgICAgICAgIHJlcV9pbmRpcmVjdCA9IChibGtpZl9yZXF1ZXN0X2luZGly
ZWN0X3QqKXJlcTsNCj4gLSAgICAgICAgICAgIHJlcV9pbmRpcmVjdC0+b3BlcmF0aW9uICAgICAg
ICAgPSBCTEtJRl9PUF9JTkRJUkVDVDsNCj4gLSAgICAgICAgICAgIHJlcV9pbmRpcmVjdC0+aW5k
aXJlY3Rfb3AgICAgICAgPSBSZXF1ZXN0LT5PcGVyYXRpb247DQo+IC0gICAgICAgICAgICByZXFf
aW5kaXJlY3QtPm5yX3NlZ21lbnRzICAgICAgID0gUmVxdWVzdC0+TnJTZWdtZW50czsNCj4gLSAg
ICAgICAgICAgIHJlcV9pbmRpcmVjdC0+aWQgICAgICAgICAgICAgICAgPSAoVUxPTkc2NCkoVUxP
TkdfUFRSKVJlcXVlc3Q7DQo+IC0gICAgICAgICAgICByZXFfaW5kaXJlY3QtPnNlY3Rvcl9udW1i
ZXIgICAgID0gUmVxdWVzdC0+Rmlyc3RTZWN0b3I7DQo+IC0gICAgICAgICAgICByZXFfaW5kaXJl
Y3QtPmhhbmRsZSAgICAgICAgICAgID0gKFVTSE9SVClGcm9udGVuZEdldERldmljZUlkKFJpbmct
DQo+ID5Gcm9udGVuZCk7DQo+IC0NCj4gLSAgICAgICAgICAgIGZvciAoUGFnZUlkeCA9IDAsDQo+
IC0gICAgICAgICAgICAgICAgIFBhZ2VFbnRyeSA9IFJlcXVlc3QtPkluZGlyZWN0cy5GbGluaywN
Cj4gLSAgICAgICAgICAgICAgICAgU2VnRW50cnkgPSBSZXF1ZXN0LT5TZWdtZW50cy5GbGluazsN
Cj4gLSAgICAgICAgICAgICAgICAgICAgUGFnZUlkeCA8IEJMS0lGX01BWF9JTkRJUkVDVF9QQUdF
U19QRVJfUkVRVUVTVCAmJg0KPiAtICAgICAgICAgICAgICAgICAgICBQYWdlRW50cnkgIT0gJlJl
cXVlc3QtPkluZGlyZWN0cyAmJg0KPiAtICAgICAgICAgICAgICAgICAgICBTZWdFbnRyeSAhPSAm
UmVxdWVzdC0+U2VnbWVudHM7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICArK1BhZ2VJZHgs
IFBhZ2VFbnRyeSA9IFBhZ2VFbnRyeS0+RmxpbmspIHsNCj4gLSAgICAgICAgICAgICAgICBQWEVO
VkJEX0lORElSRUNUIFBhZ2UgPSBDT05UQUlOSU5HX1JFQ09SRChQYWdlRW50cnksDQo+IFhFTlZC
RF9JTkRJUkVDVCwgTGlzdEVudHJ5KTsNCj4gLQ0KPiAtICAgICAgICAgICAgICAgIHJlcV9pbmRp
cmVjdC0+aW5kaXJlY3RfZ3JlZnNbUGFnZUlkeF0gPSBHcmFudGVyUmVmZXJlbmNlKEdyYW50ZXIs
DQo+IFBhZ2UtPkdyYW50KTsNCj4gLQ0KPiAtICAgICAgICAgICAgICAgIGZvciAoU2VnSWR4ID0g
MDsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIFNlZ0lkeCA8IFhFTlZCRF9NQVhfU0VHTUVO
VFNfUEVSX1BBR0UgJiYNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIFNlZ0VudHJ5ICE9ICZS
ZXF1ZXN0LT5TZWdtZW50czsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICArK1NlZ0lk
eCwgU2VnRW50cnkgPSBTZWdFbnRyeS0+RmxpbmspIHsNCj4gLSAgICAgICAgICAgICAgICAgICAg
UFhFTlZCRF9TRUdNRU5UIFNlZ21lbnQgPSBDT05UQUlOSU5HX1JFQ09SRChTZWdFbnRyeSwNCj4g
WEVOVkJEX1NFR01FTlQsIExpc3RFbnRyeSk7DQo+IC0NCj4gLSAgICAgICAgICAgICAgICAgICAg
UGFnZS0+UGFnZVtTZWdJZHhdLkdyYW50UmVmID0gR3JhbnRlclJlZmVyZW5jZShHcmFudGVyLA0K
PiBTZWdtZW50LT5HcmFudCk7DQo+IC0gICAgICAgICAgICAgICAgICAgIFBhZ2UtPlBhZ2VbU2Vn
SWR4XS5GaXJzdCAgICA9IFNlZ21lbnQtPkZpcnN0U2VjdG9yOw0KPiAtICAgICAgICAgICAgICAg
ICAgICBQYWdlLT5QYWdlW1NlZ0lkeF0uTGFzdCAgICAgPSBTZWdtZW50LT5MYXN0U2VjdG9yOw0K
PiAtICAgICAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAgIH0NCj4gLSAgICAgICAgfSBlbHNl
IHsNCj4gLSAgICAgICAgICAgIC8vIERpcmVjdA0KPiAtICAgICAgICAgICAgVUxPTkcgICAgICAg
ICAgIEluZGV4Ow0KPiAtICAgICAgICAgICAgUExJU1RfRU5UUlkgICAgIEVudHJ5Ow0KPiAtDQo+
IC0gICAgICAgICAgICByZXEtPm9wZXJhdGlvbiAgICAgICAgICAgICAgICAgID0gUmVxdWVzdC0+
T3BlcmF0aW9uOw0KPiAtICAgICAgICAgICAgcmVxLT5ucl9zZWdtZW50cyAgICAgICAgICAgICAg
ICA9IChVQ0hBUilSZXF1ZXN0LT5OclNlZ21lbnRzOw0KPiAtICAgICAgICAgICAgcmVxLT5oYW5k
bGUgICAgICAgICAgICAgICAgICAgICA9IChVU0hPUlQpRnJvbnRlbmRHZXREZXZpY2VJZChSaW5n
LQ0KPiA+RnJvbnRlbmQpOw0KPiAtICAgICAgICAgICAgcmVxLT5pZCAgICAgICAgICAgICAgICAg
ICAgICAgICA9IChVTE9ORzY0KShVTE9OR19QVFIpUmVxdWVzdDsNCj4gLSAgICAgICAgICAgIHJl
cS0+c2VjdG9yX251bWJlciAgICAgICAgICAgICAgPSBSZXF1ZXN0LT5GaXJzdFNlY3RvcjsNCj4g
KyAgICBBU1NFUlQzVShTZWN0b3JTaXplLCAhPSAsIDApOw0KPiArICAgIHJldHVybiBQQUdFX1NJ
WkUgLyBTZWN0b3JTaXplOw0KPiArfQ0KPiANCj4gLSAgICAgICAgICAgIGZvciAoSW5kZXggPSAw
LCBFbnRyeSA9IFJlcXVlc3QtPlNlZ21lbnRzLkZsaW5rOw0KPiAtICAgICAgICAgICAgICAgICAg
ICBJbmRleCA8IEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVCAmJg0KPiAtICAgICAgICAg
ICAgICAgICAgICBFbnRyeSAhPSAmUmVxdWVzdC0+U2VnbWVudHM7DQo+IC0gICAgICAgICAgICAg
ICAgICAgICAgICArK0luZGV4LCBFbnRyeSA9IEVudHJ5LT5GbGluaykgew0KPiAtICAgICAgICAg
ICAgICAgIFBYRU5WQkRfU0VHTUVOVCBTZWdtZW50ID0gQ09OVEFJTklOR19SRUNPUkQoRW50cnks
DQo+IFhFTlZCRF9TRUdNRU5ULCBMaXN0RW50cnkpOw0KPiAtICAgICAgICAgICAgICAgIHJlcS0+
c2VnW0luZGV4XS5ncmVmICAgICAgICA9IEdyYW50ZXJSZWZlcmVuY2UoR3JhbnRlciwgU2VnbWVu
dC0NCj4gPkdyYW50KTsNCj4gLSAgICAgICAgICAgICAgICByZXEtPnNlZ1tJbmRleF0uZmlyc3Rf
c2VjdCAgPSBTZWdtZW50LT5GaXJzdFNlY3RvcjsNCj4gLSAgICAgICAgICAgICAgICByZXEtPnNl
Z1tJbmRleF0ubGFzdF9zZWN0ICAgPSBTZWdtZW50LT5MYXN0U2VjdG9yOw0KPiAtICAgICAgICAg
ICAgfQ0KPiAtICAgICAgICB9DQo+ICtzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRA0KPiArX19PcGVy
YXRpb24oDQo+ICsgICAgSU4gIFVDSEFSICAgICAgIENkYk9wLA0KPiArICAgIE9VVCBQVUNIQVIg
ICAgICBSaW5nT3AsDQo+ICsgICAgT1VUIFBCT09MRUFOICAgIFJlYWRPbmx5DQo+ICsgICAgKQ0K
PiArew0KPiArICAgIHN3aXRjaCAoQ2RiT3ApIHsNCj4gKyAgICBjYXNlIFNDU0lPUF9SRUFEOg0K
PiArICAgICAgICAqUmluZ09wID0gQkxLSUZfT1BfUkVBRDsNCj4gKyAgICAgICAgKlJlYWRPbmx5
ID0gRkFMU0U7DQo+ICAgICAgICAgIGJyZWFrOw0KPiAtDQo+IC0gICAgY2FzZSBCTEtJRl9PUF9X
UklURV9CQVJSSUVSOg0KPiAtICAgIGNhc2UgQkxLSUZfT1BfRkxVU0hfRElTS0NBQ0hFOg0KPiAt
ICAgICAgICByZXEtPm9wZXJhdGlvbiAgICAgICAgICAgICAgICAgID0gUmVxdWVzdC0+T3BlcmF0
aW9uOw0KPiAtICAgICAgICByZXEtPm5yX3NlZ21lbnRzICAgICAgICAgICAgICAgID0gMDsNCj4g
LSAgICAgICAgcmVxLT5oYW5kbGUgICAgICAgICAgICAgICAgICAgICA9IChVU0hPUlQpRnJvbnRl
bmRHZXREZXZpY2VJZChSaW5nLQ0KPiA+RnJvbnRlbmQpOw0KPiAtICAgICAgICByZXEtPmlkICAg
ICAgICAgICAgICAgICAgICAgICAgID0gKFVMT05HNjQpKFVMT05HX1BUUilSZXF1ZXN0Ow0KPiAt
ICAgICAgICByZXEtPnNlY3Rvcl9udW1iZXIgICAgICAgICAgICAgID0gUmVxdWVzdC0+Rmlyc3RT
ZWN0b3I7DQo+ICsgICAgY2FzZSBTQ1NJT1BfV1JJVEU6DQo+ICsgICAgICAgICpSaW5nT3AgPSBC
TEtJRl9PUF9XUklURTsNCj4gKyAgICAgICAgKlJlYWRPbmx5ID0gVFJVRTsNCj4gICAgICAgICAg
YnJlYWs7DQo+IC0NCj4gLSAgICBjYXNlIEJMS0lGX09QX0RJU0NBUkQ6IHsNCj4gLSAgICAgICAg
YmxraWZfcmVxdWVzdF9kaXNjYXJkX3QqICAgICAgICByZXFfZGlzY2FyZDsNCj4gLSAgICAgICAg
cmVxX2Rpc2NhcmQgPSAoYmxraWZfcmVxdWVzdF9kaXNjYXJkX3QqKXJlcTsNCj4gLSAgICAgICAg
cmVxX2Rpc2NhcmQtPm9wZXJhdGlvbiAgICAgICAgICA9IEJMS0lGX09QX0RJU0NBUkQ7DQo+IC0g
ICAgICAgIHJlcV9kaXNjYXJkLT5mbGFnICAgICAgICAgICAgICAgPSBSZXF1ZXN0LT5GbGFnczsN
Cj4gLSAgICAgICAgcmVxX2Rpc2NhcmQtPmhhbmRsZSAgICAgICAgICAgICA9IChVU0hPUlQpRnJv
bnRlbmRHZXREZXZpY2VJZChSaW5nLQ0KPiA+RnJvbnRlbmQpOw0KPiAtICAgICAgICByZXFfZGlz
Y2FyZC0+aWQgICAgICAgICAgICAgICAgID0gKFVMT05HNjQpKFVMT05HX1BUUilSZXF1ZXN0Ow0K
PiAtICAgICAgICByZXFfZGlzY2FyZC0+c2VjdG9yX251bWJlciAgICAgID0gUmVxdWVzdC0+Rmly
c3RTZWN0b3I7DQo+IC0gICAgICAgIHJlcV9kaXNjYXJkLT5ucl9zZWN0b3JzICAgICAgICAgPSBS
ZXF1ZXN0LT5OclNlY3RvcnM7DQo+IC0gICAgICAgIH0gYnJlYWs7DQo+IC0NCj4gICAgICBkZWZh
dWx0Og0KPiAgICAgICAgICBBU1NFUlQoRkFMU0UpOw0KPiAtICAgICAgICBicmVhazsNCj4gICAg
ICB9DQo+IC0gICAgKytSaW5nLT5TdWJtaXR0ZWQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBGT1JD
RUlOTElORSBVTE9ORw0KPiArX19Vc2VJbmRpcmVjdCgNCj4gKyAgICBJTiAgVUxPTkcgICAgICAg
ICAgIFNlY3RvcnNQZXJQYWdlLA0KPiArICAgIElOICBVTE9ORyAgICAgICAgICAgTWF4SW5kaXJl
Y3RTZWdzLA0KPiArICAgIElOICBVTE9ORyAgICAgICAgICAgU2VjdG9yc0xlZnQNCj4gKyAgICAp
DQo+ICt7DQo+ICsgICAgaWYgKE1heEluZGlyZWN0U2VncyA8PSBCTEtJRl9NQVhfU0VHTUVOVFNf
UEVSX1JFUVVFU1QpDQo+ICsgICAgICAgIHJldHVybiBCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JF
UVVFU1Q7IC8vIG5vdCBzdXBwb3J0ZWQNCj4gKw0KPiArICAgIGlmIChTZWN0b3JzTGVmdCA8IEJM
S0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVCAqDQo+IFNlY3RvcnNQZXJQYWdlKQ0KPiArICAg
ICAgICByZXR1cm4gQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUOyAvLyBmaXJzdCBpbnRv
IGEgc2luZ2xlDQo+IEJMS0lGX09QX3tSRUFEL1dSSVRFfQ0KPiArDQo+ICsgICAgcmV0dXJuIE1h
eEluZGlyZWN0U2VnczsNCj4gK30NCj4gKw0KPiArc3RhdGljIEZPUkNFSU5MSU5FIE1NX1BBR0Vf
UFJJT1JJVFkNCj4gK19fUHJpb3JpdHkoDQo+ICsgICAgSU4gIFBYRU5WQkRfQ0FQUyAgICBDYXBz
DQo+ICsgICAgKQ0KPiArew0KPiArICAgIHJldHVybiAoQ2Fwcy0+UGFnaW5nIHx8DQo+ICsgICAg
ICAgICAgICBDYXBzLT5IaWJlcm5hdGlvbiB8fA0KPiArICAgICAgICAgICAgQ2Fwcy0+RHVtcEZp
bGUpID8gSGlnaFBhZ2VQcmlvcml0eSA6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOb3JtYWxQYWdlUHJpb3JpdHk7DQo+ICB9DQo+IA0KPiAgc3RhdGljIFBYRU5WQkRfSU5ESVJF
Q1QNCj4gLVJpbmdHZXRJbmRpcmVjdCgNCj4gLSAgICBJTiAgUFhFTlZCRF9SSU5HICAgIFJpbmcN
Cj4gK0Jsa2lmUmluZ0dldEluZGlyZWN0KA0KPiArICAgIElOICBQWEVOVkJEX0JMS0lGX1JJTkcg
IEJsa2lmUmluZw0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBQWEVOVkJEX0lORElSRUNUICAgIElu
ZGlyZWN0Ow0KPiAtICAgIE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOw0KPiAtICAgIFBYRU5W
QkRfR1JBTlRFUiAgICAgR3JhbnRlciA9IEZyb250ZW5kR2V0R3JhbnRlcihSaW5nLT5Gcm9udGVu
ZCk7DQo+ICsgICAgUFhFTlZCRF9SSU5HICAgICAgICAgICAgUmluZyA9IEJsa2lmUmluZy0+Umlu
ZzsNCj4gKyAgICBQWEVOVkJEX0ZST05URU5EICAgICAgICBGcm9udGVuZCA9IFJpbmctPkZyb250
ZW5kOw0KPiArICAgIFBYRU5WQkRfR1JBTlRFUiAgICAgICAgIEdyYW50ZXIgPSBGcm9udGVuZEdl
dEdyYW50ZXIoRnJvbnRlbmQpOw0KPiArICAgIFBYRU5WQkRfSU5ESVJFQ1QgICAgICAgIEluZGly
ZWN0Ow0KPiArICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsNCj4gDQo+ICAgICAg
SW5kaXJlY3QgPSBYRU5CVVNfQ0FDSEUoR2V0LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZSaW5nLT5DYWNoZUludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSaW5nLT5JbmRpcmVjdENhY2hlLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZB
TFNFKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCbGtpZlJpbmctPkluZGlyZWN0
Q2FjaGUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSk7DQo+ICAgICAgaWYg
KEluZGlyZWN0ID09IE5VTEwpDQo+ICAgICAgICAgIGdvdG8gZmFpbDE7DQo+IA0KPiAtICAgIEFT
U0VSVDNQKEluZGlyZWN0LT5NZGwsICE9LCBOVUxMKTsNCj4gLSAgICBBU1NFUlQzUChJbmRpcmVj
dC0+UGFnZSwgIT0sIE5VTEwpOw0KPiArICAgIEFTU0VSVDNQKEluZGlyZWN0LT5NZGwsICE9ICwg
TlVMTCk7DQo+ICsgICAgQVNTRVJUM1AoSW5kaXJlY3QtPlBhZ2UsICE9ICwgTlVMTCk7DQo+ICAg
ICAgc3RhdHVzID0gR3JhbnRlckdldChHcmFudGVyLA0KPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgTW1HZXRNZGxQZm5BcnJheShJbmRpcmVjdC0+TWRsKVswXSwNCj4gICAgICAgICAgICAgICAg
ICAgICAgICAgIFRSVUUsDQo+IEBAIC0yNjcsMjAgKzI3MiwyMiBAQCBSaW5nR2V0SW5kaXJlY3Qo
DQo+ICBmYWlsMjoNCj4gICAgICBYRU5CVVNfQ0FDSEUoUHV0LA0KPiAgICAgICAgICAgICAgICAg
ICAmUmluZy0+Q2FjaGVJbnRlcmZhY2UsDQo+IC0gICAgICAgICAgICAgICAgIFJpbmctPkluZGly
ZWN0Q2FjaGUsDQo+ICsgICAgICAgICAgICAgICAgIEJsa2lmUmluZy0+SW5kaXJlY3RDYWNoZSwN
Cj4gICAgICAgICAgICAgICAgICAgSW5kaXJlY3QsDQo+IC0gICAgICAgICAgICAgICAgIEZBTFNF
KTsNCj4gKyAgICAgICAgICAgICAgICAgVFJVRSk7DQo+ICBmYWlsMToNCj4gICAgICByZXR1cm4g
TlVMTDsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgVk9JRA0KPiAtUmluZ1B1dEluZGlyZWN0KA0KPiAt
ICAgIElOICBQWEVOVkJEX1JJTkcgICAgICAgIFJpbmcsDQo+ICtCbGtpZlJpbmdQdXRJbmRpcmVj
dCgNCj4gKyAgICBJTiAgUFhFTlZCRF9CTEtJRl9SSU5HICBCbGtpZlJpbmcsDQo+ICAgICAgSU4g
IFBYRU5WQkRfSU5ESVJFQ1QgICAgSW5kaXJlY3QNCj4gICAgICApDQo+ICB7DQo+IC0gICAgUFhF
TlZCRF9HUkFOVEVSICAgICAgICAgR3JhbnRlciA9IEZyb250ZW5kR2V0R3JhbnRlcihSaW5nLT5G
cm9udGVuZCk7DQo+ICsgICAgUFhFTlZCRF9SSU5HICAgICAgICAgICAgUmluZyA9IEJsa2lmUmlu
Zy0+UmluZzsNCj4gKyAgICBQWEVOVkJEX0ZST05URU5EICAgICAgICBGcm9udGVuZCA9IFJpbmct
PkZyb250ZW5kOw0KPiArICAgIFBYRU5WQkRfR1JBTlRFUiAgICAgICAgIEdyYW50ZXIgPSBGcm9u
dGVuZEdldEdyYW50ZXIoRnJvbnRlbmQpOw0KPiANCj4gICAgICBpZiAoSW5kaXJlY3QtPkdyYW50
KQ0KPiAgICAgICAgICBHcmFudGVyUHV0KEdyYW50ZXIsIEluZGlyZWN0LT5HcmFudCk7DQo+IEBA
IC0yOTAsMzAgKzI5NywzNCBAQCBSaW5nUHV0SW5kaXJlY3QoDQo+IA0KPiAgICAgIFhFTkJVU19D
QUNIRShQdXQsDQo+ICAgICAgICAgICAgICAgICAgICZSaW5nLT5DYWNoZUludGVyZmFjZSwNCj4g
LSAgICAgICAgICAgICAgICAgUmluZy0+SW5kaXJlY3RDYWNoZSwNCj4gKyAgICAgICAgICAgICAg
ICAgQmxraWZSaW5nLT5JbmRpcmVjdENhY2hlLA0KPiAgICAgICAgICAgICAgICAgICBJbmRpcmVj
dCwNCj4gLSAgICAgICAgICAgICAgICAgRkFMU0UpOw0KPiArICAgICAgICAgICAgICAgICBUUlVF
KTsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgUFhFTlZCRF9TRUdNRU5UDQo+IC1SaW5nR2V0U2VnbWVu
dCgNCj4gLSAgICBJTiAgUFhFTlZCRF9SSU5HICAgIFJpbmcNCj4gK0Jsa2lmUmluZ0dldFNlZ21l
bnQoDQo+ICsgICAgSU4gIFBYRU5WQkRfQkxLSUZfUklORyAgQmxraWZSaW5nDQo+ICAgICAgKQ0K
PiAgew0KPiArICAgIFBYRU5WQkRfUklORyAgICAgICAgICAgIFJpbmcgPSBCbGtpZlJpbmctPlJp
bmc7DQo+ICsNCj4gICAgICByZXR1cm4gWEVOQlVTX0NBQ0hFKEdldCwNCj4gICAgICAgICAgICAg
ICAgICAgICAgICAgICZSaW5nLT5DYWNoZUludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgIFJpbmctPlNlZ21lbnRDYWNoZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIEZB
TFNFKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEJsa2lmUmluZy0+U2VnbWVudENhY2hl
LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSk7DQo+ICB9DQo+IA0KPiAgc3RhdGlj
IFZPSUQNCj4gLVJpbmdQdXRTZWdtZW50KA0KPiAtICAgIElOICBQWEVOVkJEX1JJTkcgICAgUmlu
ZywNCj4gLSAgICBJTiAgUFhFTlZCRF9TRUdNRU5UIFNlZ21lbnQNCj4gK0Jsa2lmUmluZ1B1dFNl
Z21lbnQoDQo+ICsgICAgSU4gIFBYRU5WQkRfQkxLSUZfUklORyAgQmxraWZSaW5nLA0KPiArICAg
IElOICBQWEVOVkJEX1NFR01FTlQgICAgIFNlZ21lbnQNCj4gICAgICApDQo+ICB7DQo+IC0gICAg
UFhFTlZCRF9HUkFOVEVSICAgICBHcmFudGVyID0gRnJvbnRlbmRHZXRHcmFudGVyKFJpbmctPkZy
b250ZW5kKTsNCj4gLSAgICBQWEVOVkJEX0JPVU5DRSAgICAgIEJvdW5jZSA9IFNlZ21lbnQtPkJv
dW5jZTsNCj4gKyAgICBQWEVOVkJEX1JJTkcgICAgICAgICAgICBSaW5nID0gQmxraWZSaW5nLT5S
aW5nOw0KPiArICAgIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kID0gUmluZy0+RnJv
bnRlbmQ7DQo+ICsgICAgUFhFTlZCRF9HUkFOVEVSICAgICAgICAgR3JhbnRlciA9IEZyb250ZW5k
R2V0R3JhbnRlcihGcm9udGVuZCk7DQo+ICsgICAgUFhFTlZCRF9CT1VOQ0UgICAgICAgICAgQm91
bmNlID0gU2VnbWVudC0+Qm91bmNlOw0KPiANCj4gICAgICBpZiAoU2VnbWVudC0+R3JhbnQpDQo+
ICAgICAgICAgIEdyYW50ZXJQdXQoR3JhbnRlciwgU2VnbWVudC0+R3JhbnQpOw0KPiBAQCAtMzI5
LDcgKzM0MCw3IEBAIFJpbmdQdXRTZWdtZW50KA0KPiAgICAgICAgICBCb3VuY2UtPlNvdXJjZVBm
blswXSA9IDA7DQo+ICAgICAgICAgIEJvdW5jZS0+U291cmNlUGZuWzFdID0gMDsNCj4gDQo+IC0g
ICAgICAgIEFkYXB0ZXJQdXRCb3VuY2UoVGFyZ2V0R2V0QWRhcHRlcihGcm9udGVuZEdldFRhcmdl
dChSaW5nLQ0KPiA+RnJvbnRlbmQpKSwNCj4gKyAgICAgICAgQWRhcHRlclB1dEJvdW5jZShUYXJn
ZXRHZXRBZGFwdGVyKEZyb250ZW5kR2V0VGFyZ2V0KEZyb250ZW5kKSksDQo+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQm91bmNlKTsNCj4gICAgICB9DQo+ICAgICAgU2VnbWVudC0+Qm91bmNl
ID0gTlVMTDsNCj4gQEAgLTM0MCwyOSArMzUxLDMyIEBAIFJpbmdQdXRTZWdtZW50KA0KPiANCj4g
ICAgICBYRU5CVVNfQ0FDSEUoUHV0LA0KPiAgICAgICAgICAgICAgICAgICAmUmluZy0+Q2FjaGVJ
bnRlcmZhY2UsDQo+IC0gICAgICAgICAgICAgICAgIFJpbmctPlNlZ21lbnRDYWNoZSwNCj4gKyAg
ICAgICAgICAgICAgICAgQmxraWZSaW5nLT5TZWdtZW50Q2FjaGUsDQo+ICAgICAgICAgICAgICAg
ICAgIFNlZ21lbnQsDQo+IC0gICAgICAgICAgICAgICAgIEZBTFNFKTsNCj4gKyAgICAgICAgICAg
ICAgICAgVFJVRSk7DQo+ICB9DQo+IA0KPiAgc3RhdGljIFBYRU5WQkRfUkVRVUVTVA0KPiAtUmlu
Z0dldFJlcXVlc3QoDQo+IC0gICAgSU4gIFBYRU5WQkRfUklORyAgICBSaW5nDQo+ICtCbGtpZlJp
bmdHZXRSZXF1ZXN0KA0KPiArICAgIElOICBQWEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lmUmluZw0K
PiAgICAgICkNCj4gIHsNCj4gKyAgICBQWEVOVkJEX1JJTkcgICAgICAgICAgICBSaW5nID0gQmxr
aWZSaW5nLT5SaW5nOw0KPiArDQo+ICAgICAgcmV0dXJuIFhFTkJVU19DQUNIRShHZXQsDQo+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+Q2FjaGVJbnRlcmZhY2UsDQo+IC0gICAgICAg
ICAgICAgICAgICAgICAgICBSaW5nLT5SZXF1ZXN0Q2FjaGUsDQo+IC0gICAgICAgICAgICAgICAg
ICAgICAgICBGQUxTRSk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBCbGtpZlJpbmctPlJl
cXVlc3RDYWNoZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUpOw0KPiAgfQ0KPiAN
Cj4gIHN0YXRpYyBWT0lEDQo+IC1SaW5nUHV0UmVxdWVzdCgNCj4gLSAgICBJTiAgUFhFTlZCRF9S
SU5HICAgIFJpbmcsDQo+IC0gICAgSU4gIFBYRU5WQkRfUkVRVUVTVCBSZXF1ZXN0DQo+ICtCbGtp
ZlJpbmdQdXRSZXF1ZXN0KA0KPiArICAgIElOICBQWEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lmUmlu
ZywNCj4gKyAgICBJTiAgUFhFTlZCRF9SRVFVRVNUICAgICBSZXF1ZXN0DQo+ICAgICAgKQ0KPiAg
ew0KPiAtICAgIFBMSVNUX0VOVFJZICAgICAgICAgTGlzdEVudHJ5Ow0KPiArICAgIFBYRU5WQkRf
UklORyAgICAgICAgICAgIFJpbmcgPSBCbGtpZlJpbmctPlJpbmc7DQo+ICsgICAgUExJU1RfRU5U
UlkgICAgICAgICAgICAgTGlzdEVudHJ5Ow0KPiANCj4gICAgICBmb3IgKDs7KSB7DQo+ICAgICAg
ICAgIFBYRU5WQkRfU0VHTUVOVCBTZWdtZW50Ow0KPiBAQCAtMzcxLDcgKzM4NSw3IEBAIFJpbmdQ
dXRSZXF1ZXN0KA0KPiAgICAgICAgICBpZiAoTGlzdEVudHJ5ID09ICZSZXF1ZXN0LT5TZWdtZW50
cykNCj4gICAgICAgICAgICAgIGJyZWFrOw0KPiAgICAgICAgICBTZWdtZW50ID0gQ09OVEFJTklO
R19SRUNPUkQoTGlzdEVudHJ5LCBYRU5WQkRfU0VHTUVOVCwNCj4gTGlzdEVudHJ5KTsNCj4gLSAg
ICAgICAgUmluZ1B1dFNlZ21lbnQoUmluZywgU2VnbWVudCk7DQo+ICsgICAgICAgIEJsa2lmUmlu
Z1B1dFNlZ21lbnQoQmxraWZSaW5nLCBTZWdtZW50KTsNCj4gICAgICB9DQo+IA0KPiAgICAgIGZv
ciAoOzspIHsNCj4gQEAgLTM4MSw3ICszOTUsNyBAQCBSaW5nUHV0UmVxdWVzdCgNCj4gICAgICAg
ICAgaWYgKExpc3RFbnRyeSA9PSAmUmVxdWVzdC0+SW5kaXJlY3RzKQ0KPiAgICAgICAgICAgICAg
YnJlYWs7DQo+ICAgICAgICAgIEluZGlyZWN0ID0gQ09OVEFJTklOR19SRUNPUkQoTGlzdEVudHJ5
LCBYRU5WQkRfSU5ESVJFQ1QsDQo+IExpc3RFbnRyeSk7DQo+IC0gICAgICAgIFJpbmdQdXRJbmRp
cmVjdChSaW5nLCBJbmRpcmVjdCk7DQo+ICsgICAgICAgIEJsa2lmUmluZ1B1dEluZGlyZWN0KEJs
a2lmUmluZywgSW5kaXJlY3QpOw0KPiAgICAgIH0NCj4gDQo+ICAgICAgUmVxdWVzdC0+U3JiRXh0
ID0gTlVMTDsNCj4gQEAgLTM5NCwxODkgKzQwOCwyNzcgQEAgUmluZ1B1dFJlcXVlc3QoDQo+IA0K
PiAgICAgIFhFTkJVU19DQUNIRShQdXQsDQo+ICAgICAgICAgICAgICAgICAgICZSaW5nLT5DYWNo
ZUludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgUmluZy0+UmVxdWVzdENhY2hlLA0KPiAr
ICAgICAgICAgICAgICAgICBCbGtpZlJpbmctPlJlcXVlc3RDYWNoZSwNCj4gICAgICAgICAgICAg
ICAgICAgUmVxdWVzdCwNCj4gLSAgICAgICAgICAgICAgICAgRkFMU0UpOw0KPiArICAgICAgICAg
ICAgICAgICBUUlVFKTsNCj4gIH0NCj4gDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgUFhFTlZCRF9S
RVFVRVNUDQo+IC1SaW5nRmluZFJlcXVlc3QoDQo+IC0gICAgSU4gIFBYRU5WQkRfUklORyAgICBS
aW5nLA0KPiAtICAgIElOICBVTE9ORzY0ICAgICAgICAgSWQNCj4gK3N0YXRpYyBERUNMU1BFQ19O
T0lOTElORSBOVFNUQVRVUw0KPiArQmxraWZSaW5nUmVxdWVzdEN0b3IoDQo+ICsgICAgSU4gIFBW
T0lEICAgICAgIEFyZ3VtZW50LA0KPiArICAgIElOICBQVk9JRCAgICAgICBPYmplY3QNCj4gICAg
ICApDQo+ICB7DQo+IC0gICAgS0lSUUwgICAgICAgICAgICAgICBJcnFsOw0KPiAtICAgIFBMSVNU
X0VOVFJZICAgICAgICAgTGlzdEVudHJ5Ow0KPiAtICAgIFBYRU5WQkRfUkVRVUVTVCAgICAgUmVx
dWVzdDsNCj4gLSAgICBQWEVOVkJEX1FVRVVFICAgICAgIFF1ZXVlID0gJlJpbmctPlN1Ym1pdHRl
ZFJlcXM7DQo+IC0NCj4gLSAgICBLZUFjcXVpcmVTcGluTG9jaygmUXVldWUtPkxvY2ssICZJcnFs
KTsNCj4gKyAgICBQWEVOVkJEX1JFUVVFU1QgUmVxdWVzdCA9IE9iamVjdDsNCj4gDQo+IC0gICAg
Zm9yIChMaXN0RW50cnkgPSBRdWV1ZS0+TGlzdC5GbGluazsNCj4gLSAgICAgICAgIExpc3RFbnRy
eSAhPSAmUXVldWUtPkxpc3Q7DQo+IC0gICAgICAgICBMaXN0RW50cnkgPSBMaXN0RW50cnktPkZs
aW5rKSB7DQo+IC0gICAgICAgIFJlcXVlc3QgPSBDT05UQUlOSU5HX1JFQ09SRChMaXN0RW50cnks
IFhFTlZCRF9SRVFVRVNULA0KPiBMaXN0RW50cnkpOw0KPiAtICAgICAgICBpZiAoKFVMT05HNjQp
KFVMT05HX1BUUilSZXF1ZXN0ID09IElkKSB7DQo+IC0gICAgICAgICAgICBSZW1vdmVFbnRyeUxp
c3QoJlJlcXVlc3QtPkxpc3RFbnRyeSk7DQo+IC0gICAgICAgICAgICAtLVF1ZXVlLT5DdXJyZW50
Ow0KPiAtICAgICAgICAgICAgS2VSZWxlYXNlU3BpbkxvY2soJlF1ZXVlLT5Mb2NrLCBJcnFsKTsN
Cj4gLSAgICAgICAgICAgIHJldHVybiBSZXF1ZXN0Ow0KPiAtICAgICAgICB9DQo+IC0gICAgfQ0K
PiArICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoQXJndW1lbnQpOw0KPiANCj4gLSAgICBLZVJl
bGVhc2VTcGluTG9jaygmUXVldWUtPkxvY2ssIElycWwpOw0KPiAtICAgIFdhcm5pbmcoIlRhcmdl
dFslZF0gOiBUYWcgJWxseCBub3QgZm91bmQgaW4gc3VibWl0dGVkIGxpc3QgKCV1IGl0ZW1zKVxu
IiwNCj4gLSAgICAgICAgICAgIEZyb250ZW5kR2V0VGFyZ2V0SWQoUmluZy0+RnJvbnRlbmQpLA0K
PiAtICAgICAgICAgICAgSWQsDQo+IC0gICAgICAgICAgICBRdWV1ZUNvdW50KFF1ZXVlKSk7DQo+
IC0gICAgcmV0dXJuIE5VTEw7DQo+ICsgICAgSW5pdGlhbGl6ZUxpc3RIZWFkKCZSZXF1ZXN0LT5T
ZWdtZW50cyk7DQo+ICsgICAgSW5pdGlhbGl6ZUxpc3RIZWFkKCZSZXF1ZXN0LT5JbmRpcmVjdHMp
Ow0KPiArICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsNCj4gIH0NCj4gDQo+IC1zdGF0aWMgRk9S
Q0VJTkxJTkUgVk9JRA0KPiAtX19SaW5nSW5jQmxraWZPcENvdW50KA0KPiAtICAgIElOICBQWEVO
VkJEX1JJTkcgICAgUmluZywNCj4gLSAgICBJTiAgUFhFTlZCRF9SRVFVRVNUIFJlcXVlc3QNCj4g
K3N0YXRpYyBERUNMU1BFQ19OT0lOTElORSBWT0lEDQo+ICtCbGtpZlJpbmdSZXF1ZXN0RHRvcigN
Cj4gKyAgICBJTiAgUFZPSUQgICAgICAgQXJndW1lbnQsDQo+ICsgICAgSU4gIFBWT0lEICAgICAg
IE9iamVjdA0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBzd2l0Y2ggKFJlcXVlc3QtPk9wZXJhdGlv
bikgew0KPiAtICAgIGNhc2UgQkxLSUZfT1BfUkVBRDoNCj4gLSAgICAgICAgaWYgKFJlcXVlc3Qt
Pk5yU2VnbWVudHMgPiBCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVFU1QpDQo+IC0gICAgICAg
ICAgICArK1JpbmctPkJsa09wSW5kaXJlY3RSZWFkOw0KPiAtICAgICAgICBlbHNlDQo+IC0gICAg
ICAgICAgICArK1JpbmctPkJsa09wUmVhZDsNCj4gLSAgICAgICAgYnJlYWs7DQo+IC0gICAgY2Fz
ZSBCTEtJRl9PUF9XUklURToNCj4gLSAgICAgICAgaWYgKFJlcXVlc3QtPk5yU2VnbWVudHMgPiBC
TEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVFU1QpDQo+IC0gICAgICAgICAgICArK1JpbmctPkJs
a09wSW5kaXJlY3RXcml0ZTsNCj4gLSAgICAgICAgZWxzZQ0KPiAtICAgICAgICAgICAgKytSaW5n
LT5CbGtPcFdyaXRlOw0KPiAtICAgICAgICBicmVhazsNCj4gLSAgICBjYXNlIEJMS0lGX09QX1dS
SVRFX0JBUlJJRVI6DQo+IC0gICAgICAgICsrUmluZy0+QmxrT3BCYXJyaWVyOw0KPiAtICAgICAg
ICBicmVhazsNCj4gLSAgICBjYXNlIEJMS0lGX09QX0RJU0NBUkQ6DQo+IC0gICAgICAgICsrUmlu
Zy0+QmxrT3BEaXNjYXJkOw0KPiAtICAgICAgICBicmVhazsNCj4gLSAgICBjYXNlIEJMS0lGX09Q
X0ZMVVNIX0RJU0tDQUNIRToNCj4gLSAgICAgICAgKytSaW5nLT5CbGtPcEZsdXNoOw0KPiAtICAg
ICAgICBicmVhazsNCj4gLSAgICBkZWZhdWx0Og0KPiAtICAgICAgICBBU1NFUlQoRkFMU0UpOw0K
PiAtICAgICAgICBicmVhazsNCj4gLSAgICB9DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRF
UihBcmd1bWVudCk7DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihPYmplY3QpOw0KPiAg
fQ0KPiANCj4gLXN0YXRpYyBGT1JDRUlOTElORSBVTE9ORw0KPiAtX19SaW5nU2VjdG9yc1BlclBh
Z2UoDQo+IC0gICAgSU4gIFVMT05HICAgU2VjdG9yU2l6ZQ0KPiArc3RhdGljIERFQ0xTUEVDX05P
SU5MSU5FIE5UU1RBVFVTDQo+ICtCbGtpZlJpbmdTZWdtZW50Q3RvcigNCj4gKyAgICBJTiAgUFZP
SUQgICAgICAgQXJndW1lbnQsDQo+ICsgICAgSU4gIFBWT0lEICAgICAgIE9iamVjdA0KPiAgICAg
ICkNCj4gIHsNCj4gLSAgICBBU1NFUlQzVShTZWN0b3JTaXplLCAhPSwgMCk7DQo+IC0gICAgcmV0
dXJuIFBBR0VfU0laRSAvIFNlY3RvclNpemU7DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRF
UihBcmd1bWVudCk7DQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihPYmplY3QpOw0KPiAr
ICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsNCj4gIH0NCj4gDQo+IC1zdGF0aWMgRk9SQ0VJTkxJ
TkUgVk9JRA0KPiAtX19SaW5nT3BlcmF0aW9uKA0KPiAtICAgIElOICBVQ0hBUiAgICAgICBDZGJP
cCwNCj4gLSAgICBPVVQgUFVDSEFSICAgICAgUmluZ09wLA0KPiAtICAgIE9VVCBQQk9PTEVBTiAg
ICBSZWFkT25seQ0KPiArc3RhdGljIERFQ0xTUEVDX05PSU5MSU5FIFZPSUQNCj4gK0Jsa2lmUmlu
Z1NlZ21lbnREdG9yKA0KPiArICAgIElOICBQVk9JRCAgICAgICBBcmd1bWVudCwNCj4gKyAgICBJ
TiAgUFZPSUQgICAgICAgT2JqZWN0DQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIHN3aXRjaCAoQ2Ri
T3ApIHsNCj4gLSAgICBjYXNlIFNDU0lPUF9SRUFEOg0KPiAtICAgICAgICAqUmluZ09wICAgICA9
IEJMS0lGX09QX1JFQUQ7DQo+IC0gICAgICAgICpSZWFkT25seSAgID0gRkFMU0U7DQo+IC0gICAg
ICAgIGJyZWFrOw0KPiAtICAgIGNhc2UgU0NTSU9QX1dSSVRFOg0KPiAtICAgICAgICAqUmluZ09w
ICAgICA9IEJMS0lGX09QX1dSSVRFOw0KPiAtICAgICAgICAqUmVhZE9ubHkgICA9IFRSVUU7DQo+
IC0gICAgICAgIGJyZWFrOw0KPiAtICAgIGRlZmF1bHQ6DQo+IC0gICAgICAgIEFTU0VSVChGQUxT
RSk7DQo+IC0gICAgfQ0KPiArICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoQXJndW1lbnQpOw0K
PiArICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoT2JqZWN0KTsNCj4gIH0NCj4gDQo+IC1zdGF0
aWMgRk9SQ0VJTkxJTkUgTU1fUEFHRV9QUklPUklUWQ0KPiAtX19SaW5nUHJpb3JpdHkoDQo+IC0g
ICAgSU4gIFBYRU5WQkRfUklORyAgICBSaW5nDQo+ICtzdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUg
TlRTVEFUVVMNCj4gK0Jsa2lmUmluZ0luZGlyZWN0Q3RvcigNCj4gKyAgICBJTiAgUFZPSUQgICAg
ICAgICAgIEFyZ3VtZW50LA0KPiArICAgIElOICBQVk9JRCAgICAgICAgICAgT2JqZWN0DQo+ICAg
ICAgKQ0KPiAgew0KPiAtICAgIFBYRU5WQkRfQ0FQUyAgICAgICAgQ2FwcyA9IEZyb250ZW5kR2V0
Q2FwcyhSaW5nLT5Gcm9udGVuZCk7DQo+IC0gICAgaWYgKCEoQ2Fwcy0+UGFnaW5nIHx8DQo+IC0g
ICAgICAgICAgQ2Fwcy0+SGliZXJuYXRpb24gfHwNCj4gLSAgICAgICAgICBDYXBzLT5EdW1wRmls
ZSkpDQo+IC0gICAgICAgIHJldHVybiBOb3JtYWxQYWdlUHJpb3JpdHk7DQo+ICsgICAgUFhFTlZC
RF9JTkRJUkVDVCAgICBJbmRpcmVjdCA9IE9iamVjdDsNCj4gKyAgICBOVFNUQVRVUyAgICAgICAg
ICAgIHN0YXR1czsNCj4gKw0KPiArICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoQXJndW1lbnQp
Ow0KPiArDQo+ICsgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsNCj4gKyAgICBJbmRpcmVj
dC0+TWRsID0gX19BbGxvY2F0ZVBhZ2UoKTsNCj4gKyAgICBpZiAoSW5kaXJlY3QtPk1kbCA9PSBO
VUxMKQ0KPiArICAgICAgICBnb3RvIGZhaWwxOw0KPiArDQo+ICsgICAgSW5kaXJlY3QtPlBhZ2Ug
PSBNbUdldFN5c3RlbUFkZHJlc3NGb3JNZGxTYWZlKEluZGlyZWN0LT5NZGwsDQo+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbFBhZ2VQcmlv
cml0eSk7DQo+ICsgICAgQVNTRVJUKEluZGlyZWN0LT5QYWdlKTsNCj4gDQo+IC0gICAgcmV0dXJu
IEhpZ2hQYWdlUHJpb3JpdHk7DQo+ICsgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOw0KPiArDQo+
ICtmYWlsMToNCj4gKyAgICBFcnJvcigiZmFpbDEgJTA4eFxuIiwgc3RhdHVzKTsNCj4gKyAgICBy
ZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gLXN0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+IC1S
aW5nUmVxdWVzdENvcHlPdXRwdXQoDQo+IC0gICAgSU4gIFBYRU5WQkRfUkVRVUVTVCBSZXF1ZXN0
DQo+ICtzdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRA0KPiArQmxraWZSaW5nSW5kaXJlY3RE
dG9yKA0KPiArICAgIElOICBQVk9JRCAgICAgICAgICAgQXJndW1lbnQsDQo+ICsgICAgSU4gIFBW
T0lEICAgICAgICAgICBPYmplY3QNCj4gICAgICApDQo+ICB7DQo+IC0gICAgUExJU1RfRU5UUlkg
ICAgICAgICBMaXN0RW50cnk7DQo+IC0NCj4gLSAgICBpZiAoUmVxdWVzdC0+T3BlcmF0aW9uICE9
IEJMS0lGX09QX1JFQUQpDQo+IC0gICAgICAgIHJldHVybjsNCj4gKyAgICBQWEVOVkJEX0lORElS
RUNUICAgIEluZGlyZWN0ID0gT2JqZWN0Ow0KPiANCj4gLSAgICBmb3IgKExpc3RFbnRyeSA9IFJl
cXVlc3QtPlNlZ21lbnRzLkZsaW5rOw0KPiAtICAgICAgICAgTGlzdEVudHJ5ICE9ICZSZXF1ZXN0
LT5TZWdtZW50czsNCj4gLSAgICAgICAgIExpc3RFbnRyeSA9IExpc3RFbnRyeS0+RmxpbmspIHsN
Cj4gLSAgICAgICAgUFhFTlZCRF9TRUdNRU5UIFNlZ21lbnQgPSBDT05UQUlOSU5HX1JFQ09SRChM
aXN0RW50cnksDQo+IFhFTlZCRF9TRUdNRU5ULCBMaXN0RW50cnkpOw0KPiAtICAgICAgICBQWEVO
VkJEX0JPVU5DRSAgQm91bmNlID0gU2VnbWVudC0+Qm91bmNlOw0KPiArICAgIFVOUkVGRVJFTkNF
RF9QQVJBTUVURVIoQXJndW1lbnQpOw0KPiANCj4gLSAgICAgICAgaWYgKEJvdW5jZSkgew0KPiAt
ICAgICAgICAgICAgUnRsQ29weU1lbW9yeShCb3VuY2UtPlNvdXJjZVB0ciwNCj4gLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgQm91bmNlLT5Cb3VuY2VQdHIsDQo+IC0gICAgICAgICAgICAgICAg
ICAgICAgICAgIE1tR2V0TWRsQnl0ZUNvdW50KCZCb3VuY2UtPlNvdXJjZU1kbCkpOw0KPiAtICAg
ICAgICB9DQo+IC0gICAgfQ0KPiArICAgIF9fRnJlZVBhZ2VzKEluZGlyZWN0LT5NZGwpOw0KPiAr
ICAgIEluZGlyZWN0LT5QYWdlID0gTlVMTDsNCj4gKyAgICBJbmRpcmVjdC0+TWRsID0gTlVMTDsN
Cj4gIH0NCj4gDQo+IC1zdGF0aWMgQk9PTEVBTg0KPiAtUmluZ1ByZXBhcmVTZWdtZW50KA0KPiAt
ICAgIElOICBQWEVOVkJEX1JJTkcgICAgUmluZywNCj4gLSAgICBJTiAgUFhFTlZCRF9TRUdNRU5U
IFNlZ21lbnQsDQo+IC0gICAgSU4gIFBYRU5WQkRfU1JCRVhUICBTcmJFeHQsDQo+IC0gICAgSU4g
IEJPT0xFQU4gICAgICAgICBSZWFkT25seSwNCj4gLSAgICBJTiAgVUxPTkcgICAgICAgICAgIFNl
Y3RvcnNMZWZ0LA0KPiAtICAgIE9VVCBQVUxPTkcgICAgICAgICAgU2VjdG9yc05vdw0KPiAtICAg
ICkNCj4gLXsNCj4gLSAgICBQRk5fTlVNQkVSICAgICAgICAgIFBmbjsNCj4gLSAgICBVTE9ORyAg
ICAgICAgICAgICAgIE9mZnNldDsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgICAgIExlbmd0aDsN
Cj4gLSAgICBOVFNUQVRVUyAgICAgICAgICAgIFN0YXR1czsNCj4gLSAgICBQWEVOVkJEX0dSQU5U
RVIgICAgIEdyYW50ZXIgPSBGcm9udGVuZEdldEdyYW50ZXIoUmluZy0+RnJvbnRlbmQpOw0KPiAt
ICAgIGNvbnN0IFVMT05HICAgICAgICAgU2VjdG9yU2l6ZSA9IEZyb250ZW5kR2V0RGlza0luZm8o
UmluZy0+RnJvbnRlbmQpLQ0KPiA+U2VjdG9yU2l6ZTsNCj4gLSAgICBjb25zdCBVTE9ORyAgICAg
ICAgIFNlY3RvcnNQZXJQYWdlID0gX19SaW5nU2VjdG9yc1BlclBhZ2UoU2VjdG9yU2l6ZSk7DQo+
IC0gICAgUFhFTlZCRF9UQVJHRVQgICAgICBUYXJnZXQgPSBGcm9udGVuZEdldFRhcmdldChSaW5n
LT5Gcm9udGVuZCk7DQo+IC0gICAgUFhFTlZCRF9BREFQVEVSICAgICBBZGFwdGVyID0gVGFyZ2V0
R2V0QWRhcHRlcihUYXJnZXQpOw0KPiArc3RhdGljIFZPSUQNCj4gK0Jsa2lmUmluZ0RlYnVnQ2Fs
bGJhY2soDQo+ICsgICAgSU4gIFBWT0lEICAgICAgICAgICBBcmd1bWVudCwNCj4gKyAgICBJTiAg
Qk9PTEVBTiAgICAgICAgIENyYXNoaW5nDQo+ICsgICAgKQ0KPiArew0KPiArICAgIFBYRU5WQkRf
QkxLSUZfUklORyAgQmxraWZSaW5nID0gQXJndW1lbnQ7DQo+ICsgICAgUFhFTlZCRF9SSU5HICAg
ICAgICBSaW5nID0gQmxraWZSaW5nLT5SaW5nOw0KPiANCj4gLSAgICBQZm4gPSBBZGFwdGVyR2V0
TmV4dFNHRW50cnkoQWRhcHRlciwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U3JiRXh0LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLA0KPiAtICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmT2Zmc2V0LA0KPiAtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmTGVuZ3RoKTsNCj4gLSAgICBpZiAoKE9mZnNldCAmIChTZWN0b3JTaXpl
IC0gMSkpID09IDAgJiYNCj4gKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKENyYXNoaW5nKTsN
Cj4gKw0KPiArICAgIFhFTkJVU19ERUJVRyhQcmludGYsDQo+ICsgICAgICAgICAgICAgICAgICZS
aW5nLT5EZWJ1Z0ludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgIjB4JXAgWyVzXVxuIiwN
Cj4gKyAgICAgICAgICAgICAgICAgQmxraWZSaW5nLA0KPiArICAgICAgICAgICAgICAgICAoQmxr
aWZSaW5nLT5FbmFibGVkKSA/ICJFTkFCTEVEIiA6ICJESVNBQkxFRCIpOw0KPiArDQo+ICsgICAg
Ly8gRHVtcCBmcm9udCByaW5nDQo+ICsgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gKyAgICAg
ICAgICAgICAgICAgJlJpbmctPkRlYnVnSW50ZXJmYWNlLA0KPiArICAgICAgICAgICAgICAgICAi
RlJPTlQ6IHJlcV9wcm9kX3B2dCA9ICV1IHJzcF9jb25zID0gJXUgbnJfZW50cyA9ICV1IHNyaW5n
ID0NCj4gJXBcbiIsDQo+ICsgICAgICAgICAgICAgICAgIEJsa2lmUmluZy0+RnJvbnQucmVxX3By
b2RfcHZ0LA0KPiArICAgICAgICAgICAgICAgICBCbGtpZlJpbmctPkZyb250LnJzcF9jb25zLA0K
PiArICAgICAgICAgICAgICAgICBCbGtpZlJpbmctPkZyb250Lm5yX2VudHMsDQo+ICsgICAgICAg
ICAgICAgICAgIEJsa2lmUmluZy0+RnJvbnQuc3JpbmcpOw0KPiArDQo+ICsgICAgLy8gRHVtcCBz
aGFyZWQgcmluZw0KPiArICAgIFhFTkJVU19ERUJVRyhQcmludGYsDQo+ICsgICAgICAgICAgICAg
ICAgICZSaW5nLT5EZWJ1Z0ludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgIlNIQVJFRDog
cmVxX3Byb2QgPSAldSByZXFfZXZlbnQgPSAldSByc3BfcHJvZCA9ICV1DQo+IHJzcF9ldmVudCA9
ICV1XG4iLA0KPiArICAgICAgICAgICAgICAgICBCbGtpZlJpbmctPlNoYXJlZC0+cmVxX3Byb2Qs
DQo+ICsgICAgICAgICAgICAgICAgIEJsa2lmUmluZy0+U2hhcmVkLT5yZXFfZXZlbnQsDQo+ICsg
ICAgICAgICAgICAgICAgIEJsa2lmUmluZy0+U2hhcmVkLT5yc3BfcHJvZCwNCj4gKyAgICAgICAg
ICAgICAgICAgQmxraWZSaW5nLT5TaGFyZWQtPnJzcF9ldmVudCk7DQo+ICsNCj4gKyAgICBYRU5C
VVNfREVCVUcoUHJpbnRmLA0KPiArICAgICAgICAgICAgICAgICAmUmluZy0+RGVidWdJbnRlcmZh
Y2UsDQo+ICsgICAgICAgICAgICAgICAgICJSZXF1ZXN0c1Bvc3RlZCA9ICV1IFJlcXVlc3RzUHVz
aGVkID0gJXUgUmVzcG9uc2VzUHJvY2Vzc2VkDQo+ID0gJXVcbiIsDQo+ICsgICAgICAgICAgICAg
ICAgIEJsa2lmUmluZy0+UmVxdWVzdHNQb3N0ZWQsDQo+ICsgICAgICAgICAgICAgICAgIEJsa2lm
UmluZy0+UmVxdWVzdHNQdXNoZWQsDQo+ICsgICAgICAgICAgICAgICAgIEJsa2lmUmluZy0+UmVz
cG9uc2VzUHJvY2Vzc2VkKTsNCj4gKw0KPiArICAgIFhFTkJVU19ERUJVRyhQcmludGYsDQo+ICsg
ICAgICAgICAgICAgICAgICZSaW5nLT5EZWJ1Z0ludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAg
ICAgIlNyYnNRdWV1ZWQgPSAldSwgU3Jic0NvbXBsZXRlZCA9ICV1LCBTcmJzRmFpbGVkID0gJXVc
biIsDQo+ICsgICAgICAgICAgICAgICAgIEJsa2lmUmluZy0+U3Jic1F1ZXVlZCwNCj4gKyAgICAg
ICAgICAgICAgICAgQmxraWZSaW5nLT5TcmJzQ29tcGxldGVkLA0KPiArICAgICAgICAgICAgICAg
ICBCbGtpZlJpbmctPlNyYnNGYWlsZWQpOw0KPiArDQo+ICsgICAgWEVOQlVTX0RFQlVHKFByaW50
ZiwNCj4gKyAgICAgICAgICAgICAgICAgJlJpbmctPkRlYnVnSW50ZXJmYWNlLA0KPiArICAgICAg
ICAgICAgICAgICAiRHBjcyA9ICV1LCBFdmVudHMgPSAldVxuIiwNCj4gKyAgICAgICAgICAgICAg
ICAgQmxraWZSaW5nLT5EcGNzLA0KPiArICAgICAgICAgICAgICAgICBCbGtpZlJpbmctPkV2ZW50
cyk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBERUNMU1BFQ19OT0lOTElORSBWT0lEDQo+ICtfX0Js
a2lmUmluZ0NvbXBsZXRlU3JiKA0KPiArICAgIElOICBQWEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lm
UmluZywNCj4gKyAgICBJTiAgUFhFTlZCRF9TUkJFWFQgICAgICBTcmJFeHQNCj4gKyAgICApDQo+
ICt7DQo+ICsgICAgUFhFTlZCRF9SSU5HICAgICAgICAgICAgUmluZyA9IEJsa2lmUmluZy0+Umlu
ZzsNCj4gKyAgICBQWEVOVkJEX0ZST05URU5EICAgICAgICBGcm9udGVuZCA9IFJpbmctPkZyb250
ZW5kOw0KPiArICAgIFBYRU5WQkRfVEFSR0VUICAgICAgICAgIFRhcmdldCA9IEZyb250ZW5kR2V0
VGFyZ2V0KEZyb250ZW5kKTsNCj4gKyAgICBQWEVOVkJEX0FEQVBURVIgICAgICAgICBBZGFwdGVy
ID0gVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpOw0KPiArICAgIFBTQ1NJX1JFUVVFU1RfQkxPQ0sg
ICAgIFNyYiA9IFNyYkV4dC0+U3JiOw0KPiArDQo+ICsgICAgaWYgKFNyYi0+U3JiU3RhdHVzID09
IFNSQl9TVEFUVVNfUEVORElORykgew0KPiArICAgICAgICAvLyBTUkIgaGFzIG5vdCBoaXQgYSBm
YWlsdXJlIGNvbmRpdGlvbiAoQkxLSUZfUlNQX0VSUk9SIHwNCj4gQkxLSUZfUlNQX0VPUE5PVFNV
UFApDQo+ICsgICAgICAgIC8vIGZyb20gYW55IG9mIGl0cyByZXNwb25zZXMuIFNSQiBtdXN0IGhh
dmUgc3VjY2VlZGVkDQo+ICsgICAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19TVUND
RVNTOw0KPiArICAgICAgICBTcmItPlNjc2lTdGF0dXMgPSAweDAwOyAvLyBTQ1NJX0dPT0QNCj4g
KyAgICAgICAgKytCbGtpZlJpbmctPlNyYnNDb21wbGV0ZWQ7DQo+ICsgICAgfSBlbHNlIHsNCj4g
KyAgICAgICAgLy8gU3JiLT5TcmJTdGF0dXMgaGFzIGFscmVhZHkgYmVlbiBzZXQgYnkgMSBvciBt
b3JlIHJlcXVlc3RzIHdpdGgNCj4gU3RhdHVzICE9IEJMS0lGX1JTUF9PS0FZDQo+ICsgICAgICAg
IFNyYi0+U2NzaVN0YXR1cyA9IDB4NDA7IC8vIFNDU0lfQUJPUlRFRA0KPiArICAgICAgICArK0Js
a2lmUmluZy0+U3Jic0ZhaWxlZDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBBZGFwdGVyQ29tcGxl
dGVTcmIoQWRhcHRlciwgU3JiRXh0KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIEZPUkNFSU5MSU5F
IFZPSUQNCj4gK0Jsa2lmUmluZ1VucHJlcGFyZVJlcXVlc3QoDQo+ICsgICAgSU4gIFBYRU5WQkRf
QkxLSUZfUklORyAgQmxraWZSaW5nLA0KPiArICAgIElOICBQTElTVF9FTlRSWSAgICAgICAgIExp
c3QNCj4gKyAgICApDQo+ICt7DQo+ICsgICAgZm9yICg7Oykgew0KPiArICAgICAgICBQTElTVF9F
TlRSWSAgICAgICAgIExpc3RFbnRyeTsNCj4gKyAgICAgICAgUFhFTlZCRF9SRVFVRVNUICAgICBS
ZXF1ZXN0Ow0KPiArDQo+ICsgICAgICAgIExpc3RFbnRyeSA9IFJlbW92ZUhlYWRMaXN0KExpc3Qp
Ow0KPiArICAgICAgICBpZiAoTGlzdEVudHJ5ID09IExpc3QpDQo+ICsgICAgICAgICAgICBicmVh
azsNCj4gKw0KPiArICAgICAgICBSZXF1ZXN0ID0gQ09OVEFJTklOR19SRUNPUkQoTGlzdEVudHJ5
LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOVkJEX1JFUVVFU1Qs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0RW50cnkpOw0KPiAr
DQo+ICsgICAgICAgIEJsa2lmUmluZ1B1dFJlcXVlc3QoQmxraWZSaW5nLCBSZXF1ZXN0KTsNCj4g
KyAgICB9DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICtCbGtpZlJp
bmdRdWV1ZVJlcXVlc3RzKA0KPiArICAgIElOICBQWEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lmUmlu
ZywNCj4gKyAgICBJTiAgUExJU1RfRU5UUlkgICAgICAgICBMaXN0DQo+ICsgICAgKQ0KPiArew0K
PiArICAgIFBYRU5WQkRfU1JCX1NUQVRFICAgICAgIFN0YXRlID0gJkJsa2lmUmluZy0+U3RhdGU7
DQo+ICsNCj4gKyAgICBmb3IgKDs7KSB7DQo+ICsgICAgICAgIFBMSVNUX0VOVFJZICAgICAgICAg
TGlzdEVudHJ5Ow0KPiArICAgICAgICBQWEVOVkJEX1JFUVVFU1QgICAgIFJlcXVlc3Q7DQo+ICsN
Cj4gKyAgICAgICAgTGlzdEVudHJ5ID0gUmVtb3ZlSGVhZExpc3QoTGlzdCk7DQo+ICsgICAgICAg
IGlmIChMaXN0RW50cnkgPT0gTGlzdCkNCj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiArDQo+ICsg
ICAgICAgIFJlcXVlc3QgPSBDT05UQUlOSU5HX1JFQ09SRChMaXN0RW50cnksDQo+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5WQkRfUkVRVUVTVCwNCj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3RFbnRyeSk7DQo+ICsNCj4gKyAgICAgICAg
SW5zZXJ0VGFpbExpc3QoJlN0YXRlLT5MaXN0LCBMaXN0RW50cnkpOw0KPiArICAgICAgICBTdGF0
ZS0+Q291bnQrKzsNCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBCT09MRUFODQo+ICtC
bGtpZlJpbmdQcmVwYXJlU2VnbWVudCgNCj4gKyAgICBJTiAgUFhFTlZCRF9CTEtJRl9SSU5HICBC
bGtpZlJpbmcsDQo+ICsgICAgSU4gIFBYRU5WQkRfU0VHTUVOVCAgICAgU2VnbWVudCwNCj4gKyAg
ICBJTiAgUFhFTlZCRF9TUkJFWFQgICAgICBTcmJFeHQsDQo+ICsgICAgSU4gIEJPT0xFQU4gICAg
ICAgICAgICAgUmVhZE9ubHksDQo+ICsgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgU2VjdG9y
c0xlZnQsDQo+ICsgICAgT1VUIFBVTE9ORyAgICAgICAgICAgICAgU2VjdG9yc05vdw0KPiArICAg
ICkNCj4gK3sNCj4gKyAgICBQRk5fTlVNQkVSICAgICAgICAgICAgICBQZm47DQo+ICsgICAgVUxP
TkcgICAgICAgICAgICAgICAgICAgT2Zmc2V0Ow0KPiArICAgIFVMT05HICAgICAgICAgICAgICAg
ICAgIExlbmd0aDsNCj4gKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ICsg
ICAgUFhFTlZCRF9SSU5HICAgICAgICAgICAgUmluZyA9IEJsa2lmUmluZy0+UmluZzsNCj4gKyAg
ICBQWEVOVkJEX0dSQU5URVIgICAgICAgICBHcmFudGVyID0gRnJvbnRlbmRHZXRHcmFudGVyKFJp
bmctDQo+ID5Gcm9udGVuZCk7DQo+ICsgICAgUFhFTlZCRF9UQVJHRVQgICAgICAgICAgVGFyZ2V0
ID0gRnJvbnRlbmRHZXRUYXJnZXQoUmluZy0+RnJvbnRlbmQpOw0KPiArICAgIFBYRU5WQkRfQURB
UFRFUiAgICAgICAgIEFkYXB0ZXIgPSBUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCk7DQo+ICsNCj4g
KyAgICBjb25zdCBVTE9ORyAgICAgICAgICAgICBTZWN0b3JTaXplID0gRnJvbnRlbmRHZXREaXNr
SW5mbyhSaW5nLT5Gcm9udGVuZCktDQo+ID5TZWN0b3JTaXplOw0KPiArICAgIGNvbnN0IFVMT05H
ICAgICAgICAgICAgIFNlY3RvcnNQZXJQYWdlID0gX19TZWN0b3JzUGVyUGFnZShTZWN0b3JTaXpl
KTsNCj4gKw0KPiArICAgIFBmbiA9IEFkYXB0ZXJHZXROZXh0U0dFbnRyeShBZGFwdGVyLA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcmJFeHQsDQo+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDAsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZPZmZzZXQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZMZW5ndGgpOw0K
PiArICAgIGlmICgoT2Zmc2V0ICYgKFNlY3RvclNpemUgLSAxKSkgPT0gMCAmJg0KPiAgICAgICAg
ICAoTGVuZ3RoICYgKFNlY3RvclNpemUgLSAxKSkgPT0gMCkgew0KPiAtICAgICAgICArK1Jpbmct
PlNlZ3NHcmFudGVkOw0KPiArICAgICAgICBJbnRlcmxvY2tlZEluY3JlbWVudCgmUmluZy0NCj4g
PlN0YXRzW1hFTlZCRF9TVEFUX1NFR01FTlRTX0dSQU5URURdKTsNCj4gKw0KPiAgICAgICAgICAv
LyBnZXQgZmlyc3Qgc2VjdG9yLCBsYXN0IHNlY3RvciBhbmQgY291bnQNCj4gLSAgICAgICAgU2Vn
bWVudC0+Rmlyc3RTZWN0b3IgICAgPSAoVUNIQVIpKChPZmZzZXQgKyBTZWN0b3JTaXplIC0gMSkg
Lw0KPiBTZWN0b3JTaXplKTsNCj4gLSAgICAgICAgKlNlY3RvcnNOb3cgICAgICAgICAgICAgPSBf
X21pbihTZWN0b3JzTGVmdCwgU2VjdG9yc1BlclBhZ2UgLSBTZWdtZW50LQ0KPiA+Rmlyc3RTZWN0
b3IpOw0KPiAtICAgICAgICBTZWdtZW50LT5MYXN0U2VjdG9yICAgICA9IChVQ0hBUikoU2VnbWVu
dC0+Rmlyc3RTZWN0b3IgKw0KPiAqU2VjdG9yc05vdyAtIDEpOw0KPiArICAgICAgICBTZWdtZW50
LT5GaXJzdFNlY3RvciA9IChVQ0hBUikoKE9mZnNldCArIFNlY3RvclNpemUgLSAxKSAvIFNlY3Rv
clNpemUpOw0KPiArICAgICAgICAqU2VjdG9yc05vdyA9IF9fbWluKFNlY3RvcnNMZWZ0LCBTZWN0
b3JzUGVyUGFnZSAtIFNlZ21lbnQtDQo+ID5GaXJzdFNlY3Rvcik7DQo+ICsgICAgICAgIFNlZ21l
bnQtPkxhc3RTZWN0b3IgPSAoVUNIQVIpKFNlZ21lbnQtPkZpcnN0U2VjdG9yICsgKlNlY3RvcnNO
b3cNCj4gLSAxKTsNCj4gDQo+IC0gICAgICAgIEFTU0VSVDNVKChMZW5ndGggLyBTZWN0b3JTaXpl
KSwgPT0sICpTZWN0b3JzTm93KTsNCj4gKyAgICAgICAgQVNTRVJUM1UoKExlbmd0aCAvIFNlY3Rv
clNpemUpLCA9PSAsICpTZWN0b3JzTm93KTsNCj4gICAgICB9IGVsc2Ugew0KPiAgICAgICAgICBQ
WEVOVkJEX0JPVU5DRSAgICAgIEJvdW5jZTsNCj4gICAgICAgICAgUE1ETCAgICAgICAgICAgICAg
ICBNZGw7DQo+ICsgICAgICAgIFBYRU5WQkRfQ0FQUyAgICAgICAgQ2FwcyA9IEZyb250ZW5kR2V0
Q2FwcyhSaW5nLT5Gcm9udGVuZCk7DQo+ICsNCj4gKyAgICAgICAgSW50ZXJsb2NrZWRJbmNyZW1l
bnQoJlJpbmctDQo+ID5TdGF0c1tYRU5WQkRfU1RBVF9TRUdNRU5UU19CT1VOQ0VEXSk7DQo+IA0K
PiAtICAgICAgICArK1JpbmctPlNlZ3NCb3VuY2VkOw0KPiAgICAgICAgICAvLyBnZXQgZmlyc3Qg
c2VjdG9yLCBsYXN0IHNlY3RvciBhbmQgY291bnQNCj4gLSAgICAgICAgU2VnbWVudC0+Rmlyc3RT
ZWN0b3IgICAgPSAwOw0KPiAtICAgICAgICAqU2VjdG9yc05vdyAgICAgICAgICAgICA9IF9fbWlu
KFNlY3RvcnNMZWZ0LCBTZWN0b3JzUGVyUGFnZSk7DQo+IC0gICAgICAgIFNlZ21lbnQtPkxhc3RT
ZWN0b3IgICAgID0gKFVDSEFSKSgqU2VjdG9yc05vdyAtIDEpOw0KPiArICAgICAgICBTZWdtZW50
LT5GaXJzdFNlY3RvciA9IDA7DQo+ICsgICAgICAgICpTZWN0b3JzTm93ID0gX19taW4oU2VjdG9y
c0xlZnQsIFNlY3RvcnNQZXJQYWdlKTsNCj4gKyAgICAgICAgU2VnbWVudC0+TGFzdFNlY3RvciA9
IChVQ0hBUikoKlNlY3RvcnNOb3cgLSAxKTsNCj4gDQo+ICAgICAgICAgIEJvdW5jZSA9IEFkYXB0
ZXJHZXRCb3VuY2UoQWRhcHRlcik7DQo+ICAgICAgICAgIGlmIChCb3VuY2UgPT0gTlVMTCkNCj4g
QEAgLTU4NiwxNSArNjg4LDE1IEBAIFJpbmdQcmVwYXJlU2VnbWVudCgNCj4gICNwcmFnbWEgd2Fy
bmluZyhwdXNoKQ0KPiAgI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6MjgxNDUpDQo+ICAgICAgICAg
IE1kbCA9ICZCb3VuY2UtPlNvdXJjZU1kbDsNCj4gLSAgICAgICAgTWRsLT5OZXh0ICAgICAgICAg
ICAgICAgPSBOVUxMOw0KPiAtICAgICAgICBNZGwtPlNpemUgICAgICAgICAgICAgICA9IChTSE9S
VCkoc2l6ZW9mKE1ETCkgKyBzaXplb2YoUEZOX05VTUJFUikpOw0KPiAtICAgICAgICBNZGwtPk1k
bEZsYWdzICAgICAgICAgICA9IE1ETF9QQUdFU19MT0NLRUQ7DQo+IC0gICAgICAgIE1kbC0+UHJv
Y2VzcyAgICAgICAgICAgID0gTlVMTDsNCj4gLSAgICAgICAgTWRsLT5NYXBwZWRTeXN0ZW1WYSAg
ICAgPSBOVUxMOw0KPiAtICAgICAgICBNZGwtPlN0YXJ0VmEgICAgICAgICAgICA9IE5VTEw7DQo+
IC0gICAgICAgIE1kbC0+Qnl0ZUNvdW50ICAgICAgICAgID0gTGVuZ3RoOw0KPiAtICAgICAgICBN
ZGwtPkJ5dGVPZmZzZXQgICAgICAgICA9IE9mZnNldDsNCj4gLSAgICAgICAgQm91bmNlLT5Tb3Vy
Y2VQZm5bMF0gICAgPSBQZm47DQo+ICsgICAgICAgIE1kbC0+TmV4dCA9IE5VTEw7DQo+ICsgICAg
ICAgIE1kbC0+U2l6ZSA9IChTSE9SVCkoc2l6ZW9mKE1ETCkgKyBzaXplb2YoUEZOX05VTUJFUikp
Ow0KPiArICAgICAgICBNZGwtPk1kbEZsYWdzID0gTURMX1BBR0VTX0xPQ0tFRDsNCj4gKyAgICAg
ICAgTWRsLT5Qcm9jZXNzID0gTlVMTDsNCj4gKyAgICAgICAgTWRsLT5NYXBwZWRTeXN0ZW1WYSA9
IE5VTEw7DQo+ICsgICAgICAgIE1kbC0+U3RhcnRWYSA9IE5VTEw7DQo+ICsgICAgICAgIE1kbC0+
Qnl0ZUNvdW50ID0gTGVuZ3RoOw0KPiArICAgICAgICBNZGwtPkJ5dGVPZmZzZXQgPSBPZmZzZXQ7
DQo+ICsgICAgICAgIEJvdW5jZS0+U291cmNlUGZuWzBdID0gUGZuOw0KPiANCj4gICAgICAgICAg
aWYgKExlbmd0aCA8ICpTZWN0b3JzTm93ICogU2VjdG9yU2l6ZSkgew0KPiAgICAgICAgICAgICAg
UGZuID0gQWRhcHRlckdldE5leHRTR0VudHJ5KEFkYXB0ZXIsDQo+IEBAIC02MDIsMjcgKzcwNCwy
NyBAQCBSaW5nUHJlcGFyZVNlZ21lbnQoDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTGVuZ3RoLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZPZmZzZXQsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJkxlbmd0aCk7DQo+IC0gICAgICAgICAgICBNZGwtPlNpemUgICAgICAgICAgICs9IHNpemVv
ZihQRk5fTlVNQkVSKTsNCj4gLSAgICAgICAgICAgIE1kbC0+Qnl0ZUNvdW50ICAgICAgKz0gTGVu
Z3RoOw0KPiArICAgICAgICAgICAgTWRsLT5TaXplICs9IHNpemVvZihQRk5fTlVNQkVSKTsNCj4g
KyAgICAgICAgICAgIE1kbC0+Qnl0ZUNvdW50ICs9IExlbmd0aDsNCj4gICAgICAgICAgICAgIEJv
dW5jZS0+U291cmNlUGZuWzFdID0gUGZuOw0KPiAgICAgICAgICB9DQo+ICAjcHJhZ21hIHdhcm5p
bmcocG9wKQ0KPiANCj4gICAgICAgICAgQVNTRVJUKChNZGwtPkJ5dGVDb3VudCAmIChTZWN0b3JT
aXplIC0gMSkpID09IDApOw0KPiAtICAgICAgICBBU1NFUlQzVShNZGwtPkJ5dGVDb3VudCwgPD0s
IFBBR0VfU0laRSk7DQo+IC0gICAgICAgIEFTU0VSVDNVKCpTZWN0b3JzTm93LCA9PSwgKE1kbC0+
Qnl0ZUNvdW50IC8gU2VjdG9yU2l6ZSkpOw0KPiArICAgICAgICBBU1NFUlQzVShNZGwtPkJ5dGVD
b3VudCwgPD0gLCBQQUdFX1NJWkUpOw0KPiArICAgICAgICBBU1NFUlQzVSgqU2VjdG9yc05vdywg
PT0gLCAoTWRsLT5CeXRlQ291bnQgLyBTZWN0b3JTaXplKSk7DQo+IA0KPiAgICAgICAgICBCb3Vu
Y2UtPlNvdXJjZVB0ciA9IE1tTWFwTG9ja2VkUGFnZXNTcGVjaWZ5Q2FjaGUoTWRsLA0KPiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2Vy
bmVsTW9kZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE1tQ2FjaGVkLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19SaW5nUHJp
b3JpdHkoUmluZykpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgX19Qcmlvcml0eShDYXBzKSk7DQo+ICAgICAgICAgIGlmIChCb3Vu
Y2UtPlNvdXJjZVB0ciA9PSBOVUxMKQ0KPiAgICAgICAgICAgICAgZ290byBmYWlsMjsNCj4gDQo+
IC0gICAgICAgIEFTU0VSVDNQKE1tR2V0TWRsUGZuQXJyYXkoTWRsKVswXSwgPT0sIEJvdW5jZS0+
U291cmNlUGZuWzBdKTsNCj4gLSAgICAgICAgQVNTRVJUM1AoTW1HZXRNZGxQZm5BcnJheShNZGwp
WzFdLCA9PSwgQm91bmNlLT5Tb3VyY2VQZm5bMV0pOw0KPiArICAgICAgICBBU1NFUlQzUChNbUdl
dE1kbFBmbkFycmF5KE1kbClbMF0sID09ICwgQm91bmNlLT5Tb3VyY2VQZm5bMF0pOw0KPiArICAg
ICAgICBBU1NFUlQzUChNbUdldE1kbFBmbkFycmF5KE1kbClbMV0sID09ICwgQm91bmNlLT5Tb3Vy
Y2VQZm5bMV0pOw0KPiANCj4gICAgICAgICAgLy8gY29weSBjb250ZW50cyBpbg0KPiAgICAgICAg
ICBpZiAoUmVhZE9ubHkpIHsgLy8gT3BlcmF0aW9uID09IEJMS0lGX09QX1dSSVRFDQo+IEBAIC02
NDcsNTIzICs3NDksNTEwIEBAIGZhaWwxOg0KPiAgICAgIHJldHVybiBGQUxTRTsNCj4gIH0NCj4g
DQo+IC1zdGF0aWMgQk9PTEVBTg0KPiAtUmluZ1ByZXBhcmVCbGtpZlJlYWRXcml0ZSgNCj4gLSAg
ICBJTiAgUFhFTlZCRF9SSU5HICAgIFJpbmcsDQo+IC0gICAgSU4gIFBYRU5WQkRfUkVRVUVTVCBS
ZXF1ZXN0LA0KPiAtICAgIElOICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0LA0KPiAtICAgIElOICBV
TE9ORyAgICAgICAgICAgTWF4U2VnbWVudHMsDQo+IC0gICAgSU4gIFVMT05HNjQgICAgICAgICBT
ZWN0b3JTdGFydCwNCj4gLSAgICBJTiAgVUxPTkcgICAgICAgICAgIFNlY3RvcnNMZWZ0LA0KPiAt
ICAgIE9VVCBQVUxPTkcgICAgICAgICAgU2VjdG9yc0RvbmUNCj4gK3N0YXRpYyBOVFNUQVRVUw0K
PiArQmxraWZSaW5nUHJlcGFyZVJlYWRXcml0ZSgNCj4gKyAgICBJTiAgUFhFTlZCRF9CTEtJRl9S
SU5HICBCbGtpZlJpbmcsDQo+ICsgICAgSU4gIFBYRU5WQkRfU1JCRVhUICAgICAgU3JiRXh0DQo+
ICAgICAgKQ0KPiAgew0KPiAtICAgIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgU3JiID0gU3JiRXh0LT5T
cmI7DQo+IC0gICAgVUNIQVIgICAgICAgICAgICAgICBPcGVyYXRpb247DQo+IC0gICAgQk9PTEVB
TiAgICAgICAgICAgICBSZWFkT25seTsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4
Ow0KPiAtICAgIF9fUmluZ09wZXJhdGlvbihDZGJfT3BlcmF0aW9uRXgoU3JiKSwgJk9wZXJhdGlv
biwgJlJlYWRPbmx5KTsNCj4gLQ0KPiAtICAgIFJlcXVlc3QtPk9wZXJhdGlvbiAgPSBPcGVyYXRp
b247DQo+IC0gICAgUmVxdWVzdC0+TnJTZWdtZW50cyA9IDA7DQo+IC0gICAgUmVxdWVzdC0+Rmly
c3RTZWN0b3IgPSBTZWN0b3JTdGFydDsNCj4gLQ0KPiAtICAgIGZvciAoSW5kZXggPSAwOw0KPiAt
ICAgICAgICAgICAgICAgIEluZGV4IDwgTWF4U2VnbWVudHMgJiYNCj4gLSAgICAgICAgICAgICAg
ICBTZWN0b3JzTGVmdCA+IDA7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICArK0luZGV4KSB7
DQo+IC0gICAgICAgIFBYRU5WQkRfU0VHTUVOVCBTZWdtZW50Ow0KPiAtICAgICAgICBVTE9ORyAg
ICAgICAgICAgU2VjdG9yc05vdzsNCj4gLQ0KPiAtICAgICAgICBTZWdtZW50ID0gUmluZ0dldFNl
Z21lbnQoUmluZyk7DQo+IC0gICAgICAgIGlmIChTZWdtZW50ID09IE5VTEwpDQo+IC0gICAgICAg
ICAgICBnb3RvIGZhaWwxOw0KPiAtDQo+IC0gICAgICAgIEluc2VydFRhaWxMaXN0KCZSZXF1ZXN0
LT5TZWdtZW50cywgJlNlZ21lbnQtPkxpc3RFbnRyeSk7DQo+IC0gICAgICAgICsrUmVxdWVzdC0+
TnJTZWdtZW50czsNCj4gKyAgICBQWEVOVkJEX1JJTkcgICAgICAgICAgICBSaW5nID0gQmxraWZS
aW5nLT5SaW5nOw0KPiArICAgIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kID0gUmlu
Zy0+RnJvbnRlbmQ7DQo+ICsgICAgUFNDU0lfUkVRVUVTVF9CTE9DSyAgICAgU3JiID0gU3JiRXh0
LT5TcmI7DQo+ICsgICAgVUxPTkc2NCAgICAgICAgICAgICAgICAgU2VjdG9yU3RhcnQgPSBDZGJf
TG9naWNhbEJsb2NrKFNyYik7DQo+ICsgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgU2VjdG9y
c0xlZnQgPSBDZGJfVHJhbnNmZXJCbG9jayhTcmIpOw0KPiArICAgIFVDSEFSICAgICAgICAgICAg
ICAgICAgIE9wZXJhdGlvbjsNCj4gKyAgICBCT09MRUFOICAgICAgICAgICAgICAgICBSZWFkT25s
eTsNCj4gKyAgICBMSVNUX0VOVFJZICAgICAgICAgICAgICBMaXN0Ow0KPiANCj4gLSAgICAgICAg
aWYgKCFSaW5nUHJlcGFyZVNlZ21lbnQoUmluZywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU2VnbWVudCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Ji
RXh0LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFkT25seSwNCj4gLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VjdG9yc0xlZnQsDQo+IC0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZTZWN0b3JzTm93KSkNCj4gLSAgICAgICAgICAgIGdvdG8g
ZmFpbDI7DQo+ICsgICAgY29uc3QgVUxPTkcgICAgICAgICAgICAgU2VjdG9yU2l6ZSA9IEZyb250
ZW5kR2V0RGlza0luZm8oRnJvbnRlbmQpLQ0KPiA+U2VjdG9yU2l6ZTsNCj4gKyAgICBjb25zdCBV
TE9ORyAgICAgICAgICAgICBTZWN0b3JzUGVyUGFnZSA9IF9fU2VjdG9yc1BlclBhZ2UoU2VjdG9y
U2l6ZSk7DQo+ICsgICAgY29uc3QgVUxPTkcgICAgICAgICAgICAgTWF4SW5kaXJlY3QgPSBGcm9u
dGVuZEdldEZlYXR1cmVzKEZyb250ZW5kKS0NCj4gPkluZGlyZWN0Ow0KPiANCj4gLSAgICAgICAg
KlNlY3RvcnNEb25lICs9IFNlY3RvcnNOb3c7DQo+IC0gICAgICAgIFNlY3RvcnNMZWZ0ICAtPSBT
ZWN0b3JzTm93Ow0KPiAtICAgIH0NCj4gLSAgICBBU1NFUlQzVShSZXF1ZXN0LT5OclNlZ21lbnRz
LCA+LCAwKTsNCj4gLSAgICBBU1NFUlQzVShSZXF1ZXN0LT5OclNlZ21lbnRzLCA8PSwgTWF4U2Vn
bWVudHMpOw0KPiArICAgIEluaXRpYWxpemVMaXN0SGVhZCgmTGlzdCk7DQo+IA0KPiAtICAgIHJl
dHVybiBUUlVFOw0KPiArICAgIF9fT3BlcmF0aW9uKENkYl9PcGVyYXRpb25FeChTcmIpLCAmT3Bl
cmF0aW9uLCAmUmVhZE9ubHkpOw0KPiANCj4gLWZhaWwyOg0KPiAtZmFpbDE6DQo+IC0gICAgcmV0
dXJuIEZBTFNFOw0KPiAtfQ0KPiArICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19QRU5E
SU5HOw0KPiANCj4gLXN0YXRpYyBCT09MRUFODQo+IC1SaW5nUHJlcGFyZUJsa2lmSW5kaXJlY3Qo
DQo+IC0gICAgSU4gIFBYRU5WQkRfUklORyAgICBSaW5nLA0KPiAtICAgIElOICBQWEVOVkJEX1JF
UVVFU1QgUmVxdWVzdA0KPiAtICAgICkNCj4gLXsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgICAg
IEluZGV4Ow0KPiAtICAgIFVMT05HICAgICAgICAgICAgICAgTnJTZWdtZW50cyA9IDA7DQo+ICsg
ICAgU3JiRXh0LT5SZXF1ZXN0Q291bnQgPSAwOw0KPiANCj4gLSAgICBmb3IgKEluZGV4ID0gMDsN
Cj4gLSAgICAgICAgICAgIEluZGV4IDwgQkxLSUZfTUFYX0lORElSRUNUX1BBR0VTX1BFUl9SRVFV
RVNUICYmDQo+IC0gICAgICAgICAgICBOclNlZ21lbnRzIDwgUmVxdWVzdC0+TnJTZWdtZW50czsN
Cj4gLSAgICAgICAgICAgICAgICArK0luZGV4KSB7DQo+IC0gICAgICAgIFBYRU5WQkRfSU5ESVJF
Q1QgICAgSW5kaXJlY3Q7DQo+ICsgICAgd2hpbGUgKFNlY3RvcnNMZWZ0ID4gMCkgew0KPiArICAg
ICAgICBVTE9ORyAgICAgICAgICAgSW5kZXg7DQo+ICsgICAgICAgIFVMT05HICAgICAgICAgICBN
YXhTZWdtZW50czsNCj4gKyAgICAgICAgUFhFTlZCRF9SRVFVRVNUIFJlcXVlc3Q7DQo+IA0KPiAt
ICAgICAgICBJbmRpcmVjdCA9IFJpbmdHZXRJbmRpcmVjdChSaW5nKTsNCj4gLSAgICAgICAgaWYg
KEluZGlyZWN0ID09IE5VTEwpDQo+ICsgICAgICAgIFJlcXVlc3QgPSBCbGtpZlJpbmdHZXRSZXF1
ZXN0KEJsa2lmUmluZyk7DQo+ICsgICAgICAgIGlmIChSZXF1ZXN0ID09IE5VTEwpDQo+ICAgICAg
ICAgICAgICBnb3RvIGZhaWwxOw0KPiAtICAgICAgICBJbnNlcnRUYWlsTGlzdCgmUmVxdWVzdC0+
SW5kaXJlY3RzLCAmSW5kaXJlY3QtPkxpc3RFbnRyeSk7DQo+IC0NCj4gLSAgICAgICAgTnJTZWdt
ZW50cyArPSBYRU5WQkRfTUFYX1NFR01FTlRTX1BFUl9QQUdFOw0KPiAtICAgIH0NCj4gLQ0KPiAt
ICAgIHJldHVybiBUUlVFOw0KPiAtDQo+IC1mYWlsMToNCj4gLSAgICByZXR1cm4gRkFMU0U7DQo+
IC19DQo+ICsgICAgICAgIEluc2VydFRhaWxMaXN0KCZMaXN0LCAmUmVxdWVzdC0+TGlzdEVudHJ5
KTsNCj4gKyAgICAgICAgU3JiRXh0LT5SZXF1ZXN0Q291bnQrKzsNCj4gDQo+IC1zdGF0aWMgRk9S
Q0VJTkxJTkUgVUxPTkcNCj4gLVJpbmdVc2VJbmRpcmVjdCgNCj4gLSAgICBJTiAgUFhFTlZCRF9S
SU5HICAgIFJpbmcsDQo+IC0gICAgSU4gIFVMT05HICAgICAgICAgICBTZWN0b3JzTGVmdA0KPiAt
ICAgICkNCj4gLXsNCj4gLSAgICBjb25zdCBVTE9ORyBTZWN0b3JzUGVyUGFnZSA9DQo+IF9fUmlu
Z1NlY3RvcnNQZXJQYWdlKEZyb250ZW5kR2V0RGlza0luZm8oUmluZy0+RnJvbnRlbmQpLT5TZWN0
b3JTaXplKTsNCj4gLSAgICBjb25zdCBVTE9ORyBNYXhJbmRpcmVjdFNlZ3MgPSBGcm9udGVuZEdl
dEZlYXR1cmVzKFJpbmctPkZyb250ZW5kKS0NCj4gPkluZGlyZWN0Ow0KPiArICAgICAgICBSZXF1
ZXN0LT5TcmJFeHQgPSBTcmJFeHQ7DQo+IA0KPiAtICAgIGlmIChNYXhJbmRpcmVjdFNlZ3MgPD0g
QkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUKQ0KPiAtICAgICAgICByZXR1cm4gQkxLSUZf
TUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUOyAvLyBub3Qgc3VwcG9ydGVkDQo+ICsgICAgICAgIE1h
eFNlZ21lbnRzID0gX19Vc2VJbmRpcmVjdChTZWN0b3JzUGVyUGFnZSwNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE1heEluZGlyZWN0LA0KPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU2VjdG9yc0xlZnQpOw0KPiArDQo+ICsgICAgICAgIFJlcXVl
c3QtPk9wZXJhdGlvbiA9IE9wZXJhdGlvbjsNCj4gKyAgICAgICAgUmVxdWVzdC0+TnJTZWdtZW50
cyA9IDA7DQo+ICsgICAgICAgIFJlcXVlc3QtPkZpcnN0U2VjdG9yID0gU2VjdG9yU3RhcnQ7DQo+
ICsNCj4gKyAgICAgICAgZm9yIChJbmRleCA9IDA7DQo+ICsgICAgICAgICAgICAgSW5kZXggPCBN
YXhTZWdtZW50cyAmJg0KPiArICAgICAgICAgICAgIFNlY3RvcnNMZWZ0ID4gMDsNCj4gKyAgICAg
ICAgICAgICArK0luZGV4KSB7DQo+ICsgICAgICAgICAgICBQWEVOVkJEX1NFR01FTlQgU2VnbWVu
dDsNCj4gKyAgICAgICAgICAgIFVMT05HICAgICAgICAgICBTZWN0b3JzTm93Ow0KPiArDQo+ICsg
ICAgICAgICAgICBTZWdtZW50ID0gQmxraWZSaW5nR2V0U2VnbWVudChCbGtpZlJpbmcpOw0KPiAr
ICAgICAgICAgICAgaWYgKFNlZ21lbnQgPT0gTlVMTCkNCj4gKyAgICAgICAgICAgICAgICBnb3Rv
IGZhaWwyOw0KPiArDQo+ICsgICAgICAgICAgICBJbnNlcnRUYWlsTGlzdCgmUmVxdWVzdC0+U2Vn
bWVudHMsICZTZWdtZW50LT5MaXN0RW50cnkpOw0KPiArICAgICAgICAgICAgKytSZXF1ZXN0LT5O
clNlZ21lbnRzOw0KPiArDQo+ICsgICAgICAgICAgICBpZiAoIUJsa2lmUmluZ1ByZXBhcmVTZWdt
ZW50KEJsa2lmUmluZywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU2VnbWVudCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U3JiRXh0LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFk
T25seSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VjdG9y
c0xlZnQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZTZWN0
b3JzTm93KSkNCj4gKyAgICAgICAgICAgICAgICBnb3RvIGZhaWwzOw0KPiANCj4gLSAgICBpZiAo
U2VjdG9yc0xlZnQgPCBCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVFU1QgKg0KPiBTZWN0b3Jz
UGVyUGFnZSkNCj4gLSAgICAgICAgcmV0dXJuIEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVT
VDsgLy8gZmlyc3QgaW50byBhIHNpbmdsZQ0KPiBCTEtJRl9PUF97UkVBRC9XUklURX0NCj4gKyAg
ICAgICAgICAgIFNlY3RvcnNMZWZ0IC09IFNlY3RvcnNOb3c7DQo+ICsgICAgICAgICAgICBTZWN0
b3JTdGFydCArPSBTZWN0b3JzTm93Ow0KPiArICAgICAgICB9DQo+ICsgICAgICAgIEFTU0VSVDNV
KFJlcXVlc3QtPk5yU2VnbWVudHMsID4sIDApOw0KPiArICAgICAgICBBU1NFUlQzVShSZXF1ZXN0
LT5OclNlZ21lbnRzLCA8PSAsIE1heFNlZ21lbnRzKTsNCj4gDQo+IC0gICAgcmV0dXJuIE1heElu
ZGlyZWN0U2VnczsNCj4gLX0NCj4gKyAgICAgICAgaWYgKE1heFNlZ21lbnRzID4gQkxLSUZfTUFY
X1NFR01FTlRTX1BFUl9SRVFVRVNUKSB7DQo+ICsgICAgICAgICAgICBVTE9ORyAgICAgICAgICAg
ICAgIE5yU2VnbWVudHMgPSAwOw0KPiANCj4gLXN0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+IC1S
aW5nUXVldWVSZXF1ZXN0TGlzdCgNCj4gLSAgICBJTiAgUFhFTlZCRF9SSU5HICAgIFJpbmcsDQo+
IC0gICAgSU4gIFBMSVNUX0VOVFJZICAgICBMaXN0DQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIGZv
ciAoOzspIHsNCj4gLSAgICAgICAgUFhFTlZCRF9SRVFVRVNUIFJlcXVlc3Q7DQo+IC0gICAgICAg
IFBMSVNUX0VOVFJZICAgICBMaXN0RW50cnk7DQo+ICsgICAgICAgICAgICBmb3IgKEluZGV4ID0g
MDsNCj4gKyAgICAgICAgICAgICAgICAgSW5kZXggPCBCTEtJRl9NQVhfSU5ESVJFQ1RfUEFHRVNf
UEVSX1JFUVVFU1QgJiYNCj4gKyAgICAgICAgICAgICAgICAgTnJTZWdtZW50cyA8IFJlcXVlc3Qt
Pk5yU2VnbWVudHM7DQo+ICsgICAgICAgICAgICAgICAgICsrSW5kZXgpIHsNCj4gKyAgICAgICAg
ICAgICAgICBQWEVOVkJEX0lORElSRUNUICAgIEluZGlyZWN0Ow0KPiANCj4gLSAgICAgICAgTGlz
dEVudHJ5ID0gUmVtb3ZlSGVhZExpc3QoTGlzdCk7DQo+IC0gICAgICAgIGlmIChMaXN0RW50cnkg
PT0gTGlzdCkNCj4gLSAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICAgICAgICAgIEluZGly
ZWN0ID0gQmxraWZSaW5nR2V0SW5kaXJlY3QoQmxraWZSaW5nKTsNCj4gKyAgICAgICAgICAgICAg
ICBpZiAoSW5kaXJlY3QgPT0gTlVMTCkNCj4gKyAgICAgICAgICAgICAgICAgICAgZ290byBmYWls
MzsNCj4gKyAgICAgICAgICAgICAgICBJbnNlcnRUYWlsTGlzdCgmUmVxdWVzdC0+SW5kaXJlY3Rz
LCAmSW5kaXJlY3QtPkxpc3RFbnRyeSk7DQo+IA0KPiAtICAgICAgICBSZXF1ZXN0ID0gQ09OVEFJ
TklOR19SRUNPUkQoTGlzdEVudHJ5LCBYRU5WQkRfUkVRVUVTVCwNCj4gTGlzdEVudHJ5KTsNCj4g
LSAgICAgICAgX19SaW5nSW5jQmxraWZPcENvdW50KFJpbmcsIFJlcXVlc3QpOw0KPiAtICAgICAg
ICBRdWV1ZUFwcGVuZCgmUmluZy0+UHJlcGFyZWRSZXFzLCAmUmVxdWVzdC0+TGlzdEVudHJ5KTsN
Cj4gKyAgICAgICAgICAgICAgICBOclNlZ21lbnRzICs9IFhFTlZCRF9NQVhfU0VHTUVOVFNfUEVS
X1BBR0U7DQo+ICsgICAgICAgICAgICB9DQo+ICsgICAgICAgIH0NCj4gICAgICB9DQo+IC19DQo+
IC0NCj4gLXN0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+IC1SaW5nQ2FuY2VsUmVxdWVzdExpc3Qo
DQo+IC0gICAgSU4gIFBYRU5WQkRfUklORyAgICBSaW5nLA0KPiAtICAgIElOICBQTElTVF9FTlRS
WSAgICAgTGlzdA0KPiAtICAgICkNCj4gLXsNCj4gLSAgICBmb3IgKDs7KSB7DQo+IC0gICAgICAg
IFBYRU5WQkRfUkVRVUVTVCBSZXF1ZXN0Ow0KPiAtICAgICAgICBQTElTVF9FTlRSWSAgICAgTGlz
dEVudHJ5Ow0KPiANCj4gLSAgICAgICAgTGlzdEVudHJ5ID0gUmVtb3ZlSGVhZExpc3QoTGlzdCk7
DQo+IC0gICAgICAgIGlmIChMaXN0RW50cnkgPT0gTGlzdCkNCj4gLSAgICAgICAgICAgIGJyZWFr
Ow0KPiArICAgIEJsa2lmUmluZ1F1ZXVlUmVxdWVzdHMoQmxraWZSaW5nLCAmTGlzdCk7DQo+ICsg
ICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOw0KPiANCj4gLSAgICAgICAgUmVxdWVzdCA9IENPTlRB
SU5JTkdfUkVDT1JEKExpc3RFbnRyeSwgWEVOVkJEX1JFUVVFU1QsDQo+IExpc3RFbnRyeSk7DQo+
IC0gICAgICAgIFJpbmdQdXRSZXF1ZXN0KFJpbmcsIFJlcXVlc3QpOw0KPiAtICAgIH0NCj4gK2Zh
aWwzOg0KPiArZmFpbDI6DQo+ICtmYWlsMToNCj4gKyAgICBCbGtpZlJpbmdVbnByZXBhcmVSZXF1
ZXN0KEJsa2lmUmluZywgJkxpc3QpOw0KPiArICAgIFNyYkV4dC0+UmVxdWVzdENvdW50ID0gMDsN
Cj4gKyAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfRVJST1I7DQo+ICsgICAgcmV0dXJu
IFNUQVRVU19VTlNVQ0NFU1NGVUw7DQo+ICB9DQo+IA0KPiAtc3RhdGljIEJPT0xFQU4NCj4gLVJp
bmdQcmVwYXJlUmVhZFdyaXRlKA0KPiAtICAgIElOICBQWEVOVkJEX1JJTkcgICAgICAgIFJpbmcs
DQo+ICtzdGF0aWMgTlRTVEFUVVMNCj4gK0Jsa2lmUmluZ1ByZXBhcmVVbm1hcCgNCj4gKyAgICBJ
TiAgUFhFTlZCRF9CTEtJRl9SSU5HICBCbGtpZlJpbmcsDQo+ICAgICAgSU4gIFBYRU5WQkRfU1JC
RVhUICAgICAgU3JiRXh0DQo+ICAgICAgKQ0KPiAgew0KPiAgICAgIFBTQ1NJX1JFUVVFU1RfQkxP
Q0sgICAgIFNyYiA9IFNyYkV4dC0+U3JiOw0KPiAtICAgIFVMT05HNjQgICAgICAgICAgICAgICAg
IFNlY3RvclN0YXJ0ID0gQ2RiX0xvZ2ljYWxCbG9jayhTcmIpOw0KPiAtICAgIFVMT05HICAgICAg
ICAgICAgICAgICAgIFNlY3RvcnNMZWZ0ID0gQ2RiX1RyYW5zZmVyQmxvY2soU3JiKTsNCj4gKyAg
ICBQVU5NQVBfTElTVF9IRUFERVIgICAgICBVbm1hcCA9IFNyYi0+RGF0YUJ1ZmZlcjsNCj4gKyAg
ICBVTE9ORyAgICAgICAgICAgICAgICAgICBDb3VudDsNCj4gKyAgICBVTE9ORyAgICAgICAgICAg
ICAgICAgICBJbmRleDsNCj4gICAgICBMSVNUX0VOVFJZICAgICAgICAgICAgICBMaXN0Ow0KPiAN
Cj4gKyAgICBJbml0aWFsaXplTGlzdEhlYWQoJkxpc3QpOw0KPiArDQo+ICsgICAgQ291bnQgPSBf
Ynl0ZXN3YXBfdXNob3J0KCooUFVTSE9SVClVbm1hcC0+QmxvY2tEZXNjckRhdGFMZW5ndGgpDQo+
IC8gc2l6ZW9mKFVOTUFQX0JMT0NLX0RFU0NSSVBUT1IpOw0KPiAgICAgIFNyYi0+U3JiU3RhdHVz
ID0gU1JCX1NUQVRVU19QRU5ESU5HOw0KPiANCj4gLSAgICBJbml0aWFsaXplTGlzdEhlYWQoJkxp
c3QpOw0KPiAgICAgIFNyYkV4dC0+UmVxdWVzdENvdW50ID0gMDsNCj4gDQo+IC0gICAgd2hpbGUg
KFNlY3RvcnNMZWZ0ID4gMCkgew0KPiAtICAgICAgICBVTE9ORyAgICAgICAgICAgTWF4U2VnbWVu
dHM7DQo+IC0gICAgICAgIFVMT05HICAgICAgICAgICBTZWN0b3JzRG9uZSA9IDA7DQo+IC0gICAg
ICAgIFBYRU5WQkRfUkVRVUVTVCBSZXF1ZXN0Ow0KPiArICAgIGZvciAoSW5kZXggPSAwOyBJbmRl
eCA8IENvdW50OyArK0luZGV4KSB7DQo+ICsgICAgICAgIFBVTk1BUF9CTE9DS19ERVNDUklQVE9S
IERlc2NyID0gJlVubWFwLT5EZXNjcmlwdG9yc1tJbmRleF07DQo+ICsgICAgICAgIFBYRU5WQkRf
UkVRVUVTVCAgICAgICAgIFJlcXVlc3Q7DQo+IA0KPiAtICAgICAgICBSZXF1ZXN0ID0gUmluZ0dl
dFJlcXVlc3QoUmluZyk7DQo+ICsgICAgICAgIFJlcXVlc3QgPSBCbGtpZlJpbmdHZXRSZXF1ZXN0
KEJsa2lmUmluZyk7DQo+ICAgICAgICAgIGlmIChSZXF1ZXN0ID09IE5VTEwpDQo+ICAgICAgICAg
ICAgICBnb3RvIGZhaWwxOw0KPiAgICAgICAgICBJbnNlcnRUYWlsTGlzdCgmTGlzdCwgJlJlcXVl
c3QtPkxpc3RFbnRyeSk7DQo+IC0gICAgICAgIEludGVybG9ja2VkSW5jcmVtZW50KCZTcmJFeHQt
PlJlcXVlc3RDb3VudCk7DQo+ICsgICAgICAgIFNyYkV4dC0+UmVxdWVzdENvdW50Kys7DQo+IA0K
PiAgICAgICAgICBSZXF1ZXN0LT5TcmJFeHQgPSBTcmJFeHQ7DQo+IC0gICAgICAgIE1heFNlZ21l
bnRzID0gUmluZ1VzZUluZGlyZWN0KFJpbmcsIFNlY3RvcnNMZWZ0KTsNCj4gLQ0KPiAtICAgICAg
ICBpZiAoIVJpbmdQcmVwYXJlQmxraWZSZWFkV3JpdGUoUmluZywNCj4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVlc3QsDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTcmJFeHQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBNYXhTZWdtZW50cywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNlY3RvclN0YXJ0LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU2VjdG9yc0xlZnQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmU2VjdG9yc0RvbmUpKQ0KPiAtICAgICAgICAgICAgZ290byBmYWlsMjsNCj4g
LQ0KPiAtICAgICAgICBpZiAoTWF4U2VnbWVudHMgPiBCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JF
UVVFU1QpIHsNCj4gLSAgICAgICAgICAgIGlmICghUmluZ1ByZXBhcmVCbGtpZkluZGlyZWN0KFJp
bmcsIFJlcXVlc3QpKQ0KPiAtICAgICAgICAgICAgICAgIGdvdG8gZmFpbDM7DQo+IC0gICAgICAg
IH0NCj4gLQ0KPiAtICAgICAgICBTZWN0b3JzTGVmdCAtPSBTZWN0b3JzRG9uZTsNCj4gLSAgICAg
ICAgU2VjdG9yU3RhcnQgKz0gU2VjdG9yc0RvbmU7DQo+ICsgICAgICAgIFJlcXVlc3QtPk9wZXJh
dGlvbiA9IEJMS0lGX09QX0RJU0NBUkQ7DQo+ICsgICAgICAgIFJlcXVlc3QtPkZpcnN0U2VjdG9y
ID0gX2J5dGVzd2FwX3VpbnQ2NCgqKFBVTE9ORzY0KURlc2NyLQ0KPiA+U3RhcnRpbmdMYmEpOw0K
PiArICAgICAgICBSZXF1ZXN0LT5OclNlY3RvcnMgPSBfYnl0ZXN3YXBfdWxvbmcoKihQVUxPTkcp
RGVzY3ItDQo+ID5MYmFDb3VudCk7DQo+ICsgICAgICAgIFJlcXVlc3QtPkZsYWdzID0gMDsNCj4g
ICAgICB9DQo+IA0KPiAtICAgIFJpbmdRdWV1ZVJlcXVlc3RMaXN0KFJpbmcsICZMaXN0KTsNCj4g
LSAgICByZXR1cm4gVFJVRTsNCj4gKyAgICBCbGtpZlJpbmdRdWV1ZVJlcXVlc3RzKEJsa2lmUmlu
ZywgJkxpc3QpOw0KPiArICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsNCj4gDQo+IC1mYWlsMzoN
Cj4gLWZhaWwyOg0KPiAgZmFpbDE6DQo+IC0gICAgUmluZ0NhbmNlbFJlcXVlc3RMaXN0KFJpbmcs
ICZMaXN0KTsNCj4gKyAgICBCbGtpZlJpbmdVbnByZXBhcmVSZXF1ZXN0KEJsa2lmUmluZywgJkxp
c3QpOw0KPiAgICAgIFNyYkV4dC0+UmVxdWVzdENvdW50ID0gMDsNCj4gICAgICBTcmItPlNyYlN0
YXR1cyA9IFNSQl9TVEFUVVNfRVJST1I7DQo+IC0gICAgcmV0dXJuIEZBTFNFOw0KPiArICAgIHJl
dHVybiBTVEFUVVNfVU5TVUNDRVNTRlVMOw0KPiAgfQ0KPiANCj4gLXN0YXRpYyBCT09MRUFODQo+
IC1SaW5nUHJlcGFyZVN5bmNDYWNoZSgNCj4gLSAgICBJTiAgUFhFTlZCRF9SSU5HICAgICAgICBS
aW5nLA0KPiArc3RhdGljIE5UU1RBVFVTDQo+ICtCbGtpZlJpbmdQcmVwYXJlU3luY0NhY2hlKA0K
PiArICAgIElOICBQWEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lmUmluZywNCj4gICAgICBJTiAgUFhF
TlZCRF9TUkJFWFQgICAgICBTcmJFeHQNCj4gICAgICApDQo+ICB7DQo+ICsgICAgUFhFTlZCRF9S
SU5HICAgICAgICAgICAgUmluZyA9IEJsa2lmUmluZy0+UmluZzsNCj4gKyAgICBQWEVOVkJEX0ZS
T05URU5EICAgICAgICBGcm9udGVuZCA9IFJpbmctPkZyb250ZW5kOw0KPiAgICAgIFBTQ1NJX1JF
UVVFU1RfQkxPQ0sgICAgIFNyYiA9IFNyYkV4dC0+U3JiOw0KPiAgICAgIFBYRU5WQkRfUkVRVUVT
VCAgICAgICAgIFJlcXVlc3Q7DQo+IC0gICAgTElTVF9FTlRSWSAgICAgICAgICAgICAgTGlzdDsN
Cj4gICAgICBVQ0hBUiAgICAgICAgICAgICAgICAgICBPcGVyYXRpb247DQo+ICsgICAgTElTVF9F
TlRSWSAgICAgICAgICAgICAgTGlzdDsNCj4gDQo+ICsgICAgSW5pdGlhbGl6ZUxpc3RIZWFkKCZM
aXN0KTsNCj4gICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfUEVORElORzsNCj4gDQo+
IC0gICAgaWYgKEZyb250ZW5kR2V0RGlza0luZm8oUmluZy0+RnJvbnRlbmQpLT5GbHVzaENhY2hl
KQ0KPiArICAgIGlmIChGcm9udGVuZEdldERpc2tJbmZvKEZyb250ZW5kKS0+Rmx1c2hDYWNoZSkN
Cj4gICAgICAgICAgT3BlcmF0aW9uID0gQkxLSUZfT1BfRkxVU0hfRElTS0NBQ0hFOw0KPiAgICAg
IGVsc2UNCj4gICAgICAgICAgT3BlcmF0aW9uID0gQkxLSUZfT1BfV1JJVEVfQkFSUklFUjsNCj4g
DQo+IC0gICAgSW5pdGlhbGl6ZUxpc3RIZWFkKCZMaXN0KTsNCj4gICAgICBTcmJFeHQtPlJlcXVl
c3RDb3VudCA9IDA7DQo+IA0KPiAtICAgIFJlcXVlc3QgPSBSaW5nR2V0UmVxdWVzdChSaW5nKTsN
Cj4gKyAgICBSZXF1ZXN0ID0gQmxraWZSaW5nR2V0UmVxdWVzdChCbGtpZlJpbmcpOw0KPiAgICAg
IGlmIChSZXF1ZXN0ID09IE5VTEwpDQo+ICAgICAgICAgIGdvdG8gZmFpbDE7DQo+ICAgICAgSW5z
ZXJ0VGFpbExpc3QoJkxpc3QsICZSZXF1ZXN0LT5MaXN0RW50cnkpOw0KPiAtICAgIEludGVybG9j
a2VkSW5jcmVtZW50KCZTcmJFeHQtPlJlcXVlc3RDb3VudCk7DQo+ICsgICAgU3JiRXh0LT5SZXF1
ZXN0Q291bnQrKzsNCj4gDQo+IC0gICAgUmVxdWVzdC0+U3JiRXh0ICAgICA9IFNyYkV4dDsNCj4g
LSAgICBSZXF1ZXN0LT5PcGVyYXRpb24gID0gT3BlcmF0aW9uOw0KPiArICAgIFJlcXVlc3QtPlNy
YkV4dCA9IFNyYkV4dDsNCj4gKyAgICBSZXF1ZXN0LT5PcGVyYXRpb24gPSBPcGVyYXRpb247DQo+
ICAgICAgUmVxdWVzdC0+Rmlyc3RTZWN0b3IgPSBDZGJfTG9naWNhbEJsb2NrKFNyYik7DQo+IA0K
PiAtICAgIFJpbmdRdWV1ZVJlcXVlc3RMaXN0KFJpbmcsICZMaXN0KTsNCj4gLSAgICByZXR1cm4g
VFJVRTsNCj4gKyAgICBCbGtpZlJpbmdRdWV1ZVJlcXVlc3RzKEJsa2lmUmluZywgJkxpc3QpOw0K
PiArICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsNCj4gDQo+ICBmYWlsMToNCj4gLSAgICBSaW5n
Q2FuY2VsUmVxdWVzdExpc3QoUmluZywgJkxpc3QpOw0KPiArICAgIEJsa2lmUmluZ1VucHJlcGFy
ZVJlcXVlc3QoQmxraWZSaW5nLCAmTGlzdCk7DQo+ICAgICAgU3JiRXh0LT5SZXF1ZXN0Q291bnQg
PSAwOw0KPiAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19FUlJPUjsNCj4gLSAgICBy
ZXR1cm4gRkFMU0U7DQo+ICsgICAgcmV0dXJuIFNUQVRVU19VTlNVQ0NFU1NGVUw7DQo+ICB9DQo+
IA0KPiAtc3RhdGljIEJPT0xFQU4NCj4gLVJpbmdQcmVwYXJlVW5tYXAoDQo+IC0gICAgSU4gIFBY
RU5WQkRfUklORyAgICAgICAgUmluZywNCj4gK3N0YXRpYyBERUNMU1BFQ19OT0lOTElORSBOVFNU
QVRVUw0KPiArX19CbGtpZlJpbmdQcmVwYXJlU3JiKA0KPiArICAgIElOICBQWEVOVkJEX0JMS0lG
X1JJTkcgIEJsa2lmUmluZywNCj4gICAgICBJTiAgUFhFTlZCRF9TUkJFWFQgICAgICBTcmJFeHQN
Cj4gICAgICApDQo+IC17DQo+IC0gICAgUFNDU0lfUkVRVUVTVF9CTE9DSyAgICAgU3JiID0gU3Ji
RXh0LT5TcmI7DQo+IC0gICAgUFVOTUFQX0xJU1RfSEVBREVSICAgICAgVW5tYXAgPSBTcmItPkRh
dGFCdWZmZXI7DQo+IC0JVUxPTkcgICAgICAgICAgICAgICAgICAgQ291bnQgPSBfYnl0ZXN3YXBf
dXNob3J0KCooUFVTSE9SVClVbm1hcC0NCj4gPkJsb2NrRGVzY3JEYXRhTGVuZ3RoKSAvIHNpemVv
ZihVTk1BUF9CTE9DS19ERVNDUklQVE9SKTsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgICAgICAg
ICBJbmRleDsNCj4gLSAgICBMSVNUX0VOVFJZICAgICAgICAgICAgICBMaXN0Ow0KPiAtDQo+IC0g
ICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1BFTkRJTkc7DQo+IC0NCj4gLSAgICBJbml0
aWFsaXplTGlzdEhlYWQoJkxpc3QpOw0KPiAtICAgIFNyYkV4dC0+UmVxdWVzdENvdW50ID0gMDsN
Cj4gLQ0KPiAtICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IENvdW50OyArK0luZGV4KSB7DQo+
IC0gICAgICAgIFBVTk1BUF9CTE9DS19ERVNDUklQVE9SIERlc2NyID0gJlVubWFwLT5EZXNjcmlw
dG9yc1tJbmRleF07DQo+IC0gICAgICAgIFBYRU5WQkRfUkVRVUVTVCAgICAgICAgIFJlcXVlc3Q7
DQo+IC0NCj4gLSAgICAgICAgUmVxdWVzdCA9IFJpbmdHZXRSZXF1ZXN0KFJpbmcpOw0KPiAtICAg
ICAgICBpZiAoUmVxdWVzdCA9PSBOVUxMKQ0KPiAtICAgICAgICAgICAgZ290byBmYWlsMTsNCj4g
LSAgICAgICAgSW5zZXJ0VGFpbExpc3QoJkxpc3QsICZSZXF1ZXN0LT5MaXN0RW50cnkpOw0KPiAt
ICAgICAgICBJbnRlcmxvY2tlZEluY3JlbWVudCgmU3JiRXh0LT5SZXF1ZXN0Q291bnQpOw0KPiAt
DQo+IC0gICAgICAgIFJlcXVlc3QtPlNyYkV4dCAgICAgICAgID0gU3JiRXh0Ow0KPiAtICAgICAg
ICBSZXF1ZXN0LT5PcGVyYXRpb24gICAgICA9IEJMS0lGX09QX0RJU0NBUkQ7DQo+IC0gICAgICAg
IFJlcXVlc3QtPkZpcnN0U2VjdG9yICAgID0gX2J5dGVzd2FwX3VpbnQ2NCgqKFBVTE9ORzY0KURl
c2NyLQ0KPiA+U3RhcnRpbmdMYmEpOw0KPiAtICAgICAgICBSZXF1ZXN0LT5OclNlY3RvcnMgICAg
ICA9IF9ieXRlc3dhcF91bG9uZygqKFBVTE9ORylEZXNjci0NCj4gPkxiYUNvdW50KTsNCj4gLSAg
ICAgICAgUmVxdWVzdC0+RmxhZ3MgICAgICAgICAgPSAwOw0KPiAtICAgIH0NCj4gLQ0KPiAtICAg
IFJpbmdRdWV1ZVJlcXVlc3RMaXN0KFJpbmcsICZMaXN0KTsNCj4gLSAgICByZXR1cm4gVFJVRTsN
Cj4gLQ0KPiAtZmFpbDE6DQo+IC0gICAgUmluZ0NhbmNlbFJlcXVlc3RMaXN0KFJpbmcsICZMaXN0
KTsNCj4gLSAgICBTcmJFeHQtPlJlcXVlc3RDb3VudCA9IDA7DQo+IC0gICAgU3JiLT5TcmJTdGF0
dXMgPSBTUkJfU1RBVFVTX0VSUk9SOw0KPiAtICAgIHJldHVybiBGQUxTRTsNCj4gLX0NCj4gLQ0K
PiAtc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4NCj4gLVJpbmdQcmVwYXJlUmVxdWVzdCgNCj4g
LSAgICBJTiAgUFhFTlZCRF9SSU5HICAgIFJpbmcsDQo+IC0gICAgSU4gIFBYRU5WQkRfU1JCRVhU
ICBTcmJFeHQNCj4gLSAgICApDQo+ICB7DQo+ICAgICAgc3dpdGNoIChDZGJfT3BlcmF0aW9uRXgo
U3JiRXh0LT5TcmIpKSB7DQo+ICAgICAgY2FzZSBTQ1NJT1BfUkVBRDoNCj4gICAgICBjYXNlIFND
U0lPUF9XUklURToNCj4gLSAgICAgICAgcmV0dXJuIFJpbmdQcmVwYXJlUmVhZFdyaXRlKFJpbmcs
IFNyYkV4dCk7DQo+ICsgICAgICAgIHJldHVybiBCbGtpZlJpbmdQcmVwYXJlUmVhZFdyaXRlKEJs
a2lmUmluZywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Ji
RXh0KTsNCj4gDQo+ICAgICAgY2FzZSBTQ1NJT1BfU1lOQ0hST05JWkVfQ0FDSEU6DQo+IC0gICAg
ICAgIHJldHVybiBSaW5nUHJlcGFyZVN5bmNDYWNoZShSaW5nLCBTcmJFeHQpOw0KPiArICAgICAg
ICByZXR1cm4gQmxraWZSaW5nUHJlcGFyZVN5bmNDYWNoZShCbGtpZlJpbmcsDQo+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNyYkV4dCk7DQo+IA0KPiAgICAgIGNh
c2UgU0NTSU9QX1VOTUFQOg0KPiAtICAgICAgICByZXR1cm4gUmluZ1ByZXBhcmVVbm1hcChSaW5n
LCBTcmJFeHQpOw0KPiArICAgICAgICByZXR1cm4gQmxraWZSaW5nUHJlcGFyZVVubWFwKEJsa2lm
UmluZywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcmJFeHQpOw0K
PiANCj4gICAgICBkZWZhdWx0Og0KPiAgICAgICAgICBBU1NFUlQoRkFMU0UpOw0KPiAtICAgICAg
ICByZXR1cm4gRkFMU0U7DQo+ICsgICAgICAgIHJldHVybiBTVEFUVVNfTk9UX1NVUFBPUlRFRDsN
Cj4gICAgICB9DQo+ICB9DQo+IA0KPiAtc3RhdGljIEJPT0xFQU4NCj4gLVJpbmdTdWJtaXQoDQo+
IC0gICAgSU4gIFBYRU5WQkRfUklORyAgICBSaW5nLA0KPiAtICAgIElOICBQWEVOVkJEX1JFUVVF
U1QgUmVxdWVzdA0KPiArc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4gK19fQmxraWZSaW5nSW5z
ZXJ0UmVxdWVzdCgNCj4gKyAgICBJTiAgUFhFTlZCRF9CTEtJRl9SSU5HICBCbGtpZlJpbmcsDQo+
ICsgICAgSU4gIFBYRU5WQkRfUkVRVUVTVCAgICAgUmVxdWVzdCwNCj4gKyAgICBJTiAgYmxraWZf
cmVxdWVzdF90ICAgICAqcmVxDQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIEtJUlFMICAgICAgICAg
ICAgICAgSXJxbDsNCj4gLSAgICBibGtpZl9yZXF1ZXN0X3QqICAgIHJlcTsNCj4gLSAgICBCT09M
RUFOICAgICAgICAgICAgIE5vdGlmeTsNCj4gLQ0KPiAtICAgIEtlQWNxdWlyZVNwaW5Mb2NrKCZS
aW5nLT5Mb2NrLCAmSXJxbCk7DQo+IC0gICAgaWYgKFJJTkdfRlVMTCgmUmluZy0+RnJvbnQpKSB7
DQo+IC0gICAgICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZSaW5nLT5Mb2NrLCBJcnFsKTsNCj4gLSAg
ICAgICAgcmV0dXJuIEZBTFNFOw0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIHJlcSA9IFJJTkdfR0VU
X1JFUVVFU1QoJlJpbmctPkZyb250LCBSaW5nLT5Gcm9udC5yZXFfcHJvZF9wdnQpOw0KPiAtICAg
IF9fUmluZ0luc2VydChSaW5nLCBSZXF1ZXN0LCByZXEpOw0KPiAtICAgIEtlTWVtb3J5QmFycmll
cigpOw0KPiAtICAgICsrUmluZy0+RnJvbnQucmVxX3Byb2RfcHZ0Ow0KPiAtDQo+IC0gICAgUklO
R19QVVNIX1JFUVVFU1RTX0FORF9DSEVDS19OT1RJRlkoJlJpbmctPkZyb250LCBOb3RpZnkpOw0K
PiAtICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZSaW5nLT5Mb2NrLCBJcnFsKTsNCj4gKyAgICBQWEVO
VkJEX1JJTkcgICAgICAgICAgICBSaW5nID0gQmxraWZSaW5nLT5SaW5nOw0KPiArICAgIFBYRU5W
QkRfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kID0gUmluZy0+RnJvbnRlbmQ7DQo+ICsgICAgUFhF
TlZCRF9HUkFOVEVSICAgICAgICAgR3JhbnRlciA9IEZyb250ZW5kR2V0R3JhbnRlcihGcm9udGVu
ZCk7DQo+IA0KPiAtICAgIGlmIChOb3RpZnkpIHsNCj4gLSAgICAgICAgaWYgKCFSaW5nLT5FbmFi
bGVkKQ0KPiAtICAgICAgICAgICAgcmV0dXJuIFRSVUU7DQo+IC0NCj4gLSAgICAgICAgWEVOQlVT
X0VWVENITihTZW5kLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICZSaW5nLT5FdnRjaG5JbnRl
cmZhY2UsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgUmluZy0+Q2hhbm5lbCk7DQo+IC0gICAg
fQ0KPiArICAgIHN3aXRjaCAoUmVxdWVzdC0+T3BlcmF0aW9uKSB7DQo+ICsgICAgY2FzZSBCTEtJ
Rl9PUF9SRUFEOg0KPiArICAgIGNhc2UgQkxLSUZfT1BfV1JJVEU6DQo+ICsgICAgICAgIGlmIChS
ZXF1ZXN0LT5OclNlZ21lbnRzID4gQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUKSB7DQo+
ICsgICAgICAgICAgICAvLyBJbmRpcmVjdA0KPiArICAgICAgICAgICAgVUxPTkcgICAgICAgICAg
ICAgICAgICAgICAgIFBhZ2VJZHg7DQo+ICsgICAgICAgICAgICBVTE9ORyAgICAgICAgICAgICAg
ICAgICAgICAgU2VnSWR4Ow0KPiArICAgICAgICAgICAgUExJU1RfRU5UUlkgICAgICAgICAgICAg
ICAgIFBhZ2VFbnRyeTsNCj4gKyAgICAgICAgICAgIFBMSVNUX0VOVFJZICAgICAgICAgICAgICAg
ICBTZWdFbnRyeTsNCj4gKyAgICAgICAgICAgIGJsa2lmX3JlcXVlc3RfaW5kaXJlY3RfdCogICBy
ZXFfaW5kaXJlY3Q7DQo+IA0KPiAtICAgIHJldHVybiBUUlVFOw0KPiAtfQ0KPiArICAgICAgICAg
ICAgcmVxX2luZGlyZWN0ID0gKGJsa2lmX3JlcXVlc3RfaW5kaXJlY3RfdCopcmVxOw0KPiArICAg
ICAgICAgICAgcmVxX2luZGlyZWN0LT5vcGVyYXRpb24gPSBCTEtJRl9PUF9JTkRJUkVDVDsNCj4g
KyAgICAgICAgICAgIHJlcV9pbmRpcmVjdC0+aW5kaXJlY3Rfb3AgPSBSZXF1ZXN0LT5PcGVyYXRp
b247DQo+ICsgICAgICAgICAgICByZXFfaW5kaXJlY3QtPm5yX3NlZ21lbnRzID0gUmVxdWVzdC0+
TnJTZWdtZW50czsNCj4gKyAgICAgICAgICAgIHJlcV9pbmRpcmVjdC0+aWQgPSAoVUxPTkc2NCko
VUxPTkdfUFRSKVJlcXVlc3Q7DQo+ICsgICAgICAgICAgICByZXFfaW5kaXJlY3QtPnNlY3Rvcl9u
dW1iZXIgPSBSZXF1ZXN0LT5GaXJzdFNlY3RvcjsNCj4gKyAgICAgICAgICAgIHJlcV9pbmRpcmVj
dC0+aGFuZGxlID0gKFVTSE9SVClGcm9udGVuZEdldERldmljZUlkKEZyb250ZW5kKTsNCj4gDQo+
IC1zdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTg0KPiAtUmluZ1N1Ym1pdFJlcXVlc3RzKA0KPiAt
ICAgIElOICBQWEVOVkJEX1JJTkcgICAgUmluZw0KPiAtICAgICkNCj4gLXsNCj4gLSAgICBpZiAo
IVJpbmctPkVuYWJsZWQpIHsNCj4gLSAgICAgICAgaWYgKFF1ZXVlQ291bnQoJlJpbmctPlByZXBh
cmVkUmVxcykpDQo+IC0gICAgICAgICAgICBXYXJuaW5nKCJUYXJnZXRbJWRdIDogUGF1c2VkLCBu
b3Qgc3VibWl0dGluZyBuZXcgcmVxdWVzdHMgKCV1KVxuIiwNCj4gLSAgICAgICAgICAgICAgICAg
ICAgRnJvbnRlbmRHZXRUYXJnZXRJZChSaW5nLT5Gcm9udGVuZCksDQo+IC0gICAgICAgICAgICAg
ICAgICAgIFF1ZXVlQ291bnQoJlJpbmctPlByZXBhcmVkUmVxcykpOw0KPiAtICAgICAgICByZXR1
cm4gRkFMU0U7DQo+IC0gICAgfQ0KPiArICAgICAgICAgICAgZm9yIChQYWdlSWR4ID0gMCwNCj4g
KyAgICAgICAgICAgICAgICAgUGFnZUVudHJ5ID0gUmVxdWVzdC0+SW5kaXJlY3RzLkZsaW5rLA0K
PiArICAgICAgICAgICAgICAgICBTZWdFbnRyeSA9IFJlcXVlc3QtPlNlZ21lbnRzLkZsaW5rOw0K
PiArICAgICAgICAgICAgICAgICBQYWdlSWR4IDwgQkxLSUZfTUFYX0lORElSRUNUX1BBR0VTX1BF
Ul9SRVFVRVNUICYmDQo+ICsgICAgICAgICAgICAgICAgIFBhZ2VFbnRyeSAhPSAmUmVxdWVzdC0+
SW5kaXJlY3RzICYmDQo+ICsgICAgICAgICAgICAgICAgIFNlZ0VudHJ5ICE9ICZSZXF1ZXN0LT5T
ZWdtZW50czsNCj4gKyAgICAgICAgICAgICAgICAgKytQYWdlSWR4LCBQYWdlRW50cnkgPSBQYWdl
RW50cnktPkZsaW5rKSB7DQo+ICsgICAgICAgICAgICAgICAgUFhFTlZCRF9JTkRJUkVDVCBQYWdl
ID0gQ09OVEFJTklOR19SRUNPUkQoUGFnZUVudHJ5LA0KPiBYRU5WQkRfSU5ESVJFQ1QsIExpc3RF
bnRyeSk7DQo+IA0KPiAtICAgIGZvciAoOzspIHsNCj4gLSAgICAgICAgUFhFTlZCRF9SRVFVRVNU
IFJlcXVlc3Q7DQo+IC0gICAgICAgIFBMSVNUX0VOVFJZICAgICBMaXN0RW50cnk7DQo+ICsgICAg
ICAgICAgICAgICAgcmVxX2luZGlyZWN0LT5pbmRpcmVjdF9ncmVmc1tQYWdlSWR4XSA9DQo+IEdy
YW50ZXJSZWZlcmVuY2UoR3JhbnRlciwgUGFnZS0+R3JhbnQpOw0KPiANCj4gLSAgICAgICAgTGlz
dEVudHJ5ID0gUXVldWVQb3AoJlJpbmctPlByZXBhcmVkUmVxcyk7DQo+IC0gICAgICAgIGlmIChM
aXN0RW50cnkgPT0gTlVMTCkNCj4gLSAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICAgICAg
ICAgIGZvciAoU2VnSWR4ID0gMDsNCj4gKyAgICAgICAgICAgICAgICAgICAgIFNlZ0lkeCA8IFhF
TlZCRF9NQVhfU0VHTUVOVFNfUEVSX1BBR0UgJiYNCj4gKyAgICAgICAgICAgICAgICAgICAgIFNl
Z0VudHJ5ICE9ICZSZXF1ZXN0LT5TZWdtZW50czsNCj4gKyAgICAgICAgICAgICAgICAgICAgICsr
U2VnSWR4LCBTZWdFbnRyeSA9IFNlZ0VudHJ5LT5GbGluaykgew0KPiArICAgICAgICAgICAgICAg
ICAgICBQWEVOVkJEX1NFR01FTlQgU2VnbWVudCA9DQo+IENPTlRBSU5JTkdfUkVDT1JEKFNlZ0Vu
dHJ5LCBYRU5WQkRfU0VHTUVOVCwgTGlzdEVudHJ5KTsNCj4gKw0KPiArICAgICAgICAgICAgICAg
ICAgICBQYWdlLT5QYWdlW1NlZ0lkeF0uR3JhbnRSZWYgPSBHcmFudGVyUmVmZXJlbmNlKEdyYW50
ZXIsDQo+IFNlZ21lbnQtPkdyYW50KTsNCj4gKyAgICAgICAgICAgICAgICAgICAgUGFnZS0+UGFn
ZVtTZWdJZHhdLkZpcnN0ID0gU2VnbWVudC0+Rmlyc3RTZWN0b3I7DQo+ICsgICAgICAgICAgICAg
ICAgICAgIFBhZ2UtPlBhZ2VbU2VnSWR4XS5MYXN0ID0gU2VnbWVudC0+TGFzdFNlY3RvcjsNCj4g
KyAgICAgICAgICAgICAgICB9DQo+ICsgICAgICAgICAgICB9DQo+ICsgICAgICAgICAgICBJbnRl
cmxvY2tlZEluY3JlbWVudCgmUmluZy0+U3RhdHNbKFJlcXVlc3QtPk9wZXJhdGlvbiA9PQ0KPiBC
TEtJRl9PUF9SRUFEKSA/DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5W
QkRfU1RBVF9CTEtJRl9PUF9SRUFEX0lORElSRUNUIDoNCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFhFTlZCRF9TVEFUX0JMS0lGX09QX1dSSVRFX0lORElSRUNUXSk7DQo+ICsg
ICAgICAgIH0gZWxzZSB7DQo+ICsgICAgICAgICAgICAvLyBEaXJlY3QNCj4gKyAgICAgICAgICAg
IFVMT05HICAgICAgICAgICBJbmRleDsNCj4gKyAgICAgICAgICAgIFBMSVNUX0VOVFJZICAgICBF
bnRyeTsNCj4gDQo+IC0gICAgICAgIFJlcXVlc3QgPSBDT05UQUlOSU5HX1JFQ09SRChMaXN0RW50
cnksIFhFTlZCRF9SRVFVRVNULA0KPiBMaXN0RW50cnkpOw0KPiArICAgICAgICAgICAgcmVxLT5v
cGVyYXRpb24gPSBSZXF1ZXN0LT5PcGVyYXRpb247DQo+ICsgICAgICAgICAgICByZXEtPm5yX3Nl
Z21lbnRzID0gKFVDSEFSKVJlcXVlc3QtPk5yU2VnbWVudHM7DQo+ICsgICAgICAgICAgICByZXEt
PmhhbmRsZSA9IChVU0hPUlQpRnJvbnRlbmRHZXREZXZpY2VJZChGcm9udGVuZCk7DQo+ICsgICAg
ICAgICAgICByZXEtPmlkID0gKFVMT05HNjQpKFVMT05HX1BUUilSZXF1ZXN0Ow0KPiArICAgICAg
ICAgICAgcmVxLT5zZWN0b3JfbnVtYmVyID0gUmVxdWVzdC0+Rmlyc3RTZWN0b3I7DQo+IA0KPiAt
ICAgICAgICBRdWV1ZUFwcGVuZCgmUmluZy0+U3VibWl0dGVkUmVxcywgJlJlcXVlc3QtPkxpc3RF
bnRyeSk7DQo+IC0gICAgICAgIEtlTWVtb3J5QmFycmllcigpOw0KPiArICAgICAgICAgICAgZm9y
IChJbmRleCA9IDAsIEVudHJ5ID0gUmVxdWVzdC0+U2VnbWVudHMuRmxpbms7DQo+ICsgICAgICAg
ICAgICAgICAgIEluZGV4IDwgQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUICYmDQo+ICsg
ICAgICAgICAgICAgICAgIEVudHJ5ICE9ICZSZXF1ZXN0LT5TZWdtZW50czsNCj4gKyAgICAgICAg
ICAgICAgICAgKytJbmRleCwgRW50cnkgPSBFbnRyeS0+RmxpbmspIHsNCj4gKyAgICAgICAgICAg
ICAgICBQWEVOVkJEX1NFR01FTlQgU2VnbWVudCA9IENPTlRBSU5JTkdfUkVDT1JEKEVudHJ5LA0K
PiBYRU5WQkRfU0VHTUVOVCwgTGlzdEVudHJ5KTsNCj4gKyAgICAgICAgICAgICAgICByZXEtPnNl
Z1tJbmRleF0uZ3JlZiA9IEdyYW50ZXJSZWZlcmVuY2UoR3JhbnRlciwgU2VnbWVudC0NCj4gPkdy
YW50KTsNCj4gKyAgICAgICAgICAgICAgICByZXEtPnNlZ1tJbmRleF0uZmlyc3Rfc2VjdCA9IFNl
Z21lbnQtPkZpcnN0U2VjdG9yOw0KPiArICAgICAgICAgICAgICAgIHJlcS0+c2VnW0luZGV4XS5s
YXN0X3NlY3QgPSBTZWdtZW50LT5MYXN0U2VjdG9yOw0KPiArICAgICAgICAgICAgfQ0KPiArICAg
ICAgICAgICAgSW50ZXJsb2NrZWRJbmNyZW1lbnQoJlJpbmctPlN0YXRzWyhSZXF1ZXN0LT5PcGVy
YXRpb24gPT0NCj4gQkxLSUZfT1BfUkVBRCkgPw0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWEVOVkJEX1NUQVRfQkxLSUZfT1BfUkVBRF9ESVJFQ1QgOg0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWEVOVkJEX1NUQVRfQkxLSUZfT1BfV1JJVEVfRElSRUNU
XSk7DQo+ICsgICAgICAgIH0NCj4gKyAgICAgICAgYnJlYWs7DQo+IA0KPiAtICAgICAgICBpZiAo
UmluZ1N1Ym1pdChSaW5nLCBSZXF1ZXN0KSkNCj4gLSAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAr
ICAgIGNhc2UgQkxLSUZfT1BfV1JJVEVfQkFSUklFUjoNCj4gKyAgICBjYXNlIEJMS0lGX09QX0ZM
VVNIX0RJU0tDQUNIRToNCj4gKyAgICAgICAgcmVxLT5vcGVyYXRpb24gPSBSZXF1ZXN0LT5PcGVy
YXRpb247DQo+ICsgICAgICAgIHJlcS0+bnJfc2VnbWVudHMgPSAwOw0KPiArICAgICAgICByZXEt
PmhhbmRsZSA9IChVU0hPUlQpRnJvbnRlbmRHZXREZXZpY2VJZChSaW5nLT5Gcm9udGVuZCk7DQo+
ICsgICAgICAgIHJlcS0+aWQgPSAoVUxPTkc2NCkoVUxPTkdfUFRSKVJlcXVlc3Q7DQo+ICsgICAg
ICAgIHJlcS0+c2VjdG9yX251bWJlciA9IFJlcXVlc3QtPkZpcnN0U2VjdG9yOw0KPiArICAgICAg
ICBJbnRlcmxvY2tlZEluY3JlbWVudCgmUmluZy0+U3RhdHNbKFJlcXVlc3QtPk9wZXJhdGlvbiA9
PQ0KPiBCTEtJRl9PUF9XUklURV9CQVJSSUVSKSA/DQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFhFTlZCRF9TVEFUX0JMS0lGX09QX1dSSVRFX0JBUlJJRVIgOg0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBYRU5WQkRfU1RBVF9CTEtJRl9PUF9GTFVTSF9ESVNLQ0FDSEVd
KTsNCj4gKyAgICAgICAgYnJlYWs7DQo+ICsNCj4gKyAgICBjYXNlIEJMS0lGX09QX0RJU0NBUkQ6
DQo+ICsgICAgew0KPiArICAgICAgICBibGtpZl9yZXF1ZXN0X2Rpc2NhcmRfdCogICAgICAgIHJl
cV9kaXNjYXJkOw0KPiArICAgICAgICByZXFfZGlzY2FyZCA9IChibGtpZl9yZXF1ZXN0X2Rpc2Nh
cmRfdCopcmVxOw0KPiArICAgICAgICByZXFfZGlzY2FyZC0+b3BlcmF0aW9uID0gQkxLSUZfT1Bf
RElTQ0FSRDsNCj4gKyAgICAgICAgcmVxX2Rpc2NhcmQtPmZsYWcgPSBSZXF1ZXN0LT5GbGFnczsN
Cj4gKyAgICAgICAgcmVxX2Rpc2NhcmQtPmhhbmRsZSA9IChVU0hPUlQpRnJvbnRlbmRHZXREZXZp
Y2VJZChGcm9udGVuZCk7DQo+ICsgICAgICAgIHJlcV9kaXNjYXJkLT5pZCA9IChVTE9ORzY0KShV
TE9OR19QVFIpUmVxdWVzdDsNCj4gKyAgICAgICAgcmVxX2Rpc2NhcmQtPnNlY3Rvcl9udW1iZXIg
PSBSZXF1ZXN0LT5GaXJzdFNlY3RvcjsNCj4gKyAgICAgICAgcmVxX2Rpc2NhcmQtPm5yX3NlY3Rv
cnMgPSBSZXF1ZXN0LT5OclNlY3RvcnM7DQo+ICsgICAgICAgIEludGVybG9ja2VkSW5jcmVtZW50
KCZSaW5nLQ0KPiA+U3RhdHNbWEVOVkJEX1NUQVRfQkxLSUZfT1BfRElTQ0FSRF0pOw0KPiArICAg
IH0gYnJlYWs7DQo+IA0KPiAtICAgICAgICBRdWV1ZVJlbW92ZSgmUmluZy0+U3VibWl0dGVkUmVx
cywgJlJlcXVlc3QtPkxpc3RFbnRyeSk7DQo+IC0gICAgICAgIFF1ZXVlVW5Qb3AoJlJpbmctPlBy
ZXBhcmVkUmVxcywgJlJlcXVlc3QtPkxpc3RFbnRyeSk7DQo+ICsgICAgZGVmYXVsdDoNCj4gKyAg
ICAgICAgQVNTRVJUKEZBTFNFKTsNCj4gICAgICAgICAgYnJlYWs7DQo+ICAgICAgfQ0KPiAtDQo+
IC0gICAgcmV0dXJuIFF1ZXVlQ291bnQoJlJpbmctPlByZXBhcmVkUmVxcykgIT0gMDsNCj4gIH0N
Cj4gDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRA0KPiAtUmluZ0NvbXBsZXRlU2h1dGRvd24o
DQo+IC0gICAgSU4gIFBYRU5WQkRfUklORyAgICBSaW5nDQo+ICtzdGF0aWMgRk9SQ0VJTkxJTkUg
TlRTVEFUVVMNCj4gK19fQmxraWZSaW5nUG9zdFJlcXVlc3RzKA0KPiArICAgIElOICBQWEVOVkJE
X0JMS0lGX1JJTkcgIEJsa2lmUmluZw0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBQWEVOVkJEX1RB
UkdFVCAgICAgIFRhcmdldDsNCj4gLSAgICBQWEVOVkJEX0FEQVBURVIgICAgIEFkYXB0ZXI7DQo+
ICsjZGVmaW5lIFJJTkdfU0xPVFNfQVZBSUxBQkxFKF9Gcm9udCwgX3JlcV9wcm9kLCBfcnNwX2Nv
bnMpICAgXA0KPiArICAgICAgICAoUklOR19TSVpFKF9Gcm9udCkgLSAoKF9yZXFfcHJvZCkgLSAo
X3JzcF9jb25zKSkpDQo+IA0KPiAtICAgIGlmIChRdWV1ZUNvdW50KCZSaW5nLT5TaHV0ZG93blNy
YnMpID09IDApDQo+IC0gICAgICAgIHJldHVybjsNCj4gKyAgICBQWEVOVkJEX1NSQl9TVEFURSAg
ICAgICBTdGF0ZTsNCj4gKyAgICBSSU5HX0lEWCAgICAgICAgICAgICAgICByZXFfcHJvZDsNCj4g
KyAgICBSSU5HX0lEWCAgICAgICAgICAgICAgICByc3BfY29uczsNCj4gKyAgICBOVFNUQVRVUyAg
ICAgICAgICAgICAgICBzdGF0dXM7DQo+IA0KPiAtICAgIGlmIChRdWV1ZUNvdW50KCZSaW5nLT5Q
cmVwYXJlZFJlcXMpIHx8DQo+IC0gICAgICAgIFF1ZXVlQ291bnQoJlJpbmctPlN1Ym1pdHRlZFJl
cXMpKQ0KPiAtICAgICAgICByZXR1cm47DQo+ICsgICAgU3RhdGUgPSAmQmxraWZSaW5nLT5TdGF0
ZTsNCj4gDQo+IC0gICAgVGFyZ2V0ID0gRnJvbnRlbmRHZXRUYXJnZXQoUmluZy0+RnJvbnRlbmQp
Ow0KPiAtICAgIEFkYXB0ZXIgPSBUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCk7DQo+IC0gICAgZm9y
ICg7Oykgew0KPiAtICAgICAgICBQWEVOVkJEX1NSQkVYVCAgICAgIFNyYkV4dDsNCj4gLSAgICAg
ICAgUFNDU0lfUkVRVUVTVF9CTE9DSyBTcmI7DQo+ICsgICAgcmVxX3Byb2QgPSBCbGtpZlJpbmct
PkZyb250LnJlcV9wcm9kX3B2dDsNCj4gKyAgICByc3BfY29ucyA9IEJsa2lmUmluZy0+RnJvbnQu
cnNwX2NvbnM7DQo+ICsNCj4gKyAgICBzdGF0dXMgPSBTVEFUVVNfQUxMT1RURURfU1BBQ0VfRVhD
RUVERUQ7DQo+ICsgICAgaWYgKFJJTkdfU0xPVFNfQVZBSUxBQkxFKCZCbGtpZlJpbmctPkZyb250
LCByZXFfcHJvZCwgcnNwX2NvbnMpIDw9IDEpDQo+ICsgICAgICAgIGdvdG8gZmFpbDE7DQo+ICsN
Cj4gKyAgICB3aGlsZSAoU3RhdGUtPkNvdW50ICE9IDApIHsNCj4gKyAgICAgICAgYmxraWZfcmVx
dWVzdF90ICAgICAqcmVxOw0KPiArICAgICAgICBQWEVOVkJEX1JFUVVFU1QgICAgIFJlcXVlc3Q7
DQo+ICAgICAgICAgIFBMSVNUX0VOVFJZICAgICAgICAgTGlzdEVudHJ5Ow0KPiANCj4gLSAgICAg
ICAgTGlzdEVudHJ5ID0gUXVldWVQb3AoJlJpbmctPlNodXRkb3duU3Jicyk7DQo+IC0gICAgICAg
IGlmIChMaXN0RW50cnkgPT0gTlVMTCkNCj4gKyAgICAgICAgLS1TdGF0ZS0+Q291bnQ7DQo+ICsN
Cj4gKyAgICAgICAgTGlzdEVudHJ5ID0gUmVtb3ZlSGVhZExpc3QoJlN0YXRlLT5MaXN0KTsNCj4g
KyAgICAgICAgQVNTRVJUM1AoTGlzdEVudHJ5LCAhPSAsICZTdGF0ZS0+TGlzdCk7DQo+ICsNCj4g
KyAgICAgICAgUnRsWmVyb01lbW9yeShMaXN0RW50cnksIHNpemVvZihMSVNUX0VOVFJZKSk7DQo+
ICsNCj4gKyAgICAgICAgUmVxdWVzdCA9IENPTlRBSU5JTkdfUkVDT1JEKExpc3RFbnRyeSwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTlZCRF9SRVFVRVNULA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdEVudHJ5KTsNCj4gKw0KPiAr
ICAgICAgICByZXEgPSBSSU5HX0dFVF9SRVFVRVNUKCZCbGtpZlJpbmctPkZyb250LCByZXFfcHJv
ZCk7DQo+ICsgICAgICAgIHJlcV9wcm9kKys7DQo+ICsgICAgICAgIEJsa2lmUmluZy0+UmVxdWVz
dHNQb3N0ZWQrKzsNCj4gKw0KPiArICAgICAgICBfX0Jsa2lmUmluZ0luc2VydFJlcXVlc3QoQmxr
aWZSaW5nLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWVzdCwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcSk7DQo+ICsNCj4gKyAgICAgICAg
SW5zZXJ0VGFpbExpc3QoJkJsa2lmUmluZy0+U3VibWl0dGVkTGlzdCwgTGlzdEVudHJ5KTsNCj4g
Kw0KPiArICAgICAgICBpZiAoUklOR19TTE9UU19BVkFJTEFCTEUoJkJsa2lmUmluZy0+RnJvbnQs
IHJlcV9wcm9kLCByc3BfY29ucykgPD0NCj4gMSkNCj4gICAgICAgICAgICAgIGJyZWFrOw0KPiAt
ICAgICAgICBTcmJFeHQgPSBDT05UQUlOSU5HX1JFQ09SRChMaXN0RW50cnksIFhFTlZCRF9TUkJF
WFQsIExpc3RFbnRyeSk7DQo+IC0gICAgICAgIFNyYiA9IFNyYkV4dC0+U3JiOw0KPiAtDQo+IC0g
ICAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19TVUNDRVNTOw0KPiAtICAgICAgICBB
ZGFwdGVyQ29tcGxldGVTcmIoQWRhcHRlciwgU3JiRXh0KTsNCj4gICAgICB9DQo+ICsNCj4gKyAg
ICBCbGtpZlJpbmctPkZyb250LnJlcV9wcm9kX3B2dCA9IHJlcV9wcm9kOw0KPiArDQo+ICsgICAg
cmV0dXJuIFNUQVRVU19TVUNDRVNTOw0KPiArDQo+ICtmYWlsMToNCj4gKyAgICByZXR1cm4gc3Rh
dHVzOw0KPiArDQo+ICsjdW5kZWYgIFJJTkdfU0xPVFNfQVZBSUxBQkxFDQo+ICB9DQo+IA0KPiAt
c3RhdGljIEZPUkNFSU5MSU5FIFBDSEFSDQo+IC1fX0Jsa2lmT3BlcmF0aW9uTmFtZSgNCj4gLSAg
ICBJTiAgVUNIQVIgICBPcGVyYXRpb24NCj4gK3N0YXRpYyBGT1JDRUlOTElORSBQWEVOVkJEX1JF
UVVFU1QNCj4gK19fQmxraWZSaW5nR2V0U3VibWl0dGVkUmVxdWVzdCgNCj4gKyAgICBJTiAgUFhF
TlZCRF9CTEtJRl9SSU5HICBCbGtpZlJpbmcsDQo+ICsgICAgSU4gIFVMT05HNjQgICAgICAgICAg
ICAgSWQNCj4gICAgICApDQo+ICB7DQo+IC0gICAgc3dpdGNoIChPcGVyYXRpb24pIHsNCj4gLSAg
ICBjYXNlIEJMS0lGX09QX1JFQUQ6ICAgICAgICAgICAgIHJldHVybiAiUkVBRCI7DQo+IC0gICAg
Y2FzZSBCTEtJRl9PUF9XUklURTogICAgICAgICAgICByZXR1cm4gIldSSVRFIjsNCj4gLSAgICBj
YXNlIEJMS0lGX09QX1dSSVRFX0JBUlJJRVI6ICAgIHJldHVybiAiV1JJVEVfQkFSUklFUiI7DQo+
IC0gICAgY2FzZSBCTEtJRl9PUF9GTFVTSF9ESVNLQ0FDSEU6ICByZXR1cm4gIkZMVVNIX0RJU0tD
QUNIRSI7DQo+IC0gICAgY2FzZSBCTEtJRl9PUF9SRVNFUlZFRF8xOiAgICAgICByZXR1cm4gIlJF
U0VSVkVEXzEiOw0KPiAtICAgIGNhc2UgQkxLSUZfT1BfRElTQ0FSRDogICAgICAgICAgcmV0dXJu
ICJESVNDQVJEIjsNCj4gLSAgICBjYXNlIEJMS0lGX09QX0lORElSRUNUOiAgICAgICAgIHJldHVy
biAiSU5ESVJFQ1QiOw0KPiAtICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuICI8dW5rbm93bj4iOw0KPiArICAgIFBMSVNUX0VOVFJZICAgICAgICAgICAgIExpc3RFbnRy
eTsNCj4gKyAgICBQWEVOVkJEX1JFUVVFU1QgICAgICAgICBSZXF1ZXN0Ow0KPiArDQo+ICsgICAg
Zm9yIChMaXN0RW50cnkgPSBCbGtpZlJpbmctPlN1Ym1pdHRlZExpc3QuRmxpbms7DQo+ICsgICAg
ICAgICBMaXN0RW50cnkgIT0gJkJsa2lmUmluZy0+U3VibWl0dGVkTGlzdDsNCj4gKyAgICAgICAg
IExpc3RFbnRyeSA9IExpc3RFbnRyeS0+RmxpbmspIHsNCj4gKyAgICAgICAgUmVxdWVzdCA9IENP
TlRBSU5JTkdfUkVDT1JEKExpc3RFbnRyeSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFhFTlZCRF9SRVFVRVNULA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGlzdEVudHJ5KTsNCj4gKyAgICAgICAgaWYgKChVTE9ORzY0KShVTE9OR19QVFIp
UmVxdWVzdCAhPSBJZCkNCj4gKyAgICAgICAgICAgIGNvbnRpbnVlOw0KPiArDQo+ICsgICAgICAg
IFJlbW92ZUVudHJ5TGlzdChMaXN0RW50cnkpOw0KPiArICAgICAgICByZXR1cm4gUmVxdWVzdDsN
Cj4gICAgICB9DQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ICB9DQo+IA0KPiAtc3RhdGljIFZPSUQN
Cj4gLVJpbmdDb21wbGV0ZVJlc3BvbnNlKA0KPiAtICAgIElOICBQWEVOVkJEX1JJTkcgICAgUmlu
ZywNCj4gLSAgICBJTiAgVUxPTkc2NCAgICAgICAgIElkLA0KPiAtICAgIElOICBTSE9SVCAgICAg
ICAgICAgU3RhdHVzDQo+ICtzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRA0KPiArX19CbGtpZlJpbmdD
b21wbGV0ZVJlc3BvbnNlKA0KPiArICAgIElOICBQWEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lmUmlu
ZywNCj4gKyAgICBJTiAgUFhFTlZCRF9SRVFVRVNUICAgICBSZXF1ZXN0LA0KPiArICAgIElOICBT
SE9SVCAgICAgICAgICAgICAgIFN0YXR1cw0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBQWEVOVkJE
X1JFUVVFU1QgICAgIFJlcXVlc3Q7DQo+IC0gICAgUFNDU0lfUkVRVUVTVF9CTE9DSyBTcmI7DQo+
IC0gICAgUFhFTlZCRF9TUkJFWFQgICAgICBTcmJFeHQ7DQo+ICsgICAgUFhFTlZCRF9SSU5HICAg
ICAgICAgICAgUmluZyA9IEJsa2lmUmluZy0+UmluZzsNCj4gKyAgICBQWEVOVkJEX0ZST05URU5E
ICAgICAgICBGcm9udGVuZCA9IFJpbmctPkZyb250ZW5kOw0KPiArICAgIFBTQ1NJX1JFUVVFU1Rf
QkxPQ0sgICAgIFNyYjsNCj4gKyAgICBQWEVOVkJEX1NSQkVYVCAgICAgICAgICBTcmJFeHQ7DQo+
ICsgICAgUExJU1RfRU5UUlkgICAgICAgICAgICAgTGlzdEVudHJ5Ow0KPiANCj4gLSAgICBSZXF1
ZXN0ID0gUmluZ0ZpbmRSZXF1ZXN0KFJpbmcsIElkKTsNCj4gLSAgICBpZiAoUmVxdWVzdCA9PSBO
VUxMKQ0KPiAtICAgICAgICByZXR1cm47DQo+IC0NCj4gLSAgICBTcmJFeHQgID0gUmVxdWVzdC0+
U3JiRXh0Ow0KPiAtICAgIFNyYiAgICAgPSBTcmJFeHQtPlNyYjsNCj4gKyAgICBTcmJFeHQgPSBS
ZXF1ZXN0LT5TcmJFeHQ7DQo+ICsgICAgU3JiID0gU3JiRXh0LT5TcmI7DQo+IA0KPiAgICAgIHN3
aXRjaCAoU3RhdHVzKSB7DQo+ICAgICAgY2FzZSBCTEtJRl9SU1BfT0tBWToNCj4gLSAgICAgICAg
UmluZ1JlcXVlc3RDb3B5T3V0cHV0KFJlcXVlc3QpOw0KPiArICAgICAgICBpZiAoUmVxdWVzdC0+
T3BlcmF0aW9uICE9IEJMS0lGX09QX1JFQUQpDQo+ICsgICAgICAgICAgICBicmVhazsNCj4gKw0K
PiArICAgICAgICBmb3IgKExpc3RFbnRyeSA9IFJlcXVlc3QtPlNlZ21lbnRzLkZsaW5rOw0KPiAr
ICAgICAgICAgICAgIExpc3RFbnRyeSAhPSAmUmVxdWVzdC0+U2VnbWVudHM7DQo+ICsgICAgICAg
ICAgICAgTGlzdEVudHJ5ID0gTGlzdEVudHJ5LT5GbGluaykgew0KPiArICAgICAgICAgICAgUFhF
TlZCRF9TRUdNRU5UIFNlZ21lbnQgPSBDT05UQUlOSU5HX1JFQ09SRChMaXN0RW50cnksDQo+IFhF
TlZCRF9TRUdNRU5ULCBMaXN0RW50cnkpOw0KPiArICAgICAgICAgICAgUFhFTlZCRF9CT1VOQ0Ug
IEJvdW5jZSA9IFNlZ21lbnQtPkJvdW5jZTsNCj4gKw0KPiArICAgICAgICAgICAgaWYgKEJvdW5j
ZSkgew0KPiArICAgICAgICAgICAgICAgIFJ0bENvcHlNZW1vcnkoQm91bmNlLT5Tb3VyY2VQdHIs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCb3VuY2UtPkJvdW5jZVB0ciwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1tR2V0TWRsQnl0ZUNvdW50KCZCb3VuY2Ut
PlNvdXJjZU1kbCkpOw0KPiArICAgICAgICAgICAgfQ0KPiArICAgICAgICB9DQo+ICAgICAgICAg
IGJyZWFrOw0KPiANCj4gICAgICBjYXNlIEJMS0lGX1JTUF9FT1BOT1RTVVBQOg0KPiAgICAgICAg
ICAvLyBSZW1vdmUgYXBwcm9wcmlhdGUgZmVhdHVyZSBzdXBwb3J0DQo+IC0gICAgICAgIEZyb250
ZW5kUmVtb3ZlRmVhdHVyZShSaW5nLT5Gcm9udGVuZCwgUmVxdWVzdC0+T3BlcmF0aW9uKTsNCj4g
KyAgICAgICAgRnJvbnRlbmRSZW1vdmVGZWF0dXJlKEZyb250ZW5kLCBSZXF1ZXN0LT5PcGVyYXRp
b24pOw0KPiAgICAgICAgICAvLyBTdWNjZWVkIHRoaXMgU1JCLCBzdWJzaXF1ZW50IFNSQnMgd2ls
bCBiZSBzdWNjZWVkZWQgaW5zdGVhZCBvZiBiZWluZw0KPiBwYXNzZWQgdG8gdGhlIGJhY2tlbmQu
DQo+ICAgICAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19TVUNDRVNTOw0KPiAgICAg
ICAgICBicmVhazsNCj4gDQo+ICAgICAgY2FzZSBCTEtJRl9SU1BfRVJST1I6DQo+ICAgICAgZGVm
YXVsdDoNCj4gLSAgICAgICAgV2FybmluZygiVGFyZ2V0WyVkXSA6ICVzIEJMS0lGX1JTUF9FUlJP
UiAoVGFnICVsbHgpXG4iLA0KPiAtICAgICAgICAgICAgICAgIEZyb250ZW5kR2V0VGFyZ2V0SWQo
UmluZy0+RnJvbnRlbmQpLA0KPiAtICAgICAgICAgICAgICAgIF9fQmxraWZPcGVyYXRpb25OYW1l
KFJlcXVlc3QtPk9wZXJhdGlvbiksDQo+IC0gICAgICAgICAgICAgICAgSWQpOw0KPiArICAgICAg
ICBXYXJuaW5nKCJUYXJnZXRbJXVdWyV1XSA6ICVzIEJMS0lGX1JTUF9FUlJPUlxuIiwNCj4gKyAg
ICAgICAgICAgICAgICBGcm9udGVuZEdldFRhcmdldElkKEZyb250ZW5kKSwNCj4gKyAgICAgICAg
ICAgICAgICBCbGtpZlJpbmctPkluZGV4LA0KPiArICAgICAgICAgICAgICAgIF9fQmxraWZPcGVy
YXRpb25OYW1lKFJlcXVlc3QtPk9wZXJhdGlvbikpOw0KPiAgICAgICAgICBTcmItPlNyYlN0YXR1
cyA9IFNSQl9TVEFUVVNfRVJST1I7DQo+ICAgICAgICAgIGJyZWFrOw0KPiAgICAgIH0NCj4gDQo+
IC0gICAgUmluZ1B1dFJlcXVlc3QoUmluZywgUmVxdWVzdCk7DQo+ICsgICAgQmxraWZSaW5nUHV0
UmVxdWVzdChCbGtpZlJpbmcsIFJlcXVlc3QpOw0KPiANCj4gICAgICAvLyBjb21wbGV0ZSBzcmIN
Cj4gICAgICBpZiAoSW50ZXJsb2NrZWREZWNyZW1lbnQoJlNyYkV4dC0+UmVxdWVzdENvdW50KSA9
PSAwKSB7DQo+IC0gICAgICAgIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQgPSBGcm9udGVuZEdldFRh
cmdldChSaW5nLT5Gcm9udGVuZCk7DQo+IC0gICAgICAgIFBYRU5WQkRfQURBUFRFUiBBZGFwdGVy
ID0gVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpOw0KPiAtDQo+IC0gICAgICAgIGlmIChTcmItPlNy
YlN0YXR1cyA9PSBTUkJfU1RBVFVTX1BFTkRJTkcpIHsNCj4gLSAgICAgICAgICAgIC8vIFNSQiBo
YXMgbm90IGhpdCBhIGZhaWx1cmUgY29uZGl0aW9uIChCTEtJRl9SU1BfRVJST1IgfA0KPiBCTEtJ
Rl9SU1BfRU9QTk9UU1VQUCkNCj4gLSAgICAgICAgICAgIC8vIGZyb20gYW55IG9mIGl0cyByZXNw
b25zZXMuIFNSQiBtdXN0IGhhdmUgc3VjY2VlZGVkDQo+IC0gICAgICAgICAgICBTcmItPlNyYlN0
YXR1cyA9IFNSQl9TVEFUVVNfU1VDQ0VTUzsNCj4gLSAgICAgICAgICAgIFNyYi0+U2NzaVN0YXR1
cyA9IDB4MDA7IC8vIFNDU0lfR09PRA0KPiAtICAgICAgICB9IGVsc2Ugew0KPiAtICAgICAgICAg
ICAgLy8gU3JiLT5TcmJTdGF0dXMgaGFzIGFscmVhZHkgYmVlbiBzZXQgYnkgMSBvciBtb3JlIHJl
cXVlc3RzIHdpdGgNCj4gU3RhdHVzICE9IEJMS0lGX1JTUF9PS0FZDQo+IC0gICAgICAgICAgICBT
cmItPlNjc2lTdGF0dXMgPSAweDQwOyAvLyBTQ1NJX0FCT1JURUQNCj4gLSAgICAgICAgfQ0KPiAt
DQo+IC0gICAgICAgIEFkYXB0ZXJDb21wbGV0ZVNyYihBZGFwdGVyLCBTcmJFeHQpOw0KPiArICAg
ICAgICBfX0Jsa2lmUmluZ0NvbXBsZXRlU3JiKEJsa2lmUmluZywgU3JiRXh0KTsNCj4gICAgICB9
DQo+ICB9DQo+IA0KPiAtc3RhdGljIEJPT0xFQU4NCj4gLVJpbmdQb2xsKA0KPiAtICAgIElOICBQ
WEVOVkJEX1JJTkcgICAgUmluZw0KPiArc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4NCj4gK0Js
a2lmUmluZ1BvbGwoDQo+ICsgICAgSU4gIFBYRU5WQkRfQkxLSUZfUklORyAgQmxraWZSaW5nDQo+
ICAgICAgKQ0KPiAgew0KPiAtICAgIEJPT0xFQU4gICAgICAgICAgICAgUmV0cnkgPSBGQUxTRTsN
Cj4gKyNkZWZpbmUgWEVOVkJEX0JBVENIKF9SaW5nKSAoUklOR19TSVpFKCYoX1JpbmcpLT5Gcm9u
dCkgLyA0KQ0KPiANCj4gLSAgICBBU1NFUlQzVShLZUdldEN1cnJlbnRJcnFsKCksID09LCBESVNQ
QVRDSF9MRVZFTCk7DQo+IC0gICAgS2VBY3F1aXJlU3BpbkxvY2tBdERwY0xldmVsKCZSaW5nLT5M
b2NrKTsNCj4gKyAgICBQWEVOVkJEX1JJTkcgICAgICAgICAgICBSaW5nOw0KPiArICAgIEJPT0xF
QU4gICAgICAgICAgICAgICAgIFJldHJ5Ow0KPiANCj4gLSAgICAvLyBHdWFyZCBhZ2FpbnN0IHRo
aXMgbG9ja2VkIHJlZ2lvbiBiZWluZyBjYWxsZWQgYWZ0ZXIgdGhlDQo+IC0gICAgLy8gbG9jayBv
biBGcm9udGVuZFNldFN0YXRlDQo+IC0gICAgaWYgKFJpbmctPkVuYWJsZWQgPT0gRkFMU0UpDQo+
ICsgICAgUmluZyA9IEJsa2lmUmluZy0+UmluZzsNCj4gKyAgICBSZXRyeSA9IEZBTFNFOw0KPiAr
DQo+ICsgICAgaWYgKCFCbGtpZlJpbmctPkVuYWJsZWQpDQo+ICAgICAgICAgIGdvdG8gZG9uZTsN
Cj4gDQo+ICAgICAgZm9yICg7Oykgew0KPiAtICAgICAgICBVTE9ORyAgIHJzcF9wcm9kOw0KPiAt
ICAgICAgICBVTE9ORyAgIHJzcF9jb25zOw0KPiArICAgICAgICBSSU5HX0lEWCAgICAgICAgICAg
IHJzcF9wcm9kOw0KPiArICAgICAgICBSSU5HX0lEWCAgICAgICAgICAgIHJzcF9jb25zOw0KPiAN
Cj4gICAgICAgICAgS2VNZW1vcnlCYXJyaWVyKCk7DQo+IA0KPiAtICAgICAgICByc3BfcHJvZCA9
IFJpbmctPlNoYXJlZC0+cnNwX3Byb2Q7DQo+IC0gICAgICAgIHJzcF9jb25zID0gUmluZy0+RnJv
bnQucnNwX2NvbnM7DQo+ICsgICAgICAgIHJzcF9wcm9kID0gQmxraWZSaW5nLT5TaGFyZWQtPnJz
cF9wcm9kOw0KPiArICAgICAgICByc3BfY29ucyA9IEJsa2lmUmluZy0+RnJvbnQucnNwX2NvbnM7
DQo+IA0KPiAgICAgICAgICBLZU1lbW9yeUJhcnJpZXIoKTsNCj4gDQo+IEBAIC0xMTcxLDMxOCAr
MTI2MCw5ODQgQEAgUmluZ1BvbGwoDQo+ICAgICAgICAgICAgICBicmVhazsNCj4gDQo+ICAgICAg
ICAgIHdoaWxlIChyc3BfY29ucyAhPSByc3BfcHJvZCAmJiAhUmV0cnkpIHsNCj4gLSAgICAgICAg
ICAgIGJsa2lmX3Jlc3BvbnNlX3QqICAgcnNwOw0KPiArICAgICAgICAgICAgYmxraWZfcmVzcG9u
c2VfdCAgICAqcnNwOw0KPiArICAgICAgICAgICAgUFhFTlZCRF9SRVFVRVNUICAgICBSZXF1ZXN0
Ow0KPiArDQo+ICsgICAgICAgICAgICByc3AgPSBSSU5HX0dFVF9SRVNQT05TRSgmQmxraWZSaW5n
LT5Gcm9udCwgcnNwX2NvbnMpOw0KPiArICAgICAgICAgICAgcnNwX2NvbnMrKzsNCj4gKyAgICAg
ICAgICAgIEJsa2lmUmluZy0+UmVzcG9uc2VzUHJvY2Vzc2VkKys7DQo+IA0KPiAtICAgICAgICAg
ICAgcnNwID0gUklOR19HRVRfUkVTUE9OU0UoJlJpbmctPkZyb250LCByc3BfY29ucyk7DQo+IC0g
ICAgICAgICAgICArK3JzcF9jb25zOw0KPiAtICAgICAgICAgICAgKytSaW5nLT5SZWNlaXZlZDsN
Cj4gKyAgICAgICAgICAgIEJsa2lmUmluZy0+U3RvcHBlZCA9IEZBTFNFOw0KPiANCj4gLSAgICAg
ICAgICAgIFJpbmdDb21wbGV0ZVJlc3BvbnNlKFJpbmcsIHJzcC0+aWQsIHJzcC0+c3RhdHVzKTsN
Cj4gLSAgICAgICAgICAgIFJ0bFplcm9NZW1vcnkocnNwLCBzaXplb2YodW5pb24gYmxraWZfc3Jp
bmdfZW50cnkpKTsNCj4gKyAgICAgICAgICAgIFJlcXVlc3QgPSBfX0Jsa2lmUmluZ0dldFN1Ym1p
dHRlZFJlcXVlc3QoQmxraWZSaW5nLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByc3AtPmlkKTsNCj4gKyAgICAgICAgICAgIEFTU0VSVDNQ
KFJlcXVlc3QsICE9ICwgTlVMTCk7DQo+IA0KPiAtICAgICAgICAgICAgaWYgKHJzcF9jb25zIC0g
UmluZy0+RnJvbnQucnNwX2NvbnMgPiBSSU5HX1NJWkUoJlJpbmctPkZyb250KSAvIDQpDQo+ICsg
ICAgICAgICAgICBfX0Jsa2lmUmluZ0NvbXBsZXRlUmVzcG9uc2UoQmxraWZSaW5nLA0KPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVlc3QsDQo+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNwLT5zdGF0dXMpOw0KPiArDQo+ICsg
ICAgICAgICAgICBpZiAocnNwX2NvbnMgLSBCbGtpZlJpbmctPkZyb250LnJzcF9jb25zID4gWEVO
VkJEX0JBVENIKEJsa2lmUmluZykpDQo+ICAgICAgICAgICAgICAgICAgUmV0cnkgPSBUUlVFOw0K
PiAgICAgICAgICB9DQo+IA0KPiAgICAgICAgICBLZU1lbW9yeUJhcnJpZXIoKTsNCj4gDQo+IC0g
ICAgICAgIFJpbmctPkZyb250LnJzcF9jb25zID0gcnNwX2NvbnM7DQo+IC0gICAgICAgIFJpbmct
PlNoYXJlZC0+cnNwX2V2ZW50ID0gcnNwX2NvbnMgKyAxOw0KPiArICAgICAgICBCbGtpZlJpbmct
PkZyb250LnJzcF9jb25zID0gcnNwX2NvbnM7DQo+ICAgICAgfQ0KPiANCj4gIGRvbmU6DQo+IC0g
ICAgS2VSZWxlYXNlU3BpbkxvY2tGcm9tRHBjTGV2ZWwoJlJpbmctPkxvY2spOw0KPiAtDQo+ICAg
ICAgcmV0dXJuIFJldHJ5Ow0KPiArDQo+ICsjdW5kZWYgWEVOVkJEX0JBVENIDQo+ICB9DQo+IA0K
PiAtX19kcnZfcmVxdWlyZXNJUlFMKERJU1BBVENIX0xFVkVMKQ0KPiAtc3RhdGljIEJPT0xFQU4N
Cj4gLVJpbmdOb3RpZnlSZXNwb25zZXMoDQo+IC0gICAgSU4gIFBYRU5WQkRfUklORyAgICBSaW5n
DQo+ICtzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRA0KPiArX19CbGtpZlJpbmdTZW5kKA0KPiArICAg
IElOICBQWEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lmUmluZw0KPiAgICAgICkNCj4gIHsNCj4gLSAg
ICBCT09MRUFOICAgICAgICAgICAgIFJldHJ5ID0gRkFMU0U7DQo+IC0NCj4gLSAgICBpZiAoIVJp
bmctPkVuYWJsZWQpDQo+IC0gICAgICAgIHJldHVybiBGQUxTRTsNCj4gKyAgICBQWEVOVkJEX1JJ
TkcgICAgICAgICAgICBSaW5nID0gQmxraWZSaW5nLT5SaW5nOw0KPiANCj4gLSAgICBSZXRyeSB8
PSBSaW5nUG9sbChSaW5nKTsNCj4gLSAgICBSZXRyeSB8PSBSaW5nU3VibWl0UmVxdWVzdHMoUmlu
Zyk7DQo+IC0NCj4gLSAgICBSaW5nQ29tcGxldGVTaHV0ZG93bihSaW5nKTsNCj4gLSAgICByZXR1
cm4gUmV0cnk7DQo+ICsgICAgWEVOQlVTX0VWVENITihTZW5kLA0KPiArICAgICAgICAgICAgICAg
ICAgJlJpbmctPkV2dGNobkludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgIEJsa2lmUmlu
Zy0+Q2hhbm5lbCk7DQo+ICB9DQo+IA0KPiAtS1NFUlZJQ0VfUk9VVElORSAgICBSaW5nSW50ZXJy
dXB0Ow0KPiAtDQo+IC1CT09MRUFODQo+IC1SaW5nSW50ZXJydXB0KA0KPiAtICAgIElOICBQS0lO
VEVSUlVQVCBJbnRlcnJ1cHQsDQo+IC0gICAgSU4gIFBWT0lEICAgICAgIENvbnRleHQNCj4gK3N0
YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICtfX0Jsa2lmUmluZ1B1c2hSZXF1ZXN0cygNCj4gKyAg
ICBJTiAgUFhFTlZCRF9CTEtJRl9SSU5HICBCbGtpZlJpbmcNCj4gICAgICApDQo+ICB7DQo+IC0g
ICAgUFhFTlZCRF9SSU5HICAgIFJpbmcgPSBDb250ZXh0Ow0KPiArICAgIEJPT0xFQU4gICAgICAg
ICAgICAgICAgIE5vdGlmeTsNCj4gDQo+IC0gICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihJbnRl
cnJ1cHQpOw0KPiArICAgIGlmIChCbGtpZlJpbmctPlJlcXVlc3RzUG9zdGVkID09IEJsa2lmUmlu
Zy0+UmVxdWVzdHNQdXNoZWQpDQo+ICsgICAgICAgIHJldHVybjsNCj4gDQo+IC0gICAgQVNTRVJU
KFJpbmcgIT0gTlVMTCk7DQo+ICsjcHJhZ21hIHdhcm5pbmcgKHB1c2gpDQo+ICsjcHJhZ21hIHdh
cm5pbmcgKGRpc2FibGU6NDI0NCkNCj4gDQo+IC0gICAgKytSaW5nLT5FdmVudHM7DQo+IC0gICAg
aWYgKCFSaW5nLT5Db25uZWN0ZWQpDQo+IC0gICAgICAgIHJldHVybiBUUlVFOw0KPiArICAgIEJs
a2lmUmluZy0+U2hhcmVkLT5yc3BfZXZlbnQgPSBCbGtpZlJpbmctPkZyb250LnJlcV9wcm9kX3B2
dDsNCj4gDQo+IC0gICAgaWYgKEtlSW5zZXJ0UXVldWVEcGMoJlJpbmctPkRwYywgTlVMTCwgTlVM
TCkpDQo+IC0gICAgICAgICsrUmluZy0+RHBjczsNCj4gKyAgICAvLyBNYWtlIHRoZSByZXF1ZXN0
cyB2aXNpYmxlIHRvIHRoZSBiYWNrZW5kDQo+ICsgICAgUklOR19QVVNIX1JFUVVFU1RTX0FORF9D
SEVDS19OT1RJRlkoJkJsa2lmUmluZy0+RnJvbnQsIE5vdGlmeSk7DQo+IA0KPiAtICAgIHJldHVy
biBUUlVFOw0KPiArI3ByYWdtYSB3YXJuaW5nIChwb3ApDQo+ICsNCj4gKyAgICBpZiAoTm90aWZ5
KQ0KPiArICAgICAgICBfX0Jsa2lmUmluZ1NlbmQoQmxraWZSaW5nKTsNCj4gKw0KPiArICAgIEJs
a2lmUmluZy0+UmVxdWVzdHNQdXNoZWQgPSBCbGtpZlJpbmctPlJlcXVlc3RzUG9zdGVkOw0KPiAg
fQ0KPiANCj4gLUtERUZFUlJFRF9ST1VUSU5FIFJpbmdEcGM7DQo+ICsjZGVmaW5lIFhFTlZCRF9M
T0NLX0JJVCAoKFVMT05HX1BUUikxKQ0KPiANCj4gLVZPSUQNCj4gLVJpbmdEcGMoDQo+IC0gICAg
X19pbiAgUEtEUEMgICAgIERwYywNCj4gLSAgICBfX2luX29wdCBQVk9JRCAgQ29udGV4dCwNCj4g
LSAgICBfX2luX29wdCBQVk9JRCAgQXJnMSwNCj4gLSAgICBfX2luX29wdCBQVk9JRCAgQXJnMg0K
PiArc3RhdGljIERFQ0xTUEVDX05PSU5MSU5FIFZPSUQNCj4gK0Jsa2lmUmluZ1N3aXp6bGUoDQo+
ICsgICAgSU4gIFBYRU5WQkRfQkxLSUZfUklORyAgQmxraWZSaW5nDQo+ICAgICAgKQ0KPiAgew0K
PiAtICAgIFBYRU5WQkRfUklORyAgICBSaW5nID0gQ29udGV4dDsNCj4gKyAgICBVTE9OR19QVFIg
ICAgICAgICAgICAgICBPbGQ7DQo+ICsgICAgVUxPTkdfUFRSICAgICAgICAgICAgICAgTmV3Ow0K
PiArICAgIFBMSVNUX0VOVFJZICAgICAgICAgICAgIExpc3RFbnRyeTsNCj4gKyAgICBMSVNUX0VO
VFJZICAgICAgICAgICAgICBMaXN0Ow0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgIENv
dW50Ow0KPiANCj4gLSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKERwYyk7DQo+IC0gICAgVU5S
RUZFUkVOQ0VEX1BBUkFNRVRFUihBcmcxKTsNCj4gLSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVS
KEFyZzIpOw0KPiArICAgIEFTU0VSVDNQKEJsa2lmUmluZy0+TG9ja1RocmVhZCwgPT0gLCBLZUdl
dEN1cnJlbnRUaHJlYWQoKSk7DQo+IA0KPiAtICAgIEFTU0VSVChSaW5nICE9IE5VTEwpOw0KPiAr
ICAgIEluaXRpYWxpemVMaXN0SGVhZCgmTGlzdCk7DQo+IA0KPiAtICAgIGZvciAoOzspIHsNCj4g
LSAgICAgICAgS0lSUUwgICAgICAgSXJxbDsNCj4gLSAgICAgICAgQk9PTEVBTiAgICAgUmV0cnk7
DQo+ICsgICAgTmV3ID0gWEVOVkJEX0xPQ0tfQklUOw0KPiArICAgIE9sZCA9IChVTE9OR19QVFIp
SW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIoJkJsa2lmUmluZy0+TG9jaywNCj4gKFBWT0lEKU5l
dyk7DQo+IA0KPiAtICAgICAgICBLZVJhaXNlSXJxbChESVNQQVRDSF9MRVZFTCwgJklycWwpOw0K
PiAtICAgICAgICBSZXRyeSA9IFJpbmdOb3RpZnlSZXNwb25zZXMoUmluZyk7DQo+IC0gICAgICAg
IEtlTG93ZXJJcnFsKElycWwpOw0KPiArICAgIEFTU0VSVChPbGQgJiBYRU5WQkRfTE9DS19CSVQp
Ow0KPiArICAgIExpc3RFbnRyeSA9IChQVk9JRCkoT2xkICYgflhFTlZCRF9MT0NLX0JJVCk7DQo+
IA0KPiAtICAgICAgICBpZiAoIVJldHJ5KQ0KPiAtICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAg
aWYgKExpc3RFbnRyeSA9PSBOVUxMKQ0KPiArICAgICAgICByZXR1cm47DQo+ICsNCj4gKyAgICAv
LyBQYWNrZXRzIGFyZSBoZWxkIGluIHRoZSBhdG9taWMgcGFja2V0IGxpc3QgaW4gcmV2ZXJzZSBv
cmRlcg0KPiArICAgIC8vIHNvIHRoYXQgdGhlIG1vc3QgcmVjZW50IGlzIGFsd2F5cyBoZWFkIG9m
IHRoZSBsaXN0LiBUaGlzIGlzDQo+ICsgICAgLy8gbmVjZXNzYXJ5IHRvIGFsbG93IGFkZGl0aW9u
IHRvIHRoZSBsaXN0IHRvIGJlIGRvbmUgYXRvbWljYWxseS4NCj4gKw0KPiArICAgIGZvciAoQ291
bnQgPSAwOyBMaXN0RW50cnkgIT0gTlVMTDsgKytDb3VudCkgew0KPiArICAgICAgICBQTElTVF9F
TlRSWSAgICAgTmV4dEVudHJ5Ow0KPiArDQo+ICsgICAgICAgIE5leHRFbnRyeSA9IExpc3RFbnRy
eS0+Qmxpbms7DQo+ICsgICAgICAgIExpc3RFbnRyeS0+RmxpbmsgPSBMaXN0RW50cnktPkJsaW5r
ID0gTGlzdEVudHJ5Ow0KPiArDQo+ICsgICAgICAgIEluc2VydEhlYWRMaXN0KCZMaXN0LCBMaXN0
RW50cnkpOw0KPiArDQo+ICsgICAgICAgIExpc3RFbnRyeSA9IE5leHRFbnRyeTsNCj4gICAgICB9
DQo+IA0KPiAtICAgIFhFTkJVU19FVlRDSE4oVW5tYXNrLA0KPiAtICAgICAgICAgICAgICAgICAg
JlJpbmctPkV2dGNobkludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgIFJpbmctPkNoYW5u
ZWwsDQo+IC0gICAgICAgICAgICAgICAgICBGQUxTRSk7DQo+ICsgICAgaWYgKCFJc0xpc3RFbXB0
eSgmTGlzdCkpIHsNCj4gKyAgICAgICAgTGlzdEVudHJ5ID0gTGlzdC5GbGluazsNCj4gKw0KPiAr
ICAgICAgICBSZW1vdmVFbnRyeUxpc3QoJkxpc3QpOw0KPiArICAgICAgICBBcHBlbmRUYWlsTGlz
dCgmQmxraWZSaW5nLT5TcmJRdWV1ZSwgTGlzdEVudHJ5KTsNCj4gKw0KPiArICAgICAgICBCbGtp
ZlJpbmctPlNyYnNRdWV1ZWQgKz0gQ291bnQ7DQo+ICsgICAgfQ0KPiAgfQ0KPiANCj4gIHN0YXRp
YyBERUNMU1BFQ19OT0lOTElORSBWT0lEDQo+IC1SaW5nRGVidWdDYWxsYmFjaygNCj4gLSAgICBJ
TiAgUFZPSUQgICAgICAgQXJndW1lbnQsDQo+IC0gICAgSU4gIEJPT0xFQU4gICAgIENyYXNoaW5n
DQo+ICtCbGtpZlJpbmdTY2hlZHVsZSgNCj4gKyAgICBJTiAgUFhFTlZCRF9CTEtJRl9SSU5HICBC
bGtpZlJpbmcNCj4gICAgICApDQo+ICB7DQo+IC0gICAgUFhFTlZCRF9SSU5HICAgIFJpbmcgPSBB
cmd1bWVudDsNCj4gLSAgICBQWEVOVkJEX0dSQU5URVIgR3JhbnRlciA9IEZyb250ZW5kR2V0R3Jh
bnRlcihSaW5nLT5Gcm9udGVuZCk7DQo+IC0gICAgVUxPTkcgICAgICAgICAgIEluZGV4Ow0KPiAr
ICAgIFBYRU5WQkRfU1JCX1NUQVRFICAgICAgIFN0YXRlOw0KPiArICAgIEJPT0xFQU4gICAgICAg
ICAgICAgICAgIFBvbGxlZDsNCj4gDQo+IC0gICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihDcmFz
aGluZyk7DQo+ICsgICAgaWYgKCFCbGtpZlJpbmctPkVuYWJsZWQpDQo+ICsgICAgICAgIHJldHVy
bjsNCj4gDQo+IC0gICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gLSAgICAgICAgICAgICAgICAg
JlJpbmctPkRlYnVnSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAiU3VibWl0dGVkOiAl
dSBSZWNlaXZlZDogJXVcbiIsDQo+IC0gICAgICAgICAgICAgICAgIFJpbmctPlN1Ym1pdHRlZCwN
Cj4gLSAgICAgICAgICAgICAgICAgUmluZy0+UmVjZWl2ZWQpOw0KPiArICAgIFN0YXRlID0gJkJs
a2lmUmluZy0+U3RhdGU7DQo+ICsgICAgUG9sbGVkID0gRkFMU0U7DQo+IA0KPiAtICAgIFhFTkJV
U19ERUJVRyhQcmludGYsDQo+IC0gICAgICAgICAgICAgICAgICZSaW5nLT5EZWJ1Z0ludGVyZmFj
ZSwNCj4gLSAgICAgICAgICAgICAgICAgIkV2ZW50czogJXUgRHBjczogJXVcbiIsDQo+IC0gICAg
ICAgICAgICAgICAgIFJpbmctPkV2ZW50cywNCj4gLSAgICAgICAgICAgICAgICAgUmluZy0+RHBj
cyk7DQo+ICsgICAgd2hpbGUgKCFCbGtpZlJpbmctPlN0b3BwZWQpIHsNCj4gKyAgICAgICAgUExJ
U1RfRU5UUlkgICAgICAgICBMaXN0RW50cnk7DQo+ICsgICAgICAgIFBYRU5WQkRfU1JCRVhUICAg
ICAgU3JiRXh0Ow0KPiArICAgICAgICBOVFNUQVRVUyAgICAgICAgICAgIHN0YXR1czsNCj4gDQo+
IC0gICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gLSAgICAgICAgICAgICAgICAgJlJpbmctPkRl
YnVnSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAiU2hhcmVkIDogMHglcFxuIiwNCj4g
LSAgICAgICAgICAgICAgICAgUmluZy0+U2hhcmVkKTsNCj4gKyAgICAgICAgaWYgKFN0YXRlLT5D
b3VudCAhPSAwKSB7DQo+ICsgICAgICAgICAgICBzdGF0dXMgPSBfX0Jsa2lmUmluZ1Bvc3RSZXF1
ZXN0cyhCbGtpZlJpbmcpOw0KPiArICAgICAgICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykp
DQo+ICsgICAgICAgICAgICAgICAgQmxraWZSaW5nLT5TdG9wcGVkID0gVFJVRTsNCj4gKyAgICAg
ICAgfQ0KPiANCj4gLSAgICBpZiAoUmluZy0+U2hhcmVkKSB7DQo+IC0gICAgICAgIFhFTkJVU19E
RUJVRyhQcmludGYsDQo+IC0gICAgICAgICAgICAgICAgICAgICAmUmluZy0+RGVidWdJbnRlcmZh
Y2UsDQo+IC0gICAgICAgICAgICAgICAgICAgICAiU2hhcmVkOiAlZCAvICVkIC0gJWQgLyAlZFxu
IiwNCj4gLSAgICAgICAgICAgICAgICAgICAgIFJpbmctPlNoYXJlZC0+cmVxX3Byb2QsDQo+IC0g
ICAgICAgICAgICAgICAgICAgICBSaW5nLT5TaGFyZWQtPnJlcV9ldmVudCwNCj4gLSAgICAgICAg
ICAgICAgICAgICAgIFJpbmctPlNoYXJlZC0+cnNwX3Byb2QsDQo+IC0gICAgICAgICAgICAgICAg
ICAgICBSaW5nLT5TaGFyZWQtPnJzcF9ldmVudCk7DQo+IC0gICAgfQ0KPiArICAgICAgICBpZiAo
QmxraWZSaW5nLT5TdG9wcGVkKSB7DQo+ICsgICAgICAgICAgICBpZiAoIVBvbGxlZCkgew0KPiAr
ICAgICAgICAgICAgICAgIChWT0lEKUJsa2lmUmluZ1BvbGwoQmxraWZSaW5nKTsNCj4gKyAgICAg
ICAgICAgICAgICBQb2xsZWQgPSBUUlVFOw0KPiArICAgICAgICAgICAgfQ0KPiANCj4gLSAgICBY
RU5CVVNfREVCVUcoUHJpbnRmLA0KPiAtICAgICAgICAgICAgICAgICAmUmluZy0+RGVidWdJbnRl
cmZhY2UsDQo+IC0gICAgICAgICAgICAgICAgICJGcm9udDogJWQgLyAlZCAoJWQpXG4iLA0KPiAt
ICAgICAgICAgICAgICAgICBSaW5nLT5Gcm9udC5yZXFfcHJvZF9wdnQsDQo+IC0gICAgICAgICAg
ICAgICAgIFJpbmctPkZyb250LnJzcF9jb25zLA0KPiAtICAgICAgICAgICAgICAgICBSaW5nLT5G
cm9udC5ucl9lbnRzKTsNCj4gKyAgICAgICAgICAgIGNvbnRpbnVlOw0KPiArICAgICAgICB9DQo+
IA0KPiAtICAgIFhFTkJVU19ERUJVRyhQcmludGYsDQo+IC0gICAgICAgICAgICAgICAgICZSaW5n
LT5EZWJ1Z0ludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgIk9yZGVyOiAlZFxuIiwNCj4g
LSAgICAgICAgICAgICAgICAgUmluZy0+T3JkZXIpOw0KPiArICAgICAgICBpZiAoQmxraWZSaW5n
LT5SZXF1ZXN0c1Bvc3RlZCAtIEJsa2lmUmluZy0+UmVxdWVzdHNQdXNoZWQgPj0NCj4gKyAgICAg
ICAgICAgIFJJTkdfU0laRSgmQmxraWZSaW5nLT5Gcm9udCkgLyA0KQ0KPiArICAgICAgICAgICAg
X19CbGtpZlJpbmdQdXNoUmVxdWVzdHMoQmxraWZSaW5nKTsNCj4gDQo+IC0gICAgZm9yIChJbmRl
eCA9IDA7IEluZGV4IDwgKDF1bCA8PCBSaW5nLT5PcmRlcik7ICsrSW5kZXgpIHsNCj4gLSAgICAg
ICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gLSAgICAgICAgICAgICAgICAgICAgICZSaW5nLT5E
ZWJ1Z0ludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICJHcmFudHNbJS0yZF06IDB4
JXAgKCV1KVxuIiwNCj4gLSAgICAgICAgICAgICAgICAgICAgIEluZGV4LA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgUmluZy0+R3JhbnRzW0luZGV4XSwNCj4gLSAgICAgICAgICAgICAgICAgICAg
IEdyYW50ZXJSZWZlcmVuY2UoR3JhbnRlciwgUmluZy0+R3JhbnRzW0luZGV4XSkpOw0KPiArICAg
ICAgICBBU1NFUlQzVShTdGF0ZS0+Q291bnQsID09ICwgMCk7DQo+ICsNCj4gKyAgICAgICAgaWYg
KElzTGlzdEVtcHR5KCZCbGtpZlJpbmctPlNyYlF1ZXVlKSkNCj4gKyAgICAgICAgICAgIGJyZWFr
Ow0KPiArDQo+ICsgICAgICAgIExpc3RFbnRyeSA9IFJlbW92ZUhlYWRMaXN0KCZCbGtpZlJpbmct
PlNyYlF1ZXVlKTsNCj4gKyAgICAgICAgQVNTRVJUM1AoTGlzdEVudHJ5LCAhPSAsICZCbGtpZlJp
bmctPlNyYlF1ZXVlKTsNCj4gKw0KPiArICAgICAgICBSdGxaZXJvTWVtb3J5KExpc3RFbnRyeSwg
c2l6ZW9mKExJU1RfRU5UUlkpKTsNCj4gKw0KPiArICAgICAgICBTcmJFeHQgPSBDT05UQUlOSU5H
X1JFQ09SRChMaXN0RW50cnksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFhFTlZCRF9TUkJFWFQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp
c3RFbnRyeSk7DQo+ICsNCj4gKyAgICAgICAgc3RhdHVzID0gX19CbGtpZlJpbmdQcmVwYXJlU3Ji
KEJsa2lmUmluZywgU3JiRXh0KTsNCj4gKyAgICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykp
IHsNCj4gKyAgICAgICAgICAgIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgU3JiID0gU3JiRXh0LT5TcmI7
DQo+ICsgICAgICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfQlVTWTsNCj4gKyAg
ICAgICAgICAgIF9fQmxraWZSaW5nQ29tcGxldGVTcmIoQmxraWZSaW5nLCBTcmJFeHQpOw0KPiAr
ICAgICAgICB9DQo+ICAgICAgfQ0KPiANCj4gLSAgICBpZiAoUmluZy0+Q2hhbm5lbCkgew0KPiAt
ICAgICAgICBVTE9ORyAgICAgICBQb3J0ID0gWEVOQlVTX0VWVENITihHZXRQb3J0LA0KPiAtICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+RXZ0Y2huSW50ZXJm
YWNlLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSaW5nLT5D
aGFubmVsKTsNCj4gKyAgICBfX0Jsa2lmUmluZ1B1c2hSZXF1ZXN0cyhCbGtpZlJpbmcpOw0KPiAN
Cj4gLSAgICAgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICZSaW5nLT5EZWJ1Z0ludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICJDaGFubmVs
IDogJXAgKCVkKVxuIiwNCj4gLSAgICAgICAgICAgICAgICAgICAgIFJpbmctPkNoYW5uZWwsDQo+
IC0gICAgICAgICAgICAgICAgICAgICBQb3J0KTsNCj4gKyAgICBpZiAoSXNMaXN0RW1wdHkoJkJs
a2lmUmluZy0+U2h1dGRvd25RdWV1ZSkpDQo+ICsgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAg
IGlmICghSXNMaXN0RW1wdHkoJkJsa2lmUmluZy0+U3JiUXVldWUpIHx8DQo+ICsgICAgICAgICFJ
c0xpc3RFbXB0eSgmQmxraWZSaW5nLT5TdWJtaXR0ZWRMaXN0KSkNCj4gKyAgICAgICAgcmV0dXJu
Ow0KPiArDQo+ICsgICAgZm9yICg7Oykgew0KPiArICAgICAgICBQTElTVF9FTlRSWSAgICAgICAg
IExpc3RFbnRyeTsNCj4gKyAgICAgICAgUFhFTlZCRF9TUkJFWFQgICAgICBTcmJFeHQ7DQo+ICsg
ICAgICAgIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgU3JiOw0KPiArDQo+ICsgICAgICAgIExpc3RFbnRy
eSA9IFJlbW92ZUhlYWRMaXN0KCZCbGtpZlJpbmctPlNodXRkb3duUXVldWUpOw0KPiArICAgICAg
ICBpZiAoTGlzdEVudHJ5ID09ICZCbGtpZlJpbmctPlNodXRkb3duUXVldWUpDQo+ICsgICAgICAg
ICAgICBicmVhazsNCj4gKw0KPiArICAgICAgICBTcmJFeHQgPSBDT05UQUlOSU5HX1JFQ09SRChM
aXN0RW50cnksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTlZCRF9T
UkJFWFQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3RFbnRyeSk7
DQo+ICsNCj4gKyAgICAgICAgU3JiID0gU3JiRXh0LT5TcmI7DQo+ICsgICAgICAgIFNyYi0+U3Ji
U3RhdHVzID0gU1JCX1NUQVRVU19TVUNDRVNTOw0KPiArICAgICAgICBfX0Jsa2lmUmluZ0NvbXBs
ZXRlU3JiKEJsa2lmUmluZywgU3JiRXh0KTsNCj4gICAgICB9DQo+ICt9DQo+IA0KPiAtICAgIFhF
TkJVU19ERUJVRyhQcmludGYsDQo+IC0gICAgICAgICAgICAgICAgICZSaW5nLT5EZWJ1Z0ludGVy
ZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgIkJMS0lGX09QczogUkVBRD0ldSBXUklURT0ldVxu
IiwNCj4gLSAgICAgICAgICAgICAgICAgUmluZy0+QmxrT3BSZWFkLA0KPiAtICAgICAgICAgICAg
ICAgICBSaW5nLT5CbGtPcFdyaXRlKTsNCj4gLSAgICBYRU5CVVNfREVCVUcoUHJpbnRmLA0KPiAt
ICAgICAgICAgICAgICAgICAmUmluZy0+RGVidWdJbnRlcmZhY2UsDQo+IC0gICAgICAgICAgICAg
ICAgICJCTEtJRl9PUHM6IElORElSRUNUX1JFQUQ9JXUgSU5ESVJFQ1RfV1JJVEU9JXVcbiIsDQo+
IC0gICAgICAgICAgICAgICAgIFJpbmctPkJsa09wSW5kaXJlY3RSZWFkLA0KPiAtICAgICAgICAg
ICAgICAgICBSaW5nLT5CbGtPcEluZGlyZWN0V3JpdGUpOw0KPiAtICAgIFhFTkJVU19ERUJVRyhQ
cmludGYsDQo+IC0gICAgICAgICAgICAgICAgICZSaW5nLT5EZWJ1Z0ludGVyZmFjZSwNCj4gLSAg
ICAgICAgICAgICAgICAgIkJMS0lGX09QczogQkFSUklFUj0ldSBESVNDQVJEPSV1IEZMVVNIPSV1
XG4iLA0KPiAtICAgICAgICAgICAgICAgICBSaW5nLT5CbGtPcEJhcnJpZXIsDQo+IC0gICAgICAg
ICAgICAgICAgIFJpbmctPkJsa09wRGlzY2FyZCwNCj4gLSAgICAgICAgICAgICAgICAgUmluZy0+
QmxrT3BGbHVzaCk7DQo+IC0gICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gLSAgICAgICAgICAg
ICAgICAgJlJpbmctPkRlYnVnSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAiU2VnbWVu
dHMgR3JhbnRlZD0lbGx1IEJvdW5jZWQ9JWxsdVxuIiwNCj4gLSAgICAgICAgICAgICAgICAgUmlu
Zy0+U2Vnc0dyYW50ZWQsDQo+IC0gICAgICAgICAgICAgICAgIFJpbmctPlNlZ3NCb3VuY2VkKTsN
Cj4gK3N0YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoRElT
UEFUQ0hfTEVWRUwpDQo+ICtfX0Jsa2lmUmluZ1RyeUFjcXVpcmVMb2NrKA0KPiArICAgIElOICBQ
WEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lmUmluZw0KPiArICAgICkNCj4gK3sNCj4gKyAgICBVTE9O
R19QVFIgICAgICAgICAgICAgICBPbGQ7DQo+ICsgICAgVUxPTkdfUFRSICAgICAgICAgICAgICAg
TmV3Ow0KPiArICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgIEFjcXVpcmVkOw0KPiArDQo+ICsg
ICAgQVNTRVJUM1UoS2VHZXRDdXJyZW50SXJxbCgpLCA9PSAsIERJU1BBVENIX0xFVkVMKTsNCj4g
Kw0KPiArICAgIEtlTWVtb3J5QmFycmllcigpOw0KPiArDQo+ICsgICAgT2xkID0gKFVMT05HX1BU
UilCbGtpZlJpbmctPkxvY2sgJiB+WEVOVkJEX0xPQ0tfQklUOw0KPiArICAgIE5ldyA9IE9sZCB8
IFhFTlZCRF9MT0NLX0JJVDsNCj4gKw0KPiArICAgIEFjcXVpcmVkID0NCj4gKChVTE9OR19QVFIp
SW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VQb2ludGVyKCZCbGtpZlJpbmctPkxvY2ssDQo+ICsg
ICAgICAgIChQVk9JRClOZXcsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKFBWT0lEKU9sZCkgPT0gT2xkKSA/IFRSVUUgOiBG
QUxTRTsNCj4gDQo+IC0gICAgUXVldWVEZWJ1Z0NhbGxiYWNrKCZSaW5nLT5QcmVwYXJlZFJlcXMs
DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICJQcmVwYXJlZCAiLA0KPiAtICAgICAgICAgICAg
ICAgICAgICAgICAmUmluZy0+RGVidWdJbnRlcmZhY2UpOw0KPiAtICAgIFF1ZXVlRGVidWdDYWxs
YmFjaygmUmluZy0+U3VibWl0dGVkUmVxcywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIlN1
Ym1pdHRlZCIsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICZSaW5nLT5EZWJ1Z0ludGVyZmFj
ZSk7DQo+IC0gICAgUXVldWVEZWJ1Z0NhbGxiYWNrKCZSaW5nLT5TaHV0ZG93blNyYnMsDQo+IC0g
ICAgICAgICAgICAgICAgICAgICAgICJTaHV0ZG93biAiLA0KPiAtICAgICAgICAgICAgICAgICAg
ICAgICAmUmluZy0+RGVidWdJbnRlcmZhY2UpOw0KPiArICAgIEtlTWVtb3J5QmFycmllcigpOw0K
PiArDQo+ICsgICAgaWYgKEFjcXVpcmVkKSB7DQo+ICsgICAgICAgIEFTU0VSVDNQKEJsa2lmUmlu
Zy0+TG9ja1RocmVhZCwgPT0gLCBOVUxMKTsNCj4gKyAgICAgICAgQmxraWZSaW5nLT5Mb2NrVGhy
ZWFkID0gS2VHZXRDdXJyZW50VGhyZWFkKCk7DQo+ICsgICAgICAgIEtlTWVtb3J5QmFycmllcigp
Ow0KPiArICAgIH0NCj4gKw0KPiArICAgIHJldHVybiBBY3F1aXJlZDsNCj4gIH0NCj4gDQo+IC1z
dGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRA0KPiAtUmluZ0FjcXVpcmVMb2NrKA0KPiAtICAg
IElOICBQVk9JRCAgICAgICBBcmd1bWVudA0KPiArc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4g
K19fZHJ2X3JlcXVpcmVzSVJRTChESVNQQVRDSF9MRVZFTCkNCj4gK19fQmxraWZSaW5nQWNxdWly
ZUxvY2soDQo+ICsgICAgSU4gIFBYRU5WQkRfQkxLSUZfUklORyAgQmxraWZSaW5nDQo+ICAgICAg
KQ0KPiAgew0KPiAtICAgIFBYRU5WQkRfUklORyAgICBSaW5nID0gQXJndW1lbnQ7DQo+IC0gICAg
S2VBY3F1aXJlU3BpbkxvY2tBdERwY0xldmVsKCZSaW5nLT5Mb2NrKTsNCj4gKyAgICBBU1NFUlQz
VShLZUdldEN1cnJlbnRJcnFsKCksID09ICwgRElTUEFUQ0hfTEVWRUwpOw0KPiArDQo+ICsgICAg
Zm9yICg7Oykgew0KPiArICAgICAgICBpZiAoX19CbGtpZlJpbmdUcnlBY3F1aXJlTG9jayhCbGtp
ZlJpbmcpKQ0KPiArICAgICAgICAgICAgYnJlYWs7DQo+ICsNCj4gKyAgICAgICAgX21tX3BhdXNl
KCk7DQo+ICsgICAgfQ0KPiAgfQ0KPiANCj4gLXN0YXRpYyBERUNMU1BFQ19OT0lOTElORSBWT0lE
DQo+IC1SaW5nUmVsZWFzZUxvY2soDQo+IC0gICAgSU4gIFBWT0lEICAgICAgIEFyZ3VtZW50DQo+
ICtzdGF0aWMgVk9JRA0KPiArQmxraWZSaW5nQWNxdWlyZUxvY2soDQo+ICsgICAgSU4gIFBYRU5W
QkRfQkxLSUZfUklORyAgQmxraWZSaW5nDQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIFBYRU5WQkRf
UklORyAgICBSaW5nID0gQXJndW1lbnQ7DQo+IC0gICAgS2VSZWxlYXNlU3BpbkxvY2tGcm9tRHBj
TGV2ZWwoJlJpbmctPkxvY2spOw0KPiArICAgIF9fQmxraWZSaW5nQWNxdWlyZUxvY2soQmxraWZS
aW5nKTsNCj4gIH0NCj4gDQo+IC1zdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgTlRTVEFUVVMNCj4g
LVJpbmdSZXF1ZXN0Q3RvcigNCj4gLSAgICBJTiAgUFZPSUQgICAgICAgQXJndW1lbnQsDQo+IC0g
ICAgSU4gIFBWT0lEICAgICAgIE9iamVjdA0KPiArc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4N
Cj4gK19fZHJ2X3JlcXVpcmVzSVJRTChESVNQQVRDSF9MRVZFTCkNCj4gK19fQmxraWZSaW5nVHJ5
UmVsZWFzZUxvY2soDQo+ICsgICAgSU4gIFBYRU5WQkRfQkxLSUZfUklORyAgQmxraWZSaW5nDQo+
ICAgICAgKQ0KPiAgew0KPiAtICAgIFBYRU5WQkRfUkVRVUVTVCBSZXF1ZXN0ID0gT2JqZWN0Ow0K
PiArICAgIFVMT05HX1BUUiAgICAgICAgICAgICAgIE9sZDsNCj4gKyAgICBVTE9OR19QVFIgICAg
ICAgICAgICAgICBOZXc7DQo+ICsgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgUmVsZWFzZWQ7
DQo+IA0KPiAtICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoQXJndW1lbnQpOw0KPiArICAgIEFT
U0VSVDNVKEtlR2V0Q3VycmVudElycWwoKSwgPT0gLCBESVNQQVRDSF9MRVZFTCk7DQo+ICsgICAg
QVNTRVJUM1AoS2VHZXRDdXJyZW50VGhyZWFkKCksID09ICwgQmxraWZSaW5nLT5Mb2NrVGhyZWFk
KTsNCj4gDQo+IC0gICAgSW5pdGlhbGl6ZUxpc3RIZWFkKCZSZXF1ZXN0LT5TZWdtZW50cyk7DQo+
IC0gICAgSW5pdGlhbGl6ZUxpc3RIZWFkKCZSZXF1ZXN0LT5JbmRpcmVjdHMpOw0KPiAtICAgIHJl
dHVybiBTVEFUVVNfU1VDQ0VTUzsNCj4gKyAgICBPbGQgPSBYRU5WQkRfTE9DS19CSVQ7DQo+ICsg
ICAgTmV3ID0gMDsNCj4gKw0KPiArICAgIEJsa2lmUmluZy0+TG9ja1RocmVhZCA9IE5VTEw7DQo+
ICsNCj4gKyAgICBLZU1lbW9yeUJhcnJpZXIoKTsNCj4gKw0KPiArICAgIFJlbGVhc2VkID0NCj4g
KChVTE9OR19QVFIpSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VQb2ludGVyKCZCbGtpZlJpbmct
PkxvY2ssDQo+ICsgICAgICAgIChQVk9JRClOZXcsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFBWT0lEKU9sZCkgPT0gT2xk
KSA/IFRSVUUgOiBGQUxTRTsNCj4gKw0KPiArICAgIEtlTWVtb3J5QmFycmllcigpOw0KPiArDQo+
ICsgICAgaWYgKCFSZWxlYXNlZCkgew0KPiArICAgICAgICBBU1NFUlQzUChCbGtpZlJpbmctPkxv
Y2tUaHJlYWQsID09ICwgTlVMTCk7DQo+ICsgICAgICAgIEJsa2lmUmluZy0+TG9ja1RocmVhZCA9
IEtlR2V0Q3VycmVudFRocmVhZCgpOw0KPiArICAgICAgICBLZU1lbW9yeUJhcnJpZXIoKTsNCj4g
KyAgICB9DQo+ICsNCj4gKyAgICByZXR1cm4gUmVsZWFzZWQ7DQo+ICB9DQo+IA0KPiAtc3RhdGlj
IERFQ0xTUEVDX05PSU5MSU5FIFZPSUQNCj4gLVJpbmdSZXF1ZXN0RHRvcigNCj4gLSAgICBJTiAg
UFZPSUQgICAgICAgQXJndW1lbnQsDQo+IC0gICAgSU4gIFBWT0lEICAgICAgIE9iamVjdA0KPiAr
c3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChESVNQQVRDSF9M
RVZFTCkNCj4gK19fQmxraWZSaW5nUmVsZWFzZUxvY2soDQo+ICsgICAgSU4gIFBYRU5WQkRfQkxL
SUZfUklORyAgQmxraWZSaW5nDQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIFVOUkVGRVJFTkNFRF9Q
QVJBTUVURVIoQXJndW1lbnQpOw0KPiAtICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoT2JqZWN0
KTsNCj4gKyAgICBBU1NFUlQzVShLZUdldEN1cnJlbnRJcnFsKCksID09ICwgRElTUEFUQ0hfTEVW
RUwpOw0KPiArDQo+ICsgICAgLy8gQXMgbG9jayBob2xkZXIgaXQgaXMgb3VyIHJlc3BvbnNpYmls
aXR5IHRvIGRyYWluIHRoZSBhdG9taWMNCj4gKyAgICAvLyBwYWNrZXQgbGlzdCBpbnRvIHRoZSB0
cmFuc21pdCBxdWV1ZSBiZWZvcmUgd2UgYWN0dWFsbHkgZHJvcCB0aGUNCj4gKyAgICAvLyBsb2Nr
LiBUaGlzIG1heSwgb2YgY291cnNlLCB0YWtlIGEgZmV3IGF0dGVtcHRzIGFzIGFub3RoZXINCj4g
KyAgICAvLyB0aHJlYWQgY291bGQgYmUgc2ltdW50YW5lb3VzbHkgYWRkaW5nIHRvIHRoZSBsaXN0
Lg0KPiArDQo+ICsgICAgZG8gew0KPiArICAgICAgICBCbGtpZlJpbmdTd2l6emxlKEJsa2lmUmlu
Zyk7DQo+ICsgICAgICAgIEJsa2lmUmluZ1NjaGVkdWxlKEJsa2lmUmluZyk7DQo+ICsgICAgfSB3
aGlsZSAoIV9fQmxraWZSaW5nVHJ5UmVsZWFzZUxvY2soQmxraWZSaW5nKSk7DQo+ICB9DQo+IA0K
PiAtc3RhdGljIERFQ0xTUEVDX05PSU5MSU5FIE5UU1RBVFVTDQo+IC1SaW5nU2VnbWVudEN0b3Io
DQo+IC0gICAgSU4gIFBWT0lEICAgICAgIEFyZ3VtZW50LA0KPiAtICAgIElOICBQVk9JRCAgICAg
ICBPYmplY3QNCj4gK3N0YXRpYyBWT0lEDQo+ICtCbGtpZlJpbmdSZWxlYXNlTG9jaygNCj4gKyAg
ICBJTiAgUFhFTlZCRF9CTEtJRl9SSU5HICBCbGtpZlJpbmcNCj4gICAgICApDQo+ICB7DQo+IC0g
ICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBcmd1bWVudCk7DQo+IC0gICAgVU5SRUZFUkVOQ0VE
X1BBUkFNRVRFUihPYmplY3QpOw0KPiArICAgIF9fQmxraWZSaW5nUmVsZWFzZUxvY2soQmxraWZS
aW5nKTsNCj4gK30NCj4gKw0KPiArS1NFUlZJQ0VfUk9VVElORSAgICBCbGtpZlJpbmdJbnRlcnJ1
cHQ7DQo+ICsNCj4gK0JPT0xFQU4NCj4gK0Jsa2lmUmluZ0ludGVycnVwdCgNCj4gKyAgICBJTiAg
UEtJTlRFUlJVUFQgICAgIEludGVycnVwdE9iamVjdCwNCj4gKyAgICBJTiAgUFZPSUQgICAgICAg
ICAgIEFyZ3VtZW50DQo+ICsgICAgKQ0KPiArew0KPiArICAgIFBYRU5WQkRfQkxLSUZfUklORyAg
QmxraWZSaW5nID0gQXJndW1lbnQ7DQo+ICsNCj4gKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVS
KEludGVycnVwdE9iamVjdCk7DQo+ICsNCj4gKyAgICBBU1NFUlQoQmxraWZSaW5nICE9IE5VTEwp
Ow0KPiArDQo+ICsgICAgQmxraWZSaW5nLT5FdmVudHMrKzsNCj4gKw0KPiArICAgIGlmIChLZUlu
c2VydFF1ZXVlRHBjKCZCbGtpZlJpbmctPkRwYywgTlVMTCwgTlVMTCkpDQo+ICsgICAgICAgIEJs
a2lmUmluZy0+RHBjcysrOw0KPiArDQo+ICsgICAgcmV0dXJuIFRSVUU7DQo+ICt9DQo+ICsNCj4g
K19fZHJ2X2Z1bmN0aW9uQ2xhc3MoS0RFRkVSUkVEX1JPVVRJTkUpDQo+ICtfX2Rydl9tYXhJUlFM
KERJU1BBVENIX0xFVkVMKQ0KPiArX19kcnZfbWluSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiArX19k
cnZfc2FtZUlSUUwNCj4gK3N0YXRpYyBWT0lEDQo+ICtCbGtpZlJpbmdEcGMoDQo+ICsgICAgSU4g
IFBLRFBDICAgICAgICAgICBEcGMsDQo+ICsgICAgSU4gIFBWT0lEICAgICAgICAgICBDb250ZXh0
LA0KPiArICAgIElOICBQVk9JRCAgICAgICAgICAgQXJndW1lbnQxLA0KPiArICAgIElOICBQVk9J
RCAgICAgICAgICAgQXJndW1lbnQyDQo+ICsgICAgKQ0KPiArew0KPiArICAgIFBYRU5WQkRfQkxL
SUZfUklORyAgQmxraWZSaW5nID0gQ29udGV4dDsNCj4gKyAgICBQWEVOVkJEX1JJTkcgICAgICAg
IFJpbmc7DQo+ICsNCj4gKyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKERwYyk7DQo+ICsgICAg
VU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBcmd1bWVudDEpOw0KPiArICAgIFVOUkVGRVJFTkNFRF9Q
QVJBTUVURVIoQXJndW1lbnQyKTsNCj4gKw0KPiArICAgIEFTU0VSVChCbGtpZlJpbmcgIT0gTlVM
TCk7DQo+ICsNCj4gKyAgICBSaW5nID0gQmxraWZSaW5nLT5SaW5nOw0KPiArDQo+ICsgICAgZm9y
ICg7Oykgew0KPiArICAgICAgICBCT09MRUFOICAgICAgICAgUmV0cnk7DQo+ICsgICAgICAgIEtJ
UlFMICAgICAgICAgICBJcnFsOw0KPiArDQo+ICsgICAgICAgIEtlUmFpc2VJcnFsKERJU1BBVENI
X0xFVkVMLCAmSXJxbCk7DQo+ICsgICAgICAgIF9fQmxraWZSaW5nQWNxdWlyZUxvY2soQmxraWZS
aW5nKTsNCj4gKyAgICAgICAgUmV0cnkgPSBCbGtpZlJpbmdQb2xsKEJsa2lmUmluZyk7DQo+ICsg
ICAgICAgIF9fQmxraWZSaW5nUmVsZWFzZUxvY2soQmxraWZSaW5nKTsNCj4gKyAgICAgICAgS2VM
b3dlcklycWwoSXJxbCk7DQo+ICsNCj4gKyAgICAgICAgaWYgKCFSZXRyeSkNCj4gKyAgICAgICAg
ICAgIGJyZWFrOw0KPiArICAgIH0NCj4gKw0KPiArICAgIFhFTkJVU19FVlRDSE4oVW5tYXNrLA0K
PiArICAgICAgICAgICAgICAgICAgJlJpbmctPkV2dGNobkludGVyZmFjZSwNCj4gKyAgICAgICAg
ICAgICAgICAgIEJsa2lmUmluZy0+Q2hhbm5lbCwNCj4gKyAgICAgICAgICAgICAgICAgIEZBTFNF
KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIE5UU1RBVFVTDQo+ICtCbGtpZlJpbmdDcmVhdGUoDQo+
ICsgICAgSU4gIFBYRU5WQkRfUklORyAgICAgICAgUmluZywNCj4gKyAgICBJTiAgVUxPTkcgICAg
ICAgICAgICAgICBJbmRleCwNCj4gKyAgICBPVVQgUFhFTlZCRF9CTEtJRl9SSU5HKiBCbGtpZlJp
bmcNCj4gKyAgICApDQo+ICt7DQo+ICsgICAgUFhFTlZCRF9GUk9OVEVORCAgICAgICAgRnJvbnRl
bmQ7DQo+ICsgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgTGVuZ3RoOw0KPiArICAgIFBDSEFS
ICAgICAgICAgICAgICAgICAgIFBhdGg7DQo+ICsgICAgQ0hBUiAgICAgICAgICAgICAgICAgICAg
TmFtZVtNQVhfTkFNRV9MRU5dOw0KPiArICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1
czsNCj4gKw0KPiArICAgIEZyb250ZW5kID0gUmluZy0+RnJvbnRlbmQ7DQo+ICsNCj4gKyAgICBM
ZW5ndGggPSAoVUxPTkcpc3RybGVuKEZyb250ZW5kR2V0RnJvbnRlbmRQYXRoKEZyb250ZW5kKSkg
Kw0KPiArICAgICAgICAoVUxPTkcpc3RybGVuKCIvcXVldWUteHh4Iik7DQo+ICsNCj4gKyAgICBQ
YXRoID0gX19SaW5nQWxsb2NhdGUoTGVuZ3RoICsgMSk7DQo+ICsNCj4gKyAgICBzdGF0dXMgPSBT
VEFUVVNfTk9fTUVNT1JZOw0KPiArICAgIGlmIChQYXRoID09IE5VTEwpDQo+ICsgICAgICAgIGdv
dG8gZmFpbDE7DQo+ICsNCj4gKyAgICBzdGF0dXMgPSBSdGxTdHJpbmdDY2hQcmludGZBKFBhdGgs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgsDQo+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMvcXVldWUtJXUiLA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmRHZXRGcm9udGVuZFBhdGgoRnJvbnRlbmQpLA0K
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXgpOw0KPiArICAgIGlmICgh
TlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiArICAgICAgICBnb3RvIGZhaWwyOw0KPiArDQo+ICsgICAg
KkJsa2lmUmluZyA9IF9fUmluZ0FsbG9jYXRlKHNpemVvZihYRU5WQkRfQkxLSUZfUklORykpOw0K
PiArDQo+ICsgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsNCj4gKyAgICBpZiAoKkJsa2lm
UmluZyA9PSBOVUxMKQ0KPiArICAgICAgICBnb3RvIGZhaWwzOw0KPiArDQo+ICsgICAgKCpCbGtp
ZlJpbmcpLT5SaW5nID0gUmluZzsNCj4gKyAgICAoKkJsa2lmUmluZyktPkluZGV4ID0gSW5kZXg7
DQo+ICsgICAgKCpCbGtpZlJpbmcpLT5QYXRoID0gUGF0aDsNCj4gKyAgICBQYXRoID0gTlVMTDsN
Cj4gKw0KPiArICAgIEluaXRpYWxpemVMaXN0SGVhZCgmKCpCbGtpZlJpbmcpLT5TcmJRdWV1ZSk7
DQo+ICsgICAgSW5pdGlhbGl6ZUxpc3RIZWFkKCYoKkJsa2lmUmluZyktPlNodXRkb3duUXVldWUp
Ow0KPiArICAgIEluaXRpYWxpemVMaXN0SGVhZCgmKCpCbGtpZlJpbmcpLT5TdWJtaXR0ZWRMaXN0
KTsNCj4gKyAgICBJbml0aWFsaXplTGlzdEhlYWQoJigqQmxraWZSaW5nKS0+U3RhdGUuTGlzdCk7
DQo+ICsNCj4gKyAgICBLZUluaXRpYWxpemVUaHJlYWRlZERwYygmKCpCbGtpZlJpbmcpLT5EcGMs
IEJsa2lmUmluZ0RwYywgKkJsa2lmUmluZyk7DQo+ICsNCj4gKyAgICBzdGF0dXMgPSBSdGxTdHJp
bmdDYlByaW50ZkEoTmFtZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZW9mKE5hbWUpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmJkXyV1X3F1
ZXVlXyV1X3JlcXVlc3QiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9u
dGVuZEdldFRhcmdldElkKEZyb250ZW5kKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSW5kZXgpOw0KPiArICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiArICAgICAg
ICBnb3RvIGZhaWw0Ow0KPiArDQo+ICsgICAgc3RhdHVzID0gWEVOQlVTX0NBQ0hFKENyZWF0ZSwN
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgJlJpbmctPkNhY2hlSW50ZXJmYWNlLA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lLA0KPiArICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplb2YoWEVOVkJEX1JFUVVFU1QpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAwLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBCbGtpZlJpbmdSZXF1ZXN0Q3RvciwN
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgQmxraWZSaW5nUmVxdWVzdER0b3IsDQo+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgIEJsa2lmUmluZ0FjcXVpcmVMb2NrLA0KPiArICAgICAg
ICAgICAgICAgICAgICAgICAgICBCbGtpZlJpbmdSZWxlYXNlTG9jaywNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgKkJsa2lmUmluZywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
JigqQmxraWZSaW5nKS0+UmVxdWVzdENhY2hlKTsNCj4gKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3Rh
dHVzKSkNCj4gKyAgICAgICAgZ290byBmYWlsNTsNCj4gKw0KPiArICAgIHN0YXR1cyA9IFJ0bFN0
cmluZ0NiUHJpbnRmQShOYW1lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplb2YoTmFtZSksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YmRfJXVf
cXVldWVfJXVfc2VnbWVudCIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZy
b250ZW5kR2V0VGFyZ2V0SWQoRnJvbnRlbmQpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBJbmRleCk7DQo+ICsgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICsgICAg
ICAgIGdvdG8gZmFpbDY7DQo+ICsNCj4gKyAgICBzdGF0dXMgPSBYRU5CVVNfQ0FDSEUoQ3JlYXRl
LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+Q2FjaGVJbnRlcmZhY2UsDQo+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVvZihYRU5WQkRfU0VHTUVOVCksDQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgIDAsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIEJsa2lmUmluZ1NlZ21lbnRDdG9y
LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBCbGtpZlJpbmdTZWdtZW50RHRvciwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgQmxraWZSaW5nQWNxdWlyZUxvY2ssDQo+ICsgICAg
ICAgICAgICAgICAgICAgICAgICAgIEJsa2lmUmluZ1JlbGVhc2VMb2NrLA0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAqQmxraWZSaW5nLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAmKCpCbGtpZlJpbmcpLT5TZWdtZW50Q2FjaGUpOw0KPiArICAgIGlmICghTlRfU1VDQ0VTUyhz
dGF0dXMpKQ0KPiArICAgICAgICBnb3RvIGZhaWw3Ow0KPiArDQo+ICsgICAgc3RhdHVzID0gUnRs
U3RyaW5nQ2JQcmludGZBKE5hbWUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVvZihOYW1lKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZiZF8l
dV9xdWV1ZV8ldV9pbmRpcmVjdCIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEZyb250ZW5kR2V0VGFyZ2V0SWQoRnJvbnRlbmQpLA0KPiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBJbmRleCk7DQo+ICsgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICsg
ICAgICAgIGdvdG8gZmFpbDg7DQo+ICsNCj4gKyAgICBzdGF0dXMgPSBYRU5CVVNfQ0FDSEUoQ3Jl
YXRlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+Q2FjaGVJbnRlcmZhY2Us
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVvZihYRU5WQkRfSU5ESVJFQ1QpLA0KPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBCbGtpZlJpbmdJbmRpcmVj
dEN0b3IsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIEJsa2lmUmluZ0luZGlyZWN0RHRv
ciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgQmxraWZSaW5nQWNxdWlyZUxvY2ssDQo+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgIEJsa2lmUmluZ1JlbGVhc2VMb2NrLA0KPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAqQmxraWZSaW5nLA0KPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAmKCpCbGtpZlJpbmcpLT5JbmRpcmVjdENhY2hlKTsNCj4gKyAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkNCj4gKyAgICAgICAgZ290byBmYWlsOTsNCj4gKw0KPiAgICAgIHJldHVy
biBTVEFUVVNfU1VDQ0VTUzsNCj4gKw0KPiArZmFpbDk6DQo+ICsgICAgRXJyb3IoImZhaWw5XG4i
KTsNCj4gK2ZhaWw4Og0KPiArICAgIEVycm9yKCJmYWlsOFxuIik7DQo+ICsgICAgWEVOQlVTX0NB
Q0hFKERlc3Ryb3ksDQo+ICsgICAgICAgICAgICAgICAgICZSaW5nLT5DYWNoZUludGVyZmFjZSwN
Cj4gKyAgICAgICAgICAgICAgICAgKCpCbGtpZlJpbmcpLT5TZWdtZW50Q2FjaGUpOw0KPiArICAg
ICgqQmxraWZSaW5nKS0+U2VnbWVudENhY2hlID0gTlVMTDsNCj4gK2ZhaWw3Og0KPiArICAgIEVy
cm9yKCJmYWlsN1xuIik7DQo+ICtmYWlsNjoNCj4gKyAgICBFcnJvcigiZmFpbDZcbiIpOw0KPiAr
ICAgIFhFTkJVU19DQUNIRShEZXN0cm95LA0KPiArICAgICAgICAgICAgICAgICAmUmluZy0+Q2Fj
aGVJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICgqQmxraWZSaW5nKS0+UmVxdWVzdENh
Y2hlKTsNCj4gKyAgICAoKkJsa2lmUmluZyktPlJlcXVlc3RDYWNoZSA9IE5VTEw7DQo+ICtmYWls
NToNCj4gKyAgICBFcnJvcigiZmFpbDVcbiIpOw0KPiArZmFpbDQ6DQo+ICsgICAgRXJyb3IoImZh
aWw0XG4iKTsNCj4gKw0KPiArICAgIFJ0bFplcm9NZW1vcnkoJigqQmxraWZSaW5nKS0+RHBjLCBz
aXplb2YoS0RQQykpOw0KPiArDQo+ICsgICAgUnRsWmVyb01lbW9yeSgmKCpCbGtpZlJpbmcpLT5T
dGF0ZS5MaXN0LCBzaXplb2YoTElTVF9FTlRSWSkpOw0KPiArICAgIFJ0bFplcm9NZW1vcnkoJigq
QmxraWZSaW5nKS0+U3VibWl0dGVkTGlzdCwgc2l6ZW9mKExJU1RfRU5UUlkpKTsNCj4gKyAgICBS
dGxaZXJvTWVtb3J5KCYoKkJsa2lmUmluZyktPlNodXRkb3duUXVldWUsIHNpemVvZihMSVNUX0VO
VFJZKSk7DQo+ICsgICAgUnRsWmVyb01lbW9yeSgmKCpCbGtpZlJpbmcpLT5TcmJRdWV1ZSwgc2l6
ZW9mKExJU1RfRU5UUlkpKTsNCj4gKw0KPiArICAgIF9fUmluZ0ZyZWUoKCpCbGtpZlJpbmcpLT5Q
YXRoKTsNCj4gKyAgICAoKkJsa2lmUmluZyktPlBhdGg7DQo+ICsgICAgKCpCbGtpZlJpbmcpLT5J
bmRleCA9IDA7DQo+ICsgICAgKCpCbGtpZlJpbmcpLT5SaW5nID0gTlVMTDsNCj4gKw0KPiArICAg
IEFTU0VSVChJc1plcm9NZW1vcnkoKkJsa2lmUmluZywgc2l6ZW9mKFhFTlZCRF9CTEtJRl9SSU5H
KSkpOw0KPiArICAgIF9fUmluZ0ZyZWUoKkJsa2lmUmluZyk7DQo+ICsgICAgKkJsa2lmUmluZyA9
IE5VTEw7DQo+ICtmYWlsMzoNCj4gKyAgICBFcnJvcigiZmFpbDNcbiIpOw0KPiArZmFpbDI6DQo+
ICsgICAgRXJyb3IoImZhaWwyXG4iKTsNCj4gKyAgICBfX1JpbmdGcmVlKFBhdGgpOw0KPiArZmFp
bDE6DQo+ICsgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsNCj4gKyAgICByZXR1
cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gLXN0YXRpYyBERUNMU1BFQ19OT0lOTElORSBWT0lEDQo+
IC1SaW5nU2VnbWVudER0b3IoDQo+IC0gICAgSU4gIFBWT0lEICAgICAgIEFyZ3VtZW50LA0KPiAt
ICAgIElOICBQVk9JRCAgICAgICBPYmplY3QNCj4gK3N0YXRpYyBWT0lEDQo+ICtCbGtpZlJpbmdE
ZXN0cm95KA0KPiArICAgIElOICBQWEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lmUmluZw0KPiAgICAg
ICkNCj4gIHsNCj4gLSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKEFyZ3VtZW50KTsNCj4gLSAg
ICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKE9iamVjdCk7DQo+ICsgICAgUFhFTlZCRF9SSU5HICAg
ICAgICAgICAgUmluZyA9IEJsa2lmUmluZy0+UmluZzsNCj4gKw0KPiArICAgIFhFTkJVU19DQUNI
RShEZXN0cm95LA0KPiArICAgICAgICAgICAgICAgICAmUmluZy0+Q2FjaGVJbnRlcmZhY2UsDQo+
ICsgICAgICAgICAgICAgICAgIEJsa2lmUmluZy0+SW5kaXJlY3RDYWNoZSk7DQo+ICsgICAgQmxr
aWZSaW5nLT5JbmRpcmVjdENhY2hlID0gTlVMTDsNCj4gKw0KPiArICAgIFhFTkJVU19DQUNIRShE
ZXN0cm95LA0KPiArICAgICAgICAgICAgICAgICAmUmluZy0+Q2FjaGVJbnRlcmZhY2UsDQo+ICsg
ICAgICAgICAgICAgICAgIEJsa2lmUmluZy0+U2VnbWVudENhY2hlKTsNCj4gKyAgICBCbGtpZlJp
bmctPlNlZ21lbnRDYWNoZSA9IE5VTEw7DQo+ICsNCj4gKyAgICBYRU5CVVNfQ0FDSEUoRGVzdHJv
eSwNCj4gKyAgICAgICAgICAgICAgICAgJlJpbmctPkNhY2hlSW50ZXJmYWNlLA0KPiArICAgICAg
ICAgICAgICAgICBCbGtpZlJpbmctPlJlcXVlc3RDYWNoZSk7DQo+ICsgICAgQmxraWZSaW5nLT5S
ZXF1ZXN0Q2FjaGUgPSBOVUxMOw0KPiArDQo+ICsgICAgUnRsWmVyb01lbW9yeSgmQmxraWZSaW5n
LT5EcGMsIHNpemVvZihLRFBDKSk7DQo+ICsNCj4gKyAgICBBU1NFUlQzVShCbGtpZlJpbmctPlN0
YXRlLkNvdW50LCA9PSAsIDApOw0KPiArICAgIEFTU0VSVChJc0xpc3RFbXB0eSgmQmxraWZSaW5n
LT5TdGF0ZS5MaXN0KSk7DQo+ICsgICAgUnRsWmVyb01lbW9yeSgmQmxraWZSaW5nLT5TdGF0ZS5M
aXN0LCBzaXplb2YoTElTVF9FTlRSWSkpOw0KPiArDQo+ICsgICAgUnRsWmVyb01lbW9yeSgmQmxr
aWZSaW5nLT5TdWJtaXR0ZWRMaXN0LCBzaXplb2YoTElTVF9FTlRSWSkpOw0KPiArICAgIFJ0bFpl
cm9NZW1vcnkoJkJsa2lmUmluZy0+U3JiUXVldWUsIHNpemVvZihMSVNUX0VOVFJZKSk7DQo+ICsg
ICAgUnRsWmVyb01lbW9yeSgmQmxraWZSaW5nLT5TaHV0ZG93blF1ZXVlLCBzaXplb2YoTElTVF9F
TlRSWSkpOw0KPiArDQo+ICsgICAgX19SaW5nRnJlZShCbGtpZlJpbmctPlBhdGgpOw0KPiArICAg
IEJsa2lmUmluZy0+UGF0aDsNCj4gKyAgICBCbGtpZlJpbmctPkluZGV4ID0gMDsNCj4gKyAgICBC
bGtpZlJpbmctPlJpbmcgPSBOVUxMOw0KPiArDQo+ICsgICAgQVNTRVJUKElzWmVyb01lbW9yeShC
bGtpZlJpbmcsIHNpemVvZihYRU5WQkRfQkxLSUZfUklORykpKTsNCj4gKyAgICBfX1JpbmdGcmVl
KEJsa2lmUmluZyk7DQo+ICB9DQo+IA0KPiAtc3RhdGljIERFQ0xTUEVDX05PSU5MSU5FIE5UU1RB
VFVTDQo+IC1SaW5nSW5kaXJlY3RDdG9yKA0KPiAtICAgIElOICBQVk9JRCAgICAgICAgICAgQXJn
dW1lbnQsDQo+IC0gICAgSU4gIFBWT0lEICAgICAgICAgICBPYmplY3QNCj4gK3N0YXRpYyBOVFNU
QVRVUw0KPiArQmxraWZSaW5nQ29ubmVjdCgNCj4gKyAgICBJTiAgUFhFTlZCRF9CTEtJRl9SSU5H
ICBCbGtpZlJpbmcNCj4gICAgICApDQo+ICB7DQo+IC0gICAgUFhFTlZCRF9JTkRJUkVDVCAgICBJ
bmRpcmVjdCA9IE9iamVjdDsNCj4gLSAgICBOVFNUQVRVUyAgICAgICAgICAgIHN0YXR1czsNCj4g
KyAgICBQWEVOVkJEX1JJTkcgICAgICAgICAgICBSaW5nID0gQmxraWZSaW5nLT5SaW5nOw0KPiAr
ICAgIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kID0gUmluZy0+RnJvbnRlbmQ7DQo+
ICsgICAgUFhFTlZCRF9HUkFOVEVSICAgICAgICAgR3JhbnRlciA9IEZyb250ZW5kR2V0R3JhbnRl
cihGcm9udGVuZCk7DQo+ICsgICAgQ0hBUiAgICAgICAgICAgICAgICAgICAgTmFtZVtNQVhfTkFN
RV9MRU5dOw0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiArICAgIE5U
U1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsNCj4gDQo+IC0gICAgVU5SRUZFUkVOQ0VEX1BB
UkFNRVRFUihBcmd1bWVudCk7DQo+ICsgICAgVHJhY2UoIj09PT0+ICV1XG4iLCBCbGtpZlJpbmct
PkluZGV4KTsNCj4gKyAgICBBU1NFUlQoIUJsa2lmUmluZy0+Q29ubmVjdGVkKTsNCj4gKw0KPiAr
ICAgIGlmIChGcm9udGVuZEdldE51bVF1ZXVlcyhGcm9udGVuZCkgIT0gMSkgew0KPiArICAgICAg
ICBQUk9DRVNTT1JfTlVNQkVSICAgIFByb2NOdW1iZXI7DQo+ICsNCj4gKyAgICAgICAgc3RhdHVz
ID0gS2VHZXRQcm9jZXNzb3JOdW1iZXJGcm9tSW5kZXgoQmxraWZSaW5nLT5JbmRleCwNCj4gJlBy
b2NOdW1iZXIpOw0KPiArICAgICAgICBBU1NFUlQoTlRfU1VDQ0VTUyhzdGF0dXMpKTsNCj4gKw0K
PiArICAgICAgICBLZVNldFRhcmdldFByb2Nlc3NvckRwY0V4KCZCbGtpZlJpbmctPkRwYywgJlBy
b2NOdW1iZXIpOw0KPiArICAgIH0NCj4gKyAgICBLZVNldEltcG9ydGFuY2VEcGMoJkJsa2lmUmlu
Zy0+RHBjLCBNZWRpdW1IaWdoSW1wb3J0YW5jZSk7DQo+ICsNCj4gKyAgICBCbGtpZlJpbmctPk1k
bCA9IF9fQWxsb2NhdGVQYWdlcygxIDw8IFJpbmctPk9yZGVyKTsNCj4gDQo+ICAgICAgc3RhdHVz
ID0gU1RBVFVTX05PX01FTU9SWTsNCj4gLSAgICBJbmRpcmVjdC0+TWRsID0gX19BbGxvY2F0ZVBh
Z2UoKTsNCj4gLSAgICBpZiAoSW5kaXJlY3QtPk1kbCA9PSBOVUxMKQ0KPiArICAgIGlmIChCbGtp
ZlJpbmctPk1kbCA9PSBOVUxMKQ0KPiAgICAgICAgICBnb3RvIGZhaWwxOw0KPiANCj4gLSAgICBJ
bmRpcmVjdC0+UGFnZSA9IE1tR2V0U3lzdGVtQWRkcmVzc0Zvck1kbFNhZmUoSW5kaXJlY3QtPk1k
bCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Tm9ybWFsUGFnZVByaW9yaXR5KTsNCj4gLSAgICBBU1NFUlQoSW5kaXJlY3QtPlBhZ2UpOw0KPiAr
ICAgIEJsa2lmUmluZy0+U2hhcmVkID0gTW1HZXRTeXN0ZW1BZGRyZXNzRm9yTWRsU2FmZShCbGtp
ZlJpbmctPk1kbCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTm9ybWFsUGFnZVByaW9yaXR5KTsNCj4gKyAgICBBU1NFUlQoQmxraWZSaW5n
LT5TaGFyZWQgIT0gTlVMTCk7DQo+ICsNCj4gKyNwcmFnbWEgd2FybmluZyhwdXNoKQ0KPiArI3By
YWdtYSB3YXJuaW5nKGRpc2FibGU6IDQzMDUpDQo+ICsjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTog
NDMxMSkgLy8gJ3R5cGUgY2FzdCcgcG9pbnRlciB0cnVuY2F0aW9uIGZyb20NCj4gJ2Jsa2lmX3Ny
aW5nX2VudHJ5WzFdJyB0byAnbG9uZycNCj4gKyAgICBTSEFSRURfUklOR19JTklUKEJsa2lmUmlu
Zy0+U2hhcmVkKTsNCj4gKyAgICBGUk9OVF9SSU5HX0lOSVQoJkJsa2lmUmluZy0+RnJvbnQsIEJs
a2lmUmluZy0+U2hhcmVkLCBQQUdFX1NJWkUgPDwNCj4gUmluZy0+T3JkZXIpOw0KPiArI3ByYWdt
YSB3YXJuaW5nKHBvcCkNCj4gKw0KPiArICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8ICgxdWwg
PDwgUmluZy0+T3JkZXIpOyArK0luZGV4KSB7DQo+ICsgICAgICAgIHN0YXR1cyA9IEdyYW50ZXJH
ZXQoR3JhbnRlciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNbUdldE1kbFBmbkFy
cmF5KEJsa2lmUmluZy0+TWRsKVtJbmRleF0sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRkFMU0UsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkJsa2lmUmluZy0+R3Jh
bnRzW0luZGV4XSk7DQo+ICsgICAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiArICAg
ICAgICAgICAgZ290byBmYWlsMjsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBCbGtpZlJpbmctPkNo
YW5uZWwgPSBYRU5CVVNfRVZUQ0hOKE9wZW4sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmUmluZy0+RXZ0Y2huSW50ZXJmYWNlLA0KPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWEVOQlVTX0VWVENITl9UWVBFX1VOQk9VTkQsDQo+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCbGtpZlJpbmdJbnRlcnJ1cHQs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCbGtpZlJpbmcsDQo+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZEdldEJhY2tl
bmREb21haW4oUmluZy0+RnJvbnRlbmQpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVFJVRSk7DQo+ICsgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsNCj4g
KyAgICBpZiAoQmxraWZSaW5nLT5DaGFubmVsID09IE5VTEwpDQo+ICsgICAgICAgIGdvdG8gZmFp
bDM7DQo+ICsNCj4gKyAgICBYRU5CVVNfRVZUQ0hOKFVubWFzaywNCj4gKyAgICAgICAgICAgICAg
ICAgICZSaW5nLT5FdnRjaG5JbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICBCbGtpZlJp
bmctPkNoYW5uZWwsDQo+ICsgICAgICAgICAgICAgICAgICBGQUxTRSk7DQo+ICsNCj4gKyAgICBz
dGF0dXMgPSBSdGxTdHJpbmdDY2hQcmludGZBKE5hbWUsDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBNQVhfTkFNRV9MRU4sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfX01PRFVMRV9fInxSSU5HWyV1XSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBJbmRleCk7DQo+ICsgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICsg
ICAgICAgIGdvdG8gZmFpbDQ7DQo+ICsNCj4gKyAgICBzdGF0dXMgPSBYRU5CVVNfREVCVUcoUmVn
aXN0ZXIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICZSaW5nLT5EZWJ1Z0ludGVyZmFj
ZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSwNCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgQmxraWZSaW5nRGVidWdDYWxsYmFjaywNCj4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgQmxraWZSaW5nLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAmQmxraWZS
aW5nLT5EZWJ1Z0NhbGxiYWNrKTsNCj4gKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4g
KyAgICAgICAgZ290byBmYWlsNTsNCj4gKw0KPiArICAgIEJsa2lmUmluZy0+Q29ubmVjdGVkID0g
VFJVRTsNCj4gKyAgICBUcmFjZSgiPD09PT0gJXVcbiIsIEJsa2lmUmluZy0+SW5kZXgpOw0KPiAN
Cj4gICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+IA0KPiArZmFpbDU6DQo+ICsgICAgRXJy
b3IoImZhaWw1XG4iKTsNCj4gK2ZhaWw0Og0KPiArICAgIEVycm9yKCJmYWlsNFxuIik7DQo+ICsg
ICAgWEVOQlVTX0VWVENITihDbG9zZSwNCj4gKyAgICAgICAgICAgICAgICAgICZSaW5nLT5FdnRj
aG5JbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICBCbGtpZlJpbmctPkNoYW5uZWwpOw0K
PiArICAgIEJsa2lmUmluZy0+Q2hhbm5lbCA9IE5VTEw7DQo+ICtmYWlsMzoNCj4gKyAgICBFcnJv
cigiZmFpbDNcbiIpOw0KPiArZmFpbDI6DQo+ICsgICAgRXJyb3IoImZhaWwyXG4iKTsNCj4gKyAg
ICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCAoMXVsIDw8IFJpbmctPk9yZGVyKTsgKytJbmRleCkg
ew0KPiArICAgICAgICBpZiAoQmxraWZSaW5nLT5HcmFudHNbSW5kZXhdID09IE5VTEwpDQo+ICsg
ICAgICAgICAgICBjb250aW51ZTsNCj4gKw0KPiArICAgICAgICBHcmFudGVyUHV0KEdyYW50ZXIs
IEJsa2lmUmluZy0+R3JhbnRzW0luZGV4XSk7DQo+ICsgICAgICAgIEJsa2lmUmluZy0+R3JhbnRz
W0luZGV4XSA9IE5VTEw7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgUnRsWmVyb01lbW9yeSgmQmxr
aWZSaW5nLT5Gcm9udCwgc2l6ZW9mKGJsa2lmX2Zyb250X3JpbmdfdCkpOw0KPiArDQo+ICsgICAg
X19GcmVlUGFnZXMoQmxraWZSaW5nLT5NZGwpOw0KPiArICAgIEJsa2lmUmluZy0+U2hhcmVkID0g
TlVMTDsNCj4gKyAgICBCbGtpZlJpbmctPk1kbCA9IE5VTEw7DQo+ICBmYWlsMToNCj4gICAgICBF
cnJvcigiZmFpbDEgJTA4eFxuIiwgc3RhdHVzKTsNCj4gICAgICByZXR1cm4gc3RhdHVzOw0KPiAg
fQ0KPiANCj4gK3N0YXRpYyBOVFNUQVRVUw0KPiArQmxraWZSaW5nU3RvcmVXcml0ZSgNCj4gKyAg
ICBJTiAgUFhFTlZCRF9CTEtJRl9SSU5HICBCbGtpZlJpbmcsDQo+ICsgICAgSU4gIFBWT0lEICAg
ICAgICAgICAgICAgVHJhbnNhY3Rpb24NCj4gKyAgICApDQo+ICt7DQo+ICsgICAgUFhFTlZCRF9S
SU5HICAgICAgICAgICAgUmluZyA9IEJsa2lmUmluZy0+UmluZzsNCj4gKyAgICBQWEVOVkJEX0ZS
T05URU5EICAgICAgICBGcm9udGVuZCA9IFJpbmctPkZyb250ZW5kOw0KPiArICAgIFBYRU5WQkRf
R1JBTlRFUiAgICAgICAgIEdyYW50ZXIgPSBGcm9udGVuZEdldEdyYW50ZXIoRnJvbnRlbmQpOw0K
PiArICAgIFBDSEFSICAgICAgICAgICAgICAgICAgIFBhdGg7DQo+ICsgICAgTlRTVEFUVVMgICAg
ICAgICAgICAgICAgc3RhdHVzOw0KPiArDQo+ICsgICAgUGF0aCA9IChGcm9udGVuZEdldE51bVF1
ZXVlcyhGcm9udGVuZCkgPT0gMSkgPw0KPiArICAgICAgICBGcm9udGVuZEdldEZyb250ZW5kUGF0
aChGcm9udGVuZCkgOg0KPiArICAgICAgICBCbGtpZlJpbmctPlBhdGg7DQo+ICsNCj4gKyAgICBz
dGF0dXMgPSBYRU5CVVNfU1RPUkUoUHJpbnRmLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAmUmluZy0+U3RvcmVJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFRy
YW5zYWN0aW9uLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBQYXRoLA0KPiArICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZXZlbnQtY2hhbm5lbCIsDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICIldSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTkJVU19FVlRD
SE4oR2V0UG9ydCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
UmluZy0+RXZ0Y2huSW50ZXJmYWNlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEJsa2lmUmluZy0+Q2hhbm5lbCkpOw0KPiArICAgIGlmICghTlRfU1VDQ0VTUyhz
dGF0dXMpKQ0KPiArICAgICAgICBnb3RvIGZhaWwxOw0KPiArDQo+ICsgICAgaWYgKFJpbmctPk9y
ZGVyID09IDApIHsNCj4gKyAgICAgICAgc3RhdHVzID0gWEVOQlVTX1NUT1JFKFByaW50ZiwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZSaW5nLT5TdG9yZUludGVyZmFjZSwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zYWN0aW9uLA0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUGF0aCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJyaW5nLXJlZiIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXUiLA0K
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhbnRlclJlZmVyZW5jZShHcmFudGVy
LCBCbGtpZlJpbmctPkdyYW50c1swXSkpOw0KPiArICAgICAgICBpZiAoIU5UX1NVQ0NFU1Moc3Rh
dHVzKSkNCj4gKyAgICAgICAgICAgIGdvdG8gZmFpbDI7DQo+ICsgICAgfSBlbHNlIHsNCj4gKyAg
ICAgICAgVUxPTkcgICAgICAgICAgIEluZGV4Ow0KPiArDQo+ICsgICAgICAgIGZvciAoSW5kZXgg
PSAwOyBJbmRleCA8ICgxdWwgPDwgUmluZy0+T3JkZXIpOyArK0luZGV4KSB7DQo+ICsgICAgICAg
ICAgICBDSEFSICAgICAgICBOYW1lW01BWF9OQU1FX0xFTiArIDFdOw0KPiArDQo+ICsgICAgICAg
ICAgICBzdGF0dXMgPSBSdGxTdHJpbmdDY2hQcmludGZBKE5hbWUsDQo+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9OQU1FX0xFTiwNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJpbmctcmVmJXUiLA0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCk7DQo+ICsgICAgICAgICAgICBp
ZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gKyAgICAgICAgICAgICAgICBnb3RvIGZhaWwzOw0K
PiArDQo+ICsgICAgICAgICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUHJpbnRmLA0KPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZSaW5nLT5TdG9yZUludGVyZmFjZSwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2FjdGlvbiwNCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXRoLA0KPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5hbWUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIiV1IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFudGVyUmVm
ZXJlbmNlKEdyYW50ZXIsIEJsa2lmUmluZy0+R3JhbnRzW0luZGV4XSkpOw0KPiArICAgICAgICAg
ICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICsgICAgICAgICAgICAgICAgZ290byBmYWls
NDsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4gKw0KPiArICAgIHJldHVybiBTVEFUVVNfU1VD
Q0VTUzsNCj4gKw0KPiArZmFpbDQ6DQo+ICtmYWlsMzoNCj4gK2ZhaWwyOg0KPiArZmFpbDE6DQo+
ICsgICAgcmV0dXJuIHN0YXR1czsNCj4gK30NCj4gKw0KPiArc3RhdGljIFZPSUQNCj4gK0Jsa2lm
UmluZ0VuYWJsZSgNCj4gKyAgICBJTiAgUFhFTlZCRF9CTEtJRl9SSU5HICBCbGtpZlJpbmcNCj4g
KyAgICApDQo+ICt7DQo+ICsgICAgVHJhY2UoIj09PT0+ICV1XG4iLCBCbGtpZlJpbmctPkluZGV4
KTsNCj4gKw0KPiArICAgIF9fQmxraWZSaW5nQWNxdWlyZUxvY2soQmxraWZSaW5nKTsNCj4gKyAg
ICBBU1NFUlQoIUJsa2lmUmluZy0+RW5hYmxlZCk7DQo+ICsgICAgQmxraWZSaW5nLT5FbmFibGVk
ID0gVFJVRTsNCj4gKyAgICBfX0Jsa2lmUmluZ1JlbGVhc2VMb2NrKEJsa2lmUmluZyk7DQo+ICsN
Cj4gKyAgICBUcmFjZSgiPD09PT0gJXVcbiIsIEJsa2lmUmluZy0+SW5kZXgpOw0KPiArfQ0KPiAr
DQo+ICtzdGF0aWMgVk9JRA0KPiArQmxraWZSaW5nRGlzYWJsZSgNCj4gKyAgICBJTiAgUFhFTlZC
RF9CTEtJRl9SSU5HICBCbGtpZlJpbmcNCj4gKyAgICApDQo+ICt7DQo+ICsgICAgUFhFTlZCRF9S
SU5HICAgICAgICAgICAgUmluZyA9IEJsa2lmUmluZy0+UmluZzsNCj4gKyAgICBVTE9ORyAgICAg
ICAgICAgICAgICAgICBBdHRlbXB0Ow0KPiArDQo+ICsgICAgVHJhY2UoIj09PT0+ICV1XG4iLCBC
bGtpZlJpbmctPkluZGV4KTsNCj4gKw0KPiArICAgIF9fQmxraWZSaW5nQWNxdWlyZUxvY2soQmxr
aWZSaW5nKTsNCj4gKyAgICBBU1NFUlQoQmxraWZSaW5nLT5FbmFibGVkKTsNCj4gKw0KPiArICAg
IC8vIERpc2NhcmQgYW55IHBlbmRpbmcgcmVxdWVzdHMNCj4gKyAgICB3aGlsZSAoIUlzTGlzdEVt
cHR5KCZCbGtpZlJpbmctPlN0YXRlLkxpc3QpKSB7DQo+ICsgICAgICAgIFBMSVNUX0VOVFJZICAg
ICAgICAgTGlzdEVudHJ5Ow0KPiArICAgICAgICBQWEVOVkJEX1JFUVVFU1QgICAgIFJlcXVlc3Q7
DQo+ICsgICAgICAgIFBYRU5WQkRfU1JCRVhUICAgICAgU3JiRXh0Ow0KPiArICAgICAgICBQU0NT
SV9SRVFVRVNUX0JMT0NLIFNyYjsNCj4gKw0KPiArICAgICAgICBMaXN0RW50cnkgPSBSZW1vdmVI
ZWFkTGlzdCgmQmxraWZSaW5nLT5TdGF0ZS5MaXN0KTsNCj4gKyAgICAgICAgQVNTRVJUM1AoTGlz
dEVudHJ5LCAhPSAsICZCbGtpZlJpbmctPlN0YXRlLkxpc3QpOw0KPiArDQo+ICsgICAgICAgIFJl
cXVlc3QgPSBDT05UQUlOSU5HX1JFQ09SRChMaXN0RW50cnksDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBYRU5WQkRfUkVRVUVTVCwNCj4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExpc3RFbnRyeSk7DQo+ICsgICAgICAgIFNyYkV4dCA9IFJlcXVl
c3QtPlNyYkV4dDsNCj4gKyAgICAgICAgU3JiID0gU3JiRXh0LT5TcmI7DQo+ICsgICAgICAgIFNy
Yi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19BQk9SVEVEOw0KPiArICAgICAgICBTcmItPlNjc2lT
dGF0dXMgPSAweDQwOyAvLyBTQ1NJX0FCT1JURUQNCj4gKw0KPiArICAgICAgICBCbGtpZlJpbmdQ
dXRSZXF1ZXN0KEJsa2lmUmluZywgUmVxdWVzdCk7DQo+ICsNCj4gKyAgICAgICAgaWYgKEludGVy
bG9ja2VkRGVjcmVtZW50KCZTcmJFeHQtPlJlcXVlc3RDb3VudCkgPT0gMCkNCj4gKyAgICAgICAg
ICAgIF9fQmxraWZSaW5nQ29tcGxldGVTcmIoQmxraWZSaW5nLCBTcmJFeHQpOw0KPiArICAgIH0N
Cj4gKw0KPiArICAgIEFTU0VSVDNVKEJsa2lmUmluZy0+U3RhdGUuQ291bnQsID09ICwgMCk7DQo+
ICsNCj4gKyAgICBBdHRlbXB0ID0gMDsNCj4gKyAgICBBU1NFUlQzVShCbGtpZlJpbmctPlJlcXVl
c3RzUHVzaGVkLCA9PSAsIEJsa2lmUmluZy0+UmVxdWVzdHNQb3N0ZWQpOw0KPiArICAgIHdoaWxl
IChCbGtpZlJpbmctPlJlc3BvbnNlc1Byb2Nlc3NlZCAhPSBCbGtpZlJpbmctPlJlcXVlc3RzUHVz
aGVkKSB7DQo+ICsgICAgICAgIEF0dGVtcHQrKzsNCj4gKyAgICAgICAgQVNTRVJUKEF0dGVtcHQg
PCAxMDApOw0KPiArDQo+ICsgICAgICAgIC8vIFRyeSB0byBtb3ZlIHRoaW5ncyBhbG9uZw0KPiAr
ICAgICAgICBfX0Jsa2lmUmluZ1NlbmQoQmxraWZSaW5nKTsNCj4gKyAgICAgICAgKFZPSUQpQmxr
aWZSaW5nUG9sbChCbGtpZlJpbmcpOw0KPiArDQo+ICsgICAgICAgIC8vIFdlIGFyZSB3YWl0aW5n
IGZvciBhIHdhdGNoIGV2ZW50IGF0IERJU1BBVENIX0xFVkVMIHNvDQo+ICsgICAgICAgIC8vIGl0
IGlzIG91ciByZXNwb25zaWJpbGl0eSB0byBwb2xsIHRoZSBzdG9yZSByaW5nLg0KPiArICAgICAg
ICBYRU5CVVNfU1RPUkUoUG9sbCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICZSaW5nLT5TdG9y
ZUludGVyZmFjZSk7DQo+ICsNCj4gKyAgICAgICAgS2VTdGFsbEV4ZWN1dGlvblByb2Nlc3Nvcigx
MDAwKTsgICAgLy8gMW1zDQo+ICsgICAgfQ0KPiArDQo+ICsgICAgQmxraWZSaW5nLT5FbmFibGVk
ID0gRkFMU0U7DQo+ICsgICAgX19CbGtpZlJpbmdSZWxlYXNlTG9jayhCbGtpZlJpbmcpOw0KPiAr
DQo+ICsgICAgVHJhY2UoIjw9PT09ICV1XG4iLCBCbGtpZlJpbmctPkluZGV4KTsNCj4gK30NCj4g
Kw0KPiArc3RhdGljIFZPSUQNCj4gK0Jsa2lmUmluZ0Rpc2Nvbm5lY3QoDQo+ICsgICAgSU4gIFBY
RU5WQkRfQkxLSUZfUklORyAgQmxraWZSaW5nDQo+ICsgICAgKQ0KPiArew0KPiArICAgIFBYRU5W
QkRfUklORyAgICAgICAgICAgIFJpbmcgPSBCbGtpZlJpbmctPlJpbmc7DQo+ICsgICAgUFhFTlZC
RF9HUkFOVEVSICAgICAgICAgR3JhbnRlciA9IEZyb250ZW5kR2V0R3JhbnRlcihSaW5nLQ0KPiA+
RnJvbnRlbmQpOw0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiArDQo+
ICsgICAgVHJhY2UoIj09PT0+ICV1XG4iLCBCbGtpZlJpbmctPkluZGV4KTsNCj4gKyAgICBBU1NF
UlQoQmxraWZSaW5nLT5Db25uZWN0ZWQpOw0KPiArDQo+ICsgICAgWEVOQlVTX0RFQlVHKERlcmVn
aXN0ZXIsDQo+ICsgICAgICAgICAgICAgICAgICZSaW5nLT5EZWJ1Z0ludGVyZmFjZSwNCj4gKyAg
ICAgICAgICAgICAgICAgQmxraWZSaW5nLT5EZWJ1Z0NhbGxiYWNrKTsNCj4gKyAgICBCbGtpZlJp
bmctPkRlYnVnQ2FsbGJhY2sgPSBOVUxMOw0KPiArDQo+ICsgICAgWEVOQlVTX0VWVENITihDbG9z
ZSwNCj4gKyAgICAgICAgICAgICAgICAgICZSaW5nLT5FdnRjaG5JbnRlcmZhY2UsDQo+ICsgICAg
ICAgICAgICAgICAgICBCbGtpZlJpbmctPkNoYW5uZWwpOw0KPiArICAgIEJsa2lmUmluZy0+Q2hh
bm5lbCA9IE5VTEw7DQo+ICsNCj4gKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCAoMXVsIDw8
IFJpbmctPk9yZGVyKTsgKytJbmRleCkgew0KPiArICAgICAgICBpZiAoQmxraWZSaW5nLT5HcmFu
dHNbSW5kZXhdID09IE5VTEwpDQo+ICsgICAgICAgICAgICBjb250aW51ZTsNCj4gKw0KPiArICAg
ICAgICBHcmFudGVyUHV0KEdyYW50ZXIsIEJsa2lmUmluZy0+R3JhbnRzW0luZGV4XSk7DQo+ICsg
ICAgICAgIEJsa2lmUmluZy0+R3JhbnRzW0luZGV4XSA9IE5VTEw7DQo+ICsgICAgfQ0KPiArDQo+
ICsgICAgUnRsWmVyb01lbW9yeSgmQmxraWZSaW5nLT5Gcm9udCwgc2l6ZW9mKGJsa2lmX2Zyb250
X3JpbmdfdCkpOw0KPiArDQo+ICsgICAgX19GcmVlUGFnZXMoQmxraWZSaW5nLT5NZGwpOw0KPiAr
ICAgIEJsa2lmUmluZy0+U2hhcmVkID0gTlVMTDsNCj4gKyAgICBCbGtpZlJpbmctPk1kbCA9IE5V
TEw7DQo+ICsNCj4gKyAgICBCbGtpZlJpbmctPkV2ZW50cyA9IDA7DQo+ICsgICAgQmxraWZSaW5n
LT5EcGNzID0gMDsNCj4gKyAgICBCbGtpZlJpbmctPlJlcXVlc3RzUG9zdGVkID0gMDsNCj4gKyAg
ICBCbGtpZlJpbmctPlJlcXVlc3RzUHVzaGVkID0gMDsNCj4gKyAgICBCbGtpZlJpbmctPlJlc3Bv
bnNlc1Byb2Nlc3NlZCA9IDA7DQo+ICsNCj4gKyAgICBCbGtpZlJpbmctPkNvbm5lY3RlZCA9IEZB
TFNFOw0KPiArDQo+ICsgICAgVHJhY2UoIjw9PT09ICV1XG4iLCBCbGtpZlJpbmctPkluZGV4KTsN
Cj4gK30NCj4gKw0KPiArc3RhdGljIFZPSUQNCj4gK19fQmxraWZSaW5nUXVldWVTcmIoDQo+ICsg
ICAgSU4gIFBYRU5WQkRfQkxLSUZfUklORyAgQmxraWZSaW5nLA0KPiArICAgIElOICBQWEVOVkJE
X1NSQkVYVCAgICAgIFNyYkV4dA0KPiArICAgICkNCj4gK3sNCj4gKyAgICBQTElTVF9FTlRSWSAg
ICAgICAgICAgICBMaXN0RW50cnk7DQo+ICsgICAgVUxPTkdfUFRSICAgICAgICAgICAgICAgT2xk
Ow0KPiArICAgIFVMT05HX1BUUiAgICAgICAgICAgICAgIExvY2tCaXQ7DQo+ICsgICAgVUxPTkdf
UFRSICAgICAgICAgICAgICAgTmV3Ow0KPiArDQo+ICsgICAgTGlzdEVudHJ5ID0gJlNyYkV4dC0+
TGlzdEVudHJ5Ow0KPiArDQo+ICsgICAgZG8gew0KPiArICAgICAgICBPbGQgPSAoVUxPTkdfUFRS
KUJsa2lmUmluZy0+TG9jazsNCj4gKyAgICAgICAgTG9ja0JpdCA9IE9sZCAmIFhFTlZCRF9MT0NL
X0JJVDsNCj4gKw0KPiArICAgICAgICBMaXN0RW50cnktPkJsaW5rID0gKFBWT0lEKShPbGQgJiB+
WEVOVkJEX0xPQ0tfQklUKTsNCj4gKyAgICAgICAgTmV3ID0gKFVMT05HX1BUUilMaXN0RW50cnk7
DQo+ICsgICAgICAgIEFTU0VSVCgoTmV3ICYgWEVOVkJEX0xPQ0tfQklUKSA9PSAwKTsNCj4gKyAg
ICAgICAgTmV3IHw9IExvY2tCaXQ7DQo+ICsgICAgfSB3aGlsZSAoKFVMT05HX1BUUilJbnRlcmxv
Y2tlZENvbXBhcmVFeGNoYW5nZVBvaW50ZXIoJkJsa2lmUmluZy0NCj4gPkxvY2ssIChQVk9JRClO
ZXcsIChQVk9JRClPbGQpICE9IE9sZCk7DQo+ICsNCj4gKyAgICAvLyBfX0Jsa2lmUmluZ1JlbGVh
c2VMb2NrKCkgZHJhaW5zIHRoZSBhdG9taWMgU1JCIGxpc3QgaW50byB0aGUgcXVldWUNCj4gdGhl
cmVmb3JlLA0KPiArICAgIC8vIGFmdGVyIGFkZGluZyB0byB0aGUgbGlzdCB3ZSBuZWVkIHRvIGF0
dGVtcHQgdG8gZ3JhYiBhbmQgcmVsZWFzZSB0aGUgbG9jay4NCj4gSWYgd2UgY2FuJ3QNCj4gKyAg
ICAvLyBncmFiIGl0IHRoZW4gdGhhdCdzIG9rIGJlY2F1c2Ugd2hpY2hldmVyIHRocmVhZCBpcyBo
b2xkaW5nIGl0IHdpbGwgaGF2ZSB0bw0KPiBjYWxsDQo+ICsgICAgLy8gX19CbGtpZlJpbmdSZWxl
YXNlTG9jaygpIGFuZCB3aWxsIHRoZXJlZm9yZSBkcmFpbiB0aGUgYXRvbWljIHBhY2tldCBsaXN0
Lg0KPiArDQo+ICsgICAgaWYgKF9fQmxraWZSaW5nVHJ5QWNxdWlyZUxvY2soQmxraWZSaW5nKSkN
Cj4gKyAgICAgICAgX19CbGtpZlJpbmdSZWxlYXNlTG9jayhCbGtpZlJpbmcpOw0KPiArfQ0KPiAr
DQo+ICtzdGF0aWMgVk9JRA0KPiArX19CbGtpZlJpbmdRdWV1ZVNodXRkb3duKA0KPiArICAgIElO
ICBQWEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lmUmluZywNCj4gKyAgICBJTiAgUFhFTlZCRF9TUkJF
WFQgICAgICBTcmJFeHQNCj4gKyAgICApDQo+ICt7DQo+ICsgICAgX19CbGtpZlJpbmdBY3F1aXJl
TG9jayhCbGtpZlJpbmcpOw0KPiArICAgIEluc2VydFRhaWxMaXN0KCZCbGtpZlJpbmctPlNodXRk
b3duUXVldWUsICZTcmJFeHQtPkxpc3RFbnRyeSk7DQo+ICsgICAgX19CbGtpZlJpbmdSZWxlYXNl
TG9jayhCbGtpZlJpbmcpOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUg
Vk9JRA0KPiAtUmluZ0luZGlyZWN0RHRvcigNCj4gK1JpbmdEZWJ1Z0NhbGxiYWNrKA0KPiAgICAg
IElOICBQVk9JRCAgICAgICBBcmd1bWVudCwNCj4gLSAgICBJTiAgUFZPSUQgICAgICAgT2JqZWN0
DQo+ICsgICAgSU4gIEJPT0xFQU4gICAgIENyYXNoaW5nDQo+ICAgICAgKQ0KPiAgew0KPiAtICAg
IFBYRU5WQkRfSU5ESVJFQ1QgICAgSW5kaXJlY3QgPSBPYmplY3Q7DQo+ICsgICAgUFhFTlZCRF9S
SU5HICAgIFJpbmcgPSBBcmd1bWVudDsNCj4gKyAgICBYRU5WQkRfU1RBVCAgICAgSW5kZXg7DQo+
IA0KPiAtICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoQXJndW1lbnQpOw0KPiArICAgIFVOUkVG
RVJFTkNFRF9QQVJBTUVURVIoQ3Jhc2hpbmcpOw0KPiANCj4gLSAgICBfX0ZyZWVQYWdlcyhJbmRp
cmVjdC0+TWRsKTsNCj4gLSAgICBJbmRpcmVjdC0+UGFnZSA9IE5VTEw7DQo+IC0gICAgSW5kaXJl
Y3QtPk1kbCA9IE5VTEw7DQo+ICsgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gKyAgICAgICAg
ICAgICAgICAgJlJpbmctPkRlYnVnSW50ZXJmYWNlLA0KPiArICAgICAgICAgICAgICAgICAiT3Jk
ZXI6ICVkXG4iLA0KPiArICAgICAgICAgICAgICAgICBSaW5nLT5PcmRlcik7DQo+ICsNCj4gKyAg
ICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBYRU5WQkRfU1RBVF9fTUFYOyArK0luZGV4KSB7DQo+
ICsgICAgICAgIFhFTkJVU19ERUJVRyhQcmludGYsDQo+ICsgICAgICAgICAgICAgICAgICAgICAm
UmluZy0+RGVidWdJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICAgICAiJXM6ICV1XG4i
LA0KPiArICAgICAgICAgICAgICAgICAgICAgX19TdGF0TmFtZShJbmRleCksDQo+ICsgICAgICAg
ICAgICAgICAgICAgICBSaW5nLT5TdGF0c1tJbmRleF0pOw0KPiArICAgIH0NCj4gIH0NCj4gDQo+
ICBOVFNUQVRVUw0KPiBAQCAtMTQ5Myw3ICsyMjQ4LDggQEAgUmluZ0NyZWF0ZSgNCj4gIHsNCj4g
ICAgICBQWEVOVkJEX1RBUkdFVCAgICAgICAgICBUYXJnZXQgPSBGcm9udGVuZEdldFRhcmdldChG
cm9udGVuZCk7DQo+ICAgICAgUFhFTlZCRF9BREFQVEVSICAgICAgICAgQWRhcHRlciA9IFRhcmdl
dEdldEFkYXB0ZXIoVGFyZ2V0KTsNCj4gLSAgICBDSEFSICAgICAgICAgICAgICAgICAgICBOYW1l
W01BWF9OQU1FX0xFTl07DQo+ICsgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgTWF4UXVldWVz
Ow0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiAgICAgIE5UU1RBVFVT
ICAgICAgICAgICAgICAgIHN0YXR1czsNCj4gDQo+ICAgICAgKlJpbmcgPSBfX1JpbmdBbGxvY2F0
ZShzaXplb2YoWEVOVkJEX1JJTkcpKTsNCj4gQEAgLTE1MDIsMTI3ICsyMjU4LDc0IEBAIFJpbmdD
cmVhdGUoDQo+ICAgICAgaWYgKCpSaW5nID09IE5VTEwpDQo+ICAgICAgICAgIGdvdG8gZmFpbDE7
DQo+IA0KPiAtICAgICgqUmluZyktPkZyb250ZW5kID0gRnJvbnRlbmQ7DQo+IC0gICAgS2VJbml0
aWFsaXplU3BpbkxvY2soJigqUmluZyktPkxvY2spOw0KPiAtICAgIEtlSW5pdGlhbGl6ZVRocmVh
ZGVkRHBjKCYoKlJpbmcpLT5EcGMsIFJpbmdEcGMsICpSaW5nKTsNCj4gLSAgICBLZVNldEltcG9y
dGFuY2VEcGMoJigqUmluZyktPkRwYywgTWVkaXVtSGlnaEltcG9ydGFuY2UpOw0KPiAtDQo+IC0g
ICAgUXVldWVJbml0KCYoKlJpbmcpLT5QcmVwYXJlZFJlcXMpOw0KPiAtICAgIFF1ZXVlSW5pdCgm
KCpSaW5nKS0+U3VibWl0dGVkUmVxcyk7DQo+IC0gICAgUXVldWVJbml0KCYoKlJpbmcpLT5TaHV0
ZG93blNyYnMpOw0KPiAtDQo+IC0gICAgQWRhcHRlckdldENhY2hlSW50ZXJmYWNlKEFkYXB0ZXIs
ICYoKlJpbmcpLT5DYWNoZUludGVyZmFjZSk7DQo+IC0NCj4gLSAgICBzdGF0dXMgPSBYRU5CVVNf
Q0FDSEUoQWNxdWlyZSwgJigqUmluZyktPkNhY2hlSW50ZXJmYWNlKTsNCj4gLSAgICBpZiAoIU5U
X1NVQ0NFU1Moc3RhdHVzKSkNCj4gLSAgICAgICAgZ290byBmYWlsMjsNCj4gKyAgICBBZGFwdGVy
R2V0RGVidWdJbnRlcmZhY2UoQWRhcHRlciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJigqUmluZyktPkRlYnVnSW50ZXJmYWNlKTsNCj4gKyAgICBBZGFwdGVyR2V0U3RvcmVJbnRl
cmZhY2UoQWRhcHRlciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJigqUmluZykt
PlN0b3JlSW50ZXJmYWNlKTsNCj4gKyAgICBBZGFwdGVyR2V0Q2FjaGVJbnRlcmZhY2UoQWRhcHRl
ciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJigqUmluZyktPkNhY2hlSW50ZXJm
YWNlKTsNCj4gKyAgICBBZGFwdGVyR2V0RXZ0Y2huSW50ZXJmYWNlKEFkYXB0ZXIsDQo+ICsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmKCpSaW5nKS0+RXZ0Y2huSW50ZXJmYWNlKTsNCj4g
DQo+IC0gICAgc3RhdHVzID0gUnRsU3RyaW5nQ2JQcmludGZBKE5hbWUsDQo+IC0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihOYW1lKSwNCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInZiZF8ldV9yZXEiLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGcm9udGVuZEdldFRhcmdldElkKEZyb250ZW5kKSk7DQo+IC0gICAgaWYgKCFOVF9T
VUNDRVNTKHN0YXR1cykpDQo+IC0gICAgICAgIGdvdG8gZmFpbDM7DQo+ICsgICAgKCpSaW5nKS0+
RnJvbnRlbmQgPSBGcm9udGVuZDsNCj4gDQo+IC0gICAgc3RhdHVzID0gWEVOQlVTX0NBQ0hFKENy
ZWF0ZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgJigqUmluZyktPkNhY2hlSW50ZXJm
YWNlLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lLA0KPiAtICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplb2YoWEVOVkJEX1JFUVVFU1QpLA0KPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgICAzMiwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgUmluZ1JlcXVlc3RD
dG9yLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICBSaW5nUmVxdWVzdER0b3IsDQo+IC0g
ICAgICAgICAgICAgICAgICAgICAgICAgIFJpbmdBY3F1aXJlTG9jaywNCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmluZ1JlbGVhc2VMb2NrLA0KPiAtICAgICAgICAgICAgICAgICAgICAg
ICAgICAqUmluZywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgJigqUmluZyktPlJlcXVl
c3RDYWNoZSk7DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+IC0gICAgICAgIGdv
dG8gZmFpbDQ7DQo+ICsgICAgTWF4UXVldWVzID0gRnJvbnRlbmRHZXRNYXhRdWV1ZXMoRnJvbnRl
bmQpOw0KPiArICAgICgqUmluZyktPlJpbmcgPSBfX1JpbmdBbGxvY2F0ZShzaXplb2YoUFhFTlZC
RF9CTEtJRl9SSU5HKSAqDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1h
eFF1ZXVlcyk7DQo+IA0KPiAtICAgIHN0YXR1cyA9IFJ0bFN0cmluZ0NiUHJpbnRmQShOYW1lLA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTmFtZSksDQo+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YmRfJXVfc2VnIiwNCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmRHZXRUYXJnZXRJZChGcm9udGVuZCkpOw0KPiAt
ICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiAtICAgICAgICBnb3RvIGZhaWw1Ow0KPiAr
ICAgIHN0YXR1cyA9IFNUQVRVU19OT19NRU1PUlk7DQo+ICsgICAgaWYgKCgqUmluZyktPlJpbmcg
PT0gTlVMTCkNCj4gKyAgICAgICAgZ290byBmYWlsMjsNCj4gDQo+IC0gICAgc3RhdHVzID0gWEVO
QlVTX0NBQ0hFKENyZWF0ZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgJigqUmluZykt
PkNhY2hlSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lLA0KPiAt
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOVkJEX1NFR01FTlQpLA0KPiAtICAg
ICAgICAgICAgICAgICAgICAgICAgICAzMiwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg
UmluZ1NlZ21lbnRDdG9yLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICBSaW5nU2VnbWVu
dER0b3IsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIFJpbmdBY3F1aXJlTG9jaywNCj4g
LSAgICAgICAgICAgICAgICAgICAgICAgICAgUmluZ1JlbGVhc2VMb2NrLA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAqUmluZywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgJigq
UmluZyktPlNlZ21lbnRDYWNoZSk7DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+
IC0gICAgICAgIGdvdG8gZmFpbDY7DQo+ICsgICAgSW5kZXggPSAwOw0KPiArICAgIHdoaWxlIChJ
bmRleCA8IE1heFF1ZXVlcykgew0KPiArICAgICAgICBQWEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lm
UmluZzsNCj4gDQo+IC0gICAgc3RhdHVzID0gUnRsU3RyaW5nQ2JQcmludGZBKE5hbWUsDQo+IC0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihOYW1lKSwNCj4gLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInZiZF8ldV9pbmQiLA0KPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGcm9udGVuZEdldFRhcmdldElkKEZyb250ZW5kKSk7DQo+IC0gICAg
aWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+IC0gICAgICAgIGdvdG8gZmFpbDc7DQo+ICsgICAg
ICAgIHN0YXR1cyA9IEJsa2lmUmluZ0NyZWF0ZSgqUmluZywgSW5kZXgsICZCbGtpZlJpbmcpOw0K
PiArICAgICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gKyAgICAgICAgICAgIGdvdG8g
ZmFpbDM7DQo+IA0KPiAtICAgIHN0YXR1cyA9IFhFTkJVU19DQUNIRShDcmVhdGUsDQo+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgICYoKlJpbmcpLT5DYWNoZUludGVyZmFjZSwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgTmFtZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZW9mKFhFTlZCRF9JTkRJUkVDVCksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIDEs
DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIFJpbmdJbmRpcmVjdEN0b3IsDQo+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgIFJpbmdJbmRpcmVjdER0b3IsDQo+IC0gICAgICAgICAgICAg
ICAgICAgICAgICAgIFJpbmdBY3F1aXJlTG9jaywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgUmluZ1JlbGVhc2VMb2NrLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAqUmluZywN
Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgJigqUmluZyktPkluZGlyZWN0Q2FjaGUpOw0K
PiAtICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiAtICAgICAgICBnb3RvIGZhaWw4Ow0K
PiArICAgICAgICAoKlJpbmcpLT5SaW5nW0luZGV4XSA9IEJsa2lmUmluZzsNCj4gKyAgICAgICAg
SW5kZXgrKzsNCj4gKyAgICB9DQo+IA0KPiAgICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsNCj4g
DQo+IC1mYWlsODoNCj4gLSAgICBFcnJvcigiZmFpbDhcbiIpOw0KPiAtZmFpbDc6DQo+IC0gICAg
RXJyb3IoImZhaWw3XG4iKTsNCj4gLSAgICBYRU5CVVNfQ0FDSEUoRGVzdHJveSwNCj4gLSAgICAg
ICAgICAgICAgICAgJigqUmluZyktPkNhY2hlSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAg
ICAoKlJpbmcpLT5TZWdtZW50Q2FjaGUpOw0KPiAtICAgICgqUmluZyktPlNlZ21lbnRDYWNoZSA9
IE5VTEw7DQo+IC1mYWlsNjoNCj4gLSAgICBFcnJvcigiZmFpbDZcbiIpOw0KPiAtZmFpbDU6DQo+
IC0gICAgRXJyb3IoImZhaWw1XG4iKTsNCj4gLSAgICBYRU5CVVNfQ0FDSEUoRGVzdHJveSwNCj4g
LSAgICAgICAgICAgICAgICAgJigqUmluZyktPkNhY2hlSW50ZXJmYWNlLA0KPiAtICAgICAgICAg
ICAgICAgICAoKlJpbmcpLT5SZXF1ZXN0Q2FjaGUpOw0KPiAtICAgICgqUmluZyktPlJlcXVlc3RD
YWNoZSA9IE5VTEw7DQo+IC1mYWlsNDoNCj4gLSAgICBFcnJvcigiZmFpbDRcbiIpOw0KPiAgZmFp
bDM6DQo+ICAgICAgRXJyb3IoImZhaWwzXG4iKTsNCj4gLSAgICBYRU5CVVNfQ0FDSEUoUmVsZWFz
ZSwNCj4gLSAgICAgICAgICAgICAgICAgJigqUmluZyktPkNhY2hlSW50ZXJmYWNlKTsNCj4gKw0K
PiArICAgIHdoaWxlICgtLUluZGV4ID4gMCkgew0KPiArICAgICAgICBQWEVOVkJEX0JMS0lGX1JJ
TkcgIEJsa2lmUmluZyA9ICgqUmluZyktPlJpbmdbSW5kZXhdOw0KPiArDQo+ICsgICAgICAgICgq
UmluZyktPlJpbmdbSW5kZXhdID0gTlVMTDsNCj4gKyAgICAgICAgQmxraWZSaW5nRGVzdHJveShC
bGtpZlJpbmcpOw0KPiArICAgIH0NCj4gKw0KPiArICAgIF9fUmluZ0ZyZWUoKCpSaW5nKS0+Umlu
Zyk7DQo+ICsgICAgKCpSaW5nKS0+UmluZyA9IE5VTEw7DQo+ICsNCj4gIGZhaWwyOg0KPiAgICAg
IEVycm9yKCJmYWlsMlxuIik7DQo+IA0KPiArICAgICgqUmluZyktPkZyb250ZW5kID0gTlVMTDsN
Cj4gKw0KPiAgICAgIFJ0bFplcm9NZW1vcnkoJigqUmluZyktPkNhY2hlSW50ZXJmYWNlLA0KPiAt
ICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYRU5CVVNfQ0FDSEVfSU5URVJGQUNFKSk7DQo+ICsg
ICAgICAgICAgICAgICAgICBzaXplb2YoWEVOQlVTX0NBQ0hFX0lOVEVSRkFDRSkpOw0KPiArDQo+
ICsgICAgUnRsWmVyb01lbW9yeSgmKCpSaW5nKS0+RXZ0Y2huSW50ZXJmYWNlLA0KPiArICAgICAg
ICAgICAgICAgICAgc2l6ZW9mKFhFTkJVU19FVlRDSE5fSU5URVJGQUNFKSk7DQo+IA0KPiAtICAg
IFJ0bFplcm9NZW1vcnkoJigqUmluZyktPlByZXBhcmVkUmVxcywgc2l6ZW9mKFhFTlZCRF9RVUVV
RSkpOw0KPiAtICAgIFJ0bFplcm9NZW1vcnkoJigqUmluZyktPlN1Ym1pdHRlZFJlcXMsIHNpemVv
ZihYRU5WQkRfUVVFVUUpKTsNCj4gLSAgICBSdGxaZXJvTWVtb3J5KCYoKlJpbmcpLT5TaHV0ZG93
blNyYnMsIHNpemVvZihYRU5WQkRfUVVFVUUpKTsNCj4gKyAgICBSdGxaZXJvTWVtb3J5KCYoKlJp
bmcpLT5TdG9yZUludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgIHNpemVvZihYRU5CVVNf
U1RPUkVfSU5URVJGQUNFKSk7DQo+IA0KPiAtICAgIFJ0bFplcm9NZW1vcnkoJigqUmluZyktPkRw
Yywgc2l6ZW9mKEtEUEMpKTsNCj4gLSAgICBSdGxaZXJvTWVtb3J5KCYoKlJpbmcpLT5Mb2NrLCBz
aXplb2YoS1NQSU5fTE9DSykpOw0KPiAtICAgICgqUmluZyktPkZyb250ZW5kID0gTlVMTDsNCj4g
KyAgICBSdGxaZXJvTWVtb3J5KCYoKlJpbmcpLT5EZWJ1Z0ludGVyZmFjZSwNCj4gKyAgICAgICAg
ICAgICAgICAgIHNpemVvZihYRU5CVVNfREVCVUdfSU5URVJGQUNFKSk7DQo+IA0KPiAgICAgIEFT
U0VSVChJc1plcm9NZW1vcnkoKlJpbmcsIHNpemVvZihYRU5WQkRfUklORykpKTsNCj4gICAgICBf
X1JpbmdGcmVlKCpSaW5nKTsNCj4gLSAgICAqUmluZyA9IE5VTEw7DQo+ICsNCj4gIGZhaWwxOg0K
PiAtICAgIEVycm9yKCJmYWlsMSAlMDh4XG4iLCBzdGF0dXMpOw0KPiArICAgIEVycm9yKCJmYWls
MSAoJTA4eClcbiIsIHN0YXR1cyk7DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gIH0NCj4gDQo+
IEBAIC0xNjMxLDQ0ICsyMzM0LDM1IEBAIFJpbmdEZXN0cm95KA0KPiAgICAgIElOICBQWEVOVkJE
X1JJTkcgICAgUmluZw0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBYRU5CVVNfQ0FDSEUoRGVzdHJv
eSwNCj4gLSAgICAgICAgICAgICAgICAgJlJpbmctPkNhY2hlSW50ZXJmYWNlLA0KPiAtICAgICAg
ICAgICAgICAgICBSaW5nLT5JbmRpcmVjdENhY2hlKTsNCj4gLSAgICBSaW5nLT5JbmRpcmVjdENh
Y2hlID0gTlVMTDsNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4Ow0KPiANCj4gLSAg
ICBYRU5CVVNfQ0FDSEUoRGVzdHJveSwNCj4gLSAgICAgICAgICAgICAgICAgJlJpbmctPkNhY2hl
SW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICBSaW5nLT5TZWdtZW50Q2FjaGUpOw0KPiAt
ICAgIFJpbmctPlNlZ21lbnRDYWNoZSA9IE5VTEw7DQo+ICsgICAgSW5kZXggPSBGcm9udGVuZEdl
dE1heFF1ZXVlcyhSaW5nLT5Gcm9udGVuZCk7DQo+IA0KPiAtICAgIFhFTkJVU19DQUNIRShEZXN0
cm95LA0KPiAtICAgICAgICAgICAgICAgICAmUmluZy0+Q2FjaGVJbnRlcmZhY2UsDQo+IC0gICAg
ICAgICAgICAgICAgIFJpbmctPlJlcXVlc3RDYWNoZSk7DQo+IC0gICAgUmluZy0+UmVxdWVzdENh
Y2hlID0gTlVMTDsNCj4gKyAgICB3aGlsZSAoLS1JbmRleCA+IDApIHsNCj4gKyAgICAgICAgUFhF
TlZCRF9CTEtJRl9SSU5HICBCbGtpZlJpbmcgPSBSaW5nLT5SaW5nW0luZGV4XTsNCj4gKw0KPiAr
ICAgICAgICBSaW5nLT5SaW5nW0luZGV4XSA9IE5VTEw7DQo+ICsgICAgICAgIEJsa2lmUmluZ0Rl
c3Ryb3koQmxraWZSaW5nKTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBfX1JpbmdGcmVlKFJpbmct
PlJpbmcpOw0KPiArICAgIFJpbmctPlJpbmcgPSBOVUxMOw0KPiANCj4gLSAgICBYRU5CVVNfQ0FD
SEUoUmVsZWFzZSwNCj4gLSAgICAgICAgICAgICAgICAgJlJpbmctPkNhY2hlSW50ZXJmYWNlKTsN
Cj4gKyAgICBSaW5nLT5Gcm9udGVuZCA9IE5VTEw7DQo+IA0KPiAgICAgIFJ0bFplcm9NZW1vcnko
JlJpbmctPkNhY2hlSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYRU5C
VVNfQ0FDSEVfSU5URVJGQUNFKSk7DQo+ICsgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOQlVT
X0NBQ0hFX0lOVEVSRkFDRSkpOw0KPiANCj4gLSAgICBSdGxaZXJvTWVtb3J5KCZSaW5nLT5QcmVw
YXJlZFJlcXMsIHNpemVvZihYRU5WQkRfUVVFVUUpKTsNCj4gLSAgICBSdGxaZXJvTWVtb3J5KCZS
aW5nLT5TdWJtaXR0ZWRSZXFzLCBzaXplb2YoWEVOVkJEX1FVRVVFKSk7DQo+IC0gICAgUnRsWmVy
b01lbW9yeSgmUmluZy0+U2h1dGRvd25TcmJzLCBzaXplb2YoWEVOVkJEX1FVRVVFKSk7DQo+ICsg
ICAgUnRsWmVyb01lbW9yeSgmUmluZy0+RXZ0Y2huSW50ZXJmYWNlLA0KPiArICAgICAgICAgICAg
ICAgICAgc2l6ZW9mKFhFTkJVU19FVlRDSE5fSU5URVJGQUNFKSk7DQo+IA0KPiAtICAgIFJ0bFpl
cm9NZW1vcnkoJlJpbmctPkRwYywgc2l6ZW9mKEtEUEMpKTsNCj4gLSAgICBSdGxaZXJvTWVtb3J5
KCZSaW5nLT5Mb2NrLCBzaXplb2YoS1NQSU5fTE9DSykpOw0KPiAtICAgIFJpbmctPkZyb250ZW5k
ID0gTlVMTDsNCj4gKyAgICBSdGxaZXJvTWVtb3J5KCZSaW5nLT5TdG9yZUludGVyZmFjZSwNCj4g
KyAgICAgICAgICAgICAgICAgIHNpemVvZihYRU5CVVNfU1RPUkVfSU5URVJGQUNFKSk7DQo+ICsN
Cj4gKyAgICBSdGxaZXJvTWVtb3J5KCZSaW5nLT5EZWJ1Z0ludGVyZmFjZSwNCj4gKyAgICAgICAg
ICAgICAgICAgIHNpemVvZihYRU5CVVNfREVCVUdfSU5URVJGQUNFKSk7DQo+IA0KPiAtICAgIFJp
bmctPkJsa09wUmVhZCA9IDA7DQo+IC0gICAgUmluZy0+QmxrT3BXcml0ZSA9IDA7DQo+IC0gICAg
UmluZy0+QmxrT3BJbmRpcmVjdFJlYWQgPSAwOw0KPiAtICAgIFJpbmctPkJsa09wSW5kaXJlY3RX
cml0ZSA9IDA7DQo+IC0gICAgUmluZy0+QmxrT3BCYXJyaWVyID0gMDsNCj4gLSAgICBSaW5nLT5C
bGtPcERpc2NhcmQgPSAwOw0KPiAtICAgIFJpbmctPkJsa09wRmx1c2ggPSAwOw0KPiAtICAgIFJp
bmctPlNlZ3NHcmFudGVkID0gMDsNCj4gLSAgICBSaW5nLT5TZWdzQm91bmNlZCA9IDA7DQo+ICsg
ICAgUnRsWmVyb01lbW9yeShSaW5nLT5TdGF0cywgc2l6ZW9mKFJpbmctPlN0YXRzKSk7DQo+IA0K
PiAgICAgIEFTU0VSVChJc1plcm9NZW1vcnkoUmluZywgc2l6ZW9mKFhFTlZCRF9SSU5HKSkpOw0K
PiAgICAgIF9fUmluZ0ZyZWUoUmluZyk7DQo+IEBAIC0xNjc5LDMxICsyMzczLDI3IEBAIFJpbmdD
b25uZWN0KA0KPiAgICAgIElOICBQWEVOVkJEX1JJTkcgICAgUmluZw0KPiAgICAgICkNCj4gIHsN
Cj4gLSAgICBQWEVOVkJEX1RBUkdFVCAgICAgIFRhcmdldCA9IEZyb250ZW5kR2V0VGFyZ2V0KFJp
bmctPkZyb250ZW5kKTsNCj4gLSAgICBQWEVOVkJEX0FEQVBURVIgICAgIEFkYXB0ZXIgPSBUYXJn
ZXRHZXRBZGFwdGVyKFRhcmdldCk7DQo+IC0gICAgUFhFTlZCRF9HUkFOVEVSICAgICBHcmFudGVy
ID0gRnJvbnRlbmRHZXRHcmFudGVyKFJpbmctPkZyb250ZW5kKTsNCj4gLSAgICBQQ0hBUiAgICAg
ICAgICAgICAgIEJ1ZmZlcjsNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgIE1heFF1ZXVlczsN
Cj4gICAgICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4Ow0KPiArICAgIFBDSEFSICAgICAgICAg
ICAgICAgQnVmZmVyOw0KPiAgICAgIE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOw0KPiANCj4g
LSAgICBBU1NFUlQoUmluZy0+Q29ubmVjdGVkID09IEZBTFNFKTsNCj4gLQ0KPiAtICAgIEFkYXB0
ZXJHZXRTdG9yZUludGVyZmFjZShBZGFwdGVyLCAmUmluZy0+U3RvcmVJbnRlcmZhY2UpOw0KPiAt
ICAgIEFkYXB0ZXJHZXRFdnRjaG5JbnRlcmZhY2UoQWRhcHRlciwgJlJpbmctPkV2dGNobkludGVy
ZmFjZSk7DQo+IC0gICAgQWRhcHRlckdldERlYnVnSW50ZXJmYWNlKEFkYXB0ZXIsICZSaW5nLT5E
ZWJ1Z0ludGVyZmFjZSk7DQo+IC0NCj4gLSAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoQWNxdWly
ZSwgJlJpbmctPlN0b3JlSW50ZXJmYWNlKTsNCj4gKyAgICBzdGF0dXMgPSBYRU5CVVNfREVCVUco
QWNxdWlyZSwgJlJpbmctPkRlYnVnSW50ZXJmYWNlKTsNCj4gICAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkNCj4gICAgICAgICAgZ290byBmYWlsMTsNCj4gDQo+IC0gICAgc3RhdHVzID0gWEVO
QlVTX0VWVENITihBY3F1aXJlLCAmUmluZy0+RXZ0Y2huSW50ZXJmYWNlKTsNCj4gKyAgICBzdGF0
dXMgPSBYRU5CVVNfU1RPUkUoQWNxdWlyZSwgJlJpbmctPlN0b3JlSW50ZXJmYWNlKTsNCj4gICAg
ICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gICAgICAgICAgZ290byBmYWlsMjsNCj4gDQo+
IC0gICAgc3RhdHVzID0gWEVOQlVTX0RFQlVHKEFjcXVpcmUsICZSaW5nLT5EZWJ1Z0ludGVyZmFj
ZSk7DQo+ICsgICAgc3RhdHVzID0gWEVOQlVTX0NBQ0hFKEFjcXVpcmUsICZSaW5nLT5DYWNoZUlu
dGVyZmFjZSk7DQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICAgICAgICAgIGdv
dG8gZmFpbDM7DQo+IA0KPiArICAgIHN0YXR1cyA9IFhFTkJVU19FVlRDSE4oQWNxdWlyZSwgJlJp
bmctPkV2dGNobkludGVyZmFjZSk7DQo+ICsgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+
ICsgICAgICAgIGdvdG8gZmFpbDQ7DQo+ICsNCj4gICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUo
UmVhZCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJlJpbmctPlN0b3JlSW50ZXJmYWNl
LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLA0KPiBAQCAtMTczMCw0NyArMjQy
MCwxNyBAQCBSaW5nQ29ubmVjdCgNCj4gICAgICAgICAgUmluZy0+T3JkZXIgPSAwOw0KPiAgICAg
IH0NCj4gDQo+IC0gICAgUmluZy0+TWRsID0gX19BbGxvY2F0ZVBhZ2VzKDEgPDwgUmluZy0+T3Jk
ZXIpOw0KPiAtDQo+IC0gICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsNCj4gLSAgICBpZiAo
UmluZy0+TWRsID09IE5VTEwpDQo+IC0gICAgICAgIGdvdG8gZmFpbDQ7DQo+IC0NCj4gLSAgICBS
aW5nLT5TaGFyZWQgPSBNbUdldFN5c3RlbUFkZHJlc3NGb3JNZGxTYWZlKFJpbmctPk1kbCwNCj4g
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbFBh
Z2VQcmlvcml0eSk7DQo+IC0gICAgQVNTRVJUKFJpbmctPlNoYXJlZCAhPSBOVUxMKTsNCj4gLQ0K
PiAtI3ByYWdtYSB3YXJuaW5nKHB1c2gpDQo+IC0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDMw
NSkNCj4gLSNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0MzExKSAvLyAndHlwZSBjYXN0JyBwb2lu
dGVyIHRydW5jYXRpb24gZnJvbQ0KPiAnYmxraWZfc3JpbmdfZW50cnlbMV0nIHRvICdsb25nJw0K
PiAtICAgIFNIQVJFRF9SSU5HX0lOSVQoUmluZy0+U2hhcmVkKTsNCj4gLSAgICBGUk9OVF9SSU5H
X0lOSVQoJlJpbmctPkZyb250LCBSaW5nLT5TaGFyZWQsIFBBR0VfU0laRSA8PCBSaW5nLQ0KPiA+
T3JkZXIpOw0KPiAtI3ByYWdtYSB3YXJuaW5nKHBvcCkNCj4gKyAgICBNYXhRdWV1ZXMgPSBGcm9u
dGVuZEdldE51bVF1ZXVlcyhSaW5nLT5Gcm9udGVuZCk7DQo+ICsgICAgSW5kZXggPSAwOw0KPiAr
ICAgIHdoaWxlIChJbmRleCA8IE1heFF1ZXVlcykgew0KPiArICAgICAgICBQWEVOVkJEX0JMS0lG
X1JJTkcgIEJsa2lmUmluZyA9IFJpbmctPlJpbmdbSW5kZXhdOw0KPiANCj4gLSAgICBmb3IgKElu
ZGV4ID0gMDsgSW5kZXggPCAoMXVsIDw8IFJpbmctPk9yZGVyKTsgKytJbmRleCkgew0KPiAtICAg
ICAgICBzdGF0dXMgPSBHcmFudGVyR2V0KEdyYW50ZXIsDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTW1HZXRNZGxQZm5BcnJheShSaW5nLT5NZGwpW0luZGV4XSwNCj4gLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBGQUxTRSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmUmluZy0+R3JhbnRzW0luZGV4XSk7DQo+ICsgICAgICAgIHN0YXR1cyA9IEJsa2lmUmluZ0Nv
bm5lY3QoQmxraWZSaW5nKTsNCj4gICAgICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+
ICAgICAgICAgICAgICBnb3RvIGZhaWw1Ow0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIFJpbmctPkNo
YW5uZWwgPSBYRU5CVVNfRVZUQ0hOKE9wZW4sDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJlJpbmctPkV2dGNobkludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBYRU5CVVNfRVZUQ0hOX1RZUEVfVU5CT1VORCwNCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBSaW5nSW50ZXJydXB0LA0KPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJpbmcsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRnJvbnRlbmRHZXRCYWNrZW5kRG9tYWluKFJpbmctPkZyb250ZW5kKSwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFKTsNCj4gLSAgICBzdGF0dXMgPSBTVEFU
VVNfTk9fTUVNT1JZOw0KPiAtICAgIGlmIChSaW5nLT5DaGFubmVsID09IE5VTEwpDQo+IC0gICAg
ICAgIGdvdG8gZmFpbDY7DQo+IA0KPiAtICAgIFhFTkJVU19FVlRDSE4oVW5tYXNrLA0KPiAtICAg
ICAgICAgICAgICAgICAgJlJpbmctPkV2dGNobkludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAg
ICAgIFJpbmctPkNoYW5uZWwsDQo+IC0gICAgICAgICAgICAgICAgICBGQUxTRSk7DQo+ICsgICAg
ICAgICsrSW5kZXg7DQo+ICsgICAgfQ0KPiANCj4gICAgICBzdGF0dXMgPSBYRU5CVVNfREVCVUco
UmVnaXN0ZXIsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZSaW5nLT5EZWJ1Z0ludGVy
ZmFjZSwNCj4gQEAgLTE3NzksNTUgKzI0MzksNDQgQEAgUmluZ0Nvbm5lY3QoDQo+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJpbmcsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZS
aW5nLT5EZWJ1Z0NhbGxiYWNrKTsNCj4gICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4g
LSAgICAgICAgZ290byBmYWlsNzsNCj4gKyAgICAgICAgZ290byBmYWlsNjsNCj4gDQo+IC0gICAg
UmluZy0+Q29ubmVjdGVkID0gVFJVRTsNCj4gICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+
IA0KPiAtZmFpbDc6DQo+IC0gICAgRXJyb3IoImZhaWw3XG4iKTsNCj4gLSAgICBYRU5CVVNfRVZU
Q0hOKENsb3NlLA0KPiAtICAgICAgICAgICAgICAgICAgJlJpbmctPkV2dGNobkludGVyZmFjZSwN
Cj4gLSAgICAgICAgICAgICAgICAgIFJpbmctPkNoYW5uZWwpOw0KPiAtICAgIFJpbmctPkNoYW5u
ZWwgPSBOVUxMOw0KPiAgZmFpbDY6DQo+ICAgICAgRXJyb3IoImZhaWw2XG4iKTsNCj4gKyAgICBJ
bmRleCA9IEZyb250ZW5kR2V0TnVtUXVldWVzKFJpbmctPkZyb250ZW5kKTsNCj4gIGZhaWw1Og0K
PiAgICAgIEVycm9yKCJmYWlsNVxuIik7DQo+IC0gICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwg
KDF1bCA8PCBSaW5nLT5PcmRlcik7ICsrSW5kZXgpIHsNCj4gLSAgICAgICAgaWYgKFJpbmctPkdy
YW50c1tJbmRleF0gPT0gTlVMTCkNCj4gLSAgICAgICAgICAgIGNvbnRpbnVlOw0KPiANCj4gLSAg
ICAgICAgR3JhbnRlclB1dChHcmFudGVyLCBSaW5nLT5HcmFudHNbSW5kZXhdKTsNCj4gLSAgICAg
ICAgUmluZy0+R3JhbnRzW0luZGV4XSA9IE5VTEw7DQo+IC0gICAgfQ0KPiArICAgIHdoaWxlIChJ
bmRleCAhPSAwKSB7DQo+ICsgICAgICAgIFBYRU5WQkRfQkxLSUZfUklORyAgQmxraWZSaW5nOw0K
PiArDQo+ICsgICAgICAgIC0tSW5kZXg7DQo+ICsgICAgICAgIEJsa2lmUmluZyA9IFJpbmctPlJp
bmdbSW5kZXhdOw0KPiANCj4gLSAgICBSdGxaZXJvTWVtb3J5KCZSaW5nLT5Gcm9udCwgc2l6ZW9m
KGJsa2lmX2Zyb250X3JpbmdfdCkpOw0KPiArICAgICAgICBCbGtpZlJpbmdEaXNjb25uZWN0KEJs
a2lmUmluZyk7DQo+ICsgICAgfQ0KPiANCj4gLSAgICBfX0ZyZWVQYWdlcyhSaW5nLT5NZGwpOw0K
PiAtICAgIFJpbmctPlNoYXJlZCA9IE5VTEw7DQo+IC0gICAgUmluZy0+TWRsID0gTlVMTDsNCj4g
KyAgICBYRU5CVVNfRVZUQ0hOKFJlbGVhc2UsICZSaW5nLT5FdnRjaG5JbnRlcmZhY2UpOw0KPiAN
Cj4gLSAgICBSaW5nLT5PcmRlciA9IDA7DQo+ICBmYWlsNDoNCj4gICAgICBFcnJvcigiZmFpbDRc
biIpOw0KPiAtICAgIFhFTkJVU19ERUJVRyhSZWxlYXNlLCAmUmluZy0+RGVidWdJbnRlcmZhY2Up
Ow0KPiArDQo+ICsgICAgWEVOQlVTX0NBQ0hFKFJlbGVhc2UsICZSaW5nLT5DYWNoZUludGVyZmFj
ZSk7DQo+ICsNCj4gIGZhaWwzOg0KPiAgICAgIEVycm9yKCJmYWlsM1xuIik7DQo+IC0gICAgWEVO
QlVTX0VWVENITihSZWxlYXNlLCAmUmluZy0+RXZ0Y2huSW50ZXJmYWNlKTsNCj4gKw0KPiArICAg
IFhFTkJVU19TVE9SRShSZWxlYXNlLCAmUmluZy0+U3RvcmVJbnRlcmZhY2UpOw0KPiArDQo+ICBm
YWlsMjoNCj4gICAgICBFcnJvcigiZmFpbDJcbiIpOw0KPiAtICAgIFhFTkJVU19TVE9SRShSZWxl
YXNlLCAmUmluZy0+U3RvcmVJbnRlcmZhY2UpOw0KPiAtZmFpbDE6DQo+IC0gICAgRXJyb3IoImZh
aWwxICUwOHhcbiIsIHN0YXR1cyk7DQo+IA0KPiAtICAgIFJ0bFplcm9NZW1vcnkoJlJpbmctPkRl
YnVnSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAgc2l6ZW9mKFhFTkJVU19ERUJVR19J
TlRFUkZBQ0UpKTsNCj4gLSAgICBSdGxaZXJvTWVtb3J5KCZSaW5nLT5FdnRjaG5JbnRlcmZhY2Us
DQo+IC0gICAgICAgICAgICAgICAgICBzaXplb2YoWEVOQlVTX0VWVENITl9JTlRFUkZBQ0UpKTsN
Cj4gLSAgICBSdGxaZXJvTWVtb3J5KCZSaW5nLT5TdG9yZUludGVyZmFjZSwNCj4gLSAgICAgICAg
ICAgICAgICAgIHNpemVvZihYRU5CVVNfU1RPUkVfSU5URVJGQUNFKSk7DQo+ICsgICAgWEVOQlVT
X0RFQlVHKFJlbGVhc2UsICZSaW5nLT5EZWJ1Z0ludGVyZmFjZSk7DQo+IA0KPiArZmFpbDE6DQo+
ICsgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsNCj4gICAgICByZXR1cm4gc3Rh
dHVzOw0KPiAgfQ0KPiANCj4gQEAgLTE4MzcsMjMgKzI0ODYsMzMgQEAgUmluZ1N0b3JlV3JpdGUo
DQo+ICAgICAgSU4gIFBWT0lEICAgICAgICAgICBUcmFuc2FjdGlvbg0KPiAgICAgICkNCj4gIHsN
Cj4gLSAgICBQWEVOVkJEX0dSQU5URVIgICAgIEdyYW50ZXIgPSBGcm9udGVuZEdldEdyYW50ZXIo
UmluZy0+RnJvbnRlbmQpOw0KPiAtICAgIFVMT05HICAgICAgICAgICAgICAgUG9ydDsNCj4gKyAg
ICBVTE9ORyAgICAgICAgICAgICAgIE51bVF1ZXVlczsNCj4gKyAgICBVTE9ORyAgICAgICAgICAg
ICAgIEluZGV4Ow0KPiAgICAgIE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOw0KPiANCj4gLSAg
ICBpZiAoUmluZy0+T3JkZXIgPT0gMCkgew0KPiAtICAgICAgICBzdGF0dXMgPSBYRU5CVVNfU1RP
UkUoUHJpbnRmLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlJpbmctPlN0b3Jl
SW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNhY3Rpb24s
DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZEdldEZyb250ZW5kUGF0
aChSaW5nLT5Gcm9udGVuZCksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmlu
Zy1yZWYiLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiV1IiwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdyYW50ZXJSZWZlcmVuY2UoR3JhbnRlciwgUmluZy0+
R3JhbnRzWzBdKSk7DQo+ICsgICAgTnVtUXVldWVzID0gRnJvbnRlbmRHZXROdW1RdWV1ZXMoUmlu
Zy0+RnJvbnRlbmQpOw0KPiArICAgIEluZGV4ID0gMDsNCj4gKyAgICB3aGlsZSAoSW5kZXggPCBO
dW1RdWV1ZXMpIHsNCj4gKyAgICAgICAgUFhFTlZCRF9CTEtJRl9SSU5HICBCbGtpZlJpbmcgPSBS
aW5nLT5SaW5nW0luZGV4XTsNCj4gKw0KPiArICAgICAgICBzdGF0dXMgPSBCbGtpZlJpbmdTdG9y
ZVdyaXRlKEJsa2lmUmluZywgVHJhbnNhY3Rpb24pOw0KPiAgICAgICAgICBpZiAoIU5UX1NVQ0NF
U1Moc3RhdHVzKSkNCj4gLSAgICAgICAgICAgIHJldHVybiBzdGF0dXM7DQo+IC0gICAgfSBlbHNl
IHsNCj4gLSAgICAgICAgVUxPTkcgICAgICAgICAgIEluZGV4Ow0KPiArICAgICAgICAgICAgZ290
byBmYWlsMTsNCj4gKw0KPiArICAgICAgICArK0luZGV4Ow0KPiArICAgIH0NCj4gKw0KPiArICAg
IHN0YXR1cyA9IFhFTkJVU19TVE9SRShQcmludGYsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICZSaW5nLT5TdG9yZUludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
VHJhbnNhY3Rpb24sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kR2V0RnJv
bnRlbmRQYXRoKFJpbmctPkZyb250ZW5kKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
Im11bHRpLXF1ZXVlLW51bS1xdWV1ZXMiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAi
JXUiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1RdWV1ZXMpOw0KPiArICAgIGlm
ICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiArICAgICAgICBnb3RvIGZhaWwyOw0KPiANCj4gKyAg
ICBpZiAoUmluZy0+T3JkZXIgIT0gMCkgew0KPiAgICAgICAgICBzdGF0dXMgPSBYRU5CVVNfU1RP
UkUoUHJpbnRmLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlJpbmctPlN0b3Jl
SW50ZXJmYWNlLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNhY3Rpb24s
DQo+IEBAIC0xODYyLDI4ICsyNTIxLDcgQEAgUmluZ1N0b3JlV3JpdGUoDQo+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiJXUiLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUmluZy0+T3JkZXIpOw0KPiAgICAgICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4g
LSAgICAgICAgICAgIHJldHVybiBzdGF0dXM7DQo+IC0NCj4gLSAgICAgICAgZm9yIChJbmRleCA9
IDA7IEluZGV4IDwgKDF1bCA8PCBSaW5nLT5PcmRlcik7ICsrSW5kZXgpIHsNCj4gLSAgICAgICAg
ICAgIENIQVIgICAgICAgIE5hbWVbTUFYX05BTUVfTEVOKzFdOw0KPiAtDQo+IC0gICAgICAgICAg
ICBzdGF0dXMgPSBSdGxTdHJpbmdDY2hQcmludGZBKE5hbWUsDQo+IC0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9OQU1FX0xFTiwNCj4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInJpbmctcmVmJXUiLA0KPiAtICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCk7DQo+IC0gICAgICAgICAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gLSAgICAgICAgICAgICAgICByZXR1cm4gc3RhdHVzOw0K
PiAtDQo+IC0gICAgICAgICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUHJpbnRmLA0KPiAtICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZSaW5nLT5TdG9yZUludGVyZmFjZSwNCj4g
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2FjdGlvbiwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZEdldEZyb250ZW5kUGF0aChSaW5n
LT5Gcm9udGVuZCksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSwN
Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXUiLA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdyYW50ZXJSZWZlcmVuY2UoR3JhbnRlciwgUmluZy0+
R3JhbnRzW0luZGV4XSkpOw0KPiAtICAgICAgICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykp
DQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsNCj4gLSAgICAgICAgfQ0KPiArICAg
ICAgICAgICAgZ290byBmYWlsMzsNCj4gICAgICB9DQo+IA0KPiAgICAgIHN0YXR1cyA9IFhFTkJV
U19TVE9SRShQcmludGYsDQo+IEBAIC0xODkzLDIzICsyNTMxLDE1IEBAIFJpbmdTdG9yZVdyaXRl
KA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvdG9jb2wiLA0KPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBYRU5fSU9fUFJPVE9fQUJJKTsNCj4gICAgICBpZiAoIU5UX1NVQ0NF
U1Moc3RhdHVzKSkNCj4gLSAgICAgICAgcmV0dXJuIHN0YXR1czsNCj4gLQ0KPiAtICAgIFBvcnQg
PSBYRU5CVVNfRVZUQ0hOKEdldFBvcnQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgJlJp
bmctPkV2dGNobkludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICBSaW5nLT5D
aGFubmVsKTsNCj4gLQ0KPiAtICAgIHN0YXR1cyA9IFhFTkJVU19TVE9SRShQcmludGYsDQo+IC0g
ICAgICAgICAgICAgICAgICAgICAgICAgICZSaW5nLT5TdG9yZUludGVyZmFjZSwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgVHJhbnNhY3Rpb24sDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgIEZyb250ZW5kR2V0RnJvbnRlbmRQYXRoKFJpbmctPkZyb250ZW5kKSwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgImV2ZW50LWNoYW5uZWwiLA0KPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgICAiJXUiLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICBQb3J0KTsNCj4g
LSAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gLSAgICAgICAgcmV0dXJuIHN0YXR1czsN
Cj4gKyAgICAgICAgZ290byBmYWlsNDsNCj4gDQo+ICAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNT
Ow0KPiArDQo+ICtmYWlsNDoNCj4gK2ZhaWwzOg0KPiArZmFpbDI6DQo+ICtmYWlsMToNCj4gKyAg
ICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gIFZPSUQNCj4gQEAgLTE5MTcsMTIgKzI1NDcs
MTggQEAgUmluZ0VuYWJsZSgNCj4gICAgICBJTiAgUFhFTlZCRF9SSU5HICAgIFJpbmcNCj4gICAg
ICApDQo+ICB7DQo+IC0gICAgQVNTRVJUKFJpbmctPkVuYWJsZWQgPT0gRkFMU0UpOw0KPiAtICAg
IFJpbmctPkVuYWJsZWQgPSBUUlVFOw0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgTnVtUXVl
dWVzOw0KPiArICAgIFVMT05HICAgICAgICAgICAgICAgSW5kZXg7DQo+IA0KPiAtICAgIFhFTkJV
U19FVlRDSE4oVHJpZ2dlciwNCj4gLSAgICAgICAgICAgICAgICAgICZSaW5nLT5FdnRjaG5JbnRl
cmZhY2UsDQo+IC0gICAgICAgICAgICAgICAgICBSaW5nLT5DaGFubmVsKTsNCj4gKyAgICBOdW1R
dWV1ZXMgPSBGcm9udGVuZEdldE51bVF1ZXVlcyhSaW5nLT5Gcm9udGVuZCk7DQo+ICsgICAgSW5k
ZXggPSAwOw0KPiArICAgIHdoaWxlIChJbmRleCA8IE51bVF1ZXVlcykgew0KPiArICAgICAgICBQ
WEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lmUmluZyA9IFJpbmctPlJpbmdbSW5kZXhdOw0KPiArDQo+
ICsgICAgICAgIEJsa2lmUmluZ0VuYWJsZShCbGtpZlJpbmcpOw0KPiArDQo+ICsgICAgICAgICsr
SW5kZXg7DQo+ICsgICAgfQ0KPiAgfQ0KPiANCj4gIFZPSUQNCj4gQEAgLTE5MzAsNTUgKzI1NjYs
MTUgQEAgUmluZ0Rpc2FibGUoDQo+ICAgICAgSU4gIFBYRU5WQkRfUklORyAgICBSaW5nDQo+ICAg
ICAgKQ0KPiAgew0KPiAtICAgIFVMT05HICAgICAgICAgICAgICAgQ291bnQ7DQo+IC0gICAgS0lS
UUwgICAgICAgICAgICAgICBJcnFsOw0KPiAtICAgIFBYRU5WQkRfVEFSR0VUICAgICAgVGFyZ2V0
ID0gRnJvbnRlbmRHZXRUYXJnZXQoUmluZy0+RnJvbnRlbmQpOw0KPiAtICAgIFBYRU5WQkRfQURB
UFRFUiAgICAgQWRhcHRlciA9IFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0KTsNCj4gLQ0KPiAtICAg
IEFTU0VSVChSaW5nLT5FbmFibGVkID09IFRSVUUpOw0KPiAtICAgIFJpbmctPkVuYWJsZWQgPSBG
QUxTRTsNCj4gLQ0KPiAtICAgIC8vIHBvbGwgcmluZyBhbmQgc2VuZCBldmVudCBjaGFubmVsIG5v
dGlmaWNhdGlvbiBldmVyeSAxbXMgKGZvciB1cCB0byAzDQo+IG1pbnV0ZXMpDQo+IC0gICAgQ291
bnQgPSAwOw0KPiAtICAgIHdoaWxlIChRdWV1ZUNvdW50KCZSaW5nLT5TdWJtaXR0ZWRSZXFzKSkg
ew0KPiAtICAgICAgICBpZiAoQ291bnQgPiAxODAwMDApDQo+IC0gICAgICAgICAgICBicmVhazsN
Cj4gLSAgICAgICAgS2VSYWlzZUlycWwoRElTUEFUQ0hfTEVWRUwsICZJcnFsKTsNCj4gLSAgICAg
ICAgUmluZ1BvbGwoUmluZyk7DQo+IC0gICAgICAgIEtlTG93ZXJJcnFsKElycWwpOw0KPiAtICAg
ICAgICBYRU5CVVNfRVZUQ0hOKFNlbmQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgJlJpbmct
PkV2dGNobkludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICBSaW5nLT5DaGFubmVs
KTsNCj4gLSAgICAgICAgU3RvclBvcnRTdGFsbEV4ZWN1dGlvbigxMDAwKTsgICAvLyAxMDAwIG1p
Y3JvLXNlY29uZHMNCj4gLSAgICAgICAgKytDb3VudDsNCj4gLSAgICB9DQo+IC0NCj4gLSAgICBW
ZXJib3NlKCJUYXJnZXRbJWRdIDogJXUgU3VibWl0dGVkIHJlcXVlc3RzIGxlZnQgKCV1IGl0ZXJy
YXRpb25zKVxuIiwNCj4gLSAgICAgICAgICAgIEZyb250ZW5kR2V0VGFyZ2V0SWQoUmluZy0+RnJv
bnRlbmQpLA0KPiAtICAgICAgICAgICAgUXVldWVDb3VudCgmUmluZy0+U3VibWl0dGVkUmVxcyks
DQo+IC0gICAgICAgICAgICBDb3VudCk7DQo+IC0NCj4gLSAgICAvLyBGYWlsIFByZXBhcmVkUmVx
cw0KPiAtICAgIGZvciAoOzspIHsNCj4gLSAgICAgICAgUFhFTlZCRF9TUkJFWFQgICAgICBTcmJF
eHQ7DQo+IC0gICAgICAgIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgU3JiOw0KPiAtICAgICAgICBQWEVO
VkJEX1JFUVVFU1QgICAgIFJlcXVlc3Q7DQo+IC0gICAgICAgIFBMSVNUX0VOVFJZICAgICAgICAg
TGlzdEVudHJ5Ow0KPiAtDQo+IC0gICAgICAgIExpc3RFbnRyeSA9IFF1ZXVlUG9wKCZSaW5nLT5Q
cmVwYXJlZFJlcXMpOw0KPiAtICAgICAgICBpZiAoTGlzdEVudHJ5ID09IE5VTEwpDQo+IC0gICAg
ICAgICAgICBicmVhazsNCj4gLSAgICAgICAgUmVxdWVzdCA9IENPTlRBSU5JTkdfUkVDT1JEKExp
c3RFbnRyeSwgWEVOVkJEX1JFUVVFU1QsDQo+IExpc3RFbnRyeSk7DQo+IC0gICAgICAgIFNyYkV4
dCA9IFJlcXVlc3QtPlNyYkV4dDsNCj4gLSAgICAgICAgU3JiID0gU3JiRXh0LT5TcmI7DQo+IC0N
Cj4gLSAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0FCT1JURUQ7DQo+IC0gICAg
ICAgIFNyYi0+U2NzaVN0YXR1cyA9IDB4NDA7IC8vIFNDU0lfQUJPUlRFRA0KPiArICAgIFVMT05H
ICAgICAgICAgICAgICAgSW5kZXg7DQo+IA0KPiAtICAgICAgICBSaW5nUHV0UmVxdWVzdChSaW5n
LCBSZXF1ZXN0KTsNCj4gKyAgICBJbmRleCA9IEZyb250ZW5kR2V0TnVtUXVldWVzKFJpbmctPkZy
b250ZW5kKTsNCj4gKyAgICB3aGlsZSAoSW5kZXggIT0gMCkgew0KPiArICAgICAgICBQWEVOVkJE
X0JMS0lGX1JJTkcgIEJsa2lmUmluZzsNCj4gDQo+IC0gICAgICAgIGlmIChJbnRlcmxvY2tlZERl
Y3JlbWVudCgmU3JiRXh0LT5SZXF1ZXN0Q291bnQpID09IDApDQo+IC0gICAgICAgICAgICBBZGFw
dGVyQ29tcGxldGVTcmIoQWRhcHRlciwgU3JiRXh0KTsNCj4gKyAgICAgICAgLS1JbmRleDsNCj4g
KyAgICAgICAgQmxraWZSaW5nID0gUmluZy0+UmluZ1tJbmRleF07DQo+ICsgICAgICAgIEJsa2lm
UmluZ0Rpc2FibGUoQmxraWZSaW5nKTsNCj4gICAgICB9DQo+ICB9DQo+IA0KPiBAQCAtMTk4Nyw1
NCArMjU4Myw0OSBAQCBSaW5nRGlzY29ubmVjdCgNCj4gICAgICBJTiAgUFhFTlZCRF9SSU5HICAg
IFJpbmcNCj4gICAgICApDQo+ICB7DQo+IC0gICAgUFhFTlZCRF9HUkFOVEVSICAgICBHcmFudGVy
ID0gRnJvbnRlbmRHZXRHcmFudGVyKFJpbmctPkZyb250ZW5kKTsNCj4gICAgICBVTE9ORyAgICAg
ICAgICAgICAgIEluZGV4Ow0KPiANCj4gLSAgICBBU1NFUlQzVShSaW5nLT5TdWJtaXR0ZWQsID09
LCBSaW5nLT5SZWNlaXZlZCk7DQo+IC0gICAgQVNTRVJUKFJpbmctPkNvbm5lY3RlZCk7DQo+IC0g
ICAgUmluZy0+Q29ubmVjdGVkID0gRkFMU0U7DQo+IC0NCj4gICAgICBYRU5CVVNfREVCVUcoRGVy
ZWdpc3RlciwNCj4gICAgICAgICAgICAgICAgICAgJlJpbmctPkRlYnVnSW50ZXJmYWNlLA0KPiAg
ICAgICAgICAgICAgICAgICBSaW5nLT5EZWJ1Z0NhbGxiYWNrKTsNCj4gICAgICBSaW5nLT5EZWJ1
Z0NhbGxiYWNrID0gTlVMTDsNCj4gDQo+IC0gICAgWEVOQlVTX0VWVENITihDbG9zZSwNCj4gLSAg
ICAgICAgICAgICAgICAgICZSaW5nLT5FdnRjaG5JbnRlcmZhY2UsDQo+IC0gICAgICAgICAgICAg
ICAgICBSaW5nLT5DaGFubmVsKTsNCj4gLSAgICBSaW5nLT5DaGFubmVsID0gTlVMTDsNCj4gLQ0K
PiAtICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8ICgxdWwgPDwgUmluZy0+T3JkZXIpOyArK0lu
ZGV4KSB7DQo+IC0gICAgICAgIGlmIChSaW5nLT5HcmFudHNbSW5kZXhdID09IE5VTEwpDQo+IC0g
ICAgICAgICAgICBjb250aW51ZTsNCj4gKyAgICBJbmRleCA9IEZyb250ZW5kR2V0TnVtUXVldWVz
KFJpbmctPkZyb250ZW5kKTsNCj4gDQo+IC0gICAgICAgIEdyYW50ZXJQdXQoR3JhbnRlciwgUmlu
Zy0+R3JhbnRzW0luZGV4XSk7DQo+IC0gICAgICAgIFJpbmctPkdyYW50c1tJbmRleF0gPSBOVUxM
Ow0KPiAtICAgIH0NCj4gKyAgICB3aGlsZSAoSW5kZXggIT0gMCkgew0KPiArICAgICAgICBQWEVO
VkJEX0JMS0lGX1JJTkcgIEJsa2lmUmluZzsNCj4gDQo+IC0gICAgUnRsWmVyb01lbW9yeSgmUmlu
Zy0+RnJvbnQsIHNpemVvZihibGtpZl9mcm9udF9yaW5nX3QpKTsNCj4gKyAgICAgICAgLS1JbmRl
eDsNCj4gKyAgICAgICAgQmxraWZSaW5nID0gUmluZy0+UmluZ1tJbmRleF07DQo+IA0KPiAtICAg
IF9fRnJlZVBhZ2VzKFJpbmctPk1kbCk7DQo+IC0gICAgUmluZy0+U2hhcmVkID0gTlVMTDsNCj4g
LSAgICBSaW5nLT5NZGwgPSBOVUxMOw0KPiArICAgICAgICBCbGtpZlJpbmdEaXNjb25uZWN0KEJs
a2lmUmluZyk7DQo+ICsgICAgfQ0KPiANCj4gICAgICBSaW5nLT5PcmRlciA9IDA7DQo+IA0KPiAt
ICAgIFhFTkJVU19ERUJVRyhSZWxlYXNlLCAmUmluZy0+RGVidWdJbnRlcmZhY2UpOw0KPiAgICAg
IFhFTkJVU19FVlRDSE4oUmVsZWFzZSwgJlJpbmctPkV2dGNobkludGVyZmFjZSk7DQo+ICsgICAg
WEVOQlVTX0NBQ0hFKFJlbGVhc2UsICZSaW5nLT5DYWNoZUludGVyZmFjZSk7DQo+ICAgICAgWEVO
QlVTX1NUT1JFKFJlbGVhc2UsICZSaW5nLT5TdG9yZUludGVyZmFjZSk7DQo+ICsgICAgWEVOQlVT
X0RFQlVHKFJlbGVhc2UsICZSaW5nLT5EZWJ1Z0ludGVyZmFjZSk7DQo+ICt9DQo+IA0KPiAtICAg
IFJ0bFplcm9NZW1vcnkoJlJpbmctPkRlYnVnSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAg
ICAgc2l6ZW9mKFhFTkJVU19ERUJVR19JTlRFUkZBQ0UpKTsNCj4gLSAgICBSdGxaZXJvTWVtb3J5
KCZSaW5nLT5FdnRjaG5JbnRlcmZhY2UsDQo+IC0gICAgICAgICAgICAgICAgICBzaXplb2YoWEVO
QlVTX0VWVENITl9JTlRFUkZBQ0UpKTsNCj4gLSAgICBSdGxaZXJvTWVtb3J5KCZSaW5nLT5TdG9y
ZUludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgIHNpemVvZihYRU5CVVNfU1RPUkVfSU5U
RVJGQUNFKSk7DQo+ICtzdGF0aWMgRk9SQ0VJTkxJTkUgUFhFTlZCRF9CTEtJRl9SSU5HDQo+ICtf
X1JpbmdHZXRCbGtpZlJpbmcoDQo+ICsgICAgSU4gIFBYRU5WQkRfUklORyAgICBSaW5nLA0KPiAr
ICAgIElOICBVTE9ORyAgICAgICAgICAgVGFnDQo+ICsgICAgKQ0KPiArew0KPiArICAgIFVMT05H
ICAgICAgICAgICAgICAgVmFsdWU7DQo+ICsgICAgVUxPTkcgICAgICAgICAgICAgICBJbmRleDsN
Cj4gKw0KPiArICAgIGlmIChUYWcgPT0gMCkNCj4gKyAgICAgICAgVmFsdWUgPSBLZUdldEN1cnJl
bnRQcm9jZXNzb3JOdW1iZXJFeChOVUxMKTsNCj4gKyAgICBlbHNlDQo+ICsgICAgICAgIFZhbHVl
ID0gVGFnOw0KPiArDQo+ICsgICAgSW5kZXggPSBWYWx1ZSAlIEZyb250ZW5kR2V0TnVtUXVldWVz
KFJpbmctPkZyb250ZW5kKTsNCj4gDQo+IC0gICAgUmluZy0+RXZlbnRzID0gMDsNCj4gLSAgICBS
aW5nLT5EcGNzID0gMDsNCj4gLSAgICBSaW5nLT5TdWJtaXR0ZWQgPSAwOw0KPiAtICAgIFJpbmct
PlJlY2VpdmVkID0gMDsNCj4gKyAgICByZXR1cm4gUmluZy0+UmluZ1tJbmRleF07DQo+ICB9DQo+
IA0KPiAgQk9PTEVBTg0KPiBAQCAtMjA0NCwyNSArMjYzNSwxNCBAQCBSaW5nUXVldWVSZXF1ZXN0
KA0KPiAgICAgICkNCj4gIHsNCj4gICAgICBQU0NTSV9SRVFVRVNUX0JMT0NLIFNyYiA9IFNyYkV4
dC0+U3JiOw0KPiArICAgIFBYRU5WQkRfQkxLSUZfUklORyAgQmxraWZSaW5nOw0KPiANCj4gLSAg
ICBpZiAoIVJpbmctPkVuYWJsZWQpDQo+IC0gICAgICAgIGdvdG8gZmFpbDE7DQo+IC0NCj4gLSAg
ICBpZiAoIVJpbmdQcmVwYXJlUmVxdWVzdChSaW5nLCBTcmJFeHQpKQ0KPiAtICAgICAgICBnb3Rv
IGZhaWwyOw0KPiArICAgIEJsa2lmUmluZyA9IF9fUmluZ0dldEJsa2lmUmluZyhSaW5nLCBTcmIt
PlF1ZXVlVGFnKTsNCj4gKyAgICBBU1NFUlQoQmxraWZSaW5nICE9IE5VTEwpOw0KPiANCj4gLSAg
ICBpZiAoUmluZ1N1Ym1pdFJlcXVlc3RzKFJpbmcpKSB7DQo+IC0gICAgICAgIC8vIG1vcmUgcHJl
cGFyZWQtcmVxcyB0byBzdWJtaXQNCj4gLSAgICAgICAgaWYgKEtlSW5zZXJ0UXVldWVEcGMoJlJp
bmctPkRwYywgTlVMTCwgTlVMTCkpDQo+IC0gICAgICAgICAgICArK1JpbmctPkRwY3M7DQo+IC0g
ICAgfQ0KPiArICAgIF9fQmxraWZSaW5nUXVldWVTcmIoQmxraWZSaW5nLCBTcmJFeHQpOw0KPiAN
Cj4gICAgICByZXR1cm4gVFJVRTsNCj4gLQ0KPiAtZmFpbDI6DQo+IC1mYWlsMToNCj4gLSAgICBT
cmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfQlVTWTsNCj4gLSAgICByZXR1cm4gRkFMU0U7DQo+
ICB9DQo+IA0KPiAgVk9JRA0KPiBAQCAtMjA3MSwxMiArMjY1MSwxMSBAQCBSaW5nUXVldWVTaHV0
ZG93bigNCj4gICAgICBJTiAgUFhFTlZCRF9TUkJFWFQgIFNyYkV4dA0KPiAgICAgICkNCj4gIHsN
Cj4gLSAgICBRdWV1ZUFwcGVuZCgmUmluZy0+U2h1dGRvd25TcmJzLA0KPiAtICAgICAgICAgICAg
ICAgICZTcmJFeHQtPkxpc3RFbnRyeSk7DQo+ICsgICAgUFNDU0lfUkVRVUVTVF9CTE9DSyBTcmIg
PSBTcmJFeHQtPlNyYjsNCj4gKyAgICBQWEVOVkJEX0JMS0lGX1JJTkcgIEJsa2lmUmluZzsNCj4g
DQo+IC0gICAgaWYgKCFSaW5nLT5FbmFibGVkKQ0KPiAtICAgICAgICByZXR1cm47DQo+ICsgICAg
QmxraWZSaW5nID0gX19SaW5nR2V0QmxraWZSaW5nKFJpbmcsIFNyYi0+UXVldWVUYWcpOw0KPiAr
ICAgIEFTU0VSVChCbGtpZlJpbmcgIT0gTlVMTCk7DQo+IA0KPiAtICAgIGlmIChLZUluc2VydFF1
ZXVlRHBjKCZSaW5nLT5EcGMsIE5VTEwsIE5VTEwpKQ0KPiAtCSAgICArK1JpbmctPkRwY3M7DQo+
ICsgICAgX19CbGtpZlJpbmdRdWV1ZVNodXRkb3duKEJsa2lmUmluZywgU3JiRXh0KTsNCj4gIH0N
Cj4gLS0NCj4gMi4xNi4yLndpbmRvd3MuMQ0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QN
Cj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 14:56:15 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 14:56:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPqu7-000155-2z; Mon, 04 Jun 2018 14:56:15 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=uma/=iw=citrix.com=prvs=6860a9805=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fPqu6-00014t-IP
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 14:56:14 +0000
X-Inumbo-ID: 1cd599fb-6807-11e8-9728-bc764e045a96
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id 1cd599fb-6807-11e8-9728-bc764e045a96;
 Mon, 04 Jun 2018 16:54:00 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.49,476,1520899200"; d="scan'208";a="74116858"
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 7/9] Remove queue.h/.c
Thread-Index: AQHT9zTxJqwMA1p5aEKzKx31EJdlz6RQOc4g
Date: Mon, 4 Jun 2018 14:56:11 +0000
Message-ID: <785a63679b5e42b381229cd8df1edf50@AMSPEX02CL03.citrite.net>
References: <20180529100717.8340-1-owen.smith@citrix.com>
 <20180529100717.8340-8-owen.smith@citrix.com>
In-Reply-To: <20180529100717.8340-8-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
Subject: Re: [win-pv-devel] [PATCH 7/9] Remove queue.h/.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjkgTWF5IDIwMTggMTE6MDcNCj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBj
aXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0ggNy85XSBSZW1vdmUg
cXVldWUuaC8uYw0KPiANCj4gWEVOVkJEX1FVRVVFIGhhcyBiZWVuIHJlcGxhY2VkIGJ5IExJU1Rf
RU5UUlksIGFuZCBpcyBubyBsb25nZXIgdXNlZC4NCj4gUmVtb3ZlIHF1ZXVlLmgvLmMgYW5kIGFu
eSBpbmNsdWRlIGRpcmVjdGl2ZXMNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93
ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJy
YW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJkL3F1ZXVlLmMgICAgICAgICAg
IHwgMTM5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIHNy
Yy94ZW52YmQvcXVldWUuaCAgICAgICAgICAgfCAgODYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCj4gIHNyYy94ZW52YmQvdGFyZ2V0LmMgICAgICAgICAgfCAgIDEgLQ0KPiAgdnMyMDE1L3hl
bnZiZC94ZW52YmQudmN4cHJvaiB8ICAgMSAtDQo+ICB2czIwMTcveGVudmJkL3hlbnZiZC52Y3hw
cm9qIHwgICAxIC0NCj4gIDUgZmlsZXMgY2hhbmdlZCwgMjI4IGRlbGV0aW9ucygtKQ0KPiAgZGVs
ZXRlIG1vZGUgMTAwNjQ0IHNyYy94ZW52YmQvcXVldWUuYw0KPiAgZGVsZXRlIG1vZGUgMTAwNjQ0
IHNyYy94ZW52YmQvcXVldWUuaA0KPiANCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvcXVldWUu
YyBiL3NyYy94ZW52YmQvcXVldWUuYw0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k
ZXggZmM3MDQ1OS4uMDAwMDAwMA0KPiAtLS0gYS9zcmMveGVudmJkL3F1ZXVlLmMNCj4gKysrIC9k
ZXYvbnVsbA0KPiBAQCAtMSwxMzkgKzAsMCBAQA0KPiAtLyogQ29weXJpZ2h0IChjKSBDaXRyaXgg
U3lzdGVtcyBJbmMuDQo+IC0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiAtICoNCj4gLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsDQo+IC0gKiB3
aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkDQo+IC0g
KiB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Og0KPiAtICoNCj4gLSAqICog
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlDQo+
IC0gKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZQ0KPiAtICogICAgIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KPiAtICogKiAgIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUNCj4gLSAqICAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlDQo+IC0gKiAg
ICAgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
DQo+IC0gKiAgICAgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCj4g
LSAqDQo+IC0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQNCj4gLSAqIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsDQo+IC0gKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRg0KPiAtICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUNCj4gLSAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SDQo+IC0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwNCj4gLSAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsDQo+
IC0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1INCj4gLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MNCj4gLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLA0KPiAtICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HDQo+IC0gKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFDQo+IC0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GDQo+IC0gKiBTVUNIIERBTUFH
RS4NCj4gLSAqLw0KPiAtDQo+IC0jaW5jbHVkZSAicXVldWUuaCINCj4gLSNpbmNsdWRlICJkZWJ1
Zy5oIg0KPiAtI2luY2x1ZGUgImFzc2VydC5oIg0KPiAtDQo+IC1WT0lEDQo+IC1RdWV1ZUluaXQo
DQo+IC0gICAgX19pbiBQWEVOVkJEX1FVRVVFICAgICAgUXVldWUNCj4gLSAgICApDQo+IC17DQo+
IC0gICAgUnRsWmVyb01lbW9yeShRdWV1ZSwgc2l6ZW9mKFhFTlZCRF9RVUVVRSkpOw0KPiAtICAg
IEtlSW5pdGlhbGl6ZVNwaW5Mb2NrKCZRdWV1ZS0+TG9jayk7DQo+IC0gICAgSW5pdGlhbGl6ZUxp
c3RIZWFkKCZRdWV1ZS0+TGlzdCk7DQo+IC19DQo+IC0NCj4gLVVMT05HDQo+IC1RdWV1ZUNvdW50
KA0KPiAtICAgIF9faW4gUFhFTlZCRF9RVUVVRSAgICAgIFF1ZXVlDQo+IC0gICAgKQ0KPiAtew0K
PiAtICAgIHJldHVybiBRdWV1ZS0+Q3VycmVudDsNCj4gLX0NCj4gLQ0KPiAtX19jaGVja1JldHVy
bg0KPiAtUExJU1RfRU5UUlkNCj4gLVF1ZXVlUG9wKA0KPiAtICAgIF9faW4gUFhFTlZCRF9RVUVV
RSAgICAgIFF1ZXVlDQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIEtJUlFMICAgICAgIElycWw7DQo+
IC0gICAgUExJU1RfRU5UUlkgRW50cnkgPSBOVUxMOw0KPiAtDQo+IC0gICAgS2VBY3F1aXJlU3Bp
bkxvY2soJlF1ZXVlLT5Mb2NrLCAmSXJxbCk7DQo+IC0NCj4gLSAgICBpZiAoIUlzTGlzdEVtcHR5
KCZRdWV1ZS0+TGlzdCkpIHsNCj4gLSAgICAgICAgRW50cnkgPSBSZW1vdmVIZWFkTGlzdCgmUXVl
dWUtPkxpc3QpOw0KPiAtICAgICAgICBBU1NFUlQzUChFbnRyeSwgIT0sICZRdWV1ZS0+TGlzdCk7
DQo+IC0gICAgICAgIC0tUXVldWUtPkN1cnJlbnQ7DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgS2VS
ZWxlYXNlU3BpbkxvY2soJlF1ZXVlLT5Mb2NrLCBJcnFsKTsNCj4gLQ0KPiAtICAgIHJldHVybiBF
bnRyeTsNCj4gLX0NCj4gLQ0KPiAtVk9JRA0KPiAtUXVldWVVblBvcCgNCj4gLSAgICBfX2luIFBY
RU5WQkRfUVVFVUUgICAgICBRdWV1ZSwNCj4gLSAgICBfX2luIFBMSVNUX0VOVFJZICAgICAgICBF
bnRyeQ0KPiAtICAgICkNCj4gLXsNCj4gLSAgICBLSVJRTCAgICAgICAgICAgICAgIElycWw7DQo+
IC0NCj4gLSAgICBLZUFjcXVpcmVTcGluTG9jaygmUXVldWUtPkxvY2ssICZJcnFsKTsNCj4gLQ0K
PiAtICAgIEluc2VydEhlYWRMaXN0KCZRdWV1ZS0+TGlzdCwgRW50cnkpOw0KPiAtICAgIGlmICgr
K1F1ZXVlLT5DdXJyZW50ID4gUXVldWUtPk1heGltdW0pDQo+IC0gICAgICAgIFF1ZXVlLT5NYXhp
bXVtID0gUXVldWUtPkN1cnJlbnQ7DQo+IC0NCj4gLSAgICBLZVJlbGVhc2VTcGluTG9jaygmUXVl
dWUtPkxvY2ssIElycWwpOw0KPiAtfQ0KPiAtDQo+IC1WT0lEDQo+IC1RdWV1ZUFwcGVuZCgNCj4g
LSAgICBfX2luIFBYRU5WQkRfUVVFVUUgICAgICBRdWV1ZSwNCj4gLSAgICBfX2luIFBMSVNUX0VO
VFJZICAgICAgICBFbnRyeQ0KPiAtICAgICkNCj4gLXsNCj4gLSAgICBLSVJRTCAgICAgICAgICAg
ICAgIElycWw7DQo+IC0NCj4gLSAgICBLZUFjcXVpcmVTcGluTG9jaygmUXVldWUtPkxvY2ssICZJ
cnFsKTsNCj4gLQ0KPiAtICAgIEluc2VydFRhaWxMaXN0KCZRdWV1ZS0+TGlzdCwgRW50cnkpOw0K
PiAtICAgIGlmICgrK1F1ZXVlLT5DdXJyZW50ID4gUXVldWUtPk1heGltdW0pDQo+IC0gICAgICAg
IFF1ZXVlLT5NYXhpbXVtID0gUXVldWUtPkN1cnJlbnQ7DQo+IC0NCj4gLSAgICBLZVJlbGVhc2VT
cGluTG9jaygmUXVldWUtPkxvY2ssIElycWwpOw0KPiAtfQ0KPiAtDQo+IC1WT0lEDQo+IC1RdWV1
ZVJlbW92ZSgNCj4gLSAgICBfX2luIFBYRU5WQkRfUVVFVUUgICAgICBRdWV1ZSwNCj4gLSAgICBf
X2luIFBMSVNUX0VOVFJZICAgICAgICBFbnRyeQ0KPiAtICAgICkNCj4gLXsNCj4gLSAgICBLSVJR
TCAgICAgICAgICAgICAgIElycWw7DQo+IC0NCj4gLSAgICBLZUFjcXVpcmVTcGluTG9jaygmUXVl
dWUtPkxvY2ssICZJcnFsKTsNCj4gLQ0KPiAtICAgIFJlbW92ZUVudHJ5TGlzdChFbnRyeSk7DQo+
IC0gICAgLS1RdWV1ZS0+Q3VycmVudDsNCj4gLQ0KPiAtICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZR
dWV1ZS0+TG9jaywgSXJxbCk7DQo+IC19DQo+IC0NCj4gLVZPSUQNCj4gLVF1ZXVlRGVidWdDYWxs
YmFjaygNCj4gLSAgICBfX2luIFBYRU5WQkRfUVVFVUUgICAgICAgICAgICAgICAgICBRdWV1ZSwN
Cj4gLSAgICBfX2luIF9fbnVsbHRlcm1pbmF0ZWQgY29uc3QgQ0hBUiogICBOYW1lLA0KPiAtICAg
IF9faW4gUFhFTkJVU19ERUJVR19JTlRFUkZBQ0UgICAgICAgIERlYnVnDQo+IC0gICAgKQ0KPiAt
ew0KPiAtICAgIFhFTkJVU19ERUJVRyhQcmludGYsIERlYnVnLA0KPiAtICAgICAgICAgICAgICAg
ICAiUVVFVUU6ICVzIDogJXUgLyAldVxuIiwNCj4gLSAgICAgICAgICAgICAgICAgTmFtZSwgUXVl
dWUtPkN1cnJlbnQsIFF1ZXVlLT5NYXhpbXVtKTsNCj4gLQ0KPiAtICAgIFF1ZXVlLT5NYXhpbXVt
ID0gUXVldWUtPkN1cnJlbnQ7DQo+IC19DQo+IC0NCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQv
cXVldWUuaCBiL3NyYy94ZW52YmQvcXVldWUuaA0KPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQN
Cj4gaW5kZXggMDQzNDE5OC4uMDAwMDAwMA0KPiAtLS0gYS9zcmMveGVudmJkL3F1ZXVlLmgNCj4g
KysrIC9kZXYvbnVsbA0KPiBAQCAtMSw4NiArMCwwIEBADQo+IC0vKiBDb3B5cmlnaHQgKGMpIENp
dHJpeCBTeXN0ZW1zIEluYy4NCj4gLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+IC0gKg0KPiAt
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywNCj4g
LSAqIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQN
Cj4gLSAqIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6DQo+IC0gKg0KPiAt
ICogKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUNCj4gLSAqICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlDQo+IC0gKiAgICAgZm9sbG93aW5nIGRpc2NsYWltZXIuDQo+IC0gKiAqICAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KPiAtICog
ICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUNCj4g
LSAqICAgICBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXINCj4gLSAqICAgICBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
Lg0KPiAtICoNCj4gLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORA0KPiAtICogQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywNCj4gLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GDQo+IC0gKiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQ0KPiAtICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1INCj4gLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KPiAt
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywNCj4gLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUg0KPiAtICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUw0KPiAtICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksDQo+IC0gKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcNCj4gLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCj4gLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCj4gLSAqIFNVQ0gg
REFNQUdFLg0KPiAtICovDQo+IC0NCj4gLSNpZm5kZWYgX1hFTlZCRF9RVUVVRV9IDQo+IC0jZGVm
aW5lIF9YRU5WQkRfUVVFVUVfSA0KPiAtDQo+IC0jaW5jbHVkZSA8bnRkZGsuaD4NCj4gLSNpbmNs
dWRlIDxkZWJ1Z19pbnRlcmZhY2UuaD4NCj4gLQ0KPiAtdHlwZWRlZiBzdHJ1Y3QgX1hFTlZCRF9R
VUVVRSB7DQo+IC0gICAgS1NQSU5fTE9DSyAgICAgICAgICBMb2NrOw0KPiAtICAgIExJU1RfRU5U
UlkgICAgICAgICAgTGlzdDsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgICAgIEN1cnJlbnQ7DQo+
IC0gICAgVUxPTkcgICAgICAgICAgICAgICBNYXhpbXVtOw0KPiAtfSBYRU5WQkRfUVVFVUUsICpQ
WEVOVkJEX1FVRVVFOw0KPiAtDQo+IC1leHRlcm4gVk9JRA0KPiAtUXVldWVJbml0KA0KPiAtICAg
IF9faW4gUFhFTlZCRF9RVUVVRSAgICAgIFF1ZXVlDQo+IC0gICAgKTsNCj4gLQ0KPiAtZXh0ZXJu
IFVMT05HDQo+IC1RdWV1ZUNvdW50KA0KPiAtICAgIF9faW4gUFhFTlZCRF9RVUVVRSAgICAgIFF1
ZXVlDQo+IC0gICAgKTsNCj4gLQ0KPiAtX19jaGVja1JldHVybg0KPiAtZXh0ZXJuIFBMSVNUX0VO
VFJZDQo+IC1RdWV1ZVBvcCgNCj4gLSAgICBfX2luIFBYRU5WQkRfUVVFVUUgICAgICBRdWV1ZQ0K
PiAtICAgICk7DQo+IC0NCj4gLWV4dGVybiBWT0lEDQo+IC1RdWV1ZVVuUG9wKA0KPiAtICAgIF9f
aW4gUFhFTlZCRF9RVUVVRSAgICAgIFF1ZXVlLA0KPiAtICAgIF9faW4gUExJU1RfRU5UUlkgICAg
ICAgIEVudHJ5DQo+IC0gICAgKTsNCj4gLQ0KPiAtZXh0ZXJuIFZPSUQNCj4gLVF1ZXVlQXBwZW5k
KA0KPiAtICAgIF9faW4gUFhFTlZCRF9RVUVVRSAgICAgIFF1ZXVlLA0KPiAtICAgIF9faW4gUExJ
U1RfRU5UUlkgICAgICAgIEVudHJ5DQo+IC0gICAgKTsNCj4gLQ0KPiAtZXh0ZXJuIFZPSUQNCj4g
LVF1ZXVlUmVtb3ZlKA0KPiAtICAgIF9faW4gUFhFTlZCRF9RVUVVRSAgICAgIFF1ZXVlLA0KPiAt
ICAgIF9faW4gUExJU1RfRU5UUlkgICAgICAgIEVudHJ5DQo+IC0gICAgKTsNCj4gLQ0KPiAtZXh0
ZXJuIFZPSUQNCj4gLVF1ZXVlRGVidWdDYWxsYmFjaygNCj4gLSAgICBfX2luIFBYRU5WQkRfUVVF
VUUgICAgICAgICAgICAgICAgICBRdWV1ZSwNCj4gLSAgICBfX2luIF9fbnVsbHRlcm1pbmF0ZWQg
Y29uc3QgQ0hBUiogICBOYW1lLA0KPiAtICAgIF9faW4gUFhFTkJVU19ERUJVR19JTlRFUkZBQ0Ug
ICAgICAgIERlYnVnDQo+IC0gICAgKTsNCj4gLQ0KPiAtI2VuZGlmIC8vIF9YRU5WQkRfUVVFVUVf
SA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC90YXJnZXQuYyBiL3NyYy94ZW52YmQvdGFyZ2V0
LmMNCj4gaW5kZXggNTRmZmI5My4uMTc2Y2JiZSAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC90
YXJnZXQuYw0KPiArKysgYi9zcmMveGVudmJkL3RhcmdldC5jDQo+IEBAIC00Niw3ICs0Niw2IEBA
DQo+ICAjaW5jbHVkZSAiZHJpdmVyLmgiDQo+ICAjaW5jbHVkZSAiYWRhcHRlci5oIg0KPiAgI2lu
Y2x1ZGUgImZyb250ZW5kLmgiDQo+IC0jaW5jbHVkZSAicXVldWUuaCINCj4gICNpbmNsdWRlICJz
cmJleHQuaCINCj4gDQo+ICAjaW5jbHVkZSAiZGVidWcuaCINCj4gZGlmZiAtLWdpdCBhL3ZzMjAx
NS94ZW52YmQveGVudmJkLnZjeHByb2ogYi92czIwMTUveGVudmJkL3hlbnZiZC52Y3hwcm9qDQo+
IGluZGV4IGE4NWU2NWIuLjc1MmEwMjEgMTAwNjQ0DQo+IC0tLSBhL3ZzMjAxNS94ZW52YmQveGVu
dmJkLnZjeHByb2oNCj4gKysrIGIvdnMyMDE1L3hlbnZiZC94ZW52YmQudmN4cHJvag0KPiBAQCAt
NzAsNyArNzAsNiBAQA0KPiAgICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4vc3JjL3hlbnZi
ZC9mcm9udGVuZC5jIiAvPg0KPiAgICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4vc3JjL3hl
bnZiZC90YXJnZXQuYyIgLz4NCj4gICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uLy4uL3NyYy94
ZW52YmQvYmFzZTY0LmMiIC8+DQo+IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8uLi9zcmMv
eGVudmJkL3F1ZXVlLmMiIC8+DQo+ICAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8uLi9zcmMv
eGVudmJkL3RocmVhZC5jIiAvPg0KPiAgICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4vc3Jj
L3hlbnZiZC9yaW5nLmMiIC8+DQo+ICAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8uLi9zcmMv
eGVudmJkL2dyYW50ZXIuYyIgLz4NCj4gZGlmZiAtLWdpdCBhL3ZzMjAxNy94ZW52YmQveGVudmJk
LnZjeHByb2ogYi92czIwMTcveGVudmJkL3hlbnZiZC52Y3hwcm9qDQo+IGluZGV4IDc0YWY1ZmMu
LjdiODMyMjIgMTAwNjQ0DQo+IC0tLSBhL3ZzMjAxNy94ZW52YmQveGVudmJkLnZjeHByb2oNCj4g
KysrIGIvdnMyMDE3L3hlbnZiZC94ZW52YmQudmN4cHJvag0KPiBAQCAtNzgsNyArNzgsNiBAQA0K
PiAgICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4vc3JjL3hlbnZiZC9mcm9udGVuZC5jIiAv
Pg0KPiAgICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4vc3JjL3hlbnZiZC90YXJnZXQuYyIg
Lz4NCj4gICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uLy4uL3NyYy94ZW52YmQvYmFzZTY0LmMi
IC8+DQo+IC0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8uLi9zcmMveGVudmJkL3F1ZXVlLmMi
IC8+DQo+ICAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8uLi9zcmMveGVudmJkL3RocmVhZC5j
IiAvPg0KPiAgICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi4vLi4vc3JjL3hlbnZiZC9yaW5nLmMi
IC8+DQo+ICAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLi8uLi9zcmMveGVudmJkL2dyYW50ZXIu
YyIgLz4NCj4gLS0NCj4gMi4xNi4yLndpbmRvd3MuMQ0KPiANCj4gDQo+IF9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5n
IGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlz
dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWls
aW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu
eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 14:58:04 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 14:58:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPqvr-0001DN-D8; Mon, 04 Jun 2018 14:58:03 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=uma/=iw=citrix.com=prvs=6860a9805=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fPqvp-0001DG-SA
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 14:58:01 +0000
X-Inumbo-ID: 5c9d6bdd-6807-11e8-9728-bc764e045a96
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id 5c9d6bdd-6807-11e8-9728-bc764e045a96;
 Mon, 04 Jun 2018 16:55:47 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.49,476,1520899200"; d="scan'208";a="74116946"
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 8/9] Move query of
 "multi-queue-max-queues" to driver.c
Thread-Index: AQHT9zUDm/0ODBcDDkSyrwFAydYf/6RQOgLg
Date: Mon, 4 Jun 2018 14:57:41 +0000
Message-ID: <b380c21e65d646ed87d183c4fe5e7781@AMSPEX02CL03.citrite.net>
References: <20180529100717.8340-1-owen.smith@citrix.com>
 <20180529100717.8340-9-owen.smith@citrix.com>
In-Reply-To: <20180529100717.8340-9-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
Subject: Re: [win-pv-devel] [PATCH 8/9] Move query of
 "multi-queue-max-queues" to driver.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjkgTWF5IDIwMTggMTE6MDcNCj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBj
aXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0ggOC85XSBNb3ZlIHF1
ZXJ5IG9mICJtdWx0aS1xdWV1ZS1tYXgtDQo+IHF1ZXVlcyIgdG8gZHJpdmVyLmMNCj4gDQo+IFNp
Z25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KQWNrZWQt
Ynk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBz
cmMveGVudmJkL2RyaXZlci5jICAgfCAyMiArKysrKysrKysrKysrKysrKysrKysrDQo+ICBzcmMv
eGVudmJkL2RyaXZlci5oICAgfCAgNSArKysrKw0KPiAgc3JjL3hlbnZiZC9mcm9udGVuZC5jIHwg
MzAgKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICAzIGZpbGVzIGNoYW5nZWQsIDMy
IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3NyYy94
ZW52YmQvZHJpdmVyLmMgYi9zcmMveGVudmJkL2RyaXZlci5jDQo+IGluZGV4IDJlOWJhNTQuLmZj
MWMxNjkgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gKysrIGIvc3JjL3hl
bnZiZC9kcml2ZXIuYw0KPiBAQCAtMzIwLDYgKzMyMCwyOCBAQCBEcml2ZXJHZXRGZWF0dXJlTmFt
ZSgNCj4gICAgICAgICAgICAgTlVMTDsNCj4gIH0NCj4gDQo+ICtVTE9ORw0KPiArRHJpdmVyR2V0
TWF4UXVldWVzKA0KPiArICAgIFZPSUQNCj4gKyAgICApDQo+ICt7DQo+ICsgICAgVUxPTkcgICBP
dmVycmlkZTsNCj4gKyAgICBVTE9ORyAgIE1heFF1ZXVlczsNCj4gKw0KPiArICAgIE1heFF1ZXVl
cyA9DQo+IEtlUXVlcnlBY3RpdmVQcm9jZXNzb3JDb3VudEV4KEFMTF9QUk9DRVNTT1JfR1JPVVBT
KTsNCj4gKw0KPiArICAgIGlmIChEcml2ZXJHZXRGZWF0dXJlT3ZlcnJpZGUoRmVhdHVyZU11bHRp
UXVldWVNYXhRdWV1ZXMsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmT3Zl
cnJpZGUpKSB7DQo+ICsgICAgICAgIGlmIChPdmVycmlkZSA8IE1heFF1ZXVlcykNCj4gKyAgICAg
ICAgICAgIE1heFF1ZXVlcyA9IE92ZXJyaWRlOw0KPiArICAgIH0NCj4gKw0KPiArICAgIGlmIChN
YXhRdWV1ZXMgPT0gMCkNCj4gKyAgICAgICAgTWF4UXVldWVzID0gMTsNCj4gKw0KPiArICAgIHJl
dHVybiBNYXhRdWV1ZXM7DQo+ICt9DQo+ICsNCj4gIERSSVZFUl9JTklUSUFMSVpFICAgRHJpdmVy
RW50cnk7DQo+IA0KPiAgTlRTVEFUVVMNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvZHJpdmVy
LmggYi9zcmMveGVudmJkL2RyaXZlci5oDQo+IGluZGV4IDVhMjRjNGEuLmMyZmQ0NGEgMTAwNjQ0
DQo+IC0tLSBhL3NyYy94ZW52YmQvZHJpdmVyLmgNCj4gKysrIGIvc3JjL3hlbnZiZC9kcml2ZXIu
aA0KPiBAQCAtMTAwLDQgKzEwMCw5IEBAIERyaXZlckdldEZlYXR1cmVOYW1lKA0KPiAgICAgIElO
ICBYRU5WQkRfRkVBVFVSRSAgRmVhdHVyZQ0KPiAgICAgICk7DQo+IA0KPiArZXh0ZXJuIFVMT05H
DQo+ICtEcml2ZXJHZXRNYXhRdWV1ZXMoDQo+ICsgICAgVk9JRA0KPiArICAgICk7DQo+ICsNCj4g
ICNlbmRpZiAvLyBfWEVOVkJEX0RSSVZFUl9IDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zy
b250ZW5kLmMgYi9zcmMveGVudmJkL2Zyb250ZW5kLmMNCj4gaW5kZXggZmQyYzI0Ny4uZjZiZDMw
YyAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9mcm9udGVuZC5jDQo+ICsrKyBiL3NyYy94ZW52
YmQvZnJvbnRlbmQuYw0KPiBAQCAtMTg2NywyOSArMTg2Nyw2IEBAIGZhaWwxOg0KPiAgICAgIHJl
dHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiAtc3RhdGljIFZPSUQNCj4gLUZyb250ZW5kU2V0TWF4
UXVldWVzKA0KPiAtICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgIEZyb250ZW5kDQo+IC0gICAg
KQ0KPiAtew0KPiAtICAgIFVMT05HICAgICAgICAgICAgICAgICAgIEZyb250ZW5kTWF4UXVldWVz
Ow0KPiAtDQo+IC0gICAgRnJvbnRlbmQtPk1heFF1ZXVlcyA9DQo+IEtlUXVlcnlBY3RpdmVQcm9j
ZXNzb3JDb3VudEV4KEFMTF9QUk9DRVNTT1JfR1JPVVBTKTsNCj4gLQ0KPiAtICAgIGlmIChEcml2
ZXJHZXRGZWF0dXJlT3ZlcnJpZGUoRmVhdHVyZU11bHRpUXVldWVNYXhRdWV1ZXMsDQo+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmRNYXhRdWV1ZXMpKSB7DQo+IC0g
ICAgICAgIGlmIChGcm9udGVuZE1heFF1ZXVlcyA8IEZyb250ZW5kLT5NYXhRdWV1ZXMpDQo+IC0g
ICAgICAgICAgICBGcm9udGVuZC0+TWF4UXVldWVzID0gRnJvbnRlbmRNYXhRdWV1ZXM7DQo+IC0g
ICAgfQ0KPiAtDQo+IC0gICAgaWYgKEZyb250ZW5kLT5NYXhRdWV1ZXMgPT0gMCkNCj4gLSAgICAg
ICAgRnJvbnRlbmQtPk1heFF1ZXVlcyA9IDE7DQo+IC0NCj4gLSAgICBWZXJib3NlKCJUYXJnZXRb
JXVdIE1heFF1ZXVlcyAldVxuIiwNCj4gLSAgICAgICAgICAgIF9fRnJvbnRlbmRHZXRUYXJnZXRJ
ZChGcm9udGVuZCksDQo+IC0gICAgICAgICAgICBGcm9udGVuZC0+TWF4UXVldWVzKTsNCj4gLX0N
Cj4gLQ0KPiAgTlRTVEFUVVMNCj4gIEZyb250ZW5kQ3JlYXRlKA0KPiAgICAgIElOICBQWEVOVkJE
X1RBUkdFVCAgICAgIFRhcmdldCwNCj4gQEAgLTE5MTcsOCArMTg5NCwxMSBAQCBGcm9udGVuZENy
ZWF0ZSgNCj4gICAgICBGcm9udGVuZC0+RGlza0luZm8uU2VjdG9yU2l6ZSA9IDUxMjsgLy8gZGVm
YXVsdCBzZWN0b3Igc2l6ZQ0KPiAgICAgIEZyb250ZW5kLT5CYWNrZW5kRG9tYWluID0gRE9NSURf
SU5WQUxJRDsNCj4gDQo+IC0gICAgRnJvbnRlbmRTZXRNYXhRdWV1ZXMoRnJvbnRlbmQpOw0KPiAt
DQo+ICsgICAgRnJvbnRlbmQtPk1heFF1ZXVlcyA9IERyaXZlckdldE1heFF1ZXVlcygpOw0KPiAr
ICAgIFZlcmJvc2UoIlRhcmdldFsldV0gTWF4UXVldWVzICV1XG4iLA0KPiArICAgICAgICAgICAg
X19Gcm9udGVuZEdldFRhcmdldElkKEZyb250ZW5kKSwNCj4gKyAgICAgICAgICAgIEZyb250ZW5k
LT5NYXhRdWV1ZXMpOw0KPiArDQo+ICAgICAgc3RhdHVzID0gUnRsU3RyaW5nQ2JQcmludGZBKEZy
b250ZW5kLT5Gcm9udGVuZFBhdGgsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVvZihGcm9udGVuZC0+RnJvbnRlbmRQYXRoKSwNCj4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImRldmljZS92YmQvJXUiLA0KPiAtLQ0KPiAyLjE2LjIud2luZG93cy4xDQo+
IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18N
Cj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv
L3dpbi1wdi1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dp
bi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 14:58:16 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 14:58:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPqw4-0001Eh-FV; Mon, 04 Jun 2018 14:58:16 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=uma/=iw=citrix.com=prvs=6860a9805=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fPqw3-0001ET-BX
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 14:58:15 +0000
X-Inumbo-ID: 65390c66-6807-11e8-9728-bc764e045a96
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id 65390c66-6807-11e8-9728-bc764e045a96;
 Mon, 04 Jun 2018 16:56:01 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.49,476,1520899200"; d="scan'208";a="74116960"
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 9/9] Set StorPortInitializePerfOpts
Thread-Index: AQHT9zUIKHlyflAGoEGnEp27G/GQvaRQOmEg
Date: Mon, 4 Jun 2018 14:58:12 +0000
Message-ID: <f035fc45e454438bb41040477f5d0945@AMSPEX02CL03.citrite.net>
References: <20180529100717.8340-1-owen.smith@citrix.com>
 <20180529100717.8340-10-owen.smith@citrix.com>
In-Reply-To: <20180529100717.8340-10-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
Subject: Re: [win-pv-devel] [PATCH 9/9] Set StorPortInitializePerfOpts
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjkgTWF5IDIwMTggMTE6MDcNCj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBj
aXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0ggOS85XSBTZXQgU3Rv
clBvcnRJbml0aWFsaXplUGVyZk9wdHMNCj4gDQo+IFNldHMgRFBDX1JFRElSRUNUSU9OLCBPUFRJ
TUlaRV9GT1JfQ09NUExFVElPTl9EVVJJTkdfU1RBUlRJTw0KPiBhbmQNCj4gQ09OQ1VSUkVOVF9D
SEFOTkVMUyAodG8gIm11bHRpLXF1ZXVlLW1heC1xdWV1ZXMiKSB0byBpbXByb3ZlDQo+IFN0b3JQ
b3J0J3MNCj4gZGlzdHJpYnV0aW9uIG9mIFNSQnMgdG8gdkNQVXMuDQo+IA0KPiBTaWduZWQtb2Zm
LWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+DQoNCkFja2VkLWJ5OiBQYXVs
IER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPg0KDQo+IC0tLQ0KPiAgc3JjL3hlbnZi
ZC9hZGFwdGVyLmMgfCA1Ng0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrDQo+ICAxIGZpbGUgY2hhbmdlZCwgNTYgaW5zZXJ0aW9ucygrKQ0KPiAN
Cj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvYWRhcHRlci5jIGIvc3JjL3hlbnZiZC9hZGFwdGVy
LmMNCj4gaW5kZXggNzc1MzM4OC4uMzY0ODdlMyAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9h
ZGFwdGVyLmMNCj4gKysrIGIvc3JjL3hlbnZiZC9hZGFwdGVyLmMNCj4gQEAgLTIwODIsNiArMjA4
Miw2MSBAQCBBZGFwdGVySHdGaW5kQWRhcHRlcigNCj4gICAgICByZXR1cm4gU1BfUkVUVVJOX0ZP
VU5EOw0KPiAgfQ0KPiANCj4gK3N0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICtBZGFwdGVyU2V0
UGVyZm9ybWFuY2VPcHRpb25zKA0KPiArICAgIElOICBQVk9JRCAgICAgICAgICAgICAgIERldkV4
dA0KPiArICAgICkNCj4gK3sNCj4gKyAgICBQRVJGX0NPTkZJR1VSQVRJT05fREFUQSBQZXJmRGF0
YTsNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBWZXJzaW9uOw0KPiArICAgIFVMT05H
ICAgICAgICAgICAgICAgICAgIHN0YXR1czsNCj4gKw0KPiArICAgIFJ0bFplcm9NZW1vcnkoJlBl
cmZEYXRhLCBzaXplb2YoUEVSRl9DT05GSUdVUkFUSU9OX0RBVEEpKTsNCj4gKyAgICBQZXJmRGF0
YS5WZXJzaW9uID0gU1RPUl9QRVJGX1ZFUlNJT047DQo+ICsgICAgUGVyZkRhdGEuU2l6ZSA9IHNp
emVvZihQRVJGX0NPTkZJR1VSQVRJT05fREFUQSk7DQo+ICsNCj4gKyAgICBzdGF0dXMgPSBTdG9y
UG9ydEluaXRpYWxpemVQZXJmT3B0cyhEZXZFeHQsIFRSVUUsICZQZXJmRGF0YSk7DQo+ICsgICAg
aWYgKHN0YXR1cyA9PSBTVE9SX1NUQVRVU19TVUNDRVNTKSB7DQo+ICsgICAgICAgIFRyYWNlKCJW
ZXJzaW9uID0gJXVcbiIsIFBlcmZEYXRhLlZlcnNpb24pOw0KPiArICAgICAgICAvLyBkdW1wIGF2
YWlsYWJsZSBvcHRpb25zDQo+ICsgICAgICAgIGlmIChQZXJmRGF0YS5GbGFncyAmIFNUT1JfUEVS
Rl9EUENfUkVESVJFQ1RJT04pDQo+ICsgICAgICAgICAgICBUcmFjZSgiRFBDX1JFRElSRUNUSU9O
XG4iKTsNCj4gKyAgICAgICAgaWYgKFBlcmZEYXRhLkZsYWdzICYgU1RPUl9QRVJGX0NPTkNVUlJF
TlRfQ0hBTk5FTFMpDQo+ICsgICAgICAgICAgICBUcmFjZSgiQ09OQ1VSUkVOVF9DSEFOTkVMU1xu
Iik7DQo+ICsgICAgICAgIGlmIChQZXJmRGF0YS5GbGFncyAmIFNUT1JfUEVSRl9JTlRFUlJVUFRf
TUVTU0FHRV9SQU5HRVMpDQo+ICsgICAgICAgICAgICBUcmFjZSgiSU5URVJSVVBUX01FU1NBR0Vf
UkFOR0VTXG4iKTsNCj4gKyAgICAgICAgaWYgKFBlcmZEYXRhLkZsYWdzICYgU1RPUl9QRVJGX0FE
Vl9DT05GSUdfTE9DQUxJVFkpDQo+ICsgICAgICAgICAgICBUcmFjZSgiQURWX0NPTkZJR19MT0NB
TElUWVxuIik7DQo+ICsgICAgICAgIGlmIChQZXJmRGF0YS5GbGFncyAmDQo+IFNUT1JfUEVSRl9P
UFRJTUlaRV9GT1JfQ09NUExFVElPTl9EVVJJTkdfU1RBUlRJTykNCj4gKyAgICAgICAgICAgIFRy
YWNlKCJPUFRJTUlaRV9GT1JfQ09NUExFVElPTl9EVVJJTkdfU1RBUlRJT1xuIik7DQo+ICsgICAg
ICAgIGlmIChQZXJmRGF0YS5GbGFncyAmIFNUT1JfUEVSRl9EUENfUkVESVJFQ1RJT05fQ1VSUkVO
VF9DUFUpDQo+ICsgICAgICAgICAgICBUcmFjZSgiRFBDX1JFRElSRUNUSU9OX0NVUlJFTlRfQ1BV
XG4iKTsNCj4gKyAgICAgICAgaWYgKFBlcmZEYXRhLkZsYWdzICYgU1RPUl9QRVJGX05PX1NHTCkN
Cj4gKyAgICAgICAgICAgIFRyYWNlKCJOT19TR0xcbiIpOw0KPiArDQo+ICsgICAgICAgIFZlcnNp
b24gPSBQZXJmRGF0YS5WZXJzaW9uOw0KPiArICAgIH0gZWxzZSB7DQo+ICsgICAgICAgIFdhcm5p
bmcoIlN0b3JQb3J0SW5pdGlhbGl6ZVBlcmZPcHRzKEdldCkgZmFpbGVkICUwOHhcbiIsIHN0YXR1
cyk7DQo+ICsgICAgICAgIFZlcnNpb24gPSBTVE9SX1BFUkZfVkVSU0lPTjsNCj4gKyAgICB9DQo+
ICsNCj4gKyAgICBSdGxaZXJvTWVtb3J5KCZQZXJmRGF0YSwgc2l6ZW9mKFBFUkZfQ09ORklHVVJB
VElPTl9EQVRBKSk7DQo+ICsgICAgUGVyZkRhdGEuVmVyc2lvbiA9IFZlcnNpb247DQo+ICsgICAg
UGVyZkRhdGEuU2l6ZSA9IHNpemVvZihQRVJGX0NPTkZJR1VSQVRJT05fREFUQSk7DQo+ICsNCj4g
KyAgICBpZiAoVmVyc2lvbiA+PSAyKSB7DQo+ICsgICAgICAgIFBlcmZEYXRhLkZsYWdzIHw9IFNU
T1JfUEVSRl9EUENfUkVESVJFQ1RJT04gfA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBT
VE9SX1BFUkZfQ09OQ1VSUkVOVF9DSEFOTkVMUzsNCj4gKyAgICAgICAgUGVyZkRhdGEuQ29uY3Vy
cmVudENoYW5uZWxzID0gRHJpdmVyR2V0TWF4UXVldWVzKCk7DQo+ICsgICAgfQ0KPiArICAgIGlm
IChWZXJzaW9uID49IDMpDQo+ICsgICAgICAgIFBlcmZEYXRhLkZsYWdzIHw9DQo+IFNUT1JfUEVS
Rl9PUFRJTUlaRV9GT1JfQ09NUExFVElPTl9EVVJJTkdfU1RBUlRJTzsNCj4gKw0KPiArICAgIHN0
YXR1cyA9IFN0b3JQb3J0SW5pdGlhbGl6ZVBlcmZPcHRzKERldkV4dCwgRkFMU0UsICZQZXJmRGF0
YSk7DQo+ICsgICAgaWYgKHN0YXR1cyAhPSBTVE9SX1NUQVRVU19TVUNDRVNTKQ0KPiArICAgICAg
ICBXYXJuaW5nKCJTdG9yUG9ydEluaXRpYWxpemVQZXJmT3B0cyhTZXQpIGZhaWxlZCAlMDh4XG4i
LCBzdGF0dXMpOw0KPiArfQ0KPiArDQo+ICBIV19QQVNTSVZFX0lOSVRJQUxJWkVfUk9VVElORSBB
ZGFwdGVySHdQYXNzaXZlSW5pdGlhbGl6ZTsNCj4gDQo+ICBCT09MRUFODQo+IEBAIC0yMDk1LDYg
KzIxNTAsNyBAQCBBZGFwdGVySHdQYXNzaXZlSW5pdGlhbGl6ZSgNCj4gICAgICBQREVWSUNFX09C
SkVDVCAgTG93ZXJEZXZpY2VPYmplY3Q7DQo+ICAgICAgTlRTVEFUVVMgICAgICAgIHN0YXR1czsN
Cj4gDQo+ICsgICAgQWRhcHRlclNldFBlcmZvcm1hbmNlT3B0aW9ucyhEZXZFeHQpOw0KPiAgICAg
IGlmIChTdG9yUG9ydEdldERldmljZU9iamVjdHMoRGV2RXh0LA0KPiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJkRldmljZU9iamVjdCwNCj4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZQaHlzaWNhbERldmljZU9iamVjdCwNCj4gLS0NCj4gMi4xNi4yLndpbmRv
d3MuMQ0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3Rz
LnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s
aXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3Rz
LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0
aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 15:15:49 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 15:15:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPrD2-000338-1B; Mon, 04 Jun 2018 15:15:48 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=uma/=iw=citrix.com=prvs=6860a9805=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fPrD0-000331-I4
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 15:15:46 +0000
X-Inumbo-ID: d724cab2-6809-11e8-9728-bc764e045a96
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id d724cab2-6809-11e8-9728-bc764e045a96;
 Mon, 04 Jun 2018 17:13:31 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.49,476,1520899200"; d="scan'208";a="74118488"
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 0/9] Implement VBD multi-queue
Thread-Index: AQHT9zT5yh6g0PvIikK/ZC/eUsWajKRQP0LA
Date: Mon, 4 Jun 2018 15:15:42 +0000
Message-ID: <0c174853a5514e069929407b23b5a840@AMSPEX02CL03.citrite.net>
References: <20180529100717.8340-1-owen.smith@citrix.com>
In-Reply-To: <20180529100717.8340-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
Subject: Re: [win-pv-devel] [PATCH 0/9] Implement VBD multi-queue
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjkgTWF5IDIwMTggMTE6MDcNCj4gVG86IHdpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBj
aXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0ggMC85XSBJbXBsZW1l
bnQgVkJEIG11bHRpLXF1ZXVlDQo+IA0KPiBUaGlzIHNlcmllcyBhZGRzIHN1cHBvcnQgZm9yIFZC
RCBtdWx0aS1xdWV1ZSBhcyBkZWZpbmVkIGJ5IHRoZSB1cGRhdGVkDQo+IGJsa2lmLmgNCj4gDQo+
IE11bHRpLXF1ZXVlIHdpbGwgc3BsaXQgdGhlIGluY29tbWluZyBTUkIgcmVxdWVzdHMgaW50byBz
ZXBlcmF0ZSBzaGFyZWQNCj4gcmluZ3MsIGF0dGVtcHRpbmcgdG8ga2VlcCBwcm9jZXNzaW5nIG9u
IGEgc2luZ2xlIHZDUFUuIFRocyBiYWNrZW5kIHNob3VsZA0KPiB1c2UgdGhpcyBwZXItcHJvY2Vz
c29yIHNoYXJlZCByaW5nIHRvIGRpcmVjdCByZXF1ZXN0cyBpbnRvIHRoZSBtdWx0aS1xdWV1ZQ0K
PiBibG9jayBsYXllciAoYmxrLW1xKSB0byBpbXByb3ZlIHNjYWxhYmlsaXR5LiBQYXJ0IG9mIHRo
ZSBjaGFuZ2VzIGludm9sdmVzDQo+IHJlZHVjaW5nIHRoZSB1c2FnZSBvZiBzcGlubG9ja3Mgb24g
dGhlIGhvdC1wYXRoLg0KPiANCj4gVGhlIGltcGxlbWVudGF0aW9uIGNoYW5nZXMgdG8gdGhlIHJp
bmcncyBwcm9jZXNzaW5nIGFsZ29yaXRobSBoYXMgc2hvd24NCj4gc29tZSBpbXByb3ZlbWVudHMs
IGJ1dCB0aGlzIGRvZXMgbm90IHNjYWxlIHdpdGggbnVtYmVyIG9mIHF1ZXVlcyAoaS5lLg0KPiB1
c2luZw0KPiB0aGlzIHBhdGNoIHNlcmllcyB3aXRoIGEgc2luZ2xlIHF1ZXVlIHNob3dzIGFuIGlt
cHJvdm1lbnQsIGJ1dCBhZGRpbmcgbW9yZQ0KPiBxdWV1ZXMgZG9lcyBub3Qgc2hvdyBhbnkgZGlm
ZmVyZW5jZXMgb3V0c2lkZSBvZiBzYW1wbGluZyBub2lzZSkuDQo+IA0KPiBPd2VuIFNtaXRoICg5
KToNCj4gICBVcGRhdGUgYmxraWYuaCB0byB1cHN0cmVhbQ0KPiAgIFF1ZXJ5ICJtdWx0aS1xdWV1
ZS1tYXgtcXVldWVzIg0KPiAgIFJlbW92ZSBSaW5nVHJpZ2dlcg0KPiAgIERvbnQgY2xvc2Ugcmlu
ZyBkdXJpbmcgRnJvbnRlbmRSZXNldA0KPiAgIEZvcmNlIHNpbmdsZSBxdWV1ZSBpbiBjcmFzaC9o
aWJlcm5hdGUgcGF0aA0KPiAgIEltcGxlbWVudCBtdWx0aS1xdWV1ZXMNCj4gICBSZW1vdmUgcXVl
dWUuaC8uYw0KPiAgIE1vdmUgcXVlcnkgb2YgIm11bHRpLXF1ZXVlLW1heC1xdWV1ZXMiIHRvIGRy
aXZlci5jDQo+ICAgU2V0IFN0b3JQb3J0SW5pdGlhbGl6ZVBlcmZPcHRzDQo+IA0KDQpQYXRjaGVz
IDItOSBhcHBsaWVkLiBUaGFua3MsDQoNCiAgUGF1bA0KDQo+ICBpbmNsdWRlL3hlbi9pby9ibGtp
Zi5oICAgICAgIHwgMTEwMCArKysrKysrKy0tLS0tLS0NCj4gIHNyYy94ZW5jcnNoL2Zyb250ZW5k
LmMgICAgICAgfCAgICAyICsNCj4gIHNyYy94ZW52YmQvYWRhcHRlci5jICAgICAgICAgfCAgIDU2
ICsNCj4gIHNyYy94ZW52YmQvZHJpdmVyLmMgICAgICAgICAgfCAgIDI1ICstDQo+ICBzcmMveGVu
dmJkL2RyaXZlci5oICAgICAgICAgIHwgICAgNiArDQo+ICBzcmMveGVudmJkL2Zyb250ZW5kLmMg
ICAgICAgIHwgIDI2MSArKy0tDQo+ICBzcmMveGVudmJkL2Zyb250ZW5kLmggICAgICAgIHwgICAg
MiArDQo+ICBzcmMveGVudmJkL3F1ZXVlLmMgICAgICAgICAgIHwgIDEzOSAtLQ0KPiAgc3JjL3hl
bnZiZC9xdWV1ZS5oICAgICAgICAgICB8ICAgODYgLS0NCj4gIHNyYy94ZW52YmQvcmluZy5jICAg
ICAgICAgICAgfCAzMTA2ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t
DQo+IC0NCj4gIHNyYy94ZW52YmQvcmluZy5oICAgICAgICAgICAgfCAgICA1IC0NCj4gIHNyYy94
ZW52YmQvdGFyZ2V0LmMgICAgICAgICAgfCAgICAxIC0NCj4gIHZzMjAxNS94ZW52YmQveGVudmJk
LnZjeHByb2ogfCAgICAxIC0NCj4gIHZzMjAxNy94ZW52YmQveGVudmJkLnZjeHByb2ogfCAgICAx
IC0NCj4gIDE0IGZpbGVzIGNoYW5nZWQsIDI2ODYgaW5zZXJ0aW9ucygrKSwgMjEwNSBkZWxldGlv
bnMoLSkNCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMveGVudmJkL3F1ZXVlLmMNCj4gIGRlbGV0
ZSBtb2RlIDEwMDY0NCBzcmMveGVudmJkL3F1ZXVlLmgNCj4gDQo+IC0tDQo+IDIuMTYuMi53aW5k
b3dzLjENCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v
bGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz
dGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 15:21:01 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 15:21:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPrI3-0003i0-RT; Mon, 04 Jun 2018 15:20:59 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <paul.durrant@xenproject.org>) id 1fPrI2-0003hv-LR
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 15:20:58 +0000
Date: Mon, 4 Jun 2018 15:20:56 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <10625869.1.1528125658280.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_0_27035783.1528125656702"
X-Jenkins-Job: XENVBD-master
X-Jenkins-Result: FAILURE
Subject: [win-pv-devel] XENVBD-master - Build #109 - Failure
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/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_27035783.1528125656702
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #109.

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

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

------=_Part_0_27035783.1528125656702--


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 15:30:59 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 15:30:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPrRi-0004Y5-4T; Mon, 04 Jun 2018 15:30:58 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <paul.durrant@xenproject.org>) id 1fPrRg-0004Xz-Gs
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 15:30:56 +0000
Date: Mon, 4 Jun 2018 15:30:55 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <30207484.3.1528126255874.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
In-Reply-To: <10625869.1.1528125658280.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
References: <10625869.1.1528125658280.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_2_23816421.1528126255780"
X-Jenkins-Job: XENVBD-master
X-Jenkins-Result: FAILURE
Subject: [win-pv-devel] XENVBD-master - Build #110 - Still Failing
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/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_2_23816421.1528126255780
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #110.

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

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

------=_Part_2_23816421.1528126255780--


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 15:38:22 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 15:38:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPrYs-0004pZ-Ge; Mon, 04 Jun 2018 15:38:22 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <paul.durrant@xenproject.org>) id 1fPrYr-0004pR-KZ
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 15:38:21 +0000
Date: Mon, 4 Jun 2018 15:38:20 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <24264178.5.1528126700999.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
In-Reply-To: <30207484.3.1528126255874.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
References: <30207484.3.1528126255874.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_4_24770631.1528126700952"
X-Jenkins-Job: XENVBD-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVBD-master - Build #111 - Fixed
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/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_4_24770631.1528126700952
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #111.

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

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

------=_Part_4_24770631.1528126700952--


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 16:16:18 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 16:16:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPs9Y-000184-7M; Mon, 04 Jun 2018 16:16:16 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <paul.durrant@xenproject.org>) id 1fPs9X-00017z-0r
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 16:16:15 +0000
Date: Mon, 4 Jun 2018 16:16:13 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <15998035.7.1528128974422.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_6_9442403.1528128973531"
X-Jenkins-Job: XENVBD-master
X-Jenkins-Result: FAILURE
Subject: [win-pv-devel] XENVBD-master - Build #112 - Failure
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/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_9442403.1528128973531
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #112.

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

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

------=_Part_6_9442403.1528128973531--


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 16:49:17 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 16:49:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPsfU-00042C-8D; Mon, 04 Jun 2018 16:49:16 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <paul.durrant@xenproject.org>) id 1fPsfT-000425-6i
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 16:49:15 +0000
Date: Mon, 4 Jun 2018 16:49:14 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <25910865.9.1528130954626.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
In-Reply-To: <15998035.7.1528128974422.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
References: <15998035.7.1528128974422.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_8_26728196.1528130954345"
X-Jenkins-Job: XENVBD-master
X-Jenkins-Result: FAILURE
Subject: [win-pv-devel] XENVBD-master - Build #113 - Still Failing
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/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_8_26728196.1528130954345
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #113.

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

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

------=_Part_8_26728196.1528130954345--


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 04 17:41:06 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 04 Jun 2018 17:41:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fPtTb-0001xf-PN; Mon, 04 Jun 2018 17:41:03 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <paul.durrant@xenproject.org>) id 1fPtTa-0001xa-Up
 for win-pv-devel@lists.xenproject.org; Mon, 04 Jun 2018 17:41:02 +0000
Date: Mon, 4 Jun 2018 17:41:02 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <14310021.11.1528134062409.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
In-Reply-To: <25910865.9.1528130954626.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
References: <25910865.9.1528130954626.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_10_3782868.1528134062362"
X-Jenkins-Job: XENVBD-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVBD-master - Build #114 - Fixed
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/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_10_3782868.1528134062362
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #114.

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

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

------=_Part_10_3782868.1528134062362--


From win-pv-devel-bounces@lists.xenproject.org Thu Jun 14 11:43:07 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jun 2018 11:43:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fTQeg-0001sa-AS; Thu, 14 Jun 2018 11:43:06 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=we9f=ja=citrix.com=prvs=6967e8e21=lars.kurth@srs-us1.protection.inumbo.net>)
 id 1fTQef-0001sC-5Q
 for win-pv-devel@lists.xenproject.org; Thu, 14 Jun 2018 11:43:05 +0000
X-Inumbo-ID: 1bf8286d-6fc8-11e8-bc1d-65256ead4e3a
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-amaz-eas1.inumbo.com (Halon) with ESMTPS
 id 1bf8286d-6fc8-11e8-bc1d-65256ead4e3a;
 Thu, 14 Jun 2018 11:43:09 +0000 (UTC)
X-IronPort-AV: E=Sophos;i="5.51,222,1526342400"; d="scan'208";a="74650304"
From: Lars Kurth <lars.kurth@citrix.com>
To: xen-devel <xen-devel@lists.xenproject.org>, "xen-api@lists.xenproject.org"
 <xen-api@lists.xenproject.org>
Thread-Topic: [Votel] Graduation Review: Windows PV Driver
Thread-Index: AQHT47d0WQK13Asgt0yMPjxb4KjteaQflugAgEA6l4A=
Date: Thu, 14 Jun 2018 11:43:01 +0000
Message-ID: <8471763E-48EB-452C-A7D9-2573E5F28416@citrix.com>
References: <413C1D1E-9F83-45FB-8FD1-FF21845071A1@citrix.com>
 <8F1DF9EF-E345-46EA-8E9E-835DD5B28280@citrix.com>
In-Reply-To: <8F1DF9EF-E345-46EA-8E9E-835DD5B28280@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/10.e.1.180613
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
Content-ID: <3FD7703D863D7447B9064C8A66120C75@citrix.com>
MIME-Version: 1.0
Subject: Re: [win-pv-devel] [Votel] Graduation Review: Windows PV Driver
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>
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>

SGkgYWxsLA0KDQp0byBzdW1tYXJpemUgdGhpcyB0aHJlYWQsIHdlIGhhZCB0aGUgZm9sbG93aW5n
IHZvdGVzDQoNClhBUEkgUHJvamVjdCA9PiBhYnN0YWluZWQgDQpIeXBlcnZpc29yID0+IDUgdm90
ZXMgaW4gZmF2b3VyLCBubyBuZWdhdGl2ZSB2b3Rlcywgd2hpY2ggaXMgc3VmZmljaWVudCBmb3Ig
Z3JhZHVhdGlvbg0KDQpQZW9wbGUgdm90aW5nIGluIGZhdm91cjoNCkdlb3JnZSBEdW5sYXAsIElh
biBKYWNrc29uIChzZWUgWzFdKQ0KSmFuIEJldWxpY2gsIEFuZHJldyBDb29wZXIsIFdlaSBMaXUg
KHRoaXMgdGhyZWFkKQ0KDQpCZXN0IFJlZ2FyZHMNCkxhcnMNCg0KUmVmZXJlbmNlcw0KKiBbMV0g
aHR0cHM6Ly94ZW4ubWFya21haWwub3JnL3RocmVhZC92Y2J2bG43YWEzb2Npa3g0DQoNCu+7v09u
IDA0LzA1LzIwMTgsIDE1OjUyLCAiTGFycyBLdXJ0aCIgPGxhcnMua3VydGhAY2l0cml4LmNvbT4g
d3JvdGU6DQoNCiAgICBBbmQgdGhpcyB0aW1lIHdpdGggcHJvcG9zYWwNCiAgICBMYXJzDQogICAg
DQogICAgT24gMDQvMDUvMjAxOCwgMTU6NTEsICJMYXJzIEt1cnRoIiA8bGFycy5rdXJ0aEBjaXRy
aXguY29tPiB3cm90ZToNCiAgICANCiAgICAgICAgSGkgYWxsLA0KICAgICAgICANCiAgICAgICAg
QSBiaXQgbW9yZSB0aGFuIGEgd2VlayBhZ28sIEkgcHV0IG91dCBmb3IgaW5pdGlhbCByZXZpZXcg
dGhlIHByb3Bvc2FsIGZvciDigJxHcmFkdWF0aW9uIFJldmlldzogV2luZG93cyBQViBEcml2ZXLi
gJ0gYXQgIGh0dHBzOi8veGVuLm1hcmttYWlsLm9yZy90aHJlYWQvdmNidmxuN2FhM29jaWt4NA0K
ICAgICAgICBUaGVyZSBoYXMgbm90IGJlZW4gZmVlZGJhY2ssIGV4Y2VwdCBmb3IgdHdvIHJlY29y
ZGVkIHZvdGVzIGZyb20gdGhlIFhlbiBQcm9qZWN0IEh5cGVydmlzb3IgVGVhbSBieSBJYW4gSmFj
a3NvbiBhbmQgR2VvcmdlIER1bmxhcCAoYm90aCBpbiBmYXZvdXIpLg0KICAgICAgICANCiAgICAg
ICAgaW4gYWNjb3JkYW5jZSB3aXRoIGh0dHBzOi8vd3d3LnhlbnByb2plY3Qub3JnL2dvdmVybmFu
Y2UuaHRtbCwgSSBuZWVkIHRoZSBsZWFkZXJzaGlwIHRlYW1zIG9mIHRoZSB0d28gbWF0dXJlIHBy
b2plY3RzIOKAkyB0aGUgSHlwZXJ2aXNvciBhbmQgdGhlIFhBUEkgcHJvamVjdCDigJMgdG8gdm90
ZSBvbiB0aGlzIHByb3Bvc2FsLg0KICAgICAgICANCiAgICAgICAgVGhlIHNwZWNpZmljIHZvdGlu
ZyBydWxlcyBpbiB0aGlzIGNhc2UgYXJlIG91dGxpbmVkIGluIHNlY3Rpb24NCiAgICAgICAgaHR0
cHM6Ly93d3cueGVucHJvamVjdC5vcmcvZ292ZXJuYW5jZS5odG1sI3Byb2plY3QtZGVjaXNpb25z
DQogICAgICAgIA0KICAgICAgICBQZW9wbGUgYWxsb3dlZCB0byB2b3RlIG9uIGJlaGFsZiBvZiB0
aGUgSHlwZXJ2aXNvciBwcm9qZWN0IGFyZToNCiAgICAgICAgSnVsaWVuIEdyYWxsLCBBbmR5IENv
b3BlciwgR2VvcmdlIER1bmxhcCwgSWFuIEphY2tzb24sIEphbiBCZXVsaWNoLCBLb25yYWQgUiBX
aWxrLCBTdGVmYW5vIFN0YWJlbGxpbmksIFRpbSBEZWVnYW4sIFdlaSBMaXUNCiAgICAgICAgYW5k
IEp1ZXJnZW4gR3Jvc3MgKGFzIFJlbGVhc2UgTWFuYWdlcikuDQogICAgICAgIA0KICAgICAgICBQ
ZW9wbGUgYWxsb3dlZCB0byB2b3RlIG9uIGJlaGFsZiBvZiB0aGUgWEFQSSBwcm9qZWN0IGFyZToN
CiAgICAgICAgSm9uIEx1ZGxhbSwgQ2hhbmRyaWthIFNyaW5pdmFzYW4sIERhdmlkIFNjb3R0LCBF
dWFuIEhhcnJpcywgR2VybWFubyBQZXJjb3NzaSwgU2lkZGhhcnRoIFZpbm90aCBLdW1hciwgSm9o
biBFbHNlLCBNYXRlIExha2F0LCBLb25zdGFudGluYSBDaHJlbW1vdSwgUm9iIEhvZXMsIFNpIEJl
YXVtb250LCBUaGFub3MgTWFrYXRvcywgVGhvbWFzIFNhbmRlcnMsIFZpbmVldGggVGhhbXBpIFJh
dmVlbmRyYW4sIFpoZW5nIExpDQogICAgICAgIA0KICAgICAgICBJIHByb3Bvc2UgdG8gdGFsbHkg
dGhlIHZvdGVzIGJ5IEZyaWRheSB0aGUgNnRoIG9mIE9jdG9iZXIuIFlvdSBjYW4gcmVwbHkgdmlh
DQogICAgICAgICsxOiBmb3IgcHJvcG9zYWwNCiAgICAgICAgLTE6IGFnYWluc3QgcHJvcG9zYWwN
CiAgICAgICAgaW4gcHVibGljIG9yIHByaXZhdGUuDQogICAgICAgIA0KICAgICAgICBWb3RlcyB3
aWxsIGJlIHRhbGxpZWQgYnkgc3VicHJvamVjdCDigJMgYWthIHRoZSBIeXBlcnZpc29yIGFuZCBY
QVBJIHByb2plY3QgYnkgJSBmb3IgdGhlIHByb3Bvc2FsIC0gYW5kIHRoZW4gYXZlcmFnZWQgYWNy
b3NzIHN1Yi1wcm9qZWN0cyB0aGF0IGFjaGlldmVkIHRoZSBxdW9ydW0uIA0KICAgICAgICANCiAg
ICAgICAgU3ViLXByb2plY3QgbmVlZHMgdG8gYWNoaWV2ZSB0aGUgZm9sbG93aW5nIHF1b3J1bSBv
ZiB2b3RlcyBpbiBmYXZvdXIgZm9yIHRoZSBzdWItcHJvamVjdOKAmXMgdm90ZSB0byBjb3VudA0K
ICAgICAgICBIeXBlcnZpc29yOiA0ICsgdm90ZXMNCiAgICAgICAgWEFQSTogNSArIHZvdGVzDQog
ICAgICAgIA0KICAgICAgICBBdCBsZWFzdCBvbmUgc3VicHJvamVjdCBuZWVkcyB0byBhY2hpZXZl
IGEgcXVvcnVtLiBTbyB0byBwYXNzLCB3ZSBuZWVkIHR3byBtb3JlIHZvdGVzIGZyb20gdGhlIEh5
cGVydmlzb3IgdGVhbS4NCiAgICAgICAgDQogICAgICAgIFRoZSBwcm9wb3NhbHMgYXJlIGF0dGFj
aGVkDQogICAgICAgIA0KICAgICAgICBSZWdhcmRzDQogICAgICAgIExhcnMNCiAgICAgICAgDQog
ICAgICAgIA0KICAgICAgICANCiAgICANCiAgICANCg0KX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Thu Jun 14 12:39:39 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 14 Jun 2018 12:39:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fTRXN-0008D0-KV; Thu, 14 Jun 2018 12:39:37 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=yhcv=ja=citrix.com=prvs=69694cac7=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fTRXM-0008Cj-PG
 for win-pv-devel@lists.xenproject.org; Thu, 14 Jun 2018 12:39:36 +0000
X-Inumbo-ID: fd8d00e7-6fcf-11e8-bc1d-65256ead4e3a
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-amaz-eas1.inumbo.com (Halon) with ESMTPS
 id fd8d00e7-6fcf-11e8-bc1d-65256ead4e3a;
 Thu, 14 Jun 2018 12:39:40 +0000 (UTC)
X-IronPort-AV: E=Sophos;i="5.51,222,1526342400"; d="scan'208";a="74653217"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Lars Kurth <lars.kurth@citrix.com>, xen-devel
 <xen-devel@lists.xenproject.org>, "xen-api@lists.xenproject.org"
 <xen-api@lists.xenproject.org>
Thread-Topic: [Votel] Graduation Review: Windows PV Driver
Thread-Index: AQHT47d0WQK13Asgt0yMPjxb4KjteaQflugAgEA6l4CAACAWAA==
Date: Thu, 14 Jun 2018 12:39:08 +0000
Message-ID: <73bba6aa5f064193bf4e42386890b73c@AMSPEX02CL03.citrite.net>
References: <413C1D1E-9F83-45FB-8FD1-FF21845071A1@citrix.com>
 <8F1DF9EF-E345-46EA-8E9E-835DD5B28280@citrix.com>
 <8471763E-48EB-452C-A7D9-2573E5F28416@citrix.com>
In-Reply-To: <8471763E-48EB-452C-A7D9-2573E5F28416@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
Subject: Re: [win-pv-devel] [Votel] Graduation Review: Windows PV Driver
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>
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
IE9mIExhcnMgS3VydGgNCj4gU2VudDogMTQgSnVuZSAyMDE4IDEyOjQzDQo+IFRvOiB4ZW4tZGV2
ZWwgPHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZz47IHhlbi0NCj4gYXBpQGxpc3RzLnhl
bnByb2plY3Qub3JnDQo+IENjOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc7IGNv
bW1pdHRlcnNAeGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFt3aW4tcHYtZGV2ZWxdIFtW
b3RlbF0gR3JhZHVhdGlvbiBSZXZpZXc6IFdpbmRvd3MgUFYgRHJpdmVyDQo+IA0KPiBIaSBhbGws
DQo+IA0KPiB0byBzdW1tYXJpemUgdGhpcyB0aHJlYWQsIHdlIGhhZCB0aGUgZm9sbG93aW5nIHZv
dGVzDQo+IA0KPiBYQVBJIFByb2plY3QgPT4gYWJzdGFpbmVkDQo+IEh5cGVydmlzb3IgPT4gNSB2
b3RlcyBpbiBmYXZvdXIsIG5vIG5lZ2F0aXZlIHZvdGVzLCB3aGljaCBpcyBzdWZmaWNpZW50IGZv
cg0KPiBncmFkdWF0aW9uDQoNClRoYW5rcyBMYXJzLCBJJ2xsIHBvaW50IG91dCB0aGF0IHdlJ3Zl
IGdyYWR1YXRlZCBpbiBteSBzdW1taXQgdGFsay4NCg0KICBwYXVsDQoNCj4gDQo+IFBlb3BsZSB2
b3RpbmcgaW4gZmF2b3VyOg0KPiBHZW9yZ2UgRHVubGFwLCBJYW4gSmFja3NvbiAoc2VlIFsxXSkN
Cj4gSmFuIEJldWxpY2gsIEFuZHJldyBDb29wZXIsIFdlaSBMaXUgKHRoaXMgdGhyZWFkKQ0KPiAN
Cj4gQmVzdCBSZWdhcmRzDQo+IExhcnMNCj4gDQo+IFJlZmVyZW5jZXMNCj4gKiBbMV0gaHR0cHM6
Ly94ZW4ubWFya21haWwub3JnL3RocmVhZC92Y2J2bG43YWEzb2Npa3g0DQo+IA0KPiDvu79PbiAw
NC8wNS8yMDE4LCAxNTo1MiwgIkxhcnMgS3VydGgiIDxsYXJzLmt1cnRoQGNpdHJpeC5jb20+IHdy
b3RlOg0KPiANCj4gICAgIEFuZCB0aGlzIHRpbWUgd2l0aCBwcm9wb3NhbA0KPiAgICAgTGFycw0K
PiANCj4gICAgIE9uIDA0LzA1LzIwMTgsIDE1OjUxLCAiTGFycyBLdXJ0aCIgPGxhcnMua3VydGhA
Y2l0cml4LmNvbT4gd3JvdGU6DQo+IA0KPiAgICAgICAgIEhpIGFsbCwNCj4gDQo+ICAgICAgICAg
QSBiaXQgbW9yZSB0aGFuIGEgd2VlayBhZ28sIEkgcHV0IG91dCBmb3IgaW5pdGlhbCByZXZpZXcg
dGhlIHByb3Bvc2FsIGZvcg0KPiDigJxHcmFkdWF0aW9uIFJldmlldzogV2luZG93cyBQViBEcml2
ZXLigJ0gYXQNCj4gaHR0cHM6Ly94ZW4ubWFya21haWwub3JnL3RocmVhZC92Y2J2bG43YWEzb2Np
a3g0DQo+ICAgICAgICAgVGhlcmUgaGFzIG5vdCBiZWVuIGZlZWRiYWNrLCBleGNlcHQgZm9yIHR3
byByZWNvcmRlZCB2b3RlcyBmcm9tIHRoZQ0KPiBYZW4gUHJvamVjdCBIeXBlcnZpc29yIFRlYW0g
YnkgSWFuIEphY2tzb24gYW5kIEdlb3JnZSBEdW5sYXAgKGJvdGggaW4NCj4gZmF2b3VyKS4NCj4g
DQo+ICAgICAgICAgaW4gYWNjb3JkYW5jZSB3aXRoIGh0dHBzOi8vd3d3LnhlbnByb2plY3Qub3Jn
L2dvdmVybmFuY2UuaHRtbCwgSQ0KPiBuZWVkIHRoZSBsZWFkZXJzaGlwIHRlYW1zIG9mIHRoZSB0
d28gbWF0dXJlIHByb2plY3RzIOKAkyB0aGUgSHlwZXJ2aXNvciBhbmQNCj4gdGhlIFhBUEkgcHJv
amVjdCDigJMgdG8gdm90ZSBvbiB0aGlzIHByb3Bvc2FsLg0KPiANCj4gICAgICAgICBUaGUgc3Bl
Y2lmaWMgdm90aW5nIHJ1bGVzIGluIHRoaXMgY2FzZSBhcmUgb3V0bGluZWQgaW4gc2VjdGlvbg0K
PiAgICAgICAgIGh0dHBzOi8vd3d3LnhlbnByb2plY3Qub3JnL2dvdmVybmFuY2UuaHRtbCNwcm9q
ZWN0LWRlY2lzaW9ucw0KPiANCj4gICAgICAgICBQZW9wbGUgYWxsb3dlZCB0byB2b3RlIG9uIGJl
aGFsZiBvZiB0aGUgSHlwZXJ2aXNvciBwcm9qZWN0IGFyZToNCj4gICAgICAgICBKdWxpZW4gR3Jh
bGwsIEFuZHkgQ29vcGVyLCBHZW9yZ2UgRHVubGFwLCBJYW4gSmFja3NvbiwgSmFuIEJldWxpY2gs
DQo+IEtvbnJhZCBSIFdpbGssIFN0ZWZhbm8gU3RhYmVsbGluaSwgVGltIERlZWdhbiwgV2VpIExp
dQ0KPiAgICAgICAgIGFuZCBKdWVyZ2VuIEdyb3NzIChhcyBSZWxlYXNlIE1hbmFnZXIpLg0KPiAN
Cj4gICAgICAgICBQZW9wbGUgYWxsb3dlZCB0byB2b3RlIG9uIGJlaGFsZiBvZiB0aGUgWEFQSSBw
cm9qZWN0IGFyZToNCj4gICAgICAgICBKb24gTHVkbGFtLCBDaGFuZHJpa2EgU3Jpbml2YXNhbiwg
RGF2aWQgU2NvdHQsIEV1YW4gSGFycmlzLCBHZXJtYW5vDQo+IFBlcmNvc3NpLCBTaWRkaGFydGgg
Vmlub3RoIEt1bWFyLCBKb2huIEVsc2UsIE1hdGUgTGFrYXQsIEtvbnN0YW50aW5hDQo+IENocmVt
bW91LCBSb2IgSG9lcywgU2kgQmVhdW1vbnQsIFRoYW5vcyBNYWthdG9zLCBUaG9tYXMgU2FuZGVy
cywNCj4gVmluZWV0aCBUaGFtcGkgUmF2ZWVuZHJhbiwgWmhlbmcgTGkNCj4gDQo+ICAgICAgICAg
SSBwcm9wb3NlIHRvIHRhbGx5IHRoZSB2b3RlcyBieSBGcmlkYXkgdGhlIDZ0aCBvZiBPY3RvYmVy
LiBZb3UgY2FuIHJlcGx5IHZpYQ0KPiAgICAgICAgICsxOiBmb3IgcHJvcG9zYWwNCj4gICAgICAg
ICAtMTogYWdhaW5zdCBwcm9wb3NhbA0KPiAgICAgICAgIGluIHB1YmxpYyBvciBwcml2YXRlLg0K
PiANCj4gICAgICAgICBWb3RlcyB3aWxsIGJlIHRhbGxpZWQgYnkgc3VicHJvamVjdCDigJMgYWth
IHRoZSBIeXBlcnZpc29yIGFuZCBYQVBJIHByb2plY3QNCj4gYnkgJSBmb3IgdGhlIHByb3Bvc2Fs
IC0gYW5kIHRoZW4gYXZlcmFnZWQgYWNyb3NzIHN1Yi1wcm9qZWN0cyB0aGF0IGFjaGlldmVkDQo+
IHRoZSBxdW9ydW0uDQo+IA0KPiAgICAgICAgIFN1Yi1wcm9qZWN0IG5lZWRzIHRvIGFjaGlldmUg
dGhlIGZvbGxvd2luZyBxdW9ydW0gb2Ygdm90ZXMgaW4gZmF2b3VyIGZvcg0KPiB0aGUgc3ViLXBy
b2plY3TigJlzIHZvdGUgdG8gY291bnQNCj4gICAgICAgICBIeXBlcnZpc29yOiA0ICsgdm90ZXMN
Cj4gICAgICAgICBYQVBJOiA1ICsgdm90ZXMNCj4gDQo+ICAgICAgICAgQXQgbGVhc3Qgb25lIHN1
YnByb2plY3QgbmVlZHMgdG8gYWNoaWV2ZSBhIHF1b3J1bS4gU28gdG8gcGFzcywgd2UgbmVlZA0K
PiB0d28gbW9yZSB2b3RlcyBmcm9tIHRoZSBIeXBlcnZpc29yIHRlYW0uDQo+IA0KPiAgICAgICAg
IFRoZSBwcm9wb3NhbHMgYXJlIGF0dGFjaGVkDQo+IA0KPiAgICAgICAgIFJlZ2FyZHMNCj4gICAg
ICAgICBMYXJzDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QN
Cj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 25 09:06:11 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jun 2018 09:06:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fXNRp-0003VL-Vv; Mon, 25 Jun 2018 09:06:09 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=ju2v=jl=citrix.com=prvs=707b31c7b=owen.smith@srs-us1.protection.inumbo.net>)
 id 1fXNRn-0003VE-Uu
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jun 2018 09:06:07 +0000
X-Inumbo-ID: 071cabf6-7857-11e8-bc1d-65256ead4e3a
Received: from SMTP03.CITRIX.COM (unknown [162.221.156.55])
 by us1-amaz-eas1.inumbo.com (Halon) with ESMTPS
 id 071cabf6-7857-11e8-bc1d-65256ead4e3a;
 Mon, 25 Jun 2018 09:06:21 +0000 (UTC)
X-IronPort-AV: E=Sophos;i="5.51,269,1526342400"; d="scan'208";a="58499933"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 25 Jun 2018 10:05:44 +0100
Message-ID: <20180625090544.8932-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.16.2.windows.1
MIME-Version: 1.0
Subject: [win-pv-devel] [PATCH] Update EVTCHN and GNTTAB interface headers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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>

Rml4ZXMgRXZ0Y2huIFVubWFzayBjYWxscwpVcGRhdGVzIGluZiByZXZpc2lvbiB0byAwOTAwMDAw
NAoKVGhpcyB3aWxsIGZpeCBhbiBpc3N1ZSB3aGVyZSB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMg
YW5kIHRpbWluZ3MsIHhlbnZiZAp3aWxsIHJlcXVlc3QgYSBzZWNvbmQgcmVib290IHRvIGZ1bmN0
aW9uIGNvcnJlY3RseS4KClNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0
cml4LmNvbT4KLS0tCiBpbmNsdWRlL2V2dGNobl9pbnRlcmZhY2UuaCB8IDEyOCArKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIGluY2x1ZGUvZ250dGFiX2ludGVy
ZmFjZS5oIHwgIDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBzcmMveGVudmJk
LmluZiAgICAgICAgICAgICB8ICAgNiArLS0KIHNyYy94ZW52YmQvcmluZy5jICAgICAgICAgIHwg
ICA2ICsrLQogNCBmaWxlcyBjaGFuZ2VkLCAxOTMgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ldnRjaG5faW50ZXJmYWNlLmggYi9pbmNsdWRlL2V2
dGNobl9pbnRlcmZhY2UuaAppbmRleCA2ZjhmZTQyLi4wNjhhNjk3IDEwMDY0NAotLS0gYS9pbmNs
dWRlL2V2dGNobl9pbnRlcmZhY2UuaAorKysgYi9pbmNsdWRlL2V2dGNobl9pbnRlcmZhY2UuaApA
QCAtMTEyLDEzICsxMTIsNiBAQCB0eXBlZGVmIFBYRU5CVVNfRVZUQ0hOX0NIQU5ORUwKICAgICAu
Li4KICAgICApOwogCi10eXBlZGVmIE5UU1RBVFVTCi0oKlhFTkJVU19FVlRDSE5fQklORF9WMiko
Ci0gICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgICAgIEludGVyZmFjZSwKLSAgICBJTiAgUFhF
TkJVU19FVlRDSE5fQ0hBTk5FTCAgQ2hhbm5lbCwKLSAgICBJTiAgVUxPTkcgICAgICAgICAgICAg
ICAgICAgQ3B1Ci0gICAgKTsKLQogLyohIFx0eXBlZGVmIFhFTkJVU19FVlRDSE5fQklORAogICAg
IFxicmllZiBCaW5kIGFuIGV2ZW50IGNoYW5uZWwgdG8gYSBzcGVjaWZpYyBDUFUKIApAQCAtMTM1
LDggKzEyOCw4IEBAIHR5cGVkZWYgTlRTVEFUVVMKICAgICBJTiAgVUNIQVIgICAgICAgICAgICAg
ICAgICAgTnVtYmVyCiAgICAgKTsKIAotdHlwZWRlZiBCT09MRUFOCi0oKlhFTkJVU19FVlRDSE5f
VU5NQVNLX1YxKSgKK3R5cGVkZWYgVk9JRAorKCpYRU5CVVNfRVZUQ0hOX1VOTUFTS19WNCkoCiAg
ICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgICAgIEludGVyZmFjZSwKICAgICBJTiAgUFhFTkJV
U19FVlRDSE5fQ0hBTk5FTCAgQ2hhbm5lbCwKICAgICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAg
ICAgSW5DYWxsYmFjawpAQCAtMTQ4LDE3ICsxNDEsMjggQEAgdHlwZWRlZiBCT09MRUFOCiAgICAg
XHBhcmFtIEludGVyZmFjZSBUaGUgaW50ZXJmYWNlIGhlYWRlcgogICAgIFxwYXJhbSBDaGFubmVs
IFRoZSBjaGFubmVsIGhhbmRsZQogICAgIFxwYXJhbSBJbkNhbGxiYWNrIFNldCB0byBUUlVFIGlm
IHRoaXMgbWV0aG9kIGlzIGludm9rZWQgaW4gY29udGV4dCBvZiB0aGUgY2hhbm5lbCBjYWxsYmFj
aworICAgIFxwYXJhbSBGb3JjZSBTZXQgdG8gVFJVRSBpZiB0aGUgdW5tYXNrIG11c3Qgc3VjY2Vl
ZCwgb3RoZXJ3aXNlIHNldCB0byBGQUxTRSBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIEZB
TFNFIGlmIHRoZSB1bm1hc2sgZGlkIG5vdCBjb21wbGV0ZS4KICovCi10eXBlZGVmIFZPSUQKK3R5
cGVkZWYgQk9PTEVBTgogKCpYRU5CVVNfRVZUQ0hOX1VOTUFTSykoCiAgICAgSU4gIFBJTlRFUkZB
Q0UgICAgICAgICAgICAgIEludGVyZmFjZSwKICAgICBJTiAgUFhFTkJVU19FVlRDSE5fQ0hBTk5F
TCAgQ2hhbm5lbCwKLSAgICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAgICAgSW5DYWxsYmFjawor
ICAgIElOICBCT09MRUFOICAgICAgICAgICAgICAgICBJbkNhbGxiYWNrLAorICAgIElOICBCT09M
RUFOICAgICAgICAgICAgICAgICBGb3JjZQorICAgICk7CisKK3R5cGVkZWYgVk9JRAorKCpYRU5C
VVNfRVZUQ0hOX1NFTkRfVjEpKAorICAgIElOICBQSU5URVJGQUNFICAgICAgICAgICAgICBJbnRl
cmZhY2UsCisgICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5ORUwgIENoYW5uZWwKICAgICApOwog
CiAvKiEgXHR5cGVkZWYgWEVOQlVTX0VWVENITl9TRU5ECiAgICAgXGJyaWVmIFNlbmQgYW4gZXZl
bnQgdG8gdGhlIHJlbW90ZSBlbmQgb2YgdGhlIGNoYW5uZWwKIAorICAgIEl0IGlzIGFzc3VtZWQg
dGhhdCB0aGUgZG9tYWluIGNhbm5vdCBzdXNwZW5kIGR1cmluZyB0aGlzIGNhbGwgc28KKyAgICBJ
UlFMIG11c3QgYmUgPj0gRElTUEFUQ0hfTEVWRUwuCisKICAgICBccGFyYW0gSW50ZXJmYWNlIFRo
ZSBpbnRlcmZhY2UgaGVhZGVyCiAgICAgXHBhcmFtIENoYW5uZWwgVGhlIGNoYW5uZWwgaGFuZGxl
CiAqLyAgCkBAIC0xODAsNiArMTg0LDQyIEBAIHR5cGVkZWYgVk9JRAogICAgIElOICBQWEVOQlVT
X0VWVENITl9DSEFOTkVMICBDaGFubmVsCiAgICAgKTsKIAorLyohIFx0eXBlZGVmIFhFTkJVU19F
VlRDSE5fR0VUX0NPVU5UCisgICAgXGJyaWVmIEdldCB0aGUgbnVtYmVyIG9mIGV2ZW50cyByZWNl
aXZlZCBieSB0aGUgY2hhbm5lbCBzaW5jZSBpdCB3YXMgb3BlbmVkCisKKyAgICBccGFyYW0gSW50
ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyCisgICAgXHBhcmFtIENoYW5uZWwgVGhlIGNoYW5u
ZWwgaGFuZGxlCisgICAgXHJldHVybiBUaGUgbnVtYmVyIG9mIGV2ZW50cworKi8KK3R5cGVkZWYg
VUxPTkcKKygqWEVOQlVTX0VWVENITl9HRVRfQ09VTlQpKAorICAgIElOICBQSU5URVJGQUNFICAg
ICAgICAgICAgICBJbnRlcmZhY2UsCisgICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5ORUwgIENo
YW5uZWwKKyAgICApOworCit0eXBlZGVmIE5UU1RBVFVTCisoKlhFTkJVU19FVlRDSE5fV0FJVF9W
NSkoCisgICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgICAgIEludGVyZmFjZSwKKyAgICBJTiAg
UFhFTkJVU19FVlRDSE5fQ0hBTk5FTCAgQ2hhbm5lbCwKKyAgICBJTiAgUExBUkdFX0lOVEVHRVIg
ICAgICAgICAgVGltZW91dCBPUFRJT05BTAorICAgICk7CisKKy8qISBcdHlwZWRlZiBYRU5CVVNf
RVZUQ0hOX1dBSVQKKyAgICBcYnJpZWYgV2FpdCBmb3IgZXZlbnRzIHRvIHRoZSBsb2NhbCBlbmQg
b2YgdGhlIGNoYW5uZWwKKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhlIGludGVyZmFjZSBoZWFk
ZXIKKyAgICBccGFyYW0gQ2hhbm5lbCBUaGUgY2hhbm5lbCBoYW5kbGUKKyAgICBccGFyYW0gQ291
bnQgVGhlIGV2ZW50IGNvdW50IHRvIHdhaXQgZm9yCisgICAgXHBhcmFtIFRpbWVvdXQgQW4gb3B0
aW9uYWwgdGltZW91dCB2YWx1ZSAoc2ltaWxhciB0byBLZVdhaXRGb3JTaW5nbGVPYmplY3QoKSwg
YnV0IG5vbi16ZXJvIHZhbHVlcyBhcmUgYWxsb3dlZCBhdCBESVNQQVRDSF9MRVZFTCkuCisqLwor
dHlwZWRlZiBOVFNUQVRVUworKCpYRU5CVVNfRVZUQ0hOX1dBSVQpKAorICAgIElOICBQSU5URVJG
QUNFICAgICAgICAgICAgICBJbnRlcmZhY2UsCisgICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5O
RUwgIENoYW5uZWwsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgIENvdW50LAorICAg
IElOICBQTEFSR0VfSU5URUdFUiAgICAgICAgICBUaW1lb3V0IE9QVElPTkFMCisgICAgKTsKKwog
LyohIFx0eXBlZGVmIFhFTkJVU19FVlRDSE5fR0VUX1BPUlQKICAgICBcYnJpZWYgR2V0IHRoZSBs
b2NhbCBwb3J0IG51bWJlciBib3VuZCB0byB0aGUgY2hhbm5lbAogCkBAIC0yMDksNjEgKzI0OSw4
MyBAQCB0eXBlZGVmIFZPSUQKIERFRklORV9HVUlEKEdVSURfWEVOQlVTX0VWVENITl9JTlRFUkZB
Q0UsIAogMHhiZTI0NDBhYywgMHgxMDk4LCAweDQxNTAsIDB4YWYsIDB4NGQsIDB4NDUsIDB4MmYs
IDB4YWQsIDB4Y2UsIDB4ZjksIDB4MjMpOwogCi0vKiEgXHN0cnVjdCBfWEVOQlVTX0VWVENITl9J
TlRFUkZBQ0VfVjEKLSAgICBcYnJpZWYgRVZUQ0hOIGludGVyZmFjZSB2ZXJzaW9uIDEKKy8qISBc
c3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WNAorICAgIFxicmllZiBFVlRDSE4gaW50
ZXJmYWNlIHZlcnNpb24gNAogICAgIFxpbmdyb3VwIGludGVyZmFjZXMKICovCi1zdHJ1Y3QgX1hF
TkJVU19FVlRDSE5fSU5URVJGQUNFX1YxIHsKK3N0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZB
Q0VfVjQgewogICAgIElOVEVSRkFDRSAgICAgICAgICAgICAgIEludGVyZmFjZTsKICAgICBYRU5C
VVNfRVZUQ0hOX0FDUVVJUkUgICBFdnRjaG5BY3F1aXJlOwogICAgIFhFTkJVU19FVlRDSE5fUkVM
RUFTRSAgIEV2dGNoblJlbGVhc2U7CiAgICAgWEVOQlVTX0VWVENITl9PUEVOICAgICAgRXZ0Y2hu
T3BlbjsKLSAgICBYRU5CVVNfRVZUQ0hOX1VOTUFTS19WMSBFdnRjaG5Vbm1hc2tWZXJzaW9uMTsK
LSAgICBYRU5CVVNfRVZUQ0hOX1NFTkQgICAgICBFdnRjaG5TZW5kOworICAgIFhFTkJVU19FVlRD
SE5fQklORCAgICAgIEV2dGNobkJpbmQ7CisgICAgWEVOQlVTX0VWVENITl9VTk1BU0tfVjQgRXZ0
Y2huVW5tYXNrVmVyc2lvbjQ7CisgICAgWEVOQlVTX0VWVENITl9TRU5EX1YxICAgRXZ0Y2huU2Vu
ZFZlcnNpb24xOwogICAgIFhFTkJVU19FVlRDSE5fVFJJR0dFUiAgIEV2dGNoblRyaWdnZXI7CiAg
ICAgWEVOQlVTX0VWVENITl9HRVRfUE9SVCAgRXZ0Y2huR2V0UG9ydDsKICAgICBYRU5CVVNfRVZU
Q0hOX0NMT1NFICAgICBFdnRjaG5DbG9zZTsKIH07CiAKLS8qISBcc3RydWN0IF9YRU5CVVNfRVZU
Q0hOX0lOVEVSRkFDRV9WMgotICAgIFxicmllZiBFVlRDSE4gaW50ZXJmYWNlIHZlcnNpb24gMgor
LyohIFxzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y1CisgICAgXGJyaWVmIEVWVENI
TiBpbnRlcmZhY2UgdmVyc2lvbiA1CiAgICAgXGluZ3JvdXAgaW50ZXJmYWNlcwogKi8KLXN0cnVj
dCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjIgeworc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lO
VEVSRkFDRV9WNSB7CiAgICAgSU5URVJGQUNFICAgICAgICAgICAgICAgSW50ZXJmYWNlOwogICAg
IFhFTkJVU19FVlRDSE5fQUNRVUlSRSAgIEV2dGNobkFjcXVpcmU7CiAgICAgWEVOQlVTX0VWVENI
Tl9SRUxFQVNFICAgRXZ0Y2huUmVsZWFzZTsKICAgICBYRU5CVVNfRVZUQ0hOX09QRU4gICAgICBF
dnRjaG5PcGVuOwotICAgIFhFTkJVU19FVlRDSE5fQklORF9WMiAgIEV2dGNobkJpbmRWZXJzaW9u
MjsKLSAgICBYRU5CVVNfRVZUQ0hOX1VOTUFTS19WMSBFdnRjaG5Vbm1hc2tWZXJzaW9uMTsKKyAg
ICBYRU5CVVNfRVZUQ0hOX0JJTkQgICAgICBFdnRjaG5CaW5kOworICAgIFhFTkJVU19FVlRDSE5f
VU5NQVNLX1Y0IEV2dGNoblVubWFza1ZlcnNpb240OworICAgIFhFTkJVU19FVlRDSE5fU0VORF9W
MSAgIEV2dGNoblNlbmRWZXJzaW9uMTsKKyAgICBYRU5CVVNfRVZUQ0hOX1RSSUdHRVIgICBFdnRj
aG5UcmlnZ2VyOworICAgIFhFTkJVU19FVlRDSE5fV0FJVF9WNSAgIEV2dGNobldhaXRWZXJzaW9u
NTsKKyAgICBYRU5CVVNfRVZUQ0hOX0dFVF9QT1JUICBFdnRjaG5HZXRQb3J0OworICAgIFhFTkJV
U19FVlRDSE5fQ0xPU0UgICAgIEV2dGNobkNsb3NlOworfTsKKworLyohIFxzdHJ1Y3QgX1hFTkJV
U19FVlRDSE5fSU5URVJGQUNFX1Y2CisgICAgXGJyaWVmIEVWVENITiBpbnRlcmZhY2UgdmVyc2lv
biA2CisgICAgXGluZ3JvdXAgaW50ZXJmYWNlcworKi8KK3N0cnVjdCBfWEVOQlVTX0VWVENITl9J
TlRFUkZBQ0VfVjYgeworICAgIElOVEVSRkFDRSAgICAgICAgICAgICAgIEludGVyZmFjZTsKKyAg
ICBYRU5CVVNfRVZUQ0hOX0FDUVVJUkUgICBFdnRjaG5BY3F1aXJlOworICAgIFhFTkJVU19FVlRD
SE5fUkVMRUFTRSAgIEV2dGNoblJlbGVhc2U7CisgICAgWEVOQlVTX0VWVENITl9PUEVOICAgICAg
RXZ0Y2huT3BlbjsKKyAgICBYRU5CVVNfRVZUQ0hOX0JJTkQgICAgICBFdnRjaG5CaW5kOworICAg
IFhFTkJVU19FVlRDSE5fVU5NQVNLX1Y0IEV2dGNoblVubWFza1ZlcnNpb240OwogICAgIFhFTkJV
U19FVlRDSE5fU0VORCAgICAgIEV2dGNoblNlbmQ7CiAgICAgWEVOQlVTX0VWVENITl9UUklHR0VS
ICAgRXZ0Y2huVHJpZ2dlcjsKKyAgICBYRU5CVVNfRVZUQ0hOX1dBSVRfVjUgICBFdnRjaG5XYWl0
VmVyc2lvbjU7CiAgICAgWEVOQlVTX0VWVENITl9HRVRfUE9SVCAgRXZ0Y2huR2V0UG9ydDsKICAg
ICBYRU5CVVNfRVZUQ0hOX0NMT1NFICAgICBFdnRjaG5DbG9zZTsKIH07CiAKLS8qISBcc3RydWN0
IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WMwotICAgIFxicmllZiBFVlRDSE4gaW50ZXJmYWNl
IHZlcnNpb24gMworLyohIFxzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y3CisgICAg
XGJyaWVmIEVWVENITiBpbnRlcmZhY2UgdmVyc2lvbiA3CiAgICAgXGluZ3JvdXAgaW50ZXJmYWNl
cwogKi8KLXN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjMgeworc3RydWN0IF9YRU5C
VVNfRVZUQ0hOX0lOVEVSRkFDRV9WNyB7CiAgICAgSU5URVJGQUNFICAgICAgICAgICAgICAgSW50
ZXJmYWNlOwogICAgIFhFTkJVU19FVlRDSE5fQUNRVUlSRSAgIEV2dGNobkFjcXVpcmU7CiAgICAg
WEVOQlVTX0VWVENITl9SRUxFQVNFICAgRXZ0Y2huUmVsZWFzZTsKICAgICBYRU5CVVNfRVZUQ0hO
X09QRU4gICAgICBFdnRjaG5PcGVuOwotICAgIFhFTkJVU19FVlRDSE5fQklORF9WMiAgIEV2dGNo
bkJpbmRWZXJzaW9uMjsKLSAgICBYRU5CVVNfRVZUQ0hOX1VOTUFTSyAgICBFdnRjaG5Vbm1hc2s7
CisgICAgWEVOQlVTX0VWVENITl9CSU5EICAgICAgRXZ0Y2huQmluZDsKKyAgICBYRU5CVVNfRVZU
Q0hOX1VOTUFTS19WNCBFdnRjaG5Vbm1hc2tWZXJzaW9uNDsKICAgICBYRU5CVVNfRVZUQ0hOX1NF
TkQgICAgICBFdnRjaG5TZW5kOwogICAgIFhFTkJVU19FVlRDSE5fVFJJR0dFUiAgIEV2dGNoblRy
aWdnZXI7CisgICAgWEVOQlVTX0VWVENITl9HRVRfQ09VTlQgRXZ0Y2huR2V0Q291bnQ7CisgICAg
WEVOQlVTX0VWVENITl9XQUlUICAgICAgRXZ0Y2huV2FpdDsKICAgICBYRU5CVVNfRVZUQ0hOX0dF
VF9QT1JUICBFdnRjaG5HZXRQb3J0OwogICAgIFhFTkJVU19FVlRDSE5fQ0xPU0UgICAgIEV2dGNo
bkNsb3NlOwogfTsKIAotLyohIFxzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y0Ci0g
ICAgXGJyaWVmIEVWVENITiBpbnRlcmZhY2UgdmVyc2lvbiA0CisvKiEgXHN0cnVjdCBfWEVOQlVT
X0VWVENITl9JTlRFUkZBQ0VfVjgKKyAgICBcYnJpZWYgRVZUQ0hOIGludGVyZmFjZSB2ZXJzaW9u
IDgKICAgICBcaW5ncm91cCBpbnRlcmZhY2VzCiAqLwotc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lO
VEVSRkFDRV9WNCB7CitzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y4IHsKICAgICBJ
TlRFUkZBQ0UgICAgICAgICAgICAgICBJbnRlcmZhY2U7CiAgICAgWEVOQlVTX0VWVENITl9BQ1FV
SVJFICAgRXZ0Y2huQWNxdWlyZTsKICAgICBYRU5CVVNfRVZUQ0hOX1JFTEVBU0UgICBFdnRjaG5S
ZWxlYXNlOwpAQCAtMjcyLDExICszMzQsMTMgQEAgc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVS
RkFDRV9WNCB7CiAgICAgWEVOQlVTX0VWVENITl9VTk1BU0sgICAgRXZ0Y2huVW5tYXNrOwogICAg
IFhFTkJVU19FVlRDSE5fU0VORCAgICAgIEV2dGNoblNlbmQ7CiAgICAgWEVOQlVTX0VWVENITl9U
UklHR0VSICAgRXZ0Y2huVHJpZ2dlcjsKKyAgICBYRU5CVVNfRVZUQ0hOX0dFVF9DT1VOVCBFdnRj
aG5HZXRDb3VudDsKKyAgICBYRU5CVVNfRVZUQ0hOX1dBSVQgICAgICBFdnRjaG5XYWl0OwogICAg
IFhFTkJVU19FVlRDSE5fR0VUX1BPUlQgIEV2dGNobkdldFBvcnQ7CiAgICAgWEVOQlVTX0VWVENI
Tl9DTE9TRSAgICAgRXZ0Y2huQ2xvc2U7CiB9OwogCi10eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0VW
VENITl9JTlRFUkZBQ0VfVjQgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0UsICpQWEVOQlVTX0VWVENI
Tl9JTlRFUkZBQ0U7Cit0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjgg
WEVOQlVTX0VWVENITl9JTlRFUkZBQ0UsICpQWEVOQlVTX0VWVENITl9JTlRFUkZBQ0U7CiAKIC8q
ISBcZGVmIFhFTkJVU19FVlRDSE4KICAgICBcYnJpZWYgTWFjcm8gYXQgYXNzaXN0IGluIG1ldGhv
ZCBpbnZvY2F0aW9uCkBAIC0yODYsOCArMzUwLDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTkJVU19F
VlRDSE5fSU5URVJGQUNFX1Y0IFhFTkJVU19FVlRDSE5fSU5URVJGQUNFLCAqUFhFTkJVU19FVlQK
IAogI2VuZGlmICAvLyBfV0lORExMCiAKLSNkZWZpbmUgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0Vf
VkVSU0lPTl9NSU4gMQotI2RlZmluZSBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WRVJTSU9OX01B
WCA0CisjZGVmaW5lIFhFTkJVU19FVlRDSE5fSU5URVJGQUNFX1ZFUlNJT05fTUlOIDQKKyNkZWZp
bmUgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVkVSU0lPTl9NQVggOAogCiAjZW5kaWYgIC8vIF9Y
RU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9ICiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ250dGFiX2lu
dGVyZmFjZS5oIGIvaW5jbHVkZS9nbnR0YWJfaW50ZXJmYWNlLmgKaW5kZXggZDI5NDQwYS4uNjEy
NzJhYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9nbnR0YWJfaW50ZXJmYWNlLmgKKysrIGIvaW5jbHVk
ZS9nbnR0YWJfaW50ZXJmYWNlLmgKQEAgLTE0OCw2ICsxNDgsMjYgQEAgdHlwZWRlZiBVTE9ORwog
ICAgIElOICBQWEVOQlVTX0dOVFRBQl9FTlRSWSAgICAgICAgRW50cnkKICAgICApOwogCisvKiEg
XHR5cGVkZWYgWEVOQlVTX0dOVFRBQl9RVUVSWV9SRUZFUkVOQ0UKKyAgICBcYnJpZWYgR2V0IHRo
ZSByZWZlcmVuY2UgbnVtYmVyIG9mIHRoZSBlbnRyeQorCisgICAgXHBhcmFtIEludGVyZmFjZSBU
aGUgaW50ZXJmYWNlIGhlYWRlcgorICAgIFxwYXJhbSBSZWZlcmVuY2UgVGhlIHJlZmVyZW5jZSBu
dW1iZXIKKyAgICBccGFyYW0gUGZuIEFuIG9wdGlvbmFsIHBvaW50ZXIgdG8gcmVjZWl2ZSB0aGUg
dmFsdWUgb2YgdGhlIHJlZmVyZW5jZSBmcmFtZSBudW1iZXIKKyAgICBccGFyYW0gUmVhZE9ubHkg
QW4gb3B0aW9uYWwgcG9pbnRlciB0byByZWNlaXZlIHRoZSBib29sZWFuIHZhbHVlIG9mIHRoZSBy
ZWFkLW9ubHkgZmxhZworKi8KK3R5cGVkZWYgTlRTVEFUVVMKKygqWEVOQlVTX0dOVFRBQl9RVUVS
WV9SRUZFUkVOQ0UpKAorICAgIElOICBQSU5URVJGQUNFICBJbnRlcmZhY2UsCisgICAgSU4gIFVM
T05HICAgICAgIFJlZmVyZW5jZSwKKyAgICBPVVQgUFBGTl9OVU1CRVIgUGZuIE9QVElPTkFMLAor
ICAgIE9VVCBQQk9PTEVBTiAgICBSZWFkT25seSBPUFRJT05BTAorICAgICk7CisKKyNkZWZpbmUg
WEVOQlVTX0dOVFRBQl9DT05TT0xFX1JFRkVSRU5DRSAwCisjZGVmaW5lIFhFTkJVU19HTlRUQUJf
U1RPUkVfUkVGRVJFTkNFICAgMQorCisKIC8qISBcdHlwZWRlZiBYRU5CVVNfR05UVEFCX0RFU1RS
T1lfQ0FDSEUKICAgICBcYnJpZWYgRGVzdHJveSBhIGNhY2hlIG9mIGdyYW50IHRhYmxlIGVudHJp
ZXMKIApAQCAtMTYzLDYgKzE4MywzOSBAQCB0eXBlZGVmIFZPSUQKICAgICBJTiAgUFhFTkJVU19H
TlRUQUJfQ0FDSEUgICAgQ2FjaGUKICAgICApOwogCisvKiEgXHR5cGVkZWYgWEVOQlVTX0dOVFRB
Ql9NQVBfRk9SRUlHTl9QQUdFUworICAgIFxicmllZiBNYXAgZm9yZWlnbiBtZW1vcnkgcGFnZXMg
aW50byB0aGUgc3lzdGVtIGFkZHJlc3Mgc3BhY2UKKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhl
IGludGVyZmFjZSBoZWFkZXIKKyAgICBccGFyYW0gRG9tYWluIFRoZSBkb21pZCBvZiB0aGUgZm9y
ZWlnbiBkb21haW4gdGhhdCBncmFudGVkIHRoZSBwYWdlcworICAgIFxwYXJhbSBOdW1iZXJQYWdl
cyBOdW1iZXIgb2YgcGFnZXMgdG8gbWFwCisgICAgXHBhcmFtIFJlZmVyZW5jZXMgQXJyYXkgb2Yg
Z3JhbnQgcmVmZXJlbmNlIG51bWJlcnMgc2hhcmVkIGJ5IHRoZSBmb3JlaWduIGRvbWFpbgorICAg
IFxwYXJhbSBSZWFkT25seSBJZiBUUlVFLCBwYWdlcyBhcmUgbWFwcGVkIHdpdGggcmVhZC1vbmx5
IGFjY2VzcworICAgIFxwYXJhbSBBZGRyZXNzIFRoZSBwaHlzaWNhbCBhZGRyZXNzIHRoYXQgdGhl
IGZvcmVpZ24gcGFnZXMgYXJlIG1hcHBlZCB1bmRlcgorKi8KKwordHlwZWRlZiBOVFNUQVRVUwor
KCpYRU5CVVNfR05UVEFCX01BUF9GT1JFSUdOX1BBR0VTKSgKKyAgICBJTiAgUElOVEVSRkFDRSAg
ICAgICAgICAgICAgSW50ZXJmYWNlLAorICAgIElOICBVU0hPUlQgICAgICAgICAgICAgICAgICBE
b21haW4sCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgIE51bWJlclBhZ2VzLAorICAg
IElOICBQVUxPTkcgICAgICAgICAgICAgICAgICBSZWZlcmVuY2VzLAorICAgIElOICBCT09MRUFO
ICAgICAgICAgICAgICAgICBSZWFkT25seSwKKyAgICBPVVQgUEhZU0lDQUxfQUREUkVTUyAgICAg
ICAgKkFkZHJlc3MKKyAgICApOworCisvKiEgXHR5cGVkZWYgWEVOQlVTX0dOVFRBQl9VTk1BUF9G
T1JFSUdOX1BBR0VTCisgICAgXGJyaWVmIFVubWFwIGZvcmVpZ24gbWVtb3J5IHBhZ2VzIGZyb20g
dGhlIHN5c3RlbSBhZGRyZXNzIHNwYWNlCisKKyAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRl
cmZhY2UgaGVhZGVyCisgICAgXHBhcmFtIEFkZHJlc3MgVGhlIHBoeXNpY2FsIGFkZHJlc3MgdGhh
dCB0aGUgZm9yZWlnbiBwYWdlcyBhcmUgbWFwcGVkIHVuZGVyCisqLwordHlwZWRlZiBOVFNUQVRV
UworKCpYRU5CVVNfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFHRVMpKAorICAgIElOICBQSU5URVJG
QUNFICAgICAgICAgICAgICBJbnRlcmZhY2UsCisgICAgSU4gIFBIWVNJQ0FMX0FERFJFU1MgICAg
ICAgIEFkZHJlc3MKKyAgICApOworCiAvLyB7NzYzNjc5QzUtRTVDMi00QTZELThCODgtNkJCMDJF
QzQyRDhFfQogREVGSU5FX0dVSUQoR1VJRF9YRU5CVVNfR05UVEFCX0lOVEVSRkFDRSwgCiAweDc2
MzY3OWM1LCAweGU1YzIsIDB4NGE2ZCwgMHg4YiwgMHg4OCwgMHg2YiwgMHhiMCwgMHgyZSwgMHhj
NCwgMHgyZCwgMHg4ZSk7CkBAIC0xODIsNyArMjM1LDQyIEBAIHN0cnVjdCBfWEVOQlVTX0dOVFRB
Ql9JTlRFUkZBQ0VfVjEgewogICAgIFhFTkJVU19HTlRUQUJfREVTVFJPWV9DQUNIRSAgICAgICAg
IEdudHRhYkRlc3Ryb3lDYWNoZTsKIH07CiAKLXR5cGVkZWYgc3RydWN0IF9YRU5CVVNfR05UVEFC
X0lOVEVSRkFDRV9WMSBYRU5CVVNfR05UVEFCX0lOVEVSRkFDRSwgKlBYRU5CVVNfR05UVEFCX0lO
VEVSRkFDRTsKKy8qISBcc3RydWN0IF9YRU5CVVNfR05UVEFCX0lOVEVSRkFDRV9WMgorICAgIFxi
cmllZiBHTlRUQUIgaW50ZXJmYWNlIHZlcnNpb24gMgorICAgIFxpbmdyb3VwIGludGVyZmFjZXMK
KyovCitzdHJ1Y3QgX1hFTkJVU19HTlRUQUJfSU5URVJGQUNFX1YyIHsKKyAgICBJTlRFUkZBQ0Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2U7CisgICAgWEVOQlVTX0dOVFRBQl9B
Q1FVSVJFICAgICAgICAgICAgICAgR250dGFiQWNxdWlyZTsKKyAgICBYRU5CVVNfR05UVEFCX1JF
TEVBU0UgICAgICAgICAgICAgICBHbnR0YWJSZWxlYXNlOworICAgIFhFTkJVU19HTlRUQUJfQ1JF
QVRFX0NBQ0hFICAgICAgICAgIEdudHRhYkNyZWF0ZUNhY2hlOworICAgIFhFTkJVU19HTlRUQUJf
UEVSTUlUX0ZPUkVJR05fQUNDRVNTIEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M7CisgICAgWEVO
QlVTX0dOVFRBQl9SRVZPS0VfRk9SRUlHTl9BQ0NFU1MgR250dGFiUmV2b2tlRm9yZWlnbkFjY2Vz
czsKKyAgICBYRU5CVVNfR05UVEFCX0dFVF9SRUZFUkVOQ0UgICAgICAgICBHbnR0YWJHZXRSZWZl
cmVuY2U7CisgICAgWEVOQlVTX0dOVFRBQl9ERVNUUk9ZX0NBQ0hFICAgICAgICAgR250dGFiRGVz
dHJveUNhY2hlOworICAgIFhFTkJVU19HTlRUQUJfTUFQX0ZPUkVJR05fUEFHRVMgICAgIEdudHRh
Yk1hcEZvcmVpZ25QYWdlczsKKyAgICBYRU5CVVNfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFHRVMg
ICBHbnR0YWJVbm1hcEZvcmVpZ25QYWdlczsKK307CisKKy8qISBcc3RydWN0IF9YRU5CVVNfR05U
VEFCX0lOVEVSRkFDRV9WMworICAgIFxicmllZiBHTlRUQUIgaW50ZXJmYWNlIHZlcnNpb24gMwor
ICAgIFxpbmdyb3VwIGludGVyZmFjZXMKKyovCitzdHJ1Y3QgX1hFTkJVU19HTlRUQUJfSU5URVJG
QUNFX1YzIHsKKyAgICBJTlRFUkZBQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZh
Y2U7CisgICAgWEVOQlVTX0dOVFRBQl9BQ1FVSVJFICAgICAgICAgICAgICAgR250dGFiQWNxdWly
ZTsKKyAgICBYRU5CVVNfR05UVEFCX1JFTEVBU0UgICAgICAgICAgICAgICBHbnR0YWJSZWxlYXNl
OworICAgIFhFTkJVU19HTlRUQUJfQ1JFQVRFX0NBQ0hFICAgICAgICAgIEdudHRhYkNyZWF0ZUNh
Y2hlOworICAgIFhFTkJVU19HTlRUQUJfUEVSTUlUX0ZPUkVJR05fQUNDRVNTIEdudHRhYlBlcm1p
dEZvcmVpZ25BY2Nlc3M7CisgICAgWEVOQlVTX0dOVFRBQl9SRVZPS0VfRk9SRUlHTl9BQ0NFU1Mg
R250dGFiUmV2b2tlRm9yZWlnbkFjY2VzczsKKyAgICBYRU5CVVNfR05UVEFCX0dFVF9SRUZFUkVO
Q0UgICAgICAgICBHbnR0YWJHZXRSZWZlcmVuY2U7CisgICAgWEVOQlVTX0dOVFRBQl9RVUVSWV9S
RUZFUkVOQ0UgICAgICAgR250dGFiUXVlcnlSZWZlcmVuY2U7CisgICAgWEVOQlVTX0dOVFRBQl9E
RVNUUk9ZX0NBQ0hFICAgICAgICAgR250dGFiRGVzdHJveUNhY2hlOworICAgIFhFTkJVU19HTlRU
QUJfTUFQX0ZPUkVJR05fUEFHRVMgICAgIEdudHRhYk1hcEZvcmVpZ25QYWdlczsKKyAgICBYRU5C
VVNfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFHRVMgICBHbnR0YWJVbm1hcEZvcmVpZ25QYWdlczsK
K307CisKK3R5cGVkZWYgc3RydWN0IF9YRU5CVVNfR05UVEFCX0lOVEVSRkFDRV9WMyBYRU5CVVNf
R05UVEFCX0lOVEVSRkFDRSwgKlBYRU5CVVNfR05UVEFCX0lOVEVSRkFDRTsKIAogLyohIFxkZWYg
WEVOQlVTX0dOVFRBQgogICAgIFxicmllZiBNYWNybyBhdCBhc3Npc3QgaW4gbWV0aG9kIGludm9j
YXRpb24KQEAgLTE5Myw3ICsyODEsNyBAQCB0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0dOVFRBQl9J
TlRFUkZBQ0VfVjEgWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0UsICpQWEVOQlVTX0dOVAogI2VuZGlm
ICAvLyBfV0lORExMCiAKICNkZWZpbmUgWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0VfVkVSU0lPTl9N
SU4gMQotI2RlZmluZSBYRU5CVVNfR05UVEFCX0lOVEVSRkFDRV9WRVJTSU9OX01BWCAxCisjZGVm
aW5lIFhFTkJVU19HTlRUQUJfSU5URVJGQUNFX1ZFUlNJT05fTUFYIDMKIAogI2VuZGlmICAvLyBf
WEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0VfSAogCmRpZmYgLS1naXQgYS9zcmMveGVudmJkLmluZiBi
L3NyYy94ZW52YmQuaW5mCmluZGV4IGJiNWFkYTIuLjUyMjBhZGQgMTAwNjQ0Ci0tLSBhL3NyYy94
ZW52YmQuaW5mCisrKyBiL3NyYy94ZW52YmQuaW5mCkBAIC01NCw5ICs1NCw5IEBAIHhlbnZiZF9j
b2luc3QuZGxsPTAsLAogJVZlbmRvciU9SW5zdCxOVCRBUkNIJAogCiBbSW5zdC5OVCRBUkNIJF0K
LSVYZW5WYmROYW1lJT1YZW5WYmRfSW5zdCxYRU5CVVNcVkVOX0BWRU5ET1JfUFJFRklYQEBWRU5E
T1JfREVWSUNFX0lEQCZERVZfVkJEJlJFVl8wOTAwMDAwMAotJVhlblZiZE5hbWUlPVhlblZiZF9J
bnN0LFhFTkJVU1xWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMSZERVZfVkJEJlJFVl8wOTAwMDAwMAot
JVhlblZiZE5hbWUlPVhlblZiZF9JbnN0LFhFTkJVU1xWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMiZE
RVZfVkJEJlJFVl8wOTAwMDAwMAorJVhlblZiZE5hbWUlPVhlblZiZF9JbnN0LFhFTkJVU1xWRU5f
QFZFTkRPUl9QUkVGSVhAQFZFTkRPUl9ERVZJQ0VfSURAJkRFVl9WQkQmUkVWXzA5MDAwMDA0Cisl
WGVuVmJkTmFtZSU9WGVuVmJkX0luc3QsWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJWEAwMDAxJkRF
Vl9WQkQmUkVWXzA5MDAwMDA0CislWGVuVmJkTmFtZSU9WGVuVmJkX0luc3QsWEVOQlVTXFZFTl9A
VkVORE9SX1BSRUZJWEAwMDAyJkRFVl9WQkQmUkVWXzA5MDAwMDA0CiAKIFtYZW5WYmRfSW5zdF0g
CiBDb3B5RmlsZXM9WGVuVmJkX0NvcHlmaWxlcwpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9yaW5n
LmMgYi9zcmMveGVudmJkL3JpbmcuYwppbmRleCBhN2I2MzZkLi4yZjVjODc2IDEwMDY0NAotLS0g
YS9zcmMveGVudmJkL3JpbmcuYworKysgYi9zcmMveGVudmJkL3JpbmcuYwpAQCAtMTY0OSw3ICsx
NjQ5LDggQEAgQmxraWZSaW5nRHBjKAogICAgIFhFTkJVU19FVlRDSE4oVW5tYXNrLAogICAgICAg
ICAgICAgICAgICAgJlJpbmctPkV2dGNobkludGVyZmFjZSwKICAgICAgICAgICAgICAgICAgIEJs
a2lmUmluZy0+Q2hhbm5lbCwKLSAgICAgICAgICAgICAgICAgIEZBTFNFKTsKKyAgICAgICAgICAg
ICAgICAgIEZBTFNFLAorICAgICAgICAgICAgICAgICAgVFJVRSk7CiB9CiAKIHN0YXRpYyBOVFNU
QVRVUwpAQCAtMTkyMyw3ICsxOTI0LDggQEAgQmxraWZSaW5nQ29ubmVjdCgKICAgICBYRU5CVVNf
RVZUQ0hOKFVubWFzaywKICAgICAgICAgICAgICAgICAgICZSaW5nLT5FdnRjaG5JbnRlcmZhY2Us
CiAgICAgICAgICAgICAgICAgICBCbGtpZlJpbmctPkNoYW5uZWwsCi0gICAgICAgICAgICAgICAg
ICBGQUxTRSk7CisgICAgICAgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgICAgICAgIFRS
VUUpOwogCiAgICAgc3RhdHVzID0gUnRsU3RyaW5nQ2NoUHJpbnRmQShOYW1lLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTUFYX05BTUVfTEVOLAotLSAKMi4xNi4yLndpbmRvd3Mu
MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1w
di1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 25 09:11:06 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jun 2018 09:11:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fXNWb-0004FQ-O3; Mon, 25 Jun 2018 09:11:05 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=ju2v=jl=citrix.com=prvs=707b31c7b=owen.smith@srs-us1.protection.inumbo.net>)
 id 1fXNWa-0004FJ-OM
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jun 2018 09:11:04 +0000
X-Inumbo-ID: b8041f1f-7857-11e8-bc1d-65256ead4e3a
Received: from SMTP03.CITRIX.COM (unknown [162.221.156.55])
 by us1-amaz-eas1.inumbo.com (Halon) with ESMTPS
 id b8041f1f-7857-11e8-bc1d-65256ead4e3a;
 Mon, 25 Jun 2018 09:11:18 +0000 (UTC)
X-IronPort-AV: E=Sophos;i="5.51,269,1526342400"; d="scan'208";a="58500227"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 25 Jun 2018 10:10:47 +0100
Message-ID: <20180625091047.9164-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.16.2.windows.1
MIME-Version: 1.0
Subject: [win-pv-devel] [PATCH 2/2] Update STORE interface header
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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>

Tm8gbmV3IGZlYXR1cmVzIG9mIFNUT1JFdjIgYXJlIHVzZWQKClNpZ25lZC1vZmYtYnk6IE93ZW4g
U21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0tCiBpbmNsdWRlL3N0b3JlX2ludGVyZmFj
ZS5oIHwgNjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0K
IDEgZmlsZSBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL2luY2x1ZGUvc3RvcmVfaW50ZXJmYWNlLmggYi9pbmNsdWRlL3N0b3JlX2ludGVyZmFj
ZS5oCmluZGV4IDViY2JiYTMuLjUyZjFhMWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc3RvcmVfaW50
ZXJmYWNlLmgKKysrIGIvaW5jbHVkZS9zdG9yZV9pbnRlcmZhY2UuaApAQCAtNTAsNiArNTAsMjMg
QEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTkJVU19TVE9SRV9UUkFOU0FDVElPTiAgICBYRU5CVVNfU1RP
UkVfVFJBTlNBQ1RJT04sICpQWEVOQlVTX1MKICovCiB0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX1NU
T1JFX1dBVENIICAgICAgICAgIFhFTkJVU19TVE9SRV9XQVRDSCwgKlBYRU5CVVNfU1RPUkVfV0FU
Q0g7CiAKKy8qISBcdHlwZWRlZiBYRU5CVVNfU1RPUkVfUEVSTUlTU0lPTl9NQVNLCisgICAgXGJy
aWVmIEJpdG1hc2sgb2YgWGVuU3RvcmUga2V5IHBlcm1pc3Npb25zCisqLwordHlwZWRlZiBlbnVt
IF9YRU5CVVNfU1RPUkVfUEVSTUlTU0lPTl9NQVNLIHsKKyAgICBYRU5CVVNfU1RPUkVfUEVSTV9O
T05FID0gMCwKKyAgICBYRU5CVVNfU1RPUkVfUEVSTV9SRUFEID0gMSwKKyAgICBYRU5CVVNfU1RP
UkVfUEVSTV9XUklURSA9IDIsCit9IFhFTkJVU19TVE9SRV9QRVJNSVNTSU9OX01BU0s7CisKKy8q
ISBcdHlwZWRlZiBYRU5CVVNfU1RPUkVfUEVSTUlTU0lPTgorICAgIFxicmllZiBYZW5TdG9yZSBr
ZXkgcGVybWlzc2lvbnMgZW50cnkgZm9yIGEgc2luZ2xlIGRvbWFpbgorKi8KK3R5cGVkZWYgc3Ry
dWN0IF9YRU5CVVNfU1RPUkVfUEVSTUlTU0lPTiB7CisgICAgVVNIT1JUICAgICAgICAgICAgICAg
ICAgICAgICAgICBEb21haW47CisgICAgWEVOQlVTX1NUT1JFX1BFUk1JU1NJT05fTUFTSyAgICBN
YXNrOworfSBYRU5CVVNfU1RPUkVfUEVSTUlTU0lPTiwgKlBYRU5CVVNfU1RPUkVfUEVSTUlTU0lP
TjsKKwogLyohIFx0eXBlZGVmIFhFTkJVU19TVE9SRV9BQ1FVSVJFCiAgICAgXGJyaWVmIEFjcXVp
cmUgYSByZWZlcmVuY2UgdG8gdGhlIFNUT1JFIGludGVyZmFjZQogCkBAIC0yNDcsMTAgKzI2NCwz
NiBAQCB0eXBlZGVmIFZPSUQKICAgICBJTiAgUElOVEVSRkFDRSAgSW50ZXJmYWNlCiAgICAgKTsK
IAorLyohIFx0eXBlZGVmIFhFTkJVU19TVE9SRV9QRVJNSVNTSU9OU19TRVQKKyAgICBcYnJpZWYg
U2V0IHBlcm1pc3Npb25zIGZvciBhIFhlblN0b3JlIGtleQorCisgICAgXHBhcmFtIEludGVyZmFj
ZSBUaGUgaW50ZXJmYWNlIGhlYWRlcgorICAgIFxwYXJhbSBUcmFuc2FjdGlvbiBUaGUgdHJhbnNh
Y3Rpb24gaGFuZGxlIChOVUxMIGlmIHRoaXMgaXMgbm90CisgICAgcGFydCBvZiBhIHRyYW5zYWN0
aW9uKQorICAgIFxwYXJhbSBQcmVmaXggQW4gb3B0aW9uYWwgcHJlZml4IGZvciB0aGUgXGEgTm9k
ZQorICAgIFxwYXJhbSBOb2RlIFRoZSBjb25jYXRlbmF0aW9uIG9mIHRoZSBcYSBQcmVmaXggYW5k
IHRoaXMgdmFsdWUgc3BlY2lmaWVzCisgICAgdGhlIFhlblN0b3JlIGtleSB0byBzZXQgcGVybWlz
c2lvbnMgb2YKKyAgICBccGFyYW0gUGVybWlzc2lvbnMgQW4gYXJyYXkgb2YgcGVybWlzc2lvbnMg
dG8gc2V0CisgICAgXHBhcmFtIE51bWJlclBlcm1pc3Npb25zIE51bWJlciBvZiBlbGVtZW50cyBp
biB0aGUgXGEgUGVybWlzc2lvbnMgYXJyYXkKKyovCit0eXBlZGVmIE5UU1RBVFVTCisoKlhFTkJV
U19TVE9SRV9QRVJNSVNTSU9OU19TRVQpKAorICAgIElOICBQSU5URVJGQUNFICAgICAgICAgICAg
ICAgICAgSW50ZXJmYWNlLAorICAgIElOICBQWEVOQlVTX1NUT1JFX1RSQU5TQUNUSU9OICAgVHJh
bnNhY3Rpb24gT1BUSU9OQUwsCisgICAgSU4gIFBDSEFSICAgICAgICAgICAgICAgICAgICAgICBQ
cmVmaXggT1BUSU9OQUwsCisgICAgSU4gIFBDSEFSICAgICAgICAgICAgICAgICAgICAgICBOb2Rl
LAorICAgIElOICBQWEVOQlVTX1NUT1JFX1BFUk1JU1NJT04gICAgUGVybWlzc2lvbnMsCisgICAg
SU4gIFVMT05HICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXJQZXJtaXNzaW9ucworICAgICk7
CisKIC8vIHs4NjgyNEMzQi1EMzRFLTQ3NTMtQjI4MS0yRjFFM0FEMjE0RDd9CiBERUZJTkVfR1VJ
RChHVUlEX1hFTkJVU19TVE9SRV9JTlRFUkZBQ0UsIAogMHg4NjgyNGMzYiwgMHhkMzRlLCAweDQ3
NTMsIDB4YjIsIDB4ODEsIDB4MmYsIDB4MWUsIDB4M2EsIDB4ZDIsIDB4MTQsIDB4ZDcpOwogCisv
KiEgXHN0cnVjdCBfWEVOQlVTX1NUT1JFX0lOVEVSRkFDRV9WMQorICAgIFxicmllZiBTVE9SRSBp
bnRlcmZhY2UgdmVyc2lvbiAxCisgICAgXGluZ3JvdXAgaW50ZXJmYWNlcworKi8KIHN0cnVjdCBf
WEVOQlVTX1NUT1JFX0lOVEVSRkFDRV9WMSB7CiAgICAgSU5URVJGQUNFICAgICAgICAgICAgICAg
ICAgICAgICBJbnRlcmZhY2U7CiAgICAgWEVOQlVTX1NUT1JFX0FDUVVJUkUgICAgICAgICAgICBT
dG9yZUFjcXVpcmU7CkBAIC0yNjcsMTEgKzMxMCwyOCBAQCBzdHJ1Y3QgX1hFTkJVU19TVE9SRV9J
TlRFUkZBQ0VfVjEgewogICAgIFhFTkJVU19TVE9SRV9QT0xMICAgICAgICAgICAgICAgU3RvcmVQ
b2xsOwogfTsKIAotLyohIFxzdHJ1Y3QgX1hFTkJVU19TVE9SRV9JTlRFUkZBQ0VfVjEKLSAgICBc
YnJpZWYgU1RPUkUgaW50ZXJmYWNlIHZlcnNpb24gMQorLyohIFxzdHJ1Y3QgX1hFTkJVU19TVE9S
RV9JTlRFUkZBQ0VfVjIKKyAgICBcYnJpZWYgU1RPUkUgaW50ZXJmYWNlIHZlcnNpb24gMgogICAg
IFxpbmdyb3VwIGludGVyZmFjZXMKICovCi10eXBlZGVmIHN0cnVjdCBfWEVOQlVTX1NUT1JFX0lO
VEVSRkFDRV9WMSBYRU5CVVNfU1RPUkVfSU5URVJGQUNFLCAqUFhFTkJVU19TVE9SRV9JTlRFUkZB
Q0U7CitzdHJ1Y3QgX1hFTkJVU19TVE9SRV9JTlRFUkZBQ0VfVjIgeworICAgIElOVEVSRkFDRSAg
ICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlOworICAgIFhFTkJVU19TVE9SRV9BQ1FVSVJF
ICAgICAgICAgICAgU3RvcmVBY3F1aXJlOworICAgIFhFTkJVU19TVE9SRV9SRUxFQVNFICAgICAg
ICAgICAgU3RvcmVSZWxlYXNlOworICAgIFhFTkJVU19TVE9SRV9GUkVFICAgICAgICAgICAgICAg
U3RvcmVGcmVlOworICAgIFhFTkJVU19TVE9SRV9SRUFEICAgICAgICAgICAgICAgU3RvcmVSZWFk
OworICAgIFhFTkJVU19TVE9SRV9QUklOVEYgICAgICAgICAgICAgU3RvcmVQcmludGY7CisgICAg
WEVOQlVTX1NUT1JFX1BFUk1JU1NJT05TX1NFVCAgICBTdG9yZVBlcm1pc3Npb25zU2V0OworICAg
IFhFTkJVU19TVE9SRV9SRU1PVkUgICAgICAgICAgICAgU3RvcmVSZW1vdmU7CisgICAgWEVOQlVT
X1NUT1JFX0RJUkVDVE9SWSAgICAgICAgICBTdG9yZURpcmVjdG9yeTsKKyAgICBYRU5CVVNfU1RP
UkVfVFJBTlNBQ1RJT05fU1RBUlQgIFN0b3JlVHJhbnNhY3Rpb25TdGFydDsKKyAgICBYRU5CVVNf
U1RPUkVfVFJBTlNBQ1RJT05fRU5EICAgIFN0b3JlVHJhbnNhY3Rpb25FbmQ7CisgICAgWEVOQlVT
X1NUT1JFX1dBVENIX0FERCAgICAgICAgICBTdG9yZVdhdGNoQWRkOworICAgIFhFTkJVU19TVE9S
RV9XQVRDSF9SRU1PVkUgICAgICAgU3RvcmVXYXRjaFJlbW92ZTsKKyAgICBYRU5CVVNfU1RPUkVf
UE9MTCAgICAgICAgICAgICAgIFN0b3JlUG9sbDsKK307CisKK3R5cGVkZWYgc3RydWN0IF9YRU5C
VVNfU1RPUkVfSU5URVJGQUNFX1YyIFhFTkJVU19TVE9SRV9JTlRFUkZBQ0UsICpQWEVOQlVTX1NU
T1JFX0lOVEVSRkFDRTsKIAogLyohIFxkZWYgWEVOQlVTX1NUT1JFCiAgICAgXGJyaWVmIE1hY3Jv
IGF0IGFzc2lzdCBpbiBtZXRob2QgaW52b2NhdGlvbgpAQCAtMjgyLDcgKzM0Miw3IEBAIHR5cGVk
ZWYgc3RydWN0IF9YRU5CVVNfU1RPUkVfSU5URVJGQUNFX1YxIFhFTkJVU19TVE9SRV9JTlRFUkZB
Q0UsICpQWEVOQlVTX1NUT1JFCiAjZW5kaWYgIC8vIF9XSU5ETEwKIAogI2RlZmluZSBYRU5CVVNf
U1RPUkVfSU5URVJGQUNFX1ZFUlNJT05fTUlOICAxCi0jZGVmaW5lIFhFTkJVU19TVE9SRV9JTlRF
UkZBQ0VfVkVSU0lPTl9NQVggIDEKKyNkZWZpbmUgWEVOQlVTX1NUT1JFX0lOVEVSRkFDRV9WRVJT
SU9OX01BWCAgMgogCiAjZW5kaWYgIC8vIF9YRU5CVVNfU1RPUkVfSU5URVJGQUNFX0gKIAotLSAK
Mi4xNi4yLndpbmRvd3MuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m
by93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 25 09:18:53 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jun 2018 09:18:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fXNe8-0004Oq-BS; Mon, 25 Jun 2018 09:18:52 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=ndbz=jl=citrix.com=prvs=707e514f0=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fXNe7-0004Ol-NY
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jun 2018 09:18:51 +0000
X-Inumbo-ID: ce3ee211-7858-11e8-bc1d-65256ead4e3a
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-amaz-eas1.inumbo.com (Halon) with ESMTPS
 id ce3ee211-7858-11e8-bc1d-65256ead4e3a;
 Mon, 25 Jun 2018 09:19:05 +0000 (UTC)
X-IronPort-AV: E=Sophos;i="5.51,269,1526342400"; d="scan'208";a="75209830"
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/2] Update STORE interface header
Thread-Index: AQHUDGR8P5QvVDSi6kaFOtSjc52ViKRwsXhg
Date: Mon, 25 Jun 2018 09:18:49 +0000
Message-ID: <94bb9a4a80a948f4b1f0d61784aed379@AMSPEX02CL03.citrite.net>
References: <20180625091047.9164-1-owen.smith@citrix.com>
In-Reply-To: <20180625091047.9164-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
Subject: Re: [win-pv-devel] [PATCH 2/2] Update STORE interface header
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjUgSnVuZSAyMDE4IDEwOjExDQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGggPG93ZW4uc21pdGhA
Y2l0cml4LmNvbT4NCj4gU3ViamVjdDogW3dpbi1wdi1kZXZlbF0gW1BBVENIIDIvMl0gVXBkYXRl
IFNUT1JFIGludGVyZmFjZSBoZWFkZXINCg0KSSBzZWVtIHRvIGJlIG1pc3NpbmcgdGhlIHJlbGF0
ZWQgMS8yLCB1bmxlc3MgaXQgd2FzIHRoZSBFVlRDSE4gYW5kIEdOVFRBQiB1cGRhdGVzLg0KDQpJ
ZiBzbywgaXQgd291bGQgYmUgYmV0dGVyIHRvIHNlbmQgYSBzcXVhc2hlZCBwYXRjaCB0byBkbyBh
bGwgdGhlIGhlYWRlciB1cGRhdGVzIGFuZCB0aGVuIGEgc2Vjb25kIHBhdGNoIHRvIHVwZGF0ZSB0
aGUgSU5GIGFuZCB1c2UgdGhlIHVwZGF0ZWQgRVZUQ0hOIGNhbGwuDQoNCiAgUGF1bA0KDQo+IA0K
PiBObyBuZXcgZmVhdHVyZXMgb2YgU1RPUkV2MiBhcmUgdXNlZA0KPiANCj4gU2lnbmVkLW9mZi1i
eTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiAtLS0NCj4gIGluY2x1ZGUv
c3RvcmVfaW50ZXJmYWNlLmggfCA2OA0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKy0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDQg
ZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zdG9yZV9pbnRlcmZhY2Uu
aCBiL2luY2x1ZGUvc3RvcmVfaW50ZXJmYWNlLmgNCj4gaW5kZXggNWJjYmJhMy4uNTJmMWExZCAx
MDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9zdG9yZV9pbnRlcmZhY2UuaA0KPiArKysgYi9pbmNsdWRl
L3N0b3JlX2ludGVyZmFjZS5oDQo+IEBAIC01MCw2ICs1MCwyMyBAQCB0eXBlZGVmIHN0cnVjdCBf
WEVOQlVTX1NUT1JFX1RSQU5TQUNUSU9ODQo+IFhFTkJVU19TVE9SRV9UUkFOU0FDVElPTiwgKlBY
RU5CVVNfUw0KPiAgKi8NCj4gIHR5cGVkZWYgc3RydWN0IF9YRU5CVVNfU1RPUkVfV0FUQ0ggICAg
ICAgICAgWEVOQlVTX1NUT1JFX1dBVENILA0KPiAqUFhFTkJVU19TVE9SRV9XQVRDSDsNCj4gDQo+
ICsvKiEgXHR5cGVkZWYgWEVOQlVTX1NUT1JFX1BFUk1JU1NJT05fTUFTSw0KPiArICAgIFxicmll
ZiBCaXRtYXNrIG9mIFhlblN0b3JlIGtleSBwZXJtaXNzaW9ucw0KPiArKi8NCj4gK3R5cGVkZWYg
ZW51bSBfWEVOQlVTX1NUT1JFX1BFUk1JU1NJT05fTUFTSyB7DQo+ICsgICAgWEVOQlVTX1NUT1JF
X1BFUk1fTk9ORSA9IDAsDQo+ICsgICAgWEVOQlVTX1NUT1JFX1BFUk1fUkVBRCA9IDEsDQo+ICsg
ICAgWEVOQlVTX1NUT1JFX1BFUk1fV1JJVEUgPSAyLA0KPiArfSBYRU5CVVNfU1RPUkVfUEVSTUlT
U0lPTl9NQVNLOw0KPiArDQo+ICsvKiEgXHR5cGVkZWYgWEVOQlVTX1NUT1JFX1BFUk1JU1NJT04N
Cj4gKyAgICBcYnJpZWYgWGVuU3RvcmUga2V5IHBlcm1pc3Npb25zIGVudHJ5IGZvciBhIHNpbmds
ZSBkb21haW4NCj4gKyovDQo+ICt0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX1NUT1JFX1BFUk1JU1NJ
T04gew0KPiArICAgIFVTSE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgRG9tYWluOw0KPiAr
ICAgIFhFTkJVU19TVE9SRV9QRVJNSVNTSU9OX01BU0sgICAgTWFzazsNCj4gK30gWEVOQlVTX1NU
T1JFX1BFUk1JU1NJT04sICpQWEVOQlVTX1NUT1JFX1BFUk1JU1NJT047DQo+ICsNCj4gIC8qISBc
dHlwZWRlZiBYRU5CVVNfU1RPUkVfQUNRVUlSRQ0KPiAgICAgIFxicmllZiBBY3F1aXJlIGEgcmVm
ZXJlbmNlIHRvIHRoZSBTVE9SRSBpbnRlcmZhY2UNCj4gDQo+IEBAIC0yNDcsMTAgKzI2NCwzNiBA
QCB0eXBlZGVmIFZPSUQNCj4gICAgICBJTiAgUElOVEVSRkFDRSAgSW50ZXJmYWNlDQo+ICAgICAg
KTsNCj4gDQo+ICsvKiEgXHR5cGVkZWYgWEVOQlVTX1NUT1JFX1BFUk1JU1NJT05TX1NFVA0KPiAr
ICAgIFxicmllZiBTZXQgcGVybWlzc2lvbnMgZm9yIGEgWGVuU3RvcmUga2V5DQo+ICsNCj4gKyAg
ICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyDQo+ICsgICAgXHBhcmFtIFRy
YW5zYWN0aW9uIFRoZSB0cmFuc2FjdGlvbiBoYW5kbGUgKE5VTEwgaWYgdGhpcyBpcyBub3QNCj4g
KyAgICBwYXJ0IG9mIGEgdHJhbnNhY3Rpb24pDQo+ICsgICAgXHBhcmFtIFByZWZpeCBBbiBvcHRp
b25hbCBwcmVmaXggZm9yIHRoZSBcYSBOb2RlDQo+ICsgICAgXHBhcmFtIE5vZGUgVGhlIGNvbmNh
dGVuYXRpb24gb2YgdGhlIFxhIFByZWZpeCBhbmQgdGhpcyB2YWx1ZSBzcGVjaWZpZXMNCj4gKyAg
ICB0aGUgWGVuU3RvcmUga2V5IHRvIHNldCBwZXJtaXNzaW9ucyBvZg0KPiArICAgIFxwYXJhbSBQ
ZXJtaXNzaW9ucyBBbiBhcnJheSBvZiBwZXJtaXNzaW9ucyB0byBzZXQNCj4gKyAgICBccGFyYW0g
TnVtYmVyUGVybWlzc2lvbnMgTnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBcYSBQZXJtaXNzaW9u
cw0KPiBhcnJheQ0KPiArKi8NCj4gK3R5cGVkZWYgTlRTVEFUVVMNCj4gKygqWEVOQlVTX1NUT1JF
X1BFUk1JU1NJT05TX1NFVCkoDQo+ICsgICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgICAgICAg
ICBJbnRlcmZhY2UsDQo+ICsgICAgSU4gIFBYRU5CVVNfU1RPUkVfVFJBTlNBQ1RJT04gICBUcmFu
c2FjdGlvbiBPUFRJT05BTCwNCj4gKyAgICBJTiAgUENIQVIgICAgICAgICAgICAgICAgICAgICAg
IFByZWZpeCBPUFRJT05BTCwNCj4gKyAgICBJTiAgUENIQVIgICAgICAgICAgICAgICAgICAgICAg
IE5vZGUsDQo+ICsgICAgSU4gIFBYRU5CVVNfU1RPUkVfUEVSTUlTU0lPTiAgICBQZXJtaXNzaW9u
cywNCj4gKyAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIE51bWJlclBlcm1pc3Np
b25zDQo+ICsgICAgKTsNCj4gKw0KPiAgLy8gezg2ODI0QzNCLUQzNEUtNDc1My1CMjgxLTJGMUUz
QUQyMTREN30NCj4gIERFRklORV9HVUlEKEdVSURfWEVOQlVTX1NUT1JFX0lOVEVSRkFDRSwNCj4g
IDB4ODY4MjRjM2IsIDB4ZDM0ZSwgMHg0NzUzLCAweGIyLCAweDgxLCAweDJmLCAweDFlLCAweDNh
LCAweGQyLCAweDE0LCAweGQ3KTsNCj4gDQo+ICsvKiEgXHN0cnVjdCBfWEVOQlVTX1NUT1JFX0lO
VEVSRkFDRV9WMQ0KPiArICAgIFxicmllZiBTVE9SRSBpbnRlcmZhY2UgdmVyc2lvbiAxDQo+ICsg
ICAgXGluZ3JvdXAgaW50ZXJmYWNlcw0KPiArKi8NCj4gIHN0cnVjdCBfWEVOQlVTX1NUT1JFX0lO
VEVSRkFDRV9WMSB7DQo+ICAgICAgSU5URVJGQUNFICAgICAgICAgICAgICAgICAgICAgICBJbnRl
cmZhY2U7DQo+ICAgICAgWEVOQlVTX1NUT1JFX0FDUVVJUkUgICAgICAgICAgICBTdG9yZUFjcXVp
cmU7DQo+IEBAIC0yNjcsMTEgKzMxMCwyOCBAQCBzdHJ1Y3QgX1hFTkJVU19TVE9SRV9JTlRFUkZB
Q0VfVjEgew0KPiAgICAgIFhFTkJVU19TVE9SRV9QT0xMICAgICAgICAgICAgICAgU3RvcmVQb2xs
Ow0KPiAgfTsNCj4gDQo+IC0vKiEgXHN0cnVjdCBfWEVOQlVTX1NUT1JFX0lOVEVSRkFDRV9WMQ0K
PiAtICAgIFxicmllZiBTVE9SRSBpbnRlcmZhY2UgdmVyc2lvbiAxDQo+ICsvKiEgXHN0cnVjdCBf
WEVOQlVTX1NUT1JFX0lOVEVSRkFDRV9WMg0KPiArICAgIFxicmllZiBTVE9SRSBpbnRlcmZhY2Ug
dmVyc2lvbiAyDQo+ICAgICAgXGluZ3JvdXAgaW50ZXJmYWNlcw0KPiAgKi8NCj4gLXR5cGVkZWYg
c3RydWN0IF9YRU5CVVNfU1RPUkVfSU5URVJGQUNFX1YxDQo+IFhFTkJVU19TVE9SRV9JTlRFUkZB
Q0UsICpQWEVOQlVTX1NUT1JFX0lOVEVSRkFDRTsNCj4gK3N0cnVjdCBfWEVOQlVTX1NUT1JFX0lO
VEVSRkFDRV9WMiB7DQo+ICsgICAgSU5URVJGQUNFICAgICAgICAgICAgICAgICAgICAgICBJbnRl
cmZhY2U7DQo+ICsgICAgWEVOQlVTX1NUT1JFX0FDUVVJUkUgICAgICAgICAgICBTdG9yZUFjcXVp
cmU7DQo+ICsgICAgWEVOQlVTX1NUT1JFX1JFTEVBU0UgICAgICAgICAgICBTdG9yZVJlbGVhc2U7
DQo+ICsgICAgWEVOQlVTX1NUT1JFX0ZSRUUgICAgICAgICAgICAgICBTdG9yZUZyZWU7DQo+ICsg
ICAgWEVOQlVTX1NUT1JFX1JFQUQgICAgICAgICAgICAgICBTdG9yZVJlYWQ7DQo+ICsgICAgWEVO
QlVTX1NUT1JFX1BSSU5URiAgICAgICAgICAgICBTdG9yZVByaW50ZjsNCj4gKyAgICBYRU5CVVNf
U1RPUkVfUEVSTUlTU0lPTlNfU0VUICAgIFN0b3JlUGVybWlzc2lvbnNTZXQ7DQo+ICsgICAgWEVO
QlVTX1NUT1JFX1JFTU9WRSAgICAgICAgICAgICBTdG9yZVJlbW92ZTsNCj4gKyAgICBYRU5CVVNf
U1RPUkVfRElSRUNUT1JZICAgICAgICAgIFN0b3JlRGlyZWN0b3J5Ow0KPiArICAgIFhFTkJVU19T
VE9SRV9UUkFOU0FDVElPTl9TVEFSVCAgU3RvcmVUcmFuc2FjdGlvblN0YXJ0Ow0KPiArICAgIFhF
TkJVU19TVE9SRV9UUkFOU0FDVElPTl9FTkQgICAgU3RvcmVUcmFuc2FjdGlvbkVuZDsNCj4gKyAg
ICBYRU5CVVNfU1RPUkVfV0FUQ0hfQUREICAgICAgICAgIFN0b3JlV2F0Y2hBZGQ7DQo+ICsgICAg
WEVOQlVTX1NUT1JFX1dBVENIX1JFTU9WRSAgICAgICBTdG9yZVdhdGNoUmVtb3ZlOw0KPiArICAg
IFhFTkJVU19TVE9SRV9QT0xMICAgICAgICAgICAgICAgU3RvcmVQb2xsOw0KPiArfTsNCj4gKw0K
PiArdHlwZWRlZiBzdHJ1Y3QgX1hFTkJVU19TVE9SRV9JTlRFUkZBQ0VfVjINCj4gWEVOQlVTX1NU
T1JFX0lOVEVSRkFDRSwgKlBYRU5CVVNfU1RPUkVfSU5URVJGQUNFOw0KPiANCj4gIC8qISBcZGVm
IFhFTkJVU19TVE9SRQ0KPiAgICAgIFxicmllZiBNYWNybyBhdCBhc3Npc3QgaW4gbWV0aG9kIGlu
dm9jYXRpb24NCj4gQEAgLTI4Miw3ICszNDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX1NU
T1JFX0lOVEVSRkFDRV9WMQ0KPiBYRU5CVVNfU1RPUkVfSU5URVJGQUNFLCAqUFhFTkJVU19TVE9S
RQ0KPiAgI2VuZGlmICAvLyBfV0lORExMDQo+IA0KPiAgI2RlZmluZSBYRU5CVVNfU1RPUkVfSU5U
RVJGQUNFX1ZFUlNJT05fTUlOICAxDQo+IC0jZGVmaW5lIFhFTkJVU19TVE9SRV9JTlRFUkZBQ0Vf
VkVSU0lPTl9NQVggIDENCj4gKyNkZWZpbmUgWEVOQlVTX1NUT1JFX0lOVEVSRkFDRV9WRVJTSU9O
X01BWCAgMg0KPiANCj4gICNlbmRpZiAgLy8gX1hFTkJVU19TVE9SRV9JTlRFUkZBQ0VfSA0KPiAN
Cj4gLS0NCj4gMi4xNi4yLndpbmRvd3MuMQ0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QN
Cj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 25 09:48:42 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jun 2018 09:48:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fXO6z-0006bv-8j; Mon, 25 Jun 2018 09:48:41 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=ju2v=jl=citrix.com=prvs=707b31c7b=owen.smith@srs-us1.protection.inumbo.net>)
 id 1fXO6x-0006b2-EE
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jun 2018 09:48:39 +0000
X-Inumbo-ID: 8c036fcf-785c-11e8-9728-bc764e045a96
Received: from SMTP03.CITRIX.COM (unknown [162.221.156.55])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id 8c036fcf-785c-11e8-9728-bc764e045a96;
 Mon, 25 Jun 2018 11:45:52 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.51,269,1526342400"; d="scan'208";a="58502744"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 25 Jun 2018 10:48:18 +0100
Message-ID: <20180625094818.15448-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.16.2.windows.1
MIME-Version: 1.0
Subject: [win-pv-devel] [PATCH] Update EVTCHN,
 GNTTAB and STORE interface headers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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>

VXBkYXRlcyByZXZpc2lvbiB0byAwOTAwMDAwNApGaXhlcyBFdnRjaG4gVW5tYXNrIGNhbGxzClVw
ZGF0ZXMgeGVuYnVzIGludGVyZmFjZSBoZWFkZXJzIHRvIGxhdGVzdCB2ZXJzaW9ucwoKVGhpcyB3
aWxsIHJlc29sdmUgYW4gaXNzdWUgd2hlcmUsIHVuZGVyIGNlcnRhaW4gdGltaW5nIGNvbmRpdGlv
bnMsCnhlbnZiZCB3aWxsIHJlcXVlc3QgYSBzZWNvbmQgcmVib290IGJlZm9yZSBmdW5jdGlvbmlu
ZyBjb3JyZWN0bHkuCgpTaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJp
eC5jb20+Ci0tLQogaW5jbHVkZS9ldnRjaG5faW50ZXJmYWNlLmggfCAxMjggKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2dudHRhYl9pbnRlcmZh
Y2UuaCB8ICA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogaW5jbHVkZS9zdG9y
ZV9pbnRlcmZhY2UuaCAgfCAgNjggKysrKysrKysrKysrKysrKysrKysrKy0tCiBzcmMveGVudmJk
LmluZiAgICAgICAgICAgICB8ICAgNiArLS0KIHNyYy94ZW52YmQvcmluZy5jICAgICAgICAgIHwg
ICA2ICsrLQogNSBmaWxlcyBjaGFuZ2VkLCAyNTcgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ldnRjaG5faW50ZXJmYWNlLmggYi9pbmNsdWRlL2V2
dGNobl9pbnRlcmZhY2UuaAppbmRleCA2ZjhmZTQyLi4wNjhhNjk3IDEwMDY0NAotLS0gYS9pbmNs
dWRlL2V2dGNobl9pbnRlcmZhY2UuaAorKysgYi9pbmNsdWRlL2V2dGNobl9pbnRlcmZhY2UuaApA
QCAtMTEyLDEzICsxMTIsNiBAQCB0eXBlZGVmIFBYRU5CVVNfRVZUQ0hOX0NIQU5ORUwKICAgICAu
Li4KICAgICApOwogCi10eXBlZGVmIE5UU1RBVFVTCi0oKlhFTkJVU19FVlRDSE5fQklORF9WMiko
Ci0gICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgICAgIEludGVyZmFjZSwKLSAgICBJTiAgUFhF
TkJVU19FVlRDSE5fQ0hBTk5FTCAgQ2hhbm5lbCwKLSAgICBJTiAgVUxPTkcgICAgICAgICAgICAg
ICAgICAgQ3B1Ci0gICAgKTsKLQogLyohIFx0eXBlZGVmIFhFTkJVU19FVlRDSE5fQklORAogICAg
IFxicmllZiBCaW5kIGFuIGV2ZW50IGNoYW5uZWwgdG8gYSBzcGVjaWZpYyBDUFUKIApAQCAtMTM1
LDggKzEyOCw4IEBAIHR5cGVkZWYgTlRTVEFUVVMKICAgICBJTiAgVUNIQVIgICAgICAgICAgICAg
ICAgICAgTnVtYmVyCiAgICAgKTsKIAotdHlwZWRlZiBCT09MRUFOCi0oKlhFTkJVU19FVlRDSE5f
VU5NQVNLX1YxKSgKK3R5cGVkZWYgVk9JRAorKCpYRU5CVVNfRVZUQ0hOX1VOTUFTS19WNCkoCiAg
ICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgICAgIEludGVyZmFjZSwKICAgICBJTiAgUFhFTkJV
U19FVlRDSE5fQ0hBTk5FTCAgQ2hhbm5lbCwKICAgICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAg
ICAgSW5DYWxsYmFjawpAQCAtMTQ4LDE3ICsxNDEsMjggQEAgdHlwZWRlZiBCT09MRUFOCiAgICAg
XHBhcmFtIEludGVyZmFjZSBUaGUgaW50ZXJmYWNlIGhlYWRlcgogICAgIFxwYXJhbSBDaGFubmVs
IFRoZSBjaGFubmVsIGhhbmRsZQogICAgIFxwYXJhbSBJbkNhbGxiYWNrIFNldCB0byBUUlVFIGlm
IHRoaXMgbWV0aG9kIGlzIGludm9rZWQgaW4gY29udGV4dCBvZiB0aGUgY2hhbm5lbCBjYWxsYmFj
aworICAgIFxwYXJhbSBGb3JjZSBTZXQgdG8gVFJVRSBpZiB0aGUgdW5tYXNrIG11c3Qgc3VjY2Vl
ZCwgb3RoZXJ3aXNlIHNldCB0byBGQUxTRSBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIEZB
TFNFIGlmIHRoZSB1bm1hc2sgZGlkIG5vdCBjb21wbGV0ZS4KICovCi10eXBlZGVmIFZPSUQKK3R5
cGVkZWYgQk9PTEVBTgogKCpYRU5CVVNfRVZUQ0hOX1VOTUFTSykoCiAgICAgSU4gIFBJTlRFUkZB
Q0UgICAgICAgICAgICAgIEludGVyZmFjZSwKICAgICBJTiAgUFhFTkJVU19FVlRDSE5fQ0hBTk5F
TCAgQ2hhbm5lbCwKLSAgICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAgICAgSW5DYWxsYmFjawor
ICAgIElOICBCT09MRUFOICAgICAgICAgICAgICAgICBJbkNhbGxiYWNrLAorICAgIElOICBCT09M
RUFOICAgICAgICAgICAgICAgICBGb3JjZQorICAgICk7CisKK3R5cGVkZWYgVk9JRAorKCpYRU5C
VVNfRVZUQ0hOX1NFTkRfVjEpKAorICAgIElOICBQSU5URVJGQUNFICAgICAgICAgICAgICBJbnRl
cmZhY2UsCisgICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5ORUwgIENoYW5uZWwKICAgICApOwog
CiAvKiEgXHR5cGVkZWYgWEVOQlVTX0VWVENITl9TRU5ECiAgICAgXGJyaWVmIFNlbmQgYW4gZXZl
bnQgdG8gdGhlIHJlbW90ZSBlbmQgb2YgdGhlIGNoYW5uZWwKIAorICAgIEl0IGlzIGFzc3VtZWQg
dGhhdCB0aGUgZG9tYWluIGNhbm5vdCBzdXNwZW5kIGR1cmluZyB0aGlzIGNhbGwgc28KKyAgICBJ
UlFMIG11c3QgYmUgPj0gRElTUEFUQ0hfTEVWRUwuCisKICAgICBccGFyYW0gSW50ZXJmYWNlIFRo
ZSBpbnRlcmZhY2UgaGVhZGVyCiAgICAgXHBhcmFtIENoYW5uZWwgVGhlIGNoYW5uZWwgaGFuZGxl
CiAqLyAgCkBAIC0xODAsNiArMTg0LDQyIEBAIHR5cGVkZWYgVk9JRAogICAgIElOICBQWEVOQlVT
X0VWVENITl9DSEFOTkVMICBDaGFubmVsCiAgICAgKTsKIAorLyohIFx0eXBlZGVmIFhFTkJVU19F
VlRDSE5fR0VUX0NPVU5UCisgICAgXGJyaWVmIEdldCB0aGUgbnVtYmVyIG9mIGV2ZW50cyByZWNl
aXZlZCBieSB0aGUgY2hhbm5lbCBzaW5jZSBpdCB3YXMgb3BlbmVkCisKKyAgICBccGFyYW0gSW50
ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyCisgICAgXHBhcmFtIENoYW5uZWwgVGhlIGNoYW5u
ZWwgaGFuZGxlCisgICAgXHJldHVybiBUaGUgbnVtYmVyIG9mIGV2ZW50cworKi8KK3R5cGVkZWYg
VUxPTkcKKygqWEVOQlVTX0VWVENITl9HRVRfQ09VTlQpKAorICAgIElOICBQSU5URVJGQUNFICAg
ICAgICAgICAgICBJbnRlcmZhY2UsCisgICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5ORUwgIENo
YW5uZWwKKyAgICApOworCit0eXBlZGVmIE5UU1RBVFVTCisoKlhFTkJVU19FVlRDSE5fV0FJVF9W
NSkoCisgICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgICAgIEludGVyZmFjZSwKKyAgICBJTiAg
UFhFTkJVU19FVlRDSE5fQ0hBTk5FTCAgQ2hhbm5lbCwKKyAgICBJTiAgUExBUkdFX0lOVEVHRVIg
ICAgICAgICAgVGltZW91dCBPUFRJT05BTAorICAgICk7CisKKy8qISBcdHlwZWRlZiBYRU5CVVNf
RVZUQ0hOX1dBSVQKKyAgICBcYnJpZWYgV2FpdCBmb3IgZXZlbnRzIHRvIHRoZSBsb2NhbCBlbmQg
b2YgdGhlIGNoYW5uZWwKKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhlIGludGVyZmFjZSBoZWFk
ZXIKKyAgICBccGFyYW0gQ2hhbm5lbCBUaGUgY2hhbm5lbCBoYW5kbGUKKyAgICBccGFyYW0gQ291
bnQgVGhlIGV2ZW50IGNvdW50IHRvIHdhaXQgZm9yCisgICAgXHBhcmFtIFRpbWVvdXQgQW4gb3B0
aW9uYWwgdGltZW91dCB2YWx1ZSAoc2ltaWxhciB0byBLZVdhaXRGb3JTaW5nbGVPYmplY3QoKSwg
YnV0IG5vbi16ZXJvIHZhbHVlcyBhcmUgYWxsb3dlZCBhdCBESVNQQVRDSF9MRVZFTCkuCisqLwor
dHlwZWRlZiBOVFNUQVRVUworKCpYRU5CVVNfRVZUQ0hOX1dBSVQpKAorICAgIElOICBQSU5URVJG
QUNFICAgICAgICAgICAgICBJbnRlcmZhY2UsCisgICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5O
RUwgIENoYW5uZWwsCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgIENvdW50LAorICAg
IElOICBQTEFSR0VfSU5URUdFUiAgICAgICAgICBUaW1lb3V0IE9QVElPTkFMCisgICAgKTsKKwog
LyohIFx0eXBlZGVmIFhFTkJVU19FVlRDSE5fR0VUX1BPUlQKICAgICBcYnJpZWYgR2V0IHRoZSBs
b2NhbCBwb3J0IG51bWJlciBib3VuZCB0byB0aGUgY2hhbm5lbAogCkBAIC0yMDksNjEgKzI0OSw4
MyBAQCB0eXBlZGVmIFZPSUQKIERFRklORV9HVUlEKEdVSURfWEVOQlVTX0VWVENITl9JTlRFUkZB
Q0UsIAogMHhiZTI0NDBhYywgMHgxMDk4LCAweDQxNTAsIDB4YWYsIDB4NGQsIDB4NDUsIDB4MmYs
IDB4YWQsIDB4Y2UsIDB4ZjksIDB4MjMpOwogCi0vKiEgXHN0cnVjdCBfWEVOQlVTX0VWVENITl9J
TlRFUkZBQ0VfVjEKLSAgICBcYnJpZWYgRVZUQ0hOIGludGVyZmFjZSB2ZXJzaW9uIDEKKy8qISBc
c3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WNAorICAgIFxicmllZiBFVlRDSE4gaW50
ZXJmYWNlIHZlcnNpb24gNAogICAgIFxpbmdyb3VwIGludGVyZmFjZXMKICovCi1zdHJ1Y3QgX1hF
TkJVU19FVlRDSE5fSU5URVJGQUNFX1YxIHsKK3N0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZB
Q0VfVjQgewogICAgIElOVEVSRkFDRSAgICAgICAgICAgICAgIEludGVyZmFjZTsKICAgICBYRU5C
VVNfRVZUQ0hOX0FDUVVJUkUgICBFdnRjaG5BY3F1aXJlOwogICAgIFhFTkJVU19FVlRDSE5fUkVM
RUFTRSAgIEV2dGNoblJlbGVhc2U7CiAgICAgWEVOQlVTX0VWVENITl9PUEVOICAgICAgRXZ0Y2hu
T3BlbjsKLSAgICBYRU5CVVNfRVZUQ0hOX1VOTUFTS19WMSBFdnRjaG5Vbm1hc2tWZXJzaW9uMTsK
LSAgICBYRU5CVVNfRVZUQ0hOX1NFTkQgICAgICBFdnRjaG5TZW5kOworICAgIFhFTkJVU19FVlRD
SE5fQklORCAgICAgIEV2dGNobkJpbmQ7CisgICAgWEVOQlVTX0VWVENITl9VTk1BU0tfVjQgRXZ0
Y2huVW5tYXNrVmVyc2lvbjQ7CisgICAgWEVOQlVTX0VWVENITl9TRU5EX1YxICAgRXZ0Y2huU2Vu
ZFZlcnNpb24xOwogICAgIFhFTkJVU19FVlRDSE5fVFJJR0dFUiAgIEV2dGNoblRyaWdnZXI7CiAg
ICAgWEVOQlVTX0VWVENITl9HRVRfUE9SVCAgRXZ0Y2huR2V0UG9ydDsKICAgICBYRU5CVVNfRVZU
Q0hOX0NMT1NFICAgICBFdnRjaG5DbG9zZTsKIH07CiAKLS8qISBcc3RydWN0IF9YRU5CVVNfRVZU
Q0hOX0lOVEVSRkFDRV9WMgotICAgIFxicmllZiBFVlRDSE4gaW50ZXJmYWNlIHZlcnNpb24gMgor
LyohIFxzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y1CisgICAgXGJyaWVmIEVWVENI
TiBpbnRlcmZhY2UgdmVyc2lvbiA1CiAgICAgXGluZ3JvdXAgaW50ZXJmYWNlcwogKi8KLXN0cnVj
dCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjIgeworc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lO
VEVSRkFDRV9WNSB7CiAgICAgSU5URVJGQUNFICAgICAgICAgICAgICAgSW50ZXJmYWNlOwogICAg
IFhFTkJVU19FVlRDSE5fQUNRVUlSRSAgIEV2dGNobkFjcXVpcmU7CiAgICAgWEVOQlVTX0VWVENI
Tl9SRUxFQVNFICAgRXZ0Y2huUmVsZWFzZTsKICAgICBYRU5CVVNfRVZUQ0hOX09QRU4gICAgICBF
dnRjaG5PcGVuOwotICAgIFhFTkJVU19FVlRDSE5fQklORF9WMiAgIEV2dGNobkJpbmRWZXJzaW9u
MjsKLSAgICBYRU5CVVNfRVZUQ0hOX1VOTUFTS19WMSBFdnRjaG5Vbm1hc2tWZXJzaW9uMTsKKyAg
ICBYRU5CVVNfRVZUQ0hOX0JJTkQgICAgICBFdnRjaG5CaW5kOworICAgIFhFTkJVU19FVlRDSE5f
VU5NQVNLX1Y0IEV2dGNoblVubWFza1ZlcnNpb240OworICAgIFhFTkJVU19FVlRDSE5fU0VORF9W
MSAgIEV2dGNoblNlbmRWZXJzaW9uMTsKKyAgICBYRU5CVVNfRVZUQ0hOX1RSSUdHRVIgICBFdnRj
aG5UcmlnZ2VyOworICAgIFhFTkJVU19FVlRDSE5fV0FJVF9WNSAgIEV2dGNobldhaXRWZXJzaW9u
NTsKKyAgICBYRU5CVVNfRVZUQ0hOX0dFVF9QT1JUICBFdnRjaG5HZXRQb3J0OworICAgIFhFTkJV
U19FVlRDSE5fQ0xPU0UgICAgIEV2dGNobkNsb3NlOworfTsKKworLyohIFxzdHJ1Y3QgX1hFTkJV
U19FVlRDSE5fSU5URVJGQUNFX1Y2CisgICAgXGJyaWVmIEVWVENITiBpbnRlcmZhY2UgdmVyc2lv
biA2CisgICAgXGluZ3JvdXAgaW50ZXJmYWNlcworKi8KK3N0cnVjdCBfWEVOQlVTX0VWVENITl9J
TlRFUkZBQ0VfVjYgeworICAgIElOVEVSRkFDRSAgICAgICAgICAgICAgIEludGVyZmFjZTsKKyAg
ICBYRU5CVVNfRVZUQ0hOX0FDUVVJUkUgICBFdnRjaG5BY3F1aXJlOworICAgIFhFTkJVU19FVlRD
SE5fUkVMRUFTRSAgIEV2dGNoblJlbGVhc2U7CisgICAgWEVOQlVTX0VWVENITl9PUEVOICAgICAg
RXZ0Y2huT3BlbjsKKyAgICBYRU5CVVNfRVZUQ0hOX0JJTkQgICAgICBFdnRjaG5CaW5kOworICAg
IFhFTkJVU19FVlRDSE5fVU5NQVNLX1Y0IEV2dGNoblVubWFza1ZlcnNpb240OwogICAgIFhFTkJV
U19FVlRDSE5fU0VORCAgICAgIEV2dGNoblNlbmQ7CiAgICAgWEVOQlVTX0VWVENITl9UUklHR0VS
ICAgRXZ0Y2huVHJpZ2dlcjsKKyAgICBYRU5CVVNfRVZUQ0hOX1dBSVRfVjUgICBFdnRjaG5XYWl0
VmVyc2lvbjU7CiAgICAgWEVOQlVTX0VWVENITl9HRVRfUE9SVCAgRXZ0Y2huR2V0UG9ydDsKICAg
ICBYRU5CVVNfRVZUQ0hOX0NMT1NFICAgICBFdnRjaG5DbG9zZTsKIH07CiAKLS8qISBcc3RydWN0
IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WMwotICAgIFxicmllZiBFVlRDSE4gaW50ZXJmYWNl
IHZlcnNpb24gMworLyohIFxzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y3CisgICAg
XGJyaWVmIEVWVENITiBpbnRlcmZhY2UgdmVyc2lvbiA3CiAgICAgXGluZ3JvdXAgaW50ZXJmYWNl
cwogKi8KLXN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjMgeworc3RydWN0IF9YRU5C
VVNfRVZUQ0hOX0lOVEVSRkFDRV9WNyB7CiAgICAgSU5URVJGQUNFICAgICAgICAgICAgICAgSW50
ZXJmYWNlOwogICAgIFhFTkJVU19FVlRDSE5fQUNRVUlSRSAgIEV2dGNobkFjcXVpcmU7CiAgICAg
WEVOQlVTX0VWVENITl9SRUxFQVNFICAgRXZ0Y2huUmVsZWFzZTsKICAgICBYRU5CVVNfRVZUQ0hO
X09QRU4gICAgICBFdnRjaG5PcGVuOwotICAgIFhFTkJVU19FVlRDSE5fQklORF9WMiAgIEV2dGNo
bkJpbmRWZXJzaW9uMjsKLSAgICBYRU5CVVNfRVZUQ0hOX1VOTUFTSyAgICBFdnRjaG5Vbm1hc2s7
CisgICAgWEVOQlVTX0VWVENITl9CSU5EICAgICAgRXZ0Y2huQmluZDsKKyAgICBYRU5CVVNfRVZU
Q0hOX1VOTUFTS19WNCBFdnRjaG5Vbm1hc2tWZXJzaW9uNDsKICAgICBYRU5CVVNfRVZUQ0hOX1NF
TkQgICAgICBFdnRjaG5TZW5kOwogICAgIFhFTkJVU19FVlRDSE5fVFJJR0dFUiAgIEV2dGNoblRy
aWdnZXI7CisgICAgWEVOQlVTX0VWVENITl9HRVRfQ09VTlQgRXZ0Y2huR2V0Q291bnQ7CisgICAg
WEVOQlVTX0VWVENITl9XQUlUICAgICAgRXZ0Y2huV2FpdDsKICAgICBYRU5CVVNfRVZUQ0hOX0dF
VF9QT1JUICBFdnRjaG5HZXRQb3J0OwogICAgIFhFTkJVU19FVlRDSE5fQ0xPU0UgICAgIEV2dGNo
bkNsb3NlOwogfTsKIAotLyohIFxzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y0Ci0g
ICAgXGJyaWVmIEVWVENITiBpbnRlcmZhY2UgdmVyc2lvbiA0CisvKiEgXHN0cnVjdCBfWEVOQlVT
X0VWVENITl9JTlRFUkZBQ0VfVjgKKyAgICBcYnJpZWYgRVZUQ0hOIGludGVyZmFjZSB2ZXJzaW9u
IDgKICAgICBcaW5ncm91cCBpbnRlcmZhY2VzCiAqLwotc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lO
VEVSRkFDRV9WNCB7CitzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y4IHsKICAgICBJ
TlRFUkZBQ0UgICAgICAgICAgICAgICBJbnRlcmZhY2U7CiAgICAgWEVOQlVTX0VWVENITl9BQ1FV
SVJFICAgRXZ0Y2huQWNxdWlyZTsKICAgICBYRU5CVVNfRVZUQ0hOX1JFTEVBU0UgICBFdnRjaG5S
ZWxlYXNlOwpAQCAtMjcyLDExICszMzQsMTMgQEAgc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVS
RkFDRV9WNCB7CiAgICAgWEVOQlVTX0VWVENITl9VTk1BU0sgICAgRXZ0Y2huVW5tYXNrOwogICAg
IFhFTkJVU19FVlRDSE5fU0VORCAgICAgIEV2dGNoblNlbmQ7CiAgICAgWEVOQlVTX0VWVENITl9U
UklHR0VSICAgRXZ0Y2huVHJpZ2dlcjsKKyAgICBYRU5CVVNfRVZUQ0hOX0dFVF9DT1VOVCBFdnRj
aG5HZXRDb3VudDsKKyAgICBYRU5CVVNfRVZUQ0hOX1dBSVQgICAgICBFdnRjaG5XYWl0OwogICAg
IFhFTkJVU19FVlRDSE5fR0VUX1BPUlQgIEV2dGNobkdldFBvcnQ7CiAgICAgWEVOQlVTX0VWVENI
Tl9DTE9TRSAgICAgRXZ0Y2huQ2xvc2U7CiB9OwogCi10eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0VW
VENITl9JTlRFUkZBQ0VfVjQgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0UsICpQWEVOQlVTX0VWVENI
Tl9JTlRFUkZBQ0U7Cit0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjgg
WEVOQlVTX0VWVENITl9JTlRFUkZBQ0UsICpQWEVOQlVTX0VWVENITl9JTlRFUkZBQ0U7CiAKIC8q
ISBcZGVmIFhFTkJVU19FVlRDSE4KICAgICBcYnJpZWYgTWFjcm8gYXQgYXNzaXN0IGluIG1ldGhv
ZCBpbnZvY2F0aW9uCkBAIC0yODYsOCArMzUwLDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1hFTkJVU19F
VlRDSE5fSU5URVJGQUNFX1Y0IFhFTkJVU19FVlRDSE5fSU5URVJGQUNFLCAqUFhFTkJVU19FVlQK
IAogI2VuZGlmICAvLyBfV0lORExMCiAKLSNkZWZpbmUgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0Vf
VkVSU0lPTl9NSU4gMQotI2RlZmluZSBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WRVJTSU9OX01B
WCA0CisjZGVmaW5lIFhFTkJVU19FVlRDSE5fSU5URVJGQUNFX1ZFUlNJT05fTUlOIDQKKyNkZWZp
bmUgWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVkVSU0lPTl9NQVggOAogCiAjZW5kaWYgIC8vIF9Y
RU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9ICiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ250dGFiX2lu
dGVyZmFjZS5oIGIvaW5jbHVkZS9nbnR0YWJfaW50ZXJmYWNlLmgKaW5kZXggZDI5NDQwYS4uNjEy
NzJhYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9nbnR0YWJfaW50ZXJmYWNlLmgKKysrIGIvaW5jbHVk
ZS9nbnR0YWJfaW50ZXJmYWNlLmgKQEAgLTE0OCw2ICsxNDgsMjYgQEAgdHlwZWRlZiBVTE9ORwog
ICAgIElOICBQWEVOQlVTX0dOVFRBQl9FTlRSWSAgICAgICAgRW50cnkKICAgICApOwogCisvKiEg
XHR5cGVkZWYgWEVOQlVTX0dOVFRBQl9RVUVSWV9SRUZFUkVOQ0UKKyAgICBcYnJpZWYgR2V0IHRo
ZSByZWZlcmVuY2UgbnVtYmVyIG9mIHRoZSBlbnRyeQorCisgICAgXHBhcmFtIEludGVyZmFjZSBU
aGUgaW50ZXJmYWNlIGhlYWRlcgorICAgIFxwYXJhbSBSZWZlcmVuY2UgVGhlIHJlZmVyZW5jZSBu
dW1iZXIKKyAgICBccGFyYW0gUGZuIEFuIG9wdGlvbmFsIHBvaW50ZXIgdG8gcmVjZWl2ZSB0aGUg
dmFsdWUgb2YgdGhlIHJlZmVyZW5jZSBmcmFtZSBudW1iZXIKKyAgICBccGFyYW0gUmVhZE9ubHkg
QW4gb3B0aW9uYWwgcG9pbnRlciB0byByZWNlaXZlIHRoZSBib29sZWFuIHZhbHVlIG9mIHRoZSBy
ZWFkLW9ubHkgZmxhZworKi8KK3R5cGVkZWYgTlRTVEFUVVMKKygqWEVOQlVTX0dOVFRBQl9RVUVS
WV9SRUZFUkVOQ0UpKAorICAgIElOICBQSU5URVJGQUNFICBJbnRlcmZhY2UsCisgICAgSU4gIFVM
T05HICAgICAgIFJlZmVyZW5jZSwKKyAgICBPVVQgUFBGTl9OVU1CRVIgUGZuIE9QVElPTkFMLAor
ICAgIE9VVCBQQk9PTEVBTiAgICBSZWFkT25seSBPUFRJT05BTAorICAgICk7CisKKyNkZWZpbmUg
WEVOQlVTX0dOVFRBQl9DT05TT0xFX1JFRkVSRU5DRSAwCisjZGVmaW5lIFhFTkJVU19HTlRUQUJf
U1RPUkVfUkVGRVJFTkNFICAgMQorCisKIC8qISBcdHlwZWRlZiBYRU5CVVNfR05UVEFCX0RFU1RS
T1lfQ0FDSEUKICAgICBcYnJpZWYgRGVzdHJveSBhIGNhY2hlIG9mIGdyYW50IHRhYmxlIGVudHJp
ZXMKIApAQCAtMTYzLDYgKzE4MywzOSBAQCB0eXBlZGVmIFZPSUQKICAgICBJTiAgUFhFTkJVU19H
TlRUQUJfQ0FDSEUgICAgQ2FjaGUKICAgICApOwogCisvKiEgXHR5cGVkZWYgWEVOQlVTX0dOVFRB
Ql9NQVBfRk9SRUlHTl9QQUdFUworICAgIFxicmllZiBNYXAgZm9yZWlnbiBtZW1vcnkgcGFnZXMg
aW50byB0aGUgc3lzdGVtIGFkZHJlc3Mgc3BhY2UKKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhl
IGludGVyZmFjZSBoZWFkZXIKKyAgICBccGFyYW0gRG9tYWluIFRoZSBkb21pZCBvZiB0aGUgZm9y
ZWlnbiBkb21haW4gdGhhdCBncmFudGVkIHRoZSBwYWdlcworICAgIFxwYXJhbSBOdW1iZXJQYWdl
cyBOdW1iZXIgb2YgcGFnZXMgdG8gbWFwCisgICAgXHBhcmFtIFJlZmVyZW5jZXMgQXJyYXkgb2Yg
Z3JhbnQgcmVmZXJlbmNlIG51bWJlcnMgc2hhcmVkIGJ5IHRoZSBmb3JlaWduIGRvbWFpbgorICAg
IFxwYXJhbSBSZWFkT25seSBJZiBUUlVFLCBwYWdlcyBhcmUgbWFwcGVkIHdpdGggcmVhZC1vbmx5
IGFjY2VzcworICAgIFxwYXJhbSBBZGRyZXNzIFRoZSBwaHlzaWNhbCBhZGRyZXNzIHRoYXQgdGhl
IGZvcmVpZ24gcGFnZXMgYXJlIG1hcHBlZCB1bmRlcgorKi8KKwordHlwZWRlZiBOVFNUQVRVUwor
KCpYRU5CVVNfR05UVEFCX01BUF9GT1JFSUdOX1BBR0VTKSgKKyAgICBJTiAgUElOVEVSRkFDRSAg
ICAgICAgICAgICAgSW50ZXJmYWNlLAorICAgIElOICBVU0hPUlQgICAgICAgICAgICAgICAgICBE
b21haW4sCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgIE51bWJlclBhZ2VzLAorICAg
IElOICBQVUxPTkcgICAgICAgICAgICAgICAgICBSZWZlcmVuY2VzLAorICAgIElOICBCT09MRUFO
ICAgICAgICAgICAgICAgICBSZWFkT25seSwKKyAgICBPVVQgUEhZU0lDQUxfQUREUkVTUyAgICAg
ICAgKkFkZHJlc3MKKyAgICApOworCisvKiEgXHR5cGVkZWYgWEVOQlVTX0dOVFRBQl9VTk1BUF9G
T1JFSUdOX1BBR0VTCisgICAgXGJyaWVmIFVubWFwIGZvcmVpZ24gbWVtb3J5IHBhZ2VzIGZyb20g
dGhlIHN5c3RlbSBhZGRyZXNzIHNwYWNlCisKKyAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRl
cmZhY2UgaGVhZGVyCisgICAgXHBhcmFtIEFkZHJlc3MgVGhlIHBoeXNpY2FsIGFkZHJlc3MgdGhh
dCB0aGUgZm9yZWlnbiBwYWdlcyBhcmUgbWFwcGVkIHVuZGVyCisqLwordHlwZWRlZiBOVFNUQVRV
UworKCpYRU5CVVNfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFHRVMpKAorICAgIElOICBQSU5URVJG
QUNFICAgICAgICAgICAgICBJbnRlcmZhY2UsCisgICAgSU4gIFBIWVNJQ0FMX0FERFJFU1MgICAg
ICAgIEFkZHJlc3MKKyAgICApOworCiAvLyB7NzYzNjc5QzUtRTVDMi00QTZELThCODgtNkJCMDJF
QzQyRDhFfQogREVGSU5FX0dVSUQoR1VJRF9YRU5CVVNfR05UVEFCX0lOVEVSRkFDRSwgCiAweDc2
MzY3OWM1LCAweGU1YzIsIDB4NGE2ZCwgMHg4YiwgMHg4OCwgMHg2YiwgMHhiMCwgMHgyZSwgMHhj
NCwgMHgyZCwgMHg4ZSk7CkBAIC0xODIsNyArMjM1LDQyIEBAIHN0cnVjdCBfWEVOQlVTX0dOVFRB
Ql9JTlRFUkZBQ0VfVjEgewogICAgIFhFTkJVU19HTlRUQUJfREVTVFJPWV9DQUNIRSAgICAgICAg
IEdudHRhYkRlc3Ryb3lDYWNoZTsKIH07CiAKLXR5cGVkZWYgc3RydWN0IF9YRU5CVVNfR05UVEFC
X0lOVEVSRkFDRV9WMSBYRU5CVVNfR05UVEFCX0lOVEVSRkFDRSwgKlBYRU5CVVNfR05UVEFCX0lO
VEVSRkFDRTsKKy8qISBcc3RydWN0IF9YRU5CVVNfR05UVEFCX0lOVEVSRkFDRV9WMgorICAgIFxi
cmllZiBHTlRUQUIgaW50ZXJmYWNlIHZlcnNpb24gMgorICAgIFxpbmdyb3VwIGludGVyZmFjZXMK
KyovCitzdHJ1Y3QgX1hFTkJVU19HTlRUQUJfSU5URVJGQUNFX1YyIHsKKyAgICBJTlRFUkZBQ0Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2U7CisgICAgWEVOQlVTX0dOVFRBQl9B
Q1FVSVJFICAgICAgICAgICAgICAgR250dGFiQWNxdWlyZTsKKyAgICBYRU5CVVNfR05UVEFCX1JF
TEVBU0UgICAgICAgICAgICAgICBHbnR0YWJSZWxlYXNlOworICAgIFhFTkJVU19HTlRUQUJfQ1JF
QVRFX0NBQ0hFICAgICAgICAgIEdudHRhYkNyZWF0ZUNhY2hlOworICAgIFhFTkJVU19HTlRUQUJf
UEVSTUlUX0ZPUkVJR05fQUNDRVNTIEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M7CisgICAgWEVO
QlVTX0dOVFRBQl9SRVZPS0VfRk9SRUlHTl9BQ0NFU1MgR250dGFiUmV2b2tlRm9yZWlnbkFjY2Vz
czsKKyAgICBYRU5CVVNfR05UVEFCX0dFVF9SRUZFUkVOQ0UgICAgICAgICBHbnR0YWJHZXRSZWZl
cmVuY2U7CisgICAgWEVOQlVTX0dOVFRBQl9ERVNUUk9ZX0NBQ0hFICAgICAgICAgR250dGFiRGVz
dHJveUNhY2hlOworICAgIFhFTkJVU19HTlRUQUJfTUFQX0ZPUkVJR05fUEFHRVMgICAgIEdudHRh
Yk1hcEZvcmVpZ25QYWdlczsKKyAgICBYRU5CVVNfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFHRVMg
ICBHbnR0YWJVbm1hcEZvcmVpZ25QYWdlczsKK307CisKKy8qISBcc3RydWN0IF9YRU5CVVNfR05U
VEFCX0lOVEVSRkFDRV9WMworICAgIFxicmllZiBHTlRUQUIgaW50ZXJmYWNlIHZlcnNpb24gMwor
ICAgIFxpbmdyb3VwIGludGVyZmFjZXMKKyovCitzdHJ1Y3QgX1hFTkJVU19HTlRUQUJfSU5URVJG
QUNFX1YzIHsKKyAgICBJTlRFUkZBQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZh
Y2U7CisgICAgWEVOQlVTX0dOVFRBQl9BQ1FVSVJFICAgICAgICAgICAgICAgR250dGFiQWNxdWly
ZTsKKyAgICBYRU5CVVNfR05UVEFCX1JFTEVBU0UgICAgICAgICAgICAgICBHbnR0YWJSZWxlYXNl
OworICAgIFhFTkJVU19HTlRUQUJfQ1JFQVRFX0NBQ0hFICAgICAgICAgIEdudHRhYkNyZWF0ZUNh
Y2hlOworICAgIFhFTkJVU19HTlRUQUJfUEVSTUlUX0ZPUkVJR05fQUNDRVNTIEdudHRhYlBlcm1p
dEZvcmVpZ25BY2Nlc3M7CisgICAgWEVOQlVTX0dOVFRBQl9SRVZPS0VfRk9SRUlHTl9BQ0NFU1Mg
R250dGFiUmV2b2tlRm9yZWlnbkFjY2VzczsKKyAgICBYRU5CVVNfR05UVEFCX0dFVF9SRUZFUkVO
Q0UgICAgICAgICBHbnR0YWJHZXRSZWZlcmVuY2U7CisgICAgWEVOQlVTX0dOVFRBQl9RVUVSWV9S
RUZFUkVOQ0UgICAgICAgR250dGFiUXVlcnlSZWZlcmVuY2U7CisgICAgWEVOQlVTX0dOVFRBQl9E
RVNUUk9ZX0NBQ0hFICAgICAgICAgR250dGFiRGVzdHJveUNhY2hlOworICAgIFhFTkJVU19HTlRU
QUJfTUFQX0ZPUkVJR05fUEFHRVMgICAgIEdudHRhYk1hcEZvcmVpZ25QYWdlczsKKyAgICBYRU5C
VVNfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFHRVMgICBHbnR0YWJVbm1hcEZvcmVpZ25QYWdlczsK
K307CisKK3R5cGVkZWYgc3RydWN0IF9YRU5CVVNfR05UVEFCX0lOVEVSRkFDRV9WMyBYRU5CVVNf
R05UVEFCX0lOVEVSRkFDRSwgKlBYRU5CVVNfR05UVEFCX0lOVEVSRkFDRTsKIAogLyohIFxkZWYg
WEVOQlVTX0dOVFRBQgogICAgIFxicmllZiBNYWNybyBhdCBhc3Npc3QgaW4gbWV0aG9kIGludm9j
YXRpb24KQEAgLTE5Myw3ICsyODEsNyBAQCB0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0dOVFRBQl9J
TlRFUkZBQ0VfVjEgWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0UsICpQWEVOQlVTX0dOVAogI2VuZGlm
ICAvLyBfV0lORExMCiAKICNkZWZpbmUgWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0VfVkVSU0lPTl9N
SU4gMQotI2RlZmluZSBYRU5CVVNfR05UVEFCX0lOVEVSRkFDRV9WRVJTSU9OX01BWCAxCisjZGVm
aW5lIFhFTkJVU19HTlRUQUJfSU5URVJGQUNFX1ZFUlNJT05fTUFYIDMKIAogI2VuZGlmICAvLyBf
WEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0VfSAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3N0b3JlX2lu
dGVyZmFjZS5oIGIvaW5jbHVkZS9zdG9yZV9pbnRlcmZhY2UuaAppbmRleCA1YmNiYmEzLi41MmYx
YTFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3N0b3JlX2ludGVyZmFjZS5oCisrKyBiL2luY2x1ZGUv
c3RvcmVfaW50ZXJmYWNlLmgKQEAgLTUwLDYgKzUwLDIzIEBAIHR5cGVkZWYgc3RydWN0IF9YRU5C
VVNfU1RPUkVfVFJBTlNBQ1RJT04gICAgWEVOQlVTX1NUT1JFX1RSQU5TQUNUSU9OLCAqUFhFTkJV
U19TCiAqLwogdHlwZWRlZiBzdHJ1Y3QgX1hFTkJVU19TVE9SRV9XQVRDSCAgICAgICAgICBYRU5C
VVNfU1RPUkVfV0FUQ0gsICpQWEVOQlVTX1NUT1JFX1dBVENIOwogCisvKiEgXHR5cGVkZWYgWEVO
QlVTX1NUT1JFX1BFUk1JU1NJT05fTUFTSworICAgIFxicmllZiBCaXRtYXNrIG9mIFhlblN0b3Jl
IGtleSBwZXJtaXNzaW9ucworKi8KK3R5cGVkZWYgZW51bSBfWEVOQlVTX1NUT1JFX1BFUk1JU1NJ
T05fTUFTSyB7CisgICAgWEVOQlVTX1NUT1JFX1BFUk1fTk9ORSA9IDAsCisgICAgWEVOQlVTX1NU
T1JFX1BFUk1fUkVBRCA9IDEsCisgICAgWEVOQlVTX1NUT1JFX1BFUk1fV1JJVEUgPSAyLAorfSBY
RU5CVVNfU1RPUkVfUEVSTUlTU0lPTl9NQVNLOworCisvKiEgXHR5cGVkZWYgWEVOQlVTX1NUT1JF
X1BFUk1JU1NJT04KKyAgICBcYnJpZWYgWGVuU3RvcmUga2V5IHBlcm1pc3Npb25zIGVudHJ5IGZv
ciBhIHNpbmdsZSBkb21haW4KKyovCit0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX1NUT1JFX1BFUk1J
U1NJT04geworICAgIFVTSE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgRG9tYWluOworICAg
IFhFTkJVU19TVE9SRV9QRVJNSVNTSU9OX01BU0sgICAgTWFzazsKK30gWEVOQlVTX1NUT1JFX1BF
Uk1JU1NJT04sICpQWEVOQlVTX1NUT1JFX1BFUk1JU1NJT047CisKIC8qISBcdHlwZWRlZiBYRU5C
VVNfU1RPUkVfQUNRVUlSRQogICAgIFxicmllZiBBY3F1aXJlIGEgcmVmZXJlbmNlIHRvIHRoZSBT
VE9SRSBpbnRlcmZhY2UKIApAQCAtMjQ3LDEwICsyNjQsMzYgQEAgdHlwZWRlZiBWT0lECiAgICAg
SU4gIFBJTlRFUkZBQ0UgIEludGVyZmFjZQogICAgICk7CiAKKy8qISBcdHlwZWRlZiBYRU5CVVNf
U1RPUkVfUEVSTUlTU0lPTlNfU0VUCisgICAgXGJyaWVmIFNldCBwZXJtaXNzaW9ucyBmb3IgYSBY
ZW5TdG9yZSBrZXkKKworICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhlIGludGVyZmFjZSBoZWFkZXIK
KyAgICBccGFyYW0gVHJhbnNhY3Rpb24gVGhlIHRyYW5zYWN0aW9uIGhhbmRsZSAoTlVMTCBpZiB0
aGlzIGlzIG5vdAorICAgIHBhcnQgb2YgYSB0cmFuc2FjdGlvbikKKyAgICBccGFyYW0gUHJlZml4
IEFuIG9wdGlvbmFsIHByZWZpeCBmb3IgdGhlIFxhIE5vZGUKKyAgICBccGFyYW0gTm9kZSBUaGUg
Y29uY2F0ZW5hdGlvbiBvZiB0aGUgXGEgUHJlZml4IGFuZCB0aGlzIHZhbHVlIHNwZWNpZmllcwor
ICAgIHRoZSBYZW5TdG9yZSBrZXkgdG8gc2V0IHBlcm1pc3Npb25zIG9mCisgICAgXHBhcmFtIFBl
cm1pc3Npb25zIEFuIGFycmF5IG9mIHBlcm1pc3Npb25zIHRvIHNldAorICAgIFxwYXJhbSBOdW1i
ZXJQZXJtaXNzaW9ucyBOdW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIFxhIFBlcm1pc3Npb25zIGFy
cmF5CisqLwordHlwZWRlZiBOVFNUQVRVUworKCpYRU5CVVNfU1RPUkVfUEVSTUlTU0lPTlNfU0VU
KSgKKyAgICBJTiAgUElOVEVSRkFDRSAgICAgICAgICAgICAgICAgIEludGVyZmFjZSwKKyAgICBJ
TiAgUFhFTkJVU19TVE9SRV9UUkFOU0FDVElPTiAgIFRyYW5zYWN0aW9uIE9QVElPTkFMLAorICAg
IElOICBQQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgUHJlZml4IE9QVElPTkFMLAorICAgIElO
ICBQQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgTm9kZSwKKyAgICBJTiAgUFhFTkJVU19TVE9S
RV9QRVJNSVNTSU9OICAgIFBlcm1pc3Npb25zLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAg
ICAgICAgICAgTnVtYmVyUGVybWlzc2lvbnMKKyAgICApOworCiAvLyB7ODY4MjRDM0ItRDM0RS00
NzUzLUIyODEtMkYxRTNBRDIxNEQ3fQogREVGSU5FX0dVSUQoR1VJRF9YRU5CVVNfU1RPUkVfSU5U
RVJGQUNFLCAKIDB4ODY4MjRjM2IsIDB4ZDM0ZSwgMHg0NzUzLCAweGIyLCAweDgxLCAweDJmLCAw
eDFlLCAweDNhLCAweGQyLCAweDE0LCAweGQ3KTsKIAorLyohIFxzdHJ1Y3QgX1hFTkJVU19TVE9S
RV9JTlRFUkZBQ0VfVjEKKyAgICBcYnJpZWYgU1RPUkUgaW50ZXJmYWNlIHZlcnNpb24gMQorICAg
IFxpbmdyb3VwIGludGVyZmFjZXMKKyovCiBzdHJ1Y3QgX1hFTkJVU19TVE9SRV9JTlRFUkZBQ0Vf
VjEgewogICAgIElOVEVSRkFDRSAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlOwogICAg
IFhFTkJVU19TVE9SRV9BQ1FVSVJFICAgICAgICAgICAgU3RvcmVBY3F1aXJlOwpAQCAtMjY3LDEx
ICszMTAsMjggQEAgc3RydWN0IF9YRU5CVVNfU1RPUkVfSU5URVJGQUNFX1YxIHsKICAgICBYRU5C
VVNfU1RPUkVfUE9MTCAgICAgICAgICAgICAgIFN0b3JlUG9sbDsKIH07CiAKLS8qISBcc3RydWN0
IF9YRU5CVVNfU1RPUkVfSU5URVJGQUNFX1YxCi0gICAgXGJyaWVmIFNUT1JFIGludGVyZmFjZSB2
ZXJzaW9uIDEKKy8qISBcc3RydWN0IF9YRU5CVVNfU1RPUkVfSU5URVJGQUNFX1YyCisgICAgXGJy
aWVmIFNUT1JFIGludGVyZmFjZSB2ZXJzaW9uIDIKICAgICBcaW5ncm91cCBpbnRlcmZhY2VzCiAq
LwotdHlwZWRlZiBzdHJ1Y3QgX1hFTkJVU19TVE9SRV9JTlRFUkZBQ0VfVjEgWEVOQlVTX1NUT1JF
X0lOVEVSRkFDRSwgKlBYRU5CVVNfU1RPUkVfSU5URVJGQUNFOworc3RydWN0IF9YRU5CVVNfU1RP
UkVfSU5URVJGQUNFX1YyIHsKKyAgICBJTlRFUkZBQ0UgICAgICAgICAgICAgICAgICAgICAgIElu
dGVyZmFjZTsKKyAgICBYRU5CVVNfU1RPUkVfQUNRVUlSRSAgICAgICAgICAgIFN0b3JlQWNxdWly
ZTsKKyAgICBYRU5CVVNfU1RPUkVfUkVMRUFTRSAgICAgICAgICAgIFN0b3JlUmVsZWFzZTsKKyAg
ICBYRU5CVVNfU1RPUkVfRlJFRSAgICAgICAgICAgICAgIFN0b3JlRnJlZTsKKyAgICBYRU5CVVNf
U1RPUkVfUkVBRCAgICAgICAgICAgICAgIFN0b3JlUmVhZDsKKyAgICBYRU5CVVNfU1RPUkVfUFJJ
TlRGICAgICAgICAgICAgIFN0b3JlUHJpbnRmOworICAgIFhFTkJVU19TVE9SRV9QRVJNSVNTSU9O
U19TRVQgICAgU3RvcmVQZXJtaXNzaW9uc1NldDsKKyAgICBYRU5CVVNfU1RPUkVfUkVNT1ZFICAg
ICAgICAgICAgIFN0b3JlUmVtb3ZlOworICAgIFhFTkJVU19TVE9SRV9ESVJFQ1RPUlkgICAgICAg
ICAgU3RvcmVEaXJlY3Rvcnk7CisgICAgWEVOQlVTX1NUT1JFX1RSQU5TQUNUSU9OX1NUQVJUICBT
dG9yZVRyYW5zYWN0aW9uU3RhcnQ7CisgICAgWEVOQlVTX1NUT1JFX1RSQU5TQUNUSU9OX0VORCAg
ICBTdG9yZVRyYW5zYWN0aW9uRW5kOworICAgIFhFTkJVU19TVE9SRV9XQVRDSF9BREQgICAgICAg
ICAgU3RvcmVXYXRjaEFkZDsKKyAgICBYRU5CVVNfU1RPUkVfV0FUQ0hfUkVNT1ZFICAgICAgIFN0
b3JlV2F0Y2hSZW1vdmU7CisgICAgWEVOQlVTX1NUT1JFX1BPTEwgICAgICAgICAgICAgICBTdG9y
ZVBvbGw7Cit9OworCit0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX1NUT1JFX0lOVEVSRkFDRV9WMiBY
RU5CVVNfU1RPUkVfSU5URVJGQUNFLCAqUFhFTkJVU19TVE9SRV9JTlRFUkZBQ0U7CiAKIC8qISBc
ZGVmIFhFTkJVU19TVE9SRQogICAgIFxicmllZiBNYWNybyBhdCBhc3Npc3QgaW4gbWV0aG9kIGlu
dm9jYXRpb24KQEAgLTI4Miw3ICszNDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX1NUT1JF
X0lOVEVSRkFDRV9WMSBYRU5CVVNfU1RPUkVfSU5URVJGQUNFLCAqUFhFTkJVU19TVE9SRQogI2Vu
ZGlmICAvLyBfV0lORExMCiAKICNkZWZpbmUgWEVOQlVTX1NUT1JFX0lOVEVSRkFDRV9WRVJTSU9O
X01JTiAgMQotI2RlZmluZSBYRU5CVVNfU1RPUkVfSU5URVJGQUNFX1ZFUlNJT05fTUFYICAxCisj
ZGVmaW5lIFhFTkJVU19TVE9SRV9JTlRFUkZBQ0VfVkVSU0lPTl9NQVggIDIKIAogI2VuZGlmICAv
LyBfWEVOQlVTX1NUT1JFX0lOVEVSRkFDRV9ICiAKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQuaW5m
IGIvc3JjL3hlbnZiZC5pbmYKaW5kZXggYmI1YWRhMi4uNTIyMGFkZCAxMDA2NDQKLS0tIGEvc3Jj
L3hlbnZiZC5pbmYKKysrIGIvc3JjL3hlbnZiZC5pbmYKQEAgLTU0LDkgKzU0LDkgQEAgeGVudmJk
X2NvaW5zdC5kbGw9MCwsCiAlVmVuZG9yJT1JbnN0LE5UJEFSQ0gkCiAKIFtJbnN0Lk5UJEFSQ0gk
XQotJVhlblZiZE5hbWUlPVhlblZiZF9JbnN0LFhFTkJVU1xWRU5fQFZFTkRPUl9QUkVGSVhAQFZF
TkRPUl9ERVZJQ0VfSURAJkRFVl9WQkQmUkVWXzA5MDAwMDAwCi0lWGVuVmJkTmFtZSU9WGVuVmJk
X0luc3QsWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJWEAwMDAxJkRFVl9WQkQmUkVWXzA5MDAwMDAw
Ci0lWGVuVmJkTmFtZSU9WGVuVmJkX0luc3QsWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJWEAwMDAy
JkRFVl9WQkQmUkVWXzA5MDAwMDAwCislWGVuVmJkTmFtZSU9WGVuVmJkX0luc3QsWEVOQlVTXFZF
Tl9AVkVORE9SX1BSRUZJWEBAVkVORE9SX0RFVklDRV9JREAmREVWX1ZCRCZSRVZfMDkwMDAwMDQK
KyVYZW5WYmROYW1lJT1YZW5WYmRfSW5zdCxYRU5CVVNcVkVOX0BWRU5ET1JfUFJFRklYQDAwMDEm
REVWX1ZCRCZSRVZfMDkwMDAwMDQKKyVYZW5WYmROYW1lJT1YZW5WYmRfSW5zdCxYRU5CVVNcVkVO
X0BWRU5ET1JfUFJFRklYQDAwMDImREVWX1ZCRCZSRVZfMDkwMDAwMDQKIAogW1hlblZiZF9JbnN0
XSAKIENvcHlGaWxlcz1YZW5WYmRfQ29weWZpbGVzCmRpZmYgLS1naXQgYS9zcmMveGVudmJkL3Jp
bmcuYyBiL3NyYy94ZW52YmQvcmluZy5jCmluZGV4IGE3YjYzNmQuLjJmNWM4NzYgMTAwNjQ0Ci0t
LSBhL3NyYy94ZW52YmQvcmluZy5jCisrKyBiL3NyYy94ZW52YmQvcmluZy5jCkBAIC0xNjQ5LDcg
KzE2NDksOCBAQCBCbGtpZlJpbmdEcGMoCiAgICAgWEVOQlVTX0VWVENITihVbm1hc2ssCiAgICAg
ICAgICAgICAgICAgICAmUmluZy0+RXZ0Y2huSW50ZXJmYWNlLAogICAgICAgICAgICAgICAgICAg
QmxraWZSaW5nLT5DaGFubmVsLAotICAgICAgICAgICAgICAgICAgRkFMU0UpOworICAgICAgICAg
ICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICAgICAgICBUUlVFKTsKIH0KIAogc3RhdGljIE5U
U1RBVFVTCkBAIC0xOTIzLDcgKzE5MjQsOCBAQCBCbGtpZlJpbmdDb25uZWN0KAogICAgIFhFTkJV
U19FVlRDSE4oVW5tYXNrLAogICAgICAgICAgICAgICAgICAgJlJpbmctPkV2dGNobkludGVyZmFj
ZSwKICAgICAgICAgICAgICAgICAgIEJsa2lmUmluZy0+Q2hhbm5lbCwKLSAgICAgICAgICAgICAg
ICAgIEZBTFNFKTsKKyAgICAgICAgICAgICAgICAgIEZBTFNFLAorICAgICAgICAgICAgICAgICAg
VFJVRSk7CiAKICAgICBzdGF0dXMgPSBSdGxTdHJpbmdDY2hQcmludGZBKE5hbWUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBNQVhfTkFNRV9MRU4sCi0tIAoyLjE2LjIud2luZG93
cy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2lu
LXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK
aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZl
bA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 25 10:04:11 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jun 2018 10:04:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fXOLy-0008Bh-70; Mon, 25 Jun 2018 10:04:10 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=ju2v=jl=citrix.com=prvs=707b31c7b=owen.smith@srs-us1.protection.inumbo.net>)
 id 1fXOLw-0008Bc-Ho
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jun 2018 10:04:08 +0000
X-Inumbo-ID: b65e103d-785e-11e8-9728-bc764e045a96
Received: from SMTP03.CITRIX.COM (unknown [162.221.156.55])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id b65e103d-785e-11e8-9728-bc764e045a96;
 Mon, 25 Jun 2018 12:01:22 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.51,270,1526342400"; d="scan'208";a="58503675"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 25 Jun 2018 11:03:31 +0100
Message-ID: <20180625100331.8160-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.16.2.windows.1
MIME-Version: 1.0
Subject: [win-pv-devel] [PATCH] Update GNTTAB interface header
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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>

QWxzbyB1cGRhdGVzIHJldmlzaW9uIHRvIDA5MDAwMDA0CgpTaWduZWQtb2ZmLWJ5OiBPd2VuIFNt
aXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+Ci0tLQogaW5jbHVkZS9nbnR0YWJfaW50ZXJmYWNl
LmggfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBz
cmMveGVudmlmLmluZiAgICAgICAgICAgICB8ICA2ICstLQogMiBmaWxlcyBjaGFuZ2VkLCA5MyBp
bnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ250dGFi
X2ludGVyZmFjZS5oIGIvaW5jbHVkZS9nbnR0YWJfaW50ZXJmYWNlLmgKaW5kZXggZDI5NDQwYS4u
NjEyNzJhYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9nbnR0YWJfaW50ZXJmYWNlLmgKKysrIGIvaW5j
bHVkZS9nbnR0YWJfaW50ZXJmYWNlLmgKQEAgLTE0OCw2ICsxNDgsMjYgQEAgdHlwZWRlZiBVTE9O
RwogICAgIElOICBQWEVOQlVTX0dOVFRBQl9FTlRSWSAgICAgICAgRW50cnkKICAgICApOwogCisv
KiEgXHR5cGVkZWYgWEVOQlVTX0dOVFRBQl9RVUVSWV9SRUZFUkVOQ0UKKyAgICBcYnJpZWYgR2V0
IHRoZSByZWZlcmVuY2UgbnVtYmVyIG9mIHRoZSBlbnRyeQorCisgICAgXHBhcmFtIEludGVyZmFj
ZSBUaGUgaW50ZXJmYWNlIGhlYWRlcgorICAgIFxwYXJhbSBSZWZlcmVuY2UgVGhlIHJlZmVyZW5j
ZSBudW1iZXIKKyAgICBccGFyYW0gUGZuIEFuIG9wdGlvbmFsIHBvaW50ZXIgdG8gcmVjZWl2ZSB0
aGUgdmFsdWUgb2YgdGhlIHJlZmVyZW5jZSBmcmFtZSBudW1iZXIKKyAgICBccGFyYW0gUmVhZE9u
bHkgQW4gb3B0aW9uYWwgcG9pbnRlciB0byByZWNlaXZlIHRoZSBib29sZWFuIHZhbHVlIG9mIHRo
ZSByZWFkLW9ubHkgZmxhZworKi8KK3R5cGVkZWYgTlRTVEFUVVMKKygqWEVOQlVTX0dOVFRBQl9R
VUVSWV9SRUZFUkVOQ0UpKAorICAgIElOICBQSU5URVJGQUNFICBJbnRlcmZhY2UsCisgICAgSU4g
IFVMT05HICAgICAgIFJlZmVyZW5jZSwKKyAgICBPVVQgUFBGTl9OVU1CRVIgUGZuIE9QVElPTkFM
LAorICAgIE9VVCBQQk9PTEVBTiAgICBSZWFkT25seSBPUFRJT05BTAorICAgICk7CisKKyNkZWZp
bmUgWEVOQlVTX0dOVFRBQl9DT05TT0xFX1JFRkVSRU5DRSAwCisjZGVmaW5lIFhFTkJVU19HTlRU
QUJfU1RPUkVfUkVGRVJFTkNFICAgMQorCisKIC8qISBcdHlwZWRlZiBYRU5CVVNfR05UVEFCX0RF
U1RST1lfQ0FDSEUKICAgICBcYnJpZWYgRGVzdHJveSBhIGNhY2hlIG9mIGdyYW50IHRhYmxlIGVu
dHJpZXMKIApAQCAtMTYzLDYgKzE4MywzOSBAQCB0eXBlZGVmIFZPSUQKICAgICBJTiAgUFhFTkJV
U19HTlRUQUJfQ0FDSEUgICAgQ2FjaGUKICAgICApOwogCisvKiEgXHR5cGVkZWYgWEVOQlVTX0dO
VFRBQl9NQVBfRk9SRUlHTl9QQUdFUworICAgIFxicmllZiBNYXAgZm9yZWlnbiBtZW1vcnkgcGFn
ZXMgaW50byB0aGUgc3lzdGVtIGFkZHJlc3Mgc3BhY2UKKworICAgIFxwYXJhbSBJbnRlcmZhY2Ug
VGhlIGludGVyZmFjZSBoZWFkZXIKKyAgICBccGFyYW0gRG9tYWluIFRoZSBkb21pZCBvZiB0aGUg
Zm9yZWlnbiBkb21haW4gdGhhdCBncmFudGVkIHRoZSBwYWdlcworICAgIFxwYXJhbSBOdW1iZXJQ
YWdlcyBOdW1iZXIgb2YgcGFnZXMgdG8gbWFwCisgICAgXHBhcmFtIFJlZmVyZW5jZXMgQXJyYXkg
b2YgZ3JhbnQgcmVmZXJlbmNlIG51bWJlcnMgc2hhcmVkIGJ5IHRoZSBmb3JlaWduIGRvbWFpbgor
ICAgIFxwYXJhbSBSZWFkT25seSBJZiBUUlVFLCBwYWdlcyBhcmUgbWFwcGVkIHdpdGggcmVhZC1v
bmx5IGFjY2VzcworICAgIFxwYXJhbSBBZGRyZXNzIFRoZSBwaHlzaWNhbCBhZGRyZXNzIHRoYXQg
dGhlIGZvcmVpZ24gcGFnZXMgYXJlIG1hcHBlZCB1bmRlcgorKi8KKwordHlwZWRlZiBOVFNUQVRV
UworKCpYRU5CVVNfR05UVEFCX01BUF9GT1JFSUdOX1BBR0VTKSgKKyAgICBJTiAgUElOVEVSRkFD
RSAgICAgICAgICAgICAgSW50ZXJmYWNlLAorICAgIElOICBVU0hPUlQgICAgICAgICAgICAgICAg
ICBEb21haW4sCisgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgIE51bWJlclBhZ2VzLAor
ICAgIElOICBQVUxPTkcgICAgICAgICAgICAgICAgICBSZWZlcmVuY2VzLAorICAgIElOICBCT09M
RUFOICAgICAgICAgICAgICAgICBSZWFkT25seSwKKyAgICBPVVQgUEhZU0lDQUxfQUREUkVTUyAg
ICAgICAgKkFkZHJlc3MKKyAgICApOworCisvKiEgXHR5cGVkZWYgWEVOQlVTX0dOVFRBQl9VTk1B
UF9GT1JFSUdOX1BBR0VTCisgICAgXGJyaWVmIFVubWFwIGZvcmVpZ24gbWVtb3J5IHBhZ2VzIGZy
b20gdGhlIHN5c3RlbSBhZGRyZXNzIHNwYWNlCisKKyAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBp
bnRlcmZhY2UgaGVhZGVyCisgICAgXHBhcmFtIEFkZHJlc3MgVGhlIHBoeXNpY2FsIGFkZHJlc3Mg
dGhhdCB0aGUgZm9yZWlnbiBwYWdlcyBhcmUgbWFwcGVkIHVuZGVyCisqLwordHlwZWRlZiBOVFNU
QVRVUworKCpYRU5CVVNfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFHRVMpKAorICAgIElOICBQSU5U
RVJGQUNFICAgICAgICAgICAgICBJbnRlcmZhY2UsCisgICAgSU4gIFBIWVNJQ0FMX0FERFJFU1Mg
ICAgICAgIEFkZHJlc3MKKyAgICApOworCiAvLyB7NzYzNjc5QzUtRTVDMi00QTZELThCODgtNkJC
MDJFQzQyRDhFfQogREVGSU5FX0dVSUQoR1VJRF9YRU5CVVNfR05UVEFCX0lOVEVSRkFDRSwgCiAw
eDc2MzY3OWM1LCAweGU1YzIsIDB4NGE2ZCwgMHg4YiwgMHg4OCwgMHg2YiwgMHhiMCwgMHgyZSwg
MHhjNCwgMHgyZCwgMHg4ZSk7CkBAIC0xODIsNyArMjM1LDQyIEBAIHN0cnVjdCBfWEVOQlVTX0dO
VFRBQl9JTlRFUkZBQ0VfVjEgewogICAgIFhFTkJVU19HTlRUQUJfREVTVFJPWV9DQUNIRSAgICAg
ICAgIEdudHRhYkRlc3Ryb3lDYWNoZTsKIH07CiAKLXR5cGVkZWYgc3RydWN0IF9YRU5CVVNfR05U
VEFCX0lOVEVSRkFDRV9WMSBYRU5CVVNfR05UVEFCX0lOVEVSRkFDRSwgKlBYRU5CVVNfR05UVEFC
X0lOVEVSRkFDRTsKKy8qISBcc3RydWN0IF9YRU5CVVNfR05UVEFCX0lOVEVSRkFDRV9WMgorICAg
IFxicmllZiBHTlRUQUIgaW50ZXJmYWNlIHZlcnNpb24gMgorICAgIFxpbmdyb3VwIGludGVyZmFj
ZXMKKyovCitzdHJ1Y3QgX1hFTkJVU19HTlRUQUJfSU5URVJGQUNFX1YyIHsKKyAgICBJTlRFUkZB
Q0UgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2U7CisgICAgWEVOQlVTX0dOVFRB
Ql9BQ1FVSVJFICAgICAgICAgICAgICAgR250dGFiQWNxdWlyZTsKKyAgICBYRU5CVVNfR05UVEFC
X1JFTEVBU0UgICAgICAgICAgICAgICBHbnR0YWJSZWxlYXNlOworICAgIFhFTkJVU19HTlRUQUJf
Q1JFQVRFX0NBQ0hFICAgICAgICAgIEdudHRhYkNyZWF0ZUNhY2hlOworICAgIFhFTkJVU19HTlRU
QUJfUEVSTUlUX0ZPUkVJR05fQUNDRVNTIEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nlc3M7CisgICAg
WEVOQlVTX0dOVFRBQl9SRVZPS0VfRk9SRUlHTl9BQ0NFU1MgR250dGFiUmV2b2tlRm9yZWlnbkFj
Y2VzczsKKyAgICBYRU5CVVNfR05UVEFCX0dFVF9SRUZFUkVOQ0UgICAgICAgICBHbnR0YWJHZXRS
ZWZlcmVuY2U7CisgICAgWEVOQlVTX0dOVFRBQl9ERVNUUk9ZX0NBQ0hFICAgICAgICAgR250dGFi
RGVzdHJveUNhY2hlOworICAgIFhFTkJVU19HTlRUQUJfTUFQX0ZPUkVJR05fUEFHRVMgICAgIEdu
dHRhYk1hcEZvcmVpZ25QYWdlczsKKyAgICBYRU5CVVNfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFH
RVMgICBHbnR0YWJVbm1hcEZvcmVpZ25QYWdlczsKK307CisKKy8qISBcc3RydWN0IF9YRU5CVVNf
R05UVEFCX0lOVEVSRkFDRV9WMworICAgIFxicmllZiBHTlRUQUIgaW50ZXJmYWNlIHZlcnNpb24g
MworICAgIFxpbmdyb3VwIGludGVyZmFjZXMKKyovCitzdHJ1Y3QgX1hFTkJVU19HTlRUQUJfSU5U
RVJGQUNFX1YzIHsKKyAgICBJTlRFUkZBQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRl
cmZhY2U7CisgICAgWEVOQlVTX0dOVFRBQl9BQ1FVSVJFICAgICAgICAgICAgICAgR250dGFiQWNx
dWlyZTsKKyAgICBYRU5CVVNfR05UVEFCX1JFTEVBU0UgICAgICAgICAgICAgICBHbnR0YWJSZWxl
YXNlOworICAgIFhFTkJVU19HTlRUQUJfQ1JFQVRFX0NBQ0hFICAgICAgICAgIEdudHRhYkNyZWF0
ZUNhY2hlOworICAgIFhFTkJVU19HTlRUQUJfUEVSTUlUX0ZPUkVJR05fQUNDRVNTIEdudHRhYlBl
cm1pdEZvcmVpZ25BY2Nlc3M7CisgICAgWEVOQlVTX0dOVFRBQl9SRVZPS0VfRk9SRUlHTl9BQ0NF
U1MgR250dGFiUmV2b2tlRm9yZWlnbkFjY2VzczsKKyAgICBYRU5CVVNfR05UVEFCX0dFVF9SRUZF
UkVOQ0UgICAgICAgICBHbnR0YWJHZXRSZWZlcmVuY2U7CisgICAgWEVOQlVTX0dOVFRBQl9RVUVS
WV9SRUZFUkVOQ0UgICAgICAgR250dGFiUXVlcnlSZWZlcmVuY2U7CisgICAgWEVOQlVTX0dOVFRB
Ql9ERVNUUk9ZX0NBQ0hFICAgICAgICAgR250dGFiRGVzdHJveUNhY2hlOworICAgIFhFTkJVU19H
TlRUQUJfTUFQX0ZPUkVJR05fUEFHRVMgICAgIEdudHRhYk1hcEZvcmVpZ25QYWdlczsKKyAgICBY
RU5CVVNfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFHRVMgICBHbnR0YWJVbm1hcEZvcmVpZ25QYWdl
czsKK307CisKK3R5cGVkZWYgc3RydWN0IF9YRU5CVVNfR05UVEFCX0lOVEVSRkFDRV9WMyBYRU5C
VVNfR05UVEFCX0lOVEVSRkFDRSwgKlBYRU5CVVNfR05UVEFCX0lOVEVSRkFDRTsKIAogLyohIFxk
ZWYgWEVOQlVTX0dOVFRBQgogICAgIFxicmllZiBNYWNybyBhdCBhc3Npc3QgaW4gbWV0aG9kIGlu
dm9jYXRpb24KQEAgLTE5Myw3ICsyODEsNyBAQCB0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0dOVFRB
Ql9JTlRFUkZBQ0VfVjEgWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0UsICpQWEVOQlVTX0dOVAogI2Vu
ZGlmICAvLyBfV0lORExMCiAKICNkZWZpbmUgWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0VfVkVSU0lP
Tl9NSU4gMQotI2RlZmluZSBYRU5CVVNfR05UVEFCX0lOVEVSRkFDRV9WRVJTSU9OX01BWCAxCisj
ZGVmaW5lIFhFTkJVU19HTlRUQUJfSU5URVJGQUNFX1ZFUlNJT05fTUFYIDMKIAogI2VuZGlmICAv
LyBfWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0VfSAogCmRpZmYgLS1naXQgYS9zcmMveGVudmlmLmlu
ZiBiL3NyYy94ZW52aWYuaW5mCmluZGV4IGVmNGU5YmMuLmExZDkzMDEgMTAwNjQ0Ci0tLSBhL3Ny
Yy94ZW52aWYuaW5mCisrKyBiL3NyYy94ZW52aWYuaW5mCkBAIC01OSw5ICs1OSw5IEBAIHhlbnZp
Zl9jb2luc3RfQE1BSk9SX1ZFUlNJT05AX0BNSU5PUl9WRVJTSU9OQF9ATUlDUk9fVkVSU0lPTkBf
QEJVSUxEX05VTUJFUkAuZGxsCiA7IERpc3BsYXlOYW1lCQlTZWN0aW9uCQlEZXZpY2VJRAogOyAt
LS0tLS0tLS0tLQkJLS0tLS0tLQkJLS0tLS0tLS0KIAotJVhlblZpZk5hbWUlCQk9WGVuVmlmX0lu
c3QsCVhFTkJVU1xWRU5fQFZFTkRPUl9QUkVGSVhAQFZFTkRPUl9ERVZJQ0VfSURAJkRFVl9WSUYm
UkVWXzA5MDAwMDAzCi0lWGVuVmlmTmFtZSUJCT1YZW5WaWZfSW5zdCwJWEVOQlVTXFZFTl9AVkVO
RE9SX1BSRUZJWEAwMDAxJkRFVl9WSUYmUkVWXzA5MDAwMDAzCi0lWGVuVmlmTmFtZSUJCT1YZW5W
aWZfSW5zdCwJWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJWEAwMDAyJkRFVl9WSUYmUkVWXzA5MDAw
MDAzCislWGVuVmlmTmFtZSUJCT1YZW5WaWZfSW5zdCwJWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJ
WEBAVkVORE9SX0RFVklDRV9JREAmREVWX1ZJRiZSRVZfMDkwMDAwMDQKKyVYZW5WaWZOYW1lJQkJ
PVhlblZpZl9JbnN0LAlYRU5CVVNcVkVOX0BWRU5ET1JfUFJFRklYQDAwMDEmREVWX1ZJRiZSRVZf
MDkwMDAwMDQKKyVYZW5WaWZOYW1lJQkJPVhlblZpZl9JbnN0LAlYRU5CVVNcVkVOX0BWRU5ET1Jf
UFJFRklYQDAwMDImREVWX1ZJRiZSRVZfMDkwMDAwMDQKIAogW1hlblZpZl9JbnN0XSAKIENvcHlG
aWxlcz1YZW5WaWZfQ29weWZpbGVzCi0tIAoyLjE2LjIud2luZG93cy4xCgoKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcg
bGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 25 10:15:50 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jun 2018 10:15:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fXOXE-0000SE-5j; Mon, 25 Jun 2018 10:15:48 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=ndbz=jl=citrix.com=prvs=707e514f0=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fXOXC-0000S9-BA
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jun 2018 10:15:46 +0000
X-Inumbo-ID: c110ffcf-7860-11e8-bc1d-65256ead4e3a
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-amaz-eas1.inumbo.com (Halon) with ESMTPS
 id c110ffcf-7860-11e8-bc1d-65256ead4e3a;
 Mon, 25 Jun 2018 10:15:59 +0000 (UTC)
X-IronPort-AV: E=Sophos;i="5.51,270,1526342400"; d="scan'208";a="75212611"
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] Update EVTCHN, GNTTAB and STORE interface
 headers
Thread-Index: AQHUDGm45jdK/CSllE6lvv2M+EeWbaRwwa/w
Date: Mon, 25 Jun 2018 10:15:33 +0000
Message-ID: <2611b3203a6b40e8b2ee43bed0f3312f@AMSPEX02CL03.citrite.net>
References: <20180625094818.15448-1-owen.smith@citrix.com>
In-Reply-To: <20180625094818.15448-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
Subject: Re: [win-pv-devel] [PATCH] Update EVTCHN,
 GNTTAB and STORE interface headers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjUgSnVuZSAyMDE4IDEwOjQ4DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGggPG93ZW4uc21pdGhA
Y2l0cml4LmNvbT4NCj4gU3ViamVjdDogW3dpbi1wdi1kZXZlbF0gW1BBVENIXSBVcGRhdGUgRVZU
Q0hOLCBHTlRUQUIgYW5kIFNUT1JFDQo+IGludGVyZmFjZSBoZWFkZXJzDQo+IA0KPiBVcGRhdGVz
IHJldmlzaW9uIHRvIDA5MDAwMDA0DQo+IEZpeGVzIEV2dGNobiBVbm1hc2sgY2FsbHMNCj4gVXBk
YXRlcyB4ZW5idXMgaW50ZXJmYWNlIGhlYWRlcnMgdG8gbGF0ZXN0IHZlcnNpb25zDQo+IA0KPiBU
aGlzIHdpbGwgcmVzb2x2ZSBhbiBpc3N1ZSB3aGVyZSwgdW5kZXIgY2VydGFpbiB0aW1pbmcgY29u
ZGl0aW9ucywNCj4geGVudmJkIHdpbGwgcmVxdWVzdCBhIHNlY29uZCByZWJvb3QgYmVmb3JlIGZ1
bmN0aW9uaW5nIGNvcnJlY3RseS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93
ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KR2l2ZW4gdGhlIGRpZmZpY3VsdGllcyBzZXBhcmF0aW5n
IHRoZXNlIHVwZGF0ZXMuLi4NCg0KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJy
YW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBpbmNsdWRlL2V2dGNobl9pbnRlcmZhY2UuaCB8
IDEyOA0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0NCj4g
IGluY2x1ZGUvZ250dGFiX2ludGVyZmFjZS5oIHwgIDkyICsrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKystDQo+ICBpbmNsdWRlL3N0b3JlX2ludGVyZmFjZS5oICB8ICA2OCArKysrKysrKysr
KysrKysrKysrKysrLS0NCj4gIHNyYy94ZW52YmQuaW5mICAgICAgICAgICAgIHwgICA2ICstLQ0K
PiAgc3JjL3hlbnZiZC9yaW5nLmMgICAgICAgICAgfCAgIDYgKystDQo+ICA1IGZpbGVzIGNoYW5n
ZWQsIDI1NyBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQg
YS9pbmNsdWRlL2V2dGNobl9pbnRlcmZhY2UuaCBiL2luY2x1ZGUvZXZ0Y2huX2ludGVyZmFjZS5o
DQo+IGluZGV4IDZmOGZlNDIuLjA2OGE2OTcgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvZXZ0Y2hu
X2ludGVyZmFjZS5oDQo+ICsrKyBiL2luY2x1ZGUvZXZ0Y2huX2ludGVyZmFjZS5oDQo+IEBAIC0x
MTIsMTMgKzExMiw2IEBAIHR5cGVkZWYgUFhFTkJVU19FVlRDSE5fQ0hBTk5FTA0KPiAgICAgIC4u
Lg0KPiAgICAgICk7DQo+IA0KPiAtdHlwZWRlZiBOVFNUQVRVUw0KPiAtKCpYRU5CVVNfRVZUQ0hO
X0JJTkRfVjIpKA0KPiAtICAgIElOICBQSU5URVJGQUNFICAgICAgICAgICAgICBJbnRlcmZhY2Us
DQo+IC0gICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5ORUwgIENoYW5uZWwsDQo+IC0gICAgSU4g
IFVMT05HICAgICAgICAgICAgICAgICAgIENwdQ0KPiAtICAgICk7DQo+IC0NCj4gIC8qISBcdHlw
ZWRlZiBYRU5CVVNfRVZUQ0hOX0JJTkQNCj4gICAgICBcYnJpZWYgQmluZCBhbiBldmVudCBjaGFu
bmVsIHRvIGEgc3BlY2lmaWMgQ1BVDQo+IA0KPiBAQCAtMTM1LDggKzEyOCw4IEBAIHR5cGVkZWYg
TlRTVEFUVVMNCj4gICAgICBJTiAgVUNIQVIgICAgICAgICAgICAgICAgICAgTnVtYmVyDQo+ICAg
ICAgKTsNCj4gDQo+IC10eXBlZGVmIEJPT0xFQU4NCj4gLSgqWEVOQlVTX0VWVENITl9VTk1BU0tf
VjEpKA0KPiArdHlwZWRlZiBWT0lEDQo+ICsoKlhFTkJVU19FVlRDSE5fVU5NQVNLX1Y0KSgNCj4g
ICAgICBJTiAgUElOVEVSRkFDRSAgICAgICAgICAgICAgSW50ZXJmYWNlLA0KPiAgICAgIElOICBQ
WEVOQlVTX0VWVENITl9DSEFOTkVMICBDaGFubmVsLA0KPiAgICAgIElOICBCT09MRUFOICAgICAg
ICAgICAgICAgICBJbkNhbGxiYWNrDQo+IEBAIC0xNDgsMTcgKzE0MSwyOCBAQCB0eXBlZGVmIEJP
T0xFQU4NCj4gICAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyDQo+ICAg
ICAgXHBhcmFtIENoYW5uZWwgVGhlIGNoYW5uZWwgaGFuZGxlDQo+ICAgICAgXHBhcmFtIEluQ2Fs
bGJhY2sgU2V0IHRvIFRSVUUgaWYgdGhpcyBtZXRob2QgaXMgaW52b2tlZCBpbiBjb250ZXh0IG9m
IHRoZQ0KPiBjaGFubmVsIGNhbGxiYWNrDQo+ICsgICAgXHBhcmFtIEZvcmNlIFNldCB0byBUUlVF
IGlmIHRoZSB1bm1hc2sgbXVzdCBzdWNjZWVkLCBvdGhlcndpc2Ugc2V0IHRvDQo+IEZBTFNFIGFu
ZCB0aGUgZnVuY3Rpb24gd2lsbCByZXR1cm4gRkFMU0UgaWYgdGhlIHVubWFzayBkaWQgbm90IGNv
bXBsZXRlLg0KPiAgKi8NCj4gLXR5cGVkZWYgVk9JRA0KPiArdHlwZWRlZiBCT09MRUFODQo+ICAo
KlhFTkJVU19FVlRDSE5fVU5NQVNLKSgNCj4gICAgICBJTiAgUElOVEVSRkFDRSAgICAgICAgICAg
ICAgSW50ZXJmYWNlLA0KPiAgICAgIElOICBQWEVOQlVTX0VWVENITl9DSEFOTkVMICBDaGFubmVs
LA0KPiAtICAgIElOICBCT09MRUFOICAgICAgICAgICAgICAgICBJbkNhbGxiYWNrDQo+ICsgICAg
SU4gIEJPT0xFQU4gICAgICAgICAgICAgICAgIEluQ2FsbGJhY2ssDQo+ICsgICAgSU4gIEJPT0xF
QU4gICAgICAgICAgICAgICAgIEZvcmNlDQo+ICsgICAgKTsNCj4gKw0KPiArdHlwZWRlZiBWT0lE
DQo+ICsoKlhFTkJVU19FVlRDSE5fU0VORF9WMSkoDQo+ICsgICAgSU4gIFBJTlRFUkZBQ0UgICAg
ICAgICAgICAgIEludGVyZmFjZSwNCj4gKyAgICBJTiAgUFhFTkJVU19FVlRDSE5fQ0hBTk5FTCAg
Q2hhbm5lbA0KPiAgICAgICk7DQo+IA0KPiAgLyohIFx0eXBlZGVmIFhFTkJVU19FVlRDSE5fU0VO
RA0KPiAgICAgIFxicmllZiBTZW5kIGFuIGV2ZW50IHRvIHRoZSByZW1vdGUgZW5kIG9mIHRoZSBj
aGFubmVsDQo+IA0KPiArICAgIEl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgZG9tYWluIGNhbm5vdCBz
dXNwZW5kIGR1cmluZyB0aGlzIGNhbGwgc28NCj4gKyAgICBJUlFMIG11c3QgYmUgPj0gRElTUEFU
Q0hfTEVWRUwuDQo+ICsNCj4gICAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVh
ZGVyDQo+ICAgICAgXHBhcmFtIENoYW5uZWwgVGhlIGNoYW5uZWwgaGFuZGxlDQo+ICAqLw0KPiBA
QCAtMTgwLDYgKzE4NCw0MiBAQCB0eXBlZGVmIFZPSUQNCj4gICAgICBJTiAgUFhFTkJVU19FVlRD
SE5fQ0hBTk5FTCAgQ2hhbm5lbA0KPiAgICAgICk7DQo+IA0KPiArLyohIFx0eXBlZGVmIFhFTkJV
U19FVlRDSE5fR0VUX0NPVU5UDQo+ICsgICAgXGJyaWVmIEdldCB0aGUgbnVtYmVyIG9mIGV2ZW50
cyByZWNlaXZlZCBieSB0aGUgY2hhbm5lbCBzaW5jZSBpdCB3YXMNCj4gb3BlbmVkDQo+ICsNCj4g
KyAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyDQo+ICsgICAgXHBhcmFt
IENoYW5uZWwgVGhlIGNoYW5uZWwgaGFuZGxlDQo+ICsgICAgXHJldHVybiBUaGUgbnVtYmVyIG9m
IGV2ZW50cw0KPiArKi8NCj4gK3R5cGVkZWYgVUxPTkcNCj4gKygqWEVOQlVTX0VWVENITl9HRVRf
Q09VTlQpKA0KPiArICAgIElOICBQSU5URVJGQUNFICAgICAgICAgICAgICBJbnRlcmZhY2UsDQo+
ICsgICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5ORUwgIENoYW5uZWwNCj4gKyAgICApOw0KPiAr
DQo+ICt0eXBlZGVmIE5UU1RBVFVTDQo+ICsoKlhFTkJVU19FVlRDSE5fV0FJVF9WNSkoDQo+ICsg
ICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgICAgIEludGVyZmFjZSwNCj4gKyAgICBJTiAgUFhF
TkJVU19FVlRDSE5fQ0hBTk5FTCAgQ2hhbm5lbCwNCj4gKyAgICBJTiAgUExBUkdFX0lOVEVHRVIg
ICAgICAgICAgVGltZW91dCBPUFRJT05BTA0KPiArICAgICk7DQo+ICsNCj4gKy8qISBcdHlwZWRl
ZiBYRU5CVVNfRVZUQ0hOX1dBSVQNCj4gKyAgICBcYnJpZWYgV2FpdCBmb3IgZXZlbnRzIHRvIHRo
ZSBsb2NhbCBlbmQgb2YgdGhlIGNoYW5uZWwNCj4gKw0KPiArICAgIFxwYXJhbSBJbnRlcmZhY2Ug
VGhlIGludGVyZmFjZSBoZWFkZXINCj4gKyAgICBccGFyYW0gQ2hhbm5lbCBUaGUgY2hhbm5lbCBo
YW5kbGUNCj4gKyAgICBccGFyYW0gQ291bnQgVGhlIGV2ZW50IGNvdW50IHRvIHdhaXQgZm9yDQo+
ICsgICAgXHBhcmFtIFRpbWVvdXQgQW4gb3B0aW9uYWwgdGltZW91dCB2YWx1ZSAoc2ltaWxhciB0
bw0KPiBLZVdhaXRGb3JTaW5nbGVPYmplY3QoKSwgYnV0IG5vbi16ZXJvIHZhbHVlcyBhcmUgYWxs
b3dlZCBhdA0KPiBESVNQQVRDSF9MRVZFTCkuDQo+ICsqLw0KPiArdHlwZWRlZiBOVFNUQVRVUw0K
PiArKCpYRU5CVVNfRVZUQ0hOX1dBSVQpKA0KPiArICAgIElOICBQSU5URVJGQUNFICAgICAgICAg
ICAgICBJbnRlcmZhY2UsDQo+ICsgICAgSU4gIFBYRU5CVVNfRVZUQ0hOX0NIQU5ORUwgIENoYW5u
ZWwsDQo+ICsgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgIENvdW50LA0KPiArICAgIElO
ICBQTEFSR0VfSU5URUdFUiAgICAgICAgICBUaW1lb3V0IE9QVElPTkFMDQo+ICsgICAgKTsNCj4g
Kw0KPiAgLyohIFx0eXBlZGVmIFhFTkJVU19FVlRDSE5fR0VUX1BPUlQNCj4gICAgICBcYnJpZWYg
R2V0IHRoZSBsb2NhbCBwb3J0IG51bWJlciBib3VuZCB0byB0aGUgY2hhbm5lbA0KPiANCj4gQEAg
LTIwOSw2MSArMjQ5LDgzIEBAIHR5cGVkZWYgVk9JRA0KPiAgREVGSU5FX0dVSUQoR1VJRF9YRU5C
VVNfRVZUQ0hOX0lOVEVSRkFDRSwNCj4gIDB4YmUyNDQwYWMsIDB4MTA5OCwgMHg0MTUwLCAweGFm
LCAweDRkLCAweDQ1LCAweDJmLCAweGFkLCAweGNlLCAweGY5LCAweDIzKTsNCj4gDQo+IC0vKiEg
XHN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjENCj4gLSAgICBcYnJpZWYgRVZUQ0hO
IGludGVyZmFjZSB2ZXJzaW9uIDENCj4gKy8qISBcc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVS
RkFDRV9WNA0KPiArICAgIFxicmllZiBFVlRDSE4gaW50ZXJmYWNlIHZlcnNpb24gNA0KPiAgICAg
IFxpbmdyb3VwIGludGVyZmFjZXMNCj4gICovDQo+IC1zdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5U
RVJGQUNFX1YxIHsNCj4gK3N0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjQgew0KPiAg
ICAgIElOVEVSRkFDRSAgICAgICAgICAgICAgIEludGVyZmFjZTsNCj4gICAgICBYRU5CVVNfRVZU
Q0hOX0FDUVVJUkUgICBFdnRjaG5BY3F1aXJlOw0KPiAgICAgIFhFTkJVU19FVlRDSE5fUkVMRUFT
RSAgIEV2dGNoblJlbGVhc2U7DQo+ICAgICAgWEVOQlVTX0VWVENITl9PUEVOICAgICAgRXZ0Y2hu
T3BlbjsNCj4gLSAgICBYRU5CVVNfRVZUQ0hOX1VOTUFTS19WMSBFdnRjaG5Vbm1hc2tWZXJzaW9u
MTsNCj4gLSAgICBYRU5CVVNfRVZUQ0hOX1NFTkQgICAgICBFdnRjaG5TZW5kOw0KPiArICAgIFhF
TkJVU19FVlRDSE5fQklORCAgICAgIEV2dGNobkJpbmQ7DQo+ICsgICAgWEVOQlVTX0VWVENITl9V
Tk1BU0tfVjQgRXZ0Y2huVW5tYXNrVmVyc2lvbjQ7DQo+ICsgICAgWEVOQlVTX0VWVENITl9TRU5E
X1YxICAgRXZ0Y2huU2VuZFZlcnNpb24xOw0KPiAgICAgIFhFTkJVU19FVlRDSE5fVFJJR0dFUiAg
IEV2dGNoblRyaWdnZXI7DQo+ICAgICAgWEVOQlVTX0VWVENITl9HRVRfUE9SVCAgRXZ0Y2huR2V0
UG9ydDsNCj4gICAgICBYRU5CVVNfRVZUQ0hOX0NMT1NFICAgICBFdnRjaG5DbG9zZTsNCj4gIH07
DQo+IA0KPiAtLyohIFxzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1YyDQo+IC0gICAg
XGJyaWVmIEVWVENITiBpbnRlcmZhY2UgdmVyc2lvbiAyDQo+ICsvKiEgXHN0cnVjdCBfWEVOQlVT
X0VWVENITl9JTlRFUkZBQ0VfVjUNCj4gKyAgICBcYnJpZWYgRVZUQ0hOIGludGVyZmFjZSB2ZXJz
aW9uIDUNCj4gICAgICBcaW5ncm91cCBpbnRlcmZhY2VzDQo+ICAqLw0KPiAtc3RydWN0IF9YRU5C
VVNfRVZUQ0hOX0lOVEVSRkFDRV9WMiB7DQo+ICtzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJG
QUNFX1Y1IHsNCj4gICAgICBJTlRFUkZBQ0UgICAgICAgICAgICAgICBJbnRlcmZhY2U7DQo+ICAg
ICAgWEVOQlVTX0VWVENITl9BQ1FVSVJFICAgRXZ0Y2huQWNxdWlyZTsNCj4gICAgICBYRU5CVVNf
RVZUQ0hOX1JFTEVBU0UgICBFdnRjaG5SZWxlYXNlOw0KPiAgICAgIFhFTkJVU19FVlRDSE5fT1BF
TiAgICAgIEV2dGNobk9wZW47DQo+IC0gICAgWEVOQlVTX0VWVENITl9CSU5EX1YyICAgRXZ0Y2hu
QmluZFZlcnNpb24yOw0KPiAtICAgIFhFTkJVU19FVlRDSE5fVU5NQVNLX1YxIEV2dGNoblVubWFz
a1ZlcnNpb24xOw0KPiArICAgIFhFTkJVU19FVlRDSE5fQklORCAgICAgIEV2dGNobkJpbmQ7DQo+
ICsgICAgWEVOQlVTX0VWVENITl9VTk1BU0tfVjQgRXZ0Y2huVW5tYXNrVmVyc2lvbjQ7DQo+ICsg
ICAgWEVOQlVTX0VWVENITl9TRU5EX1YxICAgRXZ0Y2huU2VuZFZlcnNpb24xOw0KPiArICAgIFhF
TkJVU19FVlRDSE5fVFJJR0dFUiAgIEV2dGNoblRyaWdnZXI7DQo+ICsgICAgWEVOQlVTX0VWVENI
Tl9XQUlUX1Y1ICAgRXZ0Y2huV2FpdFZlcnNpb241Ow0KPiArICAgIFhFTkJVU19FVlRDSE5fR0VU
X1BPUlQgIEV2dGNobkdldFBvcnQ7DQo+ICsgICAgWEVOQlVTX0VWVENITl9DTE9TRSAgICAgRXZ0
Y2huQ2xvc2U7DQo+ICt9Ow0KPiArDQo+ICsvKiEgXHN0cnVjdCBfWEVOQlVTX0VWVENITl9JTlRF
UkZBQ0VfVjYNCj4gKyAgICBcYnJpZWYgRVZUQ0hOIGludGVyZmFjZSB2ZXJzaW9uIDYNCj4gKyAg
ICBcaW5ncm91cCBpbnRlcmZhY2VzDQo+ICsqLw0KPiArc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lO
VEVSRkFDRV9WNiB7DQo+ICsgICAgSU5URVJGQUNFICAgICAgICAgICAgICAgSW50ZXJmYWNlOw0K
PiArICAgIFhFTkJVU19FVlRDSE5fQUNRVUlSRSAgIEV2dGNobkFjcXVpcmU7DQo+ICsgICAgWEVO
QlVTX0VWVENITl9SRUxFQVNFICAgRXZ0Y2huUmVsZWFzZTsNCj4gKyAgICBYRU5CVVNfRVZUQ0hO
X09QRU4gICAgICBFdnRjaG5PcGVuOw0KPiArICAgIFhFTkJVU19FVlRDSE5fQklORCAgICAgIEV2
dGNobkJpbmQ7DQo+ICsgICAgWEVOQlVTX0VWVENITl9VTk1BU0tfVjQgRXZ0Y2huVW5tYXNrVmVy
c2lvbjQ7DQo+ICAgICAgWEVOQlVTX0VWVENITl9TRU5EICAgICAgRXZ0Y2huU2VuZDsNCj4gICAg
ICBYRU5CVVNfRVZUQ0hOX1RSSUdHRVIgICBFdnRjaG5UcmlnZ2VyOw0KPiArICAgIFhFTkJVU19F
VlRDSE5fV0FJVF9WNSAgIEV2dGNobldhaXRWZXJzaW9uNTsNCj4gICAgICBYRU5CVVNfRVZUQ0hO
X0dFVF9QT1JUICBFdnRjaG5HZXRQb3J0Ow0KPiAgICAgIFhFTkJVU19FVlRDSE5fQ0xPU0UgICAg
IEV2dGNobkNsb3NlOw0KPiAgfTsNCj4gDQo+IC0vKiEgXHN0cnVjdCBfWEVOQlVTX0VWVENITl9J
TlRFUkZBQ0VfVjMNCj4gLSAgICBcYnJpZWYgRVZUQ0hOIGludGVyZmFjZSB2ZXJzaW9uIDMNCj4g
Ky8qISBcc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WNw0KPiArICAgIFxicmllZiBF
VlRDSE4gaW50ZXJmYWNlIHZlcnNpb24gNw0KPiAgICAgIFxpbmdyb3VwIGludGVyZmFjZXMNCj4g
ICovDQo+IC1zdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1YzIHsNCj4gK3N0cnVjdCBf
WEVOQlVTX0VWVENITl9JTlRFUkZBQ0VfVjcgew0KPiAgICAgIElOVEVSRkFDRSAgICAgICAgICAg
ICAgIEludGVyZmFjZTsNCj4gICAgICBYRU5CVVNfRVZUQ0hOX0FDUVVJUkUgICBFdnRjaG5BY3F1
aXJlOw0KPiAgICAgIFhFTkJVU19FVlRDSE5fUkVMRUFTRSAgIEV2dGNoblJlbGVhc2U7DQo+ICAg
ICAgWEVOQlVTX0VWVENITl9PUEVOICAgICAgRXZ0Y2huT3BlbjsNCj4gLSAgICBYRU5CVVNfRVZU
Q0hOX0JJTkRfVjIgICBFdnRjaG5CaW5kVmVyc2lvbjI7DQo+IC0gICAgWEVOQlVTX0VWVENITl9V
Tk1BU0sgICAgRXZ0Y2huVW5tYXNrOw0KPiArICAgIFhFTkJVU19FVlRDSE5fQklORCAgICAgIEV2
dGNobkJpbmQ7DQo+ICsgICAgWEVOQlVTX0VWVENITl9VTk1BU0tfVjQgRXZ0Y2huVW5tYXNrVmVy
c2lvbjQ7DQo+ICAgICAgWEVOQlVTX0VWVENITl9TRU5EICAgICAgRXZ0Y2huU2VuZDsNCj4gICAg
ICBYRU5CVVNfRVZUQ0hOX1RSSUdHRVIgICBFdnRjaG5UcmlnZ2VyOw0KPiArICAgIFhFTkJVU19F
VlRDSE5fR0VUX0NPVU5UIEV2dGNobkdldENvdW50Ow0KPiArICAgIFhFTkJVU19FVlRDSE5fV0FJ
VCAgICAgIEV2dGNobldhaXQ7DQo+ICAgICAgWEVOQlVTX0VWVENITl9HRVRfUE9SVCAgRXZ0Y2hu
R2V0UG9ydDsNCj4gICAgICBYRU5CVVNfRVZUQ0hOX0NMT1NFICAgICBFdnRjaG5DbG9zZTsNCj4g
IH07DQo+IA0KPiAtLyohIFxzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5URVJGQUNFX1Y0DQo+IC0g
ICAgXGJyaWVmIEVWVENITiBpbnRlcmZhY2UgdmVyc2lvbiA0DQo+ICsvKiEgXHN0cnVjdCBfWEVO
QlVTX0VWVENITl9JTlRFUkZBQ0VfVjgNCj4gKyAgICBcYnJpZWYgRVZUQ0hOIGludGVyZmFjZSB2
ZXJzaW9uIDgNCj4gICAgICBcaW5ncm91cCBpbnRlcmZhY2VzDQo+ICAqLw0KPiAtc3RydWN0IF9Y
RU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WNCB7DQo+ICtzdHJ1Y3QgX1hFTkJVU19FVlRDSE5fSU5U
RVJGQUNFX1Y4IHsNCj4gICAgICBJTlRFUkZBQ0UgICAgICAgICAgICAgICBJbnRlcmZhY2U7DQo+
ICAgICAgWEVOQlVTX0VWVENITl9BQ1FVSVJFICAgRXZ0Y2huQWNxdWlyZTsNCj4gICAgICBYRU5C
VVNfRVZUQ0hOX1JFTEVBU0UgICBFdnRjaG5SZWxlYXNlOw0KPiBAQCAtMjcyLDExICszMzQsMTMg
QEAgc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WNCB7DQo+ICAgICAgWEVOQlVTX0VW
VENITl9VTk1BU0sgICAgRXZ0Y2huVW5tYXNrOw0KPiAgICAgIFhFTkJVU19FVlRDSE5fU0VORCAg
ICAgIEV2dGNoblNlbmQ7DQo+ICAgICAgWEVOQlVTX0VWVENITl9UUklHR0VSICAgRXZ0Y2huVHJp
Z2dlcjsNCj4gKyAgICBYRU5CVVNfRVZUQ0hOX0dFVF9DT1VOVCBFdnRjaG5HZXRDb3VudDsNCj4g
KyAgICBYRU5CVVNfRVZUQ0hOX1dBSVQgICAgICBFdnRjaG5XYWl0Ow0KPiAgICAgIFhFTkJVU19F
VlRDSE5fR0VUX1BPUlQgIEV2dGNobkdldFBvcnQ7DQo+ICAgICAgWEVOQlVTX0VWVENITl9DTE9T
RSAgICAgRXZ0Y2huQ2xvc2U7DQo+ICB9Ow0KPiANCj4gLXR5cGVkZWYgc3RydWN0IF9YRU5CVVNf
RVZUQ0hOX0lOVEVSRkFDRV9WNA0KPiBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRSwgKlBYRU5CVVNf
RVZUQ0hOX0lOVEVSRkFDRTsNCj4gK3R5cGVkZWYgc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVS
RkFDRV9WOA0KPiBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRSwgKlBYRU5CVVNfRVZUQ0hOX0lOVEVS
RkFDRTsNCj4gDQo+ICAvKiEgXGRlZiBYRU5CVVNfRVZUQ0hODQo+ICAgICAgXGJyaWVmIE1hY3Jv
IGF0IGFzc2lzdCBpbiBtZXRob2QgaW52b2NhdGlvbg0KPiBAQCAtMjg2LDggKzM1MCw4IEBAIHR5
cGVkZWYgc3RydWN0IF9YRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WNA0KPiBYRU5CVVNfRVZUQ0hO
X0lOVEVSRkFDRSwgKlBYRU5CVVNfRVZUDQo+IA0KPiAgI2VuZGlmICAvLyBfV0lORExMDQo+IA0K
PiAtI2RlZmluZSBYRU5CVVNfRVZUQ0hOX0lOVEVSRkFDRV9WRVJTSU9OX01JTiAxDQo+IC0jZGVm
aW5lIFhFTkJVU19FVlRDSE5fSU5URVJGQUNFX1ZFUlNJT05fTUFYIDQNCj4gKyNkZWZpbmUgWEVO
QlVTX0VWVENITl9JTlRFUkZBQ0VfVkVSU0lPTl9NSU4gNA0KPiArI2RlZmluZSBYRU5CVVNfRVZU
Q0hOX0lOVEVSRkFDRV9WRVJTSU9OX01BWCA4DQo+IA0KPiAgI2VuZGlmICAvLyBfWEVOQlVTX0VW
VENITl9JTlRFUkZBQ0VfSA0KPiANCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ250dGFiX2ludGVy
ZmFjZS5oIGIvaW5jbHVkZS9nbnR0YWJfaW50ZXJmYWNlLmgNCj4gaW5kZXggZDI5NDQwYS4uNjEy
NzJhYiAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9nbnR0YWJfaW50ZXJmYWNlLmgNCj4gKysrIGIv
aW5jbHVkZS9nbnR0YWJfaW50ZXJmYWNlLmgNCj4gQEAgLTE0OCw2ICsxNDgsMjYgQEAgdHlwZWRl
ZiBVTE9ORw0KPiAgICAgIElOICBQWEVOQlVTX0dOVFRBQl9FTlRSWSAgICAgICAgRW50cnkNCj4g
ICAgICApOw0KPiANCj4gKy8qISBcdHlwZWRlZiBYRU5CVVNfR05UVEFCX1FVRVJZX1JFRkVSRU5D
RQ0KPiArICAgIFxicmllZiBHZXQgdGhlIHJlZmVyZW5jZSBudW1iZXIgb2YgdGhlIGVudHJ5DQo+
ICsNCj4gKyAgICBccGFyYW0gSW50ZXJmYWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyDQo+ICsgICAg
XHBhcmFtIFJlZmVyZW5jZSBUaGUgcmVmZXJlbmNlIG51bWJlcg0KPiArICAgIFxwYXJhbSBQZm4g
QW4gb3B0aW9uYWwgcG9pbnRlciB0byByZWNlaXZlIHRoZSB2YWx1ZSBvZiB0aGUgcmVmZXJlbmNl
DQo+IGZyYW1lIG51bWJlcg0KPiArICAgIFxwYXJhbSBSZWFkT25seSBBbiBvcHRpb25hbCBwb2lu
dGVyIHRvIHJlY2VpdmUgdGhlIGJvb2xlYW4gdmFsdWUgb2YgdGhlDQo+IHJlYWQtb25seSBmbGFn
DQo+ICsqLw0KPiArdHlwZWRlZiBOVFNUQVRVUw0KPiArKCpYRU5CVVNfR05UVEFCX1FVRVJZX1JF
RkVSRU5DRSkoDQo+ICsgICAgSU4gIFBJTlRFUkZBQ0UgIEludGVyZmFjZSwNCj4gKyAgICBJTiAg
VUxPTkcgICAgICAgUmVmZXJlbmNlLA0KPiArICAgIE9VVCBQUEZOX05VTUJFUiBQZm4gT1BUSU9O
QUwsDQo+ICsgICAgT1VUIFBCT09MRUFOICAgIFJlYWRPbmx5IE9QVElPTkFMDQo+ICsgICAgKTsN
Cj4gKw0KPiArI2RlZmluZSBYRU5CVVNfR05UVEFCX0NPTlNPTEVfUkVGRVJFTkNFIDANCj4gKyNk
ZWZpbmUgWEVOQlVTX0dOVFRBQl9TVE9SRV9SRUZFUkVOQ0UgICAxDQo+ICsNCj4gKw0KPiAgLyoh
IFx0eXBlZGVmIFhFTkJVU19HTlRUQUJfREVTVFJPWV9DQUNIRQ0KPiAgICAgIFxicmllZiBEZXN0
cm95IGEgY2FjaGUgb2YgZ3JhbnQgdGFibGUgZW50cmllcw0KPiANCj4gQEAgLTE2Myw2ICsxODMs
MzkgQEAgdHlwZWRlZiBWT0lEDQo+ICAgICAgSU4gIFBYRU5CVVNfR05UVEFCX0NBQ0hFICAgIENh
Y2hlDQo+ICAgICAgKTsNCj4gDQo+ICsvKiEgXHR5cGVkZWYgWEVOQlVTX0dOVFRBQl9NQVBfRk9S
RUlHTl9QQUdFUw0KPiArICAgIFxicmllZiBNYXAgZm9yZWlnbiBtZW1vcnkgcGFnZXMgaW50byB0
aGUgc3lzdGVtIGFkZHJlc3Mgc3BhY2UNCj4gKw0KPiArICAgIFxwYXJhbSBJbnRlcmZhY2UgVGhl
IGludGVyZmFjZSBoZWFkZXINCj4gKyAgICBccGFyYW0gRG9tYWluIFRoZSBkb21pZCBvZiB0aGUg
Zm9yZWlnbiBkb21haW4gdGhhdCBncmFudGVkIHRoZSBwYWdlcw0KPiArICAgIFxwYXJhbSBOdW1i
ZXJQYWdlcyBOdW1iZXIgb2YgcGFnZXMgdG8gbWFwDQo+ICsgICAgXHBhcmFtIFJlZmVyZW5jZXMg
QXJyYXkgb2YgZ3JhbnQgcmVmZXJlbmNlIG51bWJlcnMgc2hhcmVkIGJ5IHRoZQ0KPiBmb3JlaWdu
IGRvbWFpbg0KPiArICAgIFxwYXJhbSBSZWFkT25seSBJZiBUUlVFLCBwYWdlcyBhcmUgbWFwcGVk
IHdpdGggcmVhZC1vbmx5IGFjY2Vzcw0KPiArICAgIFxwYXJhbSBBZGRyZXNzIFRoZSBwaHlzaWNh
bCBhZGRyZXNzIHRoYXQgdGhlIGZvcmVpZ24gcGFnZXMgYXJlIG1hcHBlZA0KPiB1bmRlcg0KPiAr
Ki8NCj4gKw0KPiArdHlwZWRlZiBOVFNUQVRVUw0KPiArKCpYRU5CVVNfR05UVEFCX01BUF9GT1JF
SUdOX1BBR0VTKSgNCj4gKyAgICBJTiAgUElOVEVSRkFDRSAgICAgICAgICAgICAgSW50ZXJmYWNl
LA0KPiArICAgIElOICBVU0hPUlQgICAgICAgICAgICAgICAgICBEb21haW4sDQo+ICsgICAgSU4g
IFVMT05HICAgICAgICAgICAgICAgICAgIE51bWJlclBhZ2VzLA0KPiArICAgIElOICBQVUxPTkcg
ICAgICAgICAgICAgICAgICBSZWZlcmVuY2VzLA0KPiArICAgIElOICBCT09MRUFOICAgICAgICAg
ICAgICAgICBSZWFkT25seSwNCj4gKyAgICBPVVQgUEhZU0lDQUxfQUREUkVTUyAgICAgICAgKkFk
ZHJlc3MNCj4gKyAgICApOw0KPiArDQo+ICsvKiEgXHR5cGVkZWYgWEVOQlVTX0dOVFRBQl9VTk1B
UF9GT1JFSUdOX1BBR0VTDQo+ICsgICAgXGJyaWVmIFVubWFwIGZvcmVpZ24gbWVtb3J5IHBhZ2Vz
IGZyb20gdGhlIHN5c3RlbSBhZGRyZXNzIHNwYWNlDQo+ICsNCj4gKyAgICBccGFyYW0gSW50ZXJm
YWNlIFRoZSBpbnRlcmZhY2UgaGVhZGVyDQo+ICsgICAgXHBhcmFtIEFkZHJlc3MgVGhlIHBoeXNp
Y2FsIGFkZHJlc3MgdGhhdCB0aGUgZm9yZWlnbiBwYWdlcyBhcmUgbWFwcGVkDQo+IHVuZGVyDQo+
ICsqLw0KPiArdHlwZWRlZiBOVFNUQVRVUw0KPiArKCpYRU5CVVNfR05UVEFCX1VOTUFQX0ZPUkVJ
R05fUEFHRVMpKA0KPiArICAgIElOICBQSU5URVJGQUNFICAgICAgICAgICAgICBJbnRlcmZhY2Us
DQo+ICsgICAgSU4gIFBIWVNJQ0FMX0FERFJFU1MgICAgICAgIEFkZHJlc3MNCj4gKyAgICApOw0K
PiArDQo+ICAvLyB7NzYzNjc5QzUtRTVDMi00QTZELThCODgtNkJCMDJFQzQyRDhFfQ0KPiAgREVG
SU5FX0dVSUQoR1VJRF9YRU5CVVNfR05UVEFCX0lOVEVSRkFDRSwNCj4gIDB4NzYzNjc5YzUsIDB4
ZTVjMiwgMHg0YTZkLCAweDhiLCAweDg4LCAweDZiLCAweGIwLCAweDJlLCAweGM0LCAweDJkLCAw
eDhlKTsNCj4gQEAgLTE4Miw3ICsyMzUsNDIgQEAgc3RydWN0IF9YRU5CVVNfR05UVEFCX0lOVEVS
RkFDRV9WMSB7DQo+ICAgICAgWEVOQlVTX0dOVFRBQl9ERVNUUk9ZX0NBQ0hFICAgICAgICAgR250
dGFiRGVzdHJveUNhY2hlOw0KPiAgfTsNCj4gDQo+IC10eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0dO
VFRBQl9JTlRFUkZBQ0VfVjENCj4gWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0UsICpQWEVOQlVTX0dO
VFRBQl9JTlRFUkZBQ0U7DQo+ICsvKiEgXHN0cnVjdCBfWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0Vf
VjINCj4gKyAgICBcYnJpZWYgR05UVEFCIGludGVyZmFjZSB2ZXJzaW9uIDINCj4gKyAgICBcaW5n
cm91cCBpbnRlcmZhY2VzDQo+ICsqLw0KPiArc3RydWN0IF9YRU5CVVNfR05UVEFCX0lOVEVSRkFD
RV9WMiB7DQo+ICsgICAgSU5URVJGQUNFICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJm
YWNlOw0KPiArICAgIFhFTkJVU19HTlRUQUJfQUNRVUlSRSAgICAgICAgICAgICAgIEdudHRhYkFj
cXVpcmU7DQo+ICsgICAgWEVOQlVTX0dOVFRBQl9SRUxFQVNFICAgICAgICAgICAgICAgR250dGFi
UmVsZWFzZTsNCj4gKyAgICBYRU5CVVNfR05UVEFCX0NSRUFURV9DQUNIRSAgICAgICAgICBHbnR0
YWJDcmVhdGVDYWNoZTsNCj4gKyAgICBYRU5CVVNfR05UVEFCX1BFUk1JVF9GT1JFSUdOX0FDQ0VT
Uw0KPiBHbnR0YWJQZXJtaXRGb3JlaWduQWNjZXNzOw0KPiArICAgIFhFTkJVU19HTlRUQUJfUkVW
T0tFX0ZPUkVJR05fQUNDRVNTDQo+IEdudHRhYlJldm9rZUZvcmVpZ25BY2Nlc3M7DQo+ICsgICAg
WEVOQlVTX0dOVFRBQl9HRVRfUkVGRVJFTkNFICAgICAgICAgR250dGFiR2V0UmVmZXJlbmNlOw0K
PiArICAgIFhFTkJVU19HTlRUQUJfREVTVFJPWV9DQUNIRSAgICAgICAgIEdudHRhYkRlc3Ryb3lD
YWNoZTsNCj4gKyAgICBYRU5CVVNfR05UVEFCX01BUF9GT1JFSUdOX1BBR0VTICAgICBHbnR0YWJN
YXBGb3JlaWduUGFnZXM7DQo+ICsgICAgWEVOQlVTX0dOVFRBQl9VTk1BUF9GT1JFSUdOX1BBR0VT
DQo+IEdudHRhYlVubWFwRm9yZWlnblBhZ2VzOw0KPiArfTsNCj4gKw0KPiArLyohIFxzdHJ1Y3Qg
X1hFTkJVU19HTlRUQUJfSU5URVJGQUNFX1YzDQo+ICsgICAgXGJyaWVmIEdOVFRBQiBpbnRlcmZh
Y2UgdmVyc2lvbiAzDQo+ICsgICAgXGluZ3JvdXAgaW50ZXJmYWNlcw0KPiArKi8NCj4gK3N0cnVj
dCBfWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0VfVjMgew0KPiArICAgIElOVEVSRkFDRSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEludGVyZmFjZTsNCj4gKyAgICBYRU5CVVNfR05UVEFCX0FDUVVJ
UkUgICAgICAgICAgICAgICBHbnR0YWJBY3F1aXJlOw0KPiArICAgIFhFTkJVU19HTlRUQUJfUkVM
RUFTRSAgICAgICAgICAgICAgIEdudHRhYlJlbGVhc2U7DQo+ICsgICAgWEVOQlVTX0dOVFRBQl9D
UkVBVEVfQ0FDSEUgICAgICAgICAgR250dGFiQ3JlYXRlQ2FjaGU7DQo+ICsgICAgWEVOQlVTX0dO
VFRBQl9QRVJNSVRfRk9SRUlHTl9BQ0NFU1MNCj4gR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczsN
Cj4gKyAgICBYRU5CVVNfR05UVEFCX1JFVk9LRV9GT1JFSUdOX0FDQ0VTUw0KPiBHbnR0YWJSZXZv
a2VGb3JlaWduQWNjZXNzOw0KPiArICAgIFhFTkJVU19HTlRUQUJfR0VUX1JFRkVSRU5DRSAgICAg
ICAgIEdudHRhYkdldFJlZmVyZW5jZTsNCj4gKyAgICBYRU5CVVNfR05UVEFCX1FVRVJZX1JFRkVS
RU5DRSAgICAgICBHbnR0YWJRdWVyeVJlZmVyZW5jZTsNCj4gKyAgICBYRU5CVVNfR05UVEFCX0RF
U1RST1lfQ0FDSEUgICAgICAgICBHbnR0YWJEZXN0cm95Q2FjaGU7DQo+ICsgICAgWEVOQlVTX0dO
VFRBQl9NQVBfRk9SRUlHTl9QQUdFUyAgICAgR250dGFiTWFwRm9yZWlnblBhZ2VzOw0KPiArICAg
IFhFTkJVU19HTlRUQUJfVU5NQVBfRk9SRUlHTl9QQUdFUw0KPiBHbnR0YWJVbm1hcEZvcmVpZ25Q
YWdlczsNCj4gK307DQo+ICsNCj4gK3R5cGVkZWYgc3RydWN0IF9YRU5CVVNfR05UVEFCX0lOVEVS
RkFDRV9WMw0KPiBYRU5CVVNfR05UVEFCX0lOVEVSRkFDRSwgKlBYRU5CVVNfR05UVEFCX0lOVEVS
RkFDRTsNCj4gDQo+ICAvKiEgXGRlZiBYRU5CVVNfR05UVEFCDQo+ICAgICAgXGJyaWVmIE1hY3Jv
IGF0IGFzc2lzdCBpbiBtZXRob2QgaW52b2NhdGlvbg0KPiBAQCAtMTkzLDcgKzI4MSw3IEBAIHR5
cGVkZWYgc3RydWN0IF9YRU5CVVNfR05UVEFCX0lOVEVSRkFDRV9WMQ0KPiBYRU5CVVNfR05UVEFC
X0lOVEVSRkFDRSwgKlBYRU5CVVNfR05UDQo+ICAjZW5kaWYgIC8vIF9XSU5ETEwNCj4gDQo+ICAj
ZGVmaW5lIFhFTkJVU19HTlRUQUJfSU5URVJGQUNFX1ZFUlNJT05fTUlOIDENCj4gLSNkZWZpbmUg
WEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0VfVkVSU0lPTl9NQVggMQ0KPiArI2RlZmluZSBYRU5CVVNf
R05UVEFCX0lOVEVSRkFDRV9WRVJTSU9OX01BWCAzDQo+IA0KPiAgI2VuZGlmICAvLyBfWEVOQlVT
X0dOVFRBQl9JTlRFUkZBQ0VfSA0KPiANCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3RvcmVfaW50
ZXJmYWNlLmggYi9pbmNsdWRlL3N0b3JlX2ludGVyZmFjZS5oDQo+IGluZGV4IDViY2JiYTMuLjUy
ZjFhMWQgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvc3RvcmVfaW50ZXJmYWNlLmgNCj4gKysrIGIv
aW5jbHVkZS9zdG9yZV9pbnRlcmZhY2UuaA0KPiBAQCAtNTAsNiArNTAsMjMgQEAgdHlwZWRlZiBz
dHJ1Y3QgX1hFTkJVU19TVE9SRV9UUkFOU0FDVElPTg0KPiBYRU5CVVNfU1RPUkVfVFJBTlNBQ1RJ
T04sICpQWEVOQlVTX1MNCj4gICovDQo+ICB0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX1NUT1JFX1dB
VENIICAgICAgICAgIFhFTkJVU19TVE9SRV9XQVRDSCwNCj4gKlBYRU5CVVNfU1RPUkVfV0FUQ0g7
DQo+IA0KPiArLyohIFx0eXBlZGVmIFhFTkJVU19TVE9SRV9QRVJNSVNTSU9OX01BU0sNCj4gKyAg
ICBcYnJpZWYgQml0bWFzayBvZiBYZW5TdG9yZSBrZXkgcGVybWlzc2lvbnMNCj4gKyovDQo+ICt0
eXBlZGVmIGVudW0gX1hFTkJVU19TVE9SRV9QRVJNSVNTSU9OX01BU0sgew0KPiArICAgIFhFTkJV
U19TVE9SRV9QRVJNX05PTkUgPSAwLA0KPiArICAgIFhFTkJVU19TVE9SRV9QRVJNX1JFQUQgPSAx
LA0KPiArICAgIFhFTkJVU19TVE9SRV9QRVJNX1dSSVRFID0gMiwNCj4gK30gWEVOQlVTX1NUT1JF
X1BFUk1JU1NJT05fTUFTSzsNCj4gKw0KPiArLyohIFx0eXBlZGVmIFhFTkJVU19TVE9SRV9QRVJN
SVNTSU9ODQo+ICsgICAgXGJyaWVmIFhlblN0b3JlIGtleSBwZXJtaXNzaW9ucyBlbnRyeSBmb3Ig
YSBzaW5nbGUgZG9tYWluDQo+ICsqLw0KPiArdHlwZWRlZiBzdHJ1Y3QgX1hFTkJVU19TVE9SRV9Q
RVJNSVNTSU9OIHsNCj4gKyAgICBVU0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgIERvbWFp
bjsNCj4gKyAgICBYRU5CVVNfU1RPUkVfUEVSTUlTU0lPTl9NQVNLICAgIE1hc2s7DQo+ICt9IFhF
TkJVU19TVE9SRV9QRVJNSVNTSU9OLCAqUFhFTkJVU19TVE9SRV9QRVJNSVNTSU9OOw0KPiArDQo+
ICAvKiEgXHR5cGVkZWYgWEVOQlVTX1NUT1JFX0FDUVVJUkUNCj4gICAgICBcYnJpZWYgQWNxdWly
ZSBhIHJlZmVyZW5jZSB0byB0aGUgU1RPUkUgaW50ZXJmYWNlDQo+IA0KPiBAQCAtMjQ3LDEwICsy
NjQsMzYgQEAgdHlwZWRlZiBWT0lEDQo+ICAgICAgSU4gIFBJTlRFUkZBQ0UgIEludGVyZmFjZQ0K
PiAgICAgICk7DQo+IA0KPiArLyohIFx0eXBlZGVmIFhFTkJVU19TVE9SRV9QRVJNSVNTSU9OU19T
RVQNCj4gKyAgICBcYnJpZWYgU2V0IHBlcm1pc3Npb25zIGZvciBhIFhlblN0b3JlIGtleQ0KPiAr
DQo+ICsgICAgXHBhcmFtIEludGVyZmFjZSBUaGUgaW50ZXJmYWNlIGhlYWRlcg0KPiArICAgIFxw
YXJhbSBUcmFuc2FjdGlvbiBUaGUgdHJhbnNhY3Rpb24gaGFuZGxlIChOVUxMIGlmIHRoaXMgaXMg
bm90DQo+ICsgICAgcGFydCBvZiBhIHRyYW5zYWN0aW9uKQ0KPiArICAgIFxwYXJhbSBQcmVmaXgg
QW4gb3B0aW9uYWwgcHJlZml4IGZvciB0aGUgXGEgTm9kZQ0KPiArICAgIFxwYXJhbSBOb2RlIFRo
ZSBjb25jYXRlbmF0aW9uIG9mIHRoZSBcYSBQcmVmaXggYW5kIHRoaXMgdmFsdWUgc3BlY2lmaWVz
DQo+ICsgICAgdGhlIFhlblN0b3JlIGtleSB0byBzZXQgcGVybWlzc2lvbnMgb2YNCj4gKyAgICBc
cGFyYW0gUGVybWlzc2lvbnMgQW4gYXJyYXkgb2YgcGVybWlzc2lvbnMgdG8gc2V0DQo+ICsgICAg
XHBhcmFtIE51bWJlclBlcm1pc3Npb25zIE51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgXGEgUGVy
bWlzc2lvbnMNCj4gYXJyYXkNCj4gKyovDQo+ICt0eXBlZGVmIE5UU1RBVFVTDQo+ICsoKlhFTkJV
U19TVE9SRV9QRVJNSVNTSU9OU19TRVQpKA0KPiArICAgIElOICBQSU5URVJGQUNFICAgICAgICAg
ICAgICAgICAgSW50ZXJmYWNlLA0KPiArICAgIElOICBQWEVOQlVTX1NUT1JFX1RSQU5TQUNUSU9O
ICAgVHJhbnNhY3Rpb24gT1BUSU9OQUwsDQo+ICsgICAgSU4gIFBDSEFSICAgICAgICAgICAgICAg
ICAgICAgICBQcmVmaXggT1BUSU9OQUwsDQo+ICsgICAgSU4gIFBDSEFSICAgICAgICAgICAgICAg
ICAgICAgICBOb2RlLA0KPiArICAgIElOICBQWEVOQlVTX1NUT1JFX1BFUk1JU1NJT04gICAgUGVy
bWlzc2lvbnMsDQo+ICsgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXJQ
ZXJtaXNzaW9ucw0KPiArICAgICk7DQo+ICsNCj4gIC8vIHs4NjgyNEMzQi1EMzRFLTQ3NTMtQjI4
MS0yRjFFM0FEMjE0RDd9DQo+ICBERUZJTkVfR1VJRChHVUlEX1hFTkJVU19TVE9SRV9JTlRFUkZB
Q0UsDQo+ICAweDg2ODI0YzNiLCAweGQzNGUsIDB4NDc1MywgMHhiMiwgMHg4MSwgMHgyZiwgMHgx
ZSwgMHgzYSwgMHhkMiwgMHgxNCwgMHhkNyk7DQo+IA0KPiArLyohIFxzdHJ1Y3QgX1hFTkJVU19T
VE9SRV9JTlRFUkZBQ0VfVjENCj4gKyAgICBcYnJpZWYgU1RPUkUgaW50ZXJmYWNlIHZlcnNpb24g
MQ0KPiArICAgIFxpbmdyb3VwIGludGVyZmFjZXMNCj4gKyovDQo+ICBzdHJ1Y3QgX1hFTkJVU19T
VE9SRV9JTlRFUkZBQ0VfVjEgew0KPiAgICAgIElOVEVSRkFDRSAgICAgICAgICAgICAgICAgICAg
ICAgSW50ZXJmYWNlOw0KPiAgICAgIFhFTkJVU19TVE9SRV9BQ1FVSVJFICAgICAgICAgICAgU3Rv
cmVBY3F1aXJlOw0KPiBAQCAtMjY3LDExICszMTAsMjggQEAgc3RydWN0IF9YRU5CVVNfU1RPUkVf
SU5URVJGQUNFX1YxIHsNCj4gICAgICBYRU5CVVNfU1RPUkVfUE9MTCAgICAgICAgICAgICAgIFN0
b3JlUG9sbDsNCj4gIH07DQo+IA0KPiAtLyohIFxzdHJ1Y3QgX1hFTkJVU19TVE9SRV9JTlRFUkZB
Q0VfVjENCj4gLSAgICBcYnJpZWYgU1RPUkUgaW50ZXJmYWNlIHZlcnNpb24gMQ0KPiArLyohIFxz
dHJ1Y3QgX1hFTkJVU19TVE9SRV9JTlRFUkZBQ0VfVjINCj4gKyAgICBcYnJpZWYgU1RPUkUgaW50
ZXJmYWNlIHZlcnNpb24gMg0KPiAgICAgIFxpbmdyb3VwIGludGVyZmFjZXMNCj4gICovDQo+IC10
eXBlZGVmIHN0cnVjdCBfWEVOQlVTX1NUT1JFX0lOVEVSRkFDRV9WMQ0KPiBYRU5CVVNfU1RPUkVf
SU5URVJGQUNFLCAqUFhFTkJVU19TVE9SRV9JTlRFUkZBQ0U7DQo+ICtzdHJ1Y3QgX1hFTkJVU19T
VE9SRV9JTlRFUkZBQ0VfVjIgew0KPiArICAgIElOVEVSRkFDRSAgICAgICAgICAgICAgICAgICAg
ICAgSW50ZXJmYWNlOw0KPiArICAgIFhFTkJVU19TVE9SRV9BQ1FVSVJFICAgICAgICAgICAgU3Rv
cmVBY3F1aXJlOw0KPiArICAgIFhFTkJVU19TVE9SRV9SRUxFQVNFICAgICAgICAgICAgU3RvcmVS
ZWxlYXNlOw0KPiArICAgIFhFTkJVU19TVE9SRV9GUkVFICAgICAgICAgICAgICAgU3RvcmVGcmVl
Ow0KPiArICAgIFhFTkJVU19TVE9SRV9SRUFEICAgICAgICAgICAgICAgU3RvcmVSZWFkOw0KPiAr
ICAgIFhFTkJVU19TVE9SRV9QUklOVEYgICAgICAgICAgICAgU3RvcmVQcmludGY7DQo+ICsgICAg
WEVOQlVTX1NUT1JFX1BFUk1JU1NJT05TX1NFVCAgICBTdG9yZVBlcm1pc3Npb25zU2V0Ow0KPiAr
ICAgIFhFTkJVU19TVE9SRV9SRU1PVkUgICAgICAgICAgICAgU3RvcmVSZW1vdmU7DQo+ICsgICAg
WEVOQlVTX1NUT1JFX0RJUkVDVE9SWSAgICAgICAgICBTdG9yZURpcmVjdG9yeTsNCj4gKyAgICBY
RU5CVVNfU1RPUkVfVFJBTlNBQ1RJT05fU1RBUlQgIFN0b3JlVHJhbnNhY3Rpb25TdGFydDsNCj4g
KyAgICBYRU5CVVNfU1RPUkVfVFJBTlNBQ1RJT05fRU5EICAgIFN0b3JlVHJhbnNhY3Rpb25FbmQ7
DQo+ICsgICAgWEVOQlVTX1NUT1JFX1dBVENIX0FERCAgICAgICAgICBTdG9yZVdhdGNoQWRkOw0K
PiArICAgIFhFTkJVU19TVE9SRV9XQVRDSF9SRU1PVkUgICAgICAgU3RvcmVXYXRjaFJlbW92ZTsN
Cj4gKyAgICBYRU5CVVNfU1RPUkVfUE9MTCAgICAgICAgICAgICAgIFN0b3JlUG9sbDsNCj4gK307
DQo+ICsNCj4gK3R5cGVkZWYgc3RydWN0IF9YRU5CVVNfU1RPUkVfSU5URVJGQUNFX1YyDQo+IFhF
TkJVU19TVE9SRV9JTlRFUkZBQ0UsICpQWEVOQlVTX1NUT1JFX0lOVEVSRkFDRTsNCj4gDQo+ICAv
KiEgXGRlZiBYRU5CVVNfU1RPUkUNCj4gICAgICBcYnJpZWYgTWFjcm8gYXQgYXNzaXN0IGluIG1l
dGhvZCBpbnZvY2F0aW9uDQo+IEBAIC0yODIsNyArMzQyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1hF
TkJVU19TVE9SRV9JTlRFUkZBQ0VfVjENCj4gWEVOQlVTX1NUT1JFX0lOVEVSRkFDRSwgKlBYRU5C
VVNfU1RPUkUNCj4gICNlbmRpZiAgLy8gX1dJTkRMTA0KPiANCj4gICNkZWZpbmUgWEVOQlVTX1NU
T1JFX0lOVEVSRkFDRV9WRVJTSU9OX01JTiAgMQ0KPiAtI2RlZmluZSBYRU5CVVNfU1RPUkVfSU5U
RVJGQUNFX1ZFUlNJT05fTUFYICAxDQo+ICsjZGVmaW5lIFhFTkJVU19TVE9SRV9JTlRFUkZBQ0Vf
VkVSU0lPTl9NQVggIDINCj4gDQo+ICAjZW5kaWYgIC8vIF9YRU5CVVNfU1RPUkVfSU5URVJGQUNF
X0gNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkLmluZiBiL3NyYy94ZW52YmQuaW5mDQo+
IGluZGV4IGJiNWFkYTIuLjUyMjBhZGQgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQuaW5mDQo+
ICsrKyBiL3NyYy94ZW52YmQuaW5mDQo+IEBAIC01NCw5ICs1NCw5IEBAIHhlbnZiZF9jb2luc3Qu
ZGxsPTAsLA0KPiAgJVZlbmRvciU9SW5zdCxOVCRBUkNIJA0KPiANCj4gIFtJbnN0Lk5UJEFSQ0gk
XQ0KPiAtDQo+ICVYZW5WYmROYW1lJT1YZW5WYmRfSW5zdCxYRU5CVVNcVkVOX0BWRU5ET1JfUFJF
RklYQEBWRU5EDQo+IE9SX0RFVklDRV9JREAmREVWX1ZCRCZSRVZfMDkwMDAwMDANCj4gLQ0KPiAl
WGVuVmJkTmFtZSU9WGVuVmJkX0luc3QsWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJWEAwMDAxJkQN
Cj4gRVZfVkJEJlJFVl8wOTAwMDAwMA0KPiAtDQo+ICVYZW5WYmROYW1lJT1YZW5WYmRfSW5zdCxY
RU5CVVNcVkVOX0BWRU5ET1JfUFJFRklYQDAwMDImRA0KPiBFVl9WQkQmUkVWXzA5MDAwMDAwDQo+
ICslWGVuVmJkTmFtZSU9WGVuVmJkX0luc3QsWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJWEBAVkVO
DQo+IERPUl9ERVZJQ0VfSURAJkRFVl9WQkQmUkVWXzA5MDAwMDA0DQo+ICslWGVuVmJkTmFtZSU9
WGVuVmJkX0luc3QsWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJWEAwMDAxJg0KPiBERVZfVkJEJlJF
Vl8wOTAwMDAwNA0KPiArJVhlblZiZE5hbWUlPVhlblZiZF9JbnN0LFhFTkJVU1xWRU5fQFZFTkRP
Ul9QUkVGSVhAMDAwMiYNCj4gREVWX1ZCRCZSRVZfMDkwMDAwMDQNCj4gDQo+ICBbWGVuVmJkX0lu
c3RdDQo+ICBDb3B5RmlsZXM9WGVuVmJkX0NvcHlmaWxlcw0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hl
bnZiZC9yaW5nLmMgYi9zcmMveGVudmJkL3JpbmcuYw0KPiBpbmRleCBhN2I2MzZkLi4yZjVjODc2
IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3JpbmcuYw0KPiArKysgYi9zcmMveGVudmJkL3Jp
bmcuYw0KPiBAQCAtMTY0OSw3ICsxNjQ5LDggQEAgQmxraWZSaW5nRHBjKA0KPiAgICAgIFhFTkJV
U19FVlRDSE4oVW5tYXNrLA0KPiAgICAgICAgICAgICAgICAgICAgJlJpbmctPkV2dGNobkludGVy
ZmFjZSwNCj4gICAgICAgICAgICAgICAgICAgIEJsa2lmUmluZy0+Q2hhbm5lbCwNCj4gLSAgICAg
ICAgICAgICAgICAgIEZBTFNFKTsNCj4gKyAgICAgICAgICAgICAgICAgIEZBTFNFLA0KPiArICAg
ICAgICAgICAgICAgICAgVFJVRSk7DQo+ICB9DQo+IA0KPiAgc3RhdGljIE5UU1RBVFVTDQo+IEBA
IC0xOTIzLDcgKzE5MjQsOCBAQCBCbGtpZlJpbmdDb25uZWN0KA0KPiAgICAgIFhFTkJVU19FVlRD
SE4oVW5tYXNrLA0KPiAgICAgICAgICAgICAgICAgICAgJlJpbmctPkV2dGNobkludGVyZmFjZSwN
Cj4gICAgICAgICAgICAgICAgICAgIEJsa2lmUmluZy0+Q2hhbm5lbCwNCj4gLSAgICAgICAgICAg
ICAgICAgIEZBTFNFKTsNCj4gKyAgICAgICAgICAgICAgICAgIEZBTFNFLA0KPiArICAgICAgICAg
ICAgICAgICAgVFJVRSk7DQo+IA0KPiAgICAgIHN0YXR1cyA9IFJ0bFN0cmluZ0NjaFByaW50ZkEo
TmFtZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9OQU1FX0xFTiwN
Cj4gLS0NCj4gMi4xNi4yLndpbmRvd3MuMQ0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QN
Cj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxp
c3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 25 10:16:27 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jun 2018 10:16:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fXOXr-0000UH-A7; Mon, 25 Jun 2018 10:16:27 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=ndbz=jl=citrix.com=prvs=707e514f0=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fXOXq-0000UA-0X
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jun 2018 10:16:26 +0000
X-Inumbo-ID: d984c445-7860-11e8-bc1d-65256ead4e3a
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-amaz-eas1.inumbo.com (Halon) with ESMTPS
 id d984c445-7860-11e8-bc1d-65256ead4e3a;
 Mon, 25 Jun 2018 10:16:40 +0000 (UTC)
X-IronPort-AV: E=Sophos;i="5.51,270,1526342400"; d="scan'208";a="75212649"
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] Update GNTTAB interface header
Thread-Index: AQHUDGvlxkH5LYw7oEKWXTEMnon9RaRwwhiw
Date: Mon, 25 Jun 2018 10:16:23 +0000
Message-ID: <f19d187b909c425883d5f595ee546919@AMSPEX02CL03.citrite.net>
References: <20180625100331.8160-1-owen.smith@citrix.com>
In-Reply-To: <20180625100331.8160-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
Subject: Re: [win-pv-devel] [PATCH] Update GNTTAB interface header
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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
IE9mIE93ZW4gU21pdGgNCj4gU2VudDogMjUgSnVuZSAyMDE4IDExOjA0DQo+IFRvOiB3aW4tcHYt
ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IE93ZW4gU21pdGggPG93ZW4uc21pdGhA
Y2l0cml4LmNvbT4NCj4gU3ViamVjdDogW3dpbi1wdi1kZXZlbF0gW1BBVENIXSBVcGRhdGUgR05U
VEFCIGludGVyZmFjZSBoZWFkZXINCj4gDQo+IEFsc28gdXBkYXRlcyByZXZpc2lvbiB0byAwOTAw
MDAwNA0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXgu
Y29tPg0KDQpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv
bT4NCg0KPiAtLS0NCj4gIGluY2x1ZGUvZ250dGFiX2ludGVyZmFjZS5oIHwgOTINCj4gKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiAgc3JjL3hlbnZpZi5p
bmYgICAgICAgICAgICAgfCAgNiArLS0NCj4gIDIgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9u
cygrKSwgNSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2dudHRhYl9p
bnRlcmZhY2UuaCBiL2luY2x1ZGUvZ250dGFiX2ludGVyZmFjZS5oDQo+IGluZGV4IGQyOTQ0MGEu
LjYxMjcyYWIgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvZ250dGFiX2ludGVyZmFjZS5oDQo+ICsr
KyBiL2luY2x1ZGUvZ250dGFiX2ludGVyZmFjZS5oDQo+IEBAIC0xNDgsNiArMTQ4LDI2IEBAIHR5
cGVkZWYgVUxPTkcNCj4gICAgICBJTiAgUFhFTkJVU19HTlRUQUJfRU5UUlkgICAgICAgIEVudHJ5
DQo+ICAgICAgKTsNCj4gDQo+ICsvKiEgXHR5cGVkZWYgWEVOQlVTX0dOVFRBQl9RVUVSWV9SRUZF
UkVOQ0UNCj4gKyAgICBcYnJpZWYgR2V0IHRoZSByZWZlcmVuY2UgbnVtYmVyIG9mIHRoZSBlbnRy
eQ0KPiArDQo+ICsgICAgXHBhcmFtIEludGVyZmFjZSBUaGUgaW50ZXJmYWNlIGhlYWRlcg0KPiAr
ICAgIFxwYXJhbSBSZWZlcmVuY2UgVGhlIHJlZmVyZW5jZSBudW1iZXINCj4gKyAgICBccGFyYW0g
UGZuIEFuIG9wdGlvbmFsIHBvaW50ZXIgdG8gcmVjZWl2ZSB0aGUgdmFsdWUgb2YgdGhlIHJlZmVy
ZW5jZQ0KPiBmcmFtZSBudW1iZXINCj4gKyAgICBccGFyYW0gUmVhZE9ubHkgQW4gb3B0aW9uYWwg
cG9pbnRlciB0byByZWNlaXZlIHRoZSBib29sZWFuIHZhbHVlIG9mIHRoZQ0KPiByZWFkLW9ubHkg
ZmxhZw0KPiArKi8NCj4gK3R5cGVkZWYgTlRTVEFUVVMNCj4gKygqWEVOQlVTX0dOVFRBQl9RVUVS
WV9SRUZFUkVOQ0UpKA0KPiArICAgIElOICBQSU5URVJGQUNFICBJbnRlcmZhY2UsDQo+ICsgICAg
SU4gIFVMT05HICAgICAgIFJlZmVyZW5jZSwNCj4gKyAgICBPVVQgUFBGTl9OVU1CRVIgUGZuIE9Q
VElPTkFMLA0KPiArICAgIE9VVCBQQk9PTEVBTiAgICBSZWFkT25seSBPUFRJT05BTA0KPiArICAg
ICk7DQo+ICsNCj4gKyNkZWZpbmUgWEVOQlVTX0dOVFRBQl9DT05TT0xFX1JFRkVSRU5DRSAwDQo+
ICsjZGVmaW5lIFhFTkJVU19HTlRUQUJfU1RPUkVfUkVGRVJFTkNFICAgMQ0KPiArDQo+ICsNCj4g
IC8qISBcdHlwZWRlZiBYRU5CVVNfR05UVEFCX0RFU1RST1lfQ0FDSEUNCj4gICAgICBcYnJpZWYg
RGVzdHJveSBhIGNhY2hlIG9mIGdyYW50IHRhYmxlIGVudHJpZXMNCj4gDQo+IEBAIC0xNjMsNiAr
MTgzLDM5IEBAIHR5cGVkZWYgVk9JRA0KPiAgICAgIElOICBQWEVOQlVTX0dOVFRBQl9DQUNIRSAg
ICBDYWNoZQ0KPiAgICAgICk7DQo+IA0KPiArLyohIFx0eXBlZGVmIFhFTkJVU19HTlRUQUJfTUFQ
X0ZPUkVJR05fUEFHRVMNCj4gKyAgICBcYnJpZWYgTWFwIGZvcmVpZ24gbWVtb3J5IHBhZ2VzIGlu
dG8gdGhlIHN5c3RlbSBhZGRyZXNzIHNwYWNlDQo+ICsNCj4gKyAgICBccGFyYW0gSW50ZXJmYWNl
IFRoZSBpbnRlcmZhY2UgaGVhZGVyDQo+ICsgICAgXHBhcmFtIERvbWFpbiBUaGUgZG9taWQgb2Yg
dGhlIGZvcmVpZ24gZG9tYWluIHRoYXQgZ3JhbnRlZCB0aGUgcGFnZXMNCj4gKyAgICBccGFyYW0g
TnVtYmVyUGFnZXMgTnVtYmVyIG9mIHBhZ2VzIHRvIG1hcA0KPiArICAgIFxwYXJhbSBSZWZlcmVu
Y2VzIEFycmF5IG9mIGdyYW50IHJlZmVyZW5jZSBudW1iZXJzIHNoYXJlZCBieSB0aGUNCj4gZm9y
ZWlnbiBkb21haW4NCj4gKyAgICBccGFyYW0gUmVhZE9ubHkgSWYgVFJVRSwgcGFnZXMgYXJlIG1h
cHBlZCB3aXRoIHJlYWQtb25seSBhY2Nlc3MNCj4gKyAgICBccGFyYW0gQWRkcmVzcyBUaGUgcGh5
c2ljYWwgYWRkcmVzcyB0aGF0IHRoZSBmb3JlaWduIHBhZ2VzIGFyZSBtYXBwZWQNCj4gdW5kZXIN
Cj4gKyovDQo+ICsNCj4gK3R5cGVkZWYgTlRTVEFUVVMNCj4gKygqWEVOQlVTX0dOVFRBQl9NQVBf
Rk9SRUlHTl9QQUdFUykoDQo+ICsgICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgICAgIEludGVy
ZmFjZSwNCj4gKyAgICBJTiAgVVNIT1JUICAgICAgICAgICAgICAgICAgRG9tYWluLA0KPiArICAg
IElOICBVTE9ORyAgICAgICAgICAgICAgICAgICBOdW1iZXJQYWdlcywNCj4gKyAgICBJTiAgUFVM
T05HICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlcywNCj4gKyAgICBJTiAgQk9PTEVBTiAgICAg
ICAgICAgICAgICAgUmVhZE9ubHksDQo+ICsgICAgT1VUIFBIWVNJQ0FMX0FERFJFU1MgICAgICAg
ICpBZGRyZXNzDQo+ICsgICAgKTsNCj4gKw0KPiArLyohIFx0eXBlZGVmIFhFTkJVU19HTlRUQUJf
VU5NQVBfRk9SRUlHTl9QQUdFUw0KPiArICAgIFxicmllZiBVbm1hcCBmb3JlaWduIG1lbW9yeSBw
YWdlcyBmcm9tIHRoZSBzeXN0ZW0gYWRkcmVzcyBzcGFjZQ0KPiArDQo+ICsgICAgXHBhcmFtIElu
dGVyZmFjZSBUaGUgaW50ZXJmYWNlIGhlYWRlcg0KPiArICAgIFxwYXJhbSBBZGRyZXNzIFRoZSBw
aHlzaWNhbCBhZGRyZXNzIHRoYXQgdGhlIGZvcmVpZ24gcGFnZXMgYXJlIG1hcHBlZA0KPiB1bmRl
cg0KPiArKi8NCj4gK3R5cGVkZWYgTlRTVEFUVVMNCj4gKygqWEVOQlVTX0dOVFRBQl9VTk1BUF9G
T1JFSUdOX1BBR0VTKSgNCj4gKyAgICBJTiAgUElOVEVSRkFDRSAgICAgICAgICAgICAgSW50ZXJm
YWNlLA0KPiArICAgIElOICBQSFlTSUNBTF9BRERSRVNTICAgICAgICBBZGRyZXNzDQo+ICsgICAg
KTsNCj4gKw0KPiAgLy8gezc2MzY3OUM1LUU1QzItNEE2RC04Qjg4LTZCQjAyRUM0MkQ4RX0NCj4g
IERFRklORV9HVUlEKEdVSURfWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0UsDQo+ICAweDc2MzY3OWM1
LCAweGU1YzIsIDB4NGE2ZCwgMHg4YiwgMHg4OCwgMHg2YiwgMHhiMCwgMHgyZSwgMHhjNCwgMHgy
ZCwgMHg4ZSk7DQo+IEBAIC0xODIsNyArMjM1LDQyIEBAIHN0cnVjdCBfWEVOQlVTX0dOVFRBQl9J
TlRFUkZBQ0VfVjEgew0KPiAgICAgIFhFTkJVU19HTlRUQUJfREVTVFJPWV9DQUNIRSAgICAgICAg
IEdudHRhYkRlc3Ryb3lDYWNoZTsNCj4gIH07DQo+IA0KPiAtdHlwZWRlZiBzdHJ1Y3QgX1hFTkJV
U19HTlRUQUJfSU5URVJGQUNFX1YxDQo+IFhFTkJVU19HTlRUQUJfSU5URVJGQUNFLCAqUFhFTkJV
U19HTlRUQUJfSU5URVJGQUNFOw0KPiArLyohIFxzdHJ1Y3QgX1hFTkJVU19HTlRUQUJfSU5URVJG
QUNFX1YyDQo+ICsgICAgXGJyaWVmIEdOVFRBQiBpbnRlcmZhY2UgdmVyc2lvbiAyDQo+ICsgICAg
XGluZ3JvdXAgaW50ZXJmYWNlcw0KPiArKi8NCj4gK3N0cnVjdCBfWEVOQlVTX0dOVFRBQl9JTlRF
UkZBQ0VfVjIgew0KPiArICAgIElOVEVSRkFDRSAgICAgICAgICAgICAgICAgICAgICAgICAgIElu
dGVyZmFjZTsNCj4gKyAgICBYRU5CVVNfR05UVEFCX0FDUVVJUkUgICAgICAgICAgICAgICBHbnR0
YWJBY3F1aXJlOw0KPiArICAgIFhFTkJVU19HTlRUQUJfUkVMRUFTRSAgICAgICAgICAgICAgIEdu
dHRhYlJlbGVhc2U7DQo+ICsgICAgWEVOQlVTX0dOVFRBQl9DUkVBVEVfQ0FDSEUgICAgICAgICAg
R250dGFiQ3JlYXRlQ2FjaGU7DQo+ICsgICAgWEVOQlVTX0dOVFRBQl9QRVJNSVRfRk9SRUlHTl9B
Q0NFU1MNCj4gR250dGFiUGVybWl0Rm9yZWlnbkFjY2VzczsNCj4gKyAgICBYRU5CVVNfR05UVEFC
X1JFVk9LRV9GT1JFSUdOX0FDQ0VTUw0KPiBHbnR0YWJSZXZva2VGb3JlaWduQWNjZXNzOw0KPiAr
ICAgIFhFTkJVU19HTlRUQUJfR0VUX1JFRkVSRU5DRSAgICAgICAgIEdudHRhYkdldFJlZmVyZW5j
ZTsNCj4gKyAgICBYRU5CVVNfR05UVEFCX0RFU1RST1lfQ0FDSEUgICAgICAgICBHbnR0YWJEZXN0
cm95Q2FjaGU7DQo+ICsgICAgWEVOQlVTX0dOVFRBQl9NQVBfRk9SRUlHTl9QQUdFUyAgICAgR250
dGFiTWFwRm9yZWlnblBhZ2VzOw0KPiArICAgIFhFTkJVU19HTlRUQUJfVU5NQVBfRk9SRUlHTl9Q
QUdFUw0KPiBHbnR0YWJVbm1hcEZvcmVpZ25QYWdlczsNCj4gK307DQo+ICsNCj4gKy8qISBcc3Ry
dWN0IF9YRU5CVVNfR05UVEFCX0lOVEVSRkFDRV9WMw0KPiArICAgIFxicmllZiBHTlRUQUIgaW50
ZXJmYWNlIHZlcnNpb24gMw0KPiArICAgIFxpbmdyb3VwIGludGVyZmFjZXMNCj4gKyovDQo+ICtz
dHJ1Y3QgX1hFTkJVU19HTlRUQUJfSU5URVJGQUNFX1YzIHsNCj4gKyAgICBJTlRFUkZBQ0UgICAg
ICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2U7DQo+ICsgICAgWEVOQlVTX0dOVFRBQl9B
Q1FVSVJFICAgICAgICAgICAgICAgR250dGFiQWNxdWlyZTsNCj4gKyAgICBYRU5CVVNfR05UVEFC
X1JFTEVBU0UgICAgICAgICAgICAgICBHbnR0YWJSZWxlYXNlOw0KPiArICAgIFhFTkJVU19HTlRU
QUJfQ1JFQVRFX0NBQ0hFICAgICAgICAgIEdudHRhYkNyZWF0ZUNhY2hlOw0KPiArICAgIFhFTkJV
U19HTlRUQUJfUEVSTUlUX0ZPUkVJR05fQUNDRVNTDQo+IEdudHRhYlBlcm1pdEZvcmVpZ25BY2Nl
c3M7DQo+ICsgICAgWEVOQlVTX0dOVFRBQl9SRVZPS0VfRk9SRUlHTl9BQ0NFU1MNCj4gR250dGFi
UmV2b2tlRm9yZWlnbkFjY2VzczsNCj4gKyAgICBYRU5CVVNfR05UVEFCX0dFVF9SRUZFUkVOQ0Ug
ICAgICAgICBHbnR0YWJHZXRSZWZlcmVuY2U7DQo+ICsgICAgWEVOQlVTX0dOVFRBQl9RVUVSWV9S
RUZFUkVOQ0UgICAgICAgR250dGFiUXVlcnlSZWZlcmVuY2U7DQo+ICsgICAgWEVOQlVTX0dOVFRB
Ql9ERVNUUk9ZX0NBQ0hFICAgICAgICAgR250dGFiRGVzdHJveUNhY2hlOw0KPiArICAgIFhFTkJV
U19HTlRUQUJfTUFQX0ZPUkVJR05fUEFHRVMgICAgIEdudHRhYk1hcEZvcmVpZ25QYWdlczsNCj4g
KyAgICBYRU5CVVNfR05UVEFCX1VOTUFQX0ZPUkVJR05fUEFHRVMNCj4gR250dGFiVW5tYXBGb3Jl
aWduUGFnZXM7DQo+ICt9Ow0KPiArDQo+ICt0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0dOVFRBQl9J
TlRFUkZBQ0VfVjMNCj4gWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0UsICpQWEVOQlVTX0dOVFRBQl9J
TlRFUkZBQ0U7DQo+IA0KPiAgLyohIFxkZWYgWEVOQlVTX0dOVFRBQg0KPiAgICAgIFxicmllZiBN
YWNybyBhdCBhc3Npc3QgaW4gbWV0aG9kIGludm9jYXRpb24NCj4gQEAgLTE5Myw3ICsyODEsNyBA
QCB0eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0VfVjENCj4gWEVOQlVTX0dO
VFRBQl9JTlRFUkZBQ0UsICpQWEVOQlVTX0dOVA0KPiAgI2VuZGlmICAvLyBfV0lORExMDQo+IA0K
PiAgI2RlZmluZSBYRU5CVVNfR05UVEFCX0lOVEVSRkFDRV9WRVJTSU9OX01JTiAxDQo+IC0jZGVm
aW5lIFhFTkJVU19HTlRUQUJfSU5URVJGQUNFX1ZFUlNJT05fTUFYIDENCj4gKyNkZWZpbmUgWEVO
QlVTX0dOVFRBQl9JTlRFUkZBQ0VfVkVSU0lPTl9NQVggMw0KPiANCj4gICNlbmRpZiAgLy8gX1hF
TkJVU19HTlRUQUJfSU5URVJGQUNFX0gNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmlmLmlu
ZiBiL3NyYy94ZW52aWYuaW5mDQo+IGluZGV4IGVmNGU5YmMuLmExZDkzMDEgMTAwNjQ0DQo+IC0t
LSBhL3NyYy94ZW52aWYuaW5mDQo+ICsrKyBiL3NyYy94ZW52aWYuaW5mDQo+IEBAIC01OSw5ICs1
OSw5IEBADQo+IHhlbnZpZl9jb2luc3RfQE1BSk9SX1ZFUlNJT05AX0BNSU5PUl9WRVJTSU9OQF9A
TUlDUk9fVkVSUw0KPiBJT05AX0BCVUlMRF9OVU1CRVJALmRsbA0KPiAgOyBEaXNwbGF5TmFtZQkJ
U2VjdGlvbgkJRGV2aWNlSUQNCj4gIDsgLS0tLS0tLS0tLS0JCS0tLS0tLS0JCS0tLS0tLS0tDQo+
IA0KPiAtJVhlblZpZk5hbWUlCQk9WGVuVmlmX0luc3QsDQo+IAlYRU5CVVNcVkVOX0BWRU5ET1Jf
UFJFRklYQEBWRU5ET1JfREVWSUNFX0lEQCZERVZfDQo+IFZJRiZSRVZfMDkwMDAwMDMNCj4gLSVY
ZW5WaWZOYW1lJQkJPVhlblZpZl9JbnN0LA0KPiAJWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJWEAw
MDAxJkRFVl9WSUYmUkVWXzA5MDAwMDAzDQo+IC0lWGVuVmlmTmFtZSUJCT1YZW5WaWZfSW5zdCwN
Cj4gCVhFTkJVU1xWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMiZERVZfVklGJlJFVl8wOTAwMDAwMw0K
PiArJVhlblZpZk5hbWUlCQk9WGVuVmlmX0luc3QsDQo+IAlYRU5CVVNcVkVOX0BWRU5ET1JfUFJF
RklYQEBWRU5ET1JfREVWSUNFX0lEQCZERVZfDQo+IFZJRiZSRVZfMDkwMDAwMDQNCj4gKyVYZW5W
aWZOYW1lJQkJPVhlblZpZl9JbnN0LA0KPiAJWEVOQlVTXFZFTl9AVkVORE9SX1BSRUZJWEAwMDAx
JkRFVl9WSUYmUkVWXzA5MDAwMDA0DQo+ICslWGVuVmlmTmFtZSUJCT1YZW5WaWZfSW5zdCwNCj4g
CVhFTkJVU1xWRU5fQFZFTkRPUl9QUkVGSVhAMDAwMiZERVZfVklGJlJFVl8wOTAwMDAwNA0KPiAN
Cj4gIFtYZW5WaWZfSW5zdF0NCj4gIENvcHlGaWxlcz1YZW5WaWZfQ29weWZpbGVzDQo+IC0tDQo+
IDIuMTYuMi53aW5kb3dzLjENCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 25 12:24:57 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jun 2018 12:24:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fXQYB-00031G-5H; Mon, 25 Jun 2018 12:24:55 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=ju2v=jl=citrix.com=prvs=707b31c7b=owen.smith@srs-us1.protection.inumbo.net>)
 id 1fXQY9-00031B-Dy
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jun 2018 12:24:53 +0000
X-Inumbo-ID: cba02692-7872-11e8-bc1d-65256ead4e3a
Received: from SMTP03.CITRIX.COM (unknown [162.221.156.55])
 by us1-amaz-eas1.inumbo.com (Halon) with ESMTPS
 id cba02692-7872-11e8-bc1d-65256ead4e3a;
 Mon, 25 Jun 2018 12:25:07 +0000 (UTC)
X-IronPort-AV: E=Sophos;i="5.51,270,1526342400"; d="scan'208";a="58512879"
From: Owen Smith <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 25 Jun 2018 13:24:29 +0100
Message-ID: <20180625122429.16960-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.16.2.windows.1
MIME-Version: 1.0
Subject: [win-pv-devel] [PATCH] Relax check for new bindings
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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>

T25seSBpZiB0aGUgbWFqb3IgdmVyc2lvbiBwYXJ0IG9mIHRoZSByZXZpc2lvbiBjaGFuZ2VzLCBp
cyBpdCB1bnNhZmUgdG8KdXBkYXRlIHRoZSBkcml2ZXJzIHdpdGhvdXQgcmVtb3ZpbmcgdGhlIHVu
cGx1ZyBrZXlzLgpNaW5vciB2ZXJzaW9uaW5nIGNoYW5nZXMgc2hvdWxkIGJlIG1hZGUgYmFja3dh
cmQgY29tYmF0aWJsZSwgYW5kIHdpbGwKbm90IHJlcXVpcmUgcmV2ZXJ0aW5nIHRvIGVtdWxhdGVk
IGRldmljZXMgb24gdGhlIG5leHQgYm9vdC4KClNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93
ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0tCiBzcmMvY29pbnN0L2NvaW5zdC5jIHwgOCArKysrKy0t
LQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9zcmMvY29pbnN0L2NvaW5zdC5jIGIvc3JjL2NvaW5zdC9jb2luc3QuYwppbmRleCBm
MTlkMTA4Li5mYTg5OWYzIDEwMDY0NAotLS0gYS9zcmMvY29pbnN0L2NvaW5zdC5jCisrKyBiL3Ny
Yy9jb2luc3QvY29pbnN0LmMKQEAgLTk5OSw2ICs5OTksNyBAQCBTdXBwb3J0RGV2aWNlSUQoCiAg
ICAgdW5zaWduZWQgaW50ICAgIFJldmlzaW9uOwogICAgIGludCAgICAgICAgICAgICBDb3VudDsK
ICAgICBEV09SRCAgICAgICAgICAgSW5kZXg7CisgICAgRFdPUkQgICAgICAgICAgIExhdGVzdFJl
dmlzaW9uOwogICAgIEhSRVNVTFQgICAgICAgICBFcnJvcjsKIAogICAgIERldmljZUlEID0gc3Ry
cmNocihEZXZpY2VJRCwgJyYnKTsKQEAgLTEwMjIsOSArMTAyMywxMCBAQCBTdXBwb3J0RGV2aWNl
SUQoCiAgICAgZ290byBmYWlsMjsKIAogZm91bmQ6Ci0gICAgLy8gSWYgd2UgZG9uJ3QgbWF0Y2gg
dGhlIGxhdGVzdCByZXZpc2lvbiB0aGVuIGl0IG1lYW5zIHRoZSBkcml2ZXIKLSAgICAvLyBiaW5k
aW5nIHdpbGwgY2hhbmdlLgotICAgIGlmIChJbmRleCA8IEFSUkFZU0laRShEZXZpY2VSZXZpc2lv
bikgLSAxKQorICAgIC8vIElmIG1ham9yIHBhcnQgb2YgdGhlIGNoaWxkIGRldmljZSdzIHJldmlz
aW9uIGRvZXMgbm90IG1hdGNoIHRoZSBtYWpvcgorICAgIC8vIHBhcnQgb2YgdGhlIGxhdGVzdCBy
ZXZpc2lvbiB0aGVuIGl0IG1lYW5zIHRoZSBkcml2ZXIgYmluZGluZyB3aWxsIGNoYW5nZS4KKyAg
ICBMYXRlc3RSZXZpc2lvbiA9IERldmljZVJldmlzaW9uW0FSUkFZU0laRShEZXZpY2VSZXZpc2lv
bikgLSAxXTsKKyAgICBpZiAoKFJldmlzaW9uICYgMHhGRjAwMDAwMCkgIT0gKExhdGVzdFJldmlz
aW9uICYgMHhGRjAwMDAwMCkpCiAgICAgICAgICpOZXdCaW5kaW5nID0gVFJVRTsKIAogICAgIExv
ZygiJXgiLCBSZXZpc2lvbik7Ci0tIAoyLjE2LjIud2luZG93cy4xCgoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlz
dAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 25 12:34:15 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 25 Jun 2018 12:34:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fXQhD-00047D-A9; Mon, 25 Jun 2018 12:34:15 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=ndbz=jl=citrix.com=prvs=707e514f0=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fXQhC-000477-FB
 for win-pv-devel@lists.xenproject.org; Mon, 25 Jun 2018 12:34:14 +0000
X-Inumbo-ID: 19911436-7874-11e8-bc1d-65256ead4e3a
Received: from SMTP.EU.CITRIX.COM (unknown [185.25.65.24])
 by us1-amaz-eas1.inumbo.com (Halon) with ESMTPS
 id 19911436-7874-11e8-bc1d-65256ead4e3a;
 Mon, 25 Jun 2018 12:34:28 +0000 (UTC)
X-IronPort-AV: E=Sophos;i="5.51,270,1526342400"; d="scan'208";a="75219172"
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] Relax check for new bindings
Thread-Index: AQHUDH/XW68QJ1ae8EOACKVu6uRBLqRw6ALA
Date: Mon, 25 Jun 2018 12:33:52 +0000
Message-ID: <b33d3b988c0a46c98303dc49d6fae74d@AMSPEX02CL03.citrite.net>
References: <20180625122429.16960-1-owen.smith@citrix.com>
In-Reply-To: <20180625122429.16960-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
Subject: Re: [win-pv-devel] [PATCH] Relax check for new bindings
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Owen Smith <owen.smith@citrix.com>
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>

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogd2luLXB2LWRldmVsIFtt
YWlsdG86d2luLXB2LWRldmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmddIE9uDQo+IEJl
aGFsZiBPZiBPd2VuIFNtaXRoDQo+IFNlbnQ6IDI1IEp1bmUgMjAxOCAxMzoyNA0KPiBUbzogd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBPd2VuIFNtaXRoIDxvd2VuLnNt
aXRoQGNpdHJpeC5jb20+DQo+IFN1YmplY3Q6IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSF0gUmVsYXgg
Y2hlY2sgZm9yIG5ldyBiaW5kaW5ncw0KPiANCj4gT25seSBpZiB0aGUgbWFqb3IgdmVyc2lvbiBw
YXJ0IG9mIHRoZSByZXZpc2lvbiBjaGFuZ2VzLCBpcyBpdCB1bnNhZmUgdG8NCj4gdXBkYXRlIHRo
ZSBkcml2ZXJzIHdpdGhvdXQgcmVtb3ZpbmcgdGhlIHVucGx1ZyBrZXlzLg0KPiBNaW5vciB2ZXJz
aW9uaW5nIGNoYW5nZXMgc2hvdWxkIGJlIG1hZGUgYmFja3dhcmQgY29tYmF0aWJsZSwgYW5kIHdp
bGwNCj4gbm90IHJlcXVpcmUgcmV2ZXJ0aW5nIHRvIGVtdWxhdGVkIGRldmljZXMgb24gdGhlIG5l
eHQgYm9vdC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0
cml4LmNvbT4NCg0KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJp
eC5jb20+DQoNCj4gLS0tDQo+ICBzcmMvY29pbnN0L2NvaW5zdC5jIHwgOCArKysrKy0tLQ0KPiAg
MSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4gDQo+IGRp
ZmYgLS1naXQgYS9zcmMvY29pbnN0L2NvaW5zdC5jIGIvc3JjL2NvaW5zdC9jb2luc3QuYw0KPiBp
bmRleCBmMTlkMTA4Li5mYTg5OWYzIDEwMDY0NA0KPiAtLS0gYS9zcmMvY29pbnN0L2NvaW5zdC5j
DQo+ICsrKyBiL3NyYy9jb2luc3QvY29pbnN0LmMNCj4gQEAgLTk5OSw2ICs5OTksNyBAQCBTdXBw
b3J0RGV2aWNlSUQoDQo+ICAgICAgdW5zaWduZWQgaW50ICAgIFJldmlzaW9uOw0KPiAgICAgIGlu
dCAgICAgICAgICAgICBDb3VudDsNCj4gICAgICBEV09SRCAgICAgICAgICAgSW5kZXg7DQo+ICsg
ICAgRFdPUkQgICAgICAgICAgIExhdGVzdFJldmlzaW9uOw0KPiAgICAgIEhSRVNVTFQgICAgICAg
ICBFcnJvcjsNCj4gDQo+ICAgICAgRGV2aWNlSUQgPSBzdHJyY2hyKERldmljZUlELCAnJicpOw0K
PiBAQCAtMTAyMiw5ICsxMDIzLDEwIEBAIFN1cHBvcnREZXZpY2VJRCgNCj4gICAgICBnb3RvIGZh
aWwyOw0KPiANCj4gIGZvdW5kOg0KPiAtICAgIC8vIElmIHdlIGRvbid0IG1hdGNoIHRoZSBsYXRl
c3QgcmV2aXNpb24gdGhlbiBpdCBtZWFucyB0aGUgZHJpdmVyDQo+IC0gICAgLy8gYmluZGluZyB3
aWxsIGNoYW5nZS4NCj4gLSAgICBpZiAoSW5kZXggPCBBUlJBWVNJWkUoRGV2aWNlUmV2aXNpb24p
IC0gMSkNCj4gKyAgICAvLyBJZiBtYWpvciBwYXJ0IG9mIHRoZSBjaGlsZCBkZXZpY2UncyByZXZp
c2lvbiBkb2VzIG5vdCBtYXRjaCB0aGUgbWFqb3INCj4gKyAgICAvLyBwYXJ0IG9mIHRoZSBsYXRl
c3QgcmV2aXNpb24gdGhlbiBpdCBtZWFucyB0aGUgZHJpdmVyIGJpbmRpbmcgd2lsbCBjaGFuZ2Uu
DQo+ICsgICAgTGF0ZXN0UmV2aXNpb24gPSBEZXZpY2VSZXZpc2lvbltBUlJBWVNJWkUoRGV2aWNl
UmV2aXNpb24pIC0gMV07DQo+ICsgICAgaWYgKChSZXZpc2lvbiAmIDB4RkYwMDAwMDApICE9IChM
YXRlc3RSZXZpc2lvbiAmIDB4RkYwMDAwMDApKQ0KPiAgICAgICAgICAqTmV3QmluZGluZyA9IFRS
VUU7DQo+IA0KPiAgICAgIExvZygiJXgiLCBSZXZpc2lvbik7DQo+IC0tDQo+IDIuMTYuMi53aW5k
b3dzLjENCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v
bGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz
dGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 26 16:08:12 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 26 Jun 2018 16:08:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fXqVm-0007xp-KV; Tue, 26 Jun 2018 16:08:10 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <paul.durrant@xenproject.org>) id 1fXqVl-0007xk-Ba
 for win-pv-devel@lists.xenproject.org; Tue, 26 Jun 2018 16:08:09 +0000
Date: Tue, 26 Jun 2018 16:08:11 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <31748516.1.1530029293691.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_0_11146404.1530029293003"
X-Jenkins-Job: XENVBD-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVBD-master - Build #115 - Successful
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/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_11146404.1530029293003
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #115.

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

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

------=_Part_0_11146404.1530029293003--


From win-pv-devel-bounces@lists.xenproject.org Wed Jun 27 01:32:27 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jun 2018 01:32:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fXzJo-00040Y-VC; Wed, 27 Jun 2018 01:32:24 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <paul.durrant@xenproject.org>) id 1fXzJn-00040T-IA
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jun 2018 01:32:23 +0000
Date: Wed, 27 Jun 2018 01:32:27 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <7420995.3.1530063148052.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_2_30936802.1530063147724"
X-Jenkins-Job: XENBUS-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENBUS-master - Build #160 - Successful
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/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_2_30936802.1530063147724
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #160.

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

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

------=_Part_2_30936802.1530063147724--


From win-pv-devel-bounces@lists.xenproject.org Wed Jun 27 05:45:02 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 27 Jun 2018 05:45:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fY3GF-0004tZ-EU; Wed, 27 Jun 2018 05:44:59 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.89)
 (envelope-from <paul.durrant@xenproject.org>) id 1fY3GE-0004tU-45
 for win-pv-devel@lists.xenproject.org; Wed, 27 Jun 2018 05:44:58 +0000
Date: Wed, 27 Jun 2018 05:45:02 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <12118715.5.1530078302825.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_4_11525597.1530078302544"
X-Jenkins-Job: XENVIF-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVIF-master - Build #155 - Successful
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/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_4_11525597.1530078302544
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #155.

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

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

------=_Part_4_11525597.1530078302544--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 29 10:51:40 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Jun 2018 10:51:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fYr05-00075K-Ui; Fri, 29 Jun 2018 10:51:37 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=ufzb=jp=citrix.com=prvs=7117285ec=paul.durrant@srs-us1.protection.inumbo.net>)
 id 1fYr04-00075F-Jg
 for win-pv-devel@lists.xenproject.org; Fri, 29 Jun 2018 10:51:36 +0000
X-Inumbo-ID: 620e8362-7b8a-11e8-8089-bc764e045a96
Received: from SMTP03.CITRIX.COM (unknown [162.221.156.55])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id 620e8362-7b8a-11e8-8089-bc764e045a96;
 Fri, 29 Jun 2018 12:51:32 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.51,285,1526342400"; d="scan'208";a="59007959"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 29 Jun 2018 11:51:20 +0100
Message-ID: <1530269480-1332-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
MIME-Version: 1.0
Subject: [win-pv-devel] [PATCH xenbus] Use a slab allocator to back
 XENBUS_CACHE memory
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Paul Durrant <paul.durrant@citrix.com>
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>

UmF0aGVyIHRoYW4gdXNpbmcgbm9uLXBhZ2VkIHBvb2wgYW5kIHN1ZmZlcmluZyB0aGUgb3Zlcmhl
YWQgb2YgYSBoZWFkZXIgb24KZXZlcnkgb2JqZWN0LCB1c2UgYSBzbGFiIGFsbG9jYXRvci4KClRo
ZSBzbGFiIGFsbG9jYXRvciBhbGxvY2F0ZXMgYW5kIGZyZWVzIHdob2xlIHBhZ2VzLCBhbmQgdGhl
cmUgaXMgb25seSBvbmUKY29udHJvbCBzdHJ1Y3R1cmUgcGVyLXNsYWIuCgpTaWduZWQtb2ZmLWJ5
OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW5idXMv
Y2FjaGUuYyAgICAgICAgICAgfCA2NTkgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogdnMyMDE1L3hlbmJ1cy94ZW5idXMudmN4cHJvaiB8ICAgMiArLQogdnMyMDE3
L3hlbmJ1cy94ZW5idXMudmN4cHJvaiB8ICAgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAzMTcgaW5z
ZXJ0aW9ucygrKSwgMzQ2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW5idXMvY2Fj
aGUuYyBiL3NyYy94ZW5idXMvY2FjaGUuYwppbmRleCA0MzM0NjhhLi5kYTE1OTdhIDEwMDY0NAot
LS0gYS9zcmMveGVuYnVzL2NhY2hlLmMKKysrIGIvc3JjL3hlbmJ1cy9jYWNoZS5jCkBAIC00Niwy
MCArNDYsMjkgQEAgUnRsUmFuZG9tRXggKAogICAgIF9faW5vdXQgUFVMT05HIFNlZWQKICAgICAp
OwogCi10eXBlZGVmIHN0cnVjdCBfWEVOQlVTX0NBQ0hFX09CSkVDVF9IRUFERVIgewotICAgIFVM
T05HICAgICAgIE1hZ2ljOwotCi0jZGVmaW5lIFhFTkJVU19DQUNIRV9PQkpFQ1RfSEVBREVSX01B
R0lDICdFSkJPJwotCi0gICAgTElTVF9FTlRSWSAgTGlzdEVudHJ5OwotfSBYRU5CVVNfQ0FDSEVf
T0JKRUNUX0hFQURFUiwgKlBYRU5CVVNfQ0FDSEVfT0JKRUNUX0hFQURFUjsKLQogI2RlZmluZSBY
RU5CVVNfQ0FDSEVfTUFHQVpJTkVfU0xPVFMgICA2CiAKIHR5cGVkZWYgc3RydWN0IF9YRU5CVVNf
Q0FDSEVfTUFHQVpJTkUgewogICAgIFBWT0lEICAgU2xvdFtYRU5CVVNfQ0FDSEVfTUFHQVpJTkVf
U0xPVFNdOwogfSBYRU5CVVNfQ0FDSEVfTUFHQVpJTkUsICpQWEVOQlVTX0NBQ0hFX01BR0FaSU5F
OwogCisKKyNkZWZpbmUgWEVOQlVTX0NBQ0hFX1NMQUJfTUFHSUMgJ0JBTFMnCisKK3R5cGVkZWYg
c3RydWN0IF9YRU5CVVNfQ0FDSEVfU0xBQiB7CisgICAgVUxPTkcgICAgICAgICAgIE1hZ2ljOwor
ICAgIExJU1RfRU5UUlkgICAgICBMaXN0RW50cnk7CisgICAgVUxPTkcgICAgICAgICAgIFNpemU7
CisgICAgVUxPTkcgICAgICAgICAgIENvdW50OworICAgIFVMT05HICAgICAgICAgICBBbGxvY2F0
ZWQ7CisgICAgVUNIQVIgICAgICAgICAgIEJ1ZmZlclsxXTsKK30gWEVOQlVTX0NBQ0hFX1NMQUIs
ICpQWEVOQlVTX0NBQ0hFX1NMQUI7CisKKyNkZWZpbmUgQklUU19QRVJfVUxPTkcgKHNpemVvZiAo
VUxPTkcpICogOCkKKyNkZWZpbmUgTUlOSU1VTV9PQkpFQ1RfU0laRSAoUEFHRV9TSVpFIC8gQklU
U19QRVJfVUxPTkcpCisKK0NfQVNTRVJUKHNpemVvZiAoWEVOQlVTX0NBQ0hFX1NMQUIpIDw9IE1J
TklNVU1fT0JKRUNUX1NJWkUpOworCiAjZGVmaW5lIE1BWE5BTUVMRU4gIDEyOAogCiBzdHJ1Y3Qg
X1hFTkJVU19DQUNIRSB7CkBAIC03MiwxMSArODEsOCBAQCBzdHJ1Y3QgX1hFTkJVU19DQUNIRSB7
CiAgICAgVk9JRCAgICAgICAgICAgICAgICAgICAgKCpBY3F1aXJlTG9jaykoUFZPSUQpOwogICAg
IFZPSUQgICAgICAgICAgICAgICAgICAgICgqUmVsZWFzZUxvY2spKFBWT0lEKTsKICAgICBQVk9J
RCAgICAgICAgICAgICAgICAgICBBcmd1bWVudDsKLSAgICBMSVNUX0VOVFJZICAgICAgICAgICAg
ICBHZXRMaXN0OwotICAgIExPTkcgICAgICAgICAgICAgICAgICAgIEdldENvdW50OwotICAgIFBM
SVNUX0VOVFJZICAgICAgICAgICAgIFB1dExpc3Q7Ci0gICAgTE9ORyAgICAgICAgICAgICAgICAg
ICAgUHV0Q291bnQ7Ci0gICAgTE9ORyAgICAgICAgICAgICAgICAgICAgTGlzdENvdW50OworICAg
IExJU1RfRU5UUlkgICAgICAgICAgICAgIFNsYWJMaXN0OworICAgIFVMT05HICAgICAgICAgICAg
ICAgICAgIENvdW50OwogICAgIFBYRU5CVVNfQ0FDSEVfTUFHQVpJTkUgIE1hZ2F6aW5lOwogICAg
IFVMT05HICAgICAgICAgICAgICAgICAgIE1hZ2F6aW5lQ291bnQ7CiB9OwpAQCAtODcsNyArOTMs
NiBAQCBzdHJ1Y3QgX1hFTkJVU19DQUNIRV9DT05URVhUIHsKICAgICBMT05HICAgICAgICAgICAg
ICAgICAgICBSZWZlcmVuY2VzOwogICAgIFhFTkJVU19ERUJVR19JTlRFUkZBQ0UgIERlYnVnSW50
ZXJmYWNlOwogICAgIFBYRU5CVVNfREVCVUdfQ0FMTEJBQ0sgIERlYnVnQ2FsbGJhY2s7Ci0gICAg
UFhFTkJVU19USFJFQUQgICAgICAgICAgTW9uaXRvclRocmVhZDsKICAgICBMSVNUX0VOVFJZICAg
ICAgICAgICAgICBMaXN0OwogfTsKIApAQCAtMTA5LDM2NCArMTE0LDQxNSBAQCBfX0NhY2hlRnJl
ZSgKICAgICBfX0ZyZWVQb29sV2l0aFRhZyhCdWZmZXIsIENBQ0hFX1RBRyk7CiB9CiAKLXN0YXRp
YyBWT0lECi1DYWNoZVN3aXp6bGUoCitzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorX19kcnZfcmVx
dWlyZXNJUlFMKERJU1BBVENIX0xFVkVMKQorX19DYWNoZUFjcXVpcmVMb2NrKAogICAgIElOICBQ
WEVOQlVTX0NBQ0hFICAgQ2FjaGUKICAgICApCiB7Ci0gICAgUExJU1RfRU5UUlkgICAgICAgICBM
aXN0OwotCi0gICAgTGlzdCA9IEludGVybG9ja2VkRXhjaGFuZ2VQb2ludGVyKCZDYWNoZS0+UHV0
TGlzdCwgTlVMTCk7Ci0KLSAgICAvLyBOb3QgcmVhbGx5IGEgZG91Ymx5LWxpbmtlZCBsaXN0OyBp
dCdzIGFjdHVhbGx5IGEgc2luZ2x5LWxpbmtlZAotICAgIC8vIGxpc3QgdmlhIHRoZSBGbGluayBm
aWVsZC4KLSAgICB3aGlsZSAoTGlzdCAhPSBOVUxMKSB7Ci0gICAgICAgIFBMSVNUX0VOVFJZICAg
ICAgICAgICAgICAgICBOZXh0OwotICAgICAgICBQWEVOQlVTX0NBQ0hFX09CSkVDVF9IRUFERVIg
SGVhZGVyOwotCi0gICAgICAgIE5leHQgPSBMaXN0LT5GbGluazsKLSAgICAgICAgTGlzdC0+Rmxp
bmsgPSBOVUxMOwotICAgICAgICBBU1NFUlQzUChMaXN0LT5CbGluaywgPT0sIE5VTEwpOworICAg
IENhY2hlLT5BY3F1aXJlTG9jayhDYWNoZS0+QXJndW1lbnQpOworfQogCi0gICAgICAgIEhlYWRl
ciA9IENPTlRBSU5JTkdfUkVDT1JEKExpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFhFTkJVU19DQUNIRV9PQkpFQ1RfSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMaXN0RW50cnkpOwotICAgICAgICBBU1NFUlQzVShIZWFkZXItPk1hZ2lj
LCA9PSwgWEVOQlVTX0NBQ0hFX09CSkVDVF9IRUFERVJfTUFHSUMpOworc3RhdGljIEZPUkNFSU5M
SU5FIFZPSUQKK19fZHJ2X3JlcXVpcmVzSVJRTChESVNQQVRDSF9MRVZFTCkKK19fQ2FjaGVSZWxl
YXNlTG9jaygKKyAgICBJTiAgUFhFTkJVU19DQUNIRSAgIENhY2hlCisgICAgKQoreworICAgIENh
Y2hlLT5SZWxlYXNlTG9jayhDYWNoZS0+QXJndW1lbnQpOworfQogCi0gICAgICAgIEluc2VydFRh
aWxMaXN0KCZDYWNoZS0+R2V0TGlzdCwgJkhlYWRlci0+TGlzdEVudHJ5KTsKK3N0YXRpYyBGT1JD
RUlOTElORSBOVFNUQVRVUworX19kcnZfcmVxdWlyZXNJUlFMKERJU1BBVENIX0xFVkVMKQorX19D
YWNoZUN0b3IoCisgICAgSU4gIFBYRU5CVVNfQ0FDSEUgICBDYWNoZSwKKyAgICBJTiAgUFZPSUQg
ICAgICAgICAgIE9iamVjdAorICAgICkKK3sKKyAgICByZXR1cm4gQ2FjaGUtPkN0b3IoQ2FjaGUt
PkFyZ3VtZW50LCBPYmplY3QpOworfQogCi0gICAgICAgIExpc3QgPSBOZXh0OwotICAgIH0KK3N0
YXRpYyBGT1JDRUlOTElORSBWT0lECitfX2Rydl9yZXF1aXJlc0lSUUwoRElTUEFUQ0hfTEVWRUwp
CitfX0NhY2hlRHRvcigKKyAgICBJTiAgUFhFTkJVU19DQUNIRSAgIENhY2hlLAorICAgIElOICBQ
Vk9JRCAgICAgICAgICAgT2JqZWN0CisgICAgKQoreworICAgIENhY2hlLT5EdG9yKENhY2hlLT5B
cmd1bWVudCwgT2JqZWN0KTsKIH0KIAogc3RhdGljIFBWT0lECi1DYWNoZUNyZWF0ZU9iamVjdCgK
LSAgICBJTiAgUFhFTkJVU19DQUNIRSAgICAgICAgICAgQ2FjaGUKK0NhY2hlR2V0T2JqZWN0RnJv
bU1hZ2F6aW5lKAorICAgIElOICBQWEVOQlVTX0NBQ0hFX01BR0FaSU5FICBNYWdhemluZQogICAg
ICkKIHsKLSAgICBQWEVOQlVTX0NBQ0hFX09CSkVDVF9IRUFERVIgSGVhZGVyOwotICAgIFBWT0lE
ICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Q7Ci0gICAgTlRTVEFUVVMgICAgICAgICAgICAg
ICAgICAgIHN0YXR1czsKLQotICAgIEhlYWRlciA9IF9fQ2FjaGVBbGxvY2F0ZShzaXplb2YgKFhF
TkJVU19DQUNIRV9PQkpFQ1RfSEVBREVSKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENhY2hlLT5TaXplKTsKLQotICAgIHN0YXR1cyA9IFNUQVRVU19OT19NRU1PUlk7Ci0gICAgaWYg
KEhlYWRlciA9PSBOVUxMKQotICAgICAgICBnb3RvIGZhaWwxOwotCi0gICAgSGVhZGVyLT5NYWdp
YyA9IFhFTkJVU19DQUNIRV9PQkpFQ1RfSEVBREVSX01BR0lDOwotCi0gICAgT2JqZWN0ID0gSGVh
ZGVyICsgMTsKLQotICAgIHN0YXR1cyA9IENhY2hlLT5DdG9yKENhY2hlLT5Bcmd1bWVudCwgT2Jq
ZWN0KTsKLSAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsMjsK
LQotICAgIHJldHVybiBPYmplY3Q7Ci0KLWZhaWwyOgotICAgIEVycm9yKCJmYWlsMlxuIik7Cisg
ICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIEluZGV4OwogCi0gICAgSGVhZGVyLT5NYWdp
YyA9IDA7CisgICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgWEVOQlVTX0NBQ0hFX01BR0FaSU5F
X1NMT1RTOyBJbmRleCsrKSB7CisgICAgICAgIFBWT0lEICAgT2JqZWN0OwogCi0gICAgQVNTRVJU
KElzWmVyb01lbW9yeShIZWFkZXIsIHNpemVvZiAoWEVOQlVTX0NBQ0hFX09CSkVDVF9IRUFERVIp
KSk7Ci0gICAgX19DYWNoZUZyZWUoSGVhZGVyKTsKKyAgICAgICAgaWYgKE1hZ2F6aW5lLT5TbG90
W0luZGV4XSAhPSBOVUxMKSB7CisgICAgICAgICAgICBPYmplY3QgPSBNYWdhemluZS0+U2xvdFtJ
bmRleF07CisgICAgICAgICAgICBNYWdhemluZS0+U2xvdFtJbmRleF0gPSBOVUxMOwogCi1mYWls
MToKLSAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworICAgICAgICAgICAgcmV0
dXJuIE9iamVjdDsKKyAgICAgICAgfQorICAgIH0KIAotICAgIHJldHVybiBOVUxMOyAgICAKKyAg
ICByZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIEZPUkNFSU5MSU5FCi1fX2Rydl9zYXZlc0lSUUwK
LV9fZHJ2X3JhaXNlc0lSUUwoRElTUEFUQ0hfTEVWRUwpCi1LSVJRTAotX19DYWNoZUFjcXVpcmVM
b2NrKAotICAgIElOICBQWEVOQlVTX0NBQ0hFICAgQ2FjaGUKK3N0YXRpYyBOVFNUQVRVUworQ2Fj
aGVQdXRPYmplY3RUb01hZ2F6aW5lKAorICAgIElOICBQWEVOQlVTX0NBQ0hFX01BR0FaSU5FICBN
YWdhemluZSwKKyAgICBJTiAgUFZPSUQgICAgICAgICAgICAgICAgICAgT2JqZWN0CiAgICAgKQog
ewotICAgIEtJUlFMICAgICAgICAgICAgICAgSXJxbDsKKyAgICBVTE9ORyAgICAgICAgICAgICAg
ICAgICAgICAgSW5kZXg7CiAKLSAgICBLZVJhaXNlSXJxbChESVNQQVRDSF9MRVZFTCwgJklycWwp
OwotICAgIENhY2hlLT5BY3F1aXJlTG9jayhDYWNoZS0+QXJndW1lbnQpOwotCi0gICAgcmV0dXJu
IElycWw7Ci19CisgICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgWEVOQlVTX0NBQ0hFX01BR0Fa
SU5FX1NMT1RTOyBJbmRleCsrKSB7CisgICAgICAgIGlmIChNYWdhemluZS0+U2xvdFtJbmRleF0g
PT0gTlVMTCkgeworICAgICAgICAgICAgTWFnYXppbmUtPlNsb3RbSW5kZXhdID0gT2JqZWN0Owor
ICAgICAgICAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOworICAgICAgICB9CisgICAgfQogCi1z
dGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAotX19kcnZfcmVxdWlyZXNJUlFMKERJU1BBVENIX0xFVkVM
KQotX19DYWNoZVJlbGVhc2VMb2NrKAotICAgIElOICBQWEVOQlVTX0NBQ0hFICAgICAgICAgICAg
ICAgQ2FjaGUsCi0gICAgSU4gIF9fZHJ2X3Jlc3RvcmVzSVJRTCBLSVJRTCAgICBJcnFsCi0gICAg
KQotewotICAgIENhY2hlLT5SZWxlYXNlTG9jayhDYWNoZS0+QXJndW1lbnQpOwotICAgIEtlTG93
ZXJJcnFsKElycWwpOworICAgIHJldHVybiBTVEFUVVNfVU5TVUNDRVNTRlVMOwogfQogCi1zdGF0
aWMgUFZPSUQKLUNhY2hlR2V0T2JqZWN0RnJvbUxpc3QoCi0gICAgSU4gIFBYRU5CVVNfQ0FDSEUg
ICAgICAgICAgIENhY2hlLAotICAgIElOICBCT09MRUFOICAgICAgICAgICAgICAgICBMb2NrZWQK
Ky8vIE11c3QgYmUgY2FsbGVkIHdpdGggbG9jayBoZWxkCitzdGF0aWMgUFhFTkJVU19DQUNIRV9T
TEFCCitDYWNoZUNyZWF0ZVNsYWIoCisgICAgSU4gIFBYRU5CVVNfQ0FDSEUgICBDYWNoZQogICAg
ICkKIHsKLSAgICBMT05HICAgICAgICAgICAgICAgICAgICAgICAgQ291bnQ7Ci0gICAgUExJU1Rf
RU5UUlkgICAgICAgICAgICAgICAgIExpc3RFbnRyeTsKLSAgICBQWEVOQlVTX0NBQ0hFX09CSkVD
VF9IRUFERVIgSGVhZGVyOwotICAgIFBWT0lEICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Q7
Ci0gICAgS0lSUUwgICAgICAgICAgICAgICAgICAgICAgIElycWwgPSBQQVNTSVZFX0xFVkVMOwot
ICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgICAgICBzdGF0dXM7Ci0KLSAgICBDb3VudCA9IElu
dGVybG9ja2VkRGVjcmVtZW50KCZDYWNoZS0+TGlzdENvdW50KTsKKyAgICBVTE9ORyAgICAgICAg
ICAgICAgIFNpemU7CisgICAgUFhFTkJVU19DQUNIRV9TTEFCICBTbGFiOworICAgIFVMT05HICAg
ICAgICAgICAgICAgTnVtYmVyT2ZCeXRlczsKKyAgICBMQVJHRV9JTlRFR0VSICAgICAgIExvd0Fk
ZHJlc3M7CisgICAgTEFSR0VfSU5URUdFUiAgICAgICBIaWdoQWRkcmVzczsKKyAgICBMQVJHRV9J
TlRFR0VSICAgICAgIEJvdW5kYXJ5OworICAgIExPTkcgICAgICAgICAgICAgICAgSW5kZXg7Cisg
ICAgTlRTVEFUVVMgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBTaXplID0gX19tYXgoQ2FjaGUt
PlNpemUsIE1JTklNVU1fT0JKRUNUX1NJWkUpOworICAgIFNpemUgPSBQMlJPVU5EVVAoU2l6ZSwg
c2l6ZW9mIChVTE9OR19QVFIpKTsKKworICAgIE51bWJlck9mQnl0ZXMgPSBQMlJPVU5EVVAoRklF
TERfT0ZGU0VUKFhFTkJVU19DQUNIRV9TTEFCLCBCdWZmZXIpICsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQUdFX1NJ
WkUpOworCisgICAgTG93QWRkcmVzcy5RdWFkUGFydCA9IDB1bGw7CisgICAgSGlnaEFkZHJlc3Mu
UXVhZFBhcnQgPSB+MHVsbDsKKyAgICBCb3VuZGFyeS5RdWFkUGFydCA9IDB1bGw7CisKKyAgICBT
bGFiID0gTW1BbGxvY2F0ZUNvbnRpZ3VvdXNNZW1vcnlTcGVjaWZ5Q2FjaGVOb2RlKChTSVpFX1Qp
TnVtYmVyT2ZCeXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExvd0FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBIaWdoQWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvdW5kYXJ5LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW1DYWNoZWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTV9BTllf
Tk9ERV9PSyk7CiAKICAgICBzdGF0dXMgPSBTVEFUVVNfTk9fTUVNT1JZOwotICAgIGlmIChDb3Vu
dCA8IDApCisgICAgaWYgKFNsYWIgPT0gTlVMTCkKICAgICAgICAgZ290byBmYWlsMTsKIAotICAg
IGlmICghTG9ja2VkKQotICAgICAgICBJcnFsID0gX19DYWNoZUFjcXVpcmVMb2NrKENhY2hlKTsK
KyAgICBSdGxaZXJvTWVtb3J5KFNsYWIsIE51bWJlck9mQnl0ZXMpOwogCi0gICAgaWYgKElzTGlz
dEVtcHR5KCZDYWNoZS0+R2V0TGlzdCkpCi0gICAgICAgIENhY2hlU3dpenpsZShDYWNoZSk7Cisg
ICAgU2xhYi0+TWFnaWMgPSBYRU5CVVNfQ0FDSEVfU0xBQl9NQUdJQzsKKyAgICBTbGFiLT5TaXpl
ID0gU2l6ZTsKKyAgICBTbGFiLT5Db3VudCA9IChOdW1iZXJPZkJ5dGVzIC0KKyAgICAgICAgICAg
ICAgICAgICBGSUVMRF9PRkZTRVQoWEVOQlVTX0NBQ0hFX1NMQUIsIEJ1ZmZlcikpIC8KKyAgICAg
ICAgICAgICAgICAgIFNpemU7CisgICAgQVNTRVJUKFNsYWItPkNvdW50ICE9IDApOwogCi0gICAg
TGlzdEVudHJ5ID0gUmVtb3ZlSGVhZExpc3QoJkNhY2hlLT5HZXRMaXN0KTsKLSAgICBBU1NFUlQo
TGlzdEVudHJ5ICE9ICZDYWNoZS0+R2V0TGlzdCk7CisgICAgZm9yIChJbmRleCA9IDA7IEluZGV4
IDwgKExPTkcpU2xhYi0+Q291bnQ7IEluZGV4KyspIHsKKyAgICAgICAgUFZPSUQgT2JqZWN0ID0g
KFBWT0lEKSZTbGFiLT5CdWZmZXJbSW5kZXggKiBTaXplXTsKIAotICAgIGlmICghTG9ja2VkKQot
ICAgICAgICBfX0NhY2hlUmVsZWFzZUxvY2soQ2FjaGUsIElycWwpOworICAgICAgICBzdGF0dXMg
PSBfX0NhY2hlQ3RvcihDYWNoZSwgT2JqZWN0KTsKKyAgICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0
YXR1cykpCisgICAgICAgICAgICBnb3RvIGZhaWwyOworICAgIH0KIAotICAgIFJ0bFplcm9NZW1v
cnkoTGlzdEVudHJ5LCBzaXplb2YgKExJU1RfRU5UUlkpKTsKKyAgICBJbnNlcnRIZWFkTGlzdCgm
Q2FjaGUtPlNsYWJMaXN0LCAmU2xhYi0+TGlzdEVudHJ5KTsKKyAgICBDYWNoZS0+Q291bnQgKz0g
U2xhYi0+Q291bnQ7CiAKLSAgICBIZWFkZXIgPSBDT05UQUlOSU5HX1JFQ09SRChMaXN0RW50cnks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOQlVTX0NBQ0hFX09CSkVDVF9IRUFE
RVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdEVudHJ5KTsKLSAgICBBU1NF
UlQzVShIZWFkZXItPk1hZ2ljLCA9PSwgWEVOQlVTX0NBQ0hFX09CSkVDVF9IRUFERVJfTUFHSUMp
OworICAgIHJldHVybiBTbGFiOwogCi0gICAgT2JqZWN0ID0gSGVhZGVyICsgMTsKK2ZhaWwyOgor
ICAgIHdoaWxlICgtLUluZGV4ID49IDApIHsKKyAgICAgICAgUFZPSUQgT2JqZWN0ID0gKFBWT0lE
KSZTbGFiLT5CdWZmZXJbSW5kZXggKiBTaXplXTsKIAotICAgIHJldHVybiBPYmplY3Q7CisgICAg
ICAgIF9fQ2FjaGVEdG9yKENhY2hlLCBPYmplY3QpOworICAgIH0KKworICAgIE1tRnJlZUNvbnRp
Z3VvdXNNZW1vcnkoU2xhYik7CiAKIGZhaWwxOgotICAgIChWT0lEKSBJbnRlcmxvY2tlZEluY3Jl
bWVudCgmQ2FjaGUtPkxpc3RDb3VudCk7CisgICAgRXJyb3IoImZhaWwxICglMDh4KVxuIiwgc3Rh
dHVzKTsKIAotICAgIHJldHVybiBOVUxMOyAgICAKKyAgICByZXR1cm4gTlVMTDsKIH0KIAotc3Rh
dGljIFZPSUQKLUNhY2hlUHV0T2JqZWN0VG9MaXN0KAotICAgIElOICBQWEVOQlVTX0NBQ0hFICAg
ICAgICAgICBDYWNoZSwKLSAgICBJTiAgUFZPSUQgICAgICAgICAgICAgICAgICAgT2JqZWN0LAot
ICAgIElOICBCT09MRUFOICAgICAgICAgICAgICAgICBMb2NrZWQKKy8vIE11c3QgYmUgY2FsbGVk
IHdpdGggbG9jayBoZWxkCitzdGF0aWMgTlRTVEFUVVMKK0NhY2hlRGVzdHJveVNsYWIoCisgICAg
SU4gIFBYRU5CVVNfQ0FDSEUgICAgICAgQ2FjaGUsCisgICAgSU4gIFBYRU5CVVNfQ0FDSEVfU0xB
QiAgU2xhYgogICAgICkKIHsKLSAgICBQWEVOQlVTX0NBQ0hFX09CSkVDVF9IRUFERVIgSGVhZGVy
OwotICAgIFBMSVNUX0VOVFJZICAgICAgICAgICAgICAgICBPbGQ7Ci0gICAgUExJU1RfRU5UUlkg
ICAgICAgICAgICAgICAgIE5ldzsKLQotICAgIEFTU0VSVChPYmplY3QgIT0gTlVMTCk7CisgICAg
TE9ORyAgICAgICAgICAgICAgICAgICAgSW5kZXg7CiAKLSAgICBIZWFkZXIgPSBPYmplY3Q7Ci0g
ICAgLS1IZWFkZXI7Ci0gICAgQVNTRVJUM1UoSGVhZGVyLT5NYWdpYywgPT0sIFhFTkJVU19DQUNI
RV9PQkpFQ1RfSEVBREVSX01BR0lDKTsKKyAgICAvLyBUaGlzIG1heSBub3QgaGF2ZSBiZWVuIHBy
ZXZpb3VzbHkgdGVzdGVkIHVuZGVyIGxvY2sKKyAgICBpZiAoU2xhYi0+QWxsb2NhdGVkICE9IDAp
CisgICAgICAgIHJldHVybiBTVEFUVVNfVU5TVUNDRVNTRlVMOwogCi0gICAgQVNTRVJUKElzWmVy
b01lbW9yeSgmSGVhZGVyLT5MaXN0RW50cnksIHNpemVvZiAoTElTVF9FTlRSWSkpKTsKKyAgICBB
U1NFUlQzVShDYWNoZS0+Q291bnQsID49LCBTbGFiLT5Db3VudCk7CisgICAgQ2FjaGUtPkNvdW50
IC09IFNsYWItPkNvdW50OworICAgIFJlbW92ZUVudHJ5TGlzdCgmU2xhYi0+TGlzdEVudHJ5KTsK
IAotICAgIGlmICghTG9ja2VkKSB7Ci0gICAgICAgIE5ldyA9ICZIZWFkZXItPkxpc3RFbnRyeTsK
KyAgICBJbmRleCA9IFNsYWItPkNvdW50OworICAgIHdoaWxlICgtLUluZGV4ID49IDApIHsKKyAg
ICAgICAgUFZPSUQgT2JqZWN0ID0gKFBWT0lEKSZTbGFiLT5CdWZmZXJbSW5kZXggKiBTbGFiLT5T
aXplXTsKIAotICAgICAgICBkbyB7Ci0gICAgICAgICAgICBPbGQgPSBDYWNoZS0+UHV0TGlzdDsK
LSAgICAgICAgICAgIE5ldy0+RmxpbmsgPSBPbGQ7Ci0gICAgICAgIH0gd2hpbGUgKEludGVybG9j
a2VkQ29tcGFyZUV4Y2hhbmdlUG9pbnRlcigmQ2FjaGUtPlB1dExpc3QsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOZXcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbGQpICE9IE9sZCk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgSW5zZXJ0VGFpbExpc3QoJkNhY2hlLT5HZXRMaXN0LCAmSGVhZGVy
LT5MaXN0RW50cnkpOworICAgICAgICBfX0NhY2hlRHRvcihDYWNoZSwgT2JqZWN0KTsKICAgICB9
CiAKLSAgICBLZU1lbW9yeUJhcnJpZXIoKTsKKyAgICBNbUZyZWVDb250aWd1b3VzTWVtb3J5KFNs
YWIpOwogCi0gICAgKFZPSUQpIEludGVybG9ja2VkSW5jcmVtZW50KCZDYWNoZS0+TGlzdENvdW50
KTsKKyAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CiB9CiAKKy8vIE11c3QgYmUgY2FsbGVkIHdp
dGggbG9jayBoZWxkCiBzdGF0aWMgUFZPSUQKLUNhY2hlR2V0T2JqZWN0RnJvbU1hZ2F6aW5lKAot
ICAgIElOICBQWEVOQlVTX0NBQ0hFICAgICAgIENhY2hlLAotICAgIElOICBVTE9ORyAgICAgICAg
ICAgICAgIEluZGV4CitDYWNoZUdldE9iamVjdEZyb21TbGFiKAorICAgIElOICBQWEVOQlVTX0NB
Q0hFX1NMQUIgIFNsYWIKICAgICApCiB7Ci0gICAgUFhFTkJVU19DQUNIRV9NQUdBWklORSAgTWFn
YXppbmU7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgRnJlZTsKKyAgICBVTE9ORyAgICAg
ICAgICAgICAgICAgICBJbmRleDsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBTZXQ7CiAK
LSAgICBBU1NFUlQzVShJbmRleCwgPCwgQ2FjaGUtPk1hZ2F6aW5lQ291bnQpOwotICAgIE1hZ2F6
aW5lID0gJkNhY2hlLT5NYWdhemluZVtJbmRleF07CisgICAgRnJlZSA9IH5TbGFiLT5BbGxvY2F0
ZWQ7CisgICAgaWYgKCFfQml0U2NhbkZvcndhcmQoJkluZGV4LCBGcmVlKSB8fCBJbmRleCA+PSBT
bGFiLT5Db3VudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBmb3IgKEluZGV4ID0gMDsg
SW5kZXggPCBYRU5CVVNfQ0FDSEVfTUFHQVpJTkVfU0xPVFM7IEluZGV4KyspIHsKLSAgICAgICAg
UFZPSUQgICBPYmplY3Q7CisgICAgU2V0ID0gSW50ZXJsb2NrZWRCaXRUZXN0QW5kU2V0KChMT05H
ICopJlNsYWItPkFsbG9jYXRlZCwgSW5kZXgpOworICAgIEFTU0VSVCghU2V0KTsKIAotICAgICAg
ICBpZiAoTWFnYXppbmUtPlNsb3RbSW5kZXhdICE9IE5VTEwpIHsKLSAgICAgICAgICAgIE9iamVj
dCA9IE1hZ2F6aW5lLT5TbG90W0luZGV4XTsKLSAgICAgICAgICAgIE1hZ2F6aW5lLT5TbG90W0lu
ZGV4XSA9IE5VTEw7Ci0KLSAgICAgICAgICAgIHJldHVybiBPYmplY3Q7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gKFBWT0lEKSZTbGFiLT5CdWZmZXJb
SW5kZXggKiBTbGFiLT5TaXplXTsKIH0KIAotc3RhdGljIEJPT0xFQU4KLUNhY2hlUHV0T2JqZWN0
VG9NYWdhemluZSgKLSAgICBJTiAgUFhFTkJVU19DQUNIRSAgICAgICBDYWNoZSwKLSAgICBJTiAg
VUxPTkcgICAgICAgICAgICAgICBJbmRleCwKKy8vIE1heSBiZSBjYWxsZWQgd2l0aCBvciB3aXRo
b3V0IGxvY2sgaGVsZAorc3RhdGljIFZPSUQKK0NhY2hlUHV0T2JqZWN0VG9TbGFiKAorICAgIElO
ICBQWEVOQlVTX0NBQ0hFX1NMQUIgIFNsYWIsCiAgICAgSU4gIFBWT0lEICAgICAgICAgICAgICAg
T2JqZWN0CiAgICAgKQogewotICAgIFBYRU5CVVNfQ0FDSEVfTUFHQVpJTkUgIE1hZ2F6aW5lOwor
ICAgIFVMT05HICAgICAgICAgICAgICAgICAgIEluZGV4OwogCi0gICAgQVNTRVJUM1UoSW5kZXgs
IDwsIENhY2hlLT5NYWdhemluZUNvdW50KTsKLSAgICBNYWdhemluZSA9ICZDYWNoZS0+TWFnYXpp
bmVbSW5kZXhdOworICAgIEluZGV4ID0gKFVMT05HKSgoUFVDSEFSKU9iamVjdCAtICZTbGFiLT5C
dWZmZXJbMF0pIC8gU2xhYi0+U2l6ZTsKKyAgICBCVUdfT04oSW5kZXggPj0gU2xhYi0+Q291bnQp
OwogCi0gICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgWEVOQlVTX0NBQ0hFX01BR0FaSU5FX1NM
T1RTOyBJbmRleCsrKSB7Ci0gICAgICAgIGlmIChNYWdhemluZS0+U2xvdFtJbmRleF0gPT0gTlVM
TCkgewotICAgICAgICAgICAgTWFnYXppbmUtPlNsb3RbSW5kZXhdID0gT2JqZWN0OwotICAgICAg
ICAgICAgcmV0dXJuIFRSVUU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gRkFMU0U7
CisgICAgKFZPSUQpIEludGVybG9ja2VkQml0VGVzdEFuZFJlc2V0KChMT05HICopJlNsYWItPkFs
bG9jYXRlZCwgSW5kZXgpOwogfQogCiBzdGF0aWMgUFZPSUQKIENhY2hlR2V0KAotICAgIElOICBQ
SU5URVJGQUNFICAgICAgSW50ZXJmYWNlLAotICAgIElOICBQWEVOQlVTX0NBQ0hFICAgQ2FjaGUs
Ci0gICAgSU4gIEJPT0xFQU4gICAgICAgICBMb2NrZWQKKyAgICBJTiAgUElOVEVSRkFDRSAgICAg
ICAgICBJbnRlcmZhY2UsCisgICAgSU4gIFBYRU5CVVNfQ0FDSEUgICAgICAgQ2FjaGUsCisgICAg
SU4gIEJPT0xFQU4gICAgICAgICAgICAgTG9ja2VkCiAgICAgKQogewotICAgIEtJUlFMICAgICAg
ICAgICAgICAgSXJxbDsKLSAgICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4OwotICAgIFBWT0lE
ICAgICAgICAgICAgICAgT2JqZWN0OworICAgIEtJUlFMICAgICAgICAgICAgICAgICAgIElycWw7
CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgSW5kZXg7CisgICAgUFhFTkJVU19DQUNIRV9N
QUdBWklORSAgTWFnYXppbmU7CisgICAgUFZPSUQgICAgICAgICAgICAgICAgICAgT2JqZWN0Owor
ICAgIFBMSVNUX0VOVFJZICAgICAgICAgICAgIExpc3RFbnRyeTsKIAogICAgIFVOUkVGRVJFTkNF
RF9QQVJBTUVURVIoSW50ZXJmYWNlKTsKIAogICAgIEtlUmFpc2VJcnFsKERJU1BBVENIX0xFVkVM
LCAmSXJxbCk7CiAgICAgSW5kZXggPSBLZUdldEN1cnJlbnRQcm9jZXNzb3JOdW1iZXJFeChOVUxM
KTsKIAotICAgIE9iamVjdCA9IENhY2hlR2V0T2JqZWN0RnJvbU1hZ2F6aW5lKENhY2hlLCBJbmRl
eCk7Ci0gICAgaWYgKE9iamVjdCAhPSBOVUxMKQotICAgICAgICBnb3RvIGRvbmU7CisgICAgQVNT
RVJUM1UoSW5kZXgsIDwsIENhY2hlLT5NYWdhemluZUNvdW50KTsKKyAgICBNYWdhemluZSA9ICZD
YWNoZS0+TWFnYXppbmVbSW5kZXhdOwogCi0gICAgT2JqZWN0ID0gQ2FjaGVHZXRPYmplY3RGcm9t
TGlzdChDYWNoZSwgTG9ja2VkKTsKKyAgICBPYmplY3QgPSBDYWNoZUdldE9iamVjdEZyb21NYWdh
emluZShNYWdhemluZSk7CiAgICAgaWYgKE9iamVjdCAhPSBOVUxMKQogICAgICAgICBnb3RvIGRv
bmU7CiAKLSAgICBPYmplY3QgPSBDYWNoZUNyZWF0ZU9iamVjdChDYWNoZSk7CisgICAgaWYgKCFM
b2NrZWQpCisgICAgICAgIF9fQ2FjaGVBY3F1aXJlTG9jayhDYWNoZSk7CisKKyAgICBmb3IgKExp
c3RFbnRyeSA9IENhY2hlLT5TbGFiTGlzdC5GbGluazsKKyAgICAgICAgIExpc3RFbnRyeSAhPSAm
Q2FjaGUtPlNsYWJMaXN0OworICAgICAgICAgTGlzdEVudHJ5ID0gTGlzdEVudHJ5LT5GbGluaykg
eworICAgICAgICBQWEVOQlVTX0NBQ0hFX1NMQUIgIFNsYWI7CisKKyAgICAgICAgU2xhYiA9IENP
TlRBSU5JTkdfUkVDT1JEKExpc3RFbnRyeSwgWEVOQlVTX0NBQ0hFX1NMQUIsIExpc3RFbnRyeSk7
CisKKyAgICAgICAgT2JqZWN0ID0gQ2FjaGVHZXRPYmplY3RGcm9tU2xhYihTbGFiKTsKKyAgICAg
ICAgaWYgKE9iamVjdCAhPSBOVUxMKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
aWYgKE9iamVjdCA9PSBOVUxMKSB7CisgICAgICAgIFBYRU5CVVNfQ0FDSEVfU0xBQiAgU2xhYjsK
KworICAgICAgICBTbGFiID0gQ2FjaGVDcmVhdGVTbGFiKENhY2hlKTsKKyAgICAgICAgaWYgKFNs
YWIgIT0gTlVMTCkKKyAgICAgICAgICAgIE9iamVjdCA9IENhY2hlR2V0T2JqZWN0RnJvbVNsYWIo
U2xhYik7CisgICAgfQorCisgICAgaWYgKCFMb2NrZWQpCisgICAgICAgIF9fQ2FjaGVSZWxlYXNl
TG9jayhDYWNoZSk7CiAKIGRvbmU6CiAgICAgS2VMb3dlcklycWwoSXJxbCk7CiAKLSAgICAoVk9J
RCkgSW50ZXJsb2NrZWRJbmNyZW1lbnQoJkNhY2hlLT5HZXRDb3VudCk7Ci0KICAgICByZXR1cm4g
T2JqZWN0OwogfQogCiBzdGF0aWMgVk9JRAogQ2FjaGVQdXQoCi0gICAgSU4gIFBJTlRFUkZBQ0Ug
ICAgICBJbnRlcmZhY2UsCi0gICAgSU4gIFBYRU5CVVNfQ0FDSEUgICBDYWNoZSwKLSAgICBJTiAg
UFZPSUQgICAgICAgICAgIE9iamVjdCwKLSAgICBJTiAgQk9PTEVBTiAgICAgICAgIExvY2tlZAor
ICAgIElOICBQSU5URVJGQUNFICAgICAgICAgIEludGVyZmFjZSwKKyAgICBJTiAgUFhFTkJVU19D
QUNIRSAgICAgICBDYWNoZSwKKyAgICBJTiAgUFZPSUQgICAgICAgICAgICAgICBPYmplY3QsCisg
ICAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgTG9ja2VkCiAgICAgKQogewotICAgIEtJUlFMICAg
ICAgICAgICAgICAgSXJxbDsKLSAgICBVTE9ORyAgICAgICAgICAgICAgIEluZGV4OworICAgIEtJ
UlFMICAgICAgICAgICAgICAgICAgIElycWw7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAg
SW5kZXg7CisgICAgUFhFTkJVU19DQUNIRV9NQUdBWklORSAgTWFnYXppbmU7CisgICAgUFhFTkJV
U19DQUNIRV9TTEFCICAgICAgU2xhYjsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICBzdGF0
dXM7CiAKICAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKEludGVyZmFjZSk7CiAKLSAgICAoVk9J
RCkgSW50ZXJsb2NrZWRJbmNyZW1lbnQoJkNhY2hlLT5QdXRDb3VudCk7Ci0KICAgICBLZVJhaXNl
SXJxbChESVNQQVRDSF9MRVZFTCwgJklycWwpOwogICAgIEluZGV4ID0gS2VHZXRDdXJyZW50UHJv
Y2Vzc29yTnVtYmVyRXgoTlVMTCk7CiAKLSAgICBpZiAoQ2FjaGVQdXRPYmplY3RUb01hZ2F6aW5l
KENhY2hlLCBJbmRleCwgT2JqZWN0KSkKKyAgICBBU1NFUlQzVShJbmRleCwgPCwgQ2FjaGUtPk1h
Z2F6aW5lQ291bnQpOworICAgIE1hZ2F6aW5lID0gJkNhY2hlLT5NYWdhemluZVtJbmRleF07CisK
KyAgICBzdGF0dXMgPSBDYWNoZVB1dE9iamVjdFRvTWFnYXppbmUoTWFnYXppbmUsIE9iamVjdCk7
CisKKyAgICBpZiAoTlRfU1VDQ0VTUyhzdGF0dXMpKQogICAgICAgICBnb3RvIGRvbmU7CiAKLSAg
ICBDYWNoZVB1dE9iamVjdFRvTGlzdChDYWNoZSwgT2JqZWN0LCBMb2NrZWQpOworICAgIFNsYWIg
PSAoUFhFTkJVU19DQUNIRV9TTEFCKVBBR0VfQUxJR04oT2JqZWN0KTsKKyAgICBBU1NFUlQzVShT
bGFiLT5NYWdpYywgPT0sIFhFTkJVU19DQUNIRV9TTEFCX01BR0lDKTsKKworICAgIENhY2hlUHV0
T2JqZWN0VG9TbGFiKFNsYWIsIE9iamVjdCk7CisKKyAgICBpZiAoU2xhYi0+QWxsb2NhdGVkICE9
IDApCisgICAgICAgIGdvdG8gZG9uZTsKKworICAgIGlmICghTG9ja2VkKQorICAgICAgICBfX0Nh
Y2hlQWNxdWlyZUxvY2soQ2FjaGUpOworCisgICAgKFZPSUQpIENhY2hlRGVzdHJveVNsYWIoQ2Fj
aGUsIFNsYWIpOworCisgICAgaWYgKCFMb2NrZWQpCisgICAgICAgIF9fQ2FjaGVSZWxlYXNlTG9j
ayhDYWNoZSk7CiAKIGRvbmU6CiAgICAgS2VMb3dlcklycWwoSXJxbCk7CiB9CiAKLXN0YXRpYyBG
T1JDRUlOTElORSBWT0lECi1DYWNoZUZsdXNoTWFnYXppbmVzKAorc3RhdGljIEZPUkNFSU5MSU5F
IE5UU1RBVFVTCitfX0NhY2hlRmlsbCgKICAgICBJTiAgUFhFTkJVU19DQUNIRSAgIENhY2hlCiAg
ICAgKQogewotICAgIFVMT05HICAgICAgICAgICAgICAgSW5kZXg7CisgICAgS0lSUUwgICAgICAg
ICAgICAgICBJcnFsOworICAgIE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOwogCi0gICAgZm9y
IChJbmRleCA9IDA7IEluZGV4IDwgQ2FjaGUtPk1hZ2F6aW5lQ291bnQ7IEluZGV4KyspIHsKLSAg
ICAgICAgUFZPSUQgICBPYmplY3Q7CisgICAgS2VSYWlzZUlycWwoRElTUEFUQ0hfTEVWRUwsICZJ
cnFsKTsKKyAgICBfX0NhY2hlQWNxdWlyZUxvY2soQ2FjaGUpOworCisgICAgd2hpbGUgKENhY2hl
LT5Db3VudCA8IENhY2hlLT5SZXNlcnZhdGlvbikgeworICAgICAgICBQWEVOQlVTX0NBQ0hFX1NM
QUIgIFNsYWI7CisKKyAgICAgICAgU2xhYiA9IENhY2hlQ3JlYXRlU2xhYihDYWNoZSk7CiAKLSAg
ICAgICAgd2hpbGUgKChPYmplY3QgPSBDYWNoZUdldE9iamVjdEZyb21NYWdhemluZShDYWNoZSwg
SW5kZXgpKSAhPSBOVUxMKQotICAgICAgICAgICAgQ2FjaGVQdXRPYmplY3RUb0xpc3QoQ2FjaGUs
IE9iamVjdCwgVFJVRSk7CisgICAgICAgIHN0YXR1cyA9IFNUQVRVU19OT19NRU1PUlk7CisgICAg
ICAgIGlmIChTbGFiID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGZhaWwxOwogICAgIH0KLX0K
IAotc3RhdGljIFZPSUQKLUNhY2hlRGVzdHJveU9iamVjdCgKLSAgICBJTiAgUFhFTkJVU19DQUNI
RSAgICAgICAgICAgQ2FjaGUsCi0gICAgSU4gIFBWT0lEICAgICAgICAgICAgICAgICAgIE9iamVj
dAotICAgICkKLXsKLSAgICBQWEVOQlVTX0NBQ0hFX09CSkVDVF9IRUFERVIgSGVhZGVyOworICAg
IF9fQ2FjaGVSZWxlYXNlTG9jayhDYWNoZSk7CisgICAgS2VMb3dlcklycWwoSXJxbCk7CiAKLSAg
ICBIZWFkZXIgPSBPYmplY3Q7Ci0gICAgLS1IZWFkZXI7Ci0gICAgQVNTRVJUM1UoSGVhZGVyLT5N
YWdpYywgPT0sIFhFTkJVU19DQUNIRV9PQkpFQ1RfSEVBREVSX01BR0lDKTsKKyAgICByZXR1cm4g
U1RBVFVTX1NVQ0NFU1M7CiAKLSAgICBDYWNoZS0+RHRvcihDYWNoZS0+QXJndW1lbnQsIE9iamVj
dCk7CitmYWlsMToKKyAgICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAg
d2hpbGUgKCFJc0xpc3RFbXB0eSgmQ2FjaGUtPlNsYWJMaXN0KSkgeworICAgICAgICBQTElTVF9F
TlRSWSAgICAgICAgIExpc3RFbnRyeSA9IENhY2hlLT5TbGFiTGlzdC5GbGluazsKKyAgICAgICAg
UFhFTkJVU19DQUNIRV9TTEFCICBTbGFiOwogCi0gICAgSGVhZGVyLT5NYWdpYyA9IDA7CisgICAg
ICAgIFNsYWIgPSBDT05UQUlOSU5HX1JFQ09SRChMaXN0RW50cnksIFhFTkJVU19DQUNIRV9TTEFC
LCBMaXN0RW50cnkpOworCisgICAgICAgIChWT0lEKSBDYWNoZURlc3Ryb3lTbGFiKENhY2hlLCBT
bGFiKTsKKyAgICB9CisgICAgQVNTRVJUM1UoQ2FjaGUtPkNvdW50LCA9PSwgMCk7CiAKLSAgICBB
U1NFUlQoSXNaZXJvTWVtb3J5KEhlYWRlciwgc2l6ZW9mIChYRU5CVVNfQ0FDSEVfT0JKRUNUX0hF
QURFUikpKTsKLSAgICBfX0NhY2hlRnJlZShIZWFkZXIpOworICAgIF9fQ2FjaGVSZWxlYXNlTG9j
ayhDYWNoZSk7CisgICAgS2VMb3dlcklycWwoSXJxbCk7CisKKyAgICByZXR1cm4gc3RhdHVzOwog
fQogCi1zdGF0aWMgTlRTVEFUVVMKLUNhY2hlRmlsbCgKLSAgICBJTiAgUFhFTkJVU19DQUNIRSAg
IENhY2hlLAotICAgIElOICBVTE9ORyAgICAgICAgICAgQ291bnQKK3N0YXRpYyBGT1JDRUlOTElO
RSBWT0lECitfX0NhY2hlRW1wdHkoCisgICAgSU4gIFBYRU5CVVNfQ0FDSEUgICBDYWNoZQogICAg
ICkKIHsKLSAgICB3aGlsZSAoQ291bnQgIT0gMCkgewotICAgICAgICBQVk9JRCAgIE9iamVjdCA9
IENhY2hlQ3JlYXRlT2JqZWN0KENhY2hlKTsKKyAgICBLSVJRTCAgICAgICAgICAgICAgIElycWw7
CiAKLSAgICAgICAgaWYgKE9iamVjdCA9PSBOVUxMKQotICAgICAgICAgICAgYnJlYWs7CisgICAg
S2VSYWlzZUlycWwoRElTUEFUQ0hfTEVWRUwsICZJcnFsKTsKKyAgICBfX0NhY2hlQWNxdWlyZUxv
Y2soQ2FjaGUpOworCisgICAgd2hpbGUgKCFJc0xpc3RFbXB0eSgmQ2FjaGUtPlNsYWJMaXN0KSkg
eworICAgICAgICBQTElTVF9FTlRSWSAgICAgICAgIExpc3RFbnRyeSA9IENhY2hlLT5TbGFiTGlz
dC5GbGluazsKKyAgICAgICAgUFhFTkJVU19DQUNIRV9TTEFCICBTbGFiOworICAgICAgICBOVFNU
QVRVUyAgICAgICAgICAgIHN0YXR1czsKIAotICAgICAgICBDYWNoZVB1dE9iamVjdFRvTGlzdChD
YWNoZSwgT2JqZWN0LCBGQUxTRSk7Ci0gICAgICAgIC0tQ291bnQ7CisgICAgICAgIFNsYWIgPSBD
T05UQUlOSU5HX1JFQ09SRChMaXN0RW50cnksIFhFTkJVU19DQUNIRV9TTEFCLCBMaXN0RW50cnkp
OworCisgICAgICAgIHN0YXR1cyA9IENhY2hlRGVzdHJveVNsYWIoQ2FjaGUsIFNsYWIpOworICAg
ICAgICBBU1NFUlQoTlRfU1VDQ0VTUyhzdGF0dXMpKTsKICAgICB9CisgICAgQVNTRVJUM1UoQ2Fj
aGUtPkNvdW50LCA9PSwgMCk7CiAKLSAgICByZXR1cm4gKENvdW50ID09IDApID8gU1RBVFVTX1NV
Q0NFU1MgOiBTVEFUVVNfVU5TVUNDRVNTRlVMOworICAgIF9fQ2FjaGVSZWxlYXNlTG9jayhDYWNo
ZSk7CisgICAgS2VMb3dlcklycWwoSXJxbCk7CiB9CiAKLXN0YXRpYyBWT0lECi1DYWNoZVNwaWxs
KAotICAgIElOICBQWEVOQlVTX0NBQ0hFICAgQ2FjaGUsCi0gICAgSU4gIFVMT05HICAgICAgICAg
ICBDb3VudAorc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQKK19fQ2FjaGVGbHVzaE1hZ2F6aW5lcygK
KyAgICBJTiAgUFhFTkJVU19DQUNIRSAgIENhY2hlCiAgICAgKQogewotICAgIHdoaWxlIChDb3Vu
dCAhPSAwKSB7Ci0gICAgICAgIFBWT0lEICAgT2JqZWN0ID0gQ2FjaGVHZXRPYmplY3RGcm9tTGlz
dChDYWNoZSwgRkFMU0UpOworICAgIFVMT05HICAgICAgICAgICAgICAgSW5kZXg7CiAKLSAgICAg
ICAgaWYgKE9iamVjdCA9PSBOVUxMKQotICAgICAgICAgICAgYnJlYWs7CisgICAgZm9yIChJbmRl
eCA9IDA7IEluZGV4IDwgQ2FjaGUtPk1hZ2F6aW5lQ291bnQ7IEluZGV4KyspIHsKKyAgICAgICAg
UFhFTkJVU19DQUNIRV9NQUdBWklORSAgTWFnYXppbmUgPSAmQ2FjaGUtPk1hZ2F6aW5lW0luZGV4
XTsKKyAgICAgICAgUFZPSUQgICAgICAgICAgICAgICAgICAgT2JqZWN0OworCisgICAgICAgIHdo
aWxlICgoT2JqZWN0ID0gQ2FjaGVHZXRPYmplY3RGcm9tTWFnYXppbmUoTWFnYXppbmUpKSAhPSBO
VUxMKSB7CisgICAgICAgICAgICBQWEVOQlVTX0NBQ0hFX1NMQUIgIFNsYWI7CiAKLSAgICAgICAg
Q2FjaGVEZXN0cm95T2JqZWN0KENhY2hlLCBPYmplY3QpOwotICAgICAgICAtLUNvdW50OworICAg
ICAgICAgICAgU2xhYiA9IChQWEVOQlVTX0NBQ0hFX1NMQUIpUEFHRV9BTElHTihPYmplY3QpOwor
ICAgICAgICAgICAgQVNTRVJUM1UoU2xhYi0+TWFnaWMsID09LCBYRU5CVVNfQ0FDSEVfU0xBQl9N
QUdJQyk7CisKKyAgICAgICAgICAgIENhY2hlUHV0T2JqZWN0VG9TbGFiKFNsYWIsIE9iamVjdCk7
CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTUwNCwxNyArNTYwLDIwIEBAIENhY2hlQ3JlYXRl
KAogICAgICAgICBnb3RvIGZhaWwyOwogCiAgICAgKCpDYWNoZSktPlNpemUgPSBTaXplOworICAg
ICgqQ2FjaGUpLT5SZXNlcnZhdGlvbiA9IFJlc2VydmF0aW9uOwogICAgICgqQ2FjaGUpLT5DdG9y
ID0gQ3RvcjsKICAgICAoKkNhY2hlKS0+RHRvciA9IER0b3I7CiAgICAgKCpDYWNoZSktPkFjcXVp
cmVMb2NrID0gQWNxdWlyZUxvY2s7CiAgICAgKCpDYWNoZSktPlJlbGVhc2VMb2NrID0gUmVsZWFz
ZUxvY2s7CiAgICAgKCpDYWNoZSktPkFyZ3VtZW50ID0gQXJndW1lbnQ7CiAKLSAgICBJbml0aWFs
aXplTGlzdEhlYWQoJigqQ2FjaGUpLT5HZXRMaXN0KTsKKyAgICBJbml0aWFsaXplTGlzdEhlYWQo
JigqQ2FjaGUpLT5TbGFiTGlzdCk7CiAKLSAgICBzdGF0dXMgPSAgQ2FjaGVGaWxsKCpDYWNoZSwg
UmVzZXJ2YXRpb24pOwotICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQotICAgICAgICBnb3Rv
IGZhaWwzOworICAgIGlmICgoKkNhY2hlKS0+UmVzZXJ2YXRpb24gIT0gMCkgeworICAgICAgICBz
dGF0dXMgPSBfX0NhY2hlRmlsbCgqQ2FjaGUpOworICAgICAgICBpZiAoIU5UX1NVQ0NFU1Moc3Rh
dHVzKSkKKyAgICAgICAgICAgIGdvdG8gZmFpbDM7CisgICAgfQogCiAgICAgKCpDYWNoZSktPk1h
Z2F6aW5lQ291bnQgPSBLZVF1ZXJ5TWF4aW11bVByb2Nlc3NvckNvdW50RXgoQUxMX1BST0NFU1NP
Ul9HUk9VUFMpOwogICAgICgqQ2FjaGUpLT5NYWdhemluZSA9IF9fQ2FjaGVBbGxvY2F0ZShzaXpl
b2YgKFhFTkJVU19DQUNIRV9NQUdBWklORSkgKiAoKkNhY2hlKS0+TWFnYXppbmVDb3VudCk7CkBA
IC01MjMsOCArNTgyLDYgQEAgQ2FjaGVDcmVhdGUoCiAgICAgaWYgKCgqQ2FjaGUpLT5NYWdhemlu
ZSA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWw0OwogCi0gICAgKCpDYWNoZSktPlJlc2VydmF0
aW9uID0gUmVzZXJ2YXRpb247Ci0KICAgICBLZUFjcXVpcmVTcGluTG9jaygmQ29udGV4dC0+TG9j
aywgJklycWwpOwogICAgIEluc2VydFRhaWxMaXN0KCZDb250ZXh0LT5MaXN0LCAmKCpDYWNoZSkt
Pkxpc3RFbnRyeSk7CiAgICAgS2VSZWxlYXNlU3BpbkxvY2soJkNvbnRleHQtPkxvY2ssIElycWwp
OwpAQCAtNTM4LDEwICs1OTUsMTMgQEAgZmFpbDQ6CiAKICAgICAoKkNhY2hlKS0+TWFnYXppbmVD
b3VudCA9IDA7CiAKKyAgICBfX0NhY2hlRW1wdHkoKkNhY2hlKTsKKwogZmFpbDM6CiAgICAgRXJy
b3IoImZhaWwzXG4iKTsKIAotICAgIFJ0bFplcm9NZW1vcnkoJigqQ2FjaGUpLT5HZXRMaXN0LCBz
aXplb2YgKExJU1RfRU5UUlkpKTsKKyAgICBBU1NFUlQoSXNMaXN0RW1wdHkoJigqQ2FjaGUpLT5T
bGFiTGlzdCkpOworICAgIFJ0bFplcm9NZW1vcnkoJigqQ2FjaGUpLT5TbGFiTGlzdCwgc2l6ZW9m
IChMSVNUX0VOVFJZKSk7CiAKICAgICAoKkNhY2hlKS0+QXJndW1lbnQgPSBOVUxMOwogICAgICgq
Q2FjaGUpLT5SZWxlYXNlTG9jayA9IE5VTEw7CkBAIC01ODEsMjMgKzY0MSwxOCBAQCBDYWNoZURl
c3Ryb3koCiAKICAgICBSdGxaZXJvTWVtb3J5KCZDYWNoZS0+TGlzdEVudHJ5LCBzaXplb2YgKExJ
U1RfRU5UUlkpKTsKIAotICAgIEFTU0VSVDNVKENhY2hlLT5QdXRDb3VudCwgPT0sIENhY2hlLT5H
ZXRDb3VudCk7Ci0gICAgQ2FjaGUtPlB1dENvdW50ID0gMDsKLSAgICBDYWNoZS0+R2V0Q291bnQg
PSAwOwotCi0gICAgQ2FjaGUtPlJlc2VydmF0aW9uID0gMDsKLSAgICBDYWNoZUZsdXNoTWFnYXpp
bmVzKENhY2hlKTsKKyAgICBfX0NhY2hlRmx1c2hNYWdhemluZXMoQ2FjaGUpOwogCiAgICAgQVNT
RVJUKElzWmVyb01lbW9yeShDYWNoZS0+TWFnYXppbmUsIHNpemVvZiAoWEVOQlVTX0NBQ0hFX01B
R0FaSU5FKSAqIENhY2hlLT5NYWdhemluZUNvdW50KSk7CiAgICAgX19DYWNoZUZyZWUoQ2FjaGUt
Pk1hZ2F6aW5lKTsKICAgICBDYWNoZS0+TWFnYXppbmUgPSBOVUxMOwogICAgIENhY2hlLT5NYWdh
emluZUNvdW50ID0gMDsKIAotICAgIENhY2hlU3BpbGwoQ2FjaGUsIENhY2hlLT5MaXN0Q291bnQp
OwotICAgIEFTU0VSVDNVKENhY2hlLT5MaXN0Q291bnQsID09LCAwKTsKKyAgICBfX0NhY2hlRW1w
dHkoQ2FjaGUpOworICAgIENhY2hlLT5SZXNlcnZhdGlvbiA9IDA7CiAKLSAgICBBU1NFUlQoSXNM
aXN0RW1wdHkoJkNhY2hlLT5HZXRMaXN0KSk7Ci0gICAgUnRsWmVyb01lbW9yeSgmQ2FjaGUtPkdl
dExpc3QsIHNpemVvZiAoTElTVF9FTlRSWSkpOworICAgIEFTU0VSVChJc0xpc3RFbXB0eSgmQ2Fj
aGUtPlNsYWJMaXN0KSk7CisgICAgUnRsWmVyb01lbW9yeSgmQ2FjaGUtPlNsYWJMaXN0LCBzaXpl
b2YgKExJU1RfRU5UUlkpKTsKIAogICAgIENhY2hlLT5Bcmd1bWVudCA9IE5VTEw7CiAgICAgQ2Fj
aGUtPlJlbGVhc2VMb2NrID0gTlVMTDsKQEAgLTY0Miw3OSArNjk3LDEyIEBAIENhY2hlRGVidWdD
YWxsYmFjaygKICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udGV4dC0+RGVidWdJbnRlcmZh
Y2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIi0gJXM6IENvdW50ID0gJWQgKFJlc2VydmF0
aW9uID0gJWQpXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIENhY2hlLT5OYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIENhY2hlLT5MaXN0Q291bnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgQ2FjaGUtPkNvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgIENhY2hlLT5S
ZXNlcnZhdGlvbik7CiAgICAgICAgIH0KICAgICB9CiB9CiAKLSNkZWZpbmUgVElNRV9VUyhfdXMp
ICAgICAgICAoKF91cykgKiAxMCkKLSNkZWZpbmUgVElNRV9NUyhfbXMpICAgICAgICAoVElNRV9V
UygoX21zKSAqIDEwMDApKQotI2RlZmluZSBUSU1FX1MoX3MpICAgICAgICAgIChUSU1FX01TKChf
cykgKiAxMDAwKSkKLSNkZWZpbmUgVElNRV9SRUxBVElWRShfdCkgICAoLShfdCkpCi0KLSNkZWZp
bmUgWEVOQlVTX0NBQ0hFX01PTklUT1JfUEVSSU9EIDUKLQotc3RhdGljIE5UU1RBVFVTCi1DYWNo
ZU1vbml0b3IoCi0gICAgSU4gIFBYRU5CVVNfVEhSRUFEICAgICAgU2VsZiwKLSAgICBJTiAgUFZP
SUQgICAgICAgICAgICAgICBfQ29udGV4dAotICAgICkKLXsKLSAgICBQWEVOQlVTX0NBQ0hFX0NP
TlRFWFQgICBDb250ZXh0ID0gX0NvbnRleHQ7Ci0gICAgUEtFVkVOVCAgICAgICAgICAgICAgICAg
RXZlbnQ7Ci0gICAgTEFSR0VfSU5URUdFUiAgICAgICAgICAgVGltZW91dDsKLSAgICBQTElTVF9F
TlRSWSAgICAgICAgICAgICBMaXN0RW50cnk7Ci0KLSAgICBUcmFjZSgiPT09PT5cbiIpOwotCi0g
ICAgRXZlbnQgPSBUaHJlYWRHZXRFdmVudChTZWxmKTsKLQotICAgIFRpbWVvdXQuUXVhZFBhcnQg
PSBUSU1FX1JFTEFUSVZFKFRJTUVfUyhYRU5CVVNfQ0FDSEVfTU9OSVRPUl9QRVJJT0QpKTsKLQot
ICAgIGZvciAoOzspIHsKLSAgICAgICAgS0lSUUwgICBJcnFsOwotCi0gICAgICAgIChWT0lEKSBL
ZVdhaXRGb3JTaW5nbGVPYmplY3QoRXZlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRXhlY3V0aXZlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEtlcm5lbE1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRpbWVvdXQpOwotICAgICAg
ICBLZUNsZWFyRXZlbnQoRXZlbnQpOwotCi0gICAgICAgIGlmIChUaHJlYWRJc0FsZXJ0ZWQoU2Vs
ZikpCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBLZUFjcXVpcmVTcGluTG9jaygmQ29u
dGV4dC0+TG9jaywgJklycWwpOwotCi0gICAgICAgIGlmIChDb250ZXh0LT5SZWZlcmVuY2VzID09
IDApCi0gICAgICAgICAgICBnb3RvIGxvb3A7Ci0KLSAgICAgICAgZm9yIChMaXN0RW50cnkgPSBD
b250ZXh0LT5MaXN0LkZsaW5rOwotICAgICAgICAgICAgIExpc3RFbnRyeSAhPSAmQ29udGV4dC0+
TGlzdDsKLSAgICAgICAgICAgICBMaXN0RW50cnkgPSBMaXN0RW50cnktPkZsaW5rKSB7Ci0gICAg
ICAgICAgICBQWEVOQlVTX0NBQ0hFICAgQ2FjaGU7Ci0gICAgICAgICAgICBVTE9ORyAgICAgICAg
ICAgQ291bnQ7Ci0KLSAgICAgICAgICAgIENhY2hlID0gQ09OVEFJTklOR19SRUNPUkQoTGlzdEVu
dHJ5LCBYRU5CVVNfQ0FDSEUsIExpc3RFbnRyeSk7Ci0KLSAgICAgICAgICAgIENvdW50ID0gQ2Fj
aGUtPkxpc3RDb3VudDsKLQotICAgICAgICAgICAgaWYgKENvdW50IDwgQ2FjaGUtPlJlc2VydmF0
aW9uKQotICAgICAgICAgICAgICAgIENhY2hlRmlsbChDYWNoZSwgQ2FjaGUtPlJlc2VydmF0aW9u
IC0gQ291bnQpOwotICAgICAgICAgICAgZWxzZSBpZiAoQ291bnQgPiBDYWNoZS0+UmVzZXJ2YXRp
b24pCi0gICAgICAgICAgICAgICAgQ2FjaGVTcGlsbChDYWNoZSwgKENvdW50IC0gQ2FjaGUtPlJl
c2VydmF0aW9uICsgMSkgLyAyKTsKLSAgICAgICAgfQotCi1sb29wOgotICAgICAgICBLZVJlbGVh
c2VTcGluTG9jaygmQ29udGV4dC0+TG9jaywgSXJxbCk7Ci0gICAgfQotCi0gICAgVHJhY2UoIj09
PT0+XG4iKTsKLQotICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKLX0KLQogc3RhdGljIE5UU1RB
VFVTCiBDYWNoZUFjcXVpcmUoCiAgICAgUElOVEVSRkFDRSAgICAgICAgICAgICAgSW50ZXJmYWNl
CkBAIC04MzMsMjUgKzgyMSwxMiBAQCBDYWNoZUluaXRpYWxpemUoCiAgICAgSW5pdGlhbGl6ZUxp
c3RIZWFkKCYoKkNvbnRleHQpLT5MaXN0KTsKICAgICBLZUluaXRpYWxpemVTcGluTG9jaygmKCpD
b250ZXh0KS0+TG9jayk7CiAKLSAgICBzdGF0dXMgPSBUaHJlYWRDcmVhdGUoQ2FjaGVNb25pdG9y
LCAqQ29udGV4dCwgJigqQ29udGV4dCktPk1vbml0b3JUaHJlYWQpOwotICAgIGlmICghTlRfU1VD
Q0VTUyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWwyOwotCiAgICAgKCpDb250ZXh0KS0+RmRv
ID0gRmRvOwogCiAgICAgVHJhY2UoIjw9PT09XG4iKTsKIAogICAgIHJldHVybiBTVEFUVVNfU1VD
Q0VTUzsKIAotZmFpbDI6Ci0gICAgRXJyb3IoImZhaWwyXG4iKTsKLQotICAgIFJ0bFplcm9NZW1v
cnkoJigqQ29udGV4dCktPkxvY2ssIHNpemVvZiAoS1NQSU5fTE9DSykpOwotICAgIFJ0bFplcm9N
ZW1vcnkoJigqQ29udGV4dCktPkxpc3QsIHNpemVvZiAoTElTVF9FTlRSWSkpOwotCi0gICAgUnRs
WmVyb01lbW9yeSgmKCpDb250ZXh0KS0+RGVidWdJbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAg
ICBzaXplb2YgKFhFTkJVU19ERUJVR19JTlRFUkZBQ0UpKTsKLQogZmFpbDE6CiAgICAgRXJyb3Io
ImZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsKIApAQCAtOTEzLDEwICs4ODgsNiBAQCBDYWNoZVRl
YXJkb3duKAogCiAgICAgQ29udGV4dC0+RmRvID0gTlVMTDsKIAotICAgIFRocmVhZEFsZXJ0KENv
bnRleHQtPk1vbml0b3JUaHJlYWQpOwotICAgIFRocmVhZEpvaW4oQ29udGV4dC0+TW9uaXRvclRo
cmVhZCk7Ci0gICAgQ29udGV4dC0+TW9uaXRvclRocmVhZCA9IE5VTEw7Ci0KICAgICBSdGxaZXJv
TWVtb3J5KCZDb250ZXh0LT5Mb2NrLCBzaXplb2YgKEtTUElOX0xPQ0spKTsKICAgICBSdGxaZXJv
TWVtb3J5KCZDb250ZXh0LT5MaXN0LCBzaXplb2YgKExJU1RfRU5UUlkpKTsKIApkaWZmIC0tZ2l0
IGEvdnMyMDE1L3hlbmJ1cy94ZW5idXMudmN4cHJvaiBiL3ZzMjAxNS94ZW5idXMveGVuYnVzLnZj
eHByb2oKaW5kZXggMDM4ZDNkNy4uNjVlNDE2YyAxMDA2NDQKLS0tIGEvdnMyMDE1L3hlbmJ1cy94
ZW5idXMudmN4cHJvagorKysgYi92czIwMTUveGVuYnVzL3hlbmJ1cy52Y3hwcm9qCkBAIC0yMyw3
ICsyMyw3IEBACiAgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X19NT0RVTEVfXz0iWEVO
QlVTIjtQT09MX05YX09QVElOPTE7TlRfUFJPQ0VTU09SX0dST1VQUzslKFByZXByb2Nlc3NvckRl
ZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CiAgICAgICA8QWRkaXRpb25hbElu
Y2x1ZGVEaXJlY3Rvcmllcz4kKFdpbmRvd3NTZGtEaXIpXGluY2x1ZGVca207Li5cLi5caW5jbHVk
ZTsuLlwuLlxpbmNsdWRlXHhlbjsuLlwuLlxzcmNcY29tbW9uOzwvQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz4KICAgICAgIDxXYXJuaW5nTGV2ZWw+RW5hYmxlQWxsV2FybmluZ3M8L1dhcm5p
bmdMZXZlbD4KLSAgICAgIDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40NDY0OzQ3MTE7NDU0ODs0
ODIwOzQ2Njg7NDI1NTs2MDAxOzYwNTQ7MjgxOTY7MzAwMzA7MzAwMjk7JShEaXNhYmxlU3BlY2lm
aWNXYXJuaW5ncyk8L0Rpc2FibGVTcGVjaWZpY1dhcm5pbmdzPgorICAgICAgPERpc2FibGVTcGVj
aWZpY1dhcm5pbmdzPjQxNDY7NDQ2NDs0NzExOzQ1NDg7NDgyMDs0NjY4OzQyNTU7NjAwMTs2MDU0
OzI4MTk2OzMwMDMwOzMwMDI5OyUoRGlzYWJsZVNwZWNpZmljV2FybmluZ3MpPC9EaXNhYmxlU3Bl
Y2lmaWNXYXJuaW5ncz4KICAgICAgIDxNdWx0aVByb2Nlc3NvckNvbXBpbGF0aW9uPnRydWU8L011
bHRpUHJvY2Vzc29yQ29tcGlsYXRpb24+CiAgICAgICA8RW5hYmxlUFJFZmFzdD50cnVlPC9FbmFi
bGVQUkVmYXN0PgogICAgIDwvQ2xDb21waWxlPgpkaWZmIC0tZ2l0IGEvdnMyMDE3L3hlbmJ1cy94
ZW5idXMudmN4cHJvaiBiL3ZzMjAxNy94ZW5idXMveGVuYnVzLnZjeHByb2oKaW5kZXggZjNlNjJl
Yy4uYjQxOGEyNCAxMDA2NDQKLS0tIGEvdnMyMDE3L3hlbmJ1cy94ZW5idXMudmN4cHJvagorKysg
Yi92czIwMTcveGVuYnVzL3hlbmJ1cy52Y3hwcm9qCkBAIC0yNCw3ICsyNCw3IEBACiAgICAgICA8
SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KICAgICAgIDxBZGRp
dGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoV2luZG93c1Nka0RpcilcaW5jbHVkZVxrbTsuLlwu
LlxpbmNsdWRlOy4uXC4uXGluY2x1ZGVceGVuOy4uXC4uXHNyY1xjb21tb247PC9BZGRpdGlvbmFs
SW5jbHVkZURpcmVjdG9yaWVzPgogICAgICAgPFdhcm5pbmdMZXZlbD5FbmFibGVBbGxXYXJuaW5n
czwvV2FybmluZ0xldmVsPgotICAgICAgPERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPjQ0NjQ7NDcx
MTs0NzcwOzQ1NDg7NDgyMDs0NjY4OzQyNTU7NjAwMTs2MDU0OzI4MTk2OzMwMDMwOzMwMDI5OyUo
RGlzYWJsZVNwZWNpZmljV2FybmluZ3MpPC9EaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4KKyAgICAg
IDxEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz40MTQ2OzQ0NjQ7NDcxMTs0NzcwOzQ1NDg7NDgyMDs0
NjY4OzQyNTU7NjAwMTs2MDU0OzI4MTk2OzMwMDMwOzMwMDI5OyUoRGlzYWJsZVNwZWNpZmljV2Fy
bmluZ3MpPC9EaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz4KICAgICAgIDxNdWx0aVByb2Nlc3NvckNv
bXBpbGF0aW9uPnRydWU8L011bHRpUHJvY2Vzc29yQ29tcGlsYXRpb24+CiAgICAgICA8RW5hYmxl
UFJFZmFzdD50cnVlPC9FbmFibGVQUkVmYXN0PgogICAgIDwvQ2xDb21waWxlPgotLSAKMi41LjMK
CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYt
ZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw
czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jun 29 15:24:39 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Jun 2018 15:24:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fYvGH-0004kD-UZ; Fri, 29 Jun 2018 15:24:37 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=l9mw=jp=gmail.com=illuminoid@srs-us1.protection.inumbo.net>)
 id 1fYvGG-0004k5-W4
 for win-pv-devel@lists.xenproject.org; Fri, 29 Jun 2018 15:24:37 +0000
X-Inumbo-ID: 85ce443b-7bb0-11e8-8089-bc764e045a96
Received: from mail-ed1-x52a.google.com (unknown [2a00:1450:4864:20::52a])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id 85ce443b-7bb0-11e8-8089-bc764e045a96;
 Fri, 29 Jun 2018 17:24:33 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id g15-v6so3060198edr.12
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Jun 2018 08:24:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:from:to:cc:subject:date:message-id;
 bh=ktQVVrC/CtyVDl6/YOfup3AzOeouLsBvhgIXwLiESSc=;
 b=T/cNvbbBL+nvzdjHF+uEgEOYvgmwUKA6zb6sHbKO9ob/kYBYyCkJZHDW5sHu1j0/IA
 u0BRAsjal6x2ZjmtWwswIJokCPTtSoGYtXuIiWQ1kFNfQlKMiD+GFtn78b53L3FJuBXA
 T51KFXz/0wOU+SzG3UNf/Vosi0VFz6tHvJbUwBRteoIjL9V0642Wqq8lso1BKT65sr30
 ChXRav/ckYwvJ/oDXmZ8Q010sDq2IgH6SiwSkl9UbKB9NvIV2Mk7gjsbQYLpb4vN6e4N
 aciio2qd3oPxb901Kz34JuwVHxoywAdBhhJpNtjdq/DieFD/lQ8HW274UT7NKLAT+JT5
 epig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:from:to:cc:subject:date:message-id;
 bh=ktQVVrC/CtyVDl6/YOfup3AzOeouLsBvhgIXwLiESSc=;
 b=pePqeTRW8Aaw69dgyAnCyfDUqzlN/b7z5urmyggAuBIG/rm+pNoCEdKRGlQ/ugLVPr
 ec6PrFdzXsH3A0nxV7VcapCB7GmCLJUHqVVfhoptIakaggRgn3hch6biAyv5APWrj9+0
 8c0g9HGdvV4o24krFWrw7MFjcwWdfVO7uyS6wfacM0RiEhXkvaKqoM+xIaPi2pmY3tzl
 DEBdots24NSK/ntnQWTaroFQ3zYoZO3NNwXoNzYJ1nMkFkVIYvGpr81hDm2MTptG8GwY
 LcI8rbEXZJjNLgBC2XcJa4Im6OgOkgwmFbJPnKO0ZcRs6Q+RbYXboKI/r0wVPMOtVU24
 p+4A==
X-Gm-Message-State: APt69E0n2yCmgredBub9M8aemjONZaaCnJY6Ybhwb9GOYMYp90qMKr74
 e+1IUNtUCkK0CIpDS1/Khz1lcxE=
X-Google-Smtp-Source: AAOMgpfYVssmtEgZ5TQk29QpitUMGoqNyjX7LLDyxjbcV/DlFLNr8aFWj9jEmE2/ZzoAXZEzyHcFWg==
X-Received: by 2002:a50:e8c1:: with SMTP id
 l1-v6mr13338849edn.39.1530285873744; 
 Fri, 29 Jun 2018 08:24:33 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id y26-v6sm3792310edr.51.2018.06.29.08.24.32
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Fri, 29 Jun 2018 08:24:33 -0700 (PDT)
From: Ben Chalmers <ben.ch@lmers.co.uk>
X-Google-Original-From: Ben Chalmers <Ben.Chalmers@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 29 Jun 2018 16:24:27 +0100
Message-Id: <20180629152427.24472-1-Ben.Chalmers@citrix.com>
X-Mailer: git-send-email 2.10.1.windows.1
Subject: [win-pv-devel] [PATCH] Replace uses of MmAllocatePagesForMdlEx in
 __AllocatePage
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: "Ben . Chalmers" <ben.chalmers@citrix.com>
MIME-Version: 1.0
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>

V2luZG93cyBhcHBlYXJzIHRvIGhhdmUgYW4gZWRnZSBjYXNlIGJ1ZyBpbiB3aGljaCB6ZXJvaW5n
Cm1lbW9yeSB1c2luZyBNbUFsbG9jYXRlUEFnZXNGb3JNZGxFeCAod2hpY2ggaW4gV2luIDEwIDE4
MDMKaGFwcGVucyBldmVuIGlmIHlvdSBzcGVjaWZ5IE1NX0RPTlRfWkVST19BTExPQ0FUSU9OKSBj
YW4gY2F1c2UKYSBCU09EIDEzOSAxZS4KClRoaXMgY29tbWl0IHVzZXJzIE1tQWxsb2NhdGVDb250
aW5ndW91c01lbW9yeVNwZWNpZnlDYWNoZQp0byBhbGxvY2F0ZSBtZW1vcnkgaW5zdGVhZCwgdGhl
biBidWlsZHMgYW5kIE1kbCB0byB3cmFwCml0IHVwLgoKX19BbGxvY2F0ZVBhZ2VzIGlzIGxlZnQg
dW5jaGFuZ2VkIChhcyB3ZSBkb24ndCB3YW50CnRvIGFsbG9jYXRlIG11bHRpcGxlIGNvbnRpZ3Vv
dXMgcGFnZXMpLiAgVGhpcyBpc3N1ZQpoYXMgbm90IGJlZW4gc2VlbiBvdXRzaWRlIG9mIHhlbnZp
ZiBjYWxscyB0bwpfX0FsbG9jYXRlUGFnZSBhbmQgd2UgZXhwZWN0IGEgZml4IHRvIHRoZSB1bmRl
cmx5aW5nCldpbmRvd3MgcHJvYmxlbSBpbiB0aGUgbmVhciBmdXR1cmUKClNpZ25lZC1vZmYtYnk6
IEJlbi5DaGFsbWVycyA8YmVuLmNoYWxtZXJzQGNpdHJpeC5jb20+Ci0tLQogc3JjL3hlbnZpZi9j
b250cm9sbGVyLmMgIHwgMTIgKysrKystLQogc3JjL3hlbnZpZi9yZWNlaXZlci5jICAgIHwgNTYg
KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiBzcmMveGVudmlmL3RyYW5zbWl0dGVyLmMg
fCAyNCArKysrKysrKystLS0tCiBzcmMveGVudmlmL3V0aWwuaCAgICAgICAgfCA4OSArKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDQgZmlsZXMgY2hhbmdl
ZCwgMTUxIGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94
ZW52aWYvY29udHJvbGxlci5jIGIvc3JjL3hlbnZpZi9jb250cm9sbGVyLmMKaW5kZXggMzU5MDFh
Mi4uMzdhYmIxZCAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9jb250cm9sbGVyLmMKKysrIGIvc3Jj
L3hlbnZpZi9jb250cm9sbGVyLmMKQEAgLTQ2OSw3ICs0NjksOSBAQCBDb250cm9sbGVyQ29ubmVj
dCgKICAgICBpZiAoQ29udHJvbGxlci0+TWRsID09IE5VTEwpCiAgICAgICAgIGdvdG8gZmFpbDc7
CiAKLSAgICBBU1NFUlQoQ29udHJvbGxlci0+TWRsLT5NZGxGbGFncyAmIE1ETF9NQVBQRURfVE9f
U1lTVEVNX1ZBKTsKKyAgICBBU1NFUlQoQ29udHJvbGxlci0+TWRsLT5NZGxGbGFncyAKKyAgICAg
ICAgICAgICYgKE1ETF9NQVBQRURfVE9fU1lTVEVNX1ZBIAorICAgICAgICAgICAgICAgIHwgTURM
X1NPVVJDRV9JU19OT05QQUdFRF9QT09MKSk7CiAgICAgQ29udHJvbGxlci0+U2hhcmVkID0gQ29u
dHJvbGxlci0+TWRsLT5NYXBwZWRTeXN0ZW1WYTsKICAgICBBU1NFUlQoQ29udHJvbGxlci0+U2hh
cmVkICE9IE5VTEwpOwogCkBAIC05MDQsNyArOTA2LDkgQEAgQ29udHJvbGxlclNldEhhc2hLZXko
CiAgICAgaWYgKE1kbCA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWwxOwogCi0gICAgQVNTRVJU
KE1kbC0+TWRsRmxhZ3MgJiBNRExfTUFQUEVEX1RPX1NZU1RFTV9WQSk7CisgICAgQVNTRVJUKE1k
bC0+TWRsRmxhZ3MgCisgICAgICAgICAgICAmIChNRExfTUFQUEVEX1RPX1NZU1RFTV9WQSAKKyAg
ICAgICAgICAgICAgICB8IE1ETF9TT1VSQ0VfSVNfTk9OUEFHRURfUE9PTCkpOwogICAgIEJ1ZmZl
ciA9IE1kbC0+TWFwcGVkU3lzdGVtVmE7CiAgICAgQVNTRVJUKEJ1ZmZlciAhPSBOVUxMKTsKIApA
QCAtMTA4Myw3ICsxMDg3LDkgQEAgQ29udHJvbGxlclNldEhhc2hNYXBwaW5nKAogICAgIGlmIChN
ZGwgPT0gTlVMTCkKICAgICAgICAgZ290byBmYWlsMjsKIAotICAgIEFTU0VSVChNZGwtPk1kbEZs
YWdzICYgTURMX01BUFBFRF9UT19TWVNURU1fVkEpOworICAgIEFTU0VSVChNZGwtPk1kbEZsYWdz
IAorICAgICAgICAgICAgJiAoTURMX01BUFBFRF9UT19TWVNURU1fVkEgCisgICAgICAgICAgICAg
ICAgfCBNRExfU09VUkNFX0lTX05PTlBBR0VEX1BPT0wpKTsKICAgICBCdWZmZXIgPSBNZGwtPk1h
cHBlZFN5c3RlbVZhOwogICAgIEFTU0VSVChCdWZmZXIgIT0gTlVMTCk7CiAKZGlmZiAtLWdpdCBh
L3NyYy94ZW52aWYvcmVjZWl2ZXIuYyBiL3NyYy94ZW52aWYvcmVjZWl2ZXIuYwppbmRleCBhNmIz
YWQyLi5hYjNlNDE2IDEwMDY0NAotLS0gYS9zcmMveGVudmlmL3JlY2VpdmVyLmMKKysrIGIvc3Jj
L3hlbnZpZi9yZWNlaXZlci5jCkBAIC0xNjksNyArMTY5LDkgQEAgX19SZWNlaXZlclBhY2tldE1k
bEluaXQoCiAgICAgUGFja2V0LT5NZGwuU2l6ZSA9IHNpemVvZiAoTURMKSArIHNpemVvZiAoUEZO
X05VTUJFUik7CiAgICAgUGFja2V0LT5NZGwuTWRsRmxhZ3MgPSBNZGwtPk1kbEZsYWdzOwogCi0g
ICAgQVNTRVJUKE1kbC0+TWRsRmxhZ3MgJiBNRExfTUFQUEVEX1RPX1NZU1RFTV9WQSk7CisgICAg
QVNTRVJUKE1kbC0+TWRsRmxhZ3MgJgorICAgICAgICAgICAoTURMX01BUFBFRF9UT19TWVNURU1f
VkEgfAorICAgICAgICAgICAgTURMX1NPVVJDRV9JU19OT05QQUdFRF9QT09MKSk7CiAgICAgUGFj
a2V0LT5NZGwuU3RhcnRWYSA9IE1kbC0+U3RhcnRWYTsKICAgICBQYWNrZXQtPk1kbC5NYXBwZWRT
eXN0ZW1WYSA9IE1kbC0+TWFwcGVkU3lzdGVtVmE7CiAKQEAgLTQwNiw3ICs0MDgsOSBAQCBSZWNl
aXZlclJpbmdQcm9jZXNzVGFnKAogCiAgICAgUGF5bG9hZExlbmd0aCA9IFBhY2tldC0+TGVuZ3Ro
IC0gSW5mby0+TGVuZ3RoOwogCi0gICAgQVNTRVJUKFBhY2tldC0+TWRsLk1kbEZsYWdzICYgTURM
X01BUFBFRF9UT19TWVNURU1fVkEpOworICAgIEFTU0VSVChQYWNrZXQtPk1kbC5NZGxGbGFncyAm
IAorICAgICAgICAgICAoTURMX01BUFBFRF9UT19TWVNURU1fVkEgfCAKKyAgICAgICAgICAgIE1E
TF9TT1VSQ0VfSVNfTk9OUEFHRURfUE9PTCkpOwogICAgIEJhc2VWYSA9IFBhY2tldC0+TWRsLk1h
cHBlZFN5c3RlbVZhOwogICAgIEFTU0VSVChCYXNlVmEgIT0gTlVMTCk7CiAKQEAgLTQ5Nyw3ICs1
MDEsOSBAQCBSZWNlaXZlclJpbmdQcm9jZXNzQ2hlY2tzdW0oCiAgICAgaWYgKEluZm8tPklwSGVh
ZGVyLkxlbmd0aCA9PSAwKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoUGFja2V0LT5N
ZGwuTWRsRmxhZ3MgJiBNRExfTUFQUEVEX1RPX1NZU1RFTV9WQSk7CisgICAgQVNTRVJUKFBhY2tl
dC0+TWRsLk1kbEZsYWdzICYKKyAgICAgICAgICAgKE1ETF9NQVBQRURfVE9fU1lTVEVNX1ZBIHwK
KyAgICAgICAgICAgIE1ETF9TT1VSQ0VfSVNfTk9OUEFHRURfUE9PTCkpOwogICAgIEJhc2VWYSA9
IFBhY2tldC0+TWRsLk1hcHBlZFN5c3RlbVZhOwogICAgIEFTU0VSVChCYXNlVmEgIT0gTlVMTCk7
CiAKQEAgLTY1NCw3ICs2NjAsOSBAQCBSZWNlaXZlclJpbmdQdWxsdXAoCiAgICAgICAgIFBVQ0hB
UiAgU291cmNlVmE7CiAgICAgICAgIFVMT05HICAgQ29weUxlbmd0aDsKIAotICAgICAgICBBU1NF
UlQoTWRsLT5NZGxGbGFncyAmIE1ETF9NQVBQRURfVE9fU1lTVEVNX1ZBKTsKKyAgICAgICAgQVNT
RVJUKE1kbC0+TWRsRmxhZ3MgJiAKKyAgICAgICAgICAgICAgIChNRExfTUFQUEVEX1RPX1NZU1RF
TV9WQSB8CisgICAgICAgICAgICAgICAgTURMX1NPVVJDRV9JU19OT05QQUdFRF9QT09MKSk7CiAg
ICAgICAgIFNvdXJjZVZhID0gTWRsLT5NYXBwZWRTeXN0ZW1WYTsKICAgICAgICAgQVNTRVJUKFNv
dXJjZVZhICE9IE5VTEwpOwogCkBAIC03MDAsNyArNzA4LDkgQEAgX19SZWNlaXZlclJpbmdQdWxs
dXBQYWNrZXQoCiAgICAgWEVOVklGX1BBQ0tFVF9QQVlMT0FEICAgICAgIFBheWxvYWQ7CiAgICAg
VUxPTkcgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aDsKIAotICAgIEFTU0VSVChQYWNrZXQt
Pk1kbC5NZGxGbGFncyAmIE1ETF9NQVBQRURfVE9fU1lTVEVNX1ZBKTsKKyAgICBBU1NFUlQoUGFj
a2V0LT5NZGwuTWRsRmxhZ3MgCisgICAgICAgICAgICAmIChNRExfTUFQUEVEX1RPX1NZU1RFTV9W
QSAKKyAgICAgICAgICAgICAgICB8IE1ETF9TT1VSQ0VfSVNfTk9OUEFHRURfUE9PTCkpOwogICAg
IEJhc2VWYSA9IFBhY2tldC0+TWRsLk1hcHBlZFN5c3RlbVZhOwogICAgIEFTU0VSVChCYXNlVmEg
IT0gTlVMTCk7CiAKQEAgLTc0NCw3ICs3NTQsOSBAQCBfX1JlY2VpdmVyUmluZ0J1aWxkU2VnbWVu
dCgKIAogICAgIEluZm8gPSAmUGFja2V0LT5JbmZvOwogCi0gICAgQVNTRVJUKFBhY2tldC0+TWRs
Lk1kbEZsYWdzICYgTURMX01BUFBFRF9UT19TWVNURU1fVkEpOworICAgIEFTU0VSVChQYWNrZXQt
Pk1kbC5NZGxGbGFncyAmCisgICAgICAgICAgIChNRExfTUFQUEVEX1RPX1NZU1RFTV9WQSB8Cisg
ICAgICAgICAgICBNRExfU09VUkNFX0lTX05PTlBBR0VEX1BPT0wpKTsKICAgICBJbmZvVmEgPSBQ
YWNrZXQtPk1kbC5NYXBwZWRTeXN0ZW1WYTsKICAgICBBU1NFUlQoSW5mb1ZhICE9IE5VTEwpOwog
CkBAIC03NjcsNyArNzc5LDkgQEAgX19SZWNlaXZlclJpbmdCdWlsZFNlZ21lbnQoCiAKICAgICBN
ZGwgPSAmU2VnbWVudC0+TWRsOwogCi0gICAgQVNTRVJUKE1kbC0+TWRsRmxhZ3MgJiBNRExfTUFQ
UEVEX1RPX1NZU1RFTV9WQSk7CisgICAgQVNTRVJUKE1kbC0+TWRsRmxhZ3MgJgorICAgICAgICAg
ICAoTURMX01BUFBFRF9UT19TWVNURU1fVkEgfAorICAgICAgICAgICAgTURMX1NPVVJDRV9JU19O
T05QQUdFRF9QT09MKSk7CiAgICAgQmFzZVZhID0gTWRsLT5NYXBwZWRTeXN0ZW1WYTsKICAgICBB
U1NFUlQoQmFzZVZhICE9IE5VTEwpOwogCkBAIC04NDksNyArODYzLDkgQEAgX19SZWNlaXZlclJp
bmdCdWlsZFNlZ21lbnQoCiAKICAgICAgICAgTWRsID0gTWRsLT5OZXh0OwogCi0gICAgICAgIEFT
U0VSVChNZGwtPk1kbEZsYWdzICYgTURMX01BUFBFRF9UT19TWVNURU1fVkEpOworICAgICAgICBB
U1NFUlQoTWRsLT5NZGxGbGFncyAmCisgICAgICAgICAgICAgICAoTURMX01BUFBFRF9UT19TWVNU
RU1fVkEgfAorICAgICAgICAgICAgICAgIE1ETF9TT1VSQ0VfSVNfTk9OUEFHRURfUE9PTCkpOwog
ICAgICAgICBCYXNlVmEgPSBNZGwtPk1hcHBlZFN5c3RlbVZhOwogICAgICAgICBBU1NFUlQoQmFz
ZVZhICE9IE5VTEwpOwogCkBAIC05MzksNyArOTU1LDkgQEAgUmVjZWl2ZXJSaW5nUHJvY2Vzc0xh
cmdlUGFja2V0KAogCiAgICAgUGFja2V0LT5NZGwuTmV4dCA9IE5VTEw7CiAKLSAgICBBU1NFUlQo
UGFja2V0LT5NZGwuTWRsRmxhZ3MgJiBNRExfTUFQUEVEX1RPX1NZU1RFTV9WQSk7CisgICAgQVNT
RVJUKFBhY2tldC0+TWRsLk1kbEZsYWdzICYKKyAgICAgICAgICAgKE1ETF9NQVBQRURfVE9fU1lT
VEVNX1ZBIHwKKyAgICAgICAgICAgIE1ETF9TT1VSQ0VfSVNfTk9OUEFHRURfUE9PTCkpOwogICAg
IEluZm9WYSA9IFBhY2tldC0+TWRsLk1hcHBlZFN5c3RlbVZhOwogICAgIEFTU0VSVChJbmZvVmEg
IT0gTlVMTCk7CiAKQEAgLTExMzQsNyArMTE1Miw5IEBAIFJlY2VpdmVyUmluZ1Byb2Nlc3NTdGFu
ZGFyZFBhY2tldCgKICAgICAgICAgaWYgKE1kbCA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBm
YWlsMjsKIAotICAgICAgICBBU1NFUlQoTWRsLT5NZGxGbGFncyAmIE1ETF9NQVBQRURfVE9fU1lT
VEVNX1ZBKTsKKyAgICAgICAgQVNTRVJUKE1kbC0+TWRsRmxhZ3MgJgorICAgICAgICAgICAgICAg
KE1ETF9NQVBQRURfVE9fU1lTVEVNX1ZBIHwKKyAgICAgICAgICAgICAgICBNRExfU09VUkNFX0lT
X05PTlBBR0VEX1BPT0wpKTsKICAgICAgICAgQmFzZVZhID0gTWRsLT5NYXBwZWRTeXN0ZW1WYTsK
ICAgICAgICAgQVNTRVJUKEJhc2VWYSAhPSBOVUxMKTsKIApAQCAtMTI0MCw3ICsxMjYwLDkgQEAg
UmVjZWl2ZXJSaW5nUHJvY2Vzc1BhY2tldCgKICAgICAvLyBPdmVycmlkZSBvZmZzZXQgdG8gYWxp
Z24KICAgICBQYWNrZXQtPk9mZnNldCA9IFJlY2VpdmVyLT5JcEFsaWduT2Zmc2V0OwogCi0gICAg
QVNTRVJUKFBhY2tldC0+TWRsLk1kbEZsYWdzICYgTURMX01BUFBFRF9UT19TWVNURU1fVkEpOwor
ICAgIEFTU0VSVChQYWNrZXQtPk1kbC5NZGxGbGFncyAmCisgICAgICAgICAgIChNRExfTUFQUEVE
X1RPX1NZU1RFTV9WQSB8CisgICAgICAgICAgICBNRExfU09VUkNFX0lTX05PTlBBR0VEX1BPT0wp
KTsKICAgICBCYXNlVmEgPSBQYWNrZXQtPk1kbC5NYXBwZWRTeXN0ZW1WYTsKICAgICBBU1NFUlQo
QmFzZVZhICE9IE5VTEwpOwogCkBAIC0xNDIyLDcgKzE0NDQsOSBAQCBfX1JlY2VpdmVyUmluZ1Jl
bGVhc2VMb2NrKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5WSUZfUkVD
RUlWRVJfUEFDS0VULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0RW50
cnkpOwogCi0gICAgICAgIEFTU0VSVChQYWNrZXQtPk1kbC5NZGxGbGFncyAmIE1ETF9NQVBQRURf
VE9fU1lTVEVNX1ZBKTsKKyAgICAgICAgQVNTRVJUKFBhY2tldC0+TWRsLk1kbEZsYWdzICYKKyAg
ICAgICAgICAgICAgIChNRExfTUFQUEVEX1RPX1NZU1RFTV9WQSB8CisgICAgICAgICAgICAgICAg
TURMX1NPVVJDRV9JU19OT05QQUdFRF9QT09MKSk7CiAgICAgICAgIEJhc2VWYSA9IFBhY2tldC0+
TWRsLk1hcHBlZFN5c3RlbVZhOwogICAgICAgICBBU1NFUlQoQmFzZVZhICE9IE5VTEwpOwogCkBA
IC0yMDM0LDcgKzIwNTgsOSBAQCBSZWNlaXZlclJpbmdQb2xsKAogCiAgICAgICAgICAgICAgICAg
QVNTRVJUM1UocnNwLT5pZCwgPT0sIGlkKTsKIAotICAgICAgICAgICAgICAgIEFTU0VSVChNZGwt
Pk1kbEZsYWdzICYgTURMX01BUFBFRF9UT19TWVNURU1fVkEpOworICAgICAgICAgICAgICAgIEFT
U0VSVChNZGwtPk1kbEZsYWdzICYKKyAgICAgICAgICAgICAgICAgICAgICAgKE1ETF9NQVBQRURf
VE9fU1lTVEVNX1ZBIHwKKyAgICAgICAgICAgICAgICAgICAgICAgIE1ETF9TT1VSQ0VfSVNfTk9O
UEFHRURfUE9PTCkpOwogICAgICAgICAgICAgICAgIEJhc2VWYSA9IE1kbC0+TWFwcGVkU3lzdGVt
VmE7CiAgICAgICAgICAgICAgICAgQVNTRVJUKEJhc2VWYSAhPSBOVUxMKTsKIApAQCAtMjQxOSw3
ICsyNDQ1LDkgQEAgX19SZWNlaXZlclJpbmdDb25uZWN0KAogICAgIGlmIChSaW5nLT5NZGwgPT0g
TlVMTCkKICAgICAgICAgZ290byBmYWlsMzsKIAotICAgIEFTU0VSVChSaW5nLT5NZGwtPk1kbEZs
YWdzICYgTURMX01BUFBFRF9UT19TWVNURU1fVkEpOworICAgIEFTU0VSVChSaW5nLT5NZGwtPk1k
bEZsYWdzICYKKyAgICAgICAgICAgKE1ETF9NQVBQRURfVE9fU1lTVEVNX1ZBIHwKKyAgICAgICAg
ICAgIE1ETF9TT1VSQ0VfSVNfTk9OUEFHRURfUE9PTCkpOwogICAgIFJpbmctPlNoYXJlZCA9IFJp
bmctPk1kbC0+TWFwcGVkU3lzdGVtVmE7CiAgICAgQVNTRVJUKFJpbmctPlNoYXJlZCAhPSBOVUxM
KTsKIApkaWZmIC0tZ2l0IGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jIGIvc3JjL3hlbnZpZi90
cmFuc21pdHRlci5jCmluZGV4IDFkNDZmODUuLmJmNjAwNGEgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52
aWYvdHJhbnNtaXR0ZXIuYworKysgYi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKQEAgLTg2Nyw3
ICs4NjcsOSBAQCBfX1RyYW5zbWl0dGVyUmluZ0NvcHlQYXlsb2FkKAogCiAgICAgICAgIExlbmd0
aCA9IF9fbWluKFBheWxvYWQuTGVuZ3RoLCBQQUdFX1NJWkUpOwogCi0gICAgICAgIEFTU0VSVChN
ZGwtPk1kbEZsYWdzICYgTURMX01BUFBFRF9UT19TWVNURU1fVkEpOworICAgICAgICBBU1NFUlQo
TWRsLT5NZGxGbGFncyAmCisgICAgICAgICAgICAgICAoTURMX01BUFBFRF9UT19TWVNURU1fVkEg
fAorICAgICAgICAgICAgICAgIE1ETF9TT1VSQ0VfSVNfTk9OUEFHRURfUE9PTCkpOwogICAgICAg
ICBCYXNlVmEgPSBNZGwtPk1hcHBlZFN5c3RlbVZhOwogICAgICAgICBBU1NFUlQoQmFzZVZhICE9
IE5VTEwpOwogCkBAIC0xMTg3LDcgKzExODksOSBAQCBfX1RyYW5zbWl0dGVyUmluZ1ByZXBhcmVI
ZWFkZXIoCiAKICAgICBNZGwgPSBCdWZmZXItPk1kbDsKIAotICAgIEFTU0VSVChNZGwtPk1kbEZs
YWdzICYgTURMX01BUFBFRF9UT19TWVNURU1fVkEpOworICAgIEFTU0VSVChNZGwtPk1kbEZsYWdz
ICYKKyAgICAgICAgICAgKE1ETF9NQVBQRURfVE9fU1lTVEVNX1ZBIHwKKyAgICAgICAgICAgIE1E
TF9TT1VSQ0VfSVNfTk9OUEFHRURfUE9PTCkpOwogICAgIEJhc2VWYSA9IE1kbC0+TWFwcGVkU3lz
dGVtVmE7CiAgICAgQVNTRVJUKEJhc2VWYSAhPSBOVUxMKTsKIApAQCAtMTY4NCw3ICsxNjg4LDkg
QEAgX19UcmFuc21pdHRlclJpbmdQcmVwYXJlUGFja2V0KAogCiAgICAgICAgICAgICBBU1NFUlQz
VShNZGwtPkJ5dGVDb3VudCwgPD0sIFBBR0VfU0laRSAtIFRyYWlsZXIpOwogCi0gICAgICAgICAg
ICBBU1NFUlQoTWRsLT5NZGxGbGFncyAmIE1ETF9NQVBQRURfVE9fU1lTVEVNX1ZBKTsKKyAgICAg
ICAgICAgIEFTU0VSVChNZGwtPk1kbEZsYWdzICYKKyAgICAgICAgICAgICAgICAgICAoTURMX01B
UFBFRF9UT19TWVNURU1fVkEgfAorICAgICAgICAgICAgICAgICAgICBNRExfU09VUkNFX0lTX05P
TlBBR0VEX1BPT0wpKTsKICAgICAgICAgICAgIEJhc2VWYSA9IE1kbC0+TWFwcGVkU3lzdGVtVmE7
CiAgICAgICAgICAgICBBU1NFUlQoQmFzZVZhICE9IE5VTEwpOwogCkBAIC0xNzgzLDcgKzE3ODks
OSBAQCBfX1RyYW5zbWl0dGVyUmluZ1ByZXBhcmVBcnAoCiAKICAgICBNZGwgPSBCdWZmZXItPk1k
bDsKIAotICAgIEFTU0VSVChNZGwtPk1kbEZsYWdzICYgTURMX01BUFBFRF9UT19TWVNURU1fVkEp
OworICAgIEFTU0VSVChNZGwtPk1kbEZsYWdzICYKKyAgICAgICAgICAgKE1ETF9NQVBQRURfVE9f
U1lTVEVNX1ZBIHwKKyAgICAgICAgICAgIE1ETF9TT1VSQ0VfSVNfTk9OUEFHRURfUE9PTCkpOwog
ICAgIEJhc2VWYSA9IE1kbC0+TWFwcGVkU3lzdGVtVmE7CiAgICAgQVNTRVJUKEJhc2VWYSAhPSBO
VUxMKTsKIApAQCAtMTkyNCw3ICsxOTMyLDkgQEAgX19UcmFuc21pdHRlclJpbmdQcmVwYXJlTmVp
Z2hib3VyQWR2ZXJ0aXNlbWVudCgKIAogICAgIE1kbCA9IEJ1ZmZlci0+TWRsOwogCi0gICAgQVNT
RVJUKE1kbC0+TWRsRmxhZ3MgJiBNRExfTUFQUEVEX1RPX1NZU1RFTV9WQSk7CisgICAgQVNTRVJU
KE1kbC0+TWRsRmxhZ3MgJgorICAgICAgICAgICAoTURMX01BUFBFRF9UT19TWVNURU1fVkEgfAor
ICAgICAgICAgICAgTURMX1NPVVJDRV9JU19OT05QQUdFRF9QT09MKSk7CiAgICAgQmFzZVZhID0g
TWRsLT5NYXBwZWRTeXN0ZW1WYTsKICAgICBBU1NFUlQoQmFzZVZhICE9IE5VTEwpOwogCkBAIC0z
NjM4LDcgKzM2NDgsOSBAQCBfX1RyYW5zbWl0dGVyUmluZ0Nvbm5lY3QoCiAgICAgaWYgKFJpbmct
Pk1kbCA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWwzOwogCi0gICAgQVNTRVJUKFJpbmctPk1k
bC0+TWRsRmxhZ3MgJiBNRExfTUFQUEVEX1RPX1NZU1RFTV9WQSk7CisgICAgQVNTRVJUKFJpbmct
Pk1kbC0+TWRsRmxhZ3MgJgorICAgICAgICAgICAoTURMX01BUFBFRF9UT19TWVNURU1fVkEgfAor
ICAgICAgICAgICAgTURMX1NPVVJDRV9JU19OT05QQUdFRF9QT09MKSk7CiAgICAgUmluZy0+U2hh
cmVkID0gUmluZy0+TWRsLT5NYXBwZWRTeXN0ZW1WYTsKICAgICBBU1NFUlQoUmluZy0+U2hhcmVk
ICE9IE5VTEwpOwogCmRpZmYgLS1naXQgYS9zcmMveGVudmlmL3V0aWwuaCBiL3NyYy94ZW52aWYv
dXRpbC5oCmluZGV4IDMwMzIyZDguLmRmYmU5YWUgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52aWYvdXRp
bC5oCisrKyBiL3NyYy94ZW52aWYvdXRpbC5oCkBAIC0yMTAsMTAgKzIxMCwxMCBAQCBfX0FsbG9j
YXRlUGFnZXMoCiAKICAgICBNZGxNYXBwZWRTeXN0ZW1WYSA9IE1tTWFwTG9ja2VkUGFnZXNTcGVj
aWZ5Q2FjaGUoTWRsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBLZXJuZWxNb2RlLAotCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBNbUNhY2hlZCwKLQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLQkJ
CQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCi0JCQkJCQkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5vcm1hbFBhZ2VQcmlvcml0eSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1tQ2FjaGVkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFs
UGFnZVByaW9yaXR5KTsKIAogICAgIHN0YXR1cyA9IFNUQVRVU19VTlNVQ0NFU1NGVUw7CiAgICAg
aWYgKE1kbE1hcHBlZFN5c3RlbVZhID09IE5VTEwpCkBAIC0yNDQsMTEgKzI0NCw2OSBAQCBmYWls
MToKICAgICByZXR1cm4gTlVMTDsKIH0KIAotI2RlZmluZSBfX0FsbG9jYXRlUGFnZSgpICAgIF9f
QWxsb2NhdGVQYWdlcygxKQorCitzdGF0aWMgRk9SQ0VJTkxJTkUgUE1ETAorX19BbGxvY2F0ZVBh
Z2UoKQoreworICAgIFBIWVNJQ0FMX0FERFJFU1MgICAgTG93QWRkcmVzczsKKyAgICBQSFlTSUNB
TF9BRERSRVNTICAgIEhpZ2hBZGRyZXNzOworICAgIFBIWVNJQ0FMX0FERFJFU1MgICAgQWxpZ247
CisgICAgU0laRV9UICAgICAgICAgICAgICBUb3RhbEJ5dGVzOworICAgIFBNREwgICAgICAgICAg
ICAgICAgTWRsOworICAgIFBVQ0hBUiAgICAgICAgICAgICAgTWRsTWFwcGVkU3lzdGVtVmE7Cisg
ICAgTlRTVEFUVVMgICAgICAgICAgICBzdGF0dXM7CisKKyAgICBBU1NFUlQzVShLZUdldEN1cnJl
bnRJcnFsKCksIDw9LCBESVNQQVRDSF9MRVZFTCk7CisKKyAgICBMb3dBZGRyZXNzLlF1YWRQYXJ0
ICA9IDB1bGw7CisgICAgSGlnaEFkZHJlc3MuUXVhZFBhcnQgPSB+MHVsbDsKKyAgICBBbGlnbi5R
dWFkUGFydCAgICAgICA9IFBBR0VfU0laRTsKKyAgICBUb3RhbEJ5dGVzICAgICAgICAgICA9IChT
SVpFX1QpUEFHRV9TSVpFOworCisgICAgTWRsTWFwcGVkU3lzdGVtVmEgPSBNbUFsbG9jYXRlQ29u
dGlndW91c01lbW9yeVNwZWNpZnlDYWNoZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBU
b3RhbEJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvd0FkZHJlc3MsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSGlnaEFkZHJlc3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQWxpZ24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW1DYWNoZWQpOwor
CisgICAgc3RhdHVzID0gU1RBVFVTX05PX01FTU9SWTsKKyAgICBpZiAoTWRsTWFwcGVkU3lzdGVt
VmEgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsMTsKKworCisgICAgTWRsID0gSW9BbGxvY2F0
ZU1kbChNZGxNYXBwZWRTeXN0ZW1WYSwKKyAgICAgICAgICAgICAgICAgICAgICAgIChVTE9ORylU
b3RhbEJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICAg
ICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworCisgICAg
aWYgKE1kbCA9PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWwyOworCisgICAgTW1CdWlsZE1kbEZv
ck5vblBhZ2VkUG9vbChNZGwpOworCisgICAgQVNTRVJUM1UoTWRsLT5CeXRlT2Zmc2V0LCA9PSwg
MCk7CisgICAgQVNTRVJUM1AoTWRsLT5TdGFydFZhLCA9PSwgTWRsTWFwcGVkU3lzdGVtVmEpOwor
ICAgIEFTU0VSVDNQKE1kbC0+TWFwcGVkU3lzdGVtVmEsID09LCBNZGxNYXBwZWRTeXN0ZW1WYSk7
CisKKyAgICBSdGxaZXJvTWVtb3J5KE1kbE1hcHBlZFN5c3RlbVZhLCBNZGwtPkJ5dGVDb3VudCk7
CisKKyAgICByZXR1cm4gTWRsOworCitmYWlsMjoKKyAgICBFcnJvcigiZmFpbDJcbiIpOworCisg
ICAgTW1GcmVlQ29udGlndW91c01lbW9yeShNZGxNYXBwZWRTeXN0ZW1WYSk7CitmYWlsMToKKyAg
ICBFcnJvcigiZmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworCisgICAgcmV0dXJuIE5VTEw7Cit9
CiAKIHN0YXRpYyBGT1JDRUlOTElORSBWT0lECiBfX0ZyZWVQYWdlcygKLSAgICBJTglQTURMCU1k
bAorICAgIElOICBQTURMICAgIE1kbAogICAgICkKIHsKICAgICBQVUNIQVIJTWRsTWFwcGVkU3lz
dGVtVmE7CkBAIC0yNjIsNyArMzIwLDI0IEBAIF9fRnJlZVBhZ2VzKAogICAgIEV4RnJlZVBvb2wo
TWRsKTsKIH0KIAotI2RlZmluZSBfX0ZyZWVQYWdlKF9NZGwpICAgIF9fRnJlZVBhZ2VzKF9NZGwp
CitzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorX19GcmVlUGFnZSgKKyAgICBJTiAgUE1ETCAgICBN
ZGwKKyAgICApCit7CisgICAgUFVDSEFSICBNZGxNYXBwZWRTeXN0ZW1WYTsKKworICAgIEFTU0VS
VChNZGwtPk1kbEZsYWdzICYKKyAgICAgICAgICAgIChNRExfTUFQUEVEX1RPX1NZU1RFTV9WQSB8
CisgICAgICAgICAgICAgTURMX1NPVVJDRV9JU19OT05QQUdFRF9QT09MKSk7CisKKyAgICBNZGxN
YXBwZWRTeXN0ZW1WYSA9IE1kbC0+TWFwcGVkU3lzdGVtVmE7CisgICAgCisgICAgSW9GcmVlTWRs
KE1kbCk7CisgICAgCisgICAgTW1GcmVlQ29udGlndW91c01lbW9yeShNZGxNYXBwZWRTeXN0ZW1W
YSk7CisKK30KIAogc3RhdGljIEZPUkNFSU5MSU5FIFBDSEFSCiBfX3N0cnRva19yKAotLSAKMi4x
MC4xLndpbmRvd3MuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93
aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Fri Jun 29 15:36:13 2018
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 29 Jun 2018 15:36:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.89)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1fYvRT-0005vA-JL; Fri, 29 Jun 2018 15:36:11 +0000
Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6])
 by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from
 <srs0=l9mw=jp=gmail.com=illuminoid@srs-us1.protection.inumbo.net>)
 id 1fYvRS-0005v3-23
 for win-pv-devel@lists.xenproject.org; Fri, 29 Jun 2018 15:36:10 +0000
X-Inumbo-ID: 233e2eb3-7bb2-11e8-8089-bc764e045a96
Received: from mail-ed1-x529.google.com (unknown [2a00:1450:4864:20::529])
 by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS
 id 233e2eb3-7bb2-11e8-8089-bc764e045a96;
 Fri, 29 Jun 2018 17:36:06 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id g12-v6so7470612edi.9
 for <win-pv-devel@lists.xenproject.org>; Fri, 29 Jun 2018 08:36:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:from:to:cc:subject:date:message-id;
 bh=uEx7Q9o6dV0H9m2frUJyAqEC8Gtg5umS8Ag1OMDvws4=;
 b=dKdcc1iaTmPGXSFxenQTBXwsZkP6eUTQnfhoSYqzJBchXZFzy7UZjbp5NunHNRllfX
 Vqfn7VQq0Qzko2UJlnOS4x3Bbow7n95sKIzdE0UV3+w/4mhC9TUzXuJTkf1oUHACwelw
 hG4i8M6ik4adfTNv9qZOo7ypYc/Q6VCSS568+4CZl3yDhI9PF+Xbp0rPD0hsQLAkYF7w
 7zs0gWit422LrCNweQhRGX1VJXM3HKiRYvw4fjwkZsSevkkFET1E+l5RW5jxQOi5gmeN
 DlNs87f9ordNEqU5MepSna6nvKgXacunEbMoE2KfxuO248A/mdetCus4hNyG0K7ucbMS
 yzGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:from:to:cc:subject:date:message-id;
 bh=uEx7Q9o6dV0H9m2frUJyAqEC8Gtg5umS8Ag1OMDvws4=;
 b=s24SUZ8S7G3AqxbVrLllqmg4wP+9OuWLsu0VOxlXR2p9Yejx1OM6IBXmLhqhMuq6iy
 oYpG1Mb5WSO/VNHz373Vx+89+ogXhJIZwN/mlZ/nYPJuljW7sGNfT3VQ2YWRwCAZvKrj
 glshK+q97wAJ0QA6Sppihg2oi1Q4MrQKSU+GJ8uZwbDNzYBSwYpUXBRAq93qhnzAC4E3
 Pi5q9Oy0YzpeD4LI2kntNzbFuBSFSu9TE33tvvJ+wGGc38SKwDWlCsHM2ardM3CA+lfr
 3KmjeRseBKfNFYcpDtrxPzpZtXEj17UtNURnLCj8qr1xcZuly8MYYkVlBNaY7Oerzwur
 M8JQ==
X-Gm-Message-State: APt69E2mqV3mQSNlmJlMqYfOH/9AvMS/kgqBG1bkETxXSn4lebhSqypI
 goRz5QxjGYArzDFi1HvJtJjAE2Y=
X-Google-Smtp-Source: AAOMgpcD03hG0AurpD9myAC4OA2rIX08u2q2fAbvI2ONdF0PilAFKYzX2bIH3+clVfYaLlzPoZkatQ==
X-Received: by 2002:a50:c8c3:: with SMTP id
 k3-v6mr2149876edh.193.1530286567455; 
 Fri, 29 Jun 2018 08:36:07 -0700 (PDT)
Received: from localhost.localdomain (default-46-102-197-194.interdsl.co.uk.
 [46.102.197.194])
 by smtp.gmail.com with ESMTPSA id f15-v6sm1369400edq.28.2018.06.29.08.36.06
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
 Fri, 29 Jun 2018 08:36:06 -0700 (PDT)
From: Ben Chalmers <ben.ch@lmers.co.uk>
X-Google-Original-From: Ben Chalmers <Ben.Chalmers@citrix.com>
To: win-pv-devel@lists.xenproject.org
Date: Fri, 29 Jun 2018 16:36:05 +0100
Message-Id: <20180629153605.1812-1-Ben.Chalmers@citrix.com>
X-Mailer: git-send-email 2.10.1.windows.1
Subject: [win-pv-devel] [PATCH] Turn off Spectre mitigation warning
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/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/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Cc: Ben Chalmers <ben.chalmers@citrix.com>
MIME-Version: 1.0
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>

VlMyMDE3IHdhcm5zIHdoZW4gc3BlY3RyZSBtaXRpZ2F0aW9ucyBhcmUgaW5zZXJ0ZWQsIHdoaWNo
CmNhdXNlcyBhbiBlcnJvciB3aGVuIGFsbCB3YXJuaW5ncyBhcmUgdHJlYXRlZCBhcyBlcnJvcnMu
CgpEaXNhYmxlIHdhcm5pbmcgQzUwNDUKClNpZ25lZC1vZmYtYnk6IEJlbiBDaGFsbWVycyA8YmVu
LmNoYWxtZXJzQGNpdHJpeC5jb20+Ci0tLQogc3JjL3hlbnZpZi9wb2xsZXIuYyAgICAgIHwgMyAr
KysKIHNyYy94ZW52aWYvcmVjZWl2ZXIuYyAgICB8IDYgKysrKysrCiBzcmMveGVudmlmL3RyYW5z
bWl0dGVyLmMgfCAzICsrKwogMyBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspCgpkaWZm
IC0tZ2l0IGEvc3JjL3hlbnZpZi9wb2xsZXIuYyBiL3NyYy94ZW52aWYvcG9sbGVyLmMKaW5kZXgg
NmZmMmM4Yy4uNjU0MjdhOCAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9wb2xsZXIuYworKysgYi9z
cmMveGVudmlmL3BvbGxlci5jCkBAIC03OTAsNiArNzkwLDggQEAgUG9sbGVySW5zdGFuY2VFbmFi
bGUoCiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogfQogCisjcHJhZ21hIHdhcm5pbmcocHVz
aCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA1MDQ1KQogX19kcnZfcmVxdWlyZXNJUlFMKERJ
U1BBVENIX0xFVkVMKQogc3RhdGljIE5UU1RBVFVTCiBQb2xsZXJJbnN0YW5jZVNlbmQoCkBAIC04
NzQsNiArODc2LDcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorI3ByYWdtYSB3
YXJuaW5nKHBvcCkKIHN0YXRpYyBWT0lECiBQb2xsZXJJbnN0YW5jZURlYnVnQ2FsbGJhY2soCiAg
ICAgSU4gIFBYRU5WSUZfUE9MTEVSX0lOU1RBTkNFIEluc3RhbmNlCmRpZmYgLS1naXQgYS9zcmMv
eGVudmlmL3JlY2VpdmVyLmMgYi9zcmMveGVudmlmL3JlY2VpdmVyLmMKaW5kZXggYWIzZTQxNi4u
MzUwMWVhNiAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi9yZWNlaXZlci5jCisrKyBiL3NyYy94ZW52
aWYvcmVjZWl2ZXIuYwpAQCAtMzQxLDYgKzM0MSw4IEBAIFJlY2VpdmVyRnJhZ21lbnRDdG9yKAog
ICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIH0KIAorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisj
cHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNTA0NSkKIHN0YXRpYyBWT0lECiBSZWNlaXZlckZyYWdt
ZW50RHRvcigKICAgICBJTiAgUFZPSUQgICAgICAgICAgICAgICAgICAgQXJndW1lbnQsCkBAIC0z
NTMsNiArMzU1LDcgQEAgUmVjZWl2ZXJGcmFnbWVudER0b3IoCiAKICAgICBBU1NFUlQoSXNaZXJv
TWVtb3J5KEZyYWdtZW50LCBzaXplb2YgKFhFTlZJRl9SRUNFSVZFUl9GUkFHTUVOVCkpKTsKIH0K
KyNwcmFnbWEgd2FybmluZyhwb3ApCiAKIHN0YXRpYyBGT1JDRUlOTElORSBQWEVOVklGX1JFQ0VJ
VkVSX0ZSQUdNRU5UCiBfX1JlY2VpdmVyUmluZ0dldEZyYWdtZW50KApAQCAtMTM4OCw2ICsxMzkx
LDggQEAgUmVjZWl2ZXJSaW5nQWNxdWlyZUxvY2soCiAgICAgX19SZWNlaXZlclJpbmdBY3F1aXJl
TG9jayhSaW5nKTsKIH0KIAorI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmco
ZGlzYWJsZTogNTA0NSkKIHN0YXRpYyBGT1JDRUlOTElORSBWT0lECiBfX2Rydl9yZXF1aXJlc0lS
UUwoRElTUEFUQ0hfTEVWRUwpCiBfX1JlY2VpdmVyUmluZ1JlbGVhc2VMb2NrKApAQCAtMTU5OCw2
ICsxNjAzLDcgQEAgX19SZWNlaXZlclJpbmdSZWxlYXNlTG9jaygKIAogICAgIEFTU0VSVDNVKENv
dW50LCA9PSwgMCk7CiB9CisjcHJhZ21hIHdhcm5pbmcocG9wKQogCiBzdGF0aWMgREVDTFNQRUNf
Tk9JTkxJTkUgVk9JRAogUmVjZWl2ZXJSaW5nUmVsZWFzZUxvY2soCmRpZmYgLS1naXQgYS9zcmMv
eGVudmlmL3RyYW5zbWl0dGVyLmMgYi9zcmMveGVudmlmL3RyYW5zbWl0dGVyLmMKaW5kZXggYmY2
MDA0YS4uYTRmNjUyYSAxMDA2NDQKLS0tIGEvc3JjL3hlbnZpZi90cmFuc21pdHRlci5jCisrKyBi
L3NyYy94ZW52aWYvdHJhbnNtaXR0ZXIuYwpAQCAtMzI1LDYgKzMyNSw4IEBAIF9fVHJhbnNtaXR0
ZXJHZXRQYWNrZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc21pdHRlci0+UGFja2V0
Q2FjaGUsCiAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSk7CiB9CisjcHJhZ21hIHdhcm5p
bmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA1MDQ1KQogCiBzdGF0aWMgRk9SQ0VJ
TkxJTkUgVk9JRAogX19UcmFuc21pdHRlclB1dFBhY2tldCgKQEAgLTM1Nyw2ICszNTksNyBAQCBf
X1RyYW5zbWl0dGVyUHV0UGFja2V0KAogICAgICAgICAgICAgICAgICBQYWNrZXQsCiAgICAgICAg
ICAgICAgICAgIEZBTFNFKTsKIH0KKyNwcmFnbWEgd2FybmluZyhwb3ApCiAKIHN0YXRpYyBOVFNU
QVRVUwogVHJhbnNtaXR0ZXJCdWZmZXJDdG9yKAotLSAKMi4xMC4xLndpbmRvd3MuMQoKCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBt
YWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz
dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

