From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: References: <20190920222610.29282-1-chris@chris-wilson.co.uk> <156925342367.29243.9296989859129945270@skylake-alporthouse-com> From: Tvrtko Ursulin Message-ID: Date: Mon, 23 Sep 2019 17:21:50 +0100 MIME-Version: 1.0 In-Reply-To: <156925342367.29243.9296989859129945270@skylake-alporthouse-com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t] i915/gem_exec_balancer: Check for scheduling bonded-pairs on the same engine List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: igt-dev@lists.freedesktop.org, Tvrtko Ursulin List-ID: Ck9uIDIzLzA5LzIwMTkgMTY6NDMsIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRr byBVcnN1bGluICgyMDE5LTA5LTIzIDE1OjI5OjExKQo+Pgo+PiBPbiAyMC8wOS8yMDE5IDIzOjI2 LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4+PiBUaGUgZXhwZWN0YXRpb24gZm9yIGJvbmRlZCBzdWJt aXNzaW9uIGlzIHRoYXQgdGhleSBhcmUgcnVuIGNvbmN1cnJlbnRseSwKPj4+IGluIHBhcmFsbGVs IG9uIG11bHRpcGxlIGVuZ2luZXMuIEhvd2V2ZXIsIGdpdmVuIGEgbGFjayBvZiBjb25zdHJhaW50 cyBpbgo+Pj4gdGhlIHNjaGVkdWxlcidzIHNlbGVjdGlvbiBjb21iaW5lZCB3aXRoIHRpbWVzbGlj aW5nIGNvdWxkIG1lYW4gdGhhdCB0aGUKPj4+IGJvbmRlZCByZXF1ZXN0cyBjb3VsZCBiZSBydW4g aW4gb3Bwb3NpdGUgb3JkZXIgb24gdGhlIHNhbWUgZW5naW5lLiBXaXRoCj4+PiBqdXN0IHRoZSBy aWdodCBwYWlyIG9mIHJlcXVlc3RzLCB0aGlzIGNhbiBjYXVzZSBhIEdQVSBoYW5nIChvciBhdCBs ZWFzdAo+Pj4gdHJpZ2dlciBoYW5nY2hlY2tlciksIGJlc3QgKHdvcnN0KSBjYXNlIHdvdWxkIGJl IGV4ZWN1dGlvbiBydW5uaW5nCj4+PiBzZXZlcmFsIHRpbWVzIHNsb3dlciB0aGFuIGlkZWFsLgo+ Pgo+PiBJIGRvbid0IHNlZSBhbnkgYm9uZGluZyBiZWluZyBzZXR1cD8KPj4KPj4gW2NvbWVzIGJh Y2sgbGF0ZXJdCj4+Cj4+IE9oIHlvdSB1c2VkIG9ubHkgdGhlIHN1Ym1pdCBmZW5jZSBhbmQgbm90 IGFjdHVhbGx5IGJvbmRzLiBCdXQgeW91IGFsc28KPj4gZG9uJ3QgdXNlIHRoZSB2aXJ0dWFsIGVu Z2luZSBhdCBhbGw/Cj4gCj4gQSBpcyB1c2luZyBlaXRoZXIgb2YgdGhlIDIgcmVhbCBlbmdpbmVz LCBCIGlzIHVzaW5nIHRoZSB2aXJ0dWFsIGVuZ2luZQo+IHRvIHNlbGVjdCB0aGUgb3RoZXIgYXZh aWxhYmxlIGVuZ2luZS4gQm9uZGluZyBpbiB0aGlzIGNhc2UgaXMganVzdCB0aGF0Cj4gdGhlIHJl cXVlc3RzIGFyZSBib25kZWQgdG9nZXRoZXIgdG8gcnVuIGluIHBhcmFsbGVsLgo+IAo+Pj4gU2ln bmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+PiBD YzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4+IC0tLQo+Pj4g ICAgdGVzdHMvaTkxNS9nZW1fZXhlY19iYWxhbmNlci5jIHwgMTUxICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwo+Pj4gICAgMSBmaWxlIGNoYW5nZWQsIDE1MSBpbnNlcnRpb25zKCsp Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfYmFsYW5jZXIuYyBiL3Rl c3RzL2k5MTUvZ2VtX2V4ZWNfYmFsYW5jZXIuYwo+Pj4gaW5kZXggNDA3ZGMwZWNhLi5lNGZlNzU3 NDcgMTAwNjQ0Cj4+PiAtLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVjX2JhbGFuY2VyLmMKPj4+ICsr KyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfYmFsYW5jZXIuYwo+Pj4gQEAgLTMwLDYgKzMwLDE1IEBA Cj4+PiAgICAKPj4+ICAgIElHVF9URVNUX0RFU0NSSVBUSU9OKCJFeGVyY2lzZSBpbi1rZXJuZWwg bG9hZC1iYWxhbmNpbmciKTsKPj4+ICAgIAo+Pj4gKyNkZWZpbmUgTUlfU0VNQVBIT1JFX1dBSVQg ICAgICAgICAgICAoMHgxYyA8PCAyMykKPj4+ICsjZGVmaW5lICAgTUlfU0VNQVBIT1JFX1BPTEwg ICAgICAgICAgICAgKDEgPDwgMTUpCj4+PiArI2RlZmluZSAgIE1JX1NFTUFQSE9SRV9TQURfR1Rf U0REICAgICAgICgwIDw8IDEyKQo+Pj4gKyNkZWZpbmUgICBNSV9TRU1BUEhPUkVfU0FEX0dURV9T REQgICAgICAoMSA8PCAxMikKPj4+ICsjZGVmaW5lICAgTUlfU0VNQVBIT1JFX1NBRF9MVF9TREQg ICAgICAgKDIgPDwgMTIpCj4+PiArI2RlZmluZSAgIE1JX1NFTUFQSE9SRV9TQURfTFRFX1NERCAg ICAgICgzIDw8IDEyKQo+Pj4gKyNkZWZpbmUgICBNSV9TRU1BUEhPUkVfU0FEX0VRX1NERCAgICAg ICAoNCA8PCAxMikKPj4+ICsjZGVmaW5lICAgTUlfU0VNQVBIT1JFX1NBRF9ORVFfU0REICAgICAg KDUgPDwgMTIpCj4+PiArCj4+PiAgICAjZGVmaW5lIElOU1RBTkNFX0NPVU5UICgxIDw8IEk5MTVf UE1VX1NBTVBMRV9JTlNUQU5DRV9CSVRTKQo+Pj4gICAgCj4+PiAgICBzdGF0aWMgc2l6ZV90IHNp emVvZl9sb2FkX2JhbGFuY2UoaW50IGNvdW50KQo+Pj4gQEAgLTY5NCw2ICs3MDMsMTQ1IEBAIHN0 YXRpYyB2b2lkIGJvbmRlZChpbnQgaTkxNSwgdW5zaWduZWQgaW50IGZsYWdzKQo+Pj4gICAgICAg IGdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgbWFzdGVyKTsKPj4+ICAgIH0KPj4+ICAgIAo+Pj4g K3N0YXRpYyB1bnNpZ25lZCBpbnQgb2Zmc2V0X2luX3BhZ2Uodm9pZCAqYWRkcikKPj4+ICt7Cj4+ PiArICAgICByZXR1cm4gKHVpbnRwdHJfdClhZGRyICYgNDA5NTsKPj4+ICt9Cj4+PiArCj4+PiAr c3RhdGljIHVpbnQzMl90IGNyZWF0ZV9zZW1hcGhvcmVfdG9fc3Bpbm5lcihpbnQgaTkxNSwgaWd0 X3NwaW5fdCAqc3BpbikKPj4+ICt7Cj4+PiArICAgICB1aW50MzJfdCAqY3MsICptYXA7Cj4+PiAr ICAgICB1aW50MzJfdCBoYW5kbGU7Cj4+PiArCj4+PiArICAgICBoYW5kbGUgPSBnZW1fY3JlYXRl KGk5MTUsIDQwOTYpOwo+Pj4gKyAgICAgY3MgPSBtYXAgPSBnZW1fbW1hcF9fY3B1KGk5MTUsIGhh bmRsZSwgMCwgNDA5NiwgUFJPVF9XUklURSk7Cj4+PiArCj4+PiArICAgICAvKiBXYWl0IHVudGls IHRoZSBzcGlubmVyIGlzIHJ1bm5pbmcgKi8KPj4+ICsgICAgICpjcysrID0gTUlfU0VNQVBIT1JF X1dBSVQgfAo+Pj4gKyAgICAgICAgICAgICBNSV9TRU1BUEhPUkVfUE9MTCB8Cj4+PiArICAgICAg ICAgICAgIE1JX1NFTUFQSE9SRV9TQURfTkVRX1NERCB8Cj4+PiArICAgICAgICAgICAgICg0IC0g Mik7Cj4+PiArICAgICAqY3MrKyA9IDA7Cj4+PiArICAgICAqY3MrKyA9IHNwaW4tPm9ialswXS5v ZmZzZXQgKyA0ICogU1BJTl9QT0xMX1NUQVJUX0lEWDsKPj4+ICsgICAgICpjcysrID0gMDsKPj4+ ICsKPj4+ICsgICAgIC8qIFRoZW4gY2FuY2VsIHRoZSBzcGlubmVyICovCj4+PiArICAgICAqY3Mr KyA9IE1JX1NUT1JFX0RXT1JEX0lNTTsKPj4+ICsgICAgICpjcysrID0gc3Bpbi0+b2JqW0lHVF9T UElOX0JBVENIXS5vZmZzZXQgKwo+Pj4gKyAgICAgICAgICAgICBvZmZzZXRfaW5fcGFnZShzcGlu LT5jb25kaXRpb24pOwo+Pj4gKyAgICAgKmNzKysgPSAwOwo+Pj4gKyAgICAgKmNzKysgPSBNSV9C QVRDSF9CVUZGRVJfRU5EOwo+Pj4gKwo+Pj4gKyAgICAgKmNzKysgPSBNSV9CQVRDSF9CVUZGRVJf RU5EOwo+Pj4gKyAgICAgbXVubWFwKG1hcCwgNDA5Nik7Cj4+PiArCj4+PiArICAgICByZXR1cm4g aGFuZGxlOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgdm9pZCBib25kZWRfc2xpY2UoaW50IGk5 MTUpCj4+PiArewo+Pj4gKyAgICAgdWludDMyX3QgY3R4Owo+Pj4gKyAgICAgaW50ICpzdG9wOwo+ Pj4gKwo+Pj4gKyAgICAgaWd0X3JlcXVpcmUoZ2VtX3NjaGVkdWxlcl9oYXNfc2VtYXBob3Jlcyhp OTE1KSk7Cj4+PiArCj4+PiArICAgICBzdG9wID0gbW1hcCgwLCA0MDk2LCBQUk9UX1dSSVRFLCBN QVBfU0hBUkVEIHwgTUFQX0FOT04sIC0xLCAwKTsKPj4+ICsgICAgIGlndF9hc3NlcnQoc3RvcCAh PSBNQVBfRkFJTEVEKTsKPj4+ICsKPj4+ICsgICAgIGN0eCA9IGdlbV9jb250ZXh0X2NyZWF0ZShp OTE1KTsKPj4+ICsKPj4+ICsgICAgIGZvciAoaW50IGNsYXNzID0gMDsgY2xhc3MgPCAzMjsgY2xh c3MrKykgewo+Pj4gKyAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFu Y2UgKnNpYmxpbmdzOwo+Pj4gKyAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNf b2JqZWN0MiBvYmpbM10gPSB7fTsKPj4+ICsgICAgICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dl bV9leGVjYnVmZmVyMiBlYiA9IHt9Owo+Pj4gKyAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY291 bnQ7Cj4+PiArICAgICAgICAgICAgIGlndF9zcGluX3QgKnNwaW47Cj4+PiArCj4+PiArICAgICAg ICAgICAgIHNpYmxpbmdzID0gbGlzdF9lbmdpbmVzKGk5MTUsIDF1IDw8IGNsYXNzLCAmY291bnQp Owo+Pj4gKyAgICAgICAgICAgICBpZiAoIXNpYmxpbmdzKQo+Pj4gKyAgICAgICAgICAgICAgICAg ICAgIGNvbnRpbnVlOwo+Pj4gKwo+Pj4gKyAgICAgICAgICAgICBpZiAoY291bnQgPCAyKSB7Cj4+ PiArICAgICAgICAgICAgICAgICAgICAgZnJlZShzaWJsaW5ncyk7Cj4+PiArICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7Cj4+PiArICAgICAgICAgICAgIH0KPj4+ICsKPj4+ICsgICAgICAg ICAgICAgLyoKPj4+ICsgICAgICAgICAgICAgICogQTogc2VtYXBob3JlIHdhaXQgb24gc3Bpbm5l cjsgY2FuY2VsIHNwaW5uZXIKPj4+ICsgICAgICAgICAgICAgICogQjogdW5wcmVlbXB0YWJsZSBz cGlubmVyCj4+PiArICAgICAgICAgICAgICAqCj4+PiArICAgICAgICAgICAgICAqIEEgd2FpdHMg Zm9yIHJ1bm5pbmcgYWNrIGZyb20gQiwgaWYgc2NoZWR1bGVkIG9uIHRoZSBzYW1lCj4+PiArICAg ICAgICAgICAgICAqIGVuZ2luZSAtPiBoYW5nLgo+Pj4gKyAgICAgICAgICAgICAgKgo+Pj4gKyAg ICAgICAgICAgICAgKiBDKzogYmFja2dyb3VuZCBsb2FkIGFjcm9zcyBlbmdpbmVzCj4+PiArICAg ICAgICAgICAgICAqLwo+Pj4gKwo+Pj4gKyAgICAgICAgICAgICBzZXRfbG9hZF9iYWxhbmNlcihp OTE1LCBjdHgsIHNpYmxpbmdzLCBjb3VudCwgTlVMTCk7Cj4+PiArCj4+PiArICAgICAgICAgICAg IHNwaW4gPSBfX2lndF9zcGluX25ldyhpOTE1LAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLmN0eCA9IGN0eCwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC5mbGFncyA9IChJR1RfU1BJTl9OT19QUkVFTVBUSU9OIHwKPj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJR1RfU1BJTl9QT0xMX1JVTikpOwo+ Pj4gKyAgICAgICAgICAgICBpZ3Rfc3Bpbl9lbmQoc3Bpbik7IC8qIHdlIGp1c3Qgd2FudCBpdHMg YWRkcmVzcyBmb3IgbGF0ZXIgKi8KPj4+ICsgICAgICAgICAgICAgZ2VtX3N5bmMoaTkxNSwgc3Bp bi0+aGFuZGxlKTsKPj4+ICsgICAgICAgICAgICAgaWd0X3NwaW5fcmVzZXQoc3Bpbik7Cj4+PiAr Cj4+PiArICAgICAgICAgICAgIG9ialswXSA9IHNwaW4tPm9ialswXTsKPj4+ICsgICAgICAgICAg ICAgb2JqWzFdID0gc3Bpbi0+b2JqWzFdOwoKaWd0X2Fzc2VydF9lcShJR1RfU1BJTl9CQVRDSCwg MSk7Cgo/Cgo+Pj4gKyAgICAgICAgICAgICBvYmpbMl0uaGFuZGxlID0gY3JlYXRlX3NlbWFwaG9y ZV90b19zcGlubmVyKGk5MTUsIHNwaW4pOwo+Pj4gKwo+Pj4gKyAgICAgICAgICAgICBlYi5idWZm ZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihvYmopOwo+Pj4gKyAgICAgICAgICAgICBlYi5yc3Zk MSA9IGN0eDsKPj4+ICsKPj4+ICsgICAgICAgICAgICAgKnN0b3AgPSAwOwo+Pj4gKyAgICAgICAg ICAgICBpZ3RfZm9yayhjaGlsZCwgY291bnQgKyAxKSB7Cj4+PiArICAgICAgICAgICAgICAgICAg ICAgaWd0X2xpc3RfZGVsKCZzcGluLT5saW5rKTsKPj4+ICsKPj4+ICsgICAgICAgICAgICAgICAg ICAgICBjdHggPSBnZW1fY29udGV4dF9jbG9uZShpOTE1LCBjdHgsCj4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTkxNV9DT05URVhUX0NMT05FX0VOR0lO RVMsIDApOwo+Pj4gKwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIHdoaWxlICghUkVBRF9PTkNF KCpzdG9wKSkgewo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BpbiA9IGlndF9z cGluX25ldyhpOTE1LAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAuY3R4ID0gY3R4LAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAuZW5naW5lID0gKDEgKyByYW5kKCkgJSBjb3VudCksCj4+Cj4+ IFdpdGggImNvdW50ICsgMSIgY2hpbGRyZW4gYW5kIHJhbmQgbG9hZCBteSBlbmQgdXAgdW5ldmVu IGFjcm9zcyBlbmdpbmVzCj4+IC0gYXJlIHlvdSBoYXBweSB3aXRoIHRoYXQ/Cj4gCj4gSXQncyB1 c2luZyByYW5kLCBpdCdzIGdvaW5nIHRvIGJlIHVuZXZlbi4gY291bnQgKyAxIGlzbid0IHNpZ25p ZmljYW50IGluCj4gYW55IHdheS4gSSBzdG9wcGVkIGFzIHNvb24gYXMgSSBoYWQgdGhlIHRlc3Qg cmVsaWFibHkgaGl0dGluZyB0aGUgaXNzdWUuCj4gCj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mbGFncyA9IElHVF9TUElOX1BPTExfUlVOKTsK Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlndF9zcGluX2J1c3l3YWl0X3VudGls X3N0YXJ0ZWQoc3Bpbik7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2xlZXAo NTAwMDApOwo+Pgo+PiA1MG1zLCBobSwgaWRlYWxseSB0aGVyZSBzaG91bGQgYmUgYSBwaXBlIHNp Z25hbCBiZWZvcmUgcGFyZW50IHN0YXJ0cyB0aGUKPj4gdGVzdCB0byBrbm93IGNoaWxkcmVuIGhh dmUgc3RhcnRlZC4gT3RoZXJ3aXNlIHBhcmVudCBjYW4gZmluaXNoIGJlZm9yZQo+PiB0aGV5IGV2 ZW4gc3RhcnQsIG5vPwo+IAo+IFRoZSBjaGlsZHJlbiBhcmUganVzdCB0byBwcm92aWRlIG5vaXNl LiBUaGUgcmVxdWlyZW1lbnQgaXMgdGhhdCB3ZSBoYXZlCj4gZW5vdWdoIGxvYWQgYWNyb3NzIHRo ZSBzeXN0ZW0gdG8gY2F1c2UgdGltZXNsaWNpbmcgdG8ga2ljayBpbi4KPiAgIAo+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWd0X3NwaW5fZnJlZShpOTE1LCBzcGluKTsKPj4+ICsg ICAgICAgICAgICAgICAgICAgICB9Cj4+PiArCj4+PiArICAgICAgICAgICAgICAgICAgICAgZ2Vt X2NvbnRleHRfZGVzdHJveShpOTE1LCBjdHgpOwo+Pj4gKyAgICAgICAgICAgICB9Cj4+PiArCj4+ PiArICAgICAgICAgICAgIGlndF91bnRpbF90aW1lb3V0KDUpIHsKPj4+ICsgICAgICAgICAgICAg ICAgICAgICBpZ3Rfc3Bpbl9yZXNldChzcGluKTsKPj4KPj4gV2hhdCBpcyB0aGUgcmVzZXQgZm9y Pwo+IAo+IFdlIGFyZSByZXVzaW5nIHRoZSBzcGlubmVyIGluc2lkZSB0aGUgbG9vcC4KPiAKPj4+ ICsKPj4+ICsgICAgICAgICAgICAgICAgICAgICAvKiBBOiBTdWJtaXQgdGhlIHNlbWFwaG9yZSB3 YWl0ICovCj4+PiArICAgICAgICAgICAgICAgICAgICAgZWIuYnVmZmVyX2NvdW50ID0gMzsKPj4+ ICsgICAgICAgICAgICAgICAgICAgICBlYi5mbGFncyA9ICgxICsgcmFuZCgpICUgY291bnQpIHwg STkxNV9FWEVDX0ZFTkNFX09VVDsKPj4+ICsgICAgICAgICAgICAgICAgICAgICBnZW1fZXhlY2J1 Zl93cihpOTE1LCAmZWIpOwo+Pj4gKwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIC8qIEI6IFN1 Ym1pdCB0aGUgc3Bpbm5lciAoaW4gcGFyYWxsZWwpICovCj4+Cj4+IEhvdyBpbiBwYXJhbGxlbCB3 aGVuIGl0IGlzIHRoZSBzYW1lIGNvbnRleHQgc28gdGhleSBhcmUgaW1wbGljaXRseSBpbiBvcmRl cj8KPiAKPiBEaWZmZXJlbnQgZW5naW5lcyB3aXRoIGRpZmZlcmVudCB0aW1lbGluZXMsIHVzaW5n IHRoZSBzdWJtaXQgdG8gcmVxdWVzdAo+IHBhcmFsbGVsIGV4ZWN1dGlvbi4KClllYWggSSBraW5k IG9mIG1pc3NlZCBhIGZldyB0aGluZ3MuIExvb2tzIGdvb2QuIEZvciBjb21wbGV0ZW5lc3MgeW91 IApzaG91bGQgYWxzbyBhZGQgYSBmbGF2b3VyIHdoaWNoIGFjdHVhbGx5IHNldHMgdXAgdGhlIGJv bmQgc28gdGhlICJpZiAKKGJvbmQpIiBwYXRoIGluIHZpcnR1YWxfYm9uZF9leGVjdXRlIGlzIGFs c28gZXhlcmNpc2VkLiBCdXQgdGhpcyBsb29rcyBnb29kLgoKUmV2aWV3ZWQtYnk6IFR2cnRrbyBV cnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CgpSZWdhcmRzLAoKVHZydGtvCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWls aW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2