From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web12.1184.1604733978479307876 for ; Fri, 06 Nov 2020 23:26:18 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=sm4qz7kW; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: 8PtLJtQEbG/nhDXKjerOWdPYXUIfWv3peBbbPoHJBFCURZXXF0xvFreobtkaGH9uzMJcPMuKdj VdTd13V1A07w== X-IronPort-AV: E=McAfee;i="6000,8403,9797"; a="156637152" X-IronPort-AV: E=Sophos;i="5.77,458,1596524400"; d="scan'208";a="156637152" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Nov 2020 23:26:17 -0800 IronPort-SDR: g51Y9IXPtqcY55m1og4RdwH1oargd1EUzKIN1WiibKQXoo174V1WOcY3r+dQHpZt6H3/6por4X jMe7tGT72MbA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,458,1596524400"; d="scan'208";a="528605876" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by fmsmga006.fm.intel.com with ESMTP; 06 Nov 2020 23:26:17 -0800 Received: from fmsmsx605.amr.corp.intel.com (10.18.126.85) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 6 Nov 2020 23:26:16 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 6 Nov 2020 23:26:16 -0800 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (104.47.37.51) 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.1713.5; Fri, 6 Nov 2020 23:26:16 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CiK6yQCz7nbK+aW03YFdq/0YnhTZ2YFZbSPQyA2TR7aEDkG/YJkStmevN98wUM3lXXoLjfisO2B05091f9DE+4IcIDLOnrFEIg5lCNcHYPhMnlWGDAMN5W3eD/7BhEOXI2OIBXjB3uDiOOoj92HXt7SgoIjgjoQJGMqjo57OqZuvYAfJpobwbM04ec0C5+mkzmiedUP0nxYgthUTOJgOcDSHiYTstUmrkgTL3UAat4HeTepLTKVA3CYCFbVu+BqUOZkRZoRJqF7IM4GR4oncbTwCgo7B9qimmze3y0FAd4MBOTnMyMj3tPGz7h7b9ZpBLF8EwPD7vfy87HebzvS1vA== 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=AI1UKGKThL/Lzc2BFOAxMgcySl540ao99FczjF91+gs=; b=JJOYn7XAFNFgmhfgufhgOTer8mYPyqRv8Ad6Bsb69deK3pJOu0wPYd1b8nNsdp503E+0+YROYvmtiOqptBXCLQGUuupDZFoeHln/f88Vl7jvumzkqQkSUHQhNN6GU7/RgD5H0FXZ7WXeGZiMrZ5YcWAH0nK+FK5LGxRGW23ohvPQDodXJYQ9QTIIZDAGuFM25z6xrMQH9akJoVy+R8/zZhPCa7dvupMTRgpdj7ODI07OgDyd999JU/v6U03qCE+drTcDLmADVu8jSWG7sqyM0GU3hhpJtD/WIm0L4gPb+IuEoUv+/hMWM/dLJ90bpbeQ/MNIvXdXNO8fLZvV44SGFQ== 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=AI1UKGKThL/Lzc2BFOAxMgcySl540ao99FczjF91+gs=; b=sm4qz7kWlcwOkdCKnR82mbcq/0k0s85J1WuPfkdkUI0FSlOJY0Tok/wqKNZZiC4IrnNaFlM41kN8n5evj2cRBjISTSfgTeY5oHbtPqMU/G6178k84UkV7uI797PLwvjexrmWpZViXREJBQ4VGWsugcmrXCMcKSe6CNaAXqbRVmo= Received: from BL0PR11MB3236.namprd11.prod.outlook.com (2603:10b6:208:60::18) by MN2PR11MB4519.namprd11.prod.outlook.com (2603:10b6:208:26c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18; Sat, 7 Nov 2020 07:26:15 +0000 Received: from BL0PR11MB3236.namprd11.prod.outlook.com ([fe80::7c0f:956c:c89e:c0fb]) by BL0PR11MB3236.namprd11.prod.outlook.com ([fe80::7c0f:956c:c89e:c0fb%4]) with mapi id 15.20.3499.032; Sat, 7 Nov 2020 07:26:15 +0000 From: "Michael D Kinney" To: "Yao, Jiewen" , "Zurcher, Christopher J" , "Kinney, Michael D" CC: "devel@edk2.groups.io" , Laszlo Ersek , gaoliming , "Wang, Jian J" , "Lu, XiaoyuX" , Ard Biesheuvel Subject: Re: [edk2-devel] [PATCH v5 0/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Thread-Topic: [edk2-devel] [PATCH v5 0/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Thread-Index: AQHWsiyAh6ZmafzCsEeCVGwMAR/UZ6m6nppAgAAEk9CAADzigIAACSyAgACadQCAADrrgIAAMT2AgAAGBgCAAFQogA== Date: Sat, 7 Nov 2020 07:26:15 +0000 Message-ID: References: <20201103215834.7533-1-christopher.j.zurcher@intel.com> <1644D590FF4B7423.25549@groups.io> , <7D73B5FD-CBCA-4E8C-B73B-930722C9FCF7@intel.com> In-Reply-To: <7D73B5FD-CBCA-4E8C-B73B-930722C9FCF7@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [24.19.191.44] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: fd145a13-b81c-4891-25e3-08d882ee6966 x-ms-traffictypediagnostic: MN2PR11MB4519: 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: +Rd5XAAlIa9bZvcFAZE5bLXRBJQMwBq7TucutUjOOE8LfihsGmLsQgY1cOPVeX+dZGyYnTuVXVdZ6M7zgetYTPRcUL/n9SVMFo3mXbEk9cqo0iSRJEgbwktzaAQG4xzFzsNojJeytHAm2ufSGWCuqfi0WwIo01499xU6GtZmSrF6Mnps1v+jstKDUjasAdhMqhd5iF9iFXP3fylbF4RrVFvycc+Nl3pP1P9jfBGLU5XFGIKFCEWbqMUAPsOG4tiFj4DjsoAZkDWESbfuyxmxZIpxpqE36plzKAo3tIbaRIRcuYB8FwZgkbbkvHd5aiA8cJ3n5s9h84MBwEsB3vmkTHQ4ye8U4Z+3n0RR2VskauIFwQUa7PM10EY5MROgVKc18wFaLdTarULzLSLLR+t8GQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR11MB3236.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(136003)(39860400002)(396003)(346002)(376002)(64756008)(186003)(66476007)(66446008)(86362001)(54906003)(8676002)(6506007)(53546011)(8936002)(55016002)(19627235002)(66946007)(4326008)(478600001)(83380400001)(26005)(33656002)(7696005)(9686003)(316002)(66556008)(30864003)(71200400001)(5660300002)(52536014)(2906002)(76116006)(966005)(110136005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: 9E7Nr4jiBBL/WNue3mY+exrIjfFG+32lz/VaAEwCOvO3iDHXrHo7Sj3EHLhR3mX0cA88loqQLJvARjTgCfo/MTJHszFnatZKd5eWo6XmmOxQuLB84uxfcjUDicCEI7b8kNj5gBCFOQDJWkJh6KJUpILJkqwCLalFyh/8dOLOZxzlBhUZ6H66WfPNbpFNHm1P3M3a8WMX7knoFqwfUGCbsAKqui0gpgXTfqUGKOywDi1g+yonQzjHFC5MX13+SJhK3p5UzVsy3v8UfPfLLew8ySS5RpuhvqJcMQAUPcU9urzUjSK5tIMhoRlpdLMzAqgDXjzYhJMDdrtMSIoQIIcIBNRmk6Rh0dWpc/NIaJ9Kt2itHg+inJ7/dBwwcu2tLyS9KOUKRtTHWNec9evokHRzdNsYSEYYUFQ6W0n50AM4o3N8uAFZ6M3jQQUuFaG8rEh+n8DZ6sdjuDm8j3qEjmICQCRiMHUHrfrZWkpgN8xjmrZq74SH8eH5oyhKNK0wzBIyQRJwkk+EGTSzDWTf6xytBFQTlhXmgSzRruvdsIC6LGNB6ziOsoiZoGSy1dB+r9MyFP7OsYTzE3T3l5OD89eup4zj0GcvjXPifl1+lZS4UWi1oU++WYunNUaPsUs7+kny1Oqv8dGFi4ldOghhcfnVYQ== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL0PR11MB3236.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd145a13-b81c-4891-25e3-08d882ee6966 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Nov 2020 07:26:15.3195 (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: LOPUhrPVu7P5oOImz0bV9G4j+Jt7pJbbMnYtpo5blaVP0Chv4J1LmXvbIMydPg6Cdh2+GR3GZHgUBAFigaGh+Hmm58+McgaU5baPUu7J8M0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4519 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QXJlIHlvdSB1c2luZyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgTkFTTSBpbiB0aGUgTGludXggZW52 aXJvbm1lbnQ/ICBZb3UgbWF5IGhhdmUgdG8gYnVpbGQgaXQgZnJvbSBzb3VyY2VzLg0KDQpNaWtl DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWWFvLCBKaWV3ZW4gPGpp ZXdlbi55YW9AaW50ZWwuY29tPg0KPiBTZW50OiBGcmlkYXksIE5vdmVtYmVyIDYsIDIwMjAgNjoy NCBQTQ0KPiBUbzogWnVyY2hlciwgQ2hyaXN0b3BoZXIgSiA8Y2hyaXN0b3BoZXIuai56dXJjaGVy QGludGVsLmNvbT4NCj4gQ2M6IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBMYXN6bG8gRXJzZWsgPGxl cnNla0ByZWRoYXQuY29tPjsgZ2FvbGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBX YW5nLCBKaWFuIEoNCj4gPGppYW4uai53YW5nQGludGVsLmNvbT47IEx1LCBYaWFveXVYIDx4aWFv eXV4Lmx1QGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT47IEFyZA0KPiBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBhcm0uY29tPg0KPiBT dWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NSAwLzJdIENyeXB0b1BrZy9PcGVuc3Ns TGliOiBBZGQgbmF0aXZlIGluc3RydWN0aW9uIHN1cHBvcnQgZm9yIFg2NA0KPiANCj4gVGhlIHJl YXNvbiB3ZSBjaG9vc2UgTkFTTSBpcyB0aGF0IHdlIGNhbiB1c2Ugc2FtZSBhc3NlbWJseSBpbiB3 aW5kb3dzIGJ1aWxkIGFuZCBMaW51eCBidWlsZC4gSG93ZXZlciBpZiB0aGlzIE5BU00gY2Fubm90 DQo+IGJlIHVzZWQgaW4gTGludXgsIHRoZW4gdGhlIGJlbmVmaXQgZG9lcyBub3QgZXhpc3QgYW55 IG1vcmUuIFlvdSBjYW4gZ2VuZXJhdGUgR0FTIHRvIHN1cHBvcnQgR0NDIGJ1aWxkLCBhbmQgY2hl Y2sgaW4gLlMNCj4gZmlsZS4NCj4gDQo+IHRoYW5rIHlvdSENCj4gWWFvLCBKaWV3ZW4NCj4gDQo+ IA0KPiA+IOWcqCAyMDIw5bm0MTHmnIg35pel77yM5LiK5Y2IMTA6MDLvvIxadXJjaGVyLCBDaHJp c3RvcGhlciBKIDxjaHJpc3RvcGhlci5qLnp1cmNoZXJAaW50ZWwuY29tPiDlhpnpgZPvvJoNCj4g Pg0KPiA+IO+7v1RoZWlyIG9wdGlvbnMgd291bGQgYmU6DQo+ID4gMSkgRmlsZSBhIGJ1ZyBhZ2Fp bnN0IE9wZW5TU0wgdGhhdCB0aGVpciBOQVNNIGNvZGUgaXMgdG9vIGFkdmFuY2VkIGZvciBHQ0Mg dG9vbGNoYWluICh1bmxpa2VseSB0byByZXN1bHQgaW4gYW55IGNoYW5nZQ0KPiBzaW5jZSBPcGVu U1NMIHdvdWxkIHNheSBHQ0MgYnVpbGQgc2hvdWxkIGJlIHVzaW5nIEdBUyBpbnN0ZWFkIG9mIE5B U00gYW5kIGJ1aWxkaW5nIG91dHNpZGUgb2YgdGhlaXIgbWFrZWZpbGUgYnVpbGQgc3lzdGVtDQo+ IGlzIGJhZCBwcmFjdGljZSBpbiB0aGUgZmlyc3QgcGxhY2UpLg0KPiA+IDIpIEZpbGUgYSBidWcg YWdhaW5zdCBHQ0MgdGhhdCB0aGVpciB0b29sY2hhaW4gY2FuJ3QgaGFuZGxlIE5BU00gY29ycmVj dGx5Lg0KPiA+IDMpIFVzZSBDTEFOR1BEQiB0b29sY2hhaW4gaW5zdGVhZC4NCj4gPg0KPiA+IEkg YW0gbm90IGZhbWlsaWFyIGVub3VnaCB3aXRoIHRoZSBHQ0MgdG9vbGNoYWluIHRvIGtub3cgaWYg dGhlcmUgaXMgYW55IHdheSB0byBtYWtlIGl0IGludGVycHJldCBOQVNNIGZpbGVzIGNvcnJlY3Rs eSwNCj4gc28gdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCBzb21lb25lIHdobyBrbm93cyBtb3JlIGFi b3V0IGl0IGNvdWxkIHByb3ZpZGUgc29tZSBjb25maWd1cmF0aW9uIGNoYW5nZSB0aGF0IGNvdWxk IHJlc29sdmUgdGhpcy4NCj4gQnV0IEkgZG8gbm90IHRoaW5rIHdlIHNob3VsZCBzYXkgdGhhdCBW UyBhbmQgQ0xBTkdQREIgdG9vbGNoYWluIHVzZXJzIGNhbid0IGhhdmUgT3BlblNTTCBhY2NlbGVy YXRpb24gYmVjYXVzZSBHQ0MgY2FuJ3QNCj4gaGFuZGxlIGl0Lg0KPiA+DQo+ID4gVGhhbmtzLA0K PiA+IENocmlzdG9waGVyIFp1cmNoZXINCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+PiBGcm9tOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4+ IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIgNiwgMjAyMCAxNTowNw0KPiA+PiBUbzogWnVyY2hlciwg Q2hyaXN0b3BoZXIgSiA8Y2hyaXN0b3BoZXIuai56dXJjaGVyQGludGVsLmNvbT47DQo+ID4+IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgZ2Fv bGltaW5nDQo+ID4+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+ID4+IENjOiBXYW5nLCBK aWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IEx1LCBYaWFveXVYIDx4aWFveXV4Lmx1QGlu dGVsLmNvbT47DQo+ID4+IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+ID4+IDxhcmQuYmllc2hldXZlbEBhcm0uY29tPg0KPiA+ PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NSAwLzJdIENyeXB0b1BrZy9PcGVu c3NsTGliOiBBZGQgbmF0aXZlDQo+ID4+IGluc3RydWN0aW9uIHN1cHBvcnQgZm9yIFg2NA0KPiA+ Pg0KPiA+PiBTbywgaWYgc29tZW9uZSB3YW50cyB0byB1c2UgdGhpcyBhY2NlbGVyYXRvciBpbiBM aW51eCB3aXRoIEdDQywgd2hhdCBoZS9zaGUNCj4gPj4gbmVlZCB0byBkbz8NCj4gPj4NCj4gPj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+PiBGcm9tOiBadXJjaGVyLCBDaHJpc3Rv cGhlciBKIDxjaHJpc3RvcGhlci5qLnp1cmNoZXJAaW50ZWwuY29tPg0KPiA+Pj4gU2VudDogU2F0 dXJkYXksIE5vdmVtYmVyIDcsIDIwMjAgMzozNiBBTQ0KPiA+Pj4gVG86IFlhbywgSmlld2VuIDxq aWV3ZW4ueWFvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBMYXN6bG8NCj4gPj4+ IEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQu Y29tLmNuPg0KPiA+Pj4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsg THUsIFhpYW95dVgNCj4gPj4+IDx4aWFveXV4Lmx1QGludGVsLmNvbT47IEtpbm5leSwgTWljaGFl bCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47DQo+ID4+PiBBcmQgQmllc2hldXZlbCA8 YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4NCj4gPj4+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0g W1BBVENIIHY1IDAvMl0gQ3J5cHRvUGtnL09wZW5zc2xMaWI6IEFkZCBuYXRpdmUNCj4gPj4+IGlu c3RydWN0aW9uIHN1cHBvcnQgZm9yIFg2NA0KPiA+Pj4NCj4gPj4+IFllcywgaW4gcmVzcG9uc2Ug dG8geW91ciByZXF1ZXN0LCBpdCB3YXMgZGlzY3Vzc2VkIG9uIHRoZSBtYWlsaW5nIGxpc3QgdGhh dA0KPiA+PiB0aGUNCj4gPj4+IE9wZW5TU0wgYXNzZW1ibHkgY29kZSBpcyBub3QgY29tcGF0aWJs ZSB3aXRoIEdDQyBpbiB0aGlzIGZvcm1hdC4gSXQgaXMNCj4gPj4gZnVsbHkNCj4gPj4+IGZ1bmN0 aW9uYWwgd2l0aCBWUyB0b29sY2hhaW4gYW5kIENMQU5HUERCIHRvb2xjaGFpbi4gVGhlIEdDQyB0 b29sY2hhaW4NCj4gPj4+IGFwcGVhcnMgdG8gYmUgdW5hYmxlIHRvIGhhbmRsZSBzb21lIGFzcGVj dHMgb2YgTkFTTSBjb2RlLCBwYXJ0aWN1bGFybHkgdGhlDQo+ID4+PiBDT01NT04gc2VjdGlvbiBh bmQgdGhlICJ3cnQgLi5pbWFnZWJhc2UiIHN0eWxlIG9mIHBvc2l0aW9uLWluZGVwZW5kZW50DQo+ ID4+PiBjb2RlLg0KPiA+Pj4gU2VlIDcuNi4xIGhlcmU6IGh0dHBzOi8vd3d3Lm5hc20udXMveGRv Yy8yLjEzLjAycmMzL2h0bWwvbmFzbWRvYzcuaHRtbA0KPiA+Pj4NCj4gPj4+IE1pa2UvTGFzemxv L0xpbWluZywNCj4gPj4+IENhbiB5b3UgaGVscCBtZSByZXNvbHZlIHRoZSBDSSBmYWlsdXJlcz8N Cj4gPj4+DQo+ID4+PiBUaGFua3MsDQo+ID4+PiBDaHJpc3RvcGhlciBadXJjaGVyDQo+ID4+Pg0K PiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogWWFvLCBKaWV3 ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+Pj4+IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIg NiwgMjAyMCAwMjoyMw0KPiA+Pj4+IFRvOiBadXJjaGVyLCBDaHJpc3RvcGhlciBKIDxjaHJpc3Rv cGhlci5qLnp1cmNoZXJAaW50ZWwuY29tPjsNCj4gPj4+PiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0K PiA+Pj4+IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IEx1LCBYaWFv eXVYDQo+ID4+PiA8eGlhb3l1eC5sdUBpbnRlbC5jb20+Ow0KPiA+Pj4+IEtpbm5leSwgTWljaGFl bCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+ID4+Pj4g PGFyZC5iaWVzaGV1dmVsQGFybS5jb20+DQo+ID4+Pj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVs XSBbUEFUQ0ggdjUgMC8yXSBDcnlwdG9Qa2cvT3BlbnNzbExpYjogQWRkIG5hdGl2ZQ0KPiA+Pj4+ IGluc3RydWN0aW9uIHN1cHBvcnQgZm9yIFg2NA0KPiA+Pj4+DQo+ID4+Pj4gSGkgWnVyY2hlcg0K PiA+Pj4+IEkgYW0gbm90IENJIHBlcnNvbiwgc28gSSByZWNvbW1lbmQgeW91IGhhdmUgYSBkaXNj dXNzaW9uIHdpdGggTWlrZSwNCj4gPj4+IExhc3psbywNCj4gPj4+PiBvciBMaW1pbmcgdG8gc2Vl IHdoYXQgaXMgdGhlIGJlc3Qgd2F5IHRvIHJlc29sdmUgdGhlIGNvZGluZyBzdHlsZSBpc3N1ZS4N Cj4gPj4gT3INCj4gPj4+PiBob3cgdG8gY2hhbmdlIENJIHJ1bGUgdG8gYWRkIGV4Y2VwdGlvbiBz b21ld2hlcmUuDQo+ID4+Pj4NCj4gPj4+PiBIb3dldmVyLCBJIGRvIGhhdmUgY29uY2Vybiwgd2hl biB5b3Ugc2F5OiAidGhlIG1vZHVsZSBpcyBub3QgY29tcGF0aWJsZQ0KPiA+Pj4gd2l0aA0KPiA+ Pj4+IEdDQyBidWlsZHMuIg0KPiA+Pj4+DQo+ID4+Pj4gSW4gcHJldmlvdXMgcmV2aWV3LCBJIGFs cmVhZHkgZ2F2ZSB0aGUgY29tbWVudCB0byBwYXNzIGJ1aWxkIHdpdGggR0NDIGFuZA0KPiA+Pj4+ IENMQU5HIGJlc2lkZXMgTVNWQy4gRG8geW91IG1lYW4gdGhpcyBwYXRjaCBjYW5ub3QgcGFzcyBH Q0MgYnVpbGQ/DQo+ID4+Pj4NCj4gPj4+PiBUaGFuayB5b3UNCj4gPj4+PiBZYW8gSmlld2VuDQo+ ID4+Pj4NCj4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4gRnJvbTog WnVyY2hlciwgQ2hyaXN0b3BoZXIgSiA8Y2hyaXN0b3BoZXIuai56dXJjaGVyQGludGVsLmNvbT4N Cj4gPj4+Pj4gU2VudDogRnJpZGF5LCBOb3ZlbWJlciA2LCAyMDIwIDU6NTAgUE0NCj4gPj4+Pj4g VG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBz LmlvDQo+ID4+Pj4+IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IEx1 LCBYaWFveXVYDQo+ID4+Pj4+IDx4aWFveXV4Lmx1QGludGVsLmNvbT47IEtpbm5leSwgTWljaGFl bCBEDQo+ID4+PiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+Ow0KPiA+Pj4+PiBBcmQgQmll c2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4NCj4gPj4+Pj4gU3ViamVjdDogUkU6IFtl ZGsyLWRldmVsXSBbUEFUQ0ggdjUgMC8yXSBDcnlwdG9Qa2cvT3BlbnNzbExpYjogQWRkDQo+ID4+ PiBuYXRpdmUNCj4gPj4+Pj4gaW5zdHJ1Y3Rpb24gc3VwcG9ydCBmb3IgWDY0DQo+ID4+Pj4+DQo+ ID4+Pj4+IEkgdGhpbmsgc29tZSBvZiB0aGVzZSBlcnJvcnMgYXJlIG5vdCByZWxldmFudCBiYXNl ZCBvbiB0aGUgbmF0dXJlIG9mDQo+ID4+IHRoZQ0KPiA+Pj4+PiBjb21taXQ6DQo+ID4+Pj4+DQo+ ID4+Pj4+IE9uZSBvZiB0aGUgZXJyb3JzIHJlcG9ydGVkIGlzIHRoYXQgdGhlIGFkZGVkIHR5cGVk ZWZzIChwdHJkaWZmX3QsDQo+ID4+IHdjaGFyX3QpDQo+ID4+Pj4gZG8NCj4gPj4+Pj4gbm90IGZv bGxvdyBjb2RpbmcgZ3VpZGVsaW5lcywgYnV0IHRoZSB0eXBlZGVmcyBhcmUgcmVxdWlyZWQgZm9y IE9wZW5TU0wNCj4gPj4+Pj4gY29tcGF0aWJpbGl0eSBhbmQgdGhleSBtYXRjaCB0aGUgYWxyZWFk eS1leGlzdGluZyBzdHlsZToNCj4gPj4+Pj4NCj4gPj4+Pj4gdHlwZWRlZiBVSU5UTiAgICAgICAg ICBzaXplX3Q7DQo+ID4+Pj4+IHR5cGVkZWYgVUlOVE4gICAgICAgICAgdV9pbnQ7DQo+ID4+Pj4+ ICt0eXBlZGVmIElOVE4gICAgICAgICAgIHB0cmRpZmZfdDsNCj4gPj4+Pj4gdHlwZWRlZiBJTlRO ICAgICAgICAgICBzc2l6ZV90Ow0KPiA+Pj4+PiB0eXBlZGVmIElOVDMyICAgICAgICAgIHRpbWVf dDsNCj4gPj4+Pj4gdHlwZWRlZiBVSU5UOCAgICAgICAgICBfX3VpbnQ4X3Q7DQo+ID4+Pj4+IHR5 cGVkZWYgVUlOVDggICAgICAgICAgc2FfZmFtaWx5X3Q7DQo+ID4+Pj4+IHR5cGVkZWYgVUlOVDgg ICAgICAgICAgdV9jaGFyOw0KPiA+Pj4+PiB0eXBlZGVmIFVJTlQzMiAgICAgICAgIHVpZF90Ow0K PiA+Pj4+PiB0eXBlZGVmIFVJTlQzMiAgICAgICAgIGdpZF90Ow0KPiA+Pj4+PiArdHlwZWRlZiBD SEFSMTYgICAgICAgICB3Y2hhcl90Ow0KPiA+Pj4+Pg0KPiA+Pj4+PiBBbm90aGVyIGVycm9yIGlz IHRoYXQgdGhlIGF1dG8tZ2VuZXJhdGVkIGFzc2VtYmx5IGZpbGVzIGRvIG5vdCBzdGFydA0KPiA+ PiB3aXRoDQo+ID4+Pj4+IGNhcGl0YWwgbGV0dGVycywgYnV0IHRoZXNlIGZpbGVuYW1lcyBjb21l IGZyb20gT3BlblNTTCB3aXRoIGxvd2VyY2FzZQ0KPiA+Pj4+PiBmaWxlbmFtZXMsIGFuZCB3ZSBh bHJlYWR5IGhhdmUgb3BlbnNzbGNvbmYuaCBpbiB0aGUgSW5jbHVkZSBmb2xkZXINCj4gPj4gd2hp Y2gNCj4gPj4+Pj4gaGFzIGEgbG93ZXJjYXNlIGZpbGVuYW1lLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBB bm90aGVyIGVycm9yIHR5cGUgcmVwb3J0ZWQgaXMgdGhhdCB0aGUgYXV0by1nZW5lcmF0ZWQgYXNz ZW1ibHkgZmlsZXMNCj4gPj4gZG8NCj4gPj4+PiBub3QNCj4gPj4+Pj4gaGF2ZSAiU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQiIGJ1dCBpdCB3YXMgYWxyZWFkeQ0K PiA+Pj4+PiBkaXNjdXNzZWQgb24gdGhlIGxpc3QgdGhhdCB0aGVzZSB3b3VsZCBiZSBjaGVja2Vk IGluIHdpdGggdGhlIE9wZW5TU0wNCj4gPj4+PiBoZWFkZXINCj4gPj4+Pj4gc2ltaWxhciB0byBv cGVuc3NsY29uZi5oOg0KPiA+Pj4+Pg0KPiA+Pj4gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29y ZS9lZGsyL2Jsb2IvbWFzdGVyL0NyeXB0b1BrZy9MaWJyYXJ5L0luY2x1ZGUvDQo+ID4+Pj4+IG9w ZW5zc2wvb3BlbnNzbGNvbmYuaA0KPiA+Pj4+Pg0KPiA+Pj4+PiBBZGRpdGlvbmFsbHksIHRoZXJl IGlzIGFuIGVycm9yIHRoYXQgT3BlbnNzbExpYlg2NC5pbmYgaXMgbm90IGluDQo+ID4+Pj4gQ3J5 cHRvUGtnLmRzYywNCj4gPj4+Pj4gYnV0IEkgYW0gbm90IHN1cmUgaWYgaXQgaXMgYXBwcm9wcmlh dGUgdG8gaW5jbHVkZSBhcyB0aGUgbW9kdWxlIGlzIG5vdA0KPiA+Pj4+PiBjb21wYXRpYmxlIHdp dGggR0NDIGJ1aWxkcy4NCj4gPj4+Pj4NCj4gPj4+Pj4gSG93IHNob3VsZCBJIHByb2NlZWQgaGVy ZT8NCj4gPj4+Pj4NCj4gPj4+Pj4gVGhhbmtzLA0KPiA+Pj4+PiBDaHJpc3RvcGhlciBadXJjaGVy DQo+ID4+Pj4+DQo+ID4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4g RnJvbTogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+Pj4+Pj4gU2VudDog VGh1cnNkYXksIE5vdmVtYmVyIDUsIDIwMjAgMjI6MTQNCj4gPj4+Pj4+IFRvOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsNCj4gPj4+IFp1 cmNoZXIsDQo+ID4+Pj4+PiBDaHJpc3RvcGhlciBKIDxjaHJpc3RvcGhlci5qLnp1cmNoZXJAaW50 ZWwuY29tPg0KPiA+Pj4+Pj4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29t PjsgTHUsIFhpYW95dVgNCj4gPj4+Pj4gPHhpYW95dXgubHVAaW50ZWwuY29tPjsNCj4gPj4+Pj4+ IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEFyZCBCaWVz aGV1dmVsDQo+ID4+Pj4+PiA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4NCj4gPj4+Pj4+IFN1Ympl Y3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY1IDAvMl0gQ3J5cHRvUGtnL09wZW5zc2xMaWI6 IEFkZA0KPiA+Pj4gbmF0aXZlDQo+ID4+Pj4+PiBpbnN0cnVjdGlvbiBzdXBwb3J0IGZvciBYNjQN Cj4gPj4+Pj4+DQo+ID4+Pj4+PiBIaSBadXJjaGVyDQo+ID4+Pj4+PiBJIGNyZWF0ZWQgaHR0cHM6 Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL3B1bGwvMTA5Mg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ IEhvd2V2ZXIsIHRoZXJlIGFyZSBmYWlsdXJlcyBpbiBDSSB0ZXN0LiBTbyB0aGlzIHBhdGNoIGlz IE5PVCBtZXJnZWQuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gUGxlYXNlIHRha2UgYSBsb29rIGFuZCBy ZXNvbHZlIGl0Lg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoYW5rIHlvdQ0KPiA+Pj4+Pj4gWWFvIEpp ZXdlbg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ Pj4+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g T24gQmVoYWxmIE9mDQo+ID4+PiBZYW8sDQo+ID4+Pj4+Pj4gSmlld2VuDQo+ID4+Pj4+Pj4gU2Vu dDogRnJpZGF5LCBOb3ZlbWJlciA2LCAyMDIwIDE6NTYgUE0NCj4gPj4+Pj4+PiBUbzogWnVyY2hl ciwgQ2hyaXN0b3BoZXIgSiA8Y2hyaXN0b3BoZXIuai56dXJjaGVyQGludGVsLmNvbT47DQo+ID4+ Pj4+Pj4gZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPj4+Pj4+PiBDYzogV2FuZywgSmlhbiBKIDxq aWFuLmoud2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1WA0KPiA+Pj4+Pj4+IDx4aWFveXV4Lmx1 QGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEDQo+ID4+Pj4+IDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT47DQo+ID4+Pj4+Pj4gQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGFy bS5jb20+DQo+ID4+Pj4+Pj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjUgMC8y XSBDcnlwdG9Qa2cvT3BlbnNzbExpYjogQWRkDQo+ID4+Pj4+IG5hdGl2ZQ0KPiA+Pj4+Pj4+IGlu c3RydWN0aW9uIHN1cHBvcnQgZm9yIFg2NA0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gUGF0Y2ggMS8y IHJldmlld2VkLWJ5OiBKaWV3ZW4gWWFvIDxKaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPj4+Pj4+ Pg0KPiA+Pj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4+PiBGcm9t OiBDaHJpc3RvcGhlciBKIFp1cmNoZXIgPGNocmlzdG9waGVyLmouenVyY2hlckBpbnRlbC5jb20+ DQo+ID4+Pj4+Pj4+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgNCwgMjAyMCA1OjU5IEFNDQo+ ID4+Pj4+Pj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+Pj4+Pj4+PiBDYzogWWFvLCBK aWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKDQo+ID4+Pj4+Pj4+IDxq aWFuLmoud2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1WCA8eGlhb3l1eC5sdUBpbnRlbC5jb20+ Ow0KPiA+Pj4gS2lubmV5LA0KPiA+Pj4+Pj4+PiBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwNCj4gPj4+Pj4+Pj4gPGFyZC5iaWVzaGV1dmVsQGFy bS5jb20+DQo+ID4+Pj4+Pj4+IFN1YmplY3Q6IFtQQVRDSCB2NSAwLzJdIENyeXB0b1BrZy9PcGVu c3NsTGliOiBBZGQgbmF0aXZlDQo+ID4+PiBpbnN0cnVjdGlvbg0KPiA+Pj4+Pj4+PiBzdXBwb3J0 IGZvciBYNjQNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gVjUgQ2hhbmdlczoNCj4gPj4+Pj4+Pj4g IE1vdmUgQXBpSG9va3MuYyBpbnRvIFg2NCBmb2xkZXINCj4gPj4+Pj4+Pj4gIFVwZGF0ZSBwcm9j ZXNzX2ZpbGVzLnBsIHRvIGNsZWFuIGFyY2hpdGVjdHVyZS1zcGVjaWZpYw0KPiA+PiBzdWJmb2xk ZXJzDQo+ID4+Pj4+PiB3aXRob3V0DQo+ID4+Pj4+Pj4+ICAgIHJlbW92aW5nIHRoZW0NCj4gPj4+ Pj4+Pj4gIFJlYmFzZWQgSU5GIGZpbGUgdG8gbWVyZ2UgbGF0ZXN0IGNoYW5nZXMgcmVnYXJkaW5n IFJuZ0xpYiB2cy4NCj4gPj4+PiBUaW1lckxpYg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBWNCBD aGFuZ2VzOg0KPiA+Pj4+Pj4+PiAgQWRkIGNvcHlyaWdodCBoZWFkZXIgdG8gdWVmaS1hc20uY29u Zg0KPiA+Pj4+Pj4+PiAgTW92ZSBbU291cmNlcy5YNjRdIGJsb2NrIHRvIGNvdmVyIGVudGlyZSBY NjQtc3BlY2lmaWMgY29uZmlnDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IFYzIENoYW5nZXM6DQo+ ID4+Pj4+Pj4+ICBBZGRlZCBkZWZpbml0aW9ucyBmb3IgcHRyZGlmZl90IGFuZCB3Y2hhcl90IHRv IENydExpYlN1cHBvcnQuaA0KPiA+PiBmb3INCj4gPj4+Pj4+Pj4gICAgTExWTS9DbGFuZyBidWls ZCBzdXBwb3J0Lg0KPiA+Pj4+Pj4+PiAgQWRkZWQgLVVXSU4zMiB0byBHQ0MgRmxhZ3MgZm9yIExM Vk0vQ2xhbmcgYnVpbGQgc3VwcG9ydC4NCj4gPj4+Pj4+Pj4gIEFkZGVkIG1pc3NpbmcgQUVTIEdD TSBhc3NlbWJseSBmaWxlLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBWMiBDaGFuZ2VzOg0KPiA+ Pj4+Pj4+PiAgTGltaXQgc2NvcGUgb2YgYXNzZW1ibHkgY29uZmlnIHRvIFNIQSBhbmQgQUVTIGZ1 bmN0aW9ucy4NCj4gPj4+Pj4+Pj4gIFJlbW92ZWQgSUEzMiBuYXRpdmUgc3VwcG9ydCAocmVkdWNl ZCBjb25maWcgd2FzIGNhdXNpbmcgYnVpbGQNCj4gPj4+PiBmYWlsdXJlDQo+ID4+Pj4+Pj4gYW5k DQo+ID4+Pj4+Pj4+ICAgIGNhbiBiZSBhZGRlZCBpbiBhIGxhdGVyIHBhdGNoKS4NCj4gPj4+Pj4+ Pj4gIFJlbW92ZWQgWE1NIGluc3RydWN0aW9ucyBmcm9tIGFzc2VtYmx5IGdlbmVyYXRpb24uDQo+ ID4+Pj4+Pj4+ICBBZGRlZCBhdXRvbWF0aWMgY29weXJpZ2h0IGhlYWRlciBwb3J0aW5nIGZvciBn ZW5lcmF0ZWQgYXNzZW1ibHkNCj4gPj4+Pj4gZmlsZXMuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBidWlsZGluZyB0aGUgbmF0aXZlIGluc3RydWN0 aW9uDQo+ID4+Pj4gYWxnb3JpdGhtcw0KPiA+Pj4+Pj4gZm9yDQo+ID4+Pj4+Pj4+IHRoZSBYNjQg YXJjaGl0ZWN0dXJlIGluIE9wZW5zc2xMaWIuIFRoZSBwcm9jZXNzX2ZpbGVzLnBsIHNjcmlwdA0K PiA+PiB3YXMNCj4gPj4+Pj4+IG1vZGlmaWVkDQo+ID4+Pj4+Pj4+IHRvIHBhcnNlIHRoZSAuYXNt IGZpbGUgdGFyZ2V0cyBmcm9tIHRoZSBPcGVuU1NMIGJ1aWxkIGNvbmZpZyBkYXRhDQo+ID4+Pj4g c3RydWN0LA0KPiA+Pj4+Pj4gYW5kDQo+ID4+Pj4+Pj4+IGdlbmVyYXRlIHRoZSBuZWNlc3Nhcnkg YXNzZW1ibHkgZmlsZXMgZm9yIHRoZSBFREsyIGJ1aWxkDQo+ID4+PiBlbnZpcm9ubWVudC4NCj4g Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gRm9yIHRoZSBYNjQgdmFyaWFudCwgT3BlblNTTCBpbmNsdWRl cyBjYWxscyB0byBhIFdpbmRvd3MgZXJyb3INCj4gPj4+PiBoYW5kbGluZw0KPiA+Pj4+Pj4gQVBJ LA0KPiA+Pj4+Pj4+PiBhbmQgdGhhdCBmdW5jdGlvbiBoYXMgYmVlbiBzdHViYmVkIG91dCBpbiBB cGlIb29rcy5jLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBGb3IgYWxsIHZhcmlhbnRzLCBhIGNv bnN0cnVjdG9yIGlzIGFkZGVkIHRvIGNhbGwgdGhlIHJlcXVpcmVkDQo+ID4+IENQVUlEDQo+ID4+ Pj4+PiBmdW5jdGlvbg0KPiA+Pj4+Pj4+PiB3aXRoaW4gT3BlblNTTCB0byBmYWNpbGl0YXRlIHBy b2Nlc3NvciBjYXBhYmlsaXR5IGNoZWNrcyBpbiB0aGUNCj4gPj4+PiBuYXRpdmUNCj4gPj4+Pj4+ Pj4gYWxnb3JpdGhtcy4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gQWRkaXRpb25hbCBuYXRpdmUg YXJjaGl0ZWN0dXJlIHZhcmlhbnRzIHNob3VsZCBiZSBzaW1wbGUgdG8gYWRkDQo+ID4+IGJ5DQo+ ID4+Pj4+PiBmb2xsb3dpbmcNCj4gPj4+Pj4+Pj4gdGhlIGNoYW5nZXMgbWFkZSBmb3IgdGhpcyBh cmNoaXRlY3R1cmUuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IFRoZSBPcGVuU1NMIGFzc2VtYmx5 IGZpbGVzIGFyZSB0cmFkaXRpb25hbGx5IGdlbmVyYXRlZCBhdCBidWlsZA0KPiA+PiB0aW1lDQo+ ID4+Pj4+PiB1c2luZyBhDQo+ID4+Pj4+Pj4+IHBlcmwgc2NyaXB0LiBUbyBhdm9pZCB0aGF0IGJ1 cmRlbiBvbiBFREsyIHVzZXJzLCB0aGVzZSBlbmQtcmVzdWx0DQo+ID4+Pj4+PiBhc3NlbWJseQ0K PiA+Pj4+Pj4+PiBmaWxlcyBhcmUgZ2VuZXJhdGVkIGR1cmluZyB0aGUgY29uZmlndXJhdGlvbiBz dGVwcyBwZXJmb3JtZWQgYnkNCj4gPj4gdGhlDQo+ID4+Pj4+Pj4gcGFja2FnZQ0KPiA+Pj4+Pj4+ PiBtYWludGFpbmVyICh0aHJvdWdoIHByb2Nlc3NfZmlsZXMucGwpLiBUaGUgcGVybCBnZW5lcmF0 b3Igc2NyaXB0cw0KPiA+Pj4+IGluc2lkZQ0KPiA+Pj4+Pj4+PiBPcGVuU1NMIGRvIG5vdCBwYXJz ZSBmaWxlIGNvbW1lbnRzIGFzIHRoZXkgYXJlIG9ubHkgbWVhbnQgdG8NCj4gPj4+IGNyZWF0ZQ0K PiA+Pj4+Pj4+PiBpbnRlcm1lZGlhdGUgYnVpbGQgZmlsZXMsIHNvIHByb2Nlc3NfZmlsZXMucGwg Y29udGFpbnMgYWRkaXRpb25hbA0KPiA+Pj4+IGhvb2tzDQo+ID4+Pj4+PiB0bw0KPiA+Pj4+Pj4+ PiBwcmVzZXJ2ZSB0aGUgY29weXJpZ2h0IGhlYWRlcnMgYXMgd2VsbCBhcyBjbGVhbiB1cCB0YWJz IGFuZCBsaW5lDQo+ID4+Pj4gZW5kaW5ncw0KPiA+Pj4+Pj4gdG8NCj4gPj4+Pj4+Pj4gY29tcGx5 IHdpdGggRURLMiBjb2Rpbmcgc3RhbmRhcmRzLiBUaGUgcmVzdWx0aW5nIGZpbGUgaGVhZGVycw0K PiA+PiBhbGlnbg0KPiA+Pj4+PiB3aXRoDQo+ID4+Pj4+Pj4+IHRoZSBnZW5lcmF0ZWQgLmggZmls ZXMgd2hpY2ggYXJlIGFscmVhZHkgaW5jbHVkZWQgaW4gdGhlIEVESzINCj4gPj4+PiByZXBvc2l0 b3J5Lg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBDYzogSmlld2VuIFlhbyA8amlld2VuLnlhb0Bp bnRlbC5jb20+DQo+ID4+Pj4+Pj4+IENjOiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwu Y29tPg0KPiA+Pj4+Pj4+PiBDYzogWGlhb3l1IEx1IDx4aWFveXV4Lmx1QGludGVsLmNvbT4NCj4g Pj4+Pj4+Pj4gQ2M6IE1pa2UgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4g Pj4+Pj4+Pj4gQ2M6IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBhcm0uY29tPg0KPiA+ Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBDaHJpc3RvcGhlciBKIFp1cmNoZXIgKDIpOg0KPiA+Pj4+Pj4+ PiAgQ3J5cHRvUGtnL09wZW5zc2xMaWI6IEFkZCBuYXRpdmUgaW5zdHJ1Y3Rpb24gc3VwcG9ydCBm b3IgWDY0DQo+ID4+Pj4+Pj4+ICBDcnlwdG9Qa2cvT3BlbnNzbExpYjogQ29tbWl0IHRoZSBhdXRv LWdlbmVyYXRlZCBhc3NlbWJseSBmaWxlcw0KPiA+Pj4gZm9yDQo+ID4+Pj4+IFg2NA0KPiA+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL09wZW5zc2xMaWIu aW5mDQo+ID4+Pj4gfA0KPiA+Pj4+Pj4gMiArLQ0KPiA+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFy eS9PcGVuc3NsTGliL09wZW5zc2xMaWJDcnlwdG8uaW5mDQo+ID4+Pj4gfA0KPiA+Pj4+Pj4gMiAr LQ0KPiA+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL09wZW5zc2xMaWJYNjQu aW5mDQo+ID4+Pj4gfA0KPiA+Pj4+Pj4gNjUzICsrKw0KPiA+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGli cmFyeS9JbmNsdWRlL0NydExpYlN1cHBvcnQuaA0KPiA+Pj4+IHwNCj4gPj4+Pj4+IDIgKw0KPiA+ Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9JbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYuaA0K PiA+Pj4+IHwNCj4gPj4+Pj4+IDMgLQ0KPiA+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVu c3NsTGliL09wZW5zc2xMaWJDb25zdHJ1Y3Rvci5jDQo+ID4+Pj4gfA0KPiA+Pj4+Pj4gMzQgKw0K PiA+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL1g2NC9BcGlIb29rcy5jDQo+ ID4+Pj4gfA0KPiA+Pj4+Pj4gMTggKw0KPiA+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVu c3NsTGliL1g2NC9jcnlwdG8vYWVzL2Flc25pLW1iLQ0KPiA+Pj4geDg2XzY0Lm5hc20NCj4gPj4+ Pj4gfA0KPiA+Pj4+Pj4+PiA3MzIgKysrDQo+ID4+Pj4+Pj4+IENyeXB0b1BrZy9MaWJyYXJ5L09w ZW5zc2xMaWIvWDY0L2NyeXB0by9hZXMvYWVzbmktc2hhMS0NCj4gPj4+Pj4geDg2XzY0Lm5hc20g ICB8DQo+ID4+Pj4+Pj4+IDE5MTYgKysrKysrKysNCj4gPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJh cnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL2Flcy9hZXNuaS1zaGEyNTYtDQo+ID4+Pj4+IHg4Nl82 NC5uYXNtDQo+ID4+Pj4+Pj4gfA0KPiA+Pj4+Pj4+PiA3OCArDQo+ID4+Pj4+Pj4+IENyeXB0b1Br Zy9MaWJyYXJ5L09wZW5zc2xMaWIvWDY0L2NyeXB0by9hZXMvYWVzbmkteDg2XzY0Lm5hc20NCj4g Pj4+Pj4gfA0KPiA+Pj4+Pj4+PiA1MTAzICsrKysrKysrKysrKysrKysrKysrDQo+ID4+Pj4+Pj4+ IENyeXB0b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIvWDY0L2NyeXB0by9hZXMvdnBhZXMteDg2XzY0 Lm5hc20NCj4gPj4+Pj4gfA0KPiA+Pj4+Pj4+PiAxMTczICsrKysrDQo+ID4+Pj4+Pj4+IENyeXB0 b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIvWDY0L2NyeXB0by9tb2Rlcy9hZXNuaS1nY20tDQo+ID4+ Pj4+IHg4Nl82NC5uYXNtDQo+ID4+Pj4+Pj4+IHwgICAzNCArDQo+ID4+Pj4+Pj4+IENyeXB0b1Br Zy9MaWJyYXJ5L09wZW5zc2xMaWIvWDY0L2NyeXB0by9tb2Rlcy9naGFzaC0NCj4gPj4+IHg4Nl82 NC5uYXNtDQo+ID4+Pj4+IHwNCj4gPj4+Pj4+Pj4gMTU2OSArKysrKysNCj4gPj4+Pj4+Pj4gQ3J5 cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL3NoYS9zaGExLW1iLQ0KPiA+Pj4g eDg2XzY0Lm5hc20NCj4gPj4+Pj4gfA0KPiA+Pj4+Pj4+PiAzMTM3ICsrKysrKysrKysrKw0KPiA+ Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL1g2NC9jcnlwdG8vc2hhL3NoYTEt eDg2XzY0Lm5hc20NCj4gPj4+Pj4gfA0KPiA+Pj4+Pj4+PiAyODg0ICsrKysrKysrKysrDQo+ID4+ Pj4+Pj4+IENyeXB0b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIvWDY0L2NyeXB0by9zaGEvc2hhMjU2 LW1iLQ0KPiA+Pj4+PiB4ODZfNjQubmFzbQ0KPiA+Pj4+Pj4+IHwNCj4gPj4+Pj4+Pj4gMzQ2MSAr KysrKysrKysrKysrDQo+ID4+Pj4+Pj4+IENyeXB0b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIvWDY0 L2NyeXB0by9zaGEvc2hhMjU2LQ0KPiA+Pj4geDg2XzY0Lm5hc20NCj4gPj4+Pj4gfA0KPiA+Pj4+ Pj4+PiAzMzEzICsrKysrKysrKysrKysNCj4gPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3Bl bnNzbExpYi9YNjQvY3J5cHRvL3NoYS9zaGE1MTItDQo+ID4+PiB4ODZfNjQubmFzbQ0KPiA+Pj4+ PiB8DQo+ID4+Pj4+Pj4+IDE5MzggKysrKysrKysNCj4gPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJh cnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL3g4Nl82NGNwdWlkLm5hc20NCj4gPj4+PiB8DQo+ID4+ Pj4+PiA0OTENCj4gPj4+Pj4+Pj4gKysNCj4gPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3Bl bnNzbExpYi9wcm9jZXNzX2ZpbGVzLnBsDQo+ID4+Pj4gfA0KPiA+Pj4+Pj4gMjMyICstDQo+ID4+ Pj4+Pj4+IENyeXB0b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIvdWVmaS1hc20uY29uZg0KPiA+Pj4+ IHwNCj4gPj4+Pj4+IDIxICsNCj4gPj4+Pj4+Pj4gMjIgZmlsZXMgY2hhbmdlZCwgMjY3NDYgaW5z ZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pDQo+ID4+Pj4+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0 NA0KPiA+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9PcGVuc3NsTGliWDY0LmluZg0K PiA+Pj4+Pj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFy eS9PcGVuc3NsTGliL09wZW5zc2xMaWJDb25zdHJ1Y3Rvci5jDQo+ID4+Pj4+Pj4+IGNyZWF0ZSBt b2RlIDEwMDY0NCBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL1g2NC9BcGlIb29rcy5jDQo+ ID4+Pj4+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9P cGVuc3NsTGliL1g2NC9jcnlwdG8vYWVzL2Flc25pLQ0KPiA+Pj4+Pj4+PiBtYi14ODZfNjQubmFz bQ0KPiA+Pj4+Pj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPj4+Pj4gQ3J5cHRvUGtnL0xpYnJh cnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL2Flcy9hZXNuaS0NCj4gPj4+Pj4+Pj4gc2hhMS14ODZf NjQubmFzbQ0KPiA+Pj4+Pj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPj4+Pj4gQ3J5cHRvUGtn L0xpYnJhcnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL2Flcy9hZXNuaS0NCj4gPj4+Pj4+Pj4gc2hh MjU2LXg4Nl82NC5uYXNtDQo+ID4+Pj4+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+Pj4+PiBD cnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL1g2NC9jcnlwdG8vYWVzL2Flc25pLQ0KPiA+Pj4+ Pj4+PiB4ODZfNjQubmFzbQ0KPiA+Pj4+Pj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPj4+Pj4g Q3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL2Flcy92cGFlcy0NCj4gPj4+ Pj4+Pj4geDg2XzY0Lm5hc20NCj4gPj4+Pj4+Pj4gY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4+Pj4+ Pj4+IENyeXB0b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIvWDY0L2NyeXB0by9tb2Rlcy9hZXNuaS1n Y20tDQo+ID4+Pj4+IHg4Nl82NC5uYXNtDQo+ID4+Pj4+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NA0K PiA+Pj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL1g2NC9jcnlwdG8vbW9kZXMv Z2hhc2gtDQo+ID4+PiB4ODZfNjQubmFzbQ0KPiA+Pj4+Pj4+PiBjcmVhdGUgbW9kZSAxMDA2NDQN Cj4gPj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL3NoYS9zaGEx LQ0KPiA+Pj4+Pj4+PiBtYi14ODZfNjQubmFzbQ0KPiA+Pj4+Pj4+PiBjcmVhdGUgbW9kZSAxMDA2 NDQNCj4gPj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9YNjQvY3J5cHRvL3NoYS9z aGExLQ0KPiA+Pj4+Pj4+PiB4ODZfNjQubmFzbQ0KPiA+Pj4+Pj4+PiBjcmVhdGUgbW9kZSAxMDA2 NDQNCj4gPj4+Pj4+PiBDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGliL1g2NC9jcnlwdG8vc2hh L3NoYTI1Ni0NCj4gPj4+Pj4+Pj4gbWIteDg2XzY0Lm5hc20NCj4gPj4+Pj4+Pj4gY3JlYXRlIG1v ZGUgMTAwNjQ0DQo+ID4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExpYi9YNjQvY3J5 cHRvL3NoYS9zaGEyNTYtDQo+ID4+Pj4+Pj4+IHg4Nl82NC5uYXNtDQo+ID4+Pj4+Pj4+IGNyZWF0 ZSBtb2RlIDEwMDY0NA0KPiA+Pj4+Pj4+IENyeXB0b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIvWDY0 L2NyeXB0by9zaGEvc2hhNTEyLQ0KPiA+Pj4+Pj4+PiB4ODZfNjQubmFzbQ0KPiA+Pj4+Pj4+PiBj cmVhdGUgbW9kZSAxMDA2NDQNCj4gPj4+Pj4+Pj4gQ3J5cHRvUGtnL0xpYnJhcnkvT3BlbnNzbExp Yi9YNjQvY3J5cHRvL3g4Nl82NGNwdWlkLm5hc20NCj4gPj4+Pj4+Pj4gY3JlYXRlIG1vZGUgMTAw NjQ0IENyeXB0b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIvdWVmaS1hc20uY29uZg0KPiA+Pj4+Pj4+ Pg0KPiA+Pj4+Pj4+PiAtLQ0KPiA+Pj4+Pj4+PiAyLjI4LjAud2luZG93cy4xDQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gDQo+ID4+Pj4+Pj4NCj4gPg0K