From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: zhijux.fan@intel.com) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by groups.io with SMTP; Wed, 24 Jul 2019 17:44:48 -0700 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jul 2019 17:44:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,304,1559545200"; d="dat'59?scan'59,208,59";a="177821092" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by FMSMGA003.fm.intel.com with ESMTP; 24 Jul 2019 17:44:47 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 24 Jul 2019 17:44:47 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 24 Jul 2019 17:44:47 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 24 Jul 2019 17:44:47 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.80]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.22]) with mapi id 14.03.0439.000; Thu, 25 Jul 2019 08:44:45 +0800 From: "Fan, ZhijuX" To: "devel@edk2.groups.io" CC: "Gao, Liming" , "Feng, Bob C" Subject: [PATCH] BaseTools:Updata the output encoding of the Popen function Thread-Topic: [PATCH] BaseTools:Updata the output encoding of the Popen function Thread-Index: AdVCgiLaw+KBcEG7Rf2i3/HYALzZkg== Date: Thu, 25 Jul 2019 00:44:44 +0000 Message-ID: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.600.7 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: zhijux.fan@intel.com X-Groupsio-MsgNum: 44345 Content-Type: multipart/mixed; boundary="_000_FAD0D7E0AE0FA54D987F6E72435CAFD50AF9EC11SHSMSX101ccrcor_" Content-Language: en-US --_000_FAD0D7E0AE0FA54D987F6E72435CAFD50AF9EC11SHSMSX101ccrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=3D2015 Not all output works in utf-8, so change the encoding to the default This patch is going to fix that issue. Cc: Bob Feng Cc: Liming Gao Signed-off-by: Zhiju.Fan --- BaseTools/Source/Python/Common/Misc.py | 2 +- BaseTools/Source/Python/Common/VpdInfoFile.py | 2 +- BaseTools/Source/Python/Pkcs7Sign/Pkcs7Sign.py | 2 +- .../Source/Python/Rsa2048Sha256Sign/Rsa2048Sha256GenerateKeys.py | 6 ++= +--- BaseTools/Source/Python/Workspace/DscBuildData.py | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/BaseTools/Source/Python/Common/Misc.py b/BaseTools/Source/Pyth= on/Common/Misc.py index 9a63463913..36bd2fe364 100644 --- a/BaseTools/Source/Python/Common/Misc.py +++ b/BaseTools/Source/Python/Common/Misc.py @@ -1092,7 +1092,7 @@ def ParseFieldValue (Value): p.stderr.close() if err: raise BadExpression("DevicePath: %s" % str(err)) - out =3D out.decode(encoding=3D'utf-8', errors=3D'ignore') + out =3D out.decode() Size =3D len(out.split()) out =3D ','.join(out.split()) return '{' + out + '}', Size diff --git a/BaseTools/Source/Python/Common/VpdInfoFile.py b/BaseTools/Sour= ce/Python/Common/VpdInfoFile.py index bc69a9010d..4249b9f899 100644 --- a/BaseTools/Source/Python/Common/VpdInfoFile.py +++ b/BaseTools/Source/Python/Common/VpdInfoFile.py @@ -243,7 +243,7 @@ def CallExtenalBPDGTool(ToolPath, VpdFileName): except Exception as X: EdkLogger.error("BPDG", BuildToolError.COMMAND_FAILURE, ExtraData= =3Dstr(X)) (out, error) =3D PopenObject.communicate() - print(out.decode(encoding=3D'utf-8', errors=3D'ignore')) + print(out.decode()) while PopenObject.returncode is None : PopenObject.wait() =20 diff --git a/BaseTools/Source/Python/Pkcs7Sign/Pkcs7Sign.py b/BaseTools/Sou= rce/Python/Pkcs7Sign/Pkcs7Sign.py index 5630df55df..5d4c3a8599 100644 --- a/BaseTools/Source/Python/Pkcs7Sign/Pkcs7Sign.py +++ b/BaseTools/Source/Python/Pkcs7Sign/Pkcs7Sign.py @@ -116,7 +116,7 @@ if __name__ =3D=3D '__main__': if Process.returncode !=3D 0: print('ERROR: Open SSL command not available. Please verify PATH or s= et OPENSSL_PATH') sys.exit(Process.returncode) - print(Version[0].decode(encoding=3D'utf-8', errors=3D'ignore')) + print(Version[0].decode()) =20 # # Read input file into a buffer and save input filename diff --git a/BaseTools/Source/Python/Rsa2048Sha256Sign/Rsa2048Sha256Generat= eKeys.py b/BaseTools/Source/Python/Rsa2048Sha256Sign/Rsa2048Sha256GenerateK= eys.py index f9aed2bf86..6c9b8c464e 100644 --- a/BaseTools/Source/Python/Rsa2048Sha256Sign/Rsa2048Sha256GenerateKeys.p= y +++ b/BaseTools/Source/Python/Rsa2048Sha256Sign/Rsa2048Sha256GenerateKeys.p= y @@ -78,7 +78,7 @@ if __name__ =3D=3D '__main__': if Process.returncode !=3D 0: print('ERROR: Open SSL command not available. Please verify PATH or s= et OPENSSL_PATH') sys.exit(Process.returncode) - print(Version[0].decode(encoding=3D'utf-8', errors=3D'ignore')) + print(Version[0].decode()) =20 args.PemFileName =3D [] =20 @@ -119,7 +119,7 @@ if __name__ =3D=3D '__main__': # Extract public key from private key into STDOUT # Process =3D subprocess.Popen('%s rsa -in %s -modulus -noout' % (OpenSs= lCommand, Item), stdout=3Dsubprocess.PIPE, stderr=3Dsubprocess.PIPE, shell= =3DTrue) - PublicKeyHexString =3D Process.communicate()[0].decode(encoding=3D'utf= -8', errors=3D'ignore').split(b'=3D')[1].strip() + PublicKeyHexString =3D Process.communicate()[0].decode().split(b'=3D')= [1].strip() if Process.returncode !=3D 0: print('ERROR: Unable to extract public key from private key') sys.exit(Process.returncode) @@ -132,7 +132,7 @@ if __name__ =3D=3D '__main__': # Process =3D subprocess.Popen('%s dgst -sha256 -binary' % (OpenSslComma= nd), stdin=3Dsubprocess.PIPE, stdout=3Dsubprocess.PIPE, stderr=3Dsubprocess= .PIPE, shell=3DTrue) Process.stdin.write (PublicKey) - PublicKeyHash =3D PublicKeyHash + Process.communicate()[0].decode(enco= ding=3D'utf-8', errors=3D'ignore') + PublicKeyHash =3D PublicKeyHash + Process.communicate()[0].decode() if Process.returncode !=3D 0: print('ERROR: Unable to extract SHA 256 hash of public key') sys.exit(Process.returncode) diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/= Source/Python/Workspace/DscBuildData.py index 985f877525..620e48fa7f 100644 --- a/BaseTools/Source/Python/Workspace/DscBuildData.py +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py @@ -1735,7 +1735,7 @@ class DscBuildData(PlatformBuildClassObject): except: EdkLogger.error('Build', COMMAND_FAILURE, 'Can not execute com= mand: %s' % Command) Result =3D Process.communicate() - return Process.returncode, Result[0].decode(encoding=3D'utf-8', er= rors=3D'ignore'), Result[1].decode(encoding=3D'utf-8', errors=3D'ignore') + return Process.returncode, Result[0].decode(), Result[1].decode() =20 @staticmethod def IntToCString(Value, ValueSize): --=20 2.14.1.windows.1 --_000_FAD0D7E0AE0FA54D987F6E72435CAFD50AF9EC11SHSMSX101ccrcor_ Content-Disposition: attachment; filename="winmail.dat" Content-Transfer-Encoding: base64 Content-Type: application/ms-tnef; name="winmail.dat" eJ8+Ilk8AQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEJgAEAIQAAAEZFOUNERjU3 Mjg3MjdCNDg4OUM4MEM2RDRBREQwRkZBAIgHAQ2ABAACAAAAAgACAAEFgAMADgAAAOMHBwAZAAAA LAAsAAQAZgEBIIADAA4AAADjBwcAGQAAACwALAAEAGYBAQiABwAYAAAASVBNLk1pY3Jvc29mdCBN YWlsLk5vdGUAMQgBBIABAEMAAABbUEFUQ0hdIEJhc2VUb29sczpVcGRhdGEgdGhlIG91dHB1dCBl bmNvZGluZyBvZiB0aGUgUG9wZW4gZnVuY3Rpb24ABBgBC4ABACEAAABGRTlDREY1NzI4NzI3QjQ4 ODlDODBDNkQ0QUREMEZGQQCIBwEDkAYAQBMAADQAAAACAX8AAQAAAEgAAAA8RkFEMEQ3RTBBRTBG QTU0RDk4N0Y2RTcyNDM1Q0FGRDUwQUY5RUMxMUBTSFNNU1gxMDEuY2NyLmNvcnAuaW50ZWwuY29t PgALAB8OAQAAAAIBCRABAAAAXQkAAFkJAADsFwAATFpGdT7cFg9hAApmYmlkBAAAY2PAcGcxMjUy AP4DQ/B0ZXh0AfcCpAPjAgAEY2gKwHNldDAg7wdtAoMAUBFNMgqABrQCgJZ9CoAIyDsJYjE5DsC/ CcMWcgoyFnECgBViKgmwcwnwBJBhdAWyDlADYHOibwGAIEV4EcFuGDBdBlJ2BJAXtgIQcgDAdH0I UG4aMRAgBcAFoBtkZJogA1IgECIXslx2CJDkd2sLgGQ1HVME8AdADRdwMApxF/Jia21rBnMBkAAg IEJNX0LgRUdJTn0K/AHxC/ERH7BaOmgCQHBzOsAvL2J1Z3oDEAtgJC50BzBubwWhZS4BBbBnL3No b3dfQSJRLmNnaT8N0D3VAdAxHeBsC4BlCoElFPxObwVAB0ADIAhgIfAmcKwgdwWwH1AgC4AgJnDg Zi04LCAZIBvQGaT8dGgZ4AnwBaAN4BnAHMAObyUFKHIBAWF1bHSpJQxUaAQAIAqwdBHAMycgBCBn bykEHHBpeFcoYRiALAFzClAuJQxDhGM6H7BvYiBGCfCVKSA8BuBiJEAuZi8xtkALgBAgbCRAA3A+ LjmmTAdwKQJHYSfgPCUQOTGiLmcyADAvFMBpZ5kYUGQtGTAngGJ5LsBCWitwanUuRgORPDp6NQJ4 L9AAcDLvCi2XN2AlBR+wYRIAVG8G8AhzL1MIYWNlL1DWeShwAiAvCFBtBGA5cMMY0ATwLnB5IDp/ O0rgfCAyICs3jzifOaSgVnBkSW4CEEYDEB8jYDpfO9887z36UGtjfHM3NAJDyD/fQP9CAy4jR3A9 zVJzYQHQNDi2UxHQDqA2RCNIm0cYRGBlS2V5c0UFQXA2z0GgS/A3b0K/L1cm4gqwJT4RRATwQnUD EGREzxiAIsBFH0ZfIDUswR5w6wQgGZRkJ7A3JyESAAAgwmkCIHMoKylS4gEAcx5wU3QtKSUMDeAB ICB3TCAkYCYBL0zfOS86M2I/Vp9XrzojJQUdsRAwIDkQYTYzNFyAOTEzwUdwMzZiZDIv4F0g7DQg HpFdoDQ2+FZ/Wh+fWyxL8VkPX+9bLEBAVhDrHpAWgCxTACtlRWUBAQGcIFAR4j+QMGBkVgdAyQpQ IChnQyk6TFZQCuxwLh9gBIFyJEAJABIA/ihU5lAHBpAooGnAaB9QAq8YcAQAGeBiMGQZcHAJcMME EFOBKCJEZR1gYxDHZqAocC7AJXMibxAnwOh0cihpsSlU5l7AUAXpJmEgPSZSLgWCAQBvsOkoxT0n J2MnJ7BpsQWw7nNyoDQRI0EnVOZh8HCv93G1al80AHoZ4HFQHnBuMPdxck6QJRB0dkB2X3VEcxB4 Jy5qLFF4D2hqCXB0wwhwA6AnXHsnQaB1M/th8HzwfXMRd2JVb17fYx8fPy1iH4CfPztbm2JjNiVc YDkk0DBkR3A0MgA0OWI5Zjg5Of9dz39/g4+En2GfiV+Kb4U5u2UChxAzZYKQBGY1QyYhCxlwECBu B0BCUERHfYzCKIzCbsInsD8hP5JO/mEHgGgMEDCNYAUxGXGU4RdTgSYQBCBYa89FZGv4TG9nGDBp 0HNDbkCR8i4iJ7BPI4zCRXNSLkMAT01NQU5EX0bAQUlMVVJFJ7CRgesYcE9yPW+CWHtserJzJSIp cUFQb3AJ8E9izmoFkHGQMJFtdQMAHlD/ECB2R3CDbcA2UXqzcb9yz+9z1XQ7n697bHcrcB5wnUvf fISgYiwCJeAYUCCWD51a/ncLcHtBTFZ+b4i/Qz9ETl+Mb6zPRFxbm0lAM4bAZhw1NbLQR3CzADRj M/hhODWHj4ifr6+wv4u/z7V/to+xTWUDMTZlg7yD82UBa2FfX5HAB4C9oHFA33oRvaAAwAuAvaAn p+lrYV5QA2CNYAQQpqohcVAwA6fro6QnRVJST1LNLsBPnXEGAFNMG9E5sO8AcBxgIxAmAXYLcAtg AmDvI2Co0R5wuPEgGjEGkE/Q8FBBVEgmUAXAEgHC8OhQRU7DUV/F8nQnUAP+c0shEDB7Mb/vZ/Bw GKOkxlYEkG4CWzBdoD+hT9+iX8qfy6d7aGvYI9EpB/B/xTAcYAuAJpJSEichLKFh/biwdQEgG7HD 0kigGjDS2f+9wqqftQ9H/0kPSh9LJLjP39gf2S/aP0syW5tmXGAJgJQyYodgNkdwNmOHMPQ4Y1yg NBngtA/XD9yv/92/3s/f2biP5D/lT+Zf3539ZQI3J6Blke3DvU++X79v/8B/wY/Cn8OvxL/Fz8bf x+//8S/KD89vzC/NP85P/D/Qb4tocwrAZ0swUGVtk1bZcUFbXaodvDQ5vKQFkn/uf++PaHXScJqT neAroHXz9eAOUCBrSxAcdKOh9ZAHECAJ09OTU1RET1W+VAgba9r6FXFBLYBibcD/8TSdU/OgbyBt AOpA1pAnMdUPMS05wGQqUHUP8SMQF31hfSBvYCj0MlNzbNc5kvUBJ7BJG6BtU+Fpgfd9YZsgDilJ 9/ASo2/BEy/HJ8AogCKgPVRyZ+FwGtZQCYNLAUgc4FNvkCkCf50x+iWeG/y//c9zmXr1YjYnGwAZ wDEZ8G+BaXD/dkd0sxc/GE8ZX3YxHK8du89rFvof8i/zHyBVkcD14f8skrJgCR8KLvis+W/6f2TW /jNldC4jBk8HXww/DU8OX3ZkAxDW4C0VwOrC1pBi7w+wAvAqkBEfZBKUD7AUr/8SvxPPFN8V7jH6 aXIPsKmgf/bQCsEsIB7mFm8fFJXAaP+dIj97dLAgLxmfGq9zXx4//z/fQO9B/3X/JE8lXyZvJ3/x KIVTSEFRIDTRUoBG8f5v1oAo+CqvK78sz9Zf6P91Y4FX93BrewAosGMgRP9YsJiTmuLbX1X/Vw9Y EoV7xjmzsIdgNzc16/DhgcXrgGXqgGZhN1Sg4l//VS9Zf1qP5+9fT2BfYW+8JPg3MzW8o2a0vDFp 8JXAvzQQV2pSwPXARBD3cG2Yk/5DZ9KdpJPclHhqj5bfl+HuJ5iTRFGZjyeRQJWg9UL/smCd0BDg 1OD0xfQQD+A1cu82NpYe0pAy4Gx1YkhPnq77fElS32U5oHNkQr9Dz/7Z/3fXIwF4n3mvRR9173b/ eA73ex9KGpYaQDRQmvApMAPQXY2xZJYakQKOoHSSMEN/H5QAgJFQO8CTAYdyurB6h5PIXrGWFTIu MTSJoNOpoLIxb3fbQDGWFZYVDH19iuCLsAAAAB8AQgABAAAAGAAAAEYAYQBuACwAIABaAGgAaQBq AHUAWAAAAB8AZQABAAAAKgAAAHoAaABpAGoAdQB4AC4AZgBhAG4AQABpAG4AdABlAGwALgBjAG8A bQAAAAAAHwBkAAEAAAAKAAAAUwBNAFQAUAAAAAAAAgFBAAEAAABkAAAAAAAAAIErH6S+oxAZnW4A 3QEPVAIAAACARgBhAG4ALAAgAFoAaABpAGoAdQBYAAAAUwBNAFQAUAAAAHoAaABpAGoAdQB4AC4A ZgBhAG4AQABpAG4AdABlAGwALgBjAG8AbQAAAB8AAl0BAAAAKgAAAHoAaABpAGoAdQB4AC4AZgBh AG4AQABpAG4AdABlAGwALgBjAG8AbQAAAAAAHwDlXwEAAAAyAAAAcwBpAHAAOgB6AGgAaQBqAHUA eAAuAGYAYQBuAEAAaQBuAHQAZQBsAC4AYwBvAG0AAAAAAB8AGgwBAAAAGAAAAEYAYQBuACwAIABa AGgAaQBqAHUAWAAAAB8AHwwBAAAAKgAAAHoAaABpAGoAdQB4AC4AZgBhAG4AQABpAG4AdABlAGwA LgBjAG8AbQAAAAAAHwAeDAEAAAAKAAAAUwBNAFQAUAAAAAAAAgEZDAEAAABkAAAAAAAAAIErH6S+ oxAZnW4A3QEPVAIAAACARgBhAG4ALAAgAFoAaABpAGoAdQBYAAAAUwBNAFQAUAAAAHoAaABpAGoA dQB4AC4AZgBhAG4AQABpAG4AdABlAGwALgBjAG8AbQAAAB8AAV0BAAAAKgAAAHoAaABpAGoAdQB4 AC4AZgBhAG4AQABpAG4AdABlAGwALgBjAG8AbQAAAAAAHwD4PwEAAAAYAAAARgBhAG4ALAAgAFoA aABpAGoAdQBYAAAAHwAjQAEAAAAqAAAAegBoAGkAagB1AHgALgBmAGEAbgBAAGkAbgB0AGUAbAAu AGMAbwBtAAAAAAAfACJAAQAAAAoAAABTAE0AVABQAAAAAAACAfk/AQAAAGQAAAAAAAAAgSsfpL6j EBmdbgDdAQ9UAgAAAIBGAGEAbgAsACAAWgBoAGkAagB1AFgAAABTAE0AVABQAAAAegBoAGkAagB1 AHgALgBmAGEAbgBAAGkAbgB0AGUAbAAuAGMAbwBtAAAAHwAJXQEAAAAqAAAAegBoAGkAagB1AHgA LgBmAGEAbgBAAGkAbgB0AGUAbAAuAGMAbwBtAAAAAAALAEA6AQAAAB8AGgABAAAAEgAAAEkAUABN AC4ATgBvAHQAZQAAAAAAAwDxPwkEAAALAEA6AQAAAAMA/T/kBAAAAgELMAEAAAAQAAAA/pzfVyhy e0iJyAxtSt0P+gMAFwABAAAAQAA5AADmtiaCQtUBQAAIMJukPCeCQtUBHwAAgIYDAgAAAAAAwAAA AAAAAEYBAAAAHgAAAGEAYwBjAGUAcAB0AGwAYQBuAGcAdQBhAGcAZQAAAAAAAQAAAAwAAABlAG4A LQBVAFMAAAAfADcAAQAAAIYAAABbAFAAQQBUAEMASABdACAAQgBhAHMAZQBUAG8AbwBsAHMAOgBV AHAAZABhAHQAYQAgAHQAaABlACAAbwB1AHQAcAB1AHQAIABlAG4AYwBvAGQAaQBuAGcAIABvAGYA IAB0AGgAZQAgAFAAbwBwAGUAbgAgAGYAdQBuAGMAdABpAG8AbgAAAAAAHwA9AAEAAAACAAAAAAAA AAMANgAAAAAAAgFxAAEAAAAWAAAAAdVCgiLaw+KBcEG7Rf2i3/HYALzZkgAAHwBwAAEAAACGAAAA WwBQAEEAVABDAEgAXQAgAEIAYQBzAGUAVABvAG8AbABzADoAVQBwAGQAYQB0AGEAIAB0AGgAZQAg AG8AdQB0AHAAdQB0ACAAZQBuAGMAbwBkAGkAbgBnACAAbwBmACAAdABoAGUAIABQAG8AcABlAG4A IABmAHUAbgBjAHQAaQBvAG4AAAAAAB8ANRABAAAAkAAAADwARgBBAEQAMABEADcARQAwAEEARQAw AEYAQQA1ADQARAA5ADgANwBGADYARQA3ADIANAAzADUAQwBBAEYARAA1ADAAQQBGADkARQBDADEA MQBAAFMASABTAE0AUwBYADEAMAAxAC4AYwBjAHIALgBjAG8AcgBwAC4AaQBuAHQAZQBsAC4AYwBv AG0APgAAAAMA3j+fTgAAQAAHMDlDOieCQtUBAgELAAEAAAAQAAAA/pzfVyhye0iJyAxtSt0P+gMA JgAAAAAAAgFHAAEAAAAxAAAAYz1VUzthPU1DSTtwPUludGVsO2w9U0hTTVNYMTAxLTE5MDcyNTAw NDQ0NFotMTU5AAAAAAIBEDABAAAARgAAAAAAAAAmd705O+w4SaSmFT3LpXtCBwD60Nfgrg+lTZh/ bnJDXK/VAAAARBFeAACmk2g2iHZsS6dK0+tHmkxkAAAJVI/nAAAAAB8A+j8BAAAAGAAAAEYAYQBu ACwAIABaAGgAaQBqAHUAWAAAAAMACVkBAAAAQAAAgAggBgAAAAAAwAAAAAAAAEYAAAAAv4UAADDm DiaCQtUBCwAAgAggBgAAAAAAwAAAAAAAAEYAAAAAgoUAAAAAAAADAACACCAGAAAAAADAAAAAAAAA RgAAAADrhQAACQQAAB8AAICGAwIAAAAAAMAAAAAAAABGAQAAABgAAABkAGwAcAAtAHAAcgBvAGQA dQBjAHQAAAABAAAAGgAAAGQAbABwAGUALQB3AGkAbgBkAG8AdwBzAAAAAAAfAACAhgMCAAAAAADA AAAAAAAARgEAAAAYAAAAZABsAHAALQB2AGUAcgBzAGkAbwBuAAAAAQAAABYAAAAxADEALgAwAC4A NgAwADAALgA3AAAAAAAfAACAhgMCAAAAAADAAAAAAAAARgEAAAAaAAAAZABsAHAALQByAGUAYQBj AHQAaQBvAG4AAAAAAAEAAAAUAAAAbgBvAC0AYQBjAHQAaQBvAG4AAAADAA00/T8AAB8AAICGAwIA AAAAAMAAAAAAAABGAQAAACAAAAB4AC0AbQBzAC0AaABhAHMALQBhAHQAdABhAGMAaAAAAAEAAAAC AAAAAAAAAB8AAICGAwIAAAAAAMAAAAAAAABGAQAAACIAAAB4AC0AbwByAGkAZwBpAG4AYQB0AGkA bgBnAC0AaQBwAAAAAAABAAAAIAAAAFsAMQAwAC4AMgAzADkALgAxADIANwAuADQAMABdAAAA00c= --_000_FAD0D7E0AE0FA54D987F6E72435CAFD50AF9EC11SHSMSX101ccrcor_--