Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp1340392ybv; Thu, 6 Feb 2020 02:20:30 -0800 (PST) X-Google-Smtp-Source: APXvYqyIy5Bqu/ZcGqQfkFl9FyiNj1jIjh+uRB35CaY1SkAWX6TM3KDUUjC1U1RyEKjB9TtIYBYI X-Received: by 2002:a9d:7f81:: with SMTP id t1mr27939918otp.95.1580984430319; Thu, 06 Feb 2020 02:20:30 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1580984430; cv=pass; d=google.com; s=arc-20160816; b=oBlIR2+XNamEd4gmCvASYNQ2cDMILmkozRT4HjONhFDrd72rfW4EUl3Y3gBf0xSLAh f3Z0S+YMk4E3D3kHmoPbYrZbszt2NSJjahmFYQG9eDVADN9cfHpfSvn4KsnCV1htzx3M jPzi2sH8J+DfJa5r6irdwu2vpBFjTUqqA1svAZaCYL59REWMadgCzPFAKvr+cUxmKTUK xIt+OrvuQ/qU9yLN52DmbDBeOYaRNMjY8ftp9TIozOfma6P9Kgux84Ar3d7B57Y3Gv8g a65+IH+R6n1hJtfziWauYx5s2pCZFcgPBEsOI6KHX0X7T8BefNykVlnvVvtd+p+QGBPd Fung== 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-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=UJMEN8zRbHtCUroIN2FXiZl9sybLwjPelM3laXzokPE=; b=c+W0/mRfvv1WOJ8NdPRY+ofjStHmCCcls6KvrMUyRI/6L04EF1w56WdgEjia0OFjeO nHMlHsGRzKoyYIRvjT0+IuXzFiePFp0xPSRCXB5a7whCwSiSlrznaZFOnZFJY8BYmt7M 7UeatNW/E8G1mSnIb1NFPX5g95H4CBOVSqxOMbrGpr9SDTiFeA7UbcnXJVBLwx95yJhw wqU6p4mXqgB2CFbYD0sHM3u8jXDv5hiEoGbpAQx6i/xwuzZbuGWT8JAVTaTZSvEjeLr0 re31l+sS85/1WX06XeSXaL2JYXBW5+zDK3/B88TkagHM4k+wBSDpQVQX0XFoeXu862YP Y2aw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@analog.onmicrosoft.com header.s=selector2-analog-onmicrosoft-com header.b=osHVU1i4; arc=pass (i=1 spf=pass spfdomain=analog.com dkim=pass dkdomain=analog.com dmarc=pass fromdomain=analog.com); spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v14si1476874oto.127.2020.02.06.02.20.17; Thu, 06 Feb 2020 02:20:30 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@analog.onmicrosoft.com header.s=selector2-analog-onmicrosoft-com header.b=osHVU1i4; arc=pass (i=1 spf=pass spfdomain=analog.com dkim=pass dkdomain=analog.com dmarc=pass fromdomain=analog.com); spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728446AbgBFKTS (ORCPT + 99 others); Thu, 6 Feb 2020 05:19:18 -0500 Received: from mx0b-00128a01.pphosted.com ([148.163.139.77]:14444 "EHLO mx0b-00128a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728289AbgBFKTR (ORCPT ); Thu, 6 Feb 2020 05:19:17 -0500 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 016AF3SD003450; Thu, 6 Feb 2020 05:19:13 -0500 Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-00128a01.pphosted.com with ESMTP id 2xyhmk4cm2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 06 Feb 2020 05:19:13 -0500 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 016AJD3c006753; Thu, 6 Feb 2020 05:19:13 -0500 Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2107.outbound.protection.outlook.com [104.47.55.107]) by mx0b-00128a01.pphosted.com with ESMTP id 2xyhmk4cm0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 06 Feb 2020 05:19:12 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gerABsPvBy8Nhrc3kv9HKC6H4SlFeJPPw3rlh1y55q4WZ5KqB7tCblUTMdM78y13WSUq0jMvl9+F3PzU62uevUp4Qco6hVss1CB0PbEPF5HooH0rf5B8/Zph0zBjyvbIVoA6bJUpfLftTpmVr3CtcB1w+/qX7GJWlAqBpCccS+soCwLD5l02c6waWS1uFIicN56ow+TRXrFqbYqKJoapCiWde+mJ5TuKsDONY0KqD+Iw0Ejm6WsP0pOuPUrTbnAbSpESOcBIbdciwXcy52NWAcxEo9++j5Roriumd0kYIKnrXW7Jw9y33SXHS8NaGrrfQp/MLTBmyQx9AojEvfgJAg== 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=UJMEN8zRbHtCUroIN2FXiZl9sybLwjPelM3laXzokPE=; b=I3fffitrTyAQdPyO0l3D1nXZL89vSkBehL+h5wvGga6SE4p6qL4VX8eq4DGTHyaye6n+2PBtQeMvi7cj0DrJiSbJoQDnWniMaduEE6NYLByZ9r3gEZTg0TiKqxD3WVlbFZ9Ftiyol5VSXC9KrD9zg5hW0u7424MFlXMXMN0EXxgzTubtuoR1eYWcvKJ6bxWNWexV59C0lzJ8MoXPMm3biYorv4+5r1IRKnFXx4jBV+0cc1apYrCo11YBAYV5Sl2c3bXPIhJoZsRGx2oppiJRM5uRxe0Iku2F08b9qXlDJKdsrj1qF/bxE2nvcvnSauU5a6C4yM3TVJwS1fiopCqsVA== 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=UJMEN8zRbHtCUroIN2FXiZl9sybLwjPelM3laXzokPE=; b=osHVU1i47wBVqNCRGK/t8D6s79IHeWQ4gL2SIdEMAMeAcz7k7LrupGGgnvPIl49ui0dzrcVv1bD+ODUfGVnlFHl1IbgBtfZG/8hG7GcBJJYr0YRK1jMBHLmTNq9LczrQBqM+7MI3nLxlLJfQl1qkjYsYtTv8S/qCktVR0WYqmaw= Received: from BN6PR03MB3347.namprd03.prod.outlook.com (10.174.94.163) by BN6PR03MB3140.namprd03.prod.outlook.com (10.174.235.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.21; Thu, 6 Feb 2020 10:19:11 +0000 Received: from BN6PR03MB3347.namprd03.prod.outlook.com ([fe80::80b6:bfbd:9b6d:710a]) by BN6PR03MB3347.namprd03.prod.outlook.com ([fe80::80b6:bfbd:9b6d:710a%4]) with mapi id 15.20.2707.023; Thu, 6 Feb 2020 10:19:10 +0000 From: "Sa, Nuno" To: "jic23@kernel.org" CC: "Jonathan.Cameron@Huawei.com" , "devel@driverdev.osuosl.org" , "linux-kernel@vger.kernel.org" , "linux-iio@vger.kernel.org" , "Ardelean, Alexandru" , "Bogdan, Dragos" Subject: Re: [PATCH 2/4] iio: imu: adis: Refactor adis_initial_startup Thread-Topic: [PATCH 2/4] iio: imu: adis: Refactor adis_initial_startup Thread-Index: AQHVz5zhi5MQxf7Rb0ibWVMdXw5B+KgGpUSAgAKk8ACAACqBAIADKw4AgAAqyACAAB10gIABHPqAgAAJxYA= Date: Thu, 6 Feb 2020 10:19:09 +0000 Message-ID: References: <20200120142051.28533-1-alexandru.ardelean@analog.com> <20200120142051.28533-2-alexandru.ardelean@analog.com> <20200201170839.4ab98d8e@archlinux> <20200203120338.000044c1@Huawei.com> <182c1f94c7311580aea1b4cabe0ab2ae26bed3a6.camel@analog.com> <20200205145938.00006a35@Huawei.com> <20200206094501.68f47948@archlinux> In-Reply-To: <20200206094501.68f47948@archlinux> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [137.71.226.54] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 78753f84-227a-46c0-997e-08d7aaee01f1 x-ms-traffictypediagnostic: BN6PR03MB3140: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0305463112 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(136003)(396003)(346002)(366004)(39860400002)(189003)(199004)(66476007)(81156014)(316002)(81166006)(6486002)(8676002)(478600001)(54906003)(66556008)(30864003)(2616005)(5660300002)(66446008)(66946007)(64756008)(2906002)(107886003)(76116006)(36756003)(6512007)(6916009)(6506007)(4326008)(26005)(86362001)(8936002)(186003)(71200400001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR03MB3140;H:BN6PR03MB3347.namprd03.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: analog.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: r7MfH2L1duF8PupfsU2gXCgkB63y2H01qB/7Hi83IuOnvrJ5jnwX7YR+nUPxsXeGfI38z9wc6Xd/rXVxYY3JdSTtd2oOYwiX7ftYBMWpa6DkM9iQm7CIqtLp4VVaqC8pBtrXw9iW2N9bOrw7nfHqjD4GsNWITCdvEqV/taJgh8MD3j+Ck4ac4lQkq2tIrbFC6Qa3kWgzMQ8X3INGhkphhU3YTgyYjSVdpGPiF5uhAOkxOPy/cD9KSlhldlo1nMjdCJxRvPXvsz7S0Q80XfG5KdXWoE2mXeSwkwi5xA8PAh0K4qA+8BCDkzfw0zJ7R69choEumBYC+KX7KU/y/cEHyV0dJlC1JNlSr1vMJo9PY0VfVswHxlQ7ioQVxq9UzYp08aOvoiroUjBJU0cfRkM1CESXA3jKNZnPW+hBSY1jqXC2lFr1M4ZrcGb4Dv029pUr x-ms-exchange-antispam-messagedata: 92vW37rd4g0ClNmwf1uH/XaY+5fs8PSbzXk0UArn/7yABSMza1Xy3PG7jybxysp2/II6MvzCFNCcI5y2mrUJrrn+fsfT9oZhxdpITybQE4lBvaSSltZskaXAXT8T1qeJPolbem6KE2pba5dInNy9SA== Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: 78753f84-227a-46c0-997e-08d7aaee01f1 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2020 10:19:10.0257 (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: 5cWtXjfLevJSGrnW1auv+R99SqmbYcntoWnSJxxMq0Pw3bZmmX1i4B8eVc4V/fEztj8xdwoJj9sEhwYWCflvSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR03MB3140 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.572 definitions=2020-02-06_01:2020-02-06,2020-02-05 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 adultscore=0 mlxscore=0 bulkscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2002060080 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gVGh1LCAyMDIwLTAyLTA2IGF0IDA5OjQ1ICswMDAwLCBKb25hdGhhbiBDYW1lcm9uIHdyb3Rl Og0KPiBPbiBXZWQsIDUgRmViIDIwMjAgMTY6NDQ6MTMgKzAwMDANCj4gIlNhLCBOdW5vIiA8TnVu by5TYUBhbmFsb2cuY29tPiB3cm90ZToNCj4gDQo+ID4gT24gV2VkLCAyMDIwLTAyLTA1IGF0IDE0 OjU5ICswMDAwLCBKb25hdGhhbiBDYW1lcm9uIHdyb3RlOg0KPiA+ID4gT24gV2VkLCA1IEZlYiAy MDIwIDEyOjI1OjQwICswMDAwDQo+ID4gPiAiU2EsIE51bm8iIDxOdW5vLlNhQGFuYWxvZy5jb20+ IHdyb3RlOg0KPiA+ID4gICANCj4gPiA+ID4gT24gTW9uLCAyMDIwLTAyLTAzIGF0IDEyOjAzICsw MDAwLCBKb25hdGhhbiBDYW1lcm9uIHdyb3RlOiAgDQo+ID4gPiA+ID4gT24gTW9uLCAzIEZlYiAy MDIwIDEwOjMxOjMwICswMTAwDQo+ID4gPiA+ID4gTnVubyBTw6EgPG5vbmFtZS5udW5vQGdtYWls LmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4gICAgIA0KPiA+ID4gPiA+ID4gSGkgSm9uYXRoYW4sDQo+ ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gT24gU2F0LCAyMDIwLTAyLTAx IGF0IDE3OjA4ICswMDAwLCBKb25hdGhhbiBDYW1lcm9uDQo+ID4gPiA+ID4gPiB3cm90ZTogICAg DQo+ID4gPiA+ID4gPiA+IE9uIE1vbiwgMjAgSmFuIDIwMjAgMTY6MjA6NDkgKzAyMDANCj4gPiA+ ID4gPiA+ID4gQWxleGFuZHJ1IEFyZGVsZWFuIDxhbGV4YW5kcnUuYXJkZWxlYW5AYW5hbG9nLmNv bT4gd3JvdGU6DQo+ID4gPiA+ID4gPiA+ICAgICAgIA0KPiA+ID4gPiA+ID4gPiA+IEZyb206IE51 bm8gU8OhIDxudW5vLnNhQGFuYWxvZy5jb20+DQo+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4g PiA+ID4gQWxsIHRoZSBBRElTIGRldmljZXMgcGVyZm9ybSwgYXQgdGhlIGJlZ2lubmluZywgYSBz ZWxmDQo+ID4gPiA+ID4gPiA+ID4gdGVzdA0KPiA+ID4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4g PiA+ID4gbWFrZQ0KPiA+ID4gPiA+ID4gPiA+IHN1cmUNCj4gPiA+ID4gPiA+ID4gPiB0aGUgZGV2 aWNlIGlzIGluIGEgc2FuZSBzdGF0ZS4gRnVydGhlcm1vcmUsIHNvbWUNCj4gPiA+ID4gPiA+ID4g PiBkcml2ZXJzDQo+ID4gPiA+ID4gPiA+ID4gYWxzbw0KPiA+ID4gPiA+ID4gPiA+IGRvIGENCj4g PiA+ID4gPiA+ID4gPiBjYWxsDQo+ID4gPiA+ID4gPiA+ID4gdG8gYGFkaXNfcmVzZXQoKWAgYmVm b3JlIHRoZSB0ZXN0IHdoaWNoIGlzIGFsc28gYSBnb29kDQo+ID4gPiA+ID4gPiA+ID4gcHJhY3Rp Y2UuDQo+ID4gPiA+ID4gPiA+ID4gVGhpcw0KPiA+ID4gPiA+ID4gPiA+IHBhdGNoIHVuaWZpZXMg YWxsIHRob3NlIG9wZXJhdGlvbiBzbyB0aGF0LCB0aGVyZSdzIG5vDQo+ID4gPiA+ID4gPiA+ID4g bmVlZA0KPiA+ID4gPiA+ID4gPiA+IGZvcg0KPiA+ID4gPiA+ID4gPiA+IGNvZGUNCj4gPiA+ID4g PiA+ID4gPiBkdXBsaWNhdGlvbi4gRnVydGhlcm1vcmUsIHRoZSByc3QgcGluIGlzIGFsc28gY2hl Y2tlZA0KPiA+ID4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4gPiA+ID4gbWFrZQ0KPiA+ID4gPiA+ ID4gPiA+IHN1cmUNCj4gPiA+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gPiBkZXZpY2Ug aXMgbm90IGluIEhXIHJlc2V0LiBPbiB0b3Agb2YgdGhpcywgc29tZSBkcml2ZXJzDQo+ID4gPiA+ ID4gPiA+ID4gYWxzbw0KPiA+ID4gPiA+ID4gPiA+IHJlYWQNCj4gPiA+ID4gPiA+ID4gPiB0aGUN Cj4gPiA+ID4gPiA+ID4gPiBkZXZpY2UgcHJvZHVjdCBpZCBhbmQgY29tcGFyZSBpdCB3aXRoIHRo ZSBkZXZpY2UgYmVpbmcNCj4gPiA+ID4gPiA+ID4gPiBwcm9iZWQNCj4gPiA+ID4gPiA+ID4gPiB0 bw0KPiA+ID4gPiA+ID4gPiA+IG1ha2UNCj4gPiA+ID4gPiA+ID4gPiBzdXJlIHRoZSBjb3JyZWN0 IGRldmljZSBpcyBiZWluZyBoYW5kbGVkLiBUaGlzIGNhbiBhbHNvDQo+ID4gPiA+ID4gPiA+ID4g YmUNCj4gPiA+ID4gPiA+ID4gPiBwYXNzZWQNCj4gPiA+ID4gPiA+ID4gPiB0byB0aGUNCj4gPiA+ ID4gPiA+ID4gPiBsaWJyYXJ5IGJ5IGludHJvZHVjaW5nIGEgdmFyaWFibGUgaG9sZGluZyB0aGUg UFJPRF9JRA0KPiA+ID4gPiA+ID4gPiA+IHJlZ2lzdGVyDQo+ID4gPiA+ID4gPiA+ID4gb2YNCj4g PiA+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gPiBkZXZpY2UuDQo+ID4gPiA+ID4gPiA+ ID4gDQo+ID4gPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogTnVubyBTw6EgPG51bm8uc2FAYW5h bG9nLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcnUgQXJkZWxl YW4gPCAgICANCj4gPiA+ID4gPiA+ID4gPiBhbGV4YW5kcnUuYXJkZWxlYW5AYW5hbG9nLmNvbT4g ICAgDQo+ID4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ID4gIGRyaXZlcnMvaWlvL2lt dS9LY29uZmlnICAgICAgfCAgMSArDQo+ID4gPiA+ID4gPiA+ID4gIGRyaXZlcnMvaWlvL2ltdS9h ZGlzLmMgICAgICAgfCA2Mw0KPiA+ID4gPiA+ID4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysr KysrDQo+ID4gPiA+ID4gPiA+ID4gLS0tLQ0KPiA+ID4gPiA+ID4gPiA+IC0tLS0tLQ0KPiA+ID4g PiA+ID4gPiA+ICBpbmNsdWRlL2xpbnV4L2lpby9pbXUvYWRpcy5oIHwgMTUgKysrKysrKystDQo+ ID4gPiA+ID4gPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgMTggZGVs ZXRpb25zKC0pDQo+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvaWlvL2ltdS9LY29uZmlnDQo+ID4gPiA+ID4gPiA+ID4gYi9kcml2ZXJzL2lpby9p bXUvS2NvbmZpZw0KPiA+ID4gPiA+ID4gPiA+IGluZGV4IDYwYmIxMDI5ZTc1OS4uNjMwMzZjZjQ3 M2M3IDEwMDY0NA0KPiA+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvaWlvL2ltdS9LY29uZmln DQo+ID4gPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9paW8vaW11L0tjb25maWcNCj4gPiA+ID4g PiA+ID4gPiBAQCAtODUsNiArODUsNyBAQCBlbmRtZW51DQo+ID4gPiA+ID4gPiA+ID4gIA0KPiA+ ID4gPiA+ID4gPiA+ICBjb25maWcgSUlPX0FESVNfTElCDQo+ID4gPiA+ID4gPiA+ID4gIAl0cmlz dGF0ZQ0KPiA+ID4gPiA+ID4gPiA+ICsJZGVwZW5kcyBvbiBHUElPTElCDQo+ID4gPiA+ID4gPiA+ ID4gIAloZWxwDQo+ID4gPiA+ID4gPiA+ID4gIAkgIEEgc2V0IG9mIElPIGhlbHBlciBmdW5jdGlv bnMgZm9yIHRoZSBBbmFsb2cNCj4gPiA+ID4gPiA+ID4gPiBEZXZpY2VzDQo+ID4gPiA+ID4gPiA+ ID4gQURJUyoNCj4gPiA+ID4gPiA+ID4gPiBkZXZpY2UgZmFtaWx5Lg0KPiA+ID4gPiA+ID4gPiA+ ICANCj4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vaW11L2FkaXMuYw0K PiA+ID4gPiA+ID4gPiA+IGIvZHJpdmVycy9paW8vaW11L2FkaXMuYw0KPiA+ID4gPiA+ID4gPiA+ IGluZGV4IGQwMmIxOTExYjBmMi4uMWVjYTUyNzEzODBlIDEwMDY0NA0KPiA+ID4gPiA+ID4gPiA+ IC0tLSBhL2RyaXZlcnMvaWlvL2ltdS9hZGlzLmMNCj4gPiA+ID4gPiA+ID4gPiArKysgYi9kcml2 ZXJzL2lpby9pbXUvYWRpcy5jDQo+ID4gPiA+ID4gPiA+ID4gQEAgLTcsNiArNyw3IEBADQo+ID4g PiA+ID4gPiA+ID4gICAqLw0KPiA+ID4gPiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ID4gPiAgI2lu Y2x1ZGUgPGxpbnV4L2RlbGF5Lmg+DQo+ID4gPiA+ID4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9n cGlvL2NvbnN1bWVyLmg+DQo+ID4gPiA+ID4gPiA+ID4gICNpbmNsdWRlIDxsaW51eC9tdXRleC5o Pg0KPiA+ID4gPiA+ID4gPiA+ICAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+DQo+ID4gPiA+ID4g PiA+ID4gICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4NCj4gPiA+ID4gPiA+ID4gPiBAQCAtMzY1 LDM2ICszNjYsNjQgQEAgc3RhdGljIGludCBhZGlzX3NlbGZfdGVzdChzdHJ1Y3QNCj4gPiA+ID4g PiA+ID4gPiBhZGlzDQo+ID4gPiA+ID4gPiA+ID4gKmFkaXMpDQo+ID4gPiA+ID4gPiA+ID4gIH0N Cj4gPiA+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiA+ID4gIC8qKg0KPiA+ID4gPiA+ID4gPiA+ IC0gKiBhZGlzX2luaXRhbF9zdGFydHVwKCkgLSBQZXJmb3JtcyBkZXZpY2Ugc2VsZi10ZXN0DQo+ ID4gPiA+ID4gPiA+ID4gKyAqIF9fYWRpc19pbml0aWFsX3N0YXJ0dXAoKSAtIERldmljZSBpbml0 aWFsIHNldHVwDQo+ID4gPiA+ID4gPiA+ID4gICAqIEBhZGlzOiBUaGUgYWRpcyBkZXZpY2UNCj4g PiA+ID4gPiA+ID4gPiAgICoNCj4gPiA+ID4gPiA+ID4gPiArICogVGhpcyBmdW5jdGlvbnMgbWFr ZXMgc3VyZSB0aGUgZGV2aWNlIGlzIG5vdCBpbg0KPiA+ID4gPiA+ID4gPiA+IHJlc2V0LA0KPiA+ ID4gPiA+ID4gPiA+IHZpYQ0KPiA+ID4gPiA+ID4gPiA+IHJzdA0KPiA+ID4gPiA+ID4gPiA+IHBp bi4NCj4gPiA+ID4gPiA+ID4gPiArICogRnVydGhlcm1vcmUgaXQgcGVyZm9ybXMgYSBTVyByZXNl dCAob25seSBpbiB0aGUNCj4gPiA+ID4gPiA+ID4gPiBjYXNlIHdlDQo+ID4gPiA+ID4gPiA+ID4g YXJlDQo+ID4gPiA+ID4gPiA+ID4gbm90DQo+ID4gPiA+ID4gPiA+ID4gY29taW5nIGZyb20NCj4g PiA+ID4gPiA+ID4gPiArICogcmVzZXQgYWxyZWFkeSkgYW5kIGEgc2VsZiB0ZXN0LiBJdCBhbHNv IGNvbXBhcmVzDQo+ID4gPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+ID4gcHJvZHVjdCBp ZA0KPiA+ID4gPiA+ID4gPiA+IHdpdGggdGhlDQo+ID4gPiA+ID4gPiA+ID4gKyAqIGRldmljZSBp ZCBpZiB0aGUgcHJvZF9pZF9yZWcgdmFyaWFibGUgaXMgc2V0Lg0KPiA+ID4gPiA+ID4gPiA+ICsg Kg0KPiA+ID4gPiA+ID4gPiA+ICAgKiBSZXR1cm5zIDAgaWYgdGhlIGRldmljZSBpcyBvcGVyYXRp b25hbCwgYSBuZWdhdGl2ZQ0KPiA+ID4gPiA+ID4gPiA+IGVycm9yDQo+ID4gPiA+ID4gPiA+ID4g Y29kZQ0KPiA+ID4gPiA+ID4gPiA+IG90aGVyd2lzZS4NCj4gPiA+ID4gPiA+ID4gPiAgICoNCj4g PiA+ID4gPiA+ID4gPiAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGVhcmx5IG9u IGluIHRoZQ0KPiA+ID4gPiA+ID4gPiA+IGRldmljZQ0KPiA+ID4gPiA+ID4gPiA+IGluaXRpYWxp emF0aW9uIHNlcXVlbmNlDQo+ID4gPiA+ID4gPiA+ID4gICAqIHRvIGVuc3VyZSB0aGF0IHRoZSBk ZXZpY2UgaXMgaW4gYSBzYW5lIGFuZCBrbm93bg0KPiA+ID4gPiA+ID4gPiA+IHN0YXRlDQo+ID4g PiA+ID4gPiA+ID4gYW5kDQo+ID4gPiA+ID4gPiA+ID4gdGhhdA0KPiA+ID4gPiA+ID4gPiA+IGl0 IGlzIHVzYWJsZS4NCj4gPiA+ID4gPiA+ID4gPiAgICovDQo+ID4gPiA+ID4gPiA+ID4gLWludCBh ZGlzX2luaXRpYWxfc3RhcnR1cChzdHJ1Y3QgYWRpcyAqYWRpcykNCj4gPiA+ID4gPiA+ID4gPiAr aW50IF9fYWRpc19pbml0aWFsX3N0YXJ0dXAoc3RydWN0IGFkaXMgKmFkaXMpDQo+ID4gPiA+ID4g PiA+ID4gIHsNCj4gPiA+ID4gPiA+ID4gPiAgCWludCByZXQ7DQo+ID4gPiA+ID4gPiA+ID4gLQ0K PiA+ID4gPiA+ID4gPiA+IC0JbXV0ZXhfbG9jaygmYWRpcy0+c3RhdGVfbG9jayk7DQo+ID4gPiA+ ID4gPiA+ID4gKwlzdHJ1Y3QgZ3Bpb19kZXNjICpncGlvOw0KPiA+ID4gPiA+ID4gPiA+ICsJY29u c3Qgc3RydWN0IGFkaXNfdGltZW91dCAqdGltZW91dHMgPSBhZGlzLQ0KPiA+ID4gPiA+ID4gPiA+ ID5kYXRhLSAgICANCj4gPiA+ID4gPiA+ID4gPiA+IHRpbWVvdXRzOyAgICANCj4gPiA+ID4gPiA+ ID4gPiArCWNvbnN0IGNoYXIgKmlpb19uYW1lID0gc3BpX2dldF9kZXZpY2VfaWQoYWRpcy0NCj4g PiA+ID4gPiA+ID4gPiA+c3BpKS0gICAgDQo+ID4gPiA+ID4gPiA+ID4gPiBuYW1lOyAgICANCj4g PiA+ID4gPiA+ID4gPiArCXUxNiBwcm9kX2lkLCBkZXZfaWQ7DQo+ID4gPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gPiA+ICsJLyogY2hlY2sgaWYgdGhlIGRldmljZSBoYXMgcnN0IHBpbiBsb3cg Ki8NCj4gPiA+ID4gPiA+ID4gPiArCWdwaW8gPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbCgmYWRp cy0+c3BpLT5kZXYsDQo+ID4gPiA+ID4gPiA+ID4gInJlc2V0IiwNCj4gPiA+ID4gPiA+ID4gPiBH UElPRF9BU0lTKTsNCj4gPiA+ID4gPiA+ID4gPiArCWlmIChJU19FUlIoZ3BpbykpIHsNCj4gPiA+ ID4gPiA+ID4gPiArCQlyZXR1cm4gUFRSX0VSUihncGlvKTsgICAgICANCj4gPiA+ID4gPiA+ID4g DQo+ID4gPiA+ID4gPiA+IEdpdmVuIHlvdSBhcmUgcmV0dXJuaW5nIGhlcmUsIG5vIG5lZWQgZm9y IGVsc2UgdG8gZm9sbG93DQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBpZiAoZ3Bpby4u Lg0KPiA+ID4gPiA+ID4gPiAgICAgICANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gRGVmaW5p dGVseS4uLg0KPiA+ID4gPiA+ID4gICAgIA0KPiA+ID4gPiA+ID4gPiA+ICsJfSBlbHNlIGlmIChn cGlvICYmDQo+ID4gPiA+ID4gPiA+ID4gZ3Bpb2RfZ2V0X3ZhbHVlX2NhbnNsZWVwKGdwaW8pKSB7 DQo+ID4gPiA+ID4gPiA+ID4gKwkJLyogYnJpbmcgZGV2aWNlIG91dCBvZiByZXNldCAqLw0KPiA+ ID4gPiA+ID4gPiA+ICsJCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChncGlvLA0KPiA+ID4gPiA+ ID4gPiA+IDApOyAgICAgIA0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gSG1tLiBTbyBp cyBhIHNvZnR3YXJlIHJlc2V0IHRoZSBiZXN0IG9wdGlvbiBpZiB3ZSBoYXZlIGENCj4gPiA+ID4g PiA+ID4gaGFyZHdhcmUNCj4gPiA+ID4gPiA+ID4gcmVzZXQNCj4gPiA+ID4gPiA+ID4gbGluZSBi dXQgaXQncyBub3QgY3VycmVudGx5IGluIHRoZSByZXNldCBtb2RlPw0KPiA+ID4gPiA+ID4gPiAg ICAgICANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gSG1tLCB0aGF0J3MgYSBmYWlyIHF1ZXN0 aW9uLiBOb3cgdGhhdCBJIHRoaW5rIGFib3V0IGl0LCBpZg0KPiA+ID4gPiA+ID4gd2UNCj4gPiA+ ID4gPiA+IGRvDQo+ID4gPiA+ID4gPiBoYXZlIGENCj4gPiA+ID4gPiA+IGdwaW8gd2Ugc2hvdWxk IGp1c3QgYXNzdW1lIGl0J3MgaW4gcmVzZXQgYW5kIGNhbGwNCj4gPiA+ID4gPiA+IGBncGlvZF9z ZXRfdmFsdWVfY2Fuc2xlZXBgLiBTbywgSSBndWVzcyB3ZSBjb3VsZCBqdXN0IGRpdGNoDQo+ID4g PiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+IGBncGlvZF9nZXRfdmFsdWVfY2Fuc2xlZXAoZ3Bpbylg IHBhcnQuICAgIA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IE5vdCBzdXJlIEkgYWdyZWUuICAgRm9y IGV4YW1wbGUgdGhlIGRyaXZlciBtYXkgd2VsbCBoYXZlIGJlZW4NCj4gPiA+ID4gPiB1bmJvdW5k DQo+ID4gPiA+ID4gYW5kIHJlYm91bmQgZm9yIHNvbWUgcmVhc29uLiAgICANCj4gPiA+ID4gDQo+ ID4gPiA+IFllcywgdGhhdCBpcyB0cnVlLi4NCj4gPiA+ID4gICANCj4gPiA+ID4gPiBJIHdvdWxk IGFyZ3VlIHlvdSBzaG91bGQganVzdCBkbyBhIHNldCAvIHJlc2V0IGN5Y2xlIHdpdGgNCj4gPiA+ ID4gPiBhcHByb3ByaWF0ZQ0KPiA+ID4gPiA+IHNsZWVwDQo+ID4gPiA+ID4gaW4gYmV0d2Vlbi4g IElmIGl0J3MgYWxyZWFkeSBzZXQgdGhlbiBubyBoYXJtIGRvbmUsIGlmIGl0DQo+ID4gPiA+ID4g aXNuJ3QNCj4gPiA+ID4gPiB5b3UNCj4gPiA+ID4gPiBmb3JjZQ0KPiA+ID4gPiA+IGEgaGFyZHdh cmUgcmVzZXQuICAgIA0KPiA+ID4gPiANCj4gPiA+ID4gU28sIEFzIEltIHVuZGVyc3RhbmRpbmcs IGl0IGNvbWVzIGRvd24gdG8gd2hhdCBzaG91bGQgd2UNCj4gPiA+ID4gY29uc2lkZXINCj4gPiA+ ID4gYXMNCj4gPiA+ID4gZGVmYXVsdC4gWW91IHN1Z2dlc3QgdG8gZmlyc3QgZG8gdGhlIHN3IHJl c2V0IGFuZCB0aGUgY2hlY2sgdGhlDQo+ID4gPiA+IGdwaW8NCj4gPiA+ID4gc3RhdGUgYW5kIGlm IG5lZWRlZCwgYnJpbmcgdGhlIGRldmljZSBvdXQgb2YgcmVzZXQsIHJpZ2h0PyBOb3cNCj4gPiA+ ID4gdGhhdA0KPiA+ID4gPiBJDQo+ID4gPiA+IHRoaW5rIGFib3V0IGl0LCBJIHRoaW5rIHRoZSBv bmx5IHJlYXNvbiBJIGhhdmVuJ3QgZG9uZSBsaWtlDQo+ID4gPiA+IHRoYXQgaXMNCj4gPiA+ID4g YmVjYXVzZSB5b3UgbWlnaHQgZW5kIHVwIHNsZWVwaW5nIHF1aXRlIHNvbWUgdGltZSAoc3cgcmVz ZXQgKw0KPiA+ID4gPiBodw0KPiA+ID4gPiByZXNldCkuIEVpdGhlciB3YXksIEknbSBmaW5lIHdp dGggYm90aCBvcHRpb25zLiBOb3Qgc3VyZSBpZg0KPiA+ID4gPiBBbGV4DQo+ID4gPiA+IGhhcw0K PiA+ID4gPiBzb21ldGhpbmcgdG8gYWRkLi4uICANCj4gPiA+IA0KPiA+ID4gRWl0aGVyIHJlc2V0 IHNob3VsZCBiZSBnb29kIG9uIGl0J3Mgb3duLiAgSSB3b3VsZCB1c2UgaGFyZHdhcmUNCj4gPiA+ IHJlc2V0DQo+ID4gPiBpZiB0aGUgcGluIGlzIHRoZXJlLiBJZiBpdCdzIG5vdCwgdGhlbiB1c2Ug dGhlIHNvZnR3YXJlIHJlc2V0Lg0KPiA+ID4gDQo+ID4gPiBGb3IgaGFyZHdhcmUgYWx3YXlzIHNl dCB0aGUgcGluIGV4cGxpY2l0bHkgdG8gcmVzZXQgYXMgdGhhdA0KPiA+ID4gZ3VhcmFudGVlcw0K PiA+ID4gYWdhaW5zdCBhbnkgcmFjZSBjb25kaXRpb25zLCBldmVuIGlmIHNvbWV0aGluZyBvZGQg aGFwcGVucy4NCj4gPiA+IA0KPiA+ID4gSm9uYXRoYW4gIA0KPiA+IA0KPiA+IEhtbSwgSSB0aGlu ayBJJ20gbm90IGdldHRpbmcgdGhlIHBvaW50IG9yIG1heWJlIEkgZmFpbGVkIHRvIGV4cGxhaW4N Cj4gPiB3aGF0IEkgd2FzIGRvaW5nLi4uIFNvLCBvbiB0aGUgY29kZSBpbiB0aGlzIHBhdGNoLCB0 aGVyZSdzIG5vIEhXDQo+ID4gcmVzZXQuDQo+ID4gSXQgY2hlY2tzIHRoZSByZXNldCBwaW4gYW5k IHNlZXMgaWYgdGhlIHBhcnQgaXMgaW4gcmVzZXQgYW5kLCBpZiBpdA0KPiA+IGlzLA0KPiA+IGl0 IGJyaW5ncyBpdCBvdXQgb2YgcmVzZXQuIEluIHRoYXQgY2FzZSwgbm8gbmVlZCBmb3Igc3cgcmVz ZXQgc2luY2UNCj4gPiB3ZQ0KPiA+IGFyZSBjb21pbmcgYWxyZWFkeSBmcm9tIHJlc2V0LiBPbiB0 aGUgb3RoZXIgaGFuZCwgaWYgdGhlcmUncyBubw0KPiA+IHJlc2V0DQo+ID4gcGluIGNvbmZpZ3Vy ZWQgb3IgdGhlIHBhcnQgaXMgYWxyZWFkeSBwb3dlcmVkLCB0aGVuIEkgd2FzIGZvcmNpbmcgYQ0K PiA+IHN3DQo+ID4gcmVzZXQgdG8gZ3VhcmFudGVlIGEgc2FuZSBzdGF0ZSB3aGVuIHN0YXJ0aW5n Li4uDQo+IA0KPiBBZ3JlZWQgdGhhdCBpcyB3aGF0IHlvdXIgcGF0Y2ggaXMgZG9pbmcuICAgSG93 ZXZlciBJJ20gc3VnZ2VzdGluZyB5b3UNCj4gZG8NCj4gc29tZXRoaW5nIGRpZmZlcmVudC4gIERl Y2lkZSB3aGljaCB0eXBlIG9mIHJlc2V0IHRha2VzIHByZWNlZGVuY2UuDQo+IE5vcm1hbGx5IHRo YXQgaXMgaGFyZHdhcmUgcmVzZXQgaWYgaXQgaXMgd2lyZWQgdXAsIGJ1dCB0aGVyZSBpcyBubw0K PiBwYXJ0aWN1bGFyIHJlYXNvbiBpdCBjYW4ndCBiZSB0aGUgc29mdHdhcmUgcmVzZXQgaWYgdGhl eSBkbyBleGFjdGx5DQo+IHRoZQ0KPiBzYW1lIHRoaW5nLg0KPiANCj4gUGxhbiBhLA0KPiBJZiB5 b3UgZGVjaWRlIHRoZSBzb2Z0d2FyZSB0YWtlcyBwcmVjZWRlbmNlIHlvdSBuZWVkIHRvIGNoZWNr IGlmIHRoZQ0KPiBoYXJkd2FyZSByZXNldCBpcyBhbHJlYWR5IHNldC4gIElmIHNvIHlvdSBuZWVk IHRvIHJlbGVhc2UgaXQgYW5kDQo+IGNhcnJ5IG9uLg0KPiBJZiBoYXJkd2FyZSByZXNldCBpcyBu b3QgcHJvdmlkZWQgb3Igbm90IHNldCB0aGVuIHlvdSBqdXN0IGNhbGwgdGhlDQo+IHNvZnR3YXJl DQo+IHJlc2V0Lg0KPiANCj4gUGxhbiBiLCB3aGljaCBpcyB0aGUgbW9zdCBjb21tb24gb25lIGZv ciBkcml2ZXJzIElJUkMuLi4NCj4gSWYgeW91IGRlY2lkZSB0byBtYWtlIHRoZSBoYXJkd2FyZSBy ZXNldCB0YWtlIHByZWNlZGVuY2UgYW5kIGl0J3MNCj4gdGhlcmUsIHRoZW4geW91DQo+ICdhbHdh eXMnIHNldCB0aGUgcGluIGZvciBhcHByb3ByaWF0ZSB0aW1lIHRvIHRyaWdnZXIgYSByZXNldC4g IFlvdQ0KPiBkb24ndA0KPiBjYXJlIHdoYXQgc3RhdGUgaXQgd2FzIHByZXZpb3VzbHkgaW4gYXMg ZWl0aGVyIGl0J3MgYWxyZWFkeSBpbiByZXNldA0KPiBpbiB3aGljaA0KPiBjYXNlIHlvdSBhcmUg bWFraW5nIG5vIGNoYW5nZSwgb3Igbm90IGluIHdoaWNoIGNhc2UgeW91IGVudGVyIHJlc2V0Lg0K PiBOb3RlIHRoaXMgYWxzbyB3b3JrcyBpZiB5b3UgaGF2ZSBhbiBvdXRwdXQgb25seSBwaW4gYW5k IG5vIGFjY2VzcyB0bw0KPiB3aGF0DQo+IGl0cyBjdXJyZW50IHN0YXRlIGlzICh0eXBpY2FsbHkg YmVjYXVzZSBpdCB3YXMgc2V0IGJ5IGZpcm13YXJlKS4NCj4gDQo+IFRoZW4geW91IHJhaXNlIHRo ZSBncGlvIHRvIHRha2UgaXQgb3V0IG9mIHJlc2V0IGFuZCBtb3ZlIG9uLiAgSWYgdGhlDQo+IHJl c2V0IGlzIG5vdCBwcm92aWRlZCB0aGVuIHlvdSBmYWxsIGJhY2sgdG8gdGhlIHNvZnR3YXJlIHJl c2V0Lg0KDQpPaywgTm93IEkgYmVsaWV2ZSBJIGdvdCBpdC4gSWYgSW0gdW5kZXJzdGFuZGluZyBj b3JyZWN0bHksIHdoYXQgaXMNCmhhcHBlbmluZyByaWdodCBrbm93IGlzIHBsYW4gQS4gU28sIG9u IHBsYW4gQiwgd2UgYWN0dWFsbHkgZm9yY2UgdGhlIEhXDQpyZXNldCAoaWYgdGhlIHBpbiBpcyB0 aGVyZSkgaW5zdGVhZCBvZiBqdXN0IGJyaW5naW5nIGl0IG91dCBvZiByZXNldC4uLg0KDQpJIGFs cmVhZHkgc3Bva2Ugd2l0aCBBbGV4IGFuZCB3ZSBhZ3JlZWQgaGUgaXMgc2VuZGluZyB2MiBzaW5j ZSBoZQ0Kc3RhcnRlZCB0aGlzIHNlcmllcy4gU28sIEhlIGlzIGRlY2lkaW5nIHdoaWNoIHBsYW4g dG8gZ28gZm9yIDopDQoNClRoYW5rcyBmb3IgeW91ciBleHBsYW5hdGlvbiENCk51bm8gU8OhDQo+ IEpvbmF0aGFuDQo+IA0KPiANCj4gDQo+IA0KPiA+ID4gPiBOdW5vIFPDoSAgIA0KPiA+ID4gPiA+ ID4gPiA+ICsJCW1zbGVlcCh0aW1lb3V0cy0+cmVzZXRfbXMpOw0KPiA+ID4gPiA+ID4gPiA+ICsJ fSBlbHNlIHsNCj4gPiA+ID4gPiA+ID4gPiArCQlyZXQgPSBfX2FkaXNfcmVzZXQoYWRpcyk7DQo+ ID4gPiA+ID4gPiA+ID4gKwkJaWYgKHJldCkNCj4gPiA+ID4gPiA+ID4gPiArCQkJcmV0dXJuIHJl dDsNCj4gPiA+ID4gPiA+ID4gPiArCX0NCj4gPiA+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiA+ ID4gIAlyZXQgPSBhZGlzX3NlbGZfdGVzdChhZGlzKTsNCj4gPiA+ID4gPiA+ID4gPiAtCWlmIChy ZXQpIHsNCj4gPiA+ID4gPiA+ID4gPiAtCQlkZXZfZXJyKCZhZGlzLT5zcGktPmRldiwgIlNlbGYt dGVzdA0KPiA+ID4gPiA+ID4gPiA+IGZhaWxlZCwNCj4gPiA+ID4gPiA+ID4gPiB0cnlpbmcNCj4g PiA+ID4gPiA+ID4gPiByZXNldC5cbiIpOw0KPiA+ID4gPiA+ID4gPiA+IC0JCV9fYWRpc19yZXNl dChhZGlzKTsNCj4gPiA+ID4gPiA+ID4gPiAtCQlyZXQgPSBhZGlzX3NlbGZfdGVzdChhZGlzKTsN Cj4gPiA+ID4gPiA+ID4gPiAtCQlpZiAocmV0KSB7DQo+ID4gPiA+ID4gPiA+ID4gLQkJCWRldl9l cnIoJmFkaXMtPnNwaS0+ZGV2LA0KPiA+ID4gPiA+ID4gPiA+ICJTZWNvbmQgc2VsZi0NCj4gPiA+ ID4gPiA+ID4gPiB0ZXN0DQo+ID4gPiA+ID4gPiA+ID4gZmFpbGVkLCBnaXZpbmcgdXAuXG4iKTsN Cj4gPiA+ID4gPiA+ID4gPiAtCQkJZ290byBvdXRfdW5sb2NrOw0KPiA+ID4gPiA+ID4gPiA+IC0J CX0NCj4gPiA+ID4gPiA+ID4gPiAtCX0NCj4gPiA+ID4gPiA+ID4gPiArCWlmIChyZXQpDQo+ID4g PiA+ID4gPiA+ID4gKwkJcmV0dXJuIHJldDsNCj4gPiA+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4g PiA+ID4gLW91dF91bmxvY2s6DQo+ID4gPiA+ID4gPiA+ID4gLQltdXRleF91bmxvY2soJmFkaXMt PnN0YXRlX2xvY2spOw0KPiA+ID4gPiA+ID4gPiA+IC0JcmV0dXJuIHJldDsNCj4gPiA+ID4gPiA+ ID4gPiArCWlmICghYWRpcy0+ZGF0YS0+cHJvZF9pZF9yZWcpDQo+ID4gPiA+ID4gPiA+ID4gKwkJ cmV0dXJuIDA7DQo+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ICsJcmV0ID0gYWRp c19yZWFkX3JlZ18xNihhZGlzLCBhZGlzLT5kYXRhLQ0KPiA+ID4gPiA+ID4gPiA+ID5wcm9kX2lk X3JlZywNCj4gPiA+ID4gPiA+ID4gPiAmcHJvZF9pZCk7DQo+ID4gPiA+ID4gPiA+ID4gKwlpZiAo cmV0KQ0KPiA+ID4gPiA+ID4gPiA+ICsJCXJldHVybiByZXQ7DQo+ID4gPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gPiA+ICsJcmV0ID0gc3NjYW5mKGlpb19uYW1lLCAiYWRpcyVodVxuIiwNCj4g PiA+ID4gPiA+ID4gPiAmZGV2X2lkKTsgICAgICANCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4g PiA+IEhtbS4gSSBoYXZlIGEgZ2VuZXJhbCBkaXNsaWtlIG9mIHB1bGxpbmcgcGFydCBuYW1lDQo+ ID4gPiA+ID4gPiA+IHN0cmluZ3MNCj4gPiA+ID4gPiA+ID4gYXBhcnQNCj4gPiA+ID4gPiA+ID4g dG8NCj4gPiA+ID4gPiA+ID4gZ2V0DQo+ID4gPiA+ID4gPiA+IElEcy4gIEl0IHRlbmRzIHRvIGJy ZWFrIHdoZW4gc29tZW9uZSBjb21lcyBhbG9uZyBhbmQgYWRkcw0KPiA+ID4gPiA+ID4gPiBhDQo+ ID4gPiA+ID4gPiA+IHBhcnQNCj4gPiA+ID4gPiA+ID4gd2l0aA0KPiA+ID4gPiA+ID4gPiBuZXcN Cj4gPiA+ID4gPiA+ID4gYnJhbmRpbmcuICBQZXJoYXBzIGp1c3QgcHV0IGl0IGluIHRoZSByZWxl dmFudCBkZXZpY2UNCj4gPiA+ID4gPiA+ID4gcGFydA0KPiA+ID4gPiA+ID4gPiBzcGVjaWZpYw0K PiA+ID4gPiA+ID4gPiBzdHJ1Y3R1cmVzDQo+ID4gPiA+ID4gPiA+IGRpcmVjdGx5Pw0KPiA+ID4g PiA+ID4gPiAgICAgICANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gSSdsbCBhZG1pdCB0aGF0 IHRoaXMgdG8gb3JpZW50YXRlZCB0byBBREkgZGV2aWNlcyBhbmQgSQ0KPiA+ID4gPiA+ID4gYmFz aWNhbGx5DQo+ID4gPiA+ID4gPiBqdXN0DQo+ID4gPiA+ID4gPiB0b29rIHdoYXQgYWxsIHRoZSBk cml2ZXJzIHdlcmUgZG9pbmcgYW5kIHBsYWNlZCBpdCBpbnNpZGUNCj4gPiA+ID4gPiA+IHRoZQ0K PiA+ID4gPiA+ID4gbGlicmFyeS4uLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBTbywgeW91 IG1lYW4gcGFzc2luZyB0aGlzIHRvIGVhY2ggYGNoaXBfaW5mb2AgYW5kIHRoZW4NCj4gPiA+ID4g PiA+IHBhc3NpbmcNCj4gPiA+ID4gPiA+IGl0DQo+ID4gPiA+ID4gPiB0bw0KPiA+ID4gPiA+ID4g dGhlIGxpYnJhcnkgdGhyb3VnaCBgYWRpc19kYXRhYD8gICAgDQo+ID4gPiA+ID4gDQo+ID4gPiA+ ID4gWWVzLiAgUGVvcGxlIGRvbid0IHRlbmQgdG8gZXhwZWN0IHN0cmluZ3MgdG8gbmVlZCB0byB0 YWtlIGENCj4gPiA+ID4gPiBwYXJ0aWN1bGFyIGZvcm0sDQo+ID4gPiA+ID4gc28gcHVsbGluZyB0 aGVtIGFwYXJ0IGluIGEgbGlicmFyeSBjYW4gZ2l2ZSB1bmV4cGVjdGVkDQo+ID4gPiA+ID4gcmVz dWx0cy4uLg0KPiA+ID4gPiA+ICAgICANCj4gPiA+ID4gPiA+ID4gPiArCWlmIChyZXQgIT0gMSkN Cj4gPiA+ID4gPiA+ID4gPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiA+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gPiA+ID4gKwlpZiAocHJvZF9pZCAhPSBkZXZfaWQpDQo+ID4gPiA+ID4gPiA+ID4g KwkJZGV2X3dhcm4oJmFkaXMtPnNwaS0+ZGV2LA0KPiA+ID4gPiA+ID4gPiA+ICsJCQkgIkRldmlj ZSBJRCgldSkgYW5kIHByb2R1Y3QNCj4gPiA+ID4gPiA+ID4gPiBJRCgldSkgZG8NCj4gPiA+ID4g PiA+ID4gPiBub3QNCj4gPiA+ID4gPiA+ID4gPiBtYXRjaC4iLA0KPiA+ID4gPiA+ID4gPiA+ICsJ CQkgZGV2X2lkLCBwcm9kX2lkKTsNCj4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4g KwlyZXR1cm4gMDsNCj4gPiA+ID4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ID4gPiA+IC1FWFBPUlRf U1lNQk9MX0dQTChhZGlzX2luaXRpYWxfc3RhcnR1cCk7DQo+ID4gPiA+ID4gPiA+ID4gK0VYUE9S VF9TWU1CT0xfR1BMKF9fYWRpc19pbml0aWFsX3N0YXJ0dXApOw0KPiA+ID4gPiA+ID4gPiA+ICAN Cj4gPiA+ID4gPiA+ID4gPiAgLyoqDQo+ID4gPiA+ID4gPiA+ID4gICAqIGFkaXNfc2luZ2xlX2Nv bnZlcnNpb24oKSAtIFBlcmZvcm1zIGEgc2luZ2xlIHNhbXBsZQ0KPiA+ID4gPiA+ID4gPiA+IGNv bnZlcnNpb24NCj4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9paW8v aW11L2FkaXMuaA0KPiA+ID4gPiA+ID4gPiA+IGIvaW5jbHVkZS9saW51eC9paW8vaW11L2FkaXMu aA0KPiA+ID4gPiA+ID4gPiA+IGluZGV4IGQyMWEwMTNkMTEyMi4uYzQzZTc5MjJhYjMyIDEwMDY0 NA0KPiA+ID4gPiA+ID4gPiA+IC0tLSBhL2luY2x1ZGUvbGludXgvaWlvL2ltdS9hZGlzLmgNCj4g PiA+ID4gPiA+ID4gPiArKysgYi9pbmNsdWRlL2xpbnV4L2lpby9pbXUvYWRpcy5oDQo+ID4gPiA+ ID4gPiA+ID4gQEAgLTQxLDYgKzQxLDcgQEAgc3RydWN0IGFkaXNfdGltZW91dCB7DQo+ID4gPiA+ ID4gPiA+ID4gICAqIEBnbG9iX2NtZF9yZWc6IFJlZ2lzdGVyIGFkZHJlc3Mgb2YgdGhlIEdMT0Jf Q01EDQo+ID4gPiA+ID4gPiA+ID4gcmVnaXN0ZXINCj4gPiA+ID4gPiA+ID4gPiAgICogQG1zY19j dHJsX3JlZzogUmVnaXN0ZXIgYWRkcmVzcyBvZiB0aGUgTVNDX0NUUkwNCj4gPiA+ID4gPiA+ID4g PiByZWdpc3Rlcg0KPiA+ID4gPiA+ID4gPiA+ICAgKiBAZGlhZ19zdGF0X3JlZzogUmVnaXN0ZXIg YWRkcmVzcyBvZiB0aGUgRElBR19TVEFUDQo+ID4gPiA+ID4gPiA+ID4gcmVnaXN0ZXINCj4gPiA+ ID4gPiA+ID4gPiArICogQHByb2RfaWRfcmVnOiBSZWdpc3RlciBhZGRyZXNzIG9mIHRoZSBQUk9E X0lEDQo+ID4gPiA+ID4gPiA+ID4gcmVnaXN0ZXINCj4gPiA+ID4gPiA+ID4gPiAgICogQHNlbGZf dGVzdF9yZWc6IFJlZ2lzdGVyIGFkZHJlc3MgdG8gcmVxdWVzdCBzZWxmDQo+ID4gPiA+ID4gPiA+ ID4gdGVzdA0KPiA+ID4gPiA+ID4gPiA+IGNvbW1hbmQNCj4gPiA+ID4gPiA+ID4gPiAgICogQHN0 YXR1c19lcnJvcl9tc2dzOiBBcnJheSBvZiBlcnJvciBtZXNzZ2Flcw0KPiA+ID4gPiA+ID4gPiA+ ICAgKiBAc3RhdHVzX2Vycm9yX21hc2s6DQo+ID4gPiA+ID4gPiA+ID4gQEAgLTU0LDYgKzU1LDcg QEAgc3RydWN0IGFkaXNfZGF0YSB7DQo+ID4gPiA+ID4gPiA+ID4gIAl1bnNpZ25lZCBpbnQgZ2xv Yl9jbWRfcmVnOw0KPiA+ID4gPiA+ID4gPiA+ICAJdW5zaWduZWQgaW50IG1zY19jdHJsX3JlZzsN Cj4gPiA+ID4gPiA+ID4gPiAgCXVuc2lnbmVkIGludCBkaWFnX3N0YXRfcmVnOw0KPiA+ID4gPiA+ ID4gPiA+ICsJdW5zaWduZWQgaW50IHByb2RfaWRfcmVnOw0KPiA+ID4gPiA+ID4gPiA+ICANCj4g PiA+ID4gPiA+ID4gPiAgCXVuc2lnbmVkIGludCBzZWxmX3Rlc3RfbWFzazsNCj4gPiA+ID4gPiA+ ID4gPiAgCXVuc2lnbmVkIGludCBzZWxmX3Rlc3RfcmVnOw0KPiA+ID4gPiA+ID4gPiA+IEBAIC0y OTksNiArMzAxLDcgQEAgc3RhdGljIGlubGluZSBpbnQNCj4gPiA+ID4gPiA+ID4gPiBhZGlzX3Jl YWRfcmVnXzMyKHN0cnVjdA0KPiA+ID4gPiA+ID4gPiA+IGFkaXMNCj4gPiA+ID4gPiA+ID4gPiAq YWRpcywgdW5zaWduZWQgaW50IHJlZywNCj4gPiA+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiA+ ID4gIGludCBhZGlzX2VuYWJsZV9pcnEoc3RydWN0IGFkaXMgKmFkaXMsIGJvb2wgZW5hYmxlKTsN Cj4gPiA+ID4gPiA+ID4gPiAgaW50IF9fYWRpc19jaGVja19zdGF0dXMoc3RydWN0IGFkaXMgKmFk aXMpOw0KPiA+ID4gPiA+ID4gPiA+ICtpbnQgX19hZGlzX2luaXRpYWxfc3RhcnR1cChzdHJ1Y3Qg YWRpcyAqYWRpcyk7DQo+ID4gPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gPiA+ICBzdGF0aWMg aW5saW5lIGludCBhZGlzX2NoZWNrX3N0YXR1cyhzdHJ1Y3QgYWRpcyAqYWRpcykNCj4gPiA+ID4g PiA+ID4gPiAgew0KPiA+ID4gPiA+ID4gPiA+IEBAIC0zMTEsNyArMzE0LDE3IEBAIHN0YXRpYyBp bmxpbmUgaW50DQo+ID4gPiA+ID4gPiA+ID4gYWRpc19jaGVja19zdGF0dXMoc3RydWN0DQo+ID4g PiA+ID4gPiA+ID4gYWRpcyAqYWRpcykNCj4gPiA+ID4gPiA+ID4gPiAgCXJldHVybiByZXQ7DQo+ ID4gPiA+ID4gPiA+ID4gIH0NCj4gPiA+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiA+ID4gLWlu dCBhZGlzX2luaXRpYWxfc3RhcnR1cChzdHJ1Y3QgYWRpcyAqYWRpcyk7DQo+ID4gPiA+ID4gPiA+ ID4gKy8qIGxvY2tlZCB2ZXJzaW9uIG9mIF9fYWRpc19pbml0aWFsX3N0YXJ0dXAoKSAqLw0KPiA+ ID4gPiA+ID4gPiA+ICtzdGF0aWMgaW5saW5lIGludCBhZGlzX2luaXRpYWxfc3RhcnR1cChzdHJ1 Y3QgYWRpcw0KPiA+ID4gPiA+ID4gPiA+ICphZGlzKQ0KPiA+ID4gPiA+ID4gPiA+ICt7DQo+ID4g PiA+ID4gPiA+ID4gKwlpbnQgcmV0Ow0KPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4g PiArCW11dGV4X2xvY2soJmFkaXMtPnN0YXRlX2xvY2spOw0KPiA+ID4gPiA+ID4gPiA+ICsJcmV0 ID0gX19hZGlzX2luaXRpYWxfc3RhcnR1cChhZGlzKTsNCj4gPiA+ID4gPiA+ID4gPiArCW11dGV4 X3VubG9jaygmYWRpcy0+c3RhdGVfbG9jayk7DQo+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gPiA+ICsJcmV0dXJuIHJldDsNCj4gPiA+ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gPiA+ ICANCj4gPiA+ID4gPiA+ID4gPiAgaW50IGFkaXNfc2luZ2xlX2NvbnZlcnNpb24oc3RydWN0IGlp b19kZXYgKmluZGlvX2RldiwNCj4gPiA+ID4gPiA+ID4gPiAgCWNvbnN0IHN0cnVjdCBpaW9fY2hh bl9zcGVjICpjaGFuLCB1bnNpZ25lZCBpbnQNCj4gPiA+ID4gPiA+ID4gPiBlcnJvcl9tYXNrLCAg ICAgIA0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gICAgICAgDQo+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gICAgIA0KPiA+ID4gDQo+ID4gPiAgIA0KDQo=