From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.3183.1595466976163065315 for ; Wed, 22 Jul 2020 18:16:16 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=gtQwIWZK; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: liming.gao@intel.com) IronPort-SDR: YzwPr3OMr4nyAgwSF9R5a5Uqru/TYAP816OL5PSAzQCCHbs+jZkc5As5siGRZxsztFptZogL8o Uvo8C7V3XxgA== X-IronPort-AV: E=McAfee;i="6000,8403,9690"; a="130521379" X-IronPort-AV: E=Sophos;i="5.75,383,1589266800"; d="scan'208";a="130521379" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jul 2020 18:16:15 -0700 IronPort-SDR: lZGJBLqlW+U2Ae47Q86ZHOCljzqtg07+gX7ME9b7rOJIy/+4Q7RFLLmyhRlQA3agymNa4t18ql RvpRuppYNY3w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,383,1589266800"; d="scan'208";a="302140848" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga002.jf.intel.com with ESMTP; 22 Jul 2020 18:16:14 -0700 Received: from fmsmsx161.amr.corp.intel.com (10.18.125.9) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 22 Jul 2020 18:16:13 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by FMSMSX161.amr.corp.intel.com (10.18.125.9) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 22 Jul 2020 18:16:13 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.107) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 22 Jul 2020 18:16:13 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R1IOh2eGb1s/DPTn/PpaPEmir94klIm/bSSV7E1Pt1HbV56unnLygwq+LDlIXNcRQ2PxaKlQSztOMg9ml0WcBaAL76DW8ADKMFRHlI7u8Jpe3OrEktAy/RhYiPuQKO4JzPqYxGiZj2Dh6CYiuOryCjeidRQqkdXbNchO6wXcdJ03a/F4Szy/XUuV1+igzq++106+97Rkj0k1VGgvQ1fnr47D93GVjrHT9/WFeNUp9lWJwowHXm9Br78VaNPyVF6YgsZXXU/9BMyZN1I45u7VhbwFQs3M4zAlj2WoDS2CBsfxgay+SEZO4fWNTr5Yo7axbeJWgQtx9mVXEyuAWqTZ6Q== 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-SenderADCheck; bh=Qzc6gUJgyfzv0/ABWawxaWB2PsFeNbZiJk88h/8B5BQ=; b=CAUDCZH9Ls/SsWbGRmzPC0gINSIgNS5rE5qltpx6D0ApmaGiFhI1XB2mxSiUXZiTOu6xgWgQMVUH6/A0oeD2m0aNfmTPHRYB2bcmaiJudFEQpVm6Vr5wID1VBgSu9KQa921eLtMYA59k1zOIhIwE+66q4UHl4z3aJkrE30Fp9F1Dk1RzAxW6Bs5Qit+LksW0AVcsErJX/XRatNpKyxkJzsnrpZvnzrXl323XS1ZEfDQp+TbLhKnmCqCnmaRp4SoG9KTfP6KroDId5VqPrAGNpo4EIhNEIO7IrIUVxA3kozJUWJXiZ5AQxI89yj75IUUK/vYTcx/7eP3be57rWZ0d8Q== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Qzc6gUJgyfzv0/ABWawxaWB2PsFeNbZiJk88h/8B5BQ=; b=gtQwIWZKILM90uJgxnm2vSpdAdnnPq7UBeN/P/GkxZlp8wXxFoqRgKZfCl981B/FmloMafxwUcKlH1iJmnokD6qA9R5oRxSPaOZqDcTD2aqmE+oqNdLnU1JG29HjIoQUdKh1ArRcBrW0cjRSJrZiL+c4VuojPxYEzfPQjX1694s= Received: from MWHPR11MB1630.namprd11.prod.outlook.com (2603:10b6:301:e::7) by MWHPR11MB1741.namprd11.prod.outlook.com (2603:10b6:300:10d::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.20; Thu, 23 Jul 2020 01:16:12 +0000 Received: from MWHPR11MB1630.namprd11.prod.outlook.com ([fe80::7847:b564:1b55:b67e]) by MWHPR11MB1630.namprd11.prod.outlook.com ([fe80::7847:b564:1b55:b67e%6]) with mapi id 15.20.3216.020; Thu, 23 Jul 2020 01:16:12 +0000 From: "Liming Gao" To: Laszlo Ersek , "Liu, Zhiguang" , "devel@edk2.groups.io" , "thomas.lendacky@amd.com" CC: Brijesh Singh , Ard Biesheuvel , "Dong, Eric" , "Justen, Jordan L" , "Kinney, Michael D" , "Ni, Ray" Subject: Re: [edk2-devel] [PATCH v11 06/46] MdePkg/BaseLib: Add support for the XGETBV instruction Thread-Topic: [edk2-devel] [PATCH v11 06/46] MdePkg/BaseLib: Add support for the XGETBV instruction Thread-Index: AQHWX6TLw8ixX8zYPEKp8Hu2XhljcKkSxlaAgAFHhgCAAE9ZQA== Date: Thu, 23 Jul 2020 01:16:11 +0000 Message-ID: References: <0d091f43ae96ca4617f6a95a018bfaed6280eec2.1595366363.git.thomas.lendacky@amd.com> <59baa2d3-69e0-2f98-27b8-92010f393109@redhat.com> In-Reply-To: <59baa2d3-69e0-2f98-27b8-92010f393109@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.194] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: fb7da4a6-4004-4324-89c6-08d82ea5fcef x-ms-traffictypediagnostic: MWHPR11MB1741: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2CQZe+zuwK9ENswTxDQkGfeTEynS/Wv4SxWL4HmKQf+Psppi3G1c14e4we1CiWctpF3N3UE0gLo7MzD4b65xWlha2Esgd8GqTjnVP06hCdiZw4eC42IABirjQnRPCAvWfYqUNzd+RWY4FoNFWfIlAW0TKZDrxJimW7LDVWVgTqy68gMLYuGtJOLSsi8XhHvEWSELpLmOgrraMear4erQGLAftluiqpWYifzCm+FmszUMojEfSo6ajCvZ/a66jeJpkKw5oukmkogs8zZyP5gpnsYDuGblaU8FZWFbkfoRiT/eVkcHr1aJL54w7b0iVLWAfDMLIl4sfg5GnWLwTD93v436oMlj8o21YBEVuOKWhQxX6+XHsT60v6bkltYlbhxz1VFykAmGknMd+/iJNO+whA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1630.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(136003)(376002)(396003)(346002)(39860400002)(366004)(52536014)(186003)(76116006)(66446008)(66556008)(66946007)(66476007)(26005)(478600001)(53546011)(107886003)(64756008)(83380400001)(71200400001)(6506007)(5660300002)(86362001)(8936002)(966005)(4326008)(110136005)(55016002)(316002)(19627235002)(8676002)(33656002)(2906002)(9686003)(54906003)(7696005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: ILPTUK97XYENCZXI0gs1MJCyXzAnUo50sQY80QYS/yL9Wi/5gyV1Ds9sYMewAhbvBub8PRm1uFip5hbcvnIxkdwJ6yHMOFQ2KsE88VB/j1U9ftuWZJssdZvG271oM8qAsVxP4VoQ6ZeH+g2t+CYZPsWausFi7YV3Iu+Y5q+2tKfWwd7qq3WDSOnzF0p+yuGVX5uqoQ4ukcje5VzjOR5K+eMRUjiyLC68UcVJhVALFllV9JK3DHLDUlQ+9cpCNftfxneKyr7sPkP+JDbo4gIBEQACp6wu1xNAcXtlnfUyE1LC05Q4j3rrFTedZ+v/oVuk4Gqcv5C8tsKe0YhgWaGSkkj2NKFRt+umNfToxbOc9CPcK03MNuOT1qcrf2451Vl6Na34Zl6l+2NzSwvvndwaG6VrRr5Pnhzeu2MHbTCUlI4iyU8bU9daNGPU4qh+LKqTbd8eiiUU4qBggQGCXAY+VXOFhKu90/FenikfKYC3tuL6/r1nO0EfcKV9+RJ8eEl0 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1630.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fb7da4a6-4004-4324-89c6-08d82ea5fcef X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jul 2020 01:16:11.9764 (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: 6qnUxebbC9PWCdx8JiZGt2HL5tYrOtrhTOAIZhr/q//GEV08TeiNJoCOM4n35BCLghJqE3IoPuCAL824SDWENQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1741 Return-Path: liming.gao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvOg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogTGFzemxvIEVyc2Vr IDxsZXJzZWtAcmVkaGF0LmNvbT4gDQpTZW50OiAyMDIw5bm0N+aciDIz5pelIDQ6MjgNClRvOiBM aXUsIFpoaWd1YW5nIDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMu aW87IHRob21hcy5sZW5kYWNreUBhbWQuY29tDQpDYzogQnJpamVzaCBTaW5naCA8YnJpamVzaC5z aW5naEBhbWQuY29tPjsgQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGFybS5jb20+OyBE b25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgSnVzdGVuLCBKb3JkYW4gTCA8am9yZGFu LmwuanVzdGVuQGludGVsLmNvbT47IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47 IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IE5pLCBSYXkg PHJheS5uaUBpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MTEg MDYvNDZdIE1kZVBrZy9CYXNlTGliOiBBZGQgc3VwcG9ydCBmb3IgdGhlIFhHRVRCViBpbnN0cnVj dGlvbg0KDQpPbiAwNy8yMi8yMCAwMjo1NSwgTGl1LCBaaGlndWFuZyB3cm90ZToNCj4gSGkgVG9t LA0KPiBOYXNtIGlzIGEgY3Jvc3MtT1MgYXNzZW1ibHkgY29kZSBhbmQgY2FuIGJlIHVzZWQgaW4g TGludXguDQo+IFNvIEkgdGhpbmsgd2UgZG9uJ3QgbmVlZCBpbXBsZW1lbnQgdGhlIHNhbWUgZnVu Y3Rpb24gaW4gR2NjSW5saW5lLmMsIHdlIGNhbiBqdXN0IHVzZSB0aGUgbmFzbSBmaWxlIGluIExp bnV4Lg0KDQpJIGNvdWxkIGFncmVlLCBidXQgdGhpcyB3b3VsZCBjcmVhdGUgYW4gaW5jb25zaXN0 ZW5jeSB3aXRoIHRoZSBleGlzdGVudCBmdW5jdGlvbnMgKHdoZXJlIGJvdGggZ2NjIGlubGluZSBh c3NlbWJseSBhbmQgTkFTTSBleGlzdHMpLg0KW0xpbWluZ10gWWVzLiBUaGlzIGlzIGNsZWFuIHVw IHRhc2sgdG8gbWFrZSB0aGUgZXhpc3Rpbmcgb25lcyBiZSBjb25zaXN0ZW50LiBUaGUgbmV3IG9u ZSBYODYgYXNzZW1ibHkgZnVuY3Rpb24gKElBMzIgYW5kIFg2NCkgc2hvdWxkIGZvbGxvdyBuYXNt IHN0eWxlLg0KDQpGb3IgZXhhbXBsZSwgY29uc2lkZXIgQXNtUmVhZEVmbGFncygpOg0KLSBpbmxp bmUgYXNzZW1ibHkgZm9yIE1TRlQgSUEzMiAoIklhMzIvUmVhZEVmbGFncy5jIikNCi0gTkFTTSBm b3IgTVNGVCBYNjQgKCJYNjQvUmVhZEVmbGFncy5uYXNtIikNCi0gaW5saW5lIGFzc2VtYmx5IGZv ciBHQ0MgSUEzMiAoIklhMzIvR2NjSW5saW5lLmMiKQ0KLSBpbmxpbmUgYXNzZW1ibHkgZm9yIEdD QyBYNjQgKCJYNjQvR2NjSW5saW5lLmMiKQ0KDQpUaGUgc291cmNlIGZpbGUgIlg2NC9SZWFkRWZs YWdzLm5hc20iIGNvdWxkIGJlIHVzZWQgd2l0aCBHQ0MgWDY0IHRvbywgbm90IGp1c3Qgd2l0aCBN U0ZUIFg2NC4NCg0KU28gd2h5IGRvIHdlIGhhdmUgdGhlIGdjYyBpbmxpbmUgaW1wbGVtZW50YXRp b24gZm9yIEFzbVJlYWRFZmxhZ3MoKSBpbiAiWDY0L0djY0lubGluZS5jIiwgaW4gdGhlIGZpcnN0 IHBsYWNlPw0KW0xpbWluZ10gVGhpcyBpcyB0aGUgaGlzdG9yeS4gTmFzbSBtaWdyYXRpb24gcmVw bGFjZXMgLlMgYW5kIC5hc20uIEJ1dCwgdGhlIHJlbWFpbmluZyBvbmUgaW4gQyBzb3VyY2UgaXMg bm90IHJlcGxhY2VkLiANCg0KVGhhbmtzDQpMaW1pbmcNClRoZSBwYXR0ZXJuIHRoYXQgYSBjb250 cmlidXRvciBpcyBzdXBwb3NlZCB0byBmb2xsb3cgaXMgbm90IGNsZWFyIHRvIG1lLg0KDQpUaGFu a3MsDQpMYXN6bG8NCg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+IEZyb206IGRl dmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIA0K Pj4gTGVuZGFja3ksIFRob21hcw0KPj4gU2VudDogV2VkbmVzZGF5LCBKdWx5IDIyLCAyMDIwIDU6 MTkgQU0NCj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPj4gQ2M6IEJyaWplc2ggU2luZ2gg PGJyaWplc2guc2luZ2hAYW1kLmNvbT47IEFyZCBCaWVzaGV1dmVsIA0KPj4gPGFyZC5iaWVzaGV1 dmVsQGFybS5jb20+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgSnVzdGVuLCAN Cj4+IEpvcmRhbiBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsgTGFzemxvIEVyc2VrIA0K Pj4gPGxlcnNla0ByZWRoYXQuY29tPjsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29t PjsgS2lubmV5LCANCj4+IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBO aSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPg0KPj4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQQVRD SCB2MTEgMDYvNDZdIE1kZVBrZy9CYXNlTGliOiBBZGQgc3VwcG9ydCANCj4+IGZvciB0aGUgWEdF VEJWIGluc3RydWN0aW9uDQo+Pg0KPj4gRnJvbTogVG9tIExlbmRhY2t5IDx0aG9tYXMubGVuZGFj a3lAYW1kLmNvbT4NCj4+DQo+PiBCWjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3No b3dfYnVnLmNnaT9pZD0yMTk4DQo+Pg0KPj4gVW5kZXIgU0VWLUVTLCBhIENQVUlEIGluc3RydWN0 aW9uIHJlcXVpcmVzIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSANCj4+IFhDUjAgcmVnaXN0ZXIu IEluIG9yZGVyIHRvIHJldHJpZXZlIHRoYXQgdmFsdWUsIHRoZSBYR0VUQlYgDQo+PiBpbnN0cnVj dGlvbiBuZWVkcyB0byBiZSBleGVjdXRlZC4NCj4+DQo+PiBQcm92aWRlIHRoZSBuZWNlc3Nhcnkg c3VwcG9ydCB0byBleGVjdXRlIHRoZSBYR0VUQlYgaW5zdHJ1Y3Rpb24uDQo+Pg0KPj4gQ2M6IE1p Y2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPj4gQ2M6IExpbWlu ZyBHYW8gPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogVG9tIExlbmRh Y2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4NCj4+IC0tLQ0KPj4gIE1kZVBrZy9MaWJyYXJ5 L0Jhc2VMaWIvQmFzZUxpYi5pbmYgICAgICB8ICAyICsrDQo+PiAgTWRlUGtnL0luY2x1ZGUvTGli cmFyeS9CYXNlTGliLmggICAgICAgIHwgMTcgKysrKysrKysrKysrKw0KPj4gIE1kZVBrZy9MaWJy YXJ5L0Jhc2VMaWIvSWEzMi9HY2NJbmxpbmUuYyB8IDI4ICsrKysrKysrKysrKysrKysrKysrICAN Cj4+IE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvWDY0L0djY0lubGluZS5jICB8IDMwICsrKysrKysr KysrKysrKysrKysrKysgIA0KPj4gTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9JYTMyL1hHZXRCdi5u YXNtIHwgMzENCj4+ICsrKysrKysrKysrKysrKysrKysrKysNCj4+ICBNZGVQa2cvTGlicmFyeS9C YXNlTGliL1g2NC9YR2V0QnYubmFzbSAgfCAzNA0KPj4gKysrKysrKysrKysrKysrKysrKysrKysr Kw0KPj4gIDYgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMoKykNCj4+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9JYTMyL1hHZXRCdi5uYXNtDQo+PiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvWDY0L1hHZXRCdi5uYXNtDQo+ Pg0KPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvQmFzZUxpYi5pbmYNCj4+ IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliLmluZg0KPj4gaW5kZXggYzc0MGE4MTlj YWNmLi5lMjZjMGQ4Y2IwYWMgMTAwNjQ0DQo+PiAtLS0gYS9NZGVQa2cvTGlicmFyeS9CYXNlTGli L0Jhc2VMaWIuaW5mDQo+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5m DQo+PiBAQCAtMTUzLDYgKzE1Myw3IEBAIFtTb3VyY2VzLklhMzJdDQo+PiAgICBJYTMyL0FSU2hp ZnRVNjQuYyB8IE1TRlQNCj4+ICAgIElhMzIvRW5hYmxlQ2FjaGUuYyB8IE1TRlQNCj4+ICAgIElh MzIvRGlzYWJsZUNhY2hlLmMgfCBNU0ZUDQo+PiArICBJYTMyL1hHZXRCdi5uYXNtIHwgTVNGVA0K Pj4NCj4+DQo+PiAgICBJYTMyL0djY0lubGluZS5jIHwgR0NDDQo+PiBAQCAtMjg4LDYgKzI4OSw3 IEBAIFtTb3VyY2VzLlg2NF0NCj4+ICAgIFg2NC9SZWFkQ3IyLm5hc218IE1TRlQNCj4+ICAgIFg2 NC9SZWFkQ3IwLm5hc218IE1TRlQNCj4+ICAgIFg2NC9SZWFkRWZsYWdzLm5hc218IE1TRlQNCj4+ ICsgIFg2NC9YR2V0QnYubmFzbSB8IE1TRlQNCj4+DQo+Pg0KPj4gICAgWDY0L05vbi1leGlzdGlu Zy5jDQo+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlTGliLmgNCj4+ IGIvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlTGliLmgNCj4+IGluZGV4IDhlN2I4N2NiZGE0 ZS4uN2VkZjAwNTFhMGEwIDEwMDY0NA0KPj4gLS0tIGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9C YXNlTGliLmgNCj4+ICsrKyBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZUxpYi5oDQo+PiBA QCAtNzgzMSw2ICs3ODMxLDIzIEBAIEFzbUxmZW5jZSAoDQo+PiAgICBWT0lEDQo+PiAgICApOw0K Pj4NCj4+ICsvKioNCj4+ICsgIEV4ZWN1dGVzIGEgWEdFVEJWIGluc3RydWN0aW9uDQo+PiArDQo+ PiArICBFeGVjdXRlcyBhIFhHRVRCViBpbnN0cnVjdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5 IGF2YWlsYWJsZSBvbiANCj4+ICsgSUEtMzIgYW5kICB4NjQuDQo+PiArDQo+PiArICBAcGFyYW1b aW5dIEluZGV4ICAgICAgICBFeHRlbmRlZCBjb250cm9sIHJlZ2lzdGVyIGluZGV4DQo+PiArDQo+ PiArICBAcmV0dXJuICAgICAgICAgICAgICAgICBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZXh0 ZW5kZWQgY29udHJvbCByZWdpc3Rlcg0KPj4gKyoqLw0KPj4gK1VJTlQ2NA0KPj4gK0VGSUFQSQ0K Pj4gK0FzbVhHZXRCdiAoDQo+PiArICBJTiBVSU5UMzIgIEluZGV4DQo+PiArICApOw0KPj4gKw0K Pj4gKw0KPj4gIC8qKg0KPj4gICAgUGF0Y2ggdGhlIGltbWVkaWF0ZSBvcGVyYW5kIG9mIGFuIElB MzIgb3IgWDY0IGluc3RydWN0aW9uIHN1Y2ggDQo+PiB0aGF0IHRoZSBieXRlLA0KPj4gICAgd29y ZCwgZHdvcmQgb3IgcXdvcmQgb3BlcmFuZCBpcyBlbmNvZGVkIGF0IHRoZSBlbmQgb2YgdGhlIA0K Pj4gaW5zdHJ1Y3Rpb24ncyBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9JYTMy L0djY0lubGluZS5jDQo+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvSWEzMi9HY2NJbmxpbmUu Yw0KPj4gaW5kZXggNmVkOTM4MTg3YTA4Li5jMjU2NWFiOWExODMgMTAwNjQ0DQo+PiAtLS0gYS9N ZGVQa2cvTGlicmFyeS9CYXNlTGliL0lhMzIvR2NjSW5saW5lLmMNCj4+ICsrKyBiL01kZVBrZy9M aWJyYXJ5L0Jhc2VMaWIvSWEzMi9HY2NJbmxpbmUuYw0KPj4gQEAgLTU4NCwzICs1ODQsMzEgQEAg QXNtUmVhZFRzYyAoDQo+Pg0KPj4gICAgcmV0dXJuIERhdGE7DQo+PiAgfQ0KPj4gKw0KPj4gKw0K Pj4gKy8qKg0KPj4gKyAgRXhlY3V0ZXMgYSBYR0VUQlYgaW5zdHJ1Y3Rpb24NCj4+ICsNCj4+ICsg IEV4ZWN1dGVzIGEgWEdFVEJWIGluc3RydWN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYXZh aWxhYmxlIG9uIA0KPj4gKyBJQS0zMiBhbmQgIHg2NC4NCj4+ICsNCj4+ICsgIEBwYXJhbVtpbl0g SW5kZXggICAgICAgIEV4dGVuZGVkIGNvbnRyb2wgcmVnaXN0ZXIgaW5kZXgNCj4+ICsNCj4+ICsg IEByZXR1cm4gICAgICAgICAgICAgICAgIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBleHRlbmRl ZCBjb250cm9sIHJlZ2lzdGVyDQo+PiArKiovDQo+PiArVUlOVDY0DQo+PiArRUZJQVBJDQo+PiAr QXNtWEdldEJ2ICgNCj4+ICsgIElOIFVJTlQzMiBJbmRleA0KPj4gKyAgKQ0KPj4gK3sNCj4+ICsg IFVJTlQ2NCBEYXRhOw0KPj4gKw0KPj4gKyAgX19hc21fXyBfX3ZvbGF0aWxlX18gKA0KPj4gKyAg ICAieGdldGJ2Ig0KPj4gKyAgICA6ICI9QSIgKERhdGEpDQo+PiArICAgIDogImMiICAoSW5kZXgp DQo+PiArICAgICk7DQo+PiArDQo+PiArICByZXR1cm4gRGF0YTsNCj4+ICt9DQo+PiBkaWZmIC0t Z2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9YNjQvR2NjSW5saW5lLmMNCj4+IGIvTWRlUGtn L0xpYnJhcnkvQmFzZUxpYi9YNjQvR2NjSW5saW5lLmMNCj4+IGluZGV4IDQwYTIwOGYxOTg1Zi4u NjVmODY0ZTM1OTIyIDEwMDY0NA0KPj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9YNjQv R2NjSW5saW5lLmMNCj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvWDY0L0djY0lubGlu ZS5jDQo+PiBAQCAtNTYwLDMgKzU2MCwzMyBAQCBBc21SZWFkVHNjICgNCj4+DQo+PiAgICByZXR1 cm4gKCgoVUlOVDY0KUhpRGF0YSkgPDwgMzIpIHwgTG93RGF0YTsgIH0NCj4+ICsNCj4+ICsNCj4+ ICsvKioNCj4+ICsgIEV4ZWN1dGVzIGEgWEdFVEJWIGluc3RydWN0aW9uDQo+PiArDQo+PiArICBF eGVjdXRlcyBhIFhHRVRCViBpbnN0cnVjdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGF2YWls YWJsZSBvbiANCj4+ICsgSUEtMzIgYW5kICB4NjQuDQo+PiArDQo+PiArICBAcGFyYW1baW5dIElu ZGV4ICAgICAgICBFeHRlbmRlZCBjb250cm9sIHJlZ2lzdGVyIGluZGV4DQo+PiArDQo+PiArICBA cmV0dXJuICAgICAgICAgICAgICAgICBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZXh0ZW5kZWQg Y29udHJvbCByZWdpc3Rlcg0KPj4gKyoqLw0KPj4gK1VJTlQ2NA0KPj4gK0VGSUFQSQ0KPj4gK0Fz bVhHZXRCdiAoDQo+PiArICBJTiBVSU5UMzIgSW5kZXgNCj4+ICsgICkNCj4+ICt7DQo+PiArICBV SU5UMzIgTG93RGF0YTsNCj4+ICsgIFVJTlQzMiBIaWdoRGF0YTsNCj4+ICsNCj4+ICsgIF9fYXNt X18gX192b2xhdGlsZV9fICgNCj4+ICsgICAgInhnZXRidiINCj4+ICsgICAgOiAiPWEiIChMb3dE YXRhKSwNCj4+ICsgICAgICAiPWQiIChIaWdoRGF0YSkNCj4+ICsgICAgOiAiYyIgIChJbmRleCkN Cj4+ICsgICAgKTsNCj4+ICsNCj4+ICsgIHJldHVybiAoKChVSU5UNjQpSGlnaERhdGEpIDw8IDMy KSB8IExvd0RhdGE7IH0NCj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0lh MzIvWEdldEJ2Lm5hc20NCj4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9JYTMyL1hHZXRCdi5u YXNtDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAwMDAwLi45Zjdi MDNiYmZmMzUNCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VM aWIvSWEzMi9YR2V0QnYubmFzbQ0KPj4gQEAgLTAsMCArMSwzMSBAQA0KPj4gKzstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+PiArLS0tLS0tLS0tLS0NCj4+ICs7DQo+PiArOyBDb3B5cmlnaHQgKEMpIDIwMjAsIEFkdmFu Y2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyANCj4+ICtyZXNlcnZlZC48QlI+IDsg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgOyA7IA0KPj4gK01v ZHVsZSBOYW1lOg0KPj4gKzsNCj4+ICs7ICAgWEdldEJ2LkFzbQ0KPj4gKzsNCj4+ICs7IEFic3Ry YWN0Og0KPj4gKzsNCj4+ICs7ICAgQXNtWGdldEJ2IGZ1bmN0aW9uDQo+PiArOw0KPj4gKzsgTm90 ZXM6DQo+PiArOw0KPj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+PiArLS0tLS0tLS0tLS0NCj4+ICsNCj4+ICsg ICAgU0VDVElPTiAudGV4dA0KPj4gKw0KPj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+PiArLS0tLS0tLS0tLS0N Cj4+ICs7IFVJTlQ2NA0KPj4gKzsgRUZJQVBJDQo+PiArOyBBc21YR2V0QnYgKA0KPj4gKzsgICBJ TiBVSU5UMzIgIEluZGV4DQo+PiArOyAgICk7DQo+PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+ICstLS0tLS0t LS0tLQ0KPj4gK2dsb2JhbCBBU01fUEZYKEFzbVhHZXRCdikNCj4+ICtBU01fUEZYKEFzbVhHZXRC dik6DQo+PiArICAgIG1vdiAgICAgZWN4LCBbZXNwICsgNF0NCj4+ICsgICAgeGdldGJ2DQo+PiAr ICAgIHJldA0KPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvWDY0L1hHZXRC di5uYXNtDQo+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvWDY0L1hHZXRCdi5uYXNtDQo+PiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAwMDAwLi4wOWYzYmU4YWUwYTgN Cj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvWDY0L1hH ZXRCdi5uYXNtDQo+PiBAQCAtMCwwICsxLDM0IEBADQo+PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+ICstLS0t LS0tLS0tLQ0KPj4gKzsNCj4+ICs7IENvcHlyaWdodCAoQykgMjAyMCwgQWR2YW5jZWQgTWljcm8g RGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIA0KPj4gK3Jlc2VydmVkLjxCUj4gOyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudCA7IDsgDQo+PiArTW9kdWxlIE5hbWU6 DQo+PiArOw0KPj4gKzsgICBYR2V0QnYuQXNtDQo+PiArOw0KPj4gKzsgQWJzdHJhY3Q6DQo+PiAr Ow0KPj4gKzsgICBBc21YZ2V0QnYgZnVuY3Rpb24NCj4+ICs7DQo+PiArOyBOb3RlczoNCj4+ICs7 DQo+PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4+ICstLS0tLS0tLS0tLQ0KPj4gKw0KPj4gKyAgICBERUZBVUxU IFJFTA0KPj4gKyAgICBTRUNUSU9OIC50ZXh0DQo+PiArDQo+PiArOy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+ICst LS0tLS0tLS0tLQ0KPj4gKzsgVUlOVDY0DQo+PiArOyBFRklBUEkNCj4+ICs7IEFzbVhHZXRCdiAo DQo+PiArOyAgIElOIFVJTlQzMiAgSW5kZXgNCj4+ICs7ICAgKTsNCj4+ICs7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K Pj4gKy0tLS0tLS0tLS0tDQo+PiArZ2xvYmFsIEFTTV9QRlgoQXNtWEdldEJ2KQ0KPj4gK0FTTV9Q RlgoQXNtWEdldEJ2KToNCj4+ICsgICAgeGdldGJ2DQo+PiArICAgIHNobCAgICAgcmR4LCAzMg0K Pj4gKyAgICBvciAgICAgIHJheCwgcmR4DQo+PiArICAgIHJldA0KPj4gKw0KPj4gLS0NCj4+IDIu MjcuMA0KPj4NCj4+DQo+PiANCj4gDQoNCg==