Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp1484325ybf; Thu, 27 Feb 2020 11:53:39 -0800 (PST) X-Google-Smtp-Source: APXvYqzOo1tlPrI/NefyDsfplNgbAy0xHhv1czcIjiVfdP0S3M1gsAp5uI+0hfv5CfN6YbIIwJ6o X-Received: by 2002:a05:6830:1184:: with SMTP id u4mr397032otq.221.1582833219688; Thu, 27 Feb 2020 11:53:39 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1582833219; cv=pass; d=google.com; s=arc-20160816; b=D2dafrcXjwh2QtpoSgLPFUtBdP8Q/jXMS1MSUHJDRsimD823BRY5BFJ0/vTG2Q2yQ0 fVWmjiBBdWpJfD0XeHFVwjeBQ9jxQDLpKAUYjGXTUg7goI3LR65WLJKTjEnxlCCZI/Xc Rn7z3ynpXFhzcmx2Q6BPrJUDjRsioZAz4l91zxlDKyvEabPvlR09Ol9b7PkT4M2ENlky j/4hYmFeyh3O/xf/EzcR1eV2az7bXdioVTYx6HWiSzt7FrjzXLffFzvekhfUn4HfrHWE JmJA5ujqavmEomei8/yAhcP4014tnZ52PaMSj/NC3lrbQRNviI3uC4lbHfz8x2gSAqzY bNYQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:wdcipoutbound:content-language:accept-language :in-reply-to:references:message-id:date:thread-index:thread-topic :subject:cc:to:from:dkim-signature:ironport-sdr:dkim-signature; bh=ojyZDe7O+5sHnAA05mgkK6fmFssdsok4n/BW4VKR9iQ=; b=Szj/gp2g3KvMi5LedxmENPJcTIaUbcriOwJPu1TasRMxdglAeErMuqSAplDIFjowDA OpKa6W1FGUUceN4G2K3asyRmhfS+fQBAq9R/m/OC4V18uwdTxyTy3p1kaBM0El5IqI0I pJ4rbebjCfiJXiKLGSPJ6XuayvzETJQ0Puewdu49/9gVh7JkIL/p7V5eStJltgA5ft2U A/DzGufzDIFHMjELZd2yxY5VXo4sZNG1MbGX4Whr5pJM4EcVEy6KOavnRlWJLSZXxg8E 3Kq0GK7zFenONyb4kXmXji/Ug70E4uMfsFXkLPzyQ8zHFdXHnyAEi9NMhJdt8UrMWU9J Gcig== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b=AiyISRUv; dkim=pass header.i=@sharedspace.onmicrosoft.com header.s=selector2-sharedspace-onmicrosoft-com header.b="bB/Uaugy"; arc=pass (i=1 spf=pass spfdomain=wdc.com dkim=pass dkdomain=wdc.com dmarc=pass fromdomain=wdc.com); spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=wdc.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d14si391734oic.201.2020.02.27.11.53.25; Thu, 27 Feb 2020 11:53:39 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b=AiyISRUv; dkim=pass header.i=@sharedspace.onmicrosoft.com header.s=selector2-sharedspace-onmicrosoft-com header.b="bB/Uaugy"; arc=pass (i=1 spf=pass spfdomain=wdc.com dkim=pass dkdomain=wdc.com dmarc=pass fromdomain=wdc.com); spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=wdc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730517AbgB0TxO (ORCPT + 99 others); Thu, 27 Feb 2020 14:53:14 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:1177 "EHLO esa2.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729594AbgB0TxN (ORCPT ); Thu, 27 Feb 2020 14:53:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1582833194; x=1614369194; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=ojyZDe7O+5sHnAA05mgkK6fmFssdsok4n/BW4VKR9iQ=; b=AiyISRUvQcGELSceRCfFwqba4g3MmkrW1C26ZnE6WY335PeNp89iqSjO 60N+24ghGsN54mELMYZwMp02y+1oQ3p1evLWLzSTrfBkLe2Mys4mQjPxU 5GBciIHBwyhvn7W86/eSuEOiLWWCZ8ZUKyyF746T5cRh1MB7c/CD9KKkE tPjCt136RsTQZcFvwaQaZ/0pg7885sEiYA4ARFDXK9vdhOLPDa1Mv29YQ rc50T7MuNOJcaJXdmGphgUYp/I0pfZA3FasXOa9Ml6aQoeEoe5ipW+9SA aUvnUKsXOuTc3HDeWgoDS5kIXRBhjCAeMWBhe226vAtNYmP2nphKUnwDI w==; IronPort-SDR: q79NrgtBHgrPn5FNAh0FbEZJELaD6e6x7oxtNS7jpZd1FM3X27R4K4ZBHKeuLUV+bOpzqaF3fq LDisR4SGH5k+ihinhK23RIwzlBsRUT7OP3AuS9QVng1oZuKw5Xgy02D6l5t5XuTKW9LaQGy/ve JF9FX36idB33MyTWAlnaWxth+9QhGIEA0Q03YuH6Ti96urZYhF01KvpLF4qdc5iVFr0DX+XRr3 oXUX/9bLH2dM6jCtR6q5aPhT5Mg9pKvrpn+uFZuTdE2kjaNSLZHLmblbOtzh5pcKre0da6W+0O H78= X-IronPort-AV: E=Sophos;i="5.70,493,1574092800"; d="scan'208";a="232851913" Received: from mail-co1nam11lp2169.outbound.protection.outlook.com (HELO NAM11-CO1-obe.outbound.protection.outlook.com) ([104.47.56.169]) by ob1.hgst.iphmx.com with ESMTP; 28 Feb 2020 03:53:10 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zm9FXQYrDyeFaWqMxaCkVz+JPz8rurvOD2qKvGtXKzNoTIVGQXFNINjQT22PpY459vYBlYaMtBlfjFkaQjriGYGzADIGIdPvEgJ6coo5zCk1LlTOqB4WNRevoT63lWaym3XClOD3ECNOBM+OoesdZ1FP88qh2karBaj3mzZ3ePkywslnV6CAJe9lesDiYJ3c3S6agvSo4P3WKdI9uFQW7gIqkhZ6uXKzXpskoEdOF8+rIGSh7pgWbdXKn021hlYkbbhi99m1tT0aKQ+ktLWDF7SScLXqNAvLeT/vSvam2ZdpdAU6rv7RQFldHpuGSGjZSquSMaYjARObQvLFpgGLAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ojyZDe7O+5sHnAA05mgkK6fmFssdsok4n/BW4VKR9iQ=; b=aI18PTiZRKXVavmXGeAoI1QcsnC1znq3jTtSkGx/AmhK3agduhad52MmPPOTavxvmONee8Tj59izUrGN+Nh5s0t5EttqH7XAw2cviM45q+JsBB4XcXOnWv8hfU1Dm9qVU6ur9bo3+P3FiDiiPfsl7dbcEpIEgJ0A0nl9X739WxPErZ3PiHWl45xFC2n+nhlgEZyob3a3DY1Tn31puISLJS7J8Es94iOwiPpOGDssuolVtXvfFddxI43sJ6bGmjhgMjbYghZozEdqDNgDrKQ5Ag7wPYd7HHcv0thu8Ev5dU+NYpRDZpZ8FHMkIRAjKC8OsJEnCBWu6rmo4ICVN/OyVg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ojyZDe7O+5sHnAA05mgkK6fmFssdsok4n/BW4VKR9iQ=; b=bB/UaugyAWl87KPGwiVJ7vQQg33GhZ/3RnIZfbbNXuMH33FXGCqHyUvIlhsYHJ9xlzpygqZvO7IxuYkVz70QbAfk4CbxftZ3CGlflsLtX/mFIvkbJpnK6zII3EbPJKzR/SqeKkEGfWTYPaDeU8ax2zLo8kz/GYhhXxEsJDii/fQ= Received: from BYAPR04MB3990.namprd04.prod.outlook.com (2603:10b6:a02:ae::29) by BYAPR04MB5622.namprd04.prod.outlook.com (2603:10b6:a03:103::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.21; Thu, 27 Feb 2020 19:53:09 +0000 Received: from BYAPR04MB3990.namprd04.prod.outlook.com ([fe80::ecfa:6b6b:1612:c46e]) by BYAPR04MB3990.namprd04.prod.outlook.com ([fe80::ecfa:6b6b:1612:c46e%6]) with mapi id 15.20.2772.012; Thu, 27 Feb 2020 19:53:09 +0000 From: Atish Patra To: "ardb@kernel.org" CC: "alexios.zavras@intel.com" , "tglx@linutronix.de" , "mchehab+samsung@kernel.org" , "pbonzini@redhat.com" , "michal.simek@xilinx.com" , "linux@armlinux.org.uk" , "abner.chang@hpe.com" , "linux-riscv@lists.infradead.org" , "catalin.marinas@arm.com" , "linux-kernel@vger.kernel.org" , "daniel.schaefer@hpe.com" , Anup Patel , "kstewart@linuxfoundation.org" , "palmer@dabbelt.com" , "aou@eecs.berkeley.edu" , "arnd@arndb.de" , "rppt@linux.ibm.com" , "linux-efi@vger.kernel.org" , "bp@suse.de" , "greentime.hu@sifive.com" , "keescook@chromium.org" , "agraf@csgraf.de" , "will@kernel.org" , "gregkh@linuxfoundation.org" , "mingo@kernel.org" , "allison@lohutok.net" , "han_mao@c-sky.com" , "paul.walmsley@sifive.com" , "linus.walleij@linaro.org" , "leif@nuviainc.com" , "akpm@linux-foundation.org" Subject: Re: [RFC PATCH 5/5] RISC-V: Add EFI stub support. Thread-Topic: [RFC PATCH 5/5] RISC-V: Add EFI stub support. Thread-Index: AQHV7EGcTwB+3lKWSE6EbN3FfBrOBKgtFCkAgAJiY4A= Date: Thu, 27 Feb 2020 19:53:08 +0000 Message-ID: <26172d39fdb5ecd951ade0a89566c010f6166a03.camel@wdc.com> References: <20200226011037.7179-1-atish.patra@wdc.com> <20200226011037.7179-6-atish.patra@wdc.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Atish.Patra@wdc.com; x-originating-ip: [199.255.44.250] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: d2144a0c-577d-4a58-a96b-08d7bbbeab68 x-ms-traffictypediagnostic: BYAPR04MB5622: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: wdcipoutbound: EOP-TRUE x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 03264AEA72 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(4636009)(396003)(39860400002)(136003)(376002)(366004)(346002)(189003)(199004)(4326008)(2906002)(81166006)(81156014)(66556008)(54906003)(66446008)(36756003)(2616005)(316002)(64756008)(66476007)(5660300002)(86362001)(478600001)(7406005)(6486002)(7416002)(6506007)(76116006)(66946007)(8936002)(186003)(8676002)(71200400001)(6916009)(26005)(30864003)(6512007);DIR:OUT;SFP:1102;SCL:1;SRVR:BYAPR04MB5622;H:BYAPR04MB3990.namprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aVTlI1yFMJSXZI6voLOVKfdYNXwo2xhH4TO6QVNVhJ8+8b9WmRGzampGJ+XOr0gAUBkOn4Xp8lLFOmK783E8mbwFe+TUsJiCR4gxHM1ZvuYEtsUcqhfgbFKZs0oQxHx+XCgQZBXX6HKLF31MGSmqnbTyN4gOiC7Ml5+Ozo/Uyf2uGGJPqEsmyV0Bw8RS8ML0255GxTwvXkKkbtiybW1M5xNUR56o00EPugAYQD4RjJCeo77DRKXsl5XBZY3m+P78OaOZn8oYdwZc2R591sdV1ievklaDciWRfVh2on2HDmeAx1bZGsZIM/IKOoMhUlplmjZtGTb00AYWZ05uKbOCf9RZhNTO+dmBb/gQUD83GMgn07Qr/Xvjr9iPojjPoJiUs3MVIPIb7d47pbXYOFi2SCEm2b3sN6NpVgyM2oHwxT0TWYFFCdCDhL926xuxVoOZ x-ms-exchange-antispam-messagedata: l+dXEe2q7/1wBmOKS/CvEliV1emSJCDsA0UZtQVxyeYtKdTaf6lGtYe0g2yN/LOzVLqvWyRwEM4d0C0o8RAtNucwzbK4UY79zCTAaya+YY/A1hbhw3iTt6sEJ2gTu4/glPsZXJmyTEqKOonWq4Cbtg== Content-Type: text/plain; charset="utf-8" Content-ID: <379580619C661D488C9FA12017F338BA@namprd04.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: d2144a0c-577d-4a58-a96b-08d7bbbeab68 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Feb 2020 19:53:08.6510 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 6GbBSdOr2ZZTQ5EErUbJWTK+Rk3O9hWAEbSH2cW0+yJs9x8+X/XEZHRSdjqpxAxK27l/wFEm48ptCtzJ1GvDLQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR04MB5622 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gV2VkLCAyMDIwLTAyLTI2IGF0IDA4OjI4ICswMTAwLCBBcmQgQmllc2hldXZlbCB3cm90ZToN Cj4gT24gV2VkLCAyNiBGZWIgMjAyMCBhdCAwMjoxMCwgQXRpc2ggUGF0cmEgPGF0aXNoLnBhdHJh QHdkYy5jb20+DQo+IHdyb3RlOg0KPiA+IEFkZCBhIFJJU0MtViBhcmNoaXRlY3R1cmUgc3BlY2lm aWMgc3R1YiBjb2RlIHRoYXQgYWN0dWFsbHkgY29waWVzDQo+ID4gdGhlDQo+ID4gYWN0dWFsIGtl cm5lbCBpbWFnZSB0byBhIHZhbGlkIGFkZHJlc3MgYW5kIGp1bXAgdG8gaXQgYWZ0ZXIgYm9vdA0K PiA+IHNlcnZpY2VzDQo+ID4gYXJlIHRlcm1pbmF0ZWQuIEVuYWJsZSBVRUZJIHJlbGF0ZWQga2Vy bmVsIGNvbmZpZ3MgYXMgd2VsbCBmb3INCj4gPiBSSVNDLVYuDQo+ID4gDQo+ID4gU2lnbmVkLW9m Zi1ieTogQXRpc2ggUGF0cmEgPGF0aXNoLnBhdHJhQHdkYy5jb20+DQo+ID4gLS0tDQo+ID4gIGFy Y2gvcmlzY3YvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIwICsrKysNCj4gPiAg YXJjaC9yaXNjdi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ICBh cmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnICAgICAgICAgICAgICB8ICAgMSArDQo+ID4gIGRy aXZlcnMvZmlybXdhcmUvZWZpL2xpYnN0dWIvTWFrZWZpbGUgICAgIHwgICA4ICsrDQo+ID4gIGRy aXZlcnMvZmlybXdhcmUvZWZpL2xpYnN0dWIvcmlzY3Ytc3R1Yi5jIHwgMTM1DQo+ID4gKysrKysr KysrKysrKysrKysrKysrKw0KPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDE2NSBpbnNlcnRpb25zKCsp DQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Zpcm13YXJlL2VmaS9saWJzdHViL3Jp c2N2LXN0dWIuYw0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L0tjb25maWcgYi9h cmNoL3Jpc2N2L0tjb25maWcNCj4gPiBpbmRleCA0MmMxMjIxNzBjZmQuLjY4YjFkNTY1ZTUxZCAx MDA2NDQNCj4gPiAtLS0gYS9hcmNoL3Jpc2N2L0tjb25maWcNCj4gPiArKysgYi9hcmNoL3Jpc2N2 L0tjb25maWcNCj4gPiBAQCAtMzcyLDEwICszNzIsMzAgQEAgY29uZmlnIENNRExJTkVfRk9SQ0UN Cj4gPiANCj4gPiAgZW5kY2hvaWNlDQo+ID4gDQo+ID4gK2NvbmZpZyBFRklfU1RVQg0KPiA+ICsg ICAgICAgYm9vbA0KPiA+ICsNCj4gPiArY29uZmlnIEVGSQ0KPiA+ICsgICAgICAgYm9vbCAiVUVG SSBydW50aW1lIHN1cHBvcnQiDQo+ID4gKyAgICAgICBkZXBlbmRzIG9uIE9GDQo+ID4gKyAgICAg ICBzZWxlY3QgTElCRkRUDQo+ID4gKyAgICAgICBzZWxlY3QgVUNTMl9TVFJJTkcNCj4gPiArICAg ICAgIHNlbGVjdCBFRklfUEFSQU1TX0ZST01fRkRUDQo+ID4gKyAgICAgICBzZWxlY3QgRUZJX1NU VUINCj4gPiArICAgICAgIHNlbGVjdCBFRklfR0VORVJJQ19BUkNIX1NUVUINCj4gPiArICAgICAg IGRlZmF1bHQgeQ0KPiA+ICsgICAgICAgaGVscA0KPiA+ICsgICAgICAgICBUaGlzIG9wdGlvbiBw cm92aWRlcyBzdXBwb3J0IGZvciBydW50aW1lIHNlcnZpY2VzDQo+ID4gcHJvdmlkZWQNCj4gPiAr ICAgICAgICAgYnkgVUVGSSBmaXJtd2FyZSAoc3VjaCBhcyBub24tdm9sYXRpbGUgdmFyaWFibGVz LA0KPiA+IHJlYWx0aW1lDQo+ID4gKyAgICAgICAgICBjbG9jaywgYW5kIHBsYXRmb3JtIHJlc2V0 KS4gQSBVRUZJIHN0dWIgaXMgYWxzbyBwcm92aWRlZA0KPiA+IHRvDQo+ID4gKyAgICAgICAgIGFs bG93IHRoZSBrZXJuZWwgdG8gYmUgYm9vdGVkIGFzIGFuIEVGSSBhcHBsaWNhdGlvbi4gVGhpcw0K PiA+ICsgICAgICAgICBpcyBvbmx5IHVzZWZ1bCBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSBVRUZJIGZp cm13YXJlLg0KPiA+ICsNCj4gPiAgZW5kbWVudQ0KPiA+IA0KPiA+ICBtZW51ICJQb3dlciBtYW5h Z2VtZW50IG9wdGlvbnMiDQo+ID4gDQo+ID4gIHNvdXJjZSAia2VybmVsL3Bvd2VyL0tjb25maWci DQo+ID4gK3NvdXJjZSAiZHJpdmVycy9maXJtd2FyZS9LY29uZmlnIg0KPiA+IA0KPiA+ICBlbmRt ZW51DQo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvTWFrZWZpbGUgYi9hcmNoL3Jpc2N2L01h a2VmaWxlDQo+ID4gaW5kZXggYjkwMDlhMmZiYWY1Li4wYWZhYTg5YmE5YWQgMTAwNjQ0DQo+ID4g LS0tIGEvYXJjaC9yaXNjdi9NYWtlZmlsZQ0KPiA+ICsrKyBiL2FyY2gvcmlzY3YvTWFrZWZpbGUN Cj4gPiBAQCAtNzgsNiArNzgsNyBAQCBoZWFkLXkgOj0gYXJjaC9yaXNjdi9rZXJuZWwvaGVhZC5v DQo+ID4gIGNvcmUteSArPSBhcmNoL3Jpc2N2Lw0KPiA+IA0KPiA+ICBsaWJzLXkgKz0gYXJjaC9y aXNjdi9saWIvDQo+ID4gK2NvcmUtJChDT05GSUdfRUZJX1NUVUIpICs9DQo+ID4gJChvYmp0cmVl KS9kcml2ZXJzL2Zpcm13YXJlL2VmaS9saWJzdHViL2xpYi5hDQo+ID4gDQo+ID4gIFBIT05ZICs9 IHZkc29faW5zdGFsbA0KPiA+ICB2ZHNvX2luc3RhbGw6DQo+ID4gZGlmZiAtLWdpdCBhL2FyY2gv cmlzY3YvY29uZmlncy9kZWZjb25maWcNCj4gPiBiL2FyY2gvcmlzY3YvY29uZmlncy9kZWZjb25m aWcNCj4gPiBpbmRleCBlMmZmOTVjYjMzOTAuLjBhNWQzNTc4ZjUxZSAxMDA2NDQNCj4gPiAtLS0g YS9hcmNoL3Jpc2N2L2NvbmZpZ3MvZGVmY29uZmlnDQo+ID4gKysrIGIvYXJjaC9yaXNjdi9jb25m aWdzL2RlZmNvbmZpZw0KPiA+IEBAIC0xMjUsMyArMTI1LDQgQEAgQ09ORklHX0RFQlVHX0JMT0NL X0VYVF9ERVZUPXkNCj4gPiAgIyBDT05GSUdfRlRSQUNFIGlzIG5vdCBzZXQNCj4gPiAgIyBDT05G SUdfUlVOVElNRV9URVNUSU5HX01FTlUgaXMgbm90IHNldA0KPiA+ICBDT05GSUdfTUVNVEVTVD15 DQo+ID4gK0NPTkZJR19FRkk9eQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Zpcm13YXJlL2Vm aS9saWJzdHViL01ha2VmaWxlDQo+ID4gYi9kcml2ZXJzL2Zpcm13YXJlL2VmaS9saWJzdHViL01h a2VmaWxlDQo+ID4gaW5kZXggMmM1Yjc2Nzg3MTI2Li4zOGZhY2I2MTc0NWIgMTAwNjQ0DQo+ID4g LS0tIGEvZHJpdmVycy9maXJtd2FyZS9lZmkvbGlic3R1Yi9NYWtlZmlsZQ0KPiA+ICsrKyBiL2Ry aXZlcnMvZmlybXdhcmUvZWZpL2xpYnN0dWIvTWFrZWZpbGUNCj4gPiBAQCAtMjEsNiArMjEsOCBA QCBjZmxhZ3MtJChDT05GSUdfQVJNNjQpICAgICAgICAgICAgICAgIDo9ICQoc3Vic3QNCj4gPiAk KENDX0ZMQUdTX0ZUUkFDRSksLCQoS0JVSUxEX0NGTEFHUykpIFwNCj4gPiAgY2ZsYWdzLSQoQ09O RklHX0FSTSkgICAgICAgICAgIDo9ICQoc3Vic3QNCj4gPiAkKENDX0ZMQUdTX0ZUUkFDRSksLCQo S0JVSUxEX0NGTEFHUykpIFwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC1mbm8tYnVpbHRpbiAtZnBpYyBcDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkKGNhbGwgY2Mtb3B0aW9uLC1tbm8tc2luZ2xlLQ0KPiA+IHBpYy1iYXNlKQ0KPiA+ICtj ZmxhZ3MtJChDT05GSUdfUklTQ1YpICAgICAgICAgOj0gJChzdWJzdA0KPiA+ICQoQ0NfRkxBR1Nf RlRSQUNFKSwsJChLQlVJTERfQ0ZMQUdTKSkgXA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLWZwaWMNCj4gPiANCj4gPiAgY2ZsYWdzLSQoQ09ORklHX0VGSV9HRU5FUklD X0FSQ0hfU1RVQikgKz0NCj4gPiAtSSQoc3JjdHJlZSkvc2NyaXB0cy9kdGMvbGliZmR0DQo+ID4g DQo+ID4gQEAgLTU1LDYgKzU3LDcgQEAgbGliLSQoQ09ORklHX0VGSV9HRU5FUklDX0FSQ0hfU1RV QikgICAgICAgICAgICs9DQo+ID4gZWZpLXN0dWIubyBmZHQubyBzdHJpbmcubyBcDQo+ID4gIGxp Yi0kKENPTkZJR19BUk0pICAgICAgICAgICAgICArPSBhcm0zMi1zdHViLm8NCj4gPiAgbGliLSQo Q09ORklHX0FSTTY0KSAgICAgICAgICAgICs9IGFybTY0LXN0dWIubw0KPiA+ICBsaWItJChDT05G SUdfWDg2KSAgICAgICAgICAgICAgKz0geDg2LXN0dWIubw0KPiA+ICtsaWItJChDT05GSUdfUklT Q1YpICAgICAgICAgICAgKz0gcmlzY3Ytc3R1Yi5vDQo+ID4gIENGTEFHU19hcm0zMi1zdHViLm8g ICAgICAgICAgICA6PSAtRFRFWFRfT0ZGU0VUPSQoVEVYVF9PRkZTRVQpDQo+ID4gIENGTEFHU19h cm02NC1zdHViLm8gICAgICAgICAgICA6PSAtRFRFWFRfT0ZGU0VUPSQoVEVYVF9PRkZTRVQpDQo+ ID4gDQo+ID4gQEAgLTc5LDYgKzgyLDExIEBAIFNUVUJDT1BZX0ZMQUdTLSQoQ09ORklHX0FSTTY0 KSAgICAgICArPSAtLQ0KPiA+IHByZWZpeC1hbGxvYy1zZWN0aW9ucz0uaW5pdCBcDQo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLXByZWZpeC1zeW1ib2xzPV9fZWZpc3R1 Yl8NCj4gPiAgU1RVQkNPUFlfUkVMT0MtJChDT05GSUdfQVJNNjQpIDo9IFJfQUFSQ0g2NF9BQlMN Cj4gPiANCj4gPiArU1RVQkNPUFlfRkxBR1MtJChDT05GSUdfUklTQ1YpICs9IC0tcHJlZml4LWFs bG9jLXNlY3Rpb25zPS5pbml0IFwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0tcHJlZml4LXN5bWJvbHM9X19lZmlzdHViXw0KPiA+ICtTVFVCQ09QWV9SRUxPQy0kKENP TkZJR19SSVNDVikgOj0gUl9SSVNDVl9ISTIwDQo+ID4gKw0KPiA+ICsNCj4gPiAgJChvYmopLyUu c3R1Yi5vOiAkKG9iaikvJS5vIEZPUkNFDQo+ID4gICAgICAgICAkKGNhbGwgaWZfY2hhbmdlZCxz dHViY29weSkNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9lZmkvbGli c3R1Yi9yaXNjdi1zdHViLmMNCj4gPiBiL2RyaXZlcnMvZmlybXdhcmUvZWZpL2xpYnN0dWIvcmlz Y3Ytc3R1Yi5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAw MDAuLjM5MzViMjllYTkzYQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2ZXJzL2Zp cm13YXJlL2VmaS9saWJzdHViL3Jpc2N2LXN0dWIuYw0KPiA+IEBAIC0wLDAgKzEsMTM1IEBADQo+ ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+ID4gKy8qDQo+ID4gKyAq IENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBMaW5hcm8gTHRkOyAgPHJveS5mcmFuekBsaW5hcm8u b3JnPg0KPiA+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjAgV2VzdGVybiBEaWdpdGFsIENvcnBvcmF0 aW9uIG9yIGl0cw0KPiA+IGFmZmlsaWF0ZXMuDQo+ID4gKyAqDQo+ID4gKyAqIFRoaXMgZmlsZSBp bXBsZW1lbnRzIHRoZSBFRkkgYm9vdCBzdHViIGZvciB0aGUgUklTQy1WIGtlcm5lbC4NCj4gPiAr ICogQWRhcHRlZCBmcm9tIEFSTTY0IHZlcnNpb24gYXQNCj4gPiBkcml2ZXJzL2Zpcm13YXJlL2Vm aS9saWJzdHViL2FybTY0LXN0dWIuYy4NCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8 bGludXgvZWZpLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9saWJmZHQuaD4NCj4gPiArI2luY2x1 ZGUgPGxpbnV4L2xpYmZkdF9lbnYuaD4NCj4gPiArI2luY2x1ZGUgPGFzbS9lZmkuaD4NCj4gPiAr I2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPg0KPiA+ICsNCj4gPiArI2luY2x1ZGUgImVmaXN0dWIu aCINCj4gPiArLyoNCj4gPiArICogUklTQ1YgcmVxdWlyZXMgdGhlIGtlcm5lbCBpbWFnZSB0byBw bGFjZWQgVEVYVF9PRkZTRVQgYnl0ZXMNCj4gPiBiZXlvbmQgYSAyIE1CDQo+ID4gKyAqIGFsaWdu ZWQgYmFzZSBmb3IgNjQgYml0IGFuZCA0TUIgZm9yIDMyIGJpdC4NCj4gPiArICovDQo+ID4gKyNp ZiBJU19FTkFCTEVEKENPTkZJR182NEJJVCkNCj4gDQo+IFlvdSBjYW4gdXNlICNpZmRlZiBoZXJl DQo+IA0KDQpvay4NCg0KPiA+ICsjZGVmaW5lIE1JTl9LSU1HX0FMSUdOIFNaXzJNDQo+ID4gKyNl bHNlDQo+ID4gKyNkZWZpbmUgTUlOX0tJTUdfQUxJR04gU1pfNE0NCj4gPiArI2VuZGlmDQo+ID4g Ky8qDQo+ID4gKyAqIFRFWFRfT0ZGU0VUIGVuc3VyZXMgdGhhdCB3ZSBkb24ndCBvdmVyd3JpdGUg dGhlIGZpcm13YXJlIHRoYXQNCj4gPiBwcm9iYWJseSBzaXRzDQo+ID4gKyAqIGF0IHRoZSBiZWdp bm5pbmcgb2YgdGhlIERSQU0uDQo+ID4gKyAqLw0KPiANCj4gVWdoLiBSZWFsbHk/IE9uIGFuIEVG SSBzeXN0ZW0sIHRoYXQgbWVtb3J5IHNob3VsZCBiZSByZXNlcnZlZCBpbiBzb21lDQo+IHdheSwg d2Ugc2hvdWxkbid0IGJlIGFibGUgdG8gc3RvbXAgb24gaXQgbGlrZSB0aGF0Lg0KPiANCg0KQ3Vy cmVudGx5LCB3ZSByZXNlcnZlIHRoZSBpbml0aWFsIDEyOEtCIGZvciBydW4gdGltZSBmaXJtd2Fy ZShvbmx5DQpvcGVuU0JJIGZvciBub3csIEVESzIgbGF0ZXIpIGJ5IHVzaW5nIFBNUCAocGh5c2lj YWwgbWVtb3J5IHByb3RlY3Rpb24pLg0KQW55IGFjZXNzIHRvIHRoYXQgcmVnaW9uIGZyb20gc3Vw ZXJ2aXNvciBtb2RlIChpLmUuIFUtQm9vdCkgd2lsbCByZXN1bHQNCmluIGEgZmF1bHQuDQoNCklz IGl0IG1hbmRhdG9yeSBmb3IgVUVGSSB0byByZXNlcnZlIHRoZSBiZWdpbm5pbmcgb2YgdGhlIERS QU0gPyANCg0KPiA+ICsjZGVmaW5lIFRFWFRfT0ZGU0VUIE1JTl9LSU1HX0FMSUdODQo+ID4gKw0K PiA+ICt0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSkgdm9pZA0KPiA+ICgqanVtcF9r ZXJuZWxfZnVuYykodW5zaWduZWQgaW50LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQNCj4gPiBsb25nKTsNCj4g PiArDQo+ID4gK2VmaV9zdGF0dXNfdCBjaGVja19wbGF0Zm9ybV9mZWF0dXJlcyh2b2lkKQ0KPiA+ ICt7DQo+ID4gKyAgICAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ID4gK30NCj4gPiArDQo+ID4g K3U2NCBnZXRfYm9vdF9oYXJ0aWRfZnJvbV9mZHQodW5zaWduZWQgbG9uZyBmZHQpDQo+IA0KPiBz dGF0aWMNCj4gDQo+ID4gK3sNCj4gPiArICAgICAgIGludCBjaG9zZW5fbm9kZSwgbGVuOw0KPiA+ ICsgICAgICAgY29uc3QgZmR0NjRfdCAqcHJvcDsNCj4gPiArICAgICAgIHVpbnQ2NF90IGhhcnRp ZCA9IFU2NF9NQVg7DQo+ID4gKw0KPiA+ICsgICAgICAgY2hvc2VuX25vZGUgPSBmZHRfcGF0aF9v ZmZzZXQoKHZvaWQgKilmZHQsICIvY2hvc2VuIik7DQo+ID4gKyAgICAgICBpZiAoY2hvc2VuX25v ZGUgPCAwKQ0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gaGFydGlkOw0KPiANCj4gSnVzdCBy ZXR1cm4gVTY0X01BWCBoZXJlDQo+IA0KPiA+ICsgICAgICAgcHJvcCA9IGZkdF9nZXRwcm9wKCh2 b2lkICopZmR0LCBjaG9zZW5fbm9kZSwgImVmaS1ib290LQ0KPiA+IGhhcnRpZCIsICZsZW4pOw0K PiANCj4gUGxlYXNlIGNhbGwgdGhpcyAnYm9vdC1oYXJ0aWQnIG5vdCAnZWZpLWJvb3QtaGFydGlk JyBhcyB0aGUgaGFydGlkDQo+IHZhbHVlIGlzIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgeW91IGJv b3QgdmlhIEVGSSBvciBub3QuDQo+IA0KPiA+ICsgICAgICAgaWYgKCFwcm9wIHx8IGxlbiAhPSBz aXplb2YodTY0KSkNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIGhhcnRpZDsNCj4gPiArDQo+ IA0KPiBSZXR1cm4gVTY0X01BWA0KPiANCj4gPiArICAgICAgIGhhcnRpZCA9IGZkdDY0X3RvX2Nw dSgqcHJvcCk7DQo+ID4gKw0KPiANCj4gYW5kIGp1c3QgcmV0dXJuIHRoZSBzd2FiYmVkIHZhbHVl LCBzbyB5b3UgY2FuIGdldCByaWQgb2YgdGhlIGxvY2FsDQo+IHZhci4NCj4gDQoNCkZpeGVkIGFs bCB0aGUgYWJvdmUgaXNzdWVzLiBJIGNoYW5nZWQgaXQgdG8gdTMyIGFzIHU2NCB3b24ndCB3b3Jr IG9uIDMyDQpiaXQgc3lzdGVtcy4NCg0KPiA+ICsgICAgICAgcmV0dXJuIGhhcnRpZDsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArLyoNCj4gPiArICogSnVtcCB0byByZWFsIGtlcm5lbCBoZXJlIHdpdGgg Zm9sbG93aW5nIGNvbnN0cmFpbnRzLg0KPiA+ICsgKiAxLiBNTVUgc2hvdWxkIGJlIGRpc2FibGVk Lg0KPiA+ICsgKiAyLiBhMCBzaG91bGQgY29udGFpbiBoYXJ0aWQNCj4gPiArICogMy4gYTEgc2hv dWxkIERUIGFkZHJlc3MNCj4gPiArICovDQo+ID4gK3ZvaWQgX19ub3JldHVybiBlZmlfZW50ZXJf a2VybmVsKHVuc2lnbmVkIGxvbmcgZW50cnlwb2ludCwNCj4gPiB1bnNpZ25lZCBsb25nIGZkdCkN Cj4gDQo+IFRoaXMgcHJvdG90eXBlIGhhcyBjaGFuZ2VkLCBhbmQgbm93IGluY2x1ZGVzIHRoZSBz aXplIG9mIHRoZSBmZHQgaW4NCj4gcGFyYW0gMy4NCj4gDQoNCkFoaCB5ZXMuIEZpeGVkLg0KDQo+ ID4gK3sNCj4gPiArICAgICAgIHVuc2lnbmVkIGxvbmcga2VybmVsX2VudHJ5ID0gZW50cnlwb2lu dCArIF9zdGFydF9rZXJuZWwgLQ0KPiA+IF9zdGFydDsNCj4gDQo+IHN0ZXh0X29mZnNldCA/IEl0 IGhhcyBhIHRlcnJpYmxlIG5hbWUgdGhvdWdoLCBhbmQgSSdsbCBwcm9iYWJseQ0KPiBwcm9wb3Nl IHRvIGNoYW5nZSBpdCBhdCBzb21lIHBvaW50LCBmb3IgYWxsIGFyY2hlcy4gQnV0IHlvdSBjYW4g c3RpbGwNCj4gdXNlIGl0IGhlcmUuDQo+IA0KDQpTdXJlLiBJIHVwZGF0ZWQgaXQgd2l0aCBzdGV4 dF9vZmZzZXQuDQoNCj4gPiArICAgICAgIGp1bXBfa2VybmVsX2Z1bmMganVtcF9rZXJuZWwgPSAo dm9pZCAoKikodW5zaWduZWQgaW50LA0KPiA+IHVuc2lnbmVkIGxvbmcpKWtlcm5lbF9lbnRyeTsN Cj4gPiArICAgICAgIHU2NCBoYXJ0aWQgPSBnZXRfYm9vdF9oYXJ0aWRfZnJvbV9mZHQoZmR0KTsN Cj4gPiArDQo+ID4gKyAgICAgICBpZiAoaGFydGlkID09IFU2NF9NQVgpDQo+ID4gKyAgICAgICAg ICAgICAgIC8qIFdlIGNhbiBub3QgdXNlIHBhbmljIG9yIEJVRyBhdCB0aGlzIHBvaW50ICovDQo+ ID4gKyAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgiZWJyZWFrIik7DQo+ID4g KyAgICAgICAvKiBEaXNhYmxlIE1NVSAqLw0KPiA+ICsgICAgICAgY3NyX3dyaXRlKENTUl9TQVRQ LCAwKTsNCj4gPiArICAgICAgIGp1bXBfa2VybmVsKGhhcnRpZCwgZmR0KTsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArZWZpX3N0YXR1c190IGhhbmRsZV9rZXJuZWxfaW1hZ2UodW5zaWduZWQgbG9uZyAq aW1hZ2VfYWRkciwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBsb25nICppbWFnZV9zaXplLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgKnJlc2VydmVfYWRkciwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nICpyZXNlcnZlX3NpemUsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBkcmFtX2Jhc2UsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWZpX2xvYWRlZF9pbWFnZV90ICppbWFnZSkNCj4g PiArew0KPiA+ICsgICAgICAgZWZpX3N0YXR1c190IHN0YXR1czsNCj4gPiArICAgICAgIHVuc2ln bmVkIGxvbmcga2VybmVsX3NpemUsIGtlcm5lbF9tZW1zaXplID0gMDsNCj4gPiArICAgICAgIHVu c2lnbmVkIGxvbmcgcHJlZmVycmVkX29mZnNldDsNCj4gPiArDQo+ID4gKyAgICAgICAvKg0KPiA+ ICsgICAgICAgICogVGhlIHByZWZlcnJlZCBvZmZzZXQgb2YgdGhlIGtlcm5lbCBJbWFnZSBpcyBU RVhUX09GRlNFVA0KPiA+IGJ5dGVzIGJleW9uZA0KPiA+ICsgICAgICAgICogYSBLSU1HX0FMSUdO IGFsaWduZWQgYmFzZS4NCj4gPiArICAgICAgICAqLw0KPiA+ICsgICAgICAgcHJlZmVycmVkX29m ZnNldCA9IHJvdW5kX3VwKGRyYW1fYmFzZSwgTUlOX0tJTUdfQUxJR04pICsNCj4gPiBURVhUX09G RlNFVDsNCj4gPiArDQo+ID4gKyAgICAgICBrZXJuZWxfc2l6ZSA9IF9lZGF0YSAtIF9zdGFydDsN Cj4gPiArICAgICAgIGtlcm5lbF9tZW1zaXplID0ga2VybmVsX3NpemUgKyAoX2VuZCAtIF9lZGF0 YSk7DQo+ID4gKw0KPiA+ICsgICAgICAgLyoNCj4gPiArICAgICAgICAqIFRyeSBhIHN0cmFpZ2h0 IGFsbG9jYXRpb24gYXQgdGhlIHByZWZlcnJlZCBvZmZzZXQuDQo+ID4gKyAgICAgICAgKiBUaGlz IHdpbGwgd29yayBhcm91bmQgdGhlIGlzc3VlIHdoZXJlLCBpZiBkcmFtX2Jhc2UgPT0NCj4gPiAw eDAsDQo+ID4gKyAgICAgICAgKiBlZmlfbG93X2FsbG9jKCkgcmVmdXNlcyB0byBhbGxvY2F0ZSBh dCAweDAgKHRvIHByZXZlbnQNCj4gPiB0aGUNCj4gPiArICAgICAgICAqIGFkZHJlc3Mgb2YgdGhl IGFsbG9jYXRpb24gdG8gYmUgbWlzdGFrZW4gZm9yIGEgRkFJTA0KPiA+IHJldHVybg0KPiA+ICsg ICAgICAgICogdmFsdWUgb3IgYSBOVUxMIHBvaW50ZXIpLiBJdCB3aWxsIGFsc28gZW5zdXJlIHRo YXQsIG9uDQo+ID4gKyAgICAgICAgKiBwbGF0Zm9ybXMgd2hlcmUgdGhlIFtkcmFtX2Jhc2UsIGRy YW1fYmFzZSArIFRFWFRfT0ZGU0VUKQ0KPiA+ICsgICAgICAgICogaW50ZXJ2YWwgaXMgcGFydGlh bGx5IG9jY3VwaWVkIGJ5IHRoZSBmaXJtd2FyZSAobGlrZSBvbg0KPiA+IEFQTQ0KPiA+ICsgICAg ICAgICogTXVzdGFuZyksIHdlIGNhbiBzdGlsbCBwbGFjZSB0aGUga2VybmVsIGF0IHRoZSBhZGRy ZXNzDQo+ID4gKyAgICAgICAgKiAnZHJhbV9iYXNlICsgVEVYVF9PRkZTRVQnLg0KPiANCj4gQmV0 dGVyIGRyb3AgdGhpcyBlbnRpcmUgbGFzdCBzZW50ZW5jZSAodW5sZXNzIGl0IGlzIHJlbGV2YW50 LCBidXQNCj4gdGhlbg0KPiByZXdvcmsgaXQgdG8gZHJvcCB0aGUgQVBNIE11c3RhbmcgcmVmZXJl bmNlKQ0KPiANCg0KQXMgc3RhdGVkIGFib3ZlLCBSSVNDLVYgZmlybXdhcmUgb2NjdXBpZXMgW2Ry YW1fYmFzZSwgZHJhbV9iYXNlICsNCjEyOEspLiBUaGF0J3Mgd2h5IEkgdGhvdWdodCB0aGlzIGNv bW1lbnQgaXMgdXNlZnVsLiBJIHNob3VsZCBoYXZlDQpyZW1vdmVkIHRoZSBtdXN0YW5kIHJlZmVy ZW5jZS4gSSB3aWxsIHVwZGF0ZSBpdC4NCg0KPiA+ICsgICAgICAgICovDQo+ID4gKyAgICAgICBp ZiAoKmltYWdlX2FkZHIgPT0gcHJlZmVycmVkX29mZnNldCkNCj4gPiArICAgICAgICAgICAgICAg cmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ICsNCj4gPiArICAgICAgICppbWFnZV9hZGRyID0gKnJl c2VydmVfYWRkciA9IHByZWZlcnJlZF9vZmZzZXQ7DQo+ID4gKyAgICAgICAqcmVzZXJ2ZV9zaXpl ID0gcm91bmRfdXAoa2VybmVsX21lbXNpemUsIEVGSV9BTExPQ19BTElHTik7DQo+ID4gKw0KPiA+ ICsgICAgICAgc3RhdHVzID0gZWZpX2JzX2NhbGwoYWxsb2NhdGVfcGFnZXMsIEVGSV9BTExPQ0FU RV9BRERSRVNTLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX0xPQURF Ul9EQVRBLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnJlc2VydmVfc2l6 ZSAvIEVGSV9QQUdFX1NJWkUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo ZWZpX3BoeXNpY2FsX2FkZHJfdA0KPiA+ICopcmVzZXJ2ZV9hZGRyKTsNCj4gPiArDQo+ID4gKyAg ICAgICBpZiAoc3RhdHVzICE9IEVGSV9TVUNDRVNTKSB7DQo+ID4gKyAgICAgICAgICAgICAgICpy ZXNlcnZlX3NpemUgPSBrZXJuZWxfbWVtc2l6ZSArIFRFWFRfT0ZGU0VUOw0KPiA+ICsgICAgICAg ICAgICAgICBzdGF0dXMgPSBlZmlfbG93X2FsbG9jKCpyZXNlcnZlX3NpemUsDQo+ID4gTUlOX0tJ TUdfQUxJR04sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZV9hZGRyKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gRUZJ X1NVQ0NFU1MpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBwcl9lZmlfZXJyKCJGYWls ZWQgdG8gcmVsb2NhdGUga2VybmVsXG4iKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAq cmVzZXJ2ZV9zaXplID0gMDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3Rh dHVzOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICAgICAgICAgICppbWFnZV9h ZGRyID0gKnJlc2VydmVfYWRkciArIFRFWFRfT0ZGU0VUOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsg ICAgICAgbWVtY3B5KCh2b2lkICopKmltYWdlX2FkZHIsIGltYWdlLT5pbWFnZV9iYXNlLA0KPiA+ IGtlcm5lbF9zaXplKTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ ID4gK30NCj4gPiAtLQ0KPiA+IDIuMjQuMA0KPiA+IA0KDQotLSANClJlZ2FyZHMsDQpBdGlzaA0K