From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH 10/21 v2] drm/i915: Helper function to detach a scaler from a plane or crtc Date: Fri, 27 Mar 2015 17:21:56 -0700 Message-ID: <20150328002156.GF23435@intel.com> References: <1426896282-23215-1-git-send-email-chandra.konduru@intel.com> <1426896282-23215-11-git-send-email-chandra.konduru@intel.com> <20150325051539.GJ28667@intel.com> <76A9B330A4D78C4D99CB292C4CC06C0E36F8364A@fmsmsx101.amr.corp.intel.com> <20150325211358.GB7501@intel.com> <76A9B330A4D78C4D99CB292C4CC06C0E36F837FC@fmsmsx101.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 3171E6E1F3 for ; Fri, 27 Mar 2015 17:21:58 -0700 (PDT) Content-Disposition: inline In-Reply-To: <76A9B330A4D78C4D99CB292C4CC06C0E36F837FC@fmsmsx101.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Konduru, Chandra" Cc: "Vetter, Daniel" , "intel-gfx@lists.freedesktop.org" , "Conselvan De Oliveira, Ander" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBNYXIgMjUsIDIwMTUgYXQgMDI6Mjg6MTZQTSAtMDcwMCwgS29uZHVydSwgQ2hhbmRy YSB3cm90ZToKPiAKPiAKPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiBGcm9tOiBS b3BlciwgTWF0dGhldyBECj4gPiBTZW50OiBXZWRuZXNkYXksIE1hcmNoIDI1LCAyMDE1IDI6MTQg UE0KPiA+IFRvOiBLb25kdXJ1LCBDaGFuZHJhCj4gPiBDYzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZzsgVmV0dGVyLCBEYW5pZWw7IENvbnNlbHZhbiBEZSBPbGl2ZWlyYSwgQW5kZXIK PiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMTAvMjEgdjJdIGRybS9pOTE1OiBIZWxwZXIgZnVuY3Rp b24gdG8gZGV0YWNoIGEgc2NhbGVyIGZyb20KPiA+IGEgcGxhbmUgb3IgY3J0Ywo+ID4gCj4gPiBP biBXZWQsIE1hciAyNSwgMjAxNSBhdCAwMToxNDo0MFBNIC0wNzAwLCBLb25kdXJ1LCBDaGFuZHJh IHdyb3RlOgo+ID4gPgo+ID4gPgo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4g PiA+ID4gRnJvbTogUm9wZXIsIE1hdHRoZXcgRAo+ID4gPiA+IFNlbnQ6IFR1ZXNkYXksIE1hcmNo IDI0LCAyMDE1IDEwOjE2IFBNCj4gPiA+ID4gVG86IEtvbmR1cnUsIENoYW5kcmEKPiA+ID4gPiBD YzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgVmV0dGVyLCBEYW5pZWw7IENvbnNl bHZhbiBEZQo+ID4gPiA+IE9saXZlaXJhLCBBbmRlcgo+ID4gPiA+IFN1YmplY3Q6IFJlOiBbUEFU Q0ggMTAvMjEgdjJdIGRybS9pOTE1OiBIZWxwZXIgZnVuY3Rpb24gdG8gZGV0YWNoIGEKPiA+ID4g PiBzY2FsZXIgZnJvbSBhIHBsYW5lIG9yIGNydGMKPiA+ID4gPgo+ID4gPiA+IE9uIEZyaSwgTWFy IDIwLCAyMDE1IGF0IDA1OjA0OjMxUE0gLTA3MDAsIENoYW5kcmEgS29uZHVydSB3cm90ZToKPiA+ ID4gPiA+IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gY29tbWl0IHBhdGggb2YgYSBwbGFu ZSBvciBjcnRjLgo+ID4gPiA+ID4gSXQgcHJvZ3JhbXMgc2NhbGVyIHJlZ2lzdGVycyB0byBkZXRh Y2ggKGFrYS4gdW5iaW5kcykgc2NhbGVyIGZyb20KPiA+ID4gPiA+IHJlcXVlc3RlZCBwbGFuZSBv ciBjcnRjIGlmIGl0IGlzbid0IGluIHVzZS4gSXQgYWxzbyByZXNldHMKPiA+ID4gPiA+IHNjYWxl cl9pZCBpbiBjcnRjL3BsYW5lIHN0YXRlLgo+ID4gPiA+ID4KPiA+ID4gPiA+IHYyOgo+ID4gPiA+ ID4gLWltcHJvdmVkIGEgbG9nIG1lc3NhZ2UgKG1lKQo+ID4gPiA+ID4KPiA+ID4gPiA+IFNpZ25l ZC1vZmYtYnk6IENoYW5kcmEgS29uZHVydSA8Y2hhbmRyYS5rb25kdXJ1QGludGVsLmNvbT4KPiA+ ID4gPiA+IC0tLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyB8ICAgMzkKPiA+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAgMSArCj4gPiA+ ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspCj4gPiA+ID4gPgo+ID4gPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4g PiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiA+IGlu ZGV4IDk3NmJmYjEuLjcxNTBjMzMgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ID4gQEAgLTI4MzYsNiArMjgzNiw0NSBAQCB1MzIg aW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChzdHJ1Y3QKPiA+ID4gPiA+IGRybV9kZXZpY2UKPiA+ ID4gPiAqZGV2LCB1aW50NjRfdCBmYl9tb2RpZmllciwKPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4g IH0KPiA+ID4gPiA+Cj4gPiA+ID4gPiArLyoKPiA+ID4gPiA+ICsgKiBUaGlzIGZ1bmN0aW9uIGRl dGFjaGVzIChha2EuIHVuYmluZHMpIGEgc2NhbGVyIGZyb20gcGxhbmUgb3IKPiA+ID4gPiA+ICtj cnRjCj4gPiA+ID4KPiA+ID4gPiBZb3UgbWlnaHQgd2FudCB0byBjbGFyaWZ5IHRoYXQgZGV0YWNo L3VuYmluZCByZWZlcnMgdG8gdGhlIGFjdHVhbAo+ID4gPiA+IGhhcmR3YXJlIHByb2dyYW1taW5n LCBub3QgdGhlIHN0YXRlIGNhbGN1bGF0aW9uLiAgSSdtIGEgYml0Cj4gPiA+ID4gc3VycHJpc2Vk IHdlIG5lZWQgdGhpcyBmdW5jdGlvbjsgSSBmaWd1cmVkIHdlJ2QganVzdCBiZSBsb29waW5nIG92 ZXIKPiA+ID4gPiBhbGwgc2NhbGVycyBhdCB0aGUgZW5kIG9mIHRoZSBjb21taXQgc3RlcCBhbmQg cHJvZ3JhbW1pbmcgdGhlbSB0bwo+ID4gPiA+IGVpdGhlciBvbiBvciBvZmYgZGVwZW5kaW5nIG9u IHdoYXQgdGhlIHNjYWxpbmcgc3RhdGUgY29udGFpbmVkLgo+ID4gPgo+ID4gPiBUaGlzIGlzIGJp dCB0cmlja3kgYW5kIGlzbid0IHRoYXQgc3RyYWlnaHQgZm9yd2FyZC4KPiA+ID4gU3RhZ2VkIHNj YWxlciBzdGF0ZSBjYW4gdHJpZ2dlciBmcmVlaW5nIGEgc2NhbGVyIHRoYXQgY2FuIGxlYWQgdG8g dHdvIHNjZW5hcmlvczoKPiA+ID4gMSkgZnJlZWQgc2NhbGVyIGlzIG5vdCBhdHRhY2hlZCB0byBh bnkgb3RoZXIgdXNlci4gSW4gdGhpcyBjYXNlLCByZWcKPiA+ID4gcHJvZ3JhbW1pbmcgbmVlZGVk IHRvIHVwZGF0ZSBody4gQW5kIHJlc2V0IHNjYWxlcl9pZCB0byAtMSB0byBpbmRpY2F0ZSBzY2Fs ZXIKPiA+IGlzbid0IHVzZWQuCj4gPiA+IE9uY2UgZG9uZSwgYm90aCBzdyBhbmQgaHcgc3RhdGVz IGFyZSBpbiBzeW5jLgo+ID4gPgo+ID4gPiAyKSBmcmVlZCBzY2FsZXIgaXMgYWxsb2NhdGVkIHRv IHNvbWVvbmUuIEluIHRoaXMgY2FzZSwgcmVnaXN0ZXJzCj4gPiA+IHNob3VsZG4ndCBiZSBwcm9n cmFtbWVkIGJ5IHByZXZpb3VzIG93bmVyIGJlY2F1c2Ugc2NhbGVyIG1heSBiZSBpbiB1c2UKPiA+ ID4gYnkgbmV3IG93bmVyLgo+ID4gPgo+ID4gPiBJIHRoaW5rIEkgZXhwbGFpbmVkIHRoZXNlIGRl dGFpbHMgaW4gY29tbWVudHMgYWxyZWFkeS4gQnV0IHdpbGwgY2hlY2sKPiA+ID4gYW5kIHVwZGF0 ZSBpZiBuZWVkZWQuCj4gPiAKPiA+IEkgbWlnaHQgbm90IGhhdmUgYmVlbiBjbGVhciBpbiBteSBl YXJsaWVyIGVtYWlsLiAgV2hhdCBJIG1lYW50IHdhcyB0aGF0IEkgZGlkbid0Cj4gPiBleHBlY3Qg c2NhbGVycyB0byBiZSBwcm9ncmFtbWVkIGFzIHBhcnQgb2YgdGhlaXIgIm93bmVyJ3MiCj4gPiBw cm9ncmFtbWluZyBhdCBhbGwuICBBdCB0aGUgbW9tZW50IHlvdSBzZWVtIHRvIGJlIHByb2dyYW1t aW5nIHRoZW0gaW4gdGhlCj4gPiBsb3ctbGV2ZWwgcGxhbmUgcHJvZ3JhbW1pbmcgZnVuY3Rpb25z IChza2xfdXBkYXRlX3BsYW5lIGFuZCBzdWNoKS4KPiA+IEluc3RlYWQsIEkgaGFkIGV4cGVjdGVk IGEgc2luZ2xlIGxvb3Agb3ZlciBlYWNoIHNjYWxlciBhdCB0aGUgdmVyeSBlbmQgb2YgdGhlCj4g PiBlbnRpcmUgY29tbWl0IHByb2Nlc3MsIGFmdGVyIHlvdSdyZSBkb25lIHdpdGggdGhlIHBsYW5l IHByb2dyYW1taW5nIGZ1bmN0aW9ucy4KPiA+IFRoZSBzY2FsZXIgc3RhdGUgd291bGQgYWxyZWFk eSBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBzY2FsZXIgaXMgc3VwcG9zZWQgdG8gYmUKPiA+IGFzc29j aWF0ZWQgd2l0aCBhIHBsYW5lL2NydGMgKHdoaWNoIG1heSBvciBtYXkgbm90IGJlIHRoZSBzYW1l IGFzIHRoZSBwcmV2aW91cwo+ID4gZnJhbWU7IHdlIGRvbid0IGNhcmUpIG9yIHdoZXRoZXIgaXQg aXMgdW51c2VkIGFuZCBzaG91bGQgYmUgcHJvZ3JhbW1lZCB0byBvZmYuCj4gPiBTbyBiYXNpY2Fs bHkgeW91IHdvdWxkIHdpbmQgdXAgcHJvZ3JhbW1pbmcgYWxsIG9mIHRoZSBzY2FsZXIgcmVnaXN0 ZXJzIG9uIGVhY2gKPiA+IGF0b21pYyBjb21taXQsIGV2ZW4gaWYgdGhleSBkaWRuJ3QgY2hhbmdl LCBidXQgeW91IHdvdWxkbid0IGhhdmUgdG8gd29ycnkKPiA+IGFib3V0IHdoZXRoZXIgdGhlIHNj YWxlcidzIG93bmVyIGlzIGNoYW5naW5nIG9yIHdobyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcg dGhlCj4gPiBwcm9ncmFtbWluZyBvZiB0aGF0IHNjYWxlciB0aGlzIHRpbWUgYXJvdW5kIC0tLSBi YXNpY2FsbHkganVzdCB0cmVhdCBzY2FsZXJzIGFzIGFuCj4gPiBpbmRlcGVuZGVudCByZXNvdXJj ZSB0aGF0IGhhdmUgdGhlaXIgb3duIHByb2dyYW1taW5nIHN0ZXAgYXQgdGhlIGVuZCBvZgo+ID4g cHJvY2Vzc2luZyBhIENSVEMuCj4gCj4gT0suIE5vdyBJIHVuZGVyc3RhbmQgd2hhdCB5b3UgbWVh bnQuCj4gSW4gZWFybHkgdmVyc2lvbnMsIEkgdHJpZWQgc29tZXRoaW5nIHNpbWlsYXIsIGJ1dCB0 aGF0IGFwcHJvYWNoCj4gcmVxdWlyZWQgYmFjayBwb2ludGVycyBmcm9tIHNjYWxlciB0byBpdHMg b3duZXIgdG8gcHJvZ3JhbSBzY2FsZXIgCj4gb3V0cHV0IHdpbmRvdyBjb29yZGluYXRlcy4gCj4g QW5kIGl0IGFsc28gcmVxdWlyZXMgbWFuYWdpbmcgYmFjayBwb2ludGVyIGFzc2lnbm1lbnQgYW5k IHJlc2V0dGluZy4KPiBJdCBpcyBjZXJ0YWlubHkgZG9hYmxlIGJ1dCBJIGRpZG4ndCBzZWUgYW55 IGFkdmFudGFnZSB0aGFuIGN1cnJlbnQgYXBwcm9hY2guCj4gCj4gPiAKPiA+IAo+ID4gPgo+ID4g PiA+Cj4gPiA+ID4gQXMgSSBtZW50aW9uZWQgb24gYSBwcmV2aW91cyBwYXRjaCwgdGhlc2Ugb3Zl cmxvYWRlZCBmdW5jdGlvbnMgdGhhdAo+ID4gPiA+IG1pZ2h0IG9wZXJhdGUgb24gYSBwbGFuZSBv ciBtaWdodCBvcGVyYXRlIG9uIGEgQ1JUQyBjYW4gYmUgYSBiaXQKPiA+ID4gPiBjb25mdXNpbmcs IGVzcGVjaWFsbHkgd2hlbiB3ZSBoYXZlIG11bHRpLW5lc3RlZCB0ZXJuYXJ5IG9wZXJhdG9ycyBs aWtlIHlvdQo+ID4gZG8gYmVsb3cuCj4gPiA+Cj4gPiA+ID4KPiA+ID4gPiA+ICsgKiBpZiBzY2Fs ZXIgaXMgbm90IGluIHVzZS4KPiA+ID4gPiA+ICsgKiBJdCByZXNldHMgc2NhbGVyX2lkIGluIHBs YW5lIG9yIGNydGMKPiA+ID4gPiA+ICsgKiBUbyByZXF1ZXN0IGRldGFjaCBhIHNjYWxlciBmcm9t IGNydGMsIGNhbGwgcGxhbmUgYXMgTlVMTCAgKi8KPiA+ID4gPiA+ICt2b2lkIHNrbF9kZXRhY2hf c2NhbGVyKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpIHsK PiA+ID4gPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiA+ID4gPiA+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK PiA+ID4gPiA+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gPiA+ID4g PiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+ID4gPiA+ID4gKwlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKmludGVsX3BsYW5lOwo+ID4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlOwo+ID4gPiA+ID4gKwlpbnQgKnNjYWxlcl9pZDsKPiA+ID4gPiA+ICsK PiA+ID4gPiA+ICsJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gPiA+ID4gPiAr CWludGVsX3BsYW5lID0gcGxhbmUgPyB0b19pbnRlbF9wbGFuZShwbGFuZSkgOiBOVUxMOwo+ID4g PiA+ID4gKwljcnRjX3N0YXRlID0gaW50ZWxfY3J0Yy0+Y29uZmlnOwo+ID4gPiA+ID4gKwlwbGFu ZV9zdGF0ZSA9IHBsYW5lID8gdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKSA6IE5V TEw7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCXNjYWxlcl9pZCA9IHBsYW5lID8gKHBsYW5lX3N0 YXRlID8gJnBsYW5lX3N0YXRlLT5zY2FsZXJfaWQgOiBOVUxMKSA6Cj4gPiA+ID4gPiArCQkmY3J0 Y19zdGF0ZS0+c2NhbGVyX3N0YXRlLnNjYWxlcl9pZDsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJ aWYgKCFzY2FsZXJfaWQgfHwgKHNjYWxlcl9pZCAmJiAqc2NhbGVyX2lkIDwgMCkpCj4gPiA+ID4g PiArCQlyZXR1cm47Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCS8qIGlmIHNjYWxlciBpcyBub3Qg aW4gdXNlLCBmcmVlICovCj4gPiA+ID4gPiArCWlmICghY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRl LnNjYWxlcnNbKnNjYWxlcl9pZF0uaW5fdXNlKSB7Cj4gPiA+ID4gPiArCQlJOTE1X1dSSVRFKFNL TF9QU19DVFJMKGludGVsX2NydGMtPnBpcGUsICgqc2NhbGVyX2lkKSksIDApOwo+ID4gPiA+ID4g KwkJSTkxNV9XUklURShTS0xfUFNfV0lOX1BPUyhpbnRlbF9jcnRjLT5waXBlLCAoKnNjYWxlcl9p ZCkpLAo+ID4gPiA+IDApOwo+ID4gPiA+ID4gKwkJSTkxNV9XUklURShTS0xfUFNfV0lOX1NaKGlu dGVsX2NydGMtPnBpcGUsICgqc2NhbGVyX2lkKSksIDApOwo+ID4gPiA+ID4gKwkJRFJNX0RFQlVH X0tNUygiRGV0YWNoZWQgYW5kIGRpc2FibGVkIHNjYWxlciBpZCAldS4ldQo+ID4gPiA+IGZyb20g JXM6JWRcbiIsCj4gPiA+ID4gPiArCQkJaW50ZWxfY3J0Yy0+cGlwZSwgKnNjYWxlcl9pZCwgcGxh bmUgPyAiUExBTkUiIDogIkNSVEMiLAo+ID4gPiA+ID4gKwkJCXBsYW5lID8gcGxhbmUtPmJhc2Uu aWQgOiBjcnRjLT5iYXNlLmlkKTsKPiA+ID4gPiA+ICsJCSpzY2FsZXJfaWQgPSAtMTsKPiA+ID4g Pgo+ID4gPiA+IFRoaXMgY29uZnVzZXMgbWUuLi53aHkgYXJlIHdlIHVwZGF0aW5nIHRoZSBzdGF0 ZSBoZXJlIGF0IHRoZSBlbmQgb2YKPiA+ID4gPiB0aGUgY29tbWl0IHN0ZXA/ICBTdGF0ZSBzaG91 bGQgYmUgaW1tdXRhYmxlIGF0IHRoaXMgcG9pbnQsIHJpZ2h0Pwo+ID4gPgo+ID4gPiBBcyBJIGV4 cGxhaW5lZCBhYm92ZSwgdmFsaWQgc2NhbGVyX2lkIGlzIHJlcXVpcmVkLiBUaGVuIHNjYWxlcl9p ZCBjYW4gYmUgc2V0IHRvIC0KPiA+IDEuCj4gPiAKPiA+IFRoZSBwcm9ibGVtIGlzIHRoYXQgd2Un cmUgdWx0aW1hdGVseSB1cGRhdGluZyBjcnRjX3N0YXRlIGZyb20gdGhlICdjb21taXQnIHN0ZXAK PiA+IGhlcmUsIHdoaWNoIHZpb2xhdGVzIHRoZSBhdG9taWMgZGVzaWduLiAgU3RhdGUgc3RydWN0 dXJlcyBhcmUgc3VwcG9zZWQgdG8gYmUKPiA+IGltbXV0YWJsZSBkdXJpbmcgdGhlIGNvbW1pdCBw aGFzZQoKVGhpcyBpcyBzdGlsbCBhIHByb2JsZW07IHdlIHJlYWxseSBjYW4ndCBnbyBiYWNrIGFu ZCB1cGRhdGUgdGhlIHN0YXRlCnN0cnVjdHVyZSBpbiBhIGZ1bmN0aW9uIHRoYXQgaXMgdWx0aW1h dGVseSBjYWxsZWQgYXMgcGFydCBvZiB0aGUKJ2NvbW1pdCcgcGhhc2UuICBBbHNvIGtlZXAgaW4g bWluZCB0aGF0IGxvY2tzIG1heSBoYXZlIGFscmVhZHkgYmVlbiBkcm9wcGVkCmJlZm9yZSB3ZSBz dGFydCB0aGUgY29tbWl0IHBoYXNlIChmb3Igbm9uLWJsb2NraW5nIGZsaXBzIHRoYXQgcnVuIGlu IGEKd3EgdGhyZWFkKS4KCkknbSBzdGlsbCB1bmNvbnZpbmNlZCBvbiB0aGUgbmVlZCBmb3IgdGhl IHdob2xlICJwcm9ncmFtIHNjYWxlcgpyZWdpc3RlcnMgd2l0aCB0aGVpciBjdXJyZW50IG93bmVy IiBkZXNpZ24uICBBYm92ZSB5b3Ugc2FpZDoKCj4gT0suIE5vdyBJIHVuZGVyc3RhbmQgd2hhdCB5 b3UgbWVhbnQuCj4gSW4gZWFybHkgdmVyc2lvbnMsIEkgdHJpZWQgc29tZXRoaW5nIHNpbWlsYXIs IGJ1dCB0aGF0IGFwcHJvYWNoCj4gcmVxdWlyZWQgYmFjayBwb2ludGVycyBmcm9tIHNjYWxlciB0 byBpdHMgb3duZXIgdG8gcHJvZ3JhbSBzY2FsZXIgCj4gb3V0cHV0IHdpbmRvdyBjb29yZGluYXRl cy4gCj4gQW5kIGl0IGFsc28gcmVxdWlyZXMgbWFuYWdpbmcgYmFjayBwb2ludGVyIGFzc2lnbm1l bnQgYW5kIHJlc2V0dGluZy4KPiBJdCBpcyBjZXJ0YWlubHkgZG9hYmxlIGJ1dCBJIGRpZG4ndCBz ZWUgYW55IGFkdmFudGFnZSB0aGFuIGN1cnJlbnQgYXBwcm9hY2guCgpXaGVuIHdlIGFzc2lnbiBh IHNjYWxlciB0byBhIHBsYW5lIG9yIGEgQ1JUQyBpbiB0aGUgY2hlY2sgcGhhc2UsIHdoeQpjYW4n dCB3ZSBqdXN0IHByZS1jYWxjdWxhdGUgdGhlIGFjdHVhbCByZWdpc3RlciB2YWx1ZXMgbGlrZQoK ICAgICAgICBjcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyc1tpXS5jdHJsCiAgICAgICAg Y3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlLnNjYWxlcnNbaV0ud2luX3BvcwogICAgICAgIGNydGNf c3RhdGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJzW2ldLndpbl9zegoKYXQgdGhhdCBwb2ludCByYXRo ZXIgdGhhbiB0cnlpbmcgdG8gbWFpbnRhaW4gYmFja3BvaW50ZXJzIHRvIHBsYW5lcyBvcgpjcnRj cz8gIFRoZW4gYXQgdGhlIGVuZCBvZiB5b3VyIENSVEMgY29tbWl0IHlvdSBjb3VsZCBqdXN0IGRv IHRoZQplcXVpdmFsZW50IG9mOgoKICAgICAgICBmb3IgZWFjaCBzY2FsZXIgewogICAgICAgICAg ICAgICAgSTkxNV9XUklURShTS0xfUFNfQ1RSTFtpXSwgc3RhdGUtPmN0cmwpOwogICAgICAgICAg ICAgICAgSTkxNV9XUklURShTS0xfUFNfV0lOX1BPU1tpXSwgc3RhdGUtPndpbl9wb3MpOwogICAg ICAgICAgICAgICAgSTkxNV9XUklURShTS0xfUFNfV0lOX1NaW2ldLCBzdGF0ZS0+d2luX3N6KTsK ICAgICAgICB9CgpUaGlzIGVsaW1pbmF0ZXMgdGhlIG5lZWQgZm9yIHRoZSB3aG9sZSAnZGV0YWNo JyBjb25jZXB0LCBhdm9pZHMgdGhlIG5lZWQKZm9yIGJhY2twb2ludGVycyB0byB0aGUgYWN0dWFs IHBsYW5lL2NydGMgd2hpY2ggeW91IHdlcmUgd29ycmllZCBhYm91dCwKYW5kIGJyaW5ncyBhbGwg dGhlIHByb2dyYW1taW5nIGludG8gb25lIHBsYWNlIHJhdGhlciB0aGFuIHNwcmVhZGluZyBpdAph Y3Jvc3MgYSBidW5jaCBvZiBkaWZmZXJlbnQgcGxhbmVzL2NydGMgZnVuY3Rpb25zLCB3aGljaCBp cyBhIGxvdCBtb3JlCmNvbXBsaWNhdGVkIGxvZ2ljLXdpc2UuCgpGZWVsIGZyZWUgdG8gdGVsbCBt ZSBJJ20gc3R1cGlkIGlmIEknbSBvdmVybG9va2luZyBzb21lIG9idmlvdXMKc3R1bWJsaW5nIGJs b2NrIHdpdGggdGhpcyBhcHByb2FjaC4gIDotKQoKCk1hdHQKCgotLSAKTWF0dCBSb3BlcgpHcmFw aGljcyBTb2Z0d2FyZSBFbmdpbmVlcgpJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxvcG1l bnQKSW50ZWwgQ29ycG9yYXRpb24KKDkxNikgMzU2LTI3OTUKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK