From mboxrd@z Thu Jan 1 00:00:00 1970 From: Qiang Yu Subject: Re: [PATCH RFC 05/24] Revert "drm: Nerf the preclose callback for modern drivers" Date: Thu, 24 May 2018 09:38:38 +0800 Message-ID: References: <20180518092815.25280-1-yuq825@gmail.com> <20180518092815.25280-6-yuq825@gmail.com> <9b48f845-9854-1029-ed21-df7b3590935b@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: =?UTF-8?Q?Christian_K=C3=B6nig?= Cc: Simon Shields , devicetree@vger.kernel.org, Connor Abbott , Marek Vasut , Neil Armstrong , Andrei Paulau <7134956@gmail.com>, dri-devel , Vasily Khoruzhick , Erico Nunes List-Id: devicetree@vger.kernel.org T24gV2VkLCBNYXkgMjMsIDIwMTggYXQgOTo0MSBQTSwgQ2hyaXN0aWFuIEvDtm5pZwo8Y2hyaXN0 aWFuLmtvZW5pZ0BhbWQuY29tPiB3cm90ZToKPiBBbSAyMy4wNS4yMDE4IHVtIDE1OjEzIHNjaHJp ZWIgUWlhbmcgWXU6Cj4+Cj4+IE9uIFdlZCwgTWF5IDIzLCAyMDE4IGF0IDU6MzUgUE0sIENocmlz dGlhbiBLw7ZuaWcKPj4gPGNrb2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwuY29tPiB3cm90ZToK Pj4+Cj4+PiBXZWxsIE5BSywgdGhhdCBicmluZ3MgYmFjayBhIGNhbGxiYWNrIHdlIHdvcmtlZCBx dWl0ZSBoYXJkIG9uIGdldHRpbmcgcmlkCj4+PiBvZi4KPj4+Cj4+PiBJdCBsb29rcyBsaWtlIHRo ZSBwcm9ibGVtIGlzbid0IHRoYXQgeW91IG5lZWQgdGhlIHByZWNsb3NlIGNhbGxiYWNrLCBidXQK Pj4+IHlvdQo+Pj4gcmF0aGVyIHNlZW0gdG8gbWlzdW5kZXJzdG9vZCBob3cgVFRNIHdvcmtzLgo+ Pj4KPj4+IEFsbCB5b3UgbmVlZCB0byBkbyBpcyB0byBjbGVhbnVwIHlvdXIgY29tbWFuZCBzdWJt aXNzaW9uIHBhdGggc28gdGhhdCB0aGUKPj4+IGNhbGxlciBvZiBsaW1hX3NjaGVkX2NvbnRleHRf cXVldWVfdGFzaygpIGFkZHMgdGhlIHJlc3VsdGluZyBzY2hlZHVsZXIKPj4+IGZlbmNlCj4+PiB0 byBUVE1zIGJ1ZmZlciBvYmplY3RzLgo+Pgo+PiBZb3UgbWVhbiBhZGRpbmcgdGhlIGZpbmlzaGVk IGRtYSBmZW5jZSB0byB0aGUgYnVmZmVyJ3MgcmVzZXJ2YXRpb24gb2JqZWN0Cj4+IHRoZW4KPj4g d2FpdGluZyBpdCBiZWZvcmUgdW5tYXAgdGhlIGJ1ZmZlciBmcm9tIEdQVSBWTSBpbiB0aGUgZHJt X3JlbGVhc2UoKSdzCj4+IGJ1ZmZlcgo+PiBjbG9zZSBjYWxsYmFjaz8KPgo+Cj4gVGhhdCBpcyBv bmUgcG9zc2liaWxpdHksIGJ1dCBhbHNvIG5vdCBuZWNlc3NhcnkuCj4KPiBUVE0gaGFzIGEgZGVz dHJveSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgZnJvbSBhIHdvcmtxdWV1ZSB3aGVuIGFsbCBm ZW5jZXMKPiBvbiB0aGF0IEJPcyBoYXZlIHNpZ25hbGVkLgo+Cj4gRGVwZW5kaW5nIG9uIHlvdXIg Vk0gbWFuYWdlbWVudCB5b3UgY2FuIHVzZSBpdCB0byBkZWxheSB1bm1hcHBpbmcgdGhlIGJ1ZmZl cgo+IHVudGlsIGl0IGlzIGFjdHVhbGx5IG5vdCB1c2VkIGFueSBtb3JlLgo+Cj4+IEFkZGluZyBm ZW5jZSBpcyBkb25lIGFscmVhZHksIGFuZCBJIGRpZCB3YWl0IGl0IGJlZm9yZSB1bm1hcC4gQnV0 IHRoZW4KPj4gSSBzZWUgd2hlbgo+PiB0aGUgYnVmZmVyIGlzIHNoYXJlZCBiZXR3ZWVuIHByb2Nl c3NlcywgdGhlICJwZXJmZWN0IHdhaXQiIGlzIGp1c3QKPj4gd2FpdCB0aGUgZmVuY2UKPj4gZnJv bSB0aGlzIHByb2Nlc3MncyB0YXNrLCBzbyBpdCdzIGJldHRlciB0byBhbHNvIGRpc3Rpbmd1aXNo IGZlbmNlcy4KPj4gSWYgc28sIEkganVzdCB0aGluawo+PiB3aHkgd2UgZG9uJ3QganVzdCB3YWl0 IHRhc2tzIGZyb20gdGhpcyBwcm9jZXNzIGluIHRoZSBwcmVjbG9zZSBiZWZvcmUKPj4gdW5tYXAv ZnJlZQo+PiBidWZmZXIgaW4gdGhlIGRybV9yZWxlYXNlKCk/Cj4KPgo+IFdlbGwgaXQgZGVwZW5k cyBvbiB5b3VyIFZNIG1hbmFnZW1lbnQuIFdoZW4gdXNlcnNwYWNlIGV4cGVjdHMgdGhhdCB0aGUg Vk0KPiBzcGFjZSB0aGUgQk8gdXNlZCBpcyByZXVzYWJsZSBpbW1lZGlhdGVseSB0aGFuIHRoZSBU VE0gY2FsbGJhY2sgd29uJ3Qgd29yay4KPgo+IE9uIHRoZSBvdGhlciBoYW5kIHlvdSBjYW4ganVz dCBncmFiIHRoZSBsaXN0IG9mIGZlbmNlcyBvbiBhIEJPIGFuZCBmaWx0ZXIKPiBvdXQgdGhlIG9u ZXMgZnJvbSB5b3VyIGN1cnJlbnQgcHJvY2VzcyBhbmQgd2FpdCBmb3IgdGhvc2UuIFNlZQo+IGFt ZGdwdV9zeW5jX3Jlc3YoKSBhcyBhbiBleGFtcGxlIGhvdyB0byBkbyB0aGF0LgoKSW4gY3VycmVu dCBsaW1hIGltcGxlbWVudGF0aW9uLCB1c2VyIHNwYWNlIGRyaXZlciBpcyByZXNwb25zaWJsZSBu b3QgdW5tYXAvZnJlZQpidWZmZXIgYmVmb3JlIHRhc2sgaXMgY29tcGxldGUuIEFuZCBWTSBtYXAv dW5tYXAgaXMgbm90IGRpZmZlcmVkLgoKVGhpcyB3b3JrcyBzaW1wbGUgYW5kIGZpbmUgZXhjZXB0 IHRoZSBjYXNlIHRoYXQgdXNlciBwcmVzcyBDdHJsK0MgdG8gdGVybWluYXRlCnRoZSBhcHBsaWNh dGlvbiB3aGljaCB3aWxsIGZvcmNlIHRvIGNsb3NlIGRybSBmZC4KCkknZCBtb3JlIHByZWZlciB0 byB3YWl0IGJ1ZmZlciBmZW5jZSBiZWZvcmUgdm0gdW5tYXAgYW5kIGZpbHRlciBsaWtlCmFtZGdw dV9zeW5jX3Jlc3YoKSBjb21wYXJlZCB0byBpbXBsZW1lbnQgcmVmY291bnQgaW4ga2VybmVsIHRh c2suCkJ1dCB0aGVzZSB0d28gd2F5cyBhcmUgYWxsIG5vdCBhcyBzaW1wbGUgYXMgcHJlY2xvc2Uu CgpTbyBJIHN0aWxsIGRvbid0IHVuZGVyc3RhbmQgd2h5IHlvdSBkb24ndCB3YW50IHRvIGdldCBw cmVjbG9zZSBiYWNrIGV2ZW4KaGF2ZSB0byBpbnRyb2R1Y2Ugb3RoZXIgY29tcGxpY2F0ZWQgbWVj aGFuaXNtIHRvIGNvdmVyIHRoZSBjYXNlIGZyZWUvdW5tYXAKYnVmZmVyIGJlZm9yZSB0aGlzIHBy b2Nlc3MncyB0YXNrIGlzIGRvbmU/CgpSZWdhcmRzLApRaWFuZwoKPgo+IENocmlzdGlhbi4KPgo+ Cj4+Cj4+IFJlZ2FyZHMsCj4+IFFpYW5nCj4+Cj4+Pgo+Pj4gQW0gMTguMDUuMjAxOCB1bSAxMToy NyBzY2hyaWViIFFpYW5nIFl1Ogo+Pj4+Cj4+Pj4gVGhpcyByZXZlcnRzIGNvbW1pdCA0NWMzZDIx M2E0MDBjOTUyYWI3MTE5ZjM5NGM1MjkzYmI2ODc3ZTZiLgo+Pj4+Cj4+Pj4gbGltYSBkcml2ZXIg bmVlZCBwcmVjbG9zZSB0byB3YWl0IGFsbCB0YXNrIGluIHRoZSBjb250ZXh0Cj4+Pj4gY3JlYXRl ZCB3aXRoaW4gY2xvc2luZyBmaWxlIHRvIGZpbmlzaCBiZWZvcmUgZnJlZSBhbGwgdGhlCj4+Pj4g YnVmZmVyIG9iamVjdC4gT3RoZXJ3aXNlIHBlbmRpbmcgdGVzayBtYXkgZmFpbCBhbmQgZ2V0Cj4+ Pj4gbm9pc3kgTU1VIGZhdWx0IG1lc3NhZ2UuCj4+Pj4KPj4+PiBNb3ZlIHRoaXMgd2FpdCB0byBl YWNoIGJ1ZmZlciBvYmplY3QgZnJlZSBmdW5jdGlvbiBjYW4KPj4+PiBhY2hpZXZlIHRoZSBzYW1l IHJlc3VsdCBidXQgc29tZSBidWZmZXIgb2JqZWN0IGlzIHNoYXJlZAo+Pj4+IHdpdGggb3RoZXIg ZmlsZSBjb250ZXh0LCBidXQgd2Ugb25seSB3YW50IHRvIHdhaXQgdGhlCj4+Pj4gY2xvc2luZyBm aWxlIGNvbnRleHQncyB0YXNrcy4gU28gdGhlIGltcGxlbWVudGF0aW9uIGlzCj4+Pj4gbm90IHRo YXQgc3RyYWlnaHQgZm9yd29yZCBjb21wYXJlZCB0byB0aGUgcHJlY2xvc2Ugb25lLgo+Pj4+Cj4+ Pj4gU2lnbmVkLW9mZi1ieTogUWlhbmcgWXUgPHl1cTgyNUBnbWFpbC5jb20+Cj4+Pj4gLS0tCj4+ Pj4gICAgZHJpdmVycy9ncHUvZHJtL2RybV9maWxlLmMgfCAgOCArKysrLS0tLQo+Pj4+ICAgIGlu Y2x1ZGUvZHJtL2RybV9kcnYuaCAgICAgIHwgMjMgKysrKysrKysrKysrKysrKysrKysrLS0KPj4+ PiAgICAyIGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4+ Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9maWxlLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2ZpbGUuYwo+Pj4+IGluZGV4IGUzOTQ3OTk5NzlhNi4uMGE0MzEwNzM5NmI5 IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmlsZS5jCj4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9maWxlLmMKPj4+PiBAQCAtMzYxLDggKzM2MSw5IEBAIHZvaWQg ZHJtX2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKPj4+PiAgICAgKgo+Pj4+ICAg ICAqIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSB1c2VkIGJ5IGRyaXZlcnMgYXMgdGhlaXIKPj4+PiAm ZmlsZV9vcGVyYXRpb25zLnJlbGVhc2UKPj4+PiAgICAgKiBtZXRob2QuIEl0IGZyZWVzIGFueSBy ZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBvcGVuIGZpbGUsIGFuZAo+Pj4+IGNhbGxzIHRo ZQo+Pj4+IC0gKiAmZHJtX2RyaXZlci5wb3N0Y2xvc2UgZHJpdmVyIGNhbGxiYWNrLiBJZiB0aGlz IGlzIHRoZSBsYXN0IG9wZW4gZmlsZQo+Pj4+IGZvciB0aGUKPj4+PiAtICogRFJNIGRldmljZSBh bHNvIHByb2NlZWRzIHRvIGNhbGwgdGhlICZkcm1fZHJpdmVyLmxhc3RjbG9zZSBkcml2ZXIKPj4+ PiBjYWxsYmFjay4KPj4+PiArICogJmRybV9kcml2ZXIucHJlY2xvc2UgYW5kICZkcm1fZHJpdmVy Lmxhc3RjbG9zZSBkcml2ZXIgY2FsbGJhY2tzLiBJZgo+Pj4+IHRoaXMgaXMKPj4+PiArICogdGhl IGxhc3Qgb3BlbiBmaWxlIGZvciB0aGUgRFJNIGRldmljZSBhbHNvIHByb2NlZWRzIHRvIGNhbGwg dGhlCj4+Pj4gKyAqICZkcm1fZHJpdmVyLmxhc3RjbG9zZSBkcml2ZXIgY2FsbGJhY2suCj4+Pj4g ICAgICoKPj4+PiAgICAgKiBSRVRVUk5TOgo+Pj4+ICAgICAqCj4+Pj4gQEAgLTM4Miw4ICszODMs NyBAQCBpbnQgZHJtX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUKPj4+ PiAqZmlscCkKPj4+PiAgICAgICAgICBsaXN0X2RlbCgmZmlsZV9wcml2LT5saGVhZCk7Cj4+Pj4g ICAgICAgICAgbXV0ZXhfdW5sb2NrKCZkZXYtPmZpbGVsaXN0X211dGV4KTsKPj4+PiAgICAtICAg ICBpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9MRUdBQ1kpICYmCj4+Pj4g LSAgICAgICAgICAgZGV2LT5kcml2ZXItPnByZWNsb3NlKQo+Pj4+ICsgICAgICAgaWYgKGRldi0+ ZHJpdmVyLT5wcmVjbG9zZSkKPj4+PiAgICAgICAgICAgICAgICAgIGRldi0+ZHJpdmVyLT5wcmVj bG9zZShkZXYsIGZpbGVfcHJpdik7Cj4+Pj4gICAgICAgICAgLyogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPj4+PiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX2Rydi5oIGIvaW5jbHVkZS9kcm0vZHJtX2Rydi5oCj4+Pj4gaW5kZXgg ZDIzZGNkZDFiZDk1Li44ZDYwODBmOTdlZDQgMTAwNjQ0Cj4+Pj4gLS0tIGEvaW5jbHVkZS9kcm0v ZHJtX2Rydi5oCj4+Pj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Rydi5oCj4+Pj4gQEAgLTEwNyw2 ICsxMDcsMjMgQEAgc3RydWN0IGRybV9kcml2ZXIgewo+Pj4+ICAgICAgICAgICAqLwo+Pj4+ICAg ICAgICAgIGludCAoKm9wZW4pIChzdHJ1Y3QgZHJtX2RldmljZSAqLCBzdHJ1Y3QgZHJtX2ZpbGUg Kik7Cj4+Pj4gICAgKyAgICAgLyoqCj4+Pj4gKyAgICAgICAgKiBAcHJlY2xvc2U6Cj4+Pj4gKyAg ICAgICAgKgo+Pj4+ICsgICAgICAgICogT25lIG9mIHRoZSBkcml2ZXIgY2FsbGJhY2tzIHdoZW4g YSBuZXcgJnN0cnVjdCBkcm1fZmlsZSBpcwo+Pj4+IGNsb3NlZC4KPj4+PiArICAgICAgICAqIFVz ZWZ1bCBmb3IgdGVhcmluZyBkb3duIGRyaXZlci1wcml2YXRlIGRhdGEgc3RydWN0dXJlcwo+Pj4+ IGFsbG9jYXRlZCBpbgo+Pj4+ICsgICAgICAgICogQG9wZW4gbGlrZSBidWZmZXIgYWxsb2NhdG9y cywgZXhlY3V0aW9uIGNvbnRleHRzIG9yIHNpbWlsYXIKPj4+PiB0aGluZ3MuCj4+Pj4gKyAgICAg ICAgKgo+Pj4+ICsgICAgICAgICogU2luY2UgdGhlIGRpc3BsYXkvbW9kZXNldCBzaWRlIG9mIERS TSBjYW4gb25seSBiZSBvd25lZCBieQo+Pj4+IGV4YWN0bHkKPj4+PiArICAgICAgICAqIG9uZSAm c3RydWN0IGRybV9maWxlIChzZWUgJmRybV9maWxlLmlzX21hc3RlciBhbmQKPj4+PiAmZHJtX2Rl dmljZS5tYXN0ZXIpCj4+Pj4gKyAgICAgICAgKiB0aGVyZSBzaG91bGQgbmV2ZXIgYmUgYSBuZWVk IHRvIHRlYXIgZG93biBhbnkgbW9kZXNldCByZWxhdGVkCj4+Pj4gKyAgICAgICAgKiByZXNvdXJj ZXMgaW4gdGhpcyBjYWxsYmFjay4gRG9pbmcgc28gd291bGQgYmUgYSBkcml2ZXIgZGVzaWduCj4+ Pj4gYnVnLgo+Pj4+ICsgICAgICAgICoKPj4+PiArICAgICAgICAqIEZJWE1FOiBJdCBpcyBub3Qg cmVhbGx5IGNsZWFyIHdoeSB0aGVyZSdzIGJvdGggQHByZWNsb3NlIGFuZAo+Pj4+ICsgICAgICAg ICogQHBvc3RjbG9zZS4gV2l0aG91dCBhIHJlYWxseSBnb29kIHJlYXNvbiwgdXNlIEBwb3N0Y2xv c2UKPj4+PiBvbmx5Lgo+Pj4+ICsgICAgICAgICovCj4+Pj4gKyAgICAgICB2b2lkICgqcHJlY2xv c2UpIChzdHJ1Y3QgZHJtX2RldmljZSAqLCBzdHJ1Y3QgZHJtX2ZpbGUKPj4+PiAqZmlsZV9wcml2 KTsKPj4+PiArCj4+Pj4gICAgICAgICAgLyoqCj4+Pj4gICAgICAgICAgICogQHBvc3RjbG9zZToK Pj4+PiAgICAgICAgICAgKgo+Pj4+IEBAIC0xMTgsNiArMTM1LDkgQEAgc3RydWN0IGRybV9kcml2 ZXIgewo+Pj4+ICAgICAgICAgICAqIG9uZSAmc3RydWN0IGRybV9maWxlIChzZWUgJmRybV9maWxl LmlzX21hc3RlciBhbmQKPj4+PiAmZHJtX2RldmljZS5tYXN0ZXIpCj4+Pj4gICAgICAgICAgICog dGhlcmUgc2hvdWxkIG5ldmVyIGJlIGEgbmVlZCB0byB0ZWFyIGRvd24gYW55IG1vZGVzZXQKPj4+ PiByZWxhdGVkCj4+Pj4gICAgICAgICAgICogcmVzb3VyY2VzIGluIHRoaXMgY2FsbGJhY2suIERv aW5nIHNvIHdvdWxkIGJlIGEgZHJpdmVyCj4+Pj4gZGVzaWduCj4+Pj4gYnVnLgo+Pj4+ICsgICAg ICAgICoKPj4+PiArICAgICAgICAqIEZJWE1FOiBJdCBpcyBub3QgcmVhbGx5IGNsZWFyIHdoeSB0 aGVyZSdzIGJvdGggQHByZWNsb3NlIGFuZAo+Pj4+ICsgICAgICAgICogQHBvc3RjbG9zZS4gV2l0 aG91dCBhIHJlYWxseSBnb29kIHJlYXNvbiwgdXNlIEBwb3N0Y2xvc2UKPj4+PiBvbmx5Lgo+Pj4+ ICAgICAgICAgICAqLwo+Pj4+ICAgICAgICAgIHZvaWQgKCpwb3N0Y2xvc2UpIChzdHJ1Y3QgZHJt X2RldmljZSAqLCBzdHJ1Y3QgZHJtX2ZpbGUgKik7Cj4+Pj4gICAgQEAgLTEzNCw3ICsxNTQsNyBA QCBzdHJ1Y3QgZHJtX2RyaXZlciB7Cj4+Pj4gICAgICAgICAgICogc3RhdGUgY2hhbmdlcywgZS5n LiBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZQo+Pj4+IDpyZWY6YHZnYV9zd2l0Y2hlcm9vYAo+Pj4+ ICAgICAgICAgICAqIGluZnJhc3RydWN0dXJlLgo+Pj4+ICAgICAgICAgICAqCj4+Pj4gLSAgICAg ICAgKiBUaGlzIGlzIGNhbGxlZCBhZnRlciBAcG9zdGNsb3NlIGhvb2sgaGFzIGJlZW4gY2FsbGVk Lgo+Pj4+ICsgICAgICAgICogVGhpcyBpcyBjYWxsZWQgYWZ0ZXIgQHByZWNsb3NlIGFuZCBAcG9z dGNsb3NlIGhhdmUgYmVlbgo+Pj4+IGNhbGxlZC4KPj4+PiAgICAgICAgICAgKgo+Pj4+ICAgICAg ICAgICAqIE5PVEU6Cj4+Pj4gICAgICAgICAgICoKPj4+PiBAQCAtNjAxLDcgKzYyMSw2IEBAIHN0 cnVjdCBkcm1fZHJpdmVyIHsKPj4+PiAgICAgICAgICAvKiBMaXN0IG9mIGRldmljZXMgaGFuZ2lu ZyBvZmYgdGhpcyBkcml2ZXIgd2l0aCBzdGVhbHRoIGF0dGFjaC4KPj4+PiAqLwo+Pj4+ICAgICAg ICAgIHN0cnVjdCBsaXN0X2hlYWQgbGVnYWN5X2Rldl9saXN0Owo+Pj4+ICAgICAgICAgIGludCAo KmZpcnN0b3BlbikgKHN0cnVjdCBkcm1fZGV2aWNlICopOwo+Pj4+IC0gICAgICAgdm9pZCAoKnBy ZWNsb3NlKSAoc3RydWN0IGRybV9kZXZpY2UgKiwgc3RydWN0IGRybV9maWxlCj4+Pj4gKmZpbGVf cHJpdik7Cj4+Pj4gICAgICAgICAgaW50ICgqZG1hX2lvY3RsKSAoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwgc3RydWN0Cj4+Pj4gZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4+Pj4g ICAgICAgICAgaW50ICgqZG1hX3F1aWVzY2VudCkgKHN0cnVjdCBkcm1fZGV2aWNlICopOwo+Pj4+ ICAgICAgICAgIGludCAoKmNvbnRleHRfZHRvcikgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGlu dCBjb250ZXh0KTsKPj4+Cj4+Pgo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=