From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Stach Subject: Re: [PATCH RFC 003/111] staging: etnaviv: add drm driver Date: Tue, 07 Apr 2015 11:47:09 +0200 Message-ID: <1428400029.2811.51.camel@pengutronix.de> References: <1427988653-754-1-git-send-email-l.stach@pengutronix.de> <1427988653-754-4-git-send-email-l.stach@pengutronix.de> <1428392117.2811.12.camel@pengutronix.de> <1428398410.2811.46.camel@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [92.198.50.35]) by gabe.freedesktop.org (Postfix) with ESMTP id CFC346E0C3 for ; Tue, 7 Apr 2015 02:47:13 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Christian Gmeiner Cc: Russell King , DRI mailing list , Sascha Hauer List-Id: dri-devel@lists.freedesktop.org QW0gRGllbnN0YWcsIGRlbiAwNy4wNC4yMDE1LCAxMTo0MCArMDIwMCBzY2hyaWViIENocmlzdGlh biBHbWVpbmVyOgo+IDIwMTUtMDQtMDcgMTE6MjAgR01UKzAyOjAwIEx1Y2FzIFN0YWNoIDxsLnN0 YWNoQHBlbmd1dHJvbml4LmRlPjoKPiA+IEFtIERpZW5zdGFnLCBkZW4gMDcuMDQuMjAxNSwgMTE6 MDQgKzAyMDAgc2NocmllYiBDaHJpc3RpYW4gR21laW5lcjoKPiA+PiBIaSBMdWNhcwo+ID4+Cj4g Pj4gMjAxNS0wNC0wNyA5OjM1IEdNVCswMjowMCBMdWNhcyBTdGFjaCA8bC5zdGFjaEBwZW5ndXRy b25peC5kZT46Cj4gPj4gPiBBbSBTb25udGFnLCBkZW4gMDUuMDQuMjAxNSwgMjE6MjYgKzAyMDAg c2NocmllYiBDaHJpc3RpYW4gR21laW5lcjoKPiA+PiA+PiAyMDE1LTA0LTAyIDE3OjI5IEdNVCsw MjowMCBMdWNhcyBTdGFjaCA8bC5zdGFjaEBwZW5ndXRyb25peC5kZT46Cj4gPj4gPj4gPiBGcm9t OiBDaHJpc3RpYW4gR21laW5lciA8Y2hyaXN0aWFuLmdtZWluZXJAZ21haWwuY29tPgo+ID4+ID4+ ID4KPiA+PiA+PiA+IFRoaXMgaXMgYSBjb25zb2xpZGF0aW9uIGJ5IFJ1c3NlbGwgS2luZyBvZiBD aHJpc3RpYW4ncyBkcm0gd29yay4KPiA+PiA+PiA+Cj4gPj4gPj4gPiBTaWduZWQtb2ZmLWJ5OiBD aHJpc3RpYW4gR21laW5lciA8Y2hyaXN0aWFuLmdtZWluZXJAZ21haWwuY29tPgo+ID4+ID4+ID4g U2lnbmVkLW9mZi1ieTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybS5saW51eC5vcmcudWs+ Cj4gPj4gPgo+ID4+ID4+ID4gLS0tCj4gPj4gPiBbLi4uXQo+ID4+ID4KPiA+PiA+PiA+ICsjZW5k aWYgLyogU1RBVEVfSElfWE1MICovCj4gPj4gPj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBp L2RybS9ldG5hdml2X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9ldG5hdml2X2RybS5oCj4gPj4g Pj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4+ID4+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5m N2I1YWM2ZjM4NDIKPiA+PiA+PiA+IC0tLSAvZGV2L251bGwKPiA+PiA+PiA+ICsrKyBiL2luY2x1 ZGUvdWFwaS9kcm0vZXRuYXZpdl9kcm0uaAo+ID4+ID4+ID4gQEAgLTAsMCArMSwyMjUgQEAKPiA+ PiA+PiA+ICsvKgo+ID4+ID4+ID4gKyAqIENvcHlyaWdodCAoQykgMjAxMyBSZWQgSGF0Cj4gPj4g Pj4gPiArICogQXV0aG9yOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Cj4gPj4gPj4g PiArICoKPiA+PiA+PiA+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAo+ID4+ID4+ID4gKyAqIHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzIHB1 Ymxpc2hlZCBieQo+ID4+ID4+ID4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4g Pj4gPj4gPiArICoKPiA+PiA+PiA+ICsgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKPiA+PiA+PiA+ICsg KiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD SEFOVEFCSUxJVFkgb3IKPiA+PiA+PiA+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCj4gPj4gPj4gPiAr ICogbW9yZSBkZXRhaWxzLgo+ID4+ID4+ID4gKyAqCj4gPj4gPj4gPiArICogWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxv bmcgd2l0aAo+ID4+ID4+ID4gKyAqIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KPiA+PiA+PiA+ICsgKi8KPiA+PiA+PiA+ICsKPiA+PiA+ PiA+ICsjaWZuZGVmIF9fRVROQVZJVl9EUk1fSF9fCj4gPj4gPj4gPiArI2RlZmluZSBfX0VUTkFW SVZfRFJNX0hfXwo+ID4+ID4+ID4gKwo+ID4+ID4+ID4gKyNpbmNsdWRlIDxzdGRkZWYuaD4KPiA+ PiA+PiA+ICsjaW5jbHVkZSA8ZHJtL2RybS5oPgo+ID4+ID4+ID4gKwo+ID4+ID4+ID4gKy8qIFBs ZWFzZSBub3RlIHRoYXQgbW9kaWZpY2F0aW9ucyB0byBhbGwgc3RydWN0cyBkZWZpbmVkIGhlcmUg YXJlCj4gPj4gPj4gPiArICogc3ViamVjdCB0byBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBjb25z dHJhaW50czoKPiA+PiA+PiA+ICsgKiAgMSkgRG8gbm90IHVzZSBwb2ludGVycywgdXNlIHVpbnQ2 NF90IGluc3RlYWQgZm9yIDMyIGJpdCAvIDY0IGJpdAo+ID4+ID4+ID4gKyAqICAgICB1c2VyL2tl cm5lbCBjb21wYXRpYmlsaXR5Cj4gPj4gPj4gPiArICogIDIpIEtlZXAgZmllbGRzIGFsaWduZWQg dG8gdGhlaXIgc2l6ZQo+ID4+ID4+ID4gKyAqICAzKSBCZWNhdXNlIG9mIGhvdyBkcm1faW9jdGwo KSB3b3Jrcywgd2UgY2FuIGFkZCBuZXcgZmllbGRzIGF0Cj4gPj4gPj4gPiArICogICAgIHRoZSBl bmQgb2YgYW4gaW9jdGwgaWYgc29tZSBjYXJlIGlzIHRha2VuOiBkcm1faW9jdGwoKSB3aWxsCj4g Pj4gPj4gPiArICogICAgIHplcm8gb3V0IHRoZSBuZXcgZmllbGRzIGF0IHRoZSB0YWlsIG9mIHRo ZSBpb2N0bCwgc28gYSB6ZXJvCj4gPj4gPj4gPiArICogICAgIHZhbHVlIHNob3VsZCBoYXZlIGEg YmFja3dhcmRzIGNvbXBhdGlibGUgbWVhbmluZy4gIEFuZCBmb3IKPiA+PiA+PiA+ICsgKiAgICAg b3V0cHV0IHBhcmFtcywgdXNlcnNwYWNlIHdvbid0IHNlZSB0aGUgbmV3bHkgYWRkZWQgb3V0cHV0 Cj4gPj4gPj4gPiArICogICAgIGZpZWxkcy4uIHNvIHRoYXQgaGFzIHRvIGJlIHNvbWVob3cgb2su Cj4gPj4gPj4gPiArICovCj4gPj4gPj4gPiArCj4gPj4gPj4gPiArI2RlZmluZSBFVE5BX1BJUEVf M0QgICAgICAweDAwCj4gPj4gPj4gPiArI2RlZmluZSBFVE5BX1BJUEVfMkQgICAgICAweDAxCj4g Pj4gPj4gPiArI2RlZmluZSBFVE5BX1BJUEVfVkcgICAgICAweDAyCj4gPj4gPj4gPiArCj4gPj4g Pj4gPiArI2RlZmluZSBFVE5BX01BWF9QSVBFUyAgICAzCj4gPj4gPj4gPiArCj4gPj4gPj4gPiAr LyogdGltZW91dHMgYXJlIHNwZWNpZmllZCBpbiBjbG9jay1tb25vdG9uaWMgYWJzb2x1dGUgdGlt ZXMgKHRvIHNpbXBsaWZ5Cj4gPj4gPj4gPiArICogcmVzdGFydGluZyBpbnRlcnJ1cHRlZCBpb2N0 bHMpLiAgVGhlIGZvbGxvd2luZyBzdHJ1Y3QgaXMgbG9naWNhbGx5IHRoZQo+ID4+ID4+ID4gKyAq IHNhbWUgYXMgJ3N0cnVjdCB0aW1lc3BlYycgYnV0IDMyLzY0YiBBQkkgc2FmZS4KPiA+PiA+PiA+ ICsgKi8KPiA+PiA+PiA+ICtzdHJ1Y3QgZHJtX2V0bmF2aXZfdGltZXNwZWMgewo+ID4+ID4+ID4g KyAgICAgICBpbnQ2NF90IHR2X3NlYzsgICAgICAgICAgLyogc2Vjb25kcyAqLwo+ID4+ID4+ID4g KyAgICAgICBpbnQ2NF90IHR2X25zZWM7ICAgICAgICAgLyogbmFub3NlY29uZHMgKi8KPiA+PiA+ PiA+ICt9Owo+ID4+ID4+ID4gKwo+ID4+ID4+ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVf TU9ERUwgICAgICAgICAgICAgICAgICAgICAweDAxCj4gPj4gPj4gPiArI2RlZmluZSBFVE5BVklW X1BBUkFNX0dQVV9SRVZJU0lPTiAgICAgICAgICAgICAgICAgIDB4MDIKPiA+PiA+PiA+ICsjZGVm aW5lIEVUTkFWSVZfUEFSQU1fR1BVX0ZFQVRVUkVTXzAgICAgICAgICAgICAgICAgMHgwMwo+ID4+ ID4+ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfRkVBVFVSRVNfMSAgICAgICAgICAgICAg ICAweDA0Cj4gPj4gPj4gPiArI2RlZmluZSBFVE5BVklWX1BBUkFNX0dQVV9GRUFUVVJFU18yICAg ICAgICAgICAgICAgIDB4MDUKPiA+PiA+PiA+ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX0ZF QVRVUkVTXzMgICAgICAgICAgICAgICAgMHgwNgo+ID4+ID4+ID4gKyNkZWZpbmUgRVROQVZJVl9Q QVJBTV9HUFVfRkVBVFVSRVNfNCAgICAgICAgICAgICAgICAweDA3Cj4gPj4gPj4gPiArCj4gPj4g Pj4gPiArI2RlZmluZSBFVE5BVklWX1BBUkFNX0dQVV9TVFJFQU1fQ09VTlQgICAgICAgICAgICAg IDB4MTAKPiA+PiA+PiA+ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX1JFR0lTVEVSX01BWCAg ICAgICAgICAgICAgMHgxMQo+ID4+ID4+ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfVEhS RUFEX0NPVU5UICAgICAgICAgICAgICAweDEyCj4gPj4gPj4gPiArI2RlZmluZSBFVE5BVklWX1BB UkFNX0dQVV9WRVJURVhfQ0FDSEVfU0laRSAgICAgICAgIDB4MTMKPiA+PiA+PiA+ICsjZGVmaW5l IEVUTkFWSVZfUEFSQU1fR1BVX1NIQURFUl9DT1JFX0NPVU5UICAgICAgICAgMHgxNAo+ID4+ID4+ ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfUElYRUxfUElQRVMgICAgICAgICAgICAgICAw eDE1Cj4gPj4gPj4gPiArI2RlZmluZSBFVE5BVklWX1BBUkFNX0dQVV9WRVJURVhfT1VUUFVUX0JV RkZFUl9TSVpFIDB4MTYKPiA+PiA+PiA+ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX0JVRkZF Ul9TSVpFICAgICAgICAgICAgICAgMHgxNwo+ID4+ID4+ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJB TV9HUFVfSU5TVFJVQ1RJT05fQ09VTlQgICAgICAgICAweDE4Cj4gPj4gPj4gPiArI2RlZmluZSBF VE5BVklWX1BBUkFNX0dQVV9OVU1fQ09OU1RBTlRTICAgICAgICAgICAgIDB4MTkKPiA+PiA+PiA+ ICsKPiA+PiA+PiA+ICsvLyNkZWZpbmUgTVNNX1BBUkFNX0dNRU1fU0laRSAgMHgwMgo+ID4+ID4+ ID4gKwo+ID4+ID4+ID4gK3N0cnVjdCBkcm1fZXRuYXZpdl9wYXJhbSB7Cj4gPj4gPj4gPiArICAg ICAgIHVpbnQzMl90IHBpcGU7ICAgICAgICAgICAvKiBpbiwgRVROQV9QSVBFX3ggKi8KPiA+PiA+ PiA+ICsgICAgICAgdWludDMyX3QgcGFyYW07ICAgICAgICAgIC8qIGluLCBFVE5BVklWX1BBUkFN X3ggKi8KPiA+PiA+PiA+ICsgICAgICAgdWludDY0X3QgdmFsdWU7ICAgICAgICAgIC8qIG91dCAo Z2V0X3BhcmFtKSBvciBpbiAoc2V0X3BhcmFtKSAqLwo+ID4+ID4+ID4gK307Cj4gPj4gPj4gPiAr Cj4gPj4gPj4gPiArLyoKPiA+PiA+PiA+ICsgKiBHRU0gYnVmZmVyczoKPiA+PiA+PiA+ICsgKi8K PiA+PiA+PiA+ICsKPiA+PiA+PiA+ICsjZGVmaW5lIEVUTkFfQk9fQ01EU1RSRUFNICAgIDB4MDAw MDAwMDEKPiA+PiA+PiA+ICsjZGVmaW5lIEVUTkFfQk9fQ0FDSEVfTUFTSyAgIDB4MDAwZjAwMDAK PiA+PiA+PiA+ICsvKiBjYWNoZSBtb2RlcyAqLwo+ID4+ID4+ID4gKyNkZWZpbmUgRVROQV9CT19D QUNIRUQgICAgICAgMHgwMDAxMDAwMAo+ID4+ID4+ID4gKyNkZWZpbmUgRVROQV9CT19XQyAgICAg ICAgICAgMHgwMDAyMDAwMAo+ID4+ID4+ID4gKyNkZWZpbmUgRVROQV9CT19VTkNBQ0hFRCAgICAg MHgwMDA0MDAwMAo+ID4+ID4+ID4gKwo+ID4+ID4+ID4gK3N0cnVjdCBkcm1fZXRuYXZpdl9nZW1f bmV3IHsKPiA+PiA+PiA+ICsgICAgICAgdWludDY0X3Qgc2l6ZTsgICAgICAgICAgIC8qIGluICov Cj4gPj4gPj4gPiArICAgICAgIHVpbnQzMl90IGZsYWdzOyAgICAgICAgICAvKiBpbiwgbWFzayBv ZiBFVE5BX0JPX3ggKi8KPiA+PiA+PiA+ICsgICAgICAgdWludDMyX3QgaGFuZGxlOyAgICAgICAg IC8qIG91dCAqLwo+ID4+ID4+ID4gK307Cj4gPj4gPj4gPiArCj4gPj4gPj4gPiArc3RydWN0IGRy bV9ldG5hdml2X2dlbV9pbmZvIHsKPiA+PiA+PiA+ICsgICAgICAgdWludDMyX3QgaGFuZGxlOyAg ICAgICAgIC8qIGluICovCj4gPj4gPj4gPiArICAgICAgIHVpbnQzMl90IHBhZDsKPiA+PiA+PiA+ ICsgICAgICAgdWludDY0X3Qgb2Zmc2V0OyAgICAgICAgIC8qIG91dCwgb2Zmc2V0IHRvIHBhc3Mg dG8gbW1hcCgpICovCj4gPj4gPj4gPiArfTsKPiA+PiA+PiA+ICsKPiA+PiA+PiA+ICsjZGVmaW5l IEVUTkFfUFJFUF9SRUFEICAgICAgICAweDAxCj4gPj4gPj4gPiArI2RlZmluZSBFVE5BX1BSRVBf V1JJVEUgICAgICAgMHgwMgo+ID4+ID4+ID4gKyNkZWZpbmUgRVROQV9QUkVQX05PU1lOQyAgICAg IDB4MDQKPiA+PiA+PiA+ICsKPiA+PiA+PiA+ICtzdHJ1Y3QgZHJtX2V0bmF2aXZfZ2VtX2NwdV9w cmVwIHsKPiA+PiA+PiA+ICsgICAgICAgdWludDMyX3QgaGFuZGxlOyAgICAgICAgIC8qIGluICov Cj4gPj4gPj4gPiArICAgICAgIHVpbnQzMl90IG9wOyAgICAgICAgICAgICAvKiBpbiwgbWFzayBv ZiBFVE5BX1BSRVBfeCAqLwo+ID4+ID4+ID4gKyAgICAgICBzdHJ1Y3QgZHJtX2V0bmF2aXZfdGlt ZXNwZWMgdGltZW91dDsgICAvKiBpbiAqLwo+ID4+ID4+ID4gK307Cj4gPj4gPj4gPiArCj4gPj4g Pj4gPiArc3RydWN0IGRybV9ldG5hdml2X2dlbV9jcHVfZmluaSB7Cj4gPj4gPj4gPiArICAgICAg IHVpbnQzMl90IGhhbmRsZTsgICAgICAgICAvKiBpbiAqLwo+ID4+ID4+ID4gK307Cj4gPj4gPj4g PiArCj4gPj4gPj4gPiArLyoKPiA+PiA+PiA+ICsgKiBDbWRzdHJlYW0gU3VibWlzc2lvbjoKPiA+ PiA+PiA+ICsgKi8KPiA+PiA+PiA+ICsKPiA+PiA+PiA+ICsvKiBUaGUgdmFsdWUgd3JpdHRlbiBp bnRvIHRoZSBjbWRzdHJlYW0gaXMgbG9naWNhbGx5Ogo+ID4+ID4+ID4gKyAqCj4gPj4gPj4gPiAr ICogICAoKHJlbG9jYnVmLT5ncHVhZGRyICsgcmVsb2Nfb2Zmc2V0KSA8PCBzaGlmdCkgfCBvcgo+ ID4+ID4+ID4gKyAqCj4gPj4gPj4gPiArICogV2hlbiB3ZSBoYXZlIEdQVSdzIHcvID4zMmJpdCBw dHJzLCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gZGVhbAo+ID4+ID4+ID4gKyAqIHdpdGggdGhp cyBieSBlbWl0J2luZyB0d28gcmVsb2MgZW50cmllcyB3aXRoIGFwcHJvcHJpYXRlIHNoaWZ0Cj4g Pj4gPj4gPiArICogdmFsdWVzLiAgT3IgYSBuZXcgRVROQV9TVUJNSVRfQ01EX3ggdHlwZSB3b3Vs ZCBhbHNvIGJlIGFuIG9wdGlvbi4KPiA+PiA+PiA+ICsgKgo+ID4+ID4+ID4gKyAqIE5PVEUgdGhh dCByZWxvYydzIG11c3QgYmUgc29ydGVkIGJ5IG9yZGVyIG9mIGluY3JlYXNpbmcgc3VibWl0X29m ZnNldCwKPiA+PiA+PiA+ICsgKiBvdGhlcndpc2UgRUlOVkFMLgo+ID4+ID4+ID4gKyAqLwo+ID4+ ID4+ID4gK3N0cnVjdCBkcm1fZXRuYXZpdl9nZW1fc3VibWl0X3JlbG9jIHsKPiA+PiA+PiA+ICsg ICAgICAgdWludDMyX3Qgc3VibWl0X29mZnNldDsgIC8qIGluLCBvZmZzZXQgZnJvbSBzdWJtaXRf Ym8gKi8KPiA+PiA+PiA+ICsgICAgICAgdWludDMyX3Qgb3I7ICAgICAgICAgICAgIC8qIGluLCB2 YWx1ZSBPUidkIHdpdGggcmVzdWx0ICovCj4gPj4gPj4gPiArICAgICAgIGludDMyX3QgIHNoaWZ0 OyAgICAgICAgICAvKiBpbiwgYW1vdW50IG9mIGxlZnQgc2hpZnQgKGNhbiBiZSBuZWdhdGl2ZSkg Ki8KPiA+PiA+PiA+ICsgICAgICAgdWludDMyX3QgcmVsb2NfaWR4OyAgICAgIC8qIGluLCBpbmRl eCBvZiByZWxvY19ibyBidWZmZXIgKi8KPiA+PiA+PiA+ICsgICAgICAgdWludDY0X3QgcmVsb2Nf b2Zmc2V0OyAgIC8qIGluLCBvZmZzZXQgZnJvbSBzdGFydCBvZiByZWxvY19ibyAqLwo+ID4+ID4+ ID4gK307Cj4gPj4gPj4gPiArCj4gPj4gPj4gPiArLyogc3VibWl0LXR5cGVzOgo+ID4+ID4+ID4g KyAqICAgQlVGIC0gdGhpcyBjbWQgYnVmZmVyIGlzIGV4ZWN1dGVkIG5vcm1hbGx5Lgo+ID4+ID4+ ID4gKyAqICAgSUJfVEFSR0VUX0JVRiAtIHRoaXMgY21kIGJ1ZmZlciBpcyBhbiBJQiB0YXJnZXQu ICBSZWxvYydzIGFyZQo+ID4+ID4+ID4gKyAqICAgICAgcHJvY2Vzc2VkIG5vcm1hbGx5LCBidXQg dGhlIGtlcm5lbCBkb2VzIG5vdCBzZXR1cCBhbiBJQiB0bwo+ID4+ID4+ID4gKyAqICAgICAgdGhp cyBidWZmZXIgaW4gdGhlIGZpcnN0LWxldmVsIHJpbmdidWZmZXIKPiA+PiA+PiA+ICsgKiAgIENU WF9SRVNUT1JFX0JVRiAtIG9ubHkgZXhlY3V0ZWQgaWYgdGhlcmUgaGFzIGJlZW4gYSBHUFUgY29u dGV4dAo+ID4+ID4+ID4gKyAqICAgICAgc3dpdGNoIHNpbmNlIHRoZSBsYXN0IFNVQk1JVCBpb2N0 bAo+ID4+ID4+ID4gKyAqLwo+ID4+ID4+ID4gKyNkZWZpbmUgRVROQV9TVUJNSVRfQ01EX0JVRiAg ICAgICAgICAgICAweDAwMDEKPiA+PiA+PiA+ICsjZGVmaW5lIEVUTkFfU1VCTUlUX0NNRF9JQl9U QVJHRVRfQlVGICAgMHgwMDAyCj4gPj4gPj4gPiArI2RlZmluZSBFVE5BX1NVQk1JVF9DTURfQ1RY X1JFU1RPUkVfQlVGIDB4MDAwMyBpcyBhCj4gPj4gPj4gPiArc3RydWN0IGRybV9ldG5hdml2X2dl bV9zdWJtaXRfY21kIHsKPiA+PiA+PiA+ICsgICAgICAgdWludDMyX3QgdHlwZTsgICAgICAgICAg IC8qIGluLCBvbmUgb2YgRVROQV9TVUJNSVRfQ01EX3ggKi8KPiA+PiA+Pgo+ID4+ID4+IERvIHdl IG5lZWQgZGlmZmVyZW50IHR5cGVzPyBJIGRpZCBub3QgdXNlIHRoaXMgaW4gbXkga2VybmVsIHRy ZWUuCj4gPj4gPj4KPiA+PiA+Cj4gPj4gPiBQbGVhc2UgYWxzbyBub3QgdGhlIGNvbW1pdCBjbGVh bmluZyB0aGlzIEFQSSwgd2hpY2ggY2hhbmdlcyB0aGlzIGEgYml0Lgo+ID4+ID4KPiA+Pgo+ID4+ IEFoIHllcy4uIEkgc2VlIGl0Lgo+ID4+Cj4gPj4gPiBCdXQgeWVzIHdlIG5lZWQgZGlmZmVyZW50 IHR5cGVzLiBBdCBsZWFzdCB0aGUgY29udGV4dCByZXN0b3JlIGJ1ZmZlcgo+ID4+ID4gdHlwZSBp cyBuZWVkZWQgdG8gcHJvcGVybHkgaW1wbGVtZW50IEdQVSBwb3dlciBtYW5hZ2VtZW50IGFuZCBj b250ZXh0Cj4gPj4gPiBzd2l0Y2hpbmcuCj4gPj4gPgo+ID4+Cj4gPj4gV2hhdCByb2xlIGRvZXMg R1BVIHBvd2VyIG1hbmFnZW1lbnQgcGxheXMgaGVyZT8gRm9yIHRoZSBjb250ZXh0IHN3aXRjaGlu Zwo+ID4+IGl0IGNvdWxkIG1ha2Ugc2Vuc2UuIEJ1dCBmb3IgdGhlIDJkIGNvcmUgdGhlIGNvbnRl eHQgaXMgc28gc21hbGwgdGhhdAo+ID4+IGl0IGRvZXMgbm90Cj4gPj4gaHVydCB0byBzZW5kIGl0 IHdpdGggZXZlcnkgY29tbWFuZCBzdHJlYW0uIEZvciB0aGUgM2QgY29yZSBpdCBpcyBtdWNoCj4g Pj4gYmlnZ2VyLCBidXQKPiA+PiB0aGlzIGNvdWxkIGJlIGRvbmUgY29tcGxldGVseSBpbiB0aGUg a2VybmVsLiBPciBJIGFtIHdyb25nIGhlcmU/Cj4gPj4KPiA+IElmIHlvdSBwb3dlciBkb3duIHRo ZSBHUFUgeW91IGxvb3NlIHRoZSBjb250ZXh0LiBZb3UgYXJlIHJpZ2h0IHRoYXQgd2UKPiA+IGNv dWxkIHNhdmUvcmVzdG9yZSB0aGUgY29udGV4dCBmcm9tIGtlcm5lbCBzcGFjZSwgYnV0IHRoYXQg aXMgcmVhbGx5Cj4gPiB0YWtpbmcgYSB0b2xsIG9uIENQVSB0aW1lLiBJdCBpcyBtdWNoIGJldHRl ciB0byBoYXZlIHVzZXJzcGFjZSBwcm92aWRlIGEKPiA+IGNvbnRleHQgYnVmZmVyIHRvIGdldCB0 aGUgR1BVIGluIHRoZSBleHBlY3RlZCBzdGF0ZSwgYXMgeW91IHRoZW4gb25seQo+ID4gbmVlZCB0 byBzcGxpY2UgdGhpcyBpbnRvIHRoZSBleGVjdXRpb24gc3RyZWFtIHRvIHJlc3RvcmUgdGhlIGNv bnRleHQKPiA+IGluc3RlYWQgb2YgcHVzaGluZyBpdCB3aXRoIHRoZSBDUFUuIFJlYWRpbmcgYmFj ayB0aGUgY29udGV4dCBvbiBldmVyeQo+ID4gc3dpdGNoIHdpbGwga2lsbCBhbnkgcGVyZm9ybWFu Y2UuCj4gCj4gQW5kIGZvciB0aGlzIHlvdSBuZWVkIGEgb3duIGNvbW1hbmQgdHlwZT8gVGhlIGNv bnRleHQgaXMgbm90aGluZyBzcGVjaWFsLiBPbmx5Cj4gbG9hZCBzdGF0ZSBjb21tYW5kcyBpbiB0 aGUgY29tbWFuZCBidWZmZXIuIFlvdSBjYW4gaGF2ZSBhbiBpbnRlcm5hbAo+IHJlcHJlc2VudGF0 aW9uCj4gb2YgdGhlIGNvbnRleHQgaW4gdGhlIHVzZXIgc3BhY2UgKGFzIGxpYmV0bmF2aXYgZG9l cyBpdCByaWdodCBub3cgKWFuZAo+IHdvcmsgd2l0aCBpdC4KPiBUaGVuIGlmIHlvdSB3YW50IHRv IHN1Ym1pdCBzb21lIHJlbmRlciBjYWxscyBldGMgeW91IGNhbiBsb29rIGlmIHRoZQo+IHN0YXRl IGlzIGRpcnR5IGFuZCBzdWJtaXQKPiB0aGUgd2hvbGUgb3IgdGhlIGNoYW5nZXMgdmFsdWVzLiBT byBJIGFtIG5vdCBzdXJlIGlmIHRoZXJlIGlzIGEgbmVlZAo+IGZvciBhIGNvbnRleHQKPiBidWZm ZXIgdHlwZSBhcyBpdCBpcyBub3RoaW5nIHNwZWNpYWwuCgpIb3cgd291bGQgdGhlIHVzZXJzcGFj ZSBrbm93IGlmIGFub3RoZXIgcHJvY2VzcyAvIGEgR1BVIGhhbmcgLyBhIHBvd2VyCm1hbmFnZW1l bnQgZXZlbnQgaGFzIGRpcnRpZWQgdGhlIHN0YXRlIG9mIHRoZSBHUFU/IEl0IGlzIG9ubHkgdGhl IGtlcm5lbAp3aG8ga25vd3MgaWYgdGhlIHN0YXRlIG9mIHRoZSBHUFUgaGFzIGNoYW5nZWQgc2lu Y2UgdGhlIGxhc3Qgc3VibWl0IG9mCnRoaXMgcHJvY2Vzcy4KCkluIHRoZSBjb21tb24gY2FzZSB3 aGVuIG5vdGhpbmcgaGFzIGRpc3R1cmJlZCB0aGUgY29udGV4dCB3ZSBkb24ndCB3YW50CnRvIGlu c2VydCB0aGUgY29udGV4dCBidWZmZXIsIGFzIHdlIHJlYWxseSB3YW50IG1pbmltYWwgc3RhdGUg dXBkYXRlcyBpbgp0aGF0IGNhc2UuIFdlIG5lZWQgYSB3YXkgdG8gdGVsbCB0aGUga2VybmVsIHdo aWNoIGNvbW1hbmQgYnVmZmVyIGlzIHRoZQpjb250ZXh0IGJ1ZmZlciwgc28gdGhlIGtlcm5lbCBv bmx5IHNwbGljZXMgdGhpcyBidWZmZXIgaW50byB0aGUgc3RyZWFtCmlmIHRoZSBjb250ZXh0IGlz IGRpcnR5LgoKUmVnYXJkcywKTHVjYXMKCi0tIApQZW5ndXRyb25peCBlLksuICAgICAgICAgICAg IHwgTHVjYXMgU3RhY2ggICAgICAgICAgICAgICAgIHwKSW5kdXN0cmlhbCBMaW51eCBTb2x1dGlv bnMgICB8IGh0dHA6Ly93d3cucGVuZ3V0cm9uaXguZGUvICB8CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=