Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2308424imu; Fri, 14 Dec 2018 08:59:26 -0800 (PST) X-Google-Smtp-Source: AFSGD/UYUUhovogEtUbNbqivzfam/Y+NgontHptDtha5j8X32fBYFI0PBHk+ajDoli8p9g+tmWJW X-Received: by 2002:a17:902:2b8a:: with SMTP id l10mr3350725plb.70.1544806766042; Fri, 14 Dec 2018 08:59:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544806765; cv=none; d=google.com; s=arc-20160816; b=FNs/rWAxLvFR4GtQ3SJteWOf8lkzjr/Ohgd7Sra0isMGaLLbTJqH5Q/n3sSb4EeeLG +aCZDabMJGKtkg5q5lAznFIGgfLwD3ZnUSBpev7H09BKmjgXaXvJNUmZ6ToyX1tSXdKm fmbyGi+FZq6LqiB7h0TThET65HWCeLAgzwH/BEHxH4piVoYjuT7kNOLtLQLQ3lw8yeO6 uDcKXZhjWrm/id1pxfp0voQjXysyxspJ4Nm1egK+27BEgK0N7NSBd2weuYu30NvT6LVm 7o2+gZRnZeV3281IZ1bfkhMVzojiw4t4xAR8sChlGPvEOMKaFkQrAY6U1MWG0hNeuVkZ nztw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:spamdiagnosticmetadata:spamdiagnosticoutput :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=22NlDsc6H8hXj0ueNZl0Du1AAlOcVxgmUKDVvVbtq3s=; b=iU3sphDN4zahg01GDMVjcJsBUc+Gsz/TpE1qReu4YKXCrezz3fVlkraisttaV44sr+ iu2bZ7m9lf97C35x4g5TP/N1+plh6LcNTFTWArq8gf1Y+O9Ee4woOTsbrMvKcBkTWHK8 5eK+eCd3iHinonJ8FKoZJQugsCLowSLnla2037AP3iEKiihNNEiUyrvj+1zQKcix7VBi RnjYqe5ExJIMicFaEHS0Z5yfzG5GNb0/FFwg+7WNDpZD3t8v6DUi1UNzbCwLgjzMm7wu mV9XQFSlIgfE3xt5WXnEWwWBHUG0RImksxafYCn562Fl9pxVV8dAMAnj/3Jb3I+Yz2VY +iCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ysoft.com header.s=selector1 header.b=ldYZUmwc; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ysoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k15si4407800pgi.99.2018.12.14.08.59.11; Fri, 14 Dec 2018 08:59:25 -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=@ysoft.com header.s=selector1 header.b=ldYZUmwc; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ysoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730083AbeLNQ5m (ORCPT + 99 others); Fri, 14 Dec 2018 11:57:42 -0500 Received: from mail-eopbgr10059.outbound.protection.outlook.com ([40.107.1.59]:48273 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729709AbeLNQ5l (ORCPT ); Fri, 14 Dec 2018 11:57:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ysoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=22NlDsc6H8hXj0ueNZl0Du1AAlOcVxgmUKDVvVbtq3s=; b=ldYZUmwcpWqUGFMufWxMh8GMkCs0Whxbb92VifWIyPcSmSML10lEO8PL7xYneEhmOaRJcIqHuUpVVpKxvQM71lsSOdYV25HJ9u48BFjdzvlGM8IQNlNKILe2w3rBi/RfMoMK/uoNm1jmLw4W6xIwNL1gvy1G6WmgpsmvW92BbeE= Received: from DB7PR04MB4667.eurprd04.prod.outlook.com (52.135.139.13) by DB7PR04MB4396.eurprd04.prod.outlook.com (52.135.137.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1425.20; Fri, 14 Dec 2018 16:57:36 +0000 Received: from DB7PR04MB4667.eurprd04.prod.outlook.com ([fe80::2561:ec02:4e5e:f490]) by DB7PR04MB4667.eurprd04.prod.outlook.com ([fe80::2561:ec02:4e5e:f490%3]) with mapi id 15.20.1425.021; Fri, 14 Dec 2018 16:57:36 +0000 From: =?utf-8?B?Vm9rw6HEjSBNaWNoYWw=?= To: =?utf-8?B?VXdlIEtsZWluZS1Lw7ZuaWc=?= , Thierry Reding CC: "linux-pwm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "kernel@pengutronix.de" Subject: Re: [PATCH 3/3] pwm: imx: Implement get_state() function for hardware readout Thread-Topic: [PATCH 3/3] pwm: imx: Implement get_state() function for hardware readout Thread-Index: AQHUWZHXwmLuwdujO02nf7niUqNv6qV7XvwAgAFwKICAAIhJAIAANmyAgAFbMwA= Date: Fri, 14 Dec 2018 16:57:36 +0000 Message-ID: <7561a6ac-4e6c-e01d-d46b-b572036afd11@ysoft.com> References: <1538403588-68850-1-git-send-email-michal.vokac@ysoft.com> <1538403588-68850-3-git-send-email-michal.vokac@ysoft.com> <20181212105432.GD17654@ulmo> <20181213085213.7k5ihn7bdrtess3g@pengutronix.de> <20181213170000.GA14581@ulmo> <20181213201447.v2ivule5q6knxqyp@pengutronix.de> In-Reply-To: <20181213201447.v2ivule5q6knxqyp@pengutronix.de> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1P18901CA0015.EURP189.PROD.OUTLOOK.COM (2603:10a6:801::25) To DB7PR04MB4667.eurprd04.prod.outlook.com (2603:10a6:5:37::13) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michal.Vokac@ysoft.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [89.24.100.190] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DB7PR04MB4396;6:4UEexXik7frgMAQ/AGIL/L+V7EeYMm6PWKkm2bk3p2BmJW7fuiqJ0hkISDhpANxIgR9zdWo0hntn4ugQYbTDDqfl/X1EOV6QgXdYcxFUv3ir6AQecVYUD82Xk4lAeLlbedyg0K8ocpA8IPXN/sYWQkag267bkfWVqLGaTL2HkpwstCuFeZ0NFCgrS3VVNvcWvdMMUzkYsyWwGgS50Zl2VnV7S0tP1Bht9xQz8MIoWdA9Ia4qQ1I37lypQvbPRUhN2jUFow5JvprUGXh1gqLQg3p/4222KMQOjBtjXwrhdoS/jgv/mcitXBmWO0t1gZulUDWYVA7Q7HOj+eo4ZrcPqReZYui4XJlmVKEZEKyoFCn4yQBJCcGUgB4jRsFszAOb67Bb/mDq9HCcjMjCFRroSEiM4upuZlFsRvUVEJBoXFXIlPSHPRceU90mRDkA04wbt5agvh6Jl8R1JpBTzOeSLQ==;5:Rmc63lj6jLXrqlsDpLz7i3zFJ0RD3tVefaSMKwnv3pHd7RbrZbfweDXiLQNcaeE6cEEXDjJat1HWvQAMlrvTfjbbMYLrO088A7wWNowO1HXBXLOMItZuOVmdxt/V4rOXYt3WmNkD/EgXgQMQrr6+Zk9XIW3WcNMA6mgAjEZN2i8=;7:sVpIw9MRoIxBt+N2j4LyEOMGj8MUJF6zXHbO2Qro8VaOmbKuJZNPdSISpKJWEpf0oT3sXAacTUtsfH2G7yOQH6Lf5BRSZDXXgGOcc4CXfMMoegi54ElpN3D0lCgJyM37J9OvJ5VKb2py5lR4z+UYbw== x-ms-office365-filtering-correlation-id: dfa8d571-6015-4c12-0f34-08d661e53f7e x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020);SRVR:DB7PR04MB4396; x-ms-traffictypediagnostic: DB7PR04MB4396: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(3230021)(999002)(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(3231475)(944501520)(52105112)(148016)(149066)(150057)(6041310)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095);SRVR:DB7PR04MB4396;BCL:0;PCL:0;RULEID:;SRVR:DB7PR04MB4396; x-forefront-prvs: 08864C38AC x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(136003)(39850400004)(346002)(366004)(376002)(189003)(199004)(2906002)(81156014)(8676002)(8936002)(478600001)(72206003)(97736004)(110136005)(54906003)(93886005)(85182001)(316002)(66574011)(71190400001)(3846002)(6116002)(6486002)(14454004)(229853002)(5660300001)(66066001)(71200400001)(6436002)(14444005)(86362001)(4326008)(36756003)(25786009)(6246003)(53936002)(31696002)(256004)(386003)(6506007)(305945005)(7736002)(102836004)(26005)(186003)(11346002)(446003)(68736007)(99286004)(486006)(31686004)(81166006)(6512007)(106356001)(2616005)(105586002)(39060400002)(476003)(52116002)(76176011);DIR:OUT;SFP:1101;SCL:1;SRVR:DB7PR04MB4396;H:DB7PR04MB4667.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: ysoft.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 9GbLmLGfF0klEnWbx1AVAcnMQq+dVuZz5W/mPtdORNezUIQkB9t/5E8wcJw6+Bfhcg1+Yy83eaySPtsmEPjAjRYCm3jwVBmPmKUD+kogeev/IoL/bZNzIm6ymGJTu+IKP6YTXQACxVvesUsjq9TKkPzQ/XTQzSTsfW07a7EhS/ofko9oPQPS2SgUrbfXQ4fkJopXiaBa1gzyGEjQhqbvWi2OQKHc0svjJh9e4E+F8Q4OClyvAO3yGvNck25RslSyccyMWUPyfS6FWqhm805lASHFxi7d4uSba3PUoWTYa0HdKyKUHGDBjAYSOpgHA3ij spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ysoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: dfa8d571-6015-4c12-0f34-08d661e53f7e X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2018 16:57:36.2256 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b5839965-430f-4be2-b282-d7a3149f2b37 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB4396 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gMTMuMTIuMjAxOCAyMToxNCwgVXdlIEtsZWluZS1Lw7ZuaWcgd3JvdGU6PiBPbiBUaHUsIERl YyAxMywgMjAxOCBhdCAwNjowMDowMFBNICswMTAwLCBUaGllcnJ5IFJlZGluZyB3cm90ZToNCj4+ IE9uIFRodSwgRGVjIDEzLCAyMDE4IGF0IDA5OjUyOjEzQU0gKzAxMDAsIFV3ZSBLbGVpbmUtS8O2 bmlnIHdyb3RlOg0KPj4+IE9uIFdlZCwgRGVjIDEyLCAyMDE4IGF0IDExOjU0OjMyQU0gKzAxMDAs IFRoaWVycnkgUmVkaW5nIHdyb3RlOg0KPj4+PiBPbiBNb24sIE9jdCAwMSwgMjAxOCBhdCAwNDox OTo0OFBNICswMjAwLCBNaWNoYWwgVm9rw6HEjSB3cm90ZToNCj4+Pj4+IEltcGxlbWVudCB0aGUg Z2V0X3N0YXRlKCkgZnVuY3Rpb24gYW5kIHNldCB0aGUgaW5pdGlhbCBzdGF0ZSB0byByZWZsZWN0 DQo+Pj4+PiByZWFsIHN0YXRlIG9mIHRoZSBoYXJkd2FyZS4gVGhpcyBhbGxvd3MgdG8ga2VlcCB0 aGUgUFdNIHJ1bm5pbmcgaWYgaXQgd2FzDQo+Pj4+PiBlbmFibGVkIGluIGJvb3Rsb2FkZXIuIEl0 IGlzIHZlcnkgc2ltaWxhciB0byB0aGUgR1BJTyBiZWhhdmlvci4gR1BJTyBwaW4NCj4+Pj4+IHNl dCBhcyBvdXRwdXQgaW4gYm9vdGxvYWRlciBrZWVwIHRoZSBzYW1lIHNldHRpbmcgaW4gTGludXgg dW5sZXNzIGl0IGlzDQo+Pj4+PiByZWNvbmZpZ3VyZWQuDQo+Pj4+Pg0KPj4+Pj4gSWYgd2UgZmlu ZCB0aGUgUFdNIGJsb2NrIGVuYWJsZWQgd2UgbmVlZCB0byBwcmVwYXJlIGFuZCBlbmFibGUgaXRz IHNvdXJjZQ0KPj4+Pj4gY2xvY2sgb3RoZXJ3aXNlIHRoZSBjbG9jayB3aWxsIGJlIGRpc2FibGVk IGxhdGUgaW4gdGhlIGJvb3QgYXMgdW51c2VkLg0KPj4+Pj4gVGhhdCB3aWxsIGxlYXZlIHRoZSBQ V00gaW4gZW5hYmxlZCBzdGF0ZSBidXQgd2l0aCBkaXNhYmxlZCBjbG9jay4gVGhhdCBoYXMNCj4+ Pj4+IGEgc2lkZSBlZmZlY3QgdGhhdCB0aGUgUFdNIG91dHB1dCBpcyBsZWZ0IGF0IGl0cyBjdXJy ZW50IGxldmVsIGF0IHdoaWNoDQo+Pj4+PiB0aGUgY2xvY2sgd2FzIGRpc2FibGVkLiBJdCBpcyB0 b3RhbGx5IG5vbi1kZXRlcm1pbmlzdGljIGFuZCBpdCBtYXkgYmUgTE9XDQo+Pj4+PiBvciBISUdI Lg0KPj4+Pj4NCj4+Pj4+IFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBWb2vDocSNIDxtaWNoYWwudm9r YWNAeXNvZnQuY29tPg0KPj4+Pj4gLS0tDQo+Pj4+PiAgIGRyaXZlcnMvcHdtL3B3bS1pbXguYyB8 IDUzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K Pj4+Pj4gICAxIGZpbGUgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKQ0KPj4+Pg0KPj4+PiBBcHBs aWVkLCB0aGFua3MuDQo+Pj4NCj4+PiBEaWQgeW91IG1pc3MgbXkgZmVlZGJhY2sgZm9yIHRoaXMg cGF0Y2ggb3IgZGlkIHlvdSBjaG9vc2UgdG8gaWdub3JlIGl0Pw0KPj4NCj4+IERvbid0IGhhdmUg YW55dGhpbmcgaW4gbXkgaW5ib3gsIGJ1dCBJIHNlZSB0aGF0IGl0J3MgdGhlcmUgb24gcGF0Y2h3 b3JrLA0KPj4gc28gSSBzdXNwZWN0IGl0IHdhcyBlYXRlbiBieSB0aGUgc3BhbSBmaWx0ZXIuDQo+ IA0KPiA6LXwNCj4gDQo+PiBMZXQgbWUgY29weS1wYXN0ZSBoZXJlIGFuZCBnbyB0aHJvdWdoIGl0 Lg0KPj4NCj4+Pj4gQEAgLTkzLDYgKzk2LDU1IEBAIHN0cnVjdCBpbXhfY2hpcCB7DQo+Pj4+DQo+ Pj4+ICAgI2RlZmluZSB0b19pbXhfY2hpcChjaGlwKSBjb250YWluZXJfb2YoY2hpcCwgc3RydWN0 IGlteF9jaGlwLCBjaGlwKQ0KPj4+Pg0KPj4+PiArc3RhdGljIHZvaWQgaW14X3B3bV9nZXRfc3Rh dGUoc3RydWN0IHB3bV9jaGlwICpjaGlwLA0KPj4+PiArICBzdHJ1Y3QgcHdtX2RldmljZSAqcHdt LCBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkNCj4+Pg0KPj4+IGJyb2tlbiBhbGlnbm1lbnQuDQo+ Pg0KPj4gSSBjYW4gZml4IHRoYXQgdXAsIG5vIG5lZWQgdG8gcmVzZW5kIGZvciB0aGF0Lg0KPiAN Cj4gZmluZS4NCj4gDQo+Pj4+ICt7DQo+Pj4+ICsgc3RydWN0IGlteF9jaGlwICppbXggPSB0b19p bXhfY2hpcChjaGlwKTsNCj4+Pj4gKyB1MzIgcGVyaW9kLCBwcmVzY2FsZXIsIHB3bV9jbGssIHJl dCwgdmFsOw0KPj4+PiArIHU2NCB0bXA7DQo+Pj4+ICsNCj4+Pj4gKyB2YWwgPSByZWFkbChpbXgt Pm1taW9fYmFzZSArIE1YM19QV01DUik7DQo+Pj4+ICsNCj4+Pj4gKyBpZiAodmFsICYgTVgzX1BX TUNSX0VOKSB7DQo+Pj4+ICsgIHN0YXRlLT5lbmFibGVkID0gdHJ1ZTsNCj4+Pj4gKyAgcmV0ID0g Y2xrX3ByZXBhcmVfZW5hYmxlKGlteC0+Y2xrX3Blcik7DQo+Pj4+ICsgIGlmIChyZXQpDQo+Pj4+ ICsgICByZXR1cm47DQo+Pj4+ICsgfSBlbHNlIHsNCj4+Pj4gKyAgc3RhdGUtPmVuYWJsZWQgPSBm YWxzZTsNCj4+Pj4gKyB9DQo+Pj4+ICsNCj4+Pj4gKyBzd2l0Y2ggKEZJRUxEX0dFVChNWDNfUFdN Q1JfUE9VVEMsIHZhbCkpIHsNCj4+Pj4gKyBjYXNlIE1YM19QV01DUl9QT1VUQ19OT1JNQUw6DQo+ Pj4+ICsgIHN0YXRlLT5wb2xhcml0eSA9IFBXTV9QT0xBUklUWV9OT1JNQUw7DQo+Pj4+ICsgIGJy ZWFrOw0KPj4+PiArIGNhc2UgTVgzX1BXTUNSX1BPVVRDX0lOVkVSVEVEOg0KPj4+PiArICBzdGF0 ZS0+cG9sYXJpdHkgPSBQV01fUE9MQVJJVFlfSU5WRVJTRUQ7DQo+Pj4+ICsgIGJyZWFrOw0KPj4+ PiArIGRlZmF1bHQ6DQo+Pj4+ICsgIGRldl93YXJuKGNoaXAtPmRldiwgImNhbid0IHNldCBwb2xh cml0eSwgb3V0cHV0IGRpc2Nvbm5lY3RlZCIpOw0KPj4+DQo+Pj4gU2hvdWxkIHdlIHJldHVybiBh biBlcnJvciBoZXJlPw0KPj4NCj4+IFdlIGNhbid0IHJldHVybiBhbiBlcnJvciBoZXJlIGJlY2F1 c2UgdGhlIGZ1bmN0aW9uIGhhcyBhIHZvaWQgcmV0dXJuDQo+PiB0eXBlLiBJJ20gbm90IHN1cmUg d2hhdCBpdCBtZWFucyBpZiB0aGUgUE9VVEMgaXMgbmVpdGhlciAibm9ybWFsIiBub3INCj4+ICJp bnZlcnRlZCIsIGJ1dCBwZXJoYXBzIGEgZ29vZCBpZGVhIHdvdWxkIGJlIHRvIGRlZmF1bHQgdG8g ZWl0aGVyIG9mDQo+PiB0aG9zZSB0d28gaW4gdGhhdCBjYXNlLCBvciBwZXJoYXBzIGZvcmNpYmx5 IGRpc2FibGUgdGhlIFBXTSBzbyB0aGF0DQo+PiB3ZSBnZXQga25vd24tZ29vZCB2YWx1ZXMgaW4g dGhlIHJlZ2lzdGVycz8NCj4gDQo+IFRoZSBtYW51YWwgc2F5cyAiUFdNIG91dHB1dCBpcyBkaXNj b25uZWN0ZWQiLiBTbyBJIHRoaW5rIHRoZSByaWdodCB0aGluZw0KPiB0byBkbyBpcyB0byBjb25z aWRlciB0aGUgcHdtIGFzIGRpc2FibGVkLiAoQnV0IGNoZWNraW5nIGhvdyB0aGUgb3V0cHV0DQo+ IGFjdHVhbGx5IGJlaGF2ZXMgd291bGQgYmUgZ3JlYXQuKSAoTWF5YmUgdGhpcyBzZXR0aW5nIGlz IGV2ZW4gdGhlDQo+IHNvbHV0aW9uIHRvIG91ciAiTWFrZSB0aGUgb3V0cHV0IGhpZ2gtWiBvbiBk aXNhYmxlIiBkaXNjdXNzaW9uPykNCg0KSSBjaGVja2VkIHRoZSBiZWhhdmlvci4gSXQgY2FuIGJl IHVzZWQgdG8gZGlzY29ubmVjdCB0aGUgb3V0cHV0IGV2ZW4NCmlmIHRoZSBQV00gaXMgZW5hYmxl ZC4gSXQgZG9lcyBub3Qgc29sdmUgdGhlIHByb2JsZW0gd2l0aCB0aGUgTE9XDQpvdXRwdXQgbGV2 ZWwgaW4gZGlzYWJsZWQgc3RhdGUuIFRoaXMgZ2F2ZSBtZSB0aGUgc2FtZSByZXN1bHRzLg0KV2hl biBQV00gaXMgZW5hYmxlZCBhbmQgdGhlIG91dHB1dCBpcyBkaXNjb25uZWN0ZWQgd2l0aCBQT1VU QyA9IDIsDQp0aGUgb3V0cHV0IGxldmVsIGlzIGFsd2F5cyBMT1cgYW5kIHRoZSBEU0UsIE9ERSwg YW5kIFBVUyBwYWQgY29udHJvbA0Kc2V0dGluZ3MgaGF2ZSBubyBlZmZlY3QuIEkgc3VwcG9zZSB0 aGUgbWFpbiBwdXJwb3NlIG9mIHRoaXMgaXMgdG8NCmFsbG93IHRvIHF1aWNrbHkgZW5hYmxlL2Rp c2FibGUgdGhlIG91dHB1dCB3aXRob3V0IHRoZSBuZWVkIHRvIGVuYWJsZS8NCmRpc2FibGUgdGhl IHdob2xlIFBXTSBibG9jay4gU28gd2UgY2FuIG5vdCByZWFsbHkgc2F5IHRoZSBQV00gaXMNCmVu YWJsZWQvZGlzYWJsZWQgaGVyZSBhcyB0aGVyZSBpcyBhbm90aGVyIChFTikgYml0IGluIHRoZSBQ V01DUg0KcmVnaXN0ZXIgdGhhdCBjb250cm9scyB0aGF0Lg0KDQo+PiBJJ20gdGVtcHRlZCBub3Qg dG8gdHJlYXQgdGhpcyBhcyBhIGJsb2NrZXIgYmVjYXVzZSBpdCdzIG5vdCBhY3R1YWxseQ0KPj4g YSBidWcgb3IgYW55dGhpbmcuIFByaW9yIHRvIHRoaXMgcGF0Y2ggd2UgYWxzbyBpZ25vcmUgd2hh dGV2ZXIgdGhpcw0KPj4gZmllbGQgd2FzIHNldCB0by4NCj4gDQo+IFByaW9yIHRvIHRoaXMgcGF0 Y2ggdGhpcyBmaWVsZCB3YXMgbmV2ZXIgcmVhZCBhcyB0aGlzIGlzIG9ubHkgbmVlZGVkIGluDQo+ IC5nZXRfc3RhdGUuIEFuZCBpbiAuYXBwbHkgdGhlIHZhbHVlIGlzIGNvcnJlY3RseSB3cml0dGVu Lg0KPiANCj4+Pj4gKyB9DQo+Pj4+ICsNCj4+Pj4gKyBwcmVzY2FsZXIgPSBNWDNfUFdNQ1JfUFJF U0NBTEVSX0dFVCh2YWwpOw0KPj4+PiArIHB3bV9jbGsgPSBjbGtfZ2V0X3JhdGUoaW14LT5jbGtf cGVyKTsNCj4+Pj4gKyBwd21fY2xrID0gRElWX1JPVU5EX0NMT1NFU1RfVUxMKHB3bV9jbGssIHBy ZXNjYWxlcik7DQo+Pj4+ICsgdmFsID0gcmVhZGwoaW14LT5tbWlvX2Jhc2UgKyBNWDNfUFdNUFIp Ow0KPj4+DQo+Pj4gSXQgd291bGQgYmUgbW9yZSBjYXV0aW9ub3VzIHRvIG5vdCByZWx5IG9uIHRo ZSByZXNlcnZlZCBiaXRzIHRvIHJlYWQgYXMNCj4+PiB6ZXJvLiBTbyBJIHN1Z2dlc3QgdG8gbWFz ayB0aGUgdmFsdWUgd2l0aCAweGZmZmYuDQo+Pg0KPj4gSWYgdGhhdCdzIHdoYXQgdGhlIGRvY3Vt ZW50YXRpb24gc2F5cyBJIHRoaW5rIGl0J3Mgb2theSB0byByZWx5IG9uIGl0Lg0KPj4gQnV0IEkg Y2FuIGFkZCB0aGUgbWFzayBpZiB3ZSB3YW50IHRvIHBsYXkgaXQgZXh0cmEgc2FmZS4NCj4gDQo+ IFRoZSBQRVJJT0QgZmllbGQgb25seSBjb3ZlcnMgYml0cyAwIHRvIDE1IGFuZCB0aGUgdXBwZXIg MTYgYml0cyBvZiB0aGlzDQo+IHJlZ2lzdGVyIGFyZSByZXNlcnZlZC4gVGhlIHJlZ2lzdGVycyBh cmUgZG9jdW1lbnRlZCB0byByZWFkIGFzIDAsIHN0aWxsDQo+IEknZCBwcmVmZXIgdG8gbWFzayB0 aGVtIG91dCBmb3IgbWF4aW1hbCBjb3JyZWN0bmVzcy4NCg0KT0suDQoNCj4+Pj4gKyBwZXJpb2Qg PSB2YWwgPj0gTVgzX1BXTVBSX01BWCA/IE1YM19QV01QUl9NQVggOiB2YWw7DQo+Pj4+ICsNCj4+ Pj4gKyAvKiBQV01PVVQgKEh6KSA9IFBXTUNMSyAvIChQV01QUiArIDIpICovDQo+Pj4+ICsgdG1w ID0gTlNFQ19QRVJfU0VDICogKHU2NCkocGVyaW9kICsgMik7DQo+Pj4+ICsgc3RhdGUtPnBlcmlv ZCA9IERJVl9ST1VORF9DTE9TRVNUX1VMTCh0bXAsIHB3bV9jbGspOw0KPj4+DQo+Pj4gV291bGQg aXQgbWFrZSBzZW5zZSB0byBpbnRyb2R1Y2UgYSBwb2xpY3kgYWJvdXQgaG93IHRvIHJvdW5kIGlu IHRoaXMNCj4+PiBjYXNlPyAoU2ltaWxhcmlseSBmb3IgLmFwcGx5PykgVGhpcyBpcyBvZiBjb3Vy c2Ugb3V0IG9mIHNjb3BlIGZvciB0aGlzDQo+Pj4gcGF0Y2guDQo+Pg0KPj4gSSdtIG5vdCBzdXJl IHdoYXQgeW91IG1lYW5zIGJ5IHBvbGljeS4gVGhlIGFib3ZlIGFscmVhZHkgZG9lcyByb3VuZCB0 bw0KPj4gY2xvc2VzdC4gSXMgdGhhdCBub3QgYW4gYXBwcm9wcmlhdGUgcG9saWN5Pw0KPiANCj4g SSBtZWFuIHRvIGRvY3VtZW50IHRoZSBleHBlY3RhdGlvbiBvZiB0aGUgcHdtIGZyYW1ld29yayBo b3cgdGhlIGRyaXZlcg0KPiBpcyBzdXBwb3NlZCB0byBjb25maWd1cmUgdGhlIGhhcmR3YXJlIHdo ZW4gaXQgc2hvdWxkIHByb2dyYW0gdGhlIFBXTQ0KPiB3aXRoIHNheSBkdXR5X2N5Y2xlPTEwMG5z L3BlcmlvZD0zMDBucyBhbmQgYnV0IHRoZSBoYXJkd2FyZSBjYW4gb25seQ0KPiBpbXBsZW1lbnQg Ym90aCBkdXR5X2N5Y2xlIGFuZCBwZXJpb2QgaW4gc3RlcHMgb2YgM25zLiBTbyB0aGUgKElNSE8p IGdvb2QNCj4gY2FuZGlkYXRlcyBhcmU6DQo+IA0KPiAJZHV0eV9jeWNsZSA9IDk5bnMgLyBwZXJp b2QgPSAyOTducw0KPiAJZHV0eV9jeWNsZSA9IDk5bnMgLyBwZXJpb2QgPSAzMDBucw0KPiAJZHV0 eV9jeWNsZSA9IDEwMm5zIC8gcGVyaW9kID0gMzAwbnMNCj4gCWR1dHlfY3ljbGUgPSAxMDJucyAv IHBlcmlvZCA9IDMwNm5zDQo+IA0KPiBBcyBpdCdzIG5vdCBvYnZpb3VzIHdoaWNoIGlzIHRoZSBi ZXN0IGhlcmUgKG9yIGlzIGl0PykgYW5kIHRha2luZyBpbnRvDQo+IGFjY291bnQgdGhhdCB0aGUg UFdNIHVzZXIgbWlnaHQgY2FyZSwgaXQgd291bGQgYmUgcmlnaHQgdG8gc3BlY2lmeQ0KPiBzb21l dGhpbmcgbGlrZToNCj4gDQo+ICAgIFRoZSBkcml2ZXIgaXMgc3VwcG9zZWQgdG8gY29uZmlndXJl IHRoZSBiaWdnZXN0IGR1dHlfY3ljbGUgdGhhdA0KPiAgICBpcyBub3QgZ3JlYXRlciB0aGFuIHRo ZSByZXF1ZXN0ZWQgZHV0eV9jeWNsZS4gU2ltaWxhcmlseSBpdCBzaG91bGQNCj4gICAgcGljayB0 aGUgYmlnZ2VzdCBwb3NzaWJsZSBwZXJpb2QgdGhhdCBpcyBub3QgZ3JlYXRlciB0aGFuIHRoZQ0K PiAgICByZXF1ZXN0ZWQgcGVyaW9kLg0KPiANCj4gVG8gYWN0dWFsbHkgYWxsb3cgdGhlIHVzZXIg dG8gZmluZCB0aGUgc2V0dGluZyB0aGF0IGhlIG9yIHNoZSBwcmVmZXJzDQo+IHNvbWV0aGluZyBs aWtlIHRoZSBjbGsgZnJhbWV3b3JrIHByb3ZpZGVzIHdpdGggY2xrX3JvdW5kX3JhdGUoKSB3b3Vs ZCBiZQ0KPiBuZWVkZWQgb2YgY291cnNlLg0KPiANCj4gQW5kIGZvciAuZ2V0X3N0YXRlIEknZCBz cGVjaWZ5IHNvbWV0aGluZyBzaW1pbGFyIHRoYXQgZW5zdXJlcyB0aGF0IGluDQo+IHRoZSBzZXF1 ZW5jZQ0KPiANCj4gCW15b3BzLT5nZXRfc3RhdGUoY2hpcCwgcHdtLCBzdGF0ZSk7DQo+IAlteW9w cy0+YXBwbHkoY2hpcCwgcHdtLCBzdGF0ZSk7DQo+IA0KPiB0aGUgbGF0dGVyIGlzIGEgbm9vcC4N Cg0KU291bmRzIGdvb2QuIFdvdWxkIGJlIGdyZWF0IHRvIGZpbmQgc29tZXRoaW5nIGxpa2UgdGhp cyBpbiB0aGUgZG9jcw0Kd2hpbGUgSSB3YXMgaW1wbGVtZW50aW5nIHRoZSAuZ2V0X3N0YXRlLg0K DQpJZiB0aGlzIGlzIG91dCBvZiBzY29wZSBmb3IgdGhpcyBwYXRjaCB0aGVuIHRoZXJlIGFyZSBv bmx5IHR3byBtaW5vcg0KaXNzdWVzIHRvIGZpeCAtIHRoZSBpbmNvcnJlY3QgaW5kZW50YXRpb24g YW5kIHRoZSBtYXNrIGZvciB0aGUgcGVyaW9kDQpyZWdpc3RlciwgcmlnaHQ/DQoNClNvIGdpdmVu IHRoZSBmYWN0IHRoYXQgVGhpZXJyeSBhbHJlYWR5IGFwcGxpZWQgdGhlIHNlcmllcyBJIGNhbiBz ZW5kDQphIHNlcGFyYXRlIHBhdGNoIHdpdGggdGhlc2UgZml4ZXMsIE9LPyBPciB5b3Ugd2lsbCBm aXggaXQgdXAgYWxsDQp5b3Vyc2VsZiwgVGhpZXJyeT8NCg0KQmVzdCByZWdhcmRzLA0KTWljaGFs DQo=