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=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 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 62907C1B08C for ; Thu, 15 Jul 2021 01:21:42 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 1B833613C3 for ; Thu, 15 Jul 2021 01:21:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1B833613C3 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 363796E4B6; Thu, 15 Jul 2021 01:21:38 +0000 (UTC) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id E9EC16E4A1; Thu, 15 Jul 2021 01:21:35 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10045"; a="210498026" X-IronPort-AV: E=Sophos;i="5.84,240,1620716400"; d="scan'208";a="210498026" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jul 2021 18:21:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,240,1620716400"; d="scan'208";a="494814403" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by FMSMGA003.fm.intel.com with ESMTP; 14 Jul 2021 18:21:34 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Wed, 14 Jul 2021 18:21:34 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Wed, 14 Jul 2021 18:21:34 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.49) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Wed, 14 Jul 2021 18:21:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mQybyBuJ/4eXYTFxrsMydqlwid7fkBh1sGFSMrDCkY2XlsT8/X38rjRhqfRiPw8NzKhlxT6LEkW42bHHnVlpTH2trBF5Ecqt7xhhAgppF1124UAXPOytcrUG8y4Sj+FCKS+LZcurhEWNJu3uNKdDQmolmEep1Qz7Cbv0kDHgEz+/h3ZqFyAdHoyNNGcYEBXmPDH1tCgrtF+J9D8eIlIiNj8WAxsjNMJLZPyWL1zYYPMT2j56XC0/T2Uq9cSuPRJmmZvcFOJZdXudEYbqwvajSoRtiM6L3AyOGGRLmmHbCxnSKfgLdnvgzH2Eiqjr2onAjLxah+8OprfBgYReE8a+0w== 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=c1U1etAg9hLEIc+MQPRdohyquYCxAns458HV0zig+4s=; b=aBQSE+OROaWvGrQr1LGnpjMlOCnrRRRhCanIOUdsl7lpC2UZGKygq11CHhgQ6DhpwwvVyreSGATtGCLZCFJ62r+Y2uaY9eEZSdVS8Mx1QDm72xE1khYKxPVciMwqvLgRVBknQhvFi5Kw12gi7GN7vwy8QJR/9tjNjPIbo/lsSxT4efTtUom9ze6M7H8DYOxFSDCAN8VCuJKhqY8it9WHZFHXpmZC9mhzVW89DutoKLHUm4+Q7vWKPKw0ZDZtV3zRchdmV3W8gV+VWHsWpfhHm6YFEfgNBhQePCXN/Rhy60w8WHUfy4p9LAh+0Rqk3zf3xQQPdUFP4OIbqu2g/8jjYQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c1U1etAg9hLEIc+MQPRdohyquYCxAns458HV0zig+4s=; b=YeyU0+4qKce7C9xva5ZFWsLSxDdWGpa3xJB+Qvrp06sRf58KNCG7XCd/6t+WWkNawSFXwmRCyZuoyVsVgsBY156GY0+ZYXjYtiuoYrvjFv2INHNAIuicyREs0sMjWEFdrZRZVbVe4N30vttRZ1/BmqBXOEdSjhcHiAM6LjwZRfA= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB5488.namprd11.prod.outlook.com (2603:10b6:5:39d::5) by DM4PR11MB5488.namprd11.prod.outlook.com (2603:10b6:5:39d::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.22; Thu, 15 Jul 2021 01:21:27 +0000 Received: from DM4PR11MB5488.namprd11.prod.outlook.com ([fe80::4017:e7ce:ef66:48d7]) by DM4PR11MB5488.namprd11.prod.outlook.com ([fe80::4017:e7ce:ef66:48d7%9]) with mapi id 15.20.4331.022; Thu, 15 Jul 2021 01:21:27 +0000 To: Matthew Brost , , References: <20210624070516.21893-1-matthew.brost@intel.com> <20210624070516.21893-27-matthew.brost@intel.com> From: Daniele Ceraolo Spurio Message-ID: <95eba0f3-3710-da4b-5cad-5a6c21e46ca2@intel.com> Date: Wed, 14 Jul 2021 18:21:24 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.11.0 In-Reply-To: <20210624070516.21893-27-matthew.brost@intel.com> Content-Language: en-US X-ClientProxiedBy: SJ0PR03CA0324.namprd03.prod.outlook.com (2603:10b6:a03:39d::29) To DM4PR11MB5488.namprd11.prod.outlook.com (2603:10b6:5:39d::5) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.1.65] (99.72.232.53) by SJ0PR03CA0324.namprd03.prod.outlook.com (2603:10b6:a03:39d::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.21 via Frontend Transport; Thu, 15 Jul 2021 01:21:26 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a6a3dde7-2cbc-4086-26a2-08d9472eddd4 X-MS-TrafficTypeDiagnostic: DM4PR11MB5488: X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lq3BK1HEyjRWme9nG7gFoqKaJKBs0/4M9CSlMo9OByZ7VmosA0YkKkSHwNEecZMNxaw9V79/3bzE0v0RO8azCxCibO+/vGS6v+L17V45g1dOs6BbNrSynNtpi7Es4aUrk8tV8fxORjyEnXgWoCZILAGLqMXyW/EbVQKefX8dPEEVKQldcjRc048jstkcT4gE/RSK0xbG3/PK88owkOC4JXbAWFfIZtyiJYdlxYAAQSBlgPtIanCfAB5718Xa0Qou2oZU0pbnO1wdX8ZOn8U5F0nLL05CGa4crw/HLcW6yKpKP61fo8aXhpDJ/98B+Fm4OwYixguktgMV+6kCQtWn7vqzyGiJ8lF/50cCnVmZpVgWaTWJQ7kS2py1Iy7k/wvgDX7XCdqRqGOnzitPWEDbK5Bu44ZOuuh1U6PpEV1njvF9VGnjyUVNHQNomZA4EHgfmDTS3on5Nzpkp5z6APojV1XxPmHcRqjXTbs97iLS65eLZCOuYoBvVkTVxJAC6yGEw5RH5CTC+PJN3e9sYRA6eddVH63PtbW3kZSC+1JjmZTwhT/X/g6Sa1fBCCOIko2Lanklbpu0+oHDnXVLozcDtvUw+40zAlbh4iBTICcE6kGALzpgQwxLU/NEA35gHbY1P6EI2pKo7zmb1fDePAw4MUm/HEFkmtaR/XUmxVGtzEgfJJzPC2DBKDb2Mki3SwfWuIBr/KZhUUIf4tEubIUdpWUuQj1jZiMo6nsd7Mz5SeO3Pc68huTAuxykFb+lbTGeDPJvXbG3kGOD4DM+vgWjiQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB5488.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(6486002)(53546011)(26005)(186003)(478600001)(36756003)(8676002)(66476007)(86362001)(66556008)(66946007)(31696002)(16576012)(31686004)(8936002)(4326008)(5660300002)(2906002)(30864003)(316002)(107886003)(83380400001)(956004)(38100700002)(2616005)(450100002)(21314003)(43740500002)(45980500001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?K2dDWWFlVXc0Y0grWndQajE3RDhiNUsxMmxJQklER0NoUngwT2dVczQxYnFt?= =?utf-8?B?NlRSeGRBeTJCS0djQkNWYzRDUk82bjJpUmIwZm54YloyWnM3RDhRMjBCVXNV?= =?utf-8?B?ZXBqRXdMVWxtckdweWNjWXJRSVRuejNST1VJeTdEbThsRzAyYmdmZnpyb1Zi?= =?utf-8?B?SHdYc0s3cGtOL2d2QlBONStPbTlWYm1kUjRWamdHOTZZWkNOSDdhZkFIUnBU?= =?utf-8?B?cWJHeVhDN0JaUTVsWFBha00zNjFVemRHSG9lQTI2c3JQTWxCaFBzS2Z4Umll?= =?utf-8?B?RWcxbStHZlNud3RoOHlXWkxEOGpyVVBLem9jc0xIcmkzVms4VGMyYWk2RkRD?= =?utf-8?B?b0REWFYra09BT3QraVFGUmQ4MHZxWk1WSCtRdFAxV1ErVnBkZXExdTRQR1dQ?= =?utf-8?B?ZjlSSGNnMmpVNjYvVXRvL1IyMVVSQlJKZFM2cFYvWW9xQlNISnhUbVNwZUF5?= =?utf-8?B?OVVxSXNFMW5yZ1R1VUNqcklScWF5YUY2M3YwOXBFSkhpekFLVURPTll6dEZh?= =?utf-8?B?SUJVMFAwaFZpd0IxdXhPS2V4WWFSN0pMam1QOU9DOWJtZWNSUjdZRWdMc3RZ?= =?utf-8?B?dkVFWHpES052QnNtVXo1bGtFWG02RHdUOG9FMFlSdTlRYUtRaXNZRGJjZENM?= =?utf-8?B?S0lnWktncndiMkF2WStST1B5Nm5QTVhLaGR0bDZnNURNaVpnYTFEQVAyaThw?= =?utf-8?B?NnpkRC8yRXFBeDIzSkN4SzVBaUdUelphVFNIN3d2ZEMwZmlabnpoTzI3NVMx?= =?utf-8?B?L0pBdGN1MkVWdUIvakFueEkzZkZWZWJjdHNka0g3cjBjVTFGODlKVEtIWjR3?= =?utf-8?B?cXV1dmkwL1dNdXZVYm1ZTmZnRnJDcGJCWFJCWkx0YUlzR3ZMczJYNGN0Rmkv?= =?utf-8?B?Mk9wYnBTaVdJaUhHQktFRkRwMllGYkdHQVZnL0orVFBPOXhGU1I0dkRGYkpR?= =?utf-8?B?YlJjYmZiQ204eUFZTEo0ZzJQMFVuWE1iS0RkaXZOeEpmYVRDSjhVTlBVckFC?= =?utf-8?B?bnRnaTV3SUVGdklRd1duOTV6allzRkErMDQwK3JZWVoyR0EvdzgzeUFyU2F4?= =?utf-8?B?WFJERnFWZlI0eE1oRDQrZFovbGFxTHNZWEhqakkwYnZ6MFJtTnkveVhZVGJQ?= =?utf-8?B?di9sMTNPdzJKdTZXRGIxUm44OEdQQzZ1WUpEcENDeWR5Q0I2MHVBcmpWRy9Q?= =?utf-8?B?WTNndGw1bzlJS0ZpY3Q0S0hEMnZtcFRuVDNobXE0RlpWUkphRWprWXo0YTd0?= =?utf-8?B?N1UwSnVjTmQrN1FiT2E3Q0w2QkwyK1NsTGZrTkNYMjdKcGlaNE5LRzJrNlNQ?= =?utf-8?B?SWtudDd5L1VSUVpKMGJNelA3a0ZCdmUwTVVpbVpFa1hLZkIrMHBOWHo5WGF3?= =?utf-8?B?WW1KcUo3M2xYYVFjMnJQWVBsQWNHSlY3VFdRalNucUp5Z1hCVkxvYkhISkdu?= =?utf-8?B?WHJKeHg3QUNFTWpKWlBNNFhpS09TWjVrMEZJS0ppcS81L0NMalFQL25VY0pR?= =?utf-8?B?Y1NDTzNLK05wZ1Z1eTl3OW9ORTI0MkJPOWR0ei9PM0dCc1R1aUdxa09zQXEz?= =?utf-8?B?eDJ2ZXN1ZTZFUW82SXRoSHRDczJoMU1DUW5JV0pDdVRSSWRaQ2pJZ2Z1eEpH?= =?utf-8?B?NW5Rb0lvRjc3SEpNZ2c2NlpWWkRWaDNTa0dIMFdCeS9ScWRFaHZCczhtMlRu?= =?utf-8?B?N1lubHJpSnNXQzRFbVZ0YlRrZlNpcXdUQnFxOW13Y0NMUEUxMVg1aUhORWdO?= =?utf-8?Q?PWJ+NJlTDkbF6fD2WtDzX0qyv9qdYiNbvrVk4pM?= X-MS-Exchange-CrossTenant-Network-Message-Id: a6a3dde7-2cbc-4086-26a2-08d9472eddd4 X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5488.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2021 01:21:26.7223 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PLztLtpRGmRX1pSrHNoz8s8dMBffx+o3MCZ5zU9EX/tG2nQpOWAmRJRU0kbU7ESkgIY5mhRQjFRsT99BMx6zk0NL7tBZWvOT5k5Zo1tPJvM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5488 X-OriginatorOrg: intel.com Subject: Re: [Intel-gfx] [PATCH 26/47] drm/i915/guc: GuC virtual engines X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" CgpPbiA2LzI0LzIwMjEgMTI6MDQgQU0sIE1hdHRoZXcgQnJvc3Qgd3JvdGU6Cj4gSW1wbGVtZW50 IEd1QyB2aXJ0dWFsIGVuZ2luZXMuIFJhdGhlciBzaW1wbGUgaW1wbGVtZW50YXRpb24sIGJhc2lj YWxseQo+IGp1c3QgYWxsb2NhdGUgYW4gZW5naW5lLCBzZXR1cCBjb250ZXh0IGVudGVyIC8gZXhp dCBmdW5jdGlvbiB0byB2aXJ0dWFsCj4gZW5naW5lIHNwZWNpZmljIGZ1bmN0aW9ucywgc2V0IGFs bCBvdGhlciB2YXJpYWJsZXMgLyBmdW5jdGlvbnMgdG8gZ3VjCj4gdmVyc2lvbnMsIGFuZCBzZXQg dGhlIGVuZ2luZSBtYXNrIHRvIHRoYXQgb2YgYWxsIHRoZSBzaWJsaW5ncy4KPgo+IENjOiBEYW5p ZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+IFNp Z25lZC1vZmYtYnk6IE1hdHRoZXcgQnJvc3QgPG1hdHRoZXcuYnJvc3RAaW50ZWwuY29tPgo+IC0t LQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYyAgIHwgIDE5 ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5oICAgfCAg IDEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dF90eXBlcy5oIHwg IDEwICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oICAgICAgICB8 ICA0NSArKystCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyAg ICAgfCAgMTQgKwo+ICAgLi4uL2RybS9pOTE1L2d0L2ludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9u LmMgIHwgMTg2ICsrKysrKystLS0tLS0KPiAgIC4uLi9kcm0vaTkxNS9ndC9pbnRlbF9leGVjbGlz dHNfc3VibWlzc2lvbi5oICB8ICAxMSAtCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxm dGVzdF9leGVjbGlzdHMuYyAgfCAgMjAgKy0KPiAgIC4uLi9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50 ZWxfZ3VjX3N1Ym1pc3Npb24uYyB8IDI1MyArKysrKysrKysrKysrKysrKy0KPiAgIC4uLi9ncHUv ZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uaCB8ICAgMiArCj4gICAxMCBmaWxl cyBjaGFuZ2VkLCA0MjkgaW5zZXJ0aW9ucygrKSwgMTMyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCj4gaW5kZXggNWMwN2U2YWJm MTZhLi44YTkyOTNlMGNhOTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX2NvbnRleHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9jb250ZXh0LmMKPiBAQCAtNzIsNyArNzIsNiBAQAo+ICAgI2luY2x1ZGUgImd0L2ludGVs X2NvbnRleHRfcGFyYW0uaCIKPiAgICNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfaGVhcnRiZWF0 LmgiCj4gICAjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lX3VzZXIuaCIKPiAtI2luY2x1ZGUgImd0 L2ludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uLmgiIC8qIHZpcnR1YWxfZW5naW5lICovCj4gICAj aW5jbHVkZSAiZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmgiCj4gICAjaW5jbHVkZSAiZ3QvaW50ZWxf cmluZy5oIgo+ICAgCj4gQEAgLTE1NjgsOSArMTU2Nyw2IEBAIHNldF9lbmdpbmVzX19sb2FkX2Jh bGFuY2Uoc3RydWN0IGk5MTVfdXNlcl9leHRlbnNpb24gX191c2VyICpiYXNlLCB2b2lkICpkYXRh KQo+ICAgCWlmICghSEFTX0VYRUNMSVNUUyhpOTE1KSkKPiAgIAkJcmV0dXJuIC1FTk9ERVY7Cj4g ICAKPiAtCWlmIChpbnRlbF91Y191c2VzX2d1Y19zdWJtaXNzaW9uKCZpOTE1LT5ndC51YykpCj4g LQkJcmV0dXJuIC1FTk9ERVY7IC8qIG5vdCBpbXBsZW1lbnQgeWV0ICovCj4gLQo+ICAgCWlmIChn ZXRfdXNlcihpZHgsICZleHQtPmVuZ2luZV9pbmRleCkpCj4gICAJCXJldHVybiAtRUZBVUxUOwo+ ICAgCj4gQEAgLTE2MjcsNyArMTYyMyw3IEBAIHNldF9lbmdpbmVzX19sb2FkX2JhbGFuY2Uoc3Ry dWN0IGk5MTVfdXNlcl9leHRlbnNpb24gX191c2VyICpiYXNlLCB2b2lkICpkYXRhKQo+ICAgCQl9 Cj4gICAJfQo+ICAgCj4gLQljZSA9IGludGVsX2V4ZWNsaXN0c19jcmVhdGVfdmlydHVhbChzaWJs aW5ncywgbik7Cj4gKwljZSA9IGludGVsX2VuZ2luZV9jcmVhdGVfdmlydHVhbChzaWJsaW5ncywg bik7Cj4gICAJaWYgKElTX0VSUihjZSkpIHsKPiAgIAkJZXJyID0gUFRSX0VSUihjZSk7Cj4gICAJ CWdvdG8gb3V0X3NpYmxpbmdzOwo+IEBAIC0xNzIzLDEzICsxNzE5LDkgQEAgc2V0X2VuZ2luZXNf X2JvbmQoc3RydWN0IGk5MTVfdXNlcl9leHRlbnNpb24gX191c2VyICpiYXNlLCB2b2lkICpkYXRh KQo+ICAgCQkgKiBBIG5vbi12aXJ0dWFsIGVuZ2luZSBoYXMgbm8gc2libGluZ3MgdG8gY2hvb3Nl IGJldHdlZW47IGFuZAo+ICAgCQkgKiBhIHN1Ym1pdCBmZW5jZSB3aWxsIGFsd2F5cyBiZSBkaXJl Y3RlZCB0byB0aGUgb25lIGVuZ2luZS4KPiAgIAkJICovCj4gLQkJaWYgKGludGVsX2VuZ2luZV9p c192aXJ0dWFsKHZpcnR1YWwpKSB7Cj4gLQkJCWVyciA9IGludGVsX3ZpcnR1YWxfZW5naW5lX2F0 dGFjaF9ib25kKHZpcnR1YWwsCj4gLQkJCQkJCQkgICAgICAgbWFzdGVyLAo+IC0JCQkJCQkJICAg ICAgIGJvbmQpOwo+IC0JCQlpZiAoZXJyKQo+IC0JCQkJcmV0dXJuIGVycjsKPiAtCQl9Cj4gKwkJ ZXJyID0gaW50ZWxfZW5naW5lX2F0dGFjaF9ib25kKHZpcnR1YWwsIG1hc3RlciwgYm9uZCk7Cj4g KwkJaWYgKGVycikKPiArCQkJcmV0dXJuIGVycjsKPiAgIAl9Cj4gICAKPiAgIAlyZXR1cm4gMDsK PiBAQCAtMjExNiw4ICsyMTA4LDcgQEAgc3RhdGljIGludCBjbG9uZV9lbmdpbmVzKHN0cnVjdCBp OTE1X2dlbV9jb250ZXh0ICpkc3QsCj4gICAJCSAqIHRoZSB2aXJ0dWFsIGVuZ2luZSBpbnN0ZWFk Lgo+ICAgCQkgKi8KPiAgIAkJaWYgKGludGVsX2VuZ2luZV9pc192aXJ0dWFsKGVuZ2luZSkpCj4g LQkJCWNsb25lLT5lbmdpbmVzW25dID0KPiAtCQkJCWludGVsX2V4ZWNsaXN0c19jbG9uZV92aXJ0 dWFsKGVuZ2luZSk7Cj4gKwkJCWNsb25lLT5lbmdpbmVzW25dID0gaW50ZWxfZW5naW5lX2Nsb25l X3ZpcnR1YWwoZW5naW5lKTsKPiAgIAkJZWxzZQo+ICAgCQkJY2xvbmUtPmVuZ2luZXNbbl0gPSBp bnRlbF9jb250ZXh0X2NyZWF0ZShlbmdpbmUpOwo+ICAgCQlpZiAoSVNfRVJSX09SX05VTEwoY2xv bmUtPmVuZ2luZXNbbl0pKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9jb250ZXh0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f Y29udGV4dC5oCj4gaW5kZXggYjVjOTA4ZjNmNGYyLi5iYTc3Mjc2MmY3YjkgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmgKPiBAQCAtMTAsNiArMTAs NyBAQAo+ICAgI2luY2x1ZGUgImk5MTVfZ2VtX2NvbnRleHRfdHlwZXMuaCIKPiAgIAo+ICAgI2lu Y2x1ZGUgImd0L2ludGVsX2NvbnRleHQuaCIKPiArI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZS5o Igo+ICAgCj4gICAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiAgICNpbmNsdWRlICJpOTE1X2dlbS5o Igo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0X3R5 cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0X3R5cGVzLmgKPiBp bmRleCBlN2FmNmEyMzY4ZjguLjY5NDU5NjNhMzFiYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0X3R5cGVzLmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0X3R5cGVzLmgKPiBAQCAtNDcsNiArNDcsMTYgQEAgc3Ry dWN0IGludGVsX2NvbnRleHRfb3BzIHsKPiAgIAo+ICAgCXZvaWQgKCpyZXNldCkoc3RydWN0IGlu dGVsX2NvbnRleHQgKmNlKTsKPiAgIAl2b2lkICgqZGVzdHJveSkoc3RydWN0IGtyZWYgKmtyZWYp Owo+ICsKPiArCS8qIHZpcnR1YWwgZW5naW5lL2NvbnRleHQgaW50ZXJmYWNlICovCj4gKwlzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqKCpjcmVhdGVfdmlydHVhbCkoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqKmVuZ2luZSwKPiArCQkJCQkJdW5zaWduZWQgaW50IGNvdW50KTsKPiArCXN0cnVjdCBpbnRl bF9jb250ZXh0ICooKmNsb25lX3ZpcnR1YWwpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICooKmdldF9zaWJsaW5nKShzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gKwkJCQkJICAgICAgIHVuc2lnbmVkIGludCBzaWJsaW5n KTsKPiArCWludCAoKmF0dGFjaF9ib25kKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs Cj4gKwkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKm1hc3RlciwKPiArCQkJICAg Y29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqc2libGluZyk7CgpDbG9uaW5nIGFuZCBib25k aW5nIGZvciBWRSBoYXZlIGJlZW4gcmVtb3ZlZCwgc28gY2FuIGJlIGRyb3BwZWQuIEknbGwgCnNr aXAgcmV2aWV3aW5nIGFsbCB0aGUgcmVsYXRlZCBjb2RlIGluIHRoaXMgcGF0Y2guCgo+ICAgfTsK PiAgIAo+ICAgc3RydWN0IGludGVsX2NvbnRleHQgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2VuZ2luZS5oCj4gaW5kZXggZjkxMWMxMjI0YWIyLi45MjNlYWVlNjI3YjMgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaAo+IEBAIC0yNzMsMTMgKzI3Myw1NiBA QCBpbnRlbF9lbmdpbmVfaGFzX3ByZWVtcHRfcmVzZXQoY29uc3Qgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+ICAgCXJldHVybiBpbnRlbF9lbmdpbmVfaGFzX3ByZWVtcHRpb24oZW5n aW5lKTsKPiAgIH0KPiAgIAo+ICtzdHJ1Y3QgaW50ZWxfY29udGV4dCAqCj4gK2ludGVsX2VuZ2lu ZV9jcmVhdGVfdmlydHVhbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoqc2libGluZ3MsCj4gKwkJ CSAgICB1bnNpZ25lZCBpbnQgY291bnQpOwo+ICsKPiArc3RhdGljIGlubGluZSBib29sCj4gK2lu dGVsX3ZpcnR1YWxfZW5naW5lX2hhc19oZWFydGJlYXQoY29uc3Qgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+ICt7Cj4gKwlpZiAoaW50ZWxfZW5naW5lX3VzZXNfZ3VjKGVuZ2luZSkp Cj4gKwkJcmV0dXJuIGludGVsX2d1Y192aXJ0dWFsX2VuZ2luZV9oYXNfaGVhcnRiZWF0KGVuZ2lu ZSk7Cj4gKwllbHNlCj4gKwkJR0VNX0JVR19PTigiT25seSBzaG91bGQgYmUgY2FsbGVkIGluIEd1 QyBzdWJtaXNzaW9uIik7Cj4gKwo+ICsJcmV0dXJuIGZhbHNlOwo+ICt9CgpUaGlzIGNvdWxkIHVz ZSBhIGJldHRlciBleHBsYW5hdGlvbi4gTWF5YmUgc29tZXRoaW5nIGxpa2U6CgpzdGF0aWMgaW5s aW5lIGJvb2wKaW50ZWxfdmlydHVhbF9lbmdpbmVfaGFzX2hlYXJ0YmVhdChjb25zdCBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCnsKCS8qCgkgKiBGb3Igbm9uLUd1QyBzdWJtaXNzaW9u IHdlIGV4cGVjdCB0aGUgYmFjay1lbmQgdG8gbG9vayBhdCB0aGUKCSAqIGhlYXJ0YmVhdCBzdGF0 dXMgb2YgdGhlIGFjdHVhbCBwaHlzaWNhbCBlbmdpbmUgdGhhdCB0aGUgd29yawoJICogaGFzIGJl ZW4gKG9yIGlzIGJlaW5nKSBzY2hlZHVsZWQgb24sIHNvIHdlIHNob3VsZCBvbmx5IHJlYWNoCgkg KiBoZXJlIHdpdGggR3VDIHN1Ym1pc3Npb24gZW5hYmxlZC4KIMKgCSAqLwoJR0VNX0JVR19PTigh aW50ZWxfZW5naW5lX3VzZXNfZ3VjKGVuZ2luZSkpOwoKCXJldHVybiBpbnRlbF9ndWNfdmlydHVh bF9lbmdpbmVfaGFzX2hlYXJ0YmVhdChlbmdpbmUpOwp9CgoKPiArCj4gICBzdGF0aWMgaW5saW5l IGJvb2wKPiAgIGludGVsX2VuZ2luZV9oYXNfaGVhcnRiZWF0KGNvbnN0IHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAgIAlpZiAoIUlTX0FDVElWRShDT05GSUdfRFJNX0k5 MTVfSEVBUlRCRUFUX0lOVEVSVkFMKSkKPiAgIAkJcmV0dXJuIGZhbHNlOwo+ICAgCj4gLQlyZXR1 cm4gUkVBRF9PTkNFKGVuZ2luZS0+cHJvcHMuaGVhcnRiZWF0X2ludGVydmFsX21zKTsKPiArCWlm IChpbnRlbF9lbmdpbmVfaXNfdmlydHVhbChlbmdpbmUpKQo+ICsJCXJldHVybiBpbnRlbF92aXJ0 dWFsX2VuZ2luZV9oYXNfaGVhcnRiZWF0KGVuZ2luZSk7Cj4gKwllbHNlCj4gKwkJcmV0dXJuIFJF QURfT05DRShlbmdpbmUtPnByb3BzLmhlYXJ0YmVhdF9pbnRlcnZhbF9tcyk7Cj4gK30KPiArCj4g K3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2NvbnRleHQgKgo+ICtpbnRlbF9lbmdpbmVfY2xv bmVfdmlydHVhbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpzcmMpCj4gK3sKPiArCUdFTV9CVUdf T04oIWludGVsX2VuZ2luZV9pc192aXJ0dWFsKHNyYykpOwo+ICsJcmV0dXJuIHNyYy0+Y29wcy0+ Y2xvbmVfdmlydHVhbChzcmMpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIGludAo+ICtpbnRl bF9lbmdpbmVfYXR0YWNoX2JvbmQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICsJ CQkgY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqbWFzdGVyLAo+ICsJCQkgY29uc3Qgc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqc2libGluZykKPiArewo+ICsJaWYgKCFlbmdpbmUtPmNvcHMt PmF0dGFjaF9ib25kKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCXJldHVybiBlbmdpbmUtPmNvcHMt PmF0dGFjaF9ib25kKGVuZ2luZSwgbWFzdGVyLCBzaWJsaW5nKTsKPiArfQo+ICsKPiArc3RhdGlj IGlubGluZSBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoKPiAraW50ZWxfZW5naW5lX2dldF9zaWJs aW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdW5zaWduZWQgaW50IHNpYmxpbmcp Cj4gK3sKPiArCUdFTV9CVUdfT04oIWludGVsX2VuZ2luZV9pc192aXJ0dWFsKGVuZ2luZSkpOwo+ ICsJcmV0dXJuIGVuZ2luZS0+Y29wcy0+Z2V0X3NpYmxpbmcoZW5naW5lLCBzaWJsaW5nKTsKPiAg IH0KPiAgIAo+ICAgI2VuZGlmIC8qIF9JTlRFTF9SSU5HQlVGRkVSX0hfICovCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCA4ODY5NDgyMjcxNmEuLmQx M2IxNzE2YzI5ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9l bmdpbmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9j cy5jCj4gQEAgLTE3MzYsNiArMTczNiwyMCBAQCBrdGltZV90IGludGVsX2VuZ2luZV9nZXRfYnVz eV90aW1lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwga3RpbWVfdCAqbm93KQo+ICAg CXJldHVybiB0b3RhbDsKPiAgIH0KPiAgIAo+ICtzdHJ1Y3QgaW50ZWxfY29udGV4dCAqCj4gK2lu dGVsX2VuZ2luZV9jcmVhdGVfdmlydHVhbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoqc2libGlu Z3MsCj4gKwkJCSAgICB1bnNpZ25lZCBpbnQgY291bnQpCj4gK3sKPiArCWlmIChjb3VudCA9PSAw KQo+ICsJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+ICsKPiArCWlmIChjb3VudCA9PSAxKQo+ ICsJCXJldHVybiBpbnRlbF9jb250ZXh0X2NyZWF0ZShzaWJsaW5nc1swXSk7Cj4gKwo+ICsJR0VN X0JVR19PTighc2libGluZ3NbMF0tPmNvcHMtPmNyZWF0ZV92aXJ0dWFsKTsKPiArCXJldHVybiBz aWJsaW5nc1swXS0+Y29wcy0+Y3JlYXRlX3ZpcnR1YWwoc2libGluZ3MsIGNvdW50KTsKPiArfQo+ ICsKPiAgIHN0YXRpYyBib29sIG1hdGNoX3Jpbmcoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4g ICB7Cj4gICAJdTMyIHJpbmcgPSBFTkdJTkVfUkVBRChycS0+ZW5naW5lLCBSSU5HX1NUQVJUKTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZXhlY2xpc3RzX3N1 Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2V4ZWNsaXN0c19zdWJt aXNzaW9uLmMKPiBpbmRleCBjZGIyMTI2YTE1OWEuLmJkNGNlZDc5NGZmOSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbi5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24u Ywo+IEBAIC0yMDUsNiArMjA1LDkgQEAgc3RhdGljIHN0cnVjdCB2aXJ0dWFsX2VuZ2luZSAqdG9f dmlydHVhbF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCXJldHVy biBjb250YWluZXJfb2YoZW5naW5lLCBzdHJ1Y3QgdmlydHVhbF9lbmdpbmUsIGJhc2UpOwo+ICAg fQo+ICAgCj4gK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqCj4gK2V4ZWNsaXN0c19jcmVh dGVfdmlydHVhbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoqc2libGluZ3MsIHVuc2lnbmVkIGlu dCBjb3VudCk7Cj4gKwo+ICAgc3RhdGljIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgo+ICAgX19hY3Rp dmVfcmVxdWVzdChjb25zdCBzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKiBjb25zdCB0bCwKPiAgIAkJ IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLAo+IEBAIC0yNTYwLDYgKzI1NjMsOCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGludGVsX2NvbnRleHRfb3BzIGV4ZWNsaXN0c19jb250ZXh0X29wcyA9IHsK PiAgIAo+ICAgCS5yZXNldCA9IGxyY19yZXNldCwKPiAgIAkuZGVzdHJveSA9IGxyY19kZXN0cm95 LAo+ICsKPiArCS5jcmVhdGVfdmlydHVhbCA9IGV4ZWNsaXN0c19jcmVhdGVfdmlydHVhbCwKPiAg IH07Cj4gICAKPiAgIHN0YXRpYyBpbnQgZW1pdF9wZHBzKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx KQo+IEBAIC0zNTA2LDYgKzM1MTEsOTQgQEAgc3RhdGljIHZvaWQgdmlydHVhbF9jb250ZXh0X2V4 aXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ICAgCQlpbnRlbF9lbmdpbmVfcG1fcHV0KHZl LT5zaWJsaW5nc1tuXSk7Cj4gICB9Cj4gICAKPiArc3RhdGljIHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKgo+ICt2aXJ0dWFsX2dldF9zaWJsaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwgdW5zaWduZWQgaW50IHNpYmxpbmcpCj4gK3sKPiArCXN0cnVjdCB2aXJ0dWFsX2VuZ2luZSAq dmUgPSB0b192aXJ0dWFsX2VuZ2luZShlbmdpbmUpOwo+ICsKPiArCWlmIChzaWJsaW5nID49IHZl LT5udW1fc2libGluZ3MpCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJcmV0dXJuIHZlLT5zaWJs aW5nc1tzaWJsaW5nXTsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBpbnRlbF9jb250ZXh0ICoK PiArdmlydHVhbF9jbG9uZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpzcmMpCj4gK3sKPiArCXN0 cnVjdCB2aXJ0dWFsX2VuZ2luZSAqc2UgPSB0b192aXJ0dWFsX2VuZ2luZShzcmMpOwo+ICsJc3Ry dWN0IGludGVsX2NvbnRleHQgKmRzdDsKPiArCj4gKwlkc3QgPSBleGVjbGlzdHNfY3JlYXRlX3Zp cnR1YWwoc2UtPnNpYmxpbmdzLCBzZS0+bnVtX3NpYmxpbmdzKTsKPiArCWlmIChJU19FUlIoZHN0 KSkKPiArCQlyZXR1cm4gZHN0Owo+ICsKPiArCWlmIChzZS0+bnVtX2JvbmRzKSB7Cj4gKwkJc3Ry dWN0IHZpcnR1YWxfZW5naW5lICpkZSA9IHRvX3ZpcnR1YWxfZW5naW5lKGRzdC0+ZW5naW5lKTsK PiArCj4gKwkJZGUtPmJvbmRzID0ga21lbWR1cChzZS0+Ym9uZHMsCj4gKwkJCQkgICAgc2l6ZW9m KCpzZS0+Ym9uZHMpICogc2UtPm51bV9ib25kcywKPiArCQkJCSAgICBHRlBfS0VSTkVMKTsKPiAr CQlpZiAoIWRlLT5ib25kcykgewo+ICsJCQlpbnRlbF9jb250ZXh0X3B1dChkc3QpOwo+ICsJCQly ZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiArCQl9Cj4gKwo+ICsJCWRlLT5udW1fYm9uZHMgPSBz ZS0+bnVtX2JvbmRzOwo+ICsJfQo+ICsKPiArCXJldHVybiBkc3Q7Cj4gK30KPiArCj4gK3N0YXRp YyBzdHJ1Y3QgdmVfYm9uZCAqCj4gK3ZpcnR1YWxfZmluZF9ib25kKHN0cnVjdCB2aXJ0dWFsX2Vu Z2luZSAqdmUsCj4gKwkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICptYXN0ZXIpCj4g K3sKPiArCWludCBpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCB2ZS0+bnVtX2JvbmRzOyBpKysp IHsKPiArCQlpZiAodmUtPmJvbmRzW2ldLm1hc3RlciA9PSBtYXN0ZXIpCj4gKwkJCXJldHVybiAm dmUtPmJvbmRzW2ldOwo+ICsJfQo+ICsKPiArCXJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgaW50IHZpcnR1YWxfYXR0YWNoX2JvbmQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LAo+ICsJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqbWFzdGVyLAo+ICsJ CQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqc2libGluZykKPiArewo+ICsJ c3RydWN0IHZpcnR1YWxfZW5naW5lICp2ZSA9IHRvX3ZpcnR1YWxfZW5naW5lKGVuZ2luZSk7Cj4g KwlzdHJ1Y3QgdmVfYm9uZCAqYm9uZDsKPiArCWludCBuOwo+ICsKPiArCS8qIFNhbml0eSBjaGVj ayB0aGUgc2libGluZyBpcyBwYXJ0IG9mIHRoZSB2aXJ0dWFsIGVuZ2luZSAqLwo+ICsJZm9yIChu ID0gMDsgbiA8IHZlLT5udW1fc2libGluZ3M7IG4rKykKPiArCQlpZiAoc2libGluZyA9PSB2ZS0+ c2libGluZ3Nbbl0pCj4gKwkJCWJyZWFrOwo+ICsJaWYgKG4gPT0gdmUtPm51bV9zaWJsaW5ncykK PiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwlib25kID0gdmlydHVhbF9maW5kX2JvbmQodmUs IG1hc3Rlcik7Cj4gKwlpZiAoYm9uZCkgewo+ICsJCWJvbmQtPnNpYmxpbmdfbWFzayB8PSBzaWJs aW5nLT5tYXNrOwo+ICsJCXJldHVybiAwOwo+ICsJfQo+ICsKPiArCWJvbmQgPSBrcmVhbGxvYyh2 ZS0+Ym9uZHMsCj4gKwkJCXNpemVvZigqYm9uZCkgKiAodmUtPm51bV9ib25kcyArIDEpLAo+ICsJ CQlHRlBfS0VSTkVMKTsKPiArCWlmICghYm9uZCkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4g Kwlib25kW3ZlLT5udW1fYm9uZHNdLm1hc3RlciA9IG1hc3RlcjsKPiArCWJvbmRbdmUtPm51bV9i b25kc10uc2libGluZ19tYXNrID0gc2libGluZy0+bWFzazsKPiArCj4gKwl2ZS0+Ym9uZHMgPSBi b25kOwo+ICsJdmUtPm51bV9ib25kcysrOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICAg c3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9jb250ZXh0X29wcyB2aXJ0dWFsX2NvbnRleHRfb3Bz ID0gewo+ICAgCS5mbGFncyA9IENPUFNfSEFTX0lORkxJR0hULAo+ICAgCj4gQEAgLTM1MjAsNiAr MzYxMywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2NvbnRleHRfb3BzIHZpcnR1YWxf Y29udGV4dF9vcHMgPSB7Cj4gICAJLmV4aXQgPSB2aXJ0dWFsX2NvbnRleHRfZXhpdCwKPiAgIAo+ ICAgCS5kZXN0cm95ID0gdmlydHVhbF9jb250ZXh0X2Rlc3Ryb3ksCj4gKwo+ICsJLmNsb25lX3Zp cnR1YWwgPSB2aXJ0dWFsX2Nsb25lLAo+ICsJLmdldF9zaWJsaW5nID0gdmlydHVhbF9nZXRfc2li bGluZywKPiArCS5hdHRhY2hfYm9uZCA9IHZpcnR1YWxfYXR0YWNoX2JvbmQsCj4gICB9Owo+ICAg Cj4gICBzdGF0aWMgaW50ZWxfZW5naW5lX21hc2tfdCB2aXJ0dWFsX3N1Ym1pc3Npb25fbWFzayhz dHJ1Y3QgdmlydHVhbF9lbmdpbmUgKnZlKQo+IEBAIC0zNjY4LDIwICszNzY1LDYgQEAgc3RhdGlj IHZvaWQgdmlydHVhbF9zdWJtaXRfcmVxdWVzdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAg IAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2ZS0+YmFzZS5zY2hlZF9lbmdpbmUtPmxvY2ssIGZs YWdzKTsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgc3RydWN0IHZlX2JvbmQgKgo+IC12aXJ0dWFsX2Zp bmRfYm9uZChzdHJ1Y3QgdmlydHVhbF9lbmdpbmUgKnZlLAo+IC0JCSAgY29uc3Qgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqbWFzdGVyKQo+IC17Cj4gLQlpbnQgaTsKPiAtCj4gLQlmb3IgKGkgPSAw OyBpIDwgdmUtPm51bV9ib25kczsgaSsrKSB7Cj4gLQkJaWYgKHZlLT5ib25kc1tpXS5tYXN0ZXIg PT0gbWFzdGVyKQo+IC0JCQlyZXR1cm4gJnZlLT5ib25kc1tpXTsKPiAtCX0KPiAtCj4gLQlyZXR1 cm4gTlVMTDsKPiAtfQo+IC0KPiAgIHN0YXRpYyB2b2lkCj4gICB2aXJ0dWFsX2JvbmRfZXhlY3V0 ZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgc3RydWN0IGRtYV9mZW5jZSAqc2lnbmFsKQo+ICAg ewo+IEBAIC0zNzA0LDIwICszNzg3LDEzIEBAIHZpcnR1YWxfYm9uZF9leGVjdXRlKHN0cnVjdCBp OTE1X3JlcXVlc3QgKnJxLCBzdHJ1Y3QgZG1hX2ZlbmNlICpzaWduYWwpCj4gICAJdG9fcmVxdWVz dChzaWduYWwpLT5leGVjdXRpb25fbWFzayAmPSB+YWxsb3dlZDsKPiAgIH0KPiAgIAo+IC1zdHJ1 Y3QgaW50ZWxfY29udGV4dCAqCj4gLWludGVsX2V4ZWNsaXN0c19jcmVhdGVfdmlydHVhbChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICoqc2libGluZ3MsCj4gLQkJCSAgICAgICB1bnNpZ25lZCBpbnQg Y291bnQpCj4gK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqCj4gK2V4ZWNsaXN0c19jcmVh dGVfdmlydHVhbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoqc2libGluZ3MsIHVuc2lnbmVkIGlu dCBjb3VudCkKPiAgIHsKPiAgIAlzdHJ1Y3QgdmlydHVhbF9lbmdpbmUgKnZlOwo+ICAgCXVuc2ln bmVkIGludCBuOwo+ICAgCWludCBlcnI7Cj4gICAKPiAtCWlmIChjb3VudCA9PSAwKQo+IC0JCXJl dHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+IC0KPiAtCWlmIChjb3VudCA9PSAxKQo+IC0JCXJldHVy biBpbnRlbF9jb250ZXh0X2NyZWF0ZShzaWJsaW5nc1swXSk7Cj4gLQo+ICAgCXZlID0ga3phbGxv YyhzdHJ1Y3Rfc2l6ZSh2ZSwgc2libGluZ3MsIGNvdW50KSwgR0ZQX0tFUk5FTCk7Cj4gICAJaWYg KCF2ZSkKPiAgIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gQEAgLTM4NTAsNzAgKzM5MjYs NiBAQCBpbnRlbF9leGVjbGlzdHNfY3JlYXRlX3ZpcnR1YWwoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqKnNpYmxpbmdzLAo+ICAgCXJldHVybiBFUlJfUFRSKGVycik7Cj4gICB9Cj4gICAKPiAtc3Ry dWN0IGludGVsX2NvbnRleHQgKgo+IC1pbnRlbF9leGVjbGlzdHNfY2xvbmVfdmlydHVhbChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpzcmMpCj4gLXsKPiAtCXN0cnVjdCB2aXJ0dWFsX2VuZ2luZSAq c2UgPSB0b192aXJ0dWFsX2VuZ2luZShzcmMpOwo+IC0Jc3RydWN0IGludGVsX2NvbnRleHQgKmRz dDsKPiAtCj4gLQlkc3QgPSBpbnRlbF9leGVjbGlzdHNfY3JlYXRlX3ZpcnR1YWwoc2UtPnNpYmxp bmdzLAo+IC0JCQkJCSAgICAgc2UtPm51bV9zaWJsaW5ncyk7Cj4gLQlpZiAoSVNfRVJSKGRzdCkp Cj4gLQkJcmV0dXJuIGRzdDsKPiAtCj4gLQlpZiAoc2UtPm51bV9ib25kcykgewo+IC0JCXN0cnVj dCB2aXJ0dWFsX2VuZ2luZSAqZGUgPSB0b192aXJ0dWFsX2VuZ2luZShkc3QtPmVuZ2luZSk7Cj4g LQo+IC0JCWRlLT5ib25kcyA9IGttZW1kdXAoc2UtPmJvbmRzLAo+IC0JCQkJICAgIHNpemVvZigq c2UtPmJvbmRzKSAqIHNlLT5udW1fYm9uZHMsCj4gLQkJCQkgICAgR0ZQX0tFUk5FTCk7Cj4gLQkJ aWYgKCFkZS0+Ym9uZHMpIHsKPiAtCQkJaW50ZWxfY29udGV4dF9wdXQoZHN0KTsKPiAtCQkJcmV0 dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gLQkJfQo+IC0KPiAtCQlkZS0+bnVtX2JvbmRzID0gc2Ut Pm51bV9ib25kczsKPiAtCX0KPiAtCj4gLQlyZXR1cm4gZHN0Owo+IC19Cj4gLQo+IC1pbnQgaW50 ZWxfdmlydHVhbF9lbmdpbmVfYXR0YWNoX2JvbmQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLAo+IC0JCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICptYXN0ZXIsCj4g LQkJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnNpYmxpbmcpCj4gLXsKPiAt CXN0cnVjdCB2aXJ0dWFsX2VuZ2luZSAqdmUgPSB0b192aXJ0dWFsX2VuZ2luZShlbmdpbmUpOwo+ IC0Jc3RydWN0IHZlX2JvbmQgKmJvbmQ7Cj4gLQlpbnQgbjsKPiAtCj4gLQkvKiBTYW5pdHkgY2hl Y2sgdGhlIHNpYmxpbmcgaXMgcGFydCBvZiB0aGUgdmlydHVhbCBlbmdpbmUgKi8KPiAtCWZvciAo biA9IDA7IG4gPCB2ZS0+bnVtX3NpYmxpbmdzOyBuKyspCj4gLQkJaWYgKHNpYmxpbmcgPT0gdmUt PnNpYmxpbmdzW25dKQo+IC0JCQlicmVhazsKPiAtCWlmIChuID09IHZlLT5udW1fc2libGluZ3Mp Cj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQo+IC0JYm9uZCA9IHZpcnR1YWxfZmluZF9ib25kKHZl LCBtYXN0ZXIpOwo+IC0JaWYgKGJvbmQpIHsKPiAtCQlib25kLT5zaWJsaW5nX21hc2sgfD0gc2li bGluZy0+bWFzazsKPiAtCQlyZXR1cm4gMDsKPiAtCX0KPiAtCj4gLQlib25kID0ga3JlYWxsb2Mo dmUtPmJvbmRzLAo+IC0JCQlzaXplb2YoKmJvbmQpICogKHZlLT5udW1fYm9uZHMgKyAxKSwKPiAt CQkJR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIWJvbmQpCj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gLQo+ IC0JYm9uZFt2ZS0+bnVtX2JvbmRzXS5tYXN0ZXIgPSBtYXN0ZXI7Cj4gLQlib25kW3ZlLT5udW1f Ym9uZHNdLnNpYmxpbmdfbWFzayA9IHNpYmxpbmctPm1hc2s7Cj4gLQo+IC0JdmUtPmJvbmRzID0g Ym9uZDsKPiAtCXZlLT5udW1fYm9uZHMrKzsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAg IHZvaWQgaW50ZWxfZXhlY2xpc3RzX3Nob3dfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAo+ICAgCQkJCSAgIHN0cnVjdCBkcm1fcHJpbnRlciAqbSwKPiAgIAkJCQkgICB2 b2lkICgqc2hvd19yZXF1ZXN0KShzdHJ1Y3QgZHJtX3ByaW50ZXIgKm0sCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbi5oCj4gaW5k ZXggNGNhOWI0NzVlMjUyLi43NDA0MWIxOTk0YWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24uaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uLmgKPiBAQCAtMzIsMTUg KzMyLDQgQEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfc2hvd19yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsCj4gICAJCQkJCQkJaW50IGluZGVudCksCj4gICAJCQkJICAgdW5z aWduZWQgaW50IG1heCk7Cj4gICAKPiAtc3RydWN0IGludGVsX2NvbnRleHQgKgo+IC1pbnRlbF9l eGVjbGlzdHNfY3JlYXRlX3ZpcnR1YWwoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqKnNpYmxpbmdz LAo+IC0JCQkgICAgICAgdW5zaWduZWQgaW50IGNvdW50KTsKPiAtCj4gLXN0cnVjdCBpbnRlbF9j b250ZXh0ICoKPiAtaW50ZWxfZXhlY2xpc3RzX2Nsb25lX3ZpcnR1YWwoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqc3JjKTsKPiAtCj4gLWludCBpbnRlbF92aXJ0dWFsX2VuZ2luZV9hdHRhY2hfYm9u ZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gLQkJCQkgICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKm1hc3RlciwKPiAtCQkJCSAgICAgY29uc3Qgc3RydWN0IGludGVs X2VuZ2luZV9jcyAqc2libGluZyk7Cj4gLQo+ICAgI2VuZGlmIC8qIF9fSU5URUxfRVhFQ0xJU1RT X1NVQk1JU1NJT05fSF9fICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3NlbGZ0ZXN0X2V4ZWNsaXN0cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rf ZXhlY2xpc3RzLmMKPiBpbmRleCAwODg5NmFlMDI3ZDUuLjg4YWFjOTk3N2UwOSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9leGVjbGlzdHMuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2V4ZWNsaXN0cy5jCj4gQEAgLTM3Mjcs NyArMzcyNyw3IEBAIHN0YXRpYyBpbnQgbm9wX3ZpcnR1YWxfZW5naW5lKHN0cnVjdCBpbnRlbF9n dCAqZ3QsCj4gICAJR0VNX0JVR19PTighbmN0eCB8fCBuY3R4ID4gQVJSQVlfU0laRSh2ZSkpOwo+ ICAgCj4gICAJZm9yIChuID0gMDsgbiA8IG5jdHg7IG4rKykgewo+IC0JCXZlW25dID0gaW50ZWxf ZXhlY2xpc3RzX2NyZWF0ZV92aXJ0dWFsKHNpYmxpbmdzLCBuc2libGluZyk7Cj4gKwkJdmVbbl0g PSBpbnRlbF9lbmdpbmVfY3JlYXRlX3ZpcnR1YWwoc2libGluZ3MsIG5zaWJsaW5nKTsKPiAgIAkJ aWYgKElTX0VSUih2ZVtuXSkpIHsKPiAgIAkJCWVyciA9IFBUUl9FUlIodmVbbl0pOwo+ICAgCQkJ bmN0eCA9IG47Cj4gQEAgLTM5MjMsNyArMzkyMyw3IEBAIHN0YXRpYyBpbnQgbWFza192aXJ0dWFs X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAo+ICAgCSAqIHJlc3RyaWN0IGl0IHRvIG91ciBk ZXNpcmVkIGVuZ2luZSB3aXRoaW4gdGhlIHZpcnR1YWwgZW5naW5lLgo+ICAgCSAqLwo+ICAgCj4g LQl2ZSA9IGludGVsX2V4ZWNsaXN0c19jcmVhdGVfdmlydHVhbChzaWJsaW5ncywgbnNpYmxpbmcp Owo+ICsJdmUgPSBpbnRlbF9lbmdpbmVfY3JlYXRlX3ZpcnR1YWwoc2libGluZ3MsIG5zaWJsaW5n KTsKPiAgIAlpZiAoSVNfRVJSKHZlKSkgewo+ICAgCQllcnIgPSBQVFJfRVJSKHZlKTsKPiAgIAkJ Z290byBvdXRfY2xvc2U7Cj4gQEAgLTQwNTQsNyArNDA1NCw3IEBAIHN0YXRpYyBpbnQgc2xpY2Vp bl92aXJ0dWFsX2VuZ2luZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAo+ICAgCQlpOTE1X3JlcXVlc3Rf YWRkKHJxKTsKPiAgIAl9Cj4gICAKPiAtCWNlID0gaW50ZWxfZXhlY2xpc3RzX2NyZWF0ZV92aXJ0 dWFsKHNpYmxpbmdzLCBuc2libGluZyk7Cj4gKwljZSA9IGludGVsX2VuZ2luZV9jcmVhdGVfdmly dHVhbChzaWJsaW5ncywgbnNpYmxpbmcpOwo+ICAgCWlmIChJU19FUlIoY2UpKSB7Cj4gICAJCWVy ciA9IFBUUl9FUlIoY2UpOwo+ICAgCQlnb3RvIG91dDsKPiBAQCAtNDEwNiw3ICs0MTA2LDcgQEAg c3RhdGljIGludCBzbGljZW91dF92aXJ0dWFsX2VuZ2luZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAo+ ICAgCj4gICAJLyogWFhYIFdlIGRvIG5vdCBoYW5kbGUgb3ZlcnN1YnNjcmlwdGlvbiBhbmQgZmFp cm5lc3Mgd2l0aCBub3JtYWwgcnEgKi8KPiAgIAlmb3IgKG4gPSAwOyBuIDwgbnNpYmxpbmc7IG4r Kykgewo+IC0JCWNlID0gaW50ZWxfZXhlY2xpc3RzX2NyZWF0ZV92aXJ0dWFsKHNpYmxpbmdzLCBu c2libGluZyk7Cj4gKwkJY2UgPSBpbnRlbF9lbmdpbmVfY3JlYXRlX3ZpcnR1YWwoc2libGluZ3Ms IG5zaWJsaW5nKTsKPiAgIAkJaWYgKElTX0VSUihjZSkpIHsKPiAgIAkJCWVyciA9IFBUUl9FUlIo Y2UpOwo+ICAgCQkJZ290byBvdXQ7Cj4gQEAgLTQyMDgsNyArNDIwOCw3IEBAIHN0YXRpYyBpbnQg cHJlc2VydmVkX3ZpcnR1YWxfZW5naW5lKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCj4gICAJaWYgKGVy cikKPiAgIAkJZ290byBvdXRfc2NyYXRjaDsKPiAgIAo+IC0JdmUgPSBpbnRlbF9leGVjbGlzdHNf Y3JlYXRlX3ZpcnR1YWwoc2libGluZ3MsIG5zaWJsaW5nKTsKPiArCXZlID0gaW50ZWxfZW5naW5l X2NyZWF0ZV92aXJ0dWFsKHNpYmxpbmdzLCBuc2libGluZyk7Cj4gICAJaWYgKElTX0VSUih2ZSkp IHsKPiAgIAkJZXJyID0gUFRSX0VSUih2ZSk7Cj4gICAJCWdvdG8gb3V0X3NjcmF0Y2g7Cj4gQEAg LTQ0MzEsMTYgKzQ0MzEsMTYgQEAgc3RhdGljIGludCBib25kX3ZpcnR1YWxfZW5naW5lKHN0cnVj dCBpbnRlbF9ndCAqZ3QsCj4gICAJCWZvciAobiA9IDA7IG4gPCBuc2libGluZzsgbisrKSB7Cj4g ICAJCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqdmU7Cj4gICAKPiAtCQkJdmUgPSBpbnRlbF9leGVj bGlzdHNfY3JlYXRlX3ZpcnR1YWwoc2libGluZ3MsIG5zaWJsaW5nKTsKPiArCQkJdmUgPSBpbnRl bF9lbmdpbmVfY3JlYXRlX3ZpcnR1YWwoc2libGluZ3MsIG5zaWJsaW5nKTsKPiAgIAkJCWlmIChJ U19FUlIodmUpKSB7Cj4gICAJCQkJZXJyID0gUFRSX0VSUih2ZSk7Cj4gICAJCQkJb25zdGFja19m ZW5jZV9maW5pKCZmZW5jZSk7Cj4gICAJCQkJZ290byBvdXQ7Cj4gICAJCQl9Cj4gICAKPiAtCQkJ ZXJyID0gaW50ZWxfdmlydHVhbF9lbmdpbmVfYXR0YWNoX2JvbmQodmUtPmVuZ2luZSwKPiAtCQkJ CQkJCSAgICAgICBtYXN0ZXIsCj4gLQkJCQkJCQkgICAgICAgc2libGluZ3Nbbl0pOwo+ICsJCQll cnIgPSBpbnRlbF9lbmdpbmVfYXR0YWNoX2JvbmQodmUtPmVuZ2luZSwKPiArCQkJCQkJICAgICAg IG1hc3RlciwKPiArCQkJCQkJICAgICAgIHNpYmxpbmdzW25dKTsKPiAgIAkJCWlmIChlcnIpIHsK PiAgIAkJCQlpbnRlbF9jb250ZXh0X3B1dCh2ZSk7Cj4gICAJCQkJb25zdGFja19mZW5jZV9maW5p KCZmZW5jZSk7Cj4gQEAgLTQ1NzYsNyArNDU3Niw3IEBAIHN0YXRpYyBpbnQgcmVzZXRfdmlydHVh bF9lbmdpbmUoc3RydWN0IGludGVsX2d0ICpndCwKPiAgIAlpZiAoaWd0X3NwaW5uZXJfaW5pdCgm c3BpbiwgZ3QpKQo+ICAgCQlyZXR1cm4gLUVOT01FTTsKPiAgIAo+IC0JdmUgPSBpbnRlbF9leGVj bGlzdHNfY3JlYXRlX3ZpcnR1YWwoc2libGluZ3MsIG5zaWJsaW5nKTsKPiArCXZlID0gaW50ZWxf ZW5naW5lX2NyZWF0ZV92aXJ0dWFsKHNpYmxpbmdzLCBuc2libGluZyk7Cj4gICAJaWYgKElTX0VS Uih2ZSkpIHsKPiAgIAkJZXJyID0gUFRSX0VSUih2ZSk7Cj4gICAJCWdvdG8gb3V0X3NwaW47Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNz aW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5j Cj4gaW5kZXggZDYwNWFmMGQ2NmU2Li5jY2JjZjAyNGIzMWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKPiBAQCAtNjAsNiAr NjAsMTUgQEAKPiAgICAqCj4gICAgKi8KPiAgIAo+ICsvKiBHdUMgVmlydHVhbCBFbmdpbmUgKi8K PiArc3RydWN0IGd1Y192aXJ0dWFsX2VuZ2luZSB7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz IGJhc2U7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCBjb250ZXh0Owo+ICt9Owo+ICsKPiArc3Rh dGljIHN0cnVjdCBpbnRlbF9jb250ZXh0ICoKPiArZ3VjX2NyZWF0ZV92aXJ0dWFsKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKipzaWJsaW5ncywgdW5zaWduZWQgaW50IGNvdW50KTsKPiArCj4gICAj ZGVmaW5lIEdVQ19SRVFVRVNUX1NJWkUgNjQgLyogYnl0ZXMgKi8KPiAgIAo+ICAgLyoKPiBAQCAt OTI4LDIwICs5MzcsMzUgQEAgc3RhdGljIGludCBndWNfbHJjX2Rlc2NfcGluKHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjZSkKPiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+ICAgCj4gLXN0YXRpYyBpbnQg Z3VjX2NvbnRleHRfcHJlX3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCj4gLQkJCSAgICAg ICBzdHJ1Y3QgaTkxNV9nZW1fd3dfY3R4ICp3dywKPiAtCQkJICAgICAgIHZvaWQgKip2YWRkcikK PiArc3RhdGljIGludCBfX2d1Y19jb250ZXh0X3ByZV9waW4oc3RydWN0IGludGVsX2NvbnRleHQg KmNlLAo+ICsJCQkJIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiArCQkJCSBzdHJ1 Y3QgaTkxNV9nZW1fd3dfY3R4ICp3dywKPiArCQkJCSB2b2lkICoqdmFkZHIpCj4gICB7Cj4gLQly ZXR1cm4gbHJjX3ByZV9waW4oY2UsIGNlLT5lbmdpbmUsIHd3LCB2YWRkcik7Cj4gKwlyZXR1cm4g bHJjX3ByZV9waW4oY2UsIGVuZ2luZSwgd3csIHZhZGRyKTsKPiAgIH0KPiAgIAo+IC1zdGF0aWMg aW50IGd1Y19jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHZvaWQgKnZhZGRy KQo+ICtzdGF0aWMgaW50IF9fZ3VjX2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpj ZSwKPiArCQkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gKwkJCSAgICAg dm9pZCAqdmFkZHIpCj4gICB7Cj4gICAJaWYgKGk5MTVfZ2d0dF9vZmZzZXQoY2UtPnN0YXRlKSAh PQo+ICAgCSAgICAoY2UtPmxyYy5scmNhICYgQ1RYX0dUVF9BRERSRVNTX01BU0spKQo+ICAgCQlz ZXRfYml0KENPTlRFWFRfTFJDQV9ESVJUWSwgJmNlLT5mbGFncyk7Cj4gICAKPiAtCXJldHVybiBs cmNfcGluKGNlLCBjZS0+ZW5naW5lLCB2YWRkcik7Cj4gKwlyZXR1cm4gbHJjX3BpbihjZSwgZW5n aW5lLCB2YWRkcik7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZ3VjX2NvbnRleHRfcHJlX3Bpbihz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCj4gKwkJCSAgICAgICBzdHJ1Y3QgaTkxNV9nZW1fd3df Y3R4ICp3dywKPiArCQkJICAgICAgIHZvaWQgKip2YWRkcikKPiArewo+ICsJcmV0dXJuIF9fZ3Vj X2NvbnRleHRfcHJlX3BpbihjZSwgY2UtPmVuZ2luZSwgd3csIHZhZGRyKTsKPiArfQo+ICsKPiAr c3RhdGljIGludCBndWNfY29udGV4dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCB2b2lk ICp2YWRkcikKPiArewo+ICsJcmV0dXJuIF9fZ3VjX2NvbnRleHRfcGluKGNlLCBjZS0+ZW5naW5l LCB2YWRkcik7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkIGd1Y19jb250ZXh0X3VucGluKHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPiBAQCAtMTA0MSw2ICsxMDY1LDIxIEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBndWNfbHJjX2Rlc2NfdW5waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ ICAgCWRlcmVnaXN0ZXJfY29udGV4dChjZSwgY2UtPmd1Y19pZCk7Cj4gICB9Cj4gICAKPiArc3Rh dGljIHZvaWQgX19ndWNfY29udGV4dF9kZXN0cm95KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkK PiArewo+ICsJbHJjX2ZpbmkoY2UpOwo+ICsJaW50ZWxfY29udGV4dF9maW5pKGNlKTsKPiArCj4g KwlpZiAoaW50ZWxfZW5naW5lX2lzX3ZpcnR1YWwoY2UtPmVuZ2luZSkpIHsKPiArCQlzdHJ1Y3Qg Z3VjX3ZpcnR1YWxfZW5naW5lICp2ZSA9Cj4gKwkJCWNvbnRhaW5lcl9vZihjZSwgdHlwZW9mKCp2 ZSksIGNvbnRleHQpOwo+ICsKPiArCQlrZnJlZSh2ZSk7Cj4gKwl9IGVsc2Ugewo+ICsJCWludGVs X2NvbnRleHRfZnJlZShjZSk7Cj4gKwl9Cj4gK30KPiArCj4gICBzdGF0aWMgdm9pZCBndWNfY29u dGV4dF9kZXN0cm95KHN0cnVjdCBrcmVmICprcmVmKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF9j b250ZXh0ICpjZSA9IGNvbnRhaW5lcl9vZihrcmVmLCB0eXBlb2YoKmNlKSwgcmVmKTsKPiBAQCAt MTA1Nyw3ICsxMDk2LDcgQEAgc3RhdGljIHZvaWQgZ3VjX2NvbnRleHRfZGVzdHJveShzdHJ1Y3Qg a3JlZiAqa3JlZikKPiAgIAlpZiAoY29udGV4dF9ndWNfaWRfaW52YWxpZChjZSkgfHwKPiAgIAkg ICAgIWxyY19kZXNjX3JlZ2lzdGVyZWQoZ3VjLCBjZS0+Z3VjX2lkKSkgewo+ICAgCQlyZWxlYXNl X2d1Y19pZChndWMsIGNlKTsKPiAtCQlscmNfZGVzdHJveShrcmVmKTsKCkFGQUlDUyBhZnRlciB0 aGlzIHBhdGNoIHdlIG9ubHkgaGF2ZSAxIHVzZSBvZiBscmNfZGVzdHJveSBpbnNpZGUgdGhlIApl eGVjbGlzdHMgZmlsZSwgd2hpbGUgd2UgZG8gaGF2ZSAyIG9wZW4gY29kZWQgaW1wbGVtZW50YXRp b25zIChoZXJlIGFuZCAKZXhlY2xpc3RzIFZFKS4gU2luY2UgbHJjX2ZpbmkgYW5kIGludGVsX2Nv bnRleHRfZmluaSBhcmUgc3RpbGwgYWx3YXlzIApjYWxsZWQgYXMgYSBwYWlyLCBtYXliZSB3ZSBj YW4gcmVwbGFjZSBscmNfZGVzdHJveSB3aXRoIGEgZnVuY3Rpb24gdGhhdCAKY2FsbHMgdGhvc2Ug MiAoaS5lIGJhc2ljYWxseSBqdXN0IHJlbW92ZSB0aGUgZnJlZSgpIGZyb20gbHJjX2Rlc3Ryb3kp PyAKQ2FuIGJlIGRvbmUgYXMgYSBmb2xsb3cgdXAuCgo+ICsJCV9fZ3VjX2NvbnRleHRfZGVzdHJv eShjZSk7Cj4gICAJCXJldHVybjsKPiAgIAl9Cj4gICAKPiBAQCAtMTA3Myw3ICsxMTEyLDcgQEAg c3RhdGljIHZvaWQgZ3VjX2NvbnRleHRfZGVzdHJveShzdHJ1Y3Qga3JlZiAqa3JlZikKPiAgIAlp ZiAoY29udGV4dF9ndWNfaWRfaW52YWxpZChjZSkpIHsKPiAgIAkJX19yZWxlYXNlX2d1Y19pZChn dWMsIGNlKTsKPiAgIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZ3VjLT5jb250ZXh0c19sb2Nr LCBmbGFncyk7Cj4gLQkJbHJjX2Rlc3Ryb3koa3JlZik7Cj4gKwkJX19ndWNfY29udGV4dF9kZXN0 cm95KGNlKTsKPiAgIAkJcmV0dXJuOwo+ICAgCX0KPiAgIAo+IEBAIC0xMTE4LDYgKzExNTcsOCBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2NvbnRleHRfb3BzIGd1Y19jb250ZXh0X29wcyA9 IHsKPiAgIAo+ICAgCS5yZXNldCA9IGxyY19yZXNldCwKPiAgIAkuZGVzdHJveSA9IGd1Y19jb250 ZXh0X2Rlc3Ryb3ksCj4gKwo+ICsJLmNyZWF0ZV92aXJ0dWFsID0gZ3VjX2NyZWF0ZV92aXJ0dWFs LAo+ICAgfTsKPiAgIAo+ICAgc3RhdGljIHZvaWQgX19ndWNfc2lnbmFsX2NvbnRleHRfZmVuY2Uo c3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+IEBAIC0xMjQ2LDYgKzEyODcsOTYgQEAgc3RhdGlj IGludCBndWNfcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgIAlyZXR1 cm4gMDsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqCj4gK2d1 Y192aXJ0dWFsX2dldF9zaWJsaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnZlLCB1bnNpZ25l ZCBpbnQgc2libGluZykKPiArewo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ ICsJaW50ZWxfZW5naW5lX21hc2tfdCB0bXAsIG1hc2sgPSB2ZS0+bWFzazsKPiArCXVuc2lnbmVk IGludCBudW1fc2libGluZ3MgPSAwOwo+ICsKPiArCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5n aW5lLCB2ZS0+Z3QsIG1hc2ssIHRtcCkKPiArCQlpZiAobnVtX3NpYmxpbmdzKysgPT0gc2libGlu ZykKPiArCQkJcmV0dXJuIGVuZ2luZTsKPiArCj4gKwlyZXR1cm4gTlVMTDsKPiArfQo+ICsKPiAr c3RhdGljIGludCBndWNfdmlydHVhbF9jb250ZXh0X3ByZV9waW4oc3RydWN0IGludGVsX2NvbnRl eHQgKmNlLAo+ICsJCQkJICAgICAgIHN0cnVjdCBpOTE1X2dlbV93d19jdHggKnd3LAo+ICsJCQkJ ICAgICAgIHZvaWQgKip2YWRkcikKPiArewo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lID0gZ3VjX3ZpcnR1YWxfZ2V0X3NpYmxpbmcoY2UtPmVuZ2luZSwgMCk7Cj4gKwo+ICsJcmV0 dXJuIF9fZ3VjX2NvbnRleHRfcHJlX3BpbihjZSwgZW5naW5lLCB3dywgdmFkZHIpOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgaW50IGd1Y192aXJ0dWFsX2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjZSwgdm9pZCAqdmFkZHIpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSA9IGd1Y192aXJ0dWFsX2dldF9zaWJsaW5nKGNlLT5lbmdpbmUsIDApOwo+ICsKPiArCXJl dHVybiBfX2d1Y19jb250ZXh0X3BpbihjZSwgZW5naW5lLCB2YWRkcik7Cj4gK30KPiArCj4gK3N0 YXRpYyB2b2lkIGd1Y192aXJ0dWFsX2NvbnRleHRfZW50ZXIoc3RydWN0IGludGVsX2NvbnRleHQg KmNlKQo+ICt7Cj4gKwlpbnRlbF9lbmdpbmVfbWFza190IHRtcCwgbWFzayA9IGNlLT5lbmdpbmUt Pm1hc2s7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gKwo+ICsJZm9yX2Vh Y2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGNlLT5lbmdpbmUtPmd0LCBtYXNrLCB0bXApCj4gKwkJ aW50ZWxfZW5naW5lX3BtX2dldChlbmdpbmUpOwo+ICsKPiArCWludGVsX3RpbWVsaW5lX2VudGVy KGNlLT50aW1lbGluZSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGd1Y192aXJ0dWFsX2NvbnRl eHRfZXhpdChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4gK3sKPiArCWludGVsX2VuZ2luZV9t YXNrX3QgdG1wLCBtYXNrID0gY2UtPmVuZ2luZS0+bWFzazsKPiArCXN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZTsKPiArCj4gKwlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgY2Ut PmVuZ2luZS0+Z3QsIG1hc2ssIHRtcCkKPiArCQlpbnRlbF9lbmdpbmVfcG1fcHV0KGVuZ2luZSk7 Cj4gKwo+ICsJaW50ZWxfdGltZWxpbmVfZXhpdChjZS0+dGltZWxpbmUpOwo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50IGd1Y192aXJ0dWFsX2NvbnRleHRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQg KmNlKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBndWNfdmlydHVh bF9nZXRfc2libGluZyhjZS0+ZW5naW5lLCAwKTsKPiArCj4gKwlyZXR1cm4gbHJjX2FsbG9jKGNl LCBlbmdpbmUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGludGVsX2NvbnRleHQgKmd1Y19j bG9uZV92aXJ0dWFsKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnNyYykKPiArewo+ICsJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqc2libGluZ3NbR1VDX01BWF9JTlNUQU5DRVNfUEVSX0NMQVNTXSwg KmVuZ2luZTsKPiArCWludGVsX2VuZ2luZV9tYXNrX3QgdG1wLCBtYXNrID0gc3JjLT5tYXNrOwo+ ICsJdW5zaWduZWQgaW50IG51bV9zaWJsaW5ncyA9IDA7Cj4gKwo+ICsJZm9yX2VhY2hfZW5naW5l X21hc2tlZChlbmdpbmUsIHNyYy0+Z3QsIG1hc2ssIHRtcCkKPiArCQlzaWJsaW5nc1tudW1fc2li bGluZ3MrK10gPSBlbmdpbmU7Cj4gKwo+ICsJcmV0dXJuIGd1Y19jcmVhdGVfdmlydHVhbChzaWJs aW5ncywgbnVtX3NpYmxpbmdzKTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRl bF9jb250ZXh0X29wcyB2aXJ0dWFsX2d1Y19jb250ZXh0X29wcyA9IHsKPiArCS5hbGxvYyA9IGd1 Y192aXJ0dWFsX2NvbnRleHRfYWxsb2MsCj4gKwo+ICsJLnByZV9waW4gPSBndWNfdmlydHVhbF9j b250ZXh0X3ByZV9waW4sCj4gKwkucGluID0gZ3VjX3ZpcnR1YWxfY29udGV4dF9waW4sCj4gKwku dW5waW4gPSBndWNfY29udGV4dF91bnBpbiwKPiArCS5wb3N0X3VucGluID0gZ3VjX2NvbnRleHRf cG9zdF91bnBpbiwKPiArCj4gKwkuZW50ZXIgPSBndWNfdmlydHVhbF9jb250ZXh0X2VudGVyLAo+ ICsJLmV4aXQgPSBndWNfdmlydHVhbF9jb250ZXh0X2V4aXQsCj4gKwo+ICsJLnNjaGVkX2Rpc2Fi bGUgPSBndWNfY29udGV4dF9zY2hlZF9kaXNhYmxlLAo+ICsKPiArCS5kZXN0cm95ID0gZ3VjX2Nv bnRleHRfZGVzdHJveSwKPiArCj4gKwkuY2xvbmVfdmlydHVhbCA9IGd1Y19jbG9uZV92aXJ0dWFs LAo+ICsJLmdldF9zaWJsaW5nID0gZ3VjX3ZpcnR1YWxfZ2V0X3NpYmxpbmcsCj4gK307Cj4gKwo+ ICAgc3RhdGljIHZvaWQgc2FuaXRpemVfaHdzcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCj4gICB7Cj4gICAJc3RydWN0IGludGVsX3RpbWVsaW5lICp0bDsKPiBAQCAtMTU1Nyw3ICsx Njg4LDcgQEAgaW50IGludGVsX2d1Y19kZXJlZ2lzdGVyX2RvbmVfcHJvY2Vzc19tc2coc3RydWN0 IGludGVsX2d1YyAqZ3VjLAo+ICAgCX0gZWxzZSBpZiAoY29udGV4dF9kZXN0cm95ZWQoY2UpKSB7 Cj4gICAJCS8qIENvbnRleHQgaGFzIGJlZW4gZGVzdHJveWVkICovCj4gICAJCXJlbGVhc2VfZ3Vj X2lkKGd1YywgY2UpOwo+IC0JCWxyY19kZXN0cm95KCZjZS0+cmVmKTsKPiArCQlfX2d1Y19jb250 ZXh0X2Rlc3Ryb3koY2UpOwo+ICAgCX0KPiAgIAo+ICAgCWRlY3Jfb3V0c3RhbmRpbmdfc3VibWlz c2lvbl9nMmgoZ3VjKTsKPiBAQCAtMTY2OSwzICsxODAwLDEwNyBAQCB2b2lkIGludGVsX2d1Y19s b2dfY29udGV4dF9pbmZvKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywKPiAgIAkJCSAgIGF0b21pY19y ZWFkKCZjZS0+Z3VjX3NjaGVkX3N0YXRlX25vX2xvY2spKTsKPiAgIAl9Cj4gICB9Cj4gKwo+ICtz dGF0aWMgc3RydWN0IGludGVsX2NvbnRleHQgKgo+ICtndWNfY3JlYXRlX3ZpcnR1YWwoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqKnNpYmxpbmdzLCB1bnNpZ25lZCBpbnQgY291bnQpCj4gK3sKPiAr CXN0cnVjdCBndWNfdmlydHVhbF9lbmdpbmUgKnZlOwo+ICsJc3RydWN0IGludGVsX2d1YyAqZ3Vj Owo+ICsJdW5zaWduZWQgaW50IG47Cj4gKwlpbnQgZXJyOwo+ICsKPiArCXZlID0ga3phbGxvYyhz aXplb2YoKnZlKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIXZlKQo+ICsJCXJldHVybiBFUlJfUFRS KC1FTk9NRU0pOwo+ICsKPiArCWd1YyA9ICZzaWJsaW5nc1swXS0+Z3QtPnVjLmd1YzsKPiArCj4g Kwl2ZS0+YmFzZS5pOTE1ID0gc2libGluZ3NbMF0tPmk5MTU7Cj4gKwl2ZS0+YmFzZS5ndCA9IHNp YmxpbmdzWzBdLT5ndDsKPiArCXZlLT5iYXNlLnVuY29yZSA9IHNpYmxpbmdzWzBdLT51bmNvcmU7 Cj4gKwl2ZS0+YmFzZS5pZCA9IC0xOwo+ICsKPiArCXZlLT5iYXNlLnVhYmlfY2xhc3MgPSBJOTE1 X0VOR0lORV9DTEFTU19JTlZBTElEOwo+ICsJdmUtPmJhc2UuaW5zdGFuY2UgPSBJOTE1X0VOR0lO RV9DTEFTU19JTlZBTElEX1ZJUlRVQUw7Cj4gKwl2ZS0+YmFzZS51YWJpX2luc3RhbmNlID0gSTkx NV9FTkdJTkVfQ0xBU1NfSU5WQUxJRF9WSVJUVUFMOwo+ICsJdmUtPmJhc2Uuc2F0dXJhdGVkID0g QUxMX0VOR0lORVM7CgpNb3N0IG9mIHRoZXNlIHNldHRpbmdzIGFyZSB0aGUgc2FtZSBmb3IgYm90 aCBleGVjbGlzdHMgYW5kIEd1QyBhbmQgCmFyZW4ndCBiYWNrLWVuZCBkZXBlbmRlbnQuIE1heWJl IHdlIGNhbiBoYXZlIGE6CgppbnRlbF92aXJ0dWFsX2VuZ2luZV9pbml0X2Vhcmx5KHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIMKgwqDCoMKgwqDCoMKgIMKgwqDCoMKgwqDCoMKgIMKg wqDCoMKgwqDCoMKgIMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnNpYmxp bmcpOwoKQW5kIGNhbGwgdGhhdCBmcm9tIGJvdGggcGxhY2VzPyBDYW4gYmUgZG9uZSBhcyBhIGZv bGxvdy11cAoKPiArCXZlLT5iYXNlLmJyZWFkY3J1bWJzID0gaW50ZWxfYnJlYWRjcnVtYnNfY3Jl YXRlKCZ2ZS0+YmFzZSk7Cj4gKwlpZiAoIXZlLT5iYXNlLmJyZWFkY3J1bWJzKSB7Cj4gKwkJa2Zy ZWUodmUpOwo+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICsJfQo+ICsKPiArCXNucHJp bnRmKHZlLT5iYXNlLm5hbWUsIHNpemVvZih2ZS0+YmFzZS5uYW1lKSwgInZpcnR1YWwiKTsKPiAr Cj4gKwl2ZS0+YmFzZS5zY2hlZF9lbmdpbmUgPSBpOTE1X3NjaGVkX2VuZ2luZV9nZXQoZ3VjLT5z Y2hlZF9lbmdpbmUpOwo+ICsKPiArCXZlLT5iYXNlLmNvcHMgPSAmdmlydHVhbF9ndWNfY29udGV4 dF9vcHM7Cj4gKwl2ZS0+YmFzZS5yZXF1ZXN0X2FsbG9jID0gZ3VjX3JlcXVlc3RfYWxsb2M7Cj4g Kwo+ICsJdmUtPmJhc2Uuc3VibWl0X3JlcXVlc3QgPSBndWNfc3VibWl0X3JlcXVlc3Q7Cj4gKwo+ ICsJdmUtPmJhc2UuZmxhZ3MgPSBJOTE1X0VOR0lORV9JU19WSVJUVUFMOwo+ICsKPiArCWludGVs X2NvbnRleHRfaW5pdCgmdmUtPmNvbnRleHQsICZ2ZS0+YmFzZSk7Cj4gKwo+ICsJZm9yIChuID0g MDsgbiA8IGNvdW50OyBuKyspIHsKPiArCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpzaWJsaW5n ID0gc2libGluZ3Nbbl07Cj4gKwo+ICsJCUdFTV9CVUdfT04oIWlzX3Bvd2VyX29mXzIoc2libGlu Zy0+bWFzaykpOwo+ICsJCWlmIChzaWJsaW5nLT5tYXNrICYgdmUtPmJhc2UubWFzaykgewo+ICsJ CQlEUk1fREVCVUcoImR1cGxpY2F0ZSAlcyBlbnRyeSBpbiBsb2FkIGJhbGFuY2VyXG4iLAo+ICsJ CQkJICBzaWJsaW5nLT5uYW1lKTsKPiArCQkJZXJyID0gLUVJTlZBTDsKPiArCQkJZ290byBlcnJf cHV0Owo+ICsJCX0KPiArCj4gKwkJdmUtPmJhc2UubWFzayB8PSBzaWJsaW5nLT5tYXNrOwo+ICsK PiArCQlpZiAobiAhPSAwICYmIHZlLT5iYXNlLmNsYXNzICE9IHNpYmxpbmctPmNsYXNzKSB7Cj4g KwkJCURSTV9ERUJVRygiaW52YWxpZCBtaXhpbmcgb2YgZW5naW5lIGNsYXNzLCBzaWJsaW5nICVk LCBhbHJlYWR5ICVkXG4iLAo+ICsJCQkJICBzaWJsaW5nLT5jbGFzcywgdmUtPmJhc2UuY2xhc3Mp Owo+ICsJCQllcnIgPSAtRUlOVkFMOwo+ICsJCQlnb3RvIGVycl9wdXQ7Cj4gKwkJfSBlbHNlIGlm IChuID09IDApIHsKPiArCQkJdmUtPmJhc2UuY2xhc3MgPSBzaWJsaW5nLT5jbGFzczsKPiArCQkJ dmUtPmJhc2UudWFiaV9jbGFzcyA9IHNpYmxpbmctPnVhYmlfY2xhc3M7Cj4gKwkJCXNucHJpbnRm KHZlLT5iYXNlLm5hbWUsIHNpemVvZih2ZS0+YmFzZS5uYW1lKSwKPiArCQkJCSAidiVkeCVkIiwg dmUtPmJhc2UuY2xhc3MsIGNvdW50KTsKPiArCQkJdmUtPmJhc2UuY29udGV4dF9zaXplID0gc2li bGluZy0+Y29udGV4dF9zaXplOwo+ICsKPiArCQkJdmUtPmJhc2UuZW1pdF9iYl9zdGFydCA9IHNp YmxpbmctPmVtaXRfYmJfc3RhcnQ7Cj4gKwkJCXZlLT5iYXNlLmVtaXRfZmx1c2ggPSBzaWJsaW5n LT5lbWl0X2ZsdXNoOwo+ICsJCQl2ZS0+YmFzZS5lbWl0X2luaXRfYnJlYWRjcnVtYiA9Cj4gKwkJ CQlzaWJsaW5nLT5lbWl0X2luaXRfYnJlYWRjcnVtYjsKPiArCQkJdmUtPmJhc2UuZW1pdF9maW5p X2JyZWFkY3J1bWIgPQo+ICsJCQkJc2libGluZy0+ZW1pdF9maW5pX2JyZWFkY3J1bWI7Cj4gKwkJ CXZlLT5iYXNlLmVtaXRfZmluaV9icmVhZGNydW1iX2R3ID0KPiArCQkJCXNpYmxpbmctPmVtaXRf ZmluaV9icmVhZGNydW1iX2R3Owo+ICsKPiArCQkJdmUtPmJhc2UuZmxhZ3MgfD0gc2libGluZy0+ ZmxhZ3M7Cj4gKwoKU2FtZSBoZXJlLCBtb3N0IG9mIHRoZXNlIHNldHRpbmcgZnJvbSB0aGUgc2li bGluZyBhcmUgdGhlIHNhbWUuIAppbnRlbF92aXJ0dWFsX2VuZ2luZV9pbmhlcml0X2Zyb21fc2li bGluZygpPwoKQXBhcnQgZnJvbSB0aGUgdmFyaW91cyBuaXRzIHRoZSBjb2RlIExHVE0sIGJ1dCBJ J2xsIHdhaXQgdW50aWwgdGhlIG5leHQgCnNwaW4gZm9yIGFuIHItYiBzaW5jZSBhIGdvb2QgY2h1 bmsgb2YgdGhlIHBhdGNoIGlzIGdvaW5nIGF3YXkuCgpEYW5pZWxlCgo+ICsJCQl2ZS0+YmFzZS5w cm9wcy50aW1lc2xpY2VfZHVyYXRpb25fbXMgPQo+ICsJCQkJc2libGluZy0+cHJvcHMudGltZXNs aWNlX2R1cmF0aW9uX21zOwo+ICsJCX0KPiArCX0KPiArCj4gKwlyZXR1cm4gJnZlLT5jb250ZXh0 Owo+ICsKPiArZXJyX3B1dDoKPiArCWludGVsX2NvbnRleHRfcHV0KCZ2ZS0+Y29udGV4dCk7Cj4g KwlyZXR1cm4gRVJSX1BUUihlcnIpOwo+ICt9Cj4gKwo+ICsKPiArCj4gK2Jvb2wgaW50ZWxfZ3Vj X3ZpcnR1YWxfZW5naW5lX2hhc19oZWFydGJlYXQoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqdmUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiArCWludGVs X2VuZ2luZV9tYXNrX3QgdG1wLCBtYXNrID0gdmUtPm1hc2s7Cj4gKwo+ICsJZm9yX2VhY2hfZW5n aW5lX21hc2tlZChlbmdpbmUsIHZlLT5ndCwgbWFzaywgdG1wKQo+ICsJCWlmIChSRUFEX09OQ0Uo ZW5naW5lLT5wcm9wcy5oZWFydGJlYXRfaW50ZXJ2YWxfbXMpKQo+ICsJCQlyZXR1cm4gdHJ1ZTsK PiArCj4gKwlyZXR1cm4gZmFsc2U7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2ludGVsX2d1Y19zdWJtaXNzaW9uLmgKPiBpbmRleCA2NDUzZTJiZmExNTEuLjk1ZGY1 YWIwNjAzMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9n dWNfc3VibWlzc2lvbi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxf Z3VjX3N1Ym1pc3Npb24uaAo+IEBAIC0yNSw2ICsyNSw4IEBAIHZvaWQgaW50ZWxfZ3VjX2xvZ19z dWJtaXNzaW9uX2luZm8oc3RydWN0IGludGVsX2d1YyAqZ3VjLAo+ICAgCQkJCSAgIHN0cnVjdCBk cm1fcHJpbnRlciAqcCk7Cj4gICB2b2lkIGludGVsX2d1Y19sb2dfY29udGV4dF9pbmZvKHN0cnVj dCBpbnRlbF9ndWMgKmd1Yywgc3RydWN0IGRybV9wcmludGVyICpwKTsKPiAgIAo+ICtib29sIGlu dGVsX2d1Y192aXJ0dWFsX2VuZ2luZV9oYXNfaGVhcnRiZWF0KGNvbnN0IHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnZlKTsKPiArCj4gICBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZ3VjX3N1Ym1p c3Npb25faXNfc3VwcG9ydGVkKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPiAgIHsKPiAgIAkvKiBY WFg6IEd1QyBzdWJtaXNzaW9uIGlzIHVuYXZhaWxhYmxlIGZvciBub3cgKi8KCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=