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:20:10 +0200 Message-ID: <1428398410.2811.46.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> 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 5EB456E542 for ; Tue, 7 Apr 2015 02:20:15 -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 , Sascha Hauer , DRI mailing list List-Id: dri-devel@lists.freedesktop.org QW0gRGllbnN0YWcsIGRlbiAwNy4wNC4yMDE1LCAxMTowNCArMDIwMCBzY2hyaWViIENocmlzdGlh biBHbWVpbmVyOgo+IEhpIEx1Y2FzCj4gCj4gMjAxNS0wNC0wNyA5OjM1IEdNVCswMjowMCBMdWNh cyBTdGFjaCA8bC5zdGFjaEBwZW5ndXRyb25peC5kZT46Cj4gPiBBbSBTb25udGFnLCBkZW4gMDUu MDQuMjAxNSwgMjE6MjYgKzAyMDAgc2NocmllYiBDaHJpc3RpYW4gR21laW5lcjoKPiA+PiAyMDE1 LTA0LTAyIDE3OjI5IEdNVCswMjowMCBMdWNhcyBTdGFjaCA8bC5zdGFjaEBwZW5ndXRyb25peC5k ZT46Cj4gPj4gPiBGcm9tOiBDaHJpc3RpYW4gR21laW5lciA8Y2hyaXN0aWFuLmdtZWluZXJAZ21h aWwuY29tPgo+ID4+ID4KPiA+PiA+IFRoaXMgaXMgYSBjb25zb2xpZGF0aW9uIGJ5IFJ1c3NlbGwg S2luZyBvZiBDaHJpc3RpYW4ncyBkcm0gd29yay4KPiA+PiA+Cj4gPj4gPiBTaWduZWQtb2ZmLWJ5 OiBDaHJpc3RpYW4gR21laW5lciA8Y2hyaXN0aWFuLmdtZWluZXJAZ21haWwuY29tPgo+ID4+ID4g U2lnbmVkLW9mZi1ieTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybS5saW51eC5vcmcudWs+ Cj4gPgo+ID4+ID4gLS0tCj4gPiBbLi4uXQo+ID4KPiA+PiA+ICsjZW5kaWYgLyogU1RBVEVfSElf WE1MICovCj4gPj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9ldG5hdml2X2RybS5o IGIvaW5jbHVkZS91YXBpL2RybS9ldG5hdml2X2RybS5oCj4gPj4gPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+ID4+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5mN2I1YWM2ZjM4NDIKPiA+PiA+IC0tLSAv ZGV2L251bGwKPiA+PiA+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZXRuYXZpdl9kcm0uaAo+ID4+ ID4gQEAgLTAsMCArMSwyMjUgQEAKPiA+PiA+ICsvKgo+ID4+ID4gKyAqIENvcHlyaWdodCAoQykg MjAxMyBSZWQgSGF0Cj4gPj4gPiArICogQXV0aG9yOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFp bC5jb20+Cj4gPj4gPiArICoKPiA+PiA+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAo+ID4+ID4gKyAqIHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAy IGFzIHB1Ymxpc2hlZCBieQo+ID4+ID4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24u Cj4gPj4gPiArICoKPiA+PiA+ICsgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKPiA+PiA+ICsgKiBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFC SUxJVFkgb3IKPiA+PiA+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCj4gPj4gPiArICogbW9yZSBkZXRh aWxzLgo+ID4+ID4gKyAqCj4gPj4gPiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcgd2l0aAo+ID4+ID4gKyAq IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KPiA+PiA+ICsgKi8KPiA+PiA+ICsKPiA+PiA+ICsjaWZuZGVmIF9fRVROQVZJVl9EUk1fSF9f Cj4gPj4gPiArI2RlZmluZSBfX0VUTkFWSVZfRFJNX0hfXwo+ID4+ID4gKwo+ID4+ID4gKyNpbmNs dWRlIDxzdGRkZWYuaD4KPiA+PiA+ICsjaW5jbHVkZSA8ZHJtL2RybS5oPgo+ID4+ID4gKwo+ID4+ ID4gKy8qIFBsZWFzZSBub3RlIHRoYXQgbW9kaWZpY2F0aW9ucyB0byBhbGwgc3RydWN0cyBkZWZp bmVkIGhlcmUgYXJlCj4gPj4gPiArICogc3ViamVjdCB0byBiYWNrd2FyZHMtY29tcGF0aWJpbGl0 eSBjb25zdHJhaW50czoKPiA+PiA+ICsgKiAgMSkgRG8gbm90IHVzZSBwb2ludGVycywgdXNlIHVp bnQ2NF90IGluc3RlYWQgZm9yIDMyIGJpdCAvIDY0IGJpdAo+ID4+ID4gKyAqICAgICB1c2VyL2tl cm5lbCBjb21wYXRpYmlsaXR5Cj4gPj4gPiArICogIDIpIEtlZXAgZmllbGRzIGFsaWduZWQgdG8g dGhlaXIgc2l6ZQo+ID4+ID4gKyAqICAzKSBCZWNhdXNlIG9mIGhvdyBkcm1faW9jdGwoKSB3b3Jr cywgd2UgY2FuIGFkZCBuZXcgZmllbGRzIGF0Cj4gPj4gPiArICogICAgIHRoZSBlbmQgb2YgYW4g aW9jdGwgaWYgc29tZSBjYXJlIGlzIHRha2VuOiBkcm1faW9jdGwoKSB3aWxsCj4gPj4gPiArICog ICAgIHplcm8gb3V0IHRoZSBuZXcgZmllbGRzIGF0IHRoZSB0YWlsIG9mIHRoZSBpb2N0bCwgc28g YSB6ZXJvCj4gPj4gPiArICogICAgIHZhbHVlIHNob3VsZCBoYXZlIGEgYmFja3dhcmRzIGNvbXBh dGlibGUgbWVhbmluZy4gIEFuZCBmb3IKPiA+PiA+ICsgKiAgICAgb3V0cHV0IHBhcmFtcywgdXNl cnNwYWNlIHdvbid0IHNlZSB0aGUgbmV3bHkgYWRkZWQgb3V0cHV0Cj4gPj4gPiArICogICAgIGZp ZWxkcy4uIHNvIHRoYXQgaGFzIHRvIGJlIHNvbWVob3cgb2suCj4gPj4gPiArICovCj4gPj4gPiAr Cj4gPj4gPiArI2RlZmluZSBFVE5BX1BJUEVfM0QgICAgICAweDAwCj4gPj4gPiArI2RlZmluZSBF VE5BX1BJUEVfMkQgICAgICAweDAxCj4gPj4gPiArI2RlZmluZSBFVE5BX1BJUEVfVkcgICAgICAw eDAyCj4gPj4gPiArCj4gPj4gPiArI2RlZmluZSBFVE5BX01BWF9QSVBFUyAgICAzCj4gPj4gPiAr Cj4gPj4gPiArLyogdGltZW91dHMgYXJlIHNwZWNpZmllZCBpbiBjbG9jay1tb25vdG9uaWMgYWJz b2x1dGUgdGltZXMgKHRvIHNpbXBsaWZ5Cj4gPj4gPiArICogcmVzdGFydGluZyBpbnRlcnJ1cHRl ZCBpb2N0bHMpLiAgVGhlIGZvbGxvd2luZyBzdHJ1Y3QgaXMgbG9naWNhbGx5IHRoZQo+ID4+ID4g KyAqIHNhbWUgYXMgJ3N0cnVjdCB0aW1lc3BlYycgYnV0IDMyLzY0YiBBQkkgc2FmZS4KPiA+PiA+ ICsgKi8KPiA+PiA+ICtzdHJ1Y3QgZHJtX2V0bmF2aXZfdGltZXNwZWMgewo+ID4+ID4gKyAgICAg ICBpbnQ2NF90IHR2X3NlYzsgICAgICAgICAgLyogc2Vjb25kcyAqLwo+ID4+ID4gKyAgICAgICBp bnQ2NF90IHR2X25zZWM7ICAgICAgICAgLyogbmFub3NlY29uZHMgKi8KPiA+PiA+ICt9Owo+ID4+ ID4gKwo+ID4+ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfTU9ERUwgICAgICAgICAgICAg ICAgICAgICAweDAxCj4gPj4gPiArI2RlZmluZSBFVE5BVklWX1BBUkFNX0dQVV9SRVZJU0lPTiAg ICAgICAgICAgICAgICAgIDB4MDIKPiA+PiA+ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX0ZF QVRVUkVTXzAgICAgICAgICAgICAgICAgMHgwMwo+ID4+ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJB TV9HUFVfRkVBVFVSRVNfMSAgICAgICAgICAgICAgICAweDA0Cj4gPj4gPiArI2RlZmluZSBFVE5B VklWX1BBUkFNX0dQVV9GRUFUVVJFU18yICAgICAgICAgICAgICAgIDB4MDUKPiA+PiA+ICsjZGVm aW5lIEVUTkFWSVZfUEFSQU1fR1BVX0ZFQVRVUkVTXzMgICAgICAgICAgICAgICAgMHgwNgo+ID4+ ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfRkVBVFVSRVNfNCAgICAgICAgICAgICAgICAw eDA3Cj4gPj4gPiArCj4gPj4gPiArI2RlZmluZSBFVE5BVklWX1BBUkFNX0dQVV9TVFJFQU1fQ09V TlQgICAgICAgICAgICAgIDB4MTAKPiA+PiA+ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX1JF R0lTVEVSX01BWCAgICAgICAgICAgICAgMHgxMQo+ID4+ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJB TV9HUFVfVEhSRUFEX0NPVU5UICAgICAgICAgICAgICAweDEyCj4gPj4gPiArI2RlZmluZSBFVE5B VklWX1BBUkFNX0dQVV9WRVJURVhfQ0FDSEVfU0laRSAgICAgICAgIDB4MTMKPiA+PiA+ICsjZGVm aW5lIEVUTkFWSVZfUEFSQU1fR1BVX1NIQURFUl9DT1JFX0NPVU5UICAgICAgICAgMHgxNAo+ID4+ ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfUElYRUxfUElQRVMgICAgICAgICAgICAgICAw eDE1Cj4gPj4gPiArI2RlZmluZSBFVE5BVklWX1BBUkFNX0dQVV9WRVJURVhfT1VUUFVUX0JVRkZF Ul9TSVpFIDB4MTYKPiA+PiA+ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX0JVRkZFUl9TSVpF ICAgICAgICAgICAgICAgMHgxNwo+ID4+ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfSU5T VFJVQ1RJT05fQ09VTlQgICAgICAgICAweDE4Cj4gPj4gPiArI2RlZmluZSBFVE5BVklWX1BBUkFN X0dQVV9OVU1fQ09OU1RBTlRTICAgICAgICAgICAgIDB4MTkKPiA+PiA+ICsKPiA+PiA+ICsvLyNk ZWZpbmUgTVNNX1BBUkFNX0dNRU1fU0laRSAgMHgwMgo+ID4+ID4gKwo+ID4+ID4gK3N0cnVjdCBk cm1fZXRuYXZpdl9wYXJhbSB7Cj4gPj4gPiArICAgICAgIHVpbnQzMl90IHBpcGU7ICAgICAgICAg ICAvKiBpbiwgRVROQV9QSVBFX3ggKi8KPiA+PiA+ICsgICAgICAgdWludDMyX3QgcGFyYW07ICAg ICAgICAgIC8qIGluLCBFVE5BVklWX1BBUkFNX3ggKi8KPiA+PiA+ICsgICAgICAgdWludDY0X3Qg dmFsdWU7ICAgICAgICAgIC8qIG91dCAoZ2V0X3BhcmFtKSBvciBpbiAoc2V0X3BhcmFtKSAqLwo+ ID4+ID4gK307Cj4gPj4gPiArCj4gPj4gPiArLyoKPiA+PiA+ICsgKiBHRU0gYnVmZmVyczoKPiA+ PiA+ICsgKi8KPiA+PiA+ICsKPiA+PiA+ICsjZGVmaW5lIEVUTkFfQk9fQ01EU1RSRUFNICAgIDB4 MDAwMDAwMDEKPiA+PiA+ICsjZGVmaW5lIEVUTkFfQk9fQ0FDSEVfTUFTSyAgIDB4MDAwZjAwMDAK PiA+PiA+ICsvKiBjYWNoZSBtb2RlcyAqLwo+ID4+ID4gKyNkZWZpbmUgRVROQV9CT19DQUNIRUQg ICAgICAgMHgwMDAxMDAwMAo+ID4+ID4gKyNkZWZpbmUgRVROQV9CT19XQyAgICAgICAgICAgMHgw MDAyMDAwMAo+ID4+ID4gKyNkZWZpbmUgRVROQV9CT19VTkNBQ0hFRCAgICAgMHgwMDA0MDAwMAo+ ID4+ID4gKwo+ID4+ID4gK3N0cnVjdCBkcm1fZXRuYXZpdl9nZW1fbmV3IHsKPiA+PiA+ICsgICAg ICAgdWludDY0X3Qgc2l6ZTsgICAgICAgICAgIC8qIGluICovCj4gPj4gPiArICAgICAgIHVpbnQz Ml90IGZsYWdzOyAgICAgICAgICAvKiBpbiwgbWFzayBvZiBFVE5BX0JPX3ggKi8KPiA+PiA+ICsg ICAgICAgdWludDMyX3QgaGFuZGxlOyAgICAgICAgIC8qIG91dCAqLwo+ID4+ID4gK307Cj4gPj4g PiArCj4gPj4gPiArc3RydWN0IGRybV9ldG5hdml2X2dlbV9pbmZvIHsKPiA+PiA+ICsgICAgICAg dWludDMyX3QgaGFuZGxlOyAgICAgICAgIC8qIGluICovCj4gPj4gPiArICAgICAgIHVpbnQzMl90 IHBhZDsKPiA+PiA+ICsgICAgICAgdWludDY0X3Qgb2Zmc2V0OyAgICAgICAgIC8qIG91dCwgb2Zm c2V0IHRvIHBhc3MgdG8gbW1hcCgpICovCj4gPj4gPiArfTsKPiA+PiA+ICsKPiA+PiA+ICsjZGVm aW5lIEVUTkFfUFJFUF9SRUFEICAgICAgICAweDAxCj4gPj4gPiArI2RlZmluZSBFVE5BX1BSRVBf V1JJVEUgICAgICAgMHgwMgo+ID4+ID4gKyNkZWZpbmUgRVROQV9QUkVQX05PU1lOQyAgICAgIDB4 MDQKPiA+PiA+ICsKPiA+PiA+ICtzdHJ1Y3QgZHJtX2V0bmF2aXZfZ2VtX2NwdV9wcmVwIHsKPiA+ PiA+ICsgICAgICAgdWludDMyX3QgaGFuZGxlOyAgICAgICAgIC8qIGluICovCj4gPj4gPiArICAg ICAgIHVpbnQzMl90IG9wOyAgICAgICAgICAgICAvKiBpbiwgbWFzayBvZiBFVE5BX1BSRVBfeCAq Lwo+ID4+ID4gKyAgICAgICBzdHJ1Y3QgZHJtX2V0bmF2aXZfdGltZXNwZWMgdGltZW91dDsgICAv KiBpbiAqLwo+ID4+ID4gK307Cj4gPj4gPiArCj4gPj4gPiArc3RydWN0IGRybV9ldG5hdml2X2dl bV9jcHVfZmluaSB7Cj4gPj4gPiArICAgICAgIHVpbnQzMl90IGhhbmRsZTsgICAgICAgICAvKiBp biAqLwo+ID4+ID4gK307Cj4gPj4gPiArCj4gPj4gPiArLyoKPiA+PiA+ICsgKiBDbWRzdHJlYW0g U3VibWlzc2lvbjoKPiA+PiA+ICsgKi8KPiA+PiA+ICsKPiA+PiA+ICsvKiBUaGUgdmFsdWUgd3Jp dHRlbiBpbnRvIHRoZSBjbWRzdHJlYW0gaXMgbG9naWNhbGx5Ogo+ID4+ID4gKyAqCj4gPj4gPiAr ICogICAoKHJlbG9jYnVmLT5ncHVhZGRyICsgcmVsb2Nfb2Zmc2V0KSA8PCBzaGlmdCkgfCBvcgo+ ID4+ID4gKyAqCj4gPj4gPiArICogV2hlbiB3ZSBoYXZlIEdQVSdzIHcvID4zMmJpdCBwdHJzLCBp dCBzaG91bGQgYmUgcG9zc2libGUgdG8gZGVhbAo+ID4+ID4gKyAqIHdpdGggdGhpcyBieSBlbWl0 J2luZyB0d28gcmVsb2MgZW50cmllcyB3aXRoIGFwcHJvcHJpYXRlIHNoaWZ0Cj4gPj4gPiArICog dmFsdWVzLiAgT3IgYSBuZXcgRVROQV9TVUJNSVRfQ01EX3ggdHlwZSB3b3VsZCBhbHNvIGJlIGFu IG9wdGlvbi4KPiA+PiA+ICsgKgo+ID4+ID4gKyAqIE5PVEUgdGhhdCByZWxvYydzIG11c3QgYmUg c29ydGVkIGJ5IG9yZGVyIG9mIGluY3JlYXNpbmcgc3VibWl0X29mZnNldCwKPiA+PiA+ICsgKiBv dGhlcndpc2UgRUlOVkFMLgo+ID4+ID4gKyAqLwo+ID4+ID4gK3N0cnVjdCBkcm1fZXRuYXZpdl9n ZW1fc3VibWl0X3JlbG9jIHsKPiA+PiA+ICsgICAgICAgdWludDMyX3Qgc3VibWl0X29mZnNldDsg IC8qIGluLCBvZmZzZXQgZnJvbSBzdWJtaXRfYm8gKi8KPiA+PiA+ICsgICAgICAgdWludDMyX3Qg b3I7ICAgICAgICAgICAgIC8qIGluLCB2YWx1ZSBPUidkIHdpdGggcmVzdWx0ICovCj4gPj4gPiAr ICAgICAgIGludDMyX3QgIHNoaWZ0OyAgICAgICAgICAvKiBpbiwgYW1vdW50IG9mIGxlZnQgc2hp ZnQgKGNhbiBiZSBuZWdhdGl2ZSkgKi8KPiA+PiA+ICsgICAgICAgdWludDMyX3QgcmVsb2NfaWR4 OyAgICAgIC8qIGluLCBpbmRleCBvZiByZWxvY19ibyBidWZmZXIgKi8KPiA+PiA+ICsgICAgICAg dWludDY0X3QgcmVsb2Nfb2Zmc2V0OyAgIC8qIGluLCBvZmZzZXQgZnJvbSBzdGFydCBvZiByZWxv Y19ibyAqLwo+ID4+ID4gK307Cj4gPj4gPiArCj4gPj4gPiArLyogc3VibWl0LXR5cGVzOgo+ID4+ ID4gKyAqICAgQlVGIC0gdGhpcyBjbWQgYnVmZmVyIGlzIGV4ZWN1dGVkIG5vcm1hbGx5Lgo+ID4+ ID4gKyAqICAgSUJfVEFSR0VUX0JVRiAtIHRoaXMgY21kIGJ1ZmZlciBpcyBhbiBJQiB0YXJnZXQu ICBSZWxvYydzIGFyZQo+ID4+ID4gKyAqICAgICAgcHJvY2Vzc2VkIG5vcm1hbGx5LCBidXQgdGhl IGtlcm5lbCBkb2VzIG5vdCBzZXR1cCBhbiBJQiB0bwo+ID4+ID4gKyAqICAgICAgdGhpcyBidWZm ZXIgaW4gdGhlIGZpcnN0LWxldmVsIHJpbmdidWZmZXIKPiA+PiA+ICsgKiAgIENUWF9SRVNUT1JF X0JVRiAtIG9ubHkgZXhlY3V0ZWQgaWYgdGhlcmUgaGFzIGJlZW4gYSBHUFUgY29udGV4dAo+ID4+ ID4gKyAqICAgICAgc3dpdGNoIHNpbmNlIHRoZSBsYXN0IFNVQk1JVCBpb2N0bAo+ID4+ID4gKyAq Lwo+ID4+ID4gKyNkZWZpbmUgRVROQV9TVUJNSVRfQ01EX0JVRiAgICAgICAgICAgICAweDAwMDEK PiA+PiA+ICsjZGVmaW5lIEVUTkFfU1VCTUlUX0NNRF9JQl9UQVJHRVRfQlVGICAgMHgwMDAyCj4g Pj4gPiArI2RlZmluZSBFVE5BX1NVQk1JVF9DTURfQ1RYX1JFU1RPUkVfQlVGIDB4MDAwMyBpcyBh Cj4gPj4gPiArc3RydWN0IGRybV9ldG5hdml2X2dlbV9zdWJtaXRfY21kIHsKPiA+PiA+ICsgICAg ICAgdWludDMyX3QgdHlwZTsgICAgICAgICAgIC8qIGluLCBvbmUgb2YgRVROQV9TVUJNSVRfQ01E X3ggKi8KPiA+Pgo+ID4+IERvIHdlIG5lZWQgZGlmZmVyZW50IHR5cGVzPyBJIGRpZCBub3QgdXNl IHRoaXMgaW4gbXkga2VybmVsIHRyZWUuCj4gPj4KPiA+Cj4gPiBQbGVhc2UgYWxzbyBub3QgdGhl IGNvbW1pdCBjbGVhbmluZyB0aGlzIEFQSSwgd2hpY2ggY2hhbmdlcyB0aGlzIGEgYml0Lgo+ID4K PiAKPiBBaCB5ZXMuLiBJIHNlZSBpdC4KPiAKPiA+IEJ1dCB5ZXMgd2UgbmVlZCBkaWZmZXJlbnQg dHlwZXMuIEF0IGxlYXN0IHRoZSBjb250ZXh0IHJlc3RvcmUgYnVmZmVyCj4gPiB0eXBlIGlzIG5l ZWRlZCB0byBwcm9wZXJseSBpbXBsZW1lbnQgR1BVIHBvd2VyIG1hbmFnZW1lbnQgYW5kIGNvbnRl eHQKPiA+IHN3aXRjaGluZy4KPiA+Cj4gCj4gV2hhdCByb2xlIGRvZXMgR1BVIHBvd2VyIG1hbmFn ZW1lbnQgcGxheXMgaGVyZT8gRm9yIHRoZSBjb250ZXh0IHN3aXRjaGluZwo+IGl0IGNvdWxkIG1h a2Ugc2Vuc2UuIEJ1dCBmb3IgdGhlIDJkIGNvcmUgdGhlIGNvbnRleHQgaXMgc28gc21hbGwgdGhh dAo+IGl0IGRvZXMgbm90Cj4gaHVydCB0byBzZW5kIGl0IHdpdGggZXZlcnkgY29tbWFuZCBzdHJl YW0uIEZvciB0aGUgM2QgY29yZSBpdCBpcyBtdWNoCj4gYmlnZ2VyLCBidXQKPiB0aGlzIGNvdWxk IGJlIGRvbmUgY29tcGxldGVseSBpbiB0aGUga2VybmVsLiBPciBJIGFtIHdyb25nIGhlcmU/Cj4g CklmIHlvdSBwb3dlciBkb3duIHRoZSBHUFUgeW91IGxvb3NlIHRoZSBjb250ZXh0LiBZb3UgYXJl IHJpZ2h0IHRoYXQgd2UKY291bGQgc2F2ZS9yZXN0b3JlIHRoZSBjb250ZXh0IGZyb20ga2VybmVs IHNwYWNlLCBidXQgdGhhdCBpcyByZWFsbHkKdGFraW5nIGEgdG9sbCBvbiBDUFUgdGltZS4gSXQg aXMgbXVjaCBiZXR0ZXIgdG8gaGF2ZSB1c2Vyc3BhY2UgcHJvdmlkZSBhCmNvbnRleHQgYnVmZmVy IHRvIGdldCB0aGUgR1BVIGluIHRoZSBleHBlY3RlZCBzdGF0ZSwgYXMgeW91IHRoZW4gb25seQpu ZWVkIHRvIHNwbGljZSB0aGlzIGludG8gdGhlIGV4ZWN1dGlvbiBzdHJlYW0gdG8gcmVzdG9yZSB0 aGUgY29udGV4dAppbnN0ZWFkIG9mIHB1c2hpbmcgaXQgd2l0aCB0aGUgQ1BVLiBSZWFkaW5nIGJh Y2sgdGhlIGNvbnRleHQgb24gZXZlcnkKc3dpdGNoIHdpbGwga2lsbCBhbnkgcGVyZm9ybWFuY2Uu Cgo+ID4+ID4gKyAgICAgICB1aW50MzJfdCBzdWJtaXRfaWR4OyAgICAgLyogaW4sIGluZGV4IG9m IHN1Ym1pdF9ibyBjbWRzdHJlYW0gYnVmZmVyICovCj4gPj4gPiArICAgICAgIHVpbnQzMl90IHN1 Ym1pdF9vZmZzZXQ7ICAvKiBpbiwgb2Zmc2V0IGludG8gc3VibWl0X2JvICovCj4gPj4KPiA+PiBE byB3ZSByZWFsbHkgd2FudC9uZWVkIHRoZSBvZmZzZXQ/IEkgaGF2ZSByZW1vdmVkIGl0IGZvcm0g Y2F1c2UgaXQKPiA+PiBtYWtlcyB0aGluZ3MgaW4gdXNlcnNwYWNlCj4gPj4gbW9yZSBjb21wbGV4 IHRoZW4gbmVlZGVkLgo+ID4+Cj4gPiBJdCBtYWtlcyB0aGluZ3MgYSBiaXQgbW9yZSBjb21wbGV4 LCBidXQgaXQgYWxsb3dzIGZvciBmYXIgbW9yZSBlZmZpY2llbnQKPiA+IGJ1ZmZlciB1c2UgaWYg eW91IGhhdmUgYXJlIGRlYWxpbmcgd2l0aCBhIGxvdCBvZiBmbHVzaGVzLiBJIGRvbid0IHNlZQo+ ID4gd2h5IHdlIHNob3VsZCBwcmV2ZW50IHVzZXJzcGFjZSBmcm9tIHVzaW5nIHRoaXMgb3B0aW1p emF0aW9uLgo+ID4KPiAKPiBJIHRlbmQgdG8gZ2V0IHRoaW5ncyB1cCBhbmQgcnVubmluZyBhbmQg ZG8gdGhlIG9wdGltaXphdGlvbiBzdGVwIGlmIGl0Cj4gaXMgcmVhbGx5IHdvcnRoLgo+IEFsc28g SSBsaWtlIHN0dWZmIHRvIGJlIHN0dXBpZCBzaW1wbGUuIFRoZXJlIGlzIGFuIG90aGVyIGludGVy ZXN0aW5nCj4gZmFjdDogZmx1c2hpbmcgdGhlCj4gaW9tbXV2MiBpcyBkb25lIHZpYSBjb21tYW5k IHN0cmVhbSBhbmQgd2UgbmVlZCB0byByZXNlcnZlIG1vcmUgc3BhY2UgZm9yIHRoZQo+IHRhaWwg b2YgdGhlIHVzZWQgYm8uIFNvIGlmIHdlIHJlc2VydmUgc29tZSBzcGFjZSBpbiB0aGUgY29tbWFu ZCBidWZmZXIsIHdlIGhhdmUKPiBvdGhlciBzcGFjZSBsaW1pdHMgZm9yIHRoZSB0YWlsIGRlcGVu ZGluZyBvbiB1c2VkIGhhcmR3YXJlLgo+IApZb3UgbWF5IGJlIGF3YXJlIHRoYXQgb25jZSB0aGlz IGlzIHVwc3RyZWFtIHRoZXJlIGlzIG5vIGVhc3kgd2F5IHRvCmNoYW5nZSB0aGUgdXNlcnNwYWNl IGludGVyZmFjZSBhbnltb3JlLiBTbyB3aGF0ZXZlciBpcyBsZWZ0IG91dCBub3cgaXMKbGlrZWx5 IHRvIGJlIHZlcnkgaGFyZCB0byByZWludHJvZHVjZSBsYXRlci4KCldoYXQnIHRoZSBwcm9ibGVt IHdpdGggaGF2aW5nIGEgY29tbWFuZCBidWZmZXIgaW4gdGhlIGtlcm5lbCB0byBmbHVzaAp0aGUg TU1VdjI/IFdoeSBkbyB5b3UgbmVlZCB0byBpbnNlcnQgdGhvc2UgY29tbWFuZHMgaW50byB0aGUg dXNlcnNwYWNlCmNvbW1hbmQgc3RyZWFtPwoKPiA+PiA+ICsgICAgICAgdWludDMyX3Qgc2l6ZTsg ICAgICAgICAgIC8qIGluLCBjbWRzdHJlYW0gc2l6ZSAqLwo+ID4+ID4gKyAgICAgICB1aW50MzJf dCBwYWQ7Cj4gPj4gPiArICAgICAgIHVpbnQzMl90IG5yX3JlbG9jczsgICAgICAvKiBpbiwgbnVt YmVyIG9mIHN1Ym1pdF9yZWxvYydzICovCj4gPj4gPiArICAgICAgIHVpbnQ2NF90IF9fdXNlciBy ZWxvY3M7ICAvKiBpbiwgcHRyIHRvIGFycmF5IG9mIHN1Ym1pdF9yZWxvYydzICovCj4gPj4gPiAr fTsKPiA+PiA+ICsKPiA+PiA+ICsvKiBFYWNoIGJ1ZmZlciByZWZlcmVuY2VkIGVsc2V3aGVyZSBp biB0aGUgY21kc3RyZWFtIHN1Ym1pdCAoaWUuIHRoZQo+ID4+ID4gKyAqIGNtZHN0cmVhbSBidWZm ZXIocykgdGhlbXNlbHZlcyBvciByZWxvYyBlbnRyaWVzKSBoYXMgb25lIChhbmQgb25seQo+ID4+ ID4gKyAqIG9uZSkgZW50cnkgaW4gdGhlIHN1Ym1pdC0+Ym9zW10gdGFibGUuCj4gPj4gPiArICoK PiA+PiA+ICsgKiBBcyBhIG9wdGltaXphdGlvbiwgdGhlIGN1cnJlbnQgYnVmZmVyIChncHUgdmly dHVhbCBhZGRyZXNzKSBjYW4gYmUKPiA+PiA+ICsgKiBwYXNzZWQgYmFjayB0aHJvdWdoIHRoZSAn cHJlc3VtZWQnIGZpZWxkLiAgSWYgb24gYSBzdWJzZXF1ZW50IHJlbG9jLAo+ID4+ID4gKyAqIHVz ZXJzcGFjZSBwYXNzZXMgYmFjayBhICdwcmVzdW1lZCcgYWRkcmVzcyB0aGF0IGlzIHN0aWxsIHZh bGlkLAo+ID4+ID4gKyAqIHRoZW4gcGF0Y2hpbmcgdGhlIGNtZHN0cmVhbSBmb3IgdGhpcyBlbnRy eSBpcyBza2lwcGVkLiAgVGhpcyBjYW4KPiA+PiA+ICsgKiBhdm9pZCBrZXJuZWwgbmVlZGluZyB0 byBtYXAvYWNjZXNzIHRoZSBjbWRzdHJlYW0gYm8gaW4gdGhlIGNvbW1vbgo+ID4+ID4gKyAqIGNh c2UuCj4gPj4gPiArICovCj4gPj4gPiArI2RlZmluZSBFVE5BX1NVQk1JVF9CT19SRUFEICAgICAg ICAgICAgIDB4MDAwMQo+ID4+ID4gKyNkZWZpbmUgRVROQV9TVUJNSVRfQk9fV1JJVEUgICAgICAg ICAgICAweDAwMDIKPiA+PiA+ICtzdHJ1Y3QgZHJtX2V0bmF2aXZfZ2VtX3N1Ym1pdF9ibyB7Cj4g Pj4gPiArICAgICAgIHVpbnQzMl90IGZsYWdzOyAgICAgICAgICAvKiBpbiwgbWFzayBvZiBFVE5B X1NVQk1JVF9CT194ICovCj4gPj4gPiArICAgICAgIHVpbnQzMl90IGhhbmRsZTsgICAgICAgICAv KiBpbiwgR0VNIGhhbmRsZSAqLwo+ID4+ID4gKyAgICAgICB1aW50NjRfdCBwcmVzdW1lZDsgICAg ICAgLyogaW4vb3V0LCBwcmVzdW1lZCBidWZmZXIgYWRkcmVzcyAqLwo+ID4+Cj4gPj4gcHJlc3Vt ZWQgc3VwcG9ydCBzaG91bGQgbmV2ZXIgaGl0IGV0bmF2aXYgZHJpdmVyLgo+ID4+Cj4gPiBBcyBz dGF0ZWQgaW4gdGhlIGNvdmVyIGxldHRlciBJIHRoaW5rIHByZXN1bWVkIHN1cHBvcnQgd2lsbCBi ZWNvbWUKPiA+IHBvc3NpYmxlIHdpdGggTU1VdjIgYW5kIG1heSBwcm92aWRlIGEgZ29vZCBvcHRp bWl6YXRpb24gdGhlcmUuIFNvIEkKPiA+IHdvdWxkIHJhdGhlciBsZWF2ZSB0aGlzIGluIGhlcmUg YW5kIGp1c3QgaWdub3JlIGl0IGZvciBub3cuCj4gPgo+IAo+IFlvdXIgc3RhdGVtZW50IGlzIGZ1 bm55IGFzIHlvdSBoYXZlIHRoZSBmb2xsb3dpbmcgcGF0Y2ggaW4geW91ciBzZXJpZXM6Cj4gW1BB VENIIFJGQyAwNzAvMTExXSBzdGFnaW5nOiBldG5hdml2OiByZW1vdmUgcHJlc3VtcHRpb24gb2Yg Qk8gYWRkcmVzc2VzCj4gCllvdSBtYXkgbm90aWNlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gaW50 ZXJmYWNlIGFuZCBpbXBsZW1lbnRhdGlvbi4KCj4gSSBoYXZlIHRha2VuIHRoZSBpZGVhIG9mIHBy ZXN1bXB0aW9uIGZyb20gKmRydW1yb2xsKiBmcmVlZHJlbm8gYXMgdGhlCj4gZXRuYXZpdiBkcml2 ZXIKPiBzdGFydGVkIGFzIDE6MSBjb3B5IG9mIGZyZWVkcmVuby4gQnV0IHdoYXQgc2hvdWxkIEkg c2F5LCBpdCBuZXZlcgo+IHNob3VsZCBiZSB0aGVyZSBhbmQKPiBldmVuIGZyZWVkcmVubyBkb2Vz IG5vdCBtYWtlIHVzZSBvZiBpdCAoY2hlY2tlZCBpdCBhYm91dCAyLTMgbW9udGhzIGFnbykuCj4g U2hvdWxkIHRoZSB1c2VyIHNwYWNlIHJlYWxseSBrbm93IGFueXRoaW5nIGFib3V0IHBoeXNpY2Fs IGFkZHJlc3NlcyBhdAo+IGFsbD8gV291bGQgYmUKPiBuaWNlIHRvIGhlYXIgdGhlIG9waW5pb24g b2YgYSBkcm0gZ3VydSBoZXJlIGFuZCBtYXliZSBSdXNzZWxsLgo+IAoKQSBwcmVzdW1lZCBhZGRy ZXNzIGNhbiBub3QgYmUgYSBwaHlzaWNhbCBhZGRyZXNzLCBidXQgaXMgYW4gYWRkcmVzcyBpbgp0 aGUgVk0gY29udGV4dCBvZiB0aGF0IHByb2Nlc3MuIE5vdXZlYXUgdXNlcyB0aGUgc2FtZSB0aGlu ZyBvbiBOVjUwKwp3aGVyZSB5b3UgaGF2ZSBhIHByb3BlciBNTVUgdG8gcHJvdGVjdCBhbGwgR1BV IGFjY2Vzc2VzLiBJIHdvdWxkIGV4cGVjdAp0aGUgc2FtZSB0aGluZyB0byBiZSB0cnVlIGZvciBW aXZhbnRlIE1NVXYyLgoKPiA+PiA+ICt9Owo+ID4+ID4gKwo+ID4+ID4gKy8qIEVhY2ggY21kc3Ry ZWFtIHN1Ym1pdCBjb25zaXN0cyBvZiBhIHRhYmxlIG9mIGJ1ZmZlcnMgaW52b2x2ZWQsIGFuZAo+ ID4+ID4gKyAqIG9uZSBvciBtb3JlIGNtZHN0cmVhbSBidWZmZXJzLiAgVGhpcyBhbGxvd3MgZm9y IGNvbmRpdGlvbmFsIGV4ZWN1dGlvbgo+ID4+ID4gKyAqIChjb250ZXh0LXJlc3RvcmUpLCBhbmQg SUIgYnVmZmVycyBuZWVkZWQgZm9yIHBlciB0aWxlL2JpbiBkcmF3IGNtZHMuCj4gPj4gPiArICov Cj4gPj4gPiArc3RydWN0IGRybV9ldG5hdml2X2dlbV9zdWJtaXQgewo+ID4+ID4gKyAgICAgICB1 aW50MzJfdCBwaXBlOyAgICAgICAgICAgLyogaW4sIEVUTkFfUElQRV94ICovCj4gPj4gPiArICAg ICAgIHVpbnQzMl90IGZlbmNlOyAgICAgICAgICAvKiBvdXQgKi8KPiA+PiA+ICsgICAgICAgdWlu dDMyX3QgbnJfYm9zOyAgICAgICAgIC8qIGluLCBudW1iZXIgb2Ygc3VibWl0X2JvJ3MgKi8KPiA+ PiA+ICsgICAgICAgdWludDMyX3QgbnJfY21kczsgICAgICAgIC8qIGluLCBudW1iZXIgb2Ygc3Vi bWl0X2NtZCdzICovCj4gPj4KPiA+PiBEbyB3ZSByZWFsbHkgbmVlZCB0byBzdXBwb3J0IG11dGxp cGxlIGNtZHMgcGVyIHN1Ym1pdD8gSSBoYXZlIHJlbW92ZWQgdGhpcwo+ID4+IGZyb20gbXkga2Vy bmVsLgo+ID4+Cj4gPiBXZSBuZWVkIHRvIHN1cHBvcnQgYXQgbGVhc3Qgb25lIGFkZGl0aW9uYWwg Y29udGV4dCBidWZmZXIsIHNvIEkgZG9uJ3QKPiA+IHNlZSB3aHkgd2Ugc2hvdWxkbid0IHN1cHBv cnQgbiBidWZmZXJzLgo+ID4KPiAKPiBLZWVwIGl0IHN0dXBpZCBzaW1wbGUuIEluIG15IGxpYmRy bSByZXBvLCB3aGljaCB5b3UgaG9wZWZ1bGx5IGtub3csIEkKPiBoYXZlIGltcGxlbWVudGVkCj4g dGhlIGJ1ZmZlciBoYW5kbGluZyBmcm9tIHRoZSBvcmlnaW5hbCBsaWJldG5hdml2LiBXZSBhbGxv Y2F0ZSA1Cj4gY29tbWFuZCBidWZmZXJzIG9mIGEgZGVmaW5lZAo+IHNpemUgYW5kIHJvdGF0ZSB0 aHJvdWdoIHRoZW0uIER1cmluZyBjb21tYW5kIGJ1ZmZlciBidWlsZGluZyB3ZSByZXNlcnZlIHNw YWNlIGluCj4gdGhlIHN0cmVhbS4gaWYgdGhlcmUgaXMgbm90IGVub3VnaCBzcGFjZSB3ZSBmbHVz aCB0aGUgY3VycmVudCBidWZmZXIKPiBzdHJlYW0gYW5kIHN3aXRjaCB0bwo+IHRoZSBuZXh0IGFu ZCB1cyBpdC4gVGhlbiB0aGVyZSBpcyBhIHdheSB0byBleHBsaWNpdCBmbHVzaCBhIGNvbW1hbmQg YnVmZmVyLgo+IAo+IEZvciBtb3JlIGRldGFpbHMgc2VlOgo+IGh0dHBzOi8vZ2l0aHViLmNvbS9s YWFud2ovZXRuYV92aXYvdHJlZS9tYXN0ZXIvc3JjL2V0bmF2aXYKPiBodHRwczovL2dpdGh1Yi5j b20vYXVzdHJpYW5jb2Rlci9saWJkcm0KPiAKClNhbWUgYXJndW1lbnQgYXMgYWJvdmUgcmVhbGx5 LiBXZSBuZWVkIGF0IGxlYXN0IHRoZSBjb250ZXh0IGJ1ZmZlci4KClJlZ2FyZHMsCkx1Y2FzCgot LSAKUGVuZ3V0cm9uaXggZS5LLiAgICAgICAgICAgICB8IEx1Y2FzIFN0YWNoICAgICAgICAgICAg ICAgICB8CkluZHVzdHJpYWwgTGludXggU29sdXRpb25zICAgfCBodHRwOi8vd3d3LnBlbmd1dHJv bml4LmRlLyAgfAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK