Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92497 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 39471 invoked from network); 19 Apr 2016 21:00:20 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 19 Apr 2016 21:00:20 -0000 Authentication-Results: pb1.pair.com smtp.mail=zeev@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=zeev@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 207.46.100.102 as permitted sender) X-PHP-List-Original-Sender: zeev@zend.com X-Host-Fingerprint: 207.46.100.102 mail-by2on0102.outbound.protection.outlook.com Received: from [207.46.100.102] ([207.46.100.102:28832] helo=na01-by2-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 27/A9-22821-06C96175 for ; Tue, 19 Apr 2016 17:00:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RWSoftware.onmicrosoft.com; s=selector1-zend-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=a2kHEDAOLPOdowcTfc37zJjo8H2qB94CD/8HiZcT7Lw=; b=hmT9P2TxDgQhd4187HbtoLcVNV95yw3BRvpf0X4jnsroK/O06SpLZxcoFPL8ALHEVNt5AbtLoMOGcRLrS7TnQxTRy9uWDGvdaJJ5+scvNDcbo6s4z1YNtk3qPXmCrNdf6+yHZW/0/8uqlV8a6N9zODoG0P4yAw31sZkU4ukvK7s= Received: from BY2PR02MB298.namprd02.prod.outlook.com (10.141.140.21) by BY2PR02MB298.namprd02.prod.outlook.com (10.141.140.21) with Microsoft SMTP Server (TLS) id 15.1.466.19; Tue, 19 Apr 2016 21:00:11 +0000 Received: from BY2PR02MB298.namprd02.prod.outlook.com ([10.141.140.21]) by BY2PR02MB298.namprd02.prod.outlook.com ([10.141.140.21]) with mapi id 15.01.0466.022; Tue, 19 Apr 2016 21:00:11 +0000 To: Larry Garfield CC: "internals@lists.php.net" Thread-Topic: [PHP-DEV] Re: Improving PHP's type system Thread-Index: AQHRlaUHEc+doe0x5E+u9VwQHuu4UJ+IRQcAgAANKICAAAFxgIAABh6AgAANpACAACnEH4AAm82AgAAMSgCAADMsgIAAVaeAgAASTYCAAVJIAIAACMmAgAAdwQCAAAxwgIAFsEHQgAChb4CAABdaAIAAA7qw Date: Tue, 19 Apr 2016 21:00:11 +0000 Message-ID: References: <570E99AC.3090804@fleshgrinder.com> <570EA5EB.8090501@fleshgrinder.com> <570EAB0D.6080706@gmail.com> <570EB67E.8010908@garfieldtech.com> <5B147E88-CC0A-4CBC-A49D-C7FE3BF557C0@zend.com> <6F.C3.12455.94C5F075@pb1.pair.com> <20160414094440.GF19347@phcomp.co.uk> <570FD94F.90703@fleshgrinder.com> <570FE8A9.4020809@gmail.com> <20.53.29891.17401175@pb1.pair.com> <57110BCD.5030009@garfieldtech.com> <571124C2.9040606@gmx.de> <57112F31.8070209@garfieldtech.com> <57167C35.8080601@gmail.com> <57168FCC.7000507@garfieldtech.com> In-Reply-To: <57168FCC.7000507@garfieldtech.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: garfieldtech.com; dkim=none (message not signed) header.d=none;garfieldtech.com; dmarc=none action=none header.from=zend.com; x-originating-ip: [87.70.31.215] x-ms-office365-filtering-correlation-id: 33fce611-b735-459f-1777-08d36895991b x-microsoft-exchange-diagnostics: 1;BY2PR02MB298;5:f94NdSGrQvUq7XuJhk3MdNU35ohFgyPVq1o0mnF73B84AmOgnx8TkVZL2ZHpmTILfBBZ21xiazHwjnYBRq1V/rdVX/hyOXRUNr4ZVBxLwdkBh6LoSywIUFBbBvkTthufZHh6u3s1cW47XnBuMa1yICcOpzE5aNGE8mqx7sxEDsaxrer8obmfsGDIWfopynSn;24:bqKPZdZTca1aw4WJUZWfZUwD7svMpB8n7AxZ1Wp5X0e9sdW18qRFredQzl6FFOD9dF+savLs8H7ZV1QgNd+6Yj1hmOtOgWkKCzKildhBN7E=;7:Q8iBjL/OkO5h7gB4gQgq14Q5lJE5uxSuvPKeDNDFzVAHT99Pj/0oc321XU7cXjC1OjkFwAnSR3gOeyGQxi8tgmm83UK5l9lc/yHMJmQeSXVR1/pI/y8R/3iChJss7j03XE1kSYsuaSuS5DfbXivjFMbahI27+FdHfCGcxW2tLG+XLdqGmBwcbcHoggaoh63NRUtbpSQk+lfrYJXOEhSFrwFaYofw/yUQPZtYVpOORJY= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR02MB298; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(9101521026)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:BY2PR02MB298;BCL:0;PCL:0;RULEID:;SRVR:BY2PR02MB298; x-forefront-prvs: 0917DFAC67 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(13464003)(377454003)(51444003)(15975445007)(87936001)(77096005)(10400500002)(5002640100001)(92566002)(2900100001)(122556002)(2950100001)(74316001)(9686002)(66066001)(110136002)(4326007)(5008740100001)(76576001)(33656002)(189998001)(106116001)(2906002)(11100500001)(50986999)(3280700002)(5003600100002)(19580405001)(3846002)(3660700001)(19580395003)(6116002)(86362001)(102836003)(81166005)(1096002)(99286002)(586003)(76176999)(1220700001)(54356999);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR02MB298;H:BY2PR02MB298.namprd02.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2016 21:00:11.4508 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 32210298-c08b-4829-8097-6b12c025a892 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR02MB298 Subject: RE: [PHP-DEV] Re: Improving PHP's type system From: zeev@zend.com (Zeev Suraski) PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXJyeSBHYXJmaWVsZCBbbWFp bHRvOmxhcnJ5QGdhcmZpZWxkdGVjaC5jb21dDQo+IFNlbnQ6IFR1ZXNkYXksIEFwcmlsIDE5LCAy MDE2IDExOjA3IFBNDQo+IFRvOiBpbnRlcm5hbHNAbGlzdHMucGhwLm5ldA0KPiBTdWJqZWN0OiBS ZTogW1BIUC1ERVZdIFJlOiBJbXByb3ZpbmcgUEhQJ3MgdHlwZSBzeXN0ZW0NCj4gDQo+IHN0cmF3 bWFuPyAgQSBudW1iZXIgb2YgcGVvcGxlIGFyZSB1c2luZyBpdCwgYW5kIGl0J3MgYSBmbGlwcGFu dCBhbmQgaW5zdWx0aW5nDQo+IGFkIGhvbWluZW0gYXR0YWNrOyBmcm9tIGV2ZXJ5b25lIHVzaW5n IGl0Lg0KDQpXaGlsZSBJIGFncmVlIHRoYXQgaXQgY2FuIGJlIGluc3VsdGluZyBJIGRvIHRoaW5r IHRoYXQgdGhlcmUncyBhIGNlcnRhaW4gZGVncmVlIG9mIHRoaXMgaGFwcGVuaW5nIChub3QgbmVj ZXNzYXJpbHkgaW4gdGhpcyB0aHJlYWQgb3IgaW4gYW55IHJlY2VudCB0aHJlYWQ7ICBJJ20gdGFs a2luZyBjb21wbGV0ZWx5IGluIGdlbmVyYWwpLiAgSXQgbWF5IG5vdCBiZSBwcm9kdWN0aXZlIHRv IGJyaW5nIGl0IHVwIChiZWNhdXNlIGFzIHlvdSBzYXksIGl0IGNhbiBiZSBpbnN1bHRpbmcpIC0g YnV0IGdpdmVuIHRoYXQgSSB0aGluayB0aGF0IGludGVybmFscyBpc24ndCBmcmVlIGZyb20gaXQs IEkgd291bGQgaG9wZSB0aGF0IHBlb3BsZSB3aWxsIGJlIGVuY291cmFnZWQgdG8gdGhpbmsgaGFy ZCBvbiB3aGV0aGVyIHdoYXQgdGhleSdyZSBwcm9wb3NpbmcgaXMgdHJ1bHkgbmVlZGVkLCBhcyBv cHBvc2VkIHRvIGp1c3QgYmVpbmcgdXNlZnVsLg0KDQo+SXQncyB0aGUgc2FtZSB0aGluZyBhcyAi UEhQIGlzIG5vdA0KPiAkb3RoZXJfbGFuZ3VhZ2UsIHRoZXJlZm9yZSBub3RoaW5nIGZyb20gdGhh dCBsYW5ndWFnZSBpcyB1c2VmdWwgZm9yIFBIUC4iDQoNCkxhcnJ5LCBJIGRvbid0IGJlbGlldmUg dGhhdCBhbnlib2R5IGhhcyBldmVyIHNhaWQgYW55dGhpbmcgb2YgdGhlIHNvcnQgb24gaW50ZXJu YWxzLCBldmVyIChhbHRob3VnaCBJJ3ZlIGJlZW4ga25vd24gdG8gcmVhZGlseSBhZG1pdCBJJ20g c2VuaWxlKS4gIFdlIG5ldmVyIGJsb2NrIGEgZmVhdHVyZSBmcm9tIFBIUCBiZWNhdXNlIGl0IGNv bWVzIGZyb20gYSBnaXZlbiBsYW5ndWFnZS4gIEhvd2V2ZXIsIHdoZW4gY29uc2lkZXJpbmcgYSBu ZXcgZmVhdHVyZSBmb3IgUEhQIC0gYSBwcm9jZWR1cmFsLCBPTyBsb29zZWx5LXR5cGVkIGxhbmd1 YWdlLCBhbmQgbm90IGEgZnVuY3Rpb25hbCBvciBzdHJvbmdseSB0eXBlZCBvbmUgLSBicmluZ2lu ZyBpbiBmZWF0dXJlcyB0aGF0IG1ha2UgaXQgbW9yZSBmdW5jdGlvbmFsIG9yIG1vcmUgc3Ryb25n bHkgdHlwZWQsIGNhbm5vdCBiZSBvbiB0aGUgZ3JvdW5kcyB0aGF0IHRoZXkgZXhpc3QgaW4gb3Ro ZXIgbGFuZ3VhZ2VzLiAgT2YgY291cnNlIHRoZXkgZXhpc3QgaW4gb3RoZXIgbGFuZ3VhZ2VzIC0g dGhlcmUgYXJlIG1hbnkgZGlmZmVyZW50IHR5cGVzIG9mIGxhbmd1YWdlcywgUEhQIGNhbm5vdCBh bmQgc2hvdWxkIG5vdCB0cnkgYmUgYWxsIG9mIHRoZW0uDQoNCj4gIFBIUCdzIGhpc3RvcnkgaGFz DQo+IHZlcnkgY2xlYXJseSBiZWVuIG9uZSBvZiBib3Jyb3dpbmcgYW5kIHN0ZWFsaW5nIGlkZWFz IGZyb20gZXZlcnkgbGFuZ3VhZ2Ugd2UNCj4gY2FuIGZpbmQgaWYgdGhleSBmaXQgYW5kIG1ha2Ug c2Vuc2UgaW4gUEhQIChhbmQgbm90IGlmIHRoZXkgZG9uJ3QpLg0KDQpJIHRoaW5rIHRoYXQgaXQn cyBtdWNoIG1vcmUgY29ycmVjdCB0byBzYXkgdGhhdCBQSFAncyBoaXN0b3J5IGhhcyBiZWVuIGNs ZWFybHkgb25lIG9mIGJvcnJvd2luZyBhbmQgc3RlYWxpbmcgaWRlYXMgZnJvbSBDLCBKYXZhIGFu ZCBQZXJsLCBhbmQgbm90IGV2ZXJ5IGxhbmd1YWdlIHdlIGNhbiBmaW5kLiAgQywgSmF2YSBhbmQg UGVybCBoYXZlIHNvbWUgdmVyeSBzdHJvbmcgY29tbW9uYWxpdGllcywgd2hpY2ggaXMgd2h5IGNy ZWF0aW5nIGEgbGFuZ3VhZ2UgdGhhdCBtZXJnZWQgZ29vZCBzdHVmZiBmcm9tIGFsbCBvZiB0aGVt IC0gcGx1cyBhZGRpbmcgbW9yZSBvZiBvdXIgb3duIC0gbWFkZSBzZW5zZSBhbmQgY3JlYXRlZCBh IGdlbmVyYWxseSBzdWNjZXNzZnVsIG1peC4gIEJ1dCB3ZSBuZXZlciBldmVyIHdhbnRlZCwgbm9y IGRvIHdlIHdhbnQgcmlnaHQgbm93LCB0byBib3Jyb3cgaWRlYXMgZnJvbSBhbGwgb2YgdGhlIGxh bmd1YWdlcyBpbiBleGlzdGVuY2UsIGV2ZW4gaWYgdGhleSdyZSBnb29kIGlkZWFzLiAgR29vZCBp ZGVhcyBleGlzdCBpbiBvdGhlciBsYW5ndWFnZXMsIHRoYXQgZG9uJ3QgZml0IFBIUCBsYW5ndWFn ZSBjaGFyYWN0ZXJpc3RpY3MuDQoNCldoaWNoIGFnYWluLCBkb2VzIG5vdCBtZWFuIHRoYXQgYSBm ZWF0dXJlIHRoYXQgY29tZXMgZnJvbSBhIGZ1bmN0aW9uYWwvYWNhZGVtaWMgbGFuZ3VhZ2UgaXMg aW5oZXJlbnRseSBkaXNxdWFsaWZpZWQsIGFuZCBJIGRvIG1haW50YWluIHRvIG5vYm9keSBpcyBz YXlpbmcgaXQ7ICBCdXQgd2hlbiB3ZSBjb21lIHRvIGV2YWx1YXRlIHdoZXRoZXIgaXQgImZpdHMg YW5kIG1ha2VzIHNlbnNlIGluIFBIUCIsIHRoYW4gbmF0dXJhbGx5LCB0aGUgbGlrZWxpaG9vZCB0 aGF0IGl0IGRvZXMgaXMgaW5oZXJlbnRseSBsb3dlci4NCiANCj4gUmVmZXJlbmNpbmcgb3RoZXIg bGFuZ3VhZ2VzIHRvIHN1cHBvcnQgdGhlIGluY2x1c2lvbiBvZiBhIGZlYXR1cmUgaXMgbm90IGEN Cj4gY29vbG5lc3MgYXJndW1lbnQuICBJdCdzIGEgInNvbHZlZCBwcm9ibGVtLCBwcmlvciBhcnQg ZXhpc3RzIg0KPiBhcmd1bWVudC4NCg0KQnV0IGl0J3MgYSB3ZWFrLCBhbG1vc3QgdHJpdmlhbCBh cmd1bWVudC4gIEl0J3Mgc3RpbGwgb25lIHRoYXQgaXMgcmVsZXZhbnQgLSBidXQgZ2l2ZW4gdGhh dCBpdCdzIHdlYWssIHBlb3BsZSBzaG91bGQgbm90IGV4cGVjdCB0aGF0IGJ5IHNheWluZyB0aGF0 ICJYWVogbGFuZ3VhZ2UgaGFzIGl0IiwgdGhpcyBjb25zdGl0dXRlcyBhIHN0cm9uZyBhcmd1bWVu dCBpbiBpdHMgZmF2b3IuICBJZiB0aGF0IFhZWiBsYW5ndWFnZSBpcyBmcm9tIGEgdmVyeSBkaWZm ZXJlbnQgbGFuZ3VhZ2UgZmFtaWx5LCB0aGVuIGFzIEkgbWVudGlvbmVkIGFib3ZlLCBpdCBtYXkg YmUgYW4gaW5kaWNhdG9yIHRoYXQgaXQncyBub3QgYSB2ZXJ5IGdvb2QgZml0IGZvciBQSFAuICBB Z2FpbiAtIG5vdCBpbmhlcmVudGx5IGRpc3F1YWxpZmllZCAtIGp1c3QgJ3JhaXNpbmcgcXVlc3Rp b25zJy4NCg0KPklmIGEgbmVlZCBpcyBpZGVudGlmaWVkIHdpdGhpbiBQSFAgZm9yIGEgZ2l2ZW4g ZmVhdHVyZSwgaXQgaXMgYm90aA0KPiBsb2dpY2FsIGFuZCBleHBlY3RlZCB0byBsb29rIGZvciBw cmlvciBzb2x1dGlvbnMgdG8gdGhlIHNhbWUgb3Igc2ltaWxhcg0KPiBwcm9ibGVtcy4gIFRoYXQn cyB0aGUgd2hvbGUgcG9pbnQgb2YgT1NTLiAgVGhhdCBkb2Vzbid0IG1ha2UgdGhlIHNvbHV0aW9u DQo+IHVzZWQgYnkgYW5vdGhlciBsYW5ndWFnZSBuZWNlc3NhcmlseSB0aGUgcmlnaHQgb25lLCBi dXQgaXQgc2hvdWxkIGJlDQo+IGNvbnNpZGVyZWQgYSB2aWFibGUgY2FuZGlkYXRlLg0KDQpUaGUg cHJvYmxlbSBpcywgSU1ITywgdGhhdCB3ZSdyZSB2ZXJ5LCBWRVJZIGZsZXhpYmxlIHdpdGggdGhl IGRlZmluaXRpb24gb2YgdGhlIHdvcmQgJ25lZWQnLg0KVGhlcmUgdXNlZCB0byBiZSBhIHJ1bGUg b2YgdGh1bWIgb24gaW50ZXJuYWxzIHRoYXQgZmluZGluZyBzb21lIHVzZSBjYXNlcyBmb3IgYSBn aXZlbiBsYW5ndWFnZS1sZXZlbCBmZWF0dXJlIGhhcmRseSBjb25zdGl0dXRlZCBncm91bmRzIHRv IGFkZCBpdC4gIEl0IGhhZCB0byBiZSB1c2VmdWwgb24gYSB2ZXJ5IHdpZGUgcmFuZ2Ugb2Ygc2l0 dWF0aW9ucywgaW4gb3JkZXIgdG8gYmUgd29ydGggdGhlIHRyb3VibGUgb2YgaW1wbGVtZW50aW5n IGl0LCBtYWludGFpbmluZyBpdCwgYnV0IG1vc3Qgb2YgYWxsIC0gb2YgYWRkaW5nIGNvbXBsZXhp dHkgbGF5ZXJzIHRvIHRoZSBsYW5ndWFnZSAoYm90aCBpbiB0ZXJtcyBvZiBjb2duaXRpdmUgYnVy ZGVuIGFuZCBsaWtlbGlob29kIG9mIG1pc3VzZSkuICBOb3csIHRoZSB3aG9sZSAnY29tcGxleGl0 eScgZmFjdG9yIGlzIGFsbW9zdCBpZ25vcmVkLiAgRm9jdXMgaXMgb24gZmluZGluZyBhIHVzZSBj YXNlIG9yIGEgaGFuZGZ1bCBvZiB1c2UgY2FzZXMgd2hlcmUgdGhlIGZlYXR1cmUgY2FuIGJlIHVz ZWZ1bCAtIGEgdGFzayB3aGljaCBpcyBhbG1vc3QgYWx3YXlzIGRvYWJsZSAtIGVzcGVjaWFsbHkg d2hlbiBib3Jyb3dpbmcgZmVhdHVyZXMgZnJvbSBvdGhlciBsYW5ndWFnZXMuDQogDQo+IFJlbWVt YmVyOg0KPiANCj4gJ1Byb2dyYW1taW5nIGxhbmd1YWdlcyB0ZWFjaCB5b3Ugbm90IHRvIHdhbnQg d2hhdCB0aGV5IGRvbid0IHByb3ZpZGUuJw0KPiAtLWh0dHBzOi8vdHdpdHRlci5jb20vY29tcHNj aWZhY3Qvc3RhdHVzLzM3NTI4Mzc5MzkyMzY3MDAxNg0KDQpJcyB0aGF0IGluaGVyZW50bHkgYmFk PyAgSXQgY291bGQgYmUgaWYgaXQgdHJ1bHkgbGltaXRzIHlvdSwgYnV0IGlmIGEgbGFuZ3VhZ2Ug aGFzIGEgY2VydGFpbiB3YXkgb2YgZG9pbmcgdGhpbmdzLCBhbmQgbm90IGFub3RoZXIgLSBpcyBp dCBiYWQgdGhhdCBpdCdkIGZ1bm5lbCB5b3UgdG8gZG8gdGhpbmdzIGl0cyB3YXk/DQpJcyBpdCB0 aGF0IGJhZCB0aGF0IHNvbWV0aGluZyB0aGF0IHdhbnRzIHRvIHVzZSBmdW5jdGlvbmFsIHN5bnRh eCwgd2lsbCBub3QgZW1icmFjZSBQSFAgYnV0IHNvbWV0aGluZyBlbHNlPyAgV2UgZG9uJ3QgaGF2 ZSB0byBiZSBldmVyeXRoaW5nIGZvciBldmVyeW9uZS4NCg0KUmVnYXJkbGVzcywgYXQgbGVhc3Qg YXMgZmFyIGFzIEkgY2FuIHRlbGwsIGl0IHNlZW1zIGFzIGlmIG9uIGludGVybmFscywgdGhlIHNl bnRpbWVudCBpcyB0aGUgMTgwIGRlZ3JlZXMgb3Bwb3NpdGUgZnJvbSBQYXVsJ3Mgc3RhdGVtZW50 LiAgSXQncyBhcyBpZiB3ZSBmZWVsIFBIUCdzIHN5bnRheCBpcyBuZXZlciBldmVyIGVub3VnaCwg YW5kIGlzIGluIGRlc3BlcmF0ZSBuZWVkIG9mIGV4dGVuc2lvbiAtIGV2ZW4gdGhvdWdoIHNvbWUg YW1hemluZ2x5IGFkdmFuY2VkIGFwcHMgaGF2ZSBiZWVuIGFuZCBhcmUgd3JpdHRlbiBvbiB0b3Ag b2YgaXQuICBJJ20gbm90IHNheWluZyB3ZSBzaG91bGQgaGFsdCBhZGRpbmcgbmV3IHN5bnRheCwg YnV0IEkgYW0gc2F5aW5nIHRoYXQgKGEpIHRoZSBwYWNlIGF0IHdoaWNoIHdlJ3JlIGRpc2N1c3Np bmcgbmV3IHN5bnRheCBpcyBtaW5kIGJvZ2dsaW5nIGFuZCB3YXkgdG9vIGZhc3QsIGFuZCAoYikg dGhlIGJhcnMgd2Ugc2VlbSB0byBiZSBoYXBweSB3aXRoIGluIHdoYXQgY29uc3RpdHV0ZXMgJ25l ZWQnIGFyZSBleHRyZW1lbHkgbG93Lg0KDQpJIHdvdWxkIGNvdW50ZXIgdGhhdCBzdGF0ZW1lbnQg d2l0aCB0aGlzIG9uZToNCidQZXJmZWN0aW9uIGlzIGFjaGlldmVkIG5vdCB3aGVuIHRoZXJlJ3Mg bm90aGluZyBtb3JlIHRvIGFkZCwgYnV0IHdoZW4gdGhlcmUgaXMgbm90aGluZyBsZWZ0IHRvIHRh a2UgYXdheScNCg0KSU1ITywgaXQgd291bGQgYmUgQVdFU09NRSBpZiB3ZSBjb3VsZCBmdW5uZWwg c29tZSBvZiB0aGVzZSBjeWNsZXMgZnJvbSBuZXcgc3ludGF4IGFuZCBvbnRvIG90aGVyIHRoaW5n cyBsaWtlIHBhcmFsbGVsIHByb2Nlc3NpbmcsIGFzeW5jIElPLCBKSVQgYW5kIG1vcmUgLSB3aGlj aCBjYW4gdHJ1bHkgdGFrZSBQSFAgdG8gdGhlIG5leHQgbGV2ZWwuICBOZXcgc3ludGF4IGNhbm5v dC4NCg0KWmVldg0KDQo=