Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 May 2018 22:23:52 +0200
From:      "O. Hartmann" <ohartmann@walstatt.org>
To:        "K. Macy" <kmacy@freebsd.org>
Cc:        "O. Hartmann" <ohartmann@walstatt.org>, Stephen Hurd <shurd@freebsd.org>, svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers <src-committers@freebsd.org>
Subject:   Re: svn commit: r333175 - in head/sys: kern net netinet netinet6 sys
Message-ID:  <20180503222419.4228e8e8@thor.intern.walstatt.dynvpn.de>
In-Reply-To: <CAHM0Q_OeFG5bKiUMqi5G3roGNnjUHJ_W2KmQeCCkSnW8zCW_RQ@mail.gmail.com>
References:  <201805021936.w42JaTlq039053@repo.freebsd.org> <20180503213206.7fba052c@thor.intern.walstatt.dynvpn.de> <CAHM0Q_OeFG5bKiUMqi5G3roGNnjUHJ_W2KmQeCCkSnW8zCW_RQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQ0KSGFzaDogU0hBNTEyDQoNCkFtIFRo
dSwgMyBNYXkgMjAxOCAxMjo1MzowNSAtMDcwMA0KIksuIE1hY3kiIDxrbWFjeUBmcmVlYnNkLm9y
Zz4gc2NocmllYjoNCg0KPiBDYW4geW91IGdpdmUgYW55IGNvbnRleHQgb24gd2hhdCB0aGV5J3Jl
IGRvaW5nPyBJbiBhZGRpdGlvbiAtIGV2ZW4gb24NCj4gYSBwcm9kdWN0aW9uIGtlcm5lbCBpdCdz
IHBvc3NpYmxlIHRvIGNvbXBpbGUgaW4gRERCIHRvIGF0IGxlYXN0IGdldCBhDQo+IGJhY2t0cmFj
ZS4gWW91ciByZXBvcnQgb25seSBnaXZlcyB1cyBlbm91Z2ggaW5mb3JtYXRpb24gdG8ga25vdyB0
aGF0DQoNCk5vdCBhdCB0aGUgbW9tZW50LiBUaGUgaW1tZWRpYXRlIGNyYXNoIGNvcnJ1cHRlZCB0
aGUgL3Vzci9zcmMgZmlsZXN5c3RlbSBzbyBJIGNhbiBub3QNCnJlY29tcGlsZSBhIGtlcm5lbC4g
RXZlcnkgYXR0ZW1wdCB0byAvZXRjL25ldHN0YXJ0IHRoZSBuZXR3b3JrIG9uIHRoZSBidWdneSBr
ZXJuZWwgZW5kcw0KdXAgaW4gYSBmdXJ0aGVyIGRlc3RydWN0aW9uLCBzbyBJIHN0b3BwZWQgYXQg
dGhpcyB2ZXJ5IG1vbWVudCBhbmQgaG9wZWZ1bGx5IEkgY2FuDQpjb3B5IC91c3Ivc3JjIGZyb20g
YSByMzMxNTMgYm94IChyMzMzMTUzIGlzIGZvciBtZSB0aGUgbGFzdCB3b3JraW5nIHJldmlzaW9u
KSB2aWEgVVNCDQpmbGFzaCBkcml2ZSBhbmQgcmVjb21waWxlIHRoZSBrZXJuZWwuIEJ1dCBJJ2xs
IGdvIGZvciByMzMzMTUzIGZpcnN0IHNpbmNlIEkgbmVlZCB0aGUNCnNlcnZlciB1cCB0b21vcnJv
dyBhbmQgSSdsbCB0cnkgb24gdGhlIG90aGVyIGJveCB3aGljaCBpcyBhbHNvIGFmZmVjdGVkLCBi
dXQgYWxzbw0KZXF1aXB0ZWQgd2l0aCB0aGUgaTM1MCBOSUMgb24gd2hpY2ggdGhlIHByb2JsZW0g
b2NjdXJzIHZlcnkgcXVpY2tseS4NCg0KPiB0aGVyZSBpcyBfYW5fIGlzc3VlLiBJdCdzIGRpZmZp
Y3VsdCB0byBwcm9jZWVkIG9uIHRoaXMgYWxvbmUuIEkgZG8NCj4gaGF2ZSBhIHJlcG9ydCBmcm9t
IHRoZSBGcmVlQlNEIENJIGluZnJhc3RydWN0dXJlIHRoYXQgd2UncmUgbG9va2luZyBpbg0KPiB0
byBub3cuICBXaXRoIGx1Y2sgdGhhdCBpcyB0aGUgc2FtZSBpc3N1ZS4NCj4gDQo+IC1NDQo+IA0K
PiBPbiBUaHUsIE1heSAzLCAyMDE4IGF0IDEyOjMxIFBNLCBPLiBIYXJ0bWFubiA8b2hhcnRtYW5u
QHdhbHN0YXR0Lm9yZz4gd3JvdGU6DQo+ID4gLS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0Ut
LS0tLQ0KPiA+IEhhc2g6IFNIQTUxMg0KPiA+DQo+ID4gQW0gV2VkLCAyIE1heSAyMDE4IDE5OjM2
OjI5ICswMDAwIChVVEMpDQo+ID4gU3RlcGhlbiBIdXJkIDxzaHVyZEBGcmVlQlNELm9yZz4gc2No
cmllYjoNCj4gPiAgDQo+ID4+IEF1dGhvcjogc2h1cmQNCj4gPj4gRGF0ZTogV2VkIE1heSAgMiAx
OTozNjoyOSAyMDE4DQo+ID4+IE5ldyBSZXZpc2lvbjogMzMzMTc1DQo+ID4+IFVSTDogaHR0cHM6
Ly9zdm53ZWIuZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jhc2UvMzMzMTc1DQo+ID4+DQo+ID4+IExv
ZzoNCj4gPj4gICBTZXBhcmF0ZSBsaXN0IG1hbmlwdWxhdGlvbiBsb2NraW5nIGZyb20gc3RhdGUg
Y2hhbmdlIGluIG11bHRpY2FzdA0KPiA+Pg0KPiA+PiAgIE11bHRpY2FzdCBpbmNvcnJlY3RseSBj
YWxscyBpbiB0byBkcml2ZXJzIHdpdGggYSBtdXRleCBoZWxkIGNhdXNpbmcgZHJpdmVycw0KPiA+
PiAgIHRvIGhhdmUgdG8gZ28gdGhyb3VnaCBhbGwgbWFubmVyIG9mIGNvbnRvcnRpb25zIHRvIHVz
ZSBhIG5vbiBzbGVlcGFibGUgbG9jay4NCj4gPj4gICBTZXJpYWxpemUgbXVsdGljYXN0IHVwZGF0
ZXMgaW5zdGVhZC4NCj4gPj4NCj4gPj4gICBTdWJtaXR0ZWQgYnk6ICAgICAgIG1tYWN5IDxtbWFj
eUBtYXR0bWFjeS5pbz4NCj4gPj4gICBSZXZpZXdlZCBieTogICAgICAgIHNodXJkLCBzYnJ1bm8N
Cj4gPj4gICBTcG9uc29yZWQgYnk6ICAgICAgIExpbWVsaWdodCBOZXR3b3Jrcw0KPiA+PiAgIERp
ZmZlcmVudGlhbCBSZXZpc2lvbjogICAgICBodHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcvRDE0
OTY5DQo+ID4+DQo+ID4+IE1vZGlmaWVkOg0KPiA+PiAgIGhlYWQvc3lzL2tlcm4vc3Vicl9ndGFz
a3F1ZXVlLmMNCj4gPj4gICBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jDQo+ID4+ICAgaGVh
ZC9zeXMvbmV0L2lmLmMNCj4gPj4gICBoZWFkL3N5cy9uZXRpbmV0L2lnbXAuYw0KPiA+PiAgIGhl
YWQvc3lzL25ldGluZXQvaWdtcF92YXIuaA0KPiA+PiAgIGhlYWQvc3lzL25ldGluZXQvaW4uYw0K
PiA+PiAgIGhlYWQvc3lzL25ldGluZXQvaW5fbWNhc3QuYw0KPiA+PiAgIGhlYWQvc3lzL25ldGlu
ZXQvaW5fcGNiLmMNCj4gPj4gICBoZWFkL3N5cy9uZXRpbmV0L2luX3Zhci5oDQo+ID4+ICAgaGVh
ZC9zeXMvbmV0aW5ldC9pcF9jYXJwLmMNCj4gPj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9pbjYuYw0K
PiA+PiAgIGhlYWQvc3lzL25ldGluZXQ2L2luNl9pZmF0dGFjaC5jDQo+ID4+ICAgaGVhZC9zeXMv
bmV0aW5ldDYvaW42X21jYXN0LmMNCj4gPj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9pbjZfcGNiLmMN
Cj4gPj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9pbjZfdmFyLmgNCj4gPj4gICBoZWFkL3N5cy9uZXRp
bmV0Ni9tbGQ2LmMNCj4gPj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9tbGQ2X3Zhci5oDQo+ID4+ICAg
aGVhZC9zeXMvc3lzL2d0YXNrcXVldWUuaA0KPiA+Pg0KPiA+PiBNb2RpZmllZDogaGVhZC9zeXMv
a2Vybi9zdWJyX2d0YXNrcXVldWUuYw0KPiA+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPj4g
LS0tIGhlYWQvc3lzL2tlcm4vc3Vicl9ndGFza3F1ZXVlLmMgICBXZWQgTWF5ICAyIDE3OjQxOjAw
IDIwMTggICAgICAgIChyMzMzMTc0KQ0KPiA+PiArKysgaGVhZC9zeXMva2Vybi9zdWJyX2d0YXNr
cXVldWUuYyAgIFdlZCBNYXkgIDIgMTk6MzY6MjkgMjAxOCAgICAgICAgKHIzMzMxNzUpDQo+ID4+
IEBAIC01Myw2ICs1Myw3IEBAIHN0YXRpYyB2b2lkIGd0YXNrcXVldWVfdGhyZWFkX2VucXVldWUo
dm9pZCAqKTsNCj4gPj4gIHN0YXRpYyB2b2lkICBndGFza3F1ZXVlX3RocmVhZF9sb29wKHZvaWQg
KmFyZyk7DQo+ID4+DQo+ID4+ICBUQVNLUUdST1VQX0RFRklORShzb2Z0aXJxLCBtcF9uY3B1cywg
MSk7DQo+ID4+ICtUQVNLUUdST1VQX0RFRklORShjb25maWcsIDEsIDEpOw0KPiA+Pg0KPiA+PiAg
c3RydWN0IGd0YXNrcXVldWVfYnVzeSB7DQo+ID4+ICAgICAgIHN0cnVjdCBndGFzayAgICAqdGJf
cnVubmluZzsNCj4gPj4gQEAgLTY2Miw3ICs2NjMsNyBAQCBTWVNJTklUKHRxZ19yZWNvcmRfc21w
X3N0YXJ0ZWQsIFNJX1NVQl9TTVAsIFNJX09SREVSX0YNCj4gPj4NCj4gPj4gIHZvaWQNCj4gPj4g
IHRhc2txZ3JvdXBfYXR0YWNoKHN0cnVjdCB0YXNrcWdyb3VwICpxZ3JvdXAsIHN0cnVjdCBncm91
cHRhc2sgKmd0YXNrLA0KPiA+PiAtICAgIHZvaWQgKnVuaXEsIGludCBpcnEsIGNoYXIgKm5hbWUp
DQo+ID4+ICsgICAgdm9pZCAqdW5pcSwgaW50IGlycSwgY29uc3QgY2hhciAqbmFtZSkNCj4gPj4g
IHsNCj4gPj4gICAgICAgY3B1c2V0X3QgbWFzazsNCj4gPj4gICAgICAgaW50IHFpZCwgZXJyb3I7
DQo+ID4+IEBAIC05NzYsNCArOTc3LDEzIEBAIHZvaWQNCj4gPj4gIHRhc2txZ3JvdXBfZGVzdHJv
eShzdHJ1Y3QgdGFza3Fncm91cCAqcWdyb3VwKQ0KPiA+PiAgew0KPiA+Pg0KPiA+PiArfQ0KPiA+
PiArDQo+ID4+ICt2b2lkDQo+ID4+ICt0YXNrcWdyb3VwX2NvbmZpZ19ndGFza19pbml0KHZvaWQg
KmN0eCwgc3RydWN0IGdyb3VwdGFzayAqZ3Rhc2ssIGd0YXNrX2ZuX3QgKmZuLA0KPiA+PiArICAg
ICBjb25zdCBjaGFyICpuYW1lKQ0KPiA+PiArew0KPiA+PiArDQo+ID4+ICsgICAgIEdST1VQVEFT
S19JTklUKGd0YXNrLCAwLCBmbiwgY3R4KTsNCj4gPj4gKyAgICAgdGFza3Fncm91cF9hdHRhY2go
cWdyb3VwX2NvbmZpZywgZ3Rhc2ssIGd0YXNrLCAtMSwgbmFtZSk7DQo+ID4+ICB9DQo+ID4+DQo+
ID4+IE1vZGlmaWVkOiBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jDQo+ID4+ID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KPiA+PiAtLS0gaGVhZC9zeXMva2Vybi9zdWJyX3dpdG5lc3MuYyAgICAg
IFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOCAgICAgICAgKHIzMzMxNzQpDQo+ID4+ICsrKyBoZWFk
L3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jICAgICAgV2VkIE1heSAgMiAxOTozNjoyOSAyMDE4ICAg
ICAgICAocjMzMzE3NSkNCj4gPj4gQEAgLTUzMiwxOCArNTMyLDIyIEBAIHN0YXRpYyBzdHJ1Y3Qg
d2l0bmVzc19vcmRlcl9saXN0X2VudHJ5IG9yZGVyX2xpc3RzW10gPQ0KPiA+PiAgICAgICAgKiBJ
UHY0IG11bHRpY2FzdDoNCj4gPj4gICAgICAgICogcHJvdG9jb2wgbG9ja3MgYmVmb3JlIGludGVy
ZmFjZSBsb2NrcywgYWZ0ZXIgVURQIGxvY2tzLg0KPiA+PiAgICAgICAgKi8NCj4gPj4gKyAgICAg
eyAiaW5fbXVsdGlfc3giLCAmbG9ja19jbGFzc19zeCB9LA0KPiA+PiAgICAgICB7ICJ1ZHBpbnAi
LCAmbG9ja19jbGFzc19ydyB9LA0KPiA+PiAtICAgICB7ICJpbl9tdWx0aV9tdHgiLCAmbG9ja19j
bGFzc19tdHhfc2xlZXAgfSwNCj4gPj4gKyAgICAgeyAiaW5fbXVsdGlfbGlzdF9tdHgiLCAmbG9j
a19jbGFzc19tdHhfc2xlZXAgfSwNCj4gPj4gICAgICAgeyAiaWdtcF9tdHgiLCAmbG9ja19jbGFz
c19tdHhfc2xlZXAgfSwNCj4gPj4gKyAgICAgeyAiaWZuZXRfcnciLCAmbG9ja19jbGFzc19ydyB9
LA0KPiA+PiAgICAgICB7ICJpZl9hZGRyX2xvY2siLCAmbG9ja19jbGFzc19ydyB9LA0KPiA+PiAg
ICAgICB7IE5VTEwsIE5VTEwgfSwNCj4gPj4gICAgICAgLyoNCj4gPj4gICAgICAgICogSVB2NiBt
dWx0aWNhc3Q6DQo+ID4+ICAgICAgICAqIHByb3RvY29sIGxvY2tzIGJlZm9yZSBpbnRlcmZhY2Ug
bG9ja3MsIGFmdGVyIFVEUCBsb2Nrcy4NCj4gPj4gICAgICAgICovDQo+ID4+ICsgICAgIHsgImlu
Nl9tdWx0aV9zeCIsICZsb2NrX2NsYXNzX3N4IH0sDQo+ID4+ICAgICAgIHsgInVkcGlucCIsICZs
b2NrX2NsYXNzX3J3IH0sDQo+ID4+IC0gICAgIHsgImluNl9tdWx0aV9tdHgiLCAmbG9ja19jbGFz
c19tdHhfc2xlZXAgfSwNCj4gPj4gKyAgICAgeyAiaW42X211bHRpX2xpc3RfbXR4IiwgJmxvY2tf
Y2xhc3NfbXR4X3NsZWVwIH0sDQo+ID4+ICAgICAgIHsgIm1sZF9tdHgiLCAmbG9ja19jbGFzc19t
dHhfc2xlZXAgfSwNCj4gPj4gKyAgICAgeyAiaWZuZXRfcnciLCAmbG9ja19jbGFzc19ydyB9LA0K
PiA+PiAgICAgICB7ICJpZl9hZGRyX2xvY2siLCAmbG9ja19jbGFzc19ydyB9LA0KPiA+PiAgICAg
ICB7IE5VTEwsIE5VTEwgfSwNCj4gPj4gICAgICAgLyoNCj4gPj4NCj4gPj4gTW9kaWZpZWQ6IGhl
YWQvc3lzL25ldC9pZi5jDQo+ID4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+PiAtLS0gaGVh
ZC9zeXMvbmV0L2lmLmMgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4ICAgICAgICAocjMzMzE3NCkN
Cj4gPj4gKysrIGhlYWQvc3lzL25ldC9pZi5jIFdlZCBNYXkgIDIgMTk6MzY6MjkgMjAxOCAgICAg
ICAgKHIzMzMxNzUpDQo+ID4+IEBAIC05ODUsMTEgKzk4NSwxMyBAQCBzdGF0aWMgdm9pZA0KPiA+
PiAgaWZfcHVyZ2VtYWRkcnMoc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ICB7DQo+ID4+ICAgICAg
IHN0cnVjdCBpZm11bHRpYWRkciAqaWZtYTsNCj4gPj4gLSAgICAgc3RydWN0IGlmbXVsdGlhZGRy
ICpuZXh0Ow0KPiA+Pg0KPiA+PiAgICAgICBJRl9BRERSX1dMT0NLKGlmcCk7DQo+ID4+IC0gICAg
IFRBSUxRX0ZPUkVBQ0hfU0FGRShpZm1hLCAmaWZwLT5pZl9tdWx0aWFkZHJzLCBpZm1hX2xpbmss
IG5leHQpDQo+ID4+ICsgICAgIHdoaWxlICghVEFJTFFfRU1QVFkoJmlmcC0+aWZfbXVsdGlhZGRy
cykpIHsNCj4gPj4gKyAgICAgICAgICAgICBpZm1hID0gVEFJTFFfRklSU1QoJmlmcC0+aWZfbXVs
dGlhZGRycyk7DQo+ID4+ICsgICAgICAgICAgICAgVEFJTFFfUkVNT1ZFKCZpZnAtPmlmX211bHRp
YWRkcnMsIGlmbWEsIGlmbWFfbGluayk7DQo+ID4+ICAgICAgICAgICAgICAgaWZfZGVsbXVsdGlf
bG9ja2VkKGlmcCwgaWZtYSwgMSk7DQo+ID4+ICsgICAgIH0NCj4gPj4gICAgICAgSUZfQUREUl9X
VU5MT0NLKGlmcCk7DQo+ID4+ICB9DQo+ID4+DQo+ID4+IEBAIC0zNDI5LDYgKzM0MzEsMTIgQEAg
aWZfYWRkbXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBzb2NrYWRkciAqc2EsDQo+ID4+
ICAgICAgIHN0cnVjdCBzb2NrYWRkcl9kbCBzZGw7DQo+ID4+ICAgICAgIGludCBlcnJvcjsNCj4g
Pj4NCj4gPj4gKyNpZmRlZiBJTkVUDQo+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLX0FT
U0VSVCgpOw0KPiA+PiArI2VuZGlmDQo+ID4+ICsjaWZkZWYgSU5FVDYNCj4gPj4gKyAgICAgSU42
X01VTFRJX0xJU1RfVU5MT0NLX0FTU0VSVCgpOw0KPiA+PiArI2VuZGlmDQo+ID4+ICAgICAgIC8q
DQo+ID4+ICAgICAgICAqIElmIHRoZSBhZGRyZXNzIGlzIGFscmVhZHkgcHJlc2VudCwgcmV0dXJu
IGEgbmV3IHJlZmVyZW5jZSB0byBpdDsNCj4gPj4gICAgICAgICogb3RoZXJ3aXNlLCBhbGxvY2F0
ZSBzdG9yYWdlIGFuZCBzZXQgdXAgYSBuZXcgYWRkcmVzcy4NCj4gPj4gQEAgLTM2MTAsNiArMzYx
OCw5IEBAIGlmX2RlbG11bHRpX2lmbWEoc3RydWN0IGlmbXVsdGlhZGRyICppZm1hKQ0KPiA+PiAg
ICAgICBzdHJ1Y3QgaWZuZXQgKmlmcDsNCj4gPj4gICAgICAgaW50IGxhc3RyZWY7DQo+ID4+DQo+
ID4+ICsjaWZkZWYgSU5FVA0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DS19BU1NFUlQo
KTsNCj4gPj4gKyNlbmRpZg0KPiA+PiAgICAgICBpZnAgPSBpZm1hLT5pZm1hX2lmcDsNCj4gPj4g
ICNpZmRlZiBESUFHTk9TVElDDQo+ID4+ICAgICAgIGlmIChpZnAgPT0gTlVMTCkgew0KPiA+PiBA
QCAtMzcxMSw4ICszNzIyLDcgQEAgaWZfZGVsbXVsdGlfbG9ja2VkKHN0cnVjdCBpZm5ldCAqaWZw
LCBzdHJ1Y3QgaWZtdWx0aWFkDQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICBpZl9mcmVlbXVs
dGkobGxfaWZtYSk7DQo+ID4+ICAgICAgICAgICAgICAgfQ0KPiA+PiAgICAgICB9DQo+ID4+IC0N
Cj4gPj4gLSAgICAgaWYgKGlmcCAhPSBOVUxMKQ0KPiA+PiArICAgICBpZiAoaWZwICE9IE5VTEwg
JiYgZGV0YWNoaW5nID09IDApDQo+ID4+ICAgICAgICAgICAgICAgVEFJTFFfUkVNT1ZFKCZpZnAt
PmlmX211bHRpYWRkcnMsIGlmbWEsIGlmbWFfbGluayk7DQo+ID4+DQo+ID4+ICAgICAgIGlmX2Zy
ZWVtdWx0aShpZm1hKTsNCj4gPj4NCj4gPj4gTW9kaWZpZWQ6IGhlYWQvc3lzL25ldGluZXQvaWdt
cC5jDQo+ID4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+PiAtLS0gaGVhZC9zeXMvbmV0aW5l
dC9pZ21wLmMgICBXZWQgTWF5ICAyIDE3OjQxOjAwIDIwMTggICAgICAgIChyMzMzMTc0KQ0KPiA+
PiArKysgaGVhZC9zeXMvbmV0aW5ldC9pZ21wLmMgICBXZWQgTWF5ICAyIDE5OjM2OjI5IDIwMTgg
ICAgICAgIChyMzMzMTc1KQ0KPiA+PiBAQCAtMTM2LDcgKzEzNiw3IEBAIHN0YXRpYyBpbnQgICAg
ICAgIGlnbXBfdjNfZW5xdWV1ZV9ncm91cF9yZWNvcmQoc3RydWN0IG1idWZxICoNCj4gPj4gICAg
ICAgICAgICAgICAgICAgc3RydWN0IGluX211bHRpICosIGNvbnN0IGludCwgY29uc3QgaW50LCBj
b25zdCBpbnQpOw0KPiA+PiAgc3RhdGljIGludCAgIGlnbXBfdjNfZW5xdWV1ZV9maWx0ZXJfY2hh
bmdlKHN0cnVjdCBtYnVmcSAqLA0KPiA+PiAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW5fbXVs
dGkgKik7DQo+ID4+IC1zdGF0aWMgdm9pZCAgaWdtcF92M19wcm9jZXNzX2dyb3VwX3RpbWVycyhz
dHJ1Y3QgaWdtcF9pZnNvZnRjICosDQo+ID4+ICtzdGF0aWMgdm9pZCAgaWdtcF92M19wcm9jZXNz
X2dyb3VwX3RpbWVycyhzdHJ1Y3QgaW5fbXVsdGlfaGVhZCAqLA0KPiA+PiAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QgbWJ1ZnEgKiwgc3RydWN0IG1idWZxICosIHN0cnVjdCBpbl9tdWx0aSAqLA0K
PiA+PiAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQpOw0KPiA+PiAgc3RhdGljIGludCAgIGln
bXBfdjNfbWVyZ2Vfc3RhdGVfY2hhbmdlcyhzdHJ1Y3QgaW5fbXVsdGkgKiwNCj4gPj4gQEAgLTE2
MiwxMiArMTYyLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0aXNyX2hhbmRsZXIgaWdtcF9u
aCA9IHsNCj4gPj4gICAqIHRoZW1zZWx2ZXMgYXJlIG5vdCB2aXJ0dWFsaXplZC4NCj4gPj4gICAq
DQo+ID4+ICAgKiBMb2NraW5nOg0KPiA+PiAtICogICogVGhlIHBlcm1pdHRlZCBsb2NrIG9yZGVy
IGlzOiBJTl9NVUxUSV9MT0NLLCBJR01QX0xPQ0ssIElGX0FERFJfTE9DSy4NCj4gPj4gKyAqICAq
IFRoZSBwZXJtaXR0ZWQgbG9jayBvcmRlciBpczogSU5fTVVMVElfTElTVF9MT0NLLCBJR01QX0xP
Q0ssIElGX0FERFJfTE9DSy4NCj4gPj4gICAqICAgIEFueSBtYXkgYmUgdGFrZW4gaW5kZXBlbmRl
bnRseTsgaWYgYW55IGFyZSBoZWxkIGF0IHRoZSBzYW1lDQo+ID4+ICAgKiAgICB0aW1lLCB0aGUg
YWJvdmUgbG9jayBvcmRlciBtdXN0IGJlIGZvbGxvd2VkLg0KPiA+PiAgICogICogQWxsIG91dHB1
dCBpcyBkZWxlZ2F0ZWQgdG8gdGhlIG5ldGlzci4NCj4gPj4gICAqICAgIE5vdyB0aGF0IEdpYW50
IGhhcyBiZWVuIGVsaW1pbmF0ZWQsIHRoZSBuZXRpc3IgbWF5IGJlIGlubGluZWQuDQo+ID4+IC0g
KiAgKiBJTl9NVUxUSV9MT0NLIGNvdmVycyBpbl9tdWx0aS4NCj4gPj4gKyAqICAqIElOX01VTFRJ
X0xJU1RfTE9DSyBjb3ZlcnMgaW5fbXVsdGkuDQo+ID4+ICAgKiAgKiBJR01QX0xPQ0sgY292ZXJz
IGlnbXBfaWZzb2Z0YyBhbmQgYW55IGdsb2JhbCB2YXJpYWJsZXMgaW4gdGhpcyBmaWxlLA0KPiA+
PiAgICogICAgaW5jbHVkaW5nIHRoZSBvdXRwdXQgcXVldWUuDQo+ID4+ICAgKiAgKiBJRl9BRERS
X0xPQ0sgY292ZXJzIGlmX211bHRpYWRkcnMsIHdoaWNoIGlzIHVzZWQgZm9yIGEgdmFyaWV0eSBv
Zg0KPiA+PiBAQCAtNDQxLDcgKzQ0MSw3IEBAIHN5c2N0bF9pZ21wX2lmaW5mbyhTWVNDVExfSEFO
RExFUl9BUkdTKQ0KPiA+PiAgICAgICBpZiAoZXJyb3IpDQo+ID4+ICAgICAgICAgICAgICAgcmV0
dXJuIChlcnJvcik7DQo+ID4+DQo+ID4+IC0gICAgIElOX01VTFRJX0xPQ0soKTsNCj4gPj4gKyAg
ICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ICAgICAgIElHTVBfTE9DSygpOw0KPiA+Pg0K
PiA+PiAgICAgICBpZiAobmFtZVswXSA8PSAwIHx8IG5hbWVbMF0gPiBWX2lmX2luZGV4KSB7DQo+
ID4+IEBAIC00NzUsNyArNDc1LDcgQEAgc3lzY3RsX2lnbXBfaWZpbmZvKFNZU0NUTF9IQU5ETEVS
X0FSR1MpDQo+ID4+DQo+ID4+ICBvdXRfbG9ja2VkOg0KPiA+PiAgICAgICBJR01QX1VOTE9DSygp
Ow0KPiA+PiAtICAgICBJTl9NVUxUSV9VTkxPQ0soKTsNCj4gPj4gKyAgICAgSU5fTVVMVElfTElT
VF9VTkxPQ0soKTsNCj4gPj4gICAgICAgcmV0dXJuIChlcnJvcik7DQo+ID4+ICB9DQo+ID4+DQo+
ID4+IEBAIC01ODYsNyArNTg2LDYgQEAgaWdpX2FsbG9jX2xvY2tlZCgvKmNvbnN0Ki8gc3RydWN0
IGlmbmV0ICppZnApDQo+ID4+ICAgICAgIGlnaS0+aWdpX3FpID0gSUdNUF9RSV9JTklUOw0KPiA+
PiAgICAgICBpZ2ktPmlnaV9xcmkgPSBJR01QX1FSSV9JTklUOw0KPiA+PiAgICAgICBpZ2ktPmln
aV91cmkgPSBJR01QX1VSSV9JTklUOw0KPiA+PiAtICAgICBTTElTVF9JTklUKCZpZ2ktPmlnaV9y
ZWxpbm1oZWFkKTsNCj4gPj4gICAgICAgbWJ1ZnFfaW5pdCgmaWdpLT5pZ2lfZ3EsIElHTVBfTUFY
X1JFU1BPTlNFX1BBQ0tFVFMpOw0KPiA+Pg0KPiA+PiAgICAgICBMSVNUX0lOU0VSVF9IRUFEKCZW
X2lnaV9oZWFkLCBpZ2ksIGlnaV9saW5rKTsNCj4gPj4gQEAgLTYxMiwxMSArNjExLDEyIEBAIGln
bXBfaWZkZXRhY2goc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ICB7DQo+ID4+ICAgICAgIHN0cnVj
dCBpZ21wX2lmc29mdGMgICAgICppZ2k7DQo+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRpYWRkciAg
ICAgICppZm1hOw0KPiA+PiAtICAgICBzdHJ1Y3QgaW5fbXVsdGkgICAgICAgICAqaW5tLCAqdGlu
bTsNCj4gPj4gLQ0KPiA+PiArICAgICBzdHJ1Y3QgaW5fbXVsdGkgICAgICAgICAqaW5tOw0KPiA+
PiArICAgICBzdHJ1Y3QgaW5fbXVsdGlfaGVhZCBpbm1fZnJlZV90bXA7DQo+ID4+ICAgICAgIENU
UjMoS1RSX0lHTVBWMywgIiVzOiBjYWxsZWQgZm9yIGlmcCAlcCglcykiLCBfX2Z1bmNfXywgaWZw
LA0KPiA+PiAgICAgICAgICAgaWZwLT5pZl94bmFtZSk7DQo+ID4+DQo+ID4+ICsgICAgIFNMSVNU
X0lOSVQoJmlubV9mcmVlX3RtcCk7DQo+ID4+ICAgICAgIElHTVBfTE9DSygpOw0KPiA+Pg0KPiA+
PiAgICAgICBpZ2kgPSAoKHN0cnVjdCBpbl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVU
XSktPmlpX2lnbXA7DQo+ID4+IEBAIC02MzEsMjQgKzYzMSwxNSBAQCBpZ21wX2lmZGV0YWNoKHN0
cnVjdCBpZm5ldCAqaWZwKQ0KPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICgiJXM6IGlm
bWFfcHJvdG9zcGVjIGlzIE5VTEwiLCBfX2Z1bmNfXykpOw0KPiA+PiAgI2VuZGlmDQo+ID4+ICAg
ICAgICAgICAgICAgICAgICAgICBpbm0gPSAoc3RydWN0IGluX211bHRpICopaWZtYS0+aWZtYV9w
cm90b3NwZWM7DQo+ID4+IC0gICAgICAgICAgICAgICAgICAgICBpZiAoaW5tLT5pbm1fc3RhdGUg
PT0gSUdNUF9MRUFWSU5HX01FTUJFUikgew0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTTElTVF9JTlNFUlRfSEVBRCgmaWdpLT5pZ2lfcmVsaW5taGVhZCwNCj4gPj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubSwgaW5tX25yZWxlKTsNCj4gPj4gLSAgICAg
ICAgICAgICAgICAgICAgIH0NCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgIGlmIChpbm0tPmlu
bV9zdGF0ZSA9PSBJR01QX0xFQVZJTkdfTUVNQkVSKQ0KPiA+PiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbm1fcmVsZV9sb2NrZWQoJmlubV9mcmVlX3RtcCwgaW5tKTsNCj4gPj4gICAg
ICAgICAgICAgICAgICAgICAgIGlubV9jbGVhcl9yZWNvcmRlZChpbm0pOw0KPiA+PiAgICAgICAg
ICAgICAgIH0NCj4gPj4gICAgICAgICAgICAgICBJRl9BRERSX1JVTkxPQ0soaWZwKTsNCj4gPj4g
LSAgICAgICAgICAgICAvKg0KPiA+PiAtICAgICAgICAgICAgICAqIEZyZWUgdGhlIGluX211bHRp
IHJlZmVyZW5jZShzKSBmb3IgdGhpcyBJR01QIGxpZmVjeWNsZS4NCj4gPj4gLSAgICAgICAgICAg
ICAgKi8NCj4gPj4gLSAgICAgICAgICAgICBTTElTVF9GT1JFQUNIX1NBRkUoaW5tLCAmaWdpLT5p
Z2lfcmVsaW5taGVhZCwgaW5tX25yZWxlLA0KPiA+PiAtICAgICAgICAgICAgICAgICB0aW5tKSB7
DQo+ID4+IC0gICAgICAgICAgICAgICAgICAgICBTTElTVF9SRU1PVkVfSEVBRCgmaWdpLT5pZ2lf
cmVsaW5taGVhZCwgaW5tX25yZWxlKTsNCj4gPj4gLSAgICAgICAgICAgICAgICAgICAgIGlubV9y
ZWxlYXNlX2xvY2tlZChpbm0pOw0KPiA+PiAtICAgICAgICAgICAgIH0NCj4gPj4gKyAgICAgICAg
ICAgICBpbm1fcmVsZWFzZV9saXN0X2RlZmVycmVkKCZpbm1fZnJlZV90bXApOw0KPiA+PiAgICAg
ICB9DQo+ID4+IC0NCj4gPj4gICAgICAgSUdNUF9VTkxPQ0soKTsNCj4gPj4gKw0KPiA+PiAgfQ0K
PiA+Pg0KPiA+PiAgLyoNCj4gPj4gQEAgLTY4NCwxMSArNjc1LDYgQEAgaWdpX2RlbGV0ZV9sb2Nr
ZWQoY29uc3Qgc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICBt
YnVmcV9kcmFpbigmaWdpLT5pZ2lfZ3EpOw0KPiA+Pg0KPiA+PiAgICAgICAgICAgICAgICAgICAg
ICAgTElTVF9SRU1PVkUoaWdpLCBpZ2lfbGluayk7DQo+ID4+IC0NCj4gPj4gLSAgICAgICAgICAg
ICAgICAgICAgIEtBU1NFUlQoU0xJU1RfRU1QVFkoJmlnaS0+aWdpX3JlbGlubWhlYWQpLA0KPiA+
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICgiJXM6IHRoZXJlIGFyZSBkYW5nbGluZyBpbl9t
dWx0aSByZWZlcmVuY2VzIiwNCj4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNf
XykpOw0KPiA+PiAtDQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICBmcmVlKGlnaSwgTV9JR01Q
KTsNCj4gPj4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsNCj4gPj4gICAgICAgICAgICAg
ICB9DQo+ID4+IEBAIC03MjIsNyArNzA4LDcgQEAgaWdtcF9pbnB1dF92MV9xdWVyeShzdHJ1Y3Qg
aWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGlwDQo+ID4+ICAgICAgIH0NCj4gPj4gICAgICAgSUdN
UFNUQVRfSU5DKGlncHNfcmN2X2dlbl9xdWVyaWVzKTsNCj4gPj4NCj4gPj4gLSAgICAgSU5fTVVM
VElfTE9DSygpOw0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4gICAgICAg
SUdNUF9MT0NLKCk7DQo+ID4+DQo+ID4+ICAgICAgIGlnaSA9ICgoc3RydWN0IGluX2lmaW5mbyAq
KWlmcC0+aWZfYWZkYXRhW0FGX0lORVRdKS0+aWlfaWdtcDsNCj4gPj4gQEAgLTc3OCw3ICs3NjQs
NyBAQCBpZ21wX2lucHV0X3YxX3F1ZXJ5KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3Qg
aXANCj4gPj4NCj4gPj4gIG91dF9sb2NrZWQ6DQo+ID4+ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+
ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VO
TE9DSygpOw0KPiA+Pg0KPiA+PiAgICAgICByZXR1cm4gKDApOw0KPiA+PiAgfQ0KPiA+PiBAQCAt
ODE2LDcgKzgwMiw3IEBAIGlnbXBfaW5wdXRfdjJfcXVlcnkoc3RydWN0IGlmbmV0ICppZnAsIGNv
bnN0IHN0cnVjdCBpcA0KPiA+PiAgICAgICAgICAgICAgIElHTVBTVEFUX0lOQyhpZ3BzX3Jjdl9n
cm91cF9xdWVyaWVzKTsNCj4gPj4gICAgICAgfQ0KPiA+Pg0KPiA+PiAtICAgICBJTl9NVUxUSV9M
T0NLKCk7DQo+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiAgICAgICBJR01Q
X0xPQ0soKTsNCj4gPj4NCj4gPj4gICAgICAgaWdpID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZw
LT5pZl9hZmRhdGFbQUZfSU5FVF0pLT5paV9pZ21wOw0KPiA+PiBAQCAtODcyLDcgKzg1OCw3IEBA
IGlnbXBfaW5wdXRfdjJfcXVlcnkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpcA0K
PiA+Pg0KPiA+PiAgb3V0X2xvY2tlZDoNCj4gPj4gICAgICAgSUdNUF9VTkxPQ0soKTsNCj4gPj4g
LSAgICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NL
KCk7DQo+ID4+DQo+ID4+ICAgICAgIHJldHVybiAoMCk7DQo+ID4+ICB9DQo+ID4+IEBAIC04OTks
NyArODg1LDcgQEAgaWdtcF92Ml91cGRhdGVfZ3JvdXAoc3RydWN0IGluX211bHRpICppbm0sIGNv
bnN0IGludCB0DQo+ID4+ICAgICAgIENUUjQoS1RSX0lHTVBWMywgIjB4JTA4eDogJXMvJXMgdGlt
ZXI9JWQiLCBfX2Z1bmNfXywNCj4gPj4gICAgICAgICAgIG50b2hsKGlubS0+aW5tX2FkZHIuc19h
ZGRyKSwgaW5tLT5pbm1faWZwLT5pZl94bmFtZSwgdGltZXIpOw0KPiA+Pg0KPiA+PiAtICAgICBJ
Tl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNT
RVJUKCk7DQo+ID4+DQo+ID4+ICAgICAgIHN3aXRjaCAoaW5tLT5pbm1fc3RhdGUpIHsNCj4gPj4g
ICAgICAgY2FzZSBJR01QX05PVF9NRU1CRVI6DQo+ID4+IEBAIC0xMDExLDcgKzk5Nyw3IEBAIGln
bXBfaW5wdXRfdjNfcXVlcnkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpcA0KPiA+
PiAgICAgICAgICAgICAgICAgICAgICAgSUdNUFNUQVRfSU5DKGlncHNfcmN2X2dzcl9xdWVyaWVz
KTsNCj4gPj4gICAgICAgfQ0KPiA+Pg0KPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+
ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiAgICAgICBJR01QX0xPQ0soKTsNCj4g
Pj4NCj4gPj4gICAgICAgaWdpID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZwLT5pZl9hZmRhdGFb
QUZfSU5FVF0pLT5paV9pZ21wOw0KPiA+PiBAQCAtMTA5Miw3ICsxMDc4LDcgQEAgaWdtcF9pbnB1
dF92M19xdWVyeShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGlwDQo+ID4+DQo+ID4+
ICBvdXRfbG9ja2VkOg0KPiA+PiAgICAgICBJR01QX1VOTE9DSygpOw0KPiA+PiAtICAgICBJTl9N
VUxUSV9VTkxPQ0soKTsNCj4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPj4N
Cj4gPj4gICAgICAgcmV0dXJuICgwKTsNCj4gPj4gIH0NCj4gPj4gQEAgLTExMDksNyArMTA5NSw3
IEBAIGlnbXBfaW5wdXRfdjNfZ3JvdXBfcXVlcnkoc3RydWN0IGluX211bHRpICppbm0sIHN0cnVj
dA0KPiA+PiAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgcmV0dmFsOw0KPiA+PiAgICAg
ICB1aW50MTZfdCAgICAgICAgICAgICAgICAgbnNyYzsNCj4gPj4NCj4gPj4gLSAgICAgSU5fTVVM
VElfTE9DS19BU1NFUlQoKTsNCj4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgp
Ow0KPiA+PiAgICAgICBJR01QX0xPQ0tfQVNTRVJUKCk7DQo+ID4+DQo+ID4+ICAgICAgIHJldHZh
bCA9IDA7DQo+ID4+IEBAIC0xMjQ2LDcgKzEyMzIsNyBAQCBpZ21wX2lucHV0X3YxX3JlcG9ydChz
dHJ1Y3QgaWZuZXQgKmlmcCwgLypjb25zdCovIHN0cnUNCj4gPj4gICAgICAgICogSWYgd2UgYXJl
IGEgbWVtYmVyIG9mIHRoaXMgZ3JvdXAsIGFuZCBvdXIgbWVtYmVyc2hpcCBzaG91bGQgYmUNCj4g
Pj4gICAgICAgICogcmVwb3J0ZWQsIHN0b3Agb3VyIGdyb3VwIHRpbWVyIGFuZCB0cmFuc2l0aW9u
IHRvIHRoZSAnbGF6eScgc3RhdGUuDQo+ID4+ICAgICAgICAqLw0KPiA+PiAtICAgICBJTl9NVUxU
SV9MT0NLKCk7DQo+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiAgICAgICBp
bm0gPSBpbm1fbG9va3VwKGlmcCwgaWdtcC0+aWdtcF9ncm91cCk7DQo+ID4+ICAgICAgIGlmIChp
bm0gIT0gTlVMTCkgew0KPiA+PiAgICAgICAgICAgICAgIHN0cnVjdCBpZ21wX2lmc29mdGMgKmln
aTsNCj4gPj4gQEAgLTEzMDUsNyArMTI5MSw3IEBAIGlnbXBfaW5wdXRfdjFfcmVwb3J0KHN0cnVj
dCBpZm5ldCAqaWZwLCAvKmNvbnN0Ki8gc3RydQ0KPiA+PiAgICAgICB9DQo+ID4+DQo+ID4+ICBv
dXRfbG9ja2VkOg0KPiA+PiAtICAgICBJTl9NVUxUSV9VTkxPQ0soKTsNCj4gPj4gKyAgICAgSU5f
TVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPj4NCj4gPj4gICAgICAgcmV0dXJuICgwKTsNCj4gPj4g
IH0NCj4gPj4gQEAgLTEzNzMsNyArMTM1OSw3IEBAIGlnbXBfaW5wdXRfdjJfcmVwb3J0KHN0cnVj
dCBpZm5ldCAqaWZwLCAvKmNvbnN0Ki8gc3RydQ0KPiA+PiAgICAgICAgKiByZXBvcnRlZCwgYW5k
IG91ciBncm91cCB0aW1lciBpcyBwZW5kaW5nIG9yIGFib3V0IHRvIGJlIHJlc2V0LA0KPiA+PiAg
ICAgICAgKiBzdG9wIG91ciBncm91cCB0aW1lciBieSB0cmFuc2l0aW9uaW5nIHRvIHRoZSAnbGF6
eScgc3RhdGUuDQo+ID4+ICAgICAgICAqLw0KPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+
ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiAgICAgICBpbm0gPSBpbm1fbG9v
a3VwKGlmcCwgaWdtcC0+aWdtcF9ncm91cCk7DQo+ID4+ICAgICAgIGlmIChpbm0gIT0gTlVMTCkg
ew0KPiA+PiAgICAgICAgICAgICAgIHN0cnVjdCBpZ21wX2lmc29mdGMgKmlnaTsNCj4gPj4gQEAg
LTE0MTgsNyArMTQwNCw3IEBAIGlnbXBfaW5wdXRfdjJfcmVwb3J0KHN0cnVjdCBpZm5ldCAqaWZw
LCAvKmNvbnN0Ki8gc3RydQ0KPiA+PiAgICAgICB9DQo+ID4+DQo+ID4+ICBvdXRfbG9ja2VkOg0K
PiA+PiAtICAgICBJTl9NVUxUSV9VTkxPQ0soKTsNCj4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9V
TkxPQ0soKTsNCj4gPj4NCj4gPj4gICAgICAgcmV0dXJuICgwKTsNCj4gPj4gIH0NCj4gPj4gQEAg
LTE2NDcsNiArMTYzMyw3IEBAIGlnbXBfZmFzdHRpbW9fdm5ldCh2b2lkKQ0KPiA+PiAgICAgICBz
dHJ1Y3QgaWdtcF9pZnNvZnRjICAgICAqaWdpOw0KPiA+PiAgICAgICBzdHJ1Y3QgaWZtdWx0aWFk
ZHIgICAgICAqaWZtYTsNCj4gPj4gICAgICAgc3RydWN0IGluX211bHRpICAgICAgICAgKmlubTsN
Cj4gPj4gKyAgICAgc3RydWN0IGluX211bHRpX2hlYWQgaW5tX2ZyZWVfdG1wOw0KPiA+PiAgICAg
ICBpbnQgICAgICAgICAgICAgICAgICAgICAgbG9vcCwgdXJpX2Zhc3RoejsNCj4gPj4NCj4gPj4g
ICAgICAgbG9vcCA9IDA7DQo+ID4+IEBAIC0xNjYyLDcgKzE2NDksOCBAQCBpZ21wX2Zhc3R0aW1v
X3ZuZXQodm9pZCkNCj4gPj4gICAgICAgICAgICFWX3N0YXRlX2NoYW5nZV90aW1lcnNfcnVubmlu
ZykNCj4gPj4gICAgICAgICAgICAgICByZXR1cm47DQo+ID4+DQo+ID4+IC0gICAgIElOX01VTFRJ
X0xPQ0soKTsNCj4gPj4gKyAgICAgU0xJU1RfSU5JVCgmaW5tX2ZyZWVfdG1wKTsNCj4gPj4gKyAg
ICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ICAgICAgIElHTVBfTE9DSygpOw0KPiA+Pg0K
PiA+PiAgICAgICAvKg0KPiA+PiBAQCAtMTcyMCw3ICsxNzA4LDcgQEAgaWdtcF9mYXN0dGltb192
bmV0KHZvaWQpDQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ2ktPmln
aV92ZXJzaW9uKTsNCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+
ID4+ICAgICAgICAgICAgICAgICAgICAgICBjYXNlIElHTVBfVkVSU0lPTl8zOg0KPiA+PiAtICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKGln
aSwgJnFycSwNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdtcF92M19wcm9j
ZXNzX2dyb3VwX3RpbWVycygmaW5tX2ZyZWVfdG1wLCAmcXJxLA0KPiA+PiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJnNjcSwgaW5tLCB1cmlfZmFzdGh6KTsNCj4gPj4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4+ICAgICAgICAgICAgICAgICAgICAg
ICB9DQo+ID4+IEBAIC0xNzI4LDggKzE3MTYsNiBAQCBpZ21wX2Zhc3R0aW1vX3ZuZXQodm9pZCkN
Cj4gPj4gICAgICAgICAgICAgICBJRl9BRERSX1JVTkxPQ0soaWZwKTsNCj4gPj4NCj4gPj4gICAg
ICAgICAgICAgICBpZiAoaWdpLT5pZ2lfdmVyc2lvbiA9PSBJR01QX1ZFUlNJT05fMykgew0KPiA+
PiAtICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGluX211bHRpICAgICAgICAgKnRpbm07DQo+
ID4+IC0NCj4gPj4gICAgICAgICAgICAgICAgICAgICAgIGlnbXBfZGlzcGF0Y2hfcXVldWUoJnFy
cSwgMCwgbG9vcCk7DQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICBpZ21wX2Rpc3BhdGNoX3F1
ZXVlKCZzY3EsIDAsIGxvb3ApOw0KPiA+Pg0KPiA+PiBAQCAtMTczNywxOCArMTcyMywxMyBAQCBp
Z21wX2Zhc3R0aW1vX3ZuZXQodm9pZCkNCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAqIEZy
ZWUgdGhlIGluX211bHRpIHJlZmVyZW5jZShzKSBmb3IgdGhpcw0KPiA+PiAgICAgICAgICAgICAg
ICAgICAgICAgICogSUdNUCBsaWZlY3ljbGUuDQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAg
Ki8NCj4gPj4gLSAgICAgICAgICAgICAgICAgICAgIFNMSVNUX0ZPUkVBQ0hfU0FGRShpbm0sICZp
Z2ktPmlnaV9yZWxpbm1oZWFkLA0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgIGlubV9u
cmVsZSwgdGlubSkgew0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTElTVF9S
RU1PVkVfSEVBRCgmaWdpLT5pZ2lfcmVsaW5taGVhZCwNCj4gPj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlubV9ucmVsZSk7DQo+ID4+IC0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlubV9yZWxlYXNlX2xvY2tlZChpbm0pOw0KPiA+PiAtICAgICAgICAgICAgICAgICAg
ICAgfQ0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgaW5tX3JlbGVhc2VfbGlzdF9kZWZlcnJl
ZCgmaW5tX2ZyZWVfdG1wKTsNCj4gPj4gICAgICAgICAgICAgICB9DQo+ID4+ICAgICAgIH0NCj4g
Pj4NCj4gPj4gIG91dF9sb2NrZWQ6DQo+ID4+ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4+IC0g
ICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygp
Ow0KPiA+PiAgfQ0KPiA+Pg0KPiA+PiAgLyoNCj4gPj4gQEAgLTE3NjAsNyArMTc0MSw3IEBAIGln
bXBfdjF2Ml9wcm9jZXNzX2dyb3VwX3RpbWVyKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBjbw0KPiA+
PiAgew0KPiA+PiAgICAgICBpbnQgcmVwb3J0X3RpbWVyX2V4cGlyZWQ7DQo+ID4+DQo+ID4+IC0g
ICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9D
S19BU1NFUlQoKTsNCj4gPj4gICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+Pg0KPiA+PiAg
ICAgICBpZiAoaW5tLT5pbm1fdGltZXIgPT0gMCkgew0KPiA+PiBAQCAtMTgwMiwxNCArMTc4Mywx
NCBAQCBpZ21wX3YxdjJfcHJvY2Vzc19ncm91cF90aW1lcihzdHJ1Y3QgaW5fbXVsdGkgKmlubSwg
Y28NCj4gPj4gICAqIE5vdGU6IFVubG9ja2VkIHJlYWQgZnJvbSBpZ2kuDQo+ID4+ICAgKi8NCj4g
Pj4gIHN0YXRpYyB2b2lkDQo+ID4+IC1pZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKHN0cnVj
dCBpZ21wX2lmc29mdGMgKmlnaSwNCj4gPj4gK2lnbXBfdjNfcHJvY2Vzc19ncm91cF90aW1lcnMo
c3RydWN0IGluX211bHRpX2hlYWQgKmlubWgsDQo+ID4+ICAgICAgc3RydWN0IG1idWZxICpxcnEs
IHN0cnVjdCBtYnVmcSAqc2NxLA0KPiA+PiAgICAgIHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBjb25z
dCBpbnQgdXJpX2Zhc3RoeikNCj4gPj4gIHsNCj4gPj4gICAgICAgaW50IHF1ZXJ5X3Jlc3BvbnNl
X3RpbWVyX2V4cGlyZWQ7DQo+ID4+ICAgICAgIGludCBzdGF0ZV9jaGFuZ2VfcmV0cmFuc21pdF90
aW1lcl9leHBpcmVkOw0KPiA+Pg0KPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0K
PiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ICAgICAgIElHTVBf
TE9DS19BU1NFUlQoKTsNCj4gPj4NCj4gPj4gICAgICAgcXVlcnlfcmVzcG9uc2VfdGltZXJfZXhw
aXJlZCA9IDA7DQo+ID4+IEBAIC0xOTA3LDggKzE4ODgsNyBAQCBpZ21wX3YzX3Byb2Nlc3NfZ3Jv
dXBfdGltZXJzKHN0cnVjdCBpZ21wX2lmc29mdGMgKmlnaSwNCj4gPj4gICAgICAgICAgICAgICAg
ICAgICAgIGlmIChpbm0tPmlubV9zdGF0ZSA9PSBJR01QX0xFQVZJTkdfTUVNQkVSICYmDQo+ID4+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5tLT5pbm1fc2NydiA9PSAwKSB7DQo+ID4+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubS0+aW5tX3N0YXRlID0gSUdNUF9OT1RfTUVN
QkVSOw0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTElTVF9JTlNFUlRfSEVB
RCgmaWdpLT5pZ2lfcmVsaW5taGVhZCwNCj4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlubSwgaW5tX25yZWxlKTsNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW5tX3JlbGVfbG9ja2VkKGlubWgsIGlubSk7DQo+ID4+ICAgICAgICAgICAgICAgICAgICAg
ICB9DQo+ID4+ICAgICAgICAgICAgICAgfQ0KPiA+PiAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+
PiBAQCAtMTkyOSw3ICsxOTA5LDcgQEAgc3RhdGljIHZvaWQNCj4gPj4gIGlnbXBfdjNfc3VwcHJl
c3NfZ3JvdXBfcmVjb3JkKHN0cnVjdCBpbl9tdWx0aSAqaW5tKQ0KPiA+PiAgew0KPiA+Pg0KPiA+
PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNU
X0xPQ0tfQVNTRVJUKCk7DQo+ID4+DQo+ID4+ICAgICAgIEtBU1NFUlQoaW5tLT5pbm1faWdpLT5p
Z2lfdmVyc2lvbiA9PSBJR01QX1ZFUlNJT05fMywNCj4gPj4gICAgICAgICAgICAgICAoIiVzOiBu
b3QgSUdNUHYzIG1vZGUgb24gbGluayIsIF9fZnVuY19fKSk7DQo+ID4+IEBAIC0yMDAzLDEzICsx
OTgzLDE1IEBAIGlnbXBfdjNfY2FuY2VsX2xpbmtfdGltZXJzKHN0cnVjdCBpZ21wX2lmc29mdGMg
KmlnaSkNCj4gPj4gIHsNCj4gPj4gICAgICAgc3RydWN0IGlmbXVsdGlhZGRyICAgICAgKmlmbWE7
DQo+ID4+ICAgICAgIHN0cnVjdCBpZm5ldCAgICAgICAgICAgICppZnA7DQo+ID4+IC0gICAgIHN0
cnVjdCBpbl9tdWx0aSAgICAgICAgICppbm0sICp0aW5tOw0KPiA+PiArICAgICBzdHJ1Y3QgaW5f
bXVsdGkgICAgICAgICAqaW5tOw0KPiA+PiArICAgICBzdHJ1Y3QgaW5fbXVsdGlfaGVhZCBpbm1f
ZnJlZV90bXA7DQo+ID4+DQo+ID4+ICAgICAgIENUUjMoS1RSX0lHTVBWMywgIiVzOiBjYW5jZWwg
djMgdGltZXJzIG9uIGlmcCAlcCglcykiLCBfX2Z1bmNfXywNCj4gPj4gICAgICAgICAgIGlnaS0+
aWdpX2lmcCwgaWdpLT5pZ2lfaWZwLT5pZl94bmFtZSk7DQo+ID4+DQo+ID4+IC0gICAgIElOX01V
TFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQo
KTsNCj4gPj4gICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+PiArICAgICBTTElTVF9JTklU
KCZpbm1fZnJlZV90bXApOw0KPiA+Pg0KPiA+PiAgICAgICAvKg0KPiA+PiAgICAgICAgKiBTdG9w
IHRoZSB2MyBHZW5lcmFsIFF1ZXJ5IFJlc3BvbnNlIG9uIHRoaXMgbGluayBzdG9uZSBkZWFkLg0K
PiA+PiBAQCAtMjA1MCw3ICsyMDMyLDcgQEAgaWdtcF92M19jYW5jZWxfbGlua190aW1lcnMoc3Ry
dWN0IGlnbXBfaWZzb2Z0YyAqaWdpKQ0KPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICogbWVz
c2FnZSBpcyBzZW50IHVwc3RyZWFtIHRvIHRoZSBvbGQgcXVlcmllciAtLQ0KPiA+PiAgICAgICAg
ICAgICAgICAgICAgICAgICogdHJhbnNpdGlvbiB0byBOT1Qgd291bGQgbG9zZSB0aGUgbGVhdmUg
YW5kIHJhY2UuDQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgKi8NCj4gPj4gLSAgICAgICAg
ICAgICAgICAgICAgIFNMSVNUX0lOU0VSVF9IRUFEKCZpZ2ktPmlnaV9yZWxpbm1oZWFkLCBpbm0s
IGlubV9ucmVsZSk7DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICBpbm1fcmVsZV9sb2NrZWQo
JmlubV9mcmVlX3RtcCwgaW5tKTsNCj4gPj4gICAgICAgICAgICAgICAgICAgICAgIC8qIEZBTExU
SFJPVUdIICovDQo+ID4+ICAgICAgICAgICAgICAgY2FzZSBJR01QX0dfUVVFUllfUEVORElOR19N
RU1CRVI6DQo+ID4+ICAgICAgICAgICAgICAgY2FzZSBJR01QX1NHX1FVRVJZX1BFTkRJTkdfTUVN
QkVSOg0KPiA+PiBAQCAtMjA2OSwxMCArMjA1MSw4IEBAIGlnbXBfdjNfY2FuY2VsX2xpbmtfdGlt
ZXJzKHN0cnVjdCBpZ21wX2lmc29mdGMgKmlnaSkNCj4gPj4gICAgICAgICAgICAgICBtYnVmcV9k
cmFpbigmaW5tLT5pbm1fc2NxKTsNCj4gPj4gICAgICAgfQ0KPiA+PiAgICAgICBJRl9BRERSX1JV
TkxPQ0soaWZwKTsNCj4gPj4gLSAgICAgU0xJU1RfRk9SRUFDSF9TQUZFKGlubSwgJmlnaS0+aWdp
X3JlbGlubWhlYWQsIGlubV9ucmVsZSwgdGlubSkgew0KPiA+PiAtICAgICAgICAgICAgIFNMSVNU
X1JFTU9WRV9IRUFEKCZpZ2ktPmlnaV9yZWxpbm1oZWFkLCBpbm1fbnJlbGUpOw0KPiA+PiAtICAg
ICAgICAgICAgIGlubV9yZWxlYXNlX2xvY2tlZChpbm0pOw0KPiA+PiAtICAgICB9DQo+ID4+ICsN
Cj4gPj4gKyAgICAgaW5tX3JlbGVhc2VfbGlzdF9kZWZlcnJlZCgmaW5tX2ZyZWVfdG1wKTsNCj4g
Pj4gIH0NCj4gPj4NCj4gPj4gIC8qDQo+ID4+IEBAIC0yMTk5LDcgKzIxNzksNyBAQCBpZ21wX3Yx
djJfcXVldWVfcmVwb3J0KHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBjb25zdCBpbnQNCj4gPj4gICAg
ICAgc3RydWN0IGlwICAgICAgICAgICAgICAgKmlwOw0KPiA+PiAgICAgICBzdHJ1Y3QgbWJ1ZiAg
ICAgICAgICAgICAqbTsNCj4gPj4NCj4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsN
Cj4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiAgICAgICBJR01Q
X0xPQ0tfQVNTRVJUKCk7DQo+ID4+DQo+ID4+ICAgICAgIGlmcCA9IGlubS0+aW5tX2lmcDsNCj4g
Pj4gQEAgLTIyNzYsMTAgKzIyNTYsOCBAQCBpZ21wX2NoYW5nZV9zdGF0ZShzdHJ1Y3QgaW5fbXVs
dGkgKmlubSkNCj4gPj4gICAgICAgc3RydWN0IGlmbmV0ICppZnA7DQo+ID4+ICAgICAgIGludCBl
cnJvcjsNCj4gPj4NCj4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gLQ0K
PiA+PiAgICAgICBlcnJvciA9IDA7DQo+ID4+IC0NCj4gPj4gKyAgICAgSU5fTVVMVElfTE9DS19B
U1NFUlQoKTsNCj4gPj4gICAgICAgLyoNCj4gPj4gICAgICAgICogVHJ5IHRvIGRldGVjdCBpZiB0
aGUgdXBwZXIgbGF5ZXIganVzdCBhc2tlZCB1cyB0byBjaGFuZ2Ugc3RhdGUNCj4gPj4gICAgICAg
ICogZm9yIGFuIGludGVyZmFjZSB3aGljaCBoYXMgbm93IGdvbmUgYXdheS4NCj4gPj4gQEAgLTIz
NzksOSArMjM1NywxMCBAQCBpZ21wX2luaXRpYWxfam9pbihzdHJ1Y3QgaW5fbXVsdGkgKmlubSwg
c3RydWN0IGlnbXBfaWYNCj4gPj4gICAgICAgICAgICAgICAgKiBncm91cCBhcm91bmQgZm9yIHRo
ZSBmaW5hbCBJTkNMVURFIHt9IGVucXVldWUuDQo+ID4+ICAgICAgICAgICAgICAgICovDQo+ID4+
ICAgICAgICAgICAgICAgaWYgKGlnaS0+aWdpX3ZlcnNpb24gPT0gSUdNUF9WRVJTSU9OXzMgJiYN
Cj4gPj4gLSAgICAgICAgICAgICAgICAgaW5tLT5pbm1fc3RhdGUgPT0gSUdNUF9MRUFWSU5HX01F
TUJFUikNCj4gPj4gLSAgICAgICAgICAgICAgICAgICAgIGlubV9yZWxlYXNlX2xvY2tlZChpbm0p
Ow0KPiA+PiAtDQo+ID4+ICsgICAgICAgICAgICAgICAgIGlubS0+aW5tX3N0YXRlID09IElHTVBf
TEVBVklOR19NRU1CRVIpIHsNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgIE1QQVNTKGlubS0+
aW5tX3JlZmNvdW50ID4gMSk7DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICBpbm1fcmVsZV9s
b2NrZWQoTlVMTCwgaW5tKTsNCj4gPj4gKyAgICAgICAgICAgICB9DQo+ID4+ICAgICAgICAgICAg
ICAgaW5tLT5pbm1fc3RhdGUgPSBJR01QX1JFUE9SVElOR19NRU1CRVI7DQo+ID4+DQo+ID4+ICAg
ICAgICAgICAgICAgc3dpdGNoIChpZ2ktPmlnaV92ZXJzaW9uKSB7DQo+ID4+IEBAIC0yNDczLDcg
KzI0NTIsNyBAQCBpZ21wX2hhbmRsZV9zdGF0ZV9jaGFuZ2Uoc3RydWN0IGluX211bHRpICppbm0s
IHN0cnVjdA0KPiA+Pg0KPiA+PiAgICAgICBpZnAgPSBpbm0tPmlubV9pZnA7DQo+ID4+DQo+ID4+
IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ICsgICAgIElOX01VTFRJX0xJU1Rf
TE9DS19BU1NFUlQoKTsNCj4gPj4gICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+Pg0KPiA+
PiAgICAgICBLQVNTRVJUKGlnaSAmJiBpZ2ktPmlnaV9pZnAgPT0gaWZwLCAoIiVzOiBpbmNvbnNp
c3RlbnQgaWZwIiwgX19mdW5jX18pKTsNCj4gPj4gQEAgLTI1MzEsNyArMjUxMCw3IEBAIGlnbXBf
ZmluYWxfbGVhdmUoc3RydWN0IGluX211bHRpICppbm0sIHN0cnVjdCBpZ21wX2lmcw0KPiA+PiAg
ICAgICAgICAgX19mdW5jX18sIG50b2hsKGlubS0+aW5tX2FkZHIuc19hZGRyKSwgaW5tLT5pbm1f
aWZwLA0KPiA+PiAgICAgICAgICAgaW5tLT5pbm1faWZwLT5pZl94bmFtZSk7DQo+ID4+DQo+ID4+
IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ICsgICAgIElOX01VTFRJX0xJU1Rf
TE9DS19BU1NFUlQoKTsNCj4gPj4gICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+Pg0KPiA+
PiAgICAgICBzd2l0Y2ggKGlubS0+aW5tX3N0YXRlKSB7DQo+ID4+IEBAIC0yNjU4LDcgKzI2Mzcs
NyBAQCBpZ21wX3YzX2VucXVldWVfZ3JvdXBfcmVjb3JkKHN0cnVjdCBtYnVmcSAqbXEsIHN0cnVj
dA0KPiA+PiAgICAgICBpbl9hZGRyX3QgICAgICAgICAgICAgICAgbmFkZHI7DQo+ID4+ICAgICAg
IHVpbnQ4X3QgICAgICAgICAgICAgICAgICBtb2RlOw0KPiA+Pg0KPiA+PiAtICAgICBJTl9NVUxU
SV9MT0NLX0FTU0VSVCgpOw0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7
DQo+ID4+DQo+ID4+ICAgICAgIGVycm9yID0gMDsNCj4gPj4gICAgICAgaWZwID0gaW5tLT5pbm1f
aWZwOw0KPiA+PiBAQCAtMzAxOCw3ICsyOTk3LDcgQEAgaWdtcF92M19lbnF1ZXVlX2ZpbHRlcl9j
aGFuZ2Uoc3RydWN0IG1idWZxICptcSwgc3RydWN0DQo+ID4+ICAgICAgIHVpbnQ4X3QgICAgICAg
ICAgICAgICAgICBtb2RlLCBub3csIHRoZW47DQo+ID4+ICAgICAgIHJlY3R5cGVfdCAgICAgICAg
ICAgICAgICBjcnQsIGRydCwgbnJ0Ow0KPiA+Pg0KPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FT
U0VSVCgpOw0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+DQo+
ID4+ICAgICAgIGlmIChpbm0tPmlubV9uc3JjID09IDAgfHwNCj4gPj4gICAgICAgICAgIChpbm0t
PmlubV9zdFswXS5pc3NfYXNtID4gMCAmJiBpbm0tPmlubV9zdFsxXS5pc3NfYXNtID4gMCkpDQo+
ID4+IEBAIC0zMjIxLDcgKzMyMDAsNyBAQCBpZ21wX3YzX21lcmdlX3N0YXRlX2NoYW5nZXMoc3Ry
dWN0IGluX211bHRpICppbm0sIHN0cnUNCj4gPj4gICAgICAgZG9tZXJnZSA9IDA7DQo+ID4+ICAg
ICAgIHJlY3NsZW4gPSAwOw0KPiA+Pg0KPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgp
Ow0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ICAgICAgIElH
TVBfTE9DS19BU1NFUlQoKTsNCj4gPj4NCj4gPj4gICAgICAgLyoNCj4gPj4gQEAgLTMzMjAsNyAr
MzI5OSw3IEBAIGlnbXBfdjNfZGlzcGF0Y2hfZ2VuZXJhbF9xdWVyeShzdHJ1Y3QgaWdtcF9pZnNv
ZnRjICppZw0KPiA+PiAgICAgICBzdHJ1Y3QgaW5fbXVsdGkgICAgICAgICAqaW5tOw0KPiA+PiAg
ICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgcmV0dmFsLCBsb29wOw0KPiA+Pg0KPiA+PiAt
ICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xP
Q0tfQVNTRVJUKCk7DQo+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPj4NCj4gPj4g
ICAgICAgS0FTU0VSVChpZ2ktPmlnaV92ZXJzaW9uID09IElHTVBfVkVSU0lPTl8zLA0KPiA+PiBA
QCAtMzYzMiw3ICszNjExLDYgQEAgREJfU0hPV19DT01NQU5EKGlnaV9saXN0LCBkYl9zaG93X2ln
aV9saXN0KQ0KPiA+PiAgICAgICAgICAgICAgIGRiX3ByaW50ZigiICAgIHFpICV1XG4iLCBpZ2kt
PmlnaV9xaSk7DQo+ID4+ICAgICAgICAgICAgICAgZGJfcHJpbnRmKCIgICAgcXJpICV1XG4iLCBp
Z2ktPmlnaV9xcmkpOw0KPiA+PiAgICAgICAgICAgICAgIGRiX3ByaW50ZigiICAgIHVyaSAldVxu
IiwgaWdpLT5pZ2lfdXJpKTsNCj4gPj4gLSAgICAgICAgICAgICAvKiBTTElTVF9IRUFEKCxpbl9t
dWx0aSkgICBpZ2lfcmVsaW5taGVhZCAqLw0KPiA+PiAgICAgICAgICAgICAgIC8qIHN0cnVjdCBt
YnVmcSAgICBpZ2lfZ3E7ICovDQo+ID4+ICAgICAgICAgICAgICAgZGJfcHJpbnRmKCJcbiIpOw0K
PiA+PiAgICAgICB9DQo+ID4+DQo+ID4+IE1vZGlmaWVkOiBoZWFkL3N5cy9uZXRpbmV0L2lnbXBf
dmFyLmgNCj4gPj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4+IC0tLSBoZWFkL3N5cy9uZXRp
bmV0L2lnbXBfdmFyLmggICAgICAgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4ICAgICAgICAocjMz
MzE3NCkNCj4gPj4gKysrIGhlYWQvc3lzL25ldGluZXQvaWdtcF92YXIuaCAgICAgICBXZWQgTWF5
ICAyIDE5OjM2OjI5IDIwMTggICAgICAgIChyMzMzMTc1KQ0KPiA+PiBAQCAtMjE0LDcgKzIxNCw2
IEBAIHN0cnVjdCBpZ21wX2lmc29mdGMgew0KPiA+PiAgICAgICB1aW50MzJfdCBpZ2lfcWk7ICAg
ICAgICAvKiBJR01QdjMgUXVlcnkgSW50ZXJ2YWwgKHMpICovDQo+ID4+ICAgICAgIHVpbnQzMl90
IGlnaV9xcmk7ICAgICAgIC8qIElHTVB2MyBRdWVyeSBSZXNwb25zZSBJbnRlcnZhbCAocykgKi8N
Cj4gPj4gICAgICAgdWludDMyX3QgaWdpX3VyaTsgICAgICAgLyogSUdNUHYzIFVuc29saWNpdGVk
IFJlcG9ydCBJbnRlcnZhbCAocykgKi8NCj4gPj4gLSAgICAgU0xJU1RfSEVBRCgsaW5fbXVsdGkp
ICAgaWdpX3JlbGlubWhlYWQ7IC8qIHJlbGVhc2VkIGdyb3VwcyAqLw0KPiA+PiAgICAgICBzdHJ1
Y3QgbWJ1ZnEgICAgaWdpX2dxOyAgICAgICAgIC8qIGdlbmVyYWwgcXVlcnkgcmVzcG9uc2VzIHF1
ZXVlICovDQo+ID4+ICB9Ow0KPiA+Pg0KPiA+Pg0KPiA+PiBNb2RpZmllZDogaGVhZC9zeXMvbmV0
aW5ldC9pbi5jDQo+ID4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+PiAtLS0gaGVhZC9zeXMv
bmV0aW5ldC9pbi5jICAgICBXZWQgTWF5ICAyIDE3OjQxOjAwIDIwMTggICAgICAgIChyMzMzMTc0
KQ0KPiA+PiArKysgaGVhZC9zeXMvbmV0aW5ldC9pbi5jICAgICBXZWQgTWF5ICAyIDE5OjM2OjI5
IDIwMTggICAgICAgIChyMzMzMTc1KQ0KPiA+PiBAQCAtNjMyLDEyICs2MzIsMTAgQEAgaW5fZGlm
YWRkcl9pb2N0bCh1X2xvbmcgY21kLCBjYWRkcl90IGRhdGEsIHN0cnVjdCBpZm5lDQo+ID4+ICAg
ICAgICAgICAgICAgc3RydWN0IGluX2lmaW5mbyAqaWk7DQo+ID4+DQo+ID4+ICAgICAgICAgICAg
ICAgaWkgPSAoKHN0cnVjdCBpbl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXSk7DQo+
ID4+IC0gICAgICAgICAgICAgSU5fTVVMVElfTE9DSygpOw0KPiA+PiAgICAgICAgICAgICAgIGlm
IChpaS0+aWlfYWxsaG9zdHMpIHsNCj4gPj4gLSAgICAgICAgICAgICAgICAgICAgICh2b2lkKWlu
X2xlYXZlZ3JvdXBfbG9ja2VkKGlpLT5paV9hbGxob3N0cywgTlVMTCk7DQo+ID4+ICsgICAgICAg
ICAgICAgICAgICAgICAodm9pZClpbl9sZWF2ZWdyb3VwKGlpLT5paV9hbGxob3N0cywgTlVMTCk7
DQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICBpaS0+aWlfYWxsaG9zdHMgPSBOVUxMOw0KPiA+
PiAgICAgICAgICAgICAgIH0NCj4gPj4gLSAgICAgICAgICAgICBJTl9NVUxUSV9VTkxPQ0soKTsN
Cj4gPj4gICAgICAgfQ0KPiA+Pg0KPiA+PiAgICAgICBJRl9BRERSX1dMT0NLKGlmcCk7DQo+ID4+
IEBAIC05OTQsMTEgKzk5MiwxMiBAQCBpbl9icm9hZGNhc3Qoc3RydWN0IGluX2FkZHIgaW4sIHN0
cnVjdCBpZm5ldCAqaWZwKQ0KPiA+PiAgdm9pZA0KPiA+PiAgaW5faWZkZXRhY2goc3RydWN0IGlm
bmV0ICppZnApDQo+ID4+ICB7DQo+ID4+IC0NCj4gPj4gKyAgICAgSU5fTVVMVElfTE9DSygpOw0K
PiA+PiAgICAgICBpbl9wY2JwdXJnZWlmMCgmVl9yaXBjYmluZm8sIGlmcCk7DQo+ID4+ICAgICAg
IGluX3BjYnB1cmdlaWYwKCZWX3VkYmluZm8sIGlmcCk7DQo+ID4+ICAgICAgIGluX3BjYnB1cmdl
aWYwKCZWX3VsaXRlY2JpbmZvLCBpZnApOw0KPiA+PiAgICAgICBpbl9wdXJnZW1hZGRycyhpZnAp
Ow0KPiA+PiArICAgICBJTl9NVUxUSV9VTkxPQ0soKTsNCj4gPj4gIH0NCj4gPj4NCj4gPj4gIC8q
DQo+ID4+IEBAIC0xMDExLDEyICsxMDEwLDEyIEBAIGluX2lmZGV0YWNoKHN0cnVjdCBpZm5ldCAq
aWZwKQ0KPiA+PiAgc3RhdGljIHZvaWQNCj4gPj4gIGluX3B1cmdlbWFkZHJzKHN0cnVjdCBpZm5l
dCAqaWZwKQ0KPiA+PiAgew0KPiA+PiAtICAgICBMSVNUX0hFQUQoLGluX211bHRpKSBwdXJnZWlu
bXM7DQo+ID4+IC0gICAgIHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICppbm0sICp0aW5tOw0KPiA+
PiArICAgICBzdHJ1Y3QgaW5fbXVsdGlfaGVhZCBwdXJnZWlubXM7DQo+ID4+ICsgICAgIHN0cnVj
dCBpbl9tdWx0aSAgICAgICAgICppbm07DQo+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRpYWRkciAg
ICAgICppZm1hOw0KPiA+Pg0KPiA+PiAtICAgICBMSVNUX0lOSVQoJnB1cmdlaW5tcyk7DQo+ID4+
IC0gICAgIElOX01VTFRJX0xPQ0soKTsNCj4gPj4gKyAgICAgU0xJU1RfSU5JVCgmcHVyZ2Vpbm1z
KTsNCj4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+DQo+ID4+ICAgICAgIC8q
DQo+ID4+ICAgICAgICAqIEV4dHJhY3QgbGlzdCBvZiBpbl9tdWx0aSBhc3NvY2lhdGVkIHdpdGgg
dGhlIGRldGFjaGluZyBpZnANCj4gPj4gQEAgLTEwMzQsMTcgKzEwMzMsMTMgQEAgaW5fcHVyZ2Vt
YWRkcnMoc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ICAgICAgICAgICAgICAgICAgICgiJXM6IGlm
bWFfcHJvdG9zcGVjIGlzIE5VTEwiLCBfX2Z1bmNfXykpOw0KPiA+PiAgI2VuZGlmDQo+ID4+ICAg
ICAgICAgICAgICAgaW5tID0gKHN0cnVjdCBpbl9tdWx0aSAqKWlmbWEtPmlmbWFfcHJvdG9zcGVj
Ow0KPiA+PiAtICAgICAgICAgICAgIExJU1RfSU5TRVJUX0hFQUQoJnB1cmdlaW5tcywgaW5tLCBp
bm1fbGluayk7DQo+ID4+ICsgICAgICAgICAgICAgaW5tX3JlbGVfbG9ja2VkKCZwdXJnZWlubXMs
IGlubSk7DQo+ID4+ICAgICAgIH0NCj4gPj4gICAgICAgSUZfQUREUl9SVU5MT0NLKGlmcCk7DQo+
ID4+DQo+ID4+IC0gICAgIExJU1RfRk9SRUFDSF9TQUZFKGlubSwgJnB1cmdlaW5tcywgaW5tX2xp
bmssIHRpbm0pIHsNCj4gPj4gLSAgICAgICAgICAgICBMSVNUX1JFTU9WRShpbm0sIGlubV9saW5r
KTsNCj4gPj4gLSAgICAgICAgICAgICBpbm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4gPj4gLSAg
ICAgfQ0KPiA+PiArICAgICBpbm1fcmVsZWFzZV9saXN0X2RlZmVycmVkKCZwdXJnZWlubXMpOw0K
PiA+PiAgICAgICBpZ21wX2lmZGV0YWNoKGlmcCk7DQo+ID4+IC0NCj4gPj4gLSAgICAgSU5fTVVM
VElfVU5MT0NLKCk7DQo+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ICB9
DQo+ID4+DQo+ID4+ICBzdHJ1Y3QgaW5fbGxlbnRyeSB7DQo+ID4+DQo+ID4+IE1vZGlmaWVkOiBo
ZWFkL3N5cy9uZXRpbmV0L2luX21jYXN0LmMNCj4gPj4gPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+
ID4+IC0tLSBoZWFkL3N5cy9uZXRpbmV0L2luX21jYXN0LmMgICAgICAgV2VkIE1heSAgMiAxNzo0
MTowMCAyMDE4ICAgICAgICAocjMzMzE3NCkNCj4gPj4gKysrIGhlYWQvc3lzL25ldGluZXQvaW5f
bWNhc3QuYyAgICAgICBXZWQgTWF5ICAyIDE5OjM2OjI5IDIwMTggICAgICAgIChyMzMzMTc1KQ0K
PiA+PiBAQCAtNTEsNiArNTEsNyBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7DQo+ID4+ICAjaW5j
bHVkZSA8c3lzL3N5c2N0bC5oPg0KPiA+PiAgI2luY2x1ZGUgPHN5cy9rdHIuaD4NCj4gPj4gICNp
bmNsdWRlIDxzeXMvdGFza3F1ZXVlLmg+DQo+ID4+ICsjaW5jbHVkZSA8c3lzL2d0YXNrcXVldWUu
aD4NCj4gPj4gICNpbmNsdWRlIDxzeXMvdHJlZS5oPg0KPiA+Pg0KPiA+PiAgI2luY2x1ZGUgPG5l
dC9pZi5oPg0KPiA+PiBAQCAtNTksNiArNjAsOCBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7DQo+
ID4+ICAjaW5jbHVkZSA8bmV0L3JvdXRlLmg+DQo+ID4+ICAjaW5jbHVkZSA8bmV0L3ZuZXQuaD4N
Cj4gPj4NCj4gPj4gKyNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4NCj4gPj4gKw0KPiA+PiAgI2lu
Y2x1ZGUgPG5ldGluZXQvaW4uaD4NCj4gPj4gICNpbmNsdWRlIDxuZXRpbmV0L2luX3N5c3RtLmg+
DQo+ID4+ICAjaW5jbHVkZSA8bmV0aW5ldC9pbl9maWIuaD4NCj4gPj4gQEAgLTkxLDE4ICs5NCwy
NCBAQCBzdGF0aWMgTUFMTE9DX0RFRklORShNX0lQTVNPVVJDRSwgImlwX21zb3VyY2UiLA0KPiA+
Pg0KPiA+PiAgLyoNCj4gPj4gICAqIExvY2tpbmc6DQo+ID4+IC0gKiAtIExvY2sgb3JkZXIgaXM6
IEdpYW50LCBJTlBfV0xPQ0ssIElOX01VTFRJX0xPQ0ssIElHTVBfTE9DSywgSUZfQUREUl9MT0NL
Lg0KPiA+PiArICogLSBMb2NrIG9yZGVyIGlzOiBHaWFudCwgSU5QX1dMT0NLLCBJTl9NVUxUSV9M
SVNUX0xPQ0ssIElHTVBfTE9DSywgSUZfQUREUl9MT0NLLg0KPiA+PiAgICogLSBUaGUgSUZfQURE
Ul9MT0NLIGlzIGltcGxpY2l0bHkgdGFrZW4gYnkgaW5tX2xvb2t1cCgpIGVhcmxpZXIsIGhvd2V2
ZXINCj4gPj4gICAqICAgaXQgY2FuIGJlIHRha2VuIGJ5IGNvZGUgaW4gbmV0L2lmLmMgYWxzby4N
Cj4gPj4gICAqIC0gaXBfbW9wdGlvbnMgYW5kIGluX21maWx0ZXIgYXJlIGNvdmVyZWQgYnkgdGhl
IElOUF9XTE9DSy4NCj4gPj4gICAqDQo+ID4+IC0gKiBzdHJ1Y3QgaW5fbXVsdGkgaXMgY292ZXJl
ZCBieSBJTl9NVUxUSV9MT0NLLiBUaGVyZSBpc24ndCBzdHJpY3RseQ0KPiA+PiArICogc3RydWN0
IGluX211bHRpIGlzIGNvdmVyZWQgYnkgSU5fTVVMVElfTElTVF9MT0NLLiBUaGVyZSBpc24ndCBz
dHJpY3RseQ0KPiA+PiAgICogYW55IG5lZWQgZm9yIGluX211bHRpIGl0c2VsZiB0byBiZSB2aXJ0
dWFsaXplZCAtLSBpdCBpcyBib3VuZCB0byBhbiBpZnANCj4gPj4gICAqIGFueXdheSBubyBtYXR0
ZXIgd2hhdCBoYXBwZW5zLg0KPiA+PiAgICovDQo+ID4+IC1zdHJ1Y3QgbXR4IGluX211bHRpX210
eDsNCj4gPj4gLU1UWF9TWVNJTklUKGluX211bHRpX210eCwgJmluX211bHRpX210eCwgImluX211
bHRpX210eCIsIE1UWF9ERUYpOw0KPiA+PiArc3RydWN0IG10eCBpbl9tdWx0aV9saXN0X210eDsN
Cj4gPj4gK01UWF9TWVNJTklUKGluX211bHRpX210eCwgJmluX211bHRpX2xpc3RfbXR4LCAiaW5f
bXVsdGlfbGlzdF9tdHgiLCBNVFhfREVGKTsNCj4gPj4NCj4gPj4gK3N0cnVjdCBtdHggaW5fbXVs
dGlfZnJlZV9tdHg7DQo+ID4+ICtNVFhfU1lTSU5JVChpbl9tdWx0aV9mcmVlX210eCwgJmluX211
bHRpX2ZyZWVfbXR4LCAiaW5fbXVsdGlfZnJlZV9tdHgiLCBNVFhfREVGKTsNCj4gPj4gKw0KPiA+
PiArc3RydWN0IHN4IGluX211bHRpX3N4Ow0KPiA+PiArU1hfU1lTSU5JVChpbl9tdWx0aV9zeCwg
JmluX211bHRpX3N4LCAiaW5fbXVsdGlfc3giKTsNCj4gPj4gKw0KPiA+PiAgLyoNCj4gPj4gICAq
IEZ1bmN0aW9ucyB3aXRoIG5vbi1zdGF0aWMgbGlua2FnZSBkZWZpbmVkIGluIHRoaXMgZmlsZSBz
aG91bGQgYmUNCj4gPj4gICAqIGRlY2xhcmVkIGluIGluX3Zhci5oOg0KPiA+PiBAQCAtMTUxLDYg
KzE2MCw3IEBAIHN0YXRpYyBpbnQgICAgICAgIGlubV9pc19pZnBfZGV0YWNoZWQoY29uc3Qgc3Ry
dWN0IGluX211bHRpICoNCj4gPj4gIHN0YXRpYyBpbnQgICBpbm1fbWVyZ2Uoc3RydWN0IGluX211
bHRpICosIC8qY29uc3QqLyBzdHJ1Y3QgaW5fbWZpbHRlciAqKTsNCj4gPj4gIHN0YXRpYyB2b2lk
ICBpbm1fcHVyZ2Uoc3RydWN0IGluX211bHRpICopOw0KPiA+PiAgc3RhdGljIHZvaWQgIGlubV9y
ZWFwKHN0cnVjdCBpbl9tdWx0aSAqKTsNCj4gPj4gK3N0YXRpYyB2b2lkIGlubV9yZWxlYXNlKHN0
cnVjdCBpbl9tdWx0aSAqKTsNCj4gPj4gIHN0YXRpYyBzdHJ1Y3QgaXBfbW9wdGlvbnMgKg0KPiA+
PiAgICAgICAgICAgICAgIGlucF9maW5kbW9wdGlvbnMoc3RydWN0IGlucGNiICopOw0KPiA+PiAg
c3RhdGljIHZvaWQgIGlucF9mcmVlbW9wdGlvbnNfaW50ZXJuYWwoc3RydWN0IGlwX21vcHRpb25z
ICopOw0KPiA+PiBAQCAtMjE2LDYgKzIyNiw2NSBAQCBpbm1faXNfaWZwX2RldGFjaGVkKGNvbnN0
IHN0cnVjdCBpbl9tdWx0aSAqaW5tKQ0KPiA+PiAgfQ0KPiA+PiAgI2VuZGlmDQo+ID4+DQo+ID4+
ICtzdGF0aWMgc3RydWN0IGdyb3VwdGFzayBmcmVlX2d0YXNrOw0KPiA+PiArc3RhdGljIHN0cnVj
dCBpbl9tdWx0aV9oZWFkIGlubV9mcmVlX2xpc3Q7DQo+ID4+ICtzdGF0aWMgdm9pZCBpbm1fcmVs
ZWFzZV90YXNrKHZvaWQgKmFyZyBfX3VudXNlZCk7DQo+ID4+ICtzdGF0aWMgdm9pZCBpbm1faW5p
dCh2b2lkKQ0KPiA+PiArew0KPiA+PiArICAgICBTTElTVF9JTklUKCZpbm1fZnJlZV9saXN0KTsN
Cj4gPj4gKyAgICAgdGFza3Fncm91cF9jb25maWdfZ3Rhc2tfaW5pdChOVUxMLCAmZnJlZV9ndGFz
aywgaW5tX3JlbGVhc2VfdGFzaywgImlubSByZWxlYXNlDQo+ID4+IHRhc2siKTsgK30NCj4gPj4g
Kw0KPiA+PiArU1lTSU5JVChpbm1faW5pdCwgU0lfU1VCX1NNUCArIDEsIFNJX09SREVSX0ZJUlNU
LA0KPiA+PiArICAgICBpbm1faW5pdCwgTlVMTCk7DQo+ID4+ICsNCj4gPj4gKw0KPiA+PiArdm9p
ZA0KPiA+PiAraW5tX3JlbGVhc2VfbGlzdF9kZWZlcnJlZChzdHJ1Y3QgaW5fbXVsdGlfaGVhZCAq
aW5taCkNCj4gPj4gK3sNCj4gPj4gKw0KPiA+PiArICAgICBpZiAoU0xJU1RfRU1QVFkoaW5taCkp
DQo+ID4+ICsgICAgICAgICAgICAgcmV0dXJuOw0KPiA+PiArICAgICBtdHhfbG9jaygmaW5fbXVs
dGlfZnJlZV9tdHgpOw0KPiA+PiArICAgICBTTElTVF9DT05DQVQoJmlubV9mcmVlX2xpc3QsIGlu
bWgsIGluX211bHRpLCBpbm1fbnJlbGUpOw0KPiA+PiArICAgICBtdHhfdW5sb2NrKCZpbl9tdWx0
aV9mcmVlX210eCk7DQo+ID4+ICsgICAgIEdST1VQVEFTS19FTlFVRVVFKCZmcmVlX2d0YXNrKTsN
Cj4gPj4gK30NCj4gPj4gKw0KPiA+PiArdm9pZA0KPiA+PiAraW5tX3JlbGVhc2VfZGVmZXJyZWQo
c3RydWN0IGluX211bHRpICppbm0pDQo+ID4+ICt7DQo+ID4+ICsgICAgIHN0cnVjdCBpbl9tdWx0
aV9oZWFkIHRtcDsNCj4gPj4gKw0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJU
KCk7DQo+ID4+ICsgICAgIE1QQVNTKGlubS0+aW5tX3JlZmNvdW50ID4gMCk7DQo+ID4+ICsgICAg
IGlmICgtLWlubS0+aW5tX3JlZmNvdW50ID09IDApIHsNCj4gPj4gKyAgICAgICAgICAgICBTTElT
VF9JTklUKCZ0bXApOw0KPiA+PiArICAgICAgICAgICAgIGlubS0+aW5tX2lmbWEtPmlmbWFfcHJv
dG9zcGVjID0gTlVMTDsNCj4gPj4gKyAgICAgICAgICAgICBTTElTVF9JTlNFUlRfSEVBRCgmdG1w
LCBpbm0sIGlubV9ucmVsZSk7DQo+ID4+ICsgICAgICAgICAgICAgaW5tX3JlbGVhc2VfbGlzdF9k
ZWZlcnJlZCgmdG1wKTsNCj4gPj4gKyAgICAgfQ0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICtzdGF0
aWMgdm9pZA0KPiA+PiAraW5tX3JlbGVhc2VfdGFzayh2b2lkICphcmcgX191bnVzZWQpDQo+ID4+
ICt7DQo+ID4+ICsgICAgIHN0cnVjdCBpbl9tdWx0aV9oZWFkIGlubV9mcmVlX3RtcDsNCj4gPj4g
KyAgICAgc3RydWN0IGluX211bHRpICppbm0sICp0aW5tOw0KPiA+PiArDQo+ID4+ICsgICAgIFNM
SVNUX0lOSVQoJmlubV9mcmVlX3RtcCk7DQo+ID4+ICsgICAgIG10eF9sb2NrKCZpbl9tdWx0aV9m
cmVlX210eCk7DQo+ID4+ICsgICAgIFNMSVNUX0NPTkNBVCgmaW5tX2ZyZWVfdG1wLCAmaW5tX2Zy
ZWVfbGlzdCwgaW5fbXVsdGksIGlubV9ucmVsZSk7DQo+ID4+ICsgICAgIG10eF91bmxvY2soJmlu
X211bHRpX2ZyZWVfbXR4KTsNCj4gPj4gKyAgICAgSU5fTVVMVElfTE9DSygpOw0KPiA+PiArICAg
ICBTTElTVF9GT1JFQUNIX1NBRkUoaW5tLCAmaW5tX2ZyZWVfdG1wLCBpbm1fbnJlbGUsIHRpbm0p
IHsNCj4gPj4gKyAgICAgICAgICAgICBTTElTVF9SRU1PVkVfSEVBRCgmaW5tX2ZyZWVfdG1wLCBp
bm1fbnJlbGUpOw0KPiA+PiArICAgICAgICAgICAgIE1QQVNTKGlubSk7DQo+ID4+ICsgICAgICAg
ICAgICAgaW5tX3JlbGVhc2UoaW5tKTsNCj4gPj4gKyAgICAgfQ0KPiA+PiArICAgICBJTl9NVUxU
SV9VTkxPQ0soKTsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiAgLyoNCj4gPj4gICAqIEluaXRpYWxp
emUgYW4gaW5fbWZpbHRlciBzdHJ1Y3R1cmUgdG8gYSBrbm93biBzdGF0ZSBhdCB0MCwgdDENCj4g
Pj4gICAqIHdpdGggYW4gZW1wdHkgc291cmNlIGZpbHRlciBsaXN0Lg0KPiA+PiBAQCAtMjMyLDcg
KzMwMSw3IEBAIGltZl9pbml0KHN0cnVjdCBpbl9tZmlsdGVyICppbWYsIGNvbnN0IGludCBzdDAs
IGNvbnN0DQo+ID4+ICAvKg0KPiA+PiAgICogRnVuY3Rpb24gZm9yIGxvb2tpbmcgdXAgYW4gaW5f
bXVsdGkgcmVjb3JkIGZvciBhbiBJUHY0IG11bHRpY2FzdCBhZGRyZXNzDQo+ID4+ICAgKiBvbiBh
IGdpdmVuIGludGVyZmFjZS4gaWZwIG11c3QgYmUgdmFsaWQuIElmIG5vIHJlY29yZCBmb3VuZCwg
cmV0dXJuIE5VTEwuDQo+ID4+IC0gKiBUaGUgSU5fTVVMVElfTE9DSyBhbmQgSUZfQUREUl9MT0NL
IG9uIGlmcCBtdXN0IGJlIGhlbGQuDQo+ID4+ICsgKiBUaGUgSU5fTVVMVElfTElTVF9MT0NLIGFu
ZCBJRl9BRERSX0xPQ0sgb24gaWZwIG11c3QgYmUgaGVsZC4NCj4gPj4gICAqLw0KPiA+PiAgc3Ry
dWN0IGluX211bHRpICoNCj4gPj4gIGlubV9sb29rdXBfbG9ja2VkKHN0cnVjdCBpZm5ldCAqaWZw
LCBjb25zdCBzdHJ1Y3QgaW5fYWRkciBpbmEpDQo+ID4+IEBAIC0yNDAsNyArMzA5LDcgQEAgaW5t
X2xvb2t1cF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hDQo+ID4+
ICAgICAgIHN0cnVjdCBpZm11bHRpYWRkciAqaWZtYTsNCj4gPj4gICAgICAgc3RydWN0IGluX211
bHRpICppbm07DQo+ID4+DQo+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+
ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gICAgICAgSUZfQUREUl9M
T0NLX0FTU0VSVChpZnApOw0KPiA+Pg0KPiA+PiAgICAgICBpbm0gPSBOVUxMOw0KPiA+PiBAQCAt
MjY0LDcgKzMzMyw3IEBAIGlubV9sb29rdXAoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVj
dCBpbl9hZGRyIGluYQ0KPiA+PiAgew0KPiA+PiAgICAgICBzdHJ1Y3QgaW5fbXVsdGkgKmlubTsN
Cj4gPj4NCj4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gKyAgICAgSU5f
TVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiAgICAgICBJRl9BRERSX1JMT0NLKGlmcCk7
DQo+ID4+ICAgICAgIGlubSA9IGlubV9sb29rdXBfbG9ja2VkKGlmcCwgaW5hKTsNCj4gPj4gICAg
ICAgSUZfQUREUl9SVU5MT0NLKGlmcCk7DQo+ID4+IEBAIC00NTEsNyArNTIwLDcgQEAgaW5fZ2V0
bXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyICpnDQo+ID4+ICAg
ICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+DQo+ID4+ICAgICAgIGlpID0gKHN0cnVj
dCBpbl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXTsNCj4gPj4gLQ0KPiA+PiArICAg
ICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4gICAgICAgaW5tID0gaW5tX2xvb2t1cChpZnAs
ICpncm91cCk7DQo+ID4+ICAgICAgIGlmIChpbm0gIT0gTlVMTCkgew0KPiA+PiAgICAgICAgICAg
ICAgIC8qDQo+ID4+IEBAIC00NjAsMTEgKzUyOSwxMyBAQCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZu
ZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluX2FkZHIgKmcNCj4gPj4gICAgICAgICAgICAgICAgKi8N
Cj4gPj4gICAgICAgICAgICAgICBLQVNTRVJUKGlubS0+aW5tX3JlZmNvdW50ID49IDEsDQo+ID4+
ICAgICAgICAgICAgICAgICAgICgiJXM6IGJhZCByZWZjb3VudCAlZCIsIF9fZnVuY19fLCBpbm0t
PmlubV9yZWZjb3VudCkpOw0KPiA+PiAtICAgICAgICAgICAgICsraW5tLT5pbm1fcmVmY291bnQ7
DQo+ID4+ICsgICAgICAgICAgICAgaW5tX2FjcXVpcmVfbG9ja2VkKGlubSk7DQo+ID4+ICAgICAg
ICAgICAgICAgKnBpbm0gPSBpbm07DQo+ID4+IC0gICAgICAgICAgICAgcmV0dXJuICgwKTsNCj4g
Pj4gICAgICAgfQ0KPiA+PiAtDQo+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+
ID4+ICsgICAgIGlmIChpbm0gIT0gTlVMTCkNCj4gPj4gKyAgICAgICAgICAgICByZXR1cm4gKDAp
Ow0KPiA+PiArDQo+ID4+ICAgICAgIG1lbXNldCgmZ3NpbiwgMCwgc2l6ZW9mKGdzaW4pKTsNCj4g
Pj4gICAgICAgZ3Npbi5zaW5fZmFtaWx5ID0gQUZfSU5FVDsNCj4gPj4gICAgICAgZ3Npbi5zaW5f
bGVuID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbik7DQo+ID4+IEBAIC00NzksNiArNTUwLDcg
QEAgaW5fZ2V0bXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyICpn
DQo+ID4+ICAgICAgICAgICAgICAgcmV0dXJuIChlcnJvcik7DQo+ID4+DQo+ID4+ICAgICAgIC8q
IFhYWCBpZm1hX3Byb3Rvc3BlYyBtdXN0IGJlIGNvdmVyZWQgYnkgSUZfQUREUl9MT0NLICovDQo+
ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiAgICAgICBJRl9BRERSX1dMT0NL
KGlmcCk7DQo+ID4+DQo+ID4+ICAgICAgIC8qDQo+ID4+IEBAIC01MDQsMTAgKzU3Niw5IEBAIGlu
X2dldG11bHRpKHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW5fYWRkciAqZw0KPiA+
PiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBpZm1hLCBpbm0sIGluZXRfbnRv
YV9yKCpncm91cCwgYWRkcmJ1ZikpOw0KPiA+PiAgICAgICAgICAgICAgIH0NCj4gPj4gICNlbmRp
Zg0KPiA+PiAtICAgICAgICAgICAgICsraW5tLT5pbm1fcmVmY291bnQ7DQo+ID4+ICsgICAgICAg
ICAgICAgaW5tX2FjcXVpcmVfbG9ja2VkKGlubSk7DQo+ID4+ICAgICAgICAgICAgICAgKnBpbm0g
PSBpbm07DQo+ID4+IC0gICAgICAgICAgICAgSUZfQUREUl9XVU5MT0NLKGlmcCk7DQo+ID4+IC0g
ICAgICAgICAgICAgcmV0dXJuICgwKTsNCj4gPj4gKyAgICAgICAgICAgICBnb3RvIG91dF9sb2Nr
ZWQ7DQo+ID4+ICAgICAgIH0NCj4gPj4NCj4gPj4gICAgICAgSUZfQUREUl9XTE9DS19BU1NFUlQo
aWZwKTsNCj4gPj4gQEAgLTUyMiw2ICs1OTMsNyBAQCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQg
KmlmcCwgY29uc3Qgc3RydWN0IGluX2FkZHIgKmcNCj4gPj4gICAgICAgaW5tID0gbWFsbG9jKHNp
emVvZigqaW5tKSwgTV9JUE1BRERSLCBNX05PV0FJVCB8IE1fWkVSTyk7DQo+ID4+ICAgICAgIGlm
IChpbm0gPT0gTlVMTCkgew0KPiA+PiAgICAgICAgICAgICAgIElGX0FERFJfV1VOTE9DSyhpZnAp
Ow0KPiA+PiArICAgICAgICAgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ICAgICAg
ICAgICAgICAgaWZfZGVsbXVsdGlfaWZtYShpZm1hKTsNCj4gPj4gICAgICAgICAgICAgICByZXR1
cm4gKEVOT01FTSk7DQo+ID4+ICAgICAgIH0NCj4gPj4gQEAgLTUzOSw4ICs2MTEsOSBAQCBpbl9n
ZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluX2FkZHIgKmcNCj4gPj4g
ICAgICAgaWZtYS0+aWZtYV9wcm90b3NwZWMgPSBpbm07DQo+ID4+DQo+ID4+ICAgICAgICpwaW5t
ID0gaW5tOw0KPiA+PiAtDQo+ID4+ICsgb3V0X2xvY2tlZDoNCj4gPj4gICAgICAgSUZfQUREUl9X
VU5MT0NLKGlmcCk7DQo+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ICAg
ICAgIHJldHVybiAoMCk7DQo+ID4+ICB9DQo+ID4+DQo+ID4+IEBAIC01NTAsMzYgKzYyMywyOSBA
QCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluX2FkZHIgKmcN
Cj4gPj4gICAqIElmIHRoZSByZWZjb3VudCBkcm9wcyB0byAwLCBmcmVlIHRoZSBpbl9tdWx0aSBy
ZWNvcmQgYW5kDQo+ID4+ICAgKiBkZWxldGUgdGhlIHVuZGVybHlpbmcgbGluay1sYXllciBtZW1i
ZXJzaGlwLg0KPiA+PiAgICovDQo+ID4+IC12b2lkDQo+ID4+IC1pbm1fcmVsZWFzZV9sb2NrZWQo
c3RydWN0IGluX211bHRpICppbm0pDQo+ID4+ICtzdGF0aWMgdm9pZA0KPiA+PiAraW5tX3JlbGVh
c2Uoc3RydWN0IGluX211bHRpICppbm0pDQo+ID4+ICB7DQo+ID4+ICAgICAgIHN0cnVjdCBpZm11
bHRpYWRkciAqaWZtYTsNCj4gPj4gKyAgICAgc3RydWN0IGlmbmV0ICppZnA7DQo+ID4+DQo+ID4+
IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+IC0NCj4gPj4gICAgICAgQ1RSMihL
VFJfSUdNUFYzLCAiJXM6IHJlZmNvdW50IGlzICVkIiwgX19mdW5jX18sIGlubS0+aW5tX3JlZmNv
dW50KTsNCj4gPj4gLQ0KPiA+PiAtICAgICBpZiAoLS1pbm0tPmlubV9yZWZjb3VudCA+IDApIHsN
Cj4gPj4gLSAgICAgICAgICAgICBDVFIyKEtUUl9JR01QVjMsICIlczogcmVmY291bnQgaXMgbm93
ICVkIiwgX19mdW5jX18sDQo+ID4+IC0gICAgICAgICAgICAgICAgIGlubS0+aW5tX3JlZmNvdW50
KTsNCj4gPj4gLSAgICAgICAgICAgICByZXR1cm47DQo+ID4+IC0gICAgIH0NCj4gPj4gLQ0KPiA+
PiArICAgICBNUEFTUyhpbm0tPmlubV9yZWZjb3VudCA9PSAwKTsNCj4gPj4gICAgICAgQ1RSMihL
VFJfSUdNUFYzLCAiJXM6IGZyZWVpbmcgaW5tICVwIiwgX19mdW5jX18sIGlubSk7DQo+ID4+DQo+
ID4+ICAgICAgIGlmbWEgPSBpbm0tPmlubV9pZm1hOw0KPiA+PiArICAgICBpZnAgPSBpbm0tPmlu
bV9pZnA7DQo+ID4+DQo+ID4+ICAgICAgIC8qIFhYWCB0aGlzIGFjY2VzcyBpcyBub3QgY292ZXJl
ZCBieSBJRl9BRERSX0xPQ0sgKi8NCj4gPj4gICAgICAgQ1RSMihLVFJfSUdNUFYzLCAiJXM6IHB1
cmdpbmcgaWZtYSAlcCIsIF9fZnVuY19fLCBpZm1hKTsNCj4gPj4gLSAgICAgS0FTU0VSVChpZm1h
LT5pZm1hX3Byb3Rvc3BlYyA9PSBpbm0sDQo+ID4+IC0gICAgICAgICAoIiVzOiBpZm1hX3Byb3Rv
c3BlYyAhPSBpbm0iLCBfX2Z1bmNfXykpOw0KPiA+PiAtICAgICBpZm1hLT5pZm1hX3Byb3Rvc3Bl
YyA9IE5VTEw7DQo+ID4+IC0NCj4gPj4gKyAgICAgaWYgKGlmcCkNCj4gPj4gKyAgICAgICAgICAg
ICBDVVJWTkVUX1NFVChpZnAtPmlmX3ZuZXQpOw0KPiA+PiAgICAgICBpbm1fcHVyZ2UoaW5tKTsN
Cj4gPj4gLQ0KPiA+PiAgICAgICBmcmVlKGlubSwgTV9JUE1BRERSKTsNCj4gPj4NCj4gPj4gICAg
ICAgaWZfZGVsbXVsdGlfaWZtYShpZm1hKTsNCj4gPj4gKyAgICAgaWYgKGlmcCkNCj4gPj4gKyAg
ICAgICAgICAgICBDVVJWTkVUX1JFU1RPUkUoKTsNCj4gPj4gIH0NCj4gPj4NCj4gPj4gIC8qDQo+
ID4+IEBAIC01OTIsNyArNjU4LDcgQEAgaW5tX2NsZWFyX3JlY29yZGVkKHN0cnVjdCBpbl9tdWx0
aSAqaW5tKQ0KPiA+PiAgew0KPiA+PiAgICAgICBzdHJ1Y3QgaXBfbXNvdXJjZSAgICAgICAqaW1z
Ow0KPiA+Pg0KPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiArICAgICBJ
Tl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+DQo+ID4+ICAgICAgIFJCX0ZPUkVBQ0go
aW1zLCBpcF9tc291cmNlX3RyZWUsICZpbm0tPmlubV9zcmNzKSB7DQo+ID4+ICAgICAgICAgICAg
ICAgaWYgKGltcy0+aW1zX3N0cCkgew0KPiA+PiBAQCAtNjMyLDcgKzY5OCw3IEBAIGlubV9yZWNv
cmRfc291cmNlKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBjb25zdCBpbl9hZGRyXw0KPiA+PiAgICAg
ICBzdHJ1Y3QgaXBfbXNvdXJjZSAgICAgICAgZmluZDsNCj4gPj4gICAgICAgc3RydWN0IGlwX21z
b3VyY2UgICAgICAgKmltcywgKm5pbXM7DQo+ID4+DQo+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tf
QVNTRVJUKCk7DQo+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4N
Cj4gPj4gICAgICAgZmluZC5pbXNfaGFkZHIgPSBudG9obChuYWRkcik7DQo+ID4+ICAgICAgIGlt
cyA9IFJCX0ZJTkQoaXBfbXNvdXJjZV90cmVlLCAmaW5tLT5pbm1fc3JjcywgJmZpbmQpOw0KPiA+
PiBAQCAtOTU5LDYgKzEwMjUsNyBAQCBpbm1fbWVyZ2Uoc3RydWN0IGluX211bHRpICppbm0sIC8q
Y29uc3QqLyBzdHJ1Y3QgaW5fbWYNCj4gPj4gICAgICAgc2NoYW5nZWQgPSAwOw0KPiA+PiAgICAg
ICBlcnJvciA9IDA7DQo+ID4+ICAgICAgIG5zcmMxID0gbnNyYzAgPSAwOw0KPiA+PiArICAgICBJ
Tl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+DQo+ID4+ICAgICAgIC8qDQo+ID4+ICAg
ICAgICAqIFVwZGF0ZSB0aGUgc291cmNlIGZpbHRlcnMgZmlyc3QsIGFzIHRoaXMgbWF5IGZhaWwu
DQo+ID4+IEBAIC0xMTY1LDYgKzEyMzIsNyBAQCBpbl9qb2luZ3JvdXBfbG9ja2VkKHN0cnVjdCBp
Zm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW4NCj4gPj4gICAgICAgaW50ICAgICAgICAgICAgICAg
ICAgICAgIGVycm9yOw0KPiA+Pg0KPiA+PiAgICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0K
PiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4gPj4NCj4gPj4gICAg
ICAgQ1RSNChLVFJfSUdNUFYzLCAiJXM6IGpvaW4gMHglMDh4IG9uICVwKCVzKSkiLCBfX2Z1bmNf
XywNCj4gPj4gICAgICAgICAgIG50b2hsKGdpbmEtPnNfYWRkciksIGlmcCwgaWZwLT5pZl94bmFt
ZSk7DQo+ID4+IEBAIC0xMTg2LDcgKzEyNTQsNyBAQCBpbl9qb2luZ3JvdXBfbG9ja2VkKHN0cnVj
dCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW4NCj4gPj4gICAgICAgICAgICAgICBDVFIxKEtU
Ul9JR01QVjMsICIlczogaW5fZ2V0bXVsdGkoKSBmYWlsdXJlIiwgX19mdW5jX18pOw0KPiA+PiAg
ICAgICAgICAgICAgIHJldHVybiAoZXJyb3IpOw0KPiA+PiAgICAgICB9DQo+ID4+IC0NCj4gPj4g
KyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ICAgICAgIENUUjEoS1RSX0lHTVBWMywg
IiVzOiBtZXJnZSBpbm0gc3RhdGUiLCBfX2Z1bmNfXyk7DQo+ID4+ICAgICAgIGVycm9yID0gaW5t
X21lcmdlKGlubSwgaW1mKTsNCj4gPj4gICAgICAgaWYgKGVycm9yKSB7DQo+ID4+IEBAIC0xMjAx
LDEwICsxMjY5LDEyIEBAIGluX2pvaW5ncm91cF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnAsIGNv
bnN0IHN0cnVjdCBpbg0KPiA+PiAgICAgICAgICAgICAgIGdvdG8gb3V0X2lubV9yZWxlYXNlOw0K
PiA+PiAgICAgICB9DQo+ID4+DQo+ID4+IC1vdXRfaW5tX3JlbGVhc2U6DQo+ID4+ICsgb3V0X2lu
bV9yZWxlYXNlOg0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+PiAgICAg
ICBpZiAoZXJyb3IpIHsNCj4gPj4gKw0KPiA+PiAgICAgICAgICAgICAgIENUUjIoS1RSX0lHTVBW
MywgIiVzOiBkcm9wcGluZyByZWYgb24gJXAiLCBfX2Z1bmNfXywgaW5tKTsNCj4gPj4gLSAgICAg
ICAgICAgICBpbm1fcmVsZWFzZV9sb2NrZWQoaW5tKTsNCj4gPj4gKyAgICAgICAgICAgICBpbm1f
cmVsZWFzZV9kZWZlcnJlZChpbm0pOw0KPiA+PiAgICAgICB9IGVsc2Ugew0KPiA+PiAgICAgICAg
ICAgICAgICpwaW5tID0gaW5tOw0KPiA+PiAgICAgICB9DQo+ID4+IEBAIC0xMjQ5LDYgKzEzMTks
NyBAQCBpbl9sZWF2ZWdyb3VwX2xvY2tlZChzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgLypjb25zdCov
IHMNCj4gPj4gICAgICAgZXJyb3IgPSAwOw0KPiA+Pg0KPiA+PiAgICAgICBJTl9NVUxUSV9MT0NL
X0FTU0VSVCgpOw0KPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4g
Pj4NCj4gPj4gICAgICAgQ1RSNShLVFJfSUdNUFYzLCAiJXM6IGxlYXZlIGlubSAlcCwgMHglMDh4
LyVzLCBpbWYgJXAiLCBfX2Z1bmNfXywNCj4gPj4gICAgICAgICAgIGlubSwgbnRvaGwoaW5tLT5p
bm1fYWRkci5zX2FkZHIpLA0KPiA+PiBAQCAtMTI3MiwxOCArMTM0MywyMCBAQCBpbl9sZWF2ZWdy
b3VwX2xvY2tlZChzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgLypjb25zdCovIHMNCj4gPj4gICAgICAg
ICogdGhlIHRyYW5zYWN0aW9uLCBpdCBNVVNUIE5PVCBmYWlsLg0KPiA+PiAgICAgICAgKi8NCj4g
Pj4gICAgICAgQ1RSMShLVFJfSUdNUFYzLCAiJXM6IG1lcmdlIGlubSBzdGF0ZSIsIF9fZnVuY19f
KTsNCj4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ICAgICAgIGVycm9yID0g
aW5tX21lcmdlKGlubSwgaW1mKTsNCj4gPj4gICAgICAgS0FTU0VSVChlcnJvciA9PSAwLCAoIiVz
OiBmYWlsZWQgdG8gbWVyZ2UgaW5tIHN0YXRlIiwgX19mdW5jX18pKTsNCj4gPj4NCj4gPj4gICAg
ICAgQ1RSMShLVFJfSUdNUFYzLCAiJXM6IGRvaW5nIGlnbXAgZG93bmNhbGwiLCBfX2Z1bmNfXyk7
DQo+ID4+ICAgICAgIENVUlZORVRfU0VUKGlubS0+aW5tX2lmcC0+aWZfdm5ldCk7DQo+ID4+ICAg
ICAgIGVycm9yID0gaWdtcF9jaGFuZ2Vfc3RhdGUoaW5tKTsNCj4gPj4gKyAgICAgaW5tX3JlbGVh
c2VfZGVmZXJyZWQoaW5tKTsNCj4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4g
Pj4gICAgICAgQ1VSVk5FVF9SRVNUT1JFKCk7DQo+ID4+ICAgICAgIGlmIChlcnJvcikNCj4gPj4g
ICAgICAgICAgICAgICBDVFIxKEtUUl9JR01QVjMsICIlczogZmFpbGVkIGlnbXAgZG93bmNhbGwi
LCBfX2Z1bmNfXyk7DQo+ID4+DQo+ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBkcm9w
cGluZyByZWYgb24gJXAiLCBfX2Z1bmNfXywgaW5tKTsNCj4gPj4gLSAgICAgaW5tX3JlbGVhc2Vf
bG9ja2VkKGlubSk7DQo+ID4+DQo+ID4+ICAgICAgIHJldHVybiAoZXJyb3IpOw0KPiA+PiAgfQ0K
PiA+PiBAQCAtMTMxNSwxOCArMTM4OCw2IEBAIGluX2FkZG11bHRpKHN0cnVjdCBpbl9hZGRyICph
cCwgc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ICB9DQo+ID4+DQo+ID4+ICAvKg0KPiA+PiAtICog
TGVhdmUgYW4gSVB2NCBtdWx0aWNhc3QgZ3JvdXAsIGFzc3VtZWQgdG8gYmUgaW4gZXhjbHVzaXZl
ICgqLEcpIG1vZGUuDQo+ID4+IC0gKiBUaGlzIEtQSSBpcyBmb3IgbGVnYWN5IGtlcm5lbCBjb25z
dW1lcnMgb25seS4NCj4gPj4gLSAqLw0KPiA+Pg0KPiA+PiAqKiogRElGRiBPVVRQVVQgVFJVTkNB
VEVEIEFUIDEwMDAgTElORVMgKioqDQo+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fDQo+ID4+IHN2bi1zcmMtaGVhZEBmcmVlYnNkLm9yZyBtYWlsaW5n
IGxpc3QNCj4gPj4gaHR0cHM6Ly9saXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3N2
bi1zcmMtaGVhZA0KPiA+PiBUbyB1bnN1YnNjcmliZSwgc2VuZCBhbnkgbWFpbCB0byAic3ZuLXNy
Yy1oZWFkLXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIiAgDQo+ID4NCj4gPg0KPiA+IEFmdGVyIChh
cm91bmQhKSB0aGlzIHVwZGF0ZSwgc29tZSBib3hlcyB3aXRoIGkzNTAgZHVhbCBwb3J0IE5JQ3Mg
aW1tZWRpYXRlbHkgY3Jhc2gNCj4gPiB3aXRoIEZhdGFsIHRyYXAgMTI6IHBhZ2UgZmF1bHQgYW5k
IHNvbWV0aGluZyB3aXRoDQo+ID4NCj4gPiBjdXJyZW50IHByb2Nlc3M6IChpc2Mtd29ya2VyMDAw
NikNCj4gPg0KPiA+IC4uLi4NCj4gPg0KPiA+IFRob3NlIGJveGVzIGRvIG5vdCBoYXZlIGRlYnVn
Z2luZyBrZXJuZWwuIFRoZSBzeW1wdG9tYnMgYXJlIHRoZSBzYW1lLiBTaW5nbGUgdXNlcg0KPiA+
IGtlcm5lbCB3b3JrcywgYnV0IHRoZSBtb21lbnQgSSBwZXJmb3JtIC9ldGMvbmV0c3RhcnQgYW5k
IGFueSBraW5kIG9mIG5ldCB0cmFmZmljDQo+ID4gZXN0YWJsaXNoZXMsIHRoaXMgY3JhcCBiYWls
cyBvdXQuDQo+ID4NCj4gPg0KPiA+IC0gLS0NCj4gPiBPLiBIYXJ0bWFubg0KPiA+DQo+ID4gSWNo
IHdpZGVyc3ByZWNoZSBkZXIgTnV0enVuZyBvZGVyIMOcYmVybWl0dGx1bmcgbWVpbmVyIERhdGVu
IGbDvHINCj4gPiBXZXJiZXp3ZWNrZSBvZGVyIGbDvHIgZGllIE1hcmt0LSBvZGVyIE1laW51bmdz
Zm9yc2NodW5nICjCpyAyOCBBYnMuIDQgQkRTRykuDQo+ID4gLS0tLS1CRUdJTiBQR1AgU0lHTkFU
VVJFLS0tLS0NCj4gPg0KPiA+IGlMVUVBUk1LQUIwV0lRUVpWWk16QXR3QzJULzg2VHJTNTI4ZnlG
aFlsQVVDV3V0anRnQUtDUkRTNTI4ZnlGaFkNCj4gPiBsQWt6QWY5UGhhRlR3TmhRRDJ6Rjd4U0hK
Mndmdkx0b1VFalpsekdzdXNBQ3AxcGE3SkFmejBQeXYrbG0rWE5KDQo+ID4gdkxFbHJJZjFDbUR6
dUE4eWJsWi94L3dPVlNKa0FmOUMrNTBEVkV0R3E1SC9iSFNETnd6bXFyajhZZ0I3WHBTcw0KPiA+
IFBNUlhjK0l3SWExSmdpMnlNKzZUQ1NOU3MxTjViRVVoVTlCaThlWHk2WTBGU2tBWmVWK3MNCj4g
PiA9UzBiQw0KPiA+IC0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQ0KPiA+IF9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gc3ZuLXNyYy1oZWFkQGZy
ZWVic2Qub3JnIG1haWxpbmcgbGlzdA0KPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWJzZC5vcmcvbWFp
bG1hbi9saXN0aW5mby9zdm4tc3JjLWhlYWQNCj4gPiBUbyB1bnN1YnNjcmliZSwgc2VuZCBhbnkg
bWFpbCB0byAic3ZuLXNyYy1oZWFkLXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIiAgDQoNCg0KDQot
IC0tIA0KTy4gSGFydG1hbm4NCg0KSWNoIHdpZGVyc3ByZWNoZSBkZXIgTnV0enVuZyBvZGVyIMOc
YmVybWl0dGx1bmcgbWVpbmVyIERhdGVuIGbDvHINCldlcmJlendlY2tlIG9kZXIgZsO8ciBkaWUg
TWFya3QtIG9kZXIgTWVpbnVuZ3Nmb3JzY2h1bmcgKMKnIDI4IEFicy4gNCBCRFNHKS4NCi0tLS0t
QkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tDQoNCmlMVUVBUk1LQUIwV0lRUVpWWk16QXR3QzJULzg2
VHJTNTI4ZnlGaFlsQVVDV3V0djh3QUtDUkRTNTI4ZnlGaFkNCmxJZTFBZndPQ0FpZ3BYYXdaN0tB
akxOcFdqUlQ0RHNyemZxY0M1N01vemlWUXlLK1g5cW9RQTJ2MHBsVk5wUDANCkZMcWg1ZGtSWGlp
T0xyeXI5YXVJTFVLeUxDTnlBZndMN2NGZTFZUlg3Vm5zSzV3Ly84WG0yNXRKNzRDWEM4UDANCmdh
b1NxdkRxQ0tXVGo2aU4rUS9Qam9Ob2hXb0lLNzZ0aVpBV1Bqa2FIZXVGYnlwUGEyRysNCj1FcEph
DQotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0NCg==



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180503222419.4228e8e8>