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 X-Spam-Level: X-Spam-Status: No, score=-13.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2BFF1C433DB for ; Wed, 27 Jan 2021 11:05:53 +0000 (UTC) Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9131420729 for ; Wed, 27 Jan 2021 11:05:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9131420729 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=driverdev-devel-bounces@linuxdriverproject.org Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id EA19E86861; Wed, 27 Jan 2021 11:05:50 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4Fo-fvcQeWaX; Wed, 27 Jan 2021 11:05:45 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 04BF685168; Wed, 27 Jan 2021 11:05:45 +0000 (UTC) Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id DB1D11BF5E9 for ; Wed, 27 Jan 2021 11:05:43 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id D61E8847DE for ; Wed, 27 Jan 2021 11:05:43 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wayV-oVXE3C4 for ; Wed, 27 Jan 2021 11:05:42 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 3160A84524 for ; Wed, 27 Jan 2021 11:05:42 +0000 (UTC) Received: by mail-wm1-f44.google.com with SMTP id m187so1175413wme.2 for ; Wed, 27 Jan 2021 03:05:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=BlnuW33wcZ18mPXthit6DuOlKEWSQeDSxjB9TPtzQUI=; b=bMJ6WLM7In8L9bQQfPsAPRbn/Vq346+/QjJ1gNQ7TcbyVVUYDdi7UQrnBsDfqdWoMF VuU/1YIGfS63favkNKwL4SJQrPnTdnEvPrSaX4FNtSIT6dYZbGce0PlJKCQmngfCm1fM tcYjeRNIkqb53w1fq7GdbdfD8OP31zOGYXv3viYKtkGE9P2+sc5XnN0qxxybr4Ixw26y SwX7KFDwkNqc6F3K/O6N8JEj5w9DAtvuxjwm/rluuuKeegfqYGhMstl9fjfrptYG8mEl P7AlGqveqWquNBd1bq6V/RqhFBK9rSAfGjph4ccxzLRvekJoz37bMOQRr2mNQ7AP+qfx dmjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=BlnuW33wcZ18mPXthit6DuOlKEWSQeDSxjB9TPtzQUI=; b=fAr+GOEwZZooX0FmiMwgNNTt/RA3TORP8x1kA+NdAprQXgLwihB9BQyUvbK7uIUeJ7 saEGwdKLjo5R/f88+kT8jGHnWoXr/9FOW25PvebjpCiz5pLYyVpqB+wpZ1wFpb17tSGf jP4OP1IuCwhp8Lz7n9rvivptB7yRNdyKCdoRf2ZGyGV5ti1Q7YnTqRffsyX+VfeGfNEw A7QK8mNfPmlJfnTR96ops2ukB1jmELjv0Do0GjPiD+om+rdWTPsbVyIv0t3PXfGHV9Ui P32H2Q/49ofKarbJMqWrHBFfAIEDwsoKFoy08HwsD07t/k+Aq2u5hgcDJk1E+V3UqEId HogQ== X-Gm-Message-State: AOAM532saDLSV8Xxh9lGl2P+ykI+/bTA30hEsEoAARZkpqfZDLzWOBS7 72XPe6sukLGOFu9Tv5XPPZtrfQ== X-Google-Smtp-Source: ABdhPJyipEAIDJ0LMTB5VELdGgUO1pY3nD2R0UCqdZPdpjwvcwTjhoxgRbOPTVICfkr0QLxk7O4Oow== X-Received: by 2002:a05:600c:2110:: with SMTP id u16mr3775597wml.65.1611745540415; Wed, 27 Jan 2021 03:05:40 -0800 (PST) Received: from dell ([91.110.221.188]) by smtp.gmail.com with ESMTPSA id e12sm2414829wrs.67.2021.01.27.03.05.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jan 2021 03:05:39 -0800 (PST) Date: Wed, 27 Jan 2021 11:05:37 +0000 From: Lee Jones To: Mauro Carvalho Chehab Subject: Re: [PATCH v4 18/21] mfd: hi6421-spmi-pmic: move driver from staging Message-ID: <20210127110537.GI4903@dell> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-BeenThere: driverdev-devel@linuxdriverproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Driver Project Developer List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, devicetree@vger.kernel.org, Mayulong , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, Rob Herring , Mark Brown Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" T24gVHVlLCAxOSBKYW4gMjAyMSwgTWF1cm8gQ2FydmFsaG8gQ2hlaGFiIHdyb3RlOgoKPiBUaGlz IGRyaXZlciBpcyByZWFkeSBmb3IgbWFpbnN0cmVhbS4gU28sIG1vdmUgaXQgb3V0IG9mIHN0YWdp bmcuCj4gCj4gU2lnbmVkLW9mZi1ieTogTWF1cm8gQ2FydmFsaG8gQ2hlaGFiIDxtY2hlaGFiK2h1 YXdlaUBrZXJuZWwub3JnPgo+IC0tLQo+ICAuLi4vbWZkL2hpc2lsaWNvbixoaTY0MjEtc3BtaS1w bWljLnlhbWwgICAgICAgfCAxMzUgKysrKysrKysrCj4gIE1BSU5UQUlORVJTICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArCj4gIGRyaXZlcnMvbWZkL0tjb25maWcgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAxNSArCj4gIGRyaXZlcnMvbWZkL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvbWZkL2hpNjQyMS1zcG1p LXBtaWMuYyAgICAgICAgICAgICAgICB8IDI4MSArKysrKysrKysrKysrKysrKysKPiAgZHJpdmVy cy9zdGFnaW5nL2hpa2V5OXh4L0tjb25maWcgICAgICAgICAgICAgIHwgIDE2IC0KPiAgZHJpdmVy cy9zdGFnaW5nL2hpa2V5OXh4L01ha2VmaWxlICAgICAgICAgICAgIHwgICAxIC0KPiAgZHJpdmVy cy9zdGFnaW5nL2hpa2V5OXh4L2hpNjQyMS1zcG1pLXBtaWMuYyAgIHwgMjgxIC0tLS0tLS0tLS0t LS0tLS0tLQo+ICAuLi4vaGlrZXk5eHgvaGlzaWxpY29uLGhpNjQyMS1zcG1pLXBtaWMueWFtbCAg fCAxMzUgLS0tLS0tLS0tCj4gIDkgZmlsZXMgY2hhbmdlZCwgNDM5IGluc2VydGlvbnMoKyksIDQz MyBkZWxldGlvbnMoLSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNl dHJlZS9iaW5kaW5ncy9tZmQvaGlzaWxpY29uLGhpNjQyMS1zcG1pLXBtaWMueWFtbAo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZmQvaGk2NDIxLXNwbWktcG1pYy5jCj4gIGRlbGV0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL3N0YWdpbmcvaGlrZXk5eHgvaGk2NDIxLXNwbWktcG1pYy5jCj4g IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3N0YWdpbmcvaGlrZXk5eHgvaGlzaWxpY29uLGhp NjQyMS1zcG1pLXBtaWMueWFtbAo+IAo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2Rldmlj ZXRyZWUvYmluZGluZ3MvbWZkL2hpc2lsaWNvbixoaTY0MjEtc3BtaS1wbWljLnlhbWwgYi9Eb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWZkL2hpc2lsaWNvbixoaTY0MjEtc3BtaS1w bWljLnlhbWwKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uM2Iy M2FkNTZiMzFhCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJl ZS9iaW5kaW5ncy9tZmQvaGlzaWxpY29uLGhpNjQyMS1zcG1pLXBtaWMueWFtbAo+IEBAIC0wLDAg KzEsMTM1IEBACj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiArJVlBTUwg MS4yCj4gKy0tLQo+ICskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL21mZC9oaXNp bGljb24saGk2NDIxLXNwbWktcG1pYy55YW1sIwo+ICskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJl ZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKPiArCj4gK3RpdGxlOiBIaVNpbGljb24gNjQy MXY2MDAgU1BNSSBQTUlDCj4gKwo+ICttYWludGFpbmVyczoKPiArICAtIE1hdXJvIENhcnZhbGhv IENoZWhhYiA8bWNoZWhhYitodWF3ZWlAa2VybmVsLm9yZz4KPiArCj4gK2Rlc2NyaXB0aW9uOiB8 Cj4gKyAgSGlTaWxpY29uIDY0MjF2NjAwIHNob3VsZCBiZSBjb25uZWN0ZWQgaW5zaWRlIGEgTUlQ SSBTeXN0ZW0gUG93ZXIgTWFuYWdlbWVudAo+ICsgIChTUE1JKSBidXMuIEl0IHByb3ZpZGVzIGlu dGVycnVwdHMgYW5kIHBvd2VyIHN1cHBseS4KPiArCj4gKyAgVGhlIEdQSU8gYW5kIGludGVycnVw dCBzZXR0aW5ncyBhcmUgcmVwcmVzZW50ZWQgYXMgcGFydCBvZiB0aGUgdG9wLWxldmVsIFBNSUMK PiArICBub2RlLgo+ICsKPiArICBUaGUgU1BNSSBjb250cm9sbGVyIHBhcnQgaXMgcHJvdmlkZWQg YnkKPiArICBkcml2ZXJzL3N0YWdpbmcvaGlrZXk5eHgvaGlzaWxpY29uLGhpc2ktc3BtaS1jb250 cm9sbGVyLnlhbWwuCj4gKwo+ICtwcm9wZXJ0aWVzOgo+ICsgICRub2RlbmFtZToKPiArICAgIHBh dHRlcm46ICJwbWljQFswLTlhLWZdIgo+ICsKPiArICBjb21wYXRpYmxlOgo+ICsgICAgY29uc3Q6 IGhpc2lsaWNvbixoaTY0MjF2NjAwLXNwbWkKPiArCj4gKyAgcmVnOgo+ICsgICAgbWF4SXRlbXM6 IDEKPiArCj4gKyAgJyNpbnRlcnJ1cHQtY2VsbHMnOgo+ICsgICAgY29uc3Q6IDIKPiArCj4gKyAg aW50ZXJydXB0LWNvbnRyb2xsZXI6Cj4gKyAgICBkZXNjcmlwdGlvbjoKPiArICAgICAgSWRlbnRp ZnkgdGhhdCB0aGUgUE1JQyBpcyBjYXBhYmxlIG9mIGJlaGF2aW5nIGFzIGFuIGludGVycnVwdCBj b250cm9sbGVyLgo+ICsKPiArICBncGlvczoKPiArICAgIG1heEl0ZW1zOiAxCj4gKwo+ICsgIHJl Z3VsYXRvcnM6Cj4gKyAgICB0eXBlOiBvYmplY3QKPiArCj4gKyAgICBwcm9wZXJ0aWVzOgo+ICsg ICAgICAnI2FkZHJlc3MtY2VsbHMnOgo+ICsgICAgICAgIGNvbnN0OiAxCj4gKwo+ICsgICAgICAn I3NpemUtY2VsbHMnOgo+ICsgICAgICAgIGNvbnN0OiAwCj4gKwo+ICsgICAgcGF0dGVyblByb3Bl cnRpZXM6Cj4gKyAgICAgICdebGRvWzAtOV0rQFswLTlhLWZdJCc6Cj4gKyAgICAgICAgdHlwZTog b2JqZWN0Cj4gKwo+ICsgICAgICAgICRyZWY6ICIvc2NoZW1hcy9yZWd1bGF0b3IvcmVndWxhdG9y LnlhbWwjIgo+ICsKPiArcmVxdWlyZWQ6Cj4gKyAgLSBjb21wYXRpYmxlCj4gKyAgLSByZWcKPiAr ICAtIHJlZ3VsYXRvcnMKPiArCj4gK2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQo+ICsKPiAr ZXhhbXBsZXM6Cj4gKyAgLSB8Cj4gKyAgICAvKiBwbWljIHByb3BlcnRpZXMgKi8KPiArCj4gKyAg ICBwbWljOiBwbWljQDAgewo+ICsgICAgICBjb21wYXRpYmxlID0gImhpc2lsaWNvbixoaTY0MjEt c3BtaSI7Cj4gKyAgICAgIHJlZyA9IDwwIDA+Owo+ICsKPiArICAgICAgI2ludGVycnVwdC1jZWxs cyA9IDwyPjsKPiArICAgICAgaW50ZXJydXB0LWNvbnRyb2xsZXI7Cj4gKyAgICAgIGdwaW9zID0g PCZncGlvMjggMCAwPjsKPiArCj4gKyAgICAgIHJlZ3VsYXRvcnMgewo+ICsgICAgICAgICNhZGRy ZXNzLWNlbGxzID0gPDE+Owo+ICsgICAgICAgICNzaXplLWNlbGxzID0gPDA+Owo+ICsKPiArICAg ICAgICBsZG8zOiBMRE8zIHsKPiArICAgICAgICAgIHJlZ3VsYXRvci1uYW1lID0gImxkbzMiOwo+ ICsgICAgICAgICAgcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTUwMDAwMD47Cj4gKyAgICAg ICAgICByZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwyMDAwMDAwPjsKPiArICAgICAgICAgIHJl Z3VsYXRvci1ib290LW9uOwo+ICsgICAgICAgIH07Cj4gKwo+ICsgICAgICAgIGxkbzQ6IExETzQg ewo+ICsgICAgICAgICAgcmVndWxhdG9yLW5hbWUgPSAibGRvNCI7Cj4gKyAgICAgICAgICByZWd1 bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxNzI1MDAwPjsKPiArICAgICAgICAgIHJlZ3VsYXRvci1t YXgtbWljcm92b2x0ID0gPDE5MDAwMDA+Owo+ICsgICAgICAgICAgcmVndWxhdG9yLWJvb3Qtb247 Cj4gKyAgICAgICAgfTsKPiArCj4gKyAgICAgICAgbGRvOTogTERPOSB7Cj4gKyAgICAgICAgICBy ZWd1bGF0b3ItbmFtZSA9ICJsZG85IjsKPiArICAgICAgICAgIHJlZ3VsYXRvci1taW4tbWljcm92 b2x0ID0gPDE3NTAwMDA+Owo+ICsgICAgICAgICAgcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8 MzMwMDAwMD47Cj4gKyAgICAgICAgICByZWd1bGF0b3ItYm9vdC1vbjsKPiArICAgICAgICB9Owo+ ICsKPiArICAgICAgICBsZG8xNTogTERPMTUgewo+ICsgICAgICAgICAgcmVndWxhdG9yLW5hbWUg PSAibGRvMTUiOwo+ICsgICAgICAgICAgcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTgwMDAw MD47Cj4gKyAgICAgICAgICByZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMDAwMDAwPjsKPiAr ICAgICAgICAgIHJlZ3VsYXRvci1hbHdheXMtb247Cj4gKyAgICAgICAgfTsKPiArCj4gKyAgICAg ICAgbGRvMTY6IExETzE2IHsKPiArICAgICAgICAgIHJlZ3VsYXRvci1uYW1lID0gImxkbzE2IjsK PiArICAgICAgICAgIHJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDE4MDAwMDA+Owo+ICsgICAg ICAgICAgcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MzAwMDAwMD47Cj4gKyAgICAgICAgICBy ZWd1bGF0b3ItYm9vdC1vbjsKPiArICAgICAgICB9Owo+ICsKPiArICAgICAgICBsZG8xNzogTERP MTcgewo+ICsgICAgICAgICAgcmVndWxhdG9yLW5hbWUgPSAibGRvMTciOwo+ICsgICAgICAgICAg cmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MjUwMDAwMD47Cj4gKyAgICAgICAgICByZWd1bGF0 b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKPiArICAgICAgICB9Owo+ICsKPiArICAgICAg ICBsZG8zMzogTERPMzMgewo+ICsgICAgICAgICAgcmVndWxhdG9yLW5hbWUgPSAibGRvMzMiOwo+ ICsgICAgICAgICAgcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MjUwMDAwMD47Cj4gKyAgICAg ICAgICByZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKPiArICAgICAgICAgIHJl Z3VsYXRvci1ib290LW9uOwo+ICsgICAgICAgIH07Cj4gKwo+ICsgICAgICAgIGxkbzM0OiBMRE8z NCB7Cj4gKyAgICAgICAgICByZWd1bGF0b3ItbmFtZSA9ICJsZG8zNCI7Cj4gKyAgICAgICAgICBy ZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwyNjAwMDAwPjsKPiArICAgICAgICAgIHJlZ3VsYXRv ci1tYXgtbWljcm92b2x0ID0gPDMzMDAwMDA+Owo+ICsgICAgICAgIH07Cj4gKyAgICAgIH07Cj4g KyAgICB9Owo+IGRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCj4gaW5kZXgg ODVlNWI2YWI1N2NhLi5jNWIzNmE1OGVkZTUgMTAwNjQ0Cj4gLS0tIGEvTUFJTlRBSU5FUlMKPiAr KysgYi9NQUlOVEFJTkVSUwo+IEBAIC04MDA2LDYgKzgwMDYsMTMgQEAgUzoJTWFpbnRhaW5lZAo+ ICBGOglEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc3BtaS9oaXNpbGljb24saGlz aS1zcG1pLWNvbnRyb2xsZXIueWFtbAo+ICBGOglkcml2ZXJzL3NwbWkvaGlzaS1zcG1pLWNvbnRy b2xsZXIuYwo+ICAKPiArSElTSUxJQ09OIFNQTUkgUE1JQyBEUklWRVIgRk9SIEhJS0VZIDY0MjF2 NjAwCj4gK006CU1hdXJvIENhcnZhbGhvIENoZWhhYiA8bWNoZWhhYitodWF3ZWlAa2VybmVsLm9y Zz4KPiArTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwo+ICtTOglNYWludGFpbmVkCj4g K0Y6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZmQvaGlzaWxpY29uLGhpNjQy MS1zcG1pLXBtaWMueWFtbAo+ICtGOglkcml2ZXJzL21mZC9oaTY0MjEtc3BtaS1wbWljLmMKPiAr Cj4gIEhJU0lMSUNPTiBTVEFHSU5HIERSSVZFUlMgRk9SIEhJS0VZIDk2MC85NzAKPiAgTToJTWF1 cm8gQ2FydmFsaG8gQ2hlaGFiIDxtY2hlaGFiK2h1YXdlaUBrZXJuZWwub3JnPgo+ICBMOglkZXZl bEBkcml2ZXJkZXYub3N1b3NsLm9yZwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9LY29uZmln IGIvZHJpdmVycy9tZmQvS2NvbmZpZwo+IGluZGV4IDhiOTlhMTM2NjliZi4uYzA0YzJmNmJlMWQ5 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWZkL0tjb25maWcKPiArKysgYi9kcml2ZXJzL21mZC9L Y29uZmlnCj4gQEAgLTUwOSw2ICs1MDksMjEgQEAgY29uZmlnIE1GRF9ISTY0MjFfUE1JQwo+ICAJ ICBtZW51cyBpbiBvcmRlciB0byBlbmFibGUgdGhlbS4KPiAgCSAgV2UgY29tbXVuaWNhdGUgd2l0 aCB0aGUgSGk2NDIxIHZpYSBtZW1vcnktbWFwcGVkIEkvTy4KPiAgCj4gK2NvbmZpZyBNRkRfSEk2 NDIxX1NQTUkKPiArCXRyaXN0YXRlICJIaVNpbGljb24gSGk2NDIxdjYwMCBTUE1JIFBNVS9Db2Rl YyBJQyIKPiArCWRlcGVuZHMgb24gT0YKPiArCWRlcGVuZHMgb24gU1BNSQo+ICsJc2VsZWN0IE1G RF9DT1JFCj4gKwloZWxwCj4gKwkgIEFkZCBzdXBwb3J0IGZvciBIaVNpbGljb24gSGk2NDIxdjYw MCBTUE1JIFBNSUMuIEhpNjQyMSBpbmNsdWRlcwo+ICsJICBtdWx0aS1mdW5jdGlvbnMsIHN1Y2gg YXMgcmVndWxhdG9ycywgUlRDLCBjb2RlYywgQ291bG9tYiBjb3VudGVyLAo+ICsJICBldGMuCj4g Kwo+ICsJICBUaGlzIGRyaXZlciBpbmNsdWRlcyBjb3JlIEFQSXMgX29ubHlfLiBZb3UgaGF2ZSB0 byBzZWxlY3QKPiArCSAgaW5kaXZpZHVhbCBjb21wb25lbnRzIGxpa2Ugdm9sdGFnZSByZWd1bGF0 b3JzIHVuZGVyIGNvcnJlc3BvbmRpbmcKPiArCSAgbWVudXMgaW4gb3JkZXIgdG8gZW5hYmxlIHRo ZW0uCj4gKwkgIFdlIGNvbW11bmljYXRlIHdpdGggdGhlIEhpNjQyMXY2MDAgdmlhIGEgU1BNSSBi dXMuCj4gKwo+ICBjb25maWcgTUZEX0hJNjU1WF9QTUlDCj4gIAl0cmlzdGF0ZSAiSGlTaWxpY29u IEhpNjU1WCBzZXJpZXMgUE1VL0NvZGVjIElDIgo+ICAJZGVwZW5kcyBvbiBBUkNIX0hJU0kgfHwg Q09NUElMRV9URVNUCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL01ha2VmaWxlIGIvZHJpdmVy cy9tZmQvTWFrZWZpbGUKPiBpbmRleCAxNzgwMDE5ZDI0NzQuLjc3NDQ5OTNjNDJiYyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL21mZC9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvbWZkL01ha2VmaWxl Cj4gQEAgLTIzMyw2ICsyMzMsNyBAQCBvYmotJChDT05GSUdfTUZEX0lQQVFfTUlDUk8pCSs9IGlw YXEtbWljcm8ubwo+ICBvYmotJChDT05GSUdfTUZEX0lRUzYyWCkJKz0gaXFzNjJ4Lm8KPiAgb2Jq LSQoQ09ORklHX01GRF9NRU5GMjFCTUMpCSs9IG1lbmYyMWJtYy5vCj4gIG9iai0kKENPTkZJR19N RkRfSEk2NDIxX1BNSUMpCSs9IGhpNjQyMS1wbWljLWNvcmUubwo+ICtvYmotJChDT05GSUdfTUZE X0hJNjQyMV9TUE1JKQkrPSBoaTY0MjEtc3BtaS1wbWljLm8KPiAgb2JqLSQoQ09ORklHX01GRF9I STY1NVhfUE1JQykgICArPSBoaTY1NXgtcG1pYy5vCj4gIG9iai0kKENPTkZJR19NRkRfRExOMikJ CSs9IGRsbjIubwo+ICBvYmotJChDT05GSUdfTUZEX1JUNTAzMykJKz0gcnQ1MDMzLm8KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZmQvaGk2NDIxLXNwbWktcG1pYy5jIGIvZHJpdmVycy9tZmQvaGk2 NDIxLXNwbWktcG1pYy5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAw MDAuLjk5YzRmMzM1OWY3MQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL21mZC9oaTY0 MjEtc3BtaS1wbWljLmMKPiBAQCAtMCwwICsxLDI4MSBAQAo+ICsvLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogR1BMLTIuMAo+ICsvLwo+ICsvLyBEZXZpY2UgZHJpdmVyIGZvciByZWd1bGF0b3Jz IGluIEhJU0kgUE1JQyBJQwo+ICsvLwo+ICsvLyBDb3B5cmlnaHQgKGMpIDIwMTMgTGluYXJvIEx0 ZC4KPiArLy8gQ29weXJpZ2h0IChjKSAyMDExIEhpc2lsaWNvbi4KPiArLy8KCk5vIG5lZWQgZm9y IHRoaXMgYmxhbmsgbGluZS4KCj4gKy8vIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEh1YXdlaSBU ZWNobm9sb2dpZXMgQ28uLCBMdGQKCk9ubHkgdGhlIFNQRFggbGluZSBhcyBDKysgY29tbWVudHMg cGxlYXNlLgoKJ1xuJyBoZXJlLgoKPiArI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgo+ICsj aW5jbHVkZSA8bGludXgvaXJxLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tZmQvY29yZS5oPgo+ICsj aW5jbHVkZSA8bGludXgvbWZkL2hpNjQyMS1zcG1pLXBtaWMuaD4KPiArI2luY2x1ZGUgPGxpbnV4 L21vZHVsZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvb2ZfZ3Bpby5oPgo+ICsjaW5jbHVkZSA8bGlu dXgvcGxhdGZvcm1fZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gKyNpbmNs dWRlIDxsaW51eC9zcG1pLmg+Cj4gKwo+ICsvKiA4LWJpdCByZWdpc3RlciBvZmZzZXQgaW4gUE1J QyAqLwo+ICsjZGVmaW5lIEhJU0lfTUFTS19TVEFURQkJCTB4ZmYKPiArCj4gKyNkZWZpbmUgSElT SV9JUlFfQVJSQVkJCQkyCj4gKyNkZWZpbmUgSElTSV9JUlFfTlVNCQkJKEhJU0lfSVJRX0FSUkFZ ICogOCkKPiArCj4gKyNkZWZpbmUgU09DX1BNSUNfSVJRX01BU0tfMF9BRERSCTB4MDIwMgo+ICsj ZGVmaW5lIFNPQ19QTUlDX0lSUTBfQUREUgkJMHgwMjEyCj4gKwo+ICsjZGVmaW5lIEhJU0lfSVJR X0tFWV9OVU0JCTAKPiArI2RlZmluZSBISVNJX0lSUV9LRVlfVkFMVUUJCTB4YzAKPiArI2RlZmlu ZSBISVNJX0lSUV9LRVlfRE9XTgkJNwo+ICsjZGVmaW5lIEhJU0lfSVJRX0tFWV9VUAkJCTYKPiAr Cj4gKyNkZWZpbmUgSElTSV9NQVNLX0ZJRUxECQkJMHhGRgo+ICsjZGVmaW5lIEhJU0lfQklUUwkJ CTgKPiArCj4gKy8qZGVmaW5lIHRoZSBmaXJzdCBncm91cCBpbnRlcnJ1cHQgcmVnaXN0ZXIgbnVt YmVyKi8KCkkgdGhpbmsgdGhlIG5vbWVuY2xhdHVyZSBpcyBmb3J0aGNvbWluZyBlbm91Z2ggZm9y IHRoaXMgdG8gYmUgb21pdHRlZC4KCkl0J3MgYWxzbyBpbiB0aGUgd3JvbmcgZm9ybWF0LgoKPiAr I2RlZmluZSBISVNJX1BNSUNfRklSU1RfR1JPVVBfSU5UX05VTQkyCj4gKwo+ICtzdGF0aWMgY29u c3Qgc3RydWN0IG1mZF9jZWxsIGhpNjQyMXY2MDBfZGV2c1tdID0gewo+ICsJeyAubmFtZSA9ICJo aTY0MjF2NjAwLXJlZ3VsYXRvciIsIH0sCj4gK307CgpXaGVyZSBhcmUgdGhlIHJlc2V0IG9mIHRo ZSBkZXZpY2VzPwoKPiArc3RhdGljIGlycXJldHVybl90IGhpNjQyMV9zcG1pX2lycV9oYW5kbGVy KGludCBpcnEsIHZvaWQgKnByaXYpCj4gK3sKPiArCXN0cnVjdCBoaTY0MjFfc3BtaV9wbWljICpw bWljID0gKHN0cnVjdCBoaTY0MjFfc3BtaV9wbWljICopcHJpdjsKPiArCXVuc2lnbmVkIGxvbmcg cGVuZGluZzsKPiArCXVuc2lnbmVkIGludCBkYXRhOwo+ICsJaW50IGksIG9mZnNldDsKPiArCj4g Kwlmb3IgKGkgPSAwOyBpIDwgSElTSV9JUlFfQVJSQVk7IGkrKykgewo+ICsJCXJlZ21hcF9yZWFk KHBtaWMtPm1hcCwgb2Zmc2V0LCAmZGF0YSk7CgoibWFwIiBpcyBhbWJpZ3VvdXMuICBQbGVhc2Ug cmVuYW1lIHRoaXMgdG8gJ3JlZ2FtcCcuCgpXaGF0IGV4YWN0bHkgaXMgdGhpcyByZWFkaW5nPwoK T2Zmc2V0IGxvb2tzIGRlY2lkZWRseSB1bmFzc2lnbmVkIHRvIG1lLgoKPiArCQlkYXRhICY9IEhJ U0lfTUFTS19GSUVMRDsKPiArCQlpZiAoZGF0YSAhPSAwKQo+ICsJCQlwcl9kZWJ1ZygiZGF0YVsl ZF09MHglZFxuXHIiLCBpLCBkYXRhKTsKCkhvdyB1c2VmdWwgaXMgdGhpcywgcmVhbGx5PwoKPiAr CQlyZWdtYXBfd3JpdGUocG1pYy0+bWFwLCBpICsgU09DX1BNSUNfSVJRMF9BRERSLCBkYXRhKTsK Ck5pdDogSSBjYW4ndCBoZWxwIGZlZWxpbmcgdGhpcyB3b3VsZCByZWFkIGJldHRlciBhcyB0aGUg YWRkcmVzcyBwbHVzCnRoZSBvZmZzZXQuCgo+ICsJCS8qIGZvcl9lYWNoX3NldF9iaXQoKSBtYWNy byByZXF1aXJlcyB1bnNpZ25lZCBsb25nICovCgpOb3Qgc3VyZSB0aGlzIHJlcXVpcmVzIGEgY29t bWVudD8KCj4gKwkJcGVuZGluZyA9IGRhdGE7CgpXb3VsZCBhIGNhc3Qgd29yayBiZXR0ZXI/Cgo+ ICsJCS8qIHNvbHZlIHBvd2Vya2V5IG9yZGVyICovCgpXaGF0IGRvZXMgdGhpcyBtZWFuPyAgUGxl YXNlIGVsYWJvcmF0ZS4KClBsZWFzZSB1c2UgRW5nbGlzaCBncmFtbWFyIGluIGNvbW1lbnRzIGku ZS4gYmVnaW4gd2l0aCBhIGNhcGl0YWwgbGV0dGVyLgoKPiArCQlpZiAoKGkgPT0gSElTSV9JUlFf S0VZX05VTSkgJiYKPiArCQkgICAgKChwZW5kaW5nICYgSElTSV9JUlFfS0VZX1ZBTFVFKSA9PSBI SVNJX0lSUV9LRVlfVkFMVUUpKSB7CgpFeGNlc3NpdmUgYnJhY2tldGluZyB1c2VkIGhlcmUuCgo+ ICsJCQlnZW5lcmljX2hhbmRsZV9pcnEocG1pYy0+aXJxc1tISVNJX0lSUV9LRVlfRE9XTl0pOwo+ ICsJCQlnZW5lcmljX2hhbmRsZV9pcnEocG1pYy0+aXJxc1tISVNJX0lSUV9LRVlfVVBdKTsKPiAr CQkJcGVuZGluZyAmPSAofkhJU0lfSVJRX0tFWV9WQUxVRSk7Cj4gKwkJfQo+ICsKPiArCQlpZiAo cGVuZGluZykgewo+ICsJCQlmb3JfZWFjaF9zZXRfYml0KG9mZnNldCwgJnBlbmRpbmcsIEhJU0lf QklUUykKPiArCQkJCWdlbmVyaWNfaGFuZGxlX2lycShwbWljLT5pcnFzW29mZnNldCArIGkgKiBI SVNJX0JJVFNdKTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIElSUV9IQU5ETEVEOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBoaTY0MjFfc3BtaV9pcnFfbWFzayhzdHJ1Y3QgaXJxX2RhdGEg KmQpCj4gK3sKPiArCXN0cnVjdCBoaTY0MjFfc3BtaV9wbWljICpwbWljID0gaXJxX2RhdGFfZ2V0 X2lycV9jaGlwX2RhdGEoZCk7Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICsJdW5zaWduZWQg aW50IGRhdGE7Cj4gKwl1MzIgb2Zmc2V0Owo+ICsKPiArCW9mZnNldCA9IChpcnFkX3RvX2h3aXJx KGQpID4+IDMpOwoKV2h5IDM/ICBQcm9iYWJseSBiZXR0ZXIgdG8gZGVmaW5lIHRoZXNlIHNoaWZ0 cy9tYXNrcyByYXRoZXIgdGhhbiB1c2UKbWFnaWMgbnVtYmVycyB3aXRoIG5vIGNvbW1lbnRzLgoK PiArCW9mZnNldCArPSBTT0NfUE1JQ19JUlFfTUFTS18wX0FERFI7Cj4gKwo+ICsJc3Bpbl9sb2Nr X2lycXNhdmUoJnBtaWMtPmxvY2ssIGZsYWdzKTsKPiArCgpLZWVwIHRoZXNlIHN5bW1ldHJpY2Fs IGZvciBlYXNlIG9mIHJlYWRpbmcuCgpFaXRoZXIgYWRkIGEgJ1xuJyBiZWZvcmUgdGhlIHVubG9j ayBvciByZW1vdmUgdGhpcyBvbmUuCgo+ICsJcmVnbWFwX3JlYWQocG1pYy0+bWFwLCBvZmZzZXQs ICZkYXRhKTsKPiArCWRhdGEgfD0gKDEgPDwgKGlycWRfdG9faHdpcnEoZCkgJiAweDA3KSk7CgpX aGF0IGFyZSB5b3UgZG9pbmcgaGVyZT8KCk1heWJlIGltcHJvdmVkIGRlZmluZXMgd2lsbCBiZSBl bm91Z2guICBJZiBub3QsIHBsZWFzZSBzdXBwbHkgYQpzdWl0YWJsZSBjb21tZW50LgoKPiArCXJl Z21hcF93cml0ZShwbWljLT5tYXAsIG9mZnNldCwgZGF0YSk7Cj4gKwlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZwbWljLT5sb2NrLCBmbGFncyk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGhpNjQy MV9zcG1pX2lycV91bm1hc2soc3RydWN0IGlycV9kYXRhICpkKQo+ICt7Cj4gKwlzdHJ1Y3QgaGk2 NDIxX3NwbWlfcG1pYyAqcG1pYyA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpOwo+ICsJ dTMyIGRhdGEsIG9mZnNldDsKPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gKwo+ICsJb2Zmc2V0 ID0gKGlycWRfdG9faHdpcnEoZCkgPj4gMyk7Cj4gKwlvZmZzZXQgKz0gU09DX1BNSUNfSVJRX01B U0tfMF9BRERSOwo+ICsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZwbWljLT5sb2NrLCBmbGFncyk7 Cj4gKwlyZWdtYXBfcmVhZChwbWljLT5tYXAsIG9mZnNldCwgJmRhdGEpOwo+ICsJZGF0YSAmPSB+ KDEgPDwgKGlycWRfdG9faHdpcnEoZCkgJiAweDA3KSk7Cj4gKwlyZWdtYXBfd3JpdGUocG1pYy0+ bWFwLCBvZmZzZXQsIGRhdGEpOwo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG1pYy0+bG9j aywgZmxhZ3MpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGlycV9jaGlwIGhpNjQyMV9zcG1p X3BtdV9pcnFjaGlwID0gewo+ICsJLm5hbWUJCT0gImhpc2ktaXJxIiwKPiArCS5pcnFfbWFzawk9 IGhpNjQyMV9zcG1pX2lycV9tYXNrLAo+ICsJLmlycV91bm1hc2sJPSBoaTY0MjFfc3BtaV9pcnFf dW5tYXNrLAo+ICsJLmlycV9kaXNhYmxlCT0gaGk2NDIxX3NwbWlfaXJxX21hc2ssCj4gKwkuaXJx X2VuYWJsZQk9IGhpNjQyMV9zcG1pX2lycV91bm1hc2ssCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50 IGhpNjQyMV9zcG1pX2lycV9tYXAoc3RydWN0IGlycV9kb21haW4gKmQsIHVuc2lnbmVkIGludCB2 aXJxLAo+ICsJCQkgICAgICAgaXJxX2h3X251bWJlcl90IGh3KQo+ICt7Cj4gKwlzdHJ1Y3QgaGk2 NDIxX3NwbWlfcG1pYyAqcG1pYyA9IGQtPmhvc3RfZGF0YTsKPiArCj4gKwlpcnFfc2V0X2NoaXBf YW5kX2hhbmRsZXJfbmFtZSh2aXJxLCAmaGk2NDIxX3NwbWlfcG11X2lycWNoaXAsCj4gKwkJCQkg ICAgICBoYW5kbGVfc2ltcGxlX2lycSwgImhpc2kiKTsKPiArCWlycV9zZXRfY2hpcF9kYXRhKHZp cnEsIHBtaWMpOwo+ICsJaXJxX3NldF9pcnFfdHlwZSh2aXJxLCBJUlFfVFlQRV9OT05FKTsKPiAr Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWlu X29wcyBoaTY0MjFfc3BtaV9kb21haW5fb3BzID0gewo+ICsJLm1hcAk9IGhpNjQyMV9zcG1pX2ly cV9tYXAsCj4gKwkueGxhdGUJPSBpcnFfZG9tYWluX3hsYXRlX3R3b2NlbGwsCj4gK307Cj4gKwo+ ICtzdGF0aWMgdm9pZCBoaTY0MjFfc3BtaV9wbWljX2lycV9wcmMoc3RydWN0IGhpNjQyMV9zcG1p X3BtaWMgKnBtaWMpCj4gK3sKPiArCWludCBpOwo+ICsJdW5zaWduZWQgaW50IHBlbmRpbmc7Cj4g Kwo+ICsJZm9yIChpID0gMCA7IGkgPCBISVNJX0lSUV9BUlJBWTsgaSsrKQoKTWlzcGxhY2VkICcg Jy4KCj4gKwkJcmVnbWFwX3dyaXRlKHBtaWMtPm1hcCwgU09DX1BNSUNfSVJRX01BU0tfMF9BRERS ICsgaSwKPiArCQkJCSAgICAgICBISVNJX01BU0tfU1RBVEUpOwo+ICsKPiArCWZvciAoaSA9IDAg OyBpIDwgSElTSV9JUlFfQVJSQVk7IGkrKykgewo+ICsJCXJlZ21hcF9yZWFkKHBtaWMtPm1hcCwg U09DX1BNSUNfSVJRMF9BRERSICsgaSwgJnBlbmRpbmcpOwo+ICsKPiArCQlwcl9kZWJ1ZygiUE1V IElSUSBhZGRyZXNzIHZhbHVlOmlycVsweCV4XSA9IDB4JXhcbiIsCj4gKwkJCSBTT0NfUE1JQ19J UlEwX0FERFIgKyBpLCBwZW5kaW5nKTsKCkFnYWluLCBpcyB0aGlzIGFjdHVhbGx5IHVzZWZ1bCB0 byBhbnlvbmUgbm93IHRoYXQgdGhlIGRyaXZlciBpcyBuZWFybHkKMTAgeWVhcnMgb2xkLiAgUGFy dGljdWxhcmx5IGFueW9uZSB3aG8gY2FuJ3QgYWRkIGEgcXVpY2sgcHJpbnRrKCkKZHVyaW5nIGEg ZGVidWcgc2Vzc2lvbj8KCj4gKwkJcmVnbWFwX3dyaXRlKHBtaWMtPm1hcCwgU09DX1BNSUNfSVJR MF9BRERSICsgaSwKPiArCQkJICAgICBISVNJX01BU0tfU1RBVEUpOwo+ICsJfQo+ICt9Cj4gKwo+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgc3BtaV9yZWdtYXBfY29uZmlnID0g ewo+ICsJLnJlZ19iaXRzCQk9IDE2LAo+ICsJLnZhbF9iaXRzCQk9IDgsCj4gKwkubWF4X3JlZ2lz dGVyCQk9IDB4ZmZmZiwKPiArCS5mYXN0X2lvCQk9IHRydWUKPiArfTsKPiArCj4gK3N0YXRpYyBp bnQgaGk2NDIxX3NwbWlfcG1pY19wcm9iZShzdHJ1Y3Qgc3BtaV9kZXZpY2UgKnBkZXYpCj4gK3sK PiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gKwlzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wID0gZGV2LT5vZl9ub2RlOwo+ICsJc3RydWN0IGhpNjQyMV9zcG1pX3BtaWMgKnBtaWM7 Cj4gKwlzdHJ1Y3QgcmVnbWFwICptYXA7Cj4gKwl1bnNpZ25lZCBpbnQgdmlycTsKPiArCWludCBy ZXQsIGk7Cj4gKwo+ICsJcG1pYyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcG1pYyksIEdG UF9LRVJORUwpOwoKTml0OiBNeSBwZXJzb25hbCBwcmVmZXJlbmNlIGZvciBsb2NhbCBkcml2ZXIg ZGF0YSBpcyAnZGRhdGEnLgoKPiArCWlmICghcG1pYykKPiArCQlyZXR1cm4gLUVOT01FTTsKPiAr Cj4gKwltYXAgPSBkZXZtX3JlZ21hcF9pbml0X3NwbWlfZXh0KHBkZXYsICZzcG1pX3JlZ21hcF9j b25maWcpOwoKV2UgdGFsayBhYm91dCBJUlEgbWFwcyBhYm92ZS4gICdyZWdtYXAnIHdvdWxkIGJl IGJldHRlciBoZXJlLgoKPiArCWlmIChJU19FUlIobWFwKSkKPiArCQlyZXR1cm4gUFRSX0VSUiht YXApOwo+ICsKPiArCXNwaW5fbG9ja19pbml0KCZwbWljLT5sb2NrKTsKPiArCj4gKwlwbWljLT5k ZXYgPSBkZXY7Cj4gKwlwbWljLT5tYXAgPSBtYXA7Cj4gKwo+ICsJcG1pYy0+Z3BpbyA9IG9mX2dl dF9ncGlvKG5wLCAwKTsKCldoeSBkbyB5b3UgdXNlIGxvY2FsIHZhcmlhYmxlICdtYXAnIGFib3Zl IGFuZCBqdXN0IGFzc2lnbiB0aGUgZGRhdGEKdmFsdWUgZGlyZWN0bHkgaGVyZT8gIEkgdGhpbmsg dGhlIGxhdHRlciB3b3VsZCBiZSBiZXR0ZXIgdGhyb3VnaG91dC4KCj4gKwlpZiAocG1pYy0+Z3Bp byA8IDApCj4gKwkJcmV0dXJuIHBtaWMtPmdwaW87Cj4gKwo+ICsJaWYgKCFncGlvX2lzX3ZhbGlk KHBtaWMtPmdwaW8pKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCXJldCA9IGRldm1fZ3Bp b19yZXF1ZXN0X29uZShkZXYsIHBtaWMtPmdwaW8sIEdQSU9GX0lOLCAicG1pYyIpOwo+ICsJaWYg KHJldCA8IDApIHsKPiArCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byByZXF1ZXN0IGdwaW8lZFxu IiwgcG1pYy0+Z3Bpbyk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlwbWljLT5pcnEg PSBncGlvX3RvX2lycShwbWljLT5ncGlvKTsKPiArCj4gKwloaTY0MjFfc3BtaV9wbWljX2lycV9w cmMocG1pYyk7CgpXaGF0IGRvZXMgcHJjIG1lYW4/Cgo+ICsJcG1pYy0+aXJxcyA9IGRldm1fa3ph bGxvYyhkZXYsIEhJU0lfSVJRX05VTSAqIHNpemVvZihpbnQpLCBHRlBfS0VSTkVMKTsKPiArCWlm ICghcG1pYy0+aXJxcykKPiArCQlnb3RvIGlycV9tYWxsb2M7CgptYWxsb2M/Cgo+ICsJcG1pYy0+ ZG9tYWluID0gaXJxX2RvbWFpbl9hZGRfc2ltcGxlKG5wLCBISVNJX0lSUV9OVU0sIDAsCj4gKwkJ CQkJICAgICAmaGk2NDIxX3NwbWlfZG9tYWluX29wcywgcG1pYyk7Cj4gKwlpZiAoIXBtaWMtPmRv bWFpbikgewo+ICsJCWRldl9lcnIoZGV2LCAiZmFpbGVkIGlycSBkb21haW4gYWRkIHNpbXBsZSFc biIpOwoKVG9vIHNwZWNpZmljIGluIG15IG9waW5pb24uICBObyBuZWVkIHRvIG1lbnRpb24gdGhl IGNhbGwuCgoiRmFpbGVkIHRvIGNyZWF0ZSBJUlEgZG9tYWluIiB3b3VsZCBiZSBiZXR0ZXIgSU1I Ty4KCj4gKwkJcmV0ID0gLUVOT0RFVjsKPiArCQlnb3RvIGlycV9tYWxsb2M7Cj4gKwl9Cj4gKwo+ ICsJZm9yIChpID0gMDsgaSA8IEhJU0lfSVJRX05VTTsgaSsrKSB7Cj4gKwkJdmlycSA9IGlycV9j cmVhdGVfbWFwcGluZyhwbWljLT5kb21haW4sIGkpOwo+ICsJCWlmICghdmlycSkgewo+ICsJCQlk ZXZfZXJyKGRldiwgIkZhaWxlZCBtYXBwaW5nIGh3aXJxXG4iKTsKCiJGYWlsZWQgdG8gbWFwIEgv VyBJUlEiCgo+ICsJCQlyZXQgPSAtRU5PU1BDOwo+ICsJCQlnb3RvIGlycV9tYWxsb2M7Cj4gKwkJ fQo+ICsJCXBtaWMtPmlycXNbaV0gPSB2aXJxOwo+ICsJCWRldl9kYmcoZGV2LCAiJXM6IHBtaWMt PmlycXNbJWRdID0gJWRcbiIsCj4gKwkJCV9fZnVuY19fLCBpLCBwbWljLT5pcnFzW2ldKTsKClRo aXMgaXMgdWdseS4gIFBsZWFzZSByZW1vdmUgaXQuCgo+ICsJfQo+ICsKPiArCXJldCA9IHJlcXVl c3RfdGhyZWFkZWRfaXJxKHBtaWMtPmlycSwgaGk2NDIxX3NwbWlfaXJxX2hhbmRsZXIsIE5VTEws Cj4gKwkJCQkgICBJUlFGX1RSSUdHRVJfTE9XIHwgSVJRRl9TSEFSRUQgfCBJUlFGX05PX1NVU1BF TkQsCj4gKwkJCQkgICAicG1pYyIsIHBtaWMpOwo+ICsJaWYgKHJldCA8IDApIHsKPiArCQlkZXZf ZXJyKGRldiwgImNvdWxkIG5vdCBjbGFpbSBwbWljIElSUTogZXJyb3IgJWRcbiIsIHJldCk7CgpU aGlzIGlzIGluY29uc2lzdGVudCB3aXRoIG90aGVyIHByaW50cy4gIEJldHRlciB0byBzdGFydCB3 aXRoIGEKY2FwaXRhbCBJIHRoaW5rLiAgQWxzbywgaXQgc2hvdWxkIGJlICJQTUlDIiwgYXMgaXQn cyBhbiBhYmJyZXZpYXRpb24uCgo+ICsJCWdvdG8gaXJxX21hbGxvYzsKPiArCX0KPiArCj4gKwlk ZXZfc2V0X2RydmRhdGEoJnBkZXYtPmRldiwgcG1pYyk7Cj4gKwo+ICsJLyoKPiArCSAqIFRoZSBs b2dpYyBiZWxvdyB3aWxsIHJlbHkgdGhhdCB0aGUgcG1pYyBpcyBhbHJlYWR5IHN0b3JlZCBhdAo+ ICsJICogZHJ2ZGF0YS4KPiArCSAqLwoKV2hpY2ggbG9naWM/Cgo+ICsJZGV2X2RiZygmcGRldi0+ ZGV2LCAiU1BNSS1QTUlDOiBhZGRpbmcgY2hpbGRyZW4gZm9yICVwT0ZcbiIsCj4gKwkJcGRldi0+ ZGV2Lm9mX25vZGUpOwoKUGxlYXNlIHJlbW92ZSB0aGlzLgoKPiArCXJldCA9IGRldm1fbWZkX2Fk ZF9kZXZpY2VzKCZwZGV2LT5kZXYsIFBMQVRGT1JNX0RFVklEX05PTkUsCj4gKwkJCQkgICBoaTY0 MjF2NjAwX2RldnMsIEFSUkFZX1NJWkUoaGk2NDIxdjYwMF9kZXZzKSwKPiArCQkJCSAgIE5VTEws IDAsIE5VTEwpOwo+ICsJaWYgKCFyZXQpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJZGV2X2Vycihk ZXYsICJGYWlsZWQgdG8gYWRkIGNoaWxkIGRldmljZXM6ICVkXG4iLCByZXQpOwo+ICsKPiAraXJx X21hbGxvYzoKPiArCWZyZWVfaXJxKHBtaWMtPmlycSwgcG1pYyk7CgpEb2VzIGdwaW9fdG9faXJx KCkgbmVlZCBmcmVlaW5nPwoKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lk IGhpNjQyMV9zcG1pX3BtaWNfcmVtb3ZlKHN0cnVjdCBzcG1pX2RldmljZSAqcGRldikKPiArewo+ ICsJc3RydWN0IGhpNjQyMV9zcG1pX3BtaWMgKnBtaWMgPSBkZXZfZ2V0X2RydmRhdGEoJnBkZXYt PmRldik7Cj4gKwo+ICsJZnJlZV9pcnEocG1pYy0+aXJxLCBwbWljKTsKPiArfQo+ICsKPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcG1pY19zcG1pX2lkX3RhYmxlW10gPSB7Cj4g Kwl7IC5jb21wYXRpYmxlID0gImhpc2lsaWNvbixoaTY0MjEtc3BtaSIgfSwKPiArCXsgfQo+ICt9 Owo+ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBwbWljX3NwbWlfaWRfdGFibGUpOwo+ICsKPiAr c3RhdGljIHN0cnVjdCBzcG1pX2RyaXZlciBoaTY0MjFfc3BtaV9wbWljX2RyaXZlciA9IHsKPiAr CS5kcml2ZXIgPSB7Cj4gKwkJLm5hbWUJPSAiaGk2NDIxLXNwbWktcG1pYyIsCgpPZGQgc3BhY2lu Zy4gIEp1c3QgdXNlIG9uZSAnICcgcGxlYXNlLgoKPiArCQkub2ZfbWF0Y2hfdGFibGUgPSBwbWlj X3NwbWlfaWRfdGFibGUsCj4gKwl9LAo+ICsJLnByb2JlCT0gaGk2NDIxX3NwbWlfcG1pY19wcm9i ZSwKPiArCS5yZW1vdmUJPSBoaTY0MjFfc3BtaV9wbWljX3JlbW92ZSwKPiArfTsKPiArbW9kdWxl X3NwbWlfZHJpdmVyKGhpNjQyMV9zcG1pX3BtaWNfZHJpdmVyKTsKPiArCj4gK01PRFVMRV9ERVND UklQVElPTigiSGlTaWxpY29uIEhpNjQyMXY2MDAgU1BNSSBQTUlDIGRyaXZlciIpOwo+ICtNT0RV TEVfTElDRU5TRSgiR1BMIHYyIik7CgotLSAKTGVlIEpvbmVzIFvmnY7nkLzmlq9dClNlbmlvciBU ZWNobmljYWwgTGVhZCAtIERldmVsb3BlciBTZXJ2aWNlcwpMaW5hcm8ub3JnIOKUgiBPcGVuIHNv dXJjZSBzb2Z0d2FyZSBmb3IgQXJtIFNvQ3MKRm9sbG93IExpbmFybzogRmFjZWJvb2sgfCBUd2l0 dGVyIHwgQmxvZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkZXZlbCBtYWlsaW5nIGxpc3QKZGV2ZWxAbGludXhkcml2ZXJwcm9qZWN0Lm9yZwpodHRwOi8v ZHJpdmVyZGV2LmxpbnV4ZHJpdmVycHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcml2ZXJk ZXYtZGV2ZWwK