Return-Path: linux-nfs-owner@vger.kernel.org Received: from mx12.netapp.com ([216.240.18.77]:35370 "EHLO mx12.netapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933442Ab3GRTyE (ORCPT ); Thu, 18 Jul 2013 15:54:04 -0400 From: "Myklebust, Trond" To: "Adamson, Dros" CC: linux-nfs list Subject: Re: SP4_MACH_CRED: v4 proc -> opcodes mapping Date: Thu, 18 Jul 2013 19:54:03 +0000 Message-ID: <1374177242.3788.59.camel@leira.trondhjem.org> References: <7EC48508-29F6-42DF-9BBA-F90A5CA1A47C@netapp.com> <1374159436.3788.3.camel@leira.trondhjem.org> <1374160910.3788.14.camel@leira.trondhjem.org> <1D61D5F4-40DA-47D1-A15A-745EA05813BA@netapp.com> <1374167339.3788.52.camel@leira.trondhjem.org> <9AC7EBEB-E407-4CCB-A6E6-05C24CD821DA@netapp.com> In-Reply-To: <9AC7EBEB-E407-4CCB-A6E6-05C24CD821DA@netapp.com> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org List-ID: T24gVGh1LCAyMDEzLTA3LTE4IGF0IDE5OjQ5ICswMDAwLCBBZGFtc29uLCBEcm9zIHdyb3RlOg0K PiBPbmx5IHN1cHBvcnRpbmcgb3BlcmF0aW9ucyB0aGF0IGhhdmUgdGhlIGVycm9yIGNvZGUgTkZT NEVSUl9XUk9OR19DUkVEIHNlZW1zIHRvIGJlIHdyb25nLiAgT3BlcmF0aW9ucyBsaWtlIEJJTkRf Q09OTl9UT19TRVNTSU9OIGRvbid0IHN1cHBvcnQgZG9uJ3Qgc3VwcG9ydCB0aGlzIGVycm9yIGNv ZGUsIGJ1dCBhcmUgZXhwbGljaXRseSBtZW50aW9uZWQgaW4gU1A0X01BQ0hfQ1JFRCBzZWN0aW9u cyBvZiB0aGUgc3BlYy4NCg0KTG9va2luZyBhdCB0aGUgYWxsb3dlZCBlcnJvciByZXR1cm4gdmFs dWVzIGZvciBCSU5EX0NPTk5fVE9fU0VTU0lPTiwgSSdtDQphdCBhIGxvc3MgdG8gZmlndXJlIG91 dCBleGFjdGx5IHdoYXQgaXQgc2hvdWxkIHJldHVybiBpbiB0aGlzIGNhc2UuIEkNCnN1c3BlY3Qg dGhhdCB0aGUgbGFjayBvZiBhbiBORlM0RVJSX1dST05HX0NSRUQgaXMgYWN0dWFsbHkgYSBwcm90 b2NvbA0KYnVnLg0KDQpUaW1lIHRvIGdvIGJhY2sgdG8gdGhlIGlldGYgbWFpbGluZyBsaXN0Li4u DQoNCj4gSSdsbCBjb250aW51ZSBteSB3b3JrIGRlc2NyaWJlZCBiZWxvdyBtb2R1bG8gbGltaXRp bmcgdG8gTkZTNEVSUl9XUk9OR19DUkVEIGVuYWJsZWQgT1BzIGFuZCBzZWUgaG93IHRoYXQgbG9v a3MuLi4NCj4gDQo+IC1kcm9zDQo+IA0KPiBPbiBKdWwgMTgsIDIwMTMsIGF0IDI6MTMgUE0sICJB ZGFtc29uLCBEcm9zIiA8V2VzdG9uLkFkYW1zb25AbmV0YXBwLmNvbT4gd3JvdGU6DQo+IA0KPiA+ IE9rLCBJJ2xsIGhhdmUgdGhlIGNsaWVudCBvbmx5IGFzayBmb3Igc3RhdGUgcHJvdGVjdGlvbiBv biBvcGVyYXRpb25zIHRoYXQgc3VwcG9ydCBORlM0RVJSX1dST05HX0NSRUQgLSBhbmQgSSdsbCBk byB0aGUgU1A0X01BQ0hfQ1JFRCBjaGVja3Mgb25seSBvbiB0aGVzZSBvcGVyYXRpb25zIGFuZCBv bmx5IGlmIHRoZXkgYXJlbid0IGFscmVhZHkgdXNpbmcgdGhlIG1hY2hpbmUgY3JlZCBhbHJlYWR5 LiBUaGlzIHNpbXBsaWZpZXMgbXkgb3JpZ2luYWwgcHJvYmxlbSAtIG5vdyBJIGNhbiBqdXN0IHVz ZSB0aGUgIm1haW4iIG9wY29kZS4NCj4gPiANCj4gPiBJJ2xsIGFsc28gYWRkIGVycm9yIGhhbmRs ZXJzIGZvciBORlM0RVJSX1dST05HX0NSRUQuDQo+ID4gDQo+ID4gVGhhbmtzIQ0KPiA+IA0KPiA+ IC1kcm9zDQo+ID4gDQo+ID4gT24gSnVsIDE4LCAyMDEzLCBhdCAxOjA4IFBNLCAiTXlrbGVidXN0 LCBUcm9uZCIgPFRyb25kLk15a2xlYnVzdEBuZXRhcHAuY29tPiB3cm90ZToNCj4gPiANCj4gPj4g T24gVGh1LCAyMDEzLTA3LTE4IGF0IDE1OjUwICswMDAwLCBBZGFtc29uLCBEcm9zIHdyb3RlOg0K PiA+Pj4gT24gSnVsIDE4LCAyMDEzLCBhdCAxMToyMSBBTSwgIk15a2xlYnVzdCwgVHJvbmQiIDxU cm9uZC5NeWtsZWJ1c3RAbmV0YXBwLmNvbT4NCj4gPj4+IHdyb3RlOg0KPiA+Pj4gDQo+ID4+Pj4g T24gVGh1LCAyMDEzLTA3LTE4IGF0IDE1OjEwICswMDAwLCBBZGFtc29uLCBEcm9zIHdyb3RlOg0K PiA+Pj4+PiBPbiBKdWwgMTgsIDIwMTMsIGF0IDEwOjU3IEFNLCAiTXlrbGVidXN0LCBUcm9uZCIg PFRyb25kLk15a2xlYnVzdEBuZXRhcHAuY29tPiB3cm90ZToNCj4gPj4+Pj4gDQo+ID4+Pj4+PiBP biBUaHUsIDIwMTMtMDctMTggYXQgMTQ6NDYgKzAwMDAsIEFkYW1zb24sIERyb3Mgd3JvdGU6DQo+ ID4+Pj4+Pj4gSGV5LA0KPiA+Pj4+Pj4+IA0KPiA+Pj4+Pj4+IEkgaGF2ZSBhIG1vc3RseSBmdW5j dGlvbmFsIGNsaWVudC1zaWRlIGltcGxlbWVudGF0aW9uIG9mIFNQNF9NQUNIX0NSRUQhIEl0IHN0 aWxsIG5lZWRzIGEgbG90IG9mIGNsZWFudXAgYW5kIHRlc3RpbmcuDQo+ID4+Pj4+Pj4gDQo+ID4+ Pj4+Pj4gSSBoYXZlIG9uZSBzdHlsZSBpc3N1ZSB0aGF0IEkgd2FudCB0byBydW4gYnkgdGhlIGxp c3QgYmVmb3JlIEkgcG9zdCBhIHBhdGNoc2V0Og0KPiA+Pj4+Pj4+IA0KPiA+Pj4+Pj4+IFNvLCBT UDRfTUFDSF9DUkVEIG5lZ290aWF0ZXMgdHdvIGJpdG1hcHMgaW4gdGhlIEVYQ0hBTkdFX0lEIChv bmUgImVuZm9yY2UiLCBvbmUgImFsbG93IikgZm9yIHN0YXRlIHByb3RlY3Rpb24uIFRoZXNlIGJp dG1hcHMgYXJlIGluZGV4ZWQgYnkgdGhlIE5GU3Y0IG9wZXJhdGlvbiBudW1iZXIuICBUaGUgc3Rh dGUgcHJvdGVjdCBjaGVjayBtdXN0IGhhcHBlbiBpbiB0aGUgbmZzNHByb2MuYyBsYXllciAob3Ig YmVmb3JlKSwgcmlnaHQgYmVmb3JlIHdlIGNhbGwgcnBjX2NhbGxfc3luYyBvciBlcXVpdmFsZW50 LCBzbyB0aGF0IGl0IGNhbiBzZWxlY3QgdGhlIHJpZ2h0IGNyZWQgYW5kIHJwY19jbGllbnQuDQo+ ID4+Pj4+Pj4gDQo+ID4+Pj4+Pj4gSGVyZSdzIHRoZSBwcm9ibGVtOiB3ZSBkb24ndCBrbm93IHdo YXQgb3BlcmF0aW9ucyAob3Bjb2RlcykgYXJlIGFjdHVhbGx5IGluIGEgY29tcG91bmQgdW50aWwg dGhlIFhEUiBlbmNvZGUgY2FsbGJhY2sgaXMgY2FsbGVkLiAgVGhlIHJwY19wcm9jaW5mbyBhcnJh eSBkb2Vzbid0IGhhdmUgdGhpcyBtYXBwaW5nIC0gaW4gZmFjdCwgaXQgb25seSBsaXZlcyBpbiB0 aGUgeGRyIGVuY29kZSBsYXllci4NCj4gPj4+Pj4+PiANCj4gPj4+Pj4+PiBPbmUgYXBwcm9hY2gg aXMgdG8gaW1tZWRpYXRlbHkgdHJhbnNsYXRlIHRoZSBvcGNvZGUgYml0bWFwcyB0byAibmZzNCBw cm9jZWR1cmUgaW5kZXgiIGJpdG1hcHMsIGluZGV4aW5nIGludG8gdGhlIHJwY19wcm9jaW5mbyBh cnJheS4gIFRoaXMgd291bGQgbWVhbiB0aGVyZSBpcyBhIHNlY29uZCBtYXBwaW5nIG9mIE5GU3Y0 IHByb2NlZHVyZSAtPiBvcGNvZGVzIHRoYXQgbXVzdCBiZSB1cGRhdGVkIHdoZW4gYW4gWERSIGVu Y29kZSBjYWxsYmFjayBpcyBjaGFuZ2VkLg0KPiA+Pj4+Pj4+IA0KPiA+Pj4+Pj4+IEFub3RoZXIg YXBwcm9hY2ggd291bGQgYmUgdG8gYWRkIGEgY2FsbGJhY2sgdG8gdGhlIFhEUiBhcGkgc28gd2Ug Y291bGQgImFzayIgaXQgaWYgYW4gTkZTdjQgcHJvY2VkdXJlIGNvbnRhaW5zIGFueSBvZiB0aGUg b3Bjb2RlcyBpbiBhIGJpdG1hcC4gVGhlIG5pY2UgdGhpbmcgYWJvdXQgdGhpcyBhcHByb2FjaCBp cyB0aGF0IHRoZSBtYXBwaW5nIG9mIHByb2NlZHVyZSB0byBvcGNvZGVzIHdpdGhpbiB3aWxsIGxp dmUgcmlnaHQgbmV4dCB0byB0aGUgWERSIGVuY29kZSBjYWxsYmFjayBhbmQgbWFrZSBpdCBvYnZp b3VzIHRoYXQgYm90aCBuZWVkIHRvIGJlIGNoYW5nZWQgdG9nZXRoZXIuDQo+ID4+Pj4+Pj4gDQo+ ID4+Pj4+Pj4gSSBzdXBwb3NlIEknbSBsZWFuaW5nIHRvd2FyZCBhIGNvbWJpbmF0aW9uIG9mIGJv dGggb2YgdGhlc2UgYXBwcm9hY2hlcyAtIGtlZXAgdGhlIG1hcHBpbmcgaW4gWERSLWxhbmQgYW5k IHRyYW5zbGF0ZSB0aGUgYml0bWFwcyBpbW1lZGlhdGVseSBvbiBuZWdhdGlvbiBmb3IgZmFzdCBs b29rdXBzIGR1cmluZyBub3JtYWwgb3BlcmF0aW9uLg0KPiA+Pj4+Pj4+IA0KPiA+Pj4+Pj4+IENv bW1lbnRzPyBBbSBJIG1pc3Npbmcgc29tZXRoaW5nPw0KPiA+Pj4+Pj4gDQo+ID4+Pj4+PiBJJ20g bm90IHN1cmUgdGhhdCBJIHVuZGVyc3RhbmQuIFdlIGRvbid0IGRvIGR5bmFtaWMgY3JlYXRpb24g b2YNCj4gPj4+Pj4+IGNvbXBvdW5kczogd2UgcHJldHR5IG11Y2gga25vdyBpbiB0aGUgbmZzNF9w cm9jXyogcm91dGluZSB3aGF0IHRoZSBtYWluDQo+ID4+Pj4+PiBvcGVyYXRpb24gaXMgKHRoZSBv bmUgZXhjZXB0aW9uIGJlaW5nIENMT1NFL09QRU5fRE9XTkdSQURFKS4gU28gd2h5DQo+ID4+Pj4+ PiBjYW4ndCB3ZSB3b3JrIG91dCB0aGUgcHJvdGVjdGlvbiBzdGF0dXMgYXQgdGhhdCB0aW1lPyBJ cyB0aGUgd29ycnkgdGhhdA0KPiA+Pj4+Pj4gdGhlIHNlcnZlciBtaWdodCByZWJvb3QgYW5kIGNv bWUgYmFjayB3aXRoIGRpZmZlcmVudCBNQUNIX0NSRUQNCj4gPj4+Pj4+IHByb3RlY3Rpb25zPw0K PiA+Pj4+PiANCj4gPj4+Pj4gU3VyZSwgd2Uga25vdyB3aGF0IHRoZSBtYWluIG9wZXJhdGlvbiBp cyBhbmQgd2Uga25vdyB3aGF0IG9wZXJhdGlvbnMgd2lsbCBlbmQgdXAgaW4gYSBjb21wb3VuZCAt IHdlIGNhbiBqdXN0IGxvb2sgYXQgdGhlIHhkciBlbmNvZGVyLiAgTXkgcXVlc3Rpb24gaXMgc2lt cGx5IG9uZSBvZiBzdHlsZS4gRG8gd2Ugd2FudCB0byBoYXZlIGVhY2ggbmZzNHByb2MgcHJvY2Vk dXJlIHRvIGhhdmUgYSBsaXN0IG9mIG9wZXJhdGlvbnMgdGhhdCBtdXN0IGJlIHVwZGF0ZWQgaWYg YW4geGRyIGVuY29kZXIgaXMgdXBkYXRlZD8gSSdtIGZpbmUgd2l0aCBkb2luZyBpdCB0aGlzIHdh eSwgaXQganVzdCBzZWVtZWQgd3JvbmcgdG8gaGF2ZSB0aGUgc2FtZSBtYXBwaW5nIGluIHR3byBk aWZmZXJlbnQgcGxhY2VzLiBUaGlzIGlzIHdoeSBJJ20gYXNraW5nIDspDQo+ID4+Pj4+IA0KPiA+ Pj4+PiBBbHNvLCB3ZSBjYW4ndCBqdXN0IHVzZSB0aGUgIm1haW4iIG9wZXJhdGlvbiwgd2UgbXVz dCBjaGVjayBldmVyeSBvcGVyYXRpb24gd2l0aGluIHRoZSBjb21wb3VuZCBhbmQgaWYgYW55IGFy ZSByZXF1aXJlZCB0byB1c2UgU1A0LCB0aGVuIHRoZSB3aG9sZSBjb21wb3VuZCBkb2VzLiBJIGRv bid0IG5lY2Vzc2FyaWx5IGtub3cgd2h5IGEgc2VydmVyIHdvdWxkIGRvIHRoaXMsIGJ1dCBpZiB3 ZSBmb2xsb3cgdGhlIHNwZWMgYW5kIGEgc2VydmVyIGluZm9ybXMgdGhlIGNsaWVudCB0aGF0IFNF VEFUVFIgbXVzdCB1c2Ugc3RhdGUgcHJvdGVjdGlvbiwgdGhlbiBhIFdSSVRFIHdpdGggcG9zdC1v cCBTRVRBVFRSIG11c3QgdXNlIHRoZSBzdGF0ZSBwcm90ZWN0aW9uIGV2ZW4gdGhvdWdoIFdSSVRF IGRvZXNuJ3QgbmVlZCBpdC4NCj4gPj4+PiANCj4gPj4+PiBXZSBvbmx5IG5lZWQgdG8gY2hlY2sg ZXZlcnkgX3N0YXRlZnVsXyBvcGVyYXRpb24sIHJpZ2h0PyBJIGNhbid0IHRoaW5rDQo+ID4+Pj4g b2YgYW55IGNvbXBvdW5kcyB3aXRoIG1vcmUgdGhhbiAxIHN0YXRlZnVsIG9wZXJhdGlvbi4gV2Un dmUgZGVsaWJlcmF0ZWx5DQo+ID4+Pj4gYXZvaWRlZCB0aG9zZSBkdWUgdG8gdGhlIHByb2JsZW1z IHRoYXQgYXJpc2Ugd2hlbiB5b3UgZ2V0IGENCj4gPj4+PiBORlM0RVJSX0RFTEFZIG9yIHNvbWV0 aGluZyBlcXVpdmFsZW50IGF0IHRoZSB3cm9uZyBtb21lbnQuDQo+ID4+PiANCj4gPj4+IFRoYXQg bWF5IGJlIHRoZSBpbnRlbnRpb24sIGJ1dCBJIHNlZSBubyBzdWNoIGxpbWl0YXRpb24gaW4gdGhl IHNwZWMuIEl0J3MgbXkgdW5kZXJzdGFuZGluZyB0aGF0IHRoZSBzZXJ2ZXIgY291bGQgc3BlY2lm eSBhbnkgb3BlcmF0aW9uIGFzIE1VU1Qgb3IgTUFZIHVzZSBzdGF0ZSBwcm90ZWN0aW9uLg0KPiA+ PiANCj4gPj4gUmlnaHQsIGJ1dCB3aGF0IHdvdWxkIHN0YXRlIHByb3RlY3Rpb24gbWVhbiBmb3Ig YSBzdGF0ZWxlc3Mgb3BlcmF0aW9uDQo+ID4+IHN1Y2ggYXMgR0VUQVRUUj8gVGhhdCBvcGVyYXRp b24gaXNuJ3QgZXZlbiBhbGxvd2VkIHRvIHJldHVybg0KPiA+PiBORlM0RVJSX1dST05HX0NSRUQs IHNvIEkgZG9uJ3Qgc2VlIGhvdyBpdCB3b3VsZCBhcHBseS4NCj4gPj4gDQo+ID4+Pj4+IEknbSBu b3QgZm9sbG93aW5nIHRoZSByZWJvb3QgcXVlc3Rpb24gLSB0aGF0IGNhc2Ugc2hvdWxkIGJlIGhh bmRsZWQganVzdCBmaW5lLiBPbmNlIHRoZSBFWENIQU5HRV9JRCBoYXBwZW5zLCB0aGUgY2xwIGhh cyB0d28gYml0bWFwcyAoZW5mb3JjZSBhbmQgYWxsb3cpIHRoYXQgcmVmbGVjdCB0aGUgY3VycmVu dCBtb2RlIG9mIFNQNF9NQUNIX0NSRUQuDQo+ID4+Pj4gDQo+ID4+Pj4gSSdtIHRoaW5raW5nIHNv bWV0aGluZyBhbG9uZyB0aGUgZm9sbG93aW5nIHNjZW5hcmlvOg0KPiA+Pj4+IA0KPiA+Pj4+IEEg cHJvY2VzcyBxdWV1ZXMgdXAgYW4gT1BFTi4gVGhlIHNlcnZlciByZXBsaWVzIE5GUzRFUlJfQkFE X1NFU1NJT04gYW5kDQo+ID4+Pj4gbGF0ZXIgcmVwbGllcyB3aXRoIE5GUzRFUlJfU1RBTEVfQ0xJ RU5USUQuIFNvIHdlIHN0YXJ0IHJlYm9vdCByZWNvdmVyeSwNCj4gPj4+PiBhbmQgdGhlIE9QRU4g Z2V0cyBxdWV1ZWQgd2FpdGluZyBmb3IgYSBzbG90Lg0KPiA+Pj4+IFdlIHRoZW4gc2VuZCBhIG5l dyBFWENIQU5HRV9JRCwgYW5kIHRoZSBzZXJ2ZXIgcmVwbGllcyB3aXRoIGENCj4gPj4+PiBfZGlm ZmVyZW50XyBNQUNIX0NSRUQgcHJvdGVjdGlvbiBmb3IgT1BFTi4NCj4gPj4+PiANCj4gPj4+PiBU aGUgcHJvYmxlbSBhYm92ZSBpcyB0aGF0IHRoZSBPUEVOIGhhcyBhbHJlYWR5IGJlZW4gc3RhcnRl ZCwgYW5kIHdlJ3ZlDQo+ID4+Pj4gYWxyZWFkeSBhc3NpZ25lZCBpdCBhIGNyZWRlbnRpYWwuIEhv dyBkbyB3ZSBoYW5kbGUgdGhhdD8NCj4gPj4+PiBEaXR0byBxdWVzdGlvbiBmb3IgUkVBRCwgV1JJ VEUsIExPQ0ssIExBWU9VVEdFVCwuLi4NCj4gPj4+PiANCj4gPj4+PiBEbyB3ZSBoYXZlIGEgcHJv YmxlbSBmb3IgTE9DS1UsIENMT1NFIGFuZCBPUEVOX0RPV05HUkFERT8gSSB0aGluayB3ZSBlbmQN Cj4gPj4+PiB1cCBqdXN0IHNraXBwaW5nIHJlY292ZXJ5IGluIHRob3NlIGNhc2Vz4oCmDQo+ID4+ PiANCj4gPj4+IFRoZXNlIGFyZSBnb29kIHBvaW50cy4gSSdtIG5vdCBzdXJlICp3aHkqIHRoZSBz cDRfbWFjaF9jcmVkIGNvbmZpZyB3b3VsZCBjaGFuZ2UsIGJ1dCBJIHN1cHBvc2UgaXQgY291bGQs IGFuZCB5ZXMsIGluIG15IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gdGhlcmUgaXMgbm8gd2F5IHRv IGJhY2sgb3V0IG9uY2UgYSBycGMgdGFzayBpcyBpbnZva2VkLiAgQW55IHRob3VnaHRzIG9uIHRo aXM/ICBJIGNhbiBzZWUgdHdvIHdheXMgb2YgaGFuZGxpbmcgdGhpczoNCj4gPj4+IC0gcmVzdGFy dGluZyBhbGwgdGFza3MgKHdpdGggcnBjX2NsbnQgYW5kIHJwY19jcmVkIGFwcHJvcHJpYXRlbHkg Y2hhbmdlZCkgd2hlbiBhIGNoYW5nZSBpbiBzcDRfbWFjaF9jcmVkIGNvbmZpZyBpcyBkZXRlY3Rl ZC4NCj4gPj4+IC0gc29tZWhvdyBoYXZpbmcgdGhlIFJQQyBsYXllciBjYWxsIG91dCB0byBjaGVj ayBTUDQgc3RhdHVzIGJlZm9yZSBzZW5kaW5nIGVhY2ggUlBDLg0KPiA+PiANCj4gPj4gRm9yIG5v dywgSSB0aGluayB3ZSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgd2UgaGFuZGxlIE5GUzRFUlJfV1JP TkdfQ1JFRA0KPiA+PiBjb3JyZWN0bHkgaW4gdGhlc2UgY2FzZXMuIEkgZG9uJ3QgdGhpbmsgd2Ug ZXZlciB3YW50IHRvIGhhbmRsZSB0aGF0IGluDQo+ID4+IG5mczRfYXN5bmNfaGFuZGxlX2Vycm9y LCBidXQgd2Ugc2hvdWxkIGRlZmluaXRlbHkgaGFuZGxlIGl0IGluDQo+ID4+IG5mczRfaGFuZGxl X2V4Y2VwdGlvbigpLCBzaW5jZSB0aGF0IGNhbiBkcml2ZSBhIGZ1bGwgcmV0cnkgb2YgdGhlIFJQ Qw0KPiA+PiBjYWxsLg0KPiA+PiANCj4gPj4gLS0gDQo+ID4+IFRyb25kIE15a2xlYnVzdA0KPiA+ PiBMaW51eCBORlMgY2xpZW50IG1haW50YWluZXINCj4gPj4gDQo+ID4+IE5ldEFwcA0KPiA+PiBU cm9uZC5NeWtsZWJ1c3RAbmV0YXBwLmNvbQ0KPiA+PiB3d3cubmV0YXBwLmNvbQ0KPiA+IA0KPiA+ IC0tDQo+ID4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVu c3Vic2NyaWJlIGxpbnV4LW5mcyIgaW4NCj4gPiB0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFq b3Jkb21vQHZnZXIua2VybmVsLm9yZw0KPiA+IE1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6 Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbA0KPiANCg0KLS0gDQpUcm9uZCBN eWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lcg0KDQpOZXRBcHANClRyb25kLk15 a2xlYnVzdEBuZXRhcHAuY29tDQp3d3cubmV0YXBwLmNvbQ0K