Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4494627pxj; Tue, 8 Jun 2021 16:05:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzZDSi0q688bplkLIJ0M/+ZYri7/na+dPg/ORyjKPHnkNTCnLZLbk2i05YqpD5Nvipq6agi X-Received: by 2002:a17:906:27d6:: with SMTP id k22mr26311763ejc.323.1623193507241; Tue, 08 Jun 2021 16:05:07 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1623193507; cv=pass; d=google.com; s=arc-20160816; b=AksbZj/jRlLs4gpSr5s1Okt4BukHyRMBYrEGH6iDBOMYQP452z0CwxkGpzc8eCoYvc Rid4HYS+9JIUJMtlIF0B07z8Zyjb8e+oT+uGAEjKQioaIeNG0kJMMXbT1xrCtJnw2W6/ /1GCPwh9MBsrapHb91D6t4QBrx+CcE0B+mienALsLHeFkITa64fBfNtLZ24TUr8WDOAU HqVY0qaHiyIxUPIcglHE74xZmMvA+AIIMlWNF5OwO326f6cFpIoj+XstNrS3Eqr8KRxl H2q/OHPZp+oAQXKGf6sGE6OYeVjoRoTfWoWkJujX5axkxqeANy4F4HAyKnGfzdQzToHW Sc+w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=iLvJl7BBOL1Tpia991eiK1ertBTsP3m+sNAUAo5RmvY=; b=zhUBIVgejcT0hptpqz93j1aVX91hvv+Drtn+2WEjvGNEn3YSay3aD64cOQjOo32Bw7 ZxOcmCRi5J7R0U+XMCg8Jwofgfosa/5vEoFyptkdUD2Iavxs7fadjPkgHUyXcG9WdBiL Kdn+DhfdbOzeR/LaJ8TqzF98dXrX9xKG9ohG9xzrKeGVCVa0KjBPiVwZcqPOGp/Aiq/u 9gSXx64+nX3tAqY6yr6PA5QiJDJ4ZNblRzqI4zUnGpLoaGqvZw5LNnUCMG05HrTrQ6bt jVteyWbXR1Q4HbFbm6osFsahoa0fBEEdz16Y0pzRPjElz6JElFPB2ijc0ZIdAiUQGirU tZXg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=Sj2wkjwl; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f23si831660edv.591.2021.06.08.16.04.19; Tue, 08 Jun 2021 16:05:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=Sj2wkjwl; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231186AbhFHXEy (ORCPT + 99 others); Tue, 8 Jun 2021 19:04:54 -0400 Received: from mail-co1nam11on2115.outbound.protection.outlook.com ([40.107.220.115]:38497 "EHLO NAM11-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S230250AbhFHXEx (ORCPT ); Tue, 8 Jun 2021 19:04:53 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ICi8RENsf0nxH46bH9arGEpcd2EZPTAu8NU+glG3Eulo0Gec4Dlqe5y8fI/uLVNDHcpLGYx5Erx+NkVqANYIfF/4nOX9bZ1yJa5NMueK3qFDcQTmDcIW5w9d/2oDbrgYqp/yxL+BW6lSk5RlaEXJy0wwlq+UZ4nMvY4K4kIHlkUL0G3z3QulKwEdGB8KMPxqxBslm9CtOFp/9AGVK5RUqPswOj1oUMrYcBw1yejOfP9/MQ+of4Dx2xeP2zZQa+40ccfi42MVHfBWla3lqKVledOhfdBXoaab7HgsZBcc56ZYUYn00+IOCKvPVSHGq+MPh6dnuLjC4h2F1gqo1MU1nw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iLvJl7BBOL1Tpia991eiK1ertBTsP3m+sNAUAo5RmvY=; b=P2pT+0yXx6r5W4ZvTVMe6DcwP0mSJL2YMl1OCbHTYhkelPIiqcCn0o50rITY/Eaw+JVlijhYX2+d62OlsAPAOHAWhHIUKSs8xtgpb+Xw5tq62QX6QDjD6F8rwB6kfDTt4Nxdr9QiRFunbWaXNrjmgdSifkYLOPGex7S1Zd21OtORfP2dP1vJDhn8gfJZXquwEO8kzfTV1o/JhM8HsXvs5zsNO8PLlrXP5Z4wN9UWgmin0v4L0Yg0VLyY5U44ISTvmvUSOKjKRg08VCguPcdcZRhS6dVftTKYJiJWgr1r47q2DdvxWSgbvM9uioGKwHAUBzOJ220j3XJN0LdIg1bBlA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hammerspace.com; dmarc=pass action=none header.from=hammerspace.com; dkim=pass header.d=hammerspace.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iLvJl7BBOL1Tpia991eiK1ertBTsP3m+sNAUAo5RmvY=; b=Sj2wkjwltKcNi7S39SQZP6gv1IHWXgS+05oPhj7nN1Il/yV/kyDGVVSGSCATldrr7Sj6gG0IVmLyI6e3FzuwTgxq2+fcws0pNWcTBaBCdTYG013y9p47MC/Jm5LU+24PaORQfUvrovblNdSN05y0/p4GM1eDu8bVuNdIms4iSDA= Received: from DS7PR13MB4733.namprd13.prod.outlook.com (2603:10b6:5:3b1::24) by DM5PR13MB1305.namprd13.prod.outlook.com (2603:10b6:3:26::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.17; Tue, 8 Jun 2021 23:02:55 +0000 Received: from DS7PR13MB4733.namprd13.prod.outlook.com ([fe80::4c65:55ca:a5a2:f18]) by DS7PR13MB4733.namprd13.prod.outlook.com ([fe80::4c65:55ca:a5a2:f18%7]) with mapi id 15.20.4219.021; Tue, 8 Jun 2021 23:02:55 +0000 From: Trond Myklebust To: "olga.kornievskaia@gmail.com" CC: "linux-nfs@vger.kernel.org" , "anna.schumaker@netapp.com" , "chuck.lever@oracle.com" Subject: Re: [PATCH 1/1] NFSv4.1+ add trunking when server trunking detected Thread-Topic: [PATCH 1/1] NFSv4.1+ add trunking when server trunking detected Thread-Index: AQHXXJZ2q4Fg/jBv8EW7vOhaPbIm9asKlDaAgAAEKoCAAALKAIAAA5OAgAAB/QCAAAE6AIAAArsAgAALcACAAALLAIAAAgwAgAAGsAA= Date: Tue, 8 Jun 2021 23:02:55 +0000 Message-ID: <27a8050d05d12a2bd294fe0b035ad7a39e63aaca.camel@hammerspace.com> References: <20210608184527.87018-1-olga.kornievskaia@gmail.com> <29835A59-A523-49FD-8D28-06CDC2F0E94C@oracle.com> <1753b60c2cc23e6e650357fbf710ef4450310d76.camel@hammerspace.com> In-Reply-To: Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=hammerspace.com; x-originating-ip: [68.36.133.222] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3895bd6f-b370-4847-203d-08d92ad18d48 x-ms-traffictypediagnostic: DM5PR13MB1305: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uGQrh+vU1OygD23og0rePLl8ynLjMYYltUzdVC1q+PJKKWZeU/8jS08eIUWzkwlAQmJzlLHUsYc307z+JTB8Sm1ll7ByArbl6GqnJ+EoBMF7xK21NcM1IDidoqydSpUkKG9pUmWHurjRRu02NP3vaUhNfqhwHKx1n5oulAeK+uGx6EBsjOMoczNcY1AGuE0ifWwBRMOnoL9tXt8onGvkUauZO3Iy8MKqGqtpIGrJVBOxRNgBzKA5zFabJL0AI/UlhcgmPQl4QyrI1rVmuk31Qv8BxvHWeCy91QZstVA2vebf4+mb2xo/5/YHyxn4fVPe7zgzk7ZOWRHNUJVkd2RwTN67B09mQVA806yyENd+27ezJPNSKexvHUPFM14u1W5P3LoWBHQp+B+BeDpwO1iP5HWYj/MBe0g/v75Zwmlek7+PdsQ7WMTvvh8a1PC7ToUeUfgzzKVK7zdCNY0G1luLnO1q0e5Dszd7fu0dzHyu5fx4IYikGwmWqBpSvUrBujbC5PdaWypOBQ9rGYtMC+ykRMlCs7kPRTZy6iNl52N0IbuH79h9PNqiX2zbD6aN/kSzWic34cG/QiEf4yfLkf2z2O8WQGduTt7vptCu7Byd1to= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR13MB4733.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(66946007)(8936002)(64756008)(6506007)(86362001)(186003)(498600001)(66476007)(53546011)(5660300002)(66556008)(66446008)(76116006)(38100700002)(6916009)(91956017)(54906003)(2906002)(6512007)(122000001)(83380400001)(2616005)(26005)(36756003)(8676002)(71200400001)(6486002)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?b1g3Qmd0Q1d4enJMOXAzZTBINTlqbFhPYjl6d1pncEhtTGdYT1EwK2NFY0Nl?= =?utf-8?B?emlTQmpLL2VCeGdhQjBvSWxRYUc2bWFaT1lIUWxKbG1lWGpZTndKUzlmb2k5?= =?utf-8?B?M1M3V2ovTGlKYnMxTXM3dGhNWDJPajVsS25QUXhxeWVKQkhhbkVUQ3ZPOXdK?= =?utf-8?B?K3JERlJpMUhoKzdUQTVjNmxkUDlSYXpNY1FCSVhaQUJWOXNlcU1JZlA3cGgy?= =?utf-8?B?QjBoZzdPRTRvYnFHdHNKWUhaRUFHT2pUYUdVNFZpejU1UzdQQ3lXVk01NDRI?= =?utf-8?B?VVdkd3M2Vzd1QXJiVm9wNkdDMjdzMFN2Q1YzQWZSZWN5REt0NXc5Z2pqMkRN?= =?utf-8?B?SkdVVjBLaUZTTkFZRExiYjhpS0k3Zkl1NVl0d3lMNUFzMEdDNGZJMkloUCsx?= =?utf-8?B?YTBiTXlPc1g4UjFqc1NpT01xUFluaUhKU1hKMzZONlBIbFRiY0lKbmpiNlJJ?= =?utf-8?B?RGY0bDNnNVI0WUFUajI1Y0xwS1FwWHpKNFdCR2dqY0YrVDhjbXRmbW5PWXlr?= =?utf-8?B?Sjd6cXVkcHBrRkhVYWlJRkhxb0FQbmgrSEU0Yi9lS1hsZWkrVXUxdGVBaVo4?= =?utf-8?B?cHordjdvejhhS0pEU080WG1nNk02aDVGZ09la0FuK1dUZ1RTQzM1WE85bk9P?= =?utf-8?B?VkVObUhyL2FNZUNDYzU3SXBHSXJyN0ViUHlSVVhwYmZITkwzbWJ3ODlxSm9m?= =?utf-8?B?TkVqR0xGc3V2VjBSeUZ6YjFnb3FxNGdocStQNEVqNHhlOVVJWFN0QUN6UzQv?= =?utf-8?B?REtrU1l6OUYxT0M0c25Va0VqdGJtZExxV2l0UkFja3p5QWNXRENYT3cvNDA3?= =?utf-8?B?RHR0UlZmRjhnbGh4UjNtSjRmcmNxb0x0QmQ3bHBkZmozeXY2eUUrU1Q1Ynpo?= =?utf-8?B?eUF1dXlXRDZhdnpCNUhyQnAyQnV5SzF4d0plMHlxcjB6MGxDUVFWSlY1YjZF?= =?utf-8?B?d3dUYVBoOG5vRlhpK2FzL3BlNC9XeGlZMDlMcFQwb2crWFh5Q1RBM2FLa1RR?= =?utf-8?B?M3dQNVFiRDc2ZnZBdVVMRXNCQlhCS1NSSzRJVjVkdWFaa0FSR3BpMndHb0s1?= =?utf-8?B?VmdWaWM2cjFGTG9uaDhKQWtjQm9mSXRrTS9jcEVSMGNkNXRmRURkdlVncVM5?= =?utf-8?B?Rmt0OHBIWmhacTk3TDE4akNSa24xU3JmYWlpRkNGNWdyYktDZUdiWGlZNU8x?= =?utf-8?B?Vy9GRzhsK0I4aXkrRGZvaXBmbTRBaWZDUkZ0RVMxUStDLzBMMytvcHYyc1B5?= =?utf-8?B?RGhvSkNRU0lTb05NbXBuUTJJdEhDSkV3Vy9IWVVDYnJ1Z0dpelZodFM2UGht?= =?utf-8?B?NVcyZm5tVFZjWEM5ZHk1Z1BOMUhLK1Q0bW1MS0dkUWR1eEw5bmtzNkdnek03?= =?utf-8?B?akw4dzY3NjU4U04rdFhaNlNXeVFzN0YxZVcxY0w5Zmp4TDd2VFlJSWoyMFp2?= =?utf-8?B?SFhUdytsV0p2OHcveTN2OWh3YW1manYySUJVTmpkTW5iQUI3ZFNYMk9mU3hj?= =?utf-8?B?Y0t1NWpnOEh5KzBlSXJZU0Z4aEF3ME5xeEFoTGF2NG5kN0pLMnNaclJZV2Ux?= =?utf-8?B?MEthRDNiaWc2cThxR2hCTG1US3ZuUlBQb0h1bnJLdUVwbXRqdkdZRmp5dUsy?= =?utf-8?B?S0pSSFVlMFcwek9zQUpHSlB0SVNqY0hGeEpZWlJ6L0g1WWVjTjVIODJFNFpi?= =?utf-8?B?MGxoQ1pENkhrbTdmQ1JReFJPTWoxdncraVZpeW52bmthSFZOOTIrcjVSTGll?= =?utf-8?B?YnpGb3ZKYzFRcDFVclMxdXFzenAySXJLYmNaSVBPUWJzcGhyV3pSZTUxeHhu?= =?utf-8?B?VEptUWpEQUl1ZnFlTUNUdz09?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS7PR13MB4733.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3895bd6f-b370-4847-203d-08d92ad18d48 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jun 2021 23:02:55.5635 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 8GXyBNeCcb5CElIAfBihtzC0s41qK8PGBw57cmWL2nzFh4MrlyiM1/wzd2/yb+nyrLL7jOm+UJJNKZhmy5nwUQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR13MB1305 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gVHVlLCAyMDIxLTA2LTA4IGF0IDE4OjM4IC0wNDAwLCBPbGdhIEtvcm5pZXZza2FpYSB3cm90 ZToNCj4gT24gVHVlLCBKdW4gOCwgMjAyMSBhdCA2OjMxIFBNIFRyb25kIE15a2xlYnVzdCA8IA0K PiB0cm9uZG15QGhhbW1lcnNwYWNlLmNvbT4gd3JvdGU6DQo+ID4gDQo+ID4gT24gVHVlLCAyMDIx LTA2LTA4IGF0IDE4OjIxIC0wNDAwLCBPbGdhIEtvcm5pZXZza2FpYSB3cm90ZToNCj4gPiA+IE9u IFR1ZSwgSnVuIDgsIDIwMjEgYXQgNTo0MSBQTSBUcm9uZCBNeWtsZWJ1c3QgPA0KPiA+ID4gdHJv bmRteUBoYW1tZXJzcGFjZS5jb20+IHdyb3RlOg0KPiA+ID4gPiANCj4gPiA+ID4gT24gVHVlLCAy MDIxLTA2LTA4IGF0IDE3OjMwIC0wNDAwLCBPbGdhIEtvcm5pZXZza2FpYSB3cm90ZToNCj4gPiA+ ID4gPiBPbiBUdWUsIEp1biA4LCAyMDIxIGF0IDU6MjYgUE0gVHJvbmQgTXlrbGVidXN0IDwNCj4g PiA+ID4gPiB0cm9uZG15QGhhbW1lcnNwYWNlLmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4gPiANCj4g PiA+ID4gPiA+IE9uIFR1ZSwgMjAyMS0wNi0wOCBhdCAyMToxOSArMDAwMCwgVHJvbmQgTXlrbGVi dXN0IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiBPbiBUdWUsIDIwMjEtMDYtMDggYXQgMjE6MDYgKzAw MDAsIENodWNrIExldmVyIElJSSB3cm90ZToNCj4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IE9uIEp1biA4LCAyMDIxLCBhdCA0OjU2IFBNLCBPbGdh IEtvcm5pZXZza2FpYSA8DQo+ID4gPiA+ID4gPiA+ID4gPiBvbGdhLmtvcm5pZXZza2FpYUBnbWFp bC5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiBPbiBU dWUsIEp1biA4LCAyMDIxIGF0IDQ6NDEgUE0gQ2h1Y2sgTGV2ZXIgSUlJIDwNCj4gPiA+ID4gPiA+ ID4gPiA+IGNodWNrLmxldmVyQG9yYWNsZS5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4g PiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IE9uIEp1biA4LCAyMDIxLCBhdCAyOjQ1IFBNLCBPbGdhIEtvcm5pZXZza2Fp YSA8DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gb2xnYS5rb3JuaWV2c2thaWFAZ21haWwuY29tPiB3 cm90ZToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBGcm9t OiBPbGdhIEtvcm5pZXZza2FpYSA8a29sZ2FAbmV0YXBwLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBBZnRlciB0cnVua2luZyBpcyBkaXNjb3ZlcmVk IGluDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbmZzNF9kaXNjb3Zlcl9zZXJ2ZXJfdHJ1bmtpbmco KSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBhZGQgdGhlIHRyYW5zcG9ydCB0byB0aGUgb2xkIGNs aWVudCBzdHJ1Y3R1cmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiZWZvcmUNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBkZXN0cm95aW5nDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIG5ldyBjbGll bnQgc3RydWN0dXJlIChhbG9uZyB3aXRoIGl0cw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRyYW5z cG9ydCkuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gU2ln bmVkLW9mZi1ieTogT2xnYSBLb3JuaWV2c2thaWEgPCANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBr b2xnYUBuZXRhcHAuY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+IGZzL25mcy9uZnM0Y2xpZW50LmMgfCA0MA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiAxIGZpbGUgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKQ0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9mcy9uZnMvbmZzNGNs aWVudC5jDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYi9mcy9uZnMvbmZzNGNsaWVudC5jDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gaW5kZXggNDI3MTkzODRlMjVmLi45ODRjODUxODQ0ZDggMTAwNjQ0 DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gLS0tIGEvZnMvbmZzL25mczRjbGllbnQuYw0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ICsrKyBiL2ZzL25mcy9uZnM0Y2xpZW50LmMNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiBAQCAtMzYxLDYgKzM2MSw0NCBAQCBzdGF0aWMgaW50DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gbmZzNF9pbml0X2NsaWVudF9taW5vcl92ZXJzaW9uKHN0cnVjdCBuZnNfY2xpZW50DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gKmNscCkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiDCoMKgwqDC oCByZXR1cm4gbmZzNF9pbml0X2NhbGxiYWNrKGNscCk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g fQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICtzdGF0aWMg dm9pZCBuZnM0X2FkZF90cnVuayhzdHJ1Y3QgbmZzX2NsaWVudA0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ICpjbHAsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc3RydWN0DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gbmZzX2NsaWVudCAqb2xkKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gK8KgwqDCoMKgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGNscF9hZGRy LCBvbGRfYWRkcjsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArwqDCoMKgwqAgc3RydWN0IHNvY2th ZGRyICpjbHBfc2FwID0gKHN0cnVjdCBzb2NrYWRkcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICop JmNscF9hZGRyOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICvCoMKgwqDCoCBzdHJ1Y3Qgc29ja2Fk ZHIgKm9sZF9zYXAgPSAoc3RydWN0IHNvY2thZGRyDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKikm b2xkX2FkZHI7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoMKgIHNpemVfdCBjbHBfc2Fs ZW4sIG9sZF9zYWxlbjsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArwqDCoMKgwqAgc3RydWN0IHhw cnRfY3JlYXRlIHhwcnRfYXJncyA9IHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIC5pZGVudCA9IG9sZC0+Y2xfcHJvdG8sDQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAubmV0ID0gb2xkLT5jbF9uZXQsDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuc2VydmVybmFtZSA9 IG9sZC0+Y2xfaG9zdG5hbWUsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoMKgIH07DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoMKgIHN0cnVjdCBuZnM0X2FkZF94cHJ0X2RhdGEg eHBydGRhdGEgPSB7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAuY2xwID0gb2xkLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICvCoMKgwqDCoCB9Ow0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ICvCoMKgwqDCoCBzdHJ1Y3QgcnBjX2FkZF94cHJ0X3Rlc3QgcnBj ZGF0YSA9IHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IC5hZGRfeHBydF90ZXN0ID0gb2xkLT5jbF9tdm9wcy0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IHNlc3Npb25fdHJ1bmssDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAuZGF0YSA9ICZ4cHJ0ZGF0YSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArwqDCoMKg wqAgfTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK8Kg wqDCoMKgIGlmIChjbHAtPmNsX3Byb3RvICE9IG9sZC0+Y2xfcHJvdG8pDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47DQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gK8KgwqDCoMKgIGNscF9zYWxlbiA9IHJwY19wZWVyYWRkcihjbHAtPmNsX3JwY2Ns aWVudCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBjbHBfc2FwLA0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+IHNpemVvZihjbHBfYWRkcikpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICvCoMKgwqDCoCBv bGRfc2FsZW4gPSBycGNfcGVlcmFkZHIob2xkLT5jbF9ycGNjbGllbnQsDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gb2xkX3NhcCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBzaXplb2Yob2xkX2FkZHIp KTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDC oMKgIGlmIChjbHBfYWRkci5zc19mYW1pbHkgIT0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBvbGRf YWRkci5zc19mYW1pbHkpDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCByZXR1cm47DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ICvCoMKgwqDCoCB4cHJ0X2FyZ3MuZHN0YWRkciA9IGNscF9zYXA7DQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gK8KgwqDCoMKgIHhwcnRfYXJncy5hZGRybGVuID0gY2xwX3NhbGVuOw0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArwqDCoMKgwqAgeHBy dGRhdGEuY3JlZCA9IG5mczRfZ2V0X2NsaWRfY3JlZChvbGQpOw0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ICvCoMKgwqDCoCBycGNfY2xudF9hZGRfeHBydChvbGQtPmNsX3JwY2NsaWVudCwNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiAmeHBydF9hcmdzLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiBycGNfY2xudF9zZXR1cF90ZXN0X2FuZF9hZGRfeHBydCwNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiAmcnBjZGF0YSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiBJcyB0aGVyZSBhbiB1cHBlciBib3VuZCBvbiB0aGUgbnVtYmVyIG9m IHRyYW5zcG9ydHMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhhdA0KPiA+ID4gPiA+ID4gPiA+ID4g PiBhcmUgYWRkZWQgdG8gdGhlIE5GUyBjbGllbnQncyBzd2l0Y2g/DQo+ID4gPiA+ID4gPiA+ID4g PiANCj4gPiA+ID4gPiA+ID4gPiA+IEkgZG9uJ3QgYmVsaWV2ZSBhbnkgbGltaXRzIGV4aXN0IHJp Z2h0IG5vdy4gV2h5DQo+ID4gPiA+ID4gPiA+ID4gPiBzaG91bGQNCj4gPiA+ID4gPiA+ID4gPiA+ IHRoZXJlDQo+ID4gPiA+ID4gPiA+ID4gPiBiZSBhDQo+ID4gPiA+ID4gPiA+ID4gPiBsaW1pdD8g QXJlIHlvdSBzYXlpbmcgdGhhdCB0aGUgY2xpZW50IHNob3VsZCBsaW1pdA0KPiA+ID4gPiA+ID4g PiA+ID4gdHJ1bmtpbmc/DQo+ID4gPiA+ID4gPiA+ID4gPiBXaGlsZQ0KPiA+ID4gPiA+ID4gPiA+ ID4gdGhpcyBpcyBub3Qgd2hhdCdzIGhhcHBlbmluZyBoZXJlLCBidXQgc2F5DQo+ID4gPiA+ID4g PiA+ID4gPiBGU19MT0NBVElPTg0KPiA+ID4gPiA+ID4gPiA+ID4gcmV0dXJuZWQNCj4gPiA+ID4g PiA+ID4gPiA+IDEwMA0KPiA+ID4gPiA+ID4gPiA+ID4gaXBzIGZvciB0aGUgc2VydmVyLiBBcmUg eW91IHNheWluZyB0aGUgY2xpZW50IHNob3VsZA0KPiA+ID4gPiA+ID4gPiA+ID4gYmUNCj4gPiA+ ID4gPiA+ID4gPiA+IGxpbWl0aW5nDQo+ID4gPiA+ID4gPiA+ID4gPiBob3cNCj4gPiA+ID4gPiA+ ID4gPiA+IG1hbnkgdHJ1bmthYmxlIGNvbm5lY3Rpb25zIGl0IHdvdWxkIGJlIGVzdGFibGlzaGlu Zw0KPiA+ID4gPiA+ID4gPiA+ID4gYW5kDQo+ID4gPiA+ID4gPiA+ID4gPiBwaWNraW5nDQo+ID4g PiA+ID4gPiA+ID4gPiBqdXN0IGENCj4gPiA+ID4gPiA+ID4gPiA+IGZldyBhZGRyZXNzZXMgdG8g dHJ5PyBXaGF0J3MgaGFwcGVuaW5nIHdpdGggdGhpcw0KPiA+ID4gPiA+ID4gPiA+ID4gcGF0Y2gg aXMNCj4gPiA+ID4gPiA+ID4gPiA+IHRoYXQNCj4gPiA+ID4gPiA+ID4gPiA+IHNheQ0KPiA+ID4g PiA+ID4gPiA+ID4gdGhlcmUgYXJlIDEwMG1vdW50cyB0byAxMDAgaXBzIChlYWNoIHJlcHJlc2Vu dGluZyB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+IHNhbWUNCj4gPiA+ID4gPiA+ID4gPiA+IHNlcnZl cg0KPiA+ID4gPiA+ID4gPiA+ID4gb3INCj4gPiA+ID4gPiA+ID4gPiA+IHRydW5rYWJsZSBzZXJ2 ZXIocykpLCB3aXRob3V0IHRoaXMgcGF0Y2ggYSBzaW5nbGUNCj4gPiA+ID4gPiA+ID4gPiA+IGNv bm5lY3Rpb24NCj4gPiA+ID4gPiA+ID4gPiA+IGlzDQo+ID4gPiA+ID4gPiA+ID4gPiBrZXB0LA0K PiA+ID4gPiA+ID4gPiA+ID4gd2l0aCB0aGlzIHBhdGNoIHdlJ2xsIGhhdmUgMTAwIGNvbm5lY3Rp b25zLg0KPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+IFRoZSBwYXRjaCBkZXNjcmlw dGlvbiBuZWVkcyB0byBtYWtlIHRoaXMgYmVoYXZpb3IgbW9yZQ0KPiA+ID4gPiA+ID4gPiA+IGNs ZWFyLg0KPiA+ID4gPiA+ID4gPiA+IEl0DQo+ID4gPiA+ID4gPiA+ID4gbmVlZHMgdG8gZXhwbGFp biAid2h5IiAtLSB0aGUgYm9keSBvZiB0aGUgcGF0Y2ggYWxyZWFkeQ0KPiA+ID4gPiA+ID4gPiA+ IGV4cGxhaW5zDQo+ID4gPiA+ID4gPiA+ID4gIndoYXQiLiBDYW4geW91IGluY2x1ZGUgeW91ciBs YXN0IHNlbnRlbmNlIGluIHRoZQ0KPiA+ID4gPiA+ID4gPiA+IGRlc2NyaXB0aW9uDQo+ID4gPiA+ ID4gPiA+ID4gYXMNCj4gPiA+ID4gPiA+ID4gPiBhIHVzZSBjYXNlPw0KPiA+ID4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gPiA+IEFzIGZvciB0aGUgYmVoYXZpb3IuLi4gU2VlbXMgdG8gbWUgdGhh dCB0aGVyZSBhcmUgZ29pbmcNCj4gPiA+ID4gPiA+ID4gPiB0bw0KPiA+ID4gPiA+ID4gPiA+IGJl DQo+ID4gPiA+ID4gPiA+ID4gb25seQ0KPiA+ID4gPiA+ID4gPiA+IGluZmluaXRlc2ltYWwgZ2Fp bnMgYWZ0ZXIgdGhlIGZpcnN0IGZldyBjb25uZWN0aW9ucywNCj4gPiA+ID4gPiA+ID4gPiBhbmQN Cj4gPiA+ID4gPiA+ID4gPiBhZnRlcg0KPiA+ID4gPiA+ID4gPiA+IHRoYXQsIGl0J3MgZ29pbmcg dG8gYmUgYSBsb3QgZm9yIGJvdGggc2lkZXMgdG8gbWFuYWdlDQo+ID4gPiA+ID4gPiA+ID4gZm9y DQo+ID4gPiA+ID4gPiA+ID4gbm8NCj4gPiA+ID4gPiA+ID4gPiByZWFsDQo+ID4gPiA+ID4gPiA+ ID4gZ2Fpbi4gSSB0aGluayB5b3UgZG8gd2FudCB0byBjYXAgdGhlIHRvdGFsIG51bWJlciBvZg0K PiA+ID4gPiA+ID4gPiA+IGNvbm5lY3Rpb25zDQo+ID4gPiA+ID4gPiA+ID4gYXQgYSByZWFzb25h YmxlIG51bWJlciwgZXZlbiBpbiB0aGUgRlNfTE9DQVRJT05TIGNhc2UuDQo+ID4gPiA+ID4gPiA+ ID4gDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBJJ2QgdGVuZCB0byBhZ3JlZS4gSWYg eW91IHdhbnQgdG8gc2NhbGUgSS9PIHRoZW4gcE5GUyBpcw0KPiA+ID4gPiA+ID4gPiB0aGUNCj4g PiA+ID4gPiA+ID4gd2F5DQo+ID4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4gPiA+IGdvLA0KPiA+ ID4gPiA+ID4gPiBub3QgdmFzdCBudW1iZXJzIG9mIGNvbm5lY3Rpb25zIHRvIGEgc2luZ2xlIHNl cnZlci4NCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBCVFc6IEFGQUlDUyB0aGlzIHBhdGNo IHdpbGwgZW5kIHVwIGFkZGluZyBhbm90aGVyDQo+ID4gPiA+ID4gPiBjb25uZWN0aW9uDQo+ID4g PiA+ID4gPiBldmVyeQ0KPiA+ID4gPiA+ID4gdGltZQ0KPiA+ID4gPiA+ID4gd2UgbW91bnQgYSBu ZXcgZmlsZXN5c3RlbSwgd2hldGhlciBvciBub3QgYSBjb25uZWN0aW9uDQo+ID4gPiA+ID4gPiBh bHJlYWR5DQo+ID4gPiA+ID4gPiBleGlzdHMNCj4gPiA+ID4gPiA+IHRvIHRoYXQgSVAgYWRkcmVz cy4gVGhhdCdzIHVuYWNjZXB0YWJsZS4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBOb3QgaW4gbXkg dGVzdGluZy4gTW91bnRzIHRvIHRoZSBzYW1lIHNlcnZlciAoc2FtZSBJUCkNCj4gPiA+ID4gPiBk aWZmZXJlbnQNCj4gPiA+ID4gPiBleHBvcnQgdm9sdW1lcyBsZWFkIHRvIHVzZSBvZiBhIHNpbmds ZSBjb25uZWN0aW9uLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiBBaC4uLiBOZXZl ciBtaW5kLiBUaGUgY29tcGFyaXNvbiBpcyBtYWRlIGJ5DQo+ID4gPiA+IHJwY19jbG50X3NldHVw X3Rlc3RfYW5kX2FkZF94cHJ0KCksIGFuZCB0aGUgYWRkcmVzcyBpcw0KPiA+ID4gPiBkaXNjYXJk ZWQgaWYNCj4gPiA+ID4gaXQNCj4gPiA+ID4gaXMgYWxyZWFkeSBwcmVzZW50Lg0KPiA+ID4gPiAN Cj4gPiA+ID4gSG93ZXZlciB3aHkgYXJlIHlvdSBydW5uaW5nIHRydW5raW5nIGRldGVjdGlvbiBh IHNlY29uZCB0aW1lIG9uDQo+ID4gPiA+IHRoZQ0KPiA+ID4gPiBhZGRyZXNzIHlvdSd2ZSBqdXN0 IHJ1biB0cnVua2luZyBkZXRlY3Rpb24gb24gYW5kIGhhdmUgZGVjaWRlZA0KPiA+ID4gPiB0bw0K PiA+ID4gPiBhZGQ/DQo+ID4gPiANCj4gPiA+IEJlY2F1c2UgdGhhdCdzIHdoZXJlIHdlIGRldGVy bWluZWQgdGhhdCB0aGVzZSBhcmUgZGlmZmVyZW50DQo+ID4gPiBjbGllbnRzDQo+ID4gPiBhbmQg YXJlIHRydW5rYWJsZT8gQnV0IEkgZ3Vlc3MgYWxzbyBmb3IgdGhlIGVhc2Ugb2YgcmUtdXNpbmcN Cj4gPiA+IGV4aXN0aW5nDQo+ID4gPiBjb2RlLiBUaGVyZSBpcyBubyBob29rIHRvIGNyZWF0ZSBh biB4cHJ0IGFuZCBhZGQgaXQgdG8gYW4NCj4gPiA+IGV4aXN0aW5nDQo+ID4gPiBSUEMNCj4gPiA+ IGNsaWVudC4gT25lIGNhbiBiZSBjcmVhdGVkLg0KPiA+IA0KPiA+IFdoeSBub3QgcnBjX2NsbnRf YWRkX3hwcnQoKT8gVGhhdCdzIHdoYXQgcE5GUyB1c2VzIGZvciB0aGlzIGNhc2UuDQo+IA0KPiBU aGF0J3Mgd2hhdCB0aGlzIGNvZGUgaXMgdXNpbmcuDQo+IA0KDQoNClNvcnJ5LiBJIHNob3VsZCBo YXZlIHdyaXR0ZW46ICdycGNfY2xudF9hZGRfeHBydCgpIHdpdGgNCnJwY19jbG50X3NldHVwX3Rl c3RfYW5kX2FkZF94cHJ0KCknLCB3aGljaCBpcyB3aGF0IHBORlMgdXNlcyB3aGVuDQpjb25uZWN0 aW5nIHRvIE5GU3YzIHNlcnZlcnMuDQppLmUuDQoNCiAgIHJwY19jbG50X2FkZF94cHJ0KGNscC0+ Y2xfcnBjY2xpZW50LCAmeHBydF9hcmdzLA0KICAgICAgICAgICAgICAgICAgICAgcnBjX2NsbnRf dGVzdF9hbmRfYWRkX3hwcnQsIE5VTEwpOw0KPiANCg0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxp bnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lciwgSGFtbWVyc3BhY2UNCnRyb25kLm15a2xlYnVzdEBo YW1tZXJzcGFjZS5jb20NCg0KDQo=