Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp2288723rwd; Wed, 14 Jun 2023 00:13:56 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5nJYzuCeS4lPYEp4+rf+QMvTvPXQ9aYHklJn12U+xgwvZWJn3qj1e7djEtlYeedeoStokJ X-Received: by 2002:a05:6402:180f:b0:513:fa61:397a with SMTP id g15-20020a056402180f00b00513fa61397amr783039edy.12.1686726835987; Wed, 14 Jun 2023 00:13:55 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1686726835; cv=pass; d=google.com; s=arc-20160816; b=xy4fN0IfB9V0wbxS8R/Fgzvg9nyZuguq6wQOqm/CDwT7bZbeL66I9tQUlN8bfi2dbw IGgxjHkew4qRcqb4Z/b+DcFp27nbe+NcyyT8At7bG7fi/dHz37aj7yIQ0iUpCIQCctAD IfG/b0vvNumw9KvY2Uo4yvdcebXbX1QbjxMxVcSVo3aeNPtfu6u/yD1wnCKeP64VnWpu Fy1dBPPsT01z8Xj2PHUL7vcjsFEqxkUVKcJ1TNjxgdgw4yE/66JuoJotrQ4/BaY93ZnC nMCd+TfZOnQE/6b4wIrHYESOX6u/ZanEwwjTss9PmxB6LR4Eo4Uwy+IgLzW9KcPw/IPq ohkg== 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:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature:dkim-signature; bh=tRp+8M3hEkXmwZKzWj7JgT6nDCu729hergdYPdKPafI=; b=OMzhtG1aNsg4HbIZcXrl3ovWTrHRX4aTMXnfAQH1/pmAEXyGwpxQA0kSioA0ZyYOH5 0zPTu8s29NWPHq1j0YT7OaRNj2iUUwzdbqwwM7QIQmIssR33KjW4uJkpDJAaK49B7ya5 pfYH1JNE7rXei8uH2XsopFTk28nL+xHbPRIFjrpL9Llo29TvGIu5lG08xFpLwGu/quQy y6gHIYHpxeijUVfAePI8eXOMhvnuWod75VhKZXUUChNXoZydvvWenxIjFvPDksoWdIrT 6Kwf4ZqBbjZuUoQAAAWCIF1l61ZMSdQsPTra82toEhwUHXNaPxWVQV6chx1RR/WbIq0a zEdQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=rcSOfLon; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b="SD/DKPq9"; 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 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u8-20020aa7d988000000b0051891d5b194si491944eds.258.2023.06.14.00.13.30; Wed, 14 Jun 2023 00:13:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=rcSOfLon; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b="SD/DKPq9"; 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 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243263AbjFNHKt (ORCPT + 99 others); Wed, 14 Jun 2023 03:10:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235268AbjFNHKl (ORCPT ); Wed, 14 Jun 2023 03:10:41 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.154.123]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CCEBC129; Wed, 14 Jun 2023 00:10:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1686726638; x=1718262638; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=tRp+8M3hEkXmwZKzWj7JgT6nDCu729hergdYPdKPafI=; b=rcSOfLonqip2ggQbad4Yxexqjzmkj4Aw/MHmSB20IMGwL2R9f8cjDNyX 9QPK7nHe0+4UhbUVQ6i3K8h+uwO+PmsqlYEQoZcGQkon+9HMA6/pyxwZS JVI/5gRCP6EQGW6eO+UamwAuuqch4uUWXWp5z/yPdetvH9PgqrLRBg/jT 60k5N+oFs768HGgz3MPqcw7BCSyi5Y79oLJRYLRHvtj584XzHABqSopuk 3wSNOESD8p6nAOiROT6tey7SluW27Is6AaDciLGVs3c3PPv9RfePspA5U 1nJGZfj/X7Q+JjhxhWyFSmG1+uVJ+LyDUsozx/1rLABa8PDwVRwYM+ucb g==; X-IronPort-AV: E=Sophos;i="6.00,241,1681196400"; d="scan'208";a="220209001" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa2.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 14 Jun 2023 00:10:37 -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.2507.21; Wed, 14 Jun 2023 00:10:20 -0700 Received: from NAM04-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.2507.21 via Frontend Transport; Wed, 14 Jun 2023 00:10:20 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lykj/TVXJhdT+ixEaGRymxJsFfpEyYMmpAAREBpDfE51kkrwJGuvDPitxMBBeOvmdp5K8qjWsn9JWoPczLxjc8FKIpjddC9wv6OVatQXvQtnv+MF9Os8xhoOXV4Ea0r+t58nnA2tYRoQgzPtqNsFv+KUEa6OhO7SutpgeUdbWSSAynK9GxOkN7uoQ2U2c7f6EbgJg3sT2/9xOq+MCVUBeCNb2A3LH8GVmkTYOkxF+m0cyssoDmRdpoY5WToDB3i1C/o/sRDwzIlrGZBMC9Fl/girq7ksqgXQbs6XQjUEZfqbFYej8YIiUJ+J/WHoOsOSNG7rsG8WPOUhAVG1nuZbnQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tRp+8M3hEkXmwZKzWj7JgT6nDCu729hergdYPdKPafI=; b=Ra6Pqurmezm5AV+rEp9P4EooNejQvM+Lf5oZLWUchITjvWkHifthcntSVABRUNlIhx4apLOGILxtD22ePnLAM4IBrJ3Iv3JqDK7A3P+tZTKNplQ5Bm6noNZafttFna03GMbBaY77x42NveC1OLSbcTj+yo+NLz9lMfeE8LXpVqqLukZEwcQFdnGwDI0++eL+iBS8NrC566rYftx/8Z61jYvY9sbLGN5kIwg2zyG/JPx4do830eY7L9NkDw0k+HfIsXqlDUqWckg9m+vre0Muy50bzCC2scwulACqihKeg6E/EOuhENb8F1eutMO2LwfzjFZmHzg7Wjvf4AwttEChww== 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=tRp+8M3hEkXmwZKzWj7JgT6nDCu729hergdYPdKPafI=; b=SD/DKPq98JYlgLIQ/LSovH1rKgNz2PwyEoIX8gsh03lgQkM4TOyVFajpaxQQi9TohLJUnSqja+qv9fuMhL7DmAfzZXhtC5tD0sG8iIFHO0ewyPO9hPBP/ukv4G0kXOaHG0Ad++PtIC1ZOBGkL8RWGlTW+YAzKeHch2Yx8i5DfLQ= Received: from SJ2PR11MB7648.namprd11.prod.outlook.com (2603:10b6:a03:4c3::17) by MN0PR11MB6159.namprd11.prod.outlook.com (2603:10b6:208:3c9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Wed, 14 Jun 2023 07:10:17 +0000 Received: from SJ2PR11MB7648.namprd11.prod.outlook.com ([fe80::27bf:a69f:806f:67be]) by SJ2PR11MB7648.namprd11.prod.outlook.com ([fe80::27bf:a69f:806f:67be%5]) with mapi id 15.20.6433.024; Wed, 14 Jun 2023 07:10:17 +0000 From: To: , , , , , , , , , , , , , , CC: , , , , , , Subject: Re: [PATCH 6/9] drm: atmel_hlcdc: Add support for XLCDC in atmel LCD driver Thread-Topic: [PATCH 6/9] drm: atmel_hlcdc: Add support for XLCDC in atmel LCD driver Thread-Index: AQHZno9Ff1Cuco+5VECF25MgwR1ezA== Date: Wed, 14 Jun 2023 07:10:17 +0000 Message-ID: References: <20230613070426.467389-1-manikandan.m@microchip.com> <20230613070426.467389-7-manikandan.m@microchip.com> In-Reply-To: <20230613070426.467389-7-manikandan.m@microchip.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ2PR11MB7648:EE_|MN0PR11MB6159:EE_ x-ms-office365-filtering-correlation-id: 7b7c7113-99c8-4f8a-4e8d-08db6ca6685f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5qA+Gl0DWc3YdAEikCG3mT0+/NMFkmyLgk1IE4fr5Z0vAtJN9SjyBGefcogufgZ9b9bNaqSb6ElR3wRJrv5h7L5384GSGCWFTLoi3ne79IpEhOAf8MHAwm1Ti+VTpdXmo+P1d8hJQfnCZgyT9K1OxIZsHdJaZ0jnc+vhHp8dVQI8M4GJKGcKe811hLDNOojorZjAqLVIdOorvclZD4/JjPXRsB8xw4orxvTskfoFB1Jmbhdc7FDg/axE60eMcflBLj4TSM5sRIHZZjJs3KYXmwKerBK2G66/dnRL+pUXy8OXoRxfahRren+8JsL+1RTdIY9MpLx3Jj0Iz4ooeSoSzV963jxvgSqZUyNPpu4dFoVDNx+i1QngR2by3HaAhTGd4ciesLytueW40SKhnCJWb1bzcRd1qaaT78ke+IdTZt7+Xah72g3BAFGYVOEnjrVDzL9apvfzZeh6H/t1GsXXPRbWMLezM6G0700JPT0Ov4j3xZSSyYf+3OP84QZpD1KNApD55+gYzGDXHhTD5v0HVxcrEEKAzYlLUwjzNkfvYiSn8sqRnlZIFQlO1umeRVflUGwT5GTNgtoLGGAxhwAXN4y6gUztHW/ne85cSTekjrkH2S/OokjUH8SU1KSxDSJ9ruGPmTEy3PnHB8YWkZSmVeRGvBT8IbBvzt3llXqaZ38DYDYT3hlGE/kj4L/09A4laNfzn7rUD3P2RxN1oufje4WHI8DyW8PUJNHPFVU6+rw= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR11MB7648.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(346002)(376002)(366004)(396003)(39860400002)(451199021)(71200400001)(6486002)(478600001)(6506007)(107886003)(26005)(83380400001)(186003)(6512007)(53546011)(36756003)(31696002)(86362001)(38070700005)(38100700002)(2616005)(921005)(122000001)(66556008)(66946007)(64756008)(66446008)(66476007)(4326008)(76116006)(316002)(91956017)(8936002)(8676002)(31686004)(7416002)(5660300002)(30864003)(2906002)(41300700001)(110136005)(54906003)(21314003)(45980500001)(43740500002)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VmVXT2hkQjlHWVp6bGlzTVhvSnpud3ZZdEFyZVgxbS9GaCtxa1FCd3ZUaWtw?= =?utf-8?B?aEtuNEtYVmplYkhqYWJNZGtJYXhzRTdnRENTSVQrWjhhOGF2by9rbVBDYUto?= =?utf-8?B?RGk3ckFXOGg4Y2hvZE9hNEtGbDlIWDY2TUtYT2JibE1rdUxxVzJhZ004WGhn?= =?utf-8?B?OHJ2bWpTU1ZlQUdxYmh3NndZcUpUbUJIbTU2cVgyL2hjMDA4QUFJb1pxTjR2?= =?utf-8?B?bFRYUEtaYVdSZEVXc3UzTlptQUd0QXBJa2d3UU82TE4wZEtZdUZ4VWx5Vzc5?= =?utf-8?B?RUFVRTZSeENVWFRvTmxhaWFQUWxIMWpiaHJRRmM3eWRwdWdCandKSjRDOC9v?= =?utf-8?B?czYvN1RTMUx4UWVFYlNXL3o0VWFkUTVNOEphT0had1YxeHJyakxOYWFRdHgy?= =?utf-8?B?ZUZPVGF3ZS9NMitFSXA4em1ZZUUvSzgzZDNtbFhMdUlVbytUYVVVQzNxVkVz?= =?utf-8?B?Ky9TSFB5VkVpajZUbkFTdUJNbTZBc3E5azhpeUtpVzFwOFdIdzE1WnU2WXVa?= =?utf-8?B?dk9PSlppRjlqQmFuTnlVc2xGbzdaU3FicjFjYTF0cXlkWXNXQ3ZIK1JxbnZ1?= =?utf-8?B?ZVBid2ZFdWJtSFRjcytsVENoM0JyeGNYdzY5d2tBU3FhbWU1a21MU2orSFJ0?= =?utf-8?B?cFlmZHRKQXg5bXhGQmxpNU16ZjR6NkxGZ3R2T1huc0IzL3k4VFUwd0FqcndI?= =?utf-8?B?dDhQV2dOb0RmbjhzNENvUWFPdEhXSHpyOXdSM2NGQ3VnL0pZUlJISnBUTHYv?= =?utf-8?B?eS8zUUJzL3phVXhSTzRjYUdDREF3Y0NhQnRsdFNaY3lmSXNkQjlNK0Vmbm85?= =?utf-8?B?aFBjQ1g4WE1KL1ZIOGxxU0pSSUNOU3VDZ2laRXJnYUtXSU50Tlh4dEs1WSt2?= =?utf-8?B?RE8yQk45ZVFYTFdsWXRhNThyRGFFU1c0aXgwczBTTjQ0OHA2TGMvZkpIWDVP?= =?utf-8?B?NFQxNmx0MXNYanc0TTQ4RkdyUHRzUkc4N2h4cWg5Wnk0eGlwbHBRNnBYbzIz?= =?utf-8?B?Ti9Tc3FRNmx3enlyRzVNOXkrdnlxUGVsWE9jeUtQTnY4ajVpV2lrZWdkbFY0?= =?utf-8?B?bjVqck5SdUFSb1orK3NId3RmcGN5eWhtcTdiS3RYK0lITVZ1aTBmREF2Y09u?= =?utf-8?B?VEQ3WC9Uc0s5OWQ0TEhUcG8xbzBSS0oyOXBvUUlNL0FPSzZTb0pXclFvc1NX?= =?utf-8?B?VzBFemIwT0xNREJVMkRxYldTWG9vNWh0dENMUFM1S1hOTGpSUFlJdFBOeEE1?= =?utf-8?B?N2d0elE5NlZHcmYyVjVqenpLRFZWdGVwNGJrV0x2NFlTSVgzK2ExWVVyR1Vp?= =?utf-8?B?SDhMeTk4VkFpNnZvNEtzRGIwa1BRam9LUktwZk9TSHVBcElpRGZvVm0wcXAy?= =?utf-8?B?NFJ3T0Y5Q05mWUtrVzdjVTNna3NtZUJ2VTZFV1VpL28vZmlXbWdvMk1zTHlx?= =?utf-8?B?a1EraktEM3B5QzdDcmtta0ljYXVvMzBXVk5jTmNsdU9id0t3ZDdGTTFrQWRS?= =?utf-8?B?a0JWWjZqQ1ZNYVR5ZlRROThDVk1jbWJTbW1LVk1aM2dTSUR1RHkza3R1ZTNQ?= =?utf-8?B?MDJkcXNEb0U2NEk5YnJPdUxmMUhSaUNWaFZHek81dXdQekpNS1FyVkRlNUdD?= =?utf-8?B?ck5aVU9KdldINjI4Z2lxeWtaK0dWSS9hdENvOXliem9hV3lxSUs3TXJTRDhO?= =?utf-8?B?aS96V2J1d0IvdmFEZ091d1N0aG40QWJpcU1lQVRlOWcyWWpUakdiamlNWEx6?= =?utf-8?B?QnE0Z0QvcjFzK3dsTUZ4a1owU295K2NMVmVOTHRobkRaYnkyVk1tK0I1aGMx?= =?utf-8?B?RGtoYkUzYXgzQXg1UHZaWWtRU1pxd1VaUVoyeFcwcmpHd3R5ZWU4SGJ3KzhH?= =?utf-8?B?SElLb3FSWUs0TkJweUtUTSs2TGVvY1FSczB6SFp5M3dpRCtKSEN6cUxoUzY5?= =?utf-8?B?SVpBZk8rMW5STmVsdGE1dkNtMzc3azYzQnhSaHYwK0c4NHpMblMvWlB1c3dW?= =?utf-8?B?Q29pNkdHcE9OQlR2SmZXZ3VXcGd0c3k1ZGRQSGFVdkJkdEhDaWRtUW0rSkxC?= =?utf-8?B?MWNUYnlSaHpYQ3BXRHJCV2c0UjAzMUNUNEZwcE1yRk1IbFprSE9IYjFycUpX?= =?utf-8?Q?E2pDjZnHOAzBFiPKsvsaaE/3K?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ2PR11MB7648.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b7c7113-99c8-4f8a-4e8d-08db6ca6685f X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jun 2023 07:10:17.3915 (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: vAOL9XLWQ8MQEn/+xcqMRpWaWguz6frRmUSgHUtjZcFLQx3dyH5+dWq4+6PigIS1vda2UJiHZUOpYtZDe3N/Okiina/dvHcxxqjFvQ8kqjs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR11MB6159 X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_NONE,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gMTMuMDYuMjAyMyAxMDowNCwgTWFuaWthbmRhbiBNdXJhbGlkaGFyYW4gd3JvdGU6DQo+IC0g WExDREMgaW4gU0FNOVg3IGhhcyBkaWZmZXJlbnQgc2V0cyBvZiByZWdpc3RlcnMgYW5kIGFkZGl0 aW9uYWwNCj4gY29uZmlndXJhdGlvbiBiaXRzIHdoZW4gY29tcGFyZWQgdG8gcHJldmlvdXMgSExD REMgSVAuIFJlYWQvd3JpdGUNCj4gb3BlcmF0aW9uIG9uIHRoZSBjb250cm9sbGVyIHJlZ2lzdGVy cyBpcyBub3cgc2VwYXJhdGVkIHVzaW5nIHRoZQ0KPiBYTENEQyBzdGF0dXMgZmxhZy4NCj4gCS0g SEVPIHNjYWxpbmcsIHdpbmRvdyByZXNhbXBsaW5nLCBBbHBoYSBibGVuZGluZywgWVVWLXRvLVJH Qg0KPiBjb252ZXJzaW9uIGluIFhMQ0RDIGlzIGRlcml2ZWQgYW5kIGhhbmRsZWQgdXNpbmcgYWRk aXRpb25hbA0KPiBjb25maWd1cmF0aW9uIGJpdHMgYW5kIHJlZ2lzdGVycy4NCj4gCS0gV3JpdGlu ZyBvbmUgdG8gdGhlIEVuYWJsZSBmaWVsZHMgb2YgZWFjaCBsYXllciBpbiBMQ0RfQVRUUkUNCj4g aXMgcmVxdWlyZWQgdG8gcmVmbGVjdCB0aGUgdmFsdWVzIHNldCBpbiBDb25maWd1cmF0aW9uLCBG QkEsIEVuYWJsZQ0KPiByZWdpc3RlcnMgb2YgZWFjaCBsYXllcg0KPiANCj4gU2lnbmVkLW9mZi1i eTogTWFuaWthbmRhbiBNdXJhbGlkaGFyYW4gPG1hbmlrYW5kYW4ubUBtaWNyb2NoaXAuY29tPg0K PiBbSGFyaS5QcmFzYXRoR0VAbWljcm9jaGlwLmNvbTogdXBkYXRlIHRoZSBhdHRyaWJ1dGUgZmll bGQgZm9yIGVhY2ggbGF5ZXJdDQo+IFNpZ25lZC1vZmYtYnk6IEhhcmkgUHJhc2F0aCBHdWp1bGFu IEVsYW5nbyA8SGFyaS5QcmFzYXRoR0VAbWljcm9jaGlwLmNvbT4NCj4gW2R1cmFpLm1hbmlja2Ft a3JAbWljcm9jaGlwLmNvbTogaW1wbGVtZW50IHN0YXR1cyBmbGFnIHRvIHNlcHJhdGUgcmVnaXN0 ZXIgdXBkYXRlXQ0KPiBTaWduZWQtb2ZmLWJ5OiBEdXJhaSBNYW5pY2thbSBLUiA8ZHVyYWkubWFu aWNrYW1rckBtaWNyb2NoaXAuY29tPg0KPiAtLS0NCj4gIC4uLi9ncHUvZHJtL2F0bWVsLWhsY2Rj L2F0bWVsX2hsY2RjX2NydGMuYyAgICB8ICAyOCArLQ0KPiAgLi4uL2dwdS9kcm0vYXRtZWwtaGxj ZGMvYXRtZWxfaGxjZGNfcGxhbmUuYyAgIHwgMjk3ICsrKysrKysrKysrKysrLS0tLQ0KPiAgMiBm aWxlcyBjaGFuZ2VkLCAyNTYgaW5zZXJ0aW9ucygrKSwgNjkgZGVsZXRpb25zKC0pDQo+IA0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2NydGMu YyBiL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19jcnRjLmMNCj4gaW5k ZXggNTgxODRjZDZhYjBiLi43YzljZjdjMGM3NWQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19jcnRjLmMNCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2NydGMuYw0KPiBAQCAtMTM5LDEwICsxMzksMTAg QEAgc3RhdGljIHZvaWQgYXRtZWxfaGxjZGNfY3J0Y19tb2RlX3NldF9ub2ZiKHN0cnVjdCBkcm1f Y3J0YyAqYykNCj4gIAlzdGF0ZSA9IGRybV9jcnRjX3N0YXRlX3RvX2F0bWVsX2hsY2RjX2NydGNf c3RhdGUoYy0+c3RhdGUpOw0KPiAgCWNmZyA9IHN0YXRlLT5vdXRwdXRfbW9kZSA8PCA4Ow0KPiAg DQo+IC0JaWYgKGFkai0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX05WU1lOQykNCj4gKwlpZiAoIWNy dGMtPmRjLT5pc194bGNkYyAmJiAoYWRqLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfTlZTWU5DKSkN Cj4gIAkJY2ZnIHw9IEFUTUVMX0hMQ0RDX1ZTUE9MOw0KPiAgDQo+IC0JaWYgKGFkai0+ZmxhZ3Mg JiBEUk1fTU9ERV9GTEFHX05IU1lOQykNCj4gKwlpZiAoIWNydGMtPmRjLT5pc194bGNkYyAmJiAo YWRqLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfTkhTWU5DKSkNCj4gIAkJY2ZnIHw9IEFUTUVMX0hM Q0RDX0hTUE9MOw0KPiAgDQo+ICAJcmVnbWFwX3VwZGF0ZV9iaXRzKHJlZ21hcCwgQVRNRUxfSExD RENfQ0ZHKDUpLA0KPiBAQCAtMTc3LDYgKzE3NywxOCBAQCBzdGF0aWMgdm9pZCBhdG1lbF9obGNk Y19jcnRjX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqYywNCj4gIA0KPiAgCXBtX3J1 bnRpbWVfZ2V0X3N5bmMoZGV2LT5kZXYpOw0KPiAgDQo+ICsJaWYgKGNydGMtPmRjLT5pc194bGNk Yykgew0KPiArCQlyZWdtYXBfd3JpdGUocmVnbWFwLCBBVE1FTF9ITENEQ19ESVMsIEFUTUVMX1hM Q0RDX0NNKTsNCj4gKwkJd2hpbGUgKCFyZWdtYXBfcmVhZChyZWdtYXAsIEFUTUVMX0hMQ0RDX1NS LCAmc3RhdHVzKSAmJg0KPiArCQkgICAgICAgKHN0YXR1cyAmIEFUTUVMX1hMQ0RDX0NNKSkNCj4g KwkJCWNwdV9yZWxheCgpOw0KDQpBIHRpbWVvdXQgd291bGQgYmUgZ29kIGhlcmUgdG8gYXZvaWQg cG90ZW50aWFsIGluZmluaXRlIGxvb3AgKGZvciBkaWZmZXJlbnQNCnJlYXNvbnMpLiBZb3UgY2Fu IGNoZWNrIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dCgpLiBTYW1lIGZvciB0aGUgcmVzdCBvZg0K d2hpbGUgbG9vcHMgYWJvdmUuDQoNCj4gKw0KPiArCQlyZWdtYXBfd3JpdGUocmVnbWFwLCBBVE1F TF9ITENEQ19ESVMsIEFUTUVMX1hMQ0RDX1NEKTsNCj4gKwkJd2hpbGUgKCFyZWdtYXBfcmVhZChy ZWdtYXAsIEFUTUVMX0hMQ0RDX1NSLCAmc3RhdHVzKSAmJg0KPiArCQkgICAgICAgIShzdGF0dXMg JiBBVE1FTF9YTENEQ19TRCkpDQo+ICsJCQljcHVfcmVsYXgoKTsNCj4gKwl9DQo+ICsNCj4gIAly ZWdtYXBfd3JpdGUocmVnbWFwLCBBVE1FTF9ITENEQ19ESVMsIEFUTUVMX0hMQ0RDX0RJU1ApOw0K PiAgCXdoaWxlICghcmVnbWFwX3JlYWQocmVnbWFwLCBBVE1FTF9ITENEQ19TUiwgJnN0YXR1cykg JiYNCj4gIAkgICAgICAgKHN0YXR1cyAmIEFUTUVMX0hMQ0RDX0RJU1ApKQ0KPiBAQCAtMjMxLDYg KzI0MywxOCBAQCBzdGF0aWMgdm9pZCBhdG1lbF9obGNkY19jcnRjX2F0b21pY19lbmFibGUoc3Ry dWN0IGRybV9jcnRjICpjLA0KPiAgCSAgICAgICAhKHN0YXR1cyAmIEFUTUVMX0hMQ0RDX0RJU1Ap KQ0KPiAgCQljcHVfcmVsYXgoKTsNCj4gIA0KPiArCWlmIChjcnRjLT5kYy0+aXNfeGxjZGMpIHsN Cj4gKwkJcmVnbWFwX3dyaXRlKHJlZ21hcCwgQVRNRUxfSExDRENfRU4sIEFUTUVMX1hMQ0RDX0NN KTsNCj4gKwkJd2hpbGUgKCFyZWdtYXBfcmVhZChyZWdtYXAsIEFUTUVMX0hMQ0RDX1NSLCAmc3Rh dHVzKSAmJg0KPiArCQkgICAgICAgIShzdGF0dXMgJiBBVE1FTF9YTENEQ19DTSkpDQo+ICsJCQlj cHVfcmVsYXgoKTsNCj4gKw0KPiArCQlyZWdtYXBfd3JpdGUocmVnbWFwLCBBVE1FTF9ITENEQ19F TiwgQVRNRUxfWExDRENfU0QpOw0KPiArCQl3aGlsZSAoIXJlZ21hcF9yZWFkKHJlZ21hcCwgQVRN RUxfSExDRENfU1IsICZzdGF0dXMpICYmDQo+ICsJCSAgICAgICAoc3RhdHVzICYgQVRNRUxfWExD RENfU0QpKQ0KPiArCQkJY3B1X3JlbGF4KCk7DQo+ICsJfQ0KPiArDQo+ICAJcG1fcnVudGltZV9w dXRfc3luYyhkZXYtPmRldik7DQo+ICANCj4gIH0NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2F0 bWVsLWhsY2RjL2F0bWVsX2hsY2RjX3BsYW5lLmMNCj4gaW5kZXggZGFhNTA4NTA0ZjQ3Li5mZTMz NDc2ODE4YzQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1l bF9obGNkY19wbGFuZS5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1l bF9obGNkY19wbGFuZS5jDQo+IEBAIC0zMzAsMTEgKzMzMCw1OSBAQCBzdGF0aWMgdm9pZCBhdG1l bF9obGNkY19wbGFuZV9zZXR1cF9zY2FsZXIoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFu ZSwNCj4gIAkJCQkJCQkJICAgICB5ZmFjdG9yKSk7DQo+ICB9DQo+ICANCj4gK3N0YXRpYyB2b2lk IGF0bWVsX3hsY2RjX3BsYW5lX3NldHVwX3NjYWxlcihzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmUg KnBsYW5lLA0KPiArCQkJCQkgICBzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmVfc3RhdGUgKnN0YXRl KQ0KPiArew0KPiArCWNvbnN0IHN0cnVjdCBhdG1lbF9obGNkY19sYXllcl9kZXNjICpkZXNjID0g cGxhbmUtPmxheWVyLmRlc2M7DQo+ICsJdTMyIHhmYWN0b3IsIHlmYWN0b3I7DQo+ICsNCj4gKwlp ZiAoIWRlc2MtPmxheW91dC5zY2FsZXJfY29uZmlnKQ0KPiArCQlyZXR1cm47DQo+ICsNCj4gKwlp ZiAoc3RhdGUtPmNydGNfdyA9PSBzdGF0ZS0+c3JjX3cgJiYgc3RhdGUtPmNydGNfaCA9PSBzdGF0 ZS0+c3JjX2gpIHsNCj4gKwkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5 ZXIsDQo+ICsJCQkJCSAgICBkZXNjLT5sYXlvdXQuc2NhbGVyX2NvbmZpZywgMCk7DQo+ICsJCXJl dHVybjsNCj4gKwl9DQo+ICsNCj4gKwkvKiB4ZmFjdG9yID0gcm91bmRbKDJeMjAgKiBYTUVNU0la RSkvWFNJWkUpXSAqLw0KPiArCXhmYWN0b3IgPSAoMTA0ODU3NiAqIHN0YXRlLT5zcmNfdykgLyBz dGF0ZS0+Y3J0Y193Ow0KPiArDQo+ICsJLyogeWZhY3RvciA9IHJvdW5kWygyXjIwICogWU1FTVNJ WkUpL1lTSVpFKV0gKi8NCj4gKwl5ZmFjdG9yID0gKDEwNDg1NzYgKiBzdGF0ZS0+c3JjX2gpIC8g c3RhdGUtPmNydGNfaDsNCj4gKw0KPiArCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxh bmUtPmxheWVyLCBkZXNjLT5sYXlvdXQuc2NhbGVyX2NvbmZpZywNCj4gKwkJCQkgICAgQVRNRUxf WExDRENfTEFZRVJfVlNDQUxFUl9MVU1BX0VOQUJMRSB8DQo+ICsJCQkJICAgIEFUTUVMX1hMQ0RD X0xBWUVSX1ZTQ0FMRVJfQ0hST01BX0VOQUJMRSB8DQo+ICsJCQkJICAgIEFUTUVMX1hMQ0RDX0xB WUVSX0hTQ0FMRVJfTFVNQV9FTkFCTEUgfA0KPiArCQkJCSAgICBBVE1FTF9YTENEQ19MQVlFUl9I U0NBTEVSX0NIUk9NQV9FTkFCTEUpOw0KPiArDQo+ICsJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVf Y2ZnKCZwbGFuZS0+bGF5ZXIsIGRlc2MtPmxheW91dC5zY2FsZXJfY29uZmlnICsgMSwNCj4gKwkJ CQkgICAgeWZhY3Rvcik7DQo+ICsJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+ bGF5ZXIsIGRlc2MtPmxheW91dC5zY2FsZXJfY29uZmlnICsgMywNCj4gKwkJCQkgICAgeGZhY3Rv cik7DQo+ICsNCj4gKwkvKiBBcyBwZXIgWUNiQ3Igd2luZG93IHJlc2FtcGxpbmcgY29uZmlndXJh dGlvbiAqLw0KPiArCWlmIChzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZP Uk1BVF9ZVVY0MjApIHsNCj4gKwkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+ bGF5ZXIsIGRlc2MtPmxheW91dC5zY2FsZXJfY29uZmlnICsgMiwNCj4gKwkJCQkJICAgIHlmYWN0 b3IgLyAyKTsNCj4gKwkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIs IGRlc2MtPmxheW91dC5zY2FsZXJfY29uZmlnICsgNCwNCj4gKwkJCQkJICAgIHhmYWN0b3IgLyAy KTsNCj4gKwl9IGVsc2Ugew0KPiArCQkvKiBBcyBwZXIgQVJHQiB3aW5kb3cgcmVzYW1wbGluZyBj b25maWd1cmF0aW9uICovDQo+ICsJCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUt PmxheWVyLCBkZXNjLT5sYXlvdXQuc2NhbGVyX2NvbmZpZyArIDIsDQo+ICsJCQkJCSAgICB5ZmFj dG9yKTsNCj4gKwkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsIGRl c2MtPmxheW91dC5zY2FsZXJfY29uZmlnICsgNCwNCj4gKwkJCQkJICAgIHhmYWN0b3IpOw0KPiAr CX0NCj4gK30NCj4gKw0KPiAgc3RhdGljIHZvaWQNCj4gIGF0bWVsX2hsY2RjX3BsYW5lX3VwZGF0 ZV9wb3NfYW5kX3NpemUoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSwNCj4gIAkJCQkg ICAgICBzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmVfc3RhdGUgKnN0YXRlKQ0KPiAgew0KPiAgCWNv bnN0IHN0cnVjdCBhdG1lbF9obGNkY19sYXllcl9kZXNjICpkZXNjID0gcGxhbmUtPmxheWVyLmRl c2M7DQo+ICsJc3RydWN0IGF0bWVsX2hsY2RjX2RjICpkYyA9IHBsYW5lLT5iYXNlLmRldi0+ZGV2 X3ByaXZhdGU7DQo+ICANCj4gIAlpZiAoZGVzYy0+bGF5b3V0LnNpemUpDQo+ICAJCWF0bWVsX2hs Y2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLCBkZXNjLT5sYXlvdXQuc2l6ZSwNCj4g QEAgLTM1Miw3ICs0MDAsMTAgQEAgYXRtZWxfaGxjZGNfcGxhbmVfdXBkYXRlX3Bvc19hbmRfc2l6 ZShzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5lLA0KPiAgCQkJCQlBVE1FTF9ITENEQ19M QVlFUl9QT1Moc3RhdGUtPmNydGNfeCwNCj4gIAkJCQkJCQkgICAgICBzdGF0ZS0+Y3J0Y195KSk7 DQo+ICANCj4gLQlhdG1lbF9obGNkY19wbGFuZV9zZXR1cF9zY2FsZXIocGxhbmUsIHN0YXRlKTsN Cj4gKwlpZiAoIShkYy0+aXNfeGxjZGMpKQ0KDQpZb3UgY2FuIHJldmVyc2UgdGhlIGxvZ2ljIGhl cmUgdG8gYXZvaWQgIWRjLT5pc194bGNkYy4gQWxzbywgbm8gbmVlZCBmb3IgKCkNCmFyb3VuZCBk Yy0+aXNfeGxjZGMNCg0KPiArCQlhdG1lbF9obGNkY19wbGFuZV9zZXR1cF9zY2FsZXIocGxhbmUs IHN0YXRlKTsNCj4gKwllbHNlDQo+ICsJCWF0bWVsX3hsY2RjX3BsYW5lX3NldHVwX3NjYWxlcihw bGFuZSwgc3RhdGUpOw0KPiAgfQ0KPiAgDQo+ICBzdGF0aWMgdm9pZA0KPiBAQCAtMzYyLDMzICs0 MTMsNTggQEAgYXRtZWxfaGxjZGNfcGxhbmVfdXBkYXRlX2dlbmVyYWxfc2V0dGluZ3Moc3RydWN0 IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSwNCj4gIAl1bnNpZ25lZCBpbnQgY2ZnID0gQVRNRUxf SExDRENfTEFZRVJfRE1BX0JMRU5fSU5DUjE2IHwgc3RhdGUtPmFoYl9pZDsNCj4gIAljb25zdCBz dHJ1Y3QgYXRtZWxfaGxjZGNfbGF5ZXJfZGVzYyAqZGVzYyA9IHBsYW5lLT5sYXllci5kZXNjOw0K PiAgCWNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKmZvcm1hdCA9IHN0YXRlLT5iYXNlLmZi LT5mb3JtYXQ7DQo+IC0NCg0KZXh0cmEgbGluZQ0KDQo+ICsJc3RydWN0IGF0bWVsX2hsY2RjX2Rj ICpkYyA9IHBsYW5lLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7DQo+ICAJLyoNCj4gIAkgKiBSb3Rh dGlvbiBvcHRpbWl6YXRpb24gaXMgbm90IHdvcmtpbmcgb24gUkdCODg4IChyb3RhdGlvbiBpcyBz dGlsbA0KPiAgCSAqIHdvcmtpbmcgYnV0IHdpdGhvdXQgYW55IG9wdGltaXphdGlvbikuDQo+ICAJ ICovDQo+IC0JaWYgKGZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfUkdCODg4KQ0KPiArCWlm ICgoIShkYy0+aXNfeGxjZGMpKSAmJiBmb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX1JHQjg4 OCkNCg0KTm8gbmVlZCBmb3IgZXh0cmEgKCkuDQoNCj4gIAkJY2ZnIHw9IEFUTUVMX0hMQ0RDX0xB WUVSX0RNQV9ST1RESVM7DQo+ICANCj4gLQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9jZmcoJnBs YW5lLT5sYXllciwgQVRNRUxfSExDRENfTEFZRVJfRE1BX0NGRywNCj4gLQkJCQkgICAgY2ZnKTsN Cj4gKwlpZiAoIShkYy0+aXNfeGxjZGMpKSB7DQoNCm5vIG5lZWQgZm9yIGV4dHJhICgpDQoNCj4g KwkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsIEFUTUVMX0hMQ0RD X0xBWUVSX0RNQV9DRkcsDQo+ICsJCQkJCSAgICBjZmcpOw0KPiAgDQo+IC0JY2ZnID0gQVRNRUxf SExDRENfTEFZRVJfRE1BIHwgQVRNRUxfSExDRENfTEFZRVJfUkVQOw0KPiArCQljZmcgPSBBVE1F TF9ITENEQ19MQVlFUl9ETUEgfCBBVE1FTF9ITENEQ19MQVlFUl9SRVA7DQo+ICsJfSBlbHNlIHsN Cj4gKwkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsIEFUTUVMX1hM Q0RDX0xBWUVSX0RNQV9DRkcsDQo+ICsJCQkJCSAgICBjZmcpOw0KPiArDQo+ICsJCWNmZyA9IEFU TUVMX1hMQ0RDX0xBWUVSX0RNQSB8IEFUTUVMX1hMQ0RDX0xBWUVSX1JFUDsNCj4gKwl9DQo+ICAN Cj4gIAlpZiAocGxhbmUtPmJhc2UudHlwZSAhPSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKSB7DQo+ IC0JCWNmZyB8PSBBVE1FTF9ITENEQ19MQVlFUl9PVlIgfCBBVE1FTF9ITENEQ19MQVlFUl9JVEVS MkJMIHwNCj4gLQkJICAgICAgIEFUTUVMX0hMQ0RDX0xBWUVSX0lURVI7DQo+ICsJCWlmICghKGRj LT5pc194bGNkYykpIHsNCg0Kbm8gbmVlZCBmb3IgZXh0cmEgKCkuIFNhbWUgZm9yIHRoZSByZXN0 IG9mIG9jY3VyZW5jaWVzIGFib3ZlLiBBbHNvLCB5b3UgY2FuDQpyZXZlcnNlIHRoZSBsb2dpYyB0 byBhdm9pZCAhIGluIGZyb250IG9mIChkYy0+aXNfeGxjZGMpDQoNCj4gKwkJCWNmZyB8PSBBVE1F TF9ITENEQ19MQVlFUl9PVlIgfCBBVE1FTF9ITENEQ19MQVlFUl9JVEVSMkJMIHwNCj4gKwkJCSAg ICAgICBBVE1FTF9ITENEQ19MQVlFUl9JVEVSOw0KPiArDQo+ICsJCQlpZiAoZm9ybWF0LT5oYXNf YWxwaGEpDQo+ICsJCQkJY2ZnIHw9IEFUTUVMX0hMQ0RDX0xBWUVSX0xBRU47DQo+ICsJCQllbHNl DQo+ICsJCQkJY2ZnIHw9IEFUTUVMX0hMQ0RDX0xBWUVSX0dBRU4gfA0KPiArCQkJCSAgICAgICBB VE1FTF9ITENEQ19MQVlFUl9HQShzdGF0ZS0+YmFzZS5hbHBoYSk7DQo+ICsJCX0gZWxzZSB7DQo+ ICsJCQkvKg0KPiArCQkJICogQWxwaGEgQmxlbmRpbmcgYml0cyBzcGVjaWZpYyB0byBTQU05WDcg U29DDQo+ICsJCQkgKi8NCj4gKwkJCWNmZyB8PSBBVE1FTF9YTENEQ19MQVlFUl9TRkFDVENfQTBf TVVMVF9BUyB8DQo+ICsJCQkgICAgICAgQVRNRUxfWExDRENfTEFZRVJfU0ZBQ1RBX09ORSB8DQo+ ICsJCQkgICAgICAgQVRNRUxfWExDRENfTEFZRVJfREZBQ1RDX01fQTBfTVVMVF9BUyB8DQo+ICsJ CQkgICAgICAgQVRNRUxfWExDRENfTEFZRVJfREZBQ1RBX09ORTsNCj4gKwkJCWlmIChmb3JtYXQt Pmhhc19hbHBoYSkNCj4gKwkJCQljZmcgfD0gQVRNRUxfWExDRENfTEFZRVJfQTAoMHhmZik7DQo+ ICsJCQllbHNlDQo+ICsJCQkJY2ZnIHw9IEFUTUVMX1hMQ0RDX0xBWUVSX0EwKHN0YXRlLT5iYXNl LmFscGhhKTsNCj4gKwkJfQ0KPiArCX0NCj4gIA0KPiAtCQlpZiAoZm9ybWF0LT5oYXNfYWxwaGEp DQo+IC0JCQljZmcgfD0gQVRNRUxfSExDRENfTEFZRVJfTEFFTjsNCj4gKwlpZiAoc3RhdGUtPmRp c2NfaCAmJiBzdGF0ZS0+ZGlzY193KSB7DQo+ICsJCWlmICghKGRjLT5pc194bGNkYykpDQo+ICsJ CQljZmcgfD0gQVRNRUxfSExDRENfTEFZRVJfRElTQ0VOOw0KPiAgCQllbHNlDQo+IC0JCQljZmcg fD0gQVRNRUxfSExDRENfTEFZRVJfR0FFTiB8DQo+IC0JCQkgICAgICAgQVRNRUxfSExDRENfTEFZ RVJfR0Eoc3RhdGUtPmJhc2UuYWxwaGEpOw0KPiArCQkJY2ZnIHw9IEFUTUVMX1hMQ0RDX0xBWUVS X0RJU0NFTjsNCj4gIAl9DQo+ICANCj4gLQlpZiAoc3RhdGUtPmRpc2NfaCAmJiBzdGF0ZS0+ZGlz Y193KQ0KPiAtCQljZmcgfD0gQVRNRUxfSExDRENfTEFZRVJfRElTQ0VOOw0KPiAtDQo+ICAJYXRt ZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsIGRlc2MtPmxheW91dC5nZW5l cmFsX2NvbmZpZywNCj4gIAkJCQkgICAgY2ZnKTsNCj4gIH0NCj4gQEAgLTQ0MSwzMyArNTE3LDQy IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2RjX3BsYW5lX3VwZGF0ZV9idWZmZXJzKHN0cnVjdCBh dG1lbF9obGNkY19wbGFuZSAqcGxhbmUsDQo+ICAJCQkJCXN0cnVjdCBhdG1lbF9obGNkY19wbGFu ZV9zdGF0ZSAqc3RhdGUpDQo+ICB7DQo+ICAJY29uc3Qgc3RydWN0IGF0bWVsX2hsY2RjX2xheWVy X2Rlc2MgKmRlc2MgPSBwbGFuZS0+bGF5ZXIuZGVzYzsNCj4gKwlzdHJ1Y3QgYXRtZWxfaGxjZGNf ZGMgKmRjID0gcGxhbmUtPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsNCj4gIAlzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOw0KPiAgCXUzMiBzcjsNCj4gIAlpbnQgaTsN Cj4gIA0KPiAtCXNyID0gYXRtZWxfaGxjZGNfbGF5ZXJfcmVhZF9yZWcoJnBsYW5lLT5sYXllciwg QVRNRUxfSExDRENfTEFZRVJfQ0hTUik7DQo+ICsJaWYgKCEoZGMtPmlzX3hsY2RjKSkNCg0KWW91 IGNhbiByZXZlcnNlIHRoZSBsb2dpYw0KDQo+ICsJCXNyID0gYXRtZWxfaGxjZGNfbGF5ZXJfcmVh ZF9yZWcoJnBsYW5lLT5sYXllciwgQVRNRUxfSExDRENfTEFZRVJfQ0hTUik7DQo+ICsJZWxzZQ0K PiArCQlzciA9IGF0bWVsX2hsY2RjX2xheWVyX3JlYWRfcmVnKCZwbGFuZS0+bGF5ZXIsIEFUTUVM X1hMQ0RDX0xBWUVSX0VOUik7DQo+ICANCj4gIAlmb3IgKGkgPSAwOyBpIDwgc3RhdGUtPm5wbGFu ZXM7IGkrKykgew0KPiAgCQlzdHJ1Y3QgZHJtX2dlbV9kbWFfb2JqZWN0ICpnZW0gPSBkcm1fZmJf ZG1hX2dldF9nZW1fb2JqKGZiLCBpKTsNCj4gIA0KPiAgCQlzdGF0ZS0+ZHNjcnNbaV0tPmFkZHIg PSBnZW0tPmRtYV9hZGRyICsgc3RhdGUtPm9mZnNldHNbaV07DQo+ICANCj4gLQkJYXRtZWxfaGxj ZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsDQo+IC0JCQkJCSAgICBBVE1FTF9ITENE Q19MQVlFUl9QTEFORV9IRUFEKGkpLA0KPiAtCQkJCQkgICAgc3RhdGUtPmRzY3JzW2ldLT5zZWxm KTsNCj4gLQ0KPiAtCQlpZiAoIShzciAmIEFUTUVMX0hMQ0RDX0xBWUVSX0VOKSkgew0KPiAtCQkJ YXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsDQo+IC0JCQkJCUFUTUVM X0hMQ0RDX0xBWUVSX1BMQU5FX0FERFIoaSksDQo+IC0JCQkJCXN0YXRlLT5kc2Nyc1tpXS0+YWRk cik7DQo+ICsJCWlmICghKGRjLT5pc194bGNkYykpIHsNCg0KeW91IGNhbiByZXZlcnNlIHRoZSBs b2dpYw0KDQo+ICAJCQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9yZWcoJnBsYW5lLT5sYXllciwN Cj4gLQkJCQkJQVRNRUxfSExDRENfTEFZRVJfUExBTkVfQ1RSTChpKSwNCj4gLQkJCQkJc3RhdGUt PmRzY3JzW2ldLT5jdHJsKTsNCj4gKwkJCQkJCSAgICBBVE1FTF9ITENEQ19MQVlFUl9QTEFORV9I RUFEKGkpLA0KPiArCQkJCQkJICAgIHN0YXRlLT5kc2Nyc1tpXS0+c2VsZik7DQo+ICsNCj4gKwkJ CWlmICghKHNyICYgQVRNRUxfSExDRENfTEFZRVJfRU4pKSB7DQo+ICsJCQkJYXRtZWxfaGxjZGNf bGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsDQo+ICsJCQkJCQkJICAgIEFUTUVMX0hMQ0RD X0xBWUVSX1BMQU5FX0FERFIoaSksDQo+ICsJCQkJCQkJICAgIHN0YXRlLT5kc2Nyc1tpXS0+YWRk cik7DQo+ICsJCQkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsDQo+ ICsJCQkJCQkJICAgIEFUTUVMX0hMQ0RDX0xBWUVSX1BMQU5FX0NUUkwoaSksDQo+ICsJCQkJCQkJ ICAgIHN0YXRlLT5kc2Nyc1tpXS0+Y3RybCk7DQo+ICsJCQkJYXRtZWxfaGxjZGNfbGF5ZXJfd3Jp dGVfcmVnKCZwbGFuZS0+bGF5ZXIsDQo+ICsJCQkJCQkJICAgIEFUTUVMX0hMQ0RDX0xBWUVSX1BM QU5FX05FWFQoaSksDQo+ICsJCQkJCQkJICAgIHN0YXRlLT5kc2Nyc1tpXS0+c2VsZik7DQo+ICsJ CQl9DQo+ICsJCX0gZWxzZSB7DQo+ICAJCQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9yZWcoJnBs YW5lLT5sYXllciwNCj4gLQkJCQkJQVRNRUxfSExDRENfTEFZRVJfUExBTkVfTkVYVChpKSwNCj4g LQkJCQkJc3RhdGUtPmRzY3JzW2ldLT5zZWxmKTsNCj4gKwkJCQkJCSAgICBBVE1FTF9YTENEQ19M QVlFUl9QTEFORV9BRERSKGkpLA0KPiArCQkJCQkJICAgIHN0YXRlLT5kc2Nyc1tpXS0+YWRkcik7 DQo+ICAJCX0NCj4gLQ0KPiAgCQlpZiAoZGVzYy0+bGF5b3V0LnhzdHJpZGVbaV0pDQo+ICAJCQlh dG1lbF9obGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwNCj4gIAkJCQkJCSAgICBk ZXNjLT5sYXlvdXQueHN0cmlkZVtpXSwNCj4gQEAgLTcxNiwxOSArODAxLDMxIEBAIHN0YXRpYyB2 b2lkIGF0bWVsX2hsY2RjX3BsYW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnAs DQo+ICAJCQkJCSAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQ0KPiAgew0KPiAg CXN0cnVjdCBhdG1lbF9obGNkY19wbGFuZSAqcGxhbmUgPSBkcm1fcGxhbmVfdG9fYXRtZWxfaGxj ZGNfcGxhbmUocCk7DQo+IC0NCg0KWW91IGNhbiBrZWVwIHRoaXMgbGluZSBhZnRlIHRoZSBhYm92 ZSB2YXJpYWJsZS4NCg0KPiArCXN0cnVjdCBhdG1lbF9obGNkY19kYyAqZGMgPSBwbGFuZS0+YmFz ZS5kZXYtPmRldl9wcml2YXRlOw0KPiAgCS8qIERpc2FibGUgaW50ZXJydXB0cyAqLw0KPiAtCWF0 bWVsX2hsY2RjX2xheWVyX3dyaXRlX3JlZygmcGxhbmUtPmxheWVyLCBBVE1FTF9ITENEQ19MQVlF Ul9JRFIsDQo+IC0JCQkJICAgIDB4ZmZmZmZmZmYpOw0KPiArCWlmICghKGRjLT5pc194bGNkYykp DQoNCnlvdSBjYW4gcmV2ZXJzZSB0aGUgbG9naWMNCg0KPiArCQlhdG1lbF9obGNkY19sYXllcl93 cml0ZV9yZWcoJnBsYW5lLT5sYXllciwgQVRNRUxfSExDRENfTEFZRVJfSURSLA0KPiArCQkJCQkg ICAgMHhmZmZmZmZmZik7DQo+ICsJZWxzZQ0KPiArCQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9y ZWcoJnBsYW5lLT5sYXllciwgQVRNRUxfWExDRENfTEFZRVJfSURSLA0KPiArCQkJCQkgICAgMHhm ZmZmZmZmZik7DQo+ICANCj4gIAkvKiBEaXNhYmxlIHRoZSBsYXllciAqLw0KPiAtCWF0bWVsX2hs Y2RjX2xheWVyX3dyaXRlX3JlZygmcGxhbmUtPmxheWVyLCBBVE1FTF9ITENEQ19MQVlFUl9DSERS LA0KPiAtCQkJCSAgICBBVE1FTF9ITENEQ19MQVlFUl9SU1QgfA0KPiAtCQkJCSAgICBBVE1FTF9I TENEQ19MQVlFUl9BMlEgfA0KPiAtCQkJCSAgICBBVE1FTF9ITENEQ19MQVlFUl9VUERBVEUpOw0K PiArCWlmICghKGRjLT5pc194bGNkYykpDQoNCnNhbWUgaGVyZS4NCg0KPiArCQlhdG1lbF9obGNk Y19sYXllcl93cml0ZV9yZWcoJnBsYW5lLT5sYXllciwNCj4gKwkJCQkJICAgIEFUTUVMX0hMQ0RD X0xBWUVSX0NIRFIsDQo+ICsJCQkJCSAgICBBVE1FTF9ITENEQ19MQVlFUl9SU1QgfA0KPiArCQkJ CQkgICAgQVRNRUxfSExDRENfTEFZRVJfQTJRIHwNCj4gKwkJCQkJICAgIEFUTUVMX0hMQ0RDX0xB WUVSX1VQREFURSk7DQo+ICsJZWxzZQ0KPiArCQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9yZWco JnBsYW5lLT5sYXllciwNCj4gKwkJCQkJICAgIEFUTUVMX1hMQ0RDX0xBWUVSX0VOUiwgMCk7DQo+ ICANCj4gIAkvKiBDbGVhciBhbGwgcGVuZGluZyBpbnRlcnJ1cHRzICovDQo+IC0JYXRtZWxfaGxj ZGNfbGF5ZXJfcmVhZF9yZWcoJnBsYW5lLT5sYXllciwgQVRNRUxfSExDRENfTEFZRVJfSVNSKTsN Cj4gKwlpZiAoIShkYy0+aXNfeGxjZGMpKQ0KPiArCQlhdG1lbF9obGNkY19sYXllcl9yZWFkX3Jl ZygmcGxhbmUtPmxheWVyLCBBVE1FTF9ITENEQ19MQVlFUl9JU1IpOw0KPiArCWVsc2UNCj4gKwkJ YXRtZWxfaGxjZGNfbGF5ZXJfcmVhZF9yZWcoJnBsYW5lLT5sYXllciwgQVRNRUxfWExDRENfTEFZ RVJfSVNSKTsNCj4gIH0NCj4gIA0KPiAgc3RhdGljIHZvaWQgYXRtZWxfaGxjZGNfcGxhbmVfYXRv bWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwLA0KPiBAQCAtNzM5LDYgKzgzNiw3IEBAIHN0 YXRpYyB2b2lkIGF0bWVsX2hsY2RjX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFu ZSAqcCwNCj4gIAlzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5lID0gZHJtX3BsYW5lX3Rv X2F0bWVsX2hsY2RjX3BsYW5lKHApOw0KPiAgCXN0cnVjdCBhdG1lbF9obGNkY19wbGFuZV9zdGF0 ZSAqaHN0YXRlID0NCj4gIAkJCWRybV9wbGFuZV9zdGF0ZV90b19hdG1lbF9obGNkY19wbGFuZV9z dGF0ZShuZXdfcyk7DQo+ICsJc3RydWN0IGF0bWVsX2hsY2RjX2RjICpkYyA9IHAtPmRldi0+ZGV2 X3ByaXZhdGU7DQo+ICAJdTMyIHNyOw0KPiAgDQo+ICAJaWYgKCFuZXdfcy0+Y3J0YyB8fCAhbmV3 X3MtPmZiKQ0KPiBAQCAtNzU2LDIzICs4NTQsNDYgQEAgc3RhdGljIHZvaWQgYXRtZWxfaGxjZGNf cGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwLA0KPiAgCWF0bWVsX2hsY2Rj X3BsYW5lX3VwZGF0ZV9idWZmZXJzKHBsYW5lLCBoc3RhdGUpOw0KPiAgCWF0bWVsX2hsY2RjX3Bs YW5lX3VwZGF0ZV9kaXNjX2FyZWEocGxhbmUsIGhzdGF0ZSk7DQo+ICANCj4gLQkvKiBFbmFibGUg dGhlIG92ZXJydW4gaW50ZXJydXB0cy4gKi8NCj4gLQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9y ZWcoJnBsYW5lLT5sYXllciwgQVRNRUxfSExDRENfTEFZRVJfSUVSLA0KPiAtCQkJCSAgICBBVE1F TF9ITENEQ19MQVlFUl9PVlJfSVJRKDApIHwNCj4gLQkJCQkgICAgQVRNRUxfSExDRENfTEFZRVJf T1ZSX0lSUSgxKSB8DQo+IC0JCQkJICAgIEFUTUVMX0hMQ0RDX0xBWUVSX09WUl9JUlEoMikpOw0K PiAtDQo+IC0JLyogQXBwbHkgdGhlIG5ldyBjb25maWcgYXQgdGhlIG5leHQgU09GIGV2ZW50LiAq Lw0KPiAtCXNyID0gYXRtZWxfaGxjZGNfbGF5ZXJfcmVhZF9yZWcoJnBsYW5lLT5sYXllciwgQVRN RUxfSExDRENfTEFZRVJfQ0hTUik7DQo+IC0JYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZw bGFuZS0+bGF5ZXIsIEFUTUVMX0hMQ0RDX0xBWUVSX0NIRVIsDQo+IC0JCQlBVE1FTF9ITENEQ19M QVlFUl9VUERBVEUgfA0KPiAtCQkJKHNyICYgQVRNRUxfSExDRENfTEFZRVJfRU4gPw0KPiAtCQkJ IEFUTUVMX0hMQ0RDX0xBWUVSX0EyUSA6IEFUTUVMX0hMQ0RDX0xBWUVSX0VOKSk7DQo+ICsJaWYg KCEoZGMtPmlzX3hsY2RjKSkgew0KDQpzYW1lIGhlcmUNCg0KPiArCQkvKiBFbmFibGUgdGhlIG92 ZXJydW4gaW50ZXJydXB0cy4gKi8NCj4gKwkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZw bGFuZS0+bGF5ZXIsIEFUTUVMX0hMQ0RDX0xBWUVSX0lFUiwNCj4gKwkJCQkJICAgIEFUTUVMX0hM Q0RDX0xBWUVSX09WUl9JUlEoMCkgfA0KPiArCQkJCQkgICAgQVRNRUxfSExDRENfTEFZRVJfT1ZS X0lSUSgxKSB8DQo+ICsJCQkJCSAgICBBVE1FTF9ITENEQ19MQVlFUl9PVlJfSVJRKDIpKTsNCj4g Kw0KPiArCQkvKiBBcHBseSB0aGUgbmV3IGNvbmZpZyBhdCB0aGUgbmV4dCBTT0YgZXZlbnQuICov DQo+ICsJCXNyID0gYXRtZWxfaGxjZGNfbGF5ZXJfcmVhZF9yZWcoJnBsYW5lLT5sYXllciwgQVRN RUxfSExDRENfTEFZRVJfQ0hTUik7DQo+ICsJCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX3JlZygm cGxhbmUtPmxheWVyLCBBVE1FTF9ITENEQ19MQVlFUl9DSEVSLA0KPiArCQkJCQkgICAgQVRNRUxf SExDRENfTEFZRVJfVVBEQVRFIHwNCj4gKwkJCQkJICAgIChzciAmIEFUTUVMX0hMQ0RDX0xBWUVS X0VOID8NCj4gKwkJCQkJICAgIEFUTUVMX0hMQ0RDX0xBWUVSX0EyUSA6IEFUTUVMX0hMQ0RDX0xB WUVSX0VOKSk7DQo+ICsJfSBlbHNlIHsNCj4gKwkJLyogRW5hYmxlIHRoZSBvdmVycnVuIGludGVy cnVwdHMuICovDQo+ICsJCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX3JlZygmcGxhbmUtPmxheWVy LCBBVE1FTF9YTENEQ19MQVlFUl9JRVIsDQo+ICsJCQkJCSAgICBBVE1FTF9YTENEQ19MQVlFUl9P VlJfSVJRKDApIHwNCj4gKwkJCQkJICAgIEFUTUVMX1hMQ0RDX0xBWUVSX09WUl9JUlEoMSkgfA0K PiArCQkJCQkgICAgQVRNRUxfWExDRENfTEFZRVJfT1ZSX0lSUSgyKSk7DQo+ICsNCj4gKwkJYXRt ZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsIEFUTUVMX1hMQ0RDX0xBWUVS X0VOUiwNCj4gKwkJCQkJICAgIEFUTUVMX1hMQ0RDX0xBWUVSX0VOKTsNCj4gKwl9DQo+ICsNCj4g KwkvKg0KPiArCSAqIFVwZGF0aW5nIFhMQ0RDX3h4eENGR3gsIFhMQ0RDX3h4eEZCQSBhbmQgWExD RENfeHh4RU4sDQo+ICsJICogKHdoZXJlIHh4eCBpbmRpY2F0ZXMgZWFjaCBsYXllcikgcmVxdWly ZXMgd3JpdGluZyBvbmUgdG8gdGhlDQo+ICsJICogVXBkYXRlIEF0dHJpYnV0ZSBmaWVsZCBmb3Ig ZWFjaCBsYXllciBpbiBMQ0RDX0FUVFJFIHJlZ2lzdGVyIGZvciBTQU05WDcuDQo+ICsJICovDQo+ ICsJaWYgKGRjLT5pc194bGNkYykgew0KPiArCQlyZWdtYXBfd3JpdGUoZGMtPmhsY2RjLT5yZWdt YXAsIEFUTUVMX1hMQ0RDX0FUVFJFLCBBVE1FTF9YTENEQ19CQVNFX1VQREFURSB8DQo+ICsJCQkg ICAgIEFUTUVMX1hMQ0RDX09WUjFfVVBEQVRFIHwgQVRNRUxfWExDRENfT1ZSM19VUERBVEUgfA0K PiArCQkJICAgICBBVE1FTF9YTENEQ19IRU9fVVBEQVRFKTsNCj4gKwl9DQo+ICB9DQo+ICANCj4g IHN0YXRpYyBpbnQgYXRtZWxfaGxjZGNfcGxhbmVfaW5pdF9wcm9wZXJ0aWVzKHN0cnVjdCBhdG1l bF9obGNkY19wbGFuZSAqcGxhbmUpDQo+ICB7DQo+ICAJY29uc3Qgc3RydWN0IGF0bWVsX2hsY2Rj X2xheWVyX2Rlc2MgKmRlc2MgPSBwbGFuZS0+bGF5ZXIuZGVzYzsNCj4gKwlzdHJ1Y3QgYXRtZWxf aGxjZGNfZGMgKmRjID0gcGxhbmUtPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsNCj4gIA0KPiAgCWlm IChkZXNjLT50eXBlID09IEFUTUVMX0hMQ0RDX09WRVJMQVlfTEFZRVIgfHwNCj4gIAkgICAgZGVz Yy0+dHlwZSA9PSBBVE1FTF9ITENEQ19DVVJTT1JfTEFZRVIpIHsNCj4gQEAgLTc5NiwyMCArOTE3 LDUwIEBAIHN0YXRpYyBpbnQgYXRtZWxfaGxjZGNfcGxhbmVfaW5pdF9wcm9wZXJ0aWVzKHN0cnVj dCBhdG1lbF9obGNkY19wbGFuZSAqcGxhbmUpDQo+ICAJCQlyZXR1cm4gcmV0Ow0KPiAgCX0NCj4g IA0KPiAtCWlmIChkZXNjLT5sYXlvdXQuY3NjKSB7DQo+ICsJaWYgKCEoZGMtPmlzX3hsY2RjKSkg ew0KDQp5b3UgY2FuIHJldmVyc2UgdGhlIGxvZ2ljDQoNCj4gKwkJaWYgKGRlc2MtPmxheW91dC5j c2MpIHsNCj4gKwkJCS8qDQo+ICsJCQkgKiBUT0RPOiBkZWNhcmUgYSAieXV2LXRvLXJnYi1jb252 LWZhY3RvcnMiIHByb3BlcnR5IHRvIGxldA0KPiArCQkJICogdXNlcnNwYWNlIG1vZGlmeSB0aGVz ZSBmYWN0b3JzICh1c2luZyBhIEJMT0IgcHJvcGVydHkgPykuDQo+ICsJCQkgKi8NCj4gKwkJCWF0 bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLA0KPiArCQkJCQkJICAgIGRl c2MtPmxheW91dC5jc2MsDQo+ICsJCQkJCQkgICAgMHg0YzkwMDA5MSk7DQo+ICsJCQlhdG1lbF9o bGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwNCj4gKwkJCQkJCSAgICBkZXNjLT5s YXlvdXQuY3NjICsgMSwNCj4gKwkJCQkJCSAgICAweDdhNWY1MDkwKTsNCj4gKwkJCWF0bWVsX2hs Y2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLA0KPiArCQkJCQkJICAgIGRlc2MtPmxh eW91dC5jc2MgKyAyLA0KPiArCQkJCQkJICAgIDB4NDAwNDA4OTApOw0KPiArCQl9DQo+ICsJfSBl bHNlIHsNCj4gIAkJLyoNCj4gLQkJICogVE9ETzogZGVjYXJlIGEgInl1di10by1yZ2ItY29udi1m YWN0b3JzIiBwcm9wZXJ0eSB0byBsZXQNCj4gLQkJICogdXNlcnNwYWNlIG1vZGlmeSB0aGVzZSBm YWN0b3JzICh1c2luZyBhIEJMT0IgcHJvcGVydHkgPykuDQo+ICsJCSAqIHl1di10by1yZ2ItY29u di1mYWN0b3JzIGFyZSBub3cgZGVmaW5lZCBmcm9tIExDRENfSEVPQ0ZHMTYgdG8NCj4gKwkJICog TENEQ19IRU9DRkcyMSByZWdpc3RlcnMgaW4gU0FNOVg3Lg0KPiAgCQkgKi8NCj4gLQkJYXRtZWxf aGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsDQo+IC0JCQkJCSAgICBkZXNjLT5s YXlvdXQuY3NjLA0KPiAtCQkJCQkgICAgMHg0YzkwMDA5MSk7DQo+IC0JCWF0bWVsX2hsY2RjX2xh eWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLA0KPiAtCQkJCQkgICAgZGVzYy0+bGF5b3V0LmNz YyArIDEsDQo+IC0JCQkJCSAgICAweDdhNWY1MDkwKTsNCj4gLQkJYXRtZWxfaGxjZGNfbGF5ZXJf d3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsDQo+IC0JCQkJCSAgICBkZXNjLT5sYXlvdXQuY3NjICsg MiwNCj4gLQkJCQkJICAgIDB4NDAwNDA4OTApOw0KPiArCQlpZiAoZGVzYy0+bGF5b3V0LmNzYykg ew0KPiArCQkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsDQo+ICsJ CQkJCQkgICAgZGVzYy0+bGF5b3V0LmNzYywNCj4gKwkJCQkJCSAgICAweDAwMDAwNDg4KTsNCj4g KwkJCWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLA0KPiArCQkJCQkJ ICAgIGRlc2MtPmxheW91dC5jc2MgKyAxLA0KPiArCQkJCQkJICAgIDB4MDAwMDA2NDgpOw0KPiAr CQkJYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsDQo+ICsJCQkJCQkg ICAgZGVzYy0+bGF5b3V0LmNzYyArIDIsDQo+ICsJCQkJCQkgICAgMHgxRUEwMDQ4MCk7DQo+ICsJ CQlhdG1lbF9obGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwNCj4gKwkJCQkJCSAg ICBkZXNjLT5sYXlvdXQuY3NjICsgMywNCj4gKwkJCQkJCSAgICAweDAwMDAxRDI4KTsNCj4gKwkJ CWF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLA0KPiArCQkJCQkJICAg IGRlc2MtPmxheW91dC5jc2MgKyA0LA0KPiArCQkJCQkJICAgIDB4MDgxMDA0ODApOw0KPiArCQkJ YXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsDQo+ICsJCQkJCQkgICAg ZGVzYy0+bGF5b3V0LmNzYyArIDUsDQo+ICsJCQkJCQkgICAgMHgwMDAwMDAwMCk7DQo+ICsJCQlh dG1lbF9obGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwNCj4gKwkJCQkJCSAgICBk ZXNjLT5sYXlvdXQuY3NjICsgNiwNCj4gKwkJCQkJCSAgICAweDAwMDAwMDA3KTsNCj4gKwkJfQ0K PiAgCX0NCj4gIA0KPiAgCXJldHVybiAwOw0KPiBAQCAtODE5LDE5ICs5NzAsMzEgQEAgdm9pZCBh dG1lbF9obGNkY19wbGFuZV9pcnEoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSkNCj4g IHsNCj4gIAljb25zdCBzdHJ1Y3QgYXRtZWxfaGxjZGNfbGF5ZXJfZGVzYyAqZGVzYyA9IHBsYW5l LT5sYXllci5kZXNjOw0KPiAgCXUzMiBpc3I7DQo+ICsJc3RydWN0IGF0bWVsX2hsY2RjX2RjICpk YyA9IHBsYW5lLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7DQo+ICANCj4gLQlpc3IgPSBhdG1lbF9o bGNkY19sYXllcl9yZWFkX3JlZygmcGxhbmUtPmxheWVyLCBBVE1FTF9ITENEQ19MQVlFUl9JU1Ip Ow0KPiArCWlmICghKGRjLT5pc194bGNkYykpDQoNCnNhbWUgaGVyZS4NCg0KPiArCQlpc3IgPSBh dG1lbF9obGNkY19sYXllcl9yZWFkX3JlZygmcGxhbmUtPmxheWVyLCBBVE1FTF9ITENEQ19MQVlF Ul9JU1IpOw0KPiArCWVsc2UNCj4gKwkJaXNyID0gYXRtZWxfaGxjZGNfbGF5ZXJfcmVhZF9yZWco JnBsYW5lLT5sYXllciwgQVRNRUxfWExDRENfTEFZRVJfSVNSKTsNCj4gIA0KPiAgCS8qDQo+ICAJ ICogVGhlcmUncyBub3QgbXVjaCB3ZSBjYW4gZG8gaW4gY2FzZSBvZiBvdmVycnVuIGV4Y2VwdCBp bmZvcm1pbmcNCj4gIAkgKiB0aGUgdXNlci4gSG93ZXZlciwgd2UgYXJlIGluIGludGVycnVwdCBj b250ZXh0IGhlcmUsIGhlbmNlIHRoZQ0KPiAgCSAqIHVzZSBvZiBkZXZfZGJnKCkuDQo+ICAJICov DQo+IC0JaWYgKGlzciAmDQo+IC0JICAgIChBVE1FTF9ITENEQ19MQVlFUl9PVlJfSVJRKDApIHwg QVRNRUxfSExDRENfTEFZRVJfT1ZSX0lSUSgxKSB8DQo+IC0JICAgICBBVE1FTF9ITENEQ19MQVlF Ul9PVlJfSVJRKDIpKSkNCj4gLQkJZGV2X2RiZyhwbGFuZS0+YmFzZS5kZXYtPmRldiwgIm92ZXJy dW4gb24gcGxhbmUgJXNcbiIsDQo+IC0JCQlkZXNjLT5uYW1lKTsNCj4gKwlpZiAoIShkYy0+aXNf eGxjZGMpKSB7DQo+ICsJCWlmIChpc3IgJg0KPiArCQkgICAgKEFUTUVMX0hMQ0RDX0xBWUVSX09W Ul9JUlEoMCkgfCBBVE1FTF9ITENEQ19MQVlFUl9PVlJfSVJRKDEpIHwNCj4gKwkJICAgICBBVE1F TF9ITENEQ19MQVlFUl9PVlJfSVJRKDIpKSkNCj4gKwkJCWRldl9kYmcocGxhbmUtPmJhc2UuZGV2 LT5kZXYsICJvdmVycnVuIG9uIHBsYW5lICVzXG4iLA0KPiArCQkJCWRlc2MtPm5hbWUpOw0KPiAr CX0gZWxzZSB7DQo+ICsJCWlmIChpc3IgJg0KPiArCQkgICAgKEFUTUVMX1hMQ0RDX0xBWUVSX09W Ul9JUlEoMCkgfCBBVE1FTF9YTENEQ19MQVlFUl9PVlJfSVJRKDEpIHwNCj4gKwkJICAgICBBVE1F TF9YTENEQ19MQVlFUl9PVlJfSVJRKDIpKSkNCj4gKwkJCWRldl9kYmcocGxhbmUtPmJhc2UuZGV2 LT5kZXYsICJvdmVycnVuIG9uIHBsYW5lICVzXG4iLA0KPiArCQkJCWRlc2MtPm5hbWUpOw0KPiAr CX0NCj4gIH0NCj4gIA0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1 bmNzIGF0bWVsX2hsY2RjX2xheWVyX3BsYW5lX2hlbHBlcl9mdW5jcyA9IHsNCg0K