Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp4275503ybt; Mon, 6 Jul 2020 00:00:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyI0r4gvt8p663eKvLYxxFEhbR8be/2lpyNiDEpi4fAIBI6Y8VBcHrIxdr6d0eeetcT9e9f X-Received: by 2002:a17:906:1d1b:: with SMTP id n27mr43533914ejh.272.1594018856846; Mon, 06 Jul 2020 00:00:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594018856; cv=none; d=google.com; s=arc-20160816; b=j+AceiqJSfebDP8RK/jaiVvBJAZ8YLUC2Elvhiz8CsSkmmMM0lRcVTSmG+LuTItfhZ MgoN5gWueDd3EH5Bo1ZarnlWcum5I/xDu4ZOBKvFB2Vdd8FZzCpfxGBMb+2KAM8KnsEV eWqi89D2XAJn+pkJzwWM8yKJqWtmaz6RLHSjZPR8T3lv50yMDuvm6dNvQApzyS50UFe4 I5JnKidZHEaq1YAgVWSRfLemnIed912PnnY4zUGe+fsdFED77vuZJaLn6i+Zhi35hAoV DiUTe8ZRFy2FGzCxZVAAVOwHMIpGfVZgpMj7qk2oyxRbtzgSqPW0/jwFyjpNXzN2KmrY KP5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature; bh=nPZqNQDBxsg4ytdwwt0Endr8/iEUUms3Rc4LlN2aaeY=; b=IMPw+6+sPXsp+JUnIwTZJGv4d6PR9hqixt5W3NqrLBv9JCiMKg5+RYorNtip0FCE9X XMTABizUD/uBgXN8rzJDVcr567qtus2+oyCeandNeQubDzxzQybhxl07lRwoshRLKoz3 xdF0H7mu+C9jbR4vp4d5tjpvdhKcVONoMzvRQJxZmIsIDx57nm2BWmJxaaVDSXc4s4SE TV0Z5BMoaTJmT6br2ML0t2zG8B5nWKWICxyPv6CJBT2YnGgzuNy5BvloyrVW3PCaUpa3 kvfKUqDk03MczfCY0pfM89yhP+Pbse0k9VmmF0VHBo76gv2PP6n+3HiOsc1D2sRMe0Tc 3CZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=ZWXHNQeH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c25si12746246ejb.6.2020.07.06.00.00.33; Mon, 06 Jul 2020 00:00:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=ZWXHNQeH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728121AbgGFG7Y (ORCPT + 99 others); Mon, 6 Jul 2020 02:59:24 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:22697 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727039AbgGFG7X (ORCPT ); Mon, 6 Jul 2020 02:59:23 -0400 X-UUID: 9bf760c3df2f4e80aff10f4192957e77-20200706 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=nPZqNQDBxsg4ytdwwt0Endr8/iEUUms3Rc4LlN2aaeY=; b=ZWXHNQeH1glsAO9qmsaQtK4QYBMYcdFFunWVpfOPSc1cQesMWSBAg0Ozg8+WOSsU9dvXY14iZK/duB2n1jtMLwoUc4oi6ytmd41yiS55w74pYvxhSxLs7Xg5E6xTCYgeat0yLC84FmyOqfTx2hmx3I9sabm+/rE/4Cg7W8bfa2k=; X-UUID: 9bf760c3df2f4e80aff10f4192957e77-20200706 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 393689281; Mon, 06 Jul 2020 14:59:17 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs01n1.mediatek.inc (172.21.101.68) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 6 Jul 2020 14:59:13 +0800 Received: from [172.21.84.99] (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 6 Jul 2020 14:59:13 +0800 Message-ID: <1594018755.1706.3.camel@mtksdccf07> Subject: Re: [PATCH v2] kasan: fix KASAN unit tests for tag-based KASAN From: Walter Wu To: Dmitry Vyukov CC: Andrey Ryabinin , Alexander Potapenko , Matthias Brugger , kasan-dev , Linux-MM , LKML , Linux ARM , wsd_upstream , , "Andrey Konovalov" , Andrew Morton Date: Mon, 6 Jul 2020 14:59:15 +0800 In-Reply-To: References: <20200706022150.20848-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 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gTW9uLCAyMDIwLTA3LTA2IGF0IDA4OjE5ICswMjAwLCBEbWl0cnkgVnl1a292IHdyb3RlOg0K PiBPbiBNb24sIEp1bCA2LCAyMDIwIGF0IDQ6MjEgQU0gV2FsdGVyIFd1IDx3YWx0ZXItemgud3VA bWVkaWF0ZWsuY29tPiB3cm90ZToNCj4gPg0KPiA+IFdlIHVzZSB0YWctYmFzZWQgS0FTQU4sIHRo ZW4gS0FTQU4gdW5pdCB0ZXN0cyBkb24ndCBkZXRlY3Qgb3V0LW9mLWJvdW5kcw0KPiA+IG1lbW9y eSBhY2Nlc3MuIFRoZXkgbmVlZCB0byBiZSBmaXhlZC4NCj4gPg0KPiA+IFdpdGggdGFnLWJhc2Vk IEtBU0FOLCB0aGUgc3RhdGUgb2YgZWFjaCAxNiBhbGlnbmVkIGJ5dGVzIG9mIG1lbW9yeSBpcw0K PiA+IGVuY29kZWQgaW4gb25lIHNoYWRvdyBieXRlIGFuZCB0aGUgc2hhZG93IHZhbHVlIGlzIHRh ZyBvZiBwb2ludGVyLCBzbw0KPiA+IHdlIG5lZWQgdG8gcmVhZCBuZXh0IHNoYWRvdyBieXRlLCB0 aGUgc2hhZG93IHZhbHVlIGlzIG5vdCBlcXVhbCB0byB0YWcNCj4gPiB2YWx1ZSBvZiBwb2ludGVy LCBzbyB0aGF0IHRhZy1iYXNlZCBLQVNBTiB3aWxsIGRldGVjdCBvdXQtb2YtYm91bmRzDQo+ID4g bWVtb3J5IGFjY2Vzcy4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFdhbHRlciBXdSA8d2FsdGVy LXpoLnd1QG1lZGlhdGVrLmNvbT4NCj4gPiBDYzogQW5kcmV5IFJ5YWJpbmluIDxhcnlhYmluaW5A dmlydHVvenpvLmNvbT4NCj4gPiBDYzogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29t Pg0KPiA+IENjOiBBbGV4YW5kZXIgUG90YXBlbmtvIDxnbGlkZXJAZ29vZ2xlLmNvbT4NCj4gPiBD YzogTWF0dGhpYXMgQnJ1Z2dlciA8bWF0dGhpYXMuYmdnQGdtYWlsLmNvbT4NCj4gPiBDYzogQW5k cmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPg0KPiA+IENjOiBBbmRyZXcgTW9y dG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPg0KPiA+IC0tLQ0KPiA+DQo+ID4gY2hhbmdl cyBzaW5jZSB2MToNCj4gPiAtIFJlZHVjZSBhbW91bnQgb2Ygbm9uLWNvbXBpbGVkIGNvZGUuDQo+ ID4gLSBLVW5pdC1LQVNBTiBJbnRlZ3JhdGlvbiBwYXRjaHNldCBhcmUgbm90IG1lcmdlZCB5ZXQu IE15IHBhdGNoIHNob3VsZA0KPiA+ICAgaGF2ZSBjb25mbGljdCB3aXRoIGl0LCBpZiBuZWVkZWQs IHdlIGNhbiBjb250aW51ZSB0byB3YWl0IGl0Lg0KPiA+DQo+ID4gLS0tDQo+ID4NCj4gPiAgbGli L3Rlc3Rfa2FzYW4uYyB8IDgxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgMTcgZGVs ZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvbGliL3Rlc3Rfa2FzYW4uYyBiL2xpYi90 ZXN0X2thc2FuLmMNCj4gPiBpbmRleCBlMzA4N2Q5MGUwMGQuLjY2MDY2NDQzOWQ1MiAxMDA2NDQN Cj4gPiAtLS0gYS9saWIvdGVzdF9rYXNhbi5jDQo+ID4gKysrIGIvbGliL3Rlc3Rfa2FzYW4uYw0K PiA+IEBAIC00MCw3ICs0MCwxMSBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX2luaXQga21hbGxv Y19vb2JfcmlnaHQodm9pZCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICAgICAg ICAgfQ0KPiA+DQo+ID4gLSAgICAgICBwdHJbc2l6ZV0gPSAneCc7DQo+ID4gKyAgICAgICBpZiAo SVNfRU5BQkxFRChDT05GSUdfS0FTQU5fR0VORVJJQykpDQo+ID4gKyAgICAgICAgICAgICAgIHB0 cltzaXplXSA9ICd4JzsNCj4gPiArICAgICAgIGVsc2UNCj4gPiArICAgICAgICAgICAgICAgcHRy W3NpemUgKyA1XSA9ICd4JzsNCj4gPiArDQo+IA0KPiBIaSBXYWx0ZXIsDQo+IA0KPiBXb3VsZCBp ZiBiZSBwb3NzaWJsZSB0byBpbnRyb2R1Y2Ugc29tZXRoaW5nIGxpa2U6DQo+IA0KPiAjZGVmaW5l IE9PQl9UQUdfT0ZGIChJU19FTkFCTEVEKENPTkZJR19LQVNBTl9HRU5FUklDKSA/IDAgOiA4KQ0K PiANCg0KSXQgaXMgZ29vZCBzdWdnZXN0aW9uLiBUaGFua3MuDQoNCj4gYW5kIHRoZW4gYWRkIGl0 IHRocm91Z2hvdXQgYXMNCj4gDQo+ICAgICAgICAgcHRyW3NpemUgKyBPT0JfVEFHX09GRl0gPSAn eCc7DQo+IA0KPiA/DQo+IFRoZSBjdXJyZW50IHZlcnNpb24gcmVzdWx0cyBpbiBxdWl0ZSBzb21l IGFtb3VudCBvZiBhZGRpdGlvbmFsIGNvZGUNCj4gdGhhdCBuZWVkcyB0byBiZSByZWFkLCBleHRl bmRlZCAgYW5kIG1haW50YWluZWQgaW4gdGhlIGZ1dHVyZS4gU28gSSBhbQ0KPiB0aGlua2luZyBp ZiBpdCdzIHBvc3NpYmxlIHRvIG1pbmltaXplIGl0IHNvbWVob3cuLi4NCj4gDQoNCk9rLCBJIHdp bGwgc2VuZCBuZXh0IHBhdGNoIGJ5IHlvdXIgc3VnZ2VzdGlvbi4NCg0KVGhhbmtzLg0KDQo+ID4g ICAgICAgICBrZnJlZShwdHIpOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtOTIsNyArOTYsMTEgQEAg c3RhdGljIG5vaW5saW5lIHZvaWQgX19pbml0IGttYWxsb2NfcGFnZWFsbG9jX29vYl9yaWdodCh2 b2lkKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gICAgICAgICB9DQo+ID4NCj4g PiAtICAgICAgIHB0cltzaXplXSA9IDA7DQo+ID4gKyAgICAgICBpZiAoSVNfRU5BQkxFRChDT05G SUdfS0FTQU5fR0VORVJJQykpDQo+ID4gKyAgICAgICAgICAgICAgIHB0cltzaXplXSA9IDA7DQo+ ID4gKyAgICAgICBlbHNlDQo+ID4gKyAgICAgICAgICAgICAgIHB0cltzaXplICsgNl0gPSAwOw0K PiA+ICsNCj4gPiAgICAgICAgIGtmcmVlKHB0cik7DQo+ID4gIH0NCj4gPg0KPiA+IEBAIC0xNjIs NyArMTcwLDExIEBAIHN0YXRpYyBub2lubGluZSB2b2lkIF9faW5pdCBrbWFsbG9jX29vYl9rcmVh bGxvY19tb3JlKHZvaWQpDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiAgICAgICAg IH0NCj4gPg0KPiA+IC0gICAgICAgcHRyMltzaXplMl0gPSAneCc7DQo+ID4gKyAgICAgICBpZiAo SVNfRU5BQkxFRChDT05GSUdfS0FTQU5fR0VORVJJQykpDQo+ID4gKyAgICAgICAgICAgICAgIHB0 cjJbc2l6ZTJdID0gJ3gnOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBw dHIyW3NpemUyICsgMTNdID0gJ3gnOw0KPiA+ICsNCj4gPiAgICAgICAgIGtmcmVlKHB0cjIpOw0K PiA+ICB9DQo+ID4NCj4gPiBAQCAtMTgwLDcgKzE5MiwxMiBAQCBzdGF0aWMgbm9pbmxpbmUgdm9p ZCBfX2luaXQga21hbGxvY19vb2Jfa3JlYWxsb2NfbGVzcyh2b2lkKQ0KPiA+ICAgICAgICAgICAg ICAgICBrZnJlZShwdHIxKTsNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICAgICAg ICAgfQ0KPiA+IC0gICAgICAgcHRyMltzaXplMl0gPSAneCc7DQo+ID4gKw0KPiA+ICsgICAgICAg aWYgKElTX0VOQUJMRUQoQ09ORklHX0tBU0FOX0dFTkVSSUMpKQ0KPiA+ICsgICAgICAgICAgICAg ICBwdHIyW3NpemUyXSA9ICd4JzsNCj4gPiArICAgICAgIGVsc2UNCj4gPiArICAgICAgICAgICAg ICAgcHRyMltzaXplMiArIDJdID0gJ3gnOw0KPiA+ICsNCj4gPiAgICAgICAgIGtmcmVlKHB0cjIp Ow0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMjE2LDcgKzIzMywxMSBAQCBzdGF0aWMgbm9pbmxpbmUg dm9pZCBfX2luaXQga21hbGxvY19vb2JfbWVtc2V0XzIodm9pZCkNCj4gPiAgICAgICAgICAgICAg ICAgcmV0dXJuOw0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gLSAgICAgICBtZW1zZXQocHRyKzcs IDAsIDIpOw0KPiA+ICsgICAgICAgaWYgKElTX0VOQUJMRUQoQ09ORklHX0tBU0FOX0dFTkVSSUMp KQ0KPiA+ICsgICAgICAgICAgICAgICBtZW1zZXQocHRyKzcsIDAsIDIpOw0KPiA+ICsgICAgICAg ZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBtZW1zZXQocHRyKzE1LCAwLCAyKTsNCj4gPiArDQo+ ID4gICAgICAgICBrZnJlZShwdHIpOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMjMyLDcgKzI1Mywx MSBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX2luaXQga21hbGxvY19vb2JfbWVtc2V0XzQodm9p ZCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4g LSAgICAgICBtZW1zZXQocHRyKzUsIDAsIDQpOw0KPiA+ICsgICAgICAgaWYgKElTX0VOQUJMRUQo Q09ORklHX0tBU0FOX0dFTkVSSUMpKQ0KPiA+ICsgICAgICAgICAgICAgICBtZW1zZXQocHRyKzUs IDAsIDQpOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBtZW1zZXQocHRy KzE1LCAwLCA0KTsNCj4gPiArDQo+ID4gICAgICAgICBrZnJlZShwdHIpOw0KPiA+ICB9DQo+ID4N Cj4gPiBAQCAtMjQ5LDcgKzI3NCwxMSBAQCBzdGF0aWMgbm9pbmxpbmUgdm9pZCBfX2luaXQga21h bGxvY19vb2JfbWVtc2V0Xzgodm9pZCkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ ICAgICAgICAgfQ0KPiA+DQo+ID4gLSAgICAgICBtZW1zZXQocHRyKzEsIDAsIDgpOw0KPiA+ICsg ICAgICAgaWYgKElTX0VOQUJMRUQoQ09ORklHX0tBU0FOX0dFTkVSSUMpKQ0KPiA+ICsgICAgICAg ICAgICAgICBtZW1zZXQocHRyKzEsIDAsIDgpOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ICsgICAg ICAgICAgICAgICBtZW1zZXQocHRyKzE1LCAwLCA4KTsNCj4gPiArDQo+ID4gICAgICAgICBrZnJl ZShwdHIpOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMjY1LDcgKzI5NCwxMSBAQCBzdGF0aWMgbm9p bmxpbmUgdm9pZCBfX2luaXQga21hbGxvY19vb2JfbWVtc2V0XzE2KHZvaWQpDQo+ID4gICAgICAg ICAgICAgICAgIHJldHVybjsNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+IC0gICAgICAgbWVtc2V0 KHB0cisxLCAwLCAxNik7DQo+ID4gKyAgICAgICBpZiAoSVNfRU5BQkxFRChDT05GSUdfS0FTQU5f R0VORVJJQykpDQo+ID4gKyAgICAgICAgICAgICAgIG1lbXNldChwdHIrMSwgMCwgMTYpOw0KPiA+ ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBtZW1zZXQocHRyKzE1LCAwLCAxNik7 DQo+ID4gKw0KPiA+ICAgICAgICAga2ZyZWUocHRyKTsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTI4 MSw3ICszMTQsMTEgQEAgc3RhdGljIG5vaW5saW5lIHZvaWQgX19pbml0IGttYWxsb2Nfb29iX2lu X21lbXNldCh2b2lkKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gICAgICAgICB9 DQo+ID4NCj4gPiAtICAgICAgIG1lbXNldChwdHIsIDAsIHNpemUrNSk7DQo+ID4gKyAgICAgICBp ZiAoSVNfRU5BQkxFRChDT05GSUdfS0FTQU5fR0VORVJJQykpDQo+ID4gKyAgICAgICAgICAgICAg IG1lbXNldChwdHIsIDAsIHNpemUrNSk7DQo+ID4gKyAgICAgICBlbHNlDQo+ID4gKyAgICAgICAg ICAgICAgIG1lbXNldChwdHIsIDAsIHNpemUrNyk7DQo+ID4gKw0KPiA+ICAgICAgICAga2ZyZWUo cHRyKTsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTQxNSw3ICs0NTIsMTEgQEAgc3RhdGljIG5vaW5s aW5lIHZvaWQgX19pbml0IGttZW1fY2FjaGVfb29iKHZvaWQpDQo+ID4gICAgICAgICAgICAgICAg IHJldHVybjsNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+IC0gICAgICAgKnAgPSBwW3NpemVdOw0K PiA+ICsgICAgICAgaWYgKElTX0VOQUJMRUQoQ09ORklHX0tBU0FOX0dFTkVSSUMpKQ0KPiA+ICsg ICAgICAgICAgICAgICAqcCA9IHBbc2l6ZV07DQo+ID4gKyAgICAgICBlbHNlDQo+ID4gKyAgICAg ICAgICAgICAgICpwID0gcFtzaXplICsgOF07DQo+ID4gKw0KPiA+ICAgICAgICAga21lbV9jYWNo ZV9mcmVlKGNhY2hlLCBwKTsNCj4gPiAgICAgICAgIGttZW1fY2FjaGVfZGVzdHJveShjYWNoZSk7 DQo+ID4gIH0NCj4gPiBAQCAtNDk3LDYgKzUzOCw3IEBAIHN0YXRpYyBub2lubGluZSB2b2lkIF9f aW5pdCBjb3B5X3VzZXJfdGVzdCh2b2lkKQ0KPiA+ICAgICAgICAgY2hhciBfX3VzZXIgKnVzZXJt ZW07DQo+ID4gICAgICAgICBzaXplX3Qgc2l6ZSA9IDEwOw0KPiA+ICAgICAgICAgaW50IHVudXNl ZDsNCj4gPiArICAgICAgIHNpemVfdCBvb2Jfc2l6ZTsNCj4gPg0KPiA+ICAgICAgICAga21lbSA9 IGttYWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7DQo+ID4gICAgICAgICBpZiAoIWttZW0pDQo+ID4g QEAgLTUxMSwyNiArNTUzLDMxIEBAIHN0YXRpYyBub2lubGluZSB2b2lkIF9faW5pdCBjb3B5X3Vz ZXJfdGVzdCh2b2lkKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gICAgICAgICB9 DQo+ID4NCj4gPiArICAgICAgIGlmIChJU19FTkFCTEVEKENPTkZJR19LQVNBTl9HRU5FUklDKSkN Cj4gPiArICAgICAgICAgICAgICAgb29iX3NpemUgPSAxOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ ICsgICAgICAgICAgICAgICBvb2Jfc2l6ZSA9IDc7DQo+ID4gKw0KPiA+ICAgICAgICAgcHJfaW5m bygib3V0LW9mLWJvdW5kcyBpbiBjb3B5X2Zyb21fdXNlcigpXG4iKTsNCj4gPiAtICAgICAgIHVu dXNlZCA9IGNvcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyAxKTsNCj4gPiArICAg ICAgIHVudXNlZCA9IGNvcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyBvb2Jfc2l6 ZSk7DQo+ID4NCj4gPiAgICAgICAgIHByX2luZm8oIm91dC1vZi1ib3VuZHMgaW4gY29weV90b191 c2VyKClcbiIpOw0KPiA+IC0gICAgICAgdW51c2VkID0gY29weV90b191c2VyKHVzZXJtZW0sIGtt ZW0sIHNpemUgKyAxKTsNCj4gPiArICAgICAgIHVudXNlZCA9IGNvcHlfdG9fdXNlcih1c2VybWVt LCBrbWVtLCBzaXplICsgb29iX3NpemUpOw0KPiA+DQo+ID4gICAgICAgICBwcl9pbmZvKCJvdXQt b2YtYm91bmRzIGluIF9fY29weV9mcm9tX3VzZXIoKVxuIik7DQo+ID4gLSAgICAgICB1bnVzZWQg PSBfX2NvcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyAxKTsNCj4gPiArICAgICAg IHVudXNlZCA9IF9fY29weV9mcm9tX3VzZXIoa21lbSwgdXNlcm1lbSwgc2l6ZSArIG9vYl9zaXpl KTsNCj4gPg0KPiA+ICAgICAgICAgcHJfaW5mbygib3V0LW9mLWJvdW5kcyBpbiBfX2NvcHlfdG9f dXNlcigpXG4iKTsNCj4gPiAtICAgICAgIHVudXNlZCA9IF9fY29weV90b191c2VyKHVzZXJtZW0s IGttZW0sIHNpemUgKyAxKTsNCj4gPiArICAgICAgIHVudXNlZCA9IF9fY29weV90b191c2VyKHVz ZXJtZW0sIGttZW0sIHNpemUgKyBvb2Jfc2l6ZSk7DQo+ID4NCj4gPiAgICAgICAgIHByX2luZm8o Im91dC1vZi1ib3VuZHMgaW4gX19jb3B5X2Zyb21fdXNlcl9pbmF0b21pYygpXG4iKTsNCj4gPiAt ICAgICAgIHVudXNlZCA9IF9fY29weV9mcm9tX3VzZXJfaW5hdG9taWMoa21lbSwgdXNlcm1lbSwg c2l6ZSArIDEpOw0KPiA+ICsgICAgICAgdW51c2VkID0gX19jb3B5X2Zyb21fdXNlcl9pbmF0b21p YyhrbWVtLCB1c2VybWVtLCBzaXplICsgb29iX3NpemUpOw0KPiA+DQo+ID4gICAgICAgICBwcl9p bmZvKCJvdXQtb2YtYm91bmRzIGluIF9fY29weV90b191c2VyX2luYXRvbWljKClcbiIpOw0KPiA+ IC0gICAgICAgdW51c2VkID0gX19jb3B5X3RvX3VzZXJfaW5hdG9taWModXNlcm1lbSwga21lbSwg c2l6ZSArIDEpOw0KPiA+ICsgICAgICAgdW51c2VkID0gX19jb3B5X3RvX3VzZXJfaW5hdG9taWMo dXNlcm1lbSwga21lbSwgc2l6ZSArIG9vYl9zaXplKTsNCj4gPg0KPiA+ICAgICAgICAgcHJfaW5m bygib3V0LW9mLWJvdW5kcyBpbiBzdHJuY3B5X2Zyb21fdXNlcigpXG4iKTsNCj4gPiAtICAgICAg IHVudXNlZCA9IHN0cm5jcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUgKyAxKTsNCj4g PiArICAgICAgIHVudXNlZCA9IHN0cm5jcHlfZnJvbV91c2VyKGttZW0sIHVzZXJtZW0sIHNpemUg KyBvb2Jfc2l6ZSk7DQo+ID4NCj4gPiAgICAgICAgIHZtX211bm1hcCgodW5zaWduZWQgbG9uZyl1 c2VybWVtLCBQQUdFX1NJWkUpOw0KPiA+ICAgICAgICAga2ZyZWUoa21lbSk7DQo+ID4gLS0NCj4g PiAyLjE4LjANCj4gPg0KPiA+IC0tDQo+ID4gWW91IHJlY2VpdmVkIHRoaXMgbWVzc2FnZSBiZWNh dXNlIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0aGUgR29vZ2xlIEdyb3VwcyAia2FzYW4tZGV2IiBn cm91cC4NCj4gPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgZ3JvdXAgYW5kIHN0b3AgcmVjZWl2 aW5nIGVtYWlscyBmcm9tIGl0LCBzZW5kIGFuIGVtYWlsIHRvIGthc2FuLWRldit1bnN1YnNjcmli ZUBnb29nbGVncm91cHMuY29tLg0KPiA+IFRvIHZpZXcgdGhpcyBkaXNjdXNzaW9uIG9uIHRoZSB3 ZWIgdmlzaXQgaHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vZ3JvdXBzLmdvb2ds ZS5jb20vZC9tc2dpZC9rYXNhbi1kZXYvMjAyMDA3MDYwMjIxNTAuMjA4NDgtMS13YWx0ZXItemgu d3UqNDBtZWRpYXRlay5jb21fXztKUSEhQ1RSTktBOXdNZzBBUmJ3IXpxR1NfZy1vTEk3bzY4NTBH alZfUDdZUVByOFN1ZmRlQzhmYm50MjdvNFd0dmhYNVBaOC1lWjZCV3lGM2J3bTdUaXppcHckIC4N Cg0K