From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FROM_EXCESS_BASE64,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5B589C0044C for ; Mon, 29 Oct 2018 15:54:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EB7702082D for ; Mon, 29 Oct 2018 15:54:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ysoft.com header.i=@ysoft.com header.b="cseNjbHl" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EB7702082D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=ysoft.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727695AbeJ3Anq (ORCPT ); Mon, 29 Oct 2018 20:43:46 -0400 Received: from mail-eopbgr50076.outbound.protection.outlook.com ([40.107.5.76]:59424 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727085AbeJ3Anp (ORCPT ); Mon, 29 Oct 2018 20:43:45 -0400 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=LybIu+telLcJpUAWQSrrjxuC+nGXNLozi41yIcOCW9A=; b=cseNjbHlV/3Sm6rn17s1tWAcJwLix80f5ks03ehmdw4YUA6lmrMzWMXkVgtagCRgbdVkgHFRXUfPex7YkSEiKCLiboZgAwvON2Ffgw5BGdn7BzEnvS0+oqwwpodiiKrS2ns4FDVgnCrVzE2bJsg4z9wn/f01+QsKI5df/jV70M8= Received: from DB7PR04MB4667.eurprd04.prod.outlook.com (52.135.139.13) by DB7PR04MB4857.eurprd04.prod.outlook.com (20.176.234.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1273.18; Mon, 29 Oct 2018 15:54:28 +0000 Received: from DB7PR04MB4667.eurprd04.prod.outlook.com ([fe80::2849:23b4:7b26:a421]) by DB7PR04MB4667.eurprd04.prod.outlook.com ([fe80::2849:23b4:7b26:a421%3]) with mapi id 15.20.1273.027; Mon, 29 Oct 2018 15:54:28 +0000 From: =?utf-8?B?Vm9rw6HEjSBNaWNoYWw=?= To: =?utf-8?B?VXdlIEtsZWluZS1Lw7ZuaWc=?= CC: Thierry Reding , Rob Herring , Mark Rutland , "devicetree@vger.kernel.org" , "linux-pwm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Lukasz Majewski , Fabio Estevam , =?utf-8?B?TG90aGFyIFdhw59tYW5u?= , "kernel@pengutronix.de" Subject: =?utf-8?B?UmU6IFtSQ0bCoFBBVENILHYyLDIvMl0gcHdtOiBpbXg6IENvbmZpZ3VyZSBv?= =?utf-8?Q?utput_to_GPIO_in_disabled_state?= Thread-Topic: =?utf-8?B?W1JDRsKgUEFUQ0gsdjIsMi8yXSBwd206IGlteDogQ29uZmlndXJlIG91dHB1?= =?utf-8?Q?t_to_GPIO_in_disabled_state?= Thread-Index: AQHUYgmcdqbPphssxk6nsYPZEg3OjqUb10cA///wZACAGrOXAA== Date: Mon, 29 Oct 2018 15:54:27 +0000 Message-ID: References: <1539163920-9442-3-git-send-email-michal.vokac@ysoft.com> <20181012085720.GA9451@taurus.defre.kleine-koenig.org> <20181012160854.hmgpokxgsrqdzobx@pengutronix.de> In-Reply-To: <20181012160854.hmgpokxgsrqdzobx@pengutronix.de> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6PR06CA0024.eurprd06.prod.outlook.com (2603:10a6:20b:14::37) 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;DB7PR04MB4857;6:1SMlg/36UCJ/K8FGEEuh07ZDHjlRcTeACgyaIUoAn9E5U1leooFAe9mRdhflkJR17T6AHeVq3ughpcfPJ7sxYBpBaLfg4GVlAb0Pka9UuKqNrctzjlVMwtYAZOWFb2CGkO4HLdhj7zSKjcn/YSLkZRcbr2wXzGk57HFEi+TZcrkq+BQvXHG8YVZvJy77jGabQvpWqbiZUCt3kbxS0KHCSkWhFjE/sbn/GT/g9RsH0ofVFAWiEXR6T/aO58mn3C04oI8uJ+kQxONALYwP90y926mKkBJq8CTFaGM4tej75rDDpm9pOA0FSqPJ30VclNYpLvkNBytgh3OWEPhPVgxZOOzHJsK8nxs3DlrdHdb+83SNuJBOKbh5zPZjlr3Y3ERRfF29oI1WDfn19WAnfNZimy03/YnyUiWK7DfrAX/8ZX/ZlPqyqn9AbtEqOfNJm7EyrK8PmteGcyCj9yIx4Ye4iw==;5:zZL628YTyHDXRTSzRIgctReUhSZ8EcjjB5J/u3rnNJ7KKKoQb9hRtDYsZLFpq4/FEoackkD27B9nL+yc7RVj5IdM+ndKns1r+Cu+TTWlphR0ay028hl9YlT7iCsvKs1LDzJJhaElhIA2eAqnZ87mHvGChSBT9izauC+n2aWF7H8=;7:VGqUDq50GHpxcikqnp0gIeIMtB1piP0LJ6k+rxfwgsg0W40OEp/z+DkLMHLz8a74y9JYHbxIX4TNspy99KIxJhzlBb8EMKKIGdhBYZHnE5K6a8xafcqquBjk9gxcas7ZlqkiUKKaLKBYRs9+8OzTSg== x-ms-office365-filtering-correlation-id: d3de0bbb-17e8-4fc3-203c-08d63db6ce7b x-microsoft-antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);SRVR:DB7PR04MB4857; x-ms-traffictypediagnostic: DB7PR04MB4857: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040522)(2401047)(5005006)(8121501046)(3231382)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(148016)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(201708071742011)(7699051)(76991095);SRVR:DB7PR04MB4857;BCL:0;PCL:0;RULEID:;SRVR:DB7PR04MB4857; x-forefront-prvs: 084080FC15 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(346002)(136003)(376002)(39850400004)(366004)(52314003)(199004)(189003)(51444003)(316002)(31696002)(86362001)(5250100002)(6916009)(6246003)(305945005)(7736002)(446003)(11346002)(186003)(71190400001)(93886005)(8936002)(106356001)(2616005)(476003)(966005)(71200400001)(72206003)(486006)(85182001)(105586002)(76176011)(81156014)(81166006)(99286004)(2906002)(6512007)(54906003)(6306002)(14454004)(39060400002)(4744004)(26005)(6116002)(14444005)(256004)(66574009)(7416002)(53936002)(36756003)(4326008)(102836004)(6436002)(25786009)(31686004)(3846002)(6486002)(5660300001)(345774005)(97736004)(66066001)(229853002)(2900100001)(52116002)(478600001)(53546011)(386003)(6506007)(68736007)(142933001);DIR:OUT;SFP:1101;SCL:1;SRVR:DB7PR04MB4857;H:DB7PR04MB4667.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: ysoft.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: UCu03rs9jS6s+msVef8V6/7TcmyZ4jLlIY15dcM3HC0p9b8s+sqsuRzfmJMJ2fTK+vveGX0HgXyaRfqqNZ8JxCARUYwk+rhJlk9SgrHFfrKP9DDvSV9i33v3KQuAVM3yk9YDuBMK0sD6394fTQuHcYATtRd3tyRtQ8rEo1r6Nmco70TdRsrsibKlF9AjcIaMr8poYTkOqNcRb5cGf4L2yxkN0zkXSFsrgLOGmGGZYGn7NDIgA1nlxrInYd5YirFXjKneCjD6Y30qbyUanBJpdUs9n2/PHGRD8ODQ5U2sPG/h4ymtIT0EeM/YPbpufSxbPYbmIcJbJAlRVIgLwtDk5LvAQDMe6/kOtOk07Sgy5Eg= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <7C58A239328E5343AB3FB3D01431975B@eurprd04.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ysoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3de0bbb-17e8-4fc3-203c-08d63db6ce7b X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Oct 2018 15:54:27.9834 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b5839965-430f-4be2-b282-d7a3149f2b37 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB4857 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gMTIuMTAuMjAxOCAxODowOCwgVXdlIEtsZWluZS1Lw7ZuaWcgd3JvdGU6DQo+IEhlbGxvLA0K PiANCj4gT24gRnJpLCBPY3QgMTIsIDIwMTggYXQgMDM6MDQ6NDhQTSArMDAwMCwgVm9rw6HEjSBN aWNoYWwgd3JvdGU6DQo+PiBPbiAxMi4xMC4yMDE4IDEwOjU3LCBVd2UgS2xlaW5lLUvDtm5pZyB3 cm90ZToNCj4+PiBPbiBXZWQsIE9jdCAxMCwgMjAxOCBhdCAwOTozMzoyNkFNICswMDAwLCBWb2vD ocSNIE1pY2hhbCB3cm90ZToNCj4+Pj4gTm9ybWFsbHkgdGhlIFBXTSBvdXRwdXQgaXMgaGVsZCBM T1cgd2hlbiBQV00gaXMgZGlzYWJsZWQuIFRoaXMgY2FuIGNhdXNlDQo+Pj4+IHByb2JsZW1zIHdo ZW4gaW52ZXJ0ZWQgUFdNIHNpZ25hbCBwb2xhcml0eSBpcyBuZWVkZWQuIFdpdGggdGhpcyBiZWhh dmlvcg0KPj4+PiB0aGUgY29ubmVjdGVkIGNpcmN1aXQgaXMgZmVkIGJ5IDEwMCUgZHV0eSBjeWNs ZSBpbnN0ZWFkIG9mIGJlaW5nIHNodXQtb2ZmLg0KPj4+Pg0KPj4+PiBBbGxvdyB1c2VycyB0byBk ZWZpbmUgYSAiZ3BpbyIgYW5kIGEgInB3bSIgcGluY3RybCBzdGF0ZXMuIFRoZSBwd20gcGluY3Ry bA0KPj4+PiBzdGF0ZSBpcyB0aGVuIHNlbGVjdGVkIHdoZW4gUFdNIGlzIGVuYWJsZWQgYW5kIHRo ZSBncGlvIHBpbmN0cmwgc3RhdGUgaXMNCj4+Pj4gc2VsZWN0ZWQgd2hlbiBQV00gaXMgZGlzYWJs ZWQuIEFsc28gYWRkIGEgbmV3IHB3bS1ncGlvcyBHUElPIHRoYXQgaXMgdXNlZA0KPj4+PiB0byBk cml2ZSB0aGUgb3V0cHV0IGluIHRoZSBncGlvIHN0YXRlLg0KPj4+Pg0KPj4+PiBJZiBhbGwgdGhl IHBpbmN0cmwgc3RhdGVzIGFuZCB0aGUgcHdtLWdwaW9zIGFyZSBub3QgY29ycmVjdGx5IHNwZWNp ZmllZA0KPj4+PiBpbiBEVCB0aGUgbG9naWMgd2lsbCB3b3JrIGFzIGJlZm9yZS4NCj4+Pj4NCj4+ Pj4gQXMgYW4gZXhhbXBsZSwgd2l0aCB0aGlzIHBhdGNoIGEgUFdNIGNvbnRyb2xsZWQgYmFja2xp Z2h0IHdpdGggaW52ZXJzZWQNCj4+Pj4gc2lnbmFsIHBvbGFyaXR5IGNhbiBiZSB1c2VkIGluIGZ1 bGwgYnJpZ2h0bmVzcyByYW5nZS4gV2l0aG91dCB0aGlzIHBhdGNoDQo+Pj4+IHRoZSBiYWNrbGln aHQgY2FuIG5vdCBiZSB0dXJuZWQgb2ZmIGFzIGJyaWdodG5lc3MgPSAwIGRpc2FibGVzIHRoZSBQ V00NCj4+Pj4gYW5kIHRoYXQgaW4gdHVybiBzZXQgUFdNIG91dHB1dCBMT1csIHRoYXQgaXMgZnVs bCBicmlnaHRuZXNzLg0KPj4+Pg0KPj4+PiBPdXRwdXQgb2YgdGhlIFBXTSB3aXRoICJkZWZhdWx0 IiBwaW5jdHJsIGFuZCB3aXRoICJwd20iKyJncGlvIiBwaW5jdHJsOg0KPj4+Pg0KPj4+PiArLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rDQo+Pj4+IHwgQWZ0ZXIgcmVzZXQgIHwgQm9vdGxvYWRlciB8IExpbnV4IHBp bmN0cmwgfCBVc2VyIChzeXNmcywgYmFja2xpZ2h0Li4pIHwNCj4+Pj4gfCAxMDBrIHB1bGwtdXAg fCAobm90IHVzZWQpIHwgICAgICAgICAgICAgICB8ICAgZW5hYmxlICAgIHwgICBkaXNhYmxlICAg fA0KPj4+PiArLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+Pj4+ICAgIF9fX19fX19fX19fX19fX19fX19fX19f X19fXyAgICBkZWZhdWx0ICAgICAgICBfICAgXyAgIF8NCj4+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfF9fX19fX19fX19fX19fX19ffCB8X3wgfF98IHxffF9fX19fX19fX19fX18N Cj4+Pj4NCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHdtICsgZ3Bpbw0K Pj4+PiAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgXyAg IF8gICBfICAgX19fX19fX19fX19fXw0KPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfF98IHxffCB8X3wgfF98DQo+Pj4NCj4+PiBJIHdhcyBtYWRlIGF3 YXJlIG9mIHRoaXMgcGF0Y2ggYnkgVGhpZXJyeSB3aGlsZSBkaXNjdXNzaW9uIGFib3V0IGEgcGF0 Y2gNCj4+PiBvcHBvcnR1bml0eS4gSSBhbHJlYWR5IHBvaW50ZWQgb3V0IHNvbWUgc3R1ZmYgSSBk b24ndCBsaWtlIGFib3V0IHRoaXMNCj4+PiBwYXRjaCBpbiB0aGUgcmVwZWN0aXZlIHRocmVhZCwg YnV0IEkgcmVwZWF0IGl0IGhlcmUgdG8gaGF2ZSBpdCBhdCB0aGUNCj4+PiByaWdodCBwbGFjZS4N Cj4+DQo+PiBUaGFuayB5b3UgZm9yIHRha2luZyB0aW1lIHRvIGNvbW1lbnQgb24gdGhpcyBvbmUg YXMgd2VsbCBVd2UuDQo+Pg0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgVm9rw6HEjSA8bWlj aGFsLnZva2FjQHlzb2Z0LmNvbT4NCj4+Pj4gLS0tDQo+Pj4+IENoYW5nZXMgaW4gdjI6DQo+Pj4+ ICAgIC0gVXRpbGl6ZSB0aGUgInB3bSIgYW5kICJncGlvIiBwaW5jdHJsIHN0YXRlcy4NCj4+Pj4g ICAgLSBVc2UgdGhlIHB3bS1ncGlvcyBzaWduYWwgdG8gZHJpdmUgdGhlIG91dHB1dCBpbiAiZ3Bp byIgcGluY3RybCBzdGF0ZS4NCj4+Pj4gICAgLSBTZWxlY3QgdGhlIHJpZ2h0IHBpbmN0cmwgc3Rh dGUgaW4gcHJvYmUuDQo+Pj4+DQo+Pj4+ICAgIGRyaXZlcnMvcHdtL3B3bS1pbXguYyB8IDg2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4+PiAg ICAxIGZpbGUgY2hhbmdlZCwgODYgaW5zZXJ0aW9ucygrKQ0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9wd20vcHdtLWlteC5jIGIvZHJpdmVycy9wd20vcHdtLWlteC5jDQo+Pj4+IGlu ZGV4IDZjZDNiNzIuLjM1MDIxMjMgMTAwNjQ0DQo+Pj4+IC0tLSBhL2RyaXZlcnMvcHdtL3B3bS1p bXguYw0KPj4+PiArKysgYi9kcml2ZXJzL3B3bS9wd20taW14LmMNCj4+Pj4gQEAgLTEwLDExICsx MCwxMyBAQA0KPj4+PiAgICAjaW5jbHVkZSA8bGludXgvY2xrLmg+DQo+Pj4+ICAgICNpbmNsdWRl IDxsaW51eC9kZWxheS5oPg0KPj4+PiAgICAjaW5jbHVkZSA8bGludXgvZXJyLmg+DQo+Pj4+ICsj aW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPg0KPj4+PiAgICAjaW5jbHVkZSA8bGludXgv aW8uaD4NCj4+Pj4gICAgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KPj4+PiAgICAjaW5jbHVk ZSA8bGludXgvbW9kdWxlLmg+DQo+Pj4+ICAgICNpbmNsdWRlIDxsaW51eC9vZi5oPg0KPj4+PiAg ICAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+DQo+Pj4+ICsjaW5jbHVkZSA8bGludXgvcGlu Y3RybC9jb25zdW1lci5oPg0KPj4+PiAgICAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNl Lmg+DQo+Pj4+ICAgICNpbmNsdWRlIDxsaW51eC9wd20uaD4NCj4+Pj4gICAgI2luY2x1ZGUgPGxp bnV4L3NsYWIuaD4NCj4+Pj4gQEAgLTkyLDEwICs5NCw0NSBAQCBzdHJ1Y3QgaW14X2NoaXAgew0K Pj4+PiAgICAJdm9pZCBfX2lvbWVtCSptbWlvX2Jhc2U7DQo+Pj4+ICAgIA0KPj4+PiAgICAJc3Ry dWN0IHB3bV9jaGlwCWNoaXA7DQo+Pj4+ICsNCj4+Pj4gKwlzdHJ1Y3QgcGluY3RybCAqcGluY3Ry bDsNCj4+Pj4gKwlzdHJ1Y3QgcGluY3RybF9zdGF0ZSAqcGluY3RybF9waW5zX2dwaW87DQo+Pj4+ ICsJc3RydWN0IHBpbmN0cmxfc3RhdGUgKnBpbmN0cmxfcGluc19wd207DQo+Pj4+ICsJc3RydWN0 IGdwaW9fZGVzYyAqcHdtX2dwaW9kOw0KPj4+DQo+Pj4gVGhlIHBpbmN0cmwgZnJhbWV3b3JrIGFs cmVhZHkga25vd3MgYWJvdXQgImluaXQiIGFuZCAiZGVmYXVsdCIuIFRoZXNlDQo+Pj4gc2hvdWxk IGJlIGVub3VnaC4gaS5lLiAiaW5pdCIgY29uZmlndXJlcyBhcyBncGlvIGFuZCAiZGVmYXVsdCIg YWxzIHB3bS4NCj4+DQo+PiBUaGF0IGlzIHRvdGFsbHkgbmV3IGluZm9ybWF0aW9uIGZvciBtZS4g SSd2ZSBuZXZlciBzZWVuIGFueSB1c2FnZSBvZg0KPj4gImluaXQiIHBpbmN0cmwgc3RhdGUgYmVm b3JlLiBUaGUgdG90YWwgbnVtYmVyIG9mIHVzZXJzIGlzIDYgKHJvY2tjaGlwKQ0KPj4gc28gdGhh dCBleHBsYWlucyBhIGxvdC4NCj4+DQo+PiBJIHRoaW5rIHRoYXQgaXQgd291bGQgbm90IHdvcmsg dGhvdWdoLiBUaGUgYmFzaWMgaWRlYSBiZWhpbmQgbXkNCj4+IHNvbHV0aW9uIGlzIHRoYXQgdGhl IHBpbmN0cmwgZHJpdmVyIGRvZXMgbm90IGtub3cgd2hhdCBpcyB0aGUgY29ycmVjdA0KPj4gcGlu IGNvbmZpZ3VyYXRpb24gYXQgcHJvYmUgd2hlcmVhcyB0aGUgcHdtLWlteCBkcml2ZXIgZG9lcy4N Cj4+DQo+PiBXaXRoIHRoZSAiaW5pdCIgYW5kICJkZWZhdWx0IiBzdGF0ZXMgdGhlIHBpbmN0cmwg ZHJpdmVyIHdpbGwgYWx3YXlzDQo+PiBzZWxlY3QgdGhlICJkZWZhdWx0IiBpZiBpdCBmaW5kIHRo ZSBwaW5zIGluICJpbml0IiBzdGF0ZS4NCj4+DQo+PiAJaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5j b20vbGludXgvbGF0ZXN0L3NvdXJjZS9kcml2ZXJzL3BpbmN0cmwvY29yZS5jI0wxNDY5DQo+Pg0K Pj4gQnV0IHdlIHdhbnQgdGhlIHBpbnMgdG8gc3RheSBpbiB0aGUgImluaXQiIEdQSU8gc3RhdGUg dW5sZXNzIGEgY2xpZW50DQo+PiBlbmFibGVzIHRoZSBQV00uDQo+IA0KPiBOb3RlIEkgZG9uJ3Qg a25vdyB0aGlzIHZlcnkgd2VsbCBlaXRoZXIuIFdoYXQgc2hvdWxkIHdvcmsgdGhlbiBpcyB0bw0K PiBoYXZlICJpbml0IiBhcyBHUElPIGFuZCAiYWN0aXZlIiBhcyBQV00uIFdlbGwsIHRob3VnaCB0 aGlzIGJyZWFrcyBpZiB5b3UNCj4gaW50ZW5kIHRvIHByb2JlIGEgcnVubmluZyBwd20gd2l0aG91 dCBzdG9wcGluZyBpdC4NCg0KSSdtIG5vdCBzdXJlIHdoYXQgeW91IG1lYW4gYnkgImFjdGl2ZSIu IEkgdHJpZWQgdG8gZmluZCBtb3JlIGluZm8gYWJvdXQNCnRoYXQgYW5kIGl0IGxvb2tzIGxpa2Ug aXQgaXMgbm90IGEgbmF0aXZlbHkgc3VwcG9ydGVkIHBpbmN0cmwgc3RhdGUuDQpPbmx5ICJpbml0 IiwgImRlZmF1bHQiIGFuZCAic2xlZXAiIGFyZSwgcmlnaHQ/IEkgY291bGQgbm90IGZpbmQgYW55 IGN1cnJlbnQNCnVzZXJzIG9mICJhY3RpdmUiLiBGZXcgVEkgZHJhNyBib2FyZHMgcHJldGVuZCB0 byB1c2UgaXQgZm9yIGRjYW4xIHBpbmN0cmwNCmJ1dCBJIGRpZCBub3QgZmluZCBhbnkgY29kZSBo YW5kbGluZyB0aGF0IHN0YXRlLg0KDQpPciBkbyB5b3UgcHJvcG9zZSB0byByZW5hbWUgd2hhdCBJ IGNhbGwgInB3bSIgc3RhdGUgdG8gImFjdGl2ZSI/DQoNCkFueXdheSwgYXMgeW91IHNhaWQgLSB0 aGlzIHN0aWxsIGRvZXMgbm90IHdvcmsgYXMgSSB3b3VsZCBsaWtlIHRvIGhhdmUNCmFuIG9wdGlv biBub3QgdG8gc3RvcCBQV00gdGhhdCBpcyBhbHJlYWR5IHJ1bm5pbmcuDQoNCkFzIGEgc2lkZSBu b3RlIC0gd2hpbGUgZ3JlcGluZyB0aGUgImFjdGl2ZSIgc3RhdGUsIEkgZm91bmQNCmEgcHdtLXJl bmVzYXMtdHB1IGRyaXZlciB0aGF0IGlzIGRvaW5nIHNvbWV0aGluZyB2ZXJ5ICJwaW5jdHJsLWlz aCIgdG8NCnN3aXRjaCBiZXR3ZWVuIHBpbiBzdGF0ZXMuIFRob3VnaCB0aGUgUFdNIGNoaXAgaGFz IGEgYnVpbHQtaW4gSFcgc3VwcG9ydA0KZm9yIHRoYXQuDQoNCglodHRwczovL2VsaXhpci5ib290 bGluLmNvbS9saW51eC9sYXRlc3Qvc291cmNlL2RyaXZlcnMvcHdtL3B3bS1yZW5lc2FzLXRwdS5j I0wxMDgNCg0KPj4+PiAgICB9Ow0KPj4+PiAgICANCj4+Pj4gKw0KPj4+PiAgICAjZGVmaW5lIHRv X2lteF9jaGlwKGNoaXApCWNvbnRhaW5lcl9vZihjaGlwLCBzdHJ1Y3QgaW14X2NoaXAsIGNoaXAp DQo+Pj4+ICAgIA0KPj4+PiArc3RhdGljIGludCBpbXhfcHdtX2luaXRfcGluY3RybF9pbmZvKHN0 cnVjdCBpbXhfY2hpcCAqaW14X2NoaXAsDQo+Pj4+ICsJCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpDQo+Pj4+ICt7DQo+Pj4+ICsJaW14X2NoaXAtPnBpbmN0cmwgPSBkZXZtX3BpbmN0cmxf Z2V0KCZwZGV2LT5kZXYpOw0KPj4+PiArCWlmICghaW14X2NoaXAtPnBpbmN0cmwgfHwgSVNfRVJS KGlteF9jaGlwLT5waW5jdHJsKSkgew0KPj4+PiArCQlkZXZfaW5mbygmcGRldi0+ZGV2LCAiY2Fu IG5vdCBnZXQgcGluY3RybFxuIik7DQo+Pj4+ICsJCXJldHVybiBQVFJfRVJSKGlteF9jaGlwLT5w aW5jdHJsKTsNCj4+Pj4gKwl9DQo+Pj4+ICsNCj4+Pj4gKwlpbXhfY2hpcC0+cGluY3RybF9waW5z X3B3bSA9IHBpbmN0cmxfbG9va3VwX3N0YXRlKGlteF9jaGlwLT5waW5jdHJsLA0KPj4+PiArCQkJ InB3bSIpOw0KPj4+PiArCWlteF9jaGlwLT5waW5jdHJsX3BpbnNfZ3BpbyA9IHBpbmN0cmxfbG9v a3VwX3N0YXRlKGlteF9jaGlwLT5waW5jdHJsLA0KPj4+PiArCQkJImdwaW8iKTsNCj4+Pj4gKwlp bXhfY2hpcC0+cHdtX2dwaW9kID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoJnBkZXYtPmRldiwg InB3bSIsDQo+Pj4+ICsJCQlHUElPRF9JTik7DQo+Pj4+ICsNCj4+Pj4gKwlpZiAoUFRSX0VSUihp bXhfY2hpcC0+cHdtX2dwaW9kKSA9PSAtRVBST0JFX0RFRkVSKSB7DQo+Pj4NCj4+PiBZb3UgbXVz dCBub3QgdXNlIFBUUl9FUlIgb24gYSB2YWx1ZSB0aGF0IG1pZ2h0IG5vdCBjb250YWluIGFuIGVy cm9yDQo+Pj4gcG9pbnRlci4NCj4+DQo+PiBPSywgdGhhbmsgeW91IGZvciB2YWx1YWJsZSBpbmZv Lg0KPj4gU28gaXQgc2VlbXMgbGlrZSB0aGUgSTJDIGZvbGtzIGFyZSBpbiB0cm91YmxlcyBhcyB3 ZWxsOg0KPj4NCj4+IAlodHRwczovL2VsaXhpci5ib290bGluLmNvbS9saW51eC9sYXRlc3Qvc291 cmNlL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaW14LmMjTDk5Ng0KPiANCj4gY29ycmVjdC4gSSBj YW5ub3QgZmluZCB0aGlzIGRvY3VtZW50ZWQgdGhvdWdoLg0KPiANCj4+Pj4gKwkJICogcGluY3Ry bCB0byBzd2l0Y2ggdGhlIG91dHB1dCBwaW4gdG8gR1BJTyBmdW5jdG9uIGFuZCBrZWVwDQo+Pj4+ ICsJCSAqIHRoZSBvdXRwdXQgYXQgdGhlIHNhbWUgbGV2ZWwgYXMgZm9yIGR1dHktY3ljbGUgPSAw Lg0KPj4+DQo+Pj4gSXMgaXQgb2J2aW91cyB0aGF0IHVzaW5nIGEgR1BJTyBpcyBtb3JlIGVmZmlj aWVudC9iZXR0ZXIvd29ydGggdGhlDQo+Pj4gY29tcGxleGl0eSB0aGFuIGp1c3QgZW5hYmxpbmcg dGhlIFBXTSB3aXRoIGR1dHktY3ljbGUgMCBhbmQgdGhlIHJpZ2h0DQo+Pj4gcG9sYXJpdHk/DQo+ Pg0KPj4gVG8gbWUsIGl0IGRvZXMgbW9yZSB0aGFuIGp1c3Qgc2V0dGluZyBkdXR5LWN5Y2xlID0g MC4gSSB0aGluayB0aGF0IHRoZQ0KPj4gdXNlciBleHBlY3QgdG8gZmluZCB0aGUgUFdNIGNoaXAg aW4gZGlzYWJsZWQgc3RhdGUgYWZ0ZXIgdGhpcy4gU28gdGhhdA0KPj4gd2hlbiB5b3UgcmVhZCB0 aGUgSFcgcmVnaXN0ZXJzIHlvdSBzZWUgdGhlIGNoaXAgaXMgZGlzYWJsZWQuDQo+IA0KPiBUaGUg UFdNIEFQSSB1c2VyIGRvZXNuJ3QgKGhhdmUgdG8pIGNhcmUgaG93IHRoZSBsb3dsZXZlbCBkcml2 ZXINCj4gaW1wbGVtZW50cyB0aGUgLmRpc2FibGUoKSBjYWxsYmFjay4NCg0KU3VyZSwgSSBhZ3Jl ZSB0aGUgUFdNIEFQSSBkb2Vzbid0IGNhcmUuIFdoYXQgSSB3YW50ZWQgdG8gc2F5IGlzIHRoYXQg SSwNCmFzIGEgcmVhbCBwZXJzb24vdXNlci9kZXZlbG9wZXIga2luZCBvZiBleHBlY3QgdGhlIFBX TSBIVyB0byBiZSByZWFsbHkNCmRpc2FibGVkIHdoZW4gSSBkbyAkKGVjaG8gMCA+IHB3bTAvZW5h YmxlZCkgYXMgSSBrbm93IHRoZSBIVyBpcyBjYXBhYmxlDQpvZiBiZWluZyBkaXNhYmxlZC4gQnV0 IHllYWgsIGJldHRlciBpcyBub3QgdG8gZXhwZWN0IGFueXRoaW5nLg0KDQo+IEkgcGVyc29uYWxs eSB3b3VsZCBwcmVmZXIgdG8ga2VlcCB0aGUgZHJpdmVyIHNpbXBsZSAod2l0aG91dCBwaW5jdHJs IGFuZA0KPiBncGlvIHN0dWZmIHdoaWNoIGFsc28gc2ltcGxpZmllcyBtYXR0ZXJzIGZvciBkdHMg YXV0aG9ycykgYW5kIHNwZW5kIHRoYXQNCj4gbGl0dGxlIGVuZXJneSBrZWVwaW5nIHRoZSBIVyBv bi4NCj4gICANCj4+PiBUaGVyZSBtaWdodCBiZSBtZWNoYW5pc21zIGluIHBpbmNvbnRyb2wgdGhh dCBhdXRvbWF0aWNhbGx5IG11eCB0aGUgcGluDQo+Pj4gaWYgaXQncyBjb25maWd1cmVkIGFzIGdw aW8sIEkgZGlkbid0IGZvbGxvdyB0aGUgZGV0YWlscyB0aG91Z2guDQo+Pj4NCj4+PiBBbHNvIGl0 IHNob3VsZCBiZSBwb3NzaWJsZSB0byBjb25maWd1cmUgdGhlIEdQSU8gYXMgb3V0cHV0IGltbWVk aWF0bHkuDQo+Pj4gSWYgdGhlIHBpbm11eGluZyBpcyBzZXQgdG8gdGhlIFBXTSBmdW5jdGlvbiB0 aGlzIGRvZXNuJ3QgaGF2ZSBhIHZpc2libGUNCj4+PiBzaWRlIGVmZmVjdC4NCj4+DQo+PiBUaGlz IGNvdWxkIGJlIHRoZSBmaXJzdCB0aW1lIHRoYXQgd2Ugd2FudCB0byBkaXNhYmxlIHRoZSBQV00g YXMgeW91DQo+PiBtaWdodCBzdGFydCB3aXRoIFBXTSBlbmFibGVkIGZyb20gcHJvYmUuIEFuZCBo ZW5jZSB0aGUgR1BJTyBpcyBzdGlsbA0KPj4gY29uZmlndXJlZCBhcyBpbnB1dC4NCj4gDQo+IEkg ZmFpbCB0byBmb2xsb3cgeW91ciBjYXNlLiBEbyB5b3UgbWVhbiB0aGUgcHdtIGlzIGFscmVhZHkg cnVubmluZyB3aGVuDQo+IHRoZSBkcml2ZXIgcHJvYmVzPyBUaGVuIGl0IGlzIHNhdmUgdG8gc2V0 IHRoZSBncGlvIHRvIG91dHB1dCBhcyB0aGlzIGhhcw0KPiBubyBlZmZlY3QgYXMgbG9uZyBhcyB0 aGUgcGluIGlzIG11eGVkIGluIGl0cyBwd20gZnVuY3Rpb24uDQoNClNvcnJ5LCBJIGFkbWl0IG15 IHNraWxscyB0byBleHBsYWluIHRoaW5ncyBpbiBFbmdsaXNoIGFyZSBub3QgdGhlIGJlc3QuDQpN YXliZSBJIG1pc3VuZGVyc3Rvb2Qgd2hhdCB5b3UgbWVhbnQgYnkgImNvbmZpZ3VyZSB0aGUgR1BJ TyBhcyBvdXRwdXQNCmltbWVkaWF0ZWx5Ii4gSSByZWFkIHRoYXQgYXM6ICJZb3UgZG8gbm90IG5l ZWQgZ3Bpb2Rfc2V0X3ZhbHVlKDApLCB1c2UNCnBpbmN0cmxfc2VsZWN0X3N0YXRlKGdwaW8pIHN0 cmFpZ2h0IGF3YXkuIi4NCg0KTm93IHdoZW4gSSB0aGluayBhYm91dCB0aGF0IGFnYWluIC0geW91 IGFyZSByaWdodC4NCkkgYWN0dWFsbHkgZGlkIGl0IGxpa2UgdGhhdCBpbiB2MS4gQnV0IEkgZGlk IG5vdCB1c2UgcHdtLWdwaW9zIGF0IGFsbC4NCkkgd2FzIHJlbHlpbmcgb24gdGhlIGlucHV0IGFu ZCBwdWxsLXVwIHNldHRpbmcgZnJvbSByZXNldC4gQnV0IHRoYXQgaXMNCm5vdCByaWdodCBhcyB0 aGUgYm9vdGxvYWRlciBtaWdodCBjaGFuZ2UgaXQuDQoNCk5vdywgd2hlbiBJIHVzZSBkZXZtX2dw aW9kX2dldF9vcHRpb25hbCgicHdtIiwgR1BJT0RfSU4pLCBpdCBpcyBlbnN1cmVkDQp0aGF0IHRo ZSBwaW4gaXMgY29uZmlndXJlZCBhcyBpbnB1dCBzbyB0aGUgcHVsbC11cCBrZWVwcyB0aGUgcmln aHQgbGV2ZWwuDQoNCj4+Pj4gKwkJCXBpbmN0cmxfc2VsZWN0X3N0YXRlKGlteC0+cGluY3RybCwN Cj4+Pj4gKwkJCQkJaW14LT5waW5jdHJsX3BpbnNfZ3Bpbyk7DQo+Pj4NCj4+PiBVc3VhbGx5IGFs aWduIGZ1bmN0aW9uIGFyZ3VtZW50cyB0byB0aGUgb3BlbmluZyAoLg0KPj4NCj4+IE9vcHMsIEkg d2lsbCBmaXggdGhvc2UuIFRoZXJlIGlzIG1vcmUgdGhhbiB0aGlzIG9uZS4uDQo+PiAgICANCj4+ Pj4gKwkJfQ0KPj4+PiArDQo+Pj4+ICAgIAkJd3JpdGVsKDAsIGlteC0+bW1pb19iYXNlICsgTVgz X1BXTUNSKTsNCj4+Pj4gICAgDQo+Pj4+ICAgIAkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGlteC0+ Y2xrX3Blcik7DQo+Pj4+IEBAIC0zNTQsNiArNDE1LDcgQEAgc3RhdGljIGludCBpbXhfcHdtX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+Pj4+ICAgIAljb25zdCBzdHJ1Y3Qg b2ZfZGV2aWNlX2lkICpvZl9pZCA9DQo+Pj4+ICAgIAkJCW9mX21hdGNoX2RldmljZShpbXhfcHdt X2R0X2lkcywgJnBkZXYtPmRldik7DQo+Pj4+ICAgIAljb25zdCBzdHJ1Y3QgaW14X3B3bV9kYXRh ICpkYXRhOw0KPj4+PiArCXN0cnVjdCBwd21fc3RhdGUgY3N0YXRlOw0KPj4+PiAgICAJc3RydWN0 IGlteF9jaGlwICppbXg7DQo+Pj4+ICAgIAlzdHJ1Y3QgcmVzb3VyY2UgKnI7DQo+Pj4+ICAgIAlp bnQgcmV0ID0gMDsNCj4+Pj4gQEAgLTM4NSw2ICs0NDcsMTAgQEAgc3RhdGljIGludCBpbXhfcHdt X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+Pj4+ICAgIAkJaW14LT5jaGlw Lm9mX3B3bV9uX2NlbGxzID0gMzsNCj4+Pj4gICAgCX0NCj4+Pj4gICAgDQo+Pj4+ICsJcmV0ID0g aW14X3B3bV9pbml0X3BpbmN0cmxfaW5mbyhpbXgsIHBkZXYpOw0KPj4+PiArCWlmIChyZXQpDQo+ Pj4+ICsJCXJldHVybiByZXQ7DQo+Pj4+ICsNCj4+Pj4gICAgCXIgPSBwbGF0Zm9ybV9nZXRfcmVz b3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOw0KPj4+PiAgICAJaW14LT5tbWlvX2Jhc2Ug PSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcik7DQo+Pj4+ICAgIAlpZiAoSVNf RVJSKGlteC0+bW1pb19iYXNlKSkNCj4+Pj4gQEAgLTM5NCw2ICs0NjAsMjYgQEAgc3RhdGljIGlu dCBpbXhfcHdtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+Pj4+ICAgIAlp ZiAocmV0IDwgMCkNCj4+Pj4gICAgCQlyZXR1cm4gcmV0Ow0KPj4+PiAgICANCj4+Pj4gKwlpZiAo aW14LT5waW5jdHJsKSB7DQo+Pj4+ICsJCS8qDQo+Pj4+ICsJCSAqIFVwZGF0ZSBjc3RhdGUgYWZ0 ZXIgcHdtY2hpcF9hZGQoKSBjYWxsIGFzIHRoZSBjb3JlIG1pZ2h0DQo+Pj4+ICsJCSAqIGNhbGwg dGhlIGdldF9zdGF0ZSgpIGZ1bmN0aW9uIHRvIHJlYWQgdGhlIFBXTSByZWdpc3RlcnMNCj4+Pj4g KwkJICogdG8gZ2V0IHRoZSBhY3R1YWwgSFcgc3RhdGUuDQo+Pj4+ICsJCSAqLw0KPj4+PiArCQlw d21fZ2V0X3N0YXRlKGlteC0+Y2hpcC5wd21zLCAmY3N0YXRlKTsNCj4+Pj4gKwkJaWYgKGNzdGF0 ZS5lbmFibGVkKSB7DQo+Pj4+ICsJCQlkZXZfZGJnKCZwZGV2LT5kZXYsDQo+Pj4+ICsJCQkJIlBX TSBlbnRlcmVkIHByb2JlIGluIGVuYWJsZWQgc3RhdGVcbiIpOw0KPj4+PiArCQkJcGluY3RybF9z ZWxlY3Rfc3RhdGUoaW14LT5waW5jdHJsLA0KPj4+PiArCQkJCQlpbXgtPnBpbmN0cmxfcGluc19w d20pOw0KPj4+PiArCQl9IGVsc2Ugew0KPj4+PiArCQkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVw KGlteC0+cHdtX2dwaW9kLCAwKTsNCj4+Pj4gKwkJCXBpbmN0cmxfc2VsZWN0X3N0YXRlKGlteC0+ cGluY3RybCwNCj4+Pj4gKwkJCQkJaW14LT5waW5jdHJsX3BpbnNfZ3Bpbyk7DQo+Pj4+ICsNCj4+ Pj4gKwkJfQ0KPj4+PiArCX0NCj4+Pj4gKw0KPj4+PiAgICAJcGxhdGZvcm1fc2V0X2RydmRhdGEo cGRldiwgaW14KTsNCj4+Pj4gICAgCXJldHVybiAwOw0KPj4+PiAgICB9DQo+Pj4NCj4+PiBUaGVy ZSBpcyBub3RoaW5nIGluIHRoaXMgcGF0Y2ggdGhhdCB3b3VsZCBwcmV2ZW50IHRoaXMgY29kZSB0 byBsaXZlIGluIGENCj4+PiBwbGFjZSB3aGVyZSBvdGhlciBkcml2ZXJzIGNvdWxkIHJldXNlIHRo aXMuIChCdXQgYXR0ZW50aW9uLCB0aGVyZSBhcmUNCj4+PiBkcmFnb25zOiBUaGllcnJ5IGFscmVh ZHkgcmVwbGllZCBvbiBteSB0b3BpYyB0aGF0IGhpcyB2aWV3IGlzIGRpZmZlcmVudA0KPj4+IGlu IHRoaXMgYXNwZWN0IGNvbXBhcmVkIHRvIG90aGVyIG1haW50YWluZXJzIHRob3VnaC4gSGlzIFBP ViBpcyB0aGF0IGFzDQo+Pj4gbG9uZyBhcyB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGRyaXZlciBr bm93biB0aGF0IGhhcyBhIHByb2JsZW0gdGhpcw0KPj4+IHNob3VsZCBiZSBoYW5kbGVkIGluIGRy aXZlciBzcGVjaWZpYyBjb2RlLikNCj4+DQo+PiBXaGVuIEkgdHJpcHBlZCBvdmVyIHRoYXQgaXNz dWUgSSBhbHNvIHRob3VnaHQgaXQgaXMgaS5NWCBzcGVjaWZpYy4NCj4+IEl0IG5ldmVyIGNhbWUg dG8gbXkgbWluZCB0aGF0IHNvbWV0aGluZyBsaWtlIHRoYXQgc2hvdWxkIGJlIGRvbmUgaW4NCj4+ IGhpZ2hlciBsYXllci4NCj4+DQo+PiBCdXQgSSBoYXZlIHRvIGFkbWl0IHRoYXQgbXkgY3VycmVu dCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBvdmVyYWxsDQo+PiBhcmNoaXRlY3R1cmUgaXMgYXQgc3Vj aCBsZXZlbCB0aGF0IEkgd2lsbCBqdXN0IGRvIGl0IGhvdyB0aGUgbWFpbnRhaW5lcg0KPj4gd2Fu dHMgbWUgdG8gZG8gaXQuIEdpdmVuIHRoYXQgdGhlIHNvbHV0aW9uIGltcHJvdmVzIHRoZSBzaXR1 YXRpb24gYW5kDQo+PiBzb2x2ZXMgbXkgb3JpZ2luYWwgcHJvYmxlbS4gQW5kIHRoZSBwaW5jdHJs IHNvbHV0aW9uIHdhcyBhbHJlYWR5DQo+PiBzdWdnZXN0ZWQgYnkgRmFiaW8gRXN0ZXZhbSBhIHll YXIgYWdvIFsxXSBzbyBJIHdlbnQgdGhhdCB3YXkuDQo+Pg0KPj4gWzFdIGh0dHBzOi8vcGF0Y2h3 b3JrLm96bGFicy5vcmcvcGF0Y2gvODM5ODM0LyMxODE5ODY1DQo+IA0KPiBJbiBtZXNzYWdlIDE1 IGJvdGggTG90aGFyIGFuZCBGYWJpbyBhZ3JlZSB0aGF0IHRoZXkgd291bGQgcHJlZmVyIGENCj4g c29sdXRpb24gd2l0aG91dCBtZXNzaW5nIHdpdGggcGluIGNvbmZpZ3MuIEJ1dCBhbHNvIG5vdGUg dGhhdCB0aGV5DQo+IGRpc2N1c3NlZCBhYm91dCBzdXNwZW5kLCB0b28sIG5vdCBvbmx5IHB3bV9k aXNhYmxlKCkuDQoNClNvcnJ5LCBJIGRpZCBub3Qgd2FudCBpdCB0byBsb29rIGxpa2UgSSBzYWlk OiAiRmFiaW8gd2FudHMgaXQgdG8gYmUgZG9uZQ0KdGhlIHBpbmN0cmwgd2F5Ii4gSSBjYW1lIHVw IHdpdGggdGhlIHBpbmN0cmwgc29sdXRpb24gb24gbXkgb3duLiBUaGVuIHdoZW4NCkkgd2FzIHNl YXJjaGluZyBpbiBhcmNoaXZlcyBpZiBzb21lb25lIGhhdmUgdGhlIHNhbWUgcHJvYmxlbSBJIHRy aXBwZWQNCm92ZXIgdGhhdCB0aHJlYWQuIFNvIEkgd2FzIGhhcHB5IHRoYXQgdGhleSBkaXNjdXNz ZWQgdGhhdCBhcyBhIHBvc3NpYmxlDQpzb2x1dGlvbi4gRmFiaW8gZGlkIG5vdCBuZWVkIGl0IGZv ciBoaXMgc3VzcGVuZCBjYXNlIHRob3VnaC4NCg0KU28gSSB0aG91Z2h0IGludm9sdmluZyBwaW5j dHJsIGlzIHByb2JhYmx5IHRoZSBsYXN0IG9wdGlvbiB0byBzb2x2ZQ0KdGhlIHByb2JsZW0gYXQg cHdtLWlteCBkcml2ZXIgbGV2ZWwuIFNvIGZhciwgVGhpZXJyeSBzZWVtcyBoZSBzdXBwb3J0DQp0 aGF0IHNvbHV0aW9uLg0KDQpBbGwgdGhlIGJlc3QsDQpNaWNoYWwNCg==