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.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 CC55CC433E0 for ; Fri, 19 Mar 2021 11:30:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9726164F6F for ; Fri, 19 Mar 2021 11:30:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229512AbhCSL3q (ORCPT ); Fri, 19 Mar 2021 07:29:46 -0400 Received: from regular1.263xmail.com ([211.150.70.195]:58890 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229634AbhCSL3X (ORCPT ); Fri, 19 Mar 2021 07:29:23 -0400 Received: from localhost (unknown [192.168.167.13]) by regular1.263xmail.com (Postfix) with ESMTP id 20D951CB0; Fri, 19 Mar 2021 19:28:53 +0800 (CST) X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-ADDR-CHECKED4: 1 X-ANTISPAM-LEVEL: 2 X-SKE-CHECKED: 1 X-ABS-CHECKED: 1 Received: from desktop-sg5v5ea (unknown [58.22.7.114]) by smtp.263.net (postfix) whith ESMTP id P13096T140547637376768S1616153332950292_; Fri, 19 Mar 2021 19:28:53 +0800 (CST) X-IP-DOMAINF: 1 X-UNIQUE-TAG: X-RL-SENDER: jay.xu@rock-chips.com X-SENDER: xjq@rock-chips.com X-LOGIN-NAME: jay.xu@rock-chips.com X-FST-TO: jay.xu@rock-chips.com X-SENDER-IP: 58.22.7.114 X-ATTACHMENT-NUM: 0 X-System-Flag: 0 Date: Fri, 19 Mar 2021 19:28:52 +0800 From: "jay.xu@rock-chips.com" To: =?utf-8?B?6K645YmR576k?= , "Linus Walleij" , =?utf-8?B?SGVpa28gU3TDvGJuZXI=?= , "Catalin Marinas" , "Will Deacon" Cc: "open list:GPIO SUBSYSTEM" , "open list:ARM/Rockchip SoC..." Subject: Re: [PATCH v4] pinctrl: rockchip: add support for rk3568 References: <20210304013342.1106361-1-jay.xu@rock-chips.com>, <20210319081441.368358-1-jay.xu@rock-chips.com> X-Priority: 3 X-Has-Attach: no X-Mailer: Foxmail 7.2.19.158[cn] Mime-Version: 1.0 Message-ID: <202103191928522064250@rock-chips.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org VGVzdGVkIG9uwqByb2NrY2hpcCxyazM1NjgtZXZiMS1kZHI0LXYxMAoKLyAjIGNhdCAvc3lzL2Zp cm13YXJlL2RldmljZXRyZWUvYmFzZS9jb21wYXRpYmxlwqAKcm9ja2NoaXAscmszNTY4LWV2YjEt ZGRyNC12MTByb2NrY2hpcCxyazM1NjgvICMKLyAjIGNhdCAvc3lzL2tlcm5lbC9kZWJ1Zy9waW5j dHJsL3BpbmN0cmwtcm9ja2NoaXAtcGluY3RybC9ncGlvLXJhbmdlc8KgCkdQSU8gcmFuZ2VzIGhh bmRsZWQ6CjA6IGdwaW8wIEdQSU9TIFswIC0gMzFdIFBJTlMgWzAgLSAzMV0KMTogZ3BpbzEgR1BJ T1MgWzMyIC0gNjNdIFBJTlMgWzMyIC0gNjNdCjI6IGdwaW8yIEdQSU9TIFs2NCAtIDk1XSBQSU5T IFs2NCAtIDk1XQozOiBncGlvMyBHUElPUyBbOTYgLSAxMjddIFBJTlMgWzk2IC0gMTI3XQo0OiBn cGlvNCBHUElPUyBbMTI4IC0gMTU5XSBQSU5TIFsxMjggLSAxNTldCgotLS0tLS0tLS0tLS0tLQpq YXkueHVAcm9jay1jaGlwcy5jb20KPlJLMzU2OCBTb0NzIGhhdmUgNSBncGlvIGNvbnRyb2xsZXJz LCBlYWNoIGdwaW8gaGFzIDMyIHBpbnMuIEdQSU8gc3VwcG9ydHMKPnNldCBpb211eCwgcHVsbCwg ZHJpdmUgc3RyZW5ndGggYW5kIHNjaG1pdHQuCj4KPlNpZ25lZC1vZmYtYnk6IEppYW5xdW4gWHUg PGpheS54dUByb2NrLWNoaXBzLmNvbT4KPi0tLQo+djM6Cj4tIGZpeCByb3V0ZV90eXBlIHRvIHJv dXRlX2xvY2F0aW9uLCBjb21waWxlIGVycm9yIGZpeAo+LSByZW1vdmUgc2xld3JhdGUgb3B0aW9u Cj52MjoKPi0gZml4IG11eCByb3V0ZSBncmYgYmFzZSBmb3IgZ3BpbyBiYW5rIDAKPnYxOgo+LSBt b2RpZnkgX0dFTk1BU0sgdG8gV1JJVEVfTUFTS19WQUwsIGFuZCBhZGQgY29tbWVudCBmb3IgdGhl IGRlZmluZQo+LSBtb2RpZnkgTVJfR1JGIHRvIFJLX01VWFJPVVRFX0dSRiwgYWxzbyBmb3IgTVJf U0FNRSBhbmQgTVJfUE1VCj4tIGFkZCBjb21tZW50IGZvciBwdWxsIHNldHRpbmcgZm9yIEdQSU8w X0QwLUQ2Cj4KPiBkcml2ZXJzL3BpbmN0cmwvcGluY3RybC1yb2NrY2hpcC5jIHwgMjkyICsrKysr KysrKysrKysrKysrKysrKysrKysrKystCj4gMSBmaWxlIGNoYW5nZWQsIDI5MCBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQo+Cj5kaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0 cmwtcm9ja2NoaXAuYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXJvY2tjaGlwLmMKPmluZGV4 IGRlYWJmYmM3NGEwMS4uMmViNTFkZGZjYTAyIDEwMDY0NAo+LS0tIGEvZHJpdmVycy9waW5jdHJs L3BpbmN0cmwtcm9ja2NoaXAuYwo+KysrIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtcm9ja2No aXAuYwo+QEAgLTYzLDggKzYzLDE3IEBAIGVudW0gcm9ja2NoaXBfcGluY3RybF90eXBlIHsKPiBS SzMzMDgsCj4gUkszMzY4LAo+IFJLMzM5OSwKPisJUkszNTY4LAo+IH07Cj4KPisKPisvKioKPisg KiBHZW5lcmF0ZSBhIGJpdG1hc2sgZm9yIHNldHRpbmcgYSB2YWx1ZSAodikgd2l0aCBhIHdyaXRl IG1hc2sgYml0IGluIGhpd29yZAo+KyAqIHJlZ2lzdGVyIDMxOjE2IGFyZWEuCj4rICovCj4rI2Rl ZmluZSBXUklURV9NQVNLX1ZBTChoLCBsLCB2KSBcCj4rCShHRU5NQVNLKCgoaCkgKyAxNiksICgo bCkgKyAxNikpIHwgKCgodikgPDwgKGwpKSAmIEdFTk1BU0soKGgpLCAobCkpKSkKPisKPiAvKgo+ wqAgKiBFbmNvZGUgdmFyaWFudHMgb2YgaW9tdXggcmVnaXN0ZXJzIGludG8gYSB0eXBlIHZhcmlh YmxlCj7CoCAqLwo+QEAgLTI5Miw2ICszMDEsMjUgQEAgc3RydWN0IHJvY2tjaGlwX3Bpbl9iYW5r IHsKPiAucHVsbF90eXBlWzNdID0gcHVsbDMsCVwKPiB9Cj4KPisjZGVmaW5lIFBJTl9CQU5LX01V WF9ST1VURV9GTEFHUyhJRCwgUElOLCBGVU5DLCBSRUcsIFZBTCwgRkxBRykJXAo+Kwl7CVwKPisJ LmJhbmtfbnVtCT0gSUQsCVwKPisJLnBpbgk9IFBJTiwJXAo+KwkuZnVuYwk9IEZVTkMsCVwKPisJ LnJvdXRlX29mZnNldAk9IFJFRywJXAo+Kwkucm91dGVfdmFsCT0gVkFMLAlcCj4rCS5yb3V0ZV9s b2NhdGlvbgk9IEZMQUcsCVwKPisJfQo+Kwo+KyNkZWZpbmUgUktfTVVYUk9VVEVfU0FNRShJRCwg UElOLCBGVU5DLCBSRUcsIFZBTCkJXAo+KwlQSU5fQkFOS19NVVhfUk9VVEVfRkxBR1MoSUQsIFBJ TiwgRlVOQywgUkVHLCBWQUwsIFJPQ0tDSElQX1JPVVRFX1NBTUUpCj4rCj4rI2RlZmluZSBSS19N VVhST1VURV9HUkYoSUQsIFBJTiwgRlVOQywgUkVHLCBWQUwpCVwKPisJUElOX0JBTktfTVVYX1JP VVRFX0ZMQUdTKElELCBQSU4sIEZVTkMsIFJFRywgVkFMLCBST0NLQ0hJUF9ST1VURV9HUkYpCj4r Cj4rI2RlZmluZSBSS19NVVhST1VURV9QTVUoSUQsIFBJTiwgRlVOQywgUkVHLCBWQUwpCVwKPisJ UElOX0JBTktfTVVYX1JPVVRFX0ZMQUdTKElELCBQSU4sIEZVTkMsIFJFRywgVkFMLCBST0NLQ0hJ UF9ST1VURV9QTVUpCj4rCj4gLyoqCj7CoCAqIHN0cnVjdCByb2NrY2hpcF9tdXhfcmVjYWxjZWRf ZGF0YTogcmVwcmVzZW50IGEgcGluIGlvbXV4IGRhdGEuCj7CoCAqIEBudW06IGJhbmsgbnVtYmVy Lgo+QEAgLTEzOTYsNiArMTQyNCwxMDIgQEAgc3RhdGljIHN0cnVjdCByb2NrY2hpcF9tdXhfcm91 dGVfZGF0YSByazMzOTlfbXV4X3JvdXRlX2RhdGFbXSA9IHsKPiB9LAo+IH07Cj4KPitzdGF0aWMg c3RydWN0IHJvY2tjaGlwX211eF9yb3V0ZV9kYXRhIHJrMzU2OF9tdXhfcm91dGVfZGF0YVtdID0g ewo+KwlSS19NVVhST1VURV9QTVUoMCwgUktfUEI3LCAxLCAweDAxMTAsIFdSSVRFX01BU0tfVkFM KDEsIDAsIDApKSwgLyogUFdNMCBJTyBtdXggTTAgKi8KPisJUktfTVVYUk9VVEVfUE1VKDAsIFJL X1BDNywgMiwgMHgwMTEwLCBXUklURV9NQVNLX1ZBTCgxLCAwLCAxKSksIC8qIFBXTTAgSU8gbXV4 IE0xICovCj4rCVJLX01VWFJPVVRFX1BNVSgwLCBSS19QQzAsIDEsIDB4MDExMCwgV1JJVEVfTUFT S19WQUwoMywgMiwgMCkpLCAvKiBQV00xIElPIG11eCBNMCAqLwo+KwlSS19NVVhST1VURV9QTVUo MCwgUktfUEI1LCA0LCAweDAxMTAsIFdSSVRFX01BU0tfVkFMKDMsIDIsIDEpKSwgLyogUFdNMSBJ TyBtdXggTTEgKi8KPisJUktfTVVYUk9VVEVfUE1VKDAsIFJLX1BDMSwgMSwgMHgwMTEwLCBXUklU RV9NQVNLX1ZBTCg1LCA0LCAwKSksIC8qIFBXTTIgSU8gbXV4IE0wICovCj4rCVJLX01VWFJPVVRF X1BNVSgwLCBSS19QQjYsIDQsIDB4MDExMCwgV1JJVEVfTUFTS19WQUwoNSwgNCwgMSkpLCAvKiBQ V00yIElPIG11eCBNMSAqLwo+KwlSS19NVVhST1VURV9QTVUoMCwgUktfUEIzLCAyLCAweDAzMDAs IFdSSVRFX01BU0tfVkFMKDAsIDAsIDApKSwgLyogQ0FOMCBJTyBtdXggTTAgKi8KPisJUktfTVVY Uk9VVEVfR1JGKDIsIFJLX1BBMSwgNCwgMHgwMzAwLCBXUklURV9NQVNLX1ZBTCgwLCAwLCAxKSks IC8qIENBTjAgSU8gbXV4IE0xICovCj4rCVJLX01VWFJPVVRFX0dSRigxLCBSS19QQTEsIDMsIDB4 MDMwMCwgV1JJVEVfTUFTS19WQUwoMiwgMiwgMCkpLCAvKiBDQU4xIElPIG11eCBNMCAqLwo+KwlS S19NVVhST1VURV9HUkYoNCwgUktfUEMzLCAzLCAweDAzMDAsIFdSSVRFX01BU0tfVkFMKDIsIDIs IDEpKSwgLyogQ0FOMSBJTyBtdXggTTEgKi8KPisJUktfTVVYUk9VVEVfR1JGKDQsIFJLX1BCNSwg MywgMHgwMzAwLCBXUklURV9NQVNLX1ZBTCg0LCA0LCAwKSksIC8qIENBTjIgSU8gbXV4IE0wICov Cj4rCVJLX01VWFJPVVRFX0dSRigyLCBSS19QQjIsIDQsIDB4MDMwMCwgV1JJVEVfTUFTS19WQUwo NCwgNCwgMSkpLCAvKiBDQU4yIElPIG11eCBNMSAqLwo+KwlSS19NVVhST1VURV9HUkYoNCwgUktf UEM0LCAxLCAweDAzMDAsIFdSSVRFX01BU0tfVkFMKDYsIDYsIDApKSwgLyogSFBESU4gSU8gbXV4 IE0wICovCj4rCVJLX01VWFJPVVRFX1BNVSgwLCBSS19QQzIsIDIsIDB4MDMwMCwgV1JJVEVfTUFT S19WQUwoNiwgNiwgMSkpLCAvKiBIUERJTiBJTyBtdXggTTEgKi8KPisJUktfTVVYUk9VVEVfR1JG KDMsIFJLX1BCMSwgMywgMHgwMzAwLCBXUklURV9NQVNLX1ZBTCg4LCA4LCAwKSksIC8qIEdNQUMx IElPIG11eCBNMCAqLwo+KwlSS19NVVhST1VURV9HUkYoNCwgUktfUEE3LCAzLCAweDAzMDAsIFdS SVRFX01BU0tfVkFMKDgsIDgsIDEpKSwgLyogR01BQzEgSU8gbXV4IE0xICovCj4rCVJLX01VWFJP VVRFX0dSRig0LCBSS19QRDEsIDEsIDB4MDMwMCwgV1JJVEVfTUFTS19WQUwoMTAsIDEwLCAwKSks IC8qIEhETUlUWCBJTyBtdXggTTAgKi8KPisJUktfTVVYUk9VVEVfUE1VKDAsIFJLX1BDNywgMSwg MHgwMzAwLCBXUklURV9NQVNLX1ZBTCgxMCwgMTAsIDEpKSwgLyogSERNSVRYIElPIG11eCBNMSAq Lwo+KwlSS19NVVhST1VURV9QTVUoMCwgUktfUEI2LCAxLCAweDAzMDAsIFdSSVRFX01BU0tfVkFM KDE0LCAxNCwgMCkpLCAvKiBJMkMyIElPIG11eCBNMCAqLwo+KwlSS19NVVhST1VURV9HUkYoNCwg UktfUEI0LCAxLCAweDAzMDAsIFdSSVRFX01BU0tfVkFMKDE0LCAxNCwgMSkpLCAvKiBJMkMyIElP IG11eCBNMSAqLwo+KwlSS19NVVhST1VURV9HUkYoMSwgUktfUEEwLCAxLCAweDAzMDQsIFdSSVRF X01BU0tfVkFMKDAsIDAsIDApKSwgLyogSTJDMyBJTyBtdXggTTAgKi8KPisJUktfTVVYUk9VVEVf R1JGKDMsIFJLX1BCNiwgNCwgMHgwMzA0LCBXUklURV9NQVNLX1ZBTCgwLCAwLCAxKSksIC8qIEky QzMgSU8gbXV4IE0xICovCj4rCVJLX01VWFJPVVRFX0dSRig0LCBSS19QQjIsIDEsIDB4MDMwNCwg V1JJVEVfTUFTS19WQUwoMiwgMiwgMCkpLCAvKiBJMkM0IElPIG11eCBNMCAqLwo+KwlSS19NVVhS T1VURV9HUkYoMiwgUktfUEIxLCAyLCAweDAzMDQsIFdSSVRFX01BU0tfVkFMKDIsIDIsIDEpKSwg LyogSTJDNCBJTyBtdXggTTEgKi8KPisJUktfTVVYUk9VVEVfR1JGKDMsIFJLX1BCNCwgNCwgMHgw MzA0LCBXUklURV9NQVNLX1ZBTCg0LCA0LCAwKSksIC8qIEkyQzUgSU8gbXV4IE0wICovCj4rCVJL X01VWFJPVVRFX0dSRig0LCBSS19QRDAsIDIsIDB4MDMwNCwgV1JJVEVfTUFTS19WQUwoNCwgNCwg MSkpLCAvKiBJMkM1IElPIG11eCBNMSAqLwo+KwlSS19NVVhST1VURV9HUkYoMywgUktfUEIxLCA1 LCAweDAzMDQsIFdSSVRFX01BU0tfVkFMKDE0LCAxNCwgMCkpLCAvKiBQV004IElPIG11eCBNMCAq Lwo+KwlSS19NVVhST1VURV9HUkYoMSwgUktfUEQ1LCA0LCAweDAzMDQsIFdSSVRFX01BU0tfVkFM KDE0LCAxNCwgMSkpLCAvKiBQV004IElPIG11eCBNMSAqLwo+KwlSS19NVVhST1VURV9HUkYoMywg UktfUEIyLCA1LCAweDAzMDgsIFdSSVRFX01BU0tfVkFMKDAsIDAsIDApKSwgLyogUFdNOSBJTyBt dXggTTAgKi8KPisJUktfTVVYUk9VVEVfR1JGKDEsIFJLX1BENiwgNCwgMHgwMzA4LCBXUklURV9N QVNLX1ZBTCgwLCAwLCAxKSksIC8qIFBXTTkgSU8gbXV4IE0xICovCj4rCVJLX01VWFJPVVRFX0dS RigzLCBSS19QQjUsIDUsIDB4MDMwOCwgV1JJVEVfTUFTS19WQUwoMiwgMiwgMCkpLCAvKiBQV00x MCBJTyBtdXggTTAgKi8KPisJUktfTVVYUk9VVEVfR1JGKDIsIFJLX1BBMSwgMiwgMHgwMzA4LCBX UklURV9NQVNLX1ZBTCgyLCAyLCAxKSksIC8qIFBXTTEwIElPIG11eCBNMSAqLwo+KwlSS19NVVhS T1VURV9HUkYoMywgUktfUEI2LCA1LCAweDAzMDgsIFdSSVRFX01BU0tfVkFMKDQsIDQsIDApKSwg LyogUFdNMTEgSU8gbXV4IE0wICovCj4rCVJLX01VWFJPVVRFX0dSRig0LCBSS19QQzAsIDMsIDB4 MDMwOCwgV1JJVEVfTUFTS19WQUwoNCwgNCwgMSkpLCAvKiBQV00xMSBJTyBtdXggTTEgKi8KPisJ UktfTVVYUk9VVEVfR1JGKDMsIFJLX1BCNywgMiwgMHgwMzA4LCBXUklURV9NQVNLX1ZBTCg2LCA2 LCAwKSksIC8qIFBXTTEyIElPIG11eCBNMCAqLwo+KwlSS19NVVhST1VURV9HUkYoNCwgUktfUEM1 LCAxLCAweDAzMDgsIFdSSVRFX01BU0tfVkFMKDYsIDYsIDEpKSwgLyogUFdNMTIgSU8gbXV4IE0x ICovCj4rCVJLX01VWFJPVVRFX0dSRigzLCBSS19QQzAsIDIsIDB4MDMwOCwgV1JJVEVfTUFTS19W QUwoOCwgOCwgMCkpLCAvKiBQV00xMyBJTyBtdXggTTAgKi8KPisJUktfTVVYUk9VVEVfR1JGKDQs IFJLX1BDNiwgMSwgMHgwMzA4LCBXUklURV9NQVNLX1ZBTCg4LCA4LCAxKSksIC8qIFBXTTEzIElP IG11eCBNMSAqLwo+KwlSS19NVVhST1VURV9HUkYoMywgUktfUEM0LCAxLCAweDAzMDgsIFdSSVRF X01BU0tfVkFMKDEwLCAxMCwgMCkpLCAvKiBQV00xNCBJTyBtdXggTTAgKi8KPisJUktfTVVYUk9V VEVfR1JGKDQsIFJLX1BDMiwgMSwgMHgwMzA4LCBXUklURV9NQVNLX1ZBTCgxMCwgMTAsIDEpKSwg LyogUFdNMTQgSU8gbXV4IE0xICovCj4rCVJLX01VWFJPVVRFX0dSRigzLCBSS19QQzUsIDEsIDB4 MDMwOCwgV1JJVEVfTUFTS19WQUwoMTIsIDEyLCAwKSksIC8qIFBXTTE1IElPIG11eCBNMCAqLwo+ KwlSS19NVVhST1VURV9HUkYoNCwgUktfUEMzLCAxLCAweDAzMDgsIFdSSVRFX01BU0tfVkFMKDEy LCAxMiwgMSkpLCAvKiBQV00xNSBJTyBtdXggTTEgKi8KPisJUktfTVVYUk9VVEVfR1JGKDMsIFJL X1BEMiwgMywgMHgwMzA4LCBXUklURV9NQVNLX1ZBTCgxNCwgMTQsIDApKSwgLyogU0RNTUMyIElP IG11eCBNMCAqLwo+KwlSS19NVVhST1VURV9HUkYoMywgUktfUEE1LCA1LCAweDAzMDgsIFdSSVRF X01BU0tfVkFMKDE0LCAxNCwgMSkpLCAvKiBTRE1NQzIgSU8gbXV4IE0xICovCj4rCVJLX01VWFJP VVRFX1BNVSgwLCBSS19QQjUsIDIsIDB4MDMwYywgV1JJVEVfTUFTS19WQUwoMCwgMCwgMCkpLCAv KiBTUEkwIElPIG11eCBNMCAqLwo+KwlSS19NVVhST1VURV9HUkYoMiwgUktfUEQzLCAzLCAweDAz MGMsIFdSSVRFX01BU0tfVkFMKDAsIDAsIDEpKSwgLyogU1BJMCBJTyBtdXggTTEgKi8KPisJUktf TVVYUk9VVEVfR1JGKDIsIFJLX1BCNSwgMywgMHgwMzBjLCBXUklURV9NQVNLX1ZBTCgyLCAyLCAw KSksIC8qIFNQSTEgSU8gbXV4IE0wICovCj4rCVJLX01VWFJPVVRFX0dSRigzLCBSS19QQzMsIDMs IDB4MDMwYywgV1JJVEVfTUFTS19WQUwoMiwgMiwgMSkpLCAvKiBTUEkxIElPIG11eCBNMSAqLwo+ KwlSS19NVVhST1VURV9HUkYoMiwgUktfUEMxLCA0LCAweDAzMGMsIFdSSVRFX01BU0tfVkFMKDQs IDQsIDApKSwgLyogU1BJMiBJTyBtdXggTTAgKi8KPisJUktfTVVYUk9VVEVfR1JGKDMsIFJLX1BB MCwgMywgMHgwMzBjLCBXUklURV9NQVNLX1ZBTCg0LCA0LCAxKSksIC8qIFNQSTIgSU8gbXV4IE0x ICovCj4rCVJLX01VWFJPVVRFX0dSRig0LCBSS19QQjMsIDQsIDB4MDMwYywgV1JJVEVfTUFTS19W QUwoNiwgNiwgMCkpLCAvKiBTUEkzIElPIG11eCBNMCAqLwo+KwlSS19NVVhST1VURV9HUkYoNCwg UktfUEMyLCAyLCAweDAzMGMsIFdSSVRFX01BU0tfVkFMKDYsIDYsIDEpKSwgLyogU1BJMyBJTyBt dXggTTEgKi8KPisJUktfTVVYUk9VVEVfR1JGKDIsIFJLX1BCNCwgMiwgMHgwMzBjLCBXUklURV9N QVNLX1ZBTCg4LCA4LCAwKSksIC8qIFVBUlQxIElPIG11eCBNMCAqLwo+KwlSS19NVVhST1VURV9Q TVUoMCwgUktfUEQxLCAxLCAweDAzMGMsIFdSSVRFX01BU0tfVkFMKDgsIDgsIDEpKSwgLyogVUFS VDEgSU8gbXV4IE0xICovCj4rCVJLX01VWFJPVVRFX1BNVSgwLCBSS19QRDEsIDEsIDB4MDMwYywg V1JJVEVfTUFTS19WQUwoMTAsIDEwLCAwKSksIC8qIFVBUlQyIElPIG11eCBNMCAqLwo+KwlSS19N VVhST1VURV9HUkYoMSwgUktfUEQ1LCAyLCAweDAzMGMsIFdSSVRFX01BU0tfVkFMKDEwLCAxMCwg MSkpLCAvKiBVQVJUMiBJTyBtdXggTTEgKi8KPisJUktfTVVYUk9VVEVfR1JGKDEsIFJLX1BBMSwg MiwgMHgwMzBjLCBXUklURV9NQVNLX1ZBTCgxMiwgMTIsIDApKSwgLyogVUFSVDMgSU8gbXV4IE0w ICovCj4rCVJLX01VWFJPVVRFX0dSRigzLCBSS19QQjcsIDQsIDB4MDMwYywgV1JJVEVfTUFTS19W QUwoMTIsIDEyLCAxKSksIC8qIFVBUlQzIElPIG11eCBNMSAqLwo+KwlSS19NVVhST1VURV9HUkYo MSwgUktfUEE2LCAyLCAweDAzMGMsIFdSSVRFX01BU0tfVkFMKDE0LCAxNCwgMCkpLCAvKiBVQVJU NCBJTyBtdXggTTAgKi8KPisJUktfTVVYUk9VVEVfR1JGKDMsIFJLX1BCMiwgNCwgMHgwMzBjLCBX UklURV9NQVNLX1ZBTCgxNCwgMTQsIDEpKSwgLyogVUFSVDQgSU8gbXV4IE0xICovCj4rCVJLX01V WFJPVVRFX0dSRigyLCBSS19QQTIsIDMsIDB4MDMxMCwgV1JJVEVfTUFTS19WQUwoMCwgMCwgMCkp LCAvKiBVQVJUNSBJTyBtdXggTTAgKi8KPisJUktfTVVYUk9VVEVfR1JGKDMsIFJLX1BDMiwgNCwg MHgwMzEwLCBXUklURV9NQVNLX1ZBTCgwLCAwLCAxKSksIC8qIFVBUlQ1IElPIG11eCBNMSAqLwo+ KwlSS19NVVhST1VURV9HUkYoMiwgUktfUEE0LCAzLCAweDAzMTAsIFdSSVRFX01BU0tfVkFMKDIs IDIsIDApKSwgLyogVUFSVDYgSU8gbXV4IE0wICovCj4rCVJLX01VWFJPVVRFX0dSRigxLCBSS19Q RDUsIDMsIDB4MDMxMCwgV1JJVEVfTUFTS19WQUwoMiwgMiwgMSkpLCAvKiBVQVJUNiBJTyBtdXgg TTEgKi8KPisJUktfTVVYUk9VVEVfR1JGKDIsIFJLX1BBNiwgMywgMHgwMzEwLCBXUklURV9NQVNL X1ZBTCg1LCA0LCAwKSksIC8qIFVBUlQ3IElPIG11eCBNMCAqLwo+KwlSS19NVVhST1VURV9HUkYo MywgUktfUEM0LCA0LCAweDAzMTAsIFdSSVRFX01BU0tfVkFMKDUsIDQsIDEpKSwgLyogVUFSVDcg SU8gbXV4IE0xICovCj4rCVJLX01VWFJPVVRFX0dSRig0LCBSS19QQTIsIDQsIDB4MDMxMCwgV1JJ VEVfTUFTS19WQUwoNSwgNCwgMikpLCAvKiBVQVJUNyBJTyBtdXggTTIgKi8KPisJUktfTVVYUk9V VEVfR1JGKDIsIFJLX1BDNSwgMywgMHgwMzEwLCBXUklURV9NQVNLX1ZBTCg2LCA2LCAwKSksIC8q IFVBUlQ4IElPIG11eCBNMCAqLwo+KwlSS19NVVhST1VURV9HUkYoMiwgUktfUEQ3LCA0LCAweDAz MTAsIFdSSVRFX01BU0tfVkFMKDYsIDYsIDEpKSwgLyogVUFSVDggSU8gbXV4IE0xICovCj4rCVJL X01VWFJPVVRFX0dSRigyLCBSS19QQjAsIDMsIDB4MDMxMCwgV1JJVEVfTUFTS19WQUwoOSwgOCwg MCkpLCAvKiBVQVJUOSBJTyBtdXggTTAgKi8KPisJUktfTVVYUk9VVEVfR1JGKDQsIFJLX1BDNSwg NCwgMHgwMzEwLCBXUklURV9NQVNLX1ZBTCg5LCA4LCAxKSksIC8qIFVBUlQ5IElPIG11eCBNMSAq Lwo+KwlSS19NVVhST1VURV9HUkYoNCwgUktfUEE0LCA0LCAweDAzMTAsIFdSSVRFX01BU0tfVkFM KDksIDgsIDIpKSwgLyogVUFSVDkgSU8gbXV4IE0yICovCj4rCVJLX01VWFJPVVRFX0dSRigxLCBS S19QQTIsIDEsIDB4MDMxMCwgV1JJVEVfTUFTS19WQUwoMTEsIDEwLCAwKSksIC8qIEkyUzEgSU8g bXV4IE0wICovCj4rCVJLX01VWFJPVVRFX0dSRigzLCBSS19QQzYsIDQsIDB4MDMxMCwgV1JJVEVf TUFTS19WQUwoMTEsIDEwLCAxKSksIC8qIEkyUzEgSU8gbXV4IE0xICovCj4rCVJLX01VWFJPVVRF X0dSRigyLCBSS19QRDAsIDUsIDB4MDMxMCwgV1JJVEVfTUFTS19WQUwoMTEsIDEwLCAyKSksIC8q IEkyUzEgSU8gbXV4IE0yICovCj4rCVJLX01VWFJPVVRFX0dSRigyLCBSS19QQzEsIDEsIDB4MDMx MCwgV1JJVEVfTUFTS19WQUwoMTIsIDEyLCAwKSksIC8qIEkyUzIgSU8gbXV4IE0wICovCj4rCVJL X01VWFJPVVRFX0dSRig0LCBSS19QQjYsIDUsIDB4MDMxMCwgV1JJVEVfTUFTS19WQUwoMTIsIDEy LCAxKSksIC8qIEkyUzIgSU8gbXV4IE0xICovCj4rCVJLX01VWFJPVVRFX0dSRigzLCBSS19QQTIs IDQsIDB4MDMxMCwgV1JJVEVfTUFTS19WQUwoMTQsIDE0LCAwKSksIC8qIEkyUzMgSU8gbXV4IE0w ICovCj4rCVJLX01VWFJPVVRFX0dSRig0LCBSS19QQzIsIDUsIDB4MDMxMCwgV1JJVEVfTUFTS19W QUwoMTQsIDE0LCAxKSksIC8qIEkyUzMgSU8gbXV4IE0xICovCj4rCVJLX01VWFJPVVRFX0dSRigx LCBSS19QQTQsIDMsIDB4MDMxNCwgV1JJVEVfTUFTS19WQUwoMSwgMCwgMCkpLCAvKiBQRE0gSU8g bXV4IE0wICovCj4rCVJLX01VWFJPVVRFX0dSRigxLCBSS19QQTYsIDMsIDB4MDMxNCwgV1JJVEVf TUFTS19WQUwoMSwgMCwgMCkpLCAvKiBQRE0gSU8gbXV4IE0wICovCj4rCVJLX01VWFJPVVRFX0dS RigzLCBSS19QRDYsIDUsIDB4MDMxNCwgV1JJVEVfTUFTS19WQUwoMSwgMCwgMSkpLCAvKiBQRE0g SU8gbXV4IE0xICovCj4rCVJLX01VWFJPVVRFX0dSRig0LCBSS19QQTAsIDQsIDB4MDMxNCwgV1JJ VEVfTUFTS19WQUwoMSwgMCwgMSkpLCAvKiBQRE0gSU8gbXV4IE0xICovCj4rCVJLX01VWFJPVVRF X0dSRigzLCBSS19QQzQsIDUsIDB4MDMxNCwgV1JJVEVfTUFTS19WQUwoMSwgMCwgMikpLCAvKiBQ RE0gSU8gbXV4IE0yICovCj4rCVJLX01VWFJPVVRFX1BNVSgwLCBSS19QQTUsIDMsIDB4MDMxNCwg V1JJVEVfTUFTS19WQUwoMywgMiwgMCkpLCAvKiBQQ0lFMjAgSU8gbXV4IE0wICovCj4rCVJLX01V WFJPVVRFX0dSRigyLCBSS19QRDAsIDQsIDB4MDMxNCwgV1JJVEVfTUFTS19WQUwoMywgMiwgMSkp LCAvKiBQQ0lFMjAgSU8gbXV4IE0xICovCj4rCVJLX01VWFJPVVRFX0dSRigxLCBSS19QQjAsIDQs IDB4MDMxNCwgV1JJVEVfTUFTS19WQUwoMywgMiwgMikpLCAvKiBQQ0lFMjAgSU8gbXV4IE0yICov Cj4rCVJLX01VWFJPVVRFX1BNVSgwLCBSS19QQTQsIDMsIDB4MDMxNCwgV1JJVEVfTUFTS19WQUwo NSwgNCwgMCkpLCAvKiBQQ0lFMzBYMSBJTyBtdXggTTAgKi8KPisJUktfTVVYUk9VVEVfR1JGKDIs IFJLX1BEMiwgNCwgMHgwMzE0LCBXUklURV9NQVNLX1ZBTCg1LCA0LCAxKSksIC8qIFBDSUUzMFgx IElPIG11eCBNMSAqLwo+KwlSS19NVVhST1VURV9HUkYoMSwgUktfUEE1LCA0LCAweDAzMTQsIFdS SVRFX01BU0tfVkFMKDUsIDQsIDIpKSwgLyogUENJRTMwWDEgSU8gbXV4IE0yICovCj4rCVJLX01V WFJPVVRFX1BNVSgwLCBSS19QQTYsIDIsIDB4MDMxNCwgV1JJVEVfTUFTS19WQUwoNywgNiwgMCkp LCAvKiBQQ0lFMzBYMiBJTyBtdXggTTAgKi8KPisJUktfTVVYUk9VVEVfR1JGKDIsIFJLX1BENCwg NCwgMHgwMzE0LCBXUklURV9NQVNLX1ZBTCg3LCA2LCAxKSksIC8qIFBDSUUzMFgyIElPIG11eCBN MSAqLwo+KwlSS19NVVhST1VURV9HUkYoNCwgUktfUEMyLCA0LCAweDAzMTQsIFdSSVRFX01BU0tf VkFMKDcsIDYsIDIpKSwgLyogUENJRTMwWDIgSU8gbXV4IE0yICovCj4rfTsKPisKPiBzdGF0aWMg Ym9vbCByb2NrY2hpcF9nZXRfbXV4X3JvdXRlKHN0cnVjdCByb2NrY2hpcF9waW5fYmFuayAqYmFu aywgaW50IHBpbiwKPiDCoMKgIGludCBtdXgsIHUzMiAqbG9jLCB1MzIgKnJlZywgdTMyICp2YWx1 ZSkKPiB7Cj5AQCAtMjEwNCw2ICsyMjI4LDY4IEBAIHN0YXRpYyB2b2lkIHJrMzM5OV9jYWxjX2Ry dl9yZWdfYW5kX2JpdChzdHJ1Y3Qgcm9ja2NoaXBfcGluX2JhbmsgKmJhbmssCj4gKmJpdCA9IChw aW5fbnVtICUgOCkgKiAyOwo+IH0KPgo+KyNkZWZpbmUgUkszNTY4X1BVTExfUE1VX09GRlNFVAkw eDIwCj4rI2RlZmluZSBSSzM1NjhfUFVMTF9HUkZfT0ZGU0VUCTB4ODAKPisjZGVmaW5lIFJLMzU2 OF9QVUxMX0JJVFNfUEVSX1BJTgkyCj4rI2RlZmluZSBSSzM1NjhfUFVMTF9QSU5TX1BFUl9SRUcJ OAo+KyNkZWZpbmUgUkszNTY4X1BVTExfQkFOS19TVFJJREUJMHgxMAo+Kwo+K3N0YXRpYyB2b2lk IHJrMzU2OF9jYWxjX3B1bGxfcmVnX2FuZF9iaXQoc3RydWN0IHJvY2tjaGlwX3Bpbl9iYW5rICpi YW5rLAo+KwlpbnQgcGluX251bSwgc3RydWN0IHJlZ21hcCAqKnJlZ21hcCwKPisJaW50ICpyZWcs IHU4ICpiaXQpCj4rewo+KwlzdHJ1Y3Qgcm9ja2NoaXBfcGluY3RybCAqaW5mbyA9IGJhbmstPmRy dmRhdGE7Cj4rCj4rCWlmIChiYW5rLT5iYW5rX251bSA9PSAwKSB7Cj4rCSpyZWdtYXAgPSBpbmZv LT5yZWdtYXBfcG11Owo+KwkqcmVnID0gUkszNTY4X1BVTExfUE1VX09GRlNFVDsKPisJKnJlZyAr PSBiYW5rLT5iYW5rX251bSAqIFJLMzU2OF9QVUxMX0JBTktfU1RSSURFOwo+KwkqcmVnICs9ICgo cGluX251bSAvIFJLMzU2OF9QVUxMX1BJTlNfUEVSX1JFRykgKiA0KTsKPisKPisJKmJpdCA9IHBp bl9udW0gJSBSSzM1NjhfUFVMTF9QSU5TX1BFUl9SRUc7Cj4rCSpiaXQgKj0gUkszNTY4X1BVTExf QklUU19QRVJfUElOOwo+Kwl9IGVsc2Ugewo+KwkqcmVnbWFwID0gaW5mby0+cmVnbWFwX2Jhc2U7 Cj4rCSpyZWcgPSBSSzM1NjhfUFVMTF9HUkZfT0ZGU0VUOwo+KwkqcmVnICs9IChiYW5rLT5iYW5r X251bSAtIDEpICogUkszNTY4X1BVTExfQkFOS19TVFJJREU7Cj4rCSpyZWcgKz0gKChwaW5fbnVt IC8gUkszNTY4X1BVTExfUElOU19QRVJfUkVHKSAqIDQpOwo+Kwo+KwkqYml0ID0gKHBpbl9udW0g JSBSSzM1NjhfUFVMTF9QSU5TX1BFUl9SRUcpOwo+KwkqYml0ICo9IFJLMzU2OF9QVUxMX0JJVFNf UEVSX1BJTjsKPisJfQo+K30KPisKPisjZGVmaW5lIFJLMzU2OF9EUlZfUE1VX09GRlNFVAkweDcw Cj4rI2RlZmluZSBSSzM1NjhfRFJWX0dSRl9PRkZTRVQJMHgyMDAKPisjZGVmaW5lIFJLMzU2OF9E UlZfQklUU19QRVJfUElOCTgKPisjZGVmaW5lIFJLMzU2OF9EUlZfUElOU19QRVJfUkVHCTIKPisj ZGVmaW5lIFJLMzU2OF9EUlZfQkFOS19TVFJJREUJMHg0MAo+Kwo+K3N0YXRpYyB2b2lkIHJrMzU2 OF9jYWxjX2Rydl9yZWdfYW5kX2JpdChzdHJ1Y3Qgcm9ja2NoaXBfcGluX2JhbmsgKmJhbmssCj4r CWludCBwaW5fbnVtLCBzdHJ1Y3QgcmVnbWFwICoqcmVnbWFwLAo+KwlpbnQgKnJlZywgdTggKmJp dCkKPit7Cj4rCXN0cnVjdCByb2NrY2hpcF9waW5jdHJsICppbmZvID0gYmFuay0+ZHJ2ZGF0YTsK PisKPisJLyogVGhlIGZpcnN0IDMyIHBpbnMgb2YgdGhlIGZpcnN0IGJhbmsgYXJlIGxvY2F0ZWQg aW4gUE1VICovCj4rCWlmIChiYW5rLT5iYW5rX251bSA9PSAwKSB7Cj4rCSpyZWdtYXAgPSBpbmZv LT5yZWdtYXBfcG11Owo+KwkqcmVnID0gUkszNTY4X0RSVl9QTVVfT0ZGU0VUOwo+KwkqcmVnICs9 ICgocGluX251bSAvIFJLMzU2OF9EUlZfUElOU19QRVJfUkVHKSAqIDQpOwo+Kwo+KwkqYml0ID0g cGluX251bSAlIFJLMzU2OF9EUlZfUElOU19QRVJfUkVHOwo+KwkqYml0ICo9IFJLMzU2OF9EUlZf QklUU19QRVJfUElOOwo+Kwl9IGVsc2Ugewo+KwkqcmVnbWFwID0gaW5mby0+cmVnbWFwX2Jhc2U7 Cj4rCSpyZWcgPSBSSzM1NjhfRFJWX0dSRl9PRkZTRVQ7Cj4rCSpyZWcgKz0gKGJhbmstPmJhbmtf bnVtIC0gMSkgKiBSSzM1NjhfRFJWX0JBTktfU1RSSURFOwo+KwkqcmVnICs9ICgocGluX251bSAv IFJLMzU2OF9EUlZfUElOU19QRVJfUkVHKSAqIDQpOwo+Kwo+KwkqYml0ID0gKHBpbl9udW0gJSBS SzM1NjhfRFJWX1BJTlNfUEVSX1JFRyk7Cj4rCSpiaXQgKj0gUkszNTY4X0RSVl9CSVRTX1BFUl9Q SU47Cj4rCX0KPit9Cj4rCj4gc3RhdGljIGludCByb2NrY2hpcF9wZXJwaW5fZHJ2X2xpc3RbRFJW X1RZUEVfTUFYXVs4XSA9IHsKPiB7IDIsIDQsIDgsIDEyLCAtMSwgLTEsIC0xLCAtMSB9LAo+IHsg MywgNiwgOSwgMTIsIC0xLCAtMSwgLTEsIC0xIH0sCj5AQCAtMjIwNCw2ICsyMzkwLDExIEBAIHN0 YXRpYyBpbnQgcm9ja2NoaXBfc2V0X2RyaXZlX3BlcnBpbihzdHJ1Y3Qgcm9ja2NoaXBfcGluX2Jh bmsgKmJhbmssCj4gYmFuay0+YmFua19udW0sIHBpbl9udW0sIHN0cmVuZ3RoKTsKPgo+IGN0cmwt PmRydl9jYWxjX3JlZyhiYW5rLCBwaW5fbnVtLCAmcmVnbWFwLCAmcmVnLCAmYml0KTsKPisJaWYg KGN0cmwtPnR5cGUgPT0gUkszNTY4KSB7Cj4rCXJtYXNrX2JpdHMgPSBSSzM1NjhfRFJWX0JJVFNf UEVSX1BJTjsKPisJcmV0ID0gKDEgPDwgKHN0cmVuZ3RoICsgMSkpIC0gMTsKPisJZ290byBjb25m aWc7Cj4rCX0KPgo+IHJldCA9IC1FSU5WQUw7Cj4gZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUo cm9ja2NoaXBfcGVycGluX2Rydl9saXN0W2Rydl90eXBlXSk7IGkrKykgewo+QEAgLTIyNzMsNiAr MjQ2NCw3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfc2V0X2RyaXZlX3BlcnBpbihzdHJ1Y3Qgcm9j a2NoaXBfcGluX2JhbmsgKmJhbmssCj4gcmV0dXJuIC1FSU5WQUw7Cj4gfQo+Cj4rY29uZmlnOgo+ IC8qIGVuYWJsZSB0aGUgd3JpdGUgdG8gdGhlIGVxdWl2YWxlbnQgbG93ZXIgYml0cyAqLwo+IGRh dGEgPSAoKDEgPDwgcm1hc2tfYml0cykgLSAxKSA8PCAoYml0ICsgMTYpOwo+IHJtYXNrID0gZGF0 YSB8IChkYXRhID4+IDE2KTsKPkBAIC0yMzc1LDYgKzI1NjcsNyBAQCBzdGF0aWMgaW50IHJvY2tj aGlwX3NldF9wdWxsKHN0cnVjdCByb2NrY2hpcF9waW5fYmFuayAqYmFuaywKPiBjYXNlIFJLMzMw ODoKPiBjYXNlIFJLMzM2ODoKPiBjYXNlIFJLMzM5OToKPisJY2FzZSBSSzM1Njg6Cj4gcHVsbF90 eXBlID0gYmFuay0+cHVsbF90eXBlW3Bpbl9udW0gLyA4XTsKPiByZXQgPSAtRUlOVkFMOwo+IGZv ciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHJvY2tjaGlwX3B1bGxfbGlzdFtwdWxsX3R5cGVdKTsK PkBAIC0yMzg0LDYgKzI1NzcsMTQgQEAgc3RhdGljIGludCByb2NrY2hpcF9zZXRfcHVsbChzdHJ1 Y3Qgcm9ja2NoaXBfcGluX2JhbmsgKmJhbmssCj4gYnJlYWs7Cj4gfQo+IH0KPisJLyoKPisJKiBJ biB0aGUgVFJNLCBwdWxsLXVwIGJlaW5nIDEgZm9yIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBHUElP MF9EMC1ENiwKPisJKiB3aGVyZSB0aGF0IHB1bGwgdXAgdmFsdWUgYmVjb21lcyAzLgo+KwkqLwo+ KwlpZiAoY3RybC0+dHlwZSA9PSBSSzM1NjggJiYgYmFuay0+YmFua19udW0gPT0gMCAmJiBwaW5f bnVtID49IDI3ICYmIHBpbl9udW0gPD0gMzApIHsKPisJaWYgKHJldCA9PSAxKQo+KwlyZXQgPSAz Owo+Kwl9Cj4KPiBpZiAocmV0IDwgMCkgewo+IGRldl9lcnIoaW5mby0+ZGV2LCAidW5zdXBwb3J0 ZWQgcHVsbCBzZXR0aW5nICVkXG4iLAo+QEAgLTI0MjgsNiArMjYyOSwzNSBAQCBzdGF0aWMgaW50 IHJrMzMyOF9jYWxjX3NjaG1pdHRfcmVnX2FuZF9iaXQoc3RydWN0IHJvY2tjaGlwX3Bpbl9iYW5r ICpiYW5rLAo+IHJldHVybiAwOwo+IH0KPgo+KyNkZWZpbmUgUkszNTY4X1NDSE1JVFRfQklUU19Q RVJfUElOCTIKPisjZGVmaW5lIFJLMzU2OF9TQ0hNSVRUX1BJTlNfUEVSX1JFRwk4Cj4rI2RlZmlu ZSBSSzM1NjhfU0NITUlUVF9CQU5LX1NUUklERQkweDEwCj4rI2RlZmluZSBSSzM1NjhfU0NITUlU VF9HUkZfT0ZGU0VUCTB4YzAKPisjZGVmaW5lIFJLMzU2OF9TQ0hNSVRUX1BNVUdSRl9PRkZTRVQJ MHgzMAo+Kwo+K3N0YXRpYyBpbnQgcmszNTY4X2NhbGNfc2NobWl0dF9yZWdfYW5kX2JpdChzdHJ1 Y3Qgcm9ja2NoaXBfcGluX2JhbmsgKmJhbmssCj4rCcKgwqAgaW50IHBpbl9udW0sCj4rCcKgwqAg c3RydWN0IHJlZ21hcCAqKnJlZ21hcCwKPisJwqDCoCBpbnQgKnJlZywgdTggKmJpdCkKPit7Cj4r CXN0cnVjdCByb2NrY2hpcF9waW5jdHJsICppbmZvID0gYmFuay0+ZHJ2ZGF0YTsKPisKPisJaWYg KGJhbmstPmJhbmtfbnVtID09IDApIHsKPisJKnJlZ21hcCA9IGluZm8tPnJlZ21hcF9wbXU7Cj4r CSpyZWcgPSBSSzM1NjhfU0NITUlUVF9QTVVHUkZfT0ZGU0VUOwo+Kwl9IGVsc2Ugewo+KwkqcmVn bWFwID0gaW5mby0+cmVnbWFwX2Jhc2U7Cj4rCSpyZWcgPSBSSzM1NjhfU0NITUlUVF9HUkZfT0ZG U0VUOwo+KwkqcmVnICs9IChiYW5rLT5iYW5rX251bSAtIDEpICogUkszNTY4X1NDSE1JVFRfQkFO S19TVFJJREU7Cj4rCX0KPisKPisJKnJlZyArPSAoKHBpbl9udW0gLyBSSzM1NjhfU0NITUlUVF9Q SU5TX1BFUl9SRUcpICogNCk7Cj4rCSpiaXQgPSBwaW5fbnVtICUgUkszNTY4X1NDSE1JVFRfUElO U19QRVJfUkVHOwo+KwkqYml0ICo9IFJLMzU2OF9TQ0hNSVRUX0JJVFNfUEVSX1BJTjsKPisKPisJ cmV0dXJuIDA7Cj4rfQo+Kwo+IHN0YXRpYyBpbnQgcm9ja2NoaXBfZ2V0X3NjaG1pdHQoc3RydWN0 IHJvY2tjaGlwX3Bpbl9iYW5rICpiYW5rLCBpbnQgcGluX251bSkKPiB7Cj4gc3RydWN0IHJvY2tj aGlwX3BpbmN0cmwgKmluZm8gPSBiYW5rLT5kcnZkYXRhOwo+QEAgLTI0NDYsNiArMjY3NiwxMyBA QCBzdGF0aWMgaW50IHJvY2tjaGlwX2dldF9zY2htaXR0KHN0cnVjdCByb2NrY2hpcF9waW5fYmFu ayAqYmFuaywgaW50IHBpbl9udW0pCj4gcmV0dXJuIHJldDsKPgo+IGRhdGEgPj49IGJpdDsKPisJ c3dpdGNoIChjdHJsLT50eXBlKSB7Cj4rCWNhc2UgUkszNTY4Ogo+KwlyZXR1cm4gZGF0YSAmICgo MSA8PCBSSzM1NjhfU0NITUlUVF9CSVRTX1BFUl9QSU4pIC0gMSk7Cj4rCWRlZmF1bHQ6Cj4rCWJy ZWFrOwo+Kwl9Cj4rCj4gcmV0dXJuIGRhdGEgJiAweDE7Cj4gfQo+Cj5AQCAtMjQ2Nyw4ICsyNzA0 LDE3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfc2V0X3NjaG1pdHQoc3RydWN0IHJvY2tjaGlwX3Bp bl9iYW5rICpiYW5rLAo+IHJldHVybiByZXQ7Cj4KPiAvKiBlbmFibGUgdGhlIHdyaXRlIHRvIHRo ZSBlcXVpdmFsZW50IGxvd2VyIGJpdHMgKi8KPi0JZGF0YSA9IEJJVChiaXQgKyAxNikgfCAoZW5h YmxlIDw8IGJpdCk7Cj4tCXJtYXNrID0gQklUKGJpdCArIDE2KSB8IEJJVChiaXQpOwo+Kwlzd2l0 Y2ggKGN0cmwtPnR5cGUpIHsKPisJY2FzZSBSSzM1Njg6Cj4rCWRhdGEgPSAoKDEgPDwgUkszNTY4 X1NDSE1JVFRfQklUU19QRVJfUElOKSAtIDEpIDw8IChiaXQgKyAxNik7Cj4rCXJtYXNrID0gZGF0 YSB8IChkYXRhID4+IDE2KTsKPisJZGF0YSB8PSAoKGVuYWJsZSA/IDB4MiA6IDB4MSkgPDwgYml0 KTsKPisJYnJlYWs7Cj4rCWRlZmF1bHQ6Cj4rCWRhdGEgPSBCSVQoYml0ICsgMTYpIHwgKGVuYWJs ZSA8PCBiaXQpOwo+KwlybWFzayA9IEJJVChiaXQgKyAxNikgfCBCSVQoYml0KTsKPisJYnJlYWs7 Cj4rCX0KPgo+IHJldHVybiByZWdtYXBfdXBkYXRlX2JpdHMocmVnbWFwLCByZWcsIHJtYXNrLCBk YXRhKTsKPiB9Cj5AQCAtMjY0Miw2ICsyODg4LDcgQEAgc3RhdGljIGJvb2wgcm9ja2NoaXBfcGlu Y29uZl9wdWxsX3ZhbGlkKHN0cnVjdCByb2NrY2hpcF9waW5fY3RybCAqY3RybCwKPiBjYXNlIFJL MzMwODoKPiBjYXNlIFJLMzM2ODoKPiBjYXNlIFJLMzM5OToKPisJY2FzZSBSSzM1Njg6Cj4gcmV0 dXJuIChwdWxsICE9IFBJTl9DT05GSUdfQklBU19QVUxMX1BJTl9ERUZBVUxUKTsKPiB9Cj4KPkBA IC00MjE2LDYgKzQ0NjMsNDUgQEAgc3RhdGljIHN0cnVjdCByb2NrY2hpcF9waW5fY3RybCByazMz OTlfcGluX2N0cmwgPSB7Cj4gLmRydl9jYWxjX3JlZwk9IHJrMzM5OV9jYWxjX2Rydl9yZWdfYW5k X2JpdCwKPiB9Owo+Cj4rc3RhdGljIHN0cnVjdCByb2NrY2hpcF9waW5fYmFuayByazM1NjhfcGlu X2JhbmtzW10gPSB7Cj4rCVBJTl9CQU5LX0lPTVVYX0ZMQUdTKDAsIDMyLCAiZ3BpbzAiLCBJT01V WF9TT1VSQ0VfUE1VIHwgSU9NVVhfV0lEVEhfNEJJVCwKPisJwqDCoMKgwqAgSU9NVVhfU09VUkNF X1BNVSB8IElPTVVYX1dJRFRIXzRCSVQsCj4rCcKgwqDCoMKgIElPTVVYX1NPVVJDRV9QTVUgfCBJ T01VWF9XSURUSF80QklULAo+KwnCoMKgwqDCoCBJT01VWF9TT1VSQ0VfUE1VIHwgSU9NVVhfV0lE VEhfNEJJVCksCj4rCVBJTl9CQU5LX0lPTVVYX0ZMQUdTKDEsIDMyLCAiZ3BpbzEiLCBJT01VWF9X SURUSF80QklULAo+KwnCoMKgwqDCoCBJT01VWF9XSURUSF80QklULAo+KwnCoMKgwqDCoCBJT01V WF9XSURUSF80QklULAo+KwnCoMKgwqDCoCBJT01VWF9XSURUSF80QklUKSwKPisJUElOX0JBTktf SU9NVVhfRkxBR1MoMiwgMzIsICJncGlvMiIsIElPTVVYX1dJRFRIXzRCSVQsCj4rCcKgwqDCoMKg IElPTVVYX1dJRFRIXzRCSVQsCj4rCcKgwqDCoMKgIElPTVVYX1dJRFRIXzRCSVQsCj4rCcKgwqDC oMKgIElPTVVYX1dJRFRIXzRCSVQpLAo+KwlQSU5fQkFOS19JT01VWF9GTEFHUygzLCAzMiwgImdw aW8zIiwgSU9NVVhfV0lEVEhfNEJJVCwKPisJwqDCoMKgwqAgSU9NVVhfV0lEVEhfNEJJVCwKPisJ wqDCoMKgwqAgSU9NVVhfV0lEVEhfNEJJVCwKPisJwqDCoMKgwqAgSU9NVVhfV0lEVEhfNEJJVCks Cj4rCVBJTl9CQU5LX0lPTVVYX0ZMQUdTKDQsIDMyLCAiZ3BpbzQiLCBJT01VWF9XSURUSF80QklU LAo+KwnCoMKgwqDCoCBJT01VWF9XSURUSF80QklULAo+KwnCoMKgwqDCoCBJT01VWF9XSURUSF80 QklULAo+KwnCoMKgwqDCoCBJT01VWF9XSURUSF80QklUKSwKPit9Owo+Kwo+K3N0YXRpYyBzdHJ1 Y3Qgcm9ja2NoaXBfcGluX2N0cmwgcmszNTY4X3Bpbl9jdHJsID0gewo+KwkucGluX2JhbmtzCT0g cmszNTY4X3Bpbl9iYW5rcywKPisJLm5yX2JhbmtzCT0gQVJSQVlfU0laRShyazM1NjhfcGluX2Jh bmtzKSwKPisJLmxhYmVsCT0gIlJLMzU2OC1HUElPIiwKPisJLnR5cGUJPSBSSzM1NjgsCj4rCS5n cmZfbXV4X29mZnNldAk9IDB4MCwKPisJLnBtdV9tdXhfb2Zmc2V0CT0gMHgwLAo+KwkuZ3JmX2Ry dl9vZmZzZXQJPSAweDAyMDAsCj4rCS5wbXVfZHJ2X29mZnNldAk9IDB4MDA3MCwKPisJLmlvbXV4 X3JvdXRlcwk9IHJrMzU2OF9tdXhfcm91dGVfZGF0YSwKPisJLm5pb211eF9yb3V0ZXMJPSBBUlJB WV9TSVpFKHJrMzU2OF9tdXhfcm91dGVfZGF0YSksCj4rCS5wdWxsX2NhbGNfcmVnCT0gcmszNTY4 X2NhbGNfcHVsbF9yZWdfYW5kX2JpdCwKPisJLmRydl9jYWxjX3JlZwk9IHJrMzU2OF9jYWxjX2Ry dl9yZWdfYW5kX2JpdCwKPisJLnNjaG1pdHRfY2FsY19yZWcJPSByazM1NjhfY2FsY19zY2htaXR0 X3JlZ19hbmRfYml0LAo+K307Cj4rCj4gc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg cm9ja2NoaXBfcGluY3RybF9kdF9tYXRjaFtdID0gewo+IHsgLmNvbXBhdGlibGUgPSAicm9ja2No aXAscHgzMC1waW5jdHJsIiwKPiAuZGF0YSA9ICZweDMwX3Bpbl9jdHJsIH0sCj5AQCAtNDI0NSw2 ICs0NTMxLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcm9ja2NoaXBfcGlu Y3RybF9kdF9tYXRjaFtdID0gewo+IC5kYXRhID0gJnJrMzM2OF9waW5fY3RybCB9LAo+IHsgLmNv bXBhdGlibGUgPSAicm9ja2NoaXAscmszMzk5LXBpbmN0cmwiLAo+IC5kYXRhID0gJnJrMzM5OV9w aW5fY3RybCB9LAo+Kwl7IC5jb21wYXRpYmxlID0gInJvY2tjaGlwLHJrMzU2OC1waW5jdHJsIiwK PisJLmRhdGEgPSAmcmszNTY4X3Bpbl9jdHJsIH0sCj4ge30sCj4gfTsKPgo+LS0KPjIuMjUuMQo+ Cj4KPgo+