Received: by 2002:a05:7412:37c9:b0:e2:908c:2ebd with SMTP id jz9csp1728117rdb; Wed, 20 Sep 2023 19:07:07 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHSl9rfl6ckiV1tBH4Lnz4fjkuh5v49tq8hiI/aLfu3+RiGNZIyAxFNCwwD6ejbX/9QREx3 X-Received: by 2002:a05:6a20:96db:b0:153:a461:d96e with SMTP id hq27-20020a056a2096db00b00153a461d96emr3687725pzc.47.1695262027563; Wed, 20 Sep 2023 19:07:07 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1695262027; cv=pass; d=google.com; s=arc-20160816; b=di2EXRaFlcxF+Ej+M2/LHIuDeUTSNSt/SsUuFEYSuaQUSg5S08y9FZFySYqmz6mobh oQnkEEQ2xrHJF8d/u+j8n1+qWv5Bp3WIlkLypScWW6SH8Fdk3QlfYSe9VeGGGjYhFPB0 qt9YyTFEvgjXoX4ckAAP5IqAG3tHQsMRqhiyM3UVvCBXQJS62on1U9wgppeHHN6NZuM6 qHGz/7KQ7dX9G1YIpkkd4roVa1LS0dzrak7z1aKevSc3FTxak1gxo2thjxd69a++tRrw UMCO4kn/qG0xUTYGmmRYcJZJF0oqYahEjY0UvIC6jyxUoJ+AQrqR4ItJm0qP8YCWUQHY HIBw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=RTjdIERJf4A72f2WT2fduNJ2+Z5dBLiWCD8vBWX0E2M=; fh=6ghu0Z8xB9Cy70WJ0MCHniXvmqHioN/l9RbVON0Lt40=; b=LgqsC5jcd4AHbhI6+y849HT8Pd/L0/ZeYBz7muh2pOo98jk9vcYHKKTizp6Mymb6K4 OU4LKjUw15HscsQK4py7Fwa7K7oxzN41LuUpvmsLn/rkW3JRZbDv2OOpQNWjoDWxY95G C9P82nmrcSolyXCXpzktBgi6bYSgkeIVHWOYZG1y5HwMrQQfnlhcLmi4uVeFz5/8r3oR FsphnLGNQSJPwKK6El6Iz9dg2Q4Jj2Gs9KnhkGZSHz0TB4Ul/BgriT5OUIouPGyv95Vz nezEFT80lyrO1hgbR5BDMrlxZeg/TYOGoMLz4+vUcuTr8yESPi+yl39IeFCvDv33NMfG Za2w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=XtMfUM55; arc=pass (i=1 spf=pass spfdomain=nvidia.com dkim=pass dkdomain=nvidia.com dmarc=pass fromdomain=nvidia.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Return-Path: Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id t19-20020a17090a951300b002748c1bbd79si2744676pjo.6.2023.09.20.19.07.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Sep 2023 19:07:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=XtMfUM55; arc=pass (i=1 spf=pass spfdomain=nvidia.com dkim=pass dkdomain=nvidia.com dmarc=pass fromdomain=nvidia.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 6522782A41C5; Wed, 20 Sep 2023 07:59:51 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236543AbjITO7t (ORCPT + 99 others); Wed, 20 Sep 2023 10:59:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236480AbjITO7p (ORCPT ); Wed, 20 Sep 2023 10:59:45 -0400 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2043.outbound.protection.outlook.com [40.107.101.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 02E1FA9; Wed, 20 Sep 2023 07:59:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cBoqkY3coRJFjt+3Zk2mPHYhzrA/mb0akGpDAjRuXLGL2Rn6oNe4dMhMs8XANHTdXHhvAjIObKDtx/0JdIR79SIP4HVQj4RTvBkVZLYecKErl2OBnb+JGhmFD1uLcuHYFy7Axgt6k5Sjo+vpKTYL9TqVe/9UADZr+YSUzpCQQY5q8qffsLeIDu5uAt+gwn+aSs892a3Xgywt4UsK5mv6xCzMTfkquKx5N6G/VnVbYhxbGXCT1UxE67zMwdVS0OMwQF+N+5Q3SEcbIw90GRAQLlHVOh2kFJLj2Jwv8G0SbRtZhdskdpotWzEBkr4mo4smn1Lvxm7klxAYN+zHVku49w== 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=RTjdIERJf4A72f2WT2fduNJ2+Z5dBLiWCD8vBWX0E2M=; b=ZKgP3iCDNXcNbnK1K6JjvqhDUZZqiV9QjclKeAVFYO+ufG7ANYUgpy2McMvRexm4LbW+J6p8PBxoV6jFcVLoRrvxw7/6NCe2VoQjlJrvsIyhcpSGFPgH5TDUDadyr9xZ0U0BpzdN0GgqYgiO+ObaHU51PS1fVvgxIr29miHnj/BChk3f/Sn+QxlZA1Vxtej7kcSR7d1iOaY1b/0nOdBzrKUKzYVFIviHF9yJi75f5APgzP8FezEcKtLIzjMdkLUUMjfyCJL7KxVpWD1cROMKHEehbTE3JqSj0TfK+EUi0R3GloJM0Gwvz7Nltyhgu6chm8Ze9eLuTo5b4pS6kgsKnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RTjdIERJf4A72f2WT2fduNJ2+Z5dBLiWCD8vBWX0E2M=; b=XtMfUM55apur7cDj4UkECV1ZzJ/AxPyMbLijp7jZsIDn42j7GySLSZF8OkwKqJTYdOnal5jxBWF/bVth5KOkFGVnjtimqF3NdUvu/JRqVZa/CTdw5Hz+UiKI8U55jbCvK8941nwaBmnYqCIYJikzkBEffesbnA6qJ50sfo0NUJdFAW0hrhMkrpapOB9Zr767HY2cQ+HZEIjWKPQ0OQMFTGT3/eg3wxQfTgLP/8dgS1W0K5Cis1iqfuxVm5i7Hoiz56VbKeq6ilayZ0tb8rPfo/OjmtV4iI1MmOV3BmJYxHFnpqKjXblN2xzCboMuS/JL4zpSLv9qKVQd6yK5kyJm3A== Received: from SJ0PR12MB5676.namprd12.prod.outlook.com (2603:10b6:a03:42e::8) by DM6PR12MB4089.namprd12.prod.outlook.com (2603:10b6:5:213::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.26; Wed, 20 Sep 2023 14:59:29 +0000 Received: from SJ0PR12MB5676.namprd12.prod.outlook.com ([fe80::51a0:766d:fa9:a689]) by SJ0PR12MB5676.namprd12.prod.outlook.com ([fe80::51a0:766d:fa9:a689%4]) with mapi id 15.20.6792.026; Wed, 20 Sep 2023 14:59:29 +0000 From: Besar Wicaksono To: Mike Leach CC: "james.clark@arm.com" , "suzuki.poulose@arm.com" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "coresight@lists.linaro.org" , "linux-tegra@vger.kernel.org" , Thierry Reding , Jonathan Hunter , Vikram Sethi , Richard Wiley , Yifei Wan Subject: RE: [PATCH] perf cs-etm: Fix missing decoder for per-process trace Thread-Topic: [PATCH] perf cs-etm: Fix missing decoder for per-process trace Thread-Index: AQHZ60s/plmF0ru4nEi9jJXXWgBImrAjZyQAgABkTaA= Date: Wed, 20 Sep 2023 14:59:29 +0000 Message-ID: References: <20230919224553.1658-1-bwicaksono@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR12MB5676:EE_|DM6PR12MB4089:EE_ x-ms-office365-filtering-correlation-id: 23bd08d9-fcc9-4dc1-b965-08dbb9ea30b6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MtgEbkAlkQQU4UHtmljax6U4J+Jjs58HfbHW4QGRKISCHCxyGR1nYgZp7+/Ncp78orbEcJMOgYMBtcmHqRz3XdkKTTXPpYEiYLZ7qm5vYSqCEVeRePOKN72l/QHePzf9bR72Fzxg7rvrIerLfGTwnEIHC7HYPoCMvc6P+UMAfg+4DwzfFRcDvP7ak5bXd2guO4T3XN9ScPY3aEpWkp5+GnAxdy/wlXjDhMnRqVWDPmjWJmk9DzTCiczo4CczYIJIsRUPljjOREvtOLe56iFuxIRd57NYqufaw/uNIbYVZ8/fZRFf3ON1jrCYgzYhJbDAUplgnQg2CizRuAGIoFrOx0diSGjlyrDfKfs0NmJb45pfVBEte13dPvIoQmqdB9KoFo5rXUjdsvQPdTuGO/3Y83r0Q+ydRkeX5sgPJAdaBXlyyYVMuAMej+cHrvvU0yMCl1hGjIRcOghkPBK/IJE02sq05cmSyqq0HJyzMbB+8PDlqLyyNrQVSjp5DNoICHyF7f1leWoAWCI1UyojcKFz2YmT1cbK2BxP4+AMoXFxiVt02IQd5OsLTjTfEGztVkrDGZI6WJhnfg3WGJikhuH45oSPphy9E3v9faOMg45jWU7dPwJJXLyaOxl7Mb6Kkee5 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR12MB5676.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(346002)(366004)(39860400002)(136003)(396003)(451199024)(1800799009)(186009)(6916009)(316002)(66476007)(66946007)(64756008)(66446008)(66556008)(76116006)(54906003)(478600001)(55016003)(71200400001)(122000001)(38100700002)(38070700005)(2906002)(33656002)(86362001)(41300700001)(5660300002)(4326008)(8936002)(8676002)(52536014)(26005)(107886003)(7696005)(6506007)(9686003)(83380400001)(53546011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SWMrRUN2cWFFanIvRllQUWYyVFVaUXBDa1B6MzhxZTVyRXBFU01xTmtXU0JR?= =?utf-8?B?Z1g0WVRISlVZdnB6UWtMd2o1bjhkR2pPQUkrVm5PY0RrMS9TckhTOVh4R3ZZ?= =?utf-8?B?dWtSZE82T0l3OCtNTnNMM1FLVWxMR09RbTZtZEc0eWcxVi9mdU9paG5Ra1Bn?= =?utf-8?B?THFDOE9SUUNJY1hZQzVwR2k1QnJFY3kvMzFOaUx5dFgzbzFWSFpiTWViSlVT?= =?utf-8?B?cVRjdHhjM3ovenJOK1hZbW9SSUtTU1E5UGEvNGNGcndXS1dZN1AzaldQWGVJ?= =?utf-8?B?UmJRNmN5R3U3aEM1TE5KODhEZm90NVJ4cEdhY1hCMDBFK0xjS0FrV1JJWVA5?= =?utf-8?B?Ly91RWZGNWFGQVNNNmlkOHRLRkVpd1Q1N0p3cDRmRlJHOW5xY1Bqbm1TeFRQ?= =?utf-8?B?UDR2ZXVvek5FK2VYV09rcXZoTzF4bXpadGVCd0RxYk5YTm5kRWNBOWtKZnZ5?= =?utf-8?B?WlVtWVh0ZTZ3WW8rRWZUK3FhZXp0NE8raE5MdVoxWnFtZWhLZUpkY0Q0SEcz?= =?utf-8?B?N2VKZnBySWxMN3gzbzNtdzNqSWNPVW41S0lNR21JRXUxdldHWHhncUlUMHlQ?= =?utf-8?B?VDJFRU1jRDNLZFVhZ3JObHA3cU0rdXE3SWUvMlpsK2hxM1U5NGhEeUpUQXMv?= =?utf-8?B?cFVqa2dhRjdVMXdONnRKQ1lBa21vS1NES1hUS1hSeXJ6YVpGWG1GWklKMEp4?= =?utf-8?B?WDZVOStkUzJ6OEt4cndjOGxPbG81bVFZeUxyYytkeEhKVVhFUEtrVUNLendP?= =?utf-8?B?UnhIQUdxZEkwbnlkMUxHZEZKOEkwN3NURTBrenhMMUI3eXNoQW9JaXg2MG15?= =?utf-8?B?KzkxNmJoVmE3b21EWUo4QjV1am8rcEVSb3NyWkFMV1laT3dQU3ZLRmVnWG5t?= =?utf-8?B?c3hNWitVUVluVEQzWnNkMWpXUG1RNUlCNGVqV2ZlZFRsanNVWUNhOHozd2sx?= =?utf-8?B?VW9UUnRxbGpkdlR1SzNFTWpRb09DRUtoSC9MNXdnWDNjYUdYL2J0b0tXdzhq?= =?utf-8?B?S3ZidFRSSDkzcnZLNEZQM3JJZS9LUW5qYWFiWU9SNUpzUDJYekVCVDBvS1NT?= =?utf-8?B?NXJlcUpWc2p0UlVuOFI1YlAzd0hCOU9wSzFXelA3VnJ3N0wrcXNuVGIxdzFo?= =?utf-8?B?VzRsaWtMVjZiOE9KR1F1TnFqRWJIbmF0cHFjaU9FSU5ualgyVzNQdi9aWS9u?= =?utf-8?B?cG40OFY3VkM3cEpMeldJdkdQeC9iOWRSMFFxZ1NlV1NnUi9CbVN3Q3kwWjU1?= =?utf-8?B?UXAxOFdoTWJJUlJYRVRwejh6bk8veE1VNWRCRUw5S2VXaVl2MWJzbWIrUHNO?= =?utf-8?B?RTBvQ2Ewc2NwNXRhWEtabU1NYUdhbDhEeCtuSktqSXg0OXI5UmRNcHB0SE9m?= =?utf-8?B?Z3kzRXl0RUczUExzVWFlK3lrVEh1alBQSWhLSURYcS8xeHFPaCswN0dLMVNW?= =?utf-8?B?elNsMmRnWVl1SDB1QmxZUlRHWTRLT1FDOXZJRXdmcmo5YkFHUW1NVmg2ZHEv?= =?utf-8?B?ZjNMdkZ1VkJtZ2pxTFIvVHNaSjNlb2tYT0YreG5lNUlRVjk3TVNPY2JzS2VZ?= =?utf-8?B?Z242UkZJSExsUXJhb0J1RUJua09QR3VTWFJFNnRqM3FOdFE0UTdTaG4wMmRD?= =?utf-8?B?dEJ1NnZ0U2U1RTI4L2pZNlJLRUpBR2lVSUcyK3E2UmdTVXlQczQzSitPc3dH?= =?utf-8?B?SXJ4N0owclRTZVZTRnh3NmFwak9XTGJPeEJhRk94dVMrbGVkOUNKTkhteDdS?= =?utf-8?B?ZVB4dXhhelB3VEdFMHVsZmkvSmllNHU3a09BclpjdzVYUWdNT1pEM1MyMzkv?= =?utf-8?B?RGNMa3pRcWtHM2JzcW1HRHI2WGxnVzFyY0xWbVZXaE5tbkZtQnBEYW4xM1o0?= =?utf-8?B?bUxETWwwekUrQWliTUhXRnBkL0EzK1VmQ0xITnNFTm50Z2hKb1RaTDBzSStv?= =?utf-8?B?UXFFV2t3TVZtckgyam1Pd0xUejNkUDhzRDR0NmNFajdHbi9ONFc2ZkRmdnY2?= =?utf-8?B?Rm9UbXdjd3FoQ3MzcG9MZnZVa0lqbVBJSnZ6anFKNnkwZFdCVmZtQStMMzls?= =?utf-8?B?NTJMZ2ZFeWpjdllJWUJvM2ZNem0rTmNxMlFtZmdJU3pIak81NTAxRzAzWTJZ?= =?utf-8?Q?7J8n06nWOuiR6EfI7ZHJyWIDM?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR12MB5676.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23bd08d9-fcc9-4dc1-b965-08dbb9ea30b6 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Sep 2023 14:59:29.3362 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Jt70mPm6F9z/X1h52vzjcJezZePKunywJOFmx/FGoQibg51DRT+eaInklAjzfmAmX687N80VCIZJOhAijARowQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4089 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE autolearn=no 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 X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Wed, 20 Sep 2023 07:59:52 -0700 (PDT) SGkgTWlrZSwNCg0KUGxlYXNlIHNlZSBteSByZXBseSBpbmxpbmUuDQoNCj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWlrZSBMZWFjaCA8bWlrZS5sZWFjaEBsaW5hcm8ub3Jn Pg0KPiBTZW50OiBXZWRuZXNkYXksIFNlcHRlbWJlciAyMCwgMjAyMyAzOjQ2IEFNDQo+IFRvOiBC ZXNhciBXaWNha3Nvbm8gPGJ3aWNha3Nvbm9AbnZpZGlhLmNvbT4NCj4gQ2M6IGphbWVzLmNsYXJr QGFybS5jb207IHN1enVraS5wb3Vsb3NlQGFybS5jb207IGxpbnV4LWFybS0NCj4ga2VybmVsQGxp c3RzLmluZnJhZGVhZC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7DQo+IGNvcmVz aWdodEBsaXN0cy5saW5hcm8ub3JnOyBsaW51eC10ZWdyYUB2Z2VyLmtlcm5lbC5vcmc7IFRoaWVy cnkgUmVkaW5nDQo+IDx0cmVkaW5nQG52aWRpYS5jb20+OyBKb25hdGhhbiBIdW50ZXIgPGpvbmF0 aGFuaEBudmlkaWEuY29tPjsgVmlrcmFtDQo+IFNldGhpIDx2c2V0aGlAbnZpZGlhLmNvbT47IFJp Y2hhcmQgV2lsZXkgPHJ3aWxleUBudmlkaWEuY29tPjsgWWlmZWkgV2FuDQo+IDx5d2FuQG52aWRp YS5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIHBlcmYgY3MtZXRtOiBGaXggbWlzc2luZyBk ZWNvZGVyIGZvciBwZXItcHJvY2VzcyB0cmFjZQ0KPiANCj4gRXh0ZXJuYWwgZW1haWw6IFVzZSBj YXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0YWNobWVudHMNCj4gDQo+IA0KPiBIaSwNCj4gDQo+ IENhbiB5b3UgcHJvdmlkZSBhIHBlcmYgY29tbWFuZCBsaW5lIGZvciBib3RoIHRoZSByZWNvcmQg YW5kIGRlY29kZQ0KPiBwaGFzZXMgdGhhdCBkZW1vbnN0cmF0ZXMgdGhlIHByb2JsZW0geW91IGFy ZSBoYXZpbmc/CQ0KPiANCg0KcGVyZiByZWNvcmQgY29tbWFuZHM6DQogICAgLSBwZXJmIHJlY29y ZCAtZSBjc19ldG0vL3UgLS0gdGFza3NldCAtYyAzLDQgLi90ZXN0DQogICAgLSBwZXJmIHJlY29y ZCAtZSBjc19ldG0vL3UgLS1wZXItdGhyZWFkICAtLSB0YXNrc2V0IC1jIDMsNCAuL3Rlc3QNCg0K UGVyZiByZXBvcnQgY29tbWFuZDoNCiAgICAtIHBlcmYgcmVwb3J0IC0tc3RkaW8gLS1kdW1wDQoN Cj4gQWxzbyBub3RlIHRoZSBjcHUgLyB0cmFjZSBwcm90b2NvbCB0eXBlcw0KPiANCg0KVGhpcyBp cyBvbiBOZW92ZXJzZSBWMiB3aXRoIEVURSBzb3VyY2UgYW5kIFRSQkUgc2luay4NCg0KUmVnYXJk cywNCkJlc2FyDQoNCj4gT24gVHVlLCAxOSBTZXB0IDIwMjMgYXQgMjM6NDcsIEJlc2FyIFdpY2Fr c29ubyA8YndpY2Frc29ub0BudmlkaWEuY29tPg0KPiB3cm90ZToNCj4gPg0KPiA+IFRoZSBkZWNv ZGVyIGNyZWF0aW9uIGZvciByYXcgdHJhY2UgdXNlcyBtZXRhZGF0YSBmcm9tIHRoZSBmaXJzdCBD UFUuDQo+ID4gT24gcGVyLXByb2Nlc3MvcGVyLXRocmVhZCB0cmFjZXMsIHRoZSBmaXJzdCBDUFUg aXMgQ1BVMC4gSWYgQ1BVMCB0cmFjZQ0KPiA+IGlzIG5vdCBlbmFibGVkLCBpdHMgbWV0YWRhdGEg d2lsbCBiZSBtYXJrZWQgdW51c2VkIGFuZCB0aGUgZGVjb2RlciBpcw0KPiA+IG5vdCBjcmVhdGVk LiBQZXJmIHJlcG9ydCBkdW1wIHNraXBzIHRoZSBkZWNvZGluZyBwYXJ0IGJlY2F1c2UgdGhlDQo+ ID4gZGVjb2RlciBpcyBtaXNzaW5nLg0KPiA+DQo+ID4gVG8gZml4IHRoaXMsIHVzZSBtZXRhZGF0 YSBvZiB0aGUgQ1BVIGFzc29jaWF0ZWQgd2l0aCBzYW1wbGUgb2JqZWN0Lg0KPiA+DQo+ID4gU2ln bmVkLW9mZi1ieTogQmVzYXIgV2ljYWtzb25vIDxid2ljYWtzb25vQG52aWRpYS5jb20+DQo+ID4g LS0tDQo+ID4gIHRvb2xzL3BlcmYvdXRpbC9jcy1ldG0uYyB8IDEzMCArKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0NCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDc3IGluc2VydGlv bnMoKyksIDUzIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYv dXRpbC9jcy1ldG0uYyBiL3Rvb2xzL3BlcmYvdXRpbC9jcy1ldG0uYw0KPiA+IGluZGV4IDk3Mjlk MDA2NTUwZC4uM2MzMTc5YTVlYWM2IDEwMDY0NA0KPiA+IC0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9j cy1ldG0uYw0KPiA+ICsrKyBiL3Rvb2xzL3BlcmYvdXRpbC9jcy1ldG0uYw0KPiA+IEBAIC02NDAs NzEgKzY0MCw5NCBAQCBzdGF0aWMgdm9pZCBjc19ldG1fX3BhY2tldF9kdW1wKGNvbnN0IGNoYXIN Cj4gKnBrdF9zdHJpbmcpDQo+ID4gICAgICAgICBmZmx1c2goc3Rkb3V0KTsNCj4gPiAgfQ0KPiA+ DQo+ID4gLXN0YXRpYyB2b2lkIGNzX2V0bV9fc2V0X3RyYWNlX3BhcmFtX2V0bXYzKHN0cnVjdCBj c19ldG1fdHJhY2VfcGFyYW1zDQo+ICp0X3BhcmFtcywNCj4gPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY3NfZXRtX2F1eHRyYWNlICpldG0sIGludCBp ZHgsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyIGV0 bWlkcikNCj4gPiArc3RhdGljIHZvaWQgY3NfZXRtX19zZXRfdHJhY2VfcGFyYW1fZXRtdjMoc3Ry dWN0IGNzX2V0bV90cmFjZV9wYXJhbXMNCj4gKnRfcGFyYW0sDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdTY0ICptZXRhZGF0YSwgdTMyIGV0bWlkcikNCj4g PiAgew0KPiA+IC0gICAgICAgdTY0ICoqbWV0YWRhdGEgPSBldG0tPm1ldGFkYXRhOw0KPiA+IC0N Cj4gPiAtICAgICAgIHRfcGFyYW1zW2lkeF0ucHJvdG9jb2wgPSBjc19ldG1fX2dldF92N19wcm90 b2NvbF92ZXJzaW9uKGV0bWlkcik7DQo+ID4gLSAgICAgICB0X3BhcmFtc1tpZHhdLmV0bXYzLnJl Z19jdHJsID0gbWV0YWRhdGFbaWR4XVtDU19FVE1fRVRNQ1JdOw0KPiA+IC0gICAgICAgdF9wYXJh bXNbaWR4XS5ldG12My5yZWdfdHJjX2lkID0NCj4gbWV0YWRhdGFbaWR4XVtDU19FVE1fRVRNVFJB Q0VJRFJdOw0KPiA+ICsgICAgICAgdF9wYXJhbS0+cHJvdG9jb2wgPSBjc19ldG1fX2dldF92N19w cm90b2NvbF92ZXJzaW9uKGV0bWlkcik7DQo+ID4gKyAgICAgICB0X3BhcmFtLT5ldG12My5yZWdf Y3RybCA9IG1ldGFkYXRhW0NTX0VUTV9FVE1DUl07DQo+ID4gKyAgICAgICB0X3BhcmFtLT5ldG12 My5yZWdfdHJjX2lkID0gbWV0YWRhdGFbQ1NfRVRNX0VUTVRSQUNFSURSXTsNCj4gPiAgfQ0KPiA+ DQo+IA0KPiBUaGlzIGlzIGluaGVyZW50bHkgaW5jb3JyZWN0IC0geW91IGFyZSBhc3N1bWluZyB0 aGF0IGFsbCB0cmFjZSBkZXZpY2VzDQo+IG9uIGEgZ2l2ZW4gc3lzdGVtIGFyZSB0aGUgc2FtZSBh bmQgaGF2ZSB0aGUgc2FtZSBwYXJhbWV0ZXJzLiBUaGlzIGRvZXMNCj4gbm90IGhhdmUgdG8gYmUg dGhlIGNhc2UuDQo+IA0KPiANCj4gPiAtc3RhdGljIHZvaWQgY3NfZXRtX19zZXRfdHJhY2VfcGFy YW1fZXRtdjQoc3RydWN0IGNzX2V0bV90cmFjZV9wYXJhbXMNCj4gKnRfcGFyYW1zLA0KPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjc19ldG1fYXV4 dHJhY2UgKmV0bSwgaW50IGlkeCkNCj4gPiArc3RhdGljIHZvaWQgY3NfZXRtX19zZXRfdHJhY2Vf cGFyYW1fZXRtdjQoc3RydWN0IGNzX2V0bV90cmFjZV9wYXJhbXMNCj4gKnRfcGFyYW0sDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTY0ICptZXRhZGF0YSkN Cj4gPiAgew0KPiA+IC0gICAgICAgdTY0ICoqbWV0YWRhdGEgPSBldG0tPm1ldGFkYXRhOw0KPiA+ ICsgICAgICAgdF9wYXJhbS0+cHJvdG9jb2wgPSBDU19FVE1fUFJPVE9fRVRNVjRpOw0KPiA+ICsg ICAgICAgdF9wYXJhbS0+ZXRtdjQucmVnX2lkcjAgPSBtZXRhZGF0YVtDU19FVE1WNF9UUkNJRFIw XTsNCj4gPiArICAgICAgIHRfcGFyYW0tPmV0bXY0LnJlZ19pZHIxID0gbWV0YWRhdGFbQ1NfRVRN VjRfVFJDSURSMV07DQo+ID4gKyAgICAgICB0X3BhcmFtLT5ldG12NC5yZWdfaWRyMiA9IG1ldGFk YXRhW0NTX0VUTVY0X1RSQ0lEUjJdOw0KPiA+ICsgICAgICAgdF9wYXJhbS0+ZXRtdjQucmVnX2lk cjggPSBtZXRhZGF0YVtDU19FVE1WNF9UUkNJRFI4XTsNCj4gPiArICAgICAgIHRfcGFyYW0tPmV0 bXY0LnJlZ19jb25maWdyID0gbWV0YWRhdGFbQ1NfRVRNVjRfVFJDQ09ORklHUl07DQo+ID4gKyAg ICAgICB0X3BhcmFtLT5ldG12NC5yZWdfdHJhY2VpZHIgPSBtZXRhZGF0YVtDU19FVE1WNF9UUkNU UkFDRUlEUl07DQo+ID4gK30NCj4gPg0KPiA+IC0gICAgICAgdF9wYXJhbXNbaWR4XS5wcm90b2Nv bCA9IENTX0VUTV9QUk9UT19FVE1WNGk7DQo+ID4gLSAgICAgICB0X3BhcmFtc1tpZHhdLmV0bXY0 LnJlZ19pZHIwID0gbWV0YWRhdGFbaWR4XVtDU19FVE1WNF9UUkNJRFIwXTsNCj4gPiAtICAgICAg IHRfcGFyYW1zW2lkeF0uZXRtdjQucmVnX2lkcjEgPSBtZXRhZGF0YVtpZHhdW0NTX0VUTVY0X1RS Q0lEUjFdOw0KPiA+IC0gICAgICAgdF9wYXJhbXNbaWR4XS5ldG12NC5yZWdfaWRyMiA9IG1ldGFk YXRhW2lkeF1bQ1NfRVRNVjRfVFJDSURSMl07DQo+ID4gLSAgICAgICB0X3BhcmFtc1tpZHhdLmV0 bXY0LnJlZ19pZHI4ID0gbWV0YWRhdGFbaWR4XVtDU19FVE1WNF9UUkNJRFI4XTsNCj4gPiAtICAg ICAgIHRfcGFyYW1zW2lkeF0uZXRtdjQucmVnX2NvbmZpZ3IgPQ0KPiBtZXRhZGF0YVtpZHhdW0NT X0VUTVY0X1RSQ0NPTkZJR1JdOw0KPiA+IC0gICAgICAgdF9wYXJhbXNbaWR4XS5ldG12NC5yZWdf dHJhY2VpZHIgPQ0KPiBtZXRhZGF0YVtpZHhdW0NTX0VUTVY0X1RSQ1RSQUNFSURSXTsNCj4gPiAr c3RhdGljIHZvaWQgY3NfZXRtX19zZXRfdHJhY2VfcGFyYW1fZXRlKHN0cnVjdCBjc19ldG1fdHJh Y2VfcGFyYW1zDQo+ICp0X3BhcmFtLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1NjQgKm1ldGFkYXRhKQ0KPiA+ICt7DQo+ID4gKyAgICAgICB0X3BhcmFtLT5w cm90b2NvbCA9IENTX0VUTV9QUk9UT19FVEU7DQo+ID4gKyAgICAgICB0X3BhcmFtLT5ldGUucmVn X2lkcjAgPSBtZXRhZGF0YVtDU19FVEVfVFJDSURSMF07DQo+ID4gKyAgICAgICB0X3BhcmFtLT5l dGUucmVnX2lkcjEgPSBtZXRhZGF0YVtDU19FVEVfVFJDSURSMV07DQo+ID4gKyAgICAgICB0X3Bh cmFtLT5ldGUucmVnX2lkcjIgPSBtZXRhZGF0YVtDU19FVEVfVFJDSURSMl07DQo+ID4gKyAgICAg ICB0X3BhcmFtLT5ldGUucmVnX2lkcjggPSBtZXRhZGF0YVtDU19FVEVfVFJDSURSOF07DQo+ID4g KyAgICAgICB0X3BhcmFtLT5ldGUucmVnX2NvbmZpZ3IgPSBtZXRhZGF0YVtDU19FVEVfVFJDQ09O RklHUl07DQo+ID4gKyAgICAgICB0X3BhcmFtLT5ldGUucmVnX3RyYWNlaWRyID0gbWV0YWRhdGFb Q1NfRVRFX1RSQ1RSQUNFSURSXTsNCj4gPiArICAgICAgIHRfcGFyYW0tPmV0ZS5yZWdfZGV2YXJj aCA9IG1ldGFkYXRhW0NTX0VURV9UUkNERVZBUkNIXTsNCj4gPiAgfQ0KPiA+DQo+IA0KPiBhcyBh Ym92ZSBmb3IgRVRFICYgRVRNdjQNCj4gDQo+ID4gLXN0YXRpYyB2b2lkIGNzX2V0bV9fc2V0X3Ry YWNlX3BhcmFtX2V0ZShzdHJ1Y3QgY3NfZXRtX3RyYWNlX3BhcmFtcw0KPiAqdF9wYXJhbXMsDQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNzX2V0 bV9hdXh0cmFjZSAqZXRtLCBpbnQgaWR4KQ0KPiA+ICtzdGF0aWMgaW50IGNzX2V0bV9fc2V0X3Ry YWNlX3BhcmFtKHN0cnVjdCBjc19ldG1fdHJhY2VfcGFyYW1zICp0X3BhcmFtLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTY0ICptZXRhZGF0YSkNCj4gPiAgew0KPiA+ IC0gICAgICAgdTY0ICoqbWV0YWRhdGEgPSBldG0tPm1ldGFkYXRhOw0KPiA+ICsgICAgICAgdTMy IGV0bWlkcjsNCj4gPiArICAgICAgIHU2NCBhcmNoaXRlY3R1cmUgPSBtZXRhZGF0YVtDU19FVE1f TUFHSUNdOw0KPiA+ICsNCj4gPiArICAgICAgIHN3aXRjaCAoYXJjaGl0ZWN0dXJlKSB7DQo+ID4g KyAgICAgICBjYXNlIF9fcGVyZl9jc19ldG12M19tYWdpYzoNCj4gPiArICAgICAgICAgICAgICAg ZXRtaWRyID0gbWV0YWRhdGFbQ1NfRVRNX0VUTUlEUl07DQo+ID4gKyAgICAgICAgICAgICAgIGNz X2V0bV9fc2V0X3RyYWNlX3BhcmFtX2V0bXYzKHRfcGFyYW0sIG1ldGFkYXRhLCBldG1pZHIpOw0K PiA+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgIGNhc2UgX19wZXJmX2NzX2V0 bXY0X21hZ2ljOg0KPiA+ICsgICAgICAgICAgICAgICBjc19ldG1fX3NldF90cmFjZV9wYXJhbV9l dG12NCh0X3BhcmFtLCBtZXRhZGF0YSk7DQo+ID4gKyAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ ICsgICAgICAgY2FzZSBfX3BlcmZfY3NfZXRlX21hZ2ljOg0KPiA+ICsgICAgICAgICAgICAgICBj c19ldG1fX3NldF90cmFjZV9wYXJhbV9ldGUodF9wYXJhbSwgbWV0YWRhdGEpOw0KPiA+ICsgICAg ICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ICsgICAgICAgfQ0KPiA+DQo+ID4gLSAgICAgICB0X3Bh cmFtc1tpZHhdLnByb3RvY29sID0gQ1NfRVRNX1BST1RPX0VURTsNCj4gPiAtICAgICAgIHRfcGFy YW1zW2lkeF0uZXRlLnJlZ19pZHIwID0gbWV0YWRhdGFbaWR4XVtDU19FVEVfVFJDSURSMF07DQo+ ID4gLSAgICAgICB0X3BhcmFtc1tpZHhdLmV0ZS5yZWdfaWRyMSA9IG1ldGFkYXRhW2lkeF1bQ1Nf RVRFX1RSQ0lEUjFdOw0KPiA+IC0gICAgICAgdF9wYXJhbXNbaWR4XS5ldGUucmVnX2lkcjIgPSBt ZXRhZGF0YVtpZHhdW0NTX0VURV9UUkNJRFIyXTsNCj4gPiAtICAgICAgIHRfcGFyYW1zW2lkeF0u ZXRlLnJlZ19pZHI4ID0gbWV0YWRhdGFbaWR4XVtDU19FVEVfVFJDSURSOF07DQo+ID4gLSAgICAg ICB0X3BhcmFtc1tpZHhdLmV0ZS5yZWdfY29uZmlnciA9IG1ldGFkYXRhW2lkeF1bQ1NfRVRFX1RS Q0NPTkZJR1JdOw0KPiA+IC0gICAgICAgdF9wYXJhbXNbaWR4XS5ldGUucmVnX3RyYWNlaWRyID0g bWV0YWRhdGFbaWR4XVtDU19FVEVfVFJDVFJBQ0VJRFJdOw0KPiA+IC0gICAgICAgdF9wYXJhbXNb aWR4XS5ldGUucmVnX2RldmFyY2ggPSBtZXRhZGF0YVtpZHhdW0NTX0VURV9UUkNERVZBUkNIXTsN Cj4gPiArICAgICAgIHJldHVybiAwOw0KPiA+ICB9DQo+ID4NCj4gPiAgc3RhdGljIGludCBjc19l dG1fX2luaXRfdHJhY2VfcGFyYW1zKHN0cnVjdCBjc19ldG1fdHJhY2VfcGFyYW1zDQo+ICp0X3Bh cmFtcywNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNz X2V0bV9hdXh0cmFjZSAqZXRtLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBib29sIGZvcm1hdHRlZCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IHNhbXBsZV9jcHUsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCBkZWNvZGVycykNCj4gPiAgew0KPiA+IC0gICAgICAgaW50IGk7DQo+ID4gLSAg ICAgICB1MzIgZXRtaWRyOw0KPiA+IC0gICAgICAgdTY0IGFyY2hpdGVjdHVyZTsNCj4gPiAtDQo+ ID4gLSAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGVjb2RlcnM7IGkrKykgew0KPiA+IC0gICAgICAg ICAgICAgICBhcmNoaXRlY3R1cmUgPSBldG0tPm1ldGFkYXRhW2ldW0NTX0VUTV9NQUdJQ107DQo+ ID4gKyAgICAgICBpbnQgaSwgcmV0Ow0KPiA+ICsgICAgICAgc3RydWN0IGNzX2V0bV90cmFjZV9w YXJhbXMgKnRfcGFyYW07DQo+ID4gKyAgICAgICB1NjQgKm1ldGFkYXRhOw0KPiA+DQo+ID4gLSAg ICAgICAgICAgICAgIHN3aXRjaCAoYXJjaGl0ZWN0dXJlKSB7DQo+ID4gLSAgICAgICAgICAgICAg IGNhc2UgX19wZXJmX2NzX2V0bXYzX21hZ2ljOg0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAg IGV0bWlkciA9IGV0bS0+bWV0YWRhdGFbaV1bQ1NfRVRNX0VUTUlEUl07DQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgY3NfZXRtX19zZXRfdHJhY2VfcGFyYW1fZXRtdjModF9wYXJhbXMsIGV0 bSwgaSwgZXRtaWRyKTsNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiAt ICAgICAgICAgICAgICAgY2FzZSBfX3BlcmZfY3NfZXRtdjRfbWFnaWM6DQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgY3NfZXRtX19zZXRfdHJhY2VfcGFyYW1fZXRtdjQodF9wYXJhbXMsIGV0 bSwgaSk7DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gLSAgICAgICAg ICAgICAgIGNhc2UgX19wZXJmX2NzX2V0ZV9tYWdpYzoNCj4gPiAtICAgICAgICAgICAgICAgICAg ICAgICBjc19ldG1fX3NldF90cmFjZV9wYXJhbV9ldGUodF9wYXJhbXMsIGV0bSwgaSk7DQo+ID4g LSAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gLSAgICAgICAgICAgICAgIGRlZmF1 bHQ6DQo+ID4gKyAgICAgICBpZiAoIWZvcm1hdHRlZCkgew0KPiA+ICsgICAgICAgICAgICAgICAv Kg0KPiA+ICsgICAgICAgICAgICAgICAgKiBUaGVyZSBpcyBvbmx5IG9uZSBkZWNvZGVyIHdoZW4g dW5mb3JtYXR0ZWQuIFVzZSBtZXRhZGF0YSBvZg0KPiA+ICsgICAgICAgICAgICAgICAgKiBzYW1w bGUgQVVYIGNwdS4NCj4gPiArICAgICAgICAgICAgICAgICovDQo+IA0KPiANCj4gVW5mb3JtYXR0 ZWQgRVRFIGRhdGEgc2hvdWxkIG5vdCBvbmx5IGhhdmUgYSBzaW5nbGUgZGVjb2RlciAtIHRoZXJl DQo+IG11c3QgYmUgYSBkZWNvZGVyIHBlciBDUFUgLSBhcyBwZXIgYWxsIHRyYWNlIGRlY29kZSBm bG93cy4gVGhlIGtleQ0KPiBkaWZmZXJlbmNlIHdpdGggRVRFIGlzIHRoYXQgaXQgdXN1YWxseSBo YXMgaXRzIG93biB0cmFjZSBzaW5rIChUUkJFKSwNCj4gc28gbm8gZm9ybWF0dGluZyBpcyBuZWVk ZWQsIGJ1dCBwZXIgY3B1IGRlY29kZXIgaXMgc3RpbGwgcmVxdWlyZWQuDQo+IA0KPiBSZWdhcmRz DQo+IA0KPiBNaWtlDQo+IA0KPiANCj4gPiArICAgICAgICAgICAgICAgdF9wYXJhbSA9IHRfcGFy YW1zOw0KPiA+ICsgICAgICAgICAgICAgICBtZXRhZGF0YSA9IGdldF9jcHVfZGF0YShldG0sIHNh bXBsZV9jcHUpOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoIW1ldGFkYXRhKSB7DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgcHJfZXJyKCJDU19FVE06IGludmFsaWQgc2FtcGxlIENQVTog JWRcbiIsIHNhbXBsZV9jcHUpOw0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOw0KPiA+ICAgICAgICAgICAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gY3NfZXRtX19zZXRfdHJhY2VfcGFyYW0odF9wYXJhbSwgbWV0YWRhdGEpOw0KPiA+ ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBkZWNvZGVyczsg aSsrKSB7DQo+ID4gKyAgICAgICAgICAgICAgIHRfcGFyYW0gPSAmdF9wYXJhbXNbaV07DQo+ID4g KyAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZXRtLT5tZXRhZGF0YVtpXTsNCj4gPiArICAgICAg ICAgICAgICAgcmV0ID0gY3NfZXRtX19zZXRfdHJhY2VfcGFyYW0odF9wYXJhbSwgbWV0YWRhdGEp Ow0KPiA+ICsgICAgICAgICAgICAgICBpZiAocmV0KQ0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiByZXQ7DQo+ID4gICAgICAgICB9DQo+ID4NCj4gPiAgICAgICAgIHJldHVybiAw Ow0KPiA+IEBAIC0xMDE2LDcgKzEwMzksNyBAQCBzdGF0aWMgdTMyIGNzX2V0bV9fbWVtX2FjY2Vz cyhzdHJ1Y3QNCj4gY3NfZXRtX3F1ZXVlICpldG1xLCB1OCB0cmFjZV9jaGFuX2lkLA0KPiA+ICB9 DQo+ID4NCj4gPiAgc3RhdGljIHN0cnVjdCBjc19ldG1fcXVldWUgKmNzX2V0bV9fYWxsb2NfcXVl dWUoc3RydWN0IGNzX2V0bV9hdXh0cmFjZQ0KPiAqZXRtLA0KPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZm9ybWF0dGVkKQ0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZm9ybWF0dGVk LCBpbnQgc2FtcGxlX2NwdSkNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0IGNzX2V0bV9kZWNv ZGVyX3BhcmFtcyBkX3BhcmFtczsNCj4gPiAgICAgICAgIHN0cnVjdCBjc19ldG1fdHJhY2VfcGFy YW1zICAqdF9wYXJhbXMgPSBOVUxMOw0KPiA+IEBAIC0xMDQxLDcgKzEwNjQsNyBAQCBzdGF0aWMg c3RydWN0IGNzX2V0bV9xdWV1ZQ0KPiAqY3NfZXRtX19hbGxvY19xdWV1ZShzdHJ1Y3QgY3NfZXRt X2F1eHRyYWNlICpldG0sDQo+ID4gICAgICAgICBpZiAoIXRfcGFyYW1zKQ0KPiA+ICAgICAgICAg ICAgICAgICBnb3RvIG91dF9mcmVlOw0KPiA+DQo+ID4gLSAgICAgICBpZiAoY3NfZXRtX19pbml0 X3RyYWNlX3BhcmFtcyh0X3BhcmFtcywgZXRtLCBkZWNvZGVycykpDQo+ID4gKyAgICAgICBpZiAo Y3NfZXRtX19pbml0X3RyYWNlX3BhcmFtcyh0X3BhcmFtcywgZXRtLCBmb3JtYXR0ZWQsIHNhbXBs ZV9jcHUsDQo+IGRlY29kZXJzKSkNCj4gPiAgICAgICAgICAgICAgICAgZ290byBvdXRfZnJlZTsN Cj4gPg0KPiA+ICAgICAgICAgLyogU2V0IGRlY29kZXIgcGFyYW1ldGVycyB0byBkZWNvZGUgdHJh Y2UgcGFja2V0cyAqLw0KPiA+IEBAIC0xMDgxLDE0ICsxMTA0LDE1IEBAIHN0YXRpYyBzdHJ1Y3Qg Y3NfZXRtX3F1ZXVlDQo+ICpjc19ldG1fX2FsbG9jX3F1ZXVlKHN0cnVjdCBjc19ldG1fYXV4dHJh Y2UgKmV0bSwNCj4gPiAgc3RhdGljIGludCBjc19ldG1fX3NldHVwX3F1ZXVlKHN0cnVjdCBjc19l dG1fYXV4dHJhY2UgKmV0bSwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGF1eHRyYWNlX3F1ZXVlICpxdWV1ZSwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IHF1ZXVlX25yLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBib29sIGZvcm1hdHRlZCkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYm9vbCBmb3JtYXR0ZWQsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCBzYW1wbGVfY3B1KQ0KPiA+ICB7DQo+ID4gICAgICAgICBzdHJ1Y3QgY3NfZXRtX3F1ZXVlICpl dG1xID0gcXVldWUtPnByaXY7DQo+ID4NCj4gPiAgICAgICAgIGlmIChsaXN0X2VtcHR5KCZxdWV1 ZS0+aGVhZCkgfHwgZXRtcSkNCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4NCj4g PiAtICAgICAgIGV0bXEgPSBjc19ldG1fX2FsbG9jX3F1ZXVlKGV0bSwgZm9ybWF0dGVkKTsNCj4g PiArICAgICAgIGV0bXEgPSBjc19ldG1fX2FsbG9jX3F1ZXVlKGV0bSwgZm9ybWF0dGVkLCBzYW1w bGVfY3B1KTsNCj4gPg0KPiA+ICAgICAgICAgaWYgKCFldG1xKQ0KPiA+ICAgICAgICAgICAgICAg ICByZXR1cm4gLUVOT01FTTsNCj4gPiBAQCAtMjgxNiw3ICsyODQwLDcgQEAgc3RhdGljIGludA0K PiBjc19ldG1fX3Byb2Nlc3NfYXV4dHJhY2VfZXZlbnQoc3RydWN0IHBlcmZfc2Vzc2lvbiAqc2Vz c2lvbiwNCj4gPiAgICAgICAgICAgICAgICAgICogZm9ybWF0dGVkIGluIHBpcGVkIG1vZGUgKHRy dWUpLg0KPiA+ICAgICAgICAgICAgICAgICAgKi8NCj4gPiAgICAgICAgICAgICAgICAgZXJyID0g Y3NfZXRtX19zZXR1cF9xdWV1ZShldG0sICZldG0tPnF1ZXVlcy5xdWV1ZV9hcnJheVtpZHhdLA0K PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeCwgdHJ1ZSk7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWR4LCB0cnVl LCAtMSk7DQo+ID4gICAgICAgICAgICAgICAgIGlmIChlcnIpDQo+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIGVycjsNCj4gPg0KPiA+IEBAIC0zMDIyLDcgKzMwNDYsNyBAQCBzdGF0 aWMgaW50IGNzX2V0bV9fcXVldWVfYXV4X2ZyYWdtZW50KHN0cnVjdA0KPiBwZXJmX3Nlc3Npb24g KnNlc3Npb24sIG9mZl90IGZpbGVfbw0KPiA+ICAgICAgICAgICAgICAgICBpZHggPSBhdXh0cmFj ZV9ldmVudC0+aWR4Ow0KPiA+ICAgICAgICAgICAgICAgICBmb3JtYXR0ZWQgPSAhKGF1eF9ldmVu dC0+ZmxhZ3MgJg0KPiBQRVJGX0FVWF9GTEFHX0NPUkVTSUdIVF9GT1JNQVRfUkFXKTsNCj4gPiAg ICAgICAgICAgICAgICAgcmV0dXJuIGNzX2V0bV9fc2V0dXBfcXVldWUoZXRtLCAmZXRtLQ0KPiA+ cXVldWVzLnF1ZXVlX2FycmF5W2lkeF0sDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlkeCwgZm9ybWF0dGVkKTsNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWR4LCBmb3JtYXR0ZWQsIHNhbXBsZS0+Y3B1KTsNCj4g PiAgICAgICAgIH0NCj4gPg0KPiA+ICAgICAgICAgLyogV2Fzbid0IGluc2lkZSB0aGlzIGJ1ZmZl ciwgYnV0IHRoZXJlIHdlcmUgbm8gcGFyc2UgZXJyb3JzLiAxID09ICdub3QNCj4gZm91bmQnICov DQo+ID4gLS0NCj4gPiAyLjM0LjENCj4gPg0KPiANCj4gDQo+IC0tDQo+IE1pa2UgTGVhY2gNCj4g UHJpbmNpcGFsIEVuZ2luZWVyLCBBUk0gTHRkLg0KPiBNYW5jaGVzdGVyIERlc2lnbiBDZW50cmUu IFVLDQo=