From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH v3 06/10] drm/i915: Implement LRI based FBC tracking Date: Wed, 6 Nov 2013 23:02:21 +0200 Message-ID: <1383771745-22463-7-git-send-email-ville.syrjala@linux.intel.com> References: <1383771745-22463-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by gabe.freedesktop.org (Postfix) with ESMTP id 7EEFBEEEAA for ; Wed, 6 Nov 2013 13:02:49 -0800 (PST) In-Reply-To: <1383771745-22463-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFz IHBlciB0aGUgU05CIGFuZCBIU1cgUE0gZ3VpZGVzLCB3ZSBzaG91bGQgZW5hYmxlIEZCQyByZW5k ZXIvYmxpdHRlcgp0cmFja2luZyBvbmx5IGR1cmluZyBiYXRjaGVzIHRhcmdldHRpbmcgdGhlIGZy b250IGJ1ZmZlci4KCk9uIFNOQiB3ZSBtdXN0IGFsc28gdXBkYXRlIHRoZSBGQkMgcmVuZGVyIHRy YWNraW5nIGFkZHJlc3Mgd2hlbmV2ZXIgaXQKY2hhbmdlcy4gQW5kIHNpbmNlIHRoZSByZWdpc3Rl ciBpbiBxdWVzdGlvbiBpcyBzdG9yZWQgaW4gdGhlIGNvbnRleHQsCndlIG5lZWQgdG8gbWFrZSBz dXJlIHdlIHJlbG9hZCBpdCB3aXRoIGNvcnJlY3QgZGF0YSBhZnRlciBjb250ZXh0CnN3aXRjaGVz LgoKT24gSVZCL0hTVyB3ZSB1c2UgdGhlIHJlbmRlciBudWtlIG1lY2hhbmlzbSwgc28gbm8gcmVu ZGVyIHRyYWNraW5nCmFkZHJlc3MgdXBkYXRlcyBhcmUgbmVlZGVkLiBIb2V2ZXIgb24gdGhlIGJs aXR0ZXIgc2lkZSB3ZSBuZWVkIHRvCmVuYWJsZSB0aGUgYmxpdHRlciB0cmFja2luZyBsaWtlIG9u IFNOQiwgYW5kIGluIGFkZGl0aW9uIHdlIG5lZWQKdG8gaXNzdWUgdGhlIGNhY2hlIGNsZWFuIG1l c3NhZ2VzLCB3aGljaCB3ZSBhbHJlYWR5IGRpZC4KCnYyOiBJbnRyb2R1Y2UgaW50ZWxfZmJfb2Jq X2hhc19mYmMoKQogICAgRml4IGNydGMgbG9ja2luZyBhcm91bmQgY3J0Yy0+ZmIgYWNjZXNzCiAg ICBEcm9wIGEgaHVuayB0aGF0IHdhcyBpbmNsdWRlZCBieSBhY2NpZGVudCBpbiB2MQogICAgU2V0 IGZiY19hZGRyZXNzX2RpcnR5PWZhbHNlIG5vdCB0cnVlIGFmdGVyIGVtaXR0aW5nIHRoZSBMUkkK djM6IE5vdyB0aGF0IGZiYyBoYW5ncyBvbiB0byB0aGUgZmIgaW50ZWxfZmJfb2JqX2hhc19mYmMo KSBkb2Vzbid0CiAgICBuZWVkIHRvIHVwc2V0IGxvY2tkZXAgYW55bW9yZQoKU2lnbmVkLW9mZi1i eTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgfCAgNyArKysrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAzMSArKysrKysrKysrKysr KysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAgfCAxNyArKysr KysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgICB8ICAxICsK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAgICB8IDU4ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oICAgIHwgIDIgKysKIDYgZmlsZXMgY2hhbmdlZCwgMTEzIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4 IDcyYTNkZjMuLmQ0MzhlYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0 LmMKQEAgLTQwNCw2ICs0MDQsMTMgQEAgbWlfc2V0X2NvbnRleHQoc3RydWN0IGludGVsX3Jpbmdf YnVmZmVyICpyaW5nLAogCiAJaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOwogCisJLyoKKwkgKiBG QkMgUlQgYWRkcmVzcyBpcyBzdG9yZWQgaW4gdGhlIGNvbnRleHQsIHNvIHdlIG1heSBoYXZlIGp1 c3QKKwkgKiByZXN0b3JlZCBpdCB0byBhbiBvbGQgdmFsdWUuIE1ha2Ugc3VyZSB3ZSBlbWl0IGEg bmV3IExSSQorCSAqIHRvIHVwZGF0ZSB0aGUgYWRkcmVzcy4KKwkgKi8KKwlyaW5nLT5mYmNfYWRk cmVzc19kaXJ0eSA9IHRydWU7CisKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKaW5kZXggODg1ZDU5NS4uZGIyNTE1OCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtODg2LDYgKzg4Niwz NSBAQCB2YWxpZGF0ZV9leGVjX2xpc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIg KmV4ZWMsCiB9CiAKIHN0YXRpYyB2b2lkCitpOTE1X2dlbV9leGVjYnVmZmVyX21hcmtfZmJjX2Rp cnR5KHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZywKKwkJCQkgICBzdHJ1Y3QgbGlzdF9o ZWFkICp2bWFzKQoreworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpmYmNfb2JqID0gTlVMTDsKKwl1MzIgZmJjX2FkZHJlc3MgPSAtMTsKKworCWxp c3RfZm9yX2VhY2hfZW50cnkodm1hLCB2bWFzLCBleGVjX2xpc3QpIHsKKwkJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOworCisJCWlmIChvYmotPmJhc2UucGVuZGlu Z193cml0ZV9kb21haW4gJiYKKwkJICAgIGludGVsX2ZiX29ial9oYXNfZmJjKG9iaikpIHsKKwkJ CVdBUk5fT04oZmJjX29iaiAmJiBmYmNfb2JqICE9IG9iaik7CisJCQlmYmNfb2JqID0gb2JqOwor CQl9CisJfQorCisJaWYgKGZiY19vYmopCisJCWZiY19hZGRyZXNzID0gaTkxNV9nZW1fb2JqX2dn dHRfb2Zmc2V0KGZiY19vYmopOworCisJLyogbmVlZCB0byBudWtlL2NhY2hlX2NsZWFuIG9uIElW Qis/ICovCisJcmluZy0+ZmJjX2RpcnR5ID0gZmJjX29iaiAhPSBOVUxMOworCisJLyogbmVlZCB0 byB1cGRhdGUgRkJDIHRyYWNraW5nPyAqLworCXJpbmctPmZiY19hZGRyZXNzX2RpcnR5ID0gZmJj X2FkZHJlc3MgIT0gcmluZy0+ZmJjX2FkZHJlc3M7CisJcmluZy0+ZmJjX2FkZHJlc3MgPSBmYmNf YWRkcmVzczsKK30KKworc3RhdGljIHZvaWQKIGk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19h Y3RpdmUoc3RydWN0IGxpc3RfaGVhZCAqdm1hcywKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfcmluZ19i dWZmZXIgKnJpbmcpCiB7CkBAIC0xMTUwLDYgKzExNzksOCBAQCBpOTE1X2dlbV9kb19leGVjYnVm ZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJaWYgKGZsYWdzICYgSTkx NV9ESVNQQVRDSF9TRUNVUkUgJiYgIWJhdGNoX29iai0+aGFzX2dsb2JhbF9ndHRfbWFwcGluZykK IAkJaTkxNV9nZW1fZ3R0X2JpbmRfb2JqZWN0KGJhdGNoX29iaiwgYmF0Y2hfb2JqLT5jYWNoZV9s ZXZlbCk7CiAKKwlpOTE1X2dlbV9leGVjYnVmZmVyX21hcmtfZmJjX2RpcnR5KHJpbmcsICZlYi0+ dm1hcyk7CisKIAlyZXQgPSBpOTE1X2dlbV9leGVjYnVmZmVyX21vdmVfdG9fZ3B1KHJpbmcsICZl Yi0+dm1hcyk7CiAJaWYgKHJldCkKIAkJZ290byBlcnI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKaW5kZXggYmNlNmUwNy4uYzI5ZTlkNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwpAQCAtODA3NCw2ICs4MDc0LDIxIEBAIHZvaWQgaW50ZWxfbWFya19pZGxlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWdlbjZfcnBzX2lkbGUoZGV2LT5kZXZfcHJpdmF0ZSk7 CiB9CiAKK2Jvb2wgaW50ZWxfZmJfb2JqX2hhc19mYmMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCisJ LyogY2hlY2sgZm9yIHBvdGVudGlhbCBzY2Fub3V0ICovCisJaWYgKCFvYmotPnBpbl9kaXNwbGF5 KQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoIWRldl9wcml2LT5mYmMuZmIpCisJCXJldHVybiBm YWxzZTsKKworCXJldHVybiB0b19pbnRlbF9mcmFtZWJ1ZmZlcihkZXZfcHJpdi0+ZmJjLmZiKS0+ b2JqID09IG9iajsKK30KKwogdm9pZCBpbnRlbF9tYXJrX2ZiX2J1c3koc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIAkJCXN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZykKIHsK QEAgLTgwOTEsOCArODEwNiw2IEBAIHZvaWQgaW50ZWxfbWFya19mYl9idXN5KHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQljb250aW51ZTsKIAogCQlpbnRlbF9pbmNyZWFzZV9w bGxjbG9jayhjcnRjKTsKLQkJaWYgKHJpbmcgJiYgaW50ZWxfZmJjX2VuYWJsZWQoZGV2KSkKLQkJ CXJpbmctPmZiY19kaXJ0eSA9IHRydWU7CiAJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CmluZGV4IDZkNzAxZTcuLjVjN2U4YjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC02 MTQsNiArNjE0LDcgQEAgdm9pZCBpbnRlbF9kZGlfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIC8qIGludGVsX2Rpc3BsYXkuYyAqLwogaW50IGludGVsX3BjaF9yYXdj bGsoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGludGVsX21hcmtfYnVzeShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKK2Jvb2wgaW50ZWxfZmJfb2JqX2hhc19mYmMoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaik7CiB2b2lkIGludGVsX21hcmtfZmJfYnVzeShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJc3RydWN0IGludGVsX3JpbmdfYnVmZmVyICpyaW5n KTsKIHZvaWQgaW50ZWxfbWFya19pZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDQ2NDliZjUuLjY0ZmJhYjUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTIwNyw2ICsyMDcsNTcg QEAgaW50ZWxfZW1pdF9wb3N0X3N5bmNfbm9uemVyb19mbHVzaChzdHJ1Y3QgaW50ZWxfcmluZ19i dWZmZXIgKnJpbmcpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgZ2VuNl9ibHRfZmJjX3Ry YWNraW5nKHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZykKK3sKKwlpbnQgcmV0OworCisJ aWYgKCFyaW5nLT5mYmNfYWRkcmVzc19kaXJ0eSkKKwkJcmV0dXJuIDA7CisKKwlyZXQgPSBpbnRl bF9yaW5nX2JlZ2luKHJpbmcsIDQpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpbnRl bF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7CisJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0xP QURfUkVHSVNURVJfSU1NKDEpKTsKKwlpbnRlbF9yaW5nX2VtaXQocmluZywgR0VONl9CTElUVEVS X0VDT1NLUEQpOworCWlmIChyaW5nLT5mYmNfYWRkcmVzcyAhPSAtMSkKKwkJaW50ZWxfcmluZ19l bWl0KHJpbmcsIF9NQVNLRURfQklUX0VOQUJMRShHRU42X0JMSVRURVJfRkJDX05PVElGWSkpOwor CWVsc2UKKwkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIF9NQVNLRURfQklUX0RJU0FCTEUoR0VONl9C TElUVEVSX0ZCQ19OT1RJRlkpKTsKKwlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CisKKwlyaW5n LT5mYmNfYWRkcmVzc19kaXJ0eSA9IGZhbHNlOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQgZ2VuNl9yZW5kZXJfZmJjX3RyYWNraW5nKHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmlu ZykKK3sKKwlpbnQgcmV0OworCisJaWYgKCFyaW5nLT5mYmNfYWRkcmVzc19kaXJ0eSkKKwkJcmV0 dXJuIDA7CisKKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDQpOworCWlmIChyZXQpCisJ CXJldHVybiByZXQ7CisKKwlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7CisJaW50ZWxf cmluZ19lbWl0KHJpbmcsIE1JX0xPQURfUkVHSVNURVJfSU1NKDEpKTsKKwlpbnRlbF9yaW5nX2Vt aXQocmluZywgSUxLX0ZCQ19SVF9CQVNFKTsKKwlpZiAocmluZy0+ZmJjX2FkZHJlc3MgIT0gLTEp CisJCWludGVsX3JpbmdfZW1pdChyaW5nLCByaW5nLT5mYmNfYWRkcmVzcyB8CisJCQkJU05CX0ZC Q19GUk9OVF9CVUZGRVIgfCBJTEtfRkJDX1JUX1ZBTElEKTsKKwllbHNlCisJCWludGVsX3Jpbmdf ZW1pdChyaW5nLCAwKTsKKwlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CisKKwlyaW5nLT5mYmNf YWRkcmVzc19kaXJ0eSA9IGZhbHNlOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQKIGdl bjZfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGludGVsX3JpbmdfYnVmZmVyICpyaW5nLAogICAg ICAgICAgICAgICAgICAgICAgICAgIHUzMiBpbnZhbGlkYXRlX2RvbWFpbnMsIHUzMiBmbHVzaF9k b21haW5zKQpAQCAtMjU2LDYgKzMwNyw5IEBAIGdlbjZfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0 IGludGVsX3JpbmdfYnVmZmVyICpyaW5nLAogCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsKIAlp bnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CiAKKwlpZiAoaW52YWxpZGF0ZV9kb21haW5zKQorCQly ZXR1cm4gZ2VuNl9yZW5kZXJfZmJjX3RyYWNraW5nKHJpbmcpOworCiAJcmV0dXJuIDA7CiB9CiAK QEAgLTE4MzksNyArMTg5Myw5IEBAIHN0YXRpYyBpbnQgZ2VuNl9yaW5nX2ZsdXNoKHN0cnVjdCBp bnRlbF9yaW5nX2J1ZmZlciAqcmluZywKIAl9CiAJaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOwog Ci0JaWYgKElTX0dFTjcoZGV2KSAmJiAhaW52YWxpZGF0ZSAmJiBmbHVzaCkKKwlpZiAoaW52YWxp ZGF0ZSkKKwkJcmV0dXJuIGdlbjZfYmx0X2ZiY190cmFja2luZyhyaW5nKTsKKwllbHNlIGlmIChm bHVzaCAmJiBJU19HRU43KGRldikpCiAJCXJldHVybiBnZW43X3JpbmdfZmJjX2ZsdXNoKHJpbmcs IEZCQ19SRU5EX0NBQ0hFX0NMRUFOKTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDcxYTczZjQuLjFlNWJiZDYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTE0Myw4ICsxNDMsMTAgQEAgc3RydWN0ICBp bnRlbF9yaW5nX2J1ZmZlciB7CiAJICovCiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpw cmVhbGxvY2F0ZWRfbGF6eV9yZXF1ZXN0OwogCXUzMiBvdXRzdGFuZGluZ19sYXp5X3NlcW5vOwor CXUzMiBmYmNfYWRkcmVzczsKIAlib29sIGdwdV9jYWNoZXNfZGlydHk7CiAJYm9vbCBmYmNfZGly dHk7CisJYm9vbCBmYmNfYWRkcmVzc19kaXJ0eTsKIAogCXdhaXRfcXVldWVfaGVhZF90IGlycV9x dWV1ZTsKIAotLSAKMS44LjEuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK