Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp561783imm; Tue, 5 Jun 2018 00:13:49 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJVXRmbJRfdyCSmDpk+gyJyi+QCCroVGkr2WGCbAdmFqnNJR5ituFMEpc/U6aQY7/HTVZy6 X-Received: by 2002:a63:7f07:: with SMTP id a7-v6mr19850601pgd.173.1528182829423; Tue, 05 Jun 2018 00:13:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528182829; cv=none; d=google.com; s=arc-20160816; b=Vke7f0vBdNWLgbCbjZDAKQLOEf9zYflIYWoBLHskmvRoUPNFeaPlJ5oZhg3GLW2wnJ iFDsdsZZFZCy9JoH19fQf4JkuIj/53hGgQPpIWKxgCuVICejUPuOgQlmrBEXK9Adhyet 4OePTp3DuRNd43/RkQ9Yxysymp4FopcjBugaNMUrN27IMdUcISLF3+lEVziXsntuMSX5 +KVS0PudClSoA2HiwklkywCJ+cJR9LGsg3OkhURQZZKCOACW5WrH9mEir4nEgt1EUqsv FIByAS6nIdmyHPlyUiIqQkg3/hvWDZ16DE9abA986Z6QPLPUjOYPAvpNsIkBgT7MF+Uv YvAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:spamdiagnosticmetadata:spamdiagnosticoutput :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=QLyOGongExWXvdYsEA2K5Q9otJjANtF/9C5mzt6Oa9I=; b=OZbUuWSoF5JNZbr/b2btNO+gg2pZLpFynrJkB5My197VPQkgxNhDOK6IlAkpXL1Eoj I9EFcyZfRfZkq9d3VVoLxc98YDYRnqAGvNU9dSy6LjLA1CRNO66gGWrhFCe+kzcR89Oq Yx7CuXS3WHqDPRv+Hj4ohyEZO4LYE/9o+uL9zuu22iW3BVep77AsyONtcC6CQlhbzzc8 sDOm6gSX3jNNk/pxa9jm9Ca4p+nphWwnwrWXc/x/5Hnk6UlRccd4Sp0y2oynzvRFWvD5 WeSFVvxWQ4pjEUC2t0o5b8cQe01gSss3GFhKQxciJzF3kvLuBj7GcHVsxBS7mHiQl1da jh5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cnexlabs.onmicrosoft.com header.s=selector1-cnexlabs-com header.b=EynBIWoU; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j12-v6si9182630pgf.359.2018.06.05.00.13.35; Tue, 05 Jun 2018 00:13:49 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@cnexlabs.onmicrosoft.com header.s=selector1-cnexlabs-com header.b=EynBIWoU; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751838AbeFEHMX (ORCPT + 99 others); Tue, 5 Jun 2018 03:12:23 -0400 Received: from mail-co1nam03on0072.outbound.protection.outlook.com ([104.47.40.72]:37920 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751459AbeFEHMW (ORCPT ); Tue, 5 Jun 2018 03:12:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cnexlabs.onmicrosoft.com; s=selector1-cnexlabs-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QLyOGongExWXvdYsEA2K5Q9otJjANtF/9C5mzt6Oa9I=; b=EynBIWoUzGGIT+88V0oP0Sqt1GDYxo2O2g3oQwsEV96rC/mfVslYWV84J9UWi1q/jvipcy82ewX7c7A7gUCApcFZJeidz25P2q7WsGjJapEr7VkW6GuPdJf6iIU5GgRamGcgm2aKTiY9zXZjCsIeFMomDtoe1OFM8TFKOGjb2x8= Received: from CO2PR06MB538.namprd06.prod.outlook.com (10.141.199.23) by CO2PR06MB490.namprd06.prod.outlook.com (10.141.197.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.820.11; Tue, 5 Jun 2018 07:12:19 +0000 Received: from CO2PR06MB538.namprd06.prod.outlook.com ([fe80::592c:a66:2681:242d]) by CO2PR06MB538.namprd06.prod.outlook.com ([fe80::592c:a66:2681:242d%16]) with mapi id 15.20.0820.015; Tue, 5 Jun 2018 07:12:18 +0000 From: Javier Gonzalez To: "Dziegielewski, Marcin" CC: =?utf-8?B?TWF0aWFzIEJqw7hybGluZw==?= , Jens Axboe , "linux-block@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "Konopko, Igor J" Subject: Re: [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits equals to 0 Thread-Topic: [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits equals to 0 Thread-Index: AQHT9nNowv/ltW4OykevBDGzU2j6naRP61UAgAADYQCAAA4IgIAAASGAgABlK4CAAOkfgA== Date: Tue, 5 Jun 2018 07:12:18 +0000 Message-ID: References: <20180528085841.26684-1-mb@lightnvm.io> <20180528085841.26684-19-mb@lightnvm.io> <54B2CCDB-B869-4087-8AE2-2AC73381B1FF@cnexlabs.com> <9FC4315EA6BEAA449828D92CF173A10D3E382351@IRSMSX109.ger.corp.intel.com> <3B216FC2-D5EB-4A36-8946-27307DA3D1B1@cnexlabs.com> <9FC4315EA6BEAA449828D92CF173A10D3E3833ED@IRSMSX109.ger.corp.intel.com> <3A87DF02-6471-4B92-9DDC-4E0FD98249A4@cnexlabs.com> <9FC4315EA6BEAA449828D92CF173A10D3E38365C@IRSMSX109.ger.corp.intel.com> In-Reply-To: <9FC4315EA6BEAA449828D92CF173A10D3E38365C@IRSMSX109.ger.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=javier@cnexlabs.com; x-originating-ip: [193.106.164.211] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;CO2PR06MB490;7:3iUIm9gCI6CEw+bsBL9/vPRvjFFJwWQGCA950MZbvM2OYX2EddbwgZ6hT4DVkrc60ynTJX/+zWlcKeCo3KnwXFNu5kHFR+X0cPO8qOkAKKh7vhghGfevqXOwzDpq/Ip85gMqPXuE8uBj5Gaxy9vhYbFlABAZVKM4zWfVyAllgb5eoOBN1yIGTUN4mrEkJLvbL+vrWuYFWiDI+1oLeITAfBT8rNg+4jNixzBTGLuGG1hXtfXFuCJSSqaBWvCC75ox x-ms-exchange-antispam-srfa-diagnostics: SOS; x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:CO2PR06MB490; x-ms-traffictypediagnostic: CO2PR06MB490: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(9452136761055)(67672495146484)(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011)(7699016);SRVR:CO2PR06MB490;BCL:0;PCL:0;RULEID:;SRVR:CO2PR06MB490; x-forefront-prvs: 0694C54398 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(39840400004)(376002)(346002)(396003)(39380400002)(189003)(199004)(13464003)(7736002)(26005)(11346002)(102836004)(305945005)(8936002)(6246003)(229853002)(4326008)(6486002)(53546011)(8676002)(81166006)(81156014)(33656002)(93886005)(6506007)(2900100001)(14454004)(6116002)(476003)(478600001)(25786009)(2616005)(446003)(53936002)(6512007)(186003)(486006)(82746002)(5250100002)(3280700002)(54906003)(99286004)(68736007)(6916009)(5660300001)(106356001)(105586002)(3660700001)(2906002)(86362001)(97736004)(36756003)(76176011)(316002)(6436002)(83716003)(66066001)(3846002)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:CO2PR06MB490;H:CO2PR06MB538.namprd06.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: cnexlabs.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: eG/xRfUi+Gn40deoMiknximNQlu7/DXwYRCI1jeuShbi3MYzq7zO/+IJMIxXWnO/HXPFQOJjt6NL3gatTbO8npcev7CxgfthC7a4yIEl0LPAb2CFY+sKvz0Z5WIcgfSnmK5wUCJCIJHG9/p+OsgVCq1Xe7Jbto9faFTW/cmXBCNqrP0RGCBrK4OVPGqPree2 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <1692500B3702324D934FACE84CD30689@namprd06.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 25ee7525-8962-4423-c6b2-08d5cab3ac78 X-OriginatorOrg: cnexlabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25ee7525-8962-4423-c6b2-08d5cab3ac78 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jun 2018 07:12:18.2471 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: e40dfc2e-c6c1-463a-a598-38602b2c3cff X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR06MB490 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBPbiA0IEp1biAyMDE4LCBhdCAxOS4xNywgRHppZWdpZWxld3NraSwgTWFyY2luIDxtYXJjaW4u ZHppZWdpZWxld3NraUBpbnRlbC5jb20+IHdyb3RlOg0KPiANCj4+IEZyb206IEphdmllciBHb256 YWxleiBbbWFpbHRvOmphdmllckBjbmV4bGFicy5jb21dDQo+PiBTZW50OiBNb25kYXksIEp1bmUg NCwgMjAxOCAxOjE2IFBNDQo+PiBUbzogRHppZWdpZWxld3NraSwgTWFyY2luIDxtYXJjaW4uZHpp ZWdpZWxld3NraUBpbnRlbC5jb20+DQo+PiBDYzogTWF0aWFzIEJqw7hybGluZyA8bWJAbGlnaHRu dm0uaW8+OyBKZW5zIEF4Ym9lIDxheGJvZUBmYi5jb20+OyBsaW51eC0NCj4+IGJsb2NrQHZnZXIu a2VybmVsLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgS29ub3BrbywgSWdvciBK DQo+PiA8aWdvci5qLmtvbm9wa29AaW50ZWwuY29tPg0KPj4gU3ViamVjdDogUmU6IFtHSVQgUFVM TCAxOC8yMF0gbGlnaHRudm06IHBibGs6IGhhbmRsZSBjYXNlIHdoZW4gbXdfY3VuaXRzDQo+PiBl cXVhbHMgdG8gMA0KPj4gDQo+PiANCj4+PiBPbiA0IEp1biAyMDE4LCBhdCAxMy4xMSwgRHppZWdp ZWxld3NraSwgTWFyY2luDQo+PiA8bWFyY2luLmR6aWVnaWVsZXdza2lAaW50ZWwuY29tPiB3cm90 ZToNCj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4gRnJvbTogSmF2aWVyIEdv bnphbGV6IFttYWlsdG86amF2aWVyQGNuZXhsYWJzLmNvbV0NCj4+Pj4gU2VudDogTW9uZGF5LCBK dW5lIDQsIDIwMTggMTI6MjIgUE0NCj4+Pj4gVG86IER6aWVnaWVsZXdza2ksIE1hcmNpbiA8bWFy Y2luLmR6aWVnaWVsZXdza2lAaW50ZWwuY29tPg0KPj4+PiBDYzogTWF0aWFzIEJqw7hybGluZyA8 bWJAbGlnaHRudm0uaW8+OyBKZW5zIEF4Ym9lIDxheGJvZUBmYi5jb20+Ow0KPj4+PiBsaW51eC0g YmxvY2tAdmdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBLb25v cGtvLA0KPj4+PiBJZ29yIEogPGlnb3Iuai5rb25vcGtvQGludGVsLmNvbT4NCj4+Pj4gU3ViamVj dDogUmU6IFtHSVQgUFVMTCAxOC8yMF0gbGlnaHRudm06IHBibGs6IGhhbmRsZSBjYXNlIHdoZW4N Cj4+Pj4gbXdfY3VuaXRzIGVxdWFscyB0byAwDQo+Pj4+IA0KPj4+Pj4gT24gNCBKdW4gMjAxOCwg YXQgMTIuMDksIER6aWVnaWVsZXdza2ksIE1hcmNpbg0KPj4+PiA8bWFyY2luLmR6aWVnaWVsZXdz a2lAaW50ZWwuY29tPiB3cm90ZToNCj4+Pj4+IEZyaXN0IG9mIGFsbCBJIHdhbnQgdG8gc2F5IHNv cnJ5IGZvciBsYXRlIHJlc3BvbnNlIC0gSSB3YXMgb24gaG9saWRheS4NCj4+Pj4+IA0KPj4+Pj4+ IEZyb206IEphdmllciBHb256YWxleiBbbWFpbHRvOmphdmllckBjbmV4bGFicy5jb21dDQo+Pj4+ Pj4gU2VudDogTW9uZGF5LCBNYXkgMjgsIDIwMTggMTowMyBQTQ0KPj4+Pj4+IFRvOiBNYXRpYXMg QmrDuHJsaW5nIDxtYkBsaWdodG52bS5pbz4NCj4+Pj4+PiBDYzogSmVucyBBeGJvZSA8YXhib2VA ZmIuY29tPjsgbGludXgtYmxvY2tAdmdlci5rZXJuZWwub3JnOyBsaW51eC0NCj4+Pj4+PiBrZXJu ZWxAdmdlci5rZXJuZWwub3JnOyBEemllZ2llbGV3c2tpLCBNYXJjaW4NCj4+Pj4+PiA8bWFyY2lu LmR6aWVnaWVsZXdza2lAaW50ZWwuY29tPjsgS29ub3BrbywgSWdvciBKDQo+Pj4+Pj4gPGlnb3Iu ai5rb25vcGtvQGludGVsLmNvbT4NCj4+Pj4+PiBTdWJqZWN0OiBSZTogW0dJVCBQVUxMIDE4LzIw XSBsaWdodG52bTogcGJsazogaGFuZGxlIGNhc2Ugd2hlbg0KPj4+Pj4+IG13X2N1bml0cyBlcXVh bHMgdG8gMA0KPj4+Pj4+IA0KPj4+Pj4+PiBPbiAyOCBNYXkgMjAxOCwgYXQgMTAuNTgsIE1hdGlh cyBCasO4cmxpbmcgPG1iQGxpZ2h0bnZtLmlvPiB3cm90ZToNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IEZy b206IE1hcmNpbiBEemllZ2llbGV3c2tpIDxtYXJjaW4uZHppZWdpZWxld3NraUBpbnRlbC5jb20+ DQo+Pj4+Pj4+IA0KPj4+Pj4+PiBTb21lIGRldmljZXMgY2FuIGV4cG9zZSBtd19jdW5pdHMgZXF1 YWwgdG8gMCwgaXQgY2FuIGNhdXNlDQo+Pj4+Pj4+IGNyZWF0aW9uIG9mIHRvbyBzbWFsbCB3cml0 ZSBidWZmZXIgYW5kIGNhdXNlIHBlcmZvcm1hbmNlIHRvIGRyb3ANCj4+Pj4+Pj4gb24gd3JpdGUg d29ya2xvYWRzLg0KPj4+Pj4+PiANCj4+Pj4+Pj4gVG8gaGFuZGxlIHRoYXQsIHdlIHVzZSB0aGUg ZGVmYXVsdCB2YWx1ZSBmb3IgTUxDIGFuZCBiZWFjYXVzZSBpdA0KPj4+Pj4+PiBjb3ZlcnMgYm90 aCAxLjIgYW5kIDIuMCBPQyBzcGVjaWZpY2F0aW9uLCBzZXR0aW5nIHVwIG13X2N1bml0cyBpbg0K Pj4+Pj4+PiBudm1lX252bV9zZXR1cF8xMiBmdW5jdGlvbiBpc24ndCBsb25nZXIgbmVjZXNzYXJ5 Lg0KPj4+Pj4+PiANCj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogTWFyY2luIER6aWVnaWVsZXdza2kN Cj4+Pj4+Pj4gPG1hcmNpbi5kemllZ2llbGV3c2tpQGludGVsLmNvbT4NCj4+Pj4+Pj4gU2lnbmVk LW9mZi1ieTogSWdvciBLb25vcGtvIDxpZ29yLmoua29ub3Brb0BpbnRlbC5jb20+DQo+Pj4+Pj4+ IFNpZ25lZC1vZmYtYnk6IE1hdGlhcyBCasO4cmxpbmcgPG1iQGxpZ2h0bnZtLmlvPg0KPj4+Pj4+ PiAtLS0NCj4+Pj4+Pj4gZHJpdmVycy9saWdodG52bS9wYmxrLWluaXQuYyB8IDEwICsrKysrKysr Ky0NCj4+Pj4+Pj4gZHJpdmVycy9udm1lL2hvc3QvbGlnaHRudm0uYyB8ICAxIC0NCj4+Pj4+Pj4g MiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+Pj4+Pj4+ IA0KPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9saWdodG52bS9wYmxrLWluaXQuYw0KPj4+ Pj4+PiBiL2RyaXZlcnMvbGlnaHRudm0vcGJsay1pbml0LmMgaW5kZXggZDY1ZDJmOTcyY2NmLi4w ZjI3Nzc0NDI2NmINCj4+Pj4+Pj4gMTAwNjQ0DQo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvbGlnaHRu dm0vcGJsay1pbml0LmMNCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9saWdodG52bS9wYmxrLWluaXQu Yw0KPj4+Pj4+PiBAQCAtMzU2LDcgKzM1NiwxNSBAQCBzdGF0aWMgaW50IHBibGtfY29yZV9pbml0 KHN0cnVjdCBwYmxrICpwYmxrKQ0KPj4+Pj4+PiAJYXRvbWljNjRfc2V0KCZwYmxrLT5ucl9mbHVz aCwgMCk7DQo+Pj4+Pj4+IAlwYmxrLT5ucl9mbHVzaF9yc3QgPSAwOw0KPj4+Pj4+PiANCj4+Pj4+ Pj4gLQlwYmxrLT5wZ3NfaW5fYnVmZmVyID0gZ2VvLT5td19jdW5pdHMgKiBnZW8tPmFsbF9sdW5z Ow0KPj4+Pj4+PiArCWlmIChnZW8tPm13X2N1bml0cykgew0KPj4+Pj4+PiArCQlwYmxrLT5wZ3Nf aW5fYnVmZmVyID0gZ2VvLT5td19jdW5pdHMgKiBnZW8tDQo+Pj4gYWxsX2x1bnM7DQo+Pj4+Pj4+ ICsJfSBlbHNlIHsNCj4+Pj4+Pj4gKwkJcGJsay0+cGdzX2luX2J1ZmZlciA9IChnZW8tPndzX29w dCA8PCAzKSAqIGdlby0NCj4+PiBhbGxfbHVuczsNCj4+Pj4+Pj4gKwkJLyoNCj4+Pj4+Pj4gKwkJ ICogU29tZSBkZXZpY2VzIGNhbiBleHBvc2UgbXdfY3VuaXRzIGVxdWFsIHRvIDAsIHNvDQo+PiBs ZXQncw0KPj4+Pj4+IHVzZQ0KPj4+Pj4+PiArCQkgKiBoZXJlIGRlZmF1bHQgc2FmZSB2YWx1ZSBm b3IgTUxDLg0KPj4+Pj4+PiArCQkgKi8NCj4+Pj4+Pj4gKwl9DQo+Pj4+Pj4+IA0KPj4+Pj4+PiAJ cGJsay0+bWluX3dyaXRlX3BncyA9IGdlby0+d3Nfb3B0ICogKGdlby0+Y3NlY3MgLyBQQUdFX1NJ WkUpOw0KPj4+Pj4+PiAJbWF4X3dyaXRlX3BwYXMgPSBwYmxrLT5taW5fd3JpdGVfcGdzICogZ2Vv LT5hbGxfbHVuczsgZGlmZiAtLWdpdA0KPj4+Pj4+PiBhL2RyaXZlcnMvbnZtZS9ob3N0L2xpZ2h0 bnZtLmMgYi9kcml2ZXJzL252bWUvaG9zdC9saWdodG52bS5jDQo+Pj4+Pj4+IGluZGV4DQo+Pj4+ Pj4+IDQxMjc5ZGE3OTllZC4uYzc0Nzc5MmRhOTE1IDEwMDY0NA0KPj4+Pj4+PiAtLS0gYS9kcml2 ZXJzL252bWUvaG9zdC9saWdodG52bS5jDQo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvbnZtZS9ob3N0 L2xpZ2h0bnZtLmMNCj4+Pj4+Pj4gQEAgLTMzOCw3ICszMzgsNiBAQCBzdGF0aWMgaW50IG52bWVf bnZtX3NldHVwXzEyKHN0cnVjdA0KPj4+Pj4+IG52bWVfbnZtX2lkMTINCj4+Pj4+Pj4gKmlkLA0K Pj4+Pj4+PiANCj4+Pj4+Pj4gCWdlby0+d3NfbWluID0gc2VjX3Blcl9wZzsNCj4+Pj4+Pj4gCWdl by0+d3Nfb3B0ID0gc2VjX3Blcl9wZzsNCj4+Pj4+Pj4gLQlnZW8tPm13X2N1bml0cyA9IGdlby0+ d3Nfb3B0IDw8IDM7CS8qIGRlZmF1bHQgdG8gTUxDDQo+PiBzYWZlIHZhbHVlcw0KPj4+Pj4+ICov DQo+Pj4+Pj4+IC8qIERvIG5vdCBpbXBvc2UgdmFsdWVzIGZvciBtYXhpbXVtIG51bWJlciBvZiBv cGVuIGJsb2NrcyBhcyBpdCBpcw0KPj4+Pj4+PiAJICogdW5zcGVjaWZpZWQgaW4gMS4yLiBVc2Vy cyBvZiAxLjIgbXVzdCBiZSBhd2FyZSBvZiB0aGlzIGFuZA0KPj4+Pj4+PiBldmVudHVhbGx5DQo+ Pj4+Pj4+IC0tDQo+Pj4+Pj4+IDIuMTEuMA0KPj4+Pj4+IA0KPj4+Pj4+IEJ5IGRvaW5nIHRoaXMs IDEuMiBmdXR1cmUgdXNlcnMgKGJleW9uZCBwYmxrKSwgd2lsbCBmYWlsIHRvIGhhdmUgYQ0KPj4+ Pj4+IHZhbGlkIG13X2N1bml0cyB2YWx1ZS4gSXQncyBvayB0byBkZWFsIHdpdGggdGhlIDAgY2Fz ZSBpbiBwYmxrLCBidXQNCj4+Pj4+PiBJIGJlbGlldmUgdGhhdCB3ZSBzaG91bGQgaGF2ZSB0aGUg ZGVmYXVsdCB2YWx1ZSBmb3IgMS4yIGVpdGhlciB3YXkuDQo+Pj4+PiANCj4+Pj4+IEknbSBub3Qg c3VyZS4gRnJvbSBteSB1bmRlcnN0YW5kaW5nLCBzZXR0aW5nIG9mIGRlZmF1bHQgdmFsdWUgd2Fz DQo+Pj4+PiB3b3JrYXJvdW5kIGZvciBwYmxrIGNhc2UsIGFtIEkgcmlnaHQgPy4NCj4+Pj4gDQo+ Pj4+IFRoZSBkZWZhdWx0IHZhbHVlIGNvdmVycyB0aGUgTUxDIGNhc2UgZGlyZWN0bHkgYXQgdGhl IGxpZ2h0bnZtIGxheWVyLA0KPj4+PiBhcyBvcHBvc2VkIHRvIGRvaW5nIGl0IGRpcmVjdGx5IGlu IHBibGsuIFNpbmNlIHBibGsgaXMgdGhlIG9ubHkgdXNlcg0KPj4+PiBub3csIHlvdSBjYW4gYXJn dWUgdGhhdCBhbGwgY2hhbmdlcyBpbiB0aGUgbGlnaHRudm0gbGF5ZXIgYXJlIHRvDQo+Pj4+IHNv bHZlIHBibGsgaXNzdWVzLCBidXQgdGhlIGlkZWEgaXMgdGhhdCB0aGUgZ2VvbWV0cnkgc2hvdWxk IGJlIGdlbmVyaWMuDQo+Pj4+IA0KPj4+Pj4gSW4gbXkgb3BpbmlvbiBhbnkgdXNlciBvZiAxLjIN Cj4+Pj4+IHNwZWMgc2hvdWxkIGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgbm90IG13X2N1bml0IHZh bHVlLiBGcm9tIG15IHBvaW50DQo+Pj4+PiBvZiB2aWV3LCBsZWF2aW5nIGhlcmUgMCAoYW5kIGRl Y2lzaW9uIHdoYXQgZG8gd2l0aCBpdCB0byBsaWdodG52bQ0KPj4+Pj4gdXNlcikgaXMgbW9yZSBz YWZlciB3YXksIGJ1dCBtYXliZSBJJ20gd3JvbmcuIEkgYmVsaWV2ZSB0aGF0IGl0IGlzDQo+Pj4+ PiB0b3BpYyB0byB3aWRlciBkaXNjdXNzaW9uIHdpdGggbWFpbnRhaW5lcnMuDQo+Pj4+IA0KPj4+ PiAxLjIgYW5kIDIuMCBoYXZlIGRpZmZlcmVudCBnZW9tZXRyaWVzLCBidXQgd2hlbiB3ZSBkZXNp Z25lZCB0aGUNCj4+Pj4gY29tbW9uIG52bV9nZW8gc3RydWN0dXJlLCB0aGUgaWRlYSB3YXMgdG8g YWJzdHJhY3QgYm90aCBzcGVjcyBhbmQNCj4+Pj4gYWxsb3cgdGhlIHVwcGVyIGxheWVycyB0byB1 c2UgdGhlIGdlb21ldHJ5IHRyYW5zcGFyZW50bHkuDQo+Pj4+IA0KPj4+PiBTcGVjaWZpY2FsbHkg aW4gcGJsaywgSSB3b3VsZCBwcmVmZXIgdG8ga2VlcCBpdCBpbiBzdWNoIGEgd2F5IHRoYXQgd2UN Cj4+Pj4gZG9uJ3QgbmVlZCB0byBtZWRpYSBzcGVjaWZpYyBwb2xpY2llcyAoZS5nLiwgc2V0IGRl ZmF1bHQgdmFsdWVzIGZvcg0KPj4+PiBNTEMgbWVtb3JpZXMpLCBhcyBhIGdlbmVyYWwgZGVzaWdu IHByaW5jaXBsZS4gV2UgYWxyZWFkeSBkbyBzb21lDQo+Pj4+IGdlb21ldHJ5IHZlcnNpb24gY2hl Y2tzIHRvIGF2b2lkIGRlcmVmZXJlbmNpbmcgdW5uZWNlc3NhcnkgcG9pbnRlcnMNCj4+Pj4gb24g dGhlIGZhc3QgcGF0aCwgd2hpY2ggSSB3b3VsZCBldmVudHVhbGx5IGxpa2UgdG8gcmVtb3ZlLg0K Pj4+IA0KPj4+IE9rLCBub3cgSSB1bmRlcnN0YW5kIHlvdXIgcG9pbnQgb2YgdmlldyBhbmQgYWdy ZWUgd2l0aCB0aGF0LCBJIHdpbGwNCj4+PiBwcmVwYXJlIHNlY29uZCB2ZXJzaW9uIG9mIHRoaXMg cGF0Y2ggd2l0aG91dCB0aGlzIGNoYW5nZS4NCj4+IA0KPj4gU291bmRzIGdvb2QuDQo+PiANCj4+ PiBUaGFua3MgZm9yDQo+Pj4gdGhlIGNsYXJpZmljYXRpb24uDQo+PiANCj4+IFN1cmUgOikNCj4+ IA0KPj4+Pj4+IEEgbW9yZSBnZW5lcmljIHdheSBvZiBkb2luZyB0aGlzIHdvdWxkIGJlIHRvIGhh dmUgYSBkZWZhdWx0IHZhbHVlDQo+Pj4+Pj4gZm9yDQo+Pj4+Pj4gMi4wIHRvbywgaW4gY2FzZSBt d19jdW5pdHMgaXMgcmVwb3J0ZWQgYXMgMC4NCj4+Pj4+IA0KPj4+Pj4gU2luY2UgMCBpcyBjb3Jy ZWN0IHZhbHVlIGFuZCB1c2VycyBjYW4gbWFrZSBkaWZmZXJlbnQgZGVjaXNpb25zDQo+Pj4+PiBi YXNlZCBvbiBpdCwgSSB0aGluayB3ZSBzaG91bGRuJ3Qgb3ZlcndyaXRlIGl0IGJ5IGRlZmF1bHQg dmFsdWUuIElzDQo+Pj4+PiBpdCBtYWtlIHNlbnNlPw0KPj4+PiANCj4+Pj4gSGVyZSBJIG1lYW50 IGF0IGEgcGJsayBsZXZlbCAtIEkgc2hvdWxkIGhhdmUgc3BlY2lmaWVkIGl0LiBBdCB0aGUNCj4+ Pj4gZ2VvbWV0cnkgbGV2ZWwsIHdlIHNob3VsZCBub3QgY2hhbmdlIGl0Lg0KPj4+PiANCj4+Pj4g VGhlIGNhc2UgSSBhbSB0aGlua2luZyBpcyBpZiBtd19jdWludHMgcmVwb2ludHMgMCwgYnV0IHdz X21pbiA+IDAuIEluDQo+Pj4+IHRoaXMgY2FzZSwgd2Ugc3RpbGwgbmVlZCBhIGhvc3Qgc2lkZSBi dWZmZXIgdG8gc2VydmUgPCB3c19taW4gSS9PcywNCj4+Pj4gZXZlbiB0aG91Z2ggdGhlIGRldmlj ZSBkb2VzIG5vdCByZXF1aXJlIHRoZSBidWZmZXIgdG8gZ3VhcmFudGVlIHJlYWRzLg0KPj4+IA0K Pj4+IE9oLCBvayBub3cgd2UgYXJlIG9uIHRoZSBzYW1lIHBhZ2UuIEluIHRoaXMgcGF0Y2ggSSB3 YXMgdHJ5aW5nIHRvDQo+Pj4gYWRkcmVzcyBzdWNoIGNhc2UuIERvIHlvdSBoYXZlIG90aGVyIGlk ZWEgaG93IHRvIGRvIGl0IG9yIGhlcmUgYXJlIHlvdQ0KPj4+IHRoaW5raW5nIG9ubHkgb24gdmFs dWUgb2YgZGVmYXVsdCB2YXJpYWJsZT8NCj4+IA0KPj4gSWYgZG9pbmcgdGhpcywgSSBndWVzcyB0 aGF0IHNvbWV0aGluZyBpbiB0aGUgbGluZSBvZiB3aGF0IHlvdSBkaWQgd2l0aA0KPj4gaW5jcmVh c2luZyB0aGUgc2l6ZSBvZiB0aGUgd3JpdGUgYnVmZmVyIHZpYSBhIG1vZHVsZSBwYXJhbWV0ZXIu IEZvciBleGFtcGxlLA0KPj4gY2hlY2tpbmcgaWYgdGhlIHNpemUgb2YgdGhlIHdyaXRlIGJ1ZmZl ciBiYXNlZCBvbiBtd19jdWludHMgaXMgZW5vdWdoIHRvDQo+PiBjb3ZlciB3c19taW4sIHdoaWNo IG5vcm1hbGx5IHdvdWxkIG9ubHkgYmUgYW4gaXNzdWUgd2hlbiBtd19jdWludHMgPT0gMA0KPj4g b3Igd2hlbiB0aGUgbnVtYmVyIG9mIFBVcyB1c2VkIGZvciB0aGUgcGJsayBpbnN0YW5jZSBpcyB2 ZXJ5IHNtYWxsIGFuZA0KPj4gbXdfY3VpbnRzIDwgbnJfbHVucyAqIHdzX21pbi4NCj4gDQo+IA0K PiBJIHNlZSBoZXJlIHR3byBjYXNlczoNCj4gLSB3aGVuIG13X2N1bml0cyA+IDAgYnVmZmVyIHNp emUgc2hvdWxkIGhhdmUgbnVtYmVyIG9mIGVudHJpZXMgYXQNCj4gbGVhc3QgbWF4KG13X2N1bml0 cywgd3NfbWluKSAqIG5yX2x1bnMgYW5kIGhlcmUgd2UgYXJlIHRha2luZyBjYXJlIG9mDQo+IGJv dGggY2FzZXMgbXdfY3VuaXRzID4gd3NfbWluIGFuZCBtd19jdW5pdHMgPCB3c19taW4uDQo+IC0g d2hlbiBtd19jdW5pdCA9PSAwIGJ1ZmZlciBzaXplIHNob3VsZCBoYXZlIG51bWJlciBvZiBlbnRy aWVzIGF0DQo+IGxlYXN0IHdzX21pbiAqIG5yIF9sdW5zIGFuZCB3ZSBjYW4gdXNlIHRoZSBzYW1l IHB1c2V1ZG9jb2RlIGFzIGFib3ZlLg0KPiANCg0KQWdyZWUuDQoNCj4gRG8geW91IHNlZSBhbnkg b3RoZXIgY2FzZT8gQ291bGQgeW91IGNsYXJpZnkgc2Vjb25kIGNhc2UgbWVudGlvbmVkIGJ5DQo+ IHlvdSBvciBtYXliZSBkaWQgeW91IG1lYW4gb3Bwb3NpdGUgY2FzZT8gSWYgeWVzLCBJIGJlbGll dmUgdGhhdCBhYm92ZQ0KPiBwc2V1ZG8gY29kZSB3aWxsIGhhbmRsZSBzdWNoIGNhc2UgdG9vLg0K PiANCg0KWWVzLCBpdCBpcyB0aGUgc2FtZSBjYXNlLg0KDQpPbmUgdGhpbmcgdG8gY29uc2lkZXIg aXMgd2hldGhlciB0aGUgYnVmZmVyIHNob3VsZCBhdCBsZWFzdCBiZSB3c19vcHQgKg0KbnJfbHVu cyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4gU2luY2UgdGhlIHdyaXRlIHRocmVhZCB3aWxsIGFs d2F5cyB0cnkNCnRvIHNlbmQgd3Nfb3B0LCBpbiB0aGUgY2FzZSB0aGF0IHdzX29wdCA+IHdzX21p biwgdGhlbiBhIGJ1ZmZlciBzaXplIG9mDQp3c19taW4gKiBucl9sdW5zIHdpbGwgbm90IG1ha2Ug dXNlIG9mIHRoZSB3aG9sZSBwYXJhbGxlbGlzbSBleHBvc2VkIGJ5DQp0aGUgZGV2aWNlLg0KDQpU aGVyZWZvcmUsIEkgd291bGQgcHJvYmFibHkgZ28gZm9yIHdzX29wdCAqIG5yX2x1bnMgYXMgdGhl IGRlZmF1bHQgdmFsdWUNCndoZW4gbXdfY3VpbnRzICogbnJfbHVucyA8IHdzX29wdCAqIG5yX2x1 bnMgKHdoaWNoIGNvdmVycyBtd19jdWludHMgPT0NCjApLCBhbmQgdGhlbiBrZWVwIHdzX21pbiAq IG5yX2x1bnMgYXMgdGhlIG1pbmltdW0gcmVxdWlyZW1lbnQgd2hlbg0Kc2V0dGluZyB0aGUgYnVm ZmVyIHNpemUgbWFudWFsbHkuDQoNCkRvZXMgdGhpcyBjb3ZlciB5b3VyIHVzZSBjYXNlPw0KDQo+ Pj4+Pj4gSmF2aWVyDQo+Pj4+PiANCj4+Pj4+IFRoYW5rcywNCj4+Pj4+IE1hcmNpbg0KPj4+PiAN Cj4+Pj4gSmF2aWVyDQo+Pj4gVGhhbmtzLA0KPj4+IE1hcmNpbg0KPiBUaGFua3MhLA0KPiBNYXJj aW4NCg==