From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id C971B6E4FB for ; Fri, 15 Mar 2019 19:14:20 +0000 (UTC) Date: Fri, 15 Mar 2019 15:28:29 -0400 From: "Kumar Valsan, Prathap" Message-ID: <20190315192829.GA30702@intel.com> References: <20190215214608.32021-1-prathap.kumar.valsan@intel.com> <20190314172852.16603-1-prathap.kumar.valsan@intel.com> <155263959127.4168.5666016659107127104@skylake-alporthouse-com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <155263959127.4168.5666016659107127104@skylake-alporthouse-com> Subject: Re: [igt-dev] [PATCH i-g-t v6] i915/gem_mocs_settings: Add mocs table for icelake List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Chris Wilson Cc: igt-dev@lists.freedesktop.org, De Marchi Lucas List-ID: T24gRnJpLCBNYXIgMTUsIDIwMTkgYXQgMDg6NDY6MzFBTSArMDAwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFF1b3RpbmcgUHJhdGhhcCBLdW1hciBWYWxzYW4gKDIwMTktMDMtMTQgMTc6Mjg6NTIp Cj4gPiBGcm9tOiAiS3VtYXIgVmFsc2FuLCBQcmF0aGFwIiA8cHJhdGhhcC5rdW1hci52YWxzYW5A aW50ZWwuY29tPgo+ID4gCj4gPiBUaGlzIHBhdGNoIGFkZHMgbW9jcyB0YWJsZSBmb3IgaWNlbGFr ZSB3aXRoIGV4cGVjdGVkIEwzIGFuZCBlRFJBTQo+ID4gY29udHJvbCB2YWx1ZXMuCj4gPiAKPiA+ IFNpZ25lZC1vZmYtYnk6IEt1bWFyIFZhbHNhbiwgUHJhdGhhcCA8cHJhdGhhcC5rdW1hci52YWxz YW5AaW50ZWwuY29tPgo+ID4gLS0tCj4gPiBDaGFuZ2VzIGluIHY2Ogo+ID4gLSBXZSBuZWVkIHRv IHRlc3Qgbm9uLXByaXZpbGVnZWQgd3JpdGUgdG8gTU9DUwo+ID4gICBpcyBkcm9wcGVkIGJ5IHRo ZSBoYXJkd2FyZS4oQXMgc3VnZ2VzdGVkIGJ5IENocmlzKQo+ID4gQ2hhbmdlcyBpbiB2NToKPiA+ IC0gQXMgbW9jcyB0YWJsZSBpcyBnbG9iYWwsIHRlc3QgbmVlZCBub3Qgd3JpdGUKPiA+ICAgbW9j cyB0YWJsZS4gQmVsb3cgamlyYSBoYXMgdGhlIGRpc2N1c3Npb24uIAo+ID4gICBodHRwczovL2pp cmEuZGV2dG9vbHMuaW50ZWwuY29tL2Jyb3dzZS9WTEstMTU2Nwo+ID4gQ2hhbmdlcyBpbiB2NDoK PiA+IC0gTDMgY29udHJvbCByZWdpc3RlcnMgYXJlIGdsb2JhbCBpbiBpY2VsYWtlLgo+ID4gICBU ZXN0IHZhbGlkYXRlcyB0aGF0IGRpcnR5IHdyaXRlcyBmcm9tIHVzZXJzcGFjZQo+ID4gICB0byBM MyBjb250cm9sIHJlZ2lzdGVycyBhcmUgYmVpbmcgZHJvcHBlZC4gCj4gPiBDaGFuZ2VzIGluIHYz Ogo+ID4gLSBUaGVyZSBhcmUgaG9sZXMgaW4gdGhlIG1vY3MgdGFibGUoTHVjYXMgUG9pbnRlZCBv dXQpLgo+ID4gICBJbiBpY2VsYWtlIGluZGV4IDE2IGFuZCAxNyBhcmUgcmVzZXJ2ZWQuCj4gPiAg IFNvIHRlc3Qgc2hvdWxkbid0IGJlIGNoZWNraW5nIHRoZW0uCj4gPiBDaGFuZ2VzIGluIHYyOgo+ ID4gLSBDbGVhbmVkIHVwIHRoZSBjb2RlIGJhc2VkIG9uIHJldmlldwo+ID4gICBjb21tZW50cyBm cm9tIEx1Y2FzIGFuZCBDaHJpcwo+ID4gCj4gPiAgdGVzdHMvaTkxNS9nZW1fbW9jc19zZXR0aW5n cy5jIHwgMTQ3ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ID4gIDEgZmlsZSBj aGFuZ2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwgMzggZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYg LS1naXQgYS90ZXN0cy9pOTE1L2dlbV9tb2NzX3NldHRpbmdzLmMgYi90ZXN0cy9pOTE1L2dlbV9t b2NzX3NldHRpbmdzLmMKPiA+IGluZGV4IDViM2I2YmMxLi4zYWNhYTYxNSAxMDA2NDQKPiA+IC0t LSBhL3Rlc3RzL2k5MTUvZ2VtX21vY3Nfc2V0dGluZ3MuYwo+ID4gKysrIGIvdGVzdHMvaTkxNS9n ZW1fbW9jc19zZXR0aW5ncy5jCj4gPiBAQCAtMzIsNyArMzIsOSBAQAo+ID4gICNpbmNsdWRlICJp Z3RfcGVyZi5oIgo+ID4gICNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKPiA+ICAKPiA+IC0jZGVmaW5l IE1BWF9OVU1CRVJfTU9DU19SRUdJU1RFUlMgICAgICAoNjQpCj4gPiArI2RlZmluZSBHRU45X05V TV9NT0NTX0VOVFJJRVMgICA2MiAgLyogNjIgb3V0IG9mIDY0IC0gNjMgJiA2NCBhcmUgcmVzZXJ2 ZWQuICovCj4gPiArI2RlZmluZSBHRU4xMV9OVU1fTU9DU19FTlRSSUVTICA2NCAgLyogNjMtNjQg YXJlIHJlc2VydmVkLCBidXQgY29uZmlndXJlZC4gKi8KPiA+ICsKPiA+ICBlbnVtIHsKPiA+ICAg ICAgICAgTk9ORSwKPiA+ICAgICAgICAgUkVTRVQsCj4gPiBAQCAtNTIsOCArNTQsMTAgQEAgc3Rh dGljIGNvbnN0IGNoYXIgKiBjb25zdCB0ZXN0X21vZGVzW10gPSB7Cj4gPiAgCj4gPiAgI2RlZmlu ZSBNT0NTX05PTl9ERUZBVUxUX0NUWCAgICgxPDwwKQo+ID4gICNkZWZpbmUgTU9DU19ESVJUWV9W QUxVRVMgICAgICAoMTw8MSkKPiA+ICsjZGVmaW5lIE1PQ1NfTk9OUFJJVklMRUdFRF9ESVJUWV9W QUxVRVMgICAgICAgICgxPDwyKQo+ID4gICNkZWZpbmUgQUxMX01PQ1NfRkxBR1MgICAgICAgICAo TU9DU19OT05fREVGQVVMVF9DVFggfCBcCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNT0NTX0RJUlRZX1ZBTFVFUykKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1PQ1NfRElSVFlfVkFMVUVTIHwgXAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTU9DU19OT05QUklWSUxFR0VEX0RJUlRZX1ZBTFVFUykKPiA+ICAKPiA+ICAjZGVmaW5l IEdFTjlfTE5DRkNNT0NTMCAgICAgICAgICAgICAgICAoMHhCMDIwKSAgICAgICAgLyogTDMgQ2Fj aGUgQ29udHJvbCBiYXNlICovCj4gPiAgI2RlZmluZSBHRU45X0dGWF9NT0NTXzAgICAgICAgICAg ICAgICAgKDB4YzgwMCkgICAgICAgIC8qIEdyYXBoaWNzIE1PQ1MgYmFzZSByZWdpc3RlciovCj4g PiBAQCAtNjEsMTAgKzY1LDEzIEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdGVzdF9tb2Rl c1tdID0gewo+ID4gICNkZWZpbmUgR0VOOV9NRlgxX01PQ1NfMCAgICAgICAoMHhjQTAwKSAgICAg ICAgLyogTWVkaWEgMSBNT0NTIGJhc2UgcmVnaXN0ZXIqLwo+ID4gICNkZWZpbmUgR0VOOV9WRUJP WF9NT0NTXzAgICAgICAoMHhjQjAwKSAgICAgICAgLyogVmlkZW8gTU9DUyBiYXNlIHJlZ2lzdGVy Ki8KPiA+ICAjZGVmaW5lIEdFTjlfQkxUX01PQ1NfMCAgICAgICAgICAgICAgICAoMHhjYzAwKSAg ICAgICAgLyogQmxpdHRlciBNT0NTIGJhc2UgcmVnaXN0ZXIqLwo+ID4gKyNkZWZpbmUgSUNFTEFL RV9NT0NTX1BURSAgICAgICB7MHgwMDAwMDAwNCwgMHgwMDMwLCAweDF9Cj4gPiArI2RlZmluZSBN T0NTX1BURSAgICAgICAgICAgICAgIHsweDAwMDAwMDM4LCAweDAwMzAsIDB4MX0KPiA+ICAKPiA+ ICBzdHJ1Y3QgbW9jc19lbnRyeSB7Cj4gPiAgICAgICAgIHVpbnQzMl90ICAgICAgICBjb250cm9s X3ZhbHVlOwo+ID4gICAgICAgICB1aW50MTZfdCAgICAgICAgbDNjY192YWx1ZTsKPiA+ICsgICAg ICAgdWludDhfdCAgICAgICAgIHVzZWQ7Cj4gPiAgfTsKPiA+ICAKPiA+ICBzdHJ1Y3QgbW9jc190 YWJsZSB7Cj4gPiBAQCAtNzMsMzUgKzgwLDU4IEBAIHN0cnVjdCBtb2NzX3RhYmxlIHsKPiA+ICB9 Owo+ID4gIAo+ID4gIC8qIFRoZSBmaXJzdCBlbnRyaWVzIGluIHRoZSBNT0NTIHRhYmxlcyBhcmUg ZGVmaW5lZCBieSB1QUJJICovCj4gPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBtb2NzX2VudHJ5IHNr eWxha2VfbW9jc190YWJsZVtdID0gewo+ID4gLSAgICAgICB7IDB4MDAwMDAwMDksIDB4MDAxMCB9 LAo+ID4gLSAgICAgICB7IDB4MDAwMDAwMzgsIDB4MDAzMCB9LAo+ID4gLSAgICAgICB7IDB4MDAw MDAwM2IsIDB4MDAzMCB9LAo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW9jc19lbnRyeSBpY2Vs YWtlX21vY3NfdGFibGVbR0VOMTFfTlVNX01PQ1NfRU5UUklFU10gPSB7Cj4gPiArICAgICAgIFsw XSAgPSB7IDB4MDAwMDAwMDUsIDB4MDAxMCwgMHgxfSwKPiA+ICsgICAgICAgWzFdICA9IElDRUxB S0VfTU9DU19QVEUsCj4gPiArICAgICAgIFsyXSAgPSB7IDB4MDAwMDAwMzcsIDB4MDAzMCwgMHgx fSwKPiA+ICsgICAgICAgWzNdICA9IHsgMHgwMDAwMDAwNSwgMHgwMDEwLCAweDF9LAo+ID4gKyAg ICAgICBbNF0gID0geyAweDAwMDAwMDA1LCAweDAwMzAsIDB4MX0sCj4gPiArICAgICAgIFs1XSAg PSB7IDB4MDAwMDAwMzcsIDB4MDAxMCwgMHgxfSwKPiA+ICsgICAgICAgWzZdICA9IHsgMHgwMDAw MDAxNywgMHgwMDEwLCAweDF9LAo+ID4gKyAgICAgICBbN10gID0geyAweDAwMDAwMDE3LCAweDAw MzAsIDB4MX0sCj4gPiArICAgICAgIFs4XSAgPSB7IDB4MDAwMDAwMjcsIDB4MDAxMCwgMHgxfSwK PiA+ICsgICAgICAgWzldICA9IHsgMHgwMDAwMDAyNywgMHgwMDMwLCAweDF9LAo+ID4gKyAgICAg ICBbMTBdID0geyAweDAwMDAwMDc3LCAweDAwMTAsIDB4MX0sCj4gPiArICAgICAgIFsxMV0gPSB7 IDB4MDAwMDAwNzcsIDB4MDAzMCwgMHgxfSwKPiA+ICsgICAgICAgWzEyXSA9IHsgMHgwMDAwMDA1 NywgMHgwMDEwLCAweDF9LAo+ID4gKyAgICAgICBbMTNdID0geyAweDAwMDAwMDU3LCAweDAwMzAs IDB4MX0sCj4gPiArICAgICAgIFsxNF0gPSB7IDB4MDAwMDAwNjcsIDB4MDAxMCwgMHgxfSwKPiA+ ICsgICAgICAgWzE1XSA9IHsgMHgwMDAwMDA2NywgMHgwMDMwLCAweDF9LAo+ID4gKyAgICAgICBb MThdID0geyAweDAwMDYwMDM3LCAweDAwMzAsIDB4MX0sCj4gPiArICAgICAgIFsxOV0gPSB7IDB4 MDAwMDA3MzcsIDB4MDAzMCwgMHgxfSwKPiA+ICsgICAgICAgWzIwXSA9IHsgMHgwMDAwMDMzNywg MHgwMDMwLCAweDF9LAo+ID4gKyAgICAgICBbMjFdID0geyAweDAwMDAwMTM3LCAweDAwMzAsIDB4 MX0sCj4gPiArICAgICAgIFsyMl0gPSB7IDB4MDAwMDAzYjcsIDB4MDAzMCwgMHgxfSwKPiA+ICsg ICAgICAgWzIzXSA9IHsgMHgwMDAwMDdiNywgMHgwMDMwLCAweDF9LAo+ID4gKyAgICAgICBbMjQg Li4uIDYxXSA9IElDRUxBS0VfTU9DU19QVEUsCj4gPiArICAgICAgIFs2Ml0gPSB7IDB4MDAwMDAw MzcsIDB4MDAxMCwgMHgxfSwKPiA+ICsgICAgICAgWzYzXSA9IHsgMHgwMDAwMDAzNywgMHgwMDEw LCAweDF9LAo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBtb2NzX2VudHJ5 IHNreWxha2VfbW9jc190YWJsZVtHRU45X05VTV9NT0NTX0VOVFJJRVNdID0gewo+ID4gKyAgICAg ICBbMF0gPSB7IDB4MDAwMDAwMDksIDB4MDAxMCwgMHgxfSwKPiA+ICsgICAgICAgWzFdID0gTU9D U19QVEUsCj4gPiArICAgICAgIFsyXSA9IHsgMHgwMDAwMDAzYiwgMHgwMDMwLCAweDF9LAo+ID4g KyAgICAgICBbMyAuLi4gR0VOOV9OVU1fTU9DU19FTlRSSUVTIC0gMV0gPSBNT0NTX1BURSwKPiA+ ICB9Owo+ID4gIAo+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW9jc19lbnRyeSBkaXJ0eV9za3ls YWtlX21vY3NfdGFibGVbXSA9IHsKPiA+IC0gICAgICAgeyAweDAwMDAzRkZGLCAweDAwM0YgfSwg Lyogbm8gc25vb3AgYml0ICovCj4gPiAtICAgICAgIHsgMHgwMDAwM0ZGRiwgMHgwMDNGIH0sCj4g PiAtICAgICAgIHsgMHgwMDAwM0ZGRiwgMHgwMDNGIH0sCj4gPiArc3RhdGljIGNvbnN0IHN0cnVj dCBtb2NzX2VudHJ5IGRpcnR5X3NreWxha2VfbW9jc190YWJsZVtHRU45X05VTV9NT0NTX0VOVFJJ RVNdID0gewo+ID4gKyAgICAgICBbMCAuLi4gR0VOOV9OVU1fTU9DU19FTlRSSUVTIC0gMV0gPSB7 IDB4MDAwMDNGRkYsIDB4MDAzRiwgMHgxIH0sCj4gPiAgfTsKPiA+ICAKPiA+IC1zdGF0aWMgY29u c3Qgc3RydWN0IG1vY3NfZW50cnkgYnJveHRvbl9tb2NzX3RhYmxlW10gPSB7Cj4gPiAtICAgICAg IHsgMHgwMDAwMDAwOSwgMHgwMDEwIH0sCj4gPiAtICAgICAgIHsgMHgwMDAwMDAzOCwgMHgwMDMw IH0sCj4gPiAtICAgICAgIHsgMHgwMDAwMDAzOSwgMHgwMDMwIH0sCj4gPiArc3RhdGljIGNvbnN0 IHN0cnVjdCBtb2NzX2VudHJ5IGJyb3h0b25fbW9jc190YWJsZVtHRU45X05VTV9NT0NTX0VOVFJJ RVNdID0gewo+ID4gKyAgICAgICBbMF0gPSB7IDB4MDAwMDAwMDksIDB4MDAxMCwgMHgxfSwKPiA+ ICsgICAgICAgWzFdID0gTU9DU19QVEUsCj4gPiArICAgICAgIFsyXSA9IHsgMHgwMDAwMDAzOSwg MHgwMDMwLCAweDF9LAo+ID4gKyAgICAgICBbMyAuLi4gR0VOOV9OVU1fTU9DU19FTlRSSUVTIC0g MV0gPSBNT0NTX1BURSwKPiA+ICB9Owo+ID4gIAo+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW9j c19lbnRyeSBkaXJ0eV9icm94dG9uX21vY3NfdGFibGVbXSA9IHsKPiA+IC0gICAgICAgeyAweDAw MDA3RkZGLCAweDAwM0YgfSwKPiA+IC0gICAgICAgeyAweDAwMDA3RkZGLCAweDAwM0YgfSwKPiA+ IC0gICAgICAgeyAweDAwMDA3RkZGLCAweDAwM0YgfSwKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IG1vY3NfZW50cnkgZGlydHlfYnJveHRvbl9tb2NzX3RhYmxlW0dFTjlfTlVNX01PQ1NfRU5UUklF U10gPSB7Cj4gPiArICAgICAgIFswIC4uLiBHRU45X05VTV9NT0NTX0VOVFJJRVMgLSAxXSA9IHsg MHgwMDAwN0ZGRiwgMHgwMDNGLCAweDEgfSwKPiA+ICB9Owo+ID4gIAo+ID4gLXN0YXRpYyBjb25z dCB1aW50MzJfdCB3cml0ZV92YWx1ZXNbXSA9IHsKPiA+IC0gICAgICAgMHhGRkZGRkZGRiwKPiA+ IC0gICAgICAgMHhGRkZGRkZGRiwKPiA+IC0gICAgICAgMHhGRkZGRkZGRiwKPiA+IC0gICAgICAg MHhGRkZGRkZGRgo+ID4gK3N0YXRpYyBjb25zdCB1aW50MzJfdCB3cml0ZV92YWx1ZXNbR0VOOV9O VU1fTU9DU19FTlRSSUVTXSA9IHsKPiA+ICsgICAgICAgWzAgLi4uIEdFTjlfTlVNX01PQ1NfRU5U UklFUyAtIDFdID0gMHhGRkZGRkZGRiwKPiA+ICB9Owo+ID4gIAo+ID4gIHN0YXRpYyBib29sIGdl dF9tb2NzX3NldHRpbmdzKGludCBmZCwgc3RydWN0IG1vY3NfdGFibGUgKnRhYmxlLCBib29sIGRp cnR5KQo+ID4gQEAgLTEyNyw2ICsxNTcsMTAgQEAgc3RhdGljIGJvb2wgZ2V0X21vY3Nfc2V0dGlu Z3MoaW50IGZkLCBzdHJ1Y3QgbW9jc190YWJsZSAqdGFibGUsIGJvb2wgZGlydHkpCj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICB0YWJsZS0+dGFibGUgPSBicm94dG9uX21vY3NfdGFibGU7Cj4g PiAgICAgICAgICAgICAgICAgfQo+ID4gICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7Cj4g PiArICAgICAgIH0gZWxzZSBpZiAoSVNfSUNFTEFLRShkZXZpZCkpIHsKPiA+ICsgICAgICAgICAg ICAgICB0YWJsZS0+c2l6ZSAgPSBBUlJBWV9TSVpFKGljZWxha2VfbW9jc190YWJsZSk7Cj4gPiAr ICAgICAgICAgICAgICAgdGFibGUtPnRhYmxlID0gaWNlbGFrZV9tb2NzX3RhYmxlOwo+ID4gKyAg ICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7Cj4gPiAgICAgICAgIH0KPiA+ICAKPiA+ICAgICAg ICAgcmV0dXJuIHJlc3VsdDsKPiA+IEBAIC0yMzgsNyArMjcyLDggQEAgc3RhdGljIHZvaWQgd3Jp dGVfcmVnaXN0ZXJzKGludCBmZCwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCByZWdfYmFzZSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50 MzJfdCAqdmFsdWVzLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHNp emUsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZW5naW5lX2lkKQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGVuZ2luZV9pZCwKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHByaXZpbGVnZWQpCj4gPiAgewo+ID4gICAg ICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmo7Cj4gPiAgICAgICAgIHN0 cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZXhlY2J1ZjsKPiA+IEBAIC0yNTQsNyArMjg5 LDEwIEBAIHN0YXRpYyB2b2lkIHdyaXRlX3JlZ2lzdGVycyhpbnQgZmQsCj4gPiAgICAgICAgIGV4 ZWNidWYuYnVmZmVyX2NvdW50ID0gMTsKPiA+ICAgICAgICAgZXhlY2J1Zi5iYXRjaF9sZW4gPSBj cmVhdGVfd3JpdGVfYmF0Y2goYmF0Y2gsIHZhbHVlcywgc2l6ZSwgcmVnX2Jhc2UpOwo+ID4gICAg ICAgICBpOTE1X2V4ZWNidWZmZXIyX3NldF9jb250ZXh0X2lkKGV4ZWNidWYsIGN0eF9pZCk7Cj4g PiAtICAgICAgIGV4ZWNidWYuZmxhZ3MgPSBJOTE1X0VYRUNfU0VDVVJFIHwgZW5naW5lX2lkOwo+ ID4gKyAgICAgICBpZiAocHJpdmlsZWdlZCkKPiA+ICsgICAgICAgICAgICAgICBleGVjYnVmLmZs YWdzID0gSTkxNV9FWEVDX1NFQ1VSRSB8IGVuZ2luZV9pZDsKPiA+ICsgICAgICAgZWxzZQo+ID4g KyAgICAgICAgICAgICAgIGV4ZWNidWYuZmxhZ3MgPSBlbmdpbmVfaWQ7Cj4gPiAgCj4gPiAgICAg ICAgIGdlbV93cml0ZShmZCwgaGFuZGxlLCAwLCBiYXRjaCwgZXhlY2J1Zi5iYXRjaF9sZW4pOwo+ ID4gICAgICAgICBnZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYpOwo+ID4gQEAgLTI4Myw5ICszMjEs MTIgQEAgc3RhdGljIHZvaWQgY2hlY2tfY29udHJvbF9yZWdpc3RlcnMoaW50IGZkLAo+ID4gICAg ICAgICByZWFkX3JlZ3MgPSBnZW1fbW1hcF9fY3B1KGZkLCBkc3RfaGFuZGxlLCAwLCA0MDk2LCBQ Uk9UX1JFQUQpOwo+ID4gIAo+ID4gICAgICAgICBnZW1fc2V0X2RvbWFpbihmZCwgZHN0X2hhbmRs ZSwgSTkxNV9HRU1fRE9NQUlOX0NQVSwgMCk7Cj4gPiAtICAgICAgIGZvciAoaW50IGluZGV4ID0g MDsgaW5kZXggPCB0YWJsZS5zaXplOyBpbmRleCsrKQo+ID4gKyAgICAgICBmb3IgKGludCBpbmRl eCA9IDA7IGluZGV4IDwgdGFibGUuc2l6ZTsgaW5kZXgrKykgewo+ID4gKyAgICAgICAgICAgICAg IGlmICghdGFibGUudGFibGVbaW5kZXhdLnVzZWQpCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBjb250aW51ZTsKPiA+ICAgICAgICAgICAgICAgICBpZ3RfYXNzZXJ0X2VxX3UzMihyZWFkX3Jl Z3NbaW5kZXhdLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLnRh YmxlW2luZGV4XS5jb250cm9sX3ZhbHVlKTsKPiA+ICsgICAgICAgfQo+ID4gIAo+ID4gICAgICAg ICBtdW5tYXAocmVhZF9yZWdzLCA0MDk2KTsKPiA+ICAgICAgICAgZ2VtX2Nsb3NlKGZkLCBkc3Rf aGFuZGxlKTsKPiA+IEBAIC0zMTUsMTAgKzM1NiwxNCBAQCBzdGF0aWMgdm9pZCBjaGVja19sM2Nj X3JlZ2lzdGVycyhpbnQgZmQsCj4gPiAgICAgICAgIGdlbV9zZXRfZG9tYWluKGZkLCBkc3RfaGFu ZGxlLCBJOTE1X0dFTV9ET01BSU5fQ1BVLCAwKTsKPiA+ICAKPiA+ICAgICAgICAgZm9yIChpbmRl eCA9IDA7IGluZGV4IDwgdGFibGUuc2l6ZSAvIDI7IGluZGV4KyspIHsKPiA+IC0gICAgICAgICAg ICAgICBpZ3RfYXNzZXJ0X2VxX3UzMihyZWFkX3JlZ3NbaW5kZXhdICYgMHhmZmZmLAo+ID4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLnRhYmxlW2luZGV4ICogMl0ubDNj Y192YWx1ZSk7Cj4gPiAtICAgICAgICAgICAgICAgaWd0X2Fzc2VydF9lcV91MzIocmVhZF9yZWdz W2luZGV4XSA+PiAxNiwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJs ZS50YWJsZVtpbmRleCAqIDIgKyAxXS5sM2NjX3ZhbHVlKTsKPiA+ICsgICAgICAgICAgICAgICBp ZiAodGFibGUudGFibGVbaW5kZXggKiAyXS51c2VkKSB7Cj4gPiArICAgICAgICAgICAgICAgICAg ICAgICBpZ3RfYXNzZXJ0X2VxX3UzMihyZWFkX3JlZ3NbaW5kZXhdICYgMHhmZmZmLAo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUudGFibGVbaW5kZXgg KiAyXS5sM2NjX3ZhbHVlKTsKPiA+ICsgICAgICAgICAgICAgICB9Cj4gPiArICAgICAgICAgICAg ICAgaWYgKHRhYmxlLnRhYmxlW2luZGV4ICogMiArIDFdLnVzZWQpIHsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIGlndF9hc3NlcnRfZXFfdTMyKHJlYWRfcmVnc1tpbmRleF0gPj4gMTYsCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS50YWJsZVtp bmRleCAqIDIgKyAxXS5sM2NjX3ZhbHVlKTsKPiA+ICsgICAgICAgICAgICAgICB9Cj4gPiAgICAg ICAgIH0KPiA+ICAKPiA+ICAgICAgICAgaWYgKHRhYmxlLnNpemUgJiAxKQo+ID4gQEAgLTM3Miwx NiArNDE3LDIzIEBAIHN0YXRpYyB2b2lkIGNoZWNrX21vY3NfdmFsdWVzKGludCBmZCwgdW5zaWdu ZWQgZW5naW5lLCB1aW50MzJfdCBjdHhfaWQsIGJvb2wgZGlyCj4gPiAgICAgICAgICAgICAgICAg Y2hlY2tfbDNjY19yZWdpc3RlcnMoZmQsIGVuZ2luZSwgY3R4X2lkLCBkaXJ0eSk7Cj4gPiAgfQo+ ID4gIAo+ID4gLXN0YXRpYyB2b2lkIHdyaXRlX2RpcnR5X21vY3MoaW50IGZkLCB1bnNpZ25lZCBl bmdpbmUsIHVpbnQzMl90IGN0eF9pZCkKPiA+ICtzdGF0aWMgdm9pZCB3cml0ZV9kaXJ0eV9tb2Nz KGludCBmZCwgdW5zaWduZWQgZW5naW5lLCB1aW50MzJfdCBjdHhfaWQsIGJvb2wgcHJpdmlsZWdl ZCkKPiA+ICB7Cj4gPiArICAgICAgIGludCBudW1fb2ZfbW9jc19lbnRyaWVzOwo+ID4gKwo+ID4g KyAgICAgICBpZiAoaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKSA+PSAxMSkKPiA+ ICsgICAgICAgICAgICAgICBudW1fb2ZfbW9jc19lbnRyaWVzID0gR0VOMTFfTlVNX01PQ1NfRU5U UklFUzsKPiA+ICsgICAgICAgZWxzZQo+ID4gKyAgICAgICAgICAgICAgIG51bV9vZl9tb2NzX2Vu dHJpZXMgPSBHRU45X05VTV9NT0NTX0VOVFJJRVM7Cj4gPiArCj4gPiAgICAgICAgIHdyaXRlX3Jl Z2lzdGVycyhmZCwgY3R4X2lkLCBnZXRfZW5naW5lX2Jhc2UoZW5naW5lKSwKPiA+IC0gICAgICAg ICAgICAgICAgICAgICAgIHdyaXRlX3ZhbHVlcywgQVJSQVlfU0laRSh3cml0ZV92YWx1ZXMpLAo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lKTsKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIHdyaXRlX3ZhbHVlcywgbnVtX29mX21vY3NfZW50cmllcywKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIGVuZ2luZSwgcHJpdmlsZWdlZCk7Cj4gPiAgCj4gPiAgICAgICAgIGlmIChl bmdpbmUgPT0gSTkxNV9FWEVDX1JFTkRFUikKPiA+ICAgICAgICAgICAgICAgICB3cml0ZV9yZWdp c3RlcnMoZmQsIGN0eF9pZCwgR0VOOV9MTkNGQ01PQ1MwLAo+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB3cml0ZV92YWx1ZXMsIEFSUkFZX1NJWkUod3JpdGVfdmFsdWVzKSwKPiA+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lKTsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgd3JpdGVfdmFsdWVzLCBudW1fb2ZfbW9jc19lbnRyaWVzLzIs Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZSwgcHJpdmlsZWdlZCk7 Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIHJ1bl90ZXN0KGludCBmZCwgdW5zaWduZWQg ZW5naW5lLCB1bnNpZ25lZCBmbGFncywgdW5zaWduZWQgbW9kZSkKPiA+IEBAIC0zODksNiArNDQx LDE0IEBAIHN0YXRpYyB2b2lkIHJ1bl90ZXN0KGludCBmZCwgdW5zaWduZWQgZW5naW5lLCB1bnNp Z25lZCBmbGFncywgdW5zaWduZWQgbW9kZSkKPiA+ICAgICAgICAgdWludDMyX3QgY3R4X2lkID0g MDsKPiA+ICAgICAgICAgdWludDMyX3QgY3R4X2NsZWFuX2lkOwo+ID4gICAgICAgICB1aW50MzJf dCBjdHhfZGlydHlfaWQ7Cj4gPiArICAgICAgIHVpbnQzMl90IGN0eF9ub25wcml2aWxlZ2VkX2Rp cnR5X2lkOwo+ID4gKwo+ID4gKyAgICAgICAvKiBBcyBtb2NzIGlzIGdsb2JhbCBmb3IgR0VOMTEr LCB0cnlpbmcgcHJpdmlsZWdlZCB3cml0ZSB0byBkaXJ0eQo+ID4gKyAgICAgICAgKiB0aGUgbW9j cyBhbmQgdGVzdGluZyBjb250ZXh0IHNhdmUgYW5kIHJlc3RvcmUgb2YgbW9jcyBiZXR3ZWVuCj4g PiArICAgICAgICAqIGNvbnRleHRzIGlzIGJvdW5kIHRvIGZhaWwuCj4gPiArICAgICAgICAqLwo+ ID4gKyAgICAgICBpZiAoZmxhZ3MgJiBNT0NTX0RJUlRZX1ZBTFVFUykKPiA+ICsgICAgICAgICAg ICAgICBpZ3Rfc2tpcF9vbihpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpID49IDEx KTsKPiA+ICAKPiA+ICAgICAgICAgZ2VtX3JlcXVpcmVfcmluZyhmZCwgZW5naW5lKTsKPiA+ICAK PiA+IEBAIC00MDAsMTAgKzQ2MCwyMCBAQCBzdGF0aWMgdm9pZCBydW5fdGVzdChpbnQgZmQsIHVu c2lnbmVkIGVuZ2luZSwgdW5zaWduZWQgZmxhZ3MsIHVuc2lnbmVkIG1vZGUpCj4gPiAgCj4gPiAg ICAgICAgIGlmIChmbGFncyAmIE1PQ1NfRElSVFlfVkFMVUVTKSB7Cj4gPiAgICAgICAgICAgICAg ICAgY3R4X2RpcnR5X2lkID0gZ2VtX2NvbnRleHRfY3JlYXRlKGZkKTsKPiA+IC0gICAgICAgICAg ICAgICB3cml0ZV9kaXJ0eV9tb2NzKGZkLCBlbmdpbmUsIGN0eF9kaXJ0eV9pZCk7Cj4gPiArICAg ICAgICAgICAgICAgd3JpdGVfZGlydHlfbW9jcyhmZCwgZW5naW5lLCBjdHhfZGlydHlfaWQsIHRy dWUpOwo+ID4gICAgICAgICAgICAgICAgIGNoZWNrX21vY3NfdmFsdWVzKGZkLCBlbmdpbmUsIGN0 eF9kaXJ0eV9pZCwgdHJ1ZSk7Cj4gPiAgICAgICAgIH0KPiA+ICAKPiA+ICsgICAgICAgLyogTm9u LXByaXZpbGVnZWQgd3JpdGUgdG8gZGlydHkgdGhlIG1vY3MKPiA+ICsgICAgICAgICogc2hvdWxk IGJlIGlnbm9yZWQgYnkgdGhlIGhhcmR3YXJlCj4gPiArICAgICAgICAqLwo+ID4gKyAgICAgICBp ZiAoZmxhZ3MgJiBNT0NTX05PTlBSSVZJTEVHRURfRElSVFlfVkFMVUVTKSB7Cj4gPiArICAgICAg ICAgICAgICAgY3R4X25vbnByaXZpbGVnZWRfZGlydHlfaWQgPSBnZW1fY29udGV4dF9jcmVhdGUo ZmQpOwo+ID4gKyAgICAgICAgICAgICAgIHdyaXRlX2RpcnR5X21vY3MoZmQsIGVuZ2luZSwgY3R4 X25vbnByaXZpbGVnZWRfZGlydHlfaWQsIGZhbHNlKTsKPiA+ICsgICAgICAgICAgICAgICBjaGVj a19tb2NzX3ZhbHVlcyhmZCwgZW5naW5lLCBjdHhfbm9ucHJpdmlsZWdlZF9kaXJ0eV9pZCwgZmFs c2UpOwo+IAo+IEFyZSB3ZSBqdXN0IGNyZWF0aW5nIGEgYnVuY2ggb2YgY3R4IGFuZCBsZWF2aW5n IHRoZW0gaGFuZ2luZz8gSSBob3BlIHdlCj4gYXJlIGxlYXN0IGNsb3NpbmcgdGhlIGZkIGJldHdl ZW4gcnVucy4KPiAKPiBJIHdvdWxkIHJlbmFtZSB0aGlzIHRlc3QgdG8gZm9jdXMgb24gaXNvbGF0 aW9uOgo+IAlNT0NTX0lTT0xBVElPTiwgIi1pc29sYXRpb24iCj4gCj4gaWYgKGZsYWdzICYgTU9D U19JU09MQVRJT04pIHsKPiAJdWludDMyX3QgY3R4WzJdID0geyBnZW1fY29udGV4dF9jcmVhdGUo ZmQpLCBnZW1fY29udGV4dF9jcmVhdGUoZmQpIH0KPiAKPiAJLyogQW55IHdyaXRlcyBieSBvbmUg bm9ybWFsIGNsaWVudCBzaG91bGQgbm90IGFmZmVjdCBhIHNlY29uZCBjbGllbnQgKi8KPiAJd3Jp dGVfZGlydHlfbW9jcyhmZCwgZW5naW5lLCBjdHhbMF0sIGZhbHNlKTsKPiAJY2hlY2tfbW9jc192 YWx1ZXMoZmQsIGVuZ2luZSwgY3R4WzFdLCBmYWxzZSk7Cj4gCj4gCWZvciAoaW50IGkgPSAwOyBp IDwgQVJSQVlfU0laRShjdHgpOyBpKyspCj4gCQlnZW1fY29udGV4dF9kZXN0cm95KGZkLCBjdHhb aV0pOwo+IH0KPiAKPiBUaGlzIGlzIGp1c3QgYSBzdGFuZGFsb25lIHRlc3QgdGhhdCBvbmx5IG5l ZWRzIHRvIGJlIGNoZWNrZWQgcGVyLWVuZ2luZTsKPiBJIHdvdWxkIGFkdmlzZSBhZ2FpbnN0IHN0 dWZmaW5nIGl0IGluc2lkZSBydW5fdGVzdCgpLgo+IApNb3ZlZCB0byBhIHN0YW5kYWxvbmUgc3Vi dGVzdC4KPiBCdXQgb3RoZXIgdGhhbiB0aGF0LCBJIHRoaW5rIHRoZSB0ZXN0IGlzIHNvdW5kIGFu ZCBleGVyY2lzZXMgdGhlIHVBQkkKPiBjb3JyZWN0bHkgKGkuZS4gY2xpZW50cyBkZXBlbmQgb24g dGhlIE1PQ1MgdmFsdWVzIGJlaW5nIHN0YXRpYykuIEJvbnVzCj4gcG9pbnRzIGZvciBwcm92aW5n IGFuIGludmFsaWQgTU9DUyB2YWx1ZSB3aXRob3V0IHJlYWRpbmcgYSByZWdpc3RlciA6KQpQcm92 aW5nIGFuIGludmFsaWQgTU9DUyB2YWx1ZSB3aXRob3V0IHJlYWRpbmcgYSByZWdpc3RlciAgd2Fz bid0CnN1Y2Nlc3NmdWwuIE9uZSB0aGluZyBpIHRyaWVkIGlzIHVzaW5nIEk5MTVfUEFSQU1fSEFT X0NPTlRFWFRfSVNPTEFUSU9OOgpjcmVhdGVkIGEgc2Vjb25kIGNvbnRleHQgYWZ0ZXIgd3JpdGlu ZyB0byBtb2NzIHVzaW5nIGZpcnN0IGNvbnRleHQuIFRoZW4KY2hlY2sgdGhlIHZhbHVlIHJldHVy bmVkIGJ5IEk5MTVfUEFSQU1fSEFTX0NPTlRFWFRfSVNPTEFUSU9OLiBJZiB0aGUKc2Vjb25kIGNv bnRleHQgaW5oZXJpdGVkIHRoZSBtb2NzIGZyb20gdGhlIGZpcnN0IGNvbnRleHQsIHRoZW4gdGhp cwppb2N0bCBzaG91bGQgcmV0dXJuIGZhbHNlIGZvciB0aGUgcmVzcGVjdGl2ZSBlbmdpbmU/IE5v dCB2ZXJ5IHN1cmUgaSBhbQpoZWFkaW5nIGF0IHRoZSByaWdodCBkaXJlY3Rpb24uIFdpbGwgaGF2 ZSB0byBleHBlcmltZW50IGZ1cnRoZXIgYXMgVE9ETy4KOikKLSBQcmF0aGFwCj4gLUNocmlzCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFp bGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==