Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp1341691rwb; Mon, 7 Nov 2022 00:01:14 -0800 (PST) X-Google-Smtp-Source: AMsMyM70visFEgSXT/oEb2L7dPZU+1dBXdFe/Kw3bkRS/hm9ExUucDFUPXuTGF2dS8bf9ofXZuzG X-Received: by 2002:a17:906:6791:b0:78d:4051:969f with SMTP id q17-20020a170906679100b0078d4051969fmr46345174ejp.171.1667808074532; Mon, 07 Nov 2022 00:01:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1667808074; cv=none; d=google.com; s=arc-20160816; b=EuJIH1FVFRyiNEFQNZOjDNJPuPCNlXmEwOIi+lfAUVPEKPk+qG26x8wz6S3aXOMcoO I56IxB87Ezkcu5WTc/yVJjUHntKXq64FGpAqC8x9kJkwIf961ArdpTZ9L7TXb/3hlnD4 ut2IPTZWpzLfmysmQOpquNH2A2xRp6OXRN0D+IZUPv9J7VTf9AUQ3GUqa/8dXBcpvRQe OlGc/jRYTnPn74vrQwWVvVLL+vLUxtr7WSIfgWInIof4O0eov6gdN/1xnAfRRGcnsStH AGB6z82dLGsih0gUGNrrRFStODTcBpZTQZv5ZIpZiNXh4EQikC0BvfduxgSGM/fvBVYz 2MPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:authenticated-by; bh=g2EG4f9yz3XgT2qSQR0WpvMzjc9gwUiawTYVOe0dufc=; b=g52sAZRetaS4zDjWmTc0KgjvMQgMeBzk7fLBclo87FBECbpFIAna/Kk/6zSaUuShnc 1rUr38pJkA+03htd/A97fkTU/gYT1suVu2jkC2u3YqrkEGp0dugvtnferuD9d1QEeJTf KBZpSej8ANG/BsqAmZ7wM8yQojWuWBIW3PNgtFd+pderSxQqkZM6qxdu1ZuWYj42X5R/ tHRrFCYiPl6VL69Tq6ycAaGLhQ1PTkISAv71qdOWdS0WTQHTbRBexBcZjWFNyXTaz45x Qb/a4EscyWN2eY5RTmUCmUpw9kKuYHTDq4NZC66j+lH2urKkejwMNW9ymyvFS9xJ8hCt u+Fw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dz20-20020a0564021d5400b0045c9313faf7si10269564edb.353.2022.11.07.00.00.53; Mon, 07 Nov 2022 00:01:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231334AbiKGHvl (ORCPT + 67 others); Mon, 7 Nov 2022 02:51:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52552 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230487AbiKGHvk (ORCPT ); Mon, 7 Nov 2022 02:51:40 -0500 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 1A62711E for ; Sun, 6 Nov 2022 23:51:38 -0800 (PST) Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.77 with qID 2A77ovt47016368, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36506.realtek.com.tw[172.21.6.27]) by rtits2.realtek.com.tw (8.15.2/2.81/5.90) with ESMTPS id 2A77ovt47016368 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=FAIL); Mon, 7 Nov 2022 15:50:57 +0800 Received: from RTEXDAG02.realtek.com.tw (172.21.6.101) by RTEXH36506.realtek.com.tw (172.21.6.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.9; Mon, 7 Nov 2022 15:51:35 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) by RTEXDAG02.realtek.com.tw (172.21.6.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Mon, 7 Nov 2022 15:51:35 +0800 Received: from RTEXMBS04.realtek.com.tw ([fe80::15b5:fc4b:72f3:424b]) by RTEXMBS04.realtek.com.tw ([fe80::15b5:fc4b:72f3:424b%5]) with mapi id 15.01.2375.007; Mon, 7 Nov 2022 15:51:35 +0800 From: Ping-Ke Shih To: Bitterblue Smith , "linux-wireless@vger.kernel.org" CC: Jes Sorensen Subject: RE: [PATCH v2 2/3] wifi: rtl8xxxu: Split up rtl8xxxu_identify_chip Thread-Topic: [PATCH v2 2/3] wifi: rtl8xxxu: Split up rtl8xxxu_identify_chip Thread-Index: AQHY8Wmnc1Dy1eAjXU2E38q8MNj8qq4zCL0Q Date: Mon, 7 Nov 2022 07:51:34 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US, zh-TW Content-Language: zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.21.69.188] x-kse-serverinfo: RTEXDAG02.realtek.com.tw, 9 x-kse-attachmentfiltering-interceptor-info: no applicable attachment filtering rules found x-kse-antivirus-interceptor-info: scan successful x-kse-antivirus-info: =?utf-8?B?Q2xlYW4sIGJhc2VzOiAyMDIyLzExLzcg5LiK5Y2IIDA0OjQ3OjAw?= x-kse-bulkmessagesfiltering-scan-result: protection disabled Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQml0dGVyYmx1ZSBTbWl0 aCA8cnRsODgyMWNlcmZlMkBnbWFpbC5jb20+DQo+IFNlbnQ6IFN1bmRheSwgTm92ZW1iZXIgNiwg MjAyMiA2OjU0IEFNDQo+IFRvOiBsaW51eC13aXJlbGVzc0B2Z2VyLmtlcm5lbC5vcmcNCj4gQ2M6 IEplcyBTb3JlbnNlbiA8SmVzLlNvcmVuc2VuQGdtYWlsLmNvbT4NCj4gU3ViamVjdDogW1BBVENI IHYyIDIvM10gd2lmaTogcnRsOHh4eHU6IFNwbGl0IHVwIHJ0bDh4eHh1X2lkZW50aWZ5X2NoaXAN Cj4gDQo+IE1vdmUgdGhlIHJldXNhYmxlIHBhcnRzIGludG8gc2VwYXJhdGUgZnVuY3Rpb25zIGFu ZCBjcmVhdGUgb25lDQo+IGlkZW50aWZ5X2NoaXAgZnVuY3Rpb24gZm9yIGVhY2ggY2hpcCB0eXBl Lg0KPiANCj4gVGhpcyBpcyBwcmVwYXJhdGlvbiBmb3Igc3VwcG9ydGluZyB0aGUgUlRMODcxMEJV IGNoaXAsIHdoaWNoIHdvdWxkDQo+IG5lZWQgdG9vIG1hbnkgdWdseSBjaGFuZ2VzIHRvIHRoaXMg ZnVuY3Rpb24uIEFub3RoZXIgcmVhc29uIHRvIGRvIHRoaXMNCj4gaXMgdG8gZ2V0IHJpZCBvZiB0 aGUgbG9uZyBhbmQgc2NhcnkgaWYuLmVsc2UgaWYuLmVsc2UgYmxvY2sgaW4gdGhlDQo+IG1pZGRs ZSBvZiB0aGUgZnVuY3Rpb24uDQo+IA0KPiBFdmVyeXRoaW5nIHNob3VsZCBzdGlsbCB3b3JrIHRo ZSBzYW1lIGFzIGJlZm9yZS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEJpdHRlcmJsdWUgU21pdGgg PHJ0bDg4MjFjZXJmZTJAZ21haWwuY29tPg0KPiAtLS0NCj4gdjI6DQo+ICAtIE1ha2UgcnRsODE5 MmN1X2lkZW50aWZ5X2NoaXAgYW5kIHJ0bDgxOTJldV9pZGVudGlmeV9jaGlwIHN0YXRpYy4NCj4g ICAgUmVwb3J0ZWQtYnk6IGtlcm5lbCB0ZXN0IHJvYm90IDxsa3BAaW50ZWwuY29tPg0KPiAtLS0N Cj4gIC4uLi9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9ydGw4eHh4dS5oICB8ICAgNSAr DQo+ICAuLi4vcmVhbHRlay9ydGw4eHh4dS9ydGw4eHh4dV84MTg4Zi5jICAgICAgICAgfCAgMzIg KysrDQo+ICAuLi4vcmVhbHRlay9ydGw4eHh4dS9ydGw4eHh4dV84MTkyYy5jICAgICAgICAgfCAg NjAgKysrKysNCj4gIC4uLi9yZWFsdGVrL3J0bDh4eHh1L3J0bDh4eHh1XzgxOTJlLmMgICAgICAg ICB8ICA0OSArKysrKw0KPiAgLi4uL3JlYWx0ZWsvcnRsOHh4eHUvcnRsOHh4eHVfODcyM2EuYyAg ICAgICAgIHwgIDUxICsrKysrDQo+ICAuLi4vcmVhbHRlay9ydGw4eHh4dS9ydGw4eHh4dV84NzIz Yi5jICAgICAgICAgfCAgNDkgKysrKysNCj4gIC4uLi93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1 L3J0bDh4eHh1X2NvcmUuYyB8IDIwNyArKysrKy0tLS0tLS0tLS0tLS0NCj4gIDcgZmlsZXMgY2hh bmdlZCwgMjk3IGluc2VydGlvbnMoKyksIDE1NiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L3J0bDh4eHh1LmgNCj4g Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L3J0bDh4eHh1LmgNCj4gaW5k ZXggOWY4YjIzMTYwZWQwLi4xMzY5OTJmMDIwMGMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvcnRsOHh4eHUuaA0KPiArKysgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L3J0bDh4eHh1LmgNCj4gQEAgLTE0NzAsNiArMTQ3 MCw3IEBAIHN0cnVjdCBydGw4eHh4dV90eF91cmIgew0KPiAgfTsNCj4gDQo+ICBzdHJ1Y3QgcnRs OHh4eHVfZmlsZW9wcyB7DQo+ICsJaW50ICgqaWRlbnRpZnlfY2hpcCkgKHN0cnVjdCBydGw4eHh4 dV9wcml2ICpwcml2KTsNCj4gIAlpbnQgKCpwYXJzZV9lZnVzZSkgKHN0cnVjdCBydGw4eHh4dV9w cml2ICpwcml2KTsNCj4gIAlpbnQgKCpsb2FkX2Zpcm13YXJlKSAoc3RydWN0IHJ0bDh4eHh1X3By aXYgKnByaXYpOw0KPiAgCWludCAoKnBvd2VyX29uKSAoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnBy aXYpOw0KPiBAQCAtMTU2Miw2ICsxNTYzLDEwIEBAIGludCBydGw4eHh4dV9pbml0X3BoeV9yZWdz KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LA0KPiAgaW50IHJ0bDh4eHh1X2xvYWRfZmlybXdh cmUoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIGNoYXIgKmZ3X25hbWUpOw0KPiAgdm9pZCBy dGw4eHh4dV9maXJtd2FyZV9zZWxmX3Jlc2V0KHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KTsN Cj4gIHZvaWQgcnRsOHh4eHVfcG93ZXJfb2ZmKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KTsN Cj4gK3ZvaWQgcnRsOHh4eHVfaWRlbnRpZnlfdmVuZG9yXzFiaXQoc3RydWN0IHJ0bDh4eHh1X3By aXYgKnByaXYsIHUzMiB2ZW5kb3IpOw0KPiArdm9pZCBydGw4eHh4dV9pZGVudGlmeV92ZW5kb3Jf MmJpdHMoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHUzMiB2ZW5kb3IpOw0KPiArdm9pZCBy dGw4eHh4dV9jb25maWdfZW5kcG9pbnRzX3NpZShzdHJ1Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdik7 DQo+ICtpbnQgcnRsOHh4eHVfY29uZmlnX2VuZHBvaW50c19ub19zaWUoc3RydWN0IHJ0bDh4eHh1 X3ByaXYgKnByaXYpOw0KPiAgaW50IHJ0bDh4eHh1X3JlYWRfZWZ1c2U4KHN0cnVjdCBydGw4eHh4 dV9wcml2ICpwcml2LCB1MTYgb2Zmc2V0LCB1OCAqZGF0YSk7DQo+ICB2b2lkIHJ0bDh4eHh1X3Jl c2V0XzgwNTEoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpOw0KPiAgaW50IHJ0bDh4eHh1X2F1 dG9fbGx0X3RhYmxlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KTsNCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvcnRsOHh4eHVfODE4OGYuYw0K PiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvcnRsOHh4eHVfODE4OGYu Yw0KPiBpbmRleCA1ZWFkZWIwMmE3NjIuLjRkMDQ0YThiYWEzMCAxMDA2NDQNCj4gLS0tIGEvZHJp dmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9ydGw4eHh4dV84MTg4Zi5jDQo+ICsr KyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvcnRsOHh4eHVfODE4OGYu Yw0KPiBAQCAtMzIxLDYgKzMyMSwzNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0bDh4eHh1X3Jm cmVndmFsIHJ0bDgxODhmdV9jdXRfYl9yYWRpb2FfaW5pdF90YWJsZVtdID0gew0KPiAgCXsweGZm LCAweGZmZmZmZmZmfQ0KPiAgfTsNCj4gDQo+ICtzdGF0aWMgaW50IHJ0bDgxODhmdV9pZGVudGlm eV9jaGlwKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQ0KPiArew0KPiArCXN0cnVjdCBkZXZp Y2UgKmRldiA9ICZwcml2LT51ZGV2LT5kZXY7DQo+ICsJdTMyIHN5c19jZmcsIHZlbmRvcjsNCj4g KwlpbnQgcmV0ID0gMDsNCj4gKw0KPiArCXNwcmludGYocHJpdi0+Y2hpcF9uYW1lLCAiODE4OEZV Iik7DQoNCnN0cnNjcHkocHJpdi0+Y2hpcF9uYW1lLCAiODE4OEZVIiwgc2l6ZW9mKHByaXYtPmNo aXBfbmFtZSkpOw0KDQo+ICsJcHJpdi0+cnRsX2NoaXAgPSBSVEw4MTg4RjsNCj4gKwlwcml2LT5y Zl9wYXRocyA9IDE7DQo+ICsJcHJpdi0+cnhfcGF0aHMgPSAxOw0KPiArCXByaXYtPnR4X3BhdGhz ID0gMTsNCj4gKwlwcml2LT5oYXNfd2lmaSA9IDE7DQo+ICsNCj4gKwlzeXNfY2ZnID0gcnRsOHh4 eHVfcmVhZDMyKHByaXYsIFJFR19TWVNfQ0ZHKTsNCj4gKwlwcml2LT5jaGlwX2N1dCA9IChzeXNf Y2ZnICYgU1lTX0NGR19DSElQX1ZFUlNJT05fTUFTSykgPj4NCj4gKwkJU1lTX0NGR19DSElQX1ZF UlNJT05fU0hJRlQ7DQoNCnByaXYtPmNoaXBfY3V0ID0gRklFTERfR0VUKFNZU19DRkdfQ0hJUF9W RVJTSU9OX01BU0ssIHN5c19jZmcpOw0KDQpUaGVuLCByZW1vdmUgI2RlZmluZSBTWVNfQ0ZHX0NI SVBfVkVSU0lPTl9TSElGVC4NCg0KPiArCWlmIChzeXNfY2ZnICYgU1lTX0NGR19UUlBfVkFVWF9F Tikgew0KPiArCQlkZXZfaW5mbyhkZXYsICJVbnN1cHBvcnRlZCB0ZXN0IGNoaXBcbiIpOw0KPiAr CQlyZXQgPSAtRU5PVFNVUFA7DQo+ICsJCWdvdG8gb3V0Ow0KPiArCX0NCj4gKw0KPiArCXZlbmRv ciA9IHN5c19jZmcgJiBTWVNfQ0ZHX1ZFTkRPUl9FWFRfTUFTSzsNCj4gKwlydGw4eHh4dV9pZGVu dGlmeV92ZW5kb3JfMmJpdHMocHJpdiwgdmVuZG9yKTsNCj4gKw0KPiArCXJldCA9IHJ0bDh4eHh1 X2NvbmZpZ19lbmRwb2ludHNfbm9fc2llKHByaXYpOw0KPiArDQo+ICtvdXQ6DQo+ICsJcmV0dXJu IHJldDsNCj4gK30NCj4gKw0KPiAgc3RhdGljIHZvaWQgcnRsOHh4eHVfODE4OGZfY2hhbm5lbF90 b19ncm91cChpbnQgY2hhbm5lbCwgaW50ICpncm91cCwgaW50ICpjY2tfZ3JvdXApDQo+ICB7DQo+ ICAJaWYgKGNoYW5uZWwgPCAzKQ0KPiBAQCAtMTY5MCw2ICsxNzIxLDcgQEAgc3RhdGljIHM4IHJ0 bDgxODhmX2Nja19yc3NpKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBjY2tfYWdjX3Jw dCkNCj4gIH0NCj4gDQo+ICBzdHJ1Y3QgcnRsOHh4eHVfZmlsZW9wcyBydGw4MTg4ZnVfZm9wcyA9 IHsNCj4gKwkuaWRlbnRpZnlfY2hpcCA9IHJ0bDgxODhmdV9pZGVudGlmeV9jaGlwLA0KPiAgCS5w YXJzZV9lZnVzZSA9IHJ0bDgxODhmdV9wYXJzZV9lZnVzZSwNCj4gIAkubG9hZF9maXJtd2FyZSA9 IHJ0bDgxODhmdV9sb2FkX2Zpcm13YXJlLA0KPiAgCS5wb3dlcl9vbiA9IHJ0bDgxODhmdV9wb3dl cl9vbiwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4 eHUvcnRsOHh4eHVfODE5MmMuYw0KPiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRs OHh4eHUvcnRsOHh4eHVfODE5MmMuYw0KPiBpbmRleCA5ZGZlZWFhNzQ5MjcuLjgxNWMxZTI3OGU0 ZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4eHh4dS9y dGw4eHh4dV84MTkyYy5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRs OHh4eHUvcnRsOHh4eHVfODE5MmMuYw0KPiBAQCAtMzI2LDYgKzMyNiw2NSBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHJ0bDh4eHh1X3JmcmVndmFsIHJ0bDgxODhydV9yYWRpb2FfMXRfaGlnaHBhX3Rh YmxlW10gPSB7DQo+ICAJezB4ZmYsIDB4ZmZmZmZmZmZ9DQo+ICB9Ow0KPiANCj4gK3N0YXRpYyBp bnQgcnRsODE5MmN1X2lkZW50aWZ5X2NoaXAoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpDQo+ ICt7DQo+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gJnByaXYtPnVkZXYtPmRldjsNCj4gKwl1MzIg dmFsMzIsIGJvbmRpbmcsIHN5c19jZmcsIHZlbmRvcjsNCj4gKwlpbnQgcmV0ID0gMDsNCj4gKw0K PiArCXN5c19jZmcgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX1NZU19DRkcpOw0KPiArCXBy aXYtPmNoaXBfY3V0ID0gKHN5c19jZmcgJiBTWVNfQ0ZHX0NISVBfVkVSU0lPTl9NQVNLKSA+Pg0K PiArCQlTWVNfQ0ZHX0NISVBfVkVSU0lPTl9TSElGVDsNCg0KZGl0dG8uDQoNCj4gKwlpZiAoc3lz X2NmZyAmIFNZU19DRkdfVFJQX1ZBVVhfRU4pIHsNCj4gKwkJZGV2X2luZm8oZGV2LCAiVW5zdXBw b3J0ZWQgdGVzdCBjaGlwXG4iKTsNCj4gKwkJcmV0ID0gLUVOT1RTVVBQOw0KPiArCQlnb3RvIG91 dDsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoc3lzX2NmZyAmIFNZU19DRkdfVFlQRV9JRCkgew0KPiAr CQlib25kaW5nID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19IUE9OX0ZTTSk7DQo+ICsJCWJv bmRpbmcgJj0gSFBPTl9GU01fQk9ORElOR19NQVNLOw0KPiArCQlpZiAoYm9uZGluZyA9PSBIUE9O X0ZTTV9CT05ESU5HXzFUMlIpIHsNCj4gKwkJCXNwcmludGYocHJpdi0+Y2hpcF9uYW1lLCAiODE5 MUNVIik7DQoNCnN0cnNjcHkoKQ0KDQo+ICsJCQlwcml2LT50eF9wYXRocyA9IDE7DQo+ICsJCQlw cml2LT51c2JfaW50ZXJydXB0cyA9IDE7DQo+ICsJCQlwcml2LT5ydGxfY2hpcCA9IFJUTDgxOTFD Ow0KPiArCQl9IGVsc2Ugew0KPiArCQkJc3ByaW50Zihwcml2LT5jaGlwX25hbWUsICI4MTkyQ1Ui KTsNCg0Kc3Ryc2NweSgpDQoNCj4gKwkJCXByaXYtPnR4X3BhdGhzID0gMjsNCj4gKwkJCXByaXYt PnVzYl9pbnRlcnJ1cHRzID0gMDsNCj4gKwkJCXByaXYtPnJ0bF9jaGlwID0gUlRMODE5MkM7DQo+ ICsJCX0NCj4gKwkJcHJpdi0+cmZfcGF0aHMgPSAyOw0KPiArCQlwcml2LT5yeF9wYXRocyA9IDI7 DQo+ICsJfSBlbHNlIHsNCj4gKwkJc3ByaW50Zihwcml2LT5jaGlwX25hbWUsICI4MTg4Q1UiKTsN Cg0Kc3Ryc2NweSgpDQoNCj4gKwkJcHJpdi0+cmZfcGF0aHMgPSAxOw0KPiArCQlwcml2LT5yeF9w YXRocyA9IDE7DQo+ICsJCXByaXYtPnR4X3BhdGhzID0gMTsNCj4gKwkJcHJpdi0+cnRsX2NoaXAg PSBSVEw4MTg4QzsNCj4gKwkJcHJpdi0+dXNiX2ludGVycnVwdHMgPSAwOw0KPiArCX0NCj4gKwlw cml2LT5oYXNfd2lmaSA9IDE7DQo+ICsNCj4gKwl2ZW5kb3IgPSBzeXNfY2ZnICYgU1lTX0NGR19W RU5ET1JfSUQ7DQo+ICsJcnRsOHh4eHVfaWRlbnRpZnlfdmVuZG9yXzFiaXQocHJpdiwgdmVuZG9y KTsNCj4gKw0KPiArCXZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19HUElPX09VVFNU Uyk7DQo+ICsJcHJpdi0+cm9tX3JldiA9ICh2YWwzMiAmIEdQSU9fUkZfUkxfSUQpID4+IDI4Ow0K DQpwcml2LT5yb21fcmV2ID0gRklFTERfR0VUKEdQSU9fUkZfUkxfSUQsIHZhbHUzMik7DQoNCj4g Kw0KPiArCXJ0bDh4eHh1X2NvbmZpZ19lbmRwb2ludHNfc2llKHByaXYpOw0KPiArDQo+ICsJLyoN Cj4gKwkgKiBGYWxsYmFjayBmb3IgZGV2aWNlcyB0aGF0IGRvIG5vdCBwcm92aWRlIFJFR19OT1JN QUxfU0lFX0VQX1RYDQo+ICsJICovDQo+ICsJaWYgKCFwcml2LT5lcF90eF9jb3VudCkNCj4gKwkJ cmV0ID0gcnRsOHh4eHVfY29uZmlnX2VuZHBvaW50c19ub19zaWUocHJpdik7DQo+ICsNCj4gK291 dDoNCj4gKwlyZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICBzdGF0aWMgaW50IHJ0bDgxOTJjdV9s b2FkX2Zpcm13YXJlKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2KQ0KPiAgew0KPiAgCWNoYXIg KmZ3X25hbWU7DQo+IEBAIC01NDEsNiArNjAwLDcgQEAgc3RhdGljIGludCBydGw4MTkyY3VfcG93 ZXJfb24oc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYpDQo+ICB9DQo+IA0KPiAgc3RydWN0IHJ0 bDh4eHh1X2ZpbGVvcHMgcnRsODE5MmN1X2ZvcHMgPSB7DQo+ICsJLmlkZW50aWZ5X2NoaXAgPSBy dGw4MTkyY3VfaWRlbnRpZnlfY2hpcCwNCj4gIAkucGFyc2VfZWZ1c2UgPSBydGw4MTkyY3VfcGFy c2VfZWZ1c2UsDQo+ICAJLmxvYWRfZmlybXdhcmUgPSBydGw4MTkyY3VfbG9hZF9maXJtd2FyZSwN Cj4gIAkucG93ZXJfb24gPSBydGw4MTkyY3VfcG93ZXJfb24sDQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L3J0bDh4eHh1XzgxOTJlLmMNCj4gYi9k cml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L3J0bDh4eHh1XzgxOTJlLmMNCj4g aW5kZXggOTczYTAyYWZjODJiLi43YTE4MjA3MzgzMmIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMv bmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsOHh4eHUvcnRsOHh4eHVfODE5MmUuYw0KPiArKysgYi9k cml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L3J0bDh4eHh1XzgxOTJlLmMNCj4g QEAgLTQ3OCw2ICs0NzgsNTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBydGw4eHh4dV9yZnJlZ3Zh bCBydGw4MTkyZXVfcmFkaW9iX2luaXRfdGFibGVbXSA9IHsNCj4gIAl7MHhmZiwgMHhmZmZmZmZm Zn0NCj4gIH07DQo+IA0KPiArc3RhdGljIGludCBydGw4MTkyZXVfaWRlbnRpZnlfY2hpcChzdHJ1 Y3QgcnRsOHh4eHVfcHJpdiAqcHJpdikNCj4gK3sNCj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAm cHJpdi0+dWRldi0+ZGV2Ow0KPiArCXUzMiB2YWwzMiwgYm9uZGluZywgc3lzX2NmZywgdmVuZG9y Ow0KPiArCWludCByZXQgPSAwOw0KPiArDQo+ICsJc3lzX2NmZyA9IHJ0bDh4eHh1X3JlYWQzMihw cml2LCBSRUdfU1lTX0NGRyk7DQo+ICsJcHJpdi0+Y2hpcF9jdXQgPSAoc3lzX2NmZyAmIFNZU19D RkdfQ0hJUF9WRVJTSU9OX01BU0spID4+DQo+ICsJCVNZU19DRkdfQ0hJUF9WRVJTSU9OX1NISUZU Ow0KDQo9IEZJRUxEX0dFVCguLi4pDQoNCj4gKwlpZiAoc3lzX2NmZyAmIFNZU19DRkdfVFJQX1ZB VVhfRU4pIHsNCj4gKwkJZGV2X2luZm8oZGV2LCAiVW5zdXBwb3J0ZWQgdGVzdCBjaGlwXG4iKTsN Cj4gKwkJcmV0ID0gLUVOT1RTVVBQOw0KPiArCQlnb3RvIG91dDsNCj4gKwl9DQo+ICsNCj4gKwli b25kaW5nID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19IUE9OX0ZTTSk7DQo+ICsJYm9uZGlu ZyAmPSBIUE9OX0ZTTV9CT05ESU5HX01BU0s7DQo+ICsJaWYgKGJvbmRpbmcgPT0gSFBPTl9GU01f Qk9ORElOR18xVDJSKSB7DQo+ICsJCXNwcmludGYocHJpdi0+Y2hpcF9uYW1lLCAiODE5MUVVIik7 DQoNCnN0cnNjcHkoKQ0KDQo+ICsJCXByaXYtPnR4X3BhdGhzID0gMTsNCj4gKwkJcHJpdi0+cnRs X2NoaXAgPSBSVEw4MTkxRTsNCj4gKwl9IGVsc2Ugew0KPiArCQlzcHJpbnRmKHByaXYtPmNoaXBf bmFtZSwgIjgxOTJFVSIpOw0KDQpzdHJzY3B5KCkNCg0KPiArCQlwcml2LT50eF9wYXRocyA9IDI7 DQo+ICsJCXByaXYtPnJ0bF9jaGlwID0gUlRMODE5MkU7DQo+ICsJfQ0KPiArCXByaXYtPnJmX3Bh dGhzID0gMjsNCj4gKwlwcml2LT5yeF9wYXRocyA9IDI7DQo+ICsJcHJpdi0+aGFzX3dpZmkgPSAx Ow0KPiArDQo+ICsJdmVuZG9yID0gc3lzX2NmZyAmIFNZU19DRkdfVkVORE9SX0VYVF9NQVNLOw0K PiArCXJ0bDh4eHh1X2lkZW50aWZ5X3ZlbmRvcl8yYml0cyhwcml2LCB2ZW5kb3IpOw0KPiArDQo+ ICsJdmFsMzIgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX0dQSU9fT1VUU1RTKTsNCj4gKwlw cml2LT5yb21fcmV2ID0gKHZhbDMyICYgR1BJT19SRl9STF9JRCkgPj4gMjg7DQoNCkZJRUxEX0dF VCgpDQoNCj4gKw0KPiArCXJ0bDh4eHh1X2NvbmZpZ19lbmRwb2ludHNfc2llKHByaXYpOw0KPiAr DQo+ICsJLyoNCj4gKwkgKiBGYWxsYmFjayBmb3IgZGV2aWNlcyB0aGF0IGRvIG5vdCBwcm92aWRl IFJFR19OT1JNQUxfU0lFX0VQX1RYDQo+ICsJICovDQo+ICsJaWYgKCFwcml2LT5lcF90eF9jb3Vu dCkNCj4gKwkJcmV0ID0gcnRsOHh4eHVfY29uZmlnX2VuZHBvaW50c19ub19zaWUocHJpdik7DQo+ ICsNCj4gK291dDoNCj4gKwlyZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICBzdGF0aWMgdm9pZA0K PiAgcnRsODE5MmVfc2V0X3R4X3Bvd2VyKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCBpbnQg Y2hhbm5lbCwgYm9vbCBodDQwKQ0KPiAgew0KPiBAQCAtMTY5Myw2ICsxNzQxLDcgQEAgc3RhdGlj IHM4IHJ0bDgxOTJlX2Nja19yc3NpKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBjY2tf YWdjX3JwdCkNCj4gIH0NCj4gDQo+ICBzdHJ1Y3QgcnRsOHh4eHVfZmlsZW9wcyBydGw4MTkyZXVf Zm9wcyA9IHsNCj4gKwkuaWRlbnRpZnlfY2hpcCA9IHJ0bDgxOTJldV9pZGVudGlmeV9jaGlwLA0K PiAgCS5wYXJzZV9lZnVzZSA9IHJ0bDgxOTJldV9wYXJzZV9lZnVzZSwNCj4gIAkubG9hZF9maXJt d2FyZSA9IHJ0bDgxOTJldV9sb2FkX2Zpcm13YXJlLA0KPiAgCS5wb3dlcl9vbiA9IHJ0bDgxOTJl dV9wb3dlcl9vbiwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsv cnRsOHh4eHUvcnRsOHh4eHVfODcyM2EuYw0KPiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0 ZWsvcnRsOHh4eHUvcnRsOHh4eHVfODcyM2EuYw0KPiBpbmRleCA4ZDhlYjE2YTA5NzAuLjMzYTEx MTRhNTg1MyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4 eHh4dS9ydGw4eHh4dV84NzIzYS5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0 ZWsvcnRsOHh4eHUvcnRsOHh4eHVfODcyM2EuYw0KPiBAQCAtMTI5LDYgKzEyOSw1NiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHJ0bDh4eHh1X3JmcmVndmFsIHJ0bDg3MjNhdV9yYWRpb2FfMXRfaW5p dF90YWJsZVtdID0gew0KPiAgCXsweGZmLCAweGZmZmZmZmZmfQ0KPiAgfTsNCj4gDQo+ICtzdGF0 aWMgaW50IHJ0bDg3MjNhdV9pZGVudGlmeV9jaGlwKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2 KQ0KPiArew0KPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwcml2LT51ZGV2LT5kZXY7DQo+ICsJ dTMyIHZhbDMyLCBzeXNfY2ZnLCB2ZW5kb3I7DQo+ICsJaW50IHJldCA9IDA7DQo+ICsNCj4gKwlz eXNfY2ZnID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19TWVNfQ0ZHKTsNCj4gKwlwcml2LT5j aGlwX2N1dCA9IChzeXNfY2ZnICYgU1lTX0NGR19DSElQX1ZFUlNJT05fTUFTSykgPj4NCj4gKwkJ U1lTX0NGR19DSElQX1ZFUlNJT05fU0hJRlQ7DQoNCkZJRUxEX0dFVCgpDQoNCj4gKwlpZiAoc3lz X2NmZyAmIFNZU19DRkdfVFJQX1ZBVVhfRU4pIHsNCj4gKwkJZGV2X2luZm8oZGV2LCAiVW5zdXBw b3J0ZWQgdGVzdCBjaGlwXG4iKTsNCj4gKwkJcmV0ID0gLUVOT1RTVVBQOw0KPiArCQlnb3RvIG91 dDsNCj4gKwl9DQo+ICsNCj4gKwlzcHJpbnRmKHByaXYtPmNoaXBfbmFtZSwgIjg3MjNBVSIpOw0K DQpzdHJzY3B5KCkNCg0KPiArCXByaXYtPnVzYl9pbnRlcnJ1cHRzID0gMTsNCj4gKwlwcml2LT5y dGxfY2hpcCA9IFJUTDg3MjNBOw0KPiArDQo+ICsJcHJpdi0+cmZfcGF0aHMgPSAxOw0KPiArCXBy aXYtPnJ4X3BhdGhzID0gMTsNCj4gKwlwcml2LT50eF9wYXRocyA9IDE7DQo+ICsNCj4gKwl2YWwz MiA9IHJ0bDh4eHh1X3JlYWQzMihwcml2LCBSRUdfTVVMVElfRlVOQ19DVFJMKTsNCj4gKwlpZiAo dmFsMzIgJiBNVUxUSV9XSUZJX0ZVTkNfRU4pDQo+ICsJCXByaXYtPmhhc193aWZpID0gMTsNCj4g KwlpZiAodmFsMzIgJiBNVUxUSV9CVF9GVU5DX0VOKQ0KPiArCQlwcml2LT5oYXNfYmx1ZXRvb3Ro ID0gMTsNCj4gKwlpZiAodmFsMzIgJiBNVUxUSV9HUFNfRlVOQ19FTikNCj4gKwkJcHJpdi0+aGFz X2dwcyA9IDE7DQo+ICsJcHJpdi0+aXNfbXVsdGlfZnVuYyA9IDE7DQo+ICsNCj4gKwl2ZW5kb3Ig PSBzeXNfY2ZnICYgU1lTX0NGR19WRU5ET1JfSUQ7DQo+ICsJcnRsOHh4eHVfaWRlbnRpZnlfdmVu ZG9yXzFiaXQocHJpdiwgdmVuZG9yKTsNCj4gKw0KPiArCXZhbDMyID0gcnRsOHh4eHVfcmVhZDMy KHByaXYsIFJFR19HUElPX09VVFNUUyk7DQo+ICsJcHJpdi0+cm9tX3JldiA9ICh2YWwzMiAmIEdQ SU9fUkZfUkxfSUQpID4+IDI4Ow0KDQpGSUVMRF9HRVQoKQ0KDQo+ICsNCj4gKwlydGw4eHh4dV9j b25maWdfZW5kcG9pbnRzX3NpZShwcml2KTsNCj4gKw0KPiArCS8qDQo+ICsJICogRmFsbGJhY2sg Zm9yIGRldmljZXMgdGhhdCBkbyBub3QgcHJvdmlkZSBSRUdfTk9STUFMX1NJRV9FUF9UWA0KPiAr CSAqLw0KPiArCWlmICghcHJpdi0+ZXBfdHhfY291bnQpDQo+ICsJCXJldCA9IHJ0bDh4eHh1X2Nv bmZpZ19lbmRwb2ludHNfbm9fc2llKHByaXYpOw0KPiArDQo+ICtvdXQ6DQo+ICsJcmV0dXJuIHJl dDsNCj4gK30NCj4gKw0KPiAgc3RhdGljIGludCBydGw4NzIzYXVfcGFyc2VfZWZ1c2Uoc3RydWN0 IHJ0bDh4eHh1X3ByaXYgKnByaXYpDQo+ICB7DQo+ICAJc3RydWN0IHJ0bDg3MjNhdV9lZnVzZSAq ZWZ1c2UgPSAmcHJpdi0+ZWZ1c2Vfd2lmaS5lZnVzZTg3MjM7DQo+IEBAIC00MDksNiArNDU5LDcg QEAgczggcnRsODcyM2FfY2NrX3Jzc2koc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnByaXYsIHU4IGNj a19hZ2NfcnB0KQ0KPiAgfQ0KPiANCj4gIHN0cnVjdCBydGw4eHh4dV9maWxlb3BzIHJ0bDg3MjNh dV9mb3BzID0gew0KPiArCS5pZGVudGlmeV9jaGlwID0gcnRsODcyM2F1X2lkZW50aWZ5X2NoaXAs DQo+ICAJLnBhcnNlX2VmdXNlID0gcnRsODcyM2F1X3BhcnNlX2VmdXNlLA0KPiAgCS5sb2FkX2Zp cm13YXJlID0gcnRsODcyM2F1X2xvYWRfZmlybXdhcmUsDQo+ICAJLnBvd2VyX29uID0gcnRsODcy M2F1X3Bvd2VyX29uLA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRl ay9ydGw4eHh4dS9ydGw4eHh4dV84NzIzYi5jDQo+IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVh bHRlay9ydGw4eHh4dS9ydGw4eHh4dV84NzIzYi5jDQo+IGluZGV4IDI3ZGY4ODA1Y2IxOC4uNTU4 NTcyYmRkMmM4IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0 bDh4eHh1L3J0bDh4eHh1Xzg3MjNiLmMNCj4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVh bHRlay9ydGw4eHh4dS9ydGw4eHh4dV84NzIzYi5jDQo+IEBAIC0zMDQsNiArMzA0LDU0IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgcnRsOHh4eHVfcmZyZWd2YWwgcnRsODcyM2J1X3JhZGlvYV8xdF9p bml0X3RhYmxlW10gPSB7DQo+ICAJezB4ZmYsIDB4ZmZmZmZmZmZ9DQo+ICB9Ow0KPiANCj4gK3N0 YXRpYyBpbnQgcnRsODcyM2J1X2lkZW50aWZ5X2NoaXAoc3RydWN0IHJ0bDh4eHh1X3ByaXYgKnBy aXYpDQo+ICt7DQo+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gJnByaXYtPnVkZXYtPmRldjsNCj4g Kwl1MzIgdmFsMzIsIHN5c19jZmcsIHZlbmRvcjsNCj4gKwlpbnQgcmV0ID0gMDsNCj4gKw0KPiAr CXN5c19jZmcgPSBydGw4eHh4dV9yZWFkMzIocHJpdiwgUkVHX1NZU19DRkcpOw0KPiArCXByaXYt PmNoaXBfY3V0ID0gKHN5c19jZmcgJiBTWVNfQ0ZHX0NISVBfVkVSU0lPTl9NQVNLKSA+Pg0KPiAr CQlTWVNfQ0ZHX0NISVBfVkVSU0lPTl9TSElGVDsNCg0KRklFTERfR0VUKCkNCg0KPiArCWlmIChz eXNfY2ZnICYgU1lTX0NGR19UUlBfVkFVWF9FTikgew0KPiArCQlkZXZfaW5mbyhkZXYsICJVbnN1 cHBvcnRlZCB0ZXN0IGNoaXBcbiIpOw0KPiArCQlyZXQgPSAtRU5PVFNVUFA7DQo+ICsJCWdvdG8g b3V0Ow0KPiArCX0NCj4gKw0KPiArCXNwcmludGYocHJpdi0+Y2hpcF9uYW1lLCAiODcyM0JVIik7 DQoNCnN0cnNjcHkoKQ0KDQo+ICsJcHJpdi0+cnRsX2NoaXAgPSBSVEw4NzIzQjsNCj4gKwlwcml2 LT5yZl9wYXRocyA9IDE7DQo+ICsJcHJpdi0+cnhfcGF0aHMgPSAxOw0KPiArCXByaXYtPnR4X3Bh dGhzID0gMTsNCj4gKw0KPiArCXZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19NVUxU SV9GVU5DX0NUUkwpOw0KPiArCWlmICh2YWwzMiAmIE1VTFRJX1dJRklfRlVOQ19FTikNCj4gKwkJ cHJpdi0+aGFzX3dpZmkgPSAxOw0KPiArCWlmICh2YWwzMiAmIE1VTFRJX0JUX0ZVTkNfRU4pDQo+ ICsJCXByaXYtPmhhc19ibHVldG9vdGggPSAxOw0KPiArCWlmICh2YWwzMiAmIE1VTFRJX0dQU19G VU5DX0VOKQ0KPiArCQlwcml2LT5oYXNfZ3BzID0gMTsNCj4gKwlwcml2LT5pc19tdWx0aV9mdW5j ID0gMTsNCj4gKw0KPiArCXZlbmRvciA9IHN5c19jZmcgJiBTWVNfQ0ZHX1ZFTkRPUl9FWFRfTUFT SzsNCj4gKwlydGw4eHh4dV9pZGVudGlmeV92ZW5kb3JfMmJpdHMocHJpdiwgdmVuZG9yKTsNCj4g Kw0KPiArCXZhbDMyID0gcnRsOHh4eHVfcmVhZDMyKHByaXYsIFJFR19HUElPX09VVFNUUyk7DQo+ ICsJcHJpdi0+cm9tX3JldiA9ICh2YWwzMiAmIEdQSU9fUkZfUkxfSUQpID4+IDI4Ow0KDQpGSUVM RF9HRVQoKQ0KDQo+ICsNCj4gKwlydGw4eHh4dV9jb25maWdfZW5kcG9pbnRzX3NpZShwcml2KTsN Cj4gKw0KPiArCS8qDQo+ICsJICogRmFsbGJhY2sgZm9yIGRldmljZXMgdGhhdCBkbyBub3QgcHJv dmlkZSBSRUdfTk9STUFMX1NJRV9FUF9UWA0KPiArCSAqLw0KPiArCWlmICghcHJpdi0+ZXBfdHhf Y291bnQpDQo+ICsJCXJldCA9IHJ0bDh4eHh1X2NvbmZpZ19lbmRwb2ludHNfbm9fc2llKHByaXYp Ow0KPiArDQo+ICtvdXQ6DQo+ICsJcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiAgc3RhdGljIHZv aWQgcnRsODcyM2J1X3dyaXRlX2J0cmVnKHN0cnVjdCBydGw4eHh4dV9wcml2ICpwcml2LCB1OCBy ZWcsIHU4IGRhdGEpDQo+ICB7DQo+ICAJc3RydWN0IGgyY19jbWQgaDJjOw0KPiBAQCAtMTY2OCw2 ICsxNzE2LDcgQEAgc3RhdGljIHM4IHJ0bDg3MjNiX2Nja19yc3NpKHN0cnVjdCBydGw4eHh4dV9w cml2ICpwcml2LCB1OCBjY2tfYWdjX3JwdCkNCj4gIH0NCj4gDQo+ICBzdHJ1Y3QgcnRsOHh4eHVf ZmlsZW9wcyBydGw4NzIzYnVfZm9wcyA9IHsNCj4gKwkuaWRlbnRpZnlfY2hpcCA9IHJ0bDg3MjNi dV9pZGVudGlmeV9jaGlwLA0KPiAgCS5wYXJzZV9lZnVzZSA9IHJ0bDg3MjNidV9wYXJzZV9lZnVz ZSwNCj4gIAkubG9hZF9maXJtd2FyZSA9IHJ0bDg3MjNidV9sb2FkX2Zpcm13YXJlLA0KPiAgCS5w b3dlcl9vbiA9IHJ0bDg3MjNidV9wb3dlcl9vbiwNCg0KWy4uXQ0KDQpPbmx5IHNvbWUgc2ltaWxh ciBjb21tZW50cyBhYm91dCBGSUVMRF9HRVQoKSBhbmQgc3Ryc2NweSgpLg0KDQpQaW5nLUtlDQoN Cg==