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 5B76CC55162 for ; Sun, 2 Aug 2026 20:34:56 +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:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=oTWaLSxnN3NHMfj1aYNLL1u3t5L4m5I3QCdyRARIGiY=; b=pRlUaAE7KqcF4u Ivi97aykXfGmBJFXfpSulMr0fpvzz5+2g/wxshLBfPVWZT69fJmEXTTujUJ8xqjqDT/Xp/DYlxccl hDET/bHmowH48F7N3N5l+x9uoJI3CiPk+P6lztKl/jiWNakyZGu7aq/IDdVjJX3YioIrTqg3Ur4m3 +Pjh9PIV9iKu8+3Xz92RRAzxpaNaxLt31rRfYludZv4qkEgQFAyCpxzVAhJrkwQtuwrhrpAn/ovf7 UjijFCo13Y7V5iKrZ4ewu71RLaVzRPFCbWYck8Mppl0R1NIwl5mi4/zzC9Ky2jMB7n29qL17E7fpv 7qY75OnLYvr6tILGsccQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wqctc-0000000G1zd-0Eri; Sun, 02 Aug 2026 20:34:56 +0000 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wqctY-0000000G1tG-1bzO for linux-phy@lists.infradead.org; Sun, 02 Aug 2026 20:34:55 +0000 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-4954a9e8490so11674575e9.1 for ; Sun, 02 Aug 2026 13:34:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785702891; x=1786307691; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=bIP93lvBLMGojmWlYFRUzPyh/SNEeVDe+e2Useud0hs=; b=rfcS4QJnpDeq3ZZo66dX6s2YJ3ax+w8d10qkH2CxkPvZwd8C1TyZQd1nW/rR+RTuhs sQjLKv5ULRDuFS8uQIzEaed9yB4Ut4NoBMgFhCPsipfDtcrOtItH5tO+LPdZrCmt2pF3 0Dbu76gu+dKaL1qzmb+SuH6hFc2Fk5nADkpiSVyL5JHtYidFzH/EKxlhE6ILjq59wHSp mARjmu28TmY4H8mh263JjNBd4IM4cLPiJxKJ2kf8WbV9CxbaGaZvSWXroUUgp1agMrGO ohDZ4twRFq0hS1vrSk3+8O7tLVS0IYH9Maa1FAQYjUUCCYyU6qTMqntsoSGx1zEGTagj kzgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785702891; x=1786307691; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=bIP93lvBLMGojmWlYFRUzPyh/SNEeVDe+e2Useud0hs=; b=ZbjfM0Lk3IlFVkZ9nVz7xFJZPH9iONPweIUekZj99lgkWPQQhdGxO0HWpBTv5fdsgp /I+3GB9XV0IgZAeVS05wsZfAbw2B7EHovppyUtjaib4Br0Hf5ypkNCks1P+NSmqa8Vlr SqA3zK59CD1XJtFvjJ38qKqlXKJisa1NR629JBsiWvXHzaz+M0yyz/pBT78zLIs+ijFY 61y45SsN//fESGl5+NNEbDULF3Kyf3A35Ldv74PHEBi3SJDYOkzswbGzXK6RBh9qKJAw g0hmEjubViMZOrpQy7Iwt/EEROiSSSjmgvhAkvNfUUHqEUm7hhTXErbgE9ZilFjJ2a7w /GHA== X-Forwarded-Encrypted: i=1; AHgh+RrP59Kda/GkC23/J+kpmwhsbdykHyCUXhXHh1QZUI0540YE4+mHNu8hvg3yvy0Oj2g2y/fc2o8KMXY=@lists.infradead.org X-Gm-Message-State: AOJu0YwDjx+toX/x/O28+R7J9k8lkO2ssW7PG5RwyYI9wT5bPy3xr12o TY37Zxo2IjSFCtWINwuqltE2/Q2k9EFIGxCwsKv6qj7nfPVbkDqpNpvO X-Gm-Gg: AR+sD10hCXwdOlHbFKp90EdiLsz6q61n/Xm0OxCvqSiofTPrXhqP8icxEHeXRnqVTXO ya2D5Nj8SNlrtRFoZLWwk9jlTbNUAD57/rIzzE5ayGfltYvufcu17DdurRXNoOyRervGmVA2Thq K6qY6KOOBRkRsUdI3UoZ2DPgKe0UVRkTCRZ0A6xcCsTECeVAzCsXpg6uOcjotdcKcaFANHI8nyd HDEqkyRNwZzsl4DRMOIdBkV67vKkL2bOuHHFSXysKoRhrPnqZ2Ytn0z7U3Zu01bUZnt/lc0dg5N BZf43WcU6gqQRRlZxZIBXQ0a8cYvplDfBgy87dh9mhtfiLviCrh/h/LpfC3qppf0RxxvjYy3yEB Bia8btf8HGckKLemDdIyO5gRZYUZSF78DT6ovPqbUreCSL5SvRnuteGZ8NQ5xCoOL8PEJ5xHK8A bTAsatJ++gcSbEnyoSDHnDxgmvYgt4v6v91kwlQM3TMLfiCSWcN+zLF+5b0ghLLa4CXw+s4FTk X-Received: by 2002:a05:600c:1912:b0:495:4f84:7280 with SMTP id 5b1f17b1804b1-4980eb8c4a1mr125120745e9.4.1785702890317; Sun, 02 Aug 2026 13:34:50 -0700 (PDT) Received: from [192.168.0.2] ([197.250.226.155]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49807bb45ebsm118499905e9.4.2026.08.02.13.34.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 02 Aug 2026 13:34:49 -0700 (PDT) From: =?utf-8?q?Stefan_D=C3=B6singer?= Date: Sun, 02 Aug 2026 23:33:41 +0300 Subject: [PATCH v9 09/12] clk: zte: Introduce a driver for zx297520v3 matrix clocks MIME-Version: 1.0 Message-Id: <20260802-zx29clk-v9-9-d05530d85d28@gmail.com> References: <20260802-zx29clk-v9-0-d05530d85d28@gmail.com> In-Reply-To: <20260802-zx29clk-v9-0-d05530d85d28@gmail.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Brian Masney , Vinod Koul , Neil Armstrong , Russell King , Lee Jones Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, mfd@lists.linux.dev, =?utf-8?q?Stefan_D=C3=B6singer?= X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=24645; i=stefandoesinger@gmail.com; h=from:subject:message-id; bh=uI5HEaw0V5CC62qkE3Hen4IpsN3Aztamtdb5xPF4I+0=; b=owEBiQJ2/ZANAwAIAT0TvMhUTxoiAcsmYgBqb6myQUW5FISpnt/EpHclyYa2MNWJ69RX2e190 7oKC1uRhG+JAk8EAAEIADkWIQRDFvS2qgVbJ5UyXWw9E7zIVE8aIgUCam+pshsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDIACgkQPRO8yFRPGiJBbA//bAYRivoNcm7TBsgct4jHkm0NR2myEoo e0G8oUoqhLi648NpmDYGAZyJp7UJ/KUe11DGWDI5La9zhDWPTiBWzDyB9CF43PcyHsuNWLA2hVz ldVnhI6D0buE506usUlBZc+bV4GmY0jpNBIk456vODh9m2D3b4w0ON6nUb/+IQenjDNnaZkugUO Yk+HaRHRW4N4QeTCjvdWz8tEyXYM8QOXKBvB15iY5SO1Cb/25pf4R4tve9oymCT3NR2lzZVQM9a hdelZ7tOT/7VcvJYbdFgxS5YzQACmA6+vZ4xa5dQyHxt4Wjo2xfiuglX+7PmmLEh840wtGkPLL6 1z+Ibt0u/bF3bNa8saT7ABNiGd0nHDykqYTlnldGXn2hXX0u1qL0Y0OjwyCLPjRgG/BOCYtUsoE R8cZbB0gGR0h7DRTdlJ13Wv1SUAJ8GczJVL5Vc/FZ8MeBKs9rM/mgYyfAg6lTMmKtDQ0hbpfbfY ajkaaIlaLVq+3uOKbsgkcFs2tph/NNfNRXQgoabVkAzZHgGZz4sTVMUikB6129CQ22JoukcUvzW j7mXnI/6LkoeHMRjmMrZQc7+Es5wbqQOBh6zYbrJVGW1nnZWV5a1fo8OEM15Jf3qX7rTKri4jjz TBO0UgZjptRkv7Als36OO6VHvYSUVinM+kKIpY0flryqBpTE23Kw= X-Developer-Key: i=stefandoesinger@gmail.com; a=openpgp; fpr=4F9C2C8728019633893EBBB98CB81F9A72BBA155 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260802_133452_663530_FC747C33 X-CRM114-Status: GOOD ( 23.30 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhpcyBjbG9jayBjb250cm9sbGVyIGNvbnRyb2xzIGhpZ2ggc3BlZWQgZGV2aWNlczogQ1BVLCBE TUEsIFJBTSwgU0RJTywKRXRoZXJuZXQuIFRoZSBvbmx5IG5vbi1jbG9jaywgbm9uLXJlc2V0IHJl Z2lzdGVycyBJIGhhdmUgc3BvdHRlZCBoZXJlCmFyZSBoYXJkd2FyZSBzcGlubG9ja3MuCgpTaWdu ZWQtb2ZmLWJ5OiBTdGVmYW4gRMO2c2luZ2VyIDxzdGVmYW5kb2VzaW5nZXJAZ21haWwuY29tPgoK LS0tCgpWZXJzaW9uIDk6CkxpbmsgaW50ZXJuYWwgcGFyZW50cyBieSBhbiAoaW50ZXJuYWwpIGNs b2NrIElEIHJhdGhlciB0aGFuIG5hbWVzLgoKVGhlcmUgYXJlIDMgaW50ZW50aW9uYWwgY2hhbmdl cyB2cyB2ZXJzaW9uIDggaW4gdGhlIGNsb2NrIHRyZWU6CiJnbWFjLWFoYiIgZGVwZW5kcyBvbiB0 aGUgYWhiIGNsb2NrIGltcG9ydGVkIGZyb20gdG9wY3JtLiBUaGlzIHdhcwphbHJlYWR5IHRoZSBj YXNlIGJlZm9yZSwgYnV0IGl0IHdhcyBtaXNzaW5nIGZyb20gdGhlIGJpbmRpbmdzIGFuZCB0aGUK Z2xvYmFsIG5hbWUgbWF0Y2hpbmcgb2JzY3VyZWQgaXQuCgpXaGVuIHJlLXRlc3Rpbmcgb3RoZXIg ZGV2aWNlcyBmb3IgcG90ZW50aWFsIHRvcGNybS0+YWhiIGRlcGVuZGVuY2llcyBJCm5vdGljZWQg dGhhdCB0aGUgdHdvIFNESU8gZGV2aWNlcyB0YWtlIHRoZWlyIHBjbGsgZnJvbSB0b3Bjcm0tPmFo YiBhcwp3ZWxsLgoKQFNhc2hpa286IEFueSBwb3NzaWJsZSBvdGhlciBjbG9jayB0cmVlIGNoYW5n ZSBjb21wYXJlZCB0byB2ZXJzaW9uIDggaXMKdW5pbnRlbnRpb25hbCBhbmQgYSBsaWtlbHkgYnVn LgoKVmVyc2lvbiA4OgpBZGQgYW5vdGhlciBkaXN0cmlidXRpb24gZ2F0ZSByZWdpc3RlcjogMHgx MTggZ2F0ZXMgb2ZmIG1hdHJpeC1nZW5lcmF0ZWQKZGl2aXNpb25zIG9mIG1wbGwsIGRwbGwgYW5k IGdwbGwuIEl0IG5pY2VseSBmaXRzIHRoZSB0b3AtPm1hdHJpeCBmb3J3YXJkCnBpY3R1cmUuCgpB WEkgNi41IE1IeiBpcyBub3QgYW4gbXBsbCBjaGlsZC4gSSBtdXN0IGhhdmUgZG9uZSBzb21ldGhp bmcgd3Jvbmcgd2hlbgpvcmlnaW5hbGx5IHRlc3RpbmcgdGhpcwoKQWRkIGV4cGxhbmF0aW9ucyBh Ym91dCBhZGRpdGlvbmFsIEFSTSBhcmNoaXRlY3RlZCB0aW1lciBjb250cm9scy4KCkFkZCBnYXRl cyBmb3IgdW5rbm93biBMVEUgaGFyZHdhcmUgYXQgb2Zmc2V0IDB4NjAuIFRoZXkgYXJlIG5vdCBl eHBvcnRlZAppbiB0aGUgYmluZGluZ3MgYmVjYXVzZSB0aGUgYWN0dWFsIG5hbWUgb2YgdGhlIGNv bnN1bWVyIGlzbid0IGNsZWFyIC0KYnV0IGlmIGRwbGwgaXMgdW5wcmVwYXJlZCBhbmQgZmVlZHMg YSBieXBhc3MgMjYgTUh6IHNpZ25hbCwgdGhpcyBkZXZpY2UKc3RhcnRzIHNwYW1taW5nIElSUXMg KGFsdGhvdWdoIHRoZSAweDExOCBhbmQgdG9wKzB4MTQwIGdhdGVzIGFsc28KcHJldmVudCB0aGlz IHVzdWFsbHkpCgpEb3VibGUtY2hlY2sgcGNsayBhbmQgd2NsayBvZiBhbGwgZGV2aWNlcy4gVGhl IFNESU8gYW5kIEVEQ1AgY2xvY2tzIHdlcmUKZmxpcHBlZCBpbiBwcmV2aW91cyBzdWJtaXNzaW9u cy4KClZlcnNpb24gNzoKUmVkdWNlZCB0aGUgaW5wdXQgY2xvY2tzIGEgbG90LiBNb3N0IE1QTEwg c3ViZGl2aXNpb25zIGFyZSBjaGlsZHJlbiBvZgp0aGUgc2FtZSBnYXRlIGluIHRvcCwgc28gcHV0 IHRoZSBmaXhlZCBmYWN0b3IgY2xvY2tzIGhlcmUuCgpBZGRlZCBhIGZldyBtb3JlIGNsb2Nrczog RERSX0NUUkwsIEFYSSBidXMsIEFSTSBhcmNoaXRlY3RlZCB0aW1lci4KVGhleSBhcmUgbmVlZGVk IHRvIHRlbGwgQ0NGIHRvIGtlZXAgdGhlIHRvcCBnYXRlcyBlbmFibGVkIGFuZCBtYXJrZWQKY3Jp dGljYWwgYmVjYXVzZSB0aGV5IGFyZW4ndCBjb25zdW1lZCBieSBhIERUIG5vZGUuCgpUaGUgQVhJ IGJ1cyBpcyBkZXRlcm1pbmVkIGJ5IGEgdm90aW5nIHN5c3RlbS4gSSd2ZSBzZXQgdXAgdGhlIGRy aXZlciB0bwp3cml0ZSB0byB0aGUgYmFsbG90IHJlZ2lzdGVyIFpURSdzIGtlcm5lbCB1c2VzIGFu ZCBlbmFibGUgdm90aW5nLiBUaGlzCnNob3VsZCBtYWtlIGxpZmUgZWFzaWVyIHdpdGggdGhlIExU RSBycHJvYyBibG9iIGxhdGVyLgoKVmVyc2lvbiA1OgpNYWtlIGl0IGFuIE1GRCBjaGlsZCBkZXZp Y2UsIHJlbW92ZSBhdXggZGV2aWNlCkZpeCB6eDI5NzUyOSAtPiB6eDI5NzUyMCB0eXBvcwpGaXgg QUhCX3djbGsgLT4gYWhiX3djbGsuIFRoYXQgd2FzIGEgbGVmdG92ZXIgb2YgbXkgb2xkIGNvbXBv c2l0ZSBzdHJ1Y3RzCkFkZCBTUkFNMCBhbmQgR1NNX0NGRyBjbG9ja3MKLS0tCiBkcml2ZXJzL2Ns ay96dGUvY2xrLXp4Mjk3NTIwdjMuYyB8IDQ4MyArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA0ODMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvY2xrL3p0ZS9jbGstengyOTc1MjB2My5jIGIvZHJpdmVycy9jbGsvenRlL2Ns ay16eDI5NzUyMHYzLmMKaW5kZXggZjk5MTU1ODJmMjYxLi42YzRhN2ExYzNhOWIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvY2xrL3p0ZS9jbGstengyOTc1MjB2My5jCisrKyBiL2RyaXZlcnMvY2xrL3p0 ZS9jbGstengyOTc1MjB2My5jCkBAIC03NjksNiArNzY5LDQ4NSBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHp4X2Nsa19kYXRhIHp4Mjk3NTIwdjNfdG9wY2xrX2RhdGEgPSB7CiAJLm51bV9leHBvcnRz ID0gQVJSQVlfU0laRSh6eDI5NzUyMHYzX3RvcF9leHBvcnRzKSwKIH07CiAKK2VudW0gbWF0cml4 X2Nsb2NrX2lkcyB7CisJWlhfQ0xLX01BVFJJWF9PU0MyNk1fRDQsCisJWlhfQ0xLX01BVFJJWF9N UExMX0QyX1BSRUdBVEUsCisJWlhfQ0xLX01BVFJJWF9NUExMX0Q0X1BSRUdBVEUsCisJWlhfQ0xL X01BVFJJWF9NUExMX0Q2X1BSRUdBVEUsCisJWlhfQ0xLX01BVFJJWF9NUExMX0Q4X1BSRUdBVEUs CisJWlhfQ0xLX01BVFJJWF9NUExMX0QxMl9QUkVHQVRFLAorCVpYX0NMS19NQVRSSVhfTVBMTF9E MTZfUFJFR0FURSwKKwlaWF9DTEtfTUFUUklYX0dQTExfRDJfRDJfUFJFR0FURSwKKwlaWF9DTEtf TUFUUklYX0dQTExfRDJfRDRfUFJFR0FURSwKKwlaWF9DTEtfTUFUUklYX0RQTExfRDZfUFJFR0FU RSwKKwlaWF9DTEtfTUFUUklYX0RQTExfRDRfUFJFR0FURSwKKworCVpYX0NMS19NQVRSSVhfTVBM TF9EMTYsCisJWlhfQ0xLX01BVFJJWF9NUExMX0QxMiwKKwlaWF9DTEtfTUFUUklYX01QTExfRDgs CisJWlhfQ0xLX01BVFJJWF9NUExMX0Q2LAorCVpYX0NMS19NQVRSSVhfTVBMTF9ENCwKKwlaWF9D TEtfTUFUUklYX01QTExfRDIsCisJWlhfQ0xLX01BVFJJWF9EUExMX0Q2LAorCVpYX0NMS19NQVRS SVhfRFBMTF9ENCwKKwlaWF9DTEtfTUFUUklYX0dQTExfRDJfRDQsCisJWlhfQ0xLX01BVFJJWF9H UExMX0QyX0QyLAorCisJWlhfQ0xLX0NQVV9NVVgsCisJWlhfQ0xLX1pTUF9NVVgsCisJWlhfQ0xL X0REUl9DVFJMX01VWCwKKwlaWF9DTEtfU0QwX01VWCwKKwlaWF9DTEtfU0QxX01VWCwKKwlaWF9D TEtfTkFORF9NVVgsCisJWlhfQ0xLX0VEQ1BfTVVYLAorCVpYX0NMS19URE1fTVVYLAorCVpYX0NM S19BWElfTVVYLAorCisJWlhfQ0xLX1NZU19USU1FUl9XQ0xLLAorCVpYX0NMS19DUFVfV0NMSywK KwlaWF9DTEtfQ1BVX1BDTEssCisJWlhfQ0xLX0REUl9DVFJMX1BDTEssCisJWlhfQ0xLX0REUl9D VFJMX1dDTEssCisJWlhfQ0xLX1pTUF9XQ0xLLAorCVpYX0NMS19TRDBfUENMSywKKwlaWF9DTEtf U0QwX1dDTEssCisJWlhfQ0xLX1NEMF9DREVULAorCVpYX0NMS19TRDFfUENMSywKKwlaWF9DTEtf U0QxX1dDTEssCisJWlhfQ0xLX1NEMV9DREVULAorCVpYX0NMS19OQU5EX1dDTEssCisJWlhfQ0xL X05BTkRfUENMSywKKwlaWF9DTEtfTFRFX1RQVV9XQ0xLLAorCVpYX0NMS19MVEVfVFBVX1BDTEss CisJWlhfQ0xLX0VEQ1BfUENMSywKKwlaWF9DTEtfRURDUF9XQ0xLLAorCVpYX0NMS19TU0NfV0NM SywKKwlaWF9DTEtfU1NDX1BDTEssCisJWlhfQ0xLX1BEQ0ZHX1dDTEssCisJWlhfQ0xLX1BEQ0ZH X1BDTEssCisJWlhfQ0xLX01CT1hfUENMSywKKwlaWF9DTEtfU1JBTTBfUENMSywKKwlaWF9DTEtf R1NNX0NGR19QQ0xLLAorCVpYX0NMS19HTUFDX1dDTEssCisJWlhfQ0xLX0dNQUNfUENMSywKKwla WF9DTEtfR01BQ19BSEIsCisJWlhfQ0xLX0FYSV9XQ0xLLAorCVpYX0NMS19ETUFfUENMSywKKwla WF9DTEtfVk9VX1dDTEssCisJWlhfQ0xLX1ZPVV9QQ0xLLAorCVpYX0NMS19UT0xTUF9NUExMX0Q1 X1dDTEssCisJWlhfQ0xLX1RPTFNQX01QTExfRDRfV0NMSywKKwlaWF9DTEtfVE9MU1BfTVBMTF9E Nl9XQ0xLLAorCVpYX0NMS19UT0xTUF9NUExMX0Q4X1dDTEssCisJWlhfQ0xLX1RPTFNQX01QTExf RDEyX1dDTEssCisJWlhfQ0xLX1RPTFNQX09TQzI2TV9XQ0xLLAorCVpYX0NMS19UT0xTUF9PU0Mz MktfV0NMSywKKwlaWF9DTEtfVE9MU1BfUENMSywKKwlaWF9DTEtfVE9MU1BfVERNX1dDTEssCisJ WlhfQ0xLX1RPTFNQX0RQTExfRDRfV0NMSywKK307CisKKy8qCisgKiBGb3IgZGV2aWNlcyB3aGlj aCBoYXZlIGEgd29ya2luZyBkcml2ZXIgdGhlIHdvcmsgY2xvY2sgY2FuIGJlIGZpZ3VyZWQgb3V0 IGJ5IGdhdGluZyBvZmYgcmVnaXN0ZXJzCisgKiBpbiB0b3Bjcm0rMHgxNDAuIFRoaXMgaXMgdXNl ZCBmb3IgZGV2aWNlcyB3aGVyZSBJIGNhbid0IGludGVycHJldCB0aGUgcmVnaXN0ZXIgY29udGVu dHMgeWV0LgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIG1hdHJpeF91 bmsgPSBQQVJFTlRfRlcoIndjbGstb3NjMjZtIik7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgenhf cGFyZW50X2Rlc2MgY3B1X3NlbFtdID0geworCVBBUkVOVF9GVygid2Nsay1vc2MyNm0iKSwKKwlQ QVJFTlRfRlcoIm1wbGwiKSwJCQkvKiA2MjQgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRS SVhfTVBMTF9EMiksCS8qIDMxMiBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExM X0Q0KSwJLyogMTU2IE1IeiAqLworfTsKKworLyogTG93IGNvbmZpZGVuY2Ugb24gdGhlIGFjdHVh bCB2YWx1ZSwgYnV0IGF0IGxlYXN0IEkga25vdyBpdCBpcyBiaXQgMTMgaW4gdG9wKzB4MTQwICov CitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIHpzcF9zZWxbXSA9IHsKKwlQQVJF TlRfRlcoIndjbGstb3NjMjZtIiksCisJUEFSRU5UX0ZXKCJkcGxsIiksCQkJLyogNDkxLjUyIE1I eiAqLworfTsKKworLyoKKyAqIFdlIGNhbid0IHJlYWxpc3RpY2FsbHkgY2hhbmdlIEREUiBzcGVl ZCB3aGlsZSBydW5uaW5nIGFuIE9TIG91dCBvZiBERFIgKGl0IHJlYWRzIGdhcmJhZ2UgZm9yIGEK KyAqIHNob3J0IHdoaWxlIG9uIHRyYW5zaXRpb24pLCBidXQgd2UgbmVlZCB0byBrbm93IGlmIHdl IGhhdmUgdG8ga2VlcCBncGxsIGFsaXZlLiAzMiBNQiBkZXZpY2VzIHVzZQorICogMjAwIE1Ieiwg d2hpbGUgNjQvMTI4IE1CIG9uZXMgdXNlIDE1NiBNSHouCisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgenhfcGFyZW50X2Rlc2MgZGRyX2N0cmxfc2VsW10gPSB7CisJUEFSRU5UX0lEKFpYX0NMS19N QVRSSVhfTVBMTF9ENCksCS8qIDE1NiBNSHogKi8KKwlQQVJFTlRfRlcoImdwbGwiKSwJCQkvKiAy MDAgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9ENiksCS8qIDEwNCBNSHog Ki8KKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q4KSwJLyogNzggTUh6ICovCit9Owor CitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIHNkMF9zZWxbXSA9IHsKKwlQQVJF TlRfRlcoIndjbGstb3NjMjZtIiksCisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9ENCks CS8qIDE1NiBNSHogKi8KKwlQQVJFTlRfRlcoImdwbGwtZDIiKSwJCQkvKiAxMDAgTUh6ICovCisJ UEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9EOCksCS8qIDc4IE1IeiAqLworCVBBUkVOVF9J RChaWF9DTEtfTUFUUklYX0dQTExfRDJfRDIpLAkvKiA1MCBNSHogKi8KKwlQQVJFTlRfSUQoWlhf Q0xLX01BVFJJWF9HUExMX0QyX0Q0KSwJLyogMjUgTUh6ICovCit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IHp4X3BhcmVudF9kZXNjIHNkMV9zZWxbXSA9IHsKKwlQQVJFTlRfRlcoIndjbGstb3Nj MjZtIiksCisJUEFSRU5UX0ZXKCJncGxsLWQyIiksCQkJLyogMTAwIE1IeiAqLworCVBBUkVOVF9J RChaWF9DTEtfTUFUUklYX01QTExfRDgpLAkvKiA3OCBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xL X01BVFJJWF9HUExMX0QyX0QyKSwJLyogNTAgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NMS19NQVRS SVhfTVBMTF9EMTYpLAkvKiAzOSBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9HUExM X0QyX0Q0KSwJLyogMjUgTUh6ICovCit9OworCisvKgorICogWlRFJ3Mga2VybmVsIHB1dHMgdGhl IGhpZ2ggZnJlcXVlbmN5IGZpcnN0LCBidXQgdGhpcyBpcyBhZ2FpbnN0IHRoZSB1c3VhbCBjb252 ZW50aW9uIG9uIHRoaXMgU29DLgorICogSSBkb24ndCBoYXZlIGFueSBkZXZpY2UgdGhhdCBoYXMg YSByYXcgTkFORCBjb250cm9sbGVyIHRob3VnaC4KKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCB6 eF9wYXJlbnRfZGVzYyBuYW5kX3NlbFtdID0geworCVBBUkVOVF9GVygid2Nsay1vc2MyNm0iKSwK KwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q0KSwJLyogMTU2IE1IeiAqLworfTsKKwor c3RhdGljIGNvbnN0IHN0cnVjdCB6eF9wYXJlbnRfZGVzYyBlZGNwX3NlbFtdID0geworCVBBUkVO VF9GVygid2Nsay1vc2MyNm0iKSwKKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q0KSwJ LyogMTU2IE1IeiAqLworCVBBUkVOVF9GVygibXBsbC1kNSIpLAkJCS8qIDEyNC44IE1IeiAqLwor CVBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDYpLAkvKiAxMDQgTUh6ICovCit9OworCitz dGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIHRkbV9zZWxbXSA9IHsKKwlQQVJFTlRf RlcoIndjbGstb3NjMjZtIiksCisJUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfRFBMTF9ENCksCS8q IDEyMi44OCBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q2KSwJLyogMTA0 IE1IeiAqLworfTsKKworLyoKKyAqIFpURSdzIGZpcm13YXJlIHVzZXMgMHgxMjggYXMgdGhlIFBI WSdzIHZvdGUgYW5kIG5hbWVzIDB4MTIwIGFzICJQUyIgYW5kIDB4MTI0IGFzICJBUCIgdm90ZS4K KyAqIEhvd2V2ZXIsIHRoZWlyIGNwdWZyZXEgZHJpdmVyIHVsdGltYXRlbHkgdXNlcyB0aGUgIlBT IiBkZWZpbmUgYW5kIHRodXMgd3JpdGVzIHRvIDB4MTIwLCB3aGljaCBjYW4KKyAqIGJlIG9ic2Vy dmVkIGluIHRoZSBydW5uaW5nIHN5c3RlbS4KKyAqLworI2RlZmluZSBaWDI5NzUyMFYzX0FYSV9B UF9WT1RFIDB4MTIwCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIGF4aV9zZWxb XSA9IHsKKwlQQVJFTlRfRlcoIndjbGstb3NjMjZtIiksCisJUEFSRU5UX0lEKFpYX0NMS19NQVRS SVhfTVBMTF9ENCksCS8qIDE1NiBNSHogKi8KKwlQQVJFTlRfRlcoIm1wbGwtZDUiKSwJCQkvKiAx MjQuOCBNSHogKi8KKwlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q2KSwJLyogMTA0IE1I eiAqLworCVBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExfRDgpLAkvKiA3OCBNSHogKi8KKwlQ QVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0QxMiksCS8qIDUyIE1IeiAqLworCVBBUkVOVF9J RChaWF9DTEtfTUFUUklYX01QTExfRDE2KSwJLyogMzkgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NM S19NQVRSSVhfT1NDMjZNX0Q0KSwJLyogNi41IE1IeiAqLworfTsKKworc3RhdGljIGNvbnN0IHN0 cnVjdCB6eF9jbG9jayB6eDI5NzUyMHYzX21hdHJpeF9jbG9ja3NbXSA9IHsKKwlbWlhfQ0xLX01B VFJJWF9PU0MyNk1fRDRdID0gRklYRURfRElWKCJtYXRyaXgtb3NjMjZtLWQ0IiwgUEFSRU5UX0ZX KCJ3Y2xrLW9zYzI2bSIpLCA0KSwKKwlbWlhfQ0xLX01BVFJJWF9NUExMX0QyX1BSRUdBVEVdID0g RklYRURfRElWKCJtYXRyaXgtbXBsbC1kMi1wcmVnYXRlIiwgUEFSRU5UX0ZXKCJtcGxsIiksIDIp LAorCVtaWF9DTEtfTUFUUklYX01QTExfRDRfUFJFR0FURV0gPSBGSVhFRF9ESVYoIm1hdHJpeC1t cGxsLWQ0LXByZWdhdGUiLCBQQVJFTlRfRlcoIm1wbGwiKSwgNCksCisJLyogZGl2IDU6IHByb3Zp ZGVkIGFzIGEgc2VwYXJhdGUgbGluZSBmcm9tIHRvcGNybSAqLworCVtaWF9DTEtfTUFUUklYX01Q TExfRDZfUFJFR0FURV0gPSBGSVhFRF9ESVYoIm1hdHJpeC1tcGxsLWQ2LXByZWdhdGUiLCBQQVJF TlRfRlcoIm1wbGwiKSwgNiksCisJW1pYX0NMS19NQVRSSVhfTVBMTF9EOF9QUkVHQVRFXSA9IEZJ WEVEX0RJVigibWF0cml4LW1wbGwtZDgtcHJlZ2F0ZSIsIFBBUkVOVF9GVygibXBsbCIpLCA4KSwK KwlbWlhfQ0xLX01BVFJJWF9NUExMX0QxMl9QUkVHQVRFXSA9IEZJWEVEX0RJVigibWF0cml4LW1w bGwtZDEyLXByZWdhdGUiLCBQQVJFTlRfRlcoIm1wbGwiKSwKKwkJCQkJCSAgICAgMTIpLAorCVta WF9DTEtfTUFUUklYX01QTExfRDE2X1BSRUdBVEVdID0gRklYRURfRElWKCJtYXRyaXgtbXBsbC1k MTYtcHJlZ2F0ZSIsIFBBUkVOVF9GVygibXBsbCIpLAorCQkJCQkJICAgICAxNiksCisKKwlbWlhf Q0xLX01BVFJJWF9HUExMX0QyX0QyX1BSRUdBVEVdID0gRklYRURfRElWKCJtYXRyaXgtZ3BsbC1k Mi1kMi1wcmVnYXRlIiwKKwkJCQkJCSAgICAgICBQQVJFTlRfRlcoImdwbGwtZDIiKSwgMiksCisJ W1pYX0NMS19NQVRSSVhfR1BMTF9EMl9ENF9QUkVHQVRFXSA9IEZJWEVEX0RJVigibWF0cml4LWdw bGwtZDItZDQtcHJlZ2F0ZSIsCisJCQkJCQkgICAgICAgUEFSRU5UX0ZXKCJncGxsLWQyIiksIDQp LAorCisJW1pYX0NMS19NQVRSSVhfRFBMTF9ENl9QUkVHQVRFXSA9IEZJWEVEX0RJVigibWF0cml4 LWRwbGwtZDYtcHJlZ2F0ZSIsIFBBUkVOVF9GVygiZHBsbCIpLCA2KSwKKwlbWlhfQ0xLX01BVFJJ WF9EUExMX0Q0X1BSRUdBVEVdID0gRklYRURfRElWKCJtYXRyaXgtZHBsbC1kNC1wcmVnYXRlIiwg UEFSRU5UX0ZXKCJkcGxsIiksIDQpLAorCisJLyoKKwkgKiBNYXRyaXggZGlzdHJpYnV0aW9uIGdh dGVzOiBFdmVyeSBtYXRyaXgtZ2VuZXJhdGVkIHN1YmRpdmlzaW9uIG9mIHRoZSBpbnB1dCBQTExz CisJICogaGFzIGEgZ2F0ZSBpbiAweDExOC4gVGhlIG9yaWdpbmFsIGlucHV0cyBmcm9tIHRvcGNy bSAobXBsbCA2MjQsIG1wbGwgMTI0LjgsIGdwbGwgMjAwLAorCSAqIGdwbGwgMTAwLCBkcGxsIDQ5 MS41MikgZG8gbm90LgorCSAqCisJICogSSBkbyBub3Qga25vdyBvZiBhbnkgdXNlciBvZiBkcGxs LWQ2IGFuZCBkbyBub3Qga25vdyB0aGUgZGl2aXNvci4gQW4gODEuOTIgTUh6IGNsb2NrIGlzCisJ ICogbGlzdGVkIGFzIGEgcm9vdCBjbG9jayB3aXRob3V0IGEgY29uc3VtZXIgaW4gWlRFJ3MgY29k ZS4gTW9zdCBsaWtlbHkgaXQgaXMgYSBwb3NzaWJsZQorCSAqIHBhcmVudCBvZiB0aGUgWlNQIG11 eC4KKwkgKi8KKwlbWlhfQ0xLX01BVFJJWF9NUExMX0QxNl0gPSBHQVRFKCJtYXRyaXgtbXBsbC1k MTYiLAorCQkJCQlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0QxNl9QUkVHQVRFKSwgMHgx MTgsIDAsCisJCQkJCVpYMjk3NTIwVjNfQVhJX0NBTkRJREFURSksCisJW1pYX0NMS19NQVRSSVhf TVBMTF9EMTJdID0gR0FURSgibWF0cml4LW1wbGwtZDEyIiwKKwkJCQkJUEFSRU5UX0lEKFpYX0NM S19NQVRSSVhfTVBMTF9EMTJfUFJFR0FURSksIDB4MTE4LCAxLAorCQkJCQlaWDI5NzUyMFYzX0FY SV9DQU5ESURBVEUpLAorCVtaWF9DTEtfTUFUUklYX01QTExfRDhdID0gR0FURSgibWF0cml4LW1w bGwtZDgiLAorCQkJCSAgICAgICBQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0Q4X1BSRUdB VEUpLCAweDExOCwgMiwKKwkJCQkgICAgICAgWlgyOTc1MjBWM19BWElfQ0FORElEQVRFKSwKKwlb WlhfQ0xLX01BVFJJWF9NUExMX0Q2XSA9IEdBVEUoIm1hdHJpeC1tcGxsLWQ2IiwKKwkJCQkgICAg ICAgUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfTVBMTF9ENl9QUkVHQVRFKSwgMHgxMTgsIDMsCisJ CQkJICAgICAgIFpYMjk3NTIwVjNfQVhJX0NBTkRJREFURSksCisJW1pYX0NMS19NQVRSSVhfTVBM TF9ENF0gPSBHQVRFKCJtYXRyaXgtbXBsbC1kNCIsCisJCQkJICAgICAgIFBBUkVOVF9JRChaWF9D TEtfTUFUUklYX01QTExfRDRfUFJFR0FURSksIDB4MTE4LCA0LAorCQkJCSAgICAgICBaWDI5NzUy MFYzX0FYSV9DQU5ESURBVEUpLAorCVtaWF9DTEtfTUFUUklYX01QTExfRDJdID0gR0FURSgibWF0 cml4LW1wbGwtZDIiLAorCQkJCQlQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9NUExMX0QyX1BSRUdB VEUpLCAweDExOCwgNSwgMCksCisKKwlbWlhfQ0xLX01BVFJJWF9EUExMX0Q2XSA9IEdBVEUoIm1h dHJpeC1kcGxsLWQ2IiwKKwkJCQkgICAgICAgUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfRFBMTF9E Nl9QUkVHQVRFKSwgMHgxMTgsIDgsIDApLAorCVtaWF9DTEtfTUFUUklYX0RQTExfRDRdID0gR0FU RSgibWF0cml4LWRwbGwtZDQiLAorCQkJCSAgICAgICBQQVJFTlRfSUQoWlhfQ0xLX01BVFJJWF9E UExMX0Q0X1BSRUdBVEUpLCAweDExOCwgOSwgMCksCisKKwlbWlhfQ0xLX01BVFJJWF9HUExMX0Qy X0Q0XSA9IEdBVEUoIm1hdHJpeC1ncGxsLWQyLWQ0IiwKKwkJCQkJICBQQVJFTlRfSUQoWlhfQ0xL X01BVFJJWF9HUExMX0QyX0Q0X1BSRUdBVEUpLAorCQkJCQkgIDB4MTE4LCAxMiwgMCksCisJW1pY X0NMS19NQVRSSVhfR1BMTF9EMl9EMl0gPSBHQVRFKCJtYXRyaXgtZ3BsbC1kMi1kMiIsCisJCQkJ CSAgUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfR1BMTF9EMl9EMl9QUkVHQVRFKSwKKwkJCQkJICAw eDExOCwgMTMsIDApLAorCisJW1pYX0NMS19DUFVfTVVYXSAgICAgICAgICA9IE1VWCgiY3B1LW11 eCIsIGNwdV9zZWwsIDB4MjAsIDAsIDIpLAorCVtaWF9DTEtfWlNQX01VWF0gICAgICAgICAgPSBN VVgoInpzcC1tdXgiLCB6c3Bfc2VsLCAweDMwLCAwLCAyKSwKKwlbWlhfQ0xLX0REUl9DVFJMX01V WF0gICAgID0gTVVYKCJkZHItY3RybC1tdXgiLCBkZHJfY3RybF9zZWwsIDB4NTAsIDAsIDIpLAor CVtaWF9DTEtfU0QwX01VWF0gICAgICAgICAgPSBNVVgoInNkMC1tdXgiLCBzZDBfc2VsLCAweDUw LCA0LCAzKSwKKwlbWlhfQ0xLX1NEMV9NVVhdICAgICAgICAgID0gTVVYKCJzZDEtbXV4Iiwgc2Qx X3NlbCwgMHg1MCwgOCwgMyksCisJW1pYX0NMS19OQU5EX01VWF0gICAgICAgICA9IE1VWCgibmFu ZC1tdXgiLCBuYW5kX3NlbCwgMHg1MCwgMTIsIDIpLAorCVtaWF9DTEtfRURDUF9NVVhdICAgICAg ICAgPSBNVVgoImVkY3AtbXV4IiwgZWRjcF9zZWwsIDB4NTAsIDE2LCAyKSwKKwlbWlhfQ0xLX1RE TV9NVVhdICAgICAgICAgID0gTVVYKCJ0ZG0tbXV4IiwgdGRtX3NlbCwgMHg1MCwgMjQsIDIpLAor CVtaWF9DTEtfQVhJX01VWF0gICAgICAgICAgPSBNVVgoImF4aS1tdXgiLCBheGlfc2VsLCBaWDI5 NzUyMFYzX0FYSV9BUF9WT1RFLCAwLCAzKSwKKworCS8qCisJICogVGhpcyBiaXQgY3V0cyBvZmYg dGhlIGNsb2NrIHNpZ25hbCB0byB0aGUgQVJNIGFyY2hpdGVjdGVkIHRpbWVyLCB3aGljaCB0aGUg a2VybmVsIHVzZXMKKwkgKiBhcyBpdHMgbWFpbiB0aW1lci4gSXQgaXNuJ3QgY3JpdGljYWwgcGVy IHNlIC0gdGhlcmUgYXJlIHBsZW50eSBvZiBwcm9wcmlldGFyeSB0aW1lcnMKKwkgKiBhdmFpbGFi bGUgdGhhdCBjb3VsZCBiZSB1c2VkIC0gYnV0IHRoZSBhcm0gYXJjaCB0aW1lciBiaW5kaW5nIGRv ZXMgbm90IGFjY2VwdCBhIGNsb2NrLCBzbworCSAqIHRoaXMgQ0NGIGRyaXZlciB3b24ndCBrbm93 IGlmIHRoZSB0aW1lciBpcyBpbiB1c2UuCisJICoKKwkgKiBUaGlzIGNsb2NrIGlzIGZlZCBieSB0 aGUgb3NjMjZtIGdhdGUgaW4gdG9wY3JtKzB4MTQwIC0gdGhpcyBjcml0aWNhbCBjbG9jayBoZXJl IHByb3RlY3RzCisJICogaXRzIHBhcmVudC4KKwkgKgorCSAqIFJlZ2lzdGVycyAweDE0OCwgMHgx NGMsIDB4MTUwLCAweDE1NCBhbGxvdyBzZXR0aW5nIGFuZCBjbGVhcmluZyB0aGUgdGltZXIgY291 bnRlci4gVG8KKwkgKiBzZXQgdGhlIHRpbWVyLCBsb2FkIGEgdmFsdWUgaW50byAweDE0OCAoaGln aCAzMiBiaXRzKSBhbmQgMHgxNGMgKGxvdyAzMiBiaXRzKSwgdGhlbgorCSAqIHRvZ2dsZSAweDE1 MCB0byAxLiAweDE1MCB3aWxsIGF1dG9tYXRpY2FsbHkgcmVzZXQgdG8gMC4gMHgxNTQgc2V0cyB0 aGUgdGltZXIgdG8gc29tZQorCSAqICJjbGVhciIgdmFsdWUsIGJ1dCB0aGlzIHZhbHVlIGlzbid0 IDAuCisJICovCisJW1pYX0NMS19TWVNfVElNRVJfV0NMS10gICA9IEdBVEUoInN5cy10aW1lci13 Y2xrIiwgUEFSRU5UX0ZXKCJ3Y2xrLW9zYzI2bSIpLCAweDE0NCwgMSwKKwkJCQkJIENMS19JU19D UklUSUNBTCksCisKKwkvKgorCSAqIEJvdGggMHgyNCBhbmQgMHgyOCBiaXRzIDEgYW5kIDIgc3Rv cCB0aGUgQ1BVLiBUaGVyZSBpcyBhbHNvIGEgYml0IGluIHRvcGNybSsweDEzOCwgd2hpY2gKKwkg KiBaVEUncyB1Ym9vdCBjYWxscyAiQTUzIHJlc2V0Iiwgd2hpY2ggYWxzbyBzdG9wcyB0aGUgQ1BV LiBJIGNhbid0IHJlYWxseSB0ZWxsIHRoZQorCSAqIGRpZmZlcmVuY2UgYmV0d2VlbiBtYXRyaXgr MHgyOCBhbmQgdG9wKzB4MTM4LiBUaGUgY2xvY2sgKG1hdHJpeCsweDI0KSBjYW4gYmUgZGlzYWJs ZWQKKwkgKiBhbmQgZW5hYmxlZCBmcm9tIHRoZSBDb3J0ZXggTTAgYW5kIGl0IHdpbGwgbmljZWx5 IHN0b3AgYW5kIHJlc3RhcnQgdGhlIEE1MywgcmV0YWluaW5nCisJICogYWxsIHN0YXRlLgorCSAq LworCVtaWF9DTEtfQ1BVX1dDTEtdICAgICAgICAgPSBHQVRFKCJjcHUtd2NsayIsIFBBUkVOVF9J RChaWF9DTEtfQ1BVX01VWCksIDB4MjQsIDEsCisJCQkJCSBDTEtfSVNfQ1JJVElDQUwpLAorCVta WF9DTEtfQ1BVX1BDTEtdICAgICAgICAgPSBHQVRFKCJjcHUtcGNsayIsIGNsa19tYWluWzBdLCAw eDI0LCAyLCBDTEtfSVNfQ1JJVElDQUwpLAorCisJLyoKKwkgKiBUaGVyZSBhcmUgYSBsb3QgbW9y ZSBjb250cm9scyBpbiBtYXRyaXgrMHgxMDAuIDEzLTE2IGFwcGVhciB0byBiZSA0IGRpZmZlcmVu dCBBWEkKKwkgKiBjaGFubmVscyBmb3IgZGlmZmVyZW50IHByaW9yaXRpZXMuIEJpdCAxOSBhcHBl YXJzIHRvIGJlIHRoZSBERFIgUEhZIHdjbGsuCisJICoKKwkgKiBUaGUgaW1wb3J0YW50IHRhc2sg aXMgdG8ga2VlcCBncGxsIGVuYWJsZWQgaWYgdGhlIGJvb3Rsb2FkZXIgc2VsZWN0ZWQgYSBncGxs LWJhc2VkIHJhdGUKKwkgKiBmb3IgUkFNLgorCSAqLworCVtaWF9DTEtfRERSX0NUUkxfUENMS10g ICAgPSBHQVRFKCJkZHItY3RybC1wY2xrIiwgY2xrX21haW5bMF0sIDB4MTAwLCAxNywgQ0xLX0lT X0NSSVRJQ0FMKSwKKwlbWlhfQ0xLX0REUl9DVFJMX1dDTEtdICAgID0gR0FURSgiZGRyLWN0cmwt d2NsayIsIFBBUkVOVF9JRChaWF9DTEtfRERSX0NUUkxfTVVYKSwgMHgxMDAsIDE4LAorCQkJCQkg Q0xLX0lTX0NSSVRJQ0FMKSwKKworCVtaWF9DTEtfWlNQX1dDTEtdICAgICAgICAgPSBHQVRFKCJ6 c3Atd2NsayIsIFBBUkVOVF9JRChaWF9DTEtfWlNQX01VWCksIDB4M2MsIDAsIDApLAorCisJLyog Qm90aCBTRElPIGNvbnRyb2xsZXJzIGRlcGVuZCBvbiB0aGUgYWhiLXBjbGsgZm9yIHJlZ2lzdGVy IGFjY2Vzcy4gKi8KKwlbWlhfQ0xLX1NEMF9QQ0xLXSAgICAgICAgID0gR0FURSgic2QwLXBjbGsi LCBQQVJFTlRfRlcoImFoYiIpLCAweDU0LCAxMiwgMCksCisJW1pYX0NMS19TRDBfV0NMS10gICAg ICAgICA9IEdBVEUoInNkMC13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19TRDBfTVVYKSwgMHg1NCwg MTMsIDApLAorCVtaWF9DTEtfU0QwX0NERVRdICAgICAgICAgPSBHQVRFKCJzZDAtY2RldCIsIFBB UkVOVF9GVygib3NjMzJrIiksIDB4NTQsIDE0LCAwKSwKKwlbWlhfQ0xLX1NEMV9QQ0xLXSAgICAg ICAgID0gR0FURSgic2QxLXBjbGsiLCBQQVJFTlRfRlcoImFoYiIpLCAweDU0LCA0LCAwKSwKKwlb WlhfQ0xLX1NEMV9XQ0xLXSAgICAgICAgID0gR0FURSgic2QxLXdjbGsiLCBQQVJFTlRfSUQoWlhf Q0xLX1NEMV9NVVgpLCAweDU0LCA1LCAwKSwKKwkvKgorCSAqIEkgZG9uJ3Qga25vdyBob3cgdGhl IGNkZXQgY2xvY2sgd29ya3MuIENhcmQgZGV0ZWN0aW9uIGluIHRoZSB3YXkgdGhlIGR3YyxtbWMg ZHJpdmVyIHVzZXMKKwkgKiBpdCBhcHBlYXJzIGJyb2tlbiBubyBtYXR0ZXIgdGhpcyBjbG9jaydz IHNldHRpbmcuCisJICovCisJW1pYX0NMS19TRDFfQ0RFVF0gICAgICAgICA9IEdBVEUoInNkMS1j ZGV0IiwgUEFSRU5UX0ZXKCJvc2MzMmsiKSwgMHg1NCwgNiwgMCksCisKKwkvKiBUaGlzIGlzIHNv bWUgImRlbmFsaSIgTkFORCwgbm90IHRoZSBxc3BpIGNvbm5lY3RlZCBvbmUgKi8KKwlbWlhfQ0xL X05BTkRfV0NMS10gICAgICAgID0gR0FURSgibmFuZC13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19O QU5EX01VWCksIDB4NTQsIDIwLCAwKSwKKwlbWlhfQ0xLX05BTkRfUENMS10gICAgICAgID0gR0FU RSgibmFuZC1wY2xrIiwgY2xrX21haW5bMF0sIDB4NTQsIDIxLCAwKSwKKworCS8qCisJICogVGhl cmUgaXMgYSBzZXQgb2YgZ2F0ZXMgZm9yIGFuIHVua25vd24gZGV2aWNlIGF0IG1hdHJpeCsweDYw LiBJdCBpcyBzb21lIExURSByZWxhdGVkCisJICogZGV2aWNlLiBJZiBpdCBpcyBmZWQgYW4gaW5j b3JyZWN0IGNsb2NrLCBlLmcuIGJlY2F1c2UgZHBsbCBpcyBub3QgbG9ja2VkIGFuZCBvdXRwdXRz CisJICogMjYgTUh6LCBpdCB3aWxsIHNwYW0gSVJRcyBhdCBTUEkgNjguIFRoaXMgaXMgbGlrZWx5 IGEgZGlzdHJlc3Mgbm90aWZpY2F0aW9uIHRoYXQgc29tZQorCSAqIGludGVybmFsIFBMTCBkaWQg bm90IGxvY2sgb3Igc2ltaWxhcgorCSAqCisJICogWlRFJ3Mga2VybmVsIGhhcyB0d28gZGVmaW5l cyBmb3IgU1BJIDY0OiAiTFRFX1RQVV9JTlRfUFNfSU5UIiBhbmQgIlZPVV9PU0RfSU5UIi4gVGhl CisJICogbGF0dGVyIGlzIHVubGlrZWx5IGJlY2F1c2UgVk9VIHJlbGF0ZWQgY2xvY2tzIHNpdCBp biBtYXRyaXgrMHgxNjguCisJICoKKwkgKiBCaXQgOSBpbiByZWdpc3RlciAweDExOCB0dXJucyBp dCBvZmYsIHByb3ZpZGluZyBhIGhpbnQgd2hvIHRoZSBwYXJlbnQgaXMuCisJICovCisJW1pYX0NM S19MVEVfVFBVX1dDTEtdICAgICA9IEdBVEUoImx0ZS10cHUtd2NsayIsIFBBUkVOVF9JRChaWF9D TEtfTUFUUklYX0RQTExfRDQpLAorCQkJCQkgMHg2MCwgMCwgMCksCisJW1pYX0NMS19MVEVfVFBV X1BDTEtdICAgICA9IEdBVEUoImx0ZS10cHUtcGNsayIsIGNsa19tYWluWzBdLAorCQkJCQkgMHg2 MCwgMiwgMCksCisKKwlbWlhfQ0xLX0VEQ1BfUENMS10gICAgICAgID0gR0FURSgiZWRjcC1wY2xr IiwgY2xrX21haW5bMF0sIDB4NjQsIDEsIDApLAorCVtaWF9DTEtfRURDUF9XQ0xLXSAgICAgICAg PSBHQVRFKCJlZGNwLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX0VEQ1BfTVVYKSwgMHg2NCwgMiwg MCksCisKKwkvKgorCSAqIFRoaXMgc2VlbXMgdG8gYmUgYW5vdGhlciBTUEktTGlrZSBkZXZpY2Uu IFpURSdzIGZpcm13YXJlIG9wZXJhdGVzIGl0IGFuZCBmcm9tIHRlc3RpbmcKKwkgKiBpdCBsb29r cyBsaWtlIHRoZSBtYXRyaXgtb3NjMjZtIGdhdGUgaW4gdG9wKzB4MTQwIHN0b3BzIHRoaXMgZGV2 aWNlLiBUaGlzIHdvdWxkIGJlCisJICogY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBTUEkgY29u dHJvbGxlcnMgdG9vLgorCSAqLworCVtaWF9DTEtfU1NDX1dDTEtdICAgICAgICAgPSBHQVRFKCJz c2Mtd2NsayIsIFBBUkVOVF9GVygid2Nsay1vc2MyNm0iKSwgMHg4NCwgMSwgMCksCisJW1pYX0NM S19TU0NfUENMS10gICAgICAgICA9IEdBVEUoInNzYy1wY2xrIiwgY2xrX21haW5bMF0sIDB4ODQs IDIsIDApLAorCisJLyoKKwkgKiBQRENGRy4gTGlrZSBQTU0sIGVpdGhlciBjbG9jayBiaXQgd2ls bCBhbGxvdyB0aGUgZGV2aWNlIHRvIGZ1bmN0aW9uLiBQcm9iYWJseSB0aGVyZSBpcworCSAqIG5v IHdjbGsgbGluZSBhdCBhbGwgYW5kIHRoZSB0d28gYml0cyBhcmUganVzdCBhbiBhcnRpZmFjdCBv ZiBnZW5lcmFsbHkgaGF2aW5nIHR3byBiaXRzCisJICogcGVyIGRldmljZS4KKwkgKi8KKwlbWlhf Q0xLX1BEQ0ZHX1dDTEtdICAgICAgID0gR0FURSgicGRjZmctd2NsayIsIG1hdHJpeF91bmssIDB4 ODgsIDAsIENMS19JU19DUklUSUNBTCksCisJW1pYX0NMS19QRENGR19QQ0xLXSAgICAgICA9IEdB VEUoInBkY2ZnLXBjbGsiLCBjbGtfbWFpblswXSwgMHg4OCwgMSwgQ0xLX0lTX0NSSVRJQ0FMKSwK KwlbWlhfQ0xLX01CT1hfUENMS10gICAgICAgID0gR0FURSgibWJveC1wY2xrIiwgY2xrX21haW5b MF0sIDB4ODgsIDIsIDApLAorCVtaWF9DTEtfU1JBTTBfUENMS10gICAgICAgPSBHQVRFKCJzcmFt MC1wY2xrIiwgY2xrX21haW5bMF0sIDB4ODgsIDQsIDApLAorCVtaWF9DTEtfR1NNX0NGR19QQ0xL XSAgICAgPSBHQVRFKCJnc20tY2ZnLXBjbGsiLCBjbGtfbWFpblswXSwgMHg4OCwgOCwgMCksCisK KwkvKgorCSAqIFpURSdzIGRyaXZlciBoYXMgYSBzdGF0ZW1lbnQgdG8gdGhlIGVmZmVjdCBvZiAq KHRvcC0+YmFzZSsweDExYykgPSA1LCB3aXRoIGEgY29tbWVudAorCSAqIHN1Z2dlc3RpbmcgdGhh dCB0aGlzIHNldHMgYSA1MCBNSHogY2xvY2suIFRoZSBjbG9jayBjb2RlIGl0c2VsZiBsaXN0cyBH TUFDIGNsb2NrcyBpbgorCSAqIG1hdHJpeCsweDExMCBhbmQgbGlzdHMgdGhlIHBhcmVudHMgb2Yg dGhlc2UgY2xvY2tzIGFzIDUwIE1IeiBncGxsIG91dHB1dCwgYnV0CisJICogdGhlIGRvd25zdHJl YW0gWlRFIEdNQUMgZHJpdmVyIG5ldmVyIGVuYWJsZXMgdGhlIGNsb2Nrcy4gSXQgdHVybnMgb3V0 IFpURSdzIGNvZGUgaXMKKwkgKiBoaWdobHkgbWlzbGVhZGluZy4KKwkgKgorCSAqIFRoZSBHTUFD J3Mgd29yayBjbG9jayBpcyBkZWZpbml0ZWx5IG5vdCBhbnkgZ3BsbCBvdXRwdXQgYmVjYXVzZSBp dCBrZWVwcyB3b3JraW5nIGZpbmUKKwkgKiB3aXRoIGdwbGwgZGlzYWJsZWQuIEdhdGluZyBvZmYg bWF0cml4LW9zYzI2bSBicmVha3MgR01BQywgc28gaXQgbXVzdCBiZSBpdHMgcGFyZW50LgorCSAq CisJICogVGhlIEdNQUMgR2F0ZXMgYXJlIGxlZnQgZW5hYmxlZCBieSB0aGUgYm9vdCBsb2FkZXIg YW5kIGFyZSByZXF1aXJlZCBmb3IgdGhlIEdNQUMgdG8gd29yay4KKwkgKgorCSAqIEFzIGZvciB0 aGUgNTAgTUh6IGNvbW1lbnQ6IFNlZSBybWlpcGh5LXdjbGsuCisJICoKKwkgKiBUaGUgZ21hYy1h aGIgY2xvY2sgaXMgYSBjaGlsZCBvZiB0b3Bjcm0ncyBhaGItcGNsayBhbmQgaXMgcmVxdWlyZWQg Zm9yIERNQSB0cmFuc2ZlcnMgaW4KKwkgKiBhbmQgb3V0IG9mIEdNQUMuIFdpdGhvdXQgaXQsIEdN QUMgc3RpbGwgcmVjZWl2ZXMgZXRoZXJuZXQgZnJhbWVzLCBidXQgY2FuJ3QgZHJhaW4gdGhlbQor CSAqIHRvIG1lbW9yeSBhbmQgd2lsbCBldmVudHVhbGx5IHNldCB0aGUgUlggRklGTyBvdmVyZmxv dyBmbGFnLgorCSAqLworCVtaWF9DTEtfR01BQ19XQ0xLXSAgICAgICAgPSBHQVRFKCJnbWFjLXdj bGsiLCBQQVJFTlRfRlcoIndjbGstb3NjMjZtIiksIDB4MTEwLCAwLCAwKSwKKwlbWlhfQ0xLX0dN QUNfUENMS10gICAgICAgID0gR0FURSgiZ21hYy1wY2xrIiwgY2xrX21haW5bMF0sIDB4MTEwLCAx LCAwKSwKKwlbWlhfQ0xLX0dNQUNfQUhCXSAgICAgICAgID0gR0FURSgiZ21hYy1haGIiLCBQQVJF TlRfRlcoImFoYiIpLCAweDExMCwgMiwgMCksCisKKwkvKgorCSAqIElzIHRoZXJlIGFuIEFYSSBi dXMgZ2F0ZT8gVGhlIHN5bXB0b20gb2YgY3V0dGluZyBvZmYgdGhlIEFYSSBtdXggc2VsZWN0aW9u IGluIHRvcCsweDE0MAorCSAqIGlzIHRoYXQgbWF0cml4Y3JtIGJlY29tZXMgdW5yZWFkYWJsZSBm cm9tIG0wIGFuZCBBNTMgaGFuZ3MuIEluc2lkZSBtYXRyaXggaXRzZWxmIG9ubHkgMworCSAqIGJp dHMgZml0IHRoYXQgYmlsbDogMHg4YyBiaXRzIDUsIDYsIDcuIEl0IHNlZW1zIGEgYml0IHNlbGYt ZGVmZWF0aW5nIHRvIGhhdmUgYSBjbG9jaworCSAqIGdhdGUgdGhhdCBzaHV0cyBvZmYgYWNjZXNz IHRvIGl0c2VsZiB0aG91Z2guIEkgZXhwZWN0IGEgY2xvY2sgZ2F0ZSBmb3IgdGhlIGJ1cworCSAq IHNvbWV3aGVyZSwgYW5kIHRoZSBtdXggZXhpc3RzLCBzbyBleHBvc2luZyBvbmUgQVhJIGNsb2Nr IGluIHRoZSBiaW5kaW5ncyBpcyB0aGUgY29ycmVjdAorCSAqIHRoaW5nIHRvIGRvLiBJdCBhbHNv IHNlcnZlcyB0byB0ZWxsIHRoZSBrZXJuZWwgdG8ga2VlcCB0aGUgbXV4J3MgcGFyZW50IGVuYWJs ZWQuCisJICoKKwkgKiBSZWdpc3RlciAweDhjIGhhcyAxMiBzZXR0YWJsZSBiaXRzICgweGZmZiku IFVsdGltYXRlbHkgaXQgZG9lc24ndCBtYXR0ZXIgbXVjaCB3aGljaAorCSAqIGRvLW5vdC1yZW1v dmUgYml0IHdlIGRvbid0IHJlbW92ZS4gT3RoZXIgYml0cyBpbiB0aGlzIHJlZ2lzdGVyIGJlaGF2 ZSBsaWtlIGdhdGVzIChlLmcKKwkgKiBiaXRzIDExOjggY3V0IG9mZiBVU0IgdGVtcG9yYXJpbHkp LCBzbyBJIHRoaW5rIHdlIGFyZSBsb29raW5nIGluIHRoZSByaWdodCBwbGFjZS4KKwkgKgorCSAq IElmIGFuIGV4cGxhbmF0aW9uIGZvciB0aGUgcmVtYWluaW5nIGJpdHMgc3VyZmFjZXMgYW5kIHRo ZXkgYXJlIGZ1cnRoZXIgZ2F0ZXMgYW5kL29yCisJICogcmVzZXRzLCBhZGQgdGhlbSB0byB0aGUg YmluZGluZ3MuCisJICovCisJW1pYX0NMS19BWElfV0NMS10gICAgICAgICA9IEdBVEUoImF4aS13 Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19BWElfTVVYKSwgMHg4YywgNSwKKwkJCQkJIENMS19JU19D UklUSUNBTCksCisKKwlbWlhfQ0xLX0RNQV9QQ0xLXSAgICAgICAgID0gR0FURSgiZG1hLXBjbGsi LCBjbGtfbWFpblswXSwgMHg5NCwgMywgMCksCisKKwkvKgorCSAqIFRoZXJlIGFyZSBhIGxvdCBt b3JlIFZPVSByZWxhdGVkIGNvbnRyb2xzIGluIHRoZXNlIHJlZ2lzdGVycywgYnV0IHR1cm5pbmcg b2ZmIHRoZSBtYWluCisJICogY2xvY2sgc2VlbXMgdG8gc2h1dCBvZmYgdGhlIGVudGlyZSBWT1Ug TU1JTyByYW5nZS4KKwkgKi8KKwlbWlhfQ0xLX1ZPVV9XQ0xLXSAgICAgICAgID0gR0FURSgidm91 LXdjbGsiLCBtYXRyaXhfdW5rLCAweDE2OCwgMCwgMCksCisJW1pYX0NMS19WT1VfUENMS10gICAg ICAgICA9IEdBVEUoInZvdS1wY2xrIiwgY2xrX21haW5bMF0sIDB4MTY4LCAxLCAwKSwKKworCS8q CisJICogTFNQIHVwbGluayBjbG9ja3MuIFRoZSBwY2xrIGlzIGZhaXJseSBvYnZpb3VzIChkaXNh YmxpbmcgaXQgc2h1dHMgb2ZmIHRoZSBlbnRpcmUgTFNQCisJICogcmVnaXN0ZXIgYXJlYSkuIFRo ZSB3Y2xrIHNwZWVkcyB3ZXJlIGRlZHVjZWQgYnkgc2V0dGluZyB0aW1lcnMgYW5kIHFzcGkgbXV4 ZXMgdG8gYQorCSAqIHNwZWNpZmljIHNwZWVkIGFuZCBzZWVpbmcgd2hpY2ggYml0IGluIG1hdHJp eCsweDdjIG5lZWRzIHRvIGJlIGVuYWJsZWQgZm9yIHRoZSBkZXZpY2UKKwkgKiB0byB3b3JrLgor CSAqCisJICogRHVlIHRvIHRoZSB0aW1lcnMgSSBhbSBjZXJ0YWluIGFib3V0IHRoZSAyNiBNSHog YW5kIDMyIGtIeiBjbG9ja3MuIEkgY2Fubm90IGRpcmVjdGx5CisJICogb2JzZXJ2ZSB0aGUgcXNw aSBtdXggZnJlcXVlbmN5LCBzbyB0aGUgY2xvY2sgcmF0ZXMgZGVwZW5kIG9uIFpURSdzIHFzcGkg bXV4IHNlbGVjdGlvbgorCSAqIGJlaW5nIGNvcnJlY3QuCisJICoKKwkgKiBUd28gYWRkaXRpb25h bCBiaXRzIGFyZSBzcGVjaWZpYyB0byBzb3VuZCBjb21wb25lbnRzIC0gdGhlIG11eCBmb3IgdGhl IExTUCdzIFRETSBJUCBpcworCSAqIGluIG1hdHJpeGNybSBhbmQgZ2V0cyBwYXNzZWQgZG93bi4g STJTIGhhcyBhIG11eCBpbiBMU1AsIHdoaWNoIGNhbiBzZWxlY3QgdGhlIGRwbGwtZDQKKwkgKiBj bG9jay4KKwkgKi8KKwlbWlhfQ0xLX1RPTFNQX01QTExfRDVfV0NMS10gID0gR0FURSgibHNwLW1w bGwtZDUiLCBQQVJFTlRfRlcoIm1wbGwtZDUiKSwgMHg3YywgMCwgMCksCisJW1pYX0NMS19UT0xT UF9NUExMX0Q0X1dDTEtdICA9IEdBVEUoImxzcC1tcGxsLWQ0IiwgUEFSRU5UX0lEKFpYX0NMS19N QVRSSVhfTVBMTF9ENCksCisJCQkJCSAgICAweDdjLCAxLCAwKSwKKwlbWlhfQ0xLX1RPTFNQX01Q TExfRDZfV0NMS10gID0gR0FURSgibHNwLW1wbGwtZDYiLCBQQVJFTlRfSUQoWlhfQ0xLX01BVFJJ WF9NUExMX0Q2KSwKKwkJCQkJICAgIDB4N2MsIDIsIDApLAorCVtaWF9DTEtfVE9MU1BfTVBMTF9E OF9XQ0xLXSAgPSBHQVRFKCJsc3AtbXBsbC1kOCIsIFBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01Q TExfRDgpLAorCQkJCQkgICAgMHg3YywgMywgMCksCisJW1pYX0NMS19UT0xTUF9NUExMX0QxMl9X Q0xLXSA9IEdBVEUoImxzcC1tcGxsLWQxMiIsIFBBUkVOVF9JRChaWF9DTEtfTUFUUklYX01QTExf RDEyKSwKKwkJCQkJICAgIDB4N2MsIDQsIDApLAorCVtaWF9DTEtfVE9MU1BfT1NDMjZNX1dDTEtd ICAgPSBHQVRFKCJsc3Atb3NjMjZtIiwgUEFSRU5UX0ZXKCJ3Y2xrLW9zYzI2bSIpLCAweDdjLCA1 LCAwKSwKKwlbWlhfQ0xLX1RPTFNQX09TQzMyS19XQ0xLXSAgID0gR0FURSgibHNwLW9zYzMyayIs IFBBUkVOVF9GVygib3NjMzJrIiksIDB4N2MsIDYsIDApLAorCVtaWF9DTEtfVE9MU1BfUENMS10g ICAgICAgICAgPSBHQVRFKCJsc3AtcGNsayIsIGNsa19tYWluWzBdLCAweDdjLCA3LCAwKSwKKwlb WlhfQ0xLX1RPTFNQX1RETV9XQ0xLXSAgICAgID0gR0FURSgibHNwLXRkbS13Y2xrIiwgUEFSRU5U X0lEKFpYX0NMS19URE1fTVVYKSwgMHg3YywgOCwgMCksCisJW1pYX0NMS19UT0xTUF9EUExMX0Q0 X1dDTEtdICA9IEdBVEUoImxzcC1kcGxsLWQ0IiwgUEFSRU5UX0lEKFpYX0NMS19NQVRSSVhfRFBM TF9ENCksCisJCQkJCSAgICAweDdjLCA5LCAwKSwKK307CisKK3N0YXRpYyBpbnQgengyOTc1MjB2 M19tYXRyaXhfaW5pdChzdHJ1Y3QgcmVnbWFwICptYXApCit7CisJdTMyIGF4aV92YWw7CisJaW50 IHJlczsKKworCS8qIFJlYWQgdGhlIGdsb2JhbCBBWEkgc3BlZWQgc2VsZWN0aW9uLCBpbnNlcnQg aXQgaW50byBvdXIgYmFsbG90IGFuZCBlbmFibGUgdm90aW5nICovCisJcmVzID0gcmVnbWFwX3Jl YWQobWFwLCAweDAsICZheGlfdmFsKTsKKwlpZiAocmVzKQorCQlyZXR1cm4gcmVzOworCisJYXhp X3ZhbCAmPSAweDc7CisJcmVzID0gcmVnbWFwX3dyaXRlKG1hcCwgWlgyOTc1MjBWM19BWElfQVBf Vk9URSwgYXhpX3ZhbCk7CisJaWYgKHJlcykKKwkJcmV0dXJuIHJlczsKKworCXJldHVybiByZWdt YXBfd3JpdGUobWFwLCAweDEyYywgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgengyOTc1 MjB2M19tYXRyaXhfZXhwb3J0c1tdID0geworCVtaWDI5NzUyMFYzX1NZU19USU1FUl9XQ0xLXSA9 CQlaWF9DTEtfU1lTX1RJTUVSX1dDTEssCisJW1pYMjk3NTIwVjNfQ1BVX1dDTEtdID0JCQlaWF9D TEtfQ1BVX1dDTEssCisJW1pYMjk3NTIwVjNfQ1BVX1BDTEtdID0JCQlaWF9DTEtfQ1BVX1BDTEss CisJW1pYMjk3NTIwVjNfWlNQX1dDTEtdID0JCQlaWF9DTEtfWlNQX1dDTEssCisJW1pYMjk3NTIw VjNfRERSX0NUUkxfUENMS10gPQkJWlhfQ0xLX0REUl9DVFJMX1BDTEssCisJW1pYMjk3NTIwVjNf RERSX0NUUkxfV0NMS10gPQkJWlhfQ0xLX0REUl9DVFJMX1dDTEssCisJW1pYMjk3NTIwVjNfRURD UF9XQ0xLXSA9CQlaWF9DTEtfRURDUF9XQ0xLLAorCVtaWDI5NzUyMFYzX0VEQ1BfUENMS10gPQkJ WlhfQ0xLX0VEQ1BfUENMSywKKwlbWlgyOTc1MjBWM19TRDBfV0NMS10gPQkJCVpYX0NMS19TRDBf V0NMSywKKwlbWlgyOTc1MjBWM19TRDBfUENMS10gPQkJCVpYX0NMS19TRDBfUENMSywKKwlbWlgy OTc1MjBWM19TRDBfQ0RFVF0gPQkJCVpYX0NMS19TRDBfQ0RFVCwKKwlbWlgyOTc1MjBWM19TRDFf V0NMS10gPQkJCVpYX0NMS19TRDFfV0NMSywKKwlbWlgyOTc1MjBWM19TRDFfUENMS10gPQkJCVpY X0NMS19TRDFfUENMSywKKwlbWlgyOTc1MjBWM19TRDFfQ0RFVF0gPQkJCVpYX0NMS19TRDFfQ0RF VCwKKwlbWlgyOTc1MjBWM19OQU5EX1dDTEtdID0JCVpYX0NMS19OQU5EX1dDTEssCisJW1pYMjk3 NTIwVjNfTkFORF9QQ0xLXSA9CQlaWF9DTEtfTkFORF9QQ0xLLAorCVtaWDI5NzUyMFYzX0RNQV9Q Q0xLXSA9CQkJWlhfQ0xLX0RNQV9QQ0xLLAorCVtaWDI5NzUyMFYzX01CT1hfUENMS10gPQkJWlhf Q0xLX01CT1hfUENMSywKKwlbWlgyOTc1MjBWM19QRENGR19XQ0xLXSA9CQlaWF9DTEtfUERDRkdf V0NMSywKKwlbWlgyOTc1MjBWM19QRENGR19QQ0xLXSA9CQlaWF9DTEtfUERDRkdfUENMSywKKwlb WlgyOTc1MjBWM19TU0NfV0NMS10gPQkJCVpYX0NMS19TU0NfV0NMSywKKwlbWlgyOTc1MjBWM19T U0NfUENMS10gPQkJCVpYX0NMS19TU0NfUENMSywKKwlbWlgyOTc1MjBWM19BWElfV0NMS10gPQkJ CVpYX0NMS19BWElfV0NMSywKKwlbWlgyOTc1MjBWM19HTUFDX1dDTEtdID0JCVpYX0NMS19HTUFD X1dDTEssCisJW1pYMjk3NTIwVjNfR01BQ19QQ0xLXSA9CQlaWF9DTEtfR01BQ19QQ0xLLAorCVta WDI5NzUyMFYzX0dNQUNfQUhCXSA9CQkJWlhfQ0xLX0dNQUNfQUhCLAorCVtaWDI5NzUyMFYzX1ZP VV9XQ0xLXSA9CQkJWlhfQ0xLX1ZPVV9XQ0xLLAorCVtaWDI5NzUyMFYzX1ZPVV9QQ0xLXSA9CQkJ WlhfQ0xLX1ZPVV9QQ0xLLAorCVtaWDI5NzUyMFYzX0xTUF9NUExMX0Q1X1dDTEtdID0JCVpYX0NM S19UT0xTUF9NUExMX0Q1X1dDTEssCisJW1pYMjk3NTIwVjNfTFNQX01QTExfRDRfV0NMS10gPQkJ WlhfQ0xLX1RPTFNQX01QTExfRDRfV0NMSywKKwlbWlgyOTc1MjBWM19MU1BfTVBMTF9ENl9XQ0xL XSA9CQlaWF9DTEtfVE9MU1BfTVBMTF9ENl9XQ0xLLAorCVtaWDI5NzUyMFYzX0xTUF9NUExMX0Q4 X1dDTEtdID0JCVpYX0NMS19UT0xTUF9NUExMX0Q4X1dDTEssCisJW1pYMjk3NTIwVjNfTFNQX01Q TExfRDEyX1dDTEtdID0JWlhfQ0xLX1RPTFNQX01QTExfRDEyX1dDTEssCisJW1pYMjk3NTIwVjNf TFNQX09TQzI2TV9XQ0xLXSA9CQlaWF9DTEtfVE9MU1BfT1NDMjZNX1dDTEssCisJW1pYMjk3NTIw VjNfTFNQX09TQzMyS19XQ0xLXSA9CQlaWF9DTEtfVE9MU1BfT1NDMzJLX1dDTEssCisJW1pYMjk3 NTIwVjNfTFNQX1BDTEtdID0JCQlaWF9DTEtfVE9MU1BfUENMSywKKwlbWlgyOTc1MjBWM19MU1Bf VERNX1dDTEtdID0JCVpYX0NMS19UT0xTUF9URE1fV0NMSywKKwlbWlgyOTc1MjBWM19MU1BfRFBM TF9ENF9XQ0xLXSA9CQlaWF9DTEtfVE9MU1BfRFBMTF9ENF9XQ0xLLAorCVtaWDI5NzUyMFYzX1NS QU0wX1BDTEtdID0JCVpYX0NMS19TUkFNMF9QQ0xLLAorCVtaWDI5NzUyMFYzX0dTTV9DRkdfUENM S10gPQkJWlhfQ0xLX0dTTV9DRkdfUENMSywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgenhf Y2xrX2RhdGEgengyOTc1MjB2M19tYXRyaXhjbGtfZGF0YSA9IHsKKwkuaW5pdCA9IHp4Mjk3NTIw djNfbWF0cml4X2luaXQsCisJLmNsb2NrcyA9IHp4Mjk3NTIwdjNfbWF0cml4X2Nsb2NrcywKKwku bnVtX2Nsb2NrcyA9IEFSUkFZX1NJWkUoengyOTc1MjB2M19tYXRyaXhfY2xvY2tzKSwKKwkuZXhw b3J0cyA9IHp4Mjk3NTIwdjNfbWF0cml4X2V4cG9ydHMsCisJLm51bV9leHBvcnRzID0gQVJSQVlf U0laRSh6eDI5NzUyMHYzX21hdHJpeF9leHBvcnRzKSwKK307CisKIHN0YXRpYyBpbnQgY2xrX3p4 Mjk3NTIwdjNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAljb25zdCBz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkICppZCA9IHBsYXRmb3JtX2dldF9kZXZpY2VfaWQocGRl dik7CkBAIC03ODUsNiArMTI2NCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBsYXRmb3JtX2Rl dmljZV9pZCBjbGtfengyOTc1MjB2M19pZHNbXSA9IHsKIAkJLm5hbWUgPSAiengyOTc1MjB2My10 b3BjbGsiLAogCQkuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpJnp4Mjk3NTIwdjNfdG9w Y2xrX2RhdGEsCiAJfSwKKwl7CisJCS5uYW1lID0gInp4Mjk3NTIwdjMtbWF0cml4Y2xrIiwKKwkJ LmRyaXZlcl9kYXRhID0gKGtlcm5lbF91bG9uZ190KSZ6eDI5NzUyMHYzX21hdHJpeGNsa19kYXRh LAorCX0sCiAJeyB9CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShwbGF0Zm9ybSwgY2xrX3p4Mjk3 NTIwdjNfaWRzKTsKCi0tIAoyLjU0LjAKCgotLSAKbGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51 eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1waHkK