From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH 08/15] drm/i915: GuC submission setup, phase 1 Date: Fri, 3 Jul 2015 13:30:30 +0100 Message-ID: <1435926637-30892-9-git-send-email-david.s.gordon@intel.com> References: <1435926637-30892-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 B51354A0A1 for ; Fri, 3 Jul 2015 05:31:04 -0700 (PDT) In-Reply-To: <1435926637-30892-1-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpUaGlzIGFkZHMgdGhlIGZpcnN0IG9m IHRoZSBkYXRhIHN0cnVjdHVyZXMgdXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZQpHdUMgKHRo ZSBwb29sIG9mIGd1Y19jb250ZXh0IHN0cnVjdHVyZXMpLgoKV2UgY3JlYXRlIGEgR3VDLXNwZWNp ZmljIHdyYXBwZXIgcm91bmQgdGhlIEdFTSBvYmplY3QgYWxsb2NhdG9yIGFzIGFsbApHRU0gb2Jq ZWN0cyBzaGFyZWQgd2l0aCB0aGUgR3VDIG11c3QgYmUgcGlubmVkIGludG8gR0dUVCBzcGFjZSBh dCBhbgphZGRyZXNzIHRoYXQgaXMgTk9UIGluIHRoZSByYW5nZSBbMC4uV09QQ01fU0laRSksIGFz IHRoYXQgcmFuZ2Ugb2YgR0dUVAphZGRyZXNzZXMgaXMgbm90IGFjY2Vzc2libGUgdG8gdGhlIEd1 QyAoZnJvbSB0aGUgR3VDJ3MgcG9pbnQgb2YgdmlldywKaXQncyBwZXJtYW5lbnRseSByZXNlcnZl ZCBmb3Igb3RoZXIgb2JqZWN0cyBzdWNoIGFzIHRoZSBCb290Uk9NICYgU1JBTSkuCgpMYXRlciwg d2Ugd2lsbCBuZWVkIHRvIGFsbG9jYXRlIGFkZGl0aW9uYWwgR3VDLXNoYXJhYmxlIG9iamVjdHMg Zm9yIHRoZQpzdWJtaXNzaW9uIGNsaWVudChzKSBhbmQgdGhlIEd1QydzIGRlYnVnIGxvZy4KCnYy OgogICAgUmVtb3ZlIHJlZHVuZGFudCBpbml0aWFsaXNhdGlvbiBbQ2hyaXMgV2lsc29uXQogICAg RGVmZXIgYWRkaW5nIHN0cnVjdCBtZW1iZXJzIHVudGlsIG5lZWRlZCBbQ2hyaXMgV2lsc29uXQog ICAgTG9jYWwgZnVuY3Rpb25zIHNob3VsZCBwYXNzIGRldl9wcml2IHJhdGhlciB0aGFuIGRldiBb Q2hyaXMgV2lsc29uXQoKSXNzdWU6IFZJWi00ODg0ClNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5 dS5kYWlAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jk b25AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAg ICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5j IHwgMTE0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgIDcgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Y19sb2FkZXIuYyAgICB8ICAyMSArKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTQ0IGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4 IDYyYThjODMuLjAwZjg5ZDI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtl ZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtNDMsNyArNDMsOCBA QCBpOTE1LXkgKz0gaTkxNV9jbWRfcGFyc2VyLm8gXAogaTkxNS15ICs9IGludGVsX3VjX2xvYWRl ci5vCiAKICMgZ2VuZXJhbC1wdXJwb3NlIG1pY3JvY29udHJvbGxlciAoR3VDKSBzdXBwb3J0Ci1p OTE1LXkgKz0gaW50ZWxfZ3VjX2xvYWRlci5vCitpOTE1LXkgKz0gaW50ZWxfZ3VjX2xvYWRlci5v IFwKKwkgIGk5MTVfZ3VjX3N1Ym1pc3Npb24ubwogCiAjIGF1dG9nZW5lcmF0ZWQgbnVsbCByZW5k ZXIgc3RhdGUKIGk5MTUteSArPSBpbnRlbF9yZW5kZXJzdGF0ZV9nZW42Lm8gXApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjcwYTA0MDUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5 cmlnaHQgwqkgMjAxNCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisg KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl cyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0 byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu c2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywg c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUg bmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1 YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUg QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFN QUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBD T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MK KyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5o PgorI2luY2x1ZGUgPGxpbnV4L2NpcmNfYnVmLmg+CisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNp bmNsdWRlICJpbnRlbF9ndWMuaCIKKworLyoqCisgKiBnZW1fYWxsb2NhdGVfZ3VjX29iaigpIC0g QWxsb2NhdGUgZ2VtIG9iamVjdCBmb3IgR3VDIHVzYWdlCisgKiBAZGV2Oglkcm0gZGV2aWNlCisg KiBAc2l6ZToJc2l6ZSBvZiBvYmplY3QKKyAqCisgKiBUaGlzIGlzIGEgd3JhcHBlciB0byBjcmVh dGUgYSBnZW0gb2JqLiBJbiBvcmRlciB0byB1c2UgaXQgaW5zaWRlIEd1QywgdGhlCisgKiBvYmpl Y3QgbmVlZHMgdG8gYmUgcGlubmVkIGxpZmV0aW1lLiBBbHNvIHdlIG11c3QgcGluIGl0IHRvIGd0 dCBzcGFjZSBvdGhlcgorICogdGhhbiBbMCwgR1VDX1dPUENNX1NJWkVdIGJlY2F1c2UgdGhpcyBy YW5nZSBpcyByZXNlcnZlZCBpbnNpZGUgR3VDLgorICoKKyAqIFJldHVybjoJQSBkcm1faTkxNV9n ZW1fb2JqZWN0IGlmIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBOVUxMLgorICovCitzdGF0aWMgc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmdlbV9hbGxvY2F0ZV9ndWNfb2JqKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCisJCQkJCQkJdTMyIHNpemUpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iajsKKworCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIHNpemUpOwor CWlmICghb2JqKQorCQlyZXR1cm4gTlVMTDsKKworCWlmIChpOTE1X2dlbV9vYmplY3RfZ2V0X3Bh Z2VzKG9iaikpIHsKKwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7CisJ CXJldHVybiBOVUxMOworCX0KKworCWlmIChpOTE1X2dlbV9vYmpfZ2d0dF9waW4ob2JqLCBQQUdF X1NJWkUsCisJCQlQSU5fT0ZGU0VUX0JJQVMgfCBHVUNfV09QQ01fU0laRV9WQUxVRSkpIHsKKwkJ ZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7CisJCXJldHVybiBOVUxMOwor CX0KKworCXJldHVybiBvYmo7Cit9CisKKy8qKgorICogZ2VtX3JlbGVhc2VfZ3VjX29iaigpIC0g UmVsZWFzZSBnZW0gb2JqZWN0IGFsbG9jYXRlZCBmb3IgR3VDIHVzYWdlCisgKiBAb2JqOglnZW0g b2JqIHRvIGJlIHJlbGVhc2VkCisgICovCitzdGF0aWMgdm9pZCBnZW1fcmVsZWFzZV9ndWNfb2Jq KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJaWYgKCFvYmopCisJCXJldHVy bjsKKworCWlmIChpOTE1X2dlbV9vYmpfaXNfcGlubmVkKG9iaikpCisJCWk5MTVfZ2VtX29iamVj dF9nZ3R0X3VucGluKG9iaik7CisKKwlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5i YXNlKTsKK30KKworLyoKKyAqIFNldCB1cCB0aGUgbWVtb3J5IHJlc291cmNlcyB0byBiZSBzaGFy ZWQgd2l0aCB0aGUgR3VDLiAgQXQgdGhpcyBwb2ludCwKKyAqIHdlIHJlcXVpcmUganVzdCBvbmUg b2JqZWN0IHRoYXQgY2FuIGJlIG1hcHBlZCB0aHJvdWdoIHRoZSBHR1RULgorICovCitpbnQgaTkx NV9ndWNfc3VibWlzc2lvbl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwljb25zdCBz aXplX3QgY3R4c2l6ZSA9IHNpemVvZihzdHJ1Y3QgZ3VjX2NvbnRleHRfZGVzYyk7CisJY29uc3Qg c2l6ZV90IHBvb2xzaXplID0gR1VDX01BWF9HUFVfQ09OVEVYVFMgKiBjdHhzaXplOworCWNvbnN0 IHNpemVfdCBnZW1zaXplID0gcm91bmRfdXAocG9vbHNpemUsIFBBR0VfU0laRSk7CisJc3RydWN0 IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7CisKKwlpZiAoIWk5MTUuZW5hYmxlX2d1 Y19zdWJtaXNzaW9uKQorCQlyZXR1cm4gMDsgLyogbm90IGVuYWJsZWQgICovCisKKwlpZiAoZ3Vj LT5jdHhfcG9vbF9vYmopCisJCXJldHVybiAwOyAvKiBhbHJlYWR5IGFsbG9jYXRlZCAqLworCisJ Z3VjLT5jdHhfcG9vbF9vYmogPSBnZW1fYWxsb2NhdGVfZ3VjX29iaihkZXZfcHJpdi0+ZGV2LCBn ZW1zaXplKTsKKwlpZiAoIWd1Yy0+Y3R4X3Bvb2xfb2JqKQorCQlyZXR1cm4gLUVOT01FTTsKKwor CWlkYV9pbml0KCZndWMtPmN0eF9pZHMpOworCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgaTkxNV9n dWNfc3VibWlzc2lvbl9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKKworCWlmIChndWMtPmN0eF9wb29sX29iaikK KwkJaWRhX2Rlc3Ryb3koJmd1Yy0+Y3R4X2lkcyk7CisJZ2VtX3JlbGVhc2VfZ3VjX29iaihndWMt PmN0eF9wb29sX29iaik7CisJZ3VjLT5jdHhfcG9vbF9vYmogPSBOVUxMOworfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWMuaAppbmRleCBiMzhkMmIwLi5mOWU1ZTc0IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWMuaApAQCAtMzksNiArMzksOSBAQCBzdHJ1Y3QgaW50ZWxfZ3VjIHsKIAl1aW50MTZfdCBm d19taW5vcl9mb3VuZDsKIAogCXVpbnQzMl90IGxvZ19mbGFnczsKKworCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpjdHhfcG9vbF9vYmo7CisJc3RydWN0IGlkYSBjdHhfaWRzOwogfTsKIAog LyogaW50ZWxfZ3VjX2xvYWRlci5jICovCkBAIC00Niw0ICs0OSw4IEBAIGV4dGVybiB2b2lkIGlu dGVsX2d1Y191Y29kZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogZXh0ZXJuIGludCBp bnRlbF9ndWNfdWNvZGVfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4dGVybiB2b2lk IGludGVsX2d1Y191Y29kZV9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCisvKiBpOTE1 X2d1Y19zdWJtaXNzaW9uLmMgKi8KK2ludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7Cit2b2lkIGk5MTVfZ3VjX3N1Ym1pc3Npb25fZmluaShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNf bG9hZGVyLmMKaW5kZXggNDkyOTgzOC4uZGVlYWEyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Y19sb2FkZXIuYwpAQCAtMTExLDYgKzExMSwyMSBAQCBzdGF0aWMgdm9pZCBzZXRfZ3Vj X2luaXRfcGFyYW1zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCWk5MTUu Z3VjX2xvZ19sZXZlbCA8PCBHVUNfTE9HX1ZFUkJPU0lUWV9TSElGVDsKIAl9CiAKKwkvKiBJZiBH dUMgc2NoZWR1bGluZyBpcyBlbmFibGVkLCBzZXR1cCBwYXJhbXMgaGVyZS4gKi8KKwlpZiAoaTkx NS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pIHsKKwkJdTMyIHBncyA9IGk5MTVfZ2VtX29ial9nZ3R0 X29mZnNldChkZXZfcHJpdi0+Z3VjLmN0eF9wb29sX29iaik7CisJCXUzMiBjdHhfaW5fMTYgPSBH VUNfTUFYX0dQVV9DT05URVhUUyAvIDE2OworCisJCXBncyA+Pj0gUEFHRV9TSElGVDsKKwkJcGFy YW1zW0dVQ19DVExfQ1RYSU5GT10gPSAocGdzIDw8IEdVQ19DVExfQkFTRV9BRERSX1NISUZUKSB8 CisJCQkoY3R4X2luXzE2IDw8IEdVQ19DVExfQ1RYTlVNX0lOMTZfU0hJRlQpOworCisJCXBhcmFt c1tHVUNfQ1RMX0ZFQVRVUkVdIHw9IEdVQ19DVExfS0VSTkVMX1NVQk1JU1NJT05TOworCisJCS8q IFVubWFzayB0aGlzIGJpdCB0byBlbmFibGUgR3VDIHNjaGVkdWxlciAqLworCQlwYXJhbXNbR1VD X0NUTF9GRUFUVVJFXSAmPSB+R1VDX0NUTF9ESVNBQkxFX1NDSEVEVUxFUjsKKwl9CisKIAlJOTE1 X1dSSVRFKFNPRlRfU0NSQVRDSCgwKSwgMCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgR1VDX0NUTF9N QVhfRFdPUkRTOyBpKyspCkBAIC00MTQsNiArNDI5LDEwIEBAIGludCBpbnRlbF9ndWNfdWNvZGVf bG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmIChlcnIpCiAJCWdvdG8gZmFpbDsKIAor CWVyciA9IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChkZXYpOworCWlmIChlcnIpCisJCWdvdG8g ZmFpbDsKKwogCWVyciA9IGd1Y191Y29kZV94ZmVyKGRldl9wcml2KTsKIAlpZiAoZXJyKQogCQln b3RvIGZhaWw7CkBAIC00NDQsNSArNDYzLDcgQEAgdm9pZCBpbnRlbF9ndWNfdWNvZGVfZmluaShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2 X3ByaXYtPmd1Yy5ndWNfZnc7CiAKKwlpOTE1X2d1Y19zdWJtaXNzaW9uX2ZpbmkoZGV2KTsKKwog CWludGVsX3VjX2Z3X2ZpbmkoZ3VjX2Z3KTsKIH0KLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=