Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Oct 2019 17:53:39 +0200
From:      "O. Hartmann" <ohartmann@walstatt.org>
To:        Andriy Gapon <avg@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r353565 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys
Message-ID:  <20191015175357.3ee91a1c@thor.intern.walstatt.dynvpn.de>
In-Reply-To: <201910151509.x9FF9a2B031347@repo.freebsd.org>
References:  <201910151509.x9FF9a2B031347@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQ0KSGFzaDogU0hBMjU2DQoNCkFtIFR1
ZSwgMTUgT2N0IDIwMTkgMTU6MDk6MzYgKzAwMDAgKFVUQykNCkFuZHJpeSBHYXBvbiA8YXZnQEZy
ZWVCU0Qub3JnPiBzY2hyaWViOg0KDQo+IEF1dGhvcjogYXZnDQo+IERhdGU6IFR1ZSBPY3QgMTUg
MTU6MDk6MzYgMjAxOQ0KPiBOZXcgUmV2aXNpb246IDM1MzU2NQ0KPiBVUkw6IGh0dHBzOi8vc3Zu
d2ViLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzM1MzU2NQ0KPiANCj4gTG9nOg0KPiAgIE1G
ViByMzUzNTYxOiAxMDM0MyBab0w6IFByZWZpeCBhbGwgcmVmY291bnQgZnVuY3Rpb25zIHdpdGgg
emZzXw0KPiAgIA0KPiAgIGlsbHVtb3MvaWxsdW1vcy1nYXRlQGU5MTRhY2UyZTlkOWJmMmRiZjlh
MWYxY2U4MWNiNzc2MDIyMDk2ZjUNCj4gICBodHRwczovL2dpdGh1Yi5jb20vaWxsdW1vcy9pbGx1
bW9zLWdhdGUvY29tbWl0L2U5MTRhY2UyZTlkOWJmMmRiZjlhMWYxY2U4MWNiNzc2MDIyMDk2ZjUN
Cj4gICANCj4gICBodHRwczovL3d3dy5pbGx1bW9zLm9yZy9pc3N1ZXMvMTAzNDMNCj4gICAgIE9u
IHRoZSBvcGVuemZzIGZlYXR1cmUvcG9ydGluZyBtYXRyaXgsIHRoaXMgaXMgbGlzdGVkIGFzOg0K
PiAgICAgcHJlZml4IHRvIHJlZmNvdW50IGZ1bmNzL3R5cGVzDQo+ICAgICBIYXZpbmcgdGhlc2Ug
Y2hhbmdlcyB3aWxsIG1ha2UgaXQgZWFzaWVyIHRvIHNoYXJlIG90aGVyIHdvcmsgYWNyb3NzIHRo
ZQ0KPiAgICAgZGlmZmVyZW50IFpGUyBvcGVyYXRpbmcgc3lzdGVtcy4NCj4gICAgIFBSIDc5NjMg
NDI0ZmQ3YzNlIFByZWZpeCBhbGwgcmVmY291bnQgZnVuY3Rpb25zIHdpdGggemZzXw0KPiAgICAg
UFIgNzg4NSAmIDc5MzIgYzEzMDYwZTQ3IExpbnV4IDQuMTktcmMzKyBjb21wYXQ6IFJlbW92ZSBy
ZWZjb3VudF90IGNvbXBhdA0KPiAgICAgUFIgNTgyMyAmIDU4NDIgNDg1OWZlNzk2IExpbnV4IDQu
MTEgY29tcGF0OiBhdm9pZCByZWZjb3VudF90IG5hbWUgY29uZmxpY3QNCj4gICANCj4gICBBdXRo
b3I6IFRpbSBTY2h1bWFjaGVyIDx0aW1zY2h1bWlAZ214LmRlPg0KPiAgIE9idGFpbmVkIGZyb206
CWlsbHVtb3MsIFpvTA0KPiAgIE1GQyBhZnRlcjoJMyB3ZWVrcw0KPiANCj4gTW9kaWZpZWQ6DQo+
ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL2Fi
ZC5jDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMv
emZzL2FyYy5jDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21t
b24vZnMvemZzL2RidWYuYw0KPiAgIGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91
dHMvY29tbW9uL2ZzL3pmcy9kbXUuYw0KPiAgIGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29s
YXJpcy91dHMvY29tbW9uL2ZzL3pmcy9kbXVfdHguYw0KPiAgIGhlYWQvc3lzL2NkZGwvY29udHJp
Yi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pmcy9kbm9kZS5jDQo+ICAgaGVhZC9zeXMvY2Rk
bC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL2Rub2RlX3N5bmMuYw0KPiAg
IGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pmcy9kc2xf
ZGF0YXNldC5jDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21t
b24vZnMvemZzL2RzbF9kZXN0cm95LmMNCj4gICBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNv
bGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvbWV0YXNsYWIuYw0KPiAgIGhlYWQvc3lzL2NkZGwvY29u
dHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pmcy9yZWZjb3VudC5jDQo+ICAgaGVhZC9z
eXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3Jyd2xvY2suYw0K
PiAgIGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pmcy9z
YS5jDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMv
emZzL3NwYS5jDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21t
b24vZnMvemZzL3NwYV9taXNjLmMNCj4gICBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFy
aXMvdXRzL2NvbW1vbi9mcy96ZnMvc3lzL2FiZC5oDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmli
L29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9kYnVmLmgNCj4gICBoZWFkL3N5cy9j
ZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvc3lzL2RtdV90eC5oDQo+
ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5
cy9kbm9kZS5oDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21t
b24vZnMvemZzL3N5cy9kc2xfZGF0YXNldC5oDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250cmliL29w
ZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9tZXRhc2xhYl9pbXBsLmgNCj4gICBoZWFk
L3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvc3lzL3JlZmNv
dW50LmgNCj4gICBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9m
cy96ZnMvc3lzL3Jyd2xvY2suaA0KPiAgIGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJp
cy91dHMvY29tbW9uL2ZzL3pmcy9zeXMvc2FfaW1wbC5oDQo+ICAgaGVhZC9zeXMvY2RkbC9jb250
cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9zcGFfaW1wbC5oDQo+ICAgaGVh
ZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy96YXAu
aA0KPiAgIGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pm
cy96aW8uYw0KPiBEaXJlY3RvcnkgUHJvcGVydGllczoNCj4gICBoZWFkL3N5cy9jZGRsL2NvbnRy
aWIvb3BlbnNvbGFyaXMvICAgKHByb3BzIGNoYW5nZWQpDQo+IA0KPiBNb2RpZmllZDogaGVhZC9z
eXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL2FiZC5jDQo+ID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KPiAtLS0gaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xh
cmlzL3V0cy9jb21tb24vZnMvemZzL2FiZC5jCVR1ZSBPY3QgMTUgMTQ6NTE6MjINCj4gMjAxOQko
cjM1MzU2NCkgKysrIGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9u
L2ZzL3pmcy9hYmQuYw0KPiBUdWUgT2N0IDE1IDE1OjA5OjM2IDIwMTkJKHIzNTM1NjUpIEBAIC0z
MDQsNyArMzA0LDcgQEAgYWJkX2FsbG9jKHNpemVfdCBzaXplLA0KPiBib29sZWFuX3QgaXNfbWV0
YWRhdGEpIH0NCj4gIAlhYmQtPmFiZF9zaXplID0gc2l6ZTsNCj4gIAlhYmQtPmFiZF9wYXJlbnQg
PSBOVUxMOw0KPiAtCXJlZmNvdW50X2NyZWF0ZSgmYWJkLT5hYmRfY2hpbGRyZW4pOw0KPiArCXpm
c19yZWZjb3VudF9jcmVhdGUoJmFiZC0+YWJkX2NoaWxkcmVuKTsNCj4gIA0KPiAgCWFiZC0+YWJk
X3UuYWJkX3NjYXR0ZXIuYWJkX29mZnNldCA9IDA7DQo+ICAJYWJkLT5hYmRfdS5hYmRfc2NhdHRl
ci5hYmRfY2h1bmtfc2l6ZSA9IHpmc19hYmRfY2h1bmtfc2l6ZTsNCj4gQEAgLTMzMSw3ICszMzEs
NyBAQCBhYmRfZnJlZV9zY2F0dGVyKGFiZF90ICphYmQpDQo+ICAJCWFiZF9mcmVlX2NodW5rKGFi
ZC0+YWJkX3UuYWJkX3NjYXR0ZXIuYWJkX2NodW5rc1tpXSk7DQo+ICAJfQ0KPiAgDQo+IC0JcmVm
Y291bnRfZGVzdHJveSgmYWJkLT5hYmRfY2hpbGRyZW4pOw0KPiArCXpmc19yZWZjb3VudF9kZXN0
cm95KCZhYmQtPmFiZF9jaGlsZHJlbik7DQo+ICAJQUJEU1RBVF9CVU1QRE9XTihhYmRzdGF0X3Nj
YXR0ZXJfY250KTsNCj4gIAlBQkRTVEFUX0lOQ1IoYWJkc3RhdF9zY2F0dGVyX2RhdGFfc2l6ZSwg
LShpbnQpYWJkLT5hYmRfc2l6ZSk7DQo+ICAJQUJEU1RBVF9JTkNSKGFiZHN0YXRfc2NhdHRlcl9j
aHVua193YXN0ZSwNCj4gQEAgLTM1OCw3ICszNTgsNyBAQCBhYmRfYWxsb2NfbGluZWFyKHNpemVf
dCBzaXplLCBib29sZWFuX3QgaXNfbWV0YWRhdGEpDQo+ICAJfQ0KPiAgCWFiZC0+YWJkX3NpemUg
PSBzaXplOw0KPiAgCWFiZC0+YWJkX3BhcmVudCA9IE5VTEw7DQo+IC0JcmVmY291bnRfY3JlYXRl
KCZhYmQtPmFiZF9jaGlsZHJlbik7DQo+ICsJemZzX3JlZmNvdW50X2NyZWF0ZSgmYWJkLT5hYmRf
Y2hpbGRyZW4pOw0KPiAgDQo+ICAJaWYgKGlzX21ldGFkYXRhKSB7DQo+ICAJCWFiZC0+YWJkX3Uu
YWJkX2xpbmVhci5hYmRfYnVmID0gemlvX2J1Zl9hbGxvYyhzaXplKTsNCj4gQEAgLTM4MSw3ICsz
ODEsNyBAQCBhYmRfZnJlZV9saW5lYXIoYWJkX3QgKmFiZCkNCj4gIAkJemlvX2RhdGFfYnVmX2Zy
ZWUoYWJkLT5hYmRfdS5hYmRfbGluZWFyLmFiZF9idWYsIGFiZC0+YWJkX3NpemUpOw0KPiAgCX0N
Cj4gIA0KPiAtCXJlZmNvdW50X2Rlc3Ryb3koJmFiZC0+YWJkX2NoaWxkcmVuKTsNCj4gKwl6ZnNf
cmVmY291bnRfZGVzdHJveSgmYWJkLT5hYmRfY2hpbGRyZW4pOw0KPiAgCUFCRFNUQVRfQlVNUERP
V04oYWJkc3RhdF9saW5lYXJfY250KTsNCj4gIAlBQkRTVEFUX0lOQ1IoYWJkc3RhdF9saW5lYXJf
ZGF0YV9zaXplLCAtKGludClhYmQtPmFiZF9zaXplKTsNCj4gIA0KPiBAQCAtNDg3LDggKzQ4Nyw4
IEBAIGFiZF9nZXRfb2Zmc2V0KGFiZF90ICpzYWJkLCBzaXplX3Qgb2ZmKQ0KPiAgDQo+ICAJYWJk
LT5hYmRfc2l6ZSA9IHNhYmQtPmFiZF9zaXplIC0gb2ZmOw0KPiAgCWFiZC0+YWJkX3BhcmVudCA9
IHNhYmQ7DQo+IC0JcmVmY291bnRfY3JlYXRlKCZhYmQtPmFiZF9jaGlsZHJlbik7DQo+IC0JKHZv
aWQpIHJlZmNvdW50X2FkZF9tYW55KCZzYWJkLT5hYmRfY2hpbGRyZW4sIGFiZC0+YWJkX3NpemUs
IGFiZCk7DQo+ICsJemZzX3JlZmNvdW50X2NyZWF0ZSgmYWJkLT5hYmRfY2hpbGRyZW4pOw0KPiAr
CSh2b2lkKSB6ZnNfcmVmY291bnRfYWRkX21hbnkoJnNhYmQtPmFiZF9jaGlsZHJlbiwgYWJkLT5h
YmRfc2l6ZSwgYWJkKTsNCj4gIA0KPiAgCXJldHVybiAoYWJkKTsNCj4gIH0NCj4gQEAgLTUxMiw3
ICs1MTIsNyBAQCBhYmRfZ2V0X2Zyb21fYnVmKHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUpDQo+ICAJ
YWJkLT5hYmRfZmxhZ3MgPSBBQkRfRkxBR19MSU5FQVI7DQo+ICAJYWJkLT5hYmRfc2l6ZSA9IHNp
emU7DQo+ICAJYWJkLT5hYmRfcGFyZW50ID0gTlVMTDsNCj4gLQlyZWZjb3VudF9jcmVhdGUoJmFi
ZC0+YWJkX2NoaWxkcmVuKTsNCj4gKwl6ZnNfcmVmY291bnRfY3JlYXRlKCZhYmQtPmFiZF9jaGls
ZHJlbik7DQo+ICANCj4gIAlhYmQtPmFiZF91LmFiZF9saW5lYXIuYWJkX2J1ZiA9IGJ1ZjsNCj4g
IA0KPiBAQCAtNTMwLDExICs1MzAsMTEgQEAgYWJkX3B1dChhYmRfdCAqYWJkKQ0KPiAgCUFTU0VS
VCghKGFiZC0+YWJkX2ZsYWdzICYgQUJEX0ZMQUdfT1dORVIpKTsNCj4gIA0KPiAgCWlmIChhYmQt
PmFiZF9wYXJlbnQgIT0gTlVMTCkgew0KPiAtCQkodm9pZCkgcmVmY291bnRfcmVtb3ZlX21hbnko
JmFiZC0+YWJkX3BhcmVudC0+YWJkX2NoaWxkcmVuLA0KPiArCQkodm9pZCkgemZzX3JlZmNvdW50
X3JlbW92ZV9tYW55KCZhYmQtPmFiZF9wYXJlbnQtPmFiZF9jaGlsZHJlbiwNCj4gIAkJICAgIGFi
ZC0+YWJkX3NpemUsIGFiZCk7DQo+ICAJfQ0KPiAgDQo+IC0JcmVmY291bnRfZGVzdHJveSgmYWJk
LT5hYmRfY2hpbGRyZW4pOw0KPiArCXpmc19yZWZjb3VudF9kZXN0cm95KCZhYmQtPmFiZF9jaGls
ZHJlbik7DQo+ICAJYWJkX2ZyZWVfc3RydWN0KGFiZCk7DQo+ICB9DQo+ICANCj4gQEAgLTU2Niw3
ICs1NjYsNyBAQCBhYmRfYm9ycm93X2J1ZihhYmRfdCAqYWJkLCBzaXplX3QgbikNCj4gIAl9IGVs
c2Ugew0KPiAgCQlidWYgPSB6aW9fYnVmX2FsbG9jKG4pOw0KPiAgCX0NCj4gLQkodm9pZCkgcmVm
Y291bnRfYWRkX21hbnkoJmFiZC0+YWJkX2NoaWxkcmVuLCBuLCBidWYpOw0KPiArCSh2b2lkKSB6
ZnNfcmVmY291bnRfYWRkX21hbnkoJmFiZC0+YWJkX2NoaWxkcmVuLCBuLCBidWYpOw0KPiAgDQo+
ICAJcmV0dXJuIChidWYpOw0KPiAgfQ0KPiBAQCAtNTk4LDcgKzU5OCw3IEBAIGFiZF9yZXR1cm5f
YnVmKGFiZF90ICphYmQsIHZvaWQgKmJ1Ziwgc2l6ZV90IG4pDQo+ICAJCUFTU0VSVDAoYWJkX2Nt
cF9idWYoYWJkLCBidWYsIG4pKTsNCj4gIAkJemlvX2J1Zl9mcmVlKGJ1Ziwgbik7DQo+ICAJfQ0K
PiAtCSh2b2lkKSByZWZjb3VudF9yZW1vdmVfbWFueSgmYWJkLT5hYmRfY2hpbGRyZW4sIG4sIGJ1
Zik7DQo+ICsJKHZvaWQpIHpmc19yZWZjb3VudF9yZW1vdmVfbWFueSgmYWJkLT5hYmRfY2hpbGRy
ZW4sIG4sIGJ1Zik7DQo+ICB9DQo+ICANCj4gIHZvaWQNCj4gDQo+IE1vZGlmaWVkOiBoZWFkL3N5
cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvYXJjLmMNCj4gPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQo+IC0tLSBoZWFkL3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFy
aXMvdXRzL2NvbW1vbi9mcy96ZnMvYXJjLmMJVHVlIE9jdCAxNSAxNDo1MToyMg0KPiAyMDE5CShy
MzUzNTY0KSArKysgaGVhZC9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24v
ZnMvemZzL2FyYy5jDQo+IFR1ZSBPY3QgMTUgMTU6MDk6MzYgMjAxOQkocjM1MzU2NSkgQEAgLTUz
OCwxMiArNTM4LDEyIEBAIHR5cGVkZWYgc3RydWN0IGFyY19zdGF0ZSB7DQo+ICAJLyoNCj4gIAkg
KiB0b3RhbCBhbW91bnQgb2YgZXZpY3RhYmxlIGRhdGEgaW4gdGhpcyBzdGF0ZQ0KPiAgCSAqLw0K
PiAtCXJlZmNvdW50X3QgYXJjc19lc2l6ZVtBUkNfQlVGQ19OVU1UWVBFU107DQo+ICsJemZzX3Jl
ZmNvdW50X3QgYXJjc19lc2l6ZVtBUkNfQlVGQ19OVU1UWVBFU107DQo+ICAJLyoNCj4gIAkgKiB0
b3RhbCBhbW91bnQgb2YgZGF0YSBpbiB0aGlzIHN0YXRlOyB0aGlzIGluY2x1ZGVzOiBldmljdGFi
bGUsDQo+ICAJICogbm9uLWV2aWN0YWJsZSwgQVJDX0JVRkNfREFUQSwgYW5kIEFSQ19CVUZDX01F
VEFEQVRBLg0KPiAgCSAqLw0KPiAtCXJlZmNvdW50X3QgYXJjc19zaXplOw0KPiArCXpmc19yZWZj
b3VudF90IGFyY3Nfc2l6ZTsNCj4gIAkvKg0KPiAgCSAqIHN1cHBvcnRzIHRoZSAiZGJ1ZnMiIGtz
dGF0DQo+ICAJICovDQo+IEBAIC0xMTU4LDcgKzExNTgsNyBAQCB0eXBlZGVmIHN0cnVjdCBsMWFy
Y19idWZfaGRyIHsNCj4gIAl1aW50MzJfdAkJYl9sMl9oaXRzOw0KPiAgDQo+ICAJLyogc2VsZiBw
cm90ZWN0aW5nICovDQo+IC0JcmVmY291bnRfdAkJYl9yZWZjbnQ7DQo+ICsJemZzX3JlZmNvdW50
X3QJCWJfcmVmY250Ow0KPiAgDQo+ICAJYXJjX2NhbGxiYWNrX3QJCSpiX2FjYjsNCj4gIAlhYmRf
dAkJCSpiX3BhYmQ7DQo+IEBAIC0xNTM0LDcgKzE1MzQsNyBAQCBzdHJ1Y3QgbDJhcmNfZGV2IHsN
Cj4gIAlrbXV0ZXhfdAkJbDJhZF9tdHg7CS8qIGxvY2sgZm9yIGJ1ZmZlciBsaXN0ICovDQo+ICAJ
bGlzdF90CQkJbDJhZF9idWZsaXN0OwkvKiBidWZmZXIgbGlzdCAqLw0KPiAgCWxpc3Rfbm9kZV90
CQlsMmFkX25vZGU7CS8qIGRldmljZSBsaXN0IG5vZGUgKi8NCj4gLQlyZWZjb3VudF90CQlsMmFk
X2FsbG9jOwkvKiBhbGxvY2F0ZWQgYnl0ZXMgKi8NCj4gKwl6ZnNfcmVmY291bnRfdAkJbDJhZF9h
bGxvYzsJLyogYWxsb2NhdGVkIGJ5dGVzICovDQo+ICB9Ow0KPiAgDQo+ICBzdGF0aWMgbGlzdF90
IEwyQVJDX2Rldl9saXN0OwkJCS8qIGRldmljZSBsaXN0ICovDQo+IEBAIC0xNzY1LDcgKzE3NjUs
NyBAQCBoZHJfZnVsbF9jb25zKHZvaWQgKnZidWYsIHZvaWQgKnVudXNlZCwgaW50IGttZmxhZykN
Cj4gIA0KPiAgCWJ6ZXJvKGhkciwgSERSX0ZVTExfU0laRSk7DQo+ICAJY3ZfaW5pdCgmaGRyLT5i
X2wxaGRyLmJfY3YsIE5VTEwsIENWX0RFRkFVTFQsIE5VTEwpOw0KPiAtCXJlZmNvdW50X2NyZWF0
ZSgmaGRyLT5iX2wxaGRyLmJfcmVmY250KTsNCj4gKwl6ZnNfcmVmY291bnRfY3JlYXRlKCZoZHIt
PmJfbDFoZHIuYl9yZWZjbnQpOw0KPiAgCW11dGV4X2luaXQoJmhkci0+Yl9sMWhkci5iX2ZyZWV6
ZV9sb2NrLCBOVUxMLCBNVVRFWF9ERUZBVUxULCBOVUxMKTsNCj4gIAltdWx0aWxpc3RfbGlua19p
bml0KCZoZHItPmJfbDFoZHIuYl9hcmNfbm9kZSk7DQo+ICAJYXJjX3NwYWNlX2NvbnN1bWUoSERS
X0ZVTExfU0laRSwgQVJDX1NQQUNFX0hEUlMpOw0KPiBAQCAtMTgxMCw3ICsxODEwLDcgQEAgaGRy
X2Z1bGxfZGVzdCh2b2lkICp2YnVmLCB2b2lkICp1bnVzZWQpDQo+ICANCj4gIAlBU1NFUlQoSERS
X0VNUFRZKGhkcikpOw0KPiAgCWN2X2Rlc3Ryb3koJmhkci0+Yl9sMWhkci5iX2N2KTsNCj4gLQly
ZWZjb3VudF9kZXN0cm95KCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpOw0KPiArCXpmc19yZWZjb3Vu
dF9kZXN0cm95KCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpOw0KPiAgCW11dGV4X2Rlc3Ryb3koJmhk
ci0+Yl9sMWhkci5iX2ZyZWV6ZV9sb2NrKTsNCj4gIAlBU1NFUlQoIW11bHRpbGlzdF9saW5rX2Fj
dGl2ZSgmaGRyLT5iX2wxaGRyLmJfYXJjX25vZGUpKTsNCj4gIAlhcmNfc3BhY2VfcmV0dXJuKEhE
Ul9GVUxMX1NJWkUsIEFSQ19TUEFDRV9IRFJTKTsNCj4gQEAgLTI0OTUsMjEgKzI0OTUsMjEgQEAg
YXJjX2V2aWN0YWJsZV9zcGFjZV9pbmNyZW1lbnQoYXJjX2J1Zl9oZHJfdCAqaGRyLCBhcmNfDQo+
ICAJCUFTU0VSVDAoaGRyLT5iX2wxaGRyLmJfYnVmY250KTsNCj4gIAkJQVNTRVJUM1AoaGRyLT5i
X2wxaGRyLmJfYnVmLCA9PSwgTlVMTCk7DQo+ICAJCUFTU0VSVDNQKGhkci0+Yl9sMWhkci5iX3Bh
YmQsID09LCBOVUxMKTsNCj4gLQkJKHZvaWQpIHJlZmNvdW50X2FkZF9tYW55KCZzdGF0ZS0+YXJj
c19lc2l6ZVt0eXBlXSwNCj4gKwkJKHZvaWQpIHpmc19yZWZjb3VudF9hZGRfbWFueSgmc3RhdGUt
PmFyY3NfZXNpemVbdHlwZV0sDQo+ICAJCSAgICBIRFJfR0VUX0xTSVpFKGhkciksIGhkcik7DQo+
ICAJCXJldHVybjsNCj4gIAl9DQo+ICANCj4gIAlBU1NFUlQoIUdIT1NUX1NUQVRFKHN0YXRlKSk7
DQo+ICAJaWYgKGhkci0+Yl9sMWhkci5iX3BhYmQgIT0gTlVMTCkgew0KPiAtCQkodm9pZCkgcmVm
Y291bnRfYWRkX21hbnkoJnN0YXRlLT5hcmNzX2VzaXplW3R5cGVdLA0KPiArCQkodm9pZCkgemZz
X3JlZmNvdW50X2FkZF9tYW55KCZzdGF0ZS0+YXJjc19lc2l6ZVt0eXBlXSwNCj4gIAkJICAgIGFy
Y19oZHJfc2l6ZShoZHIpLCBoZHIpOw0KPiAgCX0NCj4gIAlmb3IgKGFyY19idWZfdCAqYnVmID0g
aGRyLT5iX2wxaGRyLmJfYnVmOyBidWYgIT0gTlVMTDsNCj4gIAkgICAgYnVmID0gYnVmLT5iX25l
eHQpIHsNCj4gIAkJaWYgKGFyY19idWZfaXNfc2hhcmVkKGJ1ZikpDQo+ICAJCQljb250aW51ZTsN
Cj4gLQkJKHZvaWQpIHJlZmNvdW50X2FkZF9tYW55KCZzdGF0ZS0+YXJjc19lc2l6ZVt0eXBlXSwN
Cj4gKwkJKHZvaWQpIHpmc19yZWZjb3VudF9hZGRfbWFueSgmc3RhdGUtPmFyY3NfZXNpemVbdHlw
ZV0sDQo+ICAJCSAgICBhcmNfYnVmX3NpemUoYnVmKSwgYnVmKTsNCj4gIAl9DQo+ICB9DQo+IEBA
IC0yNTMwLDIxICsyNTMwLDIxIEBAIGFyY19ldmljdGFibGVfc3BhY2VfZGVjcmVtZW50KGFyY19i
dWZfaGRyX3QgKmhkciwgYXJjXw0KPiAgCQlBU1NFUlQwKGhkci0+Yl9sMWhkci5iX2J1ZmNudCk7
DQo+ICAJCUFTU0VSVDNQKGhkci0+Yl9sMWhkci5iX2J1ZiwgPT0sIE5VTEwpOw0KPiAgCQlBU1NF
UlQzUChoZHItPmJfbDFoZHIuYl9wYWJkLCA9PSwgTlVMTCk7DQo+IC0JCSh2b2lkKSByZWZjb3Vu
dF9yZW1vdmVfbWFueSgmc3RhdGUtPmFyY3NfZXNpemVbdHlwZV0sDQo+ICsJCSh2b2lkKSB6ZnNf
cmVmY291bnRfcmVtb3ZlX21hbnkoJnN0YXRlLT5hcmNzX2VzaXplW3R5cGVdLA0KPiAgCQkgICAg
SERSX0dFVF9MU0laRShoZHIpLCBoZHIpOw0KPiAgCQlyZXR1cm47DQo+ICAJfQ0KPiAgDQo+ICAJ
QVNTRVJUKCFHSE9TVF9TVEFURShzdGF0ZSkpOw0KPiAgCWlmIChoZHItPmJfbDFoZHIuYl9wYWJk
ICE9IE5VTEwpIHsNCj4gLQkJKHZvaWQpIHJlZmNvdW50X3JlbW92ZV9tYW55KCZzdGF0ZS0+YXJj
c19lc2l6ZVt0eXBlXSwNCj4gKwkJKHZvaWQpIHpmc19yZWZjb3VudF9yZW1vdmVfbWFueSgmc3Rh
dGUtPmFyY3NfZXNpemVbdHlwZV0sDQo+ICAJCSAgICBhcmNfaGRyX3NpemUoaGRyKSwgaGRyKTsN
Cj4gIAl9DQo+ICAJZm9yIChhcmNfYnVmX3QgKmJ1ZiA9IGhkci0+Yl9sMWhkci5iX2J1ZjsgYnVm
ICE9IE5VTEw7DQo+ICAJICAgIGJ1ZiA9IGJ1Zi0+Yl9uZXh0KSB7DQo+ICAJCWlmIChhcmNfYnVm
X2lzX3NoYXJlZChidWYpKQ0KPiAgCQkJY29udGludWU7DQo+IC0JCSh2b2lkKSByZWZjb3VudF9y
ZW1vdmVfbWFueSgmc3RhdGUtPmFyY3NfZXNpemVbdHlwZV0sDQo+ICsJCSh2b2lkKSB6ZnNfcmVm
Y291bnRfcmVtb3ZlX21hbnkoJnN0YXRlLT5hcmNzX2VzaXplW3R5cGVdLA0KPiAgCQkgICAgYXJj
X2J1Zl9zaXplKGJ1ZiksIGJ1Zik7DQo+ICAJfQ0KPiAgfQ0KPiBAQCAtMjU2MSwxMyArMjU2MSwx
MyBAQCBhZGRfcmVmZXJlbmNlKGFyY19idWZfaGRyX3QgKmhkciwgdm9pZCAqdGFnKQ0KPiAgCUFT
U0VSVChIRFJfSEFTX0wxSERSKGhkcikpOw0KPiAgCWlmICghTVVURVhfSEVMRChIRFJfTE9DSyho
ZHIpKSkgew0KPiAgCQlBU1NFUlQoaGRyLT5iX2wxaGRyLmJfc3RhdGUgPT0gYXJjX2Fub24pOw0K
PiAtCQlBU1NFUlQocmVmY291bnRfaXNfemVybygmaGRyLT5iX2wxaGRyLmJfcmVmY250KSk7DQo+
ICsJCUFTU0VSVCh6ZnNfcmVmY291bnRfaXNfemVybygmaGRyLT5iX2wxaGRyLmJfcmVmY250KSk7
DQo+ICAJCUFTU0VSVDNQKGhkci0+Yl9sMWhkci5iX2J1ZiwgPT0sIE5VTEwpOw0KPiAgCX0NCj4g
IA0KPiAgCWFyY19zdGF0ZV90ICpzdGF0ZSA9IGhkci0+Yl9sMWhkci5iX3N0YXRlOw0KPiAgDQo+
IC0JaWYgKChyZWZjb3VudF9hZGQoJmhkci0+Yl9sMWhkci5iX3JlZmNudCwgdGFnKSA9PSAxKSAm
Jg0KPiArCWlmICgoemZzX3JlZmNvdW50X2FkZCgmaGRyLT5iX2wxaGRyLmJfcmVmY250LCB0YWcp
ID09IDEpICYmDQo+ICAJICAgIChzdGF0ZSAhPSBhcmNfYW5vbikpIHsNCj4gIAkJLyogV2UgZG9u
J3QgdXNlIHRoZSBMMi1vbmx5IHN0YXRlIGxpc3QuICovDQo+ICAJCWlmIChzdGF0ZSAhPSBhcmNf
bDJjX29ubHkpIHsNCj4gQEAgLTI1OTksNyArMjU5OSw3IEBAIHJlbW92ZV9yZWZlcmVuY2UoYXJj
X2J1Zl9oZHJfdCAqaGRyLCBrbXV0ZXhfdCAqaGFzaF9sbw0KPiAgCSAqIGFyY19sMmNfb25seSBj
b3VudHMgYXMgYSBnaG9zdCBzdGF0ZSBzbyB3ZSBkb24ndCBuZWVkIHRvIGV4cGxpY2l0bHkNCj4g
IAkgKiBjaGVjayB0byBwcmV2ZW50IHVzYWdlIG9mIHRoZSBhcmNfbDJjX29ubHkgbGlzdC4NCj4g
IAkgKi8NCj4gLQlpZiAoKChjbnQgPSByZWZjb3VudF9yZW1vdmUoJmhkci0+Yl9sMWhkci5iX3Jl
ZmNudCwgdGFnKSkgPT0gMCkgJiYNCj4gKwlpZiAoKChjbnQgPSB6ZnNfcmVmY291bnRfcmVtb3Zl
KCZoZHItPmJfbDFoZHIuYl9yZWZjbnQsIHRhZykpID09IDApICYmDQo+ICAJICAgIChzdGF0ZSAh
PSBhcmNfYW5vbikpIHsNCj4gIAkJbXVsdGlsaXN0X2luc2VydChzdGF0ZS0+YXJjc19saXN0W2Fy
Y19idWZfdHlwZShoZHIpXSwgaGRyKTsNCj4gIAkJQVNTRVJUM1UoaGRyLT5iX2wxaGRyLmJfYnVm
Y250LCA+LCAwKTsNCj4gQEAgLTI2NDQsNyArMjY0NCw3IEBAIGFyY19idWZfaW5mbyhhcmNfYnVm
X3QgKmFiLCBhcmNfYnVmX2luZm9fdCAqYWJpLCBpbnQgcw0KPiAgCQlhYmktPmFiaV9tcnVfZ2hv
c3RfaGl0cyA9IGwxaGRyLT5iX21ydV9naG9zdF9oaXRzOw0KPiAgCQlhYmktPmFiaV9tZnVfaGl0
cyA9IGwxaGRyLT5iX21mdV9oaXRzOw0KPiAgCQlhYmktPmFiaV9tZnVfZ2hvc3RfaGl0cyA9IGwx
aGRyLT5iX21mdV9naG9zdF9oaXRzOw0KPiAtCQlhYmktPmFiaV9ob2xkcyA9IHJlZmNvdW50X2Nv
dW50KCZsMWhkci0+Yl9yZWZjbnQpOw0KPiArCQlhYmktPmFiaV9ob2xkcyA9IHpmc19yZWZjb3Vu
dF9jb3VudCgmbDFoZHItPmJfcmVmY250KTsNCj4gIAl9DQo+ICANCj4gIAlpZiAobDJoZHIpIHsN
Cj4gQEAgLTI2ODAsNyArMjY4MCw3IEBAIGFyY19jaGFuZ2Vfc3RhdGUoYXJjX3N0YXRlX3QgKm5l
d19zdGF0ZSwgYXJjX2J1Zl9oZHJfdA0KPiAgCSAqLw0KPiAgCWlmIChIRFJfSEFTX0wxSERSKGhk
cikpIHsNCj4gIAkJb2xkX3N0YXRlID0gaGRyLT5iX2wxaGRyLmJfc3RhdGU7DQo+IC0JCXJlZmNu
dCA9IHJlZmNvdW50X2NvdW50KCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpOw0KPiArCQlyZWZjbnQg
PSB6ZnNfcmVmY291bnRfY291bnQoJmhkci0+Yl9sMWhkci5iX3JlZmNudCk7DQo+ICAJCWJ1ZmNu
dCA9IGhkci0+Yl9sMWhkci5iX2J1ZmNudDsNCj4gIAkJdXBkYXRlX29sZCA9IChidWZjbnQgPiAw
IHx8IGhkci0+Yl9sMWhkci5iX3BhYmQgIT0gTlVMTCk7DQo+ICAJfSBlbHNlIHsNCj4gQEAgLTI3
NTAsNyArMjc1MCw3IEBAIGFyY19jaGFuZ2Vfc3RhdGUoYXJjX3N0YXRlX3QgKm5ld19zdGF0ZSwg
YXJjX2J1Zl9oZHJfdA0KPiAgCQkJICogdGhlIHJlZmVyZW5jZS4gQXMgYSByZXN1bHQsIHdlIHVz
ZSB0aGUgYXJjDQo+ICAJCQkgKiBoZWFkZXIgcG9pbnRlciBmb3IgdGhlIHJlZmVyZW5jZS4NCj4g
IAkJCSAqLw0KPiAtCQkJKHZvaWQpIHJlZmNvdW50X2FkZF9tYW55KCZuZXdfc3RhdGUtPmFyY3Nf
c2l6ZSwNCj4gKwkJCSh2b2lkKSB6ZnNfcmVmY291bnRfYWRkX21hbnkoJm5ld19zdGF0ZS0+YXJj
c19zaXplLA0KPiAgCQkJICAgIEhEUl9HRVRfTFNJWkUoaGRyKSwgaGRyKTsNCj4gIAkJCUFTU0VS
VDNQKGhkci0+Yl9sMWhkci5iX3BhYmQsID09LCBOVUxMKTsNCj4gIAkJfSBlbHNlIHsNCj4gQEAg
LTI3NzYsMTMgKzI3NzYsMTUgQEAgYXJjX2NoYW5nZV9zdGF0ZShhcmNfc3RhdGVfdCAqbmV3X3N0
YXRlLCBhcmNfYnVmX2hkcl90DQo+ICAJCQkJaWYgKGFyY19idWZfaXNfc2hhcmVkKGJ1ZikpDQo+
ICAJCQkJCWNvbnRpbnVlOw0KPiAgDQo+IC0JCQkJKHZvaWQpIHJlZmNvdW50X2FkZF9tYW55KCZu
ZXdfc3RhdGUtPmFyY3Nfc2l6ZSwNCj4gKwkJCQkodm9pZCkgemZzX3JlZmNvdW50X2FkZF9tYW55
KA0KPiArCQkJCSAgICAmbmV3X3N0YXRlLT5hcmNzX3NpemUsDQo+ICAJCQkJICAgIGFyY19idWZf
c2l6ZShidWYpLCBidWYpOw0KPiAgCQkJfQ0KPiAgCQkJQVNTRVJUM1UoYnVmY250LCA9PSwgYnVm
ZmVycyk7DQo+ICANCj4gIAkJCWlmIChoZHItPmJfbDFoZHIuYl9wYWJkICE9IE5VTEwpIHsNCj4g
LQkJCQkodm9pZCkgcmVmY291bnRfYWRkX21hbnkoJm5ld19zdGF0ZS0+YXJjc19zaXplLA0KPiAr
CQkJCSh2b2lkKSB6ZnNfcmVmY291bnRfYWRkX21hbnkoDQo+ICsJCQkJICAgICZuZXdfc3RhdGUt
PmFyY3Nfc2l6ZSwNCj4gIAkJCQkgICAgYXJjX2hkcl9zaXplKGhkciksIGhkcik7DQo+ICAJCQl9
IGVsc2Ugew0KPiAgCQkJCUFTU0VSVChHSE9TVF9TVEFURShvbGRfc3RhdGUpKTsNCj4gQEAgLTI4
MDQsNyArMjgwNiw3IEBAIGFyY19jaGFuZ2Vfc3RhdGUoYXJjX3N0YXRlX3QgKm5ld19zdGF0ZSwg
YXJjX2J1Zl9oZHJfdA0KPiAgCQkJICogaGVhZGVyIG9uIHRoZSBnaG9zdCBzdGF0ZS4NCj4gIAkJ
CSAqLw0KPiAgDQo+IC0JCQkodm9pZCkgcmVmY291bnRfcmVtb3ZlX21hbnkoJm9sZF9zdGF0ZS0+
YXJjc19zaXplLA0KPiArCQkJKHZvaWQpIHpmc19yZWZjb3VudF9yZW1vdmVfbWFueSgmb2xkX3N0
YXRlLT5hcmNzX3NpemUsDQo+ICAJCQkgICAgSERSX0dFVF9MU0laRShoZHIpLCBoZHIpOw0KPiAg
CQl9IGVsc2Ugew0KPiAgCQkJdWludDMyX3QgYnVmZmVycyA9IDA7DQo+IEBAIC0yODI5LDEzICsy
ODMxLDEzIEBAIGFyY19jaGFuZ2Vfc3RhdGUoYXJjX3N0YXRlX3QgKm5ld19zdGF0ZSwgYXJjX2J1
Zl9oZHJfdA0KPiAgCQkJCWlmIChhcmNfYnVmX2lzX3NoYXJlZChidWYpKQ0KPiAgCQkJCQljb250
aW51ZTsNCj4gIA0KPiAtCQkJCSh2b2lkKSByZWZjb3VudF9yZW1vdmVfbWFueSgNCj4gKwkJCQko
dm9pZCkgemZzX3JlZmNvdW50X3JlbW92ZV9tYW55KA0KPiAgCQkJCSAgICAmb2xkX3N0YXRlLT5h
cmNzX3NpemUsIGFyY19idWZfc2l6ZShidWYpLA0KPiAgCQkJCSAgICBidWYpOw0KPiAgCQkJfQ0K
PiAgCQkJQVNTRVJUM1UoYnVmY250LCA9PSwgYnVmZmVycyk7DQo+ICAJCQlBU1NFUlQzUChoZHIt
PmJfbDFoZHIuYl9wYWJkLCAhPSwgTlVMTCk7DQo+IC0JCQkodm9pZCkgcmVmY291bnRfcmVtb3Zl
X21hbnkoDQo+ICsJCQkodm9pZCkgemZzX3JlZmNvdW50X3JlbW92ZV9tYW55KA0KPiAgCQkJICAg
ICZvbGRfc3RhdGUtPmFyY3Nfc2l6ZSwgYXJjX2hkcl9zaXplKGhkciksIGhkcik7DQo+ICAJCX0N
Cj4gIAl9DQo+IEBAIC0zMTAxLDggKzMxMDMsOCBAQCBhcmNfcmV0dXJuX2J1ZihhcmNfYnVmX3Qg
KmJ1Ziwgdm9pZCAqdGFnKQ0KPiAgDQo+ICAJQVNTRVJUM1AoYnVmLT5iX2RhdGEsICE9LCBOVUxM
KTsNCj4gIAlBU1NFUlQoSERSX0hBU19MMUhEUihoZHIpKTsNCj4gLQkodm9pZCkgcmVmY291bnRf
YWRkKCZoZHItPmJfbDFoZHIuYl9yZWZjbnQsIHRhZyk7DQo+IC0JKHZvaWQpIHJlZmNvdW50X3Jl
bW92ZSgmaGRyLT5iX2wxaGRyLmJfcmVmY250LCBhcmNfb25sb2FuX3RhZyk7DQo+ICsJKHZvaWQp
IHpmc19yZWZjb3VudF9hZGQoJmhkci0+Yl9sMWhkci5iX3JlZmNudCwgdGFnKTsNCj4gKwkodm9p
ZCkgemZzX3JlZmNvdW50X3JlbW92ZSgmaGRyLT5iX2wxaGRyLmJfcmVmY250LCBhcmNfb25sb2Fu
X3RhZyk7DQo+ICANCj4gIAlhcmNfbG9hbmVkX2J5dGVzX3VwZGF0ZSgtYXJjX2J1Zl9zaXplKGJ1
ZikpOw0KPiAgfQ0KPiBAQCAtMzExNSw4ICszMTE3LDggQEAgYXJjX2xvYW5faW51c2VfYnVmKGFy
Y19idWZfdCAqYnVmLCB2b2lkICp0YWcpDQo+ICANCj4gIAlBU1NFUlQzUChidWYtPmJfZGF0YSwg
IT0sIE5VTEwpOw0KPiAgCUFTU0VSVChIRFJfSEFTX0wxSERSKGhkcikpOw0KPiAtCSh2b2lkKSBy
ZWZjb3VudF9hZGQoJmhkci0+Yl9sMWhkci5iX3JlZmNudCwgYXJjX29ubG9hbl90YWcpOw0KPiAt
CSh2b2lkKSByZWZjb3VudF9yZW1vdmUoJmhkci0+Yl9sMWhkci5iX3JlZmNudCwgdGFnKTsNCj4g
Kwkodm9pZCkgemZzX3JlZmNvdW50X2FkZCgmaGRyLT5iX2wxaGRyLmJfcmVmY250LCBhcmNfb25s
b2FuX3RhZyk7DQo+ICsJKHZvaWQpIHpmc19yZWZjb3VudF9yZW1vdmUoJmhkci0+Yl9sMWhkci5i
X3JlZmNudCwgdGFnKTsNCj4gIA0KPiAgCWFyY19sb2FuZWRfYnl0ZXNfdXBkYXRlKGFyY19idWZf
c2l6ZShidWYpKTsNCj4gIH0NCj4gQEAgLTMxNDMsMTMgKzMxNDUsMTMgQEAgYXJjX2hkcl9mcmVl
X29uX3dyaXRlKGFyY19idWZfaGRyX3QgKmhkcikNCj4gIA0KPiAgCS8qIHByb3RlY3RlZCBieSBo
YXNoIGxvY2ssIGlmIGluIHRoZSBoYXNoIHRhYmxlICovDQo+ICAJaWYgKG11bHRpbGlzdF9saW5r
X2FjdGl2ZSgmaGRyLT5iX2wxaGRyLmJfYXJjX25vZGUpKSB7DQo+IC0JCUFTU0VSVChyZWZjb3Vu
dF9pc196ZXJvKCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpKTsNCj4gKwkJQVNTRVJUKHpmc19yZWZj
b3VudF9pc196ZXJvKCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpKTsNCj4gIAkJQVNTRVJUKHN0YXRl
ICE9IGFyY19hbm9uICYmIHN0YXRlICE9IGFyY19sMmNfb25seSk7DQo+ICANCj4gLQkJKHZvaWQp
IHJlZmNvdW50X3JlbW92ZV9tYW55KCZzdGF0ZS0+YXJjc19lc2l6ZVt0eXBlXSwNCj4gKwkJKHZv
aWQpIHpmc19yZWZjb3VudF9yZW1vdmVfbWFueSgmc3RhdGUtPmFyY3NfZXNpemVbdHlwZV0sDQo+
ICAJCSAgICBzaXplLCBoZHIpOw0KPiAgCX0NCj4gLQkodm9pZCkgcmVmY291bnRfcmVtb3ZlX21h
bnkoJnN0YXRlLT5hcmNzX3NpemUsIHNpemUsIGhkcik7DQo+ICsJKHZvaWQpIHpmc19yZWZjb3Vu
dF9yZW1vdmVfbWFueSgmc3RhdGUtPmFyY3Nfc2l6ZSwgc2l6ZSwgaGRyKTsNCj4gIAlpZiAodHlw
ZSA9PSBBUkNfQlVGQ19NRVRBREFUQSkgew0KPiAgCQlhcmNfc3BhY2VfcmV0dXJuKHNpemUsIEFS
Q19TUEFDRV9NRVRBKTsNCj4gIAl9IGVsc2Ugew0KPiBAQCAtMzE3OSw3ICszMTgxLDcgQEAgYXJj
X3NoYXJlX2J1ZihhcmNfYnVmX2hkcl90ICpoZHIsIGFyY19idWZfdCAqYnVmKQ0KPiAgCSAqIHJl
ZmNvdW50IG93bmVyc2hpcCB0byB0aGUgaGRyIHNpbmNlIGl0IGFsd2F5cyBvd25zDQo+ICAJICog
dGhlIHJlZmNvdW50IHdoZW5ldmVyIGFuIGFyY19idWZfdCBpcyBzaGFyZWQuDQo+ICAJICovDQo+
IC0JcmVmY291bnRfdHJhbnNmZXJfb3duZXJzaGlwKCZzdGF0ZS0+YXJjc19zaXplLCBidWYsIGhk
cik7DQo+ICsJemZzX3JlZmNvdW50X3RyYW5zZmVyX293bmVyc2hpcCgmc3RhdGUtPmFyY3Nfc2l6
ZSwgYnVmLCBoZHIpOw0KPiAgCWhkci0+Yl9sMWhkci5iX3BhYmQgPSBhYmRfZ2V0X2Zyb21fYnVm
KGJ1Zi0+Yl9kYXRhLCBhcmNfYnVmX3NpemUoYnVmKSk7DQo+ICAJYWJkX3Rha2Vfb3duZXJzaGlw
X29mX2J1ZihoZHItPmJfbDFoZHIuYl9wYWJkLA0KPiAgCSAgICBIRFJfSVNUWVBFX01FVEFEQVRB
KGhkcikpOw0KPiBAQCAtMzIwOSw3ICszMjExLDcgQEAgYXJjX3Vuc2hhcmVfYnVmKGFyY19idWZf
aGRyX3QgKmhkciwgYXJjX2J1Zl90ICpidWYpDQo+ICAJICogV2UgYXJlIG5vIGxvbmdlciBzaGFy
aW5nIHRoaXMgYnVmZmVyIHNvIHdlIG5lZWQNCj4gIAkgKiB0byB0cmFuc2ZlciBpdHMgb3duZXJz
aGlwIHRvIHRoZSByaWdodGZ1bCBvd25lci4NCj4gIAkgKi8NCj4gLQlyZWZjb3VudF90cmFuc2Zl
cl9vd25lcnNoaXAoJnN0YXRlLT5hcmNzX3NpemUsIGhkciwgYnVmKTsNCj4gKwl6ZnNfcmVmY291
bnRfdHJhbnNmZXJfb3duZXJzaGlwKCZzdGF0ZS0+YXJjc19zaXplLCBoZHIsIGJ1Zik7DQo+ICAJ
YXJjX2hkcl9jbGVhcl9mbGFncyhoZHIsIEFSQ19GTEFHX1NIQVJFRF9EQVRBKTsNCj4gIAlhYmRf
cmVsZWFzZV9vd25lcnNoaXBfb2ZfYnVmKGhkci0+Yl9sMWhkci5iX3BhYmQpOw0KPiAgCWFiZF9w
dXQoaGRyLT5iX2wxaGRyLmJfcGFiZCk7DQo+IEBAIC0zNDM2LDcgKzM0MzgsNyBAQCBhcmNfaGRy
X2FsbG9jKHVpbnQ2NF90IHNwYSwgaW50MzJfdCBwc2l6ZSwgaW50MzJfdCBsc2kNCj4gIAkgKiBp
dCByZWZlcmVuY2VzIGFuZCBjb21wcmVzc2VkIGFyYyBlbmFibGVtZW50Lg0KPiAgCSAqLw0KPiAg
CWFyY19oZHJfYWxsb2NfcGFiZChoZHIsIEJfVFJVRSk7DQo+IC0JQVNTRVJUKHJlZmNvdW50X2lz
X3plcm8oJmhkci0+Yl9sMWhkci5iX3JlZmNudCkpOw0KPiArCUFTU0VSVCh6ZnNfcmVmY291bnRf
aXNfemVybygmaGRyLT5iX2wxaGRyLmJfcmVmY250KSk7DQo+ICANCj4gIAlyZXR1cm4gKGhkcik7
DQo+ICB9DQo+IEBAIC0zNTM4LDggKzM1NDAsMTAgQEAgYXJjX2hkcl9yZWFsbG9jKGFyY19idWZf
aGRyX3QgKmhkciwga21lbV9jYWNoZV90ICpvbGQsDQo+ICAJICogdGhlIHdyb25nIHBvaW50ZXIg
YWRkcmVzcyB3aGVuIGNhbGxpbmcgYXJjX2hkcl9kZXN0cm95KCkgbGF0ZXIuDQo+ICAJICovDQo+
ICANCj4gLQkodm9pZCkgcmVmY291bnRfcmVtb3ZlX21hbnkoJmRldi0+bDJhZF9hbGxvYywgYXJj
X2hkcl9zaXplKGhkciksIGhkcik7DQo+IC0JKHZvaWQpIHJlZmNvdW50X2FkZF9tYW55KCZkZXYt
PmwyYWRfYWxsb2MsIGFyY19oZHJfc2l6ZShuaGRyKSwgbmhkcik7DQo+ICsJKHZvaWQpIHpmc19y
ZWZjb3VudF9yZW1vdmVfbWFueSgmZGV2LT5sMmFkX2FsbG9jLCBhcmNfaGRyX3NpemUoaGRyKSwN
Cj4gKwkgICAgaGRyKTsNCj4gKwkodm9pZCkgemZzX3JlZmNvdW50X2FkZF9tYW55KCZkZXYtPmwy
YWRfYWxsb2MsIGFyY19oZHJfc2l6ZShuaGRyKSwNCj4gKwkgICAgbmhkcik7DQo+ICANCj4gIAli
dWZfZGlzY2FyZF9pZGVudGl0eShoZHIpOw0KPiAgCWttZW1fY2FjaGVfZnJlZShvbGQsIGhkcik7
DQo+IEBAIC0zNjE5LDcgKzM2MjMsNyBAQCBhcmNfaGRyX2wyaGRyX2Rlc3Ryb3koYXJjX2J1Zl9o
ZHJfdCAqaGRyKQ0KPiAgDQo+ICAJdmRldl9zcGFjZV91cGRhdGUoZGV2LT5sMmFkX3ZkZXYsIC1w
c2l6ZSwgMCwgMCk7DQo+ICANCj4gLQkodm9pZCkgcmVmY291bnRfcmVtb3ZlX21hbnkoJmRldi0+
bDJhZF9hbGxvYywgcHNpemUsIGhkcik7DQo+ICsJKHZvaWQpIHpmc19yZWZjb3VudF9yZW1vdmVf
bWFueSgmZGV2LT5sMmFkX2FsbG9jLCBwc2l6ZSwgaGRyKTsNCj4gIAlhcmNfaGRyX2NsZWFyX2Zs
YWdzKGhkciwgQVJDX0ZMQUdfSEFTX0wySERSKTsNCj4gIH0NCj4gIA0KPiBAQCAtMzYyOSw3ICsz
NjMzLDcgQEAgYXJjX2hkcl9kZXN0cm95KGFyY19idWZfaGRyX3QgKmhkcikNCj4gIAlpZiAoSERS
X0hBU19MMUhEUihoZHIpKSB7DQo+ICAJCUFTU0VSVChoZHItPmJfbDFoZHIuYl9idWYgPT0gTlVM
TCB8fA0KPiAgCQkgICAgaGRyLT5iX2wxaGRyLmJfYnVmY250ID4gMCk7DQo+IC0JCUFTU0VSVChy
ZWZjb3VudF9pc196ZXJvKCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpKTsNCj4gKwkJQVNTRVJUKHpm
c19yZWZjb3VudF9pc196ZXJvKCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpKTsNCj4gIAkJQVNTRVJU
M1AoaGRyLT5iX2wxaGRyLmJfc3RhdGUsID09LCBhcmNfYW5vbik7DQo+ICAJfQ0KPiAgCUFTU0VS
VCghSERSX0lPX0lOX1BST0dSRVNTKGhkcikpOw0KPiBAQCAtMzc5Myw3ICszNzk3LDcgQEAgYXJj
X2V2aWN0X2hkcihhcmNfYnVmX2hkcl90ICpoZHIsIGttdXRleF90ICpoYXNoX2xvY2spDQo+ICAJ
CXJldHVybiAoYnl0ZXNfZXZpY3RlZCk7DQo+ICAJfQ0KPiAgDQo+IC0JQVNTRVJUMChyZWZjb3Vu
dF9jb3VudCgmaGRyLT5iX2wxaGRyLmJfcmVmY250KSk7DQo+ICsJQVNTRVJUMCh6ZnNfcmVmY291
bnRfY291bnQoJmhkci0+Yl9sMWhkci5iX3JlZmNudCkpOw0KPiAgCXdoaWxlIChoZHItPmJfbDFo
ZHIuYl9idWYpIHsNCj4gIAkJYXJjX2J1Zl90ICpidWYgPSBoZHItPmJfbDFoZHIuYl9idWY7DQo+
ICAJCWlmICghbXV0ZXhfdHJ5ZW50ZXIoJmJ1Zi0+Yl9ldmljdF9sb2NrKSkgew0KPiBAQCAtNDEw
Nyw3ICs0MTExLDcgQEAgYXJjX2ZsdXNoX3N0YXRlKGFyY19zdGF0ZV90ICpzdGF0ZSwgdWludDY0
X3Qgc3BhLCBhcmNfDQo+ICB7DQo+ICAJdWludDY0X3QgZXZpY3RlZCA9IDA7DQo+ICANCj4gLQl3
aGlsZSAocmVmY291bnRfY291bnQoJnN0YXRlLT5hcmNzX2VzaXplW3R5cGVdKSAhPSAwKSB7DQo+
ICsJd2hpbGUgKHpmc19yZWZjb3VudF9jb3VudCgmc3RhdGUtPmFyY3NfZXNpemVbdHlwZV0pICE9
IDApIHsNCj4gIAkJZXZpY3RlZCArPSBhcmNfZXZpY3Rfc3RhdGUoc3RhdGUsIHNwYSwgQVJDX0VW
SUNUX0FMTCwgdHlwZSk7DQo+ICANCj4gIAkJaWYgKCFyZXRyeSkNCj4gQEAgLTQxMzAsNyArNDEz
NCw3IEBAIGFyY19wcnVuZV90YXNrKHZvaWQgKnB0cikNCj4gIAlpZiAoZnVuYyAhPSBOVUxMKQ0K
PiAgCQlmdW5jKGFwLT5wX2FkanVzdCwgYXAtPnBfcHJpdmF0ZSk7DQo+ICANCj4gLQlyZWZjb3Vu
dF9yZW1vdmUoJmFwLT5wX3JlZmNudCwgZnVuYyk7DQo+ICsJemZzX3JlZmNvdW50X3JlbW92ZSgm
YXAtPnBfcmVmY250LCBmdW5jKTsNCj4gIH0NCj4gIA0KPiAgLyoNCj4gQEAgLTQxNTMsMTQgKzQx
NTcsMTQgQEAgYXJjX3BydW5lX2FzeW5jKGludDY0X3QgYWRqdXN0KQ0KPiAgCWZvciAoYXAgPSBs
aXN0X2hlYWQoJmFyY19wcnVuZV9saXN0KTsgYXAgIT0gTlVMTDsNCj4gIAkgICAgYXAgPSBsaXN0
X25leHQoJmFyY19wcnVuZV9saXN0LCBhcCkpIHsNCj4gIA0KPiAtCQlpZiAocmVmY291bnRfY291
bnQoJmFwLT5wX3JlZmNudCkgPj0gMikNCj4gKwkJaWYgKHpmc19yZWZjb3VudF9jb3VudCgmYXAt
PnBfcmVmY250KSA+PSAyKQ0KPiAgCQkJY29udGludWU7DQo+ICANCj4gLQkJcmVmY291bnRfYWRk
KCZhcC0+cF9yZWZjbnQsIGFwLT5wX3BmdW5jKTsNCj4gKwkJemZzX3JlZmNvdW50X2FkZCgmYXAt
PnBfcmVmY250LCBhcC0+cF9wZnVuYyk7DQo+ICAJCWFwLT5wX2FkanVzdCA9IGFkanVzdDsNCj4g
IAkJaWYgKHRhc2txX2Rpc3BhdGNoKGFyY19wcnVuZV90YXNrcSwgYXJjX3BydW5lX3Rhc2ssDQo+
ICAJCSAgICBhcCwgVFFfU0xFRVApID09IFRBU0tRSURfSU5WQUxJRCkgew0KPiAtCQkJcmVmY291
bnRfcmVtb3ZlKCZhcC0+cF9yZWZjbnQsIGFwLT5wX3BmdW5jKTsNCj4gKwkJCXpmc19yZWZjb3Vu
dF9yZW1vdmUoJmFwLT5wX3JlZmNudCwgYXAtPnBfcGZ1bmMpOw0KPiAgCQkJY29udGludWU7DQo+
ICAJCX0NCj4gIAkJQVJDU1RBVF9CVU1QKGFyY3N0YXRfcHJ1bmUpOw0KPiBAQCAtNDE4Miw4ICs0
MTg2LDkgQEAgYXJjX2FkanVzdF9pbXBsKGFyY19zdGF0ZV90ICpzdGF0ZSwgdWludDY0X3Qgc3Bh
LCBpbnQ2DQo+ICB7DQo+ICAJaW50NjRfdCBkZWx0YTsNCj4gIA0KPiAtCWlmIChieXRlcyA+IDAg
JiYgcmVmY291bnRfY291bnQoJnN0YXRlLT5hcmNzX2VzaXplW3R5cGVdKSA+IDApIHsNCj4gLQkJ
ZGVsdGEgPSBNSU4ocmVmY291bnRfY291bnQoJnN0YXRlLT5hcmNzX2VzaXplW3R5cGVdKSwgYnl0
ZXMpOw0KPiArCWlmIChieXRlcyA+IDAgJiYgemZzX3JlZmNvdW50X2NvdW50KCZzdGF0ZS0+YXJj
c19lc2l6ZVt0eXBlXSkgPiAwKSB7DQo+ICsJCWRlbHRhID0gTUlOKHpmc19yZWZjb3VudF9jb3Vu
dCgmc3RhdGUtPmFyY3NfZXNpemVbdHlwZV0pLA0KPiArCQkgICAgYnl0ZXMpOw0KPiAgCQlyZXR1
cm4gKGFyY19ldmljdF9zdGF0ZShzdGF0ZSwgc3BhLCBkZWx0YSwgdHlwZSkpOw0KPiAgCX0NCj4g
IA0KPiBAQCAtNDIyNiw4ICs0MjMxLDkgQEAgcmVzdGFydDoNCj4gIAkgKi8NCj4gIAlhZGp1c3Rt
bnQgPSBtZXRhX3VzZWQgLSBhcmNfbWV0YV9saW1pdDsNCj4gIA0KPiAtCWlmIChhZGp1c3RtbnQg
PiAwICYmIHJlZmNvdW50X2NvdW50KCZhcmNfbXJ1LT5hcmNzX2VzaXplW3R5cGVdKSA+IDApIHsN
Cj4gLQkJZGVsdGEgPSBNSU4ocmVmY291bnRfY291bnQoJmFyY19tcnUtPmFyY3NfZXNpemVbdHlw
ZV0pLA0KPiArCWlmIChhZGp1c3RtbnQgPiAwICYmDQo+ICsJICAgIHpmc19yZWZjb3VudF9jb3Vu
dCgmYXJjX21ydS0+YXJjc19lc2l6ZVt0eXBlXSkgPiAwKSB7DQo+ICsJCWRlbHRhID0gTUlOKHpm
c19yZWZjb3VudF9jb3VudCgmYXJjX21ydS0+YXJjc19lc2l6ZVt0eXBlXSksDQo+ICAJCSAgICBh
ZGp1c3RtbnQpOw0KPiAgCQl0b3RhbF9ldmljdGVkICs9IGFyY19hZGp1c3RfaW1wbChhcmNfbXJ1
LCAwLCBkZWx0YSwgdHlwZSk7DQo+ICAJCWFkanVzdG1udCAtPSBkZWx0YTsNCj4gQEAgLTQyNDMs
OCArNDI0OSw5IEBAIHJlc3RhcnQ6DQo+ICAJICogc2ltcGx5IGRlY3JlbWVudCB0aGUgYW1vdW50
IG9mIGRhdGEgZXZpY3RlZCBmcm9tIHRoZSBNUlUuDQo+ICAJICovDQo+ICANCj4gLQlpZiAoYWRq
dXN0bW50ID4gMCAmJiByZWZjb3VudF9jb3VudCgmYXJjX21mdS0+YXJjc19lc2l6ZVt0eXBlXSkg
PiAwKSB7DQo+IC0JCWRlbHRhID0gTUlOKHJlZmNvdW50X2NvdW50KCZhcmNfbWZ1LT5hcmNzX2Vz
aXplW3R5cGVdKSwNCj4gKwlpZiAoYWRqdXN0bW50ID4gMCAmJg0KPiArCSAgICB6ZnNfcmVmY291
bnRfY291bnQoJmFyY19tZnUtPmFyY3NfZXNpemVbdHlwZV0pID4gMCkgew0KPiArCQlkZWx0YSA9
IE1JTih6ZnNfcmVmY291bnRfY291bnQoJmFyY19tZnUtPmFyY3NfZXNpemVbdHlwZV0pLA0KPiAg
CQkgICAgYWRqdXN0bW50KTsNCj4gIAkJdG90YWxfZXZpY3RlZCArPSBhcmNfYWRqdXN0X2ltcGwo
YXJjX21mdSwgMCwgZGVsdGEsIHR5cGUpOw0KPiAgCX0NCj4gQEAgLTQyNTIsMTcgKzQyNTksMTcg
QEAgcmVzdGFydDoNCj4gIAlhZGp1c3RtbnQgPSBtZXRhX3VzZWQgLSBhcmNfbWV0YV9saW1pdDsN
Cj4gIA0KPiAgCWlmIChhZGp1c3RtbnQgPiAwICYmDQo+IC0JICAgIHJlZmNvdW50X2NvdW50KCZh
cmNfbXJ1X2dob3N0LT5hcmNzX2VzaXplW3R5cGVdKSA+IDApIHsNCj4gKwkgICAgemZzX3JlZmNv
dW50X2NvdW50KCZhcmNfbXJ1X2dob3N0LT5hcmNzX2VzaXplW3R5cGVdKSA+IDApIHsNCj4gIAkJ
ZGVsdGEgPSBNSU4oYWRqdXN0bW50LA0KPiAtCQkgICAgcmVmY291bnRfY291bnQoJmFyY19tcnVf
Z2hvc3QtPmFyY3NfZXNpemVbdHlwZV0pKTsNCj4gKwkJICAgIHpmc19yZWZjb3VudF9jb3VudCgm
YXJjX21ydV9naG9zdC0+YXJjc19lc2l6ZVt0eXBlXSkpOw0KPiAgCQl0b3RhbF9ldmljdGVkICs9
IGFyY19hZGp1c3RfaW1wbChhcmNfbXJ1X2dob3N0LCAwLCBkZWx0YSwgdHlwZSk7DQo+ICAJCWFk
anVzdG1udCAtPSBkZWx0YTsNCj4gIAl9DQo+ICANCj4gIAlpZiAoYWRqdXN0bW50ID4gMCAmJg0K
PiAtCSAgICByZWZjb3VudF9jb3VudCgmYXJjX21mdV9naG9zdC0+YXJjc19lc2l6ZVt0eXBlXSkg
PiAwKSB7DQo+ICsJICAgIHpmc19yZWZjb3VudF9jb3VudCgmYXJjX21mdV9naG9zdC0+YXJjc19l
c2l6ZVt0eXBlXSkgPiAwKSB7DQo+ICAJCWRlbHRhID0gTUlOKGFkanVzdG1udCwNCj4gLQkJICAg
IHJlZmNvdW50X2NvdW50KCZhcmNfbWZ1X2dob3N0LT5hcmNzX2VzaXplW3R5cGVdKSk7DQo+ICsJ
CSAgICB6ZnNfcmVmY291bnRfY291bnQoJmFyY19tZnVfZ2hvc3QtPmFyY3NfZXNpemVbdHlwZV0p
KTsNCj4gIAkJdG90YWxfZXZpY3RlZCArPSBhcmNfYWRqdXN0X2ltcGwoYXJjX21mdV9naG9zdCwg
MCwgZGVsdGEsIHR5cGUpOw0KPiAgCX0NCj4gIA0KPiBAQCAtNDMxMSw4ICs0MzE4LDggQEAgYXJj
X2FkanVzdF9tZXRhX29ubHkodWludDY0X3QgbWV0YV91c2VkKQ0KPiAgCSAqIGV2aWN0IHNvbWUg
ZnJvbSB0aGUgTVJVIGhlcmUsIGFuZCBzb21lIGZyb20gdGhlIE1GVSBiZWxvdy4NCj4gIAkgKi8N
Cj4gIAl0YXJnZXQgPSBNSU4oKGludDY0X3QpKG1ldGFfdXNlZCAtIGFyY19tZXRhX2xpbWl0KSwN
Cj4gLQkgICAgKGludDY0X3QpKHJlZmNvdW50X2NvdW50KCZhcmNfYW5vbi0+YXJjc19zaXplKSAr
DQo+IC0JICAgIHJlZmNvdW50X2NvdW50KCZhcmNfbXJ1LT5hcmNzX3NpemUpIC0gYXJjX3ApKTsN
Cj4gKwkgICAgKGludDY0X3QpKHpmc19yZWZjb3VudF9jb3VudCgmYXJjX2Fub24tPmFyY3Nfc2l6
ZSkgKw0KPiArCSAgICB6ZnNfcmVmY291bnRfY291bnQoJmFyY19tcnUtPmFyY3Nfc2l6ZSkgLSBh
cmNfcCkpOw0KPiAgDQo+ICAJdG90YWxfZXZpY3RlZCArPSBhcmNfYWRqdXN0X2ltcGwoYXJjX21y
dSwgMCwgdGFyZ2V0LCBBUkNfQlVGQ19NRVRBREFUQSk7DQo+ICANCj4gQEAgLTQzMjIsNyArNDMy
OSw3IEBAIGFyY19hZGp1c3RfbWV0YV9vbmx5KHVpbnQ2NF90IG1ldGFfdXNlZCkNCj4gIAkgKiBz
cGFjZSBhbGxvdHRlZCB0byB0aGUgTUZVICh3aGljaCBpcyBkZWZpbmVkIGFzIGFyY19jIC0gYXJj
X3ApLg0KPiAgCSAqLw0KPiAgCXRhcmdldCA9IE1JTigoaW50NjRfdCkobWV0YV91c2VkIC0gYXJj
X21ldGFfbGltaXQpLA0KPiAtCSAgICAoaW50NjRfdCkocmVmY291bnRfY291bnQoJmFyY19tZnUt
PmFyY3Nfc2l6ZSkgLQ0KPiArCSAgICAoaW50NjRfdCkoemZzX3JlZmNvdW50X2NvdW50KCZhcmNf
bWZ1LT5hcmNzX3NpemUpIC0NCj4gIAkgICAgKGFyY19jIC0gYXJjX3ApKSk7DQo+ICANCj4gIAl0
b3RhbF9ldmljdGVkICs9IGFyY19hZGp1c3RfaW1wbChhcmNfbWZ1LCAwLCB0YXJnZXQsIEFSQ19C
VUZDX01FVEFEQVRBKTsNCj4gQEAgLTQ0NDMsOCArNDQ1MCw4IEBAIGFyY19hZGp1c3Qodm9pZCkN
Cj4gIAkgKiBhcmNfcCBoZXJlLCBhbmQgdGhlbiBldmljdCBtb3JlIGZyb20gdGhlIE1GVSBiZWxv
dy4NCj4gIAkgKi8NCj4gIAl0YXJnZXQgPSBNSU4oKGludDY0X3QpKGFzaXplIC0gYXJjX2MpLA0K
PiAtCSAgICAoaW50NjRfdCkocmVmY291bnRfY291bnQoJmFyY19hbm9uLT5hcmNzX3NpemUpICsN
Cj4gLQkgICAgcmVmY291bnRfY291bnQoJmFyY19tcnUtPmFyY3Nfc2l6ZSkgKyBhbWV0YSAtIGFy
Y19wKSk7DQo+ICsJICAgIChpbnQ2NF90KSh6ZnNfcmVmY291bnRfY291bnQoJmFyY19hbm9uLT5h
cmNzX3NpemUpICsNCj4gKwkgICAgemZzX3JlZmNvdW50X2NvdW50KCZhcmNfbXJ1LT5hcmNzX3Np
emUpICsgYW1ldGEgLSBhcmNfcCkpOw0KPiAgDQo+ICAJLyoNCj4gIAkgKiBJZiB3ZSdyZSBiZWxv
dyBhcmNfbWV0YV9taW4sIGFsd2F5cyBwcmVmZXIgdG8gZXZpY3QgZGF0YS4NCj4gQEAgLTQ1MzQs
OCArNDU0MSw4IEBAIGFyY19hZGp1c3Qodm9pZCkNCj4gIAkgKiBjYWNoZS4gVGhlIGZvbGxvd2lu
ZyBsb2dpYyBlbmZvcmNlcyB0aGVzZSBsaW1pdHMgb24gdGhlIGdob3N0DQo+ICAJICogY2FjaGVz
LCBhbmQgZXZpY3RzIGZyb20gdGhlbSBhcyBuZWVkZWQuDQo+ICAJICovDQo+IC0JdGFyZ2V0ID0g
cmVmY291bnRfY291bnQoJmFyY19tcnUtPmFyY3Nfc2l6ZSkgKw0KPiAtCSAgICByZWZjb3VudF9j
b3VudCgmYXJjX21ydV9naG9zdC0+YXJjc19zaXplKSAtIGFyY19jOw0KPiArCXRhcmdldCA9IHpm
c19yZWZjb3VudF9jb3VudCgmYXJjX21ydS0+YXJjc19zaXplKSArDQo+ICsJICAgIHpmc19yZWZj
b3VudF9jb3VudCgmYXJjX21ydV9naG9zdC0+YXJjc19zaXplKSAtIGFyY19jOw0KPiAgDQo+ICAJ
Ynl0ZXMgPSBhcmNfYWRqdXN0X2ltcGwoYXJjX21ydV9naG9zdCwgMCwgdGFyZ2V0LCBBUkNfQlVG
Q19EQVRBKTsNCj4gIAl0b3RhbF9ldmljdGVkICs9IGJ5dGVzOw0KPiBAQCAtNDU1Myw4ICs0NTYw
LDggQEAgYXJjX2FkanVzdCh2b2lkKQ0KPiAgCSAqCW1ydSArIG1mdSArIG1ydSBnaG9zdCArIG1m
dSBnaG9zdCA8PSAyICogYXJjX2MNCj4gIAkgKgkJICAgIG1ydSBnaG9zdCArIG1mdSBnaG9zdCA8
PSBhcmNfYw0KPiAgCSAqLw0KPiAtCXRhcmdldCA9IHJlZmNvdW50X2NvdW50KCZhcmNfbXJ1X2do
b3N0LT5hcmNzX3NpemUpICsNCj4gLQkgICAgcmVmY291bnRfY291bnQoJmFyY19tZnVfZ2hvc3Qt
PmFyY3Nfc2l6ZSkgLSBhcmNfYzsNCj4gKwl0YXJnZXQgPSB6ZnNfcmVmY291bnRfY291bnQoJmFy
Y19tcnVfZ2hvc3QtPmFyY3Nfc2l6ZSkgKw0KPiArCSAgICB6ZnNfcmVmY291bnRfY291bnQoJmFy
Y19tZnVfZ2hvc3QtPmFyY3Nfc2l6ZSkgLSBhcmNfYzsNCj4gIA0KPiAgCWJ5dGVzID0gYXJjX2Fk
anVzdF9pbXBsKGFyY19tZnVfZ2hvc3QsIDAsIHRhcmdldCwgQVJDX0JVRkNfREFUQSk7DQo+ICAJ
dG90YWxfZXZpY3RlZCArPSBieXRlczsNCj4gQEAgLTUwNjksOCArNTA3Niw4IEBAIGFyY19hZGFw
dChpbnQgYnl0ZXMsIGFyY19zdGF0ZV90ICpzdGF0ZSkNCj4gIHsNCj4gIAlpbnQgbXVsdDsNCj4g
IAl1aW50NjRfdCBhcmNfcF9taW4gPSAoYXJjX2MgPj4gYXJjX3BfbWluX3NoaWZ0KTsNCj4gLQlp
bnQ2NF90IG1ydWdfc2l6ZSA9IHJlZmNvdW50X2NvdW50KCZhcmNfbXJ1X2dob3N0LT5hcmNzX3Np
emUpOw0KPiAtCWludDY0X3QgbWZ1Z19zaXplID0gcmVmY291bnRfY291bnQoJmFyY19tZnVfZ2hv
c3QtPmFyY3Nfc2l6ZSk7DQo+ICsJaW50NjRfdCBtcnVnX3NpemUgPSB6ZnNfcmVmY291bnRfY291
bnQoJmFyY19tcnVfZ2hvc3QtPmFyY3Nfc2l6ZSk7DQo+ICsJaW50NjRfdCBtZnVnX3NpemUgPSB6
ZnNfcmVmY291bnRfY291bnQoJmFyY19tZnVfZ2hvc3QtPmFyY3Nfc2l6ZSk7DQo+ICANCj4gIAlp
ZiAoc3RhdGUgPT0gYXJjX2wyY19vbmx5KQ0KPiAgCQlyZXR1cm47DQo+IEBAIC01MjQ4LDcgKzUy
NTUsNyBAQCBhcmNfZ2V0X2RhdGFfaW1wbChhcmNfYnVmX2hkcl90ICpoZHIsIHVpbnQ2NF90IHNp
emUsIHYNCj4gIAkgKi8NCj4gIAlpZiAoIUdIT1NUX1NUQVRFKHN0YXRlKSkgew0KPiAgDQo+IC0J
CSh2b2lkKSByZWZjb3VudF9hZGRfbWFueSgmc3RhdGUtPmFyY3Nfc2l6ZSwgc2l6ZSwgdGFnKTsN
Cj4gKwkJKHZvaWQpIHpmc19yZWZjb3VudF9hZGRfbWFueSgmc3RhdGUtPmFyY3Nfc2l6ZSwgc2l6
ZSwgdGFnKTsNCj4gIA0KPiAgCQkvKg0KPiAgCQkgKiBJZiB0aGlzIGlzIHJlYWNoZWQgdmlhIGFy
Y19yZWFkLCB0aGUgbGluayBpcw0KPiBAQCAtNTI2MCw4ICs1MjY3LDggQEAgYXJjX2dldF9kYXRh
X2ltcGwoYXJjX2J1Zl9oZHJfdCAqaGRyLCB1aW50NjRfdCBzaXplLCB2DQo+ICAJCSAqIHRyeWlu
ZyB0byBbYWRkfHJlbW92ZV1fcmVmZXJlbmNlIGl0Lg0KPiAgCQkgKi8NCj4gIAkJaWYgKG11bHRp
bGlzdF9saW5rX2FjdGl2ZSgmaGRyLT5iX2wxaGRyLmJfYXJjX25vZGUpKSB7DQo+IC0JCQlBU1NF
UlQocmVmY291bnRfaXNfemVybygmaGRyLT5iX2wxaGRyLmJfcmVmY250KSk7DQo+IC0JCQkodm9p
ZCkgcmVmY291bnRfYWRkX21hbnkoJnN0YXRlLT5hcmNzX2VzaXplW3R5cGVdLA0KPiArCQkJQVNT
RVJUKHpmc19yZWZjb3VudF9pc196ZXJvKCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpKTsNCj4gKwkJ
CSh2b2lkKSB6ZnNfcmVmY291bnRfYWRkX21hbnkoJnN0YXRlLT5hcmNzX2VzaXplW3R5cGVdLA0K
PiAgCQkJICAgIHNpemUsIHRhZyk7DQo+ICAJCX0NCj4gIA0KPiBAQCAtNTI3MSw4ICs1Mjc4LDgg
QEAgYXJjX2dldF9kYXRhX2ltcGwoYXJjX2J1Zl9oZHJfdCAqaGRyLCB1aW50NjRfdCBzaXplLCB2
DQo+ICAJCSAqLw0KPiAgCQlpZiAoYWdnc3VtX3VwcGVyX2JvdW5kKCZhcmNfc2l6ZSkgPCBhcmNf
YyAmJg0KPiAgCQkgICAgaGRyLT5iX2wxaGRyLmJfc3RhdGUgPT0gYXJjX2Fub24gJiYNCj4gLQkJ
ICAgIChyZWZjb3VudF9jb3VudCgmYXJjX2Fub24tPmFyY3Nfc2l6ZSkgKw0KPiAtCQkgICAgcmVm
Y291bnRfY291bnQoJmFyY19tcnUtPmFyY3Nfc2l6ZSkgPiBhcmNfcCkpDQo+ICsJCSAgICAoemZz
X3JlZmNvdW50X2NvdW50KCZhcmNfYW5vbi0+YXJjc19zaXplKSArDQo+ICsJCSAgICB6ZnNfcmVm
Y291bnRfY291bnQoJmFyY19tcnUtPmFyY3Nfc2l6ZSkgPiBhcmNfcCkpDQo+ICAJCQlhcmNfcCA9
IE1JTihhcmNfYywgYXJjX3AgKyBzaXplKTsNCj4gIAl9DQo+ICAJQVJDU1RBVF9CVU1QKGFyY3N0
YXRfYWxsb2NhdGVkKTsNCj4gQEAgLTUzMTAsMTMgKzUzMTcsMTMgQEAgYXJjX2ZyZWVfZGF0YV9p
bXBsKGFyY19idWZfaGRyX3QgKmhkciwgdWludDY0X3Qgc2l6ZSwgDQo+ICANCj4gIAkvKiBwcm90
ZWN0ZWQgYnkgaGFzaCBsb2NrLCBpZiBpbiB0aGUgaGFzaCB0YWJsZSAqLw0KPiAgCWlmIChtdWx0
aWxpc3RfbGlua19hY3RpdmUoJmhkci0+Yl9sMWhkci5iX2FyY19ub2RlKSkgew0KPiAtCQlBU1NF
UlQocmVmY291bnRfaXNfemVybygmaGRyLT5iX2wxaGRyLmJfcmVmY250KSk7DQo+ICsJCUFTU0VS
VCh6ZnNfcmVmY291bnRfaXNfemVybygmaGRyLT5iX2wxaGRyLmJfcmVmY250KSk7DQo+ICAJCUFT
U0VSVChzdGF0ZSAhPSBhcmNfYW5vbiAmJiBzdGF0ZSAhPSBhcmNfbDJjX29ubHkpOw0KPiAgDQo+
IC0JCSh2b2lkKSByZWZjb3VudF9yZW1vdmVfbWFueSgmc3RhdGUtPmFyY3NfZXNpemVbdHlwZV0s
DQo+ICsJCSh2b2lkKSB6ZnNfcmVmY291bnRfcmVtb3ZlX21hbnkoJnN0YXRlLT5hcmNzX2VzaXpl
W3R5cGVdLA0KPiAgCQkgICAgc2l6ZSwgdGFnKTsNCj4gIAl9DQo+IC0JKHZvaWQpIHJlZmNvdW50
X3JlbW92ZV9tYW55KCZzdGF0ZS0+YXJjc19zaXplLCBzaXplLCB0YWcpOw0KPiArCSh2b2lkKSB6
ZnNfcmVmY291bnRfcmVtb3ZlX21hbnkoJnN0YXRlLT5hcmNzX3NpemUsIHNpemUsIHRhZyk7DQo+
ICANCj4gIAlWRVJJRlkzVShoZHItPmJfdHlwZSwgPT0sIHR5cGUpOw0KPiAgCWlmICh0eXBlID09
IEFSQ19CVUZDX01FVEFEQVRBKSB7DQo+IEBAIC01MzYzLDcgKzUzNzAsNyBAQCBhcmNfYWNjZXNz
KGFyY19idWZfaGRyX3QgKmhkciwga211dGV4X3QgKmhhc2hfbG9jaykNCj4gIAkJICogICBhbm90
aGVyIHByZWZldGNoICh0byBtYWtlIGl0IGxlc3MgbGlrZWx5IHRvIGJlIGV2aWN0ZWQpLg0KPiAg
CQkgKi8NCj4gIAkJaWYgKEhEUl9QUkVGRVRDSChoZHIpIHx8IEhEUl9QUkVTQ0lFTlRfUFJFRkVU
Q0goaGRyKSkgew0KPiAtCQkJaWYgKHJlZmNvdW50X2NvdW50KCZoZHItPmJfbDFoZHIuYl9yZWZj
bnQpID09IDApIHsNCj4gKwkJCWlmICh6ZnNfcmVmY291bnRfY291bnQoJmhkci0+Yl9sMWhkci5i
X3JlZmNudCkgPT0gMCkgew0KPiAgCQkJCS8qIGxpbmsgcHJvdGVjdGVkIGJ5IGhhc2ggbG9jayAq
Lw0KPiAgCQkJCUFTU0VSVChtdWx0aWxpc3RfbGlua19hY3RpdmUoDQo+ICAJCQkJICAgICZoZHIt
PmJfbDFoZHIuYl9hcmNfbm9kZSkpOw0KPiBAQCAtNTQwNCw3ICs1NDExLDcgQEAgYXJjX2FjY2Vz
cyhhcmNfYnVmX2hkcl90ICpoZHIsIGttdXRleF90ICpoYXNoX2xvY2spDQo+ICANCj4gIAkJaWYg
KEhEUl9QUkVGRVRDSChoZHIpIHx8IEhEUl9QUkVTQ0lFTlRfUFJFRkVUQ0goaGRyKSkgew0KPiAg
CQkJbmV3X3N0YXRlID0gYXJjX21ydTsNCj4gLQkJCWlmIChyZWZjb3VudF9jb3VudCgmaGRyLT5i
X2wxaGRyLmJfcmVmY250KSA+IDApIHsNCj4gKwkJCWlmICh6ZnNfcmVmY291bnRfY291bnQoJmhk
ci0+Yl9sMWhkci5iX3JlZmNudCkgPiAwKSB7DQo+ICAJCQkJYXJjX2hkcl9jbGVhcl9mbGFncyho
ZHIsDQo+ICAJCQkJICAgIEFSQ19GTEFHX1BSRUZFVENIIHwNCj4gIAkJCQkgICAgQVJDX0ZMQUdf
UFJFU0NJRU5UX1BSRUZFVENIKTsNCj4gQEAgLTU2NzgsNyArNTY4NSw3IEBAIGFyY19yZWFkX2Rv
bmUoemlvX3QgKnppbykNCj4gIAkJQVNTRVJUM1AoaGRyLT5iX2wxaGRyLmJfcGFiZCwgIT0sIE5V
TEwpOw0KPiAgCX0NCj4gIA0KPiAtCUFTU0VSVChyZWZjb3VudF9pc196ZXJvKCZoZHItPmJfbDFo
ZHIuYl9yZWZjbnQpIHx8DQo+ICsJQVNTRVJUKHpmc19yZWZjb3VudF9pc196ZXJvKCZoZHItPmJf
bDFoZHIuYl9yZWZjbnQpIHx8DQo+ICAJICAgIGNhbGxiYWNrX2xpc3QgIT0gTlVMTCk7DQo+ICAN
Cj4gIAlpZiAobm9femlvX2Vycm9yKSB7DQo+IEBAIC01Njg5LDcgKzU2OTYsNyBAQCBhcmNfcmVh
ZF9kb25lKHppb190ICp6aW8pDQo+ICAJCQlhcmNfY2hhbmdlX3N0YXRlKGFyY19hbm9uLCBoZHIs
IGhhc2hfbG9jayk7DQo+ICAJCWlmIChIRFJfSU5fSEFTSF9UQUJMRShoZHIpKQ0KPiAgCQkJYnVm
X2hhc2hfcmVtb3ZlKGhkcik7DQo+IC0JCWZyZWVhYmxlID0gcmVmY291bnRfaXNfemVybygmaGRy
LT5iX2wxaGRyLmJfcmVmY250KTsNCj4gKwkJZnJlZWFibGUgPSB6ZnNfcmVmY291bnRfaXNfemVy
bygmaGRyLT5iX2wxaGRyLmJfcmVmY250KTsNCj4gIAl9DQo+ICANCj4gIAkvKg0KPiBAQCAtNTcw
OSw3ICs1NzE2LDcgQEAgYXJjX3JlYWRfZG9uZSh6aW9fdCAqemlvKQ0KPiAgCQkgKiBpbiB0aGUg
Y2FjaGUpLg0KPiAgCQkgKi8NCj4gIAkJQVNTRVJUM1AoaGRyLT5iX2wxaGRyLmJfc3RhdGUsID09
LCBhcmNfYW5vbik7DQo+IC0JCWZyZWVhYmxlID0gcmVmY291bnRfaXNfemVybygmaGRyLT5iX2wx
aGRyLmJfcmVmY250KTsNCj4gKwkJZnJlZWFibGUgPSB6ZnNfcmVmY291bnRfaXNfemVybygmaGRy
LT5iX2wxaGRyLmJfcmVmY250KTsNCj4gIAl9DQo+ICANCj4gIAkvKiBleGVjdXRlIGVhY2ggY2Fs
bGJhY2sgYW5kIGZyZWUgaXRzIHN0cnVjdHVyZSAqLw0KPiBAQCAtNTg3NSw3ICs1ODgyLDcgQEAg
dG9wOg0KPiAgCQkJQVNTRVJUKCh6aW9fZmxhZ3MgJiBaSU9fRkxBR19TUEVDVUxBVElWRSkgfHwN
Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYyA9PSAwIHx8IHJjICE9IEVOT0VOVCk7
DQo+ICAJCX0gZWxzZSBpZiAoKmFyY19mbGFncyAmIEFSQ19GTEFHX1BSRUZFVENIICYmDQo+IC0J
CSAgICByZWZjb3VudF9jb3VudCgmaGRyLT5iX2wxaGRyLmJfcmVmY250KSA9PSAwKSB7DQo+ICsJ
CSAgICB6ZnNfcmVmY291bnRfY291bnQoJmhkci0+Yl9sMWhkci5iX3JlZmNudCkgPT0gMCkgew0K
PiAgCQkJYXJjX2hkcl9zZXRfZmxhZ3MoaGRyLCBBUkNfRkxBR19QUkVGRVRDSCk7DQo+ICAJCX0N
Cj4gIAkJRFRSQUNFX1BST0JFMShhcmNfX2hpdCwgYXJjX2J1Zl9oZHJfdCAqLCBoZHIpOw0KPiBA
QCAtNTkzMyw3ICs1OTQwLDcgQEAgdG9wOg0KPiAgCQkJQVNTRVJUM1AoaGRyLT5iX2wxaGRyLmJf
cGFiZCwgPT0sIE5VTEwpOw0KPiAgCQkJQVNTRVJUKEdIT1NUX1NUQVRFKGhkci0+Yl9sMWhkci5i
X3N0YXRlKSk7DQo+ICAJCQlBU1NFUlQoIUhEUl9JT19JTl9QUk9HUkVTUyhoZHIpKTsNCj4gLQkJ
CUFTU0VSVChyZWZjb3VudF9pc196ZXJvKCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpKTsNCj4gKwkJ
CUFTU0VSVCh6ZnNfcmVmY291bnRfaXNfemVybygmaGRyLT5iX2wxaGRyLmJfcmVmY250KSk7DQo+
ICAJCQlBU1NFUlQzUChoZHItPmJfbDFoZHIuYl9idWYsID09LCBOVUxMKTsNCj4gIAkJCUFTU0VS
VDNQKGhkci0+Yl9sMWhkci5iX2ZyZWV6ZV9ja3N1bSwgPT0sIE5VTEwpOw0KPiAgDQo+IEBAIC02
MTU0LDEwICs2MTYxLDEwIEBAIGFyY19hZGRfcHJ1bmVfY2FsbGJhY2soYXJjX3BydW5lX2Z1bmNf
dCAqZnVuYywgdm9pZCAqcA0KPiAgCXAtPnBfcGZ1bmMgPSBmdW5jOw0KPiAgCXAtPnBfcHJpdmF0
ZSA9IHByaXZhdGU7DQo+ICAJbGlzdF9saW5rX2luaXQoJnAtPnBfbm9kZSk7DQo+IC0JcmVmY291
bnRfY3JlYXRlKCZwLT5wX3JlZmNudCk7DQo+ICsJemZzX3JlZmNvdW50X2NyZWF0ZSgmcC0+cF9y
ZWZjbnQpOw0KPiAgDQo+ICAJbXV0ZXhfZW50ZXIoJmFyY19wcnVuZV9tdHgpOw0KPiAtCXJlZmNv
dW50X2FkZCgmcC0+cF9yZWZjbnQsICZhcmNfcHJ1bmVfbGlzdCk7DQo+ICsJemZzX3JlZmNvdW50
X2FkZCgmcC0+cF9yZWZjbnQsICZhcmNfcHJ1bmVfbGlzdCk7DQo+ICAJbGlzdF9pbnNlcnRfaGVh
ZCgmYXJjX3BydW5lX2xpc3QsIHApOw0KPiAgCW11dGV4X2V4aXQoJmFyY19wcnVuZV9tdHgpOw0K
PiAgDQo+IEBAIC02MTcwLDE1ICs2MTc3LDE1IEBAIGFyY19yZW1vdmVfcHJ1bmVfY2FsbGJhY2so
YXJjX3BydW5lX3QgKnApDQo+ICAJYm9vbGVhbl90IHdhaXQgPSBCX0ZBTFNFOw0KPiAgCW11dGV4
X2VudGVyKCZhcmNfcHJ1bmVfbXR4KTsNCj4gIAlsaXN0X3JlbW92ZSgmYXJjX3BydW5lX2xpc3Qs
IHApOw0KPiAtCWlmIChyZWZjb3VudF9yZW1vdmUoJnAtPnBfcmVmY250LCAmYXJjX3BydW5lX2xp
c3QpID4gMCkNCj4gKwlpZiAoemZzX3JlZmNvdW50X3JlbW92ZSgmcC0+cF9yZWZjbnQsICZhcmNf
cHJ1bmVfbGlzdCkgPiAwKQ0KPiAgCQl3YWl0ID0gQl9UUlVFOw0KPiAgCW11dGV4X2V4aXQoJmFy
Y19wcnVuZV9tdHgpOw0KPiAgDQo+ICAJLyogd2FpdCBmb3IgYXJjX3BydW5lX3Rhc2sgdG8gZmlu
aXNoICovDQo+ICAJaWYgKHdhaXQpDQo+ICAJCXRhc2txX3dhaXQoYXJjX3BydW5lX3Rhc2txKTsN
Cj4gLQlBU1NFUlQwKHJlZmNvdW50X2NvdW50KCZwLT5wX3JlZmNudCkpOw0KPiAtCXJlZmNvdW50
X2Rlc3Ryb3koJnAtPnBfcmVmY250KTsNCj4gKwlBU1NFUlQwKHpmc19yZWZjb3VudF9jb3VudCgm
cC0+cF9yZWZjbnQpKTsNCj4gKwl6ZnNfcmVmY291bnRfZGVzdHJveSgmcC0+cF9yZWZjbnQpOw0K
PiAgCWttZW1fZnJlZShwLCBzaXplb2YgKCpwKSk7DQo+ICB9DQo+ICANCj4gQEAgLTYyMjEsNyAr
NjIyOCw3IEBAIGFyY19mcmVlZChzcGFfdCAqc3BhLCBjb25zdCBibGtwdHJfdCAqYnApDQo+ICAJ
ICogdGhpcyBoZHIsIHRoZW4gd2UgZG9uJ3QgZGVzdHJveSB0aGUgaGRyLg0KPiAgCSAqLw0KPiAg
CWlmICghSERSX0hBU19MMUhEUihoZHIpIHx8ICghSERSX0lPX0lOX1BST0dSRVNTKGhkcikgJiYN
Cj4gLQkgICAgcmVmY291bnRfaXNfemVybygmaGRyLT5iX2wxaGRyLmJfcmVmY250KSkpIHsNCj4g
KwkgICAgemZzX3JlZmNvdW50X2lzX3plcm8oJmhkci0+Yl9sMWhkci5iX3JlZmNudCkpKSB7DQo+
ICAJCWFyY19jaGFuZ2Vfc3RhdGUoYXJjX2Fub24sIGhkciwgaGFzaF9sb2NrKTsNCj4gIAkJYXJj
X2hkcl9kZXN0cm95KGhkcik7DQo+ICAJCW11dGV4X2V4aXQoaGFzaF9sb2NrKTsNCj4gQEAgLTYy
NjQsNyArNjI3MSw3IEBAIGFyY19yZWxlYXNlKGFyY19idWZfdCAqYnVmLCB2b2lkICp0YWcpDQo+
ICAJCUFTU0VSVCghSERSX0hBU19MMkhEUihoZHIpKTsNCj4gIAkJQVNTRVJUKEhEUl9FTVBUWSho
ZHIpKTsNCj4gIAkJQVNTRVJUM1UoaGRyLT5iX2wxaGRyLmJfYnVmY250LCA9PSwgMSk7DQo+IC0J
CUFTU0VSVDNTKHJlZmNvdW50X2NvdW50KCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpLCA9PSwgMSk7
DQo+ICsJCUFTU0VSVDNTKHpmc19yZWZjb3VudF9jb3VudCgmaGRyLT5iX2wxaGRyLmJfcmVmY250
KSwgPT0sIDEpOw0KPiAgCQlBU1NFUlQoIWxpc3RfbGlua19hY3RpdmUoJmhkci0+Yl9sMWhkci5i
X2FyY19ub2RlKSk7DQo+ICANCj4gIAkJaGRyLT5iX2wxaGRyLmJfYXJjX2FjY2VzcyA9IDA7DQo+
IEBAIC02MjkyLDcgKzYyOTksNyBAQCBhcmNfcmVsZWFzZShhcmNfYnVmX3QgKmJ1Ziwgdm9pZCAq
dGFnKQ0KPiAgCUFTU0VSVDNQKHN0YXRlLCAhPSwgYXJjX2Fub24pOw0KPiAgDQo+ICAJLyogdGhp
cyBidWZmZXIgaXMgbm90IG9uIGFueSBsaXN0ICovDQo+IC0JQVNTRVJUM1MocmVmY291bnRfY291
bnQoJmhkci0+Yl9sMWhkci5iX3JlZmNudCksID4sIDApOw0KPiArCUFTU0VSVDNTKHpmc19yZWZj
b3VudF9jb3VudCgmaGRyLT5iX2wxaGRyLmJfcmVmY250KSwgPiwgMCk7DQo+ICANCj4gIAlpZiAo
SERSX0hBU19MMkhEUihoZHIpKSB7DQo+ICAJCW11dGV4X2VudGVyKCZoZHItPmJfbDJoZHIuYl9k
ZXYtPmwyYWRfbXR4KTsNCj4gQEAgLTYzODQsMTIgKzYzOTEsMTMgQEAgYXJjX3JlbGVhc2UoYXJj
X2J1Zl90ICpidWYsIHZvaWQgKnRhZykNCj4gIAkJQVNTRVJUM1AoaGRyLT5iX2wxaGRyLmJfcGFi
ZCwgIT0sIE5VTEwpOw0KPiAgCQlBU1NFUlQzUChzdGF0ZSwgIT0sIGFyY19sMmNfb25seSk7DQo+
ICANCj4gLQkJKHZvaWQpIHJlZmNvdW50X3JlbW92ZV9tYW55KCZzdGF0ZS0+YXJjc19zaXplLA0K
PiArCQkodm9pZCkgemZzX3JlZmNvdW50X3JlbW92ZV9tYW55KCZzdGF0ZS0+YXJjc19zaXplLA0K
PiAgCQkgICAgYXJjX2J1Zl9zaXplKGJ1ZiksIGJ1Zik7DQo+ICANCj4gLQkJaWYgKHJlZmNvdW50
X2lzX3plcm8oJmhkci0+Yl9sMWhkci5iX3JlZmNudCkpIHsNCj4gKwkJaWYgKHpmc19yZWZjb3Vu
dF9pc196ZXJvKCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpKSB7DQo+ICAJCQlBU1NFUlQzUChzdGF0
ZSwgIT0sIGFyY19sMmNfb25seSk7DQo+IC0JCQkodm9pZCkgcmVmY291bnRfcmVtb3ZlX21hbnko
JnN0YXRlLT5hcmNzX2VzaXplW3R5cGVdLA0KPiArCQkJKHZvaWQpIHpmc19yZWZjb3VudF9yZW1v
dmVfbWFueSgNCj4gKwkJCSAgICAmc3RhdGUtPmFyY3NfZXNpemVbdHlwZV0sDQo+ICAJCQkgICAg
YXJjX2J1Zl9zaXplKGJ1ZiksIGJ1Zik7DQo+ICAJCX0NCj4gIA0KPiBAQCAtNjQwOCwyMSArNjQx
NiwyMSBAQCBhcmNfcmVsZWFzZShhcmNfYnVmX3QgKmJ1Ziwgdm9pZCAqdGFnKQ0KPiAgCQluaGRy
ID0gYXJjX2hkcl9hbGxvYyhzcGEsIHBzaXplLCBsc2l6ZSwgY29tcHJlc3MsIHR5cGUpOw0KPiAg
CQlBU1NFUlQzUChuaGRyLT5iX2wxaGRyLmJfYnVmLCA9PSwgTlVMTCk7DQo+ICAJCUFTU0VSVDAo
bmhkci0+Yl9sMWhkci5iX2J1ZmNudCk7DQo+IC0JCUFTU0VSVDAocmVmY291bnRfY291bnQoJm5o
ZHItPmJfbDFoZHIuYl9yZWZjbnQpKTsNCj4gKwkJQVNTRVJUMCh6ZnNfcmVmY291bnRfY291bnQo
Jm5oZHItPmJfbDFoZHIuYl9yZWZjbnQpKTsNCj4gIAkJVkVSSUZZM1Uobmhkci0+Yl90eXBlLCA9
PSwgdHlwZSk7DQo+ICAJCUFTU0VSVCghSERSX1NIQVJFRF9EQVRBKG5oZHIpKTsNCj4gIA0KPiAg
CQluaGRyLT5iX2wxaGRyLmJfYnVmID0gYnVmOw0KPiAgCQluaGRyLT5iX2wxaGRyLmJfYnVmY250
ID0gMTsNCj4gLQkJKHZvaWQpIHJlZmNvdW50X2FkZCgmbmhkci0+Yl9sMWhkci5iX3JlZmNudCwg
dGFnKTsNCj4gKwkJKHZvaWQpIHpmc19yZWZjb3VudF9hZGQoJm5oZHItPmJfbDFoZHIuYl9yZWZj
bnQsIHRhZyk7DQo+ICAJCWJ1Zi0+Yl9oZHIgPSBuaGRyOw0KPiAgDQo+ICAJCW11dGV4X2V4aXQo
JmJ1Zi0+Yl9ldmljdF9sb2NrKTsNCj4gLQkJKHZvaWQpIHJlZmNvdW50X2FkZF9tYW55KCZhcmNf
YW5vbi0+YXJjc19zaXplLA0KPiArCQkodm9pZCkgemZzX3JlZmNvdW50X2FkZF9tYW55KCZhcmNf
YW5vbi0+YXJjc19zaXplLA0KPiAgCQkgICAgYXJjX2J1Zl9zaXplKGJ1ZiksIGJ1Zik7DQo+ICAJ
fSBlbHNlIHsNCj4gIAkJbXV0ZXhfZXhpdCgmYnVmLT5iX2V2aWN0X2xvY2spOw0KPiAtCQlBU1NF
UlQocmVmY291bnRfY291bnQoJmhkci0+Yl9sMWhkci5iX3JlZmNudCkgPT0gMSk7DQo+ICsJCUFT
U0VSVCh6ZnNfcmVmY291bnRfY291bnQoJmhkci0+Yl9sMWhkci5iX3JlZmNudCkgPT0gMSk7DQo+
ICAJCS8qIHByb3RlY3RlZCBieSBoYXNoIGxvY2ssIG9yIGhkciBpcyBvbiBhcmNfYW5vbiAqLw0K
PiAgCQlBU1NFUlQoIW11bHRpbGlzdF9saW5rX2FjdGl2ZSgmaGRyLT5iX2wxaGRyLmJfYXJjX25v
ZGUpKTsNCj4gIAkJQVNTRVJUKCFIRFJfSU9fSU5fUFJPR1JFU1MoaGRyKSk7DQo+IEBAIC02NDU0
LDcgKzY0NjIsNyBAQCBhcmNfcmVmZXJlbmNlZChhcmNfYnVmX3QgKmJ1ZikNCj4gIAlpbnQgcmVm
ZXJlbmNlZDsNCj4gIA0KPiAgCW11dGV4X2VudGVyKCZidWYtPmJfZXZpY3RfbG9jayk7DQo+IC0J
cmVmZXJlbmNlZCA9IChyZWZjb3VudF9jb3VudCgmYnVmLT5iX2hkci0+Yl9sMWhkci5iX3JlZmNu
dCkpOw0KPiArCXJlZmVyZW5jZWQgPSAoemZzX3JlZmNvdW50X2NvdW50KCZidWYtPmJfaGRyLT5i
X2wxaGRyLmJfcmVmY250KSk7DQo+ICAJbXV0ZXhfZXhpdCgmYnVmLT5iX2V2aWN0X2xvY2spOw0K
PiAgCXJldHVybiAocmVmZXJlbmNlZCk7DQo+ICB9DQo+IEBAIC02NDY5LDcgKzY0NzcsNyBAQCBh
cmNfd3JpdGVfcmVhZHkoemlvX3QgKnppbykNCj4gIAl1aW50NjRfdCBwc2l6ZSA9IEJQX0lTX0hP
TEUoemlvLT5pb19icCkgPyAwIDogQlBfR0VUX1BTSVpFKHppby0+aW9fYnApOw0KPiAgDQo+ICAJ
QVNTRVJUKEhEUl9IQVNfTDFIRFIoaGRyKSk7DQo+IC0JQVNTRVJUKCFyZWZjb3VudF9pc196ZXJv
KCZidWYtPmJfaGRyLT5iX2wxaGRyLmJfcmVmY250KSk7DQo+ICsJQVNTRVJUKCF6ZnNfcmVmY291
bnRfaXNfemVybygmYnVmLT5iX2hkci0+Yl9sMWhkci5iX3JlZmNudCkpOw0KPiAgCUFTU0VSVCho
ZHItPmJfbDFoZHIuYl9idWZjbnQgPiAwKTsNCj4gIA0KPiAgCS8qDQo+IEBAIC02NjI0LDcgKzY2
MzIsNyBAQCBhcmNfd3JpdGVfZG9uZSh6aW9fdCAqemlvKQ0KPiAgCQkJCWlmICghQlBfRVFVQUwo
Jnppby0+aW9fYnBfb3JpZywgemlvLT5pb19icCkpDQo+ICAJCQkJCXBhbmljKCJiYWQgb3Zlcndy
aXRlLCBoZHI9JXAgZXhpc3RzPSVwIiwNCj4gIAkJCQkJICAgICh2b2lkICopaGRyLCAodm9pZCAq
KWV4aXN0cyk7DQo+IC0JCQkJQVNTRVJUKHJlZmNvdW50X2lzX3plcm8oDQo+ICsJCQkJQVNTRVJU
KHpmc19yZWZjb3VudF9pc196ZXJvKA0KPiAgCQkJCSAgICAmZXhpc3RzLT5iX2wxaGRyLmJfcmVm
Y250KSk7DQo+ICAJCQkJYXJjX2NoYW5nZV9zdGF0ZShhcmNfYW5vbiwgZXhpc3RzLCBoYXNoX2xv
Y2spOw0KPiAgCQkJCW11dGV4X2V4aXQoaGFzaF9sb2NrKTsNCj4gQEAgLTY2NTQsNyArNjY2Miw3
IEBAIGFyY193cml0ZV9kb25lKHppb190ICp6aW8pDQo+ICAJCWFyY19oZHJfY2xlYXJfZmxhZ3Mo
aGRyLCBBUkNfRkxBR19JT19JTl9QUk9HUkVTUyk7DQo+ICAJfQ0KPiAgDQo+IC0JQVNTRVJUKCFy
ZWZjb3VudF9pc196ZXJvKCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpKTsNCj4gKwlBU1NFUlQoIXpm
c19yZWZjb3VudF9pc196ZXJvKCZoZHItPmJfbDFoZHIuYl9yZWZjbnQpKTsNCj4gIAljYWxsYmFj
ay0+YXdjYl9kb25lKHppbywgYnVmLCBjYWxsYmFjay0+YXdjYl9wcml2YXRlKTsNCj4gIA0KPiAg
CWFiZF9wdXQoemlvLT5pb19hYmQpOw0KPiBAQCAtNjgwMCw3ICs2ODA4LDcgQEAgYXJjX3RlbXBy
ZXNlcnZlX3NwYWNlKHNwYV90ICpzcGEsIHVpbnQ2NF90IHJlc2VydmUsIHVpDQo+ICAJLyogYXNz
ZXJ0IHRoYXQgaXQgaGFzIG5vdCB3cmFwcGVkIGFyb3VuZCAqLw0KPiAgCUFTU0VSVDNTKGF0b21p
Y19hZGRfNjRfbnYoJmFyY19sb2FuZWRfYnl0ZXMsIDApLCA+PSwgMCk7DQo+ICANCj4gLQlhbm9u
X3NpemUgPSBNQVgoKGludDY0X3QpKHJlZmNvdW50X2NvdW50KCZhcmNfYW5vbi0+YXJjc19zaXpl
KSAtDQo+ICsJYW5vbl9zaXplID0gTUFYKChpbnQ2NF90KSh6ZnNfcmVmY291bnRfY291bnQoJmFy
Y19hbm9uLT5hcmNzX3NpemUpIC0NCj4gIAkgICAgYXJjX2xvYW5lZF9ieXRlcyksIDApOw0KPiAg
DQo+ICAJLyoNCj4gQEAgLTY4MzUsOSArNjg0MywxMCBAQCBhcmNfdGVtcHJlc2VydmVfc3BhY2Uo
c3BhX3QgKnNwYSwgdWludDY0X3QgcmVzZXJ2ZSwgdWkNCj4gIAkgICAgYW5vbl9zaXplID4gYXJj
X2MgKiB6ZnNfYXJjX2Fub25fbGltaXRfcGVyY2VudCAvIDEwMCAmJg0KPiAgCSAgICBzcGFfZGly
dHlfYW5vbiA+IGFub25fc2l6ZSAqIHpmc19hcmNfcG9vbF9kaXJ0eV9wZXJjZW50IC8gMTAwKSB7
DQo+ICAJCXVpbnQ2NF90IG1ldGFfZXNpemUgPQ0KPiAtCQkgICAgcmVmY291bnRfY291bnQoJmFy
Y19hbm9uLT5hcmNzX2VzaXplW0FSQ19CVUZDX01FVEFEQVRBXSk7DQo+ICsJCSAgICB6ZnNfcmVm
Y291bnRfY291bnQoDQo+ICsJCSAgICAmYXJjX2Fub24tPmFyY3NfZXNpemVbQVJDX0JVRkNfTUVU
QURBVEFdKTsNCj4gIAkJdWludDY0X3QgZGF0YV9lc2l6ZSA9DQo+IC0JCSAgICByZWZjb3VudF9j
b3VudCgmYXJjX2Fub24tPmFyY3NfZXNpemVbQVJDX0JVRkNfREFUQV0pOw0KPiArCQkgICAgemZz
X3JlZmNvdW50X2NvdW50KCZhcmNfYW5vbi0+YXJjc19lc2l6ZVtBUkNfQlVGQ19EQVRBXSk7DQo+
ICAJCWRwcmludGYoImZhaWxpbmcsIGFyY190ZW1wcmVzZXJ2ZT0lbGx1SyBhbm9uX21ldGE9JWxs
dUsgIg0KPiAgCQkgICAgImFub25fZGF0YT0lbGx1SyB0ZW1wcmVzZXJ2ZT0lbGx1SyBhcmNfYz0l
bGx1S1xuIiwNCj4gIAkJICAgIGFyY190ZW1wcmVzZXJ2ZSA+PiAxMCwgbWV0YV9lc2l6ZSA+PiAx
MCwNCj4gQEAgLTY4NTIsMTEgKzY4NjEsMTEgQEAgc3RhdGljIHZvaWQNCj4gIGFyY19rc3RhdF91
cGRhdGVfc3RhdGUoYXJjX3N0YXRlX3QgKnN0YXRlLCBrc3RhdF9uYW1lZF90ICpzaXplLA0KPiAg
ICAgIGtzdGF0X25hbWVkX3QgKmV2aWN0X2RhdGEsIGtzdGF0X25hbWVkX3QgKmV2aWN0X21ldGFk
YXRhKQ0KPiAgew0KPiAtCXNpemUtPnZhbHVlLnVpNjQgPSByZWZjb3VudF9jb3VudCgmc3RhdGUt
PmFyY3Nfc2l6ZSk7DQo+ICsJc2l6ZS0+dmFsdWUudWk2NCA9IHpmc19yZWZjb3VudF9jb3VudCgm
c3RhdGUtPmFyY3Nfc2l6ZSk7DQo+ICAJZXZpY3RfZGF0YS0+dmFsdWUudWk2NCA9DQo+IC0JICAg
IHJlZmNvdW50X2NvdW50KCZzdGF0ZS0+YXJjc19lc2l6ZVtBUkNfQlVGQ19EQVRBXSk7DQo+ICsJ
ICAgIHpmc19yZWZjb3VudF9jb3VudCgmc3RhdGUtPmFyY3NfZXNpemVbQVJDX0JVRkNfREFUQV0p
Ow0KPiAgCWV2aWN0X21ldGFkYXRhLT52YWx1ZS51aTY0ID0NCj4gLQkgICAgcmVmY291bnRfY291
bnQoJnN0YXRlLT5hcmNzX2VzaXplW0FSQ19CVUZDX01FVEFEQVRBXSk7DQo+ICsJICAgIHpmc19y
ZWZjb3VudF9jb3VudCgmc3RhdGUtPmFyY3NfZXNpemVbQVJDX0JVRkNfTUVUQURBVEFdKTsNCj4g
IH0NCj4gIA0KPiAgc3RhdGljIGludA0KPiBAQCAtNzAyNSwyNSArNzAzNCwyNSBAQCBhcmNfc3Rh
dGVfaW5pdCh2b2lkKQ0KPiAgCSAgICBvZmZzZXRvZihhcmNfYnVmX2hkcl90LCBiX2wxaGRyLmJf
YXJjX25vZGUpLA0KPiAgCSAgICBhcmNfc3RhdGVfbXVsdGlsaXN0X2luZGV4X2Z1bmMpOw0KPiAg
DQo+IC0JcmVmY291bnRfY3JlYXRlKCZhcmNfYW5vbi0+YXJjc19lc2l6ZVtBUkNfQlVGQ19NRVRB
REFUQV0pOw0KPiAtCXJlZmNvdW50X2NyZWF0ZSgmYXJjX2Fub24tPmFyY3NfZXNpemVbQVJDX0JV
RkNfREFUQV0pOw0KPiAtCXJlZmNvdW50X2NyZWF0ZSgmYXJjX21ydS0+YXJjc19lc2l6ZVtBUkNf
QlVGQ19NRVRBREFUQV0pOw0KPiAtCXJlZmNvdW50X2NyZWF0ZSgmYXJjX21ydS0+YXJjc19lc2l6
ZVtBUkNfQlVGQ19EQVRBXSk7DQo+IC0JcmVmY291bnRfY3JlYXRlKCZhcmNfbXJ1X2dob3N0LT5h
cmNzX2VzaXplW0FSQ19CVUZDX01FVEFEQVRBXSk7DQo+IC0JcmVmY291bnRfY3JlYXRlKCZhcmNf
bXJ1X2dob3N0LT5hcmNzX2VzaXplW0FSQ19CVUZDX0RBVEFdKTsNCj4gLQlyZWZjb3VudF9jcmVh
dGUoJmFyY19tZnUtPmFyY3NfZXNpemVbQVJDX0JVRkNfTUVUQURBVEFdKTsNCj4gLQlyZWZjb3Vu
dF9jcmVhdGUoJmFyY19tZnUtPmFyY3NfZXNpemVbQVJDX0JVRkNfREFUQV0pOw0KPiAtCXJlZmNv
dW50X2NyZWF0ZSgmYXJjX21mdV9naG9zdC0+YXJjc19lc2l6ZVtBUkNfQlVGQ19NRVRBREFUQV0p
Ow0KPiAtCXJlZmNvdW50X2NyZWF0ZSgmYXJjX21mdV9naG9zdC0+YXJjc19lc2l6ZVtBUkNfQlVG
Q19EQVRBXSk7DQo+IC0JcmVmY291bnRfY3JlYXRlKCZhcmNfbDJjX29ubHktPmFyY3NfZXNpemVb
QVJDX0JVRkNfTUVUQURBVEFdKTsNCj4gLQlyZWZjb3VudF9jcmVhdGUoJmFyY19sMmNfb25seS0+
YXJjc19lc2l6ZVtBUkNfQlVGQ19EQVRBXSk7DQo+ICsJemZzX3JlZmNvdW50X2NyZWF0ZSgmYXJj
X2Fub24tPmFyY3NfZXNpemVbQVJDX0JVRkNfTUVUQURBVEFdKTsNCj4gKwl6ZnNfcmVmY291bnRf
Y3JlYXRlKCZhcmNfYW5vbi0+YXJjc19lc2l6ZVtBUkNfQlVGQ19EQVRBXSk7DQo+ICsJemZzX3Jl
ZmNvdW50X2NyZWF0ZSgmYXJjX21ydS0+YXJjc19lc2l6ZVtBUkNfQlVGQ19NRVRBREFUQV0pOw0K
PiArCXpmc19yZWZjb3VudF9jcmVhdGUoJmFyY19tcnUtPmFyY3NfZXNpemVbQVJDX0JVRkNfREFU
QV0pOw0KPiArCXpmc19yZWZjb3VudF9jcmVhdGUoJmFyY19tcnVfZ2hvc3QtPmFyY3NfZXNpemVb
QVJDX0JVRkNfTUVUQURBVEFdKTsNCj4gKwl6ZnNfcmVmY291bnRfY3JlYXRlKCZhcmNfbXJ1X2do
b3N0LT5hcmNzX2VzaXplW0FSQ19CVUZDX0RBVEFdKTsNCj4gKwl6ZnNfcmVmY291bnRfY3JlYXRl
KCZhcmNfbWZ1LT5hcmNzX2VzaXplW0FSQ19CVUZDX01FVEFEQVRBXSk7DQo+ICsJemZzX3JlZmNv
dW50X2NyZWF0ZSgmYXJjX21mdS0+YXJjc19lc2l6ZVtBUkNfQlVGQ19EQVRBXSk7DQo+ICsJemZz
X3JlZmNvdW50X2NyZWF0ZSgmYXJjX21mdV9naG9zdC0+YXJjc19lc2l6ZVtBUkNfQlVGQ19NRVRB
REFUQV0pOw0KPiArCXpmc19yZWZjb3VudF9jcmVhdGUoJmFyY19tZnVfZ2hvc3QtPmFyY3NfZXNp
emVbQVJDX0JVRkNfREFUQV0pOw0KPiArCXpmc19yZWZjb3VudF9jcmVhdGUoJmFyY19sMmNfb25s
eS0+YXJjc19lc2l6ZVtBUkNfQlVGQ19NRVRBREFUQV0pOw0KPiArCXpmc19yZWZjb3VudF9jcmVh
dGUoJmFyY19sMmNfb25seS0+YXJjc19lc2l6ZVtBUkNfQlVGQ19EQVRBXSk7DQo+ICANCj4gLQly
ZWZjb3VudF9jcmVhdGUoJmFyY19hbm9uLT5hcmNzX3NpemUpOw0KPiAtCXJlZmNvdW50X2NyZWF0
ZSgmYXJjX21ydS0+YXJjc19zaXplKTsNCj4gLQlyZWZjb3VudF9jcmVhdGUoJmFyY19tcnVfZ2hv
c3QtPmFyY3Nfc2l6ZSk7DQo+IC0JcmVmY291bnRfY3JlYXRlKCZhcmNfbWZ1LT5hcmNzX3NpemUp
Ow0KPiAtCXJlZmNvdW50X2NyZWF0ZSgmYXJjX21mdV9naG9zdC0+YXJjc19zaXplKTsNCj4gLQly
ZWZjb3VudF9jcmVhdGUoJmFyY19sMmNfb25seS0+YXJjc19zaXplKTsNCj4gKwl6ZnNfcmVmY291
bnRfY3JlYXRlKCZhcmNfYW5vbi0+YXJjc19zaXplKTsNCj4gKwl6ZnNfcmVmY291bnRfY3JlYXRl
KCZhcmNfbXJ1LT5hcmNzX3NpemUpOw0KPiArCXpmc19yZWZjb3VudF9jcmVhdGUoJmFyY19tcnVf
Z2hvc3QtPmFyY3Nfc2l6ZSk7DQo+ICsJemZzX3JlZmNvdW50X2NyZWF0ZSgmYXJjX21mdS0+YXJj
c19zaXplKTsNCj4gKwl6ZnNfcmVmY291bnRfY3JlYXRlKCZhcmNfbWZ1X2dob3N0LT5hcmNzX3Np
emUpOw0KPiArCXpmc19yZWZjb3VudF9jcmVhdGUoJmFyY19sMmNfb25seS0+YXJjc19zaXplKTsN
Cj4gIA0KPiAgCWFnZ3N1bV9pbml0KCZhcmNfbWV0YV91c2VkLCAwKTsNCj4gIAlhZ2dzdW1faW5p
dCgmYXJjX3NpemUsIDApOw0KPiBAQCAtNzA1OSwyNSArNzA2OCwyNSBAQCBhcmNfc3RhdGVfaW5p
dCh2b2lkKQ0KPiAgc3RhdGljIHZvaWQNCj4gIGFyY19zdGF0ZV9maW5pKHZvaWQpDQo+ICB7DQo+
IC0JcmVmY291bnRfZGVzdHJveSgmYXJjX2Fub24tPmFyY3NfZXNpemVbQVJDX0JVRkNfTUVUQURB
VEFdKTsNCj4gLQlyZWZjb3VudF9kZXN0cm95KCZhcmNfYW5vbi0+YXJjc19lc2l6ZVtBUkNfQlVG
Q19EQVRBXSk7DQo+IC0JcmVmY291bnRfZGVzdHJveSgmYXJjX21ydS0+YXJjc19lc2l6ZVtBUkNf
QlVGQ19NRVRBREFUQV0pOw0KPiAtCXJlZmNvdW50X2Rlc3Ryb3koJmFyY19tcnUtPmFyY3NfZXNp
emVbQVJDX0JVRkNfREFUQV0pOw0KPiAtCXJlZmNvdW50X2Rlc3Ryb3koJmFyY19tcnVfZ2hvc3Qt
PmFyY3NfZXNpemVbQVJDX0JVRkNfTUVUQURBVEFdKTsNCj4gLQlyZWZjb3VudF9kZXN0cm95KCZh
cmNfbXJ1X2dob3N0LT5hcmNzX2VzaXplW0FSQ19CVUZDX0RBVEFdKTsNCj4gLQlyZWZjb3VudF9k
ZXN0cm95KCZhcmNfbWZ1LT5hcmNzX2VzaXplW0FSQ19CVUZDX01FVEFEQVRBXSk7DQo+IC0JcmVm
Y291bnRfZGVzdHJveSgmYXJjX21mdS0+YXJjc19lc2l6ZVtBUkNfQlVGQ19EQVRBXSk7DQo+IC0J
cmVmY291bnRfZGVzdHJveSgmYXJjX21mdV9naG9zdC0+YXJjc19lc2l6ZVtBUkNfQlVGQ19NRVRB
REFUQV0pOw0KPiAtCXJlZmNvdW50X2Rlc3Ryb3koJmFyY19tZnVfZ2hvc3QtPmFyY3NfZXNpemVb
QVJDX0JVRkNfREFUQV0pOw0KPiAtCXJlZmNvdW50X2Rlc3Ryb3koJmFyY19sMmNfb25seS0+YXJj
c19lc2l6ZVtBUkNfQlVGQ19NRVRBREFUQV0pOw0KPiAtCXJlZmNvdW50X2Rlc3Ryb3koJmFyY19s
MmNfb25seS0+YXJjc19lc2l6ZVtBUkNfQlVGQ19EQVRBXSk7DQo+ICsJemZzX3JlZmNvdW50X2Rl
c3Ryb3koJmFyY19hbm9uLT5hcmNzX2VzaXplW0FSQ19CVUZDX01FVEFEQVRBXSk7DQo+ICsJemZz
X3JlZmNvdW50X2Rlc3Ryb3koJmFyY19hbm9uLT5hcmNzX2VzaXplW0FSQ19CVUZDX0RBVEFdKTsN
Cj4gKwl6ZnNfcmVmY291bnRfZGVzdHJveSgmYXJjX21ydS0+YXJjc19lc2l6ZVtBUkNfQlVGQ19N
RVRBREFUQV0pOw0KPiArCXpmc19yZWZjb3VudF9kZXN0cm95KCZhcmNfbXJ1LT5hcmNzX2VzaXpl
W0FSQ19CVUZDX0RBVEFdKTsNCj4gKwl6ZnNfcmVmY291bnRfZGVzdHJveSgmYXJjX21ydV9naG9z
dC0+YXJjc19lc2l6ZVtBUkNfQlVGQ19NRVRBREFUQV0pOw0KPiArCXpmc19yZWZjb3VudF9kZXN0
cm95KCZhcmNfbXJ1X2dob3N0LT5hcmNzX2VzaXplW0FSQ19CVUZDX0RBVEFdKTsNCj4gKwl6ZnNf
cmVmY291bnRfZGVzdHJveSgmYXJjX21mdS0+YXJjc19lc2l6ZVtBUkNfQlVGQ19NRVRBREFUQV0p
Ow0KPiArCXpmc19yZWZjb3VudF9kZXN0cm95KCZhcmNfbWZ1LT5hcmNzX2VzaXplW0FSQ19CVUZD
X0RBVEFdKTsNCj4gKwl6ZnNfcmVmY291bnRfZGVzdHJveSgmYXJjX21mdV9naG9zdC0+YXJjc19l
c2l6ZVtBUkNfQlVGQ19NRVRBREFUQV0pOw0KPiArCXpmc19yZWZjb3VudF9kZXN0cm95KCZhcmNf
bWZ1X2dob3N0LT5hcmNzX2VzaXplW0FSQ19CVUZDX0RBVEFdKTsNCj4gKwl6ZnNfcmVmY291bnRf
ZGVzdHJveSgmYXJjX2wyY19vbmx5LT5hcmNzX2VzaXplW0FSQ19CVUZDX01FVEFEQVRBXSk7DQo+
ICsJemZzX3JlZmNvdW50X2Rlc3Ryb3koJmFyY19sMmNfb25seS0+YXJjc19lc2l6ZVtBUkNfQlVG
Q19EQVRBXSk7DQo+ICANCj4gLQlyZWZjb3VudF9kZXN0cm95KCZhcmNfYW5vbi0+YXJjc19zaXpl
KTsNCj4gLQlyZWZjb3VudF9kZXN0cm95KCZhcmNfbXJ1LT5hcmNzX3NpemUpOw0KPiAtCXJlZmNv
dW50X2Rlc3Ryb3koJmFyY19tcnVfZ2hvc3QtPmFyY3Nfc2l6ZSk7DQo+IC0JcmVmY291bnRfZGVz
dHJveSgmYXJjX21mdS0+YXJjc19zaXplKTsNCj4gLQlyZWZjb3VudF9kZXN0cm95KCZhcmNfbWZ1
X2dob3N0LT5hcmNzX3NpemUpOw0KPiAtCXJlZmNvdW50X2Rlc3Ryb3koJmFyY19sMmNfb25seS0+
YXJjc19zaXplKTsNCj4gKwl6ZnNfcmVmY291bnRfZGVzdHJveSgmYXJjX2Fub24tPmFyY3Nfc2l6
ZSk7DQo+ICsJemZzX3JlZmNvdW50X2Rlc3Ryb3koJmFyY19tcnUtPmFyY3Nfc2l6ZSk7DQo+ICsJ
emZzX3JlZmNvdW50X2Rlc3Ryb3koJmFyY19tcnVfZ2hvc3QtPmFyY3Nfc2l6ZSk7DQo+ICsJemZz
X3JlZmNvdW50X2Rlc3Ryb3koJmFyY19tZnUtPmFyY3Nfc2l6ZSk7DQo+ICsJemZzX3JlZmNvdW50
X2Rlc3Ryb3koJmFyY19tZnVfZ2hvc3QtPmFyY3Nfc2l6ZSk7DQo+ICsJemZzX3JlZmNvdW50X2Rl
c3Ryb3koJmFyY19sMmNfb25seS0+YXJjc19zaXplKTsNCj4gIA0KPiAgCW11bHRpbGlzdF9kZXN0
cm95KGFyY19tcnUtPmFyY3NfbGlzdFtBUkNfQlVGQ19NRVRBREFUQV0pOw0KPiAgCW11bHRpbGlz
dF9kZXN0cm95KGFyY19tcnVfZ2hvc3QtPmFyY3NfbGlzdFtBUkNfQlVGQ19NRVRBREFUQV0pOw0K
PiBAQCAtNzM1OSw4ICs3MzY4LDggQEAgYXJjX2Zpbmkodm9pZCkNCj4gIAltdXRleF9lbnRlcigm
YXJjX3BydW5lX210eCk7DQo+ICAJd2hpbGUgKChwID0gbGlzdF9oZWFkKCZhcmNfcHJ1bmVfbGlz
dCkpICE9IE5VTEwpIHsNCj4gIAkJbGlzdF9yZW1vdmUoJmFyY19wcnVuZV9saXN0LCBwKTsNCj4g
LQkJcmVmY291bnRfcmVtb3ZlKCZwLT5wX3JlZmNudCwgJmFyY19wcnVuZV9saXN0KTsNCj4gLQkJ
cmVmY291bnRfZGVzdHJveSgmcC0+cF9yZWZjbnQpOw0KPiArCQl6ZnNfcmVmY291bnRfcmVtb3Zl
KCZwLT5wX3JlZmNudCwgJmFyY19wcnVuZV9saXN0KTsNCj4gKwkJemZzX3JlZmNvdW50X2Rlc3Ry
b3koJnAtPnBfcmVmY250KTsNCj4gIAkJa21lbV9mcmVlKHAsIHNpemVvZiAoKnApKTsNCj4gIAl9
DQo+ICAJbXV0ZXhfZXhpdCgmYXJjX3BydW5lX210eCk7DQo+IEBAIC03Nzg3LDcgKzc3OTYsNyBA
QCB0b3A6DQo+ICAJCQlBUkNTVEFUX0lOQ1IoYXJjc3RhdF9sMl9sc2l6ZSwgLUhEUl9HRVRfTFNJ
WkUoaGRyKSk7DQo+ICANCj4gIAkJCWJ5dGVzX2Ryb3BwZWQgKz0gYXJjX2hkcl9zaXplKGhkcik7
DQo+IC0JCQkodm9pZCkgcmVmY291bnRfcmVtb3ZlX21hbnkoJmRldi0+bDJhZF9hbGxvYywNCj4g
KwkJCSh2b2lkKSB6ZnNfcmVmY291bnRfcmVtb3ZlX21hbnkoJmRldi0+bDJhZF9hbGxvYywNCj4g
IAkJCSAgICBhcmNfaGRyX3NpemUoaGRyKSwgaGRyKTsNCj4gIAkJfQ0KPiAgDQo+IEBAIC04MjA1
LDcgKzgyMTQsOCBAQCBsMmFyY193cml0ZV9idWZmZXJzKHNwYV90ICpzcGEsIGwyYXJjX2Rldl90
ICpkZXYsIHVpbnQNCj4gIAkJCWxpc3RfaW5zZXJ0X2hlYWQoJmRldi0+bDJhZF9idWZsaXN0LCBo
ZHIpOw0KPiAgCQkJbXV0ZXhfZXhpdCgmZGV2LT5sMmFkX210eCk7DQo+ICANCj4gLQkJCSh2b2lk
KSByZWZjb3VudF9hZGRfbWFueSgmZGV2LT5sMmFkX2FsbG9jLCBwc2l6ZSwgaGRyKTsNCj4gKwkJ
CSh2b2lkKSB6ZnNfcmVmY291bnRfYWRkX21hbnkoJmRldi0+bDJhZF9hbGxvYywgcHNpemUsDQo+
ICsJCQkgICAgaGRyKTsNCj4gIA0KPiAgCQkJLyoNCj4gIAkJCSAqIE5vcm1hbGx5IHRoZSBMMkFS
QyBjYW4gdXNlIHRoZSBoZHIncyBkYXRhLCBidXQgaWYNCj4gQEAgLTg0MzksNyArODQ0OSw3IEBA
IGwyYXJjX2FkZF92ZGV2KHNwYV90ICpzcGEsIHZkZXZfdCAqdmQpDQo+ICAJICAgIG9mZnNldG9m
KGFyY19idWZfaGRyX3QsIGJfbDJoZHIuYl9sMm5vZGUpKTsNCj4gIA0KPiAgCXZkZXZfc3BhY2Vf
dXBkYXRlKHZkLCAwLCAwLCBhZGRkZXYtPmwyYWRfZW5kIC0gYWRkZGV2LT5sMmFkX2hhbmQpOw0K
PiAtCXJlZmNvdW50X2NyZWF0ZSgmYWRkZGV2LT5sMmFkX2FsbG9jKTsNCj4gKwl6ZnNfcmVmY291
bnRfY3JlYXRlKCZhZGRkZXYtPmwyYWRfYWxsb2MpOw0KPiAgDQo+ICAJLyoNCj4gIAkgKiBBZGQg
ZGV2aWNlIHRvIGdsb2JhbCBsaXN0DQo+IEBAIC04NDg1LDcgKzg0OTUsNyBAQCBsMmFyY19yZW1v
dmVfdmRldih2ZGV2X3QgKnZkKQ0KPiAgCWwyYXJjX2V2aWN0KHJlbWRldiwgMCwgQl9UUlVFKTsN
Cj4gIAlsaXN0X2Rlc3Ryb3koJnJlbWRldi0+bDJhZF9idWZsaXN0KTsNCj4gIAltdXRleF9kZXN0
cm95KCZyZW1kZXYtPmwyYWRfbXR4KTsNCj4gLQlyZWZjb3VudF9kZXN0cm95KCZyZW1kZXYtPmwy
YWRfYWxsb2MpOw0KPiArCXpmc19yZWZjb3VudF9kZXN0cm95KCZyZW1kZXYtPmwyYWRfYWxsb2Mp
Ow0KPiAgCWttZW1fZnJlZShyZW1kZXYsIHNpemVvZiAobDJhcmNfZGV2X3QpKTsNCj4gIH0NCj4g
IA0KPiANCj4gTW9kaWZpZWQ6IGhlYWQvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMv
Y29tbW9uL2ZzL3pmcy9kYnVmLmMNCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IC0tLSBoZWFk
L3N5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9mcy96ZnMvZGJ1Zi5jCVR1
ZSBPY3QgMTUgMTQ6NTE6MjINCj4gMjAxOQkocjM1MzU2NCkgKysrIGhlYWQvc3lzL2NkZGwvY29u
dHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pmcy9kYnVmLmMNCj4gVHVlIE9jdCAxNSAx
NTowOTozNiAyMDE5CShyMzUzNTY1KSBAQCAtMjI2LDcgKzIyNiw3IEBAIHN0YXRpYyBib29sZWFu
X3QNCj4gZGJ1Zl9ldmljdF90aHJlYWRfZXhpdDsgKi8NCj4gIHR5cGVkZWYgc3RydWN0IGRidWZf
Y2FjaGUgew0KPiAgCW11bHRpbGlzdF90ICpjYWNoZTsNCj4gLQlyZWZjb3VudF90IHNpemU7DQo+
ICsJemZzX3JlZmNvdW50X3Qgc2l6ZTsNCj4gIH0gZGJ1Zl9jYWNoZV90Ow0KPiAgZGJ1Zl9jYWNo
ZV90IGRidWZfY2FjaGVzW0RCX0NBQ0hFX01BWF07DQo+ICANCj4gQEAgLTMxNiw3ICszMTYsNyBA
QCBkYnVmX2NvbnModm9pZCAqdmRiLCB2b2lkICp1bnVzZWQsIGludCBrbWZsYWcpDQo+ICAJbXV0
ZXhfaW5pdCgmZGItPmRiX210eCwgTlVMTCwgTVVURVhfREVGQVVMVCwgTlVMTCk7DQo+ICAJY3Zf
aW5pdCgmZGItPmRiX2NoYW5nZWQsIE5VTEwsIENWX0RFRkFVTFQsIE5VTEwpOw0KPiAgCW11bHRp
bGlzdF9saW5rX2luaXQoJmRiLT5kYl9jYWNoZV9saW5rKTsNCj4gLQlyZWZjb3VudF9jcmVhdGUo
JmRiLT5kYl9ob2xkcyk7DQo+ICsJemZzX3JlZmNvdW50X2NyZWF0ZSgmZGItPmRiX2hvbGRzKTsN
Cj4gIA0KPiAgCXJldHVybiAoMCk7DQo+ICB9DQo+IEBAIC0zMjksNyArMzI5LDcgQEAgZGJ1Zl9k
ZXN0KHZvaWQgKnZkYiwgdm9pZCAqdW51c2VkKQ0KPiAgCW11dGV4X2Rlc3Ryb3koJmRiLT5kYl9t
dHgpOw0KPiAgCWN2X2Rlc3Ryb3koJmRiLT5kYl9jaGFuZ2VkKTsNCj4gIAlBU1NFUlQoIW11bHRp
bGlzdF9saW5rX2FjdGl2ZSgmZGItPmRiX2NhY2hlX2xpbmspKTsNCj4gLQlyZWZjb3VudF9kZXN0
cm95KCZkYi0+ZGJfaG9sZHMpOw0KPiArCXpmc19yZWZjb3VudF9kZXN0cm95KCZkYi0+ZGJfaG9s
ZHMpOw0KPiANCj4gKioqIERJRkYgT1VUUFVUIFRSVU5DQVRFRCBBVCAxMDAwIExJTkVTICoqKg0K
PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBzdm4t
c3JjLWhlYWRAZnJlZWJzZC5vcmcgbWFpbGluZyBsaXN0DQo+IGh0dHBzOi8vbGlzdHMuZnJlZWJz
ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9zdm4tc3JjLWhlYWQNCj4gVG8gdW5zdWJzY3JpYmUsIHNl
bmQgYW55IG1haWwgdG8gInN2bi1zcmMtaGVhZC11bnN1YnNjcmliZUBmcmVlYnNkLm9yZyINCg0K
QnVpbGR3b3JsZCBmYWlscyB3aXRoIHRoZSBlcnJvciBzaG93biBiZWxvdzoNCg0KWy4uLl0NCi0g
LS0tIGNkZGwvbGliL2xpYnpmc19jb3JlX19MIC0tLQ0KLSAtLS0gbGliemZzX2NvcmUubyAtLS0N
CkluIGZpbGUgaW5jbHVkZWQgZnJvbQ0KL3Vzci9zcmMvY2RkbC9jb250cmliL29wZW5zb2xhcmlz
L2xpYi9saWJ6ZnNfY29yZS9jb21tb24vbGliemZzX2NvcmUuYzo4OTogSW4gZmlsZSBpbmNsdWRl
ZA0KZnJvbSAvdXNyL3NyYy9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24v
ZnMvemZzL3N5cy96ZnNfaW9jdGwuaDozNTogSW4gZmlsZQ0KaW5jbHVkZWQgZnJvbSAvdXNyL3Ny
Yy9zeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9kc2xf
ZGVsZWcuaDozMDogSW4NCmZpbGUgaW5jbHVkZWQgZnJvbSAvdXNyL3NyYy9zeXMvY2RkbC9jb250
cmliL29wZW5zb2xhcmlzL3V0cy9jb21tb24vZnMvemZzL3N5cy9kc2xfcG9vbC5oOjM3Og0KL3Vz
ci9zcmMvc3lzL2NkZGwvY29udHJpYi9vcGVuc29sYXJpcy91dHMvY29tbW9uL2ZzL3pmcy9zeXMv
YXJjLmg6ODk6MjogZXJyb3I6IHVua25vd24gdHlwZQ0KbmFtZSAncmVmY291bnRfdCcgcmVmY291
bnRfdCAgICAgICAgICAgICAgcF9yZWZjbnQ7IF4NCjEgZXJyb3IgZ2VuZXJhdGVkLg0KKioqIFts
aWJ6ZnNfY29yZS5vXSBFcnJvciBjb2RlIDENCg0KbWFrZVs0XTogc3RvcHBlZCBpbiAvdXNyL3Ny
Yy9jZGRsL2xpYi9saWJ6ZnNfY29yZQ0KDQoNCi0gLS0gDQpPLiBIYXJ0bWFubg0KDQpJY2ggd2lk
ZXJzcHJlY2hlIGRlciBOdXR6dW5nIG9kZXIgw5xiZXJtaXR0bHVuZyBtZWluZXIgRGF0ZW4gZsO8
cg0KV2VyYmV6d2Vja2Ugb2RlciBmw7xyIGRpZSBNYXJrdC0gb2RlciBNZWludW5nc2ZvcnNjaHVu
ZyAowqcgMjggQWJzLiA0IEJEU0cpLg0KLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0NCg0K
aUhVRUFSWUlBQjBXSVFTeThJQnhBUERrcVZCYVRKNDROMVpaUGJhNVJ3VUNYYVhybmdBS0NSQTRO
MVpaUGJhNQ0KUjllNUFQOVpSMHFrR0Fqc0pKQmNWUTZDZER4Q0pETXlOaWpDQWNwKzBkUXZKMVV4
R2dFQWpnaUZzUHdrS3FrYw0KSWxIWFk5R3VJamZqSE12NFFsVytBU0hRd0RKc0t3bz0NCj1nVTRT
DQotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0NCg==



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