Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Aug 2018 07:22:54 +0200
From:      "O. Hartmann" <ohartmann@walstatt.org>
To:        Matt Macy <mmacy@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r337670 - in head/sys/cddl: compat/opensolaris/sys contrib/opensolaris/uts/common contrib/opensolaris/uts/common/fs/zfs contrib/opensolaris/uts/common/fs/zfs/sys
Message-ID:  <20180812072321.1a74466a@thor.intern.walstatt.dynvpn.de>
In-Reply-To: <201808120110.w7C1AIL1087851@repo.freebsd.org>
References:  <201808120110.w7C1AIL1087851@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQ0KSGFzaDogU0hBNTEyDQoNCkFtIFN1
biwgMTIgQXVnIDIwMTggMDE6MTA6MTggKzAwMDAgKFVUQykNCk1hdHQgTWFjeSA8bW1hY3lARnJl
ZUJTRC5vcmc+IHNjaHJpZWI6DQoNCj4gQXV0aG9yOiBtbWFjeQ0KPiBEYXRlOiBTdW4gQXVnIDEy
IDAxOjEwOjE4IDIwMTgNCj4gTmV3IFJldmlzaW9uOiAzMzc2NzANCj4gVVJMOiBodHRwczovL3N2
bndlYi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8zMzc2NzANCj4gDQo+IExvZzoNCj4gICBN
RlYvWm9MOiBhZGQgZGJ1ZiBzdGF0cw0KPiAgIA0KPiAgIE5COiBkaXNhYmxlZCBwZW5kaW5nIHRo
ZSBhZGRpdGlvbiBvZiBLU1RBVF9UWVBFX1JBVyBzdXBwb3J0IHRvIHRoZQ0KPiAgIFNQTA0KPiAg
IA0KPiAgIGNvbW1pdCBlMGIwY2E5ODNkNjg5N2JjZGRmMDVhZjJjMGU1ZDAxZmY2NmY5MGRiDQo+
ICAgQXV0aG9yOiBCcmlhbiBCZWhsZW5kb3JmIDxiZWhsZW5kb3JmMUBsbG5sLmdvdj4NCj4gICBE
YXRlOiAgIFdlZCBPY3QgMiAxNzoxMToxOSAyMDEzIC0wNzAwDQo+ICAgDQo+ICAgICAgIEFkZCB2
aXNpYmlsaXR5IGluIHRvIGNhY2hlZCBkYnVmcw0KPiAgIA0KPiAgICAgICBDdXJyZW50bHkgdGhl
cmUgaXMgbm8gbWVjaGFuaXNtIHRvIGluc3BlY3Qgd2hpY2ggZGJ1ZnMgYXJlIGJlaW5nDQo+ICAg
ICAgIGNhY2hlZCBieSB0aGUgc3lzdGVtLiAgVGhlcmUgYXJlIHNvbWUgY29hcnNlIGNvdW50ZXJz
IGluIGFyY3N0YXRzDQo+ICAgICAgIGJ5IHRoZXkgb25seSBnaXZlIGEgcm91Z2ggaWRlYSBvZiB3
aGF0J3MgYmVpbmcgY2FjaGVkLiAgVGhpcyBwYXRjaA0KPiAgICAgICBhaW1zIHRvIGltcHJvdmUg
dGhlIGN1cnJlbnQgc2l0dWF0aW9uIGJ5IGFkZGluZyBhIG5ldyBkYnVmcyBrc3RhdC4NCj4gICAN
Cj4gICAgICAgV2hlbiByZWFkIHRoaXMgbmV3IGtzdGF0IHdpbGwgd2FsayBhbGwgY2FjaGVkIGRi
dWZzIGxpbmtlZCBpbiB0bw0KPiAgICAgICB0aGUgZGJ1Zl9oYXNoLiAgRm9yIGVhY2ggZGJ1ZiBp
dCB3aWxsIGR1bXAgZGV0YWlsZWQgaW5mb3JtYXRpb24NCj4gICAgICAgYWJvdXQgdGhlIGJ1ZmZl
ci4gIEl0IHdpbGwgYWxzbyBkdW1wIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQNCj4gICAg
ICAgdGhlIHJlZmVyZW5jZWQgYXJjIGJ1ZmZlciBhbmQgaXRzIHJlbGF0ZWQgZG5vZGUuICBUaGlz
IHByb3ZpZGVzIGENCj4gICAgICAgbW9yZSBjb21wbGV0ZSB2aWV3IGluIHRvIGV4YWN0bHkgd2hh
dCBpcyBiZWluZyBjYWNoZWQuDQo+ICAgDQo+ICAgICAgIFdpdGggdGhpcyBnZW5lcmljIGluZnJh
c3RydWN0dXJlIGluIHBsYWNlIHV0aWxpdGllcyBjYW4gYmUgd3JpdHRlbg0KPiAgICAgICB0byBw
b3N0LXByb2Nlc3MgdGhlIGRhdGEgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGUgY2FjaGlu
ZyBpcw0KPiAgICAgICB3b3JraW5nLiAgRm9yIGV4YW1wbGUsIHRoZSBkYXRhIGNvdWxkIGJlIHBy
b2Nlc3NlZCB0byBzaG93IGEgbGlzdA0KPiAgICAgICBvZiBhbGwgY2FjaGVkIGRub2RlcyBhbmQg
aG93IG11Y2ggc3BhY2UgdGhleSdyZSBjb25zdW1pbmcuICBPciBhDQo+ICAgICAgIHNpbWlsYXIg
bGlzdCBjb3VsZCBiZSBnZW5lcmF0ZWQgYmFzZWQgb24gZG5vZGUgdHlwZS4gIE1hbnkgb3RoZXIN
Cj4gICAgICAgd2F5cyB0byBpbnRlcnByZXQgdGhlIGRhdGEgZXhpc3QgYmFzZWQgb24gd2hhdCBr
aW5kcyBvZiBxdWVzdGlvbnMNCj4gICAgICAgeW91J3JlIHRyeWluZyB0byBhbnN3ZXIuDQo+ICAg
DQo+ICAgICAgIFNpZ25lZC1vZmYtYnk6IEJyaWFuIEJlaGxlbmRvcmYgPGJlaGxlbmRvcmYxQGxs
bmwuZ292Pg0KPiAgICAgICBTaWduZWQtb2ZmLWJ5OiBQcmFrYXNoIFN1cnlhIDxzdXJ5YTFAbGxu
bC5nb3Y+DQo+IA0KPiBBZGRlZDoNCj4gICBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFy
aXMvdXRzL2NvbW1vbi9mcy96ZnMvZGJ1Zl9zdGF0cy5jDQo+IE1vZGlmaWVkOg0KPiAgIGhlYWQv
c3lzL2NkZGwvY29tcGF0L29wZW5zb2xhcmlzL3N5cy9rc3RhdC5oDQo+ICAgaGVhZC9zeXMvY2Rk
bC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vTWFrZWZpbGUuZmlsZXMNCj4gICBoZWFk
L3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvYXJjLmMNCj4g
ICBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvZGJ1
Zi5jDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMv
emZzL2RtdS5jDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21t
b24vZnMvemZzL3N5cy9hcmMuaA0KPiAgIGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJp
cy91dHMvY29tbW9uL2ZzL3pmcy9zeXMvZGJ1Zi5oDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmli
L29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9kbXUuaA0KPiANCj4gTW9kaWZpZWQ6
IGhlYWQvc3lzL2NkZGwvY29tcGF0L29wZW5zb2xhcmlzL3N5cy9rc3RhdC5oDQo+ID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KPiAtLS0gaGVhZC9zeXMvY2RkbC9jb21wYXQvb3BlbnNvbGFyaXMvc3lz
L2tzdGF0LmgJU3VuIEF1ZyAxMiAwMDo0NTo1MyAyMDE4DQo+IChyMzM3NjY5KSArKysgaGVhZC9z
eXMvY2RkbC9jb21wYXQvb3BlbnNvbGFyaXMvc3lzL2tzdGF0LmgJU3VuIEF1ZyAxMiAwMToxMDox
OA0KPiAyMDE4CShyMzM3NjcwKSBAQCAtMzEsNyArMzEsMTggQEANCj4gIA0KPiAgI2luY2x1ZGUg
PHN5cy9zeXNjdGwuaD4NCj4gIA0KPiAtI2RlZmluZQlLU1RBVF9UWVBFX05BTUVECTENCj4gKyNk
ZWZpbmUJS1NUQVRfVFlQRV9SQVcJCTAJLyogY2FuIGJlIGFueXRoaW5nICovDQo+ICsJCQkJCS8q
IGtzX25kYXRhID49IDEgKi8NCj4gKyNkZWZpbmUJS1NUQVRfVFlQRV9OQU1FRAkxCS8qIG5hbWUv
dmFsdWUgcGFpciAqLw0KPiArCQkJCQkvKiBrc19uZGF0YSA+PSAxICovDQo+ICsjZGVmaW5lCUtT
VEFUX1RZUEVfSU5UUgkJMgkvKiBpbnRlcnJ1cHQgc3RhdGlzdGljcyAqLw0KPiArCQkJCQkvKiBr
c19uZGF0YSA9PSAxICovDQo+ICsjZGVmaW5lCUtTVEFUX1RZUEVfSU8JCTMJLyogSS9PIHN0YXRp
c3RpY3MgKi8NCj4gKwkJCQkJLyoga3NfbmRhdGEgPT0gMSAqLw0KPiArI2RlZmluZQlLU1RBVF9U
WVBFX1RJTUVSCTQJLyogZXZlbnQgdGltZXIgKi8NCj4gKwkJCQkJLyoga3NfbmRhdGEgPj0gMSAq
Lw0KPiArDQo+ICsjZGVmaW5lCUtTVEFUX05VTV9UWVBFUwkJNQ0KPiAgDQo+ICAjZGVmaW5lCUtT
VEFUX0ZMQUdfVklSVFVBTAkweDAxDQo+ICANCj4gDQo+IE1vZGlmaWVkOiBoZWFkL3N5cy9jZGRs
L2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9NYWtlZmlsZS5maWxlcw0KPiA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCj4gLS0tIGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91
dHMvY29tbW9uL01ha2VmaWxlLmZpbGVzCVN1biBBdWcgMTINCj4gMDA6NDU6NTMgMjAxOAkocjMz
NzY2OSkgKysrDQo+IGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9u
L01ha2VmaWxlLmZpbGVzCVN1biBBdWcgMTIgMDE6MTA6MTgNCj4gMjAxOAkocjMzNzY3MCkgQEAg
LTcyLDYgKzcyLDcgQEAgWkZTX0NPTU1PTl9PQkpTICs9CQlcDQo+IGJxdWV1ZS5vCQlcIGNpdHlo
YXNoLm8JCVwNCj4gIAlkYnVmLm8JCQlcDQo+ICsJZGJ1Zl9zdGF0cy5vCQlcDQo+ICAJZGR0Lm8J
CQlcDQo+ICAJZGR0X3phcC5vCQlcDQo+ICAJZG11Lm8JCQlcDQo+IA0KPiBNb2RpZmllZDogaGVh
ZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL2FyYy5jDQo+
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KPiAtLS0gaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5z
b2xhcmlzL3V0cy9jb21tb24vZnMvemZzL2FyYy5jCVN1biBBdWcgMTINCj4gMDA6NDU6NTMgMjAx
OAkocjMzNzY2OSkgKysrDQo+IGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMv
Y29tbW9uL2ZzL3pmcy9hcmMuYwlTdW4gQXVnIDEyIDAxOjEwOjE4DQo+IDIwMTgJKHIzMzc2NzAp
IEBAIC01MjMsNiArNTIzLDEwIEBAIHR5cGVkZWYgc3RydWN0IGFyY19zdGF0ZSB7DQo+ICAJICog
bm9uLWV2aWN0YWJsZSwgQVJDX0JVRkNfREFUQSwgYW5kIEFSQ19CVUZDX01FVEFEQVRBLg0KPiAg
CSAqLw0KPiAgCXJlZmNvdW50X3QgYXJjc19zaXplOw0KPiArCS8qDQo+ICsJICogc3VwcG9ydHMg
dGhlICJkYnVmcyIga3N0YXQNCj4gKwkgKi8NCj4gKwlhcmNfc3RhdGVfdHlwZV90IGFyY3Nfc3Rh
dGU7DQo+ICB9IGFyY19zdGF0ZV90Ow0KPiAgDQo+ICAvKg0KPiBAQCAtMTExMSw2ICsxMTE1LDEx
IEBAIHR5cGVkZWYgc3RydWN0IGwxYXJjX2J1Zl9oZHIgew0KPiAgDQo+ICAJLyogdXBkYXRlZCBh
dG9taWNhbGx5ICovDQo+ICAJY2xvY2tfdAkJCWJfYXJjX2FjY2VzczsNCj4gKwl1aW50MzJfdAkJ
Yl9tcnVfaGl0czsNCj4gKwl1aW50MzJfdAkJYl9tcnVfZ2hvc3RfaGl0czsNCj4gKwl1aW50MzJf
dAkJYl9tZnVfaGl0czsNCj4gKwl1aW50MzJfdAkJYl9tZnVfZ2hvc3RfaGl0czsNCj4gKwl1aW50
MzJfdAkJYl9sMl9oaXRzOw0KPiAgDQo+ICAJLyogc2VsZiBwcm90ZWN0aW5nICovDQo+ICAJcmVm
Y291bnRfdAkJYl9yZWZjbnQ7DQo+IEBAIC0xMTI1LDYgKzExMzQsNyBAQCB0eXBlZGVmIHN0cnVj
dCBsMmFyY19idWZfaGRyIHsNCj4gIAkvKiBwcm90ZWN0ZWQgYnkgYXJjX2J1Zl9oZHIgbXV0ZXgg
Ki8NCj4gIAlsMmFyY19kZXZfdAkJKmJfZGV2OwkJLyogTDJBUkMgZGV2aWNlICovDQo+ICAJdWlu
dDY0X3QJCWJfZGFkZHI7CS8qIGRpc2sgYWRkcmVzcywgb2Zmc2V0IGJ5dGUgKi8NCj4gKwl1aW50
MzJfdAkJYl9oaXRzOw0KPiAgDQo+ICAJbGlzdF9ub2RlX3QJCWJfbDJub2RlOw0KPiAgfSBsMmFy
Y19idWZfaGRyX3Q7DQo+IEBAIC0yNTUyLDYgKzI1NjIsNTUgQEAgcmVtb3ZlX3JlZmVyZW5jZShh
cmNfYnVmX2hkcl90ICpoZHIsIGttdXRleF90ICpoYXNoX2xvDQo+ICB9DQo+ICANCj4gIC8qDQo+
ICsgKiBSZXR1cm5zIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgYXJjIGJ1
ZmZlci4gIFdoZW4gdGhlDQo+ICsgKiBzdGF0ZV9pbmRleCBhcmd1bWVudCBpcyBzZXQgdGhlIGZ1
bmN0aW9uIHdpbGwgY2FsY3VsYXRlIHRoZSBhcmMgaGVhZGVyDQo+ICsgKiBsaXN0IHBvc2l0aW9u
IGZvciBpdHMgYXJjIHN0YXRlLiAgU2luY2UgdGhpcyByZXF1aXJlcyBhIGxpbmVhciB0cmF2ZXJz
YWwNCj4gKyAqIGNhbGxlcnMgYXJlIHN0cm9uZ2x5IGVuY291cmFnZSBub3QgdG8gZG8gdGhpcy4g
IEhvd2V2ZXIsIGl0IGNhbiBiZSBoZWxwZnVsDQo+ICsgKiBmb3IgdGFyZ2V0ZWQgYW5hbHlzaXMg
c28gdGhlIGZ1bmN0aW9uYWxpdHkgaXMgcHJvdmlkZWQuDQo+ICsgKi8NCj4gK3ZvaWQNCj4gK2Fy
Y19idWZfaW5mbyhhcmNfYnVmX3QgKmFiLCBhcmNfYnVmX2luZm9fdCAqYWJpLCBpbnQgc3RhdGVf
aW5kZXgpDQo+ICt7DQo+ICsJYXJjX2J1Zl9oZHJfdCAqaGRyID0gYWItPmJfaGRyOw0KPiArCWwx
YXJjX2J1Zl9oZHJfdCAqbDFoZHIgPSBOVUxMOw0KPiArCWwyYXJjX2J1Zl9oZHJfdCAqbDJoZHIg
PSBOVUxMOw0KPiArCWFyY19zdGF0ZV90ICpzdGF0ZSA9IE5VTEw7DQo+ICsNCj4gKwltZW1zZXQo
YWJpLCAwLCBzaXplb2YgKGFyY19idWZfaW5mb190KSk7DQo+ICsNCj4gKwlpZiAoaGRyID09IE5V
TEwpDQo+ICsJCXJldHVybjsNCj4gKw0KPiArCWFiaS0+YWJpX2ZsYWdzID0gaGRyLT5iX2ZsYWdz
Ow0KPiArDQo+ICsJaWYgKEhEUl9IQVNfTDFIRFIoaGRyKSkgew0KPiArCQlsMWhkciA9ICZoZHIt
PmJfbDFoZHI7DQo+ICsJCXN0YXRlID0gbDFoZHItPmJfc3RhdGU7DQo+ICsJfQ0KPiArCWlmIChI
RFJfSEFTX0wySERSKGhkcikpDQo+ICsJCWwyaGRyID0gJmhkci0+Yl9sMmhkcjsNCj4gKw0KPiAr
CWlmIChsMWhkcikgew0KPiArCQlhYmktPmFiaV9idWZjbnQgPSBsMWhkci0+Yl9idWZjbnQ7DQo+
ICsJCWFiaS0+YWJpX2FjY2VzcyA9IGwxaGRyLT5iX2FyY19hY2Nlc3M7DQo+ICsJCWFiaS0+YWJp
X21ydV9oaXRzID0gbDFoZHItPmJfbXJ1X2hpdHM7DQo+ICsJCWFiaS0+YWJpX21ydV9naG9zdF9o
aXRzID0gbDFoZHItPmJfbXJ1X2dob3N0X2hpdHM7DQo+ICsJCWFiaS0+YWJpX21mdV9oaXRzID0g
bDFoZHItPmJfbWZ1X2hpdHM7DQo+ICsJCWFiaS0+YWJpX21mdV9naG9zdF9oaXRzID0gbDFoZHIt
PmJfbWZ1X2dob3N0X2hpdHM7DQo+ICsJCWFiaS0+YWJpX2hvbGRzID0gcmVmY291bnRfY291bnQo
JmwxaGRyLT5iX3JlZmNudCk7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKGwyaGRyKSB7DQo+ICsJCWFi
aS0+YWJpX2wyYXJjX2RhdHRyID0gbDJoZHItPmJfZGFkZHI7DQo+ICsJCWFiaS0+YWJpX2wyYXJj
X2hpdHMgPSBsMmhkci0+Yl9oaXRzOw0KPiArCX0NCj4gKw0KPiArCWFiaS0+YWJpX3N0YXRlX3R5
cGUgPSBzdGF0ZSA/IHN0YXRlLT5hcmNzX3N0YXRlIDogQVJDX1NUQVRFX0FOT047DQo+ICsJYWJp
LT5hYmlfc3RhdGVfY29udGVudHMgPSBhcmNfYnVmX3R5cGUoaGRyKTsNCj4gKwlhYmktPmFiaV9z
aXplID0gYXJjX2hkcl9zaXplKGhkcik7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICAgKiBNb3ZlIHRo
ZSBzdXBwbGllZCBidWZmZXIgdG8gdGhlIGluZGljYXRlZCBzdGF0ZS4gVGhlIGhhc2ggbG9jaw0K
PiAgICogZm9yIHRoZSBidWZmZXIgbXVzdCBiZSBoZWxkIGJ5IHRoZSBjYWxsZXIuDQo+ICAgKi8N
Cj4gQEAgLTUyNTgsNiArNTMxNyw3IEBAIGFyY19hY2Nlc3MoYXJjX2J1Zl9oZHJfdCAqaGRyLCBr
bXV0ZXhfdCAqaGFzaF9sb2NrKQ0KPiAgCQkJRFRSQUNFX1BST0JFMShuZXdfc3RhdGVfX21mdSwg
YXJjX2J1Zl9oZHJfdCAqLCBoZHIpOw0KPiAgCQkJYXJjX2NoYW5nZV9zdGF0ZShhcmNfbWZ1LCBo
ZHIsIGhhc2hfbG9jayk7DQo+ICAJCX0NCj4gKwkJYXRvbWljX2luY18zMigmaGRyLT5iX2wxaGRy
LmJfbXJ1X2hpdHMpOw0KPiAgCQlBUkNTVEFUX0JVTVAoYXJjc3RhdF9tcnVfaGl0cyk7DQo+ICAJ
fSBlbHNlIGlmIChoZHItPmJfbDFoZHIuYl9zdGF0ZSA9PSBhcmNfbXJ1X2dob3N0KSB7DQo+ICAJ
CWFyY19zdGF0ZV90CSpuZXdfc3RhdGU7DQo+IEBAIC01MjgzLDYgKzUzNDMsNyBAQCBhcmNfYWNj
ZXNzKGFyY19idWZfaGRyX3QgKmhkciwga211dGV4X3QgKmhhc2hfbG9jaykNCj4gIAkJaGRyLT5i
X2wxaGRyLmJfYXJjX2FjY2VzcyA9IGRkaV9nZXRfbGJvbHQoKTsNCj4gIAkJYXJjX2NoYW5nZV9z
dGF0ZShuZXdfc3RhdGUsIGhkciwgaGFzaF9sb2NrKTsNCj4gIA0KPiArCQlhdG9taWNfaW5jXzMy
KCZoZHItPmJfbDFoZHIuYl9tcnVfZ2hvc3RfaGl0cyk7DQo+ICAJCUFSQ1NUQVRfQlVNUChhcmNz
dGF0X21ydV9naG9zdF9oaXRzKTsNCj4gIAl9IGVsc2UgaWYgKGhkci0+Yl9sMWhkci5iX3N0YXRl
ID09IGFyY19tZnUpIHsNCj4gIAkJLyoNCj4gQEAgLTUyOTUsNiArNTM1Niw3IEBAIGFyY19hY2Nl
c3MoYXJjX2J1Zl9oZHJfdCAqaGRyLCBrbXV0ZXhfdCAqaGFzaF9sb2NrKQ0KPiAgCQkgKiB0aGUg
aGVhZCBvZiB0aGUgbGlzdCBub3cuDQo+ICAJCSAqLw0KPiAgDQo+ICsJCWF0b21pY19pbmNfMzIo
Jmhkci0+Yl9sMWhkci5iX21mdV9oaXRzKTsNCj4gIAkJQVJDU1RBVF9CVU1QKGFyY3N0YXRfbWZ1
X2hpdHMpOw0KPiAgCQloZHItPmJfbDFoZHIuYl9hcmNfYWNjZXNzID0gZGRpX2dldF9sYm9sdCgp
Ow0KPiAgCX0gZWxzZSBpZiAoaGRyLT5iX2wxaGRyLmJfc3RhdGUgPT0gYXJjX21mdV9naG9zdCkg
ew0KPiBAQCAtNTMxNyw2ICs1Mzc5LDcgQEAgYXJjX2FjY2VzcyhhcmNfYnVmX2hkcl90ICpoZHIs
IGttdXRleF90ICpoYXNoX2xvY2spDQo+ICAJCURUUkFDRV9QUk9CRTEobmV3X3N0YXRlX19tZnUs
IGFyY19idWZfaGRyX3QgKiwgaGRyKTsNCj4gIAkJYXJjX2NoYW5nZV9zdGF0ZShuZXdfc3RhdGUs
IGhkciwgaGFzaF9sb2NrKTsNCj4gIA0KPiArCQlhdG9taWNfaW5jXzMyKCZoZHItPmJfbDFoZHIu
Yl9tZnVfZ2hvc3RfaGl0cyk7DQo+ICAJCUFSQ1NUQVRfQlVNUChhcmNzdGF0X21mdV9naG9zdF9o
aXRzKTsNCj4gIAl9IGVsc2UgaWYgKGhkci0+Yl9sMWhkci5iX3N0YXRlID09IGFyY19sMmNfb25s
eSkgew0KPiAgCQkvKg0KPiBAQCAtNTkxMyw2ICs1OTc2LDcgQEAgdG9wOg0KPiAgDQo+ICAJCQkJ
RFRSQUNFX1BST0JFMShsMmFyY19faGl0LCBhcmNfYnVmX2hkcl90ICosIGhkcik7DQo+ICAJCQkJ
QVJDU1RBVF9CVU1QKGFyY3N0YXRfbDJfaGl0cyk7DQo+ICsJCQkJYXRvbWljX2luY18zMigmaGRy
LT5iX2wyaGRyLmJfaGl0cyk7DQo+ICANCj4gIAkJCQljYiA9IGttZW1femFsbG9jKHNpemVvZiAo
bDJhcmNfcmVhZF9jYWxsYmFja190KSwNCj4gIAkJCQkgICAgS01fU0xFRVApOw0KPiANCj4gTW9k
aWZpZWQ6IGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pm
cy9kYnVmLmMNCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IC0tLSBoZWFkL3N5cy9jZGRsL2Nv
bnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvZGJ1Zi5jCVN1biBBdWcgMTINCj4g
MDA6NDU6NTMgMjAxOAkocjMzNzY2OSkgKysrDQo+IGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVu
c29sYXJpcy91dHMvY29tbW9uL2ZzL3pmcy9kYnVmLmMJU3VuIEF1ZyAxMiAwMToxMDoxOA0KPiAy
MDE4CShyMzM3NjcwKSBAQCAtNjQ5LDYgKzY0OSw3IEBAIHJldHJ5OiBmb3IgKGkgPSAwOyBpIDwg
REJVRl9NVVRFWEVTOyBpKyspDQo+ICAJCW11dGV4X2luaXQoJmgtPmhhc2hfbXV0ZXhlc1tpXSwg
TlVMTCwgTVVURVhfREVGQVVMVCwgTlVMTCk7DQo+ICANCj4gKwlkYnVmX3N0YXRzX2luaXQoaCk7
DQo+ICAJLyoNCj4gIAkgKiBTZXR1cCB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGRidWYgY2FjaGVz
LiBXZSBzZXQgdGhlIHNpemVzIG9mIHRoZQ0KPiAgCSAqIGRidWYgY2FjaGUgYW5kIHRoZSBtZXRh
ZGF0YSBjYWNoZSB0byAxLzMybmQgYW5kIDEvMTZ0aCAoZGVmYXVsdCkNCj4gQEAgLTY5Miw2ICs2
OTMsOCBAQCBkYnVmX2Zpbmkodm9pZCkNCj4gIHsNCj4gIAlkYnVmX2hhc2hfdGFibGVfdCAqaCA9
ICZkYnVmX2hhc2hfdGFibGU7DQo+ICAJaW50IGk7DQo+ICsNCj4gKwlkYnVmX3N0YXRzX2Rlc3Ry
b3koKTsNCj4gIA0KPiAgCWZvciAoaSA9IDA7IGkgPCBEQlVGX01VVEVYRVM7IGkrKykNCj4gIAkJ
bXV0ZXhfZGVzdHJveSgmaC0+aGFzaF9tdXRleGVzW2ldKTsNCj4gDQo+IEFkZGVkOiBoZWFkL3N5
cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvZGJ1Zl9zdGF0cy5j
DQo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiAtLS0gL2Rldi9udWxsCTAwOjAwOjAwIDE5NzAJ
KGVtcHR5LCBiZWNhdXNlIGZpbGUgaXMgbmV3bHkgYWRkZWQpDQo+ICsrKyBoZWFkL3N5cy9jZGRs
L2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvZGJ1Zl9zdGF0cy5jCVN1biBB
dWcgMTINCj4gMDE6MTA6MTggMjAxOAkocjMzNzY3MCkgQEAgLTAsMCArMSwyNDIgQEANCj4gKy8q
DQo+ICsgKiBDRERMIEhFQURFUiBTVEFSVA0KPiArICoNCj4gKyAqIFRoZSBjb250ZW50cyBvZiB0
aGlzIGZpbGUgYXJlIHN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoZQ0KPiArICogQ29tbW9uIERl
dmVsb3BtZW50IGFuZCBEaXN0cmlidXRpb24gTGljZW5zZSAodGhlICJMaWNlbnNlIikuDQo+ICsg
KiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhl
IExpY2Vuc2UuDQo+ICsgKg0KPiArICogWW91IGNhbiBvYnRhaW4gYSBjb3B5IG9mIHRoZSBsaWNl
bnNlIGF0IHVzci9zcmMvT1BFTlNPTEFSSVMuTElDRU5TRQ0KPiArICogb3IgaHR0cDovL3d3dy5v
cGVuc29sYXJpcy5vcmcvb3MvbGljZW5zaW5nLg0KPiArICogU2VlIHRoZSBMaWNlbnNlIGZvciB0
aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zDQo+ICsgKiBhbmQgbGlt
aXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQo+ICsgKg0KPiArICogV2hlbiBkaXN0cmlidXRp
bmcgQ292ZXJlZCBDb2RlLCBpbmNsdWRlIHRoaXMgQ0RETCBIRUFERVIgaW4gZWFjaA0KPiArICog
ZmlsZSBhbmQgaW5jbHVkZSB0aGUgTGljZW5zZSBmaWxlIGF0IHVzci9zcmMvT1BFTlNPTEFSSVMu
TElDRU5TRS4NCj4gKyAqIElmIGFwcGxpY2FibGUsIGFkZCB0aGUgZm9sbG93aW5nIGJlbG93IHRo
aXMgQ0RETCBIRUFERVIsIHdpdGggdGhlDQo+ICsgKiBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tl
dHMgIltdIiByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nDQo+ICsgKiBpbmZvcm1h
dGlvbjogUG9ydGlvbnMgQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJd
DQo+ICsgKg0KPiArICogQ0RETCBIRUFERVIgRU5EDQo+ICsgKi8NCj4gKw0KPiArI2luY2x1ZGUg
PHN5cy96ZnNfY29udGV4dC5oPg0KPiArI2luY2x1ZGUgPHN5cy9kYnVmLmg+DQo+ICsjaW5jbHVk
ZSA8c3lzL2RtdV9vYmpzZXQuaD4NCj4gKw0KPiArLyoNCj4gKyAqIENhbGN1bGF0ZSB0aGUgaW5k
ZXggb2YgdGhlIGFyYyBoZWFkZXIgZm9yIHRoZSBzdGF0ZSwgZGlzYWJsZWQgYnkgZGVmYXVsdC4N
Cj4gKyAqLw0KPiAraW50IHpmc19kYnVmX3N0YXRlX2luZGV4ID0gMDsNCj4gKw0KPiArLyoNCj4g
KyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQo+ICsgKiBEYnVmIEhhc2ggUmVhZCBSb3V0aW5lcw0KPiAr
ICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCj4gKyAqLw0KPiArdHlwZWRlZiBzdHJ1Y3QgZGJ1Zl9zdGF0
c190IHsNCj4gKwlrbXV0ZXhfdAkJbG9jazsNCj4gKwlrc3RhdF90CQkJKmtzdGF0Ow0KPiArCWRi
dWZfaGFzaF90YWJsZV90CSpoYXNoOw0KPiArCWludAkJCWlkeDsNCj4gK30gZGJ1Zl9zdGF0c190
Ow0KPiArDQo+ICtzdGF0aWMgZGJ1Zl9zdGF0c190IGRidWZfc3RhdHNfaGFzaF90YWJsZTsNCj4g
Kw0KPiArc3RhdGljIGludA0KPiArZGJ1Zl9zdGF0c19oYXNoX3RhYmxlX2hlYWRlcnMoY2hhciAq
YnVmLCBzaXplX3Qgc2l6ZSkNCj4gK3sNCj4gKwlzaXplID0gc25wcmludGYoYnVmLCBzaXplIC0g
MSwNCj4gKwkgICAgIiUtODhzIHwgJS0xMjRzIHwgJXNcbiINCj4gKwkgICAgIiUtMTZzICUtOHMg
JS04cyAlLThzICUtOHMgJS04cyAlLThzICUtNXMgJS01cyAlNXMgfCAiDQo+ICsJICAgICIlLTVz
ICUtNXMgJS02cyAlLThzICUtNnMgJS04cyAlLTEycyAiDQo+ICsJICAgICIlLTZzICUtNnMgJS02
cyAlLTZzICUtNnMgJS04cyAlLThzICUtOHMgJS01cyB8ICINCj4gKwkgICAgIiUtNnMgJS02cyAl
LThzICUtOHMgJS02cyAlLTZzICUtNXMgJS04cyAlLThzXG4iLA0KPiArCSAgICAiZGJ1ZiIsICJh
cmNidWYiLCAiZG5vZGUiLCAicG9vbCIsICJvYmpzZXQiLCAib2JqZWN0IiwgImxldmVsIiwNCj4g
KwkgICAgImJsa2lkIiwgIm9mZnNldCIsICJkYnNpemUiLCAibWV0YSIsICJzdGF0ZSIsICJkYmhv
bGRzIiwgImxpc3QiLA0KPiArCSAgICAiYXR5cGUiLCAiaW5kZXgiLCAiZmxhZ3MiLCAiY291bnQi
LCAiYXNpemUiLCAiYWNjZXNzIiwgIm1ydSIsICJnbXJ1IiwNCj4gKwkgICAgIm1mdSIsICJnbWZ1
IiwgImwyIiwgImwyX2RhdHRyIiwgImwyX2FzaXplIiwgImwyX2NvbXAiLCAiYWhvbGRzIiwNCj4g
KwkgICAgImR0eXBlIiwgImJ0eXBlIiwgImRhdGFfYnMiLCAibWV0YV9icyIsICJic2l6ZSIsDQo+
ICsJICAgICJsdmxzIiwgImRob2xkcyIsICJibG9ja3MiLCAiZHNpemUiKTsNCj4gKyAgICAgICAg
YnVmW3NpemVdID0gJ1wwJzsNCj4gKw0KPiArCXJldHVybiAoMCk7DQo+ICt9DQo+ICsNCj4gK2lu
dA0KPiArX19kYnVmX3N0YXRzX2hhc2hfdGFibGVfZGF0YShjaGFyICpidWYsIHNpemVfdCBzaXpl
LCBkbXVfYnVmX2ltcGxfdCAqZGIpDQo+ICt7DQo+ICsJYXJjX2J1Zl9pbmZvX3QgYWJpID0geyAw
IH07DQo+ICsJZG11X29iamVjdF9pbmZvX3QgZG9pID0geyAwIH07DQo+ICsJZG5vZGVfdCAqZG4g
PSBEQl9ETk9ERShkYik7DQo+ICsNCj4gKwlpZiAoZGItPmRiX2J1ZikNCj4gKwkJYXJjX2J1Zl9p
bmZvKGRiLT5kYl9idWYsICZhYmksIHpmc19kYnVmX3N0YXRlX2luZGV4KTsNCj4gKw0KPiArCWlm
IChkbikNCj4gKwkJX19kbXVfb2JqZWN0X2luZm9fZnJvbV9kbm9kZShkbiwgJmRvaSk7DQo+ICsN
Cj4gKwlzaXplID0gc25wcmludGYoYnVmLCBzaXplIC0gMSwNCj4gKwkgICAgIiUtMTZzICUtOGxs
dSAlLThsbGQgJS04bGxkICUtOGxsZCAlLThsbHUgJS04bGx1ICUtNWQgJS01ZCAlLTVsdSB8ICIN
Cj4gKwkgICAgIiUtNWQgJS01ZCAlLTZsbGQgMHglLTZ4ICUtNmx1ICUtOGxsdSAlLTEybGx1ICIN
Cj4gKwkgICAgIiUtNmx1ICUtNmx1ICUtNmx1ICUtNmx1ICUtNmx1ICUtOGxsdSAlLThsbHUgJS04
ZCAlLTVsdSB8ICINCj4gKwkgICAgIiUtNmQgJS02ZCAlLThsdSAlLThsdSAlLTZsbHUgJS02bHUg
JS01bHUgJS04bGx1ICUtOGxsdVxuIiwNCj4gKwkgICAgLyogZG11X2J1Zl9pbXBsX3QgKi8NCj4g
KwkgICAgc3BhX25hbWUoZG4tPmRuX29ianNldC0+b3Nfc3BhKSwNCj4gKwkgICAgKHVfbG9uZ2xv
bmdfdClkbXVfb2Jqc2V0X2lkKGRiLT5kYl9vYmpzZXQpLA0KPiArCSAgICAobG9uZ2xvbmdfdClk
Yi0+ZGIuZGJfb2JqZWN0LA0KPiArCSAgICAobG9uZ2xvbmdfdClkYi0+ZGJfbGV2ZWwsDQo+ICsJ
ICAgIChsb25nbG9uZ190KWRiLT5kYl9ibGtpZCwNCj4gKwkgICAgKHVfbG9uZ2xvbmdfdClkYi0+
ZGIuZGJfb2Zmc2V0LA0KPiArCSAgICAodV9sb25nbG9uZ190KWRiLT5kYi5kYl9zaXplLA0KPiAr
CSAgICAhIWRidWZfaXNfbWV0YWRhdGEoZGIpLA0KPiArCSAgICBkYi0+ZGJfc3RhdGUsDQo+ICsJ
ICAgICh1bG9uZ190KXJlZmNvdW50X2NvdW50KCZkYi0+ZGJfaG9sZHMpLA0KPiArCSAgICAvKiBh
cmNfYnVmX2luZm9fdCAqLw0KPiArCSAgICBhYmkuYWJpX3N0YXRlX3R5cGUsDQo+ICsJICAgIGFi
aS5hYmlfc3RhdGVfY29udGVudHMsDQo+ICsJICAgIChsb25nbG9uZ190KWFiaS5hYmlfc3RhdGVf
aW5kZXgsDQo+ICsJICAgIGFiaS5hYmlfZmxhZ3MsDQo+ICsJICAgICh1bG9uZ190KWFiaS5hYmlf
YnVmY250LA0KPiArCSAgICAodV9sb25nbG9uZ190KWFiaS5hYmlfc2l6ZSwNCj4gKwkgICAgKHVf
bG9uZ2xvbmdfdClhYmkuYWJpX2FjY2VzcywNCj4gKwkgICAgKHVsb25nX3QpYWJpLmFiaV9tcnVf
aGl0cywNCj4gKwkgICAgKHVsb25nX3QpYWJpLmFiaV9tcnVfZ2hvc3RfaGl0cywNCj4gKwkgICAg
KHVsb25nX3QpYWJpLmFiaV9tZnVfaGl0cywNCj4gKwkgICAgKHVsb25nX3QpYWJpLmFiaV9tZnVf
Z2hvc3RfaGl0cywNCj4gKwkgICAgKHVsb25nX3QpYWJpLmFiaV9sMmFyY19oaXRzLA0KPiArCSAg
ICAodV9sb25nbG9uZ190KWFiaS5hYmlfbDJhcmNfZGF0dHIsDQo+ICsJICAgICh1X2xvbmdsb25n
X3QpYWJpLmFiaV9sMmFyY19hc2l6ZSwNCj4gKwkgICAgYWJpLmFiaV9sMmFyY19jb21wcmVzcywN
Cj4gKwkgICAgKHVsb25nX3QpYWJpLmFiaV9ob2xkcywNCj4gKwkgICAgLyogZG11X29iamVjdF9p
bmZvX3QgKi8NCj4gKwkgICAgZG9pLmRvaV90eXBlLA0KPiArCSAgICBkb2kuZG9pX2JvbnVzX3R5
cGUsDQo+ICsJICAgICh1bG9uZ190KWRvaS5kb2lfZGF0YV9ibG9ja19zaXplLA0KPiArCSAgICAo
dWxvbmdfdClkb2kuZG9pX21ldGFkYXRhX2Jsb2NrX3NpemUsDQo+ICsJICAgICh1X2xvbmdsb25n
X3QpZG9pLmRvaV9ib251c19zaXplLA0KPiArCSAgICAodWxvbmdfdClkb2kuZG9pX2luZGlyZWN0
aW9uLA0KPiArCSAgICAodWxvbmdfdClyZWZjb3VudF9jb3VudCgmZG4tPmRuX2hvbGRzKSwNCj4g
KwkgICAgKHVfbG9uZ2xvbmdfdClkb2kuZG9pX2ZpbGxfY291bnQsDQo+ICsJICAgICh1X2xvbmds
b25nX3QpZG9pLmRvaV9tYXhfb2Zmc2V0KTsNCj4gKyAgICAgICAgYnVmW3NpemVdID0gJ1wwJzsN
Cj4gKw0KPiArCXJldHVybiAoc2l6ZSk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK2Ri
dWZfc3RhdHNfaGFzaF90YWJsZV9kYXRhKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsIHZvaWQgKmRh
dGEpDQo+ICt7DQo+ICsJZGJ1Zl9zdGF0c190ICpkc2ggPSAoZGJ1Zl9zdGF0c190ICopZGF0YTsN
Cj4gKwlkYnVmX2hhc2hfdGFibGVfdCAqaCA9IGRzaC0+aGFzaDsNCj4gKwlkbXVfYnVmX2ltcGxf
dCAqZGI7DQo+ICsJaW50IGxlbmd0aCwgZXJyb3IgPSAwOw0KPiArDQo+ICsJQVNTRVJUM1MoZHNo
LT5pZHgsID49LCAwKTsNCj4gKwlBU1NFUlQzUyhkc2gtPmlkeCwgPD0sIGgtPmhhc2hfdGFibGVf
bWFzayk7DQo+ICsJbWVtc2V0KGJ1ZiwgMCwgc2l6ZSk7DQo+ICsNCj4gKwltdXRleF9lbnRlcihE
QlVGX0hBU0hfTVVURVgoaCwgZHNoLT5pZHgpKTsNCj4gKwlmb3IgKGRiID0gaC0+aGFzaF90YWJs
ZVtkc2gtPmlkeF07IGRiICE9IE5VTEw7IGRiID0gZGItPmRiX2hhc2hfbmV4dCkgew0KPiArCQkv
Kg0KPiArCQkgKiBSZXR1cm5pbmcgRU5PTUVNIHdpbGwgY2F1c2UgdGhlIGRhdGEgYW5kIGhlYWRl
ciBmdW5jdGlvbnMNCj4gKwkJICogdG8gYmUgY2FsbGVkIHdpdGggYSBsYXJnZXIgc2NyYXRjaCBi
dWZmZXJzLg0KPiArCQkgKi8NCj4gKwkJaWYgKHNpemUgPCA1MTIpIHsNCj4gKwkJCWVycm9yID0g
RU5PTUVNOw0KPiArCQkJYnJlYWs7DQo+ICsJCX0NCj4gKw0KPiArCQltdXRleF9lbnRlcigmZGIt
PmRiX210eCk7DQo+ICsJCW11dGV4X2V4aXQoREJVRl9IQVNIX01VVEVYKGgsIGRzaC0+aWR4KSk7
DQo+ICsNCj4gKwkJbGVuZ3RoID0gX19kYnVmX3N0YXRzX2hhc2hfdGFibGVfZGF0YShidWYsIHNp
emUsIGRiKTsNCj4gKwkJYnVmICs9IGxlbmd0aDsNCj4gKwkJc2l6ZSAtPSBsZW5ndGg7DQo+ICsN
Cj4gKwkJbXV0ZXhfZXhpdCgmZGItPmRiX210eCk7DQo+ICsJCW11dGV4X2VudGVyKERCVUZfSEFT
SF9NVVRFWChoLCBkc2gtPmlkeCkpOw0KPiArCX0NCj4gKwltdXRleF9leGl0KERCVUZfSEFTSF9N
VVRFWChoLCBkc2gtPmlkeCkpOw0KPiArDQo+ICsJcmV0dXJuIChlcnJvcik7DQo+ICt9DQo+ICsN
Cj4gK3N0YXRpYyB2b2lkICoNCj4gK2RidWZfc3RhdHNfaGFzaF90YWJsZV9hZGRyKGtzdGF0X3Qg
KmtzcCwgb2ZmX3QgbikNCj4gK3sNCj4gKwlkYnVmX3N0YXRzX3QgKmRzaCA9IGtzcC0+a3NfcHJp
dmF0ZTsNCj4gKw0KPiArICAgICAgICBBU1NFUlQoTVVURVhfSEVMRCgmZHNoLT5sb2NrKSk7DQo+
ICsNCj4gKwlpZiAobiA8PSBkc2gtPmhhc2gtPmhhc2hfdGFibGVfbWFzaykgew0KPiArCQlkc2gt
PmlkeCA9IG47DQo+ICsJCXJldHVybiAoZHNoKTsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gKE5V
TEwpOw0KPiArfQ0KPiArDQo+ICsjaWZuZGVmIF9fRnJlZUJTRF9fDQo+ICsvKg0KPiArICogWFhY
IFRoZSBGcmVlQlNEIFNQTCBpcyBtaXNzaW5nIHN1cHBvcnQgZm9yIEtTVEFUX1RZUEVfUkFXDQo+
ICsgKiB3ZSBjYW4gZW5hYmxlIHRoaXMgYXMgc29vbiBhcyB0aGF0J3MgaW1wbGVtZW50ZWQuIFNl
ZSB0aGUNCj4gKyAqIGxpbmRlYnVnZnMgbW9kdWxlIGZvciBzaW1pbGFyIGNhbGxiYWNrIHNlbWFu
dGljcy4NCj4gKyAqLw0KPiArc3RhdGljIHZvaWQNCj4gK2RidWZfc3RhdHNfaGFzaF90YWJsZV9p
bml0KGRidWZfaGFzaF90YWJsZV90ICpoYXNoKQ0KPiArew0KPiArCWRidWZfc3RhdHNfdCAqZHNo
ID0gJmRidWZfc3RhdHNfaGFzaF90YWJsZTsNCj4gKwlrc3RhdF90ICprc3A7DQo+ICsNCj4gKwlt
dXRleF9pbml0KCZkc2gtPmxvY2ssIE5VTEwsIE1VVEVYX0RFRkFVTFQsIE5VTEwpOw0KPiArCWRz
aC0+aGFzaCA9IGhhc2g7DQo+ICsNCj4gKwlrc3AgPSBrc3RhdF9jcmVhdGUoInpmcyIsIDAsICJk
YnVmcyIsICJtaXNjIiwNCj4gKwkgICAgS1NUQVRfVFlQRV9SQVcsIDAsIEtTVEFUX0ZMQUdfVklS
VFVBTCk7DQo+ICsJZHNoLT5rc3RhdCA9IGtzcDsNCj4gKw0KPiArCWlmIChrc3ApIHsNCj4gKwkJ
a3NwLT5rc19sb2NrID0gJmRzaC0+bG9jazsNCj4gKwkJa3NwLT5rc19uZGF0YSA9IFVJTlQzMl9N
QVg7DQo+ICsJCWtzcC0+a3NfcHJpdmF0ZSA9IGRzaDsNCj4gKwkJa3N0YXRfc2V0X3Jhd19vcHMo
a3NwLCBkYnVmX3N0YXRzX2hhc2hfdGFibGVfaGVhZGVycywNCj4gKwkJICAgIGRidWZfc3RhdHNf
aGFzaF90YWJsZV9kYXRhLCBkYnVmX3N0YXRzX2hhc2hfdGFibGVfYWRkcik7DQo+ICsJCWtzdGF0
X2luc3RhbGwoa3NwKTsNCj4gKwl9DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICtkYnVm
X3N0YXRzX2hhc2hfdGFibGVfZGVzdHJveSh2b2lkKQ0KPiArew0KPiArCWRidWZfc3RhdHNfdCAq
ZHNoID0gJmRidWZfc3RhdHNfaGFzaF90YWJsZTsNCj4gKwlrc3RhdF90ICprc3A7DQo+ICsNCj4g
Kwlrc3AgPSBkc2gtPmtzdGF0Ow0KPiArCWlmIChrc3ApDQo+ICsJCWtzdGF0X2RlbGV0ZShrc3Ap
Ow0KPiArDQo+ICsJbXV0ZXhfZGVzdHJveSgmZHNoLT5sb2NrKTsNCj4gK30NCj4gKyNlbHNlDQo+
ICtzdGF0aWMgdm9pZA0KPiArZGJ1Zl9zdGF0c19oYXNoX3RhYmxlX2luaXQoZGJ1Zl9oYXNoX3Rh
YmxlX3QgKmhhc2gpDQo+ICt7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICtkYnVmX3N0
YXRzX2hhc2hfdGFibGVfZGVzdHJveSh2b2lkKQ0KPiArew0KPiArfQ0KPiArI2VuZGlmDQo+ICsN
Cj4gK3ZvaWQNCj4gK2RidWZfc3RhdHNfaW5pdChkYnVmX2hhc2hfdGFibGVfdCAqaGFzaCkNCj4g
K3sNCj4gKwlkYnVmX3N0YXRzX2hhc2hfdGFibGVfaW5pdChoYXNoKTsNCj4gK30NCj4gKw0KPiAr
dm9pZA0KPiArZGJ1Zl9zdGF0c19kZXN0cm95KHZvaWQpDQo+ICt7DQo+ICsJZGJ1Zl9zdGF0c19o
YXNoX3RhYmxlX2Rlc3Ryb3koKTsNCj4gK30NCj4gDQo+IE1vZGlmaWVkOiBoZWFkL3N5cy9jZGRs
L2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvZG11LmMNCj4gPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQo+IC0tLSBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRz
L2NvbW1vbi9mcy96ZnMvZG11LmMJU3VuIEF1ZyAxMg0KPiAwMDo0NTo1MyAyMDE4CShyMzM3NjY5
KSArKysNCj4gaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMv
emZzL2RtdS5jCVN1biBBdWcgMTIgMDE6MTA6MTgNCj4gMjAxOAkocjMzNzY3MCkgQEAgLTI1MDks
MTUgKzI1MDksMTAgQEAgZG11X29iamVjdF93YWl0X3N5bmNlZChvYmpzZXRfdCAqb3MsDQo+IHVp
bnQ2NF90IG9iamVjdCkgfSANCj4gIHZvaWQNCj4gLWRtdV9vYmplY3RfaW5mb19mcm9tX2Rub2Rl
KGRub2RlX3QgKmRuLCBkbXVfb2JqZWN0X2luZm9fdCAqZG9pKQ0KPiArX19kbXVfb2JqZWN0X2lu
Zm9fZnJvbV9kbm9kZShkbm9kZV90ICpkbiwgZG11X29iamVjdF9pbmZvX3QgKmRvaSkNCj4gIHsN
Cj4gLQlkbm9kZV9waHlzX3QgKmRucDsNCj4gKwlkbm9kZV9waHlzX3QgKmRucCA9IGRuLT5kbl9w
aHlzOw0KPiAgDQo+IC0JcndfZW50ZXIoJmRuLT5kbl9zdHJ1Y3Rfcndsb2NrLCBSV19SRUFERVIp
Ow0KPiAtCW11dGV4X2VudGVyKCZkbi0+ZG5fbXR4KTsNCj4gLQ0KPiAtCWRucCA9IGRuLT5kbl9w
aHlzOw0KPiAtDQo+ICAJZG9pLT5kb2lfZGF0YV9ibG9ja19zaXplID0gZG4tPmRuX2RhdGFibGtz
ejsNCj4gIAlkb2ktPmRvaV9tZXRhZGF0YV9ibG9ja19zaXplID0gZG4tPmRuX2luZGJsa3NoaWZ0
ID8NCj4gIAkgICAgMVVMTCA8PCBkbi0+ZG5faW5kYmxrc2hpZnQgOiAwOw0KPiBAQCAtMjUzNCw2
ICsyNTI5LDE1IEBAIGRtdV9vYmplY3RfaW5mb19mcm9tX2Rub2RlKGRub2RlX3QgKmRuLCBkbXVf
b2JqZWN0X2luZg0KPiAgCWRvaS0+ZG9pX2ZpbGxfY291bnQgPSAwOw0KPiAgCWZvciAoaW50IGkg
PSAwOyBpIDwgZG5wLT5kbl9uYmxrcHRyOyBpKyspDQo+ICAJCWRvaS0+ZG9pX2ZpbGxfY291bnQg
Kz0gQlBfR0VUX0ZJTEwoJmRucC0+ZG5fYmxrcHRyW2ldKTsNCj4gK30NCj4gKw0KPiArdm9pZA0K
PiArZG11X29iamVjdF9pbmZvX2Zyb21fZG5vZGUoZG5vZGVfdCAqZG4sIGRtdV9vYmplY3RfaW5m
b190ICpkb2kpDQo+ICt7DQo+ICsJcndfZW50ZXIoJmRuLT5kbl9zdHJ1Y3Rfcndsb2NrLCBSV19S
RUFERVIpOw0KPiArCW11dGV4X2VudGVyKCZkbi0+ZG5fbXR4KTsNCj4gKw0KPiArCV9fZG11X29i
amVjdF9pbmZvX2Zyb21fZG5vZGUoZG4sIGRvaSk7DQo+ICANCj4gIAltdXRleF9leGl0KCZkbi0+
ZG5fbXR4KTsNCj4gIAlyd19leGl0KCZkbi0+ZG5fc3RydWN0X3J3bG9jayk7DQo+IA0KPiBNb2Rp
ZmllZDogaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZz
L3N5cy9hcmMuaA0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gLS0tIGhlYWQvc3lzL2NkZGwv
Y29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pmcy9zeXMvYXJjLmgJU3VuIEF1ZyAx
Mg0KPiAwMDo0NTo1MyAyMDE4CShyMzM3NjY5KSArKysNCj4gaGVhZC9zeXMvY2RkbC9jb250cmli
L29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9hcmMuaAlTdW4gQXVnIDEyDQo+IDAx
OjEwOjE4IDIwMTgJKHIzMzc2NzApIEBAIC0xODUsNiArMTg1LDM2IEBAIHR5cGVkZWYgZW51bSBh
cmNfc3BhY2VfdHlwZQ0KPiB7IEFSQ19TUEFDRV9OVU1UWVBFUyB9IGFyY19zcGFjZV90eXBlX3Q7
DQo+ICANCj4gK3R5cGVkZWYgZW51bSBhcmNfc3RhdGVfdHlwZSB7DQo+ICsJQVJDX1NUQVRFX0FO
T04sDQo+ICsJQVJDX1NUQVRFX01SVSwNCj4gKwlBUkNfU1RBVEVfTVJVX0dIT1NULA0KPiArCUFS
Q19TVEFURV9NRlUsDQo+ICsJQVJDX1NUQVRFX01GVV9HSE9TVCwNCj4gKwlBUkNfU1RBVEVfTDJD
X09OTFksDQo+ICsJQVJDX1NUQVRFX05VTVRZUEVTDQo+ICt9IGFyY19zdGF0ZV90eXBlX3Q7DQo+
ICsNCj4gK3R5cGVkZWYgc3RydWN0IGFyY19idWZfaW5mbyB7DQo+ICsJYXJjX3N0YXRlX3R5cGVf
dAlhYmlfc3RhdGVfdHlwZTsNCj4gKwlhcmNfYnVmX2NvbnRlbnRzX3QJYWJpX3N0YXRlX2NvbnRl
bnRzOw0KPiArCXVpbnQ2NF90CQlhYmlfc3RhdGVfaW5kZXg7DQo+ICsJdWludDMyX3QJCWFiaV9m
bGFnczsNCj4gKwl1aW50MzJfdAkJYWJpX2J1ZmNudDsNCj4gKwl1aW50NjRfdAkJYWJpX3NpemU7
DQo+ICsJdWludDY0X3QJCWFiaV9zcGE7DQo+ICsJdWludDY0X3QJCWFiaV9hY2Nlc3M7DQo+ICsJ
dWludDMyX3QJCWFiaV9tcnVfaGl0czsNCj4gKwl1aW50MzJfdAkJYWJpX21ydV9naG9zdF9oaXRz
Ow0KPiArCXVpbnQzMl90CQlhYmlfbWZ1X2hpdHM7DQo+ICsJdWludDMyX3QJCWFiaV9tZnVfZ2hv
c3RfaGl0czsNCj4gKwl1aW50MzJfdAkJYWJpX2wyYXJjX2hpdHM7DQo+ICsJdWludDMyX3QJCWFi
aV9ob2xkczsNCj4gKwl1aW50NjRfdAkJYWJpX2wyYXJjX2RhdHRyOw0KPiArCXVpbnQ2NF90CQlh
YmlfbDJhcmNfYXNpemU7DQo+ICsJZW51bSB6aW9fY29tcHJlc3MJYWJpX2wyYXJjX2NvbXByZXNz
Ow0KPiArfSBhcmNfYnVmX2luZm9fdDsNCj4gKw0KPiAgdm9pZCBhcmNfc3BhY2VfY29uc3VtZSh1
aW50NjRfdCBzcGFjZSwgYXJjX3NwYWNlX3R5cGVfdCB0eXBlKTsNCj4gIHZvaWQgYXJjX3NwYWNl
X3JldHVybih1aW50NjRfdCBzcGFjZSwgYXJjX3NwYWNlX3R5cGVfdCB0eXBlKTsNCj4gIGJvb2xl
YW5fdCBhcmNfaXNfbWV0YWRhdGEoYXJjX2J1Zl90ICpidWYpOw0KPiBAQCAtMjAwLDYgKzIzMCw3
IEBAIGFyY19idWZfdCAqYXJjX2xvYW5fY29tcHJlc3NlZF9idWYoc3BhX3QgKnNwYSwgdWludDY0
Xw0KPiAgdm9pZCBhcmNfcmV0dXJuX2J1ZihhcmNfYnVmX3QgKmJ1Ziwgdm9pZCAqdGFnKTsNCj4g
IHZvaWQgYXJjX2xvYW5faW51c2VfYnVmKGFyY19idWZfdCAqYnVmLCB2b2lkICp0YWcpOw0KPiAg
dm9pZCBhcmNfYnVmX2Rlc3Ryb3koYXJjX2J1Zl90ICpidWYsIHZvaWQgKnRhZyk7DQo+ICt2b2lk
IGFyY19idWZfaW5mbyhhcmNfYnVmX3QgKmJ1ZiwgYXJjX2J1Zl9pbmZvX3QgKmFiaSwgaW50IHN0
YXRlX2luZGV4KTsNCj4gIGludCBhcmNfYnVmX3NpemUoYXJjX2J1Zl90ICpidWYpOw0KPiAgaW50
IGFyY19idWZfbHNpemUoYXJjX2J1Zl90ICpidWYpOw0KPiAgdm9pZCBhcmNfYnVmX2FjY2Vzcyhh
cmNfYnVmX3QgKmJ1Zik7DQo+IA0KPiBNb2RpZmllZDogaGVhZC9zeXMvY2RkbC9jb250cmliL29w
ZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9kYnVmLmgNCj4gPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQo+IC0tLSBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1v
bi9mcy96ZnMvc3lzL2RidWYuaAlTdW4gQXVnIDEyDQo+IDAwOjQ1OjUzIDIwMTgJKHIzMzc2Njkp
ICsrKw0KPiBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96
ZnMvc3lzL2RidWYuaAlTdW4gQXVnIDEyDQo+IDAxOjEwOjE4IDIwMTgJKHIzMzc2NzApIEBAIC0z
MzMsNiArMzMzLDkgQEAgdm9pZCBkYnVmX2ZyZWVfcmFuZ2Uoc3RydWN0IGRub2RlDQo+ICpkbiwg
dWludDY0X3Qgc3RhcnQsIHZvaWQgZGJ1Zl9uZXdfc2l6ZShkbXVfYnVmX2ltcGxfdCAqZGIsIGlu
dCBzaXplLCBkbXVfdHhfdCAqdHgpOw0KPiAgDQo+ICt2b2lkIGRidWZfc3RhdHNfaW5pdChkYnVm
X2hhc2hfdGFibGVfdCAqaGFzaCk7DQo+ICt2b2lkIGRidWZfc3RhdHNfZGVzdHJveSh2b2lkKTsN
Cj4gKw0KPiAgI2RlZmluZQlEQl9ETk9ERShfZGIpCQkoKF9kYiktPmRiX2Rub2RlX2hhbmRsZS0+
ZG5oX2Rub2RlKQ0KPiAgI2RlZmluZQlEQl9ETk9ERV9MT0NLKF9kYikJKChfZGIpLT5kYl9kbm9k
ZV9oYW5kbGUtPmRuaF96cmxvY2spDQo+ICAjZGVmaW5lCURCX0ROT0RFX0VOVEVSKF9kYikJKHpy
bF9hZGQoJkRCX0ROT0RFX0xPQ0soX2RiKSkpDQo+IA0KPiBNb2RpZmllZDogaGVhZC9zeXMvY2Rk
bC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9kbXUuaA0KPiA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCj4gLS0tIGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJp
cy91dHMvY29tbW9uL2ZzL3pmcy9zeXMvZG11LmgJU3VuIEF1ZyAxMg0KPiAwMDo0NTo1MyAyMDE4
CShyMzM3NjY5KSArKysNCj4gaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9j
b21tb24vZnMvemZzL3N5cy9kbXUuaAlTdW4gQXVnIDEyDQo+IDAxOjEwOjE4IDIwMTgJKHIzMzc2
NzApIEBAIC04NTUsNiArODU1LDcgQEAgZXh0ZXJuIGNvbnN0DQo+IGRtdV9vYmplY3RfYnl0ZXN3
YXBfaW5mb190IGRtdV9vdF9ieXRlc3dhDQo+ICAgKiBJZiBkb2kgaXMgTlVMTCwganVzdCBpbmRp
Y2F0ZXMgd2hldGhlciB0aGUgb2JqZWN0IGV4aXN0cy4NCj4gICAqLw0KPiAgaW50IGRtdV9vYmpl
Y3RfaW5mbyhvYmpzZXRfdCAqb3MsIHVpbnQ2NF90IG9iamVjdCwgZG11X29iamVjdF9pbmZvX3Qg
KmRvaSk7DQo+ICt2b2lkIF9fZG11X29iamVjdF9pbmZvX2Zyb21fZG5vZGUoc3RydWN0IGRub2Rl
ICpkbiwgZG11X29iamVjdF9pbmZvX3QgKmRvaSk7DQo+ICAvKiBMaWtlIGRtdV9vYmplY3RfaW5m
bywgYnV0IGZhc3RlciBpZiB5b3UgaGF2ZSBhIGhlbGQgZG5vZGUgaW4gaGFuZC4gKi8NCj4gIHZv
aWQgZG11X29iamVjdF9pbmZvX2Zyb21fZG5vZGUoZG5vZGVfdCAqZG4sIGRtdV9vYmplY3RfaW5m
b190ICpkb2kpOw0KPiAgLyogTGlrZSBkbXVfb2JqZWN0X2luZm8sIGJ1dCBmYXN0ZXIgaWYgeW91
IGhhdmUgYSBoZWxkIGRidWYgaW4gaGFuZC4gKi8NCj4gX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18NCj4gc3ZuLXNyYy1oZWFkQGZyZWVic2Qub3JnIG1haWxp
bmcgbGlzdA0KPiBodHRwczovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vc3Zu
LXNyYy1oZWFkDQo+IFRvIHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJzdm4tc3JjLWhl
YWQtdW5zdWJzY3JpYmVAZnJlZWJzZC5vcmciDQoNCg0KVGhpcyBjb21taXQgYnJlYWtzIGtlcm5l
bCBidWlsZCAob3B0aW9ucyBaRlMgd2l0aGluIGtlcm5lbCBjb25maWcgZmlsZSwgV0lUSF9NRVRB
X01PREUpOg0KDQpbLi4uXQ0KbGQ6IGVycm9yOiB1bmRlZmluZWQgc3ltYm9sOiBkYnVmX3N0YXRz
X2luaXQNCj4+PiByZWZlcmVuY2VkIGJ5IGRidWYuYw0KPj4+ICAgICAgICAgICAgICAgZGJ1Zi5v
OihkYnVmX2luaXQpDQpsZDogZXJyb3I6IHVuZGVmaW5lZCBzeW1ib2w6IGRidWZfc3RhdHNfZGVz
dHJveQ0KPj4+IHJlZmVyZW5jZWQgYnkgZGJ1Zi5jDQo+Pj4gICAgICAgICAgICAgICBkYnVmLm86
KGRidWZfZmluaSkNCg0KUmVnYXJkcywNCg0Kb2gNCi0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0t
LS0tDQoNCmlMVUVBUk1LQUIwV0lRUVpWWk16QXR3QzJULzg2VHJTNTI4ZnlGaFlsQVVDVzIvRVNn
QUtDUkRTNTI4ZnlGaFkNCmxLS1VBZ0NJdC9BMWdrL2FkQ29uYnQ2WGQ0T0NZSllZVitsU2xGRUky
aURTQTdGNnhQc3hkVjY0alZRS2tTbU8NCjExck1pUFpURFRhU2VILzMrVm04MG5qUG1lS05BZjRz
encvSVpnRTB0aWxWTDNJVEtsUHFhZlUraGlIOFB3YncNCnRlWnQxM1EvWnB0WGk4Uml4d2ZTSm0z
TzQzV1NPUS9hSkUxRFZRWjJzeWdHVmxoRVE3dUwNCj1FaWk2DQotLS0tLUVORCBQR1AgU0lHTkFU
VVJFLS0tLS0NCg==



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