Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp5113603pxb; Mon, 15 Feb 2021 09:48:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJwbvEY+vP6km+kI/z4qnA1F8R3l+RjahK2fETPud7+puncfTbTBiOE3WU01Wc7r4CN7KijI X-Received: by 2002:a17:907:7295:: with SMTP id dt21mr17190402ejc.518.1613411288220; Mon, 15 Feb 2021 09:48:08 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1613411288; cv=pass; d=google.com; s=arc-20160816; b=iVDmZ9Tp5fKvT5I7foWAt/hPf17SzGtip9Vm4dI/gsUZ31z+MD164OvsYSWBrJULiU 5Xt0Y+UBdOCpsqZRFY/VFxjKFdnPCrh1d4C5WSrRgp6m1k0uoAwRUIRUvHruNlyXWpGX 0vVty9NU7hDjnQUt51KpbilT10OD7HvZbQc06BDEhVO00LoMtS0eBsj98unXoqMxWLNv +YK7kgHlBecuD7vVx1KWQYNcYSJcyKLL4mDGPRhGS0dMNBC32TcOSyELAQX2qXr517Yo M2gDltDdcOjTIG2YTEnL1mlEufg5IUO9dy20H/PQPQzrRuCxPSAfVOpkSaklJPPaAIpX FWNw== 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-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=UxTt0Zm3q3A7DdPCuUpkKXu4GDIU9omGAKr/b7TMLEU=; b=IoTLouTFP6url4haMgLEBvZyajUNpx5tIAbhvixgkhdoOIaRX5GRpw26QIm3RKM15v JIzYfzkg7R3YQmru68AiUoBvNEAOWM3THUA2K4OHD65uMLjaboaEkC1EPvO1La8oyECe Y7vqdF9nUMv9TYyNbfOV0nCTTVcAPy2ev7aV5/+ZAvaSRp7jpdATHQXqYg/yYwn+fN7h fWo0Go59kQjM8E81bYqcaHjYv3ZFfbl8xWYgprrWFCm6wkVcTLkO9RH5/5UpKc9XDMBq oaft8I7j5b4ETqKpO31o+3RpFzvpUyIq7tlnOl8Vxzzhys8OrtQIbCXa2H/ZTroL3s8r pe6g== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@microchip.com header.s=mchp header.b=MMHM0Tcb; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=WxCzt+yy; 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-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-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 de28si12035865edb.466.2021.02.15.09.47.42; Mon, 15 Feb 2021 09:48:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-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=MMHM0Tcb; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=WxCzt+yy; 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-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-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 S231861AbhBORrO (ORCPT + 99 others); Mon, 15 Feb 2021 12:47:14 -0500 Received: from esa.microchip.iphmx.com ([68.232.153.233]:21129 "EHLO esa.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232570AbhBORc5 (ORCPT ); Mon, 15 Feb 2021 12:32:57 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1613410375; x=1644946375; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=UxTt0Zm3q3A7DdPCuUpkKXu4GDIU9omGAKr/b7TMLEU=; b=MMHM0TcbW4jZktr8KjrUGFXH1w4GigQi9aLp586kYMNW81fauUhnBN9Z 6ro8EyK1mkhw+cgz4kqyZBzfxcJaMxQTaPUJhJ8CN8ANWQopwR9g7BE+t 4rrgLvrz/2pa/UUDz8V3WOBoy1jPis7nJ8fY27+2Oc6yeIpCtba0FA4/B pmW3rEgsNzsxR4mcsvynseGVsnI+KpULK4iSoRVXNbv64T/teGfV+Sc2E 5LAMgyL0056AJcrgB5F2PUscRORNpV0K1WkgJDvBiJsKmwgvwl+rGSK0o 2o6I3wsBav3I3oOiz/SHNVXN18fvYq66HfJQ/GoDveDaFlhLSHEsL8yiT g==; IronPort-SDR: YAUnAIPOqpdgTjcRTImum/bB8RBWtMLp63Ji4qeJpLO5it8mUZ2waORnb73D/xYrt7wDylmm7x HDyIY4hXBW7lMmGEESdZbJ2MXoAiwCcjyFUtOaXCaF4U8QSjJDzqY2AP/oIY/xnPQmIlUc9RUc 3PAec/R6ZF1HT6p+qGbhGo/isF0opshKZhmP1TQwfu+Nbh3s4xE7pjUiq4ry76dgHygMWlkfEq tPHQcihsfSItX4v4cothw/Txlq7ONL/e1DM5rmxl27DAWd+WiMchEaRHvZlxt5gHt5q/WU28kq CfU= X-IronPort-AV: E=Sophos;i="5.81,181,1610434800"; d="scan'208";a="115145388" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa1.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 15 Feb 2021 10:31:39 -0700 Received: from chn-vm-ex03.mchp-main.com (10.10.85.151) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Mon, 15 Feb 2021 10:31:39 -0700 Received: from NAM11-DM6-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; Mon, 15 Feb 2021 10:31:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n5YNeh9bYaAsHCA3eS2ZxfUifOp+GOC1exoxuX7rG1vtLLWEKNZkiLuY2eDwZnRGdkR2P+xKlJh8bbvnTRWFosvMEzwLKRJGPGorjIczmp3AFpxHjJaiE1wXV+tqsblv4muN08LjAz44RMyWLgMhUxPc7LZtaZjB9m2gU1jjbXLnpVZQtfFEr38cvvTTBodeLpGUGC81nC5lL/6TzdPLTFIhXbkQcYqIb3kYpieZqd0HvhqEhNzdXX7gCKTX/Vu6XgPi2uGjbajhT0w4NQTZxshWBAANFLqgx/w4XY1G9Qn6A+3xdvzyU6JMx9l4W0r/Ue1fWVfXAb6wpSkwQRXk7Q== 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=UxTt0Zm3q3A7DdPCuUpkKXu4GDIU9omGAKr/b7TMLEU=; b=KJoPljzZQS343S6MCW0coyBlV1OX8W/UVmNnOb9LzXN0F2zQix0/1zzIQHocUOC8vWboBhQxs+QLZeHQNDbG2cQy0dgqDfKHjVHCn8dsxIyvNU8k/WJwM+8XKhuYObSD8tsijzwwFUYGFStCxu7Ih1z9k2W/59EwMSzyciPxFoSpVVY5TX0Lhit+pxtSoq96A7ASqA76pCqwghdt5lOGF/GX/1cGpCZzWOljATyoGXek2wYoP4k2AOrZmRGjZpM1m7zgPh7GIslXI4KZ1X+KBqGPvDyuF5cTG+xQjje9QLP4cK4+5OXBvfOHX5IYro3MD3jsxwvY59PufHnjEg5iAA== 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=UxTt0Zm3q3A7DdPCuUpkKXu4GDIU9omGAKr/b7TMLEU=; b=WxCzt+yyTxvsBjgGDmEXmqIQQ9SKD+5etFh84qw5t+BLw9L52RRpHFpHqv7leic5sYV26G0I1c2Sew41mH6lc/8UEN84PE/HIjy6r2glbW8jjQmxDTv9eKzu1AE2YOVoPghf9YWG9pTsc/yvM4753pUl/TPUTNVK8v8bjU8y7Vw= Received: from SN6PR11MB3488.namprd11.prod.outlook.com (2603:10b6:805:b8::27) by SN6PR11MB2784.namprd11.prod.outlook.com (2603:10b6:805:54::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3846.38; Mon, 15 Feb 2021 17:31:36 +0000 Received: from SN6PR11MB3488.namprd11.prod.outlook.com ([fe80::d909:f55f:7b75:8b77]) by SN6PR11MB3488.namprd11.prod.outlook.com ([fe80::d909:f55f:7b75:8b77%7]) with mapi id 15.20.3846.041; Mon, 15 Feb 2021 17:31:36 +0000 From: To: , , , , , , , , , CC: , , , , Subject: RE: [RFC/RFT PATCH] scsi: pm8001: Expose HW queues for pm80xx hw Thread-Topic: [RFC/RFT PATCH] scsi: pm8001: Expose HW queues for pm80xx hw Thread-Index: AQHW41TyfiU+voXir0O8wZUugFRMoapBeYsQgAHZCoCAAF+0MIAAAswAgBYDCaA= Date: Mon, 15 Feb 2021 17:31:36 +0000 Message-ID: References: <1609845423-110410-1-git-send-email-john.garry@huawei.com> <0a20dc79-a462-f3fb-14af-db151b688e5a@huawei.com> <1b491d44-996c-2131-2eb6-5348460f9b5b@huawei.com> In-Reply-To: <1b491d44-996c-2131-2eb6-5348460f9b5b@huawei.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: huawei.com; dkim=none (message not signed) header.d=none;huawei.com; dmarc=none action=none header.from=microchip.com; x-originating-ip: [106.200.63.226] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: eec046bd-6e94-4320-4d54-08d8d1d78b9c x-ms-traffictypediagnostic: SN6PR11MB2784: x-ms-exchange-transport-forked: True 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: M7OEDDuf0JjOFc3fCzumxb2FzFc0LLYTWpQzVC5eXCcAHGK6rKtA3zPiVO5F97uaz6phkfuVpjut3G2iqp/Um/VIIkRseavsLC93jKmFpaat8KRxzUM87Zj0mnoEhr4f8yZvD2xBprrCKuOraI++xibl3Ze2dT00/DSO6bfb/CznsDXRIz+FgK3VsKsU0tATFkX2o4Du+Tr2e9UjNy+/9Vb3L0WWFsBlR1G+JBAQgZZ2Oj+fTFdchxdbMnd3RteK+XK7d3Ns29RwOJCUk+vq1/G+HIdRNEMscFAqzrUiltUWAMbLuK7WNYwt5dQDw1nz8mAoLn+9JvDwRq9x0KtBOqel419Ka85G8QBli537N1pmfdCJAbSjEVxuAhGul0HM/9gYan7pDvIsyvbKtJ/33bwpNvxpcUhEqF08Iq0aefSB+wlpLZ8bTe8a8QKzW+c8SOyJHU6OKVbpW8ktZ9efnudZnC42YKeifVWkWCKyFWx96gnjqBE6XmgC2o/gKqmwj88H46eHtdCnbLN1FsjZrIR3kEVBBdUIkFvpN4nFar05IsBAkqxd5dXQkTv47Z3YQ5hTSLnzy0i77LHjJxtV/QtHk2lhzUY9ShOp5M4+5wV5GSXy8bLUFOKejwfEOSF3yQ8TSe6uA4LXO4ekN0toXw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB3488.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(136003)(396003)(366004)(346002)(39860400002)(9686003)(5660300002)(7696005)(7416002)(71200400001)(30864003)(55016002)(921005)(6636002)(76116006)(66946007)(66476007)(66446008)(66556008)(478600001)(8936002)(8676002)(316002)(86362001)(110136005)(54906003)(64756008)(2906002)(45080400002)(53546011)(4326008)(26005)(186003)(6506007)(52536014)(966005)(83380400001)(33656002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?bGp6Z0pmR2RKNUcwb1NSYWdvMmI5SHU1TkhjWURVTU01a1VCeHB3T1ZvbEI1?= =?utf-8?B?bkhWVVpEMW9TdWZRcGc5aXVHcEd5MzlOb0gwdU0zZENWQlVIa2RybllmSnkw?= =?utf-8?B?U0oraENDdVFuQzNxZkRCTGhFbVplZ2Jwcy9UbEVJVlNYUitIK2srMVpGNWdS?= =?utf-8?B?clV3SWpLejVLQ3pvVjFkOTErQ1NXS1FpYm1wTWpBVERnMVVlN2pETWZ0YmRU?= =?utf-8?B?ZEgrMmNsV1VXM2xnYVdObS9PZHp0VVNma3MrUmY1c2hrWDRoS2ZPVnduTDAx?= =?utf-8?B?WUZYT2Q5Tk1qejhzV3p5ZVFJTXlOMU9HUXVJMHN1d2NDSTBHVHJkZ1d0QTVI?= =?utf-8?B?c0NNUXFxQWtOSk9nVy8vaG1ORkp3UXhycDdRMXdzcmt1RVVwbUFzS2hHZnI1?= =?utf-8?B?OGdLR0NrbTg5czJPdGJueWRvbjJGclRCa3dkdmwrcGJiY0lycGxQcW1JbThk?= =?utf-8?B?Y3E5N0NGanJ6aWNuSjVLUDNzK2p5dTJkM0k3bm5WUGFBRldXanZrNytkekhs?= =?utf-8?B?NG1oTW1yekZOd1NUQTVYM2twVThqZzcvSzZDVUZUWTdvMVR5VHQzNnpYaXBt?= =?utf-8?B?ZllFemI0bU8zb1RGTHJEWHVENENySDQxd0V1Y3VocHhiOHlTdlFhZHFTR0Q4?= =?utf-8?B?NmlKUTRDZStJaDJTRGc0ZWV5NVdlbmRJWit5UmZjdEJ2VGJnNVZaWld0eStj?= =?utf-8?B?OEs3eGdLY2MwNHpxb1ZzbnNiVWl6Y2xxNXVyWjlwQzR6UXNNaVY5Mmw2TVdm?= =?utf-8?B?eWhsUDFUdU0xcnh6cUZBNXQxMXpiLy8wSUt1ZUlwbkNwUnVibzgzNFZidVFn?= =?utf-8?B?bDE2WlJLMDZ4RFhwMmk3SHpnd05wckNmWnhvSS9aRDFsQlNUb2NQZzEwOHdm?= =?utf-8?B?ZkR4THdzL3ZNVU8zZCtXdytrK2E5bUN2NnFyckIxdkFLbUNvOExSRzBWQjBQ?= =?utf-8?B?VXdEWTJDL1lMTDRxYko1Q3BjbzRHVVZKeDRvZ003K3V5ZFZPV1VoVzJJNEVL?= =?utf-8?B?Y3ZjbXlVUGd1cXJKcmd3ck1VQXFCYjRvYnY2c05wNDlCTGhzNzVoMFhISEMy?= =?utf-8?B?UE9VZFFCZ1RRWHZxNnA1RHc2Y2ZCaXQ1eG13TkN3RWFOODFnWHhSUy9rano0?= =?utf-8?B?MWhwWE1qR0Z4anlaa3F0TnFIK0drVy95bjg4ZUYxTFoveCt3ZFg3K0hSRXhB?= =?utf-8?B?Njc5eXYrVGxNbHIwaWkyVDFMeE5jU3AyRTV4bGhCMzcxWk9QVkViRm4rODhk?= =?utf-8?B?c2hVTlpLbWVOSnpnMlVCdkRzaHZjZjdLajFxc1A0UjlXbUVEWXRTY3JFcGdG?= =?utf-8?B?R1ZkVTlEN3FOWmVRakFEQVZrTEorZkcwdDl3c24rdjBVMnB0YW5uQmg0dDFW?= =?utf-8?B?SHBRdVVLWk1QYlZxYStBdk1kdklnS0c2aW5iNXNkNXZtVk8xamVIYmVhRGNQ?= =?utf-8?B?SXRSRG9aeEY3RHBab2pWam1Ya09tUkZoOVZBQit2SkFIcWRlNXgwTzF3UlBP?= =?utf-8?B?S3dtUkp3R215V2FzeWRQM0dPQVQ4TEVRS2twV1JDeHJrVStKeUpaSFJwak81?= =?utf-8?B?VXFBb2R3b3hrKzEyS1c2NFprOXg3c3dzcEtQNXBYbEdhOEZPU1hrdGNPNXJq?= =?utf-8?B?VVdSR3VHM0paZk1nZU0xMVhneXEzY1hLc0RQRmxiMkdRZG9jZ3N2eFNTTGFy?= =?utf-8?B?WFJYS2lqNGljeXY2d0IydFFpckhITzRBdkZzQ0psMWllSEREZ2p0NTcvZFZE?= =?utf-8?Q?eMNp/YRCgspJ0i8LYG1o2qljy7edT+Ku29WhO55?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB3488.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: eec046bd-6e94-4320-4d54-08d8d1d78b9c X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Feb 2021 17:31:36.1636 (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: 6l33AwJagRboclu9QSvlobBXL2QhuipIRKjz28A3esFNlpovNiwoiflVGo1RNT7zQzJbqHH2upwpY25qWKy9iw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2784 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgSm9obiwgDQoNCldlIGNvdWxkIHRlc3QgdGhpcyBwYXRjaCBhbmQgaXQgd29ya3MgZmluZS4g UmVnYXJkaW5nIHRoZSB1c2FnZSBvZiByZXF1ZXN0LT50YWcsIFdlIGhhdmUgc29tZSBjaGFsbGVu Z2VzIHRoZXJlLiBQbTgweHggZHJpdmVyIG5lZWQgdGFnIGZvciBpbnRlcm5hbCBjb21tYW5kIGFz IHdlbGwuIFRhZyBpcyBjb250cm9sbGVyIHdpZGUgYW5kIHdlIG5lZWQgdG8gYXNzaWduIHVuaXF1 ZSB0YWcgZm9yIGludGVybmFsIGNvbW1hbmQgYXMgd2VsbC4gSWYgd2UgdXNlIHJlcXVlc3QtPnRh ZywgaG93IGNhbiB3ZSBnZXQgdGFnIGZvciBpbnRlcm5hbCBjb21tYW5kcyA/IElmIGRyaXZlciBh bGxvY2F0ZSB0aGF0LCBob3cgY2FuIHdlIG1ha2Ugc3VyZSBpdCB3aWxsIG5vdCBjb25mbGljdCB3 aXRoIHRoZSByZXF1ZXN0LT50YWcgPw0KDQpSZWdhcmRzLA0KVmlzd2FzIEcNCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKb2huIEdhcnJ5IDxqb2huLmdhcnJ5QGh1YXdl aS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgRmVicnVhcnkgMSwgMjAyMSAxMDo0NiBQTQ0KPiBUbzog Vmlzd2FzIEcgLSBJMzA2NjcgPFZpc3dhcy5HQG1pY3JvY2hpcC5jb20+OyBqZWpiQGxpbnV4Lmli bS5jb207DQo+IG1hcnRpbi5wZXRlcnNlbkBvcmFjbGUuY29tOyBha3NoYXR6ZW5AZ29vZ2xlLmNv bTsgUnVrc2FyIERldmFkaSAtDQo+IEk1MjMyNyA8UnVrc2FyLmRldmFkaUBtaWNyb2NoaXAuY29t PjsgcmFkaGFAZ29vZ2xlLmNvbTsNCj4gYmphc2huYW5pQGdvb2dsZS5jb207IHZpc2hha2hhdmNA Z29vZ2xlLmNvbTsNCj4gamlucHUud2FuZ0BjbG91ZC5pb25vcy5jb207IEFzaG9ra3VtYXIgTiAt IFg1MzUzNQ0KPiA8QXNob2trdW1hci5OQG1pY3JvY2hpcC5jb20+DQo+IENjOiBsaW51eC1zY3Np QHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgaGFyZUBzdXNl LmRlOw0KPiBrYXNoeWFwLmRlc2FpQGJyb2FkY29tLmNvbTsgbWluZy5sZWlAcmVkaGF0LmNvbQ0K PiBTdWJqZWN0OiBSZTogW1JGQy9SRlQgUEFUQ0hdIHNjc2k6IHBtODAwMTogRXhwb3NlIEhXIHF1 ZXVlcyBmb3IgcG04MHh4DQo+IGh3DQo+IA0KPiBFWFRFUk5BTCBFTUFJTDogRG8gbm90IGNsaWNr IGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSBrbm93IHRoZQ0KPiBjb250ZW50 IGlzIHNhZmUNCj4gDQo+IE9uIDAxLzAyLzIwMjEgMTc6MDgsIFZpc3dhcy5HQG1pY3JvY2hpcC5j b20gd3JvdGU6DQo+ID4gSGkgSm9obiwNCj4gPg0KPiA+IEFGQUlLLCB0aGVyZSBpcyBubyBzdWNo IHJlc3RyaWN0aW9ucy4gQW55IHF1ZXVlIGNhbiBiZSB1c2VkIGZvcg0KPiBpbnRlcm5hbC9leHRl cm5hbCBjb21tYW5kcy4NCj4gPg0KPiANCj4gb2ssIHVuZGVyc3Rvb2QuDQo+IA0KPiBCVFcsIHRv IHNlZSBldmVuIG1vcmUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQsIGl0IHdvdWxkIGJlIGdvb2Qg dG8gdXNlDQo+IHJlcXVlc3QtPnRhZyBmb3IgY2NiIHRhZywgcmF0aGVyIHRoYXQgdGhlIExMREQg bWFuYWdlIHRoaXMgaXRzZWxmLiBJDQo+IG1lbnRpb25lZCB0aGlzIHBlcnZpb3VzbHkgZWxzZXdo ZXJlLiBEbyB5b3UgcGxhbiB0byBtYWtlIHRoYXQgY2hhbmdlPw0KPiBoaXNpX3NhcyBhbmQgbWVn YXJhaWQgc2FzIGFyZSBleGFtcGxlcyBvZiBkcml2ZXJzIHdobyBkbyB0aGlzLg0KPiANCj4gVGhh bmtzLA0KPiBKb2huDQo+IA0KPiA+IFJlZ2FyZHMsDQo+ID4gVmlzd2FzIEcNCj4gPg0KPiA+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBKb2huIEdhcnJ5IDxqb2huLmdh cnJ5QGh1YXdlaS5jb20+DQo+ID4+IFNlbnQ6IE1vbmRheSwgRmVicnVhcnkgMSwgMjAyMSA0OjUz IFBNDQo+ID4+IFRvOiBWaXN3YXMgRyAtIEkzMDY2NyA8Vmlzd2FzLkdAbWljcm9jaGlwLmNvbT47 IGplamJAbGludXguaWJtLmNvbTsNCj4gPj4gbWFydGluLnBldGVyc2VuQG9yYWNsZS5jb207IGFr c2hhdHplbkBnb29nbGUuY29tOyBSdWtzYXIgRGV2YWRpIC0NCj4gPj4gSTUyMzI3IDxSdWtzYXIu ZGV2YWRpQG1pY3JvY2hpcC5jb20+OyByYWRoYUBnb29nbGUuY29tOw0KPiA+PiBiamFzaG5hbmlA Z29vZ2xlLmNvbTsgdmlzaGFraGF2Y0Bnb29nbGUuY29tOw0KPiA+PiBqaW5wdS53YW5nQGNsb3Vk Lmlvbm9zLmNvbTsgQXNob2trdW1hciBOIC0gWDUzNTM1DQo+ID4+IDxBc2hva2t1bWFyLk5AbWlj cm9jaGlwLmNvbT4NCj4gPj4gQ2M6IGxpbnV4LXNjc2lAdmdlci5rZXJuZWwub3JnOyBsaW51eC1r ZXJuZWxAdmdlci5rZXJuZWwub3JnOw0KPiA+PiBoYXJlQHN1c2UuZGU7IGthc2h5YXAuZGVzYWlA YnJvYWRjb20uY29tOyBtaW5nLmxlaUByZWRoYXQuY29tDQo+ID4+IFN1YmplY3Q6IFJlOiBbUkZD L1JGVCBQQVRDSF0gc2NzaTogcG04MDAxOiBFeHBvc2UgSFcgcXVldWVzIGZvcg0KPiA+PiBwbTgw eHggaHcNCj4gPj4NCj4gPj4gRVhURVJOQUwgRU1BSUw6IERvIG5vdCBjbGljayBsaW5rcyBvciBv cGVuIGF0dGFjaG1lbnRzIHVubGVzcyB5b3UNCj4gPj4ga25vdyB0aGUgY29udGVudCBpcyBzYWZl DQo+ID4+DQo+ID4+IE9uIDMxLzAxLzIwMjEgMDc6MTksIFZpc3dhcy5HQG1pY3JvY2hpcC5jb20g d3JvdGU6DQo+ID4+PiBUaGFua3MgSm9obnMuDQo+ID4+Pg0KPiA+Pj4gV2UgY291bGQgc2VlIGEg a2VybmVsIGNyYXNoIHdoaWxlIHRlc3RpbmcgdGhpcyBwYXRjaC4NCj4gPj4NCj4gPj4gVGhhbmtz IGZvciB0ZXN0aW5nLg0KPiA+Pg0KPiA+Pj4NCj4gPj4+IFsgIDI0Ni43MjQ2MzJdIHNjc2kgaG9z dDEwOiBwbTgweHgNCj4gPj4+IFsgIDI0OC4wMDUyNThdIHNhczogRW50ZXIgc2FzX3Njc2lfcmVj b3Zlcl9ob3N0IGJ1c3k6IDAgZmFpbGVkOiAwIFsNCj4gPj4+IDI0OC4xNjg5NzNdIEJVRzoga2Vy bmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSwgYWRkcmVzczoNCj4gPj4+IDAwMDAwMDAwMDAw MDAxMTAgWyAgMjQ4LjE3NTkyNl0gI1BGOiBzdXBlcnZpc29yIHJlYWQgYWNjZXNzIGluDQo+ID4+ PiBrZXJuZWwgbW9kZSBbICAyNDguMTgxMDY1XSAjUEY6IGVycm9yX2NvZGUoMHgwMDAwKSAtIG5v dC1wcmVzZW50DQo+ID4+PiBwYWdlIFsgMjQ4LjE4NjE5Nl0gUEdEIDAgUDREIDAgWyAgMjQ4LjE4 ODczNl0gT29wczogMDAwMCBbIzFdIFNNUA0KPiA+Pj4gUFRJIFsgIDI0OC4xOTIyMzBdIENQVTog MTAgUElEOiA3NyBDb21tOiBrd29ya2VyL3UyNjoyIEtkdW1wOiBsb2FkZWQNCj4gPj4gVGFpbnRl ZDogRyBTICAgICAgICAgT0UgICAgIDUuMTEuMC1yYzMgIzINCj4gPj4+IFsgIDI0OC4yMDE2MTRd IEhhcmR3YXJlIG5hbWU6IFN1cGVybWljcm8gU3VwZXIgU2VydmVyL1gxMERSaS1MTjQrLA0KPiA+ Pj4gQklPUyAzLjEgMDYvMDgvMjAxOCBbICAyNDguMjA5MjU4XSBXb3JrcXVldWU6IGV2ZW50c191 bmJvdW5kDQo+ID4+PiBhc3luY19ydW5fZW50cnlfZm4gWyAgMjQ4LjIxNDU3MV0gUklQOg0KPiA+ Pj4gMDAxMDpwbTgweHhfY2hpcF9zYXRhX3JlcSsweDdmLzB4NWUwIFtwbTgweHhdIFsgIDI0OC4y MjA0MTNdIENvZGU6DQo+ID4+PiBjMSA3YyBjMSBlOSAwMyA0ZCA4YiBhYyAyNCA4MCAwMSAwMCAw MCA0OCBjNyA0NCAyNCAxNCAwMCAwMCAwMCAwMCA4OQ0KPiA+Pj4gMDQNCj4gPj4+IDI0IDMxIGMw IDQ4IGM3IDg0IDI0IDg4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIGYzIDQ4IGFiIDw0OD4gOGIgYmEg MTANCj4gPj4+IDAxDQo+ID4+PiAwMCAwMCBlOCAzNSAzNSBjNiBlZiBjMSBlOCAxMCA4OSA0NCAy NCAwNCAwZiBiNiA0MyBbICAyNDguMjM5MTU3XSBSU1A6DQo+ID4+PiAwMDE4OmZmZmZiOThkODM0 OTc5ZjAgRUZMQUdTOiAwMDAxMDA0NiBbICAyNDguMjQ0Mzg0XSBSQVg6DQo+ID4+PiAwMDAwMDAw MDAwMDAwMDAwIFJCWDogZmZmZjk1MjNjMzIxYzAwMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDAgWw0K PiA+Pj4gMjQ4LjI1MTUxNl0gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogZmZmZjk1MjQ1MDcy MDA0OCBSREk6DQo+ID4+PiBmZmZmYjk4ZDgzNDk3YTgwIFsgIDI0OC4yNTg2NDFdIFJCUDogZmZm Zjk1MjNjNzQyMDAwMCBSMDg6DQo+ID4+PiAwMDAwMDAwMDAwMDAwMTAwIFIwOTogMDAwMDAwMDAw MDAwMDAwMSBbICAyNDguMjY1NzY0XSBSMTA6DQo+ID4+PiAwMDAwMDAwMDAwMDAwMDAxIFIxMTog ZmZmZjk1MjNjOWU0MDAwMCBSMTI6IGZmZmY5NTIzY2ExYzM2MDAgWw0KPiA+Pj4gMjQ4LjI3Mjg4 N10gUjEzOiBmZmZmOTUyM2M5ZTQwMDAwIFIxNDogZmZmZmI5OGQ4MzQ5N2EwNCBSMTU6DQo+ID4+ IGZmZmY5NTI0NTA3MjAwNDggWyAgMjQ4LjI4MDAxM10gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAw MDApDQo+ID4+IEdTOmZmZmY5NTI3YWZkMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAw MCBbICAyNDguMjg4MDkwXSBDUzoNCj4gPj4gMDAxMA0KPiA+PiBEUzogMDAwMCBFUzogMDAwMCBD UjA6IDAwMDAwMDAwODAwNTAwMzMgWyAgMjQ4LjI5MzgyNl0gQ1IyOg0KPiA+PiAwMDAwMDAwMDAw MDAwMTEwIENSMzogMDAwMDAwMDI5YWMxMDAwMSBDUjQ6IDAwMDAwMDAwMDAxNzA2ZTAgWw0KPiA+ PiAyNDguMzAwOTUyXSBDYWxsIFRyYWNlOg0KPiA+Pg0KPiA+PiBJIHRoaW5rIHRoYXQgdGhlIHBy b2JsZW0gaGVyZSBpcyB0aGF0IGF0YV9xdWV1ZWRfY21kLT5zY21kIGlzIE5VTEwNCj4gPj4gZm9y IHRoZSBhdGEgaW50ZXJuYWwgY29tbWFuZC4NCj4gPj4NCj4gPj4gUGxlYXNlIHRyeSB0aGlzIGZp eDoNCj4gPj4NCj4gPj4gLS0tLT44LS0tLS0NCj4gPj4NCj4gPj4gQEAgLTQ0NTEsNyArNDQ1MSw3 IEBAIHN0YXRpYyBpbnQgcG04MHh4X2NoaXBfc2F0YV9yZXEoc3RydWN0DQo+ID4+IHBtODAwMV9o YmFfaW5mbyAqcG04MDAxX2hhLA0KPiA+PiAgICAgICAgICBzdHJ1Y3Qgc2NzaV9jbW5kICpzY21k ID0gcWMtPnNjc2ljbWQ7DQo+ID4+ICAgICAgICAgIHUzMiB0YWcgPSBjY2ItPmNjYl90YWc7DQo+ ID4+ICAgICAgICAgIGludCByZXQ7DQo+ID4+IC0gICAgICAgdTMyIHFfaW5kZXgsIGJsa190YWc7 DQo+ID4+ICsgICAgICAgdTMyIHFfaW5kZXggPSAwLCBibGtfdGFnOw0KPiA+PiAgICAgICAgICBz dHJ1Y3Qgc2F0YV9zdGFydF9yZXEgc2F0YV9jbWQ7DQo+ID4+ICAgICAgICAgIHUzMiBoZHJfdGFn LCBuY2dfdGFnID0gMDsNCj4gPj4gICAgICAgICAgdTY0IHBoeXNfYWRkciwgc3RhcnRfYWRkciwg ZW5kX2FkZHI7IEBAIC00NDYzLDggKzQ0NjMsMTAgQEANCj4gPj4gc3RhdGljIGludCBwbTgweHhf Y2hpcF9zYXRhX3JlcShzdHJ1Y3QgcG04MDAxX2hiYV9pbmZvICpwbTgwMDFfaGEsDQo+ID4+ICAg ICAgICAgIHUzMiBvcGMgPSBPUENfSU5CX1NBVEFfSE9TVF9PUFNUQVJUOw0KPiA+PiAgICAgICAg ICBtZW1zZXQoJnNhdGFfY21kLCAwLCBzaXplb2Yoc2F0YV9jbWQpKTsNCj4gPj4NCj4gPj4gLSAg ICAgICBibGtfdGFnID0gYmxrX21xX3VuaXF1ZV90YWcoc2NtZC0+cmVxdWVzdCk7DQo+ID4+IC0g ICAgICAgcV9pbmRleCA9IGJsa19tcV91bmlxdWVfdGFnX3RvX2h3cShibGtfdGFnKTsNCj4gPj4g KyAgICAgICBpZiAoc2NtZCkgew0KPiA+PiArICAgICAgICAgICAgICAgYmxrX3RhZyA9IGJsa19t cV91bmlxdWVfdGFnKHNjbWQtPnJlcXVlc3QpOw0KPiA+PiArICAgICAgICAgICAgICAgcV9pbmRl eCA9IGJsa19tcV91bmlxdWVfdGFnX3RvX2h3cShibGtfdGFnKTsNCj4gPj4gKyAgICAgICB9DQo+ ID4+ICAgICAgICAgIGNpcmN1bGFyUSA9ICZwbTgwMDFfaGEtPmluYm5kX3FfdGJsW3FfaW5kZXhd Ow0KPiA+Pg0KPiA+PiAtLS0tODwtLS0tLQ0KPiA+Pg0KPiA+PiBZb3UgbWF5IG5lZWQgc2ltaWxh ciBmb3Igb3RoZXIgZGlzcGF0Y2ggcGF0aHMgYWxzbyAtIGxpa2Ugc21wIC0gYnV0IEkNCj4gPj4g ZG9uJ3QgdGhpbmsgdGhhdCB5b3Ugd2lsbC4NCj4gPj4NCj4gPj4gQlRXLCBkbyB5b3Uga25vdyBp ZiB0aGVyZSBpcyBhY3R1YWxseSBhIGxpbWl0YXRpb24gb24gdGhlIEhXIHRoYXQNCj4gPj4gcXVl dWUNCj4gPj4gIzAgaXMgdXNlZCBmb3IgYWxsICJpbnRlcm5hbCIgSU8gKG1waSksIGxpa2UgcGh5 IGNvbnRyb2wgb3BlcmF0aW9uPyBKYWNrPw0KPiA+Pg0KPiA+PiBUaGFua3MsDQo+ID4+IEpvaG4N Cj4gPj4NCj4gPj4NCj4gPj4+IFsgIDI0OC4zMDM0MDJdICBwbTgwMDFfdGFza19leGVjLmlzcmEu OSsweDJhNC8weDQ2MCBbcG04MHh4XSBbDQo+ID4+PiAyNDguMzA4ODA1XSAgc2FzX2F0YV9xY19p c3N1ZSsweDE4Ny8weDIyMCBbbGlic2FzXSBbICAyNDguMzEzNjA3XQ0KPiA+Pj4gYXRhX3FjX2lz c3VlKzB4MTA3LzB4MWUwIFtsaWJhdGFdIFsgIDI0OC4zMTgwNjldDQo+ID4+PiBhdGFfZXhlY19p bnRlcm5hbF9zZysweDJjOC8weDU4MCBbbGliYXRhXSBbICAyNDguMzIzMjE3XQ0KPiA+Pj4gYXRh X2V4ZWNfaW50ZXJuYWwrMHg1Zi8weDkwIFtsaWJhdGFdIFsgIDI0OC4zMjc5MzFdDQo+ID4+PiBh dGFfZGV2X3JlYWRfaWQrMHgzMDYvMHg0ODAgW2xpYmF0YV0gWyAgMjQ4LjMzMjY0N10NCj4gPj4+ IGF0YV9laF9yZWNvdmVyKzB4N2VhLzB4MTJhMCBbbGliYXRhXSBbICAyNDguMzM3MzY5XSAgPw0K PiA+Pj4gdnByaW50a19lbWl0KzB4MTE0LzB4MjIwIFsgIDI0OC4zNDEyMDhdICA/DQo+ID4+PiBz YXNfYXRhX3NjaGVkX2VoKzB4NjAvMHg2MCBbbGlic2FzXSBbICAyNDguMzQ2MDAyXSAgPw0KPiA+ Pj4gc2FzX2F0YV9wcmVyZXNldCsweDUwLzB4NTAgW2xpYnNhc10gWyAyNDguMzUwNzk1XSAgPyBw cmludGsrMHg1OC8weDZmIFsNCj4gMjQ4LjM1Mzk0MV0gID8NCj4gPj4+IHNhc19hdGFfc2NoZWRf ZWgrMHg2MC8weDYwIFtsaWJzYXNdIFsgIDI0OC4zNTg3MzNdICA/DQo+ID4+PiBzYXNfYXRhX3By ZXJlc2V0KzB4NTAvMHg1MCBbbGlic2FzXSBbICAyNDguMzYzNTI1XQ0KPiA+Pj4gYXRhX2RvX2Vo KzB4NDAvMHhiMCBbbGliYXRhXSBbICAyNDguMzY3NTU2XQ0KPiA+Pj4gYXRhX3Njc2lfcG9ydF9l cnJvcl9oYW5kbGVyKzB4MzU0LzB4NzcwIFtsaWJhdGFdIFsgIDI0OC4zNzMzMThdDQo+ID4+PiBh c3luY19zYXNfYXRhX2VoKzB4NDQvMHg3YiBbbGlic2FzXSBbICAyNDguMzc3OTM4XQ0KPiA+Pj4g YXN5bmNfcnVuX2VudHJ5X2ZuKzB4MzkvMHgxNjAgWyAgMjQ4LjM4MjA0MF0NCj4gPj4+IHByb2Nl c3Nfb25lX3dvcmsrMHgxY2IvMHgzNjAgWyAgMjQ4LjM4NjA1MF0NCj4gPj4gd29ya2VyX3RocmVh ZCsweDMwLzB4MzcwDQo+ID4+PiBbICAyNDguMzg5NzA2XSAgPyBwcm9jZXNzZV93b3JrKzB4MzYw LzB4MzYwIFsgIDI0OC4zOTM4ODRdDQo+ID4+PiBrdGhyZWFkKzB4MTE2LzB4MTMwIFsgIDI0OC4z OTcxMTZdICA/IGt0aHJlYWRfcGFyaysweDgwLzB4ODAgWw0KPiA+Pj4gMjQ4LjQwMDc3M10gIHJl dF9mcm9tX2ZvcmsrMHgyMi8weDMwIFsgIDI0OC40MDQzNTVdIE1vZHVsZXMgbGlua2VkIGluOg0K PiA+Pj4gcG04MHh4KE9FKSBsaWJzYXMgc2NzaV90cmFuc3BvcnRfc2FzIHh0X0NIRUNLU1VNIHh0 X01BU1FVRVJBREUNCj4gPj4+IHh0X2Nvbm50cmFjayBpcHRfUkVKRUNUIG5mX3JlamVjdF9pcHY0 IG5mdF9jb21wYXQgbmZ0X2NvdW50ZXINCj4gPj4gbmZ0X2NoYWluX25hdCBuZl9uYXQgbmZfY29u bnRyYWNrIG5mX2RlZnJhZ19pcHY2IG5mX2RlZnJhZ19pcHY0DQo+ID4+IG5mX3RhYmxlcyBuZm5l dGxpbmsgdHVuIGJyaWRnZSBzdHAgbGxjIHJma2lsbCBzdW5ycGMgdmZhdCBmYXQNCj4gPj4gaW50 ZWxfcmFwbF9tc3IgaW50ZWxfcmFwbF9jb21tb24gc2JfZWRhYyB4ODZfcGtnX3RlbXBfdGhlcm1h bA0KPiA+PiBpbnRlbF9wb3dlcmNsYW1wIGNvcmV0ZW1wIGt2bV9pbnRlbCBrdm0gaXJxYnlwYXNz IGpveWRldg0KPiA+PiBjcmN0MTBkaWZfcGNsbXVsIGNyYzMyX3BjbG11bCBnaGFzaF9jbG11bG5p X2ludGVsIGlwbWlfc3NpZiBpVENPX3dkdA0KPiA+PiBpVENPX3ZlbmRvcl9zdXBwb3J0IG1laV9t ZSByYXBsDQo+ID4+IGkyY19pODAxIGludGVsX2NzdGF0ZSBtZWkgYWNwaV9pcG1pIGxwY19pY2gg aW50ZWxfdW5jb3JlIHBjc3Brcg0KPiA+PiBpcG1pX3NpIGkyY19zbWJ1cyBpcG1pX2RldmludGYg aXBtaV9tc2doYW5kbGVyIGFjcGlfcG93ZXJfbWV0ZXINCj4gPj4gYWNwaV9wYWQgaW9hdGRtYSBp cF90YWJsZXMgeGZzIGxpYmNyYzMyYyBzcl9tb2Qgc2RfbW9kIGNkcm9tIHQxMF9waQ0KPiA+PiBz ZyBhc3QgZHJtX3ZyYW1faGVscGVyIGRybV9rbXNfaGVscGVyIHN5c2NvcHlhcmVhIGlnYiBzeXNm aWxscmVjdA0KPiA+PiBzeXNpbWdibHQgZmJfc3lzX2ZvcHMgZHJtX3R0bV9oZWxwZXIgdHRtIGFo Y2kgbGliYWhjaSBkY2EgZHJtDQo+ID4+IGNyYzMyY19pbnRlbCBsaWJhdGEgaTJjX2FsZ29fYml0 IHdtaSBkbV9taXJyb3IgZG1fcmVnaW9uX2hhc2ggZG1fbG9nDQo+ID4+IGRtX21vZCBmdXNlIFsg MjQ4LjQ4MzQzMV0gQ1IyOiAwMDAwMDAwMDAwMDAwMTEwDQo+ID4+PiBbICAgIDAuMDAwMDAwXSBM aW51eCB2ZXJzaW9uIDUuMTEuMC1yYzMgKHJvb3RAbG9jYWxob3N0LmxvY2FsZG9tYWluKSAoZ2Nj DQo+ID4+IChHQ0MpIDguMy4xIDIwMTkxMTIxIChSZWQgSGF0IDguMy4xLTUpLCBHTlUgbGQgdmVy c2lvbiAyLjMwLTc5LmVsOCkNCj4gPj4gIzIgU01QIE1vbiBKYW4gMjUgMjM6NTY6MTIgSVNUIDIw MjENCj4gPj4+IFsgICAgMC4wMDAwMDBdIENvbW1hbmQgbGluZTogZWxmY29yZWhyPTB4NDUwMDAw MDANCj4gPj4gQk9PVF9JTUFHRT0oaGQxNCxncHQyKS92bWxpbnV6LTUuMTEuMC1yYzMgcm8NCj4g Pj4gcmVzdW1lPS9kZXYvbWFwcGVyL3JoZWwtc3dhcCByaGdiIGNvbnNvbGU9dHR5UzEsMTE1MjAw IGxvZ2xldmVsPTcNCj4gPj4gaXJxcG9sbCBucl9jcHVzPTEgcmVzZXRfZGV2aWNlcyBjZ3JvdXBf ZGlzYWJsZT1tZW1vcnkgbWNlPW9mZg0KPiA+PiBudW1hPW9mZg0KPiA+PiB1ZGV2LmNoaWxkcmVu LW1heD0yIHBhbmljPTEwIHJvb3RmbGFncz1ub2ZhaWwgYWNwaV9ub19tZW1ob3RwbHVnDQo+ID4+ IHRyYW5zcGFyZW50X2h1Z2VwYWdlPW5ldmVyIG5va2FzbHIgbm92bWNvcmVkZCBoZXN0X2Rpc2Fi bGUNCj4gPj4gZGlzYWJsZV9jcHVfYXBpY2lkPTANCj4gPj4+DQo+ID4+Pg0KPiA+Pj4+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogSm9obiBHYXJyeSA8am9obi5nYXJy eUBodWF3ZWkuY29tPg0KPiA+Pj4+IFNlbnQ6IFR1ZXNkYXksIEphbnVhcnkgNSwgMjAyMSA0OjQ3 IFBNDQo+ID4+Pj4gVG86IGplamJAbGludXguaWJtLmNvbTsgbWFydGluLnBldGVyc2VuQG9yYWNs ZS5jb207DQo+ID4+Pj4gYWtzaGF0emVuQGdvb2dsZS5jb207IFZpc3dhcyBHIC0gSTMwNjY3DQo+ IDxWaXN3YXMuR0BtaWNyb2NoaXAuY29tPjsNCj4gPj4+PiBSdWtzYXIgRGV2YWRpIC0gSTUyMzI3 IDxSdWtzYXIuZGV2YWRpQG1pY3JvY2hpcC5jb20+Ow0KPiA+Pj4+IHJhZGhhQGdvb2dsZS5jb207 IGJqYXNobmFuaUBnb29nbGUuY29tOyB2aXNoYWtoYXZjQGdvb2dsZS5jb207DQo+ID4+Pj4gamlu cHUud2FuZ0BjbG91ZC5pb25vcy5jb207IEFzaG9ra3VtYXIgTiAtIFg1MzUzNQ0KPiA+Pj4+IDxB c2hva2t1bWFyLk5AbWljcm9jaGlwLmNvbT4NCj4gPj4+PiBDYzogbGludXgtc2NzaUB2Z2VyLmtl cm5lbC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7DQo+ID4+Pj4gaGFyZUBzdXNl LmRlOyBrYXNoeWFwLmRlc2FpQGJyb2FkY29tLmNvbTsgbWluZy5sZWlAcmVkaGF0LmNvbTsNCj4g Pj4gSm9obg0KPiA+Pj4+IEdhcnJ5IDxqb2huLmdhcnJ5QGh1YXdlaS5jb20+DQo+ID4+Pj4gU3Vi amVjdDogW1JGQy9SRlQgUEFUQ0hdIHNjc2k6IHBtODAwMTogRXhwb3NlIEhXIHF1ZXVlcyBmb3Ig cG04MHh4DQo+ID4+IGh3DQo+ID4+Pj4NCj4gPj4+PiBFWFRFUk5BTCBFTUFJTDogRG8gbm90IGNs aWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdQ0KPiA+Pj4+IGtub3cgdGhl IGNvbnRlbnQgaXMgc2FmZQ0KPiA+Pj4+DQo+ID4+Pj4gSW4gY29tbWl0IDA1YzZjMDI5YTQ0ZCAo InNjc2k6IHBtODB4eDogSW5jcmVhc2UgbnVtYmVyIG9mIHN1cHBvcnRlZA0KPiA+Pj4+IHF1ZXVl cyIpLCBzdXBwb3J0IGZvciA4MHh4IGNoaXAgd2FzIGltcHJvdmVkIGJ5IGVuYWJsaW5nIG11bHRp cGxlDQo+ID4+Pj4gSFcgcXVldWVzLg0KPiA+Pj4+DQo+ID4+Pj4gSW4gdGhpcywgbGlrZSBvdGhl ciBTQ1NJIE1RIEhCQSBkcml2ZXJzLCB0aGUgSFcgcXVldWVzIHdlcmUgbm90DQo+ID4+Pj4gZXhw b3NlZCB0byB1cHBlciBsYXllciwgYW5kIGluc3RlYWQgdGhlIGRyaXZlciBtYW5hZ2VkIHRoZSBx dWV1ZXMNCj4gPj4gaW50ZXJuYWxseS4NCj4gPj4+Pg0KPiA+Pj4+IEhvd2V2ZXIsIHRoaXMgbWFu YWdlbWVudCBkdXBsaWNhdGVzIGJsay1tcSBjb2RlLiBJbiBhZGRpdGlvbiwgdGhlDQo+ID4+Pj4g SFcgcXVldWUgbWFuYWdlbWVudCBpcyBzdWItb3B0aW1hbCBmb3IgYSBzeXN0ZW0gd2hlcmUgdGhl IG51bWJlcg0KPiBvZg0KPiA+PiBDUFVzDQo+ID4+Pj4gZXhjZWVkcyB0aGUgSFcgcXVldWVzIC0g dGhpcyBpcyBiZWNhdXNlIHF1ZXVlcyBhcmUgc2VsZWN0ZWQgaW4gYQ0KPiA+Pj4+IHJvdW5kLSBy b2JpbiBmYXNoaW9uLCB3aGVuIGl0IHdvdWxkIGJlIGJldHRlciB0byBtYWtlIGFkamFjZW50IENQ VXMNCj4gPj4+PiBzdWJtaXQgb24gdGhlIHNhbWUgcXVldWUuIEFuZCBmaW5hbGx5LCB0aGUgYWZm aW5pdHkgb2YgdGhlDQo+ID4+Pj4gY29tcGxldGlvbiBxdWV1ZSBpbnRlcnJ1cHRzIGlzIG5vdCBz ZXQgdG8gbWlycm9yIHRoZSBjcHU8LT5IUSBxdWV1ZQ0KPiA+Pj4+IG1hcHBpbmcsIHdoaWNoDQo+ ID4+IGlzIHN1Ym9wdGltYWwuDQo+ID4+Pj4NCj4gPj4+PiBBcyBzdWNoLCBmb3Igd2hlbiBNU0lY IGlzIHN1cHBvcnRlZCwgZXhwb3NlIEhXIHF1ZXVlcyB0byB1cHBlcg0KPiBsYXllci4NCj4gPj4+ PiBGbGFnIFBDSV9JUlFfQUZGSU5JVFkgaXMgc2V0IGZvciBhbGxvY2F0aW5nIHRoZSBNU0lYIHZl Y3RvcnMgdG8NCj4gPj4+PiBhdXRvbWF0aWNhbGx5IGFzc2lnbiBhZmZpbml0eSBmb3IgdGhlIGNv bXBsZXRpb24gcXVldWUgaW50ZXJydXB0cy4NCj4gPj4+Pg0KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6 IEpvaG4gR2FycnkgPGpvaG4uZ2FycnlAaHVhd2VpLmNvbT4NCj4gPj4+Pg0KPiA+Pj4+IC0tLQ0K PiA+Pj4+IEkgc2VudCBhcyBhbiBSRkMvUkZUIGFzIEkgaGF2ZSBubyBIVyB0byB0ZXN0LiBJbiBh ZGRpdGlvbiwgc2luY2UgSFcNCj4gPj4+PiBxdWV1ZQ0KPiA+Pj4+ICMwIGlzIHVzZWQgYWx3YXlz IGZvciBpbnRlcm5hbCBjb21tYW5kcyAobGlrZSBpbg0KPiA+Pj4+IHNlbmRfdGFza19hYm9ydCgp KSwgaWYgYWxsIENQVXMgYXNzb2NpYXRlZCB3aXRoIEhXIHF1ZXVlICMwIGFyZQ0KPiA+Pj4+IG9m ZmxpbmVkLCB0aGUgaW50ZXJydXB0IGZvciB0aGF0IHF1ZXVlIHdpbGwgYmUgc2h1dGRvd24sIGFu ZCBubw0KPiA+Pj4+IENQVXMgd291bGQgYmUgYXZhaWxhYmxlIHRvIHNlcnZpY2UgYW55IGludGVy bmFsIGNvbW1hbmRzDQo+ID4+Pj4gY29tcGxldGlvbi4gVG8gc29sdmUgdGhhdCwgd2UgbmVlZCBb MF0gbWVyZ2VkIGZpcnN0IGFuZCBzd2l0Y2ggb3Zlcg0KPiA+Pj4+IHRvIHVzZSB0aGUgbmV3IEFQ SS4gQnV0IHdlIGNhbiBzdGlsbCB0ZXN0DQo+ID4+IHBlcmZvcm1hbmNlIGluIHRoZSBtZWFudGlt ZS4NCj4gPj4+Pg0KPiA+Pj4+IEkgYXNzdW1lIHNvbWVvbmUgZWxzZSBpcyBtYWtpbmcgdGhlIGNo YW5nZSB0byB1c2UgdGhlIHJlcXVlc3QgdGFnDQo+ID4+Pj4gZm9yIElPIHRhZyBtYW5hZ2VtZW50 Lg0KPiA+Pj4+DQo+ID4+Pj4gWzBdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LXNjc2kv NDdiYTA0NWUtYTQ5MC0xOThiLTE3NDQtDQo+ID4+Pj4gNTI5Zjk3MTkyZDNiQHN1c2UuZGUvDQo+ ID4+Pj4NCj4gPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3BtODAwMS9wbTgwMDFfaW5p dC5jDQo+ID4+Pj4gYi9kcml2ZXJzL3Njc2kvcG04MDAxL3BtODAwMV9pbml0LmMNCj4gPj4+PiBp bmRleCBlZTJkZTE3N2QwZDAuLjczNDc5ODAzYTIzZSAxMDA2NDQNCj4gPj4+PiAtLS0gYS9kcml2 ZXJzL3Njc2kvcG04MDAxL3BtODAwMV9pbml0LmMNCj4gPj4+PiArKysgYi9kcml2ZXJzL3Njc2kv cG04MDAxL3BtODAwMV9pbml0LmMNCj4gPj4+PiBAQCAtODEsNiArODEsMTUgQEAgTElTVF9IRUFE KGhiYV9saXN0KTsNCj4gPj4+Pg0KPiA+Pj4+ICAgIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpw bTgwMDFfd3E7DQo+ID4+Pj4NCj4gPj4+PiArc3RhdGljIGludCBwbTgwMDFfbWFwX3F1ZXVlcyhz dHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCkgew0KPiA+Pj4+ICsgICAgICAgc3RydWN0IHNhc19oYV9z dHJ1Y3QgKnNoYSA9IFNIT1NUX1RPX1NBU19IQShzaG9zdCk7DQo+ID4+Pj4gKyAgICAgICBzdHJ1 Y3QgcG04MDAxX2hiYV9pbmZvICpwbTgwMDFfaGEgPSBzaGEtPmxsZGRfaGE7DQo+ID4+Pj4gKyAg ICAgICBzdHJ1Y3QgYmxrX21xX3F1ZXVlX21hcCAqcW1hcCA9DQo+ID4+Pj4gKyZzaG9zdC0+dGFn X3NldC5tYXBbSENUWF9UWVBFX0RFRkFVTFRdOw0KPiA+Pj4+ICsNCj4gPj4+PiArICAgICAgIHJl dHVybiBibGtfbXFfcGNpX21hcF9xdWV1ZXMocW1hcCwgcG04MDAxX2hhLT5wZGV2LCAwKTsgfQ0K PiA+Pj4+ICsNCj4gPj4+PiAgICAvKg0KPiA+Pj4+ICAgICAqIFRoZSBtYWluIHN0cnVjdHVyZSB3 aGljaCBMTEREIG11c3QgcmVnaXN0ZXIgZm9yIHNjc2kgY29yZS4NCj4gPj4+PiAgICAgKi8NCj4g Pj4+PiBAQCAtMTA2LDYgKzExNSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2NzaV9ob3N0X3RlbXBsYXRl IHBtODAwMV9zaHQgPSB7DQo+ID4+Pj4gI2lmZGVmIENPTkZJR19DT01QQVQNCj4gPj4+PiAgICAg ICAgICAgLmNvbXBhdF9pb2N0bCAgICAgICAgICAgPSBzYXNfaW9jdGwsDQo+ID4+Pj4gICAgI2Vu ZGlmDQo+ID4+Pj4gKyAgICAgICAubWFwX3F1ZXVlcyAgICAgICAgICAgICAgICAgICAgID0gcG04 MDAxX21hcF9xdWV1ZXMsDQo+ID4+Pj4gICAgICAgICAgIC5zaG9zdF9hdHRycyAgICAgICAgICAg ID0gcG04MDAxX2hvc3RfYXR0cnMsDQo+ID4+Pj4gICAgICAgICAgIC50cmFja19xdWV1ZV9kZXB0 aCAgICAgID0gMSwNCj4gPj4+PiAgICB9Ow0KPiA+Pj4+IEBAIC05MjMsOSArOTMzLDggQEAgc3Rh dGljIGludA0KPiBwbTgwMDFfY29uZmlndXJlX3BoeV9zZXR0aW5ncyhzdHJ1Y3QNCj4gPj4+PiBw bTgwMDFfaGJhX2luZm8gKnBtODAwMV9oYSkgIHN0YXRpYyB1MzIgcG04MDAxX3NldHVwX21zaXgo c3RydWN0DQo+ID4+Pj4gcG04MDAxX2hiYV9pbmZvICpwbTgwMDFfaGEpICB7DQo+ID4+Pj4gICAg ICAgICAgIHUzMiBudW1iZXJfb2ZfaW50cjsNCj4gPj4+PiAtICAgICAgIGludCByYywgY3B1X29u bGluZV9jb3VudDsNCj4gPj4+PiArICAgICAgIGludCByYzsNCj4gPj4+PiAgICAgICAgICAgdW5z aWduZWQgaW50IGFsbG9jYXRlZF9pcnFfdmVjdG9yczsNCj4gPj4+PiAtDQo+ID4+Pj4gICAgICAg ICAgIC8qIFNQQ3YgY29udHJvbGxlcnMgc3VwcG9ydHMgNjQgbXNpLXggKi8NCj4gPj4+PiAgICAg ICAgICAgaWYgKHBtODAwMV9oYS0+Y2hpcF9pZCA9PSBjaGlwXzgwMDEpIHsNCj4gPj4+PiAgICAg ICAgICAgICAgICAgICBudW1iZXJfb2ZfaW50ciA9IDE7IEBAIC05MzMsMTYgKzk0MiwxNSBAQCBz dGF0aWMNCj4gPj4+PiB1MzIgcG04MDAxX3NldHVwX21zaXgoc3RydWN0IHBtODAwMV9oYmFfaW5m byAqcG04MDAxX2hhKQ0KPiA+Pj4+ICAgICAgICAgICAgICAgICAgIG51bWJlcl9vZl9pbnRyID0g UE04MDAxX01BWF9NU0lYX1ZFQzsNCj4gPj4+PiAgICAgICAgICAgfQ0KPiA+Pj4+DQo+ID4+Pj4g LSAgICAgICBjcHVfb25saW5lX2NvdW50ID0gbnVtX29ubGluZV9jcHVzKCk7DQo+ID4+Pj4gLSAg ICAgICBudW1iZXJfb2ZfaW50ciA9IG1pbl90KGludCwgY3B1X29ubGluZV9jb3VudCwgbnVtYmVy X29mX2ludHIpOw0KPiA+Pj4+IC0gICAgICAgcmMgPSBwY2lfYWxsb2NfaXJxX3ZlY3RvcnMocG04 MDAxX2hhLT5wZGV2LCBudW1iZXJfb2ZfaW50ciwNCj4gPj4+PiAtICAgICAgICAgICAgICAgICAg ICAgICBudW1iZXJfb2ZfaW50ciwgUENJX0lSUV9NU0lYKTsNCj4gPj4+PiArICAgICAgIC8qIFVz ZSBkZWZhdWx0IGFmZmluaXR5IGRlc2NyaXB0b3IsIHdoaWNoIHNwcmVhZHMgKmFsbCogdmVjdG9y cyAqLw0KPiA+Pj4+ICsgICAgICAgcmMgPSBwY2lfYWxsb2NfaXJxX3ZlY3RvcnMocG04MDAxX2hh LT5wZGV2LCAxLA0KPiA+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIG51bWJlcl9vZl9pbnRy LCBQQ0lfSVJRX01TSVggfA0KPiA+Pj4+ICsgUENJX0lSUV9BRkZJTklUWSk7DQo+ID4+Pj4gICAg ICAgICAgIGFsbG9jYXRlZF9pcnFfdmVjdG9ycyA9IHJjOw0KPiA+Pj4+ICAgICAgICAgICBpZiAo cmMgPCAwKQ0KPiA+Pj4+ICAgICAgICAgICAgICAgICAgIHJldHVybiByYzsNCj4gPj4+Pg0KPiA+ Pj4+ICAgICAgICAgICAvKiBBc3NpZ25zIHRoZSBudW1iZXIgb2YgaW50ZXJydXB0cyAqLw0KPiA+ Pj4+IC0gICAgICAgbnVtYmVyX29mX2ludHIgPSBtaW5fdChpbnQsIGFsbG9jYXRlZF9pcnFfdmVj dG9ycywNCj4gbnVtYmVyX29mX2ludHIpOw0KPiA+Pj4+ICsgICAgICAgbnVtYmVyX29mX2ludHIg PSBhbGxvY2F0ZWRfaXJxX3ZlY3RvcnM7DQo+ID4+Pj4gICAgICAgICAgIHBtODAwMV9oYS0+bnVt YmVyX29mX2ludHIgPSBudW1iZXJfb2ZfaW50cjsNCj4gPj4+Pg0KPiA+Pj4+ICAgICAgICAgICAv KiBNYXhpbXVtIHF1ZXVlIG51bWJlciB1cGRhdGluZyBpbiBIQkEgc3RydWN0dXJlICovIEBADQo+ ID4+Pj4gLTExMTMsNg0KPiA+Pj4+ICsxMTIxLDE2IEBAIHN0YXRpYyBpbnQgcG04MDAxX3BjaV9w cm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4gPj4+PiAgICAgICAgICAgaWYgKHJjKQ0KPiA+ Pj4+ICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX291dF9lbmFibGU7DQo+ID4+Pj4NCj4gPj4+ PiArICAgICAgIGlmIChwbTgwMDFfaGEtPm51bWJlcl9vZl9pbnRyID4gMSkgew0KPiA+Pj4+ICsg ICAgICAgICAgICAgICBzaG9zdC0+bnJfaHdfcXVldWVzID0gcG04MDAxX2hhLT5udW1iZXJfb2Zf aW50cjsNCj4gPj4+PiArICAgICAgICAgICAgICAgLyoNCj4gPj4+PiArICAgICAgICAgICAgICAg ICogRm9yIG5vdywgZW5zdXJlIHdlJ3JlIG5vdCBzZW50IHRvbyBtYW55IGNvbW1hbmRzDQo+ID4+ Pj4gKyBieQ0KPiA+PiBzZXR0aW5nDQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAqIGhvc3RfdGFn c2V0LiBUaGlzIGlzIGFsc28gcmVxdWlyZWQgaWYgd2Ugc3RhcnQgdXNpbmcgcmVxdWVzdA0KPiA+ Pj4+ICsgICAgICAgICAgICAgICAgKiB0YWcuDQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAqLw0K PiA+Pj4+ICsgICAgICAgICAgICAgICBzaG9zdC0+aG9zdF90YWdzZXQgPSAxOw0KPiA+Pj4+ICsg ICAgICAgfQ0KPiA+Pj4+ICsNCj4gPj4+PiAgICAgICAgICAgcmMgPSBzY3NpX2FkZF9ob3N0KHNo b3N0LCAmcGRldi0+ZGV2KTsNCj4gPj4+PiAgICAgICAgICAgaWYgKHJjKQ0KPiA+Pj4+ICAgICAg ICAgICAgICAgICAgIGdvdG8gZXJyX291dF9oYV9mcmVlOyBkaWZmIC0tZ2l0DQo+ID4+Pj4gYS9k cml2ZXJzL3Njc2kvcG04MDAxL3BtODAwMV9zYXMuaA0KPiA+Pj4+IGIvZHJpdmVycy9zY3NpL3Bt ODAwMS9wbTgwMDFfc2FzLmgNCj4gPj4+PiBpbmRleCBmMmM4Y2JhZDM4NTMuLjc0YmM2ZmVkNjkz ZSAxMDA2NDQNCj4gPj4+PiAtLS0gYS9kcml2ZXJzL3Njc2kvcG04MDAxL3BtODAwMV9zYXMuaA0K PiA+Pj4+ICsrKyBiL2RyaXZlcnMvc2NzaS9wbTgwMDEvcG04MDAxX3Nhcy5oDQo+ID4+Pj4gQEAg LTU1LDYgKzU1LDggQEANCj4gPj4+PiAgICAjaW5jbHVkZSA8c2NzaS9zY3NpX3RjcS5oPg0KPiA+ Pj4+ICAgICNpbmNsdWRlIDxzY3NpL3Nhc19hdGEuaD4NCj4gPj4+PiAgICAjaW5jbHVkZSA8bGlu dXgvYXRvbWljLmg+DQo+ID4+Pj4gKyNpbmNsdWRlIDxsaW51eC9ibGstbXEuaD4NCj4gPj4+PiAr I2luY2x1ZGUgPGxpbnV4L2Jsay1tcS1wY2kuaD4NCj4gPj4+PiAgICAjaW5jbHVkZSAicG04MDAx X2RlZnMuaCINCj4gPj4+Pg0KPiA+Pj4+ICAgICNkZWZpbmUgRFJWX05BTUUgICAgICAgICAgICAg ICAicG04MHh4Ig0KPiA+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcG04MDAxL3BtODB4 eF9od2kuYw0KPiA+Pj4+IGIvZHJpdmVycy9zY3NpL3BtODAwMS9wbTgweHhfaHdpLmMNCj4gPj4+ PiBpbmRleCA2NzcyYjA5MjRkYWMuLjMxZDY1Y2U5MWU3ZCAxMDA2NDQNCj4gPj4+PiAtLS0gYS9k cml2ZXJzL3Njc2kvcG04MDAxL3BtODB4eF9od2kuYw0KPiA+Pj4+ICsrKyBiL2RyaXZlcnMvc2Nz aS9wbTgwMDEvcG04MHh4X2h3aS5jDQo+ID4+Pj4gQEAgLTQyOTksMTIgKzQyOTksMTMgQEAgc3Rh dGljIGludCBwbTgweHhfY2hpcF9zc3BfaW9fcmVxKHN0cnVjdA0KPiA+Pj4+IHBtODAwMV9oYmFf aW5mbyAqcG04MDAxX2hhLA0KPiA+Pj4+ICAgICAgICAgICBzdHJ1Y3QgZG9tYWluX2RldmljZSAq ZGV2ID0gdGFzay0+ZGV2Ow0KPiA+Pj4+ICAgICAgICAgICBzdHJ1Y3QgcG04MDAxX2RldmljZSAq cG04MDAxX2RldiA9IGRldi0+bGxkZF9kZXY7DQo+ID4+Pj4gICAgICAgICAgIHN0cnVjdCBzc3Bf aW5pX2lvX3N0YXJ0X3JlcSBzc3BfY21kOw0KPiA+Pj4+ICsgICAgICAgc3RydWN0IHNjc2lfY21u ZCAqc2NtZCA9IHRhc2stPnVsZGRfdGFzazsNCj4gPj4+PiAgICAgICAgICAgdTMyIHRhZyA9IGNj Yi0+Y2NiX3RhZzsNCj4gPj4+PiAgICAgICAgICAgaW50IHJldDsNCj4gPj4+PiAgICAgICAgICAg dTY0IHBoeXNfYWRkciwgc3RhcnRfYWRkciwgZW5kX2FkZHI7DQo+ID4+Pj4gICAgICAgICAgIHUz MiBlbmRfYWRkcl9oaWdoLCBlbmRfYWRkcl9sb3c7DQo+ID4+Pj4gICAgICAgICAgIHN0cnVjdCBp bmJvdW5kX3F1ZXVlX3RhYmxlICpjaXJjdWxhclE7DQo+ID4+Pj4gLSAgICAgICB1MzIgcV9pbmRl eCwgY3B1X2lkOw0KPiA+Pj4+ICsgICAgICAgdTMyIGJsa190YWcsIHFfaW5kZXg7DQo+ID4+Pj4g ICAgICAgICAgIHUzMiBvcGMgPSBPUENfSU5CX1NTUElOSUlPU1RBUlQ7DQo+ID4+Pj4gICAgICAg ICAgIG1lbXNldCgmc3NwX2NtZCwgMCwgc2l6ZW9mKHNzcF9jbWQpKTsNCj4gPj4+PiAgICAgICAg ICAgbWVtY3B5KHNzcF9jbWQuc3NwX2l1Lmx1biwgdGFzay0+c3NwX3Rhc2suTFVOLCA4KTsgQEAN Cj4gPj4+PiAtNDMyMyw4DQo+ID4+Pj4gKzQzMjQsOCBAQCBzdGF0aWMgaW50IHBtODB4eF9jaGlw X3NzcF9pb19yZXEoc3RydWN0DQo+IHBtODAwMV9oYmFfaW5mbw0KPiA+Pj4+ICpwbTgwMDFfaGEs DQo+ID4+Pj4gICAgICAgICAgIHNzcF9jbWQuc3NwX2l1LmVmYl9wcmlvX2F0dHIgfD0gKHRhc2st PnNzcF90YXNrLnRhc2tfYXR0ciAmIDcpOw0KPiA+Pj4+ICAgICAgICAgICBtZW1jcHkoc3NwX2Nt ZC5zc3BfaXUuY2RiLCB0YXNrLT5zc3BfdGFzay5jbWQtPmNtbmQsDQo+ID4+Pj4gICAgICAgICAg ICAgICAgICAgICAgICAgIHRhc2stPnNzcF90YXNrLmNtZC0+Y21kX2xlbik7DQo+ID4+Pj4gLSAg ICAgICBjcHVfaWQgPSBzbXBfcHJvY2Vzc29yX2lkKCk7DQo+ID4+Pj4gLSAgICAgICBxX2luZGV4 ID0gKHUzMikgKGNwdV9pZCkgJSAocG04MDAxX2hhLT5tYXhfcV9udW0pOw0KPiA+Pj4+ICsgICAg ICAgYmxrX3RhZyA9IGJsa19tcV91bmlxdWVfdGFnKHNjbWQtPnJlcXVlc3QpOw0KPiA+Pj4+ICsg ICAgICAgcV9pbmRleCA9IGJsa19tcV91bmlxdWVfdGFnX3RvX2h3cShibGtfdGFnKTsNCj4gPj4+ PiAgICAgICAgICAgY2lyY3VsYXJRID0gJnBtODAwMV9oYS0+aW5ibmRfcV90YmxbcV9pbmRleF07 DQo+ID4+Pj4NCj4gPj4+PiAgICAgICAgICAgLyogQ2hlY2sgaWYgZW5jcnlwdGlvbiBpcyBzZXQg Ki8gQEAgLTQ0NDYsOSArNDQ0NywxMSBAQA0KPiA+Pj4+IHN0YXRpYyBpbnQgcG04MHh4X2NoaXBf c2F0YV9yZXEoc3RydWN0IHBtODAwMV9oYmFfaW5mbw0KPiAqcG04MDAxX2hhLA0KPiA+Pj4+ICAg ICAgICAgICBzdHJ1Y3Qgc2FzX3Rhc2sgKnRhc2sgPSBjY2ItPnRhc2s7DQo+ID4+Pj4gICAgICAg ICAgIHN0cnVjdCBkb21haW5fZGV2aWNlICpkZXYgPSB0YXNrLT5kZXY7DQo+ID4+Pj4gICAgICAg ICAgIHN0cnVjdCBwbTgwMDFfZGV2aWNlICpwbTgwMDFfaGFfZGV2ID0gZGV2LT5sbGRkX2RldjsN Cj4gPj4+PiArICAgICAgIHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMgPSB0YXNrLT51bGRkX3Rh c2s7DQo+ID4+Pj4gKyAgICAgICBzdHJ1Y3Qgc2NzaV9jbW5kICpzY21kID0gcWMtPnNjc2ljbWQ7 DQo+ID4+Pj4gICAgICAgICAgIHUzMiB0YWcgPSBjY2ItPmNjYl90YWc7DQo+ID4+Pj4gICAgICAg ICAgIGludCByZXQ7DQo+ID4+Pj4gLSAgICAgICB1MzIgcV9pbmRleCwgY3B1X2lkOw0KPiA+Pj4+ ICsgICAgICAgdTMyIHFfaW5kZXgsIGJsa190YWc7DQo+ID4+Pj4gICAgICAgICAgIHN0cnVjdCBz YXRhX3N0YXJ0X3JlcSBzYXRhX2NtZDsNCj4gPj4+PiAgICAgICAgICAgdTMyIGhkcl90YWcsIG5j Z190YWcgPSAwOw0KPiA+Pj4+ICAgICAgICAgICB1NjQgcGh5c19hZGRyLCBzdGFydF9hZGRyLCBl bmRfYWRkcjsgQEAgLTQ0NTksOCArNDQ2Miw5DQo+ID4+Pj4gQEAgc3RhdGljIGludCBwbTgweHhf Y2hpcF9zYXRhX3JlcShzdHJ1Y3QgcG04MDAxX2hiYV9pbmZvDQo+ICpwbTgwMDFfaGEsDQo+ID4+ Pj4gICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ID4+Pj4gICAgICAgICAgIHUzMiBv cGMgPSBPUENfSU5CX1NBVEFfSE9TVF9PUFNUQVJUOw0KPiA+Pj4+ICAgICAgICAgICBtZW1zZXQo JnNhdGFfY21kLCAwLCBzaXplb2Yoc2F0YV9jbWQpKTsNCj4gPj4+PiAtICAgICAgIGNwdV9pZCA9 IHNtcF9wcm9jZXNzb3JfaWQoKTsNCj4gPj4+PiAtICAgICAgIHFfaW5kZXggPSAodTMyKSAoY3B1 X2lkKSAlIChwbTgwMDFfaGEtPm1heF9xX251bSk7DQo+ID4+Pj4gKw0KPiA+Pj4+ICsgICAgICAg YmxrX3RhZyA9IGJsa19tcV91bmlxdWVfdGFnKHNjbWQtPnJlcXVlc3QpOw0KPiA+Pj4NCj4gPj4+ IEhlcmUgdGhlIHNjc2kgY29tbWFuZCBpcyBOVUxMLg0KPiA+Pj4NCj4gPj4+ICAgICBpZihzY21k KSB7DQo+ID4+PiAgICAgICAgICAgICAgICAgICBibGtfdGFnID0gYmxrX21xX3VuaXF1ZV90YWco c2NtZC0+cmVxdWVzdCk7DQo+ID4+PiAgICAgICAgICAgICAgICAgICBxX2luZGV4ID0gYmxrX21x X3VuaXF1ZV90YWdfdG9faHdxKGJsa190YWcpOw0KPiA+Pj4gICAgICAgICAgIH0gZWxzZSB7DQo+ ID4+PiAgICAgICAgICAgICAgICAgICBxX2luZGV4ID0gMDsNCj4gPj4+ICAgICB9DQo+ID4+Pg0K PiA+Pj4gV2l0aCB0aGlzIGNoYW5nZSwgd2UgaGF2ZSBzdGFydGVkIG91ciB0ZXN0aW5nLiBXZSB3 aWxsIHVwZGF0ZSB5b3UNCj4gPj4+IHRoZQ0KPiA+PiByZXN1bHQgc29vbi4NCj4gPj4+DQo+ID4+ Pj4gKyAgICAgICBxX2luZGV4ID0gYmxrX21xX3VuaXF1ZV90YWdfdG9faHdxKGJsa190YWcpOw0K PiA+Pj4+ICAgICAgICAgICBjaXJjdWxhclEgPSAmcG04MDAxX2hhLT5pbmJuZF9xX3RibFtxX2lu ZGV4XTsNCj4gPj4+Pg0KPiA+Pj4+ICAgICAgICAgICBpZiAodGFzay0+ZGF0YV9kaXIgPT0gRE1B X05PTkUpIHsNCj4gPj4+PiAtLQ0KPiA+Pj4+IDIuMjYuMg0KPiA+Pj4NCj4gPj4+IC4NCj4gPj4+ DQo+ID4NCg0K