From nobody Thu May 2 11:15:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+53424+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+53424+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1579596271; cv=none; d=zohomail.com; s=zohoarc; b=IWuivFeC9e1/HQdKzubrfHlkO72hKeAJ/4PWlf5sJ4Tr9LvUlwmezc9Pi8dP/KBdtONA6QE9/6c/pnB3lbuqGNRgKVjA8NocA0GTCiorGqmG9ZEA9+nBOWswKn+NLkct236jDXdrqZNHNdeLchRxAFeCyC6n0SCtHze2LeLn/Lg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1579596271; h=Content-Type:Cc:Date:From:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=u5h90SkH5j9Lc6vG3QrGfznh/Q5yMMEynZlVpVcDgZk=; b=QlX/eawkyoF1++b3e7b6OTOhORAyORkx7Hr61JufsIQHr2/hhCBvDw7ifQX/sn9Tz3Sfhf4m7uYcqlZV3iaD1jGsvuhQIMF7TMT2p+zAgHFPltnP84ViUUWz9jwpnF0kX/X2ucrK2c3xizVhEFYt4YkRwWhYgM5KxKAhLGjH19E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+53424+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1579596271168766.1807469339425; Tue, 21 Jan 2020 00:44:31 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id 8dFYYY1788612xxILAEQoPvV; Tue, 21 Jan 2020 00:44:30 -0800 X-Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web11.8754.1579596270038800363 for ; Tue, 21 Jan 2020 00:44:30 -0800 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False X-Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Jan 2020 00:44:29 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,345,1574150400"; d="dat'59?scan'59,208,59";a="278700458" X-Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga001.fm.intel.com with ESMTP; 21 Jan 2020 00:44:29 -0800 X-Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 21 Jan 2020 00:44:29 -0800 X-Received: from shsmsx602.ccr.corp.intel.com (10.109.6.142) by SHSMSX606.ccr.corp.intel.com (10.109.6.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 21 Jan 2020 16:44:27 +0800 X-Received: from shsmsx602.ccr.corp.intel.com ([10.109.6.142]) by SHSMSX602.ccr.corp.intel.com ([10.109.6.142]) with mapi id 15.01.1713.004; Tue, 21 Jan 2020 16:44:27 +0800 From: "Fan, ZhijuX" To: "devel@edk2.groups.io" CC: "Gao, Liming" , "Feng, Bob C" Subject: [edk2-devel] [PATCH V2] BaseTools:ECC fails to detect function header comments issue Thread-Topic: [PATCH V2] BaseTools:ECC fails to detect function header comments issue Thread-Index: AdXQNrj8Xowc6JeLTcC60za2KTfsyQ== Date: Tue, 21 Jan 2020 08:44:27 +0000 Message-ID: <8bcf52e6bf7844deae61f87f45551803@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: <8bcf52e6bf7844deae61f87f45551803@intel.com> dlp-reaction: no-action dlp-version: 11.2.0.6 dlp-product: dlpe-windows x-originating-ip: [10.239.127.36] MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,zhijux.fan@intel.com X-Gm-Message-State: hqabUeaNSoN3dTcdNVRZb7skx1787277AA= Content-Type: multipart/mixed; boundary="_000_8bcf52e6bf7844deae61f87f45551803intelcom_" Content-Language: en-US DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1579596270; bh=vUj+6adOvS6ZoaTsfo1B3d0c6N2lXJiFfO0ncuW0e+0=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=NLgYx5A57DZgofiUnbJCduda9y2y/SaqXgqkBPoLjsxMJQKcmiQxWzS2VbXAqkoL6lV z5stXpF0Q7n3wXXGmvQbgO5h7QhjJaS/F9Lhxwq04GVvQjPOp+kmOLLFF4tHaNF7bNHyw jq1oJHTJYblLvAKP3+6db/Fw0txNpdiplbY= X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: pass (identity @groups.io) --_000_8bcf52e6bf7844deae61f87f45551803intelcom_ Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=3D1523 When the keyword after @param doesn't match the actual function parameter name, ECC doesn't detect such issue The patch is going to fix this issue Cc: Liming Gao Cc: Bob Feng Signed-off-by: Zhiju.Fan --- Optimize the code to Give the CheckParamName function an explicit return value BaseTools/Source/Python/Ecc/c.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/BaseTools/Source/Python/Ecc/c.py b/BaseTools/Source/Python/Ecc= /c.py index a30122a45f..d21ea2b7a3 100644 --- a/BaseTools/Source/Python/Ecc/c.py +++ b/BaseTools/Source/Python/Ecc/c.py @@ -2554,6 +2554,22 @@ def CheckGeneralDoxygenCommentLayout(Str, StartLine,= ErrorMsgList, CommentId=3D -1 ErrorMsgList.append('Line %d : @retval appear before @param ' % St= artLine) PrintErrorMsg(ERROR_DOXYGEN_CHECK_FUNCTION_HEADER, 'in Comment, @r= etval appear before @param ', TableName, CommentId) =20 +def CheckParamName(ParamName, Tag): + ParamList =3D Tag.split() + if len(ParamList) > 1: + ParamList[0] =3D ParamList[0].replace('@param', '') + for Item in ParamList: + if Item.find('[') > 0 and Item.find(']') > 0: + continue + if ParamName !=3D Item.strip(): + return True + else: + return False + else: + return True + else: + return True + def CheckFunctionHeaderConsistentWithDoxygenComment(FuncModifier, FuncHead= er, FuncStartLine, CommentStr, CommentStartLine, ErrorMsgList, CommentId=3D= -1, TableName=3D''): =20 ParamList =3D GetParamList(FuncHeader) @@ -2608,7 +2624,7 @@ def CheckFunctionHeaderConsistentWithDoxygenComment(F= uncModifier, FuncHeader, Fu PrintErrorMsg(ERROR_DOXYGEN_CHECK_FUNCTION= _HEADER, 'in Comment, <%s> does NOT have %s ' % ((TagPartList[0] + ' ' + Ta= gPartList[1]).replace('\n', '').replace('\r', ''), '[' + InOutStr + ']'), T= ableName, CommentId) =20 =20 - if Tag.find(ParamName) =3D=3D -1 and ParamName !=3D 'VOID' and= ParamName !=3D 'void': + if (Tag.find(ParamName) =3D=3D -1 or CheckParamName(ParamName,= Tag)) and ParamName !=3D 'VOID' and ParamName !=3D 'void': ErrorMsgList.append('Line %d : in Comment, <%s> does NOT c= onsistent with parameter name %s ' % (CommentStartLine, (TagPartList[0] + '= ' + TagPartList[1]).replace('\n', '').replace('\r', ''), ParamName)) PrintErrorMsg(ERROR_DOXYGEN_CHECK_FUNCTION_HEADER, 'in Com= ment, <%s> does NOT consistent with parameter name %s ' % ((TagPartList[0] = + ' ' + TagPartList[1]).replace('\n', '').replace('\r', ''), ParamName), Ta= bleName, CommentId) Index +=3D 1 --=20 2.14.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#53424): https://edk2.groups.io/g/devel/message/53424 Mute This Topic: https://groups.io/mt/69952600/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- --_000_8bcf52e6bf7844deae61f87f45551803intelcom_ Content-Disposition: attachment; filename="winmail.dat" Content-Transfer-Encoding: base64 Content-Type: application/ms-tnef; name="winmail.dat" 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 Vk9JRJNhwLe/J3Yu0GQnjF//cOWr8rZPt1QFsWxPbVtyIP+5P7jPud+j/13PXt94Eqm/96rEG+Gg ZSAD8CYwLiEqav+rZ5WvvBOsP61Prl+vb7B1/7zIYp+lz6bfp++o/8b/yA//yR+rn8xfzW/Of8+P vMiyP++zTHl6sUBOcitcwFz2UQGhJQUyLjE05BAuA/B7HcAj4HPkECUMFULmIAAAHwBCAAEAAAAY AAAARgBhAG4ALAAgAFoAaABpAGoAdQBYAAAAHwBlAAEAAAAqAAAAegBoAGkAagB1AHgALgBmAGEA bgBAAGkAbgB0AGUAbAAuAGMAbwBtAAAAAAAfAGQAAQAAAAoAAABTAE0AVABQAAAAAAACAUEAAQAA AGQAAAAAAAAAgSsfpL6jEBmdbgDdAQ9UAgAAAIBGAGEAbgAsACAAWgBoAGkAagB1AFgAAABTAE0A VABQAAAAegBoAGkAagB1AHgALgBmAGEAbgBAAGkAbgB0AGUAbAAuAGMAbwBtAAAAHwACXQEAAAAq AAAAegBoAGkAagB1AHgALgBmAGEAbgBAAGkAbgB0AGUAbAAuAGMAbwBtAAAAAAAfAOVfAQAAADIA AABzAGkAcAA6AHoAaABpAGoAdQB4AC4AZgBhAG4AQABpAG4AdABlAGwALgBjAG8AbQAAAAAAHwAa DAEAAAAYAAAARgBhAG4ALAAgAFoAaABpAGoAdQBYAAAAHwAfDAEAAAAqAAAAegBoAGkAagB1AHgA LgBmAGEAbgBAAGkAbgB0AGUAbAAuAGMAbwBtAAAAAAAfAB4MAQAAAAoAAABTAE0AVABQAAAAAAAC ARkMAQAAAGQAAAAAAAAAgSsfpL6jEBmdbgDdAQ9UAgAAAIBGAGEAbgAsACAAWgBoAGkAagB1AFgA AABTAE0AVABQAAAAegBoAGkAagB1AHgALgBmAGEAbgBAAGkAbgB0AGUAbAAuAGMAbwBtAAAAHwAB XQEAAAAqAAAAegBoAGkAagB1AHgALgBmAGEAbgBAAGkAbgB0AGUAbAAuAGMAbwBtAAAAAAALAEA6 AQAAAB8AGgABAAAAEgAAAEkAUABNAC4ATgBvAHQAZQAAAAAAAwDxPwkEAAALAEA6AQAAAAMA/T/k BAAAAgELMAEAAAAQAAAA59nndAlZL0G+J2vetFMCmQMAFwABAAAAQAA5AIAnE/020NUBQAAIMCWK Mf020NUBCwApAAAAAAAfANk/AQAAAAACAABCAFoAOgBoAHQAdABwAHMAOgAvAC8AYgB1AGcAegBp AGwAbABhAC4AdABpAGEAbgBvAGMAbwByAGUALgBvAHIAZwAvAHMAaABvAHcAXwBiAHUAZwAuAGMA ZwBpAD8AaQBkAD0AMQA1ADIAMwANAAoADQAKAFcAaABlAG4AIAB0AGgAZQAgAGsAZQB5AHcAbwBy AGQAIABhAGYAdABlAHIAIABAAHAAYQByAGEAbQAgAGQAbwBlAHMAbgAnAHQAIABtAGEAdABjAGgA IAB0AGgAZQAgAGEAYwB0AHUAYQBsACAAZgB1AG4AYwB0AGkAbwBuAA0ACgBwAGEAcgBhAG0AZQB0 AGUAcgAgAG4AYQBtAGUALAAgAEUAQwBDACAAZABvAGUAcwBuACcAdAAgAGQAZQB0AGUAYwB0ACAA cwB1AGMAaAAgAGkAcwBzAHUAZQANAAoADQAKAFQAaABlACAAcABhAHQAYwBoACAAaQBzACAAZwBv AGkAbgBnACAAdABvACAAZgBpAHgAIAB0AGgAaQBzACAAaQBzAHMAdQBlAA0ACgANAAoAQwBjADoA IABMAGkAbQBpAG4AZwAgAEcAYQBvACAAPABsAGkAbQBpAG4AZwAuAGcAYQBvAEAAaQBuAHQAZQBs AC4AYwBvAG0APgANAAoAQwBjADoAIAAAAAsAAIAIIAYAAAAAAMAAAAAAAABGAAAAABSFAAABAAAA HwAAgIYDAgAAAAAAwAAAAAAAAEYBAAAAHgAAAGEAYwBjAGUAcAB0AGwAYQBuAGcAdQBhAGcAZQAA AAAAAQAAAAwAAABlAG4ALQBVAFMAAAADAACACCAGAAAAAADAAAAAAAAARgEAAAAyAAAARQB4AGMA aABhAG4AZwBlAEEAcABwAGwAaQBjAGEAdABpAG8AbgBGAGwAYQBnAHMAAAAAACAAAABIAACACCAG AAAAAADAAAAAAAAARgEAAAAiAAAATgBlAHQAdwBvAHIAawBNAGUAcwBzAGEAZwBlAEkAZAAAAAAA ye04KULOsUPUTgjXnk4fyR8AAIATj/JB9IMUQaWE7ttaawv/AQAAABYAAABDAGwAaQBlAG4AdABJ AG4AZgBvAAAAAAABAAAAKgAAAEMAbABpAGUAbgB0AD0ATQBTAEUAeABjAGgAYQBuAGcAZQBSAFAA QwAAAAAAHwD6PwEAAAAYAAAARgBhAG4ALAAgAFoAaABpAGoAdQBYAAAAHwA3AAEAAACQAAAAWwBQ AEEAVABDAEgAIABWADIAXQAgAEIAYQBzAGUAVABvAG8AbABzADoARQBDAEMAIABmAGEAaQBsAHMA IAB0AG8AIABkAGUAdABlAGMAdAAgAGYAdQBuAGMAdABpAG8AbgAgAGgAZQBhAGQAZQByACAAYwBv AG0AbQBlAG4AdABzACAAaQBzAHMAdQBlAAAAHwA9AAEAAAACAAAAAAAAAAMANgAAAAAAAgFxAAEA AAAWAAAAAdXQNrj8Xowc6JeLTcC60za2KTfsyQAAHwBwAAEAAACQAAAAWwBQAEEAVABDAEgAIABW ADIAXQAgAEIAYQBzAGUAVABvAG8AbABzADoARQBDAEMAIABmAGEAaQBsAHMAIAB0AG8AIABkAGUA dABlAGMAdAAgAGYAdQBuAGMAdABpAG8AbgAgAGgAZQBhAGQAZQByACAAYwBvAG0AbQBlAG4AdABz ACAAaQBzAHMAdQBlAAAAHwA1EAEAAABaAAAAPAA4AGIAYwBmADUAMgBlADYAYgBmADcAOAA0ADQA ZABlAGEAZQA2ADEAZgA4ADcAZgA0ADUANQA1ADEAOAAwADMAQABpAG4AdABlAGwALgBjAG8AbQA+ AAAAAAADAN4/n04AAAMAExIAAAAAAgEAgBOP8kH0gxRBpYTu21prC/8BAAAALgAAAEgAZQBhAGQA ZQByAEIAbwBkAHkARgByAGEAZwBtAGUAbgB0AEwAaQBzAHQAAAAAAAEAAAAiAAAAAQAKAAAABAAA AAAAAAAUAAAAAAAAAAAAAAD/////AAAAAAAACwAAgBOP8kH0gxRBpYTu21prC/8BAAAAHAAAAEgA YQBzAFEAdQBvAHQAZQBkAFQAZQB4AHQAAAAAAAAACwAAgBOP8kH0gxRBpYTu21prC/8BAAAAKAAA AEkAcwBRAHUAbwB0AGUAZABUAGUAeAB0AEMAaABhAG4AZwBlAGQAAAAAAAAAQAAHMNSuKP020NUB AgELAAEAAAAQAAAA59nndAlZL0G+J2vetFMCmQMAJgAAAAAACwAGDAAAAAACARAwAQAAAEYAAAAA AAAAJne9OTvsOEmkphU9y6V7QgcA+tDX4K4PpU2Yf25yQ1yv1QAAAEQRXgAAppNoNoh2bEunStPr R5pMZAAACVTAYQAAAAACARMwAQAAABAAAABejBzol4tNwLrTNrYpN+zJAgEUMAEAAAAMAAAA+AAA AC8TtmlCAAAAHwD4PwEAAAAYAAAARgBhAG4ALAAgAFoAaABpAGoAdQBYAAAAHwAiQAEAAAAGAAAA RQBYAAAAAAAfACNAAQAAALgAAAAvAE8APQBJAE4AVABFAEwALwBPAFUAPQBFAFgAQwBIAEEATgBH AEUAIABBAEQATQBJAE4ASQBTAFQAUgBBAFQASQBWAEUAIABHAFIATwBVAFAAIAAoAEYAWQBEAEkA QgBPAEgARgAyADMAUwBQAEQATABUACkALwBDAE4APQBSAEUAQwBJAFAASQBFAE4AVABTAC8AQwBO AD0ARgBBAE4ALAAgAFoASABJAEoAVQBYAEIAOAA1AAAAHwAkQAEAAAAGAAAARQBYAAAAAAAfACVA AQAAALgAAAAvAE8APQBJAE4AVABFAEwALwBPAFUAPQBFAFgAQwBIAEEATgBHAEUAIABBAEQATQBJ AE4ASQBTAFQAUgBBAFQASQBWAEUAIABHAFIATwBVAFAAIAAoAEYAWQBEAEkAQgBPAEgARgAyADMA UwBQAEQATABUACkALwBDAE4APQBSAEUAQwBJAFAASQBFAE4AVABTAC8AQwBOAD0ARgBBAE4ALAAg AFoASABJAEoAVQBYAEIAOAA1AAAAHwAwQAEAAAAYAAAARgBhAG4ALAAgAFoAaABpAGoAdQBYAAAA HwAxQAEAAAAYAAAARgBhAG4ALAAgAFoAaABpAGoAdQBYAAAAHwA4QAEAAAAYAAAARgBhAG4ALAAg AFoAaABpAGoAdQBYAAAAHwA5QAEAAAAYAAAARgBhAG4ALAAgAFoAaABpAGoAdQBYAAAAAwBZQAAA AAADAFpAAAAAAAMACVkBAAAAHwAKXQEAAAAqAAAAegBoAGkAagB1AHgALgBmAGEAbgBAAGkAbgB0 AGUAbAAuAGMAbwBtAAAAAAAfAAtdAQAAACoAAAB6AGgAaQBqAHUAeAAuAGYAYQBuAEAAaQBuAHQA ZQBsAC4AYwBvAG0AAAAAAB8AAIAfpOszqHouQr57eeGpjlSzAQAAADgAAABDAG8AbgB2AGUAcgBz AGEAdABpAG8AbgBJAG4AZABlAHgAVAByAGEAYwBrAGkAbgBnAEUAeAAAAAEAAAAkAQAASQBJAD0A WwBDAEkARAA9AGUAOAAxAGMAOABjADUAZQAtADgAYgA5ADcALQBjADAANABkAC0AYgBhAGQAMwAt ADMANgBiADYAMgA5ADMANwBlAGMAYwA5ADsASQBEAFgASABFAEEARAA9AEQANQBEADAAMwA2AEIA OABGAEMAOwBJAEQAWABDAE8AVQBOAFQAPQAxAF0AOwBQAFMAPQBVAG4AawBuAG8AdwBuADsAVgBl AHIAcwBpAG8AbgA9AFYAZQByAHMAaQBvAG4AIAAxADUALgAxACAAKABCAHUAaQBsAGQAIAAxADcA MQAzAC4AMAApACwAIABTAHQAYQBnAGUAPQBIADQAOwBVAFAAPQAxADAAOwBEAFAAPQAxAEMANQAA AB8AAICGAwIAAAAAAMAAAAAAAABGAQAAABoAAABkAGwAcAAtAHIAZQBhAGMAdABpAG8AbgAAAAAA AQAAABQAAABuAG8ALQBhAGMAdABpAG8AbgAAAB8AAICGAwIAAAAAAMAAAAAAAABGAQAAABgAAABk AGwAcAAtAHYAZQByAHMAaQBvAG4AAAABAAAAEgAAADEAMQAuADIALgAwAC4ANgAAAAAAHwAAgIYD AgAAAAAAwAAAAAAAAEYBAAAAGAAAAGQAbABwAC0AcAByAG8AZAB1AGMAdAAAAAEAAAAaAAAAZABs AHAAZQAtAHcAaQBuAGQAbwB3AHMAAAAAAAIBAIAIIAYAAAAAAMAAAAAAAABGAQAAADYAAABJAG4A VAByAGEAbgBzAGkAdABNAGUAcwBzAGEAZwBlAEMAbwByAHIAZQBsAGEAdABvAHIAAAAAAAEAAAAQ AAAAxUgsqxAeX0mLfg/1kBBUvkAAAIAIIAYAAAAAAMAAAAAAAABGAAAAAL+FAAAwg/77NtDVAQsA AIAIIAYAAAAAAMAAAAAAAABGAAAAAIKFAAAAAAAAAwAAgAggBgAAAAAAwAAAAAAAAEYAAAAA64UA AAkEAAADAA00/T8AAB8AAICGAwIAAAAAAMAAAAAAAABGAQAAACAAAAB4AC0AbQBzAC0AaABhAHMA LQBhAHQAdABhAGMAaAAAAAEAAAACAAAAAAAAAB8AAICGAwIAAAAAAMAAAAAAAABGAQAAACIAAAB4 AC0AbwByAGkAZwBpAG4AYQB0AGkAbgBnAC0AaQBwAAAAAAABAAAAIAAAAFsAMQAwAC4AMgAzADkA LgAxADIANwAuADMANgBdAAAAtQc= --_000_8bcf52e6bf7844deae61f87f45551803intelcom_--