Received: by 2002:a05:6358:16cc:b0:ea:6187:17c9 with SMTP id r12csp9451088rwl; Sun, 1 Jan 2023 04:01:30 -0800 (PST) X-Google-Smtp-Source: AMrXdXvvoxl0Ge7ImZzLdZLbujohG+nFgeXc/eW1ZtDrJwihh+mewIV0uci3qw4hPQ3ZZt7P+lha X-Received: by 2002:a17:907:7da1:b0:7c0:d6b6:1ee9 with SMTP id oz33-20020a1709077da100b007c0d6b61ee9mr39487589ejc.11.1672574490682; Sun, 01 Jan 2023 04:01:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672574490; cv=none; d=google.com; s=arc-20160816; b=CRhZJucFZzPT042gVrFZqxOJo7oaeT6D3qLO34fIOXSY/PavFxLbXcVb7+979URMyf nsPKEzFLvCtCoKm25PTvl2IBcj8QR+FNJiJujKRxShnoc0KzwRDj7KgB1Elg2tDyYCDM Qh7/8hmvBpcxZAEPfWmwNfpuoJOxLA2JDBn20u0HLxDxb7Oq0VgzdyhNSBXGyaDQf5h+ 80bZrkEd9DpS65daR6G1+M6/TsTruBXttnqPwtGgJP5OVlTHCTEMBYkekqsFEp2571mp eNKu+gcrIbZJOUn8uYFTdsds4KZaL38DaBVRLH4gG+TsQsKeHNIV+GnZXAGdbzE+bn/K b+6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent :content-transfer-encoding:references:in-reply-to:date:cc:to:from :subject:message-id:dkim-signature; bh=/Wop87iPuxR+Y6xaIcpkv36LW4XGyJLFEc7DyyIsJm8=; b=h3Yb0jFfoLntvovZ9kX8olfEUDEfx819xuFZM8zmEFPMfLVmfzOiATMe+laRP3itrD hYP79Uzcowrru4aLt10s3QM+6OtVmCtXn926yQHqMiOrnRwjm8Qz1iXfJEZLMvLYfV1S rnmbKGAjVIGywyvqBkYTDB4+O+8KrBd4F5gXNcNnMQQCxDR0SaetygC+/P26tQpVgqX9 +YS4oPvAE6TWLZl5aENdbPquy6hPJ5DcS3npMQBBEwkvs1V9y5NlltUPBISgE6johWAT aYcWQZxzGPcLs7gmmfQ1v5GKKtTR+LOZjT6ZM4Js2yOtYe9ff83QCp0lyboKcl5FN2aP Tutg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b="mH+Bgb/f"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ht11-20020a170907608b00b007c0ce331e13si21594573ejc.703.2023.01.01.04.00.51; Sun, 01 Jan 2023 04:01:30 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b="mH+Bgb/f"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229969AbjAALsL (ORCPT + 60 others); Sun, 1 Jan 2023 06:48:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34734 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229539AbjAALsJ (ORCPT ); Sun, 1 Jan 2023 06:48:09 -0500 Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DA400D93; Sun, 1 Jan 2023 03:48:07 -0800 (PST) Received: by mail-wr1-x431.google.com with SMTP id z16so7443079wrw.1; Sun, 01 Jan 2023 03:48:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=/Wop87iPuxR+Y6xaIcpkv36LW4XGyJLFEc7DyyIsJm8=; b=mH+Bgb/fwYQrr6C94hf4x26NicYpXEwklIQs42ibctOrh/Mle/9eFBb2pfUfyG03TL yycWOLBT+p+GUF+Zf+Jp/Fl57VvN4azIv/hOoabEawxq/Ara+em4m2vmal0JwAzlBMTl vvmp/SchA8SmMnNSwOkwXntvTX2gCHoUsIMA2Jxjd8BAvhAQhR2Mvy2W5vaqSgFbRwTS 9TAvLc7ueZYC4lsLrli6Bld0EBnERxomrL5CqNtDIulcZoi002utBLv1kRAC2cST2A4f FMTZXMv0aU/rcqOs9NyI5j7uDNSd7EwqTaLHi4+p81RuGikFpeUl15KesVtc9H401Ilg hDxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=/Wop87iPuxR+Y6xaIcpkv36LW4XGyJLFEc7DyyIsJm8=; b=QneL324LUT7TPQz+snDEm8TUc+t0boMcfT9mQTvO2BtSoUI2p/NsKUD0nAxz59f9mX t+we+iYNCblHFNZ9w/B1gamuRvHBX0kAPQsfDn2UCPko1YwpEWfdDK2N98AggcjZ+ppH 6IeaXS/w3yDyraRbOGnzL15njR2ulvcTjjbF/clTlkf6NCr4yI7kEn7z9CG+AXRNS07L tUAXWsjFLm2rm3LgMpMtUE9sVEHOecG5PDnuzAlRrB9b08BQZBJoLcY0y9cmzxIVoVGd qZ9jwY1PS/TOimw/v1Bcw7FjQXH6hflRfbetPyStAikEky54RxBFIxpvNVKk6mVHzDH7 k6+g== X-Gm-Message-State: AFqh2krBzj4wOCkbpUMDgUkp0UEzklr7KnlY3jSxW6QHT4dkm2fmhBLB XyXkBSKayslge1IlUf4Oe74= X-Received: by 2002:adf:fb91:0:b0:27c:88f3:8cb8 with SMTP id a17-20020adffb91000000b0027c88f38cb8mr13172226wrr.25.1672573686400; Sun, 01 Jan 2023 03:48:06 -0800 (PST) Received: from DreamMachine2.lan (188.red-83-35-57.dynamicip.rima-tde.net. [83.35.57.188]) by smtp.gmail.com with ESMTPSA id h29-20020adfaa9d000000b002368f6b56desm31655559wrc.18.2023.01.01.03.48.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Jan 2023 03:48:06 -0800 (PST) Message-ID: <4e7c7e14b6eb99cc4007b9d6f8528c49e532cd26.camel@gmail.com> Subject: Re: [PATCH v2 5/5] iio: pressure: bmp280: Add nvmem operations for BMP580 From: Angel Iglesias To: Jonathan Cameron Cc: linux-iio@vger.kernel.org, Lars-Peter Clausen , Rob Herring , Krzysztof Kozlowski , Nikita Yushchenko , Andy Shevchenko , Ulf Hansson , "Rafael J. Wysocki" , Paul Cercueil , Andreas Klinger , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Date: Sun, 01 Jan 2023 12:48:02 +0100 In-Reply-To: <20221230184928.011a7851@jic23-huawei> References: <92664164d24cbd9c6541cdbd73b163dbf964ab68.1672062380.git.ang.iglesiasg@gmail.com> <20221230184928.011a7851@jic23-huawei> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.2 (by Flathub.org) MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gRnJpLCAyMDIyLTEyLTMwIGF0IDE4OjQ5ICswMDAwLCBKb25hdGhhbiBDYW1lcm9uIHdyb3Rl Ogo+IE9uIE1vbiwgMjYgRGVjIDIwMjIgMTU6Mjk6MjQgKzAxMDAKPiBBbmdlbCBJZ2xlc2lhcyA8 YW5nLmlnbGVzaWFzZ0BnbWFpbC5jb20+IHdyb3RlOgo+IAo+ID4gVGhlIHByZXNzdXJlIHNlbnNv ciBCTVA1ODAgY29udGFpbnMgYSBub24tdm9sYXRpbGUgbWVtb3J5IHRoYXQgc3RvcmVzCj4gPiB0 cmltbWluZyBhbmQgY29uZmlndXJhdGlvbiBwYXJhbXMuIFRoYXQgbWVtb3J5IHByb3ZpZGVzIGFu IHByb2dyYW1tYWJsZQo+ID4gdXNlciByYW5nZSBvZiB0aHJlZSAyLWJ5dGUgd29yZHMuCj4gPiAK PiA+IFNpZ25lZC1vZmYtYnk6IEFuZ2VsIElnbGVzaWFzIDxhbmcuaWdsZXNpYXNnQGdtYWlsLmNv bT4KPiAKPiBOb3QgbXVjaCBpbiB0aGlzIG9uZSBmcm9tIG1lIG90aGVyIHRoYW4gZm9sbG93IG9u IGZyb20gZWFybGllciBwYXRjaC4KPiBUaGFua3MsCj4gCj4gSm9uYXRoYW4KPiAKPiA+IAo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL3ByZXNzdXJlL2JtcDI4MC1jb3JlLmMKPiA+IGIvZHJp dmVycy9paW8vcHJlc3N1cmUvYm1wMjgwLWNvcmUuYwo+ID4gaW5kZXggNDQ5MDFjNmViMmY5Li41 NzhkMTQ1YmU1NWQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2lpby9wcmVzc3VyZS9ibXAyODAt Y29yZS5jCj4gPiArKysgYi9kcml2ZXJzL2lpby9wcmVzc3VyZS9ibXAyODAtY29yZS5jCj4gPiBA QCAtMjgsNiArMjgsNyBAQAo+ID4gwqAjaW5jbHVkZSA8bGludXgvYml0ZmllbGQuaD4KPiA+IMKg I2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgo+ID4gwqAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+ Cj4gPiArI2luY2x1ZGUgPGxpbnV4L252bWVtLXByb3ZpZGVyLmg+Cj4gPiDCoCNpbmNsdWRlIDxs aW51eC9yZWdtYXAuaD4KPiA+IMKgI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Cj4gPiDCoCNpbmNs dWRlIDxsaW51eC9paW8vaWlvLmg+Cj4gPiBAQCAtMTYyOCw4ICsxNjI5LDE0MCBAQCBzdGF0aWMg Y29uc3QgaW50IGJtcDU4MF9vZHJfdGFibGVbXVsyXSA9IHsKPiA+IMKgwqDCoMKgwqDCoMKgwqBb Qk1QNTgwX09EUl8wXzEyNUhaXSA9wqDCoHswLCAxMjUwMDB9LAo+ID4gwqB9Owo+ID4gwqAKPiA+ ICtjb25zdCBpbnQgYm1wNTgwX252bWVtX2FkZHJzW10gPSB7IDB4MjAsIDB4MjEsIDB4MjIgfTsK PiA+ICsKPiA+ICtzdGF0aWMgaW50IGJtcDU4MF9udm1lbV9yZWFkKHZvaWQgKnByaXYsIHVuc2ln bmVkIGludCBvZmZzZXQsIHZvaWQgKnZhbCwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZV90IGJ5dGVzKQo+ID4gK3sKPiA+ICvC oMKgwqDCoMKgwqDCoHN0cnVjdCBibXAyODBfZGF0YSAqZGF0YSA9IHByaXY7Cj4gPiArwqDCoMKg wqDCoMKgwqB1MTYgKmRzdCA9IHZhbDsKPiA+ICvCoMKgwqDCoMKgwqDCoGludCByZXQsIGFkZHI7 Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqBwbV9ydW50aW1lX2dldF9zeW5jKGRhdGEtPmRldik7 Cj4gPiArwqDCoMKgwqDCoMKgwqBtdXRleF9sb2NrKCZkYXRhLT5sb2NrKTsKPiA+ICsKPiA+ICvC oMKgwqDCoMKgwqDCoC8qIFNldCBzZW5zb3IgaW4gc3RhbmRieSBtb2RlICovCj4gPiArwqDCoMKg wqDCoMKgwqByZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMoZGF0YS0+cmVnbWFwLCBCTVA1ODBfUkVH X09EUl9DT05GSUcsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQk1QNTgwX01PREVfTUFTSyB8Cj4gPiBCTVA1ODBfT0RS X0RFRVBTTEVFUF9ESVMsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQk1QNTgwX09EUl9ERUVQU0xFRVBfRElTIHwKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBGSUVMRF9QUkVQKEJNUDU4MF9NT0RFX01BU0ssCj4gPiBCTVA1ODBfTU9ERV9TTEVF UCkpOwo+ID4gK8KgwqDCoMKgwqDCoMKgaWYgKHJldCkgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGRldl9lcnIoZGF0YS0+ZGV2LCAiZmFpbGVkIHRvIGNoYW5nZSBzZW5zb3Ig dG8gc3RhbmRieQo+ID4gbW9kZVxuIik7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgZ290byBleGl0Owo+ID4gK8KgwqDCoMKgwqDCoMKgfQo+ID4gK8KgwqDCoMKgwqDCoMKgLyog V2FpdCBzdGFuZGJ5IHRyYW5zaXRpb24gdGltZSAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgdXNsZWVw X3JhbmdlKDI1MDAsIDMwMDApOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgd2hpbGUgKGJ5dGVz ID49IHNpemVvZih1MTYpKSB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYWRk ciA9IGJtcDU4MF9udm1lbV9hZGRyc1tvZmZzZXQgLyBzaXplb2YodTE2KV07Cj4gPiArCj4gPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gcmVnbWFwX3dyaXRlKGRhdGEtPnJl Z21hcCwgQk1QNTgwX1JFR19OVk1fQUREUiwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRklFTERfUFJFUChCTVA1 ODBfTlZNX1JPV19BRERSX01BU0ssCj4gPiBhZGRyKSk7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgaWYgKHJldCkgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBkZXZfZXJyKGRhdGEtPmRldiwgImVycm9yIHdyaXRpbmcgbnZtIGFk ZHJlc3NcbiIpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBnb3RvIGV4aXQ7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ID4g Kwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldCA9IGJtcDU4MF9jbWQoZGF0 YSwgQk1QNTgwX05WTV9SRUFEX0NNRCk7Cj4gQWguIEhlcmUgaXMgdGhlIGNvbW1hbmQgYmVpbmcg dXNlZC7CoCBHb29kIHRvIHB1bGwgdGhhdCBjb2RlIGZvcndhcmRzIHRvIHRoaXMKPiBwYXRjaC4K PiAKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAocmV0KQo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIGV4aXQ7Cj4gPiAr Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gcmVnbWFwX2J1bGtfcmVh ZChkYXRhLT5yZWdtYXAsCj4gPiBCTVA1ODBfUkVHX05WTV9EQVRBX0xTQiwgJmRhdGEtPmxlMTYs Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZW9mKGRhdGEtPmxlMTYpKTsKPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAocmV0KSB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRldl9lcnIoZGF0YS0+ZGV2LCAiZXJyb3IgcmVh ZGluZyBudm0gZGF0YSByZWdzXG4iKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgZ290byBleGl0Owo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoH0KPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqZHN0Kysg PSBsZTE2X3RvX2NwdShkYXRhLT5sZTE2KTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBieXRlcyAtPSBzaXplb2YodTE2KTsKPiAKPiBzaXplb2YobGUxNikgc2VlbXMgbW9yZSBh cHByb3ByaWF0ZSAob2J2aW91c2x5IGl0J3MgdGhlIHNhbWUgdmFsdWUpLgo+IAo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG9mZnNldCArPSBzaXplb2YodTE2KTsKPiA+ICvCoMKg wqDCoMKgwqDCoH0KPiA+ICtleGl0Ogo+ID4gK8KgwqDCoMKgwqDCoMKgLyogUmVzdG9yZSBjaGlw IGNvbmZpZyAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgZGF0YS0+Y2hpcF9pbmZvLT5jaGlwX2NvbmZp ZyhkYXRhKTsKPiA+ICvCoMKgwqDCoMKgwqDCoG11dGV4X3VubG9jaygmZGF0YS0+bG9jayk7Cj4g PiArwqDCoMKgwqDCoMKgwqBwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGRhdGEtPmRldik7Cj4g PiArwqDCoMKgwqDCoMKgwqBwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChkYXRhLT5kZXYpOwo+ ID4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIHJldDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGlu dCBibXA1ODBfbnZtZW1fd3JpdGUodm9pZCAqcHJpdiwgdW5zaWduZWQgaW50IG9mZnNldCwgdm9p ZCAqdmFsLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHNpemVfdCBieXRlcykKPiA+ICt7Cj4gPiArwqDCoMKgwqDCoMKgwqBzdHJ1 Y3QgYm1wMjgwX2RhdGEgKmRhdGEgPSBwcml2Owo+ID4gK8KgwqDCoMKgwqDCoMKgdTE2ICpidWYg PSB2YWw7Cj4gPiArwqDCoMKgwqDCoMKgwqBpbnQgcmV0LCBhZGRyOwo+ID4gKwo+ID4gK8KgwqDC oMKgwqDCoMKgcG1fcnVudGltZV9nZXRfc3luYyhkYXRhLT5kZXYpOwo+ID4gK8KgwqDCoMKgwqDC oMKgbXV0ZXhfbG9jaygmZGF0YS0+bG9jayk7Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqAvKiBT ZXQgc2Vuc29yIGluIHN0YW5kYnkgbW9kZSAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgcmV0ID0gcmVn bWFwX3VwZGF0ZV9iaXRzKGRhdGEtPnJlZ21hcCwgQk1QNTgwX1JFR19PRFJfQ09ORklHLAo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIEJNUDU4MF9NT0RFX01BU0sgfAo+ID4gQk1QNTgwX09EUl9ERUVQU0xFRVBfRElTLAo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIEJNUDU4MF9PRFJfREVFUFNMRUVQX0RJUyB8Cj4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRklFTERfUFJF UChCTVA1ODBfTU9ERV9NQVNLLAo+ID4gQk1QNTgwX01PREVfU0xFRVApKTsKPiA+ICvCoMKgwqDC oMKgwqDCoGlmIChyZXQpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZXZf ZXJyKGRhdGEtPmRldiwgImZhaWxlZCB0byBjaGFuZ2Ugc2Vuc29yIHRvIHN0YW5kYnkKPiA+IG1v ZGVcbiIpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gZXhpdDsKPiA+ ICvCoMKgwqDCoMKgwqDCoH0KPiA+ICvCoMKgwqDCoMKgwqDCoC8qIFdhaXQgc3RhbmRieSB0cmFu c2l0aW9uIHRpbWUgKi8KPiA+ICvCoMKgwqDCoMKgwqDCoHVzbGVlcF9yYW5nZSgyNTAwLCAzMDAw KTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoHdoaWxlIChieXRlcyA+PSBzaXplb2YodTE2KSkg ewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFkZHIgPSBibXA1ODBfbnZtZW1f YWRkcnNbb2Zmc2V0IC8gc2l6ZW9mKHUxNildOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHJldCA9IHJlZ21hcF93cml0ZShkYXRhLT5yZWdtYXAsIEJNUDU4MF9SRUdf TlZNX0FERFIsCj4gPiBCTVA1ODBfTlZNX1BST0dfRU4gfAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBGSUVMRF9Q UkVQKEJNUDU4MF9OVk1fUk9XX0FERFJfTUFTSywKPiA+IGFkZHIpKTsKPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAocmV0KSB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRldl9lcnIoZGF0YS0+ZGV2LCAiZXJyb3Igd3JpdGlu ZyBudm0gYWRkcmVzc1xuIik7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGdvdG8gZXhpdDsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB9Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGF0YS0+bGUxNiA9IGNwdV90 b19sZTE2KCpidWYrKyk7Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg cmV0ID0gcmVnbWFwX2J1bGtfd3JpdGUoZGF0YS0+cmVnbWFwLAo+ID4gQk1QNTgwX1JFR19OVk1f REFUQV9MU0IsICZkYXRhLT5sZTE2LAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNpemVvZihk YXRhLT5sZTE2KSk7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHJldCkg ewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZXZf ZXJyKGRhdGEtPmRldiwgImVycm9yIHdyaXRpbmcgTFNCIE5WTSBkYXRhCj4gPiByZWdzXG4iKTsK PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZ290byBl eGl0Owo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiA+ICsKPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSBibXA1ODBfY21kKGRhdGEsIEJNUDU4MF9O Vk1fV1JJVEVfQ01EKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAocmV0 KQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3Rv IGV4aXQ7Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogRGlzYWJs ZSBwcm9ncmFtbWluZyBtb2RlIGJpdCAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhkYXRhLT5yZWdtYXAsIEJNUDU4MF9SRUdfTlZN X0FERFIsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJNUDU4MF9OVk1fUFJPR19FTiwgMCk7 Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHJldCkgewo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZXZfZXJyKGRhdGEtPmRl diwgImVycm9yIHJlc2V0dGluZyBudm0gd3JpdGVcbiIpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIGV4aXQ7Cj4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgfQo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGJ5dGVzIC09IHNpemVvZih1MTYpOwo+IAo+IEFzIGFib3ZlLCBtYXliZSBzaXplb2YobGUx NikKPiAKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBvZmZzZXQgKz0gc2l6ZW9m KHUxNik7Cj4gPiArwqDCoMKgwqDCoMKgwqB9Cj4gPiArZXhpdDoKPiA+ICvCoMKgwqDCoMKgwqDC oC8qIFJlc3RvcmUgY2hpcCBjb25maWcgKi8KPiA+ICvCoMKgwqDCoMKgwqDCoGRhdGEtPmNoaXBf aW5mby0+Y2hpcF9jb25maWcoZGF0YSk7Cj4gPiArwqDCoMKgwqDCoMKgwqBtdXRleF91bmxvY2so JmRhdGEtPmxvY2spOwo+ID4gK8KgwqDCoMKgwqDCoMKgcG1fcnVudGltZV9tYXJrX2xhc3RfYnVz eShkYXRhLT5kZXYpOwo+ID4gK8KgwqDCoMKgwqDCoMKgcG1fcnVudGltZV9wdXRfYXV0b3N1c3Bl bmQoZGF0YS0+ZGV2KTsKPiA+ICvCoMKgwqDCoMKgwqDCoHJldHVybiByZXQ7Cj4gPiArfQo+ID4g Kwo+IAo+IApHb3QgaXQsClRoYW5rcyBmb3IgeW91ciB0aW1lLApBbmdlbAoKCg==