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 B0938C624A4 for ; Mon, 31 Aug 2026 13:39:21 +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:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=6DMEvR4YLk4HuNbFWOPVeNHx6JAc2xC4ikBP4CziNV0=; b=esFEl8H44q5P8Y 6z+8bEKCse4OlAlNWXlCXdLD/47G1Ax0wSF1OQocrWMxqJwyDjEgY9ZFWR9501FGRr0nWa9zQSdoe yv/P86q3ruLLPiHja1Pp/L24REywT492njXtoOG7ysTVGmmOJFc3WgZ5q2kuuh+NiSt0wcZlTmnFk BI63ksdy70pPVE3M4W+swIsMIuI2YGQ+oNR72v0v46wkzOBOHTSDuuKcV2213WwD6xvsg09nsOP0Z GldmpNMhcq/NHJ7x1LOpeI6129RAUKaYQBhuv45rMvBLS1Nm/NvFzvMKcyG1estimpWtNaSEXt8vL 8mXsMpUEcgoCMX2PNJsg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x12EI-00000009S4u-2lqO; Mon, 31 Aug 2026 13:39:18 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x12EG-00000009S45-383r; Mon, 31 Aug 2026 13:39:16 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 7E53D40D61; Mon, 31 Aug 2026 13:39:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E6121F00ACA; Mon, 31 Aug 2026 13:39:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788183556; bh=q85irKaJ5z/54tGl3R65hQIMxlS1xsWlaoAmw4QkZv8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=PU5rtCXXHePct+j6n4P55/bdoDs0wNhbQsubt4ne3FXAAMW50tmAjL2LE27bmipZr VwzvF4W5R7GZ5ryPpH8zcNMUUQsSonar3SYvG0j9VjA7tzQwu3E3cIJaF51ROZuCq0 EpS1nbC+xsElZfKEvWd57AW/Dgoijgq947GFJm5S6CIlpqQebXCJghZVtPz1Y0pbqw PVS4pA89AcTvSBIXcNPO+SSK9opHrUAscyOskihswQuQl8bqZL4+9uYiq21PGLKsm5 O95a384vTxzr2SOQOxjtQZtObvmLC8ocCcFHrywVXO7WC7zhKOfO+yopVdQvnFUzAb f6JpC6PBGN4tA== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: bui duc phuc , Sashiko AI Review , Mark Brown , Sasha Levin , lgirdwood@gmail.com, perex@perex.cz, tiwai@suse.com, heiko@sntech.de, linux-sound@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH AUTOSEL 6.18-5.10] ASoC: rockchip: rockchip_pdm: Handle runtime PM resume failures in set_fmt Date: Mon, 31 Aug 2026 09:23:15 -0400 Message-ID: <20260831133314.4125787-167-sashal@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260831133314.4125787-1-sashal@kernel.org> References: <20260831133314.4125787-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.18.48 X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org RnJvbTogYnVpIGR1YyBwaHVjIDxwaHVjZHVjLmJ1aUBnbWFpbC5jb20+CgpbIFVwc3RyZWFtIGNv bW1pdCBlZTdiNWY3YjM5MzMyZmViZjkxN2Y5ZWJmMjEyODQyY2M5Mzc5ODE1IF0KCnJvY2tjaGlw X3BkbV9zZXRfZm10KCkgY2FsbHMgcG1fcnVudGltZV9nZXRfc3luYygpIGJlZm9yZSBhY2Nlc3Np bmcKaGFyZHdhcmUgcmVnaXN0ZXJzLCBidXQgaWdub3JlcyBpdHMgcmV0dXJuIHZhbHVlLgpJZiB0 aGUgcnVudGltZSByZXN1bWUgZmFpbHMsIHRoZSBmdW5jdGlvbiBjb250aW51ZXMgdG8gcGVyZm9y bSByZWdpc3RlcgphY2Nlc3NlcyB3aGlsZSB0aGUgZGV2aWNlIHN0YXRlIGlzIHVuZGVmaW5lZC4K UmVwbGFjZSBwbV9ydW50aW1lX2dldF9zeW5jKCkgd2l0aCBwbV9ydW50aW1lX3Jlc3VtZV9hbmRf Z2V0KCkgYW5kCnJldHVybiBlYXJseSBvbiBmYWlsdXJlIHRvIGF2b2lkIHVucG93ZXJlZCByZWdp c3RlciBhY2Nlc3Nlcy4KClJlcG9ydGVkLWJ5OiBTYXNoaWtvIEFJIFJldmlldyA8c2FzaGlrby1i b3RAa2VybmVsLm9yZz4KQ2xvc2VzOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9hbGwvMjAyNjA1 MjIxMTAzMDIuMzQ5NDIxRjAwMEU5QHNtdHAua2VybmVsLm9yZy8KU2lnbmVkLW9mZi1ieTogYnVp IGR1YyBwaHVjIDxwaHVjZHVjLmJ1aUBnbWFpbC5jb20+Ckxpbms6IGh0dHBzOi8vcGF0Y2gubXNn aWQubGluay8yMDI2MDYwMjEwMTYwOC40NTEzNy02LXBodWNkdWMuYnVpQGdtYWlsLmNvbQpTaWdu ZWQtb2ZmLWJ5OiBNYXJrIEJyb3duIDxicm9vbmllQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6 IFNhc2hhIExldmluIDxzYXNoYWxAa2VybmVsLm9yZz4KLS0tCgpMTE0gR2VuZXJhdGVkIGV4cGxh bmF0aW9ucywgbWF5IGJlIGNvbXBsZXRlbHkgYm9ndXM6CgojIyBQaGFzZSAxOiBDb21taXQgTWVz c2FnZSBGb3JlbnNpY3MKCiMjIyBTdGVwIDEuMTogUGFyc2UgU3ViamVjdCBMaW5lCioqUmVjb3Jk OioqIGBbQVNvQzogcm9ja2NoaXA6IHJvY2tjaGlwX3BkbV1gIGBbSGFuZGxlXWAg4oCUIEhhbmRs ZSBydW50aW1lClBNIHJlc3VtZSBmYWlsdXJlcyBpbiB0aGUgYHNldF9mbXRgIERBSSBjYWxsYmFj ay4KCiMjIyBTdGVwIDEuMjogUGFyc2UgQWxsIENvbW1pdCBNZXNzYWdlIFRhZ3MKKipSZWNvcmQ6 KioKfCBUYWcgfCBWYWx1ZSB8CnwtLS0tLXwtLS0tLS0tfAp8IFJlcG9ydGVkLWJ5IHwgU2FzaGlr byBBSSBSZXZpZXcgXDxzYXNoaWtvLWJvdEBrZXJuZWwub3JnXD4gfAp8IENsb3NlcyB8Cmh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL2FsbC8yMDI2MDUyMjExMDMwMi4zNDk0MjFGMDAwRTlAc210cC5r ZXJuZWwub3JnLwp8CnwgTGluayB8Cmh0dHBzOi8vcGF0Y2gubXNnaWQubGluay8yMDI2MDYwMjEw MTYwOC40NTEzNy02LXBodWNkdWMuYnVpQGdtYWlsLmNvbSB8CnwgU2lnbmVkLW9mZi1ieSB8IGJ1 aSBkdWMgcGh1YyBcPHBodWNkdWMuYnVpQGdtYWlsLmNvbVw+IHwKfCBTaWduZWQtb2ZmLWJ5IHwg TWFyayBCcm93biBcPGJyb29uaWVAa2VybmVsLm9yZ1w+IChjb21taXR0ZXIvQVNvQwptYWludGFp bmVyKSB8CgpOb3RhYmxlIHBhdHRlcm5zOiBTdGF0aWMtYW5hbHlzaXMgcmVwb3J0IChTYXNoaWtv IEFJKSwgbm90IHN5emJvdCBvciBhCnVzZXIgY3Jhc2ggcmVwb3J0LiBObyBgRml4ZXM6YCB0YWcg KGV4cGVjdGVkKS4gTm8gYENjOgpzdGFibGVAdmdlci5rZXJuZWwub3JnYC4gTWFyayBCcm93biBt ZXJnZWQgaXQuCgojIyMgU3RlcCAxLjM6IEFuYWx5emUgQ29tbWl0IEJvZHkKKipSZWNvcmQ6KioK LSAqKkJ1ZzoqKiBgcm9ja2NoaXBfcGRtX3NldF9mbXQoKWAgY2FsbHMgYHBtX3J1bnRpbWVfZ2V0 X3N5bmMoKWAgYnV0CiAgaWdub3JlcyBpdHMgcmV0dXJuIHZhbHVlLiBJZiBydW50aW1lIHJlc3Vt ZSBmYWlscywgcmVnaXN0ZXIgd3JpdGVzCiAgcHJvY2VlZCB3aGlsZSB0aGUgZGV2aWNlIGlzIG5v dCBwb3dlcmVkL3Jlc3VtZWQuCi0gKipTeW1wdG9tOioqIFVuZGVmaW5lZCBkZXZpY2Ugc3RhdGU7 IHVucG93ZXJlZCByZWdpc3RlciBhY2Nlc3NlcwogIChoaXN0b3JpY2FsbHkgZG9jdW1lbnRlZCBh cyBzeXN0ZW0gaGFuZyBpbiB0aGlzIGRyaXZlcikuCi0gKipSb290IGNhdXNlOioqIEluY29tcGxl dGUgZXJyb3IgaGFuZGxpbmcgd2hlbiBydW50aW1lIFBNIHJlc3VtZSBmYWlscwogIChjbG9jayBl bmFibGUgZmFpbHVyZSBpbiBgcm9ja2NoaXBfcGRtX3J1bnRpbWVfcmVzdW1lKClgKS4KLSAqKkZp eDoqKiBSZXBsYWNlIGBwbV9ydW50aW1lX2dldF9zeW5jKClgIHdpdGgKICBgcG1fcnVudGltZV9y ZXN1bWVfYW5kX2dldCgpYCBhbmQgcmV0dXJuIHRoZSBlcnJvciBlYXJseS4KCiMjIyBTdGVwIDEu NDogRGV0ZWN0IEhpZGRlbiBCdWcgRml4ZXMKKipSZWNvcmQ6KiogTm90IGRpc2d1aXNlZCBhcyBj bGVhbnVwIOKAlCBleHBsaWNpdGx5IGEgYnVnIGZpeC4gSXQKY29tcGxldGVzIGVycm9yIGhhbmRs aW5nIHRoYXQgd2FzIGxlZnQgaW5jb21wbGV0ZSB3aGVuIHJ1bnRpbWUgUE0gd2FzCmFkZGVkIHRv IGBzZXRfZm10YCBpbiAyMDE5IChjb21taXQgYGM4NTA2NDQzNWZlN2EyYCkuCgotLS0KCiMjIFBo YXNlIDI6IERpZmYgQW5hbHlzaXMKCiMjIyBTdGVwIDIuMTogSW52ZW50b3J5IENoYW5nZXMKKipS ZWNvcmQ6KioKLSAqKkZpbGU6KiogYHNvdW5kL3NvYy9yb2NrY2hpcC9yb2NrY2hpcF9wZG0uY2Ag KCs1IC8g4oiSMSkKLSAqKkZ1bmN0aW9uOioqIGByb2NrY2hpcF9wZG1fc2V0X2ZtdCgpYAotICoq U2NvcGU6KiogU2luZ2xlLWZpbGUsIHN1cmdpY2FsIGZpeCAoNSBsaW5lcykKCiMjIyBTdGVwIDIu MjogQ29kZSBGbG93IENoYW5nZQoqKlJlY29yZDoqKgotICoqQmVmb3JlOioqIGBwbV9ydW50aW1l X2dldF9zeW5jKClgIOKGkiBhbHdheXMgYHJlZ21hcF91cGRhdGVfYml0cygpYCDihpIKICBgcG1f cnVudGltZV9wdXQoKWAg4oaSIHJldHVybiAwLCByZWdhcmRsZXNzIG9mIHJlc3VtZSBvdXRjb21l LgotICoqQWZ0ZXI6KiogYHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQoKWAg4oaSIG9uIGZhaWx1 cmUsIHJldHVybiBlcnJvcgogIGltbWVkaWF0ZWx5IChubyByZWdpc3RlciBhY2Nlc3MsIG5vIGBw bV9ydW50aW1lX3B1dCgpYCkg4oaSIG9uIHN1Y2Nlc3MsCiAgc2FtZSByZWdpc3RlciBhY2Nlc3Mg cGF0aCBhcyBiZWZvcmUuCi0gKipQYXRoIGFmZmVjdGVkOioqIERBSSBmb3JtYXQgY29uZmlndXJh dGlvbiBkdXJpbmcgQVNvQyBjYXJkIHNldHVwCiAgKGBzZXRfZm10YCBjYWxsYmFjaykuCgojIyMg U3RlcCAyLjM6IEJ1ZyBNZWNoYW5pc20KKipSZWNvcmQ6KioKLSAqKkNhdGVnb3J5OioqIEVycm9y LXBhdGggLyBsb2dpYyBjb3JyZWN0bmVzcyBmaXggKGlnbm9yZWQgcmV0dXJuIHZhbHVlCiAg4oaS IHVuc2FmZSBoYXJkd2FyZSBhY2Nlc3MpLgotICoqTWVjaGFuaXNtOioqIGByb2NrY2hpcF9wZG1f cnVudGltZV9yZXN1bWUoKWAgY2FuIGZhaWwgb24KICBgY2xrX3ByZXBhcmVfZW5hYmxlKClgIGZv ciBgcGRtLT5jbGtgIG9yIGBwZG0tPmhjbGtgLiBXaXRoIHRoZSBvbGQKICBjb2RlLCBgcG1fcnVu dGltZV9nZXRfc3luYygpYCByZXR1cm5zIG5lZ2F0aXZlIGJ1dCBleGVjdXRpb24gY29udGludWVz CiAgdG8gYHJlZ21hcF91cGRhdGVfYml0cygpYCBvbiBhbiB1bnBvd2VyZWQgY29udHJvbGxlci4g VGhlIDIwMTkgY29tbWl0CiAgdGhhdCBpbnRyb2R1Y2VkIGBwbV9ydW50aW1lX2dldF9zeW5jKClg IGhlcmUgZXhwbGljaXRseSBzdGF0ZWQgdGhhdAogIHJlZ21hcCBvcHMgd2l0aCBwb3dlciBkb21h aW4gb2ZmICJ3aWxsIGxlYWQgc3lzdGVtIGhhbmcuIgoKIyMjIFN0ZXAgMi40OiBGaXggUXVhbGl0 eQoqKlJlY29yZDoqKgotICoqUXVhbGl0eToqKiBPYnZpb3VzbHkgY29ycmVjdC4gTWF0Y2hlcyB0 aGUgcGF0dGVybiBhbHJlYWR5IHVzZWQgaW4KICBgcm9ja2NoaXBfcGRtX3Jlc3VtZSgpYCBpbiB0 aGUgc2FtZSBmaWxlIChzaW5jZSBjb21taXQKICBgNzZhNmY0NTM3NjUwZWAsIDIwMjIpLgotICoq UmVncmVzc2lvbiByaXNrOioqIFZlcnkgbG93LiBPbiBmYWlsdXJlLCBwcm9wYWdhdGVzIGVycm9y IHRvIGNhbGxlcgogIGluc3RlYWQgb2YgcHJvY2VlZGluZyB1bnNhZmVseS4KLSAqKlJlZCBmbGFn czoqKiBOb25lLiBObyBBUEkgY2hhbmdlcywgbm8gcmVmYWN0b3JpbmcuCgotLS0KCiMjIFBoYXNl IDM6IEdpdCBIaXN0b3J5IEludmVzdGlnYXRpb24KCiMjIyBTdGVwIDMuMTogQmxhbWUgQ2hhbmdl ZCBMaW5lcwoqKlJlY29yZDoqKgotIGByb2NrY2hpcF9wZG1fc2V0X2ZtdCgpYCBib2R5OiBvcmln aW5hbCBjb21taXQgYGZjMDVhNWIyMjI1MzA2YAogICgyMDE3KS4KLSBgcG1fcnVudGltZV9nZXRf c3luYygpYC9gcG1fcnVudGltZV9wdXQoKWA6IGNvbW1pdCBgYzg1MDY0NDM1ZmU3YTJgCiAgKDIw MTktMDQtMDMpIOKAlCAiZml4IHJlZ21hcF9vcHMgaGFuZyBpc3N1ZS4iCi0gQnVnZ3kgaWdub3Jl ZC1yZXR1cm4tdmFsdWUgcGF0dGVybiBwcmVzZW50IHNpbmNlIDIwMTkuCgojIyMgU3RlcCAzLjI6 IEZvbGxvdyBGaXhlczogVGFnCioqUmVjb3JkOioqIE5vIGBGaXhlczpgIHRhZy4gTi9BLgoKIyMj IFN0ZXAgMy4zOiBGaWxlIEhpc3RvcnkgZm9yIFJlbGF0ZWQgQ2hhbmdlcwoqKlJlY29yZDoqKgot IGA3NmE2ZjQ1Mzc2NTBlYCAoMjAyMik6IFNhbWUgYHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQo KWAgKyBlcnJvcgogIGNoZWNrIGFwcGxpZWQgdG8gYHJvY2tjaGlwX3BkbV9yZXN1bWUoKWAuCi0g YGVmMGEwOThlZmIzNjZgOiBNaXNzaW5nIGBjbGtfZGlzYWJsZV91bnByZXBhcmUoKWAgZml4IGlu IHJ1bnRpbWUKICByZXN1bWUuCi0gUGFydCBvZiBzZXJpZXMgIltQQVRDSCB2MiAwLzVdIEFTb0M6 IHJvY2tjaGlwOiBSZW9yZGVyIGNsb2NrIGVuYWJsZQogIHNlcXVlbmNlIiAocGF0Y2ggNS81KSwg YnV0IHRoaXMgaHVuayBpcyAqKnN0YW5kYWxvbmUqKiDigJQgaXQgZG9lcyBub3QKICBkZXBlbmQg b24gdGhlIGNsb2NrLXJlb3JkZXIgcGF0Y2hlcyAocGF0Y2hlcyAz4oCTNCkuCgojIyMgU3RlcCAz LjQ6IEF1dGhvcidzIE90aGVyIENvbW1pdHMKKipSZWNvcmQ6KiogQXV0aG9yIHBodWNkdWMuYnVp QGdtYWlsLmNvbTsgbm8gcHJpb3Igcm9ja2NoaXAgQVNvQyBjb21taXRzCmluIHRoaXMgdHJlZS4g TWFyayBCcm93biAoY29tbWl0dGVyKSBpcyBBU29DIG1haW50YWluZXIuCgojIyMgU3RlcCAzLjU6 IFByZXJlcXVpc2l0ZXMKKipSZWNvcmQ6KiogTm8gcHJlcmVxdWlzaXRlcy4gYHBtX3J1bnRpbWVf cmVzdW1lX2FuZF9nZXQoKWAgYWxyZWFkeQpleGlzdHMgYW5kIGlzIHVzZWQgaW4gdGhpcyBmaWxl IGF0IGxpbmUgNjg1LiBQYXRjaCBhcHBsaWVzIGNsZWFubHkgKGBnaXQKYXBwbHkgLS1jaGVja2Ag cGFzc2VkKS4KCi0tLQoKIyMgUGhhc2UgNDogTWFpbGluZyBMaXN0IGFuZCBFeHRlcm5hbCBSZXNl YXJjaAoKIyMjIFN0ZXAgNC4xOiBPcmlnaW5hbCBQYXRjaCBEaXNjdXNzaW9uCioqUmVjb3JkOioq Ci0gKipiNCBkaWcgVVJMOioqCiAgaHR0cHM6Ly9wYXRjaC5tc2dpZC5saW5rLzIwMjYwNjAyMTAx NjA4LjQ1MTM3LTYtcGh1Y2R1Yy5idWlAZ21haWwuY29tCi0gKipTZXJpZXM6KiogdjIsIHBhdGNo IDUvNSBvZiAiQVNvQzogcm9ja2NoaXA6IFJlb3JkZXIgY2xvY2sgZW5hYmxlCiAgc2VxdWVuY2Ui Ci0gKipTYXNoaWtvIHJldmlldzoqKiBGbGFnZ2VkIHRoZSBpZ25vcmVkIGBwbV9ydW50aW1lX2dl dF9zeW5jKClgIHJldHVybgogIHZhbHVlOyBhbHNvIG5vdGVkIGEgc2VwYXJhdGUgcHJlLWV4aXN0 aW5nIGNsb2NrIHVuZGVyZmxvdyBpc3N1ZSBpbgogIGByb2NrY2hpcF9wZG1fcmVtb3ZlKClgICh1 bnJlbGF0ZWQgdG8gdGhpcyBwYXRjaCkuCi0gKipTdGFibGUgbm9taW5hdGlvbnM6KiogTm9uZSBm b3VuZCBpbiB0aHJlYWQuCi0gKipOQUtzOioqIE5vbmUgZm91bmQuCgojIyMgU3RlcCA0LjI6IFJl dmlld2VycwoqKlJlY29yZDoqKiBDQydkIE1hcmsgQnJvd24sIEhlaWtvIFN0dWVibmVyLCBMaWFt IEdpcmR3b29kLCBUYWthc2hpCkl3YWksIGxpbnV4LXNvdW5kQCwgbGludXgtcm9ja2NoaXBALiBS b2IgSGVycmluZyBBY2tlZC1ieSBvbiBhbiBlYXJsaWVyCnBhdGNoIGluIHRoZSBzZXJpZXMgKERU IGJpbmRpbmdzKSwgbm90IHNwZWNpZmljYWxseSB0aGlzIG9uZS4gTWFyayBCcm93bgptZXJnZWQu CgojIyMgU3RlcCA0LjM6IEJ1ZyBSZXBvcnQKKipSZWNvcmQ6KiogU2FzaGlrbyBBSSBzdGF0aWMg YW5hbHlzaXMgKG5vdCBhIHJ1bnRpbWUgY3Jhc2ggcmVwb3J0KS4KT3JpZ2luYWwgQ2xvc2VzIGxp bmsgcG9pbnRzIHRvIHRoZSBTYXNoaWtvIHJldmlldyBib3QgZW1haWwuIFBhdGNoCnN1Ym1pc3Np b24gbm90ZXM6ICoqImNvbXBpbGUtdGVzdGVkIG9ubHkuIioqCgojIyMgU3RlcCA0LjQ6IFJlbGF0 ZWQgUGF0Y2hlcyAvIFNlcmllcwoqKlJlY29yZDoqKiBQYXRjaGVzIDHigJM0IGNvdmVyIGNsb2Nr IHJlb3JkZXIgYW5kIHJlZ2NhY2hlIHN5bmMgaW4gcnVudGltZQpyZXN1bWUgZm9yIFBETS9TUERJ Ri4gVGhpcyBwYXRjaCAoNS81KSBpcyBpbmRlcGVuZGVudCDigJQgb25seSB0b3VjaGVzCmBzZXRf Zm10YCBlcnJvciBoYW5kbGluZy4KCiMjIyBTdGVwIDQuNTogU3RhYmxlIE1haWxpbmcgTGlzdAoq KlJlY29yZDoqKiBOb3Qgc2VhcmNoZWQgc2VwYXJhdGVseTsgbm8gc3RhYmxlIG5vbWluYXRpb24g Zm91bmQgaW4gdGhlCnBhdGNoIHRocmVhZC4KCi0tLQoKIyMgUGhhc2UgNTogQ29kZSBTZW1hbnRp YyBBbmFseXNpcwoKIyMjIFN0ZXAgNS4xOiBLZXkgRnVuY3Rpb25zCioqUmVjb3JkOioqIGByb2Nr Y2hpcF9wZG1fc2V0X2ZtdCgpYCAobW9kaWZpZWQpOyBjYWxsZXJzIHZpYQpgcm9ja2NoaXBfcGRt X2RhaV9vcHMuc2V0X2ZtdGAuCgojIyMgU3RlcCA1LjI6IFRyYWNlIENhbGxlcnMKKipSZWNvcmQ6 KioKLSBgcm9ja2NoaXBfcGRtX2RhaV9vcHMuc2V0X2ZtdGAg4oaSIHJlZ2lzdGVyZWQgaW4gYHJv Y2tjaGlwX3BkbV9kYWlgCi0gQ2FsbGVkIHZpYSBgc25kX3NvY19kYWlfc2V0X2ZtdCgpYCBpbiBg c291bmQvc29jL3NvYy1kYWkuY2AKLSBJbnZva2VkIGZyb20gYHNvYy1jb3JlLmNgIGR1cmluZyBt YWNoaW5lL0RBSSBsaW5rIGZvcm1hdCBzZXR1cAotICoqQ29udGV4dDoqKiBOb3JtYWwgYXVkaW8g Y2FyZCBpbml0aWFsaXphdGlvbi9jb25maWd1cmF0aW9uIHBhdGggb24KICBSb2NrY2hpcCBib2Fy ZHMgdXNpbmcgUERNIG1pY3JvcGhvbmVzLgoKIyMjIFN0ZXAgNS4zOiBUcmFjZSBDYWxsZWVzCioq UmVjb3JkOioqIGBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KClgIOKGkiBtYXkgY2FsbApgcm9j a2NoaXBfcGRtX3J1bnRpbWVfcmVzdW1lKClgIOKGkiBgY2xrX3ByZXBhcmVfZW5hYmxlKClgLiBP biBzdWNjZXNzOgpgcmVnbWFwX3VwZGF0ZV9iaXRzKClgLCBgcG1fcnVudGltZV9wdXQoKWAuCgoj IyMgU3RlcCA1LjQ6IENhbGwgQ2hhaW4gLyBSZWFjaGFiaWxpdHkKKipSZWNvcmQ6KiogUmVhY2hh YmxlIGR1cmluZyBhdWRpbyBzdWJzeXN0ZW0gc2V0dXAgd2hlbiBhIG1hY2hpbmUgZHJpdmVyCmNv bmZpZ3VyZXMgdGhlIFBETSBEQUkgZm9ybWF0LiBSZXF1aXJlcyBgQ09ORklHX1NORF9TT0NfUk9D S0NISVBfUERNYAoob3IgYnVpbHQtaW4gcm9ja2NoaXAgYXVkaW8pLiBUcmlnZ2VyIHJlcXVpcmVz IHJ1bnRpbWUgcmVzdW1lIGZhaWx1cmUKKGUuZy4sIGNsb2NrIGZhaWx1cmUpLCB3aGljaCBpcyBh biBlcnJvciBwYXRoIGJ1dCByZWFsaXN0aWMuCgojIyMgU3RlcCA1LjU6IFNpbWlsYXIgUGF0dGVy bnMKKipSZWNvcmQ6KiogU2FtZSBmaWxlIGFscmVhZHkgdXNlcyBgcG1fcnVudGltZV9yZXN1bWVf YW5kX2dldCgpYCB3aXRoCmVycm9yIGNoZWNrIGluIGByb2NrY2hpcF9wZG1fcmVzdW1lKClgIChs aW5lcyA2ODXigJM2ODcpLiBLZXJuZWwgZG9jcyBpbgpgaW5jbHVkZS9saW51eC9wbV9ydW50aW1l LmhgIGV4cGxpY2l0bHkgcmVjb21tZW5kCmBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KClgIG92 ZXIgYHBtX3J1bnRpbWVfZ2V0X3N5bmMoKWAgd2hlbiB0aGUKcmV0dXJuIHZhbHVlIGlzIGNoZWNr ZWQuCgotLS0KCiMjIFBoYXNlIDY6IENyb3NzLVJlZmVyZW5jZSBBZ2FpbnN0IExvY2FsIFRyZWUK CiMjIyBTdGVwIDYuMTogRG9lcyBCdWdneSBDb2RlIEV4aXN0PwoqKlJlY29yZDoqKiAqKlllcy4q KiBMb2NhbCB0cmVlIGlzICoqdjYuMTguNDQqKiAoYGdpdCBkZXNjcmliZSBIRUFEYDoKYHY2LjE4 LjQ0LTEtZzI3MzZjMzJkYTk4YjlgKS4gQXQgbGluZXMgMzM34oCTMzM5LCBgcm9ja2NoaXBfcGRt X3NldF9mbXQoKWAKc3RpbGwgaGFzIHVuY2hlY2tlZCBgcG1fcnVudGltZV9nZXRfc3luYygpYC4g Rml4IGNvbW1pdCBgZWU3YjVmN2IzOTMzMmAKaXMgb24gbWFzdGVyIGJ1dCAqKm5vdCoqIGluIHRo aXMgdHJlZS4KCiMjIyBTdGVwIDYuMjogQmFja3BvcnQgQ29tcGxpY2F0aW9ucwoqKlJlY29yZDoq KiBDbGVhbiBhcHBseSBjb25maXJtZWQuIE5vIGNvbmZsaWN0aW5nIGNoYW5nZXMgaW4gdGhlIGh1 bmsKYXJlYS4gTG93IGRpZmZpY3VsdHkuCgojIyMgU3RlcCA2LjM6IFJlbGF0ZWQgRml4ZXMgQWxy ZWFkeSBQcmVzZW50PwoqKlJlY29yZDoqKiBgNzZhNmY0NTM3NjUwZWAgKHBtX3J1bnRpbWVfcmVz dW1lX2FuZF9nZXQgaW4KYHJvY2tjaGlwX3BkbV9yZXN1bWVgKSBpcyBwcmVzZW50LiBUaGUgYHNl dF9mbXRgIHBhdGggd2FzIG1pc3NlZCBhbmQKcmVtYWlucyB1bmZpeGVkLgoKLS0tCgojIyBQaGFz ZSA3OiBTdWJzeXN0ZW0gYW5kIE1haW50YWluZXIgQ29udGV4dAoKIyMjIFN0ZXAgNy4xOiBTdWJz eXN0ZW0gQ3JpdGljYWxpdHkKKipSZWNvcmQ6KiogKipBU29DIC8gUm9ja2NoaXAgUERNIGRyaXZl cioqIOKAlCBJTVBPUlRBTlQgZm9yIGVtYmVkZGVkClJvY2tjaGlwIHBsYXRmb3JtcyAocmszMjI5 LCBweDMwLCByazMzMDgsIHJrMzU2OCwgcnYxMTI2KSwgUEVSSVBIRVJBTApnbG9iYWxseS4KCiMj IyBTdGVwIDcuMjogU3Vic3lzdGVtIEFjdGl2aXR5CioqUmVjb3JkOioqIEFjdGl2ZSDigJQgcmVj ZW50IGNvbW1pdHMgaW4gYHNvdW5kL3NvYy9yb2NrY2hpcC9gIGluY2x1ZGUKU0FJLCBpMnMtdGRt LCBhbmQgcnVudGltZSBQTSBjbGVhbnVwcy4KCi0tLQoKIyMgUGhhc2UgODogSW1wYWN0IGFuZCBS aXNrIEFzc2Vzc21lbnQKCiMjIyBTdGVwIDguMTogV2hvIElzIEFmZmVjdGVkCioqUmVjb3JkOioq IFVzZXJzIG9mIFJvY2tjaGlwIFNvQ3Mgd2l0aCBQRE0gKGRpZ2l0YWwgbWljcm9waG9uZQpjYXB0 dXJlKS4gQ29uZmlnL2RyaXZlci1zcGVjaWZpYywgbm90IHVuaXZlcnNhbC4KCiMjIyBTdGVwIDgu MjogVHJpZ2dlciBDb25kaXRpb25zCioqUmVjb3JkOioqIGBzZXRfZm10YCBjYWxsZWQgd2hpbGUg ZGV2aWNlIGlzIHJ1bnRpbWUtc3VzcGVuZGVkIEFORApgcm9ja2NoaXBfcGRtX3J1bnRpbWVfcmVz dW1lKClgIGZhaWxzIChjbG9jayBlbmFibGUgZmFpbHVyZSkuClVucHJpdmlsZWdlZCB1c2VycyBj YW5ub3QgZGlyZWN0bHkgdHJpZ2dlciBgc2V0X2ZtdGAsIGJ1dCBhdWRpbwpzdWJzeXN0ZW0gc2V0 dXAgZHVyaW5nIGJvb3Qgb3IgYG1vZHByb2JlYC9jYXJkIHJlZ2lzdHJhdGlvbiBjYW4uIEZhaWx1 cmUKcGF0aCBpcyB1bmNvbW1vbiBidXQgdmFsaWQuCgojIyMgU3RlcCA4LjM6IEZhaWx1cmUgTW9k ZSBTZXZlcml0eQoqKlJlY29yZDoqKiAqKlN5c3RlbSBoYW5nKiog4oCUIGV4cGxpY2l0bHkgZG9j dW1lbnRlZCBpbiB0aGUgMjAxOSBjb21taXQKdGhhdCBpbnRyb2R1Y2VkIHJ1bnRpbWUgUE0gaGVy ZTogInJlZ21hcF9vcHMgd2lsbCBsZWFkIHN5c3RlbSBoYW5nIiB3aGVuCnBvd2VyIGRvbWFpbiBp cyBvZmYuICoqU2V2ZXJpdHk6IENSSVRJQ0FMKiogZm9yIGFmZmVjdGVkIGhhcmR3YXJlIHdoZW4K dHJpZ2dlcmVkOyAqKkxPVyoqIHByb2JhYmlsaXR5LgoKIyMjIFN0ZXAgOC40OiBSaXNrLUJlbmVm aXQgUmF0aW8KKipSZWNvcmQ6KioKLSAqKkJlbmVmaXQ6KiogUHJldmVudHMgcG90ZW50aWFsIHN5 c3RlbSBoYW5nIG9uIFJvY2tjaGlwIFBETSBoYXJkd2FyZQogIGR1cmluZyBhdWRpbyBzZXR1cCBl cnJvciBwYXRoczsgY29tcGxldGVzIGluY29tcGxldGUgZXJyb3IgaGFuZGxpbmcKICBmcm9tIDIw MTkuCi0gKipSaXNrOioqIFZlcnkgbG93IOKAlCA1LWxpbmUgY2hhbmdlLCBlc3RhYmxpc2hlZCBB UEksIHNhbWUgcGF0dGVybgogIGFscmVhZHkgaW4gdGhlIGZpbGUuCi0gKipSYXRpbzoqKiBGYXZv cmFibGUgZm9yIGJhY2twb3J0LgoKLS0tCgojIyBQaGFzZSA5OiBGaW5hbCBTeW50aGVzaXMKCiMj IyBTdGVwIDkuMTogRXZpZGVuY2UgU3VtbWFyeQoKKipGT1IgYmFja3BvcnQ6KioKLSBSZWFsIGJ1 ZzogaWdub3JlZCBydW50aW1lIFBNIHJlc3VtZSBmYWlsdXJlIHJldHVybiB2YWx1ZQotIERvY3Vt ZW50ZWQgaGFuZyByaXNrIGZyb20gcmVnaXN0ZXIgYWNjZXNzIHdpdGhvdXQgcG93ZXIgKDIwMTkg Y29tbWl0CiAgbWVzc2FnZSkKLSBTbWFsbCAoNSBsaW5lcyksIHN1cmdpY2FsLCBhcHBsaWVzIGNs ZWFubHkKLSBGb2xsb3dzIHBhdHRlcm4gYWxyZWFkeSBpbiBzYW1lIGZpbGUgc2luY2UgMjAyMgot IE1lcmdlZCBieSBBU29DIG1haW50YWluZXIgTWFyayBCcm93bgotIGBwbV9ydW50aW1lX3Jlc3Vt ZV9hbmRfZ2V0KClgIEFQSSBwcmVzZW50IGluIHRoaXMgdHJlZQoKKipBR0FJTlNUIGJhY2twb3J0 OioqCi0gQ29tcGlsZS10ZXN0ZWQgb25seSAobm8gaGFyZHdhcmUgVGVzdGVkLWJ5KQotIEZvdW5k IGJ5IEFJIHN0YXRpYyBhbmFseXNpcywgbm90IGEgdXNlciBjcmFzaCByZXBvcnQKLSBEcml2ZXIt c3BlY2lmaWMgKFJvY2tjaGlwIFBETSBvbmx5KQotIFRyaWdnZXIgcmVxdWlyZXMgcnVudGltZSBy ZXN1bWUgZmFpbHVyZSAodW5jb21tb24pCi0gUGFydCBvZiBhIDUtcGF0Y2ggc2VyaWVzICh0aG91 Z2ggdGhpcyBwYXRjaCBpcyBzdGFuZGFsb25lKQoKKipVbnJlc29sdmVkOioqIE5vIGhhcmR3YXJl IHRlc3RpbmcgY29uZmlybWF0aW9uOyBubyBleHBsaWNpdCBzdGFibGUKbm9taW5hdGlvbiBmcm9t IHJldmlld2Vycy4KCiMjIyBTdGVwIDkuMjogU3RhYmxlIFJ1bGVzIENoZWNrbGlzdAp8IENyaXRl cmlvbiB8IFJlc3VsdCB8CnwtLS0tLS0tLS0tLXwtLS0tLS0tLXwKfCAxLiBPYnZpb3VzbHkgY29y cmVjdCBhbmQgdGVzdGVkPyB8ICoqUEFTUyoqIOKAlCBsb2dpY2FsbHkgY29ycmVjdDsKY29tcGls ZS10ZXN0ZWQgb25seSB8CnwgMi4gRml4ZXMgYSByZWFsIGJ1Zz8gfCAqKlBBU1MqKiDigJQgaWdu b3JlZCBlcnJvciByZXR1cm4gb24gcnVudGltZSBQTQpyZXN1bWUgfAp8IDMuIEltcG9ydGFudCBp c3N1ZT8gfCAqKlBBU1MqKiDigJQgcG90ZW50aWFsIHN5c3RlbSBoYW5nIG9uIGFmZmVjdGVkCmhh cmR3YXJlIHwKfCA0LiBTbWFsbCBhbmQgY29udGFpbmVkPyB8ICoqUEFTUyoqIOKAlCA1IGxpbmVz LCAxIGZpbGUgfAp8IDUuIE5vIG5ldyBmZWF0dXJlcy9BUElzPyB8ICoqUEFTUyoqIOKAlCBlcnJv ciBoYW5kbGluZyBvbmx5IHwKfCA2LiBDYW4gYXBwbHkgdG8gbG9jYWwgdHJlZT8gfCAqKlBBU1Mq KiDigJQgY2xlYW4gYXBwbHksIGJ1Z2d5IGNvZGUKcHJlc2VudCB8CgojIyMgU3RlcCA5LjM6IEV4 Y2VwdGlvbiBDYXRlZ29yaWVzCioqUmVjb3JkOioqIE5vbmUgKG5vdCBkZXZpY2UgSUQsIHF1aXJr LCBEVCwgYnVpbGQsIG9yIGRvY3MpLiBTdGFuZGFyZApkcml2ZXIgYnVnIGZpeC4KCiMjIyBTdGVw IDkuNDogUHJvYmxlbSBhbmQgRGVjaXNpb24gUmF0aW9uYWxlCgpUaGlzIGNvbW1pdCBjbG9zZXMg YSBnYXAgaW4gcnVudGltZSBQTSBlcnJvciBoYW5kbGluZyBpbgpgcm9ja2NoaXBfcGRtX3NldF9m bXQoKWAuIFdoZW4gcnVudGltZSByZXN1bWUgZmFpbHMgKGUuZy4sIGNsb2NrIGVuYWJsZQplcnJv ciBpbiBgcm9ja2NoaXBfcGRtX3J1bnRpbWVfcmVzdW1lKClgKSwgdGhlIGRyaXZlciBwcmV2aW91 c2x5CnByb2NlZWRlZCB0byB3cml0ZSBoYXJkd2FyZSByZWdpc3RlcnMgYW55d2F5LiBUaGUgb3Jp Z2luYWwgMjAxOSBmaXggdGhhdAphZGRlZCBgcG1fcnVudGltZV9nZXRfc3luYygpYCBleHBsaWNp dGx5IGRvY3VtZW50ZWQgdGhhdCByZWdtYXAgYWNjZXNzCndpdGhvdXQgcG93ZXIgY2F1c2VzIGEg KipzeXN0ZW0gaGFuZyoqIOKAlCB0aGlzIHBhdGNoIGVuc3VyZXMgdGhhdCBmYWlsdXJlCnBhdGgg aXMgaGFuZGxlZCBjb3JyZWN0bHkgYnkgcmV0dXJuaW5nIGVhcmx5LCBtYXRjaGluZyB0aGUgcGF0 dGVybgphbHJlYWR5IGFwcGxpZWQgdG8gYHJvY2tjaGlwX3BkbV9yZXN1bWUoKWAgaW4gdGhlIHNh bWUgZmlsZS4KCkZvciB0aGUgKip2Ni4xOC55KiogdHJlZSBjaGVja2VkIG91dCBoZXJlLCB0aGUg YnVnZ3kgY29kZSBpcyBwcmVzZW50LAp0aGUgZml4IGFwcGxpZXMgY2xlYW5seSwgYW5kIHRoZSBj aGFuZ2UgaXMgbWluaW1hbCB3aXRoIG5lZ2xpZ2libGUKcmVncmVzc2lvbiByaXNrLiBXaGlsZSB0 aGUgdHJpZ2dlciBpcyBhbiBlcnJvciBwYXRoIGFuZCB0aGUgcGF0Y2ggaXMKY29tcGlsZS10ZXN0 ZWQgb25seSwgcHJldmVudGluZyBhIGRvY3VtZW50ZWQgc3lzdGVtIGhhbmcgb24gcmVhbApSb2Nr Y2hpcCBoYXJkd2FyZSBtZWV0cyBzdGFibGUga2VybmVsIGNyaXRlcmlhLgoKLS0tCgojIyBWZXJp ZmljYXRpb24KCi0gKipbUGhhc2UgMV0qKiBQYXJzZWQgY29tbWl0IGBlZTdiNWY3YjM5MzMyYDog dGFncywgYm9keSwgU2FzaGlrbwogIFJlcG9ydGVkLWJ5Ci0gKipbUGhhc2UgMl0qKiBEaWZmOiAr NS/iiJIxIGluIGByb2NrY2hpcF9wZG1fc2V0X2ZtdCgpYDsgZXJyb3ItcGF0aCBmaXgKICBjb25m aXJtZWQKLSAqKltQaGFzZSAzXSoqIGBnaXQgYmxhbWUgLUwgMzE5LDM0MmA6IHBtX3J1bnRpbWUg bGluZXMgZnJvbQogIGBjODUwNjQ0MzVmZTdhMmAgKDIwMTkpCi0gKipbUGhhc2UgM10qKiBgZ2l0 IHNob3cgYzg1MDY0NDM1ZmU3YTJgOiBvcmlnaW5hbCBjb21taXQgZG9jdW1lbnRzCiAgc3lzdGVt IGhhbmcgd2l0aG91dCBwb3dlcgotICoqW1BoYXNlIDNdKiogYGdpdCBzaG93IDc2YTZmNDUzNzY1 MGVgOiBzYW1lIHBhdHRlcm4gYWxyZWFkeSBpbgogIGByb2NrY2hpcF9wZG1fcmVzdW1lKClgCi0g KipbUGhhc2UgM10qKiBgZ2l0IGFwcGx5IC0tY2hlY2tgOiBwYXRjaCBhcHBsaWVzIGNsZWFubHkg dG8gbG9jYWwgdHJlZQotICoqW1BoYXNlIDRdKiogYGI0IGRpZyAtYyBlZTdiNWY3YjM5MzMyYDog bG9yZSBVUkwgZm91bmQ7IHBhdGNoIDUvNSBvZgogIHYyIHNlcmllcwotICoqW1BoYXNlIDRdKiog YGI0IGRpZyAtYWA6IHNlcmllcyBjb250ZXh0OyBzdGFuZGFsb25lIG5hdHVyZSBvZiB0aGlzCiAg aHVuayB2ZXJpZmllZAotICoqW1BoYXNlIDRdKiogYGI0IGRpZyAtd2A6IG1haW50YWluZXJzIEND J2Q7IE1hcmsgQnJvd24gbWVyZ2VkCi0gKipbUGhhc2UgNF0qKiBNYm94OiBTYXNoaWtvIHJldmll dyArICJjb21waWxlLXRlc3RlZCBvbmx5IiBub3RlOyBubwogIHN0YWJsZSBub21pbmF0aW9uCi0g KipbUGhhc2UgNV0qKiBgZ3JlcCBzZXRfZm10IHNvdW5kL3NvYy9zb2MtZGFpLmMgc29jLWNvcmUu Y2A6IGNhbGwKICBjaGFpbiB2aWEgQVNvQyBjb3JlIGNvbmZpcm1lZAotICoqW1BoYXNlIDVdKiog UmVhZCBgcm9ja2NoaXBfcGRtX3J1bnRpbWVfcmVzdW1lKClgOiBjbG9jayBlbmFibGUKICBmYWls dXJlIHJldHVybnMgbmVnYXRpdmUKLSAqKltQaGFzZSA1XSoqIFJlYWQgYGluY2x1ZGUvbGludXgv cG1fcnVudGltZS5oYDoga2VybmVsIHJlY29tbWVuZHMKICBgcG1fcnVudGltZV9yZXN1bWVfYW5k X2dldCgpYAotICoqW1BoYXNlIDZdKiogYGdpdCBkZXNjcmliZSBIRUFEYDogdjYuMTguNDQ7IGJ1 Z2d5IGNvZGUgYXQgbGluZSAzMzcKICBjb25maXJtZWQgcHJlc2VudAotICoqW1BoYXNlIDZdKiog Rml4IG5vdCBpbiB0cmVlOyBgcG1fcnVudGltZV9yZXN1bWVfYW5kX2dldGAgYWxyZWFkeQogIHVz ZWQgYXQgbGluZSA2ODUKLSAqKltQaGFzZSA4XSoqIEZhaWx1cmUgbW9kZTogc3lzdGVtIGhhbmcg cGVyIDIwMTkgY29tbWl0IG1lc3NhZ2U7CiAgc2V2ZXJpdHkgQ1JJVElDQUwgd2hlbiB0cmlnZ2Vy ZWQKCioqWUVTKioqKlZlcmRpY3Q6IFlFUyoqIOKAlCBiYWNrcG9ydCB0byB0aGlzIHRyZWUgKHY2 LjE4LjQ0KS4KCmByb2NrY2hpcF9wZG1fc2V0X2ZtdCgpYCBzdGlsbCBpZ25vcmVzIGEgZmFpbGVk IHJ1bnRpbWUgUE0gcmVzdW1lIGFuZApjYW4gdG91Y2ggcmVnaXN0ZXJzIHdoaWxlIHRoZSBQRE0g YmxvY2sgaXMgb2ZmOyB0aGUgMjAxOSBoYW5nIGZpeCBsZWZ0CnRoYXQgZ2FwLiBUaGUgcGF0Y2gg aXMgc21hbGwgKDUgbGluZXMpLCBhcHBsaWVzIGNsZWFubHksIGFuZCBtYXRjaGVzIHRoZQpwYXR0 ZXJuIGFscmVhZHkgdXNlZCBpbiBgcm9ja2NoaXBfcGRtX3Jlc3VtZSgpYCBpbiB0aGUgc2FtZSBm aWxlLiBNYWluCmNhdmVhdDogY29tcGlsZS10ZXN0ZWQgb25seSwgZm91bmQgYnkgc3RhdGljIGFu YWx5c2lzIHJhdGhlciB0aGFuIGEgdXNlcgpjcmFzaCByZXBvcnQuCgogc291bmQvc29jL3JvY2tj aGlwL3JvY2tjaGlwX3BkbS5jIHwgNiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvcm9ja2NoaXAvcm9j a2NoaXBfcGRtLmMgYi9zb3VuZC9zb2Mvcm9ja2NoaXAvcm9ja2NoaXBfcGRtLmMKaW5kZXggYzY5 Y2RkNmYyNDk5NC4uMDEyOTJiNjNiZjlkNiAxMDA2NDQKLS0tIGEvc291bmQvc29jL3JvY2tjaGlw L3JvY2tjaGlwX3BkbS5jCisrKyBiL3NvdW5kL3NvYy9yb2NrY2hpcC9yb2NrY2hpcF9wZG0uYwpA QCAtMzIxLDYgKzMyMSw3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfcGRtX3NldF9mbXQoc3RydWN0 IHNuZF9zb2NfZGFpICpjcHVfZGFpLAogewogCXN0cnVjdCBya19wZG1fZGV2ICpwZG0gPSB0b19p bmZvKGNwdV9kYWkpOwogCXVuc2lnbmVkIGludCBtYXNrID0gMCwgdmFsID0gMDsKKwlpbnQgcmV0 OwogCiAJbWFzayA9IFBETV9DS1BfTVNLOwogCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRf SU5WX01BU0spIHsKQEAgLTMzNCw3ICszMzUsMTAgQEAgc3RhdGljIGludCByb2NrY2hpcF9wZG1f c2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCXJldHVybiAtRUlOVkFMOwog CX0KIAotCXBtX3J1bnRpbWVfZ2V0X3N5bmMoY3B1X2RhaS0+ZGV2KTsKKwlyZXQgPSBwbV9ydW50 aW1lX3Jlc3VtZV9hbmRfZ2V0KGNwdV9kYWktPmRldik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJl dDsKKwogCXJlZ21hcF91cGRhdGVfYml0cyhwZG0tPnJlZ21hcCwgUERNX0NMS19DVFJMLCBtYXNr LCB2YWwpOwogCXBtX3J1bnRpbWVfcHV0KGNwdV9kYWktPmRldik7CiAKLS0gCjIuNTMuMAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LXJvY2tj aGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAK