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 9A1FBCAC5B0 for ; Thu, 2 Oct 2025 16:53:46 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v4MW7-0004yN-NX; Thu, 02 Oct 2025 12:50:56 -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 1v4MVs-0004qn-3F for grub-devel@gnu.org; Thu, 02 Oct 2025 12:50:40 -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 1v4MV9-0004uF-A8 for grub-devel@gnu.org; Thu, 02 Oct 2025 12:50:38 -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 5928FkYF016910; Thu, 2 Oct 2025 16:49:50 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=b8snf8QDClcWk+1Lb HDcoFQNj/PZOAgLgx+kTjklq70=; b=dTB1X+FsjITBHudFv5bgGCNKRpK/n/hge pAi8Ll6KMXGKH55UzDlLTNZPusSKTr2ZctCgn4UOSsy0Gd3oL9FmmQtR+nbL8i+M MjbZYorkcUxxLN4kvxmyMMprGQ4GbYpaFVTSpITXgyo+uXeILc8eKy9iRHnAwelI FLm4wTSRjL9D/aFPqlPE9rbRJw3RhXZQT1cI9ECGl3AyDg6qIXMGJaeyfrGdIgES /jvnaS7c+caGRLh08h9b7J9xPtZLPJbRA3KXn5OC6LMDdO36c2bLyD8dkI3p2BhY vr2fzeKnfXG6gLiCbrLWYcCQmWD9ksiWzYjeoSRivb0oK3//bLRNw== Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49e5br5up4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Oct 2025 16:49:49 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 592E9ulv001577; Thu, 2 Oct 2025 16:49:48 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 49evfjempn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Oct 2025 16:49:48 +0000 Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 592GniNp18350470 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 2 Oct 2025 16:49:45 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D049620043; Thu, 2 Oct 2025 16:49:44 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id EAC9320040; Thu, 2 Oct 2025 16:49:41 +0000 (GMT) Received: from localhost.localdomain (unknown [9.124.211.77]) by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 2 Oct 2025 16:49:41 +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 v15 13/20] appended signatures: Create db and dbx lists Date: Thu, 2 Oct 2025 22:15:26 +0530 Message-ID: <20251002164535.65728-14-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251002164535.65728-1-sudhakar@linux.ibm.com> References: <20251002164535.65728-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTI2MDIxNCBTYWx0ZWRfXyoQVf4qmklIv AN49IlPIPf1lr74ERKAJUxx1CVKP6rfksML5Xsr7yC7jBJgZqgCJ9lOCQcyJTL1FdczX2FN12q6 w8X4WhOQQddbJutuvYKmITWhhJzcYAm3F4yVc014UtDnmNwB6jaGaQ5ex5gxxfw5ovvL4eCpK6a 8glzQwVs4CPhiqCfI6zD9mAgclwGCuqjgcF/AR71S7KAO5/ZPMi6M/gphmOYPVi106Php7YzKi+ c8n8IAwmN9fGnF2U8GEYn4QlkjYoQUPc6XyH+eQiep4nqnP2XHY0r/YBINmK/4eTmdCVnacdffP Cvo2M79v3vbaNLuj2Aok7lZcpoQ3wiJXL9+tEXgyeQ+K9iNlR7+ipFxAPVQ0Uv8eisG393my371 d7K0q/5YmUCzvUNr4eXPXF16A+chTw== X-Proofpoint-GUID: AF_w3llTQhbXyJDL-P8UBs5fn0aHabAq X-Authority-Analysis: v=2.4 cv=LLZrgZW9 c=1 sm=1 tr=0 ts=68dead2d cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=x6icFKpwvdMA:10 a=NEAV23lmAAAA:8 a=VnNF1IyMAAAA:8 a=yPCof4ZbAAAA:8 a=sCGIt9ieJHR2VkqI4G0A:9 a=cPQSjfK2_nFv0Q5t_7PE:22 X-Proofpoint-ORIG-GUID: AF_w3llTQhbXyJDL-P8UBs5fn0aHabAq 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-10-02_06,2025-10-02_03,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0 bulkscore=0 malwarescore=0 suspectscore=0 clxscore=1015 priorityscore=1501 phishscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2509150000 definitions=main-2509260214 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_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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 SWYgc2VjdXJlIGJvb3QgaXMgZW5hYmxlZCB3aXRoIHN0YXRpYyBrZXkgbWFuYWdlbWVudCBtb2Rl LCB0aGUgdHJ1c3RlZApjZXJ0aWZpY2F0ZXMgd2lsbCBiZSBleHRyYWN0ZWQgZnJvbSB0aGUgR1JV QiBFTEYgTm90ZSBhbmQgYWRkZWQgdG8gZGIgbGlzdC4KCklmIHNlY3VyZSBib290IGlzIGVuYWJs ZWQgd2l0aCBkeW5hbWljIGtleSBtYW5hZ2VtZW50IG1vZGUsIHRoZSB0cnVzdGVkCmNlcnRpZmlj YXRlcyBhbmQgY2VydGlmaWNhdGUvYmluYXJ5IGhhc2ggd2lsbCBiZSBleHRyYWN0ZWQgZnJvbSB0 aGUgUEtTCmFuZCBhZGRlZCB0byBkYiBsaXN0LiBUaGUgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZXMs IGNlcnRpZmljYXRlL2JpbmFyeSBoYXNoCmFyZSByZWFkIGZyb20gdGhlIFBLUyBhbmQgYWRkZWQg dG8gZGJ4IGxpc3QuIEJvdGggZGJ4IGFuZCBkYiBsaXN0cyB1c2FnZSBpcwphZGRlZCBieSBhIHN1 YnNlcXVlbnQgcGF0Y2guCgpOb3RlOgoKSWYgdGhlIGNlcnRpZmljYXRlIG9yIHRoZSBjZXJ0aWZp Y2F0ZSBoYXNoIGV4aXN0cyBpbiB0aGUgZGJ4IGxpc3QsIHRoZW4gZG8gbm90CmFkZCB0aGF0IGNl cnRpZmljYXRlL2NlcnRpZmljYXRlIGhhc2ggdG8gdGhlIGRiIGxpc3QuCgpTaWduZWQtb2ZmLWJ5 OiBTdWRoYWthciBLdXBwdXNhbXkgPHN1ZGhha2FyQGxpbnV4LmlibS5jb20+ClJldmlld2VkLWJ5 OiBBdm5pc2ggQ2hvdWhhbiA8YXZuaXNoQGxpbnV4LmlibS5jb20+ClJldmlld2VkLWJ5OiBEYW5p ZWwgS2lwZXIgPGRhbmllbC5raXBlckBvcmFjbGUuY29tPgotLS0KIGdydWItY29yZS9jb21tYW5k cy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5jIHwgNDA4ICsrKysrKysrKysrKysrKysrKy0KIGlu Y2x1ZGUvZ3J1Yi9lZmkvcGtzLmggICAgICAgICAgICAgICAgICAgICAgIHwgMTEyICsrKysrCiBp bmNsdWRlL2dydWIvdHlwZXMuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiAzIGZp bGVzIGNoYW5nZWQsIDUwNyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBpbmNsdWRlL2dydWIvZWZpL3Brcy5oCgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3Jl L2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmMgYi9ncnViLWNvcmUvY29tbWFuZHMv YXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuYwppbmRleCBjYTU0YzkwZmEuLmJmYTVmMzMyZSAxMDA2 NDQKLS0tIGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmMKKysr IGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmMKQEAgLTM0LDYg KzM0LDcgQEAKICNpbmNsdWRlIDxncnViL2Vudi5oPgogI2luY2x1ZGUgPGdydWIvbG9ja2Rvd24u aD4KICNpbmNsdWRlIDxncnViL3Bvd2VycGMvaWVlZTEyNzUvcGxhdGZvcm1fa2V5c3RvcmUuaD4K KyNpbmNsdWRlIDxncnViL2VmaS9wa3MuaD4KIAogI2luY2x1ZGUgImFwcGVuZGVkc2lnLmgiCiAK QEAgLTQ2LDYgKzQ3LDExIEBAIEdSVUJfTU9EX0xJQ0VOU0UgKCJHUEx2MysiKTsKICNkZWZpbmUg U0lHX01BR0lDICAgICAgICAgICJ+TW9kdWxlIHNpZ25hdHVyZSBhcHBlbmRlZH5cbiIKICNkZWZp bmUgU0lHX01BR0lDX1NJWkUgICAgICgoc2l6ZW9mKFNJR19NQUdJQykgLSAxKSkKIAorLyogU0hB MjU2LCBTSEEzODQgYW5kIFNIQTUxMiBoYXNoIHNpemVzLiAqLworI2RlZmluZSBTSEEyNTZfSEFT SF9TSVpFICAgMzIKKyNkZWZpbmUgU0hBMzg0X0hBU0hfU0laRSAgIDQ4CisjZGVmaW5lIFNIQTUx Ml9IQVNIX1NJWkUgICA2NAorCiAvKgogICogVGhpcyBzdHJ1Y3R1cmUgaXMgZXh0cmFjdGVkIGZy b20gc2NyaXB0cy9zaWduLWZpbGUuYyBpbiB0aGUgbGludXgga2VybmVsCiAgKiBzb3VyY2UuIEl0 IHdhcyBsaWNlbnNlZCBhcyBMR1BMdjIuMSssIHdoaWNoIGlzIEdQTHYzKyBjb21wYXRpYmxlLgpA QCAtNzksMTEgKzg1LDIzIEBAIHN0cnVjdCBzYl9kYXRhYmFzZQogewogICBncnViX3g1MDlfY2Vy dF90ICpjZXJ0czsgICAgLyogQ2VydGlmaWNhdGVzLiAqLwogICBncnViX3VpbnQzMl90IGNlcnRf ZW50cmllczsgLyogTnVtYmVyIG9mIGNlcnRpZmljYXRlcy4gKi8KKyAgZ3J1Yl91aW50OF90ICoq aGFzaGVzOyAgICAgIC8qIENlcnRpZmljYXRlL2JpbmFyeSBoYXNoZXMuICovCisgIGdydWJfc2l6 ZV90ICpoYXNoX3NpemVzOyAgICAvKiBTaXplcyBvZiBjZXJ0aWZpY2F0ZS9iaW5hcnkgaGFzaGVz LiAqLworICBncnViX3VpbnQzMl90IGhhc2hfZW50cmllczsgLyogTnVtYmVyIG9mIGNlcnRpZmlj YXRlL2JpbmFyeSBoYXNoZXMuICovCisgIGJvb2wgaXNfZGI7ICAgICAgICAgICAgICAgICAvKiBG bGFnIHRvIGluZGljYXRlIHRoZSBkYi9kYnggbGlzdC4gKi8KIH07CiB0eXBlZGVmIHN0cnVjdCBz Yl9kYXRhYmFzZSBzYl9kYXRhYmFzZV90OwogCiAvKiBUaGUgZGIgbGlzdCBpcyB1c2VkIHRvIHZh bGlkYXRlIGFwcGVuZGVkIHNpZ25hdHVyZXMuICovCi1zdGF0aWMgc2JfZGF0YWJhc2VfdCBkYiA9 IHsuY2VydHMgPSBOVUxMLCAuY2VydF9lbnRyaWVzID0gMH07CitzdGF0aWMgc2JfZGF0YWJhc2Vf dCBkYiA9IHsuY2VydHMgPSBOVUxMLCAuY2VydF9lbnRyaWVzID0gMCwgLmhhc2hlcyA9IE5VTEws CisgICAgICAgICAgICAgICAgICAgICAgICAgICAuaGFzaF9zaXplcyA9IE5VTEwsIC5oYXNoX2Vu dHJpZXMgPSAwLCAuaXNfZGIgPSB0cnVlfTsKKy8qCisgKiBUaGUgZGJ4IGxpc3QgaXMgdXNlZCB0 byBlbnN1cmUgdGhhdCB0aGUgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZXMgb3IgR1JVQgorICogbW9k dWxlcy9rZXJuZWwgYmluYXJpZXMgYXJlIHJlamVjdGVkIGR1cmluZyBhcHBlbmRlZCBzaWduYXR1 cmVzL2hhc2hlcworICogdmFsaWRhdGlvbi4KKyAqLworc3RhdGljIHNiX2RhdGFiYXNlX3QgZGJ4 ID0gey5jZXJ0cyA9IE5VTEwsIC5jZXJ0X2VudHJpZXMgPSAwLCAuaGFzaGVzID0gTlVMTCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAuaGFzaF9zaXplcyA9IE5VTEwsIC5oYXNoX2VudHJp ZXMgPSAwLCAuaXNfZGIgPSBmYWxzZX07CiAKIC8qCiAgKiBTaWduYXR1cmUgdmVyaWZpY2F0aW9u IGZsYWcgKGNoZWNrX3NpZ3MpLgpAQCAtMTE4LDYgKzEzNiwxNjkgQEAgc3RhdGljIHN0cnVjdCBn cnViX2ZzIHBzZXVkb19mcyA9IHsKICAgLmZzX3JlYWQgPSBwc2V1ZG9fcmVhZAogfTsKIAorLyoK KyAqIEdVSUQgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBoYXNoaW5nIGZ1bmN0aW9uIGFu ZCBnZW5lcmF0ZSB0aGUgaGFzaCB1c2luZworICogZGV0ZXJtaW5lZCBoYXNoaW5nIGZ1bmN0aW9u LgorICovCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ2V0X2hhc2ggKGNvbnN0IGdydWJfcGFja2VkX2d1 aWRfdCAqZ3VpZCwgY29uc3QgZ3J1Yl91aW50OF90ICpkYXRhLCBjb25zdCBncnViX3NpemVfdCBk YXRhX3NpemUsCisgICAgICAgICAgZ3J1Yl91aW50OF90ICpoYXNoLCBncnViX3NpemVfdCAqaGFz aF9zaXplKQoreworICBnY3J5X21kX3NwZWNfdCAqaGFzaF9mdW5jID0gTlVMTDsKKworICBpZiAo Z3VpZCA9PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0ZfUkFO R0UsICJHVUlEIGlzIG5vdCBhdmFpbGFibGUiKTsKKworICBpZiAoZ3J1Yl9tZW1jbXAgKGd1aWQs ICZHUlVCX1BLU19DRVJUX1NIQTI1Nl9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUpID09IDAg fHwKKyAgICAgIGdydWJfbWVtY21wIChndWlkLCAmR1JVQl9QS1NfQ0VSVF9YNTA5X1NIQTI1Nl9H VUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUpID09IDApCisgICAgaGFzaF9mdW5jID0gJl9nY3J5 X2RpZ2VzdF9zcGVjX3NoYTI1NjsKKyAgZWxzZSBpZiAoZ3J1Yl9tZW1jbXAgKGd1aWQsICZHUlVC X1BLU19DRVJUX1NIQTM4NF9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUpID09IDAgfHwKKyAg ICAgICAgICAgZ3J1Yl9tZW1jbXAgKGd1aWQsICZHUlVCX1BLU19DRVJUX1g1MDlfU0hBMzg0X0dV SUQsIEdSVUJfUEFDS0VEX0dVSURfU0laRSkgPT0gMCkKKyAgICBoYXNoX2Z1bmMgPSAmX2djcnlf ZGlnZXN0X3NwZWNfc2hhMzg0OworICBlbHNlIGlmIChncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJf UEtTX0NFUlRfU0hBNTEyX0dVSUQsIEdSVUJfUEFDS0VEX0dVSURfU0laRSkgPT0gMCB8fAorICAg ICAgICAgICBncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJfUEtTX0NFUlRfWDUwOV9TSEE1MTJfR1VJ RCwgR1JVQl9QQUNLRURfR1VJRF9TSVpFKSA9PSAwKQorICAgIGhhc2hfZnVuYyA9ICZfZ2NyeV9k aWdlc3Rfc3BlY19zaGE1MTI7CisgIGVsc2UKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9F UlJfT1VUX09GX1JBTkdFLCAidW5zdXBwb3J0ZWQgR1VJRCBoYXNoIik7CisKKyAgZ3J1Yl9jcnlw dG9faGFzaCAoaGFzaF9mdW5jLCBoYXNoLCBkYXRhLCBkYXRhX3NpemUpOworICAqaGFzaF9zaXpl ID0gaGFzaF9mdW5jLT5tZGxlbjsKKworICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKK30KKworc3Rh dGljIGdydWJfZXJyX3QKK2dlbmVyYXRlX2NlcnRfaGFzaCAoY29uc3QgZ3J1Yl9zaXplX3QgY2Vy dF9oYXNoX3NpemUsIGNvbnN0IGdydWJfdWludDhfdCAqZGF0YSwKKyAgICAgICAgICAgICAgICAg ICAgY29uc3QgZ3J1Yl9zaXplX3QgZGF0YV9zaXplLCBncnViX3VpbnQ4X3QgKmhhc2gsIGdydWJf c2l6ZV90ICpoYXNoX3NpemUpCit7CisgIGdydWJfcGFja2VkX2d1aWRfdCBndWlkID0geyAwIH07 CisKKyAgLyogc3VwcG9ydCBTSEEyNTYsIFNIQTM4NCBhbmQgU0hBNTEyIGZvciBjZXJ0aWZpY2F0 ZSBoYXNoICovCisgIGlmIChjZXJ0X2hhc2hfc2l6ZSA9PSBTSEEyNTZfSEFTSF9TSVpFKQorICAg IGdydWJfbWVtY3B5ICgmZ3VpZCwgJkdSVUJfUEtTX0NFUlRfWDUwOV9TSEEyNTZfR1VJRCwgR1JV Ql9QQUNLRURfR1VJRF9TSVpFKTsKKyAgZWxzZSBpZiAoY2VydF9oYXNoX3NpemUgPT0gU0hBMzg0 X0hBU0hfU0laRSkKKyAgICBncnViX21lbWNweSAoJmd1aWQsICZHUlVCX1BLU19DRVJUX1g1MDlf U0hBMzg0X0dVSUQsIEdSVUJfUEFDS0VEX0dVSURfU0laRSk7CisgIGVsc2UgaWYgKGNlcnRfaGFz aF9zaXplID09IFNIQTUxMl9IQVNIX1NJWkUpCisgICAgZ3J1Yl9tZW1jcHkgKCZndWlkLCAmR1JV Ql9QS1NfQ0VSVF9YNTA5X1NIQTUxMl9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUpOworICBl bHNlCisgICAgeworICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLCAidW5zdXBwb3J0 ZWQgaGFzaCB0eXBlICglIiBQUkl1R1JVQl9TSVpFICIpIGFuZCAiCisgICAgICAgICAgICAgICAg ICAgICJza2lwcGVkXG4iLCBjZXJ0X2hhc2hfc2l6ZSk7CisgICAgICByZXR1cm4gR1JVQl9FUlJf VU5LTk9XTl9DT01NQU5EOworICAgIH0KKworICByZXR1cm4gZ2V0X2hhc2ggKCZndWlkLCBkYXRh LCBkYXRhX3NpemUsIGhhc2gsIGhhc2hfc2l6ZSk7Cit9CisKKy8qIENoZWNrIHRoZSBoYXNoIHBy ZXNlbmNlIGluIHRoZSBkYi9kYnggbGlzdC4gKi8KK3N0YXRpYyBib29sCitjaGVja19oYXNoX3By ZXNlbmNlIChncnViX3VpbnQ4X3QgKmNvbnN0IGhhc2gsIGNvbnN0IGdydWJfc2l6ZV90IGhhc2hf c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNiX2RhdGFiYXNlX3QgKnNiX2RhdGFi YXNlKQoreworICBncnViX3VpbnQzMl90IGk7CisKKyAgZm9yIChpID0gMDsgaSA8IHNiX2RhdGFi YXNlLT5oYXNoX2VudHJpZXM7IGkrKykKKyAgICB7CisgICAgICBpZiAoc2JfZGF0YWJhc2UtPmhh c2hlc1tpXSA9PSBOVUxMKQorICAgICAgICBjb250aW51ZTsKKworICAgICAgaWYgKGhhc2hfc2l6 ZSA9PSBzYl9kYXRhYmFzZS0+aGFzaF9zaXplc1tpXSAmJgorICAgICAgICAgIGdydWJfbWVtY21w IChzYl9kYXRhYmFzZS0+aGFzaGVzW2ldLCBoYXNoLCBoYXNoX3NpemUpID09IDApCisgICAgICAg IHJldHVybiB0cnVlOworICAgIH0KKworICByZXR1cm4gZmFsc2U7Cit9CisKKy8qIEFkZCB0aGUg Y2VydGlmaWNhdGUvYmluYXJ5IGhhc2ggaW50byB0aGUgZGIvZGJ4IGxpc3QuICovCitzdGF0aWMg Z3J1Yl9lcnJfdAorYWRkX2hhc2ggKGdydWJfdWludDhfdCAqY29uc3QgZGF0YSwgY29uc3QgZ3J1 Yl9zaXplX3QgZGF0YV9zaXplLCBzYl9kYXRhYmFzZV90ICpzYl9kYXRhYmFzZSkKK3sKKyAgZ3J1 Yl91aW50OF90ICoqaGFzaGVzOworICBncnViX3NpemVfdCAqaGFzaF9zaXplczsKKworICBpZiAo ZGF0YSA9PSBOVUxMIHx8IGRhdGFfc2l6ZSA9PSAwKQorICAgIHJldHVybiBncnViX2Vycm9yIChH UlVCX0VSUl9PVVRfT0ZfUkFOR0UsICJjZXJ0aWZpY2F0ZS9iaW5hcnktaGFzaCBkYXRhIG9yIHNp emUgaXMgbm90IGF2YWlsYWJsZSIpOworCisgIGlmIChzYl9kYXRhYmFzZS0+aXNfZGIgPT0gdHJ1 ZSkKKyAgICB7CisgICAgICBpZiAoY2hlY2tfaGFzaF9wcmVzZW5jZSAoZGF0YSwgZGF0YV9zaXpl LCAmZGJ4KSA9PSB0cnVlKQorICAgICAgICB7CisgICAgICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBw ZW5kZWRzaWciLAorICAgICAgICAgICAgICAgICAgICAgICAgImNhbm5vdCBhZGQgYSBoYXNoICgl MDJ4JTAyeCUwMnglMDJ4KSwgYXMgaXQgaXMgcHJlc2VudCBpbiB0aGUgZGJ4IGxpc3RcbiIsCisg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdLCBkYXRhWzNd KTsKKyAgICAgICAgICByZXR1cm4gR1JVQl9FUlJfQUNDRVNTX0RFTklFRDsKKyAgICAgICAgfQor ICAgIH0KKworICBpZiAoY2hlY2tfaGFzaF9wcmVzZW5jZSAoZGF0YSwgZGF0YV9zaXplLCBzYl9k YXRhYmFzZSkgPT0gdHJ1ZSkKKyAgICB7CisgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNp ZyIsCisgICAgICAgICAgICAgICAgICAgICJjYW5ub3QgYWRkIGEgaGFzaCAoJTAyeCUwMnglMDJ4 JTAyeCksIGFzIGl0IGlzIHByZXNlbnQgaW4gdGhlICVzIGxpc3RcbiIsCisgICAgICAgICAgICAg ICAgICAgIGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0sIGRhdGFbM10sICgoc2JfZGF0YWJhc2Ut PmlzX2RiID09IHRydWUpID8gImRiIiA6ICJkYngiKSk7CisgICAgICByZXR1cm4gR1JVQl9FUlJf RVhJU1RTOworICAgIH0KKworICBoYXNoZXMgPSBncnViX3JlYWxsb2MgKHNiX2RhdGFiYXNlLT5o YXNoZXMsIHNpemVvZiAoZ3J1Yl91aW50OF90ICopICogKHNiX2RhdGFiYXNlLT5oYXNoX2VudHJp ZXMgKyAxKSk7CisgIGlmIChoYXNoZXMgPT0gTlVMTCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAo R1JVQl9FUlJfT1VUX09GX01FTU9SWSwgIm91dCBvZiBtZW1vcnkiKTsKKworICBoYXNoX3NpemVz ID0gZ3J1Yl9yZWFsbG9jIChzYl9kYXRhYmFzZS0+aGFzaF9zaXplcywgc2l6ZW9mIChncnViX3Np emVfdCkgKiAoc2JfZGF0YWJhc2UtPmhhc2hfZW50cmllcyArIDEpKTsKKyAgaWYgKGhhc2hfc2l6 ZXMgPT0gTlVMTCkKKyAgICB7CisgICAgICAvKiBBbGxvY2F0ZWQgbWVtb3J5IHdpbGwgYmUgZnJl ZWQgYnkgZnJlZV9kYl9saXN0KCkvZnJlZV9kYnhfbGlzdCgpLiAqLworICAgICAgaGFzaGVzW3Ni X2RhdGFiYXNlLT5oYXNoX2VudHJpZXNdID0gTlVMTDsKKyAgICAgIHNiX2RhdGFiYXNlLT5oYXNo ZXMgPSBoYXNoZXM7CisgICAgICBzYl9kYXRhYmFzZS0+aGFzaF9lbnRyaWVzKys7CisKKyAgICAg IHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0ZfTUVNT1JZLCAib3V0IG9mIG1lbW9y eSIpOworICAgIH0KKworICBoYXNoZXNbc2JfZGF0YWJhc2UtPmhhc2hfZW50cmllc10gPSBncnVi X21hbGxvYyAoZGF0YV9zaXplKTsKKyAgaWYgKGhhc2hlc1tzYl9kYXRhYmFzZS0+aGFzaF9lbnRy aWVzXSA9PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0ZfTUVN T1JZLCAib3V0IG9mIG1lbW9yeSIpOworCisgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwK KyAgICAgICAgICAgICAgICAiYWRkZWQgdGhlIGhhc2ggJTAyeCUwMnglMDJ4JTAyeC4uLiB3aXRo IHNpemUgb2YgJSIgUFJJdUdSVUJfU0laRSAiIHRvIHRoZSAlcyBsaXN0XG4iLAorICAgICAgICAg ICAgICAgIGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0sIGRhdGFbM10sIGRhdGFfc2l6ZSwKKyAg ICAgICAgICAgICAgICAoKHNiX2RhdGFiYXNlLT5pc19kYiA9PSB0cnVlKSA/ICJkYiIgOiAiZGJ4 IikpOworCisgIGdydWJfbWVtY3B5IChoYXNoZXNbc2JfZGF0YWJhc2UtPmhhc2hfZW50cmllc10s IGRhdGEsIGRhdGFfc2l6ZSk7CisgIGhhc2hfc2l6ZXNbc2JfZGF0YWJhc2UtPmhhc2hfZW50cmll c10gPSBkYXRhX3NpemU7CisgIHNiX2RhdGFiYXNlLT5oYXNoX3NpemVzID0gaGFzaF9zaXplczsK KyAgc2JfZGF0YWJhc2UtPmhhc2hlcyA9IGhhc2hlczsKKyAgc2JfZGF0YWJhc2UtPmhhc2hfZW50 cmllcysrOworCisgIHJldHVybiBHUlVCX0VSUl9OT05FOworfQorCitzdGF0aWMgYm9vbAoraXNf aGFzaCAoY29uc3QgZ3J1Yl9wYWNrZWRfZ3VpZF90ICpndWlkKQoreworICAvKiBHVUlEIHR5cGUg b2YgdGhlIGJpbmFyeSBoYXNoLiAqLworICBpZiAoZ3J1Yl9tZW1jbXAgKGd1aWQsICZHUlVCX1BL U19DRVJUX1NIQTI1Nl9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUpID09IDAgfHwKKyAgICAg IGdydWJfbWVtY21wIChndWlkLCAmR1JVQl9QS1NfQ0VSVF9TSEEzODRfR1VJRCwgR1JVQl9QQUNL RURfR1VJRF9TSVpFKSA9PSAwIHx8CisgICAgICBncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJfUEtT X0NFUlRfU0hBNTEyX0dVSUQsIEdSVUJfUEFDS0VEX0dVSURfU0laRSkgPT0gMCkKKyAgICByZXR1 cm4gdHJ1ZTsKKworICAvKiBHVUlEIHR5cGUgb2YgdGhlIGNlcnRpZmljYXRlIGhhc2guICovCisg IGlmIChncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJfUEtTX0NFUlRfWDUwOV9TSEEyNTZfR1VJRCwg R1JVQl9QQUNLRURfR1VJRF9TSVpFKSA9PSAwIHx8CisgICAgICBncnViX21lbWNtcCAoZ3VpZCwg JkdSVUJfUEtTX0NFUlRfWDUwOV9TSEEzODRfR1VJRCwgR1JVQl9QQUNLRURfR1VJRF9TSVpFKSA9 PSAwIHx8CisgICAgICBncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJfUEtTX0NFUlRfWDUwOV9TSEE1 MTJfR1VJRCwgR1JVQl9QQUNLRURfR1VJRF9TSVpFKSA9PSAwKQorICAgIHJldHVybiB0cnVlOwor CisgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wKK2lzX3g1MDkgKGNvbnN0IGdydWJf cGFja2VkX2d1aWRfdCAqZ3VpZCkKK3sKKyAgaWYgKGdydWJfbWVtY21wIChndWlkLCAmR1JVQl9Q S1NfQ0VSVF9YNTA5X0dVSUQsIEdSVUJfUEFDS0VEX0dVSURfU0laRSkgPT0gMCkKKyAgICByZXR1 cm4gdHJ1ZTsKKworICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBib29sCiBpc19jZXJ0X21h dGNoIChjb25zdCBncnViX3g1MDlfY2VydF90ICpjZXJ0MSwgY29uc3QgZ3J1Yl94NTA5X2NlcnRf dCAqY2VydDIpCiB7CkBAIC0xMzYsNyArMzE3LDMzIEBAIGlzX2NlcnRfbWF0Y2ggKGNvbnN0IGdy dWJfeDUwOV9jZXJ0X3QgKmNlcnQxLCBjb25zdCBncnViX3g1MDlfY2VydF90ICpjZXJ0MikKICAg cmV0dXJuIGZhbHNlOwogfQogCi0vKiBDaGVjayB0aGUgY2VydGlmaWNhdGUgcHJlc2VuY2UgaW4g dGhlIGRiIGxpc3QuICovCisvKiBDaGVjayB0aGUgY2VydGlmaWNhdGUgaGFzaCBwcmVzZW5jZSBp biB0aGUgZGJ4IGxpc3QuICovCitzdGF0aWMgYm9vbAoraXNfY2VydF9oYXNoX3ByZXNlbnRfaW5f ZGJ4IChjb25zdCBncnViX3VpbnQ4X3QgKmRhdGEsIGNvbnN0IGdydWJfc2l6ZV90IGRhdGFfc2l6 ZSkKK3sKKyAgZ3J1Yl9lcnJfdCByYzsKKyAgZ3J1Yl91aW50MzJfdCBpOworICBncnViX3NpemVf dCBjZXJ0X2hhc2hfc2l6ZSA9IDA7CisgIGdydWJfdWludDhfdCBjZXJ0X2hhc2hbR1JVQl9NQVhf SEFTSF9MRU5dID0geyAwIH07CisKKyAgZm9yIChpID0gMDsgaSA8IGRieC5oYXNoX2VudHJpZXM7 IGkrKykKKyAgICB7CisgICAgICBpZiAoZGJ4Lmhhc2hlc1tpXSA9PSBOVUxMKQorICAgICAgICBj b250aW51ZTsKKworICAgICAgcmMgPSBnZW5lcmF0ZV9jZXJ0X2hhc2ggKGRieC5oYXNoX3NpemVz W2ldLCBkYXRhLCBkYXRhX3NpemUsIGNlcnRfaGFzaCwgJmNlcnRfaGFzaF9zaXplKTsKKyAgICAg IGlmIChyYyAhPSBHUlVCX0VSUl9OT05FKQorICAgICAgICBjb250aW51ZTsKKworICAgICAgaWYg KGNlcnRfaGFzaF9zaXplID09IGRieC5oYXNoX3NpemVzW2ldICYmCisgICAgICAgICAgZ3J1Yl9t ZW1jbXAgKGRieC5oYXNoZXNbaV0sIGNlcnRfaGFzaCwgY2VydF9oYXNoX3NpemUpID09IDApCisg ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICByZXR1cm4gZmFsc2U7Cit9CisKKy8qIENo ZWNrIHRoZSBjZXJ0aWZpY2F0ZSBwcmVzZW5jZSBpbiB0aGUgZGIvZGJ4IGxpc3QuICovCiBzdGF0 aWMgYm9vbAogY2hlY2tfY2VydF9wcmVzZW5jZSAoY29uc3QgZ3J1Yl94NTA5X2NlcnRfdCAqY2Vy dF9pbiwgY29uc3Qgc2JfZGF0YWJhc2VfdCAqc2JfZGF0YWJhc2UpCiB7CkBAIC0xNDksNyArMzU2 LDExIEBAIGNoZWNrX2NlcnRfcHJlc2VuY2UgKGNvbnN0IGdydWJfeDUwOV9jZXJ0X3QgKmNlcnRf aW4sIGNvbnN0IHNiX2RhdGFiYXNlX3QgKnNiX2RhCiAgIHJldHVybiBmYWxzZTsKIH0KIAotLyog QWRkIHRoZSBjZXJ0aWZpY2F0ZSBpbnRvIHRoZSBkYiBsaXN0ICovCisvKgorICogQWRkIHRoZSBj ZXJ0aWZpY2F0ZSBpbnRvIHRoZSBkYiBsaXN0IGlmIGl0IGlzIG5vdCBwcmVzZW50IGluIHRoZSBk YnggYW5kIGRiCisgKiBsaXN0IHdoZW4gaXNfZGIgaXMgdHJ1ZS4gQWRkIHRoZSBjZXJ0aWZpY2F0 ZSBpbnRvIHRoZSBkYnggbGlzdCB3aGVuIGlzX2RiIGlzCisgKiBmYWxzZS4KKyAqLwogc3RhdGlj IGdydWJfZXJyX3QKIGFkZF9jZXJ0aWZpY2F0ZSAoY29uc3QgZ3J1Yl91aW50OF90ICpkYXRhLCBj b25zdCBncnViX3NpemVfdCBkYXRhX3NpemUsCiAgICAgICAgICAgICAgICAgIHNiX2RhdGFiYXNl X3QgKnNiX2RhdGFiYXNlKQpAQCAtMTY3LDMwICszNzgsNTQgQEAgYWRkX2NlcnRpZmljYXRlIChj b25zdCBncnViX3VpbnQ4X3QgKmRhdGEsIGNvbnN0IGdydWJfc2l6ZV90IGRhdGFfc2l6ZSwKICAg cmMgPSBncnViX3g1MDlfY2VydF9wYXJzZSAoZGF0YSwgZGF0YV9zaXplLCBjZXJ0KTsKICAgaWYg KHJjICE9IEdSVUJfRVJSX05PTkUpCiAgICAgewotICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5k ZWRzaWciLCAiY2Fubm90IGFkZCBhIGNlcnRpZmljYXRlIENOPSclcycgdG8gdGhlIGRiIGxpc3Rc biIsCi0gICAgICAgICAgICAgICAgICAgIGNlcnQtPnN1YmplY3QpOworICAgICAgZ3J1Yl9kcHJp bnRmICgiYXBwZW5kZWRzaWciLCAiY2Fubm90IGFkZCBhIGNlcnRpZmljYXRlIENOPSclcycgdG8g dGhlICVzIGxpc3RcbiIsCisgICAgICAgICAgICAgICAgICAgIGNlcnQtPnN1YmplY3QsIChzYl9k YXRhYmFzZS0+aXNfZGIgPT0gdHJ1ZSkgPyAiZGIiIDogImRieCIpOwogICAgICAgZ3J1Yl9mcmVl IChjZXJ0KTsKICAgICAgIHJldHVybiByYzsKICAgICB9CiAKKyAgLyoKKyAgICogT25seSBjaGVj a3MgdGhlIGNlcnRpZmljYXRlIGFnYWluc3QgZGJ4IGlmIGlzX2RiIGlzIHRydWUgd2hlbiBkeW5h bWljIGtleQorICAgKiBtYW5hZ2VtZW50IGlzIGVuYWJsZWQuCisgICAqLworICBpZiAoYXBwZW5k X2tleV9tZ210ID09IHRydWUpCisgICAgeworICAgICAgaWYgKHNiX2RhdGFiYXNlLT5pc19kYiA9 PSB0cnVlKQorICAgICAgICB7CisgICAgICAgICAgaWYgKGlzX2NlcnRfaGFzaF9wcmVzZW50X2lu X2RieCAoZGF0YSwgZGF0YV9zaXplKSA9PSB0cnVlIHx8CisgICAgICAgICAgICAgIGNoZWNrX2Nl cnRfcHJlc2VuY2UgKGNlcnQsICZkYngpID09IHRydWUpCisgICAgICAgICAgICB7CisgICAgICAg ICAgICAgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiY2Fubm90IGFkZCBhIGNlcnRpZmljYXRlIENOPSclcycsIGFzIGl0IGlzIHByZXNl bnQgaW4gdGhlIGRieCBsaXN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0LT5z dWJqZWN0KTsKKyAgICAgICAgICAgICAgcmMgPSBHUlVCX0VSUl9BQ0NFU1NfREVOSUVEOworICAg ICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisK ICAgaWYgKGNoZWNrX2NlcnRfcHJlc2VuY2UgKGNlcnQsIHNiX2RhdGFiYXNlKSA9PSB0cnVlKQog ICAgIHsKICAgICAgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwKLSAgICAgICAgICAgICAg ICAgICAgImNhbm5vdCBhZGQgYSBjZXJ0aWZpY2F0ZSBDTj0nJXMnLCBhcyBpdCBpcyBwcmVzZW50 IGluIHRoZSBkYiBsaXN0IiwKLSAgICAgICAgICAgICAgICAgICAgY2VydC0+c3ViamVjdCk7Ci0g ICAgICBncnViX3g1MDlfY2VydF9yZWxlYXNlIChjZXJ0KTsKLSAgICAgIGdydWJfZnJlZSAoY2Vy dCk7Ci0KLSAgICAgIHJldHVybiBHUlVCX0VSUl9FWElTVFM7CisgICAgICAgICAgICAgICAgICAg ICJjYW5ub3QgYWRkIGEgY2VydGlmaWNhdGUgQ049JyVzJywgYXMgaXQgaXMgcHJlc2VudCBpbiB0 aGUgJXMgbGlzdCIsCisgICAgICAgICAgICAgICAgICAgIGNlcnQtPnN1YmplY3QsICgoc2JfZGF0 YWJhc2UtPmlzX2RiID09IHRydWUpID8gImRiIiA6ICJkYngiKSk7CisgICAgICByYyA9IEdSVUJf RVJSX0VYSVNUUzsKKyAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgZ3J1Yl9kcHJpbnRmICgi YXBwZW5kZWRzaWciLCAiYWRkZWQgYSBjZXJ0aWZpY2F0ZSBDTj0nJXMnIHRvIHRoZSBkYiBsaXN0 XG4iLAotICAgICAgICAgICAgICAgIGNlcnQtPnN1YmplY3QpOworICBncnViX2RwcmludGYgKCJh cHBlbmRlZHNpZyIsICJhZGRlZCBhIGNlcnRpZmljYXRlIENOPSclcycgdG8gdGhlICVzIGxpc3Rc biIsCisgICAgICAgICAgICAgICAgY2VydC0+c3ViamVjdCwgKChzYl9kYXRhYmFzZS0+aXNfZGIg PT0gdHJ1ZSkgPyAiZGIiIDogImRieCIpKTsKIAogICBjZXJ0LT5uZXh0ID0gc2JfZGF0YWJhc2Ut PmNlcnRzOwogICBzYl9kYXRhYmFzZS0+Y2VydHMgPSBjZXJ0OwogICBzYl9kYXRhYmFzZS0+Y2Vy dF9lbnRyaWVzKys7CiAKKyAgcmV0dXJuIHJjOworCisgZmFpbDoKKyAgZ3J1Yl94NTA5X2NlcnRf cmVsZWFzZSAoY2VydCk7CisgIGdydWJfZnJlZSAoY2VydCk7CisKICAgcmV0dXJuIHJjOwogfQog CkBAIC0zODIsNiArNjE3LDY4IEBAIGdydWJfdmVyaWZ5X2FwcGVuZGVkX3NpZ25hdHVyZSAoY29u c3QgZ3J1Yl91aW50OF90ICpidWYsIGdydWJfc2l6ZV90IGJ1ZnNpemUpCiAgIHJldHVybiBlcnI7 CiB9CiAKKy8qIEFkZCB0aGUgWC41MDkgY2VydGlmaWNhdGVzL2JpbmFyeSBoYXNoIHRvIHRoZSBk YiBsaXN0IGZyb20gUEtTLiAqLworc3RhdGljIGdydWJfZXJyX3QKK2xvYWRfcGtzMmRiICh2b2lk KQoreworICBncnViX2Vycl90IHJjOworICBncnViX3VpbnQzMl90IGk7CisKKyAgZm9yIChpID0g MDsgaSA8IHBrc19rZXlzdG9yZS0+ZGJfZW50cmllczsgaSsrKQorICAgIHsKKyAgICAgIGlmIChp c19oYXNoICgmcGtzX2tleXN0b3JlLT5kYltpXS5ndWlkKSA9PSB0cnVlKQorICAgICAgICB7Cisg ICAgICAgICAgcmMgPSBhZGRfaGFzaCAocGtzX2tleXN0b3JlLT5kYltpXS5kYXRhLAorICAgICAg ICAgICAgICAgICAgICAgICAgIHBrc19rZXlzdG9yZS0+ZGJbaV0uZGF0YV9zaXplLCAmZGIpOwor ICAgICAgICAgIGlmIChyYyA9PSBHUlVCX0VSUl9PVVRfT0ZfTUVNT1JZKQorICAgICAgICAgICAg cmV0dXJuIHJjOworICAgICAgICB9CisgICAgICBlbHNlIGlmIChpc194NTA5ICgmcGtzX2tleXN0 b3JlLT5kYltpXS5ndWlkKSA9PSB0cnVlKQorICAgICAgICB7CisgICAgICAgICAgcmMgPSBhZGRf Y2VydGlmaWNhdGUgKHBrc19rZXlzdG9yZS0+ZGJbaV0uZGF0YSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGtzX2tleXN0b3JlLT5kYltpXS5kYXRhX3NpemUsICZkYik7CisgICAg ICAgICAgaWYgKHJjID09IEdSVUJfRVJSX09VVF9PRl9NRU1PUlkpCisgICAgICAgICAgICByZXR1 cm4gcmM7CisgICAgICAgIH0KKyAgICAgIGVsc2UKKyAgICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBw ZW5kZWRzaWciLCAidW5zdXBwb3J0ZWQgc2lnbmF0dXJlIGRhdGEgdHlwZSBhbmQgIgorICAgICAg ICAgICAgICAgICAgICAgICJza2lwcGVkICgldSlcbiIsIGkgKyAxKTsKKyAgICB9CisKKyAgcmV0 dXJuIEdSVUJfRVJSX05PTkU7Cit9CisKKy8qIEFkZCB0aGUgY2VydGlmaWNhdGVzIGFuZCBjZXJ0 aWZpY2F0ZS9iaW5hcnkgaGFzaCB0byB0aGUgZGJ4IGxpc3QgZnJvbSBQS1MuICovCitzdGF0aWMg Z3J1Yl9lcnJfdAorbG9hZF9wa3MyZGJ4ICh2b2lkKQoreworICBncnViX2Vycl90IHJjOworICBn cnViX3VpbnQzMl90IGk7CisKKyAgZm9yIChpID0gMDsgaSA8IHBrc19rZXlzdG9yZS0+ZGJ4X2Vu dHJpZXM7IGkrKykKKyAgICB7CisgICAgICBpZiAoaXNfeDUwOSAoJnBrc19rZXlzdG9yZS0+ZGJ4 W2ldLmd1aWQpID09IHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICByYyA9IGFkZF9jZXJ0aWZp Y2F0ZSAocGtzX2tleXN0b3JlLT5kYnhbaV0uZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGtzX2tleXN0b3JlLT5kYnhbaV0uZGF0YV9zaXplLCAmZGJ4KTsKKyAgICAgICAg ICBpZiAocmMgPT0gR1JVQl9FUlJfT1VUX09GX01FTU9SWSkKKyAgICAgICAgICAgIHJldHVybiBy YzsKKyAgICAgICAgfQorICAgICAgZWxzZSBpZiAoaXNfaGFzaCAoJnBrc19rZXlzdG9yZS0+ZGJ4 W2ldLmd1aWQpID09IHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICByYyA9IGFkZF9oYXNoIChw a3Nfa2V5c3RvcmUtPmRieFtpXS5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgIHBrc19r ZXlzdG9yZS0+ZGJ4W2ldLmRhdGFfc2l6ZSwgJmRieCk7CisgICAgICAgICAgaWYgKHJjICE9IEdS VUJfRVJSX05PTkUpCisgICAgICAgICAgICByZXR1cm4gcmM7CisgICAgICAgIH0KKyAgICAgIGVs c2UKKyAgICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLCAidW5zdXBwb3J0ZWQgc2ln bmF0dXJlIGRhdGEgdHlwZSBhbmQgIgorICAgICAgICAgICAgICAgICAgICAgICJza2lwcGVkICgl dSlcbiIsIGkgKyAxKTsKKyAgICB9CisKKyAgcmV0dXJuIEdSVUJfRVJSX05PTkU7Cit9CisKIC8q CiAgKiBFeHRyYWN0IHRoZSBYLjUwOSBjZXJ0aWZpY2F0ZXMgZnJvbSB0aGUgRUxGIE5vdGUgaGVh ZGVyLCBwYXJzZSBpdCwgYW5kIGFkZAogICogaXQgdG8gdGhlIGRiIGxpc3QuCkBAIC00MjIsMTEg KzcxOSw0NiBAQCBsb2FkX2VsZjJkYiAodm9pZCkKICAgICB9CiB9CiAKKy8qCisgKiBFeHRyYWN0 IHRydXN0ZWQgYW5kIGRpc3RydXN0ZWQga2V5cyBmcm9tIFBLUyBhbmQgc3RvcmUgdGhlbSBpbiB0 aGUgZGIgYW5kCisgKiBkYnggbGlzdC4KKyAqLworc3RhdGljIHZvaWQKK2NyZWF0ZV9kYnNfZnJv bV9wa3MgKHZvaWQpCit7CisgIGdydWJfZXJyX3QgZXJyOworCisgIGVyciA9IGxvYWRfcGtzMmRi eCAoKTsKKyAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgIGdydWJfcHJpbnRmICgid2Fy bmluZzogZGJ4IGxpc3QgbWlnaHQgbm90IGJlIGZ1bGx5IHBvcHVsYXRlZFxuIik7CisKKyAgLyoK KyAgICogSWYgdGhlIGRiIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50IG9yIGVtcHR5IGluIHRoZSBQ S1Mgc3RvcmFnZSwgdGhlbiByZWFkCisgICAqIHRoZSBzdGF0aWMga2V5cyBhcyBhIGRiIGRlZmF1 bHQga2V5cyBmcm9tIHRoZSBHUlVCIEVMRiBOb3RlIGFuZCBhZGQgdGhlbQorICAgKiBpbnRvIHRo ZSBkYiBsaXN0LgorICAgKi8KKyAgaWYgKHBrc19rZXlzdG9yZS0+ZGIgPT0gTlVMTCkKKyAgICBs b2FkX2VsZjJkYiAoKTsKKyAgZWxzZQorICAgIHsKKyAgICAgIGVyciA9IGxvYWRfcGtzMmRiICgp OworICAgICAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgICAgICBncnViX3ByaW50ZiAo Indhcm5pbmc6IGRiIGxpc3QgbWlnaHQgbm90IGJlIGZ1bGx5IHBvcHVsYXRlZFxuIik7CisgICAg fQorCisgIGdydWJfcGtzX2ZyZWVfZGF0YSAoKTsKKyAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRz aWciLCAidGhlIGRiIGxpc3Qgbm93IGhhcyAldSBrZXlzXG4iCisgICAgICAgICAgICAgICAgInRo ZSBkYnggbGlzdCBub3cgaGFzICV1IGtleXNcbiIsCisgICAgICAgICAgICAgICAgZGIuaGFzaF9l bnRyaWVzICsgZGIuY2VydF9lbnRyaWVzLAorICAgICAgICAgICAgICAgIGRieC5oYXNoX2VudHJp ZXMgKyBkYnguY2VydF9lbnRyaWVzKTsKK30KKwogLyogRnJlZSBkYiBsaXN0IG1lbW9yeSAqLwog c3RhdGljIHZvaWQKIGZyZWVfZGJfbGlzdCAodm9pZCkKIHsKICAgZ3J1Yl94NTA5X2NlcnRfdCAq Y2VydDsKKyAgZ3J1Yl91aW50MzJfdCBpOwogCiAgIHdoaWxlIChkYi5jZXJ0cyAhPSBOVUxMKQog ICAgIHsKQEAgLTQzNiw5ICs3NjgsMzcgQEAgZnJlZV9kYl9saXN0ICh2b2lkKQogICAgICAgZ3J1 Yl9mcmVlIChjZXJ0KTsKICAgICB9CiAKKyAgZm9yIChpID0gMDsgaSA8IGRiLmhhc2hfZW50cmll czsgaSsrKQorICAgIGdydWJfZnJlZSAoZGIuaGFzaGVzW2ldKTsKKworICBncnViX2ZyZWUgKGRi Lmhhc2hlcyk7CisgIGdydWJfZnJlZSAoZGIuaGFzaF9zaXplcyk7CiAgIGdydWJfbWVtc2V0ICgm ZGIsIDAsIHNpemVvZiAoc2JfZGF0YWJhc2VfdCkpOwogfQogCisvKiBGcmVlIGRieCBsaXN0IG1l bW9yeSAqLworc3RhdGljIHZvaWQKK2ZyZWVfZGJ4X2xpc3QgKHZvaWQpCit7CisgIGdydWJfeDUw OV9jZXJ0X3QgKmNlcnQ7CisgIGdydWJfdWludDMyX3QgaTsKKworICB3aGlsZSAoZGJ4LmNlcnRz ICE9IE5VTEwpCisgICAgeworICAgICAgY2VydCA9IGRieC5jZXJ0czsKKyAgICAgIGRieC5jZXJ0 cyA9IGRieC5jZXJ0cy0+bmV4dDsKKyAgICAgIGdydWJfeDUwOV9jZXJ0X3JlbGVhc2UgKGNlcnQp OworICAgICAgZ3J1Yl9mcmVlIChjZXJ0KTsKKyAgICB9CisKKyAgZm9yIChpID0gMDsgaSA8IGRi eC5oYXNoX2VudHJpZXM7IGkrKykKKyAgICBncnViX2ZyZWUgKGRieC5oYXNoZXNbaV0pOworCisg IGdydWJfZnJlZSAoZGJ4Lmhhc2hlcyk7CisgIGdydWJfZnJlZSAoZGJ4Lmhhc2hfc2l6ZXMpOwor ICBncnViX21lbXNldCAoJmRieCwgMCwgc2l6ZW9mIChzYl9kYXRhYmFzZV90KSk7Cit9CisKIHN0 YXRpYyBjb25zdCBjaGFyICoKIGdydWJfZW52X3JlYWRfc2VjIChzdHJ1Y3QgZ3J1Yl9lbnZfdmFy ICp2YXIgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAogICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKnZhbCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpCkBAIC02MzEsMTAgKzk5MSwyMyBA QCBHUlVCX01PRF9JTklUIChhcHBlbmRlZHNpZykKICAgaWYgKHJjICE9IEFTTjFfU1VDQ0VTUykK ICAgICBncnViX2ZhdGFsICgiZXJyb3IgaW5pdGluZyBBU04uMSBkYXRhIHN0cnVjdHVyZXM6ICVk OiAlc1xuIiwgcmMsIGFzbjFfc3RyZXJyb3IgKHJjKSk7CiAKLSAgLyogRXh0cmFjdCB0cnVzdGVk IGtleXMgZnJvbSBFTEYgTm90ZSBhbmQgc3RvcmUgdGhlbSBpbiB0aGUgZGIuICovCi0gIGxvYWRf ZWxmMmRiICgpOwotICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJ0aGUgZGIgbGlzdCBu b3cgaGFzICV1IHN0YXRpYyBrZXlzXG4iLAotICAgICAgICAgICAgICAgIGRiLmNlcnRfZW50cmll cyk7CisgIC8qCisgICAqIElmIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCB3aXRo IHRoZSBkeW5hbWljIGtleSBtYW5hZ2VtZW50LAorICAgKiBleHRyYWN0IHRydXN0ZWQgYW5kIGRp c3RydXN0ZWQga2V5cyBmcm9tIFBLUyBhbmQgc3RvcmUgdGhlbSBpbiB0aGUgZGIKKyAgICogYW5k IGRieCBsaXN0LgorICAgKi8KKyAgaWYgKGFwcGVuZF9rZXlfbWdtdCA9PSB0cnVlKQorICAgIGNy ZWF0ZV9kYnNfZnJvbV9wa3MgKCk7CisgIC8qCisgICAqIElmIHNpZ25hdHVyZSB2ZXJpZmljYXRp b24gaXMgZW5hYmxlZCB3aXRoIHRoZSBzdGF0aWMga2V5IG1hbmFnZW1lbnQsCisgICAqIGV4dHJh Y3QgdHJ1c3RlZCBrZXlzIGZyb20gRUxGIE5vdGUgYW5kIHN0b3JlIHRoZW0gaW4gdGhlIGRiIGxp c3QuCisgICAqLworICBlbHNlCisgICAgeworICAgICAgbG9hZF9lbGYyZGIgKCk7CisgICAgICBn cnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJ0aGUgZGIgbGlzdCBub3cgaGFzICV1IHN0YXRp YyBrZXlzXG4iLAorICAgICAgICAgICAgICAgICAgICBkYi5jZXJ0X2VudHJpZXMpOworICAgIH0K IAogICBncnViX3ZlcmlmaWVyX3JlZ2lzdGVyICgmZ3J1Yl9hcHBlbmRlZHNpZ192ZXJpZmllcik7 CiAgIGdydWJfZGxfc2V0X3BlcnNpc3RlbnQgKG1vZCk7CkBAIC02NDgsNiArMTAyMSw3IEBAIEdS VUJfTU9EX0ZJTkkgKGFwcGVuZGVkc2lnKQogICAgKi8KIAogICBmcmVlX2RiX2xpc3QgKCk7Cisg IGZyZWVfZGJ4X2xpc3QgKCk7CiAgIGdydWJfcmVnaXN0ZXJfdmFyaWFibGVfaG9vayAoImNoZWNr X2FwcGVuZGVkX3NpZ25hdHVyZXMiLCBOVUxMLCBOVUxMKTsKICAgZ3J1Yl9lbnZfdW5zZXQgKCJj aGVja19hcHBlbmRlZF9zaWduYXR1cmVzIik7CiAgIGdydWJfcmVnaXN0ZXJfdmFyaWFibGVfaG9v ayAoImFwcGVuZGVkc2lnX2tleV9tZ210IiwgTlVMTCwgTlVMTCk7CmRpZmYgLS1naXQgYS9pbmNs dWRlL2dydWIvZWZpL3Brcy5oIGIvaW5jbHVkZS9ncnViL2VmaS9wa3MuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmZmMzA2ZjU5MQotLS0gL2Rldi9udWxsCisrKyBiL2lu Y2x1ZGUvZ3J1Yi9lZmkvcGtzLmgKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQg KGMpIDIwMDYgLSAyMDE1LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g VGhpcworICogcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIGxpY2Vu c2VkIGFuZCBtYWRlIGF2YWlsYWJsZQorICogdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25z IG9mIHRoZSAyLUNsYXVzZSBCU0QgTGljZW5zZSB3aGljaAorICogYWNjb21wYW5pZXMgdGhpcyBk aXN0cmlidXRpb24uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAq CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl CisgKiBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0 aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorICogQU5EIEFOWSBF WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUKKyAqIExJ QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKKyAqIFBPU1NJ QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2Nv cmUvZWRrMi1zdGFnaW5nIChlZGsyLXN0YWdpbmcgcmVwbyBvZiB0aWFub2NvcmUpLAorICogdGhl IEltYWdlQXV0aGVudGljYXRpb24uaCBmaWxlIHVuZGVyIGl0LCBhbmQgaGVyZSdzIHRoZSBjb3B5 cmlnaHQgYW5kIGxpY2Vuc2UuCisgKgorICogTWRlUGtnL0luY2x1ZGUvR3VpZC9JbWFnZUF1dGhl bnRpY2F0aW9uLmgKKyAqCisgKiBDb3B5cmlnaHQgMjAyMiwgMjAyMywgMjAyNCwgMjAyNSBJQk0g Q29ycC4KKyAqLworCisjaWZuZGVmIFBLU19IRUFERVIKKyNkZWZpbmUgUEtTX0hFQURFUiAgIDEK KworI2luY2x1ZGUgPGdydWIvdHlwZXMuaD4KKworLyoKKyAqIEl0IGlzIGRlcml2ZWQgZnJvbSBF RklfQ0VSVF9YNTA5X0dVSUQuCisgKiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIt c3RhZ2luZy9ibG9iL21hc3Rlci9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRp b24uaAorICovCisjZGVmaW5lIEdSVUJfUEtTX0NFUlRfWDUwOV9HVUlEIFwKKyAgKGdydWJfZ3Vp ZF90KSBcCisgIHsgMHhhMTU5YzBhNSwgMHhlNDk0LCAweGE3NGEsIFwKKyAgICB7IDB4ODcsIDB4 YjUsIDB4YWIsIDB4MTUsIDB4NWMsIDB4MmIsIDB4ZjAsIDB4NzIgfSBcCisgIH0KKworLyoKKyAq IEl0IGlzIGRlcml2ZWQgZnJvbSBFRklfQ0VSVF9TSEEyNTZfR1VJRC4KKyAqIGh0dHBzOi8vZ2l0 aHViLmNvbS90aWFub2NvcmUvZWRrMi1zdGFnaW5nL2Jsb2IvbWFzdGVyL01kZVBrZy9JbmNsdWRl L0d1aWQvSW1hZ2VBdXRoZW50aWNhdGlvbi5oCisgKi8KKyNkZWZpbmUgR1JVQl9QS1NfQ0VSVF9T SEEyNTZfR1VJRCBcCisgIChncnViX2d1aWRfdCkgXAorICB7IDB4MjYxNmM0YzEsIDB4NGM1MCwg MHg5MjQwLCBcCisgICAgeyAweGFjLCAweGE5LCAweDQxLCAweGY5LCAweDM2LCAweDkzLCAweDQz LCAweDI4IH0gXAorICB9CisKKy8qCisgKiBJdCBpcyBkZXJpdmVkIGZyb20gRUZJX0NFUlRfU0hB Mzg0X0dVSUQuCisgKiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItc3RhZ2luZy9i bG9iL21hc3Rlci9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaAorICov CisjZGVmaW5lIEdSVUJfUEtTX0NFUlRfU0hBMzg0X0dVSUQgXAorICAoZ3J1Yl9ndWlkX3QpIFwK KyAgeyAweDA3NTMzZWZmLCAweGQwOWYsIDB4Yzk0OCwgXAorICAgIHsgMHg4NSwgMHhmMSwgMHg4 YSwgMHhkNSwgMHg2YywgMHg3MCwgMHgxZSwgMHgxIH0gXAorICB9CisKKy8qCisgKiBJdCBpcyBk ZXJpdmVkIGZyb20gRUZJX0NFUlRfU0hBNTEyX0dVSUQuCisgKiBodHRwczovL2dpdGh1Yi5jb20v dGlhbm9jb3JlL2VkazItc3RhZ2luZy9ibG9iL21hc3Rlci9NZGVQa2cvSW5jbHVkZS9HdWlkL0lt YWdlQXV0aGVudGljYXRpb24uaAorICovCisjZGVmaW5lIEdSVUJfUEtTX0NFUlRfU0hBNTEyX0dV SUQgXAorICAoZ3J1Yl9ndWlkX3QpIFwKKyAgeyAweGFlMGYzZTA5LCAweGM0YTYsIDB4NTA0Ziwg XAorICAgIHsgMHg5ZiwgMHgxYiwgMHhkNCwgMHgxZSwgMHgyYiwgMHg4OSwgMHhjMSwgMHg5YSB9 IFwKKyAgfQorCisvKgorICogSXQgaXMgZGVyaXZlZCBmcm9tIEVGSV9DRVJUX1g1MDlfU0hBMjU2 X0dVSUQuCisgKiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItc3RhZ2luZy9ibG9i L21hc3Rlci9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaAorICovCisj ZGVmaW5lIEdSVUJfUEtTX0NFUlRfWDUwOV9TSEEyNTZfR1VJRCBcCisgIChncnViX2d1aWRfdCkg XAorICB7IDB4OTJhNGQyM2IsIDB4YzA5NiwgMHg3OTQwLCBcCisgICAgeyAweGI0LCAweDIwLCAw eGZjLCAweGY5LCAweDhlLCAweGYxLCAweDAzLCAweGVkIH0gXAorICB9CisKKy8qCisgKiBJdCBp cyBkZXJpdmVkIGZyb20gRUZJX0NFUlRfWDUwOV9TSEEzODRfR1VJRC4KKyAqIGh0dHBzOi8vZ2l0 aHViLmNvbS90aWFub2NvcmUvZWRrMi1zdGFnaW5nL2Jsb2IvbWFzdGVyL01kZVBrZy9JbmNsdWRl L0d1aWQvSW1hZ2VBdXRoZW50aWNhdGlvbi5oCisgKi8KKyNkZWZpbmUgR1JVQl9QS1NfQ0VSVF9Y NTA5X1NIQTM4NF9HVUlEICAgICBcCisgIChncnViX2d1aWRfdCkgXAorICB7IDB4NmU4Nzc2NzAs IDB4YzI4MCwgMHhlNjRlLCBcCisgICAgeyAweGFhLCAweGQyLCAweDI4LCAweGIzLCAweDQ5LCAw eGE2LCAweDg2LCAweDViIH0gXAorICB9CisKKy8qCisgKiBJdCBpcyBkZXJpdmVkIGZyb20gRUZJ X0NFUlRfWDUwOV9TSEE1MTJfR1VJRC4KKyAqIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUv ZWRrMi1zdGFnaW5nL2Jsb2IvbWFzdGVyL01kZVBrZy9JbmNsdWRlL0d1aWQvSW1hZ2VBdXRoZW50 aWNhdGlvbi5oCisgKi8KKyNkZWZpbmUgR1JVQl9QS1NfQ0VSVF9YNTA5X1NIQTUxMl9HVUlEIFwK KyAgKGdydWJfZ3VpZF90KSBcCisgIHsgMHg2M2JmNmQ0NCwgMHgwMjI1LCAweGRhNGMsIFwKKyAg ICB7IDB4YmMsIDB4ZmEsIDB4MjQsIDB4NjUsIDB4ZDIsIDB4YjAsIDB4ZmUsIDB4OWQgfSBcCisg IH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2dydWIvdHlwZXMuaCBiL2luY2x1ZGUv Z3J1Yi90eXBlcy5oCmluZGV4IDQ1MDc5YmY2NS4uYjNiYTc2MmZjIDEwMDY0NAotLS0gYS9pbmNs dWRlL2dydWIvdHlwZXMuaAorKysgYi9pbmNsdWRlL2dydWIvdHlwZXMuaApAQCAtMzc5LDYgKzM3 OSw4IEBAIHN0cnVjdCBncnViX2d1aWQKIH0gX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQoNCkpKTsK IHR5cGVkZWYgc3RydWN0IGdydWJfZ3VpZCBncnViX2d1aWRfdDsKIAorI2RlZmluZSBHUlVCX0dV SURfU0laRSAgICAoc2l6ZW9mIChncnViX2d1aWRfdCkpCisKIHN0cnVjdCBncnViX3BhY2tlZF9n dWlkCiB7CiAgIGdydWJfdWludDMyX3QgZGF0YTE7CkBAIC0zODgsNCArMzkwLDYgQEAgc3RydWN0 IGdydWJfcGFja2VkX2d1aWQKIH0gR1JVQl9QQUNLRUQ7CiB0eXBlZGVmIHN0cnVjdCBncnViX3Bh Y2tlZF9ndWlkIGdydWJfcGFja2VkX2d1aWRfdDsKIAorI2RlZmluZSBHUlVCX1BBQ0tFRF9HVUlE X1NJWkUgICAgKHNpemVvZiAoZ3J1Yl9wYWNrZWRfZ3VpZF90KSkKKwogI2VuZGlmIC8qICEgR1JV Ql9UWVBFU19IRUFERVIgKi8KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpHcnViLWRldmVsIG1haWxpbmcg bGlzdApHcnViLWRldmVsQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlz dGluZm8vZ3J1Yi1kZXZlbAo=