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>