From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [Intel-gfx] [PATCH v2 02/20] drm: Don't update plane properties for atomic planes if it stays the same Date: Mon, 13 Jul 2015 11:23:45 +0200 Message-ID: <55A383A1.6080606@linux.intel.com> References: <20150707121011.GQ7568@phenom.ffwll.local> <559BEB72.1050702@linux.intel.com> <20150707164352.GZ7568@phenom.ffwll.local> <559CD896.8040301@linux.intel.com> <20150708085508.GD7568@phenom.ffwll.local> <559D5163.7060204@linux.intel.com> <20150708175151.GA21858@phenom.ffwll.local> <559D6B03.2060804@linux.intel.com> <20150708201241.GB21858@phenom.ffwll.local> <55A37DF4.80804@linux.intel.com> <20150713091346.GV3736@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150713091346.GV3736@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMTMtMDctMTUgb20gMTE6MTMgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIE1vbiwgSnVs IDEzLCAyMDE1IGF0IDEwOjU5OjMyQU0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ PiBPcCAwOC0wNy0xNSBvbSAyMjoxMiBzY2hyZWVmIERhbmllbCBWZXR0ZXI6Cj4+PiBPbiBXZWQs IEp1bCAwOCwgMjAxNSBhdCAwODoyNTowN1BNICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPj4+PiBPcCAwOC0wNy0xNSBvbSAxOTo1MiBzY2hyZWVmIERhbmllbCBWZXR0ZXI6Cj4+Pj4+ IE9uIFdlZCwgSnVsIDA4LCAyMDE1IGF0IDA2OjM1OjQ3UE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hv cnN0IHdyb3RlOgo+Pj4+Pj4gT3AgMDgtMDctMTUgb20gMTA6NTUgc2NocmVlZiBEYW5pZWwgVmV0 dGVyOgo+Pj4+Pj4+IE9uIFdlZCwgSnVsIDA4LCAyMDE1IGF0IDEwOjAwOjIyQU0gKzAyMDAsIE1h YXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+Pj4+Pj4+PiBPcCAwNy0wNy0xNSBvbSAxODo0MyBzY2hy ZWVmIERhbmllbCBWZXR0ZXI6Cj4+Pj4+Pj4+PiBPbiBUdWUsIEp1bCAwNywgMjAxNSBhdCAwNTow ODozNFBNICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPj4+Pj4+Pj4+PiBPcCAwNy0w Ny0xNSBvbSAxNDoxMCBzY2hyZWVmIERhbmllbCBWZXR0ZXI6Cj4+Pj4+Pj4+Pj4+IE9uIFR1ZSwg SnVsIDA3LCAyMDE1IGF0IDEyOjIwOjEwUE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3Rl Ogo+Pj4+Pj4+Pj4+Pj4gT3AgMDctMDctMTUgb20gMTE6MTggc2NocmVlZiBEYW5pZWwgVmV0dGVy Ogo+Pj4+Pj4+Pj4+Pj4+IE9uIFR1ZSwgSnVsIDA3LCAyMDE1IGF0IDA5OjA4OjEzQU0gKzAyMDAs IE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+PiBUaGlzIGFsbG93cyB0aGUg Zmlyc3QgYXRvbWljIGNhbGwgZHVyaW5nIGh3IGluaXQgdG8gYmUgYSByZWFsIG1vZGVzZXQsCj4+ Pj4+Pj4+Pj4+Pj4+IHdoaWNoIGlzIHVzZWZ1bCBmb3IgZm9yY2luZyBhIHJlY2FsY3VsYXRpb24u Cj4+Pj4+Pj4+Pj4+Pj4gZmJjb24gaXMgb3B0aW9uYWwsIHlvdSBjYW4ndCByZWx5IG9uIGFueXRo aW5nIGJlaW5nIGRvbmUgaW4gYW55IHNwZWNpZmljCj4+Pj4+Pj4+Pj4+Pj4gd2F5LiBXaGF0IGV4 YWN0bHkgZG8geW91IG5lZWQgdGhpcyBmb3IsIHdoYXQncyB0aGUgaW1wbGljYXRpb25zPwo+Pj4+ Pj4+Pj4+Pj4gSW4gdGhlIGh3IHJlYWRvdXQgSSBub3RpY2VkIHNvbWUgd2FybmluZ3Mgd2hlbiBJ IHdhc24ndCBzZXR0aW5nIGFueSBtb2RlIHByb3BlcnR5IGluIHRoZSByZWFkb3V0Lgo+Pj4+Pj4+ Pj4+Pj4gSSB3YW50IHRoZSBmaXJzdCBmdW5jdGlvbiB0byBiZSB0aGUgbW9kZXNldCwgc28gd2Ug aGF2ZSBhIHNhbmUgYmFzZSB0byBjb21taXQgY2hhbmdlcyBvbi4KPj4+Pj4+Pj4+Pj4+IElkZWFs bHkgdGhpcyB3aG9sZSBmdW5jdGlvbiB3b3VsZCBoYXZlIGEgYXRvbWljIGNvdW50ZXJwYXJ0IHdo aWNoIGRvZXMgaXQgaW4gb25lIGdvLiA6KQo+Pj4+Pj4+Pj4+PiBZZWFoLiBPdG9oIGFzIHNvb24g YXMgd2UgaGF2ZSBhdG9taWMgbW9kZXNldCB3b3JraW5nIHdlIGNhbiByZXBsYWNlIGFsbAo+Pj4+ Pj4+Pj4+PiB0aGUgbGVnYWN5IGVudHJ5IHBvaW50cyB3aXRoIGF0b21pYyBoZWxwZXJzLCBhbmQg dGhlbiBldmVuIHBsYW5lX2Rpc2FibGUKPj4+Pj4+Pj4+Pj4gd2lsbCBiZSBhIGZ1bGwgYXRvbWlj IG1vZGVzZXQuCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IFdoYXQgZGlkIGZhbGwgYXBhcnQgd2l0 aCBqdXN0IHRvdWNoaW5nIHByb3BlcnRpZXMvcGxhbmVzIG5vdz8KPj4+Pj4+Pj4+PiBBbHNvIHdo ZW4gaTkxNSBpcyBmdWxseSBhdG9taWMgaXQgY2FsY3VsYXRlcyBpbiBpbnRlbF9tb2Rlc2V0X2Nv bXB1dGVfY29uZmlnCj4+Pj4+Pj4+Pj4gaWYgYSBtb2Rlc2V0IGlzIG5lZWRlZCBhZnRlciB0aGUg Zmlyc3QgYXRvbWljIGNhbGwuIFJpZ2h0IG5vdyBiZWNhdXNlCj4+Pj4+Pj4+Pj4gaW50ZWxfbW9k ZXNldF9jb21wdXRlX2NvbmZpZyBpcyBvbmx5IGNhbGxlZCBpbiBzZXRfY29uZmlnIHNvIHRoaXMg d29ya3MgYXMgZXhwZWN0ZWQuCj4+Pj4+Pj4+Pj4gT3RoZXJ3aXNlIGRybV9wbGFuZV9mb3JjZV9k aXNhYmxlIG9yIHJvdGF0ZV8wIHdpbGwgZm9yY2UgYSBtb2Rlc2V0LAo+Pj4+Pj4+Pj4+IGFuZCBp ZiB0aGUgZmluYWwgbW9kZSBpcyBkaWZmZXJlbnQgdGhpcyB3aWxsIGludHJvZHVjZSBhIGRvdWJs ZSBtb2Rlc2V0Lgo+Pj4+Pj4+Pj4gRm9yIGV4cGVuc2l2ZSBwcm9wZXJ0aWVzIChpLmUuIGEgbm8t b3AgY2hhbmdlcyBjYXVzZXMgc29tZXRoaW5nIHRoYXQgdGFrZXMKPj4+Pj4+Pj4+IHRpbWUgbGlr ZSBtb2Rlc2V0IG9yIHZibGFuayB3YWl0KSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBmaWx0ZXIg dGhlbSBvdXQKPj4+Pj4+Pj4+IGluIGF0b21pY19jaGVjay4gWWVhaCBub3QgcXVpdGUgdGhlcmUg eWV0IHdpdGggcHVyZSBhdG9taWMsIGJ1dCBtZWFud2hpbGUKPj4+Pj4+Pj4+IHRoZSBleGlzdGlu ZyBsZWdhY3kgc2V0X3Byb3AgZnVuY3Rpb25zIHNob3VsZCBhbGwgZmlsdGVyIG91dCBuby1vcCBj aGFuZ2VzCj4+Pj4+Pj4+PiB0aGVtc2VsdmVzLiBJZiB3ZSBkb24ndCBkbyB0aGF0IGZvciByb3Rh dGlvbiB0aGVuIHRoYXQncyBhIGJ1Zy4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBTYW1lIGZvciBkaXNh YmxpbmcgcGxhbmVzIGhhcmRlciwgdGhhdCBzaG91bGRuJ3QgdGFrZSB0aW1lLiBFc3BlY2lhbGx5 Cj4+Pj4+Pj4+PiBzaW5jZSBmYmNvbiBvbmx5IGZvcmNlLWRpc2FibGUgbm9uLXByaW1hcnkgcGxh bmUsIGFuZCBmb3IgZHJpdmVyIGxvYWQKPj4+Pj4+Pj4+IHRoYXQncyB0aGUgZXhhY3QgdGhpbmcg d2UgYWxyZWFkeSBkbyBpbiB0aGUgZHJpdmVyIGFueXdheS4KPj4+Pj4+Pj4gU29tZXRoaW5nIGxp a2UgdGhpcz8KPj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBl ci5jCj4+Pj4+Pj4+IGluZGV4IGExZDRlMTNmMzkwOC4uMjk4OTIzMmY0OTk2IDEwMDY0NAo+Pj4+ Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+Pj4+Pj4+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+Pj4+Pj4+PiBAQCAtMzAs NiArMzAsNyBAQAo+Pj4+Pj4+PiAgI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+Cj4+ Pj4+Pj4+ICAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+Pj4+Pj4+PiAgI2luY2x1 ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+Pj4+Pj4+PiArI2luY2x1ZGUgImRybV9jcnRj X2ludGVybmFsLmgiCj4+Pj4+Pj4+ICAjaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KPj4+Pj4+Pj4g IAo+Pj4+Pj4+PiAgLyoqCj4+Pj4+Pj4+IEBAIC0xNzE2LDcgKzE3MTcsMTIgQEAgZHJtX2F0b21p Y19oZWxwZXJfY3J0Y19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+Pj4+Pj4+ PiAgewo+Pj4+Pj4+PiAgCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPj4+Pj4+Pj4g IAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4+Pj4+Pj4+IC0JaW50IHJldCA9 IDA7Cj4+Pj4+Pj4+ICsJdWludDY0X3QgcmV0dmFsOwo+Pj4+Pj4+PiArCWludCByZXQ7Cj4+Pj4+ Pj4+ICsKPj4+Pj4+Pj4gKwlyZXQgPSBkcm1fYXRvbWljX2dldF9wcm9wZXJ0eSgmY3J0Yy0+YmFz ZSwgcHJvcGVydHksICZyZXR2YWwpOwo+Pj4+Pj4+PiArCWlmICghcmV0ICYmIHZhbCA9PSByZXR2 YWwpCj4+Pj4+Pj4+ICsJCXJldHVybiAwOwo+Pj4+Pj4+PiAgCj4+Pj4+Pj4+ICAJc3RhdGUgPSBk cm1fYXRvbWljX3N0YXRlX2FsbG9jKGNydGMtPmRldik7Cj4+Pj4+Pj4+ICAJaWYgKCFzdGF0ZSkK Pj4+Pj4+Pj4gQEAgLTE3NzYsNyArMTc4MiwxMiBAQCBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9z ZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4+Pj4+Pj4+ICB7Cj4+Pj4+Pj4+ ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+Pj4+Pj4+PiAgCXN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+Pj4+Pj4+PiAtCWludCByZXQgPSAwOwo+Pj4+Pj4+ PiArCXVpbnQ2NF90IHJldHZhbDsKPj4+Pj4+Pj4gKwlpbnQgcmV0Owo+Pj4+Pj4+PiArCj4+Pj4+ Pj4+ICsJcmV0ID0gZHJtX2F0b21pY19nZXRfcHJvcGVydHkoJnBsYW5lLT5iYXNlLCBwcm9wZXJ0 eSwgJnJldHZhbCk7Cj4+Pj4+Pj4+ICsJaWYgKCFyZXQgJiYgdmFsID09IHJldHZhbCkKPj4+Pj4+ Pj4gKwkJcmV0dXJuIDA7Cj4+Pj4+Pj4+ICAKPj4+Pj4+Pj4gIAlzdGF0ZSA9IGRybV9hdG9taWNf c3RhdGVfYWxsb2MocGxhbmUtPmRldik7Cj4+Pj4+Pj4+ICAJaWYgKCFzdGF0ZSkKPj4+Pj4+Pj4g QEAgLTE4MzYsNyArMTg0NywxMiBAQCBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3Jfc2V0X3By b3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4+Pj4+Pj4+ICB7Cj4+Pj4+ Pj4+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+Pj4+Pj4+PiAgCXN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7Cj4+Pj4+Pj4+IC0JaW50IHJldCA9 IDA7Cj4+Pj4+Pj4+ICsJdWludDY0X3QgcmV0dmFsOwo+Pj4+Pj4+PiArCWludCByZXQ7Cj4+Pj4+ Pj4+ICsKPj4+Pj4+Pj4gKwlyZXQgPSBkcm1fYXRvbWljX2dldF9wcm9wZXJ0eSgmY29ubmVjdG9y LT5iYXNlLCBwcm9wZXJ0eSwgJnJldHZhbCk7Cj4+Pj4+Pj4+ICsJaWYgKCFyZXQgJiYgdmFsID09 IHJldHZhbCkKPj4+Pj4+Pj4gKwkJcmV0dXJuIDA7Cj4+Pj4+Pj4+ICAKPj4+Pj4+Pj4gIAlzdGF0 ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoY29ubmVjdG9yLT5kZXYpOwo+Pj4+Pj4+PiAgCWlm ICghc3RhdGUpCj4+Pj4+Pj4gVGhlIHJlYXNvbiBJIGRpZG4ndCBkbyB0aGlzIGlzIHRoYXQgYSBw cm9wIGNoYW5nZSBtaWdodCBzdGlsbCByZXN1bHQgaW4gbm8KPj4+Pj4+PiBodyBzdGF0ZSBjaGFu Z2UgKGUuZy4gaWYgeW91IGdvIGF1dG9taXRpYy0+ZXhwbGljaXQgc2V0dGluZyBtYXRjaGluZwo+ Pj4+Pj4+IGF1dG9tYXRpYyBvbmUpLiBIZW5jZSBJIHRoaW5rIHdlIG5lZWQgdG8gc29sdmUgdGhp cyBpbiBsb3dlciBsZXZlbHMKPj4+Pj4+PiBhbnl3YXksIGkuZS4gaW4gd2hlbiBjb21wdXRpbmcg dGhlIGNvbmZpZy4gQnV0IGl0IHNob3VsZG4ndCBjYXVzZSB0cm91YmxlCj4+Pj4+Pj4geWV0Lgo+ Pj4+Pj4gSXMgdGhhdCBhIGFjayBvciBuYWNrPwo+Pj4+PiBJIHRoaW5rIHdlIHNob3VsZG4ndCBu ZWVkIHRoaXMgcmVhbGx5IGZvciBpOTE1LCBhbmQgaXQgbWlnaHQgY292ZXIgdXAKPj4+Pj4gYnVn cy4gSSBwcmVmZXIgd2UganVzdCBkbyB0aGUgZXZhZGUgbW9kZXNldCBsb2dpYyB5b3UndmUgaW1w bGVtZW50ZWQgb25jZQo+Pj4+PiB3ZSBzd2l0Y2ggb3ZlciB0byBhdG9taWMgcHJvcHMuIFNpbmNl IGF0bSB3ZSBvbmx5IGhhdmUgYXRvbWljIHByb3BzIHdoaWNoCj4+Pj4+IGdldCB1cGRhdGVkIGlu IHBhZ2VmbGlwcyB3ZSBzaG91bGRuJ3QgaGF2ZSBzZXJpb3VzIHByb2JsZW1zIGhlcmUgeWV0IChm b3IKPj4+Pj4gc2V0dGluZyB0aGUgcm90YXRpb24gcHJvcCB0byAwwrAgYWdhaW4gd2hlbiBmYmRl diBzdGFydHMgdXApLgo+Pj4+Pgo+Pj4+PiBPciBkbyBJIG1pc3Mgc29tZXRoaW5nIHN0aWxsIGhl cmU/Cj4+Pj4gWWVzLCBpZiB0aGUgaGFyZHdhcmUgbW9kZSBpcyBpbmNvbXBhdGlibGUgd2l0aCBp dHMgY2FsY3VsYXRlZCBzdyBtb2RlLAo+Pj4+IGFuZCB3ZSBzZXQgYSBkaWZmZXJlbnQgbW9kZSBm cm9tIGZiZGV2IHlvdSBnZXQgMiBtb2Rlc2V0cyBpbnN0ZWFkIG9mIDEuCj4+PiBIb3cgZG9lcyB0 aGF0IGhhcHBlbj8gRm9yIHNldHRpbmcgdGhlIHJvdGF0aW9uIHByb3BlcnR5IHdlIHNob3VsZCBq dXN0Cj4+PiBkdXBsaWNhdGUgdGhlIGN1cnJlbnQgY3J0YyBzdGF0ZS4gU2luY2UgdGhlcmUncyBu byBtb2RlIGNoYW5naW5nICh0aGV5Cj4+PiBzaG91bGQgbWF0Y2ggcGVyZmVjdGx5IG5vIG1hdHRl ciBob3cgYm90Y2hlZCB0aGUgcmVjb25zdHJ1Y3Rpb24gaXMpIHRoZXJlCj4+PiBzaG91bGRuJ3Qg YmUgYW55IG5lZWQgdG8gcmVjb21wdXRlIHRoZSBjb25maWcgY29tcGxldGVseSBhbmQgZGlzY292 ZXIgdGhhdAo+Pj4gdGhlcmUncyBhIG1pc21hdGNoLiBXaGljaCBtZWFucyB3ZSdsbCBqdXN0IGRv IHRoZSBwbGFuZSB1cGRhdGUgKHdoaWNoCj4+PiBtaWdodCBkbyBhIGZldyBzaWxseSBtbWlvcyBi dXQgc2hvdWxkbid0IGJsb2NrKSBhbmQgdGhhdCdzIGl0Lgo+Pj4KPj4+IEF0IGxlYXN0IHRoYXQn cyB3aGF0IEknZCBleHBlY3QgLSB3aGVyZSBkb2VzIHRoaXMgZmFsbCBhcGFydD8KPj4gSWYgY3J0 YyBpcyBhY3RpdmUgYW5kIHByaW1hcnkgZmIgdmlzaWJsZSwgYW5kIGNvbnZlcnRlZCB0byBhdG9t aWM6Cj4+Cj4+IHJlc3RvcmVfZmJkZXZfbW9kZSgpIC0+Cj4+IAlkcm1fbW9kZV9wbGFuZV9zZXRf b2JqX3Byb3AoKSAtPgo+PiAJCWRybV9hdG9taWNfaGVscGVyX3BsYW5lX3NldF9wcm9wZXJ0eSgp IC0+Cj4+IAkJCWRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKCkgLT4KPj4gCQkJCWRybV9hdG9t aWNfZ2V0X2NydGNfc3RhdGUoKQo+PiBjcnRjIHN0YXRlIGlzIHBhcnQgb2YgdGhlIHN0YXRlLCBp bnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnIHBlcmZvcm1zCj4+IHRoZSBpbml0aWFsIGNoZWNrIGlm IG1vZGVzZXQncyBuZWVkZWQuIExldHMgYXNzdW1lIHllczoKPiAiTGV0J3MgYXNzdW1lIHllcyIg LT4gdGhhdCdzIGltbyBhIGJ1Zywgc28gd2hlcmUgZG9lcyB0aGlzIGhhcHBlbiBzbyB0aGF0Cj4g d2UgY2FuIGZpeCBpdD8gRGlzYWJsaW5nIGEgcGxhbmUgb3Igc2V0dGluZyBhIHBsYW5lIHByb3Ag cmVhbGx5IHNob3VsZG4ndAo+IHJlc3VsdCBpbiBhIG1vZGVzZXQuIFdlbGwgYXQgbGVhc3QgaWYg aXQncyBub3QgYSBwbGFuZSBwcm9wIHRoYXQgZG9lcwo+IHJlcXVpcmVkIGEgbW9kZXNldCAoYnV0 IEkgZG9uJ3QgdGhpbmsgd2UgaGF2ZSBhbnkgb2YgdGhvc2UpLgpGcm9tIGEgZHJpdmVyIHBvaW50 IG9mIHZpZXcgeW91IHdvdWxkbid0IGJlIGFibGUgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSBhIHJl YWwgbW9kZXNldCB0byB0aGUgc2FtZSBtb2RlLiA6KApJbiBib3RoIGNhc2VzIHlvdSBoYXZlIGFs bCBwbGFuZXMgYWRkZWQgYW5kIHRoZSBjcnRjLgoKVGhpbmtpbmcgYWJvdXQgaXQgbW9yZSB0aGVy ZSB3aWxsIGJlIDEgdGhpbmcgc2F2aW5nIHVzIGZyb20gYSBtb2Rlc2V0LApkcm1fYXRvbWljX2Ny dGNfY2hlY2sgd2lsbCByZWplY3QgZW5hYmxlIHdpdGhvdXQgbW9kZV9ibG9iIGZvciBhdG9taWMg ZHJpdmVycywKc28gdW50aWwgdGhlIGZpcnN0IG1vZGUgaXMgc2V0IGFsbCBhdG9taWMgdXBkYXRl cyB0byB0aGUgY3J0YyB3aWxsIGJlIHJlamVjdGVkLgoKVW5mb3J0dW5hdGVseSB5b3Ugd2lsbCBz dGlsbCBnZXQgV0FSTl9PTidzIGZvciB0aGlzLCBzbyBhIGJldHRlciBzb2x1dGlvbidzIG5lZWRl ZC4KCn5NYWFydGVuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo=