From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-x243.google.com (mail-wr0-x243.google.com [IPv6:2a00:1450:400c:c0c::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id B89DE6E2B3 for ; Thu, 29 Mar 2018 13:05:39 +0000 (UTC) Received: by mail-wr0-x243.google.com with SMTP id y55so5342634wry.3 for ; Thu, 29 Mar 2018 06:05:39 -0700 (PDT) From: Tvrtko Ursulin Date: Thu, 29 Mar 2018 14:05:27 +0100 Message-Id: <20180329130528.8302-1-tvrtko.ursulin@linux.intel.com> Subject: [igt-dev] [PATCH i-g-t v2 1/2] tests/gem_eio: Never re-use contexts which were in the middle of GPU reset List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkNvbnRleHRz IGV4ZWN1dGluZyB3aGVuIHJlc2V0IHRyaWdnZXJzIGFyZSBwb3RlbnRpYWx5IGNvcnJ1cHQgc28g dHJ5aW5nIHRvCnVzZSB0aGVtIGZyb20gYSBzdWJzZXF1ZW50IHRlc3QgKGxpa2UgdGhlIGRlZmF1 bHQgY29udGV4dCkgY2FuIGhhbmcgdGhlCkdQVSBvciBldmVuIHRoZSBkcml2ZXIuCgpXb3JrYXJv dW5kIHRoYXQgYnkgYWx3YXlzIGNyZWF0aW5nIGEgZGVkaWNhdGVkIGNvbnRleHQgd2hpY2ggd2ls bCBiZQpydW5uaW5nIHdoZW4gR1BVIHJlc2V0IGhhcHBlbnMuCgp2MjoKICogRXhwb3J0IGFuZCB1 c2UgZ2VtX3Jlb3Blbl9kZXZpY2Ugc28gdGhlIHRlc3Qgd29ya3Mgb24gb2xkIGdlbnMgYXMgd2Vs bC4KICAgKENocmlzIFdpbHNvbikKClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0 a28udXJzdWxpbkBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KLS0tCiBsaWIvaTkxNS9nZW1fc3VibWlzc2lvbi5jIHwgMTEgKysr KystLQogbGliL2k5MTUvZ2VtX3N1Ym1pc3Npb24uaCB8ICAyICsrCiB0ZXN0cy9nZW1fZWlvLmMg ICAgICAgICAgIHwgNzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbGliL2k5MTUvZ2VtX3N1Ym1pc3Npb24uYyBiL2xpYi9pOTE1L2dlbV9z dWJtaXNzaW9uLmMKaW5kZXggN2QzY2JkYmY4ZTc3Li4yZmQ0NjBkNWVkMmIgMTAwNjQ0Ci0tLSBh L2xpYi9pOTE1L2dlbV9zdWJtaXNzaW9uLmMKKysrIGIvbGliL2k5MTUvZ2VtX3N1Ym1pc3Npb24u YwpAQCAtMTY1LDcgKzE2NSwxNCBAQCBib29sIGdlbV9oYXNfZ3VjX3N1Ym1pc3Npb24oaW50IGZk KQogCXJldHVybiBnZW1fc3VibWlzc2lvbl9tZXRob2QoZmQpICYgR0VNX1NVQk1JU1NJT05fR1VD OwogfQogCi1zdGF0aWMgaW50IHJlb3Blbl9kcml2ZXIoaW50IGZkKQorLyoqCisgKiBnZW1fcmVv cGVuX2RyaXZlcjoKKyAqIEBmZDogcmUtb3BlbiB0aGUgaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9y CisgKgorICogUmUtb3BlbnMgdGhlIGRybSBmZCB3aGljaCBpcyB1c2VmdWwgaW4gaW5zdGFuY2Vz IHdoZXJlIGEgY2xlYW4gZGVmYXVsdAorICogY29udGV4dCBpcyBuZWVkZWQuCisgKi8KK2ludCBn ZW1fcmVvcGVuX2RyaXZlcihpbnQgZmQpCiB7CiAJY2hhciBwYXRoWzI1Nl07CiAKQEAgLTIwMSw3 ICsyMDgsNyBAQCB2b2lkIGdlbV90ZXN0X2VuZ2luZShpbnQgaTkxNSwgdW5zaWduZWQgaW50IGVu Z2luZSkKIAkJLmJ1ZmZlcl9jb3VudCA9IDEsCiAJfTsKIAotCWk5MTUgPSByZW9wZW5fZHJpdmVy KGk5MTUpOworCWk5MTUgPSBnZW1fcmVvcGVuX2RyaXZlcihpOTE1KTsKIAlpZ3RfYXNzZXJ0KCFp c193ZWRnZWQoaTkxNSkpOwogCiAJb2JqLmhhbmRsZSA9IGdlbV9jcmVhdGUoaTkxNSwgNDA5Nik7 CmRpZmYgLS1naXQgYS9saWIvaTkxNS9nZW1fc3VibWlzc2lvbi5oIGIvbGliL2k5MTUvZ2VtX3N1 Ym1pc3Npb24uaAppbmRleCA2YjM5YTA1MzIyOTUuLmY5NGVhYmIyMDFiNCAxMDA2NDQKLS0tIGEv bGliL2k5MTUvZ2VtX3N1Ym1pc3Npb24uaAorKysgYi9saWIvaTkxNS9nZW1fc3VibWlzc2lvbi5o CkBAIC0zNSw0ICszNSw2IEBAIGJvb2wgZ2VtX2hhc19ndWNfc3VibWlzc2lvbihpbnQgZmQpOwog CiB2b2lkIGdlbV90ZXN0X2VuZ2luZShpbnQgZmQsIHVuc2lnbmVkIGludCBlbmdpbmUpOwogCitp bnQgZ2VtX3Jlb3Blbl9kcml2ZXIoaW50IGZkKTsKKwogI2VuZGlmIC8qIEdFTV9TVUJNSVNTSU9O X0ggKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9laW8uYyBiL3Rlc3RzL2dlbV9laW8uYwppbmRl eCBiODI0ZDlkNGM5YzAuLmI3YzUwNDdmMDgxNiAxMDA2NDQKLS0tIGEvdGVzdHMvZ2VtX2Vpby5j CisrKyBiL3Rlc3RzL2dlbV9laW8uYwpAQCAtMjU1LDYgKzI1NSw3IEBAIHN0YXRpYyB2b2lkIHRl c3Rfd2FpdChpbnQgZmQsIHVuc2lnbmVkIGludCBmbGFncywgdW5zaWduZWQgaW50IHdhaXQpCiB7 CiAJaWd0X3NwaW5fdCAqaGFuZzsKIAorCWZkID0gZ2VtX3Jlb3Blbl9kcml2ZXIoZmQpOwogCWln dF9yZXF1aXJlX2dlbShmZCk7CiAKIAkvKgpAQCAtMjc2LDEwICsyNzcsMTQgQEAgc3RhdGljIHZv aWQgdGVzdF93YWl0KGludCBmZCwgdW5zaWduZWQgaW50IGZsYWdzLCB1bnNpZ25lZCBpbnQgd2Fp dCkKIAlpZ3RfcmVxdWlyZShpOTE1X3Jlc2V0X2NvbnRyb2wodHJ1ZSkpOwogCiAJdHJpZ2dlcl9y ZXNldChmZCk7CisJY2xvc2UoZmQpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0X3N1c3BlbmQoaW50 IGZkLCBpbnQgc3RhdGUpCiB7CisJZmQgPSBnZW1fcmVvcGVuX2RyaXZlcihmZCk7CisJaWd0X3Jl cXVpcmVfZ2VtKGZkKTsKKwogCS8qIERvIGEgc3VzcGVuZCBmaXJzdCBzbyB0aGF0IHdlIGRvbid0 IHNraXAgaW5zaWRlIHRoZSB0ZXN0ICovCiAJaWd0X3N5c3RlbV9zdXNwZW5kX2F1dG9yZXN1bWUo c3RhdGUsIFNVU1BFTkRfVEVTVF9ERVZJQ0VTKTsKIApAQCAtMjkxLDI3ICsyOTYsMzIgQEAgc3Rh dGljIHZvaWQgdGVzdF9zdXNwZW5kKGludCBmZCwgaW50IHN0YXRlKQogCiAJaWd0X3JlcXVpcmUo aTkxNV9yZXNldF9jb250cm9sKHRydWUpKTsKIAl0cmlnZ2VyX3Jlc2V0KGZkKTsKKwljbG9zZShm ZCk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlc3RfaW5mbGlnaHQoaW50IGZkLCB1bnNpZ25lZCBpbnQg d2FpdCkKIHsKLQljb25zdCB1aW50MzJfdCBiYmUgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwotCXN0 cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9ialsyXTsKKwlpbnQgcGFyZW50X2ZkID0g ZmQ7CiAJdW5zaWduZWQgaW50IGVuZ2luZTsKIAogCWlndF9yZXF1aXJlX2dlbShmZCk7CiAJaWd0 X3JlcXVpcmUoZ2VtX2hhc19leGVjX2ZlbmNlKGZkKSk7CiAKLQltZW1zZXQob2JqLCAwLCBzaXpl b2Yob2JqKSk7Ci0Jb2JqWzBdLmZsYWdzID0gRVhFQ19PQkpFQ1RfV1JJVEU7Ci0Jb2JqWzFdLmhh bmRsZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwotCWdlbV93cml0ZShmZCwgb2JqWzFdLmhhbmRs ZSwgMCwgJmJiZSwgc2l6ZW9mKGJiZSkpOwotCi0JZm9yX2VhY2hfZW5naW5lKGZkLCBlbmdpbmUp IHsKKwlmb3JfZWFjaF9lbmdpbmUocGFyZW50X2ZkLCBlbmdpbmUpIHsKKwkJY29uc3QgdWludDMy X3QgYmJlID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKKwkJc3RydWN0IGRybV9pOTE1X2dlbV9leGVj X29iamVjdDIgb2JqWzJdOwogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNi dWY7CiAJCWlndF9zcGluX3QgKmhhbmc7CiAJCWludCBmZW5jZVs2NF07IC8qIGNvbnNlcnZhdGl2 ZSBlc3RpbWF0ZSBvZiByaW5nIHNpemUgKi8KIAorCQlmZCA9IGdlbV9yZW9wZW5fZHJpdmVyKHBh cmVudF9mZCk7CisJCWlndF9yZXF1aXJlX2dlbShmZCk7CisKKwkJbWVtc2V0KG9iaiwgMCwgc2l6 ZW9mKG9iaikpOworCQlvYmpbMF0uZmxhZ3MgPSBFWEVDX09CSkVDVF9XUklURTsKKwkJb2JqWzFd LmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOworCQlnZW1fd3JpdGUoZmQsIG9ialsxXS5o YW5kbGUsIDAsICZiYmUsIHNpemVvZihiYmUpKTsKKwogCQlnZW1fcXVpZXNjZW50X2dwdShmZCk7 CiAJCWlndF9kZWJ1ZygiU3RhcnRpbmcgJXMgb24gZW5naW5lICclcydcbiIsIF9fZnVuY19fLCBl X18tPm5hbWUpOwogCQlpZ3RfcmVxdWlyZShpOTE1X3Jlc2V0X2NvbnRyb2woZmFsc2UpKTsKQEAg LTM0MCw2ICszNTAsOSBAQCBzdGF0aWMgdm9pZCB0ZXN0X2luZmxpZ2h0KGludCBmZCwgdW5zaWdu ZWQgaW50IHdhaXQpCiAJCWlndF9zcGluX2JhdGNoX2ZyZWUoZmQsIGhhbmcpOwogCQlpZ3RfYXNz ZXJ0KGk5MTVfcmVzZXRfY29udHJvbCh0cnVlKSk7CiAJCXRyaWdnZXJfcmVzZXQoZmQpOworCisJ CWdlbV9jbG9zZShmZCwgb2JqWzFdLmhhbmRsZSk7CisJCWNsb3NlKGZkKTsKIAl9CiB9CiAKQEAg LTM1MSw2ICszNjQsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2luZmxpZ2h0X3N1c3BlbmQoaW50IGZk KQogCWludCBmZW5jZVs2NF07IC8qIGNvbnNlcnZhdGl2ZSBlc3RpbWF0ZSBvZiByaW5nIHNpemUg Ki8KIAlpZ3Rfc3Bpbl90ICpoYW5nOwogCisJZmQgPSBnZW1fcmVvcGVuX2RyaXZlcihmZCk7CiAJ aWd0X3JlcXVpcmVfZ2VtKGZkKTsKIAlpZ3RfcmVxdWlyZShnZW1faGFzX2V4ZWNfZmVuY2UoZmQp KTsKIAlpZ3RfcmVxdWlyZShpOTE1X3Jlc2V0X2NvbnRyb2woZmFsc2UpKTsKQEAgLTM4Nyw2ICs0 MDEsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2luZmxpZ2h0X3N1c3BlbmQoaW50IGZkKQogCWlndF9z cGluX2JhdGNoX2ZyZWUoZmQsIGhhbmcpOwogCWlndF9hc3NlcnQoaTkxNV9yZXNldF9jb250cm9s KHRydWUpKTsKIAl0cmlnZ2VyX3Jlc2V0KGZkKTsKKwljbG9zZShmZCk7CiB9CiAKIHN0YXRpYyB1 aW50MzJfdCBjb250ZXh0X2NyZWF0ZV9zYWZlKGludCBpOTE1KQpAQCAtNDA4LDMzICs0MjMsMzcg QEAgc3RhdGljIHVpbnQzMl90IGNvbnRleHRfY3JlYXRlX3NhZmUoaW50IGk5MTUpCiAKIHN0YXRp YyB2b2lkIHRlc3RfaW5mbGlnaHRfY29udGV4dHMoaW50IGZkLCB1bnNpZ25lZCBpbnQgd2FpdCkK IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmpbMl07Ci0JY29uc3QgdWlu dDMyX3QgYmJlID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKKwlpbnQgcGFyZW50X2ZkID0gZmQ7CiAJ dW5zaWduZWQgaW50IGVuZ2luZTsKLQl1aW50MzJfdCBjdHhbNjRdOwogCiAJaWd0X3JlcXVpcmVf Z2VtKGZkKTsKIAlpZ3RfcmVxdWlyZShnZW1faGFzX2V4ZWNfZmVuY2UoZmQpKTsKIAlnZW1fcmVx dWlyZV9jb250ZXh0cyhmZCk7CiAKLQlmb3IgKHVuc2lnbmVkIGludCBuID0gMDsgbiA8IEFSUkFZ X1NJWkUoY3R4KTsgbisrKQotCQljdHhbbl0gPSBjb250ZXh0X2NyZWF0ZV9zYWZlKGZkKTsKLQot CW1lbXNldChvYmosIDAsIHNpemVvZihvYmopKTsKLQlvYmpbMF0uZmxhZ3MgPSBFWEVDX09CSkVD VF9XUklURTsKLQlvYmpbMV0uaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7Ci0JZ2VtX3dy aXRlKGZkLCBvYmpbMV0uaGFuZGxlLCAwLCAmYmJlLCBzaXplb2YoYmJlKSk7Ci0KLQlmb3JfZWFj aF9lbmdpbmUoZmQsIGVuZ2luZSkgeworCWZvcl9lYWNoX2VuZ2luZShwYXJlbnRfZmQsIGVuZ2lu ZSkgeworCQljb25zdCB1aW50MzJfdCBiYmUgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOworCQlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmpbMl07CiAJCXN0cnVjdCBkcm1faTkxNV9n ZW1fZXhlY2J1ZmZlcjIgZXhlY2J1ZjsKIAkJaWd0X3NwaW5fdCAqaGFuZzsKKwkJdWludDMyX3Qg Y3R4WzY0XTsKIAkJaW50IGZlbmNlWzY0XTsKIAorCQlmZCA9IGdlbV9yZW9wZW5fZHJpdmVyKHBh cmVudF9mZCk7CisJCWlndF9yZXF1aXJlX2dlbShmZCk7CisKKwkJZm9yICh1bnNpZ25lZCBpbnQg biA9IDA7IG4gPCBBUlJBWV9TSVpFKGN0eCk7IG4rKykKKwkJCWN0eFtuXSA9IGNvbnRleHRfY3Jl YXRlX3NhZmUoZmQpOworCiAJCWdlbV9xdWllc2NlbnRfZ3B1KGZkKTsKIAogCQlpZ3RfZGVidWco IlN0YXJ0aW5nICVzIG9uIGVuZ2luZSAnJXMnXG4iLCBfX2Z1bmNfXywgZV9fLT5uYW1lKTsKIAkJ aWd0X3JlcXVpcmUoaTkxNV9yZXNldF9jb250cm9sKGZhbHNlKSk7CiAKKwkJbWVtc2V0KG9iaiwg MCwgc2l6ZW9mKG9iaikpOworCQlvYmpbMF0uZmxhZ3MgPSBFWEVDX09CSkVDVF9XUklURTsKKwkJ b2JqWzFdLmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOworCQlnZW1fd3JpdGUoZmQsIG9i alsxXS5oYW5kbGUsIDAsICZiYmUsIHNpemVvZihiYmUpKTsKKwogCQloYW5nID0gc3Bpbl9zeW5j KGZkLCAwLCBlbmdpbmUpOwogCQlvYmpbMF0uaGFuZGxlID0gaGFuZy0+aGFuZGxlOwogCkBAIC00 NTgsMTIgKzQ3NywxNSBAQCBzdGF0aWMgdm9pZCB0ZXN0X2luZmxpZ2h0X2NvbnRleHRzKGludCBm ZCwgdW5zaWduZWQgaW50IHdhaXQpCiAJCX0KIAogCQlpZ3Rfc3Bpbl9iYXRjaF9mcmVlKGZkLCBo YW5nKTsKKwkJZ2VtX2Nsb3NlKGZkLCBvYmpbMV0uaGFuZGxlKTsKIAkJaWd0X2Fzc2VydChpOTE1 X3Jlc2V0X2NvbnRyb2wodHJ1ZSkpOwogCQl0cmlnZ2VyX3Jlc2V0KGZkKTsKLQl9CiAKLQlmb3Ig KHVuc2lnbmVkIGludCBuID0gMDsgbiA8IEFSUkFZX1NJWkUoY3R4KTsgbisrKQotCQlnZW1fY29u dGV4dF9kZXN0cm95KGZkLCBjdHhbbl0pOworCQlmb3IgKHVuc2lnbmVkIGludCBuID0gMDsgbiA8 IEFSUkFZX1NJWkUoY3R4KTsgbisrKQorCQkJZ2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4W25d KTsKKworCQljbG9zZShmZCk7CisJfQogfQogCiBzdGF0aWMgdm9pZCB0ZXN0X2luZmxpZ2h0X2V4 dGVybmFsKGludCBmZCkKQEAgLTQ3OCw2ICs1MDAsOSBAQCBzdGF0aWMgdm9pZCB0ZXN0X2luZmxp Z2h0X2V4dGVybmFsKGludCBmZCkKIAlpZ3RfcmVxdWlyZV9zd19zeW5jKCk7CiAJaWd0X3JlcXVp cmUoZ2VtX2hhc19leGVjX2ZlbmNlKGZkKSk7CiAKKwlmZCA9IGdlbV9yZW9wZW5fZHJpdmVyKGZk KTsKKwlpZ3RfcmVxdWlyZV9nZW0oZmQpOworCiAJZmVuY2UgPSBpZ3RfY29ya19wbHVnKCZjb3Jr LCBmZCk7CiAKIAlpZ3RfcmVxdWlyZShpOTE1X3Jlc2V0X2NvbnRyb2woZmFsc2UpKTsKQEAgLTUx NCw2ICs1MzksNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2luZmxpZ2h0X2V4dGVybmFsKGludCBmZCkK IAlpZ3Rfc3Bpbl9iYXRjaF9mcmVlKGZkLCBoYW5nKTsKIAlpZ3RfYXNzZXJ0KGk5MTVfcmVzZXRf Y29udHJvbCh0cnVlKSk7CiAJdHJpZ2dlcl9yZXNldChmZCk7CisJY2xvc2UoZmQpOwogfQogCiBz dGF0aWMgdm9pZCB0ZXN0X2luZmxpZ2h0X2ludGVybmFsKGludCBmZCwgdW5zaWduZWQgaW50IHdh aXQpCkBAIC01MjUsOSArNTUxLDExIEBAIHN0YXRpYyB2b2lkIHRlc3RfaW5mbGlnaHRfaW50ZXJu YWwoaW50IGZkLCB1bnNpZ25lZCBpbnQgd2FpdCkKIAlpbnQgZmVuY2VzWzE2XTsKIAlpZ3Rfc3Bp bl90ICpoYW5nOwogCi0JaWd0X3JlcXVpcmVfZ2VtKGZkKTsKIAlpZ3RfcmVxdWlyZShnZW1faGFz X2V4ZWNfZmVuY2UoZmQpKTsKIAorCWZkID0gZ2VtX3Jlb3Blbl9kcml2ZXIoZmQpOworCWlndF9y ZXF1aXJlX2dlbShmZCk7CisKIAlpZ3RfcmVxdWlyZShpOTE1X3Jlc2V0X2NvbnRyb2woZmFsc2Up KTsKIAloYW5nID0gc3Bpbl9zeW5jKGZkLCAwLCAwKTsKIApAQCAtNTYwLDYgKzU4OCw3IEBAIHN0 YXRpYyB2b2lkIHRlc3RfaW5mbGlnaHRfaW50ZXJuYWwoaW50IGZkLCB1bnNpZ25lZCBpbnQgd2Fp dCkKIAlpZ3Rfc3Bpbl9iYXRjaF9mcmVlKGZkLCBoYW5nKTsKIAlpZ3RfYXNzZXJ0KGk5MTVfcmVz ZXRfY29udHJvbCh0cnVlKSk7CiAJdHJpZ2dlcl9yZXNldChmZCk7CisJY2xvc2UoZmQpOwogfQog CiBzdGF0aWMgaW50IGZkID0gLTE7Ci0tIAoyLjE0LjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaWd0LWRldgo=