From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 551AF6E05C for ; Wed, 13 Mar 2019 07:42:01 +0000 (UTC) References: <20190312171728.3352-1-andi.shyti@intel.com> <20190312171728.3352-3-andi.shyti@intel.com> From: Tvrtko Ursulin Message-ID: <4a0d1683-8543-78d5-d3a5-3e923d4709a8@linux.intel.com> Date: Wed, 13 Mar 2019 07:41:57 +0000 MIME-Version: 1.0 In-Reply-To: <20190312171728.3352-3-andi.shyti@intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH v11 2/6] lib/i915: add gem_engine_topology library 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: Andi Shyti , IGT dev Cc: Andi Shyti List-ID: Ck9uIDEyLzAzLzIwMTkgMTc6MTcsIEFuZGkgU2h5dGkgd3JvdGU6Cj4gVGhlIGdlbV9lbmdpbmVf dG9wb2xvZ3kgbGlicmFyeSBpcyBhIHNldCBvZiBmdW5jdGlvbnMgdGhhdAo+IGludGVyZmFjZSB3 aXRoIHRoZSBxdWVyeSBhbmQgZ2V0cGFyYW0vc2V0cGFyYW0gaW9jdGxzLgo+IAo+IFRoZSBsaWJy YXJ5J3MgdGhyZWUgbWFpbiBhY2Nlc3MgcG9pbnRzIGFyZToKPiAKPiAgIC0gZ2V0X2FjdGl2ZV9l bmdpbmVzKCkKPiAgIC0gX19nZW1fcHJlcGFyZV9jb250ZXh0X2VuZ2luZXMoKQo+ICAgLSBpZ3Rf cmVxdWlyZV9nZW1fZW5naW5lX2xpc3QoKQo+IAo+IFRoZSBmaXJzdCB0d28gZnVuY3Rpb25zIGFy ZSBzaW1pbGFyLCB3aXRoIHRoZSBkaWZmZXJlbmNlIHRoYXQgdGhlCj4gJ2dlbV9zZXRfY29udGV4 dF9nZXRfZW5naW5lcygpJyBzZXRzIHRoZSBlbmdpbmUgYmVmb3JlIHJldHVybmluZwo+IHRoZSBl bmdpbmUgbGlzdCBpbiBhICdpbnRlbF9leGVjdXRpb25fZW5naW5lMicgdHlwZSBhcnJheS4KPiBB bm90aGVyIGltcHJvdGFudCBkaWZmZXJlbmNlIGlzIHRoYXQgdGhlIGZpcnN0IGZ1bmN0aW9uIHdv cmtzCj4gb25seSB3aXRoIHRoZSBnZXRwYXJhbS9zZXRwYXJhbSBhbmQgcXVlcnkgaW9jdGxzIGFy ZSBpbXBsZW1lbnRlZAo+IGFuZCBpdCByZXR1cm4gJ05VTEwnIGluIHRoZSBvdGhlciBjYXNlLgo+ IEl0IGNhbiBiZSBhbHNvIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgY3VycmVudCBrZXJuZWwg Y29udGFpbnMKPiB0aGUgbmV3IEFQSS4KPiAKPiAnX19nZW1fcHJlcGFyZV9jb250ZXh0X2VuZ2lu ZXMoKScgZnVuY3Rpb24sIGF0IHRoZSBmaXJzdCBjYWxsCj4gZ2VuZXJhdGVzIHRoZSBhcnJheSBv ZiBhY3RpdmUgZW5naW5lcyAoZWl0aGVyIHBoeXNpY2FsIG9yCj4gdmlydHVhbCkgY2FsbGVkICdp bnRlbF9hY3RpdmVfZW5naW5lczInLgo+IElmIHRoZSBkcml2ZXIgY2Fubm90IGJlIHF1ZXJpZWQs IHRoZSAnaW50ZWxfYWN0aXZlX2VuZ2luZXMyJwo+IGFycmF5IHBvaW50cyB0byB0aGUgZXhpc2l0 aW5nICdpbnRlbF9leGVjdXRpb25fZW5naW5lczInIHdoaWNoCj4gaGFzIGJlZW4gcHJldmlvdXNs eSBkZWZpbmVkLgo+IAo+IFRoZSB2YWx1ZSBvZiB0aGUgJ2ludGVsX2FjdGl2ZV9lbmdpbmVzMicg d2lsbCBiZSB1c2VkIGluIGZ1cnRoZXIKPiBjYWxscyB0byBjaGVjayB3aGV0aGVyIHRoZSBhYm92 ZSBtZW50aW9uZWQgaW9jdGxzIGFyZSBpbXBsZW1lbnRlZAo+IHdpdGhvdXQgdGhlIG5lZWQgdG8g Y2FsbCBnZXRwYXJhbSgpLgo+IAo+IFRoZSAnaWd0X3JlcXVpcmVfZ2VtX2VuZ2luZV9saXN0KCkn IGNhdXNlcyB0aGUgdGVzdCB0byBmYWlsIGluCj4gY2FzZSB0aGUgcmVxdWlyZWQgaW9jdGxzIGFy ZSBub3QgaW1wbGVtZW50ZWQuCj4gCj4gU2lnbmVkLW9mZi1ieTogQW5kaSBTaHl0aSA8YW5kaS5z aHl0aUBpbnRlbC5jb20+Cj4gLS0tCj4gSGkgVHZydGtvLAo+IAo+IHRoZSBvbmx5IHRoaW5nIEkg bGVmdCB1bnRvdWNoZWQgaGVyZSBpcyB0aGUgZml4ZWQgU0laRU9GX1FVRVJZLAo+IGV2ZW4gdGhv dWdoIHRoZSBxdWVyeSBpb2N0bCBkb2Vzbid0IGhhdmUgYW55IGxpbWl0YXRpb24gb24gcXVlcnkK PiBzaXplLiBUaGUgcmVhc29uIGlzIGJlY2F1c2Ugd2UndmUgYmVlbiBkaXNjdXNzaW5nIHdpdGgg Q2hyaXMKPiBzZXR0aW5nIGEgZml4ZWQgc2l6ZSB0byBwcmlvcml0aXNlIHN0YWNrIGFsbG9jYXRp b24gb3ZlciBoZWFwCj4gYWxsb2NhdGlvbiBzbyB0aGF0IEkgY2hhbmdlZCBpdCB0byB0aGUgd2F5 IGlzIGRvbmUgbm93IGZyb20gdGhlCj4gd2F5IHlvdSByZWNvbW1lbmRlZCBhdCB0aGUgYmVnaW5u aW5nIChhbHJlYWR5KS4KPiAKPiBBbmRpCj4gCj4gICBsaWIvTWFrZWZpbGUuc291cmNlcyAgICAg ICAgICAgfCAgIDIgKwo+ICAgbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jIHwgMTkzICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgbGliL2k5MTUvZ2VtX2VuZ2luZV90 b3BvbG9neS5oIHwgIDMzICsrKysrKwo+ICAgbGliL2lndF9ndC5jICAgICAgICAgICAgICAgICAg IHwgICAyICstCj4gICBsaWIvaWd0X2d0LmggICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KPiAg IGxpYi9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAgMSArCj4gICA2IGZpbGVzIGNoYW5n ZWQsIDIzMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ICAgY3JlYXRlIG1vZGUgMTAw NjQ0IGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYwo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaAo+IAo+IGRpZmYgLS1naXQgYS9saWIvTWFr ZWZpbGUuc291cmNlcyBiL2xpYi9NYWtlZmlsZS5zb3VyY2VzCj4gaW5kZXggY2YyNzIwOTgxNzA3 Li43NTdiZDdhMTdlYmUgMTAwNjQ0Cj4gLS0tIGEvbGliL01ha2VmaWxlLnNvdXJjZXMKPiArKysg Yi9saWIvTWFrZWZpbGUuc291cmNlcwo+IEBAIC0xMyw2ICsxMyw4IEBAIGxpYl9zb3VyY2VfbGlz dCA9CSAJXAo+ICAgCWk5MTUvZ2VtX3JpbmcuYwlcCj4gICAJaTkxNS9nZW1fbW1hbi5jCVwKPiAg IAlpOTE1L2dlbV9tbWFuLmgJXAo+ICsJaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmMJXAo+ICsJ aTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmgJXAo+ICAgCWk5MTVfM2QuaAkJXAo+ICAgCWk5MTVf cmVnLmgJCVwKPiAgIAlpOTE1X3BjaWlkcy5oCQlcCj4gZGlmZiAtLWdpdCBhL2xpYi9pOTE1L2dl bV9lbmdpbmVfdG9wb2xvZ3kuYyBiL2xpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYwo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi42ZDZjYjg1YjBhMjYKPiAt LS0gL2Rldi9udWxsCj4gKysrIGIvbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jCj4gQEAg LTAsMCArMSwxOTMgQEAKPiArLyoKPiArICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9y YXRpb24KPiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3 YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwK PiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk aW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k aWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiArICogYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiAr ICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50 aWFsIHBvcnRpb25zIG9mIHRoZQo+ICsgKiBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ICsg KiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJ TSwgREFNQUdFUyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQg T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVS IERFQUxJTkdTCj4gKyAqIElOIFRIRSBTT0ZUV0FSRS4KPiArICovCj4gKwo+ICsjaW5jbHVkZSAi ZHJtdGVzdC5oIgo+ICsjaW5jbHVkZSAiaWd0X2d0LmgiCj4gKyNpbmNsdWRlICJpb2N0bF93cmFw cGVycy5oIgo+ICsKPiArI2luY2x1ZGUgImk5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oIgo+ICsK PiArI2RlZmluZSBTSVpFT0ZfQ1RYX1BBUkFNCW9mZnNldG9mKHN0cnVjdCBpOTE1X2NvbnRleHRf cGFyYW1fZW5naW5lcywgXAo+ICsJCQkJCWNsYXNzX2luc3RhbmNlW0k5MTVfRVhFQ19SSU5HX01B U0sgKyAxXSkKPiArI2RlZmluZSBTSVpFT0ZfUVVFUlkJCW9mZnNldG9mKHN0cnVjdCBkcm1faTkx NV9xdWVyeV9lbmdpbmVfaW5mbywgXAo+ICsJCQkJCWVuZ2luZXNbSTkxNV9FWEVDX1JJTkdfTUFT SyArIDFdKQo+ICsKPiArc3RhdGljIHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqaW50 ZWxfYWN0aXZlX2VuZ2luZXMyOwo+ICtzdGF0aWMgYm9vbCBjdHhfaXNfc2V0Owo+ICsKPiArc3Rh dGljIGludCBfX2dlbV9xdWVyeShpbnQgZmQsIHN0cnVjdCBkcm1faTkxNV9xdWVyeSAqcSkKPiAr ewo+ICsJaW50IGVyciA9IDA7Cj4gKwo+ICsJaWYgKGlndF9pb2N0bChmZCwgRFJNX0lPQ1RMX0k5 MTVfUVVFUlksIHEpKQo+ICsJCWVyciA9IC1lcnJubzsKPiArCj4gKwllcnJubyA9IDA7Cj4gKwly ZXR1cm4gZXJyOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBnZW1fcXVlcnkoaW50IGZkLCBzdHJ1 Y3QgZHJtX2k5MTVfcXVlcnkgKnEpCj4gK3sKPiArCWlndF9hc3NlcnRfZXEoX19nZW1fcXVlcnko ZmQsIHEpLCAwKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgcXVlcnlfZW5naW5lcyhpbnQgZmQs Cj4gKwkJCSAgc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2VuZ2luZV9pbmZvICpxdWVyeV9lbmdpbmVz KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSBpdGVtID0geyB9Owo+ICsJc3Ry dWN0IGRybV9pOTE1X3F1ZXJ5IHF1ZXJ5ID0geyB9Owo+ICsKPiArCWl0ZW0ucXVlcnlfaWQgPSBE Uk1fSTkxNV9RVUVSWV9FTkdJTkVfSU5GTzsKPiArCXF1ZXJ5Lml0ZW1zX3B0ciA9IHRvX3VzZXJf cG9pbnRlcigmaXRlbSk7Cj4gKwlxdWVyeS5udW1faXRlbXMgPSAxOwo+ICsJaXRlbS5sZW5ndGgg PSBTSVpFT0ZfUVVFUlk7Cj4gKwo+ICsJaXRlbS5kYXRhX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihx dWVyeV9lbmdpbmVzKTsKPiArCj4gKwlnZW1fcXVlcnkoZmQsICZxdWVyeSk7Cj4gK30KPiArCj4g K3N0YXRpYyB2b2lkIHNldF9jdHhfcGFyYW1fZW5naW5lcyhpbnQgZmQsIHVpbnQzMl90IGN0eF9p ZCkKPiArewo+ICsJc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzICpjdHhfZW5naW5l Owo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIGN0eF9wYXJhbTsKPiArCWNv bnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTI7Cj4gKwl1aW50OF90IGJ1ZmZb U0laRU9GX0NUWF9QQVJBTV0gPSB7IH07Cj4gKwlpbnQgaTsKPiArCj4gKwlpZiAoY3R4X2lzX3Nl dCkKPiArCQlyZXR1cm47CgpBIGdsb2JhbCBjdHhfaXNfc2V0IGJvb2wgZG9lc24ndCB3b3JrIHdp dGggcGFzc2VkIGluIGN0eF9pZCBJIHRoaW5rIT8KCkJ1dCBtb3JlIGltcG9ydGFudGx5Li4gY291 bGQgeW91IHRyeSBhbmQgbWFrZSB0aGUgaXRlcmF0b3Igd29yayBvZiB0aGUgCmxvY2FsIGN0eC5n ZXRfZW5naW5lcygpIHF1ZXJ5PyBPbmx5IGNvbmZpZ3VyaW5nIHRoZSBjdHggbWFwIHRvIGluY2x1 ZGUgCmFsbCBlbmdpbmVzIGlmIG5vdCBhbHJlYWR5IHNldC4KCkNocmlzIGhhZCBhIHN1Z2dlc3Rp b24gaW4gdGhlIHByZXZpb3VzIHBvc3RpbmcgdG8gdXNlIGFuIGl0ZXJhdG9yIHN0cnVjdCAKd2hp Y2ggSSB0aGluayBoYXMgbWVyaXQgc2luY2UgaXQgaGlkZXMgdGhlIGV4cGxpY2l0IGluZGV4IHZh ci9wYXJhbS4gCigxNTUxNzkyOTYzMjcuMjc0MDUuMTQwMTk0Njg2Njg0MTEyNDQ1MTJAc2t5bGFr ZS1hbHBvcnRob3VzZS1jb20pCgpBbmQgdGhlbiBJJ2QgZHJvcCB0aGUgZm9yX2VhY2hfZW5naW5l MiBhbmQganVzdCBjb252ZXJ0IApmb3JfZWFjaF9lbmdpbmVfY2xhc3NfaW5zdGFuY2Ugc3RyYWln aHQgYXdheS4gT25seSBvbmUgdGVzdCB1c2VzIGl0IHNvIApzaG91bGRuJ3QgYmUgdG9vIGhhcmQg KHBlcmZfcG11KS4KClRoaXMgd2lsbCBJIHRoaW5rIHJlcXVpcmUgYWRkaW5nIHRoZSBnZW1fc2V0 X2ViX2VuZ2luZSBoZWxwZXIgYW5kIApwb3NzaWJseSBhZGRpbmcgc29tZSBoZWxwZXJzIHRvIGFs bG93IHVzYWdlIHdpdGggc3BpbiBiYXRjaGVzLgoKV2Ugd2FudCB0byBnZXQgYSBiZXR0ZXIgdmll dyBvZiB1c2FiaWxpdHkgaW4gZnV0dXJlIElHVCBjb2RlIGFuZCBJIHRoaW5rIAp0aGUgc2VyaWVz IG5lZWRzIHRvIGJlIGNvbXBsZXRlIGluIHRoaXMgcmVzcGVjdC4KClJlZ2FyZHMsCgpUdnJ0a28K Cj4gKwo+ICsJY3R4X2VuZ2luZSA9IChzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMg KikgYnVmZjsKPiArCj4gKwljdHhfcGFyYW0uY3R4X2lkID0gY3R4X2lkOwo+ICsJY3R4X3BhcmFt LnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVM7Cj4gKwo+ICsJY3R4X2VuZ2luZS0+ ZXh0ZW5zaW9ucyA9IDA7Cj4gKwlmb3IgKGkgPSAwLCBlMiA9IGludGVsX2FjdGl2ZV9lbmdpbmVz MjsgZTItPm5hbWU7IGkrKywgZTIrKykgewo+ICsJCWN0eF9lbmdpbmUtPmNsYXNzX2luc3RhbmNl W2ldLmVuZ2luZV9jbGFzcyA9IGUyLT5jbGFzczsKPiArCQljdHhfZW5naW5lLT5jbGFzc19pbnN0 YW5jZVtpXS5lbmdpbmVfaW5zdGFuY2UgPSBlMi0+aW5zdGFuY2U7Cj4gKwl9Cj4gKwo+ICsJY3R4 X3BhcmFtLnNpemUgPSBvZmZzZXRvZih0eXBlb2YoKmN0eF9lbmdpbmUpLCBjbGFzc19pbnN0YW5j ZVtpICsgMV0pOwo+ICsJY3R4X3BhcmFtLnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKGN0eF9lbmdp bmUpOwo+ICsKPiArCWdlbV9jb250ZXh0X3NldF9wYXJhbShmZCwgJmN0eF9wYXJhbSk7Cj4gKwo+ ICsJY3R4X2lzX3NldCA9IHRydWU7Cj4gK30KPiArCj4gKy8qCj4gKyAqIEluaXRpYWxpemVzIHRo ZSBsaXN0IG9mIGVuZ2luZXMuCj4gKyAqCj4gKyAqIFJldHVybnM6Cj4gKyAqCj4gKyAqICAtIDAg aW4gY2FzZSBvZiBzdWNjZXNzIGFuZCB0aGUgZ2V0L3NldF9wYXJhbSBpb2N0bHMgYXJlIGltcGxl bWVudGVkCj4gKyAqICAtIC1FTk9ERVYgaW4gY2FzZSBvZiBzdWNjZXNzIGJ1dCBJOTE1X0NPTlRF WFRfUEFSQU1fRU5HSU5FUyBpcyBub3QKPiArICogICAgaW1wbGVtZW50ZWQgaW4gRFJNX0lPQ1RM X0k5MTVfR0VNX0NPTlRFWFRfR0VUUEFSQU0gaW9jdGwuCj4gKyAqLwo+ICtzdGF0aWMgaW50IGlu aXRfZW5naW5lX2xpc3QoaW50IGZkKQo+ICt7Cj4gKwljb25zdCBjaGFyICpjbGFzc19uYW1lc1td ID0geyAicmNzIiwgImJjcyIsICJ2Y3MiLCAidmVjcyIgfTsKPiArCXN0cnVjdCBkcm1faTkxNV9x dWVyeV9lbmdpbmVfaW5mbyAqcXVlcnlfZW5naW5lOwo+ICsJdW5zaWduZWQgY2hhciBxdWVyeV9i dWZmZXJbU0laRU9GX1FVRVJZXSA9IHsgfTsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4 dF9wYXJhbSBjdHhfcGFyYW0gPSB7Cj4gKwkJLnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFNX0VO R0lORVMsCj4gKwl9Owo+ICsJaW50IGk7Cj4gKwo+ICsJLyogdGhlIGxpc3QgaXMgYWxyZWFkeSBp bml0aWFsaXplZCAqLwo+ICsJaWYgKGludGVsX2FjdGl2ZV9lbmdpbmVzMikKPiArCQlyZXR1cm4g MDsKPiArCj4gKwkvKgo+ICsJICogV2UgY2hlY2sgZmlyc3Qgd2hldGhlciB0aGUgSTkxNV9DT05U RVhUX1BBUkFNX0VOR0lORVMgcGFyYW1ldGVyIGlzCj4gKwkgKiBzdXBwb3J0ZWQgYnkgdGhlIHJ1 bm5pbmcga2VybmVsLiBJZiBub3QsIF9fZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKCkKPiArCSAqIHdp bGwgcmV0dXJuIC1FSU5WQUwgd2hpY2gsIGF0IHRoaXMgcG9pbnQsIGlzIG5vdCBuZWNlc3Nhcmls eSBhCj4gKwkgKiBmYWlsdXJlIGJ1dCBpdCBtZWFucyB0aGF0IHdlIG5lZWQgdG8gZmFsbCBiZWNr IHRvIHBvbGxpbmcgdGhlIGVuZ2luZXMKPiArCSAqIGRpcmVjdGx5IGZyb20gaW50ZWxfZXhlY3V0 aW9uX2VuZ2luZXMyW10uCj4gKwkgKgo+ICsJICogV2Ugd2lsbCByZXR1cm4gLUVOT0RFViB3aXRo IHRoZSBtZWFuaW5nIG9mIG1pc3NpbmcgaW50ZXJmYWNlCj4gKwkgKi8KPiArCWlmIChfX2dlbV9j b250ZXh0X2dldF9wYXJhbShmZCwgJmN0eF9wYXJhbSkpCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4g Kwo+ICsJcXVlcnlfZW5naW5lID0gKHN0cnVjdCBkcm1faTkxNV9xdWVyeV9lbmdpbmVfaW5mbyAq KSBxdWVyeV9idWZmZXI7Cj4gKwlxdWVyeV9lbmdpbmVzKGZkLCBxdWVyeV9lbmdpbmUpOwo+ICsK PiArCWludGVsX2FjdGl2ZV9lbmdpbmVzMiA9IG1hbGxvYygocXVlcnlfZW5naW5lLT5udW1fZW5n aW5lcyArIDEpICoKPiArCQkJCSAgICAgICBzaXplb2YoKmludGVsX2FjdGl2ZV9lbmdpbmVzMikp Owo+ICsJaWd0X2Fzc2VydChpbnRlbF9hY3RpdmVfZW5naW5lczIpOwo+ICsKPiArCWZvciAoaSA9 IDA7IGkgPCBxdWVyeV9lbmdpbmUtPm51bV9lbmdpbmVzOyBpKyspIHsKPiArCQljaGFyICpuYW1l Owo+ICsJCV9fdTE2IGNsYXNzID0gcXVlcnlfZW5naW5lLT5lbmdpbmVzW2ldLmVuZ2luZV9jbGFz czsKPiArCQlfX3UxNiBpbnN0YW5jZSA9IHF1ZXJ5X2VuZ2luZS0+ZW5naW5lc1tpXS5lbmdpbmVf aW5zdGFuY2U7Cj4gKwo+ICsJCWludGVsX2FjdGl2ZV9lbmdpbmVzMltpXS5jbGFzcyA9IGNsYXNz Owo+ICsJCWludGVsX2FjdGl2ZV9lbmdpbmVzMltpXS5pbnN0YW5jZSA9IGluc3RhbmNlOwo+ICsK PiArCQkvKiBpZiB3ZSBkb24ndCByZWNvZ25pc2UgdGhlIGNsYXNzLCB0aGVuIHdlIG1hcmsgaXQg YXMgInVuayIgKi8KPiArCQlpZiAoY2xhc3MgPj0gQVJSQVlfU0laRShjbGFzc19uYW1lcykpCj4g KwkJCWlndF9hc3NlcnQoYXNwcmludGYoJm5hbWUsICJ1bmstJWQ6JWQiLAo+ICsJCQkJCSAgICBj bGFzcywgaW5zdGFuY2UpID4gMCk7Cj4gKwkJZWxzZQo+ICsJCQlpZ3RfYXNzZXJ0KGFzcHJpbnRm KCZuYW1lLCAiJXMlZCIsCj4gKwkJCQkJICAgIGNsYXNzX25hbWVzW2NsYXNzXSwgaW5zdGFuY2Up ID4gMCk7Cj4gKwo+ICsJCWludGVsX2FjdGl2ZV9lbmdpbmVzMltpXS5uYW1lID0gbmFtZTsKPiAr CX0KPiArCj4gKwkvKiBOVUxMIHZhbHVlIHNlbnRpbmVsICovCj4gKwlpbnRlbF9hY3RpdmVfZW5n aW5lczJbaV0ubmFtZSA9IE5VTEw7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0cnVj dCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZ2V0X2FjdGl2ZV9lbmdpbmVzKGludCBmZCkKPiAr ewo+ICsJaWYgKGluaXRfZW5naW5lX2xpc3QoZmQpKQo+ICsJCXJldHVybiBOVUxMOwo+ICsKPiAr CXJldHVybiBpbnRlbF9hY3RpdmVfZW5naW5lczI7Cj4gK30KPiArCj4gK3N0cnVjdCBpbnRlbF9l eGVjdXRpb25fZW5naW5lMiAqX19nZW1fcHJlcGFyZV9jb250ZXh0X2VuZ2luZXMoaW50IGZkLAo+ ICsJCQkJCQkJICAgIHVpbnQzMl90IGN0eF9pZCkKPiArewo+ICsJc3RydWN0IGludGVsX2V4ZWN1 dGlvbl9lbmdpbmUyICphY3RpdmVfZW5naW5lcyA9IGdldF9hY3RpdmVfZW5naW5lcyhmZCk7Cj4g Kwo+ICsJaWYgKCFhY3RpdmVfZW5naW5lcykgewo+ICsJCWlndF9kZWJ1ZygidXNpbmcgcHJlLWFs bG9jYXRlZCBlbmdpbmUgbGlzdFxuIik7Cj4gKwkJcmV0dXJuIGludGVsX2V4ZWN1dGlvbl9lbmdp bmVzMjsKPiArCX0KPiArCj4gKwlzZXRfY3R4X3BhcmFtX2VuZ2luZXMoZmQsIGN0eF9pZCk7Cj4g Kwo+ICsJcmV0dXJuIGludGVsX2FjdGl2ZV9lbmdpbmVzMjsKPiArfQo+ICsKPiArdm9pZCBpZ3Rf cmVxdWlyZV9nZW1fZW5naW5lX2xpc3QoaW50IGZkKQo+ICt7Cj4gKwlpZ3RfcmVxdWlyZSghaW5p dF9lbmdpbmVfbGlzdChmZCkpOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2xpYi9pOTE1L2dlbV9lbmdp bmVfdG9wb2xvZ3kuaCBiL2xpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaAo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi44OGU5MDI2MTBhZDgKPiAtLS0gL2Rl di9udWxsCj4gKysrIGIvbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oCj4gQEAgLTAsMCAr MSwzMyBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+ ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0 byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0 aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUK PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xs b3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJh Z3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y dGlvbnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP Ugo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MKPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgR0VNX0VOR0lO RV9UT1BPTE9HWV9ICj4gKyNkZWZpbmUgR0VNX0VOR0lORV9UT1BPTE9HWV9ICj4gKwo+ICtzdHJ1 Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmdldF9hY3RpdmVfZW5naW5lcyhpbnQgZmQpOwo+ ICtzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKl9fZ2VtX3ByZXBhcmVfY29udGV4dF9l bmdpbmVzKGludCBmZCwKPiArCQkJCQkJCSAgICB1aW50MzJfdCBjdHhfaWQpOwo+ICsKPiArdm9p ZCBpZ3RfcmVxdWlyZV9nZW1fZW5naW5lX2xpc3QoaW50IGZkKTsKPiArCj4gKyNlbmRpZiAvKiBH RU1fRU5HSU5FX1RPUE9MT0dZX0ggKi8KPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9ndC5jIGIvbGli L2lndF9ndC5jCj4gaW5kZXggYzk4YTc1NTNiN2ZlLi41NGM3MWU1ZTcxODYgMTAwNjQ0Cj4gLS0t IGEvbGliL2lndF9ndC5jCj4gKysrIGIvbGliL2lndF9ndC5jCj4gQEAgLTU3Nyw3ICs1NzcsNyBA QCBib29sIGdlbV9jYW5fc3RvcmVfZHdvcmQoaW50IGZkLCB1bnNpZ25lZCBpbnQgZW5naW5lKQo+ ICAgCXJldHVybiB0cnVlOwo+ICAgfQo+ICAgCj4gLWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRp b25fZW5naW5lMiBpbnRlbF9leGVjdXRpb25fZW5naW5lczJbXSA9IHsKPiArc3RydWN0IGludGVs X2V4ZWN1dGlvbl9lbmdpbmUyIGludGVsX2V4ZWN1dGlvbl9lbmdpbmVzMltdID0gewo+ICAgCXsg InJjczAiLCBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVIsIDAgfSwKPiAgIAl7ICJiY3MwIiwgSTkx NV9FTkdJTkVfQ0xBU1NfQ09QWSwgMCB9LAo+ICAgCXsgInZjczAiLCBJOTE1X0VOR0lORV9DTEFT U19WSURFTywgMCB9LAo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2d0LmggYi9saWIvaWd0X2d0LmgK PiBpbmRleCA1NGU5NWRhOTgwODQuLmY0YmQ2YzIyYTgxYSAxMDA2NDQKPiAtLS0gYS9saWIvaWd0 X2d0LmgKPiArKysgYi9saWIvaWd0X2d0LmgKPiBAQCAtOTEsNyArOTEsNyBAQCBib29sIGdlbV9y aW5nX2hhc19waHlzaWNhbF9lbmdpbmUoaW50IGZkLCB1bnNpZ25lZCBpbnQgcmluZyk7Cj4gICAK PiAgIGJvb2wgZ2VtX2Nhbl9zdG9yZV9kd29yZChpbnQgZmQsIHVuc2lnbmVkIGludCBlbmdpbmUp Owo+ICAgCj4gLWV4dGVybiBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgewo+ ICtleHRlcm4gc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyIHsKPiAgIAljb25zdCBjaGFy ICpuYW1lOwo+ICAgCWludCBjbGFzczsKPiAgIAlpbnQgaW5zdGFuY2U7Cj4gZGlmZiAtLWdpdCBh L2xpYi9tZXNvbi5idWlsZCBiL2xpYi9tZXNvbi5idWlsZAo+IGluZGV4IDBlYjU1ODVkNzJiOS4u M2NjNTJmOTdjOGJmIDEwMDY0NAo+IC0tLSBhL2xpYi9tZXNvbi5idWlsZAo+ICsrKyBiL2xpYi9t ZXNvbi5idWlsZAo+IEBAIC01LDYgKzUsNyBAQCBsaWJfc291cmNlcyA9IFsKPiAgIAknaTkxNS9n ZW1fc3VibWlzc2lvbi5jJywKPiAgIAknaTkxNS9nZW1fcmluZy5jJywKPiAgIAknaTkxNS9nZW1f bW1hbi5jJywKPiArCSdpOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYycsCj4gICAJJ2lndF9jb2xv cl9lbmNvZGluZy5jJywKPiAgIAknaWd0X2RlYnVnZnMuYycsCj4gICAJJ2lndF9kZXZpY2UuYycs Cj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1k ZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==