From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/ttm: fix adding foreign BOs to the LRU during init Date: Mon, 11 Jan 2016 20:37:03 +0100 Message-ID: <20160111193703.GA4588@phenom.ffwll.local> References: <1452260518-2716-1-git-send-email-deathsimple@vodafone.de> <5690B147.5070409@shipmail.org> <5690E51A.50902@vodafone.de> <56927482.8060504@shipmail.org> <5693A292.9020701@vodafone.de> <5693A782.2070201@shipmail.org> <5693BE5F.7000202@vodafone.de> <20160111145518.GW8076@phenom.ffwll.local> <5693D02B.7020607@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f46.google.com (mail-wm0-f46.google.com [74.125.82.46]) by gabe.freedesktop.org (Postfix) with ESMTPS id BE03F6E573 for ; Mon, 11 Jan 2016 11:37:08 -0800 (PST) Received: by mail-wm0-f46.google.com with SMTP id f206so285849847wmf.0 for ; Mon, 11 Jan 2016 11:37:08 -0800 (PST) Content-Disposition: inline In-Reply-To: <5693D02B.7020607@vodafone.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Christian =?iso-8859-1?Q?K=F6nig?= Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBKYW4gMTEsIDIwMTYgYXQgMDQ6NTQ6MTlQTSArMDEwMCwgQ2hyaXN0aWFuIEvDtm5p ZyB3cm90ZToKPiA+T3V0IG9mIGN1cmlvc2l0eSwgd2hlcmUgZG8geW91IGdlbmVyYXRlIHNvIG1h bnkgZm9yZWlnbiBkbWEtYnVmIGJhY2tlcwo+ID5vYmplY3RzPwo+IFRoYXQgd2FzIGp1c3QgYW4g ZXhwZXJpbWVudCBvZiBzaGFyaW5nIGJ1ZmZlcnMgYmV0d2VlbiB0d28gQU1EIGRldmljZXMuIEEK PiBzdHVwaWQgcmVmZXJlbmNlIGNvdW50IGJ1ZyBhbmQgSSd2ZSBsZWFrZWQgNjAgZnVsbCBIRCBm cmFtZSBhIHNlY29uZC4KPiAKPiBUb29rIGEgYml0IG92ZXIgdHdvIG1pbnV0ZXMgdG8gZWF0IHVw IDFHQiBvZiBHVFQgc3BhY2UgYW5kIHRoZSBib3ggZHlpbmcKPiByYXRoZXIgc3BlY3RhY3VsYXJs eS4KCkFoIG9rLCB0aGF0IGV4cGxhaW5zIGl0IDstKQotRGFuaWVsCgo+IAo+IFJlZ2FyZHMsCj4g Q2hyaXN0aWFuLgo+IAo+IEFtIDExLjAxLjIwMTYgdW0gMTU6NTUgc2NocmllYiBEYW5pZWwgVmV0 dGVyOgo+ID5PbiBNb24sIEphbiAxMSwgMjAxNiBhdCAwMzozODoyM1BNICswMTAwLCBDaHJpc3Rp YW4gS8O2bmlnIHdyb3RlOgo+ID4+PldoaWxlIHRoaXMgd291bGQgYmUgb25lIHdheSB0byB3b3Jr IGFyb3VuZCB0aGUgR1RUIHNwYWNlIERPUywgaXQKPiA+Pj53b3VsZG4ndCB3b3JrIGFyb3VuZCB0 aGUgRE9TIHByb2JsZW0gb2YgdGhlIGV4cG9ydGVyIHBpbm5pbmcgc3lzdGVtCj4gPj4+cGFnZXMg dGhhdCBwcm9iYWJseSBuZXZlciBnZXQgYWNjb3VudGVkLiBUaGF0J3MgYSBsaW1pdGF0aW9uIG9m IHRoZQo+ID4+PmV4cG9ydC1pbXBvcnQgbWVjaGFuaXNtIChkbWEtYnVmKS4KPiA+PlllYWgsIGNv bXBsZXRlbHkgYWdyZWUuIFRoYXQncyBhIHByb2JsZW0gd2Ugc29vbmVyIG9yIGxhdGVyIG5lZWQg dG8gYWRkcmVzcwo+ID4+YXMgd2VsbC4KPiA+Pgo+ID4+QnV0IGN1cnJlbnRseSBJIHdvcnJ5IG1v c3RseSBhYm91dCB0aGF0IHNwZWNpZmljIHByb2JsZW0gYXQgaGFuZCBhbmQgaG93IHRvCj4gPj5m aXggaXQsIHRoZSBsYXJnZXIgZGVzaWduIHByb2JsZW1zIG5lZWQgdG8gd2FpdC4KPiA+Pgo+ID4+ SnVzdCBzZW5kIGZpdmUgcGF0Y2hlcyBvdXQgdG8gdGhlIGxpc3QgYW5kIENDaW5nIHlvdSBhcyB3 ZWxsLiBZb3UgY2FuIGlnbm9yZQo+ID4+dGhlIGxhc3QgdHdvIHdoaWNoIGFyZSBhbWRncHUgc3Bl Y2lmaWMsIGJ1dCB3b3VsZCBiZSBuaWNlIGlmIHlvdSBjb3VsZCB0YWtlCj4gPj5hIGxvb2sgYXQg dGhlIGZpcnN0IHRocmVlLgo+ID5PdXQgb2YgY3VyaW9zaXR5LCB3aGVyZSBkbyB5b3UgZ2VuZXJh dGUgc28gbWFueSBmb3JlaWduIGRtYS1idWYgYmFja2VzCj4gPm9iamVjdHM/IFdpdGggcHJpbWUg SSBleHBlY3QgYXQgbW9zdCBhIGZldyBmcmFtZWJ1ZmZlcnMgb24gZWFjaCBzaWRlIHRvIGJlCj4g PnNoYXJlZCwgYW5kIHRoYXQgc2hvdWxkbid0IHJlYWxseSBjYXVzZSBtdWNoIHRyb3VibGUuIEp1 c3Qgc2hhcmluZwo+ID5kbWEtYnVmcyB3aXRoIHlvdXIgb3duIGRldmljZSBzaG91bGQgcmVzdWx0 IGluIHRoZSB1bmRlcmx5aW5nIG5hdGl2ZQo+ID5vYmplY3RzIGJlaW5nIHJlZmVyZW5jZWQsIHNv IHdvcmsgbGlrZSBmbGluay4KPiA+Cj4gPldydCBmaXhpbmcgdGhpcyBmb3IgcmVhbDogSSB0aGlu ayBzdGVwIDEgd291bGQgYmUgc3RvcCBwaW5uaW5nIGRtYS1idWZzIG9uCj4gPmltcG9ydCBhbmQg aW5zdGVhZCBpbXBsZW1lbnRpbmcgYWxsIHRoZSBtYXAvdW5tYXAgdmZ1bmMgaG9va3MgdHRtIGFs cmVhZHkKPiA+aW1wbGVtZW50cyAoaXQncyBmdWxseSBpbnRlbnRpb25hbCB0aGF0IHRoZXkgbWF0 Y2ggcmVhbGx5IGNsb3NlbHkKPiA+YmV0d2VlbikgYnkgdmlydHVhbGl6aW5nIGVzc2VudGlhbGx5 IHR0bV9ib19hcGkuaC4KPiA+Cj4gPkFmdGVyIHRoYXQgd2UgbmVlZCB0byBhbGxvdyBleHBvcnRl cnMgdG8gZXZpY3QgbWFwcGluZ3MgaW1wb3J0ZXJzIGhhdmUKPiA+Y3JlYXRlZCAodXNpbmcgdGhl IHd3X211dGV4IGxvY2tpbmcgYW5kIGFsbCB0aGF0IGxpa2UgdHRtIGRvZXMgZm9yIHB1cmVseQo+ ID5uYXRpdmUgZXZpY3Rpb24pLiBUaGF0IGxpa2VseSBuZWVkcyBhIGNhbGxiYWNrIHRvIGRtYV9i dWZfYXR0YWNobWVudC4gV2l0aAo+ID50aGF0IHdlIHNob3VsZCBiZSA5MCUgdGhlcmUsIHNpbmNl IG1vc3QgbGlrZWx5IHdoZW4gdGhlIGltcG9ydGVyIHRyaWVzIHRvCj4gPmJpbmQgbW9yZSBzdHVm ZiBleHBvcnRlZCBmcm9tIHNvbWV3aGVyZSB3ZSdsbCBydW4gaW50byBsaW1pdHMgb2YgdGhlCj4g PmV4cG9ydGVyLiBJdCdzIG5vdCBwZXJmZWN0IHNpbmNlIGl0J3Mgbm90ICh5ZXQpIGEgdHJ1bHkg Z2xvYmFsIGV2aWN0LCBidXQKPiA+c2hvdWxkIGdldCB1cyBhIGxhcmdlIHN0ZXAgdG93YXJkcyB0 aGF0IGdvYWwuCj4gPgo+ID5JZiB3ZSByZWFsbHkgbmVlZCBnbG9iYWwgZXZpY3Rpb24gYWNyb3Nz IGFsbCBkcml2ZXJzIGluIGEgc3lzdGVtIChmb3IgZS5nLgo+ID5zeXN0ZW0gbWVtb3J5LCBub3Ro aW5nIGVsc2Ugc2hvdWxkIGJlIHNoYXJlZCBsaWtlIHRoYXQgcmVhbGx5IEkgdGhpbmspCj4gPnRo ZW4gSSBndWVzcyB3ZSBjb3VsZCBsb29rIGludG8gZWl0aGVyIGV4dGVuZGluZyB0dG1fZ2xvYmFs IChvciBhZGRpbmcKPiA+c29tZXRoaW5nIHNpbWlsYXIgYXQgdGhlIGRtYS1idWYgbGV2ZWwpLgo+ ID4KPiA+Q2hlZXJzLCBEYW5pZWwKPiA+Cj4gPj5UaGFua3MgaW4gYWR2YW5jZSwKPiA+PkNocmlz dGlhbi4KPiA+Pgo+ID4+QW0gMTEuMDEuMjAxNiB1bSAxNDowMCBzY2hyaWViIFRob21hcyBIZWxs c3Ryb206Cj4gPj4+T24gMDEvMTEvMjAxNiAwMTozOSBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90 ZToKPiA+Pj4+QW0gMTAuMDEuMjAxNiB1bSAxNjoxMCBzY2hyaWViIFRob21hcyBIZWxsc3Ryb206 Cj4gPj4+Pj5PbiAwMS8wOS8yMDE2IDExOjQ2IEFNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+ ID4+Pj4+Pkl0J3MgY29ycmVjdCB0aGF0IGV4cG9ydGVkIGJ1ZmZlcnMgY2FuJ3QgYmUgbW92ZWQg dG8gYW5vdGhlciBkb21haW4gb3IKPiA+Pj4+Pj5zd2FwcGVkIHRvIGRpc2sgd2hpbGUgYW5vdGhl ciBkZXZpY2UgaXMgdXNpbmcgaXQuCj4gPj4+Pj4+Cj4gPj4+Pj4+QnV0IGZvciBpbXBvcnRzIHRo YXQncyBhIGRpZmZlcmVudCBzdG9yeToKPiA+Pj4+Pj4+YW4gaW1wb3J0ZWQgb2JqZWN0IHNob3Vs ZCBuZXZlciBlbmQgdXAgb24gYSBMUlUgbGlzdCBpbiBUVE0gYmVjYXVzZQo+ID4+Pj4+Pj5UVE0g d291bGRuJ3Qga25vdyBob3cgdG8gZXZpY3QgaXQuCj4gPj4+Pj4+RXZlbiBjdXJyZW50bHkgdGhl IGltcG9ydGVkIG9iamVjdHMgYXJlIGFjdHVhbGx5IGFkZGVkIHRvIHRoZSBMUlUuIFRoZQo+ID4+ Pj4+PnByb2JsZW0gaXMganVzdCB0aGF0IHRoZXkgYXJlIG5vdCBhZGRlZCBpbW1lZGlhdGVseSBk dXJpbmcgY3JlYXRpb24sCj4gPj4+Pj4+YnV0IG9ubHkgd2l0aCB0aGUgZmlyc3QgY29tbWFuZCBz dWJtaXNzaW9uLgo+ID4+Pj4+SG1tLiBUaGUgZmFjdCB0aGF0IHRoZXkgYXJlIGFkZGVkIHRvIExS VSBhdCBhbGwgc291bmRzIHdlaXJkLiBXaGF0Cj4gPj4+Pj5oYXBwZW5zIHdoZW4gVFRNIHRyaWVz IHRvIGV2aWN0IG9yIGV2ZW4gc3dhcCBvdXQgYW4gaW1wb3J0ZWQgYnVmZmVyPwo+ID4+Pj5BZGRp bmcgdGhlbSB0byB0aGUgZG9tYWluIExSVSBpcyBwZXJmZWN0bHkgbm9ybWFsIGZvciB0aGUgaW1w b3J0ZWQKPiA+Pj4+YnVmZmVycyBhbmQgYWxzbyB3b3JrcyBmaW5lIGFzIGZhciBhcyBJIGtub3cu Cj4gPj4+Pgo+ID4+Pj5XaGVuIFRUTSBldmljdHMgdGhlbSBpdCBqdXN0IGdldHMgdW5tYXBwZWQg ZnJvbSBHVFQgdG8gbWFrZSByb29tIGluCj4gPj4+PnRoZSBhZGRyZXNzIHNwYWNlLCB3aGljaCBh dCBsZWFzdCBmb3IgUmFkZW9uIGFuZCBBbWRncHUgaXMgZXhhY3RseQo+ID4+Pj53aGF0IHdlIHdh bnQuCj4gPj4+Pgo+ID4+Pj5UaGF0IGltcG9ydGVkIGJ1ZmZlcnMgZ2V0IGFkZGVkIHRvIHRoZSBz d2FwIExSVSBpcyBpbmRlZWQgbm9uc2Vuc2UsCj4gPj4+PmJ1dCBub3QgaGFybWZ1bCBhcyBmYXIg YXMgSSBjYW4gc2VlLiBHb2luZyB0byBmaXggdGhhdCBpbiBhIGZvbGxvdyB1cAo+ID4+Pj5wYXRj aC4KPiA+Pj4+Cj4gPj4+U28gdGhlIHdheSBUVE0gd2FzIGRlc2lnbmVkIHdoZW4gaXQgd2FzIHdy aXR0ZW4gd2FzIHRvIGJlIHVzZWQgdG8gcGxhY2UKPiA+Pj5kYXRhIGluIG1lbW9yeSB0eXBlcyB3 aGVyZSBpdCBjb3VsZCBsYXRlciBiZSBtYXBwZWQgYnkgQ1BVIGFuZCBHUFUgaW4gYQo+ID4+PmNv aGVyZW50IGZhc2hpb24uCj4gPj4+Cj4gPj4+VGhlIGFjdHVhbCBHUFUgbWFwcGluZyB3YXMgcHJp bWFyaWx5IHRob3VnaHQgdG8gYmUgZG9uZSBieSB0aGUgZHJpdmVyIGFzCj4gPj4+cGFydCBvZiB0 aGUgdmFsaWRhdGlvbiBwcm9jZXNzICphZnRlciogdGhhdCBwbGFjZW1lbnQgaWYgbmVlZGVkLgo+ ID4+Pgo+ID4+Pk5vdyBtYW55IChtb3N0LCBhbGwpIGRyaXZlcnMgZG9uJ3QgbmVlZCB0aGF0IHNl Y29uZCBzdGVwIHNpbmNlIHRoZQo+ID4+Pm1lbW9yeSB0eXBlIGlzIGRpcmVjdGx5IG1hcHBhYmxl IGJ5IHRoZSBHUFUsIGJ1dCBpbiBhIHNpdHVhdGlvbiB3aGVyZQo+ID4+PnRoZSBjb3JlIFRUTSBm dW5jdGlvbmFsaXR5IChwbGFjZW1lbnQgYW5kIHN3YXBwaW5nKSBpcyBjb21wbGV0ZWx5Cj4gPj4+ cmVwbGFjZWQgYnkgYW5vdGhlciBtZWNoYW5pc20gKHN1Y2ggYXMgaW1wb3J0ZWQgYnVmZmVycyks IG5vdAo+ID4+PmltcGxlbWVudGluZyB0aGUgR1BVIGJpbmRpbmcgYW5kIGV2aWN0aW9uIGluIHRo ZSBkcml2ZXIgYXMgYSBzZXBhcmF0ZQo+ID4+PnN0ZXAgbmF0dXJhbGx5IGdlbmVyYXRlcyBhIGNv bmZsaWN0Lgo+ID4+Pgo+ID4+Pk5vdyBJJ20gbm90IGF0IGFsbCBhZ2FpbnN0IFRUTSBiZWluZyB1 c2VkIGZvciBHUFUgbWFwcGluZyBvbmx5IGlmIHRoYXQKPiA+Pj5zaW1wbGlmaWVzIHRoaW5ncyBm b3IgaW1wb3J0ZWQgYnVmZmVycyBidXQgaW4gdGhhdCBjYXNlIElNTyBvbmUgc2hvdWxkCj4gPj4+ YmUgYXdhcmUgb2YgdGhlIGxpbWl0YXRpb25zIGFuZCB3ZSBzaG91bGQgZmluZCBhIHdheSB0byBt YXJrIHRob3NlCj4gPj4+YnVmZmVycyBHUFVfTUFQX09OTFkgdG8gYXZvaWQgaGF2aW5nIFRUTSBj b21wZXRpbmcgd2l0aCB0aGUgZXhwb3J0ZXIKPiA+Pj5hYm91dCB0aGUgcGxhY2VtZW50IGFkIGF2 b2lkIHB1dHRpbmcgaXQgb24gdGhlIHN3YXAgTFJVLgo+ID4+Pgo+ID4+PldoaWxlIHRoaXMgd291 bGQgYmUgb25lIHdheSB0byB3b3JrIGFyb3VuZCB0aGUgR1RUIHNwYWNlIERPUywgaXQKPiA+Pj53 b3VsZG4ndCB3b3JrIGFyb3VuZCB0aGUgRE9TIHByb2JsZW0gb2YgdGhlIGV4cG9ydGVyIHBpbm5p bmcgc3lzdGVtCj4gPj4+cGFnZXMgdGhhdCBwcm9iYWJseSBuZXZlciBnZXQgYWNjb3VudGVkLiBU aGF0J3MgYSBsaW1pdGF0aW9uIG9mIHRoZQo+ID4+PmV4cG9ydC1pbXBvcnQgbWVjaGFuaXNtIChk bWEtYnVmKS4KPiA+Pj4KPiA+Pj4vVGhvbWFzCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+PlRoYW5r cyBmb3IgdGhlIGNvbW1lbnQsCj4gPj4+PkNocmlzdGlhbi4KPiA+Pj4+Cj4gPj4+Pj4vVGhvbWFz Cj4gPj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+PlJlZ2FyZHMsCj4gPj4+Pj4+Q2hyaXN0aWFuLgo+ID4+ Pj4+Pgo+ID4+Pj4+PkFtIDA5LjAxLjIwMTYgdW0gMDg6MDUgc2NocmllYiBUaG9tYXMgSGVsbHN0 cm9tOgo+ID4+Pj4+Pj5IaSEKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PkkgbWlnaHQgYmUgbWlzdW5kZXJk ZXJzdGFuZGluZyB0aGUgdXNlLWNhc2UgaGVyZSwgYnV0IElJUkMgdGhlCj4gPj4+Pj4+PmRpc2N1 c3Npb24gd2l0aCBUVE0gdnMgaW1wb3J0ZWQgLyBleHBvcnRlZCBidWZmZXIgb2JqZWN0cyBpcyB0 aGF0IGEKPiA+Pj4+Pj4+YnVmZmVyIG9iamVjdCBuZWVkcyB0byBiZSBtYXJrZWQgTk9fRVZJQ1Qg aW4gVFRNIGJlZm9yZSBpdCdzIGV4cG9ydGVkCj4gPj4+Pj4+PmFuZCBhbiBpbXBvcnRlZCBvYmpl Y3Qgc2hvdWxkIG5ldmVyIGVuZCB1cCBvbiBhIExSVSBsaXN0IGluIFRUTQo+ID4+Pj4+Pj5iZWNh dXNlCj4gPj4+Pj4+PlRUTSB3b3VsZG4ndCBrbm93IGhvdyB0byBldmljdCBpdC4KPiA+Pj4+Pj4+ Cj4gPj4+Pj4+Pi9UaG9tYXMKPiA+Pj4+Pj4+ICAgT24gMDEvMDgvMjAxNiAwMjo0MSBQTSwgQ2hy aXN0aWFuIEvDtm5pZyB3cm90ZToKPiA+Pj4+Pj4+PkZyb206IENocmlzdGlhbiBLw7ZuaWcgPGNo cmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+SWYgd2UgaW1wb3J0 IGEgQk8gd2l0aCBhbiBldGVybmFsIHJlc2VydmF0aW9uIG9iamVjdCB3ZSBkb24ndAo+ID4+Pj4+ Pj4+cmVzZXJ2ZS91bnJlc2VydmUgaXQuIFNvIHdlIG5ldmVyIGFkZCBpdCB0byB0aGUgTFJVIGNh dXNpbmcgYQo+ID4+Pj4+Pj4+cG9zc2libGUKPiA+Pj4+Pj4+PmRlbnkgb2Ygc2VydmljZS4KPiA+ Pj4+Pj4+Pgo+ID4+Pj4+Pj4+U2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0 aWFuLmtvZW5pZ0BhbWQuY29tPgo+ID4+Pj4+Pj4+LS0tCj4gPj4+Pj4+Pj4gICAgZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fYm8uYyB8IDggKysrKysrKy0KPiA+Pj4+Pj4+PiAgICAxIGZpbGUgY2hh bmdlZCwgNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+ PmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4gPj4+Pj4+Pj5iL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPiA+Pj4+Pj4+PmluZGV4IDc0NWU5OTYuLmE5OGE1 ZDUgMTAwNjQ0Cj4gPj4+Pj4+Pj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4g Pj4+Pj4+Pj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4gPj4+Pj4+Pj5AQCAt MTE3MCw5ICsxMTcwLDE1IEBAIGludCB0dG1fYm9faW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAq YmRldiwKPiA+Pj4+Pj4+PiAgICAgICAgaWYgKGxpa2VseSghcmV0KSkKPiA+Pj4+Pj4+PiAgICAg ICAgICAgIHJldCA9IHR0bV9ib192YWxpZGF0ZShibywgcGxhY2VtZW50LCBpbnRlcnJ1cHRpYmxl LAo+ID4+Pj4+Pj4+ZmFsc2UpOwo+ID4+Pj4+Pj4+ICAgIC0gICAgaWYgKCFyZXN2KQo+ID4+Pj4+ Pj4+KyAgICBpZiAoIXJlc3YpIHsKPiA+Pj4+Pj4+PiAgICAgICAgICAgIHR0bV9ib191bnJlc2Vy dmUoYm8pOwo+ID4+Pj4+Pj4+ICAgICsgICAgfSBlbHNlIGlmICghKGJvLT5tZW0ucGxhY2VtZW50 ICYgVFRNX1BMX0ZMQUdfTk9fRVZJQ1QpKSB7Cj4gPj4+Pj4+Pj4rICAgICAgICBzcGluX2xvY2so JmJvLT5nbG9iLT5scnVfbG9jayk7Cj4gPj4+Pj4+Pj4rICAgICAgICB0dG1fYm9fYWRkX3RvX2xy dShibyk7Cj4gPj4+Pj4+Pj4rICAgICAgICBzcGluX3VubG9jaygmYm8tPmdsb2ItPmxydV9sb2Nr KTsKPiA+Pj4+Pj4+PisgICAgfQo+ID4+Pj4+Pj4+Kwo+ID4+Pj4+Pj4+ICAgICAgICBpZiAodW5s aWtlbHkocmV0KSkKPiA+Pj4+Pj4+PiAgICAgICAgICAgIHR0bV9ib191bnJlZigmYm8pOwo+ID4+ Pgo+ID4+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ PmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+PmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiA+Pmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwKPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jw b3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=