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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2323FC433F5 for ; Thu, 5 May 2022 01:29:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3DC366B0071; Wed, 4 May 2022 21:29:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 38BA46B0073; Wed, 4 May 2022 21:29:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 22B606B0074; Wed, 4 May 2022 21:29:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 1429F6B0071 for ; Wed, 4 May 2022 21:29:47 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id DB57B20A66 for ; Thu, 5 May 2022 01:29:46 +0000 (UTC) X-FDA: 79429957572.22.0784848 Received: from alexa-out-sd-02.qualcomm.com (alexa-out-sd-02.qualcomm.com [199.106.114.39]) by imf17.hostedemail.com (Postfix) with ESMTP id A01474008E for ; Thu, 5 May 2022 01:29:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1651714186; x=1683250186; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to; bh=LX+IV8UQKlwrXFzODkIrRP1oLlHe/ZS4mkNu68f7WZQ=; b=cZBCvRzj4P0g1rPmgRwNFUYm9/LrJqPXvx/2f2fnhIElOk+kRCyspAa3 sE1AqxFj1n08Doei8pVEkcdcT+M9mb/F0uHVs5cv0AW2ZBfgRtAuVqCZJ 0aUNAjaRqcfHyRES+MBYaUIIxv9NGT6zeFHiHZDw1gQ74WU9UOzkOuJ+Z A=; Received: from unknown (HELO ironmsg04-sd.qualcomm.com) ([10.53.140.144]) by alexa-out-sd-02.qualcomm.com with ESMTP; 04 May 2022 18:29:44 -0700 X-QCInternal: smtphost Received: from unknown (HELO nasanex01a.na.qualcomm.com) ([10.52.223.231]) by ironmsg04-sd.qualcomm.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 May 2022 18:29:44 -0700 Received: from [10.253.74.101] (10.80.80.8) by nasanex01a.na.qualcomm.com (10.52.223.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Wed, 4 May 2022 18:29:42 -0700 Content-Type: multipart/alternative; boundary="------------IucPD7REACNhKqjFFo8Aj0FB" Message-ID: Date: Thu, 5 May 2022 09:29:40 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [linux-next:master 408/8237] drivers/net/wireless/ath/ath11k/wow.c:712 ath11k_wow_op_resume() warn: inconsistent returns '&ar->conf_mutex'. Content-Language: en-US To: Kalle Valo , Dan Carpenter CC: , , , "Linux Memory Management List" , , Wen Gong References: <202205032236.kofEquX3-lkp@intel.com> From: Carl Huang In-Reply-To: X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nasanex01a.na.qualcomm.com (10.52.223.231) X-Stat-Signature: q4jnbgm1nk6jmny6iw9fgda1693b8i4e X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: A01474008E X-Rspam-User: Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=quicinc.com header.s=qcdkim header.b=cZBCvRzj; dmarc=pass (policy=none) header.from=quicinc.com; spf=pass (imf17.hostedemail.com: domain of quic_cjhuang@quicinc.com designates 199.106.114.39 as permitted sender) smtp.mailfrom=quic_cjhuang@quicinc.com X-HE-Tag: 1651714172-986645 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --------------IucPD7REACNhKqjFFo8Aj0FB Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit Hi Kalle, Is the below the same fix that you have already applied to ath.git? [-next] ath11k: fix missing unlock on error in ath11k_wow_op_resume() - Patchwork (kernel.org) Thanks, Carl On 5/5/2022 12:23 AM, Kalle Valo wrote: > + ath11k, wen > > Dan Carpenter writes: > >> tree:https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master >> head: 44a2f39e611ac0bc1f17c288a583d7f2e5684aa7 >> commit: 90bf5c8d0f7ecddf96fc1cd9434af4e157b51970 [408/8237] ath11k: >> purge rx pktlog when entering WoW >> config: i386-randconfig-m021-20220502 >> (https://download.01.org/0day-ci/archive/20220503/202205032236.kofEquX3-lkp@intel.com/config) >> compiler: gcc-11 (Debian 11.2.0-20) 11.2.0 >> >> If you fix the issue, kindly add following tag as appropriate >> Reported-by: kernel test robot >> Reported-by: Dan Carpenter >> >> smatch warnings: >> drivers/net/wireless/ath/ath11k/wow.c:712 ath11k_wow_op_resume() warn: >> inconsistent returns '&ar->conf_mutex'. >> >> vim +712 drivers/net/wireless/ath/ath11k/wow.c >> >> ba9177fcef21fa Carl Huang 2022-03-14 653 int >> ath11k_wow_op_resume(struct ieee80211_hw *hw) >> ba9177fcef21fa Carl Huang 2022-03-14 654 { >> ba9177fcef21fa Carl Huang 2022-03-14 655 struct ath11k *ar = hw->priv; >> ba9177fcef21fa Carl Huang 2022-03-14 656 int ret; >> ba9177fcef21fa Carl Huang 2022-03-14 657 >> ba9177fcef21fa Carl Huang 2022-03-14 658 mutex_lock(&ar->conf_mutex); >> ba9177fcef21fa Carl Huang 2022-03-14 659 >> ba9177fcef21fa Carl Huang 2022-03-14 660 ret = ath11k_hif_resume(ar->ab); >> ba9177fcef21fa Carl Huang 2022-03-14 661 if (ret) { >> ba9177fcef21fa Carl Huang 2022-03-14 662 ath11k_warn(ar->ab, "failed >> to resume hif: %d\n", ret); >> ba9177fcef21fa Carl Huang 2022-03-14 663 goto exit; >> ba9177fcef21fa Carl Huang 2022-03-14 664 } >> ba9177fcef21fa Carl Huang 2022-03-14 665 >> ba9177fcef21fa Carl Huang 2022-03-14 666 ath11k_hif_ce_irq_enable(ar->ab); >> ba9177fcef21fa Carl Huang 2022-03-14 667 ath11k_hif_irq_enable(ar->ab); >> ba9177fcef21fa Carl Huang 2022-03-14 668 >> 90bf5c8d0f7ecd Carl Huang 2022-03-14 669 ret = ath11k_dp_rx_pktlog_start(ar->ab); >> 90bf5c8d0f7ecd Carl Huang 2022-03-14 670 if (ret) { >> 90bf5c8d0f7ecd Carl Huang 2022-03-14 671 ath11k_warn(ar->ab, "failed >> to start rx pktlog from wow: %d\n", ret); >> 90bf5c8d0f7ecd Carl Huang 2022-03-14 672 return ret; >> >> goto exit; > Carl or Wen, are you able to send a fix for this? --------------IucPD7REACNhKqjFFo8Aj0FB Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: 7bit

Hi Kalle,

Is the below the same fix that you have already applied to ath.git?

[-next] ath11k: fix missing unlock on error in ath11k_wow_op_resume() - Patchwork (kernel.org)

Thanks,

Carl


On 5/5/2022 12:23 AM, Kalle Valo wrote:
+ ath11k, wen

Dan Carpenter <dan.carpenter@oracle.com> writes:

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   44a2f39e611ac0bc1f17c288a583d7f2e5684aa7
commit: 90bf5c8d0f7ecddf96fc1cd9434af4e157b51970 [408/8237] ath11k:
purge rx pktlog when entering WoW
config: i386-randconfig-m021-20220502
(https://download.01.org/0day-ci/archive/20220503/202205032236.kofEquX3-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.2.0-20) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/net/wireless/ath/ath11k/wow.c:712 ath11k_wow_op_resume() warn:
inconsistent returns '&ar->conf_mutex'.

vim +712 drivers/net/wireless/ath/ath11k/wow.c

ba9177fcef21fa Carl Huang 2022-03-14 653 int
ath11k_wow_op_resume(struct ieee80211_hw *hw)
ba9177fcef21fa Carl Huang 2022-03-14  654  {
ba9177fcef21fa Carl Huang 2022-03-14  655  	struct ath11k *ar = hw->priv;
ba9177fcef21fa Carl Huang 2022-03-14  656  	int ret;
ba9177fcef21fa Carl Huang 2022-03-14  657  
ba9177fcef21fa Carl Huang 2022-03-14  658  	mutex_lock(&ar->conf_mutex);
ba9177fcef21fa Carl Huang 2022-03-14  659  
ba9177fcef21fa Carl Huang 2022-03-14  660  	ret = ath11k_hif_resume(ar->ab);
ba9177fcef21fa Carl Huang 2022-03-14  661  	if (ret) {
ba9177fcef21fa Carl Huang 2022-03-14 662 ath11k_warn(ar->ab, "failed
to resume hif: %d\n", ret);
ba9177fcef21fa Carl Huang 2022-03-14  663  		goto exit;
ba9177fcef21fa Carl Huang 2022-03-14  664  	}
ba9177fcef21fa Carl Huang 2022-03-14  665  
ba9177fcef21fa Carl Huang 2022-03-14  666  	ath11k_hif_ce_irq_enable(ar->ab);
ba9177fcef21fa Carl Huang 2022-03-14  667  	ath11k_hif_irq_enable(ar->ab);
ba9177fcef21fa Carl Huang 2022-03-14  668  
90bf5c8d0f7ecd Carl Huang 2022-03-14  669  	ret = ath11k_dp_rx_pktlog_start(ar->ab);
90bf5c8d0f7ecd Carl Huang 2022-03-14  670  	if (ret) {
90bf5c8d0f7ecd Carl Huang 2022-03-14 671 ath11k_warn(ar->ab, "failed
to start rx pktlog from wow: %d\n", ret);
90bf5c8d0f7ecd Carl Huang 2022-03-14  672  		return ret;

goto exit;
Carl or Wen, are you able to send a fix for this?
--------------IucPD7REACNhKqjFFo8Aj0FB-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5184509165632058693==" MIME-Version: 1.0 From: Carl Huang To: kbuild-all@lists.01.org Subject: Re: [linux-next:master 408/8237] drivers/net/wireless/ath/ath11k/wow.c:712 ath11k_wow_op_resume() warn: inconsistent returns '&ar->conf_mutex'. Date: Thu, 05 May 2022 09:29:40 +0800 Message-ID: In-Reply-To: List-Id: --===============5184509165632058693== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Kalle, Is the below the same fix that you have already applied to ath.git? [-next] ath11k: fix missing unlock on error in ath11k_wow_op_resume() - = Patchwork (kernel.org) = Thanks, Carl On 5/5/2022 12:23 AM, Kalle Valo wrote: > + ath11k, wen > > Dan Carpenter writes: > >> tree:https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git= master >> head: 44a2f39e611ac0bc1f17c288a583d7f2e5684aa7 >> commit: 90bf5c8d0f7ecddf96fc1cd9434af4e157b51970 [408/8237] ath11k: >> purge rx pktlog when entering WoW >> config: i386-randconfig-m021-20220502 >> (https://download.01.org/0day-ci/archive/20220503/202205032236.kofEquX3-= lkp(a)intel.com/config) >> compiler: gcc-11 (Debian 11.2.0-20) 11.2.0 >> >> If you fix the issue, kindly add following tag as appropriate >> Reported-by: kernel test robot >> Reported-by: Dan Carpenter >> >> smatch warnings: >> drivers/net/wireless/ath/ath11k/wow.c:712 ath11k_wow_op_resume() warn: >> inconsistent returns '&ar->conf_mutex'. >> >> vim +712 drivers/net/wireless/ath/ath11k/wow.c >> >> ba9177fcef21fa Carl Huang 2022-03-14 653 int >> ath11k_wow_op_resume(struct ieee80211_hw *hw) >> ba9177fcef21fa Carl Huang 2022-03-14 654 { >> ba9177fcef21fa Carl Huang 2022-03-14 655 struct ath11k *ar =3D hw->pr= iv; >> ba9177fcef21fa Carl Huang 2022-03-14 656 int ret; >> ba9177fcef21fa Carl Huang 2022-03-14 657 >> ba9177fcef21fa Carl Huang 2022-03-14 658 mutex_lock(&ar->conf_mutex); >> ba9177fcef21fa Carl Huang 2022-03-14 659 >> ba9177fcef21fa Carl Huang 2022-03-14 660 ret =3D ath11k_hif_resume(ar= ->ab); >> ba9177fcef21fa Carl Huang 2022-03-14 661 if (ret) { >> ba9177fcef21fa Carl Huang 2022-03-14 662 ath11k_warn(ar->ab, "failed >> to resume hif: %d\n", ret); >> ba9177fcef21fa Carl Huang 2022-03-14 663 goto exit; >> ba9177fcef21fa Carl Huang 2022-03-14 664 } >> ba9177fcef21fa Carl Huang 2022-03-14 665 >> ba9177fcef21fa Carl Huang 2022-03-14 666 ath11k_hif_ce_irq_enable(ar-= >ab); >> ba9177fcef21fa Carl Huang 2022-03-14 667 ath11k_hif_irq_enable(ar->ab= ); >> ba9177fcef21fa Carl Huang 2022-03-14 668 >> 90bf5c8d0f7ecd Carl Huang 2022-03-14 669 ret =3D ath11k_dp_rx_pktlog_= start(ar->ab); >> 90bf5c8d0f7ecd Carl Huang 2022-03-14 670 if (ret) { >> 90bf5c8d0f7ecd Carl Huang 2022-03-14 671 ath11k_warn(ar->ab, "failed >> to start rx pktlog from wow: %d\n", ret); >> 90bf5c8d0f7ecd Carl Huang 2022-03-14 672 return ret; >> >> goto exit; > Carl or Wen, are you able to send a fix for this? --===============5184509165632058693== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.htm" PGh0bWw+CiAgPGhlYWQ+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl bnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+ SGkgS2FsbGUsPC9wPgogICAgPHA+SXMgdGhlIGJlbG93IHRoZSBzYW1lIGZpeCB0aGF0IHlvdSBo YXZlIGFscmVhZHkgYXBwbGllZCB0bwogICAgICBhdGguZ2l0PzwvcD4KICAgIDxwPjxhCmhyZWY9 Imh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC9saW51eC13aXJlbGVzcy9wYXRj aC8yMDIyMDQwODAzMDkxMi4zMDg3MjkzLTEteWFuZ3lpbmdsaWFuZ0BodWF3ZWkuY29tLyI+Wy1u ZXh0XQogICAgICAgIGF0aDExazogZml4IG1pc3NpbmcgdW5sb2NrIG9uIGVycm9yIGluIGF0aDEx a193b3dfb3BfcmVzdW1lKCkgLQogICAgICAgIFBhdGNod29yayAoa2VybmVsLm9yZyk8L2E+PC9w PgogICAgPHA+VGhhbmtzLDwvcD4KICAgIDxwPkNhcmw8L3A+CiAgICA8cD48YnI+CiAgICA8L3A+ CiAgICA8ZGl2IGNsYXNzPSJtb3otY2l0ZS1wcmVmaXgiPk9uIDUvNS8yMDIyIDEyOjIzIEFNLCBL YWxsZSBWYWxvIHdyb3RlOjxicj4KICAgIDwvZGl2PgogICAgPGJsb2NrcXVvdGUgdHlwZT0iY2l0 ZSIgY2l0ZT0ibWlkOm81aGg3NjU4ZHhyLmZzZkBxdWljaW5jLmNvbSI+CiAgICAgIDxwcmUgY2xh c3M9Im1vei1xdW90ZS1wcmUiIHdyYXA9IiI+KyBhdGgxMWssIHdlbgoKRGFuIENhcnBlbnRlciA8 YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIzOTZFIiBocmVmPSJtYWlsdG86ZGFuLmNhcnBlbnRl ckBvcmFjbGUuY29tIj4mbHQ7ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tJmd0OzwvYT4gd3JpdGVz OgoKPC9wcmU+CiAgICAgIDxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPgogICAgICAgIDxwcmUgY2xh c3M9Im1vei1xdW90ZS1wcmUiIHdyYXA9IiI+dHJlZTogICA8YSBjbGFzcz0ibW96LXR4dC1saW5r LWZyZWV0ZXh0IiBocmVmPSJodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2Vy bmVsL2dpdC9uZXh0L2xpbnV4LW5leHQuZ2l0Ij5odHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9z Y20vbGludXgva2VybmVsL2dpdC9uZXh0L2xpbnV4LW5leHQuZ2l0PC9hPiBtYXN0ZXIKaGVhZDog ICA0NGEyZjM5ZTYxMWFjMGJjMWYxN2MyODhhNTgzZDdmMmU1Njg0YWE3CmNvbW1pdDogOTBiZjVj OGQwZjdlY2RkZjk2ZmMxY2Q5NDM0YWY0ZTE1N2I1MTk3MCBbNDA4LzgyMzddIGF0aDExazoKcHVy Z2UgcnggcGt0bG9nIHdoZW4gZW50ZXJpbmcgV29XCmNvbmZpZzogaTM4Ni1yYW5kY29uZmlnLW0w MjEtMjAyMjA1MDIKKDxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0dHBz Oi8vZG93bmxvYWQuMDEub3JnLzBkYXktY2kvYXJjaGl2ZS8yMDIyMDUwMy8yMDIyMDUwMzIyMzYu a29mRXF1WDMtbGtwQGludGVsLmNvbS9jb25maWciPmh0dHBzOi8vZG93bmxvYWQuMDEub3JnLzBk YXktY2kvYXJjaGl2ZS8yMDIyMDUwMy8yMDIyMDUwMzIyMzYua29mRXF1WDMtbGtwQGludGVsLmNv bS9jb25maWc8L2E+KQpjb21waWxlcjogZ2NjLTExIChEZWJpYW4gMTEuMi4wLTIwKSAxMS4yLjAK CklmIHlvdSBmaXggdGhlIGlzc3VlLCBraW5kbHkgYWRkIGZvbGxvd2luZyB0YWcgYXMgYXBwcm9w cmlhdGUKUmVwb3J0ZWQtYnk6IGtlcm5lbCB0ZXN0IHJvYm90IDxhIGNsYXNzPSJtb3otdHh0LWxp bmstcmZjMjM5NkUiIGhyZWY9Im1haWx0bzpsa3BAaW50ZWwuY29tIj4mbHQ7bGtwQGludGVsLmNv bSZndDs8L2E+ClJlcG9ydGVkLWJ5OiBEYW4gQ2FycGVudGVyIDxhIGNsYXNzPSJtb3otdHh0LWxp bmstcmZjMjM5NkUiIGhyZWY9Im1haWx0bzpkYW4uY2FycGVudGVyQG9yYWNsZS5jb20iPiZsdDtk YW4uY2FycGVudGVyQG9yYWNsZS5jb20mZ3Q7PC9hPgoKc21hdGNoIHdhcm5pbmdzOgpkcml2ZXJz L25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3dvdy5jOjcxMiBhdGgxMWtfd293X29wX3Jlc3VtZSgp IHdhcm46CmluY29uc2lzdGVudCByZXR1cm5zICcmYW1wO2FyLSZndDtjb25mX211dGV4Jy4KCnZp bSArNzEyIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvd293LmMKCmJhOTE3N2ZjZWYy MWZhIENhcmwgSHVhbmcgMjAyMi0wMy0xNCA2NTMgaW50CmF0aDExa193b3dfb3BfcmVzdW1lKHN0 cnVjdCBpZWVlODAyMTFfaHcgKmh3KQpiYTkxNzdmY2VmMjFmYSBDYXJsIEh1YW5nIDIwMjItMDMt MTQgIDY1NCAgewpiYTkxNzdmY2VmMjFmYSBDYXJsIEh1YW5nIDIwMjItMDMtMTQgIDY1NSAgCXN0 cnVjdCBhdGgxMWsgKmFyID0gaHctJmd0O3ByaXY7CmJhOTE3N2ZjZWYyMWZhIENhcmwgSHVhbmcg MjAyMi0wMy0xNCAgNjU2ICAJaW50IHJldDsKYmE5MTc3ZmNlZjIxZmEgQ2FybCBIdWFuZyAyMDIy LTAzLTE0ICA2NTcgIApiYTkxNzdmY2VmMjFmYSBDYXJsIEh1YW5nIDIwMjItMDMtMTQgIDY1OCAg CW11dGV4X2xvY2soJmFtcDthci0mZ3Q7Y29uZl9tdXRleCk7CmJhOTE3N2ZjZWYyMWZhIENhcmwg SHVhbmcgMjAyMi0wMy0xNCAgNjU5ICAKYmE5MTc3ZmNlZjIxZmEgQ2FybCBIdWFuZyAyMDIyLTAz LTE0ICA2NjAgIAlyZXQgPSBhdGgxMWtfaGlmX3Jlc3VtZShhci0mZ3Q7YWIpOwpiYTkxNzdmY2Vm MjFmYSBDYXJsIEh1YW5nIDIwMjItMDMtMTQgIDY2MSAgCWlmIChyZXQpIHsKYmE5MTc3ZmNlZjIx ZmEgQ2FybCBIdWFuZyAyMDIyLTAzLTE0IDY2MiBhdGgxMWtfd2Fybihhci0mZ3Q7YWIsICJmYWls ZWQKdG8gcmVzdW1lIGhpZjogJWRcbiIsIHJldCk7CmJhOTE3N2ZjZWYyMWZhIENhcmwgSHVhbmcg MjAyMi0wMy0xNCAgNjYzICAJCWdvdG8gZXhpdDsKYmE5MTc3ZmNlZjIxZmEgQ2FybCBIdWFuZyAy MDIyLTAzLTE0ICA2NjQgIAl9CmJhOTE3N2ZjZWYyMWZhIENhcmwgSHVhbmcgMjAyMi0wMy0xNCAg NjY1ICAKYmE5MTc3ZmNlZjIxZmEgQ2FybCBIdWFuZyAyMDIyLTAzLTE0ICA2NjYgIAlhdGgxMWtf aGlmX2NlX2lycV9lbmFibGUoYXItJmd0O2FiKTsKYmE5MTc3ZmNlZjIxZmEgQ2FybCBIdWFuZyAy MDIyLTAzLTE0ICA2NjcgIAlhdGgxMWtfaGlmX2lycV9lbmFibGUoYXItJmd0O2FiKTsKYmE5MTc3 ZmNlZjIxZmEgQ2FybCBIdWFuZyAyMDIyLTAzLTE0ICA2NjggIAo5MGJmNWM4ZDBmN2VjZCBDYXJs IEh1YW5nIDIwMjItMDMtMTQgIDY2OSAgCXJldCA9IGF0aDExa19kcF9yeF9wa3Rsb2dfc3RhcnQo YXItJmd0O2FiKTsKOTBiZjVjOGQwZjdlY2QgQ2FybCBIdWFuZyAyMDIyLTAzLTE0ICA2NzAgIAlp ZiAocmV0KSB7CjkwYmY1YzhkMGY3ZWNkIENhcmwgSHVhbmcgMjAyMi0wMy0xNCA2NzEgYXRoMTFr X3dhcm4oYXItJmd0O2FiLCAiZmFpbGVkCnRvIHN0YXJ0IHJ4IHBrdGxvZyBmcm9tIHdvdzogJWRc biIsIHJldCk7CjkwYmY1YzhkMGY3ZWNkIENhcmwgSHVhbmcgMjAyMi0wMy0xNCAgNjcyICAJCXJl dHVybiByZXQ7Cgpnb3RvIGV4aXQ7CjwvcHJlPgogICAgICA8L2Jsb2NrcXVvdGU+CiAgICAgIDxw cmUgY2xhc3M9Im1vei1xdW90ZS1wcmUiIHdyYXA9IiI+CkNhcmwgb3IgV2VuLCBhcmUgeW91IGFi bGUgdG8gc2VuZCBhIGZpeCBmb3IgdGhpcz8KPC9wcmU+CiAgICA8L2Jsb2NrcXVvdGU+CiAgPC9i b2R5Pgo8L2h0bWw+Cg== --===============5184509165632058693==--