From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH v4 06/10] drm/i915: Implement LRI based FBC tracking Date: Thu, 21 Nov 2013 13:14:10 +0200 Message-ID: <1385032450-12366-1-git-send-email-ville.syrjala@linux.intel.com> References: <20131120231706.GA13412@nuc-i3427.alporthouse.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 36C0FFD587 for ; Thu, 21 Nov 2013 03:14:14 -0800 (PST) In-Reply-To: <20131120231706.GA13412@nuc-i3427.alporthouse.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 KSBkb2Vzbid0CiAgICBuZWVkIHRvIHVwc2V0IGxvY2tkZXAgYW55bW9yZQp2NDogVXNlIHw9IGlu c3RlYWQgb2YgPSB0byB1cGRhdGUgZmJjX2FkZHJlc3NfZGlydHkKClNpZ25lZC1vZmYtYnk6IFZp bGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAgIHwgIDcgKysrKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHwgMzEgKysrKysrKysrKysrKysrKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgIHwgMTcgKysrKysrKy0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgfCAgMSArCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgICAgfCA1OCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aCAgICB8ICAyICsrCiA2IGZpbGVzIGNoYW5nZWQsIDExMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRl eHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCAyZWMx MjJhLi40YjU1NDcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCkBA IC00MDIsNiArNDAyLDEzIEBAIG1pX3NldF9jb250ZXh0KHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZl ciAqcmluZywKIAogCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKIAorCS8qCisJICogRkJDIFJU IGFkZHJlc3MgaXMgc3RvcmVkIGluIHRoZSBjb250ZXh0LCBzbyB3ZSBtYXkgaGF2ZSBqdXN0CisJ ICogcmVzdG9yZWQgaXQgdG8gYW4gb2xkIHZhbHVlLiBNYWtlIHN1cmUgd2UgZW1pdCBhIG5ldyBM UkkKKwkgKiB0byB1cGRhdGUgdGhlIGFkZHJlc3MuCisJICovCisJcmluZy0+ZmJjX2FkZHJlc3Nf ZGlydHkgPSB0cnVlOworCiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZXhlY2J1ZmZlci5jCmluZGV4IDg4NWQ1OTUuLjJkOTZlZGYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTg4Niw2ICs4ODYsMzUgQEAg dmFsaWRhdGVfZXhlY19saXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyICpleGVj LAogfQogCiBzdGF0aWMgdm9pZAoraTkxNV9nZW1fZXhlY2J1ZmZlcl9tYXJrX2ZiY19kaXJ0eShz dHJ1Y3QgaW50ZWxfcmluZ19idWZmZXIgKnJpbmcsCisJCQkJICAgc3RydWN0IGxpc3RfaGVhZCAq dm1hcykKK3sKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqZmJjX29iaiA9IE5VTEw7CisJdTMyIGZiY19hZGRyZXNzID0gLTE7CisKKwlsaXN0X2Zv cl9lYWNoX2VudHJ5KHZtYSwgdm1hcywgZXhlY19saXN0KSB7CisJCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmogPSB2bWEtPm9iajsKKworCQlpZiAob2JqLT5iYXNlLnBlbmRpbmdfd3Jp dGVfZG9tYWluICYmCisJCSAgICBpbnRlbF9mYl9vYmpfaGFzX2ZiYyhvYmopKSB7CisJCQlXQVJO X09OKGZiY19vYmogJiYgZmJjX29iaiAhPSBvYmopOworCQkJZmJjX29iaiA9IG9iajsKKwkJfQor CX0KKworCWlmIChmYmNfb2JqKQorCQlmYmNfYWRkcmVzcyA9IGk5MTVfZ2VtX29ial9nZ3R0X29m ZnNldChmYmNfb2JqKTsKKworCS8qIG5lZWQgdG8gbnVrZS9jYWNoZV9jbGVhbiBvbiBJVkIrPyAq LworCXJpbmctPmZiY19kaXJ0eSA9IGZiY19vYmogIT0gTlVMTDsKKworCS8qIG5lZWQgdG8gdXBk YXRlIEZCQyB0cmFja2luZz8gKi8KKwlyaW5nLT5mYmNfYWRkcmVzc19kaXJ0eSB8PSBmYmNfYWRk cmVzcyAhPSByaW5nLT5mYmNfYWRkcmVzczsKKwlyaW5nLT5mYmNfYWRkcmVzcyA9IGZiY19hZGRy ZXNzOworfQorCitzdGF0aWMgdm9pZAogaTkxNV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2 ZShzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZl ciAqcmluZykKIHsKQEAgLTExNTAsNiArMTE3OSw4IEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAoZmxhZ3MgJiBJOTE1X0RJ U1BBVENIX1NFQ1VSRSAmJiAhYmF0Y2hfb2JqLT5oYXNfZ2xvYmFsX2d0dF9tYXBwaW5nKQogCQlp OTE1X2dlbV9ndHRfYmluZF9vYmplY3QoYmF0Y2hfb2JqLCBiYXRjaF9vYmotPmNhY2hlX2xldmVs KTsKIAorCWk5MTVfZ2VtX2V4ZWNidWZmZXJfbWFya19mYmNfZGlydHkocmluZywgJmViLT52bWFz KTsKKwogCXJldCA9IGk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19ncHUocmluZywgJmViLT52 bWFzKTsKIAlpZiAocmV0KQogCQlnb3RvIGVycjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwppbmRleCAzMjZjZWNhLi40MTU1ODE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCkBAIC04MTUyLDYgKzgxNTIsMjEgQEAgdm9pZCBpbnRlbF9tYXJrX2lkbGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkJZ2VuNl9ycHNfaWRsZShkZXYtPmRldl9wcml2YXRlKTsKIH0K IAorYm9vbCBpbnRlbF9mYl9vYmpfaGFzX2ZiYyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2OworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisKKwkvKiBj aGVjayBmb3IgcG90ZW50aWFsIHNjYW5vdXQgKi8KKwlpZiAoIW9iai0+cGluX2Rpc3BsYXkpCisJ CXJldHVybiBmYWxzZTsKKworCWlmICghZGV2X3ByaXYtPmZiYy5mYikKKwkJcmV0dXJuIGZhbHNl OworCisJcmV0dXJuIHRvX2ludGVsX2ZyYW1lYnVmZmVyKGRldl9wcml2LT5mYmMuZmIpLT5vYmog PT0gb2JqOworfQorCiB2b2lkIGludGVsX21hcmtfZmJfYnVzeShzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAogCQkJc3RydWN0IGludGVsX3JpbmdfYnVmZmVyICpyaW5nKQogewpAQCAt ODE2OSw4ICs4MTg0LDYgQEAgdm9pZCBpbnRlbF9tYXJrX2ZiX2J1c3koc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKIAkJCWNvbnRpbnVlOwogCiAJCWludGVsX2luY3JlYXNlX3BsbGNs b2NrKGNydGMpOwotCQlpZiAocmluZyAmJiBpbnRlbF9mYmNfZW5hYmxlZChkZXYpKQotCQkJcmlu Zy0+ZmJjX2RpcnR5ID0gdHJ1ZTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5k ZXggMDIzMTI4MS4uMTE5YmI5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTYyNSw2 ICs2MjUsNyBAQCB2b2lkIGludGVsX2RkaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogLyogaW50ZWxfZGlzcGxheS5jICovCiBpbnQgaW50ZWxfcGNoX3Jhd2Nsayhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgaW50ZWxfbWFya19idXN5KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOworYm9vbCBpbnRlbF9mYl9vYmpfaGFzX2ZiYyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKTsKIHZvaWQgaW50ZWxfbWFya19mYl9idXN5KHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmosCiAJCQlzdHJ1Y3QgaW50ZWxfcmluZ19idWZmZXIgKnJpbmcpOwog dm9pZCBpbnRlbF9tYXJrX2lkbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggYjY1ZjRkNy4uMmU2MmQ3NiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtMjA3LDYgKzIwNyw1NyBAQCBp bnRlbF9lbWl0X3Bvc3Rfc3luY19ub256ZXJvX2ZsdXNoKHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZl ciAqcmluZykKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBnZW42X2JsdF9mYmNfdHJhY2tp bmcoc3RydWN0IGludGVsX3JpbmdfYnVmZmVyICpyaW5nKQoreworCWludCByZXQ7CisKKwlpZiAo IXJpbmctPmZiY19hZGRyZXNzX2RpcnR5KQorCQlyZXR1cm4gMDsKKworCXJldCA9IGludGVsX3Jp bmdfYmVnaW4ocmluZywgNCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWludGVsX3Jp bmdfZW1pdChyaW5nLCBNSV9OT09QKTsKKwlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTE9BRF9S RUdJU1RFUl9JTU0oMSkpOworCWludGVsX3JpbmdfZW1pdChyaW5nLCBHRU42X0JMSVRURVJfRUNP U0tQRCk7CisJaWYgKHJpbmctPmZiY19hZGRyZXNzICE9IC0xKQorCQlpbnRlbF9yaW5nX2VtaXQo cmluZywgX01BU0tFRF9CSVRfRU5BQkxFKEdFTjZfQkxJVFRFUl9GQkNfTk9USUZZKSk7CisJZWxz ZQorCQlpbnRlbF9yaW5nX2VtaXQocmluZywgX01BU0tFRF9CSVRfRElTQUJMRShHRU42X0JMSVRU RVJfRkJDX05PVElGWSkpOworCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKKworCXJpbmctPmZi Y19hZGRyZXNzX2RpcnR5ID0gZmFsc2U7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBn ZW42X3JlbmRlcl9mYmNfdHJhY2tpbmcoc3RydWN0IGludGVsX3JpbmdfYnVmZmVyICpyaW5nKQor eworCWludCByZXQ7CisKKwlpZiAoIXJpbmctPmZiY19hZGRyZXNzX2RpcnR5KQorCQlyZXR1cm4g MDsKKworCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgNCk7CisJaWYgKHJldCkKKwkJcmV0 dXJuIHJldDsKKworCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKKwlpbnRlbF9yaW5n X2VtaXQocmluZywgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOworCWludGVsX3JpbmdfZW1pdChy aW5nLCBJTEtfRkJDX1JUX0JBU0UpOworCWlmIChyaW5nLT5mYmNfYWRkcmVzcyAhPSAtMSkKKwkJ aW50ZWxfcmluZ19lbWl0KHJpbmcsIHJpbmctPmZiY19hZGRyZXNzIHwKKwkJCQlTTkJfRkJDX0ZS T05UX0JVRkZFUiB8IElMS19GQkNfUlRfVkFMSUQpOworCWVsc2UKKwkJaW50ZWxfcmluZ19lbWl0 KHJpbmcsIDApOworCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKKworCXJpbmctPmZiY19hZGRy ZXNzX2RpcnR5ID0gZmFsc2U7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludAogZ2VuNl9y ZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfcmluZ19idWZmZXIgKnJpbmcsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgdTMyIGludmFsaWRhdGVfZG9tYWlucywgdTMyIGZsdXNoX2RvbWFp bnMpCkBAIC0yNTYsNiArMzA3LDkgQEAgZ2VuNl9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgaW50 ZWxfcmluZ19idWZmZXIgKnJpbmcsCiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOwogCWludGVs X3JpbmdfYWR2YW5jZShyaW5nKTsKIAorCWlmIChpbnZhbGlkYXRlX2RvbWFpbnMpCisJCXJldHVy biBnZW42X3JlbmRlcl9mYmNfdHJhY2tpbmcocmluZyk7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAt MTg0MCw3ICsxODk0LDkgQEAgc3RhdGljIGludCBnZW42X3JpbmdfZmx1c2goc3RydWN0IGludGVs X3JpbmdfYnVmZmVyICpyaW5nLAogCX0KIAlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CiAKLQlp ZiAoSVNfR0VONyhkZXYpICYmICFpbnZhbGlkYXRlICYmIGZsdXNoKQorCWlmIChpbnZhbGlkYXRl KQorCQlyZXR1cm4gZ2VuNl9ibHRfZmJjX3RyYWNraW5nKHJpbmcpOworCWVsc2UgaWYgKGZsdXNo ICYmIElTX0dFTjcoZGV2KSkKIAkJcmV0dXJuIGdlbjdfcmluZ19mYmNfZmx1c2gocmluZywgRkJD X1JFTkRfQ0FDSEVfQ0xFQU4pOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKaW5kZXggNzFhNzNmNC4uMWU1YmJkNiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtMTQzLDggKzE0MywxMCBAQCBzdHJ1Y3QgIGludGVs X3JpbmdfYnVmZmVyIHsKIAkgKi8KIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnByZWFs bG9jYXRlZF9sYXp5X3JlcXVlc3Q7CiAJdTMyIG91dHN0YW5kaW5nX2xhenlfc2Vxbm87CisJdTMy IGZiY19hZGRyZXNzOwogCWJvb2wgZ3B1X2NhY2hlc19kaXJ0eTsKIAlib29sIGZiY19kaXJ0eTsK Kwlib29sIGZiY19hZGRyZXNzX2RpcnR5OwogCiAJd2FpdF9xdWV1ZV9oZWFkX3QgaXJxX3F1ZXVl OwogCi0tIAoxLjguMy4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=