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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 83140C02192 for ; Mon, 3 Feb 2025 19:12:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=cyfbwvFmwKUpZjERldtxs3aR9Kd6rRKOaqTO1fRJJNM=; b=zYHvg//MavjZKE MDSJNw5AMj3FFZGIOeHPkkiUpRhIXtVcGAkxwDcmZIVzUuRa6kIZMAGjIyT3IbdL8QUn15OH2rSpG TdwwJf0o8inkU6cxzBN93KxJC3geHe02Fus9l26tZtIZqmUR2fDyB4PCC9lVd3MLKEu4jY5sKjD0Z gT1boH443BaOUKOGFGr7KBudkyKySZPasOWkvHt3UmU1FF0Q/VhRaE7Jx73gNJquGU0iQTO2eHZvu /gcGCh+uEItTettc4U3OywsqvVbtQLECTxAnP3Y4zazaxzC58EYLyOaiGfG7MHElwzfZ85fjifGz1 mDhEqHeZj7wo1d85z4sA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tf1s7-0000000GPmD-11EM; Mon, 03 Feb 2025 19:12:39 +0000 Received: from mail-pl1-x642.google.com ([2607:f8b0:4864:20::642]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tf1s4-0000000GPlB-2ZDO for linux-riscv@lists.infradead.org; Mon, 03 Feb 2025 19:12:38 +0000 Received: by mail-pl1-x642.google.com with SMTP id d9443c01a7336-21619108a6bso80307735ad.3 for ; Mon, 03 Feb 2025 11:12:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1738609956; x=1739214756; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=kVc14ds/3vaHuIcp1SH+yhV8K9Dwrclk14FkpIfc60U=; b=v9LbHYZ/r5ukTr5P7nYBut0P2EnJVaBEGq6igYmIUvo4n9CxgLNd2vUefSCd0zjh4K WpjmUiNHunIn9gjmgTEowBEuA9RE5WqPPem2JChbrqfvXUuSdsEVAvw/btJkfrSTpz3Z DHUWbuQ0NjVXrUWCs6SL1Yrg/j8GsE6hfM0i20iDf4UHjy0D8YO4duCZEDcNgs3q0p5B BvQk/WYLc5W7XNseg2ES/UeoyNRNb1cYGafIjvK9ozPUu88jnEu1ng8uWxrWLLQB1yCd NEL3kNL8YfT8GFb+SK8vEFZ9JoP/kmn8y4hDpknSHx2LZ9SNTvzMOauQ8bNpiYfE2QUH 7tjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738609956; x=1739214756; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kVc14ds/3vaHuIcp1SH+yhV8K9Dwrclk14FkpIfc60U=; b=p+03ZnnPoFup+DOQBvHeQuw8g16I2dlLVSiPQbKkxrwgrlkqAOEBSYTqdumgrayA6n 4P7ODM5yCLEOwEgxhedx6vO6sHuKUfL46u8Nd+aRoruus6E8kErR7fsX9uKgtPVixuPV cz71BfbSNQq/dAs3tji87incZub2ZKUgEEsbbVyaoC2x0a+R0MJFDb13glyF6blVzKes OlzkFHzyAbXj2e68Ba4KuJztqp24ExZCjbPuu790eGDRWJlAbtJkkxZyz3e2//Hp/z8s JAUPPwXflYnelUUqsH6fOyHq6ZzIb6H8T0M04MG7QNl4menq4KSLaDfbupP1duOaoMHf 5vLg== X-Forwarded-Encrypted: i=1; AJvYcCUGw0pFnFVXJnx3FXOFrwS3UTVLRYX7+yZNYiUvFTbml57mIYj1fVawH9P8evMRIuapgMmAODspIbTBxA==@lists.infradead.org X-Gm-Message-State: AOJu0Yyf1bdcpUut4OFQwHQusYKmz/kwmXixykMKwXcSMkSJvxO3OPEv LIXM9DyjxwcJ6AhDntIkpjtRN10wBE57+dQ7AVaCjl87FYmU7CWh3uwSyiq+dNw= X-Gm-Gg: ASbGncsAeY+Me/6/ZjU0fPPpeS/UA/d7VGeiGEbJbBECQIOK18IcAOYeOXd2YoQPyXZ lldpq/P1fcHidnE4hjKUu4vP19bnFJ1zZ0Po+yr1DJ+Wm2mg4l2YVRKMplNvcHhRrCfWOu+a8K5 KlkHzX36rzyvdPXVpk9G7nHpruAXYnCNf7bd68ep0WjHj5kWX1x8WW2QX9VSJD3UqxZEjKIlOVR CSX8ZL+iYK9Yq5Fmy286AtS9Krz4Ue6DVktYijxC+4Y1IXAUP7L3L/DrXGPdbhE5CilrobylcHu f+/Jnx+gNe4= X-Google-Smtp-Source: AGHT+IEW8VYVGX/g0scUPbicx0lQjpuuIy+guiEpo7CMV8fy/V1CEhg6ljnMr8yc4V2gECuckVXG0A== X-Received: by 2002:a05:6a21:6da4:b0:1e1:b727:1801 with SMTP id adf61e73a8af0-1ed7a5ef9demr35727915637.27.1738609955803; Mon, 03 Feb 2025 11:12:35 -0800 (PST) Received: from ghost ([2601:647:6700:64d0:4f63:f9d5:2cbd:2947]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72fe69bbb7esm9134416b3a.106.2025.02.03.11.12.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Feb 2025 11:12:35 -0800 (PST) Date: Mon, 3 Feb 2025 11:12:32 -0800 From: Charlie Jenkins To: Conor Dooley Cc: Aleksandar Rikalo , linux-riscv@lists.infradead.org, Paul Walmsley , Palmer Dabbelt , Albert Ou , Will Deacon , Peter Zijlstra , Boqun Feng , Mark Rutland , Yury Norov , Rasmus Villemoes , Andrea Parri , Leonardo Bras , Guo Ren , Samuel Holland , Eric Chan , linux-kernel@vger.kernel.org, Djordje Todorovic Subject: Re: [PATCH v2] riscv: Use Zalrsc extension to implement atomic functions Message-ID: References: <20241225082412.36727-1-arikalo@gmail.com> <20250202-clammy-skewed-eb0a0fce18f1@spud> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20250202-clammy-skewed-eb0a0fce18f1@spud> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250203_111236_664659_99BFF5B3 X-CRM114-Status: GOOD ( 46.94 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gU3VuLCBGZWIgMDIsIDIwMjUgYXQgMDg6MDg6NTBQTSArMDAwMCwgQ29ub3IgRG9vbGV5IHdy b3RlOgo+IE9uIFNhdCwgRmViIDAxLCAyMDI1IGF0IDAxOjA0OjI1UE0gKzAxMDAsIEFsZWtzYW5k YXIgUmlrYWxvIHdyb3RlOgo+ID4gT24gRnJpLCBKYW4gMTAsIDIwMjUgYXQgNDoyM+KAr0FNIENo YXJsaWUgSmVua2lucyA8Y2hhcmxpZUByaXZvc2luYy5jb20+IHdyb3RlOgo+ID4gCj4gPiA+ID4g RnJvbTogQ2hhby15aW5nIEZ1IDxjZnVAbWlwcy5jb20+Cj4gPiA+ID4KPiA+ID4gPiBVc2Ugb25s eSBMUi9TQyBpbnN0cnVjdGlvbnMgdG8gaW1wbGVtZW50IGF0b21pYyBmdW5jdGlvbnMuCj4gPiA+ Cj4gPiA+IEluIHRoZSBwcmV2aW91cyBwYXRjaCB5b3UgbWVudGlvbiB0aGF0IHRoaXMgaXMgdG8g c3VwcG9ydCBNSVBTIFA4NzAwLiBDYW4KPiA+ID4geW91IGV4cGFuZCBvbiB3aHkgdGhpcyBjaGFu Z2UgaXMgcmVxdWlyZWQ/IFRoZSBkYXRhc2hlZXQgYXQgWzFdIHNheXM6Cj4gPiA+Cj4gPiA+ICJU aGUgUDg3MDAgY29yZSBpcyBjb25maWd1cmVkIHRvIHN1cHBvcnQgdGhlIFJWNjRHQ1piYV9aYmIg KEcgPSBJTUFGRCkKPiA+ID4gU3RhbmRhcmQgSVNBLiBJdCBpbmNsdWRlcyB0aGUgUlY2NEkgYmFz ZSBJU0EsIE11bHRpcGx5IChNKSwgQXRvbWljIChBKSwKPiA+ID4gU2luZ2xlLVByZWNpc2lvbiBG bG9hdGluZyBQb2ludCAoRiksIERvdWJsZSAoRCksIENvbXByZXNzZWQgKEMpIFJJU0MtVgo+ID4g PiBleHRlbnNpb25zLCBhcyB3ZWxsIGFzIHRoZSBhcyB3ZWxsIGFzIHRoZSBiaXQtbWFuaXB1bGF0 aW9uIGV4dGVuc2lvbnMKPiA+ID4gKFpiYSkgYW5kIChaYmIpIgo+ID4gPgo+ID4gPiBUaGUgIkEi IGV4dGVuc2lvbiBpcyBhIHBhcnQgb2YgIkciIHdoaWNoIGlzIG1vc3RseSBhc3N1bWVkIHRvIGV4 aXN0IGluCj4gPiA+IHRoZSBrZXJuZWwuIEFkZGl0aW9uYWxseSwgaGF2aW5nIHRoaXMgYmUgYSBj b21waWxhdGlvbiBmbGFnIHdpbGwgY2F1c2UKPiA+ID4gdHJhcHMgb24gZ2VuZXJpYyBrZXJuZWxz LiBXZSBnZW5lcmFsbHkgdHJ5IHRvIHB1c2ggZXZlcnl0aGluZyB3ZSBjYW4KPiA+ID4gaW50byBy dW50aW1lIGZlYXR1cmUgZGV0ZWN0aW9uIHNpbmNlIHRoZXJlIGFyZSBzbyBtYW55IHBvc3NpYmxl IHZhcmlhbnRzCj4gPiA+IG9mIHJpc2N2Lgo+ID4gPgo+ID4gPiBFeHByZXNzaW5nIG5vdCBiZWlu ZyBhYmxlIHRvIHBlcmZvcm0gYSBmZWF0dXJlIGxpa2UgdGhpcyBpcyBub3JtYWxseQo+ID4gPiBi ZXR0ZXIgZXhwcmVzc2VkIGFzIGFuIGVycmF0YS4gVGhlbiBnZW5lcmljIGtlcm5lbHMgd2lsbCBi ZSBhYmxlIHRvCj4gPiA+IGluY2x1ZGUgdGhpcywgYW5kIGFueWJvZHkgd2hvIGRvZXNuJ3Qgd2Fu dCB0byBoYXZlIHRoZSBleHRyYSBub3BzCj4gPiA+IGludHJvZHVjZWQgY2FuIGRpc2FibGUgdGhl IGVycmF0YS4gQSBzaW1pbGFyIGFwcHJvYWNoIHRvIHdoYXQgSSBwb2ludGVkCj4gPiA+IG91dCBs YXN0IHRpbWUgc2hvdWxkIHdvcmsgaGVyZSB0b28gKGJ1dCB3aXRoIG1vcmUgcGxhY2VzIHRvIHJl cGxhY2UpCj4gPiA+IFsyXS4KPiA+ID4KPiA+ID4gWzFdIGh0dHBzOi8vbWlwcy5jb20vd3AtY29u dGVudC91cGxvYWRzLzIwMjQvMTEvUDg3MDBfRGF0YV9TaGVldC5wZGYKPiA+ID4gWzJdIGh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvWjItVU5md2NBUVlacVZCVUBnaG9zdC9ULwo+ID4gCj4g PiBTbyBmYXIgd2UgaGF2ZW4ndCBmb3VuZCBhIHdheSB0byBkbyB0aGlzIHVzaW5nIGVycmF0YS4K PiAKPiBZb3UgbWVhbiB1c2luZyBhbHRlcm5hdGl2ZXM/IE5vdCBpbXBsZW1lbnRpbmcgQSwgYnV0 IGluc3RlYWQKPiBpbXBsZW1lbnRpbmcgWmFscnNjLCBpcyBub3QgYW4gZXJyYXR1bS4gSXQncyBh IGRlc2lnbiBkZWNpc2lvbi4KCldlIGNvdWxkIGRvIHRoZSBzYW1lIHRoaW5nIHdlIGRvIHdpdGgg bWlzYWxpZ25lZCBhY2Nlc3MgZGV0ZWN0aW9uIGFuZApydW4gc29tZSBpbnN0cnVjdGlvbnMgdG8g ZGV0ZXJtaW5lIGlmIHRoZXNlIGluc3RydWN0aW9ucyBhcmUgYmVpbmcKZW11bGF0ZWQuICBJZiB0 aGV5IGFyZSBiZWluZyBlbXVsYXRlZCwgcGF0Y2ggYWxsIG9mIHRoZSBwbGFjZXMgdG8gdXNlCnph bHJzYy4KCi0gQ2hhcmxpZQoKPiAKPiA+IFRoZXJlJ3Mgbm8gd2F5Cj4gPiB0byBwYXRjaCBvbmUg aW5zdHJ1Y3Rpb24gd2l0aCBtdWx0aXBsZSBvbmVzLAo+IAo+IEhhdmUgeW91IGxvb2tlZCBhdCBo b3cgdGhlIGFsdGVybmF0aXZlcyB3b3JrPyBUaGVyZSdzIG5vIHJlcXVpcmVtZW50Cj4gdGhhdCB0 aGUgc2VxdWVuY2VzIGhhdmUgdGhlIHNhbWUgbnVtYmVyIG9mIGluc3RydWN0aW9ucywgcGFkZGlu ZyBpcwo+IGFsbG93ZWQuCj4gCj4gPiBhbmQgd2UgYWxzbyBuZWVkIGFuIGV4dHJhCj4gPiAodGVt cG9yYXJ5KSByZWdpc3Rlci4KPiA+IAo+ID4gQSBDUFUgY2FuIGltcGxlbWVudCB0aGUgWmFscnNj IGV4dGVuc2lvbiBbMV0gaW5zdGVhZCBvZiAiY29tcGxldGUgQSIKPiA+ICh3aGljaCBQODcwMCBk b2VzKS4KPiA+ID5Gcm9tICJaYWFtbyBhbmQgWmFscnNjIEV4dGVuc2lvbnMiIHNwZWM6Cj4gCj4g V2h5IGRvZXMgdGhpcyBzdGF0ZW1lbnQgZGlmZmVyIGZyb20gdGhlIFA4NzAwIGRhdGFzaGVldCBs aW5rZWQgYWJvdmU/Cj4gCj4gQ2hlZXJzLAo+IENvbm9yLgo+IAo+ID4gCj4gPiAiVGhlIGZldGNo LWFuZC1vcCBzdHlsZSBhdG9taWMgcHJpbWl0aXZlcyBwcm92aWRlZCBieSB0aGUgQSBleHRlbnNp b24KPiA+IHN1cHBvcnQgYmV0dGVyIHNjYWxpbmcgZm9yIGhpZ2hseSBwYXJhbGxlbCBzeXN0ZW1z LiBTaW1wbGVyCj4gPiBpbXBsZW1lbnRhdGlvbnMgdGhhdCBkbyBub3QgaGF2ZSBzdWNoIHNjYWxp bmcgcmVxdWlyZW1lbnRzIG1heQo+ID4gaW1wbGVtZW50IHRoZSBaYWxyc2Mgc3Vic2V0IG9mIHRo ZSBBIGV4dGVuc2lvbiB0byBzdXBwb3J0IGF0b21pYwo+ID4gcHJpbWl0aXZlcy4iCj4gPiAKPiA+ IFRoZXJlZm9yZSwgd2UgYmVsaWV2ZSB0aGlzIHdvdWxkIGJlIGEgdXNlZnVsIG9wdGlvbiBmb3Ig d2lkZXIgdXNlLgo+ID4gCj4gPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL3Jpc2N2L3Jpc2N2LXph YW1vLXphbHJzYy9yZWxlYXNlcy9kb3dubG9hZC92MS4wLXJjMi9yaXNjdi16YWFtby16YWxyc2Mu cGRmCj4gPiAKPiA+ID4gPgo+ID4gPiA+IEFkZCBjb25maWcgUklTQ1ZfQU1PX1VTRV9aQUxSU0Mu Cj4gPiA+ID4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBDaGFvLXlpbmcgRnUgPGNmdUBtaXBzLmNv bT4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBbGVrc2FuZGFyIFJpa2FsbyA8YXJpa2Fsb0BnbWFp bC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gIGFyY2gvcmlzY3YvS2NvbmZpZyAgICAgICAgICAg ICAgIHwgMTEgKysrKysrKwo+ID4gPiA+ICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F0b21pYy5o ICB8IDUyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPiA+ID4gIGFyY2gvcmlz Y3YvaW5jbHVkZS9hc20vYml0b3BzLmggIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4gPiA+ID4gIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vY21weGNoZy5oIHwgMTYgKysrKysrKysr Kwo+ID4gPiA+ICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2Z1dGV4LmggICB8IDQ2ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysKPiA+ID4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAxNjkgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2FyY2gv cmlzY3YvS2NvbmZpZyBiL2FyY2gvcmlzY3YvS2NvbmZpZwo+ID4gPiA+IGluZGV4IGNjNjNhZWY0 MWU5NC4uOWZiMDIwYjQ5NDA4IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2FyY2gvcmlzY3YvS2NvbmZp Zwo+ID4gPiA+ICsrKyBiL2FyY2gvcmlzY3YvS2NvbmZpZwo+ID4gPiA+IEBAIC03MTUsNiArNzE1 LDE3IEBAIGNvbmZpZyBSSVNDVl9JU0FfWkFDQVMKPiA+ID4gPgo+ID4gPiA+ICAgICAgICAgSWYg eW91IGRvbid0IGtub3cgd2hhdCB0byBkbyBoZXJlLCBzYXkgWS4KPiA+ID4gPgo+ID4gPiA+ICtj b25maWcgUklTQ1ZfQU1PX1VTRV9aQUxSU0MKPiA+ID4gPiArICAgICBib29sICJVc2UgWmFscnNj IGV4dGVuc2lvbiB0byBpbXBsZW1lbnQgYXRvbWljIGZ1bmN0aW9ucyIKPiA+ID4gPiArICAgICBo ZWxwCj4gPiA+ID4gKyAgICAgICAgS2VybmVsIHVzZXMgb25seSBMUi9TQyBpbnN0cnVjdGlvbnMg dG8gaW1wbGVtZW50IGF0b21pYyBmdW5jdGlvbnMuCj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgICAg IEl0IG1ha2VzIHNlbnNlIHRvIGVuYWJsZSB0aGlzIG9wdGlvbiBpZiB5b3VyIHBsYXRmb3JtIG9u bHkKPiA+ID4gPiArICAgICAgICBpbXBsZW1lbnRzIHRoZSBaYWxyc2MgZXh0ZW5zaW9uIChhIHN1 YnNldCBvZiB0aGUgQSBleHRlbnNpb24pLAo+ID4gPiA+ICsgICAgICAgIGFuZCBub3QgdGhlIGNv bXBsZXRlIEEgZXh0ZW5zaW9uLgo+ID4gPiA+ICsKPiA+ID4gPiArICAgICAgICBJZiB5b3UgZG9u J3Qga25vdyB3aGF0IHRvIGRvIGhlcmUsIHNheSBOLgo+ID4gPiA+ICsKPiA+ID4gPiAgY29uZmln IFRPT0xDSEFJTl9IQVNfWkJCCj4gPiA+ID4gICAgICAgYm9vbAo+ID4gPiA+ICAgICAgIGRlZmF1 bHQgeQo+ID4gPiA+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F0b21pYy5o IGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hdG9taWMuaAo+ID4gPiA+IGluZGV4IDViOTZjMmY2 MWFkYi4uODhmNjJlMzNhNTQ1IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVk ZS9hc20vYXRvbWljLmgKPiA+ID4gPiArKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2F0b21p Yy5oCj4gPiA+ID4gQEAgLTUwLDYgKzUwLDcgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lk IGFyY2hfYXRvbWljNjRfc2V0KGF0b21pYzY0X3QgKnYsIHM2NCBpKQo+ID4gPiA+ICAgKiBoYXZl IHRoZSBBUSBvciBSTCBiaXRzIHNldC4gIFRoZXNlIGRvbid0IHJldHVybiBhbnl0aGluZywgc28g dGhlcmUncyBvbmx5Cj4gPiA+ID4gICAqIG9uZSB2ZXJzaW9uIHRvIHdvcnJ5IGFib3V0Lgo+ID4g PiA+ICAgKi8KPiA+ID4gPiArI2lmbmRlZiBSSVNDVl9BTU9fVVNFX1pBTFJTQwo+ID4gPiA+ICAj ZGVmaW5lIEFUT01JQ19PUChvcCwgYXNtX29wLCBJLCBhc21fdHlwZSwgY190eXBlLCBwcmVmaXgp ICAgICAgICAgICBcCj4gPiA+ID4gIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICB2b2lk IGFyY2hfYXRvbWljIyNwcmVmaXgjI18jI29wKGNfdHlwZSBpLCBhdG9taWMjI3ByZWZpeCMjX3Qg KnYpICAgICBcCj4gPiA+ID4gQEAgLTU5LDcgKzYwLDIzIEBAIHZvaWQgYXJjaF9hdG9taWMjI3By ZWZpeCMjXyMjb3AoY190eXBlIGksIGF0b21pYyMjcHJlZml4IyNfdCAqdikgICBcCj4gPiA+ID4g ICAgICAgICAgICAgICA6ICIrQSIgKHYtPmNvdW50ZXIpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKPiA+ID4gPiAgICAgICAgICAgICAgIDogInIiIChJKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICAgICAgICAgICAg ICAgOiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCj4gPiA+ID4gLX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiArfQo+ID4gPiA+ICsjZWxzZQo+ID4g PiA+ICsjZGVmaW5lIEFUT01JQ19PUChvcCwgYXNtX29wLCBJLCBhc21fdHlwZSwgY190eXBlLCBw cmVmaXgpICAgICAgICAgICBcCj4gPiA+ID4gK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ ICt2b2lkIGFyY2hfYXRvbWljIyNwcmVmaXgjI18jI29wKGNfdHlwZSBpLCBhdG9taWMjI3ByZWZp eCMjX3QgKnYpICAgICBcCj4gPiA+ID4gK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiArICAgICByZWdp c3RlciBjX3R5cGUgcmV0LCB0ZW1wOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAo+ID4gPiA+ICsgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICggICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAgICAgICAgICAiMTogICAg IGxyLiIgI2FzbV90eXBlICIgJTEsICUwXG4iICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4g PiArICAgICAgICAgICAgICIgICAgICAgIiAjYXNtX29wICIgJTIsICUxLCAlM1xuIiAgICAgICAg ICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAgICAgICAgIiAgICAgICBzYy4iICNhc21f dHlwZSAiICUyLCAlMiwgJTBcbiIgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAgICAg ICAgICAiICAgICAgIGJuZXogJTIsIDFiXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKPiA+ID4gPiArICAgICAgICAgICAgIDogIitBIiAodi0+Y291bnRlciksICI9JnIiIChy ZXQpLCAiPSZyIiAodGVtcCkgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAgICAgICAgOiAiciIg KEkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ ID4gKyAgICAgICAgICAgICA6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKPiA+ID4gPiArfQo+ID4gPiA+ICsjZW5kaWYKPiA+ID4gPgo+ID4g PiA+ICAjaWZkZWYgQ09ORklHX0dFTkVSSUNfQVRPTUlDNjQKPiA+ID4gPiAgI2RlZmluZSBBVE9N SUNfT1BTKG9wLCBhc21fb3AsIEkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAo+ID4gPiA+IEBAIC04NCw2ICsxMDEsNyBAQCBBVE9NSUNfT1BTKHhvciwgeG9yLCAgaSkKPiA+ ID4gPiAgICogVGhlcmUncyB0d28gZmxhdm9ycyBvZiB0aGVzZTogdGhlIGFyaXRobWF0aWMgb3Bz IGhhdmUgYm90aCBmZXRjaCBhbmQgcmV0dXJuCj4gPiA+ID4gICAqIHZlcnNpb25zLCB3aGlsZSB0 aGUgbG9naWNhbCBvcHMgb25seSBoYXZlIGZldGNoIHZlcnNpb25zLgo+ID4gPiA+ICAgKi8KPiA+ ID4gPiArI2lmbmRlZiBSSVNDVl9BTU9fVVNFX1pBTFJTQwo+ID4gPiA+ICAjZGVmaW5lIEFUT01J Q19GRVRDSF9PUChvcCwgYXNtX29wLCBJLCBhc21fdHlwZSwgY190eXBlLCBwcmVmaXgpICAgICBc Cj4gPiA+ID4gIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICBjX3R5cGUgYXJjaF9hdG9t aWMjI3ByZWZpeCMjX2ZldGNoXyMjb3AjI19yZWxheGVkKGNfdHlwZSBpLCAgICAgICAgICBcCj4g PiA+ID4gQEAgLTEwOCw2ICsxMjYsMzggQEAgY190eXBlIGFyY2hfYXRvbWljIyNwcmVmaXgjI19m ZXRjaF8jI29wKGNfdHlwZSBpLCBhdG9taWMjI3ByZWZpeCMjX3QgKnYpIFwKPiA+ID4gPiAgICAg ICAgICAgICAgIDogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAo+ID4gPiA+ICAgICAgIHJldHVybiByZXQ7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gIH0KPiA+ID4gPiArI2Vs c2UKPiA+ID4gPiArI2RlZmluZSBBVE9NSUNfRkVUQ0hfT1Aob3AsIGFzbV9vcCwgSSwgYXNtX3R5 cGUsIGNfdHlwZSwgcHJlZml4KSAgICAgXAo+ID4gPiA+ICtzdGF0aWMgX19hbHdheXNfaW5saW5l ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK PiA+ID4gPiArY190eXBlIGFyY2hfYXRvbWljIyNwcmVmaXgjI19mZXRjaF8jI29wIyNfcmVsYXhl ZChjX3R5cGUgaSwgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhdG9taWMjI3ByZWZpeCMjX3QgKnYpICAgICBcCj4gPiA+ID4gK3sg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKPiA+ID4gPiArICAgICByZWdpc3RlciBjX3R5cGUgcmV0LCB0ZW1wOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgIF9fYXNtX18g X192b2xhdGlsZV9fICggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Cj4gPiA+ID4gKyAgICAgICAgICAgICAiMTogICAgIGxyLiIgI2FzbV90eXBlICIgJTEsICUwXG4i ICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiArICAgICAgICAgICAgICIgICAgICAgIiAj YXNtX29wICIgJTIsICUxLCAlM1xuIiAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsg ICAgICAgICAgICAgIiAgICAgICBzYy4iICNhc21fdHlwZSAiICUyLCAlMiwgJTBcbiIgICAgICAg ICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAgICAgICAgICAiICAgICAgIGJuZXogJTIsIDFiXG4i ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiArICAgICAgICAgICAg IDogIitBIiAodi0+Y291bnRlciksICI9JnIiIChyZXQpLCAiPSZyIiAodGVtcCkgICAgICAgICAg XAo+ID4gPiA+ICsgICAgICAgICAgICAgOiAiciIgKEkpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAgICAgICAgICA6ICJtZW1vcnki KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiAr ICAgICByZXR1cm4gcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAo+ID4gPiA+ICt9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gK3N0YXRpYyBfX2Fs d2F5c19pbmxpbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAo+ID4gPiA+ICtjX3R5cGUgYXJjaF9hdG9taWMjI3ByZWZpeCMjX2ZldGNoXyMj b3AoY190eXBlIGksIGF0b21pYyMjcHJlZml4IyNfdCAqdikgICAgIFwKPiA+ID4gPiAreyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAo+ID4gPiA+ICsgICAgIHJlZ2lzdGVyIGNfdHlwZSByZXQsIHRlbXA7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAgX19hc21fXyBfX3Zv bGF0aWxlX18gKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ ID4gPiArICAgICAgICAgICAgICIxOiAgICAgbHIuIiAjYXNtX3R5cGUgIi5hcXJsICUxLCAlMFxu IiAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAgICAgICAgIiAgICAgICAiICNhc21f b3AgIiAlMiwgJTEsICUzXG4iICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAg ICAgICAgICAiICAgICAgIHNjLiIgI2FzbV90eXBlICIuYXFybCAlMiwgJTIsICUwXG4iICAgICAg ICAgICAgIFwKPiA+ID4gPiArICAgICAgICAgICAgICIgICAgICAgYm5leiAlMiwgMWJcbiIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAgICAgICAgOiAi K0EiICh2LT5jb3VudGVyKSwgIj0mciIgKHJldCksICI9JnIiICh0ZW1wKSAgICAgICAgICBcCj4g PiA+ID4gKyAgICAgICAgICAgICA6ICJyIiAoSSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiArICAgICAgICAgICAgIDogIm1lbW9yeSIpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAg IHJldHVybiByZXQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCj4gPiA+ID4gK30KPiA+ID4gPiArI2VuZGlmCj4gPiA+ID4KPiA+ID4gPiAgI2Rl ZmluZSBBVE9NSUNfT1BfUkVUVVJOKG9wLCBhc21fb3AsIGNfb3AsIEksIGFzbV90eXBlLCBjX3R5 cGUsIHByZWZpeCkgICAgICBcCj4gPiA+ID4gIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2JpdG9wcy5oIGIvYXJjaC9yaXNj di9pbmNsdWRlL2FzbS9iaXRvcHMuaAo+ID4gPiA+IGluZGV4IGZhZTE1MmVhMDUwOC4uMDA1MWRl MWNmNDcxIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYml0b3Bz LmgKPiA+ID4gPiArKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2JpdG9wcy5oCj4gPiA+ID4g QEAgLTE4NywxMiArMTg3LDE3IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgaW50IHZhcmlhYmxl X2Zscyh1bnNpZ25lZCBpbnQgeCkKPiA+ID4gPgo+ID4gPiA+ICAjaWYgKEJJVFNfUEVSX0xPTkcg PT0gNjQpCj4gPiA+ID4gICNkZWZpbmUgX19BTU8ob3ApICAgICJhbW8iICNvcCAiLmQiCj4gPiA+ ID4gKyNkZWZpbmUgX19MUiAibHIuZCIKPiA+ID4gPiArI2RlZmluZSBfX1NDICJzYy5kIgo+ID4g PiA+ICAjZWxpZiAoQklUU19QRVJfTE9ORyA9PSAzMikKPiA+ID4gPiAgI2RlZmluZSBfX0FNTyhv cCkgICAgImFtbyIgI29wICIudyIKPiA+ID4gPiArI2RlZmluZSBfX0xSICJsci53Igo+ID4gPiA+ ICsjZGVmaW5lIF9fU0MgInNjLnciCj4gPiA+ID4gICNlbHNlCj4gPiA+ID4gICNlcnJvciAiVW5l eHBlY3RlZCBCSVRTX1BFUl9MT05HIgo+ID4gPiA+ICAjZW5kaWYKPiA+ID4gPgo+ID4gPiA+ICsj aWZuZGVmIFJJU0NWX0FNT19VU0VfWkFMUlNDCj4gPiA+ID4gICNkZWZpbmUgX190ZXN0X2FuZF9v cF9iaXRfb3JkKG9wLCBtb2QsIG5yLCBhZGRyLCBvcmQpICAgICAgICAgICAgICAgIFwKPiA+ID4g PiAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKPiA+ID4gPiAgICAgICB1bnNpZ25lZCBsb25nIF9fcmVzLCBfX21hc2s7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiBAQCAtMjExLDYgKzIxNiwzMyBAQCBzdGF0 aWMgX19hbHdheXNfaW5saW5lIGludCB2YXJpYWJsZV9mbHModW5zaWduZWQgaW50IHgpCj4gPiA+ ID4gICAgICAgICAgICAgICA6ICIrQSIgKGFkZHJbQklUX1dPUkQobnIpXSkgICAgICAgICAgICAg ICAgICAgICBcCj4gPiA+ID4gICAgICAgICAgICAgICA6ICJyIiAobW9kKEJJVF9NQVNLKG5yKSkp ICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gICAgICAgICAgICAgICA6ICJtZW1vcnki KTsKPiA+ID4gPiArI2Vsc2UKPiA+ID4gPiArI2RlZmluZSBfX3Rlc3RfYW5kX29wX2JpdF9vcmQo b3AsIG1vZCwgbnIsIGFkZHIsIG9yZCkgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsoeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ ID4gPiA+ICsgICAgIHVuc2lnbmVkIGxvbmcgX19yZXMsIF9fbWFzaywgX190ZW1wOyAgICAgICAg ICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgIF9fbWFzayA9IEJJVF9NQVNLKG5yKTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgIF9fYXNtX18gX192b2xh dGlsZV9fICggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAg ICAgICAgICAgIjE6ICIgX19MUiAjb3JkICIgJTAsICUxXG4iICAgICAgICAgICAgICAgICAgICAg XAo+ID4gPiA+ICsgICAgICAgICAgICAgI29wICIgJTIsICUwLCAlM1xuIiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAgICAgICAgX19TQyAjb3JkICIgJTIsICUy LCAlMVxuIiAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAgICAgICAgImJu ZXogJTIsIDFiXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsg ICAgICAgICAgICAgOiAiPSZyIiAoX19yZXMpLCAiK0EiIChhZGRyW0JJVF9XT1JEKG5yKV0pLCAi PSZyIiAoX190ZW1wKSAgICAgIFwKPiA+ID4gPiArICAgICAgICAgICAgIDogInIiIChtb2QoX19t YXNrKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiArICAgICAgICAgICAg IDogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4g PiArICAgICAoKF9fcmVzICYgX19tYXNrKSAhPSAwKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKPiA+ID4gPiArfSkKPiA+ID4gPiArCj4gPiA+ID4gKyNkZWZpbmUgX19vcF9iaXRf b3JkKG9wLCBtb2QsIG5yLCBhZGRyLCBvcmQpICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAg ICAgdW5zaWduZWQgbG9uZyBfX3JlcywgX190ZW1wOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCj4gPiA+ID4gKyAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAgICAgICAgICAiMTogIiBfX0xSICNvcmQg IiAlMCwgJTFcbiIgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAgICAgICAgICAj b3AgIiAlMiwgJTAsICUzXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4g KyAgICAgICAgICAgICBfX1NDICNvcmQgIiAlMiwgJTIsICUxXG4iICAgICAgICAgICAgICAgICAg ICAgICBcCj4gPiA+ID4gKyAgICAgICAgICAgICAiYm5leiAlMiwgMWJcbiIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAgICAgICAgICA6ICI9JnIiIChfX3Jl cyksICIrQSIgKGFkZHJbQklUX1dPUkQobnIpXSksICI9JnIiIChfX3RlbXApICAgICAgXAo+ID4g PiA+ICsgICAgICAgICAgICAgOiAiciIgKG1vZChCSVRfTUFTSyhucikpKSAgICAgICAgICAgICAg ICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAgICAgICAgOiAibWVtb3J5IikKPiA+ID4gPiArI2Vu ZGlmCj4gPiA+ID4KPiA+ID4gPiAgI2RlZmluZSBfX3Rlc3RfYW5kX29wX2JpdChvcCwgbW9kLCBu ciwgYWRkcikgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICAgICAgIF9fdGVzdF9h bmRfb3BfYml0X29yZChvcCwgbW9kLCBuciwgYWRkciwgLmFxcmwpCj4gPiA+ID4gQEAgLTM1NCwx MiArMzg2LDI1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX19fY2xlYXJfYml0X3VubG9jaygK PiA+ID4gPiAgc3RhdGljIGlubGluZSBib29sIGFyY2hfeG9yX3VubG9ja19pc19uZWdhdGl2ZV9i eXRlKHVuc2lnbmVkIGxvbmcgbWFzaywKPiA+ID4gPiAgICAgICAgICAgICAgIHZvbGF0aWxlIHVu c2lnbmVkIGxvbmcgKmFkZHIpCj4gPiA+ID4gIHsKPiA+ID4gPiArI2lmbmRlZiBSSVNDVl9BTU9f VVNFX1pBTFJTQwo+ID4gPiA+ICAgICAgIHVuc2lnbmVkIGxvbmcgcmVzOwo+ID4gPiA+ICAgICAg IF9fYXNtX18gX192b2xhdGlsZV9fICgKPiA+ID4gPiAgICAgICAgICAgICAgIF9fQU1PKHhvcikg Ii5ybCAlMCwgJTIsICUxIgo+ID4gPiA+ICAgICAgICAgICAgICAgOiAiPXIiIChyZXMpLCAiK0Ei ICgqYWRkcikKPiA+ID4gPiAgICAgICAgICAgICAgIDogInIiIChfX05PUChtYXNrKSkKPiA+ID4g PiAgICAgICAgICAgICAgIDogIm1lbW9yeSIpOwo+ID4gPiA+ICsjZWxzZQo+ID4gPiA+ICsgICAg IHVuc2lnbmVkIGxvbmcgcmVzLCB0ZW1wOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgICBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoCj4gPiA+ID4gKyAgICAgICAgICAgICAiMTogIiBfX0xSICIucmwgJTAs ICUxXG4iCj4gPiA+ID4gKyAgICAgICAgICAgICAieG9yICUyLCAlMCwgJTNcbiIKPiA+ID4gPiAr ICAgICAgICAgICAgIF9fU0MgIi5ybCAlMiwgJTIsICUxXG4iCj4gPiA+ID4gKyAgICAgICAgICAg ICAiYm5leiAlMiwgMWJcbiIKPiA+ID4gPiArICAgICAgICAgICAgIDogIj0mciIgKHJlcyksICIr QSIgKCphZGRyKSwgIj0mciIgKHRlbXApCj4gPiA+ID4gKyAgICAgICAgICAgICA6ICJyIiAoX19O T1AobWFzaykpCj4gPiA+ID4gKyAgICAgICAgICAgICA6ICJtZW1vcnkiKTsKPiA+ID4gPiArI2Vu ZGlmCj4gPiA+ID4gICAgICAgcmV0dXJuIChyZXMgJiBCSVQoNykpICE9IDA7Cj4gPiA+ID4gIH0K PiA+ID4gPgo+ID4gPiA+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2NtcHhj aGcuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vY21weGNoZy5oCj4gPiA+ID4gaW5kZXggNGNh ZGM1NjIyMGZlLi5hYmE2MGY0MjcwNjAgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvYXJjaC9yaXNjdi9p bmNsdWRlL2FzbS9jbXB4Y2hnLmgKPiA+ID4gPiArKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNt L2NtcHhjaGcuaAo+ID4gPiA+IEBAIC01MSw2ICs1MSw3IEBACj4gPiA+ID4gICAgICAgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAo+ID4gPiA+ICB9KQo+ID4gPiA+Cj4gPiA+ID4gKyNpZm5kZWYgUklTQ1ZfQU1P X1VTRV9aQUxSU0MKPiA+ID4gPiAgI2RlZmluZSBfX2FyY2hfeGNoZyhzZngsIHByZXBlbmQsIGFw cGVuZCwgciwgcCwgbikgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICAoeyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Cj4gPiA+ID4gICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiBAQCAtNjEsNiArNjIsMjEgQEAKPiA+ID4g PiAgICAgICAgICAgICAgIDogInIiIChuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAo+ID4gPiA+ICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gIH0pCj4gPiA+ ID4gKyNlbHNlCj4gPiA+ID4gKyNkZWZpbmUgX19hcmNoX3hjaGcoc2Z4LCBwcmVwZW5kLCBhcHBl bmQsIHIsIHAsIG4pICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiArKHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ ID4gPiA+ICsgICAgIF9fdHlwZW9mX18oKihfX3B0cikpIHRlbXA7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18g KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiArICAg ICAgICAgICAgIHByZXBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAgICAgICAgIjE6ICAgICBsciIgc2Z4ICIgJTAsICUx XG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAgICAgICAgICAgICAi ICAgICAgIHNjIiBzZnggIiAlMiwgJTMsICUxXG4iICAgICAgICAgICAgICAgICAgICAgICAgIFwK PiA+ID4gPiArICAgICAgICAgICAgICIgICAgICAgYm5leiAlMiwgMWJcbiIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAgICAgICAgYXBwZW5kICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gKyAg ICAgICAgICAgICA6ICI9JnIiIChyKSwgIitBIiAoKihwKSksICI9JnIiICh0ZW1wKSAgICAgICAg ICAgICAgICAgIFwKPiA+ID4gPiArICAgICAgICAgICAgIDogInIiIChuKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAgICAgICAg OiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Cj4gPiA+ID4gK30pCj4gPiA+ID4gKyNlbmRpZgo+ID4gPiA+Cj4gPiA+ID4gICNkZWZpbmUgX2Fy Y2hfeGNoZyhwdHIsIG5ldywgc2Nfc2Z4LCBzd2FwX3NmeCwgcHJlcGVuZCwgICAgICAgICAgICAg ICAgICAgICAgXAo+ID4gPiA+ICAgICAgICAgICAgICAgICAgc2NfYXBwZW5kLCBzd2FwX2FwcGVu ZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2Fy Y2gvcmlzY3YvaW5jbHVkZS9hc20vZnV0ZXguaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZnV0 ZXguaAo+ID4gPiA+IGluZGV4IGZjODEzMGY5OTVjMS4uZGM2MzA2NWU3MDdlIDEwMDY0NAo+ID4g PiA+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZnV0ZXguaAo+ID4gPiA+ICsrKyBiL2Fy Y2gvcmlzY3YvaW5jbHVkZS9hc20vZnV0ZXguaAo+ID4gPiA+IEBAIC0xOSw2ICsxOSw3IEBACj4g PiA+ID4gICNkZWZpbmUgX19kaXNhYmxlX3VzZXJfYWNjZXNzKCkgICAgICAgICAgICAgIGRvIHsg fSB3aGlsZSAoMCkKPiA+ID4gPiAgI2VuZGlmCj4gPiA+ID4KPiA+ID4gPiArI2lmbmRlZiBSSVND Vl9BTU9fVVNFX1pBTFJTQwo+ID4gPiA+ICAjZGVmaW5lIF9fZnV0ZXhfYXRvbWljX29wKGluc24s IHJldCwgb2xkdmFsLCB1YWRkciwgb3BhcmcpICAgXAo+ID4gPiA+ICB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICAg ICAgIF9fZW5hYmxlX3VzZXJfYWNjZXNzKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAo+ID4gPiA+IEBAIC0zMiwxNiArMzMsMzkgQEAKPiA+ID4gPiAgICAgICA6ICJtZW1vcnki KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gPiAg ICAgICBfX2Rpc2FibGVfdXNlcl9hY2Nlc3MoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKPiA+ID4gPiAgfQo+ID4gPiA+ICsjZWxzZQo+ID4gPiA+ICsjZGVmaW5lIF9fZnV0ZXhf YXRvbWljX29wKGluc24sIHJldCwgb2xkdmFsLCB1YWRkciwgb3BhcmcpICAgXAo+ID4gPiA+ICt7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAo+ID4gPiA+ICsgICAgIF9fZW5hYmxlX3VzZXJfYWNjZXNzKCk7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICIxOiAgICAg bHIudy5hcXJsICVbb3ZdLCAlW3VdXG4iICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ ICsgICAgICIgICAgICAgIiBpbnNuICJcbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAo+ID4gPiA+ICsgICAgICIgICAgICAgc2Mudy5hcXJsICVbdF0sICVbdF0sICVbdV1c biIgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICIgICAgICAgYm5leiAlW3RdLCAx YlxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICIyOlxu IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4g PiA+ICsgICAgIF9BU01fRVhUQUJMRV9VQUNDRVNTX0VSUigxYiwgMmIsICVbcl0pICAgICAgICAg ICAgICAgICAgXAo+ID4gPiA+ICsgICAgIDogW3JdICIrciIgKHJldCksIFtvdl0gIj0mciIgKG9s ZHZhbCksICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgICAgW3RdICI9JnIiICh0ZW1w KSwgW3VdICIrbSIgKCp1YWRkcikgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgIDog W29wXSAiSnIiIChvcGFyZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ ID4gPiA+ICsgICAgIDogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAo+ID4gPiA+ICsgICAgIF9fZGlzYWJsZV91c2VyX2FjY2VzcygpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiA+ICt9Cj4gPiA+ID4gKyNlbmRpZgo+ ID4gPiA+Cj4gPiA+ID4gIHN0YXRpYyBpbmxpbmUgaW50Cj4gPiA+ID4gIGFyY2hfZnV0ZXhfYXRv bWljX29wX2ludXNlcihpbnQgb3AsIGludCBvcGFyZywgaW50ICpvdmFsLCB1MzIgX191c2VyICp1 YWRkcikKPiA+ID4gPiAgewo+ID4gPiA+ICsjaWZuZGVmIFJJU0NWX0FNT19VU0VfWkFMUlNDCj4g PiA+ID4gICAgICAgaW50IG9sZHZhbCA9IDAsIHJldCA9IDA7Cj4gPiA+ID4gKyNlbHNlCj4gPiA+ ID4gKyAgICAgaW50IG9sZHZhbCA9IDAsIHJldCA9IDAsIHRlbXAgPSAwOwo+ID4gPgo+ID4gPiBJ IHRoaW5rIGl0J3MgYmV0dGVyIHRvIGRlZmluZSB0aGlzIHRlbXAgdmFyaWFibGUgaW5zaWRlIG9m Cj4gPiA+IF9fZnV0ZXhfYXRvbWljX29wKCkgaW5zdGVhZCBvZiByZXF1aXJpbmcgaXQgdG8gYmUg ZGVmaW5lZCBpbiB0aGUgc2NvcGUKPiA+ID4gd2hlcmUgdGhlIG1hY3JvIGlzIGNhbGxlZC4KPiA+ ID4KPiA+ID4gLSBDaGFybGllCj4gPiA+Cj4gPiA+ID4gKyNlbmRpZgo+ID4gPiA+Cj4gPiA+ID4g ICAgICAgaWYgKCFhY2Nlc3Nfb2sodWFkZHIsIHNpemVvZih1MzIpKSkKPiA+ID4gPiAgICAgICAg ICAgICAgIHJldHVybiAtRUZBVUxUOwo+ID4gPiA+Cj4gPiA+ID4gICAgICAgc3dpdGNoIChvcCkg ewo+ID4gPiA+ICsjaWZuZGVmIFJJU0NWX0FNT19VU0VfWkFMUlNDCj4gPiA+ID4gICAgICAgY2Fz ZSBGVVRFWF9PUF9TRVQ6Cj4gPiA+ID4gICAgICAgICAgICAgICBfX2Z1dGV4X2F0b21pY19vcCgi YW1vc3dhcC53LmFxcmwgJVtvdl0sJXpbb3BdLCVbdV0iLAo+ID4gPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0LCBvbGR2YWwsIHVhZGRyLCBvcGFyZyk7Cj4gPiA+ID4gQEAg LTYyLDYgKzg2LDI4IEBAIGFyY2hfZnV0ZXhfYXRvbWljX29wX2ludXNlcihpbnQgb3AsIGludCBv cGFyZywgaW50ICpvdmFsLCB1MzIgX191c2VyICp1YWRkcikKPiA+ID4gPiAgICAgICAgICAgICAg IF9fZnV0ZXhfYXRvbWljX29wKCJhbW94b3Iudy5hcXJsICVbb3ZdLCV6W29wXSwlW3VdIiwKPiA+ ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCwgb2xkdmFsLCB1YWRkciwg b3BhcmcpOwo+ID4gPiA+ICAgICAgICAgICAgICAgYnJlYWs7Cj4gPiA+ID4gKyNlbHNlCj4gPiA+ ID4gKyAgICAgY2FzZSBGVVRFWF9PUF9TRVQ6Cj4gPiA+ID4gKyAgICAgICAgICAgICBfX2Z1dGV4 X2F0b21pY19vcCgibXYgJVt0XSwgJXpbb3BdIiwKPiA+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldCwgb2xkdmFsLCB1YWRkciwgb3BhcmcpOwo+ID4gPiA+ICsgICAgICAg ICAgICAgYnJlYWs7Cj4gPiA+ID4gKyAgICAgY2FzZSBGVVRFWF9PUF9BREQ6Cj4gPiA+ID4gKyAg ICAgICAgICAgICBfX2Z1dGV4X2F0b21pY19vcCgiYWRkICVbdF0sICVbb3ZdLCAleltvcF0iLAo+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0LCBvbGR2YWwsIHVhZGRy LCBvcGFyZyk7Cj4gPiA+ID4gKyAgICAgICAgICAgICBicmVhazsKPiA+ID4gPiArICAgICBjYXNl IEZVVEVYX09QX09SOgo+ID4gPiA+ICsgICAgICAgICAgICAgX19mdXRleF9hdG9taWNfb3AoIm9y ICVbdF0sICVbb3ZdLCAleltvcF0iLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0LCBvbGR2YWwsIHVhZGRyLCBvcGFyZyk7Cj4gPiA+ID4gKyAgICAgICAgICAgICBi cmVhazsKPiA+ID4gPiArICAgICBjYXNlIEZVVEVYX09QX0FORE46Cj4gPiA+ID4gKyAgICAgICAg ICAgICBfX2Z1dGV4X2F0b21pY19vcCgiYW5kICVbdF0sICVbb3ZdLCAleltvcF0iLAo+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0LCBvbGR2YWwsIHVhZGRyLCB+b3Bh cmcpOwo+ID4gPiA+ICsgICAgICAgICAgICAgYnJlYWs7Cj4gPiA+ID4gKyAgICAgY2FzZSBGVVRF WF9PUF9YT1I6Cj4gPiA+ID4gKyAgICAgICAgICAgICBfX2Z1dGV4X2F0b21pY19vcCgieG9yICVb dF0sICVbb3ZdLCAleltvcF0iLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0LCBvbGR2YWwsIHVhZGRyLCBvcGFyZyk7Cj4gPiA+ID4gKyAgICAgICAgICAgICBicmVh azsKPiA+ID4gPiArI2VuZGlmCj4gPiA+ID4gICAgICAgZGVmYXVsdDoKPiA+ID4gPiAgICAgICAg ICAgICAgIHJldCA9IC1FTk9TWVM7Cj4gPiA+ID4gICAgICAgfQo+ID4gPiA+IC0tCgoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1h aWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK