From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [PATCH 1/2] drm: Adding rotation to drm_plane_helper_check_update Date: Thu, 15 Jan 2015 11:28:40 +0200 Message-ID: <20150115092840.GR10649@intel.com> References: <1421152420-20375-1-git-send-email-sonika.jindal@intel.com> <1421152420-20375-2-git-send-email-sonika.jindal@intel.com> <20150113133245.GK10649@intel.com> <54B5F229.8030708@intel.com> <20150114092742.GN10649@intel.com> <000C66961D35964B9714611E548C10AD0C15B153@BGSMSX104.gar.corp.intel.com> <20150114114338.GO10649@intel.com> <000C66961D35964B9714611E548C10AD0C15B2FB@BGSMSX104.gar.corp.intel.com> <20150114180818.GP10649@intel.com> <000C66961D35964B9714611E548C10AD0C15B6F7@BGSMSX104.gar.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <000C66961D35964B9714611E548C10AD0C15B6F7@BGSMSX104.gar.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Jindal, Sonika" Cc: "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKYW4gMTUsIDIwMTUgYXQgMDI6MDQ6MDJBTSArMDAwMCwgSmluZGFsLCBTb25pa2Eg d3JvdGU6Cj4gU28sIGlmIHdlIGRvIHRoZSBzb3VyY2UgYW5kIGRzdCBhZGp1c3RtZW50cyBpbiB1 c2Vyc3BhY2UsIHRoZSBsb2dpYyBpbiBpbnRlbF9jaGVja19zcHJpdGVfcGxhbmUgd2lsbCBub3Qg aG9sZCBnb29kIHRoZXJlLgoKSSdtIG5vdCBzdXJlIHdoYXQgYWRqdXN0bWVudHMgeW91IG1lYW4u IFNyYyBzYXlzIGV4YWN0bHkgd2hpY2ggcGFydCBvZgp0aGUgRkIgeW91IHdhbnQgdG8gcHJlc2Vu dCB0byB0aGUgdXNlciwgcm90YXRpb24gZG9lc24ndCBjaGFuZ2UgdGhhdApmYWN0LiBEc3Qgc2F5 cyBleGFjdGx5IHdoZXJlIG9uIHRoZSBzY3JlZW4geW91IHdhbnQgdGhlIGltYWdlIHRvIGFwcGVh ciwKYWdhaW4gcm90YXRpb24gZG9lc24ndCBjaGFuZ2UgdGhhdCBmYWN0LgoKPiBUaGF0J3MgaG93 IGl0IGdldHMgcmlnaHQgY29vcmRpbmF0ZXMgYW5kIHcsaCBmb3Igc3ByaXRlIGZvciA5MCByb3Rh dGlvbi4KPiBJIHRob3VnaHQgZHJtX3JlY3Rfcm90YXRlIGFuZCBvdGhlciBmdW5jdGlvbnMgYXJl IHRoZXJlIHRvIGhhbmRsZSBzdWNoIHNjZW5hcmlvcy4KClRoZXkgYXJlIHRoZXJlIG1vc3RseSB0 byBtYWtlIHN1cmUgY2xpcHBpbmcgaGFwcGVucyBjb3JyZWN0bHkuIFRoZXkKYXJlbid0IHRoZXJl IHRvIG1hZ2ljYWxseSBmaXggdXNlcnNwYWNlIGJ1Z3MuCgpUaGUgb25seSBtYWdpY3kgcGFydCBp cyB0aGUgcmVsYXhlZCBzY2FsaW5nIGFuZCB0aGUgcm91bmRpbmcgb2YKY29vcmRpbmF0ZXMgYmFz ZWQgb24gaGFyZHdhcmUgbGltaXRzLCBhbmQgdGhhdCBzdHVmZiBvbmx5IGV4aXN0cyBzbwp0aGF0 IGl0J3MgZWFzaWVyIHRvIHdyaXRlIHVzZXJzcGFjZSBjb2RlIHdpdGhvdXQgaGF2aW5nIHRvIGtu b3cKdGhlIGxpbWl0YXRpb25zIG9mIHRoZSBoYXJkd2FyZS4KCj4gCj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0KPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgW21haWx0bzp2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbV0gCj4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDE0LCAyMDE1IDEx OjM4IFBNCj4gVG86IEppbmRhbCwgU29uaWthCj4gQ2M6IGludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmc7IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBTdWJqZWN0OiBSZTog W0ludGVsLWdmeF0gW1BBVENIIDEvMl0gZHJtOiBBZGRpbmcgcm90YXRpb24gdG8gZHJtX3BsYW5l X2hlbHBlcl9jaGVja191cGRhdGUKPiAKPiBPbiBXZWQsIEphbiAxNCwgMjAxNSBhdCAwMTo1NDow NlBNICswMDAwLCBKaW5kYWwsIFNvbmlrYSB3cm90ZToKPiA+IEkgdGhpbmsgSSBhbSBjb25mdXNl ZCBoZXJlLi4KPiA+IFNpbmNlIHNwcml0ZSBwbGFuZSBoYW5kbGVzIHRoaXMgc2NhbGluZyBhbmQg cm90YXRpb24gaW4ga2VybmVsLCBJIHRob3VnaHQgaXQgc2hvdWxkIGJlIHRha2VuIGNhcmUgaW4g ZHJpdmVyIGZvciBwcmltYXJ5IGFzIHdlbGwuCj4gCj4gV2VsbCwgdXNlcnNwYWNlIHN0aWxsIGhh cyB0byBrbm93IGhvdyB0aGUgc3JjIGFuZCBkc3QgY29vcmRpbmF0ZXMgcmVsYXRlIHRvIGVhY2gg b3RoZXIuCj4gCj4gU3JjIGNvb3JkaW5hdGVzIGFyZSBiYXNlZCBvbiB0aGUgbWVtb3J5IGxheW91 dC4gU28gc3JjIHg9MCx5PTAgaXMgdGhlIGZpcnN0IHBpeGVsIGluIG1lbW9yeS4geD0xLHk9MCBp cyB0aGUgc2Vjb25kIHBpeGVsIGluIG1lbW9yeSBldGMuCj4gCj4gRHN0IGNvb3JkaW5hdGVzIGFy ZSBiYXNlZCBvbiB0aGUgZGlzcGxheSBwaXBlLiBTbyBkc3QgeD0wLHk9MCBpcyB0aGUgZmlyc3Qg cGl4ZWwgdGhhdCBnZXRzIHB1c2hlZCBvdXQgYnkgdGhlIHBpcGUgZm9yIGVhY2ggZnJhbWUuIHg9 MSx5PTAgaXMgdGhlIHNlY29uZCBwaXhlbCBnZXR0aW5nIHB1c2hlZCBvdXQuCj4gCj4gTGV0J3Mg c2F5IHdlIGhhdmUgYSA0eDIgRkIgYW5kIGEgZGlzcGxheSBtb2RlIG9mIDh4NC4gVGhlbiB3ZSB3 YW50IHRvIHVzZSBhIHNwcml0ZSBwbGFuZSB0byBwcmVzZW50IHRoZSBGQiB3aXRoIDAgYW5kIDkw IGRlZ3JlZSByb3RhdGlvbiwgYW5kIHdlIHdhbnQgdG8gcG9zaXRpb24gdGhlIHNwcml0ZSBwbGFu ZSBhdCBjb29yZGluYXRlcyAyLDAgb24gdGhlIENSVEMuCj4gSXQgc2hvdWxkIGxvb2sgc29tZXRo aW5nIGxpa2UgdGhpczoKPiAKPiByb3RhdGlvbj0wCj4gc3JjOiB4MT0wLHkxPTAseDI9NCx5Mj0y ICh3PTQsIGg9MikKPiBkc3Q6IHgxPTIseTE9MCx4Mj02LHkyPTIgKHc9NCwgaD0yKQo+IEZCOiAg ICAgICAgICAgIENSVEM6Cj4gMCwwIC0tLS0gICAgMCwwIC0tLS0tLS0tCj4gICAgfGFiY2R8ICAg ICAgfCAgYWJjZCAgfAo+ICAgIHxlZmdofCAgICAgIHwgIGVmZ2ggIHwKPiAgICAgLS0tLSA0LDIg ICB8ICAgICAgICB8Cj4gICAgICAgICAgICAgICAgfCAgICAgICAgfAo+ICAgICAgICAgICAgICAg ICAtLS0tLS0tLSA4LDQKPiAKPiByb3RhdGlvbj05MAo+IHNyYz0wLDAgLT4gNCwyICh3PTQsIGg9 MikKPiBkc3Q9MiwwIC0+IDQsNCAodz0yLCBoPTQpCj4gRkI6ICAgICAgICAgICAgQ1JUQzoKPiAw LDAgLS0tLSAgICAwLDAgLS0tLS0tLS0KPiAgICB8YWJjZHwgICAgICB8ICBkaCAgICB8Cj4gICAg fGVmZ2h8ICAgICAgfCAgY2cgICAgfAo+ICAgICAtLS0tIDQsMiAgIHwgIGJmICAgIHwKPiAgICAg ICAgICAgICAgICB8ICBhZSAgICB8Cj4gICAgICAgICAgICAgICAgIC0tLS0tLS0tIDgsNAo+IAo+ ID4gPkZyb20gdGhlIHRlc3QsIEkgZG9uJ3QgcmVhbGx5IGNoYW5nZSB0aGUgc3JjIHNpemVzIGZv ciBwcmltYXJ5IGFzIHdlbGwgYXMgc3ByaXRlIHRvIHRha2UgY2FyZSBvZiA5MC8yNzAgcm90YXRp b24uCj4gCj4gU291bmRzIGEgYml0IGJ1Z2d5IHRoZW4uCj4gCj4gPiAKPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tCj4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgW21haWx0bzp2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbV0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSAxNCwg MjAxNSA1OjE0IFBNCj4gPiBUbzogSmluZGFsLCBTb25pa2EKPiA+IENjOiBpbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnOyBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBT dWJqZWN0OiBSZTogW0ludGVsLWdmeF0gW1BBVENIIDEvMl0gZHJtOiBBZGRpbmcgcm90YXRpb24g dG8gCj4gPiBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3VwZGF0ZQo+ID4gCj4gPiBPbiBXZWQsIEph biAxNCwgMjAxNSBhdCAwOTo0OTozNkFNICswMDAwLCBKaW5kYWwsIFNvbmlrYSB3cm90ZToKPiA+ ID4gU2luY2Ugd2UgZG8gZHJtX3JlY3Rfcm90YXRlIHdpdGggOTAgcm90YXRpb24sIHRoZSBzcmMt PncgY2hhbmdlcyB0byBzcmMtPmguCj4gPiA+IE5vdywgd2hlbiB3ZSBjYWxsIGRybV9yZWN0X2Nh bGNfaHNjYWxlLCB0aGUgaHNjYWxlIGNhbGN1bGF0ZWQgaXMgbGVzc2VyIHRoYW4gdGhlIG1pbl9o c2NhbGUgKHdoaWNoIGlzIG5vX3NjYWxpbmcgYnkgZGVmYXVsdCksIHNvIGl0IHJldHVybnMgLUVS QU5HRS4KPiA+IAo+ID4gSWYgeW91IHdhbnQgbm8gc2NhbGluZyB0aGVuIHdpdGggOTAvMjcwIHJv dGF0aW9uIHRoZW4geW91ciBzcmMtPncgc2hvdWxkIGJlIGVxdWFsIHRvIGRzdC0+aC4gVGhlbiB0 aGUgY2FsY3VsYXRlZCB2c2NhbGUgd2lsbCBiZSAxLjAuIElmIGl0J3Mgbm90LCB0aGVuIHlvdXIg dGVzdCBpcyBwYXNzaW5nIGluIGJhZCBjb29yZGluYXRlcy4KPiA+IAo+ID4gPiBTbywgSSB0aGlu ayB3ZSBfcmVsYXhlZCBpcyB0aGUgZnVuY3Rpb24gd2hpY2ggc2hvdWxkIGJlIGNhbGxlZCB0byB1 cGRhdGUgdGhlIGRlc3RpbmF0aW9uIHNpemUgYXBwcm9wcmlhdGVseS4KPiA+ID4gUGxlYXNlIGNv cnJlY3QgbWUgaWYgSSBhbSB3cm9uZy4KPiA+ID4gCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tCj4gPiA+IEZyb206IEppbmRhbCwgU29uaWthCj4gPiA+IFNlbnQ6IFdlZG5lc2RheSwg SmFudWFyeSAxNCwgMjAxNSAzOjA2IFBNCj4gPiA+IFRvOiAnVmlsbGUgU3lyasOkbMOkJwo+ID4g PiBDYzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+ID4gPiBTdWJqZWN0OiBSRTogW0ludGVsLWdmeF0gW1BBVENIIDEvMl0g ZHJtOiBBZGRpbmcgcm90YXRpb24gdG8gCj4gPiA+IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBk YXRlCj4gPiA+IAo+ID4gPiBXZSBkbyBleGFjdGx5IGxpa2UgdGhpcyBmb3Igc3ByaXRlIHBsYW5l IChpZSwgcm90YXRlIHRoZSByZWN0LCB0aGVuIGNoZWNrIHNjYWxpbmcgYW5kIGFkanVzdCB0aGUg c2l6ZSBhY2NvcmRpbmdseSBmcm9tIGRybV9yZWN0X2NhbGNfaHNjYWxlX3JlbGF4ZWQpIFRoYXQn cyB3aHkgSSBzYXcgdGhlIG5lZWQgb2YgdGhpcyBmb3IgcHJpbWFyeSBwbGFuZSBhcyB3ZWxsLiAK PiA+ID4gRm9yIHNwcml0ZSBwbGFuZSA5MCByb3RhdGlvbiwgaW50ZWxfY2hlY2tfc3ByaXRlX3Bs YW5lIGRvZXMgdGhlIGFkanVzdG1lbnRzIGFuZCB0aGUgcm90YXRlZCBzaXplcyBhcmUgZmluZS4g QnV0IHNpbmNlIHdlIGRvbid0IGRvIGFueSBvZiB0aG9zZSBzdHVmZiBmb3IgcHJpbWFyeSB0aGUg ZGVzdGluYXRpb24gc2l6ZSBkb2Vzbid0IGNvbWUgcmlnaHQsIGFuZCBJIGdldCBhIGxpdHRsZSBj b3JydXB0ZWQgb3V0cHV0IGFmdGVyIHJvdGF0aW9uLgo+ID4gPiBXaXRoIHRoaXMgY2hhbmdlLCB0 aGUgcm90YXRlZCBwbGFuZSBpcyBwcm9wZXJseSBhZGp1c3RlZCBpbiB0aGUgdmlld3BvcnQuCj4g PiA+IFNvLCBJIGRvbid0IHRoaW5rIGl0IGlzIGEgYnVnIGluIHRlc3QuCj4gPiA+IAo+ID4gPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgW21h aWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbV0KPiA+ID4gU2VudDogV2VkbmVzZGF5 LCBKYW51YXJ5IDE0LCAyMDE1IDI6NTggUE0KPiA+ID4gVG86IEppbmRhbCwgU29uaWthCj4gPiA+ IENjOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gPiA+IFN1YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbUEFUQ0ggMS8yXSBk cm06IEFkZGluZyByb3RhdGlvbiB0byAKPiA+ID4gZHJtX3BsYW5lX2hlbHBlcl9jaGVja191cGRh dGUKPiA+ID4gCj4gPiA+IE9uIFdlZCwgSmFuIDE0LCAyMDE1IGF0IDEwOjA1OjUzQU0gKzA1MzAs IHNvbmlrYSB3cm90ZToKPiA+ID4gPiAKPiA+ID4gPiBPbiBUdWVzZGF5IDEzIEphbnVhcnkgMjAx NSAwNzowMiBQTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gPiA+ID4gT24gVHVlLCBKYW4g MTMsIDIwMTUgYXQgMDY6MDM6MzlQTSArMDUzMCwgU29uaWthIEppbmRhbCB3cm90ZToKPiA+ID4g PiA+PiBUYWtpbmcgcm90YXRpb24gaW50byBhY2NvdW50IHdoaWxlIGNoZWNraW5nIHRoZSBwbGFu ZSBhbmQgCj4gPiA+ID4gPj4gYWRqdXN0aW5nIHRoZSBzaXplcyBhY2NvcmRpbmdseS4KPiA+ID4g PiA+Pgo+ID4gPiA+ID4+IFNpZ25lZC1vZmYtYnk6IFNvbmlrYSBKaW5kYWwgPHNvbmlrYS5qaW5k YWxAaW50ZWwuY29tPgo+ID4gPiA+ID4+IC0tLQo+ID4gPiA+ID4+ICAgZHJpdmVycy9ncHUvZHJt L2RybV9wbGFuZV9oZWxwZXIuYyB8ICAgNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tCj4gPiA+ID4gPj4gICBpbmNsdWRlL2RybS9kcm1fcGxhbmVfaGVscGVyLmggICAgIHwg ICAgMyArLQo+ID4gPiA+ID4+ICAgMiBmaWxlcyBjaGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspLCA1 IGRlbGV0aW9ucygtKQo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKPiA+ID4gPiA+PiBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fcGxhbmVfaGVscGVyLmMKPiA+ID4gPiA+PiBpbmRleCBmMjRjNGNmLi40YmFkZDY5IDEwMDY0 NAo+ID4gPiA+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKPiA+ ID4gPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jCj4gPiA+ID4g Pj4gQEAgLTEzOCw5ICsxMzgsMTMgQEAgaW50IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRl KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gPiA+ID4+ICAgCQkJCSAgICBpbnQgbWF4X3Nj YWxlLAo+ID4gPiA+ID4+ICAgCQkJCSAgICBib29sIGNhbl9wb3NpdGlvbiwKPiA+ID4gPiA+PiAg IAkJCQkgICAgYm9vbCBjYW5fdXBkYXRlX2Rpc2FibGVkLAo+ID4gPiA+ID4+IC0JCQkJICAgIGJv b2wgKnZpc2libGUpCj4gPiA+ID4gPj4gKwkJCQkgICAgYm9vbCAqdmlzaWJsZSwKPiA+ID4gPiA+ PiArCQkJCSAgICB1bnNpZ25lZCBpbnQgcm90YXRpb24pCj4gPiA+ID4gPj4gICB7Cj4gPiA+ID4g Pj4gICAJaW50IGhzY2FsZSwgdnNjYWxlOwo+ID4gPiA+ID4+ICsJaW50IGNydGNfeCwgY3J0Y195 Owo+ID4gPiA+ID4+ICsJdW5zaWduZWQgaW50IGNydGNfdywgY3J0Y19oOwo+ID4gPiA+ID4+ICsJ dWludDMyX3Qgc3JjX3gsIHNyY195LCBzcmNfdywgc3JjX2g7Cj4gPiA+ID4gPj4gICAKPiA+ID4g PiA+PiAgIAlpZiAoIWZiKSB7Cj4gPiA+ID4gPj4gICAJCSp2aXNpYmxlID0gZmFsc2U7Cj4gPiA+ ID4gPj4gQEAgLTE1OCw5ICsxNjIsMTMgQEAgaW50IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBk YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gPiA+ID4+ICAgCQlyZXR1cm4gLUVJTlZB TDsKPiA+ID4gPiA+PiAgIAl9Cj4gPiA+ID4gPj4gICAKPiA+ID4gPiA+PiArCWlmIChmYikKPiA+ ID4gPiA+PiArCQlkcm1fcmVjdF9yb3RhdGUoc3JjLCBmYi0+d2lkdGggPDwgMTYsIGZiLT5oZWln aHQgPDwgMTYsCj4gPiA+ID4gPj4gKwkJCQlyb3RhdGlvbik7Cj4gPiA+ID4gPj4gKwo+ID4gPiA+ ID4+ICAgCS8qIENoZWNrIHNjYWxpbmcgKi8KPiA+ID4gPiA+PiAtCWhzY2FsZSA9IGRybV9yZWN0 X2NhbGNfaHNjYWxlKHNyYywgZGVzdCwgbWluX3NjYWxlLCBtYXhfc2NhbGUpOwo+ID4gPiA+ID4+ IC0JdnNjYWxlID0gZHJtX3JlY3RfY2FsY192c2NhbGUoc3JjLCBkZXN0LCBtaW5fc2NhbGUsIG1h eF9zY2FsZSk7Cj4gPiA+ID4gPj4gKwloc2NhbGUgPSBkcm1fcmVjdF9jYWxjX2hzY2FsZV9yZWxh eGVkKHNyYywgZGVzdCwgbWluX3NjYWxlLCBtYXhfc2NhbGUpOwo+ID4gPiA+ID4+ICsJdnNjYWxl ID0gZHJtX3JlY3RfY2FsY192c2NhbGVfcmVsYXhlZChzcmMsIGRlc3QsIG1pbl9zY2FsZSwgCj4g PiA+ID4gPj4gK21heF9zY2FsZSk7Cj4gPiA+ID4gPiBUaGlzIGlzIGFuIHVucmVsYXRlZCBjaGFu Z2UuIFJlbGF4ZWQgc2NhbGluZyBhbGxvd3MgdGhlIHRoZSAKPiA+ID4gPiA+IHNyYy9kZXN0IHJl Y3RhbmdsZXMgdG8gYmUgcmVkdWNlZCBpbiBzaXplIGluIG9yZGVyIHRvIGtlZXAgdGhlIAo+ID4g PiA+ID4gc2NhbGluZyByYXRpb24gd2l0aGluIHRoZSBtaW4vbWF4IHJhbmdlLiBJIHN1cHBvc2Ug d2Ugc2hvdWxkIAo+ID4gPiA+ID4gc3dpdGNoIHRvIHVzaW5nIGl0IHRvIG1ha2UgdGhlIGJlaGF2 aW91ciB1bmlmb3JtIGFjcm9zcyBkcml2ZXJzLCAKPiA+ID4gPiA+IGJ1dCBkZWZpbml0ZWx5IHNo b3VsZCBiZSBkb25lIHdpdGggYSBzZXBhcmF0ZSBwYXRjaC4KPiA+ID4gPiBTaW5jZSwgSSBhZGRl ZCBkcm1fcmVjdF9yb3RhdGUgYmVmb3JlIHRoaXMsIGl0IGNoYW5nZXMgdGhlIHNyYyAKPiA+ID4g PiBzaXplcyBhbmQgaXQgd2FzIGdpdmluZyBtZSBJbnZhbGlkIHNjYWxpbmcgaWYgd2UgZG9uJ3Qg bGV0IHRoZSAKPiA+ID4gPiBzaXplcyB0byBiZSBjaGFuZ2VkIHVzaW5nIF9yZWxheGVkIGZ1bmN0 aW9ucy4gSSBhbSB0cnlpbmcgdGhpcyBmb3IgCj4gPiA+ID4gOTAvMjcwIHJvdGF0aW9uLgo+ID4g PiAKPiA+ID4gVGhhdCB3b3VsZCBpbmRpY2F0ZSBhIGJ1ZyBzb21ld2hlcmUuIFBvbnRldGlhbGx5 IHRoZSBidWcgY291bGQgYmUgaW4gd2hhdGV2ZXIgdGVzdCB5b3UncmUgdXNpbmcgYXMgd2VsbC4K PiA+ID4gCj4gPiA+ID4gSSBjYW4gbW92ZSBpdCB0byBhIHNlcGFyYXRlIHBhdGNoIGlmIHJlcXVp cmVkLgo+ID4gPiAKPiA+ID4gV2UgbmVlIHRvIGZpZ3VyZSBvdXQgd2h5IHlvdSBnb3QgdGhlIGVy cm9yIGZpcnN0Lgo+ID4gPiAKPiA+ID4gLS0KPiA+ID4gVmlsbGUgU3lyasOkbMOkCj4gPiA+IElu dGVsIE9UQwo+ID4gCj4gPiAtLQo+ID4gVmlsbGUgU3lyasOkbMOkCj4gPiBJbnRlbCBPVEMKPiAK PiAtLQo+IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsIE9UQwoKLS0gClZpbGxlIFN5cmrDpGzDpApJ bnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK