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 843C2200C30 for ; Tue, 7 Mar 2017 17:14:36 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 82CC4160B68; Tue, 7 Mar 2017 16:14:36 +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 CFED6160B5F for ; Tue, 7 Mar 2017 17:14:34 +0100 (CET) Received: (qmail 64121 invoked by uid 500); 7 Mar 2017 16:14:29 -0000 Mailing-List: contact dev-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list dev@cloudstack.apache.org Received: (qmail 64109 invoked by uid 99); 7 Mar 2017 16:14:28 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Mar 2017 16:14:28 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 12CE0C0C0D for ; Tue, 7 Mar 2017 16:14:28 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.521 X-Spam-Level: X-Spam-Status: No, score=-4.521 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, KAM_NUMSUBJECT=0.5, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=netapp.onmicrosoft.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id i1u3kO0Tx7Yr for ; Tue, 7 Mar 2017 16:14:20 +0000 (UTC) Received: from mx141.netapp.com (mx141.netapp.com [216.240.21.12]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 53F3F5FC06 for ; Tue, 7 Mar 2017 16:14:14 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.35,258,1484035200"; d="scan'208";a="187880453" Received: from hioexcmbx08-prd.hq.netapp.com ([10.122.105.41]) by mx141-out.netapp.com with ESMTP; 07 Mar 2017 08:01:57 -0800 Received: from VMWEXCCAS03-PRD.hq.netapp.com (10.122.105.19) by hioexcmbx08-prd.hq.netapp.com (10.122.105.41) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Tue, 7 Mar 2017 08:10:55 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (10.120.60.153) by VMWEXCCAS03-PRD.hq.netapp.com (10.122.105.19) with Microsoft SMTP Server (TLS) id 15.0.1210.3 via Frontend Transport; Tue, 7 Mar 2017 08:10:55 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netapp.onmicrosoft.com; s=selector1-netapp-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=t8GD//U+/oTKMGUE37bD4cGak1bu+IEqmgZu7SuzxGE=; b=inplJoQRxb/FNMQtm46tR0LH+1hkyMMX4UH+a4hGWgou5t87t1V5qFC3me+H1ExBBGaaMHNgNd4SJVWqZlJfyb3mHxvCczu+S16f3hzt2zd9q/yaodY6gWAW7IFU0I1tTYTVmYLuoAaURrYbna9YfBbxEJkejMlcMWzg4I2GeSA= Received: from CO1PR06MB329.namprd06.prod.outlook.com (10.141.69.16) by CO1PR06MB332.namprd06.prod.outlook.com (10.141.69.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.933.12; Tue, 7 Mar 2017 16:10:53 +0000 Received: from CO1PR06MB329.namprd06.prod.outlook.com ([169.254.11.204]) by CO1PR06MB329.namprd06.prod.outlook.com ([169.254.11.204]) with mapi id 15.01.0947.020; Tue, 7 Mar 2017 16:10:53 +0000 From: "Tutkowski, Mike" To: "dev@cloudstack.apache.org" Subject: Re: CLOUDSTACK-9822 Thread-Topic: CLOUDSTACK-9822 Thread-Index: AQHSl1XhAAtr+RATt0OxZfqRcvKaH6GJjB6f Date: Tue, 7 Mar 2017 16:10:53 +0000 Message-ID: <05C8000F-3BCD-4941-A952-A92654854A0F@netapp.com> References: <93FAE13D-DAB4-445A-9CA5-AF7F723228F0@autodesk.com> In-Reply-To: <93FAE13D-DAB4-445A-9CA5-AF7F723228F0@autodesk.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: cloudstack.apache.org; dkim=none (message not signed) header.d=none;cloudstack.apache.org; dmarc=none action=none header.from=netapp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [161.97.195.177] x-ms-office365-filtering-correlation-id: e823f5e5-846d-47fe-469d-08d4657487c2 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CO1PR06MB332; x-microsoft-exchange-diagnostics: 1;CO1PR06MB332;7:gf98uEHgAMSTeGQJI91pBP/bafhuMrhz2IkIIb53GbiVTDyuNpLp9F+cmaIYcGCVJ09AV5Eh+rLU51u4m3ueHafocjnBYpa5+PZm7ceD534QAR9biatpJBIjqceFNSN3rtbvL0a34hvPcrVgqKY3knkkuRTh4ikXXRESalecg5ExdAugF3LfW4jA7mVY+5R5qYqzk4oYgWEnN9zr4oJOq2bSASOpMhGcd+eFqyS175behnheTCOjctYCKFTuZnrUZjX6m+ypV+vttxnhDukCCxdnLrFLPt4a5F6hqj2PzAJMzlPcy/HSdxp7OUFdSX9Irb3ooJPL/NrbFpCyuShFyA== x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(93916979886435)(134217032509453)(72170088055959)(166708455590820)(192374486261705)(278021236550800)(206605131091896)(280631817467288)(61196332173343)(5213294742642); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(20161123558025)(20161123564025)(20161123555025)(20161123562025)(6072148);SRVR:CO1PR06MB332;BCL:0;PCL:0;RULEID:;SRVR:CO1PR06MB332; x-forefront-prvs: 0239D46DB6 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(7916002)(39450400003)(38564003)(24454002)(53754006)(377454003)(106116001)(2900100001)(53936002)(76176999)(6916009)(50986999)(54356999)(3660700001)(5660300001)(83716003)(3846002)(36756003)(6116002)(66066001)(102836003)(2950100002)(3280700002)(6486002)(229853002)(19625305001)(53386004)(15974865002)(2906002)(38730400002)(6246003)(110136004)(53546006)(33656002)(966004)(1730700003)(2351001)(189998001)(25786008)(6436002)(8676002)(81166006)(305945005)(86362001)(6512007)(575784001)(99286003)(6306002)(5640700003)(82746002)(7736002)(53946003)(450100001)(6506006)(2501003)(8936002)(122556002)(104396002)(559001)(579004)(19627235001);DIR:OUT;SFP:1101;SCL:1;SRVR:CO1PR06MB332;H:CO1PR06MB329.namprd06.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Mar 2017 16:10:53.2790 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4b0911a0-929b-4715-944b-c03745165b3a X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR06MB332 X-OriginatorOrg: netapp.com archived-at: Tue, 07 Mar 2017 16:14:36 -0000 SSBiZWxpZXZlIHRoZSBWTSB3YXMgZGVwbG95ZWQgdGhhdCB3YXkuDQoNCkkga25vdyB0aGF0IHN1 ZmZpeCB0eXBpY2FsbHkgb25seSBzaG93cyB1cCB3aGVuIFZNIHNuYXBzaG90cyBhcmUgaW52b2x2 ZWQsIGJ1dCBsZXQgbWUgcmVidWlsZCBteSBlbnZpcm9ubWVudCBhbmQgdHJ5IHRvIHJlcHJvZHVj ZSBpdCBmcm9tIHNjcmF0Y2guDQoNCj4gT24gTWFyIDcsIDIwMTcsIGF0IDg6MTcgQU0sIFNlcmdl eSBMZXZpdHNraXkgPFNlcmdleS5MZXZpdHNraXlAYXV0b2Rlc2suY29tPiB3cm90ZToNCj4gDQo+ IA0KPiBDaGFuZ2luZyB0aGUgc3ViamVjdCB0byBzdGFydCBhIG5ldyB0aHJlYWQuDQo+IEl0IHdv dWxkIGJlIGhlbHBmdWwgdG8gZmlndXJlIG91dCB3aGVuIHlvdXIgdm9sdW1lIG9idGFpbmVkIDAw MDAxIHN1ZmZpeCBpbiBEQi4NCj4gSSBiZWxpZXZlIGl0IGlzIHN1cHBvc2VkIHRvIGhhcHBlbiBv bmx5IHdoZW4gVk1zbmFwb2hzb3QgaXMgY3JlYXRlZC4gV2FzIHNuYXBzaG90dGluZyBwYXJ0IG9m IHlvdXIgdGVzdHM/IElmIG9zIHdhcyBWTSBydW5uaW5nIG9yIHN0b3BwZWQ/DQo+IA0KPiANCj4g T24gMy83LzE3LCA3OjEwIEFNLCAiVHV0a293c2tpLCBNaWtlIiA8TWlrZS5UdXRrb3dza2lAbmV0 YXBwLmNvbT4gd3JvdGU6DQo+IA0KPiAgICBObyBWTSBzbmFwc2hvdC4NCj4gDQo+ICAgIEkgdHJp ZWQgd2hpbGUgdGhlIFZNIHdhcyBpbiB0aGUgUnVubmluZyBzdGF0ZSBhbmQgdGhlbiBJIGFsc28g dHJpZWQgaW4gdGhlIFN0b3BwZWQgc3RhdGUuIFNhbWUgcmVzdWx0cy4NCj4gDQo+PiBPbiBNYXIg NywgMjAxNywgYXQgNzo1NCBBTSwgU2VyZ2V5IExldml0c2tpeSA8U2VyZ2V5Lkxldml0c2tpeUBh dXRvZGVzay5jb20+IHdyb3RlOg0KPj4gDQo+PiBJcyBWTSBoYXMgYW4gVk1zbmFwaHNvdD8gSXMg Vk0gaW4gU3RvcHBlZCBzdGF0ZT8NCj4+IA0KPj4gT24gMy82LzE3LCAxMDozMiBQTSwgIlR1dGtv d3NraSwgTWlrZSIgPE1pa2UuVHV0a293c2tpQG5ldGFwcC5jb20+IHdyb3RlOg0KPj4gDQo+PiAg IEkgc2VlbSB0byBoYXZlIGZvdW5kIGFub3RoZXIgYmxvY2tlcjoNCj4+IA0KPj4gICBodHRwczov L2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0NMT1VEU1RBQ0stOTgyMg0KPj4gDQo+PiAg IE9uIDMvNi8xNywgOTo1MSBQTSwgIlJhamFuaSBLYXJ1dHVyaSIgPHJhamFuaUBhcGFjaGUub3Jn PiB3cm90ZToNCj4+IA0KPj4gICAgICAgUFJzIGFyZSByZWFkeSBmb3IgdGhlIGJsb2NrZXJzLiBX YWl0aW5nIGZvciByZXZpZXdzIGFuZCB0ZXN0DQo+PiAgICAgICByZXN1bHRzLiBPbmNlIHRoZXkg YXJlIHJlYWR5LCBJIHdpbGwgbWVyZ2UgdGhlbShhbmQgYSBmZXcgbW9yZQ0KPj4gICAgICAgYnVn IGZpeGVzKSBhbmQgY3JlYXRlIFJDMiAocHJvYmFibHkgdG9tb3Jyb3csIFdlZG5lc2RheSkNCj4+ IA0KPj4gICAgICAgVGhhbmtzLA0KPj4gDQo+PiAgICAgICB+IFJhamFuaQ0KPj4gDQo+PiAgICAg ICBodHRwOi8vY2xvdWRwbGF0Zm9ybS5hY2NlbGVyaXRlLmNvbS8NCj4+IA0KPj4gICAgICAgT24g TWFyY2ggMywgMjAxNyBhdCA0OjMwIFBNLCBSYWphbmkgS2FydXR1cmkgKHJhamFuaUBhcGFjaGUu b3JnKQ0KPj4gICAgICAgd3JvdGU6DQo+PiANCj4+ICAgICAgIEkgd2lsbCBjcmVhdGUgUkMyIG9u IE1vbmRheSB3aXRoIHRoZSBmaXhlcyBtZW50aW9uZWQgaW4gbXkNCj4+ICAgICAgIHByZXZpb3Vz IG1haWwuDQo+PiANCj4+ICAgICAgIH4gUmFqYW5pDQo+PiANCj4+ICAgICAgIGh0dHA6Ly9jbG91 ZHBsYXRmb3JtLmFjY2VsZXJpdGUuY29tLw0KPj4gDQo+PiAgICAgICBPbiBNYXJjaCAzLCAyMDE3 IGF0IDI6MzYgUE0sIFJvaGl0IFlhZGF2DQo+PiAgICAgICAocm9oaXQueWFkYXZAc2hhcGVibHVl LmNvbSkgd3JvdGU6DQo+PiANCj4+ICAgICAgIFRoYW5rcyBLb3VzaGlrLCBJIGRpZCBub3QgcmVh bGl6ZSBLaXNoYW4gaGFkIHNlbnQgdGhpcyBhbHJlYWR5Lg0KPj4gICAgICAgTGV0J3MgZ2V0IGVp dGhlciBvZiB0aGUgUFJzIG1lcmdlZCBhbmQga2ljayBhIFJDMi4NCj4+IA0KPj4gICAgICAgUmVn YXJkcy4NCj4+IA0KPj4gICAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+ ICAgICAgIEZyb206IEtvdXNoaWsgRGFzIDxrb3VzaGlrLmRhc0BhY2NlbGVyaXRlLmNvbT4NCj4+ ICAgICAgIFNlbnQ6IDAzIE1hcmNoIDIwMTcgMTQ6MTQ6NTYNCj4+ICAgICAgIFRvOiBkZXZAY2xv dWRzdGFjay5hcGFjaGUub3JnDQo+PiAgICAgICBTdWJqZWN0OiBSZTogOltWT1RFXSBBcGFjaGUg Q2xvdWRzdGFjayA0LjEwLjAuMA0KPj4gDQo+PiAgICAgICBMb29rcyBsaWtlIHRoZXJlIGlzIGFs cmVhZHkgYSBQUiBmb3IgdGhlIHNhbWUgaXNzdWUNCj4+ICAgICAgIGh0dHBzOi8vZ2l0aHViLmNv bS9hcGFjaGUvY2xvdWRzdGFjay9wdWxsLzE5ODIgZnJvbSBLaXNoYW4uDQo+PiANCj4+ICAgICAg IC1Lb3VzaGlrDQo+PiANCj4+ICAgICAgIE9uIDAzLzAzLzE3LCAxOjU4IFBNLCAiUm9oaXQgWWFk YXYiIDxyb2hpdC55YWRhdkBzaGFwZWJsdWUuY29tPg0KPj4gICAgICAgd3JvdGU6DQo+PiANCj4+ ICAgICAgIC0xIChiaW5kaW5nKQ0KPj4gDQo+PiAgICAgICBBbGwsIEkndmUgZm91bmQgYW4gdXBn cmFkZSBibG9ja2VyLiBQcmUgNC42IHVzZXJzIGFyZSByZXF1aXJlZA0KPj4gICAgICAgdG8gc2Vl ZCA0LjYgc3lzdGVtdm10ZW1wbGF0ZSB0byBwcm9jZWVkIHdpdGggdGhlIHVwZ3JhZGUNCj4+ICAg ICAgIG90aGVyd2lzZSB1cGdyYWRlIGZhaWxzLCBhbmQgZnJvbSA0LjkgdXBncmFkZSB0byA0LjEw IGRvZXMgbm8NCj4+ICAgICAgIGNoZWNrL2VuZm9yY2VtZW50IHRoYXQgNC4xMCBiYXNlZCBzeXN0 ZW12bXRlbXBsYXRlIGhhcyBiZWVuDQo+PiAgICAgICBzZWVkZWQvcmVnaXN0ZXJlZCwgbm9yIHRo ZSBtaW5pbXVtIHJlcXVpcmVkIHN5c3RlbXZtdGVtcGxhdGUNCj4+ICAgICAgIHZlcnNpb24gaXMg Y2hhbmdlZCBmcm9tIDQuNi4wIHRvIDQuMTAuMC4NCj4+IA0KPj4gICAgICAgQWZ0ZXIgd2UgaGF2 ZSBtZXJnZWQgdGhlIHN0cm9uZ3N3YW4vamF2YTggUFIsIEkgaGFkIHVwZGF0ZWQgdGhlDQo+PiAg ICAgICB1cGdyYWRlIGRvY3Mgb24gaG93IHRvIHVwZ3JhZGUgdGhlIHN5c3RlbXZtdGVtcGxhdGUg aGVyZToNCj4+IA0KPj4gICAgICAgaHR0cDovL2RvY3MuY2xvdWRzdGFjay5hcGFjaGUub3JnL3By b2plY3RzL2Nsb3Vkc3RhY2stcmVsZWFzZS1ub3Rlcy9lbi80LjEwL3VwZ3JhZGUvdXBncmFkZS00 LjkuaHRtbA0KPj4gDQo+PiAgICAgICBVc2luZyB0aGUgYWJvdmUsIEkndmUgdHJpZWQgdG8gZml4 IHRoZXNlIGlzc3VlcyBoZXJlLCBwbGVhc2UNCj4+ICAgICAgIHJldmlldyBhbmQgbWVyZ2UgZm9y IFJDMjoNCj4+IA0KPj4gICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9jbG91ZHN0YWNr L3B1bGwvMTk4Mw0KPj4gDQo+PiAgICAgICA8aHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9jbG91 ZHN0YWNrL3B1bGwvMTk4Mz5XaXRoIGFib3ZlIGZpeCwNCj4+ICAgICAgIHRoZSBhaW0gaXMgdGhh dCB1c2VycyBvbmx5IHNlZWQgdGhlIDQuMTAgc3lzdGVtdm10ZW1wbGF0ZSBiZWZvcmUNCj4+ICAg ICAgIHVwZ3JhZGUgYW5kIHBvc3QtdXBncmFkZSB0aGUgdXBncmFkZSBwYXRocyBmaXggdGhlIGVu dHJpZXMsDQo+PiAgICAgICBnbG9iYWwgc2V0dGluZyBldGMuDQo+PiANCj4+ICAgICAgIFJlZ2Fy ZHMuDQo+PiANCj4+ICAgICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+PiAg ICAgICBGcm9tOiBUdXRrb3dza2ksIE1pa2UgPE1pa2UuVHV0a293c2tpQG5ldGFwcC5jb20+DQo+ PiAgICAgICBTZW50OiAwMiBNYXJjaCAyMDE3IDIyOjM5OjA4DQo+PiAgICAgICBUbzogZGV2QGNs b3Vkc3RhY2suYXBhY2hlLm9yZw0KPj4gICAgICAgU3ViamVjdDogUmU6IDpbVk9URV0gQXBhY2hl IENsb3Vkc3RhY2sgNC4xMC4wLjANCj4+IA0KPj4gICAgICAgSSByb2xsZWQgYmFjayB0byBteSBt YXN0ZXIgYnJhbmNoIGF0DQo+PiAgICAgICBkYTY2YjA2ZTdkNTYyMzkzZGEyZTRiNTIyMDY5NDNm OGJhZDQ5ZDEwIGFuZCBpdCB3b3Jrcy4NCj4+IA0KPj4gICAgICAgSXQgYXBwZWFycyBzb21ldGhp bmcgdGhhdCB3ZW50IGludG8gYWZ0ZXIgdGhhdCBjb21taXQgaGFzIGJyb2tlbg0KPj4gICAgICAg dGhpcy4gSXQgbG9va3MgbGlrZSB0aGlzIFNIQSBpcyBhYm91dCB0d28gd2Vla3Mgb2xkIGFuZCB0 aGF0IDQzDQo+PiAgICAgICBjb21taXRzIGhhdmUgZ29uZSBpbnRvIG1hc3RlciBzaW5jZSBpdC4N Cj4+IA0KPj4gICAgICAgT24gMy8yLzE3LCA3OjA2IEFNLCAiVHV0a293c2tpLCBNaWtlIg0KPj4g ICAgICAgPE1pa2UuVHV0a293c2tpQG5ldGFwcC5jb20+IHdyb3RlOg0KPj4gDQo+PiAgICAgICBB Y2NvcmRpbmcgdG8gd2hlcmUgdGhlIGNvZGUgZmFpbHMsIHRob3VnaCwgaXQgYXBwZWFycyB0byBi ZSBhDQo+PiAgICAgICBuZXR3b3JraW5nIHByb2JsZW0uIElmIEkgc2V0IGEgYnJlYWtwb2ludCBi ZWZvcmUgdGhlIGZhaWx1cmUgYW5kDQo+PiAgICAgICBjaGFuZ2UgYSB2YXJpYWJsZSB0byBzYXkg dGhhdCBzZWN1cml0eSBncm91cHMgYXJlIG5vdCBiZWluZyB1c2VkLA0KPj4gICAgICAgdGhlbiB0 aGUgVk0gc3RhcnRzLg0KPj4gDQo+PiAgICAgICBJIHRoaW5rIHRoaXMgaXMgYSByZWNlbnRseSBp bnRyb2R1Y2VkIHByb2JsZW0gYmVjYXVzZSBJIGhhdmUNCj4+ICAgICAgIGFub3RoZXIgYnJhbmNo IGJhc2VkIG9mZiBvZiBhIHNsaWdodGx5IG9sZGVyIHZlcnNpb24gb2YgbWFzdGVyDQo+PiAgICAg ICBhbmQgaXQgd29ya3MgZmluZSBoZXJlLg0KPj4gDQo+Pj4gT24gTWFyIDIsIDIwMTcsIGF0IDY6 NTEgQU0sIFBpZXJyZS1MdWMgRGlvbg0KPj4gICAgICAgPHBkaW9uQGNsb3Vkb3BzLmNvbT4gd3Jv dGU6DQo+Pj4gDQo+Pj4gSGkgTWlrZSwNCj4+PiBUcnkgdm0gd2l0aCBhdCBsZWFzdCA1MTJNQiBm b3IgbWVtb3J5Lg0KPj4+IA0KPj4+PiBPbiBNYXIgMSwgMjAxNyAxNTowMSwgIlR1dGtvd3NraSwg TWlrZSINCj4+ICAgICAgIDxNaWtlLlR1dGtvd3NraUBuZXRhcHAuY29tPiB3cm90ZToNCj4+Pj4g DQo+Pj4+IEkgc2VlIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uIHdoZW4gdHJ5aW5nIHRvIGRlcGxv eSBhIHVzZXIgVk0NCj4+ICAgICAgIGluIGEgQmFzaWMNCj4+Pj4gWm9uZSB3aXRoIHR3byBYZW5T ZXJ2ZXIgNi41IGhvc3RzIGluIG9uZSBjbHVzdGVyLiBNeSBzeXN0ZW0NCj4+ICAgICAgIFZNcyBo YXZlIGFsbA0KPj4+PiBkZXBsb3llZCBwcm9wZXJseS4gVGhlIHVzZXIgdGVtcGxhdGUgZ2V0cyBk b3dubG9hZGVkIGZpbmUuIEkNCj4+ICAgICAgIGNhbiBzZWUgdGhlDQo+Pj4+IHVzZXIgVk0gYmVn aW4gdG8gc3RhcnQgb24gYSBYZW5TZXJ2ZXIgaG9zdCwgdGhlbiBpdCBnb2VzDQo+PiAgICAgICBh d2F5LiBXZSB0aGVuDQo+Pj4+IGF1dG9tYXRpY2FsbHkgdHJ5IG9uIHRoZSBvdGhlciBob3N0LiBJ IGNhbiBzZWUgdGhlIFZNIGJlZ2luDQo+PiAgICAgICB0byBzdGFydCB0aGVyZQ0KPj4+PiBmb3Ig YSBtb21lbnQsIHRoZW4gaXQgZ29lcyBhd2F5Lg0KPj4+PiANCj4+Pj4gSSBhbSBqdXN0IGRlcGxv eWluZyB0aGUgdXNlciBWTeKAmXMgdGVtcGxhdGUgYW5kIHJvb3QgZGlzayB0bw0KPj4gICAgICAg TkZTIChzYW1lDQo+Pj4+IHBsYWNlIHdoZXJlIHRoZSB0ZW1wbGF0ZSBhbmQgcm9vdCBkaXNrcyBv ZiBteSBzeXN0ZW0gVk1zDQo+PiAgICAgICBhcmUpLg0KPj4+PiANCj4+Pj4gSSBhbSB1c2luZyB0 aGUgYnVpbHQtaW4gWGVuU2VydmVyIENlbnRPUyA1LjYgKDY0IGJpdCkNCj4+ICAgICAgIHRlbXBs YXRlIHdpdGggMQ0KPj4+PiB2Q1BVLCA1MDAgTUh6LCBhbmQgMjU2IE1CIG1lbW9yeS4NCj4+Pj4g DQo+Pj4+IFdBUk4gW2MuYy5hLnIudi5WaXJ0dWFsUm91dGluZ1Jlc291cmNlXQ0KPj4gICAgICAg KERpcmVjdEFnZW50LTc6Y3R4LTM1YWRlZDc4KQ0KPj4+PiAobG9naWQ6YWFiOWMzMjApIEV4cGVj dGVkIDEgYW5zd2VycyB3aGlsZSBleGVjdXRpbmcNCj4+ICAgICAgIFZtRGF0YUNvbW1hbmQgYnV0 DQo+Pj4+IHJlY2VpdmVkIDINCj4+Pj4gV0FSTiBbYy5jLnYuVmlydHVhbE1hY2hpbmVQb3dlclN0 YXRlU3luY0ltcGxdDQo+PiAgICAgICAoRGlyZWN0QWdlbnRDcm9uSm9iLTE0OmN0eC0yN2ZiMWFj MykNCj4+Pj4gKGxvZ2lkOjJjMzQyZjIzKSBWTSBzdGF0ZSB3YXMgdXBkYXRlZCBidXQgdXBkYXRl IHRpbWUgaXMNCj4+ICAgICAgIG51bGw/ISB2bSBpZDogNg0KPj4+PiBJTkZPIFtvLmEuYy5mLmou aS5Bc3luY0pvYk1hbmFnZXJJbXBsXQ0KPj4gICAgICAgKEFzeW5jSm9iTWdyLUhlYXJ0YmVhdC0x OmN0eC0yYzdkMmRjZSkNCj4+Pj4gKGxvZ2lkOmE1NmE5YThjKSBCZWdpbiBjbGVhbnVwIGV4cGly ZWQgYXN5bmMtam9icw0KPj4+PiBJTkZPIFtvLmEuYy5mLmouaS5Bc3luY0pvYk1hbmFnZXJJbXBs XQ0KPj4gICAgICAgKEFzeW5jSm9iTWdyLUhlYXJ0YmVhdC0xOmN0eC0yYzdkMmRjZSkNCj4+Pj4g KGxvZ2lkOmE1NmE5YThjKSBFbmQgY2xlYW51cCBleHBpcmVkIGFzeW5jLWpvYnMNCj4+Pj4gSU5G TyBbYy5jLnUuQWNjb3VudE1hbmFnZXJJbXBsXQ0KPj4gICAgICAgKEFjY291bnRDaGVja2VyLTE6 Y3R4LTM4M2E2MzJjKQ0KPj4+PiAobG9naWQ6NTQxZTliYTUpIEZvdW5kIDAgcmVtb3ZlZCBhY2Nv dW50cyB0byBjbGVhbnVwDQo+Pj4+IElORk8gW2MuYy51LkFjY291bnRNYW5hZ2VySW1wbF0NCj4+ ICAgICAgIChBY2NvdW50Q2hlY2tlci0xOmN0eC0zODNhNjMyYykNCj4+Pj4gKGxvZ2lkOjU0MWU5 YmE1KSBGb3VuZCAwIGRpc2FibGVkIGFjY291bnRzIHRvIGNsZWFudXANCj4+Pj4gSU5GTyBbYy5j LnUuQWNjb3VudE1hbmFnZXJJbXBsXQ0KPj4gICAgICAgKEFjY291bnRDaGVja2VyLTE6Y3R4LTM4 M2E2MzJjKQ0KPj4+PiAobG9naWQ6NTQxZTliYTUpIEZvdW5kIDAgaW5hY3RpdmUgZG9tYWlucyB0 byBjbGVhbnVwDQo+Pj4+IElORk8gW2MuYy51LkFjY291bnRNYW5hZ2VySW1wbF0NCj4+ICAgICAg IChBY2NvdW50Q2hlY2tlci0xOmN0eC0zODNhNjMyYykNCj4+Pj4gKGxvZ2lkOjU0MWU5YmE1KSBG b3VuZCAwIGRpc2FibGVkIHByb2plY3RzIHRvIGNsZWFudXANCj4+Pj4gV0FSTiBbYy5jLmgueC5y LkNpdHJpeFJlc291cmNlQmFzZV0NCj4+ICAgICAgIChEaXJlY3RBZ2VudC0xNjpjdHgtN2M5MDE0 NDMpDQo+Pj4+IChsb2dpZDphYWI5YzMyMCkgY2FsbEhvc3RQbHVnaW4gZmFpbGVkIGZvciBjbWQ6 DQo+PiAgICAgICBkZWZhdWx0X25ldHdvcmtfcnVsZXMgd2l0aA0KPj4+PiBhcmdzIHNlY0lwczog MDosIHZtTmFtZTogaS0yLTYtVk0sIHZtSUQ6IDYsIHZtSVA6DQo+PiAgICAgICAxMC4xMTcuNDAu NTMsIHZtTUFDOg0KPj4+PiAwNjpiMjpmNDowMDowMDoyMiwgZHVlIHRvIFRoZXJlIHdhcyBhIGZh aWx1cmUgY29tbXVuaWNhdGluZw0KPj4gICAgICAgd2l0aCB0aGUNCj4+Pj4gcGx1Z2luLg0KPj4+ PiBXQVJOIFtjLmMuaC54LnIudy54LkNpdHJpeFN0YXJ0Q29tbWFuZFdyYXBwZXJdDQo+Pj4+IChE aXJlY3RBZ2VudC0xNjpjdHgtN2M5MDE0NDMpIChsb2dpZDphYWI5YzMyMCkgQ2F0Y2gNCj4+ICAg ICAgIEV4Y2VwdGlvbjogY2xhc3MNCj4+Pj4gY29tLmNsb3VkLnV0aWxzLmV4Y2VwdGlvbi5DbG91 ZFJ1bnRpbWVFeGNlcHRpb24gZHVlIHRvDQo+Pj4+IGNvbS5jbG91ZC51dGlscy5leGNlcHRpb24u Q2xvdWRSdW50aW1lRXhjZXB0aW9uOg0KPj4gICAgICAgY2FsbEhvc3RQbHVnaW4gZmFpbGVkDQo+ Pj4+IGZvciBjbWQ6IGRlZmF1bHRfbmV0d29ya19ydWxlcyB3aXRoIGFyZ3Mgc2VjSXBzOiAwOiwg dm1OYW1lOg0KPj4gICAgICAgaS0yLTYtVk0sDQo+Pj4+IHZtSUQ6IDYsIHZtSVA6IDEwLjExNy40 MC41Mywgdm1NQUM6IDA2OmIyOmY0OjAwOjAwOjIyLCBkdWUgdG8NCj4+ICAgICAgIFRoZXJlIHdh cyBhDQo+Pj4+IGZhaWx1cmUgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBwbHVnaW4uDQo+Pj4+IGNv bS5jbG91ZC51dGlscy5leGNlcHRpb24uQ2xvdWRSdW50aW1lRXhjZXB0aW9uOg0KPj4gICAgICAg Y2FsbEhvc3RQbHVnaW4gZmFpbGVkDQo+Pj4+IGZvciBjbWQ6IGRlZmF1bHRfbmV0d29ya19ydWxl cyB3aXRoIGFyZ3Mgc2VjSXBzOiAwOiwgdm1OYW1lOg0KPj4gICAgICAgaS0yLTYtVk0sDQo+Pj4+ IHZtSUQ6IDYsIHZtSVA6IDEwLjExNy40MC41Mywgdm1NQUM6IDA2OmIyOmY0OjAwOjAwOjIyLCBk dWUgdG8NCj4+ICAgICAgIFRoZXJlIHdhcyBhDQo+Pj4+IGZhaWx1cmUgY29tbXVuaWNhdGluZyB3 aXRoIHRoZSBwbHVnaW4uDQo+Pj4+IGF0DQo+PiAgICAgICBjb20uY2xvdWQuaHlwZXJ2aXNvci54 ZW5zZXJ2ZXIucmVzb3VyY2UuQ2l0cml4UmVzb3VyY2VCYXNlLg0KPj4+PiBjYWxsSG9zdFBsdWdp bihDaXRyaXhSZXNvdXJjZUJhc2UuamF2YTozMzgpDQo+Pj4+IGF0IGNvbS5jbG91ZC5oeXBlcnZp c29yLnhlbnNlcnZlci5yZXNvdXJjZS53cmFwcGVyLnhlbmJhc2UuDQo+Pj4+IA0KPj4gICAgICAg Q2l0cml4U3RhcnRDb21tYW5kV3JhcHBlci5leGVjdXRlKENpdHJpeFN0YXJ0Q29tbWFuZFdyYXBw ZXIuamF2YToxODgpDQo+Pj4+IGF0IGNvbS5jbG91ZC5oeXBlcnZpc29yLnhlbnNlcnZlci5yZXNv dXJjZS53cmFwcGVyLnhlbmJhc2UuDQo+Pj4+IA0KPj4gICAgICAgQ2l0cml4U3RhcnRDb21tYW5k V3JhcHBlci5leGVjdXRlKENpdHJpeFN0YXJ0Q29tbWFuZFdyYXBwZXIuamF2YTo1MykNCj4+Pj4g YXQgY29tLmNsb3VkLmh5cGVydmlzb3IueGVuc2VydmVyLnJlc291cmNlLndyYXBwZXIuDQo+Pj4+ IA0KPj4gICAgICAgeGVuYmFzZS5DaXRyaXhSZXF1ZXN0V3JhcHBlci5leGVjdXRlKENpdHJpeFJl cXVlc3RXcmFwcGVyLmphdmE6MTIyKQ0KPj4+PiBhdA0KPj4gICAgICAgY29tLmNsb3VkLmh5cGVy dmlzb3IueGVuc2VydmVyLnJlc291cmNlLkNpdHJpeFJlc291cmNlQmFzZS4NCj4+Pj4gZXhlY3V0 ZVJlcXVlc3QoQ2l0cml4UmVzb3VyY2VCYXNlLmphdmE6MTY5MSkNCj4+Pj4gYXQNCj4+ICAgICAg IGNvbS5jbG91ZC5hZ2VudC5tYW5hZ2VyLkRpcmVjdEFnZW50QXR0YWNoZSRUYXNrLnJ1bkluQ29u dGV4dCgNCj4+Pj4gRGlyZWN0QWdlbnRBdHRhY2hlLmphdmE6MzE1KQ0KPj4+PiBhdA0KPj4gICAg ICAgb3JnLmFwYWNoZS5jbG91ZHN0YWNrLm1hbmFnZWQuY29udGV4dC5NYW5hZ2VkQ29udGV4dFJ1 bm5hYmxlJDEucnVuKA0KPj4+PiBNYW5hZ2VkQ29udGV4dFJ1bm5hYmxlLmphdmE6NDkpDQo+Pj4+ IGF0IG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNvbnRleHQuaW1wbC4NCj4+Pj4gRGVm YXVsdE1hbmFnZWRDb250ZXh0JDEuY2FsbChEZWZhdWx0TWFuYWdlZENvbnRleHQuamF2YTo1NikN Cj4+Pj4gYXQNCj4+ICAgICAgIG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNvbnRleHQu aW1wbC5EZWZhdWx0TWFuYWdlZENvbnRleHQuDQo+Pj4+IGNhbGxXaXRoQ29udGV4dChEZWZhdWx0 TWFuYWdlZENvbnRleHQuamF2YToxMDMpDQo+Pj4+IGF0DQo+PiAgICAgICBvcmcuYXBhY2hlLmNs b3Vkc3RhY2subWFuYWdlZC5jb250ZXh0LmltcGwuRGVmYXVsdE1hbmFnZWRDb250ZXh0Lg0KPj4+ PiBydW5XaXRoQ29udGV4dChEZWZhdWx0TWFuYWdlZENvbnRleHQuamF2YTo1MykNCj4+Pj4gYXQN Cj4+ICAgICAgIG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNvbnRleHQuTWFuYWdlZENv bnRleHRSdW5uYWJsZS5ydW4oDQo+Pj4+IE1hbmFnZWRDb250ZXh0UnVubmFibGUuamF2YTo0NikN Cj4+Pj4gYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFJ1bm5hYmxlQWRhcHRlci4N Cj4+Pj4gY2FsbChFeGVjdXRvcnMuamF2YTo1MTEpDQo+Pj4+IGF0IGphdmEudXRpbC5jb25jdXJy ZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suamF2YToyNjYpDQo+Pj4+IGF0IGphdmEudXRp bC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciQNCj4+Pj4gDQo+PiAgICAg ICBTY2hlZHVsZWRGdXR1cmVUYXNrLmFjY2VzcyQyMDEoU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1 dG9yLmphdmE6MTgwKQ0KPj4+PiBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TY2hlZHVsZWRUaHJl YWRQb29sRXhlY3V0b3IkDQo+Pj4+IFNjaGVkdWxlZEZ1dHVyZVRhc2sucnVuKFNjaGVkdWxlZFRo cmVhZFBvb2xFeGVjdXRvci5qYXZhOjI5MykNCj4+Pj4gYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu VGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcigNCj4+Pj4gVGhyZWFkUG9vbEV4ZWN1dG9yLmph dmE6MTE0MikNCj4+Pj4gYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9y JFdvcmtlci5ydW4oDQo+Pj4+IFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNykNCj4+Pj4gYXQg amF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQ0KPj4+PiBXQVJOIFtjLmMuaC54 LnIuQ2l0cml4UmVzb3VyY2VCYXNlXQ0KPj4gICAgICAgKERpcmVjdEFnZW50LTE2OmN0eC03Yzkw MTQ0MykNCj4+Pj4gKGxvZ2lkOmFhYjljMzIwKSBVbmFibGUgdG8gc3RhcnQgaS0yLTYtVk0gZHVl IHRvDQo+Pj4+IGNvbS5jbG91ZC51dGlscy5leGNlcHRpb24uQ2xvdWRSdW50aW1lRXhjZXB0aW9u Og0KPj4gICAgICAgY2FsbEhvc3RQbHVnaW4gZmFpbGVkDQo+Pj4+IGZvciBjbWQ6IGRlZmF1bHRf bmV0d29ya19ydWxlcyB3aXRoIGFyZ3Mgc2VjSXBzOiAwOiwgdm1OYW1lOg0KPj4gICAgICAgaS0y LTYtVk0sDQo+Pj4+IHZtSUQ6IDYsIHZtSVA6IDEwLjExNy40MC41Mywgdm1NQUM6IDA2OmIyOmY0 OjAwOjAwOjIyLCBkdWUgdG8NCj4+ICAgICAgIFRoZXJlIHdhcyBhDQo+Pj4+IGZhaWx1cmUgY29t bXVuaWNhdGluZyB3aXRoIHRoZSBwbHVnaW4uDQo+Pj4+IGF0DQo+PiAgICAgICBjb20uY2xvdWQu aHlwZXJ2aXNvci54ZW5zZXJ2ZXIucmVzb3VyY2UuQ2l0cml4UmVzb3VyY2VCYXNlLg0KPj4+PiBj YWxsSG9zdFBsdWdpbihDaXRyaXhSZXNvdXJjZUJhc2UuamF2YTozMzgpDQo+Pj4+IGF0IGNvbS5j bG91ZC5oeXBlcnZpc29yLnhlbnNlcnZlci5yZXNvdXJjZS53cmFwcGVyLnhlbmJhc2UuDQo+Pj4+ IA0KPj4gICAgICAgQ2l0cml4U3RhcnRDb21tYW5kV3JhcHBlci5leGVjdXRlKENpdHJpeFN0YXJ0 Q29tbWFuZFdyYXBwZXIuamF2YToxODgpDQo+Pj4+IGF0IGNvbS5jbG91ZC5oeXBlcnZpc29yLnhl bnNlcnZlci5yZXNvdXJjZS53cmFwcGVyLnhlbmJhc2UuDQo+Pj4+IA0KPj4gICAgICAgQ2l0cml4 U3RhcnRDb21tYW5kV3JhcHBlci5leGVjdXRlKENpdHJpeFN0YXJ0Q29tbWFuZFdyYXBwZXIuamF2 YTo1MykNCj4+Pj4gYXQgY29tLmNsb3VkLmh5cGVydmlzb3IueGVuc2VydmVyLnJlc291cmNlLndy YXBwZXIuDQo+Pj4+IA0KPj4gICAgICAgeGVuYmFzZS5DaXRyaXhSZXF1ZXN0V3JhcHBlci5leGVj dXRlKENpdHJpeFJlcXVlc3RXcmFwcGVyLmphdmE6MTIyKQ0KPj4+PiBhdA0KPj4gICAgICAgY29t LmNsb3VkLmh5cGVydmlzb3IueGVuc2VydmVyLnJlc291cmNlLkNpdHJpeFJlc291cmNlQmFzZS4N Cj4+Pj4gZXhlY3V0ZVJlcXVlc3QoQ2l0cml4UmVzb3VyY2VCYXNlLmphdmE6MTY5MSkNCj4+Pj4g YXQNCj4+ICAgICAgIGNvbS5jbG91ZC5hZ2VudC5tYW5hZ2VyLkRpcmVjdEFnZW50QXR0YWNoZSRU YXNrLnJ1bkluQ29udGV4dCgNCj4+Pj4gRGlyZWN0QWdlbnRBdHRhY2hlLmphdmE6MzE1KQ0KPj4+ PiBhdA0KPj4gICAgICAgb3JnLmFwYWNoZS5jbG91ZHN0YWNrLm1hbmFnZWQuY29udGV4dC5NYW5h Z2VkQ29udGV4dFJ1bm5hYmxlJDEucnVuKA0KPj4+PiBNYW5hZ2VkQ29udGV4dFJ1bm5hYmxlLmph dmE6NDkpDQo+Pj4+IGF0IG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNvbnRleHQuaW1w bC4NCj4+Pj4gRGVmYXVsdE1hbmFnZWRDb250ZXh0JDEuY2FsbChEZWZhdWx0TWFuYWdlZENvbnRl eHQuamF2YTo1NikNCj4+Pj4gYXQNCj4+ICAgICAgIG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5h Z2VkLmNvbnRleHQuaW1wbC5EZWZhdWx0TWFuYWdlZENvbnRleHQuDQo+Pj4+IGNhbGxXaXRoQ29u dGV4dChEZWZhdWx0TWFuYWdlZENvbnRleHQuamF2YToxMDMpDQo+Pj4+IGF0DQo+PiAgICAgICBv cmcuYXBhY2hlLmNsb3Vkc3RhY2subWFuYWdlZC5jb250ZXh0LmltcGwuRGVmYXVsdE1hbmFnZWRD b250ZXh0Lg0KPj4+PiBydW5XaXRoQ29udGV4dChEZWZhdWx0TWFuYWdlZENvbnRleHQuamF2YTo1 MykNCj4+Pj4gYXQNCj4+ICAgICAgIG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNvbnRl eHQuTWFuYWdlZENvbnRleHRSdW5uYWJsZS5ydW4oDQo+Pj4+IE1hbmFnZWRDb250ZXh0UnVubmFi bGUuamF2YTo0NikNCj4+Pj4gYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFJ1bm5h YmxlQWRhcHRlci4NCj4+Pj4gY2FsbChFeGVjdXRvcnMuamF2YTo1MTEpDQo+Pj4+IGF0IGphdmEu dXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suamF2YToyNjYpDQo+Pj4+ IGF0IGphdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciQNCj4+ Pj4gDQo+PiAgICAgICBTY2hlZHVsZWRGdXR1cmVUYXNrLmFjY2VzcyQyMDEoU2NoZWR1bGVkVGhy ZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTgwKQ0KPj4+PiBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5T Y2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IkDQo+Pj4+IFNjaGVkdWxlZEZ1dHVyZVRhc2sucnVu KFNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjI5MykNCj4+Pj4gYXQgamF2YS51dGls LmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcigNCj4+Pj4gVGhyZWFkUG9v bEV4ZWN1dG9yLmphdmE6MTE0MikNCj4+Pj4gYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFk UG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oDQo+Pj4+IFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYx NykNCj4+Pj4gYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQ0KPj4+PiBJ TkZPIFtvLmEuYy5lLm8uTmV0d29ya09yY2hlc3RyYXRvcl0NCj4+ICAgICAgIChOZXR3b3JrLVNj YXZlbmdlci0xOmN0eC0yMDU4ZDVhYykNCj4+Pj4gKGxvZ2lkOmJmODg4NWEwKSBOZXR3b3JrR2Fy YmFnZUNvbGxlY3RvciB1c2VzICcyMCcgc2Vjb25kcw0KPj4gICAgICAgZm9yIEdDIGludGVydmFs Lg0KPj4+PiBXQVJOIFtjLmMuaC54LnIuQ2l0cml4UmVzb3VyY2VCYXNlXQ0KPj4gICAgICAgKERp cmVjdEFnZW50LTE2OmN0eC03YzkwMTQ0MykNCj4+Pj4gKGxvZ2lkOmFhYjljMzIwKSBVbmFibGUg dG8gY2xlYW4gdXAgVkJEIGR1ZSB0bw0KPj4+PiBZb3UgZ2F2ZSBhbiBpbnZhbGlkIG9iamVjdCBy ZWZlcmVuY2UuIFRoZSBvYmplY3QgbWF5IGhhdmUNCj4+ICAgICAgIHJlY2VudGx5IGJlZW4NCj4+ Pj4gZGVsZXRlZC4gVGhlIGNsYXNzIHBhcmFtZXRlciBnaXZlcyB0aGUgdHlwZSBvZiByZWZlcmVu Y2UNCj4+ICAgICAgIGdpdmVuLCBhbmQgdGhlDQo+Pj4+IGhhbmRsZSBwYXJhbWV0ZXIgZWNob2Vz IHRoZSBiYWQgdmFsdWUgZ2l2ZW4uDQo+Pj4+IGF0IGNvbS54ZW5zb3VyY2UueGVuYXBpLlR5cGVz LmNoZWNrUmVzcG9uc2UoVHlwZXMuamF2YTo2OTMpDQo+Pj4+IGF0DQo+PiAgICAgICBjb20ueGVu c291cmNlLnhlbmFwaS5Db25uZWN0aW9uLmRpc3BhdGNoKENvbm5lY3Rpb24uamF2YTozOTUpDQo+ Pj4+IGF0DQo+PiAgICAgICBjb20uY2xvdWQuaHlwZXJ2aXNvci54ZW5zZXJ2ZXIucmVzb3VyY2Uu WGVuU2VydmVyQ29ubmVjdGlvblBvb2wkDQo+Pj4+IA0KPj4gICAgICAgWGVuU2VydmVyQ29ubmVj dGlvbi5kaXNwYXRjaChYZW5TZXJ2ZXJDb25uZWN0aW9uUG9vbC5qYXZhOjQ1NykNCj4+Pj4gYXQg Y29tLnhlbnNvdXJjZS54ZW5hcGkuVkJELnVucGx1ZyhWQkQuamF2YToxMTA5KQ0KPj4+PiBhdA0K Pj4gICAgICAgY29tLmNsb3VkLmh5cGVydmlzb3IueGVuc2VydmVyLnJlc291cmNlLkNpdHJpeFJl c291cmNlQmFzZS4NCj4+Pj4gaGFuZGxlVm1TdGFydEZhaWx1cmUoQ2l0cml4UmVzb3VyY2VCYXNl LmphdmE6MzU3NikNCj4+Pj4gYXQgY29tLmNsb3VkLmh5cGVydmlzb3IueGVuc2VydmVyLnJlc291 cmNlLndyYXBwZXIueGVuYmFzZS4NCj4+Pj4gDQo+PiAgICAgICBDaXRyaXhTdGFydENvbW1hbmRX cmFwcGVyLmV4ZWN1dGUoQ2l0cml4U3RhcnRDb21tYW5kV3JhcHBlci5qYXZhOjIxMCkNCj4+Pj4g YXQgY29tLmNsb3VkLmh5cGVydmlzb3IueGVuc2VydmVyLnJlc291cmNlLndyYXBwZXIueGVuYmFz ZS4NCj4+Pj4gDQo+PiAgICAgICBDaXRyaXhTdGFydENvbW1hbmRXcmFwcGVyLmV4ZWN1dGUoQ2l0 cml4U3RhcnRDb21tYW5kV3JhcHBlci5qYXZhOjUzKQ0KPj4+PiBhdCBjb20uY2xvdWQuaHlwZXJ2 aXNvci54ZW5zZXJ2ZXIucmVzb3VyY2Uud3JhcHBlci4NCj4+Pj4gDQo+PiAgICAgICB4ZW5iYXNl LkNpdHJpeFJlcXVlc3RXcmFwcGVyLmV4ZWN1dGUoQ2l0cml4UmVxdWVzdFdyYXBwZXIuamF2YTox MjIpDQo+Pj4+IGF0DQo+PiAgICAgICBjb20uY2xvdWQuaHlwZXJ2aXNvci54ZW5zZXJ2ZXIucmVz b3VyY2UuQ2l0cml4UmVzb3VyY2VCYXNlLg0KPj4+PiBleGVjdXRlUmVxdWVzdChDaXRyaXhSZXNv dXJjZUJhc2UuamF2YToxNjkxKQ0KPj4+PiBhdA0KPj4gICAgICAgY29tLmNsb3VkLmFnZW50Lm1h bmFnZXIuRGlyZWN0QWdlbnRBdHRhY2hlJFRhc2sucnVuSW5Db250ZXh0KA0KPj4+PiBEaXJlY3RB Z2VudEF0dGFjaGUuamF2YTozMTUpDQo+Pj4+IGF0DQo+PiAgICAgICBvcmcuYXBhY2hlLmNsb3Vk c3RhY2subWFuYWdlZC5jb250ZXh0Lk1hbmFnZWRDb250ZXh0UnVubmFibGUkMS5ydW4oDQo+Pj4+ IE1hbmFnZWRDb250ZXh0UnVubmFibGUuamF2YTo0OSkNCj4+Pj4gYXQgb3JnLmFwYWNoZS5jbG91 ZHN0YWNrLm1hbmFnZWQuY29udGV4dC5pbXBsLg0KPj4+PiBEZWZhdWx0TWFuYWdlZENvbnRleHQk MS5jYWxsKERlZmF1bHRNYW5hZ2VkQ29udGV4dC5qYXZhOjU2KQ0KPj4+PiBhdA0KPj4gICAgICAg b3JnLmFwYWNoZS5jbG91ZHN0YWNrLm1hbmFnZWQuY29udGV4dC5pbXBsLkRlZmF1bHRNYW5hZ2Vk Q29udGV4dC4NCj4+Pj4gY2FsbFdpdGhDb250ZXh0KERlZmF1bHRNYW5hZ2VkQ29udGV4dC5qYXZh OjEwMykNCj4+Pj4gYXQNCj4+ICAgICAgIG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNv bnRleHQuaW1wbC5EZWZhdWx0TWFuYWdlZENvbnRleHQuDQo+Pj4+IHJ1bldpdGhDb250ZXh0KERl ZmF1bHRNYW5hZ2VkQ29udGV4dC5qYXZhOjUzKQ0KPj4+PiBhdA0KPj4gICAgICAgb3JnLmFwYWNo ZS5jbG91ZHN0YWNrLm1hbmFnZWQuY29udGV4dC5NYW5hZ2VkQ29udGV4dFJ1bm5hYmxlLnJ1bigN Cj4+Pj4gTWFuYWdlZENvbnRleHRSdW5uYWJsZS5qYXZhOjQ2KQ0KPj4+PiBhdCBqYXZhLnV0aWwu Y29uY3VycmVudC5FeGVjdXRvcnMkUnVubmFibGVBZGFwdGVyLg0KPj4+PiBjYWxsKEV4ZWN1dG9y cy5qYXZhOjUxMSkNCj4+Pj4gYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzay5ydW4o RnV0dXJlVGFzay5qYXZhOjI2NikNCj4+Pj4gYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1 bGVkVGhyZWFkUG9vbEV4ZWN1dG9yJA0KPj4+PiANCj4+ICAgICAgIFNjaGVkdWxlZEZ1dHVyZVRh c2suYWNjZXNzJDIwMShTY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxODApDQo+Pj4+ IGF0IGphdmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciQNCj4+ Pj4gU2NoZWR1bGVkRnV0dXJlVGFzay5ydW4oU2NoZWR1bGVkVGhyZWFkUG9vbEV4ZWN1dG9yLmph dmE6MjkzKQ0KPj4+PiBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3Iu cnVuV29ya2VyKA0KPj4+PiBUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQyKQ0KPj4+PiBhdCBq YXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bigNCj4+Pj4g VGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjE3KQ0KPj4+PiBhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1 bihUaHJlYWQuamF2YTo3NDUpDQo+Pj4+IFdBUk4gW2MuYy5oLnguci5DaXRyaXhSZXNvdXJjZUJh c2VdDQo+PiAgICAgICAoRGlyZWN0QWdlbnQtMTY6Y3R4LTdjOTAxNDQzKQ0KPj4+PiAobG9naWQ6 YWFiOWMzMjApIFVuYWJsZSB0byBjbGVhbiB1cCBWQkQgZHVlIHRvDQo+Pj4+IFlvdSBnYXZlIGFu IGludmFsaWQgb2JqZWN0IHJlZmVyZW5jZS4gVGhlIG9iamVjdCBtYXkgaGF2ZQ0KPj4gICAgICAg cmVjZW50bHkgYmVlbg0KPj4+PiBkZWxldGVkLiBUaGUgY2xhc3MgcGFyYW1ldGVyIGdpdmVzIHRo ZSB0eXBlIG9mIHJlZmVyZW5jZQ0KPj4gICAgICAgZ2l2ZW4sIGFuZCB0aGUNCj4+Pj4gaGFuZGxl IHBhcmFtZXRlciBlY2hvZXMgdGhlIGJhZCB2YWx1ZSBnaXZlbi4NCj4+Pj4gYXQgY29tLnhlbnNv dXJjZS54ZW5hcGkuVHlwZXMuY2hlY2tSZXNwb25zZShUeXBlcy5qYXZhOjY5MykNCj4+Pj4gYXQN Cj4+ICAgICAgIGNvbS54ZW5zb3VyY2UueGVuYXBpLkNvbm5lY3Rpb24uZGlzcGF0Y2goQ29ubmVj dGlvbi5qYXZhOjM5NSkNCj4+Pj4gYXQNCj4+ICAgICAgIGNvbS5jbG91ZC5oeXBlcnZpc29yLnhl bnNlcnZlci5yZXNvdXJjZS5YZW5TZXJ2ZXJDb25uZWN0aW9uUG9vbCQNCj4+Pj4gDQo+PiAgICAg ICBYZW5TZXJ2ZXJDb25uZWN0aW9uLmRpc3BhdGNoKFhlblNlcnZlckNvbm5lY3Rpb25Qb29sLmph dmE6NDU3KQ0KPj4+PiBhdCBjb20ueGVuc291cmNlLnhlbmFwaS5WQkQudW5wbHVnKFZCRC5qYXZh OjExMDkpDQo+Pj4+IGF0DQo+PiAgICAgICBjb20uY2xvdWQuaHlwZXJ2aXNvci54ZW5zZXJ2ZXIu cmVzb3VyY2UuQ2l0cml4UmVzb3VyY2VCYXNlLg0KPj4+PiBoYW5kbGVWbVN0YXJ0RmFpbHVyZShD aXRyaXhSZXNvdXJjZUJhc2UuamF2YTozNTc2KQ0KPj4+PiBhdCBjb20uY2xvdWQuaHlwZXJ2aXNv ci54ZW5zZXJ2ZXIucmVzb3VyY2Uud3JhcHBlci54ZW5iYXNlLg0KPj4+PiANCj4+ICAgICAgIENp dHJpeFN0YXJ0Q29tbWFuZFdyYXBwZXIuZXhlY3V0ZShDaXRyaXhTdGFydENvbW1hbmRXcmFwcGVy LmphdmE6MjEwKQ0KPj4+PiBhdCBjb20uY2xvdWQuaHlwZXJ2aXNvci54ZW5zZXJ2ZXIucmVzb3Vy Y2Uud3JhcHBlci54ZW5iYXNlLg0KPj4+PiANCj4+ICAgICAgIENpdHJpeFN0YXJ0Q29tbWFuZFdy YXBwZXIuZXhlY3V0ZShDaXRyaXhTdGFydENvbW1hbmRXcmFwcGVyLmphdmE6NTMpDQo+Pj4+IGF0 IGNvbS5jbG91ZC5oeXBlcnZpc29yLnhlbnNlcnZlci5yZXNvdXJjZS53cmFwcGVyLg0KPj4+PiAN Cj4+ICAgICAgIHhlbmJhc2UuQ2l0cml4UmVxdWVzdFdyYXBwZXIuZXhlY3V0ZShDaXRyaXhSZXF1 ZXN0V3JhcHBlci5qYXZhOjEyMikNCj4+Pj4gYXQNCj4+ICAgICAgIGNvbS5jbG91ZC5oeXBlcnZp c29yLnhlbnNlcnZlci5yZXNvdXJjZS5DaXRyaXhSZXNvdXJjZUJhc2UuDQo+Pj4+IGV4ZWN1dGVS ZXF1ZXN0KENpdHJpeFJlc291cmNlQmFzZS5qYXZhOjE2OTEpDQo+Pj4+IGF0DQo+PiAgICAgICBj b20uY2xvdWQuYWdlbnQubWFuYWdlci5EaXJlY3RBZ2VudEF0dGFjaGUkVGFzay5ydW5JbkNvbnRl eHQoDQo+Pj4+IERpcmVjdEFnZW50QXR0YWNoZS5qYXZhOjMxNSkNCj4+Pj4gYXQNCj4+ICAgICAg IG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNvbnRleHQuTWFuYWdlZENvbnRleHRSdW5u YWJsZSQxLnJ1bigNCj4+Pj4gTWFuYWdlZENvbnRleHRSdW5uYWJsZS5qYXZhOjQ5KQ0KPj4+PiBh dCBvcmcuYXBhY2hlLmNsb3Vkc3RhY2subWFuYWdlZC5jb250ZXh0LmltcGwuDQo+Pj4+IERlZmF1 bHRNYW5hZ2VkQ29udGV4dCQxLmNhbGwoRGVmYXVsdE1hbmFnZWRDb250ZXh0LmphdmE6NTYpDQo+ Pj4+IGF0DQo+PiAgICAgICBvcmcuYXBhY2hlLmNsb3Vkc3RhY2subWFuYWdlZC5jb250ZXh0Lmlt cGwuRGVmYXVsdE1hbmFnZWRDb250ZXh0Lg0KPj4+PiBjYWxsV2l0aENvbnRleHQoRGVmYXVsdE1h bmFnZWRDb250ZXh0LmphdmE6MTAzKQ0KPj4+PiBhdA0KPj4gICAgICAgb3JnLmFwYWNoZS5jbG91 ZHN0YWNrLm1hbmFnZWQuY29udGV4dC5pbXBsLkRlZmF1bHRNYW5hZ2VkQ29udGV4dC4NCj4+Pj4g cnVuV2l0aENvbnRleHQoRGVmYXVsdE1hbmFnZWRDb250ZXh0LmphdmE6NTMpDQo+Pj4+IGF0DQo+ PiAgICAgICBvcmcuYXBhY2hlLmNsb3Vkc3RhY2subWFuYWdlZC5jb250ZXh0Lk1hbmFnZWRDb250 ZXh0UnVubmFibGUucnVuKA0KPj4+PiBNYW5hZ2VkQ29udGV4dFJ1bm5hYmxlLmphdmE6NDYpDQo+ Pj4+IGF0IGphdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRSdW5uYWJsZUFkYXB0ZXIuDQo+ Pj4+IGNhbGwoRXhlY3V0b3JzLmphdmE6NTExKQ0KPj4+PiBhdCBqYXZhLnV0aWwuY29uY3VycmVu dC5GdXR1cmVUYXNrLnJ1bihGdXR1cmVUYXNrLmphdmE6MjY2KQ0KPj4+PiBhdCBqYXZhLnV0aWwu Y29uY3VycmVudC5TY2hlZHVsZWRUaHJlYWRQb29sRXhlY3V0b3IkDQo+Pj4+IA0KPj4gICAgICAg U2NoZWR1bGVkRnV0dXJlVGFzay5hY2Nlc3MkMjAxKFNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRv ci5qYXZhOjE4MCkNCj4+Pj4gYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuU2NoZWR1bGVkVGhyZWFk UG9vbEV4ZWN1dG9yJA0KPj4+PiBTY2hlZHVsZWRGdXR1cmVUYXNrLnJ1bihTY2hlZHVsZWRUaHJl YWRQb29sRXhlY3V0b3IuamF2YToyOTMpDQo+Pj4+IGF0IGphdmEudXRpbC5jb25jdXJyZW50LlRo cmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoDQo+Pj4+IFRocmVhZFBvb2xFeGVjdXRvci5qYXZh OjExNDIpDQo+Pj4+IGF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRX b3JrZXIucnVuKA0KPj4+PiBUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTcpDQo+Pj4+IGF0IGph dmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkNCj4+Pj4gV0FSTiBbYy5jLmgueC5y LkNpdHJpeFJlc291cmNlQmFzZV0NCj4+ICAgICAgIChEaXJlY3RBZ2VudC0xNjpjdHgtN2M5MDE0 NDMpDQo+Pj4+IChsb2dpZDphYWI5YzMyMCkgVW5hYmxlIHRvIGNsZWFudXAgVklGDQo+Pj4+IFlv dSBnYXZlIGFuIGludmFsaWQgb2JqZWN0IHJlZmVyZW5jZS4gVGhlIG9iamVjdCBtYXkgaGF2ZQ0K Pj4gICAgICAgcmVjZW50bHkgYmVlbg0KPj4+PiBkZWxldGVkLiBUaGUgY2xhc3MgcGFyYW1ldGVy IGdpdmVzIHRoZSB0eXBlIG9mIHJlZmVyZW5jZQ0KPj4gICAgICAgZ2l2ZW4sIGFuZCB0aGUNCj4+ Pj4gaGFuZGxlIHBhcmFtZXRlciBlY2hvZXMgdGhlIGJhZCB2YWx1ZSBnaXZlbi4NCj4+Pj4gYXQg Y29tLnhlbnNvdXJjZS54ZW5hcGkuVHlwZXMuY2hlY2tSZXNwb25zZShUeXBlcy5qYXZhOjY5MykN Cj4+Pj4gYXQNCj4+ICAgICAgIGNvbS54ZW5zb3VyY2UueGVuYXBpLkNvbm5lY3Rpb24uZGlzcGF0 Y2goQ29ubmVjdGlvbi5qYXZhOjM5NSkNCj4+Pj4gYXQNCj4+ICAgICAgIGNvbS5jbG91ZC5oeXBl cnZpc29yLnhlbnNlcnZlci5yZXNvdXJjZS5YZW5TZXJ2ZXJDb25uZWN0aW9uUG9vbCQNCj4+Pj4g DQo+PiAgICAgICBYZW5TZXJ2ZXJDb25uZWN0aW9uLmRpc3BhdGNoKFhlblNlcnZlckNvbm5lY3Rp b25Qb29sLmphdmE6NDU3KQ0KPj4+PiBhdCBjb20ueGVuc291cmNlLnhlbmFwaS5WSUYudW5wbHVn KFZJRi5qYXZhOjkyMSkNCj4+Pj4gYXQNCj4+ICAgICAgIGNvbS5jbG91ZC5oeXBlcnZpc29yLnhl bnNlcnZlci5yZXNvdXJjZS5DaXRyaXhSZXNvdXJjZUJhc2UuDQo+Pj4+IGhhbmRsZVZtU3RhcnRG YWlsdXJlKENpdHJpeFJlc291cmNlQmFzZS5qYXZhOjM1ODQpDQo+Pj4+IGF0IGNvbS5jbG91ZC5o eXBlcnZpc29yLnhlbnNlcnZlci5yZXNvdXJjZS53cmFwcGVyLnhlbmJhc2UuDQo+Pj4+IA0KPj4g ICAgICAgQ2l0cml4U3RhcnRDb21tYW5kV3JhcHBlci5leGVjdXRlKENpdHJpeFN0YXJ0Q29tbWFu ZFdyYXBwZXIuamF2YToyMTApDQo+Pj4+IGF0IGNvbS5jbG91ZC5oeXBlcnZpc29yLnhlbnNlcnZl ci5yZXNvdXJjZS53cmFwcGVyLnhlbmJhc2UuDQo+Pj4+IA0KPj4gICAgICAgQ2l0cml4U3RhcnRD b21tYW5kV3JhcHBlci5leGVjdXRlKENpdHJpeFN0YXJ0Q29tbWFuZFdyYXBwZXIuamF2YTo1MykN Cj4+Pj4gYXQgY29tLmNsb3VkLmh5cGVydmlzb3IueGVuc2VydmVyLnJlc291cmNlLndyYXBwZXIu DQo+Pj4+IA0KPj4gICAgICAgeGVuYmFzZS5DaXRyaXhSZXF1ZXN0V3JhcHBlci5leGVjdXRlKENp dHJpeFJlcXVlc3RXcmFwcGVyLmphdmE6MTIyKQ0KPj4+PiBhdA0KPj4gICAgICAgY29tLmNsb3Vk Lmh5cGVydmlzb3IueGVuc2VydmVyLnJlc291cmNlLkNpdHJpeFJlc291cmNlQmFzZS4NCj4+Pj4g ZXhlY3V0ZVJlcXVlc3QoQ2l0cml4UmVzb3VyY2VCYXNlLmphdmE6MTY5MSkNCj4+Pj4gYXQNCj4+ ICAgICAgIGNvbS5jbG91ZC5hZ2VudC5tYW5hZ2VyLkRpcmVjdEFnZW50QXR0YWNoZSRUYXNrLnJ1 bkluQ29udGV4dCgNCj4+Pj4gRGlyZWN0QWdlbnRBdHRhY2hlLmphdmE6MzE1KQ0KPj4+PiBhdA0K Pj4gICAgICAgb3JnLmFwYWNoZS5jbG91ZHN0YWNrLm1hbmFnZWQuY29udGV4dC5NYW5hZ2VkQ29u dGV4dFJ1bm5hYmxlJDEucnVuKA0KPj4+PiBNYW5hZ2VkQ29udGV4dFJ1bm5hYmxlLmphdmE6NDkp DQo+Pj4+IGF0IG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNvbnRleHQuaW1wbC4NCj4+ Pj4gRGVmYXVsdE1hbmFnZWRDb250ZXh0JDEuY2FsbChEZWZhdWx0TWFuYWdlZENvbnRleHQuamF2 YTo1NikNCj4+Pj4gYXQNCj4+ICAgICAgIG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNv bnRleHQuaW1wbC5EZWZhdWx0TWFuYWdlZENvbnRleHQuDQo+Pj4+IGNhbGxXaXRoQ29udGV4dChE ZWZhdWx0TWFuYWdlZENvbnRleHQuamF2YToxMDMpDQo+Pj4+IGF0DQo+PiAgICAgICBvcmcuYXBh Y2hlLmNsb3Vkc3RhY2subWFuYWdlZC5jb250ZXh0LmltcGwuRGVmYXVsdE1hbmFnZWRDb250ZXh0 Lg0KPj4+PiBydW5XaXRoQ29udGV4dChEZWZhdWx0TWFuYWdlZENvbnRleHQuamF2YTo1MykNCj4+ Pj4gYXQNCj4+ICAgICAgIG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNvbnRleHQuTWFu YWdlZENvbnRleHRSdW5uYWJsZS5ydW4oDQo+Pj4+IE1hbmFnZWRDb250ZXh0UnVubmFibGUuamF2 YTo0NikNCj4+Pj4gYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFJ1bm5hYmxlQWRh cHRlci4NCj4+Pj4gY2FsbChFeGVjdXRvcnMuamF2YTo1MTEpDQo+Pj4+IGF0IGphdmEudXRpbC5j b25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suamF2YToyNjYpDQo+Pj4+IGF0IGph dmEudXRpbC5jb25jdXJyZW50LlNjaGVkdWxlZFRocmVhZFBvb2xFeGVjdXRvciQNCj4+Pj4gDQo+ PiAgICAgICBTY2hlZHVsZWRGdXR1cmVUYXNrLmFjY2VzcyQyMDEoU2NoZWR1bGVkVGhyZWFkUG9v bEV4ZWN1dG9yLmphdmE6MTgwKQ0KPj4+PiBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5TY2hlZHVs ZWRUaHJlYWRQb29sRXhlY3V0b3IkDQo+Pj4+IFNjaGVkdWxlZEZ1dHVyZVRhc2sucnVuKFNjaGVk dWxlZFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjI5MykNCj4+Pj4gYXQgamF2YS51dGlsLmNvbmN1 cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcigNCj4+Pj4gVGhyZWFkUG9vbEV4ZWN1 dG9yLmphdmE6MTE0MikNCj4+Pj4gYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4 ZWN1dG9yJFdvcmtlci5ydW4oDQo+Pj4+IFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYxNykNCj4+ Pj4gYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ1KQ0KPj4+PiBJTkZPIFtj LmMudi5WaXJ0dWFsTWFjaGluZU1hbmFnZXJJbXBsXQ0KPj4gICAgICAgKFdvcmstSm9iLUV4ZWN1 dG9yLTI6Y3R4LWJjMTA0MzgwDQo+Pj4+IGpvYi0yNS9qb2ItMjcgY3R4LThjOTQ2YTViKSAobG9n aWQ6YWFiOWMzMjApIFVuYWJsZSB0byBzdGFydA0KPj4gICAgICAgVk0gb24NCj4+Pj4gSG9zdFst Mi1Sb3V0aW5nXSBkdWUgdG8gVW5hYmxlIHRvIHN0YXJ0IGktMi02LVZNIGR1ZSB0bw0KPj4+PiBF UlJPUiBbYy5jLnYuVm1Xb3JrSm9iSGFuZGxlclByb3h5XQ0KPj4gICAgICAgKFdvcmstSm9iLUV4 ZWN1dG9yLTI6Y3R4LWJjMTA0MzgwDQo+Pj4+IGpvYi0yNS9qb2ItMjcgY3R4LThjOTQ2YTViKSAo bG9naWQ6YWFiOWMzMjApIEludm9jYXRpb24NCj4+ICAgICAgIGV4Y2VwdGlvbiwgY2F1c2VkDQo+ Pj4+IGJ5OiBjb20uY2xvdWQuZXhjZXB0aW9uLkluc3VmZmljaWVudFNlcnZlckNhcGFjaXR5RXhj ZXB0aW9uOg0KPj4gICAgICAgVW5hYmxlIHRvDQo+Pj4+IGNyZWF0ZSBhIGRlcGxveW1lbnQgZm9y IFZNW1VzZXJ8aS0yLTYtVk1dU2NvcGU9aW50ZXJmYWNlDQo+Pj4+IGNvbS5jbG91ZC5kYy5EYXRh Q2VudGVyOyBpZD0xDQo+Pj4+IElORk8gW2MuYy52LlZtV29ya0pvYkhhbmRsZXJQcm94eV0NCj4+ ICAgICAgIChXb3JrLUpvYi1FeGVjdXRvci0yOmN0eC1iYzEwNDM4MA0KPj4+PiBqb2ItMjUvam9i LTI3IGN0eC04Yzk0NmE1YikgKGxvZ2lkOmFhYjljMzIwKSBSZXRocm93DQo+PiAgICAgICBleGNl cHRpb24NCj4+Pj4gY29tLmNsb3VkLmV4Y2VwdGlvbi5JbnN1ZmZpY2llbnRTZXJ2ZXJDYXBhY2l0 eUV4Y2VwdGlvbjoNCj4+ICAgICAgIFVuYWJsZSB0byBjcmVhdGUNCj4+Pj4gYSBkZXBsb3ltZW50 IGZvciBWTVtVc2VyfGktMi02LVZNXVNjb3BlPWludGVyZmFjZQ0KPj4+PiBjb20uY2xvdWQuZGMu RGF0YUNlbnRlcjsgaWQ9MQ0KPj4+PiBFUlJPUiBbYy5jLnYuVm1Xb3JrSm9iRGlzcGF0Y2hlcl0N Cj4+ICAgICAgIChXb3JrLUpvYi1FeGVjdXRvci0yOmN0eC1iYzEwNDM4MA0KPj4+PiBqb2ItMjUv am9iLTI3KSAobG9naWQ6YWFiOWMzMjApIFVuYWJsZSB0byBjb21wbGV0ZSBBc3luY0pvYlZPDQo+ PiAgICAgICB7aWQ6MjcsDQo+Pj4+IHVzZXJJZDogMiwgYWNjb3VudElkOiAyLCBpbnN0YW5jZVR5 cGU6IG51bGwsIGluc3RhbmNlSWQ6DQo+PiAgICAgICBudWxsLCBjbWQ6DQo+Pj4+IGNvbS5jbG91 ZC52bS5WbVdvcmtTdGFydCwgY21kSW5mbzoNCj4+ICAgICAgIHJPMEFCWE55QUJoamIyMHVZMnh2 ZFdRdWRtMHVWbQ0KPj4+PiAxWGIzSnJVM1JoY25SOWNNR3N2eHo3M2dJQUMwb0FCR1JqU1dSTUFB WmhkbTlwWkhOMEFEQk1ZMjl0TDINCj4+Pj4gTnNiM1ZrTDJSbGNHeHZlUzlFWlhCc2IzbHRaVzUw VUd4aGJtNWxjaVJGZUdOc2RXUmxUR2x6ZER0TUFBDQo+Pj4+IGxqYkhWemRHVnlTV1IwQUJCTWFt RjJZUzlzWVc1bkwweHZibWM3VEFBR2FHOXpkRWxrY1FCLQ0KPj4+PiBBQUpNQUF0cWIzVnlibUZz VG1GdFpYUUFFa3hxWVhaaEwyeGhibWN2VTNSeWFXNW5PMHdBRVhCb2VYTnANCj4+Pj4gDQo+PiAg ICAgICBZMkZzVG1WMGQyOXlhMGxrY1FCLUFBSk1BQWR3YkdGdWJtVnljUUItQUFOTUFBVndiMlJK WkhFQWZnQUNUQUFHY0c5dmJFDQo+Pj4+IA0KPj4gICAgICAgbGtjUUItQUFKTUFBbHlZWGRRWVhK aGJYTjBBQTlNYW1GMllTOTFkR2xzTDAxaGNEdE1BQTF5WlhObGNuWmhkR2x2Ymtsa2NRQi0NCj4+ Pj4gDQo+PiAgICAgICBBQU40Y2dBVFkyOXRMbU5zYjNWa0xuWnRMbFp0VjI5eWE1LVp0bGJ3Sldk ckFnQUVTZ0FKWVdOamIzVnVkRWxrUw0KPj4+PiANCj4+ICAgICAgIGdBR2RYTmxja2xrU2dBRWRt MUpaRXdBQzJoaGJtUnNaWEpPWVcxbGNRQi1BQU40Y0FBQUFBQUFBQUFDQUFBQUFBQUFBQUlBQUEN Cj4+Pj4gQUFBQUFBQm5RQUdWWnBjblIxWVd4TllXTm9hVzVsVFdGdVlXZGxja2x0Y0d3QUFBQUFB QUFBQUhCd2NIDQo+Pj4+IEJ3Y0hCd2MzSUFFV3BoZG1FdWRYUnBiQzVJWVhOb1RXRndCUWZhd2NN V1lORURBQUpHQUFwc2IyRmtSbQ0KPj4+PiBGamRHOXlTUUFKZEdoeVpYTm9iMnhrZUhBX1FBQUFB QUFBREhjSUFBQUFFQUFBQUFGMEFBcFdiVg0KPj4+PiBCaGMzTjNiM0prZEFBY2NrOHdRVUpZVVVG RWJrNW9aRzFXYTFnelFtaGpNMDR6WWpOS2EzaHcsDQo+PiAgICAgICBjbWRWZXJzaW9uOiAwLA0K Pj4+PiBzdGF0dXM6IElOX1BST0dSRVNTLCBwcm9jZXNzU3RhdHVzOiAwLCByZXN1bHRDb2RlOiAw LCByZXN1bHQ6DQo+PiAgICAgICBudWxsLA0KPj4+PiBpbml0TXNpZDogNTIyMzc2MTc3OTcsIGNv bXBsZXRlTXNpZDogbnVsbCwgbGFzdFVwZGF0ZWQ6IG51bGwsDQo+PiAgICAgICBsYXN0UG9sbGVk Og0KPj4+PiBudWxsLCBjcmVhdGVkOiBXZWQgTWFyIDAxIDEyOjUxOjMyIE1TVCAyMDE3fSwgam9i IG9yaWdpbjoyNQ0KPj4+PiBjb20uY2xvdWQuZXhjZXB0aW9uLkluc3VmZmljaWVudFNlcnZlckNh cGFjaXR5RXhjZXB0aW9uOg0KPj4gICAgICAgVW5hYmxlIHRvIGNyZWF0ZQ0KPj4+PiBhIGRlcGxv eW1lbnQgZm9yIFZNW1VzZXJ8aS0yLTYtVk1dU2NvcGU9aW50ZXJmYWNlDQo+Pj4+IGNvbS5jbG91 ZC5kYy5EYXRhQ2VudGVyOyBpZD0xDQo+Pj4+IGF0IGNvbS5jbG91ZC52bS5WaXJ0dWFsTWFjaGlu ZU1hbmFnZXJJbXBsLm9yY2hlc3RyYXRlU3RhcnQoDQo+Pj4+IFZpcnR1YWxNYWNoaW5lTWFuYWdl ckltcGwuamF2YTo5NjEpDQo+Pj4+IGF0IGNvbS5jbG91ZC52bS5WaXJ0dWFsTWFjaGluZU1hbmFn ZXJJbXBsLm9yY2hlc3RyYXRlU3RhcnQoDQo+Pj4+IFZpcnR1YWxNYWNoaW5lTWFuYWdlckltcGwu amF2YTo0NjYxKQ0KPj4+PiBhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwu aW52b2tlMChOYXRpdmUNCj4+ICAgICAgIE1ldGhvZCkNCj4+Pj4gYXQgc3VuLnJlZmxlY3QuTmF0 aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZSgNCj4+Pj4gTmF0aXZlTWV0aG9kQWNjZXNzb3JJ bXBsLmphdmE6NjIpDQo+Pj4+IGF0IHN1bi5yZWZsZWN0LkRlbGVnYXRpbmdNZXRob2RBY2Nlc3Nv ckltcGwuaW52b2tlKA0KPj4+PiBEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NDMp DQo+Pj4+IGF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoTWV0aG9kLmphdmE6NDk4 KQ0KPj4+PiBhdCBjb20uY2xvdWQudm0uVm1Xb3JrSm9iSGFuZGxlclByb3h5LmhhbmRsZVZtV29y a0pvYigNCj4+Pj4gVm1Xb3JrSm9iSGFuZGxlclByb3h5LmphdmE6MTA3KQ0KPj4+PiBhdCBjb20u Y2xvdWQudm0uVmlydHVhbE1hY2hpbmVNYW5hZ2VySW1wbC5oYW5kbGVWbVdvcmtKb2IoDQo+Pj4+ IFZpcnR1YWxNYWNoaW5lTWFuYWdlckltcGwuamF2YTo0ODIyKQ0KPj4+PiBhdCBjb20uY2xvdWQu dm0uVm1Xb3JrSm9iRGlzcGF0Y2hlci5ydW5Kb2IoDQo+Pj4+IFZtV29ya0pvYkRpc3BhdGNoZXIu amF2YToxMDIpDQo+Pj4+IGF0DQo+PiAgICAgICBvcmcuYXBhY2hlLmNsb3Vkc3RhY2suZnJhbWV3 b3JrLmpvYnMuaW1wbC5Bc3luY0pvYk1hbmFnZXJJbXBsJDUuDQo+Pj4+IHJ1bkluQ29udGV4dChB c3luY0pvYk1hbmFnZXJJbXBsLmphdmE6NTU0KQ0KPj4+PiBhdA0KPj4gICAgICAgb3JnLmFwYWNo ZS5jbG91ZHN0YWNrLm1hbmFnZWQuY29udGV4dC5NYW5hZ2VkQ29udGV4dFJ1bm5hYmxlJDEucnVu KA0KPj4+PiBNYW5hZ2VkQ29udGV4dFJ1bm5hYmxlLmphdmE6NDkpDQo+Pj4+IGF0IG9yZy5hcGFj aGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNvbnRleHQuaW1wbC4NCj4+Pj4gRGVmYXVsdE1hbmFnZWRD b250ZXh0JDEuY2FsbChEZWZhdWx0TWFuYWdlZENvbnRleHQuamF2YTo1NikNCj4+Pj4gYXQNCj4+ ICAgICAgIG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNvbnRleHQuaW1wbC5EZWZhdWx0 TWFuYWdlZENvbnRleHQuDQo+Pj4+IGNhbGxXaXRoQ29udGV4dChEZWZhdWx0TWFuYWdlZENvbnRl eHQuamF2YToxMDMpDQo+Pj4+IGF0DQo+PiAgICAgICBvcmcuYXBhY2hlLmNsb3Vkc3RhY2subWFu YWdlZC5jb250ZXh0LmltcGwuRGVmYXVsdE1hbmFnZWRDb250ZXh0Lg0KPj4+PiBydW5XaXRoQ29u dGV4dChEZWZhdWx0TWFuYWdlZENvbnRleHQuamF2YTo1MykNCj4+Pj4gYXQNCj4+ICAgICAgIG9y Zy5hcGFjaGUuY2xvdWRzdGFjay5tYW5hZ2VkLmNvbnRleHQuTWFuYWdlZENvbnRleHRSdW5uYWJs ZS5ydW4oDQo+Pj4+IE1hbmFnZWRDb250ZXh0UnVubmFibGUuamF2YTo0NikNCj4+Pj4gYXQgb3Jn LmFwYWNoZS5jbG91ZHN0YWNrLmZyYW1ld29yay5qb2JzLmltcGwuDQo+Pj4+IEFzeW5jSm9iTWFu YWdlckltcGwkNS5ydW4oQXN5bmNKb2JNYW5hZ2VySW1wbC5qYXZhOjUwMikNCj4+Pj4gYXQgamF2 YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFJ1bm5hYmxlQWRhcHRlci4NCj4+Pj4gY2FsbChF eGVjdXRvcnMuamF2YTo1MTEpDQo+Pj4+IGF0IGphdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRh c2sucnVuKEZ1dHVyZVRhc2suamF2YToyNjYpDQo+Pj4+IGF0IGphdmEudXRpbC5jb25jdXJyZW50 LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoDQo+Pj4+IFRocmVhZFBvb2xFeGVjdXRvci5q YXZhOjExNDIpDQo+Pj4+IGF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRv ciRXb3JrZXIucnVuKA0KPj4+PiBUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTcpDQo+Pj4+IGF0 IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0NSkNCj4+Pj4gSU5GTyBbby5hLmMu Zi5qLmkuQXN5bmNKb2JNb25pdG9yXQ0KPj4gICAgICAgKFdvcmstSm9iLUV4ZWN1dG9yLTI6Y3R4 LWJjMTA0MzgwDQo+Pj4+IGpvYi0yNS9qb2ItMjcpIChsb2dpZDphYWI5YzMyMCkgUmVtb3ZlIGpv Yi0yNyBmcm9tIGpvYg0KPj4gICAgICAgbW9uaXRvcmluZw0KPj4+PiBXQVJOIFtvLmEuYy5hbGVy dHNdIChBUEktSm9iLUV4ZWN1dG9yLTE6Y3R4LWY3ODcyMDFkIGpvYi0yNQ0KPj4+PiBjdHgtNTYz NTZjMWEpIChsb2dpZDphYWI5YzMyMCkgYWxlcnRUeXBlOjogOCAvLw0KPj4gICAgICAgZGF0YUNl bnRlcklkOjogMSAvLw0KPj4+PiBwb2RJZDo6IDEgLy8gY2x1c3RlcklkOjogbnVsbCAvLyBtZXNz YWdlOjogRmFpbGVkIHRvIGRlcGxveQ0KPj4gICAgICAgVm0gd2l0aCBJZDogNiwNCj4+Pj4gb24g SG9zdCB3aXRoIElkOiBudWxsDQo+Pj4+IEVSUk9SIFtjLmMuYS5BcGlBc3luY0pvYkRpc3BhdGNo ZXJdDQo+PiAgICAgICAoQVBJLUpvYi1FeGVjdXRvci0xOmN0eC1mNzg3MjAxZA0KPj4+PiBqb2It MjUpIChsb2dpZDphYWI5YzMyMCkgVW5leHBlY3RlZCBleGNlcHRpb24gd2hpbGUgZXhlY3V0aW5n DQo+Pj4+IG9yZy5hcGFjaGUuY2xvdWRzdGFjay5hcGkuY29tbWFuZC5hZG1pbi52bS5EZXBsb3lW TUNtZEJ5QWRtaW4NCj4+Pj4gY29tLmNsb3VkLnV0aWxzLmV4Y2VwdGlvbi5DbG91ZFJ1bnRpbWVF eGNlcHRpb246IFVuYWJsZSB0bw0KPj4gICAgICAgc3RhcnQgYSBWTSBkdWUNCj4+Pj4gdG8gaW5z dWZmaWNpZW50IGNhcGFjaXR5DQo+Pj4+IGF0IGNvbS5jbG91ZC52bS5WaXJ0dWFsTWFjaGluZU1h bmFnZXJJbXBsLnN0YXJ0KA0KPj4+PiBWaXJ0dWFsTWFjaGluZU1hbmFnZXJJbXBsLmphdmE6NjIz KQ0KPj4+PiBhdA0KPj4gICAgICAgb3JnLmFwYWNoZS5jbG91ZHN0YWNrLmVuZ2luZS5jbG91ZC5l bnRpdHkuYXBpLlZNRW50aXR5TWFuYWdlckltcGwuDQo+Pj4+IGRlcGxveVZpcnR1YWxNYWNoaW5l KFZNRW50aXR5TWFuYWdlckltcGwuamF2YToyNDIpDQo+Pj4+IGF0IG9yZy5hcGFjaGUuY2xvdWRz dGFjay5lbmdpbmUuY2xvdWQuZW50aXR5LmFwaS4NCj4+Pj4gDQo+PiAgICAgICBWaXJ0dWFsTWFj aGluZUVudGl0eUltcGwuZGVwbG95KFZpcnR1YWxNYWNoaW5lRW50aXR5SW1wbC5qYXZhOjIxMikN Cj4+Pj4gYXQgY29tLmNsb3VkLnZtLlVzZXJWbU1hbmFnZXJJbXBsLnN0YXJ0VmlydHVhbE1hY2hp bmUoDQo+Pj4+IFVzZXJWbU1hbmFnZXJJbXBsLmphdmE6NDA4NCkNCj4+Pj4gYXQgY29tLmNsb3Vk LnZtLlVzZXJWbU1hbmFnZXJJbXBsLnN0YXJ0VmlydHVhbE1hY2hpbmUoDQo+Pj4+IFVzZXJWbU1h bmFnZXJJbXBsLmphdmE6MzY4MikNCj4+Pj4gYXQgY29tLmNsb3VkLnZtLlVzZXJWbU1hbmFnZXJJ bXBsLnN0YXJ0VmlydHVhbE1hY2hpbmUoDQo+Pj4+IFVzZXJWbU1hbmFnZXJJbXBsLmphdmE6MzY3 MCkNCj4+Pj4gYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZTAo TmF0aXZlDQo+PiAgICAgICBNZXRob2QpDQo+Pj4+IGF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhv ZEFjY2Vzc29ySW1wbC5pbnZva2UoDQo+Pj4+IE5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5qYXZh OjYyKQ0KPj4+PiBhdCBzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmlu dm9rZSgNCj4+Pj4gRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjQzKQ0KPj4+PiBh dCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlKE1ldGhvZC5qYXZhOjQ5OCkNCj4+Pj4g YXQgb3JnLnNwcmluZ2ZyYW1ld29yay5hb3Auc3VwcG9ydC5Bb3BVdGlscy4NCj4+Pj4gaW52b2tl Sm9pbnBvaW50VXNpbmdSZWZsZWN0aW9uKEFvcFV0aWxzLmphdmE6MzMzKQ0KPj4+PiBhdA0KPj4g ICAgICAgb3JnLnNwcmluZ2ZyYW1ld29yay5hb3AuZnJhbWV3b3JrLlJlZmxlY3RpdmVNZXRob2RJ bnZvY2F0aW9uLg0KPj4+PiBpbnZva2VKb2lucG9pbnQoUmVmbGVjdGl2ZU1ldGhvZEludm9jYXRp b24uamF2YToxOTApDQo+Pj4+IGF0DQo+PiAgICAgICBvcmcuc3ByaW5nZnJhbWV3b3JrLmFvcC5m cmFtZXdvcmsuUmVmbGVjdGl2ZU1ldGhvZEludm9jYXRpb24uDQo+Pj4+IHByb2NlZWQoUmVmbGVj dGl2ZU1ldGhvZEludm9jYXRpb24uamF2YToxNTcpDQo+Pj4+IGF0IG9yZy5hcGFjaGUuY2xvdWRz dGFjay5uZXR3b3JrLmNvbnRyYWlsLm1hbmFnZW1lbnQuDQo+Pj4+IEV2ZW50VXRpbHMkRXZlbnRJ bnRlcmNlcHRvci5pbnZva2UoRXZlbnRVdGlscy5qYXZhOjEwNykNCj4+Pj4gYXQNCj4+ICAgICAg IG9yZy5zcHJpbmdmcmFtZXdvcmsuYW9wLmZyYW1ld29yay5SZWZsZWN0aXZlTWV0aG9kSW52b2Nh dGlvbi4NCj4+Pj4gcHJvY2VlZChSZWZsZWN0aXZlTWV0aG9kSW52b2NhdGlvbi5qYXZhOjE2OCkN Cj4+Pj4gYXQgY29tLmNsb3VkLmV2ZW50LkFjdGlvbkV2ZW50SW50ZXJjZXB0b3IuaW52b2tlKA0K Pj4+PiBBY3Rpb25FdmVudEludGVyY2VwdG9yLmphdmE6NTEpDQo+Pj4+IGF0DQo+PiAgICAgICBv cmcuc3ByaW5nZnJhbWV3b3JrLmFvcC5mcmFtZXdvcmsuUmVmbGVjdGl2ZU1ldGhvZEludm9jYXRp b24uDQo+Pj4+IHByb2NlZWQoUmVmbGVjdGl2ZU1ldGhvZEludm9jYXRpb24uamF2YToxNjgpDQo+ Pj4+IGF0DQo+PiAgICAgICBvcmcuc3ByaW5nZnJhbWV3b3JrLmFvcC5pbnRlcmNlcHRvci5FeHBv c2VJbnZvY2F0aW9uSW50ZXJjZXB0b3IuDQo+Pj4+IGludm9rZShFeHBvc2VJbnZvY2F0aW9uSW50 ZXJjZXB0b3IuamF2YTo5MikNCj4+Pj4gYXQNCj4+ICAgICAgIG9yZy5zcHJpbmdmcmFtZXdvcmsu YW9wLmZyYW1ld29yay5SZWZsZWN0aXZlTWV0aG9kSW52b2NhdGlvbi4NCj4+Pj4gcHJvY2VlZChS ZWZsZWN0aXZlTWV0aG9kSW52b2NhdGlvbi5qYXZhOjE3OSkNCj4+Pj4gYXQgb3JnLnNwcmluZ2Zy YW1ld29yay5hb3AuZnJhbWV3b3JrLkpka0R5bmFtaWNBb3BQcm94eS4NCj4+Pj4gaW52b2tlKEpk a0R5bmFtaWNBb3BQcm94eS5qYXZhOjIxMykNCj4+Pj4gYXQgY29tLnN1bi5wcm94eS4kUHJveHkx ODYuc3RhcnRWaXJ0dWFsTWFjaGluZShVbmtub3duDQo+PiAgICAgICBTb3VyY2UpDQo+Pj4+IGF0 IG9yZy5hcGFjaGUuY2xvdWRzdGFjay5hcGkuY29tbWFuZC5hZG1pbi52bS4NCj4+Pj4gRGVwbG95 Vk1DbWRCeUFkbWluLmV4ZWN1dGUoRGVwbG95Vk1DbWRCeUFkbWluLmphdmE6NTApDQo+Pj4+IGF0 DQo+PiAgICAgICBjb20uY2xvdWQuYXBpLkFwaURpc3BhdGNoZXIuZGlzcGF0Y2goQXBpRGlzcGF0 Y2hlci5qYXZhOjE1MCkNCj4+Pj4gYXQgY29tLmNsb3VkLmFwaS5BcGlBc3luY0pvYkRpc3BhdGNo ZXIucnVuSm9iKA0KPj4+PiBBcGlBc3luY0pvYkRpc3BhdGNoZXIuamF2YToxMDgpDQo+Pj4+IGF0 DQo+PiAgICAgICBvcmcuYXBhY2hlLmNsb3Vkc3RhY2suZnJhbWV3b3JrLmpvYnMuaW1wbC5Bc3lu Y0pvYk1hbmFnZXJJbXBsJDUuDQo+Pj4+IHJ1bkluQ29udGV4dChBc3luY0pvYk1hbmFnZXJJbXBs LmphdmE6NTU0KQ0KPj4+PiBhdA0KPj4gICAgICAgb3JnLmFwYWNoZS5jbG91ZHN0YWNrLm1hbmFn ZWQuY29udGV4dC5NYW5hZ2VkQ29udGV4dFJ1bm5hYmxlJDEucnVuKA0KPj4+PiBNYW5hZ2VkQ29u dGV4dFJ1bm5hYmxlLmphdmE6NDkpDQo+Pj4+IGF0IG9yZy5hcGFjaGUuY2xvdWRzdGFjay5tYW5h Z2VkLmNvbnRleHQuaW1wbC4NCj4+Pj4gRGVmYXVsdE1hbmFnZWRDb250ZXh0JDEuY2FsbChEZWZh dWx0TWFuYWdlZENvbnRleHQuamF2YTo1NikNCj4+Pj4gYXQNCj4+ICAgICAgIG9yZy5hcGFjaGUu Y2xvdWRzdGFjay5tYW5hZ2VkLmNvbnRleHQuaW1wbC5EZWZhdWx0TWFuYWdlZENvbnRleHQuDQo+ Pj4+IGNhbGxXaXRoQ29udGV4dChEZWZhdWx0TWFuYWdlZENvbnRleHQuamF2YToxMDMpDQo+Pj4+ IGF0DQo+PiAgICAgICBvcmcuYXBhY2hlLmNsb3Vkc3RhY2subWFuYWdlZC5jb250ZXh0LmltcGwu RGVmYXVsdE1hbmFnZWRDb250ZXh0Lg0KPj4+PiBydW5XaXRoQ29udGV4dChEZWZhdWx0TWFuYWdl ZENvbnRleHQuamF2YTo1MykNCj4+Pj4gYXQNCj4+ICAgICAgIG9yZy5hcGFjaGUuY2xvdWRzdGFj ay5tYW5hZ2VkLmNvbnRleHQuTWFuYWdlZENvbnRleHRSdW5uYWJsZS5ydW4oDQo+Pj4+IE1hbmFn ZWRDb250ZXh0UnVubmFibGUuamF2YTo0NikNCj4+Pj4gYXQgb3JnLmFwYWNoZS5jbG91ZHN0YWNr LmZyYW1ld29yay5qb2JzLmltcGwuDQo+Pj4+IEFzeW5jSm9iTWFuYWdlckltcGwkNS5ydW4oQXN5 bmNKb2JNYW5hZ2VySW1wbC5qYXZhOjUwMikNCj4+Pj4gYXQgamF2YS51dGlsLmNvbmN1cnJlbnQu RXhlY3V0b3JzJFJ1bm5hYmxlQWRhcHRlci4NCj4+Pj4gY2FsbChFeGVjdXRvcnMuamF2YTo1MTEp DQo+Pj4+IGF0IGphdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2su amF2YToyNjYpDQo+Pj4+IGF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRv ci5ydW5Xb3JrZXIoDQo+Pj4+IFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDIpDQo+Pj4+IGF0 IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKA0KPj4+ PiBUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MTcpDQo+Pj4+IGF0IGphdmEubGFuZy5UaHJlYWQu cnVuKFRocmVhZC5qYXZhOjc0NSkNCj4+Pj4gQ2F1c2VkIGJ5Og0KPj4gICAgICAgY29tLmNsb3Vk LmV4Y2VwdGlvbi5JbnN1ZmZpY2llbnRTZXJ2ZXJDYXBhY2l0eUV4Y2VwdGlvbjoNCj4+Pj4gVW5h YmxlIHRvIGNyZWF0ZSBhIGRlcGxveW1lbnQgZm9yDQo+PiAgICAgICBWTVtVc2VyfGktMi02LVZN XVNjb3BlPWludGVyZmFjZQ0KPj4+PiBjb20uY2xvdWQuZGMuRGF0YUNlbnRlcjsgaWQ9MQ0KPj4+ PiBhdCBjb20uY2xvdWQudm0uVmlydHVhbE1hY2hpbmVNYW5hZ2VySW1wbC5vcmNoZXN0cmF0ZVN0 YXJ0KA0KPj4+PiBWaXJ0dWFsTWFjaGluZU1hbmFnZXJJbXBsLmphdmE6OTYxKQ0KPj4+PiBhdCBj b20uY2xvdWQudm0uVmlydHVhbE1hY2hpbmVNYW5hZ2VySW1wbC5vcmNoZXN0cmF0ZVN0YXJ0KA0K Pj4+PiBWaXJ0dWFsTWFjaGluZU1hbmFnZXJJbXBsLmphdmE6NDY2MSkNCj4+Pj4gYXQgc3VuLnJl ZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZTAoTmF0aXZlDQo+PiAgICAgICBN ZXRob2QpDQo+Pj4+IC4uLiAxOCBtb3JlDQo+Pj4+IA0KPj4+PiBPbiAzLzEvMTcsIDg6NTIgQU0s ICJQaWVycmUtTHVjIERpb24iIDxwZGlvbjg5MUBhcGFjaGUub3JnPg0KPj4gICAgICAgd3JvdGU6 DQo+Pj4+IA0KPj4+PiBEbyB3ZSBzdXBwb3J0IGNlbnRvczYgd2l0aCB0aGlzIDQuMTAgb24gamRr OD8NCj4+Pj4gDQo+Pj4+IEJlY2F1c2UgSSBkaWQgbm90IGhhZCBtdWNoIHN1Y2Nlc3MgdG8gaW5z dGFsbCA0LjEwIGpkazggb24NCj4+ICAgICAgIGNlbnRvczYNCj4+Pj4gYW5kIGl0DQo+Pj4+IHdv dWxkIG1ha2UgbW9yZSBzZW5zZSB0byBkcm9wIHN1cHBvcnQgb2YgY2VudG9zNiBzbyBvdXINCj4+ ICAgICAgIHBhY2thZ2VzIHdvdWxkDQo+Pj4+IHVzZQ0KPj4+PiBjZW50b3M3IHdpdGggZGlzdHJv IHBhY2thZ2VzIGZvciB0b21jYXQ3IGFuZCBqZGs4LiBTaG91bGQNCj4+ICAgICAgIGFsc28gYmUg dGhlDQo+Pj4+IHNhbWUNCj4+Pj4gd2l0aCB1YnVudHUgMTYuMDQgdGhhdCB1c2UgamRrOCBhbmQg dG9tY2F0NyBieSBkZWZhdWx0ID8NCj4+Pj4gDQo+Pj4+IA0KPj4+PiB0aGFua3MsDQo+Pj4+IA0K Pj4+PiANCj4+Pj4+IE9uIFdlZCwgTWFyIDEsIDIwMTcgYXQgOTowMSBBTSwgUmVuZSBNb3Nlcg0K Pj4gICAgICAgPG1haWxAcmVuZW1vc2VyLm5ldD4gd3JvdGU6DQo+Pj4+PiANCj4+Pj4+IEhpDQo+ Pj4+PiANCj4+Pj4+IFdoaWxlIG5vdCBiZSBkaXJlY3RseSByZWxhdGVkIHRvIHRoZSBjbG9kdXN0 YWNrIGphdmEgc291cmNlDQo+PiAgICAgICBjb2RlLCBhbnkNCj4+Pj4+IFJQTSBjcmVhdGVkIHVz aW5nIHRoZSBzcGVjcyBmcm9tIHRoZSByZXBvIGUuZy4gZnJvbQ0KPj4gICAgICAgcGFja2FnZXMv Y2VudG9zNw0KPj4+Pj4gYW5kIHByb2NlZWRpbmcgYW4gdXBncmFkZSwgd2lsbCBoaXQgQ0xPVURT VEFDSy05NzY1LCBQUg0KPj4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9jbG91ZHN0YWNr L3B1bGwvMTkyMyBmaXhlcyB0aGUNCj4+ICAgICAgIGlzc3VlLg0KPj4+Pj4gDQo+Pj4+PiBSZWdh cmRzDQo+Pj4+PiBSZW7DqQ0KPj4+Pj4gDQo+Pj4+PiANCj4+Pj4+PiBPbiAwMy8wMS8yMDE3IDAy OjEyIEFNLCBSYWphbmkgS2FydXR1cmkgd3JvdGU6DQo+Pj4+Pj4gSGkgQWxsLA0KPj4+Pj4+IA0K Pj4+Pj4+IEkndmUgY3JlYXRlZCBhIDQuMTAuMC4wIHJlbGVhc2UsIHdpdGggdGhlIGZvbGxvd2lu Zw0KPj4gICAgICAgYXJ0aWZhY3RzIHVwDQo+Pj4+IGZvciBhDQo+Pj4+PiB2b3RlOg0KPj4+Pj4+ IA0KPj4+Pj4+IEdpdCBCcmFuY2ggYW5kIENvbW1pdA0KPj4+Pj4+IFNIOmh0dHBzOi8vZ2l0LXdp cC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPWNsb3Vkc3RhY2suDQo+Pj4+PiBnaXQ7YT1zaG9y dGxvZztoPXJlZnMvaGVhZHMvNC4xMC4wLjAtUkMyMDE3MDMwMVQwNjM0DQo+Pj4+Pj4gQ29tbWl0 OjdjMWQwMDNiNTI2OWIzNzVkODdmNGY2Y2ZmZjhhMTQ0ZjA2MDhiNjcNCj4+Pj4+PiA8aHR0cHM6 Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9Y2xvdWRzdGFjay4NCj4+Pj4+IGdp dDthPXNob3J0bG9nO2g9cmVmcy9oZWFkcy80LjEwLjAuMC1SQzIwMTcwMzAxVDA2MzRDb21taXQ6 DQo+Pj4+PiA3YzFkMDAzYjUyNjliMzc1ZDg3ZjRmNmNmZmY4YTE0NGYwNjA4YjY3Pg0KPj4+Pj4+ IA0KPj4+Pj4+IFNvdXJjZSByZWxlYXNlIChjaGVja3N1bXMgYW5kIHNpZ25hdHVyZXMgYXJlIGF2 YWlsYWJsZSBhdA0KPj4gICAgICAgdGhlIHNhbWUNCj4+Pj4+PiANCj4+ICAgICAgIGxvY2F0aW9u KTpodHRwczovL2Rpc3QuYXBhY2hlLm9yZy9yZXBvcy9kaXN0L2Rldi9jbG91ZHN0YWNrLw0KPj4+ PiA0LjEwLjAuMC8NCj4+Pj4+PiANCj4+Pj4+PiBQR1AgcmVsZWFzZSBrZXlzIChzaWduZWQgdXNp bmcNCj4+Pj4+PiBDQkI0NDgyMSk6aHR0cHM6Ly9kaXN0LmFwYWNoZS5vcmcvcmVwb3MvZGlzdC9y ZWxlYXNlLw0KPj4+PiBjbG91ZHN0YWNrL0tFWVMNCj4+Pj4+PiANCj4+Pj4+PiBWb3RlIHdpbGwg YmUgb3BlbiBmb3IgNzIgaG91cnMuDQo+Pj4+Pj4gDQo+Pj4+Pj4gRm9yIHNhbml0eSBpbiB0YWxs eWluZyB0aGUgdm90ZSwgY2FuIFBNQyBtZW1iZXJzIHBsZWFzZSBiZQ0KPj4gICAgICAgc3VyZSB0 bw0KPj4+Pj4+IGluZGljYXRlICIoYmluZGluZykiIHdpdGggdGhlaXIgdm90ZT8NCj4+Pj4+PiAN Cj4+Pj4+PiBbIF0gKzEgYXBwcm92ZQ0KPj4+Pj4+IFsgXSArMCBubyBvcGluaW9uDQo+Pj4+Pj4g WyBdIC0xIGRpc2FwcHJvdmUgKGFuZCByZWFzb24gd2h5KQ0KPj4+Pj4+IA0KPj4+Pj4+IA0KPj4+ Pj4+IA0KPj4+Pj4+IH5SYWphbmkNCj4+Pj4+PiBodHRwOi8vY2xvdWRwbGF0Zm9ybS5hY2NlbGVy aXRlLmNvbS8NCj4+Pj4+PiANCj4+Pj4+IA0KPj4+PiANCj4+Pj4gDQo+Pj4+IA0KPj4gDQo+PiAg ICAgICByb2hpdC55YWRhdkBzaGFwZWJsdWUuY29tDQo+PiAgICAgICB3d3cuc2hhcGVibHVlLmNv bTxodHRwOi8vd3d3LnNoYXBlYmx1ZS5jb20gDQo+PiAgICAgICAoIGh0dHA6Ly93d3cuc2hhcGVi bHVlLmNvbTxodHRwOi8vd3d3LnNoYXBlYmx1ZS5jb20gKT4NCj4+ICAgICAgIDUzIENoYW5kb3Mg UGxhY2UsIENvdmVudCBHYXJkZW4sIExvbmRvbiBXQzJOIDRIU1VLDQo+PiAgICAgICBAc2hhcGVi bHVlDQo+PiANCj4+ICAgICAgIERJU0NMQUlNRVINCj4+ICAgICAgID09PT09PT09PT0NCj4+ICAg ICAgIFRoaXMgZS1tYWlsIG1heSBjb250YWluIHByaXZpbGVnZWQgYW5kIGNvbmZpZGVudGlhbCBp bmZvcm1hdGlvbg0KPj4gICAgICAgd2hpY2ggaXMgdGhlIHByb3BlcnR5IG9mIEFjY2VsZXJpdGUs IGEgUGVyc2lzdGVudCBTeXN0ZW1zDQo+PiAgICAgICBidXNpbmVzcy4gSXQgaXMgaW50ZW5kZWQg b25seSBmb3IgdGhlIHVzZSBvZiB0aGUgaW5kaXZpZHVhbCBvcg0KPj4gICAgICAgZW50aXR5IHRv IHdoaWNoIGl0IGlzIGFkZHJlc3NlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkDQo+PiAg ICAgICByZWNpcGllbnQsIHlvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gcmVhZCwgcmV0YWluLCBj b3B5LCBwcmludCwNCj4+ICAgICAgIGRpc3RyaWJ1dGUgb3IgdXNlIHRoaXMgbWVzc2FnZS4gSWYg eW91IGhhdmUgcmVjZWl2ZWQgdGhpcw0KPj4gICAgICAgY29tbXVuaWNhdGlvbiBpbiBlcnJvciwg cGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIGFuZCBkZWxldGUgYWxsDQo+PiAgICAgICBjb3BpZXMg b2YgdGhpcyBtZXNzYWdlLiBBY2NlbGVyaXRlLCBhIFBlcnNpc3RlbnQgU3lzdGVtcyBidXNpbmVz cw0KPj4gICAgICAgZG9lcyBub3QgYWNjZXB0IGFueSBsaWFiaWxpdHkgZm9yIHZpcnVzIGluZmVj dGVkIG1haWxzLg0KPj4gDQo+PiAgICAgICByb2hpdC55YWRhdkBzaGFwZWJsdWUuY29tDQo+PiAg ICAgICB3d3cuc2hhcGVibHVlLmNvbSAoIGh0dHA6Ly93d3cuc2hhcGVibHVlLmNvbSApDQo+PiAg ICAgICA1MyBDaGFuZG9zIFBsYWNlLCBDb3ZlbnQgR2FyZGVuLCBMb25kb24gV0MyTiA0SFNVSw0K Pj4gICAgICAgQHNoYXBlYmx1ZQ0KPj4gDQo+PiANCj4+IA0KPiANCj4gDQo=