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 42BA8CA0EE6 for ; Tue, 19 Aug 2025 13:15:28 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uoMAC-0005NP-AH; Tue, 19 Aug 2025 09:14:08 -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 1uoMAA-0005Kr-5D for grub-devel@gnu.org; Tue, 19 Aug 2025 09:14:06 -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 1uoMA7-0007Yw-Ug for grub-devel@gnu.org; Tue, 19 Aug 2025 09:14:05 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57INxCwD018253; Tue, 19 Aug 2025 13:14:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=3qIQ8UOtSSb+r0IBx TN/3zHSWvLqNATuMkh82GQqw7w=; b=Nxdq5K4qJa+VdMHha7Lo5gdDWPIX1cK0t dYGdczkhsm8U6iE/qnd/yGvy+aHTKzc8+Mkg1fX5pm3jJ9PeXEgH6m3m2zpBXmn2 P71YJeOA1J7Bvj8LkAlSKON28USH467vhU7NgZ7JN9DQfF5LIVNnzp6yNDsxxu9n azbJTjmMVmV0uLk8AasjgHl2G/Bi0flLESptD+nklwOt3sPNsowdmH9eO8qfgLwQ DuD4oGpThvQZYw2cP8vjZE+hg56ZaZu06ZKMzxqsTjG0gLlr6zZgZgI5giebGdyE 527AvLTXfYzUorZNU35NsacIo1tGOl0Eki12jKDG0wug2aDs0eBkQ== Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 48jge3xqmn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Aug 2025 13:14:01 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 57J9PsSk011683; Tue, 19 Aug 2025 13:14:00 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 48k4auah0h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Aug 2025 13:14:00 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 57JDDvYC27656758 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 19 Aug 2025 13:13:57 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id EEF3A20040; Tue, 19 Aug 2025 13:13:56 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7053E20043; Tue, 19 Aug 2025 13:13:54 +0000 (GMT) Received: from localhost.localdomain (unknown [9.124.211.37]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 19 Aug 2025 13:13:54 +0000 (GMT) From: Sudhakar Kuppusamy To: grub-devel@gnu.org Cc: dja@axtens.net, jan.setjeeilers@oracle.com, julian.klode@canonical.com, mate.kukri@canonical.com, pjones@redhat.com, msuchanek@suse.com, mlewando@redhat.com, stefanb@linux.ibm.com, avnish@linux.ibm.com, nayna@linux.ibm.com, ssrish@linux.ibm.com, Sudhakar Kuppusamy , sridharm@linux.ibm.com, Daniel Kiper Subject: [PATCH v7 06/20] appended signatures: Parse ASN1 node Date: Tue, 19 Aug 2025 18:43:09 +0530 Message-Id: <20250819131323.57631-7-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250819131323.57631-1-sudhakar@linux.ibm.com> References: <20250819131323.57631-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=FcM3xI+6 c=1 sm=1 tr=0 ts=68a47899 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=2OwXVqhp2XgA:10 a=mDV3o1hIAAAA:8 a=JuTF4qcAAAAA:8 a=VnNF1IyMAAAA:8 a=yPCof4ZbAAAA:8 a=QQTzU-B8HNZ-fe_KibsA:9 a=WlT8qwTXB_Kj6um4hl3b:22 X-Proofpoint-GUID: ih-MNOHaEdYuTNyhWXKyTpwvgzhEmNT9 X-Proofpoint-ORIG-GUID: ih-MNOHaEdYuTNyhWXKyTpwvgzhEmNT9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODE2MDAxMSBTYWx0ZWRfX1hRBD4xehxjA 9Zc0/ZuXPCRG7JL1F8ibs4GBhMUlQxns1h//zo3yy11HqFYvc6sGvHhRl1zjTHijJ+e9kmW1X2B JWEXqELRc9UGzjvBgkVhO8gWsNCi+juv82t0QXHAxLp3obW70ik5XseK7gzz0cPkxFwZNwDvRxi 87YIV/LNPxOXSgPob83sU21Hb76L5M9TL8oXlRGW8uR7lUhtNhnSXqas4k2Gd6RoY5fueP1Ef0b jHYMTuyH0S2VWUo3Owaw2DN8QWx49eCS/9ttVD/mB7LzgHotY0XLp1yRea2XYWsERkxEsIZvZco 4/L8O1iU9cUo9AFKoENcSZCOx3M5wabLGHcculZpHOwYEQiWNrZHFwHccTL+lmhX551ng+fucb7 7p+2Pik7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-19_02,2025-08-14_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 adultscore=0 phishscore=0 clxscore=1015 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508160011 Received-SPF: pass client-ip=148.163.158.5; envelope-from=sudhakar@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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org VGhpcyBjb2RlIGFsbG93cyB1cyB0byBwYXJzZSBBU04xIG5vZGUgYW5kIGFsbG9jYXRpbmcgbWVt b3J5IHRvIHN0b3JlIGl0LgpJdCB3aWxsIHdvcmsgZm9yIGFueXRoaW5nIHdoZXJlIHRoZSBzaXpl IGxpYnRhc24xIHJldHVybnMgaXMgcmlnaHQ6CiAtIEludGVnZXJzCiAtIE9jdGV0IHN0cmluZ3MK IC0gREVSIGVuY29kaW5nIG9mIG90aGVyIHN0cnVjdHVyZXMKSXQgd2lsbCBfbm90XyB3b3JrIGZv ciB0aGluZ3Mgd2hlcmUgbGlidGFzbjEgc2l6ZSByZXF1aXJlcyBhZGp1c3RtZW50OgogLSBTdHJp bmdzIHRoYXQgcmVxdWlyZSBhbiBleHRyYSBOVUxMIGJ5dGUgYXQgdGhlIGVuZAogLSBCaXQgc3Ry aW5ncyBiZWNhdXNlIGxpYnRhc24xIHJldHVybnMgdGhlIGxlbmd0aCBpbiBiaXRzLCBub3QgYnl0 ZXMuCklmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgbm9uLU5VTEwgdmFsdWUsIHRoZSBjYWxsZXIg bXVzdCBmcmVlIGl0LgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEF4dGVucyA8ZGphQGF4dGVucy5u ZXQ+ClNpZ25lZC1vZmYtYnk6IFN1ZGhha2FyIEt1cHB1c2FteSA8c3VkaGFrYXJAbGludXguaWJt LmNvbT4KUmV2aWV3ZWQtYnk6IFN0ZWZhbiBCZXJnZXIgPHN0ZWZhbmJAbGludXguaWJtLmNvbT4K UmV2aWV3ZWQtYnk6IEF2bmlzaCBDaG91aGFuIDxhdm5pc2hAbGludXguaWJtLmNvbT4KUmV2aWV3 ZWQtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+Ci0tLQogZ3J1Yi1j b3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmggfCA0MiArKysrKysrKysKIGdy dWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hc24xdXRpbC5jICAgIHwgOTYgKysrKysrKysr KysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTM4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBt b2RlIDEwMDY0NCBncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hc24xdXRp bC5jCgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVk c2lnLmggYi9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjkxY2MwNDBiYgotLS0gL2Rldi9udWxs CisrKyBiL2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5oCkBAIC0w LDAgKzEsNDIgQEAKKy8qCisgKiAgR1JVQiAgLS0gIEdSYW5kIFVuaWZpZWQgQm9vdGxvYWRlcgor ICogIENvcHlyaWdodCAoQykgMjAyMCwgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMjAsIDIwMjIsIDIwMjUgSUJNIENvcnBvcmF0aW9uCisg KgorICogIEdSVUIgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBHUlVCIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisg KiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIEdSVUIuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2luY2x1ZGUgPGxpYnRhc24xLmg+CisKK2V4dGVy biBhc24xX25vZGUgZ3J1Yl9nbnV0bHNfZ251dGxzX2FzbjsKK2V4dGVybiBhc24xX25vZGUgZ3J1 Yl9nbnV0bHNfcGtpeF9hc247CisKKy8qIERvIGxpYnRhc24xIGluaXQuICovCitleHRlcm4gaW50 Cithc24xX2luaXQgKHZvaWQpOworCisvKgorICogUmVhZCBhIHZhbHVlIGZyb20gYW4gQVNOMSBu b2RlLCBhbGxvY2F0aW5nIG1lbW9yeSB0byBzdG9yZSBpdC4KKyAqIEl0IHdpbGwgd29yayBmb3Ig YW55dGhpbmcgd2hlcmUgdGhlIHNpemUgbGlidGFzbjEgcmV0dXJucyBpcyByaWdodDoKKyAqICAt IEludGVnZXJzCisgKiAgLSBPY3RldCBzdHJpbmdzCisgKiAgLSBERVIgZW5jb2Rpbmcgb2Ygb3Ro ZXIgc3RydWN0dXJlcworICogSXQgd2lsbCBfbm90XyB3b3JrIGZvciB0aGluZ3Mgd2hlcmUgbGli dGFzbjEgc2l6ZSByZXF1aXJlcyBhZGp1c3RtZW50OgorICogIC0gU3RyaW5ncyB0aGF0IHJlcXVp cmUgYW4gZXh0cmEgbnVsbCBieXRlIGF0IHRoZSBlbmQKKyAqICAtIEJpdCBzdHJpbmdzIGJlY2F1 c2UgbGlidGFzbjEgcmV0dXJucyB0aGUgbGVuZ3RoIGluIGJpdHMsIG5vdCBieXRlcy4KKyAqCisg KiBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyBhIG5vbi1OVUxMIHZhbHVlLCB0aGUgY2FsbGVyIG11 c3QgZnJlZSBpdC4KKyAqLworZXh0ZXJuIHZvaWQgKgorZ3J1Yl9hc24xX2FsbG9jYXRlX2FuZF9y ZWFkIChhc24xX25vZGUgbm9kZSwgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqZnJpZW5k bHlfbmFtZSwgaW50ICpjb250ZW50X3NpemUpOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1h bmRzL2FwcGVuZGVkc2lnL2FzbjF1dGlsLmMgYi9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRz aWcvYXNuMXV0aWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjdlN2Vl MjY0YgotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9h c24xdXRpbC5jCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiAgR1JVQiAgLS0gIEdSYW5kIFVuaWZp ZWQgQm9vdGxvYWRlcgorICogIENvcHlyaWdodCAoQykgMjAyMCwgMjAyMiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMjAsIDIwMjIsIDIwMjUgSUJN IENvcnBvcmF0aW9uCisgKgorICogIEdSVUIgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBHUlVCIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIEdSVUIuICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2luY2x1ZGUgPGxpYnRh c24xLmg+CisjaW5jbHVkZSA8Z3J1Yi90eXBlcy5oPgorI2luY2x1ZGUgPGdydWIvZXJyLmg+Cisj aW5jbHVkZSA8Z3J1Yi9tbS5oPgorI2luY2x1ZGUgPGdydWIvY3J5cHRvLmg+CisjaW5jbHVkZSA8 Z3J1Yi9taXNjLmg+CisjaW5jbHVkZSA8Z3J1Yi9nY3J5cHQvZ2NyeXB0Lmg+CisKKyNpbmNsdWRl ICJhcHBlbmRlZHNpZy5oIgorCithc24xX25vZGUgZ3J1Yl9nbnV0bHNfZ251dGxzX2FzbiA9IE5V TEw7Cithc24xX25vZGUgZ3J1Yl9nbnV0bHNfcGtpeF9hc24gPSBOVUxMOworCitleHRlcm4gY29u c3QgYXNuMV9zdGF0aWNfbm9kZSBncnViX2dudXRsc19hc24xX3RhYltdOworZXh0ZXJuIGNvbnN0 IGFzbjFfc3RhdGljX25vZGUgZ3J1Yl9wa2l4X2FzbjFfdGFiW107CisKKy8qCisgKiBSZWFkIGEg dmFsdWUgZnJvbSBhbiBBU04xIG5vZGUsIGFsbG9jYXRpbmcgbWVtb3J5IHRvIHN0b3JlIGl0Lgor ICogSXQgd2lsbCB3b3JrIGZvciBhbnl0aGluZyB3aGVyZSB0aGUgc2l6ZSBsaWJ0YXNuMSByZXR1 cm5zIGlzIHJpZ2h0OgorICogIC0gSW50ZWdlcnMKKyAqICAtIE9jdGV0IHN0cmluZ3MKKyAqICAt IERFUiBlbmNvZGluZyBvZiBvdGhlciBzdHJ1Y3R1cmVzCisgKiBJdCB3aWxsIF9ub3RfIHdvcmsg Zm9yIHRoaW5ncyB3aGVyZSBsaWJ0YXNuMSBzaXplIHJlcXVpcmVzIGFkanVzdG1lbnQ6CisgKiAg LSBTdHJpbmdzIHRoYXQgcmVxdWlyZSBhbiBleHRyYSBOVUxMIGJ5dGUgYXQgdGhlIGVuZAorICog IC0gQml0IHN0cmluZ3MgYmVjYXVzZSBsaWJ0YXNuMSByZXR1cm5zIHRoZSBsZW5ndGggaW4gYml0 cywgbm90IGJ5dGVzLgorICogSWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgYSBub24tTlVMTCB2YWx1 ZSwgdGhlIGNhbGxlciBtdXN0IGZyZWUgaXQuCisgKi8KK3ZvaWQgKgorZ3J1Yl9hc24xX2FsbG9j YXRlX2FuZF9yZWFkIChhc24xX25vZGUgbm9kZSwgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hh ciAqZnJpZW5kbHlfbmFtZSwgaW50ICpjb250ZW50X3NpemUpCit7CisgIGludCByZXN1bHQ7Cisg IGdydWJfdWludDhfdCAqdG1wc3RyID0gTlVMTDsKKyAgaW50IHRtcHN0cl9zaXplID0gMDsKKwor ICByZXN1bHQgPSBhc24xX3JlYWRfdmFsdWUgKG5vZGUsIG5hbWUsIE5VTEwsICZ0bXBzdHJfc2l6 ZSk7CisgIGlmIChyZXN1bHQgIT0gQVNOMV9NRU1fRVJST1IpCisgICAgeworICAgICAgZ3J1Yl9l cnJvciAoR1JVQl9FUlJfQkFEX0ZJTEVfVFlQRSwgInJlYWRpbmcgc2l6ZSBvZiAlcyBkaWQgbm90 IHJldHVybiBleHBlY3RlZCBzdGF0dXM6ICVzIiwKKyAgICAgICAgICAgICAgICAgIGZyaWVuZGx5 X25hbWUsIGFzbjFfc3RyZXJyb3IgKHJlc3VsdCkpIDsKKyAgICAgIHJldHVybiBOVUxMOworICAg IH0KKworICB0bXBzdHIgPSBncnViX21hbGxvYyAodG1wc3RyX3NpemUpOworICBpZiAodG1wc3Ry ID09IE5VTEwpCisgICAgeworICAgICAgZ3J1Yl9lcnJvciAoR1JVQl9FUlJfT1VUX09GX01FTU9S WSwgImNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgdG8gc3RvcmUgJXMiLAorICAgICAgICAgICAg ICAgICAgZnJpZW5kbHlfbmFtZSkgOworICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgIHJl c3VsdCA9IGFzbjFfcmVhZF92YWx1ZSAobm9kZSwgbmFtZSwgdG1wc3RyLCAmdG1wc3RyX3NpemUp OworICBpZiAocmVzdWx0ICE9IEFTTjFfU1VDQ0VTUykKKyAgICB7CisgICAgICBncnViX2ZyZWUg KHRtcHN0cik7CisgICAgICBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfRklMRV9UWVBFLCAiZXJy b3IgcmVhZGluZyAlczogJXMiLCBmcmllbmRseV9uYW1lLAorICAgICAgICAgICAgICAgICAgYXNu MV9zdHJlcnJvciAocmVzdWx0KSkgOworICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICpj b250ZW50X3NpemUgPSB0bXBzdHJfc2l6ZTsKKworICByZXR1cm4gdG1wc3RyOworfQorCitpbnQK K2FzbjFfaW5pdCAodm9pZCkKK3sKKyAgaW50IHJlczsKKworICByZXMgPSBhc24xX2FycmF5MnRy ZWUgKGdydWJfZ251dGxzX2FzbjFfdGFiLCAmZ3J1Yl9nbnV0bHNfZ251dGxzX2FzbiwgTlVMTCk7 CisgIGlmIChyZXMgIT0gQVNOMV9TVUNDRVNTKQorICAgIHJldHVybiByZXM7CisKKyAgcmVzID0g YXNuMV9hcnJheTJ0cmVlIChncnViX3BraXhfYXNuMV90YWIsICZncnViX2dudXRsc19wa2l4X2Fz biwgTlVMTCk7CisKKyAgcmV0dXJuIHJlczsKK30KLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpHcnViLWRl dmVsIG1haWxpbmcgbGlzdApHcnViLWRldmVsQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3Jn L21haWxtYW4vbGlzdGluZm8vZ3J1Yi1kZXZlbAo=