From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4C61C433DF for ; Fri, 3 Jul 2020 00:53:55 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 836702073E for ; Fri, 3 Jul 2020 00:53:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=wdc.com header.i=@wdc.com header.b="NarrszEr"; dkim=pass (1024-bit key) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.b="NKwuElQT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 836702073E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:33316 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jr9xi-0007uC-RP for qemu-devel@archiver.kernel.org; Thu, 02 Jul 2020 20:53:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45326) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr9qZ-0002aM-Mv; Thu, 02 Jul 2020 20:46:31 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:42204) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jr9qV-0006nx-JM; Thu, 02 Jul 2020 20:46:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1593737187; x=1625273187; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=NhnFpC9sc/ioTmSV+kvhnB2mDnvD8EhPQu427Wm9rrE=; b=NarrszErm+oow4xQv2pzSj2K3MwBxIRrBoYcgWVhh38bLQ/vAhoxQJn2 uXfRLodNZwX7AhM2JGPwo/RX4JIFbu/8xjCrGRYTFbodbGXjqdtss6KAq QoNKmPlzB8C3mIg0vKBXScJLGhpabJxmytW2Dea00lwJkzPPVHl079Umk TfrMK0P5IaGYIjwwxNs0Lf0C1UFgT6ao3FReKdOIcbyftt7DPAvkaFKkC DfebVCY2jUpi6N/cM7zfCwHAm0iBtO5Nio2lEjAFeF9Xi2bX2Mn80KMnL tFEKRkeWnJGodiV39F8hnkpNUsUzCr2sk/ZDYW/FTlBz+cIlYWPSYFPzk A==; IronPort-SDR: hgKs/8Y75ch29LmvMaUFjpshczEFy1fsUkuXs4LpG0obf0yspaLOIeTzhMUWrkqfyxkgVZV3d3 1n56hkmo9niostxywgLa/VGRsYeBocDrslnqKtdaugnMKzv2iMyJPMdSCGVqo28aD6LeoXCLlf BfQoImF/ap9Kob4NfI3Aqy5mfKdddXaR+X7OOl8h80ti4X9ur9y4a0PFCvHmp5kwIHmi2FjRaN 74eqrqtb+SaCYijr4Wl9g1j0k+sL9bYgAO5L9/xx9W2HE6FWJ7gd9iARR/akU4WdORAV319C+K 4X0= X-IronPort-AV: E=Sophos;i="5.75,306,1589212800"; d="scan'208";a="250767669" Received: from mail-bn8nam11lp2168.outbound.protection.outlook.com (HELO NAM11-BN8-obe.outbound.protection.outlook.com) ([104.47.58.168]) by ob1.hgst.iphmx.com with ESMTP; 03 Jul 2020 08:46:25 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MMyV1XvGAeCnHF1icAWnHYl9ESULln9SXjsgVxOqV6wyrNM6O2G4ErGckAs0T1lbJSi2/sx87h4XpB3KU8Vj+yawxJp3h9yCdU61kU1ob4K8hkwpRGeuXYSmCfCC0cZnuUcNNDiPnbrvghR8ci1QJ9EaJpEtz1259L3KmWcXWQCW0pg46MWe+y0KZgb0hcr8v+1lAXUHqZsrsvOVhso9hJ/q40X41WixS+gOz8l2X1OeHADOC806bR+ujap2qklQZGYN/ffzmYAvKkpAbxYyzO+gNd2hopxPAvp3GKMxu/UVZDkKYGdk7ZPUN/wdhm+NCQYZZ+8/F3/zxaxX3NDxsA== 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=NhnFpC9sc/ioTmSV+kvhnB2mDnvD8EhPQu427Wm9rrE=; b=jQTGF/weNmpxvS9s8wfOAL/wMGVpVj0LOK3Tr9j7X11KGzuQiXz8jxYpCxwrmiCW2UnekBVwKpL2kO0lI26KUoTAMD8vWhFN8ywFxJ7kcs0SAExYWuqEuRbXGaLSc8ObFrTb7rFYqKTVWkZMV2BXUGfLrQSF7VJEHw2VQve8F5ezsEWb3SapfNcWyPZ1gzEXA3gOBwIb4fQoHzfzwMw+BXHteuB56S8RkslcZ4QEhDNkR/R6M0JSzMMTKxXrIod8wvkGXUJnifB8vpNKyA1lkQeuvy2+lHcwsMPAEip6Q/jYbl0CIC7LMXXNh0mCGIeqSEEWyabeJ2NNHWPJ2RzhXA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NhnFpC9sc/ioTmSV+kvhnB2mDnvD8EhPQu427Wm9rrE=; b=NKwuElQTRmUyX/jTlAv8Ww7yWwbUWXOmCRzzk001b95pVDE1XHxhvuwPiAFXOzl5bjQoCK9c1h82h7p2P+EJVK6W7amh1zWkwmySjN4hvufjmMPVmIdivswwFAvwzSPDPXusHsRAhzcaqxE0y5iIe3bckEYkei3QQdJTOK6r07Q= Received: from MN2PR04MB5951.namprd04.prod.outlook.com (2603:10b6:208:3f::13) by MN2PR04MB5552.namprd04.prod.outlook.com (2603:10b6:208:de::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.27; Fri, 3 Jul 2020 00:46:23 +0000 Received: from MN2PR04MB5951.namprd04.prod.outlook.com ([fe80::60c5:4424:8ce4:59a9]) by MN2PR04MB5951.namprd04.prod.outlook.com ([fe80::60c5:4424:8ce4:59a9%5]) with mapi id 15.20.3153.023; Fri, 3 Jul 2020 00:46:23 +0000 From: Dmitry Fomichev To: "its@irrelevant.dk" , "qemu-block@nongnu.org" Subject: Re: [PATCH 12/17] hw/block/nvme: support the get/set features select and save fields Thread-Topic: [PATCH 12/17] hw/block/nvme: support the get/set features select and save fields Thread-Index: AQHWTkNZS5Lk+xiiX0uqNuuA5UJwN6j1CjiA Date: Fri, 3 Jul 2020 00:46:23 +0000 Message-ID: <6fc337f0c7284dd03e7867a417b3ec4f1934cd6e.camel@wdc.com> References: <20200629182642.1170387-1-its@irrelevant.dk> <20200629182642.1170387-13-its@irrelevant.dk> In-Reply-To: <20200629182642.1170387-13-its@irrelevant.dk> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.32.5 (3.32.5-1.fc30) authentication-results: irrelevant.dk; dkim=none (message not signed) header.d=none;irrelevant.dk; dmarc=none action=none header.from=wdc.com; x-originating-ip: [173.70.233.156] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 09edd875-5b75-4f24-4333-08d81eea82df x-ms-traffictypediagnostic: MN2PR04MB5552: x-microsoft-antispam-prvs: wdcipoutbound: EOP-TRUE x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 045315E1EE x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MMtI6nGhvITvXUTkqVIDNKUSyY57AO0QqE4VDfyeRHjcO7xqCPLVHKBqKXU83XUOyJVG2D5WXAOp5YGr8U/HcBQysxXNUYzvyBGUhGdHvkp+yf3xkq2IOxN3EtLh4lMYmNGkgjwhi0pSjnbGb9s9ncsxrRTcUsrp+lMSw4RSoYhQtIDXciRWXdpXJXw66NdjdN1/pK5AU+FR1heoU21YmRUsP1xwFyNWZ30xuurdAnMhdf9ajvmSbv3Y202qov17cB+kCJTVwoSgBA/GbP/eOuzGfDIX7AlaS65NpggVfvIuOGpPf+d4Ysautr2J3crs x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR04MB5951.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(396003)(346002)(376002)(39860400002)(136003)(4326008)(186003)(76116006)(2616005)(83380400001)(6486002)(6512007)(110136005)(66946007)(66476007)(66446008)(54906003)(64756008)(66556008)(36756003)(71200400001)(8936002)(26005)(86362001)(316002)(5660300002)(2906002)(8676002)(478600001)(6506007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: Bz2iOAltzAMrGfUE9Lg9mC9Ujiuvq6qDwQEJzVi+jKaFh7jusO1/IXB5TTPTibSSA3mp7QTjqucukNuanvdQTJfhjIUVYKsJV/Nk/+xUNh4ST3fCe/pzSdFvKAeL55dH+dZH+dI2vV1kFvRA+WF/4swUfC+UNOiqc0gBYT81yDxnEvFEToJgl1Yjy10nRqL+JbR+YNVJgouCLpNH7DsCq0yUo5IK8Cq43hpvPnwU/XGnvBjF3ZBpxygLor1IQmkjWt/TnVAFJEoKTINPo+NfGvNB5/II2Eorp3wU84SgmdIKtIV+r60YLspZafO2sPD32XBTiwNqewbuBISkmj6rZtCxNkSZNslaXusIe3rvsBuzPIDBfzxw5P5UcVoM90Ww3yJmOhFVNfTOLPN0oPPvE2P1ylUQ9UrNcCKnfSbE+Srn4QZ+lS8S6Ro9j4D4lJ3KGWFY3bV9qPoO7pINwUkccCaJnX/F+meJ+CvSNsZ4ByokpPxrv1JbLzYtLrExAg00 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: wdc.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR04MB5951.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 09edd875-5b75-4f24-4333-08d81eea82df X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jul 2020 00:46:23.7726 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +bfPi0tB29IvnvmMPsnLHm7FXyzjY9oEDAECdJd9t23ofWhuI1wrFr0pEX3M+YoBOJrQdZZJmGgWUNIA+HCQOA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR04MB5552 Received-SPF: pass client-ip=68.232.141.245; envelope-from=prvs=446c5dbe3=Dmitry.Fomichev@wdc.com; helo=esa1.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/02 20:46:09 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "kwolf@redhat.com" , "kbusch@kernel.org" , "k.jensen@samsung.com" , "qemu-devel@nongnu.org" , "mreitz@redhat.com" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" T24gTW9uLCAyMDIwLTA2LTI5IGF0IDIwOjI2ICswMjAwLCBLbGF1cyBKZW5zZW4gd3JvdGU6DQo+ IEZyb206IEtsYXVzIEplbnNlbiA8ay5qZW5zZW5Ac2Ftc3VuZy5jb20+DQo+IA0KPiBTaW5jZSB0 aGUgZGV2aWNlIGRvZXMgbm90IGhhdmUgYW55IHBlcnNpc3RhbmNlIHN0YXRlIHN0b3JhZ2UsIG5v DQo+IGZlYXR1cmVzIGFyZSAic2F2ZWFibGUiIGFuZCBzZXR0aW5nIHRoZSBTYXZlIChTVikgZmll bGQgaW4gYW55IFNldA0KPiBGZWF0dXJlcyBjb21tYW5kIHdpbGwgcmVzdWx0IGluIGEgRmVhdHVy ZSBJZGVudGlmaWVyIE5vdCBTYXZlYWJsZSBzdGF0dXMNCj4gY29kZS4NCj4gDQo+IFNpbWlsYXJs eSwgaWYgdGhlIFNlbGVjdCAoU0VMKSBmaWVsZCBpcyBzZXQgdG8gcmVxdWVzdCBzYXZlZCB2YWx1 ZXMsIHRoZQ0KPiBkZXZpY2VzIHdpbGwgKGFzIGl0IHNob3VsZCkgcmV0dXJuIHRoZSBkZWZhdWx0 IHZhbHVlcyBpbnN0ZWFkLg0KPiANCj4gU2luY2UgdGhpcyBhbHNvIGludHJvZHVjZXMgIlN1cHBv cnRlZCBDYXBhYmlsaXRpZXMiLCB0aGUgbnNpZCBmaWVsZCBpcw0KPiBub3cgYWxzbyBjaGVja2Vk IGZvciB2YWxpZGl0eSB3cnQuIHRoZSBmZWF0dXJlIGJlaW5nIGdldC9zZXQnZWQuDQo+IA0KPiBT aWduZWQtb2ZmLWJ5OiBLbGF1cyBKZW5zZW4gPGsuamVuc2VuQHNhbXN1bmcuY29tPg0KPiAtLS0N Cj4gIGh3L2Jsb2NrL252bWUuYyAgICAgICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0NCj4gIGh3L2Jsb2NrL252bWUuaCAgICAgICB8ICA4ICsrKysNCj4g IGh3L2Jsb2NrL3RyYWNlLWV2ZW50cyB8ICA0ICstDQo+ICBpbmNsdWRlL2Jsb2NrL252bWUuaCAg fCAyNyArKysrKysrKysrKysrLQ0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygr KSwgMTEgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvaHcvYmxvY2svbnZtZS5jIGIv aHcvYmxvY2svbnZtZS5jDQo+IGluZGV4IDY0N2Y0MDg4NTRhZS4uYTQxNjY1NzQ2ZDMzIDEwMDY0 NA0KPiAtLS0gYS9ody9ibG9jay9udm1lLmMNCj4gKysrIGIvaHcvYmxvY2svbnZtZS5jDQo+IEBA IC0xMDU2LDE2ICsxMDU2LDQzIEBAIHN0YXRpYyB1aW50MTZfdCBudm1lX2dldF9mZWF0dXJlKE52 bWVDdHJsICpuLCBOdm1lQ21kICpjbWQsIE52bWVSZXF1ZXN0ICpyZXEpDQo+ICB7DQo+ICAgICAg dWludDMyX3QgZHcxMCA9IGxlMzJfdG9fY3B1KGNtZC0+Y2R3MTApOw0KPiAgICAgIHVpbnQzMl90 IGR3MTEgPSBsZTMyX3RvX2NwdShjbWQtPmNkdzExKTsNCj4gKyAgICB1aW50MzJfdCBuc2lkID0g bGUzMl90b19jcHUoY21kLT5uc2lkKTsNCj4gICAgICB1aW50MzJfdCByZXN1bHQ7DQo+ICAgICAg dWludDhfdCBmaWQgPSBOVk1FX0dFVFNFVEZFQVRfRklEKGR3MTApOw0KPiArICAgIE52bWVHZXRG ZWF0dXJlU2VsZWN0IHNlbCA9IE5WTUVfR0VURkVBVF9TRUxFQ1QoZHcxMCk7DQo+ICAgICAgdWlu dDE2X3QgaXY7DQo+ICANCj4gLSAgICB0cmFjZV9wY2lfbnZtZV9nZXRmZWF0KG52bWVfY2lkKHJl cSksIGZpZCwgZHcxMSk7DQo+ICsgICAgdHJhY2VfcGNpX252bWVfZ2V0ZmVhdChudm1lX2NpZChy ZXEpLCBmaWQsIHNlbCwgZHcxMSk7DQo+ICANCj4gICAgICBpZiAoIW52bWVfZmVhdHVyZV9zdXBw b3J0W2ZpZF0pIHsNCj4gICAgICAgICAgcmV0dXJuIE5WTUVfSU5WQUxJRF9GSUVMRCB8IE5WTUVf RE5SOw0KPiAgICAgIH0NCj4gIA0KPiArICAgIGlmIChudm1lX2ZlYXR1cmVfY2FwW2ZpZF0gJiBO Vk1FX0ZFQVRfQ0FQX05TKSB7DQo+ICsgICAgICAgIGlmICghbnNpZCB8fCBuc2lkID4gbi0+bnVt X25hbWVzcGFjZXMpIHsNCj4gKyAgICAgICAgICAgIC8qDQo+ICsgICAgICAgICAgICAgKiBUaGUg UmVzZXJ2YXRpb24gTm90aWZpY2F0aW9uIE1hc2sgYW5kIFJlc2VydmF0aW9uIFBlcnNpc3RlbmNl DQo+ICsgICAgICAgICAgICAgKiBmZWF0dXJlcyByZXF1aXJlIGEgc3RhdHVzIGNvZGUgb2YgSW52 YWxpZCBGaWVsZCBpbiBDb21tYW5kIHdoZW4NCj4gKyAgICAgICAgICAgICAqIE5TSUQgaXMgMHhG RkZGRkZGRi4gU2luY2UgdGhlIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRob3NlDQo+ICsgICAg ICAgICAgICAgKiBmZWF0dXJlcyB3ZSBjYW4gYWx3YXlzIHJldHVybiBJbnZhbGlkIE5hbWVzcGFj ZSBvciBGb3JtYXQgYXMgd2UNCj4gKyAgICAgICAgICAgICAqIHNob3VsZCBkbyBmb3IgYWxsIG90 aGVyIGZlYXR1cmVzLg0KPiArICAgICAgICAgICAgICovDQo+ICsgICAgICAgICAgICByZXR1cm4g TlZNRV9JTlZBTElEX05TSUQgfCBOVk1FX0ROUjsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4g Kw0KPiArICAgIHN3aXRjaCAoc2VsKSB7DQo+ICsgICAgY2FzZSBOVk1FX0dFVEZFQVRfU0VMRUNU X0NVUlJFTlQ6DQo+ICsgICAgICAgIGJyZWFrOw0KPiArICAgIGNhc2UgTlZNRV9HRVRGRUFUX1NF TEVDVF9TQVZFRDoNCj4gKyAgICAgICAgLyogbm8gZmVhdHVyZXMgYXJlIHNhdmVhYmxlIGJ5IHRo ZSBjb250cm9sbGVyOyBmYWxsdGhyb3VnaCAqLw0KPiArICAgIGNhc2UgTlZNRV9HRVRGRUFUX1NF TEVDVF9ERUZBVUxUOg0KPiArICAgICAgICBnb3RvIGRlZmF1bHRzOw0KPiArICAgIGNhc2UgTlZN RV9HRVRGRUFUX1NFTEVDVF9DQVA6DQo+ICsgICAgICAgIHJlc3VsdCA9IGNwdV90b19sZTMyKG52 bWVfZmVhdHVyZV9jYXBbZmlkXSk7DQo+ICsgICAgICAgIGdvdG8gb3V0Ow0KPiArICAgIH0NCj4g Kw0KPiAgICAgIHN3aXRjaCAoZmlkKSB7DQo+ICAgICAgY2FzZSBOVk1FX1RFTVBFUkFUVVJFX1RI UkVTSE9MRDoNCj4gICAgICAgICAgcmVzdWx0ID0gMDsNCj4gQEAgLTEwOTEsNiArMTExOCwyOSBA QCBzdGF0aWMgdWludDE2X3QgbnZtZV9nZXRfZmVhdHVyZShOdm1lQ3RybCAqbiwgTnZtZUNtZCAq Y21kLCBOdm1lUmVxdWVzdCAqcmVxKQ0KPiAgICAgIGNhc2UgTlZNRV9WT0xBVElMRV9XUklURV9D QUNIRToNCj4gICAgICAgICAgcmVzdWx0ID0gY3B1X3RvX2xlMzIoYmxrX2VuYWJsZV93cml0ZV9j YWNoZShuLT5jb25mLmJsaykpOw0KPiAgICAgICAgICB0cmFjZV9wY2lfbnZtZV9nZXRmZWF0X3Z3 Y2FjaGUocmVzdWx0ID8gImVuYWJsZWQiIDogImRpc2FibGVkIik7DQo+ICsgICAgICAgIGJyZWFr Ow0KPiArICAgIGNhc2UgTlZNRV9BU1lOQ0hST05PVVNfRVZFTlRfQ09ORjoNCj4gKyAgICAgICAg cmVzdWx0ID0gY3B1X3RvX2xlMzIobi0+ZmVhdHVyZXMuYXN5bmNfY29uZmlnKTsNCj4gKyAgICAg ICAgYnJlYWs7DQo+ICsgICAgY2FzZSBOVk1FX1RJTUVTVEFNUDoNCj4gKyAgICAgICAgcmV0dXJu IG52bWVfZ2V0X2ZlYXR1cmVfdGltZXN0YW1wKG4sIGNtZCk7DQo+ICsgICAgZGVmYXVsdDoNCj4g KyAgICAgICAgYnJlYWs7DQo+ICsgICAgfQ0KPiArDQo+ICtkZWZhdWx0czoNCj4gKyAgICBzd2l0 Y2ggKGZpZCkgew0KPiArICAgIGNhc2UgTlZNRV9URU1QRVJBVFVSRV9USFJFU0hPTEQ6DQo+ICsg ICAgICAgIHJlc3VsdCA9IDA7DQoNClRoaXMgd2lsbCByZXNldCB0aGUgaGlnaCBvciBsb3cgdGhy ZXNob2xkIHZhbHVlIHNldCBlYXJsaWVyIGluIHRoaXMgZnVuY3Rpb24uDQpZb3UgY291bGQgZG8g dGhlIGZvbGxvd2luZyB0byBhdm9pZCB0aGlzIC0NCg0KQCAtMTE2Myw3ICsxMTYzLDcgQEAgc3Rh dGljIHVpbnQxNl90IG52bWVfZ2V0X2ZlYXR1cmUoTnZtZUN0cmwgKm4sIE52bWVDbWQgKmNtZCwg TnZtZVJlcXVlc3QgKnJlcSkNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIH0NCiANCi0g ICAgICAgIGJyZWFrOw0KKyAgICAgICAgZ290byBvdXQ7DQogICAgIGNhc2UgTlZNRV9WT0xBVElM RV9XUklURV9DQUNIRToNCiAgICAgICAgIHJlc3VsdCA9IGNwdV90b19sZTMyKGJsa19lbmFibGVf d3JpdGVfY2FjaGUobi0+Y29uZi5ibGspKTsNCiAgICAgICAgIHRyYWNlX3BjaV9udm1lX2dldGZl YXRfdndjYWNoZShyZXN1bHQgPyAiZW5hYmxlZCIgOiAiZGlzYWJsZWQiKTsNCg0KPiArDQo+ICsg ICAgICAgIGlmIChOVk1FX1RFTVBfVE1QU0VMKGR3MTEpICE9IE5WTUVfVEVNUF9UTVBTRUxfQ09N UE9TSVRFKSB7DQo+ICsgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICAgfQ0KPiArDQo+ICsg ICAgICAgIGlmIChOVk1FX1RFTVBfVEhTRUwoZHcxMSkgPT0gTlZNRV9URU1QX1RIU0VMX09WRVIp IHsNCj4gKyAgICAgICAgICAgIHJlc3VsdCA9IGNwdV90b19sZTE2KE5WTUVfVEVNUEVSQVRVUkVf V0FSTklORyk7DQo+ICsgICAgICAgIH0NCj4gKw0KPiAgICAgICAgICBicmVhazsNCj4gICAgICBj YXNlIE5WTUVfTlVNQkVSX09GX1FVRVVFUzoNCj4gICAgICAgICAgcmVzdWx0ID0gY3B1X3RvX2xl MzIoKG4tPnBhcmFtcy5tYXhfaW9xcGFpcnMgLSAxKSB8DQo+IEBAIC0xMTEwLDE2ICsxMTYwLDEy IEBAIHN0YXRpYyB1aW50MTZfdCBudm1lX2dldF9mZWF0dXJlKE52bWVDdHJsICpuLCBOdm1lQ21k ICpjbWQsIE52bWVSZXF1ZXN0ICpyZXEpDQo+ICANCj4gICAgICAgICAgcmVzdWx0ID0gY3B1X3Rv X2xlMzIocmVzdWx0KTsNCj4gICAgICAgICAgYnJlYWs7DQo+IC0gICAgY2FzZSBOVk1FX0FTWU5D SFJPTk9VU19FVkVOVF9DT05GOg0KPiAtICAgICAgICByZXN1bHQgPSBjcHVfdG9fbGUzMihuLT5m ZWF0dXJlcy5hc3luY19jb25maWcpOw0KPiAtICAgICAgICBicmVhazsNCj4gLSAgICBjYXNlIE5W TUVfVElNRVNUQU1QOg0KPiAtICAgICAgICByZXR1cm4gbnZtZV9nZXRfZmVhdHVyZV90aW1lc3Rh bXAobiwgY21kKTsNCj4gICAgICBkZWZhdWx0Og0KPiAgICAgICAgICByZXN1bHQgPSBjcHVfdG9f bGUzMihudm1lX2ZlYXR1cmVfZGVmYXVsdFtmaWRdKTsNCj4gICAgICAgICAgYnJlYWs7DQo+ICAg ICAgfQ0KPiAgDQo+ICtvdXQ6DQo+ICAgICAgcmVxLT5jcWUucmVzdWx0ID0gcmVzdWx0Ow0KPiAg ICAgIHJldHVybiBOVk1FX1NVQ0NFU1M7DQo+ICB9DQo+IEBAIC0xMTQ2LDE0ICsxMTkyLDM3IEBA IHN0YXRpYyB1aW50MTZfdCBudm1lX3NldF9mZWF0dXJlKE52bWVDdHJsICpuLCBOdm1lQ21kICpj bWQsIE52bWVSZXF1ZXN0ICpyZXEpDQo+ICB7DQo+ICAgICAgdWludDMyX3QgZHcxMCA9IGxlMzJf dG9fY3B1KGNtZC0+Y2R3MTApOw0KPiAgICAgIHVpbnQzMl90IGR3MTEgPSBsZTMyX3RvX2NwdShj bWQtPmNkdzExKTsNCj4gKyAgICB1aW50MzJfdCBuc2lkID0gbGUzMl90b19jcHUoY21kLT5uc2lk KTsNCj4gICAgICB1aW50OF90IGZpZCA9IE5WTUVfR0VUU0VURkVBVF9GSUQoZHcxMCk7DQo+ICsg ICAgdWludDhfdCBzYXZlID0gTlZNRV9TRVRGRUFUX1NBVkUoZHcxMCk7DQo+ICANCj4gLSAgICB0 cmFjZV9wY2lfbnZtZV9zZXRmZWF0KG52bWVfY2lkKHJlcSksIGZpZCwgZHcxMSk7DQo+ICsgICAg dHJhY2VfcGNpX252bWVfc2V0ZmVhdChudm1lX2NpZChyZXEpLCBmaWQsIHNhdmUsIGR3MTEpOw0K PiArDQo+ICsgICAgaWYgKHNhdmUpIHsNCj4gKyAgICAgICAgcmV0dXJuIE5WTUVfRklEX05PVF9T QVZFQUJMRSB8IE5WTUVfRE5SOw0KPiArICAgIH0NCj4gIA0KPiAgICAgIGlmICghbnZtZV9mZWF0 dXJlX3N1cHBvcnRbZmlkXSkgew0KPiAgICAgICAgICByZXR1cm4gTlZNRV9JTlZBTElEX0ZJRUxE IHwgTlZNRV9ETlI7DQo+ICAgICAgfQ0KPiAgDQo+ICsgICAgaWYgKG52bWVfZmVhdHVyZV9jYXBb ZmlkXSAmIE5WTUVfRkVBVF9DQVBfTlMpIHsNCj4gKyAgICAgICAgaWYgKCFuc2lkIHx8IChuc2lk ICE9IE5WTUVfTlNJRF9CUk9BRENBU1QgJiYNCj4gKyAgICAgICAgICAgICAgICAgICAgICBuc2lk ID4gbi0+bnVtX25hbWVzcGFjZXMpKSB7DQo+ICsgICAgICAgICAgICByZXR1cm4gTlZNRV9JTlZB TElEX05TSUQgfCBOVk1FX0ROUjsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0gZWxzZSBpZiAobnNp ZCAmJiBuc2lkICE9IE5WTUVfTlNJRF9CUk9BRENBU1QpIHsNCj4gKyAgICAgICAgaWYgKG5zaWQg PiBuLT5udW1fbmFtZXNwYWNlcykgew0KPiArICAgICAgICAgICAgcmV0dXJuIE5WTUVfSU5WQUxJ RF9OU0lEIHwgTlZNRV9ETlI7DQo+ICsgICAgICAgIH0NCj4gKw0KPiArICAgICAgICByZXR1cm4g TlZNRV9GRUFUX05PVF9OU19TUEVDIHwgTlZNRV9ETlI7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAg aWYgKCEobnZtZV9mZWF0dXJlX2NhcFtmaWRdICYgTlZNRV9GRUFUX0NBUF9DSEFOR0UpKSB7DQo+ ICsgICAgICAgIHJldHVybiBOVk1FX0ZFQVRfTk9UX0NIQU5HQUJMRSB8IE5WTUVfRE5SOw0KPiAr ICAgIH0NCj4gKw0KPiAgICAgIHN3aXRjaCAoZmlkKSB7DQo+ICAgICAgY2FzZSBOVk1FX1RFTVBF UkFUVVJFX1RIUkVTSE9MRDoNCj4gICAgICAgICAgaWYgKE5WTUVfVEVNUF9UTVBTRUwoZHcxMSkg IT0gTlZNRV9URU1QX1RNUFNFTF9DT01QT1NJVEUpIHsNCj4gQEAgLTE5OTgsNyArMjA2Nyw5IEBA IHN0YXRpYyB2b2lkIG52bWVfaW5pdF9jdHJsKE52bWVDdHJsICpuLCBQQ0lEZXZpY2UgKnBjaV9k ZXYpDQo+ICAgICAgaWQtPnNxZXMgPSAoMHg2IDw8IDQpIHwgMHg2Ow0KPiAgICAgIGlkLT5jcWVz ID0gKDB4NCA8PCA0KSB8IDB4NDsNCj4gICAgICBpZC0+bm4gPSBjcHVfdG9fbGUzMihuLT5udW1f bmFtZXNwYWNlcyk7DQo+IC0gICAgaWQtPm9uY3MgPSBjcHVfdG9fbGUxNihOVk1FX09OQ1NfV1JJ VEVfWkVST1MgfCBOVk1FX09OQ1NfVElNRVNUQU1QKTsNCj4gKyAgICBpZC0+b25jcyA9IGNwdV90 b19sZTE2KE5WTUVfT05DU19XUklURV9aRVJPUyB8IE5WTUVfT05DU19USU1FU1RBTVAgfA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlZNRV9PTkNTX0ZFQVRVUkVTKTsNCj4gKw0KPiAg ICAgIGlkLT5wc2RbMF0ubXAgPSBjcHVfdG9fbGUxNigweDljNCk7DQo+ICAgICAgaWQtPnBzZFsw XS5lbmxhdCA9IGNwdV90b19sZTMyKDB4MTApOw0KPiAgICAgIGlkLT5wc2RbMF0uZXhsYXQgPSBj cHVfdG9fbGUzMigweDQpOw0KPiBkaWZmIC0tZ2l0IGEvaHcvYmxvY2svbnZtZS5oIGIvaHcvYmxv Y2svbnZtZS5oDQo+IGluZGV4IGQwNzYzZWI1OWU1ZC4uMzRkZGRkYTI5ZDk2IDEwMDY0NA0KPiAt LS0gYS9ody9ibG9jay9udm1lLmgNCj4gKysrIGIvaHcvYmxvY2svbnZtZS5oDQo+IEBAIC05MCw2 ICs5MCwxNCBAQCB0eXBlZGVmIHN0cnVjdCBOdm1lRmVhdHVyZVZhbCB7DQo+ICAgICAgdWludDMy X3QgICAgYXN5bmNfY29uZmlnOw0KPiAgfSBOdm1lRmVhdHVyZVZhbDsNCj4gIA0KPiArc3RhdGlj IGNvbnN0IHVpbnQzMl90IG52bWVfZmVhdHVyZV9jYXBbMHgxMDBdID0gew0KPiArICAgIFtOVk1F X1RFTVBFUkFUVVJFX1RIUkVTSE9MRF0gICAgPSBOVk1FX0ZFQVRfQ0FQX0NIQU5HRSwNCj4gKyAg ICBbTlZNRV9WT0xBVElMRV9XUklURV9DQUNIRV0gICAgID0gTlZNRV9GRUFUX0NBUF9DSEFOR0Us DQo+ICsgICAgW05WTUVfTlVNQkVSX09GX1FVRVVFU10gICAgICAgICA9IE5WTUVfRkVBVF9DQVBf Q0hBTkdFLA0KPiArICAgIFtOVk1FX0FTWU5DSFJPTk9VU19FVkVOVF9DT05GXSAgPSBOVk1FX0ZF QVRfQ0FQX0NIQU5HRSwNCj4gKyAgICBbTlZNRV9USU1FU1RBTVBdICAgICAgICAgICAgICAgID0g TlZNRV9GRUFUX0NBUF9DSEFOR0UsDQo+ICt9Ow0KPiArDQo+ICBzdGF0aWMgY29uc3QgdWludDMy X3QgbnZtZV9mZWF0dXJlX2RlZmF1bHRbMHgxMDBdID0gew0KPiAgICAgIFtOVk1FX0FSQklUUkFU SU9OXSAgICAgICAgICAgPSBOVk1FX0FSQl9BQl9OT0xJTUlULA0KPiAgfTsNCj4gZGlmZiAtLWdp dCBhL2h3L2Jsb2NrL3RyYWNlLWV2ZW50cyBiL2h3L2Jsb2NrL3RyYWNlLWV2ZW50cw0KPiBpbmRl eCA0MmU2MmY0NjQ5ZjguLjRhNGVmMzQwNzFkZiAxMDA2NDQNCj4gLS0tIGEvaHcvYmxvY2svdHJh Y2UtZXZlbnRzDQo+ICsrKyBiL2h3L2Jsb2NrL3RyYWNlLWV2ZW50cw0KPiBAQCAtNDYsOCArNDYs OCBAQCBwY2lfbnZtZV9pZGVudGlmeV9jdHJsKHZvaWQpICJpZGVudGlmeSBjb250cm9sbGVyIg0K PiAgcGNpX252bWVfaWRlbnRpZnlfbnModWludDMyX3QgbnMpICJuc2lkICUiUFJJdTMyIiINCj4g IHBjaV9udm1lX2lkZW50aWZ5X25zbGlzdCh1aW50MzJfdCBucykgIm5zaWQgJSJQUkl1MzIiIg0K PiAgcGNpX252bWVfZ2V0X2xvZyh1aW50MTZfdCBjaWQsIHVpbnQ4X3QgbGlkLCB1aW50OF90IGxz cCwgdWludDhfdCByYWUsIHVpbnQzMl90IGxlbiwgdWludDY0X3Qgb2ZmKSAiY2lkICUiUFJJdTE2 IiBsaWQgMHglIlBSSXg4IiBsc3AgMHglIlBSSXg4IiByYWUgMHglIlBSSXg4IiBsZW4gJSJQUkl1 MzIiIG9mZiAlIlBSSXU2NCIiDQo+IC1wY2lfbnZtZV9nZXRmZWF0KHVpbnQxNl90IGNpZCwgdWlu dDhfdCBmaWQsIHVpbnQzMl90IGNkdzExKSAiY2lkICUiUFJJdTE2IiBmaWQgMHglIlBSSXg4IiBj ZHcxMSAweCUiUFJJeDMyIiINCj4gLXBjaV9udm1lX3NldGZlYXQodWludDE2X3QgY2lkLCB1aW50 OF90IGZpZCwgdWludDMyX3QgY2R3MTEpICJjaWQgJSJQUkl1MTYiIGZpZCAweCUiUFJJeDgiIGNk dzExIDB4JSJQUkl4MzIiIg0KPiArcGNpX252bWVfZ2V0ZmVhdCh1aW50MTZfdCBjaWQsIHVpbnQ4 X3QgZmlkLCB1aW50OF90IHNlbCwgdWludDMyX3QgY2R3MTEpICJjaWQgJSJQUkl1MTYiIGZpZCAw eCUiUFJJeDgiIHNlbCAweCUiUFJJeDgiIGNkdzExIDB4JSJQUkl4MzIiIg0KPiArcGNpX252bWVf c2V0ZmVhdCh1aW50MTZfdCBjaWQsIHVpbnQ4X3QgZmlkLCB1aW50OF90IHNhdmUsIHVpbnQzMl90 IGNkdzExKSAiY2lkICUiUFJJdTE2IiBmaWQgMHglIlBSSXg4IiBzYXZlIDB4JSJQUkl4OCIgY2R3 MTEgMHglIlBSSXgzMiIiDQo+ICBwY2lfbnZtZV9nZXRmZWF0X3Z3Y2FjaGUoY29uc3QgY2hhciog cmVzdWx0KSAiZ2V0IGZlYXR1cmUgdm9sYXRpbGUgd3JpdGUgY2FjaGUsIHJlc3VsdD0lcyINCj4g IHBjaV9udm1lX2dldGZlYXRfbnVtcShpbnQgcmVzdWx0KSAiZ2V0IGZlYXR1cmUgbnVtYmVyIG9m IHF1ZXVlcywgcmVzdWx0PSVkIg0KPiAgcGNpX252bWVfc2V0ZmVhdF9udW1xKGludCByZXFjcSwg aW50IHJlcXNxLCBpbnQgZ290Y3EsIGludCBnb3RzcSkgInJlcXVlc3RlZCBjcV9jb3VudD0lZCBz cV9jb3VudD0lZCwgcmVzcG9uZGluZyB3aXRoIGNxX2NvdW50PSVkIHNxX2NvdW50PSVkIg0KPiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9ibG9jay9udm1lLmggYi9pbmNsdWRlL2Jsb2NrL252bWUuaA0K PiBpbmRleCA2NjJlNTIxYzllOWIuLjYwODMzMDM5YTZjNSAxMDA2NDQNCj4gLS0tIGEvaW5jbHVk ZS9ibG9jay9udm1lLmgNCj4gKysrIGIvaW5jbHVkZS9ibG9jay9udm1lLmgNCj4gQEAgLTY2Myw3 ICs2NjMsNyBAQCBlbnVtIE52bWVTdGF0dXNDb2RlcyB7DQo+ICAgICAgTlZNRV9JTlZBTElEX1FV RVVFX0RFTCAgICAgID0gMHgwMTBjLA0KPiAgICAgIE5WTUVfRklEX05PVF9TQVZFQUJMRSAgICAg ICA9IDB4MDEwZCwNCj4gICAgICBOVk1FX0ZFQVRfTk9UX0NIQU5HQUJMRSAgICAgPSAweDAxMGUs DQo+IC0gICAgTlZNRV9GSURfTk9UX05TSURfU1BFQyAgICAgID0gMHgwMTBmLA0KPiArICAgIE5W TUVfRkVBVF9OT1RfTlNfU1BFQyAgICAgICA9IDB4MDEwZiwNCj4gICAgICBOVk1FX0ZXX1JFUV9T VVNZU1RFTV9SRVNFVCAgPSAweDAxMTAsDQo+ICAgICAgTlZNRV9DT05GTElDVElOR19BVFRSUyAg ICAgID0gMHgwMTgwLA0KPiAgICAgIE5WTUVfSU5WQUxJRF9QUk9UX0lORk8gICAgICA9IDB4MDE4 MSwNCj4gQEAgLTkwNiw5ICs5MDYsMzIgQEAgZW51bSBOdm1lRmVhdHVyZUlkcyB7DQo+ICAgICAg TlZNRV9TT0ZUV0FSRV9QUk9HUkVTU19NQVJLRVIgICA9IDB4ODANCj4gIH07DQo+ICANCj4gK3R5 cGVkZWYgZW51bSBOdm1lRmVhdHVyZUNhcCB7DQo+ICsgICAgTlZNRV9GRUFUX0NBUF9TQVZFICAg ICAgPSAxIDw8IDAsDQo+ICsgICAgTlZNRV9GRUFUX0NBUF9OUyAgICAgICAgPSAxIDw8IDEsDQo+ ICsgICAgTlZNRV9GRUFUX0NBUF9DSEFOR0UgICAgPSAxIDw8IDIsDQo+ICt9IE52bWVGZWF0dXJl Q2FwOw0KPiArDQo+ICt0eXBlZGVmIGVudW0gTnZtZUdldEZlYXR1cmVTZWxlY3Qgew0KPiArICAg IE5WTUVfR0VURkVBVF9TRUxFQ1RfQ1VSUkVOVCA9IDB4MCwNCj4gKyAgICBOVk1FX0dFVEZFQVRf U0VMRUNUX0RFRkFVTFQgPSAweDEsDQo+ICsgICAgTlZNRV9HRVRGRUFUX1NFTEVDVF9TQVZFRCAg ID0gMHgyLA0KPiArICAgIE5WTUVfR0VURkVBVF9TRUxFQ1RfQ0FQICAgICA9IDB4MywNCj4gK30g TnZtZUdldEZlYXR1cmVTZWxlY3Q7DQo+ICsNCj4gICNkZWZpbmUgTlZNRV9HRVRTRVRGRUFUX0ZJ RF9NQVNLIDB4ZmYNCj4gICNkZWZpbmUgTlZNRV9HRVRTRVRGRUFUX0ZJRChkdzEwKSAoZHcxMCAm IE5WTUVfR0VUU0VURkVBVF9GSURfTUFTSykNCj4gIA0KPiArI2RlZmluZSBOVk1FX0dFVEZFQVRf U0VMRUNUX1NISUZUIDgNCj4gKyNkZWZpbmUgTlZNRV9HRVRGRUFUX1NFTEVDVF9NQVNLICAweDcN Cj4gKyNkZWZpbmUgTlZNRV9HRVRGRUFUX1NFTEVDVChkdzEwKSBcDQo+ICsgICAgKChkdzEwID4+ IE5WTUVfR0VURkVBVF9TRUxFQ1RfU0hJRlQpICYgTlZNRV9HRVRGRUFUX1NFTEVDVF9NQVNLKQ0K PiArDQo+ICsjZGVmaW5lIE5WTUVfU0VURkVBVF9TQVZFX1NISUZUIDMxDQo+ICsjZGVmaW5lIE5W TUVfU0VURkVBVF9TQVZFX01BU0sgIDB4MQ0KPiArI2RlZmluZSBOVk1FX1NFVEZFQVRfU0FWRShk dzEwKSBcDQo+ICsgICAgKChkdzEwID4+IE5WTUVfU0VURkVBVF9TQVZFX1NISUZUKSAmIE5WTUVf U0VURkVBVF9TQVZFX01BU0spDQo+ICsNCj4gIHR5cGVkZWYgc3RydWN0IE52bWVSYW5nZVR5cGUg ew0KPiAgICAgIHVpbnQ4X3QgICAgIHR5cGU7DQo+ICAgICAgdWludDhfdCAgICAgYXR0cmlidXRl czsNCj4gQEAgLTkyNSw2ICs5NDgsOCBAQCB0eXBlZGVmIHN0cnVjdCBOdm1lTEJBRiB7DQo+ICAg ICAgdWludDhfdCAgICAgcnA7DQo+ICB9IE52bWVMQkFGOw0KPiAgDQo+ICsjZGVmaW5lIE5WTUVf TlNJRF9CUk9BRENBU1QgMHhmZmZmZmZmZg0KPiArDQo+ICB0eXBlZGVmIHN0cnVjdCBOdm1lSWRO cyB7DQo+ICAgICAgdWludDY0X3QgICAgbnN6ZTsNCj4gICAgICB1aW50NjRfdCAgICBuY2FwOw0K