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=-8.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 5082BC3F2D7 for ; Tue, 3 Mar 2020 15:09:27 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 25D4E20842 for ; Tue, 3 Mar 2020 15:09:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="vZF7acFM" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 25D4E20842 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 386276E8D1; Tue, 3 Mar 2020 15:09:26 +0000 (UTC) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id 862D66E8D1 for ; Tue, 3 Mar 2020 15:09:24 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200303150922euoutp01a6fe3a5e708bb00f5f15f38f17d0895d~409DTgTvx2820028200euoutp01V for ; Tue, 3 Mar 2020 15:09:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200303150922euoutp01a6fe3a5e708bb00f5f15f38f17d0895d~409DTgTvx2820028200euoutp01V DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1583248162; bh=EeTpJeNFVd1f2Y/SJeXgYzIf80Q1sj+VlSF6s1kj+HQ=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=vZF7acFM+b3I7Zs249HCOc+SDQ2w8eK0RVrRSEl9l9wbr/Fh7ViD653FyWRNIwLyc iq8FgL5zfPedyVubh/g+MHxAvj/SlKvRFsF3Pzkf/EaJ4k0WXcIDqyQDzzhcHQa0+F j8r67/XZaEOCPejceFVJrA5sL09DdcNbuNNiPSqY= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200303150922eucas1p24172e8f120073167e3f3c19ceaff8d08~409DAv0DH2302523025eucas1p2-; Tue, 3 Mar 2020 15:09:22 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 13.BD.60679.2237E5E5; Tue, 3 Mar 2020 15:09:22 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200303150922eucas1p1e6374757a23dec1103f5bca59789a5ff~409Ci2_Y63153931539eucas1p1H; Tue, 3 Mar 2020 15:09:22 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200303150922eusmtrp21d2adb4bd5c4573d6a9d590d10deaf65~409CiIrfq0815908159eusmtrp2G; Tue, 3 Mar 2020 15:09:22 +0000 (GMT) X-AuditID: cbfec7f4-0cbff7000001ed07-db-5e5e7322993d Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id E5.F2.08375.1237E5E5; Tue, 3 Mar 2020 15:09:21 +0000 (GMT) Received: from [106.120.51.74] (unknown [106.120.51.74]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200303150921eusmtip2b0ed984104969c4d7e22492ec34ce157~409B7LXNd0792707927eusmtip2X; Tue, 3 Mar 2020 15:09:21 +0000 (GMT) Subject: Re: [PATCH] display/bridge: dsi2lvds tc358775 driver To: Vinay Simha BN From: Andrzej Hajda Message-ID: <01e0b365-6c72-c199-9fb5-2f6fa7f77335@samsung.com> Date: Tue, 3 Mar 2020 16:09:20 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <1582812239-29480-1-git-send-email-simhavcs@gmail.com> Content-Language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrLKsWRmVeSWpSXmKPExsWy7djP87pKxXFxBq93i1n0njvJZDH/yDlW iytf37NZXP3+ktni5JurLBadE5ewW1zeNYfN4lBftEXr3iPsFp8vv2Rz4PJ4f6OV3WPnrLvs HrM7ZrJ6bFrVyeZxYsIlJo/t3x6wetzvPs7kcaB3MovH501yAZxRXDYpqTmZZalF+nYJXBkz 7l5nLbh+n7Fi6pLP7A2MU9cydjFyckgImEj8mzSBuYuRi0NIYAWjxM7WVWwQzhdGifWLXkJl PjNKrN4+jxWm5eauHrB2IYHljBJ3bvhAFL1llPj3YhpYQljAVuLo5pdsILaIgLrE9GvLwcYy C+xilnj0+wJYgk1AU+Lv5ptgNq+AncSyry+YQGwWARWJy6uvsYDYogIREtO2/2OEqBGUODnz CVCcg4NTwFni0d4akDCzgLxE89bZzBC2uMStJ/OZIA59xC6x5kcChO0i0TX/HdTPwhKvjm9h h7BlJP7vhKmvl7i/ogXsYwmBDkaJrRt2MkMkrCXunPvFBrKXGejm9bv0IcKOEk+v3wYLSwjw Sdx4KwhxAp/EpG3TmSHCvBIdbUIQ1YoS989uhRooLrH0wle2CYxKs5D8NQvJM7OQPDMLYe8C RpZVjOKppcW56anFRnmp5XrFibnFpXnpesn5uZsYgYns9L/jX3Yw7vqTdIhRgINRiYdXwjMu Tog1say4MvcQowQHs5IIry9ndJwQb0piZVVqUX58UWlOavEhRmkOFiVxXuNFL2OFBNITS1Kz U1MLUotgskwcnFINjGGeGos9GCSz+EP+qK4K2faqXchh2pH3LU1HLieuj7GJOvJqysOCZRJF TpXOapMnK6S5Tzt3q9HwmdKnLdciJXu6C2utJeZkqeyUnVYxX0LFjol7m+a3ycV3jJtkF2Z+ afnJ9JXVZO/CT9WcZbFT4nW6b5UoZlZmiC9fcvn2Xbd0/xdiSiXiSizFGYmGWsxFxYkAzLTF 3WADAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrIIsWRmVeSWpSXmKPExsVy+t/xe7pKxXFxBmtcLXrPnWSymH/kHKvF la/v2Syufn/JbHHyzVUWi86JS9gtLu+aw2ZxqC/aonXvEXaLz5dfsjlweby/0crusXPWXXaP 2R0zWT02repk8zgx4RKTx/ZvD1g97ncfZ/I40DuZxePzJrkAzig9m6L80pJUhYz84hJbpWhD CyM9Q0sLPSMTSz1DY/NYKyNTJX07m5TUnMyy1CJ9uwS9jBl3r7MWXL/PWDF1yWf2Bsapaxm7 GDk5JARMJG7u6gGyuTiEBJYyShw/0MsOkRCX2D3/LTOELSzx51oXG0TRa0aJ71/6wIqEBWwl jm5+yQZiiwioS0y/thysiFlgD7PEuiOzWSA6pjFKTP7zFWwUm4CmxN/NN8E6eAXsJJZ9fcEE YrMIqEhcXn2NBcQWFYiQeDyxnRGiRlDi5MwnQHEODk4BZ4lHe2tAwsxAy/7Mu8QMYctLNG+d DWWLS9x6Mp9pAqPQLCTds5C0zELSMgtJywJGllWMIqmlxbnpucWGesWJucWleel6yfm5mxiB 0bvt2M/NOxgvbQw+xCjAwajEwyvhGRcnxJpYVlyZe4hRgoNZSYTXlzM6Tog3JbGyKrUoP76o NCe1+BCjKdBvE5mlRJPzgYklryTe0NTQ3MLS0NzY3NjMQkmct0PgYIyQQHpiSWp2ampBahFM HxMHp1QDY5a4bVRoj3ijS96G3lU3VPjj92XmsbAk2xsaFinyOk0tm3bT79Sn2bnLFVat0hBp m/tSfXGjDkvalQchddbKa79lHH5XOvex/jqGziDndWJbIrmi5k6/w5m9o64oqcl1xf715roF wsxblh0NL34kduXjoS9vOP57ufs8OByy8LlZH+tR2x4mJZbijERDLeai4kQAA57qR/QCAAA= X-CMS-MailID: 20200303150922eucas1p1e6374757a23dec1103f5bca59789a5ff X-Msg-Generator: CA X-RootMTR: 20200228080017eucas1p2e311cd1b71d74ef2c92a5518f69db89c X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200228080017eucas1p2e311cd1b71d74ef2c92a5518f69db89c References: <1582812239-29480-1-git-send-email-simhavcs@gmail.com> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Jernej Skrabec , Jonas Karlman , David Airlie , Neil Armstrong , open list , "open list:DRM DRIVERS" , Rob Herring , Laurent Pinchart Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gMjcuMDIuMjAyMCAxNTowMywgVmluYXkgU2ltaGEgQk4gd3JvdGU6Cj4gZHNpMmx2ZHMgdGMz NTg3NzUgYnJpZGdlIGRyaXZlciBhZGRlZAo+IFRlc3RlZCBpbiBhcHE4MDE2LCBpZmM2MzA5IGJv YXJkIGFuZCBwYW5lbAo+IGF1byxiMTAxeHRuMDEKCgpKdXN0IEZZSSwgdGhlcmUgZXhpc3RzIGFs cmVhZHkgVEMzNTg3NjQvNSBkcml2ZXIgZm9yIHNpbWlsYXIgaHcsIGJ1dApjb250cm9sbGVkIHZp YSBEU0kgYnVzLgoKCj4gU2lnbmVkLW9mZi1ieTogVmluYXkgU2ltaGEgQk4gPHNpbWhhdmNzQGdt YWlsLmNvbT4KPiAtLS0KPiAgLi4uL2JpbmRpbmdzL2Rpc3BsYXkvYnJpZGdlL3Rvc2hpYmEsdGMz NTg3NzUudHh0ICAgfCAxMDYgKysrKwoKCkJpbmRpbmdzIHNob3VsZCBiZSBpbiBzZXBhcmF0ZSBw YXRjaCBhbmQgaW4geWFtbCBmb3JtYXQuCgoKPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29u ZmlnICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdl L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9i cmlkZ2UvdGMzNTg3NzUuYyAgICAgICAgICAgICAgICAgIHwgNjg3ICsrKysrKysrKysrKysrKysr KysrKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDgwNCBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9icmlkZ2Uv dG9zaGliYSx0YzM1ODc3NS50eHQKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvdGMzNTg3NzUuYwo+Cj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNl dHJlZS9iaW5kaW5ncy9kaXNwbGF5L2JyaWRnZS90b3NoaWJhLHRjMzU4Nzc1LnR4dCBiL0RvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2JyaWRnZS90b3NoaWJhLHRjMzU4 Nzc1LnR4dAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uYzRjMzY0ZAo+ IC0tLSAvZGV2L251bGwKPiArKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv ZGlzcGxheS9icmlkZ2UvdG9zaGliYSx0YzM1ODc3NS50eHQKPiBAQCAtMCwwICsxLDEwNiBAQAo+ ICtUb3NoaWJhIFRDMzU4Nzc1IERTSSB0byBMVkRTIGJyaWRnZSBiaW5kaW5ncwo+ICsKPiArUmVx dWlyZWQgcHJvcGVydGllczoKPiArIC0gY29tcGF0aWJsZTogInRvc2hpYmEsdGMzNTg3NzUiCj4g KyAtIHJlZzogaTJjIGFkZHJlc3Mgb2YgdGhlIGJyaWRnZSwgMHgwZgo+ICsgLSB0YywgZHNpLWxh bmVzOiBOdW1iZXIgb2YgRFNJIGRhdGEgbGFuZXMgY29ubmVjdGVkIHRvIHRoZSBEU0kgaG9zdC4g SXQgc2hvdWxkCj4gKyAgYmUgb25lIG9mIDEsIDIsIDMgb3IgNC4KPiArIC0gdGMsIGR1YWwtbGlu ayA6IFRvIGNvbmZpZ3VyZSB0aGUgTFZEUyB0cmFuc21pdHRlciBlaXRoZXIKPiArICBhcyBzaW5n bGUtbGluayBvciBkdWFsLWxpbmsuCj4gKyAtIHRjLCBkYXRhLWZvcm1hdDogVG8gY29uZmlndXJl IHRoZSBkYXRhIGZvcm1hdHMKPiArICAgMCBmb3IgVkVTQSBzdGFuZGFyZCwgMSBmb3IgSkVJREEg c3RhbmRhcmQKCgpJTU8sIHRocmVlIHByb3BlcnRpZXMgYWJvdmUgc2hvdWxkIGJlIHJlY2VpdmVk IGZyb20gZG93bnN0cmVhbSBkZXZpY2UgaW4KcnVudGltZSwgbm90IGhhcmRjb2RlZCBpbnRvIERU LCBob3dldmVyIEkgYW0gbm90IHN1cmUgaWYgZnJhbWV3b3JrcwpzdXBwb3J0IGl0LgoKPiArIC0g dmRkLXN1cHBseTogMS4yViBMVkRTIFBvd2VyIFN1cHBseQo+ICsgLSB2ZGRpby1zdXBwbHk6IDEu OFYgSU8gUG93ZXIgU3VwcGx5Cj4gKyAtIHN0YnktZ3Bpb3M6IFN0YW5kYnkgcGluLCBMb3cgYWN0 aXZlIAo+ICsgLSByZXNldC1ncGlvczogSGFyZHdhcmUgcmVzZXQsCUxvdyBhY3RpdmUgCj4gKwo+ ICtSZXF1aXJlZCBub2RlczoKPiArCj4gK1RoZSBUQzM1ODc3NSBoYXMgdHdvIHBvcnRzLiBUaGVp ciBjb25uZWN0aW9ucyBhcmUgbW9kZWxsZWQgdXNpbmcgdGhlIE9GCj4gK2dyYXBoIGJpbmRpbmdz IHNwZWNpZmllZCBpbiBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3JhcGgudHh0 Lgo+ICsKPiArLSBWaWRlbyBwb3J0IDAgZm9yIHRoZSBEU0kgaW5wdXQuIFRoZSByZW1vdGUgZW5k cG9pbnQgcGhhbmRsZSBzaG91bGQgYmUgYQo+ICsJcmVmZXJlbmNlIHRvIGEgdmFsaWQgbWlwaV9k c2lfaG9zdCBkZXZpY2Ugbm9kZS4KPiArLSBWaWRlbyBwb3J0IDEgZm9yIHRoZSBMVkRTIG91dHB1 dC4KPiArCj4gK0V4YW1wbGU6Cj4gKwo+ICsJaTJjQDc4YjgwMDAgewo+ICsJCS8qIE9uIEhpZ2gg c3BlZWQgZXhwYW5zaW9uICovCj4gKwkJbGFiZWwgPSAiSFMtSTJDMiI7Cj4gKwkJc3RhdHVzID0g Im9rYXkiOwo+ICsKPiArCQl0Y19icmlkZ2U6IGJyaWRnZUBmIHsKPiArCQkJc3RhdHVzID0gIm9r YXkiOwo+ICsKPiArCQkJY29tcGF0aWJsZSA9ICJ0b3NoaWJhLHRjMzU4Nzc1IjsKPiArCQkJcmVn ID0gPDB4MGY+Owo+ICsKPiArCQkJdGMsZHNpLWxhbmVzID0gPDQ+Owo+ICsJCQl0YyxkdWFsLWxp bmsgPSA8MD47Cj4gKwkJCXRjLGRhdGEtZm9ybWF0ID0gPDE+Owo+ICsKPiArCQkJdmRkLXN1cHBs eSA9IDwmcG04OTE2X2wyPjsKPiArCQkJdmRkaW8tc3VwcGx5ID0gPCZwbTg5MTZfbDY+Owo+ICsK PiArCQkJc3RieS1ncGlvID0gPCZtc21ncGlvIDk5IEdQSU9fQUNUSVZFX0xPVz47Cj4gKwkJCXJl c2V0LWdwaW8gPSA8Jm1zbWdwaW8gNzIgR1BJT19BQ1RJVkVfTE9XPjsKPiArCj4gKwkJCXBvcnRz IHsKPiArCQkJCSNhZGRyZXNzLWNlbGxzID0gPDE+Owo+ICsJCQkJI3NpemUtY2VsbHMgPSA8MD47 Cj4gKwo+ICsJCQkJcG9ydEAwIHsKPiArCQkJCQlyZWcgPSA8MD47Cj4gKwkJCQkJZDJsX2luOiBl bmRwb2ludCB7Cj4gKwkJCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmZHNpMF9vdXQ+Owo+ICsJCQkJ CX07Cj4gKwkJCQl9Owo+ICsKPiArCQkJCXBvcnRAMSB7Cj4gKwkJCQkJcmVnID0gPDE+Owo+ICsJ CQkJCWQybF9vdXQ6IGVuZHBvaW50IHsKPiArCQkJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZwYW5l bF9pbj47Cj4gKwkJCQkJfTsKPiArCQkJCX07Cj4gKwkJCX07Cj4gKwkJfTsKPiArCX07Cj4gKwo+ ICsJcGFuZWw6IGF1byxiMTAxeHRuMDEgewo+ICsJCQlzdGF0dXMgPSAib2theSI7Cj4gKwkJCWNv bXBhdGlibGUgPSAiYXVvLGIxMDF4dG4wMSI7Cj4gKwkJCXBvd2VyLXN1cHBseSA9IDwmcG04OTE2 X2wxND47Cj4gKwo+ICsJCQlwb3J0IHsKPiArCQkJCXBhbmVsX2luOiBlbmRwb2ludCB7Cj4gKwkJ CQkJcmVtb3RlLWVuZHBvaW50ID0gPCZkMmxfb3V0PjsKPiArCQkJCX07Cj4gKwkJCX07Cj4gKwl9 Owo+ICsKPiArCW1kc3NAMWEwMDAwMCB7Cj4gKwkJc3RhdHVzID0gIm9rYXkiOwo+ICsKPiArCQlt ZHBAMWEwMTAwMCB7Cj4gKwkJCXN0YXR1cyA9ICJva2F5IjsKPiArCQl9Owo+ICsKPiArCQlkc2lA MWE5ODAwMCB7Cj4gKwkJCXN0YXR1cyA9ICJva2F5IjsKPiArCQkJLi4KPiArCQkJcG9ydHMgewo+ ICsJCQkJcG9ydEAxIHsKPiArCQkJCQlkc2kwX291dDogZW5kcG9pbnQgewo+ICsJCQkJCQlyZW1v dGUtZW5kcG9pbnQgPSA8JmQybF9pbj47Cj4gKwkJCQkJCWRhdGEtbGFuZXMgPSA8MCAxIDIgMz47 Cj4gKwkJCQkJfTsKPiArCQkJCX07Cj4gKwkJCX07Cj4gKwkJfTsKPiArCj4gKwkJZHNpLXBoeUAx YTk4MzAwIHsKPiArCQkJc3RhdHVzID0gIm9rYXkiOwo+ICsJCQkuLgo+ICsJCX07Cj4gKwl9Owo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL0tjb25maWcgYi9kcml2ZXJzL2dw dS9kcm0vYnJpZGdlL0tjb25maWcKPiBpbmRleCA4Mzk3YmY3Li5kNTUyOGZhIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvS2NvbmZpZwo+IEBAIC0xMzMsNiArMTMzLDE2IEBAIGNvbmZpZyBEUk1fVE9TSElC QV9UQzM1ODc2Nwo+ICAJLS0taGVscC0tLQo+ICAJICBUb3NoaWJhIFRDMzU4NzY3IGVEUCBicmlk Z2UgY2hpcCBkcml2ZXIuCj4gIAo+ICtjb25maWcgRFJNX1RPU0hJQkFfVEMzNTg3NzUKPiArICAg ICAgICB0cmlzdGF0ZSAiVG9zaGliYSBUQzM1ODc3NSBMVkRTIGJyaWRnZSIKPiArICAgICAgICBk ZXBlbmRzIG9uIE9GCj4gKyAgICAgICAgc2VsZWN0IERSTV9LTVNfSEVMUEVSCj4gKyAgICAgICAg c2VsZWN0IFJFR01BUF9JMkMKPiArICAgICAgICBzZWxlY3QgRFJNX1BBTkVMCj4gKwlzZWxlY3Qg RFJNX01JUElfRFNJCj4gKyAgICAgICAgLS0taGVscC0tLQo+ICsgICAgICAgICAgVG9zaGliYSBU QzM1ODc3NSBMVkRTIGJyaWRnZSBjaGlwIGRyaXZlci4KPiArCj4gIGNvbmZpZyBEUk1fVElfVEZQ NDEwCj4gIAl0cmlzdGF0ZSAiVEkgVEZQNDEwIERWSS9IRE1JIGJyaWRnZSIKPiAgCWRlcGVuZHMg b24gT0YKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvTWFrZWZpbGUKPiBpbmRleCAxZWI1Mzc2Li45YjJjNTEyIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvTWFrZWZpbGUKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlCj4gQEAgLTEyLDYgKzEyLDcgQEAgb2JqLSQoQ09O RklHX0RSTV9TSUk5MjM0KSArPSBzaWk5MjM0Lm8KPiAgb2JqLSQoQ09ORklHX0RSTV9USElORV9U SEM2M0xWRDEwMjQpICs9IHRoYzYzbHZkMTAyNC5vCj4gIG9iai0kKENPTkZJR19EUk1fVE9TSElC QV9UQzM1ODc2NCkgKz0gdGMzNTg3NjQubwo+ICBvYmotJChDT05GSUdfRFJNX1RPU0hJQkFfVEMz NTg3NjcpICs9IHRjMzU4NzY3Lm8KPiArb2JqLSQoQ09ORklHX0RSTV9UT1NISUJBX1RDMzU4Nzc1 KSArPSB0YzM1ODc3NS5vCj4gIG9iai0kKENPTkZJR19EUk1fSTJDX0FEVjc1MTEpICs9IGFkdjc1 MTEvCj4gIG9iai0kKENPTkZJR19EUk1fVElfU042NURTSTg2KSArPSB0aS1zbjY1ZHNpODYubwo+ ICBvYmotJChDT05GSUdfRFJNX1RJX1RGUDQxMCkgKz0gdGktdGZwNDEwLm8KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc3NS5jIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS90YzM1ODc3NS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi4z ZGIwZjQ5Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMz NTg3NzUuYwo+IEBAIC0wLDAgKzEsNjg3IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wCj4gKy8qCj4gKyAqIHRjMzU4Nzc1IERTSSB0byBMVkRTIGJyaWRnZSBkcml2ZXIK PiArICoKPiArICogQ29weXJpZ2h0IChDKSAyMDIwIEluZm9yY2VDb21wdXRpbmcKPiArICogQXV0 aG9yOiBWaW5heSBTaW1oYSBCTiA8dmluYXlzaW1oYUBpbmZvcmNlY29tcHV0aW5nLmNvbT4KPiAr ICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKPiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiArICogdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPiAr ICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICoKPiArICogVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Cj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCj4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKPiArICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KCgpZb3UgY2FuIGRyb3AgdGhlc2Ugc3RhdGVtZW50cywgU1BEWCBp ZGVudGlmaWVyIGlzIGVub3VnaC4KCgo+ICsgKi8KPiArCj4gKy8qICNkZWZpbmUgREVCVUcgKi8K PiArLyogI2RlZmluZSBUQzM1ODc3NV9ERUJVRyAqLwoKClBsZWFzZSByZW1vdmUgdGhlc2UgZGV2 ZWxvcG1lbnQgbGVmdG92ZXJzLgoKCj4gKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KPiArI2luY2x1 ZGUgPGxpbnV4L2RldmljZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgo+ ICsjaW5jbHVkZSA8bGludXgvaTJjLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KPiAr I2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+Cj4g KyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29u c3VtZXIuaD4KQWxwaGFiZXRpYyBvcmRlci4KPiArCj4gKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlf ZHNpLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiArI2luY2x1ZGUg PGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fZHBfaGVscGVyLmg+ Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX29mLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+ Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2JyaWRnZS5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9wcm9i ZV9oZWxwZXIuaD4KZGl0dG8KPiArCj4gKy8qIFJlZ2lzdGVycyAqLwo+ICsKPiArLyogRFNJIEQt UEhZIExheWVyIFJlZ2lzdGVycyAqLwo+ICsjZGVmaW5lIEQwV19EUEhZQ09OVFRYICAweDAwMDQg IC8qIERhdGEgTGFuZSAwIERQSFkgVHggQ29udHJvbCAqLwo+ICsjZGVmaW5lIENMV19EUEhZQ09O VFJYICAweDAwMjAgIC8qIENsb2NrIExhbmUgRFBIWSBSeCBDb250cm9sICovCj4gKyNkZWZpbmUg RDBXX0RQSFlDT05UUlggIDB4MDAyNCAgLyogRGF0YSBMYW5lIDAgRFBIWSBSeCBDb250cm9sICov Cj4gKyNkZWZpbmUgRDFXX0RQSFlDT05UUlggIDB4MDAyOCAgLyogRGF0YSBMYW5lIDEgRFBIWSBS eCBDb250cm9sICovCj4gKyNkZWZpbmUgRDJXX0RQSFlDT05UUlggIDB4MDAyQyAgLyogRGF0YSBM YW5lIDIgRFBIWSBSeCBDb250cm9sICovCj4gKyNkZWZpbmUgRDNXX0RQSFlDT05UUlggIDB4MDAz MCAgLyogRGF0YSBMYW5lIDMgRFBIWSBSeCBDb250cm9sICovCj4gKyNkZWZpbmUgQ09NX0RQSFlD T05UUlggIDB4MDAzOCAgLyogRFBIWSBSeCBDb21tb24gQ29udHJvbCAqLwo+ICsjZGVmaW5lIENM V19DTlRSTCAgICAgICAweDAwNDAgIC8qIENsb2NrIExhbmUgQ29udHJvbCAqLwo+ICsjZGVmaW5l IEQwV19DTlRSTCAgICAgICAweDAwNDQgIC8qIERhdGEgTGFuZSAwIENvbnRyb2wgKi8KPiArI2Rl ZmluZSBEMVdfQ05UUkwgICAgICAgMHgwMDQ4ICAvKiBEYXRhIExhbmUgMSBDb250cm9sICovCj4g KyNkZWZpbmUgRDJXX0NOVFJMICAgICAgIDB4MDA0QyAgLyogRGF0YSBMYW5lIDIgQ29udHJvbCAq Lwo+ICsjZGVmaW5lIEQzV19DTlRSTCAgICAgICAweDAwNTAgIC8qIERhdGEgTGFuZSAzIENvbnRy b2wgKi8KPiArI2RlZmluZSBERlRNT0RFX0NOVFJMICAgMHgwMDU0ICAvKiBERlQgTW9kZSBDb250 cm9sICovCj4gKwo+ICsvKiBEU0kgUFBJIExheWVyIFJlZ2lzdGVycyAqLwo+ICsjZGVmaW5lIFBQ SV9TVEFSVFBQSSAgICAweDAxMDQgIC8qIFNUQVJUIGNvbnRyb2wgYml0IG9mIFBQSS1UWCBmdW5j dGlvbi4gKi8KPiArI2RlZmluZSBQUElfQlVTWVBQSSAgICAgMHgwMTA4Cj4gKyNkZWZpbmUgUFBJ X0xJTkVJTklUQ05UIDB4MDExMCAgLyogTGluZSBJbml0aWFsaXphdGlvbiBXYWl0IENvdW50ZXIg ICovCj4gKyNkZWZpbmUgUFBJX0xQVFhUSU1FQ05UIDB4MDExNAo+ICsjZGVmaW5lIFBQSV9MQU5F RU5BQkxFICAweDAxMzQgIC8qIEVuYWJsZXMgZWFjaCBsYW5lIGF0IHRoZSBQUEkgbGF5ZXIuICov Cj4gKyNkZWZpbmUgUFBJX1RYX1JYX1RBICAgIDB4MDEzQyAgLyogRFNJIEJ1cyBUdXJuIEFyb3Vu ZCB0aW1pbmcgcGFyYW1ldGVycyAqLwo+ICsKPiArLyogQW5hbG9nIHRpbWVyIGZ1bmN0aW9uIGVu YWJsZSAqLwo+ICsjZGVmaW5lIFBQSV9DTFNfQVRNUiAgICAweDAxNDAgIC8qIERlbGF5IGZvciBD bG9jayBMYW5lIGluIExQUlggICovCj4gKyNkZWZpbmUgUFBJX0QwU19BVE1SICAgIDB4MDE0NCAg LyogRGVsYXkgZm9yIERhdGEgTGFuZSAwIGluIExQUlggKi8KPiArI2RlZmluZSBQUElfRDFTX0FU TVIgICAgMHgwMTQ4ICAvKiBEZWxheSBmb3IgRGF0YSBMYW5lIDEgaW4gTFBSWCAqLwo+ICsjZGVm aW5lIFBQSV9EMlNfQVRNUiAgICAweDAxNEMgIC8qIERlbGF5IGZvciBEYXRhIExhbmUgMiBpbiBM UFJYICovCj4gKyNkZWZpbmUgUFBJX0QzU19BVE1SICAgIDB4MDE1MCAgLyogRGVsYXkgZm9yIERh dGEgTGFuZSAzIGluIExQUlggKi8KPiArI2RlZmluZSBQUElfRDBTX0NMUlNJUE9DT1VOVCAgICAw eDAxNjQKPiArCj4gKyNkZWZpbmUgUFBJX0QxU19DTFJTSVBPQ09VTlQgICAgMHgwMTY4ICAvKiBG b3IgbGFuZSAxICovCj4gKyNkZWZpbmUgUFBJX0QyU19DTFJTSVBPQ09VTlQgICAgMHgwMTZDICAv KiBGb3IgbGFuZSAyICovCj4gKyNkZWZpbmUgUFBJX0QzU19DTFJTSVBPQ09VTlQgICAgMHgwMTcw ICAvKiBGb3IgbGFuZSAzICovCj4gKwo+ICsjZGVmaW5lIENMU19QUkUgICAgICAgICAweDAxODAg IC8qIERpZ2l0YWwgQ291bnRlciBpbnNpZGUgb2YgUEhZIElPICovCj4gKyNkZWZpbmUgRDBTX1BS RSAgICAgICAgIDB4MDE4NCAgLyogRGlnaXRhbCBDb3VudGVyIGluc2lkZSBvZiBQSFkgSU8gKi8K PiArI2RlZmluZSBEMVNfUFJFICAgICAgICAgMHgwMTg4ICAvKiBEaWdpdGFsIENvdW50ZXIgaW5z aWRlIG9mIFBIWSBJTyAqLwo+ICsjZGVmaW5lIEQyU19QUkUgICAgICAgICAweDAxOEMgIC8qIERp Z2l0YWwgQ291bnRlciBpbnNpZGUgb2YgUEhZIElPICovCj4gKyNkZWZpbmUgRDNTX1BSRSAgICAg ICAgIDB4MDE5MCAgLyogRGlnaXRhbCBDb3VudGVyIGluc2lkZSBvZiBQSFkgSU8gKi8KPiArI2Rl ZmluZSBDTFNfUFJFUCAgICAgICAgMHgwMUEwICAvKiBEaWdpdGFsIENvdW50ZXIgaW5zaWRlIG9m IFBIWSBJTyAqLwo+ICsjZGVmaW5lIEQwU19QUkVQICAgICAgICAweDAxQTQgIC8qIERpZ2l0YWwg Q291bnRlciBpbnNpZGUgb2YgUEhZIElPICovCj4gKyNkZWZpbmUgRDFTX1BSRVAgICAgICAgIDB4 MDFBOCAgLyogRGlnaXRhbCBDb3VudGVyIGluc2lkZSBvZiBQSFkgSU8gKi8KPiArI2RlZmluZSBE MlNfUFJFUCAgICAgICAgMHgwMUFDICAvKiBEaWdpdGFsIENvdW50ZXIgaW5zaWRlIG9mIFBIWSBJ TyAqLwo+ICsjZGVmaW5lIEQzU19QUkVQICAgICAgICAweDAxQjAgIC8qIERpZ2l0YWwgQ291bnRl ciBpbnNpZGUgb2YgUEhZIElPICovCj4gKyNkZWZpbmUgQ0xTX1pFUk8gICAgICAgIDB4MDFDMCAg LyogRGlnaXRhbCBDb3VudGVyIGluc2lkZSBvZiBQSFkgSU8gKi8KPiArI2RlZmluZSBEMFNfWkVS TyAgICAgICAgMHgwMUM0ICAvKiBEaWdpdGFsIENvdW50ZXIgaW5zaWRlIG9mIFBIWSBJTyAqLwo+ ICsjZGVmaW5lIEQxU19aRVJPICAgICAgICAweDAxQzggIC8qIERpZ2l0YWwgQ291bnRlciBpbnNp ZGUgb2YgUEhZIElPICovCj4gKyNkZWZpbmUgRDJTX1pFUk8gICAgICAgIDB4MDFDQyAgLyogRGln aXRhbCBDb3VudGVyIGluc2lkZSBvZiBQSFkgSU8gKi8KPiArI2RlZmluZSBEM1NfWkVSTyAgICAg ICAgMHgwMUQwICAvKiBEaWdpdGFsIENvdW50ZXIgaW5zaWRlIG9mIFBIWSBJTyAqLwo+ICsKPiAr I2RlZmluZSBQUElfQ0xSRkxHICAgICAgMHgwMUUwICAvKiBQUkUgQ291bnRlcnMgaGFzIHJlYWNo ZWQgc2V0IHZhbHVlcyAqLwo+ICsjZGVmaW5lIFBQSV9DTFJTSVBPICAgICAweDAxRTQgIC8qIENs ZWFyIFNJUE8gdmFsdWVzLCBTbGF2ZSBtb2RlIHVzZSBvbmx5LiAqLwo+ICsjZGVmaW5lIEhTVElN RU9VVCAgICAgICAweDAxRjAgIC8qIEhTIFJ4IFRpbWUgT3V0IENvdW50ZXIgKi8KPiArI2RlZmlu ZSBIU1RJTUVPVVRFTkFCTEUgMHgwMUY0ICAvKiBFbmFibGUgSFMgUnggVGltZSBPdXQgQ291bnRl ciAqLwo+ICsjZGVmaW5lIERTSV9TVEFSVERTSSAgICAweDAyMDQgIC8qIFNUQVJUIGNvbnRyb2wg Yml0IG9mIERTSS1UWCBmdW5jdGlvbiAqLwo+ICsjZGVmaW5lIERTSV9CVVNZRFNJICAgICAweDAy MDgKPiArI2RlZmluZSBEU0lfTEFORUVOQUJMRSAgMHgwMjEwICAvKiBFbmFibGVzIGVhY2ggbGFu ZSBhdCB0aGUgUHJvdG9jb2wgbGF5ZXIuICovCj4gKyNkZWZpbmUgRFNJX0xBTkVTVEFUVVMwIDB4 MDIxNCAgLyogRGlzcGxheXMgbGFuZSBpcyBpbiBIUyBSWCBtb2RlLiAqLwo+ICsjZGVmaW5lIERT SV9MQU5FU1RBVFVTMSAweDAyMTggIC8qIERpc3BsYXlzIGxhbmUgaXMgaW4gVUxQUyBvciBTVE9Q IHN0YXRlICovCj4gKwo+ICsjZGVmaW5lIERTSV9JTlRTVEFUVVMgICAweDAyMjAgIC8qIEludGVy cnVwdCBTdGF0dXMgKi8KPiArI2RlZmluZSBEU0lfSU5UTUFTSyAgICAgMHgwMjI0ICAvKiBJbnRl cnJ1cHQgTWFzayAqLwo+ICsjZGVmaW5lIERTSV9JTlRDTFIgICAgICAweDAyMjggIC8qIEludGVy cnVwdCBDbGVhciAqLwo+ICsjZGVmaW5lIERTSV9MUFRYVE8gICAgICAweDAyMzAgIC8qIExvdyBQ b3dlciBUeCBUaW1lIE91dCBDb3VudGVyICovCj4gKwo+ICsjZGVmaW5lIERTSUVSUkNOVCAgICAg ICAweDAzMDAgIC8qIERTSSBFcnJvciBDb3VudCAqLwo+ICsjZGVmaW5lIEFQTENUUkwgICAgICAg ICAweDA0MDAgIC8qIEFwcGxpY2F0aW9uIExheWVyIENvbnRyb2wgKi8KPiArI2RlZmluZSBSRFBL VExOICAgICAgICAgMHgwNDA0ICAvKiBDb21tYW5kIFJlYWQgUGFja2V0IExlbmd0aCAqLwo+ICsK PiArI2RlZmluZSBWUENUUkwgICAgICAgICAgMHgwNDUwICAvKiBWaWRlbyBQYXRoIENvbnRyb2wg Ki8KPiArI2RlZmluZSBIVElNMSAgICAgICAgICAgMHgwNDU0ICAvKiBIb3Jpem9udGFsIFRpbWlu ZyBDb250cm9sIDEgKi8KPiArI2RlZmluZSBIVElNMiAgICAgICAgICAgMHgwNDU4ICAvKiBIb3Jp em9udGFsIFRpbWluZyBDb250cm9sIDIgKi8KPiArI2RlZmluZSBWVElNMSAgICAgICAgICAgMHgw NDVDICAvKiBWZXJ0aWNhbCBUaW1pbmcgQ29udHJvbCAxICovCj4gKyNkZWZpbmUgVlRJTTIgICAg ICAgICAgIDB4MDQ2MCAgLyogVmVydGljYWwgVGltaW5nIENvbnRyb2wgMiAqLwo+ICsjZGVmaW5l IFZGVUVOICAgICAgICAgICAweDA0NjQgIC8qIFZpZGVvIEZyYW1lIFRpbWluZyBVcGRhdGUgRW5h YmxlICovCj4gKwo+ICsvKiBNdXggSW5wdXQgU2VsZWN0IGZvciBMVkRTIExJTksgSW5wdXQgKi8K PiArI2RlZmluZSBMVk1YMDAwMyAgICAgICAgMHgwNDgwICAvKiBCaXQgMCB0byAzICovCj4gKyNk ZWZpbmUgTFZNWDA0MDcgICAgICAgIDB4MDQ4NCAgLyogQml0IDQgdG8gNyAqLwo+ICsjZGVmaW5l IExWTVgwODExICAgICAgICAweDA0ODggIC8qIEJpdCA4IHRvIDExICovCj4gKyNkZWZpbmUgTFZN WDEyMTUgICAgICAgIDB4MDQ4QyAgLyogQml0IDEyIHRvIDE1ICovCj4gKyNkZWZpbmUgTFZNWDE2 MTkgICAgICAgIDB4MDQ5MCAgLyogQml0IDE2IHRvIDE5ICovCj4gKyNkZWZpbmUgTFZNWDIwMjMg ICAgICAgIDB4MDQ5NCAgLyogQml0IDIwIHRvIDIzICovCj4gKyNkZWZpbmUgTFZNWDI0MjcgICAg ICAgIDB4MDQ5OCAgLyogQml0IDI0IHRvIDI3ICovCj4gKwo+ICsjZGVmaW5lIExWQ0ZHICAgICAg ICAgICAweDA0OUMgIC8qIExWRFMgQ29uZmlndXJhdGlvbiAgKi8KPiArI2RlZmluZSBMVlBIWTAg ICAgICAgICAgMHgwNEEwICAvKiBMVkRTIFBIWSAwICovCj4gKyNkZWZpbmUgTFZQSFkxICAgICAg ICAgIDB4MDRBNCAgLyogTFZEUyBQSFkgMSAqLwo+ICsjZGVmaW5lIFNZU1NUQVQgICAgICAgICAw eDA1MDAgIC8qIFN5c3RlbSBTdGF0dXMgICovCj4gKyNkZWZpbmUgU1lTUlNUICAgICAgICAgIDB4 MDUwNCAgLyogU3lzdGVtIFJlc2V0ICAqLwo+ICsvKiBHUElPIFJlZ2lzdGVycyAqLwo+ICsjZGVm aW5lIEdQSU9DICAgICAgICAgICAweDA1MjAgIC8qIEdQSU8gQ29udHJvbCAgKi8KPiArI2RlZmlu ZSBHUElPTyAgICAgICAgICAgMHgwNTI0ICAvKiBHUElPIE91dHB1dCAgKi8KPiArI2RlZmluZSBH UElPSSAgICAgICAgICAgMHgwNTI4ICAvKiBHUElPIElucHV0ICAqLwo+ICsKPiArLyogSTJDIFJl Z2lzdGVycyAqLwo+ICsjZGVmaW5lIEkyQ1RJTUNUUkwgICAgICAweDA1NDAgIC8qIEkyQyBJRiBU aW1pbmcgYW5kIEVuYWJsZSBDb250cm9sICovCj4gKyNkZWZpbmUgSTJDTUFERFIgICAgICAgIDB4 MDU0NCAgLyogSTJDIE1hc3RlciBBZGRyZXNzaW5nICovCj4gKyNkZWZpbmUgV0RBVEFRICAgICAg ICAgIDB4MDU0OCAgLyogV3JpdGUgRGF0YSBRdWV1ZSAqLwo+ICsjZGVmaW5lIFJEQVRBUSAgICAg ICAgICAweDA1NEMgIC8qIFJlYWQgRGF0YSBRdWV1ZSAqLwo+ICsKPiArLyogQ2hpcCBJRCBhbmQg UmV2aXNpb24gSUQgUmVnaXN0ZXIgKi8KPiArI2RlZmluZSBJRFJFRyAgICAgICAgICAgMHgwNTgw Cj4gKwo+ICsjZGVmaW5lIFRDMzU4Nzc1WEJHX0lEICAweDAwMDA3NTAwCj4gKwo+ICsvKiBEZWJ1 ZyBSZWdpc3RlcnMgKi8KPiArI2RlZmluZSBERUJVRzAwICAgICAgICAgMHgwNUEwICAvKiBEZWJ1 ZyAqLwo+ICsjZGVmaW5lIERFQlVHMDEgICAgICAgICAweDA1QTQgIC8qIExWRFMgRGF0YSAqLwo+ ICsKPiArI2RlZmluZSBEU0lfQ0xFTl9CSVQJCUJJVCgwKQo+ICsjZGVmaW5lIERJVklERV9CWV8z CQkzIC8qIFBDTEs9RENMSy8zICovCj4gKyNkZWZpbmUgTFZDRkdfTFZFTl9CSVQJCUJJVCgwKQo+ ICsKPiArI2RlZmluZSBMMEVOIEJJVCgxKQo+ICsKPiArI2RlZmluZSBUQzM1ODc3NV9WUENUUkxf VlNERUxBWV9fTUFTSwkweDNGRjAwMDAwCj4gKyNkZWZpbmUgVEMzNTg3NzVfVlBDVFJMX1ZTREVM QVlfX1NISUZUCTIwCj4gK3N0YXRpYyBpbmxpbmUgdWludDMyX3QgVEMzNTg3NzVfVlBDVFJMX1ZT REVMQVkodWludDMyX3QgdmFsKQoKClVzZSB1MzIgaGVyZSBhbmQgYmVsb3csIHVuaXQzMl90IGlz IG1haW5seSBmb3IgdXNlcnNwYWNlIGludGVyYWN0aW9ucy4KCgo+ICt7Cj4gKwlyZXR1cm4gKCh2 YWwpIDw8IFRDMzU4Nzc1X1ZQQ1RSTF9WU0RFTEFZX19TSElGVCkgJgo+ICsJCQlUQzM1ODc3NV9W UENUUkxfVlNERUxBWV9fTUFTSzsKPiArfQo+ICsKPiArI2RlZmluZSBUQzM1ODc3NV9WUENUUkxf T1BYTEZNVF9fTUFTSwkweDAwMDAwMTAwCj4gKyNkZWZpbmUgVEMzNTg3NzVfVlBDVFJMX09QWExG TVRfX1NISUZUCTgKPiArc3RhdGljIGlubGluZSB1aW50MzJfdCBUQzM1ODc3NV9WUENUUkxfT1BY TEZNVCh1aW50MzJfdCB2YWwpCj4gK3sKPiArCXJldHVybiAoKHZhbCkgPDwgVEMzNTg3NzVfVlBD VFJMX09QWExGTVRfX1NISUZUKSAmCj4gKwkJCVRDMzU4Nzc1X1ZQQ1RSTF9PUFhMRk1UX19NQVNL Owo+ICt9Cj4gKwo+ICsjZGVmaW5lIFRDMzU4Nzc1X1ZQQ1RSTF9NU0ZfX01BU0sJMHgwMDAwMDAw MQo+ICsjZGVmaW5lIFRDMzU4Nzc1X1ZQQ1RSTF9NU0ZfX1NISUZUCTAKPiArc3RhdGljIGlubGlu ZSB1aW50MzJfdCBUQzM1ODc3NV9WUENUUkxfTVNGKHVpbnQzMl90IHZhbCkKPiArewo+ICsJcmV0 dXJuICgodmFsKSA8PCBUQzM1ODc3NV9WUENUUkxfTVNGX19TSElGVCkgJgo+ICsJCQlUQzM1ODc3 NV9WUENUUkxfTVNGX19NQVNLOwo+ICt9Cj4gKwo+ICsjZGVmaW5lIFRDMzU4Nzc1X0xWQ0ZHX1BD TEtESVZfX01BU0sJMHgwMDAwMDBmMAo+ICsjZGVmaW5lIFRDMzU4Nzc1X0xWQ0ZHX1BDTEtESVZf X1NISUZUCTQKPiArc3RhdGljIGlubGluZSB1aW50MzJfdCBUQzM1ODc3NV9MVkNGR19QQ0xLRElW KHVpbnQzMl90IHZhbCkKPiArewo+ICsJcmV0dXJuICgodmFsKSA8PCBUQzM1ODc3NV9MVkNGR19Q Q0xLRElWX19TSElGVCkgJgo+ICsJCQlUQzM1ODc3NV9MVkNGR19QQ0xLRElWX19NQVNLOwo+ICt9 Cj4gKwo+ICsjZGVmaW5lIFRDMzU4Nzc1X0xWQ0ZHX0xWRExJTktfX01BU0sgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDAwMDAwMgo+ICsjZGVmaW5lIFRDMzU4Nzc1X0xWQ0ZHX0xWRExJTktf X1NISUZUICAgICAgICAgICAgICAgICAgICAgICAgMAo+ICtzdGF0aWMgaW5saW5lIHVpbnQzMl90 IFRDMzU4Nzc1X0xWQ0ZHX0xWRExJTksodWludDMyX3QgdmFsKQo+ICt7Cj4gKwlyZXR1cm4gKCh2 YWwpIDw8IFRDMzU4Nzc1X0xWQ0ZHX0xWRExJTktfX1NISUZUKSAmCj4gKwkJCVRDMzU4Nzc1X0xW Q0ZHX0xWRExJTktfX01BU0s7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnX3Nl cXVlbmNlIHRjX2ZpeGVkX3JlZ2lzdGVyc1tdID0gewo+ICsJeyAweDAxM0MsIDB4MDAwNDAwMDYg fSwKPiArCXsgMHgwMTE0LCAweDAwMDAwMDA0IH0sCj4gKwl7IDB4MDE2NCwgMHgwMDAwMDAwMyB9 LAo+ICsJeyAweDAxNjgsIDB4MDAwMDAwMDMgfSwKPiArCXsgMHgwMTZDLCAweDAwMDAwMDAzIH0s Cj4gKwl7IDB4MDE3MCwgMHgwMDAwMDAwMyB9LAoKCnVzZSBtYWNyb3MgaW5zdGVhZCBvZiBtYWdp YyBudW1iZXJzLgoKCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ19zZXF1ZW5j ZSB0Y192ZXNhX2RhdGFfZm9ybWF0X3JlZ2lzdGVyc1tdID0gewo+ICsJeyAweDA0ODAsIDB4MDMw MjAxMDAgfSwKPiArCXsgMHgwNDg0LCAweDA4MDUwNzA0IH0sCj4gKwl7IDB4MDQ4OCwgMHgwRjBF MEEwOSB9LAo+ICsJeyAweDA0OEMsIDB4MTAwRDBDMEIgfSwKPiArCXsgMHgwNDkwLCAweDEyMTEx NzE2IH0sCj4gKwl7IDB4MDQ5NCwgMHgxQjE1MTQxMyB9LAo+ICsJeyAweDA0OTgsIDB4MDYxQTE5 MTggfSwKZGl0dG8KPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcmVndWxh dG9yX25hbWVzW10gPSB7Cj4gKwkidmRkIiwKPiArCSJ2ZGRpbyIKPiArfTsKPiArCj4gK3N0cnVj dCB0Y19kYXRhIHsKPiArCXN0cnVjdCBpMmNfY2xpZW50CSppMmM7Cj4gKwo+ICsJc3RydWN0IGRl dmljZQkJKmRldjsKPiArCXN0cnVjdCByZWdtYXAJCSpyZWdtYXA7Cj4gKwo+ICsJc3RydWN0IGRy bV9icmlkZ2UJYnJpZGdlOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IJY29ubmVjdG9yOwo+ICsJ c3RydWN0IGRybV9wYW5lbAkqcGFuZWw7Cj4gKwo+ICsJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1 cyBzdGF0dXM7CnVudXNlZCBmaWVsZAo+ICsJc3RydWN0IGRldmljZV9ub2RlICpob3N0X25vZGU7 Cj4gKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2k7Cj4gKwl1OCBudW1fZHNpX2xhbmVzOwo+ ICsKPiArCXN0cnVjdCByZWd1bGF0b3JfYnVsa19kYXRhIHN1cHBsaWVzW0FSUkFZX1NJWkUocmVn dWxhdG9yX25hbWVzKV07Cj4gKwlzdHJ1Y3QgZ3Bpb19kZXNjCSpyZXNldF9ncGlvOwo+ICsJc3Ry dWN0IGdwaW9fZGVzYwkqc3RieV9ncGlvOwo+ICsJdTMyICAgICAgICAgICAgICAgICAgICAgcmV2 Owo+ICsJdTggICAgICAgICAgICAgICAgICAgICAgZHVhbF9saW5rOyAvKiBzaW5nbGUtbGluayBv ciBkdWFsLWxpbmsgKi8KPiArCXU4CQkJZGF0YV9mb3JtYXQ7IC8qIFZFU0Egb3IgSkVJREEgKi8K PiArfTsKPiArCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IHRjX2RhdGEgKmJyaWRnZV90b190Yyhz dHJ1Y3QgZHJtX2JyaWRnZSAqYikKPiArewo+ICsJcmV0dXJuIGNvbnRhaW5lcl9vZihiLCBzdHJ1 Y3QgdGNfZGF0YSwgYnJpZGdlKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgdGNf ZGF0YSAqY29ubmVjdG9yX3RvX3RjKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjKQo+ICt7Cj4gKwly ZXR1cm4gY29udGFpbmVyX29mKGMsIHN0cnVjdCB0Y19kYXRhLCBjb25uZWN0b3IpOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgdm9pZCB0Y19icmlkZ2VfcHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKQo+ICt7Cj4gKwlzdHJ1Y3QgdGNfZGF0YSAqdGMgPSBicmlkZ2VfdG9fdGMoYnJpZGdl KTsKPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZ0Yy0+ZHNpLT5kZXY7Cj4gKwlpbnQgcmV0Owo+ ICsKPiArCXJldCA9IHJlZ3VsYXRvcl9idWxrX2VuYWJsZShBUlJBWV9TSVpFKHRjLT5zdXBwbGll cyksIHRjLT5zdXBwbGllcyk7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJCWRldl9lcnIoZGV2LCAi cmVndWxhdG9yIGVuYWJsZSBmYWlsZWQsICVkXG4iLCByZXQpOwo+ICsJCXJldHVybjsKPiArCX0K PiArCW1kZWxheSgxMCk7Cj4gKwo+ICsJZ3Bpb2Rfc2V0X3ZhbHVlKHRjLT5zdGJ5X2dwaW8sIDAp Owo+ICsJbWRlbGF5KDEwKTsKPiArCj4gKwlncGlvZF9zZXRfdmFsdWUodGMtPnJlc2V0X2dwaW8s IDApOwo+ICsJbmRlbGF5KDUwKTsKPiArCj4gKwlkcm1fcGFuZWxfcHJlcGFyZSh0Yy0+cGFuZWwp Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCB0Y19icmlkZ2VfZGlzYWJsZShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlKQo+ICt7Cj4gKwlzdHJ1Y3QgdGNfZGF0YSAqdGMgPSBicmlkZ2VfdG9fdGMo YnJpZGdlKTsKPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZ0Yy0+ZHNpLT5kZXY7Cj4gKwlpbnQg cmV0Owo+ICsKPiArCXJldCA9IHJlZ3VsYXRvcl9idWxrX2Rpc2FibGUoQVJSQVlfU0laRSh0Yy0+ c3VwcGxpZXMpLCB0Yy0+c3VwcGxpZXMpOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJZGV2X2Vycihk ZXYsICJyZWd1bGF0b3IgZGlzYWJsZSBmYWlsZWQsICVkXG4iLCByZXQpOwo+ICsJbWRlbGF5KDEw KTsKPiArCj4gKwlncGlvZF9zZXRfdmFsdWUodGMtPnN0YnlfZ3BpbywgMSk7Cj4gKwltZGVsYXko MTApOwo+ICsKPiArCWdwaW9kX3NldF92YWx1ZSh0Yy0+cmVzZXRfZ3BpbywgMSk7Cj4gKwluZGVs YXkoNTApOwo+ICsKPiArCWRybV9wYW5lbF9kaXNhYmxlKHRjLT5wYW5lbCk7CgpJIHN1c3BlY3Qg dGhlIG9yZGVyIHNob3VsZCBiZSBkaWZmZXJlbnQgLSBpZSByZXZlcnNlIHRvIHRoZSBvbmUgcHJl X2VuYWJsZS4KCk1vcmVvdmVyIHNpbmNlIGl0IHJldmVydHMgcHJlX2VuYWJsZSBpdCBzaG91bGQg YmUgcHV0IGludG8gcG9zdF9kaXNhYmxlCihleGNlcHQgZHJtX3BhbmVsX2Rpc2FibGUpLgoKPiAr fQo+ICsKPiArc3RhdGljIHZvaWQgdGNfYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlKQo+ICt7Cj4gKwlzdHJ1Y3QgdGNfZGF0YSAqdGMgPSBicmlkZ2VfdG9fdGMo YnJpZGdlKTsKPiArCj4gKwlkcm1fcGFuZWxfdW5wcmVwYXJlKHRjLT5wYW5lbCk7Cj4gK30KPiAr Cj4gKyNpZmRlZiBUQzM1ODc3NV9ERUJVRwo+ICtzdGF0aWMgdTMyIGQybF9yZWFkKHN0cnVjdCB0 Y19kYXRhICp0YywgdTE2IHJlZykKPiArewo+ICsJaW50IHJldDsKPiArCXUzMiBkYXRhOwo+ICsK PiArCXJldCA9IHJlZ21hcF9idWxrX3JlYWQodGMtPnJlZ21hcCwgcmVnLCAmZGF0YSwgMSk7Cj4g KwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcHJfZGVidWcoImQybDogSTJDIDog cmVnOiUwNHggdmFsdWU6JTA4eFxuIiwgcmVnLCBkYXRhKTsKPiArCj4gKwlyZXR1cm4gZGF0YTsK PiArfQo+ICsjZW5kaWYKCgpJIGd1ZXNzIHRoaXMgbGVmdG92ZXIgY2FuIGJlIHJlbW92ZWQgYXMg d2VsbC4KCgo+ICsKPiArc3RhdGljIGludCBkMmxfd3JpdGUoc3RydWN0IHRjX2RhdGEgKnRjLCB1 MTYgcmVnLCB1MzIgZGF0YSkKPiArewo+ICsJaW50IHJldCA9IDA7Cj4gKwo+ICsJcmV0ID0gcmVn bWFwX2J1bGtfd3JpdGUodGMtPnJlZ21hcCwgcmVnLCAodTMyW10pIHtkYXRhfSwgMSk7Cj4gKwo+ ICsjaWZkZWYgVEMzNTg3NzVfREVCVUcKPiArCWQybF9yZWFkKHRjLCByZWcpOwo+ICsjZW5kaWYK PiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHRjX2JyaWRnZV9lbmFibGUo c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArewo+ICsJc3RydWN0IHRjX2RhdGEgKnRjID0g YnJpZGdlX3RvX3RjKGJyaWRnZSk7Cj4gKwlpbnQgcmV0Owo+ICsJdTMyIGhicHIsIGhwdywgaHRp bWUxLCBoZnByLCBoc2l6ZSwgaHRpbWUyOwo+ICsJdTMyIHZicHIsIHZwdywgdnRpbWUxLCB2ZnBy LCB2c2l6ZSwgdnRpbWUyOwo+ICsJdTMyIHZhbCA9IDA7Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZTsKPiArCj4gKwltb2RlID0gJmJyaWRnZS0+ZW5jb2Rlci0+Y3J0Yy0+c3RhdGUt PmFkanVzdGVkX21vZGU7Cj4gKwo+ICsJaGJwciA9IDA7Cj4gKwlocHcgID0gbW9kZS0+aHN5bmNf ZW5kIC0gbW9kZS0+aHN5bmNfc3RhcnQ7Cj4gKwl2YnByID0gMDsKPiArCXZwdyAgPSBtb2RlLT52 c3luY19lbmQgLSBtb2RlLT52c3luY19zdGFydDsKPiArCj4gKwlodGltZTEgPSAoaGJwciA8PCAx NikgKyBocHc7Cj4gKwl2dGltZTEgPSAodmJwciA8PCAxNikgKyB2cHc7Cj4gKwo+ICsJaGZwciA9 IG1vZGUtPmhzeW5jX3N0YXJ0IC0gbW9kZS0+aGRpc3BsYXk7Cj4gKwloc2l6ZSA9IG1vZGUtPmhk aXNwbGF5Owo+ICsJdmZwciA9IG1vZGUtPnZzeW5jX3N0YXJ0IC0gbW9kZS0+dmRpc3BsYXk7Cj4g Kwl2c2l6ZSA9IG1vZGUtPnZkaXNwbGF5Owo+ICsKPiArCWh0aW1lMiA9IChoZnByIDw8IDE2KSAr IGhzaXplOwo+ICsJdnRpbWUyID0gKHZmcHIgPDwgMTYpICsgdnNpemU7Cj4gKwo+ICsJcmV0ID0g cmVnbWFwX3JlYWQodGMtPnJlZ21hcCwgSURSRUcsICZ0Yy0+cmV2KTsKPiArCWlmIChyZXQpIHsK PiArCQlkZXZfZXJyKHRjLT5kZXYsICJjYW4gbm90IHJlYWQgZGV2aWNlIElEOiAlZFxuIiwgcmV0 KTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwlwcl9kZWJ1ZygidGMgSURSRUcgJTA0eCBSZXYuICUw OHhcbiIsIElEUkVHLCB0Yy0+cmV2KTsKPiArCj4gKwlkMmxfd3JpdGUodGMsIFNZU1JTVCwgMHgw MDAwMDBGRik7Cj4gKwltZGVsYXkoMzApOwo+ICsKPiArCXJldCA9IHJlZ21hcF9yZWdpc3Rlcl9w YXRjaCh0Yy0+cmVnbWFwLAo+ICsJCQkJICAgIHRjX2ZpeGVkX3JlZ2lzdGVycywKPiArCQkJCSAg ICBBUlJBWV9TSVpFKHRjX2ZpeGVkX3JlZ2lzdGVycykpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1 cm47Cj4gKwo+ICsJdmFsID0gKChMMEVOIDw8IHRjLT5udW1fZHNpX2xhbmVzKSAtIEwwRU4pIHwg RFNJX0NMRU5fQklUOwo+ICsJZDJsX3dyaXRlKHRjLCBQUElfTEFORUVOQUJMRSwgdmFsKTsKPiAr CWQybF93cml0ZSh0YywgRFNJX0xBTkVFTkFCTEUsIHZhbCk7Cj4gKwo+ICsJZDJsX3dyaXRlKHRj LCBQUElfU1RBUlRQUEksIDB4MDAwMDAwMDEpOwo+ICsJZDJsX3dyaXRlKHRjLCBEU0lfU1RBUlRE U0ksIDB4MDAwMDAwMDEpOwo+ICsKPiArCXZhbCA9IFRDMzU4Nzc1X1ZQQ1RSTF9WU0RFTEFZKDIx KTsgLy9UT0RPIDogdG8gc2V0IHRoZSBkeW5hbWljIHZhbHVlCj4gKwo+ICsJaWYgKHRjLT5jb25u ZWN0b3IuZGlzcGxheV9pbmZvLmJwYyA9PSA4KSB7LyogUkdCODg4ICovCj4gKwkJdmFsIHw9IFRD MzU4Nzc1X1ZQQ1RSTF9PUFhMRk1UKDEpOwo+ICsJCWQybF93cml0ZSh0YywgVlBDVFJMLCB2YWwp Owo+ICsJfSBlbHNlIHsJCQkJLyogUkdCNjY2ICovCj4gKwkJdmFsIHw9IFRDMzU4Nzc1X1ZQQ1RS TF9NU0YoMSk7Cj4gKwkJZDJsX3dyaXRlKHRjLCBWUENUUkwsIHZhbCk7Cj4gKwl9Cj4gKwo+ICsJ ZDJsX3dyaXRlKHRjLCBIVElNMSwgaHRpbWUxKTsKPiArCWQybF93cml0ZSh0YywgVlRJTTEsIHZ0 aW1lMSk7Cj4gKwlkMmxfd3JpdGUodGMsIEhUSU0yLCBodGltZTIpOwo+ICsJZDJsX3dyaXRlKHRj LCBWVElNMiwgdnRpbWUyKTsKPiArCj4gKwlkMmxfd3JpdGUodGMsIFZGVUVOLCAweDAwMDAwMDAx KTsKPiArCWQybF93cml0ZSh0YywgU1lTUlNULCAweDAwMDAwMDA0KTsKPiArCWQybF93cml0ZSh0 YywgTFZQSFkwLCAweDAwMDQwMDA2KTsKPiArCj4gKwlpZiAodGMtPmRhdGFfZm9ybWF0KSB7IC8q IERhdGEgRm9ybWF0IFZFU0E9MCAsIEpFSURBPTEgKi8KPiArCQlyZXQgPSByZWdtYXBfcmVnaXN0 ZXJfcGF0Y2gKPiArCQkJKHRjLT5yZWdtYXAsCj4gKwkJCSB0Y192ZXNhX2RhdGFfZm9ybWF0X3Jl Z2lzdGVycywKPiArCQkJIEFSUkFZX1NJWkUodGNfdmVzYV9kYXRhX2Zvcm1hdF9yZWdpc3RlcnMp KTsKPiArCQlpZiAocmV0KQo+ICsJCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJZDJsX3dyaXRlKHRj LCBWRlVFTiwgMHgwMDAwMDAwMSk7Cj4gKwo+ICsJdmFsID0gVEMzNTg3NzVfTFZDRkdfUENMS0RJ VihESVZJREVfQllfMykgfCBMVkNGR19MVkVOX0JJVDsKPiArCWlmICh0Yy0+ZHVhbF9saW5rKQo+ ICsJCXZhbCB8PSBUQzM1ODc3NV9MVkNGR19MVkRMSU5LKDEpOwo+ICsKPiArCWQybF93cml0ZSh0 YywgTFZDRkcsIHZhbCk7Cj4gKwo+ICsJZHJtX3BhbmVsX2VuYWJsZSh0Yy0+cGFuZWwpOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgaW50IHRjX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IHRjX2RhdGEgKnRjID0gY29ubmVjdG9y X3RvX3RjKGNvbm5lY3Rvcik7Cj4gKwlzdHJ1Y3QgZWRpZCAqZWRpZDsKPiArCXVuc2lnbmVkIGlu dCBjb3VudDsKPiArCj4gKwlpZiAodGMtPnBhbmVsICYmIHRjLT5wYW5lbC0+ZnVuY3MgJiYgdGMt PnBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKSB7Cj4gKwkJY291bnQgPSB0Yy0+cGFuZWwtPmZ1bmNz LT5nZXRfbW9kZXModGMtPnBhbmVsLCBjb25uZWN0b3IpOwo+ICsJCWlmIChjb3VudCA+IDApCj4g KwkJCXJldHVybiBjb3VudDsKPiArCX0KPiArCj4gKwllZGlkID0gZHJtX2dldF9lZGlkKGNvbm5l Y3RvciwgdGMtPmkyYy0+YWRhcHRlcik7Cj4gKwlpZiAoIWVkaWQpCj4gKwkJcmV0dXJuIDA7Cj4g Kwo+ICsJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQp Owo+ICsJY291bnQgPSBkcm1fYWRkX2VkaWRfbW9kZXMoY29ubmVjdG9yLCBlZGlkKTsKPiArCWtm cmVlKGVkaWQpOwo+ICsKPiArCXJldHVybiBjb3VudDsKPiArfQo+ICsKPiArc3RhdGljIGludCB0 Y19jb25uZWN0b3JfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ ICsJCQkJICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCj4gK3sKPiArCXN0cnVjdCB0 Y19kYXRhICp0YyA9IGNvbm5lY3Rvcl90b190Yyhjb25uZWN0b3IpOwo+ICsKPiArCS8qIE1heGlt dW0gcGl4ZWwgY2xvY2sgc3BlZWQgMTM1TUh6LXNpbmdsZS1saW5rLzI3ME1Iei1kdWFsLWxpbmsg Ki8KPiArCWlmICgobW9kZS0+Y2xvY2sgPiAxMzUwMDAgJiYgdGMtPmR1YWxfbGluayA9PSAwKSB8 fAo+ICsJICAgIChtb2RlLT5jbG9jayA+IDI3MDAwMCAmJiB0Yy0+ZHVhbF9saW5rID09IDEpKQo+ ICsJCXJldHVybiBNT0RFX0NMT0NLX0hJR0g7Cj4gKwo+ICsJcmV0dXJuIE1PREVfT0s7Cj4gK30K PiArCj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKgo+ICt0Y19jb25uZWN0b3JfYmVzdF9l bmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCB0 Y19kYXRhICp0YyA9IGNvbm5lY3Rvcl90b190Yyhjb25uZWN0b3IpOwo+ICsKPiArCXJldHVybiB0 Yy0+YnJpZGdlLmVuY29kZXI7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9oZWxwZXJfZnVuY3MgdGNfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyA9IHsKPiArCS5n ZXRfbW9kZXMgPSB0Y19jb25uZWN0b3JfZ2V0X21vZGVzLAo+ICsJLm1vZGVfdmFsaWQgPSB0Y19j b25uZWN0b3JfbW9kZV92YWxpZCwKPiArCS5iZXN0X2VuY29kZXIgPSB0Y19jb25uZWN0b3JfYmVz dF9lbmNvZGVyLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9y X2Z1bmNzIHRjX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiArCS5maWxsX21vZGVzID0gZHJtX2hlbHBl cl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAo+ICsJLmRlc3Ryb3kgPSBkcm1fY29ubmVj dG9yX2NsZWFudXAsCj4gKwkucmVzZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVz ZXQsCj4gKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5l Y3Rvcl9kdXBsaWNhdGVfc3RhdGUsCj4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRv bWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKPiArfTsKPiArCj4gK2ludCB0YzM1 ODc3NV9wYXJzZV9kdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBzdHJ1Y3QgdGNfZGF0YSAqdGMp Cj4gK3sKPiArCXUzMiBudW1fbGFuZXM7Cj4gKwl1OCBkdWFsX2xpbmssIGRhdGFfZm9ybWF0Owo+ ICsKPiArCW9mX3Byb3BlcnR5X3JlYWRfdTgobnAsICJ0YyxkdWFsLWxpbmsiLCAmZHVhbF9saW5r KTsKPiArCW9mX3Byb3BlcnR5X3JlYWRfdTgobnAsICJ0YyxkYXRhLWZvcm1hdCIsICZkYXRhX2Zv cm1hdCk7Cj4gKwlvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgInRjLGRzaS1sYW5lcyIsICZudW1f bGFuZXMpOwo+ICsKPiArCWlmIChudW1fbGFuZXMgPCAxIHx8IG51bV9sYW5lcyA+IDQpCj4gKwkJ cmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJdGMtPm51bV9kc2lfbGFuZXMgPSBudW1fbGFuZXM7Cj4g Kwl0Yy0+ZHVhbF9saW5rID0gZHVhbF9saW5rOwo+ICsJdGMtPmRhdGFfZm9ybWF0ID0gZGF0YV9m b3JtYXQ7Cj4gKwo+ICsJdGMtPmhvc3Rfbm9kZSA9IG9mX2dyYXBoX2dldF9yZW1vdGVfbm9kZShu cCwgMCwgMCk7Cj4gKwlpZiAoIXRjLT5ob3N0X25vZGUpCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4g Kwo+ICsJb2Zfbm9kZV9wdXQodGMtPmhvc3Rfbm9kZSk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30K PiArCj4gK2ludCB0YzM1ODc3NV9hdHRhY2hfZHNpKHN0cnVjdCB0Y19kYXRhICp0YykKPiArewo+ ICsJc3RydWN0IGRldmljZSAqZGV2ID0gJnRjLT5pMmMtPmRldjsKPiArCXN0cnVjdCBtaXBpX2Rz aV9ob3N0ICpob3N0Owo+ICsJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpOwo+ICsJaW50IHJl dCA9IDA7Cj4gKwljb25zdCBzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlX2luZm8gaW5mbyA9IHsgLnR5 cGUgPSAidGMzNTg3NzUiLAo+ICsJCQkJCQkJLmNoYW5uZWwgPSAwLAo+ICsJCQkJCQkJLm5vZGUg PSBOVUxMLAo+ICsJCQkJCQl9Owo+ICsKPiArCWhvc3QgPSBvZl9maW5kX21pcGlfZHNpX2hvc3Rf Ynlfbm9kZSh0Yy0+aG9zdF9ub2RlKTsKPiArCWlmICghaG9zdCkgewo+ICsJCWRldl9lcnIoZGV2 LCAiZmFpbGVkIHRvIGZpbmQgZHNpIGhvc3RcbiIpOwo+ICsJCXJldHVybiAtRVBST0JFX0RFRkVS Owo+ICsJfQo+ICsKPiArCWRzaSA9IG1pcGlfZHNpX2RldmljZV9yZWdpc3Rlcl9mdWxsKGhvc3Qs ICZpbmZvKTsKPiArCWlmIChJU19FUlIoZHNpKSkgewo+ICsJCWRldl9lcnIoZGV2LCAiZmFpbGVk IHRvIGNyZWF0ZSBkc2kgZGV2aWNlXG4iKTsKPiArCQlyZXQgPSBQVFJfRVJSKGRzaSk7Cj4gKwkJ Z290byBlcnJfZHNpX2RldmljZTsKPiArCX0KPiArCj4gKwl0Yy0+ZHNpID0gZHNpOwo+ICsKPiAr CWRzaS0+bGFuZXMgPSB0Yy0+bnVtX2RzaV9sYW5lczsKPiArCWRzaS0+Zm9ybWF0ID0gTUlQSV9E U0lfRk1UX1JHQjg4ODsKPiArCWRzaS0+bW9kZV9mbGFncyA9IE1JUElfRFNJX01PREVfVklERU87 Cj4gKwo+ICsJcmV0ID0gbWlwaV9kc2lfYXR0YWNoKGRzaSk7Cj4gKwlpZiAocmV0IDwgMCkgewo+ ICsJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGF0dGFjaCBkc2kgdG8gaG9zdFxuIik7Cj4gKwkJ Z290byBlcnJfZHNpX2F0dGFjaDsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArCj4gK2Vycl9k c2lfYXR0YWNoOgo+ICsJbWlwaV9kc2lfZGV2aWNlX3VucmVnaXN0ZXIoZHNpKTsKPiArZXJyX2Rz aV9kZXZpY2U6Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHRjX2JyaWRn ZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArewo+ICsJc3RydWN0IHRjX2Rh dGEgKnRjID0gYnJpZGdlX3RvX3RjKGJyaWRnZSk7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJt ID0gYnJpZGdlLT5kZXY7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCS8qIENyZWF0ZSBMVkRTIGNvbm5l Y3RvciAqLwo+ICsJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZ0Yy0+Y29ubmVjdG9yLCAmdGNf Y29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4gKwlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoZHJt LCAmdGMtPmNvbm5lY3RvciwgJnRjX2Nvbm5lY3Rvcl9mdW5jcywKPiArCQkJCSBEUk1fTU9ERV9D T05ORUNUT1JfTFZEUyk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJaWYg KHRjLT5wYW5lbCkKPiArCQlkcm1fcGFuZWxfYXR0YWNoKHRjLT5wYW5lbCwgJnRjLT5jb25uZWN0 b3IpOwo+ICsKPiArCWRybV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoJnRjLT5jb25uZWN0b3Is IHRjLT5icmlkZ2UuZW5jb2Rlcik7Cj4gKwo+ICsJcmV0ID0gdGMzNTg3NzVfYXR0YWNoX2RzaSh0 Yyk7CgoKSWdub3JlZCByZXR2YWwuCgoKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIHRjX2JyaWRnZV9mdW5jcyA9IHsKPiAr CS5hdHRhY2ggPSB0Y19icmlkZ2VfYXR0YWNoLAo+ICsJLnByZV9lbmFibGUgPSB0Y19icmlkZ2Vf cHJlX2VuYWJsZSwKPiArCS5lbmFibGUgPSB0Y19icmlkZ2VfZW5hYmxlLAo+ICsJLmRpc2FibGUg PSB0Y19icmlkZ2VfZGlzYWJsZSwKPiArCS5wb3N0X2Rpc2FibGUgPSB0Y19icmlkZ2VfcG9zdF9k aXNhYmxlLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHRj X3JlZ21hcF9jb25maWcgPSB7Cj4gKwkubmFtZSA9ICJ0YzM1ODc3NSIsCj4gKwkucmVnX2JpdHMg PSAxNiwKPiArCS52YWxfYml0cyA9IDMyLAo+ICsJLnJlZ19zdHJpZGUgPSA0LAo+ICsJLm1heF9y ZWdpc3RlciA9IDB4MDVBOCwKPiArCS5jYWNoZV90eXBlID0gUkVHQ0FDSEVfUkJUUkVFLAo+ICsJ LnJlZ19mb3JtYXRfZW5kaWFuID0gUkVHTUFQX0VORElBTl9CSUcsCj4gKwkudmFsX2Zvcm1hdF9l bmRpYW4gPSBSRUdNQVBfRU5ESUFOX0xJVFRMRSwKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQgdGNf cHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgY29uc3Qgc3RydWN0IGkyY19kZXZpY2Vf aWQgKmlkKQo+ICt7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmY2xpZW50LT5kZXY7Cj4gKwlz dHJ1Y3QgdGNfZGF0YSAqdGM7Cj4gKwlpbnQgcmV0Owo+ICsJdW5zaWduZWQgaW50IGk7Cj4gKwo+ ICsJdGMgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnRjKSwgR0ZQX0tFUk5FTCk7Cj4gKwlp ZiAoIXRjKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCXRjLT5kZXYgPSBkZXY7Cj4gKwl0 Yy0+aTJjID0gY2xpZW50Owo+ICsJdGMtPnN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVj dGVkOwo+ICsKPiArCS8qIHBvcnRAMSBpcyB0aGUgb3V0cHV0IHBvcnQgKi8KPiArCXJldCA9IGRy bV9vZl9maW5kX3BhbmVsX29yX2JyaWRnZShkZXYtPm9mX25vZGUsIDEsIDAsICZ0Yy0+cGFuZWws IE5VTEwpOwo+ICsJaWYgKHJldCAmJiByZXQgIT0gLUVOT0RFVikKPiArCQlyZXR1cm4gcmV0Owo+ ICsKPiArCXJldCA9IHRjMzU4Nzc1X3BhcnNlX2R0KGRldi0+b2Zfbm9kZSwgdGMpOwo+ICsJaWYg KHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpF KHRjLT5zdXBwbGllcyk7IGkrKykKPiArCQl0Yy0+c3VwcGxpZXNbaV0uc3VwcGx5ID0gcmVndWxh dG9yX25hbWVzW2ldOwo+ICsKPiArCXJldCA9IGRldm1fcmVndWxhdG9yX2J1bGtfZ2V0KGRldiwg QVJSQVlfU0laRSh0Yy0+c3VwcGxpZXMpLAo+ICsJCQkJICAgICAgdGMtPnN1cHBsaWVzKTsKPiAr CWlmIChyZXQgPCAwKQo+ICsJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGluaXQgcmVndWxhdG9y LCByZXQ9JWRcbiIsIHJldCk7Cj4gKwo+ICsJdGMtPnN0YnlfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0 KGRldiwgInN0YnkiLCBHUElPRF9PVVRfSElHSCk7Cj4gKwlpZiAoSVNfRVJSKHRjLT5zdGJ5X2dw aW8pKSB7Cj4gKwkJcmV0ID0gUFRSX0VSUih0Yy0+c3RieV9ncGlvKTsKPiArCQlkZXZfZXJyKGRl diwgImNhbm5vdCBnZXQgc3RieS1ncGlvICVkXG4iLCByZXQpOwo+ICsJCXJldHVybiByZXQ7Cj4g Kwl9Cj4gKwo+ICsJdGMtPnJlc2V0X2dwaW8gPSBkZXZtX2dwaW9kX2dldChkZXYsICJyZXNldCIs IEdQSU9EX09VVF9ISUdIKTsKPiArCWlmIChJU19FUlIodGMtPnJlc2V0X2dwaW8pKSB7Cj4gKwkJ cmV0ID0gUFRSX0VSUih0Yy0+cmVzZXRfZ3Bpbyk7Cj4gKwkJZGV2X2VycihkZXYsICJjYW5ub3Qg Z2V0IHJlc2V0LWdwaW9zICVkXG4iLCByZXQpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ ICsJdGMtPnJlZ21hcCA9IGRldm1fcmVnbWFwX2luaXRfaTJjKGNsaWVudCwgJnRjX3JlZ21hcF9j b25maWcpOwo+ICsJaWYgKElTX0VSUih0Yy0+cmVnbWFwKSkgewo+ICsJCXJldCA9IFBUUl9FUlIo dGMtPnJlZ21hcCk7Cj4gKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSByZWdt YXA6ICVkXG4iLCByZXQpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJdGMtPmJyaWRn ZS5mdW5jcyA9ICZ0Y19icmlkZ2VfZnVuY3M7Cj4gKwl0Yy0+YnJpZGdlLm9mX25vZGUgPSBkZXYt Pm9mX25vZGU7Cj4gKwlkcm1fYnJpZGdlX2FkZCgmdGMtPmJyaWRnZSk7Cj4gKwo+ICsJaTJjX3Nl dF9jbGllbnRkYXRhKGNsaWVudCwgdGMpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50IHRjX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQo+ICt7Cj4gKwlz dHJ1Y3QgdGNfZGF0YSAqdGMgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKPiArCj4gKwlk cm1fYnJpZGdlX3JlbW92ZSgmdGMtPmJyaWRnZSk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCB0YzM1ODc3NV9pMmNfaWRzW10g PSB7Cj4gKwl7ICJ0YzM1ODc3NSIsIDAgfSwKPiArCXsgfQo+ICt9Owo+ICtNT0RVTEVfREVWSUNF X1RBQkxFKGkyYywgdGMzNTg3NzVfaTJjX2lkcyk7Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IG9mX2RldmljZV9pZCB0YzM1ODc3NV9vZl9pZHNbXSA9IHsKPiArCXsgLmNvbXBhdGlibGUgPSAi dG9zaGliYSx0YzM1ODc3NSIsIH0sCj4gKwl7IH0KPiArfTsKPiArTU9EVUxFX0RFVklDRV9UQUJM RShvZiwgdGMzNTg3NzVfb2ZfaWRzKTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB0 YzM1ODc3NV9kcml2ZXIgPSB7Cj4gKwkuZHJpdmVyID0gewo+ICsJCS5uYW1lID0gInRjMzU4Nzc1 IiwKPiArCQkub2ZfbWF0Y2hfdGFibGUgPSB0YzM1ODc3NV9vZl9pZHMsCj4gKwl9LAo+ICsJLmlk X3RhYmxlID0gdGMzNTg3NzVfaTJjX2lkcywKPiArCS5wcm9iZSA9IHRjX3Byb2JlLAo+ICsJLnJl bW92ZQk9IHRjX3JlbW92ZSwKPiArfTsKPiArbW9kdWxlX2kyY19kcml2ZXIodGMzNTg3NzVfZHJp dmVyKTsKPiArCj4gK01PRFVMRV9BVVRIT1IoIlZpbmF5IFNpbWhhIEJOIDx2aW5heXNpbWhhQGlu Zm9yY2Vjb21wdXRpbmcuY29tPiIpOwo+ICtNT0RVTEVfREVTQ1JJUFRJT04oInRjMzU4Nzc1IExW RFMgZW5jb2RlciBkcml2ZXIiKTsKCgptYXliZcKgIGJldHRlcjoKCnRjMzU4Nzc1IERTSS9MVkRT IGJyaWRnZSBkcml2ZXIKCgpSZWdhcmRzCkFuZHJ6ZWoKCj4gK01PRFVMRV9MSUNFTlNFKCJHUEwg djIiKTsKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK