Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp3984236ybi; Mon, 27 May 2019 08:59:09 -0700 (PDT) X-Google-Smtp-Source: APXvYqw5pWEycRodJDxGhY4lCd3gkh6v41I51oE5AtG8KNCjGcixWWywF1akgYYfS2ucIAJVHPek X-Received: by 2002:a62:582:: with SMTP id 124mr138465201pff.209.1558972749497; Mon, 27 May 2019 08:59:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558972749; cv=none; d=google.com; s=arc-20160816; b=qOr3eZpkG0uPKtdNQn/Gg90RoUnIy431qF5if1s9p4XiISaCJkFrZNrHjTEUiAhDZ5 vKJ0dUXiZ59SVTZz7r9DvgrV+lZ44tt+S02ysLUJL1mtaG2YVcM2UVfAEydV7dO0f+Jn jS8QCyp6j0BSqKrOca+Z/+rW0uOTY0oqC10VokXT1h4sHRrEBcU57kBV7kSrj0w8amY7 W9DzT5IAzzDjgtwNrN3uSV4CpFizz3onNvmpn3cj8uz0+ZlskInMb7ihI9sIBhiHZO65 Jg912ddsVQ1vNwRfeYi+NkbOtwuJ65HoZtlc4t0hvO+54d2oBAqopOtxo6eG7sepUIkJ z92A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=neT4+n/gqPAPX7KdW5deBtAdr6jdQeRCYhT+NruTFh8=; b=P7b7HQfDprHK7Ch+EDWJRoaCTb8iKlhft1SQQHfKnh65XSuOsqnHewJwue70YuRWuX 28LBmHXwkl4CuiRtdyLUMIk2PcfJTnLOcubwgGzxPHQLXEC22GfYgoqyum6g5XdS0ilA YO3BQUGj4hTAz8YOclEX/2hOqCrEHA4x7nYfVywo5yuVy2kSIOhRSfVHDabV/UUsNSYx Vnlysb5z0rWhLAr/nxdow/NQXUO3pKjqR1hGb+nqtRLmsw0IJCg+rWvEk7q0qZ1VXsWr QRBUyK2qvjWNKn30AXbB+PXLarUJLMNn308eI+Oh+bV02DfMWpZelrEj8ugo2YHsTV2j OHrw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@insidesecure.onmicrosoft.com header.s=selector1-insidesecure-onmicrosoft-com header.b=KYui4m9d; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e63si18347710pgc.340.2019.05.27.08.58.45; Mon, 27 May 2019 08:59:09 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@insidesecure.onmicrosoft.com header.s=selector1-insidesecure-onmicrosoft-com header.b=KYui4m9d; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726329AbfE0P40 (ORCPT + 99 others); Mon, 27 May 2019 11:56:26 -0400 Received: from mail-eopbgr50111.outbound.protection.outlook.com ([40.107.5.111]:9287 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726274AbfE0P40 (ORCPT ); Mon, 27 May 2019 11:56:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=insidesecure.onmicrosoft.com; s=selector1-insidesecure-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=neT4+n/gqPAPX7KdW5deBtAdr6jdQeRCYhT+NruTFh8=; b=KYui4m9d/OVKXmzJiPEdwWl2WP5s+i6CFZEOlUEyLsTB1td4o7srBHVew2OGyMugAM/mZrWVXjVwcePIo3zVjgcOUSKwH7eh24vnGxiRqUp6Igf9RnZudvzEWiycSSPbp64ynv0f1s8ZwPVpnYuBwUcZN04F7sHy7zzezIHvxz0= Received: from AM6PR09MB3523.eurprd09.prod.outlook.com (10.255.99.206) by AM6PR09MB2901.eurprd09.prod.outlook.com (20.179.3.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1922.17; Mon, 27 May 2019 15:56:15 +0000 Received: from AM6PR09MB3523.eurprd09.prod.outlook.com ([fe80::8c11:e692:3a44:a3a9]) by AM6PR09MB3523.eurprd09.prod.outlook.com ([fe80::8c11:e692:3a44:a3a9%6]) with mapi id 15.20.1922.021; Mon, 27 May 2019 15:56:15 +0000 From: Pascal Van Leeuwen To: Ard Biesheuvel CC: Christophe Leroy , "linux-crypto@vger.kernel.org" Subject: RE: another testmgr question Thread-Topic: another testmgr question Thread-Index: AQHVEZmK2bzdbrfsm0iVWRutGLPeSaZ5GFjggAAKVYCAAAs7wIAAMw6AgACM6vCAAAlSgIAAAtPQgAAIJACAAAD1MIAABH2AgAS0FFCAAAQtAIAAAZkAgAAJO4CAAADysIAABwUAgAAHPfCAADyaAIAABnvw Date: Mon, 27 May 2019 15:56:15 +0000 Message-ID: References: <20190523185833.GA243994@google.com> <20190523200557.GA248378@gmail.com> <20190523234853.GC248378@gmail.com> <907eb6a5-dc76-d5ee-eccf-e7bd426a0868@c-s.fr> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=pvanleeuwen@insidesecure.com; x-originating-ip: [188.204.2.113] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4c947ba8-5ed0-4db2-dab1-08d6e2bbd976 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:AM6PR09MB2901; x-ms-traffictypediagnostic: AM6PR09MB2901: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 0050CEFE70 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(376002)(346002)(366004)(396003)(39850400004)(136003)(199004)(189003)(54014002)(6916009)(478600001)(7116003)(7736002)(6246003)(99286004)(102836004)(81166006)(4326008)(305945005)(7696005)(68736007)(25786009)(9686003)(86362001)(6506007)(76176011)(55016002)(8936002)(66066001)(15974865002)(14444005)(256004)(66946007)(6436002)(229853002)(73956011)(66476007)(76116006)(66556008)(64756008)(66446008)(316002)(74316002)(2906002)(52536014)(3846002)(6116002)(53936002)(5660300002)(81156014)(186003)(446003)(11346002)(8676002)(3480700005)(14454004)(33656002)(54906003)(71190400001)(71200400001)(476003)(26005)(486006)(18886075002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM6PR09MB2901;H:AM6PR09MB3523.eurprd09.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: insidesecure.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: yIbeva0KN/TwMai/3fH0GJVPTp7TtUOu8VS8Y+vSakZFELiRLp1rDRTT8w92t+fw1aHoCoL9dQEb+ySSChHGSfivwFFvzC7JS3qTAyt2Lx5szlf3hfXYu7kUDbfJQIT3C2ZRpmRxXQSyzd+baF0sg4kTGm+EpqzXSUuZlmk0IIyHnBiPI+igCDLZXigyx84U6l27ThoiM9twvwjPfyn0EguRMRww2cvrtFQ6H/hIg5H+ZTAxUMkHV35dyS4FYVS6+kfbXuEGzz9U2mVEiHPPI01bx2Jmf6xC154rLqQYQ9sj54tCzoOqc45K3spDu5qZGozvgT0dPKZB7qn+3DAa/Td+dfAJiIhkE76eEgNVWyN1HNBvbbUUKYS2G6jGZJLNjmWUV4HKhWbSNwNxmJ39CMsQ3cXcZnIuSYZHVIv8Xyo= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: insidesecure.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c947ba8-5ed0-4db2-dab1-08d6e2bbd976 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 May 2019 15:56:15.3351 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3c07df58-7760-4e85-afd5-84803eac70ce X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pvanleeuwen@insidesecure.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR09MB2901 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org PiA+IEkgdW5kZXJzdGFuZCB0aGF0IGFzIHdlbGwuIEJ1dCB0aGF0IGRvZXNuJ3QgY2hhbmdlIHRo ZSBmYWN0IHRoYXQgdGhlDQo+ID4gYXBwbGljYXRpb24gbWF5IGJlIHdhaXRpbmcgZm9yIGEgbG9v b29vb25nIChyZWxhdGl2ZWx5IHNwZWFraW5nKSB0aW1lDQo+ID4gZm9yIGl0J3MgcmVzdWx0cy4g QXMgbGF0ZW5jeSB0aHJvdWdoIGhhcmR3YXJlIG1heSBiZSBzZXZlcmFsIG9yZGVycyBvZg0KPiA+ IGEgbWFnbml0dWRlIGxhcmdlciB0aGFuIHRoZSB0aW1lIGl0IGFjdHVhbGx5IHRha2VzIHRvICpw cm9jZXNzKiB0aGUNCj4gPiByZXF1ZXN0LiAgU28gd2hlbiB1c2VkIHN5bmNocm9ub3VzbHkgdGhl IEhXIG1heSBhcHBlYXIgdG8gd29yayBhdCBhIG1lcmUNCj4gPiBmcmFjdGlvbiBvZiBpdHMgdHJ1 ZSBwZXJmb3JtYW5jZS4NCj4gPg0KPg0KPiBPZiBjb3Vyc2UuIFNvbWV0aW1lcyB5b3UgY2FyZSBh Ym91dCB0aGF0LCBhbmQgc29tZXRpbWVzIHlvdSBkb24ndC4NCj4NCj4gPiBBbmQgaWYgeW91ciBt YWluIGludGVyZXN0IGlzIGluIHRoYXQgYXBwbGljYXRpb24sIHlvdSBtYXkgbm90IGNhcmUgc28N Cj4gPiBtdWNoIGFib3V0IHdoYXQgdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbSBkb2VzLCBldmVuIGlm IGl0IGNhbiB1c2UgdGhlDQo+ID4gcmVtYWluaW5nIGJhbmR3aWR0aCBvZiB0aGUgYWNjZWxlcmF0 b3IuDQo+ID4NCj4NCj4gMTAwcyBvZiBpbnN0YW5jZXMgb2YgdGhhdCBhcHBsaWNhdGlvbiwgdGhy ZWFkLCBldGMgY291bGQgYmUgcnVubmluZyBhdA0KPiB0aGUgc2FtZSB0aW1lLCBhbmQgdGhyb3Vn aHB1dCBtYXkgYmUgbW9yZSBpbXBvcnRhbnQgdGhhbiBsYXRlbmN5Lg0KPg0KPiA+IEluIHdoaWNo IGNhc2UgaXQgbWF5IGJlIGRlc2lyYWJsZSAqbm90KiB0byB1c2UgdGhlIGFjY2VsZXJhdG9yIGZv ciB0aGF0DQo+ID4gYXBwbGljYXRpb24gYXQgYWxsIGR1ZSB0byAqdmVyeSogcG9vciBwZXJmb3Jt YW5jZSAoZm9yIHRoYXQgYXBwbGljYXRpb24pLg0KPiA+DQo+ID4gV2hpY2ggd291bGQgbWFrZSBl dmVuIG1vcmUgY3ljbGVzIG9uIHRoZSBhY2NlbGVyYXRvciBhdmFpbGFibGUgdG8gdGhlDQo+ID4g b3RoZXIgYXBwbGljYXRpb25zIGluIHRoZSBzeXN0ZW0sIHNvIHRoYXQga25pZmUgY3V0cyBib3Ro IHdheXMgLi4uDQo+ID4NCj4NCj4gU2luZ2xlIHRocmVhZCBwZXJmb21hbmNlIGlzIG9ubHkgb25l IG1ldHJpYywgYW5kIGl0IG1heSBub3QgYmUgdGhlIG9uZQ0KPiB5b3UgY2FyZSBhYm91dCBtb3N0 Lg0KPg0KDQpIb3cgcmVsZXZhbnQgaXMgdGhlIGZhY3QgdGhhdCB0aGVyZSBtYXkgYmUgKG90aGVy KSBzaXR1YXRpb25zIHdoZXJlIGxhdGVuY3kNCmlzIG5vdCByZWxldmFudCBmb3Igc29tZW9uZSBi ZWluZyBpbiBhIHNpdHVhdGlvbiB3aGVyZSBpdCBpcyByZWxldmFudD8NCg0KSSB3YXMganVzdCB0 YWxraW5nIGFib3V0IHRoYXQgc2l0dWF0aW9uIHdoZXJlIGl0IGFjdHVhbGx5IGlzIHJlbGV2YW50 IGFuZA0KdGhlcmVmb3JlIHlvdSBkbyAqbm90KiB3aXNoIHRoZSBoYXJkd2FyZSBkcml2ZXIgdG8g YmUgdXNlZC4NCg0KT2ssIGxldCdzIHBocmFzZSBpdCBzdWNoIHRoYXQgY2FuIGJlIG5vIGZ1cnRo ZXIgbWlzdW5kZXJzdGFuZGluZ3M6DQoNCklmIHlvdSB3YW50IHBlcmZvcm1hbmNlIGZyb20gYSBz aW5nbGUtdGhyZWFkZWQgc2luZ2xlIGFwcGxpY2F0aW9uIHRoYXQgZG9lcw0Kc3luY2hyb25vdXMs IGJsb2NraW5nLCBjcnlwdG8gQVBJIGNhbGxzLCB0aGVuIHlvdSBkbyBub3Qgd2FudCB0aG9zZSB0 byBlbmQNCnVwIGF0IG91ciBoYXJkd2FyZS4gT3IsIHZlcnkgbGlrZWx5LCBwcmV0dHkgbXVjaCBh bnkgb3RoZXIgaGFyZHdhcmUuDQpUaGUgY3JhX3ByaW9yaXR5IG1lY2hhbmlzbSBkb2VzIG5vdCBh bGxvdyB0aGUgZHJpdmVyIHRvIGNvbnZleSBzdWNoIGEgdGhpbmcuDQoNCj4gPiBBZGRpbmcgdG9u cyBvZiB3b3JrYXJvdW5kcyB0byBkcml2ZXJzLCBmb3IgZXhhbXBsZSwgc2xvd3MgdGhlbSBkb3du LCBtYWtlcw0KPiB0aGVtDQo+ID4gdXNlIG1vcmUgQ1BVIGN5Y2xlcyBhbmQgbW9yZSBwb3dlciwg YW5kIHVsdGltYXRlbHkgZGVmZWF0cyB0aGUgcHVycG9zZSBvZg0KPiBoYXZpbmcNCj4gPiBhIGhh cmR3YXJlIGFjY2VsZXJhdG9yIGF0IGFsbC4gVGhhdCBpcyBhY3R1YWxseSBteSBjb25jZXJuLg0K Pg0KPiBJZiB0aGUgd29ya2Fyb3VuZCBpcyBpbiBhIGRyaXZlciBhbmQgbm90IG9uIGEgaG90IHBh dGgsIHdlIGRvbid0DQo+IHJlYWxseSBjYXJlIGFib3V0IHRoZSBtZW1vcnkgZm9vdHByaW50Lg0K Pg0KVGhlc2Ugd29ya2Fyb3VuZHMgYXJlIG9uIGEgaG90IHBhdGggYnkgZGVmaW5pdGlvbiwgYXMg dGhleSBoYXZlIHRvIGZpbHRlcg0Kb3V0IHNwZWNpZmljIHJlcXVlc3RzIGNvbWluZyBpbiwgaS5l LiBpdCBhZmZlY3RzIGV2ZXJ5IHNpbmdsZSByZXF1ZXN0IGRvbmUNCnRvIHRoZSBkcml2ZXIuIEFz IGZvciBtZW1vcnkgZm9vdHByaW50OiB0aGF0IGlzIHN0aWxsIHJlbGV2YW50IGZvciBlbWJlZGRl ZA0Kc3lzdGVtcyBldmVuIHRvZGF5LiBCZXNpZGVzLCBtZW1vcnkgZm9vdHByaW50IGFmZmVjdHMg aW5zdHJ1Y3Rpb24gY2FjaGUgaGl0DQpyYXRpbyBhbmQgdGhlcmVmb3JlLCBpbmRpcmVjdGx5LCBw ZXJmb3JtYW5jZSBhcyB3ZWxsLg0KDQo+ID4gQW5kIGFzIGFuIGFzaWRlLCBvbmNlIHdvcmthcm91 bmRzIGhhdmUgYmVlbiBpbXBsZW1lbnRlZCBhbmQgcHJvdmVuIHRvDQo+ICJ3b3JrIiwgdGhlDQo+ ID4gdW5kZXJseWluZyBpc3N1ZSByYXJlbHkgbWFrZXMgaXQgdG8gdGhlIEhXIGd1eXMgc28gd2Un cmUgc3R1Y2sgd2l0aCBpdA0KPiBmb3JldmVyLg0KPiA+DQo+DQo+IFdlbGwsIHRoZSBzdGFydGlu ZyBwb2ludCBvZiB0aGUgYXJndW1lbnQgd2FzIHRoYXQgeW91IGRlbGliZXJhdGVseQ0KPiBvbWl0 dGVkIGhhbmRsaW5nIG9mIHplcm8gbGVuZ3RoIGlucHV0cyB0byBzYXZlIHNpbGljb24gYXJlYS4N Cj4NCldoZXJlIGRpZCBJIGV2ZXIgc2F5IHRoYXQgd2Ugb21pdHRlZCB0aGF0IHRvIHNhdmUgc2ls aWNvbiBhcmVhPw0KWW91J3JlIHB1dHRpbmcgd29yZHMgaW4gbXkgbW91dGggKG9yIGZpbmdlcnMp IG5vdy4gSSBuZXZlciBzYWlkIHRoYXQsDQp0aGF0IGlzIG5vdCB0aGUgcmVhc29uIGF0IGFsbC4N Cg0KPiBTbyB0aGUNCj4gaXNzdWUgd291bGQgYWxyZWFkeSBiZSBrbm93biB0byB0aGUgaC93IGd1 eXMsIGFuZCB0aGV5IGRlY2lkZWQgaXQgd2FzDQo+IHNvbWV0aGluZyB0aGV5J2QgcHVudCB0byB0 aGUgc29mdHdhcmUgaW5zdGVhZC4NCj4NCk5PLiBXZSBuZXZlciBkZWNpZGVkIGFueSBzdWNoIHRo aW5nLiBXZSBkZWNpZGVkIHRoYXQgaXQgd2FzIG5vdCBhIHJlbGV2YW50DQp1c2UgY2FzZSB0aGF0 IHdlIG5lZWRlZCB0byBzdXBwb3J0IGF0IGFsbC4gTmVpdGhlciBpbiB0aGUgaGFyZHdhcmUgbm9y IGluDQp0aGUgZHJpdmVyLiBPdXIgb3duIGdlbmVyaWMgT1MgZHJpdmVyIGRvZXMgbm90IGNvbnRh aW4gYW55IHN1Y2ggd29ya2Fyb3VuZHMuDQpJbiBmYWN0LCBiYXNlZCBvbiB0aGlzIExpbnV4IGRy aXZlciB0aGluZyB3ZSBoYWQgYSBuZXcgaW50ZXJuYWwgZGlzY3Vzc2lvbg0Kb24gaXQgYW5kIHRo ZSBvdXRjb21lIGRpZCBub3QgY2hhbmdlOiBub3QgYSByZWxldmFudCB1c2UgY2FzZSBmb3IgdXMu DQoNCj4gPiBOTy4gSGFyZHdhcmUgaXMgYnJva2VuIGlmIGl0IGRvZXNuJ3QgY29tcGx5IHRvIGl0 cyBvd24gc3BlY2lmaWNhdGlvbnMgLQ0KPiA+IHdoaWNoICptYXkqIGluY2x1ZGUgcmVmZXJlbmNl cyB0byBpbmR1c3RyeSBzdGFuZGFyZHMgaXQgbXVzdCBjb21wbHkgd2l0aC4NCj4gPiBJZiBJIGlu dGVudGlvbmFsbHkgc3BlY2lmeSB0aGF0IHplcm8gbGVuZ3RoIGhhc2hlcyBhcmUgbm90IHN1cHBv cnRlZCwgYW5kDQo+ID4gSSBkb24ndCBwcmV0ZW5kIHRvIGNvbXBseSB3aXRoIGFueSBpbmR1c3Ry eSBzdGFuZGFyZCB0aGF0IHJlcXVpcmVzIHRoZW0sDQo+ID4gdGhlbiB0aGF0J3MganVzdCBhICps aW1pdGF0aW9uKiBvZiB0aGUgaGFyZHdhcmUsIG1vc3QgY2VydGFpbmx5IG5vdCBhIGJ1Zy4NCj4N Cj4gRmFpciBlbm91Z2guIEJ1dCBpZiB5b3Ugd2FudCB0byBpbnRlZ3JhdGUgdGhhdCBoL3cgaW4g YSBzeXN0ZW0gdGhhdA0KPiBkb2VzIGFpbSB0byBjb21wbHksIGl0IGlzIHVwIHRvIHRoZSBzb2Z0 d2FyZSB0byBmaXggdGhlIGltcGVkYW5jZQ0KPiBtaXNtYXRjaC4NCj4NCkNvbXBseSB3aXRoIHdo YXQgZXhhY3RseT8gWW91IGNhbid0ICJjb21wbHkiIHdpdGggYWxnb3JpdGhtcyAuLi4geW91IGp1 c3QNCmltcGxlbWVudCB3aGF0ZXZlciBzdWJzZXQgbWFrZXMgc2Vuc2UgYW5kIHNwZWNpZnkgdGhl IGNvbnN0cmFpbnRzLiBZb3UgY2FuDQpjb21wbHkgd2l0aCBwcm90b2NvbCBzcGVjaWZpY2F0aW9u cywgYW5kIHRoYXQncyB3aGF0IHdlIGRvLiBOb25lIG9mIHRob3NlDQpyZXF1aXJlcyB6ZXJvIGxl bmd0aCBoYXNoaW5nLCBITUFDLCBjaXBoZXIgb3IgQUVBRCBvcGVyYXRpb25zLg0KTWFueSBhbGdv cml0aG1zIGFyZSB1bmJvdW5kZWQgYW55d2F5IGFuZCBoYXJkd2FyZSBpcyBib3VuZGVkIGJ5IGRl ZmluaXRpb24uDQoNCj4gPiBIYXJkd2FyZSBuZWNlc3NhcmlseSAqYWx3YXlzKiBoYXMgbGltaXRh dGlvbnMgYmVjYXVzZSBvZiBhbGwga2luZHMgb2YNCj4gPiBjb25zdHJhaW50czogYXJlYSwgcG93 ZXIsIGNvbXBsZXhpdHkuIEFuZCBldmVuIHNvbWV0aGluZyBhcyBtdW5kYW5lIGFzIGENCj4gPiBz Y2hlZHVsZSBjb25zdHJhaW50IHdoZXJlIHlvdSBzaW1wbHkgY2FuJ3QgZml0IGFsbCBkZXNpcmVk IGZlYXR1cmVzIGluIHRoZQ0KPiA+IGRlc2lyZWQgc2NoZWR1bGUuIFdoaWNoIGlzIHVzdWFsbHkg dmVyeSBzb2xpZCBkdWUgdG8gdGltZXNsb3RzIGJlaW5nDQo+ID4gcGxhbm5lZCBpbiBhIGZhYiBl dGMuIFdlIGRvbid0IGhhdmUgdGhlIGx1eHVyeSBvZiBleHRlbmRpbmcgb3VyIHNjaGVkdWxlDQo+ ID4gZm9yZXZlciBsaWtlIFNXIGd1eXMgdGVuZCB0byBkbyAuLi4gd2UncmUgdmVyeSBwcm91ZCBv ZiBvdXIgdHJhY2sgcmVjb3JkDQo+ID4gb2YgYWx3YXlzIG1lZXRpbmcgb3VyIHByb21pc2VkIHNj aGVkdWxlcy4gUGx1cyAtIHNpbGljb24gY2FuJ3QgYmUgcGF0Y2hlZCwNCj4gPiBzbyB3aGF0J3Mg ZG9uZSBpcyBkb25lIGFuZCB5b3UgaGF2ZSB0byBsaXZlIHdpdGggaXQuIEZvciBtYW55IHllYXJz IHRvDQo+ID4gY29tZSwgdXN1YWxseS4NCj4gPg0KPg0KPiBUaGlzIGlzIGFsbCBwcmV0dHkgd2Vs bCB1bmRlcnN0b29kLiBXZSBhbGwgaGF2ZSBkaWZmZXJlbnQgaW50ZXJlc3RzIHRvDQo+IGJhbGFu Y2UgYWdhaW5zdCBlYWNoIG90aGVyLCB3aGljaCBpcyB3aHkgd2UgYXJlIHBlcmZlY3RseSBmaW5l IHdpdGgNCj4gaGFuZGxpbmcgc29tZSBjb3JuZXIgY2FzZXMgaW4gdGhlIGRyaXZlci4gV2hhdCB3 ZSBhcmUgbm90IHByZXBhcmVkIHRvDQo+IGRvIGlzIGxldCB0aG9zZSBjb3JuZXIgY2FzZXMgbGVh ayBpbnRvIHRoZSBjb3JlIGNyeXB0byBsYXllciBhcyBjYXNlcw0KPiB0aGF0IHJlcXVpcmUgc3Bl Y2lhbCBoYW5kbGluZy4NCj4NCldoaWNoIGNhbiBiZSBhdm9pZGVkIGJ5IG5vdCBzZWxlY3Rpbmcg YSBkcml2ZXIgZm9yIGFuIGFwcGxpY2F0aW9uIGl0DQpkb2VzIG5vdCBzdXBwb3J0IC4uLiBpZiB0 aGUgY29ybmVyIGNhc2UgaXMgbm90IGV4ZXJjaXNlZCwgdGhlbiBubyBoYXJtIGlzDQpkb25lLiBO byBuZWVkIGZvciBhbnkgImxlYWtpbmciIHRocm91Z2ggdGhlIGNyeXB0byBsYXllcnMuDQoNCj4g PiA+IEkga25vdyB0aGVyZSBpcyBhIGdyYWRpZW50IGhlcmUgZ29pbmcNCj4gPiA+IGZyb20gaGFz aGVzLCBBRUFEcyB0byBzeW1tZXRyaWMgY2lwaGVycywgYnV0IEkgdGhpbmsgdGhpcyBhcHBsaWVz IHRvDQo+ID4gPiBhbGwgb2YgdGhlbS4NCj4gPiA+DQo+ID4gPiA+IFBsZWFzZSBrZWVwIGluIG1p bmQgdGhhdCBleGlzdGluZyBoYXJkd2FyZSBjYW5ub3QgYmUgY2hhbmdlZC4gU28gd2h5DQo+ID4g PiA+IHdhc24ndCB0aGUgQVBJIGRlc2lnbmVkIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgKmV4 aXN0aW5nKiBoYXJkd2FyZT8NCj4gPiA+DQo+ID4gPiBGcm9tIGEgc29mdHdhcmUgcG9pbnQgb2Yg dmlldywgYWRkaW5nIHNwZWNpYWwgY2FzZXMgZm9yIHplcm8gbGVuZ3RoDQo+ID4gPiBpbnB1dHMg YW1vdW50cyB0byB3aGF0IHlvdSBhcmUgdHJ5aW5nIHRvIGF2b2lkOiB1c2luZyBtb3JlICdzaWxp Y29uDQo+ID4gPiBhcmVhJy4NCj4gPiA+DQo+ID4gTm8sIHRoYXQncyBhY3R1YWxseSBub3QgdGhl IHJlYXNvbiBhdCBhbGwgaW4gdGhpcyBjYXNlLiBXZSdyZSB0cnlpbmcgdG8NCj4gPiBhdm9pZCBz aWduaWZpY2FudCBleHRyYSBjb21wbGV4aXR5IGFuZCBlZmZvcnQgb24gYm90aCB0aGUgaGFyZHdh cmUgaXRzZWxmDQo+ID4gYW5kIHRoZSB2ZXJpZmljYXRpb24gdGhlcmVvZi4gU2lsaWNvbiBhcmVh IGlzIG5vdCBldmVuIGluIHRoZSBwaWN0dXJlIGFzDQo+ID4gYSBjb25jZXJuIGZvciBzb21ldGhp bmcgYXMgInNtYWxsIiBhcyB0aGlzLg0KPiA+DQo+ID4gQWRkaW5nIHplcm8gbGVuZ3RoIHN1cHBv cnQgdG8gb3VyIGhhcmR3YXJlIGFyY2hpdGVjdHVyZSBpcyBub3QgYSB0cml2aWFsDQo+ID4gZXhl cmNpc2UuIEFuZCB0aGVuIHlvdSBoYXZlIHRvIHdlaWdoIGFkZGVkIGNvbXBsZXhpdHkgLSA9YWRk ZWQgcmlzaywgd2hlbg0KPiA+IHlvdSB0YWxrIGFib3V0IGhhcmR3YXJlIHdpdGggbXVsdGktbWls bGlvbiBkb2xsYXIgbWFzayBzZXRzIGluIHBsYXkgLQ0KPiA+IGFnYWluc3QgdXNlZnVsbmVzcy4g WmVyby1sZW5ndGggc3VwcG9ydCB3YXMgLSBhbmQgc3RpbGwgaXMhIC0gc2ltcGx5IG5vdA0KPiA+ IHdvcnRoIHRoZSBhZGRlZCByaXNrIGFuZCBlZmZvcnQuDQo+ID4NCj4NCj4gT2YgY291cnNlLiBU aGF0IGlzIHdoeSBpdCBpcyBwZXJmZWN0bHkgZmluZSB0byBoYW5kbGUgdGhpcyBpbiB5b3VyIGRy aXZlci4NCj4NClBlcmZlY3RseSBmaW5lIGZvciB5b3UsIG1heWJlLCBidXQgbm90IHNvIG11Y2gg Zm9yIG1lLg0KDQpXaHk6DQpQZXJmb3JtYW5jZSBsb3NzLiBEcml2ZXIgY29tcGxleGl0eSB2cyBt YWludGVuYW5jZS4NCldhc3RlZCBlZmZvcnQgaW1wbGVtZW50aW5nIHRvdGFsbHkgaXJyZWxldmFu dCBjYXNlcy4NCg0KPiA+IEFuZCBpZiB5b3UgZ28gdGhhdCBuYWl2ZSByb3V0ZSwganVzdCBmaXgg ZXZlcnl0aGluZyBpbiB0aGUgZHJpdmVyLCB0aGVuDQo+ID4geW91IHNpbXBseSBlbmQgdXAgd2l0 aCBzb21ldGhpbmcgdGVycmlibHkgaW5lZmZpY2llbnQgYmVjYXVzZSBhbGwgdGhvc2UNCj4gPiBj b3JuZXIgY2FzZSBjaGVja3MgZW5kIHVwIGluIHRoZSBmYXN0IHBhdGggYW5kIGVhdGluZyB1cCBj b2RlIHNwYWNlLg0KPiA+DQo+DQo+IFRoaXMgaXMgKmV4YWN0bHkqIHRoZSByZWFzb24gd2h5IHdl IHdhbnQgdGhpcyB3b3JrYXJvdW5kIGluIHlvdXINCj4gZHJpdmVyLCBiZWNhdXNlIGlmIGl0IGlz IG5vdCBpbiB5b3VyIGRyaXZlciwgd2Ugd2lsbCBoYXZlIHRvIHB1dCBpdCBpbg0KPiBnZW5lcmlj IGNvZGUgd2hlcmUgaXQgYWZmZWN0cyBldmVyeWJvZHkuDQo+DQo+ID4gRm9yIGEgc29tZW9uZSBj bGFpbWluZyB0byAibWVldCBpbiB0aGUgbWlkZGxlIHRvIGNvbXByb21pc2UiIHlvdSdyZQ0KPiA+ IHN1cmVseSBub3QgY29tcHJvbWlzaW5nIGFueXRoaW5nIGF0IGFsbCAuLi4gTm8gb2ZmZW5zZS4N Cj4gPg0KPg0KPiBOb25lIHRha2VuLiBJIGFtIHJlYWxseSB0cnlpbmcgdG8gd29yayB3aXRoIHlv dSBoZXJlLCBidXQgY2hhbmdpbmcNCj4gY29yZSBjb2RlIHRvIGFkZHJlc3MgdGhlIGxpbWl0YXRp b25zIG9mIG9uZSBwYXJ0aWN1bGFyIGgvdw0KPiBpbXBsZW1lbnRhdGlvbiBpcyBub3Qgc29tZXRo aW5nIHdlIGRvIGxpZ2h0bHkuDQo+DQpXZWxsLCBmb3Igb25lIHRoaW5nIGl0IGlzIG5vdCAib25l IHBhcnRpY3VsYXIgaC93IGltcGxlbWVudGF0aW9uIi4NCkFzIGZvciB0aGUgemVybyBsZW5ndGgg dGhpbmcsIEkgYmVsaWV2ZSBpdCdzIGFsbW9zdCBhbGwgb2YgdGhlbSwgYmFzZWQNCm9uIGNvbW1l bnRzIGZyb20gb3RoZXIgZHJpdmVyIG1haW50YWluZXJzLiBJJ3ZlIG9ubHkgc2VlbiAxIGNvbW1l bnQgc2F5aW5nDQp0aGF0IHRoZSBIVyAqZGlkKiBzdXBwb3J0IGl0LiBBbmQgdGhhdCB3YXMgYSAi bWF5YmUiLg0KDQpBbmQgbXkgbWFpbiBzdWdnZXN0aW9uIGRvZXMgbm90IHJlcXVpcmUgYW55IGNv cmUgY29kZSBjaGFuZ2VzIGF0IGFsbC4NCg0KDQpSZWdhcmRzLA0KUGFzY2FsIHZhbiBMZWV1d2Vu DQpTaWxpY29uIElQIEFyY2hpdGVjdCwgTXVsdGktUHJvdG9jb2wgRW5naW5lcw0Kd3d3Lmluc2lk ZXNlY3VyZS5jb20NCg==