From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web09.3092.1665380299694576709 for ; Sun, 09 Oct 2022 22:38:20 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=JE8qAI3H; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: yi1.li@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1665380299; x=1696916299; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=I5xNUpoEBd1qTvdgXNS9/5ZiXpkEfeemCdxBlUNKdkc=; b=JE8qAI3H3QAq0qGmBBLPOKdezNRExDT4gxJwWFDn29paYgS0XSAFaMRu byehTah9eOqeSNz30aRXU4o82daYxqPSJLPfBadOAXs3kCEAVXE4embG/ JoX8rOjMcLsioD3K4zKv2f4YloTEsmmvC5K0jKacGP9z0R2o8FAl/qeMx xIfqOV8/hdSJXsUm1sfCZN8eExgXaQXL/k44fSxZh5YY3H7+4rDiN0N3i VnJAyYKRFB5wKsPWEoJrZ1ezxvxzWKpcwyoKc7opbDZXC74+nguNl3UBq JKDuFsDzB6pLIdeMO3OuBuakbkoRo/Snz6snQwgc8GqQ/6+8MCvHsxcsn w==; X-IronPort-AV: E=McAfee;i="6500,9779,10495"; a="287385232" X-IronPort-AV: E=Sophos;i="5.95,172,1661842800"; d="scan'208,223";a="287385232" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2022 22:38:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10495"; a="688662993" X-IronPort-AV: E=Sophos;i="5.95,172,1661842800"; d="scan'208,223";a="688662993" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga008.fm.intel.com with ESMTP; 09 Oct 2022 22:38:18 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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.2375.31; Sun, 9 Oct 2022 22:38:17 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Sun, 9 Oct 2022 22:38:17 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.103) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Sun, 9 Oct 2022 22:38:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=THEK05JMzRcmg3EA1KRi7x9d3KJBl01U3765x/PLZAAeOeAqxoA07wNeRA4+LSKRQWjwG+fbhSvZdKSw+K4T1DsvcAxYCGdeSzvKrHJOzcRN3m5NQbErZ+np5dggkFEirnavA71TtzgZrcxizmBUDpu4Uh5iBs8yyiOVWVxGtMxjDoMed+DWvv02i23z987KRAIfPQeHpe4E+pLGlU38SdDuFPZKNRoxAAr5oLCmzuqLHzhmVW7OHscGBcMAanFWo8YY+a/5pPhdNphzSHotYjpjnswsSeVoqSAeKX4JE+06yQoMpUA3PlPNBsEleSE8Rnh24d18O3WgZoMRvpSVuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=g909F0XLJy9/06CJdZrNv8XuUGX+L8g+1p3WvtMIC2s=; b=kxIcdwoCZZZNK1vgGQkeJ1L1GVHfy9c9bAo3bkq6lY5fQ7PO9SYEMrSXJrXD+/lqXzatfMQlLG+YxTE6vU1OC+lqQKhltWvrZAg3iTCrE4XquFYtjobr1K/v6mKLMdzhX0GniCoi+QLCt9afPEyEKap+Y+NuXRLIbGSSlFhOCHG3sw39+0LnmXPJXnjA/bb5RtR+blVnGxQ+RgoXVv5Rf5zpuxFLyrxnPbfOa9TOhap6x7mla972+e9IvAw1ajcboa47G+a1ESggOfa+y1JektqAiysmAUP3+4hrWxzcfni34uUnda9WIwLE2LKy3vqaWU9m4PTsE+JOjU9R6raqnA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SJ1PR11MB6227.namprd11.prod.outlook.com (2603:10b6:a03:45a::10) by MN2PR11MB4758.namprd11.prod.outlook.com (2603:10b6:208:260::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Mon, 10 Oct 2022 05:38:14 +0000 Received: from SJ1PR11MB6227.namprd11.prod.outlook.com ([fe80::bd4b:a704:7db6:70d4]) by SJ1PR11MB6227.namprd11.prod.outlook.com ([fe80::bd4b:a704:7db6:70d4%8]) with mapi id 15.20.5654.035; Mon, 10 Oct 2022 05:38:14 +0000 From: "Li, Yi" To: "Yao, Jiewen" , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Lu, Xiaoyu1" , "Jiang, Guomin" , "Kinney, Michael D" , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH V3 0/3] CryptoPkg: Extend Tls library Thread-Topic: [edk2-devel] [PATCH V3 0/3] CryptoPkg: Extend Tls library Thread-Index: AQHY3FGsakommRTPrkyM3/dM9ypB9a4G6+xAgAAhShCAAA5F4A== Date: Mon, 10 Oct 2022 05:38:14 +0000 Message-ID: References: <171C9530E5033AAA.32766@groups.io> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ1PR11MB6227:EE_|MN2PR11MB4758:EE_ x-ms-office365-filtering-correlation-id: 93f2ab75-ad16-4232-97b6-08daaa81a07f x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Yrsn9uOftZPhrjOOXxczBq6TjdBHADZ7MYVyEpN/ppze8I0nX9cFZDLo0mDD6And0l1jRoGuG/tNl/6udXNyJo81vWwKBRObMhNJBV02LQUFAOwgu+CTOp4fLCjyzdTpJg4e1ZJvemJ4i8btjjUQ9R0fYdAqbUf59Be2tXy2k0VZSPd33vSnp7LNdaIDF9q2vsuWAEunm4VW4+7U73JO9vCMHPzWbZHakNmuyXF8sxKGMA/d81p6O4vpL/xlslUMGIE05N7MIV/maW6YCDcZzsnc0WJxyBOWvJYJNBQ4hJrRIyYtDKXgpRh+EKRpXu8EraN18Md/y0ABhpV+XIGqZhZM89IriayUIsRC7fFlT8j02Cdis93knffIMyDZKCVd9iYpKvvKVi6Te5O5UzlJwSoczFd/aF4TgPrkl48PnbcY5ehCkVchlhYutaV7wtsVpOftO8TlGrzc08L6IWFoYEiSKubtBf4ohmMLxRq3LaWkH96Vvz4RsX4fKJAsuVdwlzHSODaeGjv9qED3UkCf50yRFGluZP9cbDxwGXMlTzZkb8jVro+c9v54MN/3aFDikuYjUonllJTuIUIdRn73Rj3IMHxWatZjQdBD0tNrqZOEvk/iqigmqWzCMMHZWfTY0qEq6CDnr33ELuUwKJIBqQ66aJ9meCdt6BY23MMDza+w8Gujr0pcVp4LIFYRpp1H08S9hq7YRK0zfmt10zkG5Ni1K/qMD9EDBMiJenZmD30rDd5vkeRtGm+J2PWTIh3NXZ7Nb82Fk2qPbzPnkvfXtGU7+dRB4m1C+4NIYHZQZh4VC/K+V+P5rNGOX6ly8I5WLdJhsCuuXocYha74L2oKGA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ1PR11MB6227.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(39860400002)(136003)(376002)(396003)(346002)(451199015)(99936003)(38070700005)(110136005)(38100700002)(316002)(19627235002)(122000001)(8936002)(82960400001)(54906003)(5660300002)(86362001)(2906002)(66556008)(66446008)(66476007)(4326008)(66946007)(64756008)(76116006)(52536014)(186003)(41300700001)(8676002)(9686003)(7696005)(6506007)(53546011)(26005)(71200400001)(966005)(83380400001)(478600001)(66899015)(55016003)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?P+EcDD3GTa0MURRFxGDQjNW2uvJHxFP+HiDnj7SvbAH7Y21LMbzehfcZO0MA?= =?us-ascii?Q?AJDgEG30qm6fejkIZam0qB7pG02JrgjoOVmIUuma5b4nUxTQtpSisBYOBEPm?= =?us-ascii?Q?nbeJ9tJy+1VygJ3L7Ob5HGgQdlMXOaiRjZT2qV+R1lsU3vuC6yn9/fubwlBi?= =?us-ascii?Q?3BCmgS6j7tEZzdUIVaAnJvGCnQYv1qw9XpNhrRKBjHl+G2755gpxAfOynI5R?= =?us-ascii?Q?sCui/0rdwa1/iI0t5MlYaoczm6UII5kY1jhkSLyhf8YOfRC7tOheSNwjYflf?= =?us-ascii?Q?pKfthcdXO4o5vTvj/9EBVP14R19Il/StdzBvHsmF8FNaGDwMkTsa3zCIW5Y/?= =?us-ascii?Q?xxhwxpyhjX0sDUvowiFZlhJzeDHPy3yFxAFUCUgdW4qIdTVcLq8Rmz3Mmiq3?= =?us-ascii?Q?XH2RW+ohTQKHq3jXB9/tDGTmd4qbksu+F+XUQITZrnV+vneD4CfMixWBfyk0?= =?us-ascii?Q?VEOkuvezapyfhjWBRfSqLm+HnRVPZl8vneJGmDHsD/pyKXD041yVcHw/mO3q?= =?us-ascii?Q?U69fQkHZ9pIyXP+B7DR8X32fD7XXkeaEgjqXfh3IUOo9euGFWrPJTXdBPmA9?= =?us-ascii?Q?JT/Kslov02nB2vDUjIQNB6IfLoJ36b9idX5sqCKn8l7q3ulV8Ff5kHxGFOIC?= =?us-ascii?Q?RxR1qf/KwiymV8W9+UiyM0uAsAW139hS/6iYKl4+EXhkcuIg17S2VLmoz+AE?= =?us-ascii?Q?5q7lulRKGQtm9GQJs98WG8ymmrA+xPteGIbb8b8zXyLvavXESilziY1xfZnS?= =?us-ascii?Q?F+hEcX9fCuelwg09zsZeVImSTAp17EgKUYiUDaa4vL4Qsz3jG0BhNLSGuvfv?= =?us-ascii?Q?WNMRXORKFIwTJbJNEAOWnhfQqlgl3L9o+W6aWM82gOV/bSf5nXPffx9+3ZgP?= =?us-ascii?Q?Qa00pwO5OZ3HzHjWizZbaTh9RSZoPyamfbB7YzsD97uxlPk8LWePjLaVHelH?= =?us-ascii?Q?c0923m3u+IiJ49yDRUalWaUvJ8nyFaTDMlg1UV/RkM+h6mz6DeU5ruM9efgT?= =?us-ascii?Q?4qOYM8vbniau0UVGjuth72DW+6+vIn8MStoIQZaWvx+MmeKbqRzfb118NmIh?= =?us-ascii?Q?NHzXPatgKD89kW18LqkRzdGt4CpyG4lj/nBlMi/f1SVvji2p28pRMApYvn8Z?= =?us-ascii?Q?oZkIcm0joWBRjOdeUlZHB0EefWB7HxUzd3Juet3UhF8eL4E4bZBWk/4vey1+?= =?us-ascii?Q?klfmiByTzflaX8ktLxmFzJJfTLy+YszJuhxwnZwd5Zg+wBfRzx+gU6YdYWP6?= =?us-ascii?Q?k3rU8jmQiCLPE0eXKNgwTiH+zucQGjFdPAx5mUB3z06lYG2g5Zkscvi5PBCO?= =?us-ascii?Q?LmOs0gZVUTZsbVAzrvENd1gLHOgmxe4JJTwNOnD3Y0OXcyIbjaZlAb4wqI8P?= =?us-ascii?Q?luzN7OSrBDfxHfUvFdX3PpwT8JWU00gH2vby9rbqMFlAsh+8AxLNi4yZTs1Y?= =?us-ascii?Q?mk+vMqXuZu90sdP48Emm+nPKLgz26AQkLl1Mj86TkGf/lGVBx4FV9gChLC9L?= =?us-ascii?Q?UAi0Dvnf8eeHGoVKjrN8racToNiBSDVU24JI02C59dri1PLINDUPGDhHpEAq?= =?us-ascii?Q?xNdRZN4hfXzRZxLQzDg=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ1PR11MB6227.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 93f2ab75-ad16-4232-97b6-08daaa81a07f X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Oct 2022 05:38:14.6409 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ImOaDF1VLnJYuJGXQLH4ALgksv4QhEgF+pKUqOheDDcvV3XGZ2/ZO7J86TclWuCY5g0MQ1QvAQez2Gzts6ZeDA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4758 Return-Path: yi1.li@intel.com X-OriginatorOrg: intel.com X-Groupsio-MsgNum: 94874 Content-Language: en-US Content-Type: multipart/mixed; boundary="_004_SJ1PR11MB6227C779EE562C34095BFCC6C5209SJ1PR11MB6227namp_" --_004_SJ1PR11MB6227C779EE562C34095BFCC6C5209SJ1PR11MB6227namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Jiewen, Yes it is, based on latest commit 3c9e2f239a38590b4e3a8c1ec2304227f2af0103. I applied them to EDKII master branch successfully, not sure why. Attachments are the successful patch files for reference, But they are same= as the patches in the mail. Let me know if there are still conflicts. Thanks, Yi -----Original Message----- From: Yao, Jiewen =20 Sent: Monday, October 10, 2022 12:46 PM To: devel@edk2.groups.io; Yao, Jiewen ; Li, Yi1 Cc: Wang, Jian J ; Lu, Xiaoyu1 ; Jiang, Guomin ; Kinney, Michael D ; Gao, Liming Subject: RE: [edk2-devel] [PATCH V3 0/3] CryptoPkg: Extend Tls library Hi Yi Is this patch based on latest EDKII? I failed to apply the patch 2/3. The 1/3 and 3/3 are good. > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Yao,=20 > Jiewen > Sent: Monday, October 10, 2022 10:47 AM > To: Li, Yi1 ; devel@edk2.groups.io > Cc: Wang, Jian J ; Lu, Xiaoyu1=20 > ; Jiang, Guomin ;=20 > Kinney, Michael D ; Gao, Liming=20 > > Subject: Re: [edk2-devel] [PATCH V3 0/3] CryptoPkg: Extend Tls library >=20 > Thanks for the update. > For all patches, reviewed-by: Jiewen Yao >=20 > I think we need MdePkg owner to give R-B or A-B for TLS definition in=20 > MdePkg. Mike or Liming? >=20 > Thank you > Yao Jiewen >=20 >=20 > > -----Original Message----- > > From: Li, Yi1 > > Sent: Monday, October 10, 2022 10:40 AM > > To: devel@edk2.groups.io > > Cc: Li, Yi1 ; Yao, Jiewen ;=20 > > Wang, Jian J ; Lu, Xiaoyu1=20 > > ; Jiang, Guomin ;=20 > > Kinney, Michael D ; Gao, Liming=20 > > > > Subject: [PATCH V3 0/3] CryptoPkg: Extend Tls library > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3892 > > > > Review PR: https://github.com/tianocore/edk2/pull/3400 > > This patch sequence is used to extend Tls library, which are wrapped=20 > > over OpenSSL. The implementation provides library functions for EFI=20 > > DXE dirver and Protocol. > > > > All APIs passed unit test and fuzzing test, detail as: > > 1. Unit test: > > New Tls APIs tested on Intel platform as part of WIFI WPA3 feature. > > 2. Fuzzing test: > > Various Fuzz Testing are employed across the all introduced APIs,=20 > > and the test is used AFL (2.52b) and Libfuzzer (clang+llvm-11.0.0)=20 > > as the fuzzer, based on HBFA. > > Fuzzing Pass Rate is 100%; > > The Code Coverage of new APIs is 91%. > > All test case show in: > > https://github.com/liyi77/edk2- > > staging/tree/HBFA/HBFA/UefiHostFuzzTestCasePkg/TestCase/CryptoPkg > > > > V2 change: > > Move the newly added APIs to the end of struct PCD. > > V3 change: > > Corrected tls specification reference and tls cipher suite names. > > > > Tested-by: Yi Li > > Cc: Jiewen Yao > > Cc: Jian J Wang > > Cc: Xiaoyu Lu > > Cc: Guomin Jiang > > Cc: Michael D Kinney > > Cc: Liming Gao > > > > Signed-off-by: Yi Li > > > > Yi Li (3): > > MdePkg: Add Tls configuration related define > > CryptoPkg: Extend Tls function library > > CryptoPkg: Add new Tls APIs to DXE and protocol > > > > CryptoPkg/Driver/Crypto.c | 155 +++++++- > > CryptoPkg/Include/Library/TlsLib.h | 126 +++++- > > .../Pcd/PcdCryptoServiceFamilyEnable.h | 5 + > > .../BaseCryptLibOnProtocolPpi/CryptLib.c | 146 ++++++- > > CryptoPkg/Library/TlsLib/InternalTlsLib.h | 4 + > > CryptoPkg/Library/TlsLib/TlsConfig.c | 366 +++++++++++++++++- > > CryptoPkg/Library/TlsLib/TlsProcess.c | 32 ++ > > CryptoPkg/Library/TlsLibNull/TlsConfigNull.c | 123 +++++- =20 > > CryptoPkg/Library/TlsLibNull/TlsProcessNull.c | 23 ++ > > CryptoPkg/Private/Protocol/Crypto.h | 136 ++++++- > > MdePkg/Include/IndustryStandard/Tls1.h | 112 ++++-- > > 11 files changed, 1177 insertions(+), 51 deletions(-) > > > > -- > > 2.31.1.windows.1 >=20 >=20 >=20 >=20 >=20 --_004_SJ1PR11MB6227C779EE562C34095BFCC6C5209SJ1PR11MB6227namp_ Content-Type: application/octet-stream; name="0001-MdePkg-Add-Tls-configuration-related-define.patch" Content-Description: 0001-MdePkg-Add-Tls-configuration-related-define.patch Content-Disposition: attachment; filename="0001-MdePkg-Add-Tls-configuration-related-define.patch"; size=7096; creation-date="Mon, 10 Oct 2022 05:37:00 GMT"; modification-date="Mon, 10 Oct 2022 05:38:11 GMT" Content-Transfer-Encoding: base64 RnJvbSA5NjVmYjg0YThhZmJhNzAzOGQwOWM4Njg1OTA5YmYzYzMxZDhjYTM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpNZXNzYWdlLUlkOiA8OTY1ZmI4NGE4YWZiYTcwMzhkMDljODY4NTkwOWJm M2MzMWQ4Y2EzOS4xNjY1MzY5MjYyLmdpdC55aTEubGlAaW50ZWwuY29tPgpJbi1SZXBseS1Ubzog PGNvdmVyLjE2NjUzNjkyNjIuZ2l0LnlpMS5saUBpbnRlbC5jb20+ClJlZmVyZW5jZXM6IDxjb3Zl ci4xNjY1MzY5MjYyLmdpdC55aTEubGlAaW50ZWwuY29tPgpGcm9tOiBZaSBMaSA8eWkxLmxpQGlu dGVsLmNvbT4KRGF0ZTogU2F0LCA3IE1heSAyMDIyIDE1OjM3OjMyICswODAwClN1YmplY3Q6IFtQ QVRDSCBWMyAxLzNdIE1kZVBrZzogQWRkIFRscyBjb25maWd1cmF0aW9uIHJlbGF0ZWQgZGVmaW5l CgpSRUY6aHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zODky CgpDb25zdW1lZCBieSBUbHNTZXRFY0N1cnZlIGFuZCBUbHNTZXRTaWduYXR1cmVBbGdvTGlzdC4K CkNjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4KQ2M6IE1pY2hhZWwgRCBLaW5u ZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPgpDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5n QGJ5b3NvZnQuY29tLmNuPgpTaWduZWQtb2ZmLWJ5OiBZaSBMaSA8eWkxLmxpQGludGVsLmNvbT4K LS0tCiBNZGVQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1RsczEuaCB8IDExMiArKysrKysr KysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwgMzcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFy ZC9UbHMxLmggYi9NZGVQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1RsczEuaAppbmRleCBj ZjY3NDI4YjExLi5mMWJhMGFmN2RjIDEwMDY0NAotLS0gYS9NZGVQa2cvSW5jbHVkZS9JbmR1c3Ry eVN0YW5kYXJkL1RsczEuaAorKysgYi9NZGVQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1Rs czEuaApAQCAtMTMsNDQgKzEzLDQ4IEBACiAjcHJhZ21hIHBhY2soMSkNCiANCiAvLy8NCi0vLy8g VExTIENpcGhlciBTdWl0ZSwgcmVmZXJzIHRvIEEuNSBvZiByZmMtMjI0NiwgcmZjLTQzNDYgYW5k IHJmYy01MjQ2Lg0KKy8vLyBUTFMgQ2lwaGVyIFN1aXRlLCByZWZlcnMgdG8gQS41IG9mIHJmYy0y MjQ2LCByZmMtNDM0NiwgcmZjLTUyNDYsIHJmYy01Mjg4IGFuZCByZmMtNTI4OS4NCiAvLy8NCi0j ZGVmaW5lIFRMU19SU0FfV0lUSF9OVUxMX01ENSAgICAgICAgICAgICAgICB7MHgwMCwgMHgwMX0N Ci0jZGVmaW5lIFRMU19SU0FfV0lUSF9OVUxMX1NIQSAgICAgICAgICAgICAgICB7MHgwMCwgMHgw Mn0NCi0jZGVmaW5lIFRMU19SU0FfV0lUSF9SQzRfMTI4X01ENSAgICAgICAgICAgICB7MHgwMCwg MHgwNH0NCi0jZGVmaW5lIFRMU19SU0FfV0lUSF9SQzRfMTI4X1NIQSAgICAgICAgICAgICB7MHgw MCwgMHgwNX0NCi0jZGVmaW5lIFRMU19SU0FfV0lUSF9JREVBX0NCQ19TSEEgICAgICAgICAgICB7 MHgwMCwgMHgwN30NCi0jZGVmaW5lIFRMU19SU0FfV0lUSF9ERVNfQ0JDX1NIQSAgICAgICAgICAg ICB7MHgwMCwgMHgwOX0NCi0jZGVmaW5lIFRMU19SU0FfV0lUSF8zREVTX0VERV9DQkNfU0hBICAg ICAgICB7MHgwMCwgMHgwQX0NCi0jZGVmaW5lIFRMU19ESF9EU1NfV0lUSF9ERVNfQ0JDX1NIQSAg ICAgICAgICB7MHgwMCwgMHgwQ30NCi0jZGVmaW5lIFRMU19ESF9EU1NfV0lUSF8zREVTX0VERV9D QkNfU0hBICAgICB7MHgwMCwgMHgwRH0NCi0jZGVmaW5lIFRMU19ESF9SU0FfV0lUSF9ERVNfQ0JD X1NIQSAgICAgICAgICB7MHgwMCwgMHgwRn0NCi0jZGVmaW5lIFRMU19ESF9SU0FfV0lUSF8zREVT X0VERV9DQkNfU0hBICAgICB7MHgwMCwgMHgxMH0NCi0jZGVmaW5lIFRMU19ESEVfRFNTX1dJVEhf REVTX0NCQ19TSEEgICAgICAgICB7MHgwMCwgMHgxMn0NCi0jZGVmaW5lIFRMU19ESEVfRFNTX1dJ VEhfM0RFU19FREVfQ0JDX1NIQSAgICB7MHgwMCwgMHgxM30NCi0jZGVmaW5lIFRMU19ESEVfUlNB X1dJVEhfREVTX0NCQ19TSEEgICAgICAgICB7MHgwMCwgMHgxNX0NCi0jZGVmaW5lIFRMU19ESEVf UlNBX1dJVEhfM0RFU19FREVfQ0JDX1NIQSAgICB7MHgwMCwgMHgxNn0NCi0jZGVmaW5lIFRMU19S U0FfV0lUSF9BRVNfMTI4X0NCQ19TSEEgICAgICAgICB7MHgwMCwgMHgyRn0NCi0jZGVmaW5lIFRM U19ESF9EU1NfV0lUSF9BRVNfMTI4X0NCQ19TSEEgICAgICB7MHgwMCwgMHgzMH0NCi0jZGVmaW5l IFRMU19ESF9SU0FfV0lUSF9BRVNfMTI4X0NCQ19TSEEgICAgICB7MHgwMCwgMHgzMX0NCi0jZGVm aW5lIFRMU19ESEVfRFNTX1dJVEhfQUVTXzEyOF9DQkNfU0hBICAgICB7MHgwMCwgMHgzMn0NCi0j ZGVmaW5lIFRMU19ESEVfUlNBX1dJVEhfQUVTXzEyOF9DQkNfU0hBICAgICB7MHgwMCwgMHgzM30N Ci0jZGVmaW5lIFRMU19SU0FfV0lUSF9BRVNfMjU2X0NCQ19TSEEgICAgICAgICB7MHgwMCwgMHgz NX0NCi0jZGVmaW5lIFRMU19ESF9EU1NfV0lUSF9BRVNfMjU2X0NCQ19TSEEgICAgICB7MHgwMCwg MHgzNn0NCi0jZGVmaW5lIFRMU19ESF9SU0FfV0lUSF9BRVNfMjU2X0NCQ19TSEEgICAgICB7MHgw MCwgMHgzN30NCi0jZGVmaW5lIFRMU19ESEVfRFNTX1dJVEhfQUVTXzI1Nl9DQkNfU0hBICAgICB7 MHgwMCwgMHgzOH0NCi0jZGVmaW5lIFRMU19ESEVfUlNBX1dJVEhfQUVTXzI1Nl9DQkNfU0hBICAg ICB7MHgwMCwgMHgzOX0NCi0jZGVmaW5lIFRMU19SU0FfV0lUSF9OVUxMX1NIQTI1NiAgICAgICAg ICAgICB7MHgwMCwgMHgzQn0NCi0jZGVmaW5lIFRMU19SU0FfV0lUSF9BRVNfMTI4X0NCQ19TSEEy NTYgICAgICB7MHgwMCwgMHgzQ30NCi0jZGVmaW5lIFRMU19SU0FfV0lUSF9BRVNfMjU2X0NCQ19T SEEyNTYgICAgICB7MHgwMCwgMHgzRH0NCi0jZGVmaW5lIFRMU19ESF9EU1NfV0lUSF9BRVNfMTI4 X0NCQ19TSEEyNTYgICB7MHgwMCwgMHgzRX0NCi0jZGVmaW5lIFRMU19ESF9SU0FfV0lUSF9BRVNf MTI4X0NCQ19TSEEyNTYgICB7MHgwMCwgMHgzRn0NCi0jZGVmaW5lIFRMU19ESEVfRFNTX1dJVEhf QUVTXzEyOF9DQkNfU0hBMjU2ICB7MHgwMCwgMHg0MH0NCi0jZGVmaW5lIFRMU19ESEVfUlNBX1dJ VEhfQUVTXzEyOF9DQkNfU0hBMjU2ICB7MHgwMCwgMHg2N30NCi0jZGVmaW5lIFRMU19ESF9EU1Nf V0lUSF9BRVNfMjU2X0NCQ19TSEEyNTYgICB7MHgwMCwgMHg2OH0NCi0jZGVmaW5lIFRMU19ESF9S U0FfV0lUSF9BRVNfMjU2X0NCQ19TSEEyNTYgICB7MHgwMCwgMHg2OX0NCi0jZGVmaW5lIFRMU19E SEVfRFNTX1dJVEhfQUVTXzI1Nl9DQkNfU0hBMjU2ICB7MHgwMCwgMHg2QX0NCi0jZGVmaW5lIFRM U19ESEVfUlNBX1dJVEhfQUVTXzI1Nl9DQkNfU0hBMjU2ICB7MHgwMCwgMHg2Qn0NCisjZGVmaW5l IFRMU19SU0FfV0lUSF9OVUxMX01ENSAgICAgICAgICAgICAgICAgICAgezB4MDAsIDB4MDF9DQor I2RlZmluZSBUTFNfUlNBX1dJVEhfTlVMTF9TSEEgICAgICAgICAgICAgICAgICAgIHsweDAwLCAw eDAyfQ0KKyNkZWZpbmUgVExTX1JTQV9XSVRIX1JDNF8xMjhfTUQ1ICAgICAgICAgICAgICAgICB7 MHgwMCwgMHgwNH0NCisjZGVmaW5lIFRMU19SU0FfV0lUSF9SQzRfMTI4X1NIQSAgICAgICAgICAg ICAgICAgezB4MDAsIDB4MDV9DQorI2RlZmluZSBUTFNfUlNBX1dJVEhfSURFQV9DQkNfU0hBICAg ICAgICAgICAgICAgIHsweDAwLCAweDA3fQ0KKyNkZWZpbmUgVExTX1JTQV9XSVRIX0RFU19DQkNf U0hBICAgICAgICAgICAgICAgICB7MHgwMCwgMHgwOX0NCisjZGVmaW5lIFRMU19SU0FfV0lUSF8z REVTX0VERV9DQkNfU0hBICAgICAgICAgICAgezB4MDAsIDB4MEF9DQorI2RlZmluZSBUTFNfREhf RFNTX1dJVEhfREVTX0NCQ19TSEEgICAgICAgICAgICAgIHsweDAwLCAweDBDfQ0KKyNkZWZpbmUg VExTX0RIX0RTU19XSVRIXzNERVNfRURFX0NCQ19TSEEgICAgICAgICB7MHgwMCwgMHgwRH0NCisj ZGVmaW5lIFRMU19ESF9SU0FfV0lUSF9ERVNfQ0JDX1NIQSAgICAgICAgICAgICAgezB4MDAsIDB4 MEZ9DQorI2RlZmluZSBUTFNfREhfUlNBX1dJVEhfM0RFU19FREVfQ0JDX1NIQSAgICAgICAgIHsw eDAwLCAweDEwfQ0KKyNkZWZpbmUgVExTX0RIRV9EU1NfV0lUSF9ERVNfQ0JDX1NIQSAgICAgICAg ICAgICB7MHgwMCwgMHgxMn0NCisjZGVmaW5lIFRMU19ESEVfRFNTX1dJVEhfM0RFU19FREVfQ0JD X1NIQSAgICAgICAgezB4MDAsIDB4MTN9DQorI2RlZmluZSBUTFNfREhFX1JTQV9XSVRIX0RFU19D QkNfU0hBICAgICAgICAgICAgIHsweDAwLCAweDE1fQ0KKyNkZWZpbmUgVExTX0RIRV9SU0FfV0lU SF8zREVTX0VERV9DQkNfU0hBICAgICAgICB7MHgwMCwgMHgxNn0NCisjZGVmaW5lIFRMU19SU0Ff V0lUSF9BRVNfMTI4X0NCQ19TSEEgICAgICAgICAgICAgezB4MDAsIDB4MkZ9DQorI2RlZmluZSBU TFNfREhfRFNTX1dJVEhfQUVTXzEyOF9DQkNfU0hBICAgICAgICAgIHsweDAwLCAweDMwfQ0KKyNk ZWZpbmUgVExTX0RIX1JTQV9XSVRIX0FFU18xMjhfQ0JDX1NIQSAgICAgICAgICB7MHgwMCwgMHgz MX0NCisjZGVmaW5lIFRMU19ESEVfRFNTX1dJVEhfQUVTXzEyOF9DQkNfU0hBICAgICAgICAgezB4 MDAsIDB4MzJ9DQorI2RlZmluZSBUTFNfREhFX1JTQV9XSVRIX0FFU18xMjhfQ0JDX1NIQSAgICAg ICAgIHsweDAwLCAweDMzfQ0KKyNkZWZpbmUgVExTX1JTQV9XSVRIX0FFU18yNTZfQ0JDX1NIQSAg ICAgICAgICAgICB7MHgwMCwgMHgzNX0NCisjZGVmaW5lIFRMU19ESF9EU1NfV0lUSF9BRVNfMjU2 X0NCQ19TSEEgICAgICAgICAgezB4MDAsIDB4MzZ9DQorI2RlZmluZSBUTFNfREhfUlNBX1dJVEhf QUVTXzI1Nl9DQkNfU0hBICAgICAgICAgIHsweDAwLCAweDM3fQ0KKyNkZWZpbmUgVExTX0RIRV9E U1NfV0lUSF9BRVNfMjU2X0NCQ19TSEEgICAgICAgICB7MHgwMCwgMHgzOH0NCisjZGVmaW5lIFRM U19ESEVfUlNBX1dJVEhfQUVTXzI1Nl9DQkNfU0hBICAgICAgICAgezB4MDAsIDB4Mzl9DQorI2Rl ZmluZSBUTFNfUlNBX1dJVEhfTlVMTF9TSEEyNTYgICAgICAgICAgICAgICAgIHsweDAwLCAweDNC fQ0KKyNkZWZpbmUgVExTX1JTQV9XSVRIX0FFU18xMjhfQ0JDX1NIQTI1NiAgICAgICAgICB7MHgw MCwgMHgzQ30NCisjZGVmaW5lIFRMU19SU0FfV0lUSF9BRVNfMjU2X0NCQ19TSEEyNTYgICAgICAg ICAgezB4MDAsIDB4M0R9DQorI2RlZmluZSBUTFNfREhfRFNTX1dJVEhfQUVTXzEyOF9DQkNfU0hB MjU2ICAgICAgIHsweDAwLCAweDNFfQ0KKyNkZWZpbmUgVExTX0RIX1JTQV9XSVRIX0FFU18xMjhf Q0JDX1NIQTI1NiAgICAgICB7MHgwMCwgMHgzRn0NCisjZGVmaW5lIFRMU19ESEVfRFNTX1dJVEhf QUVTXzEyOF9DQkNfU0hBMjU2ICAgICAgezB4MDAsIDB4NDB9DQorI2RlZmluZSBUTFNfREhFX1JT QV9XSVRIX0FFU18xMjhfQ0JDX1NIQTI1NiAgICAgIHsweDAwLCAweDY3fQ0KKyNkZWZpbmUgVExT X0RIX0RTU19XSVRIX0FFU18yNTZfQ0JDX1NIQTI1NiAgICAgICB7MHgwMCwgMHg2OH0NCisjZGVm aW5lIFRMU19ESF9SU0FfV0lUSF9BRVNfMjU2X0NCQ19TSEEyNTYgICAgICAgezB4MDAsIDB4Njl9 DQorI2RlZmluZSBUTFNfREhFX0RTU19XSVRIX0FFU18yNTZfQ0JDX1NIQTI1NiAgICAgIHsweDAw LCAweDZBfQ0KKyNkZWZpbmUgVExTX0RIRV9SU0FfV0lUSF9BRVNfMjU2X0NCQ19TSEEyNTYgICAg ICB7MHgwMCwgMHg2Qn0NCisjZGVmaW5lIFRMU19ESEVfUlNBX1dJVEhfQUVTXzI1Nl9HQ01fU0hB Mzg0ICAgICAgezB4MDAsIDB4OUZ9DQorI2RlZmluZSBUTFNfRUNESEVfRUNEU0FfV0lUSF9BRVNf MTI4X0dDTV9TSEEyNTYgIHsweEMwLCAweDJCfQ0KKyNkZWZpbmUgVExTX0VDREhFX0VDRFNBX1dJ VEhfQUVTXzI1Nl9HQ01fU0hBMzg0ICB7MHhDMCwgMHgyQ30NCisjZGVmaW5lIFRMU19FQ0RIRV9S U0FfV0lUSF9BRVNfMjU2X0dDTV9TSEEzODQgICAgezB4QzAsIDB4MzB9DQogDQogLy8vDQogLy8v IFRMUyBWZXJzaW9uLCByZWZlcnMgdG8gQS4xIG9mIHJmYy0yMjQ2LCByZmMtNDM0NiBhbmQgcmZj LTUyNDYuDQpAQCAtOTUsNiArOTksNDAgQEAgdHlwZWRlZiBzdHJ1Y3QgewogLy8NCiAjZGVmaW5l IFRMU19DSVBIRVJURVhUX1JFQ09SRF9NQVhfUEFZTE9BRF9MRU5HVEggIDE4NDMyDQogDQorLy8v DQorLy8vIFRMUyBIYXNoIGFsZ29yaXRobSwgcmVmZXJzIHRvIHNlY3Rpb24gNy40LjEuNC4xLiBv ZiByZmMtNTI0Ni4NCisvLy8NCit0eXBlZGVmIGVudW0gew0KKyAgVGxzSGFzaEFsZ29Ob25lICAg PSAwLA0KKyAgVGxzSGFzaEFsZ29NZDUgICAgPSAxLA0KKyAgVGxzSGFzaEFsZ29TaGExICAgPSAy LA0KKyAgVGxzSGFzaEFsZ29TaGEyMjQgPSAzLA0KKyAgVGxzSGFzaEFsZ29TaGEyNTYgPSA0LA0K KyAgVGxzSGFzaEFsZ29TaGEzODQgPSA1LA0KKyAgVGxzSGFzaEFsZ29TaGE1MTIgPSA2LA0KK30g VExTX0hBU0hfQUxHTzsNCisNCisvLy8NCisvLy8gVExTIFNpZ25hdHVyZSBhbGdvcml0aG0sIHJl ZmVycyB0byBzZWN0aW9uIDcuNC4xLjQuMS4gb2YgcmZjLTUyNDYuDQorLy8vDQordHlwZWRlZiBl bnVtIHsNCisgIFRsc1NpZ25hdHVyZUFsZ29Bbm9ueW1vdXMgPSAwLA0KKyAgVGxzU2lnbmF0dXJl QWxnb1JzYSAgICAgICA9IDEsDQorICBUbHNTaWduYXR1cmVBbGdvRHNhICAgICAgID0gMiwNCisg IFRsc1NpZ25hdHVyZUFsZ29FY2RzYSAgICAgPSAzLA0KK30gVExTX1NJR05BVFVSRV9BTEdPOw0K Kw0KKy8vLw0KKy8vLyBUTFMgU3VwcG9ydGVkIEVsbGlwdGljIEN1cnZlcyBFeHRlbnNpb25zLCBy ZWZlcnMgdG8gc2VjdGlvbiA1LjEuMSBvZiByZmMtODQyMi4NCisvLy8NCit0eXBlZGVmIGVudW0g ew0KKyAgVGxzRWNOYW1lZEN1cnZlU2VjcDI1NnIxID0gMjMsDQorICBUbHNFY05hbWVkQ3VydmVT ZWNwMzg0cjEgPSAyNCwNCisgIFRsc0VjTmFtZWRDdXJ2ZVNlY3A1MjFyMSA9IDI1LA0KKyAgVGxz RWNOYW1lZEN1cnZlWDI1NTE5ICAgID0gMjksDQorICBUbHNFY05hbWVkQ3VydmVYNDQ4ICAgICAg PSAzMCwNCit9IFRMU19FQ19OQU1FRF9DVVJWRTsNCisNCiAjcHJhZ21hIHBhY2soKQ0KIA0KICNl bmRpZg0KLS0gCjIuMzEuMS53aW5kb3dzLjEKCg== --_004_SJ1PR11MB6227C779EE562C34095BFCC6C5209SJ1PR11MB6227namp_ Content-Type: application/octet-stream; name="0002-CryptoPkg-Extend-Tls-function-library.patch" Content-Description: 0002-CryptoPkg-Extend-Tls-function-library.patch Content-Disposition: attachment; filename="0002-CryptoPkg-Extend-Tls-function-library.patch"; size=27874; creation-date="Mon, 10 Oct 2022 05:37:00 GMT"; modification-date="Mon, 10 Oct 2022 05:38:12 GMT" Content-Transfer-Encoding: base64 RnJvbSBlODcxYWE0Y2U4ZjUwNjMyODM2ZDA4Y2RiMmEyOTJjOGE2NmUyYmY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpNZXNzYWdlLUlkOiA8ZTg3MWFhNGNlOGY1MDYzMjgzNmQwOGNkYjJhMjky YzhhNjZlMmJmNy4xNjY1MzY5MjYyLmdpdC55aTEubGlAaW50ZWwuY29tPgpJbi1SZXBseS1Ubzog PGNvdmVyLjE2NjUzNjkyNjIuZ2l0LnlpMS5saUBpbnRlbC5jb20+ClJlZmVyZW5jZXM6IDxjb3Zl ci4xNjY1MzY5MjYyLmdpdC55aTEubGlAaW50ZWwuY29tPgpGcm9tOiBZaSBMaSA8eWkxLmxpQGlu dGVsLmNvbT4KRGF0ZTogU3VuLCAyNSBTZXAgMjAyMiAxNzoxNDowNiArMDgwMApTdWJqZWN0OiBb UEFUQ0ggVjMgMi8zXSBDcnlwdG9Qa2c6IEV4dGVuZCBUbHMgZnVuY3Rpb24gbGlicmFyeQoKUkVG OiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM4OTIKCjEu IFRsc1NldFNpZ25hdHVyZUFsZ29MaXN0KCk6IENvbmZpZ3VyZSB0aGUgbGlzdCBvZiBUTFMgc2ln bmF0dXJlIGFsZ29yaXRobXMKdGhhdCBzaG91bGQgYmUgdXNlZCBhcyBwYXJ0IG9mIHRoZSBUTFMg c2Vzc2lvbiBlc3RhYmxpc2htZW50LgpUaGlzIGlzIG5lZWRlZCBmb3Igc29tZSBXTEFOIFN1cHBs aWNhbnQgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50IGZsb3dzCnRoYXQgYWxsb3cgb25seSBzcGVj aWZpYyBUTFMgc2lnbmF0dXJlIGFsZ29yaXRobXMgdG8gYmUgdXNlZCwgZS5nLiwKQXV0aGVudGlj YXRlIGFuZCBLZXkgTWFuYWdtZW5ldCAoQUtNKSBzdWl0ZXMgdGhhdCBhcmUgU1VJVEUtQiBjb21w bGlhbnQuCgoyLiBUbHNTZXRFY0N1cnZlKCk6IENvbmZpZ3VyZSB0aGUgRWxsaXB0aWMgQ3VydmUg dGhhdCBzaG91bGQgYmUgdXNlZCBmb3IKVExTIGZsb3dzIHRoZSB1c2UgY2lwaGVyIHN1aXRlIHdp dGggRUMsCmUuZy4sIFRMU19FQ0RIRV9SU0FfV0lUSF9BRVNfMjU2X0dDTV9TSEEzODQuClRoaXMg aXMgbmVlZGVkIGZvciBzb21lIFdMQU4gU3VwcGxpY2FudCBjb25uZWN0aW9uIGVzdGFibGlzaG1l bnQgZmxvd3MKdGhhdCBhbGxvdyBvbmx5IHNwZWNpZmljIFRMUyBzaWduYXR1cmUgYWxnb3JpdGht cyB0byBiZSB1c2VkLAplLmcuLCBBdXRoZW50aWNhdGUgYW5kIEtleSBNYW5hZ21lbmV0IChBS00p IHN1aXRlcyB0aGF0IGFyZSBTVUlURS1CIGNvbXBsaWFudC4KCjMuIFRsc1NodXRkb3duKCk6ClNo dXRkb3duIHRoZSBUTFMgY29ubmVjdGlvbiB3aXRob3V0IHJlbGVhc2luZyB0aGUgcmVzb3VyY2Vz LAptZWFuaW5nIGEgbmV3IGNvbm5lY3Rpb24gY2FuIGJlIHN0YXJ0ZWQgd2l0aG91dCBjYWxsaW5n IFRsc05ldygpIGFuZAp3aXRob3V0IHNldHRpbmcgY2VydGlmaWNhdGVzIGV0Yy4KCjQuIFRsc0dl dEV4cG9ydEtleSgpOiBEZXJpdmUga2V5aW5nIG1hdGVyaWFsIGZyb20gYSBUTFMgY29ubmVjdGlv biB1c2luZyB0aGUKbWVjaGFuaXNtIGRlc2NyaWJlZCBpbiBSRkMgNTcwNSBhbmQgZXhwb3J0IHRo ZSBrZXkgbWF0ZXJpYWwgKG5lZWRlZApieSBFQVAgbWV0aG9kcyBzdWNoIGFzIEVBUC1UVExTIGFu ZCBFQVAtUEVBUCkuCgo1LiBUbHNTZXRIb3N0UHJpdmF0ZUtleUV4KCk6IFRoaXMgZnVuY3Rpb24g YWRkcyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkKKFBFTS1lbmNvZGVkIG9yIFBLQ1MjOCBvciBERVIt ZW5jb2RlZCBwcml2YXRlIGtleSkgaW50byB0aGUgc3BlY2lmaWVkClRMUyBvYmplY3QgZm9yIFRM UyBuZWdvdGlhdGlvbi4gVGhlcmUgaXMgYWxyZWFkeSBhIHNpbWlsYXIgZnVuY3Rpb24KVGxzU2V0 SG9zdFByaXZhdGVLZXkoKSwgdGhlIG5ldyBFeCBmdW5jdGlvbiBpbnRyb2R1Y2VzIGEgbmV3IHBh cmFtZXRlcgpQYXNzd29yZCwgc2V0IFBhc3N3b3JkIHRvIE5VTEwgd2hlbiB1c2VsZXNzLgoKQ2M6 IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPgpDYzogSmlhbiBKIFdhbmcgPGppYW4u ai53YW5nQGludGVsLmNvbT4KQ2M6IFhpYW95dSBMdSA8eGlhb3l1MS5sdUBpbnRlbC5jb20+CkNj OiBHdW9taW4gSmlhbmcgPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFlp IExpIDx5aTEubGlAaW50ZWwuY29tPgotLS0KIENyeXB0b1BrZy9JbmNsdWRlL0xpYnJhcnkvVGxz TGliLmggICAgICAgICAgICB8IDEyNiArKysrKy0KIENyeXB0b1BrZy9MaWJyYXJ5L1Rsc0xpYi9J bnRlcm5hbFRsc0xpYi5oICAgICB8ICAgNCArCiBDcnlwdG9Qa2cvTGlicmFyeS9UbHNMaWIvVGxz Q29uZmlnLmMgICAgICAgICAgfCAzNjYgKysrKysrKysrKysrKysrKystCiBDcnlwdG9Qa2cvTGli cmFyeS9UbHNMaWIvVGxzUHJvY2Vzcy5jICAgICAgICAgfCAgMzIgKysKIENyeXB0b1BrZy9MaWJy YXJ5L1Rsc0xpYk51bGwvVGxzQ29uZmlnTnVsbC5jICB8IDEyMyArKysrKy0KIENyeXB0b1BrZy9M aWJyYXJ5L1Rsc0xpYk51bGwvVGxzUHJvY2Vzc051bGwuYyB8ICAyMyArKwogNiBmaWxlcyBjaGFu Z2VkLCA2NjcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Dcnlw dG9Qa2cvSW5jbHVkZS9MaWJyYXJ5L1Rsc0xpYi5oIGIvQ3J5cHRvUGtnL0luY2x1ZGUvTGlicmFy eS9UbHNMaWIuaAppbmRleCAzYjc1ZmRlMGFhLi5kMzdjNWZjYzM1IDEwMDY0NAotLS0gYS9Dcnlw dG9Qa2cvSW5jbHVkZS9MaWJyYXJ5L1Rsc0xpYi5oCisrKyBiL0NyeXB0b1BrZy9JbmNsdWRlL0xp YnJhcnkvVGxzTGliLmgKQEAgLTI5NCw2ICsyOTQsMjUgQEAgVGxzV3JpdGUgKAogICBJTiAgICAg VUlOVE4gIEJ1ZmZlclNpemUNCiAgICk7DQogDQorLyoqDQorICBTaHV0ZG93biBhIFRMUyBjb25u ZWN0aW9uLg0KKw0KKyAgU2h1dGRvd24gdGhlIFRMUyBjb25uZWN0aW9uIHdpdGhvdXQgcmVsZWFz aW5nIHRoZSByZXNvdXJjZXMsIG1lYW5pbmcgYSBuZXcNCisgIGNvbm5lY3Rpb24gY2FuIGJlIHN0 YXJ0ZWQgd2l0aG91dCBjYWxsaW5nIFRsc05ldygpIGFuZCB3aXRob3V0IHNldHRpbmcNCisgIGNl cnRpZmljYXRlcyBldGMuDQorDQorICBAcGFyYW1baW5dICAgICAgIFRscyAgICAgICAgICAgIFBv aW50ZXIgdG8gdGhlIFRMUyBvYmplY3QgdG8gc2h1dGRvd24uDQorDQorICBAcmV0dmFsIEVGSV9T VUNDRVNTICAgICAgICAgICAgIFRoZSBUTFMgaXMgc2h1dGRvd24gc3VjY2Vzc2Z1bGx5Lg0KKyAg QHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICBUbHMgaXMgTlVMTC4NCisgIEByZXR2YWwg RUZJX1BST1RPQ09MX0VSUk9SICAgICAgU29tZSBvdGhlciBlcnJvciBvY2N1cnJlZC4NCisqKi8N CitFRklfU1RBVFVTDQorRUZJQVBJDQorVGxzU2h1dGRvd24gKA0KKyAgSU4gICAgIFZPSUQgICpU bHMNCisgICk7DQorDQogLyoqDQogICBTZXQgYSBuZXcgVExTL1NTTCBtZXRob2QgZm9yIGEgcGFy dGljdWxhciBUTFMgb2JqZWN0Lg0KIA0KQEAgLTQ5MiwxMSArNTExLDM4IEBAIFRsc1NldEhvc3RQ dWJsaWNDZXJ0ICgKIC8qKg0KICAgQWRkcyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkgdG8gdGhlIHNw ZWNpZmllZCBUTFMgb2JqZWN0Lg0KIA0KLSAgVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsb2NhbCBw cml2YXRlIGtleSAoUEVNLWVuY29kZWQgUlNBIG9yIFBLQ1MjOCBwcml2YXRlDQorICBUaGlzIGZ1 bmN0aW9uIGFkZHMgdGhlIGxvY2FsIHByaXZhdGUga2V5IChERVItZW5jb2RlZCBvciBQRU0tZW5j b2RlZCBvciBQS0NTIzggcHJpdmF0ZQ0KICAga2V5KSBpbnRvIHRoZSBzcGVjaWZpZWQgVExTIG9i amVjdCBmb3IgVExTIG5lZ290aWF0aW9uLg0KIA0KICAgQHBhcmFtW2luXSAgVGxzICAgICAgICAg UG9pbnRlciB0byB0aGUgVExTIG9iamVjdC4NCi0gIEBwYXJhbVtpbl0gIERhdGEgICAgICAgIFBv aW50ZXIgdG8gdGhlIGRhdGEgYnVmZmVyIG9mIGEgUEVNLWVuY29kZWQgUlNBDQorICBAcGFyYW1b aW5dICBEYXRhICAgICAgICBQb2ludGVyIHRvIHRoZSBkYXRhIGJ1ZmZlciBvZiBhIERFUi1lbmNv ZGVkIG9yIFBFTS1lbmNvZGVkDQorICAgICAgICAgICAgICAgICAgICAgICAgICBvciBQS0NTIzgg cHJpdmF0ZSBrZXkuDQorICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICBUaGUgc2l6ZSBvZiBkYXRh IGJ1ZmZlciBpbiBieXRlcy4NCisgIEBwYXJhbVtpbl0gIFBhc3N3b3JkICAgIFBvaW50ZXIgdG8g TlVMTC10ZXJtaW5hdGVkIHByaXZhdGUga2V5IHBhc3N3b3JkLCBzZXQgaXQgdG8gTlVMTA0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHJpdmF0ZSBrZXkgbm90IGVuY3J5cHRlZC4NCisN CisgIEByZXR2YWwgIEVGSV9TVUNDRVNTICAgICBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZC4NCisg IEByZXR2YWwgIEVGSV9VTlNVUFBPUlRFRCBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQu DQorICBAcmV0dmFsICBFRklfQUJPUlRFRCAgICAgSW52YWxpZCBwcml2YXRlIGtleSBkYXRhLg0K Kw0KKyoqLw0KK0VGSV9TVEFUVVMNCitFRklBUEkNCitUbHNTZXRIb3N0UHJpdmF0ZUtleUV4ICgN CisgIElOICAgICBWT0lEICAgKlRscywNCisgIElOICAgICBWT0lEICAgKkRhdGEsDQorICBJTiAg ICAgVUlOVE4gIERhdGFTaXplLA0KKyAgSU4gICAgIFZPSUQgICAqUGFzc3dvcmQgIE9QVElPTkFM DQorICApOw0KKw0KKy8qKg0KKyAgQWRkcyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkgdG8gdGhlIHNw ZWNpZmllZCBUTFMgb2JqZWN0Lg0KKw0KKyAgVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsb2NhbCBw cml2YXRlIGtleSAoREVSLWVuY29kZWQgb3IgUEVNLWVuY29kZWQgb3IgUEtDUyM4IHByaXZhdGUN CisgIGtleSkgaW50byB0aGUgc3BlY2lmaWVkIFRMUyBvYmplY3QgZm9yIFRMUyBuZWdvdGlhdGlv bi4NCisNCisgIEBwYXJhbVtpbl0gIFRscyAgICAgICAgIFBvaW50ZXIgdG8gdGhlIFRMUyBvYmpl Y3QuDQorICBAcGFyYW1baW5dICBEYXRhICAgICAgICBQb2ludGVyIHRvIHRoZSBkYXRhIGJ1ZmZl ciBvZiBhIERFUi1lbmNvZGVkIG9yIFBFTS1lbmNvZGVkDQogICAgICAgICAgICAgICAgICAgICAg ICAgICBvciBQS0NTIzggcHJpdmF0ZSBrZXkuDQogICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICBU aGUgc2l6ZSBvZiBkYXRhIGJ1ZmZlciBpbiBieXRlcy4NCiANCkBAIC01MzQsNiArNTgwLDUzIEBA IFRsc1NldENlcnRSZXZvY2F0aW9uTGlzdCAoCiAgIElOICAgICBVSU5UTiAgRGF0YVNpemUNCiAg ICk7DQogDQorLyoqDQorICBTZXQgdGhlIHNpZ25hdHVyZSBhbGdvcml0aG0gbGlzdCB0byB1c2Vk IGJ5IHRoZSBUTFMgb2JqZWN0Lg0KKw0KKyAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBzaWduYXR1 cmUgYWxnb3JpdGhtcyBmb3IgdXNlIGJ5IGEgc3BlY2lmaWVkIFRMUyBvYmplY3QuDQorDQorICBA cGFyYW1baW5dICBUbHMgICAgICAgICAgICAgICAgUG9pbnRlciB0byBhIFRMUyBvYmplY3QuDQor ICBAcGFyYW1baW5dICBEYXRhICAgICAgICAgICAgICAgQXJyYXkgb2YgVUlOVDggb2Ygc2lnbmF0 dXJlIGFsZ29yaXRobXMuIFRoZSBhcnJheSBjb25zaXN0cyBvZg0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBhaXJzIG9mIHRoZSBoYXNoIGFsZ29yaXRobSBhbmQgdGhlIHNpZ25h dHVyZSBhbGdvcml0aG0gYXMgZGVmaW5lZA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGluIFJGQyA1MjQ2DQorICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICAgICAgICAgVGhlIGxl bmd0aCB0aGUgU2lnbmF0dXJlQWxnb0xpc3QuIE11c3QgYmUgZGl2aXNpYmxlIGJ5IDIuDQorDQor ICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIHNpZ25hdHVyZSBhbGdvcml0aG0g bGlzdCB3YXMgc2V0IHN1Y2Nlc3NmdWxseS4NCisgIEByZXR2YWwgIEVGSV9JTlZBTElEX1BBUkFN RVRFUiBUaGUgcGFyYW1ldGVycyBhcmUgaW52YWxpZC4NCisgIEByZXR2YWwgIEVGSV9VTlNVUFBP UlRFRCAgICAgICBObyBzdXBwb3J0ZWQgVExTIHNpZ25hdHVyZSBhbGdvcml0aG0gd2FzIGZvdW5k IGluIFNpZ25hdHVyZUFsZ29MaXN0DQorICBAcmV0dmFsICBFRklfT1VUX09GX1JFU09VUkNFUyAg TWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLg0KKw0KKyoqLw0KK0VGSV9TVEFUVVMNCitFRklBUEkN CitUbHNTZXRTaWduYXR1cmVBbGdvTGlzdCAoDQorICBJTiAgICAgVk9JRCAgICpUbHMsDQorICBJ TiAgICAgVUlOVDggICpEYXRhLA0KKyAgSU4gICAgIFVJTlROICBEYXRhU2l6ZQ0KKyAgKTsNCisN CisvKioNCisgIFNldCB0aGUgRUMgY3VydmUgdG8gYmUgdXNlZCBmb3IgVExTIGZsb3dzDQorDQor ICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIEVDIGN1cnZlIHRvIGJlIHVzZWQgZm9yIFRMUyBmbG93 cy4NCisNCisgIEBwYXJhbVtpbl0gIFRscyAgICAgICAgICAgICAgICBQb2ludGVyIHRvIGEgVExT IG9iamVjdC4NCisgIEBwYXJhbVtpbl0gIERhdGEgICAgICAgICAgICAgICBBbiBFQyBuYW1lZCBj dXJ2ZSBhcyBkZWZpbmVkIGluIHNlY3Rpb24gNS4xLjEgb2YgUkZDIDQ0OTIuDQorICBAcGFyYW1b aW5dICBEYXRhU2l6ZSAgICAgICAgICAgU2l6ZSBvZiBEYXRhLCBpdCBzaG91bGQgYmUgc2l6ZW9m IChVSU5UMzIpDQorDQorICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIEVDIGN1 cnZlIHdhcyBzZXQgc3VjY2Vzc2Z1bGx5Lg0KKyAgQHJldHZhbCAgRUZJX0lOVkFMSURfUEFSQU1F VEVSIFRoZSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkLg0KKyAgQHJldHZhbCAgRUZJX1VOU1VQUE9S VEVEICAgICAgIFRoZSByZXF1ZXN0ZWQgVExTIEVDIGN1cnZlIGlzIG5vdCBzdXBwb3J0ZWQNCisN CisqKi8NCitFRklfU1RBVFVTDQorRUZJQVBJDQorVGxzU2V0RWNDdXJ2ZSAoDQorICBJTiAgICAg Vk9JRCAgICpUbHMsDQorICBJTiAgICAgVUlOVDggICpEYXRhLA0KKyAgSU4gICAgIFVJTlROICBE YXRhU2l6ZQ0KKyAgKTsNCisNCiAvKioNCiAgIEdldHMgdGhlIHByb3RvY29sIHZlcnNpb24gdXNl ZCBieSB0aGUgc3BlY2lmaWVkIFRMUyBjb25uZWN0aW9uLg0KIA0KQEAgLTgxMCw0ICs5MDMsMzMg QEAgVGxzR2V0Q2VydFJldm9jYXRpb25MaXN0ICgKICAgSU4gT1VUIFVJTlROICAqRGF0YVNpemUN CiAgICk7DQogDQorLyoqDQorICBEZXJpdmUga2V5aW5nIG1hdGVyaWFsIGZyb20gYSBUTFMgY29u bmVjdGlvbi4NCisNCisgIFRoaXMgZnVuY3Rpb24gZXhwb3J0cyBrZXlpbmcgbWF0ZXJpYWwgdXNp bmcgdGhlIG1lY2hhbmlzbSBkZXNjcmliZWQgaW4gUkZDDQorICA1NzA1Lg0KKw0KKyAgQHBhcmFt W2luXSAgICAgIFRscyAgICAgICAgICBQb2ludGVyIHRvIHRoZSBUTFMgb2JqZWN0DQorICBAcGFy YW1baW5dICAgICAgTGFiZWwgICAgICAgIERlc2NyaXB0aW9uIG9mIHRoZSBrZXkgZm9yIHRoZSBQ UkYgZnVuY3Rpb24NCisgIEBwYXJhbVtpbl0gICAgICBDb250ZXh0ICAgICAgT3B0aW9uYWwgY29u dGV4dA0KKyAgQHBhcmFtW2luXSAgICAgIENvbnRleHRMZW4gICBUaGUgbGVuZ3RoIG9mIHRoZSBj b250ZXh0IHZhbHVlIGluIGJ5dGVzDQorICBAcGFyYW1bb3V0XSAgICAgS2V5QnVmZmVyICAgIEJ1 ZmZlciB0byBob2xkIHRoZSBvdXRwdXQgb2YgdGhlIFRMUy1QUkYNCisgIEBwYXJhbVtpbl0gICAg ICBLZXlCdWZmZXJMZW4gVGhlIGxlbmd0aCBvZiB0aGUgS2V5QnVmZmVyDQorDQorICBAcmV0dmFs ICBFRklfU1VDQ0VTUyAgICAgICAgICAgICBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZC4NCisgIEBy ZXR2YWwgIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgIFRoZSBUTFMgb2JqZWN0IGlzIGludmFsaWQu DQorICBAcmV0dmFsICBFRklfUFJPVE9DT0xfRVJST1IgICAgICBTb21lIG90aGVyIGVycm9yIG9j Y3VycmVkLg0KKw0KKyoqLw0KK0VGSV9TVEFUVVMNCitFRklBUEkNCitUbHNHZXRFeHBvcnRLZXkg KA0KKyAgSU4gICAgIFZPSUQgICAgICAgICpUbHMsDQorICBJTiAgICAgQ09OU1QgVk9JRCAgKkxh YmVsLA0KKyAgSU4gICAgIENPTlNUIFZPSUQgICpDb250ZXh0LA0KKyAgSU4gICAgIFVJTlROICAg ICAgIENvbnRleHRMZW4sDQorICBPVVQgICAgVk9JRCAgICAgICAgKktleUJ1ZmZlciwNCisgIElO ICAgICBVSU5UTiAgICAgICBLZXlCdWZmZXJMZW4NCisgICk7DQorDQogI2VuZGlmIC8vIF9fVExT X0xJQl9IX18NCmRpZmYgLS1naXQgYS9DcnlwdG9Qa2cvTGlicmFyeS9UbHNMaWIvSW50ZXJuYWxU bHNMaWIuaCBiL0NyeXB0b1BrZy9MaWJyYXJ5L1Rsc0xpYi9JbnRlcm5hbFRsc0xpYi5oCmluZGV4 IGNmNWZmZTFiNzMuLjk3YTQ2YWY2YzEgMTAwNjQ0Ci0tLSBhL0NyeXB0b1BrZy9MaWJyYXJ5L1Rs c0xpYi9JbnRlcm5hbFRsc0xpYi5oCisrKyBiL0NyeXB0b1BrZy9MaWJyYXJ5L1Rsc0xpYi9JbnRl cm5hbFRsc0xpYi5oCkBAIC0xNyw2ICsxNywxMCBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudAogI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCiAjaW5j bHVkZSA8TGlicmFyeS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+DQogI2luY2x1ZGUgPExpYnJhcnkv U2FmZUludExpYi5oPg0KKyNpbmNsdWRlIDxQcm90b2NvbC9UbHMuaD4NCisjaW5jbHVkZSA8SW5k dXN0cnlTdGFuZGFyZC9UbHMxLmg+DQorI2luY2x1ZGUgPExpYnJhcnkvUGNkTGliLmg+DQorI2lu Y2x1ZGUgPG9wZW5zc2wvb2JqX21hYy5oPg0KICNpbmNsdWRlIDxvcGVuc3NsL3NzbC5oPg0KICNp bmNsdWRlIDxvcGVuc3NsL2Jpby5oPg0KICNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPg0KZGlmZiAt LWdpdCBhL0NyeXB0b1BrZy9MaWJyYXJ5L1Rsc0xpYi9UbHNDb25maWcuYyBiL0NyeXB0b1BrZy9M aWJyYXJ5L1Rsc0xpYi9UbHNDb25maWcuYwppbmRleCAwNjczYzlkNTMyLi5kYmUxZjA2NTI5IDEw MDY0NAotLS0gYS9DcnlwdG9Qa2cvTGlicmFyeS9UbHNMaWIvVGxzQ29uZmlnLmMKKysrIGIvQ3J5 cHRvUGtnL0xpYnJhcnkvVGxzTGliL1Rsc0NvbmZpZy5jCkBAIC02Miw2ICs2MiwzOCBAQCBTVEFU SUMgQ09OU1QgVExTX0NJUEhFUl9NQVBQSU5HICBUbHNDaXBoZXJNYXBwaW5nVGFibGVbXSA9IHsK ICAgTUFQICgweDAwNjgsICJESC1EU1MtQUVTMjU2LVNIQTI1NiIpLCAgICAgICAgICAgICAvLy8g VExTX0RIX0RTU19XSVRIX0FFU18yNTZfQ0JDX1NIQTI1Ng0KICAgTUFQICgweDAwNjksICJESC1S U0EtQUVTMjU2LVNIQTI1NiIpLCAgICAgICAgICAgICAvLy8gVExTX0RIX1JTQV9XSVRIX0FFU18y NTZfQ0JDX1NIQTI1Ng0KICAgTUFQICgweDAwNkIsICJESEUtUlNBLUFFUzI1Ni1TSEEyNTYiKSwg ICAgICAgICAgICAvLy8gVExTX0RIRV9SU0FfV0lUSF9BRVNfMjU2X0NCQ19TSEEyNTYNCisgIE1B UCAoMHgwMDlGLCAiREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCIpLCAgICAgICAgLy8vIFRMU19E SEVfUlNBX1dJVEhfQUVTXzI1Nl9HQ01fU0hBMzg0DQorICBNQVAgKDB4QzAyQiwgIkVDREhFLUVD RFNBLUFFUzEyOC1HQ00tU0hBMjU2IiksICAgIC8vLyBUTFNfRUNESEVfRUNEU0FfV0lUSF9BRVNf MTI4X0dDTV9TSEEyNTYNCisgIE1BUCAoMHhDMDJDLCAiRUNESEUtRUNEU0EtQUVTMjU2LUdDTS1T SEEzODQiKSwgICAgLy8vIFRMU19FQ0RIRV9FQ0RTQV9XSVRIX0FFU18yNTZfR0NNX1NIQTM4NA0K KyAgTUFQICgweEMwMzAsICJFQ0RIRS1SU0EtQUVTMjU2LUdDTS1TSEEzODQiKSwgICAgICAvLy8g VExTX0VDREhFX1JTQV9XSVRIX0FFU18yNTZfR0NNX1NIQTM4NA0KK307DQorDQordHlwZWRlZiBz dHJ1Y3Qgew0KKyAgLy8NCisgIC8vIFRMUyBBbGdvcml0aG0NCisgIC8vDQorICBVSU5UOCAgICAg ICAgICBBbGdvOw0KKyAgLy8NCisgIC8vIFRMUyBBbGdvcml0aG0gbmFtZQ0KKyAgLy8NCisgIENP TlNUIENIQVI4ICAgICpOYW1lOw0KK30gVExTX0FMR09fVE9fTkFNRTsNCisNCitTVEFUSUMgQ09O U1QgVExTX0FMR09fVE9fTkFNRSAgVGxzSGFzaEFsZ29Ub05hbWVbXSA9IHsNCisgIHsgVGxzSGFz aEFsZ29Ob25lLCAgIE5VTEwgICAgIH0sDQorICB7IFRsc0hhc2hBbGdvTWQ1LCAgICAiTUQ1IiAg ICB9LA0KKyAgeyBUbHNIYXNoQWxnb1NoYTEsICAgIlNIQTEiICAgfSwNCisgIHsgVGxzSGFzaEFs Z29TaGEyMjQsICJTSEEyMjQiIH0sDQorICB7IFRsc0hhc2hBbGdvU2hhMjU2LCAiU0hBMjU2IiB9 LA0KKyAgeyBUbHNIYXNoQWxnb1NoYTM4NCwgIlNIQTM4NCIgfSwNCisgIHsgVGxzSGFzaEFsZ29T aGE1MTIsICJTSEE1MTIiIH0sDQorfTsNCisNCitTVEFUSUMgQ09OU1QgVExTX0FMR09fVE9fTkFN RSAgVGxzU2lnbmF0dXJlQWxnb1RvTmFtZVtdID0gew0KKyAgeyBUbHNTaWduYXR1cmVBbGdvQW5v bnltb3VzLCBOVUxMICAgIH0sDQorICB7IFRsc1NpZ25hdHVyZUFsZ29Sc2EsICAgICAgICJSU0Ei ICAgfSwNCisgIHsgVGxzU2lnbmF0dXJlQWxnb0RzYSwgICAgICAgIkRTQSIgICB9LA0KKyAgeyBU bHNTaWduYXR1cmVBbGdvRWNkc2EsICAgICAiRUNEU0EiIH0sDQogfTsNCiANCiAvKioNCkBAIC04 MzEsMTEgKzg2MywxMDcgQEAgT05fRVhJVDoKIC8qKg0KICAgQWRkcyB0aGUgbG9jYWwgcHJpdmF0 ZSBrZXkgdG8gdGhlIHNwZWNpZmllZCBUTFMgb2JqZWN0Lg0KIA0KLSAgVGhpcyBmdW5jdGlvbiBh ZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSAoUEVNLWVuY29kZWQgUlNBIG9yIFBLQ1MjOCBwcml2 YXRlDQorICBUaGlzIGZ1bmN0aW9uIGFkZHMgdGhlIGxvY2FsIHByaXZhdGUga2V5IChERVItZW5j b2RlZCBvciBQRU0tZW5jb2RlZCBvciBQS0NTIzggcHJpdmF0ZQ0KICAga2V5KSBpbnRvIHRoZSBz cGVjaWZpZWQgVExTIG9iamVjdCBmb3IgVExTIG5lZ290aWF0aW9uLg0KIA0KICAgQHBhcmFtW2lu XSAgVGxzICAgICAgICAgUG9pbnRlciB0byB0aGUgVExTIG9iamVjdC4NCi0gIEBwYXJhbVtpbl0g IERhdGEgICAgICAgIFBvaW50ZXIgdG8gdGhlIGRhdGEgYnVmZmVyIG9mIGEgUEVNLWVuY29kZWQg UlNBDQorICBAcGFyYW1baW5dICBEYXRhICAgICAgICBQb2ludGVyIHRvIHRoZSBkYXRhIGJ1ZmZl ciBvZiBhIERFUi1lbmNvZGVkIG9yIFBFTS1lbmNvZGVkDQorICAgICAgICAgICAgICAgICAgICAg ICAgICBvciBQS0NTIzggcHJpdmF0ZSBrZXkuDQorICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICBU aGUgc2l6ZSBvZiBkYXRhIGJ1ZmZlciBpbiBieXRlcy4NCisgIEBwYXJhbVtpbl0gIFBhc3N3b3Jk ICAgIFBvaW50ZXIgdG8gTlVMTC10ZXJtaW5hdGVkIHByaXZhdGUga2V5IHBhc3N3b3JkLCBzZXQg aXQgdG8gTlVMTA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHJpdmF0ZSBrZXkgbm90 IGVuY3J5cHRlZC4NCisNCisgIEByZXR2YWwgIEVGSV9TVUNDRVNTICAgICBUaGUgb3BlcmF0aW9u IHN1Y2NlZWRlZC4NCisgIEByZXR2YWwgIEVGSV9VTlNVUFBPUlRFRCBUaGlzIGZ1bmN0aW9uIGlz IG5vdCBzdXBwb3J0ZWQuDQorICBAcmV0dmFsICBFRklfQUJPUlRFRCAgICAgSW52YWxpZCBwcml2 YXRlIGtleSBkYXRhLg0KKw0KKyoqLw0KK0VGSV9TVEFUVVMNCitFRklBUEkNCitUbHNTZXRIb3N0 UHJpdmF0ZUtleUV4ICgNCisgIElOICAgICBWT0lEICAgKlRscywNCisgIElOICAgICBWT0lEICAg KkRhdGEsDQorICBJTiAgICAgVUlOVE4gIERhdGFTaXplLA0KKyAgSU4gICAgIFZPSUQgICAqUGFz c3dvcmQgIE9QVElPTkFMDQorICApDQorew0KKyAgVExTX0NPTk5FQ1RJT04gICpUbHNDb25uOw0K KyAgQklPICAgICAgICAgICAgICpCaW87DQorICBFVlBfUEtFWSAgICAgICAgKlBrZXk7DQorICBC T09MRUFOICAgICAgICAgVmVyaWZ5Ow0KKw0KKyAgVGxzQ29ubiA9IChUTFNfQ09OTkVDVElPTiAq KVRsczsNCisNCisgIGlmICgoVGxzQ29ubiA9PSBOVUxMKSB8fCAoVGxzQ29ubi0+U3NsID09IE5V TEwpIHx8IChEYXRhID09IE5VTEwpIHx8IChEYXRhU2l6ZSA9PSAwKSkgew0KKyAgICByZXR1cm4g RUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KKyAgfQ0KKw0KKyAgLy8gVHJ5IHRvIHBhcnNlIHRoZSBw cml2YXRlIGtleSBpbiBERVIgZm9ybWF0IG9yIHVuLWVuY3J5cHRlZCBQS0MjOA0KKyAgaWYgKFNT TF91c2VfUHJpdmF0ZUtleV9BU04xICgNCisgICAgICAgIEVWUF9QS0VZX1JTQSwNCisgICAgICAg IFRsc0Nvbm4tPlNzbCwNCisgICAgICAgIERhdGEsDQorICAgICAgICAobG9uZylEYXRhU2l6ZQ0K KyAgICAgICAgKSA9PSAxKQ0KKyAgew0KKyAgICBnb3RvIHZlcmlmeTsNCisgIH0NCisNCisgIGlm IChTU0xfdXNlX1ByaXZhdGVLZXlfQVNOMSAoDQorICAgICAgICBFVlBfUEtFWV9EU0EsDQorICAg ICAgICBUbHNDb25uLT5Tc2wsDQorICAgICAgICBEYXRhLA0KKyAgICAgICAgKGxvbmcpRGF0YVNp emUNCisgICAgICAgICkgPT0gMSkNCisgIHsNCisgICAgZ290byB2ZXJpZnk7DQorICB9DQorDQor ICBpZiAoU1NMX3VzZV9Qcml2YXRlS2V5X0FTTjEgKA0KKyAgICAgICAgRVZQX1BLRVlfRUMsDQor ICAgICAgICBUbHNDb25uLT5Tc2wsDQorICAgICAgICBEYXRhLA0KKyAgICAgICAgKGxvbmcpRGF0 YVNpemUNCisgICAgICAgICkgPT0gMSkNCisgIHsNCisgICAgZ290byB2ZXJpZnk7DQorICB9DQor DQorICAvLyBUcnkgdG8gcGFyc2UgdGhlIHByaXZhdGUga2V5IGluIFBFTSBmb3JtYXQgb3IgZW5j cnlwdGVkIFBLQyM4DQorICBCaW8gPSBCSU9fbmV3X21lbV9idWYgKERhdGEsIChpbnQpRGF0YVNp emUpOw0KKyAgaWYgKEJpbyAhPSBOVUxMKSB7DQorICAgIFZlcmlmeSA9IEZBTFNFOw0KKyAgICBQ a2V5ICAgPSBQRU1fcmVhZF9iaW9fUHJpdmF0ZUtleSAoQmlvLCBOVUxMLCBOVUxMLCBQYXNzd29y ZCk7DQorICAgIGlmICgoUGtleSAhPSBOVUxMKSAmJiAoU1NMX3VzZV9Qcml2YXRlS2V5IChUbHND b25uLT5Tc2wsIFBrZXkpID09IDEpKSB7DQorICAgICAgVmVyaWZ5ID0gVFJVRTsNCisgICAgfQ0K Kw0KKyAgICBFVlBfUEtFWV9mcmVlIChQa2V5KTsNCisgICAgQklPX2ZyZWUgKEJpbyk7DQorDQor ICAgIGlmIChWZXJpZnkpIHsNCisgICAgICBnb3RvIHZlcmlmeTsNCisgICAgfQ0KKyAgfQ0KKw0K KyAgcmV0dXJuIEVGSV9BQk9SVEVEOw0KKw0KK3ZlcmlmeToNCisgIGlmIChTU0xfY2hlY2tfcHJp dmF0ZV9rZXkgKFRsc0Nvbm4tPlNzbCkgPT0gMSkgew0KKyAgICByZXR1cm4gRUZJX1NVQ0NFU1M7 DQorICB9DQorDQorICByZXR1cm4gRUZJX0FCT1JURUQ7DQorfQ0KKw0KKy8qKg0KKyAgQWRkcyB0 aGUgbG9jYWwgcHJpdmF0ZSBrZXkgdG8gdGhlIHNwZWNpZmllZCBUTFMgb2JqZWN0Lg0KKw0KKyAg VGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSAoREVSLWVuY29kZWQgb3Ig UEVNLWVuY29kZWQgb3IgUEtDUyM4IHByaXZhdGUNCisgIGtleSkgaW50byB0aGUgc3BlY2lmaWVk IFRMUyBvYmplY3QgZm9yIFRMUyBuZWdvdGlhdGlvbi4NCisNCisgIEBwYXJhbVtpbl0gIFRscyAg ICAgICAgIFBvaW50ZXIgdG8gdGhlIFRMUyBvYmplY3QuDQorICBAcGFyYW1baW5dICBEYXRhICAg ICAgICBQb2ludGVyIHRvIHRoZSBkYXRhIGJ1ZmZlciBvZiBhIERFUi1lbmNvZGVkIG9yIFBFTS1l bmNvZGVkDQogICAgICAgICAgICAgICAgICAgICAgICAgICBvciBQS0NTIzggcHJpdmF0ZSBrZXku DQogICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICBUaGUgc2l6ZSBvZiBkYXRhIGJ1ZmZlciBpbiBi eXRlcy4NCiANCkBAIC04NTIsNyArOTgwLDcgQEAgVGxzU2V0SG9zdFByaXZhdGVLZXkgKAogICBJ TiAgICAgVUlOVE4gIERhdGFTaXplDQogICApDQogew0KLSAgcmV0dXJuIEVGSV9VTlNVUFBPUlRF RDsNCisgIHJldHVybiBUbHNTZXRIb3N0UHJpdmF0ZUtleUV4IChUbHMsIERhdGEsIERhdGFTaXpl LCBOVUxMKTsNCiB9DQogDQogLyoqDQpAQCAtODc5LDYgKzEwMDcsMTg4IEBAIFRsc1NldENlcnRS ZXZvY2F0aW9uTGlzdCAoCiAgIHJldHVybiBFRklfVU5TVVBQT1JURUQ7DQogfQ0KIA0KKy8qKg0K KyAgU2V0IHRoZSBzaWduYXR1cmUgYWxnb3JpdGhtIGxpc3QgdG8gdXNlZCBieSB0aGUgVExTIG9i amVjdC4NCisNCisgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgc2lnbmF0dXJlIGFsZ29yaXRobXMg Zm9yIHVzZSBieSBhIHNwZWNpZmllZCBUTFMgb2JqZWN0Lg0KKw0KKyAgQHBhcmFtW2luXSAgVGxz ICAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBUTFMgb2JqZWN0Lg0KKyAgQHBhcmFtW2luXSAg RGF0YSAgICAgICAgICAgICAgIEFycmF5IG9mIFVJTlQ4IG9mIHNpZ25hdHVyZSBhbGdvcml0aG1z LiBUaGUgYXJyYXkgY29uc2lzdHMgb2YNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYWlycyBvZiB0aGUgaGFzaCBhbGdvcml0aG0gYW5kIHRoZSBzaWduYXR1cmUgYWxnb3JpdGht IGFzIGRlZmluZWQNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBSRkMgNTI0 Ng0KKyAgQHBhcmFtW2luXSAgRGF0YVNpemUgICAgICAgICAgIFRoZSBsZW5ndGggdGhlIFNpZ25h dHVyZUFsZ29MaXN0LiBNdXN0IGJlIGRpdmlzaWJsZSBieSAyLg0KKw0KKyAgQHJldHZhbCAgRUZJ X1NVQ0NFU1MgICAgICAgICAgIFRoZSBzaWduYXR1cmUgYWxnb3JpdGhtIGxpc3Qgd2FzIHNldCBz dWNjZXNzZnVsbHkuDQorICBAcmV0dmFsICBFRklfSU5WQUxJRF9QQVJBTUVURVIgVGhlIHBhcmFt ZXRlcnMgYXJlIGludmFsaWQuDQorICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQgICAgICAgTm8g c3VwcG9ydGVkIFRMUyBzaWduYXR1cmUgYWxnb3JpdGhtIHdhcyBmb3VuZCBpbiBTaWduYXR1cmVB bGdvTGlzdA0KKyAgQHJldHZhbCAgRUZJX09VVF9PRl9SRVNPVVJDRVMgIE1lbW9yeSBhbGxvY2F0 aW9uIGZhaWxlZC4NCisNCisqKi8NCitFRklfU1RBVFVTDQorRUZJQVBJDQorVGxzU2V0U2lnbmF0 dXJlQWxnb0xpc3QgKA0KKyAgSU4gICAgIFZPSUQgICAqVGxzLA0KKyAgSU4gICAgIFVJTlQ4ICAq RGF0YSwNCisgIElOICAgICBVSU5UTiAgRGF0YVNpemUNCisgICkNCit7DQorICBUTFNfQ09OTkVD VElPTiAgKlRsc0Nvbm47DQorICBVSU5UTiAgICAgICAgICAgSW5kZXg7DQorICBVSU5UTiAgICAg ICAgICAgU2lnbkFsZ29TdHJTaXplOw0KKyAgQ0hBUjggICAgICAgICAgICpTaWduQWxnb1N0cjsN CisgIENIQVI4ICAgICAgICAgICAqUG9zOw0KKyAgVUlOVDggICAgICAgICAgICpTaWduYXR1cmVB bGdvTGlzdDsNCisgIEVGSV9TVEFUVVMgICAgICBTdGF0dXM7DQorDQorICBUbHNDb25uID0gKFRM U19DT05ORUNUSU9OICopVGxzOw0KKw0KKyAgaWYgKChUbHNDb25uID09IE5VTEwpIHx8IChUbHND b25uLT5Tc2wgPT0gTlVMTCkgfHwgKERhdGEgPT0gTlVMTCkgfHwgKERhdGFTaXplIDwgMykgfHwN CisgICAgICAoKERhdGFTaXplICUgMikgPT0gMCkgfHwgKERhdGFbMF0gIT0gRGF0YVNpemUgLSAx KSkNCisgIHsNCisgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCisgIH0NCisNCisg IFNpZ25hdHVyZUFsZ29MaXN0ID0gRGF0YSArIDE7DQorICBTaWduQWxnb1N0clNpemUgICA9IDA7 DQorICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBEYXRhWzBdOyBJbmRleCArPSAyKSB7DQorICAg IENPTlNUIENIQVI4ICAqVG1wOw0KKw0KKyAgICBpZiAoU2lnbmF0dXJlQWxnb0xpc3RbSW5kZXhd ID49IEFSUkFZX1NJWkUgKFRsc0hhc2hBbGdvVG9OYW1lKSkgew0KKyAgICAgIHJldHVybiBFRklf SU5WQUxJRF9QQVJBTUVURVI7DQorICAgIH0NCisNCisgICAgVG1wID0gVGxzSGFzaEFsZ29Ub05h bWVbU2lnbmF0dXJlQWxnb0xpc3RbSW5kZXhdXS5OYW1lOw0KKyAgICBpZiAoIVRtcCkgew0KKyAg ICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQorICAgIH0NCisNCisgICAgLy8gQWRk IDEgZm9yIHRoZSAnKycNCisgICAgU2lnbkFsZ29TdHJTaXplICs9IEFzY2lpU3RyTGVuIChUbXAp ICsgMTsNCisNCisgICAgaWYgKFNpZ25hdHVyZUFsZ29MaXN0W0luZGV4ICsgMV0gPj0gQVJSQVlf U0laRSAoVGxzU2lnbmF0dXJlQWxnb1RvTmFtZSkpIHsNCisgICAgICByZXR1cm4gRUZJX0lOVkFM SURfUEFSQU1FVEVSOw0KKyAgICB9DQorDQorICAgIFRtcCA9IFRsc1NpZ25hdHVyZUFsZ29Ub05h bWVbU2lnbmF0dXJlQWxnb0xpc3RbSW5kZXggKyAxXV0uTmFtZTsNCisgICAgaWYgKCFUbXApIHsN CisgICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KKyAgICB9DQorDQorICAgIC8v IEFkZCAxIGZvciB0aGUgJzonIG9yIGZvciB0aGUgTlVMTCB0ZXJtaW5hdG9yDQorICAgIFNpZ25B bGdvU3RyU2l6ZSArPSBBc2NpaVN0ckxlbiAoVG1wKSArIDE7DQorICB9DQorDQorICBpZiAoIVNp Z25BbGdvU3RyU2l6ZSkgew0KKyAgICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KKyAgfQ0KKw0K KyAgU2lnbkFsZ29TdHIgPSBBbGxvY2F0ZVBvb2wgKFNpZ25BbGdvU3RyU2l6ZSk7DQorICBpZiAo U2lnbkFsZ29TdHIgPT0gTlVMTCkgew0KKyAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7 DQorICB9DQorDQorICBQb3MgPSBTaWduQWxnb1N0cjsNCisgIGZvciAoSW5kZXggPSAwOyBJbmRl eCA8IERhdGFbMF07IEluZGV4ICs9IDIpIHsNCisgICAgQ09OU1QgQ0hBUjggICpUbXA7DQorDQor ICAgIFRtcCA9IFRsc0hhc2hBbGdvVG9OYW1lW1NpZ25hdHVyZUFsZ29MaXN0W0luZGV4XV0uTmFt ZTsNCisgICAgQ29weU1lbSAoUG9zLCBUbXAsIEFzY2lpU3RyTGVuIChUbXApKTsNCisgICAgUG9z ICAgKz0gQXNjaWlTdHJMZW4gKFRtcCk7DQorICAgICpQb3MrKyA9ICcrJzsNCisNCisgICAgVG1w ID0gVGxzU2lnbmF0dXJlQWxnb1RvTmFtZVtTaWduYXR1cmVBbGdvTGlzdFtJbmRleCArIDFdXS5O YW1lOw0KKyAgICBDb3B5TWVtIChQb3MsIFRtcCwgQXNjaWlTdHJMZW4gKFRtcCkpOw0KKyAgICBQ b3MgICArPSBBc2NpaVN0ckxlbiAoVG1wKTsNCisgICAgKlBvcysrID0gJzonOw0KKyAgfQ0KKw0K KyAgKihQb3MgLSAxKSA9ICdcMCc7DQorDQorICBpZiAoU1NMX3NldDFfc2lnYWxnc19saXN0IChU bHNDb25uLT5Tc2wsIFNpZ25BbGdvU3RyKSA8IDEpIHsNCisgICAgU3RhdHVzID0gRUZJX0lOVkFM SURfUEFSQU1FVEVSOw0KKyAgfSBlbHNlIHsNCisgICAgU3RhdHVzID0gRUZJX1NVQ0NFU1M7DQor ICB9DQorDQorICBGcmVlUG9vbCAoU2lnbkFsZ29TdHIpOw0KKyAgcmV0dXJuIFN0YXR1czsNCit9 DQorDQorLyoqDQorICBTZXQgdGhlIEVDIGN1cnZlIHRvIGJlIHVzZWQgZm9yIFRMUyBmbG93cw0K Kw0KKyAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBFQyBjdXJ2ZSB0byBiZSB1c2VkIGZvciBUTFMg Zmxvd3MuDQorDQorICBAcGFyYW1baW5dICBUbHMgICAgICAgICAgICAgICAgUG9pbnRlciB0byBh IFRMUyBvYmplY3QuDQorICBAcGFyYW1baW5dICBEYXRhICAgICAgICAgICAgICAgQW4gRUMgbmFt ZWQgY3VydmUgYXMgZGVmaW5lZCBpbiBzZWN0aW9uIDUuMS4xIG9mIFJGQyA0NDkyLg0KKyAgQHBh cmFtW2luXSAgRGF0YVNpemUgICAgICAgICAgIFNpemUgb2YgRGF0YSwgaXQgc2hvdWxkIGJlIHNp emVvZiAoVUlOVDMyKQ0KKw0KKyAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBF QyBjdXJ2ZSB3YXMgc2V0IHN1Y2Nlc3NmdWxseS4NCisgIEByZXR2YWwgIEVGSV9JTlZBTElEX1BB UkFNRVRFUiBUaGUgcGFyYW1ldGVycyBhcmUgaW52YWxpZC4NCisgIEByZXR2YWwgIEVGSV9VTlNV UFBPUlRFRCAgICAgICBUaGUgcmVxdWVzdGVkIFRMUyBFQyBjdXJ2ZSBpcyBub3Qgc3VwcG9ydGVk DQorDQorKiovDQorRUZJX1NUQVRVUw0KK0VGSUFQSQ0KK1Rsc1NldEVjQ3VydmUgKA0KKyAgSU4g ICAgIFZPSUQgICAqVGxzLA0KKyAgSU4gICAgIFVJTlQ4ICAqRGF0YSwNCisgIElOICAgICBVSU5U TiAgRGF0YVNpemUNCisgICkNCit7DQorICNpZiAhRml4ZWRQY2RHZXRCb29sIChQY2RPcGVuc3Ns RWNFbmFibGVkKQ0KKyAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCisgI2Vsc2UNCisgIFRMU19D T05ORUNUSU9OICAqVGxzQ29ubjsNCisgIEVDX0tFWSAgICAgICAgICAqRWNLZXk7DQorICBJTlQz MiAgICAgICAgICAgTmlkOw0KKyAgSU5UMzIgICAgICAgICAgIFJldDsNCisNCisgIFRsc0Nvbm4g PSAoVExTX0NPTk5FQ1RJT04gKilUbHM7DQorDQorICBpZiAoKFRsc0Nvbm4gPT0gTlVMTCkgfHwg KFRsc0Nvbm4tPlNzbCA9PSBOVUxMKSB8fCAoRGF0YSA9PSBOVUxMKSB8fCAoRGF0YVNpemUgIT0g c2l6ZW9mIChVSU5UMzIpKSkgew0KKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0K KyAgfQ0KKw0KKyAgc3dpdGNoICgqKChVSU5UMzIgKilEYXRhKSkgew0KKyAgICBjYXNlIFRsc0Vj TmFtZWRDdXJ2ZVNlY3AyNTZyMToNCisgICAgICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KKyAg ICBjYXNlIFRsc0VjTmFtZWRDdXJ2ZVNlY3AzODRyMToNCisgICAgICBOaWQgPSBOSURfc2VjcDM4 NHIxOw0KKyAgICAgIGJyZWFrOw0KKyAgICBjYXNlIFRsc0VjTmFtZWRDdXJ2ZVNlY3A1MjFyMToN CisgICAgICBOaWQgPSBOSURfc2VjcDUyMXIxOw0KKyAgICAgIGJyZWFrOw0KKyAgICBjYXNlIFRs c0VjTmFtZWRDdXJ2ZVgyNTUxOToNCisgICAgICBOaWQgPSBOSURfWDI1NTE5Ow0KKyAgICAgIGJy ZWFrOw0KKyAgICBjYXNlIFRsc0VjTmFtZWRDdXJ2ZVg0NDg6DQorICAgICAgTmlkID0gTklEX1g0 NDg7DQorICAgICAgYnJlYWs7DQorICAgIGRlZmF1bHQ6DQorICAgICAgcmV0dXJuIEVGSV9VTlNV UFBPUlRFRDsNCisgIH0NCisNCisgIGlmIChTU0xfc2V0MV9jdXJ2ZXMgKFRsc0Nvbm4tPlNzbCwg Jk5pZCwgMSkgIT0gMSkgew0KKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KKyAg fQ0KKw0KKyAgRWNLZXkgPSBFQ19LRVlfbmV3X2J5X2N1cnZlX25hbWUgKE5pZCk7DQorICBpZiAo RWNLZXkgPT0gTlVMTCkgew0KKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KKyAg fQ0KKw0KKyAgUmV0ID0gU1NMX3NldF90bXBfZWNkaCAoVGxzQ29ubi0+U3NsLCBFY0tleSk7DQor ICBFQ19LRVlfZnJlZSAoRWNLZXkpOw0KKw0KKyAgaWYgKFJldCAhPSAxKSB7DQorICAgIHJldHVy biBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQorICB9DQorDQorICByZXR1cm4gRUZJX1NVQ0NFU1M7 DQorICNlbmRpZg0KK30NCisNCiAvKioNCiAgIEdldHMgdGhlIHByb3RvY29sIHZlcnNpb24gdXNl ZCBieSB0aGUgc3BlY2lmaWVkIFRMUyBjb25uZWN0aW9uLg0KIA0KQEAgLTEzMDYsMyArMTYxNiw1 MyBAQCBUbHNHZXRDZXJ0UmV2b2NhdGlvbkxpc3QgKAogew0KICAgcmV0dXJuIEVGSV9VTlNVUFBP UlRFRDsNCiB9DQorDQorLyoqDQorICBEZXJpdmUga2V5aW5nIG1hdGVyaWFsIGZyb20gYSBUTFMg Y29ubmVjdGlvbi4NCisNCisgIFRoaXMgZnVuY3Rpb24gZXhwb3J0cyBrZXlpbmcgbWF0ZXJpYWwg dXNpbmcgdGhlIG1lY2hhbmlzbSBkZXNjcmliZWQgaW4gUkZDDQorICA1NzA1Lg0KKw0KKyAgQHBh cmFtW2luXSAgICAgIFRscyAgICAgICAgICBQb2ludGVyIHRvIHRoZSBUTFMgb2JqZWN0DQorICBA cGFyYW1baW5dICAgICAgTGFiZWwgICAgICAgIERlc2NyaXB0aW9uIG9mIHRoZSBrZXkgZm9yIHRo ZSBQUkYgZnVuY3Rpb24NCisgIEBwYXJhbVtpbl0gICAgICBDb250ZXh0ICAgICAgT3B0aW9uYWwg Y29udGV4dA0KKyAgQHBhcmFtW2luXSAgICAgIENvbnRleHRMZW4gICBUaGUgbGVuZ3RoIG9mIHRo ZSBjb250ZXh0IHZhbHVlIGluIGJ5dGVzDQorICBAcGFyYW1bb3V0XSAgICAgS2V5QnVmZmVyICAg IEJ1ZmZlciB0byBob2xkIHRoZSBvdXRwdXQgb2YgdGhlIFRMUy1QUkYNCisgIEBwYXJhbVtpbl0g ICAgICBLZXlCdWZmZXJMZW4gVGhlIGxlbmd0aCBvZiB0aGUgS2V5QnVmZmVyDQorDQorICBAcmV0 dmFsICBFRklfU1VDQ0VTUyAgICAgICAgICAgICBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZC4NCisg IEByZXR2YWwgIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgIFRoZSBUTFMgb2JqZWN0IGlzIGludmFs aWQuDQorICBAcmV0dmFsICBFRklfUFJPVE9DT0xfRVJST1IgICAgICBTb21lIG90aGVyIGVycm9y IG9jY3VycmVkLg0KKw0KKyoqLw0KK0VGSV9TVEFUVVMNCitFRklBUEkNCitUbHNHZXRFeHBvcnRL ZXkgKA0KKyAgSU4gICAgIFZPSUQgICAgICAgICpUbHMsDQorICBJTiAgICAgQ09OU1QgVk9JRCAg KkxhYmVsLA0KKyAgSU4gICAgIENPTlNUIFZPSUQgICpDb250ZXh0LA0KKyAgSU4gICAgIFVJTlRO ICAgICAgIENvbnRleHRMZW4sDQorICBPVVQgICAgVk9JRCAgICAgICAgKktleUJ1ZmZlciwNCisg IElOICAgICBVSU5UTiAgICAgICBLZXlCdWZmZXJMZW4NCisgICkNCit7DQorICBUTFNfQ09OTkVD VElPTiAgKlRsc0Nvbm47DQorDQorICBUbHNDb25uID0gKFRMU19DT05ORUNUSU9OICopVGxzOw0K Kw0KKyAgaWYgKChUbHNDb25uID09IE5VTEwpIHx8IChUbHNDb25uLT5Tc2wgPT0gTlVMTCkpIHsN CisgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCisgIH0NCisNCisgIHJldHVybiBT U0xfZXhwb3J0X2tleWluZ19tYXRlcmlhbCAoDQorICAgICAgICAgICBUbHNDb25uLT5Tc2wsDQor ICAgICAgICAgICBLZXlCdWZmZXIsDQorICAgICAgICAgICBLZXlCdWZmZXJMZW4sDQorICAgICAg ICAgICBMYWJlbCwNCisgICAgICAgICAgIEFzY2lpU3RyTGVuIChMYWJlbCksDQorICAgICAgICAg ICBDb250ZXh0LA0KKyAgICAgICAgICAgQ29udGV4dExlbiwNCisgICAgICAgICAgIENvbnRleHQg IT0gTlVMTA0KKyAgICAgICAgICAgKSA9PSAxID8NCisgICAgICAgICBFRklfU1VDQ0VTUyA6IEVG SV9QUk9UT0NPTF9FUlJPUjsNCit9DQpkaWZmIC0tZ2l0IGEvQ3J5cHRvUGtnL0xpYnJhcnkvVGxz TGliL1Rsc1Byb2Nlc3MuYyBiL0NyeXB0b1BrZy9MaWJyYXJ5L1Rsc0xpYi9UbHNQcm9jZXNzLmMK aW5kZXggMGYyYWQ3YTlmYi4uYTgwM2Q4NmM0ZiAxMDA2NDQKLS0tIGEvQ3J5cHRvUGtnL0xpYnJh cnkvVGxzTGliL1Rsc1Byb2Nlc3MuYworKysgYi9DcnlwdG9Qa2cvTGlicmFyeS9UbHNMaWIvVGxz UHJvY2Vzcy5jCkBAIC00NjEsMyArNDYxLDM1IEBAIFRsc1dyaXRlICgKICAgLy8NCiAgIHJldHVy biBTU0xfd3JpdGUgKFRsc0Nvbm4tPlNzbCwgQnVmZmVyLCAoVUlOVDMyKUJ1ZmZlclNpemUpOw0K IH0NCisNCisvKioNCisgIFNodXRkb3duIGEgVExTIGNvbm5lY3Rpb24uDQorDQorICBTaHV0ZG93 biB0aGUgVExTIGNvbm5lY3Rpb24gd2l0aG91dCByZWxlYXNpbmcgdGhlIHJlc291cmNlcywgbWVh bmluZyBhIG5ldw0KKyAgY29ubmVjdGlvbiBjYW4gYmUgc3RhcnRlZCB3aXRob3V0IGNhbGxpbmcg VGxzTmV3KCkgYW5kIHdpdGhvdXQgc2V0dGluZw0KKyAgY2VydGlmaWNhdGVzIGV0Yy4NCisNCisg IEBwYXJhbVtpbl0gICAgICAgVGxzICAgICAgICAgICAgUG9pbnRlciB0byB0aGUgVExTIG9iamVj dCB0byBzaHV0ZG93bi4NCisNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgVGhl IFRMUyBpcyBzaHV0ZG93biBzdWNjZXNzZnVsbHkuDQorICBAcmV0dmFsIEVGSV9JTlZBTElEX1BB UkFNRVRFUiAgIFRscyBpcyBOVUxMLg0KKyAgQHJldHZhbCBFRklfUFJPVE9DT0xfRVJST1IgICAg ICBTb21lIG90aGVyIGVycm9yIG9jY3VycmVkLg0KKyoqLw0KK0VGSV9TVEFUVVMNCitFRklBUEkN CitUbHNTaHV0ZG93biAoDQorICBJTiAgICAgVk9JRCAgKlRscw0KKyAgKQ0KK3sNCisgIFRMU19D T05ORUNUSU9OICAqVGxzQ29ubjsNCisNCisgIFRsc0Nvbm4gPSAoVExTX0NPTk5FQ1RJT04gKilU bHM7DQorDQorICBpZiAoKFRsc0Nvbm4gPT0gTlVMTCkgfHwgKChUbHNDb25uLT5Tc2wpID09IE5V TEwpKSB7DQorICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQorICB9DQorDQorICBT U0xfc2V0X3F1aWV0X3NodXRkb3duIChUbHNDb25uLT5Tc2wsIDEpOw0KKyAgU1NMX3NodXRkb3du IChUbHNDb25uLT5Tc2wpOw0KKyAgcmV0dXJuIFNTTF9jbGVhciAoVGxzQ29ubi0+U3NsKSA9PSAx ID8gRUZJX1NVQ0NFU1MgOiBFRklfUFJPVE9DT0xfRVJST1I7DQorfQ0KZGlmZiAtLWdpdCBhL0Ny eXB0b1BrZy9MaWJyYXJ5L1Rsc0xpYk51bGwvVGxzQ29uZmlnTnVsbC5jIGIvQ3J5cHRvUGtnL0xp YnJhcnkvVGxzTGliTnVsbC9UbHNDb25maWdOdWxsLmMKaW5kZXggMDM3MjZmZDcyNi4uMThkZDYw NDM4MiAxMDA2NDQKLS0tIGEvQ3J5cHRvUGtnL0xpYnJhcnkvVGxzTGliTnVsbC9UbHNDb25maWdO dWxsLmMKKysrIGIvQ3J5cHRvUGtnL0xpYnJhcnkvVGxzTGliTnVsbC9UbHNDb25maWdOdWxsLmMK QEAgLTI0MiwxMSArMjQyLDQyIEBAIFRsc1NldEhvc3RQdWJsaWNDZXJ0ICgKIC8qKg0KICAgQWRk cyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkgdG8gdGhlIHNwZWNpZmllZCBUTFMgb2JqZWN0Lg0KIA0K LSAgVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSAoUEVNLWVuY29kZWQg UlNBIG9yIFBLQ1MjOCBwcml2YXRlDQorICBUaGlzIGZ1bmN0aW9uIGFkZHMgdGhlIGxvY2FsIHBy aXZhdGUga2V5IChERVItZW5jb2RlZCBvciBQRU0tZW5jb2RlZCBvciBQS0NTIzggcHJpdmF0ZQ0K ICAga2V5KSBpbnRvIHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdCBmb3IgVExTIG5lZ290aWF0aW9u Lg0KIA0KICAgQHBhcmFtW2luXSAgVGxzICAgICAgICAgUG9pbnRlciB0byB0aGUgVExTIG9iamVj dC4NCi0gIEBwYXJhbVtpbl0gIERhdGEgICAgICAgIFBvaW50ZXIgdG8gdGhlIGRhdGEgYnVmZmVy IG9mIGEgUEVNLWVuY29kZWQgUlNBDQorICBAcGFyYW1baW5dICBEYXRhICAgICAgICBQb2ludGVy IHRvIHRoZSBkYXRhIGJ1ZmZlciBvZiBhIERFUi1lbmNvZGVkIG9yIFBFTS1lbmNvZGVkDQorICAg ICAgICAgICAgICAgICAgICAgICAgICBvciBQS0NTIzggcHJpdmF0ZSBrZXkuDQorICBAcGFyYW1b aW5dICBEYXRhU2l6ZSAgICBUaGUgc2l6ZSBvZiBkYXRhIGJ1ZmZlciBpbiBieXRlcy4NCisgIEBw YXJhbVtpbl0gIFBhc3N3b3JkICAgIFBvaW50ZXIgdG8gTlVMTC10ZXJtaW5hdGVkIHByaXZhdGUg a2V5IHBhc3N3b3JkLCBzZXQgaXQgdG8gTlVMTA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgcHJpdmF0ZSBrZXkgbm90IGVuY3J5cHRlZC4NCisNCisgIEByZXR2YWwgIEVGSV9TVUNDRVNT ICAgICBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZC4NCisgIEByZXR2YWwgIEVGSV9VTlNVUFBPUlRF RCBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuDQorICBAcmV0dmFsICBFRklfQUJPUlRF RCAgICAgSW52YWxpZCBwcml2YXRlIGtleSBkYXRhLg0KKw0KKyoqLw0KK0VGSV9TVEFUVVMNCitF RklBUEkNCitUbHNTZXRIb3N0UHJpdmF0ZUtleUV4ICgNCisgIElOICAgICBWT0lEICAgKlRscywN CisgIElOICAgICBWT0lEICAgKkRhdGEsDQorICBJTiAgICAgVUlOVE4gIERhdGFTaXplLA0KKyAg SU4gICAgIFZPSUQgICAqUGFzc3dvcmQgIE9QVElPTkFMDQorICApDQorew0KKyAgQVNTRVJUIChG QUxTRSk7DQorICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KK30NCisNCisvKioNCisgIEFkZHMg dGhlIGxvY2FsIHByaXZhdGUga2V5IHRvIHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdC4NCisNCisg IFRoaXMgZnVuY3Rpb24gYWRkcyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkgKERFUi1lbmNvZGVkIG9y IFBFTS1lbmNvZGVkIG9yIFBLQ1MjOCBwcml2YXRlDQorICBrZXkpIGludG8gdGhlIHNwZWNpZmll ZCBUTFMgb2JqZWN0IGZvciBUTFMgbmVnb3RpYXRpb24uDQorDQorICBAcGFyYW1baW5dICBUbHMg ICAgICAgICBQb2ludGVyIHRvIHRoZSBUTFMgb2JqZWN0Lg0KKyAgQHBhcmFtW2luXSAgRGF0YSAg ICAgICAgUG9pbnRlciB0byB0aGUgZGF0YSBidWZmZXIgb2YgYSBERVItZW5jb2RlZCBvciBQRU0t ZW5jb2RlZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgUEtDUyM4IHByaXZhdGUga2V5 Lg0KICAgQHBhcmFtW2luXSAgRGF0YVNpemUgICAgVGhlIHNpemUgb2YgZGF0YSBidWZmZXIgaW4g Ynl0ZXMuDQogDQpAQCAtMjkyLDYgKzMyMyw2MSBAQCBUbHNTZXRDZXJ0UmV2b2NhdGlvbkxpc3Qg KAogICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KIH0NCiANCisvKioNCisgIFNldCB0aGUgc2ln bmF0dXJlIGFsZ29yaXRobSBsaXN0IHRvIHVzZWQgYnkgdGhlIFRMUyBvYmplY3QuDQorDQorICBU aGlzIGZ1bmN0aW9uIHNldHMgdGhlIHNpZ25hdHVyZSBhbGdvcml0aG1zIGZvciB1c2UgYnkgYSBz cGVjaWZpZWQgVExTIG9iamVjdC4NCisNCisgIEBwYXJhbVtpbl0gIFRscyAgICAgICAgICAgICAg ICBQb2ludGVyIHRvIGEgVExTIG9iamVjdC4NCisgIEBwYXJhbVtpbl0gIERhdGEgICAgICAgICAg ICAgICBBcnJheSBvZiBVSU5UOCBvZiBzaWduYXR1cmUgYWxnb3JpdGhtcy4gVGhlIGFycmF5IGNv bnNpc3RzIG9mDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFpcnMgb2YgdGhl IGhhc2ggYWxnb3JpdGhtIGFuZCB0aGUgc2lnbmF0dXJlIGFsZ29yaXRobSBhcyBkZWZpbmVkDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gUkZDIDUyNDYNCisgIEBwYXJhbVtp bl0gIERhdGFTaXplICAgICAgICAgICBUaGUgbGVuZ3RoIHRoZSBTaWduYXR1cmVBbGdvTGlzdC4g TXVzdCBiZSBkaXZpc2libGUgYnkgMi4NCisNCisgIEByZXR2YWwgIEVGSV9TVUNDRVNTICAgICAg ICAgICBUaGUgc2lnbmF0dXJlIGFsZ29yaXRobSBsaXN0IHdhcyBzZXQgc3VjY2Vzc2Z1bGx5Lg0K KyAgQHJldHZhbCAgRUZJX0lOVkFMSURfUEFSQU1FVEVSIFRoZSBwYXJhbWV0ZXJzIGFyZSBpbnZh bGlkLg0KKyAgQHJldHZhbCAgRUZJX1VOU1VQUE9SVEVEICAgICAgIE5vIHN1cHBvcnRlZCBUTFMg c2lnbmF0dXJlIGFsZ29yaXRobSB3YXMgZm91bmQgaW4gU2lnbmF0dXJlQWxnb0xpc3QNCisgIEBy ZXR2YWwgIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICBNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuDQor DQorKiovDQorRUZJX1NUQVRVUw0KK0VGSUFQSQ0KK1Rsc1NldFNpZ25hdHVyZUFsZ29MaXN0ICgN CisgIElOICAgICBWT0lEICAgKlRscywNCisgIElOICAgICBVSU5UOCAgKkRhdGEsDQorICBJTiAg ICAgVUlOVE4gIERhdGFTaXplDQorICApDQorew0KKyAgQVNTRVJUIChGQUxTRSk7DQorICByZXR1 cm4gRUZJX1VOU1VQUE9SVEVEOw0KK30NCisNCisvKioNCisgIFNldCB0aGUgRUMgY3VydmUgdG8g YmUgdXNlZCBmb3IgVExTIGZsb3dzDQorDQorICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIEVDIGN1 cnZlIHRvIGJlIHVzZWQgZm9yIFRMUyBmbG93cy4NCisNCisgIEBwYXJhbVtpbl0gIFRscyAgICAg ICAgICAgICAgICBQb2ludGVyIHRvIGEgVExTIG9iamVjdC4NCisgIEBwYXJhbVtpbl0gIERhdGEg ICAgICAgICAgICAgICBBbiBFQyBuYW1lZCBjdXJ2ZSBhcyBkZWZpbmVkIGluIHNlY3Rpb24gNS4x LjEgb2YgUkZDIDQ0OTIuDQorICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICAgICAgICAgU2l6ZSBv ZiBEYXRhLCBpdCBzaG91bGQgYmUgc2l6ZW9mIChVSU5UMzIpDQorDQorICBAcmV0dmFsICBFRklf U1VDQ0VTUyAgICAgICAgICAgVGhlIEVDIGN1cnZlIHdhcyBzZXQgc3VjY2Vzc2Z1bGx5Lg0KKyAg QHJldHZhbCAgRUZJX0lOVkFMSURfUEFSQU1FVEVSIFRoZSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlk Lg0KKyAgQHJldHZhbCAgRUZJX1VOU1VQUE9SVEVEICAgICAgIFRoZSByZXF1ZXN0ZWQgVExTIEVD IGN1cnZlIGlzIG5vdCBzdXBwb3J0ZWQNCisNCisqKi8NCitFRklfU1RBVFVTDQorRUZJQVBJDQor VGxzU2V0RWNDdXJ2ZSAoDQorICBJTiAgICAgVk9JRCAgICpUbHMsDQorICBJTiAgICAgVUlOVDgg ICpEYXRhLA0KKyAgSU4gICAgIFVJTlROICBEYXRhU2l6ZQ0KKyAgKQ0KK3sNCisgIEFTU0VSVCAo RkFMU0UpOw0KKyAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCit9DQorDQogLyoqDQogICBHZXRz IHRoZSBwcm90b2NvbCB2ZXJzaW9uIHVzZWQgYnkgdGhlIHNwZWNpZmllZCBUTFMgY29ubmVjdGlv bi4NCiANCkBAIC02MTcsMyArNzAzLDM2IEBAIFRsc0dldENlcnRSZXZvY2F0aW9uTGlzdCAoCiAg IEFTU0VSVCAoRkFMU0UpOw0KICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCiB9DQorDQorLyoq DQorICBEZXJpdmUga2V5aW5nIG1hdGVyaWFsIGZyb20gYSBUTFMgY29ubmVjdGlvbi4NCisNCisg IFRoaXMgZnVuY3Rpb24gZXhwb3J0cyBrZXlpbmcgbWF0ZXJpYWwgdXNpbmcgdGhlIG1lY2hhbmlz bSBkZXNjcmliZWQgaW4gUkZDDQorICA1NzA1Lg0KKw0KKyAgQHBhcmFtW2luXSAgICAgIFRscyAg ICAgICAgICBQb2ludGVyIHRvIHRoZSBUTFMgb2JqZWN0DQorICBAcGFyYW1baW5dICAgICAgTGFi ZWwgICAgICAgIERlc2NyaXB0aW9uIG9mIHRoZSBrZXkgZm9yIHRoZSBQUkYgZnVuY3Rpb24NCisg IEBwYXJhbVtpbl0gICAgICBDb250ZXh0ICAgICAgT3B0aW9uYWwgY29udGV4dA0KKyAgQHBhcmFt W2luXSAgICAgIENvbnRleHRMZW4gICBUaGUgbGVuZ3RoIG9mIHRoZSBjb250ZXh0IHZhbHVlIGlu IGJ5dGVzDQorICBAcGFyYW1bb3V0XSAgICAgS2V5QnVmZmVyICAgIEJ1ZmZlciB0byBob2xkIHRo ZSBvdXRwdXQgb2YgdGhlIFRMUy1QUkYNCisgIEBwYXJhbVtpbl0gICAgICBLZXlCdWZmZXJMZW4g VGhlIGxlbmd0aCBvZiB0aGUgS2V5QnVmZmVyDQorDQorICBAcmV0dmFsICBFRklfU1VDQ0VTUyAg ICAgICAgICAgICBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZC4NCisgIEByZXR2YWwgIEVGSV9JTlZB TElEX1BBUkFNRVRFUiAgIFRoZSBUTFMgb2JqZWN0IGlzIGludmFsaWQuDQorICBAcmV0dmFsICBF RklfUFJPVE9DT0xfRVJST1IgICAgICBTb21lIG90aGVyIGVycm9yIG9jY3VycmVkLg0KKw0KKyoq Lw0KK0VGSV9TVEFUVVMNCitFRklBUEkNCitUbHNHZXRFeHBvcnRLZXkgKA0KKyAgSU4gICAgIFZP SUQgICAgICAgICpUbHMsDQorICBJTiAgICAgQ09OU1QgVk9JRCAgKkxhYmVsLA0KKyAgSU4gICAg IENPTlNUIFZPSUQgICpDb250ZXh0LA0KKyAgSU4gICAgIFVJTlROICAgICAgIENvbnRleHRMZW4s DQorICBPVVQgICAgVk9JRCAgICAgICAgKktleUJ1ZmZlciwNCisgIElOICAgICBVSU5UTiAgICAg ICBLZXlCdWZmZXJMZW4NCisgICkNCit7DQorICBBU1NFUlQgKEZBTFNFKTsNCisgIHJldHVybiBF RklfVU5TVVBQT1JURUQ7DQorfQ0KZGlmZiAtLWdpdCBhL0NyeXB0b1BrZy9MaWJyYXJ5L1Rsc0xp Yk51bGwvVGxzUHJvY2Vzc051bGwuYyBiL0NyeXB0b1BrZy9MaWJyYXJ5L1Rsc0xpYk51bGwvVGxz UHJvY2Vzc051bGwuYwppbmRleCAwOTU4ZGRkOGQ2Li4zOTVkYWM1NDhkIDEwMDY0NAotLS0gYS9D cnlwdG9Qa2cvTGlicmFyeS9UbHNMaWJOdWxsL1Rsc1Byb2Nlc3NOdWxsLmMKKysrIGIvQ3J5cHRv UGtnL0xpYnJhcnkvVGxzTGliTnVsbC9UbHNQcm9jZXNzTnVsbC5jCkBAIC0yNDUsMyArMjQ1LDI2 IEBAIFRsc1dyaXRlICgKICAgQVNTRVJUIChGQUxTRSk7DQogICByZXR1cm4gMDsNCiB9DQorDQor LyoqDQorICBTaHV0ZG93biBhIFRMUyBjb25uZWN0aW9uLg0KKw0KKyAgU2h1dGRvd24gdGhlIFRM UyBjb25uZWN0aW9uIHdpdGhvdXQgcmVsZWFzaW5nIHRoZSByZXNvdXJjZXMsIG1lYW5pbmcgYSBu ZXcNCisgIGNvbm5lY3Rpb24gY2FuIGJlIHN0YXJ0ZWQgd2l0aG91dCBjYWxsaW5nIFRsc05ldygp IGFuZCB3aXRob3V0IHNldHRpbmcNCisgIGNlcnRpZmljYXRlcyBldGMuDQorDQorICBAcGFyYW1b aW5dICAgICAgIFRscyAgICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIFRMUyBvYmplY3QgdG8gc2h1 dGRvd24uDQorDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgIFRoZSBUTFMgaXMg c2h1dGRvd24gc3VjY2Vzc2Z1bGx5Lg0KKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIg ICBUbHMgaXMgTlVMTC4NCisgIEByZXR2YWwgRUZJX1BST1RPQ09MX0VSUk9SICAgICAgU29tZSBv dGhlciBlcnJvciBvY2N1cnJlZC4NCisqKi8NCitFRklfU1RBVFVTDQorRUZJQVBJDQorVGxzU2h1 dGRvd24gKA0KKyAgSU4gICAgIFZPSUQgICpUbHMNCisgICkNCit7DQorICBBU1NFUlQgKEZBTFNF KTsNCisgIHJldHVybiBFRklfVU5TVVBQT1JURUQ7DQorfQ0KLS0gCjIuMzEuMS53aW5kb3dzLjEK Cg== --_004_SJ1PR11MB6227C779EE562C34095BFCC6C5209SJ1PR11MB6227namp_ Content-Type: application/octet-stream; name="0003-CryptoPkg-Add-new-Tls-APIs-to-DXE-and-protocol.patch" Content-Description: 0003-CryptoPkg-Add-new-Tls-APIs-to-DXE-and-protocol.patch Content-Disposition: attachment; filename="0003-CryptoPkg-Add-new-Tls-APIs-to-DXE-and-protocol.patch"; size=22645; creation-date="Mon, 10 Oct 2022 05:37:00 GMT"; modification-date="Mon, 10 Oct 2022 05:38:13 GMT" Content-Transfer-Encoding: base64 RnJvbSAyMzE5ZGJhNzExNTEyN2IyNWFlYjZiYzliM2U2Y2I2YzYyNTZkZTZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpNZXNzYWdlLUlkOiA8MjMxOWRiYTcxMTUxMjdiMjVhZWI2YmM5YjNlNmNi NmM2MjU2ZGU2Zi4xNjY1MzY5MjYyLmdpdC55aTEubGlAaW50ZWwuY29tPgpJbi1SZXBseS1Ubzog PGNvdmVyLjE2NjUzNjkyNjIuZ2l0LnlpMS5saUBpbnRlbC5jb20+ClJlZmVyZW5jZXM6IDxjb3Zl ci4xNjY1MzY5MjYyLmdpdC55aTEubGlAaW50ZWwuY29tPgpGcm9tOiBZaSBMaSA8eWkxLmxpQGlu dGVsLmNvbT4KRGF0ZTogTW9uLCAyNiBTZXAgMjAyMiAwMDoxMzowNSArMDgwMApTdWJqZWN0OiBb UEFUQ0ggVjMgMy8zXSBDcnlwdG9Qa2c6IEFkZCBuZXcgVGxzIEFQSXMgdG8gRFhFIGFuZCBwcm90 b2NvbAoKUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lk PTM4OTIKClRoZSBpbXBsZW1lbnRhdGlvbiBwcm92aWRlcyBuZXcgVGxzIGxpYnJhcnkgZnVuY3Rp b25zCmZvciBDcnlwdG8gRUZJIERyaXZlciBhbmQgUHJvdG9jb2wuCgpDYzogSmlld2VuIFlhbyA8 amlld2VuLnlhb0BpbnRlbC5jb20+CkNjOiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwu Y29tPgpDYzogWGlhb3l1IEx1IDx4aWFveXUxLmx1QGludGVsLmNvbT4KQ2M6IEd1b21pbiBKaWFu ZyA8Z3VvbWluLmppYW5nQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogWWkgTGkgPHlpMS5saUBp bnRlbC5jb20+Ci0tLQogQ3J5cHRvUGtnL0RyaXZlci9DcnlwdG8uYyAgICAgICAgICAgICAgICAg ICAgIHwgMTU1ICsrKysrKysrKysrKysrKysrLQogLi4uL1BjZC9QY2RDcnlwdG9TZXJ2aWNlRmFt aWx5RW5hYmxlLmggICAgICAgIHwgICA1ICsKIC4uLi9CYXNlQ3J5cHRMaWJPblByb3RvY29sUHBp L0NyeXB0TGliLmMgICAgICB8IDE0NiArKysrKysrKysrKysrKysrLQogQ3J5cHRvUGtnL1ByaXZh dGUvUHJvdG9jb2wvQ3J5cHRvLmggICAgICAgICAgIHwgMTM2ICsrKysrKysrKysrKysrLQogNCBm aWxlcyBjaGFuZ2VkLCA0MzUgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9DcnlwdG9Qa2cvRHJpdmVyL0NyeXB0by5jIGIvQ3J5cHRvUGtnL0RyaXZlci9DcnlwdG8u YwppbmRleCA3YTgyNjZhYWJhLi5mMWZmNzc4NTVjIDEwMDY0NAotLS0gYS9DcnlwdG9Qa2cvRHJp dmVyL0NyeXB0by5jCisrKyBiL0NyeXB0b1BrZy9Ecml2ZXIvQ3J5cHRvLmMKQEAgLTQyMzgsNiAr NDIzOCwyOCBAQCBDcnlwdG9TZXJ2aWNlVGxzV3JpdGUgKAogICByZXR1cm4gQ0FMTF9CQVNFQ1JZ UFRMSUIgKFRscy5TZXJ2aWNlcy5Xcml0ZSwgVGxzV3JpdGUsIChUbHMsIEJ1ZmZlciwgQnVmZmVy U2l6ZSksIDApOw0KIH0NCiANCisvKioNCisgIFNodXRkb3duIGEgVExTIGNvbm5lY3Rpb24uDQor DQorICBTaHV0ZG93biB0aGUgVExTIGNvbm5lY3Rpb24gd2l0aG91dCByZWxlYXNpbmcgdGhlIHJl c291cmNlcywgbWVhbmluZyBhIG5ldw0KKyAgY29ubmVjdGlvbiBjYW4gYmUgc3RhcnRlZCB3aXRo b3V0IGNhbGxpbmcgVGxzTmV3KCkgYW5kIHdpdGhvdXQgc2V0dGluZw0KKyAgY2VydGlmaWNhdGVz IGV0Yy4NCisNCisgIEBwYXJhbVtpbl0gICAgICAgVGxzICAgICAgICAgICAgUG9pbnRlciB0byB0 aGUgVExTIG9iamVjdCB0byBzaHV0ZG93bi4NCisNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAg ICAgICAgICAgVGhlIFRMUyBpcyBzaHV0ZG93biBzdWNjZXNzZnVsbHkuDQorICBAcmV0dmFsIEVG SV9JTlZBTElEX1BBUkFNRVRFUiAgIFRscyBpcyBOVUxMLg0KKyAgQHJldHZhbCBFRklfUFJPVE9D T0xfRVJST1IgICAgICBTb21lIG90aGVyIGVycm9yIG9jY3VycmVkLg0KKyoqLw0KK0VGSV9TVEFU VVMNCitFRklBUEkNCitDcnlwdG9TZXJ2aWNlVGxzU2h1dGRvd24gKA0KKyAgSU4gICAgIFZPSUQg ICpUbHMNCisgICkNCit7DQorICByZXR1cm4gQ0FMTF9CQVNFQ1JZUFRMSUIgKFRscy5TZXJ2aWNl cy5TaHV0ZG93biwgVGxzU2h1dGRvd24sIChUbHMpLCBFRklfVU5TVVBQT1JURUQpOw0KK30NCisN CiAvKioNCiAgIFNldCBhIG5ldyBUTFMvU1NMIG1ldGhvZCBmb3IgYSBwYXJ0aWN1bGFyIFRMUyBv YmplY3QuDQogDQpAQCAtNDQ2MywxMSArNDQ4NSw0MSBAQCBDcnlwdG9TZXJ2aWNlVGxzU2V0SG9z dFB1YmxpY0NlcnQgKAogLyoqDQogICBBZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSB0byB0aGUg c3BlY2lmaWVkIFRMUyBvYmplY3QuDQogDQotICBUaGlzIGZ1bmN0aW9uIGFkZHMgdGhlIGxvY2Fs IHByaXZhdGUga2V5IChQRU0tZW5jb2RlZCBSU0Egb3IgUEtDUyM4IHByaXZhdGUNCisgIFRoaXMg ZnVuY3Rpb24gYWRkcyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkgKERFUi1lbmNvZGVkIG9yIFBFTS1l bmNvZGVkIG9yIFBLQ1MjOCBwcml2YXRlDQorICBrZXkpIGludG8gdGhlIHNwZWNpZmllZCBUTFMg b2JqZWN0IGZvciBUTFMgbmVnb3RpYXRpb24uDQorDQorICBAcGFyYW1baW5dICBUbHMgICAgICAg ICBQb2ludGVyIHRvIHRoZSBUTFMgb2JqZWN0Lg0KKyAgQHBhcmFtW2luXSAgRGF0YSAgICAgICAg UG9pbnRlciB0byB0aGUgZGF0YSBidWZmZXIgb2YgYSBERVItZW5jb2RlZCBvciBQRU0tZW5jb2Rl ZA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgUEtDUyM4IHByaXZhdGUga2V5Lg0KKyAg QHBhcmFtW2luXSAgRGF0YVNpemUgICAgVGhlIHNpemUgb2YgZGF0YSBidWZmZXIgaW4gYnl0ZXMu DQorICBAcGFyYW1baW5dICBQYXNzd29yZCAgICBQb2ludGVyIHRvIE5VTEwtdGVybWluYXRlZCBw cml2YXRlIGtleSBwYXNzd29yZCwgc2V0IGl0IHRvIE5VTEwNCisgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIHByaXZhdGUga2V5IG5vdCBlbmNyeXB0ZWQuDQorDQorICBAcmV0dmFsICBFRklf U1VDQ0VTUyAgICAgVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQuDQorICBAcmV0dmFsICBFRklfVU5T VVBQT1JURUQgVGhpcyBmdW5jdGlvbiBpcyBub3Qgc3VwcG9ydGVkLg0KKyAgQHJldHZhbCAgRUZJ X0FCT1JURUQgICAgIEludmFsaWQgcHJpdmF0ZSBrZXkgZGF0YS4NCisNCisqKi8NCitFRklfU1RB VFVTDQorRUZJQVBJDQorQ3J5cHRvU2VydmljZVRsc1NldEhvc3RQcml2YXRlS2V5RXggKA0KKyAg SU4gICAgIFZPSUQgICAqVGxzLA0KKyAgSU4gICAgIFZPSUQgICAqRGF0YSwNCisgIElOICAgICBV SU5UTiAgRGF0YVNpemUsDQorICBJTiAgICAgVk9JRCAgICpQYXNzd29yZCAgT1BUSU9OQUwNCisg ICkNCit7DQorICByZXR1cm4gQ0FMTF9CQVNFQ1JZUFRMSUIgKFRsc1NldC5TZXJ2aWNlcy5Ib3N0 UHJpdmF0ZUtleUV4LCBUbHNTZXRIb3N0UHJpdmF0ZUtleUV4LCAoVGxzLCBEYXRhLCBEYXRhU2l6 ZSwgUGFzc3dvcmQpLCBFRklfVU5TVVBQT1JURUQpOw0KK30NCisNCisvKioNCisgIEFkZHMgdGhl IGxvY2FsIHByaXZhdGUga2V5IHRvIHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdC4NCisNCisgIFRo aXMgZnVuY3Rpb24gYWRkcyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkgKERFUi1lbmNvZGVkIG9yIFBF TS1lbmNvZGVkIG9yIFBLQ1MjOCBwcml2YXRlDQogICBrZXkpIGludG8gdGhlIHNwZWNpZmllZCBU TFMgb2JqZWN0IGZvciBUTFMgbmVnb3RpYXRpb24uDQogDQogICBAcGFyYW1baW5dICBUbHMgICAg ICAgICBQb2ludGVyIHRvIHRoZSBUTFMgb2JqZWN0Lg0KLSAgQHBhcmFtW2luXSAgRGF0YSAgICAg ICAgUG9pbnRlciB0byB0aGUgZGF0YSBidWZmZXIgb2YgYSBQRU0tZW5jb2RlZCBSU0ENCisgIEBw YXJhbVtpbl0gIERhdGEgICAgICAgIFBvaW50ZXIgdG8gdGhlIGRhdGEgYnVmZmVyIG9mIGEgREVS LWVuY29kZWQgb3IgUEVNLWVuY29kZWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIFBL Q1MjOCBwcml2YXRlIGtleS4NCiAgIEBwYXJhbVtpbl0gIERhdGFTaXplICAgIFRoZSBzaXplIG9m IGRhdGEgYnVmZmVyIGluIGJ5dGVzLg0KIA0KQEAgLTQ1MTEsNiArNDU2Myw1OSBAQCBDcnlwdG9T ZXJ2aWNlVGxzU2V0Q2VydFJldm9jYXRpb25MaXN0ICgKICAgcmV0dXJuIENBTExfQkFTRUNSWVBU TElCIChUbHNTZXQuU2VydmljZXMuQ2VydFJldm9jYXRpb25MaXN0LCBUbHNTZXRDZXJ0UmV2b2Nh dGlvbkxpc3QsIChEYXRhLCBEYXRhU2l6ZSksIEVGSV9VTlNVUFBPUlRFRCk7DQogfQ0KIA0KKy8q Kg0KKyAgU2V0IHRoZSBzaWduYXR1cmUgYWxnb3JpdGhtIGxpc3QgdG8gdXNlZCBieSB0aGUgVExT IG9iamVjdC4NCisNCisgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgc2lnbmF0dXJlIGFsZ29yaXRo bXMgZm9yIHVzZSBieSBhIHNwZWNpZmllZCBUTFMgb2JqZWN0Lg0KKw0KKyAgQHBhcmFtW2luXSAg VGxzICAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBUTFMgb2JqZWN0Lg0KKyAgQHBhcmFtW2lu XSAgRGF0YSAgICAgICAgICAgICAgIEFycmF5IG9mIFVJTlQ4IG9mIHNpZ25hdHVyZSBhbGdvcml0 aG1zLiBUaGUgYXJyYXkgY29uc2lzdHMgb2YNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYWlycyBvZiB0aGUgaGFzaCBhbGdvcml0aG0gYW5kIHRoZSBzaWduYXR1cmUgYWxnb3Jp dGhtIGFzIGRlZmluZWQNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBSRkMg NTI0Ng0KKyAgQHBhcmFtW2luXSAgRGF0YVNpemUgICAgICAgICAgIFRoZSBsZW5ndGggdGhlIFNp Z25hdHVyZUFsZ29MaXN0LiBNdXN0IGJlIGRpdmlzaWJsZSBieSAyLg0KKw0KKyAgQHJldHZhbCAg RUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBzaWduYXR1cmUgYWxnb3JpdGhtIGxpc3Qgd2FzIHNl dCBzdWNjZXNzZnVsbHkuDQorICBAcmV0dmFsICBFRklfSU5WQUxJRF9QQVJBTUVURVIgVGhlIHBh cmFtZXRlcnMgYXJlIGludmFsaWQuDQorICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQgICAgICAg Tm8gc3VwcG9ydGVkIFRMUyBzaWduYXR1cmUgYWxnb3JpdGhtIHdhcyBmb3VuZCBpbiBTaWduYXR1 cmVBbGdvTGlzdA0KKyAgQHJldHZhbCAgRUZJX09VVF9PRl9SRVNPVVJDRVMgIE1lbW9yeSBhbGxv Y2F0aW9uIGZhaWxlZC4NCisNCisqKi8NCitFRklfU1RBVFVTDQorRUZJQVBJDQorQ3J5cHRvU2Vy dmljZVRsc1NldFNpZ25hdHVyZUFsZ29MaXN0ICgNCisgIElOICAgICBWT0lEICAgKlRscywNCisg IElOICAgICBVSU5UOCAgKkRhdGEsDQorICBJTiAgICAgVUlOVE4gIERhdGFTaXplDQorICApDQor ew0KKyAgcmV0dXJuIENBTExfQkFTRUNSWVBUTElCIChUbHNTZXQuU2VydmljZXMuU2lnbmF0dXJl QWxnb0xpc3QsIFRsc1NldFNpZ25hdHVyZUFsZ29MaXN0LCAoVGxzLCBEYXRhLCBEYXRhU2l6ZSks IEVGSV9VTlNVUFBPUlRFRCk7DQorfQ0KKw0KKy8qKg0KKyAgU2V0IHRoZSBFQyBjdXJ2ZSB0byBi ZSB1c2VkIGZvciBUTFMgZmxvd3MNCisNCisgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgRUMgY3Vy dmUgdG8gYmUgdXNlZCBmb3IgVExTIGZsb3dzLg0KKw0KKyAgQHBhcmFtW2luXSAgVGxzICAgICAg ICAgICAgICAgIFBvaW50ZXIgdG8gYSBUTFMgb2JqZWN0Lg0KKyAgQHBhcmFtW2luXSAgRGF0YSAg ICAgICAgICAgICAgIEFuIEVDIG5hbWVkIGN1cnZlIGFzIGRlZmluZWQgaW4gc2VjdGlvbiA1LjEu MSBvZiBSRkMgNDQ5Mi4NCisgIEBwYXJhbVtpbl0gIERhdGFTaXplICAgICAgICAgICBTaXplIG9m IERhdGEsIGl0IHNob3VsZCBiZSBzaXplb2YgKFVJTlQzMikNCisNCisgIEByZXR2YWwgIEVGSV9T VUNDRVNTICAgICAgICAgICBUaGUgRUMgY3VydmUgd2FzIHNldCBzdWNjZXNzZnVsbHkuDQorICBA cmV0dmFsICBFRklfSU5WQUxJRF9QQVJBTUVURVIgVGhlIHBhcmFtZXRlcnMgYXJlIGludmFsaWQu DQorICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQgICAgICAgVGhlIHJlcXVlc3RlZCBUTFMgRUMg Y3VydmUgaXMgbm90IHN1cHBvcnRlZA0KKw0KKyoqLw0KK0VGSV9TVEFUVVMNCitFRklBUEkNCitD cnlwdG9TZXJ2aWNlVGxzU2V0RWNDdXJ2ZSAoDQorICBJTiAgICAgVk9JRCAgICpUbHMsDQorICBJ TiAgICAgVUlOVDggICpEYXRhLA0KKyAgSU4gICAgIFVJTlROICBEYXRhU2l6ZQ0KKyAgKQ0KK3sN CisgIHJldHVybiBDQUxMX0JBU0VDUllQVExJQiAoVGxzU2V0LlNlcnZpY2VzLkVjQ3VydmUsIFRs c1NldEVjQ3VydmUsIChUbHMsIERhdGEsIERhdGFTaXplKSwgRUZJX1VOU1VQUE9SVEVEKTsNCit9 DQorDQogLyoqDQogICBHZXRzIHRoZSBwcm90b2NvbCB2ZXJzaW9uIHVzZWQgYnkgdGhlIHNwZWNp ZmllZCBUTFMgY29ubmVjdGlvbi4NCiANCkBAIC00ODI2LDYgKzQ5MzEsNDQgQEAgQ3J5cHRvU2Vy dmljZVRsc0dldENlcnRSZXZvY2F0aW9uTGlzdCAoCiAgIHJldHVybiBDQUxMX0JBU0VDUllQVExJ QiAoVGxzR2V0LlNlcnZpY2VzLkNlcnRSZXZvY2F0aW9uTGlzdCwgVGxzR2V0Q2VydFJldm9jYXRp b25MaXN0LCAoRGF0YSwgRGF0YVNpemUpLCBFRklfVU5TVVBQT1JURUQpOw0KIH0NCiANCisvKioN CisgIERlcml2ZSBrZXlpbmcgbWF0ZXJpYWwgZnJvbSBhIFRMUyBjb25uZWN0aW9uLg0KKw0KKyAg VGhpcyBmdW5jdGlvbiBleHBvcnRzIGtleWluZyBtYXRlcmlhbCB1c2luZyB0aGUgbWVjaGFuaXNt IGRlc2NyaWJlZCBpbiBSRkMNCisgIDU3MDUuDQorDQorICBAcGFyYW1baW5dICAgICAgVGxzICAg ICAgICAgIFBvaW50ZXIgdG8gdGhlIFRMUyBvYmplY3QNCisgIEBwYXJhbVtpbl0gICAgICBMYWJl bCAgICAgICAgRGVzY3JpcHRpb24gb2YgdGhlIGtleSBmb3IgdGhlIFBSRiBmdW5jdGlvbg0KKyAg QHBhcmFtW2luXSAgICAgIENvbnRleHQgICAgICBPcHRpb25hbCBjb250ZXh0DQorICBAcGFyYW1b aW5dICAgICAgQ29udGV4dExlbiAgIFRoZSBsZW5ndGggb2YgdGhlIGNvbnRleHQgdmFsdWUgaW4g Ynl0ZXMNCisgIEBwYXJhbVtvdXRdICAgICBLZXlCdWZmZXIgICAgQnVmZmVyIHRvIGhvbGQgdGhl IG91dHB1dCBvZiB0aGUgVExTLVBSRg0KKyAgQHBhcmFtW2luXSAgICAgIEtleUJ1ZmZlckxlbiBU aGUgbGVuZ3RoIG9mIHRoZSBLZXlCdWZmZXINCisNCisgIEByZXR2YWwgIEVGSV9TVUNDRVNTICAg ICAgICAgICAgIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkLg0KKyAgQHJldHZhbCAgRUZJX0lOVkFM SURfUEFSQU1FVEVSICAgVGhlIFRMUyBvYmplY3QgaXMgaW52YWxpZC4NCisgIEByZXR2YWwgIEVG SV9QUk9UT0NPTF9FUlJPUiAgICAgIFNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuDQorDQorKiov DQorRUZJX1NUQVRVUw0KK0VGSUFQSQ0KK0NyeXB0b1NlcnZpY2VUbHNHZXRFeHBvcnRLZXkgKA0K KyAgSU4gICAgIFZPSUQgICAgICAgICpUbHMsDQorICBJTiAgICAgQ09OU1QgVk9JRCAgKkxhYmVs LA0KKyAgSU4gICAgIENPTlNUIFZPSUQgICpDb250ZXh0LA0KKyAgSU4gICAgIFVJTlROICAgICAg IENvbnRleHRMZW4sDQorICBPVVQgICAgVk9JRCAgICAgICAgKktleUJ1ZmZlciwNCisgIElOICAg ICBVSU5UTiAgICAgICBLZXlCdWZmZXJMZW4NCisgICkNCit7DQorICByZXR1cm4gQ0FMTF9CQVNF Q1JZUFRMSUIgKA0KKyAgICAgICAgICAgVGxzR2V0LlNlcnZpY2VzLkV4cG9ydEtleSwNCisgICAg ICAgICAgIFRsc0dldEV4cG9ydEtleSwNCisgICAgICAgICAgIChUbHMsIExhYmVsLCBDb250ZXh0 LCBDb250ZXh0TGVuLA0KKyAgICAgICAgICAgIEtleUJ1ZmZlciwgS2V5QnVmZmVyTGVuKSwNCisg ICAgICAgICAgIEVGSV9VTlNVUFBPUlRFRA0KKyAgICAgICAgICAgKTsNCit9DQorDQogLyoqDQog ICBDYXJyaWVzIG91dCB0aGUgUlNBLVNTQSBzaWduYXR1cmUgZ2VuZXJhdGlvbiB3aXRoIEVNU0Et UFNTIGVuY29kaW5nIHNjaGVtZS4NCiANCkBAIC02MjY2LDQgKzY0MDksMTIgQEAgY29uc3QgRURL SUlfQ1JZUFRPX1BST1RPQ09MICBtRWRraWlDcnlwdG8gPSB7CiAgIENyeXB0b1NlcnZpY2VFY0dl bmVyYXRlS2V5LA0KICAgQ3J5cHRvU2VydmljZUVjR2V0UHViS2V5LA0KICAgQ3J5cHRvU2Vydmlj ZUVjRGhDb21wdXRlS2V5LA0KKyAgLy8vIFRMUyAoY29udGludWVkKQ0KKyAgQ3J5cHRvU2Vydmlj ZVRsc1NodXRkb3duLA0KKyAgLy8vIFRMUyBTZXQgKGNvbnRpbnVlZCkNCisgIENyeXB0b1NlcnZp Y2VUbHNTZXRIb3N0UHJpdmF0ZUtleUV4LA0KKyAgQ3J5cHRvU2VydmljZVRsc1NldFNpZ25hdHVy ZUFsZ29MaXN0LA0KKyAgQ3J5cHRvU2VydmljZVRsc1NldEVjQ3VydmUsDQorICAvLy8gVExTIEdl dCAoY29udGludWVkKQ0KKyAgQ3J5cHRvU2VydmljZVRsc0dldEV4cG9ydEtleQ0KIH07DQpkaWZm IC0tZ2l0IGEvQ3J5cHRvUGtnL0luY2x1ZGUvUGNkL1BjZENyeXB0b1NlcnZpY2VGYW1pbHlFbmFi bGUuaCBiL0NyeXB0b1BrZy9JbmNsdWRlL1BjZC9QY2RDcnlwdG9TZXJ2aWNlRmFtaWx5RW5hYmxl LmgKaW5kZXggNDViYWZjMjE2MS4uNDc0MDU4OTQxNyAxMDA2NDQKLS0tIGEvQ3J5cHRvUGtnL0lu Y2x1ZGUvUGNkL1BjZENyeXB0b1NlcnZpY2VGYW1pbHlFbmFibGUuaAorKysgYi9DcnlwdG9Qa2cv SW5jbHVkZS9QY2QvUGNkQ3J5cHRvU2VydmljZUZhbWlseUVuYWJsZS5oCkBAIC0yNjksNiArMjY5 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgVUlOVDggICAgQ3RybFRyYWZmaWNJbiAgOiAx Ow0KICAgICAgIFVJTlQ4ICAgIFJlYWQgICAgICAgICAgIDogMTsNCiAgICAgICBVSU5UOCAgICBX cml0ZSAgICAgICAgICA6IDE7DQorICAgICAgVUlOVDggICAgU2h1dGRvd24gICAgICAgOiAxOw0K ICAgICB9IFNlcnZpY2VzOw0KICAgICBVSU5UMzIgICAgRmFtaWx5Ow0KICAgfSBUbHM7DQpAQCAt Mjg1LDYgKzI4Niw5IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgIFVJTlQ4ICAgIEhvc3RQdWJs aWNDZXJ0ICAgICA6IDE7DQogICAgICAgVUlOVDggICAgSG9zdFByaXZhdGVLZXkgICAgIDogMTsN CiAgICAgICBVSU5UOCAgICBDZXJ0UmV2b2NhdGlvbkxpc3QgOiAxOw0KKyAgICAgIFVJTlQ4ICAg IEhvc3RQcml2YXRlS2V5RXggICA6IDE7DQorICAgICAgVUlOVDggICAgU2lnbmF0dXJlQWxnb0xp c3QgIDogMTsNCisgICAgICBVSU5UOCAgICBFY0N1cnZlICAgICAgICAgICAgOiAxOw0KICAgICB9 IFNlcnZpY2VzOw0KICAgICBVSU5UMzIgICAgRmFtaWx5Ow0KICAgfSBUbHNTZXQ7DQpAQCAtMzAz LDYgKzMwNyw3IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgIFVJTlQ4ICAgIEhvc3RQdWJsaWND ZXJ0ICAgICAgIDogMTsNCiAgICAgICBVSU5UOCAgICBIb3N0UHJpdmF0ZUtleSAgICAgICA6IDE7 DQogICAgICAgVUlOVDggICAgQ2VydFJldm9jYXRpb25MaXN0ICAgOiAxOw0KKyAgICAgIFVJTlQ4 ICAgIEV4cG9ydEtleSAgICAgICAgICAgIDogMTsNCiAgICAgfSBTZXJ2aWNlczsNCiAgICAgVUlO VDMyICAgIEZhbWlseTsNCiAgIH0gVGxzR2V0Ow0KZGlmZiAtLWdpdCBhL0NyeXB0b1BrZy9MaWJy YXJ5L0Jhc2VDcnlwdExpYk9uUHJvdG9jb2xQcGkvQ3J5cHRMaWIuYyBiL0NyeXB0b1BrZy9MaWJy YXJ5L0Jhc2VDcnlwdExpYk9uUHJvdG9jb2xQcGkvQ3J5cHRMaWIuYwppbmRleCA3OTFlMmVmNTk5 Li41MmI5MzRhNTQ1IDEwMDY0NAotLS0gYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWJP blByb3RvY29sUHBpL0NyeXB0TGliLmMKKysrIGIvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0 TGliT25Qcm90b2NvbFBwaS9DcnlwdExpYi5jCkBAIC0zNDc0LDYgKzM0NzQsMjggQEAgVGxzV3Jp dGUgKAogICBDQUxMX0NSWVBUT19TRVJWSUNFIChUbHNXcml0ZSwgKFRscywgQnVmZmVyLCBCdWZm ZXJTaXplKSwgMCk7DQogfQ0KIA0KKy8qKg0KKyAgU2h1dGRvd24gYSBUTFMgY29ubmVjdGlvbi4N CisNCisgIFNodXRkb3duIHRoZSBUTFMgY29ubmVjdGlvbiB3aXRob3V0IHJlbGVhc2luZyB0aGUg cmVzb3VyY2VzLCBtZWFuaW5nIGEgbmV3DQorICBjb25uZWN0aW9uIGNhbiBiZSBzdGFydGVkIHdp dGhvdXQgY2FsbGluZyBUbHNOZXcoKSBhbmQgd2l0aG91dCBzZXR0aW5nDQorICBjZXJ0aWZpY2F0 ZXMgZXRjLg0KKw0KKyAgQHBhcmFtW2luXSAgICAgICBUbHMgICAgICAgICAgICBQb2ludGVyIHRv IHRoZSBUTFMgb2JqZWN0IHRvIHNodXRkb3duLg0KKw0KKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAg ICAgICAgICAgICBUaGUgVExTIGlzIHNodXRkb3duIHN1Y2Nlc3NmdWxseS4NCisgIEByZXR2YWwg RUZJX0lOVkFMSURfUEFSQU1FVEVSICAgVGxzIGlzIE5VTEwuDQorICBAcmV0dmFsIEVGSV9QUk9U T0NPTF9FUlJPUiAgICAgIFNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuDQorKiovDQorRUZJX1NU QVRVUw0KK0VGSUFQSQ0KK1Rsc1NodXRkb3duICgNCisgIElOICAgICBWT0lEICAqVGxzDQorICAp DQorew0KKyAgQ0FMTF9DUllQVE9fU0VSVklDRSAoVGxzU2h1dGRvd24sIChUbHMpLCBFRklfVU5T VVBQT1JURUQpOw0KK30NCisNCiAvKioNCiAgIFNldCBhIG5ldyBUTFMvU1NMIG1ldGhvZCBmb3Ig YSBwYXJ0aWN1bGFyIFRMUyBvYmplY3QuDQogDQpAQCAtMzY5OSwxMSArMzcyMSw0MSBAQCBUbHNT ZXRIb3N0UHVibGljQ2VydCAoCiAvKioNCiAgIEFkZHMgdGhlIGxvY2FsIHByaXZhdGUga2V5IHRv IHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdC4NCiANCi0gIFRoaXMgZnVuY3Rpb24gYWRkcyB0aGUg bG9jYWwgcHJpdmF0ZSBrZXkgKFBFTS1lbmNvZGVkIFJTQSBvciBQS0NTIzggcHJpdmF0ZQ0KKyAg VGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSAoREVSLWVuY29kZWQgb3Ig UEVNLWVuY29kZWQgb3IgUEtDUyM4IHByaXZhdGUNCiAgIGtleSkgaW50byB0aGUgc3BlY2lmaWVk IFRMUyBvYmplY3QgZm9yIFRMUyBuZWdvdGlhdGlvbi4NCiANCiAgIEBwYXJhbVtpbl0gIFRscyAg ICAgICAgIFBvaW50ZXIgdG8gdGhlIFRMUyBvYmplY3QuDQotICBAcGFyYW1baW5dICBEYXRhICAg ICAgICBQb2ludGVyIHRvIHRoZSBkYXRhIGJ1ZmZlciBvZiBhIFBFTS1lbmNvZGVkIFJTQQ0KKyAg QHBhcmFtW2luXSAgRGF0YSAgICAgICAgUG9pbnRlciB0byB0aGUgZGF0YSBidWZmZXIgb2YgYSBE RVItZW5jb2RlZCBvciBQRU0tZW5jb2RlZA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3Ig UEtDUyM4IHByaXZhdGUga2V5Lg0KKyAgQHBhcmFtW2luXSAgRGF0YVNpemUgICAgVGhlIHNpemUg b2YgZGF0YSBidWZmZXIgaW4gYnl0ZXMuDQorICBAcGFyYW1baW5dICBQYXNzd29yZCAgICBQb2lu dGVyIHRvIE5VTEwtdGVybWluYXRlZCBwcml2YXRlIGtleSBwYXNzd29yZCwgc2V0IGl0IHRvIE5V TEwNCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHByaXZhdGUga2V5IG5vdCBlbmNyeXB0 ZWQuDQorDQorICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAgVGhlIG9wZXJhdGlvbiBzdWNjZWVk ZWQuDQorICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQgVGhpcyBmdW5jdGlvbiBpcyBub3Qgc3Vw cG9ydGVkLg0KKyAgQHJldHZhbCAgRUZJX0FCT1JURUQgICAgIEludmFsaWQgcHJpdmF0ZSBrZXkg ZGF0YS4NCisNCisqKi8NCitFRklfU1RBVFVTDQorRUZJQVBJDQorVGxzU2V0SG9zdFByaXZhdGVL ZXlFeCAoDQorICBJTiAgICAgVk9JRCAgICpUbHMsDQorICBJTiAgICAgVk9JRCAgICpEYXRhLA0K KyAgSU4gICAgIFVJTlROICBEYXRhU2l6ZSwNCisgIElOICAgICBWT0lEICAgKlBhc3N3b3JkICBP UFRJT05BTA0KKyAgKQ0KK3sNCisgIENBTExfQ1JZUFRPX1NFUlZJQ0UgKFRsc1NldEhvc3RQcml2 YXRlS2V5RXgsIChUbHMsIERhdGEsIERhdGFTaXplLCBQYXNzd29yZCksIEVGSV9VTlNVUFBPUlRF RCk7DQorfQ0KKw0KKy8qKg0KKyAgQWRkcyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkgdG8gdGhlIHNw ZWNpZmllZCBUTFMgb2JqZWN0Lg0KKw0KKyAgVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsb2NhbCBw cml2YXRlIGtleSAoREVSLWVuY29kZWQgb3IgUEVNLWVuY29kZWQgb3IgUEtDUyM4IHByaXZhdGUN CisgIGtleSkgaW50byB0aGUgc3BlY2lmaWVkIFRMUyBvYmplY3QgZm9yIFRMUyBuZWdvdGlhdGlv bi4NCisNCisgIEBwYXJhbVtpbl0gIFRscyAgICAgICAgIFBvaW50ZXIgdG8gdGhlIFRMUyBvYmpl Y3QuDQorICBAcGFyYW1baW5dICBEYXRhICAgICAgICBQb2ludGVyIHRvIHRoZSBkYXRhIGJ1ZmZl ciBvZiBhIERFUi1lbmNvZGVkIG9yIFBFTS1lbmNvZGVkDQogICAgICAgICAgICAgICAgICAgICAg ICAgICBvciBQS0NTIzggcHJpdmF0ZSBrZXkuDQogICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICBU aGUgc2l6ZSBvZiBkYXRhIGJ1ZmZlciBpbiBieXRlcy4NCiANCkBAIC0zNzQ3LDYgKzM3OTksNTkg QEAgVGxzU2V0Q2VydFJldm9jYXRpb25MaXN0ICgKICAgQ0FMTF9DUllQVE9fU0VSVklDRSAoVGxz U2V0Q2VydFJldm9jYXRpb25MaXN0LCAoRGF0YSwgRGF0YVNpemUpLCBFRklfVU5TVVBQT1JURUQp Ow0KIH0NCiANCisvKioNCisgIFNldCB0aGUgc2lnbmF0dXJlIGFsZ29yaXRobSBsaXN0IHRvIHVz ZWQgYnkgdGhlIFRMUyBvYmplY3QuDQorDQorICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIHNpZ25h dHVyZSBhbGdvcml0aG1zIGZvciB1c2UgYnkgYSBzcGVjaWZpZWQgVExTIG9iamVjdC4NCisNCisg IEBwYXJhbVtpbl0gIFRscyAgICAgICAgICAgICAgICBQb2ludGVyIHRvIGEgVExTIG9iamVjdC4N CisgIEBwYXJhbVtpbl0gIERhdGEgICAgICAgICAgICAgICBBcnJheSBvZiBVSU5UOCBvZiBzaWdu YXR1cmUgYWxnb3JpdGhtcy4gVGhlIGFycmF5IGNvbnNpc3RzIG9mDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGFpcnMgb2YgdGhlIGhhc2ggYWxnb3JpdGhtIGFuZCB0aGUgc2ln bmF0dXJlIGFsZ29yaXRobSBhcyBkZWZpbmVkDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW4gUkZDIDUyNDYNCisgIEBwYXJhbVtpbl0gIERhdGFTaXplICAgICAgICAgICBUaGUg bGVuZ3RoIHRoZSBTaWduYXR1cmVBbGdvTGlzdC4gTXVzdCBiZSBkaXZpc2libGUgYnkgMi4NCisN CisgIEByZXR2YWwgIEVGSV9TVUNDRVNTICAgICAgICAgICBUaGUgc2lnbmF0dXJlIGFsZ29yaXRo bSBsaXN0IHdhcyBzZXQgc3VjY2Vzc2Z1bGx5Lg0KKyAgQHJldHZhbCAgRUZJX0lOVkFMSURfUEFS QU1FVEVSIFRoZSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkLg0KKyAgQHJldHZhbCAgRUZJX1VOU1VQ UE9SVEVEICAgICAgIE5vIHN1cHBvcnRlZCBUTFMgc2lnbmF0dXJlIGFsZ29yaXRobSB3YXMgZm91 bmQgaW4gU2lnbmF0dXJlQWxnb0xpc3QNCisgIEByZXR2YWwgIEVGSV9PVVRfT0ZfUkVTT1VSQ0VT ICBNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuDQorDQorKiovDQorRUZJX1NUQVRVUw0KK0VGSUFQ SQ0KK1Rsc1NldFNpZ25hdHVyZUFsZ29MaXN0ICgNCisgIElOICAgICBWT0lEICAgKlRscywNCisg IElOICAgICBVSU5UOCAgKkRhdGEsDQorICBJTiAgICAgVUlOVE4gIERhdGFTaXplDQorICApDQor ew0KKyAgQ0FMTF9DUllQVE9fU0VSVklDRSAoVGxzU2V0U2lnbmF0dXJlQWxnb0xpc3QsIChUbHMs IERhdGEsIERhdGFTaXplKSwgRUZJX1VOU1VQUE9SVEVEKTsNCit9DQorDQorLyoqDQorICBTZXQg dGhlIEVDIGN1cnZlIHRvIGJlIHVzZWQgZm9yIFRMUyBmbG93cw0KKw0KKyAgVGhpcyBmdW5jdGlv biBzZXRzIHRoZSBFQyBjdXJ2ZSB0byBiZSB1c2VkIGZvciBUTFMgZmxvd3MuDQorDQorICBAcGFy YW1baW5dICBUbHMgICAgICAgICAgICAgICAgUG9pbnRlciB0byBhIFRMUyBvYmplY3QuDQorICBA cGFyYW1baW5dICBEYXRhICAgICAgICAgICAgICAgQW4gRUMgbmFtZWQgY3VydmUgYXMgZGVmaW5l ZCBpbiBzZWN0aW9uIDUuMS4xIG9mIFJGQyA0NDkyLg0KKyAgQHBhcmFtW2luXSAgRGF0YVNpemUg ICAgICAgICAgIFNpemUgb2YgRGF0YSwgaXQgc2hvdWxkIGJlIHNpemVvZiAoVUlOVDMyKQ0KKw0K KyAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBFQyBjdXJ2ZSB3YXMgc2V0IHN1 Y2Nlc3NmdWxseS4NCisgIEByZXR2YWwgIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBUaGUgcGFyYW1l dGVycyBhcmUgaW52YWxpZC4NCisgIEByZXR2YWwgIEVGSV9VTlNVUFBPUlRFRCAgICAgICBUaGUg cmVxdWVzdGVkIFRMUyBFQyBjdXJ2ZSBpcyBub3Qgc3VwcG9ydGVkDQorDQorKiovDQorRUZJX1NU QVRVUw0KK0VGSUFQSQ0KK1Rsc1NldEVjQ3VydmUgKA0KKyAgSU4gICAgIFZPSUQgICAqVGxzLA0K KyAgSU4gICAgIFVJTlQ4ICAqRGF0YSwNCisgIElOICAgICBVSU5UTiAgRGF0YVNpemUNCisgICkN Cit7DQorICBDQUxMX0NSWVBUT19TRVJWSUNFIChUbHNTZXRTaWduYXR1cmVBbGdvTGlzdCwgKFRs cywgRGF0YSwgRGF0YVNpemUpLCBFRklfVU5TVVBQT1JURUQpOw0KK30NCisNCiAvKioNCiAgIEdl dHMgdGhlIHByb3RvY29sIHZlcnNpb24gdXNlZCBieSB0aGUgc3BlY2lmaWVkIFRMUyBjb25uZWN0 aW9uLg0KIA0KQEAgLTQwNjIsNiArNDE2Nyw0MyBAQCBUbHNHZXRDZXJ0UmV2b2NhdGlvbkxpc3Qg KAogICBDQUxMX0NSWVBUT19TRVJWSUNFIChUbHNHZXRDZXJ0UmV2b2NhdGlvbkxpc3QsIChEYXRh LCBEYXRhU2l6ZSksIEVGSV9VTlNVUFBPUlRFRCk7DQogfQ0KIA0KKy8qKg0KKyAgRGVyaXZlIGtl eWluZyBtYXRlcmlhbCBmcm9tIGEgVExTIGNvbm5lY3Rpb24uDQorDQorICBUaGlzIGZ1bmN0aW9u IGV4cG9ydHMga2V5aW5nIG1hdGVyaWFsIHVzaW5nIHRoZSBtZWNoYW5pc20gZGVzY3JpYmVkIGlu IFJGQw0KKyAgNTcwNS4NCisNCisgIEBwYXJhbVtpbl0gICAgICBUbHMgICAgICAgICAgUG9pbnRl ciB0byB0aGUgVExTIG9iamVjdA0KKyAgQHBhcmFtW2luXSAgICAgIExhYmVsICAgICAgICBEZXNj cmlwdGlvbiBvZiB0aGUga2V5IGZvciB0aGUgUFJGIGZ1bmN0aW9uDQorICBAcGFyYW1baW5dICAg ICAgQ29udGV4dCAgICAgIE9wdGlvbmFsIGNvbnRleHQNCisgIEBwYXJhbVtpbl0gICAgICBDb250 ZXh0TGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgY29udGV4dCB2YWx1ZSBpbiBieXRlcw0KKyAgQHBh cmFtW291dF0gICAgIEtleUJ1ZmZlciAgICBCdWZmZXIgdG8gaG9sZCB0aGUgb3V0cHV0IG9mIHRo ZSBUTFMtUFJGDQorICBAcGFyYW1baW5dICAgICAgS2V5QnVmZmVyTGVuIFRoZSBsZW5ndGggb2Yg dGhlIEtleUJ1ZmZlcg0KKw0KKyAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgVGhl IG9wZXJhdGlvbiBzdWNjZWVkZWQuDQorICBAcmV0dmFsICBFRklfSU5WQUxJRF9QQVJBTUVURVIg ICBUaGUgVExTIG9iamVjdCBpcyBpbnZhbGlkLg0KKyAgQHJldHZhbCAgRUZJX1BST1RPQ09MX0VS Uk9SICAgICAgU29tZSBvdGhlciBlcnJvciBvY2N1cnJlZC4NCisNCisqKi8NCitFRklfU1RBVFVT DQorRUZJQVBJDQorVGxzR2V0RXhwb3J0S2V5ICgNCisgIElOICAgICBWT0lEICAgICAgICAqVGxz LA0KKyAgSU4gICAgIENPTlNUIFZPSUQgICpMYWJlbCwNCisgIElOICAgICBDT05TVCBWT0lEICAq Q29udGV4dCwNCisgIElOICAgICBVSU5UTiAgICAgICBDb250ZXh0TGVuLA0KKyAgT1VUICAgIFZP SUQgICAgICAgICpLZXlCdWZmZXIsDQorICBJTiAgICAgVUlOVE4gICAgICAgS2V5QnVmZmVyTGVu DQorICApDQorew0KKyAgQ0FMTF9DUllQVE9fU0VSVklDRSAoDQorICAgIFRsc0dldEV4cG9ydEtl eSwNCisgICAgKFRscywgTGFiZWwsIENvbnRleHQsIENvbnRleHRMZW4sDQorICAgICBLZXlCdWZm ZXIsIEtleUJ1ZmZlckxlbiksDQorICAgIEVGSV9VTlNVUFBPUlRFRA0KKyAgICApOw0KK30NCisN CiAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogLy8gICAgQmlnIG51bWJlciBwcmlt aXRpdmUNCiAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpkaWZmIC0tZ2l0IGEvQ3J5 cHRvUGtnL1ByaXZhdGUvUHJvdG9jb2wvQ3J5cHRvLmggYi9DcnlwdG9Qa2cvUHJpdmF0ZS9Qcm90 b2NvbC9DcnlwdG8uaAppbmRleCAyZjI2N2M3ZjU1Li42MjkzZWZhMzZiIDEwMDY0NAotLS0gYS9D cnlwdG9Qa2cvUHJpdmF0ZS9Qcm90b2NvbC9DcnlwdG8uaAorKysgYi9DcnlwdG9Qa2cvUHJpdmF0 ZS9Qcm90b2NvbC9DcnlwdG8uaApAQCAtMjEsNyArMjEsNyBAQAogLy8vIHRoZSBFREsgSUkgQ3J5 cHRvIFByb3RvY29sIGlzIGV4dGVuZGVkLCB0aGlzIHZlcnNpb24gZGVmaW5lIG11c3QgYmUNCiAv Ly8gaW5jcmVhc2VkLg0KIC8vLw0KLSNkZWZpbmUgRURLSUlfQ1JZUFRPX1ZFUlNJT04gIDEzDQor I2RlZmluZSBFREtJSV9DUllQVE9fVkVSU0lPTiAgMTQNCiANCiAvLy8NCiAvLy8gRURLIElJIENy eXB0byBQcm90b2NvbCBmb3J3YXJkIGRlY2xhcmF0aW9uDQpAQCAtMzE4Niw2ICszMTg2LDI1IEBA IElOVE4KICAgSU4gICAgIFVJTlROICAgICAgICAgICAgICAgICAgICBCdWZmZXJTaXplDQogICAp Ow0KIA0KKy8qKg0KKyAgU2h1dGRvd24gYSBUTFMgY29ubmVjdGlvbi4NCisNCisgIFNodXRkb3du IHRoZSBUTFMgY29ubmVjdGlvbiB3aXRob3V0IHJlbGVhc2luZyB0aGUgcmVzb3VyY2VzLCBtZWFu aW5nIGEgbmV3DQorICBjb25uZWN0aW9uIGNhbiBiZSBzdGFydGVkIHdpdGhvdXQgY2FsbGluZyBU bHNOZXcoKSBhbmQgd2l0aG91dCBzZXR0aW5nDQorICBjZXJ0aWZpY2F0ZXMgZXRjLg0KKw0KKyAg QHBhcmFtW2luXSAgICAgICBUbHMgICAgICAgICAgICBQb2ludGVyIHRvIHRoZSBUTFMgb2JqZWN0 IHRvIHNodXRkb3duLg0KKw0KKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgICBUaGUg VExTIGlzIHNodXRkb3duIHN1Y2Nlc3NmdWxseS4NCisgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFS QU1FVEVSICAgVGxzIGlzIE5VTEwuDQorICBAcmV0dmFsIEVGSV9QUk9UT0NPTF9FUlJPUiAgICAg IFNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuDQorKiovDQordHlwZWRlZg0KK0VGSV9TVEFUVVMN CisoRUZJQVBJICpFREtJSV9DUllQVE9fVExTX1NIVVRET1dOKSgNCisgIElOICAgICBWT0lEICAg ICAgICAgICAgICAgICAgICAgKlRscw0KKyAgKTsNCisNCiAvKioNCiAgIFNldCBhIG5ldyBUTFMv U1NMIG1ldGhvZCBmb3IgYSBwYXJ0aWN1bGFyIFRMUyBvYmplY3QuDQogDQpAQCAtMzM4NCwxMSAr MzQwMywzOCBAQCBFRklfU1RBVFVTCiAvKioNCiAgIEFkZHMgdGhlIGxvY2FsIHByaXZhdGUga2V5 IHRvIHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdC4NCiANCi0gIFRoaXMgZnVuY3Rpb24gYWRkcyB0 aGUgbG9jYWwgcHJpdmF0ZSBrZXkgKFBFTS1lbmNvZGVkIFJTQSBvciBQS0NTIzggcHJpdmF0ZQ0K KyAgVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSAoREVSLWVuY29kZWQg b3IgUEVNLWVuY29kZWQgb3IgUEtDUyM4IHByaXZhdGUNCisgIGtleSkgaW50byB0aGUgc3BlY2lm aWVkIFRMUyBvYmplY3QgZm9yIFRMUyBuZWdvdGlhdGlvbi4NCisNCisgIEBwYXJhbVtpbl0gIFRs cyAgICAgICAgIFBvaW50ZXIgdG8gdGhlIFRMUyBvYmplY3QuDQorICBAcGFyYW1baW5dICBEYXRh ICAgICAgICBQb2ludGVyIHRvIHRoZSBkYXRhIGJ1ZmZlciBvZiBhIERFUi1lbmNvZGVkIG9yIFBF TS1lbmNvZGVkDQorICAgICAgICAgICAgICAgICAgICAgICAgICBvciBQS0NTIzggcHJpdmF0ZSBr ZXkuDQorICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICBUaGUgc2l6ZSBvZiBkYXRhIGJ1ZmZlciBp biBieXRlcy4NCisgIEBwYXJhbVtpbl0gIFBhc3N3b3JkICAgIFBvaW50ZXIgdG8gTlVMTC10ZXJt aW5hdGVkIHByaXZhdGUga2V5IHBhc3N3b3JkLCBzZXQgaXQgdG8gTlVMTA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgcHJpdmF0ZSBrZXkgbm90IGVuY3J5cHRlZC4NCisNCisgIEByZXR2 YWwgIEVGSV9TVUNDRVNTICAgICBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZC4NCisgIEByZXR2YWwg IEVGSV9VTlNVUFBPUlRFRCBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuDQorICBAcmV0 dmFsICBFRklfQUJPUlRFRCAgICAgSW52YWxpZCBwcml2YXRlIGtleSBkYXRhLg0KKw0KKyoqLw0K K3R5cGVkZWYNCitFRklfU1RBVFVTDQorKEVGSUFQSSAqRURLSUlfQ1JZUFRPX1RMU19TRVRfSE9T VF9QUklWQVRFX0tFWV9FWCkoDQorICBJTiAgICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICpU bHMsDQorICBJTiAgICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICpEYXRhLA0KKyAgSU4gICAg IFVJTlROICAgICAgICAgICAgICAgICAgICBEYXRhU2l6ZSwNCisgIElOICAgICBWT0lEICAgICAg ICAgICAgICAgICAgICAgKlBhc3N3b3JkICBPUFRJT05BTA0KKyAgKTsNCisNCisvKioNCisgIEFk ZHMgdGhlIGxvY2FsIHByaXZhdGUga2V5IHRvIHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdC4NCisN CisgIFRoaXMgZnVuY3Rpb24gYWRkcyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkgKERFUi1lbmNvZGVk IG9yIFBFTS1lbmNvZGVkIG9yIFBLQ1MjOCBwcml2YXRlDQogICBrZXkpIGludG8gdGhlIHNwZWNp ZmllZCBUTFMgb2JqZWN0IGZvciBUTFMgbmVnb3RpYXRpb24uDQogDQogICBAcGFyYW1baW5dICBU bHMgICAgICAgICBQb2ludGVyIHRvIHRoZSBUTFMgb2JqZWN0Lg0KLSAgQHBhcmFtW2luXSAgRGF0 YSAgICAgICAgUG9pbnRlciB0byB0aGUgZGF0YSBidWZmZXIgb2YgYSBQRU0tZW5jb2RlZCBSU0EN CisgIEBwYXJhbVtpbl0gIERhdGEgICAgICAgIFBvaW50ZXIgdG8gdGhlIGRhdGEgYnVmZmVyIG9m IGEgREVSLWVuY29kZWQgb3IgUEVNLWVuY29kZWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAg IG9yIFBLQ1MjOCBwcml2YXRlIGtleS4NCiAgIEBwYXJhbVtpbl0gIERhdGFTaXplICAgIFRoZSBz aXplIG9mIGRhdGEgYnVmZmVyIGluIGJ5dGVzLg0KIA0KQEAgLTM2ODAsNiArMzcyNiw4MiBAQCBF RklfU1RBVFVTCiAgIElOIE9VVCBVSU5UTiAgICAgICAgICAgICAgICAgICAgKkRhdGFTaXplDQog ICApOw0KIA0KKy8qKg0KKyAgU2V0IHRoZSBzaWduYXR1cmUgYWxnb3JpdGhtIGxpc3QgdG8gdXNl ZCBieSB0aGUgVExTIG9iamVjdC4NCisNCisgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgc2lnbmF0 dXJlIGFsZ29yaXRobXMgZm9yIHVzZSBieSBhIHNwZWNpZmllZCBUTFMgb2JqZWN0Lg0KKw0KKyAg QHBhcmFtW2luXSAgVGxzICAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBUTFMgb2JqZWN0Lg0K KyAgQHBhcmFtW2luXSAgRGF0YSAgICAgICAgICAgICAgIEFycmF5IG9mIFVJTlQ4IG9mIHNpZ25h dHVyZSBhbGdvcml0aG1zLiBUaGUgYXJyYXkgY29uc2lzdHMgb2YNCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwYWlycyBvZiB0aGUgaGFzaCBhbGdvcml0aG0gYW5kIHRoZSBzaWdu YXR1cmUgYWxnb3JpdGhtIGFzIGRlZmluZWQNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbiBSRkMgNTI0Ng0KKyAgQHBhcmFtW2luXSAgRGF0YVNpemUgICAgICAgICAgIFRoZSBs ZW5ndGggdGhlIFNpZ25hdHVyZUFsZ29MaXN0LiBNdXN0IGJlIGRpdmlzaWJsZSBieSAyLg0KKw0K KyAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBzaWduYXR1cmUgYWxnb3JpdGht IGxpc3Qgd2FzIHNldCBzdWNjZXNzZnVsbHkuDQorICBAcmV0dmFsICBFRklfSU5WQUxJRF9QQVJB TUVURVIgVGhlIHBhcmFtZXRlcnMgYXJlIGludmFsaWQuDQorICBAcmV0dmFsICBFRklfVU5TVVBQ T1JURUQgICAgICAgTm8gc3VwcG9ydGVkIFRMUyBzaWduYXR1cmUgYWxnb3JpdGhtIHdhcyBmb3Vu ZCBpbiBTaWduYXR1cmVBbGdvTGlzdA0KKyAgQHJldHZhbCAgRUZJX09VVF9PRl9SRVNPVVJDRVMg IE1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4NCisNCisqKi8NCit0eXBlZGVmDQorRUZJX1NUQVRV Uw0KKyhFRklBUEkgKkVES0lJX0NSWVBUT19UTFNfU0VUX1NJR05BVFVSRV9BTEdPX0xJU1QpKA0K KyAgSU4gICAgIFZPSUQgICAqVGxzLA0KKyAgSU4gICAgIFVJTlQ4ICAqRGF0YSwNCisgIElOICAg ICBVSU5UTiAgRGF0YVNpemUNCisgICk7DQorDQorLyoqDQorICBTZXQgdGhlIEVDIGN1cnZlIHRv IGJlIHVzZWQgZm9yIFRMUyBmbG93cw0KKw0KKyAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBFQyBj dXJ2ZSB0byBiZSB1c2VkIGZvciBUTFMgZmxvd3MuDQorDQorICBAcGFyYW1baW5dICBUbHMgICAg ICAgICAgICAgICAgUG9pbnRlciB0byBhIFRMUyBvYmplY3QuDQorICBAcGFyYW1baW5dICBEYXRh ICAgICAgICAgICAgICAgQW4gRUMgbmFtZWQgY3VydmUgYXMgZGVmaW5lZCBpbiBzZWN0aW9uIDUu MS4xIG9mIFJGQyA0NDkyLg0KKyAgQHBhcmFtW2luXSAgRGF0YVNpemUgICAgICAgICAgIFNpemUg b2YgRGF0YSwgaXQgc2hvdWxkIGJlIHNpemVvZiAoVUlOVDMyKQ0KKw0KKyAgQHJldHZhbCAgRUZJ X1NVQ0NFU1MgICAgICAgICAgIFRoZSBFQyBjdXJ2ZSB3YXMgc2V0IHN1Y2Nlc3NmdWxseS4NCisg IEByZXR2YWwgIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBUaGUgcGFyYW1ldGVycyBhcmUgaW52YWxp ZC4NCisgIEByZXR2YWwgIEVGSV9VTlNVUFBPUlRFRCAgICAgICBUaGUgcmVxdWVzdGVkIFRMUyBF QyBjdXJ2ZSBpcyBub3Qgc3VwcG9ydGVkDQorDQorKiovDQordHlwZWRlZg0KK0VGSV9TVEFUVVMN CisoRUZJQVBJICpFREtJSV9DUllQVE9fVExTX1NFVF9FQ19DVVJWRSkoDQorICBJTiAgICAgVk9J RCAgICpUbHMsDQorICBJTiAgICAgVUlOVDggICpEYXRhLA0KKyAgSU4gICAgIFVJTlROICBEYXRh U2l6ZQ0KKyAgKTsNCisNCisvKioNCisgIERlcml2ZSBrZXlpbmcgbWF0ZXJpYWwgZnJvbSBhIFRM UyBjb25uZWN0aW9uLg0KKw0KKyAgVGhpcyBmdW5jdGlvbiBleHBvcnRzIGtleWluZyBtYXRlcmlh bCB1c2luZyB0aGUgbWVjaGFuaXNtIGRlc2NyaWJlZCBpbiBSRkMNCisgIDU3MDUuDQorDQorICBA cGFyYW1baW5dICAgICAgVGxzICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIFRMUyBvYmplY3QNCisg IEBwYXJhbVtpbl0gICAgICBMYWJlbCAgICAgICAgRGVzY3JpcHRpb24gb2YgdGhlIGtleSBmb3Ig dGhlIFBSRiBmdW5jdGlvbg0KKyAgQHBhcmFtW2luXSAgICAgIENvbnRleHQgICAgICBPcHRpb25h bCBjb250ZXh0DQorICBAcGFyYW1baW5dICAgICAgQ29udGV4dExlbiAgIFRoZSBsZW5ndGggb2Yg dGhlIGNvbnRleHQgdmFsdWUgaW4gYnl0ZXMNCisgIEBwYXJhbVtvdXRdICAgICBLZXlCdWZmZXIg ICAgQnVmZmVyIHRvIGhvbGQgdGhlIG91dHB1dCBvZiB0aGUgVExTLVBSRg0KKyAgQHBhcmFtW2lu XSAgICAgIEtleUJ1ZmZlckxlbiBUaGUgbGVuZ3RoIG9mIHRoZSBLZXlCdWZmZXINCisNCisgIEBy ZXR2YWwgIEVGSV9TVUNDRVNTICAgICAgICAgICAgIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkLg0K KyAgQHJldHZhbCAgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgVGhlIFRMUyBvYmplY3QgaXMgaW52 YWxpZC4NCisgIEByZXR2YWwgIEVGSV9QUk9UT0NPTF9FUlJPUiAgICAgIFNvbWUgb3RoZXIgZXJy b3Igb2NjdXJyZWQuDQorDQorKiovDQordHlwZWRlZg0KK0VGSV9TVEFUVVMNCisoRUZJQVBJICpF REtJSV9DUllQVE9fVExTX0dFVF9FWFBPUlRfS0VZKSgNCisgIElOICAgICBWT0lEICAgICAgICAg ICAgICAgICAgICAgKlRscywNCisgIElOICAgICBDT05TVCBWT0lEICAgICAgICAgICAgICAqTGFi ZWwsDQorICBJTiAgICAgQ09OU1QgVk9JRCAgICAgICAgICAgICAgICpDb250ZXh0LA0KKyAgSU4g ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICBDb250ZXh0TGVuLA0KKyAgT1VUICAgIFZPSUQg ICAgICAgICAgICAgICAgICAgICAqS2V5QnVmZmVyLA0KKyAgSU4gICAgIFVJTlROICAgICAgICAg ICAgICAgICAgICBLZXlCdWZmZXJMZW4NCisgICk7DQorDQogLyoqDQogICBHZXRzIHRoZSBDQS1z dXBwbGllZCBjZXJ0aWZpY2F0ZSByZXZvY2F0aW9uIGxpc3QgZGF0YSBzZXQgaW4gdGhlIHNwZWNp ZmllZA0KICAgVExTIG9iamVjdC4NCkBAIC00OTU0LDYgKzUwNzYsMTQgQEAgc3RydWN0IF9FREtJ SV9DUllQVE9fUFJPVE9DT0wgewogICBFREtJSV9DUllQVE9fRUNfR0VORVJBVEVfS0VZICAgICAg ICAgICAgICAgICAgICAgICAgRWNHZW5lcmF0ZUtleTsNCiAgIEVES0lJX0NSWVBUT19FQ19HRVRf UFVCX0tFWSAgICAgICAgICAgICAgICAgICAgICAgICBFY0dldFB1YktleTsNCiAgIEVES0lJX0NS WVBUT19FQ19ESF9DT01QVVRFX0tFWSAgICAgICAgICAgICAgICAgICAgICBFY0RoQ29tcHV0ZUtl eTsNCisgIC8vLyBUTFMgKGNvbnRpbnVlZCkNCisgIEVES0lJX0NSWVBUT19UTFNfU0hVVERPV04g ICAgICAgICAgICAgICAgICAgICAgICAgICBUbHNTaHV0ZG93bjsNCisgIC8vLyBUTFMgU2V0IChj b250aW51ZWQpDQorICBFREtJSV9DUllQVE9fVExTX1NFVF9IT1NUX1BSSVZBVEVfS0VZX0VYICAg ICAgICAgICAgVGxzU2V0SG9zdFByaXZhdGVLZXlFeDsNCisgIEVES0lJX0NSWVBUT19UTFNfU0VU X1NJR05BVFVSRV9BTEdPX0xJU1QgICAgICAgICAgICBUbHNTZXRTaWduYXR1cmVBbGdvTGlzdDsN CisgIEVES0lJX0NSWVBUT19UTFNfU0VUX0VDX0NVUlZFICAgICAgICAgICAgICAgICAgICAgICBU bHNTZXRFY0N1cnZlOw0KKyAgLy8vIFRMUyBHZXQgKGNvbnRpbnVlZCkNCisgIEVES0lJX0NSWVBU T19UTFNfR0VUX0VYUE9SVF9LRVkgICAgICAgICAgICAgICAgICAgICBUbHNHZXRFeHBvcnRLZXk7 DQogfTsNCiANCiBleHRlcm4gR1VJRCAgZ0Vka2lpQ3J5cHRvUHJvdG9jb2xHdWlkOw0KLS0gCjIu MzEuMS53aW5kb3dzLjEKCg== --_004_SJ1PR11MB6227C779EE562C34095BFCC6C5209SJ1PR11MB6227namp_--