From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v2 05/16] drm: rcar-du: lvds: D3/E3 support Date: Mon, 17 Sep 2018 15:41:24 +0300 Message-ID: <10905620.4zIZVoYJNh@avalon> References: <20180914091046.483-1-laurent.pinchart+renesas@ideasonboard.com> <20180914091046.483-6-laurent.pinchart+renesas@ideasonboard.com> <742434350.239829.1537181639023@webmail.strato.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id 552B56E29A for ; Mon, 17 Sep 2018 12:41:11 +0000 (UTC) In-Reply-To: <742434350.239829.1537181639023@webmail.strato.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ulrich Hecht Cc: linux-renesas-soc@vger.kernel.org, Laurent Pinchart , Kieran Bingham , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgVWxyaWNoLAoKT24gTW9uZGF5LCAxNyBTZXB0ZW1iZXIgMjAxOCAxMzo1Mzo1OCBFRVNUIFVs cmljaCBIZWNodCB3cm90ZToKPiA+IE9uIFNlcHRlbWJlciAxNCwgMjAxOCBhdCAxMToxMCBBTSBM YXVyZW50IFBpbmNoYXJ0IHdyb3RlOgo+ID4gCj4gPiBUaGUgTFZEUyBlbmNvZGVycyBpbiB0aGUg RDMgYW5kIEUzIFNvQ3MgZGlmZmVyIHNpZ25pZmljYW50bHkgZnJvbSB0aG9zZQo+ID4gaW4gdGhl IG90aGVyIFItQ2FyIEdlbjMgZmFtaWx5IG1lbWJlcnM6Cj4gPiAKPiA+IC0gVGhlIExWRFMgUExM IGFyY2hpdGVjdHVyZSBpcyBtb3JlIGNvbXBsZXggYW5kIHJlcXVpcmVzIGNvbXB1dGluZyBQTEwK PiA+ICAgcGFyYW1ldGVycyBtYW51YWxseS4KPiA+IAo+ID4gLSBUaGUgUExMIHVzZXMgZXh0ZXJu YWwgY2xvY2tzIGFzIGlucHV0cywgd2hpY2ggbmVlZCB0byBiZSByZXRyaWV2ZWQKPiA+ICAgZnJv bSBEVC4KPiA+IAo+ID4gLSBJbiBhZGRpdGlvbiB0byB0aGUgZGlmZmVyZW50IFBMTCBzZXR1cCwg dGhlIHN0YXJ0dXAgc2VxdWVuY2UgaGFzCj4gPiAgIGNoYW5nZWQgKmFnYWluKiAoc2VlbXMgc29t ZW9uZSBoYWQgdHJvdWJsZSBtYWtpbmcgaGlzL2hlciBtaW5kKS4KPiA+IAo+ID4gU3VwcG9ydGlu ZyBhbGwgdGhpcyByZXF1aXJlcyBEVCBiaW5kaW5ncyBleHRlbnNpb25zIGZvciBleHRlcm5hbCBj bG9ja3MsCj4gPiBicmFuZCBuZXcgUExMIHNldHVwIGNvZGUsIGFuZCBhIGZldyBxdWlya3MgdG8g aGFuZGxlIHRoZSBkaWZmZXJlbmNlcyBpbgo+ID4gdGhlIHN0YXJ0dXAgc2VxdWVuY2UuCj4gPiAK PiA+IFRoZSBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgYWxsIGhhcmR3YXJlIGZlYXR1 cmVzIHlldCwgbmFtZWx5Cj4gPiAKPiA+IC0gVXNpbmcgdGhlIExWWzAxXSBjbG9ja3MgZ2VuZXJh dGVkIGJ5IHRoZSBDUEcgYXMgUExMIGlucHV0Lgo+ID4gLSBQcm92aWRpbmcgdGhlIExWRFMgUExM IGNsb2NrIHRvIHRoZSBEVSBmb3IgdXNlIHdpdGggdGhlIFJHQiBvdXRwdXQuCj4gPiAKPiA+IFRo b3NlIGZlYXR1cmVzIGNhbiBiZSBhZGRlZCBsYXRlciB3aGVuIHRoZSBuZWVkIHdpbGwgYXJpc2Uu Cj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IExhdXJlbnQgUGluY2hhcnQKPiA+IDxsYXVyZW50LnBp bmNoYXJ0K3JlbmVzYXNAaWRlYXNvbmJvYXJkLmNvbT4KPiA+IFRlc3RlZC1ieTogSmFjb3BvIE1v bmRpIDxqYWNvcG8rcmVuZXNhc0BqbW9uZGkub3JnPgo+ID4gLS0tCj4gPiBDaGFuZ2VzIHNpbmNl IHYxOgo+ID4gCj4gPiAtIERvbid0IGNvbXBpbGUtb3V0IGRlYnVnIGNvZGUgYmFzZWQgb24gREVC VUcgYW5kIENPTkZJR19EWU5BTUlDX0RFQlVHCj4gPiAtIFRlc3QgYWxsIHRocmVlIGlucHV0IGNs b2NrcyAoRE9UQ0xLSU5bMDFdIGFuZCBFWFRBTCkgYW5kIHBpY2sgdGhlIGJlc3QKPiA+ICAgb25l Cj4gPiAKPiA+IC0tLQo+ID4gCj4gPiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRz LmMgICAgICB8IDM1NSArKysrKysrKysrKysrKysrKysrKysrLS0tLQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9yY2FyLWR1L3JjYXJfbHZkc19yZWdzLmggfCAgNDMgKysrLQo+ID4gIDIgZmlsZXMgY2hh bmdlZCwgMzUxIGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMKPiA+IGIvZHJpdmVycy9n cHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMgaW5kZXggY2UwZWI2OGMzNDE2Li4yM2U3NzQzMTQ0 YzgKPiA+IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRz LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfbHZkcy5jCgpbc25pcF0K Cj4gPiArc3RhdGljIHZvaWQgcmNhcl9sdmRzX2QzX2UzX3BsbF9jYWxjKHN0cnVjdCByY2FyX2x2 ZHMgKmx2ZHMsIHN0cnVjdCBjbGsKPiA+ICpjbGssCj4gPiArCQkJCSAgICAgdW5zaWduZWQgbG9u ZyB0YXJnZXQsIHN0cnVjdCBwbGxfaW5mbyAqcGxsLAo+ID4gKwkJCQkgICAgIHUzMiBjbGtzZWwp Cj4gPiArewo+ID4gKwl1bnNpZ25lZCBsb25nIG91dHB1dDsKPiA+ICsJdW5zaWduZWQgbG9uZyBm aW47Cj4gPiArCXVuc2lnbmVkIGludCBtX21pbjsKPiA+ICsJdW5zaWduZWQgaW50IG1fbWF4Owo+ ID4gKwl1bnNpZ25lZCBpbnQgbTsKPiA+ICsJaW50IGVycm9yOwo+ID4gKwo+ID4gKwlpZiAoIWNs aykKPiA+ICsJCXJldHVybjsKPiA+ICsKPiA+ICsJLyoKPiA+ICsJICogVGhlIExWRFMgUExMIGlz IG1hZGUgb2YgYSBwcmUtZGl2aWRlciBhbmQgYSBtdWx0aXBsaWVyIChzdHJhbmdlcmx5Cj4gCj4g c3RyYW5nZWx5CgpXaWxsIGJlIGZpeGVkIGluIHYyLgoKPiA+ICsJICogZW5vdWdoIGNhbGxlZCBN IGFuZCBOIHJlc3BlY3RpdmVseSksIGZvbGxvd2VkIGJ5IGEgcG9zdC1kaXZpZGVyIEUuCj4gPiAr CSAqCj4gPiArCSAqICAgICAgICAgLC0tLS0tLiAgICAgICAgICwtLS0tLS4gICAgICwtLS0tLS4g ICAgICAgICAsLS0tLS0uCj4gPiArCSAqIEZpbiAtLT4gfCAxL00gfCAtRnBkZi0+IHwgUEZEIHwg LS0+IHwgVkNPIHwgLUZ2Y28tPiB8IDEvRSB8IC0tPiBGb3V0Cj4gPiArCSAqICAgICAgICAgYC0t LS0tJyAgICAgLC0+IHwgICAgIHwgICAgIGAtLS0tLScgICB8ICAgICBgLS0tLS0nCj4gPiArCSAq ICAgICAgICAgICAgICAgICAgICAgfCAgIGAtLS0tLScgICAgICAgICAgICAgICB8Cj4gPiArCSAq ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICwtLS0tLS4gICAgICAgICB8Cj4gPiArCSAq ICAgICAgICAgICAgICAgICAgICAgYC0tLS0tLS0tIHwgMS9OIHwgPC0tLS0tLS0nCj4gPiArCSAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAtLS0tLScKPiA+ICsJICoKPiA+ICsJICog VGhlIGNsb2NrIG91dHB1dCBieSB0aGUgUExMIGlzIHRoZW4gZnVydGhlciBkaXZpZGVkIGJ5IGEK PiA+IHByb2dyYW1tYWJsZQo+ID4gKwkgKiBkaXZpZGVyIERJViB0byBhY2hpZXZlIHRoZSBkZXNp cmVkIHRhcmdldCBmcmVxdWVuY3kuIEZpbmFsbHksIGFuCj4gPiArCSAqIG9wdGlvbmFsIGZpeGVk IC83IGRpdmlkZXIgaXMgdXNlZCB0byBjb252ZXJ0IHRoZSBiaXQgY2xvY2sgdG8gYQo+ID4gcGl4 ZWwKPiA+ICsJICogY2xvY2sgKGFzIExWRFMgdHJhbnNtaXRzIDcgYml0cyBwZXIgbGFuZSBwZXIg Y2xvY2sgc2FtcGxlKS4KPiA+ICsJICoKPiA+ICsJICogICAgICAgICAgLC0tLS0tLS0uICAgICAs LS0tLS0uICAgICB8XAo+ID4gKwkgKiBGb3V0IC0tPiB8IDEvRElWIHwgLS0+IHwgMS83IHwgLS0+ IHwgfAo+ID4gKwkgKiAgICAgICAgICBgLS0tLS0tLScgIHwgIGAtLS0tLScgICAgIHwgfCAtLT4g ZG90IGNsb2NrCj4gPiArCSAqICAgICAgICAgICAgICAgICAgICAgYC0tLS0tLS0tLS0tLT4gfCB8 Cj4gPiArCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfC8KPiA+ICsJICoK PiA+ICsJICogVGhlIC83IGRpdmlkZXIgaXMgb3B0aW9uYWwgd2hlbiB0aGUgTFZEUyBQTEwgaXMg dXNlZCB0byBnZW5lcmF0ZSBhCj4gPiArCSAqIGRvdCBjbG9jayBmb3IgdGhlIERVIFJHQiBvdXRw dXQsIHdpdGhvdXQgdXNpbmcgdGhlIExWRFMgZW5jb2Rlci4gV2UKPiA+ICsJICogZG9uJ3Qgc3Vw cG9ydCB0aGlzIGNvbmZpZ3VyYXRpb24geWV0Lgo+ID4gKwkgKgo+ID4gKwkgKiBUaGUgUExMIGFs bG93ZWQgaW5wdXQgZnJlcXVlbmN5IHJhbmdlIGlzIDEyIE1IeiB0byAxOTIgTUh6Lgo+ID4gKwkg Ki8KPiA+ICsKPiA+ICsJZmluID0gY2xrX2dldF9yYXRlKGNsayk7Cj4gPiArCWlmIChmaW4gPCAx MjAwMDAwMCB8fCBmaW4gPiAxOTIwMDAwMDApCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCS8q Cj4gPiArCSAqIFRoZSBjb21wYXJpc29uIGZyZXF1ZW5jeSByYW5nZSBpcyAxMiBNSHogdG8gMjQg TUh6LCB3aGljaCBsaW1pdHMgdGhlCj4gPiArCSAqIGFsbG93ZWQgdmFsdWVzIGZvciB0aGUgcHJl LWRpdmlkZXIgTSAobm9ybWFsIHJhbmdlIDEtOCkuCj4gPiArCSAqCj4gPiArCSAqIEZwZmQgPSBG aW4gLyBNCj4gPiArCSAqLwo+ID4gKwltX21pbiA9IG1heF90KHVuc2lnbmVkIGludCwgMSwgRElW X1JPVU5EX1VQKGZpbiwgMjQwMDAwMDApKTsKPiA+ICsJbV9tYXggPSBtaW5fdCh1bnNpZ25lZCBp bnQsIDgsIGZpbiAvIDEyMDAwMDAwKTsKPiA+ICsKPiA+ICsJZm9yIChtID0gbV9taW47IG0gPD0g bV9tYXg7ICsrbSkgewo+ID4gKwkJdW5zaWduZWQgbG9uZyBmcGZkOwo+ID4gKwkJdW5zaWduZWQg aW50IG5fbWluOwo+ID4gKwkJdW5zaWduZWQgaW50IG5fbWF4Owo+ID4gKwkJdW5zaWduZWQgaW50 IG47Cj4gPiArCj4gPiArCQkvKgo+ID4gKwkJICogVGhlIFZDTyBvcGVyYXRpbmcgcmFuZ2UgaXMg OTAwIE1oeiB0byAxODAwIE1Ieiwgd2hpY2ggbGltaXRzCj4gPiArCQkgKiB0aGUgYWxsb3dlZCB2 YWx1ZXMgZm9yIHRoZSBtdWx0aXBsaWVyIE4gKG5vcm1hbCByYW5nZQo+ID4gKwkJICogNjAtMTIw KS4KPiA+ICsJCSAqCj4gPiArCQkgKiBGdmNvID0gRmluICogTiAvIE0KPiA+ICsJCSAqLwo+ID4g KwkJZnBmZCA9IGZpbiAvIG07Cj4gPiArCQluX21pbiA9IG1heF90KHVuc2lnbmVkIGludCwgNjAs IERJVl9ST1VORF9VUCg5MDAwMDAwMDAsIGZwZmQpKTsKPiA+ICsJCW5fbWF4ID0gbWluX3QodW5z aWduZWQgaW50LCAxMjAsIDE4MDAwMDAwMDAgLyBmcGZkKTsKPiA+ICsKPiA+ICsJCWZvciAobiA9 IG5fbWluOyBuIDwgbl9tYXg7ICsrbikgewo+ID4gKwkJCXVuc2lnbmVkIGxvbmcgZnZjbzsKPiA+ ICsJCQl1bnNpZ25lZCBpbnQgZV9taW47Cj4gPiArCQkJdW5zaWduZWQgaW50IGU7Cj4gPiArCj4g PiArCQkJLyoKPiA+ICsJCQkgKiBUaGUgb3V0cHV0IGZyZXF1ZW5jeSBpcyBsaW1pdGVkIHRvIDEw MzkuNSBNSHosCj4gPiArCQkJICogbGltaXRpbmcgYWdhaW4gdGhlIGFsbG93ZWQgdmFsdWVzIGZv ciB0aGUKPiA+ICsJCQkgKiBwb3N0LWRpdmlkZXIgRSAobm9ybWFsIHZhbHVlIDEsIDIgb3IgNCku Cj4gPiArCQkJICoKPiA+ICsJCQkgKiBGb3V0ID0gRnZjbyAvIEUKPiA+ICsJCQkgKi8KPiA+ICsJ CQlmdmNvID0gZnBmZCAqIG47Cj4gPiArCQkJZV9taW4gPSBmdmNvID4gMTAzOTUwMDAwMCA/IDEg OiAwOwo+ID4gKwo+ID4gKwkJCWZvciAoZSA9IGVfbWluOyBlIDwgMzsgKytlKSB7Cj4gPiArCQkJ CXVuc2lnbmVkIGxvbmcgZm91dDsKPiA+ICsJCQkJdW5zaWduZWQgbG9uZyBkaWZmOwo+ID4gKwkJ CQl1bnNpZ25lZCBpbnQgZGl2Owo+ID4gKwo+ID4gKwkJCQkvKgo+ID4gKwkJCQkgKiBGaW5hbGx5 IHdlIGhhdmUgYSBwcm9ncmFtYWJsZSBkaXZpZGVyIGFmdGVyCj4gPiArCQkJCSAqIHRoZSBQTEws IGZvbGxvd2VkIGJ5IGEgYW4gb3B0aW9uYWwgZml4ZWQgLzcKPiA+ICsJCQkJICogZGl2aWRlci4K PiA+ICsJCQkJICovCj4gPiArCQkJCWZvdXQgPSBmdmNvIC8gKDEgPDwgZSkgLyA3Owo+ID4gKwkJ CQlkaXYgPSBESVZfUk9VTkRfQ0xPU0VTVChmb3V0LCB0YXJnZXQpOwo+ID4gKwkJCQlkaWZmID0g YWJzKGZvdXQgLyBkaXYgLSB0YXJnZXQpOwo+ID4gKwo+ID4gKwkJCQlpZiAoZGlmZiA8IHBsbC0+ ZGlmZikgewo+ID4gKwkJCQkJcGxsLT5kaWZmID0gZGlmZjsKPiA+ICsJCQkJCXBsbC0+cGxsX20g PSBtOwo+ID4gKwkJCQkJcGxsLT5wbGxfbiA9IG47Cj4gPiArCQkJCQlwbGwtPnBsbF9lID0gZTsK PiA+ICsJCQkJCXBsbC0+ZGl2ID0gZGl2Owo+ID4gKwkJCQkJcGxsLT5jbGtzZWwgPSBjbGtzZWw7 Cj4gPiArCj4gPiArCQkJCQlpZiAoZGlmZiA9PSAwKQo+ID4gKwkJCQkJCWdvdG8gZG9uZTsKPiA+ ICsJCQkJfQo+ID4gKwkJCX0KPiA+ICsJCX0KPiA+ICsJfQo+ID4gKwo+ID4gK2RvbmU6Cj4gPiAr CW91dHB1dCA9IGZpbiAqIHBsbC0+cGxsX24gLyBwbGwtPnBsbF9tIC8gKDEgPDwgcGxsLT5wbGxf ZSkKPiA+ICsJICAgICAgIC8gNyAvIHBsbC0+ZGl2Owo+ID4gKwllcnJvciA9IChsb25nKShvdXRw dXQgLSB0YXJnZXQpICogMTAwMDAgLyAobG9uZyl0YXJnZXQ7Cj4gPiArCj4gPiArCWRldl9kYmco bHZkcy0+ZGV2LAo+ID4gKwkJIiVwQyAlbHUgSHogLT4gRm91dCAlbHUgSHogKHRhcmdldCAlbHUg SHosIGVycm9yICVkLiUwMnUlJSksIFBMTAo+ID4gTS9OL0UvRElWICV1LyV1LyV1LyV1XG4iLCAr CQljbGssIGZpbiwgb3V0cHV0LCB0YXJnZXQsIGVycm9yIC8gMTAwLAo+ID4gKwkJZXJyb3IgPCAw ID8gLWVycm9yICUgMTAwIDogZXJyb3IgJSAxMDAsCj4gPiArCQlwbGwtPnBsbF9tLCBwbGwtPnBs bF9uLCBwbGwtPnBsbF9lLCBwbGwtPmRpdik7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lk IHJjYXJfbHZkc19wbGxfc2V0dXBfZDNfZTMoc3RydWN0IHJjYXJfbHZkcyAqbHZkcywgdW5zaWdu ZWQKPiA+IGludCBmcmVxKQo+ID4gK3sKPiA+ICsJc3RydWN0IHBsbF9pbmZvIHBsbCA9IHsgLmRp ZmYgPSAodW5zaWduZWQgbG9uZyktMSB9Owo+ID4gKwl1MzIgbHZkcGxsY3I7Cj4gPiArCj4gPiAr CXJjYXJfbHZkc19kM19lM19wbGxfY2FsYyhsdmRzLCBsdmRzLT5jbG9ja3MuZG90Y2xraW5bMF0s IGZyZXEsICZwbGwsCj4gPiArCQkJCSBMVkRQTExDUl9DS1NFTF9EVV9ET1RDTEtJTigwKSk7Cj4g PiArCXJjYXJfbHZkc19kM19lM19wbGxfY2FsYyhsdmRzLCBsdmRzLT5jbG9ja3MuZG90Y2xraW5b MV0sIGZyZXEsICZwbGwsCj4gPiArCQkJCSBMVkRQTExDUl9DS1NFTF9EVV9ET1RDTEtJTigxKSk7 Cj4gPiArCXJjYXJfbHZkc19kM19lM19wbGxfY2FsYyhsdmRzLCBsdmRzLT5jbG9ja3MuZXh0YWws IGZyZXEsICZwbGwsCj4gPiArCQkJCSBMVkRQTExDUl9DS1NFTF9FWFRBTCk7Cj4gPiArCj4gPiAr CWx2ZHBsbGNyID0gTFZEUExMQ1JfUExMT04gfCBwbGwuY2xrc2VsIHwgTFZEUExMQ1JfQ0xLT1VU Cj4gPiArCQkgfCBMVkRQTExDUl9QTExOKHBsbC5wbGxfbiAtIDEpIHwgTFZEUExMQ1JfUExMTShw bGwucGxsX20gLSAxKTsKPiA+ICsKPiA+ICsJaWYgKHBsbC5wbGxfZSA+IDApCj4gPiArCQlsdmRw bGxjciB8PSBMVkRQTExDUl9TVFBfQ0xLT1VURSB8IExWRFBMTENSX09VVENMS1NFTAo+ID4gKwkJ CSB8ICBMVkRQTExDUl9QTExFKHBsbC5wbGxfZSAtIDEpOwo+ID4gKwo+ID4gKwlyY2FyX2x2ZHNf d3JpdGUobHZkcywgTFZEUExMQ1IsIGx2ZHBsbGNyKTsKPiA+ICsKPiA+ICsJaWYgKHBsbC5kaXYg PiAxKQo+ID4gKwkJcmNhcl9sdmRzX3dyaXRlKGx2ZHMsIExWRERJViwgTFZERElWX0RJVlNFTCB8 Cj4gPiArCQkJCUxWRERJVl9ESVZSRVNFVCB8IExWRERJVl9ESVYocGxsLmRpdiAtIDEpKTsKPiA+ ICsJZWxzZQo+ID4gKwkJcmNhcl9sdmRzX3dyaXRlKGx2ZHMsIExWRERJViwgMCk7Cj4gCj4gVGhl IGRhdGFzaGVldCBzYXlzIERJVlJFU0VUID09IDAgaXMgInJlc2V0IiBhbmQgRElWUkVTRVQgPT0g MSBpcyAiY2xlYXIiLiBJCj4gaGF2ZW4ndCBmb3VuZCBhbnl0aGluZyBjbGFyaWZ5aW5nIHdoYXQg dGhhdCBleGFjdGx5IG1lYW5zLCBidXQgbXkgYmVzdAo+IGd1ZXNzIHdvdWxkIGhhdmUgYmVlbiB0 aGF0IHRoaXMgc2hvdWxkIGJlIHRoZSBvdGhlciB3YXkgcm91bmQ6IGFzc2VydAo+IExWRERJVl9E SVZSRVNFVCAoImNsZWFyIiB0aGUgZGl2aWRlcikgaWYgdGhlIGRpdmlkZXIgaXMgMSwgYW5kIGRl YXNzZXJ0IGl0Cj4gKCJyZXNldCIgdGhlIGRpdmlkZXIpIG90aGVyd2lzZS4KCk15IGludGVycHJl dGF0aW9uIGlzIG9wcG9zaXRlLCAwIG1lYW5pbmcgYXNzZXJ0aW5nIHJlc2V0IGFuZCAxIG1lYW5p bmcgCmNsZWFyaW5nIHJlc2V0IChhbmQgdGh1cyBkZWFzc2VydGluZyBpdCkuCgo+IFRoZSBCU1Ag ZHJpdmVyLCBob3dldmVyLCBkb2VzIGl0IHRoZSBzYW1lIHdheSBhcyBhYm92ZSwgYW5kIHRoZSBQ TEwgc2V0dGluZwo+IGV4YW1wbGVzICh0YWJsZSAzNy41KSBpbiB0aGUgZGF0YXNoZWV0IGFsc28g aGF2ZSBESVZSRVNFVCBhc3NlcnRlZCB3aGVuIHRoZQo+IGRpdmlkZXIgaXMgb24sIHNvIHRoZSBh Ym92ZSBjb2RlIGlzIGxpa2VseSB0byBiZSBjb3JyZWN0LiBNYXliZSBpdCdzIHRoZQo+IExWRERJ ViByZWdpc3RlciBkZXNjcmlwdGlvbiB0aGF0IGlzIHdyb25nPwo+IAo+IEF0IGFueSByYXRlLCBJ IHRoaW5rIHRoaXMgaXMgY29uZnVzaW5nIGVub3VnaCB0byBkZXNlcnZlIGEgY29tbWVudC4KCkkg YWdyZWUsIEknbGwgYWRkIHRoYXQuCgo+ID4gK30KCltzbmlwXQoKLS0gClJlZ2FyZHMsCgpMYXVy ZW50IFBpbmNoYXJ0CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=