From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liviu Dudau Subject: Re: drm: Bogus WARN() in drm_atomic_helper_update_legacy_modeset_state() ? Date: Thu, 12 Nov 2015 16:48:04 +0000 Message-ID: <20151112164804.GD963@e106497-lin.cambridge.arm.com> References: <20151110150102.GP963@e106497-lin.cambridge.arm.com> <56444EA1.3050506@rock-chips.com> <20151112103618.GY963@e106497-lin.cambridge.arm.com> <56446EC2.6020301@rock-chips.com> <20151112133411.GA645@ulmo> <20151112140335.GC963@e106497-lin.cambridge.arm.com> <20151112161233.GA3913@ulmo> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id BB9836E0BE for ; Thu, 12 Nov 2015 08:48:07 -0800 (PST) Content-Disposition: inline In-Reply-To: <20151112161233.GA3913@ulmo> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: lkml , DRI devel List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBOb3YgMTIsIDIwMTUgYXQgMDU6MTI6MzNQTSArMDEwMCwgVGhpZXJyeSBSZWRpbmcg d3JvdGU6Cj4gT24gVGh1LCBOb3YgMTIsIDIwMTUgYXQgMDI6MDM6MzVQTSArMDAwMCwgTGl2aXUg RHVkYXUgd3JvdGU6Cj4gPiBPbiBUaHUsIE5vdiAxMiwgMjAxNSBhdCAwMjozNDoxMVBNICswMTAw LCBUaGllcnJ5IFJlZGluZyB3cm90ZToKPiA+ID4gT24gVGh1LCBOb3YgMTIsIDIwMTUgYXQgMDY6 NDk6MzhQTSArMDgwMCwgTWFyayB5YW8gd3JvdGU6Cj4gPiA+ID4gT24gMjAxNeW5tDEx5pyIMTLm l6UgMTg6MzYsIExpdml1IER1ZGF1IHdyb3RlOgo+ID4gPiA+ID5PbiBUaHUsIE5vdiAxMiwgMjAx NSBhdCAwNDozMjozM1BNICswODAwLCBNYXJrIHlhbyB3cm90ZToKPiA+ID4gPiA+PiAgICBPbiAy MDE15bm0MTHmnIgxMOaXpSAyMzowMSwgTGl2aXUgRHVkYXUgd3JvdGU6Cj4gPiA+ID4gPj4KPiA+ ID4gPiA+PiAgSGVsbG8sCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiAgV2hlbiBib290aW5nIG15IEp1 bm8gYm9hcmQgd2l0aCB0aGUgSERMQ0QgZHJpdmVyIHRoYXQgSSBoYXZlIGNvbnZlcnRlZCB0bwo+ ID4gPiA+ID4+ICBhdG9taWMgb3BlcmF0aW9ucyBJJ20gZ2V0dGluZyB0aGUgZm9sbG93aW5nIHdh cm5pbmc6Cj4gPiA+ID4gPj4KPiA+ID4gPiA+PiAgLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0t LS0tLS0tLS0tCj4gPiA+ID4gPj4gIFdBUk5JTkc6IGF0IC93b3JrL3JlcG9zaXRvcmllcy9rZXJu ZWwvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmM6Njc0Cj4gPiA+ID4gPj4gIE1v ZHVsZXMgbGlua2VkIGluOiBoZGxjZCgrKSBjbGtfc2NwaQo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4g IENQVTogMyBQSUQ6IDEzNzUgQ29tbTogc3lzdGVtZC11ZGV2ZCBOb3QgdGFpbnRlZCA0LjMuMC1u ZXh0LTIwMTUxMTA5KyAjNQo+ID4gPiA+ID4+ICBIYXJkd2FyZSBuYW1lOiBBUk0gSnVubyBkZXZl bG9wbWVudCBib2FyZCAocjApIChEVCkKPiA+ID4gPiA+PiAgdGFzazogZmZmZmZmYzk3NDg4OGIw MCB0aTogZmZmZmZmYzk3NTVkYzAwMCB0YXNrLnRpOiBmZmZmZmZjOTc1NWRjMDAwCj4gPiA+ID4g Pj4gIFBDIGlzIGF0IGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9sZWdhY3lfbW9kZXNldF9zdGF0 ZSsweDIwNC8weDIwYwo+ID4gPiA+ID4+ICBMUiBpcyBhdCBkcm1fYXRvbWljX2hlbHBlcl9jb21t aXRfbW9kZXNldF9kaXNhYmxlcysweDFjMC8weDM5NAo+ID4gPiA+ID4+ICBwYyA6IFs8ZmZmZmZm YzAwMDNlNmQxOD5dIGxyIDogWzxmZmZmZmZjMDAwM2U4MjE0Pl0gcHN0YXRlOiAyMDAwMDE0NQo+ ID4gPiA+ID4+ICBzcCA6IGZmZmZmZmM5NzU1ZGY0MzAKPiA+ID4gPiA+PiAgeDI5OiBmZmZmZmZj OTc1NWRmNDMwIHgyODogZmZmZmZmYzk3NTcwMzYwMAo+ID4gPiA+ID4+ICB4Mjc6IDAwMDAwMDAw MDAwMDAwMDAgeDI2OiBmZmZmZmZjOTc2MjUzOTYwCj4gPiA+ID4gPj4gIHgyNTogZmZmZmZmYzk3 NjI1NDA0MCB4MjQ6IGZmZmZmZmMwMDA4MTkwMDAKPiA+ID4gPiA+PiAgeDIzOiBmZmZmZmZjMDAw Njg5ZWEwIHgyMjogZmZmZmZmYzk3NjI1MTgwMAo+ID4gPiA+ID4+ICB4MjE6IGZmZmZmZmM5NzYy NTE4MDAgeDIwOiAwMDAwMDAwMDAwMDAwMDAwCj4gPiA+ID4gPj4gIHgxOTogZmZmZmZmYzk3NjZi MWY4MCB4MTg6IDAwMDAwMDAwNzE1ZmUwMTUKPiA+ID4gPiA+PiAgeDE3OiAwMDAwMDA3ZmI0Yjg1 NWIwIHgxNjogMDAwMDAwMDAwMDAwMDIyMAo+ID4gPiA+ID4+ICB4MTU6IDAwMDAwMDAwMDAwMDAw MDEgeDE0OiAwZmZmZmZmZmZmZmZmZmZlCj4gPiA+ID4gPj4gIHgxMzogMDAwMDAwMDAwMDAwMDAw OCB4MTI6IDAxMDEwMTAxMDEwMTAxMDEKPiA+ID4gPiA+PiAgeDExOiBmZmZmZmZjMDAwOTY0MDAw IHgxMDogZmZmZmZmYzAwMDlkMjAwMAo+ID4gPiA+ID4+ICB4OSA6IDAwMDAwMDAwMDAwMDAwMDAg eDggOiBmZmZmZmZjOTdmZjVmNzAwCj4gPiA+ID4gPj4gIHg3IDogZmZmZmZmYzk3NTY2Y2I4MCB4 NiA6IGZmZmZmZmM5NzY2YjE3MDAKPiA+ID4gPiA+PiAgeDUgOiBmZmZmZmZjOTc1NjY1MTAwIHg0 IDogMDAwMDAwMDAwMDAwMDAwMAo+ID4gPiA+ID4+ICB4MyA6IGZmZmZmZmM5NzYyNTM5NjAgeDIg OiBmZmZmZmZjOTc1NjZjZDAwCj4gPiA+ID4gPj4gIHgxIDogZmZmZmZmYzk3NjI1MzkwMCB4MCA6 IDAwMDAwMDAwMDAwMDAwMDAKPiA+ID4gPiA+Pgo+ID4gPiA+ID4+ICAtLS1bIGVuZCB0cmFjZSA5 ZmUyODlmNzk4ZTcxNzhlIF0tLS0KPiA+ID4gPiA+PiAgQ2FsbCB0cmFjZToKPiA+ID4gPiA+PiAg WzxmZmZmZmZjMDAwM2U2ZDE4Pl0gZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX2xlZ2FjeV9tb2Rl c2V0X3N0YXRlKzB4MjA0LzB4MjBjCj4gPiA+ID4gPj4gIFs8ZmZmZmZmYzAwMDNlODIxND5dIGRy bV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2Rpc2FibGVzKzB4MWMwLzB4Mzk0Cj4gPiA+ ID4gPj4gIFs8ZmZmZmZmYzAwMDNlODRjOD5dIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCsweGUw LzB4MTUwCj4gPiA+ID4gPj4gIFs8ZmZmZmZmYzAwMDQwYmNjMD5dIGRybV9hdG9taWNfY29tbWl0 KzB4NDAvMHg2Ywo+ID4gPiA+ID4+ICBbPGZmZmZmZmMwMDAzZTkyYzA+XSByZXN0b3JlX2ZiZGV2 X21vZGUrMHgyOTQvMHgyZDQKPiA+ID4gPiA+PiAgWzxmZmZmZmZjMDAwM2ViNmVjPl0gZHJtX2Zi X2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQrMHgzNC8weDhjCj4gPiA+ID4gPj4g IFs8ZmZmZmZmYzAwMDNlYjc3MD5dIGRybV9mYl9oZWxwZXJfc2V0X3BhcisweDJjLzB4NTgKPiA+ ID4gPiA+PiAgWzxmZmZmZmZjMDAwMzc4MDQ4Pl0gZmJjb25faW5pdCsweDRkNC8weDUzNAo+ID4g PiA+ID4+ICBbPGZmZmZmZmMwMDAzYjQ0ZjQ+XSB2aXN1YWxfaW5pdCsweGFjLzB4MTA0Cj4gPiA+ ID4gPj4gIFs8ZmZmZmZmYzAwMDNiNjNmOD5dIGRvX2JpbmRfY29uX2RyaXZlcisweDE2Yy8weDM5 OAo+ID4gPiA+ID4+ICBbPGZmZmZmZmMwMDAzYjY5Njg+XSBkb190YWtlX292ZXJfY29uc29sZSsw eGQ4LzB4MWY0Cj4gPiA+ID4gPj4gIFs8ZmZmZmZmYzAwMDM3ODExYz5dIGRvX2ZiY29uX3Rha2Vv dmVyKzB4NzQvMHhmOAo+ID4gPiA+ID4+ICBbPGZmZmZmZmMwMDAzN2M1Y2M+XSBmYmNvbl9ldmVu dF9ub3RpZnkrMHg4YTQvMHg4ZjgKPiA+ID4gPiA+PiAgWzxmZmZmZmZjMDAwMGQxOWYwPl0gbm90 aWZpZXJfY2FsbF9jaGFpbisweDRjLzB4ODgKPiA+ID4gPiA+PiAgWzxmZmZmZmZjMDAwMGQxZDc4 Pl0gX19ibG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluKzB4NDQvMHg3NAo+ID4gPiA+ID4+ICBb PGZmZmZmZmMwMDAwZDFkYmM+XSBibG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluKzB4MTQvMHgx Ywo+ID4gPiA+ID4+ICBbPGZmZmZmZmMwMDAzN2Q2MTQ+XSBmYl9ub3RpZmllcl9jYWxsX2NoYWlu KzB4MWMvMHgyNAo+ID4gPiA+ID4+ICBbPGZmZmZmZmMwMDAzN2Y4YTg+XSByZWdpc3Rlcl9mcmFt ZWJ1ZmZlcisweDFjMC8weDJhYwo+ID4gPiA+ID4+ICBbPGZmZmZmZmMwMDAzZWI5Zjg+XSBkcm1f ZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKzB4MjVjLzB4M2VjCj4gPiA+ID4gPj4gIFs8ZmZmZmZm YzAwMDNlYzI4Yz5dIGRybV9mYmRldl9jbWFfaW5pdCsweDk4LzB4MTM0Cj4gPiA+ID4gPj4gIFs8 ZmZmZmZmYmZmYzAwNjc4MD5dIGhkbGNkX2RybV9iaW5kKzB4MTgwLzB4NDk4IFtoZGxjZF0KPiA+ ID4gPiA+PiAgWzxmZmZmZmZjMDAwNDE1OGUwPl0gdHJ5X3RvX2JyaW5nX3VwX21hc3Rlci5wYXJ0 LjUrMHhkNC8weDExOAo+ID4gPiA+ID4+ICBbPGZmZmZmZmMwMDA0MTU5ZTg+XSBjb21wb25lbnRf bWFzdGVyX2FkZF93aXRoX21hdGNoKzB4YzQvMHgxNDgKPiA+ID4gPiA+PiAgWzxmZmZmZmZjMDAw NDE1YTdjPl0gY29tcG9uZW50X21hc3Rlcl9hZGQrMHgxMC8weDE4Cj4gPiA+ID4gPj4gIFs8ZmZm ZmZmYmZmYzAwNjVlYz5dIGhkbGNkX3Byb2JlKzB4MTQvMHgyOCBbaGRsY2RdCj4gPiA+ID4gPj4g IFs8ZmZmZmZmYzAwMDQxYzUwND5dIHBsYXRmb3JtX2Rydl9wcm9iZSsweDU0LzB4YzAKPiA+ID4g PiA+PiAgWzxmZmZmZmZjMDAwNDFhOWIwPl0gZHJpdmVyX3Byb2JlX2RldmljZSsweDFlYy8weDJl OAo+ID4gPiA+ID4+ICBbPGZmZmZmZmMwMDA0MWFiNDg+XSBfX2RyaXZlcl9hdHRhY2grMHg5Yy8w eGEwCj4gPiA+ID4gPj4gIFs8ZmZmZmZmYzAwMDQxOGJjYz5dIGJ1c19mb3JfZWFjaF9kZXYrMHg1 OC8weDk4Cj4gPiA+ID4gPj4gIFs8ZmZmZmZmYzAwMDQxYTQxYz5dIGRyaXZlcl9hdHRhY2grMHgy MC8weDI4Cj4gPiA+ID4gPj4gIFs8ZmZmZmZmYzAwMDQxYTA1OD5dIGJ1c19hZGRfZHJpdmVyKzB4 MWM4LzB4MjJjCj4gPiA+ID4gPj4gIFs8ZmZmZmZmYzAwMDQxYjNkMD5dIGRyaXZlcl9yZWdpc3Rl cisweDY4LzB4MTA4Cj4gPiA+ID4gPj4gIFs8ZmZmZmZmYzAwMDQxYzQwOD5dIF9fcGxhdGZvcm1f ZHJpdmVyX3JlZ2lzdGVyKzB4NGMvMHg1NAo+ID4gPiA+ID4+ICBbPGZmZmZmZmJmZmMwMGIwMTg+ XSBoZGxjZF9pbml0KzB4MTgvMHgzMCBbaGRsY2RdCj4gPiA+ID4gPj4gIFs8ZmZmZmZmYzAwMDA4 MjkzYz5dIGRvX29uZV9pbml0Y2FsbCsweDkwLzB4MWE4Cj4gPiA+ID4gPj4gIFs8ZmZmZmZmYzAw MDE0MjRkYz5dIGRvX2luaXRfbW9kdWxlKzB4NjAvMHgxYzgKPiA+ID4gPiA+PiAgWzxmZmZmZmZj MDAwMTFkMzY0Pl0gbG9hZF9tb2R1bGUrMHgxNTU0LzB4MWM5OAo+ID4gPiA+ID4+ICBbPGZmZmZm ZmMwMDAxMWRjNjQ+XSBTeVNfZmluaXRfbW9kdWxlKzB4N2MvMHg4OAo+ID4gPiA+ID4+ICBbPGZm ZmZmZmMwMDAwODVjYjA+XSBlbDBfc3ZjX25ha2VkKzB4MjQvMHgyOAo+ID4gPiA+ID4+Cj4gPiA+ ID4gPj4KPiA+ID4gPiA+PiAgVGhlIGxpbmUgdGhhdCB0cmlnZ2VycyB0aGUgd2FybmluZyBpczoK PiA+ID4gPiA+Pgo+ID4gPiA+ID4+ICA2NzQ6ICAgICAgICAgICAgICAgICAgICBXQVJOX09OKCFj b25uZWN0b3ItPmVuY29kZXItPmNydGMpOwo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gIEFzIGZhciBh cyBJIGNhbiBzZWUgdGhlIGVuY29kZXItPmNydGMgdmFsdWUgaXMgYmVpbmcgc2V0IHRvIGEgbm9u LU5VTEwgdmFsdWUgb25seQo+ID4gPiA+ID4+ICBpbiB0d28gcGxhY2VzOgo+ID4gPiA+ID4+ICAg LSBpbiBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUoKSBhZnRl ciBXQVJOX09OKCkKPiA+ID4gPiA+PiAgICAgICAgICAgICAgICAgIGVuY29kZXItPmNydGMgPSBj b25uZWN0b3ItPnN0YXRlLT5jcnRjOwo+ID4gPiA+ID4+ICAgLSBpbiBkcm1fY3J0Y19oZWxwZXJf c2V0X2NvbmZpZyhkcm1fbW9kZV9zZXQgKnNldCk6Cj4gPiA+ID4gPj4gICAgICAgICAgICAgICAg ICBlbmNvZGVyLT5jcnRjID0gbmV3X2NydGM7Cj4gPiA+ID4gPj4KPiA+ID4gPiA+PiAgTm90aGlu ZyBpbiB0aGUgY2FsbCBwYXRoIGZyb20gZHJtX2F0b21pY19jb21taXQoKSBjYWxscyBjcnRjX2Z1 bmNzLT5zZXRfY29uZmlnKCkgb3IKPiA+ID4gPiA+PiAgZHJtX2NydGNfaGVscGVyX3NldF9jb25m aWcoKSBkaXJlY3RseSwgc28gdGhlIHF1ZXN0aW9uIGlzIGlmIHRoaXMgV0FSTigpIGlzIGFjdHVh bGx5Cj4gPiA+ID4gPj4gIHZhbGlkLgo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gIENhbGwgcGF0aCBm cm9tIGRybV9hdG9taWNfY29tbWl0Ogo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gIGRybV9hdG9taWNf aGVscGVyX2NvbW1pdCgpCj4gPiA+ID4gPj4gICAgLSBkcm1fYXRvbWljX2hlbHBlcl9wcmVwYXJl X3BsYW5lcygpCj4gPiA+ID4gPj4gICAgLSBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKCkK PiA+ID4gPiA+PiAgICAtIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2Rpc2FibGVz KCkKPiA+ID4gPiA+PiAgICAgICAtIGRpc2FibGVfb3V0cHV0cygpCj4gPiA+ID4gPj4gICAgICAg LSBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUoKQo+ID4gPiA+ ID4+ICAgICAgICAgIC0gV0FSTl9PTighY29ubmVjdG9yLT5lbmNvZGVyLT5jcnRjKQo+ID4gPiA+ ID4+Cj4gPiA+ID4gPj4gIEJlc3QgcmVnYXJkcywKPiA+ID4gPiA+PiAgTGl2aXUKPiA+ID4gPiA+ Pgo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gICAgSGkgTGl2aXUKPiA+ID4gPiA+PiAgICAgICAgICBJ IHNvbHZlZCB0aGlzIHByb2JsZW0gYnkgZm9sbG93aW5nIGNoYW5nZSwgeW91IGNhbiBjaGVjayBp ZiB5b3VyIGRyaXZlciBkbyB0aGUgc2FtZSB0aGluZ3M6Cj4gPiA+ID4gPj4gICAgICAgICAgIGRy aXZlcnMvZ3B1L2RybS9icmlkZ2UvZHdfaGRtaS5jOgo+ID4gPiA+ID4+ICAgICAgICAgICAgICAt ICAgICAgIGhkbWktPmNvbm5lY3Rvci5lbmNvZGVyID0gZW5jb2RlcjsKPiA+ID4gPiA+PiAgICAg ICAgICAgICArLy8gICAgIGhkbWktPmNvbm5lY3Rvci5lbmNvZGVyID0gZW5jb2RlcjsKPiA+ID4g PiA+Pgo+ID4gPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBkcm1fbW9kZV9jb25uZWN0b3Jf YXR0YWNoX2VuY29kZXIoJmhkbWktPmNvbm5lY3RvciwgZW5jb2Rlcik7Cj4gPiA+ID4gPj4KPiA+ ID4gPiA+PiAgICAgICAgIEkgZm91bmQgc29tZSBvdGhlciBkcml2ZXJzIHNldCBjb25uZWN0b3Iu ZW5jb2RlciBiZWZvcmUgZHJtX21vZGVfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyLCBzb21lIGFy ZSBub3QuCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiAgICAgICAgIGRybV9tb2RlX2Nvbm5lY3Rvcl9h dHRhY2hfZW5jb2RlciBhbHJlYWR5IGRlc2NyaWJlIHRoZSBsaW5rIG9mIGNvbm5lY3RvciBhbmQg ZW5jb2RlciwKPiA+ID4gPiA+PiAgICBzbyBJIHRoaW5rICJjb25uZWN0b3IuZW5jb2RlciA9IGVu Y29kZXIiIGlzIG5vdCBuZWVkZWQsIGlzIHRoYXQgcmlnaHQ/Cj4gPiA+ID4gPkknbGwgaGF2ZSBh IGxvb2ssIHRoYW5rcyBmb3IgcG9pbnRpbmcgdGhpcy4gSG93ZXZlciwgbXkgc2V0dXAgdXNlcyB0 aGUgdGRhOTk4eCBkcml2ZXIgZm9yIGVuY29kZXIsIHNvIEkgd2lsbAo+ID4gPiA+ID5oYXZlIHRv IGdvIGxvb2sgdGhlcmUgcmF0aGVyIHRoYW4gaW4gbXkgZHJpdmVyLgo+ID4gPiA+ID4KPiA+ID4g PiA+QmVzdCByZWdhcmRzLAo+ID4gPiA+ID5MaXZpdQo+ID4gPiA+ID4KPiA+ID4gPiA+PiAgICBU aGFua3MuCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiAgLS0KPiA+ID4gPiA+PiAg77ytYXJrIFlhbwo+ ID4gPiA+IEhpIExpdml1Cj4gPiA+ID4gICAgICBkcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhf ZHJ2LmMgZG8gdGhlIHNhbWUgdGhpbmdzOgo+ID4gPiA+ICAgICAgICAgICAgIHByaXYtPmNvbm5l Y3Rvci5lbmNvZGVyID0gJnByaXYtPmVuY29kZXI7Cj4gPiA+ID4gZHJtX21vZGVfY29ubmVjdG9y X2F0dGFjaF9lbmNvZGVyKCZwcml2LT5jb25uZWN0b3IsICZwcml2LT5lbmNvZGVyKTsKPiA+ID4g PiAKPiA+ID4gPiAgICAgIEkgYmVsaWV2ZSBtdXN0IGJlIHNhbWUgcHJvYmxlbS4KPiA+ID4gCj4g PiA+IE9oLCBJIGhhZG4ndCBub3RpY2VkIHRoaXMgc3VidGhyZWFkLCBidXQgeW91IGNhbWUgdG8g dGhlIHNhbWUgY29uY2x1c2lvbgo+ID4gPiBhcyBJIGRpZC4gSSBoYXZlIHRoZSBiZWxvdyBsb2Nh bCBjaGFuZ2UsIHdoaWNoIEkgdGhpbmsgbWlnaHQgYmUgZ29vZCB0bwo+ID4gPiBoYXZlIGdpdmVu IHRoYXQgdGhlcmUgYXJlIGF0IGxlYXN0IHR3byBkcml2ZXJzIHRoYXQgZ290IHRoaXMgd3Jvbmcu Cj4gPiA+IAo+ID4gPiBUaGllcnJ5Cj4gPiA+IAo+ID4gPiAtLS0gPjggLS0tCj4gPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y3J0Yy5jCj4gPiA+IGluZGV4IDI0YzU0MzRhYmQxYy4uNTZkNTMxMDZiMzJkIDEwMDY0NAo+ID4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2NydGMuYwo+ID4gPiBAQCAtNDk4Myw2ICs0OTgzLDIwIEBAIGludCBkcm1fbW9k ZV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPiA+ID4gIHsKPiA+ID4gIAlpbnQgaTsKPiA+ID4gIAo+ID4gPiArCS8qCj4gPiA+ICsJICog SW4gdGhlIHBhc3QsIGRyaXZlcnMgaGF2ZSBhdHRlbXB0ZWQgdG8gbW9kZWwgdGhlIHN0YXRpYyBh c3NvY2lhdGlvbgo+ID4gPiArCSAqIG9mIGNvbm5lY3RvciB0byBlbmNvZGVyIGluIHNpbXBsZSBj b25uZWN0b3IvZW5jb2RlciBkZXZpY2VzIHVzaW5nIGEKPiA+ID4gKwkgKiBkaXJlY3QgYXNzaWdu bWVudCBvZiBjb25uZWN0b3ItPmVuY29kZXIgPSBlbmNvZGVyLiBUaGlzIGNvbm5lY3Rpb24KPiA+ ID4gKwkgKiBpcyBhIGxvZ2ljYWwgb25lIGFuZCB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNv cmUsIHNvIGRyaXZlcnMgYXJlCj4gPiA+ICsJICogZXhwZWN0ZWQgbm90IHRvIG1lc3Mgd2l0aCB0 aGlzLgo+ID4gPiArCSAqCj4gPiA+ICsJICogTm90ZSB0aGF0IHRoZSBlcnJvciByZXR1cm4gc2hv dWxkJ3ZlIGJlZW4gZW5vdWdoIGhlcmUsIGJ1dCBhIGxhcmdlCj4gPiA+ICsJICogbWFqb3JpdHkg b2YgZHJpdmVycyBpZ25vcmVzIHRoZSByZXR1cm4gdmFsdWUsIHNvIGFkZCBpbiBhIGJpZyBXQVJO Cj4gPiA+ICsJICogdG8gZ2V0IHBlb3BsZSdzIGF0dGVudGlvbi4KPiA+ID4gKwkgKi8KPiA+ID4g KwlpZiAoV0FSTl9PTihjb25uZWN0b3ItPmVuY29kZXIpKQo+ID4gPiArCQlyZXR1cm4gLUVJTlZB TDsKPiA+ID4gKwo+ID4gPiAgCWZvciAoaSA9IDA7IGkgPCBEUk1fQ09OTkVDVE9SX01BWF9FTkNP REVSOyBpKyspIHsKPiA+ID4gIAkJaWYgKGNvbm5lY3Rvci0+ZW5jb2Rlcl9pZHNbaV0gPT0gMCkg ewo+ID4gPiAgCQkJY29ubmVjdG9yLT5lbmNvZGVyX2lkc1tpXSA9IGVuY29kZXItPmJhc2UuaWQ7 Cj4gPiAKPiA+IEhpIFRoaWVycnksCj4gPiAKPiA+IFRoaXMgcGF0Y2ggdG9nZXRoZXIgd2l0aCB5 b3VyIHRkYTk5OHggcHJvcG9zZWQgcGF0Y2ggc2hvdWxkIHNvbHZlCj4gPiBuaWNlbHkgdGhlIHBy b2JsZW0gd2UgYXJlIGRldGVjdGluZywgYXMgbG9uZyBhcyBubyBvbmUgY2FsbHMKPiA+IGRybV9j b25uZWN0b3JfZ2V0X2VuY29kZXIoKSBiZWZvcmUgZHJtX2NydGNfaGVscGVyX3NldF9jb25maWco KS4KPiAKPiBUaGUgb25seSBjYWxsZXIgb2YgZHJtX2Nvbm5lY3Rvcl9nZXRfZW5jb2RlcigpIGlz IGRybV9tb2RlX2dldGNvbm5lY3RvcigpCj4gYW5kIHRoYXQgaGFuZGxlcyB0aGUgTlVMTCBjYXNl IGdyYWNlZnVsbHksIHNvIEkgZG9uJ3QgdGhpbmsgdGhlcmUgYXJlIGFueQo+IGlzc3Vlcy4KCkZp bmUgOikKCkknbSBoYXBweSB0byB0ZXN0IGFueSBwYXRjaCB5b3UgbWlnaHQgaGF2ZSBhbmQgZ2l2 ZSB5b3UgbXkgVGVzdGVkLWJ5LgoKQmVzdCByZWdhcmRzLApMaXZpdQoKPiAKPiBUaGllcnJ5CgoK Ci0tIAo9PT09PT09PT09PT09PT09PT09PQp8IEkgd291bGQgbGlrZSB0byB8CnwgZml4IHRoZSB3 b3JsZCwgIHwKfCBidXQgdGhleSdyZSBub3QgfAp8IGdpdmluZyBtZSB0aGUgICB8CiBcIHNvdXJj ZSBjb2RlISAgLwogIC0tLS0tLS0tLS0tLS0tLQogICAgwq9cXyjjg4QpXy/CrwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=