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 BA901200C6E for ; Mon, 8 May 2017 13:19:52 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id B90D4160BA5; Mon, 8 May 2017 11:19:52 +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 B83B5160B99 for ; Mon, 8 May 2017 13:19:50 +0200 (CEST) Received: (qmail 15414 invoked by uid 500); 8 May 2017 11:19:49 -0000 Mailing-List: contact kerby-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: kerby@directory.apache.org Delivered-To: mailing list kerby@directory.apache.org Received: (qmail 15402 invoked by uid 99); 8 May 2017 11:19:49 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 08 May 2017 11:19:49 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id E4C2F182172 for ; Mon, 8 May 2017 11:19:48 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -1.496 X-Spam-Level: X-Spam-Status: No, score=-1.496 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-2.796, SPF_PASS=-0.001, TVD_FW_GRAPHIC_NAME_MID=0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id CX4T8JZ88dtD for ; Mon, 8 May 2017 11:19:40 +0000 (UTC) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id B3B4E5FC43 for ; Mon, 8 May 2017 11:19:39 +0000 (UTC) Received: from pps.filterd (m0098393.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v48B48gh077400 for ; Mon, 8 May 2017 07:19:38 -0400 Received: from e06smtp12.uk.ibm.com (e06smtp12.uk.ibm.com [195.75.94.108]) by mx0a-001b2d01.pphosted.com with ESMTP id 2aakccdka4-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Mon, 08 May 2017 07:19:36 -0400 Received: from localhost by e06smtp12.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 8 May 2017 12:19:34 +0100 Received: from b06cxnps3074.portsmouth.uk.ibm.com (9.149.109.194) by e06smtp12.uk.ibm.com (192.168.101.142) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 8 May 2017 12:19:31 +0100 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06cxnps3074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v48BJUfa53018640 for ; Mon, 8 May 2017 11:19:31 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4AF8D11C050 for ; Mon, 8 May 2017 12:18:16 +0100 (BST) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A832311C04A for ; Mon, 8 May 2017 12:18:15 +0100 (BST) Received: from d50lp02.ny.us.ibm.com (unknown [146.89.104.208]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTPS for ; Mon, 8 May 2017 12:18:15 +0100 (BST) Received: from localhost by d50lp02.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 8 May 2017 07:19:29 -0400 Received: from smtp.notes.na.collabserv.com (192.155.248.66) by d50lp02.ny.us.ibm.com (158.87.18.21) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128/128) Mon, 8 May 2017 07:19:26 -0400 Received: from localhost by smtp.notes.na.collabserv.com with smtp.notes.na.collabserv.com ESMTP for from ; Mon, 8 May 2017 11:19:25 -0000 Received: from us1a3-smtp05.a3.dal06.isc4sb.com (10.146.71.159) by smtp.notes.na.collabserv.com (10.106.227.127) with smtp.notes.na.collabserv.com ESMTP; Mon, 8 May 2017 11:19:21 -0000 Received: from us1a3-mail131.a3.dal06.isc4sb.com ([10.146.45.162]) by us1a3-smtp05.a3.dal06.isc4sb.com with ESMTP id 2017050811192098-255310 ; Mon, 8 May 2017 11:19:20 +0000 MIME-Version: 1.0 In-Reply-To: <8D5F7E3237B3ED47B84CF187BB17B666629ABCA9@SHSMSX103.ccr.corp.intel.com> Subject: RE: MIT Kerberos compatibility To: kerby@directory.apache.org From: "Christopher Lamb" Date: Mon, 8 May 2017 13:19:21 +0200 References: <1598dfe3-2ba4-b952-77e8-6dbfffb12928@xs4all.nl> <3c4f660a-b478-8ff5-c1ba-c8f97f658a46@xs4all.nl> <8D5F7E3237B3ED47B84CF187BB17B666629A35C8@SHSMSX103.ccr.corp.intel.com> <9037BCED616A964EB486B12FCA9DCFCF3BC81A1E@shsmsx102.ccr.corp.intel.com> <40fcf8bd-eb4a-0883-1ed0-54c311ffcc78@xs4all.nl> <8D5F7E3237B3ED47B84CF187BB17B666629ABCA9@SHSMSX103.ccr.corp.intel.com> X-KeepSent: A58AF817:CF1BD71B-0025811A:003DDEA1; type=4; name=$KeepSent X-Mailer: IBM Notes Release 9.0.1EXT SHF692 April 27, 2016 X-LLNOutbound: False X-Disclaimed: 30015 X-TNEFEvaluated: 1 Content-type: multipart/related; Boundary="0__=8FBB0B89DFAE58318f9e8a93df938690918c8FBB0B89DFAE5831" x-cbid: 17050811-0008-0000-0000-0000043F55A6 X-IBM-SpamModules-Scores: BY=0; FL=0; FP=0; FZ=0; HX=0; KW=0; PH=0; SC=0.383299; ST=0; TS=0; UL=0; ISC=; MB=0.246533 X-IBM-SpamModules-Versions: BY=3.00007034; HX=3.00000240; KW=3.00000007; PH=3.00000004; SC=3.00000209; SDB=6.00857715; UDB=6.00424889; IPR=6.00637144; BA=6.00005331; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00015357; XFM=3.00000014; UTC=2017-05-08 11:19:23 X-IBM-AV-DETECTION: SAVI=unsuspicious REMOTE=unsuspicious XFE=unused X-IBM-AV-VERSION: SAVI=2017-05-08 10:05:38 - 6.00006710 x-cbparentid: 17050811-6358-0000-0000-000010AD3B54 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused X-TM-AS-GCONF: 00 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused Message-Id: X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-05-08_07:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1705080063 archived-at: Mon, 08 May 2017 11:19:52 -0000 --0__=8FBB0B89DFAE58318f9e8a93df938690918c8FBB0B89DFAE5831 Content-type: multipart/alternative; Boundary="1__=8FBB0B89DFAE58318f9e8a93df938690918c8FBB0B89DFAE5831" --1__=8FBB0B89DFAE58318f9e8a93df938690918c8FBB0B89DFAE5831 Content-Transfer-Encoding: base64 Content-type: text/plain; charset=UTF-8 SGkgTWFyYw0KDQpPbiB0aGUgdG9waWMgb2YgcHl0aG9uIGFuZCBrZXJiZXJvcywgaGF2ZSB5b3Ug dHJpZWQgcHl0aG9uIGdzc2FwaT8NCg0KVGhlIGNvZGUgc25pcHBldCBiZWxvdyB3b3JrcyBmb3Ig bWUgYWdhaW5zdCBhIEZyZWVJUEEgY2xpZW50LCBLREMgYW5kDQpTZXJ2aWNlIFByaW5jaXBhbCwg d2hlcmVhcyB0aGUgZXF1aXZhbGVudCBKYXZhIEdTUy1BUEkgZG9lcyBub3QgKHlldCksDQp3aGlj aCBtYWRlIG1lIGxvb2sgYXQga2VyYi1jbGllbnQuLi4uDQoNCiMhL3Vzci9iaW4vcHl0aG9uMy41 DQoNCmltcG9ydCBnc3NhcGkNCmZyb20gaW8gaW1wb3J0IEJ5dGVzSU8NCg0Kc2VydmVyX25hbWUg PSAnSFRUUC9hcHAtc3J2LmFjbWUuY29tQEFDTUUuQ09NJw0Kc2VydmljZV9uYW1lID0gZ3NzYXBp Lk5hbWUoc2VydmVyX25hbWUpDQoNCmNsaWVudF9jdHggPSBnc3NhcGkuU2VjdXJpdHlDb250ZXh0 KG5hbWU9c2VydmljZV9uYW1lLCB1c2FnZT0naW5pdGlhdGUnKQ0KaW5pdGlhbF9jbGllbnRfdG9r ZW4gPSBjbGllbnRfY3R4LnN0ZXAoKQ0KDQoNCkNoZWVycw0KDQpDaHJpcw0KDQoNCg0KRnJvbToJ IlpoZW5nLCBLYWkiIDxrYWkuemhlbmdAaW50ZWwuY29tPg0KVG86CSJrZXJieUBkaXJlY3Rvcnku YXBhY2hlLm9yZyIgPGtlcmJ5QGRpcmVjdG9yeS5hcGFjaGUub3JnPg0KRGF0ZToJMDgvMDUvMjAx NyAxMjo1OA0KU3ViamVjdDoJUkU6IE1JVCBLZXJiZXJvcyBjb21wYXRpYmlsaXR5DQoNCg0KDQpI aSBNYXJjLA0KDQpUaGFua3MgZm9yIHlvdXIgcGF0aWVuY2UuIEl0IGxvb2tzIHRvIG1lIHRoZXJl IGlzIHNvbWUgaXNzdWUgaW4gS2VyYnkgd2l0aA0KSGVpbWRhbCBjb21wYXRpYmlsaXR5LiBOb3Rl IHdlIGhhdmVuJ3Qgc3VwcG9ydGVkIEhlaW1kYWwgeWV0LiBTbyBmYXIsIEtlcmJ5DQppcyB0ZXN0 ZWQgYW5kIGNhbiBzdXBwb3J0IHRoZXNlIGNsaWVudHM6DQoxLiBPcmFjbGUgSmF2YTsNCjIuIEtl cmJ5IGNsaWVudDsNCjMuIE1JVCBjbGllbnQuDQoNCkJvdGggY29tcGF0aWJpbGl0eSB0ZXN0cyB3 aXRoIE1TIEFEIGFuZCBIZWltZGFsIGhhdmVuJ3QgYmVlbiBkb25lIHlldC4gRm9yDQpIZWltZGFs LCBJIHRob3VnaHQgd2UgY2FuIGdldCBiYWNrIHRvIHRoaXMgbGF0ZXIgKGhvcGUgc29vbiwgYSB3 ZWVrIGxhdGVyKS4NCldlJ3JlIHByZXR0eSBidXN5IHdpdGggdXJnZW50IHRoaW5ncywgc29ycnku DQoNClJlZ2FyZHMsDQpLYWkNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IE1h cmMgZGUgTGlnbmllIFttYWlsdG86bS5jLmRlbGlnbmllQHhzNGFsbC5ubF0NClNlbnQ6IFN1bmRh eSwgTWF5IDA3LCAyMDE3IDEwOjEzIFBNDQpUbzoga2VyYnlAZGlyZWN0b3J5LmFwYWNoZS5vcmcN ClN1YmplY3Q6IFJlOiBNSVQgS2VyYmVyb3MgY29tcGF0aWJpbGl0eQ0KDQpIaSBKaWFqaWEgYW5k IEthaSwNCg0KUHV6emxlZCBieSB0aGUgZmFjdCB0aGF0IHRoZSBNaXQgS2VyYmVyb3Mgb3ZlciBw eXRob24gc2VydmljZSB0aWNrZXQNCnJlcXVlc3Qgd29ya3Mgb24gSmlhamlhJ3Mgc3lzdGVtIGJ1 dCBub3Qgb24gbWluZS4gSSBhdHRlbXB0ZWQgdG8gcmVxdWVzdA0KdGhlIHNlcnZpY2UgdGlja2V0 IHdpdGggTWl0IEtlcmJlcm9zJ3Mga2luaXQgdG9vbCBhbmQgLi4uLiBpdCB3b3JrZWQuDQoNClRo aXMgbWVhbnMgdGhhdCBteSBpc3N1ZSBwcm9iYWJseSBsaWVzIGluIHRoZSBrZXJiZXJvcyBweXRo b24gd3JhcHBlcg0KYXJvdW5kIHRoZSBNaXQgS2VyYmVyb3Mgc2hhcmVkIGxpYnMgKG9yIGluIHRo ZSB3YXkgaG93IEkgdXNlIGl0KS4gSSB0cmllZA0KYm90aCB3aXRoIHRoZSBEZWJpYW4gcHl0aG9u LWtlcmJlcm9zIHBhY2thZ2UsDQpodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL2tlcmJlcm9z IGFuZCB3aXRoDQpodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5a2VyYmVyb3MvMS4xLjE0 LCBuZWl0aGVyIG9mIHdoaWNoIGdvdCB0aGUNCnRpY2tldC4gVGhpcyBzdGlsbCBtYWtlcyBtZSBj dXJpb3VzIHdoZXJlIE1hYy1PUyBnZXRzIGl0cyBweXRob24ga2VyYmVyb3MNCnBhY2thZ2UgZnJv bSA6LSkNCg0KSGVyZSwgdGhlIGtpbml0IHNoZWxsIGNvbW1hbmRzIHRvIHJlcHJvZHVjZSBteSB0 ZXN0Lg0KDQpjZCAkUFJPSkVDVFJPT1QNCldPUktESVI9a2VyYnkta2VyYi9rZXJiLWtkYy10ZXN0 L3RhcmdldC90bXANCmV4cG9ydCBLUkI1X0NPTkZJRz0kV09SS0RJUi9rcmI1LmNvbmYNCmV4cG9y dCBLUkI1Q0NOQU1FPSRXT1JLRElSL3Rlc3QtdGt0LmNjDQpleHBvcnQgS1JCNV9UUkFDRT0vZGV2 L3N0ZG91dA0KDQokIGtpbml0IC1TIHRlc3Qtc2VydmljZS9sb2NhbGhvc3QNClszMTQxXSAxNDk0 MTYxOTk5LjU2NjQ2ODogR2V0dGluZyBpbml0aWFsIGNyZWRlbnRpYWxzIGZvciBkcmFua3llQFRF U1QuQ09NDQpbMzE0MV0gMTQ5NDE2MTk5OS41NjY4MzU6IFNldHRpbmcgaW5pdGlhbCBjcmVkcyBz ZXJ2aWNlIHRvDQp0ZXN0LXNlcnZpY2UvbG9jYWxob3N0IFszMTQxXSAxNDk0MTYxOTk5LjU2Njk1 MjogU2VuZGluZyByZXF1ZXN0ICgxNjgNCmJ5dGVzKSB0byBURVNULkNPTSBbMzE0MV0gMTQ5NDE2 MTk5OS41NjY5OTc6IFJlc29sdmluZyBob3N0bmFtZSBsb2NhbGhvc3QNClszMTQxXSAxNDk0MTYx OTk5LjU2NzQ2NzogU2VuZGluZyBpbml0aWFsIFVEUCByZXF1ZXN0IHRvIGRncmFtDQoxMjcuMC4w LjE6NDU1MjcNClszMTQxXSAxNDk0MTYxOTk5LjU3MzQ5NDogUmVjZWl2ZWQgYW5zd2VyICg1NTUg Ynl0ZXMpIGZyb20gZGdyYW0NCjEyNy4wLjAuMTo0NTUyNw0KWzMxNDFdIDE0OTQxNjE5OTkuNTc2 NzkxOiBSZXNwb25zZSB3YXMgbm90IGZyb20gbWFzdGVyIEtEQyBbMzE0MV0NCjE0OTQxNjE5OTku NTc2ODIyOiBTYWx0IGRlcml2ZWQgZnJvbSBwcmluY2lwYWw6IFRFU1QuQ09NZHJhbmt5ZSBbMzE0 MV0NCjE0OTQxNjE5OTkuNTc2ODI0OiBHZXR0aW5nIEFTIGtleSwgc2FsdCAiVEVTVC5DT01kcmFu a3llIiwgcGFyYW1zICIiDQpQYXNzd29yZCBmb3IgZHJhbmt5ZUBURVNULkNPTToNClszMTQxXSAx NDk0MTYyMDE1LjQ1MDA3MTogQVMga2V5IG9idGFpbmVkIGZyb20gZ2FrX2ZjdDogYWVzMTI4LWN0 cy8wNTQ4DQpbMzE0MV0gMTQ5NDE2MjAxNS40NTAxMDE6IERlY3J5cHRlZCBBUyByZXBseTsgc2Vz c2lvbiBrZXkgaXM6DQphZXMxMjgtY3RzLzRFRkUNClszMTQxXSAxNDk0MTYyMDE1LjQ1MDEwMzog RkFTVCBuZWdvdGlhdGlvbjogdW5hdmFpbGFibGUgWzMxNDFdDQoxNDk0MTYyMDE1LjQ1MDExMjog SW5pdGlhbGl6aW5nDQpGSUxFOmtlcmJ5LWtlcmIva2VyYi1rZGMtdGVzdC90YXJnZXQvdG1wL3Rl c3QtdGt0LmNjIHdpdGggZGVmYXVsdCBwcmluYw0KZHJhbmt5ZUBURVNULkNPTSBbMzE0MV0gMTQ5 NDE2MjAxNS40NTAzMDU6IFN0b3JpbmcgZHJhbmt5ZUBURVNULkNPTSAtPg0KdGVzdC1zZXJ2aWNl L2xvY2FsaG9zdEBURVNULkNPTSBpbg0KRklMRTprZXJieS1rZXJiL2tlcmIta2RjLXRlc3QvdGFy Z2V0L3RtcC90ZXN0LXRrdC5jYw0KDQokIGtsaXN0DQpUaWNrZXQgY2FjaGU6IEZJTEU6a2VyYnkt a2VyYi9rZXJiLWtkYy10ZXN0L3RhcmdldC90bXAvdGVzdC10a3QuY2MNCkRlZmF1bHQgcHJpbmNp cGFsOiBkcmFua3llQFRFU1QuQ09NDQoNClZhbGlkIHN0YXJ0aW5nICAgICBFeHBpcmVzICAgICAg ICAgICAgU2VydmljZSBwcmluY2lwYWwNCjA3LTA1LTE3IDE0OjU5OjU5ICAwOC0wNS0xNyAxNDo1 OTo1OSB0ZXN0LXNlcnZpY2UvbG9jYWxob3N0QFRFU1QuQ09NDQogICAgIHJlbmV3IHVudGlsIDA4 LTA1LTE3IDE0OjU5OjU5DQoNCldoYXQgaXMgYWxzbyBub3RhYmxlIGhlcmUgaXMgdGhhdCB0aGUg VGVzdEtkYyBvbmx5IHByb2R1Y2VzIG9uZSBsb2cNCm1lc3NhZ2U6DQoNCltuaW9FdmVudExvb3BH cm91cC01LTFdIElORk8NCm9yZy5hcGFjaGUua2VyYnkua2VyYmVyb3Mua2VyYi5zZXJ2ZXIucmVx dWVzdC5Bc1JlcXVlc3QgLSBBU19SRVEgSVNTVUU6DQphdXRodGltZSAxNDk0MTY0OTU2NzY2LGRy YW5reWVAVEVTVC5DT00gZm9yIHRlc3Qtc2VydmljZS9sb2NhbGhvc3RAVEVTVC5DT00NCg0Kd2hp bGUgaW4gdGhlIGVycm9yIHNpdHVhdGlvbiBmcm9tIHB5dGhvbiBpdCBwcm9kdWNlcyAoYW5kIG5v dCB0aGUgQVNfUkVRDQpsaW5lKToNCg0KW25pb0V2ZW50TG9vcEdyb3VwLTUtMV0gSU5GTw0Kb3Jn LmFwYWNoZS5rZXJieS5rZXJiZXJvcy5rZXJiLnNlcnZlci5yZXF1ZXN0LktkY1JlcXVlc3QgLSBG b3VuZCBmYXN0DQpwYWRhdGEgYW5kIHN0YXJ0aW5nIHRvIHByb2Nlc3MgaXQuDQpbbmlvRXZlbnRM b29wR3JvdXAtNS0xXSBJTkZPDQpvcmcuYXBhY2hlLmtlcmJ5LmtlcmJlcm9zLmtlcmIuc2VydmVy LnJlcXVlc3QuS2RjUmVxdWVzdCAtIEZvdW5kIGZhc3QNCnBhZGF0YSBhbmQgc3RhcnRpbmcgdG8g cHJvY2VzcyBpdC4NCg0KTm90ZSBhbHNvIHRoYXQga2luaXQgcmVxdWlyZXMgdG8gZ2l2ZSB0aGUg cGFzc3dvcmQgd2hpbGUgaW4gdGhlIHB5dGhvbg0KdGVzdGNhc2UgaXQgaXMgYXR0ZW1wdGVkIHRv IHVzZSB0aGUgdGd0IGZyb20gdGhlIGNyZWRlbnRpYWwgY2FjaGUuDQoNCk1heWJlIGl0IGFsc28g dXNlZnVsIHRvIHJlc3RhdGUgbXkgdGFyZ2V0OiBJIHdhbnQgdG8gYXV0aGVudGljYXRlIGEgcHl0 aG9uDQpjbGllbnQgdG93YXJkcyBhIHNlcnZpY2UgdXNpbmcgR1NTQVBJIHdpdGggU0FTTCAodGhl IHNlcnZpY2UgYmVpbmcNCmdyZW1saW4tc2VydmVyIGZyb20gdGhlIEFwYWNoZSBUaW5rZXJwb3Ag cHJvamVjdCkuIFNvIEkgd2FudCB0byBnZXQgdGhlDQpzZXJ2aWNlIHRpY2tldCB1c2luZyBHU1NB UEkgYW5kIGFuIGV4aXN0aW5nIHRndCBmcm9tIHRoZSBjcmVkZW50aWFsIGNhY2hlLg0KDQpBbnkg YWRkaXRpb25hbCBoaW50cyBhcmUgd2VsY29tZSwgZ29vZCBsdWNrIHdpdGggdGhlIEtlcmJ5IEdB IHJlbGVhc2UuDQoNCk1hcmMNCg0KT3AgMDUtMDUtMTcgb20gMjI6MTIgc2NocmVlZiBNYXJjIGRl IExpZ25pZToNCj4gSGkgSmlhamlhLA0KPg0KPiBUaGFua3MgZm9yIHRoZSBuZXR0eSBjb25maWcg b3B0aW9uLiBUaGlzIGluZGVlZCBoZWxwZWQgdG8gZ2V0IHJpZCBvZg0KPiB0aGUgdWRwIGVycm9y cywgYnV0IGRpZCBub3QgaGVscCBpbiBnZXR0aW5nIHRoZSBzZXJ2aWNlIHRpY2tldCAoZmluYWwN Cj4gZXJyb3IgbWVzc2FnZSByZW1haW5zIHRoZSBzYW1lKS4NCj4NCj4gSSBhbHNvIG5vdGljZWQg dGhhdCBJIGdldCB0aGUgc2FtZSBlcnJvciBmcm9tIHRoZSBweXRob24gY29uc29sZQ0KPiB3aGV0 aGVyIEkgc3BlY2lmeSB0aGUgcmlnaHQgc2VydmljZSBuYW1lIG9yIHNvbWUgc2VydmljZSBuYW1l IGZvcg0KPiB3aGljaCBubyBzZXJ2aWNlIHByaW5jaXBhbCBleGlzdHMgaW4gdGhlIFRlc3RLZGMu DQo+DQo+IEkgZGlkIG5vdCBzdWNjZWVkIGluIGdldHRpbmcgbXZuIHRzdCB0byBwcmludCB0aGUg ZGVidWcgbG9nZ2luZyBvZiB0aGUNCj4gdmFyaW91cyBrZGMgY2xhc3NlcyBpbnZvbHZlZC4NCj4N Cj4gRGlkIHlvdSBjaGVjayB3aXRoIGtsaXN0IHdoZXRoZXIgZHJhbmt5ZSdzIGNyZWRlbnRpYWwg Y2FjaGUgY29udGFpbnMNCj4gdGhlIHNlcnZpY2UgdGlja2V0IGZvciB0ZXN0LXNlcnZpY2U/DQo+ DQo+IENoZWVycywgICAgTWFyYw0KPg0KPg0KPiBPcCAwNC0wNS0xNyBvbSAxNDo1NSBzY2hyZWVm IExpLCBKaWFqaWE6DQo+PiBIaSBNYXJjLA0KPj4gSSB0cnkgdG8gcnVuIHlvdXIgdGVzdCh0aHJv dWdoIGFwcGx5aW5nIHlvdXIgcGF0Y2ggaW4gdGhlIHRydW5rKSAsIEkNCj4+IHRoaW5rIGl0J3Mg c3VjY2VzcyBub3cuICBDb3VsZCB5b3UgdGFrZSBzb21lIHRpbWUgdG8gY2hlY2sgYWJvdXQgaXQ/ DQo+PiBIZXJlIGlzIHRoZSBsb2c6DQo+Pg0KPj4gZGlyZWN0b3J5LWtlcmJ5IGdpdDoodHJ1bmsp IOKclyAuDQo+PiBrZXJieS1rZXJiL2tlcmIta2RjLXRlc3Qvc3JjL3Rlc3QvamF2YS9vcmcvYXBh Y2hlL2tlcmJ5L2tlcmJlcm9zL2tlcmINCj4+IC9zZXJ2ZXIvTWl0SXNzdWVUZXN0LnNoIGtlcmJl cm9zLmF1dGhHU1NDbGllbnRJbml0IHN1Y2Nlc3NmdWwNCj4+IDIwMTctMDUtMDRUMjA6NDQ6MDYg c2V0LWVycm9yOiAtMTc2NTMyODIzNDogZW50eXBlcyBub3Qgc3VwcG9ydGVkDQo+PiAyMDE3LTA1 LTA0VDIwOjQ0OjA2IHNldC1lcnJvcjogLTE3NjUzMjgyNDM6IERpZCBub3QgZmluZCBjcmVkZW50 aWFsDQo+PiBmb3Iga3JiNV9jY2FjaGVfY29uZl9kYXRhL3JlYWxtLWNvbmZpZ0BYLUNBQ0hFQ09O RjogaW4gY2FjaGUNCj4+IEZJTEU6a2VyYnkta2VyYi9rZXJiLWtkYy10ZXN0L3RhcmdldC90bXAv dGVzdC10a3QuY2MNCj4+IDIwMTctMDUtMDRUMjA6NDQ6MDYgc2V0LWVycm9yOiAtMTc2NTMyODI0 MzogRGlkIG5vdCBmaW5kIGNyZWRlbnRpYWwNCj4+IGZvciB0ZXN0LXNlcnZpY2UvbG9jYWxob3N0 QFRFU1QuQ09NIGluIGNhY2hlDQo+PiBGSUxFOmtlcmJ5LWtlcmIva2VyYi1rZGMtdGVzdC90YXJn ZXQvdG1wL3Rlc3QtdGt0LmNjDQo+PiAyMDE3LTA1LTA0VDIwOjQ0OjA2IHNldC1lcnJvcjogLTE3 NjUzMjgyNDM6IERpZCBub3QgZmluZCBjcmVkZW50aWFsDQo+PiBmb3INCj4+IGtyYjVfY2NhY2hl X2NvbmZfZGF0YS9uZWdhdGl2ZS1jYWNoZS90ZXN0LXNlcnZpY2VcMTM0L2xvY2FsaG9zdA0KXDEz NEBURVNULkNPTUBYLUNBQ0hFQ09ORjoNCj4+IGluIGNhY2hlIEZJTEU6a2VyYnkta2VyYi9rZXJi LWtkYy10ZXN0L3RhcmdldC90bXAvdGVzdC10a3QuY2MNCj4+IDIwMTctMDUtMDRUMjA6NDQ6MDYg c2V0LWVycm9yOiAtMTc2NTMyODI0MzogRGlkIG5vdCBmaW5kIGNyZWRlbnRpYWwNCj4+IGZvciBr cmI1X2NjYWNoZV9jb25mX2RhdGEvbGtkYy1ob3N0bmFtZUBYLUNBQ0hFQ09ORjogaW4gY2FjaGUN Cj4+IEZJTEU6a2VyYnkta2VyYi9rZXJiLWtkYy10ZXN0L3RhcmdldC90bXAvdGVzdC10a3QuY2MN Cj4+IDIwMTctMDUtMDRUMjA6NDQ6MDYgc2V0LWVycm9yOiAtMTc2NTMyODI0MzogRGlkIG5vdCBm aW5kIGNyZWRlbnRpYWwNCj4+IGZvciBrcmI1X2NjYWNoZV9jb25mX2RhdGEvc2l0ZW5hbWVAWC1D QUNIRUNPTkY6IGluIGNhY2hlDQo+PiBGSUxFOmtlcmJ5LWtlcmIva2VyYi1rZGMtdGVzdC90YXJn ZXQvdG1wL3Rlc3QtdGt0LmNjDQo+PiAyMDE3LTA1LTA0VDIwOjQ0OjA2IHNldC1lcnJvcjogLTE3 NjUzMjgyNDM6IERpZCBub3QgZmluZCBjcmVkZW50aWFsDQo+PiBmb3IgdGVzdC1zZXJ2aWNlL2xv Y2FsaG9zdEBURVNULkNPTSBpbiBjYWNoZQ0KPj4gRklMRTprZXJieS1rZXJiL2tlcmIta2RjLXRl c3QvdGFyZ2V0L3RtcC90ZXN0LXRrdC5jYw0KPj4gMjAxNy0wNS0wNFQyMDo0NDowNiBzZXQtZXJy b3I6IC0xNzY1MzI4MjM0OiBFbmNyeXB0aW9uIHR5cGUNCj4+IGRlcy1jYmMtbWQ1LWRlcHJlY2F0 ZWQgbm90IHN1cHBvcnRlZA0KPj4gMjAxNy0wNS0wNFQyMDo0NDowNiBzZXQtZXJyb3I6IC0xNzY1 MzI4MjM0OiBFbmNyeXB0aW9uIHR5cGUNCj4+IGRlcy1jYmMtbWQ0LWRlcHJlY2F0ZWQgbm90IHN1 cHBvcnRlZA0KPj4gMjAxNy0wNS0wNFQyMDo0NDowNiBzZXQtZXJyb3I6IC0xNzY1MzI4MjM0OiBF bmNyeXB0aW9uIHR5cGUNCj4+IGRlcy1jYmMtY3JjLWRlcHJlY2F0ZWQgbm90IHN1cHBvcnRlZA0K Pj4gMjAxNy0wNS0wNFQyMDo0NDowNiBUcnlpbmcgdG8gZmluZCBzZXJ2aWNlIGtkYyBmb3IgcmVh bG0gVEVTVC5DT00NCj4+IGZsYWdzIDANCj4+IDIwMTctMDUtMDRUMjA6NDQ6MDYgY29uZmlndXJh dGlvbiBmaWxlIGZvciByZWFsbSBURVNULkNPTSBmb3VuZA0KPj4gMjAxNy0wNS0wNFQyMDo0NDow NiBzdWJtaXNzaW5nIG5ldyByZXF1ZXN0cyB0byBuZXcgaG9zdA0KPj4gMjAxNy0wNS0wNFQyMDo0 NDowNiBob3N0X2NyZWF0ZTogc2V0dGluZyBob3N0bmFtZSBsb2NhbGhvc3QNCj4+IDIwMTctMDUt MDRUMjA6NDQ6MDYgY29ubmVjdGluZyB0byBob3N0OiB1ZHAgOjoxOjUyNTM0IChsb2NhbGhvc3Qp DQo+PiB0aWQ6IDAwMDAwMDAxDQo+PiAyMDE3LTA1LTA0VDIwOjQ0OjA2IGhvc3RfY3JlYXRlOiBz ZXR0aW5nIGhvc3RuYW1lIGxvY2FsaG9zdA0KPj4gMjAxNy0wNS0wNFQyMDo0NDowNiBRdWV1aW5n IGhvc3QgaW4gZnV0dXJlIChpbiAzcyksIGl0cyB0aGUgMiBhZGRyZXNzDQo+PiBvbiB0aGUgc2Ft ZSBuYW1lOiB1ZHAgMTI3LjAuMC4xOjUyNTM0IChsb2NhbGhvc3QpIHRpZDogMDAwMDAwMDINCj4+ IDIwMTctMDUtMDRUMjA6NDQ6MDYgd3JpdGluZyBwYWNrZXQ6IHVkcCA6OjE6NTI1MzQgKGxvY2Fs aG9zdCkgdGlkOg0KPj4gMDAwMDAwMDENCj4+IDIwMTctMDUtMDRUMjA6NDQ6MDYgcmVhZGluZyBw YWNrZXQ6IHVkcCA6OjE6NTI1MzQgKGxvY2FsaG9zdCkgdGlkOg0KPj4gMDAwMDAwMDENCj4+IDIw MTctMDUtMDRUMjA6NDQ6MDYgaG9zdCBjb21wbGV0ZWQ6IHVkcCA6OjE6NTI1MzQgKGxvY2FsaG9z dCkgdGlkOg0KPj4gMDAwMDAwMDENCj4+IDIwMTctMDUtMDRUMjA6NDQ6MDYga3JiNV9zZW5kdG9f Y29udGV4dCBURVNULkNPTSBkb25lOiAwIGhvc3RzIDENCj4+IHBhY2tldHMgMSB3YzogMC4wNDg5 MjcgbnI6IDAuMDAwOTMyIGtoOiAwLjAwMDgxNCB0aWQ6IDAwMDAwMDAyDQo+PiAyMDE3LTA1LTA0 VDIwOjQ0OjA2IHRrdDogZXh0cmFjdCBrZXkgMTcvNzYzNjQxRjMNCj4+IDIwMTctMDUtMDRUMjA6 NDQ6MDYgc2V0LWVycm9yOiAtMTc2NTMyODM1MzogRGVjcnlwdCBpbnRlZ3JpdHkgY2hlY2sNCj4+ IGZhaWxlZCBmb3IgY2hlY2tzdW0gdHlwZSBobWFjLXNoYTEtOTYtYWVzMTI4LCBrZXkgdHlwZQ0K Pj4gYWVzMTI4LWN0cy1obWFjLXNoYTEtOTYNCj4+IDIwMTctMDUtMDRUMjA6NDQ6MDYgdGt0OiBl eHRyYWN0IGtleSAxNy8zMDg0QTk1Qw0KPj4gMjAxNy0wNS0wNFQyMDo0NDowNiBrcmI1X2dldF9j cmVkZW50aWFsc193aXRoX2ZsYWdzOiBURVNULkNPTSB3YzoNCj4+IDAuMDUwMzE3DQo+PiAyMDE3 LTA1LTA0VDIwOjQ0OjA2IHNldC1lcnJvcjogLTE3NjUzMjgyNDM6IERpZCBub3QgZmluZCBjcmVk ZW50aWFsDQo+PiBmb3Iga3JiNV9jY2FjaGVfY29uZl9kYXRhL3JlYWxtLWNvbmZpZ0BYLUNBQ0hF Q09ORjogaW4gY2FjaGUNCj4+IEZJTEU6a2VyYnkta2VyYi9rZXJiLWtkYy10ZXN0L3RhcmdldC90 bXAvdGVzdC10a3QuY2MNCj4+IDIwMTctMDUtMDRUMjA6NDQ6MDYgc2V0LWVycm9yOiAtMTc2NTMy ODI0MzogRGlkIG5vdCBmaW5kIGNyZWRlbnRpYWwNCj4+IGZvcg0KPj4ga3JiNV9jY2FjaGVfY29u Zl9kYXRhL3RpbWUtb2Zmc2V0L3Rlc3Qtc2VydmljZVwxMzQvbG9jYWxob3N0DQpcMTM0QFRFU1Qu Q09NQFgtQ0FDSEVDT05GOg0KPj4gaW4gY2FjaGUgRklMRTprZXJieS1rZXJiL2tlcmIta2RjLXRl c3QvdGFyZ2V0L3RtcC90ZXN0LXRrdC5jYw0KPj4gMjAxNy0wNS0wNFQyMDo0NDowNiBTZXR0aW5n IHVwIFBGUyBmb3IgYXV0aCBjb250ZXh0DQo+PiAyMDE3LTA1LTA0VDIwOjQ0OjA2IHNldC1lcnJv cjogLTE3NjUzMjgyMzQ6IEVuY3J5cHRpb24gdHlwZQ0KPj4gZGVzLWNiYy1tZDUtZGVwcmVjYXRl ZCBub3Qgc3VwcG9ydGVkDQo+PiAyMDE3LTA1LTA0VDIwOjQ0OjA2IHNldC1lcnJvcjogLTE3NjUz MjgyMzQ6IEVuY3J5cHRpb24gdHlwZQ0KPj4gZGVzLWNiYy1tZDQtZGVwcmVjYXRlZCBub3Qgc3Vw cG9ydGVkDQo+PiAyMDE3LTA1LTA0VDIwOjQ0OjA2IHNldC1lcnJvcjogLTE3NjUzMjgyMzQ6IEVu Y3J5cHRpb24gdHlwZQ0KPj4gZGVzLWNiYy1jcmMtZGVwcmVjYXRlZCBub3Qgc3VwcG9ydGVkIEZp cnN0IGtlcmJlcm9zLmF1dGhHU1NDbGllbnRTdGVwDQo+PiBzdWNjZXNzZnVsDQo+Pg0KPj4gVGhh bmtzDQo+PiBKaWFqaWENCj4+DQo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJv bTogWmhlbmcsIEthaSBbbWFpbHRvOmthaS56aGVuZ0BpbnRlbC5jb21dDQo+PiBTZW50OiBXZWRu ZXNkYXksIE1heSAzLCAyMDE3IDc6MjkgUE0NCj4+IFRvOiBrZXJieUBkaXJlY3RvcnkuYXBhY2hl Lm9yZw0KPj4gU3ViamVjdDogUkU6IE1JVCBLZXJiZXJvcyBjb21wYXRpYmlsaXR5DQo+Pg0KPj4g SGkgTWFyYywNCj4+DQo+PiBJbiBjYXNlIHlvdSdyZSBub3QgYXdhcmUgb2YgdGhpcywgcGxlYXNl IGNoZWNrIG91dCB0aGUgbGF0ZXN0IGZpeA0KPj4gbWFkZSBieSBKaWFqaWEuIFdlIHRob3VnaHQg eW91ciBjYXNlIG1heSBiZSBkaWZmZXJlbnQsIGJ1dCB3b3VsZCBiZQ0KPj4gZ29vZCB0byBoYXZl IGEgY2hlY2sgYmVmb3JlIHdlIGNhbiByZXBlYXQvZml4IHlvdXIgY2FzZS4gVGhhbmtzLg0KPj4g aHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9ESVJLUkItNjI1DQo+Pg0KPj4g UmVnYXJkcywNCj4+IEthaQ0KPj4NCj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+PiBG cm9tOiBNYXJjIGRlIExpZ25pZSBbbWFpbHRvOm0uYy5kZWxpZ25pZUB4czRhbGwubmxdDQo+PiBT ZW50OiBTdW5kYXksIEFwcmlsIDMwLCAyMDE3IDc6NDUgUE0NCj4+IFRvOiBrZXJieUBkaXJlY3Rv cnkuYXBhY2hlLm9yZw0KPj4gU3ViamVjdDogUmU6IE1JVCBLZXJiZXJvcyBjb21wYXRpYmlsaXR5 DQo+Pg0KPj4gSGkgS2FpLA0KPj4NCj4+IFRoZSB0ZXJtaW5hbCBvdXRwdXQgYmVsb3cgaXMgZm9y IHRoZSBsYXRlc3QgTUlUIEtlcmJlcm9zIDEuMTUuMQ0KPj4gKGxvY2FsbHkgYnVpbHQgb24gVWJ1 bnR1IFhlbmlhbCkuIEJlZm9yZSB0aGF0LCBJIGFsc28gdGVzdGVkIHdpdGggdGhlDQo+PiBkZWZh dWx0IFhlbmlhbCBNSVQgS2VyYmVyb3MgcGFja2FnZXMgKDEuMTMuMiksIHdpdGggdGhlIHNhbWUg cmVzdWx0Lg0KPj4gSSBkaWQgbm90IHRyeSBlYXJsaWVyIE1JVCBLZXJiZXJvcyB2ZXJzaW9ucy4N Cj4+DQo+PiBNYXJjDQo+Pg0KPj4gT3AgMjktMDQtMTcgb20gMjE6NDIgc2NocmVlZiBNYXJjIGRl IExpZ25pZToNCj4+PiBIaSBLYWksDQo+Pj4NCj4+PiBUaGFua3MgZm9yIHRoZSByZXNwb25zZS4g SSBwcmVwYXJlZCBhIG1pbmltYWwgY29uZmlnIHRoYXQgcmVwcm9kdWNlcw0KPj4+IG15IHByb2Js ZW0uDQo+Pj4NCj4+PiBZb3UgY2FuIGZldGNoIHRoZSBicmFuY2gvY29tbWl0IGZyb206DQo+Pj4g aHR0cHM6Ly9naXRodWIuY29tL3Z0c2xhYi9kaXJlY3Rvcnkta2VyYnkvY29tbWl0cy9NaXRJc3N1 ZQ0KPj4+DQo+Pj4gVGhpcyBpcyByZWxhdGl2ZSB0byBSQzIsIGJ1dCBJIGFsc28gdHJpZWQgdGhp cyBvbiB0cnVuayBmb3IgbXkNCj4+PiBhY3R1YWwgcHJvamVjdC4NCj4+Pg0KPj4+IFRoaXMgY29u ZmlnIHByb2R1Y2VzIHRoZSBkZWJ1ZyBhbmQgZXJyb3IgbWVzc2FnZXMgYmVsb3cuDQo+Pj4NCj4+ PiAxLiBGb3IgdGhlIHRlcm1pbmFsIHdpdGggdGhlIGJhc2ggKyBweXRob24gc2NyaXB0ICQga2xp c3QgVGlja2V0DQo+Pj4gY2FjaGU6IEZJTEU6a2VyYnkta2VyYi9rZXJiLWtkYy10ZXN0L3Rhcmdl dC90bXAvdGVzdC10a3QuY2MNCj4+PiBEZWZhdWx0IHByaW5jaXBhbDogZHJhbmt5ZUBURVNULkNP TQ0KPj4+DQo+Pj4gVmFsaWQgc3RhcnRpbmcgICAgIEV4cGlyZXMgICAgICAgICAgICBTZXJ2aWNl IHByaW5jaXBhbA0KPj4+IDI5LTA0LTE3IDIxOjA3OjM5ICAzMC0wNC0xNyAwNTowNzozOSAga3Ji dGd0L1RFU1QuQ09NQFRFU1QuQ09NDQo+Pj4gICAgICByZW5ldyB1bnRpbCAyOS0wNC0xNyAyMTow NzozOQ0KPj4+DQo+Pj4gJCAuDQo+Pj4ga2VyYnkta2VyYi9rZXJiLWtkYy10ZXN0L3NyYy90ZXN0 L2phdmEvb3JnL2FwYWNoZS9rZXJieS9rZXJiZXJvcy9rZXINCj4+PiBiLyBzZXJ2ZXIvTWl0SXNz dWVUZXN0LnNoIFsxNTUzOF0gMTQ5MzQ5MTIzMS45MTc2MDY6IFJldHJpZXZpbmcNCj4+PiBkcmFu a3llQFRFU1QuQ09NIGZyb20gRklMRTovZXRjL2tyYjUvdXNlci8xMDAwL2NsaWVudC5rZXl0YWIg KHZubyAwLA0KPj4+IGVuY3R5cGUgMCkgd2l0aCByZXN1bHQ6DQo+Pj4gMi9LZXkgdGFibGUgZmls ZSAnL2V0Yy9rcmI1L3VzZXIvMTAwMC9jbGllbnQua2V5dGFiJyBub3QgZm91bmQNCj4+PiBbMTU1 MzhdDQo+Pj4gMTQ5MzQ5MTIzMS45MTc4Mjc6IFJldHJpZXZpbmcgZHJhbmt5ZUBURVNULkNPTSBm cm9tDQo+Pj4gRklMRTovZXRjL2tyYjUvdXNlci8xMDAwL2NsaWVudC5rZXl0YWIgKHZubyAwLCBl bmN0eXBlIDApIHdpdGggcmVzdWx0Og0KPj4+IDIvS2V5IHRhYmxlIGZpbGUgJy9ldGMva3JiNS91 c2VyLzEwMDAvY2xpZW50LmtleXRhYicgbm90IGZvdW5kDQo+Pj4ga2VyYmVyb3MuYXV0aEdTU0Ns aWVudEluaXQgc3VjY2Vzc2Z1bCBbMTU1MzhdIDE0OTM0OTEyMzEuOTE4MTg1Og0KPj4+IEdldHRp bmcgY3JlZGVudGlhbHMgZHJhbmt5ZUBURVNULkNPTSAtPiB0ZXN0LXNlcnZpY2UvbG9jYWxob3N0 QA0KPj4+IHVzaW5nIGNjYWNoZSBGSUxFOmtlcmJ5LWtlcmIva2VyYi1rZGMtdGVzdC90YXJnZXQv dG1wL3Rlc3QtdGt0LmNjDQo+Pj4gWzE1NTM4XSAxNDkzNDkxMjMxLjkxODIxMDogUmV0cmlldmlu ZyBkcmFua3llQFRFU1QuQ09NIC0+DQo+Pj4gdGVzdC1zZXJ2aWNlL2xvY2FsaG9zdEAgZnJvbQ0K Pj4+IEZJTEU6a2VyYnkta2VyYi9rZXJiLWtkYy10ZXN0L3RhcmdldC90bXAvdGVzdC10a3QuY2Mg d2l0aCByZXN1bHQ6DQo+Pj4gLTE3NjUzMjgyNDMvTWF0Y2hpbmcgY3JlZGVudGlhbCBub3QgZm91 bmQgKGZpbGVuYW1lOg0KPj4+IGtlcmJ5LWtlcmIva2VyYi1rZGMtdGVzdC90YXJnZXQvdG1wL3Rl c3QtdGt0LmNjKQ0KPj4+IFsxNTUzOF0gMTQ5MzQ5MTIzMS45MTgyMjY6IFJldHJ5aW5nIGRyYW5r eWVAVEVTVC5DT00gLT4NCj4+PiB0ZXN0LXNlcnZpY2UvbG9jYWxob3N0QFRFU1QuQ09NIHdpdGgg cmVzdWx0OiAtMTc2NTMyODI0My9NYXRjaGluZw0KPj4+IGNyZWRlbnRpYWwgbm90IGZvdW5kIChm aWxlbmFtZToNCj4+PiBrZXJieS1rZXJiL2tlcmIta2RjLXRlc3QvdGFyZ2V0L3RtcC90ZXN0LXRr dC5jYykNCj4+PiBbMTU1MzhdIDE0OTM0OTEyMzEuOTE4MjI5OiBTZXJ2ZXIgaGFzIHJlZmVycmFs IHJlYWxtOyBzdGFydGluZyB3aXRoDQo+Pj4gdGVzdC1zZXJ2aWNlL2xvY2FsaG9zdEBURVNULkNP TSBbMTU1MzhdIDE0OTM0OTEyMzEuOTE4Mjc4Og0KPj4+IFJldHJpZXZpbmcgZHJhbmt5ZUBURVNU LkNPTSAtPiBrcmJ0Z3QvVEVTVC5DT01AVEVTVC5DT00gZnJvbQ0KPj4+IEZJTEU6a2VyYnkta2Vy Yi9rZXJiLWtkYy10ZXN0L3RhcmdldC90bXAvdGVzdC10a3QuY2Mgd2l0aCByZXN1bHQ6DQo+Pj4g MC9TdWNjZXNzDQo+Pj4gWzE1NTM4XSAxNDkzNDkxMjMxLjkxODI4MTogU3RhcnRpbmcgd2l0aCBU R1QgZm9yIGNsaWVudCByZWFsbToNCj4+PiBkcmFua3llQFRFU1QuQ09NIC0+IGtyYnRndC9URVNU LkNPTUBURVNULkNPTSBbMTU1MzhdDQo+Pj4gMTQ5MzQ5MTIzMS45MTgzMDE6IFJlcXVlc3Rpbmcg dGlja2V0cyBmb3INCj4+PiB0ZXN0LXNlcnZpY2UvbG9jYWxob3N0QFRFU1QuQ09NLCByZWZlcnJh bHMgb24gWzE1NTM4XQ0KPj4+IDE0OTM0OTEyMzEuOTE4MzI2OiBHZW5lcmF0ZWQgc3Via2V5IGZv ciBUR1MgcmVxdWVzdDoNCj4+PiBhZXMxMjgtY3RzL0ZBMzANCj4+PiBbMTU1MzhdIDE0OTM0OTEy MzEuOTE4MzU5OiBldHlwZXMgcmVxdWVzdGVkIGluIFRHUyByZXF1ZXN0Og0KPj4+IGFlczI1Ni1j dHMsIGFlczEyOC1jdHMsIGFlczI1Ni1zaGEyLCBhZXMxMjgtc2hhMiwgZGVzMy1jYmMtc2hhMSwN Cj4+PiByYzQtaG1hYywgY2FtZWxsaWExMjgtY3RzLCBjYW1lbGxpYTI1Ni1jdHMgWzE1NTM4XSAx NDkzNDkxMjMxLjkxODQ4NDoNCj4+PiBFbmNvZGluZyByZXF1ZXN0IGJvZHkgYW5kIHBhZGF0YSBp bnRvIEZBU1QgcmVxdWVzdCBbMTU1MzhdDQo+Pj4gMTQ5MzQ5MTIzMS45MTg1NDE6IFNlbmRpbmcg cmVxdWVzdCAoODM2IGJ5dGVzKSB0byBURVNULkNPTSBbMTU1MzhdDQo+Pj4gMTQ5MzQ5MTIzMS45 MTg1OTc6IFJlc29sdmluZyBob3N0bmFtZSBsb2NhbGhvc3QgWzE1NTM4XQ0KPj4+IDE0OTM0OTEy MzEuOTE4NzAzOiBJbml0aWF0aW5nIFRDUCBjb25uZWN0aW9uIHRvIHN0cmVhbQ0KPj4+IDEyNy4w LjAuMTo0NDI5Mg0KPj4+IFsxNTUzOF0gMTQ5MzQ5MTIzMS45MTg3Nzc6IFNlbmRpbmcgVENQIHJl cXVlc3QgdG8gc3RyZWFtDQo+Pj4gMTI3LjAuMC4xOjQ0MjkyIFsxNTUzOF0gMTQ5MzQ5MTIzMS45 MjI4MDM6IFRDUCBlcnJvciByZWNlaXZpbmcgZnJvbQ0KPj4+IHN0cmVhbQ0KPj4+IDEyNy4wLjAu MTo0NDI5MjogMTA0L0Nvbm5lY3Rpb24gcmVzZXQgYnkgcGVlciBbMTU1MzhdDQo+Pj4gMTQ5MzQ5 MTIzMS45MjI4MTI6IFRlcm1pbmF0aW5nIFRDUCBjb25uZWN0aW9uIHRvIHN0cmVhbQ0KPj4+IDEy Ny4wLjAuMTo0NDI5Mg0KPj4+IFsxNTUzOF0gMTQ5MzQ5MTIzMS45MjI4NTg6IFNlbmRpbmcgaW5p dGlhbCBVRFAgcmVxdWVzdCB0byBkZ3JhbQ0KPj4+IDEyNy4wLjAuMTo0NDI5Mg0KPj4+ICgnRmly c3Qga2VyYmVyb3MuYXV0aEdTU0NsaWVudFN0ZXAgbm90IHN1Y2Nlc3NmdWwnLA0KPj4+IEdTU0Vy cm9yKCgnVW5zcGVjaWZpZWQgR1NTIGZhaWx1cmUuICBNaW5vciBjb2RlIG1heSBwcm92aWRlIG1v cmUNCj4+PiBpbmZvcm1hdGlvbicsIDg1MTk2OCksICgiQ2Fubm90IGNvbnRhY3QgYW55IEtEQyBm b3IgcmVhbG0NCj4+PiAnVEVTVC5DT00nIiwNCj4+PiAtMTc2NTMyODIyOCkpKQ0KPj4+DQo+Pj4g Mi4gRm9yIHRoZSB0ZXJtaW5hbCB0aGF0IHJ1bnMgbXZuIGNsZWFuIHRlc3QgLUR0ZXN0PU1pdElz c3VlVGVzdA0KPj4+IFJ1bm5pbmcgb3JnLmFwYWNoZS5rZXJieS5rZXJiZXJvcy5rZXJiLnNlcnZl ci5NaXRJc3N1ZVRlc3QNCj4+PiAyMDE3LTA0LTI5IDIxOjA3OjM5LDE4MiBERUJVRyBbbWFpbl0g YmFja2VuZC5BYnN0cmFjdElkZW50aXR5QmFja2VuZDoNCj4+PiBpbml0aWFsaXplIGNhbGxlZA0K Pj4+IDIwMTctMDQtMjkgMjE6MDc6MzksMTk1IERFQlVHIFttYWluXSBiYWNrZW5kLkFic3RyYWN0 SWRlbnRpdHlCYWNrZW5kOg0KPj4+IGdldElkZW50aXR5IGNhbGxlZCwgcHJpbmNpcGFsTmFtZSA9 IGtyYnRndC9URVNULkNPTUBURVNULkNPTQ0KPj4+IDIwMTctMDQtMjkgMjE6MDc6MzksMTk1IERF QlVHIFttYWluXSBiYWNrZW5kLkFic3RyYWN0SWRlbnRpdHlCYWNrZW5kOg0KPj4+IGdldElkZW50 aXR5IGZhaWxlZCwgcHJpbmNpcGFsTmFtZSA9IGtyYnRndC9URVNULkNPTUBURVNULkNPTQ0KPj4+ IDIwMTctMDQtMjkgMjE6MDc6MzksMjEyIERFQlVHIFttYWluXSBiYWNrZW5kLkFic3RyYWN0SWRl bnRpdHlCYWNrZW5kOg0KPj4+IGFkZElkZW50aXR5IHN1Y2Nlc3NmdWwsIHByaW5jaXBhbE5hbWUg PSBrcmJ0Z3QvVEVTVC5DT01AVEVTVC5DT00NCj4+PiAyMDE3LTA0LTI5IDIxOjA3OjM5LDIxMiBE RUJVRyBbbWFpbl0gYmFja2VuZC5BYnN0cmFjdElkZW50aXR5QmFja2VuZDoNCj4+PiBnZXRJZGVu dGl0eSBjYWxsZWQsIHByaW5jaXBhbE5hbWUgPSBrYWRtaW4vVEVTVC5DT01AVEVTVC5DT00NCj4+ PiAyMDE3LTA0LTI5IDIxOjA3OjM5LDIxMiBERUJVRyBbbWFpbl0gYmFja2VuZC5BYnN0cmFjdElk ZW50aXR5QmFja2VuZDoNCj4+PiBnZXRJZGVudGl0eSBmYWlsZWQsIHByaW5jaXBhbE5hbWUgPSBr YWRtaW4vVEVTVC5DT01AVEVTVC5DT00NCj4+PiAyMDE3LTA0LTI5IDIxOjA3OjM5LDIxMyBERUJV RyBbbWFpbl0gYmFja2VuZC5BYnN0cmFjdElkZW50aXR5QmFja2VuZDoNCj4+PiBhZGRJZGVudGl0 eSBzdWNjZXNzZnVsLCBwcmluY2lwYWxOYW1lID0ga2FkbWluL1RFU1QuQ09NQFRFU1QuQ09NDQo+ Pj4gMjAxNy0wNC0yOSAyMTowNzozOSwyMTYgREVCVUcgW21haW5dIGJhY2tlbmQuQWJzdHJhY3RJ ZGVudGl0eUJhY2tlbmQ6DQo+Pj4gc3RhcnQgY2FsbGVkDQo+Pj4gMjAxNy0wNC0yOSAyMTowNzoz OSwyMzIgREVCVUcgW21haW5dIGJhY2tlbmQuQWJzdHJhY3RJZGVudGl0eUJhY2tlbmQ6DQo+Pj4g YWRkSWRlbnRpdHkgc3VjY2Vzc2Z1bCwgcHJpbmNpcGFsTmFtZSA9DQo+Pj4gdGVzdC1zZXJ2aWNl L2xvY2FsaG9zdEBURVNULkNPTQ0KPj4+IDIwMTctMDQtMjkgMjE6MDc6MzksNDI1IERFQlVHIFtt YWluXSBiYWNrZW5kLkFic3RyYWN0SWRlbnRpdHlCYWNrZW5kOg0KPj4+IGFkZElkZW50aXR5IHN1 Y2Nlc3NmdWwsIHByaW5jaXBhbE5hbWUgPSBkcmFua3llQFRFU1QuQ09NDQo+Pj4gMjAxNy0wNC0y OSAyMTowNzozOSw0NjUgREVCVUcgW3Bvb2wtMS10aHJlYWQtMV0NCj4+PiBiYWNrZW5kLkFic3Ry YWN0SWRlbnRpdHlCYWNrZW5kOiBnZXRJZGVudGl0eSBjYWxsZWQsIHByaW5jaXBhbE5hbWUgPQ0K Pj4+IGtyYnRndC9URVNULkNPTUBURVNULkNPTQ0KPj4+IDIwMTctMDQtMjkgMjE6MDc6MzksNDY1 IERFQlVHIFtwb29sLTEtdGhyZWFkLTFdDQo+Pj4gYmFja2VuZC5BYnN0cmFjdElkZW50aXR5QmFj a2VuZDogZ2V0SWRlbnRpdHkgc3VjY2Vzc2Z1bCwNCj4+PiBwcmluY2lwYWxOYW1lID0ga3JidGd0 L1RFU1QuQ09NQFRFU1QuQ09NDQo+Pj4gMjAxNy0wNC0yOSAyMTowNzozOSw0NjUgSU5GTyAgW3Bv b2wtMS10aHJlYWQtMV0gcmVxdWVzdC5LZGNSZXF1ZXN0Og0KPj4+IENsaWVudCBlbnRyeSBpcyBl bXB0eS4NCj4+PiAyMDE3LTA0LTI5IDIxOjA3OjM5LDQ2NSBERUJVRyBbcG9vbC0xLXRocmVhZC0x XQ0KPj4+IGJhY2tlbmQuQWJzdHJhY3RJZGVudGl0eUJhY2tlbmQ6IGdldElkZW50aXR5IGNhbGxl ZCwgcHJpbmNpcGFsTmFtZSA9DQo+Pj4gZHJhbmt5ZUBURVNULkNPTQ0KPj4+IDIwMTctMDQtMjkg MjE6MDc6MzksNDY1IERFQlVHIFtwb29sLTEtdGhyZWFkLTFdDQo+Pj4gYmFja2VuZC5BYnN0cmFj dElkZW50aXR5QmFja2VuZDogZ2V0SWRlbnRpdHkgc3VjY2Vzc2Z1bCwNCj4+PiBwcmluY2lwYWxO YW1lID0gZHJhbmt5ZUBURVNULkNPTQ0KPj4+IDIwMTctMDQtMjkgMjE6MDc6MzksNDY1IERFQlVH IFtwb29sLTEtdGhyZWFkLTFdDQo+Pj4gYmFja2VuZC5BYnN0cmFjdElkZW50aXR5QmFja2VuZDog Z2V0SWRlbnRpdHkgY2FsbGVkLCBwcmluY2lwYWxOYW1lID0NCj4+PiBrcmJ0Z3QvVEVTVC5DT01A VEVTVC5DT00NCj4+PiAyMDE3LTA0LTI5IDIxOjA3OjM5LDQ2NSBERUJVRyBbcG9vbC0xLXRocmVh ZC0xXQ0KPj4+IGJhY2tlbmQuQWJzdHJhY3RJZGVudGl0eUJhY2tlbmQ6IGdldElkZW50aXR5IHN1 Y2Nlc3NmdWwsDQo+Pj4gcHJpbmNpcGFsTmFtZSA9IGtyYnRndC9URVNULkNPTUBURVNULkNPTQ0K Pj4+IDIwMTctMDQtMjkgMjE6MDc6MzksNDc2IERFQlVHIFtwb29sLTEtdGhyZWFkLTFdDQo+Pj4g aW1wbC5EZWZhdWx0S2RjSGFuZGxlcjogVHJhbnNwb3J0IG9yIGRlY29kaW5nIGVycm9yIG9jY3Vy cmVkLA0KPj4+IGRpc2Nvbm5lY3RpbmcgYWJub3JtYWxseSBqYXZhLmlvLkVPRkV4Y2VwdGlvbg0K Pj4+ICAgICAgYXQgamF2YS5pby5EYXRhSW5wdXRTdHJlYW0ucmVhZEludChEYXRhSW5wdXRTdHJl YW0uamF2YTozOTIpDQo+Pj4gICAgICBhdA0KPj4+IG9yZy5hcGFjaGUua2VyYnkua2VyYmVyb3Mu a2VyYi50cmFuc3BvcnQuS3JiVGNwVHJhbnNwb3J0LnJlY2VpdmVNZXNzDQo+Pj4gYWdlKEtyYlRj cFRyYW5zcG9ydC5qYXZhOjU0KQ0KPj4+DQo+Pj4gICAgICBhdA0KPj4+IG9yZy5hcGFjaGUua2Vy Ynkua2VyYmVyb3Mua2VyYi5zZXJ2ZXIuaW1wbC5EZWZhdWx0S2RjSGFuZGxlci5ydW4oRGVmDQo+ Pj4gYXVsdEtkY0hhbmRsZXIuamF2YTo0NikNCj4+Pg0KPj4+ICAgICAgYXQNCj4+PiBqYXZhLnV0 aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVj dXRvcg0KPj4+IC5qYXZhOjExNDIpDQo+Pj4NCj4+PiAgICAgIGF0DQo+Pj4gamF2YS51dGlsLmNv bmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG8N Cj4+PiByLmphdmE6NjE3KQ0KPj4+DQo+Pj4gICAgICBhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihU aHJlYWQuamF2YTo3NDgpDQo+Pj4gMjAxNy0wNC0yOSAyMTowNzozOSw0NzcgSU5GTyAgW21haW5d IGNsaWVudC5LcmJDbGllbnRCYXNlOiBTdG9yaW5nDQo+Pj4gdGhlIHRndCB0byB0aGUgY3JlZGVu dGlhbCBjYWNoZSBmaWxlLg0KPj4+IDIwMTctMDQtMjkgMjE6MDc6MzksNDkxIERFQlVHIFttYWlu XSBiYWNrZW5kLkFic3RyYWN0SWRlbnRpdHlCYWNrZW5kOg0KPj4+IGdldElkZW50aXR5IGNhbGxl ZCwgcHJpbmNpcGFsTmFtZSA9IHRlc3Qtc2VydmljZS9sb2NhbGhvc3RAVEVTVC5DT00NCj4+PiAy MDE3LTA0LTI5IDIxOjA3OjM5LDQ5MSBERUJVRyBbbWFpbl0gYmFja2VuZC5BYnN0cmFjdElkZW50 aXR5QmFja2VuZDoNCj4+PiBnZXRJZGVudGl0eSBzdWNjZXNzZnVsLCBwcmluY2lwYWxOYW1lID0N Cj4+PiB0ZXN0LXNlcnZpY2UvbG9jYWxob3N0QFRFU1QuQ09NDQo+Pj4gMjAxNy0wNC0yOSAyMTow NzozOSw0OTggREVCVUcgW3Bvb2wtMS10aHJlYWQtMV0NCj4+PiBiYWNrZW5kLkFic3RyYWN0SWRl bnRpdHlCYWNrZW5kOiBnZXRJZGVudGl0eSBjYWxsZWQsIHByaW5jaXBhbE5hbWUgPQ0KPj4+IGty YnRndC9URVNULkNPTUBURVNULkNPTQ0KPj4+IDIwMTctMDQtMjkgMjE6MDc6MzksNDk4IERFQlVH IFtwb29sLTEtdGhyZWFkLTFdDQo+Pj4gYmFja2VuZC5BYnN0cmFjdElkZW50aXR5QmFja2VuZDog Z2V0SWRlbnRpdHkgc3VjY2Vzc2Z1bCwNCj4+PiBwcmluY2lwYWxOYW1lID0ga3JidGd0L1RFU1Qu Q09NQFRFU1QuQ09NDQo+Pj4gMjAxNy0wNC0yOSAyMTowNzozOSw0OTggSU5GTyAgW3Bvb2wtMS10 aHJlYWQtMV0gcmVxdWVzdC5LZGNSZXF1ZXN0Og0KPj4+IENsaWVudCBlbnRyeSBpcyBlbXB0eS4N Cj4+PiAyMDE3LTA0LTI5IDIxOjA3OjM5LDQ5OSBERUJVRyBbcG9vbC0xLXRocmVhZC0xXQ0KPj4+ IGJhY2tlbmQuQWJzdHJhY3RJZGVudGl0eUJhY2tlbmQ6IGdldElkZW50aXR5IGNhbGxlZCwgcHJp bmNpcGFsTmFtZSA9DQo+Pj4gdGVzdC1zZXJ2aWNlL2xvY2FsaG9zdEBURVNULkNPTQ0KPj4+IDIw MTctMDQtMjkgMjE6MDc6MzksNDk5IERFQlVHIFtwb29sLTEtdGhyZWFkLTFdDQo+Pj4gYmFja2Vu ZC5BYnN0cmFjdElkZW50aXR5QmFja2VuZDogZ2V0SWRlbnRpdHkgc3VjY2Vzc2Z1bCwNCj4+PiBw cmluY2lwYWxOYW1lID0gdGVzdC1zZXJ2aWNlL2xvY2FsaG9zdEBURVNULkNPTQ0KPj4+IDIwMTct MDQtMjkgMjE6MDc6MzksNDk5IERFQlVHIFtwb29sLTEtdGhyZWFkLTFdDQo+Pj4gYmFja2VuZC5B YnN0cmFjdElkZW50aXR5QmFja2VuZDogZ2V0SWRlbnRpdHkgY2FsbGVkLCBwcmluY2lwYWxOYW1l ID0NCj4+PiBrcmJ0Z3QvVEVTVC5DT01AVEVTVC5DT00NCj4+PiAyMDE3LTA0LTI5IDIxOjA3OjM5 LDQ5OSBERUJVRyBbcG9vbC0xLXRocmVhZC0xXQ0KPj4+IGJhY2tlbmQuQWJzdHJhY3RJZGVudGl0 eUJhY2tlbmQ6IGdldElkZW50aXR5IHN1Y2Nlc3NmdWwsDQo+Pj4gcHJpbmNpcGFsTmFtZSA9IGty YnRndC9URVNULkNPTUBURVNULkNPTQ0KPj4+IDIwMTctMDQtMjkgMjE6MDc6MzksNDk5IElORk8g IFtwb29sLTEtdGhyZWFkLTFdIHJlcXVlc3QuS2RjUmVxdWVzdDoNCj4+PiBUaGUgcHJlYXV0aCBk YXRhIGlzIGVtcHR5Lg0KPj4+IDIwMTctMDQtMjkgMjE6MDc6MzksNTAxIElORk8gIFtwb29sLTEt dGhyZWFkLTFdIHNlcnZlci5LZGNIYW5kbGVyOg0KPj4+IEtSQiBlcnJvciBvY2N1cnJlZCB3aGls ZSBwcm9jZXNzaW5nIHJlcXVlc3Q6QWRkaXRpb25hbA0KPj4+IHByZS1hdXRoZW50aWNhdGlvbiBy ZXF1aXJlZA0KPj4+IDIwMTctMDQtMjkgMjE6MDc6MzksNTAyIERFQlVHIFtwb29sLTEtdGhyZWFk LTFdDQo+Pj4gaW1wbC5EZWZhdWx0S2RjSGFuZGxlcjogVHJhbnNwb3J0IG9yIGRlY29kaW5nIGVy cm9yIG9jY3VycmVkLA0KPj4+IGRpc2Nvbm5lY3RpbmcgYWJub3JtYWxseSBqYXZhLmlvLkVPRkV4 Y2VwdGlvbg0KPj4+ICAgICAgYXQgamF2YS5pby5EYXRhSW5wdXRTdHJlYW0ucmVhZEludChEYXRh SW5wdXRTdHJlYW0uamF2YTozOTIpDQo+Pj4gICAgICBhdA0KPj4+IG9yZy5hcGFjaGUua2VyYnku a2VyYmVyb3Mua2VyYi50cmFuc3BvcnQuS3JiVGNwVHJhbnNwb3J0LnJlY2VpdmVNZXNzDQo+Pj4g YWdlKEtyYlRjcFRyYW5zcG9ydC5qYXZhOjU0KQ0KPj4+DQo+Pj4gICAgICBhdA0KPj4+IG9yZy5h cGFjaGUua2VyYnkua2VyYmVyb3Mua2VyYi5zZXJ2ZXIuaW1wbC5EZWZhdWx0S2RjSGFuZGxlci5y dW4oRGVmDQo+Pj4gYXVsdEtkY0hhbmRsZXIuamF2YTo0NikNCj4+Pg0KPj4+ICAgICAgYXQNCj4+ PiBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVh ZFBvb2xFeGVjdXRvcg0KPj4+IC5qYXZhOjExNDIpDQo+Pj4NCj4+PiAgICAgIGF0DQo+Pj4gamF2 YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9v bEV4ZWN1dG8NCj4+PiByLmphdmE6NjE3KQ0KPj4+DQo+Pj4gICAgICBhdCBqYXZhLmxhbmcuVGhy ZWFkLnJ1bihUaHJlYWQuamF2YTo3NDgpDQo+Pj4gMjAxNy0wNC0yOSAyMTowNzozOSw1MDUgREVC VUcgW3Bvb2wtMS10aHJlYWQtMV0NCj4+PiBiYWNrZW5kLkFic3RyYWN0SWRlbnRpdHlCYWNrZW5k OiBnZXRJZGVudGl0eSBjYWxsZWQsIHByaW5jaXBhbE5hbWUgPQ0KPj4+IGtyYnRndC9URVNULkNP TUBURVNULkNPTQ0KPj4+IDIwMTctMDQtMjkgMjE6MDc6MzksNTA1IERFQlVHIFtwb29sLTEtdGhy ZWFkLTFdDQo+Pj4gYmFja2VuZC5BYnN0cmFjdElkZW50aXR5QmFja2VuZDogZ2V0SWRlbnRpdHkg c3VjY2Vzc2Z1bCwNCj4+PiBwcmluY2lwYWxOYW1lID0ga3JidGd0L1RFU1QuQ09NQFRFU1QuQ09N DQo+Pj4gMjAxNy0wNC0yOSAyMTowNzozOSw1MDUgSU5GTyAgW3Bvb2wtMS10aHJlYWQtMV0gcmVx dWVzdC5LZGNSZXF1ZXN0Og0KPj4+IENsaWVudCBlbnRyeSBpcyBlbXB0eS4NCj4+PiAyMDE3LTA0 LTI5IDIxOjA3OjM5LDUwNiBERUJVRyBbcG9vbC0xLXRocmVhZC0xXQ0KPj4+IGJhY2tlbmQuQWJz dHJhY3RJZGVudGl0eUJhY2tlbmQ6IGdldElkZW50aXR5IGNhbGxlZCwgcHJpbmNpcGFsTmFtZSA9 DQo+Pj4gdGVzdC1zZXJ2aWNlL2xvY2FsaG9zdEBURVNULkNPTQ0KPj4+IDIwMTctMDQtMjkgMjE6 MDc6MzksNTA2IERFQlVHIFtwb29sLTEtdGhyZWFkLTFdDQo+Pj4gYmFja2VuZC5BYnN0cmFjdElk ZW50aXR5QmFja2VuZDogZ2V0SWRlbnRpdHkgc3VjY2Vzc2Z1bCwNCj4+PiBwcmluY2lwYWxOYW1l ID0gdGVzdC1zZXJ2aWNlL2xvY2FsaG9zdEBURVNULkNPTQ0KPj4+IDIwMTctMDQtMjkgMjE6MDc6 MzksNTA2IERFQlVHIFtwb29sLTEtdGhyZWFkLTFdDQo+Pj4gYmFja2VuZC5BYnN0cmFjdElkZW50 aXR5QmFja2VuZDogZ2V0SWRlbnRpdHkgY2FsbGVkLCBwcmluY2lwYWxOYW1lID0NCj4+PiBrcmJ0 Z3QvVEVTVC5DT01AVEVTVC5DT00NCj4+PiAyMDE3LTA0LTI5IDIxOjA3OjM5LDUwNiBERUJVRyBb cG9vbC0xLXRocmVhZC0xXQ0KPj4+IGJhY2tlbmQuQWJzdHJhY3RJZGVudGl0eUJhY2tlbmQ6IGdl dElkZW50aXR5IHN1Y2Nlc3NmdWwsDQo+Pj4gcHJpbmNpcGFsTmFtZSA9IGtyYnRndC9URVNULkNP TUBURVNULkNPTQ0KPj4+IDIwMTctMDQtMjkgMjE6MDc6MzksNTEwIERFQlVHIFtwb29sLTEtdGhy ZWFkLTFdDQo+Pj4gaW1wbC5EZWZhdWx0S2RjSGFuZGxlcjogVHJhbnNwb3J0IG9yIGRlY29kaW5n IGVycm9yIG9jY3VycmVkLA0KPj4+IGRpc2Nvbm5lY3RpbmcgYWJub3JtYWxseSBqYXZhLmlvLkVP RkV4Y2VwdGlvbg0KPj4+ICAgICAgYXQgamF2YS5pby5EYXRhSW5wdXRTdHJlYW0ucmVhZEludChE YXRhSW5wdXRTdHJlYW0uamF2YTozOTIpDQo+Pj4gICAgICBhdA0KPj4+IG9yZy5hcGFjaGUua2Vy Ynkua2VyYmVyb3Mua2VyYi50cmFuc3BvcnQuS3JiVGNwVHJhbnNwb3J0LnJlY2VpdmVNZXNzDQo+ Pj4gYWdlKEtyYlRjcFRyYW5zcG9ydC5qYXZhOjU0KQ0KPj4+DQo+Pj4gICAgICBhdA0KPj4+IG9y Zy5hcGFjaGUua2VyYnkua2VyYmVyb3Mua2VyYi5zZXJ2ZXIuaW1wbC5EZWZhdWx0S2RjSGFuZGxl ci5ydW4oRGVmDQo+Pj4gYXVsdEtkY0hhbmRsZXIuamF2YTo0NikNCj4+Pg0KPj4+ICAgICAgYXQN Cj4+PiBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRo cmVhZFBvb2xFeGVjdXRvcg0KPj4+IC5qYXZhOjExNDIpDQo+Pj4NCj4+PiAgICAgIGF0DQo+Pj4g amF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFk UG9vbEV4ZWN1dG8NCj4+PiByLmphdmE6NjE3KQ0KPj4+DQo+Pj4gICAgICBhdCBqYXZhLmxhbmcu VGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDgpDQo+Pj4gMjAxNy0wNC0yOSAyMTowNzo1NSw2MDIg REVCVUcgW3Bvb2wtMS10aHJlYWQtMV0NCj4+PiBiYWNrZW5kLkFic3RyYWN0SWRlbnRpdHlCYWNr ZW5kOiBnZXRJZGVudGl0eSBjYWxsZWQsIHByaW5jaXBhbE5hbWUgPQ0KPj4+IGtyYnRndC9URVNU LkNPTUBURVNULkNPTQ0KPj4+IDIwMTctMDQtMjkgMjE6MDc6NTUsNjAyIERFQlVHIFtwb29sLTEt dGhyZWFkLTFdDQo+Pj4gYmFja2VuZC5BYnN0cmFjdElkZW50aXR5QmFja2VuZDogZ2V0SWRlbnRp dHkgc3VjY2Vzc2Z1bCwNCj4+PiBwcmluY2lwYWxOYW1lID0ga3JidGd0L1RFU1QuQ09NQFRFU1Qu Q09NDQo+Pj4gMjAxNy0wNC0yOSAyMTowNzo1NSw2MDIgSU5GTyAgW3Bvb2wtMS10aHJlYWQtMV0g cmVxdWVzdC5LZGNSZXF1ZXN0Og0KPj4+IEZvdW5kIGZhc3QgcGFkYXRhIGFuZCBzdGFydCB0byBw cm9jZXNzIGl0Lg0KPj4+IDIwMTctMDQtMjkgMjE6MDc6NTUsNjAzIEVSUk9SIFtwb29sLTEtdGhy ZWFkLTFdDQo+Pj4gaW1wbC5EZWZhdWx0S2RjSGFuZGxlcjogRXJyb3Igb2NjdXJlZCB3aGlsZSBw cm9jZXNzaW5nIHJlcXVlc3Q6DQo+Pj4gb3JnLmFwYWNoZS5rZXJieS5rZXJiZXJvcy5rZXJiLkty YkV4Y2VwdGlvbjogRGVjb2RpbmcgZmFpbGVkDQo+Pj4gICAgICBhdA0KPj4+IG9yZy5hcGFjaGUu a2VyYnkua2VyYmVyb3Mua2VyYi5LcmJDb2RlYy5kZWNvZGUoS3JiQ29kZWMuamF2YTo4NSkNCj4+ PiAgICAgIGF0DQo+Pj4gb3JnLmFwYWNoZS5rZXJieS5rZXJiZXJvcy5rZXJiLktyYkNvZGVjLmRl Y29kZShLcmJDb2RlYy5qYXZhOjcwKQ0KPj4+ICAgICAgYXQNCj4+PiBvcmcuYXBhY2hlLmtlcmJ5 LmtlcmJlcm9zLmtlcmIuc2VydmVyLnJlcXVlc3QuS2RjUmVxdWVzdC5rZGNGaW5kRmFzdA0KPj4+ IChLZGNSZXF1ZXN0LmphdmE6MjA4KQ0KPj4+DQo+Pj4gICAgICBhdA0KPj4+IG9yZy5hcGFjaGUu a2VyYnkua2VyYmVyb3Mua2VyYi5zZXJ2ZXIucmVxdWVzdC5LZGNSZXF1ZXN0LnByb2Nlc3MoS2Rj DQo+Pj4gUmVxdWVzdC5qYXZhOjE2OCkNCj4+Pg0KPj4+ICAgICAgYXQNCj4+PiBvcmcuYXBhY2hl LmtlcmJ5LmtlcmJlcm9zLmtlcmIuc2VydmVyLktkY0hhbmRsZXIuaGFuZGxlTWVzc2FnZShLZGNI YQ0KPj4+IG5kbGVyLmphdmE6MTE1KQ0KPj4+DQo+Pj4gICAgICBhdA0KPj4+IG9yZy5hcGFjaGUu a2VyYnkua2VyYmVyb3Mua2VyYi5zZXJ2ZXIuaW1wbC5EZWZhdWx0S2RjSGFuZGxlci5oYW5kbGVN DQo+Pj4gZXNzYWdlKERlZmF1bHRLZGNIYW5kbGVyLmphdmE6NjcpDQo+Pj4NCj4+PiAgICAgIGF0 DQo+Pj4gb3JnLmFwYWNoZS5rZXJieS5rZXJiZXJvcy5rZXJiLnNlcnZlci5pbXBsLkRlZmF1bHRL ZGNIYW5kbGVyLnJ1bihEZWYNCj4+PiBhdWx0S2RjSGFuZGxlci5qYXZhOjUyKQ0KPj4+DQo+Pj4g ICAgICBhdA0KPj4+IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5X b3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yDQo+Pj4gLmphdmE6MTE0MikNCj4+Pg0KPj4+ICAgICAg YXQNCj4+PiBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1 bihUaHJlYWRQb29sRXhlY3V0bw0KPj4+IHIuamF2YTo2MTcpDQo+Pj4NCj4+PiAgICAgIGF0IGph dmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0OCkNCj4+PiBDYXVzZWQgYnk6IGphdmEu aW8uSU9FeGNlcHRpb246IFVuZXhwZWN0ZWQgaXRlbSBjb250ZXh0IFswXQ0KPj4+IFt0YWc9MHhB MCwgb2ZmPTAsIGxlbj0zKzIwN10sIGV4cGVjdGluZyAweDMwDQo+Pj4gICAgICBhdA0KPj4+IG9y Zy5hcGFjaGUua2VyYnkuYXNuMS50eXBlLkFzbjFFbmNvZGVhYmxlLmRlY29kZShBc24xRW5jb2Rl YWJsZS5qYXZhDQo+Pj4gOjIxMCkNCj4+Pg0KPj4+ICAgICAgYXQNCj4+PiBvcmcuYXBhY2hlLmtl cmJ5LmFzbjEudHlwZS5Bc24xRW5jb2RlYWJsZS5kZWNvZGUoQXNuMUVuY29kZWFibGUuamF2YQ0K Pj4+IDoxOTcpDQo+Pj4NCj4+PiAgICAgIGF0DQo+Pj4gb3JnLmFwYWNoZS5rZXJieS5rZXJiZXJv cy5rZXJiLktyYkNvZGVjLmRlY29kZShLcmJDb2RlYy5qYXZhOjgzKQ0KPj4+ICAgICAgLi4uIDkg bW9yZQ0KPj4+IDIwMTctMDQtMjkgMjE6MDc6NTUsNjA0IERFQlVHIFtwb29sLTEtdGhyZWFkLTFd DQo+Pj4gaW1wbC5EZWZhdWx0S2RjSGFuZGxlcjogVHJhbnNwb3J0IG9yIGRlY29kaW5nIGVycm9y IG9jY3VycmVkLA0KPj4+IGRpc2Nvbm5lY3RpbmcgYWJub3JtYWxseQ0KPj4+IGphdmEubmV0LlNv Y2tldEV4Y2VwdGlvbjogU29ja2V0IGNsb3NlZA0KPj4+ICAgICAgYXQgamF2YS5uZXQuU29ja2V0 SW5wdXRTdHJlYW0uc29ja2V0UmVhZDAoTmF0aXZlIE1ldGhvZCkNCj4+PiAgICAgIGF0DQo+Pj4g amF2YS5uZXQuU29ja2V0SW5wdXRTdHJlYW0uc29ja2V0UmVhZChTb2NrZXRJbnB1dFN0cmVhbS5q YXZhOjExNikNCj4+PiAgICAgIGF0IGphdmEubmV0LlNvY2tldElucHV0U3RyZWFtLnJlYWQoU29j a2V0SW5wdXRTdHJlYW0uamF2YToxNzEpDQo+Pj4gICAgICBhdCBqYXZhLm5ldC5Tb2NrZXRJbnB1 dFN0cmVhbS5yZWFkKFNvY2tldElucHV0U3RyZWFtLmphdmE6MTQxKQ0KPj4+ICAgICAgYXQgamF2 YS5uZXQuU29ja2V0SW5wdXRTdHJlYW0ucmVhZChTb2NrZXRJbnB1dFN0cmVhbS5qYXZhOjIyNCkN Cj4+PiAgICAgIGF0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtLnJlYWRJbnQoRGF0YUlucHV0U3Ry ZWFtLmphdmE6Mzg3KQ0KPj4+ICAgICAgYXQNCj4+PiBvcmcuYXBhY2hlLmtlcmJ5LmtlcmJlcm9z LmtlcmIudHJhbnNwb3J0LktyYlRjcFRyYW5zcG9ydC5yZWNlaXZlTWVzcw0KPj4+IGFnZShLcmJU Y3BUcmFuc3BvcnQuamF2YTo1NCkNCj4+Pg0KPj4+ICAgICAgYXQNCj4+PiBvcmcuYXBhY2hlLmtl cmJ5LmtlcmJlcm9zLmtlcmIuc2VydmVyLmltcGwuRGVmYXVsdEtkY0hhbmRsZXIucnVuKERlZg0K Pj4+IGF1bHRLZGNIYW5kbGVyLmphdmE6NDYpDQo+Pj4NCj4+PiAgICAgIGF0DQo+Pj4gamF2YS51 dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhl Y3V0b3INCj4+PiAuamF2YToxMTQyKQ0KPj4+DQo+Pj4gICAgICBhdA0KPj4+IGphdmEudXRpbC5j b25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRv DQo+Pj4gci5qYXZhOjYxNykNCj4+Pg0KPj4+ICAgICAgYXQgamF2YS5sYW5nLlRocmVhZC5ydW4o VGhyZWFkLmphdmE6NzQ4KQ0KPj4+DQo+Pj4gSW4gYSBGcmVlSVBBIGVudmlyb25tZW50IHRoZXNl IHB5dGhvbiBsaW5lcyAianVzdCIgd29yay4NCj4+Pg0KPj4+IEFueSBzdWdnZXN0aW9ucyBhcmUg d2VsY29tZSENCj4+Pg0KPj4+IE1hcmMNCj4+Pg0KPj4+DQo+PiAtLQ0KPj4gTWFyYyBkZSBMaWdu aWUNCj4+DQo+DQoNCi0tDQpNYXJjIGRlIExpZ25pZQ0KDQoNCg0K --1__=8FBB0B89DFAE58318f9e8a93df938690918c8FBB0B89DFAE5831 Content-Transfer-Encoding: quoted-printable Content-type: text/html; charset=UTF-8 Content-Disposition: inline

Hi Marc

On t= he topic of python and kerberos, have you tried python gssapi?
The code snippet below works for me against a FreeIPA cl= ient, KDC and Service Principal, whereas the equivalent Java GSS-API does n= ot (yet), which made me look at kerb-client....

#!/usr/bin/python3.5

import gssapi
from io
import BytesIO

server=5Fname =3D 'HTTP/app-srv.acme.co= m@ACME.COM'
se= rvice=5Fname =3D gssapi.
Name(serve= r=5Fname)

client=5Fctx =3D gssapi.
SecurityContext(name=3Dservice=5Fname, usage=3D'initiate')
initial=5Fclient=5Ftoken =3D client=5Fct= x.step()



Cheers

Chris

3D"Inactiv="Zheng, Kai" ---08/05/2017 12:58:10---Hi Marc, T= hanks for your patience. It looks to me there is some issue in Kerby with H= eimdal compatib

From: = "Zheng, Kai" <kai.zheng@intel.com&g= t;
To: "kerby@directory.apache.org" <kerby@directory.apache.o= rg>
Date: 08/05/2017 12:58

Subject: RE: MIT Kerberos compatibility





Hi Marc,

Thanks for your= patience. It looks to me there is some issue in Kerby with Heimdal compati= bility. Note we haven't supported Heimdal yet. So far, Kerby is tested and = can support these clients:
1. Oracle Java;
2. Kerby client;
3. MIT= client.

Both compatibility tests with MS AD and Heimdal haven't bee= n done yet. For Heimdal, I thought we can get back to this later (hope soon= , a week later). We're pretty busy with urgent things, sorry.

Regard= s,
Kai

-----Original Message-----
From: Marc de Lignie [
mailto= :m.c.delignie@xs4all.nl]
Sent: Sun= day, May 07, 2017 10:13 PM
To: kerby@directory.apache.org
Subject: Re= : MIT Kerberos compatibility

Hi Jiajia and Kai,

Puzzled by th= e fact that the Mit Kerberos over python service ticket request works on Ji= ajia's system but not on mine. I attempted to request the service ticket wi= th Mit Kerberos's kinit tool and .... it worked.

This means that my = issue probably lies in the kerberos python wrapper around the Mit Kerberos = shared libs (or in the way how I use it). I tried both with the Debian pyth= on-kerberos package,
https://pypi.python.org/pypi/kerberos and with https://pypi.py= thon.org/pypi/pykerberos/1.1.14, neith= er of which got the ticket. This still makes me curious where Mac-OS gets i= ts python kerberos package from :-)

Here, the kinit shell commands t= o reproduce my test.

cd $PROJECTROOT
WORKDIR=3Dkerby-kerb/kerb-kd= c-test/target/tmp
export KRB5=5FCONFIG=3D$WORKDIR/krb5.conf
export KR= B5CCNAME=3D$WORKDIR/test-tkt.cc
export KRB5=5FTRACE=3D/dev/stdout
$ kinit -S test-service/localhost
[3141] 1494161999.566468: Getting ini= tial credentials for drankye@TEST.COM [3141] 1494161999.566835: Setting ini= tial creds service to test-service/localhost [3141] 1494161999.566952: Send= ing request (168 bytes) to TEST.COM [3141] 1494161999.566997: Resolving hos= tname localhost [3141] 1494161999.567467: Sending initial UDP request to dg= ram
127.0.0.1:45527
[3141] 1494161999.573494: Received answer (555 by= tes) from dgram
127.0.0.1:45527
[3141] 1494161999.576791: Response wa= s not from master KDC [3141] 1494161999.576822: Salt derived from principal= : TEST.COMdrankye [3141] 1494161999.576824: Getting AS key, salt "TEST= .COMdrankye", params ""
Password for drankye@TEST.COM:[3141] 1494162015.450071: AS key obtained from gak=5Ffct: aes128-cts/0548 = [3141] 1494162015.450101: Decrypted AS reply; session key is:
aes128-ct= s/4EFE
[3141] 1494162015.450103: FAST negotiation: unavailable [3141] 14= 94162015.450112: Initializing
FILE:kerby-kerb/kerb-k= dc-test/target/tmp/test-tkt.cc wi= th default princ drankye@TEST.COM [3141] 1494162015.450305: Storing drankye= @TEST.COM -> test-service/localhost@TEST.COM in F= ILE:kerby-kerb/kerb-kdc-test/target/tmp/test-tkt.cc

$ klist
Ticket cache:
FILE:k= erby-kerb/kerb-kdc-test/target/tmp/test-tkt.cc
Default principal: drankye@TEST.COM

Valid starting  = ;   Expires            Service principal=
07-05-17 14:59:59  08-05-17 14:59:59 test-service/localhost@TEST.C= OM
    renew until 08-05-17 14:59:59

What is also nota= ble here is that the TestKdc only produces one log message:

[nioEven= tLoopGroup-5-1] INFO
org.apache.kerby.kerberos.kerb.server.request.AsReq= uest - AS=5FREQ ISSUE:
authtime 1494164956766,drankye@TEST.COM for test= -service/localhost@TEST.COM

while in the error situation from python= it produces (and not the AS=5FREQ
line):

[nioEventLoopGroup-5-1]= INFO
org.apache.kerby.kerberos.kerb.server.request.KdcRequest - Found f= ast padata and starting to process it.
[nioEventLoopGroup-5-1] INFO
o= rg.apache.kerby.kerberos.kerb.server.request.KdcRequest - Found fast padata= and starting to process it.

Note also that kinit requires to give t= he password while in the python testcase it is attempted to use the tgt fro= m the credential cache.

Maybe it also useful to restate my target: I= want to authenticate a python client towards a service using GSSAPI with S= ASL (the service being gremlin-server from the Apache Tinkerpop project). S= o I want to get the service ticket using GSSAPI and an existing tgt from th= e credential cache.

Any additional hints are welcome, good luck with= the Kerby GA release.

Marc

Op 05-05-17 om 22:12 schreef Marc= de Lignie:
> Hi Jiajia,
>
> Thanks for the netty config = option. This indeed helped to get rid of
> the udp errors, but did n= ot help in getting the service ticket (final
> error message remains= the same).
>
> I also noticed that I get the same error from t= he python console
> whether I specify the right service name or some= service name for
> which no service principal exists in the TestKdc= .
>
> I did not succeed in getting mvn tst to print the debug l= ogging of the
> various kdc classes involved.
>
> Did yo= u check with klist whether drankye's credential cache contains
> the= service ticket for test-service?
>
> Cheers,    Marc=
>
>
> Op 04-05-17 om 14:55 schreef Li, Jiajia:
>&g= t; Hi Marc,
>> I try to run your test(through applying your patch = in the trunk) , I
>> think it's success now.  Could you take= some time to check about it?
>> Here is the log:
>>
&= gt;> directory-kerby git:(trunk) =E2=9C=97 .
>> kerby-kerb/ker= b-kdc-test/src/test/java/org/apache/kerby/kerberos/kerb
>> /server= /MitIssueTest.sh kerberos.authGSSClientInit successful
>> 2017-05-= 04T20:44:06 set-error: -1765328234: entypes not supported
>> 2017-= 05-04T20:44:06 set-error: -1765328243: Did not find credential
>>= for krb5=5Fccache=5Fconf=5Fdata/realm-config@X-CACHECONF: in cache
>= ;>
FILE:kerby-kerb/kerb-kdc-test/target/tmp/test-= tkt.cc
>> 2017-05-04T20:44:06= set-error: -1765328243: Did not find credential
>> for test-serv= ice/localhost@TEST.COM in cache
>>
FILE:ke= rby-kerb/kerb-kdc-test/target/tmp/test-tkt.cc
>> 2017-05-04T20:44:06 set-error: -1765328243: Did not fin= d credential
>> for
>> krb5=5Fccache=5Fconf=5Fdata/negat= ive-cache/test-service\134/localhost\134@TEST.COM@X-CACHECONF:
>>= in cache
FILE:kerby-kerb/kerb-kdc-test/target/tmp/t= est-tkt.cc
>> 2017-05-04T20:4= 4:06 set-error: -1765328243: Did not find credential
>> for krb5= =5Fccache=5Fconf=5Fdata/lkdc-hostname@X-CACHECONF: in cache
>>
FILE:kerby-kerb/kerb-kdc-test/target/tmp/test-tkt.cc
>> 2017-05-04T20:44:06 set-err= or: -1765328243: Did not find credential
>> for krb5=5Fccache=5Fc= onf=5Fdata/sitename@X-CACHECONF: in cache
>>
FILE:kerby-kerb/kerb-kdc-test/target/tmp/test-tkt.cc
=
>> 2017-05-04T20:44:06 set-error: -1765328243: D= id not find credential
>> for test-service/localhost@TEST.COM in = cache
>>
FILE:kerby-kerb/kerb-kdc-test/tar= get/tmp/test-tkt.cc
>> 2017-0= 5-04T20:44:06 set-error: -1765328234: Encryption type
>> des-cbc-= md5-deprecated not supported
>> 2017-05-04T20:44:06 set-error: -17= 65328234: Encryption type
>> des-cbc-md4-deprecated not supported=
>> 2017-05-04T20:44:06 set-error: -1765328234: Encryption type >> des-cbc-crc-deprecated not supported
>> 2017-05-04T20:4= 4:06 Trying to find service kdc for realm TEST.COM
>> flags 0
= >> 2017-05-04T20:44:06 configuration file for realm TEST.COM found>> 2017-05-04T20:44:06 submissing new requests to new host
>&g= t; 2017-05-04T20:44:06 host=5Fcreate: setting hostname localhost
>>= ; 2017-05-04T20:44:06 connecting to host: udp ::1:52534 (localhost)
>= > tid: 00000001
>> 2017-05-04T20:44:06 host=5Fcreate: setting h= ostname localhost
>> 2017-05-04T20:44:06 Queuing host in future (i= n 3s), its the 2 address
>> on the same name: udp 127.0.0.1:52534= (localhost) tid: 00000002
>> 2017-05-04T20:44:06 writing packet: = udp ::1:52534 (localhost) tid:
>> 00000001
>> 2017-05-04= T20:44:06 reading packet: udp ::1:52534 (localhost) tid:
>> 00000= 001
>> 2017-05-04T20:44:06 host completed: udp ::1:52534 (localhos= t) tid:
>> 00000001
>> 2017-05-04T20:44:06 krb5=5Fsendto= =5Fcontext TEST.COM done: 0 hosts 1
>> packets 1 wc: 0.048927 nr:= 0.000932 kh: 0.000814 tid: 00000002
>> 2017-05-04T20:44:06 tkt: e= xtract key 17/763641F3
>> 2017-05-04T20:44:06 set-error: -17653283= 53: Decrypt integrity check
>> failed for checksum type hmac-sha1= -96-aes128, key type
>> aes128-cts-hmac-sha1-96
>> 2017-0= 5-04T20:44:06 tkt: extract key 17/3084A95C
>> 2017-05-04T20:44:06 = krb5=5Fget=5Fcredentials=5Fwith=5Fflags: TEST.COM wc:
>> 0.050317=
>> 2017-05-04T20:44:06 set-error: -1765328243: Did not find crede= ntial
>> for krb5=5Fccache=5Fconf=5Fdata/realm-config@X-CACHECONF= : in cache
>>
FILE:kerby-kerb/kerb-kdc-tes= t/target/tmp/test-tkt.cc
>> 2= 017-05-04T20:44:06 set-error: -1765328243: Did not find credential
>= > for
>> krb5=5Fccache=5Fconf=5Fdata/time-offset/test-service\1= 34/localhost\134@TEST.COM@X-CACHECONF:
>> in cache
FILE:kerby-kerb/kerb-kdc-test/target/tmp/test-tkt.cc
>> 2017-05-04T20:44:06 Setting up PFS for = auth context
>> 2017-05-04T20:44:06 set-error: -1765328234: Encryp= tion type
>> des-cbc-md5-deprecated not supported
>> 201= 7-05-04T20:44:06 set-error: -1765328234: Encryption type
>> des-c= bc-md4-deprecated not supported
>> 2017-05-04T20:44:06 set-error: = -1765328234: Encryption type
>> des-cbc-crc-deprecated not suppor= ted First kerberos.authGSSClientStep
>> successful
>>>> Thanks
>> Jiajia
>>
>> -----Original M= essage-----
>> From: Zheng, Kai [
= mailto:kai.zheng@intel.com]
>> Sent: Wednesday, May 3, 2017 7:29 = PM
>> To: kerby@directory.apache.org
>> Subject: RE: MIT = Kerberos compatibility
>>
>> Hi Marc,
>>
>= > In case you're not aware of this, please check out the latest fix
= >> made by Jiajia. We thought your case may be different, but would b= e
>> good to have a check before we can repeat/fix your case. Tha= nks.
>>
https://issues.apache.org/jira/browse/D= IRKRB-625
>>
>> Rega= rds,
>> Kai
>>
>> -----Original Message-----
= >> From: Marc de Lignie [
mailto:m.c.delignie@xs4all.nl]
>> Sent: Sunday, April 30, 2017 7:45 PM>> To: kerby@directory.apache.org
>> Subject: Re: MIT Kerbe= ros compatibility
>>
>> Hi Kai,
>>
>> T= he terminal output below is for the latest MIT Kerberos 1.15.1
>>= (locally built on Ubuntu Xenial). Before that, I also tested with the
= >> default Xenial MIT Kerberos packages (1.13.2), with the same resul= t.
>> I did not try earlier MIT Kerberos versions.
>>
= >> Marc
>>
>> Op 29-04-17 om 21:42 schreef Marc de = Lignie:
>>> Hi Kai,
>>>
>>> Thanks for = the response. I prepared a minimal config that reproduces
>>> = my problem.
>>>
>>> You can fetch the branch/commit= from:
>>>
https://github.com/vtsl= ab/directory-kerby/commits/MitIssue>>>
>>> This is relative to RC2, but I also tried thi= s on trunk for my
>>> actual project.
>>>
>&= gt;> This config produces the debug and error messages below.
>>= ;>
>>> 1. For the terminal with the bash + python script $ k= list Ticket
>>> cache:
FILE:kerby-kerb/k= erb-kdc-test/target/tmp/test-tkt.cc>>> Default principal: drankye@TEST.COM
>>>
>&g= t;> Valid starting     Expires         &nb= sp;  Service principal
>>> 29-04-17 21:07:39  30-04-1= 7 05:07:39  krbtgt/TEST.COM@TEST.COM
>>>     &nb= sp;renew until 29-04-17 21:07:39
>>>
>>> $ .
>= ;>> kerby-kerb/kerb-kdc-test/src/test/java/org/apache/kerby/kerberos/= ker
>>> b/ server/MitIssueTest.sh [15538] 1493491231.917606: Re= trieving
>>> drankye@TEST.COM from FILE:/etc/krb5/user/1000/cl= ient.keytab (vno 0,
>>> enctype 0) with result:
>>>= ; 2/Key table file '/etc/krb5/user/1000/client.keytab' not found
>&g= t;> [15538]
>>> 1493491231.917827: Retrieving drankye@TEST.C= OM from
>>> FILE:/etc/krb5/user/1000/client.keytab (vno 0, enc= type 0) with result:
>>> 2/Key table file '/etc/krb5/user/1000/= client.keytab' not found
>>> kerberos.authGSSClientInit succes= sful [15538] 1493491231.918185:
>>> Getting credentials drankye= @TEST.COM -> test-service/localhost@
>>> using ccache
FILE:kerby-kerb/kerb-kdc-test/target/tmp/test-tkt.cc<= /font>
>>> [15538] 1493491231.918210:= Retrieving drankye@TEST.COM ->
>>> test-service/localhost@= from
>>>
FILE:kerby-kerb/kerb-kdc-test= /target/tmp/test-tkt.cc with resu= lt:
>>> -1765328243/Matching credential not found (filename:>>> kerby-kerb/kerb-kdc-test/target/tmp/test-tkt.cc)
>>&= gt; [15538] 1493491231.918226: Retrying drankye@TEST.COM ->
>>= > test-service/localhost@TEST.COM with result: -1765328243/Matching
= >>> credential not found (filename:
>>> kerby-kerb/ker= b-kdc-test/target/tmp/test-tkt.cc)
>>> [15538] 1493491231.91822= 9: Server has referral realm; starting with
>>> test-service/l= ocalhost@TEST.COM [15538] 1493491231.918278:
>>> Retrieving dr= ankye@TEST.COM -> krbtgt/TEST.COM@TEST.COM from
>>>
=
FILE:kerby-kerb/kerb-kdc-test/target/tmp/test-tkt.cc with result:
>>> 0/Success<= br>>>> [15538] 1493491231.918281: Starting with TGT for client rea= lm:
>>> drankye@TEST.COM -> krbtgt/TEST.COM@TEST.COM [15538]=
>>> 1493491231.918301: Requesting tickets for
>>>= test-service/localhost@TEST.COM, referrals on [15538]
>>> 1493= 491231.918326: Generated subkey for TGS request:
>>> aes128-cts= /FA30
>>> [15538] 1493491231.918359: etypes requested in TGS re= quest:
>>> aes256-cts, aes128-cts, aes256-sha2, aes128-sha2, de= s3-cbc-sha1,
>>> rc4-hmac, camellia128-cts, camellia256-cts [1= 5538] 1493491231.918484:
>>> Encoding request body and padata i= nto FAST request [15538]
>>> 1493491231.918541: Sending request= (836 bytes) to TEST.COM [15538]
>>> 1493491231.918597: Resolvi= ng hostname localhost [15538]
>>> 1493491231.918703: Initiating= TCP connection to stream
>>> 127.0.0.1:44292
>>> [= 15538] 1493491231.918777: Sending TCP request to stream
>>> 127= .0.0.1:44292 [15538] 1493491231.922803: TCP error receiving from
>&g= t;> stream
>>> 127.0.0.1:44292: 104/Connection reset by peer= [15538]
>>> 1493491231.922812: Terminating TCP connection to s= tream
>>> 127.0.0.1:44292
>>> [15538] 1493491231.92= 2858: Sending initial UDP request to dgram
>>> 127.0.0.1:44292<= br>>>> ('First kerberos.authGSSClientStep not successful',
>= ;>> GSSError(('Unspecified GSS failure.  Minor code may provide = more
>>> information', 851968), ("Cannot contact any KDC = for realm
>>> 'TEST.COM'",
>>> -1765328228)))=
>>>
>>> 2. For the terminal that runs mvn clean te= st -Dtest=3DMitIssueTest
>>> Running org.apache.kerby.kerberos= .kerb.server.MitIssueTest
>>> 2017-04-29 21:07:39,182 DEBUG [ma= in] backend.AbstractIdentityBackend:
>>> initialize called
&= gt;>> 2017-04-29 21:07:39,195 DEBUG [main] backend.AbstractIdentityBa= ckend:
>>> getIdentity called, principalName =3D krbtgt/TEST.CO= M@TEST.COM
>>> 2017-04-29 21:07:39,195 DEBUG [main] backend.Abs= tractIdentityBackend:
>>> getIdentity failed, principalName =3D= krbtgt/TEST.COM@TEST.COM
>>> 2017-04-29 21:07:39,212 DEBUG [ma= in] backend.AbstractIdentityBackend:
>>> addIdentity successful= , principalName =3D krbtgt/TEST.COM@TEST.COM
>>> 2017-04-29 21:= 07:39,212 DEBUG [main] backend.AbstractIdentityBackend:
>>> get= Identity called, principalName =3D kadmin/TEST.COM@TEST.COM
>>>= 2017-04-29 21:07:39,212 DEBUG [main] backend.AbstractIdentityBackend:
&= gt;>> getIdentity failed, principalName =3D kadmin/TEST.COM@TEST.COM<= br>>>> 2017-04-29 21:07:39,213 DEBUG [main] backend.AbstractIdenti= tyBackend:
>>> addIdentity successful, principalName =3D kadmin= /TEST.COM@TEST.COM
>>> 2017-04-29 21:07:39,216 DEBUG [main] bac= kend.AbstractIdentityBackend:
>>> start called
>>> = 2017-04-29 21:07:39,232 DEBUG [main] backend.AbstractIdentityBackend:
&g= t;>> addIdentity successful, principalName =3D
>>> test-= service/localhost@TEST.COM
>>> 2017-04-29 21:07:39,425 DEBUG [m= ain] backend.AbstractIdentityBackend:
>>> addIdentity successfu= l, principalName =3D drankye@TEST.COM
>>> 2017-04-29 21:07:39,4= 65 DEBUG [pool-1-thread-1]
>>> backend.AbstractIdentityBackend:= getIdentity called, principalName =3D
>>> krbtgt/TEST.COM@TES= T.COM
>>> 2017-04-29 21:07:39,465 DEBUG [pool-1-thread-1]
&g= t;>> backend.AbstractIdentityBackend: getIdentity successful,
>= ;>> principalName =3D krbtgt/TEST.COM@TEST.COM
>>> 2017-0= 4-29 21:07:39,465 INFO  [pool-1-thread-1] request.KdcRequest:
>&= gt;> Client entry is empty.
>>> 2017-04-29 21:07:39,465 DEBU= G [pool-1-thread-1]
>>> backend.AbstractIdentityBackend: getIde= ntity called, principalName =3D
>>> drankye@TEST.COM
>&g= t;> 2017-04-29 21:07:39,465 DEBUG [pool-1-thread-1]
>>> back= end.AbstractIdentityBackend: getIdentity successful,
>>> princ= ipalName =3D drankye@TEST.COM
>>> 2017-04-29 21:07:39,465 DEBUG= [pool-1-thread-1]
>>> backend.AbstractIdentityBackend: getIden= tity called, principalName =3D
>>> krbtgt/TEST.COM@TEST.COM>>> 2017-04-29 21:07:39,465 DEBUG [pool-1-thread-1]
>>&g= t; backend.AbstractIdentityBackend: getIdentity successful,
>>>= ; principalName =3D krbtgt/TEST.COM@TEST.COM
>>> 2017-04-29 21:= 07:39,476 DEBUG [pool-1-thread-1]
>>> impl.DefaultKdcHandler: T= ransport or decoding error occurred,
>>> disconnecting abnorma= lly java.io.EOFException
>>>      at java.io.Dat= aInputStream.readInt(DataInputStream.java:392)
>>>    = ;  at
>>> org.apache.kerby.kerberos.kerb.transport.KrbTcpT= ransport.receiveMess
>>> age(KrbTcpTransport.java:54)
>&g= t;>
>>>      at
>>> org.apache.ke= rby.kerberos.kerb.server.impl.DefaultKdcHandler.run(Def
>>> aul= tKdcHandler.java:46)
>>>
>>>      at=
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPo= olExecutor
>>> .java:1142)
>>>
>>> &nbs= p;    at
>>> java.util.concurrent.ThreadPoolExecutor$= Worker.run(ThreadPoolExecuto
>>> r.java:617)
>>>>>>      at java.lang.Thread.run(Thread.java:748)<= br>>>> 2017-04-29 21:07:39,477 INFO  [main] client.KrbClientB= ase: Storing
>>> the tgt to the credential cache file.
>= >> 2017-04-29 21:07:39,491 DEBUG [main] backend.AbstractIdentityBacke= nd:
>>> getIdentity called, principalName =3D test-service/loca= lhost@TEST.COM
>>> 2017-04-29 21:07:39,491 DEBUG [main] backend= .AbstractIdentityBackend:
>>> getIdentity successful, principal= Name =3D
>>> test-service/localhost@TEST.COM
>>> 2= 017-04-29 21:07:39,498 DEBUG [pool-1-thread-1]
>>> backend.Abst= ractIdentityBackend: getIdentity called, principalName =3D
>>>= krbtgt/TEST.COM@TEST.COM
>>> 2017-04-29 21:07:39,498 DEBUG [po= ol-1-thread-1]
>>> backend.AbstractIdentityBackend: getIdentity= successful,
>>> principalName =3D krbtgt/TEST.COM@TEST.COM>>> 2017-04-29 21:07:39,498 INFO  [pool-1-thread-1] request.= KdcRequest:
>>> Client entry is empty.
>>> 2017-04-= 29 21:07:39,499 DEBUG [pool-1-thread-1]
>>> backend.AbstractIde= ntityBackend: getIdentity called, principalName =3D
>>> test-s= ervice/localhost@TEST.COM
>>> 2017-04-29 21:07:39,499 DEBUG [po= ol-1-thread-1]
>>> backend.AbstractIdentityBackend: getIdentity= successful,
>>> principalName =3D test-service/localhost@TEST= .COM
>>> 2017-04-29 21:07:39,499 DEBUG [pool-1-thread-1]
>= ;>> backend.AbstractIdentityBackend: getIdentity called, principalNam= e =3D
>>> krbtgt/TEST.COM@TEST.COM
>>> 2017-04-29 = 21:07:39,499 DEBUG [pool-1-thread-1]
>>> backend.AbstractIdenti= tyBackend: getIdentity successful,
>>> principalName =3D krbtg= t/TEST.COM@TEST.COM
>>> 2017-04-29 21:07:39,499 INFO  [poo= l-1-thread-1] request.KdcRequest:
>>> The preauth data is empty= .
>>> 2017-04-29 21:07:39,501 INFO  [pool-1-thread-1] serv= er.KdcHandler:
>>> KRB error occurred while processing request= :Additional
>>> pre-authentication required
>>> 20= 17-04-29 21:07:39,502 DEBUG [pool-1-thread-1]
>>> impl.DefaultK= dcHandler: Transport or decoding error occurred,
>>> disconnec= ting abnormally java.io.EOFException
>>>      at= java.io.DataInputStream.readInt(DataInputStream.java:392)
>>> =      at
>>> org.apache.kerby.kerberos.kerb.trans= port.KrbTcpTransport.receiveMess
>>> age(KrbTcpTransport.java:5= 4)
>>>
>>>      at
>>> o= rg.apache.kerby.kerberos.kerb.server.impl.DefaultKdcHandler.run(Def
>= >> aultKdcHandler.java:46)
>>>
>>>   &nb= sp;  at
>>> java.util.concurrent.ThreadPoolExecutor.runWor= ker(ThreadPoolExecutor
>>> .java:1142)
>>>
>&= gt;>      at
>>> java.util.concurrent.ThreadP= oolExecutor$Worker.run(ThreadPoolExecuto
>>> r.java:617)
>= ;>>
>>>      at java.lang.Thread.run(Threa= d.java:748)
>>> 2017-04-29 21:07:39,505 DEBUG [pool-1-thread-1]=
>>> backend.AbstractIdentityBackend: getIdentity called, princ= ipalName =3D
>>> krbtgt/TEST.COM@TEST.COM
>>> 2017= -04-29 21:07:39,505 DEBUG [pool-1-thread-1]
>>> backend.Abstrac= tIdentityBackend: getIdentity successful,
>>> principalName = =3D krbtgt/TEST.COM@TEST.COM
>>> 2017-04-29 21:07:39,505 INFO &= nbsp;[pool-1-thread-1] request.KdcRequest:
>>> Client entry is = empty.
>>> 2017-04-29 21:07:39,506 DEBUG [pool-1-thread-1]
&= gt;>> backend.AbstractIdentityBackend: getIdentity called, principalN= ame =3D
>>> test-service/localhost@TEST.COM
>>> 20= 17-04-29 21:07:39,506 DEBUG [pool-1-thread-1]
>>> backend.Abstr= actIdentityBackend: getIdentity successful,
>>> principalName = =3D test-service/localhost@TEST.COM
>>> 2017-04-29 21:07:39,506= DEBUG [pool-1-thread-1]
>>> backend.AbstractIdentityBackend: g= etIdentity called, principalName =3D
>>> krbtgt/TEST.COM@TEST.= COM
>>> 2017-04-29 21:07:39,506 DEBUG [pool-1-thread-1]
>= >> backend.AbstractIdentityBackend: getIdentity successful,
>&= gt;> principalName =3D krbtgt/TEST.COM@TEST.COM
>>> 2017-04-= 29 21:07:39,510 DEBUG [pool-1-thread-1]
>>> impl.DefaultKdcHand= ler: Transport or decoding error occurred,
>>> disconnecting a= bnormally java.io.EOFException
>>>      at java.= io.DataInputStream.readInt(DataInputStream.java:392)
>>>  =    at
>>> org.apache.kerby.kerberos.kerb.transport.K= rbTcpTransport.receiveMess
>>> age(KrbTcpTransport.java:54)
= >>>
>>>      at
>>> org.apa= che.kerby.kerberos.kerb.server.impl.DefaultKdcHandler.run(Def
>>&g= t; aultKdcHandler.java:46)
>>>
>>>     &n= bsp;at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(Th= readPoolExecutor
>>> .java:1142)
>>>
>>>= ;      at
>>> java.util.concurrent.ThreadPoolExe= cutor$Worker.run(ThreadPoolExecuto
>>> r.java:617)
>>&= gt;
>>>      at java.lang.Thread.run(Thread.java= :748)
>>> 2017-04-29 21:07:55,602 DEBUG [pool-1-thread-1]
&g= t;>> backend.AbstractIdentityBackend: getIdentity called, principalNa= me =3D
>>> krbtgt/TEST.COM@TEST.COM
>>> 2017-04-29= 21:07:55,602 DEBUG [pool-1-thread-1]
>>> backend.AbstractIdent= ityBackend: getIdentity successful,
>>> principalName =3D krbt= gt/TEST.COM@TEST.COM
>>> 2017-04-29 21:07:55,602 INFO  [po= ol-1-thread-1] request.KdcRequest:
>>> Found fast padata and st= art to process it.
>>> 2017-04-29 21:07:55,603 ERROR [pool-1-th= read-1]
>>> impl.DefaultKdcHandler: Error occured while process= ing request:
>>> org.apache.kerby.kerberos.kerb.KrbException: D= ecoding failed
>>>      at
>>> org.a= pache.kerby.kerberos.kerb.KrbCodec.decode(KrbCodec.java:85)
>>>=      at
>>> org.apache.kerby.kerberos.kerb.KrbC= odec.decode(KrbCodec.java:70)
>>>      at
>= ;>> org.apache.kerby.kerberos.kerb.server.request.KdcRequest.kdcFindF= ast
>>> (KdcRequest.java:208)
>>>
>>> &= nbsp;    at
>>> org.apache.kerby.kerberos.kerb.server= .request.KdcRequest.process(Kdc
>>> Request.java:168)
>&g= t;>
>>>      at
>>> org.apache.ke= rby.kerberos.kerb.server.KdcHandler.handleMessage(KdcHa
>>> ndl= er.java:115)
>>>
>>>      at
>= >> org.apache.kerby.kerberos.kerb.server.impl.DefaultKdcHandler.handl= eM
>>> essage(DefaultKdcHandler.java:67)
>>>
>= ;>>      at
>>> org.apache.kerby.kerberos.= kerb.server.impl.DefaultKdcHandler.run(Def
>>> aultKdcHandler.j= ava:52)
>>>
>>>      at
>>&= gt; java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor>>> .java:1142)
>>>
>>>     &nb= sp;at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(Th= readPoolExecuto
>>> r.java:617)
>>>
>>>=      at java.lang.Thread.run(Thread.java:748)
>>&g= t; Caused by: java.io.IOException: Unexpected item context [0]
>>= > [tag=3D0xA0, off=3D0, len=3D3+207], expecting 0x30
>>> &nb= sp;    at
>>> org.apache.kerby.asn1.type.Asn1Encodeab= le.decode(Asn1Encodeable.java
>>> :210)
>>>
>= >>      at
>>> org.apache.kerby.asn1.type.= Asn1Encodeable.decode(Asn1Encodeable.java
>>> :197)
>>= >
>>>      at
>>> org.apache.kerb= y.kerberos.kerb.KrbCodec.decode(KrbCodec.java:83)
>>>   &n= bsp;  ... 9 more
>>> 2017-04-29 21:07:55,604 DEBUG [pool-1= -thread-1]
>>> impl.DefaultKdcHandler: Transport or decoding er= ror occurred,
>>> disconnecting abnormally
>>> jav= a.net.SocketException: Socket closed
>>>      at= java.net.SocketInputStream.socketRead0(Native Method)
>>> &nbs= p;    at
>>> java.net.SocketInputStream.socketRead(So= cketInputStream.java:116)
>>>      at java.net.S= ocketInputStream.read(SocketInputStream.java:171)
>>>   &n= bsp;  at java.net.SocketInputStream.read(SocketInputStream.java:141)>>>      at java.net.SocketInputStream.read(Socke= tInputStream.java:224)
>>>      at java.io.DataI= nputStream.readInt(DataInputStream.java:387)
>>>     =  at
>>> org.apache.kerby.kerberos.kerb.transport.KrbTcpTra= nsport.receiveMess
>>> age(KrbTcpTransport.java:54)
>>= >
>>>      at
>>> org.apache.kerb= y.kerberos.kerb.server.impl.DefaultKdcHandler.run(Def
>>> aultK= dcHandler.java:46)
>>>
>>>      at>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool= Executor
>>> .java:1142)
>>>
>>>  =    at
>>> java.util.concurrent.ThreadPoolExecutor$Wo= rker.run(ThreadPoolExecuto
>>> r.java:617)
>>>
&= gt;>>      at java.lang.Thread.run(Thread.java:748)>>>
>>> In a FreeIPA environment these python lines &= quot;just" work.
>>>
>>> Any suggestions are w= elcome!
>>>
>>> Marc
>>>
>>>= ;
>> --
>> Marc de Lignie
>>
>

--Marc de Lignie




--1__=8FBB0B89DFAE58318f9e8a93df938690918c8FBB0B89DFAE5831-- --0__=8FBB0B89DFAE58318f9e8a93df938690918c8FBB0B89DFAE5831--