Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp4478952pxy; Tue, 27 Apr 2021 06:09:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzNqkhMLsDBlp8c96GZcElC8mEp1/PPCZQaD21xN3auLuh0LA10xzBnYcQu/ALULpgGYXLM X-Received: by 2002:a17:907:766d:: with SMTP id kk13mr17176339ejc.417.1619528951081; Tue, 27 Apr 2021 06:09:11 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1619528951; cv=pass; d=google.com; s=arc-20160816; b=Xfabk9sdzwW7krMfeTNfegDFUtOwOkvzg/rgDzlwXNU1DZHfGKoiH62l04vknc1eJS zgJ6yDhzsAuGCsUCne55I6gkCgCuzztOnWCus3RxqePRrZG1zkjJXPvtiUZ5J00ln9/D 8nPFRNXUrLZVSP6zn89m1HMVRrdIoHWVSnIxtF0f2uaAplSR8KSljszafKfsrEnMSWdr BariS/JvJFeWiFpsSZIYdLO/6102KF2+tukVweF5GpXYc6HnXi/adsJcnB+eYhcmezBJ L+8upNVFRcROGos+kiTnIcnJXILcN9Dc6boPS+box9cPb/kArwCQClgwOHzWdBoqyQGb 4igA== 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=OJA/PtlLs44+Y/LgnFkI5Us9NhMcVC08CqHmM9NThmk=; b=efTBNMe7GLLvx4oF1HSU8IWdUNJyjwPx7Cw/uyIiJYqrzAMhiTfByIDWdr8PZxBUmV BdXR0X/xd9Qbm6a+q4N9wGLWfJChu0p6FFZrOGf4VNv79Q01XPn8lmxJCHCNzFFnI7M8 pqq/XQpRtn4Xqrgl/nQPoBDISTg8tcKDYVNXSu9GBzDEKPAVzANQWtMtWC6qN+qI+EwW khdH7+r9Gam2EbJbcRZe0vdJ0DqudJN2S/W4ajgTUD/Mwp4RxqTQiU1YiBf2CMCl8ar/ xNoY1gkcS8eajcq9btK9LlwmwOTjDxabyMhI2gtajb8G5u6V5OvztSG0CBwy874w3kIc v1lQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=BLqla66u; 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 hp30si16338411ejc.344.2021.04.27.06.08.38; Tue, 27 Apr 2021 06:09:11 -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=BLqla66u; 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 S236175AbhD0NJA (ORCPT + 99 others); Tue, 27 Apr 2021 09:09:00 -0400 Received: from mail-bn8nam11on2125.outbound.protection.outlook.com ([40.107.236.125]:7315 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235446AbhD0NJA (ORCPT ); Tue, 27 Apr 2021 09:09:00 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kpw6P3I3lmN0oFHPpdJBEP1jiX5rEpy76KWhulk7CTEpHnbwRERtQkMBXvn0c3dGAdBW8sLV/UybUepl+bxIMeQVL4ioYyQ5jGmlZWM2Ev74lGYzz0AVaz0AyI2tJcuQAkSgS7B2b2JhY4YLjAsVzvpC5FVrYfSaYIl70xox5+w0YHVxUF2eDysIcWW3UG8h3htKDAKsHnjd07n9ETtuiTZlNXgbpQ7t8tLkTJeAFGarPqGfHvHJojvYLaj5yx2M4P7TnWoKWox2fgc9hCzm9AUxtRybCTW7l/G8Qgzwy7g0cLOjsyxx9hzoFLUfUHzJjvUH9Zs6eUyVzfB9Nb/zBw== 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=OJA/PtlLs44+Y/LgnFkI5Us9NhMcVC08CqHmM9NThmk=; b=BprJzEwJFIB6g1SwMg6TKzsFXcHxtyrLDRorPxtvs+w3/YfFNAMOoqq/KluKY5BqwHk4NO0chf84WsBL+9T5rnXfA8lcRscnYqspFVvr0ryiKKlX2LiFzJMN7Z/SruY60xpchZ92vjrA59ytlpIyXte2+dkUFnDutKGlmw9Vndj9yLmg77YdSegjiPpSGaG20kB2qc44E8++eC4JZ/AaNe54+f0hIh4rEXgHjMmxpwl1nWIHoeKGyIyYPXz9QFEbDe7G6IrAdM17O+DvJowUfQKDZ9XRjaEBZIa48pPlM5p3gzhyqmFLgzHJNrCyC/Tludrfycrh0TotQ0+FdrTGYQ== 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=OJA/PtlLs44+Y/LgnFkI5Us9NhMcVC08CqHmM9NThmk=; b=BLqla66uCO55awZHqrXR/2tgBuJo0BoVP4TSIuuGr/Odlben/RmbwN/XbtXXch7AEolA7zwWdz3TEv51+xa3O5LVoLveHPJioP0bT/SH/rZUMEkIMxJFHQ3kzkAFJRNK77cV0+VtmFz7HuWrHnnTbw9vhILinJLKIruxEPgtz8k= Received: from DS7PR13MB4733.namprd13.prod.outlook.com (2603:10b6:5:3b1::24) by DM6PR13MB3868.namprd13.prod.outlook.com (2603:10b6:5:229::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.17; Tue, 27 Apr 2021 13:08:14 +0000 Received: from DS7PR13MB4733.namprd13.prod.outlook.com ([fe80::f414:a9a:6686:f7e0]) by DS7PR13MB4733.namprd13.prod.outlook.com ([fe80::f414:a9a:6686:f7e0%4]) with mapi id 15.20.4087.026; Tue, 27 Apr 2021 13:08:14 +0000 From: Trond Myklebust To: "anna.schumaker@netapp.com" , "olga.kornievskaia@gmail.com" CC: "linux-nfs@vger.kernel.org" Subject: Re: [PATCH v3 10/13] sunrpc: add add sysfs directory per xprt under each xprt_switch Thread-Topic: [PATCH v3 10/13] sunrpc: add add sysfs directory per xprt under each xprt_switch Thread-Index: AQHXOsBlSpNvgf0/sEiSa3VGnQ0anarIVz8A Date: Tue, 27 Apr 2021 13:08:14 +0000 Message-ID: <9e6c75972c8d8ab03a8bb11143400e0a72ef04ae.camel@hammerspace.com> References: <20210426171947.99233-1-olga.kornievskaia@gmail.com> <20210426171947.99233-11-olga.kornievskaia@gmail.com> In-Reply-To: <20210426171947.99233-11-olga.kornievskaia@gmail.com> Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: netapp.com; dkim=none (message not signed) header.d=none;netapp.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: 1686c379-5964-4fcf-5e8e-08d9097d8456 x-ms-traffictypediagnostic: DM6PR13MB3868: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OSHCaq4xziJsaMECt5GZK8Oe2/pcPdXapL0WdTgYxqX4hVR1wK3fGAxrwjYYm/F8j45cG9gFGHAVZPVZ9+BhmNFJBALI5kRkkSoPfY7dv4CqngbazAR3fpA1v5WkHzwsxig6z4vH97oK4BPC4xQ7UF+AEkuhcVFK+L3H0kPzAFSQo4nGbskQlKSbCipxoBCrChOyCDs8RF1sFIUFcCq1o3iOyDPHbYMN5Sf7WJ8Nqi5rlmB7VywN1alrEg3A/PTEoCmbyWdPA+ulXSEABEyDwkn2BhHCJgm7aTERgLqQm4AIa1bzv9jWg9OAnc55Uc38h2pVUcda/9TVPKWexYG+DrufaJJPx2fiSC7zX06cTc3SzusRddBO+3jKcPquxHlGI0ybOGlrX8jqSXgHRspZsInjTUfKimpT2/mcdCRdKovtLRNw+sZn3kdrn2hblCoSQ9k2nWHiykwB3rx0hd7NnWJQ3sQ9OJ7yo5e2cqPe0IK+cxwET/hDs8QIULH79/YFN8i07+7gZPvD2OE3OyrQITPzkccyemi1jgxRmNfMFQU+IbSRv3mchMNfJk0r8u1jC7iaJQ4iCwKOrPvKD8hk7Q1cV2kgv6jg33qiBqx8WgU= 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:(39840400004)(396003)(366004)(376002)(346002)(136003)(186003)(6512007)(26005)(110136005)(5660300002)(71200400001)(2616005)(4326008)(478600001)(316002)(2906002)(8676002)(36756003)(122000001)(91956017)(76116006)(66476007)(66446008)(38100700002)(66556008)(6506007)(64756008)(66946007)(8936002)(83380400001)(6486002)(86362001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?U2t0ckQxRDFDdG5Oa1creURqWnd5cHZ4VnN5Nkh4TkZxejBrR1RrSGRkeDZ5?= =?utf-8?B?Z2ljSXlCMUtldEFzaHBGTjhZc1M4WW53dHJ0a0syZEVISVYzNW8xMy9ZZlVN?= =?utf-8?B?LzJ5SDA1VlhaWlNtblVNSUkvMG1uZzhYRTJQekpCc09oUW5QaGRCdGVtWTlv?= =?utf-8?B?R1BqdFhIUER3Z2hXM3VYVlMxdXBHRGhuZnMyOUNEcnEvWXU4cUNaZjVWUEZo?= =?utf-8?B?a0hoeGlseHdJVWNWUzZUMGRjMC84citZNDlkSlVtd3N5djdMSGIwazNkUGNN?= =?utf-8?B?SkhMeUtWc1VveHdxV240NXBHVzM1dnlWSmhMTzhPYk9OSHpjWjZyNlROSXJF?= =?utf-8?B?Y3JSajhDa3NkUkI4b2RDLzBBcDBjYmZ0WC85eXA4Y2t4ZU92SHo4T2phZ2F1?= =?utf-8?B?NHJFM2NEN2VNWlRuTFJXa29BOWc1WW9XVDhDbGJqM0k1b1Z3bi9sYmQzemlM?= =?utf-8?B?RlczWXgra21ud0R5WDQ4bzFRUVd1UnNtN1lYWis5bERsU1BZWW5nc256bEJx?= =?utf-8?B?NUg0S1hzNDdJalVPcThhOUlPVTVSMUlOR0dHQmpBUGFBOERjWE12T0VpR0ow?= =?utf-8?B?TTAvZ0pjaTJRd0krOUo2V0RXTWpMdWJhUEk5V1JSSDVCVzZHSWNPYlNKa3pM?= =?utf-8?B?bDRrTnFyVkhOWTNTQ24yUU1wbTNBL2J4VDFZMmJRWDhtUXp0T2lIY0taVTVa?= =?utf-8?B?L25iVmRRZEFjNDQxcW00eDZ1clh2ai9Zcy9UVWNzZmY2aHdqay90ckFDcGRD?= =?utf-8?B?R3VnUUpkU3ZITFIrdFJod0pwdTNLSmR1TjJ2RmpvTzBLekZNMkdnN29WaGZo?= =?utf-8?B?cCtWNEtqa2hlOU1aMXRlTFAyT2VjVUlWRG8xRG1iYTF0Z0FrTGVZUjBpTnRB?= =?utf-8?B?dW8wY2NvTXNzZndMTkt0RDdzelhJK2pzcGltaHY1Z0JzMlBaRGhWQm5sUWVM?= =?utf-8?B?K0FaN1kyOVJleEx5Z3Jab25QOGR1d0xWdWJlTlNxRUlVSmFIN0JTYjlHQU5i?= =?utf-8?B?ZCtJa3kvU2kxTWh1bVpjTFFQNU5KbXRYbnlqQXg3RldjV3FQMzI1OGZ5ZmN4?= =?utf-8?B?K01ZallMQU5VM09Ya2VoUk1mQitzYzNUZlR3K3hvV05sUVIrVG1IWE00SVZN?= =?utf-8?B?VWZPOHhCa01SYzRZVDBWQk5SRjlxYyt3eWpRMFNrUThhUVRIeVdOVmpGODB1?= =?utf-8?B?UjIzd0wzcnJNRVgzejlQTnhEVlhpSW1BTnAwVDZNWTlGV0ZJUGtwOGREcEFt?= =?utf-8?B?SFlCT2Z1ZnNoSEdBdTY0bEJWdzFGeGlLd0dVQ1V1Tm14dVdWYW1JRXp6OVBy?= =?utf-8?B?dHlBaE0waTJXenBpNzJtY2VuZWdTbkRuY3k0bU5MRDlXQ0RPWlRpNG9kaWpo?= =?utf-8?B?ZVBOaGd6RHhFODJMRVI5b1d6c24rM3RMU3JXVzVCcVNTWEpkRjRkQU9DM1BK?= =?utf-8?B?T2o0cU81OEtOdkdkb3VhWHUyeXJueDNjTUE0b2RnckxpVHVPQUYwYURjVHFr?= =?utf-8?B?VlVjcXM1dWNaS0plbzNCeWNvNzJPWGRwQWRGUkNTd0pSb0tUM0Z4Y0xVcG5Z?= =?utf-8?B?ZnExKzRqM3NNaGJFd2xzeTVxMGlQVDByZkI5dUZwVTJ3TkVUZ2hOY0wwVjBF?= =?utf-8?B?WEt5KzIxRllmbFVGYnJUYUxhdVd3R1Z5YVNVYWhOVDBvcjJFM3FlYUwvOXhQ?= =?utf-8?B?K3RXaUpPbVY0YWFUM1I0aW0wMm1Ba0dIVXc0Zi9tZGNHZGo5QzRsNkJObnNi?= =?utf-8?Q?kY3mILXENWLr3xAotjoBQ1hG/6TtR9vz9PyoJ+y?= 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: 1686c379-5964-4fcf-5e8e-08d9097d8456 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2021 13:08:14.3957 (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: PEjEMp3y8bVJFoKgt+rrYPcXLgJwcW1YaXaLqeCIXhsZdva6rnhJnvhNFmFWttqZfgp+EuCoYG2HzFhVaI1A/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR13MB3868 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gTW9uLCAyMDIxLTA0LTI2IGF0IDEzOjE5IC0wNDAwLCBPbGdhIEtvcm5pZXZza2FpYSB3cm90 ZToNCj4gRnJvbTogT2xnYSBLb3JuaWV2c2thaWEgPGtvbGdhQG5ldGFwcC5jb20+DQo+IA0KPiBB ZGQgaW5kaXZpZHVhbCB0cmFuc3BvcnQgZGlyZWN0b3JpZXMgdW5kZXIgZWFjaCB0cmFuc3BvcnQg c3dpdGNoDQo+IGdyb3VwLiBGb3IgaW5zdGFuY2UsIGZvciBlYWNoIG5jb25uZWN0PVggY29ubmVj dGlvbnMgdGhlcmUgd2lsbCBiZQ0KPiBhIHRyYW5zcG9ydCBkaXJlY3RvcnkuIE5hbWluZyBjb252 ZW50aW9ucyBhbHNvIGlkZW50aWZpZXMgdHJhbnNwb3J0DQo+IHR5cGUgLS0geHBydC08aWQ+LTx0 eXBlPiB3aGVyZSB0eXBlIGlzIHVkcCwgdGNwLCByZG1hLCBsb2NhbCwgYmMuDQo+IA0KPiBTaWdu ZWQtb2ZmLWJ5OiBPbGdhIEtvcm5pZXZza2FpYSA8a29sZ2FAbmV0YXBwLmNvbT4NCj4gLS0tDQo+ IMKgaW5jbHVkZS9saW51eC9zdW5ycGMveHBydC5oIHzCoCAxICsNCj4gwqBuZXQvc3VucnBjL3N5 c2ZzLmPCoMKgwqDCoMKgwqDCoMKgwqAgfCA4Ng0KPiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrDQo+IMKgbmV0L3N1bnJwYy9zeXNmcy5owqDCoMKgwqDCoMKgwqDCoMKgIHzC oCA5ICsrKysNCj4gwqBuZXQvc3VucnBjL3hwcnRtdWx0aXBhdGguY8KgIHwgMTAgKysrKysNCj4g wqA0IGZpbGVzIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9saW51eC9zdW5ycGMveHBydC5oDQo+IGIvaW5jbHVkZS9saW51eC9zdW5ycGMveHBy dC5oDQo+IGluZGV4IGEyZWRjYzQyZTZjNC4uMWU0OTA2NzU5YTZhIDEwMDY0NA0KPiAtLS0gYS9p bmNsdWRlL2xpbnV4L3N1bnJwYy94cHJ0LmgNCj4gKysrIGIvaW5jbHVkZS9saW51eC9zdW5ycGMv eHBydC5oDQo+IEBAIC0yOTEsNiArMjkxLDcgQEAgc3RydWN0IHJwY194cHJ0IHsNCj4gwqAjZW5k aWYNCj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCByY3VfaGVhZMKgwqDCoMKgwqDCoMKgwqDCoHJj dTsNCj4gwqDCoMKgwqDCoMKgwqDCoGNvbnN0IHN0cnVjdCB4cHJ0X2NsYXNzwqAqeHBydF9jbGFz czsNCj4gK8KgwqDCoMKgwqDCoMKgdm9pZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAqeHBydF9zeXNmczsNCg0KQWdhaW4sIHRoaXMgc2hvdWxkIGJlIGEgdHlwZWQgcG9p bnRlci4NCg0KPiDCoH07DQo+IMKgDQo+IMKgI2lmIGRlZmluZWQoQ09ORklHX1NVTlJQQ19CQUNL Q0hBTk5FTCkNCj4gZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvc3lzZnMuYyBiL25ldC9zdW5ycGMv c3lzZnMuYw0KPiBpbmRleCA4NzFmN2M2OTZhOTMuLjY4MmRlZjQyOTNmMiAxMDA2NDQNCj4gLS0t IGEvbmV0L3N1bnJwYy9zeXNmcy5jDQo+ICsrKyBiL25ldC9zdW5ycGMvc3lzZnMuYw0KPiBAQCAt ODEsNiArODEsMTQgQEAgc3RhdGljIHZvaWQgcnBjX3N5c2ZzX3hwcnRfc3dpdGNoX3JlbGVhc2Uo c3RydWN0DQo+IGtvYmplY3QgKmtvYmopDQo+IMKgwqDCoMKgwqDCoMKgwqBrZnJlZSh4cHJ0X3N3 aXRjaCk7DQo+IMKgfQ0KPiDCoA0KPiArc3RhdGljIHZvaWQgcnBjX3N5c2ZzX3hwcnRfc3dpdGNo X3hwcnRfcmVsZWFzZShzdHJ1Y3Qga29iamVjdCAqa29iaikNCj4gK3sNCj4gK8KgwqDCoMKgwqDC oMKgc3RydWN0IHJwY19zeXNmc194cHJ0X3N3aXRjaF94cHJ0ICp4cHJ0Ow0KPiArDQo+ICvCoMKg wqDCoMKgwqDCoHhwcnQgPSBjb250YWluZXJfb2Yoa29iaiwgc3RydWN0IHJwY19zeXNmc194cHJ0 X3N3aXRjaF94cHJ0LA0KPiBrb2JqZWN0KTsNCj4gK8KgwqDCoMKgwqDCoMKga2ZyZWUoeHBydCk7 DQo+ICt9DQo+ICsNCj4gwqBzdGF0aWMgY29uc3Qgdm9pZCAqcnBjX3N5c2ZzX2NsaWVudF9uYW1l c3BhY2Uoc3RydWN0IGtvYmplY3QgKmtvYmopDQo+IMKgew0KPiDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuIGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgcnBjX3N5c2ZzX2NsaWVudCwga29iamVjdCkt DQo+ID5uZXQ7DQo+IEBAIC05MSw2ICs5OSwxMiBAQCBzdGF0aWMgY29uc3Qgdm9pZA0KPiAqcnBj X3N5c2ZzX3hwcnRfc3dpdGNoX25hbWVzcGFjZShzdHJ1Y3Qga29iamVjdCAqa29iaikNCj4gwqDC oMKgwqDCoMKgwqDCoHJldHVybiBjb250YWluZXJfb2Yoa29iaiwgc3RydWN0IHJwY19zeXNmc194 cHJ0X3N3aXRjaCwNCj4ga29iamVjdCktPm5ldDsNCj4gwqB9DQo+IMKgDQo+ICtzdGF0aWMgY29u c3Qgdm9pZCAqcnBjX3N5c2ZzX3hwcnRfc3dpdGNoX3hwcnRfbmFtZXNwYWNlKHN0cnVjdA0KPiBr b2JqZWN0ICprb2JqKQ0KPiArew0KPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gY29udGFpbmVyX29m KGtvYmosIHN0cnVjdCBycGNfc3lzZnNfeHBydF9zd2l0Y2hfeHBydCwNCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAga29iamVjdCktPm5ldDsN Cj4gK30NCj4gKw0KPiDCoHN0YXRpYyBzdHJ1Y3Qga29ial90eXBlIHJwY19zeXNmc19jbGllbnRf dHlwZSA9IHsNCj4gwqDCoMKgwqDCoMKgwqDCoC5yZWxlYXNlID0gcnBjX3N5c2ZzX2NsaWVudF9y ZWxlYXNlLA0KPiDCoMKgwqDCoMKgwqDCoMKgLnN5c2ZzX29wcyA9ICZrb2JqX3N5c2ZzX29wcywN Cj4gQEAgLTEwMyw2ICsxMTcsMTIgQEAgc3RhdGljIHN0cnVjdCBrb2JqX3R5cGUNCj4gcnBjX3N5 c2ZzX3hwcnRfc3dpdGNoX3R5cGUgPSB7DQo+IMKgwqDCoMKgwqDCoMKgwqAubmFtZXNwYWNlID0g cnBjX3N5c2ZzX3hwcnRfc3dpdGNoX25hbWVzcGFjZSwNCj4gwqB9Ow0KPiDCoA0KPiArc3RhdGlj IHN0cnVjdCBrb2JqX3R5cGUgcnBjX3N5c2ZzX3hwcnRfc3dpdGNoX3hwcnRfdHlwZSA9IHsNCj4g K8KgwqDCoMKgwqDCoMKgLnJlbGVhc2UgPSBycGNfc3lzZnNfeHBydF9zd2l0Y2hfeHBydF9yZWxl YXNlLA0KPiArwqDCoMKgwqDCoMKgwqAuc3lzZnNfb3BzID0gJmtvYmpfc3lzZnNfb3BzLA0KPiAr wqDCoMKgwqDCoMKgwqAubmFtZXNwYWNlID0gcnBjX3N5c2ZzX3hwcnRfc3dpdGNoX3hwcnRfbmFt ZXNwYWNlLA0KPiArfTsNCj4gKw0KPiDCoHZvaWQgcnBjX3N5c2ZzX2V4aXQodm9pZCkNCj4gwqB7 DQo+IMKgwqDCoMKgwqDCoMKgwqBrb2JqZWN0X3B1dChycGNfc3VucnBjX2NsaWVudF9rb2JqKTsN Cj4gQEAgLTE1MCw2ICsxNzAsNDAgQEAgcnBjX3N5c2ZzX3hwcnRfc3dpdGNoX2FsbG9jKHN0cnVj dCBrb2JqZWN0DQo+ICpwYXJlbnQsDQo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gTlVMTDsNCj4g wqB9DQo+IMKgDQo+ICtzdGF0aWMgc3RydWN0IHJwY19zeXNmc194cHJ0X3N3aXRjaF94cHJ0ICoN Cj4gK3JwY19zeXNmc194cHJ0X3N3aXRjaF94cHJ0X2FsbG9jKHN0cnVjdCBrb2JqZWN0ICpwYXJl bnQsDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQsDQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgbmV0 ICpuZXQsDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBnZnBfdCBnZnBfZmxhZ3MpDQo+ICt7DQo+ICvCoMKgwqDCoMKgwqDC oHN0cnVjdCBycGNfc3lzZnNfeHBydF9zd2l0Y2hfeHBydCAqcDsNCj4gKw0KPiArwqDCoMKgwqDC oMKgwqBwID0ga3phbGxvYyhzaXplb2YoKnApLCBnZnBfZmxhZ3MpOw0KPiArwqDCoMKgwqDCoMKg wqBpZiAocCkgew0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY2hhciB0eXBlWzZd Ow0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwLT5uZXQgPSBuZXQ7DQo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwLT5rb2JqZWN0LmtzZXQgPSBycGNfc3Vu cnBjX2tzZXQ7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoeHBydC0+eHBy dF9jbGFzcy0+aWRlbnQgPT0gWFBSVF9UUkFOU1BPUlRfUkRNQSkNCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzbnByaW50Zih0eXBlLCBzaXplb2YodHlw ZSksICJyZG1hIik7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBlbHNlIGlmICh4 cHJ0LT54cHJ0X2NsYXNzLT5pZGVudCA9PQ0KPiBYUFJUX1RSQU5TUE9SVF9UQ1ApDQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc25wcmludGYodHlwZSwg c2l6ZW9mKHR5cGUpLCAidGNwIik7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBl bHNlIGlmICh4cHJ0LT54cHJ0X2NsYXNzLT5pZGVudCA9PQ0KPiBYUFJUX1RSQU5TUE9SVF9VRFAp DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc25wcmlu dGYodHlwZSwgc2l6ZW9mKHR5cGUpLCAidWRwIik7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBlbHNlIGlmICh4cHJ0LT54cHJ0X2NsYXNzLT5pZGVudCA9PQ0KPiBYUFJUX1RSQU5T UE9SVF9MT0NBTCkNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBzbnByaW50Zih0eXBlLCBzaXplb2YodHlwZSksICJsb2NhbCIpOw0KPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgZWxzZSBpZiAoeHBydC0+eHBydF9jbGFzcy0+aWRlbnQgPT0N Cj4gWFBSVF9UUkFOU1BPUlRfQkNfVENQKQ0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHNucHJpbnRmKHR5cGUsIHNpemVvZih0eXBlKSwgImJjIik7DQo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoa29iamVjdF9pbml0X2FuZF9hZGQo JnAtPmtvYmplY3QsDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gJnJwY19zeXNmc194cHJ0 X3N3aXRjaF94cHJ0X3R5cGUsDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGFyZW50LCAieHBy dC0lZC0lcyIsIHhwcnQtDQo+ID5pZCwNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0eXBlKSA9 PSAwKQ0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJl dHVybiBwOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKga29iamVjdF9wdXQoJnAt PmtvYmplY3QpOw0KPiArwqDCoMKgwqDCoMKgwqB9DQo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiBO VUxMOw0KPiArfQ0KPiArDQo+IMKgdm9pZCBycGNfc3lzZnNfY2xpZW50X3NldHVwKHN0cnVjdCBy cGNfY2xudCAqY2xudCwNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBycGNfeHBydF9zd2l0Y2ggKnhwcnRfc3dpdGNoLA0KPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Ry dWN0IG5ldCAqbmV0KQ0KPiBAQCAtMTk5LDYgKzI1MywyNSBAQCB2b2lkIHJwY19zeXNmc194cHJ0 X3N3aXRjaF9zZXR1cChzdHJ1Y3QNCj4gcnBjX3hwcnRfc3dpdGNoICp4cHJ0X3N3aXRjaCwNCj4g wqDCoMKgwqDCoMKgwqDCoH0NCj4gwqB9DQo+IMKgDQo+ICt2b2lkIHJwY19zeXNmc194cHJ0X3N3 aXRjaF94cHJ0X3NldHVwKHN0cnVjdCBycGNfeHBydF9zd2l0Y2gNCj4gKnhwcnRfc3dpdGNoLA0K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBycGNfeHBydCAqeHBydCwNCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBnZnBfdCBnZnBfZmxhZ3MpDQo+ICt7DQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBycGNf c3lzZnNfeHBydF9zd2l0Y2hfeHBydCAqcnBjX3hwcnRfc3dpdGNoX3hwcnQ7DQo+ICvCoMKgwqDC oMKgwqDCoHN0cnVjdCBycGNfc3lzZnNfeHBydF9zd2l0Y2ggKnN3aXRjaF9vYmogPQ0KPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKHN0cnVjdCBycGNfc3lzZnNfeHBydF9zd2l0Y2gg Kil4cHJ0X3N3aXRjaC0NCj4gPnhwc19zeXNmczsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqBycGNf eHBydF9zd2l0Y2hfeHBydCA9DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBycGNf c3lzZnNfeHBydF9zd2l0Y2hfeHBydF9hbGxvYygmc3dpdGNoX29iai0NCj4gPmtvYmplY3QsDQo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHhwcnQsIHhwcnQtDQo+ID54 cHJ0X25ldCwNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ2ZwX2Zs YWdzKTsNCj4gK8KgwqDCoMKgwqDCoMKgaWYgKHJwY194cHJ0X3N3aXRjaF94cHJ0KSB7DQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4cHJ0LT54cHJ0X3N5c2ZzID0gcnBjX3hwcnRf c3dpdGNoX3hwcnQ7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBycGNfeHBydF9z d2l0Y2hfeHBydC0+eHBydCA9IHhwcnQ7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBrb2JqZWN0X3VldmVudCgmcnBjX3hwcnRfc3dpdGNoX3hwcnQtPmtvYmplY3QsDQo+IEtPQkpf QUREKTsNCj4gK8KgwqDCoMKgwqDCoMKgfQ0KPiArfQ0KPiArDQo+IMKgdm9pZCBycGNfc3lzZnNf Y2xpZW50X2Rlc3Ryb3koc3RydWN0IHJwY19jbG50ICpjbG50KQ0KPiDCoHsNCj4gwqDCoMKgwqDC oMKgwqDCoHN0cnVjdCBycGNfc3lzZnNfY2xpZW50ICpycGNfY2xpZW50ID0gY2xudC0+Y2xfc3lz ZnM7DQo+IEBAIC0yMjcsMyArMzAwLDE2IEBAIHZvaWQgcnBjX3N5c2ZzX3hwcnRfc3dpdGNoX2Rl c3Ryb3koc3RydWN0DQo+IHJwY194cHJ0X3N3aXRjaCAqeHBydF9zd2l0Y2gpDQo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeHBydF9zd2l0Y2gtPnhwc19zeXNmcyA9IE5VTEw7DQo+ IMKgwqDCoMKgwqDCoMKgwqB9DQo+IMKgfQ0KPiArDQo+ICt2b2lkIHJwY19zeXNmc194cHJ0X3N3 aXRjaF94cHJ0X2Rlc3Ryb3koc3RydWN0IHJwY194cHJ0ICp4cHJ0KQ0KPiArew0KPiArwqDCoMKg wqDCoMKgwqBzdHJ1Y3QgcnBjX3N5c2ZzX3hwcnRfc3dpdGNoX3hwcnQgKnJwY194cHJ0X3N3aXRj aF94cHJ0ID0NCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB4cHJ0LT54cHJ0X3N5c2ZzOw0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoGlmIChycGNfeHBydF9z d2l0Y2hfeHBydCkgew0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKga29iamVjdF91 ZXZlbnQoJnJwY194cHJ0X3N3aXRjaF94cHJ0LT5rb2JqZWN0LA0KPiBLT0JKX1JFTU9WRSk7DQo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBrb2JqZWN0X2RlbCgmcnBjX3hwcnRfc3dp dGNoX3hwcnQtPmtvYmplY3QpOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKga29i amVjdF9wdXQoJnJwY194cHJ0X3N3aXRjaF94cHJ0LT5rb2JqZWN0KTsNCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHhwcnQtPnhwcnRfc3lzZnMgPSBOVUxMOw0KPiArwqDCoMKgwqDC oMKgwqB9DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3N5c2ZzLmggYi9uZXQvc3Vu cnBjL3N5c2ZzLmgNCj4gaW5kZXggNzYwZjA1ODJhZWU1Li5iMmVkZTRhMmE4MmIgMTAwNjQ0DQo+ IC0tLSBhL25ldC9zdW5ycGMvc3lzZnMuaA0KPiArKysgYi9uZXQvc3VucnBjL3N5c2ZzLmgNCj4g QEAgLTE5LDYgKzE5LDEyIEBAIHN0cnVjdCBycGNfc3lzZnNfeHBydF9zd2l0Y2ggew0KPiDCoMKg wqDCoMKgwqDCoMKgc3RydWN0IHJwY194cHJ0ICp4cHJ0Ow0KPiDCoH07DQo+IMKgDQo+ICtzdHJ1 Y3QgcnBjX3N5c2ZzX3hwcnRfc3dpdGNoX3hwcnQgew0KPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg a29iamVjdCBrb2JqZWN0Ow0KPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgbmV0ICpuZXQ7DQo+ICvC oMKgwqDCoMKgwqDCoHN0cnVjdCBycGNfeHBydCAqeHBydDsNCj4gK307DQoNCkNhbiB3ZSBwbGVh c2UgcmVuYW1lIHRoaXMgdG8gc29tZXRoaW5nIHRoYXQgZG9lc24ndCBpbXBseSB0aGF0IGl0IGlz DQpwYXJ0IG9mIHRoZSB4cHJ0X3N3aXRjaD8gSXQgaXMgdGllZCB0byBhIHN0cnVjdCBycGNfeHBy dCByYXRoZXIgdGhhbg0KdGhlIHN3aXRjaC4NCg0KQWxzbywgd2h5IGRvIHlvdSBuZWVkIGEgcG9p bnRlciB0byBzdHJ1Y3QgbmV0IGhlcmU/IFdoeSBub3QganVzdCB1c2UNCnhwcnQtPnhwcnRfbmV0 IHdoZW4gYSBwb2ludGVyIGlzIG5lZWRlZD8NCg0KPiArDQo+IMKgaW50IHJwY19zeXNmc19pbml0 KHZvaWQpOw0KPiDCoHZvaWQgcnBjX3N5c2ZzX2V4aXQodm9pZCk7DQo+IMKgDQo+IEBAIC0yOSw1 ICszNSw4IEBAIHZvaWQgcnBjX3N5c2ZzX2NsaWVudF9kZXN0cm95KHN0cnVjdCBycGNfY2xudA0K PiAqY2xudCk7DQo+IMKgdm9pZCBycGNfc3lzZnNfeHBydF9zd2l0Y2hfc2V0dXAoc3RydWN0IHJw Y194cHJ0X3N3aXRjaA0KPiAqeHBydF9zd2l0Y2gsDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHJwY194cHJ0 ICp4cHJ0LCBnZnBfdA0KPiBnZnBfZmxhZ3MpOw0KPiDCoHZvaWQgcnBjX3N5c2ZzX3hwcnRfc3dp dGNoX2Rlc3Ryb3koc3RydWN0IHJwY194cHJ0X3N3aXRjaCAqeHBydCk7DQo+ICt2b2lkIHJwY19z eXNmc194cHJ0X3N3aXRjaF94cHJ0X3NldHVwKHN0cnVjdCBycGNfeHBydF9zd2l0Y2gNCj4gKnhw cnRfc3dpdGNoLA0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBycGNfeHBydCAqeHBydCwgZ2Zw X3QNCj4gZ2ZwX2ZsYWdzKTsNCj4gK3ZvaWQgcnBjX3N5c2ZzX3hwcnRfc3dpdGNoX3hwcnRfZGVz dHJveShzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQpOw0KPiDCoA0KPiDCoCNlbmRpZg0KPiBkaWZmIC0t Z2l0IGEvbmV0L3N1bnJwYy94cHJ0bXVsdGlwYXRoLmMgYi9uZXQvc3VucnBjL3hwcnRtdWx0aXBh dGguYw0KPiBpbmRleCAyZDczYTM1ZGY5ZWUuLjgzOWIyMGU3MmZmZCAxMDA2NDQNCj4gLS0tIGEv bmV0L3N1bnJwYy94cHJ0bXVsdGlwYXRoLmMNCj4gKysrIGIvbmV0L3N1bnJwYy94cHJ0bXVsdGlw YXRoLmMNCj4gQEAgLTU3LDYgKzU3LDExIEBAIHZvaWQgcnBjX3hwcnRfc3dpdGNoX2FkZF94cHJ0 KHN0cnVjdA0KPiBycGNfeHBydF9zd2l0Y2ggKnhwcywNCj4gwqDCoMKgwqDCoMKgwqDCoGlmICh4 cHMtPnhwc19uZXQgPT0geHBydC0+eHBydF9uZXQgfHwgeHBzLT54cHNfbmV0ID09IE5VTEwpDQo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeHBydF9zd2l0Y2hfYWRkX3hwcnRfbG9j a2VkKHhwcywgeHBydCk7DQo+IMKgwqDCoMKgwqDCoMKgwqBzcGluX3VubG9jaygmeHBzLT54cHNf bG9jayk7DQo+ICvCoMKgwqDCoMKgwqDCoHhwcnRfc3dpdGNoX2dldCh4cHMpOw0KPiArwqDCoMKg wqDCoMKgwqB4cHJ0X2dldCh4cHJ0KTsNCg0KRG8gd2UgbmVlZCB0aGUgZ2V0L3B1dCBoZXJlPyBX b24ndCB0aGUgY2FsbGVyIGFsd2F5cyBob2xkIGFwcHJvcHJpYXRlDQpyZWZlcmVuY2VzPw0KDQo+ ICvCoMKgwqDCoMKgwqDCoHJwY19zeXNmc194cHJ0X3N3aXRjaF94cHJ0X3NldHVwKHhwcywgeHBy dCwgR0ZQX0tFUk5FTCk7DQo+ICvCoMKgwqDCoMKgwqDCoHhwcnRfc3dpdGNoX3B1dCh4cHMpOw0K PiArwqDCoMKgwqDCoMKgwqB4cHJ0X3B1dCh4cHJ0KTsNCj4gwqB9DQo+IMKgDQo+IMKgc3RhdGlj IHZvaWQgeHBydF9zd2l0Y2hfcmVtb3ZlX3hwcnRfbG9ja2VkKHN0cnVjdCBycGNfeHBydF9zd2l0 Y2gNCj4gKnhwcywNCj4gQEAgLTg1LDYgKzkwLDcgQEAgdm9pZCBycGNfeHBydF9zd2l0Y2hfcmVt b3ZlX3hwcnQoc3RydWN0DQo+IHJwY194cHJ0X3N3aXRjaCAqeHBzLA0KPiDCoMKgwqDCoMKgwqDC oMKgc3Bpbl9sb2NrKCZ4cHMtPnhwc19sb2NrKTsNCj4gwqDCoMKgwqDCoMKgwqDCoHhwcnRfc3dp dGNoX3JlbW92ZV94cHJ0X2xvY2tlZCh4cHMsIHhwcnQpOw0KPiDCoMKgwqDCoMKgwqDCoMKgc3Bp bl91bmxvY2soJnhwcy0+eHBzX2xvY2spOw0KPiArwqDCoMKgwqDCoMKgwqBycGNfc3lzZnNfeHBy dF9zd2l0Y2hfeHBydF9kZXN0cm95KHhwcnQpOw0KPiDCoMKgwqDCoMKgwqDCoMKgeHBydF9wdXQo eHBydCk7DQo+IMKgfQ0KPiDCoA0KPiBAQCAtMTM3LDYgKzE0Myw5IEBAIHN0cnVjdCBycGNfeHBy dF9zd2l0Y2ggKnhwcnRfc3dpdGNoX2FsbG9jKHN0cnVjdA0KPiBycGNfeHBydCAqeHBydCwNCj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4cHMtPnhwc19pdGVyX29wcyA9ICZycGNf eHBydF9pdGVyX3Npbmd1bGFyOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJw Y19zeXNmc194cHJ0X3N3aXRjaF9zZXR1cCh4cHMsIHhwcnQsIGdmcF9mbGFncyk7DQo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeHBydF9zd2l0Y2hfYWRkX3hwcnRfbG9ja2VkKHhw cywgeHBydCk7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4cHJ0X2dldCh4cHJ0 KTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJwY19zeXNmc194cHJ0X3N3aXRj aF94cHJ0X3NldHVwKHhwcywgeHBydCwNCj4gZ2ZwX2ZsYWdzKTsNCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHhwcnRfcHV0KHhwcnQpOw0KPiDCoMKgwqDCoMKgwqDCoMKgfQ0KPiDC oA0KPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHhwczsNCj4gQEAgLTE1Miw2ICsxNjEsNyBAQCBz dGF0aWMgdm9pZCB4cHJ0X3N3aXRjaF9mcmVlX2VudHJpZXMoc3RydWN0DQo+IHJwY194cHJ0X3N3 aXRjaCAqeHBzKQ0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IHJwY194cHJ0LCB4cHJ0X3N3aXRjaCk7DQo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeHBydF9zd2l0Y2hfcmVtb3ZlX3hwcnRfbG9j a2VkKHhwcywgeHBydCk7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3Bpbl91 bmxvY2soJnhwcy0+eHBzX2xvY2spOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg cnBjX3N5c2ZzX3hwcnRfc3dpdGNoX3hwcnRfZGVzdHJveSh4cHJ0KTsNCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqB4cHJ0X3B1dCh4cHJ0KTsNCj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBzcGluX2xvY2soJnhwcy0+eHBzX2xvY2spOw0KPiDCoMKgwqDCoMKgwqDC oMKgfQ0KDQotLSANClRyb25kIE15a2xlYnVzdA0KTGludXggTkZTIGNsaWVudCBtYWludGFpbmVy LCBIYW1tZXJzcGFjZQ0KdHJvbmQubXlrbGVidXN0QGhhbW1lcnNwYWNlLmNvbQ0KDQoNCg==