From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH 02/59] drm/i915: Make intel_logical_ring_begin() static Date: Tue, 31 Mar 2015 16:47:09 +0100 Message-ID: <551AC17D.3030702@intel.com> References: <1426768264-16996-1-git-send-email-John.C.Harrison@Intel.com> <1426768264-16996-3-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id D7F606E4ED for ; Tue, 31 Mar 2015 08:47:11 -0700 (PDT) In-Reply-To: <1426768264-16996-3-git-send-email-John.C.Harrison@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "John.C.Harrison@Intel.com" , "Intel-GFX@Lists.FreeDesktop.Org" List-Id: intel-gfx@lists.freedesktop.org T24gMTkvMDMvMjAxNSAxMjozMCwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gVGhlIG9u bHkgdXNhZ2Ugb2YgaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKCkgaXMgd2l0aGluIGludGVsX2xy Yy5jIHNvIGl0IGNhbiBiZQo+IG1hZGUgc3RhdGljLiBUbyBhdm9pZCBhIGZvcndhcmQgZGVjbGFy YXRpb24gYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSwgaXQgYW5kIGJ1bmNoCj4gb2Ygb3RoZXIgZnVu Y3Rpb25zIGhhdmUgYmVlbiBzaHVmZmxlZCB1cHdhcmRzLgo+Cj4gRm9yOiBWSVotNTExNQo+IFNp Z25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4g LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyB8ICA0NzQgKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5oIHwgICAgMyAtCj4gICAyIGZpbGVzIGNoYW5nZWQsIDIzNyBpbnNlcnRpb25zKCsp LCAyNDAgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IGluZGV4IGZj YjA3NGIuLmNhZDQzMDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC02MTEs NiArNjExLDI0MyBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19tb3ZlX3RvX2dwdShzdHJ1Y3QgaW50 ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKPiAgIAlyZXR1cm4gbG9naWNhbF9yaW5nX2ludmFsaWRh dGVfYWxsX2NhY2hlcyhyaW5nYnVmLCBjdHgpOwo+ICAgfQo+Cj4gK3N0YXRpYyBpbnQgbG9naWNh bF9yaW5nX2FsbG9jX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiArCQkJ CSAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdmF0ZSA9IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWlm IChyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3QpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJ cmVxdWVzdCA9IGt6YWxsb2Moc2l6ZW9mKCpyZXF1ZXN0KSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAo cmVxdWVzdCA9PSBOVUxMKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCWlmIChjdHggIT0g cmluZy0+ZGVmYXVsdF9jb250ZXh0KSB7Cj4gKwkJcmV0ID0gaW50ZWxfbHJfY29udGV4dF9waW4o cmluZywgY3R4KTsKPiArCQlpZiAocmV0KSB7Cj4gKwkJCWtmcmVlKHJlcXVlc3QpOwo+ICsJCQly ZXR1cm4gcmV0Owo+ICsJCX0KPiArCX0KPiArCj4gKwlrcmVmX2luaXQoJnJlcXVlc3QtPnJlZik7 Cj4gKwlyZXF1ZXN0LT5yaW5nID0gcmluZzsKPiArCXJlcXVlc3QtPnVuaXEgPSBkZXZfcHJpdmF0 ZS0+cmVxdWVzdF91bmlxKys7Cj4gKwo+ICsJcmV0ID0gaTkxNV9nZW1fZ2V0X3NlcW5vKHJpbmct PmRldiwgJnJlcXVlc3QtPnNlcW5vKTsKPiArCWlmIChyZXQpIHsKPiArCQlpbnRlbF9scl9jb250 ZXh0X3VucGluKHJpbmcsIGN0eCk7Cj4gKwkJa2ZyZWUocmVxdWVzdCk7Cj4gKwkJcmV0dXJuIHJl dDsKPiArCX0KPiArCj4gKwlyZXF1ZXN0LT5jdHggPSBjdHg7Cj4gKwlpOTE1X2dlbV9jb250ZXh0 X3JlZmVyZW5jZShyZXF1ZXN0LT5jdHgpOwo+ICsJcmVxdWVzdC0+cmluZ2J1ZiA9IGN0eC0+ZW5n aW5lW3JpbmctPmlkXS5yaW5nYnVmOwo+ICsKPiArCXJpbmctPm91dHN0YW5kaW5nX2xhenlfcmVx dWVzdCA9IHJlcXVlc3Q7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBsb2dp Y2FsX3Jpbmdfd2FpdF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAo+ ICsJCQkJICAgICBpbnQgYnl0ZXMpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcgPSByaW5nYnVmLT5yaW5nOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0Owo+ICsJaW50IHJldDsKPiArCj4gKwlpZiAoaW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+ PSBieXRlcykKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcXVl c3QsICZyaW5nLT5yZXF1ZXN0X2xpc3QsIGxpc3QpIHsKPiArCQkvKgo+ICsJCSAqIFRoZSByZXF1 ZXN0IHF1ZXVlIGlzIHBlci1lbmdpbmUsIHNvIGNhbiBjb250YWluIHJlcXVlc3RzCj4gKwkJICog ZnJvbSBtdWx0aXBsZSByaW5nYnVmZmVycy4gSGVyZSwgd2UgbXVzdCBpZ25vcmUgYW55IHRoYXQK PiArCQkgKiBhcmVuJ3QgZnJvbSB0aGUgcmluZ2J1ZmZlciB3ZSdyZSBjb25zaWRlcmluZy4KPiAr CQkgKi8KPiArCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0gcmVxdWVzdC0+Y3R4Owo+ICsJ CWlmIChjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZiAhPSByaW5nYnVmKQo+ICsJCQljb250 aW51ZTsKPiArCj4gKwkJLyogV291bGQgY29tcGxldGlvbiBvZiB0aGlzIHJlcXVlc3QgZnJlZSBl bm91Z2ggc3BhY2U/ICovCj4gKwkJaWYgKF9faW50ZWxfcmluZ19zcGFjZShyZXF1ZXN0LT50YWls LCByaW5nYnVmLT50YWlsLAo+ICsJCQkJICAgICAgIHJpbmdidWYtPnNpemUpID49IGJ5dGVzKSB7 Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCX0KPiArCj4gKwlpZiAoJnJlcXVlc3QtPmxpc3QgPT0g JnJpbmctPnJlcXVlc3RfbGlzdCkKPiArCQlyZXR1cm4gLUVOT1NQQzsKPiArCj4gKwlyZXQgPSBp OTE1X3dhaXRfcmVxdWVzdChyZXF1ZXN0KTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsK PiArCj4gKwlpOTE1X2dlbV9yZXRpcmVfcmVxdWVzdHNfcmluZyhyaW5nKTsKPiArCj4gKwlyZXR1 cm4gaW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+PSBieXRlcyA/IDAgOiAtRU5PU1BDOwo+ICt9 Cj4gKwo+ICsvKgo+ICsgKiBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KCkg LSBhZHZhbmNlIHRoZSB0YWlsIGFuZCBzdWJtaXQgdGhlIHdvcmtsb2FkCj4gKyAqIEByaW5nYnVm OiBMb2dpY2FsIFJpbmdidWZmZXIgdG8gYWR2YW5jZS4KPiArICoKPiArICogVGhlIHRhaWwgaXMg dXBkYXRlZCBpbiBvdXIgbG9naWNhbCByaW5nYnVmZmVyIHN0cnVjdCwgbm90IGluIHRoZSBhY3R1 YWwgY29udGV4dC4gV2hhdAo+ICsgKiByZWFsbHkgaGFwcGVucyBkdXJpbmcgc3VibWlzc2lvbiBp cyB0aGF0IHRoZSBjb250ZXh0IGFuZCBjdXJyZW50IHRhaWwgd2lsbCBiZSBwbGFjZWQKPiArICog b24gYSBxdWV1ZSB3YWl0aW5nIGZvciB0aGUgRUxTUCB0byBiZSByZWFkeSB0byBhY2NlcHQgYSBu ZXcgY29udGV4dCBzdWJtaXNzaW9uLiBBdCB0aGF0Cj4gKyAqIHBvaW50LCB0aGUgdGFpbCAqaW5z aWRlKiB0aGUgY29udGV4dCBpcyB1cGRhdGVkIGFuZCB0aGUgRUxTUCB3cml0dGVuIHRvLgo+ICsg Ki8KPiArc3RhdGljIHZvaWQKPiAraW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1p dChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKPiArCQkJCSAgICAgIHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjdHgsCj4gKwkJCQkgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcXVlc3QpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByaW5n YnVmLT5yaW5nOwo+ICsKPiArCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOwo+ ICsKPiArCWlmIChpbnRlbF9yaW5nX3N0b3BwZWQocmluZykpCj4gKwkJcmV0dXJuOwo+ICsKPiAr CWV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHJpbmcsIGN0eCwgcmluZ2J1Zi0+dGFpbCwgcmVxdWVz dCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNlKHN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAo+ICsJCQkJICAgICAgIHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjdHgsCj4gKwkJCQkgICAgICAgaW50IGJ5dGVzKQo+ICt7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmluZ2J1Zi0+cmluZzsKPiArCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSByaW5nLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJdW5zaWduZWQgbG9uZyBlbmQ7Cj4gKwlpbnQgcmV0 Owo+ICsKPiArCXJldCA9IGxvZ2ljYWxfcmluZ193YWl0X3JlcXVlc3QocmluZ2J1ZiwgYnl0ZXMp Owo+ICsJaWYgKHJldCAhPSAtRU5PU1BDKQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJLyogRm9y Y2UgdGhlIGNvbnRleHQgc3VibWlzc2lvbiBpbiBjYXNlIHdlIGhhdmUgYmVlbiBza2lwcGluZyBp dCAqLwo+ICsJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChyaW5nYnVmLCBj dHgsIE5VTEwpOwo+ICsKPiArCS8qIFdpdGggR0VNIHRoZSBoYW5nY2hlY2sgdGltZXIgc2hvdWxk IGtpY2sgdXMgb3V0IG9mIHRoZSBsb29wLAo+ICsJICogbGVhdmluZyBpdCBlYXJseSBydW5zIHRo ZSByaXNrIG9mIGNvcnJ1cHRpbmcgR0VNIHN0YXRlIChkdWUKPiArCSAqIHRvIHJ1bm5pbmcgb24g YWxtb3N0IHVudGVzdGVkIGNvZGVwYXRocykuIEJ1dCBvbiByZXN1bWUKPiArCSAqIHRpbWVycyBk b24ndCB3b3JrIHlldCwgc28gcHJldmVudCBhIGNvbXBsZXRlIGhhbmcgaW4gdGhhdAo+ICsJICog Y2FzZSBieSBjaG9vc2luZyBhbiBpbnNhbmVseSBsYXJnZSB0aW1lb3V0LiAqLwo+ICsJZW5kID0g amlmZmllcyArIDYwICogSFo7Cj4gKwo+ICsJcmV0ID0gMDsKPiArCWRvIHsKPiArCQlpZiAoaW50 ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+PSBieXRlcykKPiArCQkJYnJlYWs7Cj4gKwo+ICsJCW1z bGVlcCgxKTsKPiArCj4gKwkJaWYgKGRldl9wcml2LT5tbS5pbnRlcnJ1cHRpYmxlICYmIHNpZ25h bF9wZW5kaW5nKGN1cnJlbnQpKSB7Cj4gKwkJCXJldCA9IC1FUkVTVEFSVFNZUzsKPiArCQkJYnJl YWs7Cj4gKwkJfQo+ICsKPiArCQlyZXQgPSBpOTE1X2dlbV9jaGVja193ZWRnZSgmZGV2X3ByaXYt PmdwdV9lcnJvciwKPiArCQkJCQkgICBkZXZfcHJpdi0+bW0uaW50ZXJydXB0aWJsZSk7Cj4gKwkJ aWYgKHJldCkKPiArCQkJYnJlYWs7Cj4gKwo+ICsJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIGVu ZCkpIHsKPiArCQkJcmV0ID0gLUVCVVNZOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwl9IHdoaWxl ICgxKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGxvZ2ljYWxf cmluZ193cmFwX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKPiArCQkJ CSAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQo+ICt7Cj4gKwl1aW50MzJfdCBfX2lvbWVt ICp2aXJ0Owo+ICsJaW50IHJlbSA9IHJpbmdidWYtPnNpemUgLSByaW5nYnVmLT50YWlsOwo+ICsK PiArCWlmIChyaW5nYnVmLT5zcGFjZSA8IHJlbSkgewo+ICsJCWludCByZXQgPSBsb2dpY2FsX3Jp bmdfd2FpdF9mb3Jfc3BhY2UocmluZ2J1ZiwgY3R4LCByZW0pOwo+ICsKPiArCQlpZiAocmV0KQo+ ICsJCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXZpcnQgPSByaW5nYnVmLT52aXJ0dWFsX3N0 YXJ0ICsgcmluZ2J1Zi0+dGFpbDsKPiArCXJlbSAvPSA0Owo+ICsJd2hpbGUgKHJlbS0tKQo+ICsJ CWlvd3JpdGUzMihNSV9OT09QLCB2aXJ0KyspOwo+ICsKPiArCXJpbmdidWYtPnRhaWwgPSAwOwo+ ICsJaW50ZWxfcmluZ191cGRhdGVfc3BhY2UocmluZ2J1Zik7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4g K30KPiArCj4gK3N0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3ByZXBhcmUoc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmdidWYsCj4gKwkJCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LCBpbnQg Ynl0ZXMpCj4gK3sKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKHVubGlrZWx5KHJpbmdidWYtPnRh aWwgKyBieXRlcyA+IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplKSkgewo+ICsJCXJldCA9IGxvZ2lj YWxfcmluZ193cmFwX2J1ZmZlcihyaW5nYnVmLCBjdHgpOwo+ICsJCWlmICh1bmxpa2VseShyZXQp KQo+ICsJCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCWlmICh1bmxpa2VseShyaW5nYnVmLT5z cGFjZSA8IGJ5dGVzKSkgewo+ICsJCXJldCA9IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShy aW5nYnVmLCBjdHgsIGJ5dGVzKTsKPiArCQlpZiAodW5saWtlbHkocmV0KSkKPiArCQkJcmV0dXJu IHJldDsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArLyoqCj4gKyAqIGludGVs X2xvZ2ljYWxfcmluZ19iZWdpbigpIC0gcHJlcGFyZSB0aGUgbG9naWNhbCByaW5nYnVmZmVyIHRv IGFjY2VwdCBzb21lIGNvbW1hbmRzCj4gKyAqCj4gKyAqIEByaW5nYnVmOiBMb2dpY2FsIHJpbmdi dWZmZXIuCj4gKyAqIEBudW1fZHdvcmRzOiBudW1iZXIgb2YgRFdPUkRzIHRoYXQgd2UgcGxhbiB0 byB3cml0ZSB0byB0aGUgcmluZ2J1ZmZlci4KPiArICoKPiArICogVGhlIHJpbmdidWZmZXIgbWln aHQgbm90IGJlIHJlYWR5IHRvIGFjY2VwdCB0aGUgY29tbWFuZHMgcmlnaHQgYXdheSAobWF5YmUg aXQgbmVlZHMgdG8KPiArICogYmUgd3JhcHBlZCwgb3Igd2FpdCBhIGJpdCBmb3IgdGhlIHRhaWwg dG8gYmUgdXBkYXRlZCkuIFRoaXMgZnVuY3Rpb24gdGFrZXMgY2FyZSBvZiB0aGF0Cj4gKyAqIGFu ZCBhbHNvIHByZWFsbG9jYXRlcyBhIHJlcXVlc3QgKGV2ZXJ5IHdvcmtsb2FkIHN1Ym1pc3Npb24g aXMgc3RpbGwgbWVkaWF0ZWQgdGhyb3VnaAo+ICsgKiByZXF1ZXN0cywgc2FtZSBhcyBpdCBkaWQg d2l0aCBsZWdhY3kgcmluZ2J1ZmZlciBzdWJtaXNzaW9uKS4KPiArICoKPiArICogUmV0dXJuOiBu b24temVybyBpZiB0aGUgcmluZ2J1ZmZlciBpcyBub3QgcmVhZHkgdG8gYmUgd3JpdHRlbiB0by4K PiArICovCj4gK3N0YXRpYyBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmLAo+ICsJCQkJICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpj dHgsIGludCBudW1fZHdvcmRzKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n ID0gcmluZ2J1Zi0+cmluZzsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl Owo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSBpOTE1X2dlbV9jaGVja193ZWRnZSgmZGV2X3By aXYtPmdwdV9lcnJvciwKPiArCQkJCSAgIGRldl9wcml2LT5tbS5pbnRlcnJ1cHRpYmxlKTsKPiAr CWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlyZXQgPSBsb2dpY2FsX3JpbmdfcHJl cGFyZShyaW5nYnVmLCBjdHgsIG51bV9kd29yZHMgKiBzaXplb2YodWludDMyX3QpKTsKPiArCWlm IChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwkvKiBQcmVhbGxvY2F0ZSB0aGUgb2xyIGJl Zm9yZSB0b3VjaGluZyB0aGUgcmluZyAqLwo+ICsJcmV0ID0gbG9naWNhbF9yaW5nX2FsbG9jX3Jl cXVlc3QocmluZywgY3R4KTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwly aW5nYnVmLT5zcGFjZSAtPSBudW1fZHdvcmRzICogc2l6ZW9mKHVpbnQzMl90KTsKPiArCXJldHVy biAwOwo+ICt9Cj4gKwo+ICAgLyoqCj4gICAgKiBleGVjbGlzdHNfc3VibWlzc2lvbigpIC0gc3Vi bWl0IGEgYmF0Y2hidWZmZXIgZm9yIGV4ZWN1dGlvbiwgRXhlY2xpc3RzIHN0eWxlCj4gICAgKiBA ZGV2OiBEUk0gZGV2aWNlLgo+IEBAIC03ODcsMzAgKzEwMjQsNiBAQCBpbnQgbG9naWNhbF9yaW5n X2ZsdXNoX2FsbF9jYWNoZXMoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYsCj4gICAJ cmV0dXJuIDA7Cj4gICB9Cj4KPiAtLyoKPiAtICogaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2Vf YW5kX3N1Ym1pdCgpIC0gYWR2YW5jZSB0aGUgdGFpbCBhbmQgc3VibWl0IHRoZSB3b3JrbG9hZAo+ IC0gKiBAcmluZ2J1ZjogTG9naWNhbCBSaW5nYnVmZmVyIHRvIGFkdmFuY2UuCj4gLSAqCj4gLSAq IFRoZSB0YWlsIGlzIHVwZGF0ZWQgaW4gb3VyIGxvZ2ljYWwgcmluZ2J1ZmZlciBzdHJ1Y3QsIG5v dCBpbiB0aGUgYWN0dWFsIGNvbnRleHQuIFdoYXQKPiAtICogcmVhbGx5IGhhcHBlbnMgZHVyaW5n IHN1Ym1pc3Npb24gaXMgdGhhdCB0aGUgY29udGV4dCBhbmQgY3VycmVudCB0YWlsIHdpbGwgYmUg cGxhY2VkCj4gLSAqIG9uIGEgcXVldWUgd2FpdGluZyBmb3IgdGhlIEVMU1AgdG8gYmUgcmVhZHkg dG8gYWNjZXB0IGEgbmV3IGNvbnRleHQgc3VibWlzc2lvbi4gQXQgdGhhdAo+IC0gKiBwb2ludCwg dGhlIHRhaWwgKmluc2lkZSogdGhlIGNvbnRleHQgaXMgdXBkYXRlZCBhbmQgdGhlIEVMU1Agd3Jp dHRlbiB0by4KPiAtICovCj4gLXN0YXRpYyB2b2lkCj4gLWludGVsX2xvZ2ljYWxfcmluZ19hZHZh bmNlX2FuZF9zdWJtaXQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYsCj4gLQkJCQkg ICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+IC0JCQkJICAgICAgc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+IC17Cj4gLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nID0gcmluZ2J1Zi0+cmluZzsKPiAtCj4gLQlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5j ZShyaW5nYnVmKTsKPiAtCj4gLQlpZiAoaW50ZWxfcmluZ19zdG9wcGVkKHJpbmcpKQo+IC0JCXJl dHVybjsKPiAtCj4gLQlleGVjbGlzdHNfY29udGV4dF9xdWV1ZShyaW5nLCBjdHgsIHJpbmdidWYt PnRhaWwsIHJlcXVlc3QpOwo+IC19Cj4gLQo+ICAgc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0 X3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgCQlzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY3R4KQo+ICAgewo+IEBAIC04NTUsMjE5ICsxMDY4LDYgQEAgdm9pZCBpbnRlbF9scl9j b250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJfQo+ICAgfQo+ Cj4gLXN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX2FsbG9jX3JlcXVlc3Qoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywKPiAtCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4g LXsKPiAtCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsKPiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdmF0ZSA9IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7Cj4g LQlpbnQgcmV0Owo+IC0KPiAtCWlmIChyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3QpCj4g LQkJcmV0dXJuIDA7Cj4gLQo+IC0JcmVxdWVzdCA9IGt6YWxsb2Moc2l6ZW9mKCpyZXF1ZXN0KSwg R0ZQX0tFUk5FTCk7Cj4gLQlpZiAocmVxdWVzdCA9PSBOVUxMKQo+IC0JCXJldHVybiAtRU5PTUVN Owo+IC0KPiAtCWlmIChjdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSB7Cj4gLQkJcmV0ID0g aW50ZWxfbHJfY29udGV4dF9waW4ocmluZywgY3R4KTsKPiAtCQlpZiAocmV0KSB7Cj4gLQkJCWtm cmVlKHJlcXVlc3QpOwo+IC0JCQlyZXR1cm4gcmV0Owo+IC0JCX0KPiAtCX0KPiAtCj4gLQlrcmVm X2luaXQoJnJlcXVlc3QtPnJlZik7Cj4gLQlyZXF1ZXN0LT5yaW5nID0gcmluZzsKPiAtCXJlcXVl c3QtPnVuaXEgPSBkZXZfcHJpdmF0ZS0+cmVxdWVzdF91bmlxKys7Cj4gLQo+IC0JcmV0ID0gaTkx NV9nZW1fZ2V0X3NlcW5vKHJpbmctPmRldiwgJnJlcXVlc3QtPnNlcW5vKTsKPiAtCWlmIChyZXQp IHsKPiAtCQlpbnRlbF9scl9jb250ZXh0X3VucGluKHJpbmcsIGN0eCk7Cj4gLQkJa2ZyZWUocmVx dWVzdCk7Cj4gLQkJcmV0dXJuIHJldDsKPiAtCX0KPiAtCj4gLQlyZXF1ZXN0LT5jdHggPSBjdHg7 Cj4gLQlpOTE1X2dlbV9jb250ZXh0X3JlZmVyZW5jZShyZXF1ZXN0LT5jdHgpOwo+IC0JcmVxdWVz dC0+cmluZ2J1ZiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmOwo+IC0KPiAtCXJpbmct Pm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdCA9IHJlcXVlc3Q7Cj4gLQlyZXR1cm4gMDsKPiAtfQo+ IC0KPiAtc3RhdGljIGludCBsb2dpY2FsX3Jpbmdfd2FpdF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nYnVmLAo+IC0JCQkJICAgICBpbnQgYnl0ZXMpCj4gLXsKPiAtCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByaW5nYnVmLT5yaW5nOwo+IC0Jc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0Owo+IC0JaW50IHJldDsKPiAtCj4gLQlpZiAoaW50ZWxf cmluZ19zcGFjZShyaW5nYnVmKSA+PSBieXRlcykKPiAtCQlyZXR1cm4gMDsKPiAtCj4gLQlsaXN0 X2Zvcl9lYWNoX2VudHJ5KHJlcXVlc3QsICZyaW5nLT5yZXF1ZXN0X2xpc3QsIGxpc3QpIHsKPiAt CQkvKgo+IC0JCSAqIFRoZSByZXF1ZXN0IHF1ZXVlIGlzIHBlci1lbmdpbmUsIHNvIGNhbiBjb250 YWluIHJlcXVlc3RzCj4gLQkJICogZnJvbSBtdWx0aXBsZSByaW5nYnVmZmVycy4gSGVyZSwgd2Ug bXVzdCBpZ25vcmUgYW55IHRoYXQKPiAtCQkgKiBhcmVuJ3QgZnJvbSB0aGUgcmluZ2J1ZmZlciB3 ZSdyZSBjb25zaWRlcmluZy4KPiAtCQkgKi8KPiAtCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4 ID0gcmVxdWVzdC0+Y3R4Owo+IC0JCWlmIChjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZiAh PSByaW5nYnVmKQo+IC0JCQljb250aW51ZTsKPiAtCj4gLQkJLyogV291bGQgY29tcGxldGlvbiBv ZiB0aGlzIHJlcXVlc3QgZnJlZSBlbm91Z2ggc3BhY2U/ICovCj4gLQkJaWYgKF9faW50ZWxfcmlu Z19zcGFjZShyZXF1ZXN0LT50YWlsLCByaW5nYnVmLT50YWlsLAo+IC0JCQkJICAgICAgIHJpbmdi dWYtPnNpemUpID49IGJ5dGVzKSB7Cj4gLQkJCWJyZWFrOwo+IC0JCX0KPiAtCX0KPiAtCj4gLQlp ZiAoJnJlcXVlc3QtPmxpc3QgPT0gJnJpbmctPnJlcXVlc3RfbGlzdCkKPiAtCQlyZXR1cm4gLUVO T1NQQzsKPiAtCj4gLQlyZXQgPSBpOTE1X3dhaXRfcmVxdWVzdChyZXF1ZXN0KTsKPiAtCWlmIChy ZXQpCj4gLQkJcmV0dXJuIHJldDsKPiAtCj4gLQlpOTE1X2dlbV9yZXRpcmVfcmVxdWVzdHNfcmlu ZyhyaW5nKTsKPiAtCj4gLQlyZXR1cm4gaW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKSA+PSBieXRl cyA/IDAgOiAtRU5PU1BDOwo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193YWl0 X2Zvcl9zcGFjZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKPiAtCQkJCSAgICAg ICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+IC0JCQkJICAgICAgIGludCBieXRlcykKPiAt ewo+IC0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJpbmdidWYtPnJpbmc7Cj4gLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcmluZy0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXVuc2lnbmVkIGxvbmcgZW5k Owo+IC0JaW50IHJldDsKPiAtCj4gLQlyZXQgPSBsb2dpY2FsX3Jpbmdfd2FpdF9yZXF1ZXN0KHJp bmdidWYsIGJ5dGVzKTsKPiAtCWlmIChyZXQgIT0gLUVOT1NQQykKPiAtCQlyZXR1cm4gcmV0Owo+ IC0KPiAtCS8qIEZvcmNlIHRoZSBjb250ZXh0IHN1Ym1pc3Npb24gaW4gY2FzZSB3ZSBoYXZlIGJl ZW4gc2tpcHBpbmcgaXQgKi8KPiAtCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJt aXQocmluZ2J1ZiwgY3R4LCBOVUxMKTsKPiAtCj4gLQkvKiBXaXRoIEdFTSB0aGUgaGFuZ2NoZWNr IHRpbWVyIHNob3VsZCBraWNrIHVzIG91dCBvZiB0aGUgbG9vcCwKPiAtCSAqIGxlYXZpbmcgaXQg ZWFybHkgcnVucyB0aGUgcmlzayBvZiBjb3JydXB0aW5nIEdFTSBzdGF0ZSAoZHVlCj4gLQkgKiB0 byBydW5uaW5nIG9uIGFsbW9zdCB1bnRlc3RlZCBjb2RlcGF0aHMpLiBCdXQgb24gcmVzdW1lCj4g LQkgKiB0aW1lcnMgZG9uJ3Qgd29yayB5ZXQsIHNvIHByZXZlbnQgYSBjb21wbGV0ZSBoYW5nIGlu IHRoYXQKPiAtCSAqIGNhc2UgYnkgY2hvb3NpbmcgYW4gaW5zYW5lbHkgbGFyZ2UgdGltZW91dC4g Ki8KPiAtCWVuZCA9IGppZmZpZXMgKyA2MCAqIEhaOwo+IC0KPiAtCXJldCA9IDA7Cj4gLQlkbyB7 Cj4gLQkJaWYgKGludGVsX3Jpbmdfc3BhY2UocmluZ2J1ZikgPj0gYnl0ZXMpCj4gLQkJCWJyZWFr Owo+IC0KPiAtCQltc2xlZXAoMSk7Cj4gLQo+IC0JCWlmIChkZXZfcHJpdi0+bW0uaW50ZXJydXB0 aWJsZSAmJiBzaWduYWxfcGVuZGluZyhjdXJyZW50KSkgewo+IC0JCQlyZXQgPSAtRVJFU1RBUlRT WVM7Cj4gLQkJCWJyZWFrOwo+IC0JCX0KPiAtCj4gLQkJcmV0ID0gaTkxNV9nZW1fY2hlY2tfd2Vk Z2UoJmRldl9wcml2LT5ncHVfZXJyb3IsCj4gLQkJCQkJICAgZGV2X3ByaXYtPm1tLmludGVycnVw dGlibGUpOwo+IC0JCWlmIChyZXQpCj4gLQkJCWJyZWFrOwo+IC0KPiAtCQlpZiAodGltZV9hZnRl cihqaWZmaWVzLCBlbmQpKSB7Cj4gLQkJCXJldCA9IC1FQlVTWTsKPiAtCQkJYnJlYWs7Cj4gLQkJ fQo+IC0JfSB3aGlsZSAoMSk7Cj4gLQo+IC0JcmV0dXJuIHJldDsKPiAtfQo+IC0KPiAtc3RhdGlj IGludCBsb2dpY2FsX3Jpbmdfd3JhcF9idWZmZXIoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmdidWYsCj4gLQkJCQkgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKPiAtewo+IC0JdWlu dDMyX3QgX19pb21lbSAqdmlydDsKPiAtCWludCByZW0gPSByaW5nYnVmLT5zaXplIC0gcmluZ2J1 Zi0+dGFpbDsKPiAtCj4gLQlpZiAocmluZ2J1Zi0+c3BhY2UgPCByZW0pIHsKPiAtCQlpbnQgcmV0 ID0gbG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNlKHJpbmdidWYsIGN0eCwgcmVtKTsKPiAtCj4g LQkJaWYgKHJldCkKPiAtCQkJcmV0dXJuIHJldDsKPiAtCX0KPiAtCj4gLQl2aXJ0ID0gcmluZ2J1 Zi0+dmlydHVhbF9zdGFydCArIHJpbmdidWYtPnRhaWw7Cj4gLQlyZW0gLz0gNDsKPiAtCXdoaWxl IChyZW0tLSkKPiAtCQlpb3dyaXRlMzIoTUlfTk9PUCwgdmlydCsrKTsKPiAtCj4gLQlyaW5nYnVm LT50YWlsID0gMDsKPiAtCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmdidWYpOwo+IC0KPiAt CXJldHVybiAwOwo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19wcmVwYXJlKHN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAo+IC0JCQkJc3RydWN0IGludGVsX2NvbnRl eHQgKmN0eCwgaW50IGJ5dGVzKQo+IC17Cj4gLQlpbnQgcmV0Owo+IC0KPiAtCWlmICh1bmxpa2Vs eShyaW5nYnVmLT50YWlsICsgYnl0ZXMgPiByaW5nYnVmLT5lZmZlY3RpdmVfc2l6ZSkpIHsKPiAt CQlyZXQgPSBsb2dpY2FsX3Jpbmdfd3JhcF9idWZmZXIocmluZ2J1ZiwgY3R4KTsKPiAtCQlpZiAo dW5saWtlbHkocmV0KSkKPiAtCQkJcmV0dXJuIHJldDsKPiAtCX0KPiAtCj4gLQlpZiAodW5saWtl bHkocmluZ2J1Zi0+c3BhY2UgPCBieXRlcykpIHsKPiAtCQlyZXQgPSBsb2dpY2FsX3Jpbmdfd2Fp dF9mb3Jfc3BhY2UocmluZ2J1ZiwgY3R4LCBieXRlcyk7Cj4gLQkJaWYgKHVubGlrZWx5KHJldCkp Cj4gLQkJCXJldHVybiByZXQ7Cj4gLQl9Cj4gLQo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gLS8q Kgo+IC0gKiBpbnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4oKSAtIHByZXBhcmUgdGhlIGxvZ2ljYWwg cmluZ2J1ZmZlciB0byBhY2NlcHQgc29tZSBjb21tYW5kcwo+IC0gKgo+IC0gKiBAcmluZ2J1Zjog TG9naWNhbCByaW5nYnVmZmVyLgo+IC0gKiBAbnVtX2R3b3JkczogbnVtYmVyIG9mIERXT1JEcyB0 aGF0IHdlIHBsYW4gdG8gd3JpdGUgdG8gdGhlIHJpbmdidWZmZXIuCj4gLSAqCj4gLSAqIFRoZSBy aW5nYnVmZmVyIG1pZ2h0IG5vdCBiZSByZWFkeSB0byBhY2NlcHQgdGhlIGNvbW1hbmRzIHJpZ2h0 IGF3YXkgKG1heWJlIGl0IG5lZWRzIHRvCj4gLSAqIGJlIHdyYXBwZWQsIG9yIHdhaXQgYSBiaXQg Zm9yIHRoZSB0YWlsIHRvIGJlIHVwZGF0ZWQpLiBUaGlzIGZ1bmN0aW9uIHRha2VzIGNhcmUgb2Yg dGhhdAo+IC0gKiBhbmQgYWxzbyBwcmVhbGxvY2F0ZXMgYSByZXF1ZXN0IChldmVyeSB3b3JrbG9h ZCBzdWJtaXNzaW9uIGlzIHN0aWxsIG1lZGlhdGVkIHRocm91Z2gKPiAtICogcmVxdWVzdHMsIHNh bWUgYXMgaXQgZGlkIHdpdGggbGVnYWN5IHJpbmdidWZmZXIgc3VibWlzc2lvbikuCj4gLSAqCj4g LSAqIFJldHVybjogbm9uLXplcm8gaWYgdGhlIHJpbmdidWZmZXIgaXMgbm90IHJlYWR5IHRvIGJl IHdyaXR0ZW4gdG8uCj4gLSAqLwo+IC1pbnQgaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAo+IC0JCQkgICAgIHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHgsIGludCBudW1fZHdvcmRzKQo+IC17Cj4gLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nID0gcmluZ2J1Zi0+cmluZzsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5n LT5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwo+IC0JaW50IHJldDsKPiAtCj4gLQlyZXQgPSBpOTE1X2dlbV9jaGVja193ZWRnZSgm ZGV2X3ByaXYtPmdwdV9lcnJvciwKPiAtCQkJCSAgIGRldl9wcml2LT5tbS5pbnRlcnJ1cHRpYmxl KTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0dXJuIHJldDsKPiAtCj4gLQlyZXQgPSBsb2dpY2FsX3Jp bmdfcHJlcGFyZShyaW5nYnVmLCBjdHgsIG51bV9kd29yZHMgKiBzaXplb2YodWludDMyX3QpKTsK PiAtCWlmIChyZXQpCj4gLQkJcmV0dXJuIHJldDsKPiAtCj4gLQkvKiBQcmVhbGxvY2F0ZSB0aGUg b2xyIGJlZm9yZSB0b3VjaGluZyB0aGUgcmluZyAqLwo+IC0JcmV0ID0gbG9naWNhbF9yaW5nX2Fs bG9jX3JlcXVlc3QocmluZywgY3R4KTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0dXJuIHJldDsKPiAt Cj4gLQlyaW5nYnVmLT5zcGFjZSAtPSBudW1fZHdvcmRzICogc2l6ZW9mKHVpbnQzMl90KTsKPiAt CXJldHVybiAwOwo+IC19Cj4gLQo+ICAgc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3Jpbmdfd29y a2Fyb3VuZHNfZW1pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgCQkJCQkgICAg ICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKPiAgIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuaAo+IGluZGV4IGFkYjczMWU0Li5hYzhmODFhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmgKPiBAQCAtNjMsOSArNjMsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfbG9naWNh bF9yaW5nX2VtaXQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYsCj4gICAJaW93cml0 ZTMyKGRhdGEsIHJpbmdidWYtPnZpcnR1YWxfc3RhcnQgKyByaW5nYnVmLT50YWlsKTsKPiAgIAly aW5nYnVmLT50YWlsICs9IDQ7Cj4gICB9Cj4gLWludCBpbnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4o c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYsCj4gLQkJCSAgICAgc3RydWN0IGludGVs X2NvbnRleHQgKmN0eCwKPiAtCQkJICAgICBpbnQgbnVtX2R3b3Jkcyk7Cj4KPiAgIC8qIExvZ2lj YWwgUmluZyBDb250ZXh0cyAqLwo+ICAgdm9pZCBpbnRlbF9scl9jb250ZXh0X2ZyZWUoc3RydWN0 IGludGVsX2NvbnRleHQgKmN0eCk7Cj4KClJldmlld2VkLWJ5OiBUb21hcyBFbGYgPHRvbWFzLmVs ZkBpbnRlbC5jb20+CgpUaGFua3MsClRvbWFzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==