From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.71.85; helo=eur03-db5-obe.outbound.protection.outlook.com; envelope-from=marvin.haeuser@outlook.com; receiver=edk2-devel@lists.01.org Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-oln040092071085.outbound.protection.outlook.com [40.92.71.85]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 3EE3B2245118E for ; Thu, 1 Mar 2018 03:19:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=dxSs+FcVPcICroFJC+vNGfufJj1AIGwIhPef72jjdoE=; b=q9rOHVdpwRZqsxAWioV21vdbvcLdK3ByGdHIMhAfQzGM4Jwc+f82RTjwwqcfXft5LSCRrciYROf46Ty8BuTFHcm/W9X+UugbsKO1qRmQuVW61KcDRjtwBeBwc2RP925rZalHjmz49Z4HoC7XdX/gudpd50NwETzwgYKBQJRnvKXIXkvaNcrpFvhyhriz8L2KcJD5nyil+ExS2A+QvzU7/6vlZqqFgSKYOVlWflcK56jEF10JCuag4YwqyKbGa0JPwHCRBveuP/MDo7+2fBpOWfILMK6Ji6ZkYgOAMI1Sv0Uu5p7/C0tSMLJzjpb8niJMLI0vzGTym2jLu5VyzmjtyA== Received: from VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com (10.152.18.54) by VE1EUR03HT064.eop-EUR03.prod.protection.outlook.com (10.152.19.118) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.428.12; Thu, 1 Mar 2018 11:25:10 +0000 Received: from AM4PR06MB1491.eurprd06.prod.outlook.com (10.152.18.60) by VE1EUR03FT037.mail.protection.outlook.com (10.152.19.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.527.18 via Frontend Transport; Thu, 1 Mar 2018 11:25:10 +0000 Received: from AM4PR06MB1491.eurprd06.prod.outlook.com ([fe80::7d81:9d96:1051:d20d]) by AM4PR06MB1491.eurprd06.prod.outlook.com ([fe80::7d81:9d96:1051:d20d%14]) with mapi id 15.20.0527.022; Thu, 1 Mar 2018 11:25:10 +0000 From: =?utf-8?B?TWFydmluIEjDpHVzZXI=?= To: "edk2-devel@lists.01.org" , Laszlo Ersek CC: "michael.d.kinney@intel.com" , "liming.gao@intel.com" Thread-Topic: [edk2] [PATCH 1/2] MdePkg/Base.h: Ensure safe bitwise operations. Thread-Index: AQHTr+q3IxS4cmiO9UyN5haxybivfqO4qaYAgAAEg7CAAPiiAIAABh8ggAArWgCAAAM54IAASqVwgAApSXCAAOPtgIAACLiw Date: Thu, 1 Mar 2018 11:25:10 +0000 Message-ID: References: <62c9363b-7f27-cfff-492a-560660727b86@redhat.com> <366ffc0c-b55f-a3c1-973e-b80d3dd07d26@redhat.com> <2b22bfbd-24ce-e26c-9f1c-e5ba2816b48f@redhat.com> <2d9e3ddc-9832-417f-8d40-65af1e24edc3@redhat.com> In-Reply-To: <2d9e3ddc-9832-417f-8d40-65af1e24edc3@redhat.com> Accept-Language: de-DE, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:5A13FBF4F4C44BE5986B69B55EECA4739A04BE1B1FFDFE7F92BCF54782FB1978; UpperCasedChecksum:393E70EF31F62DD5F05753CB9AC5FAB4FF39B5335BE3B65675D33E6A19927807; SizeAsReceived:7902; Count:46 x-tmn: [GF3naNX633FZDzIDlDabH7Gw1zJL8bvt] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VE1EUR03HT064; 6:nOENEmYvYQdiZNQgksdISeymX0RqMaXRzm1pzVvOvWNED4c9iJeCncyTKbGMfB9jdT9Z/R0ePwlLuolzaferg/UgidbZyO5xCqLcdKLxj1Tz82RmA0cG3WPkKBjCCx3DC3bo7Ze1cQwhzj3dYu/DgknjT9SKCt1IhMSCIVeXDmQDL7WfpenZwUl8a9RYExRqOTS6esqUFkTPLUoQk4emYgLHxcelfhP08BVvZIUXkOBS2jDd2pst333/D7IGYT69/j592rANWb7TLr7xU/+QdMHgZwIIHM/MOvNvoKeTrgOwc4+4V1RYo/h9ayDeF5vLWKwdLa63cbVm8WtDIqxGLLSFJNCsiZbn055UNrSocic=; 5:b/GxyenYnpWO7rlTx3grOGj87XBqIYQljZcQtO9SpmWhNspQtaoEKnvnmthXjeVkU3tg7wmY1rQ5HJQjmjykO+EWWfgiEF/2FWn8GhkXhJp6LGeDPNi0KAyfbylQdDKrwZ3kLe0GsTSR+zZQFjrDxDhBDbxeLoOPClcPEkSwBtw=; 24:nTsbJ4T+5BY0hMbWXTG7KkyryjseqjDR+RLv6zzlRei3cownYemqdieBv6YfMFYX+2tku93KBCleZwWYK1IkXvputuNqEkjA+CMY4s+ng0M=; 7:LnMJ0eJ73EpSOLGAfeX/Em9nq+MR1Rm0xEKXycmsNRZ8o7HcHw+RIjHS4uzDrpVKfkyxFxvifbzlmiBfYMFTWZq8OeNKhua1/7BPOHC9hsw0mLbIVp41eI8GpuBDRMsRUggffxRiUZwNWasFDOsZqHYx8DjY3qOSecBLsRVaLjRHUUgYzyUVlCE4ZCSzGoxa7vySezsou+No4SdpnSzYXPwY/vNdO8+sNbvKXC0NYhYnols24AEKmqwqE4cV/d4J x-incomingheadercount: 46 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101448)(1601125374)(1701031045); SRVR:VE1EUR03HT064; x-ms-traffictypediagnostic: VE1EUR03HT064: x-ms-office365-filtering-correlation-id: b9da32d1-413c-46c7-c564-08d57f67182a x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:VE1EUR03HT064; BCL:0; PCL:0; RULEID:; SRVR:VE1EUR03HT064; x-forefront-prvs: 05986C03E0 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:VE1EUR03HT064; H:AM4PR06MB1491.eurprd06.prod.outlook.com; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b9da32d1-413c-46c7-c564-08d57f67182a X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2018 11:25:10.5827 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR03HT064 Subject: Re: [PATCH 1/2] MdePkg/Base.h: Ensure safe bitwise operations. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Mar 2018 11:19:07 -0000 Content-Language: de-DE Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3psbyBFcnNlayA8bGVy c2VrQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCAxLCAyMDE4IDExOjQwIEFN DQo+IFRvOiBNYXJ2aW4gSMOkdXNlciA8TWFydmluLkhhZXVzZXJAb3V0bG9vay5jb20+OyBlZGsy LQ0KPiBkZXZlbEBsaXN0cy4wMS5vcmcNCj4gQ2M6IG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t OyBsaW1pbmcuZ2FvQGludGVsLmNvbQ0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCAxLzJd IE1kZVBrZy9CYXNlLmg6IEVuc3VyZSBzYWZlIGJpdHdpc2UNCj4gb3BlcmF0aW9ucy4NCj4gDQo+ IE9uIDAyLzI4LzE4IDIyOjA3LCBNYXJ2aW4gSMOkdXNlciB3cm90ZToNCj4gPiBPbmUgY29tbWVu dCBpcyBpbmxpbmUuDQo+ID4NCj4gPiBUaGFuayB5b3UgaW4gYWR2YW5jZSwNCj4gPiBNYXJ2aW4u DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogZWRrMi1k ZXZlbCA8ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZz4gT24gQmVoYWxmIE9mDQo+ID4+ IE1hcnZpbiBIw6R1c2VyDQo+ID4+IFNlbnQ6IFdlZG5lc2RheSwgRmVicnVhcnkgMjgsIDIwMTgg Nzo0NiBQTQ0KPiA+PiBUbzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IExhc3psbyBFcnNlayA8 bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4+IENjOiBtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbTsg bGltaW5nLmdhb0BpbnRlbC5jb20NCj4gPj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggMS8y XSBNZGVQa2cvQmFzZS5oOiBFbnN1cmUgc2FmZSBiaXR3aXNlDQo+ID4+IG9wZXJhdGlvbnMuDQo+ ID4+DQo+ID4+IEkgaGF2ZSBqdXN0IGxvY2FsbHkgdXBkYXRlZCBhbGwgQklUIGRlZmluZXMgdG8g dXNlIHRoZSBVTEwgcHJlZml4IGFuZA0KPiA+PiBhZGRlZCBjYXN0cyB0byBkZWZpbmVzIHVzaW5n IHRoZW0uDQo+ID4+IEkgZGlkIHRoYXQgdG8gZW5zdXJlIHRoYXQgMSkgaW52ZXJzaW9ucyBhbHdh eXMgcHJvZHVjZSB0aGUgY29ycmVjdA0KPiA+PiB2YWx1ZSBhbmQgMikgYXNzaWdubWVudHMgbmV2 ZXIgcmVzdWx0IGluIGltcGxpY2l0IGNhc3RzIHRvIGEgc21hbGxlcg0KPiA+PiBpbnQsIHdoaWNo IHdvdWxkIHJhaXNlIGEgd2FybmluZy4NCj4gPj4NCj4gPj4gQWZ0ZXIgSSB3YXMgZG9uZSBkb2lu ZyBpdCBmb3IgTWRlUGtnLCBhIGJ1aWxkIHNob3dlZCB0aGF0IChOKUFTTQ0KPiA+PiBmaWxlcyBj b25zdW1lZCB0aGVzZSBkZWZpbml0aW9ucy4NCj4gPj4NCj4gPj4gSSBvbmx5IHNlZSBhIGJ1bmNo IG9mIHBvc3NpYmxlIHNvbHV0aW9ucyB0byB0aGF0Og0KPiA+PiAqIFByb2hpYml0IHRoZSB1c2Fn ZSBvZiBzdWNoIGRlZmluZXMgaW4gYXNzZW1ibHkgY29kZSAod2hpY2ggSSB3b3VsZA0KPiA+PiBz dHJvbmdseSBkaXNsaWtlKS4NCj4gPj4gKiBJbnRyb2R1Y2UgYSAiREVGSU5FX0JJVCIgbWFjcm8g d2hpY2ggcHJvZHVjZXMgb25lIGRlZmluaXRpb24gZm9yIEMNCj4gPj4gY29kZSBhbmQgb25lIGZv ciBhc3NlbWJseS4NCj4gPg0KPiA+IEkgb25seSBqdXN0IHJlYWxpemVkIHRoYXQgaW5jbHVkaW5n IEMgaGVhZGVycyB3YXMgbm90IGEgTkFTTSBmZWF0dXJlLCBidXQgaXQNCj4gaXMgYWN0dWFsbHkg ZWRrMiBpbnZva2luZyB0aGUgUFAuDQo+ID4gTWlnaHQgdGhlIGJlc3Qgc29sdXRpb24ganVzdCBi ZSB0byBpbnRyb2R1Y2UgYSBjYXN0aW5nIG1hY3JvLCB3aGljaCBjYXN0cw0KPiB3aGVuIGl0J3Mg aW52b2tlZCBmb3IgYSBDIGNvbXBpbGVyIGFuZCBkb2Vzbid0IHdoZW4gaXQncyBpbnZva2VkIGZv ciBhbg0KPiBhc3NlbWJsZXI/DQo+ID4gQmFzaWNhbGx5IHdvdWxkIHJlcXVpcmUgbm90aGluZyBl bHNlIHRoYW4gYWRkaW5nIGEgIi0NCj4gRF9fRURLMl9BU1NFTUJMRVJfXyIgb3Igc29tZXRoaW5n IGFsaWtlIHRvIHRoZSBQUCBmbGFncyB3aGVuIGFwcGxpY2FibGUuDQo+ID4NCj4gPiBBbnkgb3Bp bmlvbiBvbiB0aGF0Pw0KPiANCj4gU2lnaCwgSSBkb24ndCBrbm93IHdoYXQgdG8gYW5zd2VyLiBP biBvbmUgaGFuZCAoaWYgd2UgY2FuIGdldCBpdCB0byB3b3JrDQo+IHdpdGhvdXQgcmVncmVzc2lv bnMpIEkgbGlrZSB0aGUgaWRlYSBvZiBtYWtpbmcgYWxsIEJJVHggbWFjcm9zIFVMTC4gT24gdGhl DQo+IG90aGVyIGhhbmQsIGRlZmluaW5nIHRoZSBzYW1lIG1hY3JvIHdpdGggZGlmZmVyZW50IHJl cGxhY2VtZW50IHRleHQsDQo+IGRlcGVuZGVudCBvbiB3aGV0aGVyIHRoZSBpbmNsdWRpbmcgc291 cmNlIGNvZGUgaXMgYXNzZW1ibHkgb3IgQywgbG9va3MNCj4gZGlydHkuIEkgY2FuJ3QgcmVhbGx5 IHB1dCBteSBmaW5nZXIgb24gaXQsIGJ1dCBJIGZlZWwgc3VjaCBkdWFsIGRlZmluaXRpb25zIGNv dWxkDQo+IGNhdXNlIGlzc3VlcyBvciBjb25mdXNpb24uIElmIEJhc2VUb29scyBwZW9wbGUgYXJl IE9LIHdpdGggdGhlIGR1YWwNCj4gZGVmaW5pdGlvbiwgSSBndWVzcyBJIGNvdWxkIGxpdmUgd2l0 aCBpdC4NCg0KSW5kZWVkIGl0IGlzIGRpcnR5LCBob3dldmVyIEkgZG9uJ3QgdGhpbmsgdGhlcmUg aXMgYW55IGNob2ljZSBidXQgdGhlIHNtYWxsZXN0IGRldmlsLg0KTGVhdmluZyB0aGVtIHNpZ25l ZCBtaWdodCBiZWNvbWUgZGFuZ2Vyb3VzLCByZWx5aW5nIG9uIHN1ZmZpeGVzIGlzIG5vdCBhIHBy b3BlciBzb2x1dGlvbiBjb25zaWRlcmluZyB0aGUgbmV3IDEyOC1iaXQgdHlwZSBhbmQgY2FzdGlu ZyByZXN1bHRzIGluIHRoZSBzaGFyaW5nIGlzc3VlIGJldHdlZW4gQyBhbmQgTkFTTS4NCkFjdHVh bGx5IEkgd291bGQgYWJhbmRvbiB0aGUgInR3byBkZWZpbml0aW9ucyIgY29uY2VwdCBhcyBvZiB0 aGUgaWRlYSBvZiBpbnRyb2R1Y2luZyBfX0VESzJfQVNTRU1CTEVSX18uDQoNClRoZSBzb2x1dGlv biBJIHRoaW5rIHdvdWxkIGJlIHRoZSBiZXN0IHRvIGVuc3VyZSBhIHNhZmUgYW5kIGZvcndhcmQt Y29tcGF0aWJsZSBpczoNCjEpIENhc3QgYWxsIGdlbmVyaWMgZGVmaW5lcyB0aGF0IG1pZ2h0IGJl IHVzZWQgYXMgbWFza3MgdG8gdGhlIGhpZ2hlc3QgYXZhaWxhYmxlIGludGVnZXIgdHlwZSAobWFj cm8pLCBpbmNsdWRpbmcgQklUeC4NCjIpIEludHJvZHVjZSBhIGNhc3RpbmcgbWFjcm8gd2hpY2gg d291bGQgcm91Z2hseSBsb29rIGxpa2UgdGhpcyBhbmQgYXBwbHkgaXQgdG8gYWxsICJuYW1lZCBi aXQiIGRlZmluaXRpb25zOg0KDQojaWZkZWYgX19FREsyX0FTU0VNTEVSX18NCiAgI2RlZmluZSBQ UF9DQVNUKFZhbHVlLCBUeXBlKSAoVmFsdWUpDQojZWxzZQ0KICAjZGVmaW5lIFBQX0NBU1QoVmFs dWUsIFR5cGUpICgoVHlwZSkoVmFsdWUpKQ0KI2VuZGlmDQoNClRoaXMgd2F5Og0KKiBCaXQgb3Bl cmF0aW9ucyBvbiBhbGwgdHlwZXMgb2YgdW5zaWduZWQgaW50ZWdlcnMgYXJlIHNhZmUgYW5kIHdl bGwtZGVmaW5lZC4NCiogT25lIGNhbiBpbnR1aXRpdmVseSB1c2UgaW52ZXJzZXMgZm9yIGJvdGgg Z2VuZXJpYyBhbmQgIm5hbWVkIiBtYXNrcy4NCiogT25lIGNhbiBjb250aW51ZSB0byBpbnR1aXRp dmVseSBhc3NpZ24gIm5hbWVkIGJpdHMiIHRvIHZhcmlhYmxlcyBvZiB0aGVpciB0eXBlIChleGNl cHQgZm9yIHdoZW4gaW50ZWdlciBwcm9tb3Rpb24gaGFwcGVucyBhcyBwYXJ0IG9mIGFuIE9QLCBv ZiBjb3Vyc2UsIGJ1dCB0aGlzIGlzIHVucmVsYXRlZCkuDQoqIENvZGUgbm90IGNhc3RpbmcgY29y cmVjdGx5IHdpbGwgcmFpc2UgY29tcGlsZS10aW1lIGVycm9ycy4NCg0KVGhlIG9ubHkgYWx0ZXJu YXRpdmUgd29ydGggYXJndWluZyBJIHNlZSBpcyBzY3JhcHBpbmcgaXQgYWxsIGFuZCBpbnRyb2R1 Y2luZyBVbml0IFRlc3RzLiBIb3dldmVyLCBzaG91bGQgYSBVbml0IFRlc3QgZXZlciBmYWlsIGEg c3BlY2lmaWMgY29tcGlsZXIsIHdlIHdvdWxkIGJlIGJhY2sgaGVyZSBhZ2Fpbi4NCg0KUmVnYXJk cywNCk1hcnZpbi4NCg0KPiANCj4gVGhhbmtzLA0KPiBMYXN6bG8NCj4gDQo+ID4NCj4gPj4gKiBS ZWx5IG9uICdVTEwnIGFsd2F5cyBwcm9kdWNpbmcgdGhlIGJpZ2dlc3QgcG9zc2libGUgdmFsdWUN Cj4gPj4gKGluY2x1ZGluZyB0aGUgMTI4LSBiaXQgcmFuZ2UgbmV3IHRvIHRoZSBzcGVjKSBvciBk b2N1bWVudGluZyBhbg0KPiA+PiBleGNlcHRpb24gZm9yIGl0LCBhbmQgaW5zaXN0IG9uIHRoZSBj YWxsZXIgY2FzdGluZyAod2hpY2ggSSB3b3VsZCBmaW5kIHF1aXRlDQo+IHVnbHkpLg0KPiA+PiAq IFNjcmFwIHRoZSBwYXRjaCBhbmQgY29udGludWUgdG8gcmVseSBvbg0KPiA+PiBjb21waWxlci0v YXJjaGl0ZWN0dXJlLXNwZWNpZmljIGJlaGF2aW9yLCB3aGljaCBjb3VsZCBjYXVzZSBpc3N1ZXMN Cj4gc2VlbWluZ2x5IHJhbmRvbWx5Lg0KPiA+Pg0KPiA+PiBUaGFua3MsDQo+ID4+IE1hcnZpbi4N Cj4gPj4NCj4gPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+PiBGcm9tOiBlZGsy LWRldmVsIDxlZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnPiBPbiBCZWhhbGYgT2YNCj4g Pj4+IE1hcnZpbiBIw6R1c2VyDQo+ID4+PiBTZW50OiBXZWRuZXNkYXksIEZlYnJ1YXJ5IDI4LCAy MDE4IDM6MjEgUE0NCj4gPj4+IFRvOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgTGFzemxvIEVy c2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPj4+IENjOiBtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbTsgbGltaW5nLmdhb0BpbnRlbC5jb20NCj4gPj4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BB VENIIDEvMl0gTWRlUGtnL0Jhc2UuaDogRW5zdXJlIHNhZmUgYml0d2lzZQ0KPiA+Pj4gb3BlcmF0 aW9ucy4NCj4gPj4+DQo+ID4+PiBIZXkgTGFzemxvLA0KPiA+Pj4NCj4gPj4+IEkgY3V0IHlvdXIg cmFudCBiZWNhdXNlIGl0IGlzIG5vdCBzdHJpY3RseSByZWxhdGVkIHRvIHRoaXMgcGF0Y2guDQo+ ID4+PiBIb3dldmVyLCB0aGFuayB5b3UgZm9yIGNvbXBvc2luZyBpdCBuZXZlcnRoZWxlc3MgYmVj YXVzZSBpdCB3YXMgYW4NCj4gPj4gaW50ZXJlc3RpbmcgcmVhZCENCj4gPj4+IENvbW1lbnRzIGFy ZSBpbmxpbmUuDQo+ID4+Pg0KPiA+Pj4gTWljaGFlbCwgTGltaW5nLA0KPiA+Pj4gRG8geW91IGhh dmUgYW55IGNvbW1lbnRzIHJlZ2FyZGluZyB0aGUgZGlzY3Vzc2lvbj8gVGhhbmtzIGluDQo+IGFk dmFuY2UuDQo+ID4+Pg0KPiA+Pj4gQmVzdCByZWdhcmRzLA0KPiA+Pj4gTWFydmluLg0KPiA+Pj4N Cj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IExhc3psbyBF cnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4+Pj4gU2VudDogV2VkbmVzZGF5LCBGZWJydWFy eSAyOCwgMjAxOCAyOjU3IFBNDQo+ID4+Pj4gVG86IE1hcnZpbiBIw6R1c2VyIDxNYXJ2aW4uSGFl dXNlckBvdXRsb29rLmNvbT47IGVkazItDQo+ID4+Pj4gZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+ Pj4gQ2M6IG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tOyBsaW1pbmcuZ2FvQGludGVsLmNvbQ0K PiA+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIDEvMl0gTWRlUGtnL0Jhc2UuaDogRW5z dXJlIHNhZmUgYml0d2lzZQ0KPiA+Pj4+IG9wZXJhdGlvbnMuDQo+ID4+Pj4NCj4gPj4+PiBPbiAw Mi8yOC8xOCAxMjo0MywgTWFydmluIEjDpHVzZXIgd3JvdGU6DQo+ID4+PiBbLi4uXQ0KPiA+Pj4+ PiBhcyBlZGsyIGRvZXMgbm90IHN1cHBvcnQgdmVuZG9yIGV4dGVuc2lvbnMgc3VjaCBhcyBfX2lu dDEyOA0KPiBhbnl3YXkuDQo+ID4+Pj4NCj4gPj4+PiBOb3QgKnlldCosIEkgZ3Vlc3MgOikgVUVG SSAyLjcgZG9lcyBsaXN0IFVJTlQxMjggLyBJTlQxMjgsIGluIHRhYmxlDQo+ID4+Pj4gNSwgIkNv bW1vbiBVRUZJIERhdGEgVHlwZXMiLiBJIGJlbGlldmUgdGhvc2UgdHlwZWRlZnMgbWF5IGhhdmUg YmVlbg0KPiA+Pj4gYWRkZWQgZm9yIFJJU0MtVi4NCj4gPj4+DQo+ID4+PiBPaCB5aWtlcywgSSBo YXZlIG5vdCBub3RpY2VkIHRoYXQgYmVmb3JlLiBCZXNpZGVzIHRoYXQgSSB3b25kZXIgaG93DQo+ ID4+PiB0aGF0IHdpbGwgYmUgaW1wbGVtZW50ZWQgYnkgZWRrMiBmb3Igbm9uLVJJU0MtViBwbGF0 Zm9ybXMsIG1heWJlDQo+ID4+PiB0aGF0IHNob3VsZCBiZSBjb25zaWRlcmVkPw0KPiA+Pj4gQXMg cmlkaWN1bG91cyBhcyBpdCBzb3VuZHMsIG1heWJlIHNvbWUga2luZCBvZiBVSU5UX01BWCB0eXBl IChub3cNCj4gPj4+IFVJTlQ2NCwgbGF0ZXIgVUlOVDEyOCkgc2hvdWxkIGJlIGludHJvZHVjZWQg YW5kIGFueSBCSVQgb3IgYml0bWFzaw0KPiA+Pj4gZGVmaW5pdGlvbiBiZWluZyBleHBsaWNpdGx5 IGNhc3RlZCB0byB0aGF0Pw0KPiA+Pj4gQXJlIEJJVCBkZWZpbml0aW9ucyBvciBtYXNrcyBvY2Nh c2lvbmFsbHkgdXNlZCBpbiBwcmVwcm9jZXNzb3INCj4gb3BlcmF0aW9ucz8NCj4gPj4+IFRoYXQg bWlnaHQgYnJlYWsgYWZ0ZXIgYWxsLg0KPiA+Pj4gQW55d2F5LCBpZiB0aGF0IGlkZWEgd291bGQg YmUgYXBwcm92ZWQsIHRoZXJlIHJlYWxseSB3b3VsZCBoYXZlIHRvDQo+ID4+PiBiZSBhIG5vdGUg cmVnYXJkaW5nIHRoaXMgZGVzaWduIGluIHNvbWUgb2YgdGhlIEVESzIgc3BlY2lmaWNhdGlvbnMs DQo+ID4+PiBwcm9iYWJseSBDIENvZGUgU3R5bGUuDQo+ID4+Pg0KPiA+Pj4gWy4uLl0NCj4gPj4+ Pg0KPiA+Pj4+PiAtMSkgVGhlICd0cnVuY2F0aW5nIGNvbnN0YW50IHZhbHVlJyB3YXJuaW5nIHdv dWxkIHByb2JhYmx5IG5lZWQgdG8NCj4gPj4+Pj4gYmUgZGlzYWJsZWQgZ2xvYmFsbHksIGhvd2V2 ZXIgSSBkb24ndCB1bmRlcnN0YW5kIGhvdyBhbiBleHBsaWNpdA0KPiA+Pj4+PiBjYXN0IGlzIGEg cHJvYmxlbSBhbnl3YXkuDQo+ID4+Pj4+DQo+ID4+Pj4+IERpZCBJIG92ZXJsb29rIGFueXRoaW5n IGNvbnRyYSByZWdhcmRpbmcgdGhhdD8NCj4gPj4+Pg0KPiA+Pj4+IEhtbW0uLi4gRG8geW91IHRo aW5rIGl0IGNvdWxkIGhhdmUgYSBwZXJmb3JtYW5jZSBpbXBhY3Qgb24gMzItYml0DQo+ID4+Pj4g cGxhdGZvcm1zPyAoSSBkb24ndCB0aGluayBzbywgYXQgbGVhc3Qgbm90IGluIG9wdGltaXplZCAv IFJFTEVBU0UNCj4gPj4+PiBidWlsZHMuKQ0KPiA+Pj4NCj4gPj4+IEkgZG9uJ3QgdGhpbmsgYW55 IHByb3BlciBvcHRpbWl6ZXIgd291bGQgbm90IG9wdGltaXplIHRoaXMuIEFmdGVyDQo+ID4+PiBh bGwsIGl0IGNhbiBub3Qgb25seSBldmFsdWF0ZSB0aGUgdmFsdWUgZGlyZWN0bHkgYW5kIG5vdGlj ZSB0aGF0IHRoZQ0KPiA+Pj4gdmFsdWUgZG9lcyBub3QgcmVhY2ggaW50byB0aGUgJ2xvbmcgbG9u ZyByYW5nZScsIGJ1dCBhbHNvIGNvbnNpZGVyDQo+ID4+PiB0aGUgdHlwZSBvZiB0aGUNCj4gPj4g b3RoZXIgb3BlcmFuZC4NCj4gPj4+DQo+ID4+PiBbLi4uXQ0KPiA+Pj4NCj4gPj4+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4+PiBlZGsyLWRldmVs IG1haWxpbmcgbGlzdA0KPiA+Pj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPj4+IGh0dHBz Oi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KPiA+PiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+PiBlZGsyLWRldmVs IG1haWxpbmcgbGlzdA0KPiA+PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+PiBodHRwczov L2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCg0K