From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A36FCA0C41; Wed, 15 Sep 2021 15:37:04 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3A4324014F; Wed, 15 Sep 2021 15:37:04 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2076.outbound.protection.outlook.com [40.107.93.76]) by mails.dpdk.org (Postfix) with ESMTP id DFC554003C for ; Wed, 15 Sep 2021 15:37:01 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IiY9h0itq2IABbKTjxedeeVM00uuVcvcCtiIhao/Qwv9Dmy3juHCLovdEYVdg5iWDzo7Y7TtlDjEItHM4XutwMf7B54t+F9NBJe5LlSOlNVeM1gBX4wYBnVm+Bdz772cK5WtcOd7q7+p1VMrdZHF4qMj/L3OD+KgvE1wy25/L/Y37EeGvPXRyijSuqMY9GS54f70ELIqq91ele8oTk4FhWDg8/brS2Iiu6SoAj2kfAByHYQaThKZjJQD5SRhRfBfYiMLTmd6LKyyR/qKS+E8X6P5imR+Zf47a1hjcTrEvjToYYTUUaAdIkxlqZ2Dg6exw1CdQS1fA0eXg9W5mZBpAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=hu6DpinAHzBBuagLY3vbAlyTLcDDcof1bc19iTxqX5Q=; b=lQVuB0EWqYtSTQP9tmqFGfaOkrifHbBo5zzyPPAANcV1HHEc7+MG0BAvm+h5X4FCg+f9LYte598FRz3JK6xBzEFE8BMfD8a0S0vZK0QDXNEXcUCdrSmqSAbQACVHpCO7rPMIa/A4Omnu5IxopLbOadMU8jYUZXTbfZMWh5LWmF/i9Jv1kVTjQIQEHa8EGCiTLAMPdmkGAJnXn1AShoQ2upt/wW5AAOeHmd1lNgzlSxaw00A/hsYyiJMgeEum/TuVXBZxJKkNV7Ujz01kMMGrE2X4unwmBGCcQh7LgIq4RtwRJT3CCYUCOxSzk0y+EpMvvhxSSdVDmlmXC5ri5RMy6w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hu6DpinAHzBBuagLY3vbAlyTLcDDcof1bc19iTxqX5Q=; b=SvW394gBO0rDvzeZjqDg9gLdrqnRufrGpvTiMV3k3Ywy5CkFeDHLuxdSFQgYoBsNboIfDwvrJgw+OvQAcH4nfynCaGxt+YL27bajwljMiIvznd0OmOoeMBGyokrkuUgjCRAiVS0mLJO4dbj/6Pz3eurl68m8YAs3fQ9oCgC8mMs1wNThXubxXxJHsexWH4DUKNPBeGoX40i/kffVL+dPsbiC10UvyH2MwFLJlOeuFgdy1CkrshAqBGb1XY0H1JQB5PDqQfDMtnwHTZ6QTd2yCL8hnqY9BKPOtzokptq/qzslHA4O30Xgh597QrAXik8hhn7mZqtwaucw7044L4mVGw== Received: from DM4PR12MB5373.namprd12.prod.outlook.com (2603:10b6:5:39a::17) by DM8PR12MB5414.namprd12.prod.outlook.com (2603:10b6:8:3e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14; Wed, 15 Sep 2021 13:36:57 +0000 Received: from DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::584f:672a:653f:fe25]) by DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::584f:672a:653f:fe25%5]) with mapi id 15.20.4523.014; Wed, 15 Sep 2021 13:36:57 +0000 From: "Xueming(Steven) Li" To: "dev@dpdk.org" CC: "zhouguoyang@huawei.com" , "mczekaj@marvell.com" , "radhac@marvell.com" , "bruce.richardson@intel.com" , "sthotton@marvell.com" , Matan Azrad , "kirankumark@marvell.com" , "linville@tuxdriver.com" , "beilei.xing@intel.com" , "rmody@marvell.com" , "chenbo.xia@intel.com" , "vburru@marvell.com" , "somnath.kotur@broadcom.com" , "jiawenwu@trustnetic.com" , "heinrich.kuhn@corigine.com" , "hemant.agrawal@nxp.com" , "maxime.coquelin@redhat.com" , "asomalap@amd.com" , "yongwang@vmware.com" , "andrew.rybchenko@oktetlabs.ru" , "skori@marvell.com" , "ajit.khaparde@broadcom.com" , "hkalra@marvell.com" , "shaibran@amazon.com" , "chas3@att.com" , "cloud.wangxiaoyun@huawei.com" , "sthemmin@microsoft.com" , "jerinj@marvell.com" , "qiming.yang@intel.com" , "pnalla@marvell.com" , NBU-Contact-Thomas Monjalon , "srinivasan@marvell.com" , "mk@semihalf.com" , "mw@semihalf.com" , "xiao.w.wang@intel.com" , "keith.wiles@intel.com" , "xuanziyang2@huawei.com" , "mtetsuyah@gmail.com" , "qi.z.zhang@intel.com" , "ciara.loftus@intel.com" , "g.singh@nxp.com" , "aboyer@pensando.io" , "steven.webster@windriver.com" , "evgenys@amazon.com" , "humin29@huawei.com" , "spinler@cesnet.cz" , "johndale@cisco.com" , "irusskikh@marvell.com" , "dsinghrawat@marvell.com" , "shshaikh@marvell.com" , "oulijun@huawei.com" , "ferruh.yigit@intel.com" , "lironh@marvell.com" , Slava Ovsiienko , "aman.deep.singh@intel.com" , "sachin.saxena@oss.nxp.com" , "rahul.lakkireddy@chelsio.com" , "matt.peters@windriver.com" , "jianwang@trustnetic.com" , "skoteshwar@marvell.com" , "rosen.xu@intel.com" , "zr@semihalf.com" , "jingjing.wu@intel.com" , NBU-Contact-longli , "yisen.zhuang@huawei.com" , "igorch@amazon.com" , "grive@u256.net" , "haiyue.wang@intel.com" , "jgrajcia@cisco.com" , "hyonkim@cisco.com" , "ndabilpuram@marvell.com" Thread-Topic: [PATCH v2] ethdev: change queue release callback Thread-Index: AQHXqjIFDcjUV/fweEq7i+HCD48M6qulGRiA Date: Wed, 15 Sep 2021 13:36:56 +0000 Message-ID: <43714ff40035ac9a6dab2c97c0249c786ede77f3.camel@nvidia.com> References: <20210727034134.20556-1-xuemingl@nvidia.com> <20210915130202.146589-1-xuemingl@nvidia.com> In-Reply-To: <20210915130202.146589-1-xuemingl@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.40.4 authentication-results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0a629526-a3e3-41c7-8cfc-08d9784de340 x-ms-traffictypediagnostic: DM8PR12MB5414: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:422; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FQc+qLtd/giIxmZQpQh/sLYQyx+5L+eDeBy3+BPxOWnTbwZ4k8N5uofYIIkZPVB4XG0liNwgK1WHBhUeXg9fTV7Gq9eNKb9laaCAtGjfbRdVHzdmG0AbtgLcRpo9zlXccRQoOTSBDwaAONVRwjxM+jWXBhMphNQftHV01njf4bhWnrNt2omWguFsZn5czoJMurD+s40oeMLRG9Gghss7RgLglhHvnZSbw6Io3fKgPwQ/KtkwrRuFnDmixpX/v3PlDj67kQMg1E4EiBcVc32qcNTUIcEzqyPXdntgMiAkqZ/1lLIlWWs5vc+K5mReN860b3f60E/gS9gXuHqYTRD9rXhD6ev5G9G+vEdhhw3w+r9jKb0uH4MTWEWiX640eNnFSX5HgjXAuzMos2shmu+WqfTHi/4up9eGY2wstL6itog/bs8gOUGjPdEtwNyJww/k6jp21Gj2/0i0u3sb96iDapHlCwsn/t9oVzsSUP8yGaKt3rLKgHh+l2Z/DlVPtsJz6xQcdWPawRfzwNCRC5ik+3dLrxFlxPG7ugaarl0pClxoypgTZUXul9UL2lQ1MMdEpNHjhwPN3fvXvb5muBjI//BZmVyjKvD3fsRbt+vz1slHPZ8gpkh3/I3oKierRPH0+cXSExz33SbC0+44WEIG3qftUcovFBMw82txy+83c0ZSAiAaLCZaUgCrCbYf5ycHiRgJ8F2xB8Y04mqMnMcvmP5m3gOMV74YyGloY1MRy8fcH4i2pifK8GUHGzZqzovTyxZWWz7dIJLeqWmbxQm8pzuzV6U/HeWd2a5FXlFeMaPfm3DeEVHUn9hkkqknZ5Md x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5373.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(396003)(39860400002)(376002)(366004)(346002)(966005)(30864003)(6486002)(66946007)(66556008)(64756008)(66446008)(166002)(71200400001)(2906002)(91956017)(76116006)(66476007)(6506007)(8936002)(38100700002)(83380400001)(7366002)(7416002)(26005)(8676002)(21615005)(7406005)(2616005)(186003)(36756003)(54906003)(316002)(122000001)(5660300002)(86362001)(38070700005)(478600001)(4326008)(6916009)(6512007)(579004)(559001)(309714004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZTdlc2VZS2t3a1lvTUlQcjNLNHVSVlQ4NEYwK3hpQkxTMGUxNyt5VytrejVP?= =?utf-8?B?Vml0a1ZxV2lQRzdhOVR0dG52T0tGKzNzZ3BqVGVnbllUcGVFZ0dYTjFJdDVM?= =?utf-8?B?cmFFdy9BbFczYzV0VFdMb2hpZUIrUlJWYTZzcHlKSDdaMjBNMzVxVUJxWFJl?= =?utf-8?B?MHFOMzZBU1NOMWJFaGlaeG5XUFNBSndBVFAzOGFQRlZBUVJqVXQzR29NUGFP?= =?utf-8?B?UWU2aFF3TzRxV0V2L1d6TGZTSzE2RzFuOUVleGZkU2UrR0FJRWtQVVZxNUto?= =?utf-8?B?T3FZb0cvNXNaa0p5SDJkeTVJd2Q1ZjdVVnVHNndHeExpdHhtZVNpVDR6MHIz?= =?utf-8?B?Nmhhc1JxaHhNU2hNbDZ1TkRaekRrbkt4YkNBNDNETnA5V011SWx5KzlITGVE?= =?utf-8?B?dDRXdG9mMlI1OU02R0ZEMHBBSEtmd3hjZEgvblVOSHVyVlNiSzlJakRBT0gw?= =?utf-8?B?UllPNkErTE5NMFpHeVZtVW1lVk1TTnB4cy9WR0h3SDloZWJ0RGFYc2wxRjFy?= =?utf-8?B?U0tpY0F0QUdqZmpmSUU0ZGc3S0JYWnRQL3h4Nm5BcERjT1RJdXA2dC9aZnQv?= =?utf-8?B?cFNXSXh4Y0xSb0R3VmNoQnM5cWNjTkF0dEo1dS8yOUF2RlhMYnBDbk9GU1du?= =?utf-8?B?YWE5djQwZkc2WStYblM3azlMUElYYm5ETmFMYVBGaW55REQ5ZDYzSjVjM3hm?= =?utf-8?B?aGxOZDVtTjFCKzdRVjhjUHVqNEU0MkpiMDlzdE9aTTVObS8xTVFHREsrUWZr?= =?utf-8?B?SUtrMHlaVWJSUVJIN1dUdzRpcnQ2czhOV3J2bi9UcU5OK1NiUklUWWc4VkFN?= =?utf-8?B?bk44S1dHTWQ3RXhxYWJPdjlQdnRXMTRkSG9vNms1RWRuYWhzQ3dxSHBLaCtt?= =?utf-8?B?bmMwNUlVOFVucUE2bzBwYTh0N0w5aGZEbEZSbm9oMVF3YWZhNkFMY1FFbGJ0?= =?utf-8?B?TzdPcnFpekxabTdnaHBvenFtWUhpc1k0MXo0R1c3M2R6d0sxNEdzeGJtUVhH?= =?utf-8?B?clRQRW1majJTRUtkSWhWcEw5dXU0ZTQ5dUhvd0NFOUpzRDA0UThHS2hCdFNL?= =?utf-8?B?REVNcllRZmJSUGRNMWJZUEo4RmtjMVdlUmtQaTRVMUVhNmJxL291VWRKUGdx?= =?utf-8?B?OEVhcmUrVlYxdzZ0YWJpdmxScWlnenhqdG91cWpRS0MybGxVVklrRkVIb2ww?= =?utf-8?B?UHNSTDdBREtaZUFGWmEvcklxWlUwSDlVRlY1T1ZDUW1mWHBxRW1SWWJkQ0d3?= =?utf-8?B?YlNIbWg3NUtyQnFTZTZDUzI3NlFkTDRaUnFlck9JU1JsQnd0U2h1OEVIWm5F?= =?utf-8?B?S3JzeDdiQWxoRnNnTmF1NEMzNWdsNzJNVk1JR1YzSG9OZEhTOGRaVFdJODdB?= =?utf-8?B?OVRzdkdrS00yaUg0T0ZYaUpEaHNkVmttOWNmaTZiUThHQ3hlaFIrZ1NxT3Vq?= =?utf-8?B?K1dyN1VMck9OVVQ5WGovWkRWVm5mbkQwQThKbXltVnpIYmFsaUVhdVdsR3Rt?= =?utf-8?B?eHgxcEVXYVNRencrdHdBZDd3NStjaVRpK1JUSWVhdCtaSmZGaldzNFRieFlj?= =?utf-8?B?NVlQQkxRM1EwY0dPTVB5Sys0Wkc4dy84QVlGTElqVUdQMkFsWWNxanZkdTlT?= =?utf-8?B?UXNjUFVnMm1kelJvTWtRY1V5bE5rUjluVWlxVWN6S0M4WXFXNTNnZzJiMGlZ?= =?utf-8?B?OXhJNVRUajkxdFV5WGVyNTBCbUFrNVJ2Q3N0RnpUZHB2VlhjOHQzM2hqMHo4?= =?utf-8?B?OFNxY0pPRCtOb25DeEhvSmZTNW1JdE5DQUx6aGVIVHFyYi81TTlRZjk2NGRI?= =?utf-8?B?b2txVjJ4M1N6NUVEd3VyQT09?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5373.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0a629526-a3e3-41c7-8cfc-08d9784de340 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Sep 2021 13:36:56.6753 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ZvdJ1cP5oA3CzkMY5u+ggENZiRfVqrjyWmUR9Kxq+A+sGgyex/BIJ2OfPDt2CWXdli76Hz8nngdqZWAMMd5OXQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR12MB5414 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [dpdk-dev] [PATCH v2] ethdev: change queue release callback X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgVGhvbWFzLCBGZXJydWgsDQoNClRoaXMgcGF0Y2ggaXMgImJpZyIgYW5kIHNpbXBsZSwgY291 bGQgeW91IGhlbHAgdG8gbWVyZ2UgaXQgZWFybGllciB0byBhdm9pZCBmcmVxdWVudCByZWJhc2U/ DQoNCkJlc3QgUmVnYXJkcywNClh1ZW1pbmcNCg0KT24gV2VkLCAyMDIxLTA5LTE1IGF0IDIxOjAy ICswODAwLCBYdWVtaW5nIExpIHdyb3RlOg0KDQpUbyBhbGlnbiB3aXRoIG90aGVyIGV0aCBkZXZp Y2UgcXVldWUgY29uZmlndXJhdGlvbiBjYWxsYmFja3MsIGNsZWFudXANCg0KcXVldWUgcmVsZWFz ZSBjYWxsYmFjayBBUEkgYnkgY2hhbmdpbmcgUlggYW5kIFRYIHF1ZXVlIHJlbGVhc2UgY2FsbGJh Y2sNCg0KQVBJIHBhcmFtZXRlciBmcm9tIHF1ZXVlIG9iamVjdCB0byBkZXZpY2UgYW5kIHF1ZXVl IGluZGV4Lg0KDQoNClRoaXMgcGF0Y2ggYWxsb3dzIE5VTEwgY2FsbGJhY2sgdG8gYXZvaWQgZGVm aW5pbmcgZW1wdHkgY2FsbGJhY2tzLg0KDQoNClNpZ25lZC1vZmYtYnk6IFh1ZW1pbmcgTGkgPHh1 ZW1pbmdsQG52aWRpYS5jb208bWFpbHRvOnh1ZW1pbmdsQG52aWRpYS5jb20+Pg0KDQpDYzogRmVy cnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPG1haWx0bzpmZXJydWgueWlnaXRAaW50 ZWwuY29tPj4NCg0KQ2M6IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRs YWJzLnJ1PG1haWx0bzphbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT4+DQoNCkNjOiAiU2lu Z2gsIEFtYW4gRGVlcCIgPGFtYW4uZGVlcC5zaW5naEBpbnRlbC5jb208bWFpbHRvOmFtYW4uZGVl cC5zaW5naEBpbnRlbC5jb20+Pg0KDQotLS0NCg0KdjI6IGluY2x1ZGVkIG5ldyBORlAgUE1EIGRy aXZlcg0KDQoNClRoaXMgcGF0Y2ggaXMgYSBwcmVwYXJhdGlvbiBvZiBzaGFyZWQgUnggcXVldWUg ZmVhdHVyZSBzaW5jZSB0aGUgcnhxDQoNCm9iamVjdCBpcyBzdWJqZWN0IHRvIGJlIHVzZWQgYnkg UE1EIGFzIHNoYXJlZCByeHEgb2JqZWN0IHdoaWNoIGlzIHNoYXJlZA0KDQphbW9uZyByeCBxdWV1 ZXMgaW4gc2FtZSBzaGFyZSBncm91cDoNCg0KICBodHRwczovL21haWxzLmRwZGsub3JnL2FyY2hp dmVzL2Rldi8yMDIxLUp1bHkvMjE1NTc1Lmh0bWwNCg0KLS0tDQoNCiBhcHAvdGVzdC92aXJ0dWFs X3BtZC5jICAgICAgICAgICAgICAgICAgICB8IDEyIC0tLS0tDQoNCiBkcml2ZXJzL25ldC9hZl9w YWNrZXQvcnRlX2V0aF9hZl9wYWNrZXQuYyB8ICA3IC0tLQ0KDQogZHJpdmVycy9uZXQvYWZfeGRw L3J0ZV9ldGhfYWZfeGRwLmMgICAgICAgfCAgNyAtLS0NCg0KIGRyaXZlcnMvbmV0L2F0bGFudGlj L2F0bF9ldGhkZXYuaCAgICAgICAgIHwgIDQgKy0NCg0KIGRyaXZlcnMvbmV0L2F0bGFudGljL2F0 bF9yeHR4LmMgICAgICAgICAgIHwgMjQgKysrKy0tLS0tDQoNCiBkcml2ZXJzL25ldC9hdnAvYXZw X2V0aGRldi5jICAgICAgICAgICAgICB8IDM0ICsrKystLS0tLS0tLS0NCg0KIGRyaXZlcnMvbmV0 L2F4Z2JlL2F4Z2JlX2Rldi5jICAgICAgICAgICAgIHwgIDIgKy0NCg0KIGRyaXZlcnMvbmV0L2F4 Z2JlL2F4Z2JlX3J4dHguYyAgICAgICAgICAgIHwgIDggKy0tDQoNCiBkcml2ZXJzL25ldC9heGdi ZS9heGdiZV9yeHR4LmggICAgICAgICAgICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9ibngyeC9i bngyeF9yeHR4LmMgICAgICAgICAgICB8ICA4ICstLQ0KDQogZHJpdmVycy9uZXQvYm54MngvYm54 Mnhfcnh0eC5oICAgICAgICAgICAgfCAgNCArLQ0KDQogZHJpdmVycy9uZXQvYm54dC9ibnh0X3Jl cHMuYyAgICAgICAgICAgICAgfCAyMCArKysrLS0tLQ0KDQogZHJpdmVycy9uZXQvYm54dC9ibnh0 X3JlcHMuaCAgICAgICAgICAgICAgfCAgNCArLQ0KDQogZHJpdmVycy9uZXQvYm54dC9ibnh0X3Jp bmcuYyAgICAgICAgICAgICAgfCAgMiArLQ0KDQogZHJpdmVycy9uZXQvYm54dC9ibnh0X3J4cS5j ICAgICAgICAgICAgICAgfCAxMiArKystLQ0KDQogZHJpdmVycy9uZXQvYm54dC9ibnh0X3J4cS5o ICAgICAgICAgICAgICAgfCAgMiArLQ0KDQogZHJpdmVycy9uZXQvYm54dC9ibnh0X3R4cS5jICAg ICAgICAgICAgICAgfCAxNSArKystLS0NCg0KIGRyaXZlcnMvbmV0L2JueHQvYm54dF90eHEuaCAg ICAgICAgICAgICAgIHwgIDIgKy0NCg0KIGRyaXZlcnMvbmV0L2JvbmRpbmcvcnRlX2V0aF9ib25k X3BtZC5jICAgIHwgIDggKystDQoNCiBkcml2ZXJzL25ldC9jbnhrL2NueGtfZXRoZGV2LmMgICAg ICAgICAgICB8IDMzICsrKysrKy0tLS0tLS0NCg0KIGRyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlX2V0 aGRldi5jICAgICAgICAgIHwgMTIgKystLS0NCg0KIGRyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlX3Bm dmYuaCAgICAgICAgICAgIHwgIDQgKy0NCg0KIGRyaXZlcnMvbmV0L2RwYWEvZHBhYV9ldGhkZXYu YyAgICAgICAgICAgIHwgMTMgLS0tLS0NCg0KIGRyaXZlcnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRl di5jICAgICAgICAgIHwgMTEgKy0tLS0NCg0KIGRyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aGRl di5oICAgICAgICAgIHwgIDggKy0tDQoNCiBkcml2ZXJzL25ldC9lMTAwMC9lbV9yeHR4LmMgICAg ICAgICAgICAgICB8IDEyICsrLS0tDQoNCiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jICAg ICAgICAgICAgICB8IDEyICsrLS0tDQoNCiBkcml2ZXJzL25ldC9lbmEvZW5hX2V0aGRldi5jICAg ICAgICAgICAgICB8IDE4ICsrKy0tLS0NCg0KIGRyaXZlcnMvbmV0L2VuZXRjL2VuZXRjX2V0aGRl di5jICAgICAgICAgIHwgMTIgKysrLS0NCg0KIGRyaXZlcnMvbmV0L2VuaWMvZW5pY19ldGhkZXYu YyAgICAgICAgICAgIHwgIDggKystDQoNCiBkcml2ZXJzL25ldC9lbmljL2VuaWNfdmZfcmVwcmVz ZW50b3IuYyAgICB8ICA4ICsrLQ0KDQogZHJpdmVycy9uZXQvZmFpbHNhZmUvZmFpbHNhZmVfb3Bz LmMgICAgICAgfCA0MiArKysrKystLS0tLS0tLS0tDQoNCiBkcml2ZXJzL25ldC9mbTEway9mbTEw a19ldGhkZXYuYyAgICAgICAgICB8IDE0ICsrKy0tLQ0KDQogZHJpdmVycy9uZXQvaGluaWMvaGlu aWNfcG1kX2V0aGRldi5jICAgICAgfCAyMCArKysrKy0tLQ0KDQogZHJpdmVycy9uZXQvaG5zMy9o bnMzX3J4dHguYyAgICAgICAgICAgICAgfCAyNSArKysrKy0tLS0tDQoNCiBkcml2ZXJzL25ldC9o bnMzL2huczNfcnh0eC5oICAgICAgICAgICAgICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9pNDBl L2k0MGVfZmRpci5jICAgICAgICAgICAgICB8ICA4ICstLQ0KDQogZHJpdmVycy9uZXQvaTQwZS9p NDBlX3J4dHguYyAgICAgICAgICAgICAgfCA0MCArKysrKysrKystLS0tLS0NCg0KIGRyaXZlcnMv bmV0L2k0MGUvaTQwZV9yeHR4LmggICAgICAgICAgICAgIHwgIDYgKystDQoNCiBkcml2ZXJzL25l dC9pYXZmL2lhdmZfcnh0eC5jICAgICAgICAgICAgICB8IDEyICsrLS0tDQoNCiBkcml2ZXJzL25l dC9pYXZmL2lhdmZfcnh0eC5oICAgICAgICAgICAgICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9p Y2UvaWNlX2RjZl9ldGhkZXYuYyAgICAgICAgICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9pY2Uv aWNlX2V0aGRldi5jICAgICAgICAgICAgICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9pY2UvaWNl X3J4dHguYyAgICAgICAgICAgICAgICB8IDEyICsrKysrDQoNCiBkcml2ZXJzL25ldC9pY2UvaWNl X3J4dHguaCAgICAgICAgICAgICAgICB8ICAyICsNCg0KIGRyaXZlcnMvbmV0L2lnYy9pZ2NfZXRo ZGV2LmMgICAgICAgICAgICAgIHwgIDQgKy0NCg0KIGRyaXZlcnMvbmV0L2lnYy9pZ2NfdHhyeC5j ICAgICAgICAgICAgICAgIHwgMTIgKystLS0NCg0KIGRyaXZlcnMvbmV0L2lnYy9pZ2NfdHhyeC5o ICAgICAgICAgICAgICAgIHwgIDQgKy0NCg0KIGRyaXZlcnMvbmV0L2lvbmljL2lvbmljX2xpZi5j ICAgICAgICAgICAgIHwgIDQgKy0NCg0KIGRyaXZlcnMvbmV0L2lvbmljL2lvbmljX3J4dHguYyAg ICAgICAgICAgIHwgMTQgKysrLS0tDQoNCiBkcml2ZXJzL25ldC9pb25pYy9pb25pY19yeHR4Lmgg ICAgICAgICAgICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9pcG4za2UvaXBuM2tlX3JlcHJlc2Vu dG9yLmMgICB8IDEyIC0tLS0tDQoNCiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuaCAg ICAgICAgICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMgICAgICAg ICAgICB8IDEyICsrLS0tDQoNCiBkcml2ZXJzL25ldC9rbmkvcnRlX2V0aF9rbmkuYyAgICAgICAg ICAgICB8ICA3IC0tLQ0KDQogZHJpdmVycy9uZXQvbGlxdWlkaW8vbGlvX2V0aGRldi5jICAgICAg ICAgfCAyNCArKysrKy0tLS0NCg0KIGRyaXZlcnMvbmV0L2xpcXVpZGlvL2xpb19ldGhkZXYuaCAg ICAgICAgIHwgIDQgKy0NCg0KIGRyaXZlcnMvbmV0L2xpcXVpZGlvL2xpb19yeHR4LmMgICAgICAg ICAgIHwgIDQgKy0NCg0KIGRyaXZlcnMvbmV0L21lbWlmL3J0ZV9ldGhfbWVtaWYuYyAgICAgICAg IHwgMjMgKysrKysrLS0tDQoNCiBkcml2ZXJzL25ldC9tbHg0L21seDQuYyAgICAgICAgICAgICAg ICAgICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9tbHg0L21seDRfcnhxLmMgICAgICAgICAgICAg ICB8IDI3ICsrKystLS0tLS0tDQoNCiBkcml2ZXJzL25ldC9tbHg0L21seDRfcnh0eC5oICAgICAg ICAgICAgICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9tbHg0L21seDRfdHhxLmMgICAgICAgICAg ICAgICB8IDI3ICsrKystLS0tLS0tDQoNCiBkcml2ZXJzL25ldC9tbHg1L21seDVfcnguaCAgICAg ICAgICAgICAgICB8ICAyICstDQoNCiBkcml2ZXJzL25ldC9tbHg1L21seDVfcnhxLmMgICAgICAg ICAgICAgICB8IDIxICsrKystLS0tDQoNCiBkcml2ZXJzL25ldC9tbHg1L21seDVfdHguaCAgICAg ICAgICAgICAgICB8ICAyICstDQoNCiBkcml2ZXJzL25ldC9tbHg1L21seDVfdHhxLmMgICAgICAg ICAgICAgICB8IDI1ICsrKystLS0tLS0NCg0KIGRyaXZlcnMvbmV0L212bmV0YS9tdm5ldGFfZXRo ZGV2LmMgICAgICAgIHwgIDQgKy0NCg0KIGRyaXZlcnMvbmV0L212bmV0YS9tdm5ldGFfcnh0eC5j ICAgICAgICAgIHwgMjIgKysrKystLS0tDQoNCiBkcml2ZXJzL25ldC9tdm5ldGEvbXZuZXRhX3J4 dHguaCAgICAgICAgICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9tdnBwMi9tcnZsX2V0aGRldi5j ICAgICAgICAgICB8IDIwICsrKysrLS0tDQoNCiBkcml2ZXJzL25ldC9uZXR2c2MvaG5fcnh0eC5j ICAgICAgICAgICAgICB8IDEwICsrLS0NCg0KIGRyaXZlcnMvbmV0L25ldHZzYy9obl92YXIuaCAg ICAgICAgICAgICAgIHwgIDQgKy0NCg0KIGRyaXZlcnMvbmV0L25ldHZzYy9obl92Zi5jICAgICAg ICAgICAgICAgIHwgMTQgKystLS0tDQoNCiBkcml2ZXJzL25ldC9uZmIvbmZiX2V0aGRldi5jICAg ICAgICAgICAgICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9uZmIvbmZiX3J4LmMgICAgICAgICAg ICAgICAgICB8ICA1ICstDQoNCiBkcml2ZXJzL25ldC9uZmIvbmZiX3J4LmggICAgICAgICAgICAg ICAgICB8ICA4ICstLQ0KDQogZHJpdmVycy9uZXQvbmZiL25mYl90eC5jICAgICAgICAgICAgICAg ICAgfCAgNSArLQ0KDQogZHJpdmVycy9uZXQvbmZiL25mYl90eC5oICAgICAgICAgICAgICAgICAg fCAgOCArLS0NCg0KIGRyaXZlcnMvbmV0L25mcC9uZnBfcnh0eC5jICAgICAgICAgICAgICAgIHwg MzAgKysrKysrKy0tLS0tDQoNCiBkcml2ZXJzL25ldC9uZnAvbmZwX3J4dHguaCAgICAgICAgICAg ICAgICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9uZ2JlL25nYmVfZXRoZGV2LmggICAgICAgICAg ICB8ICA0ICstDQoNCiBkcml2ZXJzL25ldC9uZ2JlL25nYmVfcnh0eC5jICAgICAgICAgICAgICB8 IDEyICsrLS0tDQoNCiBkcml2ZXJzL25ldC9udWxsL3J0ZV9ldGhfbnVsbC5jICAgICAgICAgICB8 IDIyICsrKysrKy0tLQ0KDQogZHJpdmVycy9uZXQvb2N0ZW9udHgvb2N0ZW9udHhfZXRoZGV2LmMg ICAgfCAxOCArKystLS0tDQoNCiBkcml2ZXJzL25ldC9vY3Rlb250eDIvb3R4Ml9ldGhkZXYuYyAg ICAgICB8IDU5ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tDQoNCiBkcml2ZXJzL25ldC9vY3Rlb250 eF9lcC9vdHhfZXBfZXRoZGV2LmMgICB8IDIwICsrKysrLS0tDQoNCiBkcml2ZXJzL25ldC9wY2Fw L3BjYXBfZXRoZGV2LmMgICAgICAgICAgICB8ICA3IC0tLQ0KDQogZHJpdmVycy9uZXQvcGZlL3Bm ZV9ldGhkZXYuYyAgICAgICAgICAgICAgfCAxNCAtLS0tLS0NCg0KIGRyaXZlcnMvbmV0L3FlZGUv cWVkZV9ldGhkZXYuYyAgICAgICAgICAgIHwgMjAgKysrKysrLS0NCg0KIGRyaXZlcnMvbmV0L3Jp bmcvcnRlX2V0aF9yaW5nLmMgICAgICAgICAgIHwgIDQgLS0NCg0KIGRyaXZlcnMvbmV0L3NmYy9z ZmNfZXRoZGV2LmMgICAgICAgICAgICAgIHwgIDggKy0tDQoNCiBkcml2ZXJzL25ldC9zemVkYXRh Mi9ydGVfZXRoX3N6ZWRhdGEyLmMgICB8IDUwICsrKysrKysrKy0tLS0tLS0tLS0NCg0KIGRyaXZl cnMvbmV0L3RhcC9ydGVfZXRoX3RhcC5jICAgICAgICAgICAgIHwgIDggKy0tDQoNCiBkcml2ZXJz L25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYyAgICAgICB8IDI4ICsrKysrLS0tLS0tDQoNCiBk cml2ZXJzL25ldC90eGdiZS90eGdiZV9ldGhkZXYuaCAgICAgICAgICB8ICA0ICstDQoNCiBkcml2 ZXJzL25ldC90eGdiZS90eGdiZV9yeHR4LmMgICAgICAgICAgICB8IDEyICsrLS0tDQoNCiBkcml2 ZXJzL25ldC92aG9zdC9ydGVfZXRoX3Zob3N0LmMgICAgICAgICB8IDE0ICsrKystLQ0KDQogZHJp dmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYuYyAgICAgICAgfCAgOCAtLS0NCg0KIGRyaXZl cnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYyAgICAgIHwgMTQgKystLS0tDQoNCiBkcml2 ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmggICAgICB8ICA0ICstDQoNCiBkcml2ZXJz L25ldC92bXhuZXQzL3ZteG5ldDNfcnh0eC5jICAgICAgICB8ICA4ICstLQ0KDQogbGliL2V0aGRl di9ldGhkZXZfZHJpdmVyLmggICAgICAgICAgICAgICAgfCAgMyArLQ0KDQogbGliL2V0aGRldi9y dGVfZXRoZGV2LmMgICAgICAgICAgICAgICAgICAgfCA1MCArKysrKysrKy0tLS0tLS0tLS0tDQoN CiAxMDQgZmlsZXMgY2hhbmdlZCwgNjE1IGluc2VydGlvbnMoKyksIDY4OSBkZWxldGlvbnMoLSkN Cg0KDQpkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QvdmlydHVhbF9wbWQuYyBiL2FwcC90ZXN0L3ZpcnR1 YWxfcG1kLmMNCg0KaW5kZXggNzAzNmY0MDFlZC4uN2UxNWI0N2ViMCAxMDA2NDQNCg0KLS0tIGEv YXBwL3Rlc3QvdmlydHVhbF9wbWQuYw0KDQorKysgYi9hcHAvdGVzdC92aXJ0dWFsX3BtZC5jDQoN CkBAIC0xNjMsMTYgKzE2Myw2IEBAIHZpcnR1YWxfZXRoZGV2X3R4X3F1ZXVlX3NldHVwX2ZhaWwo c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgX19ydGVfdW51c2VkLA0KDQogICAgICAgIHJldHVybiAt MTsNCg0KIH0NCg0KDQoNCi1zdGF0aWMgdm9pZA0KDQotdmlydHVhbF9ldGhkZXZfcnhfcXVldWVf cmVsZWFzZSh2b2lkICpxIF9fcnRlX3VudXNlZCkNCg0KLXsNCg0KLX0NCg0KLQ0KDQotc3RhdGlj IHZvaWQNCg0KLXZpcnR1YWxfZXRoZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcSBfX3J0ZV91 bnVzZWQpDQoNCi17DQoNCi19DQoNCi0NCg0KIHN0YXRpYyBpbnQNCg0KIHZpcnR1YWxfZXRoZGV2 X2xpbmtfdXBkYXRlX3N1Y2Nlc3Moc3RydWN0IHJ0ZV9ldGhfZGV2ICpib25kZWRfZXRoX2RldiwN Cg0KICAgICAgICAgICAgICAgIGludCB3YWl0X3RvX2NvbXBsZXRlIF9fcnRlX3VudXNlZCkNCg0K QEAgLTI0Myw4ICsyMzMsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV0aF9kZXZfb3BzIHZpcnR1 YWxfZXRoZGV2X2RlZmF1bHRfZGV2X29wcyA9IHsNCg0KICAgICAgICAuZGV2X2luZm9zX2dldCA9 IHZpcnR1YWxfZXRoZGV2X2luZm9fZ2V0LA0KDQogICAgICAgIC5yeF9xdWV1ZV9zZXR1cCA9IHZp cnR1YWxfZXRoZGV2X3J4X3F1ZXVlX3NldHVwX3N1Y2Nlc3MsDQoNCiAgICAgICAgLnR4X3F1ZXVl X3NldHVwID0gdmlydHVhbF9ldGhkZXZfdHhfcXVldWVfc2V0dXBfc3VjY2VzcywNCg0KLSAgICAg ICAucnhfcXVldWVfcmVsZWFzZSA9IHZpcnR1YWxfZXRoZGV2X3J4X3F1ZXVlX3JlbGVhc2UsDQoN Ci0gICAgICAgLnR4X3F1ZXVlX3JlbGVhc2UgPSB2aXJ0dWFsX2V0aGRldl90eF9xdWV1ZV9yZWxl YXNlLA0KDQogICAgICAgIC5saW5rX3VwZGF0ZSA9IHZpcnR1YWxfZXRoZGV2X2xpbmtfdXBkYXRl X3N1Y2Nlc3MsDQoNCiAgICAgICAgLm1hY19hZGRyX3NldCA9IHZpcnR1YWxfZXRoZGV2X21hY19h ZGRyZXNzX3NldCwNCg0KICAgICAgICAuc3RhdHNfZ2V0ID0gdmlydHVhbF9ldGhkZXZfc3RhdHNf Z2V0LA0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYWZfcGFja2V0L3J0ZV9ldGhfYWZfcGFj a2V0LmMgYi9kcml2ZXJzL25ldC9hZl9wYWNrZXQvcnRlX2V0aF9hZl9wYWNrZXQuYw0KDQppbmRl eCBiNzNiMjExZmQyLi40ODBkNmQzMzMzIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9hZl9w YWNrZXQvcnRlX2V0aF9hZl9wYWNrZXQuYw0KDQorKysgYi9kcml2ZXJzL25ldC9hZl9wYWNrZXQv cnRlX2V0aF9hZl9wYWNrZXQuYw0KDQpAQCAtNDA3LDExICs0MDcsNiBAQCBldGhfZGV2X2Nsb3Nl KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KDQogICAgICAgIHJldHVybiAwOw0KDQogfQ0KDQoN Cg0KLXN0YXRpYyB2b2lkDQoNCi1ldGhfcXVldWVfcmVsZWFzZSh2b2lkICpxIF9fcnRlX3VudXNl ZCkNCg0KLXsNCg0KLX0NCg0KLQ0KDQogc3RhdGljIGludA0KDQogZXRoX2xpbmtfdXBkYXRlKHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2IF9fcnRlX3VudXNlZCwNCg0KICAgICAgICAgICAgICAgICBp bnQgd2FpdF90b19jb21wbGV0ZSBfX3J0ZV91bnVzZWQpDQoNCkBAIC01NzQsOCArNTY5LDYgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBldGhfZGV2X29wcyBvcHMgPSB7DQoNCiAgICAgICAgLnByb21p c2N1b3VzX2Rpc2FibGUgPSBldGhfZGV2X3Byb21pc2N1b3VzX2Rpc2FibGUsDQoNCiAgICAgICAg LnJ4X3F1ZXVlX3NldHVwID0gZXRoX3J4X3F1ZXVlX3NldHVwLA0KDQogICAgICAgIC50eF9xdWV1 ZV9zZXR1cCA9IGV0aF90eF9xdWV1ZV9zZXR1cCwNCg0KLSAgICAgICAucnhfcXVldWVfcmVsZWFz ZSA9IGV0aF9xdWV1ZV9yZWxlYXNlLA0KDQotICAgICAgIC50eF9xdWV1ZV9yZWxlYXNlID0gZXRo X3F1ZXVlX3JlbGVhc2UsDQoNCiAgICAgICAgLmxpbmtfdXBkYXRlID0gZXRoX2xpbmtfdXBkYXRl LA0KDQogICAgICAgIC5zdGF0c19nZXQgPSBldGhfc3RhdHNfZ2V0LA0KDQogICAgICAgIC5zdGF0 c19yZXNldCA9IGV0aF9zdGF0c19yZXNldCwNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Fm X3hkcC9ydGVfZXRoX2FmX3hkcC5jIGIvZHJpdmVycy9uZXQvYWZfeGRwL3J0ZV9ldGhfYWZfeGRw LmMNCg0KaW5kZXggOWJlYTBhODk1YS4uYTYxOWRkMjE4ZCAxMDA2NDQNCg0KLS0tIGEvZHJpdmVy cy9uZXQvYWZfeGRwL3J0ZV9ldGhfYWZfeGRwLmMNCg0KKysrIGIvZHJpdmVycy9uZXQvYWZfeGRw L3J0ZV9ldGhfYWZfeGRwLmMNCg0KQEAgLTk4OSwxMSArOTg5LDYgQEAgZXRoX2Rldl9jbG9zZShz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCg0KICAgICAgICByZXR1cm4gMDsNCg0KIH0NCg0KDQoN Ci1zdGF0aWMgdm9pZA0KDQotZXRoX3F1ZXVlX3JlbGVhc2Uodm9pZCAqcSBfX3J0ZV91bnVzZWQp DQoNCi17DQoNCi19DQoNCi0NCg0KIHN0YXRpYyBpbnQNCg0KIGV0aF9saW5rX3VwZGF0ZShzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldiBfX3J0ZV91bnVzZWQsDQoNCiAgICAgICAgICAgICAgICBpbnQg d2FpdF90b19jb21wbGV0ZSBfX3J0ZV91bnVzZWQpDQoNCkBAIC0xNDc0LDggKzE0NjksNiBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGV0aF9kZXZfb3BzIG9wcyA9IHsNCg0KICAgICAgICAucHJvbWlz Y3VvdXNfZGlzYWJsZSA9IGV0aF9kZXZfcHJvbWlzY3VvdXNfZGlzYWJsZSwNCg0KICAgICAgICAu cnhfcXVldWVfc2V0dXAgPSBldGhfcnhfcXVldWVfc2V0dXAsDQoNCiAgICAgICAgLnR4X3F1ZXVl X3NldHVwID0gZXRoX3R4X3F1ZXVlX3NldHVwLA0KDQotICAgICAgIC5yeF9xdWV1ZV9yZWxlYXNl ID0gZXRoX3F1ZXVlX3JlbGVhc2UsDQoNCi0gICAgICAgLnR4X3F1ZXVlX3JlbGVhc2UgPSBldGhf cXVldWVfcmVsZWFzZSwNCg0KICAgICAgICAubGlua191cGRhdGUgPSBldGhfbGlua191cGRhdGUs DQoNCiAgICAgICAgLnN0YXRzX2dldCA9IGV0aF9zdGF0c19nZXQsDQoNCiAgICAgICAgLnN0YXRz X3Jlc2V0ID0gZXRoX3N0YXRzX3Jlc2V0LA0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYXRs YW50aWMvYXRsX2V0aGRldi5oIGIvZHJpdmVycy9uZXQvYXRsYW50aWMvYXRsX2V0aGRldi5oDQoN CmluZGV4IGY1NDc1NzFiNWMuLmEyZDFkNDM5N2MgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0 L2F0bGFudGljL2F0bF9ldGhkZXYuaA0KDQorKysgYi9kcml2ZXJzL25ldC9hdGxhbnRpYy9hdGxf ZXRoZGV2LmgNCg0KQEAgLTU0LDggKzU0LDggQEAgc3RydWN0IGF0bF9hZGFwdGVyIHsNCg0KIC8q DQoNCiAgKiBSWC9UWCBmdW5jdGlvbiBwcm90b3R5cGVzDQoNCiAgKi8NCg0KLXZvaWQgYXRsX3J4 X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcnhxKTsNCg0KLXZvaWQgYXRsX3R4X3F1ZXVlX3JlbGVhc2Uo dm9pZCAqdHhxKTsNCg0KK3ZvaWQgYXRsX3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYsIHVpbnQxNl90IHJ4X3F1ZXVlX2lkKTsNCg0KK3ZvaWQgYXRsX3R4X3F1ZXVlX3Jl bGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHR4X3F1ZXVlX2lkKTsNCg0K DQoNCiBpbnQgYXRsX3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50 MTZfdCByeF9xdWV1ZV9pZCwNCg0KICAgICAgICAgICAgICAgIHVpbnQxNl90IG5iX3J4X2Rlc2Ms IHVuc2lnbmVkIGludCBzb2NrZXRfaWQsDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9hdGxh bnRpYy9hdGxfcnh0eC5jIGIvZHJpdmVycy9uZXQvYXRsYW50aWMvYXRsX3J4dHguYw0KDQppbmRl eCA3ZDM2N2M5MzA2Li5mY2E2ODJkOGIwIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9hdGxh bnRpYy9hdGxfcnh0eC5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L2F0bGFudGljL2F0bF9yeHR4LmMN Cg0KQEAgLTEyNSw3ICsxMjUsNyBAQCBhdGxfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYsIHVpbnQxNl90IHJ4X3F1ZXVlX2lkLA0KDQogICAgICAgICAqIGRpZmZlcmVudCBz b2NrZXQgdGhhbiB3YXMgcHJldmlvdXNseSB1c2VkLg0KDQogICAgICAgICAqLw0KDQogICAgICAg IGlmIChkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tyeF9xdWV1ZV9pZF0gIT0gTlVMTCkgew0KDQotICAg ICAgICAgICAgICAgYXRsX3J4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcnhf cXVldWVfaWRdKTsNCg0KKyAgICAgICAgICAgICAgIGF0bF9yeF9xdWV1ZV9yZWxlYXNlKGRldiwg cnhfcXVldWVfaWQpOw0KDQogICAgICAgICAgICAgICAgZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcnhf cXVldWVfaWRdID0gTlVMTDsNCg0KICAgICAgICB9DQoNCg0KDQpAQCAtMjQ3LDcgKzI0Nyw3IEBA IGF0bF90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgdHhf cXVldWVfaWQsDQoNCiAgICAgICAgICogZGlmZmVyZW50IHNvY2tldCB0aGFuIHdhcyBwcmV2aW91 c2x5IHVzZWQuDQoNCiAgICAgICAgICovDQoNCiAgICAgICAgaWYgKGRldi0+ZGF0YS0+dHhfcXVl dWVzW3R4X3F1ZXVlX2lkXSAhPSBOVUxMKSB7DQoNCi0gICAgICAgICAgICAgICBhdGxfdHhfcXVl dWVfcmVsZWFzZShkZXYtPmRhdGEtPnR4X3F1ZXVlc1t0eF9xdWV1ZV9pZF0pOw0KDQorICAgICAg ICAgICAgICAgYXRsX3R4X3F1ZXVlX3JlbGVhc2UoZGV2LCB0eF9xdWV1ZV9pZCk7DQoNCiAgICAg ICAgICAgICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1t0eF9xdWV1ZV9pZF0gPSBOVUxMOw0KDQog ICAgICAgIH0NCg0KDQoNCkBAIC00OTgsMTMgKzQ5OCwxMyBAQCBhdGxfcnhfcXVldWVfc3RvcChz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcnhfcXVldWVfaWQpDQoNCiB9DQoNCg0K DQogdm9pZA0KDQotYXRsX3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcnhfcXVldWUpDQoNCithdGxf cnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcnhfcXVl dWVfaWQpDQoNCiB7DQoNCi0gICAgICAgUE1EX0lOSVRfRlVOQ19UUkFDRSgpOw0KDQorICAgICAg IHN0cnVjdCBhdGxfcnhfcXVldWUgKnJ4cSA9IGRldi0+ZGF0YS0+cnhfcXVldWVzW3J4X3F1ZXVl X2lkXTsNCg0KDQoNCi0gICAgICAgaWYgKHJ4X3F1ZXVlICE9IE5VTEwpIHsNCg0KLSAgICAgICAg ICAgICAgIHN0cnVjdCBhdGxfcnhfcXVldWUgKnJ4cSA9IChzdHJ1Y3QgYXRsX3J4X3F1ZXVlICop cnhfcXVldWU7DQoNCisgICAgICAgUE1EX0lOSVRfRlVOQ19UUkFDRSgpOw0KDQoNCg0KKyAgICAg ICBpZiAocnhxICE9IE5VTEwpIHsNCg0KICAgICAgICAgICAgICAgIGF0bF9yeF9xdWV1ZV9yZWxl YXNlX21idWZzKHJ4cSk7DQoNCiAgICAgICAgICAgICAgICBydGVfZnJlZShyeHEtPnN3X3Jpbmcp Ow0KDQogICAgICAgICAgICAgICAgcnRlX2ZyZWUocnhxKTsNCg0KQEAgLTU2OSwxMyArNTY5LDEz IEBAIGF0bF90eF9xdWV1ZV9zdG9wKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCB0 eF9xdWV1ZV9pZCkNCg0KIH0NCg0KDQoNCiB2b2lkDQoNCi1hdGxfdHhfcXVldWVfcmVsZWFzZSh2 b2lkICp0eF9xdWV1ZSkNCg0KK2F0bF90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2LCB1aW50MTZfdCB0eF9xdWV1ZV9pZCkNCg0KIHsNCg0KLSAgICAgICBQTURfSU5JVF9G VU5DX1RSQUNFKCk7DQoNCisgICAgICAgc3RydWN0IGF0bF90eF9xdWV1ZSAqdHhxID0gZGV2LT5k YXRhLT50eF9xdWV1ZXNbdHhfcXVldWVfaWRdOw0KDQoNCg0KLSAgICAgICBpZiAodHhfcXVldWUg IT0gTlVMTCkgew0KDQotICAgICAgICAgICAgICAgc3RydWN0IGF0bF90eF9xdWV1ZSAqdHhxID0g KHN0cnVjdCBhdGxfdHhfcXVldWUgKil0eF9xdWV1ZTsNCg0KKyAgICAgICBQTURfSU5JVF9GVU5D X1RSQUNFKCk7DQoNCg0KDQorICAgICAgIGlmICh0eHEgIT0gTlVMTCkgew0KDQogICAgICAgICAg ICAgICAgYXRsX3R4X3F1ZXVlX3JlbGVhc2VfbWJ1ZnModHhxKTsNCg0KICAgICAgICAgICAgICAg IHJ0ZV9mcmVlKHR4cS0+c3dfcmluZyk7DQoNCiAgICAgICAgICAgICAgICBydGVfZnJlZSh0eHEp Ow0KDQpAQCAtNTkwLDEzICs1OTAsMTMgQEAgYXRsX2ZyZWVfcXVldWVzKHN0cnVjdCBydGVfZXRo X2RldiAqZGV2KQ0KDQogICAgICAgIFBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsNCg0KDQoNCiAgICAg ICAgZm9yIChpID0gMDsgaSA8IGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzOyBpKyspIHsNCg0KLSAg ICAgICAgICAgICAgIGF0bF9yeF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+cnhfcXVldWVzW2ld KTsNCg0KKyAgICAgICAgICAgICAgIGF0bF9yeF9xdWV1ZV9yZWxlYXNlKGRldiwgaSk7DQoNCiAg ICAgICAgICAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSA9IDA7DQoNCiAgICAgICAgfQ0K DQogICAgICAgIGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzID0gMDsNCg0KDQoNCiAgICAgICAgZm9y IChpID0gMDsgaSA8IGRldi0+ZGF0YS0+bmJfdHhfcXVldWVzOyBpKyspIHsNCg0KLSAgICAgICAg ICAgICAgIGF0bF90eF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+dHhfcXVldWVzW2ldKTsNCg0K KyAgICAgICAgICAgICAgIGF0bF90eF9xdWV1ZV9yZWxlYXNlKGRldiwgaSk7DQoNCiAgICAgICAg ICAgICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1tpXSA9IDA7DQoNCiAgICAgICAgfQ0KDQogICAg ICAgIGRldi0+ZGF0YS0+bmJfdHhfcXVldWVzID0gMDsNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2F2cC9hdnBfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9hdnAvYXZwX2V0aGRldi5jDQoNCmlu ZGV4IDYyM2ZhNWU1ZmYuLmJiMDg0MmZiMjQgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2F2 cC9hdnBfZXRoZGV2LmMNCg0KKysrIGIvZHJpdmVycy9uZXQvYXZwL2F2cF9ldGhkZXYuYw0KDQpA QCAtNzUsOCArNzUsOCBAQCBzdGF0aWMgdWludDE2X3QgYXZwX3htaXRfcGt0cyh2b2lkICp0eF9x dWV1ZSwNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9tYnVmICoq dHhfcGt0cywNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgbmJfcGt0 cyk7DQoNCg0KDQotc3RhdGljIHZvaWQgYXZwX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnJ4 cSk7DQoNCi1zdGF0aWMgdm9pZCBhdnBfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhxKTsN Cg0KK3N0YXRpYyB2b2lkIGF2cF9kZXZfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldiwgdWludDE2X3QgcWlkKTsNCg0KK3N0YXRpYyB2b2lkIGF2cF9kZXZfdHhfcXVldWVf cmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKTsNCg0KDQoNCiBz dGF0aWMgaW50IGF2cF9kZXZfc3RhdHNfZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2V0aF9zdGF0cyAqc3RhdHMp Ow0KDQpAQCAtMTkyNiwxOCArMTkyNiwxMSBAQCBhdnBfeG1pdF9wa3RzKHZvaWQgKnR4X3F1ZXVl LCBzdHJ1Y3QgcnRlX21idWYgKip0eF9wa3RzLCB1aW50MTZfdCBuYl9wa3RzKQ0KDQogfQ0KDQoN Cg0KIHN0YXRpYyB2b2lkDQoNCi1hdnBfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcnhfcXVl dWUpDQoNCithdnBfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhf ZGV2LCB1aW50MTZfdCByeF9xdWV1ZV9pZCkNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3QgYXZwX3F1 ZXVlICpyeHEgPSAoc3RydWN0IGF2cF9xdWV1ZSAqKXJ4X3F1ZXVlOw0KDQotICAgICAgIHN0cnVj dCBhdnBfZGV2ICphdnAgPSByeHEtPmF2cDsNCg0KLSAgICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXZf ZGF0YSAqZGF0YSA9IGF2cC0+ZGV2X2RhdGE7DQoNCi0gICAgICAgdW5zaWduZWQgaW50IGk7DQoN Ci0NCg0KLSAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXZwLT5udW1fcnhfcXVldWVzOyBpKyspIHsN Cg0KLSAgICAgICAgICAgICAgIGlmIChkYXRhLT5yeF9xdWV1ZXNbaV0gPT0gcnhxKSB7DQoNCi0g ICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9mcmVlKGRhdGEtPnJ4X3F1ZXVlc1tpXSk7DQoNCi0g ICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPnJ4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCi0gICAg ICAgICAgICAgICB9DQoNCisgICAgICAgaWYgKGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlc1tyeF9x dWV1ZV9pZF0gIT0gTlVMTCkgew0KDQorICAgICAgICAgICAgICAgcnRlX2ZyZWUoZXRoX2Rldi0+ ZGF0YS0+cnhfcXVldWVzW3J4X3F1ZXVlX2lkXSk7DQoNCisgICAgICAgICAgICAgICBldGhfZGV2 LT5kYXRhLT5yeF9xdWV1ZXNbcnhfcXVldWVfaWRdID0gTlVMTDsNCg0KICAgICAgICB9DQoNCiB9 DQoNCg0KDQpAQCAtMTk1NywxOCArMTk1MCwxMSBAQCBhdnBfZGV2X3J4X3F1ZXVlX3JlbGVhc2Vf YWxsKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldikNCg0KIH0NCg0KDQoNCiBzdGF0aWMgdm9p ZA0KDQotYXZwX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnR4X3F1ZXVlKQ0KDQorYXZwX2Rl dl90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdWludDE2X3Qg dHhfcXVldWVfaWQpDQoNCiB7DQoNCi0gICAgICAgc3RydWN0IGF2cF9xdWV1ZSAqdHhxID0gKHN0 cnVjdCBhdnBfcXVldWUgKil0eF9xdWV1ZTsNCg0KLSAgICAgICBzdHJ1Y3QgYXZwX2RldiAqYXZw ID0gdHhxLT5hdnA7DQoNCi0gICAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2X2RhdGEgKmRhdGEgPSBh dnAtPmRldl9kYXRhOw0KDQotICAgICAgIHVuc2lnbmVkIGludCBpOw0KDQotDQoNCi0gICAgICAg Zm9yIChpID0gMDsgaSA8IGF2cC0+bnVtX3R4X3F1ZXVlczsgaSsrKSB7DQoNCi0gICAgICAgICAg ICAgICBpZiAoZGF0YS0+dHhfcXVldWVzW2ldID09IHR4cSkgew0KDQotICAgICAgICAgICAgICAg ICAgICAgICBydGVfZnJlZShkYXRhLT50eF9xdWV1ZXNbaV0pOw0KDQotICAgICAgICAgICAgICAg ICAgICAgICBkYXRhLT50eF9xdWV1ZXNbaV0gPSBOVUxMOw0KDQotICAgICAgICAgICAgICAgfQ0K DQorICAgICAgIGlmIChldGhfZGV2LT5kYXRhLT50eF9xdWV1ZXNbdHhfcXVldWVfaWRdICE9IE5V TEwpIHsNCg0KKyAgICAgICAgICAgICAgIHJ0ZV9mcmVlKGV0aF9kZXYtPmRhdGEtPnR4X3F1ZXVl c1t0eF9xdWV1ZV9pZF0pOw0KDQorICAgICAgICAgICAgICAgZXRoX2Rldi0+ZGF0YS0+dHhfcXVl dWVzW3R4X3F1ZXVlX2lkXSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQogfQ0KDQoNCg0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2F4Z2JlL2F4Z2JlX2Rldi5jIGIvZHJpdmVycy9uZXQvYXhnYmUv YXhnYmVfZGV2LmMNCg0KaW5kZXggNzg2Mjg4YTdiMC4uY2EzMmFkNjQxOCAxMDA2NDQNCg0KLS0t IGEvZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfZGV2LmMNCg0KKysrIGIvZHJpdmVycy9uZXQvYXhn YmUvYXhnYmVfZGV2LmMNCg0KQEAgLTk1MCw3ICs5NTAsNyBAQCBzdGF0aWMgaW50IHdyYXBwZXJf cnhfZGVzY19pbml0KHN0cnVjdCBheGdiZV9wb3J0ICpwZGF0YSkNCg0KICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKG1idWYgPT0gTlVMTCkgew0KDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBNRF9EUlZfTE9HKEVSUiwgIlJYIG1idWYgYWxsb2MgZmFpbGVkIHF1ZXVlX2lkID0g JXUsIGlkeCA9ICVkXG4iLA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICh1bnNpZ25lZCBpbnQpcnhxLT5xdWV1ZV9pZCwgaik7DQoNCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXhnYmVfZGV2X3J4X3F1ZXVlX3JlbGVhc2UocnhxKTsNCg0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheGdiZV9kZXZfcnhfcXVldWVfcmVsZWFzZShw ZGF0YS0+ZXRoX2RldiwgaSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIC1FTk9NRU07DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg ICAgICAgICAgICAgcnhxLT5zd19yaW5nW2pdID0gbWJ1ZjsNCg0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2F4Z2JlL2F4Z2JlX3J4dHguYyBiL2RyaXZlcnMvbmV0L2F4Z2JlL2F4Z2JlX3J4dHgu Yw0KDQppbmRleCAzM2Y3MDlhNmJiLi5jODYxOGQyZDZkIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJz L25ldC9heGdiZS9heGdiZV9yeHR4LmMNCg0KKysrIGIvZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVf cnh0eC5jDQoNCkBAIC0zMSw5ICszMSw5IEBAIGF4Z2JlX3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0 IGF4Z2JlX3J4X3F1ZXVlICpyeF9xdWV1ZSkNCg0KICAgICAgICB9DQoNCiB9DQoNCg0KDQotdm9p ZCBheGdiZV9kZXZfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpyeHEpDQoNCit2b2lkIGF4Z2JlX2Rl dl9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxdWV1 ZV9pZHgpDQoNCiB7DQoNCi0gICAgICAgYXhnYmVfcnhfcXVldWVfcmVsZWFzZShyeHEpOw0KDQor ICAgICAgIGF4Z2JlX3J4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcXVldWVf aWR4XSk7DQoNCiB9DQoNCg0KDQogaW50IGF4Z2JlX2Rldl9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWR4LA0KDQpAQCAtNTE3LDkgKzUxNyw5 IEBAIHN0YXRpYyB2b2lkIGF4Z2JlX3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IGF4Z2JlX3R4X3F1 ZXVlICp0eF9xdWV1ZSkNCg0KICAgICAgICB9DQoNCiB9DQoNCg0KDQotdm9pZCBheGdiZV9kZXZf dHhfcXVldWVfcmVsZWFzZSh2b2lkICp0eHEpDQoNCit2b2lkIGF4Z2JlX2Rldl90eF9xdWV1ZV9y ZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZHgpDQoNCiB7 DQoNCi0gICAgICAgYXhnYmVfdHhfcXVldWVfcmVsZWFzZSh0eHEpOw0KDQorICAgICAgIGF4Z2Jl X3R4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT50eF9xdWV1ZXNbcXVldWVfaWR4XSk7DQoNCiB9 DQoNCg0KDQogaW50IGF4Z2JlX2Rldl90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiwgdWludDE2X3QgcXVldWVfaWR4LA0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYXhn YmUvYXhnYmVfcnh0eC5oIGIvZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfcnh0eC5oDQoNCmluZGV4 IGMyYjExYmIwZTYuLjJhMzMwMzM5Y2QgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2F4Z2Jl L2F4Z2JlX3J4dHguaA0KDQorKysgYi9kcml2ZXJzL25ldC9heGdiZS9heGdiZV9yeHR4LmgNCg0K QEAgLTE1Myw3ICsxNTMsNyBAQCBzdHJ1Y3QgYXhnYmVfdHhfcXVldWUgew0KDQogICovDQoNCg0K DQoNCg0KLXZvaWQgYXhnYmVfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhxKTsNCg0KK3Zv aWQgYXhnYmVfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVp bnQxNl90IHF1ZXVlX2lkeCk7DQoNCiBpbnQgIGF4Z2JlX2Rldl90eF9xdWV1ZV9zZXR1cChzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgdHhfcXVldWVfaWQsDQoNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IG5iX3R4X2Rlc2MsIHVuc2lnbmVkIGludCBzb2Nr ZXRfaWQsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBydGVf ZXRoX3R4Y29uZiAqdHhfY29uZik7DQoNCkBAIC0xNzEsNyArMTcxLDcgQEAgdWludDE2X3QgYXhn YmVfeG1pdF9wa3RzX3ZlYyh2b2lkICp0eF9xdWV1ZSwgc3RydWN0IHJ0ZV9tYnVmICoqdHhfcGt0 cywNCg0KICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IG5iX3BrdHMpOw0KDQoNCg0K DQoNCi12b2lkIGF4Z2JlX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnJ4cSk7DQoNCit2b2lk IGF4Z2JlX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50 MTZfdCBxdWV1ZV9pZHgpOw0KDQogaW50ICBheGdiZV9kZXZfcnhfcXVldWVfc2V0dXAoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHJ4X3F1ZXVlX2lkLA0KDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50MTZfdCBuYl9yeF9kZXNjLCB1bnNpZ25lZCBpbnQgc29ja2V0 X2lkLA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX2V0 aF9yeGNvbmYgKnJ4X2NvbmYsDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ibngyeC9ibngy eF9yeHR4LmMgYi9kcml2ZXJzL25ldC9ibngyeC9ibngyeF9yeHR4LmMNCg0KaW5kZXggMmIxNzYw MjI5MC4uZmVhN2EzNGU3ZCAxMDA2NDQNCg0KLS0tIGEvZHJpdmVycy9uZXQvYm54MngvYm54Mnhf cnh0eC5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L2JueDJ4L2JueDJ4X3J4dHguYw0KDQpAQCAtMzcs OSArMzcsOSBAQCBibngyeF9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBibngyeF9yeF9xdWV1ZSAq cnhfcXVldWUpDQoNCiB9DQoNCg0KDQogdm9pZA0KDQotYm54MnhfZGV2X3J4X3F1ZXVlX3JlbGVh c2Uodm9pZCAqcnhxKQ0KDQorYm54MnhfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkeCkNCg0KIHsNCg0KLSAgICAgICBibngyeF9y eF9xdWV1ZV9yZWxlYXNlKHJ4cSk7DQoNCisgICAgICAgYm54MnhfcnhfcXVldWVfcmVsZWFzZShk ZXYtPmRhdGEtPnJ4X3F1ZXVlc1txdWV1ZV9pZHhdKTsNCg0KIH0NCg0KDQoNCiBpbnQNCg0KQEAg LTE4Miw5ICsxODIsOSBAQCBibngyeF90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBibngyeF90eF9x dWV1ZSAqdHhfcXVldWUpDQoNCiB9DQoNCg0KDQogdm9pZA0KDQotYm54MnhfZGV2X3R4X3F1ZXVl X3JlbGVhc2Uodm9pZCAqdHhxKQ0KDQorYm54MnhfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkeCkNCg0KIHsNCg0KLSAgICAgICBi bngyeF90eF9xdWV1ZV9yZWxlYXNlKHR4cSk7DQoNCisgICAgICAgYm54MnhfdHhfcXVldWVfcmVs ZWFzZShkZXYtPmRhdGEtPnR4X3F1ZXVlc1txdWV1ZV9pZHhdKTsNCg0KIH0NCg0KDQoNCiBzdGF0 aWMgdWludDE2X3QNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JueDJ4L2JueDJ4X3J4dHgu aCBiL2RyaXZlcnMvbmV0L2JueDJ4L2JueDJ4X3J4dHguaA0KDQppbmRleCAzZjQ2OTJiNDdkLi4y NDdhNzIyMzBiIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9ibngyeC9ibngyeF9yeHR4LmgN Cg0KKysrIGIvZHJpdmVycy9uZXQvYm54MngvYm54Mnhfcnh0eC5oDQoNCkBAIC03Miw4ICs3Miw4 IEBAIGludCBibngyeF9kZXZfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs IHVpbnQxNl90IHR4X3F1ZXVlX2lkLA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50MTZfdCBuYl90eF9kZXNjLCB1bnNpZ25lZCBpbnQgc29ja2V0X2lkLA0KDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX2V0aF90eGNvbmYgKnR4X2NvbmYp Ow0KDQoNCg0KLXZvaWQgYm54MnhfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcnhxKTsNCg0K LXZvaWQgYm54MnhfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhxKTsNCg0KK3ZvaWQgYm54 MnhfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90 IHF1ZXVlX2lkeCk7DQoNCit2b2lkIGJueDJ4X2Rldl90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZHgpOw0KDQogdm9pZCBibngyeF9kZXZf cnh0eF9pbml0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KTsNCg0KIHZvaWQgYm54MnhfZGV2X3J4 dHhfaW5pdF9kdW1teShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7DQoNCiB2b2lkIGJueDJ4X2Rl dl9jbGVhcl9xdWV1ZXMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvYm54dC9ibnh0X3JlcHMuYyBiL2RyaXZlcnMvbmV0L2JueHQvYm54dF9yZXBz LmMNCg0KaW5kZXggYmRiYWQ1M2I3ZC4uZGYwNTYxOWMzZiAxMDA2NDQNCg0KLS0tIGEvZHJpdmVy cy9uZXQvYm54dC9ibnh0X3JlcHMuYw0KDQorKysgYi9kcml2ZXJzL25ldC9ibnh0L2JueHRfcmVw cy5jDQoNCkBAIC02MzAsNyArNjMwLDcgQEAgaW50IGJueHRfcmVwX3J4X3F1ZXVlX3NldHVwX29w KHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwNCg0KICAgICAgICBpZiAoZXRoX2Rldi0+ZGF0 YS0+cnhfcXVldWVzKSB7DQoNCiAgICAgICAgICAgICAgICByeHEgPSBldGhfZGV2LT5kYXRhLT5y eF9xdWV1ZXNbcXVldWVfaWR4XTsNCg0KICAgICAgICAgICAgICAgIGlmIChyeHEpDQoNCi0gICAg ICAgICAgICAgICAgICAgICAgIGJueHRfcnhfcXVldWVfcmVsZWFzZV9vcChyeHEpOw0KDQorICAg ICAgICAgICAgICAgICAgICAgICBibnh0X3J4X3F1ZXVlX3JlbGVhc2Vfb3AoZXRoX2RldiwgcXVl dWVfaWR4KTsNCg0KICAgICAgICB9DQoNCg0KDQogICAgICAgIHJ4cSA9IHJ0ZV96bWFsbG9jX3Nv Y2tldCgiYm54dF92ZnJfcnhfcXVldWUiLA0KDQpAQCAtNjQxLDYgKzY0MSw4IEBAIGludCBibnh0 X3JlcF9yeF9xdWV1ZV9zZXR1cF9vcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsDQoNCiAg ICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCg0KICAgICAgICB9DQoNCg0KDQorICAgICAg IGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlc1txdWV1ZV9pZHhdID0gcnhxOw0KDQorDQoNCiAgICAg ICAgcnhxLT5uYl9yeF9kZXNjID0gbmJfZGVzYzsNCg0KDQoNCiAgICAgICAgcmMgPSBibnh0X2lu aXRfcmVwX3J4X3JpbmcocnhxLCBzb2NrZXRfaWQpOw0KDQpAQCAtNjYwLDIwICs2NjIsMTkgQEAg aW50IGJueHRfcmVwX3J4X3F1ZXVlX3NldHVwX29wKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rl diwNCg0KICAgICAgICByeHEtPnJ4X3JpbmctPnJ4X2J1Zl9yaW5nID0gYnVmX3Jpbmc7DQoNCiAg ICAgICAgcnhxLT5xdWV1ZV9pZCA9IHF1ZXVlX2lkeDsNCg0KICAgICAgICByeHEtPnBvcnRfaWQg PSBldGhfZGV2LT5kYXRhLT5wb3J0X2lkOw0KDQotICAgICAgIGV0aF9kZXYtPmRhdGEtPnJ4X3F1 ZXVlc1txdWV1ZV9pZHhdID0gcnhxOw0KDQoNCg0KICAgICAgICByZXR1cm4gMDsNCg0KDQoNCiBv dXQ6DQoNCiAgICAgICAgaWYgKHJ4cSkNCg0KLSAgICAgICAgICAgICAgIGJueHRfcmVwX3J4X3F1 ZXVlX3JlbGVhc2Vfb3AocnhxKTsNCg0KKyAgICAgICAgICAgICAgIGJueHRfcmVwX3J4X3F1ZXVl X3JlbGVhc2Vfb3AoZXRoX2RldiwgcXVldWVfaWR4KTsNCg0KDQoNCiAgICAgICAgcmV0dXJuIHJj Ow0KDQogfQ0KDQoNCg0KLXZvaWQgYm54dF9yZXBfcnhfcXVldWVfcmVsZWFzZV9vcCh2b2lkICpy eF9xdWV1ZSkNCg0KK3ZvaWQgYm54dF9yZXBfcnhfcXVldWVfcmVsZWFzZV9vcChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWR4KQ0KDQogew0KDQotICAgICAgIHN0cnVj dCBibnh0X3J4X3F1ZXVlICpyeHEgPSAoc3RydWN0IGJueHRfcnhfcXVldWUgKilyeF9xdWV1ZTsN Cg0KKyAgICAgICBzdHJ1Y3QgYm54dF9yeF9xdWV1ZSAqcnhxID0gZGV2LT5kYXRhLT5yeF9xdWV1 ZXNbcXVldWVfaWR4XTsNCg0KDQoNCiAgICAgICAgaWYgKCFyeHEpDQoNCiAgICAgICAgICAgICAg ICByZXR1cm47DQoNCkBAIC03MjgsOCArNzI5LDggQEAgaW50IGJueHRfcmVwX3R4X3F1ZXVlX3Nl dHVwX29wKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwNCg0KDQoNCiAgICAgICAgaWYgKGV0 aF9kZXYtPmRhdGEtPnR4X3F1ZXVlcykgew0KDQogICAgICAgICAgICAgICAgdmZyX3R4cSA9IGV0 aF9kZXYtPmRhdGEtPnR4X3F1ZXVlc1txdWV1ZV9pZHhdOw0KDQotICAgICAgICAgICAgICAgYm54 dF9yZXBfdHhfcXVldWVfcmVsZWFzZV9vcCh2ZnJfdHhxKTsNCg0KLSAgICAgICAgICAgICAgIHZm cl90eHEgPSBOVUxMOw0KDQorICAgICAgICAgICAgICAgaWYgKHZmcl90eHEgIT0gTlVMTCkNCg0K KyAgICAgICAgICAgICAgICAgICAgICAgYm54dF9yZXBfdHhfcXVldWVfcmVsZWFzZV9vcChldGhf ZGV2LCBxdWV1ZV9pZHgpOw0KDQogICAgICAgIH0NCg0KDQoNCiAgICAgICAgdmZyX3R4cSA9IHJ0 ZV96bWFsbG9jX3NvY2tldCgiYm54dF92ZnJfdHhfcXVldWUiLA0KDQpAQCAtNzU4LDE1ICs3NTks MTYgQEAgaW50IGJueHRfcmVwX3R4X3F1ZXVlX3NldHVwX29wKHN0cnVjdCBydGVfZXRoX2RldiAq ZXRoX2RldiwNCg0KICAgICAgICByZXR1cm4gMDsNCg0KIH0NCg0KDQoNCi12b2lkIGJueHRfcmVw X3R4X3F1ZXVlX3JlbGVhc2Vfb3Aodm9pZCAqdHhfcXVldWUpDQoNCit2b2lkIGJueHRfcmVwX3R4 X3F1ZXVlX3JlbGVhc2Vfb3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVl X2lkeCkNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3QgYm54dF92Zl9yZXBfdHhfcXVldWUgKnZmcl90 eHEgPSB0eF9xdWV1ZTsNCg0KKyAgICAgICBzdHJ1Y3QgYm54dF92Zl9yZXBfdHhfcXVldWUgKnZm cl90eHEgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txdWV1ZV9pZHhdOw0KDQoNCg0KICAgICAgICBp ZiAoIXZmcl90eHEpDQoNCiAgICAgICAgICAgICAgICByZXR1cm47DQoNCg0KDQogICAgICAgIHJ0 ZV9mcmVlKHZmcl90eHEtPnR4cSk7DQoNCiAgICAgICAgcnRlX2ZyZWUodmZyX3R4cSk7DQoNCisg ICAgICAgZGV2LT5kYXRhLT50eF9xdWV1ZXNbcXVldWVfaWR4XSA9IE5VTEw7DQoNCiB9DQoNCg0K DQogaW50IGJueHRfcmVwX3N0YXRzX2dldF9vcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYs DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ibnh0L2JueHRfcmVwcy5oIGIvZHJpdmVycy9u ZXQvYm54dC9ibnh0X3JlcHMuaA0KDQppbmRleCA4ZDYxMzlmMmI3Li4wMWU1N2VlNWI1IDEwMDY0 NA0KDQotLS0gYS9kcml2ZXJzL25ldC9ibnh0L2JueHRfcmVwcy5oDQoNCisrKyBiL2RyaXZlcnMv bmV0L2JueHQvYm54dF9yZXBzLmgNCg0KQEAgLTQyLDggKzQyLDggQEAgaW50IGJueHRfcmVwX3R4 X3F1ZXVlX3NldHVwX29wKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwNCg0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF9fcnRlX3VudXNlZCB1bnNpZ25lZCBpbnQgc29ja2V0 X2lkLA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19ydGVfdW51c2VkIGNv bnN0IHN0cnVjdCBydGVfZXRoX3R4Y29uZiAqDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0eF9jb25mKTsNCg0KLXZvaWQgYm54dF9yZXBfcnhfcXVldWVfcmVsZWFzZV9vcCh2 b2lkICpyeF9xdWV1ZSk7DQoNCi12b2lkIGJueHRfcmVwX3R4X3F1ZXVlX3JlbGVhc2Vfb3Aodm9p ZCAqdHhfcXVldWUpOw0KDQordm9pZCBibnh0X3JlcF9yeF9xdWV1ZV9yZWxlYXNlX29wKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZHgpOw0KDQordm9pZCBibnh0X3Jl cF90eF9xdWV1ZV9yZWxlYXNlX29wKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBx dWV1ZV9pZHgpOw0KDQogaW50ICBibnh0X3JlcF9kZXZfc3RvcF9vcChzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmV0aF9kZXYpOw0KDQogaW50IGJueHRfcmVwX2Rldl9jbG9zZV9vcChzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmV0aF9kZXYpOw0KDQogaW50IGJueHRfcmVwX3N0YXRzX2dldF9vcChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmV0aF9kZXYsDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ibnh0L2JueHRf cmluZy5jIGIvZHJpdmVycy9uZXQvYm54dC9ibnh0X3JpbmcuYw0KDQppbmRleCA5NTdiMTc1ZjFi Li5hYWFkMDhlNWU1IDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9ibnh0L2JueHRfcmluZy5j DQoNCisrKyBiL2RyaXZlcnMvbmV0L2JueHQvYm54dF9yaW5nLmMNCg0KQEAgLTY0MCw3ICs2NDAs NyBAQCBpbnQgYm54dF9hbGxvY19od3JtX3J4X3Jpbmcoc3RydWN0IGJueHQgKmJwLCBpbnQgcXVl dWVfaW5kZXgpDQoNCiAgICAgICAgaWYgKHJ4cS0+cnhfc3RhcnRlZCkgew0KDQogICAgICAgICAg ICAgICAgaWYgKGJueHRfaW5pdF9vbmVfcnhfcmluZyhyeHEpKSB7DQoNCiAgICAgICAgICAgICAg ICAgICAgICAgIFBNRF9EUlZfTE9HKEVSUiwgImJueHRfaW5pdF9vbmVfcnhfcmluZyBmYWlsZWQh XG4iKTsNCg0KLSAgICAgICAgICAgICAgICAgICAgICAgYm54dF9yeF9xdWV1ZV9yZWxlYXNlX29w KHJ4cSk7DQoNCisgICAgICAgICAgICAgICAgICAgICAgIGJueHRfcnhfcXVldWVfcmVsZWFzZV9v cChicC0+ZXRoX2RldiwgcXVldWVfaW5kZXgpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICBy YyA9IC1FTk9NRU07DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX291dDsNCg0K ICAgICAgICAgICAgICAgIH0NCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JueHQvYm54dF9y eHEuYyBiL2RyaXZlcnMvbmV0L2JueHQvYm54dF9yeHEuYw0KDQppbmRleCBiYmNiM2IwNmU3Li4y ZWI3YTNjYjI5IDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9ibnh0L2JueHRfcnhxLmMNCg0K KysrIGIvZHJpdmVycy9uZXQvYm54dC9ibnh0X3J4cS5jDQoNCkBAIC0yNDAsOSArMjQwLDkgQEAg dm9pZCBibnh0X2ZyZWVfcnhfbWJ1ZnMoc3RydWN0IGJueHQgKmJwKQ0KDQogICAgICAgIH0NCg0K IH0NCg0KDQoNCi12b2lkIGJueHRfcnhfcXVldWVfcmVsZWFzZV9vcCh2b2lkICpyeF9xdWV1ZSkN Cg0KK3ZvaWQgYm54dF9yeF9xdWV1ZV9yZWxlYXNlX29wKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LCB1aW50MTZfdCBxdWV1ZV9pZHgpDQoNCiB7DQoNCi0gICAgICAgc3RydWN0IGJueHRfcnhfcXVl dWUgKnJ4cSA9IChzdHJ1Y3QgYm54dF9yeF9xdWV1ZSAqKXJ4X3F1ZXVlOw0KDQorICAgICAgIHN0 cnVjdCBibnh0X3J4X3F1ZXVlICpyeHEgPSBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1txdWV1ZV9pZHhd Ow0KDQoNCg0KICAgICAgICBpZiAocnhxKSB7DQoNCiAgICAgICAgICAgICAgICBpZiAoaXNfYm54 dF9pbl9lcnJvcihyeHEtPmJwKSkNCg0KQEAgLTI3Myw2ICsyNzMsNyBAQCB2b2lkIGJueHRfcnhf cXVldWVfcmVsZWFzZV9vcCh2b2lkICpyeF9xdWV1ZSkNCg0KICAgICAgICAgICAgICAgIHJ4cS0+ bXogPSBOVUxMOw0KDQoNCg0KICAgICAgICAgICAgICAgIHJ0ZV9mcmVlKHJ4cSk7DQoNCisgICAg ICAgICAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1txdWV1ZV9pZHhdID0gTlVMTDsNCg0KICAg ICAgICB9DQoNCiB9DQoNCg0KDQpAQCAtMzA3LDcgKzMwOCw3IEBAIGludCBibnh0X3J4X3F1ZXVl X3NldHVwX29wKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwNCg0KICAgICAgICBpZiAoZXRo X2Rldi0+ZGF0YS0+cnhfcXVldWVzKSB7DQoNCiAgICAgICAgICAgICAgICByeHEgPSBldGhfZGV2 LT5kYXRhLT5yeF9xdWV1ZXNbcXVldWVfaWR4XTsNCg0KICAgICAgICAgICAgICAgIGlmIChyeHEp DQoNCi0gICAgICAgICAgICAgICAgICAgICAgIGJueHRfcnhfcXVldWVfcmVsZWFzZV9vcChyeHEp Ow0KDQorICAgICAgICAgICAgICAgICAgICAgICBibnh0X3J4X3F1ZXVlX3JlbGVhc2Vfb3AoZXRo X2RldiwgcXVldWVfaWR4KTsNCg0KICAgICAgICB9DQoNCiAgICAgICAgcnhxID0gcnRlX3ptYWxs b2Nfc29ja2V0KCJibnh0X3J4X3F1ZXVlIiwgc2l6ZW9mKHN0cnVjdCBibnh0X3J4X3F1ZXVlKSwN Cg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRFX0NBQ0hFX0xJTkVfU0laRSwg c29ja2V0X2lkKTsNCg0KQEAgLTMyOCw2ICszMjksOCBAQCBpbnQgYm54dF9yeF9xdWV1ZV9zZXR1 cF9vcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsDQoNCg0KDQogICAgICAgIFBNRF9EUlZf TE9HKERFQlVHLCAiUlggQnVmIE1UVSAlZFxuIiwgZXRoX2Rldi0+ZGF0YS0+bXR1KTsNCg0KDQoN CisgICAgICAgZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW3F1ZXVlX2lkeF0gPSByeHE7DQoNCisN Cg0KICAgICAgICByYyA9IGJueHRfaW5pdF9yeF9yaW5nX3N0cnVjdChyeHEsIHNvY2tldF9pZCk7 DQoNCiAgICAgICAgaWYgKHJjKSB7DQoNCiAgICAgICAgICAgICAgICBQTURfRFJWX0xPRyhFUlIs DQoNCkBAIC0zNDMsNyArMzQ2LDYgQEAgaW50IGJueHRfcnhfcXVldWVfc2V0dXBfb3Aoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LA0KDQogICAgICAgIGVsc2UNCg0KICAgICAgICAgICAgICAg IHJ4cS0+Y3JjX2xlbiA9IDA7DQoNCg0KDQotICAgICAgIGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVl c1txdWV1ZV9pZHhdID0gcnhxOw0KDQogICAgICAgIC8qIEFsbG9jYXRlIFJYIHJpbmcgaGFyZHdh cmUgZGVzY3JpcHRvcnMgKi8NCg0KICAgICAgICByYyA9IGJueHRfYWxsb2NfcmluZ3MoYnAsIHNv Y2tldF9pZCwgcXVldWVfaWR4LCBOVUxMLCByeHEsIHJ4cS0+Y3BfcmluZywNCg0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwgInJ4ciIpOw0KDQpAQCAtMzY5LDcgKzM3MSw3IEBA IGludCBibnh0X3J4X3F1ZXVlX3NldHVwX29wKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwN Cg0KDQoNCiAgICAgICAgcmV0dXJuIDA7DQoNCiBlcnI6DQoNCi0gICAgICAgYm54dF9yeF9xdWV1 ZV9yZWxlYXNlX29wKHJ4cSk7DQoNCisgICAgICAgYm54dF9yeF9xdWV1ZV9yZWxlYXNlX29wKGV0 aF9kZXYsIHF1ZXVlX2lkeCk7DQoNCiAgICAgICAgcmV0dXJuIHJjOw0KDQogfQ0KDQoNCg0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JueHQvYm54dF9yeHEuaCBiL2RyaXZlcnMvbmV0L2JueHQv Ym54dF9yeHEuaA0KDQppbmRleCA0MmJkOGU3YWI3Li45YmI5MzUyZmViIDEwMDY0NA0KDQotLS0g YS9kcml2ZXJzL25ldC9ibnh0L2JueHRfcnhxLmgNCg0KKysrIGIvZHJpdmVycy9uZXQvYm54dC9i bnh0X3J4cS5oDQoNCkBAIC00Niw3ICs0Niw3IEBAIHN0cnVjdCBibnh0X3J4X3F1ZXVlIHsNCg0K DQoNCiB2b2lkIGJueHRfZnJlZV9yeHFfc3RhdHMoc3RydWN0IGJueHRfcnhfcXVldWUgKnJ4cSk7 DQoNCiBpbnQgYm54dF9tcV9yeF9jb25maWd1cmUoc3RydWN0IGJueHQgKmJwKTsNCg0KLXZvaWQg Ym54dF9yeF9xdWV1ZV9yZWxlYXNlX29wKHZvaWQgKnJ4X3F1ZXVlKTsNCg0KK3ZvaWQgYm54dF9y eF9xdWV1ZV9yZWxlYXNlX29wKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxdWV1 ZV9pZHgpOw0KDQogaW50IGJueHRfcnhfcXVldWVfc2V0dXBfb3Aoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpldGhfZGV2LA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgcXVl dWVfaWR4LA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgbmJfZGVz YywNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JueHQvYm54dF90eHEuYyBiL2RyaXZlcnMv bmV0L2JueHQvYm54dF90eHEuYw0KDQppbmRleCA4MzA0MTZhZjNkLi5kNGQyYzIwMzYyIDEwMDY0 NA0KDQotLS0gYS9kcml2ZXJzL25ldC9ibnh0L2JueHRfdHhxLmMNCg0KKysrIGIvZHJpdmVycy9u ZXQvYm54dC9ibnh0X3R4cS5jDQoNCkBAIC01Myw5ICs1Myw5IEBAIHZvaWQgYm54dF9mcmVlX3R4 X21idWZzKHN0cnVjdCBibnh0ICpicCkNCg0KICAgICAgICB9DQoNCiB9DQoNCg0KDQotdm9pZCBi bnh0X3R4X3F1ZXVlX3JlbGVhc2Vfb3Aodm9pZCAqdHhfcXVldWUpDQoNCit2b2lkIGJueHRfdHhf cXVldWVfcmVsZWFzZV9vcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcXVldWVf aWR4KQ0KDQogew0KDQotICAgICAgIHN0cnVjdCBibnh0X3R4X3F1ZXVlICp0eHEgPSAoc3RydWN0 IGJueHRfdHhfcXVldWUgKil0eF9xdWV1ZTsNCg0KKyAgICAgICBzdHJ1Y3QgYm54dF90eF9xdWV1 ZSAqdHhxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXNbcXVldWVfaWR4XTsNCg0KDQoNCiAgICAgICAg aWYgKHR4cSkgew0KDQogICAgICAgICAgICAgICAgaWYgKGlzX2JueHRfaW5fZXJyb3IodHhxLT5i cCkpDQoNCkBAIC04Myw2ICs4Myw3IEBAIHZvaWQgYm54dF90eF9xdWV1ZV9yZWxlYXNlX29wKHZv aWQgKnR4X3F1ZXVlKQ0KDQoNCg0KICAgICAgICAgICAgICAgIHJ0ZV9mcmVlKHR4cS0+ZnJlZSk7 DQoNCiAgICAgICAgICAgICAgICBydGVfZnJlZSh0eHEpOw0KDQorICAgICAgICAgICAgICAgZGV2 LT5kYXRhLT50eF9xdWV1ZXNbcXVldWVfaWR4XSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQogfQ0K DQoNCg0KQEAgLTExNSw3ICsxMTYsNyBAQCBpbnQgYm54dF90eF9xdWV1ZV9zZXR1cF9vcChzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsDQoNCiAgICAgICAgaWYgKGV0aF9kZXYtPmRhdGEtPnR4 X3F1ZXVlcykgew0KDQogICAgICAgICAgICAgICAgdHhxID0gZXRoX2Rldi0+ZGF0YS0+dHhfcXVl dWVzW3F1ZXVlX2lkeF07DQoNCiAgICAgICAgICAgICAgICBpZiAodHhxKSB7DQoNCi0gICAgICAg ICAgICAgICAgICAgICAgIGJueHRfdHhfcXVldWVfcmVsZWFzZV9vcCh0eHEpOw0KDQorICAgICAg ICAgICAgICAgICAgICAgICBibnh0X3R4X3F1ZXVlX3JlbGVhc2Vfb3AoZXRoX2RldiwgcXVldWVf aWR4KTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgdHhxID0gTlVMTDsNCg0KICAgICAgICAg ICAgICAgIH0NCg0KICAgICAgICB9DQoNCkBAIC0xMjYsNiArMTI3LDkgQEAgaW50IGJueHRfdHhf cXVldWVfc2V0dXBfb3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LA0KDQogICAgICAgICAg ICAgICAgcmV0dXJuIC1FTk9NRU07DQoNCiAgICAgICAgfQ0KDQoNCg0KKyAgICAgICB0eHEtPmJw ID0gYnA7DQoNCisgICAgICAgZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVzW3F1ZXVlX2lkeF0gPSB0 eHE7DQoNCisNCg0KICAgICAgICB0eHEtPmZyZWUgPSBydGVfem1hbGxvY19zb2NrZXQoTlVMTCwN Cg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBy dGVfbWJ1ZiAqKSAqIG5iX2Rlc2MsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJURV9DQUNIRV9MSU5FX1NJWkUsIHNvY2tldF9pZCk7DQoNCkBAIC0xMzQsNyArMTM4 LDYgQEAgaW50IGJueHRfdHhfcXVldWVfc2V0dXBfb3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhf ZGV2LA0KDQogICAgICAgICAgICAgICAgcmMgPSAtRU5PTUVNOw0KDQogICAgICAgICAgICAgICAg Z290byBlcnI7DQoNCiAgICAgICAgfQ0KDQotICAgICAgIHR4cS0+YnAgPSBicDsNCg0KICAgICAg ICB0eHEtPm5iX3R4X2Rlc2MgPSBuYl9kZXNjOw0KDQogICAgICAgIHR4cS0+dHhfZnJlZV90aHJl c2ggPQ0KDQogICAgICAgICAgICAgICAgUlRFX01JTihydGVfYWxpZ24zMnBvdzIobmJfZGVzYykg LyA0LCBSVEVfQk5YVF9NQVhfVFhfQlVSU1QpOw0KDQpAQCAtMTY0LDggKzE2Nyw2IEBAIGludCBi bnh0X3R4X3F1ZXVlX3NldHVwX29wKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwNCg0KICAg ICAgICAgICAgICAgIGdvdG8gZXJyOw0KDQogICAgICAgIH0NCg0KDQoNCi0gICAgICAgZXRoX2Rl di0+ZGF0YS0+dHhfcXVldWVzW3F1ZXVlX2lkeF0gPSB0eHE7DQoNCi0NCg0KICAgICAgICBpZiAo dHhxLT50eF9kZWZlcnJlZF9zdGFydCkNCg0KICAgICAgICAgICAgICAgIHR4cS0+dHhfc3RhcnRl ZCA9IGZhbHNlOw0KDQogICAgICAgIGVsc2UNCg0KQEAgLTE3Myw2ICsxNzQsNiBAQCBpbnQgYm54 dF90eF9xdWV1ZV9zZXR1cF9vcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsDQoNCg0KDQog ICAgICAgIHJldHVybiAwOw0KDQogZXJyOg0KDQotICAgICAgIGJueHRfdHhfcXVldWVfcmVsZWFz ZV9vcCh0eHEpOw0KDQorICAgICAgIGJueHRfdHhfcXVldWVfcmVsZWFzZV9vcChldGhfZGV2LCBx dWV1ZV9pZHgpOw0KDQogICAgICAgIHJldHVybiByYzsNCg0KIH0NCg0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2JueHQvYm54dF90eHEuaCBiL2RyaXZlcnMvbmV0L2JueHQvYm54dF90eHEuaA0K DQppbmRleCBlMGUxNDJkZjNlLi42N2ZkNGNiZWJiIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25l dC9ibnh0L2JueHRfdHhxLmgNCg0KKysrIGIvZHJpdmVycy9uZXQvYm54dC9ibnh0X3R4cS5oDQoN CkBAIC0zNyw3ICszNyw3IEBAIHN0cnVjdCBibnh0X3R4X3F1ZXVlIHsNCg0KDQoNCiB2b2lkIGJu eHRfZnJlZV90eHFfc3RhdHMoc3RydWN0IGJueHRfdHhfcXVldWUgKnR4cSk7DQoNCiB2b2lkIGJu eHRfZnJlZV90eF9tYnVmcyhzdHJ1Y3QgYm54dCAqYnApOw0KDQotdm9pZCBibnh0X3R4X3F1ZXVl X3JlbGVhc2Vfb3Aodm9pZCAqdHhfcXVldWUpOw0KDQordm9pZCBibnh0X3R4X3F1ZXVlX3JlbGVh c2Vfb3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkeCk7DQoNCiBp bnQgYm54dF90eF9xdWV1ZV9zZXR1cF9vcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsDQoN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBxdWV1ZV9pZHgsDQoNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBuYl9kZXNjLA0KDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ydGVfZXRoX2JvbmRfcG1kLmMgYi9kcml2ZXJzL25l dC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9wbWQuYw0KDQppbmRleCA4ZWQ5ZTAzNmY0Li41ZjM0ODRh OGIzIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9wbWQu Yw0KDQorKysgYi9kcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZF9wbWQuYw0KDQpAQCAt MjMyOSw4ICsyMzI5LDEwIEBAIGJvbmRfZXRoZGV2X3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2LCB1aW50MTZfdCB0eF9xdWV1ZV9pZCwNCg0KIH0NCg0KDQoNCiBzdGF0aWMg dm9pZA0KDQotYm9uZF9ldGhkZXZfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpxdWV1ZSkNCg0KK2Jv bmRfZXRoZGV2X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQx Nl90IHF1ZXVlX2lkKQ0KDQogew0KDQorICAgICAgIHZvaWQgKnF1ZXVlID0gZGV2LT5kYXRhLT5y eF9xdWV1ZXNbcXVldWVfaWRdOw0KDQorDQoNCiAgICAgICAgaWYgKHF1ZXVlID09IE5VTEwpDQoN CiAgICAgICAgICAgICAgICByZXR1cm47DQoNCg0KDQpAQCAtMjMzOCw4ICsyMzQwLDEwIEBAIGJv bmRfZXRoZGV2X3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcXVldWUpDQoNCiB9DQoNCg0KDQogc3Rh dGljIHZvaWQNCg0KLWJvbmRfZXRoZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcXVldWUpDQoN Citib25kX2V0aGRldl90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1 aW50MTZfdCBxdWV1ZV9pZCkNCg0KIHsNCg0KKyAgICAgICB2b2lkICpxdWV1ZSA9IGRldi0+ZGF0 YS0+cnhfcXVldWVzW3F1ZXVlX2lkXTsNCg0KKw0KDQogICAgICAgIGlmIChxdWV1ZSA9PSBOVUxM KQ0KDQogICAgICAgICAgICAgICAgcmV0dXJuOw0KDQoNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2NueGsvY254a19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2NueGsvY254a19ldGhkZXYuYw0K DQppbmRleCAwZTM2NTJlZDUxLi4yMDM3YjhhNjVlIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25l dC9jbnhrL2NueGtfZXRoZGV2LmMNCg0KKysrIGIvZHJpdmVycy9uZXQvY254ay9jbnhrX2V0aGRl di5jDQoNCkBAIC0xOTAsNyArMTkwLDcgQEAgY254a19uaXhfdHhfcXVldWVfc2V0dXAoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1aW50MTZfdCBxaWQsDQoNCiAgICAgICAgLyogRnJlZSBt ZW1vcnkgcHJpb3IgdG8gcmUtYWxsb2NhdGlvbiBpZiBuZWVkZWQuICovDQoNCiAgICAgICAgaWYg KGV0aF9kZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdICE9IE5VTEwpIHsNCg0KICAgICAgICAgICAg ICAgIHBsdF9uaXhfZGJnKCJGcmVlaW5nIG1lbW9yeSBwcmlvciB0byByZS1hbGxvY2F0aW9uICVk IiwgcWlkKTsNCg0KLSAgICAgICAgICAgICAgIGRldl9vcHMtPnR4X3F1ZXVlX3JlbGVhc2UoZXRo X2Rldi0+ZGF0YS0+dHhfcXVldWVzW3FpZF0pOw0KDQorICAgICAgICAgICAgICAgZGV2X29wcy0+ dHhfcXVldWVfcmVsZWFzZShldGhfZGV2LCBxaWQpOw0KDQogICAgICAgICAgICAgICAgZXRoX2Rl di0+ZGF0YS0+dHhfcXVldWVzW3FpZF0gPSBOVUxMOw0KDQogICAgICAgIH0NCg0KDQoNCkBAIC0y MzIsMjAgKzIzMiwyMCBAQCBjbnhrX25peF90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmV0aF9kZXYsIHVpbnQxNl90IHFpZCwNCg0KIH0NCg0KDQoNCiBzdGF0aWMgdm9pZA0KDQot Y254a19uaXhfdHhfcXVldWVfcmVsZWFzZSh2b2lkICp0eHEpDQoNCitjbnhrX25peF90eF9xdWV1 ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdWludDE2X3QgcWlkKQ0KDQog ew0KDQorICAgICAgIHZvaWQgKnR4cSA9IGV0aF9kZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdOw0K DQogICAgICAgIHN0cnVjdCBjbnhrX2V0aF90eHFfc3AgKnR4cV9zcDsNCg0KICAgICAgICBzdHJ1 Y3QgY254a19ldGhfZGV2ICpkZXY7DQoNCiAgICAgICAgc3RydWN0IHJvY19uaXhfc3EgKnNxOw0K DQotICAgICAgIHVpbnQxNl90IHFpZDsNCg0KICAgICAgICBpbnQgcmM7DQoNCg0KDQogICAgICAg IGlmICghdHhxKQ0KDQogICAgICAgICAgICAgICAgcmV0dXJuOw0KDQoNCg0KICAgICAgICB0eHFf c3AgPSBjbnhrX2V0aF90eHFfdG9fc3AodHhxKTsNCg0KKw0KDQogICAgICAgIGRldiA9IHR4cV9z cC0+ZGV2Ow0KDQotICAgICAgIHFpZCA9IHR4cV9zcC0+cWlkOw0KDQoNCg0KICAgICAgICBwbHRf bml4X2RiZygiUmVsZWFzaW5nIHR4cSAldSIsIHFpZCk7DQoNCg0KDQpAQCAtMjk5LDcgKzI5OSw3 IEBAIGNueGtfbml4X3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rldiwg dWludDE2X3QgcWlkLA0KDQogICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGV0aF9kZXZfb3Bz ICpkZXZfb3BzID0gZXRoX2Rldi0+ZGV2X29wczsNCg0KDQoNCiAgICAgICAgICAgICAgICBwbHRf bml4X2RiZygiRnJlZWluZyBtZW1vcnkgcHJpb3IgdG8gcmUtYWxsb2NhdGlvbiAlZCIsIHFpZCk7 DQoNCi0gICAgICAgICAgICAgICBkZXZfb3BzLT5yeF9xdWV1ZV9yZWxlYXNlKGV0aF9kZXYtPmRh dGEtPnJ4X3F1ZXVlc1txaWRdKTsNCg0KKyAgICAgICAgICAgICAgIGRldl9vcHMtPnJ4X3F1ZXVl X3JlbGVhc2UoZXRoX2RldiwgcWlkKTsNCg0KICAgICAgICAgICAgICAgIGV0aF9kZXYtPmRhdGEt PnJ4X3F1ZXVlc1txaWRdID0gTlVMTDsNCg0KICAgICAgICB9DQoNCg0KDQpAQCAtMzc5LDEzICsz NzksMTMgQEAgY254a19uaXhfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhf ZGV2LCB1aW50MTZfdCBxaWQsDQoNCiB9DQoNCg0KDQogc3RhdGljIHZvaWQNCg0KLWNueGtfbml4 X3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcnhxKQ0KDQorY254a19uaXhfcnhfcXVldWVfcmVsZWFz ZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KKyAg ICAgICB2b2lkICpyeHEgPSBldGhfZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcWlkXTsNCg0KICAgICAg ICBzdHJ1Y3QgY254a19ldGhfcnhxX3NwICpyeHFfc3A7DQoNCiAgICAgICAgc3RydWN0IGNueGtf ZXRoX2RldiAqZGV2Ow0KDQogICAgICAgIHN0cnVjdCByb2Nfbml4X3JxICpycTsNCg0KICAgICAg ICBzdHJ1Y3Qgcm9jX25peF9jcSAqY3E7DQoNCi0gICAgICAgdWludDE2X3QgcWlkOw0KDQogICAg ICAgIGludCByYzsNCg0KDQoNCiAgICAgICAgaWYgKCFyeHEpDQoNCkBAIC0zOTMsNyArMzkzLDYg QEAgY254a19uaXhfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpyeHEpDQoNCg0KDQogICAgICAgIHJ4 cV9zcCA9IGNueGtfZXRoX3J4cV90b19zcChyeHEpOw0KDQogICAgICAgIGRldiA9IHJ4cV9zcC0+ ZGV2Ow0KDQotICAgICAgIHFpZCA9IHJ4cV9zcC0+cWlkOw0KDQoNCg0KICAgICAgICBwbHRfbml4 X2RiZygiUmVsZWFzaW5nIHJ4cSAldSIsIHFpZCk7DQoNCg0KDQpAQCAtNTU4LDcgKzU1Nyw3IEBA IG5peF9zdG9yZV9xdWV1ZV9jZmdfYW5kX3RoZW5fcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYg KmV0aF9kZXYpDQoNCiAgICAgICAgICAgICAgICB0eHFfc3AgPSBjbnhrX2V0aF90eHFfdG9fc3Ao dHhxW2ldKTsNCg0KICAgICAgICAgICAgICAgIG1lbWNweSgmdHhfcWNvbmZbaV0sICZ0eHFfc3At PnFjb25mLCBzaXplb2YoKnR4X3Fjb25mKSk7DQoNCiAgICAgICAgICAgICAgICB0eF9xY29uZltp XS52YWxpZCA9IHRydWU7DQoNCi0gICAgICAgICAgICAgICBkZXZfb3BzLT50eF9xdWV1ZV9yZWxl YXNlKHR4cVtpXSk7DQoNCisgICAgICAgICAgICAgICBkZXZfb3BzLT50eF9xdWV1ZV9yZWxlYXNl KGV0aF9kZXYsIGkpOw0KDQogICAgICAgICAgICAgICAgZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVz W2ldID0gTlVMTDsNCg0KICAgICAgICB9DQoNCg0KDQpAQCAtNTcyLDcgKzU3MSw3IEBAIG5peF9z dG9yZV9xdWV1ZV9jZmdfYW5kX3RoZW5fcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9k ZXYpDQoNCiAgICAgICAgICAgICAgICByeHFfc3AgPSBjbnhrX2V0aF9yeHFfdG9fc3AocnhxW2ld KTsNCg0KICAgICAgICAgICAgICAgIG1lbWNweSgmcnhfcWNvbmZbaV0sICZyeHFfc3AtPnFjb25m LCBzaXplb2YoKnJ4X3Fjb25mKSk7DQoNCiAgICAgICAgICAgICAgICByeF9xY29uZltpXS52YWxp ZCA9IHRydWU7DQoNCi0gICAgICAgICAgICAgICBkZXZfb3BzLT5yeF9xdWV1ZV9yZWxlYXNlKHJ4 cVtpXSk7DQoNCisgICAgICAgICAgICAgICBkZXZfb3BzLT5yeF9xdWV1ZV9yZWxlYXNlKGV0aF9k ZXYsIGkpOw0KDQogICAgICAgICAgICAgICAgZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW2ldID0g TlVMTDsNCg0KICAgICAgICB9DQoNCg0KDQpAQCAtNTk0LDcgKzU5Myw2IEBAIG5peF9yZXN0b3Jl X3F1ZXVlX2NmZyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpDQoNCiAgICAgICAgc3RydWN0 IGNueGtfZXRoX3Fjb25mICp0eF9xY29uZiA9IGRldi0+dHhfcWNvbmY7DQoNCiAgICAgICAgc3Ry dWN0IGNueGtfZXRoX3Fjb25mICpyeF9xY29uZiA9IGRldi0+cnhfcWNvbmY7DQoNCiAgICAgICAg aW50IHJjLCBpLCBuYl9yeHEsIG5iX3R4cTsNCg0KLSAgICAgICB2b2lkICoqdHhxLCAqKnJ4cTsN Cg0KDQoNCiAgICAgICAgbmJfcnhxID0gUlRFX01JTihkZXYtPm5iX3J4cSwgZXRoX2Rldi0+ZGF0 YS0+bmJfcnhfcXVldWVzKTsNCg0KICAgICAgICBuYl90eHEgPSBSVEVfTUlOKGRldi0+bmJfdHhx LCBldGhfZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXMpOw0KDQpAQCAtNjI5LDkgKzYyNyw4IEBAIG5p eF9yZXN0b3JlX3F1ZXVlX2NmZyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpDQoNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0eF9xY29uZltpXS5jb25m LnR4KTsNCg0KICAgICAgICAgICAgICAgIGlmIChyYykgew0KDQogICAgICAgICAgICAgICAgICAg ICAgICBwbHRfZXJyKCJGYWlsZWQgdG8gc2V0dXAgdHggcXVldWUgcmM9JWQiLCByYyk7DQoNCi0g ICAgICAgICAgICAgICAgICAgICAgIHR4cSA9IGV0aF9kZXYtPmRhdGEtPnR4X3F1ZXVlczsNCg0K ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpIC09IDE7IGkgPj0gMDsgaS0tKQ0KDQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldl9vcHMtPnR4X3F1ZXVlX3JlbGVhc2UodHhx W2ldKTsNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZfb3BzLT50eF9xdWV1 ZV9yZWxlYXNlKGV0aF9kZXYsIGkpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZh aWw7DQoNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgfQ0KDQpAQCAtNjQ3LDkgKzY0NCw4 IEBAIG5peF9yZXN0b3JlX3F1ZXVlX2NmZyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpDQoN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ4X3Fjb25mW2ld Lm1wKTsNCg0KICAgICAgICAgICAgICAgIGlmIChyYykgew0KDQogICAgICAgICAgICAgICAgICAg ICAgICBwbHRfZXJyKCJGYWlsZWQgdG8gc2V0dXAgcnggcXVldWUgcmM9JWQiLCByYyk7DQoNCi0g ICAgICAgICAgICAgICAgICAgICAgIHJ4cSA9IGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlczsNCg0K ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpIC09IDE7IGkgPj0gMDsgaS0tKQ0KDQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldl9vcHMtPnJ4X3F1ZXVlX3JlbGVhc2Uocnhx W2ldKTsNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZfb3BzLT5yeF9xdWV1 ZV9yZWxlYXNlKGV0aF9kZXYsIGkpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHR4 X3F1ZXVlX3JlbGVhc2U7DQoNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgfQ0KDQpAQCAt NjYwLDkgKzY1Niw4IEBAIG5peF9yZXN0b3JlX3F1ZXVlX2NmZyhzdHJ1Y3QgcnRlX2V0aF9kZXYg KmV0aF9kZXYpDQoNCiAgICAgICAgcmV0dXJuIDA7DQoNCg0KDQogdHhfcXVldWVfcmVsZWFzZToN Cg0KLSAgICAgICB0eHEgPSBldGhfZGV2LT5kYXRhLT50eF9xdWV1ZXM7DQoNCiAgICAgICAgZm9y IChpID0gMDsgaSA8IGV0aF9kZXYtPmRhdGEtPm5iX3R4X3F1ZXVlczsgaSsrKQ0KDQotICAgICAg ICAgICAgICAgZGV2X29wcy0+dHhfcXVldWVfcmVsZWFzZSh0eHFbaV0pOw0KDQorICAgICAgICAg ICAgICAgZGV2X29wcy0+dHhfcXVldWVfcmVsZWFzZShldGhfZGV2LCBpKTsNCg0KIGZhaWw6DQoN CiAgICAgICAgaWYgKHR4X3Fjb25mKQ0KDQogICAgICAgICAgICAgICAgZnJlZSh0eF9xY29uZik7 DQoNCkBAIC0xNDE3LDE0ICsxNDEyLDE0IEBAIGNueGtfZXRoX2Rldl91bmluaXQoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpldGhfZGV2LCBib29sIHJlc2V0KQ0KDQoNCg0KICAgICAgICAvKiBGcmVlIHVw IFNRcyAqLw0KDQogICAgICAgIGZvciAoaSA9IDA7IGkgPCBldGhfZGV2LT5kYXRhLT5uYl90eF9x dWV1ZXM7IGkrKykgew0KDQotICAgICAgICAgICAgICAgZGV2X29wcy0+dHhfcXVldWVfcmVsZWFz ZShldGhfZGV2LT5kYXRhLT50eF9xdWV1ZXNbaV0pOw0KDQorICAgICAgICAgICAgICAgZGV2X29w cy0+dHhfcXVldWVfcmVsZWFzZShldGhfZGV2LCBpKTsNCg0KICAgICAgICAgICAgICAgIGV0aF9k ZXYtPmRhdGEtPnR4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQogICAgICAgIGV0 aF9kZXYtPmRhdGEtPm5iX3R4X3F1ZXVlcyA9IDA7DQoNCg0KDQogICAgICAgIC8qIEZyZWUgdXAg UlEncyBhbmQgQ1EncyAqLw0KDQogICAgICAgIGZvciAoaSA9IDA7IGkgPCBldGhfZGV2LT5kYXRh LT5uYl9yeF9xdWV1ZXM7IGkrKykgew0KDQotICAgICAgICAgICAgICAgZGV2X29wcy0+cnhfcXVl dWVfcmVsZWFzZShldGhfZGV2LT5kYXRhLT5yeF9xdWV1ZXNbaV0pOw0KDQorICAgICAgICAgICAg ICAgZGV2X29wcy0+cnhfcXVldWVfcmVsZWFzZShldGhfZGV2LCBpKTsNCg0KICAgICAgICAgICAg ICAgIGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQog ICAgICAgIGV0aF9kZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcyA9IDA7DQoNCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9jeGdiZS9jeGdiZV9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2N4Z2JlL2N4Z2Jl X2V0aGRldi5jDQoNCmluZGV4IDE3N2VjYTM5NzYuLjMzZmE4MDIxM2YgMTAwNjQ0DQoNCi0tLSBh L2RyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlX2V0aGRldi5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L2N4 Z2JlL2N4Z2JlX2V0aGRldi5jDQoNCkBAIC01MzIsNyArNTMyLDcgQEAgaW50IGN4Z2JlX2Rldl90 eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsDQoNCg0KDQogICAgICAg IC8qICBGcmVlIHVwIHRoZSBleGlzdGluZyBxdWV1ZSAgKi8NCg0KICAgICAgICBpZiAoZXRoX2Rl di0+ZGF0YS0+dHhfcXVldWVzW3F1ZXVlX2lkeF0pIHsNCg0KLSAgICAgICAgICAgICAgIGN4Z2Jl X2Rldl90eF9xdWV1ZV9yZWxlYXNlKGV0aF9kZXYtPmRhdGEtPnR4X3F1ZXVlc1txdWV1ZV9pZHhd KTsNCg0KKyAgICAgICAgICAgICAgIGN4Z2JlX2Rldl90eF9xdWV1ZV9yZWxlYXNlKGV0aF9kZXYs IHF1ZXVlX2lkeCk7DQoNCiAgICAgICAgICAgICAgICBldGhfZGV2LT5kYXRhLT50eF9xdWV1ZXNb cXVldWVfaWR4XSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQoNCg0KQEAgLTU2NSw5ICs1NjUsOSBA QCBpbnQgY3hnYmVfZGV2X3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rl diwNCg0KICAgICAgICByZXR1cm4gZXJyOw0KDQogfQ0KDQoNCg0KLXZvaWQgY3hnYmVfZGV2X3R4 X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcSkNCg0KK3ZvaWQgY3hnYmVfZGV2X3R4X3F1ZXVlX3JlbGVh c2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1aW50MTZfdCBxaWQpDQoNCiB7DQoNCi0g ICAgICAgc3RydWN0IHNnZV9ldGhfdHhxICp0eHEgPSAoc3RydWN0IHNnZV9ldGhfdHhxICopcTsN Cg0KKyAgICAgICBzdHJ1Y3Qgc2dlX2V0aF90eHEgKnR4cSA9IGV0aF9kZXYtPmRhdGEtPnR4X3F1 ZXVlc1txaWRdOw0KDQoNCg0KICAgICAgICBpZiAodHhxKSB7DQoNCiAgICAgICAgICAgICAgICBz dHJ1Y3QgcG9ydF9pbmZvICpwaSA9IChzdHJ1Y3QgcG9ydF9pbmZvICopDQoNCkBAIC02NTUsNyAr NjU1LDcgQEAgaW50IGN4Z2JlX2Rldl9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYg KmV0aF9kZXYsDQoNCg0KDQogICAgICAgIC8qICBGcmVlIHVwIHRoZSBleGlzdGluZyBxdWV1ZSAg Ki8NCg0KICAgICAgICBpZiAoZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW3F1ZXVlX2lkeF0pIHsN Cg0KLSAgICAgICAgICAgICAgIGN4Z2JlX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKGV0aF9kZXYtPmRh dGEtPnJ4X3F1ZXVlc1txdWV1ZV9pZHhdKTsNCg0KKyAgICAgICAgICAgICAgIGN4Z2JlX2Rldl9y eF9xdWV1ZV9yZWxlYXNlKGV0aF9kZXYsIHF1ZXVlX2lkeCk7DQoNCiAgICAgICAgICAgICAgICBl dGhfZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcXVldWVfaWR4XSA9IE5VTEw7DQoNCiAgICAgICAgfQ0K DQoNCg0KQEAgLTcwMiw5ICs3MDIsOSBAQCBpbnQgY3hnYmVfZGV2X3J4X3F1ZXVlX3NldHVwKHN0 cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwNCg0KICAgICAgICByZXR1cm4gZXJyOw0KDQogfQ0K DQoNCg0KLXZvaWQgY3hnYmVfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcSkNCg0KK3ZvaWQg Y3hnYmVfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1 aW50MTZfdCBxaWQpDQoNCiB7DQoNCi0gICAgICAgc3RydWN0IHNnZV9ldGhfcnhxICpyeHEgPSAo c3RydWN0IHNnZV9ldGhfcnhxICopcTsNCg0KKyAgICAgICBzdHJ1Y3Qgc2dlX2V0aF9yeHEgKnJ4 cSA9IGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlc1txaWRdOw0KDQoNCg0KICAgICAgICBpZiAocnhx KSB7DQoNCiAgICAgICAgICAgICAgICBzdHJ1Y3QgcG9ydF9pbmZvICpwaSA9IChzdHJ1Y3QgcG9y dF9pbmZvICopDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jeGdiZS9jeGdiZV9wZnZmLmgg Yi9kcml2ZXJzL25ldC9jeGdiZS9jeGdiZV9wZnZmLmgNCg0KaW5kZXggODAxZDY5OTVkMS4uNGE0 OTY2NTkwNSAxMDA2NDQNCg0KLS0tIGEvZHJpdmVycy9uZXQvY3hnYmUvY3hnYmVfcGZ2Zi5oDQoN CisrKyBiL2RyaXZlcnMvbmV0L2N4Z2JlL2N4Z2JlX3BmdmYuaA0KDQpAQCAtMTYsOCArMTYsOCBA QA0KDQogICAgICAgICBWX0ZXX1BBUkFNU19QQVJBTV9ZKDApIHwgXA0KDQogICAgICAgICBWX0ZX X1BBUkFNU19QQVJBTV9aKDApKQ0KDQoNCg0KLXZvaWQgY3hnYmVfZGV2X3J4X3F1ZXVlX3JlbGVh c2Uodm9pZCAqcSk7DQoNCi12b2lkIGN4Z2JlX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnEp Ow0KDQordm9pZCBjeGdiZV9kZXZfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYg KmV0aF9kZXYsIHVpbnQxNl90IHFpZCk7DQoNCit2b2lkIGN4Z2JlX2Rldl90eF9xdWV1ZV9yZWxl YXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdWludDE2X3QgcWlkKTsNCg0KIGludCBj eGdiZV9kZXZfc3RvcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpOw0KDQogaW50IGN4Z2Jl X2Rldl9jbG9zZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpOw0KDQogaW50IGN4Z2JlX2Rl dl9pbmZvX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsDQoNCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9kcGFhL2RwYWFfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9kcGFhL2RwYWFfZXRo ZGV2LmMNCg0KaW5kZXggMzZkOGY5MjQ5ZC4uMmMxMjk1NmZmNiAxMDA2NDQNCg0KLS0tIGEvZHJp dmVycy9uZXQvZHBhYS9kcGFhX2V0aGRldi5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L2RwYWEvZHBh YV9ldGhkZXYuYw0KDQpAQCAtMTIzMywxMiArMTIzMyw2IEBAIGRwYWFfZXRoX2V2ZW50cV9kZXRh Y2goY29uc3Qgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCiAgICAgICAgcmV0dXJuIDA7DQoN CiB9DQoNCg0KDQotc3RhdGljDQoNCi12b2lkIGRwYWFfZXRoX3J4X3F1ZXVlX3JlbGVhc2Uodm9p ZCAqcnhxIF9fcnRlX3VudXNlZCkNCg0KLXsNCg0KLSAgICAgICBQTURfSU5JVF9GVU5DX1RSQUNF KCk7DQoNCi19DQoNCi0NCg0KIHN0YXRpYw0KDQogaW50IGRwYWFfZXRoX3R4X3F1ZXVlX3NldHVw KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZHgsDQoNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBuYl9kZXNjIF9fcnRlX3VudXNlZCwNCg0KQEAg LTEyNzIsMTEgKzEyNjYsNiBAQCBpbnQgZHBhYV9ldGhfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkeCwNCg0KICAgICAgICByZXR1cm4gMDsN Cg0KIH0NCg0KDQoNCi1zdGF0aWMgdm9pZCBkcGFhX2V0aF90eF9xdWV1ZV9yZWxlYXNlKHZvaWQg KnR4cSBfX3J0ZV91bnVzZWQpDQoNCi17DQoNCi0gICAgICAgUE1EX0lOSVRfRlVOQ19UUkFDRSgp Ow0KDQotfQ0KDQotDQoNCiBzdGF0aWMgdWludDMyX3QNCg0KIGRwYWFfZGV2X3J4X3F1ZXVlX2Nv dW50KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCByeF9xdWV1ZV9pZCkNCg0KIHsN Cg0KQEAgLTE1NzEsOCArMTU2MCw2IEBAIHN0YXRpYyBzdHJ1Y3QgZXRoX2Rldl9vcHMgZHBhYV9k ZXZvcHMgPSB7DQoNCg0KDQogICAgICAgIC5yeF9xdWV1ZV9zZXR1cCAgICAgICAgICAgPSBkcGFh X2V0aF9yeF9xdWV1ZV9zZXR1cCwNCg0KICAgICAgICAudHhfcXVldWVfc2V0dXAgICAgICAgICAg ID0gZHBhYV9ldGhfdHhfcXVldWVfc2V0dXAsDQoNCi0gICAgICAgLnJ4X3F1ZXVlX3JlbGVhc2Ug ICAgICAgICA9IGRwYWFfZXRoX3J4X3F1ZXVlX3JlbGVhc2UsDQoNCi0gICAgICAgLnR4X3F1ZXVl X3JlbGVhc2UgICAgICAgICA9IGRwYWFfZXRoX3R4X3F1ZXVlX3JlbGVhc2UsDQoNCiAgICAgICAg LnJ4X2J1cnN0X21vZGVfZ2V0ICAgICAgICA9IGRwYWFfZGV2X3J4X2J1cnN0X21vZGVfZ2V0LA0K DQogICAgICAgIC50eF9idXJzdF9tb2RlX2dldCAgICAgICAgPSBkcGFhX2Rldl90eF9idXJzdF9t b2RlX2dldCwNCg0KICAgICAgICAucnhxX2luZm9fZ2V0ICAgICAgICAgICAgID0gZHBhYV9yeHFf aW5mb19nZXQsDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kcGFhMi9kcGFhMl9ldGhkZXYu YyBiL2RyaXZlcnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRldi5jDQoNCmluZGV4IGMxMjE2OTU3OGUu LjViOTM4MWNmNDAgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRl di5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L2RwYWEyL2RwYWEyX2V0aGRldi5jDQoNCkBAIC05NzYs OSArOTc2LDkgQEAgZHBhYTJfZGV2X3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAq ZGV2LA0KDQogfQ0KDQoNCg0KIHN0YXRpYyB2b2lkDQoNCi1kcGFhMl9kZXZfcnhfcXVldWVfcmVs ZWFzZSh2b2lkICpxIF9fcnRlX3VudXNlZCkNCg0KK2RwYWEyX2Rldl9yeF9xdWV1ZV9yZWxlYXNl KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCByeF9xdWV1ZV9pZCkNCg0KIHsNCg0K LSAgICAgICBzdHJ1Y3QgZHBhYTJfcXVldWUgKmRwYWEyX3EgPSAoc3RydWN0IGRwYWEyX3F1ZXVl ICopcTsNCg0KKyAgICAgICBzdHJ1Y3QgZHBhYTJfcXVldWUgKmRwYWEyX3EgPSBkZXYtPmRhdGEt PnJ4X3F1ZXVlc1tyeF9xdWV1ZV9pZF07DQoNCiAgICAgICAgc3RydWN0IGRwYWEyX2Rldl9wcml2 ICpwcml2ID0gZHBhYTJfcS0+ZXRoX2RhdGEtPmRldl9wcml2YXRlOw0KDQogICAgICAgIHN0cnVj dCBmc2xfbWNfaW8gKmRwbmkgPQ0KDQogICAgICAgICAgICAgICAgKHN0cnVjdCBmc2xfbWNfaW8g Kilwcml2LT5ldGhfZGV2LT5wcm9jZXNzX3ByaXZhdGU7DQoNCkBAIC0xMDA0LDEyICsxMDA0LDYg QEAgZHBhYTJfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcSBfX3J0ZV91bnVzZWQpDQoNCiAg ICAgICAgfQ0KDQogfQ0KDQoNCg0KLXN0YXRpYyB2b2lkDQoNCi1kcGFhMl9kZXZfdHhfcXVldWVf cmVsZWFzZSh2b2lkICpxIF9fcnRlX3VudXNlZCkNCg0KLXsNCg0KLSAgICAgICBQTURfSU5JVF9G VU5DX1RSQUNFKCk7DQoNCi19DQoNCi0NCg0KIHN0YXRpYyB1aW50MzJfdA0KDQogZHBhYTJfZGV2 X3J4X3F1ZXVlX2NvdW50KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCByeF9xdWV1 ZV9pZCkNCg0KIHsNCg0KQEAgLTI0MjcsNyArMjQyMSw2IEBAIHN0YXRpYyBzdHJ1Y3QgZXRoX2Rl dl9vcHMgZHBhYTJfZXRoZGV2X29wcyA9IHsNCg0KICAgICAgICAucnhfcXVldWVfc2V0dXAgICAg PSBkcGFhMl9kZXZfcnhfcXVldWVfc2V0dXAsDQoNCiAgICAgICAgLnJ4X3F1ZXVlX3JlbGVhc2Ug ID0gZHBhYTJfZGV2X3J4X3F1ZXVlX3JlbGVhc2UsDQoNCiAgICAgICAgLnR4X3F1ZXVlX3NldHVw ICAgID0gZHBhYTJfZGV2X3R4X3F1ZXVlX3NldHVwLA0KDQotICAgICAgIC50eF9xdWV1ZV9yZWxl YXNlICA9IGRwYWEyX2Rldl90eF9xdWV1ZV9yZWxlYXNlLA0KDQogICAgICAgIC5yeF9idXJzdF9t b2RlX2dldCA9IGRwYWEyX2Rldl9yeF9idXJzdF9tb2RlX2dldCwNCg0KICAgICAgICAudHhfYnVy c3RfbW9kZV9nZXQgPSBkcGFhMl9kZXZfdHhfYnVyc3RfbW9kZV9nZXQsDQoNCiAgICAgICAgLmZs b3dfY3RybF9nZXQgICAgICAgID0gZHBhYTJfZmxvd19jdHJsX2dldCwNCg0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aGRldi5oIGIvZHJpdmVycy9uZXQvZTEwMDAvZTEw MDBfZXRoZGV2LmgNCg0KaW5kZXggM2I0ZDljM2VlNi4uOGUxMGUyNzc3ZSAxMDA2NDQNCg0KLS0t IGEvZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRoZGV2LmgNCg0KKysrIGIvZHJpdmVycy9uZXQv ZTEwMDAvZTEwMDBfZXRoZGV2LmgNCg0KQEAgLTM4Niw4ICszODYsOCBAQCBleHRlcm4gY29uc3Qg c3RydWN0IHJ0ZV9mbG93X29wcyBpZ2JfZmxvd19vcHM7DQoNCiAvKg0KDQogICogUlgvVFggSUdC IGZ1bmN0aW9uIHByb3RvdHlwZXMNCg0KICAqLw0KDQotdm9pZCBldGhfaWdiX3R4X3F1ZXVlX3Jl bGVhc2Uodm9pZCAqdHhxKTsNCg0KLXZvaWQgZXRoX2lnYl9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQg KnJ4cSk7DQoNCit2b2lkIGV0aF9pZ2JfdHhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldiwgdWludDE2X3QgcWlkKTsNCg0KK3ZvaWQgZXRoX2lnYl9yeF9xdWV1ZV9yZWxlYXNl KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpOw0KDQogdm9pZCBpZ2JfZGV2 X2NsZWFyX3F1ZXVlcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7DQoNCiB2b2lkIGlnYl9kZXZf ZnJlZV9xdWV1ZXMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KDQoNCg0KQEAgLTQ2Miw4ICs0 NjIsOCBAQCB1aW50MzJfdCBlbV9nZXRfbWF4X3BrdGxlbihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl dik7DQoNCiAvKg0KDQogICogUlgvVFggRU0gZnVuY3Rpb24gcHJvdG90eXBlcw0KDQogICovDQoN Ci12b2lkIGV0aF9lbV90eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnR4cSk7DQoNCi12b2lkIGV0aF9l bV9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnJ4cSk7DQoNCit2b2lkIGV0aF9lbV90eF9xdWV1ZV9y ZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpOw0KDQordm9pZCBl dGhfZW1fcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3Qg cWlkKTsNCg0KDQoNCiB2b2lkIGVtX2Rldl9jbGVhcl9xdWV1ZXMoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYpOw0KDQogdm9pZCBlbV9kZXZfZnJlZV9xdWV1ZXMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYpOw0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZTEwMDAvZW1fcnh0eC5jIGIvZHJpdmVy cy9uZXQvZTEwMDAvZW1fcnh0eC5jDQoNCmluZGV4IGRmZDhmMmZkMDAuLjAwYThhZjZkMzkgMTAw NjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2UxMDAwL2VtX3J4dHguYw0KDQorKysgYi9kcml2ZXJz L25ldC9lMTAwMC9lbV9yeHR4LmMNCg0KQEAgLTExMjEsOSArMTEyMSw5IEBAIGVtX3R4X3F1ZXVl X3JlbGVhc2Uoc3RydWN0IGVtX3R4X3F1ZXVlICp0eHEpDQoNCiB9DQoNCg0KDQogdm9pZA0KDQot ZXRoX2VtX3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhxKQ0KDQorZXRoX2VtX3R4X3F1ZXVlX3Jl bGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KLSAg ICAgICBlbV90eF9xdWV1ZV9yZWxlYXNlKHR4cSk7DQoNCisgICAgICAgZW1fdHhfcXVldWVfcmVs ZWFzZShkZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdKTsNCg0KIH0NCg0KDQoNCiAvKiAoUmUpc2V0 IGR5bmFtaWMgZW1fdHhfcXVldWUgZmllbGRzIHRvIGRlZmF1bHRzICovDQoNCkBAIC0xMzQzLDkg KzEzNDMsOSBAQCBlbV9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBlbV9yeF9xdWV1ZSAqcnhxKQ0K DQogfQ0KDQoNCg0KIHZvaWQNCg0KLWV0aF9lbV9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnJ4cSkN Cg0KK2V0aF9lbV9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50 MTZfdCBxaWQpDQoNCiB7DQoNCi0gICAgICAgZW1fcnhfcXVldWVfcmVsZWFzZShyeHEpOw0KDQor ICAgICAgIGVtX3J4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcWlkXSk7DQoN CiB9DQoNCg0KDQogLyogUmVzZXQgZHluYW1pYyBlbV9yeF9xdWV1ZSBmaWVsZHMgYmFjayB0byBk ZWZhdWx0cyAqLw0KDQpAQCAtMTYwOSwxNCArMTYwOSwxNCBAQCBlbV9kZXZfZnJlZV9xdWV1ZXMo c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQoNCiAgICAgICAgdWludDE2X3QgaTsNCg0KDQoNCiAg ICAgICAgZm9yIChpID0gMDsgaSA8IGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzOyBpKyspIHsNCg0K LSAgICAgICAgICAgICAgIGV0aF9lbV9yeF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+cnhfcXVl dWVzW2ldKTsNCg0KKyAgICAgICAgICAgICAgIGV0aF9lbV9yeF9xdWV1ZV9yZWxlYXNlKGRldiwg aSk7DQoNCiAgICAgICAgICAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSA9IE5VTEw7DQoN CiAgICAgICAgICAgICAgICBydGVfZXRoX2RtYV96b25lX2ZyZWUoZGV2LCAicnhfcmluZyIsIGkp Ow0KDQogICAgICAgIH0NCg0KICAgICAgICBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcyA9IDA7DQoN Cg0KDQogICAgICAgIGZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlczsgaSsr KSB7DQoNCi0gICAgICAgICAgICAgICBldGhfZW1fdHhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEt PnR4X3F1ZXVlc1tpXSk7DQoNCisgICAgICAgICAgICAgICBldGhfZW1fdHhfcXVldWVfcmVsZWFz ZShkZXYsIGkpOw0KDQogICAgICAgICAgICAgICAgZGV2LT5kYXRhLT50eF9xdWV1ZXNbaV0gPSBO VUxMOw0KDQogICAgICAgICAgICAgICAgcnRlX2V0aF9kbWFfem9uZV9mcmVlKGRldiwgInR4X3Jp bmciLCBpKTsNCg0KICAgICAgICB9DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9lMTAwMC9p Z2Jfcnh0eC5jIGIvZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYw0KDQppbmRleCAyNzhkNWQy NzEyLi5kOTdjYTFhMDExIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0 eC5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMNCg0KQEAgLTEyODEsOSAr MTI4MSw5IEBAIGlnYl90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBpZ2JfdHhfcXVldWUgKnR4cSkN Cg0KIH0NCg0KDQoNCiB2b2lkDQoNCi1ldGhfaWdiX3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhx KQ0KDQorZXRoX2lnYl90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1 aW50MTZfdCBxaWQpDQoNCiB7DQoNCi0gICAgICAgaWdiX3R4X3F1ZXVlX3JlbGVhc2UodHhxKTsN Cg0KKyAgICAgICBpZ2JfdHhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRd KTsNCg0KIH0NCg0KDQoNCiBzdGF0aWMgaW50DQoNCkBAIC0xNjA2LDkgKzE2MDYsOSBAQCBpZ2Jf cnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgaWdiX3J4X3F1ZXVlICpyeHEpDQoNCiB9DQoNCg0KDQog dm9pZA0KDQotZXRoX2lnYl9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnJ4cSkNCg0KK2V0aF9pZ2Jf cnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKQ0K DQogew0KDQotICAgICAgIGlnYl9yeF9xdWV1ZV9yZWxlYXNlKHJ4cSk7DQoNCisgICAgICAgaWdi X3J4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcWlkXSk7DQoNCiB9DQoNCg0K DQogc3RhdGljIHZvaWQNCg0KQEAgLTE4ODMsMTQgKzE4ODMsMTQgQEAgaWdiX2Rldl9mcmVlX3F1 ZXVlcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCg0KICAgICAgICB1aW50MTZfdCBpOw0KDQoN Cg0KICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7IGkrKykg ew0KDQotICAgICAgICAgICAgICAgZXRoX2lnYl9yeF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+ cnhfcXVldWVzW2ldKTsNCg0KKyAgICAgICAgICAgICAgIGV0aF9pZ2JfcnhfcXVldWVfcmVsZWFz ZShkZXYsIGkpOw0KDQogICAgICAgICAgICAgICAgZGV2LT5kYXRhLT5yeF9xdWV1ZXNbaV0gPSBO VUxMOw0KDQogICAgICAgICAgICAgICAgcnRlX2V0aF9kbWFfem9uZV9mcmVlKGRldiwgInJ4X3Jp bmciLCBpKTsNCg0KICAgICAgICB9DQoNCiAgICAgICAgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXMg PSAwOw0KDQoNCg0KICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl90eF9xdWV1 ZXM7IGkrKykgew0KDQotICAgICAgICAgICAgICAgZXRoX2lnYl90eF9xdWV1ZV9yZWxlYXNlKGRl di0+ZGF0YS0+dHhfcXVldWVzW2ldKTsNCg0KKyAgICAgICAgICAgICAgIGV0aF9pZ2JfdHhfcXVl dWVfcmVsZWFzZShkZXYsIGkpOw0KDQogICAgICAgICAgICAgICAgZGV2LT5kYXRhLT50eF9xdWV1 ZXNbaV0gPSBOVUxMOw0KDQogICAgICAgICAgICAgICAgcnRlX2V0aF9kbWFfem9uZV9mcmVlKGRl diwgInR4X3JpbmciLCBpKTsNCg0KICAgICAgICB9DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9lbmEvZW5hX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvZW5hL2VuYV9ldGhkZXYuYw0KDQppbmRl eCA0Y2ViZjYwYTY4Li5hODJkNGI2Mjg3IDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9lbmEv ZW5hX2V0aGRldi5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L2VuYS9lbmFfZXRoZGV2LmMNCg0KQEAg LTE5Miw4ICsxOTIsOCBAQCBzdGF0aWMgaW50IGVuYV9kZXZfcmVzZXQoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYpOw0KDQogc3RhdGljIGludCBlbmFfc3RhdHNfZ2V0KHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2LCBzdHJ1Y3QgcnRlX2V0aF9zdGF0cyAqc3RhdHMpOw0KDQogc3RhdGljIHZvaWQgZW5h X3J4X3F1ZXVlX3JlbGVhc2VfYWxsKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KTsNCg0KIHN0YXRp YyB2b2lkIGVuYV90eF9xdWV1ZV9yZWxlYXNlX2FsbChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7 DQoNCi1zdGF0aWMgdm9pZCBlbmFfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpxdWV1ZSk7DQoNCi1z dGF0aWMgdm9pZCBlbmFfdHhfcXVldWVfcmVsZWFzZSh2b2lkICpxdWV1ZSk7DQoNCitzdGF0aWMg dm9pZCBlbmFfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2 X3QgcWlkKTsNCg0KK3N0YXRpYyB2b2lkIGVuYV90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpOw0KDQogc3RhdGljIHZvaWQgZW5hX3J4X3F1ZXVl X3JlbGVhc2VfYnVmcyhzdHJ1Y3QgZW5hX3JpbmcgKnJpbmcpOw0KDQogc3RhdGljIHZvaWQgZW5h X3R4X3F1ZXVlX3JlbGVhc2VfYnVmcyhzdHJ1Y3QgZW5hX3JpbmcgKnJpbmcpOw0KDQogc3RhdGlj IGludCBlbmFfbGlua191cGRhdGUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCkBAIC01MjUs MjcgKzUyNSwyNSBAQCBlbmFfZGV2X3Jlc2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KDQoN Cg0KIHN0YXRpYyB2b2lkIGVuYV9yeF9xdWV1ZV9yZWxlYXNlX2FsbChzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldikNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3QgZW5hX3JpbmcgKipxdWV1ZXMgPSAoc3Ry dWN0IGVuYV9yaW5nICoqKWRldi0+ZGF0YS0+cnhfcXVldWVzOw0KDQogICAgICAgIGludCBuYl9x dWV1ZXMgPSBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlczsNCg0KICAgICAgICBpbnQgaTsNCg0KDQoN CiAgICAgICAgZm9yIChpID0gMDsgaSA8IG5iX3F1ZXVlczsgaSsrKQ0KDQotICAgICAgICAgICAg ICAgZW5hX3J4X3F1ZXVlX3JlbGVhc2UocXVldWVzW2ldKTsNCg0KKyAgICAgICAgICAgICAgIGVu YV9yeF9xdWV1ZV9yZWxlYXNlKGRldiwgaSk7DQoNCiB9DQoNCg0KDQogc3RhdGljIHZvaWQgZW5h X3R4X3F1ZXVlX3JlbGVhc2VfYWxsKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KDQogew0KDQot ICAgICAgIHN0cnVjdCBlbmFfcmluZyAqKnF1ZXVlcyA9IChzdHJ1Y3QgZW5hX3JpbmcgKiopZGV2 LT5kYXRhLT50eF9xdWV1ZXM7DQoNCiAgICAgICAgaW50IG5iX3F1ZXVlcyA9IGRldi0+ZGF0YS0+ bmJfdHhfcXVldWVzOw0KDQogICAgICAgIGludCBpOw0KDQoNCg0KICAgICAgICBmb3IgKGkgPSAw OyBpIDwgbmJfcXVldWVzOyBpKyspDQoNCi0gICAgICAgICAgICAgICBlbmFfdHhfcXVldWVfcmVs ZWFzZShxdWV1ZXNbaV0pOw0KDQorICAgICAgICAgICAgICAgZW5hX3R4X3F1ZXVlX3JlbGVhc2Uo ZGV2LCBpKTsNCg0KIH0NCg0KDQoNCi1zdGF0aWMgdm9pZCBlbmFfcnhfcXVldWVfcmVsZWFzZSh2 b2lkICpxdWV1ZSkNCg0KK3N0YXRpYyB2b2lkIGVuYV9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoNCiB7DQoNCi0gICAgICAgc3RydWN0IGVu YV9yaW5nICpyaW5nID0gKHN0cnVjdCBlbmFfcmluZyAqKXF1ZXVlOw0KDQorICAgICAgIHN0cnVj dCBlbmFfcmluZyAqcmluZyA9IGRldi0+ZGF0YS0+cnhfcXVldWVzW3FpZF07DQoNCg0KDQogICAg ICAgIC8qIEZyZWUgcmluZyByZXNvdXJjZXMgKi8NCg0KICAgICAgICBpZiAocmluZy0+cnhfYnVm ZmVyX2luZm8pDQoNCkBAIC01NjYsOSArNTY0LDkgQEAgc3RhdGljIHZvaWQgZW5hX3J4X3F1ZXVl X3JlbGVhc2Uodm9pZCAqcXVldWUpDQoNCiAgICAgICAgICAgICAgICByaW5nLT5wb3J0X2lkLCBy aW5nLT5pZCk7DQoNCiB9DQoNCg0KDQotc3RhdGljIHZvaWQgZW5hX3R4X3F1ZXVlX3JlbGVhc2Uo dm9pZCAqcXVldWUpDQoNCitzdGF0aWMgdm9pZCBlbmFfdHhfcXVldWVfcmVsZWFzZShzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKQ0KDQogew0KDQotICAgICAgIHN0cnVjdCBl bmFfcmluZyAqcmluZyA9IChzdHJ1Y3QgZW5hX3JpbmcgKilxdWV1ZTsNCg0KKyAgICAgICBzdHJ1 Y3QgZW5hX3JpbmcgKnJpbmcgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdOw0KDQoNCg0KICAg ICAgICAvKiBGcmVlIHJpbmcgcmVzb3VyY2VzICovDQoNCiAgICAgICAgaWYgKHJpbmctPnB1c2hf YnVmX2ludGVybWVkaWF0ZV9idWYpDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9lbmV0Yy9l bmV0Y19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2VuZXRjL2VuZXRjX2V0aGRldi5jDQoNCmluZGV4 IGI0OTZjZDQ3MDAuLjI0NmFmZjQ2NzIgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2VuZXRj L2VuZXRjX2V0aGRldi5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L2VuZXRjL2VuZXRjX2V0aGRldi5j DQoNCkBAIC0zMjUsOCArMzI1LDEwIEBAIGVuZXRjX3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2LA0KDQogfQ0KDQoNCg0KIHN0YXRpYyB2b2lkDQoNCi1lbmV0Y190eF9xdWV1 ZV9yZWxlYXNlKHZvaWQgKnR4cSkNCg0KK2VuZXRjX3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KKyAgICAgICB2b2lkICp0eHEg PSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdOw0KDQorDQoNCiAgICAgICAgaWYgKHR4cSA9PSBO VUxMKQ0KDQogICAgICAgICAgICAgICAgcmV0dXJuOw0KDQoNCg0KQEAgLTQ3Myw4ICs0NzUsMTAg QEAgZW5ldGNfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCiB9DQoN Cg0KDQogc3RhdGljIHZvaWQNCg0KLWVuZXRjX3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcnhxKQ0K DQorZW5ldGNfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2 X3QgcWlkKQ0KDQogew0KDQorICAgICAgIHZvaWQgKnJ4cSA9IGRldi0+ZGF0YS0+cnhfcXVldWVz W3FpZF07DQoNCisNCg0KICAgICAgICBpZiAocnhxID09IE5VTEwpDQoNCiAgICAgICAgICAgICAg ICByZXR1cm47DQoNCg0KDQpAQCAtNTYxLDEzICs1NjUsMTMgQEAgZW5ldGNfZGV2X2Nsb3NlKHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KDQogICAgICAgIHJldCA9IGVuZXRjX2Rldl9zdG9wKGRl dik7DQoNCg0KDQogICAgICAgIGZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVl czsgaSsrKSB7DQoNCi0gICAgICAgICAgICAgICBlbmV0Y19yeF9xdWV1ZV9yZWxlYXNlKGRldi0+ ZGF0YS0+cnhfcXVldWVzW2ldKTsNCg0KKyAgICAgICAgICAgICAgIGVuZXRjX3J4X3F1ZXVlX3Jl bGVhc2UoZGV2LCBpKTsNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+cnhfcXVldWVzW2ld ID0gTlVMTDsNCg0KICAgICAgICB9DQoNCiAgICAgICAgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXMg PSAwOw0KDQoNCg0KICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl90eF9xdWV1 ZXM7IGkrKykgew0KDQotICAgICAgICAgICAgICAgZW5ldGNfdHhfcXVldWVfcmVsZWFzZShkZXYt PmRhdGEtPnR4X3F1ZXVlc1tpXSk7DQoNCisgICAgICAgICAgICAgICBlbmV0Y190eF9xdWV1ZV9y ZWxlYXNlKGRldiwgaSk7DQoNCiAgICAgICAgICAgICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1tp XSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQogICAgICAgIGRldi0+ZGF0YS0+bmJfdHhfcXVldWVz ID0gMDsNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2VuaWMvZW5pY19ldGhkZXYuYyBiL2Ry aXZlcnMvbmV0L2VuaWMvZW5pY19ldGhkZXYuYw0KDQppbmRleCA4ZDU3OTc1MjNiLi5iMDNlNTZi YzI1IDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9lbmljL2VuaWNfZXRoZGV2LmMNCg0KKysr IGIvZHJpdmVycy9uZXQvZW5pYy9lbmljX2V0aGRldi5jDQoNCkBAIC04OCw4ICs4OCwxMCBAQCBl bmljcG1kX2Rldl9mbG93X29wc19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCiAgICAg ICAgcmV0dXJuIDA7DQoNCiB9DQoNCg0KDQotc3RhdGljIHZvaWQgZW5pY3BtZF9kZXZfdHhfcXVl dWVfcmVsZWFzZSh2b2lkICp0eHEpDQoNCitzdGF0aWMgdm9pZCBlbmljcG1kX2Rldl90eF9xdWV1 ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoNCiB7DQoN CisgICAgICAgdm9pZCAqdHhxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXNbcWlkXTsNCg0KKw0KDQog ICAgICAgIEVOSUNQTURfRlVOQ19UUkFDRSgpOw0KDQoNCg0KICAgICAgICBpZiAocnRlX2VhbF9w cm9jZXNzX3R5cGUoKSAhPSBSVEVfUFJPQ19QUklNQVJZKQ0KDQpAQCAtMjIzLDggKzIyNSwxMCBA QCBzdGF0aWMgaW50IGVuaWNwbWRfZGV2X3J4X3F1ZXVlX3N0b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpldGhfZGV2LA0KDQogICAgICAgIHJldHVybiByZXQ7DQoNCiB9DQoNCg0KDQotc3RhdGljIHZv aWQgZW5pY3BtZF9kZXZfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpyeHEpDQoNCitzdGF0aWMgdm9p ZCBlbmljcG1kX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1 aW50MTZfdCBxaWQpDQoNCiB7DQoNCisgICAgICAgdm9pZCAqcnhxID0gZGV2LT5kYXRhLT5yeF9x dWV1ZXNbcWlkXTsNCg0KKw0KDQogICAgICAgIEVOSUNQTURfRlVOQ19UUkFDRSgpOw0KDQoNCg0K ICAgICAgICBpZiAocnRlX2VhbF9wcm9jZXNzX3R5cGUoKSAhPSBSVEVfUFJPQ19QUklNQVJZKQ0K DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZW5pYy9lbmljX3ZmX3JlcHJlc2VudG9yLmMgYi9k cml2ZXJzL25ldC9lbmljL2VuaWNfdmZfcmVwcmVzZW50b3IuYw0KDQppbmRleCA3OWRkNmU1NjQw Li5jZmQwMmMwM2NjIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9lbmljL2VuaWNfdmZfcmVw cmVzZW50b3IuYw0KDQorKysgYi9kcml2ZXJzL25ldC9lbmljL2VuaWNfdmZfcmVwcmVzZW50b3Iu Yw0KDQpAQCAtNzAsOCArNzAsMTAgQEAgc3RhdGljIGludCBlbmljX3ZmX2Rldl90eF9xdWV1ZV9z ZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsDQoNCiAgICAgICAgcmV0dXJuIDA7DQoN CiB9DQoNCg0KDQotc3RhdGljIHZvaWQgZW5pY192Zl9kZXZfdHhfcXVldWVfcmVsZWFzZSh2b2lk ICp0eHEpDQoNCitzdGF0aWMgdm9pZCBlbmljX3ZmX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoNCiB7DQoNCisgICAgICAgdm9pZCAq dHhxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXNbcWlkXTsNCg0KKw0KDQogICAgICAgIEVOSUNQTURf RlVOQ19UUkFDRSgpOw0KDQogICAgICAgIGlmIChydGVfZWFsX3Byb2Nlc3NfdHlwZSgpICE9IFJU RV9QUk9DX1BSSU1BUlkpDQoNCiAgICAgICAgICAgICAgICByZXR1cm47DQoNCkBAIC0xMDgsOCAr MTEwLDEwIEBAIHN0YXRpYyBpbnQgZW5pY192Zl9kZXZfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpldGhfZGV2LA0KDQogICAgICAgIHJldHVybiAwOw0KDQogfQ0KDQoNCg0KLXN0 YXRpYyB2b2lkIGVuaWNfdmZfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcnhxKQ0KDQorc3Rh dGljIHZvaWQgZW5pY192Zl9kZXZfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiwgdWludDE2X3QgcWlkKQ0KDQogew0KDQorICAgICAgIHZvaWQgKnJ4cSA9IGRldi0+ZGF0 YS0+cnhfcXVldWVzW3FpZF07DQoNCisNCg0KICAgICAgICBFTklDUE1EX0ZVTkNfVFJBQ0UoKTsN Cg0KICAgICAgICBpZiAocnRlX2VhbF9wcm9jZXNzX3R5cGUoKSAhPSBSVEVfUFJPQ19QUklNQVJZ KQ0KDQogICAgICAgICAgICAgICAgcmV0dXJuOw0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZmFpbHNhZmUvZmFpbHNhZmVfb3BzLmMgYi9kcml2ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZV9v cHMuYw0KDQppbmRleCA1ZmYzM2UwM2UwLi5kMDAzMGFmMDYxIDEwMDY0NA0KDQotLS0gYS9kcml2 ZXJzL25ldC9mYWlsc2FmZS9mYWlsc2FmZV9vcHMuYw0KDQorKysgYi9kcml2ZXJzL25ldC9mYWls c2FmZS9mYWlsc2FmZV9vcHMuYw0KDQpAQCAtMzU4LDI2ICszNTgsMjEgQEAgZnNfdHhfcXVldWVf c3RhcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHR4X3F1ZXVlX2lkKQ0KDQog fQ0KDQoNCg0KIHN0YXRpYyB2b2lkDQoNCi1mc19yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnF1ZXVl KQ0KDQorZnNfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2 X3QgcWlkKQ0KDQogew0KDQotICAgICAgIHN0cnVjdCBydGVfZXRoX2RldiAqZGV2Ow0KDQogICAg ICAgIHN0cnVjdCBzdWJfZGV2aWNlICpzZGV2Ow0KDQogICAgICAgIHVpbnQ4X3QgaTsNCg0KLSAg ICAgICBzdHJ1Y3QgcnhxICpyeHE7DQoNCisgICAgICAgc3RydWN0IHJ4cSAqcnhxID0gZGV2LT5k YXRhLT5yeF9xdWV1ZXNbcWlkXTsNCg0KDQoNCi0gICAgICAgaWYgKHF1ZXVlID09IE5VTEwpDQoN CisgICAgICAgaWYgKHJ4cSA9PSBOVUxMKQ0KDQogICAgICAgICAgICAgICAgcmV0dXJuOw0KDQot ICAgICAgIHJ4cSA9IHF1ZXVlOw0KDQotICAgICAgIGRldiA9ICZydGVfZXRoX2RldmljZXNbcnhx LT5wcml2LT5kYXRhLT5wb3J0X2lkXTsNCg0KICAgICAgICBmc19sb2NrKGRldiwgMCk7DQoNCiAg ICAgICAgaWYgKHJ4cS0+ZXZlbnRfZmQgPj0gMCkNCg0KICAgICAgICAgICAgICAgIGNsb3NlKHJ4 cS0+ZXZlbnRfZmQpOw0KDQogICAgICAgIEZPUkVBQ0hfU1VCREVWX1NUQVRFKHNkZXYsIGksIGRl diwgREVWX0FDVElWRSkgew0KDQogICAgICAgICAgICAgICAgaWYgKEVUSChzZGV2KS0+ZGF0YS0+ cnhfcXVldWVzICE9IE5VTEwgJiYNCg0KLSAgICAgICAgICAgICAgICAgICBFVEgoc2RldiktPmRh dGEtPnJ4X3F1ZXVlc1tyeHEtPnFpZF0gIT0gTlVMTCkgew0KDQotICAgICAgICAgICAgICAgICAg ICAgICBTVUJPUFMoc2RldiwgcnhfcXVldWVfcmVsZWFzZSkNCg0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoRVRIKHNkZXYpLT5kYXRhLT5yeF9xdWV1ZXNbcnhxLT5xaWRdKTsNCg0K LSAgICAgICAgICAgICAgIH0NCg0KKyAgICAgICAgICAgICAgICAgICBFVEgoc2RldiktPmRhdGEt PnJ4X3F1ZXVlc1tyeHEtPnFpZF0gIT0gTlVMTCkNCg0KKyAgICAgICAgICAgICAgICAgICAgICAg U1VCT1BTKHNkZXYsIHJ4X3F1ZXVlX3JlbGVhc2UpKEVUSChzZGV2KSwgcnhxLT5xaWQpOw0KDQog ICAgICAgIH0NCg0KICAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tyeHEtPnFpZF0gPSBOVUxM Ow0KDQogICAgICAgIHJ0ZV9mcmVlKHJ4cSk7DQoNCkBAIC00MjAsNyArNDE1LDcgQEAgZnNfcnhf cXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCiAgICAgICAgfQ0KDQogICAg ICAgIHJ4cSA9IGRldi0+ZGF0YS0+cnhfcXVldWVzW3J4X3F1ZXVlX2lkXTsNCg0KICAgICAgICBp ZiAocnhxICE9IE5VTEwpIHsNCg0KLSAgICAgICAgICAgICAgIGZzX3J4X3F1ZXVlX3JlbGVhc2Uo cnhxKTsNCg0KKyAgICAgICAgICAgICAgIGZzX3J4X3F1ZXVlX3JlbGVhc2UoZGV2LCByeF9xdWV1 ZV9pZCk7DQoNCiAgICAgICAgICAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tyeF9xdWV1ZV9p ZF0gPSBOVUxMOw0KDQogICAgICAgIH0NCg0KICAgICAgICByeHEgPSBydGVfem1hbGxvYyhOVUxM LA0KDQpAQCAtNDYwLDcgKzQ1NSw3IEBAIGZzX3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRo X2RldiAqZGV2LA0KDQogICAgICAgIGZzX3VubG9jayhkZXYsIDApOw0KDQogICAgICAgIHJldHVy biAwOw0KDQogZnJlZV9yeHE6DQoNCi0gICAgICAgZnNfcnhfcXVldWVfcmVsZWFzZShyeHEpOw0K DQorICAgICAgIGZzX3J4X3F1ZXVlX3JlbGVhc2UoZGV2LCByeF9xdWV1ZV9pZCk7DQoNCiAgICAg ICAgZnNfdW5sb2NrKGRldiwgMCk7DQoNCiAgICAgICAgcmV0dXJuIHJldDsNCg0KIH0NCg0KQEAg LTU0MiwyNCArNTM3LDE5IEBAIGZzX3J4X2ludHJfZGlzYWJsZShzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiwgdWludDE2X3QgaWR4KQ0KDQogfQ0KDQoNCg0KIHN0YXRpYyB2b2lkDQoNCi1mc190eF9x dWV1ZV9yZWxlYXNlKHZvaWQgKnF1ZXVlKQ0KDQorZnNfdHhfcXVldWVfcmVsZWFzZShzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKQ0KDQogew0KDQotICAgICAgIHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2Ow0KDQogICAgICAgIHN0cnVjdCBzdWJfZGV2aWNlICpzZGV2Ow0KDQog ICAgICAgIHVpbnQ4X3QgaTsNCg0KLSAgICAgICBzdHJ1Y3QgdHhxICp0eHE7DQoNCisgICAgICAg c3RydWN0IHR4cSAqdHhxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXNbcWlkXTsNCg0KDQoNCi0gICAg ICAgaWYgKHF1ZXVlID09IE5VTEwpDQoNCisgICAgICAgaWYgKHR4cSA9PSBOVUxMKQ0KDQogICAg ICAgICAgICAgICAgcmV0dXJuOw0KDQotICAgICAgIHR4cSA9IHF1ZXVlOw0KDQotICAgICAgIGRl diA9ICZydGVfZXRoX2RldmljZXNbdHhxLT5wcml2LT5kYXRhLT5wb3J0X2lkXTsNCg0KICAgICAg ICBmc19sb2NrKGRldiwgMCk7DQoNCiAgICAgICAgRk9SRUFDSF9TVUJERVZfU1RBVEUoc2Rldiwg aSwgZGV2LCBERVZfQUNUSVZFKSB7DQoNCiAgICAgICAgICAgICAgICBpZiAoRVRIKHNkZXYpLT5k YXRhLT50eF9xdWV1ZXMgIT0gTlVMTCAmJg0KDQotICAgICAgICAgICAgICAgICAgIEVUSChzZGV2 KS0+ZGF0YS0+dHhfcXVldWVzW3R4cS0+cWlkXSAhPSBOVUxMKSB7DQoNCi0gICAgICAgICAgICAg ICAgICAgICAgIFNVQk9QUyhzZGV2LCB0eF9xdWV1ZV9yZWxlYXNlKQ0KDQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChFVEgoc2RldiktPmRhdGEtPnR4X3F1ZXVlc1t0eHEtPnFpZF0p Ow0KDQotICAgICAgICAgICAgICAgfQ0KDQorICAgICAgICAgICAgICAgICAgIEVUSChzZGV2KS0+ ZGF0YS0+dHhfcXVldWVzW3R4cS0+cWlkXSAhPSBOVUxMKQ0KDQorICAgICAgICAgICAgICAgICAg ICAgICBTVUJPUFMoc2RldiwgdHhfcXVldWVfcmVsZWFzZSkoRVRIKHNkZXYpLCB0eHEtPnFpZCk7 DQoNCiAgICAgICAgfQ0KDQogICAgICAgIGRldi0+ZGF0YS0+dHhfcXVldWVzW3R4cS0+cWlkXSA9 IE5VTEw7DQoNCiAgICAgICAgcnRlX2ZyZWUodHhxKTsNCg0KQEAgLTU5MSw3ICs1ODEsNyBAQCBm c190eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCg0KICAgICAgICB9DQoN CiAgICAgICAgdHhxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXNbdHhfcXVldWVfaWRdOw0KDQogICAg ICAgIGlmICh0eHEgIT0gTlVMTCkgew0KDQotICAgICAgICAgICAgICAgZnNfdHhfcXVldWVfcmVs ZWFzZSh0eHEpOw0KDQorICAgICAgICAgICAgICAgZnNfdHhfcXVldWVfcmVsZWFzZShkZXYsIHR4 X3F1ZXVlX2lkKTsNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+dHhfcXVldWVzW3R4X3F1 ZXVlX2lkXSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQogICAgICAgIHR4cSA9IHJ0ZV96bWFsbG9j KCJldGhkZXYgVFggcXVldWUiLA0KDQpAQCAtNjIzLDcgKzYxMyw3IEBAIGZzX3R4X3F1ZXVlX3Nl dHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KDQogICAgICAgIGZzX3VubG9jayhkZXYsIDAp Ow0KDQogICAgICAgIHJldHVybiAwOw0KDQogZnJlZV90eHE6DQoNCi0gICAgICAgZnNfdHhfcXVl dWVfcmVsZWFzZSh0eHEpOw0KDQorICAgICAgIGZzX3R4X3F1ZXVlX3JlbGVhc2UoZGV2LCB0eF9x dWV1ZV9pZCk7DQoNCiAgICAgICAgZnNfdW5sb2NrKGRldiwgMCk7DQoNCiAgICAgICAgcmV0dXJu IHJldDsNCg0KIH0NCg0KQEAgLTYzNCwxMiArNjI0LDEyIEBAIGZzX2Rldl9mcmVlX3F1ZXVlcyhz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCg0KICAgICAgICB1aW50MTZfdCBpOw0KDQoNCg0KICAg ICAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7IGkrKykgew0KDQot ICAgICAgICAgICAgICAgZnNfcnhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tp XSk7DQoNCisgICAgICAgICAgICAgICBmc19yeF9xdWV1ZV9yZWxlYXNlKGRldiwgaSk7DQoNCiAg ICAgICAgICAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCiAgICAgICAg fQ0KDQogICAgICAgIGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzID0gMDsNCg0KICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXM7IGkrKykgew0KDQotICAgICAgICAg ICAgICAgZnNfdHhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEtPnR4X3F1ZXVlc1tpXSk7DQoNCisg ICAgICAgICAgICAgICBmc190eF9xdWV1ZV9yZWxlYXNlKGRldiwgaSk7DQoNCiAgICAgICAgICAg ICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQogICAg ICAgIGRldi0+ZGF0YS0+bmJfdHhfcXVldWVzID0gMDsNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2ZtMTBrL2ZtMTBrX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvZm0xMGsvZm0xMGtfZXRoZGV2 LmMNCg0KaW5kZXggMzIzNjI5MGU0MC4uNzA3NWQ2OTAyMiAxMDA2NDQNCg0KLS0tIGEvZHJpdmVy cy9uZXQvZm0xMGsvZm0xMGtfZXRoZGV2LmMNCg0KKysrIGIvZHJpdmVycy9uZXQvZm0xMGsvZm0x MGtfZXRoZGV2LmMNCg0KQEAgLTUxLDggKzUxLDggQEAgc3RhdGljIGludA0KDQogZm0xMGtfdmxh bl9maWx0ZXJfc2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCB2bGFuX2lkLCBp bnQgb24pOw0KDQogc3RhdGljIHZvaWQgZm0xMGtfTUFDX2ZpbHRlcl9zZXQoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsDQoNCiAgICAgICAgY29uc3QgdTggKm1hYywgYm9vbCBhZGQsIHVpbnQzMl90 IHBvb2wpOw0KDQotc3RhdGljIHZvaWQgZm0xMGtfdHhfcXVldWVfcmVsZWFzZSh2b2lkICpxdWV1 ZSk7DQoNCi1zdGF0aWMgdm9pZCBmbTEwa19yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnF1ZXVlKTsN Cg0KK3N0YXRpYyB2b2lkIGZtMTBrX3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsIHVpbnQxNl90IHFpZCk7DQoNCitzdGF0aWMgdm9pZCBmbTEwa19yeF9xdWV1ZV9yZWxl YXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpOw0KDQogc3RhdGljIHZv aWQgZm0xMGtfc2V0X3J4X2Z1bmN0aW9uKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KTsNCg0KIHN0 YXRpYyB2b2lkIGZtMTBrX3NldF90eF9mdW5jdGlvbihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7 DQoNCiBzdGF0aWMgaW50IGZtMTBrX2NoZWNrX2Z0YWcoc3RydWN0IHJ0ZV9kZXZhcmdzICpkZXZh cmdzKTsNCg0KQEAgLTEyMTAsNyArMTIxMCw3IEBAIGZtMTBrX2Rldl9xdWV1ZV9yZWxlYXNlKHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KDQoNCg0KICAgICAgICBpZiAoZGV2LT5kYXRhLT5yeF9x dWV1ZXMpIHsNCg0KICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5i X3J4X3F1ZXVlczsgaSsrKQ0KDQotICAgICAgICAgICAgICAgICAgICAgICBmbTEwa19yeF9xdWV1 ZV9yZWxlYXNlKGRldi0+ZGF0YS0+cnhfcXVldWVzW2ldKTsNCg0KKyAgICAgICAgICAgICAgICAg ICAgICAgZm0xMGtfcnhfcXVldWVfcmVsZWFzZShkZXYsIGkpOw0KDQogICAgICAgIH0NCg0KIH0N Cg0KDQoNCkBAIC0xODkxLDExICsxODkxLDExIEBAIGZtMTBrX3J4X3F1ZXVlX3NldHVwKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCwNCg0KIH0NCg0KDQoNCiBzdGF0 aWMgdm9pZA0KDQotZm0xMGtfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpxdWV1ZSkNCg0KK2ZtMTBr X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkN Cg0KIHsNCg0KICAgICAgICBQTURfSU5JVF9GVU5DX1RSQUNFKCk7DQoNCg0KDQotICAgICAgIHJ4 X3F1ZXVlX2ZyZWUocXVldWUpOw0KDQorICAgICAgIHJ4X3F1ZXVlX2ZyZWUoZGV2LT5kYXRhLT5y eF9xdWV1ZXNbcWlkXSk7DQoNCiB9DQoNCg0KDQogc3RhdGljIGlubGluZSBpbnQNCg0KQEAgLTIw ODAsOSArMjA4MCw5IEBAIGZtMTBrX3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAq ZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCwNCg0KIH0NCg0KDQoNCiBzdGF0aWMgdm9pZA0KDQotZm0x MGtfdHhfcXVldWVfcmVsZWFzZSh2b2lkICpxdWV1ZSkNCg0KK2ZtMTBrX3R4X3F1ZXVlX3JlbGVh c2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KLSAgICAg ICBzdHJ1Y3QgZm0xMGtfdHhfcXVldWUgKnEgPSBxdWV1ZTsNCg0KKyAgICAgICBzdHJ1Y3QgZm0x MGtfdHhfcXVldWUgKnEgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdOw0KDQogICAgICAgIFBN RF9JTklUX0ZVTkNfVFJBQ0UoKTsNCg0KDQoNCiAgICAgICAgdHhfcXVldWVfZnJlZShxKTsNCg0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2hpbmljL2hpbmljX3BtZF9ldGhkZXYuYyBiL2RyaXZl cnMvbmV0L2hpbmljL2hpbmljX3BtZF9ldGhkZXYuYw0KDQppbmRleCBjMDFlMmVjMWQ0Li43NGQ0 MTczNzAwIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9oaW5pYy9oaW5pY19wbWRfZXRoZGV2 LmMNCg0KKysrIGIvZHJpdmVycy9uZXQvaGluaWMvaGluaWNfcG1kX2V0aGRldi5jDQoNCkBAIC0x MDc1LDEyICsxMDc1LDE0IEBAIHN0YXRpYyBpbnQgaGluaWNfZGV2X3N0YXJ0KHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2KQ0KDQogLyoqDQoNCiAgKiBEUERLIGNhbGxiYWNrIHRvIHJlbGVhc2UgdGhl IHJlY2VpdmUgcXVldWUuDQoNCiAgKg0KDQotICogQHBhcmFtIHF1ZXVlDQoNCi0gKiAgIEdlbmVy aWMgcmVjZWl2ZSBxdWV1ZSBwb2ludGVyLg0KDQorICogQHBhcmFtIGRldg0KDQorICogICBQb2lu dGVyIHRvIEV0aGVybmV0IGRldmljZSBzdHJ1Y3R1cmUuDQoNCisgKiBAcGFyYW0gcWlkDQoNCisg KiAgIFJYIHF1ZXVlIGluZGV4Lg0KDQogICovDQoNCi1zdGF0aWMgdm9pZCBoaW5pY19yeF9xdWV1 ZV9yZWxlYXNlKHZvaWQgKnF1ZXVlKQ0KDQorc3RhdGljIHZvaWQgaGluaWNfcnhfcXVldWVfcmVs ZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKQ0KDQogew0KDQotICAg ICAgIHN0cnVjdCBoaW5pY19yeHEgKnJ4cSA9IHF1ZXVlOw0KDQorICAgICAgIHN0cnVjdCBoaW5p Y19yeHEgKnJ4cSA9IGRldi0+ZGF0YS0+cnhfcXVldWVzW3FpZF07DQoNCiAgICAgICAgc3RydWN0 IGhpbmljX25pY19kZXYgKm5pY19kZXY7DQoNCg0KDQogICAgICAgIGlmICghcnhxKSB7DQoNCkBA IC0xMTA3LDEyICsxMTA5LDE0IEBAIHN0YXRpYyB2b2lkIGhpbmljX3J4X3F1ZXVlX3JlbGVhc2Uo dm9pZCAqcXVldWUpDQoNCiAvKioNCg0KICAqIERQREsgY2FsbGJhY2sgdG8gcmVsZWFzZSB0aGUg dHJhbnNtaXQgcXVldWUuDQoNCiAgKg0KDQotICogQHBhcmFtIHF1ZXVlDQoNCi0gKiAgIEdlbmVy aWMgdHJhbnNtaXQgcXVldWUgcG9pbnRlci4NCg0KKyAqIEBwYXJhbSBkZXYNCg0KKyAqICAgUG9p bnRlciB0byBFdGhlcm5ldCBkZXZpY2Ugc3RydWN0dXJlLg0KDQorICogQHBhcmFtIHFpZA0KDQor ICogICBUWCBxdWV1ZSBpbmRleC4NCg0KICAqLw0KDQotc3RhdGljIHZvaWQgaGluaWNfdHhfcXVl dWVfcmVsZWFzZSh2b2lkICpxdWV1ZSkNCg0KK3N0YXRpYyB2b2lkIGhpbmljX3R4X3F1ZXVlX3Jl bGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KLSAg ICAgICBzdHJ1Y3QgaGluaWNfdHhxICp0eHEgPSBxdWV1ZTsNCg0KKyAgICAgICBzdHJ1Y3QgaGlu aWNfdHhxICp0eHEgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdOw0KDQogICAgICAgIHN0cnVj dCBoaW5pY19uaWNfZGV2ICpuaWNfZGV2Ow0KDQoNCg0KICAgICAgICBpZiAoIXR4cSkgew0KDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaG5zMy9obnMzX3J4dHguYyBiL2RyaXZlcnMvbmV0L2hu czMvaG5zM19yeHR4LmMNCg0KaW5kZXggNDgxODcyZTM5NS4uYTU5ZTZkMWYzYSAxMDA2NDQNCg0K LS0tIGEvZHJpdmVycy9uZXQvaG5zMy9obnMzX3J4dHguYw0KDQorKysgYi9kcml2ZXJzL25ldC9o bnMzL2huczNfcnh0eC5jDQoNCkBAIC0xMDksOSArMTA5LDkgQEAgaG5zM190eF9xdWV1ZV9yZWxl YXNlKHZvaWQgKnF1ZXVlKQ0KDQogfQ0KDQoNCg0KIHZvaWQNCg0KLWhuczNfZGV2X3J4X3F1ZXVl X3JlbGVhc2Uodm9pZCAqcXVldWUpDQoNCitobnMzX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoNCiB7DQoNCi0gICAgICAgc3RydWN0 IGhuczNfcnhfcXVldWUgKnJ4cSA9IHF1ZXVlOw0KDQorICAgICAgIHN0cnVjdCBobnMzX3J4X3F1 ZXVlICpyeHEgPSBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1txaWRdOw0KDQogICAgICAgIHN0cnVjdCBo bnMzX2FkYXB0ZXIgKmhuczsNCg0KDQoNCiAgICAgICAgaWYgKHJ4cSA9PSBOVUxMKQ0KDQpAQCAt MTE5LDE0ICsxMTksMTQgQEAgaG5zM19kZXZfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpxdWV1ZSkN Cg0KDQoNCiAgICAgICAgaG5zID0gcnhxLT5obnM7DQoNCiAgICAgICAgcnRlX3NwaW5sb2NrX2xv Y2soJmhucy0+aHcubG9jayk7DQoNCi0gICAgICAgaG5zM19yeF9xdWV1ZV9yZWxlYXNlKHF1ZXVl KTsNCg0KKyAgICAgICBobnMzX3J4X3F1ZXVlX3JlbGVhc2UocnhxKTsNCg0KICAgICAgICBydGVf c3BpbmxvY2tfdW5sb2NrKCZobnMtPmh3LmxvY2spOw0KDQogfQ0KDQoNCg0KIHZvaWQNCg0KLWhu czNfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcXVldWUpDQoNCitobnMzX2Rldl90eF9xdWV1 ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoNCiB7DQoN Ci0gICAgICAgc3RydWN0IGhuczNfdHhfcXVldWUgKnR4cSA9IHF1ZXVlOw0KDQorICAgICAgIHN0 cnVjdCBobnMzX3R4X3F1ZXVlICp0eHEgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdOw0KDQog ICAgICAgIHN0cnVjdCBobnMzX2FkYXB0ZXIgKmhuczsNCg0KDQoNCiAgICAgICAgaWYgKHR4cSA9 PSBOVUxMKQ0KDQpAQCAtMTM0LDcgKzEzNCw3IEBAIGhuczNfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uo dm9pZCAqcXVldWUpDQoNCg0KDQogICAgICAgIGhucyA9IHR4cS0+aG5zOw0KDQogICAgICAgIHJ0 ZV9zcGlubG9ja19sb2NrKCZobnMtPmh3LmxvY2spOw0KDQotICAgICAgIGhuczNfdHhfcXVldWVf cmVsZWFzZShxdWV1ZSk7DQoNCisgICAgICAgaG5zM190eF9xdWV1ZV9yZWxlYXNlKHR4cSk7DQoN CiAgICAgICAgcnRlX3NwaW5sb2NrX3VubG9jaygmaG5zLT5ody5sb2NrKTsNCg0KIH0NCg0KDQoN CkBAIC0xNTM2LDcgKzE1MzYsOCBAQCBobnMzX2Zha2VfcnhfcXVldWVfY29uZmlnKHN0cnVjdCBo bnMzX2h3ICpodywgdWludDE2X3QgbmJfcXVldWVzKQ0KDQogICAgICAgICAgICAgICAgLyogcmUt Y29uZmlndXJlICovDQoNCiAgICAgICAgICAgICAgICByeHEgPSBody0+ZmtxX2RhdGEucnhfcXVl dWVzOw0KDQogICAgICAgICAgICAgICAgZm9yIChpID0gbmJfcXVldWVzOyBpIDwgb2xkX25iX3F1 ZXVlczsgaSsrKQ0KDQotICAgICAgICAgICAgICAgICAgICAgICBobnMzX2Rldl9yeF9xdWV1ZV9y ZWxlYXNlKHJ4cVtpXSk7DQoNCisgICAgICAgICAgICAgICAgICAgICAgIGhuczNfZGV2X3J4X3F1 ZXVlX3JlbGVhc2UNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJnJ0ZV9ldGhf ZGV2aWNlc1tody0+ZGF0YS0+cG9ydF9pZF0sIGkpOw0KDQoNCg0KICAgICAgICAgICAgICAgIHJ4 cSA9IHJ0ZV9yZWFsbG9jKHJ4cSwgc2l6ZW9mKHJ4cVswXSkgKiBuYl9xdWV1ZXMsDQoNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVEVfQ0FDSEVfTElORV9TSVpFKTsNCg0KQEAg LTE1NDksOSArMTU1MCw5IEBAIGhuczNfZmFrZV9yeF9xdWV1ZV9jb25maWcoc3RydWN0IGhuczNf aHcgKmh3LCB1aW50MTZfdCBuYl9xdWV1ZXMpDQoNCg0KDQogICAgICAgICAgICAgICAgaHctPmZr cV9kYXRhLnJ4X3F1ZXVlcyA9IHJ4cTsNCg0KICAgICAgICB9IGVsc2UgaWYgKGh3LT5ma3FfZGF0 YS5yeF9xdWV1ZXMgIT0gTlVMTCAmJiBuYl9xdWV1ZXMgPT0gMCkgew0KDQotICAgICAgICAgICAg ICAgcnhxID0gaHctPmZrcV9kYXRhLnJ4X3F1ZXVlczsNCg0KICAgICAgICAgICAgICAgIGZvciAo aSA9IG5iX3F1ZXVlczsgaSA8IG9sZF9uYl9xdWV1ZXM7IGkrKykNCg0KLSAgICAgICAgICAgICAg ICAgICAgICAgaG5zM19kZXZfcnhfcXVldWVfcmVsZWFzZShyeHFbaV0pOw0KDQorICAgICAgICAg ICAgICAgICAgICAgICBobnMzX2Rldl9yeF9xdWV1ZV9yZWxlYXNlDQoNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKCZydGVfZXRoX2RldmljZXNbaHctPmRhdGEtPnBvcnRfaWRdLCBp KTsNCg0KDQoNCiAgICAgICAgICAgICAgICBydGVfZnJlZShody0+ZmtxX2RhdGEucnhfcXVldWVz KTsNCg0KICAgICAgICAgICAgICAgIGh3LT5ma3FfZGF0YS5yeF9xdWV1ZXMgPSBOVUxMOw0KDQpA QCAtMTU4Myw3ICsxNTg0LDggQEAgaG5zM19mYWtlX3R4X3F1ZXVlX2NvbmZpZyhzdHJ1Y3QgaG5z M19odyAqaHcsIHVpbnQxNl90IG5iX3F1ZXVlcykNCg0KICAgICAgICAgICAgICAgIC8qIHJlLWNv bmZpZ3VyZSAqLw0KDQogICAgICAgICAgICAgICAgdHhxID0gaHctPmZrcV9kYXRhLnR4X3F1ZXVl czsNCg0KICAgICAgICAgICAgICAgIGZvciAoaSA9IG5iX3F1ZXVlczsgaSA8IG9sZF9uYl9xdWV1 ZXM7IGkrKykNCg0KLSAgICAgICAgICAgICAgICAgICAgICAgaG5zM19kZXZfdHhfcXVldWVfcmVs ZWFzZSh0eHFbaV0pOw0KDQorICAgICAgICAgICAgICAgICAgICAgICBobnMzX2Rldl90eF9xdWV1 ZV9yZWxlYXNlDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCZydGVfZXRoX2Rl dmljZXNbaHctPmRhdGEtPnBvcnRfaWRdLCBpKTsNCg0KICAgICAgICAgICAgICAgIHR4cSA9IHJ0 ZV9yZWFsbG9jKHR4cSwgc2l6ZW9mKHR4cVswXSkgKiBuYl9xdWV1ZXMsDQoNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSVEVfQ0FDSEVfTElORV9TSVpFKTsNCg0KICAgICAgICAg ICAgICAgIGlmICh0eHEgPT0gTlVMTCkNCg0KQEAgLTE1OTcsNyArMTU5OSw4IEBAIGhuczNfZmFr ZV90eF9xdWV1ZV9jb25maWcoc3RydWN0IGhuczNfaHcgKmh3LCB1aW50MTZfdCBuYl9xdWV1ZXMp DQoNCiAgICAgICAgfSBlbHNlIGlmIChody0+ZmtxX2RhdGEudHhfcXVldWVzICE9IE5VTEwgJiYg bmJfcXVldWVzID09IDApIHsNCg0KICAgICAgICAgICAgICAgIHR4cSA9IGh3LT5ma3FfZGF0YS50 eF9xdWV1ZXM7DQoNCiAgICAgICAgICAgICAgICBmb3IgKGkgPSBuYl9xdWV1ZXM7IGkgPCBvbGRf bmJfcXVldWVzOyBpKyspDQoNCi0gICAgICAgICAgICAgICAgICAgICAgIGhuczNfZGV2X3R4X3F1 ZXVlX3JlbGVhc2UodHhxW2ldKTsNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgaG5zM19kZXZf dHhfcXVldWVfcmVsZWFzZQ0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgmcnRl X2V0aF9kZXZpY2VzW2h3LT5kYXRhLT5wb3J0X2lkXSwgaSk7DQoNCg0KDQogICAgICAgICAgICAg ICAgcnRlX2ZyZWUoaHctPmZrcV9kYXRhLnR4X3F1ZXVlcyk7DQoNCiAgICAgICAgICAgICAgICBo dy0+ZmtxX2RhdGEudHhfcXVldWVzID0gTlVMTDsNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2huczMvaG5zM19yeHR4LmggYi9kcml2ZXJzL25ldC9obnMzL2huczNfcnh0eC5oDQoNCmluZGV4 IGNkN2MyMWMxZDAuLjM5MGU0YWU2ODUgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2huczMv aG5zM19yeHR4LmgNCg0KKysrIGIvZHJpdmVycy9uZXQvaG5zMy9obnMzX3J4dHguaA0KDQpAQCAt Njc3LDggKzY3Nyw4IEBAIGhuczNfd3JpdGVfdHhxX3RhaWxfcmVnKHN0cnVjdCBobnMzX3R4X3F1 ZXVlICp0eHEsIHVpbnQzMl90IHZhbHVlKQ0KDQogICAgICAgICAgICAgICAgcnRlX3dyaXRlMzJf cmVsYXhlZChydGVfY3B1X3RvX2xlXzMyKHZhbHVlKSwgdHhxLT5pb190YWlsX3JlZyk7DQoNCiB9 DQoNCg0KDQotdm9pZCBobnMzX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnF1ZXVlKTsNCg0K LXZvaWQgaG5zM19kZXZfdHhfcXVldWVfcmVsZWFzZSh2b2lkICpxdWV1ZSk7DQoNCit2b2lkIGhu czNfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90 IHFpZCk7DQoNCit2b2lkIGhuczNfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYsIHVpbnQxNl90IHFpZCk7DQoNCiB2b2lkIGhuczNfZnJlZV9hbGxfcXVldWVzKHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2KTsNCg0KIGludCBobnMzX3Jlc2V0X2FsbF90cXBzKHN0cnVj dCBobnMzX2FkYXB0ZXIgKmhucyk7DQoNCiB2b2lkIGhuczNfZGV2X2FsbF9yeF9xdWV1ZV9pbnRy X2VuYWJsZShzdHJ1Y3QgaG5zM19odyAqaHcsIGJvb2wgZW4pOw0KDQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvaTQwZS9pNDBlX2ZkaXIuYyBiL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9mZGlyLmMN Cg0KaW5kZXggYWYwNzVmZGEyYS4uMTA1YTZhNjU3ZiAxMDA2NDQNCg0KLS0tIGEvZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2ZkaXIuYw0KDQorKysgYi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZmRpci5j DQoNCkBAIC0yNjQsMTAgKzI2NCwxMCBAQCBpNDBlX2ZkaXJfc2V0dXAoc3RydWN0IGk0MGVfcGYg KnBmKQ0KDQogICAgICAgIHJldHVybiBJNDBFX1NVQ0NFU1M7DQoNCg0KDQogZmFpbF9tZW06DQoN Ci0gICAgICAgaTQwZV9kZXZfcnhfcXVldWVfcmVsZWFzZShwZi0+ZmRpci5yeHEpOw0KDQorICAg ICAgIGk0MGVfcnhfcXVldWVfcmVsZWFzZShwZi0+ZmRpci5yeHEpOw0KDQogICAgICAgIHBmLT5m ZGlyLnJ4cSA9IE5VTEw7DQoNCiBmYWlsX3NldHVwX3J4Og0KDQotICAgICAgIGk0MGVfZGV2X3R4 X3F1ZXVlX3JlbGVhc2UocGYtPmZkaXIudHhxKTsNCg0KKyAgICAgICBpNDBlX3R4X3F1ZXVlX3Jl bGVhc2UocGYtPmZkaXIudHhxKTsNCg0KICAgICAgICBwZi0+ZmRpci50eHEgPSBOVUxMOw0KDQog ZmFpbF9zZXR1cF90eDoNCg0KICAgICAgICBpNDBlX3ZzaV9yZWxlYXNlKHZzaSk7DQoNCkBAIC0z MDIsMTAgKzMwMiwxMCBAQCBpNDBlX2ZkaXJfdGVhcmRvd24oc3RydWN0IGk0MGVfcGYgKnBmKQ0K DQogICAgICAgICAgICAgICAgUE1EX0RSVl9MT0coREVCVUcsICJGYWlsZWQgdG8gZG8gRkRJUiBS WCBzd2l0Y2ggb2ZmIik7DQoNCg0KDQogICAgICAgIHJ0ZV9ldGhfZG1hX3pvbmVfZnJlZShkZXYs ICJmZGlyX3J4X3JpbmciLCBwZi0+ZmRpci5yeHEtPnF1ZXVlX2lkKTsNCg0KLSAgICAgICBpNDBl X2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHBmLT5mZGlyLnJ4cSk7DQoNCisgICAgICAgaTQwZV9yeF9x dWV1ZV9yZWxlYXNlKHBmLT5mZGlyLnJ4cSk7DQoNCiAgICAgICAgcGYtPmZkaXIucnhxID0gTlVM TDsNCg0KICAgICAgICBydGVfZXRoX2RtYV96b25lX2ZyZWUoZGV2LCAiZmRpcl90eF9yaW5nIiwg cGYtPmZkaXIudHhxLT5xdWV1ZV9pZCk7DQoNCi0gICAgICAgaTQwZV9kZXZfdHhfcXVldWVfcmVs ZWFzZShwZi0+ZmRpci50eHEpOw0KDQorICAgICAgIGk0MGVfdHhfcXVldWVfcmVsZWFzZShwZi0+ ZmRpci50eHEpOw0KDQogICAgICAgIHBmLT5mZGlyLnR4cSA9IE5VTEw7DQoNCiAgICAgICAgaTQw ZV92c2lfcmVsZWFzZSh2c2kpOw0KDQogICAgICAgIHBmLT5mZGlyLmZkaXJfdnNpID0gTlVMTDsN Cg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9yeHR4LmMgYi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfcnh0eC5jDQoNCmluZGV4IDgzMjljYmRkNGUuLmJiZWE5Y2NiYjYgMTAwNjQ0 DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9yeHR4LmMNCg0KKysrIGIvZHJpdmVycy9u ZXQvaTQwZS9pNDBlX3J4dHguYw0KDQpAQCAtMTk4NSw3ICsxOTg1LDcgQEAgaTQwZV9kZXZfcnhf cXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCg0KDQogICAgICAgIC8qIEZy ZWUgbWVtb3J5IGlmIG5lZWRlZCAqLw0KDQogICAgICAgIGlmIChkZXYtPmRhdGEtPnJ4X3F1ZXVl c1txdWV1ZV9pZHhdKSB7DQoNCi0gICAgICAgICAgICAgICBpNDBlX2Rldl9yeF9xdWV1ZV9yZWxl YXNlKGRldi0+ZGF0YS0+cnhfcXVldWVzW3F1ZXVlX2lkeF0pOw0KDQorICAgICAgICAgICAgICAg aTQwZV9yeF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+cnhfcXVldWVzW3F1ZXVlX2lkeF0pOw0K DQogICAgICAgICAgICAgICAgZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcXVldWVfaWR4XSA9IE5VTEw7 DQoNCiAgICAgICAgfQ0KDQoNCg0KQEAgLTIwMjksNyArMjAyOSw3IEBAIGk0MGVfZGV2X3J4X3F1 ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KDQogICAgICAgIHJ6ID0gcnRlX2V0 aF9kbWFfem9uZV9yZXNlcnZlKGRldiwgInJ4X3JpbmciLCBxdWV1ZV9pZHgsDQoNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJpbmdfc2l6ZSwgSTQwRV9SSU5HX0JBU0VfQUxJR04sIHNv Y2tldF9pZCk7DQoNCiAgICAgICAgaWYgKCFyeikgew0KDQotICAgICAgICAgICAgICAgaTQwZV9k ZXZfcnhfcXVldWVfcmVsZWFzZShyeHEpOw0KDQorICAgICAgICAgICAgICAgaTQwZV9yeF9xdWV1 ZV9yZWxlYXNlKHJ4cSk7DQoNCiAgICAgICAgICAgICAgICBQTURfRFJWX0xPRyhFUlIsICJGYWls ZWQgdG8gcmVzZXJ2ZSBETUEgbWVtb3J5IGZvciBSWCIpOw0KDQogICAgICAgICAgICAgICAgcmV0 dXJuIC1FTk9NRU07DQoNCiAgICAgICAgfQ0KDQpAQCAtMjA0OSw3ICsyMDQ5LDcgQEAgaTQwZV9k ZXZfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUlRFX0NBQ0hFX0xJTkVfU0laRSwNCg0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXRfaWQpOw0KDQogICAgICAgIGlmICghcnhx LT5zd19yaW5nKSB7DQoNCi0gICAgICAgICAgICAgICBpNDBlX2Rldl9yeF9xdWV1ZV9yZWxlYXNl KHJ4cSk7DQoNCisgICAgICAgICAgICAgICBpNDBlX3J4X3F1ZXVlX3JlbGVhc2UocnhxKTsNCg0K ICAgICAgICAgICAgICAgIFBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1v cnkgZm9yIFNXIHJpbmciKTsNCg0KICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KDQog ICAgICAgIH0NCg0KQEAgLTIwNzIsNyArMjA3Miw3IEBAIGk0MGVfZGV2X3J4X3F1ZXVlX3NldHVw KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KDQoNCg0KICAgICAgICBpZiAoZGV2LT5kYXRhLT5k ZXZfc3RhcnRlZCkgew0KDQogICAgICAgICAgICAgICAgaWYgKGk0MGVfZGV2X3J4X3F1ZXVlX3Nl dHVwX3J1bnRpbWUoZGV2LCByeHEpKSB7DQoNCi0gICAgICAgICAgICAgICAgICAgICAgIGk0MGVf ZGV2X3J4X3F1ZXVlX3JlbGVhc2UocnhxKTsNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgaTQw ZV9yeF9xdWV1ZV9yZWxlYXNlKHJ4cSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biAtRUlOVkFMOw0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgIH0gZWxzZSB7DQoNCkBA IC0yMTAyLDcgKzIxMDIsMTkgQEAgaTQwZV9kZXZfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsDQoNCiB9DQoNCg0KDQogdm9pZA0KDQotaTQwZV9kZXZfcnhfcXVldWVfcmVs ZWFzZSh2b2lkICpyeHEpDQoNCitpNDBlX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoNCit7DQoNCisgICAgICAgaTQwZV9yeF9xdWV1 ZV9yZWxlYXNlKGRldi0+ZGF0YS0+cnhfcXVldWVzW3FpZF0pOw0KDQorfQ0KDQorDQoNCit2b2lk DQoNCitpNDBlX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1 aW50MTZfdCBxaWQpDQoNCit7DQoNCisgICAgICAgaTQwZV90eF9xdWV1ZV9yZWxlYXNlKGRldi0+ ZGF0YS0+dHhfcXVldWVzW3FpZF0pOw0KDQorfQ0KDQorDQoNCit2b2lkDQoNCitpNDBlX3J4X3F1 ZXVlX3JlbGVhc2Uodm9pZCAqcnhxKQ0KDQogew0KDQogICAgICAgIHN0cnVjdCBpNDBlX3J4X3F1 ZXVlICpxID0gKHN0cnVjdCBpNDBlX3J4X3F1ZXVlICopcnhxOw0KDQoNCg0KQEAgLTI0MDcsNyAr MjQxOSw3IEBAIGk0MGVfZGV2X3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LA0KDQoNCg0KICAgICAgICAvKiBGcmVlIG1lbW9yeSBpZiBuZWVkZWQuICovDQoNCiAgICAgICAg aWYgKGRldi0+ZGF0YS0+dHhfcXVldWVzW3F1ZXVlX2lkeF0pIHsNCg0KLSAgICAgICAgICAgICAg IGk0MGVfZGV2X3R4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT50eF9xdWV1ZXNbcXVldWVfaWR4 XSk7DQoNCisgICAgICAgICAgICAgICBpNDBlX3R4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT50 eF9xdWV1ZXNbcXVldWVfaWR4XSk7DQoNCiAgICAgICAgICAgICAgICBkZXYtPmRhdGEtPnR4X3F1 ZXVlc1txdWV1ZV9pZHhdID0gTlVMTDsNCg0KICAgICAgICB9DQoNCg0KDQpAQCAtMjQyOCw3ICsy NDQwLDcgQEAgaTQwZV9kZXZfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs DQoNCiAgICAgICAgdHogPSBydGVfZXRoX2RtYV96b25lX3Jlc2VydmUoZGV2LCAidHhfcmluZyIs IHF1ZXVlX2lkeCwNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmluZ19zaXplLCBJ NDBFX1JJTkdfQkFTRV9BTElHTiwgc29ja2V0X2lkKTsNCg0KICAgICAgICBpZiAoIXR6KSB7DQoN Ci0gICAgICAgICAgICAgICBpNDBlX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHR4cSk7DQoNCisgICAg ICAgICAgICAgICBpNDBlX3R4X3F1ZXVlX3JlbGVhc2UodHhxKTsNCg0KICAgICAgICAgICAgICAg IFBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byByZXNlcnZlIERNQSBtZW1vcnkgZm9yIFRYIik7 DQoNCiAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCg0KICAgICAgICB9DQoNCkBAIC0y NDU2LDcgKzI0NjgsNyBAQCBpNDBlX2Rldl90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldiwNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVEVfQ0FDSEVf TElORV9TSVpFLA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldF9p ZCk7DQoNCiAgICAgICAgaWYgKCF0eHEtPnN3X3JpbmcpIHsNCg0KLSAgICAgICAgICAgICAgIGk0 MGVfZGV2X3R4X3F1ZXVlX3JlbGVhc2UodHhxKTsNCg0KKyAgICAgICAgICAgICAgIGk0MGVfdHhf cXVldWVfcmVsZWFzZSh0eHEpOw0KDQogICAgICAgICAgICAgICAgUE1EX0RSVl9MT0coRVJSLCAi RmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgU1cgVFggcmluZyIpOw0KDQogICAgICAgICAg ICAgICAgcmV0dXJuIC1FTk9NRU07DQoNCiAgICAgICAgfQ0KDQpAQCAtMjQ3OSw3ICsyNDkxLDcg QEAgaTQwZV9kZXZfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCg0K DQogICAgICAgIGlmIChkZXYtPmRhdGEtPmRldl9zdGFydGVkKSB7DQoNCiAgICAgICAgICAgICAg ICBpZiAoaTQwZV9kZXZfdHhfcXVldWVfc2V0dXBfcnVudGltZShkZXYsIHR4cSkpIHsNCg0KLSAg ICAgICAgICAgICAgICAgICAgICAgaTQwZV9kZXZfdHhfcXVldWVfcmVsZWFzZSh0eHEpOw0KDQor ICAgICAgICAgICAgICAgICAgICAgICBpNDBlX3R4X3F1ZXVlX3JlbGVhc2UodHhxKTsNCg0KICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQoNCiAgICAgICAgICAgICAgICB9 DQoNCiAgICAgICAgfSBlbHNlIHsNCg0KQEAgLTI0OTUsNyArMjUwNyw3IEBAIGk0MGVfZGV2X3R4 X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KDQogfQ0KDQoNCg0KIHZvaWQN Cg0KLWk0MGVfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhxKQ0KDQoraTQwZV90eF9xdWV1 ZV9yZWxlYXNlKHZvaWQgKnR4cSkNCg0KIHsNCg0KICAgICAgICBzdHJ1Y3QgaTQwZV90eF9xdWV1 ZSAqcSA9IChzdHJ1Y3QgaTQwZV90eF9xdWV1ZSAqKXR4cTsNCg0KDQoNCkBAIC0zMDU2LDcgKzMw NjgsNyBAQCBpNDBlX2Rldl9mcmVlX3F1ZXVlcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCg0K ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7IGkrKykgew0K DQogICAgICAgICAgICAgICAgaWYgKCFkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSkNCg0KICAgICAg ICAgICAgICAgICAgICAgICAgY29udGludWU7DQoNCi0gICAgICAgICAgICAgICBpNDBlX2Rldl9y eF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+cnhfcXVldWVzW2ldKTsNCg0KKyAgICAgICAgICAg ICAgIGk0MGVfcnhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSk7DQoNCiAg ICAgICAgICAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCiAgICAgICAg ICAgICAgICBydGVfZXRoX2RtYV96b25lX2ZyZWUoZGV2LCAicnhfcmluZyIsIGkpOw0KDQogICAg ICAgIH0NCg0KQEAgLTMwNjQsNyArMzA3Niw3IEBAIGk0MGVfZGV2X2ZyZWVfcXVldWVzKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2KQ0KDQogICAgICAgIGZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEt Pm5iX3R4X3F1ZXVlczsgaSsrKSB7DQoNCiAgICAgICAgICAgICAgICBpZiAoIWRldi0+ZGF0YS0+ dHhfcXVldWVzW2ldKQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCg0KLSAg ICAgICAgICAgICAgIGk0MGVfZGV2X3R4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT50eF9xdWV1 ZXNbaV0pOw0KDQorICAgICAgICAgICAgICAgaTQwZV90eF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0 YS0+dHhfcXVldWVzW2ldKTsNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+dHhfcXVldWVz W2ldID0gTlVMTDsNCg0KICAgICAgICAgICAgICAgIHJ0ZV9ldGhfZG1hX3pvbmVfZnJlZShkZXYs ICJ0eF9yaW5nIiwgaSk7DQoNCiAgICAgICAgfQ0KDQpAQCAtMzEwNCw3ICszMTE2LDcgQEAgaTQw ZV9mZGlyX3NldHVwX3R4X3Jlc291cmNlcyhzdHJ1Y3QgaTQwZV9wZiAqcGYpDQoNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTQwRV9GRElSX1FVRVVFX0lELCByaW5nX3Np emUsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTQwRV9SSU5HX0JB U0VfQUxJR04sIFNPQ0tFVF9JRF9BTlkpOw0KDQogICAgICAgIGlmICghdHopIHsNCg0KLSAgICAg ICAgICAgICAgIGk0MGVfZGV2X3R4X3F1ZXVlX3JlbGVhc2UodHhxKTsNCg0KKyAgICAgICAgICAg ICAgIGk0MGVfdHhfcXVldWVfcmVsZWFzZSh0eHEpOw0KDQogICAgICAgICAgICAgICAgUE1EX0RS Vl9MT0coRVJSLCAiRmFpbGVkIHRvIHJlc2VydmUgRE1BIG1lbW9yeSBmb3IgVFguIik7DQoNCiAg ICAgICAgICAgICAgICByZXR1cm4gSTQwRV9FUlJfTk9fTUVNT1JZOw0KDQogICAgICAgIH0NCg0K QEAgLTMxNjIsNyArMzE3NCw3IEBAIGk0MGVfZmRpcl9zZXR1cF9yeF9yZXNvdXJjZXMoc3RydWN0 IGk0MGVfcGYgKnBmKQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEk0 MEVfRkRJUl9RVUVVRV9JRCwgcmluZ19zaXplLA0KDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEk0MEVfUklOR19CQVNFX0FMSUdOLCBTT0NLRVRfSURfQU5ZKTsNCg0KICAg ICAgICBpZiAoIXJ6KSB7DQoNCi0gICAgICAgICAgICAgICBpNDBlX2Rldl9yeF9xdWV1ZV9yZWxl YXNlKHJ4cSk7DQoNCisgICAgICAgICAgICAgICBpNDBlX3J4X3F1ZXVlX3JlbGVhc2UocnhxKTsN Cg0KICAgICAgICAgICAgICAgIFBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byByZXNlcnZlIERN QSBtZW1vcnkgZm9yIFJYLiIpOw0KDQogICAgICAgICAgICAgICAgcmV0dXJuIEk0MEVfRVJSX05P X01FTU9SWTsNCg0KICAgICAgICB9DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfcnh0eC5oIGIvZHJpdmVycy9uZXQvaTQwZS9pNDBlX3J4dHguaA0KDQppbmRleCA1Y2NmNTc3 M2U4Li44ZDZhYjE2YjRmIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9pNDBlL2k0MGVfcnh0 eC5oDQoNCisrKyBiL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9yeHR4LmgNCg0KQEAgLTE5Nyw4ICsx OTcsMTAgQEAgaW50IGk0MGVfZGV2X3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAq ZGV2LA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgbmJfZGVzYywNCg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzb2NrZXRfaWQsDQoNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX2V0aF90eGNvbmYgKnR4 X2NvbmYpOw0KDQotdm9pZCBpNDBlX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnJ4cSk7DQoN Ci12b2lkIGk0MGVfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhxKTsNCg0KK3ZvaWQgaTQw ZV9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnJ4cSk7DQoNCit2b2lkIGk0MGVfdHhfcXVldWVfcmVs ZWFzZSh2b2lkICp0eHEpOw0KDQordm9pZCBpNDBlX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpOw0KDQordm9pZCBpNDBlX2Rldl90eF9x dWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpOw0KDQog dWludDE2X3QgaTQwZV9yZWN2X3BrdHModm9pZCAqcnhfcXVldWUsDQoNCiAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBydGVfbWJ1ZiAqKnJ4X3BrdHMsDQoNCiAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQxNl90IG5iX3BrdHMpOw0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWF2 Zi9pYXZmX3J4dHguYyBiL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4LmMNCg0KaW5kZXggZTMz ZmU0NTc2Yi4uZWFhMjIxN2FiZCAxMDA2NDQNCg0KLS0tIGEvZHJpdmVycy9uZXQvaWF2Zi9pYXZm X3J4dHguYw0KDQorKysgYi9kcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eC5jDQoNCkBAIC01NTQs NyArNTU0LDcgQEAgaWF2Zl9kZXZfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsIHVpbnQxNl90IHF1ZXVlX2lkeCwNCg0KDQoNCiAgICAgICAgLyogRnJlZSBtZW1vcnkgaWYg bmVlZGVkICovDQoNCiAgICAgICAgaWYgKGRldi0+ZGF0YS0+cnhfcXVldWVzW3F1ZXVlX2lkeF0p IHsNCg0KLSAgICAgICAgICAgICAgIGlhdmZfZGV2X3J4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRh LT5yeF9xdWV1ZXNbcXVldWVfaWR4XSk7DQoNCisgICAgICAgICAgICAgICBpYXZmX2Rldl9yeF9x dWV1ZV9yZWxlYXNlKGRldiwgcXVldWVfaWR4KTsNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0 YS0+cnhfcXVldWVzW3F1ZXVlX2lkeF0gPSBOVUxMOw0KDQogICAgICAgIH0NCg0KDQoNCkBAIC03 MTMsNyArNzEzLDcgQEAgaWF2Zl9kZXZfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsDQoNCg0KDQogICAgICAgIC8qIEZyZWUgbWVtb3J5IGlmIG5lZWRlZC4gKi8NCg0KICAg ICAgICBpZiAoZGV2LT5kYXRhLT50eF9xdWV1ZXNbcXVldWVfaWR4XSkgew0KDQotICAgICAgICAg ICAgICAgaWF2Zl9kZXZfdHhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEtPnR4X3F1ZXVlc1txdWV1 ZV9pZHhdKTsNCg0KKyAgICAgICAgICAgICAgIGlhdmZfZGV2X3R4X3F1ZXVlX3JlbGVhc2UoZGV2 LCBxdWV1ZV9pZHgpOw0KDQogICAgICAgICAgICAgICAgZGV2LT5kYXRhLT50eF9xdWV1ZXNbcXVl dWVfaWR4XSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQoNCg0KQEAgLTk1Miw5ICs5NTIsOSBAQCBp YXZmX2Rldl90eF9xdWV1ZV9zdG9wKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCB0 eF9xdWV1ZV9pZCkNCg0KIH0NCg0KDQoNCiB2b2lkDQoNCi1pYXZmX2Rldl9yeF9xdWV1ZV9yZWxl YXNlKHZvaWQgKnJ4cSkNCg0KK2lhdmZfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3QgaWF2Zl9y eF9xdWV1ZSAqcSA9IChzdHJ1Y3QgaWF2Zl9yeF9xdWV1ZSAqKXJ4cTsNCg0KKyAgICAgICBzdHJ1 Y3QgaWF2Zl9yeF9xdWV1ZSAqcSA9IGRldi0+ZGF0YS0+cnhfcXVldWVzW3FpZF07DQoNCg0KDQog ICAgICAgIGlmICghcSkNCg0KICAgICAgICAgICAgICAgIHJldHVybjsNCg0KQEAgLTk2Niw5ICs5 NjYsOSBAQCBpYXZmX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnJ4cSkNCg0KIH0NCg0KDQoN CiB2b2lkDQoNCi1pYXZmX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnR4cSkNCg0KK2lhdmZf ZGV2X3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFp ZCkNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3QgaWF2Zl90eF9xdWV1ZSAqcSA9IChzdHJ1Y3QgaWF2 Zl90eF9xdWV1ZSAqKXR4cTsNCg0KKyAgICAgICBzdHJ1Y3QgaWF2Zl90eF9xdWV1ZSAqcSA9IGRl di0+ZGF0YS0+dHhfcXVldWVzW3FpZF07DQoNCg0KDQogICAgICAgIGlmICghcSkNCg0KICAgICAg ICAgICAgICAgIHJldHVybjsNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9y eHR4LmggYi9kcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eC5oDQoNCmluZGV4IGUyMTBiOTEzZDYu LmM3YTg2OGNmMWQgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4LmgN Cg0KKysrIGIvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHguaA0KDQpAQCAtNDIwLDcgKzQyMCw3 IEBAIGludCBpYXZmX2Rldl9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwN Cg0KDQoNCiBpbnQgaWF2Zl9kZXZfcnhfcXVldWVfc3RhcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsIHVpbnQxNl90IHJ4X3F1ZXVlX2lkKTsNCg0KIGludCBpYXZmX2Rldl9yeF9xdWV1ZV9zdG9w KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCByeF9xdWV1ZV9pZCk7DQoNCi12b2lk IGlhdmZfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcnhxKTsNCg0KK3ZvaWQgaWF2Zl9kZXZf cnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKTsN Cg0KDQoNCiBpbnQgaWF2Zl9kZXZfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IHF1ZXVlX2lkeCwNCg0K QEAgLTQzMCw3ICs0MzAsNyBAQCBpbnQgaWF2Zl9kZXZfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsDQoNCiBpbnQgaWF2Zl9kZXZfdHhfcXVldWVfc3RhcnQoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHR4X3F1ZXVlX2lkKTsNCg0KIGludCBpYXZmX2Rldl90 eF9xdWV1ZV9zdG9wKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCB0eF9xdWV1ZV9p ZCk7DQoNCiBpbnQgaWF2Zl9kZXZfdHhfZG9uZV9jbGVhbnVwKHZvaWQgKnR4cSwgdWludDMyX3Qg ZnJlZV9jbnQpOw0KDQotdm9pZCBpYXZmX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnR4cSk7 DQoNCit2b2lkIGlhdmZfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsIHVpbnQxNl90IHFpZCk7DQoNCiB2b2lkIGlhdmZfc3RvcF9xdWV1ZXMoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYpOw0KDQogdWludDE2X3QgaWF2Zl9yZWN2X3BrdHModm9pZCAqcnhfcXVldWUs IHN0cnVjdCBydGVfbWJ1ZiAqKnJ4X3BrdHMsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgdWlu dDE2X3QgbmJfcGt0cyk7DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pY2UvaWNlX2RjZl9l dGhkZXYuYyBiL2RyaXZlcnMvbmV0L2ljZS9pY2VfZGNmX2V0aGRldi5jDQoNCmluZGV4IGY1MTBi YWQzODEuLjBkYzM0ZDJlOGQgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2ljZS9pY2VfZGNm X2V0aGRldi5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L2ljZS9pY2VfZGNmX2V0aGRldi5jDQoNCkBA IC0xMDU5LDggKzEwNTksOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV0aF9kZXZfb3BzIGljZV9k Y2ZfZXRoX2Rldl9vcHMgPSB7DQoNCiAgICAgICAgLmRldl9pbmZvc19nZXQgICAgICAgICAgID0g aWNlX2RjZl9kZXZfaW5mb19nZXQsDQoNCiAgICAgICAgLnJ4X3F1ZXVlX3NldHVwICAgICAgICAg ID0gaWNlX3J4X3F1ZXVlX3NldHVwLA0KDQogICAgICAgIC50eF9xdWV1ZV9zZXR1cCAgICAgICAg ICA9IGljZV90eF9xdWV1ZV9zZXR1cCwNCg0KLSAgICAgICAucnhfcXVldWVfcmVsZWFzZSAgICAg ICAgPSBpY2VfcnhfcXVldWVfcmVsZWFzZSwNCg0KLSAgICAgICAudHhfcXVldWVfcmVsZWFzZSAg ICAgICAgPSBpY2VfdHhfcXVldWVfcmVsZWFzZSwNCg0KKyAgICAgICAucnhfcXVldWVfcmVsZWFz ZSAgICAgICAgPSBpY2VfZGV2X3J4X3F1ZXVlX3JlbGVhc2UsDQoNCisgICAgICAgLnR4X3F1ZXVl X3JlbGVhc2UgICAgICAgID0gaWNlX2Rldl90eF9xdWV1ZV9yZWxlYXNlLA0KDQogICAgICAgIC5y eF9xdWV1ZV9zdGFydCAgICAgICAgICA9IGljZV9kY2ZfcnhfcXVldWVfc3RhcnQsDQoNCiAgICAg ICAgLnR4X3F1ZXVlX3N0YXJ0ICAgICAgICAgID0gaWNlX2RjZl90eF9xdWV1ZV9zdGFydCwNCg0K ICAgICAgICAucnhfcXVldWVfc3RvcCAgICAgICAgICAgPSBpY2VfZGNmX3J4X3F1ZXVlX3N0b3As DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pY2UvaWNlX2V0aGRldi5jIGIvZHJpdmVycy9u ZXQvaWNlL2ljZV9ldGhkZXYuYw0KDQppbmRleCA4ZDYyYjg0ODA1Li5kMWZlMjQ4OTUxIDEwMDY0 NA0KDQotLS0gYS9kcml2ZXJzL25ldC9pY2UvaWNlX2V0aGRldi5jDQoNCisrKyBiL2RyaXZlcnMv bmV0L2ljZS9pY2VfZXRoZGV2LmMNCg0KQEAgLTE4NCw5ICsxODQsOSBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGV0aF9kZXZfb3BzIGljZV9ldGhfZGV2X29wcyA9IHsNCg0KICAgICAgICAudHhfcXVl dWVfc3RhcnQgICAgICAgICAgICAgICA9IGljZV90eF9xdWV1ZV9zdGFydCwNCg0KICAgICAgICAu dHhfcXVldWVfc3RvcCAgICAgICAgICAgICAgICA9IGljZV90eF9xdWV1ZV9zdG9wLA0KDQogICAg ICAgIC5yeF9xdWV1ZV9zZXR1cCAgICAgICAgICAgICAgID0gaWNlX3J4X3F1ZXVlX3NldHVwLA0K DQotICAgICAgIC5yeF9xdWV1ZV9yZWxlYXNlICAgICAgICAgICAgID0gaWNlX3J4X3F1ZXVlX3Jl bGVhc2UsDQoNCisgICAgICAgLnJ4X3F1ZXVlX3JlbGVhc2UgICAgICAgICAgICAgPSBpY2VfZGV2 X3J4X3F1ZXVlX3JlbGVhc2UsDQoNCiAgICAgICAgLnR4X3F1ZXVlX3NldHVwICAgICAgICAgICAg ICAgPSBpY2VfdHhfcXVldWVfc2V0dXAsDQoNCi0gICAgICAgLnR4X3F1ZXVlX3JlbGVhc2UgICAg ICAgICAgICAgPSBpY2VfdHhfcXVldWVfcmVsZWFzZSwNCg0KKyAgICAgICAudHhfcXVldWVfcmVs ZWFzZSAgICAgICAgICAgICA9IGljZV9kZXZfdHhfcXVldWVfcmVsZWFzZSwNCg0KICAgICAgICAu ZGV2X2luZm9zX2dldCAgICAgICAgICAgICAgICA9IGljZV9kZXZfaW5mb19nZXQsDQoNCiAgICAg ICAgLmRldl9zdXBwb3J0ZWRfcHR5cGVzX2dldCAgICAgPSBpY2VfZGV2X3N1cHBvcnRlZF9wdHlw ZXNfZ2V0LA0KDQogICAgICAgIC5saW5rX3VwZGF0ZSAgICAgICAgICAgICAgICAgID0gaWNlX2xp bmtfdXBkYXRlLA0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWNlL2ljZV9yeHR4LmMgYi9k cml2ZXJzL25ldC9pY2UvaWNlX3J4dHguYw0KDQppbmRleCA1ZDdhYjRmMDQ3Li43Zjg2Y2ViZTkz IDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9pY2UvaWNlX3J4dHguYw0KDQorKysgYi9kcml2 ZXJzL25ldC9pY2UvaWNlX3J4dHguYw0KDQpAQCAtMTM3NCw2ICsxMzc0LDE4IEBAIGljZV90eF9x dWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCg0KICAgICAgICByZXR1cm4gMDsN Cg0KIH0NCg0KDQoNCit2b2lkDQoNCitpY2VfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KK3sNCg0KKyAgICAgICBpY2VfcnhfcXVl dWVfcmVsZWFzZShkZXYtPmRhdGEtPnJ4X3F1ZXVlc1txaWRdKTsNCg0KK30NCg0KKw0KDQordm9p ZA0KDQoraWNlX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1 aW50MTZfdCBxaWQpDQoNCit7DQoNCisgICAgICAgaWNlX3R4X3F1ZXVlX3JlbGVhc2UoZGV2LT5k YXRhLT50eF9xdWV1ZXNbcWlkXSk7DQoNCit9DQoNCisNCg0KIHZvaWQNCg0KIGljZV90eF9xdWV1 ZV9yZWxlYXNlKHZvaWQgKnR4cSkNCg0KIHsNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lj ZS9pY2Vfcnh0eC5oIGIvZHJpdmVycy9uZXQvaWNlL2ljZV9yeHR4LmgNCg0KaW5kZXggYjEwZGIw ODc0ZC4uN2Y5ODM4YjU4YSAxMDA2NDQNCg0KLS0tIGEvZHJpdmVycy9uZXQvaWNlL2ljZV9yeHR4 LmgNCg0KKysrIGIvZHJpdmVycy9uZXQvaWNlL2ljZV9yeHR4LmgNCg0KQEAgLTIwOSw2ICsyMDks OCBAQCBpbnQgaWNlX2ZkaXJfcnhfcXVldWVfc3RvcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwg dWludDE2X3QgcnhfcXVldWVfaWQpOw0KDQogaW50IGljZV9mZGlyX3R4X3F1ZXVlX3N0b3Aoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHR4X3F1ZXVlX2lkKTsNCg0KIHZvaWQgaWNl X3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcnhxKTsNCg0KIHZvaWQgaWNlX3R4X3F1ZXVlX3JlbGVh c2Uodm9pZCAqdHhxKTsNCg0KK3ZvaWQgaWNlX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpOw0KDQordm9pZCBpY2VfZGV2X3R4X3F1ZXVl X3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCk7DQoNCiB2b2lk IGljZV9mcmVlX3F1ZXVlcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7DQoNCiBpbnQgaWNlX2Zk aXJfc2V0dXBfdHhfcmVzb3VyY2VzKHN0cnVjdCBpY2VfcGYgKnBmKTsNCg0KIGludCBpY2VfZmRp cl9zZXR1cF9yeF9yZXNvdXJjZXMoc3RydWN0IGljZV9wZiAqcGYpOw0KDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvaWdjL2lnY19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2lnYy9pZ2NfZXRoZGV2 LmMNCg0KaW5kZXggMjI0YTA5NTQ4My4uZTYzNDMwNjI0OSAxMDA2NDQNCg0KLS0tIGEvZHJpdmVy cy9uZXQvaWdjL2lnY19ldGhkZXYuYw0KDQorKysgYi9kcml2ZXJzL25ldC9pZ2MvaWdjX2V0aGRl di5jDQoNCkBAIC0xMTUzLDEzICsxMTUzLDEzIEBAIGlnY19kZXZfZnJlZV9xdWV1ZXMoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYpDQoNCiAgICAgICAgdWludDE2X3QgaTsNCg0KDQoNCiAgICAgICAg Zm9yIChpID0gMDsgaSA8IGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzOyBpKyspIHsNCg0KLSAgICAg ICAgICAgICAgIGV0aF9pZ2NfcnhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tp XSk7DQoNCisgICAgICAgICAgICAgICBldGhfaWdjX3J4X3F1ZXVlX3JlbGVhc2UoZGV2LCBpKTsN Cg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+cnhfcXVldWVzW2ldID0gTlVMTDsNCg0KICAg ICAgICB9DQoNCiAgICAgICAgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXMgPSAwOw0KDQoNCg0KICAg ICAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXM7IGkrKykgew0KDQot ICAgICAgICAgICAgICAgZXRoX2lnY190eF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+dHhfcXVl dWVzW2ldKTsNCg0KKyAgICAgICAgICAgICAgIGV0aF9pZ2NfdHhfcXVldWVfcmVsZWFzZShkZXYs IGkpOw0KDQogICAgICAgICAgICAgICAgZGV2LT5kYXRhLT50eF9xdWV1ZXNbaV0gPSBOVUxMOw0K DQogICAgICAgIH0NCg0KICAgICAgICBkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlcyA9IDA7DQoNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pZ2MvaWdjX3R4cnguYyBiL2RyaXZlcnMvbmV0L2lnYy9p Z2NfdHhyeC5jDQoNCmluZGV4IGI1NDg5ZWVkZDIuLjdkZWUxYmIwZmEgMTAwNjQ0DQoNCi0tLSBh L2RyaXZlcnMvbmV0L2lnYy9pZ2NfdHhyeC5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L2lnYy9pZ2Nf dHhyeC5jDQoNCkBAIC03MTYsMTAgKzcxNiwxMCBAQCBpZ2NfcnhfcXVldWVfcmVsZWFzZShzdHJ1 Y3QgaWdjX3J4X3F1ZXVlICpyeHEpDQoNCiAgICAgICAgcnRlX2ZyZWUocnhxKTsNCg0KIH0NCg0K DQoNCi12b2lkIGV0aF9pZ2NfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpyeHEpDQoNCit2b2lkIGV0 aF9pZ2NfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3Qg cWlkKQ0KDQogew0KDQotICAgICAgIGlmIChyeHEpDQoNCi0gICAgICAgICAgICAgICBpZ2Nfcnhf cXVldWVfcmVsZWFzZShyeHEpOw0KDQorICAgICAgIGlmIChkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tx aWRdKQ0KDQorICAgICAgICAgICAgICAgaWdjX3J4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT5y eF9xdWV1ZXNbcWlkXSk7DQoNCiB9DQoNCg0KDQogdWludDMyX3QgZXRoX2lnY19yeF9xdWV1ZV9j b3VudChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCg0KQEAgLTE4OTksMTAgKzE4OTksMTAgQEAg aWdjX3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IGlnY190eF9xdWV1ZSAqdHhxKQ0KDQogICAgICAg IHJ0ZV9mcmVlKHR4cSk7DQoNCiB9DQoNCg0KDQotdm9pZCBldGhfaWdjX3R4X3F1ZXVlX3JlbGVh c2Uodm9pZCAqdHhxKQ0KDQordm9pZCBldGhfaWdjX3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KLSAgICAgICBpZiAodHhxKQ0K DQotICAgICAgICAgICAgICAgaWdjX3R4X3F1ZXVlX3JlbGVhc2UodHhxKTsNCg0KKyAgICAgICBp ZiAoZGV2LT5kYXRhLT50eF9xdWV1ZXNbcWlkXSkNCg0KKyAgICAgICAgICAgICAgIGlnY190eF9x dWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+dHhfcXVldWVzW3FpZF0pOw0KDQogfQ0KDQoNCg0KIHN0 YXRpYyB2b2lkDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pZ2MvaWdjX3R4cnguaCBiL2Ry aXZlcnMvbmV0L2lnYy9pZ2NfdHhyeC5oDQoNCmluZGV4IGYyYjJkNzViYmMuLjU3YmI4N2IzZTQg MTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2lnYy9pZ2NfdHhyeC5oDQoNCisrKyBiL2RyaXZl cnMvbmV0L2lnYy9pZ2NfdHhyeC5oDQoNCkBAIC0xNCw4ICsxNCw4IEBAIGV4dGVybiAiQyIgew0K DQogLyoNCg0KICAqIFJYL1RYIGZ1bmN0aW9uIHByb3RvdHlwZXMNCg0KICAqLw0KDQotdm9pZCBl dGhfaWdjX3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhxKTsNCg0KLXZvaWQgZXRoX2lnY19yeF9x dWV1ZV9yZWxlYXNlKHZvaWQgKnJ4cSk7DQoNCit2b2lkIGV0aF9pZ2NfdHhfcXVldWVfcmVsZWFz ZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKTsNCg0KK3ZvaWQgZXRoX2ln Y19yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQp Ow0KDQogdm9pZCBpZ2NfZGV2X2NsZWFyX3F1ZXVlcyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7 DQoNCiBpbnQgZXRoX2lnY19yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwg dWludDE2X3QgcnhfcXVldWVfaWQsDQoNCiAgICAgICAgICAgICAgICB1aW50MTZfdCBuYl9yeF9k ZXNjLCB1bnNpZ25lZCBpbnQgc29ja2V0X2lkLA0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv aW9uaWMvaW9uaWNfbGlmLmMgYi9kcml2ZXJzL25ldC9pb25pYy9pb25pY19saWYuYw0KDQppbmRl eCA0MzFlZGE3NzdiLi5hMWY5Y2UyZDgxIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9pb25p Yy9pb25pY19saWYuYw0KDQorKysgYi9kcml2ZXJzL25ldC9pb25pYy9pb25pY19saWYuYw0KDQpA QCAtMTA1NiwxMSArMTA1NiwxMSBAQCBpb25pY19saWZfZnJlZV9xdWV1ZXMoc3RydWN0IGlvbmlj X2xpZiAqbGlmKQ0KDQogICAgICAgIHVpbnQzMl90IGk7DQoNCg0KDQogICAgICAgIGZvciAoaSA9 IDA7IGkgPCBsaWYtPm50eHFjcXM7IGkrKykgew0KDQotICAgICAgICAgICAgICAgaW9uaWNfZGV2 X3R4X3F1ZXVlX3JlbGVhc2UobGlmLT5ldGhfZGV2LT5kYXRhLT50eF9xdWV1ZXNbaV0pOw0KDQor ICAgICAgICAgICAgICAgaW9uaWNfZGV2X3R4X3F1ZXVlX3JlbGVhc2UobGlmLT5ldGhfZGV2LCBp KTsNCg0KICAgICAgICAgICAgICAgIGxpZi0+ZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVzW2ldID0g TlVMTDsNCg0KICAgICAgICB9DQoNCiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxpZi0+bnJ4cWNx czsgaSsrKSB7DQoNCi0gICAgICAgICAgICAgICBpb25pY19kZXZfcnhfcXVldWVfcmVsZWFzZShs aWYtPmV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSk7DQoNCisgICAgICAgICAgICAgICBpb25p Y19kZXZfcnhfcXVldWVfcmVsZWFzZShsaWYtPmV0aF9kZXYsIGkpOw0KDQogICAgICAgICAgICAg ICAgbGlmLT5ldGhfZGV2LT5kYXRhLT5yeF9xdWV1ZXNbaV0gPSBOVUxMOw0KDQogICAgICAgIH0N Cg0KIH0NCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lvbmljL2lvbmljX3J4dHguYyBiL2Ry aXZlcnMvbmV0L2lvbmljL2lvbmljX3J4dHguYw0KDQppbmRleCBiODNlYTFiY2FhLi42NzYzMWE1 ODEzIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9pb25pYy9pb25pY19yeHR4LmMNCg0KKysr IGIvZHJpdmVycy9uZXQvaW9uaWMvaW9uaWNfcnh0eC5jDQoNCkBAIC0xMTgsOSArMTE4LDkgQEAg aW9uaWNfdHhfZmx1c2goc3RydWN0IGlvbmljX3R4X3FjcSAqdHhxKQ0KDQogfQ0KDQoNCg0KIHZv aWQgX19ydGVfY29sZA0KDQotaW9uaWNfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhfcXVl dWUpDQoNCitpb25pY19kZXZfdHhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl diwgdWludDE2X3QgcWlkKQ0KDQogew0KDQotICAgICAgIHN0cnVjdCBpb25pY190eF9xY3EgKnR4 cSA9IHR4X3F1ZXVlOw0KDQorICAgICAgIHN0cnVjdCBpb25pY190eF9xY3EgKnR4cSA9IGRldi0+ ZGF0YS0+dHhfcXVldWVzW3FpZF07DQoNCiAgICAgICAgc3RydWN0IGlvbmljX3R4X3N0YXRzICpz dGF0cyA9ICZ0eHEtPnN0YXRzOw0KDQoNCg0KICAgICAgICBJT05JQ19QUklOVF9DQUxMKCk7DQoN CkBAIC0xODUsOCArMTg1LDcgQEAgaW9uaWNfZGV2X3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVf ZXRoX2RldiAqZXRoX2RldiwgdWludDE2X3QgdHhfcXVldWVfaWQsDQoNCg0KDQogICAgICAgIC8q IEZyZWUgbWVtb3J5IHByaW9yIHRvIHJlLWFsbG9jYXRpb24gaWYgbmVlZGVkLi4uICovDQoNCiAg ICAgICAgaWYgKGV0aF9kZXYtPmRhdGEtPnR4X3F1ZXVlc1t0eF9xdWV1ZV9pZF0gIT0gTlVMTCkg ew0KDQotICAgICAgICAgICAgICAgdm9pZCAqdHhfcXVldWUgPSBldGhfZGV2LT5kYXRhLT50eF9x dWV1ZXNbdHhfcXVldWVfaWRdOw0KDQotICAgICAgICAgICAgICAgaW9uaWNfZGV2X3R4X3F1ZXVl X3JlbGVhc2UodHhfcXVldWUpOw0KDQorICAgICAgICAgICAgICAgaW9uaWNfZGV2X3R4X3F1ZXVl X3JlbGVhc2UoZXRoX2RldiwgdHhfcXVldWVfaWQpOw0KDQogICAgICAgICAgICAgICAgZXRoX2Rl di0+ZGF0YS0+dHhfcXVldWVzW3R4X3F1ZXVlX2lkXSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQoN Cg0KQEAgLTY2NCw5ICs2NjMsOSBAQCBpb25pY19yeF9lbXB0eShzdHJ1Y3QgaW9uaWNfcnhfcWNx ICpyeHEpDQoNCiB9DQoNCg0KDQogdm9pZCBfX3J0ZV9jb2xkDQoNCi1pb25pY19kZXZfcnhfcXVl dWVfcmVsZWFzZSh2b2lkICpyeF9xdWV1ZSkNCg0KK2lvbmljX2Rldl9yeF9xdWV1ZV9yZWxlYXNl KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoNCiB7DQoNCi0gICAgICAg c3RydWN0IGlvbmljX3J4X3FjcSAqcnhxID0gcnhfcXVldWU7DQoNCisgICAgICAgc3RydWN0IGlv bmljX3J4X3FjcSAqcnhxID0gZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcWlkXTsNCg0KICAgICAgICBz dHJ1Y3QgaW9uaWNfcnhfc3RhdHMgKnN0YXRzOw0KDQoNCg0KICAgICAgICBpZiAoIXJ4cSkNCg0K QEAgLTcyNiw4ICs3MjUsNyBAQCBpb25pY19kZXZfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9l dGhfZGV2ICpldGhfZGV2LA0KDQoNCg0KICAgICAgICAvKiBGcmVlIG1lbW9yeSBwcmlvciB0byBy ZS1hbGxvY2F0aW9uIGlmIG5lZWRlZC4uLiAqLw0KDQogICAgICAgIGlmIChldGhfZGV2LT5kYXRh LT5yeF9xdWV1ZXNbcnhfcXVldWVfaWRdICE9IE5VTEwpIHsNCg0KLSAgICAgICAgICAgICAgIHZv aWQgKnJ4X3F1ZXVlID0gZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW3J4X3F1ZXVlX2lkXTsNCg0K LSAgICAgICAgICAgICAgIGlvbmljX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHJ4X3F1ZXVlKTsNCg0K KyAgICAgICAgICAgICAgIGlvbmljX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKGV0aF9kZXYsIHJ4X3F1 ZXVlX2lkKTsNCg0KICAgICAgICAgICAgICAgIGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlc1tyeF9x dWV1ZV9pZF0gPSBOVUxMOw0KDQogICAgICAgIH0NCg0KDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9pb25pYy9pb25pY19yeHR4LmggYi9kcml2ZXJzL25ldC9pb25pYy9pb25pY19yeHR4LmgN Cg0KaW5kZXggNWM4NWI5YzQ5My4uYmVmYmU2MWNlZiAxMDA2NDQNCg0KLS0tIGEvZHJpdmVycy9u ZXQvaW9uaWMvaW9uaWNfcnh0eC5oDQoNCisrKyBiL2RyaXZlcnMvbmV0L2lvbmljL2lvbmljX3J4 dHguaA0KDQpAQCAtMjUsMTQgKzI1LDE0IEBAIHVpbnQxNl90IGlvbmljX3ByZXBfcGt0cyh2b2lk ICp0eF9xdWV1ZSwgc3RydWN0IHJ0ZV9tYnVmICoqdHhfcGt0cywNCg0KIGludCBpb25pY19kZXZf cnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHJ4X3F1ZXVl X2lkLA0KDQogICAgICAgIHVpbnQxNl90IG5iX2Rlc2MsIHVpbnQzMl90IHNvY2tldF9pZCwNCg0K ICAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYgKnJ4X2NvbmYsIHN0cnVjdCBydGVf bWVtcG9vbCAqbXApOw0KDQotdm9pZCBpb25pY19kZXZfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpy eHEpOw0KDQordm9pZCBpb25pY19kZXZfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldiwgdWludDE2X3QgcWlkKTsNCg0KIGludCBpb25pY19kZXZfcnhfcXVldWVfc3RhcnQo c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHJ4X3F1ZXVlX2lkKTsNCg0KIGludCBp b25pY19kZXZfcnhfcXVldWVfc3RvcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHVpbnQx Nl90IHJ4X3F1ZXVlX2lkKTsNCg0KDQoNCiBpbnQgaW9uaWNfZGV2X3R4X3F1ZXVlX3NldHVwKHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCB0eF9xdWV1ZV9pZCwNCg0KICAgICAgICB1 aW50MTZfdCBuYl9kZXNjLCAgdWludDMyX3Qgc29ja2V0X2lkLA0KDQogICAgICAgIGNvbnN0IHN0 cnVjdCBydGVfZXRoX3R4Y29uZiAqdHhfY29uZik7DQoNCi12b2lkIGlvbmljX2Rldl90eF9xdWV1 ZV9yZWxlYXNlKHZvaWQgKnR4X3F1ZXVlKTsNCg0KK3ZvaWQgaW9uaWNfZGV2X3R4X3F1ZXVlX3Jl bGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCk7DQoNCiBpbnQgaW9u aWNfZGV2X3R4X3F1ZXVlX3N0b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1aW50MTZf dCB0eF9xdWV1ZV9pZCk7DQoNCiBpbnQgaW9uaWNfZGV2X3R4X3F1ZXVlX3N0YXJ0KHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCB0eF9xdWV1ZV9pZCk7DQoNCg0KDQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvaXBuM2tlL2lwbjNrZV9yZXByZXNlbnRvci5jIGIvZHJpdmVycy9uZXQv aXBuM2tlL2lwbjNrZV9yZXByZXNlbnRvci5jDQoNCmluZGV4IDU4OWQ5ZmE1ODcuLjY5NDQzNWE0 YWUgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2lwbjNrZS9pcG4za2VfcmVwcmVzZW50b3Iu Yw0KDQorKysgYi9kcml2ZXJzL25ldC9pcG4za2UvaXBuM2tlX3JlcHJlc2VudG9yLmMNCg0KQEAg LTI4OCwxMSArMjg4LDYgQEAgaXBuM2tlX3Jwc3RfcnhfcXVldWVfc2V0dXAoX19ydGVfdW51c2Vk IHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KDQogICAgICAgIHJldHVybiAwOw0KDQogfQ0KDQoN Cg0KLXN0YXRpYyB2b2lkDQoNCi1pcG4za2VfcnBzdF9yeF9xdWV1ZV9yZWxlYXNlKF9fcnRlX3Vu dXNlZCB2b2lkICpyeHEpDQoNCi17DQoNCi19DQoNCi0NCg0KIHN0YXRpYyBpbnQNCg0KIGlwbjNr ZV9ycHN0X3R4X3F1ZXVlX3NldHVwKF9fcnRlX3VudXNlZCBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl diwNCg0KICAgICAgICBfX3J0ZV91bnVzZWQgdWludDE2X3QgcXVldWVfaWR4LCBfX3J0ZV91bnVz ZWQgdWludDE2X3QgbmJfZGVzYywNCg0KQEAgLTMwMiwxMSArMjk3LDYgQEAgaXBuM2tlX3Jwc3Rf dHhfcXVldWVfc2V0dXAoX19ydGVfdW51c2VkIHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KDQog ICAgICAgIHJldHVybiAwOw0KDQogfQ0KDQoNCg0KLXN0YXRpYyB2b2lkDQoNCi1pcG4za2VfcnBz dF90eF9xdWV1ZV9yZWxlYXNlKF9fcnRlX3VudXNlZCB2b2lkICp0eHEpDQoNCi17DQoNCi19DQoN Ci0NCg0KIC8qIFN0YXRpc3RpY3MgY29sbGVjdGVkIGJ5IGVhY2ggcG9ydCwgVlNJLCBWRUIsIGFu ZCBTLWNoYW5uZWwgKi8NCg0KIHN0cnVjdCBpcG4za2VfcnBzdF9ldGhfc3RhdHMgew0KDQogICAg ICAgIHVpbnQ2NF90IHR4X2J5dGVzOyAgICAgICAgICAgICAgIC8qIGdvdGMgKi8NCg0KQEAgLTI4 NjUsOSArMjg1NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRoX2Rldl9vcHMgaXBuM2tlX3Jw c3RfZGV2X29wcyA9IHsNCg0KICAgICAgICAudHhfcXVldWVfc3RhcnQgICAgICAgPSBpcG4za2Vf cnBzdF90eF9xdWV1ZV9zdGFydCwNCg0KICAgICAgICAudHhfcXVldWVfc3RvcCAgICAgICAgPSBp cG4za2VfcnBzdF90eF9xdWV1ZV9zdG9wLA0KDQogICAgICAgIC5yeF9xdWV1ZV9zZXR1cCAgICAg ICA9IGlwbjNrZV9ycHN0X3J4X3F1ZXVlX3NldHVwLA0KDQotICAgICAgIC5yeF9xdWV1ZV9yZWxl YXNlICAgICA9IGlwbjNrZV9ycHN0X3J4X3F1ZXVlX3JlbGVhc2UsDQoNCiAgICAgICAgLnR4X3F1 ZXVlX3NldHVwICAgICAgID0gaXBuM2tlX3Jwc3RfdHhfcXVldWVfc2V0dXAsDQoNCi0gICAgICAg LnR4X3F1ZXVlX3JlbGVhc2UgICAgID0gaXBuM2tlX3Jwc3RfdHhfcXVldWVfcmVsZWFzZSwNCg0K DQoNCiAgICAgICAgLmRldl9zZXRfbGlua191cCAgICAgID0gaXBuM2tlX3Jwc3RfZGV2X3NldF9s aW5rX3VwLA0KDQogICAgICAgIC5kZXZfc2V0X2xpbmtfZG93biAgICA9IGlwbjNrZV9ycHN0X2Rl dl9zZXRfbGlua19kb3duLA0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVf ZXRoZGV2LmggYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuaA0KDQppbmRleCBhMGNl MThjYTI0Li4yNWFkMTRkMDg0IDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9peGdiZS9peGdi ZV9ldGhkZXYuaA0KDQorKysgYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuaA0KDQpA QCAtNTg5LDkgKzU4OSw5IEBAIHZvaWQgaXhnYmVfZGV2X2NsZWFyX3F1ZXVlcyhzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldik7DQoNCg0KDQogdm9pZCBpeGdiZV9kZXZfZnJlZV9xdWV1ZXMoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KDQoNCg0KLXZvaWQgaXhnYmVfZGV2X3J4X3F1ZXVlX3JlbGVh c2Uodm9pZCAqcnhxKTsNCg0KK3ZvaWQgaXhnYmVfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCk7DQoNCg0KDQotdm9pZCBpeGdiZV9kZXZf dHhfcXVldWVfcmVsZWFzZSh2b2lkICp0eHEpOw0KDQordm9pZCBpeGdiZV9kZXZfdHhfcXVldWVf cmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKTsNCg0KDQoNCiBp bnQgIGl4Z2JlX2Rldl9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWlu dDE2X3QgcnhfcXVldWVfaWQsDQoNCiAgICAgICAgICAgICAgICB1aW50MTZfdCBuYl9yeF9kZXNj LCB1bnNpZ25lZCBpbnQgc29ja2V0X2lkLA0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXhn YmUvaXhnYmVfcnh0eC5jIGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jDQoNCmluZGV4 IGJmZGZkNWU3NTUuLjE3NmRhYWZmOWQgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2l4Z2Jl L2l4Z2JlX3J4dHguYw0KDQorKysgYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMNCg0K QEAgLTI0ODcsOSArMjQ4Nyw5IEBAIGl4Z2JlX3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IGl4Z2Jl X3R4X3F1ZXVlICp0eHEpDQoNCiB9DQoNCg0KDQogdm9pZCBfX3J0ZV9jb2xkDQoNCi1peGdiZV9k ZXZfdHhfcXVldWVfcmVsZWFzZSh2b2lkICp0eHEpDQoNCitpeGdiZV9kZXZfdHhfcXVldWVfcmVs ZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKQ0KDQogew0KDQotICAg ICAgIGl4Z2JlX3R4X3F1ZXVlX3JlbGVhc2UodHhxKTsNCg0KKyAgICAgICBpeGdiZV90eF9xdWV1 ZV9yZWxlYXNlKGRldi0+ZGF0YS0+dHhfcXVldWVzW3FpZF0pOw0KDQogfQ0KDQoNCg0KIC8qIChS ZSlzZXQgZHluYW1pYyBpeGdiZV90eF9xdWV1ZSBmaWVsZHMgdG8gZGVmYXVsdHMgKi8NCg0KQEAg LTI4OTIsOSArMjg5Miw5IEBAIGl4Z2JlX3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IGl4Z2JlX3J4 X3F1ZXVlICpyeHEpDQoNCiB9DQoNCg0KDQogdm9pZCBfX3J0ZV9jb2xkDQoNCi1peGdiZV9kZXZf cnhfcXVldWVfcmVsZWFzZSh2b2lkICpyeHEpDQoNCitpeGdiZV9kZXZfcnhfcXVldWVfcmVsZWFz ZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKQ0KDQogew0KDQotICAgICAg IGl4Z2JlX3J4X3F1ZXVlX3JlbGVhc2UocnhxKTsNCg0KKyAgICAgICBpeGdiZV9yeF9xdWV1ZV9y ZWxlYXNlKGRldi0+ZGF0YS0+cnhfcXVldWVzW3FpZF0pOw0KDQogfQ0KDQoNCg0KIC8qDQoNCkBA IC0zNDMxLDE0ICszNDMxLDE0IEBAIGl4Z2JlX2Rldl9mcmVlX3F1ZXVlcyhzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldikNCg0KICAgICAgICBQTURfSU5JVF9GVU5DX1RSQUNFKCk7DQoNCg0KDQogICAg ICAgIGZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlczsgaSsrKSB7DQoNCi0g ICAgICAgICAgICAgICBpeGdiZV9kZXZfcnhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEtPnJ4X3F1 ZXVlc1tpXSk7DQoNCisgICAgICAgICAgICAgICBpeGdiZV9kZXZfcnhfcXVldWVfcmVsZWFzZShk ZXYsIGkpOw0KDQogICAgICAgICAgICAgICAgZGV2LT5kYXRhLT5yeF9xdWV1ZXNbaV0gPSBOVUxM Ow0KDQogICAgICAgICAgICAgICAgcnRlX2V0aF9kbWFfem9uZV9mcmVlKGRldiwgInJ4X3Jpbmci LCBpKTsNCg0KICAgICAgICB9DQoNCiAgICAgICAgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXMgPSAw Ow0KDQoNCg0KICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXM7 IGkrKykgew0KDQotICAgICAgICAgICAgICAgaXhnYmVfZGV2X3R4X3F1ZXVlX3JlbGVhc2UoZGV2 LT5kYXRhLT50eF9xdWV1ZXNbaV0pOw0KDQorICAgICAgICAgICAgICAgaXhnYmVfZGV2X3R4X3F1 ZXVlX3JlbGVhc2UoZGV2LCBpKTsNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+dHhfcXVl dWVzW2ldID0gTlVMTDsNCg0KICAgICAgICAgICAgICAgIHJ0ZV9ldGhfZG1hX3pvbmVfZnJlZShk ZXYsICJ0eF9yaW5nIiwgaSk7DQoNCiAgICAgICAgfQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQva25pL3J0ZV9ldGhfa25pLmMgYi9kcml2ZXJzL25ldC9rbmkvcnRlX2V0aF9rbmkuYw0KDQpp bmRleCA4NzFkMTFjNDEzLi5jYjlmN2M4ZTgyIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9r bmkvcnRlX2V0aF9rbmkuYw0KDQorKysgYi9kcml2ZXJzL25ldC9rbmkvcnRlX2V0aF9rbmkuYw0K DQpAQCAtMjg0LDExICsyODQsNiBAQCBldGhfa25pX3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2LA0KDQogICAgICAgIHJldHVybiAwOw0KDQogfQ0KDQoNCg0KLXN0YXRpYyB2 b2lkDQoNCi1ldGhfa25pX3F1ZXVlX3JlbGVhc2Uodm9pZCAqcSBfX3J0ZV91bnVzZWQpDQoNCi17 DQoNCi19DQoNCi0NCg0KIHN0YXRpYyBpbnQNCg0KIGV0aF9rbmlfbGlua191cGRhdGUoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYgX19ydGVfdW51c2VkLA0KDQogICAgICAgICAgICAgICAgaW50IHdh aXRfdG9fY29tcGxldGUgX19ydGVfdW51c2VkKQ0KDQpAQCAtMzYyLDggKzM1Nyw2IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZXRoX2Rldl9vcHMgZXRoX2tuaV9vcHMgPSB7DQoNCiAgICAgICAgLmRl dl9pbmZvc19nZXQgPSBldGhfa25pX2Rldl9pbmZvLA0KDQogICAgICAgIC5yeF9xdWV1ZV9zZXR1 cCA9IGV0aF9rbmlfcnhfcXVldWVfc2V0dXAsDQoNCiAgICAgICAgLnR4X3F1ZXVlX3NldHVwID0g ZXRoX2tuaV90eF9xdWV1ZV9zZXR1cCwNCg0KLSAgICAgICAucnhfcXVldWVfcmVsZWFzZSA9IGV0 aF9rbmlfcXVldWVfcmVsZWFzZSwNCg0KLSAgICAgICAudHhfcXVldWVfcmVsZWFzZSA9IGV0aF9r bmlfcXVldWVfcmVsZWFzZSwNCg0KICAgICAgICAubGlua191cGRhdGUgPSBldGhfa25pX2xpbmtf dXBkYXRlLA0KDQogICAgICAgIC5zdGF0c19nZXQgPSBldGhfa25pX3N0YXRzX2dldCwNCg0KICAg ICAgICAuc3RhdHNfcmVzZXQgPSBldGhfa25pX3N0YXRzX3Jlc2V0LA0KDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvbGlxdWlkaW8vbGlvX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvbGlxdWlkaW8v bGlvX2V0aGRldi5jDQoNCmluZGV4IGI3MjA2MGE0NDkuLmIyZDgzMzk2ZjkgMTAwNjQ0DQoNCi0t LSBhL2RyaXZlcnMvbmV0L2xpcXVpZGlvL2xpb19ldGhkZXYuYw0KDQorKysgYi9kcml2ZXJzL25l dC9saXF1aWRpby9saW9fZXRoZGV2LmMNCg0KQEAgLTExODIsNyArMTE4Miw3IEBAIGxpb19kZXZf cnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1aW50MTZfdCBxX25v LA0KDQoNCg0KICAgICAgICAvKiBGcmVlIHByZXZpb3VzIGFsbG9jYXRpb24gaWYgYW55ICovDQoN CiAgICAgICAgaWYgKGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlc1txX25vXSAhPSBOVUxMKSB7DQoN Ci0gICAgICAgICAgICAgICBsaW9fZGV2X3J4X3F1ZXVlX3JlbGVhc2UoZXRoX2Rldi0+ZGF0YS0+ cnhfcXVldWVzW3Ffbm9dKTsNCg0KKyAgICAgICAgICAgICAgIGxpb19kZXZfcnhfcXVldWVfcmVs ZWFzZShldGhfZGV2LCBxX25vKTsNCg0KICAgICAgICAgICAgICAgIGV0aF9kZXYtPmRhdGEtPnJ4 X3F1ZXVlc1txX25vXSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQoNCg0KQEAgLTEyMDQsMTYgKzEy MDQsMTggQEAgbGlvX2Rldl9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9k ZXYsIHVpbnQxNl90IHFfbm8sDQoNCiAgKiBSZWxlYXNlIHRoZSByZWNlaXZlIHF1ZXVlL3Jpbmdi dWZmZXIuIENhbGxlZCBieQ0KDQogICogdGhlIHVwcGVyIGxheWVycy4NCg0KICAqDQoNCi0gKiBA cGFyYW0gcnhxDQoNCi0gKiAgICBPcGFxdWUgcG9pbnRlciB0byB0aGUgcmVjZWl2ZSBxdWV1ZSB0 byByZWxlYXNlDQoNCisgKiBAcGFyYW0gZXRoX2Rldg0KDQorICogICAgUG9pbnRlciB0byB0aGUg c3RydWN0dXJlIHJ0ZV9ldGhfZGV2DQoNCisgKiBAcGFyYW0gcV9ubw0KDQorICogICAgUXVldWUg bnVtYmVyDQoNCiAgKg0KDQogICogQHJldHVybg0KDQogICogICAgLSBub3RoaW5nDQoNCiAgKi8N Cg0KIHZvaWQNCg0KLWxpb19kZXZfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpyeHEpDQoNCitsaW9f ZGV2X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFf bm8pDQoNCiB7DQoNCi0gICAgICAgc3RydWN0IGxpb19kcm9xICpkcm9xID0gcnhxOw0KDQorICAg ICAgIHN0cnVjdCBsaW9fZHJvcSAqZHJvcSA9IGRldi0+ZGF0YS0+cnhfcXVldWVzW3Ffbm9dOw0K DQogICAgICAgIGludCBvcV9ubzsNCg0KDQoNCiAgICAgICAgaWYgKGRyb3EpIHsNCg0KQEAgLTEy NjIsNyArMTI2NCw3IEBAIGxpb19kZXZfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpldGhfZGV2LCB1aW50MTZfdCBxX25vLA0KDQoNCg0KICAgICAgICAvKiBGcmVlIHByZXZpb3Vz IGFsbG9jYXRpb24gaWYgYW55ICovDQoNCiAgICAgICAgaWYgKGV0aF9kZXYtPmRhdGEtPnR4X3F1 ZXVlc1txX25vXSAhPSBOVUxMKSB7DQoNCi0gICAgICAgICAgICAgICBsaW9fZGV2X3R4X3F1ZXVl X3JlbGVhc2UoZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVzW3Ffbm9dKTsNCg0KKyAgICAgICAgICAg ICAgIGxpb19kZXZfdHhfcXVldWVfcmVsZWFzZShldGhfZGV2LCBxX25vKTsNCg0KICAgICAgICAg ICAgICAgIGV0aF9kZXYtPmRhdGEtPnR4X3F1ZXVlc1txX25vXSA9IE5VTEw7DQoNCiAgICAgICAg fQ0KDQoNCg0KQEAgLTEyOTIsMTYgKzEyOTQsMTggQEAgbGlvX2Rldl90eF9xdWV1ZV9zZXR1cChz dHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHVpbnQxNl90IHFfbm8sDQoNCiAgKiBSZWxlYXNl IHRoZSB0cmFuc21pdCBxdWV1ZS9yaW5nYnVmZmVyLiBDYWxsZWQgYnkNCg0KICAqIHRoZSB1cHBl ciBsYXllcnMuDQoNCiAgKg0KDQotICogQHBhcmFtIHR4cQ0KDQotICogICAgT3BhcXVlIHBvaW50 ZXIgdG8gdGhlIHRyYW5zbWl0IHF1ZXVlIHRvIHJlbGVhc2UNCg0KKyAqIEBwYXJhbSBldGhfZGV2 DQoNCisgKiAgICBQb2ludGVyIHRvIHRoZSBzdHJ1Y3R1cmUgcnRlX2V0aF9kZXYNCg0KKyAqIEBw YXJhbSBxX25vDQoNCisgKiAgICBRdWV1ZSBudW1iZXINCg0KICAqDQoNCiAgKiBAcmV0dXJuDQoN CiAgKiAgICAtIG5vdGhpbmcNCg0KICAqLw0KDQogdm9pZA0KDQotbGlvX2Rldl90eF9xdWV1ZV9y ZWxlYXNlKHZvaWQgKnR4cSkNCg0KK2xpb19kZXZfdHhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwgdWludDE2X3QgcV9ubykNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3QgbGlv X2luc3RyX3F1ZXVlICp0cSA9IHR4cTsNCg0KKyAgICAgICBzdHJ1Y3QgbGlvX2luc3RyX3F1ZXVl ICp0cSA9IGRldi0+ZGF0YS0+dHhfcXVldWVzW3Ffbm9dOw0KDQogICAgICAgIHVpbnQzMl90IGZ3 X21hcHBlZF9pcV9ubzsNCg0KDQoNCg0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbGlxdWlk aW8vbGlvX2V0aGRldi5oIGIvZHJpdmVycy9uZXQvbGlxdWlkaW8vbGlvX2V0aGRldi5oDQoNCmlu ZGV4IGQzM2JlMWM0NGQuLmVjZTJiMDM4NTggMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L2xp cXVpZGlvL2xpb19ldGhkZXYuaA0KDQorKysgYi9kcml2ZXJzL25ldC9saXF1aWRpby9saW9fZXRo ZGV2LmgNCg0KQEAgLTE3Miw4ICsxNzIsOCBAQCBzdHJ1Y3QgbGlvX3Jzc19zZXQgew0KDQogICAg ICAgIHVpbnQ4X3Qga2V5W0xJT19SU1NfTUFYX0tFWV9TWl07DQoNCiB9Ow0KDQoNCg0KLXZvaWQg bGlvX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnJ4cSk7DQoNCit2b2lkIGxpb19kZXZfcnhf cXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcV9ubyk7DQoN Cg0KDQotdm9pZCBsaW9fZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhxKTsNCg0KK3ZvaWQg bGlvX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZf dCBxX25vKTsNCg0KDQoNCiAjZW5kaWYgLyogX0xJT19FVEhERVZfSF8gKi8NCg0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2xpcXVpZGlvL2xpb19yeHR4LmMgYi9kcml2ZXJzL25ldC9saXF1aWRp by9saW9fcnh0eC5jDQoNCmluZGV4IGEwNjdiNjBlNDcuLjYxNmFiZWMwNzAgMTAwNjQ0DQoNCi0t LSBhL2RyaXZlcnMvbmV0L2xpcXVpZGlvL2xpb19yeHR4LmMNCg0KKysrIGIvZHJpdmVycy9uZXQv bGlxdWlkaW8vbGlvX3J4dHguYw0KDQpAQCAtMTc5MSw3ICsxNzkxLDcgQEAgbGlvX2Rldl9jbGVh cl9xdWV1ZXMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQ0KDQogICAgICAgIGZvciAoaSA9 IDA7IGkgPCBldGhfZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXM7IGkrKykgew0KDQogICAgICAgICAg ICAgICAgdHhxID0gZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVzW2ldOw0KDQogICAgICAgICAgICAg ICAgaWYgKHR4cSAhPSBOVUxMKSB7DQoNCi0gICAgICAgICAgICAgICAgICAgICAgIGxpb19kZXZf dHhfcXVldWVfcmVsZWFzZSh0eHEpOw0KDQorICAgICAgICAgICAgICAgICAgICAgICBsaW9fZGV2 X3R4X3F1ZXVlX3JlbGVhc2UoZXRoX2RldiwgaSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAg IGV0aF9kZXYtPmRhdGEtPnR4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCiAgICAgICAgICAgICAgICB9 DQoNCiAgICAgICAgfQ0KDQpAQCAtMTc5OSw3ICsxNzk5LDcgQEAgbGlvX2Rldl9jbGVhcl9xdWV1 ZXMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQ0KDQogICAgICAgIGZvciAoaSA9IDA7IGkg PCBldGhfZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7IGkrKykgew0KDQogICAgICAgICAgICAgICAg cnhxID0gZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW2ldOw0KDQogICAgICAgICAgICAgICAgaWYg KHJ4cSAhPSBOVUxMKSB7DQoNCi0gICAgICAgICAgICAgICAgICAgICAgIGxpb19kZXZfcnhfcXVl dWVfcmVsZWFzZShyeHEpOw0KDQorICAgICAgICAgICAgICAgICAgICAgICBsaW9fZGV2X3J4X3F1 ZXVlX3JlbGVhc2UoZXRoX2RldiwgaSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGV0aF9k ZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCiAgICAgICAgICAgICAgICB9DQoNCiAg ICAgICAgfQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWVtaWYvcnRlX2V0aF9tZW1pZi5j IGIvZHJpdmVycy9uZXQvbWVtaWYvcnRlX2V0aF9tZW1pZi5jDQoNCmluZGV4IGRlNmJlY2Q0NWUu LjdlMDkzZTY1ZDggMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L21lbWlmL3J0ZV9ldGhfbWVt aWYuYw0KDQorKysgYi9kcml2ZXJzL25ldC9tZW1pZi9ydGVfZXRoX21lbWlmLmMNCg0KQEAgLTEy NTUsOSArMTI1NSw5IEBAIG1lbWlmX2Rldl9jbG9zZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikN Cg0KICAgICAgICAgICAgICAgIG1lbWlmX2Rpc2Nvbm5lY3QoZGV2KTsNCg0KDQoNCiAgICAgICAg ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7IGkrKykNCg0K LSAgICAgICAgICAgICAgICAgICAgICAgKCpkZXYtPmRldl9vcHMtPnJ4X3F1ZXVlX3JlbGVhc2Up KGRldi0+ZGF0YS0+cnhfcXVldWVzW2ldKTsNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgKCpk ZXYtPmRldl9vcHMtPnJ4X3F1ZXVlX3JlbGVhc2UpKGRldiwgaSk7DQoNCiAgICAgICAgICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXM7IGkrKykNCg0KLSAgICAg ICAgICAgICAgICAgICAgICAgKCpkZXYtPmRldl9vcHMtPnR4X3F1ZXVlX3JlbGVhc2UpKGRldi0+ ZGF0YS0+dHhfcXVldWVzW2ldKTsNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgKCpkZXYtPmRl dl9vcHMtPnR4X3F1ZXVlX3JlbGVhc2UpKGRldiwgaSk7DQoNCg0KDQogICAgICAgICAgICAgICAg bWVtaWZfc29ja2V0X3JlbW92ZV9kZXZpY2UoZGV2KTsNCg0KICAgICAgICB9IGVsc2Ugew0KDQpA QCAtMTM0OSw5ICsxMzQ5LDIwIEBAIG1lbWlmX3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRo X2RldiAqZGV2LA0KDQogfQ0KDQoNCg0KIHN0YXRpYyB2b2lkDQoNCi1tZW1pZl9xdWV1ZV9yZWxl YXNlKHZvaWQgKnF1ZXVlKQ0KDQorbWVtaWZfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKQ0KDQogew0KDQotICAgICAgIHN0cnVjdCBtZW1pZl9x dWV1ZSAqbXEgPSAoc3RydWN0IG1lbWlmX3F1ZXVlICopcXVldWU7DQoNCisgICAgICAgc3RydWN0 IG1lbWlmX3F1ZXVlICptcSA9IGRldi0+ZGF0YS0+cnhfcXVldWVzW3FpZF07DQoNCisNCg0KKyAg ICAgICBpZiAoIW1xKQ0KDQorICAgICAgICAgICAgICAgcmV0dXJuOw0KDQorDQoNCisgICAgICAg cnRlX2ZyZWUobXEpOw0KDQorfQ0KDQorDQoNCitzdGF0aWMgdm9pZA0KDQorbWVtaWZfdHhfcXVl dWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKQ0KDQorew0K DQorICAgICAgIHN0cnVjdCBtZW1pZl9xdWV1ZSAqbXEgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1tx aWRdOw0KDQoNCg0KICAgICAgICBpZiAoIW1xKQ0KDQogICAgICAgICAgICAgICAgcmV0dXJuOw0K DQpAQCAtMTQ2OCw4ICsxNDc5LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBldGhfZGV2X29wcyBv cHMgPSB7DQoNCiAgICAgICAgLmRldl9jb25maWd1cmUgPSBtZW1pZl9kZXZfY29uZmlndXJlLA0K DQogICAgICAgIC50eF9xdWV1ZV9zZXR1cCA9IG1lbWlmX3R4X3F1ZXVlX3NldHVwLA0KDQogICAg ICAgIC5yeF9xdWV1ZV9zZXR1cCA9IG1lbWlmX3J4X3F1ZXVlX3NldHVwLA0KDQotICAgICAgIC5y eF9xdWV1ZV9yZWxlYXNlID0gbWVtaWZfcXVldWVfcmVsZWFzZSwNCg0KLSAgICAgICAudHhfcXVl dWVfcmVsZWFzZSA9IG1lbWlmX3F1ZXVlX3JlbGVhc2UsDQoNCisgICAgICAgLnJ4X3F1ZXVlX3Jl bGVhc2UgPSBtZW1pZl9yeF9xdWV1ZV9yZWxlYXNlLA0KDQorICAgICAgIC50eF9xdWV1ZV9yZWxl YXNlID0gbWVtaWZfdHhfcXVldWVfcmVsZWFzZSwNCg0KICAgICAgICAucnhfcXVldWVfaW50cl9l bmFibGUgPSBtZW1pZl9yeF9xdWV1ZV9pbnRyX2VuYWJsZSwNCg0KICAgICAgICAucnhfcXVldWVf aW50cl9kaXNhYmxlID0gbWVtaWZfcnhfcXVldWVfaW50cl9kaXNhYmxlLA0KDQogICAgICAgIC5s aW5rX3VwZGF0ZSA9IG1lbWlmX2xpbmtfdXBkYXRlLA0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvbWx4NC9tbHg0LmMgYi9kcml2ZXJzL25ldC9tbHg0L21seDQuYw0KDQppbmRleCA3ZjlmMzAw YzZjLi5mN2ZlODMxZDYxIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9tbHg0L21seDQuYw0K DQorKysgYi9kcml2ZXJzL25ldC9tbHg0L21seDQuYw0KDQpAQCAtMzkxLDkgKzM5MSw5IEBAIG1s eDRfZGV2X2Nsb3NlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KDQogICAgICAgIG1seDRfZmxv d19jbGVhbihwcml2KTsNCg0KICAgICAgICBtbHg0X3Jzc19kZWluaXQocHJpdik7DQoNCiAgICAg ICAgZm9yIChpID0gMDsgaSAhPSBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlczsgKytpKQ0KDQotICAg ICAgICAgICAgICAgbWx4NF9yeF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+cnhfcXVldWVzW2ld KTsNCg0KKyAgICAgICAgICAgICAgIG1seDRfcnhfcXVldWVfcmVsZWFzZShkZXYsIGkpOw0KDQog ICAgICAgIGZvciAoaSA9IDA7IGkgIT0gZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXM7ICsraSkNCg0K LSAgICAgICAgICAgICAgIG1seDRfdHhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEtPnR4X3F1ZXVl c1tpXSk7DQoNCisgICAgICAgICAgICAgICBtbHg0X3R4X3F1ZXVlX3JlbGVhc2UoZGV2LCBpKTsN Cg0KICAgICAgICBtbHg0X3Byb2NfcHJpdl91bmluaXQoZGV2KTsNCg0KICAgICAgICBtbHg0X21y X3JlbGVhc2UoZGV2KTsNCg0KICAgICAgICBpZiAocHJpdi0+cGQgIT0gTlVMTCkgew0KDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4cS5jIGIvZHJpdmVycy9uZXQvbWx4NC9t bHg0X3J4cS5jDQoNCmluZGV4IDk3OGNiYjgyMDEuLjM3YWU3MDc2MzkgMTAwNjQ0DQoNCi0tLSBh L2RyaXZlcnMvbmV0L21seDQvbWx4NF9yeHEuYw0KDQorKysgYi9kcml2ZXJzL25ldC9tbHg0L21s eDRfcnhxLmMNCg0KQEAgLTgyNiw2ICs4MjYsNyBAQCBtbHg0X3J4X3F1ZXVlX3NldHVwKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBpZHgsIHVpbnQxNl90IGRlc2MsDQoNCiAgICAg ICAgICAgICAgICB9LA0KDQogICAgICAgICAgICAgICAgLnNvY2tldCA9IHNvY2tldCwNCg0KICAg ICAgICB9Ow0KDQorICAgICAgIGRldi0+ZGF0YS0+cnhfcXVldWVzW2lkeF0gPSByeHE7DQoNCiAg ICAgICAgLyogRW5hYmxlIHNjYXR0ZXJlZCBwYWNrZXRzIHN1cHBvcnQgZm9yIHRoaXMgcXVldWUg aWYgbmVjZXNzYXJ5LiAqLw0KDQogICAgICAgIE1MWDRfQVNTRVJUKG1iX2xlbiA+PSBSVEVfUEtU TUJVRl9IRUFEUk9PTSk7DQoNCiAgICAgICAgaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2Rl Lm1heF9yeF9wa3RfbGVuIDw9DQoNCkBAIC04OTYsMTIgKzg5NywxMCBAQCBtbHg0X3J4X3F1ZXVl X3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBpZHgsIHVpbnQxNl90IGRl c2MsDQoNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgfQ0KDQogICAgICAgIERFQlVHKCIl cDogYWRkaW5nIFJ4IHF1ZXVlICVwIHRvIGxpc3QiLCAodm9pZCAqKWRldiwgKHZvaWQgKilyeHEp Ow0KDQotICAgICAgIGRldi0+ZGF0YS0+cnhfcXVldWVzW2lkeF0gPSByeHE7DQoNCiAgICAgICAg cmV0dXJuIDA7DQoNCiBlcnJvcjoNCg0KLSAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpZHhd ID0gTlVMTDsNCg0KICAgICAgICByZXQgPSBydGVfZXJybm87DQoNCi0gICAgICAgbWx4NF9yeF9x dWV1ZV9yZWxlYXNlKHJ4cSk7DQoNCisgICAgICAgbWx4NF9yeF9xdWV1ZV9yZWxlYXNlKGRldiwg aWR4KTsNCg0KICAgICAgICBydGVfZXJybm8gPSByZXQ7DQoNCiAgICAgICAgTUxYNF9BU1NFUlQo cnRlX2Vycm5vID4gMCk7DQoNCiAgICAgICAgcmV0dXJuIC1ydGVfZXJybm87DQoNCkBAIC05MTAs MjYgKzkwOSwyMCBAQCBtbHg0X3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LCB1aW50MTZfdCBpZHgsIHVpbnQxNl90IGRlc2MsDQoNCiAvKioNCg0KICAqIERQREsgY2FsbGJh Y2sgdG8gcmVsZWFzZSBhIFJ4IHF1ZXVlLg0KDQogICoNCg0KLSAqIEBwYXJhbSBkcGRrX3J4cQ0K DQotICogICBHZW5lcmljIFJ4IHF1ZXVlIHBvaW50ZXIuDQoNCisgKiBAcGFyYW0gZGV2DQoNCisg KiAgIFBvaW50ZXIgdG8gRXRoZXJuZXQgZGV2aWNlIHN0cnVjdHVyZS4NCg0KKyAqIEBwYXJhbSBp ZHgNCg0KKyAqICAgUnggcXVldWUgaW5kZXguDQoNCiAgKi8NCg0KIHZvaWQNCg0KLW1seDRfcnhf cXVldWVfcmVsZWFzZSh2b2lkICpkcGRrX3J4cSkNCg0KK21seDRfcnhfcXVldWVfcmVsZWFzZShz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgaWR4KQ0KDQogew0KDQotICAgICAgIHN0 cnVjdCByeHEgKnJ4cSA9IChzdHJ1Y3QgcnhxICopZHBka19yeHE7DQoNCi0gICAgICAgc3RydWN0 IG1seDRfcHJpdiAqcHJpdjsNCg0KLSAgICAgICB1bnNpZ25lZCBpbnQgaTsNCg0KKyAgICAgICBz dHJ1Y3QgcnhxICpyeHEgPSBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpZHhdOw0KDQoNCg0KICAgICAg ICBpZiAocnhxID09IE5VTEwpDQoNCiAgICAgICAgICAgICAgICByZXR1cm47DQoNCi0gICAgICAg cHJpdiA9IHJ4cS0+cHJpdjsNCg0KLSAgICAgICBmb3IgKGkgPSAwOyBpICE9IEVUSF9ERVYocHJp diktPmRhdGEtPm5iX3J4X3F1ZXVlczsgKytpKQ0KDQotICAgICAgICAgICAgICAgaWYgKEVUSF9E RVYocHJpdiktPmRhdGEtPnJ4X3F1ZXVlc1tpXSA9PSByeHEpIHsNCg0KLSAgICAgICAgICAgICAg ICAgICAgICAgREVCVUcoIiVwOiByZW1vdmluZyBSeCBxdWV1ZSAlcCBmcm9tIGxpc3QiLA0KDQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKUVUSF9ERVYocHJpdiksICh2b2lk ICopcnhxKTsNCg0KLSAgICAgICAgICAgICAgICAgICAgICAgRVRIX0RFVihwcml2KS0+ZGF0YS0+ cnhfcXVldWVzW2ldID0gTlVMTDsNCg0KLSAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoN Ci0gICAgICAgICAgICAgICB9DQoNCisgICAgICAgZGV2LT5kYXRhLT5yeF9xdWV1ZXNbaWR4XSA9 IE5VTEw7DQoNCisgICAgICAgREVCVUcoIiVwOiByZW1vdmluZyBSeCBxdWV1ZSAlaHUgZnJvbSBs aXN0IiwgKHZvaWQgKilkZXYsIGlkeCk7DQoNCiAgICAgICAgTUxYNF9BU1NFUlQoIXJ4cS0+Y3Ep Ow0KDQogICAgICAgIE1MWDRfQVNTRVJUKCFyeHEtPndxKTsNCg0KICAgICAgICBNTFg0X0FTU0VS VCghcnhxLT53cWVzKTsNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDQvbWx4NF9yeHR4 LmggYi9kcml2ZXJzL25ldC9tbHg0L21seDRfcnh0eC5oDQoNCmluZGV4IGM4MzhhZmMyNDIuLjgz ZTk1MzRjZDAgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L21seDQvbWx4NF9yeHR4LmgNCg0K KysrIGIvZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4dHguaA0KDQpAQCAtMTQxLDcgKzE0MSw3IEBA IGludCBtbHg0X3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZf dCBpZHgsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IGRlc2MsIHVuc2lnbmVk IGludCBzb2NrZXQsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBydGVf ZXRoX3J4Y29uZiAqY29uZiwNCg0KICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9t ZW1wb29sICptcCk7DQoNCi12b2lkIG1seDRfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpkcGRrX3J4 cSk7DQoNCit2b2lkIG1seDRfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl diwgdWludDE2X3QgaWR4KTsNCg0KDQoNCiAvKiBtbHg0X3J4dHguYyAqLw0KDQoNCg0KQEAgLTE2 Miw3ICsxNjIsNyBAQCB1aW50NjRfdCBtbHg0X2dldF90eF9wb3J0X29mZmxvYWRzKHN0cnVjdCBt bHg0X3ByaXYgKnByaXYpOw0KDQogaW50IG1seDRfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsIHVpbnQxNl90IGlkeCwNCg0KICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDE2X3QgZGVzYywgdW5zaWduZWQgaW50IHNvY2tldCwNCg0KICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfdHhjb25mICpjb25mKTsNCg0KLXZvaWQgbWx4NF90eF9x dWV1ZV9yZWxlYXNlKHZvaWQgKmRwZGtfdHhxKTsNCg0KK3ZvaWQgbWx4NF90eF9xdWV1ZV9yZWxl YXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBpZHgpOw0KDQoNCg0KIC8qIG1s eDRfbXIuYyAqLw0KDQoNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDQvbWx4NF90eHEu YyBiL2RyaXZlcnMvbmV0L21seDQvbWx4NF90eHEuYw0KDQppbmRleCAyZGYyNjg0MmZiLi5jOGRh Njg2ZWNlIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9tbHg0L21seDRfdHhxLmMNCg0KKysr IGIvZHJpdmVycy9uZXQvbWx4NC9tbHg0X3R4cS5jDQoNCkBAIC00MDQsNiArNDA0LDcgQEAgbWx4 NF90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgaWR4LCB1 aW50MTZfdCBkZXNjLA0KDQogICAgICAgICAgICAgICAgLmxiID0gISFwcml2LT52ZiwNCg0KICAg ICAgICAgICAgICAgIC5ib3VuY2VfYnVmID0gYm91bmNlX2J1ZiwNCg0KICAgICAgICB9Ow0KDQor ICAgICAgIGRldi0+ZGF0YS0+dHhfcXVldWVzW2lkeF0gPSB0eHE7DQoNCiAgICAgICAgcHJpdi0+ dmVyYnNfYWxsb2NfY3R4LnR5cGUgPSBNTFg0X1ZFUkJTX0FMTE9DX1RZUEVfVFhfUVVFVUU7DQoN CiAgICAgICAgcHJpdi0+dmVyYnNfYWxsb2NfY3R4Lm9iaiA9IHR4cTsNCg0KICAgICAgICB0eHEt PmNxID0gbWx4NF9nbHVlLT5jcmVhdGVfY3EocHJpdi0+Y3R4LCBkZXNjLCBOVUxMLCBOVUxMLCAw KTsNCg0KQEAgLTUwNywxMyArNTA4LDExIEBAIG1seDRfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IGlkeCwgdWludDE2X3QgZGVzYywNCg0KICAgICAgICAv KiBTYXZlIHBvaW50ZXIgb2YgZ2xvYmFsIGdlbmVyYXRpb24gbnVtYmVyIHRvIGNoZWNrIG1lbW9y eSBldmVudC4gKi8NCg0KICAgICAgICB0eHEtPm1yX2N0cmwuZGV2X2dlbl9wdHIgPSAmcHJpdi0+ bXIuZGV2X2dlbjsNCg0KICAgICAgICBERUJVRygiJXA6IGFkZGluZyBUeCBxdWV1ZSAlcCB0byBs aXN0IiwgKHZvaWQgKilkZXYsICh2b2lkICopdHhxKTsNCg0KLSAgICAgICBkZXYtPmRhdGEtPnR4 X3F1ZXVlc1tpZHhdID0gdHhxOw0KDQogICAgICAgIHByaXYtPnZlcmJzX2FsbG9jX2N0eC50eXBl ID0gTUxYNF9WRVJCU19BTExPQ19UWVBFX05PTkU7DQoNCiAgICAgICAgcmV0dXJuIDA7DQoNCiBl cnJvcjoNCg0KLSAgICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1tpZHhdID0gTlVMTDsNCg0KICAg ICAgICByZXQgPSBydGVfZXJybm87DQoNCi0gICAgICAgbWx4NF90eF9xdWV1ZV9yZWxlYXNlKHR4 cSk7DQoNCisgICAgICAgbWx4NF90eF9xdWV1ZV9yZWxlYXNlKGRldiwgaWR4KTsNCg0KICAgICAg ICBydGVfZXJybm8gPSByZXQ7DQoNCiAgICAgICAgTUxYNF9BU1NFUlQocnRlX2Vycm5vID4gMCk7 DQoNCiAgICAgICAgcHJpdi0+dmVyYnNfYWxsb2NfY3R4LnR5cGUgPSBNTFg0X1ZFUkJTX0FMTE9D X1RZUEVfTk9ORTsNCg0KQEAgLTUyMywyNiArNTIyLDIwIEBAIG1seDRfdHhfcXVldWVfc2V0dXAo c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IGlkeCwgdWludDE2X3QgZGVzYywNCg0K IC8qKg0KDQogICogRFBESyBjYWxsYmFjayB0byByZWxlYXNlIGEgVHggcXVldWUuDQoNCiAgKg0K DQotICogQHBhcmFtIGRwZGtfdHhxDQoNCi0gKiAgIEdlbmVyaWMgVHggcXVldWUgcG9pbnRlci4N Cg0KKyAqIEBwYXJhbSBkZXYNCg0KKyAqICAgUG9pbnRlciB0byBFdGhlcm5ldCBkZXZpY2Ugc3Ry dWN0dXJlLg0KDQorICogQHBhcmFtIGlkeA0KDQorICogICBUeCBxdWV1ZSBpbmRleC4NCg0KICAq Lw0KDQogdm9pZA0KDQotbWx4NF90eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKmRwZGtfdHhxKQ0KDQor bWx4NF90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBp ZHgpDQoNCiB7DQoNCi0gICAgICAgc3RydWN0IHR4cSAqdHhxID0gKHN0cnVjdCB0eHEgKilkcGRr X3R4cTsNCg0KLSAgICAgICBzdHJ1Y3QgbWx4NF9wcml2ICpwcml2Ow0KDQotICAgICAgIHVuc2ln bmVkIGludCBpOw0KDQorICAgICAgIHN0cnVjdCB0eHEgKnR4cSA9IGRldi0+ZGF0YS0+dHhfcXVl dWVzW2lkeF07DQoNCg0KDQogICAgICAgIGlmICh0eHEgPT0gTlVMTCkNCg0KICAgICAgICAgICAg ICAgIHJldHVybjsNCg0KLSAgICAgICBwcml2ID0gdHhxLT5wcml2Ow0KDQotICAgICAgIGZvciAo aSA9IDA7IGkgIT0gRVRIX0RFVihwcml2KS0+ZGF0YS0+bmJfdHhfcXVldWVzOyArK2kpDQoNCi0g ICAgICAgICAgICAgICBpZiAoRVRIX0RFVihwcml2KS0+ZGF0YS0+dHhfcXVldWVzW2ldID09IHR4 cSkgew0KDQotICAgICAgICAgICAgICAgICAgICAgICBERUJVRygiJXA6IHJlbW92aW5nIFR4IHF1 ZXVlICVwIGZyb20gbGlzdCIsDQoNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lk ICopRVRIX0RFVihwcml2KSwgKHZvaWQgKil0eHEpOw0KDQotICAgICAgICAgICAgICAgICAgICAg ICBFVEhfREVWKHByaXYpLT5kYXRhLT50eF9xdWV1ZXNbaV0gPSBOVUxMOw0KDQotICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsNCg0KLSAgICAgICAgICAgICAgIH0NCg0KKyAgICAgICBERUJV RygiJXA6IHJlbW92aW5nIFR4IHF1ZXVlICVodSBmcm9tIGxpc3QiLCAodm9pZCAqKWRldiwgaWR4 KTsNCg0KKyAgICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1tpZHhdID0gTlVMTDsNCg0KICAgICAg ICBtbHg0X3R4cV9mcmVlX2VsdHModHhxKTsNCg0KICAgICAgICBpZiAodHhxLT5xcCkNCg0KICAg ICAgICAgICAgICAgIGNsYWltX3plcm8obWx4NF9nbHVlLT5kZXN0cm95X3FwKHR4cS0+cXApKTsN Cg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV9yeC5oIGIvZHJpdmVycy9uZXQv bWx4NS9tbHg1X3J4LmgNCg0KaW5kZXggM2YyYjk5ZmI2NS4uMmI3YWQzZTQ4YiAxMDA2NDQNCg0K LS0tIGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4LmgNCg0KKysrIGIvZHJpdmVycy9uZXQvbWx4 NS9tbHg1X3J4LmgNCg0KQEAgLTE5MSw3ICsxOTEsNyBAQCBpbnQgbWx4NV9yeF9xdWV1ZV9zZXR1 cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgaWR4LCB1aW50MTZfdCBkZXNjLA0K DQogaW50IG1seDVfcnhfaGFpcnBpbl9xdWV1ZV9zZXR1cA0KDQogICAgICAgIChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwgdWludDE2X3QgaWR4LCB1aW50MTZfdCBkZXNjLA0KDQogICAgICAgICBj b25zdCBzdHJ1Y3QgcnRlX2V0aF9oYWlycGluX2NvbmYgKmhhaXJwaW5fY29uZik7DQoNCi12b2lk IG1seDVfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpkcGRrX3J4cSk7DQoNCit2b2lkIG1seDVfcnhf cXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKTsNCg0K IGludCBtbHg1X3J4X2ludHJfdmVjX2VuYWJsZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7DQoN CiB2b2lkIG1seDVfcnhfaW50cl92ZWNfZGlzYWJsZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7 DQoNCiBpbnQgbWx4NV9yeF9pbnRyX2VuYWJsZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWlu dDE2X3QgcnhfcXVldWVfaWQpOw0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1 X3J4cS5jIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5jDQoNCmluZGV4IGFiZDhjZTc5ODku LmQ2ZGUxNTk0ODYgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV9yeHEuYw0K DQorKysgYi9kcml2ZXJzL25ldC9tbHg1L21seDVfcnhxLmMNCg0KQEAgLTc5NCwyNSArNzk0LDIy IEBAIG1seDVfcnhfaGFpcnBpbl9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwg dWludDE2X3QgaWR4LA0KDQogLyoqDQoNCiAgKiBEUERLIGNhbGxiYWNrIHRvIHJlbGVhc2UgYSBS WCBxdWV1ZS4NCg0KICAqDQoNCi0gKiBAcGFyYW0gZHBka19yeHENCg0KLSAqICAgR2VuZXJpYyBS WCBxdWV1ZSBwb2ludGVyLg0KDQorICogQHBhcmFtIGRldg0KDQorICogICBQb2ludGVyIHRvIEV0 aGVybmV0IGRldmljZSBzdHJ1Y3R1cmUuDQoNCisgKiBAcGFyYW0gcWlkDQoNCisgKiAgIFJYIHF1 ZXVlIGluZGV4Lg0KDQogICovDQoNCiB2b2lkDQoNCi1tbHg1X3J4X3F1ZXVlX3JlbGVhc2Uodm9p ZCAqZHBka19yeHEpDQoNCittbHg1X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3QgbWx4NV9yeHFfZGF0 YSAqcnhxID0gKHN0cnVjdCBtbHg1X3J4cV9kYXRhICopZHBka19yeHE7DQoNCi0gICAgICAgc3Ry dWN0IG1seDVfcnhxX2N0cmwgKnJ4cV9jdHJsOw0KDQotICAgICAgIHN0cnVjdCBtbHg1X3ByaXYg KnByaXY7DQoNCisgICAgICAgc3RydWN0IG1seDVfcnhxX2RhdGEgKnJ4cSA9IGRldi0+ZGF0YS0+ cnhfcXVldWVzW3FpZF07DQoNCg0KDQogICAgICAgIGlmIChyeHEgPT0gTlVMTCkNCg0KICAgICAg ICAgICAgICAgIHJldHVybjsNCg0KLSAgICAgICByeHFfY3RybCA9IGNvbnRhaW5lcl9vZihyeHEs IHN0cnVjdCBtbHg1X3J4cV9jdHJsLCByeHEpOw0KDQotICAgICAgIHByaXYgPSByeHFfY3RybC0+ cHJpdjsNCg0KLSAgICAgICBpZiAoIW1seDVfcnhxX3JlbGVhc2FibGUoRVRIX0RFVihwcml2KSwg cnhxX2N0cmwtPnJ4cS5pZHgpKQ0KDQorICAgICAgIGlmICghbWx4NV9yeHFfcmVsZWFzYWJsZShk ZXYsIHFpZCkpDQoNCiAgICAgICAgICAgICAgICBydGVfcGFuaWMoInBvcnQgJXUgUnggcXVldWUg JXUgaXMgc3RpbGwgdXNlZCBieSBhIGZsb3cgYW5kIg0KDQotICAgICAgICAgICAgICAgICAgICAg ICAgICIgY2Fubm90IGJlIHJlbW92ZWRcbiIsDQoNCi0gICAgICAgICAgICAgICAgICAgICAgICAg UE9SVF9JRChwcml2KSwgcnhxLT5pZHgpOw0KDQotICAgICAgIG1seDVfcnhxX3JlbGVhc2UoRVRI X0RFVihwcml2KSwgcnhxX2N0cmwtPnJ4cS5pZHgpOw0KDQorICAgICAgICAgICAgICAgICAgICAg ICAgICIgY2Fubm90IGJlIHJlbW92ZWRcbiIsIGRldi0+ZGF0YS0+cG9ydF9pZCwgcWlkKTsNCg0K KyAgICAgICBtbHg1X3J4cV9yZWxlYXNlKGRldiwgcWlkKTsNCg0KIH0NCg0KDQoNCiAvKioNCg0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV90eC5oIGIvZHJpdmVycy9uZXQvbWx4 NS9tbHg1X3R4LmgNCg0KaW5kZXggMWEzNTkxOTM3MS4uNzMzNjRlZDI2OSAxMDA2NDQNCg0KLS0t IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X3R4LmgNCg0KKysrIGIvZHJpdmVycy9uZXQvbWx4NS9t bHg1X3R4LmgNCg0KQEAgLTIwNCw3ICsyMDQsNyBAQCBpbnQgbWx4NV90eF9xdWV1ZV9zZXR1cChz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgaWR4LCB1aW50MTZfdCBkZXNjLA0KDQog aW50IG1seDVfdHhfaGFpcnBpbl9xdWV1ZV9zZXR1cA0KDQogICAgICAgIChzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldiwgdWludDE2X3QgaWR4LCB1aW50MTZfdCBkZXNjLA0KDQogICAgICAgICBjb25z dCBzdHJ1Y3QgcnRlX2V0aF9oYWlycGluX2NvbmYgKmhhaXJwaW5fY29uZik7DQoNCi12b2lkIG1s eDVfdHhfcXVldWVfcmVsZWFzZSh2b2lkICpkcGRrX3R4cSk7DQoNCit2b2lkIG1seDVfdHhfcXVl dWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKTsNCg0KIHZv aWQgdHhxX3Vhcl9pbml0KHN0cnVjdCBtbHg1X3R4cV9jdHJsICp0eHFfY3RybCk7DQoNCiBpbnQg bWx4NV90eF91YXJfaW5pdF9zZWNvbmRhcnkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIGludCBm ZCk7DQoNCiB2b2lkIG1seDVfdHhfdWFyX3VuaW5pdF9zZWNvbmRhcnkoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYpOw0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X3R4cS5jIGIv ZHJpdmVycy9uZXQvbWx4NS9tbHg1X3R4cS5jDQoNCmluZGV4IGViNGQzNGNhNTUuLjg5MzkyZGQw OTEgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV90eHEuYw0KDQorKysgYi9k cml2ZXJzL25ldC9tbHg1L21seDVfdHhxLmMNCg0KQEAgLTQ3MCwyOCArNDcwLDIxIEBAIG1seDVf dHhfaGFpcnBpbl9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3Qg aWR4LA0KDQogLyoqDQoNCiAgKiBEUERLIGNhbGxiYWNrIHRvIHJlbGVhc2UgYSBUWCBxdWV1ZS4N Cg0KICAqDQoNCi0gKiBAcGFyYW0gZHBka190eHENCg0KLSAqICAgR2VuZXJpYyBUWCBxdWV1ZSBw b2ludGVyLg0KDQorICogQHBhcmFtIGRldg0KDQorICogICBQb2ludGVyIHRvIEV0aGVybmV0IGRl dmljZSBzdHJ1Y3R1cmUuDQoNCisgKiBAcGFyYW0gcWlkDQoNCisgKiAgIFRYIHF1ZXVlIGluZGV4 Lg0KDQogICovDQoNCiB2b2lkDQoNCi1tbHg1X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqZHBka190 eHEpDQoNCittbHg1X3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVp bnQxNl90IHFpZCkNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3QgbWx4NV90eHFfZGF0YSAqdHhxID0g KHN0cnVjdCBtbHg1X3R4cV9kYXRhICopZHBka190eHE7DQoNCi0gICAgICAgc3RydWN0IG1seDVf dHhxX2N0cmwgKnR4cV9jdHJsOw0KDQotICAgICAgIHN0cnVjdCBtbHg1X3ByaXYgKnByaXY7DQoN Ci0gICAgICAgdW5zaWduZWQgaW50IGk7DQoNCisgICAgICAgc3RydWN0IG1seDVfdHhxX2RhdGEg KnR4cSA9IGRldi0+ZGF0YS0+dHhfcXVldWVzW3FpZF07DQoNCg0KDQogICAgICAgIGlmICh0eHEg PT0gTlVMTCkNCg0KICAgICAgICAgICAgICAgIHJldHVybjsNCg0KLSAgICAgICB0eHFfY3RybCA9 IGNvbnRhaW5lcl9vZih0eHEsIHN0cnVjdCBtbHg1X3R4cV9jdHJsLCB0eHEpOw0KDQotICAgICAg IHByaXYgPSB0eHFfY3RybC0+cHJpdjsNCg0KLSAgICAgICBmb3IgKGkgPSAwOyAoaSAhPSBwcml2 LT50eHFzX24pOyArK2kpDQoNCi0gICAgICAgICAgICAgICBpZiAoKCpwcml2LT50eHFzKVtpXSA9 PSB0eHEpIHsNCg0KLSAgICAgICAgICAgICAgICAgICAgICAgRFJWX0xPRyhERUJVRywgInBvcnQg JXUgcmVtb3ZpbmcgVHggcXVldWUgJXUgZnJvbSBsaXN0IiwNCg0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQT1JUX0lEKHByaXYpLCB0eHEtPmlkeCk7DQoNCi0gICAgICAgICAgICAg ICAgICAgICAgIG1seDVfdHhxX3JlbGVhc2UoRVRIX0RFVihwcml2KSwgaSk7DQoNCi0gICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOw0KDQotICAgICAgICAgICAgICAgfQ0KDQorICAgICAgIERS Vl9MT0coREVCVUcsICJwb3J0ICV1IHJlbW92aW5nIFR4IHF1ZXVlICV1IGZyb20gbGlzdCIsDQoN CisgICAgICAgICAgICAgICBkZXYtPmRhdGEtPnBvcnRfaWQsIHFpZCk7DQoNCisgICAgICAgbWx4 NV90eHFfcmVsZWFzZShkZXYsIHFpZCk7DQoNCiB9DQoNCg0KDQogLyoqDQoNCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9tdm5ldGEvbXZuZXRhX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvbXZuZXRh L212bmV0YV9ldGhkZXYuYw0KDQppbmRleCBhM2VlMTUwMjA0Li5mNTFiYzIyNThmIDEwMDY0NA0K DQotLS0gYS9kcml2ZXJzL25ldC9tdm5ldGEvbXZuZXRhX2V0aGRldi5jDQoNCisrKyBiL2RyaXZl cnMvbmV0L212bmV0YS9tdm5ldGFfZXRoZGV2LmMNCg0KQEAgLTQ0NiwxMiArNDQ2LDEyIEBAIG12 bmV0YV9kZXZfY2xvc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQoNCiAgICAgICAgICAgICAg ICByZXQgPSBtdm5ldGFfZGV2X3N0b3AoZGV2KTsNCg0KDQoNCiAgICAgICAgZm9yIChpID0gMDsg aSA8IGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzOyBpKyspIHsNCg0KLSAgICAgICAgICAgICAgIG12 bmV0YV9yeF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+cnhfcXVldWVzW2ldKTsNCg0KKyAgICAg ICAgICAgICAgIG12bmV0YV9yeF9xdWV1ZV9yZWxlYXNlKGRldiwgaSk7DQoNCiAgICAgICAgICAg ICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQoNCg0K ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXM7IGkrKykgew0K DQotICAgICAgICAgICAgICAgbXZuZXRhX3R4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT50eF9x dWV1ZXNbaV0pOw0KDQorICAgICAgICAgICAgICAgbXZuZXRhX3R4X3F1ZXVlX3JlbGVhc2UoZGV2 LCBpKTsNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+dHhfcXVldWVzW2ldID0gTlVMTDsN Cg0KICAgICAgICB9DQoNCg0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbXZuZXRhL212bmV0 YV9yeHR4LmMgYi9kcml2ZXJzL25ldC9tdm5ldGEvbXZuZXRhX3J4dHguYw0KDQppbmRleCBkZmE3 ZWNjMDkwLi4yZDYxOTMwMzgyIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9tdm5ldGEvbXZu ZXRhX3J4dHguYw0KDQorKysgYi9kcml2ZXJzL25ldC9tdm5ldGEvbXZuZXRhX3J4dHguYw0KDQpA QCAtNzk2LDEzICs3OTYsMTUgQEAgbXZuZXRhX3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRo X2RldiAqZGV2LCB1aW50MTZfdCBpZHgsIHVpbnQxNl90IGRlc2MsDQoNCiAvKioNCg0KICAqIERQ REsgY2FsbGJhY2sgdG8gcmVsZWFzZSB0aGUgdHJhbnNtaXQgcXVldWUuDQoNCiAgKg0KDQotICog QHBhcmFtIHR4cQ0KDQotICogICBHZW5lcmljIHRyYW5zbWl0IHF1ZXVlIHBvaW50ZXIuDQoNCisg KiBAcGFyYW0gZGV2DQoNCisgKiAgIFBvaW50ZXIgdG8gRXRoZXJuZXQgZGV2aWNlIHN0cnVjdHVy ZS4NCg0KKyAqIEBwYXJhbSBxaWQNCg0KKyAqICAgVHJhbnNtaXQgcXVldWUgaW5kZXguDQoNCiAg Ki8NCg0KIHZvaWQNCg0KLW12bmV0YV90eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnR4cSkNCg0KK212 bmV0YV90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBx aWQpDQoNCiB7DQoNCi0gICAgICAgc3RydWN0IG12bmV0YV90eHEgKnEgPSB0eHE7DQoNCisgICAg ICAgc3RydWN0IG12bmV0YV90eHEgKnEgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdOw0KDQoN Cg0KICAgICAgICBpZiAoIXEpDQoNCiAgICAgICAgICAgICAgICByZXR1cm47DQoNCkBAIC05NTks MTMgKzk2MSwxNSBAQCBtdm5ldGFfZmx1c2hfcXVldWVzKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 KQ0KDQogLyoqDQoNCiAgKiBEUERLIGNhbGxiYWNrIHRvIHJlbGVhc2UgdGhlIHJlY2VpdmUgcXVl dWUuDQoNCiAgKg0KDQotICogQHBhcmFtIHJ4cQ0KDQotICogICBHZW5lcmljIHJlY2VpdmUgcXVl dWUgcG9pbnRlci4NCg0KKyAqIEBwYXJhbSBkZXYNCg0KKyAqICAgUG9pbnRlciB0byBFdGhlcm5l dCBkZXZpY2Ugc3RydWN0dXJlLg0KDQorICogQHBhcmFtIHFpZA0KDQorICogICBSZWNlaXZlIHF1 ZXVlIGluZGV4Lg0KDQogICovDQoNCiB2b2lkDQoNCi1tdm5ldGFfcnhfcXVldWVfcmVsZWFzZSh2 b2lkICpyeHEpDQoNCittdm5ldGFfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiwgdWludDE2X3QgcWlkKQ0KDQogew0KDQotICAgICAgIHN0cnVjdCBtdm5ldGFfcnhxICpx ID0gcnhxOw0KDQorICAgICAgIHN0cnVjdCBtdm5ldGFfcnhxICpxID0gZGV2LT5kYXRhLT5yeF9x dWV1ZXNbcWlkXTsNCg0KDQoNCiAgICAgICAgaWYgKCFxKQ0KDQogICAgICAgICAgICAgICAgcmV0 dXJuOw0KDQpAQCAtOTc4LDcgKzk4Miw3IEBAIG12bmV0YV9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQg KnJ4cSkNCg0KICAgICAgICBpZiAocS0+cHJpdi0+cHBpbykNCg0KICAgICAgICAgICAgICAgIG12 bmV0YV9yeF9xdWV1ZV9mbHVzaChxKTsNCg0KDQoNCi0gICAgICAgcnRlX2ZyZWUocnhxKTsNCg0K KyAgICAgICBydGVfZnJlZShxKTsNCg0KIH0NCg0KDQoNCiAvKioNCg0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L212bmV0YS9tdm5ldGFfcnh0eC5oIGIvZHJpdmVycy9uZXQvbXZuZXRhL212bmV0 YV9yeHR4LmgNCg0KaW5kZXggY2MyOTE5MDE3Ny4uNDFiNzUzOWE1NyAxMDA2NDQNCg0KLS0tIGEv ZHJpdmVycy9uZXQvbXZuZXRhL212bmV0YV9yeHR4LmgNCg0KKysrIGIvZHJpdmVycy9uZXQvbXZu ZXRhL212bmV0YV9yeHR4LmgNCg0KQEAgLTMyLDcgKzMyLDcgQEAgaW50DQoNCiBtdm5ldGFfdHhf cXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IGlkeCwgdWludDE2 X3QgZGVzYywNCg0KICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzb2NrZXQsIGNv bnN0IHN0cnVjdCBydGVfZXRoX3R4Y29uZiAqY29uZik7DQoNCg0KDQotdm9pZCBtdm5ldGFfcnhf cXVldWVfcmVsZWFzZSh2b2lkICpyeHEpOw0KDQotdm9pZCBtdm5ldGFfdHhfcXVldWVfcmVsZWFz ZSh2b2lkICp0eHEpOw0KDQordm9pZCBtdm5ldGFfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKTsNCg0KK3ZvaWQgbXZuZXRhX3R4X3F1ZXVlX3Jl bGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCk7DQoNCg0KDQogI2Vu ZGlmIC8qIF9NVk5FVEFfUlhUWF9IXyAqLw0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbXZw cDIvbXJ2bF9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L212cHAyL21ydmxfZXRoZGV2LmMNCg0KaW5k ZXggMDc4YWVmYmI4ZC4uNGJmMDBjNzJjZSAxMDA2NDQNCg0KLS0tIGEvZHJpdmVycy9uZXQvbXZw cDIvbXJ2bF9ldGhkZXYuYw0KDQorKysgYi9kcml2ZXJzL25ldC9tdnBwMi9tcnZsX2V0aGRldi5j DQoNCkBAIC0yMDU5LDEzICsyMDU5LDE1IEBAIG1ydmxfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IGlkeCwgdWludDE2X3QgZGVzYywNCg0KIC8qKg0KDQog ICogRFBESyBjYWxsYmFjayB0byByZWxlYXNlIHRoZSByZWNlaXZlIHF1ZXVlLg0KDQogICoNCg0K LSAqIEBwYXJhbSByeHENCg0KLSAqICAgR2VuZXJpYyByZWNlaXZlIHF1ZXVlIHBvaW50ZXIuDQoN CisgKiBAcGFyYW0gZGV2DQoNCisgKiAgIFBvaW50ZXIgdG8gRXRoZXJuZXQgZGV2aWNlIHN0cnVj dHVyZS4NCg0KKyAqIEBwYXJhbSBxaWQNCg0KKyAqICAgUlggcXVldWUgaW5kZXguDQoNCiAgKi8N Cg0KIHN0YXRpYyB2b2lkDQoNCi1tcnZsX3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcnhxKQ0KDQor bXJ2bF9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBx aWQpDQoNCiB7DQoNCi0gICAgICAgc3RydWN0IG1ydmxfcnhxICpxID0gcnhxOw0KDQorICAgICAg IHN0cnVjdCBtcnZsX3J4cSAqcSA9IGRldi0+ZGF0YS0+cnhfcXVldWVzW3FpZF07DQoNCiAgICAg ICAgc3RydWN0IHBwMl9wcGlvX3RjX3BhcmFtcyAqdGNfcGFyYW1zOw0KDQogICAgICAgIGludCBp LCBudW0sIHRjLCBpbnE7DQoNCiAgICAgICAgc3RydWN0IHBwMl9oaWYgKmhpZjsNCg0KQEAgLTIx NDYsMTMgKzIxNDgsMTUgQEAgbXJ2bF90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiwgdWludDE2X3QgaWR4LCB1aW50MTZfdCBkZXNjLA0KDQogLyoqDQoNCiAgKiBEUERLIGNh bGxiYWNrIHRvIHJlbGVhc2UgdGhlIHRyYW5zbWl0IHF1ZXVlLg0KDQogICoNCg0KLSAqIEBwYXJh bSB0eHENCg0KLSAqICAgR2VuZXJpYyB0cmFuc21pdCBxdWV1ZSBwb2ludGVyLg0KDQorICogQHBh cmFtIGRldg0KDQorICogICBQb2ludGVyIHRvIEV0aGVybmV0IGRldmljZSBzdHJ1Y3R1cmUuDQoN CisgKiBAcGFyYW0gcWlkDQoNCisgKiAgIFRYIHF1ZXVlIGluZGV4Lg0KDQogICovDQoNCiBzdGF0 aWMgdm9pZA0KDQotbXJ2bF90eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnR4cSkNCg0KK21ydmxfdHhf cXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKQ0KDQog ew0KDQotICAgICAgIHN0cnVjdCBtcnZsX3R4cSAqcSA9IHR4cTsNCg0KKyAgICAgICBzdHJ1Y3Qg bXJ2bF90eHEgKnEgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdOw0KDQoNCg0KICAgICAgICBp ZiAoIXEpDQoNCiAgICAgICAgICAgICAgICByZXR1cm47DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9uZXR2c2MvaG5fcnh0eC5jIGIvZHJpdmVycy9uZXQvbmV0dnNjL2huX3J4dHguYw0KDQpp bmRleCBjNmJmN2NjMTMyLi5lODgwZGMyYmIyIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9u ZXR2c2MvaG5fcnh0eC5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L25ldHZzYy9obl9yeHR4LmMNCg0K QEAgLTM1Niw5ICszNTYsOSBAQCBzdGF0aWMgdm9pZCBobl90eGRfcHV0KHN0cnVjdCBobl90eF9x dWV1ZSAqdHhxLCBzdHJ1Y3QgaG5fdHhkZXNjICp0eGQpDQoNCiB9DQoNCg0KDQogdm9pZA0KDQot aG5fZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqYXJnKQ0KDQoraG5fZGV2X3R4X3F1ZXVlX3Jl bGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KLSAg ICAgICBzdHJ1Y3QgaG5fdHhfcXVldWUgKnR4cSA9IGFyZzsNCg0KKyAgICAgICBzdHJ1Y3QgaG5f dHhfcXVldWUgKnR4cSA9IGRldi0+ZGF0YS0+dHhfcXVldWVzW3FpZF07DQoNCg0KDQogICAgICAg IFBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsNCg0KDQoNCkBAIC0xMDA0LDkgKzEwMDQsOSBAQCBobl9y eF9xdWV1ZV9mcmVlKHN0cnVjdCBobl9yeF9xdWV1ZSAqcnhxLCBib29sIGtlZXBfcHJpbWFyeSkN Cg0KIH0NCg0KDQoNCiB2b2lkDQoNCi1obl9kZXZfcnhfcXVldWVfcmVsZWFzZSh2b2lkICphcmcp DQoNCitobl9kZXZfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWlu dDE2X3QgcWlkKQ0KDQogew0KDQotICAgICAgIHN0cnVjdCBobl9yeF9xdWV1ZSAqcnhxID0gYXJn Ow0KDQorICAgICAgIHN0cnVjdCBobl9yeF9xdWV1ZSAqcnhxID0gZGV2LT5kYXRhLT5yeF9xdWV1 ZXNbcWlkXTsNCg0KDQoNCiAgICAgICAgUE1EX0lOSVRfRlVOQ19UUkFDRSgpOw0KDQoNCg0KQEAg LTE2NDgsNyArMTY0OCw3IEBAIGhuX2Rldl9mcmVlX3F1ZXVlcyhzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldikNCg0KICAgICAgICBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcyA9IDA7DQoNCg0KDQogICAg ICAgIGZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlczsgaSsrKSB7DQoNCi0g ICAgICAgICAgICAgICBobl9kZXZfdHhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEtPnR4X3F1ZXVl c1tpXSk7DQoNCisgICAgICAgICAgICAgICBobl9kZXZfdHhfcXVldWVfcmVsZWFzZShkZXYsIGkp Ow0KDQogICAgICAgICAgICAgICAgZGV2LT5kYXRhLT50eF9xdWV1ZXNbaV0gPSBOVUxMOw0KDQog ICAgICAgIH0NCg0KICAgICAgICBkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlcyA9IDA7DQoNCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9uZXR2c2MvaG5fdmFyLmggYi9kcml2ZXJzL25ldC9uZXR2c2Mv aG5fdmFyLmgNCg0KaW5kZXggNDM2NDI0MDhiYy4uMmNkMWY4YTg4MSAxMDA2NDQNCg0KLS0tIGEv ZHJpdmVycy9uZXQvbmV0dnNjL2huX3Zhci5oDQoNCisrKyBiL2RyaXZlcnMvbmV0L25ldHZzYy9o bl92YXIuaA0KDQpAQCAtMTk4LDcgKzE5OCw3IEBAIGludCBobl9kZXZfbGlua191cGRhdGUoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIGludCB3YWl0KTsNCg0KIGludCAgICBobl9kZXZfdHhfcXVl dWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkeCwNCg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgbmJfZGVzYywgdW5zaWduZWQg aW50IHNvY2tldF9pZCwNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Ry dWN0IHJ0ZV9ldGhfdHhjb25mICp0eF9jb25mKTsNCg0KLXZvaWQgICBobl9kZXZfdHhfcXVldWVf cmVsZWFzZSh2b2lkICphcmcpOw0KDQordm9pZCAgIGhuX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpOw0KDQogdm9pZCAgIGhuX2Rldl90 eF9xdWV1ZV9pbmZvKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZHgs DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9ldGhfdHhxX2luZm8g KnFpbmZvKTsNCg0KIGludCAgICBobl9kZXZfdHhfZG9uZV9jbGVhbnVwKHZvaWQgKmFyZywgdWlu dDMyX3QgZnJlZV9jbnQpOw0KDQpAQCAtMjE0LDcgKzIxNCw3IEBAIGludCBobl9kZXZfcnhfcXVl dWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBydGVfbWVtcG9vbCAqbXApOw0KDQogdm9pZCAgIGhuX2Rldl9yeF9x dWV1ZV9pbmZvKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCwNCg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2V0aF9yeHFfaW5mbyAqcWlu Zm8pOw0KDQotdm9pZCAgIGhuX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHZvaWQgKmFyZyk7DQoNCit2 b2lkICAgaG5fZGV2X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVp bnQxNl90IHFpZCk7DQoNCiB1aW50MzJfdCBobl9kZXZfcnhfcXVldWVfY291bnQoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkKTsNCg0KIGludCAgICBobl9kZXZfcnhf cXVldWVfc3RhdHVzKHZvaWQgKnJ4cSwgdWludDE2X3Qgb2Zmc2V0KTsNCg0KIHZvaWQgICBobl9k ZXZfZnJlZV9xdWV1ZXMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvbmV0dnNjL2huX3ZmLmMgYi9kcml2ZXJzL25ldC9uZXR2c2MvaG5fdmYuYw0K DQppbmRleCA3NTE5MmU2MzE5Li5mZWFkOGViYTVkIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25l dC9uZXR2c2MvaG5fdmYuYw0KDQorKysgYi9kcml2ZXJzL25ldC9uZXR2c2MvaG5fdmYuYw0KDQpA QCAtNjI0LDExICs2MjQsOCBAQCB2b2lkIGhuX3ZmX3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IGhu X2RhdGEgKmh2LCB1aW50MTZfdCBxdWV1ZV9pZCkNCg0KDQoNCiAgICAgICAgcnRlX3J3bG9ja19y ZWFkX2xvY2soJmh2LT52Zl9sb2NrKTsNCg0KICAgICAgICB2Zl9kZXYgPSBobl9nZXRfdmZfZGV2 KGh2KTsNCg0KLSAgICAgICBpZiAodmZfZGV2ICYmIHZmX2Rldi0+ZGV2X29wcy0+dHhfcXVldWVf cmVsZWFzZSkgew0KDQotICAgICAgICAgICAgICAgdm9pZCAqc3VicSA9IHZmX2Rldi0+ZGF0YS0+ dHhfcXVldWVzW3F1ZXVlX2lkXTsNCg0KLQ0KDQotICAgICAgICAgICAgICAgKCp2Zl9kZXYtPmRl dl9vcHMtPnR4X3F1ZXVlX3JlbGVhc2UpKHN1YnEpOw0KDQotICAgICAgIH0NCg0KKyAgICAgICBp ZiAodmZfZGV2ICYmIHZmX2Rldi0+ZGV2X29wcy0+dHhfcXVldWVfcmVsZWFzZSkNCg0KKyAgICAg ICAgICAgICAgICgqdmZfZGV2LT5kZXZfb3BzLT50eF9xdWV1ZV9yZWxlYXNlKSh2Zl9kZXYsIHF1 ZXVlX2lkKTsNCg0KDQoNCiAgICAgICAgcnRlX3J3bG9ja19yZWFkX3VubG9jaygmaHYtPnZmX2xv Y2spOw0KDQogfQ0KDQpAQCAtNjU5LDExICs2NTYsOCBAQCB2b2lkIGhuX3ZmX3J4X3F1ZXVlX3Jl bGVhc2Uoc3RydWN0IGhuX2RhdGEgKmh2LCB1aW50MTZfdCBxdWV1ZV9pZCkNCg0KDQoNCiAgICAg ICAgcnRlX3J3bG9ja19yZWFkX2xvY2soJmh2LT52Zl9sb2NrKTsNCg0KICAgICAgICB2Zl9kZXYg PSBobl9nZXRfdmZfZGV2KGh2KTsNCg0KLSAgICAgICBpZiAodmZfZGV2ICYmIHZmX2Rldi0+ZGV2 X29wcy0+cnhfcXVldWVfcmVsZWFzZSkgew0KDQotICAgICAgICAgICAgICAgdm9pZCAqc3VicSA9 IHZmX2Rldi0+ZGF0YS0+cnhfcXVldWVzW3F1ZXVlX2lkXTsNCg0KLQ0KDQotICAgICAgICAgICAg ICAgKCp2Zl9kZXYtPmRldl9vcHMtPnJ4X3F1ZXVlX3JlbGVhc2UpKHN1YnEpOw0KDQotICAgICAg IH0NCg0KKyAgICAgICBpZiAodmZfZGV2ICYmIHZmX2Rldi0+ZGV2X29wcy0+cnhfcXVldWVfcmVs ZWFzZSkNCg0KKyAgICAgICAgICAgICAgICgqdmZfZGV2LT5kZXZfb3BzLT5yeF9xdWV1ZV9yZWxl YXNlKSh2Zl9kZXYsIHF1ZXVlX2lkKTsNCg0KICAgICAgICBydGVfcndsb2NrX3JlYWRfdW5sb2Nr KCZodi0+dmZfbG9jayk7DQoNCiB9DQoNCg0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmZi L25mYl9ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L25mYi9uZmJfZXRoZGV2LmMNCg0KaW5kZXggN2U5 MWQ1OTg0Ny4uOTlkOTNlYmY0NiAxMDA2NDQNCg0KLS0tIGEvZHJpdmVycy9uZXQvbmZiL25mYl9l dGhkZXYuYw0KDQorKysgYi9kcml2ZXJzL25ldC9uZmIvbmZiX2V0aGRldi5jDQoNCkBAIC0yMzEs MTIgKzIzMSwxMiBAQCBuZmJfZXRoX2Rldl9jbG9zZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikN Cg0KICAgICAgICBuZmJfbmNfdHhtYWNfZGVpbml0KGludGVybmFscy0+dHhtYWMsIGludGVybmFs cy0+bWF4X3R4bWFjKTsNCg0KDQoNCiAgICAgICAgZm9yIChpID0gMDsgaSA8IG5iX3J4OyBpKysp IHsNCg0KLSAgICAgICAgICAgICAgIG5mYl9ldGhfcnhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEt PnJ4X3F1ZXVlc1tpXSk7DQoNCisgICAgICAgICAgICAgICBuZmJfZXRoX3J4X3F1ZXVlX3JlbGVh c2UoZGV2LCBpKTsNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+cnhfcXVldWVzW2ldID0g TlVMTDsNCg0KICAgICAgICB9DQoNCiAgICAgICAgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXMgPSAw Ow0KDQogICAgICAgIGZvciAoaSA9IDA7IGkgPCBuYl90eDsgaSsrKSB7DQoNCi0gICAgICAgICAg ICAgICBuZmJfZXRoX3R4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT50eF9xdWV1ZXNbaV0pOw0K DQorICAgICAgICAgICAgICAgbmZiX2V0aF90eF9xdWV1ZV9yZWxlYXNlKGRldiwgaSk7DQoNCiAg ICAgICAgICAgICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCiAgICAgICAg fQ0KDQogICAgICAgIGRldi0+ZGF0YS0+bmJfdHhfcXVldWVzID0gMDsNCg0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L25mYi9uZmJfcnguYyBiL2RyaXZlcnMvbmV0L25mYi9uZmJfcnguYw0KDQpp bmRleCBkNmQ0YmE5NjYzLi4zZWJiMzMyYWU0IDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9u ZmIvbmZiX3J4LmMNCg0KKysrIGIvZHJpdmVycy9uZXQvbmZiL25mYl9yeC5jDQoNCkBAIC0xNzYs OSArMTc2LDEwIEBAIG5mYl9ldGhfcnhfcXVldWVfaW5pdChzdHJ1Y3QgbmZiX2RldmljZSAqbmZi LA0KDQogfQ0KDQoNCg0KIHZvaWQNCg0KLW5mYl9ldGhfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpx KQ0KDQorbmZiX2V0aF9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1 aW50MTZfdCBxaWQpDQoNCiB7DQoNCi0gICAgICAgc3RydWN0IG5kcF9yeF9xdWV1ZSAqcnhxID0g KHN0cnVjdCBuZHBfcnhfcXVldWUgKilxOw0KDQorICAgICAgIHN0cnVjdCBuZHBfcnhfcXVldWUg KnJ4cSA9IGRldi0+ZGF0YS0+cnhfcXVldWVzW3FpZF07DQoNCisNCg0KICAgICAgICBpZiAocnhx LT5xdWV1ZSAhPSBOVUxMKSB7DQoNCiAgICAgICAgICAgICAgICBuZHBfY2xvc2VfcnhfcXVldWUo cnhxLT5xdWV1ZSk7DQoNCiAgICAgICAgICAgICAgICBydGVfZnJlZShyeHEpOw0KDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvbmZiL25mYl9yeC5oIGIvZHJpdmVycy9uZXQvbmZiL25mYl9yeC5o DQoNCmluZGV4IGM5NzA4MjU5YWYuLjQ4ZThhYmNlMWYgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMv bmV0L25mYi9uZmJfcnguaA0KDQorKysgYi9kcml2ZXJzL25ldC9uZmIvbmZiX3J4LmgNCg0KQEAg LTk0LDExICs5NCwxMyBAQCBuZmJfZXRoX3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2LA0KDQogLyoqDQoNCiAgKiBEUERLIGNhbGxiYWNrIHRvIHJlbGVhc2UgYSBSWCBxdWV1 ZS4NCg0KICAqDQoNCi0gKiBAcGFyYW0gZHBka19yeHENCg0KLSAqICAgR2VuZXJpYyBSWCBxdWV1 ZSBwb2ludGVyLg0KDQorICogQHBhcmFtIGRldg0KDQorICogICBQb2ludGVyIHRvIEV0aGVybmV0 IGRldmljZSBzdHJ1Y3R1cmUuDQoNCisgKiBAcGFyYW0gcWlkDQoNCisgKiAgIFJYIHF1ZXVlIGlu ZGV4Lg0KDQogICovDQoNCiB2b2lkDQoNCi1uZmJfZXRoX3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAq cSk7DQoNCituZmJfZXRoX3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs IHVpbnQxNl90IHFpZCk7DQoNCg0KDQogLyoqDQoNCiAgKiBTdGFydCB0cmFmZmljIG9uIFJ4IHF1 ZXVlLg0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmZiL25mYl90eC5jIGIvZHJpdmVycy9u ZXQvbmZiL25mYl90eC5jDQoNCmluZGV4IDliOTEyZmViMWQuLmQ0OWZjMzI0ZTcgMTAwNjQ0DQoN Ci0tLSBhL2RyaXZlcnMvbmV0L25mYi9uZmJfdHguYw0KDQorKysgYi9kcml2ZXJzL25ldC9uZmIv bmZiX3R4LmMNCg0KQEAgLTEwMiw5ICsxMDIsMTAgQEAgbmZiX2V0aF90eF9xdWV1ZV9pbml0KHN0 cnVjdCBuZmJfZGV2aWNlICpuZmIsDQoNCiB9DQoNCg0KDQogdm9pZA0KDQotbmZiX2V0aF90eF9x dWV1ZV9yZWxlYXNlKHZvaWQgKnEpDQoNCituZmJfZXRoX3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3Qg bmRwX3R4X3F1ZXVlICp0eHEgPSAoc3RydWN0IG5kcF90eF9xdWV1ZSAqKXE7DQoNCisgICAgICAg c3RydWN0IG5kcF90eF9xdWV1ZSAqdHhxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXNbcWlkXTsNCg0K Kw0KDQogICAgICAgIGlmICh0eHEtPnF1ZXVlICE9IE5VTEwpIHsNCg0KICAgICAgICAgICAgICAg IG5kcF9jbG9zZV90eF9xdWV1ZSh0eHEtPnF1ZXVlKTsNCg0KICAgICAgICAgICAgICAgIHJ0ZV9m cmVlKHR4cSk7DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uZmIvbmZiX3R4LmggYi9kcml2 ZXJzL25ldC9uZmIvbmZiX3R4LmgNCg0KaW5kZXggMjhkYWVhZTBiOC4uOTQyZjc0ZjMzYiAxMDA2 NDQNCg0KLS0tIGEvZHJpdmVycy9uZXQvbmZiL25mYl90eC5oDQoNCisrKyBiL2RyaXZlcnMvbmV0 L25mYi9uZmJfdHguaA0KDQpAQCAtNzAsMTEgKzcwLDEzIEBAIG5mYl9ldGhfdHhfcXVldWVfaW5p dChzdHJ1Y3QgbmZiX2RldmljZSAqbmZiLA0KDQogLyoqDQoNCiAgKiBEUERLIGNhbGxiYWNrIHRv IHJlbGVhc2UgYSBSWCBxdWV1ZS4NCg0KICAqDQoNCi0gKiBAcGFyYW0gZHBka19yeHENCg0KLSAq ICAgR2VuZXJpYyBSWCBxdWV1ZSBwb2ludGVyLg0KDQorICogQHBhcmFtIGRldg0KDQorICogICBQ b2ludGVyIHRvIEV0aGVybmV0IGRldmljZSBzdHJ1Y3R1cmUuDQoNCisgKiBAcGFyYW0gcWlkDQoN CisgKiAgIFRYIHF1ZXVlIGluZGV4Lg0KDQogICovDQoNCiB2b2lkDQoNCi1uZmJfZXRoX3R4X3F1 ZXVlX3JlbGVhc2Uodm9pZCAqcSk7DQoNCituZmJfZXRoX3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCk7DQoNCg0KDQogLyoqDQoNCiAgKiBTdGFy dCB0cmFmZmljIG9uIFR4IHF1ZXVlLg0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmZwL25m cF9yeHR4LmMgYi9kcml2ZXJzL25ldC9uZnAvbmZwX3J4dHguYw0KDQppbmRleCAxNDAyYzVmODRh Li5mZWVhY2I1NjE0IDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9uZnAvbmZwX3J4dHguYw0K DQorKysgYi9kcml2ZXJzL25ldC9uZnAvbmZwX3J4dHguYw0KDQpAQCAtNDY0LDkgKzQ2NCw5IEBA IG5mcF9uZXRfcnhfcXVldWVfcmVsZWFzZV9tYnVmcyhzdHJ1Y3QgbmZwX25ldF9yeHEgKnJ4cSkN Cg0KIH0NCg0KDQoNCiB2b2lkDQoNCi1uZnBfbmV0X3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcnhf cXVldWUpDQoNCituZnBfbmV0X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsIHVpbnQxNl90IHF1ZXVlX2lkeCkNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3QgbmZwX25ldF9y eHEgKnJ4cSA9IHJ4X3F1ZXVlOw0KDQorICAgICAgIHN0cnVjdCBuZnBfbmV0X3J4cSAqcnhxID0g ZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcXVldWVfaWR4XTsNCg0KDQoNCiAgICAgICAgaWYgKHJ4cSkg ew0KDQogICAgICAgICAgICAgICAgbmZwX25ldF9yeF9xdWV1ZV9yZWxlYXNlX21idWZzKHJ4cSk7 DQoNCkBAIC01MTMsNyArNTEzLDcgQEAgbmZwX25ldF9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwNCg0KICAgICAgICAgKiBjYWxsaW5nIG5mcF9uZXRfc3RvcA0KDQogICAg ICAgICAqLw0KDQogICAgICAgIGlmIChkZXYtPmRhdGEtPnJ4X3F1ZXVlc1txdWV1ZV9pZHhdKSB7 DQoNCi0gICAgICAgICAgICAgICBuZnBfbmV0X3J4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT5y eF9xdWV1ZXNbcXVldWVfaWR4XSk7DQoNCisgICAgICAgICAgICAgICBuZnBfbmV0X3J4X3F1ZXVl X3JlbGVhc2UoZGV2LCBxdWV1ZV9pZHgpOw0KDQogICAgICAgICAgICAgICAgZGV2LT5kYXRhLT5y eF9xdWV1ZXNbcXVldWVfaWR4XSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQoNCg0KQEAgLTUyMyw2 ICs1MjMsOCBAQCBuZnBfbmV0X3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LA0KDQogICAgICAgIGlmIChyeHEgPT0gTlVMTCkNCg0KICAgICAgICAgICAgICAgIHJldHVybiAt RU5PTUVNOw0KDQoNCg0KKyAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1txdWV1ZV9pZHhdID0g cnhxOw0KDQorDQoNCiAgICAgICAgLyogSHcgcXVldWVzIG1hcHBpbmcgYmFzZWQgb24gZmlybXdh cmUgY29uZmlndXJhdGlvbiAqLw0KDQogICAgICAgIHJ4cS0+cWlkeCA9IHF1ZXVlX2lkeDsNCg0K ICAgICAgICByeHEtPmZsX3FjaWR4ID0gcXVldWVfaWR4ICogaHctPnN0cmlkZV9yeDsNCg0KQEAg LTU1Niw3ICs1NTgsOCBAQCBuZnBfbmV0X3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2LA0KDQoNCg0KICAgICAgICBpZiAodHogPT0gTlVMTCkgew0KDQogICAgICAgICAgICAg ICAgUE1EX0RSVl9MT0coRVJSLCAiRXJyb3IgYWxsb2NhdGluZyByeCBkbWEiKTsNCg0KLSAgICAg ICAgICAgICAgIG5mcF9uZXRfcnhfcXVldWVfcmVsZWFzZShyeHEpOw0KDQorICAgICAgICAgICAg ICAgbmZwX25ldF9yeF9xdWV1ZV9yZWxlYXNlKGRldiwgcXVldWVfaWR4KTsNCg0KKyAgICAgICAg ICAgICAgIGRldi0+ZGF0YS0+cnhfcXVldWVzW3F1ZXVlX2lkeF0gPSBOVUxMOw0KDQogICAgICAg ICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQoNCiAgICAgICAgfQ0KDQoNCg0KQEAgLTU2OSw3ICs1 NzIsOCBAQCBuZnBfbmV0X3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0K DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZigqcnhxLT5y eGJ1ZnMpICogbmJfZGVzYywNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSVEVfQ0FDSEVfTElORV9TSVpFLCBzb2NrZXRfaWQpOw0KDQogICAgICAgIGlmIChyeHEt PnJ4YnVmcyA9PSBOVUxMKSB7DQoNCi0gICAgICAgICAgICAgICBuZnBfbmV0X3J4X3F1ZXVlX3Jl bGVhc2UocnhxKTsNCg0KKyAgICAgICAgICAgICAgIG5mcF9uZXRfcnhfcXVldWVfcmVsZWFzZShk ZXYsIHF1ZXVlX2lkeCk7DQoNCisgICAgICAgICAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tx dWV1ZV9pZHhdID0gTlVMTDsNCg0KICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KDQog ICAgICAgIH0NCg0KDQoNCkBAIC01NzgsNyArNTgyLDYgQEAgbmZwX25ldF9yeF9xdWV1ZV9zZXR1 cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCg0KDQoNCiAgICAgICAgbmZwX25ldF9yZXNldF9y eF9xdWV1ZShyeHEpOw0KDQoNCg0KLSAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1txdWV1ZV9p ZHhdID0gcnhxOw0KDQogICAgICAgIHJ4cS0+aHcgPSBodzsNCg0KDQoNCiAgICAgICAgLyoNCg0K QEAgLTY1MSw5ICs2NTQsOSBAQCBuZnBfbmV0X3R4X3F1ZXVlX3JlbGVhc2VfbWJ1ZnMoc3RydWN0 IG5mcF9uZXRfdHhxICp0eHEpDQoNCiB9DQoNCg0KDQogdm9pZA0KDQotbmZwX25ldF90eF9xdWV1 ZV9yZWxlYXNlKHZvaWQgKnR4X3F1ZXVlKQ0KDQorbmZwX25ldF90eF9xdWV1ZV9yZWxlYXNlKHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZV9pZHgpDQoNCiB7DQoNCi0gICAg ICAgc3RydWN0IG5mcF9uZXRfdHhxICp0eHEgPSB0eF9xdWV1ZTsNCg0KKyAgICAgICBzdHJ1Y3Qg bmZwX25ldF90eHEgKnR4cSA9IGRldi0+ZGF0YS0+dHhfcXVldWVzW3F1ZXVlX2lkeF07DQoNCg0K DQogICAgICAgIGlmICh0eHEpIHsNCg0KICAgICAgICAgICAgICAgIG5mcF9uZXRfdHhfcXVldWVf cmVsZWFzZV9tYnVmcyh0eHEpOw0KDQpAQCAtNzE0LDcgKzcxNyw3IEBAIG5mcF9uZXRfdHhfcXVl dWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkeCwNCg0K ICAgICAgICBpZiAoZGV2LT5kYXRhLT50eF9xdWV1ZXNbcXVldWVfaWR4XSkgew0KDQogICAgICAg ICAgICAgICAgUE1EX1RYX0xPRyhERUJVRywgIkZyZWVpbmcgbWVtb3J5IHByaW9yIHRvIHJlLWFs bG9jYXRpb24gJWQiLA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICBxdWV1ZV9pZHgpOw0K DQotICAgICAgICAgICAgICAgbmZwX25ldF90eF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+dHhf cXVldWVzW3F1ZXVlX2lkeF0pOw0KDQorICAgICAgICAgICAgICAgbmZwX25ldF90eF9xdWV1ZV9y ZWxlYXNlKGRldiwgcXVldWVfaWR4KTsNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+dHhf cXVldWVzW3F1ZXVlX2lkeF0gPSBOVUxMOw0KDQogICAgICAgIH0NCg0KDQoNCkBAIC03MjYsNiAr NzI5LDggQEAgbmZwX25ldF90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwg dWludDE2X3QgcXVldWVfaWR4LA0KDQogICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQoN CiAgICAgICAgfQ0KDQoNCg0KKyAgICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txdWV1ZV9pZHhd ID0gdHhxOw0KDQorDQoNCiAgICAgICAgLyoNCg0KICAgICAgICAgKiBBbGxvY2F0ZSBUWCByaW5n IGhhcmR3YXJlIGRlc2NyaXB0b3JzLiBBIG1lbXpvbmUgbGFyZ2UgZW5vdWdoIHRvDQoNCiAgICAg ICAgICogaGFuZGxlIHRoZSBtYXhpbXVtIHJpbmcgc2l6ZSBpcyBhbGxvY2F0ZWQgaW4gb3JkZXIg dG8gYWxsb3cgZm9yDQoNCkBAIC03MzcsNyArNzQyLDggQEAgbmZwX25ldF90eF9xdWV1ZV9zZXR1 cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWR4LA0KDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldF9pZCk7DQoNCiAgICAgICAgaWYgKHR6 ID09IE5VTEwpIHsNCg0KICAgICAgICAgICAgICAgIFBNRF9EUlZfTE9HKEVSUiwgIkVycm9yIGFs bG9jYXRpbmcgdHggZG1hIik7DQoNCi0gICAgICAgICAgICAgICBuZnBfbmV0X3R4X3F1ZXVlX3Jl bGVhc2UodHhxKTsNCg0KKyAgICAgICAgICAgICAgIG5mcF9uZXRfdHhfcXVldWVfcmVsZWFzZShk ZXYsIHF1ZXVlX2lkeCk7DQoNCisgICAgICAgICAgICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1tx dWV1ZV9pZHhdID0gTlVMTDsNCg0KICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KDQog ICAgICAgIH0NCg0KDQoNCkBAIC03NjMsNyArNzY5LDggQEAgbmZwX25ldF90eF9xdWV1ZV9zZXR1 cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWR4LA0KDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZigqdHhxLT50eGJ1ZnMpICog bmJfZGVzYywNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVEVf Q0FDSEVfTElORV9TSVpFLCBzb2NrZXRfaWQpOw0KDQogICAgICAgIGlmICh0eHEtPnR4YnVmcyA9 PSBOVUxMKSB7DQoNCi0gICAgICAgICAgICAgICBuZnBfbmV0X3R4X3F1ZXVlX3JlbGVhc2UodHhx KTsNCg0KKyAgICAgICAgICAgICAgIG5mcF9uZXRfdHhfcXVldWVfcmVsZWFzZShkZXYsIHF1ZXVl X2lkeCk7DQoNCisgICAgICAgICAgICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txdWV1ZV9pZHhd ID0gTlVMTDsNCg0KICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KDQogICAgICAgIH0N Cg0KICAgICAgICBQTURfVFhfTE9HKERFQlVHLCAidHhidWZzPSVwIGh3X3Jpbmc9JXAgZG1hX2Fk ZHI9MHglIiBQUkl4NjQsDQoNCkBAIC03NzEsNyArNzc4LDYgQEAgbmZwX25ldF90eF9xdWV1ZV9z ZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWR4LA0KDQoNCg0K ICAgICAgICBuZnBfbmV0X3Jlc2V0X3R4X3F1ZXVlKHR4cSk7DQoNCg0KDQotICAgICAgIGRldi0+ ZGF0YS0+dHhfcXVldWVzW3F1ZXVlX2lkeF0gPSB0eHE7DQoNCiAgICAgICAgdHhxLT5odyA9IGh3 Ow0KDQoNCg0KICAgICAgICAvKg0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmZwL25mcF9y eHR4LmggYi9kcml2ZXJzL25ldC9uZnAvbmZwX3J4dHguaA0KDQppbmRleCBiMGE4YmY4MWIwLi5h YjQ5ODk4NjA1IDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9uZnAvbmZwX3J4dHguaA0KDQor KysgYi9kcml2ZXJzL25ldC9uZnAvbmZwX3J4dHguaA0KDQpAQCAtMjc5LDEzICsyNzksMTMgQEAg dWludDMyX3QgbmZwX25ldF9yeF9xdWV1ZV9jb3VudChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwN Cg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgcXVldWVf aWR4KTsNCg0KIHVpbnQxNl90IG5mcF9uZXRfcmVjdl9wa3RzKHZvaWQgKnJ4X3F1ZXVlLCBzdHJ1 Y3QgcnRlX21idWYgKipyeF9wa3RzLA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDE2X3QgbmJfcGt0cyk7DQoNCi12b2lkIG5mcF9uZXRfcnhfcXVldWVfcmVsZWFzZSh2 b2lkICpyeHEpOw0KDQordm9pZCBuZnBfbmV0X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkeCk7DQoNCiB2b2lkIG5mcF9uZXRfcmVzZXRf cnhfcXVldWUoc3RydWN0IG5mcF9uZXRfcnhxICpyeHEpOw0KDQogaW50IG5mcF9uZXRfcnhfcXVl dWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkeCwNCg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IG5iX2Rlc2MsIHVuc2ln bmVkIGludCBzb2NrZXRfaWQsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYgKnJ4X2NvbmYsDQoNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wKTsNCg0KLXZvaWQgbmZwX25l dF90eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnR4cSk7DQoNCit2b2lkIG5mcF9uZXRfdHhfcXVldWVf cmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWR4KTsNCg0K IHZvaWQgbmZwX25ldF9yZXNldF90eF9xdWV1ZShzdHJ1Y3QgbmZwX25ldF90eHEgKnR4cSk7DQoN CiBpbnQgbmZwX25ldF90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWlu dDE2X3QgcXVldWVfaWR4LA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDE2X3QgbmJfZGVzYywgdW5zaWduZWQgaW50IHNvY2tldF9pZCwNCg0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L25nYmUvbmdiZV9ldGhkZXYuaCBiL2RyaXZlcnMvbmV0L25nYmUvbmdiZV9ldGhk ZXYuaA0KDQppbmRleCA3ZmI3MmYzZjFmLi5jMDM5ZTdkY2MzIDEwMDY0NA0KDQotLS0gYS9kcml2 ZXJzL25ldC9uZ2JlL25nYmVfZXRoZGV2LmgNCg0KKysrIGIvZHJpdmVycy9uZXQvbmdiZS9uZ2Jl X2V0aGRldi5oDQoNCkBAIC02OSw5ICs2OSw5IEBAIHZvaWQgbmdiZV9kZXZfY2xlYXJfcXVldWVz KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KTsNCg0KDQoNCiB2b2lkIG5nYmVfZGV2X2ZyZWVfcXVl dWVzKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KTsNCg0KDQoNCi12b2lkIG5nYmVfZGV2X3J4X3F1 ZXVlX3JlbGVhc2Uodm9pZCAqcnhxKTsNCg0KK3ZvaWQgbmdiZV9kZXZfcnhfcXVldWVfcmVsZWFz ZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKTsNCg0KDQoNCi12b2lkIG5n YmVfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhxKTsNCg0KK3ZvaWQgbmdiZV9kZXZfdHhf cXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKTsNCg0K DQoNCiBpbnQgIG5nYmVfZGV2X3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LCB1aW50MTZfdCByeF9xdWV1ZV9pZCwNCg0KICAgICAgICAgICAgICAgIHVpbnQxNl90IG5iX3J4 X2Rlc2MsIHVuc2lnbmVkIGludCBzb2NrZXRfaWQsDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9uZ2JlL25nYmVfcnh0eC5jIGIvZHJpdmVycy9uZXQvbmdiZS9uZ2JlX3J4dHguYw0KDQppbmRl eCA1YzA2ZTBkNTUwLi5kNTA4MDE1YmQyIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9uZ2Jl L25nYmVfcnh0eC5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L25nYmUvbmdiZV9yeHR4LmMNCg0KQEAg LTQ1Myw5ICs0NTMsOSBAQCBuZ2JlX3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IG5nYmVfdHhfcXVl dWUgKnR4cSkNCg0KIH0NCg0KDQoNCiB2b2lkDQoNCi1uZ2JlX2Rldl90eF9xdWV1ZV9yZWxlYXNl KHZvaWQgKnR4cSkNCg0KK25nYmVfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KLSAgICAgICBuZ2JlX3R4X3F1ZXVlX3Jl bGVhc2UodHhxKTsNCg0KKyAgICAgICBuZ2JlX3R4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT50 eF9xdWV1ZXNbcWlkXSk7DQoNCiB9DQoNCg0KDQogLyogKFJlKXNldCBkeW5hbWljIG5nYmVfdHhf cXVldWUgZmllbGRzIHRvIGRlZmF1bHRzICovDQoNCkBAIC02NzMsOSArNjczLDkgQEAgbmdiZV9y eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBuZ2JlX3J4X3F1ZXVlICpyeHEpDQoNCiB9DQoNCg0KDQog dm9pZA0KDQotbmdiZV9kZXZfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpyeHEpDQoNCituZ2JlX2Rl dl9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQp DQoNCiB7DQoNCi0gICAgICAgbmdiZV9yeF9xdWV1ZV9yZWxlYXNlKHJ4cSk7DQoNCisgICAgICAg bmdiZV9yeF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+cnhfcXVldWVzW3FpZF0pOw0KDQogfQ0K DQoNCg0KIC8qDQoNCkBAIC05MTYsMTMgKzkxNiwxMyBAQCBuZ2JlX2Rldl9mcmVlX3F1ZXVlcyhz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCg0KICAgICAgICBQTURfSU5JVF9GVU5DX1RSQUNFKCk7 DQoNCg0KDQogICAgICAgIGZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlczsg aSsrKSB7DQoNCi0gICAgICAgICAgICAgICBuZ2JlX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKGRldi0+ ZGF0YS0+cnhfcXVldWVzW2ldKTsNCg0KKyAgICAgICAgICAgICAgIG5nYmVfZGV2X3J4X3F1ZXVl X3JlbGVhc2UoZGV2LCBpKTsNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+cnhfcXVldWVz W2ldID0gTlVMTDsNCg0KICAgICAgICB9DQoNCiAgICAgICAgZGV2LT5kYXRhLT5uYl9yeF9xdWV1 ZXMgPSAwOw0KDQoNCg0KICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl90eF9x dWV1ZXM7IGkrKykgew0KDQotICAgICAgICAgICAgICAgbmdiZV9kZXZfdHhfcXVldWVfcmVsZWFz ZShkZXYtPmRhdGEtPnR4X3F1ZXVlc1tpXSk7DQoNCisgICAgICAgICAgICAgICBuZ2JlX2Rldl90 eF9xdWV1ZV9yZWxlYXNlKGRldiwgaSk7DQoNCiAgICAgICAgICAgICAgICBkZXYtPmRhdGEtPnR4 X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQogICAgICAgIGRldi0+ZGF0YS0+bmJf dHhfcXVldWVzID0gMDsNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L251bGwvcnRlX2V0aF9u dWxsLmMgYi9kcml2ZXJzL25ldC9udWxsL3J0ZV9ldGhfbnVsbC5jDQoNCmluZGV4IDUwOGJhZmMx MmEuLjI1YjllNWIxY2UgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L251bGwvcnRlX2V0aF9u dWxsLmMNCg0KKysrIGIvZHJpdmVycy9uZXQvbnVsbC9ydGVfZXRoX251bGwuYw0KDQpAQCAtMzUz LDE0ICszNTMsMjQgQEAgZXRoX3N0YXRzX3Jlc2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0K DQogfQ0KDQoNCg0KIHN0YXRpYyB2b2lkDQoNCi1ldGhfcXVldWVfcmVsZWFzZSh2b2lkICpxKQ0K DQorZXRoX3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90 IHFpZCkNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3QgbnVsbF9xdWV1ZSAqbnE7DQoNCisgICAgICAg c3RydWN0IG51bGxfcXVldWUgKm5xID0gZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcWlkXTsNCg0KDQoN Ci0gICAgICAgaWYgKHEgPT0gTlVMTCkNCg0KKyAgICAgICBpZiAobnEgPT0gTlVMTCkNCg0KKyAg ICAgICAgICAgICAgIHJldHVybjsNCg0KKw0KDQorICAgICAgIHJ0ZV9mcmVlKG5xLT5kdW1teV9w YWNrZXQpOw0KDQorfQ0KDQorDQoNCitzdGF0aWMgdm9pZA0KDQorZXRoX3R4X3F1ZXVlX3JlbGVh c2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KK3sNCg0KKyAgICAg ICBzdHJ1Y3QgbnVsbF9xdWV1ZSAqbnEgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdOw0KDQor DQoNCisgICAgICAgaWYgKG5xID09IE5VTEwpDQoNCiAgICAgICAgICAgICAgICByZXR1cm47DQoN Cg0KDQotICAgICAgIG5xID0gcTsNCg0KICAgICAgICBydGVfZnJlZShucS0+ZHVtbXlfcGFja2V0 KTsNCg0KIH0NCg0KDQoNCkBAIC00ODMsOCArNDkzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBl dGhfZGV2X29wcyBvcHMgPSB7DQoNCiAgICAgICAgLmRldl9pbmZvc19nZXQgPSBldGhfZGV2X2lu Zm8sDQoNCiAgICAgICAgLnJ4X3F1ZXVlX3NldHVwID0gZXRoX3J4X3F1ZXVlX3NldHVwLA0KDQog ICAgICAgIC50eF9xdWV1ZV9zZXR1cCA9IGV0aF90eF9xdWV1ZV9zZXR1cCwNCg0KLSAgICAgICAu cnhfcXVldWVfcmVsZWFzZSA9IGV0aF9xdWV1ZV9yZWxlYXNlLA0KDQotICAgICAgIC50eF9xdWV1 ZV9yZWxlYXNlID0gZXRoX3F1ZXVlX3JlbGVhc2UsDQoNCisgICAgICAgLnJ4X3F1ZXVlX3JlbGVh c2UgPSBldGhfcnhfcXVldWVfcmVsZWFzZSwNCg0KKyAgICAgICAudHhfcXVldWVfcmVsZWFzZSA9 IGV0aF90eF9xdWV1ZV9yZWxlYXNlLA0KDQogICAgICAgIC5tdHVfc2V0ID0gZXRoX210dV9zZXQs DQoNCiAgICAgICAgLmxpbmtfdXBkYXRlID0gZXRoX2xpbmtfdXBkYXRlLA0KDQogICAgICAgIC5t YWNfYWRkcl9zZXQgPSBldGhfbWFjX2FkZHJlc3Nfc2V0LA0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvb2N0ZW9udHgvb2N0ZW9udHhfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC9vY3Rlb250eC9v Y3Rlb250eF9ldGhkZXYuYw0KDQppbmRleCA5ZjRjMDUwM2I0Li43YzkxNDk0ZjBlIDEwMDY0NA0K DQotLS0gYS9kcml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhkZXYuYw0KDQorKysgYi9k cml2ZXJzL25ldC9vY3Rlb250eC9vY3Rlb250eF9ldGhkZXYuYw0KDQpAQCAtOTcxLDIwICs5NzEs MTggQEAgb2N0ZW9udHhfZGV2X3R4X3F1ZXVlX3N0b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs IHVpbnQxNl90IHFpZHgpDQoNCiB9DQoNCg0KDQogc3RhdGljIHZvaWQNCg0KLW9jdGVvbnR4X2Rl dl90eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnR4X3F1ZXVlKQ0KDQorb2N0ZW9udHhfZGV2X3R4X3F1 ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsN Cg0KLSAgICAgICBzdHJ1Y3Qgb2N0ZW9udHhfdHhxICp0eHEgPSB0eF9xdWV1ZTsNCg0KICAgICAg ICBpbnQgcmVzOw0KDQoNCg0KICAgICAgICBQTURfSU5JVF9GVU5DX1RSQUNFKCk7DQoNCg0KDQot ICAgICAgIGlmICh0eHEpIHsNCg0KLSAgICAgICAgICAgICAgIHJlcyA9IG9jdGVvbnR4X2Rldl90 eF9xdWV1ZV9zdG9wKHR4cS0+ZXRoX2RldiwgdHhxLT5xdWV1ZV9pZCk7DQoNCisgICAgICAgaWYg KGRldi0+ZGF0YS0+dHhfcXVldWVzW3FpZF0pIHsNCg0KKyAgICAgICAgICAgICAgIHJlcyA9IG9j dGVvbnR4X2Rldl90eF9xdWV1ZV9zdG9wKGRldiwgcWlkKTsNCg0KICAgICAgICAgICAgICAgIGlm IChyZXMgPCAwKQ0KDQotICAgICAgICAgICAgICAgICAgICAgICBvY3Rlb250eF9sb2dfZXJyKCJm YWlsZWQgc3RvcCB0eF9xdWV1ZSglZClcbiIsDQoNCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdHhxLT5xdWV1ZV9pZCk7DQoNCisgICAgICAgICAgICAgICAgICAgICAgIG9jdGVv bnR4X2xvZ19lcnIoImZhaWxlZCBzdG9wIHR4X3F1ZXVlKCVkKVxuIiwgcWlkKTsNCg0KDQoNCi0g ICAgICAgICAgICAgICBydGVfZnJlZSh0eHEpOw0KDQorICAgICAgICAgICAgICAgcnRlX2ZyZWUo ZGV2LT5kYXRhLT50eF9xdWV1ZXNbcWlkXSk7DQoNCiAgICAgICAgfQ0KDQogfQ0KDQoNCg0KQEAg LTEwMTMsNyArMTAxMSw3IEBAIG9jdGVvbnR4X2Rldl90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkeCwNCg0KICAgICAgICBpZiAoZGV2LT5kYXRhLT50 eF9xdWV1ZXNbcWlkeF0gIT0gTlVMTCkgew0KDQogICAgICAgICAgICAgICAgUE1EX1RYX0xPRyhE RUJVRywgImZyZWVpbmcgbWVtb3J5IHByaW9yIHRvIHJlLWFsbG9jYXRpb24gJWQiLA0KDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFpZHgpOw0KDQotICAgICAgICAgICAgICAgb2N0 ZW9udHhfZGV2X3R4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT50eF9xdWV1ZXNbcWlkeF0pOw0K DQorICAgICAgICAgICAgICAgb2N0ZW9udHhfZGV2X3R4X3F1ZXVlX3JlbGVhc2UoZGV2LCBxaWR4 KTsNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+dHhfcXVldWVzW3FpZHhdID0gTlVMTDsN Cg0KICAgICAgICB9DQoNCg0KDQpAQCAtMTIyMSw5ICsxMjE5LDkgQEAgb2N0ZW9udHhfZGV2X3J4 X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWR4LA0KDQog fQ0KDQoNCg0KIHN0YXRpYyB2b2lkDQoNCi1vY3Rlb250eF9kZXZfcnhfcXVldWVfcmVsZWFzZSh2 b2lkICpyeHEpDQoNCitvY3Rlb250eF9kZXZfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKQ0KDQogew0KDQotICAgICAgIHJ0ZV9mcmVlKHJ4cSk7 DQoNCisgICAgICAgcnRlX2ZyZWUoZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcWlkXSk7DQoNCiB9DQoN Cg0KDQogc3RhdGljIGNvbnN0IHVpbnQzMl90ICoNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L29jdGVvbnR4Mi9vdHgyX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRo ZGV2LmMNCg0KaW5kZXggNzVkNGNhYmYyZS4uZDU3NmJjNjk4OSAxMDA2NDQNCg0KLS0tIGEvZHJp dmVycy9uZXQvb2N0ZW9udHgyL290eDJfZXRoZGV2LmMNCg0KKysrIGIvZHJpdmVycy9uZXQvb2N0 ZW9udHgyL290eDJfZXRoZGV2LmMNCg0KQEAgLTU1NSwxNiArNTU1LDE3IEBAIG90eDJfbml4X3J4 cV9tYnVmX3NldHVwKHN0cnVjdCBvdHgyX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcG9ydF9pZCkN Cg0KIH0NCg0KDQoNCiBzdGF0aWMgdm9pZA0KDQotb3R4Ml9uaXhfcnhfcXVldWVfcmVsZWFzZSh2 b2lkICpyeF9xdWV1ZSkNCg0KK290eDJfbml4X3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3Qgb3R4Ml9l dGhfcnhxICpyeHEgPSByeF9xdWV1ZTsNCg0KKyAgICAgICBzdHJ1Y3Qgb3R4Ml9ldGhfcnhxICpy eHEgPSBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1txaWRdOw0KDQoNCg0KICAgICAgICBpZiAoIXJ4cSkN Cg0KICAgICAgICAgICAgICAgIHJldHVybjsNCg0KDQoNCiAgICAgICAgb3R4Ml9uaXhfZGJnKCJS ZWxlYXNpbmcgcnhxICV1IiwgcnhxLT5ycSk7DQoNCiAgICAgICAgbml4X2NxX3JxX3VuaW5pdChy eHEtPmV0aF9kZXYsIHJ4cSk7DQoNCi0gICAgICAgcnRlX2ZyZWUocnhfcXVldWUpOw0KDQorICAg ICAgIHJ0ZV9mcmVlKHJ4cSk7DQoNCisgICAgICAgZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcWlkXSA9 IE5VTEw7DQoNCiB9DQoNCg0KDQogc3RhdGljIGludA0KDQpAQCAtNjA4LDkgKzYwOSw4IEBAIG90 eDJfbml4X3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdWludDE2 X3QgcnEsDQoNCiAgICAgICAgLyogRnJlZSBtZW1vcnkgcHJpb3IgdG8gcmUtYWxsb2NhdGlvbiBp ZiBuZWVkZWQgKi8NCg0KICAgICAgICBpZiAoZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW3JxXSAh PSBOVUxMKSB7DQoNCiAgICAgICAgICAgICAgICBvdHgyX25peF9kYmcoIkZyZWVpbmcgbWVtb3J5 IHByaW9yIHRvIHJlLWFsbG9jYXRpb24gJWQiLCBycSk7DQoNCi0gICAgICAgICAgICAgICBvdHgy X25peF9yeF9xdWV1ZV9yZWxlYXNlKGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlc1tycV0pOw0KDQor ICAgICAgICAgICAgICAgb3R4Ml9uaXhfcnhfcXVldWVfcmVsZWFzZShldGhfZGV2LCBycSk7DQoN CiAgICAgICAgICAgICAgICBydGVfZXRoX2RtYV96b25lX2ZyZWUoZXRoX2RldiwgImNxIiwgcnEp Ow0KDQotICAgICAgICAgICAgICAgZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW3JxXSA9IE5VTEw7 DQoNCiAgICAgICAgfQ0KDQoNCg0KICAgICAgICBvZmZsb2FkcyA9IHJ4X2NvbmYtPm9mZmxvYWRz IHwgZXRoX2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzOw0KDQpAQCAtNjQxLDYg KzY0MSw4IEBAIG90eDJfbml4X3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZXRo X2RldiwgdWludDE2X3QgcnEsDQoNCiAgICAgICAgcnhxLT5sb29rdXBfbWVtID0gb3R4Ml9uaXhf ZmFzdHBhdGhfbG9va3VwX21lbV9nZXQoKTsNCg0KICAgICAgICByeHEtPnRzdGFtcCA9ICZkZXYt PnRzdGFtcDsNCg0KDQoNCisgICAgICAgZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW3JxXSA9IHJ4 cTsNCg0KKw0KDQogICAgICAgIC8qIEFsbG9jIGNvbXBsZXRpb24gcXVldWUgKi8NCg0KICAgICAg ICByYyA9IG5peF9jcV9ycV9pbml0KGV0aF9kZXYsIGRldiwgcnEsIHJ4cSwgbXApOw0KDQogICAg ICAgIGlmIChyYykgew0KDQpAQCAtNjU3LDcgKzY1OSw2IEBAIG90eDJfbml4X3J4X3F1ZXVlX3Nl dHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdWludDE2X3QgcnEsDQoNCiAgICAgICAg b3R4Ml9uaXhfZGJnKCJycT0lZCBwb29sPSVzIHFzaXplPSVkIG5iX2Rlc2M9JWQtPiVkIiwNCg0K ICAgICAgICAgICAgICAgICAgICAgcnEsIG1wLT5uYW1lLCBxc2l6ZSwgbmJfZGVzYywgcnhxLT5x bGVuKTsNCg0KDQoNCi0gICAgICAgZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW3JxXSA9IHJ4cTsN Cg0KICAgICAgICBldGhfZGV2LT5kYXRhLT5yeF9xdWV1ZV9zdGF0ZVtycV0gPSBSVEVfRVRIX1FV RVVFX1NUQVRFX1NUT1BQRUQ7DQoNCg0KDQogICAgICAgIC8qIENhbGN1bGF0aW5nIGRlbHRhIGFu ZCBmcmVxIG11bHQgYmV0d2VlbiBQVFAgSEkgY2xvY2sgYW5kIHRzYy4NCg0KQEAgLTY3OSw3ICs2 ODAsNyBAQCBvdHgyX25peF9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9k ZXYsIHVpbnQxNl90IHJxLA0KDQogICAgICAgIHJldHVybiAwOw0KDQoNCg0KIGZyZWVfcnhxOg0K DQotICAgICAgIG90eDJfbml4X3J4X3F1ZXVlX3JlbGVhc2UocnhxKTsNCg0KKyAgICAgICBvdHgy X25peF9yeF9xdWV1ZV9yZWxlYXNlKGV0aF9kZXYsIHJxKTsNCg0KIGZhaWw6DQoNCiAgICAgICAg cmV0dXJuIHJjOw0KDQogfQ0KDQpAQCAtMTIxNywxNiArMTIxOCwxMyBAQCBvdHgyX25peF9mb3Jt X2RlZmF1bHRfZGVzYyhzdHJ1Y3Qgb3R4Ml9ldGhfdHhxICp0eHEpDQoNCiB9DQoNCg0KDQogc3Rh dGljIHZvaWQNCg0KLW90eDJfbml4X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqX3R4cSkNCg0KK290 eDJfbml4X3R4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1aW50 MTZfdCBxaWQpDQoNCiB7DQoNCi0gICAgICAgc3RydWN0IG90eDJfZXRoX3R4cSAqdHhxID0gX3R4 cTsNCg0KLSAgICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXY7DQoNCisgICAgICAgc3Ry dWN0IG90eDJfZXRoX3R4cSAqdHhxID0gZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVzW3FpZF07DQoN Cg0KDQogICAgICAgIGlmICghdHhxKQ0KDQogICAgICAgICAgICAgICAgcmV0dXJuOw0KDQoNCg0K LSAgICAgICBldGhfZGV2ID0gdHhxLT5kZXYtPmV0aF9kZXY7DQoNCi0NCg0KICAgICAgICBvdHgy X25peF9kYmcoIlJlbGVhc2luZyB0eHEgJXUiLCB0eHEtPnNxKTsNCg0KDQoNCiAgICAgICAgLyog Rmx1c2ggYW5kIGRpc2FibGUgdG0gKi8NCg0KQEAgLTEyNDEsNiArMTIzOSw3IEBAIG90eDJfbml4 X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqX3R4cSkNCg0KICAgICAgICB9DQoNCiAgICAgICAgb3R4 Ml9uaXhfc3FfZmx1c2hfcG9zdCh0eHEpOw0KDQogICAgICAgIHJ0ZV9mcmVlKHR4cSk7DQoNCisg ICAgICAgZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVzW3FpZF0gPSBOVUxMOw0KDQogfQ0KDQoNCg0K DQoNCkBAIC0xMjY4LDggKzEyNjcsNyBAQCBvdHgyX25peF90eF9xdWV1ZV9zZXR1cChzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmV0aF9kZXYsIHVpbnQxNl90IHNxLA0KDQogICAgICAgIC8qIEZyZWUgbWVt b3J5IHByaW9yIHRvIHJlLWFsbG9jYXRpb24gaWYgbmVlZGVkLiAqLw0KDQogICAgICAgIGlmIChl dGhfZGV2LT5kYXRhLT50eF9xdWV1ZXNbc3FdICE9IE5VTEwpIHsNCg0KICAgICAgICAgICAgICAg IG90eDJfbml4X2RiZygiRnJlZWluZyBtZW1vcnkgcHJpb3IgdG8gcmUtYWxsb2NhdGlvbiAlZCIs IHNxKTsNCg0KLSAgICAgICAgICAgICAgIG90eDJfbml4X3R4X3F1ZXVlX3JlbGVhc2UoZXRoX2Rl di0+ZGF0YS0+dHhfcXVldWVzW3NxXSk7DQoNCi0gICAgICAgICAgICAgICBldGhfZGV2LT5kYXRh LT50eF9xdWV1ZXNbc3FdID0gTlVMTDsNCg0KKyAgICAgICAgICAgICAgIG90eDJfbml4X3R4X3F1 ZXVlX3JlbGVhc2UoZXRoX2Rldiwgc3EpOw0KDQogICAgICAgIH0NCg0KDQoNCiAgICAgICAgLyog RmluZCB0aGUgZXhwZWN0ZWQgb2ZmbG9hZHMgZm9yIHRoaXMgcXVldWUgKi8NCg0KQEAgLTEyODgs NiArMTI4Niw3IEBAIG90eDJfbml4X3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAq ZXRoX2RldiwgdWludDE2X3Qgc3EsDQoNCiAgICAgICAgdHhxLT5zcWJfcG9vbCA9IE5VTEw7DQoN CiAgICAgICAgdHhxLT5vZmZsb2FkcyA9IG9mZmxvYWRzOw0KDQogICAgICAgIGRldi0+dHhfb2Zm bG9hZHMgfD0gb2ZmbG9hZHM7DQoNCisgICAgICAgZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVzW3Nx XSA9IHR4cTsNCg0KDQoNCiAgICAgICAgLyoNCg0KICAgICAgICAgKiBBbGxvY2F0ZSBtZW1vcnkg Zm9yIGZsb3cgY29udHJvbCB1cGRhdGVzIGZyb20gSFcuDQoNCkBAIC0xMzM0LDEyICsxMzMzLDEx IEBAIG90eDJfbml4X3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rldiwg dWludDE2X3Qgc3EsDQoNCiAgICAgICAgICAgICAgICAgICAgICIgbG10X2FkZHI9JXAgbmJfc3Fi X2J1ZnM9JWQgc3Flc19wZXJfc3FiX2xvZzI9JWQiLCBzcSwNCg0KICAgICAgICAgICAgICAgICAg ICAgZmMtPmFkZHIsIG9mZmxvYWRzLCB0eHEtPnNxYl9wb29sLT5wb29sX2lkLCB0eHEtPmxtdF9h ZGRyLA0KDQogICAgICAgICAgICAgICAgICAgICB0eHEtPm5iX3NxYl9idWZzLCB0eHEtPnNxZXNf cGVyX3NxYl9sb2cyKTsNCg0KLSAgICAgICBldGhfZGV2LT5kYXRhLT50eF9xdWV1ZXNbc3FdID0g dHhxOw0KDQogICAgICAgIGV0aF9kZXYtPmRhdGEtPnR4X3F1ZXVlX3N0YXRlW3NxXSA9IFJURV9F VEhfUVVFVUVfU1RBVEVfU1RPUFBFRDsNCg0KICAgICAgICByZXR1cm4gMDsNCg0KDQoNCiBmcmVl X3R4cToNCg0KLSAgICAgICBvdHgyX25peF90eF9xdWV1ZV9yZWxlYXNlKHR4cSk7DQoNCisgICAg ICAgb3R4Ml9uaXhfdHhfcXVldWVfcmVsZWFzZShldGhfZGV2LCBzcSk7DQoNCiBmYWlsOg0KDQog ICAgICAgIHJldHVybiByYzsNCg0KIH0NCg0KQEAgLTEzNzgsOCArMTM3Niw3IEBAIG5peF9zdG9y ZV9xdWV1ZV9jZmdfYW5kX3RoZW5fcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYp DQoNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBtZW1jcHkoJnR4X3Fjb25m W2ldLCAmdHhxW2ldLT5xY29uZiwgc2l6ZW9mKCp0eF9xY29uZikpOw0KDQogICAgICAgICAgICAg ICAgdHhfcWNvbmZbaV0udmFsaWQgPSB0cnVlOw0KDQotICAgICAgICAgICAgICAgb3R4Ml9uaXhf dHhfcXVldWVfcmVsZWFzZSh0eHFbaV0pOw0KDQotICAgICAgICAgICAgICAgZXRoX2Rldi0+ZGF0 YS0+dHhfcXVldWVzW2ldID0gTlVMTDsNCg0KKyAgICAgICAgICAgICAgIG90eDJfbml4X3R4X3F1 ZXVlX3JlbGVhc2UoZXRoX2RldiwgaSk7DQoNCiAgICAgICAgfQ0KDQoNCg0KICAgICAgICByeHEg PSAoc3RydWN0IG90eDJfZXRoX3J4cSAqKilldGhfZGV2LT5kYXRhLT5yeF9xdWV1ZXM7DQoNCkBA IC0xMzkxLDggKzEzODgsNyBAQCBuaXhfc3RvcmVfcXVldWVfY2ZnX2FuZF90aGVuX3JlbGVhc2Uo c3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQ0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgbWVtY3B5KCZyeF9xY29uZltpXSwgJnJ4cVtpXS0+cWNvbmYsIHNpemVvZigq cnhfcWNvbmYpKTsNCg0KICAgICAgICAgICAgICAgIHJ4X3Fjb25mW2ldLnZhbGlkID0gdHJ1ZTsN Cg0KLSAgICAgICAgICAgICAgIG90eDJfbml4X3J4X3F1ZXVlX3JlbGVhc2UocnhxW2ldKTsNCg0K LSAgICAgICAgICAgICAgIGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCisg ICAgICAgICAgICAgICBvdHgyX25peF9yeF9xdWV1ZV9yZWxlYXNlKGV0aF9kZXYsIGkpOw0KDQog ICAgICAgIH0NCg0KDQoNCiAgICAgICAgZGV2LT50eF9xY29uZiA9IHR4X3Fjb25mOw0KDQpAQCAt MTQxMiw4ICsxNDA4LDYgQEAgbml4X3Jlc3RvcmVfcXVldWVfY2ZnKHN0cnVjdCBydGVfZXRoX2Rl diAqZXRoX2RldikNCg0KICAgICAgICBzdHJ1Y3Qgb3R4Ml9ldGhfZGV2ICpkZXYgPSBvdHgyX2V0 aF9wbWRfcHJpdihldGhfZGV2KTsNCg0KICAgICAgICBzdHJ1Y3Qgb3R4Ml9ldGhfcWNvbmYgKnR4 X3Fjb25mID0gZGV2LT50eF9xY29uZjsNCg0KICAgICAgICBzdHJ1Y3Qgb3R4Ml9ldGhfcWNvbmYg KnJ4X3Fjb25mID0gZGV2LT5yeF9xY29uZjsNCg0KLSAgICAgICBzdHJ1Y3Qgb3R4Ml9ldGhfdHhx ICoqdHhxOw0KDQotICAgICAgIHN0cnVjdCBvdHgyX2V0aF9yeHEgKipyeHE7DQoNCiAgICAgICAg aW50IHJjLCBpLCBuYl9yeHEsIG5iX3R4cTsNCg0KDQoNCiAgICAgICAgbmJfcnhxID0gUlRFX01J TihkZXYtPmNvbmZpZ3VyZWRfbmJfcnhfcXMsIGV0aF9kZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcyk7 DQoNCkBAIC0xNDUwLDkgKzE0NDQsOCBAQCBuaXhfcmVzdG9yZV9xdWV1ZV9jZmcoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpldGhfZGV2KQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmdHhfcWNvbmZbaV0uY29uZi50eCk7DQoNCiAgICAgICAgICAgICAgICBpZiAo cmMpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgb3R4Ml9lcnIoIkZhaWxlZCB0byBzZXR1 cCB0eCBxdWV1ZSByYz0lZCIsIHJjKTsNCg0KLSAgICAgICAgICAgICAgICAgICAgICAgdHhxID0g KHN0cnVjdCBvdHgyX2V0aF90eHEgKiopZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVzOw0KDQogICAg ICAgICAgICAgICAgICAgICAgICBmb3IgKGkgLT0gMTsgaSA+PSAwOyBpLS0pDQoNCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb3R4Ml9uaXhfdHhfcXVldWVfcmVsZWFzZSh0eHFbaV0p Ow0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90eDJfbml4X3R4X3F1ZXVlX3Jl bGVhc2UoZXRoX2RldiwgaSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsN Cg0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICB9DQoNCkBAIC0xNDY4LDkgKzE0NjEsOCBA QCBuaXhfcmVzdG9yZV9xdWV1ZV9jZmcoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQ0KDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByeF9xY29uZltpXS5t ZW1wb29sKTsNCg0KICAgICAgICAgICAgICAgIGlmIChyYykgew0KDQogICAgICAgICAgICAgICAg ICAgICAgICBvdHgyX2VycigiRmFpbGVkIHRvIHNldHVwIHJ4IHF1ZXVlIHJjPSVkIiwgcmMpOw0K DQotICAgICAgICAgICAgICAgICAgICAgICByeHEgPSAoc3RydWN0IG90eDJfZXRoX3J4cSAqKill dGhfZGV2LT5kYXRhLT5yeF9xdWV1ZXM7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAo aSAtPSAxOyBpID49IDA7IGktLSkNCg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv dHgyX25peF9yeF9xdWV1ZV9yZWxlYXNlKHJ4cVtpXSk7DQoNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb3R4Ml9uaXhfcnhfcXVldWVfcmVsZWFzZShldGhfZGV2LCBpKTsNCg0KICAg ICAgICAgICAgICAgICAgICAgICAgZ290byByZWxlYXNlX3R4X3F1ZXVlczsNCg0KICAgICAgICAg ICAgICAgIH0NCg0KICAgICAgICB9DQoNCkBAIC0xNDgwLDkgKzE0NzIsOCBAQCBuaXhfcmVzdG9y ZV9xdWV1ZV9jZmcoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQ0KDQogICAgICAgIHJldHVy biAwOw0KDQoNCg0KIHJlbGVhc2VfdHhfcXVldWVzOg0KDQotICAgICAgIHR4cSA9IChzdHJ1Y3Qg b3R4Ml9ldGhfdHhxICoqKWV0aF9kZXYtPmRhdGEtPnR4X3F1ZXVlczsNCg0KICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgZXRoX2Rldi0+ZGF0YS0+bmJfdHhfcXVldWVzOyBpKyspDQoNCi0gICAgICAg ICAgICAgICBvdHgyX25peF90eF9xdWV1ZV9yZWxlYXNlKHR4cVtpXSk7DQoNCisgICAgICAgICAg ICAgICBvdHgyX25peF90eF9xdWV1ZV9yZWxlYXNlKGV0aF9kZXYsIGkpOw0KDQogZmFpbDoNCg0K ICAgICAgICBpZiAodHhfcWNvbmYpDQoNCiAgICAgICAgICAgICAgICBmcmVlKHR4X3Fjb25mKTsN Cg0KQEAgLTI2NDcsMTcgKzI2MzgsMTMgQEAgb3R4Ml9ldGhfZGV2X3VuaW5pdChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmV0aF9kZXYsIGJvb2wgbWJveF9jbG9zZSkNCg0KICAgICAgICBkZXYtPm9wcyA9 IE5VTEw7DQoNCg0KDQogICAgICAgIC8qIEZyZWUgdXAgU1FzICovDQoNCi0gICAgICAgZm9yIChp ID0gMDsgaSA8IGV0aF9kZXYtPmRhdGEtPm5iX3R4X3F1ZXVlczsgaSsrKSB7DQoNCi0gICAgICAg ICAgICAgICBvdHgyX25peF90eF9xdWV1ZV9yZWxlYXNlKGV0aF9kZXYtPmRhdGEtPnR4X3F1ZXVl c1tpXSk7DQoNCi0gICAgICAgICAgICAgICBldGhfZGV2LT5kYXRhLT50eF9xdWV1ZXNbaV0gPSBO VUxMOw0KDQotICAgICAgIH0NCg0KKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgZXRoX2Rldi0+ZGF0 YS0+bmJfdHhfcXVldWVzOyBpKyspDQoNCisgICAgICAgICAgICAgICBvdHgyX25peF90eF9xdWV1 ZV9yZWxlYXNlKGV0aF9kZXYsIGkpOw0KDQogICAgICAgIGV0aF9kZXYtPmRhdGEtPm5iX3R4X3F1 ZXVlcyA9IDA7DQoNCg0KDQogICAgICAgIC8qIEZyZWUgdXAgUlEncyBhbmQgQ1EncyAqLw0KDQot ICAgICAgIGZvciAoaSA9IDA7IGkgPCBldGhfZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7IGkrKykg ew0KDQotICAgICAgICAgICAgICAgb3R4Ml9uaXhfcnhfcXVldWVfcmVsZWFzZShldGhfZGV2LT5k YXRhLT5yeF9xdWV1ZXNbaV0pOw0KDQotICAgICAgICAgICAgICAgZXRoX2Rldi0+ZGF0YS0+cnhf cXVldWVzW2ldID0gTlVMTDsNCg0KLSAgICAgICB9DQoNCisgICAgICAgZm9yIChpID0gMDsgaSA8 IGV0aF9kZXYtPmRhdGEtPm5iX3J4X3F1ZXVlczsgaSsrKQ0KDQorICAgICAgICAgICAgICAgb3R4 Ml9uaXhfcnhfcXVldWVfcmVsZWFzZShldGhfZGV2LCBpKTsNCg0KICAgICAgICBldGhfZGV2LT5k YXRhLT5uYl9yeF9xdWV1ZXMgPSAwOw0KDQoNCg0KICAgICAgICAvKiBGcmVlIHRtIHJlc291cmNl cyAqLw0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvb2N0ZW9udHhfZXAvb3R4X2VwX2V0aGRl di5jIGIvZHJpdmVycy9uZXQvb2N0ZW9udHhfZXAvb3R4X2VwX2V0aGRldi5jDQoNCmluZGV4IGEy NDM2ODNkNjEuLjMxNjkyN2YyOGMgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L29jdGVvbnR4 X2VwL290eF9lcF9ldGhkZXYuYw0KDQorKysgYi9kcml2ZXJzL25ldC9vY3Rlb250eF9lcC9vdHhf ZXBfZXRoZGV2LmMNCg0KQEAgLTI0OCwxNiArMjQ4LDE4IEBAIG90eF9lcF9yeF9xdWV1ZV9zZXR1 cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHVpbnQxNl90IHFfbm8sDQoNCiAgKiBSZWxl YXNlIHRoZSByZWNlaXZlIHF1ZXVlL3JpbmdidWZmZXIuIENhbGxlZCBieQ0KDQogICogdGhlIHVw cGVyIGxheWVycy4NCg0KICAqDQoNCi0gKiBAcGFyYW0gcnhxDQoNCi0gKiAgICBPcGFxdWUgcG9p bnRlciB0byB0aGUgcmVjZWl2ZSBxdWV1ZSB0byByZWxlYXNlDQoNCisgKiBAcGFyYW0gZGV2DQoN CisgKiAgICBQb2ludGVyIHRvIHRoZSBzdHJ1Y3R1cmUgcnRlX2V0aF9kZXYNCg0KKyAqIEBwYXJh bSBxX25vDQoNCisgKiAgICBRdWV1ZSBudW1iZXINCg0KICAqDQoNCiAgKiBAcmV0dXJuDQoNCiAg KiAgICAtIG5vdGhpbmcNCg0KICAqLw0KDQogc3RhdGljIHZvaWQNCg0KLW90eF9lcF9yeF9xdWV1 ZV9yZWxlYXNlKHZvaWQgKnJ4cSkNCg0KK290eF9lcF9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxX25vKQ0KDQogew0KDQotICAgICAgIHN0cnVjdCBv dHhfZXBfZHJvcSAqcnEgPSAoc3RydWN0IG90eF9lcF9kcm9xICopcnhxOw0KDQorICAgICAgIHN0 cnVjdCBvdHhfZXBfZHJvcSAqcnEgPSBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1txX25vXTsNCg0KICAg ICAgICBzdHJ1Y3Qgb3R4X2VwX2RldmljZSAqb3R4X2VwdmYgPSBycS0+b3R4X2VwX2RldjsNCg0K ICAgICAgICBpbnQgcV9pZCA9IHJxLT5xX25vOw0KDQoNCg0KQEAgLTMyMSwxNiArMzIzLDE4IEBA IG90eF9lcF90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHVpbnQx Nl90IHFfbm8sDQoNCiAgKiBSZWxlYXNlIHRoZSB0cmFuc21pdCBxdWV1ZS9yaW5nYnVmZmVyLiBD YWxsZWQgYnkNCg0KICAqIHRoZSB1cHBlciBsYXllcnMuDQoNCiAgKg0KDQotICogQHBhcmFtIHR4 cQ0KDQotICogICAgT3BhcXVlIHBvaW50ZXIgdG8gdGhlIHRyYW5zbWl0IHF1ZXVlIHRvIHJlbGVh c2UNCg0KKyAqIEBwYXJhbSBkZXYNCg0KKyAqICAgIFBvaW50ZXIgdG8gdGhlIHN0cnVjdHVyZSBy dGVfZXRoX2Rldg0KDQorICogQHBhcmFtIHFfbm8NCg0KKyAqICAgIFF1ZXVlIG51bWJlcg0KDQog ICoNCg0KICAqIEByZXR1cm4NCg0KICAqICAgIC0gbm90aGluZw0KDQogICovDQoNCiBzdGF0aWMg dm9pZA0KDQotb3R4X2VwX3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhxKQ0KDQorb3R4X2VwX3R4 X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFfbm8pDQoN CiB7DQoNCi0gICAgICAgc3RydWN0IG90eF9lcF9pbnN0cl9xdWV1ZSAqdHEgPSAoc3RydWN0IG90 eF9lcF9pbnN0cl9xdWV1ZSAqKXR4cTsNCg0KKyAgICAgICBzdHJ1Y3Qgb3R4X2VwX2luc3RyX3F1 ZXVlICp0cSA9IGRldi0+ZGF0YS0+dHhfcXVldWVzW3Ffbm9dOw0KDQoNCg0KICAgICAgICBvdHhf ZXBfZGVsZXRlX2lxcyh0cS0+b3R4X2VwX2RldiwgdHEtPnFfbm8pOw0KDQogfQ0KDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvcGNhcC9wY2FwX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvcGNhcC9w Y2FwX2V0aGRldi5jDQoNCmluZGV4IDM1NjZhZWEwMTAuLmQ2OTVjNWVlZjcgMTAwNjQ0DQoNCi0t LSBhL2RyaXZlcnMvbmV0L3BjYXAvcGNhcF9ldGhkZXYuYw0KDQorKysgYi9kcml2ZXJzL25ldC9w Y2FwL3BjYXBfZXRoZGV2LmMNCg0KQEAgLTg1NywxMSArODU3LDYgQEAgZXRoX2Rldl9jbG9zZShz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCg0KICAgICAgICByZXR1cm4gMDsNCg0KIH0NCg0KDQoN Ci1zdGF0aWMgdm9pZA0KDQotZXRoX3F1ZXVlX3JlbGVhc2Uodm9pZCAqcSBfX3J0ZV91bnVzZWQp DQoNCi17DQoNCi19DQoNCi0NCg0KIHN0YXRpYyBpbnQNCg0KIGV0aF9saW5rX3VwZGF0ZShzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldiBfX3J0ZV91bnVzZWQsDQoNCiAgICAgICAgICAgICAgICBpbnQg d2FpdF90b19jb21wbGV0ZSBfX3J0ZV91bnVzZWQpDQoNCkBAIC0xMDA2LDggKzEwMDEsNiBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGV0aF9kZXZfb3BzIG9wcyA9IHsNCg0KICAgICAgICAudHhfcXVl dWVfc3RhcnQgPSBldGhfdHhfcXVldWVfc3RhcnQsDQoNCiAgICAgICAgLnJ4X3F1ZXVlX3N0b3Ag PSBldGhfcnhfcXVldWVfc3RvcCwNCg0KICAgICAgICAudHhfcXVldWVfc3RvcCA9IGV0aF90eF9x dWV1ZV9zdG9wLA0KDQotICAgICAgIC5yeF9xdWV1ZV9yZWxlYXNlID0gZXRoX3F1ZXVlX3JlbGVh c2UsDQoNCi0gICAgICAgLnR4X3F1ZXVlX3JlbGVhc2UgPSBldGhfcXVldWVfcmVsZWFzZSwNCg0K ICAgICAgICAubGlua191cGRhdGUgPSBldGhfbGlua191cGRhdGUsDQoNCiAgICAgICAgLnN0YXRz X2dldCA9IGV0aF9zdGF0c19nZXQsDQoNCiAgICAgICAgLnN0YXRzX3Jlc2V0ID0gZXRoX3N0YXRz X3Jlc2V0LA0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGZlL3BmZV9ldGhkZXYuYyBiL2Ry aXZlcnMvbmV0L3BmZS9wZmVfZXRoZGV2LmMNCg0KaW5kZXggZmVlYzRkMTBhMi4uNGM3ZjU2OGJm NCAxMDA2NDQNCg0KLS0tIGEvZHJpdmVycy9uZXQvcGZlL3BmZV9ldGhkZXYuYw0KDQorKysgYi9k cml2ZXJzL25ldC9wZmUvcGZlX2V0aGRldi5jDQoNCkBAIC00OTQsMTggKzQ5NCw2IEBAIHBmZV9y eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWR4 LA0KDQogICAgICAgIHJldHVybiAwOw0KDQogfQ0KDQoNCg0KLXN0YXRpYyB2b2lkDQoNCi1wZmVf cnhfcXVldWVfcmVsZWFzZSh2b2lkICpxIF9fcnRlX3VudXNlZCkNCg0KLXsNCg0KLSAgICAgICBQ TURfSU5JVF9GVU5DX1RSQUNFKCk7DQoNCi19DQoNCi0NCg0KLXN0YXRpYyB2b2lkDQoNCi1wZmVf dHhfcXVldWVfcmVsZWFzZSh2b2lkICpxIF9fcnRlX3VudXNlZCkNCg0KLXsNCg0KLSAgICAgICBQ TURfSU5JVF9GVU5DX1RSQUNFKCk7DQoNCi19DQoNCi0NCg0KIHN0YXRpYyBpbnQNCg0KIHBmZV90 eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCg0KICAgICAgICAgICAgICAg ICAgIHVpbnQxNl90IHF1ZXVlX2lkeCwNCg0KQEAgLTc1OSw5ICs3NDcsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGV0aF9kZXZfb3BzIG9wcyA9IHsNCg0KICAgICAgICAuZGV2X2NvbmZpZ3VyZSA9 IHBmZV9ldGhfY29uZmlndXJlLA0KDQogICAgICAgIC5kZXZfaW5mb3NfZ2V0ID0gcGZlX2V0aF9p bmZvLA0KDQogICAgICAgIC5yeF9xdWV1ZV9zZXR1cCA9IHBmZV9yeF9xdWV1ZV9zZXR1cCwNCg0K LSAgICAgICAucnhfcXVldWVfcmVsZWFzZSAgPSBwZmVfcnhfcXVldWVfcmVsZWFzZSwNCg0KICAg ICAgICAudHhfcXVldWVfc2V0dXAgPSBwZmVfdHhfcXVldWVfc2V0dXAsDQoNCi0gICAgICAgLnR4 X3F1ZXVlX3JlbGVhc2UgID0gcGZlX3R4X3F1ZXVlX3JlbGVhc2UsDQoNCiAgICAgICAgLmRldl9z dXBwb3J0ZWRfcHR5cGVzX2dldCA9IHBmZV9zdXBwb3J0ZWRfcHR5cGVzX2dldCwNCg0KICAgICAg ICAubGlua191cGRhdGUgID0gcGZlX2V0aF9saW5rX3VwZGF0ZSwNCg0KICAgICAgICAucHJvbWlz Y3VvdXNfZW5hYmxlICAgPSBwZmVfcHJvbWlzY3VvdXNfZW5hYmxlLA0KDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0aGRldi5jIGIvZHJpdmVycy9uZXQvcWVkZS9xZWRlX2V0 aGRldi5jDQoNCmluZGV4IGE0MzA0ZTBlZmYuLmZkOGM2MmExODIgMTAwNjQ0DQoNCi0tLSBhL2Ry aXZlcnMvbmV0L3FlZGUvcWVkZV9ldGhkZXYuYw0KDQorKysgYi9kcml2ZXJzL25ldC9xZWRlL3Fl ZGVfZXRoZGV2LmMNCg0KQEAgLTIzOTYsMTMgKzIzOTYsMjUgQEAgcWVkZV9kZXZfcmVzZXQoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQoNCiAgICAgICAgcmV0dXJuIHFlZGVfZXRoX2Rldl9pbml0 KGRldik7DQoNCiB9DQoNCg0KDQorc3RhdGljIHZvaWQNCg0KK3FlZGVfZGV2X3J4X3F1ZXVlX3Jl bGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KK3sNCg0KKyAg ICAgICBxZWRlX3J4X3F1ZXVlX3JlbGVhc2UoZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcWlkXSk7DQoN Cit9DQoNCisNCg0KK3N0YXRpYyB2b2lkDQoNCitxZWRlX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoNCit7DQoNCisgICAgICAgcWVk ZV90eF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+dHhfcXVldWVzW3FpZF0pOw0KDQorfQ0KDQor DQoNCiBzdGF0aWMgY29uc3Qgc3RydWN0IGV0aF9kZXZfb3BzIHFlZGVfZXRoX2Rldl9vcHMgPSB7 DQoNCiAgICAgICAgLmRldl9jb25maWd1cmUgPSBxZWRlX2Rldl9jb25maWd1cmUsDQoNCiAgICAg ICAgLmRldl9pbmZvc19nZXQgPSBxZWRlX2Rldl9pbmZvX2dldCwNCg0KICAgICAgICAucnhfcXVl dWVfc2V0dXAgPSBxZWRlX3J4X3F1ZXVlX3NldHVwLA0KDQotICAgICAgIC5yeF9xdWV1ZV9yZWxl YXNlID0gcWVkZV9yeF9xdWV1ZV9yZWxlYXNlLA0KDQorICAgICAgIC5yeF9xdWV1ZV9yZWxlYXNl ID0gcWVkZV9kZXZfcnhfcXVldWVfcmVsZWFzZSwNCg0KICAgICAgICAudHhfcXVldWVfc2V0dXAg PSBxZWRlX3R4X3F1ZXVlX3NldHVwLA0KDQotICAgICAgIC50eF9xdWV1ZV9yZWxlYXNlID0gcWVk ZV90eF9xdWV1ZV9yZWxlYXNlLA0KDQorICAgICAgIC50eF9xdWV1ZV9yZWxlYXNlID0gcWVkZV9k ZXZfdHhfcXVldWVfcmVsZWFzZSwNCg0KICAgICAgICAuZGV2X3N0YXJ0ID0gcWVkZV9kZXZfc3Rh cnQsDQoNCiAgICAgICAgLmRldl9yZXNldCA9IHFlZGVfZGV2X3Jlc2V0LA0KDQogICAgICAgIC5k ZXZfc2V0X2xpbmtfdXAgPSBxZWRlX2Rldl9zZXRfbGlua191cCwNCg0KQEAgLTI0NDQsOSArMjQ1 Niw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRoX2Rldl9vcHMgcWVkZV9ldGhfdmZfZGV2X29w cyA9IHsNCg0KICAgICAgICAuZGV2X2NvbmZpZ3VyZSA9IHFlZGVfZGV2X2NvbmZpZ3VyZSwNCg0K ICAgICAgICAuZGV2X2luZm9zX2dldCA9IHFlZGVfZGV2X2luZm9fZ2V0LA0KDQogICAgICAgIC5y eF9xdWV1ZV9zZXR1cCA9IHFlZGVfcnhfcXVldWVfc2V0dXAsDQoNCi0gICAgICAgLnJ4X3F1ZXVl X3JlbGVhc2UgPSBxZWRlX3J4X3F1ZXVlX3JlbGVhc2UsDQoNCisgICAgICAgLnJ4X3F1ZXVlX3Jl bGVhc2UgPSBxZWRlX2Rldl9yeF9xdWV1ZV9yZWxlYXNlLA0KDQogICAgICAgIC50eF9xdWV1ZV9z ZXR1cCA9IHFlZGVfdHhfcXVldWVfc2V0dXAsDQoNCi0gICAgICAgLnR4X3F1ZXVlX3JlbGVhc2Ug PSBxZWRlX3R4X3F1ZXVlX3JlbGVhc2UsDQoNCisgICAgICAgLnR4X3F1ZXVlX3JlbGVhc2UgPSBx ZWRlX2Rldl90eF9xdWV1ZV9yZWxlYXNlLA0KDQogICAgICAgIC5kZXZfc3RhcnQgPSBxZWRlX2Rl dl9zdGFydCwNCg0KICAgICAgICAuZGV2X3Jlc2V0ID0gcWVkZV9kZXZfcmVzZXQsDQoNCiAgICAg ICAgLmRldl9zZXRfbGlua191cCA9IHFlZGVfZGV2X3NldF9saW5rX3VwLA0KDQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvcmluZy9ydGVfZXRoX3JpbmcuYyBiL2RyaXZlcnMvbmV0L3JpbmcvcnRl X2V0aF9yaW5nLmMNCg0KaW5kZXggMWZhZjM4YTcxNC4uMDQ0MDAxOWUwNyAxMDA2NDQNCg0KLS0t IGEvZHJpdmVycy9uZXQvcmluZy9ydGVfZXRoX3JpbmcuYw0KDQorKysgYi9kcml2ZXJzL25ldC9y aW5nL3J0ZV9ldGhfcmluZy5jDQoNCkBAIC0yMjUsOCArMjI1LDYgQEAgZXRoX21hY19hZGRyX2Fk ZChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiBfX3J0ZV91bnVzZWQsDQoNCiAgICAgICAgcmV0dXJu IDA7DQoNCiB9DQoNCg0KDQotc3RhdGljIHZvaWQNCg0KLWV0aF9xdWV1ZV9yZWxlYXNlKHZvaWQg KnEgX19ydGVfdW51c2VkKSB7IDsgfQ0KDQogc3RhdGljIGludA0KDQogZXRoX2xpbmtfdXBkYXRl KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2IF9fcnRlX3VudXNlZCwNCg0KICAgICAgICAgICAgICAg IGludCB3YWl0X3RvX2NvbXBsZXRlIF9fcnRlX3VudXNlZCkgeyByZXR1cm4gMDsgfQ0KDQpAQCAt MjcyLDggKzI3MCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRoX2Rldl9vcHMgb3BzID0gew0K DQogICAgICAgIC5kZXZfaW5mb3NfZ2V0ID0gZXRoX2Rldl9pbmZvLA0KDQogICAgICAgIC5yeF9x dWV1ZV9zZXR1cCA9IGV0aF9yeF9xdWV1ZV9zZXR1cCwNCg0KICAgICAgICAudHhfcXVldWVfc2V0 dXAgPSBldGhfdHhfcXVldWVfc2V0dXAsDQoNCi0gICAgICAgLnJ4X3F1ZXVlX3JlbGVhc2UgPSBl dGhfcXVldWVfcmVsZWFzZSwNCg0KLSAgICAgICAudHhfcXVldWVfcmVsZWFzZSA9IGV0aF9xdWV1 ZV9yZWxlYXNlLA0KDQogICAgICAgIC5saW5rX3VwZGF0ZSA9IGV0aF9saW5rX3VwZGF0ZSwNCg0K ICAgICAgICAuc3RhdHNfZ2V0ID0gZXRoX3N0YXRzX2dldCwNCg0KICAgICAgICAuc3RhdHNfcmVz ZXQgPSBldGhfc3RhdHNfcmVzZXQsDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zZmMvc2Zj X2V0aGRldi5jIGIvZHJpdmVycy9uZXQvc2ZjL3NmY19ldGhkZXYuYw0KDQppbmRleCAyZGIwZDAw MGMzLi4yZjg1OTI1YjdiIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC9zZmMvc2ZjX2V0aGRl di5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L3NmYy9zZmNfZXRoZGV2LmMNCg0KQEAgLTUwNCw5ICs1 MDQsOSBAQCBzZmNfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQx Nl90IGV0aGRldl9xaWQsDQoNCiB9DQoNCg0KDQogc3RhdGljIHZvaWQNCg0KLXNmY19yeF9xdWV1 ZV9yZWxlYXNlKHZvaWQgKnF1ZXVlKQ0KDQorc2ZjX3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZCkNCg0KIHsNCg0KLSAgICAgICBzdHJ1Y3Qgc2Zj X2RwX3J4cSAqZHBfcnhxID0gcXVldWU7DQoNCisgICAgICAgc3RydWN0IHNmY19kcF9yeHEgKmRw X3J4cSA9IGRldi0+ZGF0YS0+cnhfcXVldWVzW3FpZF07DQoNCiAgICAgICAgc3RydWN0IHNmY19y eHEgKnJ4cTsNCg0KICAgICAgICBzdHJ1Y3Qgc2ZjX2FkYXB0ZXIgKnNhOw0KDQogICAgICAgIHNm Y19zd19pbmRleF90IHN3X2luZGV4Ow0KDQpAQCAtNTYxLDkgKzU2MSw5IEBAIHNmY190eF9xdWV1 ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgZXRoZGV2X3FpZCwNCg0K IH0NCg0KDQoNCiBzdGF0aWMgdm9pZA0KDQotc2ZjX3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcXVl dWUpDQoNCitzZmNfdHhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWlu dDE2X3QgcWlkKQ0KDQogew0KDQotICAgICAgIHN0cnVjdCBzZmNfZHBfdHhxICpkcF90eHEgPSBx dWV1ZTsNCg0KKyAgICAgICBzdHJ1Y3Qgc2ZjX2RwX3R4cSAqZHBfdHhxID0gZGV2LT5kYXRhLT50 eF9xdWV1ZXNbcWlkXTsNCg0KICAgICAgICBzdHJ1Y3Qgc2ZjX3R4cSAqdHhxOw0KDQogICAgICAg IHNmY19zd19pbmRleF90IHN3X2luZGV4Ow0KDQogICAgICAgIHN0cnVjdCBzZmNfYWRhcHRlciAq c2E7DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zemVkYXRhMi9ydGVfZXRoX3N6ZWRhdGEy LmMgYi9kcml2ZXJzL25ldC9zemVkYXRhMi9ydGVfZXRoX3N6ZWRhdGEyLmMNCg0KaW5kZXggNzQx NmE2YjFiOC4uNzY5NzdmMzc1NyAxMDA2NDQNCg0KLS0tIGEvZHJpdmVycy9uZXQvc3plZGF0YTIv cnRlX2V0aF9zemVkYXRhMi5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L3N6ZWRhdGEyL3J0ZV9ldGhf c3plZGF0YTIuYw0KDQpAQCAtMTE0MywyNiArMTE0MywyOCBAQCBldGhfc3RhdHNfcmVzZXQoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQoNCiB9DQoNCg0KDQogc3RhdGljIHZvaWQNCg0KLWV0aF9y eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnEpDQoNCitldGhfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKQ0KDQogew0KDQotICAgICAgIHN0cnVjdCBz emVkYXRhMl9yeF9xdWV1ZSAqcnhxID0gKHN0cnVjdCBzemVkYXRhMl9yeF9xdWV1ZSAqKXE7DQoN CisgICAgICAgc3RydWN0IHN6ZWRhdGEyX3J4X3F1ZXVlICpyeHEgPSBkZXYtPmRhdGEtPnJ4X3F1 ZXVlc1txaWRdOw0KDQoNCg0KICAgICAgICBpZiAocnhxICE9IE5VTEwpIHsNCg0KICAgICAgICAg ICAgICAgIGlmIChyeHEtPnN6ZSAhPSBOVUxMKQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBz emVkYXRhX2Nsb3NlKHJ4cS0+c3plKTsNCg0KICAgICAgICAgICAgICAgIHJ0ZV9mcmVlKHJ4cSk7 DQoNCisgICAgICAgICAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1txaWRdID0gTlVMTDsNCg0K ICAgICAgICB9DQoNCiB9DQoNCg0KDQogc3RhdGljIHZvaWQNCg0KLWV0aF90eF9xdWV1ZV9yZWxl YXNlKHZvaWQgKnEpDQoNCitldGhfdHhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiwgdWludDE2X3QgcWlkKQ0KDQogew0KDQotICAgICAgIHN0cnVjdCBzemVkYXRhMl90eF9x dWV1ZSAqdHhxID0gKHN0cnVjdCBzemVkYXRhMl90eF9xdWV1ZSAqKXE7DQoNCisgICAgICAgc3Ry dWN0IHN6ZWRhdGEyX3R4X3F1ZXVlICp0eHEgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdOw0K DQoNCg0KICAgICAgICBpZiAodHhxICE9IE5VTEwpIHsNCg0KICAgICAgICAgICAgICAgIGlmICh0 eHEtPnN6ZSAhPSBOVUxMKQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBzemVkYXRhX2Nsb3Nl KHR4cS0+c3plKTsNCg0KICAgICAgICAgICAgICAgIHJ0ZV9mcmVlKHR4cSk7DQoNCisgICAgICAg ICAgICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQog fQ0KDQoNCg0KQEAgLTExODIsMTUgKzExODQsMTEgQEAgZXRoX2Rldl9jbG9zZShzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldikNCg0KDQoNCiAgICAgICAgZnJlZShpbnRlcm5hbHMtPnN6ZV9kZXZfcGF0 aCk7DQoNCg0KDQotICAgICAgIGZvciAoaSA9IDA7IGkgPCBuYl9yeDsgaSsrKSB7DQoNCi0gICAg ICAgICAgICAgICBldGhfcnhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSk7 DQoNCi0gICAgICAgICAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSA9IE5VTEw7DQoNCi0g ICAgICAgfQ0KDQorICAgICAgIGZvciAoaSA9IDA7IGkgPCBuYl9yeDsgaSsrKQ0KDQorICAgICAg ICAgICAgICAgZXRoX3J4X3F1ZXVlX3JlbGVhc2UoZGV2LCBpKTsNCg0KICAgICAgICBkZXYtPmRh dGEtPm5iX3J4X3F1ZXVlcyA9IDA7DQoNCi0gICAgICAgZm9yIChpID0gMDsgaSA8IG5iX3R4OyBp KyspIHsNCg0KLSAgICAgICAgICAgICAgIGV0aF90eF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+ dHhfcXVldWVzW2ldKTsNCg0KLSAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+dHhfcXVldWVzW2ld ID0gTlVMTDsNCg0KLSAgICAgICB9DQoNCisgICAgICAgZm9yIChpID0gMDsgaSA8IG5iX3R4OyBp KyspDQoNCisgICAgICAgICAgICAgICBldGhfdHhfcXVldWVfcmVsZWFzZShkZXYsIGkpOw0KDQog ICAgICAgIGRldi0+ZGF0YS0+bmJfdHhfcXVldWVzID0gMDsNCg0KDQoNCiAgICAgICAgcmV0dXJu IHJldDsNCg0KQEAgLTEyNDQsMTAgKzEyNDIsOCBAQCBldGhfcnhfcXVldWVfc2V0dXAoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCg0KDQogICAgICAgIFBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsN Cg0KDQoNCi0gICAgICAgaWYgKGRldi0+ZGF0YS0+cnhfcXVldWVzW3J4X3F1ZXVlX2lkXSAhPSBO VUxMKSB7DQoNCi0gICAgICAgICAgICAgICBldGhfcnhfcXVldWVfcmVsZWFzZShkZXYtPmRhdGEt PnJ4X3F1ZXVlc1tyeF9xdWV1ZV9pZF0pOw0KDQotICAgICAgICAgICAgICAgZGV2LT5kYXRhLT5y eF9xdWV1ZXNbcnhfcXVldWVfaWRdID0gTlVMTDsNCg0KLSAgICAgICB9DQoNCisgICAgICAgaWYg KGRldi0+ZGF0YS0+cnhfcXVldWVzW3J4X3F1ZXVlX2lkXSAhPSBOVUxMKQ0KDQorICAgICAgICAg ICAgICAgZXRoX3J4X3F1ZXVlX3JlbGVhc2UoZGV2LCByeF9xdWV1ZV9pZCk7DQoNCg0KDQogICAg ICAgIHJ4cSA9IHJ0ZV96bWFsbG9jX3NvY2tldCgic3plZGF0YTIgcnggcXVldWUiLA0KDQogICAg ICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IHN6ZWRhdGEyX3J4X3F1ZXVlKSwNCg0K QEAgLTEyNTksMTggKzEyNTUsMjAgQEAgZXRoX3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRo X2RldiAqZGV2LA0KDQogICAgICAgIH0NCg0KDQoNCiAgICAgICAgcnhxLT5wcml2ID0gaW50ZXJu YWxzOw0KDQorICAgICAgIGRldi0+ZGF0YS0+cnhfcXVldWVzW3J4X3F1ZXVlX2lkXSA9IHJ4cTsN Cg0KKw0KDQogICAgICAgIHJ4cS0+c3plID0gc3plZGF0YV9vcGVuKGludGVybmFscy0+c3plX2Rl dl9wYXRoKTsNCg0KICAgICAgICBpZiAocnhxLT5zemUgPT0gTlVMTCkgew0KDQogICAgICAgICAg ICAgICAgUE1EX0lOSVRfTE9HKEVSUiwgInN6ZWRhdGFfb3BlbigpIGZhaWxlZCBmb3IgcnggcXVl dWUgaWQgIg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlIiBQUkl1MTYgIiEi LCByeF9xdWV1ZV9pZCk7DQoNCi0gICAgICAgICAgICAgICBldGhfcnhfcXVldWVfcmVsZWFzZShy eHEpOw0KDQorICAgICAgICAgICAgICAgZXRoX3J4X3F1ZXVlX3JlbGVhc2UoZGV2LCByeF9xdWV1 ZV9pZCk7DQoNCiAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCg0KICAgICAgICB9DQoN CiAgICAgICAgcmV0ID0gc3plZGF0YV9zdWJzY3JpYmUzKHJ4cS0+c3plLCAmcngsICZ0eCk7DQoN CiAgICAgICAgaWYgKHJldCAhPSAwIHx8IHJ4ID09IDApIHsNCg0KICAgICAgICAgICAgICAgIFBN RF9JTklUX0xPRyhFUlIsICJzemVkYXRhX3N1YnNjcmliZTMoKSBmYWlsZWQgZm9yIHJ4IHF1ZXVl IGlkICINCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJSIgUFJJdTE2ICIhIiwg cnhfcXVldWVfaWQpOw0KDQotICAgICAgICAgICAgICAgZXRoX3J4X3F1ZXVlX3JlbGVhc2Uocnhx KTsNCg0KKyAgICAgICAgICAgICAgIGV0aF9yeF9xdWV1ZV9yZWxlYXNlKGRldiwgcnhfcXVldWVf aWQpOw0KDQogICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQoNCiAgICAgICAgfQ0KDQog ICAgICAgIHJ4cS0+cnhfY2hhbm5lbCA9IHJ4X2NoYW5uZWw7DQoNCkBAIC0xMjgxLDggKzEyNzks NiBAQCBldGhfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCiAgICAg ICAgcnhxLT5yeF9ieXRlcyA9IDA7DQoNCiAgICAgICAgcnhxLT5lcnJfcGt0cyA9IDA7DQoNCg0K DQotICAgICAgIGRldi0+ZGF0YS0+cnhfcXVldWVzW3J4X3F1ZXVlX2lkXSA9IHJ4cTsNCg0KLQ0K DQogICAgICAgIFBNRF9JTklUX0xPRyhERUJVRywgIkNvbmZpZ3VyZWQgcnggcXVldWUgaWQgJSIg UFJJdTE2ICIgb24gc29ja2V0ICINCg0KICAgICAgICAgICAgICAgICAgICAgICAgIiV1IChjaGFu bmVsIGlkICV1KS4iLCByeHEtPnFpZCwgc29ja2V0X2lkLA0KDQogICAgICAgICAgICAgICAgICAg ICAgICByeHEtPnJ4X2NoYW5uZWwpOw0KDQpAQCAtMTMwNiwxMCArMTMwMiw4IEBAIGV0aF90eF9x dWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCg0KDQoNCiAgICAgICAgUE1EX0lO SVRfRlVOQ19UUkFDRSgpOw0KDQoNCg0KLSAgICAgICBpZiAoZGV2LT5kYXRhLT50eF9xdWV1ZXNb dHhfcXVldWVfaWRdICE9IE5VTEwpIHsNCg0KLSAgICAgICAgICAgICAgIGV0aF90eF9xdWV1ZV9y ZWxlYXNlKGRldi0+ZGF0YS0+dHhfcXVldWVzW3R4X3F1ZXVlX2lkXSk7DQoNCi0gICAgICAgICAg ICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1t0eF9xdWV1ZV9pZF0gPSBOVUxMOw0KDQotICAgICAg IH0NCg0KKyAgICAgICBpZiAoZGV2LT5kYXRhLT50eF9xdWV1ZXNbdHhfcXVldWVfaWRdICE9IE5V TEwpDQoNCisgICAgICAgICAgICAgICBldGhfdHhfcXVldWVfcmVsZWFzZShkZXYsIHR4X3F1ZXVl X2lkKTsNCg0KDQoNCiAgICAgICAgdHhxID0gcnRlX3ptYWxsb2Nfc29ja2V0KCJzemVkYXRhMiB0 eCBxdWV1ZSIsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3Qgc3plZGF0 YTJfdHhfcXVldWUpLA0KDQpAQCAtMTMyMSwxOCArMTMxNSwyMCBAQCBldGhfdHhfcXVldWVfc2V0 dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCiAgICAgICAgfQ0KDQoNCg0KICAgICAgICB0 eHEtPnByaXYgPSBpbnRlcm5hbHM7DQoNCisgICAgICAgZGV2LT5kYXRhLT50eF9xdWV1ZXNbdHhf cXVldWVfaWRdID0gdHhxOw0KDQorDQoNCiAgICAgICAgdHhxLT5zemUgPSBzemVkYXRhX29wZW4o aW50ZXJuYWxzLT5zemVfZGV2X3BhdGgpOw0KDQogICAgICAgIGlmICh0eHEtPnN6ZSA9PSBOVUxM KSB7DQoNCiAgICAgICAgICAgICAgICBQTURfSU5JVF9MT0coRVJSLCAic3plZGF0YV9vcGVuKCkg ZmFpbGVkIGZvciB0eCBxdWV1ZSBpZCAiDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIiUiIFBSSXUxNiAiISIsIHR4X3F1ZXVlX2lkKTsNCg0KLSAgICAgICAgICAgICAgIGV0aF90 eF9xdWV1ZV9yZWxlYXNlKHR4cSk7DQoNCisgICAgICAgICAgICAgICBldGhfdHhfcXVldWVfcmVs ZWFzZShkZXYsIHR4X3F1ZXVlX2lkKTsNCg0KICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFM Ow0KDQogICAgICAgIH0NCg0KICAgICAgICByZXQgPSBzemVkYXRhX3N1YnNjcmliZTModHhxLT5z emUsICZyeCwgJnR4KTsNCg0KICAgICAgICBpZiAocmV0ICE9IDAgfHwgdHggPT0gMCkgew0KDQog ICAgICAgICAgICAgICAgUE1EX0lOSVRfTE9HKEVSUiwgInN6ZWRhdGFfc3Vic2NyaWJlMygpIGZh aWxlZCBmb3IgdHggcXVldWUgaWQgIg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIlIiBQUkl1MTYgIiEiLCB0eF9xdWV1ZV9pZCk7DQoNCi0gICAgICAgICAgICAgICBldGhfdHhf cXVldWVfcmVsZWFzZSh0eHEpOw0KDQorICAgICAgICAgICAgICAgZXRoX3R4X3F1ZXVlX3JlbGVh c2UoZGV2LCB0eF9xdWV1ZV9pZCk7DQoNCiAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsN Cg0KICAgICAgICB9DQoNCiAgICAgICAgdHhxLT50eF9jaGFubmVsID0gdHhfY2hhbm5lbDsNCg0K QEAgLTEzNDEsOCArMTMzNyw2IEBAIGV0aF90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldiwNCg0KICAgICAgICB0eHEtPnR4X2J5dGVzID0gMDsNCg0KICAgICAgICB0eHEtPmVy cl9wa3RzID0gMDsNCg0KDQoNCi0gICAgICAgZGV2LT5kYXRhLT50eF9xdWV1ZXNbdHhfcXVldWVf aWRdID0gdHhxOw0KDQotDQoNCiAgICAgICAgUE1EX0lOSVRfTE9HKERFQlVHLCAiQ29uZmlndXJl ZCB0eCBxdWV1ZSBpZCAlIiBQUkl1MTYgIiBvbiBzb2NrZXQgIg0KDQogICAgICAgICAgICAgICAg ICAgICAgICAiJXUgKGNoYW5uZWwgaWQgJXUpLiIsIHR4cS0+cWlkLCBzb2NrZXRfaWQsDQoNCiAg ICAgICAgICAgICAgICAgICAgICAgIHR4cS0+dHhfY2hhbm5lbCk7DQoNCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC90YXAvcnRlX2V0aF90YXAuYyBiL2RyaXZlcnMvbmV0L3RhcC9ydGVfZXRoX3Rh cC5jDQoNCmluZGV4IGM1MTVkZTNiZjcuLjA0NmYxNzY2OWQgMTAwNjQ0DQoNCi0tLSBhL2RyaXZl cnMvbmV0L3RhcC9ydGVfZXRoX3RhcC5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L3RhcC9ydGVfZXRo X3RhcC5jDQoNCkBAIC0xMTUxLDkgKzExNTEsOSBAQCB0YXBfZGV2X2Nsb3NlKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2KQ0KDQogfQ0KDQoNCg0KIHN0YXRpYyB2b2lkDQoNCi10YXBfcnhfcXVldWVf cmVsZWFzZSh2b2lkICpxdWV1ZSkNCg0KK3RhcF9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoNCiB7DQoNCi0gICAgICAgc3RydWN0IHJ4X3F1 ZXVlICpyeHEgPSBxdWV1ZTsNCg0KKyAgICAgICBzdHJ1Y3QgcnhfcXVldWUgKnJ4cSA9IGRldi0+ ZGF0YS0+cnhfcXVldWVzW3FpZF07DQoNCiAgICAgICAgc3RydWN0IHBtZF9wcm9jZXNzX3ByaXZh dGUgKnByb2Nlc3NfcHJpdmF0ZTsNCg0KDQoNCiAgICAgICAgaWYgKCFyeHEpDQoNCkBAIC0xMTcw LDkgKzExNzAsOSBAQCB0YXBfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpxdWV1ZSkNCg0KIH0NCg0K DQoNCiBzdGF0aWMgdm9pZA0KDQotdGFwX3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcXVldWUpDQoN Cit0YXBfdHhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3Qg cWlkKQ0KDQogew0KDQotICAgICAgIHN0cnVjdCB0eF9xdWV1ZSAqdHhxID0gcXVldWU7DQoNCisg ICAgICAgc3RydWN0IHR4X3F1ZXVlICp0eHEgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1txaWRdOw0K DQogICAgICAgIHN0cnVjdCBwbWRfcHJvY2Vzc19wcml2YXRlICpwcm9jZXNzX3ByaXZhdGU7DQoN Cg0KDQogICAgICAgIGlmICghdHhxKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdGh1bmRl cngvbmljdmZfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYw0K DQppbmRleCA1NjFhOThmYzgxLi41NTAyZjFlZTY5IDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25l dC90aHVuZGVyeC9uaWN2Zl9ldGhkZXYuYw0KDQorKysgYi9kcml2ZXJzL25ldC90aHVuZGVyeC9u aWN2Zl9ldGhkZXYuYw0KDQpAQCAtODU4LDEzICs4NTgsMTIgQEAgbmljdmZfY29uZmlndXJlX3Jz c19yZXRhKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KDQogfQ0KDQoNCg0KIHN0YXRpYyB2b2lk DQoNCi1uaWN2Zl9kZXZfdHhfcXVldWVfcmVsZWFzZSh2b2lkICpzcSkNCg0KK25pY3ZmX2Rldl90 eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoN CiB7DQoNCi0gICAgICAgc3RydWN0IG5pY3ZmX3R4cSAqdHhxOw0KDQorICAgICAgIHN0cnVjdCBu aWN2Zl90eHEgKnR4cSA9IGRldi0+ZGF0YS0+dHhfcXVldWVzW3FpZF07DQoNCg0KDQogICAgICAg IFBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsNCg0KDQoNCi0gICAgICAgdHhxID0gKHN0cnVjdCBuaWN2 Zl90eHEgKilzcTsNCg0KICAgICAgICBpZiAodHhxKSB7DQoNCiAgICAgICAgICAgICAgICBpZiAo dHhxLT50eGJ1ZmZzICE9IE5VTEwpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgbmljdmZf dHhfcXVldWVfcmVsZWFzZV9tYnVmcyh0eHEpOw0KDQpAQCAtODcyLDYgKzg3MSw3IEBAIG5pY3Zm X2Rldl90eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnNxKQ0KDQogICAgICAgICAgICAgICAgICAgICAg ICB0eHEtPnR4YnVmZnMgPSBOVUxMOw0KDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAg ICAgICAgcnRlX2ZyZWUodHhxKTsNCg0KKyAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+dHhfcXVl dWVzW3FpZF0gPSBOVUxMOw0KDQogICAgICAgIH0NCg0KIH0NCg0KDQoNCkBAIC05ODUsOCArOTg1 LDcgQEAgbmljdmZfZGV2X3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1 aW50MTZfdCBxaWR4LA0KDQogICAgICAgIGlmIChkZXYtPmRhdGEtPnR4X3F1ZXVlc1tuaWN2Zl9u ZXRkZXZfcWlkeChuaWMsIHFpZHgpXSAhPSBOVUxMKSB7DQoNCiAgICAgICAgICAgICAgICBQTURf VFhfTE9HKERFQlVHLCAiRnJlZWluZyBtZW1vcnkgcHJpb3IgdG8gcmUtYWxsb2NhdGlvbiAlZCIs DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmljdmZfbmV0ZGV2X3FpZHgobmlj LCBxaWR4KSk7DQoNCi0gICAgICAgICAgICAgICBuaWN2Zl9kZXZfdHhfcXVldWVfcmVsZWFzZSgN Cg0KLSAgICAgICAgICAgICAgICAgICAgICAgZGV2LT5kYXRhLT50eF9xdWV1ZXNbbmljdmZfbmV0 ZGV2X3FpZHgobmljLCBxaWR4KV0pOw0KDQorICAgICAgICAgICAgICAgbmljdmZfZGV2X3R4X3F1 ZXVlX3JlbGVhc2UoZGV2LCBuaWN2Zl9uZXRkZXZfcWlkeChuaWMsIHFpZHgpKTsNCg0KICAgICAg ICAgICAgICAgIGRldi0+ZGF0YS0+dHhfcXVldWVzW25pY3ZmX25ldGRldl9xaWR4KG5pYywgcWlk eCldID0gTlVMTDsNCg0KICAgICAgICB9DQoNCg0KDQpAQCAtMTAyMCwxOSArMTAxOSwyMSBAQCBu aWN2Zl9kZXZfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90 IHFpZHgsDQoNCiAgICAgICAgICAgICAgICB0eHEtPnBvb2xfZnJlZSA9IG5pY3ZmX3NpbmdsZV9w b29sX2ZyZWVfeG1pdGVkX2J1ZmZlcnM7DQoNCiAgICAgICAgfQ0KDQoNCg0KKyAgICAgICBkZXYt PmRhdGEtPnR4X3F1ZXVlc1tuaWN2Zl9uZXRkZXZfcWlkeChuaWMsIHFpZHgpXSA9IHR4cTsNCg0K Kw0KDQogICAgICAgIC8qIEFsbG9jYXRlIHNvZnR3YXJlIHJpbmcgKi8NCg0KICAgICAgICB0eHEt PnR4YnVmZnMgPSBydGVfem1hbGxvY19zb2NrZXQoInR4cS0+dHhidWZmcyIsDQoNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmJfZGVzYyAqIHNpemVvZihzdHJ1Y3QgcnRlX21idWYg KiksDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRFX0NBQ0hFX0xJTkVfU0la RSwgbmljLT5ub2RlKTsNCg0KDQoNCiAgICAgICAgaWYgKHR4cS0+dHhidWZmcyA9PSBOVUxMKSB7 DQoNCi0gICAgICAgICAgICAgICBuaWN2Zl9kZXZfdHhfcXVldWVfcmVsZWFzZSh0eHEpOw0KDQor ICAgICAgICAgICAgICAgbmljdmZfZGV2X3R4X3F1ZXVlX3JlbGVhc2UoZGV2LCBuaWN2Zl9uZXRk ZXZfcWlkeChuaWMsIHFpZHgpKTsNCg0KICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0K DQogICAgICAgIH0NCg0KDQoNCiAgICAgICAgaWYgKG5pY3ZmX3FzZXRfc3FfYWxsb2MoZGV2LCBu aWMsIHR4cSwgcWlkeCwgbmJfZGVzYykpIHsNCg0KICAgICAgICAgICAgICAgIFBNRF9JTklUX0xP RyhFUlIsICJGYWlsZWQgdG8gYWxsb2NhdGUgbWVtIGZvciBzcSAlZCIsIHFpZHgpOw0KDQotICAg ICAgICAgICAgICAgbmljdmZfZGV2X3R4X3F1ZXVlX3JlbGVhc2UodHhxKTsNCg0KKyAgICAgICAg ICAgICAgIG5pY3ZmX2Rldl90eF9xdWV1ZV9yZWxlYXNlKGRldiwgbmljdmZfbmV0ZGV2X3FpZHgo bmljLCBxaWR4KSk7DQoNCiAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCg0KICAgICAg ICB9DQoNCg0KDQpAQCAtMTA0Myw3ICsxMDQ0LDYgQEAgbmljdmZfZGV2X3R4X3F1ZXVlX3NldHVw KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWR4LA0KDQogICAgICAgICAgICAg ICAgICAgICAgICBuaWN2Zl9uZXRkZXZfcWlkeChuaWMsIHFpZHgpLCB0eHEsIG5iX2Rlc2MsIHR4 cS0+ZGVzYywNCg0KICAgICAgICAgICAgICAgICAgICAgICAgdHhxLT5waHlzLCB0eHEtPm9mZmxv YWRzKTsNCg0KDQoNCi0gICAgICAgZGV2LT5kYXRhLT50eF9xdWV1ZXNbbmljdmZfbmV0ZGV2X3Fp ZHgobmljLCBxaWR4KV0gPSB0eHE7DQoNCiAgICAgICAgZGV2LT5kYXRhLT50eF9xdWV1ZV9zdGF0 ZVtuaWN2Zl9uZXRkZXZfcWlkeChuaWMsIHFpZHgpXSA9DQoNCiAgICAgICAgICAgICAgICBSVEVf RVRIX1FVRVVFX1NUQVRFX1NUT1BQRUQ7DQoNCiAgICAgICAgcmV0dXJuIDA7DQoNCkBAIC0xMTYx LDExICsxMTYxLDExIEBAIG5pY3ZmX3ZmX3N0b3BfcnhfcXVldWUoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsIHN0cnVjdCBuaWN2ZiAqbmljLA0KDQogfQ0KDQoNCg0KIHN0YXRpYyB2b2lkDQoNCi1u aWN2Zl9kZXZfcnhfcXVldWVfcmVsZWFzZSh2b2lkICpyeF9xdWV1ZSkNCg0KK25pY3ZmX2Rldl9y eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoN CiB7DQoNCiAgICAgICAgUE1EX0lOSVRfRlVOQ19UUkFDRSgpOw0KDQoNCg0KLSAgICAgICBydGVf ZnJlZShyeF9xdWV1ZSk7DQoNCisgICAgICAgcnRlX2ZyZWUoZGV2LT5kYXRhLT5yeF9xdWV1ZXNb cWlkXSk7DQoNCiB9DQoNCg0KDQogc3RhdGljIGludA0KDQpAQCAtMTMzNiw4ICsxMzM2LDcgQEAg bmljdmZfZGV2X3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZf dCBxaWR4LA0KDQogICAgICAgIGlmIChkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tuaWN2Zl9uZXRkZXZf cWlkeChuaWMsIHFpZHgpXSAhPSBOVUxMKSB7DQoNCiAgICAgICAgICAgICAgICBQTURfUlhfTE9H KERFQlVHLCAiRnJlZWluZyBtZW1vcnkgcHJpb3IgdG8gcmUtYWxsb2NhdGlvbiAlZCIsDQoNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmljdmZfbmV0ZGV2X3FpZHgobmljLCBxaWR4 KSk7DQoNCi0gICAgICAgICAgICAgICBuaWN2Zl9kZXZfcnhfcXVldWVfcmVsZWFzZSgNCg0KLSAg ICAgICAgICAgICAgICAgICAgICAgZGV2LT5kYXRhLT5yeF9xdWV1ZXNbbmljdmZfbmV0ZGV2X3Fp ZHgobmljLCBxaWR4KV0pOw0KDQorICAgICAgICAgICAgICAgbmljdmZfZGV2X3J4X3F1ZXVlX3Jl bGVhc2UoZGV2LCBuaWN2Zl9uZXRkZXZfcWlkeChuaWMsIHFpZHgpKTsNCg0KICAgICAgICAgICAg ICAgIGRldi0+ZGF0YS0+cnhfcXVldWVzW25pY3ZmX25ldGRldl9xaWR4KG5pYywgcWlkeCldID0g TlVMTDsNCg0KICAgICAgICB9DQoNCg0KDQpAQCAtMTM2NSwxMiArMTM2NCwxNCBAQCBuaWN2Zl9k ZXZfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHFpZHgs DQoNCiAgICAgICAgZWxzZQ0KDQogICAgICAgICAgICAgICAgcnhxLT5yYnB0cl9vZmZzZXQgPSBO SUNWRl9DUUVfUkJQVFJfV09SRDsNCg0KDQoNCisgICAgICAgZGV2LT5kYXRhLT5yeF9xdWV1ZXNb bmljdmZfbmV0ZGV2X3FpZHgobmljLCBxaWR4KV0gPSByeHE7DQoNCisNCg0KICAgICAgICBuaWN2 Zl9yeHFfbWJ1Zl9zZXR1cChyeHEpOw0KDQoNCg0KICAgICAgICAvKiBBbGxvYyBjb21wbGV0aW9u IHF1ZXVlICovDQoNCiAgICAgICAgaWYgKG5pY3ZmX3FzZXRfY3FfYWxsb2MoZGV2LCBuaWMsIHJ4 cSwgcnhxLT5xdWV1ZV9pZCwgbmJfZGVzYykpIHsNCg0KICAgICAgICAgICAgICAgIFBNRF9JTklU X0xPRyhFUlIsICJmYWlsZWQgdG8gYWxsb2NhdGUgY3EgJXUiLCByeHEtPnF1ZXVlX2lkKTsNCg0K LSAgICAgICAgICAgICAgIG5pY3ZmX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHJ4cSk7DQoNCisgICAg ICAgICAgICAgICBuaWN2Zl9kZXZfcnhfcXVldWVfcmVsZWFzZShkZXYsIG5pY3ZmX25ldGRldl9x aWR4KG5pYywgcWlkeCkpOw0KDQogICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQoNCiAg ICAgICAgfQ0KDQoNCg0KQEAgLTEzODIsNyArMTM4Myw2IEBAIG5pY3ZmX2Rldl9yeF9xdWV1ZV9z ZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkeCwNCg0KICAgICAgICAg ICAgICAgICAgICAgICAgbmljdmZfbmV0ZGV2X3FpZHgobmljLCBxaWR4KSwgcnhxLCBtcC0+bmFt ZSwgbmJfZGVzYywNCg0KICAgICAgICAgICAgICAgICAgICAgICAgcnRlX21lbXBvb2xfYXZhaWxf Y291bnQobXApLCByeHEtPnBoeXMsIG9mZmxvYWRzKTsNCg0KDQoNCi0gICAgICAgZGV2LT5kYXRh LT5yeF9xdWV1ZXNbbmljdmZfbmV0ZGV2X3FpZHgobmljLCBxaWR4KV0gPSByeHE7DQoNCiAgICAg ICAgZGV2LT5kYXRhLT5yeF9xdWV1ZV9zdGF0ZVtuaWN2Zl9uZXRkZXZfcWlkeChuaWMsIHFpZHgp XSA9DQoNCiAgICAgICAgICAgICAgICBSVEVfRVRIX1FVRVVFX1NUQVRFX1NUT1BQRUQ7DQoNCiAg ICAgICAgcmV0dXJuIDA7DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90eGdiZS90eGdiZV9l dGhkZXYuaCBiL2RyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2V0aGRldi5oDQoNCmluZGV4IDMwMjE5 MzM5NjUuLmQ5NzliMTIwMjcgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L3R4Z2JlL3R4Z2Jl X2V0aGRldi5oDQoNCisrKyBiL2RyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX2V0aGRldi5oDQoNCkBA IC00MzMsOSArNDMzLDkgQEAgdm9pZCB0eGdiZV9kZXZfY2xlYXJfcXVldWVzKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2KTsNCg0KDQoNCiB2b2lkIHR4Z2JlX2Rldl9mcmVlX3F1ZXVlcyhzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldik7DQoNCg0KDQotdm9pZCB0eGdiZV9kZXZfcnhfcXVldWVfcmVsZWFz ZSh2b2lkICpyeHEpOw0KDQordm9pZCB0eGdiZV9kZXZfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcWlkKTsNCg0KDQoNCi12b2lkIHR4Z2JlX2Rldl90 eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnR4cSk7DQoNCit2b2lkIHR4Z2JlX2Rldl90eF9xdWV1ZV9y ZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpOw0KDQoNCg0KIGlu dCAgdHhnYmVfZGV2X3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50 MTZfdCByeF9xdWV1ZV9pZCwNCg0KICAgICAgICAgICAgICAgIHVpbnQxNl90IG5iX3J4X2Rlc2Ms IHVuc2lnbmVkIGludCBzb2NrZXRfaWQsDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90eGdi ZS90eGdiZV9yeHR4LmMgYi9kcml2ZXJzL25ldC90eGdiZS90eGdiZV9yeHR4LmMNCg0KaW5kZXgg MWEyNjEyODdkMS4uYjYzMzlmZTUwYiAxMDA2NDQNCg0KLS0tIGEvZHJpdmVycy9uZXQvdHhnYmUv dHhnYmVfcnh0eC5jDQoNCisrKyBiL2RyaXZlcnMvbmV0L3R4Z2JlL3R4Z2JlX3J4dHguYw0KDQpA QCAtMjEwOSw5ICsyMTA5LDkgQEAgdHhnYmVfdHhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgdHhnYmVf dHhfcXVldWUgKnR4cSkNCg0KIH0NCg0KDQoNCiB2b2lkIF9fcnRlX2NvbGQNCg0KLXR4Z2JlX2Rl dl90eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnR4cSkNCg0KK3R4Z2JlX2Rldl90eF9xdWV1ZV9yZWxl YXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoNCiB7DQoNCi0gICAg ICAgdHhnYmVfdHhfcXVldWVfcmVsZWFzZSh0eHEpOw0KDQorICAgICAgIHR4Z2JlX3R4X3F1ZXVl X3JlbGVhc2UoZGV2LT5kYXRhLT50eF9xdWV1ZXNbcWlkXSk7DQoNCiB9DQoNCg0KDQogLyogKFJl KXNldCBkeW5hbWljIHR4Z2JlX3R4X3F1ZXVlIGZpZWxkcyB0byBkZWZhdWx0cyAqLw0KDQpAQCAt MjQzNyw5ICsyNDM3LDkgQEAgdHhnYmVfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgdHhnYmVfcnhf cXVldWUgKnJ4cSkNCg0KIH0NCg0KDQoNCiB2b2lkIF9fcnRlX2NvbGQNCg0KLXR4Z2JlX2Rldl9y eF9xdWV1ZV9yZWxlYXNlKHZvaWQgKnJ4cSkNCg0KK3R4Z2JlX2Rldl9yeF9xdWV1ZV9yZWxlYXNl KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoNCiB7DQoNCi0gICAgICAg dHhnYmVfcnhfcXVldWVfcmVsZWFzZShyeHEpOw0KDQorICAgICAgIHR4Z2JlX3J4X3F1ZXVlX3Jl bGVhc2UoZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcWlkXSk7DQoNCiB9DQoNCg0KDQogLyoNCg0KQEAg LTI3OTUsMTMgKzI3OTUsMTMgQEAgdHhnYmVfZGV2X2ZyZWVfcXVldWVzKHN0cnVjdCBydGVfZXRo X2RldiAqZGV2KQ0KDQogICAgICAgIFBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsNCg0KDQoNCiAgICAg ICAgZm9yIChpID0gMDsgaSA8IGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzOyBpKyspIHsNCg0KLSAg ICAgICAgICAgICAgIHR4Z2JlX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0YS0+cnhfcXVl dWVzW2ldKTsNCg0KKyAgICAgICAgICAgICAgIHR4Z2JlX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKGRl diwgaSk7DQoNCiAgICAgICAgICAgICAgICBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSA9IE5VTEw7 DQoNCiAgICAgICAgfQ0KDQogICAgICAgIGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzID0gMDsNCg0K DQoNCiAgICAgICAgZm9yIChpID0gMDsgaSA8IGRldi0+ZGF0YS0+bmJfdHhfcXVldWVzOyBpKysp IHsNCg0KLSAgICAgICAgICAgICAgIHR4Z2JlX2Rldl90eF9xdWV1ZV9yZWxlYXNlKGRldi0+ZGF0 YS0+dHhfcXVldWVzW2ldKTsNCg0KKyAgICAgICAgICAgICAgIHR4Z2JlX2Rldl90eF9xdWV1ZV9y ZWxlYXNlKGRldiwgaSk7DQoNCiAgICAgICAgICAgICAgICBkZXYtPmRhdGEtPnR4X3F1ZXVlc1tp XSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQogICAgICAgIGRldi0+ZGF0YS0+bmJfdHhfcXVldWVz ID0gMDsNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Zob3N0L3J0ZV9ldGhfdmhvc3QuYyBi L2RyaXZlcnMvbmV0L3Zob3N0L3J0ZV9ldGhfdmhvc3QuYw0KDQppbmRleCBhMjAyOTMxZTlhLi4y ZTI0ZTVmN2ZmIDEwMDY0NA0KDQotLS0gYS9kcml2ZXJzL25ldC92aG9zdC9ydGVfZXRoX3Zob3N0 LmMNCg0KKysrIGIvZHJpdmVycy9uZXQvdmhvc3QvcnRlX2V0aF92aG9zdC5jDQoNCkBAIC0xMzQ2 LDkgKzEzNDYsMTUgQEAgZXRoX3N0YXRzX3Jlc2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0K DQogfQ0KDQoNCg0KIHN0YXRpYyB2b2lkDQoNCi1ldGhfcXVldWVfcmVsZWFzZSh2b2lkICpxKQ0K DQorZXRoX3J4X3F1ZXVlX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90 IHFpZCkNCg0KIHsNCg0KLSAgICAgICBydGVfZnJlZShxKTsNCg0KKyAgICAgICBydGVfZnJlZShk ZXYtPmRhdGEtPnJ4X3F1ZXVlc1txaWRdKTsNCg0KK30NCg0KKw0KDQorc3RhdGljIHZvaWQNCg0K K2V0aF90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBx aWQpDQoNCit7DQoNCisgICAgICAgcnRlX2ZyZWUoZGV2LT5kYXRhLT50eF9xdWV1ZXNbcWlkXSk7 DQoNCiB9DQoNCg0KDQogc3RhdGljIGludA0KDQpAQCAtMTM4OCw4ICsxMzk0LDggQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBldGhfZGV2X29wcyBvcHMgPSB7DQoNCiAgICAgICAgLmRldl9pbmZvc19n ZXQgPSBldGhfZGV2X2luZm8sDQoNCiAgICAgICAgLnJ4X3F1ZXVlX3NldHVwID0gZXRoX3J4X3F1 ZXVlX3NldHVwLA0KDQogICAgICAgIC50eF9xdWV1ZV9zZXR1cCA9IGV0aF90eF9xdWV1ZV9zZXR1 cCwNCg0KLSAgICAgICAucnhfcXVldWVfcmVsZWFzZSA9IGV0aF9xdWV1ZV9yZWxlYXNlLA0KDQot ICAgICAgIC50eF9xdWV1ZV9yZWxlYXNlID0gZXRoX3F1ZXVlX3JlbGVhc2UsDQoNCisgICAgICAg LnJ4X3F1ZXVlX3JlbGVhc2UgPSBldGhfcnhfcXVldWVfcmVsZWFzZSwNCg0KKyAgICAgICAudHhf cXVldWVfcmVsZWFzZSA9IGV0aF90eF9xdWV1ZV9yZWxlYXNlLA0KDQogICAgICAgIC50eF9kb25l X2NsZWFudXAgPSBldGhfdHhfZG9uZV9jbGVhbnVwLA0KDQogICAgICAgIC5saW5rX3VwZGF0ZSA9 IGV0aF9saW5rX3VwZGF0ZSwNCg0KICAgICAgICAuc3RhdHNfZ2V0ID0gZXRoX3N0YXRzX2dldCwN Cg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fZXRoZGV2LmMgYi9kcml2 ZXJzL25ldC92aXJ0aW8vdmlydGlvX2V0aGRldi5jDQoNCmluZGV4IDljYThiYWUwZmUuLmU5YWYz YmIxYjYgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fZXRoZGV2LmMN Cg0KKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYuYw0KDQpAQCAtMzY5LDEy ICszNjksNiBAQCB2aXJ0aW9fc2V0X211bHRpcGxlX3F1ZXVlcyhzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiwgdWludDE2X3QgbmJfcXVldWVzKQ0KDQogICAgICAgIHJldHVybiAwOw0KDQogfQ0KDQoN Cg0KLXN0YXRpYyB2b2lkDQoNCi12aXJ0aW9fZGV2X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcXVldWUg X19ydGVfdW51c2VkKQ0KDQotew0KDQotICAgICAgIC8qIGRvIG5vdGhpbmcgKi8NCg0KLX0NCg0K LQ0KDQogc3RhdGljIHVpbnQxNl90DQoNCiB2aXJ0aW9fZ2V0X25yX3ZxKHN0cnVjdCB2aXJ0aW9f aHcgKmh3KQ0KDQogew0KDQpAQCAtOTY2LDkgKzk2MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZXRoX2Rldl9vcHMgdmlydGlvX2V0aF9kZXZfb3BzID0gew0KDQogICAgICAgIC5yeF9xdWV1ZV9z ZXR1cCAgICAgICAgICA9IHZpcnRpb19kZXZfcnhfcXVldWVfc2V0dXAsDQoNCiAgICAgICAgLnJ4 X3F1ZXVlX2ludHJfZW5hYmxlICAgID0gdmlydGlvX2Rldl9yeF9xdWV1ZV9pbnRyX2VuYWJsZSwN Cg0KICAgICAgICAucnhfcXVldWVfaW50cl9kaXNhYmxlICAgPSB2aXJ0aW9fZGV2X3J4X3F1ZXVl X2ludHJfZGlzYWJsZSwNCg0KLSAgICAgICAucnhfcXVldWVfcmVsZWFzZSAgICAgICAgPSB2aXJ0 aW9fZGV2X3F1ZXVlX3JlbGVhc2UsDQoNCiAgICAgICAgLnR4X3F1ZXVlX3NldHVwICAgICAgICAg ID0gdmlydGlvX2Rldl90eF9xdWV1ZV9zZXR1cCwNCg0KLSAgICAgICAudHhfcXVldWVfcmVsZWFz ZSAgICAgICAgPSB2aXJ0aW9fZGV2X3F1ZXVlX3JlbGVhc2UsDQoNCiAgICAgICAgLyogY29sbGVj dCBzdGF0cyBwZXIgcXVldWUgKi8NCg0KICAgICAgICAucXVldWVfc3RhdHNfbWFwcGluZ19zZXQg PSB2aXJ0aW9fZGV2X3F1ZXVlX3N0YXRzX21hcHBpbmdfc2V0LA0KDQogICAgICAgIC52bGFuX2Zp bHRlcl9zZXQgICAgICAgICA9IHZpcnRpb192bGFuX2ZpbHRlcl9zZXQsDQoNCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMgYi9kcml2ZXJzL25ldC92bXhu ZXQzL3ZteG5ldDNfZXRoZGV2LmMNCg0KaW5kZXggMmY0MGFlOTA3ZC4uY2ZmZmM5NGM0OCAxMDA2 NDQNCg0KLS0tIGEvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jDQoNCisrKyBi L2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYw0KDQpAQCAtMTA1OCwxOCArMTA1 OCwxMiBAQCB2bXhuZXQzX2ZyZWVfcXVldWVzKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KDQoN Cg0KICAgICAgICBQTURfSU5JVF9GVU5DX1RSQUNFKCk7DQoNCg0KDQotICAgICAgIGZvciAoaSA9 IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlczsgaSsrKSB7DQoNCi0gICAgICAgICAgICAg ICB2b2lkICpyeHEgPSBkZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXTsNCg0KLQ0KDQotICAgICAgICAg ICAgICAgdm14bmV0M19kZXZfcnhfcXVldWVfcmVsZWFzZShyeHEpOw0KDQotICAgICAgIH0NCg0K KyAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7IGkrKykNCg0K KyAgICAgICAgICAgICAgIHZteG5ldDNfZGV2X3J4X3F1ZXVlX3JlbGVhc2UoZGV2LCBpKTsNCg0K ICAgICAgICBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcyA9IDA7DQoNCg0KDQotICAgICAgIGZvciAo aSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlczsgaSsrKSB7DQoNCi0gICAgICAgICAg ICAgICB2b2lkICp0eHEgPSBkZXYtPmRhdGEtPnR4X3F1ZXVlc1tpXTsNCg0KLQ0KDQotICAgICAg ICAgICAgICAgdm14bmV0M19kZXZfdHhfcXVldWVfcmVsZWFzZSh0eHEpOw0KDQotICAgICAgIH0N Cg0KKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXM7IGkrKykN Cg0KKyAgICAgICAgICAgICAgIHZteG5ldDNfZGV2X3R4X3F1ZXVlX3JlbGVhc2UoZGV2LCBpKTsN Cg0KICAgICAgICBkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlcyA9IDA7DQoNCiB9DQoNCg0KDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5oIGIvZHJpdmVycy9u ZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5oDQoNCmluZGV4IDU5YmVlOTcyM2MuLjg5NTAxNzU0 NjAgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhkZXYuaA0K DQorKysgYi9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmgNCg0KQEAgLTE4Miw4 ICsxODIsOCBAQCB2bXhuZXQzX3J4X2RhdGFfcmluZyhzdHJ1Y3Qgdm14bmV0M19odyAqaHcsIHVp bnQzMiBycUlEKQ0KDQoNCg0KIHZvaWQgdm14bmV0M19kZXZfY2xlYXJfcXVldWVzKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2KTsNCg0KDQoNCi12b2lkIHZteG5ldDNfZGV2X3J4X3F1ZXVlX3JlbGVh c2Uodm9pZCAqcnhxKTsNCg0KLXZvaWQgdm14bmV0M19kZXZfdHhfcXVldWVfcmVsZWFzZSh2b2lk ICp0eHEpOw0KDQordm9pZCB2bXhuZXQzX2Rldl9yeF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpOw0KDQordm9pZCB2bXhuZXQzX2Rldl90eF9xdWV1 ZV9yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpOw0KDQoNCg0K IGludCB2bXhuZXQzX3Y0X3Jzc19jb25maWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpOw0K DQoNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19yeHR4LmMgYi9k cml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfcnh0eC5jDQoNCmluZGV4IDVjZjUzZDRkZTguLmIw MWM0YzAxZjkgMTAwNjQ0DQoNCi0tLSBhL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19yeHR4 LmMNCg0KKysrIGIvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX3J4dHguYw0KDQpAQCAtMTY1 LDkgKzE2NSw5IEBAIHZteG5ldDNfY21kX3JpbmdfcmVsZWFzZSh2bXhuZXQzX2NtZF9yaW5nX3Qg KnJpbmcpDQoNCiB9DQoNCg0KDQogdm9pZA0KDQotdm14bmV0M19kZXZfdHhfcXVldWVfcmVsZWFz ZSh2b2lkICp0eHEpDQoNCit2bXhuZXQzX2Rldl90eF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxaWQpDQoNCiB7DQoNCi0gICAgICAgdm14bmV0M190eF9x dWV1ZV90ICp0cSA9IHR4cTsNCg0KKyAgICAgICB2bXhuZXQzX3R4X3F1ZXVlX3QgKnRxID0gZGV2 LT5kYXRhLT50eF9xdWV1ZXNbcWlkXTsNCg0KDQoNCiAgICAgICAgaWYgKHRxICE9IE5VTEwpIHsN Cg0KICAgICAgICAgICAgICAgIC8qIFJlbGVhc2UgbWJ1ZnMgKi8NCg0KQEAgLTE4MiwxMCArMTgy LDEwIEBAIHZteG5ldDNfZGV2X3R4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqdHhxKQ0KDQogfQ0KDQoN Cg0KIHZvaWQNCg0KLXZteG5ldDNfZGV2X3J4X3F1ZXVlX3JlbGVhc2Uodm9pZCAqcnhxKQ0KDQor dm14bmV0M19kZXZfcnhfcXVldWVfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWlu dDE2X3QgcWlkKQ0KDQogew0KDQogICAgICAgIGludCBpOw0KDQotICAgICAgIHZteG5ldDNfcnhf cXVldWVfdCAqcnEgPSByeHE7DQoNCisgICAgICAgdm14bmV0M19yeF9xdWV1ZV90ICpycSA9IGRl di0+ZGF0YS0+cnhfcXVldWVzW3FpZF07DQoNCg0KDQogICAgICAgIGlmIChycSAhPSBOVUxMKSB7 DQoNCiAgICAgICAgICAgICAgICAvKiBSZWxlYXNlIG1idWZzICovDQoNCmRpZmYgLS1naXQgYS9s aWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuaCBiL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oDQoN CmluZGV4IDQwZTQ3NGFhN2UuLjUyNDc1N2NmNmYgMTAwNjQ0DQoNCi0tLSBhL2xpYi9ldGhkZXYv ZXRoZGV2X2RyaXZlci5oDQoNCisrKyBiL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oDQoNCkBA IC0yODIsNyArMjgyLDggQEAgdHlwZWRlZiBpbnQgKCpldGhfcnhfZGlzYWJsZV9pbnRyX3QpKHN0 cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MTZfdCByeF9xdWV1ZV9pZCk7DQoNCiAvKio8IEBpbnRlcm5hbCBEaXNhYmxlIGlu dGVycnVwdCBvZiBhIHJlY2VpdmUgcXVldWUgb2YgYW4gRXRoZXJuZXQgZGV2aWNlLiAqLw0KDQoN Cg0KLXR5cGVkZWYgdm9pZCAoKmV0aF9xdWV1ZV9yZWxlYXNlX3QpKHZvaWQgKnF1ZXVlKTsNCg0K K3R5cGVkZWYgdm9pZCAoKmV0aF9xdWV1ZV9yZWxlYXNlX3QpKHN0cnVjdCBydGVfZXRoX2RldiAq ZGV2LA0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCByeF9x dWV1ZV9pZCk7DQoNCiAvKio8IEBpbnRlcm5hbCBSZWxlYXNlIG1lbW9yeSByZXNvdXJjZXMgYWxs b2NhdGVkIGJ5IGdpdmVuIFJYL1RYIHF1ZXVlLiAqLw0KDQoNCg0KIHR5cGVkZWYgaW50ICgqZXRo X2Z3X3ZlcnNpb25fZ2V0X3QpKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KDQpkaWZmIC0tZ2l0 IGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmMgYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuYw0KDQpp bmRleCBkYWY1Y2E5MjQyLi5hN2MwOTBjZTc5IDEwMDY0NA0KDQotLS0gYS9saWIvZXRoZGV2L3J0 ZV9ldGhkZXYuYw0KDQorKysgYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuYw0KDQpAQCAtOTA1LDEy ICs5MDUsMTAgQEAgZXRoX2Rldl9yeF9xdWV1ZV9jb25maWcoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsIHVpbnQxNl90IG5iX3F1ZXVlcykNCg0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IC0oRU5PTUVNKTsNCg0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICB9IGVsc2UgaWYgKGRl di0+ZGF0YS0+cnhfcXVldWVzICE9IE5VTEwgJiYgbmJfcXVldWVzICE9IDApIHsgLyogcmUtY29u ZmlndXJlICovDQoNCi0gICAgICAgICAgICAgICBSVEVfRlVOQ19QVFJfT1JfRVJSX1JFVCgqZGV2 LT5kZXZfb3BzLT5yeF9xdWV1ZV9yZWxlYXNlLCAtRU5PVFNVUCk7DQoNCi0NCg0KKyAgICAgICAg ICAgICAgIGlmIChkZXYtPmRldl9vcHMtPnJ4X3F1ZXVlX3JlbGVhc2UgIT0gTlVMTCkNCg0KKyAg ICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gbmJfcXVldWVzOyBpIDwgb2xkX25iX3F1ZXVl czsgaSsrKQ0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqZGV2LT5kZXZfb3Bz LT5yeF9xdWV1ZV9yZWxlYXNlKShkZXYsIGkpOw0KDQogICAgICAgICAgICAgICAgcnhxID0gZGV2 LT5kYXRhLT5yeF9xdWV1ZXM7DQoNCi0NCg0KLSAgICAgICAgICAgICAgIGZvciAoaSA9IG5iX3F1 ZXVlczsgaSA8IG9sZF9uYl9xdWV1ZXM7IGkrKykNCg0KLSAgICAgICAgICAgICAgICAgICAgICAg KCpkZXYtPmRldl9vcHMtPnJ4X3F1ZXVlX3JlbGVhc2UpKHJ4cVtpXSk7DQoNCiAgICAgICAgICAg ICAgICByeHEgPSBydGVfcmVhbGxvYyhyeHEsIHNpemVvZihyeHFbMF0pICogbmJfcXVldWVzLA0K DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJURV9DQUNIRV9MSU5FX1NJWkUpOw0K DQogICAgICAgICAgICAgICAgaWYgKHJ4cSA9PSBOVUxMKQ0KDQpAQCAtOTI1LDEyICs5MjMsMTAg QEAgZXRoX2Rldl9yeF9xdWV1ZV9jb25maWcoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQx Nl90IG5iX3F1ZXVlcykNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+cnhfcXVldWVzID0g cnhxOw0KDQoNCg0KICAgICAgICB9IGVsc2UgaWYgKGRldi0+ZGF0YS0+cnhfcXVldWVzICE9IE5V TEwgJiYgbmJfcXVldWVzID09IDApIHsNCg0KLSAgICAgICAgICAgICAgIFJURV9GVU5DX1BUUl9P Ul9FUlJfUkVUKCpkZXYtPmRldl9vcHMtPnJ4X3F1ZXVlX3JlbGVhc2UsIC1FTk9UU1VQKTsNCg0K LQ0KDQotICAgICAgICAgICAgICAgcnhxID0gZGV2LT5kYXRhLT5yeF9xdWV1ZXM7DQoNCg0KDQot ICAgICAgICAgICAgICAgZm9yIChpID0gbmJfcXVldWVzOyBpIDwgb2xkX25iX3F1ZXVlczsgaSsr KQ0KDQotICAgICAgICAgICAgICAgICAgICAgICAoKmRldi0+ZGV2X29wcy0+cnhfcXVldWVfcmVs ZWFzZSkocnhxW2ldKTsNCg0KKyAgICAgICAgICAgICAgIGlmIChkZXYtPmRldl9vcHMtPnJ4X3F1 ZXVlX3JlbGVhc2UgIT0gTlVMTCkNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0g bmJfcXVldWVzOyBpIDwgb2xkX25iX3F1ZXVlczsgaSsrKQ0KDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgqZGV2LT5kZXZfb3BzLT5yeF9xdWV1ZV9yZWxlYXNlKShkZXYsIGkpOw0K DQoNCg0KICAgICAgICAgICAgICAgIHJ0ZV9mcmVlKGRldi0+ZGF0YS0+cnhfcXVldWVzKTsNCg0K ICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+cnhfcXVldWVzID0gTlVMTDsNCg0KQEAgLTExNDUs MTIgKzExNDEsMTEgQEAgZXRoX2Rldl90eF9xdWV1ZV9jb25maWcoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsIHVpbnQxNl90IG5iX3F1ZXVlcykNCg0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIC0oRU5PTUVNKTsNCg0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICB9IGVsc2UgaWYg KGRldi0+ZGF0YS0+dHhfcXVldWVzICE9IE5VTEwgJiYgbmJfcXVldWVzICE9IDApIHsgLyogcmUt Y29uZmlndXJlICovDQoNCi0gICAgICAgICAgICAgICBSVEVfRlVOQ19QVFJfT1JfRVJSX1JFVCgq ZGV2LT5kZXZfb3BzLT50eF9xdWV1ZV9yZWxlYXNlLCAtRU5PVFNVUCk7DQoNCi0NCg0KICAgICAg ICAgICAgICAgIHR4cSA9IGRldi0+ZGF0YS0+dHhfcXVldWVzOw0KDQoNCg0KLSAgICAgICAgICAg ICAgIGZvciAoaSA9IG5iX3F1ZXVlczsgaSA8IG9sZF9uYl9xdWV1ZXM7IGkrKykNCg0KLSAgICAg ICAgICAgICAgICAgICAgICAgKCpkZXYtPmRldl9vcHMtPnR4X3F1ZXVlX3JlbGVhc2UpKHR4cVtp XSk7DQoNCisgICAgICAgICAgICAgICBpZiAoZGV2LT5kZXZfb3BzLT50eF9xdWV1ZV9yZWxlYXNl ICE9IE5VTEwpDQoNCisgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IG5iX3F1ZXVlczsg aSA8IG9sZF9uYl9xdWV1ZXM7IGkrKykNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoKmRldi0+ZGV2X29wcy0+dHhfcXVldWVfcmVsZWFzZSkoZGV2LCBpKTsNCg0KICAgICAgICAg ICAgICAgIHR4cSA9IHJ0ZV9yZWFsbG9jKHR4cSwgc2l6ZW9mKHR4cVswXSkgKiBuYl9xdWV1ZXMs DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVEVfQ0FDSEVfTElORV9TSVpF KTsNCg0KICAgICAgICAgICAgICAgIGlmICh0eHEgPT0gTlVMTCkNCg0KQEAgLTExNjUsMTIgKzEx NjAsMTEgQEAgZXRoX2Rldl90eF9xdWV1ZV9jb25maWcoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs IHVpbnQxNl90IG5iX3F1ZXVlcykNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+dHhfcXVl dWVzID0gdHhxOw0KDQoNCg0KICAgICAgICB9IGVsc2UgaWYgKGRldi0+ZGF0YS0+dHhfcXVldWVz ICE9IE5VTEwgJiYgbmJfcXVldWVzID09IDApIHsNCg0KLSAgICAgICAgICAgICAgIFJURV9GVU5D X1BUUl9PUl9FUlJfUkVUKCpkZXYtPmRldl9vcHMtPnR4X3F1ZXVlX3JlbGVhc2UsIC1FTk9UU1VQ KTsNCg0KLQ0KDQogICAgICAgICAgICAgICAgdHhxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXM7DQoN Cg0KDQotICAgICAgICAgICAgICAgZm9yIChpID0gbmJfcXVldWVzOyBpIDwgb2xkX25iX3F1ZXVl czsgaSsrKQ0KDQotICAgICAgICAgICAgICAgICAgICAgICAoKmRldi0+ZGV2X29wcy0+dHhfcXVl dWVfcmVsZWFzZSkodHhxW2ldKTsNCg0KKyAgICAgICAgICAgICAgIGlmIChkZXYtPmRldl9vcHMt PnR4X3F1ZXVlX3JlbGVhc2UgIT0gTlVMTCkNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgZm9y IChpID0gbmJfcXVldWVzOyBpIDwgb2xkX25iX3F1ZXVlczsgaSsrKQ0KDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgqZGV2LT5kZXZfb3BzLT50eF9xdWV1ZV9yZWxlYXNlKShkZXYs IGkpOw0KDQoNCg0KICAgICAgICAgICAgICAgIHJ0ZV9mcmVlKGRldi0+ZGF0YS0+dHhfcXVldWVz KTsNCg0KICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+dHhfcXVldWVzID0gTlVMTDsNCg0KQEAg LTIxMTIsOSArMjEwNiw4IEBAIHJ0ZV9ldGhfcnhfcXVldWVfc2V0dXAodWludDE2X3QgcG9ydF9p ZCwgdWludDE2X3QgcnhfcXVldWVfaWQsDQoNCg0KDQogICAgICAgIHJ4cSA9IGRldi0+ZGF0YS0+ cnhfcXVldWVzOw0KDQogICAgICAgIGlmIChyeHFbcnhfcXVldWVfaWRdKSB7DQoNCi0gICAgICAg ICAgICAgICBSVEVfRlVOQ19QVFJfT1JfRVJSX1JFVCgqZGV2LT5kZXZfb3BzLT5yeF9xdWV1ZV9y ZWxlYXNlLA0KDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUVOT1RT VVApOw0KDQotICAgICAgICAgICAgICAgKCpkZXYtPmRldl9vcHMtPnJ4X3F1ZXVlX3JlbGVhc2Up KHJ4cVtyeF9xdWV1ZV9pZF0pOw0KDQorICAgICAgICAgICAgICAgaWYgKGRldi0+ZGV2X29wcy0+ cnhfcXVldWVfcmVsZWFzZSAhPSBOVUxMKQ0KDQorICAgICAgICAgICAgICAgICAgICAgICAoKmRl di0+ZGV2X29wcy0+cnhfcXVldWVfcmVsZWFzZSkoZGV2LCByeF9xdWV1ZV9pZCk7DQoNCiAgICAg ICAgICAgICAgICByeHFbcnhfcXVldWVfaWRdID0gTlVMTDsNCg0KICAgICAgICB9DQoNCg0KDQpA QCAtMjI0OCw5ICsyMjQxLDggQEAgcnRlX2V0aF9yeF9oYWlycGluX3F1ZXVlX3NldHVwKHVpbnQx Nl90IHBvcnRfaWQsIHVpbnQxNl90IHJ4X3F1ZXVlX2lkLA0KDQogICAgICAgICAgICAgICAgcmV0 dXJuIC1FQlVTWTsNCg0KICAgICAgICByeHEgPSBkZXYtPmRhdGEtPnJ4X3F1ZXVlczsNCg0KICAg ICAgICBpZiAocnhxW3J4X3F1ZXVlX2lkXSAhPSBOVUxMKSB7DQoNCi0gICAgICAgICAgICAgICBS VEVfRlVOQ19QVFJfT1JfRVJSX1JFVCgqZGV2LT5kZXZfb3BzLT5yeF9xdWV1ZV9yZWxlYXNlLA0K DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUVOT1RTVVApOw0KDQot ICAgICAgICAgICAgICAgKCpkZXYtPmRldl9vcHMtPnJ4X3F1ZXVlX3JlbGVhc2UpKHJ4cVtyeF9x dWV1ZV9pZF0pOw0KDQorICAgICAgICAgICAgICAgaWYgKGRldi0+ZGV2X29wcy0+cnhfcXVldWVf cmVsZWFzZSAhPSBOVUxMKQ0KDQorICAgICAgICAgICAgICAgICAgICAgICAoKmRldi0+ZGV2X29w cy0+cnhfcXVldWVfcmVsZWFzZSkoZGV2LCByeF9xdWV1ZV9pZCk7DQoNCiAgICAgICAgICAgICAg ICByeHFbcnhfcXVldWVfaWRdID0gTlVMTDsNCg0KICAgICAgICB9DQoNCiAgICAgICAgcmV0ID0g KCpkZXYtPmRldl9vcHMtPnJ4X2hhaXJwaW5fcXVldWVfc2V0dXApKGRldiwgcnhfcXVldWVfaWQs DQoNCkBAIC0yMzE2LDkgKzIzMDgsOCBAQCBydGVfZXRoX3R4X3F1ZXVlX3NldHVwKHVpbnQxNl90 IHBvcnRfaWQsIHVpbnQxNl90IHR4X3F1ZXVlX2lkLA0KDQoNCg0KICAgICAgICB0eHEgPSBkZXYt PmRhdGEtPnR4X3F1ZXVlczsNCg0KICAgICAgICBpZiAodHhxW3R4X3F1ZXVlX2lkXSkgew0KDQot ICAgICAgICAgICAgICAgUlRFX0ZVTkNfUFRSX09SX0VSUl9SRVQoKmRldi0+ZGV2X29wcy0+dHhf cXVldWVfcmVsZWFzZSwNCg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC1FTk9UU1VQKTsNCg0KLSAgICAgICAgICAgICAgICgqZGV2LT5kZXZfb3BzLT50eF9xdWV1ZV9y ZWxlYXNlKSh0eHFbdHhfcXVldWVfaWRdKTsNCg0KKyAgICAgICAgICAgICAgIGlmIChkZXYtPmRl dl9vcHMtPnR4X3F1ZXVlX3JlbGVhc2UgIT0gTlVMTCkNCg0KKyAgICAgICAgICAgICAgICAgICAg ICAgKCpkZXYtPmRldl9vcHMtPnR4X3F1ZXVlX3JlbGVhc2UpKGRldiwgdHhfcXVldWVfaWQpOw0K DQogICAgICAgICAgICAgICAgdHhxW3R4X3F1ZXVlX2lkXSA9IE5VTEw7DQoNCiAgICAgICAgfQ0K DQoNCg0KQEAgLTI0MjgsOSArMjQxOSw4IEBAIHJ0ZV9ldGhfdHhfaGFpcnBpbl9xdWV1ZV9zZXR1 cCh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdCB0eF9xdWV1ZV9pZCwNCg0KICAgICAgICAgICAg ICAgIHJldHVybiAtRUJVU1k7DQoNCiAgICAgICAgdHhxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXM7 DQoNCiAgICAgICAgaWYgKHR4cVt0eF9xdWV1ZV9pZF0gIT0gTlVMTCkgew0KDQotICAgICAgICAg ICAgICAgUlRFX0ZVTkNfUFRSX09SX0VSUl9SRVQoKmRldi0+ZGV2X29wcy0+dHhfcXVldWVfcmVs ZWFzZSwNCg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1FTk9UU1VQ KTsNCg0KLSAgICAgICAgICAgICAgICgqZGV2LT5kZXZfb3BzLT50eF9xdWV1ZV9yZWxlYXNlKSh0 eHFbdHhfcXVldWVfaWRdKTsNCg0KKyAgICAgICAgICAgICAgIGlmIChkZXYtPmRldl9vcHMtPnR4 X3F1ZXVlX3JlbGVhc2UgIT0gTlVMTCkNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgKCpkZXYt PmRldl9vcHMtPnR4X3F1ZXVlX3JlbGVhc2UpKGRldiwgdHhfcXVldWVfaWQpOw0KDQogICAgICAg ICAgICAgICAgdHhxW3R4X3F1ZXVlX2lkXSA9IE5VTEw7DQoNCiAgICAgICAgfQ0KDQogICAgICAg IHJldCA9ICgqZGV2LT5kZXZfb3BzLT50eF9oYWlycGluX3F1ZXVlX3NldHVwKQ0KDQo=