Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp865637pxu; Thu, 3 Dec 2020 14:52:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJxf5M3HJmb8p4mkWPYapXRr0+8u3CFXdVpJnppatq4dIJVpixRYRGGePKFvZhTwBTZ3rVCl X-Received: by 2002:aa7:c558:: with SMTP id s24mr4987475edr.257.1607035976741; Thu, 03 Dec 2020 14:52:56 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1607035976; cv=pass; d=google.com; s=arc-20160816; b=CjrqeaOI2eSqKnN1AUhuxGBVJwPbkkjZDX3UWjDTBumZa8xVmJQgnjL3Nasq0SXrzH Td753V4xWIx/MyVZgAjG2UplKYC/t+YP4AQfxBMA/ACpRFEz62QtK+H+kvcs9KUCj50x J8Acy3FcjCD6W7VMvUMByCSd1YRRWgTYY8wXGvQu3/XULyUgWAncWSBSnNBGCJu+uyMJ XhEO86dC2ID+o3m3YK7Mx4AgsojmWi3vfbEIhiXnde5bKetfJmEIj+ppPwaVe/MZ+0Ae k2iHRD4tcpPaaGcuUPN/7fppQcNtJqaRwNqNVm5hkt2bZL1D+GOLUJBTsCsTprVXmf5m s66A== 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=O99MMJivgJRoMzoUZfswq6DcBoRnVftyAC44VsnpOKE=; b=tzI/X97VVqLvldb9+JvvIMTKxuwLyQvHm59ySpA/1NfQsc/4PufNfF6nXe++XOUJ/O GscHOL07s1g6PxGLPi1/h0lDnbRZJA7DKSv8MP0etcJrIe4sqxSg/2YAgGQmgtbCYxlM cS6/5yyuCKJr9uZ/PlRITomR0r2KNEuWf/RqoemOZjfNL3ZiNNfNddv3JaWQXkPrgq5j 1hZ6Xjdvwae5Qxy48Ot9iKv2SMGwsM6tCkeIQwyPknKD+y2iRQJtMzmojWR3kq0Zl66b 4UId+JM/de8UHoXp3gtQodfmwoXWKB/xdxSMlwE0E0LeFN/LNff1LJJ8JFmtq7k3x2sW BUBg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b="Bt+2IV/2"; 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 dx21si269446ejb.627.2020.12.03.14.52.10; Thu, 03 Dec 2020 14:52:56 -0800 (PST) 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="Bt+2IV/2"; 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 S1726641AbgLCWvm (ORCPT + 99 others); Thu, 3 Dec 2020 17:51:42 -0500 Received: from mail-dm6nam08on2118.outbound.protection.outlook.com ([40.107.102.118]:46003 "EHLO NAM04-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725986AbgLCWvl (ORCPT ); Thu, 3 Dec 2020 17:51:41 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Tx/JRT1ZQxkHn4Rsrdo0SEa9nBP+jA1XapZpC1b3vOD0d0Y9lwy22r12kcUcz5vhnNag7jA5z28PUrvHUOl/9YDMuETLGlVk9XsDZeYJy7b2PW5nT47UIOJpX1MgHnR5nweBmllBG0QlAajBikCtqJnTenpO/u4iMOaAQ5KhOR5XHiRIGJ4+n2e5TY3trGWwoa9eVYC5Ef7bHAOyowckQRO7OuTSeCFWQhKn7bVeHEbPL5in79WYHLu/JRl4uLcBxU53DLgZFsPrj5RCIeC3xiMGhEFfKQxufFwECPw87TY5Si9U9IN+rQYp+e+6uXfQ7EYyitbE041ijAlQ+ok1og== 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=O99MMJivgJRoMzoUZfswq6DcBoRnVftyAC44VsnpOKE=; b=flX3pio0BcQMVP2wIEe32RJOaau4B1x+smOFBLjtqJbK1oLdP6rfomGr7WMxlktqX/m9CuNwBuCg0p6rSRnUBKo5FegnfnR95Chy3O1+rAq5FPVso/iuRouSm3gTV1YjFsGG+TQLDlAc3+dbhbgvO9mkzzAEGJqYdt/EeGo3y/NHwlKtXoEwE4aLWlGUNjiMhwblPIZ6hJEgwZfhGGU3xENhL00z2QoKAylFQBRuQDEhJhXilNiJv0iEo1pVNod9o1zwY5K1+Qm1O5INcWe4oIjfrUzKm++q09h29iuG5VyUXlfIkZL4MDJAVHRkTbjwgretatNSulyWcWXFX17xgA== 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=O99MMJivgJRoMzoUZfswq6DcBoRnVftyAC44VsnpOKE=; b=Bt+2IV/2dqU5eUhRuUwzAojkLE3qHkeiANG76iko5l9JFnmx3fg5sxMX0VdZHiepo4wHq1PJKkNoNMNWp+JklUj2MFGwShOI/rb5heZbbgEjeS5w946d183hScHGHqjhrAX3aVem2+5dioOROH0TGmuqj6kwUAAIsNxTRVUBlmk= Received: from MN2PR13MB3957.namprd13.prod.outlook.com (2603:10b6:208:263::11) by BL0PR13MB4420.namprd13.prod.outlook.com (2603:10b6:208:17c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.6; Thu, 3 Dec 2020 22:50:46 +0000 Received: from MN2PR13MB3957.namprd13.prod.outlook.com ([fe80::e989:f666:131a:e210]) by MN2PR13MB3957.namprd13.prod.outlook.com ([fe80::e989:f666:131a:e210%9]) with mapi id 15.20.3632.016; Thu, 3 Dec 2020 22:50:46 +0000 From: Trond Myklebust To: "bfields@fieldses.org" , "ffilzlnx@mindspring.com" CC: "linux-cachefs@redhat.com" , "linux-nfs@vger.kernel.org" , "daire@dneg.com" Subject: Re: Adventures in NFS re-exporting Thread-Topic: Adventures in NFS re-exporting Thread-Index: fNDm/l4o9cYx5Rz5g0S1EO4zMAtIR4tJDJwAAAWCe4BeKhpLVGiQL7pUtKchSdvFeTqNAIAEhEYAgBNavQCAAAtBAIABTyGAgAxAb4CAAG0ggIAAGvSAgAAMzwCAAAXZAIAAAzUAgAADTACAAAHegIAAAs4AgAAHHgCAAAMGgA== Date: Thu, 3 Dec 2020 22:50:46 +0000 Message-ID: <72362b839eb2ecc992f41a0e7783545b13e8ecbc.camel@hammerspace.com> References: <1055884313.92996091.1606250106656.JavaMail.zimbra@dneg.com> <20201124211522.GC7173@fieldses.org> <932244432.93596532.1606324491501.JavaMail.zimbra@dneg.com> <1403656117.98163597.1606998035261.JavaMail.zimbra@dneg.com> <20201203185109.GB27931@fieldses.org> <4903965f2beb742e0eca089b5db8aa3a4cabb7f0.camel@hammerspace.com> <20201203211328.GC27931@fieldses.org> <9df8556bf825bd0d565f057b115e35c1b507cf46.camel@hammerspace.com> <019001d6c9bd$acbeb6b0$063c2410$@mindspring.com> <20201203220421.GE27931@fieldses.org> <0452916df308e9419f472b0d5ffb41815014dce4.camel@hammerspace.com> <01a001d6c9c5$37eb34f0$a7c19ed0$@mindspring.com> In-Reply-To: <01a001d6c9c5$37eb34f0$a7c19ed0$@mindspring.com> Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: fieldses.org; dkim=none (message not signed) header.d=none;fieldses.org; 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: 5bb90bcc-3895-44ce-3fbc-08d897dddf43 x-ms-traffictypediagnostic: BL0PR13MB4420: 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: shjeLTsc91LRnL3RCqDPr6VNK5140Dn9eH2V5wmQg8zcigc6XNmJzfgAEzm+g03BN3dtbZVUvUOF/i17HICRa3rHlK9EhwGMF1rZH29/Se3Yujg1anWPW8DBIrN8kwHLHEg6ZJV76kvrHQdqdRDqLGx3XWl+LgO+3/VP04tsRcgTHZ3+DUzcAntsqVjQcqMg+Xem6RwuSf1kNRFOpN7AtC04TLOPmaB1q9w70xogYKhdIvO9XdSebYWMjX0FVFTaCF9vrvXD3Yzr345Wuua3O9WJJ1XlXu8Wdc35u69aJrPjXn6b4AYmSrhJqMw8aDXelWOYq9o+pwy1ignd6n9urEsj7HFpSK4pwPjZ2X35/n4oHoqMkr6EAJfs3HgAieUOaS3DPC5KokflvyY5Kyp5dQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR13MB3957.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(346002)(396003)(366004)(136003)(39840400004)(478600001)(76116006)(8936002)(6486002)(5660300002)(316002)(8676002)(71200400001)(83380400001)(86362001)(53546011)(2906002)(6506007)(186003)(64756008)(26005)(66476007)(36756003)(6512007)(66556008)(91956017)(16799955002)(110136005)(2616005)(66446008)(966005)(66946007)(54906003)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?UFBUYmpjamFDSld4cm5KdFVlOXAybFRqU3k4ZVJSUXlLcXpOdSsvNHc3RjZ4?= =?utf-8?B?cElUZGZCa3dUbjNLWmVGRlgzckU5RTJlODlWQWUvQ010cG9TUjlOSlJsR05D?= =?utf-8?B?YzZzdSt3MlErNlZxYVRYWS9LbEduWENNTmlGNlZrYjkrQ2xWRkI3NjgwTHlz?= =?utf-8?B?eHZDSi9iUFZRbTliMEREVFRYT0pRMytYWVZRdzJ3Tm9KWHRnRDI5MTBXRlBN?= =?utf-8?B?NVB1Yjl6dkpiQ2FkcFcwdzE4NE9rL241VnFZZG9wcTgrWUJ1cHgxdDIwS3RC?= =?utf-8?B?ajVPRHU1bTgwSGZ6emFRTmxYakozWFY3bU1NRXdRWXJCNlFOdGVkNStvZm5q?= =?utf-8?B?YnJycXA1bW1ocVErSmdJRk9FUXpvTkZReWpFMU9RUVlDa1FGR0lvcmRSN3dj?= =?utf-8?B?WldTQVRsd2F2MWl4QWQrTDhwSE03NTJ2Uk9sVG1BM0NiUnY2VjhNZE9FMkI2?= =?utf-8?B?SEhjQ0VTdWNxUTFIc0twZXFrQ3Y0SjVtdm9lY2R1djE0a0hlSzU2blR3MW5T?= =?utf-8?B?ZGxtU1VaeUVQbnVZUUtKQldkbHJnSjBIZGh4TGFZcmFqd0tXZWRQYVE0VFoy?= =?utf-8?B?Z2I1WndQTE1NOWhPVTlPYkN5VklpT0VheFZPY0dLRzVBajY1Zi9GMC9lb3gx?= =?utf-8?B?SEtJVWJ6ZkJkelNlVXh1Z0U5bDJ3L2NJb2NVWDFFaWRyVmdlQTRMSjlIZUM0?= =?utf-8?B?STFGd05BVVhHYS9zK2ZBZ0F4UG9EVTZqK1QrYjlGeS9PeVphZDFhSGl4VjBU?= =?utf-8?B?bkFsWkxrUVpRcE11czZOYWl5alpWczBlUmJRNStDbXpYZVZtKzVQdlRoWEpu?= =?utf-8?B?UnRMbjZ5QzN2K3g1QmZBcmhsWTJ3b0l4bzlyRzZjVDNrdDB5OWRsODhPNHpE?= =?utf-8?B?VEV6ZDluN0tnQUV3NGIwM2NSZ0tndG1XeGVrbmc3Rnp6Q2diYW1GSmlJMTlG?= =?utf-8?B?WlpaWU5ORkFsdWFnck9Td0UxcituMGp5cnNYRkJ1dUVLb29DNGk3ZDBDTFF2?= =?utf-8?B?RmNNSC9ia2U0Vm5FZ05xMlRxeEQ3bnJNWE05UEZBLyszTkVDUnliUFJMNmJu?= =?utf-8?B?YmN3ZVpWV2VNcW9hTXJWelFQS2hmOWtjV3EwTEVEd2ZUWE9sdjBZVXV2NVVI?= =?utf-8?B?OXNjb2FDTkdPWmlwdThPZ2ZRMkhaNDRrZXhzMmwwRXRQYlA2a1QwNHN2U1U1?= =?utf-8?B?ZG4yVitXTTRxYVZtemtHc2dIamI0U2ZYMzBaSllIUi9iMnE3Vk5nbzgyaUMz?= =?utf-8?B?ZmlkVWp5MTJSRXhGVnMxc1RaZG85REtwMG1uTGZCUTc5VU4rdUQrTnRlVmQw?= =?utf-8?Q?FU8ggXdMokWZ8dw8O4ANiJypbCpeaH4ehI?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <78FDB28A5F0E5043BAAB192C17A876DC@namprd13.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR13MB3957.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5bb90bcc-3895-44ce-3fbc-08d897dddf43 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2020 22:50:46.1003 (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: ezjfaGAZ3bFFcs1ioFgj36gUoJlzf9iOup8Rl1C4fQJC/wLjMJxphPV2WvpBA8DfIOY+F4a+ni7oiLCCZXdZOA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR13MB4420 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gVGh1LCAyMDIwLTEyLTAzIGF0IDE0OjM5IC0wODAwLCBGcmFuayBGaWx6IHdyb3RlOg0KPiAN Cj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBUcm9uZCBNeWts ZWJ1c3QgW21haWx0bzp0cm9uZG15QGhhbW1lcnNwYWNlLmNvbV0NCj4gPiBTZW50OiBUaHVyc2Rh eSwgRGVjZW1iZXIgMywgMjAyMCAyOjE0IFBNDQo+ID4gVG86IGJmaWVsZHNAZmllbGRzZXMub3Jn DQo+ID4gQ2M6IGxpbnV4LWNhY2hlZnNAcmVkaGF0LmNvbTsgZmZpbHpsbnhAbWluZHNwcmluZy5j b207IGxpbnV4LQ0KPiA+IG5mc0B2Z2VyLmtlcm5lbC5vcmc7IGRhaXJlQGRuZWcuY29tDQo+ID4g U3ViamVjdDogUmU6IEFkdmVudHVyZXMgaW4gTkZTIHJlLWV4cG9ydGluZw0KPiA+IA0KPiA+IE9u IFRodSwgMjAyMC0xMi0wMyBhdCAxNzowNCAtMDUwMCwgYmZpZWxkc0BmaWVsZHNlcy5vcmfCoHdy b3RlOg0KPiA+ID4gT24gVGh1LCBEZWMgMDMsIDIwMjAgYXQgMDk6NTc6NDFQTSArMDAwMCwgVHJv bmQgTXlrbGVidXN0IHdyb3RlOg0KPiA+ID4gPiBPbiBUaHUsIDIwMjAtMTItMDMgYXQgMTM6NDUg LTA4MDAsIEZyYW5rIEZpbHogd3JvdGU6DQo+ID4gPiA+ID4gPiBPbiBUaHUsIDIwMjAtMTItMDMg YXQgMTY6MTMgLTA1MDAsDQo+ID4gPiA+ID4gPiBiZmllbGRzQGZpZWxkc2VzLm9yZ8Kgd3JvdGU6 DQo+ID4gPiA+ID4gPiA+IE9uIFRodSwgRGVjIDAzLCAyMDIwIGF0IDA4OjI3OjM5UE0gKzAwMDAs IFRyb25kIE15a2xlYnVzdA0KPiA+ID4gPiA+ID4gPiB3cm90ZToNCj4gPiA+ID4gPiA+ID4gPiBP biBUaHUsIDIwMjAtMTItMDMgYXQgMTM6NTEgLTA1MDAsIGJmaWVsZHMgd3JvdGU6DQo+ID4gPiA+ ID4gPiA+ID4gPiBJJ3ZlIGJlZW4gc2NyYXRjaGluZyBteSBoZWFkIG92ZXIgaG93IHRvIGhhbmRs ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gcmVib290IG9mDQo+ID4gPiA+ID4gPiA+ID4gPiBhDQo+ID4g PiA+ID4gPiA+ID4gPiByZS0NCj4gPiA+ID4gPiA+ID4gPiA+IGV4cG9ydGluZyBzZXJ2ZXIuwqAg SSB0aGluayBvbmUgd2F5IHRvIGZpeCBpdCBtaWdodCBiZQ0KPiA+ID4gPiA+ID4gPiA+ID4ganVz dA0KPiA+ID4gPiA+ID4gPiA+ID4gdG8gYWxsb3cgdGhlIHJlLSBleHBvcnQgc2VydmVyIHRvIHBh c3MgYWxvbmcgcmVjbGFpbXMNCj4gPiA+ID4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4gPiA+ID4g PiB0aGUgb3JpZ2luYWwgc2VydmVyIGFzIGl0IHJlY2VpdmVzIHRoZW0gZnJvbSBpdHMgb3duDQo+ ID4gPiA+ID4gPiA+ID4gPiBjbGllbnRzLsKgIEl0IG1pZ2h0IHJlcXVpcmUgc29tZSBwcm90b2Nv bCB0d2Vha3MsIEknbQ0KPiA+ID4gPiA+ID4gPiA+ID4gbm90DQo+ID4gPiA+ID4gPiA+ID4gPiBz dXJlLsKgIEknbGwgdHJ5IHRvIGdldCBteSB0aG91Z2h0cyBpbiBvcmRlciBhbmQNCj4gPiA+ID4g PiA+ID4gPiA+IHByb3Bvc2UNCj4gPiA+ID4gPiA+ID4gPiA+IHNvbWV0aGluZy4NCj4gPiA+ID4g PiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+IEl0J3MgbW9yZSBj b21wbGljYXRlZCB0aGFuIHRoYXQuIElmIHRoZSByZS1leHBvcnRpbmcNCj4gPiA+ID4gPiA+ID4g PiBzZXJ2ZXINCj4gPiA+ID4gPiA+ID4gPiByZWJvb3RzLCBidXQgdGhlIG9yaWdpbmFsIHNlcnZl ciBkb2VzIG5vdCwgdGhlbiB1bmxlc3MNCj4gPiA+ID4gPiA+ID4gPiB0aGF0DQo+ID4gPiA+ID4g PiA+ID4gcmUtIGV4cG9ydGluZyBzZXJ2ZXIgcGVyc2lzdGVkIGl0cyBsZWFzZSBhbmQgYSBmdWxs IHNldA0KPiA+ID4gPiA+ID4gPiA+IG9mDQo+ID4gPiA+ID4gPiA+ID4gc3RhdGVpZHMgc29tZXdo ZXJlLCBpdCB3aWxsIG5vdCBiZSBhYmxlIHRvIGF0b21pY2FsbHkNCj4gPiA+ID4gPiA+ID4gPiBy ZWNsYWltIGRlbGVnYXRpb24gYW5kIGxvY2sgc3RhdGUgb24gdGhlIHNlcnZlciBvbg0KPiA+ID4g PiA+ID4gPiA+IGJlaGFsZiBvZg0KPiA+ID4gPiA+ID4gPiA+IGl0cyBjbGllbnRzLg0KPiA+ID4g PiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gQnkgc2VuZGluZyByZWNsYWltcyB0byB0aGUgb3JpZ2lu YWwgc2VydmVyLCBJIG1lYW4NCj4gPiA+ID4gPiA+ID4gbGl0ZXJhbGx5DQo+ID4gPiA+ID4gPiA+ IHNlbmRpbmcgbmV3IG9wZW4gYW5kIGxvY2sgcmVxdWVzdHMgd2l0aCB0aGUgUkVDTEFJTSBiaXQN Cj4gPiA+ID4gPiA+ID4gc2V0LA0KPiA+ID4gPiA+ID4gPiB3aGljaCB3b3VsZCBnZXQgYnJhbmQg bmV3IHN0YXRlaWRzLg0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gU28sIHRoZSBvcmln aW5hbCBzZXJ2ZXIgd291bGQgaW52YWxpZGF0ZSB0aGUgZXhpc3RpbmcNCj4gPiA+ID4gPiA+ID4g Y2xpZW50J3MNCj4gPiA+ID4gPiA+ID4gcHJldmlvdXMgY2xpZW50aWQgYW5kIHN0YXRlaWRzLS1q dXN0IGFzIGl0IG5vcm1hbGx5IHdvdWxkDQo+ID4gPiA+ID4gPiA+IG9uDQo+ID4gPiA+ID4gPiA+ IHJlYm9vdC0tYnV0IGl0IHdvdWxkIG9wdGlvbmFsbHkgcmVtZW1iZXIgdGhlIHVuZGVybHlpbmcN Cj4gPiA+ID4gPiA+ID4gbG9ja3MNCj4gPiA+ID4gPiA+ID4gaGVsZCBieSB0aGUgY2xpZW50IGFu ZCBhbGxvdyBjb21wYXRpYmxlIGxvY2sgcmVjbGFpbXMuDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4g PiA+ID4gPiBSb3VnaCBhdHRlbXB0Og0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gPiA+IGh0dHBzOi8vd2lraS5saW51eC1uZnMub3JnL3dpa2kvaW5kZXgucGhwL1Jl Ym9vdF9yZWNvdmVyeV9mb3JfDQo+ID4gPiA+ID4gPiA+IHJlLWV4cG9yDQo+ID4gPiA+ID4gPiA+ IHRfc2VydmVycw0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gVGhpbmsgaXQgd291bGQg Zmx5Pw0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBTbyB0aGlzIHdvdWxkIGJlIGEgdmFyaWFu dCBvZiBjb3VydGVzeSBsb2NrcyB0aGF0IGNhbiBiZQ0KPiA+ID4gPiA+ID4gcmVjbGFpbWVkIGJ5 IHRoZSBjbGllbnQgdXNpbmcgdGhlIHJlYm9vdCByZWNsYWltIHZhcmlhbnQgb2YNCj4gPiA+ID4g PiA+IE9QRU4vTE9DSyBvdXRzaWRlIHRoZSBncmFjZSBwZXJpb2Q/IFRoZSBwdXJwb3NlIGJlaW5n IHRvDQo+ID4gPiA+ID4gPiBhbGxvdw0KPiA+ID4gPiA+ID4gcmVjbGFpbSB3aXRob3V0IGZvcmNp bmcgdGhlIGNsaWVudCB0byBwZXJzaXN0IHRoZSBvcmlnaW5hbA0KPiA+ID4gPiA+ID4gc3RhdGVp ZD8NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gSG1tLi4uIFRoYXQncyBkb2FibGUsIGJ1dCBo b3cgYWJvdXQgdGhlIGZvbGxvd2luZw0KPiA+ID4gPiA+ID4gYWx0ZXJuYXRpdmU6DQo+ID4gPiA+ ID4gPiBBZGQNCj4gPiA+ID4gPiA+IGEgZnVuY3Rpb24NCj4gPiA+ID4gPiA+IHRoYXQgYWxsb3dz IHRoZSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgZnVsbCBsaXN0IG9mIHN0YXRlaWRzDQo+ID4gPiA+ ID4gPiB0aGF0DQo+ID4gPiA+ID4gPiB0aGUgc2VydmVyIGhvbGRzIG9uIGl0cyBiZWhhbGY/DQo+ ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IEkndmUgYmVlbiB3YW50aW5nIHN1Y2ggYSBmdW5jdGlv biBmb3IgcXVpdGUgYSB3aGlsZSBhbnl3YXkNCj4gPiA+ID4gPiA+IGluDQo+ID4gPiA+ID4gPiBv cmRlciB0byBhbGxvdyB0aGUgY2xpZW50IHRvIGRldGVjdCBzdGF0ZSBsZWFrcyAoZWl0aGVyIGR1 ZQ0KPiA+ID4gPiA+ID4gdG8NCj4gPiA+ID4gPiA+IHNvZnQgdGltZW91dHMsIG9yIGR1ZSB0byBy ZW9yZGVyZWQgY2xvc2Uvb3BlbiBvcGVyYXRpb25zKS4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBP aCwgdGhhdCBzb3VuZHMgaW50ZXJlc3RpbmcuIFNvIGJhc2ljYWxseSB0aGUgcmUtZXhwb3J0DQo+ ID4gPiA+ID4gc2VydmVyDQo+ID4gPiA+ID4gd291bGQgcmUtcG9wdWxhdGUgaXQncyBzdGF0ZSBm cm9tIHRoZSBvcmlnaW5hbCBzZXJ2ZXIgcmF0aGVyDQo+ID4gPiA+ID4gdGhhbg0KPiA+ID4gPiA+ IHJlbHlpbmcgb24gaXQncyBjbGllbnRzIGRvaW5nIHJlY2xhaW1zPyBIbW0sIGJ1dCBob3cgZG9l cyB0aGUNCj4gPiA+ID4gPiByZS1leHBvcnQgc2VydmVyIHJlYnVpbGQgaXRzIHN0YXRlaWRzPyBJ IGd1ZXNzIGl0IGNvdWxkIG1ha2UNCj4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiBjbGllbnRzIHJl cG9wdWxhdGUgdGhlbSB3aXRoIHRoZSBzYW1lICJnaXZlIG1lIGEgZHVtcCBvZiBhbGwNCj4gPiA+ ID4gPiBteQ0KPiA+ID4gPiA+IHN0YXRlIiwgdXNpbmcgdGhlIHN0YXRlIGRldGFpbHMgdG8gbWF0 Y2ggdXAgd2l0aCB0aGUgb2xkDQo+ID4gPiA+ID4gc3RhdGUgYW5kDQo+ID4gPiA+ID4gcmVwbGFj aW5nIHN0YXRlaWRzLiBPciBkaWQgeW91IGhhdmUgc29tZXRoaW5nIGRpZmZlcmVudCBpbg0KPiA+ ID4gPiA+IG1pbmQ/DQo+ID4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiBJIHdhcyB0aGlua2lu ZyB0aGF0IHRoZSByZS1leHBvcnQgc2VydmVyIGNvdWxkIGp1c3QgdXNlIHRoYXQNCj4gPiA+ID4g bGlzdCBvZg0KPiA+ID4gPiBzdGF0ZWlkcyB0byBmaWd1cmUgb3V0IHdoaWNoIGxvY2tzIGNhbiBi ZSByZWNsYWltZWQgYXRvbWljYWxseSwNCj4gPiA+ID4gYW5kDQo+ID4gPiA+IHdoaWNoIG9uZXMg aGF2ZSBiZWVuIGlycmVkZWVtYWJseSBsb3N0LiBUaGUgYXNzdW1wdGlvbiBpcyB0aGF0DQo+ID4g PiA+IGlmDQo+ID4gPiA+IHlvdSBoYXZlIGEgbG9jayBzdGF0ZWlkIG9yIGEgZGVsZWdhdGlvbiwg dGhlbiB0aGF0IG1lYW5zIHRoZQ0KPiA+ID4gPiBjbGllbnRzDQo+ID4gPiA+IGNhbiByZWNsYWlt IGFsbCB0aGUgbG9ja3MgdGhhdCB3ZXJlIHJlcHJlc2VudGVkIGJ5IHRoYXQNCj4gPiA+ID4gc3Rh dGVpZC4NCj4gPiA+IA0KPiA+ID4gSSdtIGNvbmZ1c2VkIGFib3V0IGhvdyB0aGUgcmUtZXhwb3J0 IHNlcnZlciB1c2VzIHRoYXQgbGlzdC7CoCBBcmUNCj4gPiA+IHlvdQ0KPiA+ID4gYXNzdW1pbmcg aXQgcGVyc2lzdGVkIGl0cyBvd24gbGlzdCBhY3Jvc3MgaXRzIG93biBjcmFzaC9yZWJvb3Q/wqAN Cj4gPiA+IEkNCj4gPiA+IGd1ZXNzIHRoYXQncyB3aGF0IEkgd2FzIHRyeWluZyB0byBhdm9pZCBo YXZpbmcgdG8gZG8uDQo+ID4gPiANCj4gPiBOby4gVGhlIHNlcnZlciBqdXN0IHVzZXMgdGhlIHN0 YXRlaWRzIGFzIHBhcnQgb2YgYSBjaGVjayBmb3IgJ2RvIEkNCj4gPiBob2xkIHN0YXRlIGZvcg0K PiA+IHRoaXMgZmlsZSBvbiB0aGlzIHNlcnZlcj8nLiBJZiB0aGUgYW5zd2VyIGlzICd5ZXMnIGFu ZCB0aGUgbG9jaw0KPiA+IG93bmVycyBhcmUgc2FuZSwgdGhlbg0KPiA+IHdlIHNob3VsZCBiZSBh YmxlIHRvIGFzc3VtZSB0aGUgZnVsbCBzZXQgb2YgbG9ja3MgdGhhdCBsb2NrIG93bmVyDQo+ID4g aGVsZCBvbiB0aGF0DQo+ID4gZmlsZSBhcmUgc3RpbGwgdmFsaWQuDQo+ID4gDQo+ID4gQlRXOiBp ZiB0aGUgbG9jayBvd25lciBpcyBhbHNvIHJldHVybmVkIGJ5IHRoZSBzZXJ2ZXIsIHRoZW4gc2lu Y2UNCj4gPiB0aGUgbG9jayBvd25lcg0KPiA+IGlzIGFuIG9wYXF1ZSB2YWx1ZSwgaXQgY291bGQs IGZvciBpbnN0YW5jZSwgYmUgdXNlZCBieSB0aGUgY2xpZW50DQo+ID4gdG8gY2FjaGUgaW5mbyBv bg0KPiA+IHRoZSBzZXJ2ZXIgYWJvdXQgd2hpY2ggdWlkL2dpZCBvd25zIHRoZXNlIGxvY2tzLg0K PiANCj4gTGV0IG1lIHNlZSBpZiBJJ20gdW5kZXJzdGFuZGluZyB5b3VyIGlkZWEgcmlnaHQuLi4N Cj4gDQo+IFJlLWV4cG9ydCBzZXJ2ZXIgcmVib290cyB3aXRoaW4gdGhlIGV4dGVuZGVkIGxlYXNl IHBlcmlvZCBpdCdzIGJlZW4NCj4gZ2l2ZW4gYnkgdGhlIG9yaWdpbmFsIHNlcnZlci4gSSdtIGFz c3VtaW5nIGl0IHVzZXMgdGhlIHNhbWUgY2xpZW50aWQ/DQoNClllcy4gSXQgd291bGQgaGF2ZSB0 byB1c2UgdGhlIHNhbWUgY2xpZW50aWQuDQoNCj4gQnV0IHdvdWxkIHByb2JhYmx5IG9wZW4gbmV3 IHNlc3Npb25zLiBJdCByZXF1ZXN0cyB0aGUgbGlzdCBvZg0KPiBzdGF0ZWlkcy4gSG1tLCBob3cg dG8gbWFrZSB0aGUgb3duZXIgaW5mb3JtYXRpb24gdXNlZnVsLCBuZnMtZ2FuZXNoYQ0KPiBkb2Vz bid0IHBhc3Mgb24gdGhlIGFjdHVhbCBjbGllbnQncyBvd25lciBidXQgcmF0aGVyIGp1c3QgcGFz c2VzIHRoZQ0KPiBhZGRyZXNzIG9mIGl0cyByZWNvcmQgZm9yIHRoYXQgY2xpZW50IG93bmVyLiBN YXliZSBpdCB3aWxsIGhhdmUgdG8gZG8NCj4gc29tZXRoaW5nIGEgYml0IGRpZmZlcmVudCBmb3Ig dGhpcyBkZWdyZWUgb2YgcmUtZXhwb3J0IHN1cHBvcnQuLi4NCj4gDQo+IE5vdyB0aGUgcmUtZXhw b3J0IHNlcnZlciBrbm93cyB3aGljaCBvcmlnaW5hbCBjbGllbnQgbG9jayBvd25lcnMgYXJlDQo+ IGFsbG93ZWQgdG8gcmVjbGFpbSBzdGF0ZS4gU28gaXQganVzdCBhY3F1aXJlcyBsb2NrcyB1c2lu ZyB0aGUNCj4gb3JpZ2luYWwgc3RhdGVpZCBhcyB0aGUgY2xpZW50IHJlY2xhaW1zICh3aGF0IGhh cHBlbnMgaWYgdGhlIGNsaWVudA0KPiBkb2Vzbid0IHJlY2xhaW0gYSBsb2NrPyBJIHN1cHBvc2Ug dGhlIHJlLWV4cG9ydCBzZXJ2ZXIgY291bGQgdW5sb2NrDQo+IGFsbCByZWdpb25zIG5vdCBleHBs aWNpdGx5IGxvY2tlZCBvbmNlIHJlY2xhaW0gaXMgY29tcGxldGUpLiBTaW5jZQ0KPiB0aGUgcmUt ZXhwb3J0IHNlcnZlciBpcyBhY3F1aXJpbmcgbmV3IGxvY2tzIHVzaW5nIHRoZSBvcmlnaW5hbA0K PiBzdGF0ZWlkIGl0IHdpbGwganVzdCBvdmVybGF5IHRoZSBvcmlnaW5hbCBsb2NrIHdpdGggdGhl IG5ldyBsb2NrIGFuZA0KPiB3cml0ZSBsb2NrcyBkb24ndCBjb25mbGljdCBzaW5jZSB0aGV5IGFy ZSBiZWluZyBhY3F1aXJlZCBieSB0aGUgc2FtZQ0KPiBsb2NrIG93bmVyLiBBY3R1YWxseSB0aGUg b3JpZ2luYWwgc2VydmVyIGNvdWxkIGV2ZW4gYmFsayBhdCBhDQo+ICJyZWNsYWltIiBpbiB0aGlz IHdheSB0aGF0IHdhc24ndCBvcmlnaW5hbGx5IGhlbGQuLi4gQW5kIHRoZSBvcmlnaW5hbA0KPiBz ZXJ2ZXIgY291bGQgInJlZnJlc2giIHRoZSBsb2NrcywgYW5kIGRpc2NhcmQgYW55IHRoYXQgYXJl bid0DQo+IHJlZnJlc2hlZCBhdCB0aGUgZW5kIG9mIHJlY2xhaW0uIFRoYXQgcGFydCBhc3N1bWVz IHRoZSBvcmlnaW5hbA0KPiBzZXJ2ZXIgaXMgYXBwcmlzZWQgdGhhdCB3aGF0IGlzIGFjdHVhbGx5 IGhhcHBlbmluZyBpcyBhIHJlY2xhaW0uDQo+IA0KPiBUaGUgcmUtZXhwb3J0IHNlcnZlciBjYW4g ZGVzdHJveSBhbnkgc3RhdGVpZHMgdGhhdCBpdCBkb2Vzbid0IHJlY2VpdmUNCj4gcmVjbGFpbXMg Zm9yLg0KDQpSaWdodC4gVGhhdCdzIGluIGVzc2VuY2Ugd2hhdCBJJ20gc3VnZ2VzdGluZy4gVGhl cmUgYXJlIGNvcm5lciBjYXNlcyB0bw0KYmUgY29uc2lkZXJlZDogZS5nLiAid2hhdCBoYXBwZW5z IGlmIHRoZSByZS1leHBvcnQgc2VydmVyIGNyYXNoZXMgYWZ0ZXINCnVubG9ja2luZyBvbiB0aGUg c2VydmVyLCBidXQgYmVmb3JlIHBhc3NpbmcgdGhlIExPQ0tVIHJlcGx5IG9uIHRoZSB0aGUNCmNs aWVudCIsIGhvd2V2ZXIgSSB0aGluayBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gZmlndXJlIG91 dCBzdHJhdGVnaWVzDQpmb3IgdGhvc2UgY2FzZXMuDQoNCj4gDQo+IEhtbSwgSSB0aGluayBpZiB0 aGUgcmUtZXhwb3J0IHNlcnZlciBpcyBpbXBsZW1lbnRlZCBhcyBhbiBIQSBjbHVzdGVyLA0KPiBp dCBzaG91bGQgZXN0YWJsaXNoIGEgY2xpZW50aWQgb24gdGhlIG9yaWdpbmFsIHNlcnZlciBmb3Ig ZWFjaA0KPiB2aXJ0dWFsIElQIChhc3N1bWluZyB0aGF0J3MgdGhlIHVuaXQgb2YgSEEpwqAgdGhh dCBleGlzdHMuIFRoZW4gd2hlbg0KPiB2aXJ0dWFsIElQcyBhcmUgbW92ZWQsIHRoZSByZS1leHBv cnQgc2VydmVyIGp1c3QgZ29lcyB0aHJvdWdoIHRoZQ0KPiBhYm92ZSByZWNsYWltIHByb2Nlc3Mg Zm9yIHRoYXQgY2xpZW50aWQuDQo+IA0KDQpZZXMsIHdlIGNvdWxkIGRvIHNvbWV0aGluZyBsaWtl IHRoYXQuDQoNCi0tIA0KVHJvbmQgTXlrbGVidXN0DQpMaW51eCBORlMgY2xpZW50IG1haW50YWlu ZXIsIEhhbW1lcnNwYWNlDQp0cm9uZC5teWtsZWJ1c3RAaGFtbWVyc3BhY2UuY29tDQoNCg0K