From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED, USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5882EC54FD0 for ; Tue, 21 Apr 2020 12:26:52 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id EC6272075E for ; Tue, 21 Apr 2020 12:26:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="ZpZ8SUhs" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EC6272075E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 79E838E0006; Tue, 21 Apr 2020 08:26:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 74EBC8E0003; Tue, 21 Apr 2020 08:26:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 664748E0006; Tue, 21 Apr 2020 08:26:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0160.hostedemail.com [216.40.44.160]) by kanga.kvack.org (Postfix) with ESMTP id 4F6408E0003 for ; Tue, 21 Apr 2020 08:26:51 -0400 (EDT) Received: from smtpin03.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 02451824805A for ; Tue, 21 Apr 2020 12:26:51 +0000 (UTC) X-FDA: 76731786222.03.queen53_168c9fbd1324 X-HE-Tag: queen53_168c9fbd1324 X-Filterd-Recvd-Size: 13159 Received: from mailgw02.mediatek.com (unknown [210.61.82.184]) by imf11.hostedemail.com (Postfix) with ESMTP for ; Tue, 21 Apr 2020 12:26:49 +0000 (UTC) X-UUID: f2df5e8bcb1642a8b8be13b48baa09d9-20200421 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=1drU5b9UZyhoKKcmaKClDLCSPZ1nRiiu5qjvWITjXi0=; b=ZpZ8SUhsDDxCrbn08NSGH7kvr1+trGLhML7MVqUfbAH8EU5RYsKSJMHrKKvAPmSX1GD+J2oDwcm55pAFXPPfA5ndAx1VWJOTEDExcusKtgtN0TCsNcX6qEgAjtSkBjAHKIH3DWAQ4IM273kNNjc/olasDdm+BahQa2rOVOpPLy4=; X-UUID: f2df5e8bcb1642a8b8be13b48baa09d9-20200421 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 419430501; Tue, 21 Apr 2020 20:26:46 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs06n1.mediatek.inc (172.21.101.129) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 21 Apr 2020 20:26:42 +0800 Received: from [172.21.84.99] (172.21.84.99) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 21 Apr 2020 20:26:42 +0800 Message-ID: <1587472005.5870.7.camel@mtksdccf07> Subject: Re: [PATCH] kasan: fix KASAN unit tests for tag-based KASAN From: Walter Wu To: Dmitry Vyukov CC: David Gow , Brendan Higgins , Patricia Alfonso , Andrey Ryabinin , Alexander Potapenko , Matthias Brugger , "Andrey Konovalov" , Andrew Morton , kasan-dev , Linux-MM , LKML , "Linux ARM" , wsd_upstream , Date: Tue, 21 Apr 2020 20:26:45 +0800 In-Reply-To: References: <20200421014007.6012-1-walter-zh.wu@mediatek.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-MTK: N Content-Transfer-Encoding: base64 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: SGkgRG1pdHJ5LA0KDQpPbiBUdWUsIDIwMjAtMDQtMjEgYXQgMTM6NTYgKzAyMDAsIERtaXRyeSBW eXVrb3Ygd3JvdGU6DQo+IE9uIFR1ZSwgQXByIDIxLCAyMDIwIGF0IDM6NDAgQU0gV2FsdGVyIFd1 IDx3YWx0ZXItemgud3VAbWVkaWF0ZWsuY29tPiB3cm90ZToNCj4gPg0KPiA+IFdoZW4gd2UgdXNl IHRhZy1iYXNlZCBLQVNBTiwgdGhlbiBLQVNBTiB1bml0IHRlc3RzIGRvbid0IGRldGVjdA0KPiA+ IG91dC1vZi1ib3VuZHMgbWVtb3J5IGFjY2Vzcy4gQmVjYXVzZSB3aXRoIHRhZy1iYXNlZCBLQVNB TiB0aGUgc3RhdGUNCj4gPiBvZiBlYWNoIDE2IGFsaWduZWQgYnl0ZXMgb2YgbWVtb3J5IGlzIGVu Y29kZWQgaW4gb25lIHNoYWRvdyBieXRlDQo+ID4gYW5kIHRoZSBzaGFkb3cgdmFsdWUgaXMgdGFn IG9mIHBvaW50ZXIsIHNvIHdlIG5lZWQgdG8gcmVhZCBuZXh0DQo+ID4gc2hhZG93IGJ5dGUsIHRo ZSBzaGFkb3cgdmFsdWUgaXMgbm90IGVxdWFsIHRvIHRhZyBvZiBwb2ludGVyLA0KPiA+IHRoZW4g dGFnLWJhc2VkIEtBU0FOIHdpbGwgZGV0ZWN0IG91dC1vZi1ib3VuZHMgbWVtb3J5IGFjY2Vzcy4N Cj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFdhbHRlciBXdSA8d2FsdGVyLXpoLnd1QG1lZGlhdGVr LmNvbT4NCj4gPiBDYzogQW5kcmV5IFJ5YWJpbmluIDxhcnlhYmluaW5AdmlydHVvenpvLmNvbT4N Cj4gPiBDYzogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29tPg0KPiA+IENjOiBBbGV4 YW5kZXIgUG90YXBlbmtvIDxnbGlkZXJAZ29vZ2xlLmNvbT4NCj4gPiBDYzogTWF0dGhpYXMgQnJ1 Z2dlciA8bWF0dGhpYXMuYmdnQGdtYWlsLmNvbT4NCj4gPiBDYzogQW5kcmV5IEtvbm92YWxvdiA8 YW5kcmV5a252bEBnb29nbGUuY29tPg0KPiA+IENjOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4 LWZvdW5kYXRpb24ub3JnPg0KPiA+IC0tLQ0KPiA+ICBsaWIvdGVzdF9rYXNhbi5jIHwgNjIgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tDQo+ID4gIDEgZmls ZSBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlm ZiAtLWdpdCBhL2xpYi90ZXN0X2thc2FuLmMgYi9saWIvdGVzdF9rYXNhbi5jDQo+ID4gaW5kZXgg ZTMwODdkOTBlMDBkLi5hMTY0ZjZiNDdmZTUgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL3Rlc3Rfa2Fz YW4uYw0KPiA+ICsrKyBiL2xpYi90ZXN0X2thc2FuLmMNCj4gPiBAQCAtNDAsNyArNDAsMTIgQEAg c3RhdGljIG5vaW5saW5lIHZvaWQgX19pbml0IGttYWxsb2Nfb29iX3JpZ2h0KHZvaWQpDQo+ID4g ICAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiAgICAgICAgIH0NCj4gDQo+IEhpIFdhbHRlciwN Cj4gDQo+IFRoaXMgd291bGQgYmUgZ3JlYXQgdG8gaGF2ZSENCj4gQnV0IEkgYW0gY29uY2VybmVk IGFib3V0IHRoZXNlIHNlcmllcyB0aGF0IHBvcnQgS0FTQU4gdGVzdHMgdG8gS1VOSVQ6DQo+IGh0 dHBzOi8vbGttbC5vcmcvbGttbC8yMDIwLzQvMTcvMTE0NA0KPiBJIHN1c3BlY3QgaXQgd2lsbCBi ZSBvbmUgbGFyZ2UgbWVyZ2UgY29uZmxpY3QuIE5vdCBzdXJlIHdoYXQgaXMgdGhlDQo+IHByb3Bl ciB3YXkgdG8gcmVzb3ZsZSB0aGlzLiBJJ3ZlIGFkZGVkIGF1dGhvcnMgdG8gQ0MuDQo+IA0KWWVz LCBpdCBzaG91bGQgaGF2ZSBjb25mbGljdHMuIFRoYW5rcyBmb3IgeW91ciByZW1pbmRlci4NCj4g DQo+ID4gKyNpZmRlZiBDT05GSUdfS0FTQU5fR0VORVJJQw0KPiA+ICAgICAgICAgcHRyW3NpemVd ID0gJ3gnOw0KPiA+ICsjZWxzZQ0KPiA+ICsgICAgICAgcHRyW3NpemUgKyA1XSA9ICd4JzsNCj4g PiArI2VuZGlmDQo+ID4gKw0KPiANCj4gRm9yIHRoaXMgcGFydGljdWxhciBzbmlwcGV0IEkgdGhp bmsgd2UgY2FuIHJlZHVjZSBhbW91bnQgb2YgaWRlZidlcnkNCj4gYW5kIGFtb3VudCBvZiBub24t Y29tcGlsZWQgY29kZSBpbiBlYWNoIGNvbmZpZ3VyYXRpb24gd2l0aCBzb21ldGhpbmcNCj4gbGlr ZToNCj4gDQo+ICAgcHRyW3NpemUgKyA1XSA9ICd4JzsNCj4gICBpZiAoRU5BQkxFRChDT05GSUdf S0FTQU5fR0VORVJJQykpDQo+ICAgICAgIHB0cltzaXplXSA9ICd4JzsNCj4gDQo+IE9uZSBjaGVj ayBydW5zIGFsd2F5cyAoaXQgc2hvdWxkIHBhc3MgaW4gYm90aCBjb25maWdzLCByaWdodD8pLiBU aGUNCg0KVGhlcmUgaXMgYSBwcm9ibGVtLCBXaXRoIGdlbmVyaWMgS0FTQU4gaXQgbWF5IHRyaWdn ZXIgdHdvIEtBU0FOIHJlcG9ydHMuDQppZiB3ZSBjaGFuZ2UgaXQgbGlrZToNCiANCmlmIChFTkFC TEVEKENPTkZJR19LQVNBTl9HRU5FUklDKSkNCiAgICBwdHJbc2l6ZV0gPSAneCc7DQplbHNlDQog ICAgcHRyW3NpemUgKyA1XSA9ICd4JzsNCg0KPiBvbmx5IG9ubHkgaW4gR0VORVJJQywgYnV0IGl0 J3MgQy1sZXZlbCBpZiByYXRoZXIgdGhhbiBwcmVwcm9jZXNzb3IuDQo+IEtVTklUIHNob3VsZCBt YWtlIDIgYnVncyBwZXIgdGVzdCBlYXNpbHkgZXhwcmVzc2FibGUgKGFuZCB0ZXN0YWJsZSkuDQo+ IA0KDQo+IA0KPiANCj4gDQo+ID4gICAgICAgICBrZnJlZShwdHIpOw0KPiA+ICB9DQo+ID4NCj4g PiBAQCAtOTIsNyArOTcsMTIgQEAgc3RhdGljIG5vaW5saW5lIHZvaWQgX19pbml0IGttYWxsb2Nf cGFnZWFsbG9jX29vYl9yaWdodCh2b2lkKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+ ID4gICAgICAgICB9DQo+ID4NCj4gPiArI2lmZGVmIENPTkZJR19LQVNBTl9HRU5FUklDDQo+ID4g ICAgICAgICBwdHJbc2l6ZV0gPSAwOw0KPiA+ICsjZWxzZQ0KPiA+ICsgICAgICAgcHRyW3NpemUg KyA2XSA9IDA7DQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiAgICAgICAgIGtmcmVlKHB0cik7DQo+ ID4gIH0NCj4gPg0KPiA+IEBAIC0xNjIsNyArMTcyLDExIEBAIHN0YXRpYyBub2lubGluZSB2b2lk IF9faW5pdCBrbWFsbG9jX29vYl9rcmVhbGxvY19tb3JlKHZvaWQpDQo+ID4gICAgICAgICAgICAg ICAgIHJldHVybjsNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+ICsjaWZkZWYgQ09ORklHX0tBU0FO X0dFTkVSSUMNCj4gPiAgICAgICAgIHB0cjJbc2l6ZTJdID0gJ3gnOw0KPiA+ICsjZWxzZQ0KPiA+ ICsgICAgICAgcHRyMltzaXplMiArIDEzXSA9ICd4JzsNCj4gPiArI2VuZGlmDQo+ID4gICAgICAg ICBrZnJlZShwdHIyKTsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTE4MCw3ICsxOTQsMTIgQEAgc3Rh dGljIG5vaW5saW5lIHZvaWQgX19pbml0IGttYWxsb2Nfb29iX2tyZWFsbG9jX2xlc3Modm9pZCkN Cj4gPiAgICAgICAgICAgICAgICAga2ZyZWUocHRyMSk7DQo+ID4gICAgICAgICAgICAgICAgIHJl dHVybjsNCj4gPiAgICAgICAgIH0NCj4gPiArDQo+ID4gKyNpZmRlZiBDT05GSUdfS0FTQU5fR0VO RVJJQw0KPiA+ICAgICAgICAgcHRyMltzaXplMl0gPSAneCc7DQo+ID4gKyNlbHNlDQo+ID4gKyAg ICAgICBwdHIyW3NpemUyICsgMl0gPSAneCc7DQo+ID4gKyNlbmRpZg0KPiA+ICAgICAgICAga2Zy ZWUocHRyMik7DQo+ID4gIH0NCj4gPg0KPiA+IEBAIC0yMTYsNyArMjM1LDExIEBAIHN0YXRpYyBu b2lubGluZSB2b2lkIF9faW5pdCBrbWFsbG9jX29vYl9tZW1zZXRfMih2b2lkKQ0KPiA+ICAgICAg ICAgICAgICAgICByZXR1cm47DQo+ID4gICAgICAgICB9DQo+ID4NCj4gPiArI2lmZGVmIENPTkZJ R19LQVNBTl9HRU5FUklDDQo+ID4gICAgICAgICBtZW1zZXQocHRyKzcsIDAsIDIpOw0KPiA+ICsj ZWxzZQ0KPiA+ICsgICAgICAgbWVtc2V0KHB0cisxNSwgMCwgMik7DQo+ID4gKyNlbmRpZg0KPiA+ ICAgICAgICAga2ZyZWUocHRyKTsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTIzMiw3ICsyNTUsMTEg QEAgc3RhdGljIG5vaW5saW5lIHZvaWQgX19pbml0IGttYWxsb2Nfb29iX21lbXNldF80KHZvaWQp DQo+ID4gICAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+ICsj aWZkZWYgQ09ORklHX0tBU0FOX0dFTkVSSUMNCj4gPiAgICAgICAgIG1lbXNldChwdHIrNSwgMCwg NCk7DQo+ID4gKyNlbHNlDQo+ID4gKyAgICAgICBtZW1zZXQocHRyKzE1LCAwLCA0KTsNCj4gPiAr I2VuZGlmDQo+ID4gICAgICAgICBrZnJlZShwdHIpOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMjQ5 LDcgKzI3NiwxMSBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX2luaXQga21hbGxvY19vb2JfbWVt c2V0Xzgodm9pZCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICAgICAgICAgfQ0K PiA+DQo+ID4gKyNpZmRlZiBDT05GSUdfS0FTQU5fR0VORVJJQw0KPiA+ICAgICAgICAgbWVtc2V0 KHB0cisxLCAwLCA4KTsNCj4gPiArI2Vsc2UNCj4gPiArICAgICAgIG1lbXNldChwdHIrMTUsIDAs IDgpOw0KPiA+ICsjZW5kaWYNCj4gPiAgICAgICAgIGtmcmVlKHB0cik7DQo+ID4gIH0NCj4gPg0K PiA+IEBAIC0yNjUsNyArMjk2LDExIEBAIHN0YXRpYyBub2lubGluZSB2b2lkIF9faW5pdCBrbWFs bG9jX29vYl9tZW1zZXRfMTYodm9pZCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ ICAgICAgICAgfQ0KPiA+DQo+ID4gKyNpZmRlZiBDT05GSUdfS0FTQU5fR0VORVJJQw0KPiA+ICAg ICAgICAgbWVtc2V0KHB0cisxLCAwLCAxNik7DQo+ID4gKyNlbHNlDQo+ID4gKyAgICAgICBtZW1z ZXQocHRyKzE1LCAwLCAxNik7DQo+ID4gKyNlbmRpZg0KPiA+ICAgICAgICAga2ZyZWUocHRyKTsN Cj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTI4MSw3ICszMTYsMTEgQEAgc3RhdGljIG5vaW5saW5lIHZv aWQgX19pbml0IGttYWxsb2Nfb29iX2luX21lbXNldCh2b2lkKQ0KPiA+ICAgICAgICAgICAgICAg ICByZXR1cm47DQo+ID4gICAgICAgICB9DQo+ID4NCj4gPiArI2lmZGVmIENPTkZJR19LQVNBTl9H RU5FUklDDQo+ID4gICAgICAgICBtZW1zZXQocHRyLCAwLCBzaXplKzUpOw0KPiA+ICsjZWxzZQ0K PiA+ICsgICAgICAgbWVtc2V0KHB0ciwgMCwgc2l6ZSs3KTsNCj4gPiArI2VuZGlmDQo+ID4gICAg ICAgICBrZnJlZShwdHIpOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtNDE1LDcgKzQ1NCwxMSBAQCBz dGF0aWMgbm9pbmxpbmUgdm9pZCBfX2luaXQga21lbV9jYWNoZV9vb2Iodm9pZCkNCj4gPiAgICAg ICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gKyNpZmRlZiBDT05G SUdfS0FTQU5fR0VORVJJQw0KPiA+ICAgICAgICAgKnAgPSBwW3NpemVdOw0KPiA+ICsjZWxzZQ0K PiA+ICsgICAgICAgKnAgPSBwW3NpemUgKyA4XTsNCj4gPiArI2VuZGlmDQo+ID4gICAgICAgICBr bWVtX2NhY2hlX2ZyZWUoY2FjaGUsIHApOw0KPiA+ICAgICAgICAga21lbV9jYWNoZV9kZXN0cm95 KGNhY2hlKTsNCj4gPiAgfQ0KPiA+IEBAIC00OTcsNiArNTQwLDExIEBAIHN0YXRpYyBub2lubGlu ZSB2b2lkIF9faW5pdCBjb3B5X3VzZXJfdGVzdCh2b2lkKQ0KPiA+ICAgICAgICAgY2hhciBfX3Vz ZXIgKnVzZXJtZW07DQo+ID4gICAgICAgICBzaXplX3Qgc2l6ZSA9IDEwOw0KPiA+ICAgICAgICAg aW50IHVudXNlZDsNCj4gPiArI2lmZGVmIENPTkZJR19LQVNBTl9HRU5FUklDDQo+ID4gKyAgICAg ICBzaXplX3Qgb29iX3NpemUgPSAxOw0KPiA+ICsjZWxzZQ0KPiA+ICsgICAgICAgc2l6ZV90IG9v Yl9zaXplID0gNzsNCj4gPiArI2VuZGlmDQo+ID4NCj4gPiAgICAgICAgIGttZW0gPSBrbWFsbG9j KHNpemUsIEdGUF9LRVJORUwpOw0KPiA+ICAgICAgICAgaWYgKCFrbWVtKQ0KPiA+IEBAIC01MTIs MjUgKzU2MCwyNSBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX2luaXQgY29weV91c2VyX3Rlc3Qo dm9pZCkNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+ICAgICAgICAgcHJfaW5mbygib3V0LW9mLWJv dW5kcyBpbiBjb3B5X2Zyb21fdXNlcigpXG4iKTsNCj4gPiAtICAgICAgIHVudXNlZCA9IGNvcHlf ZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyAxKTsNCj4gPiArICAgICAgIHVudXNlZCA9 IGNvcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyBvb2Jfc2l6ZSk7DQo+ID4NCj4g PiAgICAgICAgIHByX2luZm8oIm91dC1vZi1ib3VuZHMgaW4gY29weV90b191c2VyKClcbiIpOw0K PiA+IC0gICAgICAgdW51c2VkID0gY29weV90b191c2VyKHVzZXJtZW0sIGttZW0sIHNpemUgKyAx KTsNCj4gPiArICAgICAgIHVudXNlZCA9IGNvcHlfdG9fdXNlcih1c2VybWVtLCBrbWVtLCBzaXpl ICsgb29iX3NpemUpOw0KPiA+DQo+ID4gICAgICAgICBwcl9pbmZvKCJvdXQtb2YtYm91bmRzIGlu IF9fY29weV9mcm9tX3VzZXIoKVxuIik7DQo+ID4gLSAgICAgICB1bnVzZWQgPSBfX2NvcHlfZnJv bV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyAxKTsNCj4gPiArICAgICAgIHVudXNlZCA9IF9f Y29weV9mcm9tX3VzZXIoa21lbSwgdXNlcm1lbSwgc2l6ZSArIG9vYl9zaXplKTsNCj4gPg0KPiA+ ICAgICAgICAgcHJfaW5mbygib3V0LW9mLWJvdW5kcyBpbiBfX2NvcHlfdG9fdXNlcigpXG4iKTsN Cj4gPiAtICAgICAgIHVudXNlZCA9IF9fY29weV90b191c2VyKHVzZXJtZW0sIGttZW0sIHNpemUg KyAxKTsNCj4gPiArICAgICAgIHVudXNlZCA9IF9fY29weV90b191c2VyKHVzZXJtZW0sIGttZW0s IHNpemUgKyBvb2Jfc2l6ZSk7DQo+ID4NCj4gPiAgICAgICAgIHByX2luZm8oIm91dC1vZi1ib3Vu ZHMgaW4gX19jb3B5X2Zyb21fdXNlcl9pbmF0b21pYygpXG4iKTsNCj4gPiAtICAgICAgIHVudXNl ZCA9IF9fY29weV9mcm9tX3VzZXJfaW5hdG9taWMoa21lbSwgdXNlcm1lbSwgc2l6ZSArIDEpOw0K PiA+ICsgICAgICAgdW51c2VkID0gX19jb3B5X2Zyb21fdXNlcl9pbmF0b21pYyhrbWVtLCB1c2Vy bWVtLCBzaXplICsgb29iX3NpemUpOw0KPiA+DQo+ID4gICAgICAgICBwcl9pbmZvKCJvdXQtb2Yt Ym91bmRzIGluIF9fY29weV90b191c2VyX2luYXRvbWljKClcbiIpOw0KPiA+IC0gICAgICAgdW51 c2VkID0gX19jb3B5X3RvX3VzZXJfaW5hdG9taWModXNlcm1lbSwga21lbSwgc2l6ZSArIDEpOw0K PiA+ICsgICAgICAgdW51c2VkID0gX19jb3B5X3RvX3VzZXJfaW5hdG9taWModXNlcm1lbSwga21l bSwgc2l6ZSArIG9vYl9zaXplKTsNCj4gPg0KPiA+ICAgICAgICAgcHJfaW5mbygib3V0LW9mLWJv dW5kcyBpbiBzdHJuY3B5X2Zyb21fdXNlcigpXG4iKTsNCj4gPiAtICAgICAgIHVudXNlZCA9IHN0 cm5jcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyAxKTsNCj4gPiArICAgICAgIHVu dXNlZCA9IHN0cm5jcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyBvb2Jfc2l6ZSk7 DQo+ID4NCj4gPiAgICAgICAgIHZtX211bm1hcCgodW5zaWduZWQgbG9uZyl1c2VybWVtLCBQQUdF X1NJWkUpOw0KPiA+ICAgICAgICAga2ZyZWUoa21lbSk7DQo+ID4gLS0NCj4gPiAyLjE4LjANCj4g Pg0KPiA+IC0tDQo+ID4gWW91IHJlY2VpdmVkIHRoaXMgbWVzc2FnZSBiZWNhdXNlIHlvdSBhcmUg c3Vic2NyaWJlZCB0byB0aGUgR29vZ2xlIEdyb3VwcyAia2FzYW4tZGV2IiBncm91cC4NCj4gPiBU byB1bnN1YnNjcmliZSBmcm9tIHRoaXMgZ3JvdXAgYW5kIHN0b3AgcmVjZWl2aW5nIGVtYWlscyBm cm9tIGl0LCBzZW5kIGFuIGVtYWlsIHRvIGthc2FuLWRldit1bnN1YnNjcmliZUBnb29nbGVncm91 cHMuY29tLg0KPiA+IFRvIHZpZXcgdGhpcyBkaXNjdXNzaW9uIG9uIHRoZSB3ZWIgdmlzaXQgaHR0 cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL21zZ2lkL2thc2FuLWRldi8yMDIwMDQyMTAxNDAwNy42 MDEyLTEtd2FsdGVyLXpoLnd1JTQwbWVkaWF0ZWsuY29tLg0KDQo=