From general-return-65343-archive-asf-public=cust-asf.ponee.io@incubator.apache.org Sat Aug 18 02:55:16 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id B81B7180627 for ; Sat, 18 Aug 2018 02:55:15 +0200 (CEST) Received: (qmail 52338 invoked by uid 500); 18 Aug 2018 00:55:14 -0000 Mailing-List: contact general-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: general@incubator.apache.org Delivered-To: mailing list general@incubator.apache.org Received: (qmail 52325 invoked by uid 99); 18 Aug 2018 00:55:12 -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; Sat, 18 Aug 2018 00:55:12 +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 E583DC2253 for ; Sat, 18 Aug 2018 00:55:11 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.993 X-Spam-Level: * X-Spam-Status: No, score=1.993 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FROM_EXCESS_BASE64=0.105, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=foxmail.com 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 2BCHYzWJSYA0 for ; Sat, 18 Aug 2018 00:55:09 +0000 (UTC) Received: from smtpbg303.qq.com (smtpbg303.qq.com [184.105.206.26]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 2D4215F124 for ; Sat, 18 Aug 2018 00:55:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1534553706; bh=RnQfe17JR0n9SR0oUrEfmt7NpeAJIv4pyfpXPFNsGiI=; h=In-Reply-To:References:From:To:Subject:Mime-Version:Content-Type:Content-Transfer-Encoding:Date:Message-ID; b=jOcDf22S1f9W1nE7HkpOYkYmhv+/+ZTXvLWYESiUKuh+gz+3FuJvE6/vEEWunx62i AOC1pxZS+iVh5kWsR8KkNJoYO/m2r1gXPNjpEUpIFFQlEcAg2Bi+5FPf4SvUzl3Pgg TKm0PxsEzpOPgyDuh7GOat4FH2cE15GKMMOXACj0= X-QQ-FEAT: iRYpesd3nAczJHoE8DYUch+yaNlY8dhIaTmN8zfkWC8jp/q962jR7BztgQ6BV oomxERUCZDMmlQheGQKifNU8+4KzdpQVAALjcMjCSNeKOwNQXih3RSSJpnPaZev/C5vYWGo Kt8Cai3UQstEkzYjcRVju5biF6UbteqKjwpanjLlRSdmWf0ISNOvPXth3dqGZc6EEgdUU0d 0Q+t5lUwiO0jWGBZAEbxIoYqgjRLjjRGS9v89kxFoXaaTHz7qyEc2+k20nX6dT/7QAucrzF vWWKO4mKJSrmyLxv06NOdvqQDbTwsdkwepaGzrt6uw8Ut/kp9gEy/rhZ0= X-QQ-SSF: 00000000000000F000000000000000Z X-HAS-ATTACH: no X-QQ-BUSINESS-ORIGIN: 2 X-Originating-IP: 59.47.235.143 In-Reply-To: References: X-QQ-STYLE: X-QQ-mid: webmail672t1534553703t72897 From: "=?gb18030?B?zuLqySBTaGVuZyBXdQ==?=" To: "=?gb18030?B?Z2VuZXJhbA==?=" Subject: Re: [PROPOSAL] Zipkin for Apache Incubator Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_5B776E66_09FCDC40_20EBD974" Content-Transfer-Encoding: 8Bit Date: Sat, 18 Aug 2018 08:55:02 +0800 X-Priority: 3 Message-ID: X-QQ-MIME: TCMime 1.0 by Tencent X-Mailer: QQMail 2.x X-QQ-Mailer: QQMail 2.x X-QQ-ReplyHash: 2471625203 X-QQ-SENDSIZE: 520 X-QQ-FName: 4F328F0DFE54413BB2F8887F350514C1 X-QQ-LocalIP: 10.198.131.167 ------=_NextPart_5B776E66_09FCDC40_20EBD974 Content-Type: text/plain; charset="gb18030" Content-Transfer-Encoding: base64 SGkgSm9obiANCg0KDQo+IEluIGFkZGl0aW9uLCBpZiB5b3UncmUgaW50ZXJlc3RlZCBJJ2Qg YmUgaGFwcHkgdG8gaGVscCBvdXQgYXMgYSBtZW50b3IuDQpJJ20gbm90IHN1cmUgaG93IG11 Y2ggdGltZSBJIGNhbiBkZWRpY2F0ZSBidXQgY2FuIGhlbHAgd2l0aCB0aGUgYmFzaWNzLg0K DQpJIGhhdmUgdXBkYXRlZCB0aGUgcHJvcG9zYWwsIGFkZGVkIHlvdSBpbiB0aGUgbWVudG9y IGxpc3QuIFRoYW5rcyBmb3IgaGVscGluZy4NCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0NClNo ZW5nIFd1DQpBcGFjaGUgU2t5V2Fsa2luZyANCg0KDQogDQoNCg0KDQoNCi0tLS0tLS0tLS0t LS0tLS0tLSBPcmlnaW5hbCAtLS0tLS0tLS0tLS0tLS0tLS0NCkZyb206ICAiSm9obiBELiBB bWVudCI8am9obmRhbWVudEBhcGFjaGUub3JnPjsNCkRhdGU6ICBGcmksIEF1ZyAxNywgMjAx OCAwOToxNCBQTQ0KVG86ICAiZ2VuZXJhbCI8Z2VuZXJhbEBpbmN1YmF0b3IuYXBhY2hlLm9y Zz47DQoNClN1YmplY3Q6ICBSZTogW1BST1BPU0FMXSBaaXBraW4gZm9yIEFwYWNoZSBJbmN1 YmF0b3INCg0KDQoNCkhpIEFkcmlhbiwNCg0KRmlyc3QsIHZlcnkgaGFwcHkgdG8gc2VlIHRo aXMgY29tZSBvdmVyIHRvIEFwYWNoZSBhcyBhIHBvdGVudGlhbCBwb2RsaW5nLg0KDQpPbiBG cmksIEF1ZyAxNywgMjAxOCBhdCA1OjMwIEFNIEFkcmlhbiBDb2xlIDxhZHJpYW4uZi5jb2xl QGdtYWlsLmNvbT4gd3JvdGU6DQoNCj4gSSB3b3VsZCBsaWtlIHRvIHByb3Bvc2UgWmlwa2lu IGFzIGFuIEFwYWNoZSBJbmN1YmF0b3IgcHJvamVjdC4NCj4NCj4gVGhlIHRleHQgb2YgdGhl IHByb3Bvc2FsIGNhbiBiZSBmb3VuZCBiZWxvdyBhcyB3ZWxsIGFzIG9uIHRoZSBJbmN1YmF0 b3INCj4gd2lraToNCj4NCj4gaHR0cHM6Ly93aWtpLmFwYWNoZS5vcmcvaW5jdWJhdG9yL1pp cGtpblByb3Bvc2FsDQo+DQo+IEkgYmVsaWV2ZSB3ZSBzaG91bGQgaGF2ZSAzIG1lbnRvcnMu LiBjdXJyZW50bHkgd2UgaGF2ZSAyIChwbHVzIFd1DQo+IFNoZW5nIGFuZCBJIHdobyBhcmUg ZmFtaWxpYXIgYnV0IG5vdCBtZW50b3ItZ3JhZGUgOlApLiBJZiBhbm90aGVyDQo+IHBlcnNv biBjYW4gdm9sdW50ZWVyIHRvIG1lbnRvciB1cywgd291bGQgYmUgc3dlZXQuDQo+DQo+IC1B ZHJpYW4NCj4NCj4gPSBBYnN0cmFjdCA9DQo+IFppcGtpbiBpcyBhIGRpc3RyaWJ1dGVkIHRy YWNpbmcgc3lzdGVtLiBJdCBoZWxwcyBnYXRoZXIgdGltaW5nIGRhdGENCj4gbmVlZGVkIHRv IHRyb3VibGVzaG9vdCBsYXRlbmN5IHByb2JsZW1zIGluIG1pY3Jvc2VydmljZSBhcmNoaXRl Y3R1cmVzLg0KPiBJdCBtYW5hZ2VzIGJvdGggdGhlIGNvbGxlY3Rpb24gYW5kIGxvb2t1cCBv ZiB0aGlzIGRhdGEuIFppcGtpbqGvcw0KPiBkZXNpZ24gaXMgYmFzZWQgb24gdGhlIEdvb2ds ZSBEYXBwZXIgcGFwZXIuDQo+DQo+ID0gUHJvcG9zYWwgPQ0KPiBaaXBraW4gcHJvdmlkZXMg YSBkZWZpbmVkIGRhdGEgbW9kZWwgYW5kIHBheWxvYWQgdHlwZSBmb3IgZGlzdHJpYnV0ZWQN Cj4gdHJhY2UgZGF0YSBjb2xsZWN0aW9uLiBJdCBhbHNvIHByb3ZpZGVzIGFuIFVJIGFuZCBo dHRwIGFwaSBmb3INCj4gcXVlcnlpbmcgdGhlIGRhdGEuIEl0cyBzZXJ2ZXIgaW1wbGVtZW50 cyB0aGlzIGFwaSBhbmQgaW5jbHVkZXMNCj4gYWJzdHJhY3Rpb25zIGZvciBzdG9yYWdlIGFu ZCB0cmFuc3BvcnQgb2YgdHJhY2UgcGF5bG9hZHMuIFRoZQ0KPiBjb21iaW5hdGlvbiBvZiB0 aGVzZSBwYXJ0cyBhdm9pZCBsb2NrLWluIHRvIGEgc3BlY2lmaWMgdHJhY2luZw0KPiBiYWNr ZW5kLiBGb3IgZXhhbXBsZSwgWmlwa2luIGluY2x1ZGVzIGludGVncmF0aW9uIHdpdGggZGlm ZmVyZW50IG9wZW4NCj4gc291cmNlIHN0b3JhZ2UgbWVjaGFuaXNtcyBsaWtlIEFwYWNoZSBD YXNzYW5kcmEgYW5kIEVsYXN0aWNzZWFyY2guIEl0DQo+IGFsc28gaW5jbHVkZXMgYnJpZGdl cyB0byBjb252ZXJ0IGNvbGxlY3RlZCBkYXRhIGFuZCBmb3J3YXJkIGl0IHRvDQo+IHNlcnZp Y2Ugb2ZmZXJpbmdzIHN1Y2ggYXMgQW1hem9uIFgtUmF5IGFuZCBHb29nbGUgU3RhY2tkcml2 ZXIuDQo+IEVjb3N5c3RlbSBvZmZlcmluZyBleHRlbmQgdGhpcyBwb3J0YWJpbGl0eSBmdXJ0 aGVyLg0KPg0KPiBXaGlsZSBwcmltYXJpbHkgZm9jdXNlZCBvbiB0aGUgc3lzdGVtLCBaaXBr aW4gYWxzbyBpbmNsdWRlcyB0cmFjaW5nDQo+IGxpYnJhcmllcyB3aGljaCBhcHBsaWNhdGlv bnMgdXNlIHRvIHJlcG9ydCB0aW1pbmcgaW5mb3JtYXRpb24uDQo+IFppcGtpbidzIGNvcmUg b3JnYW5pemF0aW9uIGluY2x1ZGVzIHRyYWNlciBsaWJyYXJpZXMgd3JpdHRlbiBpbiBKYXZh LA0KPiBKYXZhc2NyaXB0LCBHbywgUEhQIGFuZCBSdWJ5LiBUaGVzZSBsaWJyYXJpZXMgdXNl IHRoZSBmb3JtYXRzDQo+IG1lbnRpb25lZCBhYm92ZSB0byByZXBvcnQgZGF0YSwgYXMgd2Vs bCAiQjMiIHdoaWNoIGlzIGEgaGVhZGVyIGZvcm1hdA0KPiBuZWVkZWQgdG8gc2VuZCB0cmFj ZSBpZGVudGlmaWVycyBhbG9uZyB3aXRoIHByb2R1Y3Rpb24gcmVxdWVzdHMuIE1hbnkNCj4g Wmlwa2luIGxpYnJhcmllcyBjYW4gYWxzbyBzZW5kIGRhdGEgZGlyZWN0bHkgdG8gb3RoZXIg c2VydmljZXMgc3VjaCBhcw0KPiBBbWF6b24gWC1SYXkgYW5kIEdvb2dsZSBTdGFja2RyaXZl ciwgc2tpcHBpbmcgYW55IFppcGtpbg0KPiBpbmZyYXN0cnVjdHVyZS4gVGhlcmUgYXJlIGFs c28gbW9yZSBaaXBraW4gdHJhY2luZyBsaWJyYXJpZXMgb3V0c2lkZQ0KPiB0aGUgY29yZSBv cmdhbml6YXRpb24gdGhhbiBpbnNpZGUgaXQuIFRoaXMgaXMgZHVlIHRvIHRoZSAiT3Blblpp cGtpbiINCj4gY3VsdHVyZSBvZiBwcm9tb3RpbmcgZWNvc3lzdGVtIHdvcmsuDQo+DQo+ID0g QmFja2dyb3VuZCA9DQo+IFppcGtpbiBiZWdhbiBpbiAyMDEyIGF0IFR3aXR0ZXIgZHVyaW5n IGEgdGltZSB0aGV5IHdlcmUgaW52ZXN0aWdhdGluZw0KPiBwZXJmb3JtYW5jZSBwcm9ibGVt cyB1bmRlcmx5aW5nIHRoZSAiZmFpbCB3aGFsZSIgc2VlbiBieSB1c2Vycy4gVGhlDQo+IG5h bWUgWmlwa2luIGlzIGZyb20gdGhlIFR1cmtpc2ggd29yZCBmb3IgaGFycG9vbjogdGhlIGhh cnBvb24gdGhhdA0KPiB3aWxsIGtpbGwgdGhlIGZhaWx1cmVzISBJbmNpZGVudGFsbHksIFpp cGtpbiB3YXMgbm90IHRoZSBmaXJzdCB0cmFjaW5nDQo+IHN5c3RlbSwgaXQgaGFkIHJvb3Rz IGluIGEgZm9ybWVyIHN5c3RlbSBhdCBUd2l0dGVyIG5hbWVkDQo+IEJpZ0Jyb3RoZXJCaXJk LiBJdCBpcyBkdWUgdG8gQmlnQnJvdGhlckJpcmQgdGhhdCB0aGUgZGUtZmFjdG8gdHJhY2lu Zw0KPiBoZWFkZXJzIHdlIHN0aWxsIHVzZSB0b2RheSBpbmNsdWRlIHRoZSBwcmVmaXggIlgt QjMiLg0KPg0KPiBJbiAyMDE1LCBhIGNvbW11bml0eSBvZiB1c2VycyBub3RpY2VkIHRoZSBw cm9qZWN0IHdhcyBub3QgaGVhbHRoeSBpbg0KPiBzbyBmYXIgYXMgaXQgaGFkbid0IHByb2dy ZXNzZWQgYW5kIG9mdGVuIGRpZG4ndCBhY2NlcHQgcHVsbCByZXF1ZXN0cywNCj4gYW5kIHRo ZSBDYXNzYW5kcmEgYmFja2VuZCB3YXMgc3R1Y2sgb24gYW4gdW5tYWludGFpbmVkIGxpYnJh cnkuIEZvcg0KPiBleGFtcGxlLCB0aGUgQXBhY2hlIEluY3ViYXRvciBILVRyYWNlIHByb2pl Y3Qgc3RhcnRlZCBpbiBzb21lIHdheXMgYXMNCj4gYSByZWFjdGlvbiB0byB0aGUgaW5hYmls aXR5IHRvIGN1c3RvbWl6ZSB0aGUgY29kZS4gVGhlIHJvb3QgY2F1c2Ugb2YNCj4gdGhpcyB3 YXMgVHdpdHRlciBtb3ZpbmcgdG8gaW50ZXJuYWwgc3RvcmFnZSAoTWFuaGF0dGFuKSBhbmQg YWxzbyB0aGUNCj4gcHJvamVjdCBub3QgYmVpbmcgbWFuYWdlZCBhcyBhIHByb2R1Y3QuIEJ5 IG1pZCAyMDE1LCB0aGUgY29tbXVuaXR5DQo+IHJlZ3JvdXBlZCBhcyBPcGVuWmlwa2luIGFu ZCB0aGUgY29kZWJhc2UgbW92ZWQgZnJvbSBUd2l0dGVyIHRvIGFuIG9yZw0KPiBhbHNvIG5h bWVkIE9wZW5aaXBraW4uIFRoaXMgbGVkIHRvIGZhc3QgcHJvZ3Jlc3Mgb24gY29uY2VybnMg aW5jbHVkaW5nDQo+IGluaXRpYWxseSBhIHNlcnZlciByZXdyaXRlIGFuZCBEb2NrZXIgYmFz ZWQgZGVwbG95bWVudC4NCj4NCj4gSW4gMjAxOCwgdGhlIHNlY29uZCB2ZXJzaW9uIG9mIHRo ZSBkYXRhIG1vZGVsIGNvbXBsZXRlZCwgYW5kIGFsb25nIHRoZQ0KPiB3YXksIG1hbnkgbmV3 IGxpYnJhcmllcyBiZWNhbWUgc3RhbmRhcmQsIGluY2x1ZGluZyBqYXZhc2NyaXB0LCBnb2xh bmcNCj4gYW5kIFBIUC4gVGhlIGNvbW11bml0eSBpcyBkcmFtYXRpY2FsbHkgbGFyZ2VyIHRo YW4gMjAxNSwgYW5kIFppcGtpbg0KPiByZW1haW5zIHRoZSBtb3N0IHBvcHVsYXIgdHJhY2lu ZyBzeXN0ZW0gZGVzcGl0ZSBoZWF2eSBjb21wZXRpdGlvbi4NCj4NCj4gPSBSYXRpb25hbGUg PQ0KPiBaaXBraW4gaXMgYSBkZS1mYWN0byBkaXN0cmlidXRlZCB0cmFjaW5nIHN5c3RlbSwg d2hpY2ggaXMgbW9yZQ0KPiBpbXBvcnRhbnQgYXMgYXJjaGl0ZWN0dXJlcyBiZWNvbWUgbW9y ZSBmaW5lIGdyYWluZWQgZHVlIHRvIHBvcHVsYXJpdHkNCj4gb2YgbWljcm9zZXJ2aWNlIG9y IGV2ZW4gc2VydmVybGVzcyBhcmNoaXRlY3R1cmVzLiBBcHBsaWNhdGlvbnMNCj4gdHJhbnNp dGlvbiB0byB1c2UgbW9yZSBjb21wbGV4IGNvbW11bmljYXRpb24gaW5jbHVkaW5nIGFzeW5j aHJvbm91cw0KPiBjb2RlIGFuZCBzZXJ2aWNlIG1lc2gsIGluY3JlYXNpbmcgdGhlIG5lZWQg Zm9yIHRvb2xzIHRoYXQgdmlzdWFsaXplDQo+IHRoZSBiZWhhdmlvciBvZiByZXF1ZXN0cyBh cyB0aGV5IG1hcCBhY3Jvc3MgYW4gYXJjaGl0ZWN0dXJlLg0KPg0KPiBaaXBraW4ncyBzZXJ2 ZXIgaXMgZm9jdXNlZCBvbmx5IG9uIGRpc3RyaWJ1dGVkIHRyYWNpbmcuIEl0IGlzIG1lYW50 IHRvDQo+IGJlIHVzZWQgYWxvbmdzaWRlIGV4aXN0aW5nIGxvZ2dpbmcgYW5kIG1ldHJpY3Mg c3lzdGVtcy4gR2VuZXJhbGx5LCB0aGUNCj4gY29tbXVuaXR5IG9wdGltaXplcyBicm93biBm aWVsZCBjb25jZXJucyBzdWNoIGFzIGludGVyb3Agb3ZlciBicmVha2luZw0KPiBjaGFuZ2Vz IHN1Y2ggYXMgZXhwZXJpbWVudGFsIGZlYXR1cmVzLiBUaGUgY29tYmluYXRpb24gb2YgY29k ZSBhbmQNCj4gY29tbXVuaXR5IG1ha2UgWmlwa2luIGEgc2FmZSBhbmQgZWFzaWVyIGNob2lj ZSBmb3IgdmFyaW91cyBzaXRlcyB0bw0KPiBpbnRyb2R1Y2Ugb3IgZ3JvdyB0aGVpciBvYnNl cnZhYmlsaXR5IHByYWN0aWNlLg0KPg0KPiA9IEluaXRpYWwgR29hbHMgPQ0KPiBUaGUgaW5p dGlhbCBnb2FscyBhcmUgdG8gbWF0dXJlIE9wZW5aaXBraW4ncyBjb21tdW5pdHkgcHJvY2Vz cy4gRm9yDQo+IGV4YW1wbGUsIHdoaWxlIE9wZW5aaXBraW4gaGFzIGEgZ29vZCBjb2xsYWJv cmF0aXZlIHByb2Nlc3MsIGl0IGxhY2tzDQo+IGZvcm1hbGl0eSBhcm91bmQgcHJvamVjdCBt YW5hZ2VtZW50IGZ1bmN0aW9ucyBkZWZpbmVkIGluIHRoZSBBcGFjaGUNCj4gU29mdHdhcmUg Rm91bmRhdGlvbiAoQVNGKS4gV2UgYWxzbyBzZWVrIG91dCBoZWxwIHdpdGggYnJhbmQgYWJ1 c2UNCj4gd2hpY2ggaXMgYmVjb21pbmcgY29tbW9uIHByYWN0aWNlIGluIHRoZSBjb21wZXRp dGl2ZSBsYW5kc2NhcGUsIHlldA0KPiBkZW1vdGl2YXRlcyB2b2x1bnRlZXJzLiBUb3dhcmRz IHZvbHVudGVlcnMsIGhlbHAgd2l0aCBvbiBib2FyZGluZw0KPiBzdW1tZXIgb2YgY29kZSBh bmQgZnVuZGluZyBmb3IgdGhvc2Ugd2hvIGNhbm5vdCBhZmZvcmQgdG8gZ2V0IHRvDQo+IGNv bmZlcmVuY2VzIG9uIHRoZWlyIG93biB3b3VsZCBiZSBuaWNlLiBGaW5hbGx5LCB3ZSBvY2Nh c2lvbmFsbHkgaGF2ZQ0KPiBvcmdhbml6YXRpb25zIHdobyBhcmUgY29uc3RyYWluZWQgdG8g b25seSB3b3JrIHdpdGggZm91bmRhdGlvbg0KPiBwcm9qZWN0czogQVNGIGlzIG9mdGVuIG1l bnRpb25lZCwgYW5kIGJlaW5nIGluIHRoZSBBU0YgcmVtb3ZlcyB0aGlzDQo+IGNvbGxhYm9y YXRpb24gcm9hZGJsb2NrLg0KPg0KPiBaaXBraW4gd2lsbCBub3QgbW92ZSBhbGwgZXhpc3Rp bmcgY29kZSBpbnRvIEFwYWNoZS4gSW4gZmFjdCwgbW9zdA0KPiBaaXBraW4gZWNvc3lzdGVt IGV4aXN0cyBvdXRzaWRlIG91ciBvcmchIFRoZSBnb2FsIGlzIHRvIHN0YXJ0IHdpdGggdGhl DQo+IGRhdGEgZm9ybWF0cyBhbmQgc2VydmVyIGNvZGUuIFBvc3NpYmx5IHRoZSBqYXZhIGNs aWVudC1zaWRlIGxpYnJhcmllcw0KPiBjYW4gbW92ZSBpbml0aWFsbHkgYXMgd2VsbCwgZGVw ZW5kaW5nIG9uIGNvbW11bml0eSBmZWVkYmFjay4NCj4NCj4gPSBDdXJyZW50IFN0YXR1cyA9 DQo+ID09IE1lcml0b2NyYWN5ID09DQo+IFppcGtpbiBpcyBhbiBhY3RpdmUgY29tbXVuaXR5 IG9mIGNvbnRyaWJ1dG9ycyB3aG8gYXJlIGVuY291cmFnZWQgdG8NCj4gYmVjb21lIGNvbW1p dHRlcnMuIEEgWmlwa2luIGNvbW1pdHRlciB1bmRlcnN0YW5kcyB0aGUgaW1wb3J0YW5jZSBv Zg0KPiBzZWVraW5nIGNvbW11bml0eSBmZWVkYmFjaywgYW5kIHRoZSBncmF2aXR5IG9mIGJy b3duIGZpZWxkIGNvbmNlcm5zLg0KPiBDb21taXR0ZXJzIGV4cHJlc3MgZGl2ZXJzZSBpbnRl cmVzdCBieSBjb250cmlidXRpbmcgYmV5b25kIHRoZWlyIHNpdGVzDQo+IGltbWVkaWF0ZSBu ZWVkcyBhbmQgYWNrbm93bGVkZ2luZyBmZWF0dXJlcyByZXF1aXJlIGRpdmVyc2UgbmVlZCBi ZWZvcmUNCj4gYmVpbmcgbWVyZ2VkIGludG8gdGhlIGNvcmUgcmVwb3NpdG9yaWVzLiBBIGNh bWFyYWRlcmllIGJldHdlZW4NCj4gY29tbWl0dGVycyBhbmQgbm90IHlldCBjb21taXR0ZXJz IGV4aXN0cyBhbmQgaXMgcmUtaW5mb3JjZWQgd2l0aCBmYWNlDQo+IHRvIGZhY2UgbWVldHVw cyB3aGVyZSBwb3NzaWJsZS4gV2UgZXhwZWN0IHRoaXMgdG8gY29udGludWUgYW5kIGJ1aWxk DQo+IHdpdGggaW5jdWJhdGlvbiBhbmQgaWRlYWxseSBhY2NlcHRhbmNlIGludG8gdGhlIEFw YWNoZSBTb2Z0d2FyZQ0KPiBGb3VuZGF0aW9uIChBU0YpLg0KPg0KPiBaaXBraW4gZW5jb3Vy YWdlcyBpbnZvbHZlbWVudCBmcm9tIGl0cyBjb21tdW5pdHkgbWVtYmVycywgYW5kIHRoZQ0K PiBpc3N1ZXMgYXJlIG9wZW4gYW5kIGF2YWlsYWJsZSB0byBhbnkgZGV2ZWxvcGVycyB3aG8g d2lzaCB0byBjb250cmlidXRlDQo+IHRvIHRoZSBwcm9qZWN0LiBUaGUgWmlwa2luIHRlYW0g Y3VycmVudGx5IHNlZWtzIGhlbHAgYW5kIGFza3MgZm9yDQo+IHN1Z2dlc3Rpb25zIHV0aWxp emluZyB6aXBraW4tdXNlciBhbmQgemlwa2luLWRldiBHb29nbGUgZ3JvdXBzIGFuZA0KPiBH aXR0ZXIgY2hhdCBvbiBodHRwczovL2dpdHRlci5pbS9vcGVuemlwa2luL3ppcGtpbi4gV2hp bGUgYWxsDQo+IGNvbnRyaWJ1dGlvbnMgYXJlIHJldmlld2VkLCBnZW5lcmFsbHkgYSAicnVs ZSBvZiB0aHJlZSIgcG9saWN5IG9uDQo+IGRpdmVyc2UgbmVlZCBtdXN0IGJlIG1ldCBiZWZv cmUgYSBmZWF0dXJlIGlzIGNvbnNpZGVyZWQgc3RhbmRhcmQuDQo+DQo+ID09IENvbW11bml0 eSA9PQ0KPiBaaXBraW4gaGFzIGEgaGlnaGx5IGFjdGl2ZSBhbmQgZ3Jvd2luZyBjb21tdW5p dHkgb2YgdXNlcnMgYW5kDQo+IGRldmVsb3BlcnMuIFRoZSBjb21tdW5pdHkgaXMgY3VycmVu dGx5IGZvc3RlcmVkIG9uIGNoYXQNCj4gaHR0cHM6Ly9naXR0ZXIuaW0vb3BlbnppcGtpbi96 aXBraW4gYW5kIGlzc3VlcyBpbiB0aGVpciByZXNwZWN0aXZlDQo+IEdpdEh1YiByZXBvc2l0 b3JpZXMsIG5vdGFibHkgdGhlIG1haW4gc2VydmVyOg0KPiBodHRwczovL2dpdGh1Yi5jb20v b3BlbnppcGtpbi96aXBraW4NCj4NCj4gVGhlcmUgYXJlIHdlbGwgb3ZlciAxMDAwIHVzZXJz IGluIHRoZSBjaGF0IHJvb20gYW5kIGh1bmRyZWRzIHdobw0KPiBjb250cmlidXRlZCBjb2Rl IHRvIGNvZGUgaW4gdGhlIG1haW4gT3BlblppcGtpbiBHaXRIdWIgb3JnLiBJbnRlcmVzdA0K PiBtZXRyaWNzIGhhdmUgZ3Jvd24gZHJhbWF0aWNhbGx5OiBGb3IgZXhhbXBsZSwgaW4gdGhy ZWUgeWVhcnMgYW5kIGENCj4gbW9udGggZnJvbSB3aGVuIFppcGtpbiBiZWdhbiB1bnRpbCB0 aGUgdGltZSBPcGVuWmlwa2luIGZvcm1lZCwgaXRzDQo+IG1haW4gcmVwb3NpdG9yeSBhY2N1 bXVsYXRlZCAyNDAwIEdpdEh1YiBzdGFycy4gSW4gdGhlIHNhbWUgdGltZSBhZnRlciwNCj4g aXQgYWNjdW11bGF0ZWQgb3ZlciA2NzAwLiBPdGhlciBtZXRyaWNzIHN1Y2ggYXMgYmxvZyBj b3VudCBhbmQNCj4gY29tbXVuaXR5IG1lZXRpbmdzIGhhdmUgc2ltaWxhcmx5IGdvbmUgd2F5 IHVwLiBXZSBleHBlY3QgZnVydGhlcg0KPiBncm93dGggYXMgbW9yZSBsZWFybiBhYm91dCBa aXBraW4gYW5kIGNhbiBlbmdhZ2Ugd2l0aCBaaXBraW4gdGhyb3VnaA0KPiB0aGUgZ3VpZGFu Y2Ugb2YgdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpLg0KPg0KPiA9PSBD b3JlIERldmVsb3BlcnMgPT0NCj4gVGhlIGNvcmUgY29udHJpYnV0b3JzIGFyZSBhIGRpdmVy c2UgZ3JvdXAgY29tcHJpc2VkIG9mIGJvdGgNCj4gdW5hZmZpbGlhdGVkIGRldmVsb3BlcnMg YW5kIHRob3NlIGhhaWxpbmcgZnJvbSBzbWFsbCB0byBsYXJnZQ0KPiBjb21wYW5pZXMuIFRo ZXkgYXJlIHNjYXR0ZXJlZCBnZW9ncmFwaGljYWxseSwgYW5kIHNvbWUgYXJlIGhpZ2hseQ0K PiBleHBlcmllbmNlZCBpbmR1c3RyeSBhcyB3ZWxsIGFzIG9wZW4gc291cmNlIGRldmVsb3Bl cnMuIFRob3VnaCB0aGVpcg0KPiBiYWNrZ3JvdW5kcyBtYXkgYmUgZGl2ZXJzZSwgdGhlIGNv bnRyaWJ1dG9ycyBhcmUgdW5pdGVkIGluIHRoZWlyDQo+IGJlbGllZiBpbiBjb21tdW5pdHkg ZHJpdmVuIHNvZnR3YXJlIGRldmVsb3BtZW50Lg0KPg0KPiBNb3JlIGRldGFpbGVkIGluZm9y bWF0aW9uIG9uIHRoZSBjb3JlIGRldmVsb3BlcnMgYW5kIGNvbnRyaWJ1dG9ycyBpbg0KPiBn ZW5lcmFsIGNhbiBiZSBmb3VuZCB1bmRlciB0aGUgc2VjdGlvbiBvbiBob21vZ2VuZW91cyBk ZXZlbG9wZXJzLg0KPg0KPiA9PSBBbGlnbm1lbnQgPT0NCj4gWmlwa2luIGFkb3B0aW9uIGlz IGdyb3dpbmcsIGFuZCBpdCBpcyBubyBsb25nZXIgZmVhc2libGUgZm9yIGl0IHRvDQo+IHJl bWFpbiBhcyBhbiBpc29sYXRlZCBwcm9qZWN0LiBBcGFjaGUgaXMgZXhwZXJpZW5jZWQgaW4g ZGVhbGluZyB3aXRoDQo+IHNvZnR3YXJlIHRoYXQgaXMgdmVyeSB3aWRlbHkgYWNjZXB0ZWQg YW5kIGhhcyBhIGdyb3dpbmcgYXVkaWVuY2UuIFRoZQ0KPiBwcm9wb3NlcnMgYmVsaWV2ZSB0 aGF0IHRoZSBaaXBraW4gdGVhbSBjYW4gYmVuZWZpdCBmcm9tIHRoZSBBU0Yncw0KPiBleHBl cmllbmNlIGFuZCBpdHMgYnJvYWQgYXJyYXkgb2YgdXNlcnMgYW5kIGRldmVsb3BlcnMuDQo+ DQo+IFppcGtpbiBzdXBwb3J0cyBzZXZlcmFsIEFwYWNoZSBwcm9qZWN0cyBhbmQgb3B0aW9u cyBleGlzdCBmb3INCj4gaW50ZWdyYXRpb24gd2l0aCBvdGhlcnMuIEFwYWNoZSBDWEYsIEFw YWNoZSBDYW1lbCwgQXBhY2hlIEluY3ViYXRvcg0KPiBTa3lXYWxraW5nIGFuZCBBcGFjaGUg SW5jdWJhdG9yIEhUcmFjZSBhbGwgdXRpbGl6ZSBaaXBraW4gQVBJcyBpbg0KPiB0aGVpciBj b3JlIHJlcG9zaXRvcmllcy4gTWFueSBtb3JlIGRvIHZpYSBjb21tdW5pdHkgZXh0ZW5zaW9u cy4gQXBhY2hlDQo+IE1hdmVuIGlzIHByaW1hcmlseSB1c2UgYnkgWmlwa2luLCBhbmQgY2Fu IGJlIHVzZWQgYnkgcHJvamVjdHMgd2hvDQo+IGJ1aWxkIHVwb24gWmlwa2luIHByb2plY3Rz Lg0KPg0KPiA9PSBLbm93biBSaXNrcyA9PQ0KPiA9PT0gT3JwaGFuZWQgcHJvZHVjdHMgPT09 DQo+IFppcGtpbiBpcyBhbHJlYWR5IGJlaW5nIHV0aWxpemVkIGF0IG11bHRpcGxlIGNvbXBh bmllcyB0aGF0IGFyZQ0KPiBhY3RpdmVseSBwYXJ0aWNpcGF0aW5nIGluIGltcHJvdmluZyB0 aGUgY29kZS4gVGhlIHRocml2aW5nIGNvbW11bml0eQ0KPiBjZW50ZXJlZCBhcm91bmQgWmlw a2luIGhhcyBzZWVuIHN0ZWFkeSBncm93dGgsIGFuZCB0aGUgcHJvamVjdCBpcw0KPiBnYWlu aW5nIHRyYWN0aW9uIHdpdGggZGV2ZWxvcGVycy4gVGhlIHJpc2tzIG9mIHRoZSBjb2RlIGJl aW5nDQo+IGFiYW5kb25lZCBhcmUgbWluaW1hbC4NCj4NCj4gPT09IEluZXhwZXJpZW5jZSB3 aXRoIE9wZW4gU291cmNlID09PQ0KPiBaaXBraW4gcmVib290ZWQgaXRzIGNvbW11bml0eSBp biBKdWx5IDIwMTUgYW5kIGdyb3duIHRoZXJlIGZvciBvdmVyDQo+IHRocmVlIHllYXJzLiBB ZGRpdGlvbmFsbHksIG1hbnkgb2YgdGhlIGNvbW1pdHRlcnMgaGF2ZSBleHRlbnNpdmUNCj4g ZXhwZXJpZW5jZSB3aXRoIG90aGVyIG9wZW4gc291cmNlIHByb2plY3RzLiBaaXBraW4gZm9z dGVycyBhDQo+IGNvbGxhYm9yYXRpdmUgYW5kIGNvbW11bml0eS1kcml2ZW4gZW52aXJvbm1l bnQuDQo+DQo+IEluIHRoZSBpbnRlcmVzdCBvZiBvcGVubHkgc2hhcmluZyB0ZWNobm9sb2d5 IGFuZCBhdHRyYWN0aW5nIG1vcmUNCj4gY29tbXVuaXR5IG1lbWJlcnMsIHNldmVyYWwgb2Yg b3VyIGRldmVsb3BlcnMgYWxzbyByZWd1bGFybHkgYXR0ZW5kDQo+IGNvbmZlcmVuY2VzIGlu IE5vcnRoIEFtZXJpY2EgYW5kIEV1cm9wZSB0byBnaXZlIHRhbGtzIGFib3V0IFppcGtpbi4N Cj4gWmlwa2luIG1lZXR1cHMgYXJlIGFsc28gcGxhbm5lZCBldmVyeSBmZXcgbW9udGhzIGZv ciBkZXZlbG9wZXJzIGFuZA0KPiBjb21tdW5pdHkgbWVtYmVycyB0byBjb21lIHRvZ2V0aGVy IGluIHBlcnNvbiBhbmQgZGlzY3VzcyBpZGVhcy4NCj4NCj4gPT09IEhvbW9nZW5vdXMgRGV2 ZWxvcGVycyA9PT0NCj4gQXQgdGhlIHRpbWUgb2YgdGhlIHdyaXRpbmcsIE9wZW5aaXBraW4n cyBjb3JlIDEyIGRldmVsb3BlcnMgYWxsIHdvcmsNCj4gYXQgZGlmZmVyZW50IGNvbXBhbmll cyBhcm91bmQgdGhlIGdsb2JlLiBNb3N0IG9wZXJhdGUgdGhlaXIgb3duDQo+IHRyYWNpbmcg c2l0ZXMsIGJ1dCBzb21lIG5vIGxvbmdlciBvcGVyYXRlIHNpdGVzIGF0IGFsbDogc3RheWlu ZyBmb3INCj4gdGhlIGNvbW11bml0eSB3ZSd2ZSBidWlsdC4gT3VyIEFTRiBjaGFtcGlvbiwg TWljayBTZW1iIFdldmVyLCBpcyBib3RoDQo+IGEgY29tbWl0dGVyIGFuZCBhbiBleHBlcmll bmNlZCBBU0YgbWVtYmVyLg0KPg0KPiBUaGUgWmlwa2luIGRldmVsb3BlcnMgdGhyaXZlIHVw b24gdGhlIGRpdmVyc2l0eSBvZiB0aGUgY29tbXVuaXR5LiBUaGUNCj4gWmlwa2luIGdpdHRl ciBjaGFubmVsIGlzIGFsd2F5cyBhY3RpdmUsIGFuZCB0aGUgZGV2ZWxvcGVycyBvZnRlbg0K PiBjb2xsYWJvcmF0ZSBvbiBmaXhlcyBhbmQgY2hhbmdlcyBpbiB0aGUgY29kZS4gVGhleSBh cmUgYWx3YXlzIGhhcHB5IHRvDQo+IGFuc3dlciB1c2VycycgcXVlc3Rpb25zIGFzIHdlbGwu DQo+DQo+IFppcGtpbiBpcyBpbnRlcmVzdGVkIGluIGNvbnRpbnVpbmcgdG8gZXhwYW5kIGFu ZCBzdHJlbmd0aGVuIGl0cw0KPiBuZXR3b3JrIG9mIGRldmVsb3BlcnMgYW5kIGNvbW11bml0 eSBtZW1iZXJzIHRocm91Z2ggdGhlIEFTRi4NCj4NCj4gPT09IFJlbGlhbmNlIG9uIFNhbGFy aWVkIERldmVsb3BlcnMgPT09DQo+IFppcGtpbiBoYXMgb25lIGZ1bGwgdGltZSBzYWxhcmll ZCBkZXZlbG9wZXIsIEFkcmlhbiBDb2xlLiBUaG91Z2ggc29tZQ0KPiBvZiB0aGUgZGV2ZWxv cGVycyBhcmUgcGFpZCBieSB0aGVpciBlbXBsb3llciB0byBjb250cmlidXRlIHRvIFppcGtp biwNCj4gbWFueSBaaXBraW4gZGV2ZWxvcGVycyBjb250cmlidXRlIGNvZGUgYW5kIGRvY3Vt ZW50YXRpb24gb24gdGhlaXIgb3duDQo+IHRpbWUgYW5kIGhhdmUgZG9uZSBzbyBmb3IgYSBs ZW5ndGh5IHBlcmlvZC4gR2l2ZW4gdGhlIGN1cnJlbnQgc3RyZWFtDQo+IG9mIGRldmVsb3Bt ZW50IHJlcXVlc3RzIGFuZCB0aGUgY29tbWl0dGVycycgc2Vuc2Ugb2Ygb3duZXJzaGlwIG9m IHRoZQ0KPiBaaXBraW4gY29kZSwgdGhpcyBhcnJhbmdlbWVudCBpcyBleHBlY3RlZCB0byBj b250aW51ZSB3aXRoIFppcGtpbicNCj4gaW5kdWN0aW9uIGludG8gdGhlIEFTRi4NCj4NCj4g PT09IFJlbGF0aW9uc2hpcHMgd2l0aCBPdGhlciBBcGFjaGUgUHJvZHVjdHMgPT09DQo+IFpp cGtpbiwgQXBhY2hlIEluY3ViYXRvciBTa3l3YWxraW5nIGFuZCBBcGFjaGUgSW5jdWJhdG9y IEhUcmFjZQ0KPiBhZGRyZXNzIHNpbWlsaWFyIHVzZSBjYXNlcy4gTW9zdCBzaW1pbGFyaXRp ZXMgYXJlIGJldHdlZW4gWmlwa2luIGFuZA0KPiBIVHJhY2U6IFppcGtpbiBob3BlcyB0byBo ZWxwIHNlcnZlIHRoZSBjb21tdW5pdHkgZm9ybWVybHkgc2VydmVkIGJ5DQo+IEhUcmFjZSwg YnV0IHVuZGVyc3RhbmRzIHRoZSBkYXRhIHNlcnZpY2VzIGZvY3VzIG9mIEhUcmFjZSBtYXkg cmVxdWlyZQ0KPiBkaWZmZXJlbnQgdG9vbGluZy4gU2t5V2Fsa2luZyBhZGRyZXNzZXMgbW9y ZSBmZWF0dXJlIHN1cmZhY2UgdGhhbg0KPiBaaXBraW4uIEZvciBleGFtcGxlLCBtZXRyaWNz IGNvbGxlY3Rpb24gaXMgbm90IGEgZ29hbCBvZiBaaXBraW4sIHlldA0KPiBpdCBpcyBhIGdv YWwgb2YgU2t5V2Fsa2luZy4gU2t5V2Fsa2luZyBhY2NlcHRzIFppcGtpbiBmb3JtYXRzIGFu ZCBjYW4NCj4gYmUgdXNlZCBhcyBhIHJlcGxhY2VtZW50IHNlcnZlci4gU2t5V2Fsa2luZyBQ UE1DIG1lbWJlciwgU2hlbmcgV3UsIGhhcw0KPiBiZWVuIGEgcm91dGluZSBtZW1iZXIgb2Yg Wmlwa2luIGRlc2lnbiBkaXNjdXNzaW9ucyBhbmQgaGFzIG9mZmVyZWQgdG8NCj4gaGVscCBa aXBraW4gdGhyb3VnaCBBU0YgcHJvY2Vzcy4NCj4NCj4gV2hpbGUgWmlwa2luIGRvZXMgbm90 IGRpcmVjdGx5IHJlbHkgdXBvbiBhbnkgQXBhY2hlIHByb2plY3QsIHppcGtpbg0KPiBzdXBw b3J0cyBzZXZlcmFsIEFwYWNoZSBwcm9qZWN0cy4gQXBhY2hlIENYRiwgQXBhY2hlIENhbWVs LCBBcGFjaGUNCj4gSW5jdWJhdG9yIFNreVdhbGtpbmcsIEFwYWNoZSBJbmN1YmF0b3IgRHVi Ym8sIEFwYWNoZSBJbmN1YmF0b3INCj4gU2VydmljZUNvbWIgYW5kIEFwYWNoZSBJbmN1YmF0 b3IgSFRyYWNlIGFsbCB1dGlsaXplIFppcGtpbiBBUElzIGluDQo+IHRoZWlyIGNvcmUgcmVw b3NpdG9yaWVzLiBNYW55IG1vcmUgZG8gdmlhIGNvbW11bml0eSBleHRlbnNpb25zLiBBcGFj aGUNCj4gTWF2ZW4gaXMgcHJpbWFyaWx5IHVzZSBieSBaaXBraW4sIGFuZCBjYW4gYmUgdXNl ZCBieSBwcm9qZWN0cyB3aG8NCj4gYnVpbGQgdXBvbiBaaXBraW4gcHJvamVjdHMuDQo+DQo+ ID09PSBBIEV4Y2Vzc2l2ZSBGYXNjaW5hdGlvbiB3aXRoIHRoZSBBcGFjaGUgQnJhbmQgPT09 DQo+IFppcGtpbiByZWNvZ25pemVzIHRoZSBmb3J0aXR1ZGUgb2YgdGhlIEFwYWNoZSBicmFu ZCwgYnV0IHRoZQ0KPiBtb3RpdmF0aW9uIGZvciBiZWNvbWluZyBhbiBBcGFjaGUgcHJvamVj dCBpcyB0byBzdHJlbmd0aGVuIGFuZCBleHBhbmQNCj4gdGhlIFppcGtpbiBjb21tdW5pdHkg YW5kIGl0cyB1c2VyIGJhc2UuIFdoaWxlIHRoZSBaaXBraW4gY29tbXVuaXR5IGhhcw0KPiBz ZWVuIHN0ZWFkeSBncm93dGggb3ZlciB0aGUgcGFzdCBzZXZlcmFsIHllYXJzLCBhc3NvY2lh dGlvbiB3aXRoIHRoZQ0KPiBBU0YgaXMgZXhwZWN0ZWQgdG8gZXhwZWRpdGUgdGhpcyBwYXR0 ZXJuIG9mIGdyb3d0aC4gRGV2ZWxvcG1lbnQgaXMNCj4gZXhwZWN0ZWQgdG8gY29udGludWUg b24gWmlwa2luIHVuZGVyIHRoZSBBcGFjaGUgbGljZW5zZSB3aGV0aGVyIG9yIG5vdA0KPiBp dCBpcyBzdXBwb3J0ZWQgYnkgdGhlIEFTRi4NCj4NCj4gPT0gRG9jdW1lbnRhdGlvbiA9PQ0K PiBUaGUgWmlwa2luIHByb2plY3QgZG9jdW1lbnRhdGlvbiBpcyBwdWJsaWNseSBhdmFpbGFi bGUgYXQgdGhlIGZvbGxvd2luZw0KPiBzaXRlczoNCj4NCj4gICAqIGh0dHBzOi8vemlwa2lu LmlvOiBwcm9qZWN0IG92ZXJ2aWV3DQo+ICAgKiBodHRwOi8vemlwa2luLmlvL3ppcGtpbi1h cGkvIy86IHN3YWdnZXIgc3BlY2lmaWNhdGlvbg0KPiAgICogaHR0cHM6Ly9naXRodWIuY29t L29wZW56aXBraW4vYjMtcHJvcGFnYXRpb246IGhlYWRlciBmb3JtYXRzDQo+ICAgKiBodHRw czovL3ppcGtpbi5pby96aXBraW4vOiBKYXZhZG9jcyBmb3IgdGhlIFppcGtpbiBzZXJ2ZXIN Cj4NCj4gPT0gSW5pdGlhbCBTb3VyY2UgPT0NCj4gVGhlIGluaXRpYWwgc291cmNlIGlzIGxv Y2F0ZWQgb24gR2l0SHViIGluIHRoZSBmb2xsb3dpbmcgcmVwb3NpdG9yaWVzOg0KPg0KPiAg ICogZ2l0Oi8vZ2l0aHViLmNvbS9PcGVuWmlwa2luL3ppcGtpbi5naXQNCj4gICAqIGdpdDov L2dpdGh1Yi5jb20vT3BlblppcGtpbi96aXBraW4tZGVwZW5kZW5jaWVzLmdpdA0KPiAgICog Z2l0Oi8vZ2l0aHViLmNvbS9PcGVuWmlwa2luL3ppcGtpbi1hcGkuZ2l0DQo+ICAgKiBnaXQ6 Ly9naXRodWIuY29tL09wZW5aaXBraW4vYjMtcHJvcGFnYXRpb24uZ2l0DQo+ICAgKiBnaXQ6 Ly9naXRodWIuY29tL09wZW5aaXBraW4vZG9ja2VyLXppcGtpbi5naXQNCj4gICAqIGdpdDov L2dpdGh1Yi5jb20vT3BlblppcGtpbi9kb2NrZXItemlwa2luLWRlcGVuZGVuY2llcy5naXQN Cj4gICAqIGdpdDovL2dpdGh1Yi5jb20vb3BlbnppcGtpbi96aXBraW4tcmVwb3J0ZXItamF2 YQ0KPiAgICogZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuemlwa2luL2JyYXZlDQo+ICAgKiBnaXQ6 Ly9naXRodWIuY29tL29wZW56aXBraW4vemlwa2luLWF3cw0KPiAgICogZ2l0Oi8vZ2l0aHVi LmNvbS9vcGVuemlwa2luL2RvY2tlci16aXBraW4tYXdzDQo+ICAgKiBnaXQ6Ly9naXRodWIu Y29tL29wZW56aXBraW4vemlwa2luLWF6dXJlDQo+ICAgKiBnaXQ6Ly9naXRodWIuY29tL29w ZW56aXBraW4vZG9ja2VyLXppcGtpbi1henVyZQ0KPiAgICogZ2l0Oi8vZ2l0aHViLmNvbS9v cGVuemlwa2luL3ppcGtpbi1nY3ANCj4gICAqIGdpdDovL2dpdGh1Yi5jb20vb3BlbnppcGtp bi9kb2NrZXItemlwa2luLWdjcA0KPiAgICogZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuemlwa2lu L2JyYXZlLWNhc3NhbmRyYQ0KPiAgICogZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuemlwa2luL2Rv Y2tlci1qcmUtZnVsbA0KPiAgICogZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuemlwa2luL2JyYXZl LWthcmFmDQo+DQo+IERlcGVuZGluZyBvbiBjb21tdW5pdHkgcHJvZ3Jlc3MsIG90aGVyIHJl cG9zaXRvcmllcyBtYXkgYmUgbW92ZWQgYXMgd2VsbA0KPg0KPiA9PSBTb3VyY2UgYW5kIElu dGVsbGVjdHVhbCBQcm9wZXJ0eSBTdWJtaXNzaW9uIFBsYW4gPT0NCj4gWmlwa2luJ3MgaW5p dGlhbCBzb3VyY2UgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJz aW9uDQo+IDIuMC4gaHR0cHM6Ly9naXRodWIuY29tL29wZW56aXBraW4vemlwa2luL2Jsb2Iv bWFzdGVyL0xJQ0VOU0UNCj4NCj4gQWxsIHNvdXJjZSBjb2RlIGlzIGNvcHlyaWdodGVkIHRv ICdUaGUgT3BlblppcGtpbiBBdXRob3JzJywgdG8gd2hpY2gNCj4gdGhlIGV4aXN0aW5nIGNv cmUgY29tbXVuaXR5KG1lbWJlcnMgbGlzdCBpbiBJbml0aWFsIENvbW1pdHRlcnMpIGhhcw0K PiB0aGUgcmlnaHRzIHRvIHJlLWFzc2lnbiB0byB0aGUgQVNGLg0KPg0KPiA9PSBFeHRlcm5h bCBEZXBlbmRlbmNpZXMgPT0NCj4gVGhpcyBpcyBhIGxpc3Rpbmcgb2YgTWF2ZW4gY29vcmRp bmF0ZXMgZm9yIGFsbCBvZiB0aGUgZXh0ZXJuYWwNCj4gZGVwZW5kZW5jaWVzIFppcGtpbiB1 c2VzLiBBbGwgb2YgdGhlIGRlcGVuZGVuY2llcyBhcmUgaW4gU29uYXR5cGUgYW5kDQo+IHRo ZWlyIGxpY2Vuc2VzIHNob3VsZCBiZSBhY2Nlc3NpYmxlLg0KPg0KPiA9PSBDcnlwdG9ncmFw aHkgPT0NCj4gWmlwa2luIGNvbnRhaW5zIG5vIGNyeXB0b2dyYXBoaWMgYWxnb3JpdGhtcy4N Cj4NCj4gPSBSZXF1aXJlZCBSZXNvdXJjZXMgPQ0KPiA9PSBNYWlsaW5nIExpc3RzID09DQo+ ICAgKiBaaXBraW4tZGV2OiBmb3IgZGV2ZWxvcG1lbnQgZGlzY3Vzc2lvbnMNCj4gICAqIFpp cGtpbi11c2VyOiBmb3IgY29tbXVuaXR5IGRpc2N1c3Npb25zDQo+ICAgKiBaaXBraW4tcHJp dmF0ZTogZm9yIFBQTUMgZGlzY3Vzc2lvbnMNCj4gICAqIFppcGtpbi1jb21taXRzOiBmb3Ig Y29kZSBjaGFuZ2VzDQo+DQoNCkknbGwgcG9pbnQgdGhpcyBvdXQuICBNYW55IHBvZGxpbmdz IHN0YXJ0IHRvIHRoaW5rIG9mIHVzZXIgbGlzdHMuICBTb21lDQpJUE1DIG1lbWJlcnMgcHVz aCBiYWNrLiAgSSBkb24ndCBwZXJzb25hbGx5IGNhcmUsIGJ1dCB5b3UgbWF5IHdhbnQgdG8N CmNvbnNpZGVyIGhvbGRpbmcgb2ZmIG9uIG1vdmluZyB5b3VyIHVzZXIgZGlzY3Vzc2lvbnMg b3ZlciB1bnRpbCB5b3UncmUNCmZpcm1seSBncm91bmRlZCBpbiB0aGUgQVNGLg0KDQoNCj4N Cj4gPT0gR2l0IFJlcG9zaXRvcmllcyA9PQ0KPiBUaGUgWmlwa2luIHRlYW0gaXMgZXhwZXJp ZW5jZWQgaW4gZ2l0IGFuZCByZXF1ZXN0cyB0byB0cmFuc2ZlciBHaXRIdWINCj4gcmVwb3Np dG9yaWVzKGxpc3QgaW4gSW5pdGlhbCBTb3VyY2UpIHRvIEFwYWNoZS4NCj4NCg0KSSdtIGFz c3VtaW5nIHlvdSB3b3VsZCBsaWtlIHRvIGNvbnRpbnVlIHRvIHVzZSBnaXRodWIgYXMgeW91 ciBtYWluDQpyZXBvc2l0b3JpZXMgdGhlbj8NCg0KDQo+DQo+ID09IElzc3VlIFRyYWNraW5n ID09DQo+IFRoZSBjb21tdW5pdHkgd291bGQgbGlrZSB0byBjb250aW51ZSB1c2luZyBHaXRI dWIgSXNzdWVzLg0KPg0KPiA9IEluaXRpYWwgQ29tbWl0dGVycyA9DQo+ICAgKiBab2x0qKJu IE5hZ3kNCj4gICAqIEFkcmlhbiBDb2xlLCBQaXZvdGFsDQo+ICAgKiBCYXMgdmFuIEJlZWsN Cj4gICAqIEJyaWFuIERldmlucw0KPiAgICogRWlyaWsgU2xldHRlYmVyZw0KPiAgICogSmVh bm5lcmV0IFBpZXJyZS1IdWd1ZXMNCj4gICAqIEpvcmRpIFBvbG8gQ2FycmVzDQo+ICAgKiBK b3OopiBDYXJsb3MgQ2ioonZleg0KPiAgICogS3Jpc3RvZiBBZHJpYWVuc3NlbnMNCj4gICAq IExhbmNlIExpbmRlcg0KPiAgICogTWljayBTZW1iIFdldmVyLA0KPiAgICogVG9tbXkgTHVk d2lnDQo+DQo+ID0gQ2hhbXBpb24gPQ0KPiAgKiBNaWNoYWVsIFNlbWIgV2V2ZXIsIG1ja0Bh cGFjaGUub3JnDQo+DQo+ID0gTWVudG9ycyA9DQo+ICAqIE1pY2hhZWwgU2VtYiBXZXZlciwg bWNrQGFwYWNoZS5vcmcNCj4gICogQW5kcml5IFJlZGtvLCByZXRhQGFwYWNoZS5vcmcNCg0K DQpBbmRyaXkgaXMgbm90IHByZXNlbnRseSBvbiB0aGUgSVBNQy4gIEJ1dCB0aGF0IGNhbiBi ZSBmaXhlZCB2ZXJ5IHF1aWNrbHkgYXMNCmhlJ3MgYSBmb3VuZGF0aW9uIG1lbWJlci4NCg0K SW4gYWRkaXRpb24sIGlmIHlvdSdyZSBpbnRlcmVzdGVkIEknZCBiZSBoYXBweSB0byBoZWxw IG91dCBhcyBhIG1lbnRvci4NCkknbSBub3Qgc3VyZSBob3cgbXVjaCB0aW1lIEkgY2FuIGRl ZGljYXRlIGJ1dCBjYW4gaGVscCB3aXRoIHRoZSBiYXNpY3MuDQoNCg0KPg0KPg0KPiA9IFNw b25zb3JpbmcgRW50aXR5ID0NCj4gV2UgYXJlIHJlcXVlc3RpbmcgdGhlIEFwYWNoZSBJbmN1 YmF0b3IgdG8gc3BvbnNvciB0aGlzIHByb2plY3QuDQo+DQo+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBnZW5lcmFsLXVuc3Vic2NyaWJlQGluY3ViYXRv ci5hcGFjaGUub3JnDQo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGdlbmVy YWwtaGVscEBpbmN1YmF0b3IuYXBhY2hlLm9yZw0KPg0KPg== ------=_NextPart_5B776E66_09FCDC40_20EBD974--