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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 354A2CAC592 for ; Mon, 15 Sep 2025 13:08:11 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uy8vZ-0004ju-LJ; Mon, 15 Sep 2025 09:07:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uy8vT-0004jT-V7 for grub-devel@gnu.org; Mon, 15 Sep 2025 09:07:24 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uy8vK-0004wT-2P for grub-devel@gnu.org; Mon, 15 Sep 2025 09:07:22 -0400 Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58F43iQU003877; Mon, 15 Sep 2025 13:07:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=Ev08A4 tYnsn+ogH/pS/nuVrnCdGYvp5X5uUTiDLJPoY=; b=tULg1yKPSJyFa0/pNVVaaG 5WXhLRALxCAUes8CJnLCWjBjE8ehEOI9I1JPacQ9lGa4IGBVzIesYI9M6lq3Snwb RCJvjjQ8EhyiYd+NVsM2xiXlyi65r7AjWJL+63u/ZfAAFi6LI3dtGdD7o8k47sM2 DB7Hb1WWcmdzvP8tF5X59ZLMcc0hynu2lEGvbZsT+64R11Xe9UGLX4WOIJSZqqgj yDIr6R/lRp7OlSt09mF48JFC4drRXPZ6V9csn6xglwIUPinUmSE1fp3EtbESet8t FlOLOSC6WE/pJfefLt7LzQpYwOEv1B6qRPN+T4sSrcx6W3KnPcLF3UFeQ66AkVDQ == Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 494x1tacx6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 15 Sep 2025 13:07:07 +0000 (GMT) Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 58FD34Fw010475; Mon, 15 Sep 2025 13:07:07 GMT Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 494x1tacx4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 15 Sep 2025 13:07:07 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 58FCkOBT009367; Mon, 15 Sep 2025 13:07:06 GMT Received: from smtprelay05.dal12v.mail.ibm.com ([172.16.1.7]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 495nn367ky-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 15 Sep 2025 13:07:06 +0000 Received: from smtpav02.dal12v.mail.ibm.com (smtpav02.dal12v.mail.ibm.com [10.241.53.101]) by smtprelay05.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58FD75bJ27001424 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 15 Sep 2025 13:07:05 GMT Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CC3745805A; Mon, 15 Sep 2025 13:07:05 +0000 (GMT) Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7AEFE58060; Mon, 15 Sep 2025 13:07:05 +0000 (GMT) Received: from ltc.linux.ibm.com (unknown [9.5.196.140]) by smtpav02.dal12v.mail.ibm.com (Postfix) with ESMTP; Mon, 15 Sep 2025 13:07:05 +0000 (GMT) MIME-Version: 1.0 Date: Mon, 15 Sep 2025 18:37:05 +0530 From: Avnish Chouhan To: mchang@suse.com Cc: grub-devel@gnu.org, Daniel Kiper , mlewando@redhat.com, ngompa13@gmail.com Subject: Re: [PATCH v2 1/9] util/grub-editenv: add basic structures and probe call for external envblk In-Reply-To: References: Message-ID: <53bc16c9c9200345ea9f75479be80f73@linux.ibm.com> X-Sender: avnish@linux.ibm.com X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=OMsn3TaB c=1 sm=1 tr=0 ts=68c80f7b cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=kj9zAlcOel0A:10 a=yJojWOMRYYMA:10 a=mDV3o1hIAAAA:8 a=iox4zFpeAAAA:8 a=pGLkceISAAAA:8 a=20KFwNOVAAAA:8 a=3Pb3_J6k2tGl4EXRuCcA:9 a=CjuIK1q_8ugA:10 a=WzC6qhA0u3u7Ye7llzcV:22 X-Proofpoint-ORIG-GUID: Ej9X9OM0Gh1cYxrvVLVjT8lqbY1R9YU0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTEzMDAwMSBTYWx0ZWRfXzaapp8XsuEJl AOLdLcyRytyxemz1o/R9Em+mmPRYf8qHsRy3cILluiOxOYqITSXbcDm6JxXZcTZS30A4Ci5h7SR hhF6Iu9IylUDLIElG+ggnYS1/CecZr8uldid0RRfvXdWBAjpDUyWpiegxchcHkqfCTVi1CibU2R YF6e1nJRnG5dU6rYSMZKcXr2YtDhjAUO9VgrO2AL+yillXwg3BRcA1A2ks+22gQoVnk6H1DEddI sTVvdaT+hZlM76xbWGwalKszupk9MyQjgHjnGXRyuJ42fgiFpRyIBccwrhCh86nRbtvYIH7rd3p nWR3Mb4cTKcDS2z0xG3KLsaj16WbDwj5pCCxEGswL4793ks/7ccQYfoDNcGp142xz6WklvjIl9n Q2FXB4tA X-Proofpoint-GUID: xPOPqs-Si8DJKu_3LcaLRFvgJmEr9FTT X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-15_05,2025-09-12_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 spamscore=0 priorityscore=1501 adultscore=0 impostorscore=0 clxscore=1011 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509130001 Received-SPF: pass client-ip=148.163.158.5; envelope-from=avnish@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org T24gMjAyNS0wOS0xNSAxNDozOSwgZ3J1Yi1kZXZlbC1yZXF1ZXN0QGdudS5vcmcgd3JvdGU6Cj4g Cj4gTWVzc2FnZTogMgo+IERhdGU6IE1vbiwgMTUgU2VwIDIwMjUgMTc6MDg6NDAgKzA4MDAKPiBG cm9tOiBNaWNoYWVsIENoYW5nIDxtY2hhbmdAc3VzZS5jb20+Cj4gVG86IFRoZSBkZXZlbG9wbWVu dCBvZiBHTlUgR1JVQiA8Z3J1Yi1kZXZlbEBnbnUub3JnPgo+IENjOiBOZWFsIEdvbXBhIDxuZ29t cGExM0BnbWFpbC5jb20+LAlNYXJ0YSBMZXdhbmRvd3NrYQo+IAk8bWxld2FuZG9AcmVkaGF0LmNv bT4KPiBTdWJqZWN0OiBbUEFUQ0ggdjIgMS85XSB1dGlsL2dydWItZWRpdGVudjogYWRkIGJhc2lj IHN0cnVjdHVyZXMgYW5kCj4gCXByb2JlIGNhbGwgZm9yIGV4dGVybmFsIGVudmJsawo+IE1lc3Nh Z2UtSUQ6IDwyMDI1MDkxNTA5MDg0OC4xMzE5MzctMi1tY2hhbmdAc3VzZS5jb20+Cj4gCj4gVGhp cyBwYXRjaCBwcmVwYXJlcyBmb3IgdXNpbmcgYW4gZW52aXJvbm1lbnQgYmxvY2sgc3RvcmVkIGlu IGEgcmVzZXJ2ZWQKPiBhcmVhIG9mIHRoZSBmaWxlc3lzdGVtLiBJdCBhZGRzIGEgY29uc3RhbnQg RU5WX0JUUkZTX09GRlNFVCBhdCAyNTYgS2lCCj4gaW4gdGhlIEJ0cmZzIGhlYWRlci4gSXQgYWxz byBpbnRyb2R1Y2VzIHRoZSBmc19lbnZibGtfc3BlYyBhbmQgCj4gZnNfZW52YmxrCj4gc3RydWN0 dXJlcyB0b2dldGhlciB3aXRoIHRoZSBwcm9iZV9mc19lbnZibGsgZnVuY3Rpb24gdG8gaWRlbnRp ZnkgdGhlCj4gcm9vdCBmaWxlc3lzdGVtIGFuZCB0byBhdm9pZCBjb25maWd1cmF0aW9ucyB0aGF0 IGludm9sdmUgZGlza2ZpbHRlciBvcgo+IGNyeXB0b2Rpc2suCj4gCj4gVGhlIHByb2JlIGlzIG9u bHkgaW52b2tlZCB3aGVuIGdydWItZWRpdGVudiBpcyB3b3JraW5nIG9uIHRoZSBkZWZhdWx0Cj4g ZW52aXJvbm1lbnQgZmlsZSBwYXRoLiBUaGlzIHJlc3RyaWN0aW9uIGVuc3VyZXMgdGhhdCBwcm9i aW5nIGFuZAo+IHBvc3NpYmxlIHJhdyBkZXZpY2UgYWNjZXNzIGFyZSBub3QgdHJpZ2dlcmVkIGZv ciBhcmJpdHJhcnkgdXNlciAKPiBzdXBwbGllZAo+IHBhdGhzLCBidXQgb25seSBmb3IgdGhlIHN0 YW5kYXJkIGdydWJlbnYgZmlsZS4gSW4gdGhhdCBjYXNlIHRoZSBjb2RlCj4gY2hlY2tzIGlmIHRo ZSBmaWxlbmFtZSBlcXVhbHMgREVGQVVMVF9FTlZCTEtfUEFUSCBhbmQgdGhlbiBjYWxscwo+IHBy b2JlX2ZzX2VudmJsayB3aXRoIGZzX2VudmJsa19zcGVjLiBUaGUgcmVzdWx0IGlzIHN0b3JlZCBp biB0aGUgZ2xvYmFsCj4gZnNfZW52YmxrIGhhbmRsZS4gQXQgdGhpcyBzdGFnZSB0aGUgZXh0ZXJu YWwgZW52aXJvbm1lbnQgYmxvY2sgaXMgb25seQo+IGRldGVjdGVkIGFuZCByZWNvcmRlZCwgYW5k IHRoZSBiZWhhdmlvciBvZiBncnViIGVkaXRlbnYgaXMgdW5jaGFuZ2VkLgo+IAo+IFNpZ25lZC1v ZmYtYnk6IE1pY2hhZWwgQ2hhbmcgPG1jaGFuZ0BzdXNlLmNvbT4KPiAtLS0KPiAgaW5jbHVkZS9n cnViL2ZzLmggICB8ICAgMiArCj4gIHV0aWwvZ3J1Yi1lZGl0ZW52LmMgfCAxNTMgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAx NTQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2dydWIvZnMuaCBiL2luY2x1ZGUvZ3J1Yi9mcy5oCj4gaW5kZXggZGY0YzkzYjE2Li4xYmUyNmRm YmEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9ncnViL2ZzLmgKPiArKysgYi9pbmNsdWRlL2dydWIv ZnMuaAo+IEBAIC0xMzIsNCArMTMyLDYgQEAgZ3J1Yl9mc191bnJlZ2lzdGVyIChncnViX2ZzX3Qg ZnMpCj4gCj4gIGdydWJfZnNfdCBFWFBPUlRfRlVOQyhncnViX2ZzX3Byb2JlKSAoZ3J1Yl9kZXZp Y2VfdCBkZXZpY2UpOwo+IAo+ICsjZGVmaW5lIEVOVl9CVFJGU19PRkZTRVQgKDI1NiAqIDEwMjQp Cj4gKwo+ICAjZW5kaWYgLyogISBHUlVCX0ZTX0hFQURFUiAqLwo+IGRpZmYgLS1naXQgYS91dGls L2dydWItZWRpdGVudi5jIGIvdXRpbC9ncnViLWVkaXRlbnYuYwo+IGluZGV4IGRiNmYxODdjYy4u MjMwMmE2YWNmIDEwMDY0NAo+IC0tLSBhL3V0aWwvZ3J1Yi1lZGl0ZW52LmMKPiArKysgYi91dGls L2dydWItZWRpdGVudi5jCj4gQEAgLTIzLDggKzIzLDExIEBACj4gICNpbmNsdWRlIDxncnViL3V0 aWwvbWlzYy5oPgo+ICAjaW5jbHVkZSA8Z3J1Yi9saWIvZW52YmxrLmg+Cj4gICNpbmNsdWRlIDxn cnViL2kxOG4uaD4KPiAtI2luY2x1ZGUgPGdydWIvZW11L2hvc3RmaWxlLmg+Cj4gKyNpbmNsdWRl IDxncnViL2VtdS9ob3N0ZGlzay5oPgo+ICAjaW5jbHVkZSA8Z3J1Yi91dGlsL2luc3RhbGwuaD4K PiArI2luY2x1ZGUgPGdydWIvZW11L2dldHJvb3QuaD4KPiArI2luY2x1ZGUgPGdydWIvZnMuaD4K PiArI2luY2x1ZGUgPGdydWIvY3J5cHRvLmg+Cj4gCj4gICNpbmNsdWRlIDxzdGRpby5oPgo+ICAj aW5jbHVkZSA8dW5pc3RkLmg+Cj4gQEAgLTEyMCw2ICsxMjMsMjYgQEAgYmxvY2ssIHVzZSBgcm0g JXMnLiIpLAo+ICAgIE5VTEwsIGhlbHBfZmlsdGVyLCBOVUxMCj4gIH07Cj4gCj4gK3N0cnVjdCBm c19lbnZibGtfc3BlYyB7CgpIaSBNaWNoYWVsLAoKVGhpcyAneycgc2VlbXMgdG8gYmUgaW4gYSBu ZXcgbGluZSEKCj4gKyAgY29uc3QgY2hhciAqZnNfbmFtZTsKPiArICBvZmZfdCBvZmZzZXQ7Cj4g KyAgc2l6ZV90IHNpemU7Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IGZzX2VudmJsa19zcGVjICpm c19lbnZibGtfc3BlY190Owo+ICsKPiArc3RydWN0IGZzX2VudmJsayB7CgpTYW1lIGFzIGFib3Zl IQoKPiArICBzdHJ1Y3QgZnNfZW52YmxrX3NwZWMgKnNwZWM7Cj4gKyAgY29uc3QgY2hhciAqZGV2 Owo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCBmc19lbnZibGsgKmZzX2VudmJsa190Owo+ICsKPiAr c3RhdGljIHN0cnVjdCBmc19lbnZibGtfc3BlYyBmc19lbnZibGtfc3BlY1tdID0gewo+ICsgIHsg ImJ0cmZzIiwgRU5WX0JUUkZTX09GRlNFVCwgR1JVQl9ESVNLX1NFQ1RPUl9TSVpFIH0sCj4gKyAg eyBOVUxMLCAwLCAwIH0KPiArfTsKPiArCj4gK3N0YXRpYyBmc19lbnZibGtfdCBmc19lbnZibGsg PSBOVUxMOwo+ICsKPiAgc3RhdGljIGdydWJfZW52YmxrX3QKPiAgb3Blbl9lbnZibGtfZmlsZSAo Y29uc3QgY2hhciAqbmFtZSkKPiAgewo+IEBAIC0yNTMsNiArMjc2LDEzMSBAQCB1bnNldF92YXJp YWJsZXMgKGNvbnN0IGNoYXIgKm5hbWUsIGludCBhcmdjLCBjaGFyIAo+ICphcmd2W10pCj4gICAg Z3J1Yl9lbnZibGtfY2xvc2UgKGVudmJsayk7Cj4gIH0KPiAKPiArc3RhdGljIGJvb2wKPiAraXNf YWJzdHJhY3Rpb24gKGdydWJfZGV2aWNlX3QgZGV2KQo+ICt7Cj4gKyAgaWYgKGRldiA9PSBOVUxM IHx8IGRldi0+ZGlzayA9PSBOVUxMKQo+ICsgICAgcmV0dXJuIGZhbHNlOwo+ICsKPiArICBpZiAo ZGV2LT5kaXNrLT5kZXYtPmlkID09IEdSVUJfRElTS19ERVZJQ0VfRElTS0ZJTFRFUl9JRCB8fAo+ ICsgICAgICBkZXYtPmRpc2stPmRldi0+aWQgPT0gR1JVQl9ESVNLX0RFVklDRV9DUllQVE9ESVNL X0lEKQo+ICsgICAgcmV0dXJuIHRydWU7CgpBZGRpbmcgYW4gZW1wdHkgbGluZSB3b3VsZCBiZSBi ZXR0ZXIgaGVyZSEKCj4gKyAgcmV0dXJuIGZhbHNlOwo+ICt9Cj4gKwo+ICtzdGF0aWMgZnNfZW52 YmxrX3QKPiArcHJvYmVfZnNfZW52YmxrIChmc19lbnZibGtfc3BlY190IHNwZWMpCj4gK3sKPiAr ICBjaGFyICoqZ3J1Yl9kZXZpY2VzID0gTlVMTDsKPiArICBjaGFyICoqY3VyZGV2LCAqKmN1cmRy aXZlOwo+ICsgIHNpemVfdCBuZGV2ID0gMDsKPiArICBjaGFyICoqZ3J1Yl9kcml2ZXMgPSBOVUxM Owo+ICsgIGdydWJfZGV2aWNlX3QgZ3J1Yl9kZXYgPSBOVUxMOwo+ICsgIGdydWJfZnNfdCBncnVi X2ZzID0gTlVMTDsKPiArICBjaGFyICpkZXZuYW1lID0gTlVMTDsKPiArICBmc19lbnZibGtfc3Bl Y190IHA7Cj4gKyAgYm9vbCBoYXZlX2Fic3RyYWN0aW9uID0gZmFsc2U7Cj4gKwo+ICsgIGdydWJf dXRpbF9iaW9zZGlza19pbml0IChERUZBVUxUX0RFVklDRV9NQVApOwo+ICsgIGdydWJfaW5pdF9h bGwgKCk7Cj4gKyAgZ3J1Yl9nY3J5X2luaXRfYWxsICgpOwo+ICsKPiArICBncnViX2x2bV9maW5p ICgpOwo+ICsgIGdydWJfbWRyYWlkMDlfZmluaSAoKTsKPiArICBncnViX21kcmFpZDF4X2Zpbmkg KCk7Cj4gKyAgZ3J1Yl9kaXNrZmlsdGVyX2ZpbmkgKCk7Cj4gKyAgZ3J1Yl9kaXNrZmlsdGVyX2lu aXQgKCk7Cj4gKyAgZ3J1Yl9tZHJhaWQwOV9pbml0ICgpOwo+ICsgIGdydWJfbWRyYWlkMXhfaW5p dCAoKTsKPiArICBncnViX2x2bV9pbml0ICgpOwoKV2UgYXJlbid0IGNoZWNraW5nIGFueSBmYWls dXJlIGluIHRoZXNlIGluaXRpYWxpemVzPyBBcmUgd2UgZ29vZCB3aXRob3V0IAp0aGUgY2hlY2tz IGhlcmUuLiBJJ20gbm90IHN1cmUgdGhvdWdoIQoKPiArCj4gKyAgZ3J1Yl9kZXZpY2VzID0gZ3J1 Yl9ndWVzc19yb290X2RldmljZXMgKERFRkFVTFRfRElSRUNUT1JZKTsKPiArCj4gKyAgaWYgKGdy dWJfZGV2aWNlcyA9PSBOVUxMIHx8IGdydWJfZGV2aWNlc1swXSA9PSBOVUxMKQo+ICsgICAgewo+ ICsgICAgICBncnViX3V0aWxfd2FybiAoXygiY2Fubm90IGZpbmQgYSBkZXZpY2UgZm9yICVzIChp cyAvZGV2Cj4gbW91bnRlZD8pIiksIERFRkFVTFRfRElSRUNUT1JZKTsKPiArICAgICAgZ290byBj bGVhbnVwOwo+ICsgICAgfQo+ICsKPiArICBkZXZuYW1lID0geHN0cmR1cCAoZ3J1Yl9kZXZpY2Vz WzBdKTsKClVzaW5nIGdydWJfc3RyZHVwIHdvdWxkIGJlIGJldHRlci4gV2UgY2FuIGNoZWNrIGZv ciBOVUxMIHJldHVybiBpbiBjYXNlIApvZiBmYWlsdXJlIQoKPiArCj4gKyAgZm9yIChjdXJkZXYg PSBncnViX2RldmljZXM7ICpjdXJkZXY7IGN1cmRldisrLCBuZGV2KyspCj4gKyAgICBncnViX3V0 aWxfcHVsbF9kZXZpY2UgKCpjdXJkZXYpOwo+ICsKPiArICBncnViX2RyaXZlcyA9IHhjYWxsb2Mg KChuZGV2ICsgMSksIHNpemVvZiAoZ3J1Yl9kcml2ZXNbMF0pKTsKClNhbWUgYXMgYWJvdmUuIGdy dWJfY2FsbG9jLi4uCgo+ICsKPiArICBmb3IgKGN1cmRldiA9IGdydWJfZGV2aWNlcywgY3VyZHJp dmUgPSBncnViX2RyaXZlczsgKmN1cmRldjsgCj4gY3VyZGV2KyssCj4gKyAgICAgICBjdXJkcml2 ZSsrKQo+ICsgICAgewo+ICsgICAgICAqY3VyZHJpdmUgPSBncnViX3V0aWxfZ2V0X2dydWJfZGV2 ICgqY3VyZGV2KTsKPiArICAgICAgaWYgKCpjdXJkcml2ZSA9PSBOVUxMKQo+ICsJewo+ICsJICBn cnViX3V0aWxfd2FybiAoXygiY2Fubm90IGZpbmQgYSBHUlVCIGRyaXZlIGZvciAlcy4gIENoZWNr IHlvdXIKPiBkZXZpY2UubWFwIiksCj4gKwkJCSAgKmN1cmRldik7Cj4gKwkgIGdvdG8gY2xlYW51 cDsKPiArCX0KPiArICAgIH0KPiArICAqY3VyZHJpdmUgPSAwOwo+ICsKPiArICBncnViX2RldiA9 IGdydWJfZGV2aWNlX29wZW4gKGdydWJfZHJpdmVzWzBdKTsKPiArICBpZiAoZ3J1Yl9kZXYgPT0g TlVMTCkKPiArICAgIHsKPiArICAgICAgZ3J1Yl91dGlsX3dhcm4gKF8oImNhbm5vdCBvcGVuIGRl dmljZSAlczogJXMiKSwgZ3J1Yl9kcml2ZXNbMF0sCj4gZ3J1Yl9lcnJtc2cpOwo+ICsgICAgICBn cnViX2Vycm5vID0gR1JVQl9FUlJfTk9ORTsKPiArICAgICAgZ290byBjbGVhbnVwOwo+ICsgICAg fQo+ICsKPiArICBncnViX2ZzID0gZ3J1Yl9mc19wcm9iZSAoZ3J1Yl9kZXYpOwo+ICsgIGlmIChn cnViX2ZzID09IE5VTEwpCj4gKyAgICB7Cj4gKyAgICAgIGdydWJfdXRpbF93YXJuIChfKCJjYW5u b3QgcHJvYmUgZnMgZm9yICVzOiAlcyIpLAo+IGdydWJfZHJpdmVzWzBdLCBncnViX2Vycm1zZyk7 Cj4gKyAgICAgIGdydWJfZXJybm8gPSBHUlVCX0VSUl9OT05FOwo+ICsgICAgICBnb3RvIGNsZWFu dXA7Cj4gKyAgICB9Cj4gKwo+ICsgIGhhdmVfYWJzdHJhY3Rpb24gPSBpc19hYnN0cmFjdGlvbiAo Z3J1Yl9kZXYpOwo+ICsgIGZvciAoY3VyZHJpdmUgPSBncnViX2RyaXZlcyArIDE7ICpjdXJkcml2 ZSAmJiBoYXZlX2Fic3RyYWN0aW9uID09Cj4gZmFsc2U7IGN1cmRyaXZlKyspCj4gKyAgICB7Cj4g KyAgICAgIGdydWJfZGV2aWNlX3QgZGV2ID0gZ3J1Yl9kZXZpY2Vfb3BlbiAoKmN1cmRyaXZlKTsK PiArICAgICAgaWYgKGRldiA9PSBOVUxMKQo+ICsJY29udGludWU7Cj4gKyAgICAgIGhhdmVfYWJz dHJhY3Rpb24gPSBpc19hYnN0cmFjdGlvbiAoZGV2KTsKPiArICAgICAgZ3J1Yl9kZXZpY2VfY2xv c2UgKGRldik7Cj4gKyAgICB9Cj4gKwo+ICsgY2xlYW51cDoKPiArICBpZiAoZ3J1Yl9kZXZpY2Vz ICE9IE5VTEwpCj4gKyAgICBmb3IgKGN1cmRldiA9IGdydWJfZGV2aWNlczsgKmN1cmRldjsgY3Vy ZGV2KyspCj4gKyAgICAgIGZyZWUgKCpjdXJkZXYpOwo+ICsgIGZyZWUgKGdydWJfZGV2aWNlcyk7 Cj4gKyAgZnJlZSAoZ3J1Yl9kcml2ZXMpOwoKZ3J1Yl9mcmVlKCkgaW5zdGVhZCBvZiBmcmVlKCku Cgo+ICsgIGdydWJfZGV2aWNlX2Nsb3NlIChncnViX2Rldik7Cj4gKyAgZ3J1Yl9nY3J5X2Zpbmlf YWxsICgpOwo+ICsgIGdydWJfZmluaV9hbGwgKCk7Cj4gKyAgZ3J1Yl91dGlsX2Jpb3NkaXNrX2Zp bmkgKCk7Cj4gKwo+ICsgIGlmIChncnViX2ZzID09IE5VTEwpCj4gKyAgICB7Cj4gKyAgICAgIGZy ZWUgKGRldm5hbWUpOwoKZ3J1Yl9mcmVlKCkgaW5zdGVhZCBvZiBmcmVlKCkuCgo+ICsgICAgICBy ZXR1cm4gTlVMTDsKPiArICAgIH0KPiArCj4gKyAgZm9yIChwID0gc3BlYzsgcC0+ZnNfbmFtZTsg cCsrKQo+ICsgICAgewo+ICsgICAgICBpZiAoc3RyY21wIChncnViX2ZzLT5uYW1lLCBwLT5mc19u YW1lKSA9PSAwICYmIAo+ICFoYXZlX2Fic3RyYWN0aW9uKQoKU2FtZSBhcyBtZW50aW9uZWQgYWJv dmUuIGdydWJfc3RyY21wKCkuLi4KCj4gKwl7Cj4gKwkgIGZzX2VudmJsayA9IHhtYWxsb2MgKHNp emVvZiAoZnNfZW52YmxrX3QpKTsKClNhbWUgYXMgYWJvdmUuIGdydWJfbWFsbG9jKCkuLi4KCj4g KwkgIGZzX2VudmJsay0+c3BlYyA9IHA7Cj4gKwkgIGZzX2VudmJsay0+ZGV2ID0gZGV2bmFtZTsK PiArCSAgcmV0dXJuIGZzX2VudmJsazsKPiArCX0KPiArICAgIH0KPiArCj4gKyAgZnJlZSAoZGV2 bmFtZSk7CgpncnViX2ZyZWUoKSBpbnN0ZWFkIG9mIGZyZWUoKS4gQW5kIGFkZGluZyBhIG5ldyBs aW5lIGhlcmUgd291bGQgYmUgZ29vZCEKCj4gKyAgcmV0dXJuIE5VTEw7Cj4gK30KPiArCj4gKwo+ ICBpbnQKPiAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgewo+IEBAIC0yODQsNiAr NDMyLDkgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgICAgICAgY29tbWFuZCAg PSBhcmd2W2N1cmluZGV4KytdOwo+ICAgICAgfQo+IAo+ICsgIGlmIChzdHJjbXAgKGZpbGVuYW1l LCBERUZBVUxUX0VOVkJMS19QQVRIKSA9PSAwKQoKU2FtZSBhcyBtZW50aW9uZWQgYWJvdmUuIGdy dWJfc3RyY21wKCkuLi4KClRoYW5rIHlvdSEKClJlZ2FyZHMsCkF2bmlzaCBDaG91aGFuCgo+ICsg ICAgZnNfZW52YmxrID0gcHJvYmVfZnNfZW52YmxrIChmc19lbnZibGtfc3BlYyk7Cj4gKwo+ICAg IGlmIChzdHJjbXAgKGNvbW1hbmQsICJjcmVhdGUiKSA9PSAwKQo+ICAgICAgZ3J1Yl91dGlsX2Ny ZWF0ZV9lbnZibGtfZmlsZSAoZmlsZW5hbWUpOwo+ICAgIGVsc2UgaWYgKHN0cmNtcCAoY29tbWFu ZCwgImxpc3QiKSA9PSAwKQo+IC0tCj4gMi41MS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpHcnViLWRldmVsIG1haWxpbmcgbGlzdApHcnViLWRldmVs QGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZ3J1Yi1kZXZl bAo=