From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v2 4/5] drm/i915/guc: rework guc_add_workqueue_item() Date: Fri, 29 Apr 2016 16:44:24 +0100 Message-ID: <57238158.6090903@linux.intel.com> References: <1461780195-17434-1-git-send-email-david.s.gordon@intel.com> <1461780195-17434-4-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 931996EFC6 for ; Fri, 29 Apr 2016 15:44:27 +0000 (UTC) In-Reply-To: <1461780195-17434-4-git-send-email-david.s.gordon@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDI3LzA0LzE2IDE5OjAzLCBEYXZlIEdvcmRvbiB3cm90ZToKPiBNb3N0bHkgbGl0dGxlIG9w dGltaXNhdGlvbnM7IGZvciBpbnN0YW5jZSwgaWYgdGhlIGRyaXZlciBpcyBjb3JyZWN0bHkKPiBm b2xsb3dpbmcgdGhlIHN1Ym1pc3Npb24gcHJvdG9jb2wsIHRoZSAib3V0IG9mIHNwYWNlIiBjb25k aXRpb24gaXMKPiBpbXBvc3NpYmxlLCBzbyB0aGUgcHJldmlvdXMgcnVudGltZSBXQVJOX09OKCkg aXMgcHJvbW90ZWQgdG8gYQo+IEdFTV9CVUdfT04oKSBmb3IgYSBtb3JlIGRyYW1hdGljIGVmZmVj dCBpbiBkZXZlbG9wbWVudCBhbmQgbGVzcyBpbXBhY3QKPiBpbiBlbmQtdXNlciBzeXN0ZW1zLgo+ Cj4gU2ltaWxhcmx5IHdlIGNhbiByZXBsYWNlIG90aGVyIFdBUk5fT04oKSBjb25kaXRpb25zIHRo YXQgZG9uJ3QgcmVsYXRlIHRvCj4gdGhlIGhhcmR3YXJlIHN0YXRlIHdpdGggZWl0aGVyIEJVSUxE X0JVR19PTigpIGZvciBjb21waWxlLXRpbWUtCj4gZGV0ZWN0YWJsZSBpc3N1ZXMsIG9yIEdFTV9C VUdfT04oKSBmb3IgbG9naWNhbCAiY2FuJ3QgaGFwcGVuIiBlcnJvcnMuCj4KPiBXaXRoIHRob3Nl IGNoYW5nZXMsIHdlIGNhbiBjb252ZXJ0IGl0IHRvIHZvaWQsIGFzIHN1Z2dlc3RlZCBieSBDaHJp cwo+IFdpbHNvbiwgYW5kIHVwZGF0ZSB0aGUgY2FsbGluZyBjb2RlIGFwcHJvcHJpYXRlbHkuCj4K PiBTaWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgo+ IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPgo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgNjkgKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMu aCAgICAgICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3 aWYuaCAgICAgIHwgIDMgKy0KPiAgIDMgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwg MzcgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlz c2lvbi5jCj4gaW5kZXggNjYyNmVmZi4uNGQyZWE4NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiBAQCAtNDcwLDIzICs0NzAsMjggQEAgaW50IGk5 MTVfZ3VjX3dxX2NoZWNrX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVz dCkKPiAgIAlyZXR1cm4gLUVBR0FJTjsKPiAgIH0KPgo+IC1zdGF0aWMgaW50IGd1Y19hZGRfd29y a3F1ZXVlX2l0ZW0oc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ2MsCj4gLQkJCQkgIHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4gK3N0YXRpYyB2b2lkIGd1Y19hZGRfd29ya3F1ZXVl X2l0ZW0oc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ2MsCj4gKwkJCQkgICBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJxKQo+ICAgewo+ICsJLyogd3FpX2xlbiBpcyBpbiBEV29yZHMsIGFu ZCBkb2VzIG5vdCBpbmNsdWRlIHRoZSBvbmUtd29yZCBoZWFkZXIgKi8KPiArCWNvbnN0IHNpemVf dCB3cWlfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZ3VjX3dxX2l0ZW0pOwoKQWdhaW4sIHUzMiBpcyBj b3JyZWN0IEkgdGhpbmsuCgo+ICsJY29uc3QgdTMyIHdxaV9sZW4gPSB3cWlfc2l6ZS9zaXplb2Yo dTMyKSAtIDE7Cj4gICAJc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2MgKmRlc2M7Cj4gICAJc3RydWN0 IGd1Y193cV9pdGVtICp3cWk7Cj4gICAJdm9pZCAqYmFzZTsKPiAtCXUzMiB0YWlsLCB3cV9sZW4s IHdxX29mZiwgc3BhY2U7Cj4gKwl1MzIgc3BhY2UsIHRhaWwsIHdxX29mZiwgd3FfcGFnZTsKPgo+ ICAgCWRlc2MgPSBnYy0+Y2xpZW50X2Jhc2UgKyBnYy0+cHJvY19kZXNjX29mZnNldDsKPiArCj4g KwkvKiBTcGFjZSB3YXMgY2hlY2tlZCBlYXJsaWVyLCBpbiBpOTE1X2d1Y193cV9jaGVja19zcGFj ZSgpIGFib3ZlICovCgpJdCBtYXkgYmUgYWJvdmUgaW4gdGhlIGZpbGUsIGJ1dCB0aGUgdHdvIGRv IG5vdCBjYWxsIG9uZSBhbm90aGVyIHNvIEkgCnJlY29tbWVuZCBzYXlpbmcgZXhhY3RseSB3aG8g Y2FsbGVkIGl0LgoKPiAgIAlzcGFjZSA9IENJUkNfU1BBQ0UoZ2MtPndxX3RhaWwsIGRlc2MtPmhl YWQsIGdjLT53cV9zaXplKTsKPiAtCWlmIChXQVJOX09OKHNwYWNlIDwgc2l6ZW9mKHN0cnVjdCBn dWNfd3FfaXRlbSkpKQo+IC0JCXJldHVybiAtRU5PU1BDOyAvKiBzaG91bGRuJ3QgaGFwcGVuICov Cj4gKwlHRU1fQlVHX09OKHNwYWNlIDwgd3FpX3NpemUpOwoKSXQgaXMgaW1wb3NzaWJsZSB0byBo aXQgdGhpcyBvbmx5IGJlY2F1c2Ugb2YgdGhlIHN0cnVjdF9tdXRleCBndWFyZGluZyAKdGhlIHdo b2xlIHRpbWUgd2luZG93IGZyb20gcmVxdWVzdCBjcmVhdGlvbiB0byBzdWJtaXNzaW9uLiBJZiBp biB0aGUgCmZ1dHVyZSwgbmVhciBvciBmYXIsIHRoYXQgZ2V0cyBmaXhlZCwgdGhlbiB0aGlzIHdp bGwgbmVlZCByZXdvcmtpbmcuCgpJIGRvbid0IGhhdmUgYW55IGJldHRlciBpZGVhcyB0aG91Z2gu CgpCdXQgYSBXQVJOX09OIGFuZCByZXR1cm4gd291bGQgYmUgYWxtb3N0IGFzIGdvb2QuIEV2ZXJ5 dGhpbmcgaXMgYmV0dGVyIAp0aGFuIGEgZGVhZCBtYWNoaW5lIG9uZSBjYW4ndCBzc2ggaW50by4u LgoKU28gSSBhcHBlYWwgdG8gbWFrZSB0aGlzIGEgV0FSTl9PTiBhbmQgcmV0dXJuLiBOb3RoaW5n IGJhZCB3b3VsZCBoYXBwZW4gCmFwYXJ0IGZyb20gc29mdHdhcmUgdGhpbmtpbmcgR1BVIGhhcyBo dW5nLgoKPgo+IC0JLyogcG9zdGluY3JlbWVudCBXUSB0YWlsIGZvciBuZXh0IHRpbWUgKi8KPiAt CXdxX29mZiA9IGdjLT53cV90YWlsOwo+IC0JZ2MtPndxX3RhaWwgKz0gc2l6ZW9mKHN0cnVjdCBn dWNfd3FfaXRlbSk7Cj4gLQlnYy0+d3FfdGFpbCAmPSBnYy0+d3Ffc2l6ZSAtIDE7Cj4gKwkvKiBU aGUgR3VDIGZpcm13YXJlIHdhbnRzIHRoZSB0YWlsIGluZGV4IGluIFFXb3Jkcywgbm90IGJ5dGVz ICovCj4gKwl0YWlsID0gcnEtPnRhaWw7CgpVc2VkIHRvIGJlIHNhbXBsZWQgZnJvbSBycS0+cmlu Z2J1Zi0+dGFpbCAtIGFyZSB0aG9zZSB0aGUgc2FtZT8KCj4gKwlHRU1fQlVHX09OKHRhaWwgJiA3 KTsKPiArCXRhaWwgPj49IDM7Cj4gKwlHRU1fQlVHX09OKHRhaWwgPiBXUV9SSU5HX1RBSUxfTUFY KTsKPgo+ICAgCS8qIEZvciBub3cgd29ya3F1ZXVlIGl0ZW0gaXMgNCBEV3M7IHdvcmtxdWV1ZSBi dWZmZXIgaXMgMiBwYWdlcy4gU28gd2UKPiAgIAkgKiBzaG91bGQgbm90IGhhdmUgdGhlIGNhc2Ug d2hlcmUgc3RydWN0dXJlIHdxaSBpcyBhY3Jvc3MgcGFnZSwgbmVpdGhlcgo+IEBAIC00OTUsMTkg KzUwMCwyMyBAQCBzdGF0aWMgaW50IGd1Y19hZGRfd29ya3F1ZXVlX2l0ZW0oc3RydWN0IGk5MTVf Z3VjX2NsaWVudCAqZ2MsCj4gICAJICogWFhYOiBpZiBub3QgdGhlIGNhc2UsIHdlIG5lZWQgc2F2 ZSBkYXRhIHRvIGEgdGVtcCB3cWkgYW5kIGNvcHkgaXQgdG8KPiAgIAkgKiB3b3JrcXVldWUgYnVm ZmVyIGR3IGJ5IGR3Lgo+ICAgCSAqLwo+IC0JV0FSTl9PTihzaXplb2Yoc3RydWN0IGd1Y193cV9p dGVtKSAhPSAxNik7Cj4gLQlXQVJOX09OKHdxX29mZiAmIDMpOwo+ICsJQlVJTERfQlVHX09OKHdx aV9zaXplICE9IDE2KTsKPgo+IC0JLyogd3Egc3RhcnRzIGZyb20gdGhlIHBhZ2UgYWZ0ZXIgZG9v cmJlbGwgLyBwcm9jZXNzX2Rlc2MgKi8KPiAtCWJhc2UgPSBrbWFwX2F0b21pYyhpOTE1X2dlbV9v YmplY3RfZ2V0X3BhZ2UoZ2MtPmNsaWVudF9vYmosCj4gLQkJCSh3cV9vZmYgKyBHVUNfREJfU0la RSkgPj4gUEFHRV9TSElGVCkpOwo+ICsJLyogcG9zdGluY3JlbWVudCBXUSB0YWlsIGZvciBuZXh0 IHRpbWUgKi8KPiArCXdxX29mZiA9IGdjLT53cV90YWlsOwo+ICsJZ2MtPndxX3RhaWwgKz0gd3Fp X3NpemU7Cj4gKwlnYy0+d3FfdGFpbCAmPSBnYy0+d3Ffc2l6ZSAtIDE7Cj4gKwlHRU1fQlVHX09O KHdxX29mZiAmICh3cWlfc2l6ZSAtIDEpKTsKClVzZSB0byBiZSB3cV9vZmYgJiAzLCBub3cgaXMg d3Ffb2ZmICYgMTUsIHdoaWNoIG9uZSBpcyBjb3JyZWN0PwoKPiArCj4gKwkvKiBXUSBzdGFydHMg ZnJvbSB0aGUgcGFnZSBhZnRlciBkb29yYmVsbCAvIHByb2Nlc3NfZGVzYyAqLwo+ICsJd3FfcGFn ZSA9ICh3cV9vZmYgKyBHVUNfREJfU0laRSkgPj4gUEFHRV9TSElGVDsKPiAgIAl3cV9vZmYgJj0g UEFHRV9TSVpFIC0gMTsKPiArCWJhc2UgPSBrbWFwX2F0b21pYyhpOTE1X2dlbV9vYmplY3RfZ2V0 X3BhZ2UoZ2MtPmNsaWVudF9vYmosIHdxX3BhZ2UpKTsKPiAgIAl3cWkgPSAoc3RydWN0IGd1Y193 cV9pdGVtICopKChjaGFyICopYmFzZSArIHdxX29mZik7Cj4KPiAtCS8qIGxlbiBkb2VzIG5vdCBp bmNsdWRlIHRoZSBoZWFkZXIgKi8KPiAtCXdxX2xlbiA9IHNpemVvZihzdHJ1Y3QgZ3VjX3dxX2l0 ZW0pIC8gc2l6ZW9mKHUzMikgLSAxOwo+ICsJLyogTm93IGZpbGwgaW4gdGhlIDQtd29yZCB3b3Jr IHF1ZXVlIGl0ZW0gKi8KPiAgIAl3cWktPmhlYWRlciA9IFdRX1RZUEVfSU5PUkRFUiB8Cj4gLQkJ CSh3cV9sZW4gPDwgV1FfTEVOX1NISUZUKSB8Cj4gKwkJCSh3cWlfbGVuIDw8IFdRX0xFTl9TSElG VCkgfAo+ICAgCQkJKHJxLT5lbmdpbmUtPmd1Y19pZCA8PCBXUV9UQVJHRVRfU0hJRlQpIHwKPiAg IAkJCVdRX05PX1dDRkxVU0hfV0FJVDsKPgo+IEBAIC01MTUsMTQgKzUyNCwxMCBAQCBzdGF0aWMg aW50IGd1Y19hZGRfd29ya3F1ZXVlX2l0ZW0oc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ2MsCj4g ICAJd3FpLT5jb250ZXh0X2Rlc2MgPSAodTMyKWludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcihy cS0+Y3R4LAo+ICAgCQkJCQkJCSAgICAgcnEtPmVuZ2luZSk7Cj4KPiAtCS8qIFRoZSBHdUMgZmly bXdhcmUgd2FudHMgdGhlIHRhaWwgaW5kZXggaW4gUVdvcmRzLCBub3QgYnl0ZXMgKi8KPiAtCXRh aWwgPSBycS0+cmluZ2J1Zi0+dGFpbCA+PiAzOwo+ICAgCXdxaS0+cmluZ190YWlsID0gdGFpbCA8 PCBXUV9SSU5HX1RBSUxfU0hJRlQ7Cj4gLQl3cWktPmZlbmNlX2lkID0gMDsgLypYWFg6IHdoYXQg ZmVuY2UgdG8gYmUgaGVyZSAqLwo+ICsJd3FpLT5mZW5jZV9pZCA9IHJxLT5zZXFubzsKCk5vdCBt ZW50aW9uZWQgaW4gdGhlIGNvbW1pdD8KCj4KPiAgIAlrdW5tYXBfYXRvbWljKGJhc2UpOwo+IC0K PiAtCXJldHVybiAwOwo+ICAgfQo+Cj4gICAvKioKPiBAQCAtNTM3LDI2ICs1NDIsMjAgQEAgaW50 IGk5MTVfZ3VjX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQo+ICAgCXVu c2lnbmVkIGludCBlbmdpbmVfaWQgPSBycS0+ZW5naW5lLT5ndWNfaWQ7Cj4gICAJc3RydWN0IGlu dGVsX2d1YyAqZ3VjID0gJnJxLT5pOTE1LT5ndWM7Cj4gICAJc3RydWN0IGk5MTVfZ3VjX2NsaWVu dCAqY2xpZW50ID0gZ3VjLT5leGVjYnVmX2NsaWVudDsKPiAtCWludCBxX3JldCwgYl9yZXQ7Cj4g KwlpbnQgYl9yZXQ7CgpXaGF0IGlzIGJfcmV0IG91dCBvZiBpbnRlcmVzdCwgZG9vcipCKmVsbCBy ZXR1cm4gY29kZSA/Cgo+Cj4gLQlxX3JldCA9IGd1Y19hZGRfd29ya3F1ZXVlX2l0ZW0oY2xpZW50 LCBycSk7Cj4gLQlpZiAocV9yZXQgPT0gMCkKPiAtCQliX3JldCA9IGd1Y19yaW5nX2Rvb3JiZWxs KGNsaWVudCk7Cj4gKwlndWNfYWRkX3dvcmtxdWV1ZV9pdGVtKGNsaWVudCwgcnEpOwo+ICsJYl9y ZXQgPSBndWNfcmluZ19kb29yYmVsbChjbGllbnQpOwo+Cj4gICAJY2xpZW50LT5zdWJtaXNzaW9u c1tlbmdpbmVfaWRdICs9IDE7Cj4gLQlpZiAocV9yZXQpIHsKPiAtCQljbGllbnQtPnFfZmFpbCAr PSAxOwo+IC0JCWNsaWVudC0+cmV0Y29kZSA9IHFfcmV0Owo+IC0JfSBlbHNlIGlmIChiX3JldCkg ewo+ICsJY2xpZW50LT5yZXRjb2RlID0gYl9yZXQ7CgpJIHdhbnRlZCB0byBhc2sgZm9yIHdoYXQg aXMgdGhpcyBmb3IgYnV0IHRoZW4gZm91bmQgaXQgaXMgZm9yIGRlYnVnZnMuCgo+ICsJaWYgKGJf cmV0KQo+ICAgCQljbGllbnQtPmJfZmFpbCArPSAxOwo+IC0JCWNsaWVudC0+cmV0Y29kZSA9IHFf cmV0ID0gYl9yZXQ7Cj4gLQl9IGVsc2Ugewo+IC0JCWNsaWVudC0+cmV0Y29kZSA9IDA7Cj4gLQl9 Cj4gKwo+ICAgCWd1Yy0+c3VibWlzc2lvbnNbZW5naW5lX2lkXSArPSAxOwo+ICAgCWd1Yy0+bGFz dF9zZXFub1tlbmdpbmVfaWRdID0gcnEtPnNlcW5vOwo+Cj4gLQlyZXR1cm4gcV9yZXQ7Cj4gKwly ZXR1cm4gYl9yZXQ7CgpDb3VsZCBhbHNvIGtpbGwgdGhlIHJldHVybiB2YWx1ZSBmcm9tIHRoaXMg b25lLCB0aGUgb25seSBjYWxsZXIsIAppbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3Vi bWl0IGRvZXMgbm90IHVzZSBpdC4gVGhhdCBmdW5jdGlvbiAKaXRzZWxmIGRvZXMgbm90IGxvb2sg bGlrZSBpdCBuZWVkcyBhIHJldHVybiB2YWx1ZSBhdCB0aGUgbW9tZW50LiA6KQoKPiAgIH0KPgo+ ICAgLyoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IGluZGV4IDQzNmYyZDYuLjEwZTFkNWUg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IEBAIC03NCw3ICs3NCw3IEBAIHN0cnVj dCBpOTE1X2d1Y19jbGllbnQgewo+ICAgCS8qIEd1QyBzdWJtaXNzaW9uIHN0YXRpc3RpY3MgJiBz dGF0dXMgKi8KPiAgIAl1aW50NjRfdCBzdWJtaXNzaW9uc1tHVUNfTUFYX0VOR0lORVNfTlVNXTsK PiAgIAl1aW50MzJfdCBub193cV9zcGFjZTsJCS8qIFNwYWNlIHByZS1jaGVjayBmYWlsZWQJKi8K PiAtCXVpbnQzMl90IHFfZmFpbDsJCS8qIEZhaWxlZCB0byBxdWV1ZSAoTUJaKQkqLwo+ICsJdWlu dDMyX3QgcV9mYWlsOwkJLyogTm8gbG9uZ2VyIHVzZWQJCSovCgpHZXQgcmlkIG9mIGl0IHRoZW4/ Cgo+ICAgCXVpbnQzMl90IGJfZmFpbDsJCS8qIERvb3JiZWxsIGZhaWx1cmUgKE1CWikJKi8KPiAg IAlpbnQgcmV0Y29kZTsJCQkvKiBSZXN1bHQgb2YgbGFzdCBndWNfc3VibWl0KCkJKi8KPiAgIH07 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oCj4gaW5kZXggMmRlNTdmZi4uOTQ0 Nzg2ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3aWYuaAo+IEBAIC03MSw3 ICs3MSw4IEBACj4gICAjZGVmaW5lICAgV1FfV09SS0xPQURfVE9VQ0gJCSgyIDw8IFdRX1dPUktM T0FEX1NISUZUKQo+Cj4gICAjZGVmaW5lIFdRX1JJTkdfVEFJTF9TSElGVAkJMjAKPiAtI2RlZmlu ZSBXUV9SSU5HX1RBSUxfTUFTSwkJKDB4N0ZGIDw8IFdRX1JJTkdfVEFJTF9TSElGVCkKPiArI2Rl ZmluZSBXUV9SSU5HX1RBSUxfTUFYCQkweDdGRgkvKiAyXjExIFFXb3JkcyAqLwo+ICsjZGVmaW5l IFdRX1JJTkdfVEFJTF9NQVNLCQkoV1FfUklOR19UQUlMX01BWCA8PCBXUV9SSU5HX1RBSUxfU0hJ RlQpCj4KPiAgICNkZWZpbmUgR1VDX0RPT1JCRUxMX0VOQUJMRUQJCTEKPiAgICNkZWZpbmUgR1VD X0RPT1JCRUxMX0RJU0FCTEVECQkwCj4KClJlZ2FyZHMsCgpUdnJ0a28KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=