Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp916765lqp; Thu, 21 Mar 2024 22:36:19 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVFAobOLh7KK2h9JYnsKApVMYYqEKEyAnynz3L1yyoTVZAsJxEKLtvf+FNOWFSvhBnsODf9quVzMa71wgvuLs+gU1IdKz5keV/B9nDmag== X-Google-Smtp-Source: AGHT+IGs/CERM+wFyE7cLNe+VZFZuid3mHW6jnl10ATzKGhpGjq+NpYEdNhes/omBOAii5jIXG/K X-Received: by 2002:a05:6a20:19a5:b0:1a3:5582:4ec0 with SMTP id bz37-20020a056a2019a500b001a355824ec0mr1452809pzb.16.1711085779101; Thu, 21 Mar 2024 22:36:19 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711085779; cv=pass; d=google.com; s=arc-20160816; b=cYwqe5ePlzO23s2YPJiKgx2xYvXYcgZT8an9W9THmV0yUkhNE3lle5k4iswXl7WV/a zxrcIWT9ysbhL/FDB46vIYslQ4rLyaEJeHmCBhblhvnMCatGHI/mLRrBIr4HrUC7I+JI Lo1kiUuhuPYtV9OJAt6MmiyzK2nkLyAMMw9tP7lImgEOtcvUlX4UHYnS6INS+ZpODjLa 4qzlHcCr4nbq8ULHA8MezmImvq15iJY+WUa+m72nVWjGpohrzSFYKZI0OQQ1s90XbPnw N0AlJT/oyD4iOtfLLQTkPWlYacUjIfGtclyBkgDXp5tLd5Ni/UyK5KBhh0mEhaTdiAJ7 9KhA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :content-transfer-encoding:content-id:user-agent:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from; bh=tp3B2AGRpDyRS5RZEI6aCB8PeZHUEvCeUUqgoMpHFAQ=; fh=h6GWTeCiRfn07iCP1/x4d3jenmB/0yOIo6BM2boD+Uo=; b=gSu69deFEXc7lyKCrD4cdz10VAgpDlCjK1g7CYr6XGdS6h9/LTK2SWYLqiHNm8Ftgl YMtCUqRESXzEeARBZ2g8kgFm/pqxmbjqOS8D7KNIOaKOLF83sH0jYSHg4wshZTkhYe+Q CD/H4wSbdqno9fvYDqKNwGqRneeGixoHga11z8YDIRvNZLxCPlPWxAN9VmwfyjvEUPvD +iFdv6w+O5/B/eENdctZr+8KMjwLO/14JIfvY18PsnQCAt59B3WNSCQrRZKtXXlCSmPd q4kryOqYhPp5dM0DRF1YMiDrTXJMYiyf0C/nsovTk2L5Y9RzKX6g4tTXZSOud1/wCqk7 3QqQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=realtek.com); spf=pass (google.com: domain of linux-wireless+bounces-5136-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-wireless+bounces-5136-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id 21-20020a631155000000b005dc3e746573si1286779pgr.826.2024.03.21.22.36.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Mar 2024 22:36:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless+bounces-5136-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=realtek.com); spf=pass (google.com: domain of linux-wireless+bounces-5136-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-wireless+bounces-5136-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id BAFC02815EC for ; Fri, 22 Mar 2024 05:36:18 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3A51A8C1F; Fri, 22 Mar 2024 05:36:16 +0000 (UTC) X-Original-To: linux-wireless@vger.kernel.org Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0863815BB for ; Fri, 22 Mar 2024 05:36:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=211.75.126.72 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711085776; cv=none; b=GWtbxu7RXF8oPWH0jpaFljYkYrLnSVTvlgm9QttRYOTfPT6F8iEkGtFyQ6aN/iqsICLHe5EA6tybhPz4Jjy8m0zuzwsOyP/+DDy40oxSpHkF+XW+xdsCgIfmTnv/mc+uv2PxXuULSNxRb2nDmwocTZ060ci7dECF1lYSyNi7dAE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711085776; c=relaxed/simple; bh=tp3B2AGRpDyRS5RZEI6aCB8PeZHUEvCeUUqgoMpHFAQ=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=qLyVPZ0GHak3LjZPZxJyNEQ9FT5+yAZwoJHA/CK1hn7wJrXI6+I5KtFjRJS1aQWab/Xkcd3ZeXdQJf6rHZKpzvysZOUNriZME65ICN8eT0Ufpt+BrULxy5YdaxRrxC61i25LUBowgKdqV6eIiK/daeinkROevoAm1eQDNbsW9UU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=realtek.com; spf=pass smtp.mailfrom=realtek.com; arc=none smtp.client-ip=211.75.126.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=realtek.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=realtek.com X-SpamFilter-By: ArmorX SpamTrap 5.78 with qID 42M5Zo8sA1484985, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36505.realtek.com.tw[172.21.6.25]) by rtits2.realtek.com.tw (8.15.2/2.95/5.92) with ESMTPS id 42M5Zo8sA1484985 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 22 Mar 2024 13:35:50 +0800 Received: from RTEXDAG02.realtek.com.tw (172.21.6.101) by RTEXH36505.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Fri, 22 Mar 2024 13:35:50 +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_256_GCM_SHA384) id 15.1.2507.35; Fri, 22 Mar 2024 13:35:49 +0800 Received: from RTEXMBS04.realtek.com.tw ([fe80::4c42:f80:bcc2:d00f]) by RTEXMBS04.realtek.com.tw ([fe80::4c42:f80:bcc2:d00f%5]) with mapi id 15.01.2507.035; Fri, 22 Mar 2024 13:35:49 +0800 From: Ping-Ke Shih To: "linux-wireless@vger.kernel.org" , "rtl8821cerfe2@gmail.com" CC: "Larry.Finger@lwfinger.net" , "s.l-h@gmx.de" , "chewitt@libreelec.tv" Subject: Re: [PATCH v3 08/12] wifi: rtlwifi: Add rtl8192du/rf.{c,h} Thread-Topic: [PATCH v3 08/12] wifi: rtlwifi: Add rtl8192du/rf.{c,h} Thread-Index: AQHaev50eQENSUSC00aMxdaNedlwx7FCuTMA Date: Fri, 22 Mar 2024 05:35:49 +0000 Message-ID: <632a0e013495c9e98214bd72463030dd2292fc1f.camel@realtek.com> References: <7f4b3309-1580-48f3-9426-29f1eb4052fd@gmail.com> In-Reply-To: Accept-Language: en-US, zh-TW Content-Language: zh-TW user-agent: Evolution 3.36.1-2 Content-Type: text/plain; charset="utf-8" Content-ID: <85D2FF7C5FF6D4458476AB4BF78279D2@realtek.com> Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-KSE-ServerInfo: RTEXH36505.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-Antivirus-Interceptor-Info: fallback X-KSE-AntiSpam-Interceptor-Info: fallback T24gV2VkLCAyMDI0LTAzLTIwIGF0IDIxOjQwICswMjAwLCBCaXR0ZXJibHVlIFNtaXRoIHdyb3Rl Og0KPiANCj4gVGhlc2UgY29udGFpbiBvbmUgUkYgY29uZmlndXJhdGlvbiBmdW5jdGlvbiBhbmQg c29tZSBmdW5jdGlvbnMgcmVsYXRlZA0KPiB0byBkdWFsIE1BQyBvcGVyYXRpb24uDQo+IA0KPiBT aWduZWQtb2ZmLWJ5OiBCaXR0ZXJibHVlIFNtaXRoIDxydGw4ODIxY2VyZmUyQGdtYWlsLmNvbT4N Cj4gLS0tDQo+IHYzOg0KPiAgLSBObyBjaGFuZ2UuDQo+IA0KPiB2MjoNCj4gIC0gUGF0Y2ggaXMg bmV3IGluIHYyLCBzcGxpdCBmcm9tIHBhdGNoIDMvMyBpbiB2MS4NCj4gLS0tDQo+ICAuLi4vd2ly ZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJkdS9yZi5jICAgfCAyMzYgKysrKysrKysrKysr KysrKysrDQo+ICAuLi4vd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJkdS9yZi5oICAg fCAgMTEgKw0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAyNDcgaW5zZXJ0aW9ucygrKQ0KPiAgY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTky ZHUvcmYuYw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0 ZWsvcnRsd2lmaS9ydGw4MTkyZHUvcmYuaA0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZHUvcmYuYw0KPiBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZHUvcmYuYw0KPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLmFmZGYwMzk0MDAxNQ0KPiAtLS0gL2Rldi9u dWxsDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTky ZHUvcmYuYw0KPiBAQCAtMCwwICsxLDIzNiBAQA0KPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjANCj4gKy8qIENvcHlyaWdodChjKSAyMDA5LTIwMTIgIFJlYWx0ZWsgQ29ycG9y YXRpb24uKi8NCj4gKw0KPiArI2luY2x1ZGUgIi4uL3dpZmkuaCINCj4gKyNpbmNsdWRlICIuLi9y dGw4MTkyZC9yZWcuaCINCj4gKyNpbmNsdWRlICIuLi9ydGw4MTkyZC9kZWYuaCINCj4gKyNpbmNs dWRlICIuLi9ydGw4MTkyZC9waHlfY29tbW9uLmgiDQo+ICsjaW5jbHVkZSAiLi4vcnRsODE5MmQv cmZfY29tbW9uLmgiDQo+ICsjaW5jbHVkZSAicGh5LmgiDQo+ICsjaW5jbHVkZSAicmYuaCINCj4g KyNpbmNsdWRlICJkbS5oIg0KPiArI2luY2x1ZGUgImh3LmgiDQo+ICsNCj4gK2Jvb2wgcnRsOTJk X3BoeV9lbmFibGVfYW5vdGhlcnBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgYm9vbCBibWFj MCkNCj4gK3sNCj4gKyAgICAgICBzdHJ1Y3QgcnRsX3ByaXYgKnJ0bHByaXYgPSBydGxfcHJpdiho dyk7DQo+ICsgICAgICAgc3RydWN0IHJ0bF9oYWwgKnJ0bGhhbCA9ICZydGxwcml2LT5ydGxoYWw7 DQo+ICsgICAgICAgdTggbWFjX29uX2JpdCA9IGJtYWMwID8gTUFDMV9PTiA6IE1BQzBfT047DQo+ ICsgICAgICAgdTggbWFjX3JlZyA9IGJtYWMwID8gUkVHX01BQzEgOiBSRUdfTUFDMDsNCj4gKyAg ICAgICBib29sIGJyZXN1bHQgPSB0cnVlOyAvKiB0cnVlOiBuZWVkIHRvIGVuYWJsZSBCQi9SRiBw b3dlciAqLw0KPiArICAgICAgIHUzMiBtYXNrZm9ycGh5c2V0ID0gMDsNCj4gKyAgICAgICB1MTYg dmFsMTY7DQo+ICsgICAgICAgdTggdTFidG1wOw0KPiArDQo+ICsgICAgICAgcnRsaGFsLT5kdXJp bmdfbWFjMGluaXRfcmFkaW9iID0gZmFsc2U7DQo+ICsgICAgICAgcnRsaGFsLT5kdXJpbmdfbWFj MWluaXRfcmFkaW9hID0gZmFsc2U7DQo+ICsgICAgICAgcnRsX2RiZyhydGxwcml2LCBDT01QX1JG LCBEQkdfTE9VRCwgIj09PT5cbiIpOw0KPiArICAgICAgIC8qIE1BQzAgTmVlZCBQSFkxIGxvYWQg cmFkaW9fYi50eHQgLiBEcml2ZXIgdXNlIERCSSB0byB3cml0ZS4gKi8NCj4gKyAgICAgICB1MWJ0 bXAgPSBydGxfcmVhZF9ieXRlKHJ0bHByaXYsIG1hY19yZWcpOw0KPiArICAgICAgIGlmICghKHUx YnRtcCAmIG1hY19vbl9iaXQpKSB7DQo+ICsgICAgICAgICAgICAgICBydGxfZGJnKHJ0bHByaXYs IENPTVBfSU5JVCwgREJHX0xPVUQsICJlbmFibGUgQkIgJiBSRlxuIik7DQo+ICsgICAgICAgICAg ICAgICAvKiBFbmFibGUgQkIgYW5kIFJGIHBvd2VyICovDQo+ICsNCj4gKyAgICAgICAgICAgICAg IG1hc2tmb3JwaHlzZXQgPSBibWFjMCA/IE1BQzBfQUNDRVNTX1BIWTEgOiBNQUMxX0FDQ0VTU19Q SFkwOw0KPiArDQo+ICsgICAgICAgICAgICAgICB2YWwxNiA9IHJ0bF9yZWFkX3dvcmQocnRscHJp diwgUkVHX1NZU19GVU5DX0VOIHwgbWFza2ZvcnBoeXNldCk7DQo+ICsgICAgICAgICAgICAgICB2 YWwxNiAmPSAweGZmZmM7DQo+ICsgICAgICAgICAgICAgICBydGxfd3JpdGVfd29yZChydGxwcml2 LCBSRUdfU1lTX0ZVTkNfRU4gfCBtYXNrZm9ycGh5c2V0LCB2YWwxNik7DQo+ICsNCj4gKyAgICAg ICAgICAgICAgIHZhbDE2ID0gcnRsX3JlYWRfd29yZChydGxwcml2LCBSRUdfU1lTX0ZVTkNfRU4g fCBtYXNrZm9ycGh5c2V0KTsNCj4gKyAgICAgICAgICAgICAgIHZhbDE2IHw9IEJJVCgxMykgfCBC SVQoMCkgfCBCSVQoMSk7DQo+ICsgICAgICAgICAgICAgICBydGxfd3JpdGVfd29yZChydGxwcml2 LCBSRUdfU1lTX0ZVTkNfRU4gfCBtYXNrZm9ycGh5c2V0LCB2YWwxNik7DQo+ICsgICAgICAgfSBl bHNlIHsNCj4gKyAgICAgICAgICAgICAgIC8qIFdlIHRoaW5rIGlmIE1BQzEgaXMgT04sdGhlbiBy YWRpb19hLnR4dA0KPiArICAgICAgICAgICAgICAgICogYW5kIHJhZGlvX2IudHh0IGhhcyBiZWVu IGxvYWQuDQo+ICsgICAgICAgICAgICAgICAgKi8NCj4gKyAgICAgICAgICAgICAgIGJyZXN1bHQg PSBmYWxzZTsNCj4gKyAgICAgICB9DQo+ICsgICAgICAgcnRsX2RiZyhydGxwcml2LCBDT01QX1JG LCBEQkdfTE9VRCwgIjw9PT1cbiIpOw0KPiArICAgICAgIHJldHVybiBicmVzdWx0Ow0KPiArfQ0K PiArDQo+ICt2b2lkIHJ0bDkyZF9waHlfcG93ZXJkb3duX2Fub3RoZXJwaHkoc3RydWN0IGllZWU4 MDIxMV9odyAqaHcsIGJvb2wgYm1hYzApDQo+ICt7DQo+ICsgICAgICAgc3RydWN0IHJ0bF9wcml2 ICpydGxwcml2ID0gcnRsX3ByaXYoaHcpOw0KPiArICAgICAgIHN0cnVjdCBydGxfaGFsICpydGxo YWwgPSAmcnRscHJpdi0+cnRsaGFsOw0KPiArICAgICAgIHU4IG1hY19vbl9iaXQgPSBibWFjMCA/ IE1BQzFfT04gOiBNQUMwX09OOw0KPiArICAgICAgIHU4IG1hY19yZWcgPSBibWFjMCA/IFJFR19N QUMxIDogUkVHX01BQzA7DQo+ICsgICAgICAgdTMyIG1hc2tmb3JwaHlzZXQgPSAwOw0KPiArICAg ICAgIHU4IHUxYnRtcDsNCj4gKw0KPiArICAgICAgIHJ0bGhhbC0+ZHVyaW5nX21hYzBpbml0X3Jh ZGlvYiA9IGZhbHNlOw0KPiArICAgICAgIHJ0bGhhbC0+ZHVyaW5nX21hYzFpbml0X3JhZGlvYSA9 IGZhbHNlOw0KPiArICAgICAgIHJ0bF9kYmcocnRscHJpdiwgQ09NUF9SRiwgREJHX0xPVUQsICI9 PT09PlxuIik7DQo+ICsgICAgICAgLyogY2hlY2sgTUFDMCBlbmFibGUgb3Igbm90IGFnYWluIG5v dywgaWYNCj4gKyAgICAgICAgKiBlbmFibGVkLCBub3QgcG93ZXIgZG93biByYWRpbyBBLg0KPiAr ICAgICAgICAqLw0KPiArICAgICAgIHUxYnRtcCA9IHJ0bF9yZWFkX2J5dGUocnRscHJpdiwgbWFj X3JlZyk7DQo+ICsgICAgICAgaWYgKCEodTFidG1wICYgbWFjX29uX2JpdCkpIHsNCj4gKyAgICAg ICAgICAgICAgIHJ0bF9kYmcocnRscHJpdiwgQ09NUF9JTklULCBEQkdfTE9VRCwgInBvd2VyIGRv d25cbiIpOw0KPiArICAgICAgICAgICAgICAgLyogcG93ZXIgZG93biBSRiByYWRpbyBBIGFjY29y ZGluZyB0byBZdU5hbidzIGFkdmljZS4gKi8NCj4gKyAgICAgICAgICAgICAgIG1hc2tmb3JwaHlz ZXQgPSBibWFjMCA/IE1BQzBfQUNDRVNTX1BIWTEgOiBNQUMxX0FDQ0VTU19QSFkwOw0KPiArICAg ICAgICAgICAgICAgcnRsX3dyaXRlX2R3b3JkKHJ0bHByaXYsIFJGUEdBMF9YQV9MU1NJUEFSQU1F VEVSIHwgbWFza2ZvcnBoeXNldCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAwMDAwKTsNCj4gKyAgICAgICB9DQo+ICsgICAgICAgcnRsX2RiZyhydGxwcml2LCBDT01Q X1JGLCBEQkdfTE9VRCwgIjw9PT09XG4iKTsNCj4gK30NCj4gKw0KPiArYm9vbCBydGw5MmRfcGh5 X3JmNjA1Ml9jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpDQo+ICt7DQo+ICsgICAgICAg Ym9vbCBtYWMxX2luaXRyYWRpb2FfZmlyc3QgPSBmYWxzZSwgbWFjMF9pbml0cmFkaW9iX2ZpcnN0 ID0gZmFsc2U7DQo+ICsgICAgICAgYm9vbCBuZWVkX3B3cmRvd25fcmFkaW9hID0gZmFsc2UsIG5l ZWRfcHdyZG93bl9yYWRpb2IgPSBmYWxzZTsNCj4gKyAgICAgICBzdHJ1Y3QgcnRsX3ByaXYgKnJ0 bHByaXYgPSBydGxfcHJpdihodyk7DQo+ICsgICAgICAgc3RydWN0IHJ0bF9oYWwgKnJ0bGhhbCA9 ICZydGxwcml2LT5ydGxoYWw7DQo+ICsgICAgICAgc3RydWN0IHJ0bF9waHkgKnJ0bHBoeSA9ICZy dGxwcml2LT5waHk7DQo+ICsgICAgICAgc3RydWN0IGJiX3JlZ19kZWYgKnBwaHlyZWc7DQo+ICsg ICAgICAgYm9vbCB0cnVlX2JwYXRoID0gZmFsc2U7DQo+ICsgICAgICAgYm9vbCBydHN0YXR1cyA9 IHRydWU7DQo+ICsgICAgICAgdTMyIHU0X3JlZ3ZhbHVlID0gMDsNCj4gKyAgICAgICB1OCByZnBh dGg7DQo+ICsNCj4gKyAgICAgICBpZiAocnRscGh5LT5yZl90eXBlID09IFJGXzFUMVIpDQo+ICsg ICAgICAgICAgICAgICBydGxwaHktPm51bV90b3RhbF9yZnBhdGggPSAxOw0KPiArICAgICAgIGVs c2UNCj4gKyAgICAgICAgICAgICAgIHJ0bHBoeS0+bnVtX3RvdGFsX3JmcGF0aCA9IDI7DQo+ICsN Cj4gKyAgICAgICAvKiBTaW5nbGUgcGh5IG1vZGU6IHVzZSByYWRpb19hIHJhZGlvX2IgY29uZmln IHBhdGhfQSBwYXRoX0IgKi8NCj4gKyAgICAgICAvKiBzZXBhcmF0ZWx5IGJ5IE1BQzAsIGFuZCBN QUMxIG5lZWRuJ3QgY29uZmlndXJlIFJGOyAqLw0KPiArICAgICAgIC8qIER1YWwgUEhZIG1vZGU6 TUFDMCB1c2UgcmFkaW9fYSBjb25maWcgMXN0IHBoeSBwYXRoX0EsICovDQo+ICsgICAgICAgLyog TUFDMSB1c2UgcmFkaW9fYiBjb25maWcgMm5kIFBIWSBwYXRoX0EuICovDQo+ICsgICAgICAgLyog RE1EUCxNQUMwIG9uIEcgYmFuZCxNQUMxIG9uIEEgYmFuZC4gKi8NCg0KLyogVXNlIHRoaXMgc3R5 bGUgb2YgbXVsdGlwbGUgbGluZXMgY29tbWVudHMNCiAqIFNlY29uZCBsaW5lDQogKiBUaGlyZCBs aW5lDQogKi8NCg0KDQo+ICsgICAgICAgaWYgKHJ0bGhhbC0+bWFjcGh5bW9kZSA9PSBEVUFMTUFD X0RVQUxQSFkpIHsNCj4gKyAgICAgICAgICAgICAgIGlmIChydGxoYWwtPmN1cnJlbnRfYmFuZHR5 cGUgPT0gQkFORF9PTl8yXzRHICYmDQo+ICsgICAgICAgICAgICAgICAgICAgcnRsaGFsLT5pbnRl cmZhY2VpbmRleCA9PSAwKSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIC8qIE1BQzAgbmVl ZHMgUEhZMSBsb2FkIHJhZGlvX2IudHh0LiAqLw0KPiArICAgICAgICAgICAgICAgICAgICAgICBp ZiAocnRsOTJkX3BoeV9lbmFibGVfYW5vdGhlcnBoeShodywgdHJ1ZSkpIHsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBydGxwaHktPm51bV90b3RhbF9yZnBhdGggPSAyOw0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hYzBfaW5pdHJhZGlvYl9maXJzdCA9IHRy dWU7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogV2UgdGhpbmsgaWYgTUFDMSBpcyBPTix0aGVuIHJhZGlvX2Eu dHh0IGFuZA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHJhZGlvX2IudHh0 IGhhcyBiZWVuIGxvYWQuDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJ0c3RhdHVzOw0KPiArICAg ICAgICAgICAgICAgICAgICAgICB9DQo+ICsgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJ0bGhh bC0+Y3VycmVudF9iYW5kdHlwZSA9PSBCQU5EX09OXzVHICYmDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgIHJ0bGhhbC0+aW50ZXJmYWNlaW5kZXggPT0gMSkgew0KPiArICAgICAgICAgICAg ICAgICAgICAgICAvKiBNQUMxIG5lZWRzIFBIWTAgbG9hZCByYWRpb19hLnR4dC4gKi8NCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgaWYgKHJ0bDkyZF9waHlfZW5hYmxlX2Fub3RoZXJwaHkoaHcs IGZhbHNlKSkgew0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0bHBoeS0+bnVt X3RvdGFsX3JmcGF0aCA9IDI7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFj MV9pbml0cmFkaW9hX2ZpcnN0ID0gdHJ1ZTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgfSBl bHNlIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXZSB0aGluayBpZiBN QUMwIGlzIE9OLCB0aGVuIHJhZGlvX2EudHh0IGFuZA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqIHJhZGlvX2IudHh0IGhhcyBiZWVuIGxvYWQuDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICovDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIHJ0c3RhdHVzOw0KPiArICAgICAgICAgICAgICAgICAgICAgICB9DQo+ICsgICAgICAg ICAgICAgICB9IGVsc2UgaWYgKHJ0bGhhbC0+aW50ZXJmYWNlaW5kZXggPT0gMSkgew0KPiArICAg ICAgICAgICAgICAgICAgICAgICAvKiBNQUMwIGVuYWJsZWQsIG9ubHkgaW5pdCByYWRpYSBCLiAg ICovDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHRydWVfYnBhdGggPSB0cnVlOw0KPiArICAg ICAgICAgICAgICAgfQ0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIGZvciAocmZwYXRoID0g MDsgcmZwYXRoIDwgcnRscGh5LT5udW1fdG90YWxfcmZwYXRoOyByZnBhdGgrKykgew0KPiArICAg ICAgICAgICAgICAgLyogTWFjMSB1c2UgUEhZMCB3cml0ZSAqLw0KPiArICAgICAgICAgICAgICAg aWYgKG1hYzFfaW5pdHJhZGlvYV9maXJzdCkgew0KPiArICAgICAgICAgICAgICAgICAgICAgICBp ZiAocmZwYXRoID09IFJGOTBfUEFUSF9BKSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcnRsaGFsLT5kdXJpbmdfbWFjMWluaXRfcmFkaW9hID0gdHJ1ZTsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBuZWVkX3B3cmRvd25fcmFkaW9hID0gdHJ1ZTsNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZnBhdGggPT0gUkY5MF9QQVRIX0IpIHsN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydGxoYWwtPmR1cmluZ19tYWMxaW5p dF9yYWRpb2EgPSBmYWxzZTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWMx X2luaXRyYWRpb2FfZmlyc3QgPSBmYWxzZTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZnBhdGggPSBSRjkwX1BBVEhfQTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0cnVlX2JwYXRoID0gdHJ1ZTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBydGxwaHktPm51bV90b3RhbF9yZnBhdGggPSAxOw0KPiArICAgICAgICAgICAgICAgICAgICAg ICB9DQo+ICsgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1hYzBfaW5pdHJhZGlvYl9maXJzdCkg ew0KPiArICAgICAgICAgICAgICAgICAgICAgICAvKiBNYWMwIHVzZSBQSFkxIHdyaXRlICovDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZnBhdGggPT0gUkY5MF9QQVRIX0EpDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRsaGFsLT5kdXJpbmdfbWFjMGluaXRfcmFk aW9iID0gZmFsc2U7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZnBhdGggPT0gUkY5 MF9QQVRIX0IpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydGxoYWwtPmR1 cmluZ19tYWMwaW5pdF9yYWRpb2IgPSB0cnVlOw0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1hYzBfaW5pdHJhZGlvYl9maXJzdCA9IGZhbHNlOw0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5lZWRfcHdyZG93bl9yYWRpb2IgPSB0cnVlOw0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJmcGF0aCA9IFJGOTBfUEFUSF9BOw0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRydWVfYnBhdGggPSB0cnVlOw0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJ0bHBoeS0+bnVtX3RvdGFsX3JmcGF0aCA9IDE7DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgIH0NCj4gKyAgICAgICAgICAgICAgIH0NCg0KaW5zZXJ0IHByb3Bl ciBibGFuayBsaW5lcy4uLg0KDQo+ICsgICAgICAgICAgICAgICBwcGh5cmVnID0gJnJ0bHBoeS0+ cGh5cmVnX2RlZltyZnBhdGhdOw0KPiArICAgICAgICAgICAgICAgc3dpdGNoIChyZnBhdGgpIHsN Cj4gKyAgICAgICAgICAgICAgIGNhc2UgUkY5MF9QQVRIX0E6DQo+ICsgICAgICAgICAgICAgICBj YXNlIFJGOTBfUEFUSF9DOg0KPiArICAgICAgICAgICAgICAgICAgICAgICB1NF9yZWd2YWx1ZSA9 IHJ0bF9nZXRfYmJyZWcoaHcsIHBwaHlyZWctPnJmaW50ZnMsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCUkZTSV9SRkVOVik7DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICAgICAgICAgY2FzZSBSRjkwX1BB VEhfQjoNCj4gKyAgICAgICAgICAgICAgIGNhc2UgUkY5MF9QQVRIX0Q6DQo+ICsgICAgICAgICAg ICAgICAgICAgICAgIHU0X3JlZ3ZhbHVlID0gcnRsX2dldF9iYnJlZyhodywgcHBoeXJlZy0+cmZp bnRmcywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJSRlNJX1JGRU5WIDw8IDE2KTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 DQo+ICsgICAgICAgICAgICAgICB9DQoNCj4gKyAgICAgICAgICAgICAgIHJ0bF9zZXRfYmJyZWco aHcsIHBwaHlyZWctPnJmaW50ZmUsIEJSRlNJX1JGRU5WIDw8IDE2LCAweDEpOw0KPiArICAgICAg ICAgICAgICAgdWRlbGF5KDEpOw0KPiArICAgICAgICAgICAgICAgcnRsX3NldF9iYnJlZyhodywg cHBoeXJlZy0+cmZpbnRmbywgQlJGU0lfUkZFTlYsIDB4MSk7DQo+ICsgICAgICAgICAgICAgICB1 ZGVsYXkoMSk7DQoNCj4gKyAgICAgICAgICAgICAgIC8qIFNldCBiaXQgbnVtYmVyIG9mIEFkZHJl c3MgYW5kIERhdGEgZm9yIFJGIHJlZ2lzdGVyICovDQo+ICsgICAgICAgICAgICAgICBydGxfc2V0 X2JicmVnKGh3LCBwcGh5cmVnLT5yZmhzc2lfcGFyYTIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEIzV0lSRUFERFJFU1NMRU5HVEgsIDB4MCk7DQo+ICsgICAgICAgICAgICAgICB1 ZGVsYXkoMSk7DQo+ICsgICAgICAgICAgICAgICBydGxfc2V0X2JicmVnKGh3LCBwcGh5cmVnLT5y Zmhzc2lfcGFyYTIsIEIzV0lSRURBVEFMRU5HVEgsIDB4MCk7DQo+ICsgICAgICAgICAgICAgICB1 ZGVsYXkoMSk7DQoNCj4gKyAgICAgICAgICAgICAgIHN3aXRjaCAocmZwYXRoKSB7DQo+ICsgICAg ICAgICAgICAgICBjYXNlIFJGOTBfUEFUSF9BOg0KPiArICAgICAgICAgICAgICAgICAgICAgICBp ZiAodHJ1ZV9icGF0aCkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydHN0YXR1 cyA9IHJ0bDkyZF9waHlfY29uZmlnX3JmX3dpdGhfaGVhZGVyZmlsZSgNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHcsIHJhZGlvYl90eHQsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbnVtIHJhZGlv X3BhdGgpcmZwYXRoKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJ0c3RhdHVzID0gcnRsOTJkX3BoeV9jb25maWdfcmZf d2l0aF9oZWFkZXJmaWxlKA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBodywgcmFkaW9hX3R4dCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGVudW0gcmFkaW9fcGF0aClyZnBhdGgpOw0KPiArICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICAgICAgICAgIGNhc2UgUkY5MF9QQVRI X0I6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0c3RhdHVzID0NCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJ0bDkyZF9waHlfY29uZmlnX3JmX3dpdGhfaGVhZGVyZmlsZShodywg cmFkaW9iX3R4dCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGVudW0gcmFkaW9fcGF0aClyZnBhdGgpOw0KPiArICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsNCj4gKyAgICAgICAgICAgICAgIGNhc2UgUkY5MF9QQVRIX0M6DQo+ICsgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICAgICAgICAgY2FzZSBSRjkwX1BBVEhf RDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgICAgICAgICB9 DQoNCj4gKyAgICAgICAgICAgICAgIHN3aXRjaCAocmZwYXRoKSB7DQo+ICsgICAgICAgICAgICAg ICBjYXNlIFJGOTBfUEFUSF9BOg0KPiArICAgICAgICAgICAgICAgY2FzZSBSRjkwX1BBVEhfQzoN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnRsX3NldF9iYnJlZyhodywgcHBoeXJlZy0+cmZp bnRmcywgQlJGU0lfUkZFTlYsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdTRfcmVndmFsdWUpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gKyAg ICAgICAgICAgICAgIGNhc2UgUkY5MF9QQVRIX0I6DQo+ICsgICAgICAgICAgICAgICBjYXNlIFJG OTBfUEFUSF9EOg0KPiArICAgICAgICAgICAgICAgICAgICAgICBydGxfc2V0X2JicmVnKGh3LCBw cGh5cmVnLT5yZmludGZzLCBCUkZTSV9SRkVOViA8PCAxNiwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1NF9yZWd2YWx1ZSk7DQo+ICsgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOw0KPiArICAgICAgICAgICAgICAgfQ0KDQo+ICsgICAgICAgICAgICAgICBpZiAo IXJ0c3RhdHVzKSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0bF9kYmcocnRscHJpdiwg Q09NUF9JTklULCBEQkdfVFJBQ0UsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IlJhZGlvWyVkXSBGYWlsISFcbiIsIHJmcGF0aCk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAg IGdvdG8gcGh5X3JmX2NmZ19mYWlsOw0KPiArICAgICAgICAgICAgICAgfQ0KPiArICAgICAgIH0N Cj4gKw0KPiArICAgICAgIC8qIGNoZWNrIE1BQzAgZW5hYmxlIG9yIG5vdCBhZ2FpbiwgaWYgZW5h YmxlZCwNCj4gKyAgICAgICAgKiBub3QgcG93ZXIgZG93biByYWRpbyBBLg0KPiArICAgICAgICAq IGNoZWNrIE1BQzEgZW5hYmxlIG9yIG5vdCBhZ2FpbiwgaWYgZW5hYmxlZCwNCj4gKyAgICAgICAg KiBub3QgcG93ZXIgZG93biByYWRpbyBCLg0KPiArICAgICAgICAqLw0KPiArICAgICAgIGlmIChu ZWVkX3B3cmRvd25fcmFkaW9hKQ0KPiArICAgICAgICAgICAgICAgcnRsOTJkX3BoeV9wb3dlcmRv d25fYW5vdGhlcnBoeShodywgZmFsc2UpOw0KPiArICAgICAgIGVsc2UgaWYgKG5lZWRfcHdyZG93 bl9yYWRpb2IpDQo+ICsgICAgICAgICAgICAgICBydGw5MmRfcGh5X3Bvd2VyZG93bl9hbm90aGVy cGh5KGh3LCB0cnVlKTsNCj4gKyAgICAgICBydGxfZGJnKHJ0bHByaXYsIENPTVBfSU5JVCwgREJH X1RSQUNFLCAiPC0tLVxuIik7DQoNCj4gKyAgICAgICByZXR1cm4gcnRzdGF0dXM7DQo+ICsNCj4g K3BoeV9yZl9jZmdfZmFpbDoNCj4gKyAgICAgICByZXR1cm4gcnRzdGF0dXM7DQoNCk5vIHNwZWNp YWwgZGVhbCwgc28gc2hvdWxkIHJldHVybiBkaXJlY3RseS4NCg0KPiArfQ0KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJkdS9yZi5oDQo+ IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJkdS9yZi5oDQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uYzA5N2Q5MGNjOTlj DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9y dGx3aWZpL3J0bDgxOTJkdS9yZi5oDQo+IEBAIC0wLDAgKzEsMTEgQEANCj4gKy8qIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovDQo+ICsvKiBDb3B5cmlnaHQoYykgMjAwOS0yMDEy ICBSZWFsdGVrIENvcnBvcmF0aW9uLiovDQo+ICsNCj4gKyNpZm5kZWYgX19SVEw5MkRfUkZfSF9f DQo+ICsjZGVmaW5lIF9fUlRMOTJEX1JGX0hfXw0KDQpfX1JUTDkyRFVfUkZfSF9fID8/DQoNCj4g Kw0KPiArYm9vbCBydGw5MmRfcGh5X3JmNjA1Ml9jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAq aHcpOw0KPiArYm9vbCBydGw5MmRfcGh5X2VuYWJsZV9hbm90aGVycGh5KHN0cnVjdCBpZWVlODAy MTFfaHcgKmh3LCBib29sIGJtYWMwKTsNCj4gK3ZvaWQgcnRsOTJkX3BoeV9wb3dlcmRvd25fYW5v dGhlcnBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgYm9vbCBibWFjMCk7DQo+ICsNCj4gKyNl bmRpZg0KPiAtLQ0KPiAyLjQzLjINCg==