Return-Path: Delivered-To: apmail-cocoon-dev-archive@www.apache.org Received: (qmail 29064 invoked from network); 13 May 2005 09:34:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 13 May 2005 09:34:31 -0000 Received: (qmail 86783 invoked by uid 500); 13 May 2005 09:38:35 -0000 Delivered-To: apmail-cocoon-dev-archive@cocoon.apache.org Received: (qmail 86752 invoked by uid 500); 13 May 2005 09:38:34 -0000 Mailing-List: contact dev-help@cocoon.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@cocoon.apache.org List-Id: Delivered-To: mailing list dev@cocoon.apache.org Received: (qmail 86719 invoked by uid 99); 13 May 2005 09:38:34 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Received: from ip3.amplexor.com (HELO drdre.amplexor.com) (194.78.60.66) by apache.org (qpsmtpd/0.28) with ESMTP; Fri, 13 May 2005 02:38:34 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0 Content-class: urn:content-classes:message Subject: Re: User-Agent in Command-line interface MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Fri, 13 May 2005 11:34:06 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Re: User-Agent in Command-line interface Thread-Index: AcVXnYLiNERTj3hJQSqmnyCxsT1yXQAAO82g From: "James Bates" To: X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N VXBheWF2aXJhIHdyb3RlOg0KDQo+IEphbWVzIEJhdGVzIHdyb3RlOg0KPiA+IFRoZSBDb2Nvb24g Y29tbWFuZCBsaW5lIGludGVyZmFjZSBwcm92aWRlcyBhIHN3aXRjaCBmb3Igc2ltdWxhdGluZyAN Cj4gPiB0aGUgQ29jb29uIFVzZXItQWdlbnQgaGVhZGVyIHRoYXQgd291bGQgYmUgc2VudCBieSBh IGJyb3dzZXIuIFRoZSANCj4gPiBpZGVhIGJlaW5nIHRoYXQgaXQgY291bGQgYmUgdXNlZCBieSBl LmcuIHRoZSBicm93c2VyIHNlbGVjdG9yIHRvIA0KPiA+IOKAnGRldGVjdOKAnSB0aGF0IGEgcmVx dWVzdCBpcyBjb21pbmcgZnJvbSB0aGUgQ0xJLg0KPiA+IA0KPiA+ICANCj4gPiANCj4gPiBXaGVu IGludmVzdGlnYXRpbmcgaG93ZXZlciwgSSBub3RpY2VkIHRoYXQgdGhlIENvY29vbiBiZWFuICh0 aGUgDQo+ID4gY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZSBDTEkpIGRvZXMgbm90IHBsYWNlIHRo ZSBVc2VyLUFnZW50IGludG8gYSANCj4gPiBIRURBRVIsIGJ1dCBpbnRvIGEgcmVxdWVzdCBQQVJB TUVURVIgaW5zdGVhZCAob2NjdXJzIG9uIGxpbmUgNDA3IG9mIA0KPiA+IENvY29vbldyYXBwZXIu amF2YSwgaW4gbWV0aG9kIHByb2Nlc3NVUkkoKSBpbiBCUkFOQ0hfMl8xX1g7IGxpbmUgNDIxIA0K PiA+IG9mIHRoZSBzYW1lIGZpbGUgaW4gMi4yIHRydW5rKS4NCj4gPiANCj4gPiAgDQo+ID4gDQo+ ID4gSXMgdGhlcmUgYSBwYXJ0aWN1bGFyIHJlYXNvbiBmb3IgdGhpcyBiZWhhdmlvdXI/IFdvdWxk IGl0IGJlIA0KPiA+IGRlc2lyYWJsZSB0byBjaGFuZ2UgdGhlIGJlaGF2aW91ciBzbyB0aGUgVXNl ci1BZ2VudCBpcyBpbmRlZWQgDQo+ID4gc3VibWl0dGVkIGFzIGEgcmVxdWVzdCBIRUFERVIsIHRo dXMgcGVyZmVjdGx5IGVtdWxhdGluZyBhIEhUVFAgY2FsbD8gDQo+ID4gSSBhbSBwZXJmZWN0bHkg d2lsbGluZyB0byBzdWJtaXQgYSBwYXRjaCB0byB0aGF0IGVmZmVjdC4uLg0KPg0KPiBUaGUgQ0xJ L2JlYW4gc2hvdWxkIHdvcmsgZXhhY3RseSB0aGUgc2FtZSBhcyBhIGJyb3dzZXIuIEkgaGF2ZSBz ZWVuIA0KPiB0aGF0IG9uIG9jY2FzaW9ucyBhbmQgd29uZGVyZWQgYWJvdXQgaXQuDQo+DQo+IFdo YXQgeW91IGFyZSBzYXlpbmcgbWFrZXMgc2Vuc2UsIGFuZCBJJ2QgaGFwcGlseSBjb21taXQgYSBw YXRjaCBvZiB5b3Vycy4NCj4NCj4gUmVnYXJkcywgVXBheWF2aXJhDQoNClNvcnJ5IHBlb3BsZTsg aGFkIHNvbWUgdHJvdWJsZSBzdWJzY3JpYmluZyB0byB0aGUgbWFpbGluZyBsaXN0OyBidXQgaXQn cyBkb25lIG5vdy4gQmVsb3cgaXMgYSAic3ZuIHBhdGNoIiBhZ2FpbnN0IHRoZSBCUkFOQ0hfMl8x X1ggZGV2ZWxvcG1lbnQgdHJlZSB0aGF0IGNoYW5nZXMgdGhlIGJlaGF2aW91ciBhcyBkZXNjcmli ZWQgYWJvdmUuLi4NCg0KQ2FyZWZ1bCBiZWZvcmUgY29tbWl0dGluZzogdGhlIGNvZGUgQUxURVJT IHRoZSBiZWhhdmlvdXIgc290aGF0IGFueSBleGlzdGluZyBpbXBsZW1lbmV0YXRpb25zIHRoYXQg ZGVwZW5kIG9uIHRoZSB1c2VyIGFnZW50IGJlaW5nIGluIGEgUEFSQU1FVEVSIGFuZCBub3QgYSBI RUFERVIgd2hlbiBydW5uaW5nIHRoZSBDTEkgd2lsbCBicmVhay4uLiBJdCB3b3VsZCBiZSByZWNv bW1lbmRlZCBJIGltYWdpbmUgdG8gbWVudGlvbiB0aGlzIGluIHRoZSAiQ2hhbmdlcyIgZmlsZT8N Cg0KUmVnYXJkcywNCkphbWVzDQoNCi0tLS0gY2xpLXVzZXItYWdlbnQtaGVhZGVyLnBhdGNoIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCkluZGV4OiBzcmMvamF2YS9vcmcvYXBhY2hlL2Nv Y29vbi9lbnZpcm9ubWVudC9jb21tYW5kbGluZS9GaWxlU2F2aW5nRW52aXJvbm1lbnQuamF2YQ0K PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KLS0tIHNyYy9qYXZhL29yZy9hcGFjaGUvY29jb29uL2Vudmlyb25tZW50L2Nv bW1hbmRsaW5lL0ZpbGVTYXZpbmdFbnZpcm9ubWVudC5qYXZhCShyZXZpc2lvbiAxNzAwMDApDQor Kysgc3JjL2phdmEvb3JnL2FwYWNoZS9jb2Nvb24vZW52aXJvbm1lbnQvY29tbWFuZGxpbmUvRmls ZVNhdmluZ0Vudmlyb25tZW50LmphdmEJKHdvcmtpbmcgY29weSkNCkBAIC0zMSw3ICszMSw3IEBA DQogICoNCiAgKiBAYXV0aG9yIDxhIGhyZWY9Im1haWx0bzpzdGVmYW5vQGFwYWNoZS5vcmciPlN0 ZWZhbm8gTWF6em9jY2hpPC9hPg0KICAqIEBhdXRob3IgPGEgaHJlZj0ibWFpbHRvOnV2QHVwYXlh LmNvLnVrIj5VcGF5YXZpcmE8L2E+DQotICogQHZlcnNpb24gQ1ZTICRJZDogRmlsZVNhdmluZ0Vu dmlyb25tZW50LmphdmEsdiAxLjYgMjAwNC8wMy8wNSAxMzowMjo1NCBiZGVsYWNyZXRheiBFeHAg JA0KKyAqIEB2ZXJzaW9uIENWUyAkSWQkDQogICovDQogcHVibGljIGNsYXNzIEZpbGVTYXZpbmdF bnZpcm9ubWVudCBleHRlbmRzIEFic3RyYWN0Q29tbWFuZExpbmVFbnZpcm9ubWVudCB7DQogDQpA QCAtNDMsNiArNDMsNyBAQA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUg Y29udGV4dCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXAgYXR0cmlidXRl cywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXAgcGFyYW1ldGVycywNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXAgaGVhZGVycywNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNYXAgbGlua3MsDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBnYXRoZXJlZExpbmtzLA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENvbW1hbmRMaW5lQ29udGV4dCBjbGlDb250ZXh0LA0KQEAgLTUxLDcgKzUyLDcg QEANCiAgICAgdGhyb3dzIE1hbGZvcm1lZFVSTEV4Y2VwdGlvbiB7DQogICAgICAgICBzdXBlcih1 cmksIG51bGwsIGNvbnRleHQsIHN0cmVhbSwgbG9nKTsNCiAgICAgICAgIHRoaXMub2JqZWN0TW9k ZWwucHV0KE9iamVjdE1vZGVsSGVscGVyLlJFUVVFU1RfT0JKRUNULA0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmV3IENvbW1hbmRMaW5lUmVxdWVzdCh0aGlzLCBudWxsLCB1cmksIG51 bGwsIGF0dHJpYnV0ZXMsIHBhcmFtZXRlcnMpKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5ldyBDb21tYW5kTGluZVJlcXVlc3QodGhpcywgbnVsbCwgdXJpLCBudWxsLCBhdHRyaWJ1 dGVzLCBwYXJhbWV0ZXJzLCBoZWFkZXJzKSk7DQogICAgICAgICB0aGlzLm9iamVjdE1vZGVsLnB1 dChPYmplY3RNb2RlbEhlbHBlci5SRVNQT05TRV9PQkpFQ1QsDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuZXcgQ29tbWFuZExpbmVSZXNwb25zZSgpKTsNCiAgICAgICAgIHRoaXMub2Jq ZWN0TW9kZWwucHV0KE9iamVjdE1vZGVsSGVscGVyLkNPTlRFWFRfT0JKRUNULA0KQEAgLTY0LDE4 ICs2NSwxOSBAQA0KICAgICAgICAgICAgIHRoaXMub2JqZWN0TW9kZWwucHV0KENvbnN0YW50cy5M SU5LX0NPTExFQ1RJT05fT0JKRUNULCBnYXRoZXJlZExpbmtzKTsNCiAgICAgICAgIH0NCiAgICAg fQ0KLSAgICANCisNCiAgICAgcHVibGljIEZpbGVTYXZpbmdFbnZpcm9ubWVudChTdHJpbmcgdXJp LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUgY29udGV4dCwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXAgYXR0cmlidXRlcywNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNYXAgcGFyYW1ldGVycywNCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNYXAgaGVhZGVycywNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNYXAgbGlua3MsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBnYXRoZXJlZExpbmtzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1h bmRMaW5lQ29udGV4dCBjbGlDb250ZXh0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE91dHB1dFN0cmVhbSBzdHJlYW0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTG9nZ2VyIGxvZykNCiAgICAgdGhyb3dzIE1hbGZvcm1lZFVSTEV4Y2VwdGlvbiB7DQotICAg ICAgICB0aGlzKHVyaSwgMEwsIGNvbnRleHQsIGF0dHJpYnV0ZXMsIHBhcmFtZXRlcnMsIGxpbmtz LCBnYXRoZXJlZExpbmtzLCBjbGlDb250ZXh0LCBzdHJlYW0sIGxvZyk7DQorICAgICAgICB0aGlz KHVyaSwgMEwsIGNvbnRleHQsIGF0dHJpYnV0ZXMsIHBhcmFtZXRlcnMsIGhlYWRlcnMsIGxpbmtz LCBnYXRoZXJlZExpbmtzLCBjbGlDb250ZXh0LCBzdHJlYW0sIGxvZyk7DQogICAgIH0NCiANCiAg ICAgLyoqDQpJbmRleDogc3JjL2phdmEvb3JnL2FwYWNoZS9jb2Nvb24vYmVhbi9Db2Nvb25XcmFw cGVyLmphdmENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCi0tLSBzcmMvamF2YS9vcmcvYXBhY2hlL2NvY29vbi9iZWFu L0NvY29vbldyYXBwZXIuamF2YQkocmV2aXNpb24gMTcwMDAwKQ0KKysrIHNyYy9qYXZhL29yZy9h cGFjaGUvY29jb29uL2JlYW4vQ29jb29uV3JhcHBlci5qYXZhCSh3b3JraW5nIGNvcHkpDQpAQCAt ODMsOCArODMsOCBAQA0KICAgICBwcml2YXRlIFN0cmluZyBsb2dLaXQgPSBudWxsOw0KICAgICBw cm90ZWN0ZWQgU3RyaW5nIGxvZ2dlciA9IG51bGw7DQogICAgIHByb3RlY3RlZCBTdHJpbmcgbG9n TGV2ZWwgPSAiRVJST1IiOw0KLSAgICBwcml2YXRlIFN0cmluZyB1c2VyQWdlbnQgPSBERUZBVUxU X1VTRVJfQUdFTlQ7DQotICAgIHByaXZhdGUgU3RyaW5nIGFjY2VwdCA9IERFRkFVTFRfQUNDRVBU Ow0KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHVzZXJBZ2VudCA9IERFRkFVTFRfVVNFUl9BR0VOVDsN CisgICAgcHJvdGVjdGVkIFN0cmluZyBhY2NlcHQgPSBERUZBVUxUX0FDQ0VQVDsNCiAgICAgcHJp dmF0ZSBMaXN0IGNsYXNzTGlzdCA9IG5ldyBBcnJheUxpc3QoKTsNCiANCiAgICAgLy8gT2JqZWN0 cyB1c2VkIGFsb25nc2lkZSBVc2VyIFN1cHBsaWVkIFBhcmFtZXRlcnMNCkBAIC0xOTAsNyArMTkw LDcgQEANCiAgICAgICAgICAgICB9DQogICAgICAgICB9Lmluc3RhbmNlKCk7DQogICAgIH0NCi0g ICAgDQorDQogICAgIHByb3RlY3RlZCBFeGNhbGlidXJDb21wb25lbnRNYW5hZ2VyIGdldENvbXBv bmVudE1hbmFnZXIoKSB7DQogICAgICAgICByZXR1cm4gY29jb29uLmdldENvbXBvbmVudE1hbmFn ZXIoKTsNCiAgICAgfQ0KQEAgLTM4NSw3ICszODUsNyBAQA0KICAgICBwdWJsaWMgdm9pZCBzZXRV c2VFeGlzdGluZ0NvY29vbihib29sZWFuIHVzZUV4aXN0aW5nQ29jb29uKSB7DQogICAgICAgICB0 aGlzLnVzZUV4aXN0aW5nQ29jb29uID0gdXNlRXhpc3RpbmdDb2Nvb247DQogICAgIH0NCi0gICAg DQorCQ0KICAgICAvKioNCiAgICAgICogUHJvY2VzcyBzaW5nbGUgVVJJIGludG8gZ2l2ZW4gb3V0 cHV0IHN0cmVhbS4NCiAgICAgICoNCkBAIC00MDIsMTMgKzQwMiwxNCBAQA0KIA0KICAgICAgICAg Ly8gR2V0IHBhcmFtZXRlcnMsIGRlcGFyYW1ldGVyaXplZCBVUkkgYW5kIHBhdGggZnJvbSBVUkkN CiAgICAgICAgIGZpbmFsIFRyZWVNYXAgcGFyYW1ldGVycyA9IG5ldyBUcmVlTWFwKCk7DQorICAg ICAgICBmaW5hbCBUcmVlTWFwIGhlYWRlcnMgPSBuZXcgVHJlZU1hcCgpOw0KICAgICAgICAgZmlu YWwgU3RyaW5nIGRlcGFyYW1ldGVyaXplZFVSSSA9DQogICAgICAgICAgICAgTmV0VXRpbHMuZGVw YXJhbWV0ZXJpemUodXJpLCBwYXJhbWV0ZXJzKTsNCi0gICAgICAgIHBhcmFtZXRlcnMucHV0KCJ1 c2VyLWFnZW50IiwgdXNlckFnZW50KTsNCi0gICAgICAgIHBhcmFtZXRlcnMucHV0KCJhY2NlcHQi LCBhY2NlcHQpOw0KKyAgICAgICAgaGVhZGVycy5wdXQoInVzZXItYWdlbnQiLCB1c2VyQWdlbnQp Ow0KKyAgICAgICAgaGVhZGVycy5wdXQoImFjY2VwdCIsIGFjY2VwdCk7DQogDQogICAgICAgICBp bnQgc3RhdHVzID0NCi0gICAgICAgICAgICBnZXRQYWdlKGRlcGFyYW1ldGVyaXplZFVSSSwgMEws IHBhcmFtZXRlcnMsIG51bGwsIG51bGwsIG91dHB1dFN0cmVhbSk7DQorICAgICAgICAgICAgZ2V0 UGFnZShkZXBhcmFtZXRlcml6ZWRVUkksIDBMLCBwYXJhbWV0ZXJzLCBoZWFkZXJzLCBudWxsLCBu dWxsLCBvdXRwdXRTdHJlYW0pOw0KIA0KICAgICAgICAgaWYgKHN0YXR1cyA+PSA0MDApIHsNCiAg ICAgICAgICAgICB0aHJvdyBuZXcgUHJvY2Vzc2luZ0V4Y2VwdGlvbigiUmVzb3VyY2Ugbm90IGZv dW5kOiAiICsgc3RhdHVzKTsNCkBAIC00MzIsMTMgKzQzMywxNCBAQA0KIA0KICAgICAgICAgLy8g R2V0IHBhcmFtZXRlcnMsIGRlcGFyYW1ldGVyaXplZCBVUkkgYW5kIHBhdGggZnJvbSBVUkkNCiAg ICAgICAgIGZpbmFsIFRyZWVNYXAgcGFyYW1ldGVycyA9IG5ldyBUcmVlTWFwKCk7DQorICAgICAg ICBmaW5hbCBUcmVlTWFwIGhlYWRlcnMgPSBuZXcgVHJlZU1hcCgpOw0KICAgICAgICAgZmluYWwg U3RyaW5nIGRlcGFyYW1ldGVyaXplZFVSSSA9DQogICAgICAgICAgICAgTmV0VXRpbHMuZGVwYXJh bWV0ZXJpemUodXJpLCBwYXJhbWV0ZXJzKTsNCi0gICAgICAgIHBhcmFtZXRlcnMucHV0KCJ1c2Vy LWFnZW50IiwgdXNlckFnZW50KTsNCi0gICAgICAgIHBhcmFtZXRlcnMucHV0KCJhY2NlcHQiLCBh Y2NlcHQpOw0KKyAgICAgICAgaGVhZGVycy5wdXQoInVzZXItYWdlbnQiLCB1c2VyQWdlbnQpOw0K KyAgICAgICAgaGVhZGVycy5wdXQoImFjY2VwdCIsIGFjY2VwdCk7DQogDQogICAgICAgICBpbnQg c3RhdHVzID0NCi0gICAgICAgICAgICBnZXRQYWdlKGRlcGFyYW1ldGVyaXplZFVSSSwgMEwsIHBh cmFtZXRlcnMsIG51bGwsIG51bGwsIGhhbmRsZXIpOw0KKyAgICAgICAgICAgIGdldFBhZ2UoZGVw YXJhbWV0ZXJpemVkVVJJLCAwTCwgcGFyYW1ldGVycywgaGVhZGVycywgbnVsbCwgbnVsbCwgaGFu ZGxlcik7DQogDQogICAgICAgICBpZiAoc3RhdHVzID49IDQwMCkgew0KICAgICAgICAgICAgIHRo cm93IG5ldyBQcm9jZXNzaW5nRXhjZXB0aW9uKCJSZXNvdXJjZSBub3QgZm91bmQ6ICIgKyBzdGF0 dXMpOw0KQEAgLTQ5MSwxNyArNDkzLDE4IEBADQogICAgIHByb3RlY3RlZCBpbnQgZ2V0UGFnZShT dHJpbmcgZGVwYXJhbWV0ZXJpemVkVVJJLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9u ZyBsYXN0TW9kaWZpZWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICBNYXAgcGFyYW1ldGVy cywNCisgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcCBoZWFkZXJzLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgTWFwIGxpbmtzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBnYXRoZXJlZExpbmtzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0U3RyZWFt IHN0cmVhbSkNCiAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7DQogDQotICAgICAgICBwYXJhbWV0ZXJz LnB1dCgidXNlci1hZ2VudCIsIHVzZXJBZ2VudCk7DQotICAgICAgICBwYXJhbWV0ZXJzLnB1dCgi YWNjZXB0IiwgYWNjZXB0KTsNCisgICAgICAgIGhlYWRlcnMucHV0KCJ1c2VyLWFnZW50IiwgdXNl ckFnZW50KTsNCisgICAgICAgIGhlYWRlcnMucHV0KCJhY2NlcHQiLCBhY2NlcHQpOw0KIA0KICAg ICAgICAgRmlsZVNhdmluZ0Vudmlyb25tZW50IGVudiA9DQogICAgICAgICAgICAgbmV3IEZpbGVT YXZpbmdFbnZpcm9ubWVudChkZXBhcmFtZXRlcml6ZWRVUkksIGxhc3RNb2RpZmllZCwgY29udGV4 dCwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMsIHBh cmFtZXRlcnMsIGxpbmtzLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXR0cmlidXRlcywgcGFyYW1ldGVycywgaGVhZGVycywgbGlua3MsDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnYXRoZXJlZExpbmtzLCBjbGlDb250ZXh0LCBzdHJlYW0s IGxvZyk7DQogDQogICAgICAgICAvLyBIZXJlIENvY29vbiBjYW4gdGhyb3cgYW4gZXhjZXB0aW9u IGlmIHRoZXJlIGFyZSBlcnJvcnMgaW4gcHJvY2Vzc2luZyB0aGUgcGFnZQ0KQEAgLTUyOCwxNyAr NTMxLDE4IEBADQogICAgIHByb3RlY3RlZCBpbnQgZ2V0UGFnZShTdHJpbmcgZGVwYXJhbWV0ZXJp emVkVVJJLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsYXN0TW9kaWZpZWQsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICBNYXAgcGFyYW1ldGVycywNCisgICAgICAgICAgICAg ICAgICAgICAgICAgIE1hcCBoZWFkZXJzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFw IGxpbmtzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBnYXRoZXJlZExpbmtzLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudEhhbmRsZXIgaGFuZGxlcikNCiAgICAg dGhyb3dzIEV4Y2VwdGlvbiB7DQogDQotICAgICAgICBwYXJhbWV0ZXJzLnB1dCgidXNlci1hZ2Vu dCIsIHVzZXJBZ2VudCk7DQotICAgICAgICBwYXJhbWV0ZXJzLnB1dCgiYWNjZXB0IiwgYWNjZXB0 KTsNCisgICAgICAgIGhlYWRlcnMucHV0KCJ1c2VyLWFnZW50IiwgdXNlckFnZW50KTsNCisgICAg ICAgIGhlYWRlcnMucHV0KCJhY2NlcHQiLCBhY2NlcHQpOw0KIA0KICAgICAgICAgRmlsZVNhdmlu Z0Vudmlyb25tZW50IGVudiA9DQogICAgICAgICAgICAgbmV3IEZpbGVTYXZpbmdFbnZpcm9ubWVu dChkZXBhcmFtZXRlcml6ZWRVUkksIGxhc3RNb2RpZmllZCwgY29udGV4dCwNCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMsIHBhcmFtZXRlcnMsIGxpbmtz LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcywgcGFy YW1ldGVycywgaGVhZGVycywgbGlua3MsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnYXRoZXJlZExpbmtzLCBjbGlDb250ZXh0LCBudWxsLCBsb2cpOw0KIA0KICAgICAg ICAgWE1MQ29uc3VtZXIgY29uc3VtZXIgPSBuZXcgQ29udGVudEhhbmRsZXJXcmFwcGVyKGhhbmRs ZXIpOw0KQEAgLTU4MCwxMiArNTg0LDEzIEBADQogICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0VHlw ZShTdHJpbmcgZGVwYXJhbWV0ZXJpemVkVVJJLCBNYXAgcGFyYW1ldGVycykNCiAgICAgICAgIHRo cm93cyBFeGNlcHRpb24gew0KIA0KLSAgICAgICAgcGFyYW1ldGVycy5wdXQoInVzZXItYWdlbnQi LCB1c2VyQWdlbnQpOw0KLSAgICAgICAgcGFyYW1ldGVycy5wdXQoImFjY2VwdCIsIGFjY2VwdCk7 DQorCQlUcmVlTWFwIGhlYWRlcnMgPSBuZXcgVHJlZU1hcCgpOw0KKwkJaGVhZGVycy5wdXQoInVz ZXItYWdlbnQiLCB1c2VyQWdlbnQpOw0KKyAgICAgICAgaGVhZGVycy5wdXQoImFjY2VwdCIsIGFj Y2VwdCk7DQogDQogICAgICAgICBGaWxlU2F2aW5nRW52aXJvbm1lbnQgZW52ID0NCiAgICAgICAg ICAgICBuZXcgRmlsZVNhdmluZ0Vudmlyb25tZW50KGRlcGFyYW1ldGVyaXplZFVSSSwgY29udGV4 dCwgYXR0cmlidXRlcywNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh cmFtZXRlcnMsIGVtcHR5LCBudWxsLCBjbGlDb250ZXh0LA0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycywgaGVhZGVycywgZW1wdHksIG51bGwsIGNsaUNv bnRleHQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTnVsbE91 dHB1dFN0cmVhbSgpLCBsb2cpOw0KICAgICAgICAgcHJvY2Vzc0xlbmllbnQoZW52KTsNCiAgICAg ICAgIHJldHVybiBlbnYuZ2V0Q29udGVudFR5cGUoKTsNCkluZGV4OiBzcmMvamF2YS9vcmcvYXBh Y2hlL2NvY29vbi9iZWFuL0NvY29vbkJlYW4uamF2YQ0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHNyYy9qYXZh L29yZy9hcGFjaGUvY29jb29uL2JlYW4vQ29jb29uQmVhbi5qYXZhCShyZXZpc2lvbiAxNzAwMDAp DQorKysgc3JjL2phdmEvb3JnL2FwYWNoZS9jb2Nvb24vYmVhbi9Db2Nvb25CZWFuLmphdmEJKHdv cmtpbmcgY29weSkNCkBAIC0xLDEyICsxLDEyIEBADQogLyoNCiAgKiBDb3B5cmlnaHQgMTk5OS0y MDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCi0gKiANCisgKg0KICAqIExpY2Vu c2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIp Ow0KICAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0 aCB0aGUgTGljZW5zZS4NCiAgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2Ug YXQNCi0gKiANCisgKg0KICAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJ Q0VOU0UtMi4wDQotICogDQorICoNCiAgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBs YXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQogICogZGlzdHJpYnV0ZWQgdW5k ZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCiAgKiBX SVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJl c3Mgb3IgaW1wbGllZC4NCkBAIC00Nyw2ICs0Nyw3IEBADQogaW1wb3J0IGphdmEudXRpbC5JdGVy YXRvcjsNCiBpbXBvcnQgamF2YS51dGlsLkxpc3Q7DQogaW1wb3J0IGphdmEudXRpbC5NYXA7DQor aW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOw0KIA0KIC8qKg0KICAqIDxwPlRoZSBDb2Nvb24gQmVh biBzaW1wbGlmaWVzIHVzYWdlIG9mIHRoZSBDb2Nvb24gb2JqZWN0LiBBbGxvd3MgdG8gY3JlYXRl LA0KQEAgLTgxLDcgKzgyLDcgQEANCiAgICAgcHJpdmF0ZSBib29sZWFuIHZlcmJvc2U7DQogICAg IFNvdXJjZVJlc29sdmVyIHNvdXJjZVJlc29sdmVyOw0KIA0KLSAgICBwcml2YXRlIENyYXdsZXIg Y3Jhd2xlcjsgICAgDQorICAgIHByaXZhdGUgQ3Jhd2xlciBjcmF3bGVyOw0KICAgICBwcml2YXRl IFN0cmluZyBjaGVja3N1bXNVUkkgPSBudWxsOw0KICAgICBwcml2YXRlIE1hcCBjaGVja3N1bXM7 DQogDQpAQCAtMTI5LDcgKzEzMCw3IEBADQogICAgIHB1YmxpYyBib29sZWFuIGlzUHJlY29tcGls ZU9ubHkoKSB7DQogICAgICAgICByZXR1cm4gcHJlY29tcGlsZU9ubHk7DQogICAgIH0NCi0gICAg DQorDQogICAgIHB1YmxpYyB2b2lkIHNldFZlcmJvc2UoYm9vbGVhbiB2ZXJib3NlKSB7DQogICAg ICAgICB0aGlzLnZlcmJvc2UgPSB2ZXJib3NlOw0KICAgICB9DQpAQCAtMTQ5LDcgKzE1MCw3IEBA DQogICAgIHB1YmxpYyB2b2lkIHNldENoZWNrc3VtVVJJKFN0cmluZyB1cmkpIHsNCiAgICAgICAg IHRoaXMuY2hlY2tzdW1zVVJJID0gdXJpOw0KICAgICB9DQotICAgIA0KKw0KICAgICBwdWJsaWMg Ym9vbGVhbiBmb2xsb3dMaW5rcygpIHsNCiAgICAgICAgIHJldHVybiBmb2xsb3dMaW5rczsNCiAg ICAgfQ0KQEAgLTI0MSw3ICsyNDIsNyBAQA0KICAgICBwdWJsaWMgaW50IGdldFRhcmdldENvdW50 KCkgew0KICAgICAgICAgcmV0dXJuIGNyYXdsZXIuZ2V0UmVtYWluaW5nQ291bnQoKTsNCiAgICAg fQ0KLSAgICANCisNCiAgICAgcHVibGljIHZvaWQgYWRkRXhjbHVkZVBhdHRlcm4oU3RyaW5nIHBh dHRlcm4pIHsNCiAgICAgICAgIGludCBwcmVwYXJlZFBhdHRlcm5bXSA9IFdpbGRjYXJkSGVscGVy LmNvbXBpbGVQYXR0ZXJuKHBhdHRlcm4pOw0KICAgICAgICAgZXhjbHVkZVBhdHRlcm5zLmFkZChw cmVwYXJlZFBhdHRlcm4pOw0KQEAgLTM0NSw3ICszNDYsNyBAQA0KICAgICAgICAgaWYgKHRoaXMu Y2hlY2tzdW1zVVJJICE9IG51bGwpIHsNCiAgICAgICAgICAgICByZWFkQ2hlY2tzdW1GaWxlKCk7 DQogICAgICAgICB9DQotICAgICAgICANCisNCiAgICAgICAgIGlmIChjcmF3bGVyLmdldFJlbWFp bmluZ0NvdW50KCk+PTApIHsNCiAgICAgICAgICAgICBJdGVyYXRvciBpdGVyYXRvciA9IGNyYXds ZXIuaXRlcmF0b3IoKTsNCiAgICAgICAgICAgICB3aGlsZSAoaXRlcmF0b3IuaGFzTmV4dCgpKSB7 DQpAQCAtMzU1LDExICszNTYsMTEgQEANCiAJCQkJCQkJCX0NCiAgICAgICAgICAgICB9DQogICAg ICAgICB9DQotICAgICAgICANCisNCiAgICAgICAgIGlmICh0aGlzLmNoZWNrc3Vtc1VSSSAhPSBu dWxsKSB7DQogICAgICAgICAgICAgd3JpdGVDaGVja3N1bUZpbGUoKTsNCiAgICAgICAgIH0NCi0g ICAgICAgIA0KKw0KICAgICAgICAgaWYgKGxvZy5pc0luZm9FbmFibGVkKCkpIHsNCiAgICAgICAg ICAgICAgIGxvZy5pbmZvKA0KICAgICAgICAgICAgICAgICAgICIgIE1lbW9yeSB1c2VkOiAiDQpA QCAtNDkwLDExICs0OTEsMTcgQEANCiAgICAgICAgICAgICAgICAgICAgIGdhdGhlcmVkTGlua3Mg PSBudWxsOw0KICAgICAgICAgICAgICAgICB9DQogDQorDQorCQkJICAgIFRyZWVNYXAgaGVhZGVy cyA9IG5ldyBUcmVlTWFwKCk7DQorCQkJCWhlYWRlcnMucHV0KCJ1c2VyLWFnZW50IiwgdXNlckFn ZW50KTsNCisJCQkJaGVhZGVycy5wdXQoImFjY2VwdCIsIGFjY2VwdCk7DQorDQogICAgICAgICAg ICAgICAgIHN0YXR1cyA9DQogICAgICAgICAgICAgICAgICAgICBnZXRQYWdlKA0KICAgICAgICAg ICAgICAgICAgICAgICAgIHRhcmdldC5nZXREZXBhcmFtZXRlcml6ZWRTb3VyY2VVUkkoKSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICBnZXRMYXN0TW9kaWZpZWQodGFyZ2V0KSwNCiAgICAgICAg ICAgICAgICAgICAgICAgICB0YXJnZXQuZ2V0UGFyYW1ldGVycygpLA0KKyAgICAgICAgICAgICAg ICAgICAgICAgIGhlYWRlcnMsDQogICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmNvbmZp cm1FeHRlbnNpb25zKCkgPyB0cmFuc2xhdGVkTGlua3MgOiBudWxsLA0KICAgICAgICAgICAgICAg ICAgICAgICAgIGdhdGhlcmVkTGlua3MsDQogICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0 KTsNCkBAIC01MzcsMTQgKzU0NCwxNCBAQA0KICAgICAgICAgICAgICAgICAgICAgTW9kaWZpYWJs ZVNvdXJjZSBzb3VyY2UgPSBnZXRTb3VyY2UodGFyZ2V0KTsNCiAgICAgICAgICAgICAgICAgICAg IHRyeSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVNpemUgPSBvdXRwdXQuc2l6ZSgp Ow0KLSAgICAgICAgICAgICAgICAgICAgICAgIA0KKw0KICAgICAgICAgICAgICAgICAgICAgICAg IGlmICh0aGlzLmNoZWNrc3Vtc1VSSSA9PSBudWxsIHx8ICFpc1NhbWVDb250ZW50KG91dHB1dCwg dGFyZ2V0KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXRTdHJlYW0gc3Ry ZWFtID0gc291cmNlLmdldE91dHB1dFN0cmVhbSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvdXRwdXQuc2V0RmlsZU91dHB1dFN0cmVhbShzdHJlYW0pOw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvdXRwdXQuZmx1c2goKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb3V0cHV0LmNsb3NlKCk7DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VHZW5l cmF0ZWQodGFyZ2V0LmdldFNvdXJjZVVSSSgpLCANCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0YXJnZXQuZ2V0QXV0aGxlc3NEZXN0VVJJKCksIA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwYWdlR2VuZXJhdGVkKHRhcmdldC5nZXRTb3VyY2VVUkkoKSwN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuZ2V0QXV0 aGxlc3NEZXN0VVJJKCksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGFnZVNpemUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlua0NvdW50LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5l d0xpbmtDb3VudCwNCkBAIC02NjgsMTEgKzY3NSwxMSBAQA0KICAgICB9DQogDQogICAgIC8qIE5C LiBUaGlzIGlzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uIC0gaXQgbWF5IHdlbGwgYmUgcmVwbGFjZWQg Ynkgc3RvcmluZyB0aGUgY2hlY2tzdW0gaW5mbw0KLSAgICAgKiAgICAgaW4gdGhlIFhNTCAncmVw b3J0JyBmaWxlLCBhbG9uZyB3aXRoIGRldGFpbHMgb2Ygd2hhdCBwYWdlcyB3ZXJlIGNyZWF0ZWQs IGV0Yy4gDQotICAgICAqLyANCisgICAgICogICAgIGluIHRoZSBYTUwgJ3JlcG9ydCcgZmlsZSwg YWxvbmcgd2l0aCBkZXRhaWxzIG9mIHdoYXQgcGFnZXMgd2VyZSBjcmVhdGVkLCBldGMuDQorICAg ICAqLw0KICAgICBwcml2YXRlIHZvaWQgcmVhZENoZWNrc3VtRmlsZSgpIHRocm93cyBFeGNlcHRp b24gew0KICAgICAgICAgY2hlY2tzdW1zID0gbmV3IEhhc2hNYXAoKTsNCi0gICAgICAgIA0KKw0K ICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICBTb3VyY2UgY2hlY2tzdW1Tb3VyY2UgPSBzb3Vy Y2VSZXNvbHZlci5yZXNvbHZlVVJJKGNoZWNrc3Vtc1VSSSk7DQogICAgICAgICAgICAgQnVmZmVy ZWRSZWFkZXIgcmVhZGVyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRl cihjaGVja3N1bVNvdXJjZS5nZXRJbnB1dFN0cmVhbSgpKSk7DQpAQCAtNjgzLDcgKzY5MCw3IEBA DQogICAgICAgICAgICAgICAgIGlmIChsaW5lLnRyaW0oKS5zdGFydHNXaXRoKCIjIikgfHwgbGlu ZS50cmltKCkubGVuZ3RoKCk9PTAgKSB7DQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsN CiAgICAgICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgICAgICBpZiAobGluZS5pbmRleE9mKCJc dCIpPT0tMSkgeyANCisgICAgICAgICAgICAgICAgaWYgKGxpbmUuaW5kZXhPZigiXHQiKT09LTEp IHsNCiAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBQcm9jZXNzaW5nRXhjZXB0aW9uKCJN aXNzaW5nIHRhYiBhdCBsaW5lICIrbGluZU5vKyIgb2YgIiArIGNoZWNrc3Vtc1VSSSk7DQogICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gbGluZS5z dWJzdHJpbmcoMCxsaW5lLmluZGV4T2YoIlx0IikpOw0KQEAgLTY5NSw3ICs3MDIsNyBAQA0KICAg ICAgICAgICAgIC8vIHJldHVybiBsZWF2aW5nIGNoZWNrc3VtcyBtYXAgZW1wdHkNCiAgICAgICAg IH0NCiAgICAgfQ0KLSAgICANCisNCiAgICAgcHJpdmF0ZSB2b2lkIHdyaXRlQ2hlY2tzdW1GaWxl KCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQogICAgICAgICBTb3VyY2UgY2hlY2tzdW1Tb3VyY2UgPSBz b3VyY2VSZXNvbHZlci5yZXNvbHZlVVJJKGNoZWNrc3Vtc1VSSSk7DQogICAgICAgICBpZiAoIShj aGVja3N1bVNvdXJjZSBpbnN0YW5jZW9mIE1vZGlmaWFibGVTb3VyY2UpKSB7DQpAQCAtNzE4LDcg KzcyNSw3IEBADQogICAgICAgICAgICAgbWQ1LnVwZGF0ZShzdHJlYW0uZ2V0Q29udGVudCgpKTsN CiAgICAgICAgICAgICBTdHJpbmcgc3RyZWFtRGlnZXN0ID0gU291cmNlVXRpbC5lbmNvZGVCQVNF NjQobmV3IFN0cmluZyhtZDUuZGlnZXN0KCkpKTsNCiAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0 RGlnZXN0ID0gKFN0cmluZyljaGVja3N1bXMuZ2V0KHRhcmdldC5nZXRTb3VyY2VVUkkoKSk7DQot ICAgICAgICAgICAgDQorDQogICAgICAgICAgICAgaWYgKHN0cmVhbURpZ2VzdC5lcXVhbHModGFy Z2V0RGlnZXN0KSkgew0KICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAg ICB9IGVsc2Ugew0K