Received: by 10.223.148.5 with SMTP id 5csp7571608wrq; Thu, 18 Jan 2018 07:00:50 -0800 (PST) X-Google-Smtp-Source: ACJfBotdJ6CKP6sThcWIycuUIigsO52DYNYXgw/I3mmY+E1lJqzRsQEc3F/t7UFHcUM8g3gj1d1+ X-Received: by 10.98.20.20 with SMTP id 20mr53383pfu.152.1516287650115; Thu, 18 Jan 2018 07:00:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516287650; cv=none; d=google.com; s=arc-20160816; b=hmlJU0ocAGj5P9tDD4YwinH/T2hfx/6YkqHyZGsgz18pbtTVJtV3ypcGZb/Fe4mTa8 g7+/nzx8kObAO+QXmOkxy6QfFd7VhXSdZjVEIqGLjS5VlnE6KedcAn9afrRMxQuJrK6R BA4hAKJQizDL9OdAdLPzuXtP8rWjgvgeg/Uh28/9IiQGm7UXM0vnAZ92WrEFgt/PzXCO r1Hpt2KiVnRSi3I5CE1GCBy3jELOzt8GqQgANbRqOvs/EfRvbB4QEwcrrV9OvCKm+AOH ngraLAXu5/cj+yW16pCcOIZtp52HVJnR8Sr+I0YqCl5ZslN5YXC99QdYmp6O0JcHogwK xhkA== 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:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:arc-authentication-results; bh=zMsmlvhOXzAWX4maunB0M+RJvQg00RTqTGr5jAI4tXw=; b=i0QrWPQLBXMifcwdd0oxmX6fnubQq89z0AoD32DAeuNYZHM0umQWL94r1fQnHy3YVH n3hSvCeN13kBoWrsL0dNIBfXcZGoUzrlFMUMoJyiC59RPkkkX3/LzKocGsp1Ylg7FD6X DaITMvxjZ97e+CBGCHpBCNmjZGZ8lVyOfIJ5fxsrxVrgudIuXjRhrmK4jEAZ+coN5GBX zqOahrZNPIbTMKaos5THQCh7Yo5UG8iPdNw8/ZE0K0vl5gitdDwrgAv6LZXFFYVAkx3M gFJqxo9R2dC9uF+sXiZMm+oJTPX5aDm/wximq0jjqgAEPYguAUksZbne32+X/1iEh+KU pK/g== ARC-Authentication-Results: i=1; mx.google.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 o76si7029281pfa.367.2018.01.18.07.00.34; Thu, 18 Jan 2018 07:00:50 -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; 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 S1756286AbeARNfe (ORCPT + 99 others); Thu, 18 Jan 2018 08:35:34 -0500 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:30465 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756257AbeARNfb (ORCPT ); Thu, 18 Jan 2018 08:35:31 -0500 Received: from pps.filterd (m0046037.ppops.net [127.0.0.1]) by mx07-.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id w0IDXfnw014896; Thu, 18 Jan 2018 14:35:09 +0100 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2fgygdmj0n-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 18 Jan 2018 14:35:09 +0100 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id B6BAF31; Thu, 18 Jan 2018 13:35:08 +0000 (GMT) Received: from Webmail-eu.st.com (sfhdag6node3.st.com [10.75.127.18]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 89A112582; Thu, 18 Jan 2018 13:35:08 +0000 (GMT) Received: from SFHDAG6NODE3.st.com (10.75.127.18) by SFHDAG6NODE3.st.com (10.75.127.18) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Thu, 18 Jan 2018 14:35:08 +0100 Received: from SFHDAG6NODE3.st.com ([fe80::d04:5337:ab17:b6f6]) by SFHDAG6NODE3.st.com ([fe80::d04:5337:ab17:b6f6%20]) with mapi id 15.00.1347.000; Thu, 18 Jan 2018 14:35:08 +0100 From: Philippe CORNU To: Andrzej Hajda , Archit Taneja , Laurent Pinchart , David Airlie , "Philipp Zabel" , Benjamin Gaignard , Bhumika Goyal , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" CC: Yannick FERTRE , Vincent ABRIOU , Alexandre TORGUE , "Maxime Coquelin" , Gabriel FERNANDEZ , Ludovic BARRE , "Fabien DESSENNE" , Mickael REULIER , Brian Norris Subject: Re: [PATCH v2] drm/bridge/synopsys: dsi: add optional pixel clock Thread-Topic: [PATCH v2] drm/bridge/synopsys: dsi: add optional pixel clock Thread-Index: AQHTjggIFlOdxx1bJEqCz8ByiNjtPaN08L2AgAAqV4CABHpngA== Date: Thu, 18 Jan 2018 13:35:08 +0000 Message-ID: References: <20180112162530.31432-1-philippe.cornu@st.com> <87a1d69d-c7a0-de01-8c95-15711d59a4cf@samsung.com> In-Reply-To: <87a1d69d-c7a0-de01-8c95-15711d59a4cf@samsung.com> Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.75.127.47] Content-Type: text/plain; charset="utf-8" Content-ID: <1D589BE0CE2A334FAF61C48E5A3BC4AD@st.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2018-01-18_06:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgQnJpYW4sDQoNCk9uIDAxLzE1LzIwMTggMDY6MTEgUE0sIEFuZHJ6ZWogSGFqZGEgd3JvdGU6 DQo+IE9uIDE1LjAxLjIwMTggMTU6NDAsIFBoaWxpcHBlIENPUk5VIHdyb3RlOg0KPj4gSGkgQW5k cnplaiwNCj4+DQo+PiBPbiAwMS8xNS8yMDE4IDAyOjUyIFBNLCBBbmRyemVqIEhhamRhIHdyb3Rl Og0KPj4+IE9uIDEyLjAxLjIwMTggMTc6MjUsIFBoaWxpcHBlIENvcm51IHdyb3RlOg0KPj4+PiBU aGUgcGl4ZWwgY2xvY2sgaXMgb3B0aW9uYWwuIFdoZW4gYXZhaWxhYmxlLCBpdCBvZmZlcnMgYSBi ZXR0ZXINCj4+Pj4gcHJlY2lzZW5lc3MgZm9yIHRpbWluZyBjb21wdXRhdGlvbnMgYW5kIGFsbG93 cyB0byByZWR1Y2UgdGhlIGV4dHJhIGRzaQ0KPj4+PiBiYW5kd2lkdGggaW4gYnVyc3QgbW9kZSAo ZnJvbSB+MjAlIHRvIH4xMC0xMiUsIGh3IHBsYXRmb3JtIGRlcGVuZGVudCkuDQo+Pj4+DQo+Pj4+ IFNpZ25lZC1vZmYtYnk6IFBoaWxpcHBlIENvcm51IDxwaGlsaXBwZS5jb3JudUBzdC5jb20+DQo+ Pj4+IC0tLQ0KPj4+PiBDaGFuZ2VzIGluIHYyOiBJbXByb3ZlIHB4X2NsayBwcm9iaW5nIGluIGNh c2Ugb2YgRU5PRU5UIGR0IHJldHVybmVkIHZhbHVlDQo+Pj4+ICh0aGFua3MgdG8gUGhpbGlwcCBa YWJlbCAmIEFuZHJ6ZWogSGFqZGEgY29tbWVudHMpDQo+Pj4+DQo+Pj4+ICAgIGRyaXZlcnMvZ3B1 L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctbWlwaS1kc2kuYyB8IDI2ICsrKysrKysrKysrKysrKysr KysrLS0tLS0tDQo+Pj4+ICAgIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQ0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9zeW5vcHN5cy9kdy1taXBpLWRzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5 cy9kdy1taXBpLWRzaS5jDQo+Pj4+IGluZGV4IGMzOWM3ZGNlMjBlZC4uNjJmY2ZmODgxYjk4IDEw MDY0NA0KPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LW1pcGkt ZHNpLmMNCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBp LWRzaS5jDQo+Pj4+IEBAIC0yMjUsNiArMjI1LDcgQEAgc3RydWN0IGR3X21pcGlfZHNpIHsNCj4+ Pj4gICAgCXZvaWQgX19pb21lbSAqYmFzZTsNCj4+Pj4gICAgDQo+Pj4+ICAgIAlzdHJ1Y3QgY2xr ICpwY2xrOw0KPj4+PiArCXN0cnVjdCBjbGsgKnB4X2NsazsNCj4+Pj4gICAgDQo+Pj4+ICAgIAl1 bnNpZ25lZCBpbnQgbGFuZV9tYnBzOyAvKiBwZXIgbGFuZSAqLw0KPj4+PiAgICAJdTMyIGNoYW5u ZWw7DQo+Pj4+IEBAIC03NTMsMjQgKzc1NCwyOCBAQCB2b2lkIGR3X21pcGlfZHNpX2JyaWRnZV9t b2RlX3NldChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLA0KPj4+PiAgICAJc3RydWN0IGR3X21p cGlfZHNpICpkc2kgPSBicmlkZ2VfdG9fZHNpKGJyaWRnZSk7DQo+Pj4+ICAgIAljb25zdCBzdHJ1 Y3QgZHdfbWlwaV9kc2lfcGh5X29wcyAqcGh5X29wcyA9IGRzaS0+cGxhdF9kYXRhLT5waHlfb3Bz Ow0KPj4+PiAgICAJdm9pZCAqcHJpdl9kYXRhID0gZHNpLT5wbGF0X2RhdGEtPnByaXZfZGF0YTsN Cj4+Pj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBweF9jbGtfbW9kZSA9ICptb2RlOw0KPj4+ PiAgICAJaW50IHJldDsNCj4+Pj4gICAgDQo+Pj4+ICAgIAljbGtfcHJlcGFyZV9lbmFibGUoZHNp LT5wY2xrKTsNCj4+Pj4gICAgDQo+Pj4+IC0JcmV0ID0gcGh5X29wcy0+Z2V0X2xhbmVfbWJwcyhw cml2X2RhdGEsIG1vZGUsIGRzaS0+bW9kZV9mbGFncywNCj4+Pj4gKwlpZiAoZHNpLT5weF9jbGsp DQo+Pj4+ICsJCXB4X2Nsa19tb2RlLmNsb2NrID0gY2xrX2dldF9yYXRlKGRzaS0+cHhfY2xrKSAv IDEwMDA7DQo+Pj4+ICsNCj4+Pj4gKwlyZXQgPSBwaHlfb3BzLT5nZXRfbGFuZV9tYnBzKHByaXZf ZGF0YSwgJnB4X2Nsa19tb2RlLCBkc2ktPm1vZGVfZmxhZ3MsDQo+Pj4+ICAgIAkJCQkgICAgIGRz aS0+bGFuZXMsIGRzaS0+Zm9ybWF0LCAmZHNpLT5sYW5lX21icHMpOw0KPj4+PiAgICAJaWYgKHJl dCkNCj4+Pj4gICAgCQlEUk1fREVCVUdfRFJJVkVSKCJQaHkgZ2V0X2xhbmVfbWJwcygpIGZhaWxl ZFxuIik7DQo+Pj4+ICAgIA0KPj4+PiAgICAJcG1fcnVudGltZV9nZXRfc3luYyhkc2ktPmRldik7 DQo+Pj4+ICAgIAlkd19taXBpX2RzaV9pbml0KGRzaSk7DQo+Pj4+IC0JZHdfbWlwaV9kc2lfZHBp X2NvbmZpZyhkc2ksIG1vZGUpOw0KPj4+PiArCWR3X21pcGlfZHNpX2RwaV9jb25maWcoZHNpLCAm cHhfY2xrX21vZGUpOw0KPj4+PiAgICAJZHdfbWlwaV9kc2lfcGFja2V0X2hhbmRsZXJfY29uZmln KGRzaSk7DQo+Pj4+ICAgIAlkd19taXBpX2RzaV92aWRlb19tb2RlX2NvbmZpZyhkc2kpOw0KPj4+ PiAtCWR3X21pcGlfZHNpX3ZpZGVvX3BhY2tldF9jb25maWcoZHNpLCBtb2RlKTsNCj4+Pj4gKwlk d19taXBpX2RzaV92aWRlb19wYWNrZXRfY29uZmlnKGRzaSwgJnB4X2Nsa19tb2RlKTsNCj4+Pj4g ICAgCWR3X21pcGlfZHNpX2NvbW1hbmRfbW9kZV9jb25maWcoZHNpKTsNCj4+Pj4gLQlkd19taXBp X2RzaV9saW5lX3RpbWVyX2NvbmZpZyhkc2ksIG1vZGUpOw0KPj4+PiAtCWR3X21pcGlfZHNpX3Zl cnRpY2FsX3RpbWluZ19jb25maWcoZHNpLCBtb2RlKTsNCj4+Pj4gKwlkd19taXBpX2RzaV9saW5l X3RpbWVyX2NvbmZpZyhkc2ksICZweF9jbGtfbW9kZSk7DQo+Pj4+ICsJZHdfbWlwaV9kc2lfdmVy dGljYWxfdGltaW5nX2NvbmZpZyhkc2ksICZweF9jbGtfbW9kZSk7DQo+Pj4+ICAgIA0KPj4+PiAg ICAJZHdfbWlwaV9kc2lfZHBoeV9pbml0KGRzaSk7DQo+Pj4+ICAgIAlkd19taXBpX2RzaV9kcGh5 X3RpbWluZ19jb25maWcoZHNpKTsNCj4+Pj4gQEAgLTc4NCw3ICs3ODksNyBAQCB2b2lkIGR3X21p cGlfZHNpX2JyaWRnZV9tb2RlX3NldChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLA0KPj4+PiAg ICANCj4+Pj4gICAgCWR3X21pcGlfZHNpX2RwaHlfZW5hYmxlKGRzaSk7DQo+Pj4+ICAgIA0KPj4+ PiAtCWR3X21pcGlfZHNpX3dhaXRfZm9yX3R3b19mcmFtZXMobW9kZSk7DQo+Pj4+ICsJZHdfbWlw aV9kc2lfd2FpdF9mb3JfdHdvX2ZyYW1lcygmcHhfY2xrX21vZGUpOw0KPj4+PiAgICANCj4+Pj4g ICAgCS8qIFN3aXRjaCB0byBjbWQgbW9kZSBmb3IgcGFuZWwtYnJpZGdlIHByZV9lbmFibGUgJiBw YW5lbCBwcmVwYXJlICovDQo+Pj4+ICAgIAlkd19taXBpX2RzaV9zZXRfbW9kZShkc2ksIDApOw0K Pj4+PiBAQCAtODc4LDYgKzg4MywxNSBAQCBfX2R3X21pcGlfZHNpX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYsDQo+Pj4+ICAgIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsNCj4+Pj4g ICAgCX0NCj4+Pj4gICAgDQo+Pj4+ICsJZHNpLT5weF9jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCAi cHhfY2xrIik7DQo+Pj4+ICsJaWYgKFBUUl9FUlIoZHNpLT5weF9jbGspID09IC1FTk9FTlQpIHsN Cj4+Pj4gKwkJZHNpLT5weF9jbGsgPSBOVUxMOw0KPj4+PiArCX0gZWxzZSBpZiAoSVNfRVJSKGRz aS0+cHhfY2xrKSkgew0KPj4+PiArCQlyZXQgPSBQVFJfRVJSKGRzaS0+cHhfY2xrKTsNCj4+Pj4g KwkJZGV2X2VycihkZXYsICJVbmFibGUgdG8gZ2V0IG9wdGlvbmFsIHB4X2NsazogJWRcbiIsIHJl dCk7DQo+Pj4+ICsJCWRzaS0+cHhfY2xrID0gTlVMTDsNCj4+Pj4gKwl9DQo+Pj4+ICsNCj4+PiBB cyBJIHVuZGVyc3RhbmQgb24gZmFpbCB5b3UganVzdCBsb2cgYW4gZXJyb3IgYW5kIGNvbnRpbnVl Pw0KPj4+IFRoZSBjb2RlIGNvdWxkIGJlIHNsaWdodGx5IHNpbXBsaWZpZWQsIGZvciBleGFtcGxl Og0KPj4+IGRzaS0+cHhfY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgInB4X2NsayIpOw0KPj4+IGlm IChJU19FUlIoZHNpLT5weF9jbGspKSB7DQo+Pj4gICDCoMKgwqAgwqDCoMKgIHJldCA9IFBUUl9F UlIoZHNpLT5weF9jbGspOw0KPj4+ICAgwqDCoMKgIMKgwqDCoCBpZiAocmV0ICE9IEVOT0VOVCkN Cj4+PiAgIMKgwqDCoCDCoMKgwqAgwqDCoMKgIMKgwqDCoCBkZXZfZXJyKGRldiwgIlVuYWJsZSB0 byBnZXQgb3B0aW9uYWwgcHhfY2xrOiAlZFxuIiwgcmV0KTsNCj4+PiAgIMKgwqDCoCDCoMKgwqAg ZHNpLT5weF9jbGsgPSBOVUxMOw0KPj4+IH0NCj4+Pg0KPj4+IFdpdGggb3Igd2l0aG91dCB0aGlz IGNoYW5nZToNCj4+Pg0KPj4+IFJldmlld2VkLWJ5OiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNh bXN1bmcuY29tPg0KPj4+DQo+PiBUaGFua3MgZm9yIHlvdXIgcmV2aWV3Lg0KPj4NCj4+IFllcyBp biB0aGlzIHZlcnNpb24sIG9uIGZhaWwsIEkganVzdCBsb2cgYW4gZXJyb3IgYW5kIGNvbnRpbnVl LA0KPj4gZXNwZWNpYWxseSBiZWNhdXNlIHRoaXMgcHhfY2xrIGlzICJvcHRpb25hbCIgaW4gdGhl IGRvY3VtZW50YXRpb24uIFRoZW4NCj4+IHlvdXIgcHJvcG9zYWwgaXMgbXVjaCBiZXR0ZXIgdGhh biBtaW5lIDogKQ0KPj4NCj4+IE5ldmVydGhlbGVzcywgSSB3b25kZXIgbm93IGlmIGl0IGNvdWxk IGJlIGJldHRlciB0byAicmV0dXJuIiBpbiBjYXNlIG9mDQo+PiBlcnJvciBhcyB3ZSBkbyBmb3Ig b3RoZXJzIG1hbmRhdG9yeSBjbG9ja3MuLi4NCj4+IFNvIHRoZW4sIHRoZSBjb2RlIGNvdWxkIGJl Og0KPj4NCj4+IGRzaS0+cHhfY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgInB4X2NsayIpOw0KPj4g aWYgKElTX0VSUihkc2ktPnB4X2NsaykpIHsNCj4+IAlkc2ktPnB4X2NsayA9IE5VTEw7DQo+PiAJ cmV0ID0gUFRSX0VSUihkc2ktPnB4X2Nsayk7DQo+PiAJaWYgKHJldCAhPSBFTk9FTlQpIHsNCj4+ IAkJZGV2X2VycihkZXYsICJVbmFibGUgdG8gZ2V0IG9wdGlvbmFsIHB4X2NsazogJWRcbiIsIHJl dCk7DQo+PiAJCXJldHVybiBFUlJfUFRSKHJldCk7DQo+PiAJfQ0KPj4gfQ0KPj4NCj4+DQo+PiBE byB5b3UgKG9yIHNvbWVvbmUgZWxzZSkgaGF2ZSBhIHByZWZlcnJlZCBjaG9pY2U/DQo+IA0KPiBO byBzdHJvbmcgZmVlbGluZ3MsIGJ1dCBJIHdvdWxkIHNsaWdodGx5IHByZWZlciBjdXJyZW50IHZl cnNpb246IGVycm9yDQo+IGlzIHJlcG9ydGVkIGJ1dCB0aGUgZHJpdmVyIHRyaWVzIHRvIGRvIHRo ZSBiZXN0IHRvIGNvbnRpbnVlIHdvcmsuDQo+IE9uIHRoZSBvdGhlciBzaWRlIGl0IGluY3JlYXNl cyByaXNrIHRoYXQgdGhlIGVycm9yIHdpbGwgYmUgaWdub3JlZCBhbmQNCj4gcG90ZW50aWFsIGJ1 ZyBub3QgZml4ZWQuDQo+IENob2ljZSBiZXR3ZWVuIHJvYnVzdG5lc3MgYW5kIHN0cmljdG5lc3Mu DQo+IA0KPiBSZWdhcmRzDQo+IEFuZHJ6ZWoNCg0KQmVmb3JlIHNlbmRpbmcgYSB2MyB3aXRoIEFu ZHJ6ZWogY29tbWVudHMsIG1heSBJIGFzayB5b3UgcGxlYXNlIHRvIGRvIGEgDQpzaG9ydCByZXZp ZXcgb2YgdGhpcyBwYXRjaCwgcGFydGljdWxhcmx5IHRoZSANCmR3X21pcGlfZHNpX2JyaWRnZV9t b2RlX3NldCgpIGZ1bmN0aW9uIHdpdGggdGhlIHVzZSBvZiB0aGUgb3B0aW9uYWwgDQpwaXhlbCBj bG9jay4NCg0KTWFueSB0aGFua3MgZm9yIHlvdXIgc3VwcG9ydCwNClBoaWxpcHBlIDotKQ0KDQo+ IA0KPj4NCj4+DQo+PiBNYW55IHRoYW5rcywNCj4+IFBoaWxpcHBlIDotKQ0KPj4NCj4+PiAgIMKg LS0NCj4+PiBSZWdhcmRzDQo+Pj4gQW5kcnplag0KPj4+DQo+Pj4NCj4+Pj4gICAgCS8qDQo+Pj4+ ICAgIAkgKiBOb3RlIHRoYXQgdGhlIHJlc2V0IHdhcyBub3QgZGVmaW5lZCBpbiB0aGUgaW5pdGlh bCBkZXZpY2UgdHJlZSwgc28NCj4+Pj4gICAgCSAqIHdlIGhhdmUgdG8gYmUgcHJlcGFyZWQgZm9y IGl0IG5vdCBiZWluZyBmb3VuZC4NCj4gDQo+IA==