Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp375527pxk; Fri, 11 Sep 2020 09:14:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzmrIyAB+sGeYccl54yWf/6V0z09PNEsffRGN7Jnl3c7y5PY/+MS7X4su2SlEw/ema4LfaN X-Received: by 2002:a50:84a2:: with SMTP id 31mr2990998edq.138.1599840864543; Fri, 11 Sep 2020 09:14:24 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1599840864; cv=pass; d=google.com; s=arc-20160816; b=HRObNbsLlhKZ5X/qFTSCns0nLjdx+yh9zRuZtW81aQ3mNauti2cYz6SWZiW+gVXoJA 6Hy/nKL5STA+ar1EXaiTlbASCd8ixvo4bieXICroEMDZLzJai10YsnjbA54c3jszGPd+ R3TkYI14V+20V1s1YM+6VUYOyU4D1syeLQOmVVh1cfdaAUYpwtUTfRJ/5dYvQsZvNxRc HE+tc6DBBoRE1YqVjgS+yDUoRXndva1IMT9mI0I17ojQ2ROD5/yCP6zFg1OrLDbpF/9X 7nlflq3so63SW291nrt9bZiAyp4U99nvtfCNQR6Hr8jOQ3aAA+I5SoljnUQo6JHriRrD Sq2A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender: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=7p4qnss+dTi0WA6rv/3b9c/koSmBMSW7Wd9NPG0rhBQ=; b=WAQDKJB5Jha63u+bpGZRewzjEApUgFrogIsNO9J1NmQtUcXhkFox9FtkTaHTvtFWwQ oUiRTZgwUDu/nBMP3uRG6azQDDjigfWOqqcD0gMg9w80t1AV0S2WzW6sa91CWJyzkt+l VwssKDqfiCEQRS5UvdEkTTLyc+nMi3JvoJVWcP+ATZmumNP8cCaej295PpCeej/SnCYM xVvlBN1O33AmnakQH1ucWcHwDGJiq/yO/oK1ibH4O8PkCRf3ovTasnra1iToz45e+3CJ mgLZgSaAHSbAaKPU+/m+0hVGc4lnqWo1Cwr7r9onjjY7MqUvnKVYDjiO1sgQ+ouSXpas 7w3A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@analog.onmicrosoft.com header.s=selector2-analog-onmicrosoft-com header.b=mOEWOmCA; arc=pass (i=1 spf=pass spfdomain=analog.com dkim=pass dkdomain=analog.com dmarc=pass fromdomain=analog.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=analog.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q6si1592572eji.17.2020.09.11.09.14.00; Fri, 11 Sep 2020 09:14:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@analog.onmicrosoft.com header.s=selector2-analog-onmicrosoft-com header.b=mOEWOmCA; arc=pass (i=1 spf=pass spfdomain=analog.com dkim=pass dkdomain=analog.com dmarc=pass fromdomain=analog.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=analog.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726632AbgIKQNI (ORCPT + 99 others); Fri, 11 Sep 2020 12:13:08 -0400 Received: from mx0b-00128a01.pphosted.com ([148.163.139.77]:5888 "EHLO mx0b-00128a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726555AbgIKQMl (ORCPT ); Fri, 11 Sep 2020 12:12:41 -0400 Received: from pps.filterd (m0167090.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 08BDUTUQ013762; Fri, 11 Sep 2020 09:32:42 -0400 Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-00128a01.pphosted.com with ESMTP id 33c7a7k4ab-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 11 Sep 2020 09:32:42 -0400 Received: from m0167090.ppops.net (m0167090.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 08BDVYQO015307; Fri, 11 Sep 2020 09:32:41 -0400 Received: from nam02-bl2-obe.outbound.protection.outlook.com (mail-bl2nam02lp2052.outbound.protection.outlook.com [104.47.38.52]) by mx0b-00128a01.pphosted.com with ESMTP id 33c7a7k4a9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 11 Sep 2020 09:32:41 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aNZ1MWJccQxeSPUBt/b4/T39C8nm+Up2bznlTJB8PGch1eJN5mtsP9GIPxJbf5WLyOeL0yQDaiaGB+78djGS4AjK83ic8/uJkINCeFDT+dX3VSBYErFcMYlJuSflxcdrXLSsoHuGbwSNMNEvw3G1YbtznVZYkv/7+3S3Z1tY891qgiZOQQb8WMg/muAfyUhHNyCSy7RIDtKn4SBFa5kg0Ydj97YaiORiIHBIwyJtVBqHVt9WSEXRPqa8gMUK0izK9g1owryQgs1jyEYatHmpS9uHuR2gWRyQe7cR1wNSCkoBQI1rSkm0aimLpBtl6cYjFb2LfHIwFZrCeG1mIxQJuA== 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=7p4qnss+dTi0WA6rv/3b9c/koSmBMSW7Wd9NPG0rhBQ=; b=nZM3RXGfb9C+38b3Kz97oJWq5OSp1OdhSEb57ScXCnBNIUEjkKNrCP65BXibTlf43RtjhS/XgsfgRnOL6xuBgG2G6dbzIvX0PNpZQN6TPI+8cGqvM1tQYdyXiDVVAvZMAlmhniLUcxnMaO0UyzFrE0+UX56dGkw1Cxgy/O5a9oNbHIP6aGQwS3NCgXgXWgDF1hRAnZL+gvh3D9UlAJRbhQj19VppCQCFUdnNBymVK5+7RtwDJp8n7U0lniTq5+QZvuWy/v8NGZh6wedRdN/6vtVHKM14TI2G5TuuPmEUcasK26HXyJZb7/+sY21e3L71cfDdytljjdQ0ZN3LJW/AhQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.onmicrosoft.com; s=selector2-analog-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7p4qnss+dTi0WA6rv/3b9c/koSmBMSW7Wd9NPG0rhBQ=; b=mOEWOmCA2RHqaOFkIITyczseczgaRcalpJ/X0usmgECnO13oIKT+a7X1aIMVB4SrOZCrahPWFFN9yrji81dtiCWfFBl32/Q9Ta0oGRcIdWx+gIRh+ohvzyros35X/SSQs46DUQZDK5gRObnBxd13ubId5TrWiBq04qZ7S6n96s4= Received: from DM6PR03MB5274.namprd03.prod.outlook.com (2603:10b6:5:24b::14) by DM5PR03MB3322.namprd03.prod.outlook.com (2603:10b6:4:42::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16; Fri, 11 Sep 2020 13:32:40 +0000 Received: from DM6PR03MB5274.namprd03.prod.outlook.com ([fe80::9a:3146:a6e0:e323]) by DM6PR03MB5274.namprd03.prod.outlook.com ([fe80::9a:3146:a6e0:e323%3]) with mapi id 15.20.3370.017; Fri, 11 Sep 2020 13:32:39 +0000 From: "Togorean, Bogdan" To: Laurent Pinchart CC: "linux-media@vger.kernel.org" , Mauro Carvalho Chehab , Rob Herring , "David S. Miller" , Sakari Ailus , Laurent Pinchart , Jacopo Mondi , Kieran Bingham , YueHaibing , Bingbu Cao , Manivannan Sadhasivam , Shawn Tu , Dongchun Zhu , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "Cozma, Andrei" Subject: RE: [PATCH 1/2] media: i2c: Add driver for the Analog Devices ADDI9036 ToF front-end Thread-Topic: [PATCH 1/2] media: i2c: Add driver for the Analog Devices ADDI9036 ToF front-end Thread-Index: AQHWh3XvzR+FuqmqSEu3z8jI/XRrEqlibP0AgAD3UQA= Date: Fri, 11 Sep 2020 13:32:39 +0000 Message-ID: References: <20200910162426.55306-1-bogdan.togorean@analog.com> <20200910220138.GJ3940@pendragon.ideasonboard.com> In-Reply-To: <20200910220138.GJ3940@pendragon.ideasonboard.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-ref: =?utf-8?B?UEcxbGRHRStQR0YwSUc1dFBTSmliMlI1TG5SNGRDSWdjRDBpWXpwY2RYTmxj?= =?utf-8?B?bk5jWW5SdloyOXlaV0ZjWVhCd1pHRjBZVnh5YjJGdGFXNW5YREE1WkRnME9X?= =?utf-8?B?STJMVE15WkRNdE5HRTBNQzA0TldWbExUWmlPRFJpWVRJNVpUTTFZbHh0YzJk?= =?utf-8?B?elhHMXpaeTAwTUdVeE9UUTBNQzFtTkRNekxURXhaV0V0T0RaaE1pMHhPREZr?= =?utf-8?B?WldFMU5EWmxaREpjWVcxbExYUmxjM1JjTkRCbE1UazBOREV0WmpRek15MHhN?= =?utf-8?B?V1ZoTFRnMllUSXRNVGd4WkdWaE5UUTJaV1F5WW05a2VTNTBlSFFpSUhONlBT?= =?utf-8?B?SXlOakE0T1NJZ2REMGlNVE15TkRRek1EUTNOVFk1TlRZM05EY3lJaUJvUFNK?= =?utf-8?B?MloyaEVkbmRaV0VONWNubDNOR014YkVvd1VEVjNWSFk1VkZFOUlpQnBaRDBp?= =?utf-8?B?SWlCaWJEMGlNQ0lnWW04OUlqRWlJR05wUFNKalFVRkJRVVZTU0ZVeFVsTlNW?= =?utf-8?B?VVpPUTJkVlFVRkZiME5CUVVSM2NteHZSRkZKYWxkQlZYaHdNVnBwV1ZZelN6?= =?utf-8?B?VlVSMjVXYlVwb1dHTnlhMFJCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJTRUZCUVVGRVlVRlJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlJVRkJVVUZDUVVGQlFWa3ZSM0ZLZDBGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VW8wUVVGQlFtaEJSMUZCWVZGQ1prRklUVUZhVVVKcVFVaFZRV05uUW14QlJq?= =?utf-8?B?aEJZMEZDZVVGSE9FRmhaMEpzUVVkTlFXUkJRbnBCUmpoQldtZENhRUZIZDBG?= =?utf-8?B?amQwSnNRVVk0UVZwblFuWkJTRTFCWVZGQ01FRkhhMEZrWjBKc1FVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGRlFVRkJRVUZCUVVG?= =?utf-8?B?QlFXZEJRVUZCUVVGdVowRkJRVWRGUVZwQlFuQkJSamhCWTNkQ2JFRkhUVUZr?= =?utf-8?B?VVVKNVFVZFZRVmgzUW5kQlNFbEJZbmRDY1VGSFZVRlpkMEl3UVVoTlFWaDNR?= =?utf-8?B?akJCUjJ0QldsRkNlVUZFUlVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJV?= =?utf-8?B?VUZCUVVGQlFVRkJRVU5CUVVGQlFVRkRaVUZCUVVGWlVVSnJRVWRyUVZoM1Fu?= =?utf-8?B?cEJSMVZCV1hkQ01VRklTVUZhVVVKbVFVaEJRV05uUW5aQlIyOUJXbEZDYWtG?= =?utf-8?B?SVVVRmpkMEptUVVoUlFXRlJRbXhCU0VsQlRXZEJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUWtGQlFVRkJRVUZCUVVGSlFVRkJRVUZCUVQwOUlpOCtQQzl0?= =?utf-8?B?WlhSaFBnPT0=?= x-dg-rorf: true authentication-results: ideasonboard.com; dkim=none (message not signed) header.d=none;ideasonboard.com; dmarc=none action=none header.from=analog.com; x-originating-ip: [137.71.226.54] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: a79b75b0-633a-403e-da16-08d85657278f x-ms-traffictypediagnostic: DM5PR03MB3322: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4502; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DzVWGSWR4gZxBAhKZAEWarDSso6bXpuzM6QJmbuNv5mxj/BLW4iaUsG+erdL6EIecUKm/1nUv57S4yDZWQ35L8irTgaD/WQ5lqpeE+G/1C4F5vnQb9hrSJNTKDO6LY6yGeP1Z6R/Y4NsTPswNvrTvgKgvzbUS6kyIi3Zf0SQOyjaG2bgg869hSkegdgwNud+7lsW4ABt6yr2epeMLWKax4W+cNmyrH3iFLLEpksLRzfwcRHqDiLORXMCq1+eDjvJTscjTrJIGGDii4SXB0+SgrG60CworrQsQvAQme6mkG+6z6qt7A0QjsACObDq3mLIh9rchZ6kBzK9AVBlK1IKrZQa37VG7se+8flnF6XEzNpxJ1FF53z+o/FwB6YCDK/M26TZowAeliUJZOv74cagNg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR03MB5274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(346002)(376002)(366004)(136003)(396003)(55016002)(8676002)(316002)(26005)(7416002)(30864003)(76116006)(7696005)(66446008)(66556008)(478600001)(66946007)(64756008)(5660300002)(6916009)(86362001)(66476007)(6506007)(71200400001)(2906002)(33656002)(8936002)(83380400001)(4326008)(54906003)(52536014)(9686003)(107886003)(186003)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: dfG9oWrA80uLd81f0TWsP+k1sDL5L1FNSIWpyu5meaYND0aDxQac0fNerGgYBIVbbuq9UuNDUqw3yGGyUT/bE9aXsLp/e8x2T25z7uyJSo3CIb7WOk82KT0WFRZW7CyqTfalGm6B6vmmyYKOr3QQ5qpZofUSOLRYygOtukA95RJ78imw8897H0KXTLuBDGQGrOr9CRFc+8rNQWDi9ruqPCOHBGn9k5FdPUnAyjmF342yr0r/ueAky3RpwhXdkGTvtbcSSydDSGf2yNtMABO366+s64BrzYTqbu+4Cq96U2WwP0IahS+hwmX4teFdQqnQDiyp34jK90hMOKuJEh2eHWjWKqu/eJaqtm++4544krYjFcwWHOYnjnetdUfaN+RQBgcQJT4hqvq3N36F73dOZjLVi+IPCE3SQWR7XT/UuMGN9FdGuWEFyKdQjNleSX6VOs1g9XFiNiWUcp11HBN8AHJpqQ7IaBoR1H45vplTQAYca/i9zoZUnvPGI3/62ljcaNoABTVRiR67MdVqpQCkLH9ls6ss8aP4EgR3nUl/lThEomcvfD9fsw6kuI2jf8O0zW3j4Jlz/e/+CYi0ndZp1ZVlbFHBbIvlJLYPNpJij8pYRNEzdZCMAHnjCWpSSVVNAiOsAwl5asJJF0hvWvhjMw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR03MB5274.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a79b75b0-633a-403e-da16-08d85657278f X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Sep 2020 13:32:39.7035 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: VoMILqpeNOUPF1MqthH4ue0J2B2CyrlvUrNhVY4OOpm+jU8z22Nh9JxLYOrGGk7N0bna/+nOnKKGmLNxl2AgoCvWDneiiPWnBgrNCQc7QBU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3322 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235,18.0.687 definitions=2020-09-11_04:2020-09-10,2020-09-11 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 mlxscore=0 mlxlogscore=999 impostorscore=0 clxscore=1015 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2009110108 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgTGF1cmVudCwNCg0KPiBIaSBCb2dkYW4sDQo+IA0KPiBUaGFuayB5b3UgZm9yIHRoZSBwYXRj aC4NCg0KVGhhbmsgeW91IGZvciByZXZpZXchDQoNCj4gDQo+IE9uIFRodSwgU2VwIDEwLCAyMDIw IGF0IDA3OjI0OjA2UE0gKzAzMDAsIEJvZ2RhbiBUb2dvcmVhbiB3cm90ZToNCj4gPiBUaGUgQURE STkwMzYgaXMgYSBjb21wbGV0ZSwgNDUgTUh6LCBmcm9udC1lbmQgc29sdXRpb24gZm9yIGNoYXJn ZQ0KPiA+IGNvdXBsZWQgZGV2aWNlIChDQ0QpIHRpbWUgb2YgZmxpZ2h0IChUT0YpIGltYWdpbmcg YXBwbGljYXRpb25zLg0KPiA+DQo+ID4gSXQgaGFzIDItbGFuZSBNSVBJIENTSS0yIFJBVzEyIGRh dGEgb3V0cHV0IGFuZCBpMmMgY29udHJvbCBpbnRlcmZhY2UuDQo+ID4NCj4gPiBUaGUgcHJvZ3Jh bW1pbmcgb2YgY2FsaWJyYXRpb24gYW5kIGZpcm13YXJlIGlzIHBlcmZvcm1lZCBieSB1c2Vyc3Bh Y2UNCj4gPiBTREsgdGhyb3VnaCBDSURfVVNFUiBjbGFzcyBJT0NUTHMuDQo+IA0KPiBJJ20gYWZy YWlkIHRoYXQncyBub3QgYWNjZXB0YWJsZS4gVGhlIGZpcm13YXJlIHNob3VsZCBiZSBsb2FkZWQg dXNpbmcNCj4gdGhlIExpbnV4IGtlcm5lbCBmaXJtd2FyZSBBUEkuIEFzIGZvciBjYWxpYnJhdGlv biwgaXMgaXQgc3RhdGljIGRhdGEgPw0KPiBIb3cgaXMgaXQgZ2VuZXJhdGVkID8NCg0KQ2FsaWJy YXRpb24gZGF0YSBpcyBzdGF0aWMgZGF0YSwgZ2VuZXJhdGVkIGF0IHByb2R1Y3Rpb24gYW5kIHN0 b3JlZCBvbiBhbmQgRUVQUk9NDQptZW1vcnkgb24gY2FtZXJhIGJvYXJkLiBUaGUgY2FtZXJhIGJv YXJkIGNvbnNpc3RzIG1haW5seSBvZiBBRERJOTAzNiBwcm9jZXNzb3INCisgQ0NEIGltYWdlIHNl bnNvciArIEVFUFJPTS4NCg0KVGhlIGZpcm13YXJlIGlzIGEgc2V0IG9mIChhZGRyZXNzLCBkYXRh KSB0dXBsZXMgdGhhdCBhcmUgd3JpdHRlbiB2aWEgSTJDLg0KV2Ugd2FudCB0aGlzIGRyaXZlciB0 byBiZSBhIGdlbmVyaWMgb25lIGFuZCBzdXBwb3J0IGFsbCBpbXBsZW1lbnRhdGlvbnMNCm9mIEFE REk5MDM2IFRvRiBwcm9jZXNzb3IuIE5vdyB0aGUgcHJvYmxlbSBpcyB0aGF0IHNvbWUgaW1wbGVt ZW50YXRpb25zIA0Kc3RvcmUgZmlybXdhcmUgKyBjYWxpYnJhdGlvbiBvbiBleHRlcm5hbCBFRVBS T00gYW5kIHNvbWUgc3RvcmUganVzdCBjYWxpYnJhdGlvbiANCmRhdGEgb24gRUVQUk9NIGFuZCBm aXJtd2FyZSBpcyBsb2FkZWQgZnJvbSBhIGZpbGUgc3RvcmVkIGluIFNESy4gV2l0aCB0aGUgaGVs cCANCm9mIHRoZSAyIGN1c3RvbSBjb250cm9scyB3ZSBtb3ZlIHRoZSBjYW1lcmEgbW9kZWwgZGV0 ZWN0aW9uLCBmaXJtd2FyZQ0KYW5kIGNhbGlicmF0aW9uIGZldGNoaW5nIGZyb20gZHJpdmVyIHRv IHVzZXIgc3BhY2UgU0RLLg0KDQpBbHNvIGFuIGltcG9ydGFudCBwb2ludCBpcyB0aGF0IHRoZSBU b0YgcHJvY2Vzc29yIGhhcyAzIG9wZXJhdGluZyBtb2RlcyANCihuZWFyLCBtZWRpdW0gYW5kIGZh cikuIEF0IGVhY2ggbW9kZSBjaGFuZ2UgYSBuZXcgc2V0IG9mIGZpcm13YXJlICsgDQpjYWxpYnJh dGlvbiBkYXRhIGlzIGxvYWRlZCBpbnRvIEFEREk5MDM2IGNoaXAuIElmIHdlIG1vdmUgdGhlIGZp cm13YXJlIGxvYWRpbmcNCmluIGRyaXZlciB3ZSB3b3VsZCBzdGlsbCBuZWVkIGEgY3VzdG9tIGVu dW1lcmF0aW9uIGNvbnRyb2wgdG8gc2VsZWN0IHRoZSB3b3JraW5nIG1vZGUuDQoNCj4gDQo+ID4g U2lnbmVkLW9mZi1ieTogQm9nZGFuIFRvZ29yZWFuIDxib2dkYW4udG9nb3JlYW5AYW5hbG9nLmNv bT4NCj4gPiAtLS0NCj4gPiAgTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgICAgICB8ICAx MCArDQo+ID4gIGRyaXZlcnMvbWVkaWEvaTJjL0tjb25maWcgICAgICAgICAgfCAgMTQgKw0KPiA+ ICBkcml2ZXJzL21lZGlhL2kyYy9NYWtlZmlsZSAgICAgICAgIHwgICAxICsNCj4gPiAgZHJpdmVy cy9tZWRpYS9pMmMvYWRkaTkwMzYuYyAgICAgICB8IDY3MyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKw0KPiA+ICBpbmNsdWRlL3VhcGkvbGludXgvdjRsMi1jb250cm9scy5oIHwgICA2ICsN Cj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCA3MDQgaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9tZWRpYS9pMmMvYWRkaTkwMzYuYw0KPiA+DQo+ID4gZGlmZiAtLWdp dCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMNCj4gPiBpbmRleCBiNWNmYWIwMTViZDYuLmZi MDNhZDljYTkyMCAxMDA2NDQNCj4gPiAtLS0gYS9NQUlOVEFJTkVSUw0KPiA+ICsrKyBiL01BSU5U QUlORVJTDQo+ID4gQEAgLTQ3Nyw2ICs0NzcsMTYgQEAgVzoJaHR0cDovL3dpa2kuYW5hbG9nLmNv bS9BRDc4NzkNCj4gPiAgVzoJaHR0cDovL2V6LmFuYWxvZy5jb20vY29tbXVuaXR5L2xpbnV4LWRl dmljZS1kcml2ZXJzDQo+ID4gIEY6CWRyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vYWQ3ODc5LmMN Cj4gPg0KPiA+ICtBRERJOTAzNiBUT0YgRlJPTlRFTkQgRFJJVkVSDQo+ID4gK006CUJvZ2RhbiBU b2dvcmVhbiA8Ym9nZGFuLnRvZ29yZWFuQGFuYWxvZy5jb20+DQo+ID4gK0w6CWxpbnV4LW1lZGlh QHZnZXIua2VybmVsLm9yZw0KPiA+ICtTOglTdXBwb3J0ZWQNCj4gPiArVzoJaHR0cHM6Ly93d3cu YW5hbG9nLmNvbS9lbi9wcm9kdWN0cy9hZGRpOTAzNi5odG1sDQo+ID4gK1c6CWh0dHA6Ly9lei5h bmFsb2cuY29tL2NvbW11bml0eS9saW51eC1kZXZpY2UtZHJpdmVycw0KPiA+ICtUOglnaXQgZ2l0 Oi8vbGludXh0di5vcmcvbWVkaWFfdHJlZS5naXQNCj4gPiArRjoJRG9jdW1lbnRhdGlvbi9kZXZp Y2V0cmVlL2JpbmRpbmdzL21lZGlhL2kyYy9hZGksYWRkaTkwMzYueWFtbA0KPiA+ICtGOglkcml2 ZXJzL21lZGlhL2kyYy9hZGRpOTAzNi5jDQo+ID4gKw0KPiA+ICBBRERSRVNTIFNQQUNFIExBWU9V VCBSQU5ET01JWkFUSU9OIChBU0xSKQ0KPiA+ICBNOglKaXJpIEtvc2luYSA8amlrb3NAa2VybmVs Lm9yZz4NCj4gPiAgUzoJTWFpbnRhaW5lZA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlh L2kyYy9LY29uZmlnIGIvZHJpdmVycy9tZWRpYS9pMmMvS2NvbmZpZw0KPiA+IGluZGV4IGM3YmE3 NmZlZTU5OS4uMDg3ZGQzMDc1MDVkIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbWVkaWEvaTJj L0tjb25maWcNCj4gPiArKysgYi9kcml2ZXJzL21lZGlhL2kyYy9LY29uZmlnDQo+ID4gQEAgLTcy NSw2ICs3MjUsMjAgQEAgY29uZmlnIFZJREVPX0FQVElOQV9QTEwNCj4gPiAgY29uZmlnIFZJREVP X1NNSUFQUF9QTEwNCj4gPiAgCXRyaXN0YXRlDQo+ID4NCj4gPiArY29uZmlnIFZJREVPX0FEREk5 MDM2DQo+ID4gKwl0cmlzdGF0ZSAiQW5hbG9nIERldmljZXMgQURESTkwMzYgVG9GIGZyb250LWVu ZCBzdXBwb3J0Ig0KPiA+ICsJZGVwZW5kcyBvbiBJMkMgJiYgVklERU9fVjRMMg0KPiA+ICsJc2Vs ZWN0IE1FRElBX0NPTlRST0xMRVINCj4gPiArCXNlbGVjdCBWSURFT19WNEwyX1NVQkRFVl9BUEkN Cj4gPiArCXNlbGVjdCBWNEwyX0ZXTk9ERQ0KPiA+ICsJc2VsZWN0IFJFR01BUF9JMkMNCj4gPiAr CWhlbHANCj4gPiArCSAgVGhpcyBpcyBhIFZpZGVvNExpbnV4MiBkcml2ZXIgZm9yIEFuYWxvZyBE ZXZpY2VzIEFEREk5MDM2DQo+ID4gKwkgIFRpbWUgb2YgRmxpZ2h0IGZyb250LWVuZC4NCj4gPiAr DQo+ID4gKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhl cmU6IHRoZQ0KPiA+ICsJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgYWRkaTkwMzYuDQo+ID4gKw0K PiA+ICBjb25maWcgVklERU9fSEk1NTYNCj4gPiAgCXRyaXN0YXRlICJIeW5peCBIaS01NTYgc2Vu c29yIHN1cHBvcnQiDQo+ID4gIAlkZXBlbmRzIG9uIEkyQyAmJiBWSURFT19WNEwyDQo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvaTJjL01ha2VmaWxlIGIvZHJpdmVycy9tZWRpYS9pMmMv TWFrZWZpbGUNCj4gPiBpbmRleCBmMGE3NzQ3Mzk3OWQuLjYzMWE3Yzc2MTJjYSAxMDA2NDQNCj4g PiAtLS0gYS9kcml2ZXJzL21lZGlhL2kyYy9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMvbWVk aWEvaTJjL01ha2VmaWxlDQo+ID4gQEAgLTI2LDYgKzI2LDcgQEAgb2JqLSQoQ09ORklHX1ZJREVP X0FLNzM3NSkgICs9IGFrNzM3NS5vDQo+ID4gIG9iai0kKENPTkZJR19WSURFT19EVzk3MTQpICAr PSBkdzk3MTQubw0KPiA+ICBvYmotJChDT05GSUdfVklERU9fRFc5NzY4KSAgKz0gZHc5NzY4Lm8N Cj4gPiAgb2JqLSQoQ09ORklHX1ZJREVPX0RXOTgwN19WQ00pICArPSBkdzk4MDctdmNtLm8NCj4g PiArb2JqLSQoQ09ORklHX1ZJREVPX0FEREk5MDM2KSArPSBhZGRpOTAzNi5vDQo+ID4gIG9iai0k KENPTkZJR19WSURFT19BRFY3MTcwKSArPSBhZHY3MTcwLm8NCj4gPiAgb2JqLSQoQ09ORklHX1ZJ REVPX0FEVjcxNzUpICs9IGFkdjcxNzUubw0KPiA+ICBvYmotJChDT05GSUdfVklERU9fQURWNzE4 MCkgKz0gYWR2NzE4MC5vDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvaTJjL2FkZGk5 MDM2LmMgYi9kcml2ZXJzL21lZGlhL2kyYy9hZGRpOTAzNi5jDQo+ID4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjc2YzM0NDQwNThkYw0KPiA+IC0tLSAvZGV2 L251bGwNCj4gPiArKysgYi9kcml2ZXJzL21lZGlhL2kyYy9hZGRpOTAzNi5jDQo+ID4gQEAgLTAs MCArMSw2NzMgQEANCj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4g PiArLyoNCj4gPiArICogRHJpdmVyIGZvciB0aGUgQW5hbG9nIERldmljZXMgQURESTkwMzYgVG9G IGZyb250LWVuZC4NCj4gPiArICoNCj4gPiArICogQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQW5h bG9nIERldmljZXMsIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQo+ID4gKyAqDQo+ID4gKyAqLw0KPiA+ ICsNCj4gPiArI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgv Z3Bpby9jb25zdW1lci5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvaTJjLmg+DQo+ID4gKyNpbmNs dWRlIDxsaW51eC9pbml0Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCj4gPiAr I2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9vZi5oPg0KPiA+ ICsjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3JlZ21h cC5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgv dHlwZXMuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4NCj4gPiArI2luY2x1ZGUg PG1lZGlhL3Y0bDItY3RybHMuaD4NCj4gPiArI2luY2x1ZGUgPG1lZGlhL3Y0bDItZndub2RlLmg+ DQo+ID4gKyNpbmNsdWRlIDxtZWRpYS92NGwyLXN1YmRldi5oPg0KPiA+ICsNCj4gPiArc3RydWN0 IGFkZGk5MDM2X21vZGVfaW5mbyB7DQo+ID4gKwl1MzIgd2lkdGg7DQo+ID4gKwl1MzIgaGVpZ2h0 Ow0KPiA+ICsJdTMyIHBpeGVsX3JhdGU7DQo+ID4gKwl1MzIgbGlua19mcmVxX2lkeDsNCj4gPiAr fTsNCj4gPiArDQo+ID4gK3N0cnVjdCBhZGRpOTAzNiB7DQo+ID4gKwlzdHJ1Y3QgcmVnbWFwICpy ZWdtYXA7DQo+ID4gKwlzdHJ1Y3QgZGV2aWNlICpkZXY7DQo+ID4gKwlzdHJ1Y3QgdjRsMl9zdWJk ZXYgc2Q7DQo+ID4gKwlzdHJ1Y3QgbWVkaWFfcGFkIHBhZDsNCj4gPiArCXN0cnVjdCB2NGwyX2Z3 bm9kZV9lbmRwb2ludCBlcDsNCj4gPiArCXN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgZm10Ow0K PiA+ICsJc3RydWN0IHY0bDJfcmVjdCBjcm9wOw0KPiA+ICsNCj4gPiArCWNvbnN0IHN0cnVjdCBh ZGRpOTAzNl9tb2RlX2luZm8gKmN1cnJlbnRfbW9kZTsNCj4gPiArDQo+ID4gKwlzdHJ1Y3QgdjRs Ml9jdHJsX2hhbmRsZXIgY3RybHM7DQo+ID4gKwlzdHJ1Y3QgdjRsMl9jdHJsICpwaXhlbF9yYXRl Ow0KPiA+ICsJc3RydWN0IHY0bDJfY3RybCAqbGlua19mcmVxOw0KPiA+ICsNCj4gPiArCS8qIGxv Y2sgdG8gcHJvdGVjdCBwb3dlciBzdGF0ZSAqLw0KPiA+ICsJc3RydWN0IG11dGV4IHBvd2VyX2xv Y2s7DQo+ID4gKwlpbnQgcG93ZXJfY291bnQ7DQo+ID4gKw0KPiA+ICsJc3RydWN0IGdwaW9fZGVz YyAqcnN0X2dwaW87DQo+ID4gKw0KPiA+ICsJLyogY29udHJvbHMgKi8NCj4gPiArCXN0cnVjdCB2 NGwyX2N0cmwgKnNldF9jaGlwX2NvbmZpZzsNCj4gPiArCXN0cnVjdCB2NGwyX2N0cmwgKnJlZ19y ZWFkOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgYWRkaTkwMzYg KnRvX2FkZGk5MDM2KHN0cnVjdCB2NGwyX3N1YmRldiAqc2QpDQo+ID4gK3sNCj4gPiArCXJldHVy biBjb250YWluZXJfb2Yoc2QsIHN0cnVjdCBhZGRpOTAzNiwgc2QpOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICsjZGVmaW5lIFY0TDJfQ0lEX0FEX0RFVl9TRVRfQ0hJUF9DT05GSUdfUVVFUlkNCj4gKFY0 TDJfQ0lEX1VTRVJfQURESTkwMzZfQkFTRSArIDApDQo+ID4gKyNkZWZpbmUgVjRMMl9DSURfQURf REVWX1JFR19SRUFEX1FVRVJZDQo+IChWNEwyX0NJRF9VU0VSX0FEREk5MDM2X0JBU0UgKyAxKQ0K PiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCByZWdfc2VxdWVuY2UgYWRkaTkwMzZfcG93 ZXJ1cF9zZXR0aW5nW10gPSB7DQo+ID4gKwl7IDB4YzRjMCwgMHgwMDFjIH0sDQo+ID4gKwl7IDB4 YzRjMywgMHgwMDFjIH0sDQo+ID4gKwl7IDB4YzRkNywgMHgwMDAwIH0sDQo+ID4gKwl7IDB4YzRk NSwgMHgwMDAyIH0sDQo+ID4gKwl7IDB4YzRkYSwgMHgwMDAxIH0sDQo+ID4gKwl7IDB4YzRmMCwg MHgwMDAwIH0sDQo+ID4gKwl7IDB4YzQyNywgMHgwMDAzIH0sDQo+ID4gKwl7IDB4YzQyNywgMHgw MDAxIH0sDQo+ID4gKwl7IDB4YzQyNywgMHgwMDAwIH0sDQo+ID4gKwl7IDB4YzQyNiwgMHgwMDMw IH0sDQo+ID4gKwl7IDB4YzQyNiwgMHgwMDEwIH0sDQo+ID4gKwl7IDB4YzQyNiwgMHgwMDAwIH0s DQo+ID4gKwl7IDB4YzQyMywgMHgwMDgwIH0sDQo+ID4gKwl7IDB4YzQzMSwgMHgwMDgwIH0sDQo+ ID4gKwl7IDB4NDAwMSwgMHgwMDA3IH0sDQo+ID4gKwl7IDB4N2MyMiwgMHgwMDA0IH0NCj4gPiAr fTsNCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnX3NlcXVlbmNlIGFkZGk5MDM2 X3Bvd2VyZG93bl9zZXR0aW5nW10gPSB7DQo+ID4gKwl7IDB4YzAyMiwgMHgwMDAxIH0sDQo+ID4g Kwl7IDB4NDAwMSwgMHgwMDA2IH0sDQo+ID4gKwl7IDB4N2MyMiwgMHgwMDA0IH0sDQo+ID4gKwl7 IDB4YzQzMSwgMHgwMDgyIH0sDQo+ID4gKwl7IDB4YzQyMywgMHgwMDAwIH0sDQo+ID4gKwl7IDB4 YzQyNiwgMHgwMDIwIH0sDQo+ID4gKwl7IDB4YzQyNywgMHgwMDAyIH0sDQo+ID4gKwl7IDB4YzRj MCwgMHgwMDNjIH0sDQo+ID4gKwl7IDB4YzRjMywgMHgwMDNjIH0sDQo+ID4gKwl7IDB4YzRkNSwg MHgwMDAzIH0sDQo+ID4gKwl7IDB4YzRkYSwgMHgwMDAwIH0sDQo+ID4gKwl7IDB4YzRkNywgMHgw MDAxIH0sDQo+ID4gKwl7IDB4YzRmMCwgMHgwMDAxIH0NCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0 YXRpYyBjb25zdCBzNjQgbGlua19mcmVxX3RibFtdID0gew0KPiA+ICsJMTEwNTI5MDAwLA0KPiA+ ICsJMjIxMTg0MDAwLA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArLyogRWxlbWVudHMgb2YgdGhlIHN0 cnVjdHVyZSBtdXN0IGJlIG9yZGVyZWQgYXNjZW5kaW5nIGJ5IHdpZHRoICYgaGVpZ2h0ICovDQo+ ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWRkaTkwMzZfbW9kZV9pbmZvIGFkZGk5MDM2X21vZGVf aW5mb19kYXRhW10gPSB7DQo+ID4gKwl7DQo+ID4gKwkJLndpZHRoID0gNjQwLA0KPiA+ICsJCS5o ZWlnaHQgPSA0ODAsDQo+ID4gKwkJLnBpeGVsX3JhdGUgPSAzNjg2NDAwMCwNCj4gPiArCQkubGlu a19mcmVxX2lkeCA9IDAgLyogYW4gaW5kZXggaW4gbGlua19mcmVxX3RibFtdICovDQo+ID4gKwl9 LA0KPiA+ICsJew0KPiA+ICsJCS53aWR0aCA9IDY0MCwNCj4gPiArCQkuaGVpZ2h0ID0gOTYwLA0K PiA+ICsJCS5waXhlbF9yYXRlID0gNzM3MjgwMDAsDQo+ID4gKwkJLmxpbmtfZnJlcV9pZHggPSAx IC8qIGFuIGluZGV4IGluIGxpbmtfZnJlcV90YmxbXSAqLw0KPiA+ICsJfSwNCj4gPiArfTsNCj4g PiArDQo+ID4gK3N0YXRpYyBib29sIGFkZGk5MzA2X3JlYWRhYmxlX3JlZ2lzdGVyKHN0cnVjdCBk ZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHJlZykNCj4gPiArew0KPiA+ICsJaWYgKCgocmVnID49 IDB4NDAwMCkgJiYgKHJlZyA8PSAweDZGRkYpKSB8fA0KPiA+ICsJICAgICgocmVnID49IDB4N0Mw MCkgJiYgKHJlZyA8PSAweDdGRkYpKSB8fA0KPiA+ICsJICAgICgocmVnID49IDB4QzAwMCkgJiYg KHJlZyA8PSAweEMyMDApKSB8fA0KPiA+ICsJICAgICgocmVnID49IDB4QzMwMCkgJiYgKHJlZyA8 PSAweEM2QkYpKSkNCj4gPiArCQlyZXR1cm4gdHJ1ZTsNCj4gPiArCWVsc2UNCj4gPiArCQlyZXR1 cm4gZmFsc2U7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBib29sIGFkZGk5MzA2X3dyaXRl YWJsZV9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCByZWcpDQo+ID4g K3sNCj4gPiArCWlmICgoKHJlZyA+PSAweDQwMDApICYmIChyZWcgPD0gMHg2RkZGKSkgfHwNCj4g PiArCSAgICAoKHJlZyA+PSAweDdDMDApICYmIChyZWcgPD0gMHg3RkZGKSkgfHwNCj4gPiArCSAg ICAoKHJlZyA+PSAweEMwMDApICYmIChyZWcgPD0gMHhDMTEzKSkgfHwNCj4gPiArCSAgICAoKHJl ZyA+PSAweEMzMDApICYmIChyZWcgPD0gMHhDN0ZGKSkpDQo+ID4gKwkJcmV0dXJuIHRydWU7DQo+ ID4gKwllbHNlDQo+ID4gKwkJcmV0dXJuIGZhbHNlOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgYWRkaTkwMzZfaTJjX3JlZ21hcF9jb25maWcg PSB7DQo+ID4gKwkucmVnX2JpdHMgPSAxNiwNCj4gPiArCS52YWxfYml0cyA9IDE2LA0KPiA+ICsN Cj4gPiArCS5tYXhfcmVnaXN0ZXIgPSAweEM3RkYsDQo+ID4gKwkud3JpdGVhYmxlX3JlZyA9IGFk ZGk5MzA2X3dyaXRlYWJsZV9yZWdpc3RlciwNCj4gPiArCS5yZWFkYWJsZV9yZWcgPSBhZGRpOTMw Nl9yZWFkYWJsZV9yZWdpc3RlciwNCj4gPiArCS5jYWNoZV90eXBlID0gUkVHQ0FDSEVfTk9ORSwN Cj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgYWRkaTkwMzZfc2V0X3Bvd2VyX29uKHN0 cnVjdCBhZGRpOTAzNiAqYWRkaTkwMzYpDQo+ID4gK3sNCj4gPiArCWludCByZXQ7DQo+ID4gKw0K PiA+ICsJaWYgKGFkZGk5MDM2LT5yc3RfZ3BpbykNCj4gPiArCQlncGlvZF9zZXRfdmFsdWVfY2Fu c2xlZXAoYWRkaTkwMzYtPnJzdF9ncGlvLCAwKTsNCj4gPiArDQo+ID4gKwlyZXQgPSByZWdtYXBf cmVnaXN0ZXJfcGF0Y2goYWRkaTkwMzYtPnJlZ21hcCwNCj4gYWRkaTkwMzZfcG93ZXJ1cF9zZXR0 aW5nLA0KPiA+ICsJCQkJICAgIEFSUkFZX1NJWkUoYWRkaTkwMzZfcG93ZXJ1cF9zZXR0aW5nKSk7 DQo+ID4gKwlpZiAocmV0KQ0KPiA+ICsJCWRldl9lcnIoYWRkaTkwMzYtPmRldiwgIkNvdWxkIG5v dCBzZXQgcG93ZXIgdXAgcmVnaXN0ZXJzXG4iKTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gcmV0Ow0K PiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGFkZGk5MDM2X3NldF9wb3dlcl9vZmYoc3Ry dWN0IGFkZGk5MDM2ICphZGRpOTAzNikNCj4gPiArew0KPiA+ICsJaW50IHJldDsNCj4gPiArDQo+ ID4gKwlyZXQgPSByZWdtYXBfcmVnaXN0ZXJfcGF0Y2goYWRkaTkwMzYtPnJlZ21hcCwNCj4gPiAr CQkJCSAgICBhZGRpOTAzNl9wb3dlcmRvd25fc2V0dGluZywNCj4gPiArCQkJCSAgICBBUlJBWV9T SVpFKGFkZGk5MDM2X3Bvd2VyZG93bl9zZXR0aW5nKSk7DQo+ID4gKwlpZiAocmV0KQ0KPiA+ICsJ CWRldl9lcnIoYWRkaTkwMzYtPmRldiwgImNvdWxkIG5vdCBzZXQgcG93ZXIgZG93bg0KPiByZWdp c3RlcnNcbiIpOw0KPiA+ICsNCj4gPiArCWlmIChhZGRpOTAzNi0+cnN0X2dwaW8pDQo+ID4gKwkJ Z3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGFkZGk5MDM2LT5yc3RfZ3BpbywgMSk7DQo+ID4gKw0K PiA+ICsJcmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBhZGRpOTAz Nl9zX3Bvd2VyKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsIGludCBvbikNCj4gPiArew0KPiA+ICsJ c3RydWN0IGFkZGk5MDM2ICphZGRpOTAzNiA9IHRvX2FkZGk5MDM2KHNkKTsNCj4gPiArCWludCBy ZXQgPSAwOw0KPiA+ICsNCj4gPiArCW11dGV4X2xvY2soJmFkZGk5MDM2LT5wb3dlcl9sb2NrKTsN Cj4gPiArDQo+ID4gKwlkZXZfZGJnKGFkZGk5MDM2LT5kZXYsICJzX3Bvd2VyOiAlZFxuIiwgb24p Ow0KPiA+ICsNCj4gPiArCS8qIElmIHRoZSBwb3dlciBjb3VudCBpcyBtb2RpZmllZCBmcm9tIDAg dG8gIT0gMCBvciBmcm9tICE9IDAgdG8gMCwNCj4gPiArCSAqIHVwZGF0ZSB0aGUgcG93ZXIgc3Rh dGUuDQo+ID4gKwkgKi8NCj4gPiArCWlmIChhZGRpOTAzNi0+cG93ZXJfY291bnQgPT0gIW9uKSB7 DQo+ID4gKwkJaWYgKG9uKQ0KPiA+ICsJCQlyZXQgPSBhZGRpOTAzNl9zZXRfcG93ZXJfb24oYWRk aTkwMzYpOw0KPiA+ICsJCWVsc2UNCj4gPiArCQkJcmV0ID0gYWRkaTkwMzZfc2V0X3Bvd2VyX29m ZihhZGRpOTAzNik7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYgKCFyZXQpIHsNCj4gPiArCQkv KiBVcGRhdGUgdGhlIHBvd2VyIGNvdW50LiAqLw0KPiA+ICsJCWFkZGk5MDM2LT5wb3dlcl9jb3Vu dCArPSBvbiA/IDEgOiAtMTsNCj4gPiArCQlXQVJOKGFkZGk5MDM2LT5wb3dlcl9jb3VudCA8IDAs ICJVbmJhbGFuY2VkIHBvd2VyDQo+IGNvdW50XG4iKTsNCj4gPiArCQlXQVJOKGFkZGk5MDM2LT5w b3dlcl9jb3VudCA+IDEsICJEdXBsaWNhdGVkIHNfcG93ZXINCj4gY2FsbFxuIik7DQo+ID4gKwl9 DQo+ID4gKw0KPiA+ICsJbXV0ZXhfdW5sb2NrKCZhZGRpOTAzNi0+cG93ZXJfbG9jayk7DQo+ID4g Kw0KPiA+ICsJcmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBhZGRp OTAzNl9zZXRfY2hpcF9jb25maWcoc3RydWN0IGFkZGk5MDM2ICphZGRpOTAzNiwNCj4gPiArCQkJ CSAgICBzdHJ1Y3QgdjRsMl9jdHJsICpjdHJsKQ0KPiA+ICt7DQo+ID4gKwlpbnQgaW5kZXg7DQo+ ID4gKwl1bnNpZ25lZCBzaG9ydCAqcmVnLCAqdmFsOw0KPiA+ICsNCj4gPiArCXJlZyA9ICh1bnNp Z25lZCBzaG9ydCAqKShjdHJsLT5wX25ldy5wX3UxNik7DQo+ID4gKwl2YWwgPSAodW5zaWduZWQg c2hvcnQgKikoY3RybC0+cF9uZXcucF91MTYgKyAxKTsNCj4gPiArDQo+ID4gKwlmb3IgKGluZGV4 ID0gMDsgaW5kZXggPCBjdHJsLT5lbGVtczsgaW5kZXggKz0gMikgew0KPiA+ICsJCXJlZ21hcF93 cml0ZShhZGRpOTAzNi0+cmVnbWFwLCAqcmVnLCAqdmFsKTsNCj4gPiArCQlyZWcgKz0gMjsNCj4g PiArCQl2YWwgKz0gMjsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0K PiA+ICsNCj4gPiArc3RhdGljIGludCBhZGRpOTAzNl9zX2N0cmwoc3RydWN0IHY0bDJfY3RybCAq Y3RybCkNCj4gPiArew0KPiA+ICsJc3RydWN0IGFkZGk5MDM2ICphZGRpOTAzNiA9IGNvbnRhaW5l cl9vZihjdHJsLT5oYW5kbGVyLA0KPiA+ICsJCQkJCQkgc3RydWN0IGFkZGk5MDM2LCBjdHJscyk7 DQo+ID4gKwlpbnQgcmV0ID0gMDsNCj4gPiArCXVuc2lnbmVkIGludCB2YWw7DQo+ID4gKw0KPiA+ ICsJc3dpdGNoIChjdHJsLT5pZCkgew0KPiA+ICsJY2FzZSBWNEwyX0NJRF9BRF9ERVZfU0VUX0NI SVBfQ09ORklHX1FVRVJZOg0KPiA+ICsJCXJldCA9IGFkZGk5MDM2X3NldF9jaGlwX2NvbmZpZyhh ZGRpOTAzNiwgY3RybCk7DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwljYXNlIFY0TDJfQ0lEX0FEX0RF Vl9SRUdfUkVBRF9RVUVSWToNCj4gPiArCQlyZXQgPSByZWdtYXBfcmVhZChhZGRpOTAzNi0+cmVn bWFwLCAqKHUxNiAqKShjdHJsLQ0KPiA+cF9uZXcucF91MTYpLA0KPiA+ICsJCQkJICAmdmFsKTsN Cj4gPiArCQlpZiAocmV0KQ0KPiA+ICsJCQlkZXZfd2FybihhZGRpOTAzNi0+ZGV2LA0KPiA+ICsJ CQkJICJjb3VsZCBub3QgcmVhZCBmcm9tIHJlZ2lzdGVyXG4iKTsNCj4gPiArCQllbHNlDQo+ID4g KwkJCSoodTE2ICopKGN0cmwtPnBfbmV3LnBfdTE2KSA9IHZhbDsNCj4gPiArCQlicmVhazsNCj4g PiArCWNhc2UgVjRMMl9DSURfUElYRUxfUkFURToNCj4gPiArCWNhc2UgVjRMMl9DSURfTElOS19G UkVROg0KPiA+ICsJCWJyZWFrOw0KPiA+ICsJZGVmYXVsdDoNCj4gPiArCQlkZXZfZXJyKGFkZGk5 MDM2LT5kZXYsICIlcyA+IFVuaGFuZGxlZDogJXggIHBhcmFtPSV4XG4iLA0KPiA+ICsJCQlfX2Z1 bmNfXywgY3RybC0+aWQsIGN0cmwtPnZhbCk7DQo+ID4gKwkJcmV0ID0gLUVJTlZBTDsNCj4gPiAr CQlicmVhazsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXR1cm4gcmV0Ow0KPiA+ICt9DQo+ID4g Kw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfY3RybF9vcHMgYWRkaTkwMzZfY3RybF9v cHMgPSB7DQo+ID4gKwkuc19jdHJsID0gYWRkaTkwMzZfc19jdHJsLA0KPiA+ICt9Ow0KPiA+ICsN Cj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfY29uZmlnIGFkZGk5MDM2X2N0cmxf Y2hpcF9jb25maWcgPSB7DQo+ID4gKwkub3BzCQk9ICZhZGRpOTAzNl9jdHJsX29wcywNCj4gPiAr CS5pZAkJPSBWNEwyX0NJRF9BRF9ERVZfU0VUX0NISVBfQ09ORklHX1FVRVJZLA0KPiA+ICsJLm5h bWUJCT0gImNoaXBfY29uZmlnIiwNCj4gPiArCS50eXBlCQk9IFY0TDJfQ1RSTF9UWVBFX1UxNiwN Cj4gPiArCS5kZWYJCT0gMHhGRiwNCj4gPiArCS5taW4JCT0gMHgwMCwNCj4gPiArCS5tYXgJCT0g MHhGRkZGLA0KPiA+ICsJLnN0ZXAJCT0gMSwNCj4gPiArCS5kaW1zCQk9IHsgMjA0OCB9LA0KPiA+ ICsJLmVsZW1fc2l6ZQk9IDINCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgdjRsMl9jdHJsX2NvbmZpZyBhZGRpOTAzNl9jdHJsX3JlZ19yZWFkID0gew0KPiA+ICsJLm9w cwk9ICZhZGRpOTAzNl9jdHJsX29wcywNCj4gPiArCS5pZAk9IFY0TDJfQ0lEX0FEX0RFVl9SRUdf UkVBRF9RVUVSWSwNCj4gPiArCS5uYW1lCT0gInJlZ19yZWFkIiwNCj4gPiArCS50eXBlCT0gVjRM Ml9DVFJMX1RZUEVfVTE2LA0KPiA+ICsJLmRlZgk9IDAsDQo+ID4gKwkubWluCT0gMHgwMCwNCj4g PiArCS5tYXgJPSAweEZGRkYsDQo+ID4gKwkuc3RlcAk9IDENCj4gPiArfTsNCj4gPiArDQo+ID4g K3N0YXRpYyBpbnQgYWRkaTkwMzZfZW51bV9tYnVzX2NvZGUoc3RydWN0IHY0bDJfc3ViZGV2ICpz ZCwNCj4gPiArCQkJCSAgIHN0cnVjdCB2NGwyX3N1YmRldl9wYWRfY29uZmlnICpjZmcsDQo+ID4g KwkJCQkgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfbWJ1c19jb2RlX2VudW0gKmNvZGUpDQo+ID4gK3sN Cj4gPiArCWlmIChjb2RlLT5pbmRleCA+IDApDQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4g Kw0KPiA+ICsJY29kZS0+Y29kZSA9IE1FRElBX0JVU19GTVRfU0JHR1IxMl8xWDEyOw0KPiA+ICsN Cj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGFkZGk5MDM2 X2VudW1fZnJhbWVfc2l6ZShzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwNCj4gPiArCQkJCSAg ICBzdHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX2NvbmZpZyAqY2ZnLA0KPiA+ICsJCQkJICAgIHN0cnVj dCB2NGwyX3N1YmRldl9mcmFtZV9zaXplX2VudW0gKmZzZSkNCj4gPiArew0KPiA+ICsJaWYgKGZz ZS0+Y29kZSAhPSBNRURJQV9CVVNfRk1UX1NCR0dSMTJfMVgxMikNCj4gPiArCQlyZXR1cm4gLUVJ TlZBTDsNCj4gPiArDQo+ID4gKwlpZiAoZnNlLT5pbmRleCA+PSBBUlJBWV9TSVpFKGFkZGk5MDM2 X21vZGVfaW5mb19kYXRhKSkNCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiArDQo+ID4gKwlm c2UtPm1pbl93aWR0aCA9IGFkZGk5MDM2X21vZGVfaW5mb19kYXRhW2ZzZS0+aW5kZXhdLndpZHRo Ow0KPiA+ICsJZnNlLT5tYXhfd2lkdGggPSBhZGRpOTAzNl9tb2RlX2luZm9fZGF0YVtmc2UtPmlu ZGV4XS53aWR0aDsNCj4gPiArCWZzZS0+bWluX2hlaWdodCA9IGFkZGk5MDM2X21vZGVfaW5mb19k YXRhW2ZzZS0+aW5kZXhdLmhlaWdodDsNCj4gPiArCWZzZS0+bWF4X2hlaWdodCA9IGFkZGk5MDM2 X21vZGVfaW5mb19kYXRhW2ZzZS0+aW5kZXhdLmhlaWdodDsNCj4gPiArDQo+ID4gKwlyZXR1cm4g MDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQg Kg0KPiA+ICthZGRpOTAzNl9nZXRfcGFkX2Zvcm1hdChzdHJ1Y3QgYWRkaTkwMzYgKmFkZGk5MDM2 LA0KPiA+ICsJCQlzdHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX2NvbmZpZyAqY2ZnLA0KPiA+ICsJCQl1 bnNpZ25lZCBpbnQgcGFkLA0KPiA+ICsJCQllbnVtIHY0bDJfc3ViZGV2X2Zvcm1hdF93aGVuY2Ug d2hpY2gpDQo+ID4gK3sNCj4gPiArCXN3aXRjaCAod2hpY2gpIHsNCj4gPiArCWNhc2UgVjRMMl9T VUJERVZfRk9STUFUX1RSWToNCj4gPiArCQlyZXR1cm4gdjRsMl9zdWJkZXZfZ2V0X3RyeV9mb3Jt YXQoJmFkZGk5MDM2LT5zZCwgY2ZnLCBwYWQpOw0KPiA+ICsJY2FzZSBWNEwyX1NVQkRFVl9GT1JN QVRfQUNUSVZFOg0KPiA+ICsJCXJldHVybiAmYWRkaTkwMzYtPmZtdDsNCj4gPiArCWRlZmF1bHQ6 DQo+ID4gKwkJcmV0dXJuIE5VTEw7DQo+ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRp YyBpbnQgYWRkaTkwMzZfZ2V0X2Zvcm1hdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLA0KPiA+ICsJ CQkgICAgICAgc3RydWN0IHY0bDJfc3ViZGV2X3BhZF9jb25maWcgKmNmZywNCj4gPiArCQkJICAg ICAgIHN0cnVjdCB2NGwyX3N1YmRldl9mb3JtYXQgKmZvcm1hdCkNCj4gPiArew0KPiA+ICsJc3Ry dWN0IGFkZGk5MDM2ICphZGRpOTAzNiA9IHRvX2FkZGk5MDM2KHNkKTsNCj4gPiArCXN0cnVjdCB2 NGwyX21idXNfZnJhbWVmbXQgKnBhZF9mb3JtYXQ7DQo+ID4gKw0KPiA+ICsJcGFkX2Zvcm1hdCA9 IGFkZGk5MDM2X2dldF9wYWRfZm9ybWF0KGFkZGk5MDM2LCBjZmcsIGZvcm1hdC0+cGFkLA0KPiA+ ICsJCQkJCSAgICAgZm9ybWF0LT53aGljaCk7DQo+ID4gKw0KPiA+ICsJaWYgKCFwYWRfZm9ybWF0 KQ0KPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsNCj4gPiArCWZvcm1hdC0+Zm9ybWF0ID0g KnBhZF9mb3JtYXQ7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4g K3N0YXRpYyBzdHJ1Y3QgdjRsMl9yZWN0ICoNCj4gPiArYWRkaTkwMzZfZ2V0X3BhZF9jcm9wKHN0 cnVjdCBhZGRpOTAzNiAqYWRkaTkwMzYsDQo+ID4gKwkJICAgICAgc3RydWN0IHY0bDJfc3ViZGV2 X3BhZF9jb25maWcgKmNmZywNCj4gPiArCQkgICAgICB1bnNpZ25lZCBpbnQgcGFkLCBlbnVtIHY0 bDJfc3ViZGV2X2Zvcm1hdF93aGVuY2Ugd2hpY2gpDQo+ID4gK3sNCj4gPiArCXN3aXRjaCAod2hp Y2gpIHsNCj4gPiArCWNhc2UgVjRMMl9TVUJERVZfRk9STUFUX1RSWToNCj4gPiArCQlyZXR1cm4g djRsMl9zdWJkZXZfZ2V0X3RyeV9jcm9wKCZhZGRpOTAzNi0+c2QsIGNmZywgcGFkKTsNCj4gPiAr CWNhc2UgVjRMMl9TVUJERVZfRk9STUFUX0FDVElWRToNCj4gPiArCQlyZXR1cm4gJmFkZGk5MDM2 LT5jcm9wOw0KPiA+ICsJZGVmYXVsdDoNCj4gPiArCQlyZXR1cm4gTlVMTDsNCj4gPiArCX0NCj4g PiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBhZGRpOTAzNl9tb2RlX2luZm8g Kg0KPiA+ICthZGRpOTAzNl9maW5kX25lYXJlc3RfbW9kZSh1bnNpZ25lZCBpbnQgd2lkdGgsIHVu c2lnbmVkIGludCBoZWlnaHQpDQo+ID4gK3sNCj4gPiArCXVuc2lnbmVkIGludCBpOw0KPiA+ICsN Cj4gPiArCWZvciAoaSA9IEFSUkFZX1NJWkUoYWRkaTkwMzZfbW9kZV9pbmZvX2RhdGEpIC0gMTsg aSA+IDA7IGktLSkgew0KPiA+ICsJCWlmIChhZGRpOTAzNl9tb2RlX2luZm9fZGF0YVtpXS53aWR0 aCA8PSB3aWR0aCAmJg0KPiA+ICsJCSAgICBhZGRpOTAzNl9tb2RlX2luZm9fZGF0YVtpXS5oZWln aHQgPD0gaGVpZ2h0KQ0KPiA+ICsJCQlicmVhazsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXR1 cm4gJmFkZGk5MDM2X21vZGVfaW5mb19kYXRhW2ldOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0 aWMgaW50IGFkZGk5MDM2X3NldF9mb3JtYXQoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwNCj4gPiAr CQkJICAgICAgIHN0cnVjdCB2NGwyX3N1YmRldl9wYWRfY29uZmlnICpjZmcsDQo+ID4gKwkJCSAg ICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfZm9ybWF0ICpmb3JtYXQpDQo+ID4gK3sNCj4gPiArCXN0 cnVjdCBhZGRpOTAzNiAqYWRkaTkwMzYgPSB0b19hZGRpOTAzNihzZCk7DQo+ID4gKwlzdHJ1Y3Qg djRsMl9tYnVzX2ZyYW1lZm10ICpmcmFtZWZtdDsNCj4gPiArCXN0cnVjdCB2NGwyX3JlY3QgKmNy b3A7DQo+ID4gKwljb25zdCBzdHJ1Y3QgYWRkaTkwMzZfbW9kZV9pbmZvICpuZXdfbW9kZTsNCj4g PiArCWludCByZXQ7DQo+ID4gKw0KPiA+ICsJZGV2X2RiZyhhZGRpOTAzNi0+ZGV2LCAic2V0X2Zt dDogJXggJWR4JWRcbiIsDQo+ID4gKwkJZm9ybWF0LT5mb3JtYXQuY29kZSwgZm9ybWF0LT5mb3Jt YXQud2lkdGgsDQo+ID4gKwkJZm9ybWF0LT5mb3JtYXQuaGVpZ2h0KTsNCj4gPiArDQo+ID4gKwlj cm9wID0gYWRkaTkwMzZfZ2V0X3BhZF9jcm9wKGFkZGk5MDM2LCBjZmcsIGZvcm1hdC0+cGFkLA0K PiA+ICsJCQkJICAgICBmb3JtYXQtPndoaWNoKTsNCj4gPiArDQo+ID4gKwlpZiAoIWNyb3ApDQo+ ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKw0KPiA+ICsJbmV3X21vZGUgPSBhZGRpOTAzNl9m aW5kX25lYXJlc3RfbW9kZShmb3JtYXQtPmZvcm1hdC53aWR0aCwNCj4gPiArCQkJCQkgICAgICBm b3JtYXQtPmZvcm1hdC5oZWlnaHQpOw0KPiA+ICsJY3JvcC0+d2lkdGggPSBuZXdfbW9kZS0+d2lk dGg7DQo+ID4gKwljcm9wLT5oZWlnaHQgPSBuZXdfbW9kZS0+aGVpZ2h0Ow0KPiA+ICsNCj4gPiAr CWlmIChmb3JtYXQtPndoaWNoID09IFY0TDJfU1VCREVWX0ZPUk1BVF9BQ1RJVkUpIHsNCj4gPiAr CQlyZXQgPSB2NGwyX2N0cmxfc19jdHJsX2ludDY0KGFkZGk5MDM2LT5waXhlbF9yYXRlLA0KPiA+ ICsJCQkJCSAgICAgbmV3X21vZGUtPnBpeGVsX3JhdGUpOw0KPiA+ICsJCWlmIChyZXQgPCAwKQ0K PiA+ICsJCQlyZXR1cm4gcmV0Ow0KPiA+ICsNCj4gPiArCQlyZXQgPSB2NGwyX2N0cmxfc19jdHJs KGFkZGk5MDM2LT5saW5rX2ZyZXEsDQo+ID4gKwkJCQkgICAgICAgbmV3X21vZGUtPmxpbmtfZnJl cV9pZHgpOw0KPiA+ICsJCWlmIChyZXQgPCAwKQ0KPiA+ICsJCQlyZXR1cm4gcmV0Ow0KPiA+ICsN Cj4gPiArCQlhZGRpOTAzNi0+Y3VycmVudF9tb2RlID0gbmV3X21vZGU7DQo+ID4gKwl9DQo+ID4g Kw0KPiA+ICsJZnJhbWVmbXQgPSBhZGRpOTAzNl9nZXRfcGFkX2Zvcm1hdChhZGRpOTAzNiwgY2Zn LCBmb3JtYXQtPnBhZCwNCj4gPiArCQkJCQkgICBmb3JtYXQtPndoaWNoKTsNCj4gPiArDQo+ID4g KwlpZiAoIWZyYW1lZm10KQ0KPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsNCj4gPiArCWZy YW1lZm10LT53aWR0aCA9IGNyb3AtPndpZHRoOw0KPiA+ICsJZnJhbWVmbXQtPmhlaWdodCA9IGNy b3AtPmhlaWdodDsNCj4gPiArCWZyYW1lZm10LT5jb2RlID0gTUVESUFfQlVTX0ZNVF9TQkdHUjEy XzFYMTI7DQo+ID4gKwlmcmFtZWZtdC0+ZmllbGQgPSBWNEwyX0ZJRUxEX05PTkU7DQo+ID4gKwlm cmFtZWZtdC0+Y29sb3JzcGFjZSA9IFY0TDJfQ09MT1JTUEFDRV9TUkdCOw0KPiA+ICsNCj4gPiAr CWZvcm1hdC0+Zm9ybWF0ID0gKmZyYW1lZm10Ow0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGFkZGk5MDM2X2VudGl0eV9pbml0X2NmZyhzdHJ1 Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwNCj4gPiArCQkJCSAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZf cGFkX2NvbmZpZyAqY2ZnKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgdjRsMl9zdWJkZXZfZm9ybWF0 IGZtdCA9IHsgMCB9Ow0KPiA+ICsNCj4gPiArCWlmIChjZmcpDQo+ID4gKwkJZm10LndoaWNoID0g VjRMMl9TVUJERVZfRk9STUFUX1RSWTsNCj4gPiArCWVsc2UNCj4gPiArCQlmbXQud2hpY2ggPSBW NEwyX1NVQkRFVl9GT1JNQVRfQUNUSVZFOw0KPiA+ICsNCj4gPiArCWZtdC5mb3JtYXQud2lkdGgg PSA2NDA7DQo+ID4gKwlmbXQuZm9ybWF0LmhlaWdodCA9IDk2MDsNCj4gPiArDQo+ID4gKwlhZGRp OTAzNl9zZXRfZm9ybWF0KHN1YmRldiwgY2ZnLCAmZm10KTsNCj4gPiArDQo+ID4gKwlyZXR1cm4g MDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBhZGRpOTAzNl9nZXRfc2VsZWN0aW9u KHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsDQo+ID4gKwkJCQkgIHN0cnVjdCB2NGwyX3N1YmRldl9w YWRfY29uZmlnICpjZmcsDQo+ID4gKwkJCQkgIHN0cnVjdCB2NGwyX3N1YmRldl9zZWxlY3Rpb24g KnNlbCkNCj4gPiArew0KPiA+ICsJc3RydWN0IGFkZGk5MDM2ICphZGRpOTAzNiA9IHRvX2FkZGk5 MDM2KHNkKTsNCj4gPiArDQo+ID4gKwlpZiAoc2VsLT50YXJnZXQgIT0gVjRMMl9TRUxfVEdUX0NS T1ApDQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKw0KPiA+ICsJc2VsLT5yID0gKmFkZGk5 MDM2X2dldF9wYWRfY3JvcChhZGRpOTAzNiwgY2ZnLCBzZWwtPnBhZCwgc2VsLT53aGljaCk7DQo+ ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgYWRk aTkwMzZfc19zdHJlYW0oc3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsIGludCBlbmFibGUpDQo+ ID4gK3sNCj4gPiArCXN0cnVjdCBhZGRpOTAzNiAqYWRkaTkwMzYgPSB0b19hZGRpOTAzNihzdWJk ZXYpOw0KPiA+ICsNCj4gPiArCWRldl9kYmcoYWRkaTkwMzYtPmRldiwgInN0cmVhbSAlZFxuIiwg ZW5hYmxlKTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh dGljIGNvbnN0IHN0cnVjdCB2NGwyX3N1YmRldl9jb3JlX29wcyBhZGRpOTAzNl9jb3JlX29wcyA9 IHsNCj4gPiArCS5zX3Bvd2VyCT0gYWRkaTkwMzZfc19wb3dlciwNCj4gPiArfTsNCj4gPiArDQo+ ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdjRsMl9zdWJkZXZfdmlkZW9fb3BzIGFkZGk5MDM2X3Zp ZGVvX29wcyA9IHsNCj4gPiArCS5zX3N0cmVhbQk9IGFkZGk5MDM2X3Nfc3RyZWFtLA0KPiA+ICt9 Ow0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX3N1YmRldl9wYWRfb3BzIGFk ZGk5MDM2X3N1YmRldl9wYWRfb3BzID0gew0KPiA+ICsJLmluaXRfY2ZnCQk9IGFkZGk5MDM2X2Vu dGl0eV9pbml0X2NmZywNCj4gPiArCS5lbnVtX21idXNfY29kZQkJPSBhZGRpOTAzNl9lbnVtX21i dXNfY29kZSwNCj4gPiArCS5lbnVtX2ZyYW1lX3NpemUJPSBhZGRpOTAzNl9lbnVtX2ZyYW1lX3Np emUsDQo+ID4gKwkuZ2V0X2ZtdAkJPSBhZGRpOTAzNl9nZXRfZm9ybWF0LA0KPiA+ICsJLnNldF9m bXQJCT0gYWRkaTkwMzZfc2V0X2Zvcm1hdCwNCj4gPiArCS5nZXRfc2VsZWN0aW9uCQk9IGFkZGk5 MDM2X2dldF9zZWxlY3Rpb24sDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IHY0bDJfc3ViZGV2X29wcyBhZGRpOTAzNl9zdWJkZXZfb3BzID0gew0KPiA+ICsJLmNvcmUJ PSAmYWRkaTkwMzZfY29yZV9vcHMsDQo+ID4gKwkudmlkZW8JPSAmYWRkaTkwMzZfdmlkZW9fb3Bz LA0KPiA+ICsJLnBhZAk9ICZhZGRpOTAzNl9zdWJkZXZfcGFkX29wcywNCj4gPiArfTsNCj4gPiAr DQo+ID4gK3N0YXRpYyBpbnQgYWRkaTkwMzZfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVu dCkNCj4gPiArew0KPiA+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gJmNsaWVudC0+ZGV2Ow0KPiA+ ICsJc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmVuZHBvaW50Ow0KPiA+ICsJc3RydWN0IGFkZGk5MDM2 ICphZGRpOTAzNjsNCj4gPiArCWludCByZXQ7DQo+ID4gKw0KPiA+ICsJZGV2X2RiZyhkZXYsICIl czogaTJjIGFkZHIgPSAweCV4XG4iLCBfX2Z1bmNfXywgY2xpZW50LT5hZGRyKTsNCj4gPiArDQo+ ID4gKwlhZGRpOTAzNiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZihzdHJ1Y3QgYWRkaTkwMzYp LCBHRlBfS0VSTkVMKTsNCj4gPiArCWlmICghYWRkaTkwMzYpDQo+ID4gKwkJcmV0dXJuIC1FTk9N RU07DQo+ID4gKw0KPiA+ICsJYWRkaTkwMzYtPmRldiA9IGRldjsNCj4gPiArDQo+ID4gKwlhZGRp OTAzNi0+cmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9pMmMoY2xpZW50LA0KPiA+ICsJCQkJCQkm YWRkaTkwMzZfaTJjX3JlZ21hcF9jb25maWcpOw0KPiA+ICsJaWYgKElTX0VSUihhZGRpOTAzNi0+ cmVnbWFwKSkgew0KPiA+ICsJCWRldl9lcnIoZGV2LCAiRXJyb3IgaW5pdGlhbGl6aW5nIGkyYyBy ZWdtYXBcbiIpOw0KPiA+ICsJCXJldHVybiBQVFJfRVJSKGFkZGk5MDM2LT5yZWdtYXApOw0KPiA+ ICsJfQ0KPiA+ICsNCj4gPiArCW11dGV4X2luaXQoJmFkZGk5MDM2LT5wb3dlcl9sb2NrKTsNCj4g PiArDQo+ID4gKwllbmRwb2ludCA9IGZ3bm9kZV9ncmFwaF9nZXRfbmV4dF9lbmRwb2ludChkZXZf Zndub2RlKGRldiksDQo+IE5VTEwpOw0KPiA+ICsJaWYgKCFlbmRwb2ludCkgew0KPiA+ICsJCWRl dl9lcnIoZGV2LCAiZW5kcG9pbnQgbm9kZSBub3QgZm91bmRcbiIpOw0KPiA+ICsJCXJldHVybiAt RUlOVkFMOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldCA9IHY0bDJfZndub2RlX2VuZHBvaW50 X3BhcnNlKGVuZHBvaW50LCAmYWRkaTkwMzYtPmVwKTsNCj4gPiArCWlmIChyZXQgPCAwKSB7DQo+ ID4gKwkJZGV2X2VycihkZXYsICJwYXJzaW5nIGVuZHBvaW50IG5vZGUgZmFpbGVkXG4iKTsNCj4g PiArCQlyZXR1cm4gcmV0Ow0KPiA+ICsJfQ0KPiA+ICsJZndub2RlX2hhbmRsZV9wdXQoZW5kcG9p bnQpOw0KPiA+ICsNCj4gPiArCWlmIChhZGRpOTAzNi0+ZXAuYnVzX3R5cGUgIT0gVjRMMl9NQlVT X0NTSTJfRFBIWSkgew0KPiA+ICsJCWRldl9lcnIoZGV2LCAiaW52YWxpZCBidXMgdHlwZSwgbXVz dCBiZSBNSVBJIENTSTJcbiIpOw0KPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsJfQ0KPiA+ ICsNCj4gPiArCWFkZGk5MDM2LT5yc3RfZ3BpbyA9IGdwaW9kX2dldF9vcHRpb25hbChkZXYsICJy ZXNldCIsDQo+IEdQSU9EX09VVF9ISUdIKTsNCj4gPiArCWlmIChJU19FUlIoYWRkaTkwMzYtPnJz dF9ncGlvKSkgew0KPiA+ICsJCWRldl9pbmZvKGRldiwgIlVuYWJsZSB0byBnZXQgXCJyZXNldFwi IGdwaW9cbiIpOw0KPiA+ICsJCXJldHVybiBQVFJfRVJSKGFkZGk5MDM2LT5yc3RfZ3Bpbyk7DQo+ ID4gKwl9DQo+ID4gKw0KPiA+ICsJdjRsMl9jdHJsX2hhbmRsZXJfaW5pdCgmYWRkaTkwMzYtPmN0 cmxzLCA0KTsNCj4gPiArDQo+ID4gKwlhZGRpOTAzNi0+cGl4ZWxfcmF0ZSA9IHY0bDJfY3RybF9u ZXdfc3RkKCZhZGRpOTAzNi0+Y3RybHMsDQo+ID4gKwkJCQkJCSAgJmFkZGk5MDM2X2N0cmxfb3Bz LA0KPiA+ICsJCQkJCQkgIFY0TDJfQ0lEX1BJWEVMX1JBVEUsDQo+ID4gKwkJCQkJCSAgMSwgSU5U X01BWCwgMSwgMSk7DQo+ID4gKwlhZGRpOTAzNi0+bGlua19mcmVxID0gdjRsMl9jdHJsX25ld19p bnRfbWVudSgmYWRkaTkwMzYtPmN0cmxzLA0KPiA+ICsJCQkJCQkgICAgICZhZGRpOTAzNl9jdHJs X29wcywNCj4gPiArCQkJCQkJICAgICBWNEwyX0NJRF9MSU5LX0ZSRVEsDQo+ID4gKwkJCQkJCSAg ICAgQVJSQVlfU0laRSgNCj4gPiArCQkJCQkJCSAgICAgbGlua19mcmVxX3RibCkgLSAxLA0KPiA+ ICsJCQkJCQkgICAgIDAsIGxpbmtfZnJlcV90YmwpOw0KPiA+ICsJaWYgKGFkZGk5MDM2LT5saW5r X2ZyZXEpDQo+ID4gKwkJYWRkaTkwMzYtPmxpbmtfZnJlcS0+ZmxhZ3MgfD0gVjRMMl9DVFJMX0ZM QUdfUkVBRF9PTkxZOw0KPiA+ICsNCj4gPiArCWFkZGk5MDM2LT5zZXRfY2hpcF9jb25maWcgPSB2 NGwyX2N0cmxfbmV3X2N1c3RvbSgmYWRkaTkwMzYtPmN0cmxzLA0KPiA+ICsJCQkJCQkmYWRkaTkw MzZfY3RybF9jaGlwX2NvbmZpZywNCj4gPiArCQkJCQkJTlVMTCk7DQo+ID4gKw0KPiA+ICsJYWRk aTkwMzYtPnJlZ19yZWFkID0gdjRsMl9jdHJsX25ld19jdXN0b20oJmFkZGk5MDM2LT5jdHJscywN Cj4gPiArCQkJCQkJICAmYWRkaTkwMzZfY3RybF9yZWdfcmVhZCwNCj4gPiArCQkJCQkJICBOVUxM KTsNCj4gPiArDQo+ID4gKwlhZGRpOTAzNi0+c2QuY3RybF9oYW5kbGVyID0gJmFkZGk5MDM2LT5j dHJsczsNCj4gPiArDQo+ID4gKwlpZiAoYWRkaTkwMzYtPmN0cmxzLmVycm9yKSB7DQo+ID4gKwkJ ZGV2X2VycihkZXYsICIlczogY29udHJvbCBpbml0aWFsaXphdGlvbiBlcnJvciAlZFxuIiwNCj4g PiArCQkJX19mdW5jX18sIGFkZGk5MDM2LT5jdHJscy5lcnJvcik7DQo+ID4gKwkJcmV0ID0gYWRk aTkwMzYtPmN0cmxzLmVycm9yOw0KPiA+ICsJCWdvdG8gZnJlZV9jdHJsOw0KPiA+ICsJfQ0KPiA+ ICsNCj4gPiArCXY0bDJfaTJjX3N1YmRldl9pbml0KCZhZGRpOTAzNi0+c2QsIGNsaWVudCwgJmFk ZGk5MDM2X3N1YmRldl9vcHMpOw0KPiA+ICsJYWRkaTkwMzYtPnNkLmZsYWdzIHw9IFY0TDJfU1VC REVWX0ZMX0hBU19ERVZOT0RFOw0KPiA+ICsJYWRkaTkwMzYtPnBhZC5mbGFncyA9IE1FRElBX1BB RF9GTF9TT1VSQ0U7DQo+ID4gKwlhZGRpOTAzNi0+c2QuZGV2ID0gJmNsaWVudC0+ZGV2Ow0KPiA+ ICsJYWRkaTkwMzYtPnNkLmVudGl0eS5mdW5jdGlvbiA9IE1FRElBX0VOVF9GX0NBTV9TRU5TT1I7 DQo+ID4gKw0KPiA+ICsJcmV0ID0gbWVkaWFfZW50aXR5X3BhZHNfaW5pdCgmYWRkaTkwMzYtPnNk LmVudGl0eSwgMSwgJmFkZGk5MDM2LT5wYWQpOw0KPiA+ICsNCj4gPiArCWlmIChyZXQgPCAwKSB7 DQo+ID4gKwkJZGV2X2VycihkZXYsICJjb3VsZCBub3QgcmVnaXN0ZXIgbWVkaWEgZW50aXR5XG4i KTsNCj4gPiArCQlnb3RvIGZyZWVfY3RybDsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXQgPSBh ZGRpOTAzNl9zX3Bvd2VyKCZhZGRpOTAzNi0+c2QsIHRydWUpOw0KPiA+ICsJaWYgKHJldCA8IDAp IHsNCj4gPiArCQlkZXZfZXJyKGRldiwgImNvdWxkIG5vdCBwb3dlciB1cCBhZGRpOTAzNlxuIik7 DQo+ID4gKwkJZ290byBmcmVlX2VudGl0eTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlkZXZfaW5m byhkZXYsICJhZGRpOTAzNiBkZXRlY3RlZCBhdCBhZGRyZXNzIDB4JTAyeFxuIiwgY2xpZW50LT5h ZGRyKTsNCj4gPiArDQo+ID4gKwlyZXQgPSBhZGRpOTAzNl9zX3Bvd2VyKCZhZGRpOTAzNi0+c2Qs IGZhbHNlKTsNCj4gPiArCWlmIChyZXQgPCAwKSB7DQo+ID4gKwkJZGV2X2VycihkZXYsICJjb3Vs ZCBub3QgcG93ZXIgZG93biBhZGRpOTAzNlxuIik7DQo+ID4gKwkJZ290byBmcmVlX2VudGl0eTsN Cj4gPiArCX0NCj4gPiArDQo+ID4gKwlhZGRpOTAzNl9lbnRpdHlfaW5pdF9jZmcoJmFkZGk5MDM2 LT5zZCwgTlVMTCk7DQo+ID4gKw0KPiA+ICsJcmV0ID0gdjRsMl9hc3luY19yZWdpc3Rlcl9zdWJk ZXYoJmFkZGk5MDM2LT5zZCk7DQo+ID4gKwlpZiAocmV0IDwgMCkNCj4gPiArCQlkZXZfZXJyKGRl diwgImNvdWxkIG5vdCByZWdpc3RlciB2NGwyIGRldmljZVxuIik7DQo+ID4gKw0KPiA+ICsJcmV0 dXJuIDA7DQo+ID4gKw0KPiA+ICtmcmVlX2VudGl0eToNCj4gPiArCW1lZGlhX2VudGl0eV9jbGVh bnVwKCZhZGRpOTAzNi0+c2QuZW50aXR5KTsNCj4gPiArZnJlZV9jdHJsOg0KPiA+ICsJdjRsMl9j dHJsX2hhbmRsZXJfZnJlZSgmYWRkaTkwMzYtPmN0cmxzKTsNCj4gPiArCW11dGV4X2Rlc3Ryb3ko JmFkZGk5MDM2LT5wb3dlcl9sb2NrKTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gcmV0Ow0KPiA+ICt9 DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGFkZGk5MDM2X3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVu dCAqY2xpZW50KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkID0gaTJjX2dl dF9jbGllbnRkYXRhKGNsaWVudCk7DQo+ID4gKwlzdHJ1Y3QgYWRkaTkwMzYgKmFkZGk5MDM2ID0g dG9fYWRkaTkwMzYoc2QpOw0KPiA+ICsNCj4gPiArCXY0bDJfYXN5bmNfdW5yZWdpc3Rlcl9zdWJk ZXYoJmFkZGk5MDM2LT5zZCk7DQo+ID4gKwltZWRpYV9lbnRpdHlfY2xlYW51cCgmYWRkaTkwMzYt PnNkLmVudGl0eSk7DQo+ID4gKwlpZiAoYWRkaTkwMzYtPnJzdF9ncGlvKQ0KPiA+ICsJCWdwaW9k X3B1dChhZGRpOTAzNi0+cnN0X2dwaW8pOw0KPiA+ICsJdjRsMl9jdHJsX2hhbmRsZXJfZnJlZSgm YWRkaTkwMzYtPmN0cmxzKTsNCj4gPiArCW11dGV4X2Rlc3Ryb3koJmFkZGk5MDM2LT5wb3dlcl9s b2NrKTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIGFkZGk5MDM2X2lkW10gPSB7DQo+ID4gKwl7ICJh ZGRpOTAzNiIsIDAgfSwNCj4gPiArCXt9DQo+ID4gK307DQo+ID4gK01PRFVMRV9ERVZJQ0VfVEFC TEUoaTJjLCBhZGRpOTAzNl9pZCk7DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9m X2RldmljZV9pZCBhZGRpOTAzNl9vZl9tYXRjaFtdID0gew0KPiA+ICsJeyAuY29tcGF0aWJsZSA9 ICJhZGksYWRkaTkwMzYiIH0sDQo+ID4gKwl7IC8qIHNlbnRpbmVsICovIH0NCj4gPiArfTsNCj4g PiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYWRkaTkwMzZfb2ZfbWF0Y2gpOw0KPiA+ICsNCj4g PiArc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGFkZGk5MDM2X2kyY19kcml2ZXIgPSB7DQo+ID4g KwkuZHJpdmVyCQkJPSB7DQo+ID4gKwkJLm9mX21hdGNoX3RhYmxlID0gYWRkaTkwMzZfb2ZfbWF0 Y2gsDQo+ID4gKwkJLm5hbWUJCT0gImFkZGk5MDM2IiwNCj4gPiArCX0sDQo+ID4gKwkucHJvYmVf bmV3CQk9IGFkZGk5MDM2X3Byb2JlLA0KPiA+ICsJLnJlbW92ZQkJCT0gYWRkaTkwMzZfcmVtb3Zl LA0KPiA+ICsJLmlkX3RhYmxlCQk9IGFkZGk5MDM2X2lkLA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAr bW9kdWxlX2kyY19kcml2ZXIoYWRkaTkwMzZfaTJjX2RyaXZlcik7DQo+ID4gKw0KPiA+ICtNT0RV TEVfREVTQ1JJUFRJT04oIkFuYWxvZyBEZXZpY2VzIEFEREk5MDM2IENhbWVyYSBEcml2ZXIiKTsN Cj4gPiArTU9EVUxFX0FVVEhPUigiQm9nZGFuIFRvZ29yZWFuIik7DQo+ID4gK01PRFVMRV9MSUNF TlNFKCJHUEwgdjIiKTsNCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3Y0bDIt Y29udHJvbHMuaCBiL2luY2x1ZGUvdWFwaS9saW51eC92NGwyLQ0KPiBjb250cm9scy5oDQo+ID4g aW5kZXggNjIyNzE0MThjMWJlLi5mODhiNTY0NzliYzEgMTAwNjQ0DQo+ID4gLS0tIGEvaW5jbHVk ZS91YXBpL2xpbnV4L3Y0bDItY29udHJvbHMuaA0KPiA+ICsrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC92NGwyLWNvbnRyb2xzLmgNCj4gPiBAQCAtMTk4LDYgKzE5OCwxMiBAQCBlbnVtIHY0bDJfY29s b3JmeCB7DQo+ID4gICAqLw0KPiA+ICAjZGVmaW5lIFY0TDJfQ0lEX1VTRVJfQVRNRUxfSVNDX0JB U0UJCShWNEwyX0NJRF9VU0VSX0JBU0UgKw0KPiAweDEwYzApDQo+ID4NCj4gPiArLyoNCj4gPiAr ICogVGhlIGJhc2UgZm9yIHRoZSBhZGRpOTAzNiBkcml2ZXIgY29udHJvbHMuDQo+ID4gKyAqIFdl IHJlc2VydmUgMTYgY29udHJvbHMgZm9yIHRoaXMgZHJpdmVyLg0KPiA+ICsgKi8NCj4gPiArI2Rl ZmluZSBWNEwyX0NJRF9VU0VSX0FEREk5MDM2X0JBU0UJCShWNEwyX0NJRF9VU0VSX0JBU0UgKw0K PiAweDEwZTApDQo+ID4gKw0KPiA+ICAvKiBNUEVHLWNsYXNzIGNvbnRyb2wgSURzICovDQo+ID4g IC8qIFRoZSBNUEVHIGNvbnRyb2xzIGFyZSBhcHBsaWNhYmxlIHRvIGFsbCBjb2RlYyBjb250cm9s cw0KPiA+ICAgKiBhbmQgdGhlICdNUEVHJyBwYXJ0IG9mIHRoZSBkZWZpbmUgaXMgaGlzdG9yaWNh bCAqLw0KPiA+IC0tDQo+ID4gMi4yOC4wDQo+ID4NCj4gDQo+IC0tDQo+IFJlZ2FyZHMsDQo+IA0K PiBMYXVyZW50IFBpbmNoYXJ0DQpSZWdhcmRzLA0KDQpCb2dkYW4NCg==