From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.3419.1685581636975563280 for ; Wed, 31 May 2023 18:07:17 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=NU0DfIBd; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: ray.ni@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685581637; x=1717117637; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=VYTiLOjNah8zkT/v1xsF6wx/TuweHox0v1Ddbunj4RQ=; b=NU0DfIBdwfVkDZLftjvu/EgTt0ije9KSLk5uyskfqmYxhupww7hxzf5D vnc6XiWvQLxByVqE3NbWWGem+xM71cGGi5pJ9+fdzh6MXyhE3wj2xVUP9 shZmh5kj5GNdwtLT79IOl/7nN95CA8X97aY5+Jgt/UpcHhv2st/uiT2ho tYP0e3kLUhjlhu0wGG8Exw4ARamNUPe9D4Ivv1zfMiO4XOZhKSjFlT+jF FVwh723tvY0604wijFFNnhcTlT70qcOqrl7oAO5tjKr34+LTKOYAdWaba +q0iGjxGkROU3vVqz3JKCROrLZZIiQTX3JbQoWKnpIHHXtA1YoiSFCXzT Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10727"; a="357810552" X-IronPort-AV: E=Sophos;i="6.00,207,1681196400"; d="scan'208";a="357810552" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2023 18:07:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10727"; a="684628298" X-IronPort-AV: E=Sophos;i="6.00,207,1681196400"; d="scan'208";a="684628298" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga006.jf.intel.com with ESMTP; 31 May 2023 18:07:15 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.2507.23; Wed, 31 May 2023 18:07:15 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 31 May 2023 18:07:15 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.174) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 31 May 2023 18:07:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XO+rV/to2N4/XL2OaGyDZpn4Ee37uGryTG5R4CoKTpUzAYK52J/AvJlSjt9QoJV+CAbidUZOAj9con5dc9dIJhnCyV697HRCBQucoEk3JWab40NYDgkIs7iY+rh3tol5Nx0FmAJqcEyAEDYSalECHiwyFHzrymWlPoFht3dpvKwRLuj4wFbgOoYy/1JXc0vpmP3Ryw5rXaSpj53Dbk5VEzEK6lxqegiMu+6zVT6OuUFnhcyitt4G4Pi1mJ9IJ/5jOxKd3/IUGmEIfdUPPjsI647H283fvEy+qVKJoru/LE32NdnR66yNZ1AhphE8YRRa9599AjpVQuDa6AfsaHcFKw== 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=VYTiLOjNah8zkT/v1xsF6wx/TuweHox0v1Ddbunj4RQ=; b=Pxh6d4sPUAAi7EOHZ3OZUrA7OeW0Zo8Rx0P3jhhnXlm2BNDLrOG2HE9DwCKJ0XLzpuUvyad3w6xR6EoX8NTSJCh9aHeYGFWGWB8wz0ScIOWnz5DWKoJx648ew1VcqBvhHkY26R6h4g5quCbZbrxM1mMp7ljuwVedsiA2D2hkbgEOZMRIHBNNKveAYGqYdg31u5m//4R5AILTMSu/wTsn0PEZGh4DQx3fEZ3m9NPCRDsDrEZSYKQEcTXPrWd/0NlNd6nmPs6X7Kh2wZxv5t5YMeAwo3l4YY2Tw9ua/r2vSzDsk4SkkN1PoDYY3Gi21VZsEyrTL9os3XMXs50qME5ARg== 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 MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by SA3PR11MB7525.namprd11.prod.outlook.com (2603:10b6:806:31a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.22; Thu, 1 Jun 2023 01:07:07 +0000 Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d%5]) with mapi id 15.20.6433.018; Thu, 1 Jun 2023 01:07:07 +0000 From: "Ni, Ray" To: "Yao, Jiewen" , "devel@edk2.groups.io" , "Wu, Jiaxin" , "Li, Zhihao" , "Gao, Liming" , "kraxel@redhat.com" CC: "Wang, Jian J" Subject: Re: [edk2-devel] [PATCH v1 1/1] MdeModulePkg/VariableSmm.c: add Ap rendezvous check before SmmSetVariable. Thread-Topic: [edk2-devel] [PATCH v1 1/1] MdeModulePkg/VariableSmm.c: add Ap rendezvous check before SmmSetVariable. Thread-Index: AQHZiimDNz6Q94TsZ0Wigv44U77oNq91NUWAgAAA5YCAAAAdAA== Date: Thu, 1 Jun 2023 01:07:07 +0000 Message-ID: References: <20230510105653.635-1-zhihao.li@intel.com> <05b701d9896c$5df57160$19e05420$@byosoft.com.cn> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: 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: MN6PR11MB8244:EE_|SA3PR11MB7525:EE_ x-ms-office365-filtering-correlation-id: 126fd118-670a-49ef-7a5d-08db623c84f1 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: MgjRnCw5oKCrvOOykev5o+kuxunPaipp9TUoWB97RV5m1OedC6e/RF9zlcV8biqK2A9fyARML2Oa/79iOWSfsS+0e6Zy76U50CyODvK5S9uPK9Xm0iNdcySh1TAJZAb6TUw6FHSFZwHnE3QOeFHgmPGJEnNn3lUXgb+Pg00TqcyFdWf+F6UTRY9ZLmjEktK3IT/azBBuVa7CwA6bYGrHMJgT8Vn/yYg4zYvyaMfayC1KxPnSnx3bF9dC8e0DEjjo8xXC3Qc6zUHCDSTvnCQrn/xctrvtm3rYTX5DlNiY7iRr7ULIsguN6YpF7HXE+Pf+eEh8t5eRvyXt/+cBj0Tzp5KF6wQlklj+YtFAXdxHAduYRcqMUPCbBBLjvlWbBTKp+q3M3s7arRoODxHkWTROjwg4vqSR9C3XqoQmQJDAH5ihTzsDKmfqUasm4ybTY7NrUd+L+kMEzhpb15KIBb2pD2ajvuldkD/MEqHJphrlPxK/pZ4w15A0UHugVl3C+7+UHFDI3VaGD/01XimaqISdxS7sl9X0b01YbQXQd3382Ug404JMBz5ozMbjfvaWHKxlWQLVF9bqv+Rl2fxPROcAYfqVRbqBcRM/oTrUkhEqlm6hCzn1h1TRayqKbxL+TjAAlxKcaJYYg7c3mt3m5TkVbGNeyJWoaKbKNF5y9rMlJi4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN6PR11MB8244.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(136003)(366004)(396003)(376002)(39860400002)(451199021)(110136005)(8676002)(8936002)(66556008)(76116006)(2906002)(4326008)(66946007)(64756008)(66476007)(66446008)(316002)(66899021)(45080400002)(41300700001)(5660300002)(52536014)(478600001)(966005)(71200400001)(7696005)(107886003)(33656002)(122000001)(6506007)(53546011)(9686003)(186003)(55016003)(26005)(921005)(83380400001)(86362001)(82960400001)(38070700005)(38100700002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZVhSbTFwV2s3Rmh2eDgybTdzZkdNalZaMFozQjQ3U3pQVmVpNm5LRytHYWkw?= =?utf-8?B?Z0xhelk0YUNuNVJwWXJXOVpIMXg5SjV5cnRHZmxxaVlkRnIxKzd0c3N0blFQ?= =?utf-8?B?VTlaS1U4ZzdFRmRnWFE5VlVtUGE0bUdLRXBlVWl4REhwT3A0c0M3YUJUN3pz?= =?utf-8?B?YmlKZXZaMitCM0JGMW1EdVZqTzlyMk12UU40dmlsMnpiUisyWi9kWk5lME5T?= =?utf-8?B?dlVkQzcrK3Y5emtnZ1hCZkFydGg1NjJvMENQVk9yZERWYmFmYzZFZ0VOZTdK?= =?utf-8?B?V0pSWjJHY3Eybk12WmF1dVNrbTZOMVlkeTlQMS9qZ2tmaXVDWjNmeEZwdWFm?= =?utf-8?B?bytBZFF3eE1sTWFpaDVsWEFhZlBua05zSnByUnZtU1V0d0hoY2pFdFVxYTFE?= =?utf-8?B?SVNxUjQrR24vVndXbGpNa0NYZEkxNDZGbEtSaXQ3RGhYRDJoZjhpR1FQU04w?= =?utf-8?B?SEltandIcE5sdFNZazhHRVo5YUpqSXVLVHJhOGtBOXFtdG4zdno0cFluOHox?= =?utf-8?B?eGhCK2FwV1BjQUd3a0NTdXBQRHAvWGdFNXdrOGoxdkE0TnpiVDYrdHVleFNH?= =?utf-8?B?T1FIMTdVOFVZTkRlM2c3My9JNjRvaHFwSVRzcDdvVWp6SGZRaVVEVXYrSXln?= =?utf-8?B?a2RLZTJaeHN6WmVnV1lqeXNaTjhHeDlybmFsNW1nTVRqczRZOGdLaGx6TTZN?= =?utf-8?B?eGhHazlJZ0hUTG1oaDMwL3VqSFdqQ2ZyMEZHMXI4b1ZXK0lMMXZ3UW1IN0JO?= =?utf-8?B?OE5nZndaOU90SXY1WkpWL0doTTlkRFhSNFl4cWQrQVpKZDdXc1U5SVhkR0hV?= =?utf-8?B?UE1kQjNQemJZUHdFMW9UM1ord2tVK3YzcU81TUE4OXcvS0RIdjNYWjRsOXFU?= =?utf-8?B?ZEcvVk9TenFVRFNlWUQxeHFvVWhSRjZXTHdJYmhySndrR1lPT0s0YnFuTGMz?= =?utf-8?B?dFBlWExEcG1WYjI0YUVaSGNOb3REOC9uS01IWS8ybkl6MXhvc1o5c2tPKzg0?= =?utf-8?B?WFdJR2lIVTNUdWZ1Tks3VllxdEoyd2lqNG1uaklzbkZzbWdBTGFHU2Fmc3Vl?= =?utf-8?B?b1RMaFpEcVFnL0ppa0tacHZyR0lmcjkzSnEvcGlOcWZyM3BuK3AwaXYxNEU4?= =?utf-8?B?OVV3N2VzdU1QMTZ2dTI2Z0VzMkthR01xVlpmc2RsN0wyVTV5bmN0cElvaGhw?= =?utf-8?B?Ym9uUjhjMjhkanNuN29nUU9sNmYzTzNoK2pkNGtwUXJNbXZwZUg4dnpZSkdq?= =?utf-8?B?aTBqcHJoYzJXTXd6TlZTMkhDYmlzRlRFVTVUWlltbThnYWNzOVNBZmV3WGlQ?= =?utf-8?B?SUVUcklTYkFEUTk5VHM5anF6TDg4T3N0cFA4cDFnbzJ1Wm9SUjhkRG5MMG5m?= =?utf-8?B?OThROHRabVk2U0V2N0R3UEh2ZU5qbU1CbFVqVHpPcXp6R2lBdG5RNkc3Z2Fi?= =?utf-8?B?RmtROTNQbnZPY1pqZ2gvcEc1eDBueDdTNFVRcjQ1QU83TXVHWVVoREp6empx?= =?utf-8?B?bUNmeDVIbGd5SS9waWI3Z0dSR3RVY2g0emZYV0YrMnJTb0hkKzNGaktsME8x?= =?utf-8?B?QXBNWjNZKzIzWG1EMCtVZ1hlS1NRNStEcng2SGRDQkxDVzJtbzZHWmk1QlFv?= =?utf-8?B?TE9iVVlPL0cvR1FxRzVQZlF4N0dsVjR5UW5vNFNZZ1ZqZ0REY1ExVnhaNVJQ?= =?utf-8?B?UEx5OUExMk9uQVdka3hRbyt3UllVemd0TEM4R2t1UzFNWTlndlpweDJ3NDJu?= =?utf-8?B?UVZTcnkyNWlNZ3d1OVY3RFZtUzdoaGJRTUxXVDlZbTBhclBWV2dpMmVZQ20z?= =?utf-8?B?a05JSUsySnBvdVloRytKMXlrakZLVFRzV0JSTEtGbWZjQ1ZpaUpKdVZWNFVI?= =?utf-8?B?enB2L1E3NHJLQ3lmQmM5OWlhdUFXeFIzVG1NQVBUUlBmR3NNTFNCMTR3UmFs?= =?utf-8?B?NGQ3bkpZNkovOWl5T1htSFdVMW82akJMd2RLWndPK0hNTFBPSExzdzY1c3pS?= =?utf-8?B?WlJhMFI1SEFWdWxsYi9TV2w2T2llL0dSbjBEYXczRGNUZ1BvOU5rSEtOSU1N?= =?utf-8?B?TVltK081ZFRiUHpqTWlJOUlUNWlETjIya2U3enBvbzE4SEdPYndMYldCS0dQ?= =?utf-8?Q?k4ws=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 126fd118-670a-49ef-7a5d-08db623c84f1 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jun 2023 01:07:07.0579 (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: 30elaJxWN5WtJzQrXjvBVF6EdId4fFl0A1swp8XUFWq9XZFSDWaablEqtS3BXBj2FsEjeBSnCtIf5Aid/9djhQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR11MB7525 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Smlld2VuLA0KR29vZCBzdWdnZXN0aW9u8J+Yii4NClRoaXMgYWxzbyByZXNvbHZlJ3MgSmlheGlu J3MgY29tbWVudHMgdGhhdCBjaGVjayBpZiB0aGUgdmFyaWFibGUgaXMgbm9uLXZvbGF0aWxlLg0K DQpUaGFua3MsDQpSYXkNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBZ YW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKdW5l IDEsIDIwMjMgOTowNiBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IFd1LCBKaWF4aW4g PGppYXhpbi53dUBpbnRlbC5jb20+OyBMaSwgWmhpaGFvDQo+IDx6aGloYW8ubGlAaW50ZWwuY29t PjsgR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IE5pLCBSYXkNCj4gPHJh eS5uaUBpbnRlbC5jb20+OyBrcmF4ZWxAcmVkaGF0LmNvbQ0KPiBDYzogV2FuZywgSmlhbiBKIDxq aWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENI IHYxIDEvMV0gTWRlTW9kdWxlUGtnL1ZhcmlhYmxlU21tLmM6DQo+IGFkZCBBcCByZW5kZXp2b3Vz IGNoZWNrIGJlZm9yZSBTbW1TZXRWYXJpYWJsZS4NCj4gDQo+IERpc2FibGluZyBmbGFzaCBpcyBh IHNpbGljb24gYmVoYXZpb3IuDQo+IA0KPiBDYW4gd2UgZG8gU21tV2FpdEZvckFsbFByb2Nlc3Nv cigpIGluIEZWQiBkcml2ZXIsIG9yIFNQSSBkcml2ZXIgPw0KPiANCj4gVGhhbmsgeW91DQo+IFlh bywgSmlld2VuDQo+IA0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJl aGFsZiBPZiBXdSwNCj4gSmlheGluDQo+ID4gU2VudDogVGh1cnNkYXksIEp1bmUgMSwgMjAyMyA5 OjAzIEFNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBMaSwgWmhpaGFvIDx6aGloYW8u bGlAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNu PjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47DQo+IGtyYXhlbEByZWRoYXQuY29tDQo+ID4g Q2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJl OiBbZWRrMi1kZXZlbF0gW1BBVENIIHYxIDEvMV0gTWRlTW9kdWxlUGtnL1ZhcmlhYmxlU21tLmM6 DQo+IGFkZA0KPiA+IEFwIHJlbmRlenZvdXMgY2hlY2sgYmVmb3JlIFNtbVNldFZhcmlhYmxlLg0K PiA+DQo+ID4gSGkgQWxsLA0KPiA+DQo+ID4gSSB0aGluayB3ZSBuZWVkIHRoaXMgcGF0Y2g6DQo+ ID4NCj4gPiBUaGVyZSBpcyBhIHJlcXVpcmVtZW50IHRoYXQgYWxsIENQVSB0aHJlYWRzIG11c3Qg aW4gU01NIGZvciBOb24tVm9sYXRpbGUNCj4gPiB2YXJpYWJsZS4gQmVjYXVzZSB0aGUgU01NIHdp bGwgZGlzYWJsZXMgdGhlIGZsYXNoIHByb3RlY3Rpb24uIEJlZm9yZSB0aGF0LCB3ZQ0KPiA+IG11 c3QgZ3VhcmFudGVlIGFsbCBDUFUgdGhyZWFkcyBhcmUgaW4gU01NIHRvIGF2b2lkIHRoZSBub24t c21tIG1vZGUNCj4gY3B1cw0KPiA+IG1vZGlmeSB0aGUgZmxhc2guDQo+ID4NCj4gPg0KPiA+IFpo aWhhbywNCj4gPg0KPiA+IEkgdGhpbmsgdGhpcyBpcyBvbmx5IG5lZWRlZCBmb3IgdGhlIE5vbi1W b2xhdGlsZSwgSSBzdWdnZXN0IGFzIGJlbG93IGNoZWNrOg0KPiA+DQo+ID4gICAgICAgaWYgKChB dHRyaWJ1dGVzICYgRUZJX1ZBUklBQkxFX05PTl9WT0xBVElMRSkgIT0gMCkgew0KPiA+ICAgICAg ICAgaWYgKEVGSV9FUlJPUiAoU21tV2FpdEZvckFsbFByb2Nlc3NvciAoVFJVRSkpKSB7DQo+ID4g ICAgICAgICAgIERFQlVHICgoREVCVUdfRVJST1IsICIgU21tVmFyaWFibGVTZXRWYXJpYWJsZTog RmFpbCB0byB3YWl0IGZvciBhbGwNCj4gQVANCj4gPiBjaGVjayBpbiBTTU0hXG4iKSk7DQo+ID4g ICAgICAgICAgIFN0YXR1cyA9IEVGSV9BQk9SVEVEOw0KPiA+ICAgICAgICAgICBnb3RvIEVYSVQ7 DQo+ID4gICAgICAgICB9DQo+ID4gICAgICAgfQ0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IEppYXhp bg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogZGV2 ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTGks DQo+ID4gPiBaaGloYW8NCj4gPiA+IFNlbnQ6IEZyaWRheSwgTWF5IDE5LCAyMDIzIDQ6MTEgUE0N Cj4gPiA+IFRvOiBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgZGV2ZWxA ZWRrMi5ncm91cHMuaW87IE5pLA0KPiA+ID4gUmF5IDxyYXkubmlAaW50ZWwuY29tPjsga3JheGVs QHJlZGhhdC5jb20NCj4gPiA+IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNv bT4NCj4gPiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYxIDEvMV0gTWRlTW9k dWxlUGtnL1ZhcmlhYmxlU21tLmM6DQo+ID4gPiBhZGQgQXAgcmVuZGV6dm91cyBjaGVjayBiZWZv cmUgU21tU2V0VmFyaWFibGUuDQo+ID4gPg0KPiA+ID4gSGkgTGltaW5nDQo+ID4gPiBJbiBBcC1S ZWxheGVkIG1vZGUsIEJzcCB3aWxsIG5vdCB3YWl0IGZvciBhbGwgYXAgYXJyaXZlIGFuZCBjYWxs IHRoZSBTTUkNCj4gPiA+IGhhbmRsZXJzLiAgQnV0IHNvbWUgU01JIGhhbmRsZXJzIG5lZWQgYWxs IEFwcyBhcnJpdmUgaW4gc21tIG1vZGUgc3VjaCBhcw0KPiA+ID4gU21tU2V0VmFyaWFibGUuIEFz IHRoZSBkZXNpZ24sIFNldFZhcmlhYmxlIG5lZWQgdG8gbGV0IGFsbCBhcHMgYXJyaXZlDQo+IGJl Y2F1c2UNCj4gPiA+IGl0IHdpbGwgd3JpdGUgZmxhc2guIEhhbGYgeWVhciBhZ28sIEkgc2VuZCB0 aGUgcGF0Y2ggdGhhdCBjYWxsaW5nDQo+ID4gPiBTbW1DcHVSZW5kZXp2b3VzKCkgYmVmb3JlIFNt bVNldFZhcmlhYmxlLiBJdCB3YXMgcmV2aWV3ZWQgYnV0IGhhc24ndA0KPiA+ID4gbWVyZ2VkLiBT bW1DcHVSZW5kZXp2b3VzKCkgd2lsbCByZXR1cm4gaW1tZWRpYXRlbHkgaW4gdHJhZGl0aW9uYWwt QVANCj4gPiA+IG1vZGUuDQo+ID4gPiBJJ20gbm90IHN1cmUgd2hhdCByZXR1cm5zIEVGSV9BQ0NF U1NfREVOSUVELiBDYWxsaW5nDQo+IFNtbUNwdVJlbmRlenZvdXMoKQ0KPiA+ID4gYmVmb3JlIFNt bVNldFZhcmlhYmxlIGlzIG91ciBvcmlnaW5hbCBkZXNpZ24gYnV0IGhhdmVuJ3QgaW1wbGVtZW50 ZWQuDQo+ID4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206 IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+ID4gU2VudDogVGh1cnNk YXksIE1heSAxOCwgMjAyMyA1OjM4IFBNDQo+ID4gPiBUbzogTGksIFpoaWhhbyA8emhpaGFvLmxp QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBOaSwgUmF5DQo+ID4gPiA8cmF5Lm5p QGludGVsLmNvbT47IGtyYXhlbEByZWRoYXQuY29tDQo+ID4gPiBDYzogV2FuZywgSmlhbiBKIDxq aWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiDlm57lpI06IFtQQVRDSCB2MSAx LzFdIE1kZU1vZHVsZVBrZy9WYXJpYWJsZVNtbS5jOiBhZGQgQXANCj4gPiA+IHJlbmRlenZvdXMg Y2hlY2sgYmVmb3JlIFNtbVNldFZhcmlhYmxlLg0KPiA+ID4NCj4gPiA+IFpoaWhhbzoNCj4gPiA+ ICAgSGF2ZSB5b3Ugcm9vdCBjYXVzZSB0aGlzIGlzc3VlIHRoYXQgU21tVmFyaWFibGVTZXRWYXJp YWJsZSBtYXkgcmV0dXJuDQo+ID4gPiBFRklfQUNDRVNTX0RFTklFRD8NCj4gPiA+DQo+ID4gPiAg IEkgYW0gbm90IHN1cmUgd2hldGhlciB0aGlzIGZpeCBpcyBwcm9wZXIuIEkgYWxzbyBhZGQgVWVm aUNwdVBrZyBtYWludGFpbmVycw0KPiA+ID4gUmF5IGFuZCBHZXJkIGluIHRoZSBtYWlsIGxvb3Ag Zm9yIHRoaXMgZGlzY3Vzc2lvbi4NCj4gPiA+DQo+ID4gPiBUaGFua3MNCj4gPiA+IExpbWluZw0K PiA+ID4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4gPiA+IOWPkeS7tuS6ujogWmhpaGFv IExpIDx6aGloYW8ubGlAaW50ZWwuY29tPg0KPiA+ID4gPiDlj5HpgIHml7bpl7Q6IDIwMjPlubQ1 5pyIMTDml6UgMTg6NTcNCj4gPiA+ID4g5pS25Lu25Lq6OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0K PiA+ID4gPiDmioTpgIE6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBMaW1p bmcgR2FvDQo+ID4gPiA+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+ID4gPiA+IOS4u+mi mDogW1BBVENIIHYxIDEvMV0gTWRlTW9kdWxlUGtnL1ZhcmlhYmxlU21tLmM6IGFkZCBBcA0KPiBy ZW5kZXp2b3VzDQo+ID4gPiBjaGVjaw0KPiA+ID4gPiBiZWZvcmUgU21tU2V0VmFyaWFibGUuDQo+ ID4gPiA+DQo+ID4gPiA+IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3df YnVnLmNnaT9pZD00NDI5DQo+ID4gPiA+DQo+ID4gPiA+IEZvciBBcC1SZWxheGVkIHN5bmMgbW9k ZSwgU21tVmFyaWFibGVTZXRWYXJpYWJsZSgpIG5lZWQgdG8gbGV0IGFsbCBBcHMNCj4gPiA+ID4g YXJyaXZlIHRvIHNtbSBiZWZvcmUgaXQgc2V0IHRoZSB2YXJpYWJsZS4gSWYgbm90LCBpdCB3b3Vs ZCByZXR1cm4NCj4gPiA+ID4gRUZJX0FDQ0VTU19ERU5JRUQuDQo+ID4gPiA+DQo+ID4gPiA+IENj OiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiBDYzogTGltaW5n IEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+ID4gPg0KPiA+ID4gPiBTaWduZWQt b2ZmLWJ5OiBaaGloYW8gTGkgPHpoaWhhby5saUBpbnRlbC5jb20+DQo+ID4gPiA+IC0tLQ0KPiA+ ID4gPiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxl U21tLmMNCj4gPiA+ID4gfCAxMCArKysrKysrKystDQo+ID4gPiA+ICBNZGVNb2R1bGVQa2cvVW5p dmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTbW0uaW5mDQo+ID4gPiA+IHwgIDMg KystDQo+ID4gPiA+DQo+ID4gPg0KPiBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1 bnRpbWVEeGUvVmFyaWFibGVTdGFuZGFsb25lTW0uaW5mDQo+ID4gPiA+IHwgIDMgKystDQo+ID4g PiA+ICAzIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+ ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+IGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tLmMNCj4gPiA+ID4gYi9NZGVNb2R1bGVQ a2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTbW0uYw0KPiA+ID4gPiBp bmRleCA1MjUzYzMyOGRjZDkuLjQ5NDQ5MDNlNjRkNCAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvTWRl TW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tLmMNCj4g PiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1Zh cmlhYmxlU21tLmMNCj4gPiA+ID4gQEAgLTE0LDcgKzE0LDcgQEANCj4gPiA+ID4gICAgVmFyaWFi bGVTZXJ2aWNlU2V0VmFyaWFibGUoKSwgVmFyaWFibGVTZXJ2aWNlUXVlcnlWYXJpYWJsZUluZm8o KSwNCj4gPiA+ID4gUmVjbGFpbUZvck9TKCksDQo+ID4gPiA+DQo+ID4gPiA+ICAgIFNtbVZhcmlh YmxlR2V0U3RhdGlzdGljcygpIHNob3VsZCBhbHNvIGRvIHZhbGlkYXRpb24gYmFzZWQgb24gaXRz DQo+ID4gPiA+IG93biBrbm93bGVkZ2UuDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4g PiA+IC1Db3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cw0KPiA+ID4gPiByZXNlcnZlZC48QlI+DQo+ID4gPiA+DQo+ID4gPiA+ICtDb3B5cmlnaHQg KGMpIDIwMTAgLSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gPiAr cmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPg0KPiA+ID4gPiAgQ29weXJpZ2h0IChjKSAyMDE4LCBMaW5h cm8sIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gPiA+DQo+ID4gPiA+ICBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gPg0KPiA+ID4g Pg0KPiA+ID4gPg0KPiA+ID4gPiBAQCAtMjgsNiArMjgsNyBAQCBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAgI2lu Y2x1ZGUgPExpYnJhcnkvTW1TZXJ2aWNlc1RhYmxlTGliLmg+DQo+ID4gPiA+DQo+ID4gPiA+ICAj aW5jbHVkZSA8TGlicmFyeS9WYXJpYWJsZVBvbGljeUxpYi5oPg0KPiA+ID4gPg0KPiA+ID4gPiAr I2luY2x1ZGUgPExpYnJhcnkvU21tQ3B1UmVuZGV6dm91c0xpYi5oPg0KPiA+ID4gPg0KPiA+ID4g Pg0KPiA+ID4gPg0KPiA+ID4gPiAgI2luY2x1ZGUgPEd1aWQvU21tVmFyaWFibGVDb21tb24uaD4N Cj4gPiA+ID4NCj4gPiA+ID4gICNpbmNsdWRlICJWYXJpYWJsZS5oIg0KPiA+ID4gPg0KPiA+ID4g PiBAQCAtODcsNiArODgsMTMgQEAgU21tVmFyaWFibGVTZXRWYXJpYWJsZSAoICB7DQo+ID4gPiA+ DQo+ID4gPiA+ICAgIEVGSV9TVEFUVVMgIFN0YXR1czsNCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ ID4NCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4NCj4gPiA+ID4gKyAgLy8gTmVlZCB0byB3YWl0IGZv ciBhbGwgQXBzIHRvIGFycml2ZSBpbiBSZWxheGVkLUFQIFN5bmMgTW9kZQ0KPiA+ID4gPg0KPiA+ ID4gPiArICAvLw0KPiA+ID4gPg0KPiA+ID4gPiArICBpZiAoRUZJX0VSUk9SIChTbW1XYWl0Rm9y QWxsUHJvY2Vzc29yIChUUlVFKSkpIHsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICBERUJVRyAoKERF QlVHX0VSUk9SLCAiU2V0VmFyaWFibGU6IGZhaWwgdG8gd2FpdCBmb3IgYWxsIEFQIGNoZWNrDQo+ ID4gPiA+ICsgaW4NCj4gPiA+ID4gU01NIVxuIikpOw0KPiA+ID4gPg0KPiA+ID4gPiArICB9DQo+ ID4gPiA+DQo+ID4gPiA+ICsNCj4gPiA+ID4NCj4gPiA+ID4gICAgLy8NCj4gPiA+ID4NCj4gPiA+ ID4gICAgLy8gRGlzYWJsZSB3cml0ZSBwcm90ZWN0aW9uIHdoZW4gdGhlIGNhbGxpbmcgU2V0VmFy aWFibGUoKSB0aHJvdWdoDQo+ID4gPiA+IEVGSV9TTU1fVkFSSUFCTEVfUFJPVE9DT0wuDQo+ID4g PiA+DQo+ID4gPiA+ICAgIC8vDQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4g YS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTbW0u aW5mDQo+ID4gPiA+IGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhl L1ZhcmlhYmxlU21tLmluZg0KPiA+ID4gPiBpbmRleCA4YzU1MmI4N2UwODAuLjFjZjBkMDUxZTZj OSAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9S dW50aW1lRHhlL1ZhcmlhYmxlU21tLmluZg0KPiA+ID4gPiArKysgYi9NZGVNb2R1bGVQa2cvVW5p dmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTbW0uaW5mDQo+ID4gPiA+IEBAIC0x OCw3ICsxOCw3IEBADQo+ID4gPiA+ICAjICBtYXkgbm90IGJlIG1vZGlmaWVkIHdpdGhvdXQgYXV0 aG9yaXphdGlvbi4gSWYgcGxhdGZvcm0gZmFpbHMgdG8NCj4gPiA+IHByb3RlY3QNCj4gPiA+ID4g dGhlc2UgcmVzb3VyY2VzLA0KPiA+ID4gPg0KPiA+ID4gPiAgIyAgdGhlIGF1dGhlbnRpY2F0aW9u IHNlcnZpY2UgcHJvdmlkZWQgaW4gdGhpcyBkcml2ZXIgd2lsbCBiZSBicm9rZW4sDQo+ID4gPiA+ IGFuZA0KPiA+ID4gdGhlDQo+ID4gPiA+IGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4NCj4gPiA+ID4N Cj4gPiA+ID4gICMNCj4gPiA+ID4NCj4gPiA+ID4gLSMgQ29weXJpZ2h0IChjKSAyMDEwIC0gMjAx OSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ID4gcmVzZXJ2ZWQuPEJSPg0K PiA+ID4gPg0KPiA+ID4gPiArIyBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDIzLCBJbnRlbCBDb3Jw b3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gPiArcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPg0KPiA+ ID4gPiAgIyBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4NCj4gPiA+ID4NCj4g PiA+ID4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4g PiA+ID4NCj4gPiA+ID4gICMNCj4gPiA+ID4NCj4gPiA+ID4gQEAgLTg0LDYgKzg0LDcgQEANCj4g PiA+ID4gICAgVmFyaWFibGVQb2xpY3lMaWINCj4gPiA+ID4NCj4gPiA+ID4gICAgVmFyaWFibGVQ b2xpY3lIZWxwZXJMaWINCj4gPiA+ID4NCj4gPiA+ID4gICAgU2FmZUludExpYg0KPiA+ID4gPg0K PiA+ID4gPiArICBTbW1DcHVSZW5kZXp2b3VzTGliDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ DQo+ID4gPiA+ICBbUHJvdG9jb2xzXQ0KPiA+ID4gPg0KPiA+ID4gPiAgICBnRWZpU21tRmlybXdh cmVWb2x1bWVCbG9ja1Byb3RvY29sR3VpZCAgICAgICAgIyMgQ09OU1VNRVMNCj4gPiA+ID4NCj4g PiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPg0KPiA+ID4NCj4gYS9NZGVNb2R1bGVQa2cvVW5pdmVy c2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTdGFuZGFsb25lTW0uaQ0KPiA+ID4gbg0K PiA+ID4gPiBmDQo+ID4gPiA+DQo+ID4gPg0KPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFy aWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZVN0YW5kYWxvbmVNbS4NCj4gPiA+IGluDQo+ID4gPiA+ IGYNCj4gPiA+ID4gaW5kZXggZjA5YmVkNDBjZjUxLi44OTE4NzQ1NmNhMjUgMTAwNjQ0DQo+ID4g PiA+IC0tLQ0KPiA+ID4gPg0KPiA+ID4NCj4gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1Zhcmlh YmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTdGFuZGFsb25lTW0uaQ0KPiA+ID4gbg0KPiA+ID4gPiBm DQo+ID4gPiA+ICsrKw0KPiA+ID4gPg0KPiA+ID4NCj4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2Fs L1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTdGFuZGFsb25lTW0uDQo+ID4gPiBpbg0KPiA+ ID4gPiBmDQo+ID4gPiA+IEBAIC0xOCw3ICsxOCw3IEBADQo+ID4gPiA+ICAjICBtYXkgbm90IGJl IG1vZGlmaWVkIHdpdGhvdXQgYXV0aG9yaXphdGlvbi4gSWYgcGxhdGZvcm0gZmFpbHMgdG8NCj4g PiA+IHByb3RlY3QNCj4gPiA+ID4gdGhlc2UgcmVzb3VyY2VzLA0KPiA+ID4gPg0KPiA+ID4gPiAg IyAgdGhlIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UgcHJvdmlkZWQgaW4gdGhpcyBkcml2ZXIgd2ls bCBiZSBicm9rZW4sDQo+ID4gPiA+IGFuZA0KPiA+ID4gdGhlDQo+ID4gPiA+IGJlaGF2aW9yIGlz IHVuZGVmaW5lZC4NCj4gPiA+ID4NCj4gPiA+ID4gICMNCj4gPiA+ID4NCj4gPiA+ID4gLSMgQ29w eXJpZ2h0IChjKSAyMDEwIC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4g PiA+ID4gcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPg0KPiA+ID4gPiArIyBDb3B5cmlnaHQgKGMpIDIw MTAgLSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gPiArcmVzZXJ2 ZWQuPEJSPg0KPiA+ID4gPg0KPiA+ID4gPiAgIyBDb3B5cmlnaHQgKGMpIDIwMTgsIExpbmFybywg THRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ID4NCj4gPiA+ID4gICMgQ29weXJp Z2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uDQo+ID4gPiA+DQo+ID4gPiA+ICAjIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPiA+DQo+ID4gPiA+ IEBAIC04MCw2ICs4MCw3IEBADQo+ID4gPiA+ICAgIFZhcmlhYmxlRmxhc2hJbmZvTGliDQo+ID4g PiA+DQo+ID4gPiA+ICAgIFZhcmlhYmxlUG9saWN5TGliDQo+ID4gPiA+DQo+ID4gPiA+ICAgIFZh cmlhYmxlUG9saWN5SGVscGVyTGliDQo+ID4gPiA+DQo+ID4gPiA+ICsgIFNtbUNwdVJlbmRlenZv dXNMaWINCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gIFtQcm90b2NvbHNdDQo+ ID4gPiA+DQo+ID4gPiA+ICAgIGdFZmlTbW1GaXJtd2FyZVZvbHVtZUJsb2NrUHJvdG9jb2xHdWlk ICAgICAgICAjIyBDT05TVU1FUw0KPiA+ID4gPg0KPiA+ID4gPiAtLQ0KPiA+ID4gPiAyLjI2LjIu d2luZG93cy4xDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4g Pg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4gDQo+ID4NCg0K