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 8F51CCCA471 for ; Mon, 6 Oct 2025 07:26:58 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v5fc3-00085F-RX; Mon, 06 Oct 2025 03:26:27 -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 1v5fbz-00080F-T3 for grub-devel@gnu.org; Mon, 06 Oct 2025 03:26:25 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v5fbt-0001yY-J1 for grub-devel@gnu.org; Mon, 06 Oct 2025 03:26:21 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5960R4JD030825; Mon, 6 Oct 2025 07:26:13 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=DmyG6K3orM2mB5nfB i/q3h2DzGQ+BqeaqsvlvwD7KRc=; b=ff3konbcNvN3aPI/B7ebF00hyPvr4cc12 VrVgKNGi3xhXLAJ8N6QK9RP2hhTLzi4T3B21XJkaWESvZJeHrQP3Avnwwnr/l1Qp BE4ftBYgcOaZ9uMw8rZtK8+8mfRKuG5WGH+lBPwr4xEYbV+En09OUClgY0CW3D67 pG2IT2zJK71AjmFIzlFVptLTxvUgHk3F2RF/3vjrIkrZyfUAU8MIEejRD0NOW9S3 jiM4JxXjOsOArFa/N980ODzCHdcPbATVVTFZPmw3SuhLa9q8r0QFrm4LRpIY6Mqs l5kmSAyNrgTPv1TJFnN3v9LfNdqKxGTcFublus44Bg4fs43JMKw+A== Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49jua8yt18-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 06 Oct 2025 07:26:13 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5964faVH000922; Mon, 6 Oct 2025 07:26:12 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49ke9xvxmc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 06 Oct 2025 07:26:11 +0000 Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com [10.20.54.106]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 5967Q8fD20971786 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 6 Oct 2025 07:26:08 GMT Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id EA9B820043; Mon, 6 Oct 2025 07:26:07 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 43ECC20040; Mon, 6 Oct 2025 07:26:05 +0000 (GMT) Received: from localhost.localdomain (unknown [9.124.213.16]) by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 6 Oct 2025 07:26:05 +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 v18 13/20] appended signatures: Create db and dbx lists Date: Mon, 6 Oct 2025 12:54:58 +0530 Message-ID: <20251006072508.19088-14-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251006072508.19088-1-sudhakar@linux.ibm.com> References: <20251006072508.19088-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-GUID: gHB9HaUsnKaXsQzFqZxUtgYV5B0riAEa X-Proofpoint-ORIG-GUID: gHB9HaUsnKaXsQzFqZxUtgYV5B0riAEa X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDA0MDAyMiBTYWx0ZWRfX0yhWPkclMpZA zuuyElHiiyboGPB1iQgL5RaFIR2xr8uRpM10730xS8VgCvaJLAp3YOFCLBipsVD1Hf423vQBwT7 jFRFQ34Xgji+Dk8IucpIxNkU7E/XB7wMHGf6gkFHnBTzuH1Cw7ZxPa2ByP+tmdvR/Foy0CXD965 sgjxM7WUq0yF2wlG/B/Q21Ar/yV/o+ht8nDD35ivbizjvhVoNIPrksR+YhJj3QaC3jrNSR6j6PL 52zl/VlUJN5SoRmNBQZbFvSTI05e+X4Bd315jeho+syhCcaIIbmlmSeUCNKoNBFntUvgz64skHP tvmA2WE71mz/NwalqyS3VTDt3RJoiOdDTsVi4DhWx8pidUCyNJhFOaCtqDhAAleX69ydLMRpol9 JwhkCa0pSIR3Gy1UGsg+ezbdKafETA== X-Authority-Analysis: v=2.4 cv=QdBrf8bv c=1 sm=1 tr=0 ts=68e36f15 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=x6icFKpwvdMA:10 a=NEAV23lmAAAA:8 a=VnNF1IyMAAAA:8 a=yPCof4ZbAAAA:8 a=sCGIt9ieJHR2VkqI4G0A:9 a=cPQSjfK2_nFv0Q5t_7PE:22 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-06_02,2025-10-02_03,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 clxscore=1015 suspectscore=0 adultscore=0 malwarescore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2509150000 definitions=main-2510040022 Received-SPF: pass client-ip=148.163.156.1; envelope-from=sudhakar@linux.ibm.com; helo=mx0a-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.01, RCVD_IN_MSPIKE_WL=-0.01, 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 YnNlcXVlbnQgcGF0Y2guCgpOb3RlOgotIElmIGRiIGRvZXMgbm90IGV4aXN0IGluIHRoZSBQS1Mg c3RvcmFnZSwgdGhlbiByZWFkIHRoZSBzdGF0aWMga2V5cyBhcyBhIGRiCiAgZGVmYXVsdCBrZXlz IGZyb20gdGhlIEdSVUIgRUxGIE5vdGUgYW5kIGFkZCB0aGVtIGludG8gdGhlIGRiIGxpc3QuCi0g SWYgdGhlIGNlcnRpZmljYXRlIG9yIHRoZSBjZXJ0aWZpY2F0ZSBoYXNoIGV4aXN0cyBpbiB0aGUg ZGJ4IGxpc3QsIHRoZW4gZG8gbm90CiAgYWRkIHRoYXQgY2VydGlmaWNhdGUvY2VydGlmaWNhdGUg aGFzaCB0byB0aGUgZGIgbGlzdC4KClNpZ25lZC1vZmYtYnk6IFN1ZGhha2FyIEt1cHB1c2FteSA8 c3VkaGFrYXJAbGludXguaWJtLmNvbT4KUmV2aWV3ZWQtYnk6IEF2bmlzaCBDaG91aGFuIDxhdm5p c2hAbGludXguaWJtLmNvbT4KUmV2aWV3ZWQtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVy QG9yYWNsZS5jb20+Ci0tLQogZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVk c2lnLmMgfCA0MDcgKysrKysrKysrKysrKysrKysrLQogaW5jbHVkZS9ncnViL2VmaS9wa3MuaCAg ICAgICAgICAgICAgICAgICAgICAgfCAxMTIgKysrKysKIGluY2x1ZGUvZ3J1Yi90eXBlcy5oICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIDMgZmlsZXMgY2hhbmdlZCwgNTA2IGluc2Vy dGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZ3J1 Yi9lZmkvcGtzLmgKCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcv YXBwZW5kZWRzaWcuYyBiL2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNp Zy5jCmluZGV4IGNhNTRjOTBmYS4uMGM0Yzc4OGZmIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvY29t bWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuYworKysgYi9ncnViLWNvcmUvY29tbWFuZHMv YXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuYwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPGdy dWIvZW52Lmg+CiAjaW5jbHVkZSA8Z3J1Yi9sb2NrZG93bi5oPgogI2luY2x1ZGUgPGdydWIvcG93 ZXJwYy9pZWVlMTI3NS9wbGF0Zm9ybV9rZXlzdG9yZS5oPgorI2luY2x1ZGUgPGdydWIvZWZpL3Br cy5oPgogCiAjaW5jbHVkZSAiYXBwZW5kZWRzaWcuaCIKIApAQCAtNDYsNiArNDcsMTEgQEAgR1JV Ql9NT0RfTElDRU5TRSAoIkdQTHYzKyIpOwogI2RlZmluZSBTSUdfTUFHSUMgICAgICAgICAgIn5N b2R1bGUgc2lnbmF0dXJlIGFwcGVuZGVkflxuIgogI2RlZmluZSBTSUdfTUFHSUNfU0laRSAgICAg KChzaXplb2YoU0lHX01BR0lDKSAtIDEpKQogCisvKiBTSEEyNTYsIFNIQTM4NCBhbmQgU0hBNTEy IGhhc2ggc2l6ZXMuICovCisjZGVmaW5lIFNIQTI1Nl9IQVNIX1NJWkUgICAzMgorI2RlZmluZSBT SEEzODRfSEFTSF9TSVpFICAgNDgKKyNkZWZpbmUgU0hBNTEyX0hBU0hfU0laRSAgIDY0CisKIC8q CiAgKiBUaGlzIHN0cnVjdHVyZSBpcyBleHRyYWN0ZWQgZnJvbSBzY3JpcHRzL3NpZ24tZmlsZS5j IGluIHRoZSBsaW51eCBrZXJuZWwKICAqIHNvdXJjZS4gSXQgd2FzIGxpY2Vuc2VkIGFzIExHUEx2 Mi4xKywgd2hpY2ggaXMgR1BMdjMrIGNvbXBhdGlibGUuCkBAIC03OSwxMSArODUsMjMgQEAgc3Ry dWN0IHNiX2RhdGFiYXNlCiB7CiAgIGdydWJfeDUwOV9jZXJ0X3QgKmNlcnRzOyAgICAvKiBDZXJ0 aWZpY2F0ZXMuICovCiAgIGdydWJfdWludDMyX3QgY2VydF9lbnRyaWVzOyAvKiBOdW1iZXIgb2Yg Y2VydGlmaWNhdGVzLiAqLworICBncnViX3VpbnQ4X3QgKipoYXNoZXM7ICAgICAgLyogQ2VydGlm aWNhdGUvYmluYXJ5IGhhc2hlcy4gKi8KKyAgZ3J1Yl9zaXplX3QgKmhhc2hfc2l6ZXM7ICAgIC8q IFNpemVzIG9mIGNlcnRpZmljYXRlL2JpbmFyeSBoYXNoZXMuICovCisgIGdydWJfdWludDMyX3Qg aGFzaF9lbnRyaWVzOyAvKiBOdW1iZXIgb2YgY2VydGlmaWNhdGUvYmluYXJ5IGhhc2hlcy4gKi8K KyAgYm9vbCBpc19kYjsgICAgICAgICAgICAgICAgIC8qIEZsYWcgdG8gaW5kaWNhdGUgdGhlIGRi L2RieCBsaXN0LiAqLwogfTsKIHR5cGVkZWYgc3RydWN0IHNiX2RhdGFiYXNlIHNiX2RhdGFiYXNl X3Q7CiAKIC8qIFRoZSBkYiBsaXN0IGlzIHVzZWQgdG8gdmFsaWRhdGUgYXBwZW5kZWQgc2lnbmF0 dXJlcy4gKi8KLXN0YXRpYyBzYl9kYXRhYmFzZV90IGRiID0gey5jZXJ0cyA9IE5VTEwsIC5jZXJ0 X2VudHJpZXMgPSAwfTsKK3N0YXRpYyBzYl9kYXRhYmFzZV90IGRiID0gey5jZXJ0cyA9IE5VTEws IC5jZXJ0X2VudHJpZXMgPSAwLCAuaGFzaGVzID0gTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIC5oYXNoX3NpemVzID0gTlVMTCwgLmhhc2hfZW50cmllcyA9IDAsIC5pc19kYiA9IHRy dWV9OworLyoKKyAqIFRoZSBkYnggbGlzdCBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IHRoZSBkaXN0 cnVzdGVkIGNlcnRpZmljYXRlcyBvciBHUlVCCisgKiBtb2R1bGVzL2tlcm5lbCBiaW5hcmllcyBh cmUgcmVqZWN0ZWQgZHVyaW5nIGFwcGVuZGVkIHNpZ25hdHVyZXMvaGFzaGVzCisgKiB2YWxpZGF0 aW9uLgorICovCitzdGF0aWMgc2JfZGF0YWJhc2VfdCBkYnggPSB7LmNlcnRzID0gTlVMTCwgLmNl cnRfZW50cmllcyA9IDAsIC5oYXNoZXMgPSBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC5oYXNoX3NpemVzID0gTlVMTCwgLmhhc2hfZW50cmllcyA9IDAsIC5pc19kYiA9IGZhbHNl fTsKIAogLyoKICAqIFNpZ25hdHVyZSB2ZXJpZmljYXRpb24gZmxhZyAoY2hlY2tfc2lncykuCkBA IC0xMTgsNiArMTM2LDE2OSBAQCBzdGF0aWMgc3RydWN0IGdydWJfZnMgcHNldWRvX2ZzID0gewog ICAuZnNfcmVhZCA9IHBzZXVkb19yZWFkCiB9OwogCisvKgorICogR1VJRCBjYW4gYmUgdXNlZCB0 byBkZXRlcm1pbmUgdGhlIGhhc2hpbmcgZnVuY3Rpb24gYW5kIGdlbmVyYXRlIHRoZSBoYXNoIHVz aW5nCisgKiBkZXRlcm1pbmVkIGhhc2hpbmcgZnVuY3Rpb24uCisgKi8KK3N0YXRpYyBncnViX2Vy cl90CitnZXRfaGFzaCAoY29uc3QgZ3J1Yl9wYWNrZWRfZ3VpZF90ICpndWlkLCBjb25zdCBncnVi X3VpbnQ4X3QgKmRhdGEsIGNvbnN0IGdydWJfc2l6ZV90IGRhdGFfc2l6ZSwKKyAgICAgICAgICBn cnViX3VpbnQ4X3QgKmhhc2gsIGdydWJfc2l6ZV90ICpoYXNoX3NpemUpCit7CisgIGdjcnlfbWRf c3BlY190ICpoYXNoX2Z1bmMgPSBOVUxMOworCisgIGlmIChndWlkID09IE5VTEwpCisgICAgcmV0 dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX09VVF9PRl9SQU5HRSwgIkdVSUQgaXMgbm90IGF2YWls YWJsZSIpOworCisgIGlmIChncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJfUEtTX0NFUlRfU0hBMjU2 X0dVSUQsIEdSVUJfUEFDS0VEX0dVSURfU0laRSkgPT0gMCB8fAorICAgICAgZ3J1Yl9tZW1jbXAg KGd1aWQsICZHUlVCX1BLU19DRVJUX1g1MDlfU0hBMjU2X0dVSUQsIEdSVUJfUEFDS0VEX0dVSURf U0laRSkgPT0gMCkKKyAgICBoYXNoX2Z1bmMgPSAmX2djcnlfZGlnZXN0X3NwZWNfc2hhMjU2Owor ICBlbHNlIGlmIChncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJfUEtTX0NFUlRfU0hBMzg0X0dVSUQs IEdSVUJfUEFDS0VEX0dVSURfU0laRSkgPT0gMCB8fAorICAgICAgICAgICBncnViX21lbWNtcCAo Z3VpZCwgJkdSVUJfUEtTX0NFUlRfWDUwOV9TSEEzODRfR1VJRCwgR1JVQl9QQUNLRURfR1VJRF9T SVpFKSA9PSAwKQorICAgIGhhc2hfZnVuYyA9ICZfZ2NyeV9kaWdlc3Rfc3BlY19zaGEzODQ7Cisg IGVsc2UgaWYgKGdydWJfbWVtY21wIChndWlkLCAmR1JVQl9QS1NfQ0VSVF9TSEE1MTJfR1VJRCwg R1JVQl9QQUNLRURfR1VJRF9TSVpFKSA9PSAwIHx8CisgICAgICAgICAgIGdydWJfbWVtY21wIChn dWlkLCAmR1JVQl9QS1NfQ0VSVF9YNTA5X1NIQTUxMl9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJ WkUpID09IDApCisgICAgaGFzaF9mdW5jID0gJl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTUxMjsKKyAg ZWxzZQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0ZfUkFOR0UsICJ1bnN1 cHBvcnRlZCBHVUlEIGhhc2giKTsKKworICBncnViX2NyeXB0b19oYXNoIChoYXNoX2Z1bmMsIGhh c2gsIGRhdGEsIGRhdGFfc2l6ZSk7CisgICpoYXNoX3NpemUgPSBoYXNoX2Z1bmMtPm1kbGVuOwor CisgIHJldHVybiBHUlVCX0VSUl9OT05FOworfQorCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ2VuZXJh dGVfY2VydF9oYXNoIChjb25zdCBncnViX3NpemVfdCBjZXJ0X2hhc2hfc2l6ZSwgY29uc3QgZ3J1 Yl91aW50OF90ICpkYXRhLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBncnViX3NpemVfdCBk YXRhX3NpemUsIGdydWJfdWludDhfdCAqaGFzaCwgZ3J1Yl9zaXplX3QgKmhhc2hfc2l6ZSkKK3sK KyAgZ3J1Yl9wYWNrZWRfZ3VpZF90IGd1aWQgPSB7IDAgfTsKKworICAvKiBzdXBwb3J0IFNIQTI1 NiwgU0hBMzg0IGFuZCBTSEE1MTIgZm9yIGNlcnRpZmljYXRlIGhhc2ggKi8KKyAgaWYgKGNlcnRf aGFzaF9zaXplID09IFNIQTI1Nl9IQVNIX1NJWkUpCisgICAgZ3J1Yl9tZW1jcHkgKCZndWlkLCAm R1JVQl9QS1NfQ0VSVF9YNTA5X1NIQTI1Nl9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUpOwor ICBlbHNlIGlmIChjZXJ0X2hhc2hfc2l6ZSA9PSBTSEEzODRfSEFTSF9TSVpFKQorICAgIGdydWJf bWVtY3B5ICgmZ3VpZCwgJkdSVUJfUEtTX0NFUlRfWDUwOV9TSEEzODRfR1VJRCwgR1JVQl9QQUNL RURfR1VJRF9TSVpFKTsKKyAgZWxzZSBpZiAoY2VydF9oYXNoX3NpemUgPT0gU0hBNTEyX0hBU0hf U0laRSkKKyAgICBncnViX21lbWNweSAoJmd1aWQsICZHUlVCX1BLU19DRVJUX1g1MDlfU0hBNTEy X0dVSUQsIEdSVUJfUEFDS0VEX0dVSURfU0laRSk7CisgIGVsc2UKKyAgICB7CisgICAgICBncnVi X2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJ1bnN1cHBvcnRlZCBoYXNoIHR5cGUgKCUiIFBSSXVH UlVCX1NJWkUgIikgYW5kICIKKyAgICAgICAgICAgICAgICAgICAgInNraXBwZWRcbiIsIGNlcnRf aGFzaF9zaXplKTsKKyAgICAgIHJldHVybiBHUlVCX0VSUl9VTktOT1dOX0NPTU1BTkQ7CisgICAg fQorCisgIHJldHVybiBnZXRfaGFzaCAoJmd1aWQsIGRhdGEsIGRhdGFfc2l6ZSwgaGFzaCwgaGFz aF9zaXplKTsKK30KKworLyogQ2hlY2sgdGhlIGhhc2ggcHJlc2VuY2UgaW4gdGhlIGRiL2RieCBs aXN0LiAqLworc3RhdGljIGJvb2wKK2NoZWNrX2hhc2hfcHJlc2VuY2UgKGdydWJfdWludDhfdCAq Y29uc3QgaGFzaCwgY29uc3QgZ3J1Yl9zaXplX3QgaGFzaF9zaXplLAorICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc2JfZGF0YWJhc2VfdCAqc2JfZGF0YWJhc2UpCit7CisgIGdydWJfdWludDMy X3QgaTsKKworICBmb3IgKGkgPSAwOyBpIDwgc2JfZGF0YWJhc2UtPmhhc2hfZW50cmllczsgaSsr KQorICAgIHsKKyAgICAgIGlmIChzYl9kYXRhYmFzZS0+aGFzaGVzW2ldID09IE5VTEwpCisgICAg ICAgIGNvbnRpbnVlOworCisgICAgICBpZiAoaGFzaF9zaXplID09IHNiX2RhdGFiYXNlLT5oYXNo X3NpemVzW2ldICYmCisgICAgICAgICAgZ3J1Yl9tZW1jbXAgKHNiX2RhdGFiYXNlLT5oYXNoZXNb aV0sIGhhc2gsIGhhc2hfc2l6ZSkgPT0gMCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor CisgIHJldHVybiBmYWxzZTsKK30KKworLyogQWRkIHRoZSBjZXJ0aWZpY2F0ZS9iaW5hcnkgaGFz aCBpbnRvIHRoZSBkYi9kYnggbGlzdC4gKi8KK3N0YXRpYyBncnViX2Vycl90CithZGRfaGFzaCAo Z3J1Yl91aW50OF90ICpjb25zdCBkYXRhLCBjb25zdCBncnViX3NpemVfdCBkYXRhX3NpemUsIHNi X2RhdGFiYXNlX3QgKnNiX2RhdGFiYXNlKQoreworICBncnViX3VpbnQ4X3QgKipoYXNoZXM7Cisg IGdydWJfc2l6ZV90ICpoYXNoX3NpemVzOworCisgIGlmIChkYXRhID09IE5VTEwgfHwgZGF0YV9z aXplID09IDApCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX09VVF9PRl9SQU5HRSwg ImNlcnRpZmljYXRlL2JpbmFyeS1oYXNoIGRhdGEgb3Igc2l6ZSBpcyBub3QgYXZhaWxhYmxlIik7 CisKKyAgaWYgKHNiX2RhdGFiYXNlLT5pc19kYiA9PSB0cnVlKQorICAgIHsKKyAgICAgIGlmIChj aGVja19oYXNoX3ByZXNlbmNlIChkYXRhLCBkYXRhX3NpemUsICZkYngpID09IHRydWUpCisgICAg ICAgIHsKKyAgICAgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsCisgICAgICAgICAg ICAgICAgICAgICAgICAiY2Fubm90IGFkZCBhIGhhc2ggKCUwMnglMDJ4JTAyeCUwMngpLCBhcyBp dCBpcyBwcmVzZW50IGluIHRoZSBkYnggbGlzdFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAg IGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0sIGRhdGFbM10pOworICAgICAgICAgIHJldHVybiBH UlVCX0VSUl9BQ0NFU1NfREVOSUVEOworICAgICAgICB9CisgICAgfQorCisgIGlmIChjaGVja19o YXNoX3ByZXNlbmNlIChkYXRhLCBkYXRhX3NpemUsIHNiX2RhdGFiYXNlKSA9PSB0cnVlKQorICAg IHsKKyAgICAgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwKKyAgICAgICAgICAgICAgICAg ICAgImNhbm5vdCBhZGQgYSBoYXNoICglMDJ4JTAyeCUwMnglMDJ4KSwgYXMgaXQgaXMgcHJlc2Vu dCBpbiB0aGUgJXMgbGlzdFxuIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0YVswXSwgZGF0YVsx XSwgZGF0YVsyXSwgZGF0YVszXSwgKChzYl9kYXRhYmFzZS0+aXNfZGIgPT0gdHJ1ZSkgPyAiZGIi IDogImRieCIpKTsKKyAgICAgIHJldHVybiBHUlVCX0VSUl9FWElTVFM7CisgICAgfQorCisgIGhh c2hlcyA9IGdydWJfcmVhbGxvYyAoc2JfZGF0YWJhc2UtPmhhc2hlcywgc2l6ZW9mIChncnViX3Vp bnQ4X3QgKikgKiAoc2JfZGF0YWJhc2UtPmhhc2hfZW50cmllcyArIDEpKTsKKyAgaWYgKGhhc2hl cyA9PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0ZfTUVNT1JZ LCAib3V0IG9mIG1lbW9yeSIpOworCisgIGhhc2hfc2l6ZXMgPSBncnViX3JlYWxsb2MgKHNiX2Rh dGFiYXNlLT5oYXNoX3NpemVzLCBzaXplb2YgKGdydWJfc2l6ZV90KSAqIChzYl9kYXRhYmFzZS0+ aGFzaF9lbnRyaWVzICsgMSkpOworICBpZiAoaGFzaF9zaXplcyA9PSBOVUxMKQorICAgIHsKKyAg ICAgIC8qIEFsbG9jYXRlZCBtZW1vcnkgd2lsbCBiZSBmcmVlZCBieSBmcmVlX2RiX2xpc3QoKS9m cmVlX2RieF9saXN0KCkuICovCisgICAgICBoYXNoZXNbc2JfZGF0YWJhc2UtPmhhc2hfZW50cmll c10gPSBOVUxMOworICAgICAgc2JfZGF0YWJhc2UtPmhhc2hlcyA9IGhhc2hlczsKKyAgICAgIHNi X2RhdGFiYXNlLT5oYXNoX2VudHJpZXMrKzsKKworICAgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdS VUJfRVJSX09VVF9PRl9NRU1PUlksICJvdXQgb2YgbWVtb3J5Iik7CisgICAgfQorCisgIGhhc2hl c1tzYl9kYXRhYmFzZS0+aGFzaF9lbnRyaWVzXSA9IGdydWJfbWFsbG9jIChkYXRhX3NpemUpOwor ICBpZiAoaGFzaGVzW3NiX2RhdGFiYXNlLT5oYXNoX2VudHJpZXNdID09IE5VTEwpCisgICAgcmV0 dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX09VVF9PRl9NRU1PUlksICJvdXQgb2YgbWVtb3J5Iik7 CisKKyAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLAorICAgICAgICAgICAgICAgICJhZGRl ZCB0aGUgaGFzaCAlMDJ4JTAyeCUwMnglMDJ4Li4uIHdpdGggc2l6ZSBvZiAlIiBQUkl1R1JVQl9T SVpFICIgdG8gdGhlICVzIGxpc3RcbiIsCisgICAgICAgICAgICAgICAgZGF0YVswXSwgZGF0YVsx XSwgZGF0YVsyXSwgZGF0YVszXSwgZGF0YV9zaXplLAorICAgICAgICAgICAgICAgICgoc2JfZGF0 YWJhc2UtPmlzX2RiID09IHRydWUpID8gImRiIiA6ICJkYngiKSk7CisKKyAgZ3J1Yl9tZW1jcHkg KGhhc2hlc1tzYl9kYXRhYmFzZS0+aGFzaF9lbnRyaWVzXSwgZGF0YSwgZGF0YV9zaXplKTsKKyAg aGFzaF9zaXplc1tzYl9kYXRhYmFzZS0+aGFzaF9lbnRyaWVzXSA9IGRhdGFfc2l6ZTsKKyAgc2Jf ZGF0YWJhc2UtPmhhc2hfc2l6ZXMgPSBoYXNoX3NpemVzOworICBzYl9kYXRhYmFzZS0+aGFzaGVz ID0gaGFzaGVzOworICBzYl9kYXRhYmFzZS0+aGFzaF9lbnRyaWVzKys7CisKKyAgcmV0dXJuIEdS VUJfRVJSX05PTkU7Cit9CisKK3N0YXRpYyBib29sCitpc19oYXNoIChjb25zdCBncnViX3BhY2tl ZF9ndWlkX3QgKmd1aWQpCit7CisgIC8qIEdVSUQgdHlwZSBvZiB0aGUgYmluYXJ5IGhhc2guICov CisgIGlmIChncnViX21lbWNtcCAoZ3VpZCwgJkdSVUJfUEtTX0NFUlRfU0hBMjU2X0dVSUQsIEdS VUJfUEFDS0VEX0dVSURfU0laRSkgPT0gMCB8fAorICAgICAgZ3J1Yl9tZW1jbXAgKGd1aWQsICZH UlVCX1BLU19DRVJUX1NIQTM4NF9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUpID09IDAgfHwK KyAgICAgIGdydWJfbWVtY21wIChndWlkLCAmR1JVQl9QS1NfQ0VSVF9TSEE1MTJfR1VJRCwgR1JV Ql9QQUNLRURfR1VJRF9TSVpFKSA9PSAwKQorICAgIHJldHVybiB0cnVlOworCisgIC8qIEdVSUQg dHlwZSBvZiB0aGUgY2VydGlmaWNhdGUgaGFzaC4gKi8KKyAgaWYgKGdydWJfbWVtY21wIChndWlk LCAmR1JVQl9QS1NfQ0VSVF9YNTA5X1NIQTI1Nl9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUp ID09IDAgfHwKKyAgICAgIGdydWJfbWVtY21wIChndWlkLCAmR1JVQl9QS1NfQ0VSVF9YNTA5X1NI QTM4NF9HVUlELCBHUlVCX1BBQ0tFRF9HVUlEX1NJWkUpID09IDAgfHwKKyAgICAgIGdydWJfbWVt Y21wIChndWlkLCAmR1JVQl9QS1NfQ0VSVF9YNTA5X1NIQTUxMl9HVUlELCBHUlVCX1BBQ0tFRF9H VUlEX1NJWkUpID09IDApCisgICAgcmV0dXJuIHRydWU7CisKKyAgcmV0dXJuIGZhbHNlOworfQor CitzdGF0aWMgYm9vbAoraXNfeDUwOSAoY29uc3QgZ3J1Yl9wYWNrZWRfZ3VpZF90ICpndWlkKQor eworICBpZiAoZ3J1Yl9tZW1jbXAgKGd1aWQsICZHUlVCX1BLU19DRVJUX1g1MDlfR1VJRCwgR1JV Ql9QQUNLRURfR1VJRF9TSVpFKSA9PSAwKQorICAgIHJldHVybiB0cnVlOworCisgIHJldHVybiBm YWxzZTsKK30KKwogc3RhdGljIGJvb2wKIGlzX2NlcnRfbWF0Y2ggKGNvbnN0IGdydWJfeDUwOV9j ZXJ0X3QgKmNlcnQxLCBjb25zdCBncnViX3g1MDlfY2VydF90ICpjZXJ0MikKIHsKQEAgLTEzNiw3 ICszMTcsMzMgQEAgaXNfY2VydF9tYXRjaCAoY29uc3QgZ3J1Yl94NTA5X2NlcnRfdCAqY2VydDEs IGNvbnN0IGdydWJfeDUwOV9jZXJ0X3QgKmNlcnQyKQogICByZXR1cm4gZmFsc2U7CiB9CiAKLS8q IENoZWNrIHRoZSBjZXJ0aWZpY2F0ZSBwcmVzZW5jZSBpbiB0aGUgZGIgbGlzdC4gKi8KKy8qIENo ZWNrIHRoZSBjZXJ0aWZpY2F0ZSBoYXNoIHByZXNlbmNlIGluIHRoZSBkYnggbGlzdC4gKi8KK3N0 YXRpYyBib29sCitpc19jZXJ0X2hhc2hfcHJlc2VudF9pbl9kYnggKGNvbnN0IGdydWJfdWludDhf dCAqZGF0YSwgY29uc3QgZ3J1Yl9zaXplX3QgZGF0YV9zaXplKQoreworICBncnViX2Vycl90IHJj OworICBncnViX3VpbnQzMl90IGk7CisgIGdydWJfc2l6ZV90IGNlcnRfaGFzaF9zaXplID0gMDsK KyAgZ3J1Yl91aW50OF90IGNlcnRfaGFzaFtHUlVCX01BWF9IQVNIX0xFTl0gPSB7IDAgfTsKKwor ICBmb3IgKGkgPSAwOyBpIDwgZGJ4Lmhhc2hfZW50cmllczsgaSsrKQorICAgIHsKKyAgICAgIGlm IChkYnguaGFzaGVzW2ldID09IE5VTEwpCisgICAgICAgIGNvbnRpbnVlOworCisgICAgICByYyA9 IGdlbmVyYXRlX2NlcnRfaGFzaCAoZGJ4Lmhhc2hfc2l6ZXNbaV0sIGRhdGEsIGRhdGFfc2l6ZSwg Y2VydF9oYXNoLCAmY2VydF9oYXNoX3NpemUpOworICAgICAgaWYgKHJjICE9IEdSVUJfRVJSX05P TkUpCisgICAgICAgIGNvbnRpbnVlOworCisgICAgICBpZiAoY2VydF9oYXNoX3NpemUgPT0gZGJ4 Lmhhc2hfc2l6ZXNbaV0gJiYKKyAgICAgICAgICBncnViX21lbWNtcCAoZGJ4Lmhhc2hlc1tpXSwg Y2VydF9oYXNoLCBjZXJ0X2hhc2hfc2l6ZSkgPT0gMCkKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg ICAgfQorCisgIHJldHVybiBmYWxzZTsKK30KKworLyogQ2hlY2sgdGhlIGNlcnRpZmljYXRlIHBy ZXNlbmNlIGluIHRoZSBkYi9kYnggbGlzdC4gKi8KIHN0YXRpYyBib29sCiBjaGVja19jZXJ0X3By ZXNlbmNlIChjb25zdCBncnViX3g1MDlfY2VydF90ICpjZXJ0X2luLCBjb25zdCBzYl9kYXRhYmFz ZV90ICpzYl9kYXRhYmFzZSkKIHsKQEAgLTE0OSw3ICszNTYsMTEgQEAgY2hlY2tfY2VydF9wcmVz ZW5jZSAoY29uc3QgZ3J1Yl94NTA5X2NlcnRfdCAqY2VydF9pbiwgY29uc3Qgc2JfZGF0YWJhc2Vf dCAqc2JfZGEKICAgcmV0dXJuIGZhbHNlOwogfQogCi0vKiBBZGQgdGhlIGNlcnRpZmljYXRlIGlu dG8gdGhlIGRiIGxpc3QgKi8KKy8qCisgKiBBZGQgdGhlIGNlcnRpZmljYXRlIGludG8gdGhlIGRi IGxpc3QgaWYgaXQgaXMgbm90IHByZXNlbnQgaW4gdGhlIGRieCBhbmQgZGIKKyAqIGxpc3Qgd2hl biBpc19kYiBpcyB0cnVlLiBBZGQgdGhlIGNlcnRpZmljYXRlIGludG8gdGhlIGRieCBsaXN0IHdo ZW4gaXNfZGIgaXMKKyAqIGZhbHNlLgorICovCiBzdGF0aWMgZ3J1Yl9lcnJfdAogYWRkX2NlcnRp ZmljYXRlIChjb25zdCBncnViX3VpbnQ4X3QgKmRhdGEsIGNvbnN0IGdydWJfc2l6ZV90IGRhdGFf c2l6ZSwKICAgICAgICAgICAgICAgICAgc2JfZGF0YWJhc2VfdCAqc2JfZGF0YWJhc2UpCkBAIC0x NjcsMzAgKzM3OCw1NCBAQCBhZGRfY2VydGlmaWNhdGUgKGNvbnN0IGdydWJfdWludDhfdCAqZGF0 YSwgY29uc3QgZ3J1Yl9zaXplX3QgZGF0YV9zaXplLAogICByYyA9IGdydWJfeDUwOV9jZXJ0X3Bh cnNlIChkYXRhLCBkYXRhX3NpemUsIGNlcnQpOwogICBpZiAocmMgIT0gR1JVQl9FUlJfTk9ORSkK ICAgICB7Ci0gICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJjYW5ub3QgYWRkIGEg Y2VydGlmaWNhdGUgQ049JyVzJyB0byB0aGUgZGIgbGlzdFxuIiwKLSAgICAgICAgICAgICAgICAg ICAgY2VydC0+c3ViamVjdCk7CisgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJj YW5ub3QgYWRkIGEgY2VydGlmaWNhdGUgQ049JyVzJyB0byB0aGUgJXMgbGlzdFxuIiwKKyAgICAg ICAgICAgICAgICAgICAgY2VydC0+c3ViamVjdCwgKHNiX2RhdGFiYXNlLT5pc19kYiA9PSB0cnVl KSA/ICJkYiIgOiAiZGJ4Iik7CiAgICAgICBncnViX2ZyZWUgKGNlcnQpOwogICAgICAgcmV0dXJu IHJjOwogICAgIH0KIAorICAvKgorICAgKiBPbmx5IGNoZWNrcyB0aGUgY2VydGlmaWNhdGUgYWdh aW5zdCBkYnggaWYgaXNfZGIgaXMgdHJ1ZSB3aGVuIGR5bmFtaWMga2V5CisgICAqIG1hbmFnZW1l bnQgaXMgZW5hYmxlZC4KKyAgICovCisgIGlmIChhcHBlbmRfa2V5X21nbXQgPT0gdHJ1ZSkKKyAg ICB7CisgICAgICBpZiAoc2JfZGF0YWJhc2UtPmlzX2RiID09IHRydWUpCisgICAgICAgIHsKKyAg ICAgICAgICBpZiAoaXNfY2VydF9oYXNoX3ByZXNlbnRfaW5fZGJ4IChkYXRhLCBkYXRhX3NpemUp ID09IHRydWUgfHwKKyAgICAgICAgICAgICAgY2hlY2tfY2VydF9wcmVzZW5jZSAoY2VydCwgJmRi eCkgPT0gdHJ1ZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgZ3J1Yl9kcHJpbnRmICgi YXBwZW5kZWRzaWciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYW5ub3QgYWRkIGEg Y2VydGlmaWNhdGUgQ049JyVzJywgYXMgaXQgaXMgcHJlc2VudCBpbiB0aGUgZGJ4IGxpc3QiLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnQtPnN1YmplY3QpOworICAgICAgICAgICAg ICByYyA9IEdSVUJfRVJSX0FDQ0VTU19ERU5JRUQ7CisgICAgICAgICAgICAgIGdvdG8gZmFpbDsK KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICBpZiAoY2hlY2tfY2VydF9wcmVz ZW5jZSAoY2VydCwgc2JfZGF0YWJhc2UpID09IHRydWUpCiAgICAgewogICAgICAgZ3J1Yl9kcHJp bnRmICgiYXBwZW5kZWRzaWciLAotICAgICAgICAgICAgICAgICAgICAiY2Fubm90IGFkZCBhIGNl cnRpZmljYXRlIENOPSclcycsIGFzIGl0IGlzIHByZXNlbnQgaW4gdGhlIGRiIGxpc3QiLAotICAg ICAgICAgICAgICAgICAgICBjZXJ0LT5zdWJqZWN0KTsKLSAgICAgIGdydWJfeDUwOV9jZXJ0X3Jl bGVhc2UgKGNlcnQpOwotICAgICAgZ3J1Yl9mcmVlIChjZXJ0KTsKLQotICAgICAgcmV0dXJuIEdS VUJfRVJSX0VYSVNUUzsKKyAgICAgICAgICAgICAgICAgICAgImNhbm5vdCBhZGQgYSBjZXJ0aWZp Y2F0ZSBDTj0nJXMnLCBhcyBpdCBpcyBwcmVzZW50IGluIHRoZSAlcyBsaXN0IiwKKyAgICAgICAg ICAgICAgICAgICAgY2VydC0+c3ViamVjdCwgKChzYl9kYXRhYmFzZS0+aXNfZGIgPT0gdHJ1ZSkg PyAiZGIiIDogImRieCIpKTsKKyAgICAgIHJjID0gR1JVQl9FUlJfRVhJU1RTOworICAgICAgZ290 byBmYWlsOwogICAgIH0KIAotICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJhZGRlZCBh IGNlcnRpZmljYXRlIENOPSclcycgdG8gdGhlIGRiIGxpc3RcbiIsCi0gICAgICAgICAgICAgICAg Y2VydC0+c3ViamVjdCk7CisgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwgImFkZGVkIGEg Y2VydGlmaWNhdGUgQ049JyVzJyB0byB0aGUgJXMgbGlzdFxuIiwKKyAgICAgICAgICAgICAgICBj ZXJ0LT5zdWJqZWN0LCAoKHNiX2RhdGFiYXNlLT5pc19kYiA9PSB0cnVlKSA/ICJkYiIgOiAiZGJ4 IikpOwogCiAgIGNlcnQtPm5leHQgPSBzYl9kYXRhYmFzZS0+Y2VydHM7CiAgIHNiX2RhdGFiYXNl LT5jZXJ0cyA9IGNlcnQ7CiAgIHNiX2RhdGFiYXNlLT5jZXJ0X2VudHJpZXMrKzsKIAorICByZXR1 cm4gcmM7CisKKyBmYWlsOgorICBncnViX3g1MDlfY2VydF9yZWxlYXNlIChjZXJ0KTsKKyAgZ3J1 Yl9mcmVlIChjZXJ0KTsKKwogICByZXR1cm4gcmM7CiB9CiAKQEAgLTM4Miw2ICs2MTcsNjggQEAg Z3J1Yl92ZXJpZnlfYXBwZW5kZWRfc2lnbmF0dXJlIChjb25zdCBncnViX3VpbnQ4X3QgKmJ1Ziwg Z3J1Yl9zaXplX3QgYnVmc2l6ZSkKICAgcmV0dXJuIGVycjsKIH0KIAorLyogQWRkIHRoZSBYLjUw OSBjZXJ0aWZpY2F0ZXMvYmluYXJ5IGhhc2ggdG8gdGhlIGRiIGxpc3QgZnJvbSBQS1MuICovCitz dGF0aWMgZ3J1Yl9lcnJfdAorbG9hZF9wa3MyZGIgKHZvaWQpCit7CisgIGdydWJfZXJyX3QgcmM7 CisgIGdydWJfdWludDMyX3QgaTsKKworICBmb3IgKGkgPSAwOyBpIDwgcGtzX2tleXN0b3JlLT5k Yl9lbnRyaWVzOyBpKyspCisgICAgeworICAgICAgaWYgKGlzX2hhc2ggKCZwa3Nfa2V5c3RvcmUt PmRiW2ldLmd1aWQpID09IHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICByYyA9IGFkZF9oYXNo IChwa3Nfa2V5c3RvcmUtPmRiW2ldLmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgcGtz X2tleXN0b3JlLT5kYltpXS5kYXRhX3NpemUsICZkYik7CisgICAgICAgICAgaWYgKHJjID09IEdS VUJfRVJSX09VVF9PRl9NRU1PUlkpCisgICAgICAgICAgICByZXR1cm4gcmM7CisgICAgICAgIH0K KyAgICAgIGVsc2UgaWYgKGlzX3g1MDkgKCZwa3Nfa2V5c3RvcmUtPmRiW2ldLmd1aWQpID09IHRy dWUpCisgICAgICAgIHsKKyAgICAgICAgICByYyA9IGFkZF9jZXJ0aWZpY2F0ZSAocGtzX2tleXN0 b3JlLT5kYltpXS5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwa3Nfa2V5 c3RvcmUtPmRiW2ldLmRhdGFfc2l6ZSwgJmRiKTsKKyAgICAgICAgICBpZiAocmMgPT0gR1JVQl9F UlJfT1VUX09GX01FTU9SWSkKKyAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAgfQorICAg ICAgZWxzZQorICAgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJ1bnN1cHBvcnRl ZCBzaWduYXR1cmUgZGF0YSB0eXBlIGFuZCAiCisgICAgICAgICAgICAgICAgICAgICAgInNraXBw ZWQgKCV1KVxuIiwgaSArIDEpOworICAgIH0KKworICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKK30K KworLyogQWRkIHRoZSBjZXJ0aWZpY2F0ZXMgYW5kIGNlcnRpZmljYXRlL2JpbmFyeSBoYXNoIHRv IHRoZSBkYnggbGlzdCBmcm9tIFBLUy4gKi8KK3N0YXRpYyBncnViX2Vycl90Citsb2FkX3BrczJk YnggKHZvaWQpCit7CisgIGdydWJfZXJyX3QgcmM7CisgIGdydWJfdWludDMyX3QgaTsKKworICBm b3IgKGkgPSAwOyBpIDwgcGtzX2tleXN0b3JlLT5kYnhfZW50cmllczsgaSsrKQorICAgIHsKKyAg ICAgIGlmIChpc194NTA5ICgmcGtzX2tleXN0b3JlLT5kYnhbaV0uZ3VpZCkgPT0gdHJ1ZSkKKyAg ICAgICAgeworICAgICAgICAgIHJjID0gYWRkX2NlcnRpZmljYXRlIChwa3Nfa2V5c3RvcmUtPmRi eFtpXS5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwa3Nfa2V5c3RvcmUt PmRieFtpXS5kYXRhX3NpemUsICZkYngpOworICAgICAgICAgIGlmIChyYyA9PSBHUlVCX0VSUl9P VVRfT0ZfTUVNT1JZKQorICAgICAgICAgICAgcmV0dXJuIHJjOworICAgICAgICB9CisgICAgICBl bHNlIGlmIChpc19oYXNoICgmcGtzX2tleXN0b3JlLT5kYnhbaV0uZ3VpZCkgPT0gdHJ1ZSkKKyAg ICAgICAgeworICAgICAgICAgIHJjID0gYWRkX2hhc2ggKHBrc19rZXlzdG9yZS0+ZGJ4W2ldLmRh dGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgcGtzX2tleXN0b3JlLT5kYnhbaV0uZGF0YV9z aXplLCAmZGJ4KTsKKyAgICAgICAgICBpZiAocmMgIT0gR1JVQl9FUlJfTk9ORSkKKyAgICAgICAg ICAgIHJldHVybiByYzsKKyAgICAgICAgfQorICAgICAgZWxzZQorICAgICAgICBncnViX2Rwcmlu dGYgKCJhcHBlbmRlZHNpZyIsICJ1bnN1cHBvcnRlZCBzaWduYXR1cmUgZGF0YSB0eXBlIGFuZCAi CisgICAgICAgICAgICAgICAgICAgICAgInNraXBwZWQgKCV1KVxuIiwgaSArIDEpOworICAgIH0K KworICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKK30KKwogLyoKICAqIEV4dHJhY3QgdGhlIFguNTA5 IGNlcnRpZmljYXRlcyBmcm9tIHRoZSBFTEYgTm90ZSBoZWFkZXIsIHBhcnNlIGl0LCBhbmQgYWRk CiAgKiBpdCB0byB0aGUgZGIgbGlzdC4KQEAgLTQyMiwxMSArNzE5LDQ1IEBAIGxvYWRfZWxmMmRi ICh2b2lkKQogICAgIH0KIH0KIAorLyoKKyAqIEV4dHJhY3QgdHJ1c3RlZCBhbmQgZGlzdHJ1c3Rl ZCBrZXlzIGZyb20gUEtTIGFuZCBzdG9yZSB0aGVtIGluIHRoZSBkYiBhbmQKKyAqIGRieCBsaXN0 LgorICovCitzdGF0aWMgdm9pZAorY3JlYXRlX2Ric19mcm9tX3BrcyAodm9pZCkKK3sKKyAgZ3J1 Yl9lcnJfdCBlcnI7CisKKyAgZXJyID0gbG9hZF9wa3MyZGJ4ICgpOworICBpZiAoZXJyICE9IEdS VUJfRVJSX05PTkUpCisgICAgZ3J1Yl9wcmludGYgKCJ3YXJuaW5nOiBkYnggbGlzdCBtaWdodCBu b3QgYmUgZnVsbHkgcG9wdWxhdGVkXG4iKTsKKworICAvKgorICAgKiBJZiBkYiBkb2VzIG5vdCBl eGlzdCBpbiB0aGUgUEtTIHN0b3JhZ2UsIHRoZW4gcmVhZCB0aGUgc3RhdGljIGtleXMgYXMgYSBk YgorICAgKiBkZWZhdWx0IGtleXMgZnJvbSB0aGUgR1JVQiBFTEYgTm90ZSBhbmQgYWRkIHRoZW0g aW50byB0aGUgZGIgbGlzdC4KKyAgICovCisgIGlmIChwa3Nfa2V5c3RvcmUtPmRiX2V4aXN0cyA9 PSBmYWxzZSkKKyAgICBsb2FkX2VsZjJkYiAoKTsKKyAgZWxzZQorICAgIHsKKyAgICAgIGVyciA9 IGxvYWRfcGtzMmRiICgpOworICAgICAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgICAg ICBncnViX3ByaW50ZiAoIndhcm5pbmc6IGRiIGxpc3QgbWlnaHQgbm90IGJlIGZ1bGx5IHBvcHVs YXRlZFxuIik7CisgICAgfQorCisgIGdydWJfcGtzX2ZyZWVfZGF0YSAoKTsKKyAgZ3J1Yl9kcHJp bnRmICgiYXBwZW5kZWRzaWciLCAidGhlIGRiIGxpc3Qgbm93IGhhcyAldSBrZXlzXG4iCisgICAg ICAgICAgICAgICAgInRoZSBkYnggbGlzdCBub3cgaGFzICV1IGtleXNcbiIsCisgICAgICAgICAg ICAgICAgZGIuaGFzaF9lbnRyaWVzICsgZGIuY2VydF9lbnRyaWVzLAorICAgICAgICAgICAgICAg IGRieC5oYXNoX2VudHJpZXMgKyBkYnguY2VydF9lbnRyaWVzKTsKK30KKwogLyogRnJlZSBkYiBs aXN0IG1lbW9yeSAqLwogc3RhdGljIHZvaWQKIGZyZWVfZGJfbGlzdCAodm9pZCkKIHsKICAgZ3J1 Yl94NTA5X2NlcnRfdCAqY2VydDsKKyAgZ3J1Yl91aW50MzJfdCBpOwogCiAgIHdoaWxlIChkYi5j ZXJ0cyAhPSBOVUxMKQogICAgIHsKQEAgLTQzNiw5ICs3NjcsMzcgQEAgZnJlZV9kYl9saXN0ICh2 b2lkKQogICAgICAgZ3J1Yl9mcmVlIChjZXJ0KTsKICAgICB9CiAKKyAgZm9yIChpID0gMDsgaSA8 IGRiLmhhc2hfZW50cmllczsgaSsrKQorICAgIGdydWJfZnJlZSAoZGIuaGFzaGVzW2ldKTsKKwor ICBncnViX2ZyZWUgKGRiLmhhc2hlcyk7CisgIGdydWJfZnJlZSAoZGIuaGFzaF9zaXplcyk7CiAg IGdydWJfbWVtc2V0ICgmZGIsIDAsIHNpemVvZiAoc2JfZGF0YWJhc2VfdCkpOwogfQogCisvKiBG cmVlIGRieCBsaXN0IG1lbW9yeSAqLworc3RhdGljIHZvaWQKK2ZyZWVfZGJ4X2xpc3QgKHZvaWQp Cit7CisgIGdydWJfeDUwOV9jZXJ0X3QgKmNlcnQ7CisgIGdydWJfdWludDMyX3QgaTsKKworICB3 aGlsZSAoZGJ4LmNlcnRzICE9IE5VTEwpCisgICAgeworICAgICAgY2VydCA9IGRieC5jZXJ0czsK KyAgICAgIGRieC5jZXJ0cyA9IGRieC5jZXJ0cy0+bmV4dDsKKyAgICAgIGdydWJfeDUwOV9jZXJ0 X3JlbGVhc2UgKGNlcnQpOworICAgICAgZ3J1Yl9mcmVlIChjZXJ0KTsKKyAgICB9CisKKyAgZm9y IChpID0gMDsgaSA8IGRieC5oYXNoX2VudHJpZXM7IGkrKykKKyAgICBncnViX2ZyZWUgKGRieC5o YXNoZXNbaV0pOworCisgIGdydWJfZnJlZSAoZGJ4Lmhhc2hlcyk7CisgIGdydWJfZnJlZSAoZGJ4 Lmhhc2hfc2l6ZXMpOworICBncnViX21lbXNldCAoJmRieCwgMCwgc2l6ZW9mIChzYl9kYXRhYmFz ZV90KSk7Cit9CisKIHN0YXRpYyBjb25zdCBjaGFyICoKIGdydWJfZW52X3JlYWRfc2VjIChzdHJ1 Y3QgZ3J1Yl9lbnZfdmFyICp2YXIgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAogICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKnZhbCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpCkBAIC02 MzEsMTAgKzk5MCwyMyBAQCBHUlVCX01PRF9JTklUIChhcHBlbmRlZHNpZykKICAgaWYgKHJjICE9 IEFTTjFfU1VDQ0VTUykKICAgICBncnViX2ZhdGFsICgiZXJyb3IgaW5pdGluZyBBU04uMSBkYXRh IHN0cnVjdHVyZXM6ICVkOiAlc1xuIiwgcmMsIGFzbjFfc3RyZXJyb3IgKHJjKSk7CiAKLSAgLyog RXh0cmFjdCB0cnVzdGVkIGtleXMgZnJvbSBFTEYgTm90ZSBhbmQgc3RvcmUgdGhlbSBpbiB0aGUg ZGIuICovCi0gIGxvYWRfZWxmMmRiICgpOwotICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIs ICJ0aGUgZGIgbGlzdCBub3cgaGFzICV1IHN0YXRpYyBrZXlzXG4iLAotICAgICAgICAgICAgICAg IGRiLmNlcnRfZW50cmllcyk7CisgIC8qCisgICAqIElmIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24g aXMgZW5hYmxlZCB3aXRoIHRoZSBkeW5hbWljIGtleSBtYW5hZ2VtZW50LAorICAgKiBleHRyYWN0 IHRydXN0ZWQgYW5kIGRpc3RydXN0ZWQga2V5cyBmcm9tIFBLUyBhbmQgc3RvcmUgdGhlbSBpbiB0 aGUgZGIKKyAgICogYW5kIGRieCBsaXN0LgorICAgKi8KKyAgaWYgKGFwcGVuZF9rZXlfbWdtdCA9 PSB0cnVlKQorICAgIGNyZWF0ZV9kYnNfZnJvbV9wa3MgKCk7CisgIC8qCisgICAqIElmIHNpZ25h dHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCB3aXRoIHRoZSBzdGF0aWMga2V5IG1hbmFnZW1l bnQsCisgICAqIGV4dHJhY3QgdHJ1c3RlZCBrZXlzIGZyb20gRUxGIE5vdGUgYW5kIHN0b3JlIHRo ZW0gaW4gdGhlIGRiIGxpc3QuCisgICAqLworICBlbHNlCisgICAgeworICAgICAgbG9hZF9lbGYy ZGIgKCk7CisgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJ0aGUgZGIgbGlzdCBu b3cgaGFzICV1IHN0YXRpYyBrZXlzXG4iLAorICAgICAgICAgICAgICAgICAgICBkYi5jZXJ0X2Vu dHJpZXMpOworICAgIH0KIAogICBncnViX3ZlcmlmaWVyX3JlZ2lzdGVyICgmZ3J1Yl9hcHBlbmRl ZHNpZ192ZXJpZmllcik7CiAgIGdydWJfZGxfc2V0X3BlcnNpc3RlbnQgKG1vZCk7CkBAIC02NDgs NiArMTAyMCw3IEBAIEdSVUJfTU9EX0ZJTkkgKGFwcGVuZGVkc2lnKQogICAgKi8KIAogICBmcmVl X2RiX2xpc3QgKCk7CisgIGZyZWVfZGJ4X2xpc3QgKCk7CiAgIGdydWJfcmVnaXN0ZXJfdmFyaWFi bGVfaG9vayAoImNoZWNrX2FwcGVuZGVkX3NpZ25hdHVyZXMiLCBOVUxMLCBOVUxMKTsKICAgZ3J1 Yl9lbnZfdW5zZXQgKCJjaGVja19hcHBlbmRlZF9zaWduYXR1cmVzIik7CiAgIGdydWJfcmVnaXN0 ZXJfdmFyaWFibGVfaG9vayAoImFwcGVuZGVkc2lnX2tleV9tZ210IiwgTlVMTCwgTlVMTCk7CmRp ZmYgLS1naXQgYS9pbmNsdWRlL2dydWIvZWZpL3Brcy5oIGIvaW5jbHVkZS9ncnViL2VmaS9wa3Mu aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmZmMzA2ZjU5MQotLS0gL2Rl di9udWxsCisrKyBiL2luY2x1ZGUvZ3J1Yi9lZmkvcGtzLmgKQEAgLTAsMCArMSwxMTIgQEAKKy8q CisgKiBDb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDE1LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cyByZXNlcnZlZC4gVGhpcworICogcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRl cmlhbHMgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZQorICogdW5kZXIgdGhlIHRlcm1z IGFuZCBjb25kaXRpb25zIG9mIHRoZSAyLUNsYXVzZSBCU0QgTGljZW5zZSB3aGljaAorICogYWNj b21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29u ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJp YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0 CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp c2NsYWltZXIgaW4gdGhlCisgKiBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElT IgorICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVND TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklC VVRPUlMgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP RiBUSEUKKyAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIGh0dHBzOi8vZ2l0 aHViLmNvbS90aWFub2NvcmUvZWRrMi1zdGFnaW5nIChlZGsyLXN0YWdpbmcgcmVwbyBvZiB0aWFu b2NvcmUpLAorICogdGhlIEltYWdlQXV0aGVudGljYXRpb24uaCBmaWxlIHVuZGVyIGl0LCBhbmQg aGVyZSdzIHRoZSBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UuCisgKgorICogTWRlUGtnL0luY2x1ZGUv R3VpZC9JbWFnZUF1dGhlbnRpY2F0aW9uLmgKKyAqCisgKiBDb3B5cmlnaHQgMjAyMiwgMjAyMywg MjAyNCwgMjAyNSBJQk0gQ29ycC4KKyAqLworCisjaWZuZGVmIFBLU19IRUFERVIKKyNkZWZpbmUg UEtTX0hFQURFUiAgIDEKKworI2luY2x1ZGUgPGdydWIvdHlwZXMuaD4KKworLyoKKyAqIEl0IGlz IGRlcml2ZWQgZnJvbSBFRklfQ0VSVF9YNTA5X0dVSUQuCisgKiBodHRwczovL2dpdGh1Yi5jb20v dGlhbm9jb3JlL2VkazItc3RhZ2luZy9ibG9iL21hc3Rlci9NZGVQa2cvSW5jbHVkZS9HdWlkL0lt YWdlQXV0aGVudGljYXRpb24uaAorICovCisjZGVmaW5lIEdSVUJfUEtTX0NFUlRfWDUwOV9HVUlE IFwKKyAgKGdydWJfZ3VpZF90KSBcCisgIHsgMHhhMTU5YzBhNSwgMHhlNDk0LCAweGE3NGEsIFwK KyAgICB7IDB4ODcsIDB4YjUsIDB4YWIsIDB4MTUsIDB4NWMsIDB4MmIsIDB4ZjAsIDB4NzIgfSBc CisgIH0KKworLyoKKyAqIEl0IGlzIGRlcml2ZWQgZnJvbSBFRklfQ0VSVF9TSEEyNTZfR1VJRC4K KyAqIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi1zdGFnaW5nL2Jsb2IvbWFzdGVy L01kZVBrZy9JbmNsdWRlL0d1aWQvSW1hZ2VBdXRoZW50aWNhdGlvbi5oCisgKi8KKyNkZWZpbmUg R1JVQl9QS1NfQ0VSVF9TSEEyNTZfR1VJRCBcCisgIChncnViX2d1aWRfdCkgXAorICB7IDB4MjYx NmM0YzEsIDB4NGM1MCwgMHg5MjQwLCBcCisgICAgeyAweGFjLCAweGE5LCAweDQxLCAweGY5LCAw eDM2LCAweDkzLCAweDQzLCAweDI4IH0gXAorICB9CisKKy8qCisgKiBJdCBpcyBkZXJpdmVkIGZy b20gRUZJX0NFUlRfU0hBMzg0X0dVSUQuCisgKiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3Jl L2VkazItc3RhZ2luZy9ibG9iL21hc3Rlci9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVu dGljYXRpb24uaAorICovCisjZGVmaW5lIEdSVUJfUEtTX0NFUlRfU0hBMzg0X0dVSUQgXAorICAo Z3J1Yl9ndWlkX3QpIFwKKyAgeyAweDA3NTMzZWZmLCAweGQwOWYsIDB4Yzk0OCwgXAorICAgIHsg MHg4NSwgMHhmMSwgMHg4YSwgMHhkNSwgMHg2YywgMHg3MCwgMHgxZSwgMHgxIH0gXAorICB9CisK Ky8qCisgKiBJdCBpcyBkZXJpdmVkIGZyb20gRUZJX0NFUlRfU0hBNTEyX0dVSUQuCisgKiBodHRw czovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItc3RhZ2luZy9ibG9iL21hc3Rlci9NZGVQa2cv SW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaAorICovCisjZGVmaW5lIEdSVUJfUEtT X0NFUlRfU0hBNTEyX0dVSUQgXAorICAoZ3J1Yl9ndWlkX3QpIFwKKyAgeyAweGFlMGYzZTA5LCAw eGM0YTYsIDB4NTA0ZiwgXAorICAgIHsgMHg5ZiwgMHgxYiwgMHhkNCwgMHgxZSwgMHgyYiwgMHg4 OSwgMHhjMSwgMHg5YSB9IFwKKyAgfQorCisvKgorICogSXQgaXMgZGVyaXZlZCBmcm9tIEVGSV9D RVJUX1g1MDlfU0hBMjU2X0dVSUQuCisgKiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2Vk azItc3RhZ2luZy9ibG9iL21hc3Rlci9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGlj YXRpb24uaAorICovCisjZGVmaW5lIEdSVUJfUEtTX0NFUlRfWDUwOV9TSEEyNTZfR1VJRCBcCisg IChncnViX2d1aWRfdCkgXAorICB7IDB4OTJhNGQyM2IsIDB4YzA5NiwgMHg3OTQwLCBcCisgICAg eyAweGI0LCAweDIwLCAweGZjLCAweGY5LCAweDhlLCAweGYxLCAweDAzLCAweGVkIH0gXAorICB9 CisKKy8qCisgKiBJdCBpcyBkZXJpdmVkIGZyb20gRUZJX0NFUlRfWDUwOV9TSEEzODRfR1VJRC4K KyAqIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi1zdGFnaW5nL2Jsb2IvbWFzdGVy L01kZVBrZy9JbmNsdWRlL0d1aWQvSW1hZ2VBdXRoZW50aWNhdGlvbi5oCisgKi8KKyNkZWZpbmUg R1JVQl9QS1NfQ0VSVF9YNTA5X1NIQTM4NF9HVUlEICAgICBcCisgIChncnViX2d1aWRfdCkgXAor ICB7IDB4NmU4Nzc2NzAsIDB4YzI4MCwgMHhlNjRlLCBcCisgICAgeyAweGFhLCAweGQyLCAweDI4 LCAweGIzLCAweDQ5LCAweGE2LCAweDg2LCAweDViIH0gXAorICB9CisKKy8qCisgKiBJdCBpcyBk ZXJpdmVkIGZyb20gRUZJX0NFUlRfWDUwOV9TSEE1MTJfR1VJRC4KKyAqIGh0dHBzOi8vZ2l0aHVi LmNvbS90aWFub2NvcmUvZWRrMi1zdGFnaW5nL2Jsb2IvbWFzdGVyL01kZVBrZy9JbmNsdWRlL0d1 aWQvSW1hZ2VBdXRoZW50aWNhdGlvbi5oCisgKi8KKyNkZWZpbmUgR1JVQl9QS1NfQ0VSVF9YNTA5 X1NIQTUxMl9HVUlEIFwKKyAgKGdydWJfZ3VpZF90KSBcCisgIHsgMHg2M2JmNmQ0NCwgMHgwMjI1 LCAweGRhNGMsIFwKKyAgICB7IDB4YmMsIDB4ZmEsIDB4MjQsIDB4NjUsIDB4ZDIsIDB4YjAsIDB4 ZmUsIDB4OWQgfSBcCisgIH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2dydWIvdHlw ZXMuaCBiL2luY2x1ZGUvZ3J1Yi90eXBlcy5oCmluZGV4IDQ1MDc5YmY2NS4uYjNiYTc2MmZjIDEw MDY0NAotLS0gYS9pbmNsdWRlL2dydWIvdHlwZXMuaAorKysgYi9pbmNsdWRlL2dydWIvdHlwZXMu aApAQCAtMzc5LDYgKzM3OSw4IEBAIHN0cnVjdCBncnViX2d1aWQKIH0gX19hdHRyaWJ1dGVfXyAo KGFsaWduZWQoNCkpKTsKIHR5cGVkZWYgc3RydWN0IGdydWJfZ3VpZCBncnViX2d1aWRfdDsKIAor I2RlZmluZSBHUlVCX0dVSURfU0laRSAgICAoc2l6ZW9mIChncnViX2d1aWRfdCkpCisKIHN0cnVj dCBncnViX3BhY2tlZF9ndWlkCiB7CiAgIGdydWJfdWludDMyX3QgZGF0YTE7CkBAIC0zODgsNCAr MzkwLDYgQEAgc3RydWN0IGdydWJfcGFja2VkX2d1aWQKIH0gR1JVQl9QQUNLRUQ7CiB0eXBlZGVm IHN0cnVjdCBncnViX3BhY2tlZF9ndWlkIGdydWJfcGFja2VkX2d1aWRfdDsKIAorI2RlZmluZSBH UlVCX1BBQ0tFRF9HVUlEX1NJWkUgICAgKHNpemVvZiAoZ3J1Yl9wYWNrZWRfZ3VpZF90KSkKKwog I2VuZGlmIC8qICEgR1JVQl9UWVBFU19IRUFERVIgKi8KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpHcnVi LWRldmVsIG1haWxpbmcgbGlzdApHcnViLWRldmVsQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUu b3JnL21haWxtYW4vbGlzdGluZm8vZ3J1Yi1kZXZlbAo=