Return-Path: X-Original-To: apmail-shindig-dev-archive@www.apache.org Delivered-To: apmail-shindig-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B8C29D365 for ; Fri, 13 Jul 2012 11:57:19 +0000 (UTC) Received: (qmail 80174 invoked by uid 500); 13 Jul 2012 11:57:19 -0000 Delivered-To: apmail-shindig-dev-archive@shindig.apache.org Received: (qmail 80153 invoked by uid 500); 13 Jul 2012 11:57:19 -0000 Mailing-List: contact dev-help@shindig.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@shindig.apache.org Delivered-To: mailing list dev@shindig.apache.org Received: (qmail 80134 invoked by uid 99); 13 Jul 2012 11:57:19 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 13 Jul 2012 11:57:19 +0000 X-ASF-Spam-Status: No, hits=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [198.49.146.77] (HELO smtpksrv1.mitre.org) (198.49.146.77) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 13 Jul 2012 11:57:12 +0000 Received: from smtpksrv1.mitre.org (localhost.localdomain [127.0.0.1]) by localhost (Postfix) with SMTP id EF68321B034F; Fri, 13 Jul 2012 07:56:51 -0400 (EDT) Received: from IMCCAS04.MITRE.ORG (imccas04.mitre.org [129.83.29.81]) by smtpksrv1.mitre.org (Postfix) with ESMTP id D8DC521B01EB; Fri, 13 Jul 2012 07:56:51 -0400 (EDT) Received: from IMCMBX01.MITRE.ORG ([169.254.1.250]) by IMCCAS04.MITRE.ORG ([129.83.29.81]) with mapi id 14.02.0309.002; Fri, 13 Jul 2012 07:56:51 -0400 From: "Franklin, Matthew B." To: "dev@shindig.apache.org" CC: Florian Holzschuher Subject: RE: AW: Shindig neo4j backend Thread-Topic: AW: Shindig neo4j backend Thread-Index: Ac1gPO/HpXKCrKg1StG3AhyxdjRt3gAm04KAAAEZfAAACoSkAAAGDNIg Date: Fri, 13 Jul 2012 11:56:51 +0000 Message-ID: <2E45169E9A237B4DA78078A68962F9EF0163E3DE@IMCMBX01.MITRE.ORG> References: <00ae01cd6042$8c84e4c0$a58eae40$@hof-university.de> <000a01cd60bb$1d8579d0$58906d70$@hof-university.de> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [129.83.31.58] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org DQoNCj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPkZyb206IFN0YW50b24gU2lldmVycyBb bWFpbHRvOnNzaWV2ZXJzQHVzLmlibS5jb21dDQo+U2VudDogRnJpZGF5LCBKdWx5IDEzLCAyMDEy IDY6NTAgQU0NCj5UbzogZGV2QHNoaW5kaWcuYXBhY2hlLm9yZw0KPkNjOiBGbG9yaWFuIEhvbHpz Y2h1aGVyDQo+U3ViamVjdDogUmU6IEFXOiBTaGluZGlnIG5lbzRqIGJhY2tlbmQNCj4NCj5IaSBS ZW7DqSwNCj4NCj5JZiB5b3UnZCBsaWtlIHRvIGNvbnRyaWJ1dGUgY29kZSBiYWNrIHRvIFNoaW5k aWcsIHRoZSBmaXJzdCBzdGVwIGlzIHRvDQo+b3BlbiBhIEpJUkEgWzFdLiAgVGhlIHNlY29uZCBz dGVwIGlzIHRvIGNyZWF0ZSBhbiBhY2NvdW50IG9uIHRoZSBSZXZpZXcNCj5Cb2FyZCBpbnN0YW5j ZSBbMl0gYW5kIHBvc3QgYSByZXZpZXcgd2l0aCB5b3VyIHBhdGNoLiAgV2l0aGluIHlvdXIgcmV2 aWV3DQo+eW91IGNhbiBhZGQgdGhlICJzaGluZGlnIiBncm91cCB0byBzZW5kIGEgbm90aWZpY2F0 aW9uIG9mIHlvdXIgcmV2aWV3IG91cg0KPnRvIHRoaXMgbGlzdC4NCg0KVGhpcyBpcyB0aGUgc2Ft ZSBwcm9jZXNzIGZvciBSYXZlIGp1c3Qgcy9zaGluZGlnL3JhdmUNCg0KPg0KPklmIHlvdSdyZSBq dXN0IGxvb2tpbmcgZm9yIHNvbWUgZmVlZGJhY2sgb24gaWRlYXMgdGhhdCBhcmUgZWFzaWVyIHRv DQo+ZXhwcmVzcyB2aWEgYSBzb3VyY2UgY29kZSBwYXRjaCwgeW91IGNhbiBza2lwIHJpZ2h0IHRv IHRoZSBSZXZpZXcgQm9hcmQNCj5zaXRlIGFuZCBjcmVhdGUgdGhlIEpJUkEgYXQgYSBsYXRlciB0 aW1lLg0KPg0KPlRoYW5rcywNCj4tU3RhbnRvbg0KPg0KPlsxXSAgaHR0cHM6Ly9pc3N1ZXMuYXBh Y2hlLm9yZy9qaXJhL2Jyb3dzZS9TSElORElHDQo+WzJdIGh0dHBzOi8vcmV2aWV3cy5hcGFjaGUu b3JnLw0KPg0KPg0KPg0KPkZyb206ICAgUmVuw6kgUGVpbmwgPHJlbmUucGVpbmxAaG9mLXVuaXZl cnNpdHkuZGU+DQo+VG86ICAgICA8ZGV2QHNoaW5kaWcuYXBhY2hlLm9yZz4sDQo+Q2M6ICAgICAi RmxvcmlhbiBIb2x6c2NodWhlciIgPGZob2x6c2NodWhlcjJAaG9mLXVuaXZlcnNpdHkuZGU+DQo+ RGF0ZTogICAwNy8xMy8yMDEyIDAxOjQ2DQo+U3ViamVjdDogICAgICAgIEFXOiBTaGluZGlnIG5l bzRqIGJhY2tlbmQNCj4NCj4NCj4NCj5IaSwNCj50aGFua3MgZm9yIGFsbCB0aGUgZ29vZCBzdWdn ZXN0aW9ucy4NCj5PbmUgbGFzdCBxdWVzdGlvbiBmb3IgdGhlIG1vbWVudDogaG93IGV4YWN0bHkg ZG8gd2UgY29udHJpYnV0ZSBvdXIgY29kZT8NCj5TaG91bGQgd2Ugb3BlbiBhIEppcmEgaXNzdWUg YW5kIGF0dGFjaCB0aGUgc291cmNlcz8NCj5NYXliZSB0aGVyZSBhcmUgbmV3IHN1Z2dlc3Rpb25z LCBvbmNlIHlvdSd2ZSBzZWVuIG91ciBjb2RlLg0KPlJlZ2FyZHMNCj5SZW7DqQ0KPg0KPi0tLS0t VXJzcHLDvG5nbGljaGUgTmFjaHJpY2h0LS0tLS0NCj5Wb246IEhlbnJ5IFNhcHV0cmEgW21haWx0 bzpoZW5yeS5zYXB1dHJhQGdtYWlsLmNvbV0NCj5HZXNlbmRldDogRnJlaXRhZywgMTMuIEp1bGkg MjAxMiAwNzoxNw0KPkFuOiBkZXZAc2hpbmRpZy5hcGFjaGUub3JnDQo+QmV0cmVmZjogUmU6IFNo aW5kaWcgbmVvNGogYmFja2VuZA0KPg0KPkhpLA0KPg0KPlRoYW5rcyBmb3IgdGhlIGludGVyZXN0 IGF0IEFwYWNoZSBTaGluZGlnIGFuZCBSYXZlIHByb2plY3RzLg0KPg0KPkxldCBtZSB0cnkgdG8g aGVscCBhbnN3ZXJpbmcgc29tZSBjb25jZXJucyBhbmQgcXVlc3Rpb25zIHlvdSBoYXZlIGFuZA0K Pm1heWJlIG90aGVyIHBlb3BsZSBpbiB0aGUgY29tbXVuaXR5IGNvdWxkIGNoaW1lIGluLg0KPg0K Pkxvb2tzIGxpa2UgQXBhY2hlIFJhdmUgcHJvdmlkZXMgbW9kZWwgZGF0YWJhc2UgYWJzdHJhY3Rp b24gdGhhdCBhbGxvdyBwbHVnDQo+YW5kIHBsYXkgdG8gcmVsYXRpb25hbCBkYXRhYmFzZS4NCj4N Cj5UaGUgU2hpbmRpZydzIEpQQSBpbXBsZW1lbnRhdGlvbiBpcyBqdXN0IGZvciBzYW1wbGUvZGVt byBwdXJwb3NlLiBUaGUgb25seQ0KPmltcGxlbWVudGF0aW9uIG9mIHRoZSBPcGVuU29jaWFsIG1v ZGVsIGlzIG9ubHkgUE9KTyBjbGFzc2VzLg0KPkJhY2tpbmcgdGhlIGRhdGEgc3RvcmFnZSB3aXRo IE5lbzRKIHNvdW5kcyBsaWtlIGF3ZXNvbWUgaWRlYSBhbmQgSSBiZWxpZXZlDQo+c2hvdWxkIGJl IG1vcmUgZml0dGluZyBmb3IgdGhlIHNvY2lhbCBsaW5rcyBmb3IgdGhlIE9wZW5Tb2NpYWwgZGF0 YS4NCj4NCj5BcyBmb3IgYWN0aXZpdHlzdHJlYS5tcyBpbXBsZW1lbnRhdGlvbiBpbiBTaGluZGln LCBpdHMgZnVsbHkgaW1wbGVtZW50ZWQNCj5iYXNlZCBvbiB0aGUgSlNPTiAxLjAgZm9yIEphdmFT Y3JpcHQgYW5kIEphdmEgY29tcG9uZW50cy4NCj5TaGluZGlnIGFsc28gc3VwcG9ydCBQSFAgZm9y IHRoZSBzZXJ2ZXIgc2lkZSBidXQgdGhlIGltcGxlbWVudGF0aW9uIGlzIGZhcg0KPmJlaGluZCB0 aGUgSmF2YSBjb3VudGVycGFydC4NCj4NCj5Gb3IgcG9ydGFsIHNvbHV0aW9uIHByb3Bvc2FsLCBJ IHdvdWxkIHJlY29tbWVuZCB1c2luZyBSYXZlIGFzIHRoZSBmcm9udA0KPmVuZCBhbmQgbWFuYWdl bWVudCBtb2R1bGUgYW5kIHJlYmluZCB0aGUgZGF0YSBtb2RlbCB3aXRoIE5lbzRKLg0KPkNvbnRy aWJ1dGluZyBiYWNrIHRvIGVpdGhlciBSYXZlIGFuZCBTaGluZGlnIGlzIHdlbGNvbWVkIGFuZCBl bmNvdXJhZ2VkID0pDQo+DQo+SG9wZSB0aGlzIGhlbHBzLg0KPg0KPkxvb2tpbmcgZm9yd2FyZCBm b3IgY29udHJpYnV0aW9ucyBhbmQgYXdlc29tZSBwcm9qZWN0IHdpdGggeW91IGd1eXMuDQo+DQo+ LSBIZW5yeQ0KPg0KPk9uIFRodSwgSnVsIDEyLCAyMDEyIGF0IDg6MjUgQU0sIFJlbsOpIFBlaW5s IDxyZW5lLnBlaW5sQGhvZi11bml2ZXJzaXR5LmRlPg0KPndyb3RlOg0KPj4gRGVhciBTaGluZGln IGRldmVsb3BlcnMsDQo+Pg0KPj4gSeKAmW0gd29ya2luZyB0b2dldGhlciB3aXRoIG15IGNvbGxl YWd1ZSBGbG9yaWFuIG9uIGEgc3lzdGVtcw0KPj4gaW50ZWdyYXRpb24gcmVzZWFyY2ggcHJvamVj dCB0aGF0IGJyaW5ncyB0b2dldGhlciBhIERNUywgYSBncm91cHdhcmUNCj4+IHN5c3RlbSwgYW4g RVJQIHN5c3RlbSBpbiBhbiBJbnRyYW5ldCBzY2VuYXJpbyBhbmQgYWRkcyBzb2NpYWwgbWVkaWEN Cj4+IGNhcGFiaWxpdGllcyB1bmRlciB0aGUgaG9vZCBvZiBhIGNlbnRyYWwgbGlnaHR3ZWlnaHQg cG9ydGFsIChzZWUNCj4+IHJlcXVpcmVtZW50cyBvdmVydmlldyBhdCB0aGUgZW5kIG9mIHRoZSBl bWFpbCkuDQo+Pg0KPj4NCj4+DQo+PiBGb3IgdGhlIHBvcnRhbCwgd2UgYXJlIHBsYW5uaW5nIHRv IHVzZSBTaGluZGlnIGFzIHRoZSBjZW50cmFsDQo+PiBjb21wb25lbnQgYW5kIG1heWJlIFJhdmUg YXMgYSBiYXNpcyAgZm9yIHRoZSBwcmVzZW50YXRpb24gbGF5ZXIuIFNpbmNlDQo+PiBzb2NpYWwg bWVkaWEgZGF0YSBpcyBpbmhlcmVudGx5IGdyYXBoLW9yaWVudGVkLCB3ZSBhcmUgcGxhbm5pbmcg dG8gdXNlDQo+PiBuZW80aiBhcyB0aGUgc3RvcmFnZSBlbmdpbmUgZm9yIFNoaW5kaWcgKGFuZCBt YXliZSBSYXZlIGFzIHdlbGwpLg0KPj4gRmxvcmlhbiBoYXMgYWxyZWFkeSBpbXBsZW1lbnRlZCBh IGRyYWZ0IG9mIHRoaXMgbmVvNGogc3RvcmFnZSBsYXllcg0KPj4gd2hpY2ggd29ya3Mgd2VsbCBm b3Igc29tZSBzYW1wbGUgZGF0YSB0aGF0IHdlIGhhdmUgZ2VuZXJhdGVkIChpZg0KPj4gYW55b25l IGlzIGludGVyZXN0ZWQgd2UgY2FuIHByb3ZpZGUgdGhlIHNhbXBsZSBkYXRhIGFuZCB0aGUgZ2Vu ZXJhdG9yDQo+PiBmb3IgaXQpLCBidXQgZHVlIHRvIHNpbXBsaWNpdHkgcmVhc29ucyBhbmQgdG8g YXZvaWQgYWRkaXRpb25hbA0KPj4gY29udmVyc2lvbiBvcGVyYXRpb25zIGluIGJldHdlZW4gdGhl IHN0b3JhZ2UgbGF5ZXIgaXMgY3VycmVudGx5IG5vdA0KPj4gdXNpbmcgSlBBLCBidXQgZGlyZWN0 bHkgd3JpdGluZyB0aGUgb2JqZWN0cyB0byB0aGUgZGF0YWJhc2UgKHJlcGxhY2luZw0KPmUuZy4g Ym90aCBQZXJzb25JbXBsIGFuZCBQZXJzb25EQikuDQo+Pg0KPj4NCj4+DQo+PiBMYXRlbHksIHdl IGhhdmUgZGlzY292ZXJlZCBSYXZlIGFuZCBmb3VuZCBvdXQgdGhhdCBkZXNwaXRlIGl0cyBjbG9z ZQ0KPj4gaW50ZWdyYXRpb24gd2l0aCBTaGluZGlnIGl0IHVzZXMgaXRzIG93biBkYXRhYmFzZSBh YnN0cmFjdGlvbiBhbmQNCj4+IHBhcnRseSBjb21wZXRpbmcgaW1wbGVtZW50YXRpb25zIGZvciBj bGFzc2VzIHRoYXQgYXJlIGFscmVhZHkgcHJlc2VudCBpbg0KPlNoaW5kaWcuDQo+PiBGb3IgZXhh bXBsZSB0aGVyZSBpcyByYXZlLnBvcnRhbC5tb2RlbC5QZXJzb24gd2hpY2ggdXNlcyBKUEEgdG8g c3RvcmUNCj4+IGEgKGluY29tcGxldGUgY29tcGFyZWQgdG8gT3BlblNvY2lhbCAyLjAgc3BlY3Mp IHBlcnNvbiBvYmplY3QgaW4gdGhlDQo+PiBkYXRhYmFzZSBhbmQgdGhlcmUgaXMgc2hpbmRpZy5z b2NpYWwub3BlbnNvY2lhbC5qcGEuUGVyc29uREIgd2hpY2gNCj4+IGRvZXMgdGhlIHNhbWUsIGJ1 dCBzZWVtcyBsaWtlIGEgY29tcGxldGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGZpZWxkcw0KPj4g ZGVmaW5lZCBpbiBPcGVuU29jaWFsIDIuMC4NCj4+DQo+Pg0KPj4NCj4+IE15IGdvYWwgaXMgdG8g YmV0dGVyIHVuZGVyc3RhbmQgdGhlIGRlY2lzaW9ucyBiZWhpbmQgdGhlIGN1cnJlbnQNCj4+IGlt cGxlbWVudGF0aW9uIG9mIGJvdGggU2hpbmRpZyBhbmQgUmF2ZSAoSeKAmXZlIHBvc3RlZCBhIHNp bWlsYXINCj4+IHF1ZXN0aW9uIG9uIHRoZSBSYXZlIG1haWxpbmcgbGlzdCkgaW4gb3JkZXIgdG8g ZmluZCBhIHNvbHV0aW9uIGZvciBvdXINCj4+IHByb2plY3QgdGhhdCBsZXRzIHRoZSBBcGFjaGUg Y29tbXVuaXR5IGJlbmVmaXQgYXMgbXVjaCBhcyBwb3NzaWJsZQ0KPj4gZnJvbSBvdXIgZWZmb3J0 cywgd2l0aG91dCBidXJkZW5pbmcgb3VyIHByb2plY3QgdG9vIG11Y2ggd2l0aA0KPm5vbi1wcm9q ZWN0LXNwZWNpZmljIHJlcXVpcmVtZW50cy4NCj4+DQo+Pg0KPj4NCj4+IFRoZSBvcHRpb25zIHdl IGhhdmUgKGZyb20gbXkgcGVyc3BlY3RpdmUpIGFyZSBhcyBmb2xsb3dzDQo+Pg0KPj4gMSkgICAg ICBLaW5kIG9mIGZvcmtpbmcgdGhlIFNoaW5kaWcgcHJvamVjdCBhbmQgdXNpbmcgb3VyIG93biBu ZW80ag0KPmJhY2tlbmQNCj4+IGFuZCBub3QgdXNpbmcgUmF2ZQ0KPj4NCj4+IDIpICAgICAgR29p bmcgb25lIHN0ZXAgZnVydGhlciBhbmQgaW50ZWdyYXRpbmcgUmF2ZSB3aXRoIG91ciBvd24gbmVv NGoNCj4+IFNoaW5kaWcgYmFja2VuZCBhbmQgZWxpbWluYXRlIHRoZSBkdXBsaWNhdGUgY2xhc3Nl cw0KPj4NCj4+IDMpICAgICAgVHJ5aW5nIHRvIHVzZSBTcHJpbmdEYXRhIEpQQSBhYnN0cmFjdGlv biBsYXllciBmb3IgbmVvNGogYW5kDQo+PiBwcm92aWRpbmcgc29tZSBleHRlbmRlZCBmdW5jdGlv bmFsaXR5IGluIG93biBjbGFzc2VzIChlLmcuIGENCj4+IGZyaWVuZC1vZi1hLWZyaWVuZCBxdWVy eSBjb3VsZCBiZSBpbXBsZW1lbnRlZCB3aXRoIHJlbGF0aW9uYWwgREJzIGFzDQo+PiB3ZWxsLCBi dXQgZG9lc27igJl0IG1ha2UgdG9vIG11Y2ggc2Vuc2UgZHVlIHRvIHBlcmZvcm1hbmNlIHJlYXNv bnMpIGFuZA0KPj4gaG9waW5nIHRoYXQgdGhlIFJhdmUgYW5kIFNoaW5kaWcgY29tbXVuaXR5IGFy ZSBoZWxwaW5nIHVzIHRvIGVsaW1pbmF0ZQ0KPj4gdGhlIGR1cGxpY2F0ZSBpbXBsZW1lbnRhdGlv bnMgb24gSlBBIGxldmVsLg0KPj4NCj4+DQo+Pg0KPj4gQWxsIG9wdGlvbnMgaGF2ZSB0aGVpciBw cm9zIGFuZCBjb25zIGFuZCBJ4oCZZCByZWFsbHkgbGlrZSB0byBoZWFyIHlvdXINCj4+IG9waW5p b24gb24gdGhhdC4gSWYgeW91IGhhdmUgdGhlIGZlZWxpbmcgdGhhdCBvdXIgcHJvamVjdCBpZGVh IGlzIHZlcnkNCj4+IHNwZWNpZmljIGFuZCB5b3UgZG9u4oCZdCBzZWUgYW55IHVzZSBmb3IgdGhl IHJlc3VsdHMgaW4geW91ciBzY2VuYXJpb3MNCj4+IHRoYW4gaXQgbWF5IGJlIGJldHRlciBmb3Ig Ym90aCBzaWRlcyBpZiB3ZSBhcmUgYnVpbGRpbmcgYSBmb3JrLiBPbiB0aGUNCj4+IG90aGVyIGhh bmQsIGlmIHlvdSB0aGluayB0aGF0IHRoZSBwcmluY2lwbGUgaWRlYSBiZWhpbmQgb3VyIHByb2pl Y3QNCj4+IHdvdWxkIGJlIGJlbmVmaWNpYWwgZm9yIHlvdXIgc2NlbmFyaW9zIGFzIHdlbGwsIHdl IHdvdWxkIGJlIGhhcHB5IHRvDQo+d29yayB0b2dldGhlciBvbiB0aGF0Lg0KPj4gV2UgbmVlZCBl LmcuIHNvbWUgb2YgdGhlIG1pc3NpbmcgT3BlblNvY2lhbCAyLjAgZmVhdHVyZXMgbGlrZSBmdWxs DQo+PiBhY3Rpdml0eXN0cmVhLm1zIHN1cHBvcnQgb24gdGhlIGRhdGEgbGF5ZXIsIHdoaWNoIGlz IGN1cnJlbnRseSBub3QNCj4+IGdpdmVuIGluIFNoaW5kaWcgMi41IGJldGEyDQo+PiAoaHR0cHM6 Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TSElORElHLTE1MzYpLCBidXQgd2UgZG8g bm90IHdhbnQNCj50byBpbnRlcmZlcmUgd2l0aCB5b3VyIHJvYWRtYXAgYW5kIHJlbGVhc2UgcGxh bnMuDQo+PiBXZSBhbHNvIGZvdW5kIHNldmVyYWwgY29tbW9uIHNjZW5hcmlvcyB0aGF0IGUuZy4g TVMgU2hhcmVQb2ludCBpcw0KPj4gc3VwcG9ydGluZywgYnV0IHRoYXQgYXJlIG5vdCBmZWFzaWJs ZSB3aXRoIE9wZW5Tb2NpYWwgMi4wDQo+PiBzcGVjaWZpY2F0aW9uIChtYWlubHkgZHVlIHRvIGl0 cyBmb2N1cyBvbiBJbnRlcm5ldCBzY2VuYXJpb3MpLg0KPj4gRXhhbXBsZXMgYXJlOiBVc2VyIGhh cyBjaGVja2VkLW91dCBhIGRvY3VtZW50IGluIGEgRE1TLiBGb3IgdGhpcyBraW5kDQo+PiBvZiBj aGVjay1vdXQgb3BlcmF0aW9uLCB0aGVyZSBpcyBubyBwb3N0IHZlcmIgaW4gdGhlIGFjdGl2aXR5 c3RyZWEubXMNCj4+IHN0YW5kYXJkLiAgV2Ugd291bGQgYmUgaGFwcHkgdG8gYnJpbmcgdGhlc2Ug ZmluZGluZyBpbnRvIHRoZSBvbmdvaW5nDQo+PiBkaXNjdXNzaW9uIGFib3V0IGZ1dHVyZSBPcGVu IFNvY2lhbCB2ZXJzaW9ucy4NCj4+DQo+Pg0KPj4NCj4+IFN1bW1lZCB1cCwgd2Ugd2FudGVkIHRv IGtub3cgaG93IHdlIGNvdWxkIGJlc3QgY29vcGVyYXRlIHdpdGggdGhlDQo+PiBleGlzdGluZyBT aGluZGlnIChhbmQgUmF2ZSkgY29tbXVuaXR5IGluIG9yZGVyIHRvIHF1aWNrbHkgYWNoaWV2ZSBv dXINCj4+IGdvYWxzIGFuZCBsZXQgdGhlIEFwYWNoZSBjb21tdW5pdHkgYmVuZWZpdCB0aGUgbW9z dCBmcm9tIG91ciBlZmZvcnRzLg0KPj4NCj4+IEFueSBzdWdnZXN0aW9ucz8NCj4+DQo+PiBSZWdh cmRzDQo+Pg0KPj4gUmVuw6kNCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+DQo+PiBQcm9m LiBEci4gUmVuw6kgUGVpbmwNCj4+DQo+PiBUZWFjaGluZyBhcmVhOiBhcmNoaXRlY3R1cmUgb2Yg V2ViIGFwcGxpY2F0aW9ucw0KPj4NCj4+IFVuaXZlcnNpdHkgb2YgYXBwbGllZCBTY2llbmNlcyBI b2YNCj4+DQo+PiBBbGZvbnMtR29wcGVsLVBsYXR6IDEsIDk1MDI4IEhvZiwgQmF2YXJpYSwgR2Vy bWFueQ0KPj4NCj4+IFRlbDogKzQ5LTkyODEtNDA5LTQ4MjANCj4+DQo+PiBFbWFpbDogcmVuZS5w ZWlubEBob2YtdW5pdmVyc2l0eS5kZQ0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+IFJl cXVpcmVtZW50cyBmb3IgT3BlblNvY2lhbCBJbnRyYW5ldCBQb3J0YWwNCj4+DQo+Pg0KPj4NCj4+ DQo+PiBQcmVzZW50YXRpb24gbGF5ZXINCj4+DQo+Pg0KPj4gwrcgICAgICAgICBQb3J0YWwgZW50 cnkgcGFnZSB3aXRoIGFkbWluIHByZWRlZmluZWQgZ2FkZ2V0cywgY3VzdG9taXphYmxlDQo+YnkN Cj4+IHVzZXINCj4+IChtb3N0bHkgZXhpc3RpbmcgaW4gUmF2ZSAwLjEyKQ0KPj4NCj4+IMK3ICAg ICAgICAgR2FkZ2V0IGNhdGFsb2cgKGV4aXN0aW5nIGluIFJhdmUgMC4xMikNCj4+DQo+PiDCtyAg ICAgICAgIFVzZXIgcHJvZmlsZSBwYWdlIHdpdGggcGhvdG8sIG5hbWUgYW5kIG90aGVyIGF0dHJp YnV0ZXMuIEFkbWluDQo+PiBjdXN0b21pemFibGUuIEFsbCBvcGVuIHNvY2lhbCBmaWVsZHMgc2hv dWxkIGJlIGF2YWlsYWJsZSBmb3IgZGlzcGxheS4NCj4+IEdhZGdldHMgY2FuIGJlIHVzZWQgdG8g c2hvdyBhZGRpdGlvbmFsIGRhdGEgbGlrZSBhY3Rpdml0eSBzdHJlYW0sDQo+PiBmcmllbmRzIG5l dHdvcmssIGJvb2ttYXJrcy90YWdzLCDigKYgKGJhc2ljIGZ1bmN0aW9uYWxpdHkgYXZhaWxhYmxl IGluDQo+PiBSYXZlIDAuMTIgL3BvcnRhbC9hcHAvcGVyc29uKQ0KPj4NCj4+IMK3ICAgICAgICAg VXNlciBkaXJlY3Rvcnkgd2l0aCBvdmVydmlldyBvZiBleGlzdGluZyB1c2VycyAoaW5jbHVkaW5n DQo+cGFnaW5nDQo+PiBhbmQgc2VhcmNoKQ0KPj4gKG5vdCBwcmVzZW50IGluIFJhdmUgMC4xMiB5 ZXQpDQo+Pg0KPj4gwrcgICAgICAgICBBYmlsaXR5IHRvIGFkZCBmcmllbmRzL2ZvbGxvd2luZyBw ZW9wbGUgdG8g4oCcZnJpZW5kcyBuZXR3b3Jr4oCdDQo+KGUuZy4NCj4+IG9uIHByb2ZpbGUgcGFn ZSkNCj4+IChub3QgcHJlc2VudCBpbiBSYXZlIDAuMTIgeWV0KQ0KPj4NCj4+IMK3ICAgICAgICAg U3VnZ2VzdGlvbiBsaXN0IGZvciBuZXcgZnJpZW5kcyBiYXNlZCBvbiBjb21tb24gZnJpZW5kcywN Cj4+IGludGVyZXN0cywgZXRjLg0KPj4gKG5vdCBwcmVzZW50IGluIFJhdmUgMC4xMiB5ZXQpDQo+ Pg0KPj4gwrcgICAgICAgICBBYmlsaXR5IHRvIHNldCBhIHN0YXR1cyBtZXNzYWdlDQo+PiAoYmFz aWMgZnVuY3Rpb25hbGl0eSBhdmFpbGFibGUgaW4gUmF2ZSAwLjEyKQ0KPj4NCj4+IMK3ICAgICAg ICAgQWJpbGl0eSB0byBzZW5kIGEgcGVyc29uYWwgbWVzc2FnZSB0byBhIGZyaWVuZA0KPj4gKG5v dCBwcmVzZW50IGluIFJhdmUgMC4xMiB5ZXQsIG1heWJlIHBvc3NpYmxlIHdpdGggb25lIG9mIHRo ZSBnYWRnZXRzKQ0KPj4NCj4+DQo+Pg0KPj4NCj4+IExvZ2ljIGxheWVyDQo+Pg0KPj4NCj4+IMK3 ICAgICAgICAgR2FkZ2V0IFJlbmRlcmluZyBBUEkNCj4+IChleGlzdGluZyBpbiBTaGluZGlnIDIu NSBiZXRhMikNCj4+DQo+PiDCtyAgICAgICAgIEF1dGhlbnRpY2F0aW9uIGFnYWluc3QgZXh0ZXJu YWwgaWRlbnRpdHkgYW5kIGFjY2VzcyBtYW5hZ2VtZW50DQo+PiBzeXN0ZW0gKElBTSkgdXNpbmcg T0F1dGggMi4wIGFuZCBTQU1MLg0KPj4gKHNvbWUgcmVmZXJlbmNlcyBzdGF0ZSB0aGF0IEFwYWNo ZSBTaGlybyBpcyBhYmxlIHRvIGRvIHRoYXQsIGJ1dCB3ZQ0KPj4gaGF2ZW7igJl0IHNlZW4gdGhl IGNvZGUgaW1wbGVtZW50aW5nIGl0KQ0KPj4NCj4+IMK3ICAgICAgICAgRXhwb3Npbmcgc29jaWFs IG1lZGlhIGRhdGEgbGlrZSBmcmllbmRzLCBhY3Rpdml0aWVzLCDigKYgYXMNCj5SRVNUZnVsDQo+ PiBXZWIgc2VydmljZXMNCj4+IChhdmFpbGFibGUgaW4gU2hpbmRpZyAyLjUgYmV0YTIpDQo+Pg0K Pj4gwrcgICAgICAgICBFeHBvc2luZyBleHRlbmRlZCBzb2NpYWwgbWVkaWEgZGF0YSBsaWtlIGZy aWVuZCBvZiBhIGZyaWVuZCB0bw0KPj4gcG9ydGFsIGdhZGdldHMgYXMgUkVTVGZ1bCBXZWIgc2Vy dmljZQ0KPj4gKGRyYWZ0IGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSBhdCBpaXN5cykNCj4+DQo+ Pg0KPj4NCj4+DQo+PiBEYXRhIGxheWVyDQo+Pg0KPj4NCj4+IMK3ICAgICAgICAgRnVsbCBzdXBw b3J0IGZvciBhY3Rpdml0eXN0cmVhLm1zIGRhdGEgc3RvcmFnZSBhbmQgcmV0cmlldmFsDQo+YXQN Cj4+IGRhdGEgb2JqZWN0IGxheWVyDQo+PiAoZHJhZnQgaW1wbGVtZW50YXRpb24gYXZhaWxhYmxl IGF0IGlpc3lzLCBidXQgbm90IHdpdGggSlBBIHN1cHBvcnQpDQo+Pg0KPj4gwrcgICAgICAgICBT dG9yaW5nL3JldHJpZXZpbmcgc29jaWFsIG1lZGlhIGRhdGEgbGlrZSBmcmllbmRzLCBhY3Rpdml0 aWVzLA0KPj4gcmF0aW5ncywgYm9va21hcmtzLCB0YWdzLCDigKYgaW4vZnJvbSBhIGdyYXBoIGRh dGFiYXNlIGxpa2UgbmVvNGogKGRyYWZ0DQo+PiBpbXBsZW1lbnRhdGlvbiBhdmFpbGFibGUgYXQg aWlzeXMsIGl0IGhhcyB0byBiZSBkaXNjdXNzZWQsIHdoZXRoZXIgaXQNCj4+IHdvdWxkIGJlIGJl dHRlciB0byB1c2UgU3ByaW5nRGF0YSBKUEEgYWJzdHJhY3Rpb24gaW5zdGVhZCBvZiBkaXJlY3QN Cj4+IG5lbzRqIGFjY2VzcykNCj4+DQo+PiDCtyAgICAgICAgIEludGVncmF0aW5nIFJhdmUgYW5k IFNoaW5kaWcgcGVyc29uIGRhdGENCj4+IChub3QgY2xlYXIgd2h5IFJhdmUgaXMgaGF2aW5nIGl0 cyBvd24gUGVyc29uIGNsYXNzIHdoaWNoIHNlZW1zIGxpa2UgYQ0KPj4gc3Vic2V0IG9mIFNoaW5k aWdzIFBlcnNvbkRCKQ0KPj4NCj4+IMK3ICAgICAgICAgS2VlcGluZyBSYXZlIFVzZXIgYW5kIFBh Z2VVc2VyIGRhdGEgY29uc2lzdGVudCB3aXRoIElBTSBzeXN0ZW0NCj4+DQo+PiDCtyAgICAgICAg IFN0b3JpbmcgUmF2ZSBhdXRob3JpemF0aW9uIGRhdGEgKGdhZGdldCBwZXJtaXNzaW9ucywgdXNl cg0KPj4gcHJlZmVyZW5jZXMsIOKApikgIGluIG5lbzRqDQo+PiAobm90IGF2YWlsYWJsZSB5ZXQp DQo+Pg0KPj4gwrcgICAgICAgICBTdG9yaW5nIFJhdmUgZ2VuZXJhbCB1c2VyIGRhdGEgaW4gbmVv NGouDQo+PiAobm90IGF2YWlsYWJsZSB5ZXQpDQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4NCj4NCg0K