From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [PATCH 9/9] drm/doc: Polish docs for drm_property&drm_property_blob Date: Mon, 29 Aug 2016 18:44:46 +0530 Message-ID: <57C43546.4030107@codeaurora.org> References: <20160829082757.17913-1-daniel.vetter@ffwll.ch> <20160829082757.17913-9-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.codeaurora.org (smtp.codeaurora.org [198.145.29.96]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4CB266E09D for ; Mon, 29 Aug 2016 13:14:53 +0000 (UTC) In-Reply-To: <20160829082757.17913-9-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , DRI Development Cc: Daniel Vetter List-Id: dri-devel@lists.freedesktop.org CgpPbiAwOC8yOS8yMDE2IDAxOjU3IFBNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+IC0gcmVtb3Zl IGtlcm5lbGRvYyBmb3IgZHJtLWludGVybmFsIGZ1bmN0aW9ucwo+IC0gZHJtX3Byb3BlcnR5X3Jl cGxhY2VfZ2xvYmFsX2Jsb2IgaXNuJ3QgYWN0dWFsbHkgYXRvbWljLCBhbmQgZG9lc24ndAo+ICAg IG5lZWQgdG8gYmUuIFVwZGF0ZSBkb2NzJmNvbW1lbnRzIHRvIG1hdGNoCj4gLSBkb2N1bWVudCBh bGwgdGhlIHR5cGVzIGFuZCB0cnkgdG8gbGluayB0aGluZ3MgYSBiaXQgYmV0dGVyCj4gLSBuaXRz IGFsbCBvdmVyCj4KClJldmlld2VkLWJ5OiBBcmNoaXQgVGFuZWphIDxhcmNoaXR0QGNvZGVhdXJv cmEub3JnPgoKPiB2MjogQXBwZWFzZSBjaGVja3BhdGNoIGluIHRoZSBtb3ZlZCBjb2RlIChBcmNo aXQpCj4KPiBSZXZpZXdlZC1ieTogQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9y Zz4KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNv bT4KPiAtLS0KPiAgIERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0ICB8ICA4OCArLS0tLS0t LS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJvcGVydHkuYyB8IDE1MyArKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgaW5jbHVkZS9kcm0vZHJtX3Byb3BlcnR5 LmggICAgIHwgMTk2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4g ICAzIGZpbGVzIGNoYW5nZWQsIDI0NCBpbnNlcnRpb25zKCspLCAxOTMgZGVsZXRpb25zKC0pCj4K PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy5yc3QgYi9Eb2N1bWVudGF0 aW9uL2dwdS9kcm0ta21zLnJzdAo+IGluZGV4IGUwN2EyNjY3YWI2MS4uZjlhOTkxYmI4N2Q0IDEw MDY0NAo+IC0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0Cj4gKysrIGIvRG9jdW1l bnRhdGlvbi9ncHUvZHJtLWttcy5yc3QKPiBAQCAtMzA0LDk0ICszMDQsMTIgQEAgS01TIExvY2tp bmcKPiAgIEtNUyBQcm9wZXJ0aWVzCj4gICA9PT09PT09PT09PT09PQo+Cj4gLURyaXZlcnMgbWF5 IG5lZWQgdG8gZXhwb3NlIGFkZGl0aW9uYWwgcGFyYW1ldGVycyB0byBhcHBsaWNhdGlvbnMgdGhh bgo+IC10aG9zZSBkZXNjcmliZWQgaW4gdGhlIHByZXZpb3VzIHNlY3Rpb25zLiBLTVMgc3VwcG9y dHMgYXR0YWNoaW5nCj4gLXByb3BlcnRpZXMgdG8gQ1JUQ3MsIGNvbm5lY3RvcnMgYW5kIHBsYW5l cyBhbmQgb2ZmZXJzIGEgdXNlcnNwYWNlIEFQSSB0bwo+IC1saXN0LCBnZXQgYW5kIHNldCB0aGUg cHJvcGVydHkgdmFsdWVzLgo+IC0KPiAtUHJvcGVydGllcyBhcmUgaWRlbnRpZmllZCBieSBhIG5h bWUgdGhhdCB1bmlxdWVseSBkZWZpbmVzIHRoZSBwcm9wZXJ0eQo+IC1wdXJwb3NlLCBhbmQgc3Rv cmUgYW4gYXNzb2NpYXRlZCB2YWx1ZS4gRm9yIGFsbCBwcm9wZXJ0eSB0eXBlcyBleGNlcHQKPiAt YmxvYiBwcm9wZXJ0aWVzIHRoZSB2YWx1ZSBpcyBhIDY0LWJpdCB1bnNpZ25lZCBpbnRlZ2VyLgo+ IC0KPiAtS01TIGRpZmZlcmVudGlhdGVzIGJldHdlZW4gcHJvcGVydGllcyBhbmQgcHJvcGVydHkg aW5zdGFuY2VzLiBEcml2ZXJzCj4gLWZpcnN0IGNyZWF0ZSBwcm9wZXJ0aWVzIGFuZCB0aGVuIGNy ZWF0ZSBhbmQgYXNzb2NpYXRlIGluZGl2aWR1YWwKPiAtaW5zdGFuY2VzIG9mIHRob3NlIHByb3Bl cnRpZXMgdG8gb2JqZWN0cy4gQSBwcm9wZXJ0eSBjYW4gYmUgaW5zdGFudGlhdGVkCj4gLW11bHRp cGxlIHRpbWVzIGFuZCBhc3NvY2lhdGVkIHdpdGggZGlmZmVyZW50IG9iamVjdHMuIFZhbHVlcyBh cmUgc3RvcmVkCj4gLWluIHByb3BlcnR5IGluc3RhbmNlcywgYW5kIGFsbCBvdGhlciBwcm9wZXJ0 eSBpbmZvcm1hdGlvbiBhcmUgc3RvcmVkIGluCj4gLXRoZSBwcm9wZXJ0eSBhbmQgc2hhcmVkIGJl dHdlZW4gYWxsIGluc3RhbmNlcyBvZiB0aGUgcHJvcGVydHkuCj4gLQo+IC1FdmVyeSBwcm9wZXJ0 eSBpcyBjcmVhdGVkIHdpdGggYSB0eXBlIHRoYXQgaW5mbHVlbmNlcyBob3cgdGhlIEtNUyBjb3Jl Cj4gLWhhbmRsZXMgdGhlIHByb3BlcnR5LiBTdXBwb3J0ZWQgcHJvcGVydHkgdHlwZXMgYXJlCj4g LQo+IC1EUk1fTU9ERV9QUk9QX1JBTkdFCj4gLSAgICBSYW5nZSBwcm9wZXJ0aWVzIHJlcG9ydCB0 aGVpciBtaW5pbXVtIGFuZCBtYXhpbXVtIGFkbWlzc2libGUgdmFsdWVzLgo+IC0gICAgVGhlIEtN UyBjb3JlIHZlcmlmaWVzIHRoYXQgdmFsdWVzIHNldCBieSBhcHBsaWNhdGlvbiBmaXQgaW4gdGhh dAo+IC0gICAgcmFuZ2UuCj4gLQo+IC1EUk1fTU9ERV9QUk9QX0VOVU0KPiAtICAgIEVudW1lcmF0 ZWQgcHJvcGVydGllcyB0YWtlIGEgbnVtZXJpY2FsIHZhbHVlIHRoYXQgcmFuZ2VzIGZyb20gMCB0 bwo+IC0gICAgdGhlIG51bWJlciBvZiBlbnVtZXJhdGVkIHZhbHVlcyBkZWZpbmVkIGJ5IHRoZSBw cm9wZXJ0eSBtaW51cyBvbmUsCj4gLSAgICBhbmQgYXNzb2NpYXRlIGEgZnJlZS1mb3JtZWQgc3Ry aW5nIG5hbWUgdG8gZWFjaCB2YWx1ZS4gQXBwbGljYXRpb25zCj4gLSAgICBjYW4gcmV0cmlldmUg dGhlIGxpc3Qgb2YgZGVmaW5lZCB2YWx1ZS1uYW1lIHBhaXJzIGFuZCB1c2UgdGhlCj4gLSAgICBu dW1lcmljYWwgdmFsdWUgdG8gZ2V0IGFuZCBzZXQgcHJvcGVydHkgaW5zdGFuY2UgdmFsdWVzLgo+ IC0KPiAtRFJNX01PREVfUFJPUF9CSVRNQVNLCj4gLSAgICBCaXRtYXNrIHByb3BlcnRpZXMgYXJl IGVudW1lcmF0aW9uIHByb3BlcnRpZXMgdGhhdCBhZGRpdGlvbmFsbHkKPiAtICAgIHJlc3RyaWN0 IGFsbCBlbnVtZXJhdGVkIHZhbHVlcyB0byB0aGUgMC4uNjMgcmFuZ2UuIEJpdG1hc2sgcHJvcGVy dHkKPiAtICAgIGluc3RhbmNlIHZhbHVlcyBjb21iaW5lIG9uZSBvciBtb3JlIG9mIHRoZSBlbnVt ZXJhdGVkIGJpdHMgZGVmaW5lZAo+IC0gICAgYnkgdGhlIHByb3BlcnR5Lgo+IC0KPiAtRFJNX01P REVfUFJPUF9CTE9CCj4gLSAgICBCbG9iIHByb3BlcnRpZXMgc3RvcmUgYSBiaW5hcnkgYmxvYiB3 aXRob3V0IGFueSBmb3JtYXQgcmVzdHJpY3Rpb24uCj4gLSAgICBUaGUgYmluYXJ5IGJsb2JzIGFy ZSBjcmVhdGVkIGFzIEtNUyBzdGFuZGFsb25lIG9iamVjdHMsIGFuZCBibG9iCj4gLSAgICBwcm9w ZXJ0eSBpbnN0YW5jZSB2YWx1ZXMgc3RvcmUgdGhlIElEIG9mIHRoZWlyIGFzc29jaWF0ZWQgYmxv Ygo+IC0gICAgb2JqZWN0Lgo+IC0KPiAtICAgIEJsb2IgcHJvcGVydGllcyBhcmUgb25seSB1c2Vk IGZvciB0aGUgY29ubmVjdG9yIEVESUQgcHJvcGVydHkgYW5kCj4gLSAgICBjYW5ub3QgYmUgY3Jl YXRlZCBieSBkcml2ZXJzLgo+IC0KPiAtVG8gY3JlYXRlIGEgcHJvcGVydHkgZHJpdmVycyBjYWxs IG9uZSBvZiB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucwo+IC1kZXBlbmRpbmcgb24gdGhlIHByb3Bl cnR5IHR5cGUuIEFsbCBwcm9wZXJ0eSBjcmVhdGlvbiBmdW5jdGlvbnMgdGFrZQo+IC1wcm9wZXJ0 eSBmbGFncyBhbmQgbmFtZSwgYXMgd2VsbCBhcyB0eXBlLXNwZWNpZmljIGFyZ3VtZW50cy4KPiAt Cj4gLS0gIHN0cnVjdCBkcm1fcHJvcGVydHkgXCpkcm1fcHJvcGVydHlfY3JlYXRlX3JhbmdlKHN0 cnVjdAo+IC0gICBkcm1fZGV2aWNlIFwqZGV2LCBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgXCpuYW1l LCB1aW50NjRfdCBtaW4sCj4gLSAgIHVpbnQ2NF90IG1heCk7Cj4gLSAgIENyZWF0ZSBhIHJhbmdl IHByb3BlcnR5IHdpdGggdGhlIGdpdmVuIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWVzLgo+IC0K PiAtLSAgc3RydWN0IGRybV9wcm9wZXJ0eSBcKmRybV9wcm9wZXJ0eV9jcmVhdGVfZW51bShzdHJ1 Y3QgZHJtX2RldmljZQo+IC0gICBcKmRldiwgaW50IGZsYWdzLCBjb25zdCBjaGFyIFwqbmFtZSwg Y29uc3Qgc3RydWN0Cj4gLSAgIGRybV9wcm9wX2VudW1fbGlzdCBcKnByb3BzLCBpbnQgbnVtX3Zh bHVlcyk7Cj4gLSAgIENyZWF0ZSBhbiBlbnVtZXJhdGVkIHByb3BlcnR5LiBUaGUgYGBwcm9wc2Bg IGFyZ3VtZW50IHBvaW50cyB0byBhbgo+IC0gICBhcnJheSBvZiBgYG51bV92YWx1ZXNgYCB2YWx1 ZS1uYW1lIHBhaXJzLgo+IC0KPiAtLSAgc3RydWN0IGRybV9wcm9wZXJ0eSBcKmRybV9wcm9wZXJ0 eV9jcmVhdGVfYml0bWFzayhzdHJ1Y3QKPiAtICAgZHJtX2RldmljZSBcKmRldiwgaW50IGZsYWdz LCBjb25zdCBjaGFyIFwqbmFtZSwgY29uc3Qgc3RydWN0Cj4gLSAgIGRybV9wcm9wX2VudW1fbGlz dCBcKnByb3BzLCBpbnQgbnVtX3ZhbHVlcyk7Cj4gLSAgIENyZWF0ZSBhIGJpdG1hc2sgcHJvcGVy dHkuIFRoZSBgYHByb3BzYGAgYXJndW1lbnQgcG9pbnRzIHRvIGFuIGFycmF5Cj4gLSAgIG9mIGBg bnVtX3ZhbHVlc2BgIHZhbHVlLW5hbWUgcGFpcnMuCj4gLQo+IC1Qcm9wZXJ0aWVzIGNhbiBhZGRp dGlvbmFsbHkgYmUgY3JlYXRlZCBhcyBpbW11dGFibGUsIGluIHdoaWNoIGNhc2UgdGhleQo+IC13 aWxsIGJlIHJlYWQtb25seSBmb3IgYXBwbGljYXRpb25zIGJ1dCBjYW4gYmUgbW9kaWZpZWQgYnkg dGhlIGRyaXZlci4gVG8KPiAtY3JlYXRlIGFuIGltbXV0YWJsZSBwcm9wZXJ0eSBkcml2ZXJzIG11 c3Qgc2V0IHRoZQo+IC1EUk1fTU9ERV9QUk9QX0lNTVVUQUJMRSBmbGFnIGF0IHByb3BlcnR5IGNy ZWF0aW9uIHRpbWUuCj4gLQo+IC1XaGVuIG5vIGFycmF5IG9mIHZhbHVlLW5hbWUgcGFpcnMgaXMg cmVhZGlseSBhdmFpbGFibGUgYXQgcHJvcGVydHkKPiAtY3JlYXRpb24gdGltZSBmb3IgZW51bWVy YXRlZCBvciByYW5nZSBwcm9wZXJ0aWVzLCBkcml2ZXJzIGNhbiBjcmVhdGUgdGhlCj4gLXByb3Bl cnR5IHVzaW5nIHRoZSA6YzpmdW5jOmBkcm1fcHJvcGVydHlfY3JlYXRlKClgIGZ1bmN0aW9uIGFu ZAo+IC1tYW51YWxseSBhZGQgZW51bWVyYXRpb24gdmFsdWUtbmFtZSBwYWlycyBieSBjYWxsaW5n IHRoZQo+IC06YzpmdW5jOmBkcm1fcHJvcGVydHlfYWRkX2VudW0oKWAgZnVuY3Rpb24uIENhcmUg bXVzdCBiZSB0YWtlbiB0bwo+IC1wcm9wZXJseSBzcGVjaWZ5IHRoZSBwcm9wZXJ0eSB0eXBlIHRo cm91Z2ggdGhlIGBgZmxhZ3NgYCBhcmd1bWVudC4KPiAtCj4gLUFmdGVyIGNyZWF0aW5nIHByb3Bl cnRpZXMgZHJpdmVycyBjYW4gYXR0YWNoIHByb3BlcnR5IGluc3RhbmNlcyB0byBDUlRDLAo+IC1j b25uZWN0b3IgYW5kIHBsYW5lIG9iamVjdHMgYnkgY2FsbGluZyB0aGUKPiAtOmM6ZnVuYzpgZHJt X29iamVjdF9hdHRhY2hfcHJvcGVydHkoKWAuIFRoZSBmdW5jdGlvbiB0YWtlcyBhCj4gLXBvaW50 ZXIgdG8gdGhlIHRhcmdldCBvYmplY3QsIGEgcG9pbnRlciB0byB0aGUgcHJldmlvdXNseSBjcmVh dGVkCj4gLXByb3BlcnR5IGFuZCBhbiBpbml0aWFsIGluc3RhbmNlIHZhbHVlLgo+IC0KPiAgIFBy b3BlcnR5IFR5cGVzIGFuZCBCbG9iIFByb3BlcnR5IFN1cHBvcnQKPiAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPgo+ICsuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9n cHUvZHJtL2RybV9wcm9wZXJ0eS5jCj4gKyAgIDpkb2M6IG92ZXJ2aWV3Cj4gKwo+ICAgLi4ga2Vy bmVsLWRvYzo6IGluY2x1ZGUvZHJtL2RybV9wcm9wZXJ0eS5oCj4gICAgICA6aW50ZXJuYWw6Cj4K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9wcm9wZXJ0eS5jCj4gaW5kZXggYjU1MjFmNzA1YjFjLi40MTM5YWZiY2MyNjcg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9wcm9wZXJ0eS5jCj4gQEAgLTI2LDYgKzI2LDMwIEBACj4KPiAgICNp bmNsdWRlICJkcm1fY3J0Y19pbnRlcm5hbC5oIgo+Cj4gKy8qKgo+ICsgKiBET0M6IG92ZXJ2aWV3 Cj4gKyAqCj4gKyAqIFByb3BlcnRpZXMgYXMgcmVwcmVzZW50ZWQgYnkgJmRybV9wcm9wZXJ0eSBh cmUgdXNlZCB0byBleHRlbmQgdGhlIG1vZGVzZXQKPiArICogaW50ZXJmYWNlIGV4cG9zZWQgdG8g dXNlcnNwYWNlLiBGb3IgdGhlIGF0b21pYyBtb2Rlc2V0IElPQ1RMIHByb3BlcnRpZXMgYXJlCj4g KyAqIGV2ZW4gdGhlIG9ubHkgd2F5IHRvIHRyYW5zcG9ydCBtZXRhZGF0YSBhYm91dCB0aGUgZGVz aXJlZCBuZXcgbW9kZXNldAo+ICsgKiBjb25maWd1cmF0aW9uIGZyb20gdXNlcnNwYWNlIHRvIHRo ZSBrZXJuZWwuIFByb3BlcnRpZXMgaGF2ZSBhIHdlbGwtZGVmaW5lZAo+ICsgKiB2YWx1ZSByYW5n ZSwgd2hpY2ggaXMgZW5mb3JjZWQgYnkgdGhlIGRybSBjb3JlLiBTZWUgdGhlIGRvY3VtZW50YXRp b24gb2YgdGhlCj4gKyAqIGZsYWdzIG1lbWJlciBvZiBzdHJ1Y3QgJmRybV9wcm9wZXJ0eSBmb3Ig YW4gb3ZlcnZpZXcgb2YgdGhlIGRpZmZlcmVudAo+ICsgKiBwcm9wZXJ0eSB0eXBlcyBhbmQgcmFu Z2VzLgo+ICsgKgo+ICsgKiBQcm9wZXJ0aWVzIGRvbid0IHN0b3JlIHRoZSBjdXJyZW50IHZhbHVl IGRpcmVjdGx5LCBidXQgbmVlZCB0byBiZQo+ICsgKiBpbnN0YXRpYXRlZCBieSBhdHRhY2hpbmcg dGhlbSB0byBhICZkcm1fbW9kZV9vYmplY3Qgd2l0aAo+ICsgKiBkcm1fb2JqZWN0X2F0dGFjaF9w cm9wZXJ0eSgpLgo+ICsgKgo+ICsgKiBQcm9wZXJ0eSB2YWx1ZXMgYXJlIG9ubHkgNjRiaXQuIFRv IHN1cHBvcnQgYmlnZ2VyIHBpbGVzIG9mIGRhdGEgKGxpa2UgZ2FtbWEKPiArICogdGFibGVzLCBj b2xvciBjb3JyZWN0aW9uIG1hdHJpemVzIG9yIGxhcmdlIHN0cnVjdHVyZXMpIGEgcHJvcGVydHkg Y2FuIGluc3RlYWQKPiArICogcG9pbnQgYXQgYSAmZHJtX3Byb3BlcnR5X2Jsb2Igd2l0aCB0aGF0 IGFkZGl0aW9uYWwgZGF0YQo+ICsgKgo+ICsgKiBQcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIGJ5IHRo ZWlyIHN5bWJvbGljIG5hbWUsIHVzZXJzcGFjZSBtdXN0IGtlZXAgYQo+ICsgKiBwZXItb2JqZWN0 IG1hcHBpbmcgZnJvbSB0aG9zZSBuYW1lcyB0byB0aGUgcHJvcGVydHkgSUQgdXNlZCBpbiB0aGUg YXRvbWljCj4gKyAqIElPQ1RMIGFuZCBpbiB0aGUgZ2V0L3NldCBwcm9wZXJ0eSBJT0NUTC4KPiAr ICovCj4gKwo+ICAgc3RhdGljIGJvb2wgZHJtX3Byb3BlcnR5X3R5cGVfdmFsaWQoc3RydWN0IGRy bV9wcm9wZXJ0eSAqcHJvcGVydHkpCj4gICB7Cj4gICAJaWYgKHByb3BlcnR5LT5mbGFncyAmIERS TV9NT0RFX1BST1BfRVhURU5ERURfVFlQRSkKPiBAQCAtNDIsMTEgKzY2LDggQEAgc3RhdGljIGJv b2wgZHJtX3Byb3BlcnR5X3R5cGVfdmFsaWQoc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHkp Cj4gICAgKgo+ICAgICogVGhpcyBjcmVhdGVzIGEgbmV3IGdlbmVyaWMgZHJtIHByb3BlcnR5IHdo aWNoIGNhbiB0aGVuIGJlIGF0dGFjaGVkIHRvIGEgZHJtCj4gICAgKiBvYmplY3Qgd2l0aCBkcm1f b2JqZWN0X2F0dGFjaF9wcm9wZXJ0eS4gVGhlIHJldHVybmVkIHByb3BlcnR5IG9iamVjdCBtdXN0 IGJlCj4gLSAqIGZyZWVkIHdpdGggZHJtX3Byb3BlcnR5X2Rlc3Ryb3kuCj4gLSAqCj4gLSAqIE5v dGUgdGhhdCB0aGUgRFJNIGNvcmUga2VlcHMgYSBwZXItZGV2aWNlIGxpc3Qgb2YgcHJvcGVydGll cyBhbmQgdGhhdCwgaWYKPiAtICogZHJtX21vZGVfY29uZmlnX2NsZWFudXAoKSBpcyBjYWxsZWQs IGl0IHdpbGwgZGVzdHJveSBhbGwgcHJvcGVydGllcyBjcmVhdGVkCj4gLSAqIGJ5IHRoZSBkcml2 ZXIuCj4gKyAqIGZyZWVkIHdpdGggZHJtX3Byb3BlcnR5X2Rlc3Ryb3koKSwgd2hpY2ggaXMgZG9u ZSBhdXRvbWF0aWNhbGx5IHdoZW4gY2FsbGluZwo+ICsgKiBkcm1fbW9kZV9jb25maWdfY2xlYW51 cCgpLgo+ICAgICoKPiAgICAqIFJldHVybnM6Cj4gICAgKiBBIHBvaW50ZXIgdG8gdGhlIG5ld2x5 IGNyZWF0ZWQgcHJvcGVydHkgb24gc3VjY2VzcywgTlVMTCBvbiBmYWlsdXJlLgo+IEBAIC0xMDUs NyArMTI2LDggQEAgRVhQT1JUX1NZTUJPTChkcm1fcHJvcGVydHlfY3JlYXRlKTsKPiAgICAqCj4g ICAgKiBUaGlzIGNyZWF0ZXMgYSBuZXcgZ2VuZXJpYyBkcm0gcHJvcGVydHkgd2hpY2ggY2FuIHRo ZW4gYmUgYXR0YWNoZWQgdG8gYSBkcm0KPiAgICAqIG9iamVjdCB3aXRoIGRybV9vYmplY3RfYXR0 YWNoX3Byb3BlcnR5LiBUaGUgcmV0dXJuZWQgcHJvcGVydHkgb2JqZWN0IG11c3QgYmUKPiAtICog ZnJlZWQgd2l0aCBkcm1fcHJvcGVydHlfZGVzdHJveS4KPiArICogZnJlZWQgd2l0aCBkcm1fcHJv cGVydHlfZGVzdHJveSgpLCB3aGljaCBpcyBkb25lIGF1dG9tYXRpY2FsbHkgd2hlbiBjYWxsaW5n Cj4gKyAqIGRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKCkuCj4gICAgKgo+ICAgICogVXNlcnNwYWNl IGlzIG9ubHkgYWxsb3dlZCB0byBzZXQgb25lIG9mIHRoZSBwcmVkZWZpbmVkIHZhbHVlcyBmb3Ig ZW51bWVyYXRpb24KPiAgICAqIHByb3BlcnRpZXMuCj4gQEAgLTE1Miw3ICsxNzQsOCBAQCBFWFBP UlRfU1lNQk9MKGRybV9wcm9wZXJ0eV9jcmVhdGVfZW51bSk7Cj4gICAgKgo+ICAgICogVGhpcyBj cmVhdGVzIGEgbmV3IGJpdG1hc2sgZHJtIHByb3BlcnR5IHdoaWNoIGNhbiB0aGVuIGJlIGF0dGFj aGVkIHRvIGEgZHJtCj4gICAgKiBvYmplY3Qgd2l0aCBkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0 eS4gVGhlIHJldHVybmVkIHByb3BlcnR5IG9iamVjdCBtdXN0IGJlCj4gLSAqIGZyZWVkIHdpdGgg ZHJtX3Byb3BlcnR5X2Rlc3Ryb3kuCj4gKyAqIGZyZWVkIHdpdGggZHJtX3Byb3BlcnR5X2Rlc3Ry b3koKSwgd2hpY2ggaXMgZG9uZSBhdXRvbWF0aWNhbGx5IHdoZW4gY2FsbGluZwo+ICsgKiBkcm1f bW9kZV9jb25maWdfY2xlYW51cCgpLgo+ICAgICoKPiAgICAqIENvbXBhcmVkIHRvIHBsYWluIGVu dW1lcmF0aW9uIHByb3BlcnRpZXMgdXNlcnNwYWNlIGlzIGFsbG93ZWQgdG8gc2V0IGFueQo+ICAg ICogb3InZWQgdG9nZXRoZXIgY29tYmluYXRpb24gb2YgdGhlIHByZWRlZmluZWQgcHJvcGVydHkg Yml0ZmxhZyB2YWx1ZXMKPiBAQCAtMjIzLDcgKzI0Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX3By b3BlcnR5ICpwcm9wZXJ0eV9jcmVhdGVfcmFuZ2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg ICAqCj4gICAgKiBUaGlzIGNyZWF0ZXMgYSBuZXcgZ2VuZXJpYyBkcm0gcHJvcGVydHkgd2hpY2gg Y2FuIHRoZW4gYmUgYXR0YWNoZWQgdG8gYSBkcm0KPiAgICAqIG9iamVjdCB3aXRoIGRybV9vYmpl Y3RfYXR0YWNoX3Byb3BlcnR5LiBUaGUgcmV0dXJuZWQgcHJvcGVydHkgb2JqZWN0IG11c3QgYmUK PiAtICogZnJlZWQgd2l0aCBkcm1fcHJvcGVydHlfZGVzdHJveS4KPiArICogZnJlZWQgd2l0aCBk cm1fcHJvcGVydHlfZGVzdHJveSgpLCB3aGljaCBpcyBkb25lIGF1dG9tYXRpY2FsbHkgd2hlbiBj YWxsaW5nCj4gKyAqIGRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKCkuCj4gICAgKgo+ICAgICogVXNl cnNwYWNlIGlzIGFsbG93ZWQgdG8gc2V0IGFueSB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlIGluIHRo ZSAobWluLCBtYXgpCj4gICAgKiByYW5nZSBpbmNsdXNpdmUuCj4gQEAgLTI1MCw3ICsyNzQsOCBA QCBFWFBPUlRfU1lNQk9MKGRybV9wcm9wZXJ0eV9jcmVhdGVfcmFuZ2UpOwo+ICAgICoKPiAgICAq IFRoaXMgY3JlYXRlcyBhIG5ldyBnZW5lcmljIGRybSBwcm9wZXJ0eSB3aGljaCBjYW4gdGhlbiBi ZSBhdHRhY2hlZCB0byBhIGRybQo+ICAgICogb2JqZWN0IHdpdGggZHJtX29iamVjdF9hdHRhY2hf cHJvcGVydHkuIFRoZSByZXR1cm5lZCBwcm9wZXJ0eSBvYmplY3QgbXVzdCBiZQo+IC0gKiBmcmVl ZCB3aXRoIGRybV9wcm9wZXJ0eV9kZXN0cm95Lgo+ICsgKiBmcmVlZCB3aXRoIGRybV9wcm9wZXJ0 eV9kZXN0cm95KCksIHdoaWNoIGlzIGRvbmUgYXV0b21hdGljYWxseSB3aGVuIGNhbGxpbmcKPiAr ICogZHJtX21vZGVfY29uZmlnX2NsZWFudXAoKS4KPiAgICAqCj4gICAgKiBVc2Vyc3BhY2UgaXMg YWxsb3dlZCB0byBzZXQgYW55IHNpZ25lZCBpbnRlZ2VyIHZhbHVlIGluIHRoZSAobWluLCBtYXgp Cj4gICAgKiByYW5nZSBpbmNsdXNpdmUuCj4gQEAgLTI3Niw3ICszMDEsOCBAQCBFWFBPUlRfU1lN Qk9MKGRybV9wcm9wZXJ0eV9jcmVhdGVfc2lnbmVkX3JhbmdlKTsKPiAgICAqCj4gICAgKiBUaGlz IGNyZWF0ZXMgYSBuZXcgZ2VuZXJpYyBkcm0gcHJvcGVydHkgd2hpY2ggY2FuIHRoZW4gYmUgYXR0 YWNoZWQgdG8gYSBkcm0KPiAgICAqIG9iamVjdCB3aXRoIGRybV9vYmplY3RfYXR0YWNoX3Byb3Bl cnR5LiBUaGUgcmV0dXJuZWQgcHJvcGVydHkgb2JqZWN0IG11c3QgYmUKPiAtICogZnJlZWQgd2l0 aCBkcm1fcHJvcGVydHlfZGVzdHJveS4KPiArICogZnJlZWQgd2l0aCBkcm1fcHJvcGVydHlfZGVz dHJveSgpLCB3aGljaCBpcyBkb25lIGF1dG9tYXRpY2FsbHkgd2hlbiBjYWxsaW5nCj4gKyAqIGRy bV9tb2RlX2NvbmZpZ19jbGVhbnVwKCkuCj4gICAgKgo+ICAgICogVXNlcnNwYWNlIGlzIG9ubHkg YWxsb3dlZCB0byBzZXQgdGhpcyB0byBhbnkgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGdpdmVuCj4g ICAgKiBAdHlwZS4gT25seSB1c2VmdWwgZm9yIGF0b21pYyBwcm9wZXJ0aWVzLCB3aGljaCBpcyBl bmZvcmNlZC4KPiBAQCAtMjg1LDcgKzMxMSw4IEBAIEVYUE9SVF9TWU1CT0woZHJtX3Byb3BlcnR5 X2NyZWF0ZV9zaWduZWRfcmFuZ2UpOwo+ICAgICogQSBwb2ludGVyIHRvIHRoZSBuZXdseSBjcmVh dGVkIHByb3BlcnR5IG9uIHN1Y2Nlc3MsIE5VTEwgb24gZmFpbHVyZS4KPiAgICAqLwo+ICAgc3Ry dWN0IGRybV9wcm9wZXJ0eSAqZHJtX3Byb3BlcnR5X2NyZWF0ZV9vYmplY3Qoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiAtCQkJCQkgaW50IGZsYWdzLCBjb25zdCBjaGFyICpuYW1lLCB1aW50MzJf dCB0eXBlKQo+ICsJCQkJCQlpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKm5hbWUsCj4gKwkJCQkJCXVp bnQzMl90IHR5cGUpCj4gICB7Cj4gICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHk7Cj4K PiBAQCAtMzEyLDcgKzMzOSw4IEBAIEVYUE9SVF9TWU1CT0woZHJtX3Byb3BlcnR5X2NyZWF0ZV9v YmplY3QpOwo+ICAgICoKPiAgICAqIFRoaXMgY3JlYXRlcyBhIG5ldyBnZW5lcmljIGRybSBwcm9w ZXJ0eSB3aGljaCBjYW4gdGhlbiBiZSBhdHRhY2hlZCB0byBhIGRybQo+ICAgICogb2JqZWN0IHdp dGggZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkuIFRoZSByZXR1cm5lZCBwcm9wZXJ0eSBvYmpl Y3QgbXVzdCBiZQo+IC0gKiBmcmVlZCB3aXRoIGRybV9wcm9wZXJ0eV9kZXN0cm95Lgo+ICsgKiBm cmVlZCB3aXRoIGRybV9wcm9wZXJ0eV9kZXN0cm95KCksIHdoaWNoIGlzIGRvbmUgYXV0b21hdGlj YWxseSB3aGVuIGNhbGxpbmcKPiArICogZHJtX21vZGVfY29uZmlnX2NsZWFudXAoKS4KPiAgICAq Cj4gICAgKiBUaGlzIGlzIGltcGxlbWVudGVkIGFzIGEgcmFuZ2VkIHByb3BlcnR5IHdpdGggb25s eSB7MCwgMX0gYXMgdmFsaWQgdmFsdWVzLgo+ICAgICoKPiBAQCAtMzIwLDcgKzM0OCw3IEBAIEVY UE9SVF9TWU1CT0woZHJtX3Byb3BlcnR5X2NyZWF0ZV9vYmplY3QpOwo+ICAgICogQSBwb2ludGVy IHRvIHRoZSBuZXdseSBjcmVhdGVkIHByb3BlcnR5IG9uIHN1Y2Nlc3MsIE5VTEwgb24gZmFpbHVy ZS4KPiAgICAqLwo+ICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqZHJtX3Byb3BlcnR5X2NyZWF0ZV9i b29sKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBmbGFncywKPiAtCQkJCQkgY29uc3QgY2hh ciAqbmFtZSkKPiArCQkJCQkgICAgICBjb25zdCBjaGFyICpuYW1lKQo+ICAgewo+ICAgCXJldHVy biBkcm1fcHJvcGVydHlfY3JlYXRlX3JhbmdlKGRldiwgZmxhZ3MsIG5hbWUsIDAsIDEpOwo+ICAg fQo+IEBAIC00MDcsMjIgKzQzNSw2IEBAIHZvaWQgZHJtX3Byb3BlcnR5X2Rlc3Ryb3koc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHkpCj4gICB9Cj4g ICBFWFBPUlRfU1lNQk9MKGRybV9wcm9wZXJ0eV9kZXN0cm95KTsKPgo+IC0vKioKPiAtICogZHJt X21vZGVfZ2V0cHJvcGVydHlfaW9jdGwgLSBnZXQgdGhlIHByb3BlcnR5IG1ldGFkYXRhCj4gLSAq IEBkZXY6IERSTSBkZXZpY2UKPiAtICogQGRhdGE6IGlvY3RsIGRhdGEKPiAtICogQGZpbGVfcHJp djogRFJNIGZpbGUgaW5mbwo+IC0gKgo+IC0gKiBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlcyB0aGUg bWV0YWRhdGEgZm9yIGEgZ2l2ZW4gcHJvcGVydHksIGxpa2UgdGhlIGRpZmZlcmVudAo+IC0gKiBw b3NzaWJsZSB2YWx1ZXMgZm9yIGFuIGVudW0gcHJvcGVydHkgb3IgdGhlIGxpbWl0cyBmb3IgYSBy YW5nZSBwcm9wZXJ0eS4KPiAtICoKPiAtICogQmxvYiBwcm9wZXJ0aWVzIGFyZSBzcGVjaWFsCj4g LSAqCj4gLSAqIENhbGxlZCBieSB0aGUgdXNlciB2aWEgaW9jdGwuCj4gLSAqCj4gLSAqIFJldHVy bnM6Cj4gLSAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24gZmFpbHVyZS4KPiAt ICovCj4gICBpbnQgZHJtX21vZGVfZ2V0cHJvcGVydHlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAgIAkJCSAgICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dikKPiAgIHsKPiBAQCAtNTIzLDE0ICs1MzUsMTQgQEAgc3RhdGljIHZvaWQgZHJtX3Byb3BlcnR5 X2ZyZWVfYmxvYihzdHJ1Y3Qga3JlZiAqa3JlZikKPgo+ICAgLyoqCj4gICAgKiBkcm1fcHJvcGVy dHlfY3JlYXRlX2Jsb2IgLSBDcmVhdGUgbmV3IGJsb2IgcHJvcGVydHkKPiAtICoKPiAtICogQ3Jl YXRlcyBhIG5ldyBibG9iIHByb3BlcnR5IGZvciBhIHNwZWNpZmllZCBEUk0gZGV2aWNlLCBvcHRp b25hbGx5Cj4gLSAqIGNvcHlpbmcgZGF0YS4KPiAtICoKPiAgICAqIEBkZXY6IERSTSBkZXZpY2Ug dG8gY3JlYXRlIHByb3BlcnR5IGZvcgo+ICAgICogQGxlbmd0aDogTGVuZ3RoIHRvIGFsbG9jYXRl IGZvciBibG9iIGRhdGEKPiAgICAqIEBkYXRhOiBJZiBzcGVjaWZpZWQsIGNvcGllcyBkYXRhIGlu dG8gYmxvYgo+ICAgICoKPiArICogQ3JlYXRlcyBhIG5ldyBibG9iIHByb3BlcnR5IGZvciBhIHNw ZWNpZmllZCBEUk0gZGV2aWNlLCBvcHRpb25hbGx5Cj4gKyAqIGNvcHlpbmcgZGF0YS4gTm90ZSB0 aGF0IGJsb2IgcHJvcGVydGllcyBhcmUgbWVhbnQgdG8gYmUgaW52YXJpYW50LCBoZW5jZSB0aGUK PiArICogZGF0YSBtdXN0IGJlIGZpbGxlZCBvdXQgYmVmb3JlIHRoZSBibG9iIGlzIHVzZWQgYXMg dGhlIHZhbHVlIG9mIGFueSBwcm9wZXJ0eS4KPiArICoKPiAgICAqIFJldHVybnM6Cj4gICAgKiBO ZXcgYmxvYiBwcm9wZXJ0eSB3aXRoIGEgc2luZ2xlIHJlZmVyZW5jZSBvbiBzdWNjZXNzLCBvciBh biBFUlJfUFRSCj4gICAgKiB2YWx1ZSBvbiBmYWlsdXJlLgo+IEBAIC01NzYsMTAgKzU4OCw5IEBA IEVYUE9SVF9TWU1CT0woZHJtX3Byb3BlcnR5X2NyZWF0ZV9ibG9iKTsKPgo+ICAgLyoqCj4gICAg KiBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYiAtIFVucmVmZXJlbmNlIGEgYmxvYiBwcm9w ZXJ0eQo+ICsgKiBAYmxvYjogUG9pbnRlciB0byBibG9iIHByb3BlcnR5Cj4gICAgKgo+ICAgICog RHJvcCBhIHJlZmVyZW5jZSBvbiBhIGJsb2IgcHJvcGVydHkuIE1heSBmcmVlIHRoZSBvYmplY3Qu Cj4gLSAqCj4gLSAqIEBibG9iOiBQb2ludGVyIHRvIGJsb2IgcHJvcGVydHkKPiAgICAqLwo+ICAg dm9pZCBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Js b2IgKmJsb2IpCj4gICB7Cj4gQEAgLTU5MCwxMSArNjAxLDYgQEAgdm9pZCBkcm1fcHJvcGVydHlf dW5yZWZlcmVuY2VfYmxvYihzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IpCj4gICB9Cj4g ICBFWFBPUlRfU1lNQk9MKGRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKTsKPgo+IC0vKioK PiAtICogZHJtX3Byb3BlcnR5X2Rlc3Ryb3lfdXNlcl9ibG9icyAtIGRlc3Ryb3kgYWxsIGJsb2Jz IGNyZWF0ZWQgYnkgdGhpcyBjbGllbnQKPiAtICogQGRldjogICAgICAgRFJNIGRldmljZQo+IC0g KiBAZmlsZV9wcml2OiBkZXN0cm95IGFsbCBibG9icyBvd25lZCBieSB0aGlzIGZpbGUgaGFuZGxl Cj4gLSAqLwo+ICAgdm9pZCBkcm1fcHJvcGVydHlfZGVzdHJveV91c2VyX2Jsb2JzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gICAJCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikK PiAgIHsKPiBAQCAtNjEyLDEwICs2MTgsMTAgQEAgdm9pZCBkcm1fcHJvcGVydHlfZGVzdHJveV91 c2VyX2Jsb2JzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4KPiAgIC8qKgo+ICAgICogZHJtX3By b3BlcnR5X3JlZmVyZW5jZV9ibG9iIC0gVGFrZSBhIHJlZmVyZW5jZSBvbiBhbiBleGlzdGluZyBw cm9wZXJ0eQo+IC0gKgo+IC0gKiBUYWtlIGEgbmV3IHJlZmVyZW5jZSBvbiBhbiBleGlzdGluZyBi bG9iIHByb3BlcnR5Lgo+IC0gKgo+ICAgICogQGJsb2I6IFBvaW50ZXIgdG8gYmxvYiBwcm9wZXJ0 eQo+ICsgKgo+ICsgKiBUYWtlIGEgbmV3IHJlZmVyZW5jZSBvbiBhbiBleGlzdGluZyBibG9iIHBy b3BlcnR5LiBSZXR1cm5zIEBibG9iLCB3aGljaAo+ICsgKiBhbGxvd3MgdGhpcyB0byBiZSB1c2Vk IGFzIGEgc2hvcnRoYW5kIGluIGFzc2lnbm1lbnRzLgo+ICAgICovCj4gICBzdHJ1Y3QgZHJtX3By b3BlcnR5X2Jsb2IgKmRybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxvYihzdHJ1Y3QgZHJtX3Byb3Bl cnR5X2Jsb2IgKmJsb2IpCj4gICB7Cj4gQEAgLTYzMiw2ICs2MzgsOSBAQCBFWFBPUlRfU1lNQk9M KGRybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxvYik7Cj4gICAgKiBJZiBzdWNjZXNzZnVsLCB0aGlz IHRha2VzIGFuIGFkZGl0aW9uYWwgcmVmZXJlbmNlIHRvIHRoZSBibG9iIHByb3BlcnR5Lgo+ICAg ICogY2FsbGVycyBuZWVkIHRvIG1ha2Ugc3VyZSB0byBldmVudHVhbGx5IHVucmVmZXJlbmNlIHRo ZSByZXR1cm5lZCBwcm9wZXJ0eQo+ICAgICogYWdhaW4sIHVzaW5nIEBkcm1fcHJvcGVydHlfdW5y ZWZlcmVuY2VfYmxvYi4KPiArICoKPiArICogUmV0dXJuOgo+ICsgKiBOVUxMIG9uIGZhaWx1cmUs IHBvaW50ZXIgdG8gdGhlIGJsb2Igb24gc3VjY2Vzcy4KPiAgICAqLwo+ICAgc3RydWN0IGRybV9w cm9wZXJ0eV9ibG9iICpkcm1fcHJvcGVydHlfbG9va3VwX2Jsb2Ioc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAgIAkJCQkJICAgICAgICAgICB1aW50MzJfdCBpZCkKPiBAQCAtNjQ3LDcgKzY1Niw3 IEBAIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZHJtX3Byb3BlcnR5X2xvb2t1cF9ibG9iKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICBFWFBPUlRfU1lNQk9MKGRybV9wcm9wZXJ0eV9sb29r dXBfYmxvYik7Cj4KPiAgIC8qKgo+IC0gKiBkcm1fcHJvcGVydHlfcmVwbGFjZV9nbG9iYWxfYmxv YiAtIGF0b21pY2FsbHkgcmVwbGFjZSBleGlzdGluZyBibG9iIHByb3BlcnR5Cj4gKyAqIGRybV9w cm9wZXJ0eV9yZXBsYWNlX2dsb2JhbF9ibG9iIC0gcmVwbGFjZSBleGlzdGluZyBibG9iIHByb3Bl cnR5Cj4gICAgKiBAZGV2OiBkcm0gZGV2aWNlCj4gICAgKiBAcmVwbGFjZTogbG9jYXRpb24gb2Yg YmxvYiBwcm9wZXJ0eSBwb2ludGVyIHRvIGJlIHJlcGxhY2VkCj4gICAgKiBAbGVuZ3RoOiBsZW5n dGggb2YgZGF0YSBmb3IgbmV3IGJsb2IsIG9yIDAgZm9yIG5vIGRhdGEKPiBAQCAtNjU2LDExICs2 NjUsOCBAQCBFWFBPUlRfU1lNQk9MKGRybV9wcm9wZXJ0eV9sb29rdXBfYmxvYik7Cj4gICAgKiBA cHJvcF9ob2xkc19pZDogb3B0aW9uYWwgcHJvcGVydHkgaG9sZGluZyBibG9iIElECj4gICAgKiBA cmV0dXJuIDAgb24gc3VjY2VzcyBvciBlcnJvciBvbiBmYWlsdXJlCj4gICAgKgo+IC0gKiBUaGlz IGZ1bmN0aW9uIHdpbGwgYXRvbWljYWxseSByZXBsYWNlIGEgZ2xvYmFsIHByb3BlcnR5IGluIHRo ZSBibG9iIGxpc3QsCj4gLSAqIG9wdGlvbmFsbHkgdXBkYXRpbmcgYSBwcm9wZXJ0eSB3aGljaCBo b2xkcyB0aGUgSUQgb2YgdGhhdCBwcm9wZXJ0eS4gSXQgaXMKPiAtICogZ3VhcmFudGVlZCB0byBi ZSBhdG9taWM6IG5vIGNhbGxlciB3aWxsIGJlIGFsbG93ZWQgdG8gc2VlIGludGVybWVkaWF0ZQo+ IC0gKiByZXN1bHRzLCBhbmQgZWl0aGVyIHRoZSBlbnRpcmUgb3BlcmF0aW9uIHdpbGwgc3VjY2Vl ZCBhbmQgY2xlYW4gdXAgdGhlCj4gLSAqIHByZXZpb3VzIHByb3BlcnR5LCBvciBpdCB3aWxsIGZh aWwgYW5kIHRoZSBzdGF0ZSB3aWxsIGJlIHVuY2hhbmdlZC4KPiArICogVGhpcyBmdW5jdGlvbiB3 aWxsIHJlcGxhY2UgYSBnbG9iYWwgcHJvcGVydHkgaW4gdGhlIGJsb2IgbGlzdCwgb3B0aW9uYWxs eQo+ICsgKiB1cGRhdGluZyBhIHByb3BlcnR5IHdoaWNoIGhvbGRzIHRoZSBJRCBvZiB0aGF0IHBy b3BlcnR5Lgo+ICAgICoKPiAgICAqIElmIGxlbmd0aCBpcyAwIG9yIGRhdGEgaXMgTlVMTCwgbm8g bmV3IGJsb2Igd2lsbCBiZSBjcmVhdGVkLCBhbmQgdGhlIGhvbGRpbmcKPiAgICAqIHByb3BlcnR5 LCBpZiBzcGVjaWZpZWQsIHdpbGwgYmUgc2V0IHRvIDAuCj4gQEAgLTY5NywxMSArNzAzLDYgQEAg aW50IGRybV9wcm9wZXJ0eV9yZXBsYWNlX2dsb2JhbF9ibG9iKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gICAJCQlyZXR1cm4gUFRSX0VSUihuZXdfYmxvYik7Cj4gICAJfQo+Cj4gLQkvKiBUaGlz IGRvZXMgbm90IG5lZWQgdG8gYmUgc3luY2hyb25pc2VkIHdpdGggYmxvYl9sb2NrLCBhcyB0aGUK PiAtCSAqIGdldF9wcm9wZXJ0aWVzIGlvY3RsIGxvY2tzIGFsbCBtb2Rlc2V0dGluZyBvYmplY3Rz LCBhbmQKPiAtCSAqIG9ial9ob2xkc19pZCBtdXN0IGJlIGxvY2tlZCBiZWZvcmUgY2FsbGluZyBo ZXJlLCBzbyB3ZSBjYW5ub3QKPiAtCSAqIGhhdmUgaXRzIHZhbHVlIG91dCBvZiBzeW5jIHdpdGgg dGhlIGxpc3QgbWVtYmVyc2hpcCBtb2RpZmllZAo+IC0JICogYmVsb3cgdW5kZXIgYmxvYl9sb2Nr LiAqLwo+ICAgCWlmIChvYmpfaG9sZHNfaWQpIHsKPiAgIAkJcmV0ID0gZHJtX29iamVjdF9wcm9w ZXJ0eV9zZXRfdmFsdWUob2JqX2hvbGRzX2lkLAo+ICAgCQkJCQkJICAgIHByb3BfaG9sZHNfaWQs Cj4gQEAgLTcyMiwyMCArNzIzLDYgQEAgZXJyX2NyZWF0ZWQ6Cj4gICB9Cj4gICBFWFBPUlRfU1lN Qk9MKGRybV9wcm9wZXJ0eV9yZXBsYWNlX2dsb2JhbF9ibG9iKTsKPgo+IC0vKioKPiAtICogZHJt X21vZGVfZ2V0YmxvYl9pb2N0bCAtIGdldCB0aGUgY29udGVudHMgb2YgYSBibG9iIHByb3BlcnR5 IHZhbHVlCj4gLSAqIEBkZXY6IERSTSBkZXZpY2UKPiAtICogQGRhdGE6IGlvY3RsIGRhdGEKPiAt ICogQGZpbGVfcHJpdjogRFJNIGZpbGUgaW5mbwo+IC0gKgo+IC0gKiBUaGlzIGZ1bmN0aW9uIHJl dHJpZXZlcyB0aGUgY29udGVudHMgb2YgYSBibG9iIHByb3BlcnR5LiBUaGUgdmFsdWUgc3RvcmVk IGluCj4gLSAqIGFuIG9iamVjdCdzIGJsb2IgcHJvcGVydHkgaXMganVzdCBhIG5vcm1hbCBtb2Rl c2V0IG9iamVjdCBpZC4KPiAtICoKPiAtICogQ2FsbGVkIGJ5IHRoZSB1c2VyIHZpYSBpb2N0bC4K PiAtICoKPiAtICogUmV0dXJuczoKPiAtICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJu byBvbiBmYWlsdXJlLgo+IC0gKi8KPiAgIGludCBkcm1fbW9kZV9nZXRibG9iX2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdikKPiAgIHsKPiBAQCAtNzY1LDIxICs3NTIsNiBAQCB1bnJlZjoKPiAgIAlyZXR1 cm4gcmV0Owo+ICAgfQo+Cj4gLS8qKgo+IC0gKiBkcm1fbW9kZV9jcmVhdGVibG9iX2lvY3RsIC0g Y3JlYXRlIGEgbmV3IGJsb2IgcHJvcGVydHkKPiAtICogQGRldjogRFJNIGRldmljZQo+IC0gKiBA ZGF0YTogaW9jdGwgZGF0YQo+IC0gKiBAZmlsZV9wcml2OiBEUk0gZmlsZSBpbmZvCj4gLSAqCj4g LSAqIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyBibG9iIHByb3BlcnR5IHdpdGggdXNlci1k ZWZpbmVkIHZhbHVlcy4gSW4gb3JkZXIKPiAtICogdG8gZ2l2ZSB1cyBzZW5zaWJsZSB2YWxpZGF0 aW9uIGFuZCBjaGVja2luZyB3aGVuIGNyZWF0aW5nLCByYXRoZXIgdGhhbiBhdAo+IC0gKiBldmVy eSBwb3RlbnRpYWwgdXNlLCB3ZSBhbHNvIHJlcXVpcmUgYSB0eXBlIHRvIGJlIHByb3ZpZGVkIHVw ZnJvbnQuCj4gLSAqCj4gLSAqIENhbGxlZCBieSB0aGUgdXNlciB2aWEgaW9jdGwuCj4gLSAqCj4g LSAqIFJldHVybnM6Cj4gLSAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24gZmFp bHVyZS4KPiAtICovCj4gICBpbnQgZHJtX21vZGVfY3JlYXRlYmxvYl9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAgCQkJICAgICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpm aWxlX3ByaXYpCj4gICB7Cj4gQEAgLTgxNiwxOSArNzg4LDYgQEAgb3V0X2Jsb2I6Cj4gICAJcmV0 dXJuIHJldDsKPiAgIH0KPgo+IC0vKioKPiAtICogZHJtX21vZGVfZGVzdHJveWJsb2JfaW9jdGwg LSBkZXN0cm95IGEgdXNlciBibG9iIHByb3BlcnR5Cj4gLSAqIEBkZXY6IERSTSBkZXZpY2UKPiAt ICogQGRhdGE6IGlvY3RsIGRhdGEKPiAtICogQGZpbGVfcHJpdjogRFJNIGZpbGUgaW5mbwo+IC0g Kgo+IC0gKiBEZXN0cm95IGFuIGV4aXN0aW5nIHVzZXItZGVmaW5lZCBibG9iIHByb3BlcnR5Lgo+ IC0gKgo+IC0gKiBDYWxsZWQgYnkgdGhlIHVzZXIgdmlhIGlvY3RsLgo+IC0gKgo+IC0gKiBSZXR1 cm5zOgo+IC0gKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCj4g LSAqLwo+ICAgaW50IGRybV9tb2RlX2Rlc3Ryb3libG9iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gICAJCQkgICAgICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpCj4gICB7Cj4gQEAgLTg4NSw3ICs4NDQsNyBAQCBlcnI6Cj4gICAgKiByZWZlcmVuY2UpLgo+ ICAgICovCj4gICBib29sIGRybV9wcm9wZXJ0eV9jaGFuZ2VfdmFsaWRfZ2V0KHN0cnVjdCBkcm1f cHJvcGVydHkgKnByb3BlcnR5LAo+IC0JCQkJCSB1aW50NjRfdCB2YWx1ZSwgc3RydWN0IGRybV9t b2RlX29iamVjdCAqKnJlZikKPiArCQkJCSAgIHVpbnQ2NF90IHZhbHVlLCBzdHJ1Y3QgZHJtX21v ZGVfb2JqZWN0ICoqcmVmKQo+ICAgewo+ICAgCWludCBpOwo+Cj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9wcm9wZXJ0eS5oIGIvaW5jbHVkZS9kcm0vZHJtX3Byb3BlcnR5LmgKPiBpbmRl eCBhYzQwMDY5MzU4YzcuLjMwYWIyODliZTA1ZCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9k cm1fcHJvcGVydHkuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9wcm9wZXJ0eS5oCj4gQEAgLTI3 LDMzICsyNywxOTIgQEAKPiAgICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgo+ICAgI2luY2x1ZGUg PGRybS9kcm1fbW9kZV9vYmplY3QuaD4KPgo+IC1zdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2Igewo+ IC0Jc3RydWN0IGRybV9tb2RlX29iamVjdCBiYXNlOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRl djsKPiAtCXN0cnVjdCBsaXN0X2hlYWQgaGVhZF9nbG9iYWw7Cj4gLQlzdHJ1Y3QgbGlzdF9oZWFk IGhlYWRfZmlsZTsKPiAtCXNpemVfdCBsZW5ndGg7Cj4gLQl1bnNpZ25lZCBjaGFyIGRhdGFbXTsK PiAtfTsKPiAtCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2VudW0gLSBzeW1ib2xp YyB2YWx1ZXMgZm9yIGVudW1lcmF0aW9ucwo+ICsgKiBAdmFsdWU6IG51bWVyaWMgcHJvcGVydHkg dmFsdWUgZm9yIHRoaXMgZW51bSBlbnRyeQo+ICsgKiBAaGVhZDogbGlzdCBvZiBlbnVtIHZhbHVl cywgbGlua2VkIHRvIGVudW1fbGlzdCBpbiAmZHJtX3Byb3BlcnR5Cj4gKyAqIEBuYW1lOiBzeW1i b2xpYyBuYW1lIGZvciB0aGUgZW51bQo+ICsgKgo+ICsgKiBGb3IgZW51bWVyYXRpb24gYW5kIGJp dG1hc2sgcHJvcGVydGllcyB0aGlzIHN0cnVjdHVyZSBzdG9yZXMgdGhlIHN5bWJvbGljCj4gKyAq IGRlY29kaW5nIGZvciBlYWNoIHZhbHVlLiBUaGlzIGlzIHVzZWQgZm9yIGV4YW1wbGUgZm9yIHRo ZSByb3RhdGlvbiBwcm9wZXJ0eS4KPiArICovCj4gICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2VudW0g ewo+ICAgCXVpbnQ2NF90IHZhbHVlOwo+ICAgCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKPiAgIAlj aGFyIG5hbWVbRFJNX1BST1BfTkFNRV9MRU5dOwo+ICAgfTsKPgo+ICsvKioKPiArICogc3RydWN0 IGRybV9wcm9wZXJ0eSAtIG1vZGVzZXQgb2JqZWN0IHByb3BlcnR5Cj4gKyAqCj4gKyAqIFRoaXMg c3RydWN0dXJlIHJlcHJlc2VudCBhIG1vZGVzZXQgb2JqZWN0IHByb3BlcnR5LiBJdCBjb21iaW5l cyBib3RoIHRoZSBuYW1lCj4gKyAqIG9mIHRoZSBwcm9wZXJ0eSB3aXRoIHRoZSBzZXQgb2YgcGVy bWlzc2libGUgdmFsdWVzLiBUaGlzIG1lYW5zIHRoYXQgd2hlbiBhCj4gKyAqIGRyaXZlciB3YW50 cyB0byB1c2UgYSBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIG5hbWUgb24gZGlmZmVyZW50IG9iamVj dHMsIGJ1dAo+ICsgKiB3aXRoIGRpZmZlcmVudCB2YWx1ZSByYW5nZXMsIHRoZW4gaXQgbXVzdCBj cmVhdGUgcHJvcGVydHkgZm9yIGVhY2ggb25lLiBBbgo+ICsgKiBleGFtcGxlIHdvdWxkIGJlIHJv dGF0aW9uIG9mICZkcm1fcGxhbmUsIHdoZW4gZS5nLiB0aGUgcHJpbWFyeSBwbGFuZSBjYW5ub3QK PiArICogYmUgcm90YXRlZC4gQnV0IGlmIGJvdGggdGhlIG5hbWUgYW5kIHRoZSB2YWx1ZSByYW5n ZSBtYXRjaCwgdGhlbiB0aGUgc2FtZQo+ICsgKiBwcm9wZXJ0eSBzdHJ1Y3R1cmUgY2FuIGJlIGlu c3RhbnRpYXRlZCBtdWx0aXBsZSB0aW1lcyBmb3IgdGhlIHNhbWUgb2JqZWN0Lgo+ICsgKiBVc2Vy c3BhY2UgbXVzdCBiZSBhYmxlIHRvIGNvcGUgd2l0aCB0aGlzIGFuZCBjYW5ub3QgYXNzdW1lIHRo YXQgdGhlIHNhbWUKPiArICogc3ltYm9saWMgcHJvcGVydHkgd2lsbCBoYXZlIHRoZSBzYW1lIG1v ZGVzZXQgb2JqZWN0IElEIG9uIGFsbCBtb2Rlc2V0Cj4gKyAqIG9iamVjdHMuCj4gKyAqCj4gKyAq IFByb3BlcnRpZXMgYXJlIGNyZWF0ZWQgYnkgb25lIG9mIHRoZSBzcGVjaWFsIGZ1bmN0aW9ucywg YXMgZXhwbGFpbmVkIGluCj4gKyAqIGRldGFpbCBpbiB0aGUgQGZsYWdzIHN0cnVjdHVyZSBtZW1i ZXIuCj4gKyAqCj4gKyAqIFRvIGFjdHVhbGx5IGV4cG9zZSBhIHByb3BlcnR5IGl0IG11c3QgYmUg YXR0YWNoZWQgdG8gZWFjaCBvYmplY3QgdXNpbmcKPiArICogZHJtX29iamVjdF9hdHRhY2hfcHJv cGVydHkoKS4gQ3VycmVudGx5IHByb3BlcnRpZXMgY2FuIG9ubHkgYmUgYXR0YWNoZWQgdG8KPiAr ICogJmRybV9jb25uZWN0b3IsICZkcm1fY3J0YyBhbmQgJmRybV9wbGFuZS4KPiArICoKPiArICog UHJvcGVydGllcyBhcmUgYWxzbyB1c2VkIGFzIHRoZSBnZW5lcmljIG1ldGFkYXRhdHJhbnNwb3J0 IGZvciB0aGUgYXRvbWljCj4gKyAqIElPQ1RMLiBFdmVyeXRoaW5nIHRoYXQgd2FzIHNldCBkaXJl Y3RseSBpbiBzdHJ1Y3R1cmVzIGluIHRoZSBsZWdhY3kgbW9kZXNldAo+ICsgKiBJT0NUTHMgKGxp a2UgdGhlIHBsYW5lIHNvdXJjZSBvciBkZXN0aW5hdGlvbiB3aW5kb3dzLCBvciBlLmcuIHRoZSBs aW5rcyB0bwo+ICsgKiB0aGUgQ1JUQykgaXMgZXhwb3NlZCBhcyBhIHByb3BlcnR5IHdpdGggdGhl IERSTV9NT0RFX1BST1BfQVRPTUlDIGZsYWcgc2V0Lgo+ICsgKi8KPiAgIHN0cnVjdCBkcm1fcHJv cGVydHkgewo+ICsJLyoqCj4gKwkgKiBAaGVhZDogcGVyLWRldmljZSBsaXN0IG9mIHByb3BlcnRp ZXMsIGZvciBjbGVhbnVwLgo+ICsJICovCj4gICAJc3RydWN0IGxpc3RfaGVhZCBoZWFkOwo+ICsK PiArCS8qKgo+ICsJICogQGJhc2U6IGJhc2UgS01TIG9iamVjdAo+ICsJICovCj4gICAJc3RydWN0 IGRybV9tb2RlX29iamVjdCBiYXNlOwo+ICsKPiArCS8qKgo+ICsJICogQGZsYWdzOgo+ICsJICoK PiArCSAqIFByb3BlcnR5IGZsYWdzIGFuZCB0eXBlLiBBIHByb3BlcnR5IG5lZWRzIHRvIGJlIG9u ZSBvZiB0aGUgZm9sbG93aW5nCj4gKwkgKiB0eXBlczoKPiArCSAqCj4gKwkgKiBEUk1fTU9ERV9Q Uk9QX1JBTkdFCj4gKwkgKiAgICAgUmFuZ2UgcHJvcGVydGllcyByZXBvcnQgdGhlaXIgbWluaW11 bSBhbmQgbWF4aW11bSBhZG1pc3NpYmxlIHVuc2lnbmVkIHZhbHVlcy4KPiArCSAqICAgICBUaGUg S01TIGNvcmUgdmVyaWZpZXMgdGhhdCB2YWx1ZXMgc2V0IGJ5IGFwcGxpY2F0aW9uIGZpdCBpbiB0 aGF0Cj4gKwkgKiAgICAgcmFuZ2UuIFRoZSByYW5nZSBpcyB1bnNpZ25lZC4gUmFuZ2UgcHJvcGVy dGllcyBhcmUgY3JlYXRlZCB1c2luZwo+ICsJICogICAgIGRybV9wcm9wZXJ0eV9jcmVhdGVfcmFu Z2UoKS4KPiArCSAqCj4gKwkgKiBEUk1fTU9ERV9QUk9QX1NJR05FRF9SQU5HRQo+ICsJICogICAg IFJhbmdlIHByb3BlcnRpZXMgcmVwb3J0IHRoZWlyIG1pbmltdW0gYW5kIG1heGltdW0gYWRtaXNz aWJsZSB1bnNpZ25lZCB2YWx1ZXMuCj4gKwkgKiAgICAgVGhlIEtNUyBjb3JlIHZlcmlmaWVzIHRo YXQgdmFsdWVzIHNldCBieSBhcHBsaWNhdGlvbiBmaXQgaW4gdGhhdAo+ICsJICogICAgIHJhbmdl LiBUaGUgcmFuZ2UgaXMgc2lnbmVkLiBSYW5nZSBwcm9wZXJ0aWVzIGFyZSBjcmVhdGVkIHVzaW5n Cj4gKwkgKiAgICAgZHJtX3Byb3BlcnR5X2NyZWF0ZV9zaWduZWRfcmFuZ2UoKS4KPiArCSAqCj4g KwkgKiBEUk1fTU9ERV9QUk9QX0VOVU0KPiArCSAqICAgICBFbnVtZXJhdGVkIHByb3BlcnRpZXMg dGFrZSBhIG51bWVyaWNhbCB2YWx1ZSB0aGF0IHJhbmdlcyBmcm9tIDAgdG8KPiArCSAqICAgICB0 aGUgbnVtYmVyIG9mIGVudW1lcmF0ZWQgdmFsdWVzIGRlZmluZWQgYnkgdGhlIHByb3BlcnR5IG1p bnVzIG9uZSwKPiArCSAqICAgICBhbmQgYXNzb2NpYXRlIGEgZnJlZS1mb3JtZWQgc3RyaW5nIG5h bWUgdG8gZWFjaCB2YWx1ZS4gQXBwbGljYXRpb25zCj4gKwkgKiAgICAgY2FuIHJldHJpZXZlIHRo ZSBsaXN0IG9mIGRlZmluZWQgdmFsdWUtbmFtZSBwYWlycyBhbmQgdXNlIHRoZQo+ICsJICogICAg IG51bWVyaWNhbCB2YWx1ZSB0byBnZXQgYW5kIHNldCBwcm9wZXJ0eSBpbnN0YW5jZSB2YWx1ZXMu IEVudW0KPiArCSAqICAgICBwcm9wZXJ0aWVzIGFyZSBjcmVhdGVkIHVzaW5nIGRybV9wcm9wZXJ0 eV9jcmVhdGVfZW51bSgpLgo+ICsJICoKPiArCSAqIERSTV9NT0RFX1BST1BfQklUTUFTSwo+ICsJ ICogICAgIEJpdG1hc2sgcHJvcGVydGllcyBhcmUgZW51bWVyYXRpb24gcHJvcGVydGllcyB0aGF0 IGFkZGl0aW9uYWxseQo+ICsJICogICAgIHJlc3RyaWN0IGFsbCBlbnVtZXJhdGVkIHZhbHVlcyB0 byB0aGUgMC4uNjMgcmFuZ2UuIEJpdG1hc2sgcHJvcGVydHkKPiArCSAqICAgICBpbnN0YW5jZSB2 YWx1ZXMgY29tYmluZSBvbmUgb3IgbW9yZSBvZiB0aGUgZW51bWVyYXRlZCBiaXRzIGRlZmluZWQK PiArCSAqICAgICBieSB0aGUgcHJvcGVydHkuIEJpdG1hc2sgcHJvcGVydGllcyBhcmUgY3JlYXRl ZCB1c2luZwo+ICsJICogICAgIGRybV9wcm9wZXJ0eV9jcmVhdGVfYml0bWFzaygpLgo+ICsJICoK PiArCSAqIERSTV9NT0RFX1BST0JfT0JKRUNUCj4gKwkgKiAgICAgT2JqZWN0IHByb3BlcnRpZXMg YXJlIHVzZWQgdG8gbGluayBtb2Rlc2V0IG9iamVjdHMuIFRoaXMgaXMgdXNlZAo+ICsJICogICAg IGV4dGVuc2l2ZWx5IGluIHRoZSBhdG9taWMgc3VwcG9ydCB0byBjcmVhdGUgdGhlIGRpc3BsYXkg cGlwZWxpbmUsCj4gKwkgKiAgICAgYnkgbGlua2luZyAmZHJtX2ZyYW1lYnVmZmVyIHRvICZkcm1f cGxhbmUsICZkcm1fcGxhbmUgdG8KPiArCSAqICAgICAmZHJtX2NydGMgYW5kICZkcm1fY29ubmVj dG9yIHRvICZkcm1fY3J0Yy4gQW4gb2JqZWN0IHByb3BlcnR5IGNhbgo+ICsJICogICAgIG9ubHkg bGluayB0byBhIHNwZWNpZmljIHR5cGUgb2YgJmRybV9tb2RlX29iamVjdCwgdGhpcyBsaW1pdCBp cwo+ICsJICogICAgIGVuZm9yY2VkIGJ5IHRoZSBjb3JlLiBPYmplY3QgcHJvcGVydGllcyBhcmUg Y3JlYXRlZCB1c2luZwo+ICsJICogICAgIGRybV9wcm9wZXJ0eV9jcmVhdGVfb2JqZWN0KCkuCj4g KwkgKgo+ICsJICogICAgIE9iamVjdCBwcm9wZXJ0aWVzIHdvcmsgbGlrZSBibG9iIHByb3BlcnRp ZXMsIGJ1dCBpbiBhIG1vcmUKPiArCSAqICAgICBnZW5lcmFsIGZhc2hpb24uIFRoZXkgYXJlIGxp bWl0ZWQgdG8gYXRvbWljIGRyaXZlcnMgYW5kIG11c3QgaGF2ZQo+ICsJICogICAgIHRoZSBEUk1f TU9ERV9QUk9QX0FUT01JQyBmbGFnIHNldC4KPiArCSAqCj4gKwkgKiBEUk1fTU9ERV9QUk9QX0JM T0IKPiArCSAqICAgICBCbG9iIHByb3BlcnRpZXMgc3RvcmUgYSBiaW5hcnkgYmxvYiB3aXRob3V0 IGFueSBmb3JtYXQgcmVzdHJpY3Rpb24uCj4gKwkgKiAgICAgVGhlIGJpbmFyeSBibG9icyBhcmUg Y3JlYXRlZCBhcyBLTVMgc3RhbmRhbG9uZSBvYmplY3RzLCBhbmQgYmxvYgo+ICsJICogICAgIHBy b3BlcnR5IGluc3RhbmNlIHZhbHVlcyBzdG9yZSB0aGUgSUQgb2YgdGhlaXIgYXNzb2NpYXRlZCBi bG9iCj4gKwkgKiAgICAgb2JqZWN0LiBCbG9iIHByb3BlcnRpZXMgYXJlIGNyZWF0ZWQgYnkgY2Fs bGluZwo+ICsJICogICAgIGRybV9wcm9wZXJ0eV9jcmVhdGUoKSB3aXRoIERSTV9NT0RFX1BST1Bf QkxPQiBhcyB0aGUgdHlwZS4KPiArCSAqCj4gKwkgKiAgICAgQWN0dWFsIGJsb2Igb2JqZWN0cyB0 byBjb250YWluIGJsb2IgZGF0YSBhcmUgY3JlYXRlZCB1c2luZwo+ICsJICogICAgIGRybV9wcm9w ZXJ0eV9jcmVhdGVfYmxvYigpLCBvciB0aHJvdWdoIHRoZSBjb3JyZXNwb25kaW5nIElPQ1RMLgo+ ICsJICoKPiArCSAqICAgICBCZXNpZGVzIHRoZSBidWlsdC1pbiBsaW1pdCB0byBvbmx5IGFjY2Vw dCBibG9iIG9iamVjdHMgYmxvYgo+ICsJICogICAgIHByb3BlcnRpZXMgd29yayBleGFjdGx5IGxp a2Ugb2JqZWN0IHByb3BlcnRpZXMuIFRoZSBvbmx5IHJlYXNvbnMKPiArCSAqICAgICBibG9iIHBy b3BlcnRpZXMgZXhpc3QgaXMgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZwo+ ICsJICogICAgIHVzZXJzcGFjZS4KPiArCSAqCj4gKwkgKiBJbiBhZGRpdGlvbiBhIHByb3BlcnR5 IGNhbiBoYXZlIGFueSBjb21iaW5hdGlvbiBvZiB0aGUgYmVsb3cgZmxhZ3M6Cj4gKwkgKgo+ICsJ ICogRFJNX01PREVfUFJPUF9BVE9NSUMKPiArCSAqICAgICBTZXQgZm9yIHByb3BlcnRpZXMgd2hp Y2ggZW5jb2RlIGF0b21pYyBtb2Rlc2V0IHN0YXRlLiBTdWNoCj4gKwkgKiAgICAgcHJvcGVydGll cyBhcmUgbm90IGV4cG9zZWQgdG8gbGVnYWN5IHVzZXJzcGFjZS4KPiArCSAqCj4gKwkgKiBEUk1f TU9ERV9QUk9QX0lNTVVUQUJMRQo+ICsJICogICAgIFNldCBmb3IgcHJvcGVydGllcyB3aGVyZSB1 c2Vyc3BhY2UgY2Fubm90IGJlIGNoYW5nZWQgYnkKPiArCSAqICAgICB1c2Vyc3BhY2UuIFRoZSBr ZXJuZWwgaXMgYWxsb3dlZCB0byB1cGRhdGUgdGhlIHZhbHVlIG9mIHRoZXNlCj4gKwkgKiAgICAg cHJvcGVydGllcy4gVGhpcyBpcyBnZW5lcmFsbHkgdXNlZCB0byBleHBvc2UgcHJvYmUgc3RhdGUg dG8KPiArCSAqICAgICB1c2Vyc2FwY2UsIGUuZy4gdGhlIEVESUQsIG9yIHRoZSBjb25uZWN0b3Ig cGF0aCBwcm9wZXJ0eSBvbiBEUAo+ICsJICogICAgIE1TVCBzaW5rcy4KPiArCSAqLwo+ICAgCXVp bnQzMl90IGZsYWdzOwo+ICsKPiArCS8qKgo+ICsJICogQG5hbWU6IHN5bWJvbGljIG5hbWUgb2Yg dGhlIHByb3BlcnRpZXMKPiArCSAqLwo+ICAgCWNoYXIgbmFtZVtEUk1fUFJPUF9OQU1FX0xFTl07 Cj4gKwo+ICsJLyoqCj4gKwkgKiBAbnVtX3ZhbHVlczogc2l6ZSBvZiB0aGUgQHZhbHVlcyBhcnJh eS4KPiArCSAqLwo+ICAgCXVpbnQzMl90IG51bV92YWx1ZXM7Cj4gKwo+ICsJLyoqCj4gKwkgKiBA dmFsdWVzOgo+ICsJICoKPiArCSAqIEFycmF5IHdpdGggbGltaXRzIGFuZCB2YWx1ZXMgZm9yIHRo ZSBwcm9wZXJ0eS4gVGhlCj4gKwkgKiBpbnRlcnByZXRhdGlvbiBvZiB0aGVzZSBsaW1pdHMgaXMg ZGVwZW5kZW50IHVwb24gdGhlIHR5cGUgcGVyIEBmbGFncy4KPiArCSAqLwo+ICAgCXVpbnQ2NF90 ICp2YWx1ZXM7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAZGV2OiBEUk0gZGV2aWNlCj4gKwkgKi8KPiAg IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+Cj4gKwkvKioKPiArCSAqIEBlbnVtX2xpc3Q6Cj4g KwkgKgo+ICsJICogTGlzdCBvZiAmZHJtX3Byb3BfZW51bV9saXN0IHN0cnVjdHVyZXMgd2l0aCB0 aGUgc3ltYm9saWMgbmFtZXMgZm9yCj4gKwkgKiBlbnVtIGFuZCBiaXRtYXNrIHZhbHVlcy4KPiAr CSAqLwo+ICAgCXN0cnVjdCBsaXN0X2hlYWQgZW51bV9saXN0Owo+ICAgfTsKPgo+ICsvKioKPiAr ICogc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iIC0gQmxvYiBkYXRhIGZvciAmZHJtX3Byb3BlcnR5 Cj4gKyAqIEBiYXNlOiBiYXNlIEtNUyBvYmplY3QKPiArICogQGRldjogRFJNIGRldmljZQo+ICsg KiBAaGVhZF9nbG9iYWw6IGVudHJ5IG9uIHRoZSBnbG9iYWwgYmxvYiBsaXN0IGluICZkcm1fbW9k ZV9jb25maWcKPiArICoJcHJvcGVydHlfYmxvYl9saXN0Lgo+ICsgKiBAaGVhZF9maWxlOiBlbnRy eSBvbiB0aGUgcGVyLWZpbGUgYmxvYiBsaXN0IGluICZkcm1fZmlsZSBibG9icyBsaXN0Lgo+ICsg KiBAbGVuZ3RoOiBzaXplIG9mIHRoZSBibG9iIGluIGJ5dGVzLCBpbnZhcmlhbnQgb3ZlciB0aGUg bGlmZXRpbWUgb2YgdGhlIG9iamVjdAo+ICsgKiBAZGF0YTogYWN0dWFsIGRhdGEsIGVtYmVkZGVk IGF0IHRoZSBlbmQgb2YgdGhpcyBzdHJ1Y3R1cmUKPiArICoKPiArICogQmxvYnMgYXJlIHVzZWQg dG8gc3RvcmUgYmlnZ2VyIHZhbHVlcyB0aGFuIHdoYXQgZml0cyBkaXJlY3RseSBpbnRvIHRoZSA2 NAo+ICsgKiBiaXRzIGF2YWlsYWJsZSBmb3IgYSAmZHJtX3Byb3BlcnR5Lgo+ICsgKgo+ICsgKiBC bG9icyBhcmUgcmVmZXJlbmNlIGNvdW50ZWQgdXNpbmcgZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9i bG9iKCkgYW5kCj4gKyAqIGRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKCkuIFRoZXkgYXJl IGNyZWF0ZWQgdXNpbmcKPiArICogZHJtX3Byb3BlcnR5X2NyZWF0ZV9ibG9iKCkuCj4gKyAqLwo+ ICtzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2Igewo+ICsJc3RydWN0IGRybV9tb2RlX29iamVjdCBi YXNlOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKPiArCXN0cnVjdCBsaXN0X2hlYWQgaGVh ZF9nbG9iYWw7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWRfZmlsZTsKPiArCXNpemVfdCBsZW5n dGg7Cj4gKwl1bnNpZ25lZCBjaGFyIGRhdGFbXTsKPiArfTsKPiArCj4gICBzdHJ1Y3QgZHJtX3By b3BfZW51bV9saXN0IHsKPiAgIAlpbnQgdHlwZTsKPiAgIAljaGFyICpuYW1lOwo+IEBAIC02MSw4 ICsyMjAsMTYgQEAgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCB7Cj4KPiAgICNkZWZpbmUgb2Jq X3RvX3Byb3BlcnR5KHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgZHJtX3Byb3BlcnR5LCBiYXNl KQo+Cj4gKy8qKgo+ICsgKiBkcm1fcHJvcGVydHlfdHlwZV9pcyAtIGNoZWNrIHRoZSB0eXBlIG9m IGEgcHJvcGVydHkKPiArICogQHByb3BlcnR5OiBwcm9wZXJ0eSB0byBjaGVjawo+ICsgKiBAdHlw ZTogcHJvcGVydHkgdHlwZSB0byBjb21wYXJlIHdpdGgKPiArICoKPiArICogVGhpcyBpcyBhIGhl bHBlciBmdW5jdGlvbiBiZWNhdWFzZSB0aGUgdWFwaSBlbmNvZGluZyBvZiBwcm9wZXJ0eSB0eXBl cyBpcwo+ICsgKiBhIGJpdCBzcGVjaWFsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMuCj4gKyAqLwo+ ICAgc3RhdGljIGlubGluZSBib29sIGRybV9wcm9wZXJ0eV90eXBlX2lzKHN0cnVjdCBkcm1fcHJv cGVydHkgKnByb3BlcnR5LAo+IC0JCXVpbnQzMl90IHR5cGUpCj4gKwkJCQkJdWludDMyX3QgdHlw ZSkKPiAgIHsKPiAgIAkvKiBpbnN0YW5jZW9mIGZvciBwcm9wcy4uIGhhbmRsZXMgZXh0ZW5kZWQg dHlwZSB2cyBvcmlnaW5hbCB0eXBlczogKi8KPiAgIAlpZiAocHJvcGVydHktPmZsYWdzICYgRFJN X01PREVfUFJPUF9FWFRFTkRFRF9UWVBFKQo+IEBAIC0xMDksOCArMjc2LDE1IEBAIGludCBkcm1f cHJvcGVydHlfcmVwbGFjZV9nbG9iYWxfYmxvYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAg c3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkcm1fcHJvcGVydHlfcmVmZXJlbmNlX2Jsb2Ioc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKTsKPiAgIHZvaWQgZHJtX3Byb3BlcnR5X3VucmVm ZXJlbmNlX2Jsb2Ioc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iKTsKPgo+ICsvKioKPiAr ICogZHJtX2Nvbm5lY3Rvcl9maW5kIC0gZmluZCBwcm9wZXJ0eSBvYmplY3QKPiArICogQGRldjog RFJNIGRldmljZQo+ICsgKiBAaWQ6IHByb3BlcnR5IG9iamVjdCBpZAo+ICsgKgo+ICsgKiBUaGlz IGZ1bmN0aW9uIGxvb2tzIHVwIHRoZSBwcm9wZXJ0eSBvYmplY3Qgc3BlY2lmaWVkIGJ5IGlkIGFu ZCByZXR1cm5zIGl0Lgo+ICsgKi8KPiAgIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9wcm9wZXJ0 eSAqZHJtX3Byb3BlcnR5X2ZpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQl1aW50MzJf dCBpZCkKPiArCQkJCQkJICAgICB1aW50MzJfdCBpZCkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX21v ZGVfb2JqZWN0ICptbzsKPiAgIAltbyA9IGRybV9tb2RlX29iamVjdF9maW5kKGRldiwgaWQsIERS TV9NT0RFX09CSkVDVF9QUk9QRVJUWSk7Cj4KCi0tIApRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRl ciwgSW5jLiBpcyBhIG1lbWJlciBvZiBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0 aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK