Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Oct 2019 23:54:18 +0000
From:      "Pokala, Ravi" <rpokala@panasas.com>
To:        Navdeep Parhar <np@FreeBSD.org>, "src-committers@freebsd.org" <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-stable@freebsd.org" <svn-src-stable@freebsd.org>, "svn-src-stable-10@freebsd.org" <svn-src-stable-10@freebsd.org>
Subject:   Re: svn commit: r353418 - in stable/10/sys: conf dev/cxgbe dev/cxgbe/common dev/cxgbe/firmware modules/cxgbe/t4_firmware modules/cxgbe/t5_firmware modules/cxgbe/t6_firmware
Message-ID:  <1E280C29-BA50-47C5-9B14-805628A9795B@panasas.com>
In-Reply-To: <201910102327.x9ANR3Ca072447@repo.freebsd.org>
References:  <201910102327.x9ANR3Ca072447@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
UmVxdWVzdGVkIGJ5OglQYW5hc2FzDQoNClRoYW5rcyBOYXZkZWVwISA6LSkNCg0KLVJhdmkgKHdl
YXJpbmcgUGFuYXNhcyBoYXQpDQoNCu+7vy0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9t
OiA8b3duZXItc3JjLWNvbW1pdHRlcnNAZnJlZWJzZC5vcmc+IG9uIGJlaGFsZiBvZiBOYXZkZWVw
IFBhcmhhciA8bnBARnJlZUJTRC5vcmc+DQpEYXRlOiAyMDE5LTEwLTEwLCBUaHVyc2RheSBhdCAx
NjoyNw0KVG86IDxzcmMtY29tbWl0dGVyc0BmcmVlYnNkLm9yZz4sIDxzdm4tc3JjLWFsbEBmcmVl
YnNkLm9yZz4sIDxzdm4tc3JjLXN0YWJsZUBmcmVlYnNkLm9yZz4sIDxzdm4tc3JjLXN0YWJsZS0x
MEBmcmVlYnNkLm9yZz4NClN1YmplY3Q6IHN2biBjb21taXQ6IHIzNTM0MTggLSBpbiBzdGFibGUv
MTAvc3lzOiBjb25mIGRldi9jeGdiZSBkZXYvY3hnYmUvY29tbW9uIGRldi9jeGdiZS9maXJtd2Fy
ZSBtb2R1bGVzL2N4Z2JlL3Q0X2Zpcm13YXJlIG1vZHVsZXMvY3hnYmUvdDVfZmlybXdhcmUgbW9k
dWxlcy9jeGdiZS90Nl9maXJtd2FyZQ0KDQogICAgQXV0aG9yOiBucA0KICAgIERhdGU6IFRodSBP
Y3QgMTAgMjM6Mjc6MDIgMjAxOQ0KICAgIE5ldyBSZXZpc2lvbjogMzUzNDE4DQogICAgVVJMOiBo
dHRwczovL3N2bndlYi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8zNTM0MTgNCiAgICANCiAg
ICBMb2c6DQogICAgICBNRkMgcjMxOTg3MiwgcjMyMTA2MywgcjMyMTU4MiwgcjMyMjAzNCwgcjMy
MjQyNSwgcjMyMjk2MiwgcjMyMjk4NSwNCiAgICAgIHIzMjU1OTYsIHIzMjYwMjYsIHIzMjg0MjAs
IHIzMzE0NzIsIHIzMzMyNzYsIHIzMzM2NTAsIHIzMzM2NTIsIHIzMzQ0MDYsDQogICAgICByMzM0
NDA5LXIzMzQ0MTAsIHIzMzQ0ODksIHIzMzYwNDIsIHIzNDA2NTEsIHIzNDI2MDMsIGFuZCByMzQ1
MDgzLg0KICAgICAgDQogICAgICBUaGlzIHVwZGF0ZXMgdGhlIGN4Z2JlIGZpcm13YXJlcyBpbiBz
dGFibGUvMTAgYW5kIGFsc28gcHVsbHMgaW4gc3VwcG9ydA0KICAgICAgZm9yIHNvbWUgbmV3ZXIg
Ym9hcmRzIGFuZCBmbGFzaCBwYXJ0cy4NCiAgICAgIA0KICAgICAgcjMxOTg3MjoNCiAgICAgIGN4
Z2JlKDQpOiAgRG8gbm90IHJlcXVlc3QgYW4gRkVDIHNldHRpbmcgdGhhdCB0aGUgcG9ydCBkb2Vz
IG5vdCBzdXBwb3J0Lg0KICAgICAgDQogICAgICByMzIxMDYzOg0KICAgICAgY3hnYmUoNCk6IFZh
cmlvdXMgbGluay9tZWRpYSByZWxhdGVkIGltcHJvdmVtZW50cy4NCiAgICAgIA0KICAgICAgcjMy
MTU4MjoNCiAgICAgIGN4Z2JlKDQpOiBTb21lIHVwZGF0ZXMgdG8gdGhlIGNvbW1vbiBjb2RlLg0K
ICAgICAgDQogICAgICByMzIyMDM0Og0KICAgICAgY3hnYmUoNCk6IEFsd2F5cyB1c2UgdGhlIGZp
cnN0IGFuZCBub3QgdGhlIGxhc3QgdmlydHVhbCBpbnRlcmZhY2UNCiAgICAgIGFzc29jaWF0ZWQg
d2l0aCBhIHBvcnQgaW4gYmVnaW5fc3luY2hyb25pemVkX29wLg0KICAgICAgDQogICAgICByMzIy
NDI1Og0KICAgICAgY3hnYmUoNCk6IFNhdmUgdGhlIGxhc3QgcmVwb3J0ZWQgbGluayBwYXJhbWV0
ZXJzIGFuZCBjb21wYXJlIHRoZW0gd2l0aA0KICAgICAgdGhlIGN1cnJlbnQgc3RhdGUgdG8gZGV0
ZXJtaW5lIHdoZXRoZXIgdG8gZ2VuZXJhdGUgYSBsaW5rLXN0YXRlIGNoYW5nZQ0KICAgICAgbm90
aWZpY2F0aW9uLiAgVGhpcyBmaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIHIzMjEwNjMgdGhhdCBj
YXVzZWQgdGhlDQogICAgICBkcml2ZXIgdG8gc29tZXRpbWVzIHNraXAgdGhlc2Ugbm90aWZpY2F0
aW9ucy4NCiAgICAgIA0KICAgICAgcjMyMjk2MjoNCiAgICAgIGN4Z2JlKDQpOiBSZW1vdmUgd3Jp
dGUgb25seSB2YXJpYWJsZSBmcm9tIHQ0X3BvcnRfaW5pdC4NCiAgICAgIA0KICAgICAgcjMyMjk4
NToNCiAgICAgIGN4Z2JlKDQpOiBNYWludGFpbiBvbmUgaWZtZWRpYSBwZXIgcGh5c2ljYWwgcG9y
dCBpbnN0ZWFkIG9mIG9uZSBwZXINCiAgICAgIFZpcnR1YWwgSW50ZXJmYWNlIChWSSkuICBBbGwg
YXV0b25vbW91cyBWSXMgdGhhdCBzaGFyZSBhIHBvcnQgc2hhcmUgdGhlDQogICAgICBzYW1lIG1l
ZGlhLg0KICAgICAgDQogICAgICByMzI1NTk2Og0KICAgICAgY3hnYmUoNCk6IERvIG5vdCByZXF1
ZXN0IHNldHRpbmdzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHBvcnQuDQogICAgICANCiAgICAgIHIz
MjYwMjY6DQogICAgICBjeGdiZSg0KTogQWRkIGEgY3VzdG9tIGJvYXJkIHRvIHRoZSBkZXZpY2Ug
aWQgbGlzdC4NCiAgICAgIA0KICAgICAgcjMyODQyMDoNCiAgICAgIGN4Z2JlKDQpOiBEbyBub3Qg
ZGlzcGxheSBoYXJtbGVzcyB3YXJuaW5nIGluIG5vbi1kZWJ1ZyBidWlsZHMuDQogICAgICANCiAg
ICAgIHIzMzE0NzI6DQogICAgICBjeGdiZSg0KTogQWx3YXlzIGluaXRpYWxpemUgcmVxdWVzdGVk
X3NwZWVkIHRvIGEgdmFsaWQgdmFsdWUuDQogICAgICANCiAgICAgIFRoaXMgZml4ZXMgYW4gYXZv
aWRhYmxlIEVJTlZBTCB3aGVuIHRoZSB1c2VyIHRyaWVzIHRvIGRpc2FibGUgQU4gYWZ0ZXINCiAg
ICAgIHRoZSBwb3J0IGlzIGluaXRpYWxpemVkIGJ1dCBsMWNmZyBkb2Vzbid0IGhhdmUgYSB2YWxp
ZCBzcGVlZCB0byB1c2UuDQogICAgICANCiAgICAgIHIzMzMyNzY6DQogICAgICBjeGdiZSg0KTog
VXBkYXRlIGFsbCBmaXJtd2FyZXMgdG8gMS4xOS4xLjAuDQogICAgICANCiAgICAgIHIzMzM2NTA6
DQogICAgICBjeGdiZSg0KTogQ2xhaW0gc29tZSBtb3JlIFQ1IGFuZCBUNiBib2FyZHMuDQogICAg
ICANCiAgICAgIHIzMzM2NTI6DQogICAgICBjeGdiZSg0KTogQWRkIHN1cHBvcnQgZm9yIHR3byBt
b3JlIGZsYXNoIHBhcnRzLg0KICAgICAgDQogICAgICByMzM0NDA2Og0KICAgICAgY3hnYmUoNCk6
IENvbnNpZGVyIGFsbCBzdXBwb3J0ZWQgc3BlZWRzIHdoZW4gYnVpbGRpbmcgdGhlIGlmbWVkaWEg
bGlzdA0KICAgICAgZm9yIGEgcG9ydC4gIEZpeCBvdGhlciByZWxhdGVkIGlzc3VlcyB3aGlsZSBo
ZXJlOg0KICAgICAgLSBSZXF1aXJlIHBvcnQgbG9jayBmb3IgYWNjZXNzIHRvIGxpbmtfY29uZmln
Lg0KICAgICAgLSBBbGxvdyAxMDBNYnBzIG9wZXJhdGlvbiBieSB0cmFja2luZyB0aGUgc3BlZWQg
aW4gTWJwcy4gIFllcywgcmVhbGx5Lg0KICAgICAgLSBOZXcgcG9ydCBmbGFnIHRvIGluZGljYXRl
IHRoYXQgdGhlIG1lZGlhIGxpc3QgaXMgaW1tdXRhYmxlLiAgSXQgd2lsbA0KICAgICAgICBiZSB1
c2VkIGluIGZ1dHVyZSByZWZpbmVtZW50cy4NCiAgICAgIA0KICAgICAgVGhpcyBhbHNvIGZpeGVz
IGEgYnVnIHdoZXJlIHRoZSBkcml2ZXIgcmVwb3J0cyBpbmNvcnJlY3QgbWVkaWEgd2l0aA0KICAg
ICAgcmVjZW50IGZpcm13YXJlcy4NCiAgICAgIA0KICAgICAgcjMzNDQwOToNCiAgICAgIGN4Z2Jl
KDQpOiBJbXBsZW1lbnQgaWZtX2NoYW5nZSBjYWxsYmFjay4NCiAgICAgIA0KICAgICAgcjMzNDQx
MDoNCiAgICAgIGN4Z2JlKDQpOiBVc2UgaWZtIGZvciBpZm1lZGlhIGp1c3QgbGlrZSB0aGUgcmVz
dCBvZiB0aGUga2VybmVsLg0KICAgICAgDQogICAgICBObyBmdW5jdGlvbmFsIGNoYW5nZS4NCiAg
ICAgIA0KICAgICAgcjMzNDQ4OToNCiAgICAgIGN4Z2JlKDQpOiBJbmNsdWRlIGZ1bGwgZHVwbGV4
IG1lZGlhb3B0IGluIG1lZGlhIHRoYXQgY2FuIGJlIHJlcG9ydGVkIGFzDQogICAgICBhY3RpdmUu
ICBBbHdheXMgcmVwb3J0IGZ1bGwgZHVwbGV4IGluIGFjdGl2ZSBtZWRpYS4NCiAgICAgIA0KICAg
ICAgcjMzNjA0MjoNCiAgICAgIGN4Z2JlKDQpOiBBc3N1bWUgdGhhdCBhbnkgdW5rbm93biBmbGFz
aCBvbiB0aGUgY2FyZCBpcyA0TUIgYW5kIGhhcyA2NEtCDQogICAgICBzZWN0b3JzLCBpbnN0ZWFk
IG9mIHJlZnVzaW5nIHRvIGF0dGFjaCB0byB0aGUgY2FyZC4NCiAgICAgIA0KICAgICAgcjM0MDY1
MToNCiAgICAgIGN4Z2JlKDQpOiBVcGRhdGUgVDQvNS82IGZpcm13YXJlcyB0byAxLjIyLjAuMy4N
CiAgICAgIA0KICAgICAgcjM0MjYwMzoNCiAgICAgIGN4Z2JlKDQpOiBBdHRhY2ggdG8gdHdvIFQ1
NDAgdmFyaWFudHMuDQogICAgICANCiAgICAgIHIzNDUwODM6DQogICAgICBjeGdiZSg0KTogVXBk
YXRlIFQ0LzUvNiBmaXJtd2FyZXMgdG8gMS4yMy4wLjAuDQogICAgDQogICAgQWRkZWQ6DQogICAg
ICBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9maXJtd2FyZS90NGZ3LTEuMjMuMC4wLmJpbi51dQ0K
ICAgICAgICAgLSBjb3BpZWQgdW5jaGFuZ2VkIGZyb20gcjM0NTA4MywgaGVhZC9zeXMvZGV2L2N4
Z2JlL2Zpcm13YXJlL3Q0ZnctMS4yMy4wLjAuYmluLnV1DQogICAgICBzdGFibGUvMTAvc3lzL2Rl
di9jeGdiZS9maXJtd2FyZS90NWZ3LTEuMjMuMC4wLmJpbi51dQ0KICAgICAgICAgLSBjb3BpZWQg
dW5jaGFuZ2VkIGZyb20gcjM0NTA4MywgaGVhZC9zeXMvZGV2L2N4Z2JlL2Zpcm13YXJlL3Q1Znct
MS4yMy4wLjAuYmluLnV1DQogICAgICBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9maXJtd2FyZS90
NmZ3LTEuMjMuMC4wLmJpbi51dQ0KICAgICAgICAgLSBjb3BpZWQgdW5jaGFuZ2VkIGZyb20gcjM0
NTA4MywgaGVhZC9zeXMvZGV2L2N4Z2JlL2Zpcm13YXJlL3Q2ZnctMS4yMy4wLjAuYmluLnV1DQog
ICAgRGVsZXRlZDoNCiAgICAgIHN0YWJsZS8xMC9zeXMvZGV2L2N4Z2JlL2Zpcm13YXJlL3Q0Znct
MS4xNi42My4wLmJpbi51dQ0KICAgICAgc3RhYmxlLzEwL3N5cy9kZXYvY3hnYmUvZmlybXdhcmUv
dDVmdy0xLjE2LjYzLjAuYmluLnV1DQogICAgICBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9maXJt
d2FyZS90NmZ3LTEuMTYuNjMuMC5iaW4udXUNCiAgICBNb2RpZmllZDoNCiAgICAgIHN0YWJsZS8x
MC9zeXMvY29uZi9maWxlcw0KICAgICAgc3RhYmxlLzEwL3N5cy9kZXYvY3hnYmUvYWRhcHRlci5o
DQogICAgICBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9jb21tb24vY29tbW9uLmgNCiAgICAgIHN0
YWJsZS8xMC9zeXMvZGV2L2N4Z2JlL2NvbW1vbi90NF9ody5jDQogICAgICBzdGFibGUvMTAvc3lz
L2Rldi9jeGdiZS9maXJtd2FyZS90NGZ3X2ludGVyZmFjZS5oDQogICAgICBzdGFibGUvMTAvc3lz
L2Rldi9jeGdiZS9maXJtd2FyZS90NWZ3X2NmZ191d2lyZS50eHQNCiAgICAgIHN0YWJsZS8xMC9z
eXMvZGV2L2N4Z2JlL2Zpcm13YXJlL3Q2ZndfY2ZnX3V3aXJlLnR4dA0KICAgICAgc3RhYmxlLzEw
L3N5cy9kZXYvY3hnYmUvdDRfbWFpbi5jDQogICAgICBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS90
NF9zZ2UuYw0KICAgICAgc3RhYmxlLzEwL3N5cy9tb2R1bGVzL2N4Z2JlL3Q0X2Zpcm13YXJlL01h
a2VmaWxlDQogICAgICBzdGFibGUvMTAvc3lzL21vZHVsZXMvY3hnYmUvdDVfZmlybXdhcmUvTWFr
ZWZpbGUNCiAgICAgIHN0YWJsZS8xMC9zeXMvbW9kdWxlcy9jeGdiZS90Nl9maXJtd2FyZS9NYWtl
ZmlsZQ0KICAgIERpcmVjdG9yeSBQcm9wZXJ0aWVzOg0KICAgICAgc3RhYmxlLzEwLyAgIChwcm9w
cyBjaGFuZ2VkKQ0KICAgIA0KICAgIE1vZGlmaWVkOiBzdGFibGUvMTAvc3lzL2NvbmYvZmlsZXMN
CiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAtLS0gc3RhYmxlLzEwL3N5cy9jb25mL2Zp
bGVzCVRodSBPY3QgMTAgMjI6NDk6NDUgMjAxOQkocjM1MzQxNykNCiAgICArKysgc3RhYmxlLzEw
L3N5cy9jb25mL2ZpbGVzCVRodSBPY3QgMTAgMjM6Mjc6MDIgMjAxOQkocjM1MzQxOCkNCiAgICBA
QCAtMTE5NSw3ICsxMTk1LDcgQEAgdDRmdy5md28JCW9wdGlvbmFsIGN4Z2JlCQkJCQlcDQogICAg
IAluby1pbXBsaWNpdC1ydWxlCQkJCQkJXA0KICAgICAJY2xlYW4JCSJ0NGZ3LmZ3byINCiAgICAg
dDRmdy5mdwkJCW9wdGlvbmFsIGN4Z2JlCQkJCQlcDQogICAgLQlkZXBlbmRlbmN5CSIkUy9kZXYv
Y3hnYmUvZmlybXdhcmUvdDRmdy0xLjE2LjYzLjAuYmluLnV1IglcDQogICAgKwlkZXBlbmRlbmN5
CSIkUy9kZXYvY3hnYmUvZmlybXdhcmUvdDRmdy0xLjIzLjAuMC5iaW4udXUiCVwNCiAgICAgCWNv
bXBpbGUtd2l0aAkiJHtOT1JNQUxfRld9IgkJCQkJXA0KICAgICAJbm8tb2JqIG5vLWltcGxpY2l0
LXJ1bGUJCQkJCQlcDQogICAgIAljbGVhbgkJInQ0ZncuZnciDQogICAgQEAgLTEyMTksNyArMTIx
OSw3IEBAIHQ1ZncuZndvCQlvcHRpb25hbCBjeGdiZQkJCQkJXA0KICAgICAJbm8taW1wbGljaXQt
cnVsZQkJCQkJCVwNCiAgICAgCWNsZWFuCQkidDVmdy5md28iDQogICAgIHQ1ZncuZncJCQlvcHRp
b25hbCBjeGdiZQkJCQkJXA0KICAgIC0JZGVwZW5kZW5jeQkiJFMvZGV2L2N4Z2JlL2Zpcm13YXJl
L3Q1ZnctMS4xNi42My4wLmJpbi51dSIJXA0KICAgICsJZGVwZW5kZW5jeQkiJFMvZGV2L2N4Z2Jl
L2Zpcm13YXJlL3Q1ZnctMS4yMy4wLjAuYmluLnV1IglcDQogICAgIAljb21waWxlLXdpdGgJIiR7
Tk9STUFMX0ZXfSIJCQkJCVwNCiAgICAgCW5vLW9iaiBuby1pbXBsaWNpdC1ydWxlCQkJCQkJXA0K
ICAgICAJY2xlYW4JCSJ0NWZ3LmZ3Ig0KICAgIEBAIC0xMjQzLDcgKzEyNDMsNyBAQCB0NmZ3LmZ3
bwkJb3B0aW9uYWwgY3hnYmUJCQkJCVwNCiAgICAgCW5vLWltcGxpY2l0LXJ1bGUJCQkJCQlcDQog
ICAgIAljbGVhbgkJInQ2ZncuZndvIg0KICAgICB0NmZ3LmZ3CQkJb3B0aW9uYWwgY3hnYmUJCQkJ
CVwNCiAgICAtCWRlcGVuZGVuY3kJIiRTL2Rldi9jeGdiZS9maXJtd2FyZS90NmZ3LTEuMTYuNjMu
MC5iaW4udXUiCVwNCiAgICArCWRlcGVuZGVuY3kJIiRTL2Rldi9jeGdiZS9maXJtd2FyZS90NmZ3
LTEuMjMuMC4wLmJpbi51dSIJXA0KICAgICAJY29tcGlsZS13aXRoCSIke05PUk1BTF9GV30iCQkJ
CQlcDQogICAgIAluby1vYmogbm8taW1wbGljaXQtcnVsZQkJCQkJCVwNCiAgICAgCWNsZWFuCQki
dDZmdy5mdyINCiAgICANCiAgICBNb2RpZmllZDogc3RhYmxlLzEwL3N5cy9kZXYvY3hnYmUvYWRh
cHRlci5oDQogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgLS0tIHN0YWJsZS8xMC9zeXMv
ZGV2L2N4Z2JlL2FkYXB0ZXIuaAlUaHUgT2N0IDEwIDIyOjQ5OjQ1IDIwMTkJKHIzNTM0MTcpDQog
ICAgKysrIHN0YWJsZS8xMC9zeXMvZGV2L2N4Z2JlL2FkYXB0ZXIuaAlUaHUgT2N0IDEwIDIzOjI3
OjAyIDIwMTkJKHIzNTM0MTgpDQogICAgQEAgLTE1Niw2ICsxNTYsNyBAQCBlbnVtIHsNCiAgICAg
DQogICAgIAkvKiBwb3J0IGZsYWdzICovDQogICAgIAlIQVNfVFJBQ0VRCT0gKDEgPDwgMyksDQog
ICAgKwlGSVhFRF9JRk1FRElBCT0gKDEgPDwgNCksCS8qIGlmbWVkaWEgbGlzdCBkb2Vzbid0IGNo
YW5nZS4gKi8NCiAgICAgDQogICAgIAkvKiBWSSBmbGFncyAqLw0KICAgICAJRE9PTUVECQk9ICgx
IDw8IDApLA0KICAgIEBAIC0xODAsNyArMTgxLDYgQEAgc3RydWN0IHZpX2luZm8gew0KICAgICAJ
c3RydWN0IHBvcnRfaW5mbyAqcGk7DQogICAgIA0KICAgICAJc3RydWN0IGlmbmV0ICppZnA7DQog
ICAgLQlzdHJ1Y3QgaWZtZWRpYSBtZWRpYTsNCiAgICAgDQogICAgIAl1bnNpZ25lZCBsb25nIGZs
YWdzOw0KICAgICAJaW50IGlmX2ZsYWdzOw0KICAgIEBAIC0yODEsNiArMjgxLDggQEAgc3RydWN0
IHBvcnRfaW5mbyB7DQogICAgIAl1aW50OF90ICByeF9jaGFuX21hcDsJLyogcnggTVBTIGNoYW5u
ZWwgYml0bWFwICovDQogICAgIA0KICAgICAJc3RydWN0IGxpbmtfY29uZmlnIGxpbmtfY2ZnOw0K
ICAgICsJc3RydWN0IGxpbmtfY29uZmlnIG9sZF9saW5rX2NmZzsNCiAgICArCXN0cnVjdCBpZm1l
ZGlhIG1lZGlhOw0KICAgICANCiAgICAgCXN0cnVjdCB0aW1ldmFsIGxhc3RfcmVmcmVzaGVkOw0K
ICAgICAgCXN0cnVjdCBwb3J0X3N0YXRzIHN0YXRzOw0KICAgIEBAIC0xMDI2LDEwICsxMDI4LDEw
IEBAIGFkYXAycGluZm8oc3RydWN0IGFkYXB0ZXIgKnNjLCBpbnQgaWR4KQ0KICAgICB9DQogICAg
IA0KICAgICBzdGF0aWMgaW5saW5lIHZvaWQNCiAgICAtdDRfb3Nfc2V0X2h3X2FkZHIoc3RydWN0
IGFkYXB0ZXIgKnNjLCBpbnQgaWR4LCB1aW50OF90IGh3X2FkZHJbXSkNCiAgICArdDRfb3Nfc2V0
X2h3X2FkZHIoc3RydWN0IHBvcnRfaW5mbyAqcGksIHVpbnQ4X3QgaHdfYWRkcltdKQ0KICAgICB7
DQogICAgIA0KICAgIC0JYmNvcHkoaHdfYWRkciwgc2MtPnBvcnRbaWR4XS0+dmlbMF0uaHdfYWRk
ciwgRVRIRVJfQUREUl9MRU4pOw0KICAgICsJYmNvcHkoaHdfYWRkciwgcGktPnZpWzBdLmh3X2Fk
ZHIsIEVUSEVSX0FERFJfTEVOKTsNCiAgICAgfQ0KICAgICANCiAgICAgc3RhdGljIGlubGluZSBi
b29sDQogICAgQEAgLTEwNzksMjQgKzEwODEsNiBAQCBwb3J0X3RvcF9zcGVlZChjb25zdCBzdHJ1
Y3QgcG9ydF9pbmZvICpwaSkNCiAgICAgfQ0KICAgICANCiAgICAgc3RhdGljIGlubGluZSBpbnQN
CiAgICAtcG9ydF90b3Bfc3BlZWRfcmF3KGNvbnN0IHN0cnVjdCBwb3J0X2luZm8gKnBpKQ0KICAg
IC17DQogICAgLQ0KICAgIC0JaWYgKHBpLT5saW5rX2NmZy5zdXBwb3J0ZWQgJiBGV19QT1JUX0NB
UF9TUEVFRF8xMDBHKQ0KICAgIC0JCXJldHVybiAoRldfUE9SVF9DQVBfU1BFRURfMTAwRyk7DQog
ICAgLQlpZiAocGktPmxpbmtfY2ZnLnN1cHBvcnRlZCAmIEZXX1BPUlRfQ0FQX1NQRUVEXzQwRykN
CiAgICAtCQlyZXR1cm4gKEZXX1BPUlRfQ0FQX1NQRUVEXzQwRyk7DQogICAgLQlpZiAocGktPmxp
bmtfY2ZnLnN1cHBvcnRlZCAmIEZXX1BPUlRfQ0FQX1NQRUVEXzI1RykNCiAgICAtCQlyZXR1cm4g
KEZXX1BPUlRfQ0FQX1NQRUVEXzI1Ryk7DQogICAgLQlpZiAocGktPmxpbmtfY2ZnLnN1cHBvcnRl
ZCAmIEZXX1BPUlRfQ0FQX1NQRUVEXzEwRykNCiAgICAtCQlyZXR1cm4gKEZXX1BPUlRfQ0FQX1NQ
RUVEXzEwRyk7DQogICAgLQlpZiAocGktPmxpbmtfY2ZnLnN1cHBvcnRlZCAmIEZXX1BPUlRfQ0FQ
X1NQRUVEXzFHKQ0KICAgIC0JCXJldHVybiAoRldfUE9SVF9DQVBfU1BFRURfMUcpOw0KICAgIC0N
CiAgICAtCXJldHVybiAoMCk7DQogICAgLX0NCiAgICAtDQogICAgLXN0YXRpYyBpbmxpbmUgaW50
DQogICAgIHR4X3Jlc3VtZV90aHJlc2hvbGQoc3RydWN0IHNnZV9lcSAqZXEpDQogICAgIHsNCiAg
ICAgDQogICAgQEAgLTExMzIsOCArMTExNiw4IEBAIGV4dGVybiBkZXZpY2VfbWV0aG9kX3QgY3hn
YmVfbWV0aG9kc1tdOw0KICAgICBpbnQgdDRfb3NfZmluZF9wY2lfY2FwYWJpbGl0eShzdHJ1Y3Qg
YWRhcHRlciAqLCBpbnQpOw0KICAgICBpbnQgdDRfb3NfcGNpX3NhdmVfc3RhdGUoc3RydWN0IGFk
YXB0ZXIgKik7DQogICAgIGludCB0NF9vc19wY2lfcmVzdG9yZV9zdGF0ZShzdHJ1Y3QgYWRhcHRl
ciAqKTsNCiAgICAtdm9pZCB0NF9vc19wb3J0bW9kX2NoYW5nZWQoY29uc3Qgc3RydWN0IGFkYXB0
ZXIgKiwgaW50KTsNCiAgICAtdm9pZCB0NF9vc19saW5rX2NoYW5nZWQoc3RydWN0IGFkYXB0ZXIg
KiwgaW50LCBpbnQpOw0KICAgICt2b2lkIHQ0X29zX3BvcnRtb2RfY2hhbmdlZChzdHJ1Y3QgcG9y
dF9pbmZvICopOw0KICAgICt2b2lkIHQ0X29zX2xpbmtfY2hhbmdlZChzdHJ1Y3QgcG9ydF9pbmZv
ICopOw0KICAgICB2b2lkIHQ0X2l0ZXJhdGUodm9pZCAoKikoc3RydWN0IGFkYXB0ZXIgKiwgdm9p
ZCAqKSwgdm9pZCAqKTsNCiAgICAgdm9pZCB0NF9pbml0X2Rldm5hbWVzKHN0cnVjdCBhZGFwdGVy
ICopOw0KICAgICB2b2lkIHQ0X2FkZF9hZGFwdGVyKHN0cnVjdCBhZGFwdGVyICopOw0KICAgIA0K
ICAgIE1vZGlmaWVkOiBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9jb21tb24vY29tbW9uLmgNCiAg
ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAtLS0gc3RhYmxlLzEwL3N5cy9kZXYvY3hnYmUv
Y29tbW9uL2NvbW1vbi5oCVRodSBPY3QgMTAgMjI6NDk6NDUgMjAxOQkocjM1MzQxNykNCiAgICAr
Kysgc3RhYmxlLzEwL3N5cy9kZXYvY3hnYmUvY29tbW9uL2NvbW1vbi5oCVRodSBPY3QgMTAgMjM6
Mjc6MDIgMjAxOQkocjM1MzQxOCkNCiAgICBAQCAtMzk5LDE2ICszOTksMTggQEAgc3RydWN0IHRy
YWNlX3BhcmFtcyB7DQogICAgIH07DQogICAgIA0KICAgICBzdHJ1Y3QgbGlua19jb25maWcgew0K
ICAgICsJLyogT1Mtc3BlY2lmaWMgY29kZSBvd25zIGFsbCB0aGUgcmVxdWVzdGVkXyogZmllbGRz
ICovDQogICAgKwl1bnNpZ25lZCBjaGFyICByZXF1ZXN0ZWRfYW5lZzsgICAvKiBsaW5rIGFuZWcg
dXNlciBoYXMgcmVxdWVzdGVkICovDQogICAgKwl1bnNpZ25lZCBjaGFyICByZXF1ZXN0ZWRfZmM7
ICAgICAvKiBmbG93IGNvbnRyb2wgdXNlciBoYXMgcmVxdWVzdGVkICovDQogICAgKwl1bnNpZ25l
ZCBjaGFyICByZXF1ZXN0ZWRfZmVjOyAgICAvKiBGRUMgdXNlciBoYXMgcmVxdWVzdGVkICovDQog
ICAgKwl1bnNpZ25lZCBpbnQgICByZXF1ZXN0ZWRfc3BlZWQ7ICAvKiBzcGVlZCB1c2VyIGhhcyBy
ZXF1ZXN0ZWQgKE1icHMpICovDQogICAgKw0KICAgICAJdW5zaWduZWQgc2hvcnQgc3VwcG9ydGVk
OyAgICAgICAgLyogbGluayBjYXBhYmlsaXRpZXMgKi8NCiAgICAgCXVuc2lnbmVkIHNob3J0IGFk
dmVydGlzaW5nOyAgICAgIC8qIGFkdmVydGlzZWQgY2FwYWJpbGl0aWVzICovDQogICAgIAl1bnNp
Z25lZCBzaG9ydCBscF9hZHZlcnRpc2luZzsgICAvKiBwZWVyIGFkdmVydGlzZWQgY2FwYWJpbGl0
aWVzICovDQogICAgLQl1bnNpZ25lZCBpbnQgICByZXF1ZXN0ZWRfc3BlZWQ7ICAvKiBzcGVlZCB1
c2VyIGhhcyByZXF1ZXN0ZWQgKi8NCiAgICAtCXVuc2lnbmVkIGludCAgIHNwZWVkOyAgICAgICAg
ICAgIC8qIGFjdHVhbCBsaW5rIHNwZWVkICovDQogICAgLQl1bnNpZ25lZCBjaGFyICByZXF1ZXN0
ZWRfZmM7ICAgICAvKiBmbG93IGNvbnRyb2wgdXNlciBoYXMgcmVxdWVzdGVkICovDQogICAgKwl1
bnNpZ25lZCBpbnQgICBzcGVlZDsgICAgICAgICAgICAvKiBhY3R1YWwgbGluayBzcGVlZCAoTWJw
cykgKi8NCiAgICAgCXVuc2lnbmVkIGNoYXIgIGZjOyAgICAgICAgICAgICAgIC8qIGFjdHVhbCBs
aW5rIGZsb3cgY29udHJvbCAqLw0KICAgIC0JdW5zaWduZWQgY2hhciAgcmVxdWVzdGVkX2ZlYzsg
ICAgLyogRkVDIHVzZXIgaGFzIHJlcXVlc3RlZCAqLw0KICAgICAJdW5zaWduZWQgY2hhciAgZmVj
OyAgICAgICAgICAgICAgLyogYWN0dWFsIEZFQyAqLw0KICAgIC0JdW5zaWduZWQgY2hhciAgYXV0
b25lZzsgICAgICAgICAgLyogYXV0b25lZ290aWF0aW5nPyAqLw0KICAgICAJdW5zaWduZWQgY2hh
ciAgbGlua19vazsgICAgICAgICAgLyogbGluayB1cD8gKi8NCiAgICAgCXVuc2lnbmVkIGNoYXIg
IGxpbmtfZG93bl9yYzsgICAgIC8qIGxpbmsgZG93biByZWFzb24gKi8NCiAgICAgfTsNCiAgICBA
QCAtNTc2LDcgKzU3OCw3IEBAIGludCB0NF9wcmVwX2FkYXB0ZXIoc3RydWN0IGFkYXB0ZXIgKmFk
YXB0ZXIsIHU4ICpidWYpOw0KICAgICBpbnQgdDRfc2h1dGRvd25fYWRhcHRlcihzdHJ1Y3QgYWRh
cHRlciAqYWRhcHRlcik7DQogICAgIGludCB0NF9pbml0X2RldmxvZ19wYXJhbXMoc3RydWN0IGFk
YXB0ZXIgKmFkYXB0ZXIsIGludCBmd19hdHRhY2gpOw0KICAgICBpbnQgdDRfaW5pdF9zZ2VfcGFy
YW1zKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKTsNCiAgICAtaW50IHQ0X2luaXRfdHBfcGFyYW1z
KHN0cnVjdCBhZGFwdGVyICphZGFwKTsNCiAgICAraW50IHQ0X2luaXRfdHBfcGFyYW1zKHN0cnVj
dCBhZGFwdGVyICphZGFwLCBib29sIHNsZWVwX29rKTsNCiAgICAgaW50IHQ0X2ZpbHRlcl9maWVs
ZF9zaGlmdChjb25zdCBzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgaW50IGZpbHRlcl9zZWwpOw0KICAg
ICBpbnQgdDRfcG9ydF9pbml0KHN0cnVjdCBhZGFwdGVyICphZGFwLCBpbnQgbWJveCwgaW50IHBm
LCBpbnQgdmYsIGludCBwb3J0X2lkKTsNCiAgICAgdm9pZCB0NF9mYXRhbF9lcnIoc3RydWN0IGFk
YXB0ZXIgKmFkYXB0ZXIpOw0KICAgIEBAIC01OTQsMjAgKzU5NiwyMSBAQCBpbnQgdDRfY29uZmln
X3ZpX3JzcyhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgaW50IG1ib3gNCiAgICAgCQkgICAgIHVu
c2lnbmVkIGludCBmbGFncywgdW5zaWduZWQgaW50IGRlZnEsIHVuc2lnbmVkIGludCBza2V5aWR4
LA0KICAgICAJCSAgICAgdW5zaWduZWQgaW50IHNrZXkpOw0KICAgICBpbnQgdDRfcmVhZF9yc3Mo
c3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUxNiAqZW50cmllcyk7DQogICAgLXZvaWQgdDRfZndf
dHBfcGlvX3J3KHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgKnZhbHMsIHVuc2lnbmVkIGludCBu
cmVncywNCiAgICAtCQkgIHVuc2lnbmVkIGludCBzdGFydF9pbmRleCwgdW5zaWduZWQgaW50IHJ3
KTsNCiAgICAtdm9pZCB0NF9yZWFkX3Jzc19rZXkoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUz
MiAqa2V5KTsNCiAgICAtdm9pZCB0NF93cml0ZV9yc3Nfa2V5KHN0cnVjdCBhZGFwdGVyICphZGFw
LCB1MzIgKmtleSwgaW50IGlkeCk7DQogICAgLXZvaWQgdDRfcmVhZF9yc3NfcGZfY29uZmlnKHN0
cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1bnNpZ25lZCBpbnQgaW5kZXgsIHUzMiAqdmFscCk7DQog
ICAgLXZvaWQgdDRfd3JpdGVfcnNzX3BmX2NvbmZpZyhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwg
dW5zaWduZWQgaW50IGluZGV4LCB1MzIgdmFsKTsNCiAgICArdm9pZCB0NF9yZWFkX3Jzc19rZXko
c3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUzMiAqa2V5LCBib29sIHNsZWVwX29rKTsNCiAgICAr
dm9pZCB0NF93cml0ZV9yc3Nfa2V5KHN0cnVjdCBhZGFwdGVyICphZGFwLCBjb25zdCB1MzIgKmtl
eSwgaW50IGlkeCwNCiAgICArCQkgICAgICBib29sIHNsZWVwX29rKTsNCiAgICArdm9pZCB0NF9y
ZWFkX3Jzc19wZl9jb25maWcoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuc2lnbmVkIGludCBp
bmRleCwNCiAgICArCQkJICAgdTMyICp2YWxwLCBib29sIHNsZWVwX29rKTsNCiAgICArdm9pZCB0
NF93cml0ZV9yc3NfcGZfY29uZmlnKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1bnNpZ25lZCBp
bnQgaW5kZXgsDQogICAgKwkJCSAgICB1MzIgdmFsLCBib29sIHNsZWVwX29rKTsNCiAgICAgdm9p
ZCB0NF9yZWFkX3Jzc192Zl9jb25maWcoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuc2lnbmVk
IGludCBpbmRleCwNCiAgICAtCQkJICAgdTMyICp2ZmwsIHUzMiAqdmZoKTsNCiAgICArCQkJICAg
dTMyICp2ZmwsIHUzMiAqdmZoLCBib29sIHNsZWVwX29rKTsNCiAgICAgdm9pZCB0NF93cml0ZV9y
c3NfdmZfY29uZmlnKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1bnNpZ25lZCBpbnQgaW5kZXgs
DQogICAgLQkJCSAgICB1MzIgdmZsLCB1MzIgdmZoKTsNCiAgICAtdTMyIHQ0X3JlYWRfcnNzX3Bm
X21hcChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlcik7DQogICAgLXZvaWQgdDRfd3JpdGVfcnNzX3Bm
X21hcChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgdTMyIHBmbWFwKTsNCiAgICAtdTMyIHQ0X3Jl
YWRfcnNzX3BmX21hc2soc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpOw0KICAgIC12b2lkIHQ0X3dy
aXRlX3Jzc19wZl9tYXNrKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1MzIgcGZtYXNrKTsNCiAg
ICArCQkJICAgIHUzMiB2ZmwsIHUzMiB2ZmgsIGJvb2wgc2xlZXBfb2spOw0KICAgICt1MzIgdDRf
cmVhZF9yc3NfcGZfbWFwKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCBib29sIHNsZWVwX29rKTsN
CiAgICArdm9pZCB0NF93cml0ZV9yc3NfcGZfbWFwKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1
MzIgcGZtYXAsIGJvb2wgc2xlZXBfb2spOw0KICAgICt1MzIgdDRfcmVhZF9yc3NfcGZfbWFzayhz
dHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgYm9vbCBzbGVlcF9vayk7DQogICAgK3ZvaWQgdDRfd3Jp
dGVfcnNzX3BmX21hc2soc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUzMiBwZm1hc2ssIGJvb2wg
c2xlZXBfb2spOw0KICAgICBpbnQgdDRfbXBzX3NldF9hY3RpdmVfcG9ydHMoc3RydWN0IGFkYXB0
ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBwb3J0X21hc2spOw0KICAgICB2b2lkIHQ0X3BtdHhfZ2V0
X3N0YXRzKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgY250W10sIHU2NCBjeWNsZXNbXSk7DQog
ICAgIHZvaWQgdDRfcG1yeF9nZXRfc3RhdHMoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBjbnRb
XSwgdTY0IGN5Y2xlc1tdKTsNCiAgICBAQCAtNjUzLDE5ICs2NTYsMjQgQEAgdm9pZCB0NF9yZWFk
X210dV90Ymwoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUxNiAqbXR1cywgDQogICAgIHZvaWQgdDRf
cmVhZF9jb25nX3RibChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTE2IGluY3JbTk1UVVNdW05DQ1RS
TF9XSU5dKTsNCiAgICAgdm9pZCB0NF9yZWFkX3BhY2VfdGJsKHN0cnVjdCBhZGFwdGVyICphZGFw
LCB1bnNpZ25lZCBpbnQgcGFjZV92YWxzW05UWF9TQ0hFRF0pOw0KICAgICB2b2lkIHQ0X2dldF90
eF9zY2hlZChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHNjaGVkLCB1bnNpZ25l
ZCBpbnQgKmticHMsDQogICAgLQkJICAgICB1bnNpZ25lZCBpbnQgKmlwZyk7DQogICAgKwkJICAg
ICB1bnNpZ25lZCBpbnQgKmlwZywgYm9vbCBzbGVlcF9vayk7DQogICAgIHZvaWQgdDRfdHBfd3Jf
Yml0c19pbmRpcmVjdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IGFkZHIsDQog
ICAgIAkJCSAgICB1bnNpZ25lZCBpbnQgbWFzaywgdW5zaWduZWQgaW50IHZhbCk7DQogICAgIHZv
aWQgdDRfdHBfcmVhZF9sYShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTY0ICpsYV9idWYsIHVuc2ln
bmVkIGludCAqd3JwdHIpOw0KICAgIC12b2lkIHQ0X3RwX2dldF9lcnJfc3RhdHMoc3RydWN0IGFk
YXB0ZXIgKmFkYXAsIHN0cnVjdCB0cF9lcnJfc3RhdHMgKnN0KTsNCiAgICAtdm9pZCB0NF90cF9n
ZXRfcHJveHlfc3RhdHMoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCB0cF9wcm94eV9zdGF0
cyAqc3QpOw0KICAgIC12b2lkIHQ0X3RwX2dldF9jcGxfc3RhdHMoc3RydWN0IGFkYXB0ZXIgKmFk
YXAsIHN0cnVjdCB0cF9jcGxfc3RhdHMgKnN0KTsNCiAgICAtdm9pZCB0NF90cF9nZXRfcmRtYV9z
dGF0cyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHRwX3JkbWFfc3RhdHMgKnN0KTsNCiAg
ICAtdm9pZCB0NF9nZXRfdXNtX3N0YXRzKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3QgdHBf
dXNtX3N0YXRzICpzdCk7DQogICAgK3ZvaWQgdDRfdHBfZ2V0X2Vycl9zdGF0cyhzdHJ1Y3QgYWRh
cHRlciAqYWRhcCwgc3RydWN0IHRwX2Vycl9zdGF0cyAqc3QsDQogICAgKwkJCSBib29sIHNsZWVw
X29rKTsNCiAgICArdm9pZCB0NF90cF9nZXRfcHJveHlfc3RhdHMoc3RydWN0IGFkYXB0ZXIgKmFk
YXAsIHN0cnVjdCB0cF9wcm94eV9zdGF0cyAqc3QsDQogICAgKyAgICAJCQkgICBib29sIHNsZWVw
X29rKTsNCiAgICArdm9pZCB0NF90cF9nZXRfY3BsX3N0YXRzKHN0cnVjdCBhZGFwdGVyICphZGFw
LCBzdHJ1Y3QgdHBfY3BsX3N0YXRzICpzdCwNCiAgICArCQkJIGJvb2wgc2xlZXBfb2spOw0KICAg
ICt2b2lkIHQ0X3RwX2dldF9yZG1hX3N0YXRzKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qg
dHBfcmRtYV9zdGF0cyAqc3QsDQogICAgKwkJCSAgYm9vbCBzbGVlcF9vayk7DQogICAgK3ZvaWQg
dDRfZ2V0X3VzbV9zdGF0cyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHRwX3VzbV9zdGF0
cyAqc3QsDQogICAgKwkJICAgICAgYm9vbCBzbGVlcF9vayk7DQogICAgIHZvaWQgdDRfdHBfZ2V0
X3RjcF9zdGF0cyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHRwX3RjcF9zdGF0cyAqdjQs
DQogICAgLQkJCSBzdHJ1Y3QgdHBfdGNwX3N0YXRzICp2Nik7DQogICAgKwkJCSBzdHJ1Y3QgdHBf
dGNwX3N0YXRzICp2NiwgYm9vbCBzbGVlcF9vayk7DQogICAgIHZvaWQgdDRfZ2V0X2Zjb2Vfc3Rh
dHMoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBpZHgsDQogICAgLQkJICAgICAg
IHN0cnVjdCB0cF9mY29lX3N0YXRzICpzdCk7DQogICAgKwkJICAgICAgIHN0cnVjdCB0cF9mY29l
X3N0YXRzICpzdCwgYm9vbCBzbGVlcF9vayk7DQogICAgIHZvaWQgdDRfbG9hZF9tdHVzKHN0cnVj
dCBhZGFwdGVyICphZGFwLCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqbXR1cywNCiAgICAgCQkgIGNv
bnN0IHVuc2lnbmVkIHNob3J0ICphbHBoYSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKmJldGEpOw0K
ICAgICANCiAgICBAQCAtNjc2LDcgKzY4NCw4IEBAIGludCB0NF9zZXRfc2NoZWRfaXBnKHN0cnVj
dCBhZGFwdGVyICphZGFwLCBpbnQgc2NoZWQsIA0KICAgICBpbnQgdDRfc2V0X3BhY2VfdGJsKHN0
cnVjdCBhZGFwdGVyICphZGFwLCBjb25zdCB1bnNpZ25lZCBpbnQgKnBhY2VfdmFscywNCiAgICAg
CQkgICAgdW5zaWduZWQgaW50IHN0YXJ0LCB1bnNpZ25lZCBpbnQgbik7DQogICAgIHZvaWQgdDRf
Z2V0X2NoYW5fdHhyYXRlKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1NjQgKm5pY19yYXRlLCB1NjQg
Km9mbGRfcmF0ZSk7DQogICAgLWludCB0NF9zZXRfZmlsdGVyX21vZGUoc3RydWN0IGFkYXB0ZXIg
KmFkYXAsIHVuc2lnbmVkIGludCBtb2RlX21hcCk7DQogICAgK2ludCB0NF9zZXRfZmlsdGVyX21v
ZGUoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBtb2RlX21hcCwNCiAgICArICAg
IGJvb2wgc2xlZXBfb2spOw0KICAgICB2b2lkIHQ0X21rX2ZpbHRkZWx3cih1bnNpZ25lZCBpbnQg
ZnRpZCwgc3RydWN0IGZ3X2ZpbHRlcl93ciAqd3IsIGludCBxaWQpOw0KICAgICANCiAgICAgdm9p
ZCB0NF93b2xfbWFnaWNfZW5hYmxlKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1bnNpZ25lZCBpbnQg
cG9ydCwgY29uc3QgdTggKmFkZHIpOw0KICAgIEBAIC03NjYsNiArNzc1LDcgQEAgaW50IHQ0X3Nn
ZV9jdHh0X3JkX2JkKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1bnNpZ25lZCBpDQogICAgIAkJICAg
ICAgdTMyICpkYXRhKTsNCiAgICAgaW50IHQ0X3NnZV9jdHh0X2ZsdXNoKHN0cnVjdCBhZGFwdGVy
ICphZGFwLCB1bnNpZ25lZCBpbnQgbWJveCk7DQogICAgIGNvbnN0IGNoYXIgKnQ0X2xpbmtfZG93
bl9yY19zdHIodW5zaWduZWQgY2hhciBsaW5rX2Rvd25fcmMpOw0KICAgICtpbnQgdDRfdXBkYXRl
X3BvcnRfaW5mbyhzdHJ1Y3QgcG9ydF9pbmZvICpwaSk7DQogICAgIGludCB0NF9oYW5kbGVfZndf
cnBsKHN0cnVjdCBhZGFwdGVyICphZGFwLCBjb25zdCBfX2JlNjQgKnJwbCk7DQogICAgIGludCB0
NF9md2FkZHJzcGFjZV93cml0ZShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IG1i
b3gsIHUzMiBhZGRyLCB1MzIgdmFsKTsNCiAgICAgaW50IHQ0X3NjaGVkX2NvbmZpZyhzdHJ1Y3Qg
YWRhcHRlciAqYWRhcHRlciwgaW50IHR5cGUsIGludCBtaW5tYXhlbiwNCiAgICBAQCAtNzg3LDYg
Kzc5NywxNSBAQCBpbnQgdDRfY29uZmlnX3dhdGNoZG9nKHN0cnVjdCBhZGFwdGVyICphZGFwdGVy
LCB1bnNpZ24NCiAgICAgaW50IHQ0X2dldF9kZXZsb2dfbGV2ZWwoc3RydWN0IGFkYXB0ZXIgKmFk
YXB0ZXIsIHVuc2lnbmVkIGludCAqbGV2ZWwpOw0KICAgICBpbnQgdDRfc2V0X2RldmxvZ19sZXZl
bChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgdW5zaWduZWQgaW50IGxldmVsKTsNCiAgICAgdm9p
ZCB0NF9zZ2VfZGVjb2RlX2lkbWFfc3RhdGUoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIGludCBz
dGF0ZSk7DQogICAgKw0KICAgICt2b2lkIHQ0X3RwX3Bpb19yZWFkKHN0cnVjdCBhZGFwdGVyICph
ZGFwLCB1MzIgKmJ1ZmYsIHUzMiBucmVncywNCiAgICArCQkgICAgdTMyIHN0YXJ0X2luZGV4LCBi
b29sIHNsZWVwX29rKTsNCiAgICArdm9pZCB0NF90cF9waW9fd3JpdGUoc3RydWN0IGFkYXB0ZXIg
KmFkYXAsIGNvbnN0IHUzMiAqYnVmZiwgdTMyIG5yZWdzLA0KICAgICsJCSAgICAgdTMyIHN0YXJ0
X2luZGV4LCBib29sIHNsZWVwX29rKTsNCiAgICArdm9pZCB0NF90cF90bV9waW9fcmVhZChzdHJ1
Y3QgYWRhcHRlciAqYWRhcCwgdTMyICpidWZmLCB1MzIgbnJlZ3MsDQogICAgKwkJICAgICAgIHUz
MiBzdGFydF9pbmRleCwgYm9vbCBzbGVlcF9vayk7DQogICAgK3ZvaWQgdDRfdHBfbWliX3JlYWQo
c3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiAqYnVmZiwgdTMyIG5yZWdzLA0KICAgICsJCSAgICB1
MzIgc3RhcnRfaW5kZXgsIGJvb2wgc2xlZXBfb2spOw0KICAgICANCiAgICAgc3RhdGljIGlubGlu
ZSBpbnQgdDR2Zl9xdWVyeV9wYXJhbXMoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsDQogICAgIAkJ
CQkgICAgdW5zaWduZWQgaW50IG5wYXJhbXMsIGNvbnN0IHUzMiAqcGFyYW1zLA0KICAgIA0KICAg
IE1vZGlmaWVkOiBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9jb21tb24vdDRfaHcuYw0KICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KICAgIC0tLSBzdGFibGUvMTAvc3lzL2Rldi9jeGdiZS9jb21t
b24vdDRfaHcuYwlUaHUgT2N0IDEwIDIyOjQ5OjQ1IDIwMTkJKHIzNTM0MTcpDQogICAgKysrIHN0
YWJsZS8xMC9zeXMvZGV2L2N4Z2JlL2NvbW1vbi90NF9ody5jCVRodSBPY3QgMTAgMjM6Mjc6MDIg
MjAxOQkocjM1MzQxOCkNCiAgICBAQCAtNDY2LDcgKzQ2Niw3IEBAIHN0YXRpYyBpbnQgdDRfZWRj
X2Vycl9yZWFkKHN0cnVjdCBhZGFwdGVyICphZGFwLCBpbnQgaQ0KICAgICAJCUNIX1dBUk4oYWRh
cCwgIiVzOiBUNCBOT1Qgc3VwcG9ydGVkLlxuIiwgX19mdW5jX18pOw0KICAgICAJCXJldHVybiAw
Ow0KICAgICAJfQ0KICAgIC0JaWYgKGlkeCAhPSAwICYmIGlkeCAhPSAxKSB7DQogICAgKwlpZiAo
aWR4ICE9IE1FTV9FREMwICYmIGlkeCAhPSBNRU1fRURDMSkgew0KICAgICAJCUNIX1dBUk4oYWRh
cCwgIiVzOiBpZHggJWQgTk9UIHN1cHBvcnRlZC5cbiIsIF9fZnVuY19fLCBpZHgpOw0KICAgICAJ
CXJldHVybiAwOw0KICAgICAJfQ0KICAgIEBAIC04ODMsNyArODgzLDggQEAgdm9pZCB0NF9nZXRf
cmVncyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTggKmJ1Ziwgc2l6ZV90DQogICAgIAkJMHhkMDEw
LCAweGQwM2MsDQogICAgIAkJMHhkZmMwLCAweGRmZTAsDQogICAgIAkJMHhlMDAwLCAweGVhN2Ms
DQogICAgLQkJMHhmMDAwLCAweDExMTkwLA0KICAgICsJCTB4ZjAwMCwgMHgxMTExMCwNCiAgICAr
CQkweDExMTE4LCAweDExMTkwLA0KICAgICAJCTB4MTkwNDAsIDB4MTkwNmMsDQogICAgIAkJMHgx
OTA3OCwgMHgxOTA4MCwNCiAgICAgCQkweDE5MDhjLCAweDE5MGU0LA0KICAgIEBAIC0xNDIxLDgg
KzE0MjIsNiBAQCB2b2lkIHQ0X2dldF9yZWdzKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1OCAqYnVm
LCBzaXplX3QNCiAgICAgCQkweDFmZjAwLCAweDFmZjg0LA0KICAgICAJCTB4MWZmYzAsIDB4MWZm
YzgsDQogICAgIAkJMHgzMDAwMCwgMHgzMDAzMCwNCiAgICAtCQkweDMwMDM4LCAweDMwMDM4LA0K
ICAgIC0JCTB4MzAwNDAsIDB4MzAwNDAsDQogICAgIAkJMHgzMDEwMCwgMHgzMDE0NCwNCiAgICAg
CQkweDMwMTkwLCAweDMwMWEwLA0KICAgICAJCTB4MzAxYTgsIDB4MzAxYjgsDQogICAgQEAgLTE1
MzMsOCArMTUzMiw2IEBAIHZvaWQgdDRfZ2V0X3JlZ3Moc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHU4
ICpidWYsIHNpemVfdA0KICAgICAJCTB4MzNjM2MsIDB4MzNjNTAsDQogICAgIAkJMHgzM2NmMCwg
MHgzM2NmYywNCiAgICAgCQkweDM0MDAwLCAweDM0MDMwLA0KICAgIC0JCTB4MzQwMzgsIDB4MzQw
MzgsDQogICAgLQkJMHgzNDA0MCwgMHgzNDA0MCwNCiAgICAgCQkweDM0MTAwLCAweDM0MTQ0LA0K
ICAgICAJCTB4MzQxOTAsIDB4MzQxYTAsDQogICAgIAkJMHgzNDFhOCwgMHgzNDFiOCwNCiAgICBA
QCAtMTY0NSw4ICsxNjQyLDYgQEAgdm9pZCB0NF9nZXRfcmVncyhzdHJ1Y3QgYWRhcHRlciAqYWRh
cCwgdTggKmJ1Ziwgc2l6ZV90DQogICAgIAkJMHgzN2MzYywgMHgzN2M1MCwNCiAgICAgCQkweDM3
Y2YwLCAweDM3Y2ZjLA0KICAgICAJCTB4MzgwMDAsIDB4MzgwMzAsDQogICAgLQkJMHgzODAzOCwg
MHgzODAzOCwNCiAgICAtCQkweDM4MDQwLCAweDM4MDQwLA0KICAgICAJCTB4MzgxMDAsIDB4Mzgx
NDQsDQogICAgIAkJMHgzODE5MCwgMHgzODFhMCwNCiAgICAgCQkweDM4MWE4LCAweDM4MWI4LA0K
ICAgIEBAIC0xNzU3LDggKzE3NTIsNiBAQCB2b2lkIHQ0X2dldF9yZWdzKHN0cnVjdCBhZGFwdGVy
ICphZGFwLCB1OCAqYnVmLCBzaXplX3QNCiAgICAgCQkweDNiYzNjLCAweDNiYzUwLA0KICAgICAJ
CTB4M2JjZjAsIDB4M2JjZmMsDQogICAgIAkJMHgzYzAwMCwgMHgzYzAzMCwNCiAgICAtCQkweDNj
MDM4LCAweDNjMDM4LA0KICAgIC0JCTB4M2MwNDAsIDB4M2MwNDAsDQogICAgIAkJMHgzYzEwMCwg
MHgzYzE0NCwNCiAgICAgCQkweDNjMTkwLCAweDNjMWEwLA0KICAgICAJCTB4M2MxYTgsIDB4M2Mx
YjgsDQogICAgQEAgLTIyNTEsMTMgKzIyNDQsNiBAQCB2b2lkIHQ0X2dldF9yZWdzKHN0cnVjdCBh
ZGFwdGVyICphZGFwLCB1OCAqYnVmLCBzaXplX3QNCiAgICAgCQkweDFmZjAwLCAweDFmZjg0LA0K
ICAgICAJCTB4MWZmYzAsIDB4MWZmYzgsDQogICAgIAkJMHgzMDAwMCwgMHgzMDAzMCwNCiAgICAt
CQkweDMwMDM4LCAweDMwMDM4LA0KICAgIC0JCTB4MzAwNDAsIDB4MzAwNDAsDQogICAgLQkJMHgz
MDA0OCwgMHgzMDA0OCwNCiAgICAtCQkweDMwMDUwLCAweDMwMDUwLA0KICAgIC0JCTB4MzAwNWMs
IDB4MzAwNjAsDQogICAgLQkJMHgzMDA2OCwgMHgzMDA2OCwNCiAgICAtCQkweDMwMDcwLCAweDMw
MDcwLA0KICAgICAJCTB4MzAxMDAsIDB4MzAxNjgsDQogICAgIAkJMHgzMDE5MCwgMHgzMDFhMCwN
CiAgICAgCQkweDMwMWE4LCAweDMwMWI4LA0KICAgIEBAIC0yMzIwLDEzICsyMzA2LDEyIEBAIHZv
aWQgdDRfZ2V0X3JlZ3Moc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHU4ICpidWYsIHNpemVfdA0KICAg
ICAJCTB4MzI2YTgsIDB4MzI2YTgsDQogICAgIAkJMHgzMjZlYywgMHgzMjZlYywNCiAgICAgCQkw
eDMyYTAwLCAweDMyYWJjLA0KICAgIC0JCTB4MzJiMDAsIDB4MzJiMzgsDQogICAgKwkJMHgzMmIw
MCwgMHgzMmIxOCwNCiAgICArCQkweDMyYjIwLCAweDMyYjM4LA0KICAgICAJCTB4MzJiNDAsIDB4
MzJiNTgsDQogICAgIAkJMHgzMmI2MCwgMHgzMmI3OCwNCiAgICAgCQkweDMyYzAwLCAweDMyYzAw
LA0KICAgICAJCTB4MzJjMDgsIDB4MzJjM2MsDQogICAgLQkJMHgzMmUwMCwgMHgzMmUyYywNCiAg
ICAtCQkweDMyZjAwLCAweDMyZjJjLA0KICAgICAJCTB4MzMwMDAsIDB4MzMwMmMsDQogICAgIAkJ
MHgzMzAzNCwgMHgzMzA1MCwNCiAgICAgCQkweDMzMDU4LCAweDMzMDU4LA0KICAgIEBAIC0yMzkx
LDEzICsyMzc2LDYgQEAgdm9pZCB0NF9nZXRfcmVncyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTgg
KmJ1Ziwgc2l6ZV90DQogICAgIAkJMHgzM2MzOCwgMHgzM2M1MCwNCiAgICAgCQkweDMzY2YwLCAw
eDMzY2ZjLA0KICAgICAJCTB4MzQwMDAsIDB4MzQwMzAsDQogICAgLQkJMHgzNDAzOCwgMHgzNDAz
OCwNCiAgICAtCQkweDM0MDQwLCAweDM0MDQwLA0KICAgIC0JCTB4MzQwNDgsIDB4MzQwNDgsDQog
ICAgLQkJMHgzNDA1MCwgMHgzNDA1MCwNCiAgICAtCQkweDM0MDVjLCAweDM0MDYwLA0KICAgIC0J
CTB4MzQwNjgsIDB4MzQwNjgsDQogICAgLQkJMHgzNDA3MCwgMHgzNDA3MCwNCiAgICAgCQkweDM0
MTAwLCAweDM0MTY4LA0KICAgICAJCTB4MzQxOTAsIDB4MzQxYTAsDQogICAgIAkJMHgzNDFhOCwg
MHgzNDFiOCwNCiAgICBAQCAtMjQ2MCwxMyArMjQzOCwxMiBAQCB2b2lkIHQ0X2dldF9yZWdzKHN0
cnVjdCBhZGFwdGVyICphZGFwLCB1OCAqYnVmLCBzaXplX3QNCiAgICAgCQkweDM2NmE4LCAweDM2
NmE4LA0KICAgICAJCTB4MzY2ZWMsIDB4MzY2ZWMsDQogICAgIAkJMHgzNmEwMCwgMHgzNmFiYywN
CiAgICAtCQkweDM2YjAwLCAweDM2YjM4LA0KICAgICsJCTB4MzZiMDAsIDB4MzZiMTgsDQogICAg
KwkJMHgzNmIyMCwgMHgzNmIzOCwNCiAgICAgCQkweDM2YjQwLCAweDM2YjU4LA0KICAgICAJCTB4
MzZiNjAsIDB4MzZiNzgsDQogICAgIAkJMHgzNmMwMCwgMHgzNmMwMCwNCiAgICAgCQkweDM2YzA4
LCAweDM2YzNjLA0KICAgIC0JCTB4MzZlMDAsIDB4MzZlMmMsDQogICAgLQkJMHgzNmYwMCwgMHgz
NmYyYywNCiAgICAgCQkweDM3MDAwLCAweDM3MDJjLA0KICAgICAJCTB4MzcwMzQsIDB4MzcwNTAs
DQogICAgIAkJMHgzNzA1OCwgMHgzNzA1OCwNCiAgICBAQCAtMjY5Nyw2ICsyNjc0LDcgQEAgc3Ry
dWN0IHQ0X3ZwZF9oZHIgew0KICAgICAjZGVmaW5lIEVFUFJPTV9NQVhfUE9MTAkJNTAwMAkJLyog
eCA1MDAwID09IDUwbXMgKi8NCiAgICAgDQogICAgICNkZWZpbmUgRUVQUk9NX1NUQVRfQUREUgkw
eDdiZmMNCiAgICArI2RlZmluZSBWUERfU0laRQkJMHg4MDANCiAgICAgI2RlZmluZSBWUERfQkFT
RQkJMHg0MDANCiAgICAgI2RlZmluZSBWUERfQkFTRV9PTEQJCTANCiAgICAgI2RlZmluZSBWUERf
TEVOCQkJMTAyNA0KICAgIEBAIC0zMDM3LDEzICszMDE1LDEzIEBAIGVudW0gew0KICAgICAJU0Zf
QVRURU1QVFMgPSAxMCwJLyogbWF4IHJldHJpZXMgZm9yIFNGIG9wZXJhdGlvbnMgKi8NCiAgICAg
DQogICAgIAkvKiBmbGFzaCBjb21tYW5kIG9wY29kZXMgKi8NCiAgICAtCVNGX1BST0dfUEFHRSAg
ICA9IDIsCS8qIHByb2dyYW0gcGFnZSAqLw0KICAgICsJU0ZfUFJPR19QQUdFICAgID0gMiwJLyog
cHJvZ3JhbSAyNTZCIHBhZ2UgKi8NCiAgICAgCVNGX1dSX0RJU0FCTEUgICA9IDQsCS8qIGRpc2Fi
bGUgd3JpdGVzICovDQogICAgIAlTRl9SRF9TVEFUVVMgICAgPSA1LAkvKiByZWFkIHN0YXR1cyBy
ZWdpc3RlciAqLw0KICAgICAJU0ZfV1JfRU5BQkxFICAgID0gNiwJLyogZW5hYmxlIHdyaXRlcyAq
Lw0KICAgICAJU0ZfUkRfREFUQV9GQVNUID0gMHhiLAkvKiByZWFkIGZsYXNoICovDQogICAgIAlT
Rl9SRF9JRAk9IDB4OWYsCS8qIHJlYWQgSUQgKi8NCiAgICAtCVNGX0VSQVNFX1NFQ1RPUiA9IDB4
ZDgsCS8qIGVyYXNlIHNlY3RvciAqLw0KICAgICsJU0ZfRVJBU0VfU0VDVE9SID0gMHhkOCwJLyog
ZXJhc2UgNjRLQiBzZWN0b3IgKi8NCiAgICAgfTsNCiAgICAgDQogICAgIC8qKg0KICAgIEBAIC0z
NjgwLDkgKzM2NTgsNiBAQCB2b2lkIHQ0X3VscHJ4X3JlYWRfbGEoc3RydWN0IGFkYXB0ZXIgKmFk
YXAsIHUzMiAqbGFfYnUNCiAgICAgCX0NCiAgICAgfQ0KICAgICANCiAgICAtI2RlZmluZSBBRFZF
UlRfTUFTSyAoVl9GV19QT1JUX0NBUF9TUEVFRChNX0ZXX1BPUlRfQ0FQX1NQRUVEKSB8IFwNCiAg
ICAtCQkgICAgIEZXX1BPUlRfQ0FQX0FORUcpDQogICAgLQ0KICAgICAvKioNCiAgICAgICoJdDRf
bGlua19sMWNmZyAtIGFwcGx5IGxpbmsgY29uZmlndXJhdGlvbiB0byBNQUMvUEhZDQogICAgICAq
CUBwaHk6IHRoZSBQSFkgdG8gc2V0dXANCiAgICBAQCAtMzcwMSw3ICszNjc2LDcgQEAgaW50IHQ0
X2xpbmtfbDFjZmcoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBtDQogICAgIHsN
CiAgICAgCXN0cnVjdCBmd19wb3J0X2NtZCBjOw0KICAgICAJdW5zaWduZWQgaW50IG1kaSA9IFZf
RldfUE9SVF9DQVBfTURJKEZXX1BPUlRfQ0FQX01ESV9BVVRPKTsNCiAgICAtCXVuc2lnbmVkIGlu
dCBmYywgZmVjOw0KICAgICsJdW5zaWduZWQgaW50IGFuZWcsIGZjLCBmZWMsIHNwZWVkLCByY2Fw
Ow0KICAgICANCiAgICAgCWZjID0gMDsNCiAgICAgCWlmIChsYy0+cmVxdWVzdGVkX2ZjICYgUEFV
U0VfUlgpDQogICAgQEAgLTM3MTEsMTIgKzM2ODYsNTEgQEAgaW50IHQ0X2xpbmtfbDFjZmcoc3Ry
dWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBtDQogICAgIA0KICAgICAJZmVjID0gMDsN
CiAgICAgCWlmIChsYy0+cmVxdWVzdGVkX2ZlYyAmIEZFQ19SUykNCiAgICAtCQlmZWMgfD0gRldf
UE9SVF9DQVBfRkVDX1JTOw0KICAgIC0JaWYgKGxjLT5yZXF1ZXN0ZWRfZmVjICYgRkVDX0JBU0VS
X1JTKQ0KICAgIC0JCWZlYyB8PSBGV19QT1JUX0NBUF9GRUNfQkFTRVJfUlM7DQogICAgLQlpZiAo
bGMtPnJlcXVlc3RlZF9mZWMgJiBGRUNfUkVTRVJWRUQpDQogICAgLQkJZmVjIHw9IEZXX1BPUlRf
Q0FQX0ZFQ19SRVNFUlZFRDsNCiAgICArCQlmZWMgPSBGV19QT1JUX0NBUF9GRUNfUlM7DQogICAg
KwllbHNlIGlmIChsYy0+cmVxdWVzdGVkX2ZlYyAmIEZFQ19CQVNFUl9SUykNCiAgICArCQlmZWMg
PSBGV19QT1JUX0NBUF9GRUNfQkFTRVJfUlM7DQogICAgIA0KICAgICsJaWYgKCEobGMtPnN1cHBv
cnRlZCAmIEZXX1BPUlRfQ0FQX0FORUcpIHx8DQogICAgKwkgICAgbGMtPnJlcXVlc3RlZF9hbmVn
ID09IEFVVE9ORUdfRElTQUJMRSkgew0KICAgICsJCWFuZWcgPSAwOw0KICAgICsJCXN3aXRjaCAo
bGMtPnJlcXVlc3RlZF9zcGVlZCkgew0KICAgICsJCWNhc2UgMTAwMDAwOg0KICAgICsJCQlzcGVl
ZCA9IEZXX1BPUlRfQ0FQX1NQRUVEXzEwMEc7DQogICAgKwkJCWJyZWFrOw0KICAgICsJCWNhc2Ug
NDAwMDA6DQogICAgKwkJCXNwZWVkID0gRldfUE9SVF9DQVBfU1BFRURfNDBHOw0KICAgICsJCQli
cmVhazsNCiAgICArCQljYXNlIDI1MDAwOg0KICAgICsJCQlzcGVlZCA9IEZXX1BPUlRfQ0FQX1NQ
RUVEXzI1RzsNCiAgICArCQkJYnJlYWs7DQogICAgKwkJY2FzZSAxMDAwMDoNCiAgICArCQkJc3Bl
ZWQgPSBGV19QT1JUX0NBUF9TUEVFRF8xMEc7DQogICAgKwkJCWJyZWFrOw0KICAgICsJCWNhc2Ug
MTAwMDoNCiAgICArCQkJc3BlZWQgPSBGV19QT1JUX0NBUF9TUEVFRF8xRzsNCiAgICArCQkJYnJl
YWs7DQogICAgKwkJY2FzZSAxMDA6DQogICAgKwkJCXNwZWVkID0gRldfUE9SVF9DQVBfU1BFRURf
MTAwTTsNCiAgICArCQkJYnJlYWs7DQogICAgKwkJZGVmYXVsdDoNCiAgICArCQkJcmV0dXJuIC1F
SU5WQUw7DQogICAgKwkJCWJyZWFrOw0KICAgICsJCX0NCiAgICArCX0gZWxzZSB7DQogICAgKwkJ
YW5lZyA9IEZXX1BPUlRfQ0FQX0FORUc7DQogICAgKwkJc3BlZWQgPSBsYy0+c3VwcG9ydGVkICYN
CiAgICArCQkgICAgVl9GV19QT1JUX0NBUF9TUEVFRChNX0ZXX1BPUlRfQ0FQX1NQRUVEKTsNCiAg
ICArCX0NCiAgICArDQogICAgKwlyY2FwID0gYW5lZyB8IHNwZWVkIHwgZmMgfCBmZWMgfCBtZGk7
DQogICAgKwlpZiAoKHJjYXAgfCBsYy0+c3VwcG9ydGVkKSAhPSBsYy0+c3VwcG9ydGVkKSB7DQog
ICAgKyNpZmRlZiBJTlZBUklBTlRTDQogICAgKwkJQ0hfV0FSTihhZGFwLCAicmNhcCAweCUwOHgs
IHBjYXAgMHglMDh4XG4iLCByY2FwLA0KICAgICsJCSAgICBsYy0+c3VwcG9ydGVkKTsNCiAgICAr
I2VuZGlmDQogICAgKwkJcmNhcCAmPSBsYy0+c3VwcG9ydGVkOw0KICAgICsJfQ0KICAgICsNCiAg
ICAgCW1lbXNldCgmYywgMCwgc2l6ZW9mKGMpKTsNCiAgICAgCWMub3BfdG9fcG9ydGlkID0gY3B1
X3RvX2JlMzIoVl9GV19DTURfT1AoRldfUE9SVF9DTUQpIHwNCiAgICAgCQkJCSAgICAgRl9GV19D
TURfUkVRVUVTVCB8IEZfRldfQ01EX0VYRUMgfA0KICAgIEBAIC0zNzI0LDIxICszNzM4LDkgQEAg
aW50IHQ0X2xpbmtfbDFjZmcoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCBtDQog
ICAgIAljLmFjdGlvbl90b19sZW4xNiA9DQogICAgIAkJY3B1X3RvX2JlMzIoVl9GV19QT1JUX0NN
RF9BQ1RJT04oRldfUE9SVF9BQ1RJT05fTDFfQ0ZHKSB8DQogICAgIAkJCSAgICBGV19MRU4xNihj
KSk7DQogICAgKwljLnUubDFjZmcucmNhcCA9IGNwdV90b19iZTMyKHJjYXApOw0KICAgICANCiAg
ICAtCWlmICghKGxjLT5zdXBwb3J0ZWQgJiBGV19QT1JUX0NBUF9BTkVHKSkgew0KICAgIC0JCWMu
dS5sMWNmZy5yY2FwID0gY3B1X3RvX2JlMzIoKGxjLT5zdXBwb3J0ZWQgJiBBRFZFUlRfTUFTSykg
fA0KICAgIC0JCQkJCSAgICAgZmMgfCBmZWMpOw0KICAgIC0JCWxjLT5mYyA9IGxjLT5yZXF1ZXN0
ZWRfZmMgJiB+UEFVU0VfQVVUT05FRzsNCiAgICAtCQlsYy0+ZmVjID0gbGMtPnJlcXVlc3RlZF9m
ZWM7DQogICAgLQl9IGVsc2UgaWYgKGxjLT5hdXRvbmVnID09IEFVVE9ORUdfRElTQUJMRSkgew0K
ICAgIC0JCWMudS5sMWNmZy5yY2FwID0gY3B1X3RvX2JlMzIobGMtPnJlcXVlc3RlZF9zcGVlZCB8
DQogICAgLQkJCQkJICAgICBmYyB8IGZlYyB8IG1kaSk7DQogICAgLQkJbGMtPmZjID0gbGMtPnJl
cXVlc3RlZF9mYyAmIH5QQVVTRV9BVVRPTkVHOw0KICAgIC0JCWxjLT5mZWMgPSBsYy0+cmVxdWVz
dGVkX2ZlYzsNCiAgICAtCX0gZWxzZQ0KICAgIC0JCWMudS5sMWNmZy5yY2FwID0gY3B1X3RvX2Jl
MzIobGMtPmFkdmVydGlzaW5nIHwgZmMgfCBmZWMgfCBtZGkpOw0KICAgIC0NCiAgICAtCXJldHVy
biB0NF93cl9tYm94KGFkYXAsIG1ib3gsICZjLCBzaXplb2YoYyksIE5VTEwpOw0KICAgICsJcmV0
dXJuIHQ0X3dyX21ib3hfbnMoYWRhcCwgbWJveCwgJmMsIHNpemVvZihjKSwgTlVMTCk7DQogICAg
IH0NCiAgICAgDQogICAgIC8qKg0KICAgIEBAIC0zOTc3LDYgKzM5NzksOSBAQCBzdGF0aWMgdm9p
ZCBzZ2VfaW50cl9oYW5kbGVyKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKQ0KICAgICAJCSAgIlNH
RSB0b28gbWFueSBwcmlvcml0eSBpbmdyZXNzIGNvbnRleHRzIiwgLTEsIDAgfSwNCiAgICAgCQl7
IEZfSU5HUkVTU19TSVpFX0VSUiwgIlNHRSBpbGxlZ2FsIGluZ3Jlc3MgUUlEIiwgLTEsIDAgfSwN
CiAgICAgCQl7IEZfRUdSRVNTX1NJWkVfRVJSLCAiU0dFIGlsbGVnYWwgZWdyZXNzIFFJRCIsIC0x
LCAwIH0sDQogICAgKwkJeyBGX0VSUl9QQ0lFX0VSUk9SMCB8IEZfRVJSX1BDSUVfRVJST1IxIHwN
CiAgICArCQkgIEZfRVJSX1BDSUVfRVJST1IyIHwgRl9FUlJfUENJRV9FUlJPUjMsDQogICAgKwkJ
ICAiU0dFIFBDSWUgZXJyb3IgZm9yIGEgREJQIHRocmVhZCIsIC0xLCAwIH0sDQogICAgIAkJeyAw
IH0NCiAgICAgCX07DQogICAgIA0KICAgIEBAIC0zOTkyLDggKzM5OTcsNiBAQCBzdGF0aWMgdm9p
ZCBzZ2VfaW50cl9oYW5kbGVyKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKQ0KICAgICAgCSogRm9y
IG5vdywgdHJlYXQgYmVsb3cgaW50ZXJydXB0cyBhcyBmYXRhbCBzbyB0aGF0IHdlIGRpc2FibGUg
U0dFIGFuZA0KICAgICAgCSogZ2V0IGJldHRlciBkZWJ1ZyAqLw0KICAgICAJc3RhdGljIGNvbnN0
IHN0cnVjdCBpbnRyX2luZm8gdDZfc2dlX2ludHJfaW5mb1tdID0gew0KICAgIC0JCXsgRl9FUlJf
UENJRV9FUlJPUjAgfCBGX0VSUl9QQ0lFX0VSUk9SMSwNCiAgICAtCQkgICJTR0UgUENJZSBlcnJv
ciBmb3IgYSBEQlAgdGhyZWFkIiwgLTEsIDEgfSwNCiAgICAgCQl7IEZfRkFUQUxfV1JFX0xFTiwN
CiAgICAgCQkgICJTR0UgQWN0dWFsIFdSRSBwYWNrZXQgaXMgbGVzcyB0aGFuIGFkdmVydGl6ZWQg
bGVuZ3RoIiwNCiAgICAgCQkgIC0xLCAxIH0sDQogICAgQEAgLTQwNDgsNiArNDA1MSw3IEBAIHN0
YXRpYyB2b2lkIGNpbV9pbnRyX2hhbmRsZXIoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpDQogICAg
IAkJeyBGX01CSE9TVFBBUkVSUiwgIkNJTSBtYWlsYm94IGhvc3QgcGFyaXR5IGVycm9yIiwgLTEs
IDEgfSwNCiAgICAgCQl7IEZfVElFUUlOUEFSRVJSSU5ULCAiQ0lNIFRJRVEgb3V0Z29pbmcgcGFy
aXR5IGVycm9yIiwgLTEsIDEgfSwNCiAgICAgCQl7IEZfVElFUU9VVFBBUkVSUklOVCwgIkNJTSBU
SUVRIGluY29taW5nIHBhcml0eSBlcnJvciIsIC0xLCAxIH0sDQogICAgKwkJeyBGX1RJTUVSMElO
VCwgIkNJTSBUSU1FUjAgaW50ZXJydXB0IiwgLTEsIDEgfSwNCiAgICAgCQl7IDAgfQ0KICAgICAJ
fTsNCiAgICAgCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50cl9pbmZvIGNpbV91cGludHJfaW5mb1td
ID0gew0KICAgIEBAIC00MDgxLDExICs0MDg1LDI2IEBAIHN0YXRpYyB2b2lkIGNpbV9pbnRyX2hh
bmRsZXIoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpDQogICAgIAkJeyBGX1RJTUVPVVRNQUlOVCAs
ICJDSU0gUElGIE1BIHRpbWVvdXQiLCAtMSwgMSB9LA0KICAgICAJCXsgMCB9DQogICAgIAl9Ow0K
ICAgICsJdTMyIHZhbCwgZndfZXJyOw0KICAgICAJaW50IGZhdDsNCiAgICAgDQogICAgLQlpZiAo
dDRfcmVhZF9yZWcoYWRhcHRlciwgQV9QQ0lFX0ZXKSAmIEZfUENJRV9GV19FUlIpDQogICAgKwlm
d19lcnIgPSB0NF9yZWFkX3JlZyhhZGFwdGVyLCBBX1BDSUVfRlcpOw0KICAgICsJaWYgKGZ3X2Vy
ciAmIEZfUENJRV9GV19FUlIpDQogICAgIAkJdDRfcmVwb3J0X2Z3X2Vycm9yKGFkYXB0ZXIpOw0K
ICAgICANCiAgICArCS8qIFdoZW4gdGhlIEZpcm13YXJlIGRldGVjdHMgYW4gaW50ZXJuYWwgZXJy
b3Igd2hpY2ggbm9ybWFsbHkgd291bGRuJ3QNCiAgICArCSAqIHJhaXNlIGEgSG9zdCBJbnRlcnJ1
cHQsIGl0IGZvcmNlcyBhIENJTSBUaW1lcjAgaW50ZXJydXB0IGluIG9yZGVyDQogICAgKwkgKiB0
byBtYWtlIHN1cmUgdGhlIEhvc3Qgc2VlcyB0aGUgRmlybXdhcmUgQ3Jhc2guICBTbyBpZiB3ZSBo
YXZlIGENCiAgICArCSAqIFRpbWVyMCBpbnRlcnJ1cHQgYW5kIGRvbid0IHNlZSBhIEZpcm13YXJl
IENyYXNoLCBpZ25vcmUgdGhlIFRpbWVyMA0KICAgICsJICogaW50ZXJydXB0Lg0KICAgICsJICov
DQogICAgKwl2YWwgPSB0NF9yZWFkX3JlZyhhZGFwdGVyLCBBX0NJTV9IT1NUX0lOVF9DQVVTRSk7
DQogICAgKwlpZiAodmFsICYgRl9USU1FUjBJTlQpDQogICAgKwkJaWYgKCEoZndfZXJyICYgRl9Q
Q0lFX0ZXX0VSUikgfHwNCiAgICArCQkgICAgKEdfUENJRV9GV19FVkFMKGZ3X2VycikgIT0gUENJ
RV9GV19FVkFMX0NSQVNIKSkNCiAgICArCQkJdDRfd3JpdGVfcmVnKGFkYXB0ZXIsIEFfQ0lNX0hP
U1RfSU5UX0NBVVNFLA0KICAgICsJCQkJICAgICBGX1RJTUVSMElOVCk7DQogICAgKw0KICAgICAJ
ZmF0ID0gdDRfaGFuZGxlX2ludHJfc3RhdHVzKGFkYXB0ZXIsIEFfQ0lNX0hPU1RfSU5UX0NBVVNF
LA0KICAgICAJCQkJICAgIGNpbV9pbnRyX2luZm8pICsNCiAgICAgCSAgICAgIHQ0X2hhbmRsZV9p
bnRyX3N0YXR1cyhhZGFwdGVyLCBBX0NJTV9IT1NUX1VQQUNDX0lOVF9DQVVTRSwNCiAgICBAQCAt
NDgzMyw1NSArNDg1MiwxNzcgQEAgaW50IHQ0X3JlYWRfcnNzKHN0cnVjdCBhZGFwdGVyICphZGFw
dGVyLCB1MTYgKm1hcCkNCiAgICAgfQ0KICAgICANCiAgICAgLyoqDQogICAgLSAqCXQ0X2Z3X3Rw
X3Bpb19ydyAtIEFjY2VzcyBUUCBQSU8gdGhyb3VnaCBMRFNUDQogICAgLSAqCUBhZGFwOiB0aGUg
YWRhcHRlcg0KICAgIC0gKglAdmFsczogd2hlcmUgdGhlIGluZGlyZWN0IHJlZ2lzdGVyIHZhbHVl
cyBhcmUgc3RvcmVkL3dyaXR0ZW4NCiAgICAtICoJQG5yZWdzOiBob3cgbWFueSBpbmRpcmVjdCBy
ZWdpc3RlcnMgdG8gcmVhZC93cml0ZQ0KICAgIC0gKglAc3RhcnRfaWR4OiBpbmRleCBvZiBmaXJz
dCBpbmRpcmVjdCByZWdpc3RlciB0byByZWFkL3dyaXRlDQogICAgLSAqCUBydzogUmVhZCAoMSkg
b3IgV3JpdGUgKDApDQogICAgKyAqIHQ0X3RwX2Z3X2xkc3RfcncgLSBBY2Nlc3MgVFAgaW5kaXJl
Y3QgcmVnaXN0ZXIgdGhyb3VnaCBMRFNUDQogICAgKyAqIEBhZGFwOiB0aGUgYWRhcHRlcg0KICAg
ICsgKiBAY21kOiBUUCBmdyBsZHN0IGFkZHJlc3Mgc3BhY2UgdHlwZQ0KICAgICsgKiBAdmFsczog
d2hlcmUgdGhlIGluZGlyZWN0IHJlZ2lzdGVyIHZhbHVlcyBhcmUgc3RvcmVkL3dyaXR0ZW4NCiAg
ICArICogQG5yZWdzOiBob3cgbWFueSBpbmRpcmVjdCByZWdpc3RlcnMgdG8gcmVhZC93cml0ZQ0K
ICAgICsgKiBAc3RhcnRfaWR4OiBpbmRleCBvZiBmaXJzdCBpbmRpcmVjdCByZWdpc3RlciB0byBy
ZWFkL3dyaXRlDQogICAgKyAqIEBydzogUmVhZCAoMSkgb3IgV3JpdGUgKDApDQogICAgKyAqIEBz
bGVlcF9vazogaWYgdHJ1ZSB3ZSBtYXkgc2xlZXAgd2hpbGUgYXdhaXRpbmcgY29tbWFuZCBjb21w
bGV0aW9uDQogICAgICAqDQogICAgLSAqCUFjY2VzcyBUUCBQSU8gcmVnaXN0ZXJzIHRocm91Z2gg
TERTVA0KICAgIC0gKi8NCiAgICAtdm9pZCB0NF9md190cF9waW9fcncoc3RydWN0IGFkYXB0ZXIg
KmFkYXAsIHUzMiAqdmFscywgdW5zaWduZWQgaW50IG5yZWdzLA0KICAgIC0JCSAgICAgdW5zaWdu
ZWQgaW50IHN0YXJ0X2luZGV4LCB1bnNpZ25lZCBpbnQgcncpDQogICAgKyAqIEFjY2VzcyBUUCBp
bmRpcmVjdCByZWdpc3RlcnMgdGhyb3VnaCBMRFNUDQogICAgKyAqKi8NCiAgICArc3RhdGljIGlu
dCB0NF90cF9md19sZHN0X3J3KHN0cnVjdCBhZGFwdGVyICphZGFwLCBpbnQgY21kLCB1MzIgKnZh
bHMsDQogICAgKwkJCSAgICB1bnNpZ25lZCBpbnQgbnJlZ3MsIHVuc2lnbmVkIGludCBzdGFydF9p
bmRleCwNCiAgICArCQkJICAgIHVuc2lnbmVkIGludCBydywgYm9vbCBzbGVlcF9vaykNCiAgICAg
ew0KICAgIC0JaW50IHJldCwgaTsNCiAgICAtCWludCBjbWQgPSBGV19MRFNUX0FERFJTUENfVFBf
UElPOw0KICAgICsJaW50IHJldCA9IDA7DQogICAgKwl1bnNpZ25lZCBpbnQgaTsNCiAgICAgCXN0
cnVjdCBmd19sZHN0X2NtZCBjOw0KICAgICANCiAgICAtCWZvciAoaSA9IDAgOyBpIDwgbnJlZ3M7
IGkrKykgew0KICAgICsJZm9yIChpID0gMDsgaSA8IG5yZWdzOyBpKyspIHsNCiAgICAgCQltZW1z
ZXQoJmMsIDAsIHNpemVvZihjKSk7DQogICAgIAkJYy5vcF90b19hZGRyc3BhY2UgPSBjcHVfdG9f
YmUzMihWX0ZXX0NNRF9PUChGV19MRFNUX0NNRCkgfA0KICAgICAJCQkJCQlGX0ZXX0NNRF9SRVFV
RVNUIHwNCiAgICAgCQkJCQkJKHJ3ID8gRl9GV19DTURfUkVBRCA6DQogICAgLQkJCQkJCSAgICAg
Rl9GV19DTURfV1JJVEUpIHwNCiAgICArCQkJCQkJICAgICAgRl9GV19DTURfV1JJVEUpIHwNCiAg
ICAgCQkJCQkJVl9GV19MRFNUX0NNRF9BRERSU1BBQ0UoY21kKSk7DQogICAgIAkJYy5jeWNsZXNf
dG9fbGVuMTYgPSBjcHVfdG9fYmUzMihGV19MRU4xNihjKSk7DQogICAgIA0KICAgICAJCWMudS5h
ZGRydmFsLmFkZHIgPSBjcHVfdG9fYmUzMihzdGFydF9pbmRleCArIGkpOw0KICAgICAJCWMudS5h
ZGRydmFsLnZhbCAgPSBydyA/IDAgOiBjcHVfdG9fYmUzMih2YWxzW2ldKTsNCiAgICAtCQlyZXQg
PSB0NF93cl9tYm94KGFkYXAsIGFkYXAtPm1ib3gsICZjLCBzaXplb2YoYyksICZjKTsNCiAgICAt
CQlpZiAocmV0ID09IDApIHsNCiAgICAtCQkJaWYgKHJ3KQ0KICAgIC0JCQkJdmFsc1tpXSA9IGJl
MzJfdG9fY3B1KGMudS5hZGRydmFsLnZhbCk7DQogICAgLQkJfQ0KICAgICsJCXJldCA9IHQ0X3dy
X21ib3hfbWVhdChhZGFwLCBhZGFwLT5tYm94LCAmYywgc2l6ZW9mKGMpLCAmYywNCiAgICArCQkJ
CSAgICAgIHNsZWVwX29rKTsNCiAgICArCQlpZiAocmV0KQ0KICAgICsJCQlyZXR1cm4gcmV0Ow0K
ICAgICsNCiAgICArCQlpZiAocncpDQogICAgKwkJCXZhbHNbaV0gPSBiZTMyX3RvX2NwdShjLnUu
YWRkcnZhbC52YWwpOw0KICAgICAJfQ0KICAgICsJcmV0dXJuIDA7DQogICAgIH0NCiAgICAgDQog
ICAgIC8qKg0KICAgICsgKiB0NF90cF9pbmRpcmVjdF9ydyAtIFJlYWQvV3JpdGUgVFAgaW5kaXJl
Y3QgcmVnaXN0ZXIgdGhyb3VnaCBMRFNUIG9yIGJhY2tkb29yDQogICAgKyAqIEBhZGFwOiB0aGUg
YWRhcHRlcg0KICAgICsgKiBAcmVnX2FkZHI6IEFkZHJlc3MgUmVnaXN0ZXINCiAgICArICogQHJl
Z19kYXRhOiBEYXRhIHJlZ2lzdGVyDQogICAgKyAqIEBidWZmOiB3aGVyZSB0aGUgaW5kaXJlY3Qg
cmVnaXN0ZXIgdmFsdWVzIGFyZSBzdG9yZWQvd3JpdHRlbg0KICAgICsgKiBAbnJlZ3M6IGhvdyBt
YW55IGluZGlyZWN0IHJlZ2lzdGVycyB0byByZWFkL3dyaXRlDQogICAgKyAqIEBzdGFydF9pbmRl
eDogaW5kZXggb2YgZmlyc3QgaW5kaXJlY3QgcmVnaXN0ZXIgdG8gcmVhZC93cml0ZQ0KICAgICsg
KiBAcnc6IFJFQUQoMSkgb3IgV1JJVEUoMCkNCiAgICArICogQHNsZWVwX29rOiBpZiB0cnVlIHdl
IG1heSBzbGVlcCB3aGlsZSBhd2FpdGluZyBjb21tYW5kIGNvbXBsZXRpb24NCiAgICArICoNCiAg
ICArICogUmVhZC9Xcml0ZSBUUCBpbmRpcmVjdCByZWdpc3RlcnMgdGhyb3VnaCBMRFNUIGlmIHBv
c3NpYmxlLg0KICAgICsgKiBFbHNlLCB1c2UgYmFja2Rvb3IgYWNjZXNzDQogICAgKyAqKi8NCiAg
ICArc3RhdGljIHZvaWQgdDRfdHBfaW5kaXJlY3Rfcncoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUz
MiByZWdfYWRkciwgdTMyIHJlZ19kYXRhLA0KICAgICsJCQkgICAgICB1MzIgKmJ1ZmYsIHUzMiBu
cmVncywgdTMyIHN0YXJ0X2luZGV4LCBpbnQgcncsDQogICAgKwkJCSAgICAgIGJvb2wgc2xlZXBf
b2spDQogICAgK3sNCiAgICArCWludCByYyA9IC1FSU5WQUw7DQogICAgKwlpbnQgY21kOw0KICAg
ICsNCiAgICArCXN3aXRjaCAocmVnX2FkZHIpIHsNCiAgICArCWNhc2UgQV9UUF9QSU9fQUREUjoN
CiAgICArCQljbWQgPSBGV19MRFNUX0FERFJTUENfVFBfUElPOw0KICAgICsJCWJyZWFrOw0KICAg
ICsJY2FzZSBBX1RQX1RNX1BJT19BRERSOg0KICAgICsJCWNtZCA9IEZXX0xEU1RfQUREUlNQQ19U
UF9UTV9QSU87DQogICAgKwkJYnJlYWs7DQogICAgKwljYXNlIEFfVFBfTUlCX0lOREVYOg0KICAg
ICsJCWNtZCA9IEZXX0xEU1RfQUREUlNQQ19UUF9NSUI7DQogICAgKwkJYnJlYWs7DQogICAgKwlk
ZWZhdWx0Og0KICAgICsJCWdvdG8gaW5kaXJlY3RfYWNjZXNzOw0KICAgICsJfQ0KICAgICsNCiAg
ICArCWlmICh0NF91c2VfbGRzdChhZGFwKSkNCiAgICArCQlyYyA9IHQ0X3RwX2Z3X2xkc3Rfcnco
YWRhcCwgY21kLCBidWZmLCBucmVncywgc3RhcnRfaW5kZXgsIHJ3LA0KICAgICsJCQkJICAgICAg
c2xlZXBfb2spOw0KICAgICsNCiAgICAraW5kaXJlY3RfYWNjZXNzOg0KICAgICsNCiAgICArCWlm
IChyYykgew0KICAgICsJCWlmIChydykNCiAgICArCQkJdDRfcmVhZF9pbmRpcmVjdChhZGFwLCBy
ZWdfYWRkciwgcmVnX2RhdGEsIGJ1ZmYsIG5yZWdzLA0KICAgICsJCQkJCSBzdGFydF9pbmRleCk7
DQogICAgKwkJZWxzZQ0KICAgICsJCQl0NF93cml0ZV9pbmRpcmVjdChhZGFwLCByZWdfYWRkciwg
cmVnX2RhdGEsIGJ1ZmYsIG5yZWdzLA0KICAgICsJCQkJCSAgc3RhcnRfaW5kZXgpOw0KICAgICsJ
fQ0KICAgICt9DQogICAgKw0KICAgICsvKioNCiAgICArICogdDRfdHBfcGlvX3JlYWQgLSBSZWFk
IFRQIFBJTyByZWdpc3RlcnMNCiAgICArICogQGFkYXA6IHRoZSBhZGFwdGVyDQogICAgKyAqIEBi
dWZmOiB3aGVyZSB0aGUgaW5kaXJlY3QgcmVnaXN0ZXIgdmFsdWVzIGFyZSB3cml0dGVuDQogICAg
KyAqIEBucmVnczogaG93IG1hbnkgaW5kaXJlY3QgcmVnaXN0ZXJzIHRvIHJlYWQNCiAgICArICog
QHN0YXJ0X2luZGV4OiBpbmRleCBvZiBmaXJzdCBpbmRpcmVjdCByZWdpc3RlciB0byByZWFkDQog
ICAgKyAqIEBzbGVlcF9vazogaWYgdHJ1ZSB3ZSBtYXkgc2xlZXAgd2hpbGUgYXdhaXRpbmcgY29t
bWFuZCBjb21wbGV0aW9uDQogICAgKyAqDQogICAgKyAqIFJlYWQgVFAgUElPIFJlZ2lzdGVycw0K
ICAgICsgKiovDQogICAgK3ZvaWQgdDRfdHBfcGlvX3JlYWQoc3RydWN0IGFkYXB0ZXIgKmFkYXAs
IHUzMiAqYnVmZiwgdTMyIG5yZWdzLA0KICAgICsJCSAgICB1MzIgc3RhcnRfaW5kZXgsIGJvb2wg
c2xlZXBfb2spDQogICAgK3sNCiAgICArCXQ0X3RwX2luZGlyZWN0X3J3KGFkYXAsIEFfVFBfUElP
X0FERFIsIEFfVFBfUElPX0RBVEEsIGJ1ZmYsIG5yZWdzLA0KICAgICsJCQkgIHN0YXJ0X2luZGV4
LCAxLCBzbGVlcF9vayk7DQogICAgK30NCiAgICArDQogICAgKy8qKg0KICAgICsgKiB0NF90cF9w
aW9fd3JpdGUgLSBXcml0ZSBUUCBQSU8gcmVnaXN0ZXJzDQogICAgKyAqIEBhZGFwOiB0aGUgYWRh
cHRlcg0KICAgICsgKiBAYnVmZjogd2hlcmUgdGhlIGluZGlyZWN0IHJlZ2lzdGVyIHZhbHVlcyBh
cmUgc3RvcmVkDQogICAgKyAqIEBucmVnczogaG93IG1hbnkgaW5kaXJlY3QgcmVnaXN0ZXJzIHRv
IHdyaXRlDQogICAgKyAqIEBzdGFydF9pbmRleDogaW5kZXggb2YgZmlyc3QgaW5kaXJlY3QgcmVn
aXN0ZXIgdG8gd3JpdGUNCiAgICArICogQHNsZWVwX29rOiBpZiB0cnVlIHdlIG1heSBzbGVlcCB3
aGlsZSBhd2FpdGluZyBjb21tYW5kIGNvbXBsZXRpb24NCiAgICArICoNCiAgICArICogV3JpdGUg
VFAgUElPIFJlZ2lzdGVycw0KICAgICsgKiovDQogICAgK3ZvaWQgdDRfdHBfcGlvX3dyaXRlKHN0
cnVjdCBhZGFwdGVyICphZGFwLCBjb25zdCB1MzIgKmJ1ZmYsIHUzMiBucmVncywNCiAgICArCQkg
ICAgIHUzMiBzdGFydF9pbmRleCwgYm9vbCBzbGVlcF9vaykNCiAgICArew0KICAgICsJdDRfdHBf
aW5kaXJlY3RfcncoYWRhcCwgQV9UUF9QSU9fQUREUiwgQV9UUF9QSU9fREFUQSwNCiAgICArCSAg
ICBfX0RFQ09OU1QodTMyICosIGJ1ZmYpLCBucmVncywgc3RhcnRfaW5kZXgsIDAsIHNsZWVwX29r
KTsNCiAgICArfQ0KICAgICsNCiAgICArLyoqDQogICAgKyAqIHQ0X3RwX3RtX3Bpb19yZWFkIC0g
UmVhZCBUUCBUTSBQSU8gcmVnaXN0ZXJzDQogICAgKyAqIEBhZGFwOiB0aGUgYWRhcHRlcg0KICAg
ICsgKiBAYnVmZjogd2hlcmUgdGhlIGluZGlyZWN0IHJlZ2lzdGVyIHZhbHVlcyBhcmUgd3JpdHRl
bg0KICAgICsgKiBAbnJlZ3M6IGhvdyBtYW55IGluZGlyZWN0IHJlZ2lzdGVycyB0byByZWFkDQog
ICAgKyAqIEBzdGFydF9pbmRleDogaW5kZXggb2YgZmlyc3QgaW5kaXJlY3QgcmVnaXN0ZXIgdG8g
cmVhZA0KICAgICsgKiBAc2xlZXBfb2s6IGlmIHRydWUgd2UgbWF5IHNsZWVwIHdoaWxlIGF3YWl0
aW5nIGNvbW1hbmQgY29tcGxldGlvbg0KICAgICsgKg0KICAgICsgKiBSZWFkIFRQIFRNIFBJTyBS
ZWdpc3RlcnMNCiAgICArICoqLw0KICAgICt2b2lkIHQ0X3RwX3RtX3Bpb19yZWFkKHN0cnVjdCBh
ZGFwdGVyICphZGFwLCB1MzIgKmJ1ZmYsIHUzMiBucmVncywNCiAgICArCQkgICAgICAgdTMyIHN0
YXJ0X2luZGV4LCBib29sIHNsZWVwX29rKQ0KICAgICt7DQogICAgKwl0NF90cF9pbmRpcmVjdF9y
dyhhZGFwLCBBX1RQX1RNX1BJT19BRERSLCBBX1RQX1RNX1BJT19EQVRBLCBidWZmLA0KICAgICsJ
CQkgIG5yZWdzLCBzdGFydF9pbmRleCwgMSwgc2xlZXBfb2spOw0KICAgICt9DQogICAgKw0KICAg
ICsvKioNCiAgICArICogdDRfdHBfbWliX3JlYWQgLSBSZWFkIFRQIE1JQiByZWdpc3RlcnMNCiAg
ICArICogQGFkYXA6IHRoZSBhZGFwdGVyDQogICAgKyAqIEBidWZmOiB3aGVyZSB0aGUgaW5kaXJl
Y3QgcmVnaXN0ZXIgdmFsdWVzIGFyZSB3cml0dGVuDQogICAgKyAqIEBucmVnczogaG93IG1hbnkg
aW5kaXJlY3QgcmVnaXN0ZXJzIHRvIHJlYWQNCiAgICArICogQHN0YXJ0X2luZGV4OiBpbmRleCBv
ZiBmaXJzdCBpbmRpcmVjdCByZWdpc3RlciB0byByZWFkDQogICAgKyAqIEBzbGVlcF9vazogaWYg
dHJ1ZSB3ZSBtYXkgc2xlZXAgd2hpbGUgYXdhaXRpbmcgY29tbWFuZCBjb21wbGV0aW9uDQogICAg
KyAqDQogICAgKyAqIFJlYWQgVFAgTUlCIFJlZ2lzdGVycw0KICAgICsgKiovDQogICAgK3ZvaWQg
dDRfdHBfbWliX3JlYWQoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiAqYnVmZiwgdTMyIG5yZWdz
LCB1MzIgc3RhcnRfaW5kZXgsDQogICAgKwkJICAgIGJvb2wgc2xlZXBfb2spDQogICAgK3sNCiAg
ICArCXQ0X3RwX2luZGlyZWN0X3J3KGFkYXAsIEFfVFBfTUlCX0lOREVYLCBBX1RQX01JQl9EQVRB
LCBidWZmLCBucmVncywNCiAgICArCQkJICBzdGFydF9pbmRleCwgMSwgc2xlZXBfb2spOw0KICAg
ICt9DQogICAgKw0KICAgICsvKioNCiAgICAgICoJdDRfcmVhZF9yc3Nfa2V5IC0gcmVhZCB0aGUg
Z2xvYmFsIFJTUyBrZXkNCiAgICAgICoJQGFkYXA6IHRoZSBhZGFwdGVyDQogICAgICAqCUBrZXk6
IDEwLWVudHJ5IGFycmF5IGhvbGRpbmcgdGhlIDMyMC1iaXQgUlNTIGtleQ0KICAgICsgKiAJQHNs
ZWVwX29rOiBpZiB0cnVlIHdlIG1heSBzbGVlcCB3aGlsZSBhd2FpdGluZyBjb21tYW5kIGNvbXBs
ZXRpb24NCiAgICAgICoNCiAgICAgICoJUmVhZHMgdGhlIGdsb2JhbCAzMjAtYml0IFJTUyBrZXku
DQogICAgICAqLw0KICAgIC12b2lkIHQ0X3JlYWRfcnNzX2tleShzdHJ1Y3QgYWRhcHRlciAqYWRh
cCwgdTMyICprZXkpDQogICAgK3ZvaWQgdDRfcmVhZF9yc3Nfa2V5KHN0cnVjdCBhZGFwdGVyICph
ZGFwLCB1MzIgKmtleSwgYm9vbCBzbGVlcF9vaykNCiAgICAgew0KICAgIC0JaWYgKHQ0X3VzZV9s
ZHN0KGFkYXApKQ0KICAgIC0JCXQ0X2Z3X3RwX3Bpb19ydyhhZGFwLCBrZXksIDEwLCBBX1RQX1JT
U19TRUNSRVRfS0VZMCwgMSk7DQogICAgLQllbHNlDQogICAgLQkJdDRfcmVhZF9pbmRpcmVjdChh
ZGFwLCBBX1RQX1BJT19BRERSLCBBX1RQX1BJT19EQVRBLCBrZXksIDEwLA0KICAgIC0JCQkJIEFf
VFBfUlNTX1NFQ1JFVF9LRVkwKTsNCiAgICArCXQ0X3RwX3Bpb19yZWFkKGFkYXAsIGtleSwgMTAs
IEFfVFBfUlNTX1NFQ1JFVF9LRVkwLCBzbGVlcF9vayk7DQogICAgIH0NCiAgICAgDQogICAgIC8q
Kg0KICAgIEBAIC00ODg5LDEyICs1MDMwLDE0IEBAIHZvaWQgdDRfcmVhZF9yc3Nfa2V5KHN0cnVj
dCBhZGFwdGVyICphZGFwLCB1MzIgKmtleSkNCiAgICAgICoJQGFkYXA6IHRoZSBhZGFwdGVyDQog
ICAgICAqCUBrZXk6IDEwLWVudHJ5IGFycmF5IGhvbGRpbmcgdGhlIDMyMC1iaXQgUlNTIGtleQ0K
ICAgICAgKglAaWR4OiB3aGljaCBSU1Mga2V5IHRvIHdyaXRlDQogICAgKyAqIAlAc2xlZXBfb2s6
IGlmIHRydWUgd2UgbWF5IHNsZWVwIHdoaWxlIGF3YWl0aW5nIGNvbW1hbmQgY29tcGxldGlvbg0K
ICAgICAgKg0KICAgICAgKglXcml0ZXMgb25lIG9mIHRoZSBSU1Mga2V5cyB3aXRoIHRoZSBnaXZl
biAzMjAtYml0IHZhbHVlLiAgSWYgQGlkeCBpcw0KICAgICAgKgkwLi4xNSB0aGUgY29ycmVzcG9u
ZGluZyBlbnRyeSBpbiB0aGUgUlNTIGtleSB0YWJsZSBpcyB3cml0dGVuLA0KICAgICAgKglvdGhl
cndpc2UgdGhlIGdsb2JhbCBSU1Mga2V5IGlzIHdyaXR0ZW4uDQogICAgICAqLw0KICAgIC12b2lk
IHQ0X3dyaXRlX3Jzc19rZXkoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiAqa2V5LCBpbnQgaWR4
KQ0KICAgICt2b2lkIHQ0X3dyaXRlX3Jzc19rZXkoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIGNvbnN0
IHUzMiAqa2V5LCBpbnQgaWR4LA0KICAgICsJCSAgICAgIGJvb2wgc2xlZXBfb2spDQogICAgIHsN
CiAgICAgCXU4IHJzc19rZXlfYWRkcl9jbnQgPSAxNjsNCiAgICAgCXUzMiB2cnQgPSB0NF9yZWFk
X3JlZyhhZGFwLCBBX1RQX1JTU19DT05GSUdfVlJUKTsNCiAgICBAQCAtNDkwOCwxMSArNTA1MSw3
IEBAIHZvaWQgdDRfd3JpdGVfcnNzX2tleShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTMyICprZXks
IA0KICAgICAJICAgICh2cnQgJiBGX0tFWUVYVEVORCkgJiYgKEdfS0VZTU9ERSh2cnQpID09IDMp
KQ0KICAgICAJCXJzc19rZXlfYWRkcl9jbnQgPSAzMjsNCiAgICAgDQogICAgLQlpZiAodDRfdXNl
X2xkc3QoYWRhcCkpDQogICAgLQkJdDRfZndfdHBfcGlvX3J3KGFkYXAsIGtleSwgMTAsIEFfVFBf
UlNTX1NFQ1JFVF9LRVkwLCAwKTsNCiAgICAtCWVsc2UNCiAgICAtCQl0NF93cml0ZV9pbmRpcmVj
dChhZGFwLCBBX1RQX1BJT19BRERSLCBBX1RQX1BJT19EQVRBLCBrZXksIDEwLA0KICAgIC0JCQkJ
ICBBX1RQX1JTU19TRUNSRVRfS0VZMCk7DQogICAgKwl0NF90cF9waW9fd3JpdGUoYWRhcCwga2V5
LCAxMCwgQV9UUF9SU1NfU0VDUkVUX0tFWTAsIHNsZWVwX29rKTsNCiAgICAgDQogICAgIAlpZiAo
aWR4ID49IDAgJiYgaWR4IDwgcnNzX2tleV9hZGRyX2NudCkgew0KICAgICAJCWlmIChyc3Nfa2V5
X2FkZHJfY250ID4gMTYpDQogICAgQEAgLTQ5MzAsMTkgKzUwNjksMTUgQEAgdm9pZCB0NF93cml0
ZV9yc3Nfa2V5KHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgKmtleSwgDQogICAgICAqCUBhZGFw
dGVyOiB0aGUgYWRhcHRlcg0KICAgICAgKglAaW5kZXg6IHRoZSBlbnRyeSBpbiB0aGUgUEYgUlNT
IHRhYmxlIHRvIHJlYWQNCiAgICAgICoJQHZhbHA6IHdoZXJlIHRvIHN0b3JlIHRoZSByZXR1cm5l
ZCB2YWx1ZQ0KICAgICsgKiAJQHNsZWVwX29rOiBpZiB0cnVlIHdlIG1heSBzbGVlcCB3aGlsZSBh
d2FpdGluZyBjb21tYW5kIGNvbXBsZXRpb24NCiAgICAgICoNCiAgICAgICoJUmVhZHMgdGhlIFBG
IFJTUyBDb25maWd1cmF0aW9uIFRhYmxlIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggYW5kIHJldHVy
bnMNCiAgICAgICoJdGhlIHZhbHVlIGZvdW5kIHRoZXJlLg0KICAgICAgKi8NCiAgICAgdm9pZCB0
NF9yZWFkX3Jzc19wZl9jb25maWcoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuc2lnbmVkIGlu
dCBpbmRleCwNCiAgICAtCQkJICAgdTMyICp2YWxwKQ0KICAgICsJCQkgICB1MzIgKnZhbHAsIGJv
b2wgc2xlZXBfb2spDQogICAgIHsNCiAgICAtCWlmICh0NF91c2VfbGRzdChhZGFwdGVyKSkNCiAg
ICAtCQl0NF9md190cF9waW9fcncoYWRhcHRlciwgdmFscCwgMSwNCiAgICAtCQkJCUFfVFBfUlNT
X1BGMF9DT05GSUcgKyBpbmRleCwgMSk7DQogICAgLQllbHNlDQogICAgLQkJdDRfcmVhZF9pbmRp
cmVjdChhZGFwdGVyLCBBX1RQX1BJT19BRERSLCBBX1RQX1BJT19EQVRBLA0KICAgIC0JCQkJIHZh
bHAsIDEsIEFfVFBfUlNTX1BGMF9DT05GSUcgKyBpbmRleCk7DQogICAgKwl0NF90cF9waW9fcmVh
ZChhZGFwdGVyLCB2YWxwLCAxLCBBX1RQX1JTU19QRjBfQ09ORklHICsgaW5kZXgsIHNsZWVwX29r
KTsNCiAgICAgfQ0KICAgICANCiAgICAgLyoqDQogICAgQEAgLTQ5NTAsMTkgKzUwODUsMTYgQEAg
dm9pZCB0NF9yZWFkX3Jzc19wZl9jb25maWcoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuDQog
ICAgICAqCUBhZGFwdGVyOiB0aGUgYWRhcHRlcg0KICAgICAgKglAaW5kZXg6IHRoZSBlbnRyeSBp
biB0aGUgVkYgUlNTIHRhYmxlIHRvIHJlYWQNCiAgICAgICoJQHZhbDogdGhlIHZhbHVlIHRvIHN0
b3JlDQogICAgKyAqIAlAc2xlZXBfb2s6IGlmIHRydWUgd2UgbWF5IHNsZWVwIHdoaWxlIGF3YWl0
aW5nIGNvbW1hbmQgY29tcGxldGlvbg0KICAgICAgKg0KICAgICAgKglXcml0ZXMgdGhlIFBGIFJT
UyBDb25maWd1cmF0aW9uIFRhYmxlIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggd2l0aCB0aGUNCiAg
ICAgICoJc3BlY2lmaWVkIHZhbHVlLg0KICAgICAgKi8NCiAgICAgdm9pZCB0NF93cml0ZV9yc3Nf
cGZfY29uZmlnKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1bnNpZ25lZCBpbnQgaW5kZXgsDQog
ICAgLQkJCSAgICB1MzIgdmFsKQ0KICAgICsJCQkgICAgdTMyIHZhbCwgYm9vbCBzbGVlcF9vaykN
CiAgICAgew0KICAgIC0JaWYgKHQ0X3VzZV9sZHN0KGFkYXB0ZXIpKQ0KICAgIC0JCXQ0X2Z3X3Rw
X3Bpb19ydyhhZGFwdGVyLCAmdmFsLCAxLA0KICAgIC0JCQkJQV9UUF9SU1NfUEYwX0NPTkZJRyAr
IGluZGV4LCAwKTsNCiAgICAtCWVsc2UNCiAgICAtCQl0NF93cml0ZV9pbmRpcmVjdChhZGFwdGVy
LCBBX1RQX1BJT19BRERSLCBBX1RQX1BJT19EQVRBLA0KICAgIC0JCQkJICAmdmFsLCAxLCBBX1RQ
X1JTU19QRjBfQ09ORklHICsgaW5kZXgpOw0KICAgICsJdDRfdHBfcGlvX3dyaXRlKGFkYXB0ZXIs
ICZ2YWwsIDEsIEFfVFBfUlNTX1BGMF9DT05GSUcgKyBpbmRleCwNCiAgICArCQkJc2xlZXBfb2sp
Ow0KICAgICB9DQogICAgIA0KICAgICAvKioNCiAgICBAQCAtNDk3MSwxMiArNTEwMywxMyBAQCB2
b2lkIHQ0X3dyaXRlX3Jzc19wZl9jb25maWcoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUNCiAg
ICAgICoJQGluZGV4OiB0aGUgZW50cnkgaW4gdGhlIFZGIFJTUyB0YWJsZSB0byByZWFkDQogICAg
ICAqCUB2Zmw6IHdoZXJlIHRvIHN0b3JlIHRoZSByZXR1cm5lZCBWRkwNCiAgICAgICoJQHZmaDog
d2hlcmUgdG8gc3RvcmUgdGhlIHJldHVybmVkIFZGSA0KICAgICsgKiAJQHNsZWVwX29rOiBpZiB0
cnVlIHdlIG1heSBzbGVlcCB3aGlsZSBhd2FpdGluZyBjb21tYW5kIGNvbXBsZXRpb24NCiAgICAg
ICoNCiAgICAgICoJUmVhZHMgdGhlIFZGIFJTUyBDb25maWd1cmF0aW9uIFRhYmxlIGF0IHRoZSBz
cGVjaWZpZWQgaW5kZXggYW5kIHJldHVybnMNCiAgICAgICoJdGhlIChWRkwsIFZGSCkgdmFsdWVz
IGZvdW5kIHRoZXJlLg0KICAgICAgKi8NCiAgICAgdm9pZCB0NF9yZWFkX3Jzc192Zl9jb25maWco
c3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuc2lnbmVkIGludCBpbmRleCwNCiAgICAtCQkJICAg
dTMyICp2ZmwsIHUzMiAqdmZoKQ0KICAgICsJCQkgICB1MzIgKnZmbCwgdTMyICp2ZmgsIGJvb2wg
c2xlZXBfb2spDQogICAgIHsNCiAgICAgCXUzMiB2cnQsIG1hc2ssIGRhdGE7DQogICAgIA0KICAg
IEBAIC00OTk4LDE1ICs1MTMxLDggQEAgdm9pZCB0NF9yZWFkX3Jzc192Zl9jb25maWcoc3RydWN0
IGFkYXB0ZXIgKmFkYXB0ZXIsIHVuDQogICAgIAkvKg0KICAgICAJICogR3JhYiB0aGUgVkZML1ZG
SCB2YWx1ZXMgLi4uDQogICAgIAkgKi8NCiAgICAtCWlmICh0NF91c2VfbGRzdChhZGFwdGVyKSkg
ew0KICAgIC0JCXQ0X2Z3X3RwX3Bpb19ydyhhZGFwdGVyLCB2ZmwsIDEsIEFfVFBfUlNTX1ZGTF9D
T05GSUcsIDEpOw0KICAgIC0JCXQ0X2Z3X3RwX3Bpb19ydyhhZGFwdGVyLCB2ZmgsIDEsIEFfVFBf
UlNTX1ZGSF9DT05GSUcsIDEpOw0KICAgIC0JfSBlbHNlIHsNCiAgICAtCQl0NF9yZWFkX2luZGly
ZWN0KGFkYXB0ZXIsIEFfVFBfUElPX0FERFIsIEFfVFBfUElPX0RBVEEsDQogICAgLQkJCQkgdmZs
LCAxLCBBX1RQX1JTU19WRkxfQ09ORklHKTsNCiAgICAtCQl0NF9yZWFkX2luZGlyZWN0KGFkYXB0
ZXIsIEFfVFBfUElPX0FERFIsIEFfVFBfUElPX0RBVEEsDQogICAgLQkJCQkgdmZoLCAxLCBBX1RQ
X1JTU19WRkhfQ09ORklHKTsNCiAgICAtCX0NCiAgICArCXQ0X3RwX3Bpb19yZWFkKGFkYXB0ZXIs
IHZmbCwgMSwgQV9UUF9SU1NfVkZMX0NPTkZJRywgc2xlZXBfb2spOw0KICAgICsJdDRfdHBfcGlv
X3JlYWQoYWRhcHRlciwgdmZoLCAxLCBBX1RQX1JTU19WRkhfQ09ORklHLCBzbGVlcF9vayk7DQog
ICAgIH0NCiAgICAgDQogICAgIC8qKg0KICAgIEBAIC01MDIxLDcgKzUxNDcsNyBAQCB2b2lkIHQ0
X3JlYWRfcnNzX3ZmX2NvbmZpZyhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgdW4NCiAgICAgICoJ
c3BlY2lmaWVkIChWRkwsIFZGSCkgdmFsdWVzLg0KICAgICAgKi8NCiAgICAgdm9pZCB0NF93cml0
ZV9yc3NfdmZfY29uZmlnKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1bnNpZ25lZCBpbnQgaW5k
ZXgsDQogICAgLQkJCSAgICB1MzIgdmZsLCB1MzIgdmZoKQ0KICAgICsJCQkgICAgdTMyIHZmbCwg
dTMyIHZmaCwgYm9vbCBzbGVlcF9vaykNCiAgICAgew0KICAgICAJdTMyIHZydCwgbWFzaywgZGF0
YTsNCiAgICAgDQogICAgQEAgLTUwMzYsMTUgKzUxNjIsOCBAQCB2b2lkIHQ0X3dyaXRlX3Jzc192
Zl9jb25maWcoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUNCiAgICAgCS8qDQogICAgIAkgKiBM
b2FkIHVwIFZGTC9WRkggd2l0aCB0aGUgdmFsdWVzIHRvIGJlIHdyaXR0ZW4gLi4uDQogICAgIAkg
Ki8NCiAgICAtCWlmICh0NF91c2VfbGRzdChhZGFwdGVyKSkgew0KICAgIC0JCXQ0X2Z3X3RwX3Bp
b19ydyhhZGFwdGVyLCAmdmZsLCAxLCBBX1RQX1JTU19WRkxfQ09ORklHLCAwKTsNCiAgICAtCQl0
NF9md190cF9waW9fcncoYWRhcHRlciwgJnZmaCwgMSwgQV9UUF9SU1NfVkZIX0NPTkZJRywgMCk7
DQogICAgLQl9IGVsc2Ugew0KICAgIC0JCXQ0X3dyaXRlX2luZGlyZWN0KGFkYXB0ZXIsIEFfVFBf
UElPX0FERFIsIEFfVFBfUElPX0RBVEEsDQogICAgLQkJCQkgICZ2ZmwsIDEsIEFfVFBfUlNTX1ZG
TF9DT05GSUcpOw0KICAgIC0JCXQ0X3dyaXRlX2luZGlyZWN0KGFkYXB0ZXIsIEFfVFBfUElPX0FE
RFIsIEFfVFBfUElPX0RBVEEsDQogICAgLQkJCQkgICZ2ZmgsIDEsIEFfVFBfUlNTX1ZGSF9DT05G
SUcpOw0KICAgIC0JfQ0KICAgICsJdDRfdHBfcGlvX3dyaXRlKGFkYXB0ZXIsICZ2ZmwsIDEsIEFf
VFBfUlNTX1ZGTF9DT05GSUcsIHNsZWVwX29rKTsNCiAgICArCXQ0X3RwX3Bpb193cml0ZShhZGFw
dGVyLCAmdmZoLCAxLCBBX1RQX1JTU19WRkhfQ09ORklHLCBzbGVlcF9vayk7DQogICAgIA0KICAg
ICAJLyoNCiAgICAgCSAqIFdyaXRlIHRoZSBWRkwvVkZIIGludG8gdGhlIFZGIFRhYmxlIGF0IGlu
ZGV4J3RoIGxvY2F0aW9uLg0KICAgIEBAIC01MDU4LDE4ICs1MTc3LDE2IEBAIHZvaWQgdDRfd3Jp
dGVfcnNzX3ZmX2NvbmZpZyhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgdQ0KICAgICAvKioNCiAg
ICAgICoJdDRfcmVhZF9yc3NfcGZfbWFwIC0gcmVhZCBQRiBSU1MgTWFwDQogICAgICAqCUBhZGFw
dGVyOiB0aGUgYWRhcHRlcg0KICAgICsgKiAJQHNsZWVwX29rOiBpZiB0cnVlIHdlIG1heSBzbGVl
cCB3aGlsZSBhd2FpdGluZyBjb21tYW5kIGNvbXBsZXRpb24NCiAgICAgICoNCiAgICAgICoJUmVh
ZHMgdGhlIFBGIFJTUyBNYXAgcmVnaXN0ZXIgYW5kIHJldHVybnMgaXRzIHZhbHVlLg0KICAgICAg
Ki8NCiAgICAtdTMyIHQ0X3JlYWRfcnNzX3BmX21hcChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlcikN
CiAgICArdTMyIHQ0X3JlYWRfcnNzX3BmX21hcChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgYm9v
bCBzbGVlcF9vaykNCiAgICAgew0KICAgICAJdTMyIHBmbWFwOw0KICAgICANCiAgICAtCWlmICh0
NF91c2VfbGRzdChhZGFwdGVyKSkNCiAgICAtCQl0NF9md190cF9waW9fcncoYWRhcHRlciwgJnBm
bWFwLCAxLCBBX1RQX1JTU19QRl9NQVAsIDEpOw0KICAgIC0JZWxzZQ0KICAgIC0JCXQ0X3JlYWRf
aW5kaXJlY3QoYWRhcHRlciwgQV9UUF9QSU9fQUREUiwgQV9UUF9QSU9fREFUQSwNCiAgICAtCQkJ
CSAmcGZtYXAsIDEsIEFfVFBfUlNTX1BGX01BUCk7DQogICAgKwl0NF90cF9waW9fcmVhZChhZGFw
dGVyLCAmcGZtYXAsIDEsIEFfVFBfUlNTX1BGX01BUCwgc2xlZXBfb2spOw0KICAgICsNCiAgICAg
CXJldHVybiBwZm1hcDsNCiAgICAgfQ0KICAgICANCiAgICBAQCAtNTA4MCwzMCArNTE5NywyNCBA
QCB1MzIgdDRfcmVhZF9yc3NfcGZfbWFwKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKQ0KICAgICAg
Kg0KICAgICAgKglXcml0ZXMgdGhlIHNwZWNpZmllZCB2YWx1ZSB0byB0aGUgUEYgUlNTIE1hcCBy
ZWdpc3Rlci4NCiAgICAgICovDQogICAgLXZvaWQgdDRfd3JpdGVfcnNzX3BmX21hcChzdHJ1Y3Qg
YWRhcHRlciAqYWRhcHRlciwgdTMyIHBmbWFwKQ0KICAgICt2b2lkIHQ0X3dyaXRlX3Jzc19wZl9t
YXAoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHUzMiBwZm1hcCwgYm9vbCBzbGVlcF9vaykNCiAg
ICAgew0KICAgIC0JaWYgKHQ0X3VzZV9sZHN0KGFkYXB0ZXIpKQ0KICAgIC0JCXQ0X2Z3X3RwX3Bp
b19ydyhhZGFwdGVyLCAmcGZtYXAsIDEsIEFfVFBfUlNTX1BGX01BUCwgMCk7DQogICAgLQllbHNl
DQogICAgLQkJdDRfd3JpdGVfaW5kaXJlY3QoYWRhcHRlciwgQV9UUF9QSU9fQUREUiwgQV9UUF9Q
SU9fREFUQSwNCiAgICAtCQkJCSAgJnBmbWFwLCAxLCBBX1RQX1JTU19QRl9NQVApOw0KICAgICsJ
dDRfdHBfcGlvX3dyaXRlKGFkYXB0ZXIsICZwZm1hcCwgMSwgQV9UUF9SU1NfUEZfTUFQLCBzbGVl
cF9vayk7DQogICAgIH0NCiAgICAgDQogICAgIC8qKg0KICAgICAgKgl0NF9yZWFkX3Jzc19wZl9t
YXNrIC0gcmVhZCBQRiBSU1MgTWFzaw0KICAgICAgKglAYWRhcHRlcjogdGhlIGFkYXB0ZXINCiAg
ICArICogCUBzbGVlcF9vazogaWYgdHJ1ZSB3ZSBtYXkgc2xlZXAgd2hpbGUgYXdhaXRpbmcgY29t
bWFuZCBjb21wbGV0aW9uDQogICAgICAqDQogICAgICAqCVJlYWRzIHRoZSBQRiBSU1MgTWFzayBy
ZWdpc3RlciBhbmQgcmV0dXJucyBpdHMgdmFsdWUuDQogICAgICAqLw0KICAgIC11MzIgdDRfcmVh
ZF9yc3NfcGZfbWFzayhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlcikNCiAgICArdTMyIHQ0X3JlYWRf
cnNzX3BmX21hc2soc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgc2xlZXBfb2spDQogICAg
IHsNCiAgICAgCXUzMiBwZm1hc2s7DQogICAgIA0KICAgIC0JaWYgKHQ0X3VzZV9sZHN0KGFkYXB0
ZXIpKQ0KICAgIC0JCXQ0X2Z3X3RwX3Bpb19ydyhhZGFwdGVyLCAmcGZtYXNrLCAxLCBBX1RQX1JT
U19QRl9NU0ssIDEpOw0KICAgIC0JZWxzZQ0KICAgIC0JCXQ0X3JlYWRfaW5kaXJlY3QoYWRhcHRl
ciwgQV9UUF9QSU9fQUREUiwgQV9UUF9QSU9fREFUQSwNCiAgICAtCQkJCSAmcGZtYXNrLCAxLCBB
X1RQX1JTU19QRl9NU0spOw0KICAgICsJdDRfdHBfcGlvX3JlYWQoYWRhcHRlciwgJnBmbWFzaywg
MSwgQV9UUF9SU1NfUEZfTVNLLCBzbGVlcF9vayk7DQogICAgKw0KICAgICAJcmV0dXJuIHBmbWFz
azsNCiAgICAgfQ0KICAgICANCiAgICBAQCAtNTExNCwxMyArNTIyNSw5IEBAIHUzMiB0NF9yZWFk
X3Jzc19wZl9tYXNrKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKQ0KICAgICAgKg0KICAgICAgKglX
cml0ZXMgdGhlIHNwZWNpZmllZCB2YWx1ZSB0byB0aGUgUEYgUlNTIE1hc2sgcmVnaXN0ZXIuDQog
ICAgICAqLw0KICAgIC12b2lkIHQ0X3dyaXRlX3Jzc19wZl9tYXNrKHN0cnVjdCBhZGFwdGVyICph
ZGFwdGVyLCB1MzIgcGZtYXNrKQ0KICAgICt2b2lkIHQ0X3dyaXRlX3Jzc19wZl9tYXNrKHN0cnVj
dCBhZGFwdGVyICphZGFwdGVyLCB1MzIgcGZtYXNrLCBib29sIHNsZWVwX29rKQ0KICAgICB7DQog
ICAgLQlpZiAodDRfdXNlX2xkc3QoYWRhcHRlcikpDQogICAgLQkJdDRfZndfdHBfcGlvX3J3KGFk
YXB0ZXIsICZwZm1hc2ssIDEsIEFfVFBfUlNTX1BGX01TSywgMCk7DQogICAgLQllbHNlDQogICAg
LQkJdDRfd3JpdGVfaW5kaXJlY3QoYWRhcHRlciwgQV9UUF9QSU9fQUREUiwgQV9UUF9QSU9fREFU
QSwNCiAgICAtCQkJCSAgJnBmbWFzaywgMSwgQV9UUF9SU1NfUEZfTVNLKTsNCiAgICArCXQ0X3Rw
X3Bpb193cml0ZShhZGFwdGVyLCAmcGZtYXNrLCAxLCBBX1RQX1JTU19QRl9NU0ssIHNsZWVwX29r
KTsNCiAgICAgfQ0KICAgICANCiAgICAgLyoqDQogICAgQEAgLTUxMjgsMTIgKzUyMzUsMTMgQEAg
dm9pZCB0NF93cml0ZV9yc3NfcGZfbWFzayhzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgdTMyDQog
ICAgICAqCUBhZGFwOiB0aGUgYWRhcHRlcg0KICAgICAgKglAdjQ6IGhvbGRzIHRoZSBUQ1AvSVAg
Y291bnRlciB2YWx1ZXMNCiAgICAgICoJQHY2OiBob2xkcyB0aGUgVENQL0lQdjYgY291bnRlciB2
YWx1ZXMNCiAgICArICogCUBzbGVlcF9vazogaWYgdHJ1ZSB3ZSBtYXkgc2xlZXAgd2hpbGUgYXdh
aXRpbmcgY29tbWFuZCBjb21wbGV0aW9uDQogICAgICAqDQogICAgICAqCVJldHVybnMgdGhlIHZh
bHVlcyBvZiBUUCdzIFRDUC9JUCBhbmQgVENQL0lQdjYgTUlCIGNvdW50ZXJzLg0KICAgICAgKglF
aXRoZXIgQHY0IG9yIEB2NiBtYXkgYmUgJU5VTEwgdG8gc2tpcCB0aGUgY29ycmVzcG9uZGluZyBz
dGF0cy4NCiAgICAgICovDQogICAgIHZvaWQgdDRfdHBfZ2V0X3RjcF9zdGF0cyhzdHJ1Y3QgYWRh
cHRlciAqYWRhcCwgc3RydWN0IHRwX3RjcF9zdGF0cyAqdjQsDQogICAgLQkJCSBzdHJ1Y3QgdHBf
dGNwX3N0YXRzICp2NikNCiAgICArCQkJIHN0cnVjdCB0cF90Y3Bfc3RhdHMgKnY2LCBib29sIHNs
ZWVwX29rKQ0KICAgICB7DQogICAgIAl1MzIgdmFsW0FfVFBfTUlCX1RDUF9SWFRfU0VHX0xPIC0g
QV9UUF9NSUJfVENQX09VVF9SU1QgKyAxXTsNCiAgICAgDQogICAgQEAgLTUxNDIsMTYgKzUyNTAs
MTYgQEAgdm9pZCB0NF90cF9nZXRfdGNwX3N0YXRzKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1
Y3QgDQogICAgICNkZWZpbmUgU1RBVDY0KHgpICAgKCgodTY0KVNUQVQoeCMjX0hJKSA8PCAzMikg
fCBTVEFUKHgjI19MTykpDQogICAgIA0KICAgICAJaWYgKHY0KSB7DQogICAgLQkJdDRfcmVhZF9p
bmRpcmVjdChhZGFwLCBBX1RQX01JQl9JTkRFWCwgQV9UUF9NSUJfREFUQSwgdmFsLA0KICAgIC0J
CQkJIEFSUkFZX1NJWkUodmFsKSwgQV9UUF9NSUJfVENQX09VVF9SU1QpOw0KICAgICsJCXQ0X3Rw
X21pYl9yZWFkKGFkYXAsIHZhbCwgQVJSQVlfU0laRSh2YWwpLA0KICAgICsJCQkgICAgICAgQV9U
UF9NSUJfVENQX09VVF9SU1QsIHNsZWVwX29rKTsNCiAgICAgCQl2NC0+dGNwX291dF9yc3RzID0g
U1RBVChPVVRfUlNUKTsNCiAgICAgCQl2NC0+dGNwX2luX3NlZ3MgID0gU1RBVDY0KElOX1NFRyk7
DQogICAgIAkJdjQtPnRjcF9vdXRfc2VncyA9IFNUQVQ2NChPVVRfU0VHKTsNCiAgICAgCQl2NC0+
dGNwX3JldHJhbnNfc2VncyA9IFNUQVQ2NChSWFRfU0VHKTsNCiAgICAgCX0NCiAgICAgCWlmICh2
Nikgew0KICAgIC0JCXQ0X3JlYWRfaW5kaXJlY3QoYWRhcCwgQV9UUF9NSUJfSU5ERVgsIEFfVFBf
TUlCX0RBVEEsIHZhbCwNCiAgICAtCQkJCSBBUlJBWV9TSVpFKHZhbCksIEFfVFBfTUlCX1RDUF9W
Nk9VVF9SU1QpOw0KICAgICsJCXQ0X3RwX21pYl9yZWFkKGFkYXAsIHZhbCwgQVJSQVlfU0laRSh2
YWwpLA0KICAgICsJCQkgICAgICAgQV9UUF9NSUJfVENQX1Y2T1VUX1JTVCwgc2xlZXBfb2spOw0K
ICAgICAJCXY2LT50Y3Bfb3V0X3JzdHMgPSBTVEFUKE9VVF9SU1QpOw0KICAgICAJCXY2LT50Y3Bf
aW5fc2VncyAgPSBTVEFUNjQoSU5fU0VHKTsNCiAgICAgCQl2Ni0+dGNwX291dF9zZWdzID0gU1RB
VDY0KE9VVF9TRUcpOw0KICAgIEBAIC01MTY2LDMyICs1Mjc0LDQxIEBAIHZvaWQgdDRfdHBfZ2V0
X3RjcF9zdGF0cyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IA0KICAgICAgKgl0NF90cF9n
ZXRfZXJyX3N0YXRzIC0gcmVhZCBUUCdzIGVycm9yIE1JQiBjb3VudGVycw0KICAgICAgKglAYWRh
cDogdGhlIGFkYXB0ZXINCiAgICAgICoJQHN0OiBob2xkcyB0aGUgY291bnRlciB2YWx1ZXMNCiAg
ICArICogCUBzbGVlcF9vazogaWYgdHJ1ZSB3ZSBtYXkgc2xlZXAgd2hpbGUgYXdhaXRpbmcgY29t
bWFuZCBjb21wbGV0aW9uDQogICAgICAqDQogICAgICAqCVJldHVybnMgdGhlIHZhbHVlcyBvZiBU
UCdzIGVycm9yIGNvdW50ZXJzLg0KICAgICAgKi8NCiAgICAtdm9pZCB0NF90cF9nZXRfZXJyX3N0
YXRzKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3QgdHBfZXJyX3N0YXRzICpzdCkNCiAgICAr
dm9pZCB0NF90cF9nZXRfZXJyX3N0YXRzKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3QgdHBf
ZXJyX3N0YXRzICpzdCwNCiAgICArCQkJIGJvb2wgc2xlZXBfb2spDQogICAgIHsNCiAgICANCiAg
ICAqKiogRElGRiBPVVRQVVQgVFJVTkNBVEVEIEFUIDEwMDAgTElORVMgKioqDQogICAgDQoNCg==



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1E280C29-BA50-47C5-9B14-805628A9795B>