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.2 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 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 BED9EC1975A for ; Tue, 17 Mar 2020 19:10:56 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6F9DE206EC for ; Tue, 17 Mar 2020 19:10:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=gmx.net header.i=@gmx.net header.b="bF/c0Rm6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6F9DE206EC Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:40072 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEHc7-0000R5-Cs for qemu-devel@archiver.kernel.org; Tue, 17 Mar 2020 15:10:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40604) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEHXq-0006ew-Jk for qemu-devel@nongnu.org; Tue, 17 Mar 2020 15:06:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEHXn-0008Rp-Ue for qemu-devel@nongnu.org; Tue, 17 Mar 2020 15:06:30 -0400 Received: from mout.gmx.net ([212.227.17.22]:45631) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jEHXn-000897-LH for qemu-devel@nongnu.org; Tue, 17 Mar 2020 15:06:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584471977; bh=5BoMP51XdLYr6nhWbaoVr3b77dVxyWVl8OaZrtPCor4=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=bF/c0Rm69/DZXUQEstOyUyDD5hGZyJwTREQ3ZDgLi2pkwZTiVoNxpDkJlipb7taoQ bh8ZT8LgzyhVujm1YQj1IKjtyp09BSQqoOVtMaTKyubKx82h31U4WoyPCIz4q8id5C Z4Ds+INqXjWanC2U6UlrEgItptfVhyb9W0ODurE8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.20.60] ([92.116.151.177]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M5QFB-1jF6M81Cr7-001OBg; Tue, 17 Mar 2020 20:06:17 +0100 Subject: Re: [PATCH] hw/net/i82596.c: Avoid reading off end of buffer in i82596_receive() To: Jason Wang , Peter Maydell , qemu-devel@nongnu.org References: <20200312201638.6375-1-peter.maydell@linaro.org> From: Helge Deller Autocrypt: addr=deller@gmx.de; keydata= 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 c2TFWAS8k6RLkk41ZUU8ENX8+qZx/Q== Message-ID: <6611c32e-1f0c-8b00-2766-affe0e8ee85e@gmx.de> Date: Tue, 17 Mar 2020 20:06:15 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:TrfTwAmNleIc7tFtDMfferBnNUekBuOXQuEOdHosn9q5JcWBAs9 OIQyw35DRIkmLAEqJLJ+FPnablWpystSP8TO0zZTrB+FS+DBO/8cOQO1oJP2oJuJ/fwECJ3 kVssrqeoBHRKdG2BEsUMVax3EU2ypDETeOaZjYv3lEBiH7d+FEVumumAgRL2DesBdxO/Wjd vh5gSANGtFJfhhVk+dD+g== X-UI-Out-Filterresults: notjunk:1;V03:K0:QrpJRlYwJOQ=:nOUmsmXg4zCcJzoqIwDISE zZRutjrbMIQXuQn0pGpZAM6EU4X7G2Edoty9qCSOYU2pT+oz2/VV9VHrIPPOHFMOqPmAOTXye oLuivf35mR/o69A0vrX8+xzs7t9IqTS0JlMHDZhqLt/BvvaYYRiMD4+LQ+U0ziYWZklxpDoKC gBYyjWm7WyTbq9kCQ5+OD9HYmU/jUX4NjD/eAdkFQ99xb31y9LQdr65ivydpd2IEjLO+t4v4Y DVVfy1h9n++SHLOlsFqax6o4wXQG4nepWxEJvNXeWYqZA2ToviQgu1Qj8wNx+WY/M9MIjUXlo re6YAF1Y1pphN7IAGBfHFPOf6ENpLknaF/UAmhpSKUEec1603hk7+6AowIeu9U8pW5JnggVVs EuyUnbtKJiUXlIY+kEpciYaVgYqNmTzi4J3pzGMX34vPt7b3a4aJj0msz1xG0Q61aA2RWAo6R jtHvtM55BjVWmBM/Aj7Ex/oavE0A6yzj6VC8bTqbFVZqT9bvKV8Kvz1TeuOS8aXRdVrmVERqq aJDlFaNbHwyhc9ce9+4Dm3nD8Y65huwGUMVXnfUQh3FHtPSa4gx8nHpB9dYkrB4LK87wu6ccu 2Od+EJLirjPskLz102+rJttz1siCSo8tJpEo+fAtKhdNQTfgaZ+xobFyedOqIXNaWzpcoTFkn De9706h5SVInwQAuKoWo7UfNbEvVtuUO7KmRVj+aJgTIWiqimwhKSeXMFI5Xp17Wu+rYKSQty 1KAmlhTzzVjGrE0NKkcBmCy7dvwFyI1oO5Yypu0hJ3cAxlTh42vKAfXgcoC2t5U6+NoEU7sJQ laF1Hb7q4HIEPUpNlHenNREItZv1HpCsfld3PO3hBKEK097kwMpsqrzOMZudDkdBoDzwQlUdL A+x4JYQ3ItZtyoGMEcbZUpLU/VNl+3NlMRs/t+nolMIsKeXTMEvK0QREaYmdnGVw4LMWoXY1M WGPVRxesnRJRen+/Vo73HaQ373DW2wG9FbS8KUBY6mpVJC6EduJqimuhGcom5VCnb9B6w8asN TuFjk1p7OhCd05WT44+j/JA3iIOBBXszQI5XjcKR+Z/AIeTz5C7gEhD5p9w0ppJUSNHbewSb1 CkHtQDwXY2cVly8OmAA4MOB64bFetmNcd50tjamQ13WqY9M7aZnNNmDVjVgnk2hPCAycdkOKP TX/rQ4WFQJ21jnoWF/HanovB1EQeZxmzpMRyKRI3a7t9LmcY0pp2XQpOcau65uVL0fA6o+AsO eM7+0/LpVUGvb9+e8 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.22 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" T24gMTcuMDMuMjAgMDc6MTMsIEphc29uIFdhbmcgd3JvdGU6DQo+IA0KPiBPbiAyMDIwLzMvMTMg 5LiK5Y2INDoxNiwgUGV0ZXIgTWF5ZGVsbCB3cm90ZToNCj4+IFRoZSBpODI1OTZfcmVjZWl2ZSgp IGZ1bmN0aW9uIGF0dGVtcHRzIHRvIHBhc3MgdGhlIGd1ZXN0IGEgYnVmZmVyDQo+PiB3aGljaCBp cyBlZmZlY3RpdmVseSB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGUgZGF0YSBpdCBpcyBwYXNzZWQg YW5kIGENCj4+IDQgYnl0ZSBDUkMgdmFsdWUuwqAgSG93ZXZlciwgcmF0aGVyIHRoYW4gaW1wbGVt ZW50aW5nIHRoaXMgYXMgIndyaXRlDQo+PiB0aGUgZGF0YTsgdGhlbiB3cml0ZSB0aGUgQ1JDIiBp dCBpbnN0ZWFkIGJ1bXBzIHRoZSBsZW5ndGggdmFsdWUgb2YNCj4+IHRoZSBkYXRhIGJ5IDQsIGFu ZCB3cml0ZXMgNCBleHRyYSBieXRlcyBmcm9tIGJleW9uZCB0aGUgZW5kIG9mIHRoZQ0KPj4gYnVm ZmVyLCB3aGljaCBpdCB0aGVuIG92ZXJ3cml0ZXMgd2l0aCB0aGUgQ1JDLsKgIEl0IGFsc28gYXNz dW1lZCB0aGF0DQo+PiB3ZSBjb3VsZCBhbHdheXMgZml0IGFsbCBmb3VyIGJ5dGVzIG9mIHRoZSBD UkMgaW50byB0aGUgZmluYWwgcmVjZWl2ZQ0KPj4gYnVmZmVyLCB3aGljaCBtaWdodCBub3QgYmUg dHJ1ZSBpZiB0aGUgQ1JDIG5lZWRzIHRvIGJlIHNwbGl0IG92ZXIgdHdvDQo+PiByZWNlaXZlIGJ1 ZmZlcnMuDQo+Pg0KPj4gQ2FsY3VsYXRlIHNlcGFyYXRlbHkgaG93IG1hbnkgYnl0ZXMgd2UgbmVl ZCB0byB0cmFuc2ZlciBpbnRvIHRoZQ0KPj4gZ3Vlc3QncyByZWNlaXZlIGJ1ZmZlciBmcm9tIHRo ZSBzb3VyY2UgYnVmZmVyLCBhbmQgaG93IG1hbnkgd2UgbmVlZA0KPj4gdG8gdHJhbnNmZXIgZnJv bSB0aGUgQ1JDIHdvcmsuDQo+Pg0KPj4gV2UgYWRkIGEgY291bnQgJ2J1ZnN6JyBvZiB0aGUgbnVt YmVyIG9mIGJ5dGVzIGxlZnQgaW4gdGhlIHNvdXJjZQ0KPj4gYnVmZmVyLCB3aGljaCB3ZSB1c2Ug cHVyZWx5IHRvIGFzc2VydCgpIHRoYXQgd2UgZG9uJ3Qgb3ZlcnJ1bi4NCj4+DQo+PiBTcG90dGVk IGJ5IENvdmVyaXR5IChDSUQgMTQxOTM5NikgZm9yIHRoZSBzcGVjaWZpYyBjYXNlIHdoZW4gd2Ug ZW5kDQo+PiB1cCB1c2luZyBhIGxvY2FsIGFycmF5IGFzIHRoZSBzb3VyY2UgYnVmZmVyLg0KPj4N Cj4+IFNpZ25lZC1vZmYtYnk6IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9y Zz4NCj4+IC0tLQ0KPj4gSSBrbm93IEhlbGdlIGhhcyBzb21lIHNpZ25pZmljYW50IHJld29yayBv ZiB0aGlzIGRldmljZSBwbGFubmVkLCBidXQNCj4+IGZvciA1LjAgd2UgbmVlZCB0byBmaXggdGhl IGJ1ZmZlciBvdmVycnVuLg0KPj4NCj4+IFRlc3RlZCB3aXRoICdtYWtlIGNoZWNrJyBvbmx5Lg0K Pj4gLS0tDQo+PiDCoCBody9uZXQvaTgyNTk2LmMgfCA0NCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLQ0KPj4gwqAgMSBmaWxlIGNoYW5nZWQsIDM1IGluc2VydGlv bnMoKyksIDkgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2h3L25ldC9pODI1OTYu YyBiL2h3L25ldC9pODI1OTYuYw0KPj4gaW5kZXggZmU5ZjIzOTBhOTQuLjJiZDVkMzEwMzY3IDEw MDY0NA0KPj4gLS0tIGEvaHcvbmV0L2k4MjU5Ni5jDQo+PiArKysgYi9ody9uZXQvaTgyNTk2LmMN Cj4+IEBAIC01MDEsNyArNTAxLDggQEAgc3NpemVfdCBpODI1OTZfcmVjZWl2ZShOZXRDbGllbnRT dGF0ZSAqbmMsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IHN6KQ0KPj4gwqDCoMKgwqDCoCB1 aW50MzJfdCByZmRfcDsNCj4+IMKgwqDCoMKgwqAgdWludDMyX3QgcmJkOw0KPj4gwqDCoMKgwqDC oCB1aW50MTZfdCBpc19icm9hZGNhc3QgPSAwOw0KPj4gLcKgwqDCoCBzaXplX3QgbGVuID0gc3o7 DQo+PiArwqDCoMKgIHNpemVfdCBsZW4gPSBzejsgLyogbGVuZ3RoIG9mIGRhdGEgZm9yIGd1ZXN0 IChpbmNsdWRpbmcgQ1JDKSAqLw0KPj4gK8KgwqDCoCBzaXplX3QgYnVmc3ogPSBzejsgLyogbGVu Z3RoIG9mIGRhdGEgaW4gYnVmICovDQo+PiDCoMKgwqDCoMKgIHVpbnQzMl90IGNyYzsNCj4+IMKg wqDCoMKgwqAgdWludDhfdCAqY3JjX3B0cjsNCj4+IMKgwqDCoMKgwqAgdWludDhfdCBidWYxW01J Tl9CVUZfU0laRSArIFZMQU5fSExFTl07DQo+PiBAQCAtNTk1LDYgKzU5Niw3IEBAIHNzaXplX3Qg aTgyNTk2X3JlY2VpdmUoTmV0Q2xpZW50U3RhdGUgKm5jLCBjb25zdCB1aW50OF90ICpidWYsIHNp emVfdCBzeikNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAobGVuIDwgTUlOX0JVRl9TSVpFKSB7 DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZW4gPSBNSU5fQlVGX1NJWkU7DQo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgfQ0KPj4gK8KgwqDCoMKgwqDCoMKgIGJ1ZnN6ID0gbGVuOw0KPj4g wqDCoMKgwqDCoCB9DQo+PiDCoCDCoMKgwqDCoMKgIC8qIENhbGN1bGF0ZSB0aGUgZXRoZXJuZXQg Y2hlY2tzdW0gKDQgYnl0ZXMpICovDQo+PiBAQCAtNjI3LDYgKzYyOSw3IEBAIHNzaXplX3QgaTgy NTk2X3JlY2VpdmUoTmV0Q2xpZW50U3RhdGUgKm5jLCBjb25zdCB1aW50OF90ICpidWYsIHNpemVf dCBzeikNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB3aGlsZSAobGVuKSB7DQo+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB1aW50MTZfdCBidWZmZXJfc2l6ZSwgbnVtOw0KPj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgdWludDMyX3QgcmJhOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgc2l6ZV90IGJ1ZmNvdW50LCBjcmNjb3VudDsNCj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIC8qIHByaW50ZigiUmVjZWl2ZTogcmJkIGlzICUwOHhcbiIsIHJiZCk7ICovDQo+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZmZXJfc2l6ZSA9IGdldF91aW50MTYocmJkICsg MTIpOw0KPj4gQEAgLTYzOSwxNCArNjQyLDM3IEBAIHNzaXplX3QgaTgyNTk2X3JlY2VpdmUoTmV0 Q2xpZW50U3RhdGUgKm5jLCBjb25zdCB1aW50OF90ICpidWYsIHNpemVfdCBzeikNCj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJi YSA9IGdldF91aW50MzIocmJkICsgOCk7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAv KiBwcmludGYoInJiYSBpcyAweCV4XG4iLCByYmEpOyAqLw0KPj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgYWRkcmVzc19zcGFjZV93cml0ZSgmYWRkcmVzc19zcGFjZV9tZW1vcnksIHJiYSwNCj4+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBNRU1UWEFUVFJTX1VOU1BFQ0lGSUVELCBidWYsIG51bSk7DQo+PiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCByYmEgKz0gbnVtOw0KPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnVm ICs9IG51bTsNCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxlbiAtPSBudW07DQo+PiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAobGVuID09IDApIHsgLyogY29weSBjcmMgKi8NCj4+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWRkcmVzc19zcGFjZV93cml0ZSgmYWRkcmVz c19zcGFjZV9tZW1vcnksIHJiYSAtIDQsDQo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBNRU1UWEFUVFJTX1VO U1BFQ0lGSUVELCBjcmNfcHRyLCA0KTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qDQo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogQ2FsY3VsYXRlIGhvdyBtYW55IGJ5dGVzIHdl IHdhbnQgZnJvbSBidWZbXSBhbmQgaG93IG1hbnkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKiBmcm9tIHRoZSBDUkMuDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICovDQo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoKGxlbiAtIG51bSkgPj0gNCkgew0KPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBUaGUgd2hvbGUgZ3Vlc3QgYnVmZmVyLCB3ZSBo YXZlbid0IGhpdCB0aGUgQ1JDIHlldCAqLw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBidWZjb3VudCA9IG51bTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0gZWxzZSB7 DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIEFsbCB0aGF0J3MgbGVmdCBv ZiBidWZbXSAqLw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZjb3VudCA9 IGxlbiAtIDQ7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9DQo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBjcmNjb3VudCA9IG51bSAtIGJ1ZmNvdW50Ow0KPj4gKw0KPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgaWYgKGJ1ZmNvdW50ID4gMCkgew0KPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAvKiBTdGlsbCBzb21lIG9mIHRoZSBhY3R1YWwgZGF0YSBidWZmZXIgdG8g dHJhbnNmZXIgKi8NCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnVmc3ogLT0g YnVmY291bnQ7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFzc2VydChidWZz eiA+PSAwKTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWRkcmVzc19zcGFj ZV93cml0ZSgmYWRkcmVzc19zcGFjZV9tZW1vcnksIHJiYSwNCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE1F TVRYQVRUUlNfVU5TUEVDSUZJRUQsIGJ1ZiwgYnVmY291bnQpOw0KPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCByYmEgKz0gYnVmY291bnQ7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGJ1ZiArPSBidWZjb3VudDsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgbGVuIC09IGJ1ZmNvdW50Ow0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQ0K Pj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogV3JpdGUgYXMgbXVjaCBvZiB0aGUg Q1JDIGFzIGZpdHMgKi8NCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChjcmNjb3VudCA+ IDApIHsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWRkcmVzc19zcGFjZV93 cml0ZSgmYWRkcmVzc19zcGFjZV9tZW1vcnksIHJiYSwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE1FTVRY QVRUUlNfVU5TUEVDSUZJRUQsIGNyY19wdHIsIGNyY2NvdW50KTsNCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgcmJhICs9IGNyY2NvdW50Ow0KPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBjcmNfcHRyICs9IGNyY2NvdW50Ow0KPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBsZW4gLT0gY3JjY291bnQ7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB9DQo+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBudW0gfD0gMHg0MDAwOyAv KiBzZXQgRiBCSVQgKi8NCj4gDQo+IA0KPiBBcHBsaWVkLg0KDQpUaGFuayB5b3UsIFBldGVyIGFu ZCBKYXNvbiENCg0KSGVsZ2UNCg==