Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 6A99A200CFA for ; Tue, 5 Sep 2017 23:58:42 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 68F1F160BCB; Tue, 5 Sep 2017 21:58:42 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 13CD01609E7 for ; Tue, 5 Sep 2017 23:58:40 +0200 (CEST) Received: (qmail 5434 invoked by uid 500); 5 Sep 2017 21:58:39 -0000 Mailing-List: contact hdfs-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list hdfs-dev@hadoop.apache.org Received: (qmail 5423 invoked by uid 99); 5 Sep 2017 21:58:39 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Sep 2017 21:58:39 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id BABB3D51A0 for ; Tue, 5 Sep 2017 21:58:38 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.1 X-Spam-Level: X-Spam-Status: No, score=0.1 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id cQLyZ3B-ET5S for ; Tue, 5 Sep 2017 21:58:33 +0000 (UTC) Received: from us-smtp-delivery-102.mimecast.com (us-smtp-delivery-102.mimecast.com [63.128.21.102]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 887AE6126C for ; Tue, 5 Sep 2017 21:58:32 +0000 (UTC) Received: from CAS080-CO-9.exch080.serverpod.net (cas080-co-9.exch080.serverdata.net [199.193.205.99]) (Using TLS) by us-smtp-1.mimecast.com with ESMTP id us-mta-64-Xz13lbMrNYqLykEVxjx8OQ-1; Tue, 05 Sep 2017 17:58:29 -0400 Received: from MBX080-W3-CO-6.exch080.serverpod.net (10.224.117.162) by MBX080-W3-CO-4.exch080.serverpod.net (10.224.117.158) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Tue, 5 Sep 2017 14:57:52 -0700 Received: from MBX080-W3-CO-6.exch080.serverpod.net ([10.224.117.162]) by MBX080-W3-CO-6.exch080.serverpod.net ([10.224.117.162]) with mapi id 15.00.1263.000; Tue, 5 Sep 2017 14:57:52 -0700 From: Junping Du To: larry mccay , Steve Loughran CC: "common-dev@hadoop.apache.org" , "hdfs-dev@hadoop.apache.org" , "mapreduce-dev@hadoop.apache.org" , "yarn-dev@hadoop.apache.org" Subject: Re: Apache Hadoop 2.8.2 Release Plan Thread-Topic: Apache Hadoop 2.8.2 Release Plan Thread-Index: AQHTD0iOte03AJ2ZEku41gREcHoUIqKcEZYAgAB8/eCAA2No34AA98yAgAAD+QD//6WaX4AGbcec Date: Tue, 5 Sep 2017 21:57:52 +0000 Message-ID: <1504648839512.89101@hortonworks.com> References: <1500582711718.13957@hortonworks.com> <1358004998.2062665.1500649275418@mail.yahoo.com> <1199503934.2073180.1500650233097@mail.yahoo.com> <1500661426047.38906@hortonworks.com> <26719281-DA04-4B63-84E0-D3CA52CEF9B5@apache.org> <1500672545427.89754@hortonworks.com> <1500674278486.28606@hortonworks.com> <1500917796382.42128@hortonworks.com> <1500928876650.88617@hortonworks.com> <1502088277103.98878@hortonworks.com> <1504078665025.24719@hortonworks.com> <1504261027568.37942@hortonworks.com> <62EB0A59-7039-486B-8D60-7C617D1E2A97@hortonworks.com>,,<1504294828064.98916@hortonworks.com> In-Reply-To: <1504294828064.98916@hortonworks.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-source-routing-agent: Processed MIME-Version: 1.0 X-MC-Unique: Xz13lbMrNYqLykEVxjx8OQ-1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 archived-at: Tue, 05 Sep 2017 21:58:42 -0000 SSBhc3N1bWUgdGhlIHF1aWV0IG92ZXIgdGhlIGhvbGlkYXkgbWVhbnMgd2UgYWdyZWVkIHRvIG1v dmUgZm9yd2FyZCB3aXRob3V0IHRha2luZyBIQURPT1AtMTQ0MzkgaW50byAyLjguMi4KVGhlcmUg aXMgYSBuZXcgcmVsZWFzZSBidWlsZGluZyAoZG9ja2VyIGJhc2VkKSBpc3N1ZSBjb3VsZCBiZSBy ZWxhdGVkIHRvIEhBRE9PUC0xNDQ3NCB3aGVyZSB3ZSByZW1vdmVkIG9yYWNsZSBqYXZhIDcgaW5z dGFsbGVyIGR1ZSB0byByZWNlbnQgZG93bmxvYWQgYWRkcmVzcy9jb250cmFjdCBjaGFuZ2UgYnkg T3JhY2xlLiBUaGUgYnVpbGQgcmVmdXNlIHRvIHdvcmsgLSByZXBvcnQgYXMgSkFWQV9IT01FIGlz c3VlLCBidXQgaGFyZCBjb2RlZCBteSBsb2NhbCBqYXZhIGhvbWUgaW4gY3JlYXRlLXJlbGVhc2Ug b3IgRG9ja2VyZmlsZSBkb2Vzbid0IGhlbHAgc28gd2UgbWF5IG5lZWQgdG8gYWRkIGphdmEgNyBp bnN0YWxsYXRpb24gYmFjayAobm8gbWF0dGVyIE9yYWNsZSBKREsgNyBvciBvcGVuSkRLIDcpLiAK RmlsZWQgSEFET09QLTE0ODQyIHdpdGggbW9yZSBkZXRhaWxzIHRvIHRyYWNrIGFzIGJsb2NrZXIg Zm9yIDIuOC4yLgoKVGhhbmtzLAoKSnVucGluZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkZyb206IEp1bnBpbmcgRHUgPGpkdUBob3J0b253b3Jrcy5jb20+ClNlbnQ6 IEZyaWRheSwgU2VwdGVtYmVyIDEsIDIwMTcgMTI6MzcgUE0KVG86IGxhcnJ5IG1jY2F5OyBTdGV2 ZSBMb3VnaHJhbgpDYzogY29tbW9uLWRldkBoYWRvb3AuYXBhY2hlLm9yZzsgaGRmcy1kZXZAaGFk b29wLmFwYWNoZS5vcmc7IG1hcHJlZHVjZS1kZXZAaGFkb29wLmFwYWNoZS5vcmc7IHlhcm4tZGV2 QGhhZG9vcC5hcGFjaGUub3JnClN1YmplY3Q6IFJlOiBBcGFjaGUgSGFkb29wIDIuOC4yIFJlbGVh c2UgUGxhbgoKVGhpcyBpc3N1ZSAoSEFET09QLTE0NDM5KSBpcyBvdXQgb2YgbXkgcmFkYXIgZ2l2 ZW4gaXQgaXMgbWFya2VkIGFzIE1pbm9yIHByaW9yaXR5LiBJZiBteSB1bmRlcnN0YW5kaW5nIGlz IGNvcnJlY3QsIGhlcmUgaXMgYSB0cmFkZS1vZmYgYmV0d2VlbiBzZWN1cml0eSBhbmQgYmFja3dh cmQgY29tcGF0aWJpbGl0eS4gSU1PLCBwcmlvcml0eSBvZiBzZWN1cml0eSBpcyBnZW5lcmFsbHkg aGlnaGVyIHRoYW4gYmFja3dhcmQgY29tcGF0aWJpbGl0eSBlc3BlY2lhbGx5IDIuOC4wIGlzIHN0 aWxsIG5vbi1wcm9kdWN0aW9uIHJlbGVhc2UuCkkgdGhpbmsgd2Ugc2hvdWxkIHNraXAgdGhpcyBm b3IgMi44LjIgaW4gY2FzZSBpdCBkb2Vzbid0IGJyZWFrIGNvbXBhdGliaWxpdHkgZnJvbSAyLjcu eC4gVGhvdWdodHM/CgpUaGFua3MsCgpKdW5waW5nCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KRnJvbTogbGFycnkgbWNjYXkgPGxtY2NheUBhcGFjaGUub3JnPgpTZW50 OiBGcmlkYXksIFNlcHRlbWJlciAxLCAyMDE3IDEwOjU1IEFNClRvOiBTdGV2ZSBMb3VnaHJhbgpD YzogY29tbW9uLWRldkBoYWRvb3AuYXBhY2hlLm9yZzsgaGRmcy1kZXZAaGFkb29wLmFwYWNoZS5v cmc7IG1hcHJlZHVjZS1kZXZAaGFkb29wLmFwYWNoZS5vcmc7IHlhcm4tZGV2QGhhZG9vcC5hcGFj aGUub3JnClN1YmplY3Q6IFJlOiBBcGFjaGUgSGFkb29wIDIuOC4yIFJlbGVhc2UgUGxhbgoKSWYg d2UgZG8gImZpeCIgdGhpcyBpbiAyLjguMiB3ZSBzaG91bGQgc2VyaW91c2x5IGNvbnNpZGVyIG5v dCBkb2luZyBzbyBpbgozLjAuClRoaXMgaXMgYSB2ZXJ5IHBvb3IgcHJhY3RpY2UuCgpJIGNhbiBz ZWUgYW4gYXJndW1lbnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaW4gMi44LnggbGluZSB0 aG91Z2guCgpPbiBGcmksIFNlcCAxLCAyMDE3IGF0IDE6NDEgUE0sIFN0ZXZlIExvdWdocmFuIDxz dGV2ZWxAaG9ydG9ud29ya3MuY29tPgp3cm90ZToKCj4gT25lIHRoaW5nIHdlIG5lZWQgdG8gY29u c2lkZXIgaXMKPgo+IEhBRE9PUC0xNDQzOTogcmVncmVzc2lvbjogc2VjcmV0IHN0cmlwcGluZyBm cm9tIFMzeCBVUklzIGJyZWFrcyBzb21lCj4gZG93bnN0cmVhbSBjb2RlCj4KPiBIYWRvb3AgMi44 IGhhcyBhIGJlc3QtZWZmb3J0IGF0dGVtcHQgdG8gc3RyaXAgb3V0IHNlY3JldHMgZnJvbSB0aGUK PiB0b1N0cmluZygpIHZhbHVlIG9mIGFuIHMzYSBvciBzM24gcGF0aCB3aGVyZSBzb21lb25lIGhh cyBlbWJlZGRlZCB0aGVtIGluCj4gdGhlIFVSSTsgdGhpcyBoYXMgY2F1c2VkIHByb2JsZW1zIGlu IHNvbWUgdXNlcywgc3BlY2lmaWNhbGx5OiB3aGVuIHBlb3BsZQo+IHVzZSBzZWNyZXRzIHRoaXMg d2F5IChiYWQpIGFuZCBhc3N1bWUgdGhhdCB5b3UgY2FuIHJvdW5kIHRyaXAgcGF0aHMgdG8KPiBz dHJpbmcgYW5kIGJhY2sKPgo+IFNob3VsZCB3ZSBmaXggdGhpcz8gSWYgc28sIEhhZG9vcCAyLjgu MiBpcyB0aGUgdGltZSB0byBkbyBpdAo+Cj4KPiA+IE9uIDEgU2VwIDIwMTcsIGF0IDExOjE0LCBK dW5waW5nIER1IDxqZHVAaG9ydG9ud29ya3MuY29tPiB3cm90ZToKPiA+Cj4gPiBIQURPT1AtMTQ4 MTQgZ2V0IGNvbW1pdHRlZCBhbmQgSEFET09QLTk3NDcgZ2V0IHB1c2ggb3V0IHRvIDIuOC4zLCBz byB3ZQo+IGFyZSBjbGVhbiBvbiBibG9ja2VyL2NyaXRpY2FsIGlzc3VlcyBub3cuCj4gPiBJIGZp bmlzaCBwcmFjdGljZSBvZiBnb2luZyB0aHJvdWdoIEpBQ0MgcmVwb3J0IGFuZCBubyBtb3JlIGlu Y29tcGF0aWJsZQo+IHB1YmxpYyBBUEkgY2hhbmdlcyBnZXQgZm91bmQgYmV0d2VlbiAyLjguMiBh bmQgMi43LjQuIEFsc28gSSBjaGVjayBjb21taXQKPiBoaXN0b3J5IGFuZCBmaXhlZCAxMCsgY29t bWl0cyB3aGljaCBhcmUgbWlzc2luZyBmcm9tIGJyYW5jaC0yLjguMiBmb3Igc29tZQo+IHJlYXNv bi4gU28sIHRoZSBjdXJyZW50IGJyYW5jaC0yLjguMiBzaG91bGQgYmUgZ29vZCB0byBnbyBmb3Ig UkMgc3RhZ2UsIGFuZAo+IEkgd2lsbCBraWNrIG9mZiBvdXIgZmlyc3QgUkMgdG9tb3Jyb3cuCj4g PiBJbiB0aGUgbWVhbndoaWxlLCBwbGVhc2UgZG9uJ3QgbGFuZCBhbnkgY29tbWl0cyB0byBicmFu Y2gtMi44LjIgc2luY2UKPiBub3cuIElmIHNvbWUgaXNzdWVzIHJlYWxseSBiZWxvbmcgdG8gYmxv Y2tlciwgcGxlYXNlIHBpbmcgbWUgb24gdGhlIEpJUkEKPiBiZWZvcmUgZG9pbmcgYW55IGNvbW1p dHMuIGJyYW5jaC0yLjggaXMgc3RpbGwgb3BlbiBmb3IgbGFuZGluZy4gVGhhbmtzIGZvcgo+IHlv dXIgY29vcGVyYXRpb24hCj4gPgo+ID4KPiA+IFRoYW5rcywKPiA+Cj4gPiBKdW5waW5nCj4gPgo+ ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gRnJvbTogSnVu cGluZyBEdSA8amR1QGhvcnRvbndvcmtzLmNvbT4KPiA+IFNlbnQ6IFdlZG5lc2RheSwgQXVndXN0 IDMwLCAyMDE3IDEyOjM1IEFNCj4gPiBUbzogQnJhaG1hIFJlZGR5IEJhdHR1bGE7IGNvbW1vbi1k ZXZAaGFkb29wLmFwYWNoZS5vcmc7Cj4gaGRmcy1kZXZAaGFkb29wLmFwYWNoZS5vcmc7IG1hcHJl ZHVjZS1kZXZAaGFkb29wLmFwYWNoZS5vcmc7Cj4geWFybi1kZXZAaGFkb29wLmFwYWNoZS5vcmcK PiA+IFN1YmplY3Q6IFJlOiBBcGFjaGUgSGFkb29wIDIuOC4yIFJlbGVhc2UgUGxhbgo+ID4KPiA+ IFRoYW5rcyBCcmFobWEgZm9yIGNvbW1lbnQgb24gdGhpcyB0aHJlYWQuIFRvIGJlIGNsZWFyLCBJ IGFsd2F5cyB1cGRhdGUKPiBicmFuY2ggdmVyc2lvbiBqdXN0IGJlZm9yZSBSQyBraWNraW5nIG9m Zi4KPiA+Cj4gPiBGb3IgMi44LjIgcmVsZWFzZSwgSSBkb24ndCBoYXZlIHBsYW4gdG8gaW52b2x2 ZSBiaWcgdG9wIG9yIG90aGVyCj4gdGhpcmQtcGFydHkgdGVzdCB0b29scy4gQXMgYWx3YXlzLCB3 ZSB3aWxsIHJlbHkgb24gdGVzdC92ZXJpZnkgZWZmb3J0cyBmcm9tCj4gY29tbXVuaXR5IGVzcGVj aWFsbHkgZnJvbSBsYXJnZSBkZXBsb3llZCBwcm9kdWN0aW9uIGNsdXN0ZXIgLSBhcyBmYXIgYXMg SQo+IGtub3csICB0aGVyZSBhcmUgYWxyZWFkeSBzZXZlcmFsIGNvbXBhbmllcy4gbGlrZTogWWFo b28hLCBBbGliYWJhLCBldGMuCj4gYWxyZWFkeSBkZXBsb3kgMi44IHJlbGVhc2UgaW4gbGFyZ2Ug cHJvZHVjdGlvbiBjbHVzdGVycyBmb3IgbW9udGhzIHdoaWNoCj4gZ2l2ZSBtZSBtb3JlIGNvbmZp ZGVuY2Ugb24gMi44LjIuCj4gPgo+ID4KPiA+IEhlcmUgaXMgbW9yZSB1cGRhdGUgb24gMi44LjIg cmVsZWFzZToKPiA+Cj4gPiBCbG9ja2VyIGlzc3VlczoKPiA+Cj4gPiAgICAtICBBIG5ldyBibG9j a2VyIFlBUk4tNzA3NiBnZXQgcmVwb3J0ZWQgYW5kIGZpeGVkIGJ5IEppYW4gSGUgdGhyb3VnaAo+ IGxhc3Qgd2Vla2VuZC4KPiA+Cj4gPiAgICAtICBBbm90aGVyIG5ldyBibG9ja2VyIC0gSEFET09Q LTE0ODE0IGdldCBpZGVudGlmaWVkIGZyb20gbXkgbGF0ZXN0Cj4gamRpZmYgcnVuIGFnYWluc3Qg Mi43LjQuIFRoZSBzaW1wbGUgZml4IG9uIGFuIGluY29tcGF0aWJsZSBBUEkgY2hhbmdlCj4gc2hv dWxkIGdldCBjb21taXQgc29vbi4KPiA+Cj4gPgo+ID4gQ3JpdGljYWwgaXNzdWVzOgo+ID4KPiA+ ICAgIC0gIFlBUk4tNzA4MyBhbHJlYWR5IGdldCBjb21taXR0ZWQuIFRoYW5rcyBKYXNvbiBmb3Ig cmVwb3J0aW5nIHRoZQo+IGlzc3VlIGFuZCBkZWxpdmVyaW5nIHRoZSBmaXguCj4gPgo+ID4gICAg LSAgWUFSTi02MDkxIGdldCBwdXNoIG91dCBmcm9tIDIuOC4yIGFzIGlzc3VlIGlzIG5vdCBhIHJl Z3Jlc3Npb24gYW5kCj4gcGVuZGluZyBmb3IgYSB3aGlsZS4KPiA+Cj4gPiAgICAtICBEYXJ5biBp cyBhY3RpdmVseSB3b3JraW5nIG9uIEhBRE9PUC05NzQ3IGZvciBhIHdoaWxlLCBhbmQgdGhlCj4g cGF0Y2ggYXJlIGdldHRpbmcgY2xvc2UgdG8gYmUgY29tbWl0dGVkLiBIb3dldmVyLCBhY2NvcmRp bmcgdG8gRGFyeW4sIHRoZQo+IHBhdGNoIHNlZW1zIHRvIGNhdXNlIHNvbWUgcmVncmVzc2lvbiBp biBzb21lIGNvcm5lciBjYXNlcyBpbiBzZWN1cmVkCj4gZW52aXJvbm1lbnQgKFN0b3JtIGF1dG8g dGd0LCBldGMuKS4gTWF5IG5lZWQgc29tZSBhZGRpdGlvbmFsIHdhdGNoL3Jldmlldwo+IG9uIHRo aXMgSklSQSdzIGZpeGVzLgo+ID4KPiA+Cj4gPgo+ID4gTXkgbW9uaXRvcmluZyBKQUNDIHJlcG9y dCBiZXR3ZWVuIDIuOC4yIGFuZCAyLjcuNCB3aWxsIGdldCBmaW5pc2gKPiB0b21vcnJvdy4gSWYg ZXZlcnl0aGluZyBpcyBnb2luZyBzbW9vdGhseSwgSSBhbSBwbGFubmluZyB0byBraWNrIG9mZiBS QzAKPiBhcm91bmQgaG9saWRheSAodGhpcyB3ZWVrZW5kKS4KPiA+Cj4gPgo+ID4KPiA+IFRoYW5r cywKPiA+Cj4gPgo+ID4KPiA+IOKAi0p1bnBpbmcKPiA+Cj4gPgo+ID4KPiA+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gPiBGcm9tOiBCcmFobWEgUmVkZHkgQmF0dHVsYSA8YnJh aG1hcmVkZHkuYmF0dHVsYUBob3RtYWlsLmNvbT4KPiA+IFNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAy OSwgMjAxNyA4OjQyIEFNCj4gPiBUbzogSnVucGluZyBEdTsgY29tbW9uLWRldkBoYWRvb3AuYXBh Y2hlLm9yZzsgaGRmcy1kZXZAaGFkb29wLmFwYWNoZS5vcmc7Cj4gbWFwcmVkdWNlLWRldkBoYWRv b3AuYXBhY2hlLm9yZzsgeWFybi1kZXZAaGFkb29wLmFwYWNoZS5vcmcKPiA+IFN1YmplY3Q6IFJl OiBBcGFjaGUgSGFkb29wIDIuOC4yIFJlbGVhc2UgUGxhbgo+ID4KPiA+Cj4gPiBIaSBBbGwKPiA+ Cj4gPiBVcGRhdGUgb24gMi44LjIgcmVsZWFzZSBzdGF0dXMKPiA+IHdlIGFyZSBkb3duIHRvIDMg Y3JpdGljYWwgaXNzdWVzICggWUFSTi02MDkxLFlBUk4tNzA4MyxIQURPT1AtOTc0NyksYWxsCj4g YXJlIHBhdGNoIGF2YWlsYWJsZSBhbmQgY2xvc2VyIHRvIGNvbW1pdC4KPiA+IEp1bnBpbmcgaXMg Y2xvc2luZyB0cmFja2luZyB0aGlzLgo+ID4KPiA+IFRvZG86Cj4gPgo+ID4gMSkgVXBkYXRlIHBv bS54bWwgLi4/ICBjdXJyZW50bHkgaXQncyB3aXRoIDIuOC4zCj4gPiBodHRwczovL2dpdGh1Yi5j b20vYXBhY2hlL2hhZG9vcC9ibG9iL2JyYW5jaC0yLjguMi9wb20ueG1sI0wyMQo+ID4gPGh0dHBz Oi8vZ2l0aHViLmNvbS9hcGFjaGUvaGFkb29wL2Jsb2IvYnJhbmNoLTIuOC4yL3BvbS54bWwjTDIx PjIpIFdpa2kKPiBpcyBvdXRkYXRlZCwgbmVlZCB0byB1cGRhdGUgdGhlIHdpa2kuLj8KPiA+IDMp IEFzIHRoaXMgaXMgZ29pbmcgdG8gc3RhYmxlIHJlbGVhc2UsYXJlIHdlIHBsYW5pbmcgZW5hYmxl IEJpZyB0b3AgZm9yCj4gMi44LjIgdGVzdGluZyBPciBEeW5hbW9tZXRlciB0ZXN0aW5nIChhbnli b2R5IGZyb20gbGlua2VkLWluIGNhbiBoZWxwKS4uPwo+ID4KPiA+IEBKdW5waW5nIER1PG1haWx0 bzpqZHVAaG9ydG9ud29ya3MuY29tPixQbGVhc2UgY29ycmVjdCBtZSxpZiBJIGFtIHdyb25nLgo+ ID4KPiA+Cj4gPiAtLUJyYWhtYSBSZWRkeSBCYXR0dWxhCj4gPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo+ID4gRnJvbTogSnVucGluZyBEdSA8amR1QGhvcnRvbndvcmtzLmNvbT4K PiA+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDcsIDIwMTcgMjo0NCBQTQo+ID4gVG86IGNvbW1vbi1k ZXZAaGFkb29wLmFwYWNoZS5vcmc7IGhkZnMtZGV2QGhhZG9vcC5hcGFjaGUub3JnOwo+IG1hcHJl ZHVjZS1kZXZAaGFkb29wLmFwYWNoZS5vcmc7IHlhcm4tZGV2QGhhZG9vcC5hcGFjaGUub3JnCj4g PiBTdWJqZWN0OiBSZTogQXBhY2hlIEhhZG9vcCAyLjguMiBSZWxlYXNlIFBsYW4KPiA+Cj4gPiBI ZWxsbyBjb21tdW5pdHksCj4gPiAgICBIZXJlIGlzIGEgcXVpY2sgdXBkYXRlIG9uIHN0YXR1cyBm b3IgMi44LjI6Cj4gPiAgICAtIFdlIGFyZSAwIGJsb2NrZXJzIG5vdyEKPiA+ICAgIC0gU3RpbGwg OSBjcml0aWNhbCBpc3N1ZXMsIDggb2YgdGhlbSBhcmUgUGF0Y2ggQXZhaWxhYmxlIGFuZCB3aXRo Cj4gYWN0aXZlbHkgd29ya2luZy4KPiA+ICAgIEZvciBkZXRhaWxzIG9mIHBlbmRpbmcgYmxvY2tl ci9jcml0aWNhbCBpc3N1ZXMsIHBsZWFzZSByZWZlcjoKPiBodHRwczovL3MuYXBhY2hlLm9yZy9K TTV4Cj4gPiBJc3N1ZSBOYXZpZ2F0b3IgLSBBU0YgSklSQTxodHRwczovL3MuYXBhY2hlLm9yZy9K TTV4Pgo+ID4gcy5hcGFjaGUub3JnCj4gPiBMaW5rZWQgQXBwbGljYXRpb25zLiBMb2FkaW5n4oCm IERhc2hib2FyZHMKPiA+Cj4gPgo+ID4KPiA+Cj4gPiAgICBJIGFtIHBsYW5uaW5nIHRvIGN1dCBv ZmYgZmlyc3QgUkMgaW4gd2VlayBvZiBBdWcuIDIxc3QgdG8gZ2l2ZSB0aGVzZQo+IGNyaXRpY2Fs IGlzc3VlcyBhIGJpdCBtb3JlIHRpbWUgKH4yIHdlZWtzKSB0byBnZXQgZml4ZWQuIExldCdzIHdv cmtpbmcKPiB0b3dhcmRzIGZpcnN0IHByb2R1Y3Rpb24gR0EgcmVsZWFzZSBvZiBBcGFjaGUgSGFk b29wIDIuOCAtIGxldCBtZSBrbm93IGlmCj4geW91IGhhdmUgYW55IHRob3VnaHRzIG9yIGNvbW1l bnRzLgo+ID4KPiA+IENoZWVycywKPiA+Cj4gPiBKdW5waW5nCj4gPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBGcm9tOiBKdW5waW5nIER1IDxqZHVAaG9ydG9u d29ya3MuY29tPgo+ID4gU2VudDogTW9uZGF5LCBKdWx5IDI0LCAyMDE3IDE6NDEgUE0KPiA+IFRv OiBjb21tb24tZGV2QGhhZG9vcC5hcGFjaGUub3JnOyBoZGZzLWRldkBoYWRvb3AuYXBhY2hlLm9y ZzsKPiBtYXByZWR1Y2UtZGV2QGhhZG9vcC5hcGFjaGUub3JnOyB5YXJuLWRldkBoYWRvb3AuYXBh Y2hlLm9yZwo+ID4gU3ViamVjdDogUmU6Cj4gPgo+ID4gSSBoYXZlIGRvbmUgdGhlIGNoYW5nZS4K PiA+Cj4gPiBBbGwgY29tbWl0dGVycywKPiA+Cj4gPiAgICAgIDIuOC4yIHJlbGVhc2UgaXMgc3Vw cG9zZWQgdG8gYmUgYSBzdGFibGUvcHJvZHVjdGlvbiByZWxlYXNlIGZvcgo+IGJyYW5jaC0yLjgu IEZvciBjb21taXRzIHRvIGdvIGZvciAyLjguMiByZWxlYXNlIChvbmx5IGltcG9ydGFudCBhbmQg bG93Cj4gcmlzayBidWcgZml4ZXMpLCBwbGVhc2UgY29tbWl0IHRvIHRydW5rLCBicmFuY2gtMiwg YnJhbmNoLTIuOCBhbmQKPiBicmFuY2gtMi44LjIuIEZvciB1bmltcG9ydGFudCBvciBoaWdoIHJp c2sgYnVnIGZpeGVzL2ltcHJvdmVtZW50cywgcGxlYXNlCj4gY29tbWl0IHRvIGJyYW5jaC0yLjgg KHRydW5rL2JyYW5jaC0yKSBvbmx5IGFuZCBtYXJrIEpJUkEgZml4ZWQgYXMgMi44LjMuCj4gVGhh bmtzIGZvciB5b3VyIGNvb3BlcmF0aW9uIQo+ID4KPiA+Cj4gPiBUaGFua3MsCj4gPgo+ID4KPiA+ IEp1bnBpbmcKPiA+Cj4gPgo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ IEZyb206IEp1bnBpbmcgRHUKPiA+IFNlbnQ6IE1vbmRheSwgSnVseSAyNCwgMjAxNyAxMDozNiBB TQo+ID4gVG86IEJyYWhtYSBSZWRkeSBCYXR0dWxhOyBWaW5vZCBLdW1hciBWYXZpbGFwYWxsaQo+ ID4gQ2M6IEtpaHdhbCBMZWU7IGNvbW1vbi1kZXZAaGFkb29wLmFwYWNoZS5vcmc7IGhkZnMtZGV2 QGhhZG9vcC5hcGFjaGUub3JnOwo+IG1hcHJlZHVjZS1kZXZAaGFkb29wLmFwYWNoZS5vcmc7IHlh cm4tZGV2QGhhZG9vcC5hcGFjaGUub3JnOyBKYXNvbiBMb3dlOwo+IGh1bWJlZG9vaEBhcGFjaGUu b3JnCj4gPiBTdWJqZWN0OiBSZTogQXBhY2hlIEhhZG9vcCAyLjguMiBSZWxlYXNlIFBsYW4KPiA+ Cj4gPgo+ID4gTmljZSBjYXRjaCwgQnJhaG1hLiBBY3R1YWxseSwgdGhpcyBpcyBub3Qgc3VwcG9z ZWQgdG8gYmUgaGFwcGVuIGFzIHdlCj4gYWxsIHNob3VsZCBrbm93IHRoZSBwYXRjaCBzaG91bGQg Zmlyc3RseSBnZXQgbGFuZGVkIG9uIGJyYW5jaC0yLjggKGFzIHdlbGwKPiBhcyB0cnVuaywgYnJh bmNoLTIpIGJlZm9yZSBsYW5kZWQgb24gYnJhbmNoLTIuOC4yLiBBbnl3YXksIHdlIHdpbGwgYWx3 YXlzCj4gY2hlY2sgSklSQXMgY2xhaW0gdG8gZml4ZWQgaW4gYSBzcGVjaWZpYyByZWxlYXNlIHZl cnNpb24gd2l0aCBjb21taXRzCj4gYWN0dWFsbHkgbGFuZGluZyBvbiB0aGUgcmVsZWFzaW5nIGJy YW5jaCBiZWZvcmUga2lja2luZyBvZmYgUkMuIFNvLCBJIGFtCj4gbm90IHRvbyB3b3JyeSBhYm91 dCB0aGlzIG1pc3Rha2luZyBiZWhhdmlvcnMgYXMgaXQgaGFwcGVucyBpbiBldmVyeQo+IHJlbGVh c2VzLgo+ID4KPiA+IElmIG5vIG90aGVyIGNvbmNlcm5zLCBJIHdpbGwgZG8gdGhlIGJyYW5jaCB1 cGRhdGUgaW4gbmV4dCAzMCBtaW51dGVzLgo+ID4KPiA+Cj4gPiBUaGFua3MsCj4gPgo+ID4KPiA+ IEp1bnBpbmcKPiA+Cj4gPgo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ IEZyb206IEJyYWhtYSBSZWRkeSBCYXR0dWxhIDxicmFobWFyZWRkeS5iYXR0dWxhQGhvdG1haWwu Y29tPgo+ID4gU2VudDogU3VuZGF5LCBKdWx5IDIzLCAyMDE3IDE6NTAgQU0KPiA+IFRvOiBKdW5w aW5nIER1OyBWaW5vZCBLdW1hciBWYXZpbGFwYWxsaQo+ID4gQ2M6IEtpaHdhbCBMZWU7IGNvbW1v bi1kZXZAaGFkb29wLmFwYWNoZS5vcmc7IGhkZnMtZGV2QGhhZG9vcC5hcGFjaGUub3JnOwo+IG1h cHJlZHVjZS1kZXZAaGFkb29wLmFwYWNoZS5vcmc7IHlhcm4tZGV2QGhhZG9vcC5hcGFjaGUub3Jn OyBKYXNvbiBMb3dlOwo+IGh1bWJlZG9vaEBhcGFjaGUub3JnCj4gPiBTdWJqZWN0OiBSZTogQXBh Y2hlIEhhZG9vcCAyLjguMiBSZWxlYXNlIFBsYW4KPiA+Cj4gPgo+ID4KPiA+IEp1c3QgZXhlY3V0 ZWQgdGhlICJnaXQgbG9nIGJyYW5jaC0yLjggXmJyYW5jaC0yLjguMiIgZm91bmQgdHdvIGNvbW1p dHMKPiBhcmUgbWlzc2VkIChIREZTLTgzMTIgYW5kIEhBRE9PUC0xMzg2NyApIGluIGJyYW5jaC0y LjguSSBqdXN0IHB1c2hlZCB0aGlzCj4gdHdvIGNvbW1pdHMuSG9wZSB3ZSdsbCBub3QgbWlzcyBh bnkgY29tbWl0cyB3aGljaCBwcmVzZW50IGluIG9ubHkgaW4KPiBicmFuY2gtMi44LjIuCj4gPgo+ ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IEZyb206IEp1bnBpbmcgRHUg PGpkdUBob3J0b253b3Jrcy5jb20+Cj4gPiBTZW50OiBTYXR1cmRheSwgSnVseSAyMiwgMjAxNyA1 OjU3IEFNCj4gPiBUbzogVmlub2QgS3VtYXIgVmF2aWxhcGFsbGkKPiA+IENjOiBLaWh3YWwgTGVl OyBjb21tb24tZGV2QGhhZG9vcC5hcGFjaGUub3JnOyBoZGZzLWRldkBoYWRvb3AuYXBhY2hlLm9y ZzsKPiBtYXByZWR1Y2UtZGV2QGhhZG9vcC5hcGFjaGUub3JnOyB5YXJuLWRldkBoYWRvb3AuYXBh Y2hlLm9yZzsgSmFzb24gTG93ZTsKPiBodW1iZWRvb2hAYXBhY2hlLm9yZwo+ID4gU3ViamVjdDog UmU6IEFwYWNoZSBIYWRvb3AgMi44LjIgUmVsZWFzZSBQbGFuCj4gPgo+ID4gQWxyZWFkeSBnZXQg YmFjayBmcm9tIERhbmllbCB3aG8gaXMgZnJvbSBBU0YgSU5GUkEgdGVhbSwgSSBwbGFuIHRvIGRv Cj4gZm9sbG93aW5nIG9wZXJhdGlvbnMgb24gbmV4dCBNb25kYXkgbW9ybmluZzoKPiA+IDEuIERy b3AgY3VycmVudCBicmFuY2gtMi44LjIgYW5kIHJlY3V0IGJyYW5jaC0yLjguMiBmcm9tIGJyYW5j aC0yLjgKPiA+IDIuIERyb3AgYWJhbmRvbmVkIGJyYW5jaC0yLjguMSBhbmQgcmVuYW1lIGJyYW5j aC0yLjguMS1wcml2YXRlIHRvCj4gYnJhbmNoLTIuOC4xIHdoZXJlIHdlIGp1c3QgcmVsZWFzZWQg Mi44LjEgZnJvbS4KPiA+IEkgd2lsbCBhbHNvIGFkanVzdCBmaXggdmVyc2lvbiBvbiBhbGwgYWZm ZWN0ZWQgSklSQSBhY2NvcmRpbmdseS4KPiA+Cj4gPiBJZiB5b3UgaGF2ZSBhbnkgY29uY2VybnMg b24gYWJvdmUgb3BlcmF0aW9ucywgcGxlYXNlIHJhaXNlIGl0IGJlZm9yZSB0aGUKPiBlbmQgb2Yg dGhpcyBTdW5kYXkgKDcvMjMpLgo+ID4KPiA+Cj4gPiBUaGFua3MsCj4gPgo+ID4gSnVucGluZwo+ ID4KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IEZyb206 IEp1bnBpbmcgRHUgPGpkdUBob3J0b253b3Jrcy5jb20+Cj4gPiBTZW50OiBGcmlkYXksIEp1bHkg MjEsIDIwMTcgMjoyOSBQTQo+ID4gVG86IFZpbm9kIEt1bWFyIFZhdmlsYXBhbGxpCj4gPiBDYzog S2lod2FsIExlZTsgY29tbW9uLWRldkBoYWRvb3AuYXBhY2hlLm9yZzsgaGRmcy1kZXZAaGFkb29w LmFwYWNoZS5vcmc7Cj4gbWFwcmVkdWNlLWRldkBoYWRvb3AuYXBhY2hlLm9yZzsgeWFybi1kZXZA aGFkb29wLmFwYWNoZS5vcmc7IEphc29uIExvd2UKPiA+IFN1YmplY3Q6IFJlOiBBcGFjaGUgSGFk b29wIDIuOC4yIFJlbGVhc2UgUGxhbgo+ID4KPiA+IE1ha2Ugc2Vuc2UsIGp1c3QgcmFpc2U6IGh0 dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvCj4gamlyYS9icm93c2UvSU5GUkEtMTQ2NjkKPiA+IFtJ TkZSQS0xNDY2OV0gRGVsZXRlIHNldmVyYWwgYWJhbmRvbmVkIGJyYW5jaGVzIC0gQVNGIEpJUkE8 Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNDY2OT4KPiA+ IGlzc3Vlcy5hcGFjaGUub3JnCj4gPiBMaW5rZWQgQXBwbGljYXRpb25zLiBMb2FkaW5n4oCmIERh c2hib2FyZHMKPiA+Cj4gPgo+ID4KPiA+Cj4gPiBUaGFua3MsCj4gPgo+ID4gSnVucGluZwo+ID4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gRnJvbTogVmlub2Qg S3VtYXIgVmF2aWxhcGFsbGkgPHZpbm9ka3ZAYXBhY2hlLm9yZz4KPiA+IFNlbnQ6IEZyaWRheSwg SnVseSAyMSwgMjAxNyAxMjozMSBQTQo+ID4gVG86IEp1bnBpbmcgRHUKPiA+IENjOiBLaWh3YWwg TGVlOyBjb21tb24tZGV2QGhhZG9vcC5hcGFjaGUub3JnOyBoZGZzLWRldkBoYWRvb3AuYXBhY2hl Lm9yZzsKPiBtYXByZWR1Y2UtZGV2QGhhZG9vcC5hcGFjaGUub3JnOyB5YXJuLWRldkBoYWRvb3Au YXBhY2hlLm9yZzsgSmFzb24gTG93ZQo+ID4gU3ViamVjdDogUmU6IEFwYWNoZSBIYWRvb3AgMi44 LjIgUmVsZWFzZSBQbGFuCj4gPgo+ID4gSnVucGluZywKPiA+Cj4gPiBJZiB3ZSBhcmUgbG9va2lu ZyBhdCBhIG1vbnRoLCBJ4oCZZCBub3QgcmVicmFuY2ggYnJhbmNoLTIuOC4yIHJpZ2h0IG5vdwo+ IGdpdmVuIGhvdyB0aGVzZSB0aGluZ3MgZ28uIFdlIGNhbiBqdXN0IGNvbnRpbnVlIHRvIGNvbW1p dCBvbiBicmFuY2gtMi44IGZvcgo+IG5vdy4KPiA+Cj4gPiBJIGFsc28gdGhpbmsgd2Ugc2hvdWxk IGp1c3QgZm9sbG93IHVwIHdpdGggQVNGIElORlJBIGFuZCBjbGVhbiB1cCB0aGUKPiBicmFuY2hl cwo+ID4gLSBEZWxldGUgYnJhbmNoLTIuOC4yIHNvIHRoYXQgd2UgY2FuIHJlY3JlYXRlIGl0IGFm cmVzaCBhIGxpdHRsZSBsYXRlci4KPiA+IC0gYnJhbmNoLTIuOC4xIGlzIGFsc28gc3RhbGUgYW5k IGl0IHNob3VsZCBiZSBkZWxldGVkLgo+IGJyYW5jaC0yLjguMS1wcml2YXRlIHNob3VsZCBiZSBy ZW5hbWVkIHRvIGJyYW5jaC0yLjguMQo+ID4KPiA+IFRoYW5rcwo+ID4gK1Zpbm9kCj4gPgo+ID4+ IE9uIEp1bCAyMSwgMjAxNywgYXQgMTE6MjMgQU0sIEp1bnBpbmcgRHUgPGpkdUBob3J0b253b3Jr cy5jb20+IHdyb3RlOgo+ID4+Cj4gPj4gVGhhbmtzIGZvciBzdWdnZXN0aW9ucywgSmFzb24gYW5k IEtpaHdhbCEKPiA+PiArMSBvbiByZWxlYXNpbmcgMi44LjIgb24gbGF0ZXN0IGJyYW5jaC0yLjgg dG9vLiBQcmFjdGljYWxseSwgaWYKPiBicmFuY2gtMi44LjIgY2Fubm90IGJlIGFiYW5kb25lZC9y ZXBsYWNlZCAoc3VzcGVjdCBhbGwgYnJhbmNoZXMgYXJlCj4gcmVhZC1vbmx5IG5vdyksIEkgd2ls bCBtYW51YWxseSBtZXJnZSBhbGwgY29tbWl0cyB0aGF0IG5vdCBsYW5kZWQgb24gMi44LjIKPiB5 ZXQuCj4gPj4KPiA+PiBUaGFua3MsCj4gPj4KPiA+PiBKdW5waW5nCj4gPj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+IEZyb206IEphc29uIExvd2UgPGpsb3dl QHlhaG9vLWluYy5jb20uSU5WQUxJRD4KPiA+PiBTZW50OiBGcmlkYXksIEp1bHkgMjEsIDIwMTcg ODoxNyBBTQo+ID4+IFRvOiBLaWh3YWwgTGVlOyBKdW5waW5nIER1OyBjb21tb24tZGV2QGhhZG9v cC5hcGFjaGUub3JnOwo+IGhkZnMtZGV2QGhhZG9vcC5hcGFjaGUub3JnOyBtYXByZWR1Y2UtZGV2 QGhhZG9vcC5hcGFjaGUub3JnOwo+IHlhcm4tZGV2QGhhZG9vcC5hcGFjaGUub3JnCj4gPj4gU3Vi amVjdDogUmU6IEFwYWNoZSBIYWRvb3AgMi44LjIgUmVsZWFzZSBQbGFuCj4gPj4KPiA+PiArMSB0 byBiYXNlIHRoZSAyLjguMiByZWxlYXNlIG9mZiBvZiB0aGUgbW9yZSByZWNlbnQgYWN0aXZpdHkg b24KPiBicmFuY2gtMi44LiAgQmVjYXVzZSBicmFuY2gtMi44LjIgd2FzIGN1dCBzbyBsb25nIGFn byBpdCBpcyBtaXNzaW5nIGEgbG90Cj4gb2YgZml4ZXMgdGhhdCBhcmUgaW4gYnJhbmNoLTIuOC4g IFRoZXJlIGFsc28gYXJlIGEgbG90IG9mIEpJUkFzIHRoYXQgY2xhaW0KPiB0aGV5IGFyZSBmaXhl ZCBpbiAyLjguMiBidXQgYXJlIG5vdCBpbiBicmFuY2gtMi44LjIuICBIYXZpbmcgdGhlIDIuOC4y Cj4gcmVsZWFzZSBiZSBiYXNlZCBvbiByZWNlbnQgYWN0aXZpdHkgaW4gYnJhbmNoLTIuOCB3b3Vs ZCBzb2x2ZSBib3RoIG9mIHRoZXNlCj4gaXNzdWVzLCBhbmQgd2UnZCBvbmx5IG5lZWQgdG8gbW92 ZSB0aGUgaGFuZGZ1bCBvZiBKSVJBcyB0aGF0IGhhdmUgbWFya2VkCj4gdGhlbXNlbHZlcyBjb3Jy ZWN0bHkgYXMgZml4ZWQgaW4gMi44LjMgdG8gYmUgZml4ZWQgaW4gMi44LjIuCj4gPj4KPiA+PiBK YXNvbgo+ID4+Cj4gPj4KPiA+PiAgIE9uIEZyaWRheSwgSnVseSAyMSwgMjAxNyAxMDowMSBBTSwg S2lod2FsIExlZQo+IDxraWh3YWxAeWFob28taW5jLmNvbS5JTlZBTElEPiB3cm90ZToKPiA+Pgo+ ID4+Cj4gPj4gVGhhbmtzIGZvciBkcml2aW5nIHRoZSBuZXh0IDIuOCByZWxlYXNlLCBKdW5waW5n LiBXaGlsZSBJIHdhcwo+IGNvbW1pdHRpbmcgYSBibG9ja2VyIGZvciAyLjcuNCwgSSBub3RpY2Vk IHNvbWUgb2YgdGhlIGppcmFzIGFyZSBiYWNrLXBvcnRlZAo+IHRvIDIuNywgYnV0IG1pc3Npbmcg aW4gYnJhbmNoLTIuOC4yLiAgUGVyaGFwcyBpdCBpcyBzYWZlciBhbmQgZWFzaWVyIHRvCj4gc2lt cGx5IHJlYnJhbmNoIDIuOC4yLgo+ID4+IFRoYW5rcyxLaWh3YWwKPiA+Pgo+ID4+IE9uIFRodXJz ZGF5LCBKdWx5IDIwLCAyMDE3LCAzOjMyOjE2IFBNIENEVCwgSnVucGluZyBEdSA8Cj4gamR1QGhv cnRvbndvcmtzLmNvbT4gd3JvdGU6Cj4gPj4KPiA+PiBIaSBhbGwsCj4gPj4gICBQZXIgVmlub2Qn cyBwcmV2aW91cyBlbWFpbCwgd2UganVzdCBhbm5vdW5jZSBBcGFjaGUgSGFkb29wIDIuOC4xIGdl dAo+IHJlbGVhc2VkIHRvZGF5IHdoaWNoIGlzIGEgc3BlY2lhbCBzZWN1cml0eSByZWxlYXNlLiBO b3csIHdlIHNob3VsZCB3b3JrCj4gdG93YXJkcyAyLjguMiByZWxlYXNlIHdoaWNoIGFpbSBmb3Ig cHJvZHVjdGlvbiBkZXBsb3ltZW50LiBUaGUgZm9jdXMKPiBvYnZpb3VzbHkgaXMgdG8gZml4IGJs b2NrZXIvY3JpdGljYWwgaXNzdWVzIFsyXSwgYnVnLWZpeGVzIGFuZCAqbm8qCj4gZmVhdHVyZXMg LyBpbXByb3ZlbWVudHMuIFdlIGN1cnJlbnRseSBoYXZlIDEzIGJsb2NrZXIvY3JpdGljYWwgaXNz dWVzLCBhbmQKPiAxMCBvZiB0aGVtIGFyZSBQYXRjaCBBdmFpbGFibGUuCj4gPj4KPiA+PiBJIHBs YW4gdG8gY3V0IGFuIFJDIGluIGEgbW9udGggLSB0YXJnZXQgZm9yIHJlbGVhc2luZyBiZWZvcmUg ZW5kIG9mCj4gQXVnLiwgdG8gZ2l2ZSBlbm91Z2ggdGltZSBmb3Igb3V0c3RhbmRpbmcgYmxvY2tl ciAvIGNyaXRpY2FsIGlzc3Vlcy4gV2lsbAo+IHN0YXJ0IG1vdmluZyBvdXQgYW55IHRpY2tldHMg dGhhdCBhcmUgbm90IGJsb2NrZXJzIGFuZC9vciB3b24ndCBmaXQgdGhlCj4gdGltZWxpbmUuIEZv ciBwcm9ncmVzcyBvZiByZWxlYXNpbmcgZWZmb3J0LCBwbGVhc2UgcmVmZXIgb3VyIHJlbGVhc2Ug d2lraQo+IFsyXS4KPiA+Pgo+ID4+IFBsZWFzZSBzaGFyZSB0aG91Z2h0cyBpZiB5b3UgaGF2ZSBh bnkuIFRoYW5rcyEKPiA+Pgo+ID4+IFRoYW5rcywKPiA+Pgo+ID4+IEp1bnBpbmcKPiA+Pgo+ID4+ IFsxXSAyLjguMiByZWxlYXNlIEJsb2NrZXJzL0NyaXRpY2FsczogaHR0cHM6Ly9zLmFwYWNoZS5v cmcvSk01eAo+ID4gSXNzdWUgTmF2aWdhdG9yIC0gQVNGIEpJUkE8aHR0cHM6Ly9zLmFwYWNoZS5v cmcvSk01eD4KPiA+IHMuYXBhY2hlLm9yZwo+ID4gTGlua2VkIEFwcGxpY2F0aW9ucy4gTG9hZGlu Z+KApiBEYXNoYm9hcmRzCj4gPgo+ID4KPiA+Cj4gPj4gWzJdIDIuOCBSZWxlYXNlIHdpa2k6IGh0 dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy8KPiBjb25mbHVlbmNlL2Rpc3BsYXkvSEFET09QL0hhZG9v cCsyLjgrUmVsZWFzZQo+ID4gSGFkb29wIDIuOCBSZWxlYXNlIC0gSGFkb29wIC0gQXBhY2hlIFNv ZnR3YXJlIEZvdW5kYXRpb248aHR0cHM6Ly9jd2lraS4KPiBhcGFjaGUub3JnL2NvbmZsdWVuY2Uv ZGlzcGxheS9IQURPT1AvSGFkb29wKzIuOCtSZWxlYXNlPgo+ID4gY3dpa2kuYXBhY2hlLm9yZwo+ ID4gUmVsZWFzZSBzY2hlZHVsZS4gSXQgaGFzIGJlZW4gb3ZlciAxIHllYXIgc2luY2UgbGFzdCBt aW5vciByZWxlYXNlCj4gMi43LjAsIHNvIHdlIHBsYW4gdG8gcmVsZWFzZSBIYWRvb3AgMi44LjAg YXMgc29vbiBhcyB3ZSBjYW4uIFBlcgo+IGRpc2N1c3Npb25zIG9uIGNvbW11bml0eSB0aHJlYWRz IC4uLgo+ID4KPiA+Cj4gPgo+ID4gSGFkb29wIDIuOCBSZWxlYXNlIC0gSGFkb29wIC0gQXBhY2hl IFNvZnR3YXJlIEZvdW5kYXRpb248aHR0cHM6Ly9jd2lraS4KPiBhcGFjaGUub3JnL2NvbmZsdWVu Y2UvZGlzcGxheS9IQURPT1AvSGFkb29wKzIuOCtSZWxlYXNlPgo+ID4gSGFkb29wIDIuOCBSZWxl YXNlIC0gSGFkb29wIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb248aHR0cHM6Ly9jd2lraS4K PiBhcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9IQURPT1AvSGFkb29wKzIuOCtSZWxlYXNl Pgo+ID4gY3dpa2kuYXBhY2hlLm9yZwo+ID4gUmVsZWFzZSBzY2hlZHVsZS4gSXQgaGFzIGJlZW4g b3ZlciAxIHllYXIgc2luY2UgbGFzdCBtaW5vciByZWxlYXNlCj4gMi43LjAsIHNvIHdlIHBsYW4g dG8gcmVsZWFzZSBIYWRvb3AgMi44LjAgYXMgc29vbiBhcyB3ZSBjYW4uIFBlcgo+IGRpc2N1c3Np b25zIG9uIGNvbW11bml0eSB0aHJlYWRzIC4uLgo+ID4KPiA+Cj4gPgo+ID4gY3dpa2kuYXBhY2hl Lm9yZwo+ID4gUmVsZWFzZSBzY2hlZHVsZS4gSXQgaGFzIGJlZW4gb3ZlciAxIHllYXIgc2luY2Ug bGFzdCBtaW5vciByZWxlYXNlCj4gMi43LjAsIHNvIHdlIHBsYW4gdG8gcmVsZWFzZSBIYWRvb3Ag Mi44LjAgYXMgc29vbiBhcyB3ZSBjYW4uIFBlcgo+IGRpc2N1c3Npb25zIG9uIGNvbW11bml0eSB0 aHJlYWRzIC4uLgo+ID4KPiA+Cj4gPgo+ID4+Cj4gPj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+ID4+IEZyb206IFZpbm9kIEt1bWFyIFZhdmlsYXBhbGxpIDx2aW5v ZGt2QGFwYWNoZS5vcmc+Cj4gPj4gU2VudDogVGh1cnNkYXksIEp1bHkgMjAsIDIwMTcgMTowNSBQ TQo+ID4+IFRvOiBnZW5lcmFsQGhhZG9vcC5hcGFjaGUub3JnCj4gPj4gU3ViamVjdDogW0FOTk9V TkNFXSBBcGFjaGUgSGFkb29wIDIuOC4xIGlzIHJlbGVhc2VkCj4gPj4KPiA+PiBIaSBhbGwsCj4g Pj4KPiA+PiBUaGUgQXBhY2hlIEhhZG9vcCBQTUMgaGFzIHJlbGVhc2VkIHZlcnNpb24gMi44LjEu IFlvdSBjYW4gZ2V0IGl0IGZyb20KPiB0aGlzIHBhZ2U6IGh0dHA6Ly9oYWRvb3AuYXBhY2hlLm9y Zy9yZWxlYXNlcy5odG1sI0Rvd25sb2FkCj4gPiBBcGFjaGUgSGFkb29wIFJlbGVhc2VzPGh0dHA6 Ly9oYWRvb3AuYXBhY2hlLm9yZy9yZWxlYXNlcy5odG1sI0Rvd25sb2FkPgo+ID4gaGFkb29wLmFw YWNoZS5vcmcKPiA+IFRvIHZlcmlmeSBIYWRvb3AgcmVsZWFzZXMgdXNpbmcgR1BHOiBEb3dubG9h ZCB0aGUgcmVsZWFzZQo+IGhhZG9vcC1YLlkuWi1zcmMudGFyLmd6IGZyb20gYSBtaXJyb3Igc2l0 ZS4gRG93bmxvYWQgdGhlIHNpZ25hdHVyZSBmaWxlCj4gaGFkb29wLVguWS5aLXNyYy50YXIgLi4u Cj4gPgo+ID4KPiA+Cj4gPiBBcGFjaGUgSGFkb29wIFJlbGVhc2VzPGh0dHA6Ly9oYWRvb3AuYXBh Y2hlLm9yZy9yZWxlYXNlcy5odG1sI0Rvd25sb2FkPgo+ID4gQXBhY2hlIEhhZG9vcCBSZWxlYXNl czxodHRwOi8vaGFkb29wLmFwYWNoZS5vcmcvcmVsZWFzZXMuaHRtbCNEb3dubG9hZD4KPiA+IGhh ZG9vcC5hcGFjaGUub3JnCj4gPiBUbyB2ZXJpZnkgSGFkb29wIHJlbGVhc2VzIHVzaW5nIEdQRzog RG93bmxvYWQgdGhlIHJlbGVhc2UKPiBoYWRvb3AtWC5ZLlotc3JjLnRhci5neiBmcm9tIGEgbWly cm9yIHNpdGUuIERvd25sb2FkIHRoZSBzaWduYXR1cmUgZmlsZQo+IGhhZG9vcC1YLlkuWi1zcmMu dGFyIC4uLgo+ID4KPiA+Cj4gPgo+ID4gaGFkb29wLmFwYWNoZS5vcmcKPiA+IFRvIHZlcmlmeSBI YWRvb3AgcmVsZWFzZXMgdXNpbmcgR1BHOiBEb3dubG9hZCB0aGUgcmVsZWFzZQo+IGhhZG9vcC1Y LlkuWi1zcmMudGFyLmd6IGZyb20gYSBtaXJyb3Igc2l0ZS4gRG93bmxvYWQgdGhlIHNpZ25hdHVy ZSBmaWxlCj4gaGFkb29wLVguWS5aLXNyYy50YXIgLi4uCj4gPgo+ID4KPiA+Cj4gPj4gVGhpcyBp cyBhIHNlY3VyaXR5IHJlbGVhc2UgaW4gdGhlIDIuOC4wIHJlbGVhc2UgbGluZS4gSXQgY29uc2lz dHMgb2YKPiAyLjguMCBwbHVzIHNlY3VyaXR5IGZpeGVzLiBVc2VycyBvbiAyLjguMCBhcmUgZW5j b3VyYWdlZCB0byB1cGdyYWRlIHRvCj4gMi44LjEuCj4gPj4KPiA+PiBQbGVhc2Ugbm90ZSB0aGF0 IDIuOC54IHJlbGVhc2UgbGluZSBjb250aW51ZXMgdG8gYmUgbm90IHlldCByZWFkeSBmb3IKPiBw cm9kdWN0aW9uIHVzZS4gQ3JpdGljYWwgaXNzdWVzIGFyZSBiZWluZyBpcm9uZWQgb3V0IHZpYSB0 ZXN0aW5nIGFuZAo+IGRvd25zdHJlYW0gYWRvcHRpb24uIFByb2R1Y3Rpb24gdXNlcnMgc2hvdWxk IHdhaXQgZm9yIGEgc3Vic2VxdWVudCByZWxlYXNlCj4gaW4gdGhlIDIuOC54IGxpbmUuCj4gPj4K PiA+PiBUaGFua3MKPiA+PiArVmlub2QKPiA+Pgo+ID4+Cj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4g VG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogbWFwcmVkdWNlLWRldi11bnN1YnNjcmliZUBoYWRvb3Au YXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IG1hcHJlZHVj ZS1kZXYtaGVscEBoYWRvb3AuYXBhY2hlLm9yZwo+ID4+Cj4gPj4KPiA+Pgo+ID4+Cj4gPj4gLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogaGRmcy1kZXYtdW5zdWJzY3Jp YmVAaGFkb29wLmFwYWNoZS5vcmcKPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWls OiBoZGZzLWRldi1oZWxwQGhhZG9vcC5hcGFjaGUub3JnCj4gPj4KPiA+Cj4gPgo+ID4KPiA+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogeWFybi1kZXYtdW5zdWJzY3Jp YmVAaGFkb29wLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6 IHlhcm4tZGV2LWhlbHBAaGFkb29wLmFwYWNoZS5vcmcKPiA+Cj4gPgo+ID4KPiA+Cj4gPiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IG1hcHJlZHVjZS1kZXYtdW5zdWJz Y3JpYmVAaGFkb29wLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1h aWw6IG1hcHJlZHVjZS1kZXYtaGVscEBoYWRvb3AuYXBhY2hlLm9yZwo+ID4KPiA+Cj4gPgo+ID4g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB5YXJuLWRldi11bnN1YnNj cmliZUBoYWRvb3AuYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFp bDogeWFybi1kZXYtaGVscEBoYWRvb3AuYXBhY2hlLm9yZwo+ID4KPiA+Cj4gPiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IG1hcHJlZHVjZS1kZXYtdW5zdWJzY3JpYmVA aGFkb29wLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IG1h cHJlZHVjZS1kZXYtaGVscEBoYWRvb3AuYXBhY2hlLm9yZwo+Cj4KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVu c3Vic2NyaWJlLCBlLW1haWw6IHlhcm4tZGV2LXVuc3Vic2NyaWJlQGhhZG9vcC5hcGFjaGUub3Jn CkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IHlhcm4tZGV2LWhlbHBAaGFkb29wLmFw YWNoZS5vcmcK DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGhkZnMtZGV2LXVu c3Vic2NyaWJlQGhhZG9vcC5hcGFjaGUub3JnDQpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywg ZS1tYWlsOiBoZGZzLWRldi1oZWxwQGhhZG9vcC5hcGFjaGUub3JnDQoN