Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp302221pxu; Wed, 25 Nov 2020 03:42:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJwABS/qKkxA1t35izmGU9iAzO4aPiu7i+mqWYI/HpqRCSNJlhGWjdpycQ3AadjyXI9rfEY8 X-Received: by 2002:a05:6402:14cf:: with SMTP id f15mr3060389edx.18.1606304520036; Wed, 25 Nov 2020 03:42:00 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1606304520; cv=pass; d=google.com; s=arc-20160816; b=rk9s7gqNPH7tTzkqzt3615bTyqm1aiNvNvIw06rl5g44msC9IMrzNY1nGvCN+7yYS7 uPpcQDsMAciECIDmwxDVa3j+sLxnBw75kK9azN713M+/4B4kioI0lefl7sQDvnqm/BJU 33KwFVXwk/oSe9rT8v3Z1LusFBxVn6ahLLr556o0DTMhnxhS+Sdp8Ldh9d7glwLsVcB7 4tgOywiDCXJMgNVPcIRioUzbrqrPNV89gEhsmOTXr1mfn+LfEpzJgxg2Ot+5q7m9qw2t JBGy+HXRvsXsQzqARjbuGzRy9DdhBSKOT5Co2nzfrNZPJN94KaxM1Hy4+Hdstfk6PXbV qGfQ== 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:ironport-sdr:dkim-signature; bh=ebmKOXgmbfDuBc1sdYfAgmXxYoR6wXtCtWAXdVOs+1o=; b=IAnkysph5NYp+hFjM/ArZym1XIqzYNQnlSnyBKY/ASMnfATXn7SkHOMKGNd0xna93C Ltw6gNtSx5DtSEyp7OIj9u86TjJV3TD8NR3qOvm1S8RLgCT3roBe60SC0l26uSGveUf1 pztCX2PAdA3qxvy1CxcnI99jyvgyhsFmwbIe6/1Ly36g1n7sdBHNogITRql2CVoyaCb4 JxmSOZZQrGRFKpiP7wCZ9L3KC88numVT6bx884bga1809tC7LLDGhANEy8Nlwi0CbA/F VDTSMttvHl3EaWONLgOpIzrMzVmjE7QKWD3RQWg5h6g7O1ycyjXyqQsAWaU2IdKziIzp TMsQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@microchip.com header.s=mchp header.b=uqQPpIwT; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=BnNvQuoc; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s24si1039188edw.151.2020.11.25.03.41.36; Wed, 25 Nov 2020 03:42:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@microchip.com header.s=mchp header.b=uqQPpIwT; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=BnNvQuoc; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728481AbgKYLlP (ORCPT + 99 others); Wed, 25 Nov 2020 06:41:15 -0500 Received: from esa3.microchip.iphmx.com ([68.232.153.233]:51746 "EHLO esa3.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728405AbgKYLlO (ORCPT ); Wed, 25 Nov 2020 06:41:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1606304473; x=1637840473; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=ebmKOXgmbfDuBc1sdYfAgmXxYoR6wXtCtWAXdVOs+1o=; b=uqQPpIwT+392EOTl+g9HOSsZGuSgop0MHPMT6/cvEn23i5wT8Mzf3xMD 3AKqoLmnmsZ0/7/jfRrd/aIdPe65XlBOUvfIGjvbU3EB9DJmdaWkQeBps fwJ545BN7OCG+RfDUIgWWti1ej2CU6D7ifuCFLrUPrUTI8gA4vuwxU7JP jz/p51tiMyPNkl3L97ArcL9vH1gLKGMh0DubdSKSpBuJtD4JYcG1MJx4n ux+pbojYL+usiCF8Mk3QZnIveUXxwrbKbQghgGmuMjMdbGFDK6t4yIJiR 8WoUxQiJ4w+pbMvnEwdbh6e3qkhEmk7Us2ldKEK4xByYt5HHxv4RWQVB+ Q==; IronPort-SDR: /SSVM1dmgUqsvTWjjzXpA8JhH2FcKkRWRkNRlztqEw7VGvdDr3Ne4OMzMRqvDf3smyE2dPp4sA 1rAz8b9klSSnlTxfXR//0RTUFyRBrGNc8IsipGxXJanQoWrdQ2SLPmPzyKrnpApLJY7/f79WvY 7Y8ovqMiyeokNBCYWyTbN+Ef2pbY+JqH86w4zvZWrRXzIfqBA/InyLf33KGlFQFyNwWJ25duvc fQ8cAcaMnGAPCsK/aunJoF4c4qCOOFzX6HJ5+hipjK/+sBCOV20JHhtljMahfzh6AbPIjsvnVB 384= X-IronPort-AV: E=Sophos;i="5.78,368,1599548400"; d="scan'208";a="100348223" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa3.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 25 Nov 2020 04:41:12 -0700 Received: from chn-vm-ex03.mchp-main.com (10.10.85.151) by chn-vm-ex03.mchp-main.com (10.10.85.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Wed, 25 Nov 2020 04:41:12 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3 via Frontend Transport; Wed, 25 Nov 2020 04:41:12 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oXhYO5fYQIJgukikF9hXKrqlbA8J5t6uda3cea5yuasiRguhJDkxy11qBgGqRH9O52zQ/zdp0bZCNSNbbFmnyGOks7TiXR7Ju2RSBRWSbPaVR+Miru0oiI795qO6aKec9rmeV8+YdEZpZDAsFbLmPGR612Ex65Aa50RXLz4Y4lhkf++vj+5JdRT8qbAqw9tmfc/e5zobrgRImOt5OnjIr7KoXKDD67XHBmRaOVey7BAojm606hu9GEOMKxWEx/xte8+TOQ1erdSMCMKsibZUsi9U4/5ZVYVtAsJkQXZVvRYLmm2VLvyz1vodlV5GIXxB+Y+d5JhTORLxjrTT8K7KOw== 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=ebmKOXgmbfDuBc1sdYfAgmXxYoR6wXtCtWAXdVOs+1o=; b=H/YyVo+4sn+51unpYOMxTsO+XzT2yO4zraZiElWTKro/LswW7zi+JzoFTrvOEIZ4jrge3x+1WPXlDOxvYfWbpJJIe7/YbQSR7XpfThRSUmznnwFmcoeeDpxIM/IGic5BURQdW4uTq2LwrqJS3EYEu0BQR7J3q6deYX8uBhQkjNevB5QrjUUpth1e6MpWuzFCJ54jSWT14lfsVTMWIM9k2NOT36zxNXuNxpTbVGEiI8Qkcte+wZVO77F96jbkvon8fPgOwRj4yv6KKCQtmUedsREZpZ6cgYQkzHNq+EMbBnVBfsEmQXfGrFg8aL8QTO3WR9CfZMyLcy+zsmSrXmClnQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ebmKOXgmbfDuBc1sdYfAgmXxYoR6wXtCtWAXdVOs+1o=; b=BnNvQuoczExHU+otBN6mu+7E3pTXkZDICwBx/kj4no97ilv65tuIet+bGdPqCipHlABEc+n7eMedzuBg+wNRR8H9GNnKvsBFb3F8Uk89YWjnDLCISwJ7Uk8VgA0L0BU18J1ttUq6LdoJ2bG//EPl7wSAefoE04+k0OtH2FaEEdw= Received: from CY4PR11MB1286.namprd11.prod.outlook.com (2603:10b6:903:2e::21) by CY4PR11MB1605.namprd11.prod.outlook.com (2603:10b6:910:10::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Wed, 25 Nov 2020 11:41:11 +0000 Received: from CY4PR11MB1286.namprd11.prod.outlook.com ([fe80::a0d1:a499:1c83:a988]) by CY4PR11MB1286.namprd11.prod.outlook.com ([fe80::a0d1:a499:1c83:a988%6]) with mapi id 15.20.3589.022; Wed, 25 Nov 2020 11:41:11 +0000 From: To: , CC: , , Subject: [PATCH 5/5] wilc1000: added queue support for WMM Thread-Topic: [PATCH 5/5] wilc1000: added queue support for WMM Thread-Index: AQHWwx/f8upo1qvFUUG5pt57bWxILQ== Date: Wed, 25 Nov 2020 11:41:10 +0000 Message-ID: <20201125114059.10006-6-ajay.kathat@microchip.com> References: <20201125114059.10006-1-ajay.kathat@microchip.com> In-Reply-To: <20201125114059.10006-1-ajay.kathat@microchip.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.17.1 authentication-results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=microchip.com; x-originating-ip: [171.61.34.149] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 679a7e35-d519-4bf1-dd80-08d8913701be x-ms-traffictypediagnostic: CY4PR11MB1605: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-bypassexternaltag: True x-ms-oob-tlc-oobclassifiers: OLM:612; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 1cp36si1V1710awpr26r3z42w8tfNWCxL8Vd/d6uzxdjKa1/01wAZ6DJIHPGKlyyxook7hf3sX1zcGw+zPAGukUTiHsZxMKhlqAJIkTLiiFCvn/1r/7sw5vT07v77PZzhGVBMyVYRt25kcIlsDQKb7h+LR4S6vOPclPsp/J+Ff3zHaar717IC9gwkg32GlnaCJBgBvGGeuCUj8fQ3jIGqn/xhO9dt+B23+cpE/RGS+aauwp2bMPddmdLV1J3Ldsdck9Yk0TjgJ7bLmMrkEdPPzwNujuG26HrrjsNjvN6cuSBg+g7uBDpsD6zZv1wUz8y x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB1286.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(346002)(136003)(39860400002)(396003)(376002)(66446008)(66556008)(107886003)(2616005)(6486002)(4326008)(30864003)(5660300002)(66476007)(36756003)(54906003)(71200400001)(76116006)(8936002)(64756008)(110136005)(2906002)(6506007)(66946007)(86362001)(186003)(91956017)(478600001)(83380400001)(26005)(316002)(8676002)(1076003)(6512007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: 8RN2o4n115c3tZz0yMl8JetNQSrcAEx7ok7DrNIlwpnphsii4KESKsKUQ6i3J7WJK103LM3BR6QED/7VnDM8GgxPNHW/ZpTyk+B5rSBA0tpIiEC1UdYfZjy8/1dD4GqM8K1U1UmJ8h+M7ZAU6v5AuBvmY0g2mmS2EizH/lXX3ZyImvRSwXl0e1xJ6Usrmkj0XOTRsUm1PDCATYxJMNrVxsl/04QPalM2blhJihcyxf2uIRFRWlm3VoGsjBmPR3bu9Q0ZI99cOM/IrI4vpIOGymZBQ9Mr5BUqFAp2rlj0MoEFLOPVOg29rUnPZ5JVaEdVZeplGTxxyPufFMzbJGVnX/rnbez6VeD/Pjh5aV0g/smL2cMNr+2nVw8Soqn2XPszfm9EsjCBsShS8+Qtm5INHjroBKy0Ft9/m6zxigVKAghdkPb9I7P6rK8o8sHosOhI6C822BhiPaw6JuR7G95rfvSWvxJby9qv/UmwnwSwiH1Fwb3BAi7xy/darDnL/VoYcDSSt0yudVvenlaoWbXM8JJu9lIb5TMTCb+rjzhaNrNAJHSBrga9W6D353w1UI5gymAomdifxdTZihh7hbGQI1L7+sZjqrDRs+QsxJFyk3J0/pSqJHzPt+8a75YzDgaJ5GUxyvQF0w9spQU8HSyd2vyuvBC4p/mtM8wOFIt6y07d6zzhnokTPdXqELbgu+MSm5vgTVgu4B+KU9H2LLGgdupAdE21CufMpm3I3HVMd2lCCwqCzWsiZMHBoarg+T0F+EEGu8WUcN0w2Mw3lRuy62kVkAym1EwFAG7LU0mPZvSR7dnOI44ux424xjJeNf89nrgt4kr/5dB0ZnEw3HZA4WKtcRUgIiz9ULkGAUsut2nBPLfaSowGuTGJYJw/P10FYxkHNR0L4MwnD5vVuCJVcw== Content-Type: text/plain; charset="utf-8" Content-ID: <1195003C1D6776408F309065EDD1175F@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB1286.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 679a7e35-d519-4bf1-dd80-08d8913701be X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2020 11:41:11.0180 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: KG8paNuAjGoAKXfK9ACgsNHdWRnCNQnFuytMF2ttVSdABEJCqkDTOK9npQc5Xud/cBlFEhJVGJpXKXeNiHrQr7n5mE3xoBCVhk2ZQYBhcc0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1605 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org RnJvbTogQWpheSBTaW5naCA8YWpheS5rYXRoYXRAbWljcm9jaGlwLmNvbT4NCg0KQWRkZWQgbXVs dGlwbGUgcXVldWVzW0JLLEJFLFZJLFZPXSB0byBoYW5kbGUgZGlmZmVyZW50IHByaW9yaXR5IGRh dGENCnBhY2tldHMuIEJlZm9yZSBhZGRpbmcgYSBwYWNrZXQgdG8gdGhlIHF1ZXVlLCBjaGVja2Vk IGl0cyBwcmlvcml0eSBmcm9tDQp0aGUgaGVhZGVyLCBhbmQgdGhlbiBhZGQgdG8gdGhlwqBzdWl0 YWJsZSBxdWV1ZS4gVGhlIGxpbWl0IGZvciBlYWNoIHF1ZXVlDQppcyBtYWludGFpbmVkIHNlcGFy YXRlbHkuIEFsc28gd2hpbGUgcGFzc2luZyB0aGUgcGFja2V0cyB0byB0aGUgZmlybXdhcmUNCnZp YSBWTU0gdGFrZSBjYXJlIHRvIHNlbGVjdCBkYXRhIHBhY2tldHMgYmFzZWQgb24gcHJpb3JpdHkg YW5kIGF2YWlsYWJsZQ0Kc3BhY2UuDQoNClNpZ25lZC1vZmYtYnk6IEFqYXkgU2luZ2ggPGFqYXku a2F0aGF0QG1pY3JvY2hpcC5jb20+DQotLS0NCiAuLi4vd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMx MDAwL2NmZzgwMjExLmMgICAgfCAgIDcgKy0NCiAuLi4vbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93 aWxjMTAwMC9uZXRkZXYuaCAgfCAgMTEgKy0NCiAuLi4vbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93 aWxjMTAwMC93bGFuLmMgICAgfCAzMTUgKysrKysrKysrKysrKystLS0tDQogLi4uL25ldC93aXJl bGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oICAgIHwgIDMwICsrDQogNCBmaWxlcyBjaGFu Z2VkLCAzMDIgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jDQppbmRleCBjMWFj MWQ4NDc5MGYuLmUzZGQyMDVjYmJlNSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYw0KQEAgLTE3MDksNyArMTcwOSw3IEBAIGlu dCB3aWxjX2NmZzgwMjExX2luaXQoc3RydWN0IHdpbGMgKip3aWxjLCBzdHJ1Y3QgZGV2aWNlICpk ZXYsIGludCBpb190eXBlLA0KIHsNCiAJc3RydWN0IHdpbGMgKndsOw0KIAlzdHJ1Y3Qgd2lsY192 aWYgKnZpZjsNCi0JaW50IHJldDsNCisJaW50IHJldCwgaTsNCiANCiAJd2wgPSB3aWxjX2NyZWF0 ZV93aXBoeShkZXYpOw0KIAlpZiAoIXdsKQ0KQEAgLTE3MjUsNyArMTcyNSwxMCBAQCBpbnQgd2ls Y19jZmc4MDIxMV9pbml0KHN0cnVjdCB3aWxjICoqd2lsYywgc3RydWN0IGRldmljZSAqZGV2LCBp bnQgaW9fdHlwZSwNCiAJd2wtPmlvX3R5cGUgPSBpb190eXBlOw0KIAl3bC0+aGlmX2Z1bmMgPSBv cHM7DQogCXdsLT5jaGlwX3BzX3N0YXRlID0gV0lMQ19DSElQX1dBS0VEVVA7DQotCUlOSVRfTElT VF9IRUFEKCZ3bC0+dHhxX2hlYWQubGlzdCk7DQorDQorCWZvciAoaSA9IDA7IGkgPCBOUVVFVUVT OyBpKyspDQorCQlJTklUX0xJU1RfSEVBRCgmd2wtPnR4cVtpXS50eHFfaGVhZC5saXN0KTsNCisN CiAJSU5JVF9MSVNUX0hFQUQoJndsLT5yeHFfaGVhZC5saXN0KTsNCiAJSU5JVF9MSVNUX0hFQUQo JndsLT52aWZfbGlzdCk7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWlj cm9jaGlwL3dpbGMxMDAwL25ldGRldi5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlw L3dpbGMxMDAwL25ldGRldi5oDQppbmRleCBkMGEwMDZiNjhkMDguLjg2MjA5YjM5MWEzZCAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9uZXRkZXYu aA0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL25ldGRldi5o DQpAQCAtMTk3LDYgKzE5NywxNCBAQCBzdHJ1Y3Qgd2lsY192aWYgew0KIAlzdHJ1Y3QgY2ZnODAy MTFfYnNzICpic3M7DQogfTsNCiANCitzdHJ1Y3Qgd2lsY190eF9xdWV1ZV9zdGF0dXMgew0KKwl1 OCBidWZmZXJbQUNfQlVGRkVSX1NJWkVdOw0KKwl1MTYgZW5kX2luZGV4Ow0KKwl1MTYgY250W05R VUVVRVNdOw0KKwl1MTYgc3VtOw0KKwlib29sIGluaXRpYWxpemVkOw0KK307DQorDQogc3RydWN0 IHdpbGMgew0KIAlzdHJ1Y3Qgd2lwaHkgKndpcGh5Ow0KIAljb25zdCBzdHJ1Y3Qgd2lsY19oaWZf ZnVuYyAqaGlmX2Z1bmM7DQpAQCAtMjQ1LDkgKzI1MywxMCBAQCBzdHJ1Y3Qgd2lsYyB7DQogCXUz MiByeF9idWZmZXJfb2Zmc2V0Ow0KIAl1OCAqdHhfYnVmZmVyOw0KIA0KLQlzdHJ1Y3QgdHhxX2Vu dHJ5X3QgdHhxX2hlYWQ7DQorCXN0cnVjdCB0eHFfaGFuZGxlIHR4cVtOUVVFVUVTXTsNCiAJaW50 IHR4cV9lbnRyaWVzOw0KIA0KKwlzdHJ1Y3Qgd2lsY190eF9xdWV1ZV9zdGF0dXMgdHhfcV9saW1p dDsNCiAJc3RydWN0IHJ4cV9lbnRyeV90IHJ4cV9oZWFkOw0KIA0KIAljb25zdCBzdHJ1Y3QgZmly bXdhcmUgKmZpcm13YXJlOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3Jv Y2hpcC93aWxjMTAwMC93bGFuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2ls YzEwMDAvd2xhbi5jDQppbmRleCAwZmY0ZGUyOGY2MjIuLjk5M2VhN2MwMzQyOSAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMNCisrKyBi L2RyaXZlcnMvbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC93bGFuLmMNCkBAIC02LDYg KzYsNyBAQA0KIA0KICNpbmNsdWRlIDxsaW51eC9pZl9ldGhlci5oPg0KICNpbmNsdWRlIDxsaW51 eC9pcC5oPg0KKyNpbmNsdWRlIDxuZXQvZHNmaWVsZC5oPg0KICNpbmNsdWRlICJjZmc4MDIxMS5o Ig0KICNpbmNsdWRlICJ3bGFuX2NmZy5oIg0KIA0KQEAgLTI4LDMzICsyOSwzNCBAQCBzdGF0aWMg aW5saW5lIHZvaWQgcmVsZWFzZV9idXMoc3RydWN0IHdpbGMgKndpbGMsIGVudW0gYnVzX3JlbGVh c2UgcmVsZWFzZSkNCiAJbXV0ZXhfdW5sb2NrKCZ3aWxjLT5oaWZfY3MpOw0KIH0NCiANCi1zdGF0 aWMgdm9pZCB3aWxjX3dsYW5fdHhxX3JlbW92ZShzdHJ1Y3Qgd2lsYyAqd2lsYywgc3RydWN0IHR4 cV9lbnRyeV90ICp0cWUpDQorc3RhdGljIHZvaWQgd2lsY193bGFuX3R4cV9yZW1vdmUoc3RydWN0 IHdpbGMgKndpbGMsIHU4IHFfbnVtLA0KKwkJCQkgc3RydWN0IHR4cV9lbnRyeV90ICp0cWUpDQog ew0KIAlsaXN0X2RlbCgmdHFlLT5saXN0KTsNCiAJd2lsYy0+dHhxX2VudHJpZXMgLT0gMTsNCisJ d2lsYy0+dHhxW3FfbnVtXS5jb3VudC0tOw0KIH0NCiANCiBzdGF0aWMgc3RydWN0IHR4cV9lbnRy eV90ICoNCi13aWxjX3dsYW5fdHhxX3JlbW92ZV9mcm9tX2hlYWQoc3RydWN0IG5ldF9kZXZpY2Ug KmRldikNCit3aWxjX3dsYW5fdHhxX3JlbW92ZV9mcm9tX2hlYWQoc3RydWN0IHdpbGMgKndpbGMs IHU4IHFfbnVtKQ0KIHsNCiAJc3RydWN0IHR4cV9lbnRyeV90ICp0cWUgPSBOVUxMOw0KIAl1bnNp Z25lZCBsb25nIGZsYWdzOw0KLQlzdHJ1Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KGRl dik7DQotCXN0cnVjdCB3aWxjICp3aWxjID0gdmlmLT53aWxjOw0KIA0KIAlzcGluX2xvY2tfaXJx c2F2ZSgmd2lsYy0+dHhxX3NwaW5sb2NrLCBmbGFncyk7DQogDQotCWlmICghbGlzdF9lbXB0eSgm d2lsYy0+dHhxX2hlYWQubGlzdCkpIHsNCi0JCXRxZSA9IGxpc3RfZmlyc3RfZW50cnkoJndpbGMt PnR4cV9oZWFkLmxpc3QsIHN0cnVjdCB0eHFfZW50cnlfdCwNCi0JCQkJICAgICAgIGxpc3QpOw0K KwlpZiAoIWxpc3RfZW1wdHkoJndpbGMtPnR4cVtxX251bV0udHhxX2hlYWQubGlzdCkpIHsNCisJ CXRxZSA9IGxpc3RfZmlyc3RfZW50cnkoJndpbGMtPnR4cVtxX251bV0udHhxX2hlYWQubGlzdCwN CisJCQkJICAgICAgIHN0cnVjdCB0eHFfZW50cnlfdCwgbGlzdCk7DQogCQlsaXN0X2RlbCgmdHFl LT5saXN0KTsNCiAJCXdpbGMtPnR4cV9lbnRyaWVzIC09IDE7DQorCQl3aWxjLT50eHFbcV9udW1d LmNvdW50LS07DQogCX0NCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmd2lsYy0+dHhxX3NwaW5s b2NrLCBmbGFncyk7DQogCXJldHVybiB0cWU7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIHdpbGNfd2xh bl90eHFfYWRkX3RvX3RhaWwoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwNCitzdGF0aWMgdm9pZCB3 aWxjX3dsYW5fdHhxX2FkZF90b190YWlsKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHU4IHFfbnVt LA0KIAkJCQkgICAgICBzdHJ1Y3QgdHhxX2VudHJ5X3QgKnRxZSkNCiB7DQogCXVuc2lnbmVkIGxv bmcgZmxhZ3M7DQpAQCAtNjMsMTUgKzY1LDE2IEBAIHN0YXRpYyB2b2lkIHdpbGNfd2xhbl90eHFf YWRkX3RvX3RhaWwoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwNCiANCiAJc3Bpbl9sb2NrX2lycXNh dmUoJndpbGMtPnR4cV9zcGlubG9jaywgZmxhZ3MpOw0KIA0KLQlsaXN0X2FkZF90YWlsKCZ0cWUt Pmxpc3QsICZ3aWxjLT50eHFfaGVhZC5saXN0KTsNCisJbGlzdF9hZGRfdGFpbCgmdHFlLT5saXN0 LCAmd2lsYy0+dHhxW3FfbnVtXS50eHFfaGVhZC5saXN0KTsNCiAJd2lsYy0+dHhxX2VudHJpZXMg Kz0gMTsNCisJd2lsYy0+dHhxW3FfbnVtXS5jb3VudCsrOw0KIA0KIAlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZ3aWxjLT50eHFfc3BpbmxvY2ssIGZsYWdzKTsNCiANCiAJY29tcGxldGUoJndpbGMt PnR4cV9ldmVudCk7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIHdpbGNfd2xhbl90eHFfYWRkX3RvX2hl YWQoc3RydWN0IHdpbGNfdmlmICp2aWYsDQorc3RhdGljIHZvaWQgd2lsY193bGFuX3R4cV9hZGRf dG9faGVhZChzdHJ1Y3Qgd2lsY192aWYgKnZpZiwgdTggcV9udW0sDQogCQkJCSAgICAgIHN0cnVj dCB0eHFfZW50cnlfdCAqdHFlKQ0KIHsNCiAJdW5zaWduZWQgbG9uZyBmbGFnczsNCkBAIC04MSw4 ICs4NCw5IEBAIHN0YXRpYyB2b2lkIHdpbGNfd2xhbl90eHFfYWRkX3RvX2hlYWQoc3RydWN0IHdp bGNfdmlmICp2aWYsDQogDQogCXNwaW5fbG9ja19pcnFzYXZlKCZ3aWxjLT50eHFfc3BpbmxvY2ss IGZsYWdzKTsNCiANCi0JbGlzdF9hZGQoJnRxZS0+bGlzdCwgJndpbGMtPnR4cV9oZWFkLmxpc3Qp Ow0KKwlsaXN0X2FkZCgmdHFlLT5saXN0LCAmd2lsYy0+dHhxW3FfbnVtXS50eHFfaGVhZC5saXN0 KTsNCiAJd2lsYy0+dHhxX2VudHJpZXMgKz0gMTsNCisJd2lsYy0+dHhxW3FfbnVtXS5jb3VudCsr Ow0KIA0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3aWxjLT50eHFfc3BpbmxvY2ssIGZsYWdz KTsNCiAJbXV0ZXhfdW5sb2NrKCZ3aWxjLT50eHFfYWRkX3RvX2hlYWRfY3MpOw0KQEAgLTIxMiw3 ICsyMTYsNyBAQCBzdGF0aWMgdm9pZCB3aWxjX3dsYW5fdHhxX2ZpbHRlcl9kdXBfdGNwX2Fjayhz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQ0KIA0KIAkJCXRxZSA9IGYtPnBlbmRpbmdfYWNrc1tpXS50 eHFlOw0KIAkJCWlmICh0cWUpIHsNCi0JCQkJd2lsY193bGFuX3R4cV9yZW1vdmUod2lsYywgdHFl KTsNCisJCQkJd2lsY193bGFuX3R4cV9yZW1vdmUod2lsYywgdHFlLT5xX251bSwgdHFlKTsNCiAJ CQkJdHFlLT5zdGF0dXMgPSAxOw0KIAkJCQlpZiAodHFlLT50eF9jb21wbGV0ZV9mdW5jKQ0KIAkJ CQkJdHFlLT50eF9jb21wbGV0ZV9mdW5jKHRxZS0+cHJpdiwNCkBAIC0yNjgsMTAgKzI3MiwxMzgg QEAgc3RhdGljIGludCB3aWxjX3dsYW5fdHhxX2FkZF9jZmdfcGt0KHN0cnVjdCB3aWxjX3ZpZiAq dmlmLCB1OCAqYnVmZmVyLA0KIAl0cWUtPmJ1ZmZlcl9zaXplID0gYnVmZmVyX3NpemU7DQogCXRx ZS0+dHhfY29tcGxldGVfZnVuYyA9IE5VTEw7DQogCXRxZS0+cHJpdiA9IE5VTEw7DQorCXRxZS0+ cV9udW0gPSBBQ19WT19ROw0KIAl0cWUtPmFja19pZHggPSBOT1RfVENQX0FDSzsNCiAJdHFlLT52 aWYgPSB2aWY7DQogDQotCXdpbGNfd2xhbl90eHFfYWRkX3RvX2hlYWQodmlmLCB0cWUpOw0KKwl3 aWxjX3dsYW5fdHhxX2FkZF90b19oZWFkKHZpZiwgQUNfVk9fUSwgdHFlKTsNCisNCisJcmV0dXJu IDE7DQorfQ0KKw0KK3N0YXRpYyBib29sIGlzX2FjX3FfbGltaXQoc3RydWN0IHdpbGMgKndsLCB1 OCBxX251bSkNCit7DQorCXU4IGZhY3RvcnNbTlFVRVVFU10gPSB7MSwgMSwgMSwgMX07DQorCXUx NiBpOw0KKwl1bnNpZ25lZCBsb25nIGZsYWdzOw0KKwlzdHJ1Y3Qgd2lsY190eF9xdWV1ZV9zdGF0 dXMgKnEgPSAmd2wtPnR4X3FfbGltaXQ7DQorCXU4IGVuZF9pbmRleDsNCisJdTggcV9saW1pdDsN CisJYm9vbCByZXQgPSBmYWxzZTsNCisNCisJc3Bpbl9sb2NrX2lycXNhdmUoJndsLT50eHFfc3Bp bmxvY2ssIGZsYWdzKTsNCisJaWYgKCFxLT5pbml0aWFsaXplZCkgew0KKwkJZm9yIChpID0gMDsg aSA8IEFDX0JVRkZFUl9TSVpFOyBpKyspDQorCQkJcS0+YnVmZmVyW2ldID0gaSAlIE5RVUVVRVM7 DQorDQorCQlmb3IgKGkgPSAwOyBpIDwgTlFVRVVFUzsgaSsrKSB7DQorCQkJcS0+Y250W2ldID0g QUNfQlVGRkVSX1NJWkUgKiBmYWN0b3JzW2ldIC8gTlFVRVVFUzsNCisJCQlxLT5zdW0gKz0gcS0+ Y250W2ldOw0KKwkJfQ0KKwkJcS0+ZW5kX2luZGV4ID0gQUNfQlVGRkVSX1NJWkUgLSAxOw0KKwkJ cS0+aW5pdGlhbGl6ZWQgPSAxOw0KKwl9DQorDQorCWVuZF9pbmRleCA9IHEtPmVuZF9pbmRleDsN CisJcS0+Y250W3EtPmJ1ZmZlcltlbmRfaW5kZXhdXSAtPSBmYWN0b3JzW3EtPmJ1ZmZlcltlbmRf aW5kZXhdXTsNCisJcS0+Y250W3FfbnVtXSArPSBmYWN0b3JzW3FfbnVtXTsNCisJcS0+c3VtICs9 IChmYWN0b3JzW3FfbnVtXSAtIGZhY3RvcnNbcS0+YnVmZmVyW2VuZF9pbmRleF1dKTsNCisNCisJ cS0+YnVmZmVyW2VuZF9pbmRleF0gPSBxX251bTsNCisJaWYgKGVuZF9pbmRleCA+IDApDQorCQlx LT5lbmRfaW5kZXgtLTsNCisJZWxzZQ0KKwkJcS0+ZW5kX2luZGV4ID0gQUNfQlVGRkVSX1NJWkUg LSAxOw0KKw0KKwlpZiAoIXEtPnN1bSkNCisJCXFfbGltaXQgPSAxOw0KKwllbHNlDQorCQlxX2xp bWl0ID0gKHEtPmNudFtxX251bV0gKiBGTE9XX0NPTlRST0xfVVBQRVJfVEhSRVNIT0xEIC8gcS0+ c3VtKSArIDE7DQorDQorCWlmICh3bC0+dHhxW3FfbnVtXS5jb3VudCA8PSBxX2xpbWl0KQ0KKwkJ cmV0ID0gdHJ1ZTsNCisNCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmd2wtPnR4cV9zcGlubG9j aywgZmxhZ3MpOw0KKw0KKwlyZXR1cm4gcmV0Ow0KK30NCisNCitzdGF0aWMgaW5saW5lIHU4IGFj X2NsYXNzaWZ5KHN0cnVjdCB3aWxjICp3aWxjLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KK3sNCisJ dTggcV9udW0gPSBBQ19CRV9ROw0KKwl1OCBkc2NwOw0KKw0KKwlzd2l0Y2ggKHNrYi0+cHJvdG9j b2wpIHsNCisJY2FzZSBodG9ucyhFVEhfUF9JUCk6DQorCQlkc2NwID0gaXB2NF9nZXRfZHNmaWVs ZChpcF9oZHIoc2tiKSkgJiAweGZjOw0KKwkJYnJlYWs7DQorCWNhc2UgaHRvbnMoRVRIX1BfSVBW Nik6DQorCQlkc2NwID0gaXB2Nl9nZXRfZHNmaWVsZChpcHY2X2hkcihza2IpKSAmIDB4ZmM7DQor CQlicmVhazsNCisJZGVmYXVsdDoNCisJCXJldHVybiBxX251bTsNCisJfQ0KKw0KKwlzd2l0Y2gg KGRzY3ApIHsNCisJY2FzZSAweDA4Og0KKwljYXNlIDB4MjA6DQorCWNhc2UgMHg0MDoNCisJCXFf bnVtID0gQUNfQktfUTsNCisJCWJyZWFrOw0KKwljYXNlIDB4ODA6DQorCWNhc2UgMHhBMDoNCisJ Y2FzZSAweDI4Og0KKwkJcV9udW0gPSBBQ19WSV9ROw0KKwkJYnJlYWs7DQorCWNhc2UgMHhDMDoN CisJY2FzZSAweEQwOg0KKwljYXNlIDB4RTA6DQorCWNhc2UgMHg4ODoNCisJY2FzZSAweEI4Og0K KwkJcV9udW0gPSBBQ19WT19ROw0KKwkJYnJlYWs7DQorCX0NCisNCisJcmV0dXJuIHFfbnVtOw0K K30NCisNCitzdGF0aWMgaW5saW5lIGludCBhY19iYWxhbmNlKHN0cnVjdCB3aWxjICp3bCwgdTgg KnJhdGlvKQ0KK3sNCisJdTggaSwgbWF4X2NvdW50ID0gMDsNCisNCisJaWYgKCFyYXRpbykNCisJ CXJldHVybiAtRUlOVkFMOw0KKw0KKwlmb3IgKGkgPSAwOyBpIDwgTlFVRVVFUzsgaSsrKQ0KKwkJ aWYgKHdsLT50eHFbaV0uZncuY291bnQgPiBtYXhfY291bnQpDQorCQkJbWF4X2NvdW50ID0gd2wt PnR4cVtpXS5mdy5jb3VudDsNCisNCisJZm9yIChpID0gMDsgaSA8IE5RVUVVRVM7IGkrKykNCisJ CXJhdGlvW2ldID0gbWF4X2NvdW50IC0gd2wtPnR4cVtpXS5mdy5jb3VudDsNCisNCisJcmV0dXJu IDA7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCBhY191cGRhdGVfZndfYWNfcGt0X2luZm8o c3RydWN0IHdpbGMgKndsLCB1MzIgcmVnKQ0KK3sNCisJd2wtPnR4cVtBQ19CS19RXS5mdy5jb3Vu dCA9IEZJRUxEX0dFVChCS19BQ19DT1VOVF9GSUVMRCwgcmVnKTsNCisJd2wtPnR4cVtBQ19CRV9R XS5mdy5jb3VudCA9IEZJRUxEX0dFVChCRV9BQ19DT1VOVF9GSUVMRCwgcmVnKTsNCisJd2wtPnR4 cVtBQ19WSV9RXS5mdy5jb3VudCA9IEZJRUxEX0dFVChWSV9BQ19DT1VOVF9GSUVMRCwgcmVnKTsN CisJd2wtPnR4cVtBQ19WT19RXS5mdy5jb3VudCA9IEZJRUxEX0dFVChWT19BQ19DT1VOVF9GSUVM RCwgcmVnKTsNCisNCisJd2wtPnR4cVtBQ19CS19RXS5mdy5hY20gPSBGSUVMRF9HRVQoQktfQUNf QUNNX1NUQVRfRklFTEQsIHJlZyk7DQorCXdsLT50eHFbQUNfQkVfUV0uZncuYWNtID0gRklFTERf R0VUKEJFX0FDX0FDTV9TVEFUX0ZJRUxELCByZWcpOw0KKwl3bC0+dHhxW0FDX1ZJX1FdLmZ3LmFj bSA9IEZJRUxEX0dFVChWSV9BQ19BQ01fU1RBVF9GSUVMRCwgcmVnKTsNCisJd2wtPnR4cVtBQ19W T19RXS5mdy5hY20gPSBGSUVMRF9HRVQoVk9fQUNfQUNNX1NUQVRfRklFTEQsIHJlZyk7DQorfQ0K Kw0KK3N0YXRpYyBpbmxpbmUgdTggYWNfY2hhbmdlKHN0cnVjdCB3aWxjICp3aWxjLCB1OCAqYWMp DQorew0KKwlkbyB7DQorCQlpZiAod2lsYy0+dHhxWyphY10uZncuYWNtID09IDApDQorCQkJcmV0 dXJuIDA7DQorCQkoKmFjKSsrOw0KKwl9IHdoaWxlICgqYWMgPCBOUVVFVUVTKTsNCiANCiAJcmV0 dXJuIDE7DQogfQ0KQEAgLTI4Myw2ICs0MTUsNyBAQCBpbnQgd2lsY193bGFuX3R4cV9hZGRfbmV0 X3BrdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB2b2lkICpwcml2LCB1OCAqYnVmZmVyLA0KIAlz dHJ1Y3QgdHhxX2VudHJ5X3QgKnRxZTsNCiAJc3RydWN0IHdpbGNfdmlmICp2aWYgPSBuZXRkZXZf cHJpdihkZXYpOw0KIAlzdHJ1Y3Qgd2lsYyAqd2lsYzsNCisJdTggcV9udW07DQogDQogCXdpbGMg PSB2aWYtPndpbGM7DQogDQpAQCAtMzA0LDEwICs0MzcsMjQgQEAgaW50IHdpbGNfd2xhbl90eHFf YWRkX25ldF9wa3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdm9pZCAqcHJpdiwgdTggKmJ1ZmZl ciwNCiAJdHFlLT5wcml2ID0gcHJpdjsNCiAJdHFlLT52aWYgPSB2aWY7DQogDQotCXRxZS0+YWNr X2lkeCA9IE5PVF9UQ1BfQUNLOw0KLQlpZiAodmlmLT5hY2tfZmlsdGVyLmVuYWJsZWQpDQotCQl0 Y3BfcHJvY2VzcyhkZXYsIHRxZSk7DQotCXdpbGNfd2xhbl90eHFfYWRkX3RvX3RhaWwoZGV2LCB0 cWUpOw0KKwlxX251bSA9IGFjX2NsYXNzaWZ5KHdpbGMsIHByaXYpOw0KKwl0cWUtPnFfbnVtID0g cV9udW07DQorCWlmIChhY19jaGFuZ2Uod2lsYywgJnFfbnVtKSkgew0KKwkJdHhfY29tcGxldGVf Zm4ocHJpdiwgMCk7DQorCQlrZnJlZSh0cWUpOw0KKwkJcmV0dXJuIDA7DQorCX0NCisNCisJaWYg KGlzX2FjX3FfbGltaXQod2lsYywgcV9udW0pKSB7DQorCQl0cWUtPmFja19pZHggPSBOT1RfVENQ X0FDSzsNCisJCWlmICh2aWYtPmFja19maWx0ZXIuZW5hYmxlZCkNCisJCQl0Y3BfcHJvY2Vzcyhk ZXYsIHRxZSk7DQorCQl3aWxjX3dsYW5fdHhxX2FkZF90b190YWlsKGRldiwgcV9udW0sIHRxZSk7 DQorCX0gZWxzZSB7DQorCQl0eF9jb21wbGV0ZV9mbihwcml2LCAwKTsNCisJCWtmcmVlKHRxZSk7 DQorCX0NCisNCiAJcmV0dXJuIHdpbGMtPnR4cV9lbnRyaWVzOw0KIH0NCiANCkBAIC0zMzcsMjIg KzQ4NCwyMyBAQCBpbnQgd2lsY193bGFuX3R4cV9hZGRfbWdtdF9wa3Qoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgdm9pZCAqcHJpdiwgdTggKmJ1ZmZlciwNCiAJdHFlLT5idWZmZXJfc2l6ZSA9IGJ1 ZmZlcl9zaXplOw0KIAl0cWUtPnR4X2NvbXBsZXRlX2Z1bmMgPSB0eF9jb21wbGV0ZV9mbjsNCiAJ dHFlLT5wcml2ID0gcHJpdjsNCisJdHFlLT5xX251bSA9IEFDX0JFX1E7DQogCXRxZS0+YWNrX2lk eCA9IE5PVF9UQ1BfQUNLOw0KIAl0cWUtPnZpZiA9IHZpZjsNCi0Jd2lsY193bGFuX3R4cV9hZGRf dG9fdGFpbChkZXYsIHRxZSk7DQorCXdpbGNfd2xhbl90eHFfYWRkX3RvX3RhaWwoZGV2LCBBQ19W T19RLCB0cWUpOw0KIAlyZXR1cm4gMTsNCiB9DQogDQotc3RhdGljIHN0cnVjdCB0eHFfZW50cnlf dCAqd2lsY193bGFuX3R4cV9nZXRfZmlyc3Qoc3RydWN0IHdpbGMgKndpbGMpDQorc3RhdGljIHN0 cnVjdCB0eHFfZW50cnlfdCAqd2lsY193bGFuX3R4cV9nZXRfZmlyc3Qoc3RydWN0IHdpbGMgKndp bGMsIHU4IHFfbnVtKQ0KIHsNCiAJc3RydWN0IHR4cV9lbnRyeV90ICp0cWUgPSBOVUxMOw0KIAl1 bnNpZ25lZCBsb25nIGZsYWdzOw0KIA0KIAlzcGluX2xvY2tfaXJxc2F2ZSgmd2lsYy0+dHhxX3Nw aW5sb2NrLCBmbGFncyk7DQogDQotCWlmICghbGlzdF9lbXB0eSgmd2lsYy0+dHhxX2hlYWQubGlz dCkpDQotCQl0cWUgPSBsaXN0X2ZpcnN0X2VudHJ5KCZ3aWxjLT50eHFfaGVhZC5saXN0LCBzdHJ1 Y3QgdHhxX2VudHJ5X3QsDQotCQkJCSAgICAgICBsaXN0KTsNCisJaWYgKCFsaXN0X2VtcHR5KCZ3 aWxjLT50eHFbcV9udW1dLnR4cV9oZWFkLmxpc3QpKQ0KKwkJdHFlID0gbGlzdF9maXJzdF9lbnRy eSgmd2lsYy0+dHhxW3FfbnVtXS50eHFfaGVhZC5saXN0LA0KKwkJCQkgICAgICAgc3RydWN0IHR4 cV9lbnRyeV90LCBsaXN0KTsNCiANCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmd2lsYy0+dHhx X3NwaW5sb2NrLCBmbGFncyk7DQogDQpAQCAtMzYwLDEzICs1MDgsMTQgQEAgc3RhdGljIHN0cnVj dCB0eHFfZW50cnlfdCAqd2lsY193bGFuX3R4cV9nZXRfZmlyc3Qoc3RydWN0IHdpbGMgKndpbGMp DQogfQ0KIA0KIHN0YXRpYyBzdHJ1Y3QgdHhxX2VudHJ5X3QgKndpbGNfd2xhbl90eHFfZ2V0X25l eHQoc3RydWN0IHdpbGMgKndpbGMsDQotCQkJCQkJICBzdHJ1Y3QgdHhxX2VudHJ5X3QgKnRxZSkN CisJCQkJCQkgIHN0cnVjdCB0eHFfZW50cnlfdCAqdHFlLA0KKwkJCQkJCSAgdTggcV9udW0pDQog ew0KIAl1bnNpZ25lZCBsb25nIGZsYWdzOw0KIA0KIAlzcGluX2xvY2tfaXJxc2F2ZSgmd2lsYy0+ dHhxX3NwaW5sb2NrLCBmbGFncyk7DQogDQotCWlmICghbGlzdF9pc19sYXN0KCZ0cWUtPmxpc3Qs ICZ3aWxjLT50eHFfaGVhZC5saXN0KSkNCisJaWYgKCFsaXN0X2lzX2xhc3QoJnRxZS0+bGlzdCwg JndpbGMtPnR4cVtxX251bV0udHhxX2hlYWQubGlzdCkpDQogCQl0cWUgPSBsaXN0X25leHRfZW50 cnkodHFlLCBsaXN0KTsNCiAJZWxzZQ0KIAkJdHFlID0gTlVMTDsNCkBAIC00ODksNTQgKzYzOCw5 MiBAQCBFWFBPUlRfU1lNQk9MX0dQTChob3N0X3NsZWVwX25vdGlmeSk7DQogaW50IHdpbGNfd2xh bl9oYW5kbGVfdHhxKHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgKnR4cV9jb3VudCkNCiB7DQogCWlu dCBpLCBlbnRyaWVzID0gMDsNCisJdTggaywgYWM7DQogCXUzMiBzdW07DQogCXUzMiByZWc7DQor CXU4IGFjX2Rlc2lyZWRfcmF0aW9bTlFVRVVFU10gPSB7MCwgMCwgMCwgMH07DQorCXU4IGFjX3By ZXNlcnZlX3JhdGlvW05RVUVVRVNdID0gezEsIDEsIDEsIDF9Ow0KKwl1OCAqbnVtX3BrdHNfdG9f YWRkOw0KKwl1OCB2bW1fZW50cmllc19hY1tXSUxDX1ZNTV9UQkxfU0laRV07DQogCXUzMiBvZmZz ZXQgPSAwOw0KKwlib29sIG1heF9zaXplX292ZXIgPSAwLCBhY19leGlzdCA9IDA7DQogCWludCB2 bW1fc3ogPSAwOw0KLQlzdHJ1Y3QgdHhxX2VudHJ5X3QgKnRxZTsNCisJc3RydWN0IHR4cV9lbnRy eV90ICp0cWVfcVtOUVVFVUVTXTsNCiAJaW50IHJldCA9IDA7DQogCWludCBjb3VudGVyOw0KIAlp bnQgdGltZW91dDsNCiAJdTMyIHZtbV90YWJsZVtXSUxDX1ZNTV9UQkxfU0laRV07DQorCXU4IGFj X3BrdF9udW1fdG9fY2hpcFtOUVVFVUVTXSA9IHswLCAwLCAwLCAwfTsNCiAJY29uc3Qgc3RydWN0 IHdpbGNfaGlmX2Z1bmMgKmZ1bmM7DQorCWludCBzcmN1X2lkeDsNCiAJdTggKnR4YiA9IHdpbGMt PnR4X2J1ZmZlcjsNCi0Jc3RydWN0IG5ldF9kZXZpY2UgKmRldjsNCiAJc3RydWN0IHdpbGNfdmlm ICp2aWY7DQogDQogCWlmICh3aWxjLT5xdWl0KQ0KIAkJZ290byBvdXRfdXBkYXRlX2NudDsNCiAN CisJaWYgKGFjX2JhbGFuY2Uod2lsYywgYWNfZGVzaXJlZF9yYXRpbykpDQorCQlyZXR1cm4gLUVJ TlZBTDsNCisNCiAJbXV0ZXhfbG9jaygmd2lsYy0+dHhxX2FkZF90b19oZWFkX2NzKTsNCi0JdHFl ID0gd2lsY193bGFuX3R4cV9nZXRfZmlyc3Qod2lsYyk7DQotCWlmICghdHFlKQ0KLQkJZ290byBv dXRfdW5sb2NrOw0KLQlkZXYgPSB0cWUtPnZpZi0+bmRldjsNCi0Jd2lsY193bGFuX3R4cV9maWx0 ZXJfZHVwX3RjcF9hY2soZGV2KTsNCisNCisJc3JjdV9pZHggPSBzcmN1X3JlYWRfbG9jaygmd2ls Yy0+c3JjdSk7DQorCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHZpZiwgJndpbGMtPnZpZl9saXN0 LCBsaXN0KQ0KKwkJd2lsY193bGFuX3R4cV9maWx0ZXJfZHVwX3RjcF9hY2sodmlmLT5uZGV2KTsN CisJc3JjdV9yZWFkX3VubG9jaygmd2lsYy0+c3JjdSwgc3JjdV9pZHgpOw0KKw0KKwlmb3IgKGFj ID0gMDsgYWMgPCBOUVVFVUVTOyBhYysrKQ0KKwkJdHFlX3FbYWNdID0gd2lsY193bGFuX3R4cV9n ZXRfZmlyc3Qod2lsYywgYWMpOw0KKw0KIAlpID0gMDsNCiAJc3VtID0gMDsNCi0Jd2hpbGUgKHRx ZSAmJiAoaSA8IChXSUxDX1ZNTV9UQkxfU0laRSAtIDEpKSkgew0KLQkJaWYgKHRxZS0+dHlwZSA9 PSBXSUxDX0NGR19QS1QpDQotCQkJdm1tX3N6ID0gRVRIX0NPTkZJR19QS1RfSERSX09GRlNFVDsN Ci0JCWVsc2UgaWYgKHRxZS0+dHlwZSA9PSBXSUxDX05FVF9QS1QpDQotCQkJdm1tX3N6ID0gRVRI X0VUSEVSTkVUX0hEUl9PRkZTRVQ7DQotCQllbHNlDQotCQkJdm1tX3N6ID0gSE9TVF9IRFJfT0ZG U0VUOw0KLQ0KLQkJdm1tX3N6ICs9IHRxZS0+YnVmZmVyX3NpemU7DQotCQl2bW1fc3ogPSBBTElH Tih2bW1fc3osIDQpOw0KLQ0KLQkJaWYgKChzdW0gKyB2bW1fc3opID4gV0lMQ19UWF9CVUZGX1NJ WkUpDQotCQkJYnJlYWs7DQorCW1heF9zaXplX292ZXIgPSAwOw0KKwludW1fcGt0c190b19hZGQg PSBhY19kZXNpcmVkX3JhdGlvOw0KKwlkbyB7DQorCQlhY19leGlzdCA9IDA7DQorCQlmb3IgKGFj ID0gMDsgKGFjIDwgTlFVRVVFUykgJiYgKCFtYXhfc2l6ZV9vdmVyKTsgYWMrKykgew0KKwkJCWlm ICghdHFlX3FbYWNdKQ0KKwkJCQljb250aW51ZTsNCisNCisJCQl2aWYgPSB0cWVfcVthY10tPnZp ZjsNCisJCQlhY19leGlzdCA9IDE7DQorCQkJZm9yIChrID0gMDsgKGsgPCBudW1fcGt0c190b19h ZGRbYWNdKSAmJg0KKwkJCSAgICAgKCFtYXhfc2l6ZV9vdmVyKSAmJiB0cWVfcVthY107IGsrKykg ew0KKwkJCQlpZiAoaSA+PSAoV0lMQ19WTU1fVEJMX1NJWkUgLSAxKSkgew0KKwkJCQkJbWF4X3Np emVfb3ZlciA9IDE7DQorCQkJCQlicmVhazsNCisJCQkJfQ0KIA0KLQkJdm1tX3RhYmxlW2ldID0g dm1tX3N6IC8gNDsNCi0JCWlmICh0cWUtPnR5cGUgPT0gV0lMQ19DRkdfUEtUKQ0KLQkJCXZtbV90 YWJsZVtpXSB8PSBCSVQoMTApOw0KLQkJY3B1X3RvX2xlMzJzKCZ2bW1fdGFibGVbaV0pOw0KKwkJ CQlpZiAodHFlX3FbYWNdLT50eXBlID09IFdJTENfQ0ZHX1BLVCkNCisJCQkJCXZtbV9zeiA9IEVU SF9DT05GSUdfUEtUX0hEUl9PRkZTRVQ7DQorCQkJCWVsc2UgaWYgKHRxZV9xW2FjXS0+dHlwZSA9 PSBXSUxDX05FVF9QS1QpDQorCQkJCQl2bW1fc3ogPSBFVEhfRVRIRVJORVRfSERSX09GRlNFVDsN CisJCQkJZWxzZQ0KKwkJCQkJdm1tX3N6ID0gSE9TVF9IRFJfT0ZGU0VUOw0KIA0KLQkJaSsrOw0K LQkJc3VtICs9IHZtbV9zejsNCi0JCXRxZSA9IHdpbGNfd2xhbl90eHFfZ2V0X25leHQod2lsYywg dHFlKTsNCi0JfQ0KKwkJCQl2bW1fc3ogKz0gdHFlX3FbYWNdLT5idWZmZXJfc2l6ZTsNCisJCQkJ dm1tX3N6ID0gQUxJR04odm1tX3N6LCA0KTsNCisNCisJCQkJaWYgKChzdW0gKyB2bW1fc3opID4g V0lMQ19UWF9CVUZGX1NJWkUpIHsNCisJCQkJCW1heF9zaXplX292ZXIgPSAxOw0KKwkJCQkJYnJl YWs7DQorCQkJCX0NCisJCQkJdm1tX3RhYmxlW2ldID0gdm1tX3N6IC8gNDsNCisJCQkJaWYgKHRx ZV9xW2FjXS0+dHlwZSA9PSBXSUxDX0NGR19QS1QpDQorCQkJCQl2bW1fdGFibGVbaV0gfD0gQklU KDEwKTsNCisNCisJCQkJY3B1X3RvX2xlMzJzKCZ2bW1fdGFibGVbaV0pOw0KKwkJCQl2bW1fZW50 cmllc19hY1tpXSA9IGFjOw0KKw0KKwkJCQlpKys7DQorCQkJCXN1bSArPSB2bW1fc3o7DQorCQkJ CXRxZV9xW2FjXSA9IHdpbGNfd2xhbl90eHFfZ2V0X25leHQod2lsYywNCisJCQkJCQkJCSAgIHRx ZV9xW2FjXSwNCisJCQkJCQkJCSAgIGFjKTsNCisJCQl9DQorCQl9DQorCQludW1fcGt0c190b19h ZGQgPSBhY19wcmVzZXJ2ZV9yYXRpbzsNCisJfSB3aGlsZSAoIW1heF9zaXplX292ZXIgJiYgYWNf ZXhpc3QpOw0KIA0KIAlpZiAoaSA9PSAwKQ0KIAkJZ290byBvdXRfdW5sb2NrOw0KQEAgLTU1MCw4 ICs3MzcsMTAgQEAgaW50IHdpbGNfd2xhbl9oYW5kbGVfdHhxKHN0cnVjdCB3aWxjICp3aWxjLCB1 MzIgKnR4cV9jb3VudCkNCiAJCWlmIChyZXQpDQogCQkJYnJlYWs7DQogDQotCQlpZiAoKHJlZyAm IDB4MSkgPT0gMCkNCisJCWlmICgocmVnICYgMHgxKSA9PSAwKSB7DQorCQkJYWNfdXBkYXRlX2Z3 X2FjX3BrdF9pbmZvKHdpbGMsIHJlZyk7DQogCQkJYnJlYWs7DQorCQl9DQogDQogCQljb3VudGVy Kys7DQogCQlpZiAoY291bnRlciA+IDIwMCkgew0KQEAgLTYyMCwxMSArODA5LDEzIEBAIGludCB3 aWxjX3dsYW5faGFuZGxlX3R4cShzdHJ1Y3Qgd2lsYyAqd2lsYywgdTMyICp0eHFfY291bnQpDQog CW9mZnNldCA9IDA7DQogCWkgPSAwOw0KIAlkbyB7DQorCQlzdHJ1Y3QgdHhxX2VudHJ5X3QgKnRx ZTsNCiAJCXUzMiBoZWFkZXIsIGJ1ZmZlcl9vZmZzZXQ7DQogCQljaGFyICpic3NpZDsNCiAJCXU4 IG1nbXRfcHRrID0gMDsNCiANCi0JCXRxZSA9IHdpbGNfd2xhbl90eHFfcmVtb3ZlX2Zyb21faGVh ZChkZXYpOw0KKwkJdHFlID0gd2lsY193bGFuX3R4cV9yZW1vdmVfZnJvbV9oZWFkKHdpbGMsIHZt bV9lbnRyaWVzX2FjW2ldKTsNCisJCWFjX3BrdF9udW1fdG9fY2hpcFt2bW1fZW50cmllc19hY1tp XV0rKzsNCiAJCWlmICghdHFlKQ0KIAkJCWJyZWFrOw0KIA0KQEAgLTY0OSw4ICs4NDAsMTEgQEAg aW50IHdpbGNfd2xhbl9oYW5kbGVfdHhxKHN0cnVjdCB3aWxjICp3aWxjLCB1MzIgKnR4cV9jb3Vu dCkNCiAJCWlmICh0cWUtPnR5cGUgPT0gV0lMQ19DRkdfUEtUKSB7DQogCQkJYnVmZmVyX29mZnNl dCA9IEVUSF9DT05GSUdfUEtUX0hEUl9PRkZTRVQ7DQogCQl9IGVsc2UgaWYgKHRxZS0+dHlwZSA9 PSBXSUxDX05FVF9QS1QpIHsNCisJCQlpbnQgcHJpbyA9IHRxZS0+cV9udW07DQorDQogCQkJYnNz aWQgPSB0cWUtPnZpZi0+YnNzaWQ7DQogCQkJYnVmZmVyX29mZnNldCA9IEVUSF9FVEhFUk5FVF9I RFJfT0ZGU0VUOw0KKwkJCW1lbWNweSgmdHhiW29mZnNldCArIDRdLCAmcHJpbywgc2l6ZW9mKHBy aW8pKTsNCiAJCQltZW1jcHkoJnR4YltvZmZzZXQgKyA4XSwgYnNzaWQsIDYpOw0KIAkJfSBlbHNl IHsNCiAJCQlidWZmZXJfb2Zmc2V0ID0gSE9TVF9IRFJfT0ZGU0VUOw0KQEAgLTY2OCw2ICs4NjIs OCBAQCBpbnQgd2lsY193bGFuX2hhbmRsZV90eHEoc3RydWN0IHdpbGMgKndpbGMsIHUzMiAqdHhx X2NvdW50KQ0KIAkJCXZpZi0+YWNrX2ZpbHRlci5wZW5kaW5nX2Fja3NbdHFlLT5hY2tfaWR4XS50 eHFlID0gTlVMTDsNCiAJCWtmcmVlKHRxZSk7DQogCX0gd2hpbGUgKC0tZW50cmllcyk7DQorCWZv ciAoaSA9IDA7IGkgPCBOUVVFVUVTOyBpKyspDQorCQl3aWxjLT50eHFbaV0uZncuY291bnQgKz0g YWNfcGt0X251bV90b19jaGlwW2ldOw0KIA0KIAlhY3F1aXJlX2J1cyh3aWxjLCBXSUxDX0JVU19B Q1FVSVJFX0FORF9XQUtFVVApOw0KIA0KQEAgLTk2NiwxNCArMTE2MiwxNyBAQCB2b2lkIHdpbGNf d2xhbl9jbGVhbnVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpDQogew0KIAlzdHJ1Y3QgdHhxX2Vu dHJ5X3QgKnRxZTsNCiAJc3RydWN0IHJ4cV9lbnRyeV90ICpycWU7DQorCXU4IGFjOw0KIAlzdHJ1 Y3Qgd2lsY192aWYgKnZpZiA9IG5ldGRldl9wcml2KGRldik7DQogCXN0cnVjdCB3aWxjICp3aWxj ID0gdmlmLT53aWxjOw0KIA0KIAl3aWxjLT5xdWl0ID0gMTsNCi0Jd2hpbGUgKCh0cWUgPSB3aWxj X3dsYW5fdHhxX3JlbW92ZV9mcm9tX2hlYWQoZGV2KSkpIHsNCi0JCWlmICh0cWUtPnR4X2NvbXBs ZXRlX2Z1bmMpDQotCQkJdHFlLT50eF9jb21wbGV0ZV9mdW5jKHRxZS0+cHJpdiwgMCk7DQotCQlr ZnJlZSh0cWUpOw0KKwlmb3IgKGFjID0gMDsgYWMgPCBOUVVFVUVTOyBhYysrKSB7DQorCQl3aGls ZSAoKHRxZSA9IHdpbGNfd2xhbl90eHFfcmVtb3ZlX2Zyb21faGVhZCh3aWxjLCBhYykpKSB7DQor CQkJaWYgKHRxZS0+dHhfY29tcGxldGVfZnVuYykNCisJCQkJdHFlLT50eF9jb21wbGV0ZV9mdW5j KHRxZS0+cHJpdiwgMCk7DQorCQkJa2ZyZWUodHFlKTsNCisJCX0NCiAJfQ0KIA0KIAl3aGlsZSAo KHJxZSA9IHdpbGNfd2xhbl9yeHFfcmVtb3ZlKHdpbGMpKSkNCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvd2xhbi5oIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvbWljcm9jaGlwL3dpbGMxMDAwL3dsYW4uaA0KaW5kZXggNzY4OTU2OWNkODJmLi4zZDIx MDRmMTk4MTkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2ls YzEwMDAvd2xhbi5oDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEw MDAvd2xhbi5oDQpAQCAtMjA3LDYgKzIwNywxOCBAQA0KIA0KICNkZWZpbmUgTU9EQUxJQVMJCSJX SUxDX1NQSSINCiANCisjZGVmaW5lIE5RVUVVRVMJCQk0DQorI2RlZmluZSBBQ19CVUZGRVJfU0la RQkJMTAwMA0KKw0KKyNkZWZpbmUgVk9fQUNfQ09VTlRfRklFTEQJCUdFTk1BU0soMzEsIDI1KQ0K KyNkZWZpbmUgVk9fQUNfQUNNX1NUQVRfRklFTEQJCUJJVCgyNCkNCisjZGVmaW5lIFZJX0FDX0NP VU5UX0ZJRUxECQlHRU5NQVNLKDIzLCAxNykNCisjZGVmaW5lIFZJX0FDX0FDTV9TVEFUX0ZJRUxE CQlCSVQoMTYpDQorI2RlZmluZSBCRV9BQ19DT1VOVF9GSUVMRAkJR0VOTUFTSygxNSwgOSkNCisj ZGVmaW5lIEJFX0FDX0FDTV9TVEFUX0ZJRUxECQlCSVQoOCkNCisjZGVmaW5lIEJLX0FDX0NPVU5U X0ZJRUxECQlHRU5NQVNLKDcsIDMpDQorI2RlZmluZSBCS19BQ19BQ01fU1RBVF9GSUVMRAkJQklU KDEpDQorDQogI2RlZmluZSBXSUxDX1BLVF9IRFJfQ09ORklHX0ZJRUxECUJJVCgzMSkNCiAjZGVm aW5lIFdJTENfUEtUX0hEUl9PRkZTRVRfRklFTEQJR0VOTUFTSygzMCwgMjIpDQogI2RlZmluZSBX SUxDX1BLVF9IRFJfVE9UQUxfTEVOX0ZJRUxECUdFTk1BU0soMjEsIDExKQ0KQEAgLTI5NSwxMCAr MzA3LDE3IEBADQogICogICAgICBUeC9SeCBRdWV1ZSBTdHJ1Y3R1cmUNCiAgKg0KICAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCitlbnVtIGlwX3BrdF9wcmlv cml0eSB7DQorCUFDX1ZPX1EgPSAwLA0KKwlBQ19WSV9RID0gMSwNCisJQUNfQkVfUSA9IDIsDQor CUFDX0JLX1EgPSAzDQorfTsNCiANCiBzdHJ1Y3QgdHhxX2VudHJ5X3Qgew0KIAlzdHJ1Y3QgbGlz dF9oZWFkIGxpc3Q7DQogCWludCB0eXBlOw0KKwl1OCBxX251bTsNCiAJaW50IGFja19pZHg7DQog CXU4ICpidWZmZXI7DQogCWludCBidWZmZXJfc2l6ZTsNCkBAIC0zMDgsNiArMzI3LDE3IEBAIHN0 cnVjdCB0eHFfZW50cnlfdCB7DQogCXZvaWQgKCp0eF9jb21wbGV0ZV9mdW5jKSh2b2lkICpwcml2 LCBpbnQgc3RhdHVzKTsNCiB9Ow0KIA0KK3N0cnVjdCB0eHFfZndfcmVjdl9xdWV1ZV9zdGF0IHsN CisJdTggYWNtOw0KKwl1OCBjb3VudDsNCit9Ow0KKw0KK3N0cnVjdCB0eHFfaGFuZGxlIHsNCisJ c3RydWN0IHR4cV9lbnRyeV90IHR4cV9oZWFkOw0KKwl1MTYgY291bnQ7DQorCXN0cnVjdCB0eHFf ZndfcmVjdl9xdWV1ZV9zdGF0IGZ3Ow0KK307DQorDQogc3RydWN0IHJ4cV9lbnRyeV90IHsNCiAJ c3RydWN0IGxpc3RfaGVhZCBsaXN0Ow0KIAl1OCAqYnVmZmVyOw0KLS0gDQoyLjI0LjANCg==