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 D818DC021A4 for ; Wed, 26 Feb 2025 04:25:03 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tn8y5-0001Co-JN; Tue, 25 Feb 2025 23:24:21 -0500 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 1tn8y3-0001Cc-98 for grub-devel@gnu.org; Tue, 25 Feb 2025 23:24:19 -0500 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 1tn8xz-0003XL-6J for grub-devel@gnu.org; Tue, 25 Feb 2025 23:24:19 -0500 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 51Q1kwqK027919; Wed, 26 Feb 2025 04:24:07 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=yQhDU3 DOE/goNZhU9wWvTGie22Jr4QtimQ9osbmJ+Gg=; b=nFlW+vRchqp5xBKgAcKg3s Wrx8Vi+ImzbJ22KesH9V2pLLD27k8eyWB0lRmyp4YpTWpBO2ayUmBg0+DbkXG3IF EBGAPaM8bHnyKbSGk9RDCm5awkKNS7Cu+QbWck+qzmdNMXOTEuf/dvR4ce/J/YoB RsNDZ5/f26+u13DWen6UyhFe95qA0f1c8Aq6dWjr+yBRzE6YE3dYDggE9DMHP+zb NoBZUJUxk/4Bb0hQOGY54cLw/Bsm06gUDp0CwcN18gxwhAi//gdr+V3Kmw69CMzO FqYhoNcRzMZ02Z2IuYC4uEUt76OeVgpIXgLKay8aQt7UnY0Iylkx9D9QfoTuM/FQ == Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 451q5j92yt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 26 Feb 2025 04:24:07 +0000 (GMT) Received: from m0356517.ppops.net (m0356517.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 51Q4HUT9000796; Wed, 26 Feb 2025 04:24:07 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 451q5j92yq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 26 Feb 2025 04:24:06 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 51Q0lVCh026304; Wed, 26 Feb 2025 04:24:05 GMT Received: from smtprelay04.dal12v.mail.ibm.com ([172.16.1.6]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 44yswngqjd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 26 Feb 2025 04:24:05 +0000 Received: from smtpav01.dal12v.mail.ibm.com (smtpav01.dal12v.mail.ibm.com [10.241.53.100]) by smtprelay04.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 51Q4O4xH17760964 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 26 Feb 2025 04:24:04 GMT Received: from smtpav01.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9AB6158059; Wed, 26 Feb 2025 04:24:04 +0000 (GMT) Received: from smtpav01.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 364D658058; Wed, 26 Feb 2025 04:24:04 +0000 (GMT) Received: from ltc.linux.ibm.com (unknown [9.5.196.140]) by smtpav01.dal12v.mail.ibm.com (Postfix) with ESMTP; Wed, 26 Feb 2025 04:24:04 +0000 (GMT) MIME-Version: 1.0 Date: Wed, 26 Feb 2025 09:54:04 +0530 From: sudhakar To: Stefan Berger Cc: grub-devel@gnu.org, dja@axtens.net, jan.setjeeilers@oracle.com, julian.klode@canonical.com, mate.kukri@canonical.com, pjones@redhat.com, avnish@linux.ibm.com, nayna@linux.ibm.com, ssrish@linux.ibm.com, Rashmica Gupta Subject: Re: [PATCH v1 01/21] powerpc-ieee1275: Add support for signing grub with an appended signature In-Reply-To: <0f082a5c-994c-44ad-9731-bfc10fb201ef@linux.ibm.com> References: <20241218145647.1390837-1-sudhakar@linux.ibm.com> <20241218145647.1390837-2-sudhakar@linux.ibm.com> <0f082a5c-994c-44ad-9731-bfc10fb201ef@linux.ibm.com> Message-ID: X-Sender: sudhakar@linux.ibm.com X-TM-AS-GCONF: 00 X-Proofpoint-GUID: nBl79Mnj7Ln1jiE4GlyktQRUy3ZZbwRi X-Proofpoint-ORIG-GUID: URRgTjvnK683jJYeQpW1QsKY0YDwBtrK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-25_08,2025-02-25_03,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 mlxlogscore=999 phishscore=0 adultscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 mlxscore=0 spamscore=0 lowpriorityscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2502100000 definitions=main-2502260029 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_H2=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 T24gMjAyNC0xMi0yNyAyMDoyOCwgU3RlZmFuIEJlcmdlciB3cm90ZToKPiBPbiAxMi8xOC8yNCA5 OjU2IEFNLCBTdWRoYWthciBLdXBwdXNhbXkgd3JvdGU6Cj4+IEZyb206IFJhc2htaWNhIEd1cHRh IDxyYXNobWljYS5nQGdtYWlsLmNvbT4KPj4gCj4+IEFkZCBpbmZyYXN0cnVjdHVyZSB0byBhbGxv dyBmaXJtd2FyZSB0byB2ZXJpZnkgdGhlIGludGVncml0eSBvZiBncnViCj4+IGJ5IHVzZSBvZiBh IExpbnV4LWtlcm5lbC1tb2R1bGUtc3R5bGUgYXBwZW5kZWQgc2lnbmF0dXJlLiBXZSBpbml0aWFs bHkKPj4gdGFyZ2V0IHBvd2VycGMtaWVlZTEyNzUsIGJ1dCB0aGUgY29kZSBzaG91bGQgYmUgZXh0 ZW5zaWJsZSB0byBvdGhlcgo+PiBwbGF0Zm9ybXMuCj4+IAo+PiBVc3VhbGx5IHRoZXNlIHNpZ25h dHVyZXMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSB3aXRob3V0IG1vZGlmeWluZyB0aGUKPj4gRUxG IGZpbGUgaXRzZWxmLiAoVGhpcyBpcyB3aGF0IHRoZSAnc2lnbi1maWxlJyB0b29sIGRvZXMsIGZv ciAKPj4gZXhhbXBsZS4pCj4+IFRoZSB2ZXJpZmllciBsb2FkcyB0aGUgc2lnbmVkIGZpbGUgZnJv bSB0aGUgZmlsZSBzeXN0ZW0gYW5kIGxvb2tzIGF0IAo+PiB0aGUKPj4gZW5kIG9mIHRoZSBmaWxl IGZvciB0aGUgYXBwZW5kZWQgc2lnbmF0dXJlLiBIb3dldmVyLCBvbiAKPj4gcG93ZXJwYy1pZWVl MTI3NQo+PiBwbGF0Zm9ybXMsIHRoZSBib290bG9hZGVyIGlzIG9mdGVuIHN0b3JlZCBkaXJlY3Rs eSBpbiB0aGUgUFJlUCAKPj4gcGFydGl0aW9uCj4+IGFzIHJhdyBieXRlcyB3aXRob3V0IGEgZmls ZS1zeXN0ZW0uIFRoaXMgbWFrZXMgZGV0ZXJtaW5pbmcgdGhlIAo+PiBsb2NhdGlvbgo+PiBvZiBh biBhcHBlbmRlZCBzaWduYXR1cmUgbW9yZSBkaWZmaWN1bHQuCj4+IAo+PiBUbyBhZGRyZXNzIHRo aXMsIHdlIGFkZCBhIG5ldyBFTEYgbm90ZS4KPj4gCj4+IFRoZSBuYW1lIGZpZWxkIG9mIHNoYWxs IGJlIHRoZSBzdHJpbmcgIkFwcGVuZGVkLVNpZ25hdHVyZSIsIAo+PiB6ZXJvLXBhZGRlZAo+PiB0 byA0IGJ5dGUgYWxpZ25tZW50LiBUaGUgdHlwZSBmaWVsZCBzaGFsbCBiZSAweDQxNTM2OTY3ICh0 aGUgQVNDSUkgCj4+IHZhbHVlcwo+PiBmb3IgdGhlIHN0cmluZyAiQVNpZyIpLiBJdCBtdXN0IGJl IHRoZSBmaW5hbCBzZWN0aW9uIGluIHRoZSBFTEYgCj4+IGJpbmFyeS4KPj4gCj4+IFRoZSBkZXNj cmlwdGlvbiBzaGFsbCBjb250YWluIHRoZSBhcHBlbmRlZCBzaWduYXR1cmUgc3RydWN0dXJlIGFz IAo+PiBkZWZpbmVkCj4+IGJ5IHRoZSBMaW51eCBrZXJuZWwuIFRoZSBkZXNjcmlwdGlvbiB3aWxs IGFsc28gYmUgcGFkZGVkIHRvIGJlIGEgCj4+IG11bHRpcGxlCj4+IG9mIDQgYnl0ZXMuIFRoZSBw YWRkaW5nIHNoYWxsIGJlIGFkZGVkIGJlZm9yZSB0aGUgYXBwZW5kZWQgc2lnbmF0dXJlCj4+IHN0 cnVjdHVyZSAobm90IGF0IHRoZSBlbmQpIHNvIHRoYXQgdGhlIGZpbmFsIGJ5dGVzIG9mIGEgc2ln bmVkIEVMRiAKPj4gZmlsZQo+PiBhcmUgdGhlIGFwcGVuZGVkIHNpZ25hdHVyZSBtYWdpYy4KPj4g Cj4+IEEgc3Vic2VxdWVudCBwYXRjaCBkb2N1bWVudHMgaG93IHRvIGNyZWF0ZSBhIGdydWIgY29y ZS5pbWcgdmFsaWRseSAKPj4gc2lnbmVkCj4+IHVuZGVyIHRoaXMgc2NoZW1lLgo+PiAKPj4gU2ln bmVkLW9mZi1ieTogUmFzaG1pY2EgR3VwdGEgPHJhc2htaWNhLmdAZ21haWwuY29tPgo+PiBTaWdu ZWQtb2ZmLWJ5OiBEYW5pZWwgQXh0ZW5zIDxkamFAYXh0ZW5zLm5ldD4KPj4gU2lnbmVkLW9mZi1i eTogU3VkaGFrYXIgS3VwcHVzYW15IDxzdWRoYWthckBsaW51eC5pYm0uY29tPgo+PiAtLS0KPj4g ICBpbmNsdWRlL2dydWIvdXRpbC9pbnN0YWxsLmggfCAgNyArKysrKy0tCj4+ICAgaW5jbHVkZS9n cnViL3V0aWwvbWtpbWFnZS5oIHwgIDQgKystLQo+PiAgIHV0aWwvZ3J1Yi1pbnN0YWxsLWNvbW1v bi5jICB8IDE1ICsrKysrKysrKysrKy0tLQo+PiAgIHV0aWwvZ3J1Yi1ta2ltYWdlLmMgICAgICAg ICB8IDExICsrKysrKysrKysrCj4+ICAgdXRpbC9ncnViLW1raW1hZ2V4eC5jICAgICAgIHwgMzgg Cj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPj4gICB1dGlsL21raW1h Z2UuYyAgICAgICAgICAgICAgfCAgNiArKystLS0KPj4gICA2IGZpbGVzIGNoYW5nZWQsIDcwIGlu c2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQo+PiAKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv Z3J1Yi91dGlsL2luc3RhbGwuaCBiL2luY2x1ZGUvZ3J1Yi91dGlsL2luc3RhbGwuaAo+PiBpbmRl eCA1YzBhNTJjYTIuLjNhYWJjNDI4NSAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9ncnViL3V0aWwv aW5zdGFsbC5oCj4+ICsrKyBiL2luY2x1ZGUvZ3J1Yi91dGlsL2luc3RhbGwuaAo+PiBAQCAtNjks NiArNjksOCBAQAo+PiAgICAgICAgIE5fKCJkaXNhYmxlIHNoaW1fbG9jayB2ZXJpZmllciIpLCAw IH0sCQkJCVwKPj4gICAgIHsgImRpc2FibGUtY2xpIiwgR1JVQl9JTlNUQUxMX09QVElPTlNfRElT QUJMRV9DTEksIDAsIDAsCQlcCj4+ICAgICAgIE5fKCJkaXNhYmxlZCBjb21tYW5kIGxpbmUgaW50 ZXJmYWNlIGFjY2VzcyIpLCAwIH0sCQkJXAo+PiArICB7ICJhcHBlbmRlZC1zaWduYXR1cmUtc2l6 ZSIsIAo+PiBHUlVCX0lOU1RBTExfT1BUSU9OU19BUFBFTkRFRF9TSUdOQVRVUkVfU0laRSwgIFwK Pj4gKyAgICAiU0laRSIsIDAsIE5fKCJBZGQgYSBub3RlIHNlZ21lbnQgcmVzZXJ2aW5nIFNJWkUg Ynl0ZXMgZm9yIGFuIAo+PiBhcHBlbmRlZCBzaWduYXR1cmUiKSwgMX0sIFwKPj4gICAgIHsgInZl cmJvc2UiLCAndicsIDAsIDAsCQkJCQkJXAo+PiAgICAgICBOXygicHJpbnQgdmVyYm9zZSBtZXNz YWdlcy4iKSwgMSB9Cj4+ICAgQEAgLTEzMiw3ICsxMzQsOCBAQCBlbnVtIGdydWJfaW5zdGFsbF9v cHRpb25zIHsKPj4gICAgIEdSVUJfSU5TVEFMTF9PUFRJT05TX0RUQiwKPj4gICAgIEdSVUJfSU5T VEFMTF9PUFRJT05TX1NCQVQsCj4+ICAgICBHUlVCX0lOU1RBTExfT1BUSU9OU19ESVNBQkxFX1NI SU1fTE9DSywKPj4gLSAgR1JVQl9JTlNUQUxMX09QVElPTlNfRElTQUJMRV9DTEkKPj4gKyAgR1JV Ql9JTlNUQUxMX09QVElPTlNfRElTQUJMRV9DTEksCj4+ICsgIEdSVUJfSU5TVEFMTF9PUFRJT05T X0FQUEVOREVEX1NJR05BVFVSRV9TSVpFCj4+ICAgfTsKPj4gICAgIGV4dGVybiBjaGFyICpncnVi X2luc3RhbGxfc291cmNlX2RpcmVjdG9yeTsKPj4gQEAgLTE5Miw3ICsxOTUsNyBAQCBncnViX2lu c3RhbGxfZ2VuZXJhdGVfaW1hZ2UgKGNvbnN0IGNoYXIgKmRpciwgCj4+IGNvbnN0IGNoYXIgKnBy ZWZpeCwKPj4gICAJCQkgICAgIHNpemVfdCBucHVia2V5cywKPj4gICAJCQkgICAgIGNoYXIgKmNv bmZpZ19wYXRoLAo+PiAgIAkJCSAgICAgY29uc3Qgc3RydWN0IGdydWJfaW5zdGFsbF9pbWFnZV90 YXJnZXRfZGVzYyAqaW1hZ2VfdGFyZ2V0LAo+PiAtCQkJICAgICBpbnQgbm90ZSwKPj4gKwkJCSAg ICAgaW50IG5vdGUsIHNpemVfdCBhcHBzaWdfc2l6ZSwKPj4gICAJCQkgICAgIGdydWJfY29tcHJl c3Npb25fdCBjb21wLCBjb25zdCBjaGFyICpkdGJfZmlsZSwKPj4gICAJCQkgICAgIGNvbnN0IGNo YXIgKnNiYXRfcGF0aCwgY29uc3QgaW50IGRpc2FibGVfc2hpbV9sb2NrLAo+PiAgIAkJCSAgICAg Y29uc3QgaW50IGRpc2FibGVfY2xpKTsKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ3J1Yi91dGls L21raW1hZ2UuaCBiL2luY2x1ZGUvZ3J1Yi91dGlsL21raW1hZ2UuaAo+PiBpbmRleCA5ZDc0Zjgy YzUuLjBkNDAzODNlYiAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9ncnViL3V0aWwvbWtpbWFnZS5o Cj4+ICsrKyBiL2luY2x1ZGUvZ3J1Yi91dGlsL21raW1hZ2UuaAo+PiBAQCAtNTEsMTIgKzUxLDEy IEBAIGdydWJfbWtpbWFnZV9sb2FkX2ltYWdlNjQgKGNvbnN0IGNoYXIgCj4+ICprZXJuZWxfcGF0 aCwKPj4gICAJCQkgICBjb25zdCBzdHJ1Y3QgZ3J1Yl9pbnN0YWxsX2ltYWdlX3RhcmdldF9kZXNj ICppbWFnZV90YXJnZXQpOwo+PiAgIHZvaWQKPj4gICBncnViX21raW1hZ2VfZ2VuZXJhdGVfZWxm MzIgKGNvbnN0IHN0cnVjdCAKPj4gZ3J1Yl9pbnN0YWxsX2ltYWdlX3RhcmdldF9kZXNjICppbWFn ZV90YXJnZXQsCj4+IC0JCQkgICAgIGludCBub3RlLCBjaGFyICpzYmF0LCBjaGFyICoqY29yZV9p bWcsIHNpemVfdCAqY29yZV9zaXplLAo+PiArCQkJICAgICBpbnQgbm90ZSwgY2hhciAqc2JhdCwg c2l6ZV90IGFwcHNpZ19zaXplLCBjaGFyICoqY29yZV9pbWcsIAo+PiBzaXplX3QgKmNvcmVfc2l6 ZSwKPj4gICAJCQkgICAgIEVsZjMyX0FkZHIgdGFyZ2V0X2FkZHIsCj4+ICAgCQkJICAgICBzdHJ1 Y3QgZ3J1Yl9ta2ltYWdlX2xheW91dCAqbGF5b3V0KTsKPj4gICB2b2lkCj4+ICAgZ3J1Yl9ta2lt YWdlX2dlbmVyYXRlX2VsZjY0IChjb25zdCBzdHJ1Y3QgCj4+IGdydWJfaW5zdGFsbF9pbWFnZV90 YXJnZXRfZGVzYyAqaW1hZ2VfdGFyZ2V0LAo+PiAtCQkJICAgICBpbnQgbm90ZSwgY2hhciAqc2Jh dCwgY2hhciAqKmNvcmVfaW1nLCBzaXplX3QgKmNvcmVfc2l6ZSwKPj4gKwkJCSAgICAgaW50IG5v dGUsIGNoYXIgKnNiYXQsIHNpemVfdCBhcHBzaWdfc2l6ZSwgY2hhciAqKmNvcmVfaW1nLCAKPj4g c2l6ZV90ICpjb3JlX3NpemUsCj4+ICAgCQkJICAgICBFbGY2NF9BZGRyIHRhcmdldF9hZGRyLAo+ PiAgIAkJCSAgICAgc3RydWN0IGdydWJfbWtpbWFnZV9sYXlvdXQgKmxheW91dCk7Cj4+ICAgZGlm ZiAtLWdpdCBhL3V0aWwvZ3J1Yi1pbnN0YWxsLWNvbW1vbi5jIGIvdXRpbC9ncnViLWluc3RhbGwt Y29tbW9uLmMKPj4gaW5kZXggMjJiY2NiNmEzLi4yMmYwZTU2Y2IgMTAwNjQ0Cj4+IC0tLSBhL3V0 aWwvZ3J1Yi1pbnN0YWxsLWNvbW1vbi5jCj4+ICsrKyBiL3V0aWwvZ3J1Yi1pbnN0YWxsLWNvbW1v bi5jCj4+IEBAIC00NjcsMTAgKzQ2NywxMiBAQCBzdGF0aWMgY2hhciAqc2JhdDsKPj4gICBzdGF0 aWMgaW50IGRpc2FibGVfc2hpbV9sb2NrOwo+PiAgIHN0YXRpYyBncnViX2NvbXByZXNzaW9uX3Qg Y29tcHJlc3Npb247Cj4+ICAgc3RhdGljIGludCBkaXNhYmxlX2NsaTsKPj4gK3N0YXRpYyBzaXpl X3QgYXBwc2lnX3NpemU7Cj4+ICAgICBpbnQKPj4gICBncnViX2luc3RhbGxfcGFyc2UgKGludCBr ZXksIGNoYXIgKmFyZykKPj4gICB7Cj4+ICsgIGNvbnN0IGNoYXIgKmVuZDsKPj4gICAgIHN3aXRj aCAoa2V5KQo+PiAgICAgICB7Cj4+ICAgICAgIGNhc2UgR1JVQl9JTlNUQUxMX09QVElPTlNfSU5T VEFMTF9DT1JFX0NPTVBSRVNTOgo+PiBAQCAtNTcxLDYgKzU3MywxMiBAQCBncnViX2luc3RhbGxf cGFyc2UgKGludCBrZXksIGNoYXIgKmFyZykKPj4gICAgICAgICBncnViX3V0aWxfZXJyb3IgKF8o IlVucmVjb2duaXplZCBjb21wcmVzc2lvbiBgJXMnIiksIGFyZyk7Cj4+ICAgICAgIGNhc2UgR1JV Ql9JTlNUQUxMX09QVElPTlNfR1JVQl9NS0lNQUdFOgo+PiAgICAgICAgIHJldHVybiAxOwo+PiAr ICAgIGNhc2UgR1JVQl9JTlNUQUxMX09QVElPTlNfQVBQRU5ERURfU0lHTkFUVVJFX1NJWkU6Cj4+ ICsgICAgICBncnViX2Vycm5vID0gMDsKPj4gKyAgICAgIGFwcHNpZ19zaXplID0gZ3J1Yl9zdHJ0 b2wgKGFyZywgJmVuZCwgMTApOwo+PiArICAgICAgaWYgKGdydWJfZXJybm8pCj4+ICsgICAgICAg IHJldHVybiAwOwo+PiArICAgICAgcmV0dXJuIDE7Cj4+ICAgICAgIGRlZmF1bHQ6Cj4+ICAgICAg ICAgcmV0dXJuIDA7Cj4+ICAgICAgIH0KPj4gQEAgLTY4Myw5ICs2OTEsMTAgQEAgZ3J1Yl9pbnN0 YWxsX21ha2VfaW1hZ2Vfd3JhcF9maWxlIChjb25zdCBjaGFyIAo+PiAqZGlyLCBjb25zdCBjaGFy ICpwcmVmaXgsCj4+ICAgICAqcCA9ICdcMCc7Cj4+ICAgICAgIGdydWJfdXRpbF9pbmZvICgiZ3J1 Yi1ta2ltYWdlIC0tZGlyZWN0b3J5ICclcycgLS1wcmVmaXggJyVzJyAKPj4gLS1vdXRwdXQgJyVz JyIKPj4gLQkJICAiIC0tZm9ybWF0ICclcycgLS1jb21wcmVzc2lvbiAnJXMnJXMlcyVzJXNcbiIs Cj4+ICsJCSAgIiAtLWZvcm1hdCAnJXMnIC0tY29tcHJlc3Npb24gJyVzJyIKPj4gKwkJICAiIC0t YXBwZW5kZWQtc2lnbmF0dXJlLXNpemUgJXp1ICVzICVzICVzICVzXG4iLAo+PiAgIAkJICBkaXIs IHByZWZpeCwgb3V0bmFtZSwKPj4gLQkJICBta2ltYWdlX3RhcmdldCwgY29tcG5hbWVzW2NvbXBy ZXNzaW9uXSwKPj4gKwkJICBta2ltYWdlX3RhcmdldCwgY29tcG5hbWVzW2NvbXByZXNzaW9uXSwg YXBwc2lnX3NpemUsCj4+ICAgCQkgIG5vdGUgPyAiIC0tbm90ZSIgOiAiIiwKPj4gICAJCSAgZGlz YWJsZV9zaGltX2xvY2sgPyAiIC0tZGlzYWJsZS1zaGltLWxvY2siIDogIiIsCj4+ICAgCQkgIGRp c2FibGVfY2xpID8gIiAtLWRpc2FibGUtY2xpIiA6ICIiLCBzKTsKPj4gQEAgLTY5OCw3ICs3MDcs NyBAQCBncnViX2luc3RhbGxfbWFrZV9pbWFnZV93cmFwX2ZpbGUgKGNvbnN0IGNoYXIgCj4+ICpk aXIsIGNvbnN0IGNoYXIgKnByZWZpeCwKPj4gICAgIGdydWJfaW5zdGFsbF9nZW5lcmF0ZV9pbWFn ZSAoZGlyLCBwcmVmaXgsIGZwLCBvdXRuYW1lLAo+PiAgIAkJCSAgICAgICBtb2R1bGVzLmVudHJp ZXMsIG1lbWRpc2tfcGF0aCwKPj4gICAJCQkgICAgICAgcHVia2V5cywgbnB1YmtleXMsIGNvbmZp Z19wYXRoLCB0Z3QsCj4+IC0JCQkgICAgICAgbm90ZSwgY29tcHJlc3Npb24sIGR0Yiwgc2JhdCwK Pj4gKwkJCSAgICAgICBub3RlLCBhcHBzaWdfc2l6ZSwgY29tcHJlc3Npb24sIGR0Yiwgc2JhdCwK Pj4gICAJCQkgICAgICAgZGlzYWJsZV9zaGltX2xvY2ssIGRpc2FibGVfY2xpKTsKPj4gICAgIHdo aWxlIChkYy0tKQo+PiAgICAgICBncnViX2luc3RhbGxfcG9wX21vZHVsZSAoKTsKPj4gZGlmZiAt LWdpdCBhL3V0aWwvZ3J1Yi1ta2ltYWdlLmMgYi91dGlsL2dydWItbWtpbWFnZS5jCj4+IGluZGV4 IDU0N2Y3MzEwZi4uNmM1MDYzYWMyIDEwMDY0NAo+PiAtLS0gYS91dGlsL2dydWItbWtpbWFnZS5j Cj4+ICsrKyBiL3V0aWwvZ3J1Yi1ta2ltYWdlLmMKPj4gQEAgLTg0LDYgKzg0LDcgQEAgc3RhdGlj IHN0cnVjdCBhcmdwX29wdGlvbiBvcHRpb25zW10gPSB7Cj4+ICAgICB7InNiYXQiLCAncycsIE5f KCJGSUxFIiksIDAsIE5fKCJTQkFUIG1ldGFkYXRhIiksIDB9LAo+PiAgICAgeyJkaXNhYmxlLXNo aW0tbG9jayIsIEdSVUJfSU5TVEFMTF9PUFRJT05TX0RJU0FCTEVfU0hJTV9MT0NLLCAwLCAKPj4g MCwgTl8oImRpc2FibGUgc2hpbV9sb2NrIHZlcmlmaWVyIiksIDB9LAo+PiAgICAgeyJkaXNhYmxl LWNsaSIsIEdSVUJfSU5TVEFMTF9PUFRJT05TX0RJU0FCTEVfQ0xJLCAwLCAwLCAKPj4gTl8oImRp c2FibGUgY29tbWFuZCBsaW5lIGludGVyZmFjZSBhY2Nlc3MiKSwgMH0sCj4+ICsgIHsiYXBwZW5k ZWQtc2lnbmF0dXJlLXNpemUiLCAnUycsIE5fKCJTSVpFIiksIDAsIE5fKCJBZGQgYSBub3RlIAo+ PiBzZWdtZW50IHJlc2VydmluZyBTSVpFIGJ5dGVzIGZvciBhbiBhcHBlbmRlZCBzaWduYXR1cmUi KSwgMH0sCj4+ICAgICB7InZlcmJvc2UiLCAgICAgJ3YnLCAwLCAgICAgIDAsIE5fKCJwcmludCB2 ZXJib3NlIG1lc3NhZ2VzLiIpLCAwfSwKPj4gICAgIHsgMCwgMCwgMCwgMCwgMCwgMCB9Cj4+ICAg fTsKPj4gQEAgLTEzMCw2ICsxMzEsNyBAQCBzdHJ1Y3QgYXJndW1lbnRzCj4+ICAgICBpbnQgbm90 ZTsKPj4gICAgIGludCBkaXNhYmxlX3NoaW1fbG9jazsKPj4gICAgIGludCBkaXNhYmxlX2NsaTsK Pj4gKyAgc2l6ZV90IGFwcHNpZ19zaXplOwo+PiAgICAgY29uc3Qgc3RydWN0IGdydWJfaW5zdGFs bF9pbWFnZV90YXJnZXRfZGVzYyAqaW1hZ2VfdGFyZ2V0Owo+PiAgICAgZ3J1Yl9jb21wcmVzc2lv bl90IGNvbXA7Cj4+ICAgfTsKPj4gQEAgLTE0MCw2ICsxNDIsNyBAQCBhcmdwX3BhcnNlciAoaW50 IGtleSwgY2hhciAqYXJnLCBzdHJ1Y3QgYXJncF9zdGF0ZSAKPj4gKnN0YXRlKQo+PiAgICAgLyog R2V0IHRoZSBpbnB1dCBhcmd1bWVudCBmcm9tIGFyZ3BfcGFyc2UsIHdoaWNoIHdlCj4+ICAgICAg ICBrbm93IGlzIGEgcG9pbnRlciB0byBvdXIgYXJndW1lbnRzIHN0cnVjdHVyZS4gKi8KPj4gICAg IHN0cnVjdCBhcmd1bWVudHMgKmFyZ3VtZW50cyA9IHN0YXRlLT5pbnB1dDsKPj4gKyAgY29uc3Qg Y2hhciogZW5kOwo+IAo+IGNvbnN0IGNoYXIgKmVuZDsKPiAKPiAKPj4gICAgICAgc3dpdGNoIChr ZXkpCj4+ICAgICAgIHsKPj4gQEAgLTE3Miw2ICsxNzUsMTMgQEAgYXJncF9wYXJzZXIgKGludCBr ZXksIGNoYXIgKmFyZywgc3RydWN0IAo+PiBhcmdwX3N0YXRlICpzdGF0ZSkKPj4gICAgICAgICBh cmd1bWVudHMtPm5vdGUgPSAxOwo+PiAgICAgICAgIGJyZWFrOwo+PiAgICsgICAgY2FzZSAnUyc6 Cj4+ICsgICAgICBncnViX2Vycm5vID0gMDsKPj4gKyAgICAgIGFyZ3VtZW50cy0+YXBwc2lnX3Np emUgPSBncnViX3N0cnRvbCAoYXJnLCAmZW5kLCAxMCk7Cj4+ICsgICAgICBpZiAoZ3J1Yl9lcnJu bykKPj4gKyAgICAgICAgcmV0dXJuIDA7Cj4+ICsgICAgICBicmVhazsKPj4gKwo+PiAgICAgICBj YXNlICdtJzoKPj4gICAgICAgICBpZiAoYXJndW1lbnRzLT5tZW1kaXNrKQo+PiAgIAlmcmVlIChh cmd1bWVudHMtPm1lbWRpc2spOwo+PiBAQCAtMzMwLDYgKzM0MCw3IEBAIG1haW4gKGludCBhcmdj LCBjaGFyICphcmd2W10pCj4+ICAgCQkJICAgICAgIGFyZ3VtZW50cy5tZW1kaXNrLCBhcmd1bWVu dHMucHVia2V5cywKPj4gICAJCQkgICAgICAgYXJndW1lbnRzLm5wdWJrZXlzLCBhcmd1bWVudHMu Y29uZmlnLAo+PiAgIAkJCSAgICAgICBhcmd1bWVudHMuaW1hZ2VfdGFyZ2V0LCBhcmd1bWVudHMu bm90ZSwKPj4gKwkJCSAgICAgICBhcmd1bWVudHMuYXBwc2lnX3NpemUsCj4+ICAgCQkJICAgICAg IGFyZ3VtZW50cy5jb21wLCBhcmd1bWVudHMuZHRiLAo+PiAgIAkJCSAgICAgICBhcmd1bWVudHMu c2JhdCwgYXJndW1lbnRzLmRpc2FibGVfc2hpbV9sb2NrLAo+PiAgIAkJCSAgICAgICBhcmd1bWVu dHMuZGlzYWJsZV9jbGkpOwo+PiBkaWZmIC0tZ2l0IGEvdXRpbC9ncnViLW1raW1hZ2V4eC5jIGIv dXRpbC9ncnViLW1raW1hZ2V4eC5jCj4+IGluZGV4IDQ0ODg2MmIyZS4uNmZlMzQ4ZTViIDEwMDY0 NAo+PiAtLS0gYS91dGlsL2dydWItbWtpbWFnZXh4LmMKPj4gKysrIGIvdXRpbC9ncnViLW1raW1h Z2V4eC5jCj4+IEBAIC0xMTUsNiArMTE1LDE0IEBAIHN0cnVjdCBncnViX3NiYXRfbm90ZSB7Cj4+ ICAgICBjaGFyIG5hbWVbQUxJR05fVVAoc2l6ZW9mKEdSVUJfU0JBVF9OT1RFX05BTUUpLCA0KV07 Cj4+ICAgfTsKPj4gICArI2RlZmluZSBHUlVCX0FQUEVOREVEX1NJR05BVFVSRV9OT1RFX05BTUUg IkFwcGVuZGVkLVNpZ25hdHVyZSIKPj4gKyNkZWZpbmUgR1JVQl9BUFBFTkRFRF9TSUdOQVRVUkVf Tk9URV9UWVBFIDB4NDE1MzY5NjcgLyogIkFTaWciICovCj4+ICtzdHJ1Y3QgZ3J1Yl9hcHBlbmRl ZF9zaWduYXR1cmVfbm90ZQo+PiArewo+PiArICBFbGYzMl9OaGRyIGhlYWRlcjsKPj4gKyAgY2hh ciBuYW1lW0FMSUdOX1VQIChzaXplb2YgKEdSVUJfQVBQRU5ERURfU0lHTkFUVVJFX05PVEVfTkFN RSksIAo+PiA0KV07Cj4+ICt9Owo+PiArCj4+ICAgc3RhdGljIGludAo+PiAgIGlzX3JlbG9jYXRh YmxlIChjb25zdCBzdHJ1Y3QgZ3J1Yl9pbnN0YWxsX2ltYWdlX3RhcmdldF9kZXNjIAo+PiAqaW1h Z2VfdGFyZ2V0KQo+PiAgIHsKPj4gQEAgLTIxNiw3ICsyMjQsNyBAQCBncnViX2FybV9yZWxvY19q dW1wMjQgKGdydWJfdWludDMyX3QgKnRhcmdldCwgCj4+IEVsZjMyX0FkZHIgc3ltX2FkZHIpCj4+ ICAgICB2b2lkCj4+ICAgU1VGRklYIChncnViX21raW1hZ2VfZ2VuZXJhdGVfZWxmKSAoY29uc3Qg c3RydWN0IAo+PiBncnViX2luc3RhbGxfaW1hZ2VfdGFyZ2V0X2Rlc2MgKmltYWdlX3RhcmdldCwK Pj4gLQkJCQkgICAgaW50IG5vdGUsIGNoYXIgKnNiYXQsIGNoYXIgKipjb3JlX2ltZywgc2l6ZV90 ICpjb3JlX3NpemUsCj4+ICsJCQkJICAgIGludCBub3RlLCBjaGFyICpzYmF0LCBzaXplX3QgYXBw c2lnX3NpemUsIGNoYXIgKipjb3JlX2ltZywgCj4+IHNpemVfdCAqY29yZV9zaXplLAo+PiAgIAkJ CQkgICAgRWxmX0FkZHIgdGFyZ2V0X2FkZHIsCj4+ICAgCQkJCSAgICBzdHJ1Y3QgZ3J1Yl9ta2lt YWdlX2xheW91dCAqbGF5b3V0KQo+PiAgIHsKPj4gQEAgLTIzNyw2ICsyNDUsMTIgQEAgU1VGRklY IChncnViX21raW1hZ2VfZ2VuZXJhdGVfZWxmKSAoY29uc3Qgc3RydWN0IAo+PiBncnViX2luc3Rh bGxfaW1hZ2VfdGFyZ2V0X2Rlc2MKPj4gICAgICAgICBmb290ZXJfc2l6ZSArPSBBTElHTl9VUCAo c2l6ZW9mIChzdHJ1Y3QgZ3J1Yl9zYmF0X25vdGUpICsgCj4+IGxheW91dC0+c2JhdF9zaXplLCA0 KTsKPj4gICAgICAgfQo+PiAgICsgIGlmIChhcHBzaWdfc2l6ZSkKPj4gKyAgICB7Cj4+ICsgICAg ICBwaG51bSsrOwo+PiArICAgICAgZm9vdGVyX3NpemUgKz0gQUxJR05fVVAgKHNpemVvZiAoc3Ry dWN0IAo+PiBncnViX2FwcGVuZGVkX3NpZ25hdHVyZV9ub3RlKSArIGFwcHNpZ19zaXplLCA0KTsK Pj4gKyAgICB9Cj4+ICsKPj4gICAgIGlmIChpbWFnZV90YXJnZXQtPmlkICE9IElNQUdFX0xPT05H U09OX0VMRikKPj4gICAgICAgcGhudW0gKz0gMjsKPj4gICBAQCAtNTI3LDYgKzU0MSwyOCBAQCBT VUZGSVggKGdydWJfbWtpbWFnZV9nZW5lcmF0ZV9lbGYpIChjb25zdCAKPj4gc3RydWN0IGdydWJf aW5zdGFsbF9pbWFnZV90YXJnZXRfZGVzYwo+PiAgICAgICAgIHBoZHItPnBfZmlsZXN6ID0gZ3J1 Yl9ob3N0X3RvX3RhcmdldDMyIChub3RlX3NpemUpOwo+PiAgICAgICAgIHBoZHItPnBfbWVtc3og PSAwOwo+PiAgICAgICAgIHBoZHItPnBfb2Zmc2V0ID0gZ3J1Yl9ob3N0X3RvX3RhcmdldDMyICho ZWFkZXJfc2l6ZSArIAo+PiBwcm9ncmFtX3NpemUgKyBmb290ZXJfb2Zmc2V0KTsKPj4gKyAgICAg IGZvb3RlciArPSBub3RlX3NpemU7Cj4+ICsgICAgICBmb290ZXJfb2Zmc2V0ICs9IG5vdGVfc2l6 ZTsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgaWYgKGFwcHNpZ19zaXplKQo+PiArICAgIHsKPj4gKyAg ICAgIGludCBub3RlX3NpemUgPSBBTElHTl9VUCAoc2l6ZW9mIChzdHJ1Y3QgCj4+IGdydWJfYXBw ZW5kZWRfc2lnbmF0dXJlX25vdGUpICsgYXBwc2lnX3NpemUsIDQpOwo+PiArICAgICAgc3RydWN0 IGdydWJfYXBwZW5kZWRfc2lnbmF0dXJlX25vdGUgKm5vdGVfcHRyID0gKHN0cnVjdCAKPj4gZ3J1 Yl9hcHBlbmRlZF9zaWduYXR1cmVfbm90ZSAqKSBmb290ZXI7Cj4+ICsgICAgICBub3RlX3B0ci0+ aGVhZGVyLm5fbmFtZXN6ID0gZ3J1Yl9ob3N0X3RvX3RhcmdldDMyIChzaXplb2YgCj4+IChHUlVC X0FQUEVOREVEX1NJR05BVFVSRV9OT1RFX05BTUUpKTsKPj4gKyAgICAgIC8qIG5lZWRzIHRvIHNp dCBhdCB0aGUgZW5kLCBzbyB3ZSByb3VuZCB0aGlzIHVwIGFuZCBzaWduIHNvbWUgCj4+IHplcm8g cGFkZGluZyAqLwo+PiArICAgICAgbm90ZV9wdHItPmhlYWRlci5uX2Rlc2NzeiA9IGdydWJfaG9z dF90b190YXJnZXQzMiAoQUxJR05fVVAgCj4+IChhcHBzaWdfc2l6ZSwgNCkpOwo+PiArICAgICAg bm90ZV9wdHItPmhlYWRlci5uX3R5cGUgPSBncnViX2hvc3RfdG9fdGFyZ2V0MzIgCj4+IChHUlVC X0FQUEVOREVEX1NJR05BVFVSRV9OT1RFX1RZUEUpOwo+PiArICAgICAgc3RyY3B5IChub3RlX3B0 ci0+bmFtZSwgR1JVQl9BUFBFTkRFRF9TSUdOQVRVUkVfTk9URV9OQU1FKTsKPj4gKyAgICAgIHBo ZHIrKzsKPj4gKyAgICAgIHBoZHItPnBfdHlwZSA9IGdydWJfaG9zdF90b190YXJnZXQzMiAoUFRf Tk9URSk7Cj4+ICsgICAgICBwaGRyLT5wX2ZsYWdzID0gZ3J1Yl9ob3N0X3RvX3RhcmdldDMyIChQ Rl9SKTsKPj4gKyAgICAgIHBoZHItPnBfYWxpZ24gPSBncnViX2hvc3RfdG9fdGFyZ2V0MzIgCj4+ IChpbWFnZV90YXJnZXQtPnZvaWRwX3NpemVvZik7Cj4+ICsgICAgICBwaGRyLT5wX3ZhZGRyID0g MDsKPj4gKyAgICAgIHBoZHItPnBfcGFkZHIgPSAwOwo+PiArICAgICAgcGhkci0+cF9maWxlc3og PSBncnViX2hvc3RfdG9fdGFyZ2V0MzIgKG5vdGVfc2l6ZSk7Cj4+ICsgICAgICBwaGRyLT5wX21l bXN6ID0gMDsKPj4gKyAgICAgIHBoZHItPnBfb2Zmc2V0ID0gZ3J1Yl9ob3N0X3RvX3RhcmdldDMy IChoZWFkZXJfc2l6ZSArIAo+PiBwcm9ncmFtX3NpemUgKyBmb290ZXJfb2Zmc2V0KTsKPj4gICAg ICAgfQo+PiAgICAgICB7Cj4+IGRpZmYgLS1naXQgYS91dGlsL21raW1hZ2UuYyBiL3V0aWwvbWtp bWFnZS5jCj4+IGluZGV4IGI0NmRmMjkwOS4uZjVjNTlmNTYzIDEwMDY0NAo+PiAtLS0gYS91dGls L21raW1hZ2UuYwo+PiArKysgYi91dGlsL21raW1hZ2UuYwo+PiBAQCAtODg1LDcgKzg4NSw3IEBA IGdydWJfaW5zdGFsbF9nZW5lcmF0ZV9pbWFnZSAoY29uc3QgY2hhciAqZGlyLCAKPj4gY29uc3Qg Y2hhciAqcHJlZml4LAo+PiAgIAkJCSAgICAgY2hhciAqbWVtZGlza19wYXRoLCBjaGFyICoqcHVi a2V5X3BhdGhzLAo+PiAgIAkJCSAgICAgc2l6ZV90IG5wdWJrZXlzLCBjaGFyICpjb25maWdfcGF0 aCwKPj4gICAJCQkgICAgIGNvbnN0IHN0cnVjdCBncnViX2luc3RhbGxfaW1hZ2VfdGFyZ2V0X2Rl c2MgKmltYWdlX3RhcmdldCwKPj4gLQkJCSAgICAgaW50IG5vdGUsIGdydWJfY29tcHJlc3Npb25f dCBjb21wLCBjb25zdCBjaGFyICpkdGJfcGF0aCwKPj4gKwkJCSAgICAgaW50IG5vdGUsIHNpemVf dCBhcHBzaWdfc2l6ZSwgZ3J1Yl9jb21wcmVzc2lvbl90IGNvbXAsIGNvbnN0IAo+PiBjaGFyICpk dGJfcGF0aCwKPj4gICAJCQkgICAgIGNvbnN0IGNoYXIgKnNiYXRfcGF0aCwgaW50IGRpc2FibGVf c2hpbV9sb2NrLAo+PiAgIAkJCSAgICAgaW50IGRpc2FibGVfY2xpKQo+PiAgIHsKPj4gQEAgLTE4 MzMsMTAgKzE4MzMsMTAgQEAgZ3J1Yl9pbnN0YWxsX2dlbmVyYXRlX2ltYWdlIChjb25zdCBjaGFy ICpkaXIsIAo+PiBjb25zdCBjaGFyICpwcmVmaXgsCj4+ICAgCWVsc2UKPj4gICAJICB0YXJnZXRf YWRkciA9IGltYWdlX3RhcmdldC0+bGlua19hZGRyOwo+PiAgIAlpZiAoaW1hZ2VfdGFyZ2V0LT52 b2lkcF9zaXplb2YgPT0gNCkKPj4gLQkgIGdydWJfbWtpbWFnZV9nZW5lcmF0ZV9lbGYzMiAoaW1h Z2VfdGFyZ2V0LCBub3RlLCBzYmF0LCAmY29yZV9pbWcsIAo+PiAmY29yZV9zaXplLAo+PiArCSAg Z3J1Yl9ta2ltYWdlX2dlbmVyYXRlX2VsZjMyIChpbWFnZV90YXJnZXQsIG5vdGUsIHNiYXQsIAo+ PiBhcHBzaWdfc2l6ZSwgJmNvcmVfaW1nLCAmY29yZV9zaXplLAo+PiAgIAkJCQkgICAgICAgdGFy Z2V0X2FkZHIsICZsYXlvdXQpOwo+PiAgIAllbHNlCj4+IC0JICBncnViX21raW1hZ2VfZ2VuZXJh dGVfZWxmNjQgKGltYWdlX3RhcmdldCwgbm90ZSwgc2JhdCwgJmNvcmVfaW1nLCAKPj4gJmNvcmVf c2l6ZSwKPj4gKwkgIGdydWJfbWtpbWFnZV9nZW5lcmF0ZV9lbGY2NCAoaW1hZ2VfdGFyZ2V0LCBu b3RlLCBzYmF0LCAKPj4gYXBwc2lnX3NpemUsICZjb3JlX2ltZywgJmNvcmVfc2l6ZSwKPj4gICAJ CQkJICAgICAgIHRhcmdldF9hZGRyLCAmbGF5b3V0KTsKPj4gICAgICAgICB9Cj4+ICAgICAgICAg YnJlYWs7Cj4gCj4gV2l0aCBuaXQgZml4ZWQ6Cj4gUmV2aWV3ZWQtYnk6IFN0ZWZhbiBCZXJnZXIg PHN0ZWZhbmJAbGludXguaWJtLmNvbT4KClRoYW5rIHlvdSBTdGVmYW4uIGZpeGVkIGl0LgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KR3J1Yi1kZXZlbCBt YWlsaW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWls bWFuL2xpc3RpbmZvL2dydWItZGV2ZWwK