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 0E40B200D50 for ; Mon, 20 Nov 2017 01:01:58 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 0CAC3160C0C; Mon, 20 Nov 2017 00:01:58 +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 0458A160C0B for ; Mon, 20 Nov 2017 01:01:56 +0100 (CET) Received: (qmail 3211 invoked by uid 500); 20 Nov 2017 00:01:56 -0000 Mailing-List: contact dev-help@drill.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@drill.apache.org Delivered-To: mailing list dev@drill.apache.org Received: (qmail 3199 invoked by uid 99); 20 Nov 2017 00:01:55 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 20 Nov 2017 00:01:55 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id CCA101A1569 for ; Mon, 20 Nov 2017 00:01:54 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.022 X-Spam-Level: X-Spam-Status: No, score=-0.022 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=mapr.onmicrosoft.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id 7IAEvmJgacpe for ; Mon, 20 Nov 2017 00:01:52 +0000 (UTC) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0097.outbound.protection.outlook.com [104.47.33.97]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 204E75F569 for ; Mon, 20 Nov 2017 00:01:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mapr.onmicrosoft.com; s=selector1-mapr-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=0qBKcP0r2Rn7Ip5vbxQZHwxA25Zso6YJu7ttv2yUbD0=; b=Wx3UMV1lfCxYO052j/BkSe5t6UQD+wjkN9cbW2r7CO9NrzbKMezj2wdZ+aqqGWWlBIaW3ZFYyXLeYrkj9rVFwEScVU+pG/j+qpEPA14xf9vg2HXuJ0tRn5TbrxoJgrZLWGGfyoJsdemqsShMOxFpc6Y6wMGpihUonOSmIuCIiA8= Received: from CO1PR16MB1095.namprd16.prod.outlook.com (10.166.31.145) by CO1PR16MB1093.namprd16.prod.outlook.com (10.166.31.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.239.5; Mon, 20 Nov 2017 00:01:43 +0000 Received: from CO1PR16MB1095.namprd16.prod.outlook.com ([fe80::2d83:5bd9:4c25:f6ee]) by CO1PR16MB1095.namprd16.prod.outlook.com ([fe80::2d83:5bd9:4c25:f6ee%13]) with mapi id 15.20.0239.009; Mon, 20 Nov 2017 00:01:43 +0000 From: Paul Rogers To: "dev@drill.apache.org" Subject: Re: JSON reader enhancement Thread-Topic: JSON reader enhancement Thread-Index: AQHTX+QqsHVPqsLG90yvKjTrINkB3KMaQHyAgADOMYCAATA0AIAAJtWA Date: Mon, 20 Nov 2017 00:01:42 +0000 Message-ID: References: <41A6F090-2EDF-487A-8553-030852B5A830@mapr.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=progers@mapr.com; x-originating-ip: [73.231.29.89] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;CO1PR16MB1093;6:KUSC78aVddgTiSOOIMYRNgQbpGtFTHmdWKrP2Q9gvLRMnW4DwNPN0SNyLov7tUV3KVR0rOEkr5W9ZRQsSirnG5t84LdgVgIA72RG7BOTxdSA/Hu4gCCUvlA9utBxrNnS0KXaNmDtBlGCI3oD1LtcPRSQ2SQU8qIjP8wH04TO2d8c4jy/nYPB4tznFL0Wmzwv1kP0d0OvS81UjBO/Q3e4S6wxxtG8BloJpdLENYvCqwa43fe87wuC9GlinZvcVTl/6DgP8sfyzjYL90tTAF87P8FJT2SNVlrXGGOUBqYOIW/d0oo+HBe3oqZZB1/kq4BRZYZ5psCWYrdNepDzTG3DkvIACckw8bbGhZjwPgtBm58=;5:L2P9XBZIi0+QKQxY8xOTEM3EujQlLnnyoiuTdqkJNwRrUvFAiZoPBHl38qzfjRHQQwbLDSd53Xg74PhT3Y/kQWWIKYu4Hai0Cb+V1DcJRIUmPJprwdJp8yrJ3+YcuuNEtqi+QBcteD2QX7iWvmtTgOdhzs9hhE5P2PbPdRB7maQ=;24:YF+iypxs+n6WCc+ZwV2ch24H05tx+1RH+w7Z+pAPvV0gWJte7Q+TDcLIgm1okBv32D4OBS4jR94p5kKyMPujDtgs+Fw6FC7vCjH7IWcY7WA=;7:ZM71n9Pa1ToacqHUxz7Yl/Kkw5x/1PxDTbgBDFsqTUYZBofOa91kd6JZ3MHdUich+uystwzW2DY/yeHTGJx/1XgbLfs6cGDaf4FEF1X4K0CO4uub2GI3ge7VLYdRH59NfOuVLWh01WGTQzBJODg6zZQP1m5P4+HYzPryBn467ODAfPVCWqREpyTAva6HyZOqV2Tb7Vez6CZ+gJgTMPROWos7lOnoCzlePfcTmMk0Q575N5gD04UYtsP61XImwBfT x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 2e715d37-2370-40e2-bf3a-08d52fa9e20e x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603258);SRVR:CO1PR16MB1093; x-ms-traffictypediagnostic: CO1PR16MB1093: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(134217032509453)(131327999870524); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3231022)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6041248)(20161123564025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CO1PR16MB1093;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CO1PR16MB1093; x-forefront-prvs: 04976078F0 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(376002)(346002)(199003)(189002)(24454002)(51914003)(53754006)(99286004)(7736002)(53546010)(229853002)(561944003)(7116003)(2900100001)(5660300001)(105586002)(106356001)(25786009)(189998001)(83716003)(6916009)(36756003)(2950100002)(14454004)(93886005)(305945005)(2501003)(6306002)(53936002)(82746002)(316002)(66066001)(966005)(6486002)(6506006)(6512007)(5250100002)(68736007)(33656002)(6436002)(8936002)(86362001)(3480700004)(3846002)(102836003)(2906002)(6116002)(5640700003)(101416001)(8676002)(3660700001)(2351001)(81166006)(478600001)(50986999)(54356999)(6246003)(97736004)(76176999)(3280700002)(1730700003)(81156014);DIR:OUT;SFP:1102;SCL:1;SRVR:CO1PR16MB1093;H:CO1PR16MB1095.namprd16.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; received-spf: None (protection.outlook.com: mapr.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <4BC9AC12DD75684FB9530258393FA7CF@namprd16.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: mapr.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e715d37-2370-40e2-bf3a-08d52fa9e20e X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2017 00:01:42.8263 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 2573c0c8-6f2a-4418-a58a-a742cf6415fb X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR16MB1093 archived-at: Mon, 20 Nov 2017 00:01:58 -0000 SGkgVGVkLA0KDQpUaGFua3MgZm9yIHRoZSBzdWdnZXN0aW9ucy4NCg0KVG8gaGFuZGxlIG5lc3Rl ZCBsaXN0cyBjb3JyZWN0bHksIHdlIG5lZWQgRHJpbGzigJlzIExpc3QgZGF0YSB0eXBlLCB3aGlj aCB1c2VzIERyaWxs4oCZcyBVbmlvbiBkYXRhIHR5cGUuIChUaGUgTGlzdCB0eXBlIGlzIHJlYWxs eSBtb3N0bHkganVzdCBhIHJlcGVhdGVkIFVuaW9uLCBhbmQgc28gbmVlZHMgdW5pb24gc3VwcG9y dC4pIEJ1dCwgdGhlIHVuaW9uIHR5cGUgZGlzYWJsZWQgYnkgZGVmYXVsdC4gVGhlIGNhc2UgSSB3 YXMgdHJ5aW5nIHRvIGhhbmRsZSBpcyB0byBhdm9pZCBhbiBleGNlcHRpb24gd2hlbiB1bmlvbiB0 eXBlIGlzIGRpc2FibGVkLCBidXQgYSAyRCBhcnJheSBhcHBlYXJzLiBZb3UgbWFrZSBhIGdvb2Qg Y2FzZSB0aGF0IHdlIHNob3VsZCBsZWF2ZSB0aGUgZXhpc3RpbmcgYmVoYXZpb3I7IHdoaWNoIEni gJlsbCBkby4NCg0KV2hhdCB5b3Ugc2VlbSB0byBiZSBzYXlpbmcgaXMgdGhhdCB0aGUgVW5pb24g dHlwZSBhbmQgdGhlIExpc3QgdHlwZSBzaG91bGQgYmUgY29tcGxldGVkIGFuZCBlbmFibGVkIGJ5 IGRlZmF1bHQuIFRoZW4gd2UgbmVlZCB0byBhZGQgdGhlIG1pc3NpbmcgZnVuY3Rpb25hbGl0eS4g DQoNCkkgd29uZGVyLCBpbiBhIGFwcGxpY2F0aW9uLCBob3cgd291bGQgYWxsIG9mIHRoaXMgYmUg dXNlZD8gSWYgVGFibGVhdSBpcyB0aGUgcHJpbWFyeSBjbGllbnQsIHRoZW4gZGF0YSBpcyBkZWxp dmVyZWQgdmlhIE9EQkMuIEJ1dCwgT0RCQyB1bmRlcnN0YW5kcyBvbmx5IG9yZGluYXJ5IHJvd3Mg YW5kIGNvbHVtbnM7IG5vdCB0aGUgSlNPTiB0eXBlcy4gV291bGQgeW91IHVzZSBEcmlsbCB0byBj b252ZXJ0IHRoZSBKU09OIHN0cnVjdHVyZXMgaW50byBzaW1wbGUgcm93cz8NCg0KV2hhdCBraW5k cyBvZiB0cmFuc2Zvcm1zIChmdW5jdGlvbnMpIHdvdWxkIGJlIG5lZWRlZCB0byBoYW5kbGUgMkQg b3IgaGlnaGVyIGFycmF5cz8gVG8gaGFuZGxlIGhldGVyb2dlbmVvdXMgYXJyYXlzPyBUbyBoYW5k bGUgbXVsdGlwbGUgbGlzdCBjb2x1bW5zIHdpdGhpbiB0aGUgc2FtZSByZWNvcmQ/IFNvbWUgdGlt ZSBiYWNrIHlvdSB0YWxrZWQgYWJvdXQgYSBjb3JyZWxhdGVkIGZsYXR0ZW4gaW4gd2hpY2ggdHdv IGFycmF5cyBjYW4gYmUgZmxhdHRlbmVkIHNpZGUtYnktc2lkZS4gQW55IG90aGVyIHVzZSBjYXNl cz8NCg0KT3IsIHdvdWxkIHRoZSBKU09OIHN0cnVjdHVyZXMgYmUga2VwdCBpbiB0YWN0LCBhbmQg dGhlIGRhdGEsIHNheSwgZXhwb3J0ZWQgdG8gb3RoZXIgSlNPTiBmaWxlcyB1c2luZyBDVEFTPw0K DQpUaGFua3MsDQoNCi0gUGF1bA0KDQo+IE9uIE5vdiAxOSwgMjAxNywgYXQgMTo0MiBQTSwgVGVk IER1bm5pbmcgPHRlZC5kdW5uaW5nQGdtYWlsLmNvbT4gd3JvdGU6DQo+IA0KPiBJIGRvbid0IHNl ZSB0aGUgdmFsdWUgd2l0aCB0aGlzIHN1Z2dlc3Rpb24uIEl0IGlzbid0IGdvaW5nIHRvIG1ha2Ug dGhpbmdzDQo+IG11Y2ggYmV0dGVyIHNpbmNlIHRoZSB1c2VyIHdpbGwgYmUgdG90YWxseSBzdHVu bmVkIHdoZW4gdGhlIHN0cnVjdHVyZQ0KPiBkb2Vzbid0IGNvbWUgdGhyb3VnaCBhcyBhbiBhcnJh eS4NCj4gDQo+IEEgYmlnZ2VyIGlzc3VlIGlzIHRoZSBmYWN0IHRoYXQgZWxlbWVudHMgb2YgbWFw cyBhcmVuJ3QgbWFya2VkIGNvcnJlY3RseSBhcw0KPiBtaXNzaW5nLiBUaGF0IG1lYW5zIHRoYXQg aWYgSSBoYXZlIHRoZXNlIHR3byByZWNvcmRzOg0KPiANCj4gImEiOnsiZmlyc3QiOiAxLCAic2Vj b25kIjogMn0sIGI6Mw0KPiAiYSI9eyJzZWNvbmQiOjIwLCAidGhpcmQiOjMwfSwgYjo1DQo+IA0K PiBpdCBpcyBuZWFybHkgaW1wb3NzaWJsZSBmb3IgbWUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgImZp cnN0IiBpcyBtaXNzaW5nIGZyb20NCj4gdGhlIHNlY29uZCB2YWx1ZSBvZiAiYSIuIFRoaXMgbWFr ZXMgRHJpbGwgaW1wb3NzaWJsZSB0byB1c2UgZm9yIGxvdHMgb2YNCj4gdmFyaWFudCBzdHJ1Y3R1 cmUgd29yay4gVGhlIHZhbHVlcyB0aGF0IERyaWxsIHByb3ZpZGVzIHdpbGwgaGF2ZSBhbGwgZmll bGRzDQo+IG1hcmtlZCBhcyBwcmVzZW50Lg0KPiANCj4gKGF0IGxlYXN0LCB0aGlzIHdhcyB0cnVl IGF0IG9uZSB0aW1lKS4NCj4gDQo+IA0KPiANCj4gDQo+IA0KPiBPbiBTdW4sIE5vdiAxOSwgMjAx NyBhdCA0OjMzIEFNLCBQYXVsIFJvZ2VycyA8cHJvZ2Vyc0BtYXByLmNvbT4gd3JvdGU6DQo+IA0K Pj4gSGkgQXJpbmEsDQo+PiANCj4+IFRoZSBwcm9wb3NhbCBpcyB0byByZXByZXNlbnQgMkQgYXJy YXlzIGFzIGEgc3RyaW5nICh1c2luZyB0aGUgb3JpZ2luYWwsDQo+PiB1bnBhcnNlZCBKU09OLikg VGhhdCBpcywgZ2l2ZW4gdGhpcyBpbnB1dDoNCj4+IA0KPj4ge2E6IOKAnGZyZWTigJ0sIGI6IFtb MTAsIDIwLCAzMF0sIFsxMSwgMjEsIDMxXV19DQo+PiANCj4+IFRoZSBwYXJzZWQgY29sdW1ucyBh cmU6DQo+PiANCj4+IGEsIGINCj4+IOKAnGZyZWTigJ0sICJbWzEwLCAyMCwgMzBdLCBbMTEsIDIx LCAzMV1d4oCdDQo+PiANCj4+IE5vdGljZSB0aGF0IGNvbHVtbiBiIGlzIGp1c3QgYSBzdHJpbmcu IEl0IGlzIGEgc3RyaW5nIG9mIEpTT04sIHllcywgYnV0DQo+PiBzdGlsbCBqdXN0IGEgc3RyaW5n Lg0KPj4gDQo+PiBTbywgdGhlIHF1ZXN0aW9uIGFib3V0IGt2Z2VuL2ZsYXR0ZW4gZG9lcyBub3Qg YXBwbHkgaGVyZSBzaW5jZSB3ZSBhcmUgbm90DQo+PiBjcmVhdGluZyBhIERyaWxsIGFycmF5Lg0K Pj4gDQo+PiBUaGVyZSBpcyBhIHZlcnkgaW50ZXJlc3RpbmcgZGlzY3Vzc2lvbiB0byBiZSBoYWQg YWJvdXQgaG93IERyaWxsDQo+PiBkb2VzL3Nob3VsZCBoYW5kbGUg4oCcbm9uLXJlbGF0aW9uYWzi gJ0gSlNPTiBzdHJ1Y3R1cmVzLiBCdXQsIGhlcmUsIHRoZQ0KPj4gc3VnZ2VzdGlvbnMgaXMganVz dCBmb3Igb25lIHZlcnkgc2ltcGxlIHNwZWNpYWwgY2FzZS4NCj4+IA0KPj4gVGhhbmtzLA0KPj4g DQo+PiAtIFBhdWwNCj4+IA0KPj4+IE9uIE5vdiAxOCwgMjAxNywgYXQgNzoxNSBBTSwgQXJpbmEg WWVsY2hpeWV2YSA8DQo+PiBhcmluYS55ZWxjaGl5ZXZhQGdtYWlsLmNvbT4gd3JvdGU6DQo+Pj4g DQo+Pj4gSW4gZ2VuZXJhbCBzb3VuZHMgZ29vZC4NCj4+PiBJZiB1c2VyIHdpbGwgYXBwbHkga3Zn ZW4gLyBmbGF0dGVuIG92ZXIgc3VjaCAyLUQgYXJyYXkgY29sdW1ucyByZWFkIGFzDQo+Pj4gc3Ry aW5nLCBoZSB3aWxsIGJlIGFibGUgdG8gbm9ybWFsaXplIGRhdGEgaW4gdGhlIGZvcm1hdCBoZSB3 YW50cz8gUmlnaHQ/DQo+PiBPcg0KPj4+IHdlIG5lZWQgdG8gY29tZSB1cCB3aXRoIG5ldyBmdW5j dGlvbj8NCj4+PiANCj4+PiBLaW5kIHJlZ2FyZHMNCj4+PiBBcmluYQ0KPj4+IA0KPj4+IE9uIEZy aSwgTm92IDE3LCAyMDE3IGF0IDEwOjM5IFBNLCBQYXVsIFJvZ2VycyA8cHJvZ2Vyc0BtYXByLmNv bT4gd3JvdGU6DQo+Pj4gDQo+Pj4+IEhpIEFsbCwNCj4+Pj4gDQo+Pj4+IEnigJlkIGxpa2UgdG8g cHJvcG9zZSBhIG1pbm9yIGVuaGFuY2VtZW50IHRvIHRoZSBKU09OIHJlYWRlciB0byBiZXR0ZXIN Cj4+Pj4gaGFuZGxlIG5vbi1yZWxhdGlvbmFsIEpTT04gc3RydWN0dXJlcy4gKFNlZSBEUklMTC01 OTc0IFsxXS4pDQo+Pj4+IA0KPj4+PiBBcyBiYWNrZ3JvdW5kLCBEcmlsbCBoYW5kbGVzIHNpbXBs ZSB0dXBsZXM6DQo+Pj4+IA0KPj4+PiB7YTogMTAsIGI6IOKAnGZyZWTigJ19DQo+Pj4+IA0KPj4+ PiBEcmlsbCBhbHNvIGhhbmRsZXMgYXJyYXlzOg0KPj4+PiANCj4+Pj4ge25hbWU6IOKAnGZyZWTi gJ0sIGhvYmJpZXM6IFvigJxib3dsaW5n4oCdLCDigJxnb2xm4oCdXX0NCj4+Pj4gDQo+Pj4+IERy aWxsIGV2ZW4gaGFuZGxlcyBhcnJheXMgb2YgdHVwbGVzOg0KPj4+PiANCj4+Pj4ge25hbWU6IOKA nGZyZWTigJ0sIG9yZGVyczogWw0KPj4+PiB7aWQ6IDEwMDEsIGFtb3VudDogMTIuMzR9LA0KPj4+ PiB7aWQ6IDEwMDIsIGFtb3VudDogNTYuNzh9XX0NCj4+Pj4gDQo+Pj4+IFRoZSBhYm92ZSBhcmUg dGVybWVkICJyZWxhdGlvbmFsIiBiZWNhdXNlIHRoZXJlIGlzIGEgc3RyYWlnaHRmb3J3YXJkDQo+ Pj4+IG1hcHBpbmcgdG8vZnJvbSB0YWJsZXMgaW50byB0aGUgYWJvdmUgSlNPTiBzdHJ1Y3R1cmVz Lg0KPj4+PiANCj4+Pj4gVGhpbmdzIGdldCBpbnRlcmVzdGluZyB3aXRoIG5vbi1yZWxhdGlvbmFs IHR5cGVzLCBzdWNoIGFzIDItRCBhcnJheXM6DQo+Pj4+IA0KPj4+PiB7aWQ6IDQsIHNoYXBlOiDi gJxzcXVhcmXigJ0sIHBvaW50czogW1swLCAwXSwgWzAsIDVdLCBbNSwgMF0sIFs1LCA1XV19DQo+ Pj4+IA0KPj4+PiBEcmlsbCBoYXMgdHdvIHNvbHV0aW9uczoNCj4+Pj4gDQo+Pj4+ICogVHVybiBv biB0aGUgZXhwZXJpbWVudGFsIGxpc3QgYW5kIHVuaW9uIHN1cHBvcnQuDQo+Pj4+ICogRW5hYmxl IGFsbC10ZXh0IG1vZGUgdG8gcmVhZCBhbGwgZmllbGRzIGFzIEpTT04gdGV4dC4NCj4+Pj4gDQo+ Pj4+IEhlcmUsIEnigJlkIGxpa2UgdG8gcHJvcG9zZSBhIG1pZGRsZSBncm91bmQ6DQo+Pj4+IA0K Pj4+PiAqIFJlYWQgZmllbGRzIHdpdGggcmVsYXRpb25hbCB0eXBlcyBpbnRvIHZlY3RvcnMuDQo+ Pj4+ICogUmVhZCBub24tcmVsYXRpb25hbCBmaWVsZHMgdXNpbmcgdGV4dCBtb2RlLg0KPj4+PiAN Cj4+Pj4gVGh1cywgdGhlIGZpcnN0IHRocmVlIGV4YW1wbGVzIHdvdWxkIGFsbCByZXN1bHQgaW4g dGhlIEpTT04gZGF0YSBwYXJzZWQNCj4+Pj4gaW50byBEcmlsbCB2ZWN0b3JzLiBCdXQsIHRoZSBm b3VydGgsIG5vbi1yZWxhdGlvbmFsIGV4YW1wbGUgd291bGQNCj4+IHByb2R1Y2UgYQ0KPj4+PiBy b3cgdGhhdCBsb29rcyBsaWtlIHRoaXM6DQo+Pj4+IA0KPj4+PiBpZCwgc2hhcGUsIHBvaW50cw0K Pj4+PiA0LCDigJxzaGFwZeKAnSwg4oCcW1swLCAwXSwgWzAsIDVdLCBbNSwgMF0sIFs1LCA1XV3i gJ0NCj4+Pj4gDQo+Pj4+IEFsdGhvdWdoIERyaWxsIGNhbuKAmXQgcGFyc2UgdGhlIDItRCBhcnJh eSwgRHJpbGwgd2lsbCBwYXNzIHRoZSBhcnJheQ0KPj4gYWxvbmcNCj4+Pj4gdG8gdGhlIGNsaWVu dCwgd2hpY2ggY2FuIHVzZSBpdHMgZmF2b3JpdGUgSlNPTiBwYXJzZXIgdG8gcGFyc2UgdGhlIGFy cmF5DQo+Pj4+IGFuZCBkbyBzb21ldGhpbmcgdXNlZnVsIChsaWtlIGRyYXcgdGhlIHNxdWFyZSBp biB0aGlzIGNhc2UuKQ0KPj4+PiANCj4+Pj4gSW4gcGFydGljdWxhciwgdGhlIHByb3Bvc2FsOg0K Pj4+PiANCj4+Pj4gKiBBcHBseSB0aGlzIGNoYW5nZSBvbmx5IHRvIHRoZSByZXZpc2VkIOKAnGJh dGNoIHNpemUgYXdhcmXigJ0gSlNPTiByZWFkZXIuDQo+Pj4+ICogVXNlIHRoZSBhYm92ZSBwYXJz aW5nIG1vZGVsIGJ5IGRlZmF1bHQuDQo+Pj4+ICogVXNlIHRoZSBleHBlcmltZW50YWwgbGlzdC1h bmQtdW5pb24gc3VwcG9ydCBpZiB0aGUgZXhpc3RpbmcNCj4+Pj4gYGV4ZWMuZW5hYmxlX3VuaW9u X3R5cGVgIHN5c3RlbS9zZXNzaW9uIG9wdGlvbiBpcyBzZXQuDQo+Pj4+IA0KPj4+PiBFeGlzdGlu ZyBxdWVyaWVzIHNob3VsZCDigJxqdXN0IHdvcmsu4oCdIEluIGZhY3QsIG5vdyBKU09OIHdpdGgN Cj4+IG5vbi1yZWxhdGlvbmFsDQo+Pj4+IHR5cGVzIHdpbGwgd29yayDigJxvdXQtb2YtdGhlLWJv eOKAnSB3aXRob3V0IGFsbC10ZXh0IG1vZGUgb3IgdGhlDQo+PiBleHBlcmltZW50YWwNCj4+Pj4g dHlwZXMuDQo+Pj4+IA0KPj4+PiBUaG91Z2h0cz8NCj4+Pj4gDQo+Pj4+IC0gUGF1bA0KPj4+PiAN Cj4+Pj4gWzFdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvRFJJTEwtNTk3 NA0KPj4+PiANCj4+Pj4gDQo+Pj4+IA0KPj4gDQo+PiANCg0K