From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 952206E168 for ; Mon, 25 Mar 2019 15:24:17 +0000 (UTC) From: Stanislav Lisovskiy Date: Mon, 25 Mar 2019 17:24:05 +0200 Message-Id: <20190325152405.21700-1-stanislav.lisovskiy@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3] igt/tests: kms_plane_stress: Add plane stress test List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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: stanislav.lisovskiy@intel.com, ville.syrjala@intel.com, martin.peres@intel.com List-ID: VGhpcyB0ZXN0IGF0dGVtcHRzIHRvIHV0aWxpemUgYWxsIGNvbm5lY3RlZApvdXRwdXRzIGF0IHRo ZSBzYW1lIHRpbWUsIHVzaW5nIG1heGltdW0gcG9zc2libGUKcmVzb2x1dGlvbiBhbmQgYW1vdW50 IG9mIHBsYW5lcywgdG8gY2hlY2sgd2hldGhlcgp3ZSBhcmUgaGl0aW5nIGFueSBraW5kIG9mIGJh bmR3aWR0aCwgd2F0ZXJtYXJrIG9yCm90aGVyIGxpbWl0YXRpb25zLgoKdjI6IEFkZGVkIGNwdSBh bmQgZ3B1IGxvYWQgdGhyZWFkcywgd2hpY2ggY29uc3VtZQogICAgYWRkaXRpb25hbCBiYW5kd2lk dGguCgp2MzogUmVtb3ZlZCBiaW5hcnkgcGljdHVyZSBmaWxlLCB1c2luZyBwYXR0ZXJuIGZiCiAg ICBpbnN0ZWFkLgoKU2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2IExpc292c2tpeSA8c3RhbmlzbGF2 Lmxpc292c2tpeUBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9rbXMuaCAgICAgICAgICAgIHwgICA3 ICsKIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgICB8ICAgMSArCiB0ZXN0cy9rbXNfcGxhbmVfc3Ry ZXNzLmMgfCA1MzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0 cy9tZXNvbi5idWlsZCAgICAgICAgfCAgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCA1NDYgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19wbGFuZV9zdHJlc3MuYwoKZGlm ZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmggYi9saWIvaWd0X2ttcy5oCmluZGV4IDY3OWQ0ZTg0Li40 ODE3N2NhYSAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuaAorKysgYi9saWIvaWd0X2ttcy5oCkBA IC01MDgsNiArNTA4LDEzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZ3Rfb3V0cHV0X2lzX2Nvbm5l Y3RlZChpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKIAkJZm9yX2VhY2hfaWYgKCgoKG91dHB1dCkgPSAm KGRpc3BsYXkpLT5vdXRwdXRzW2Nvbl9fXSksIFwKIAkJCSAgICAgaWd0X3BpcGVfY29ubmVjdG9y X3ZhbGlkKChwaXBlKSwgKG91dHB1dCkpKSkKIAorI2RlZmluZSBmb3JfZWFjaF9waXBlX3dpdGhf bmV3X291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIFwKKwkJCWZvciAoaW50IGNvbiA9IDAs IChwaXBlKSA9IDA7IGNvbiA8IChkaXNwbGF5KS0+bl9vdXRwdXRzOyBjb24rKykgXAorCQkJCWZv cl9lYWNoX2lmKChvdXRwdXQpID0gJihkaXNwbGF5KS0+b3V0cHV0c1tjb25dKSBcCisJCQkJCWZv cl9lYWNoX2lmKChwaXBlKSA8IElHVF9NQVhfUElQRVMpIFwKKwkJCQkJCWZvcl9lYWNoX2lmKGln dF9waXBlX2Nvbm5lY3Rvcl92YWxpZCgocGlwZSksIChvdXRwdXQpKSkKKworCiBpZ3Rfb3V0cHV0 X3QgKipfX2lndF9waXBlX3BvcHVsYXRlX291dHB1dHMoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwK IAkJCQkJICAgaWd0X291dHB1dF90ICoqY2hvc2VuX291dHB1dHMpOwogCmRpZmYgLS1naXQgYS90 ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwppbmRleCBhMjM0 ZmE1ZC4uNjFhNTM3Y2QgMTAwNjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKKysrIGIv dGVzdHMvTWFrZWZpbGUuc291cmNlcwpAQCAtNjAsNiArNjAsNyBAQCBURVNUU19wcm9ncyA9IFwK IAlrbXNfcGxhbmVfbG93cmVzIFwKIAlrbXNfcGxhbmVfbXVsdGlwbGUgXAogCWttc19wbGFuZV9z Y2FsaW5nIFwKKwlrbXNfcGxhbmVfc3RyZXNzIFwKIAlrbXNfcHJvcGVydGllcyBcCiAJa21zX3Bz ciBcCiAJa21zX3B3cml0ZV9jcmMgXApkaWZmIC0tZ2l0IGEvdGVzdHMva21zX3BsYW5lX3N0cmVz cy5jIGIvdGVzdHMva21zX3BsYW5lX3N0cmVzcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwLi5iN2M0ODVhYwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2ttc19wbGFuZV9z dHJlc3MuYwpAQCAtMCwwICsxLDUzNyBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE2IEludGVs IENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0 d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiks CisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp bmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5 LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxs IGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo ZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xs b3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg dGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgp IHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg b2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElF RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFO VEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G UklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVS V0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUg U09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJF LgorICovCisKKyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlICJpZ3RfcmFuZC5oIgorI2luY2x1 ZGUgImRybXRlc3QuaCIKKyNpbmNsdWRlICJzd19zeW5jLmgiCisjaW5jbHVkZSA8ZXJybm8uaD4K KyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2luY2x1ZGUgPHN0 ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUg PHBvbGwuaD4KKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisKKyNpZm5kZWYgRFJNX0NBUF9DVVJTT1Jf V0lEVEgKKyNkZWZpbmUgRFJNX0NBUF9DVVJTT1JfV0lEVEggMHg4CisjZW5kaWYKKyNpZm5kZWYg RFJNX0NBUF9DVVJTT1JfSEVJR0hUCisjZGVmaW5lIERSTV9DQVBfQ1VSU09SX0hFSUdIVCAweDkK KyNlbmRpZgorCisKK2RybU1vZGVNb2RlSW5mbyB1aGRfbW9kZV82MGh6ID0geworCS5uYW1lID0g IjM4NDB4MjE2MEA2MGh6IiwKKwkudnJlZnJlc2ggPSA2MCwKKwkuY2xvY2sgPSAxNDI2NjcqMiwK KwkuaGRpc3BsYXkgPSAzODQwLAorCS5oc3luY19zdGFydCA9IDE5MzYqMiwKKwkuaHN5bmNfZW5k ID0gMTk1MioyLAorCS5odG90YWwgPSAyMTA0KjIsCisJLnZkaXNwbGF5ID0gMjE2MCwKKwkudnN5 bmNfc3RhcnQgPSAxMDgzKjIsCisJLnZzeW5jX2VuZCA9IDEwOTcqMiwKKwkudnRvdGFsID0gMTEy OCoyLAorCS5mbGFncyA9IDB4YSwKK307CisKKyNkZWZpbmUgTl9GT1JNQVRTIDMKK3N0YXRpYyBj b25zdCB1aW50MzJfdCBmb3JtYXRzW05fRk9STUFUU10gPSB7CisJRFJNX0ZPUk1BVF9YUkdCODg4 OCwKKwlEUk1fRk9STUFUX1JHQjU2NSwKKwlEUk1fRk9STUFUX1hSR0IyMTAxMDEwLAorfTsKKwor I2RlZmluZSBOX1RJTElOR19NRVRIT0RTIDMKK3N0YXRpYyBjb25zdCB1aW50NjRfdCB0aWxpbmdz W05fVElMSU5HX01FVEhPRFNdID0geworCURSTV9GT1JNQVRfTU9EX0xJTkVBUiwKKwlJOTE1X0ZP Uk1BVF9NT0RfWF9USUxFRCwKKwlJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCwKK307CisKK3N0YXRp YyBjb25zdCBjaGFyICpmb3JtYXRfc3RyKGludCBmb3JtYXRfaW5kZXgpCit7CisJc3dpdGNoIChm b3JtYXRzW2Zvcm1hdF9pbmRleF0pIHsKKwljYXNlIERSTV9GT1JNQVRfUkdCNTY1OgorCQlyZXR1 cm4gInJnYjU2NSI7CisJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4OgorCQlyZXR1cm4gInhyZ2I4 ODg4IjsKKwljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEwMTA6CisJCXJldHVybiAieHJnYjIxMDEw MTAiOworCWRlZmF1bHQ6CisJCWlndF9hc3NlcnQoZmFsc2UpOworCX0KK30KKworc3RhdGljIGNv bnN0IGNoYXIgKnRpbGluZ19zdHIoaW50IHRpbGluZ19pbmRleCkKK3sKKwlzd2l0Y2ggKHRpbGlu Z3NbdGlsaW5nX2luZGV4XSkgeworCWNhc2UgRFJNX0ZPUk1BVF9NT0RfTElORUFSOgorCQlyZXR1 cm4gInVudGlsZWQiOworCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQ6CisJCXJldHVybiAi eHRpbGVkIjsKKwljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEOgorCQlyZXR1cm4gInl0aWxl ZCI7CisJZGVmYXVsdDoKKwkJaWd0X2Fzc2VydChmYWxzZSk7CisJfQorfQorCisKKyNkZWZpbmUg TUFYX0NPUkVTIDgKKworc3RydWN0IGRhdGE7CisKK3N0cnVjdCB0aHJlYWRfY29udGV4dCB7CisJ c3RydWN0IGRhdGEgKmRhdGE7CisJaW50IGlkOworCXZvaWQgKmJ1ZjE7CisJdm9pZCAqYnVmMjsK K307CisKK3N0cnVjdCBncHVfY29udGV4dCB7CisJc3RydWN0IGRhdGEgKmRhdGE7CisJaW50IHBp cGU7CisJaW50IGNvbG9yOworfTsKKworc3RydWN0IGRhdGEgeworCWludCBkcm1fZmQ7CisJaWd0 X2Rpc3BsYXlfdCBkaXNwbGF5OworCWludCBudW1fcGxhbmVzOworCXVpbnQzMl90IGZvcm1hdDsK Kwl1aW50NjRfdCBtb2RpZmllcjsKKwl1aW50MzJfdCBkZXZpZDsKKwlkcm1faW50ZWxfYnVmbWdy ICpidWZtZ3I7CisJc3RydWN0IGlndF9mYiBmYltJR1RfTUFYX1BJUEVTXTsKKwlzdHJ1Y3QgaWd0 X2ZiIGN1cnNvcl9mYltJR1RfTUFYX1BJUEVTXTsKKwlwdGhyZWFkX3QgY3B1X3RocmVhZFtNQVhf Q09SRVNdOworCWJvb2wgY3B1X3RocmVhZF9zdG9wW01BWF9DT1JFU107CisJc3RydWN0IHRocmVh ZF9jb250ZXh0IGNwdV9jb250ZXh0W01BWF9DT1JFU107CisJc3RydWN0IGdwdV9jb250ZXh0IGdw dV9jb250ZXh0W0lHVF9NQVhfUElQRVNdOworfTsKKworCitzdHJ1Y3QgYmFzZV9jcmMgeworCWJv b2wgc2V0OworCWlndF9jcmNfdCBjcmM7Cit9OworCitpZ3RfcGlwZV9jcmNfdCAqcGlwZV9jcmM7 CisKKyNkZWZpbmUgQlVGX1NJWkUgMTI4KjEwMjQqMTAyNAorCitzdGF0aWMgdm9pZCAqY3B1X2xv YWQodm9pZCAqZCkKK3sKKwljaGFyICpidWYxLCAqYnVmMjsKKwlzdHJ1Y3QgdGhyZWFkX2NvbnRl eHQgKmNvbnRleHQgPSAoc3RydWN0IHRocmVhZF9jb250ZXh0ICopZDsKKwlzdHJ1Y3QgZGF0YSAq ZGF0YSA9IGNvbnRleHQtPmRhdGE7CisKKwlidWYxID0gY29udGV4dC0+YnVmMTsKKwlidWYyID0g Y29udGV4dC0+YnVmMjsKKworCWRhdGEtPmNwdV90aHJlYWRfc3RvcFtjb250ZXh0LT5pZF0gPSBm YWxzZTsKKworCXdoaWxlKCFkYXRhLT5jcHVfdGhyZWFkX3N0b3BbY29udGV4dC0+aWRdKSB7CisJ CW1lbWNweShidWYxLCBidWYyLCBCVUZfU0laRSk7CisJCW1lbWNweShidWYyLCBidWYxLCBCVUZf U0laRSk7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKKworc3RhdGljIHZvaWQgc2NyYXRjaF9i dWZfaW5pdChzdHJ1Y3QgaWd0X2J1ZiAqYnVmLAorCQkJZHJtX2ludGVsX2JvICpibywgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0LCBpbnQgc3RyaWRlLCBpbnQgdGlsaW5nKQoreworCWJ1Zi0+Ym8gPSBi bzsKKwlidWYtPnN0cmlkZSA9IHN0cmlkZTsKKwlidWYtPnRpbGluZyA9IHRpbGluZzsKKwlidWYt PnNpemUgPSB3aWR0aCAqIGhlaWdodCAqIDQ7CisJYnVmLT5icHAgPSAzMjsKK30KKworCitzdGF0 aWMgdm9pZCBncHVfbG9hZChzdHJ1Y3QgZ3B1X2NvbnRleHQgKmdwdV9jb250ZXh0KQoreworCXN0 cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2ggPSBOVUxMOworCXN0cnVjdCBpZ3RfYnVmIGRz dDsKKwlzdHJ1Y3QgZGF0YSAqZGF0YSA9IGdwdV9jb250ZXh0LT5kYXRhOworCWludCBwaXBlID0g Z3B1X2NvbnRleHQtPnBpcGU7CisJaWd0X2ZpbGxmdW5jX3QgZ3BncHVfZmlsbCA9IE5VTEw7CisJ ZHJtX2ludGVsX2JvICpibzsKKwlzdHJ1Y3QgaWd0X2ZiICpmYiA9ICZkYXRhLT5mYltwaXBlXTsK KworCWlmICghZGF0YS0+ZGV2aWQpIHsKKwkJZGF0YS0+ZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2Rl dmlkKGRhdGEtPmRybV9mZCk7CisJCWlndF9yZXF1aXJlX2dlbShkYXRhLT5kcm1fZmQpOworCisJ CWRhdGEtPmJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZGF0YS0+ZHJtX2ZkLCA0 MDk2KTsKKwkJaWd0X2Fzc2VydChkYXRhLT5idWZtZ3IpOworCX0KKworCWdwZ3B1X2ZpbGwgPSBp Z3RfZ2V0X2dwZ3B1X2ZpbGxmdW5jKGRhdGEtPmRldmlkKTsKKworCWlndF9yZXF1aXJlX2YoZ3Bn cHVfZmlsbCwKKwkgICAgICAibm8gZ3BncHUtZmlsbCBmdW5jdGlvblxuIik7CisKKwliYXRjaCA9 IGludGVsX2JhdGNoYnVmZmVyX2FsbG9jKGRhdGEtPmJ1Zm1nciwgZGF0YS0+ZGV2aWQpOworCWln dF9hc3NlcnQoYmF0Y2gpOworCisJYm8gPSBnZW1faGFuZGxlX3RvX2xpYmRybV9ibyhkYXRhLT5i dWZtZ3IsIGRhdGEtPmRybV9mZCwgIiIsIGZiLT5nZW1faGFuZGxlKTsKKworCXNjcmF0Y2hfYnVm X2luaXQoJmRzdCwgYm8sIGZiLT53aWR0aCwgZmItPmhlaWdodCwgZmItPnN0cmlkZXNbMF0sIGZi LT50aWxpbmcpOworCisJZ3BncHVfZmlsbChiYXRjaCwKKwkgICAmZHN0LCAwLCAwLCAoZmItPndp ZHRoICogNCksIGZiLT5oZWlnaHQsCisJICAgZ3B1X2NvbnRleHQtPmNvbG9yKTsKKworCWdwdV9j b250ZXh0LT5jb2xvciArPSAweDEwOworCisJaW50ZWxfYmF0Y2hidWZmZXJfZnJlZShiYXRjaCk7 Cit9CisKK3N0YXRpYyBpbmxpbmUgdWludDMyX3QgcGlwZV9zZWxlY3QoZW51bSBwaXBlIHBpcGUp Cit7CisJaWYgKHBpcGUgPiAxKQorCQlyZXR1cm4gcGlwZSA8PCBEUk1fVkJMQU5LX0hJR0hfQ1JU Q19TSElGVDsKKwllbHNlIGlmIChwaXBlID4gMCkKKwkJcmV0dXJuIERSTV9WQkxBTktfU0VDT05E QVJZOworCWVsc2UKKwkJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBnZXRfdmJsYW5r KGludCBmZCwgZW51bSBwaXBlIHBpcGUsIHVuc2lnbmVkIGZsYWdzKQoreworCXVuaW9uIGRybV93 YWl0X3ZibGFuayB2Ymw7CisKKwltZW1zZXQoJnZibCwgMCwgc2l6ZW9mKHZibCkpOworCXZibC5y ZXF1ZXN0LnR5cGUgPSBEUk1fVkJMQU5LX1JFTEFUSVZFIHwgcGlwZV9zZWxlY3QocGlwZSkgfCBm bGFnczsKKwlpZiAoZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgJnZibCkpCisJ CXJldHVybiAwOworCisJcmV0dXJuIHZibC5yZXBseS5zZXF1ZW5jZTsKK30KKworCitzdGF0aWMg aW50IHBsYW5lX3N0cmVzcyhzdHJ1Y3QgZGF0YSAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQs IGVudW0gcGlwZSBwaXBlLCBkcm1Nb2RlTW9kZUluZm8gKm1vZGUsIGJvb2wgZ3B1KQoreworCWln dF9wbGFuZV90ICpwbGFuZTsKKwl1aW50NjRfdCBjdXJzb3Jfd2lkdGgsIGN1cnNvcl9oZWlnaHQ7 CisJaW50IGk7CisJaW50IHJldDsKKwlpZ3RfY3JjX3QJY3JjLCBjcmMyOworCisJaWd0X291dHB1 dF9vdmVycmlkZV9tb2RlKG91dHB1dCwgbW9kZSk7CisJcmV0ID0gaWd0X2Rpc3BsYXlfdHJ5X2Nv bW1pdF9hdG9taWMoJmRhdGEtPmRpc3BsYXksCisJCQlEUk1fTU9ERV9BVE9NSUNfVEVTVF9PTkxZ IHwgRFJNX01PREVfQVRPTUlDX0FMTE9XX01PREVTRVQsIE5VTEwpOworCWlmIChyZXQpIHsKKwkJ cmV0dXJuIHJldDsKKwl9CisKKwlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7CisK KwlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKKwor CW1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCk7CisKKwlkb19vcl9kaWUoZHJtR2V0 Q2FwKGRhdGEtPmRybV9mZCwgRFJNX0NBUF9DVVJTT1JfV0lEVEgsICZjdXJzb3Jfd2lkdGgpKTsK Kwlkb19vcl9kaWUoZHJtR2V0Q2FwKGRhdGEtPmRybV9mZCwgRFJNX0NBUF9DVVJTT1JfSEVJR0hU LCAmY3Vyc29yX2hlaWdodCkpOworCisJaWYgKCFkYXRhLT5jdXJzb3JfZmJbcGlwZV0uZmJfaWQp IHsKKwkJaWd0X2NyZWF0ZV9jb2xvcl9mYihkYXRhLT5kcm1fZmQsIGN1cnNvcl93aWR0aCwgY3Vy c29yX2hlaWdodCwKKwkJCQlEUk1fRk9STUFUX0FSR0I4ODg4LAorCQkJCUxPQ0FMX0RSTV9GT1JN QVRfTU9EX05PTkUsCisJCQkJCTEuMCwwLjAsMC4wLAorCQkJCQkmZGF0YS0+Y3Vyc29yX2ZiW3Bp cGVdKTsKKwl9CisKKwlpZiAoIWRhdGEtPmZiW3BpcGVdLmZiX2lkKSB7CisJCWlndF9jcmVhdGVf Y29sb3JfcGF0dGVybl9mYihkYXRhLT5kcm1fZmQsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlz cGxheSwKKwkJCQkgICAgZGF0YS0+Zm9ybWF0LAorCQkJCSAgICBkYXRhLT5tb2RpZmllciwKKwkJ CQkgICAgMC4wLCAxLjAsIDAuMCwgJmRhdGEtPmZiW3BpcGVdKTsKKwl9CisKKwlyZXQgPSBpZ3Rf ZGlzcGxheV90cnlfY29tbWl0X2F0b21pYygmZGF0YS0+ZGlzcGxheSwgRFJNX01PREVfQVRPTUlD X1RFU1RfT05MWSB8IERSTV9NT0RFX0FUT01JQ19BTExPV19NT0RFU0VULCBOVUxMKTsKKwlpZiAo cmV0KSB7CisJCWlndF9pbmZvKCJQbGFuZSAlZCBwaXBlICVkIHRyeSBjb21taXQgZmFpbGVkLCBl eGl0aW5nXG4iLCBpLCBwaXBlKTsKKwkJZ290byBjbGVhbnVwOworCX0KKworCWlndF9kaXNwbGF5 X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCisJaSA9IDA7CisKKwlm b3JfZWFjaF9wbGFuZV9vbl9waXBlKCZkYXRhLT5kaXNwbGF5LCBwaXBlLCBwbGFuZSkgeworCisJ CWlmIChwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpIHsKKwkJCWlndF9wbGFu ZV9zZXRfZmIocGxhbmUsICZkYXRhLT5jdXJzb3JfZmJbcGlwZV0pOworCQkJaWd0X2ZiX3NldF9z aXplKCZkYXRhLT5jdXJzb3JfZmJbcGlwZV0sIHBsYW5lLCBjdXJzb3Jfd2lkdGgsIGN1cnNvcl9o ZWlnaHQpOworCQkJaWd0X3BsYW5lX3NldF9zaXplKHBsYW5lLCBjdXJzb3Jfd2lkdGgsIGN1cnNv cl9oZWlnaHQpOworCQl9IGVsc2UgeworCQkJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgJmRhdGEt PmZiW3BpcGVdKTsKKwkJCWlndF9wbGFuZV9zZXRfcG9zaXRpb24ocGxhbmUsIDAsIDApOworCQkJ aWd0X2ZiX3NldF9zaXplKCZkYXRhLT5mYltwaXBlXSwgcGxhbmUsIG1vZGUtPmhkaXNwbGF5LCBt b2RlLT52ZGlzcGxheSk7CisJCQlpZ3RfcGxhbmVfc2V0X3NpemUocGxhbmUsIG1vZGUtPmhkaXNw bGF5LCBtb2RlLT52ZGlzcGxheSk7CisJCX0KKworCQlyZXQgPSBpZ3RfZGlzcGxheV90cnlfY29t bWl0X2F0b21pYygmZGF0YS0+ZGlzcGxheSwgRFJNX01PREVfQVRPTUlDX1RFU1RfT05MWSB8IERS TV9NT0RFX0FUT01JQ19BTExPV19NT0RFU0VULCBOVUxMKTsKKwkJaWYgKHJldCkgeworCQkJaWd0 X2luZm8oIlBsYW5lICVkIHBpcGUgJWQgdHJ5IGNvbW1pdCBmYWlsZWQsIGV4aXRpbmdcbiIsIGks IHBpcGUpOworCQkJZ290byBjbGVhbnVwOworCQl9CisKKwkJaWYgKCsraSA+PSBkYXRhLT5udW1f cGxhbmVzKQorCQkJYnJlYWs7CisJfQorCisJaWYgKGdwdSkgeworCQlncHVfbG9hZCgmZGF0YS0+ Z3B1X2NvbnRleHRbcGlwZV0pOworCX0KKworCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRp c3BsYXksIENPTU1JVF9BVE9NSUMpOworCisJZ2V0X3ZibGFuayhkYXRhLT5kaXNwbGF5LmRybV9m ZCwgcGlwZSwgRFJNX1ZCTEFOS19ORVhUT05NSVNTKTsKKworCWlndF9waXBlX2NyY19jb2xsZWN0 X2NyYyhwaXBlX2NyYywgJmNyYyk7CisKKwlnZXRfdmJsYW5rKGRhdGEtPmRpc3BsYXkuZHJtX2Zk LCBwaXBlLCBEUk1fVkJMQU5LX05FWFRPTk1JU1MpOworCisJaWd0X3BpcGVfY3JjX2NvbGxlY3Rf Y3JjKHBpcGVfY3JjLCAmY3JjMik7CisJaWd0X2Fzc2VydF9jcmNfZXF1YWwoJmNyYywgJmNyYzIp OworCisJcmV0dXJuIDA7CisKK2NsZWFudXA6CisJZm9yX2VhY2hfcGxhbmVfb25fcGlwZSgmZGF0 YS0+ZGlzcGxheSwgcGlwZSwgcGxhbmUpIHsKKwkJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgTlVM TCk7CisJfQorCWlndF9yZW1vdmVfZmIoZGF0YS0+ZGlzcGxheS5kcm1fZmQsICZkYXRhLT5mYltw aXBlXSk7CisJZGF0YS0+ZmJbcGlwZV0uZmJfaWQgPSAwOworCisJcmV0dXJuIHJldDsKK30KKwor I2RlZmluZSBEVVJBVElPTl9TRUMgNS4wMAorCitzdGF0aWMgZHJtTW9kZU1vZGVJbmZvICogZmlu ZF9oaWdoZXN0X21vZGUoZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yKQoreworCWRybU1vZGVN b2RlSW5mbyAqaGlnaGVzdF9tb2RlID0gTlVMTDsKKwlpbnQgajsKKworCWZvciAoaiA9IDA7IGog PCBjb25uZWN0b3ItPmNvdW50X21vZGVzOyBqKyspIHsKKwkJaWYgKCFoaWdoZXN0X21vZGUpIHsK KwkJCWhpZ2hlc3RfbW9kZSA9ICZjb25uZWN0b3ItPm1vZGVzW2pdOworCQl9CisJCWVsc2UgaWYg KGNvbm5lY3Rvci0+bW9kZXNbal0udmRpc3BsYXkgJiYgY29ubmVjdG9yLT5tb2Rlc1tqXS5oZGlz cGxheSkgeworCQkJaWYgKGhpZ2hlc3RfbW9kZS0+aGRpc3BsYXkgPCBjb25uZWN0b3ItPm1vZGVz W2pdLmhkaXNwbGF5KQorCQkJCWhpZ2hlc3RfbW9kZSA9ICZjb25uZWN0b3ItPm1vZGVzW2pdOwor CQkJfQorCX0KKworCXJldHVybiBoaWdoZXN0X21vZGU7Cit9CisKK3N0YXRpYyB2b2lkIHN0cmVz cyhzdHJ1Y3QgZGF0YSAqZGF0YSwgYm9vbCBvdmVycmlkZSwgYm9vbCBncHUsIGludCBmb3JtYXRf aWR4LCBpbnQgdGlsaW5nX2lkeCkKK3sKKwlzdHJ1Y3QgdGltZXNwZWMgc3RhcnQsIGVuZDsKKwlp Z3Rfb3V0cHV0X3QgKm91dHB1dDsKKwlpbnQgcmV0O2ludCBjcnRjX2lkID0gMDsKKwlpbnQgaTsK Kwlkcm1Nb2RlTW9kZUluZm8gKmhpZ2hlc3RfbW9kZSA9IE5VTEw7CisKKwlkcm1Nb2RlUmVzICpt b2RlX3Jlc291cmNlcyA9IGRybU1vZGVHZXRSZXNvdXJjZXMoZGF0YS0+ZHJtX2ZkKTsKKworCWlm ICghbW9kZV9yZXNvdXJjZXMpIHsKKwkJaWd0X3dhcm4oImRybU1vZGVHZXRSZXNvdXJjZXMgZmFp bGVkOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKKwkJcmV0dXJuOworCX0KKworCWNsb2NrX2dl dHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmc3RhcnQpOworCisJZG8geworCQlmb3JfZWFjaF9waXBl X3dpdGhfbmV3X291dHB1dCgmZGF0YS0+ZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7CisJCQljcnRj X2lkID0gMDsKKwkJCWZvciAoaSA9IDA7IGkgPCBtb2RlX3Jlc291cmNlcy0+Y291bnRfY29ubmVj dG9yczsgaSsrKSB7CisJCQkJZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yOworCisJCQkJY29u bmVjdG9yID0gZHJtTW9kZUdldENvbm5lY3RvckN1cnJlbnQoZGF0YS0+ZHJtX2ZkLAorCQkJCQkJ CSAgICAgICBtb2RlX3Jlc291cmNlcy0+Y29ubmVjdG9yc1tpXSk7CisJCQkJaWYgKCFjb25uZWN0 b3IpIHsKKwkJCQkJaWd0X3dhcm4oImNvdWxkIG5vdCBnZXQgY29ubmVjdG9yICVpOiAlc1xuIiwg bW9kZV9yZXNvdXJjZXMtPmNvbm5lY3RvcnNbaV0sIHN0cmVycm9yKGVycm5vKSk7CisJCQkJCWNv bnRpbnVlOworCQkJCX0KKworCQkJCWlmICghY29ubmVjdG9yLT5jb3VudF9tb2RlcykgeworCQkJ CQlkcm1Nb2RlRnJlZUNvbm5lY3Rvcihjb25uZWN0b3IpOworCQkJCQljb250aW51ZTsKKwkJCQl9 CisKKwkJCQlpZiAoY29ubmVjdG9yLT5jb25uZWN0aW9uID09IERSTV9NT0RFX0NPTk5FQ1RFRCkg eworCQkJCQlpZiAoY3J0Y19pZCA9PSBwaXBlKSB7CisJCQkJCQlpZiAoIW92ZXJyaWRlKSB7CisJ CQkJCQkJaGlnaGVzdF9tb2RlID0gZmluZF9oaWdoZXN0X21vZGUoY29ubmVjdG9yKTsKKwkJCQkJ CX0KKwkJCQkJCWVsc2UKKwkJCQkJCQloaWdoZXN0X21vZGUgPSAmdWhkX21vZGVfNjBoejsKKwor CQkJCQkJZGF0YS0+Zm9ybWF0ID0gZm9ybWF0c1tmb3JtYXRfaWR4XTsKKwkJCQkJCWRhdGEtPm1v ZGlmaWVyID0gdGlsaW5nc1t0aWxpbmdfaWR4XTsKKwkJCQkJCWRhdGEtPm51bV9wbGFuZXMgPSBk YXRhLT5kaXNwbGF5LnBpcGVzW3BpcGVdLm5fcGxhbmVzOworCisJCQkJCQlpZ3RfaW5mbygiUGlw ZSAlcyAlZCBwbGFuZXMsIHVzaW5nIG1vZGU6Iiwga21zdGVzdF9waXBlX25hbWUocGlwZSksCisJ CQkJCQkJCWRhdGEtPm51bV9wbGFuZXMpOworCisJCQkJCQlrbXN0ZXN0X2R1bXBfbW9kZShoaWdo ZXN0X21vZGUpOworCisJCQkJCQlwaXBlX2NyYyA9IGlndF9waXBlX2NyY19uZXcoZGF0YS0+ZHJt X2ZkLCBwaXBlLAorCQkJCQkJCUlOVEVMX1BJUEVfQ1JDX1NPVVJDRV9BVVRPKTsKKworCQkJCQkJ cmV0ID0gcGxhbmVfc3RyZXNzKGRhdGEsIG91dHB1dCwgcGlwZSwgaGlnaGVzdF9tb2RlLCBncHUp OworCisJCQkJCQlpZ3RfcGlwZV9jcmNfZnJlZShwaXBlX2NyYyk7CisJCQkJCX0KKwkJCQkJY3J0 Y19pZCsrOworCQkJCX0KKwkJCQlkcm1Nb2RlRnJlZUNvbm5lY3Rvcihjb25uZWN0b3IpOworCQkJ fQorCQkJcGlwZSsrOworCQl9CisJCWNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmZW5k KTsKKwl9IHdoaWxlICgoaWd0X3RpbWVfZWxhcHNlZCgmc3RhcnQsICZlbmQpIDwgRFVSQVRJT05f U0VDKSAmJiAhcmV0KTsKKworCWRybU1vZGVGcmVlUmVzb3VyY2VzKG1vZGVfcmVzb3VyY2VzKTsK K30KKworc3RhdGljIHZvaWQgdGVzdChzdHJ1Y3QgZGF0YSAqZGF0YSwgYm9vbCBvdmVycmlkZSwg Ym9vbCBjcHUsIGJvb2wgZ3B1KQoreworCWludCBpOworCWludCBudW1iZXJfb2ZfY29yZXMgPSBt aW4oc3lzY29uZihfU0NfTlBST0NFU1NPUlNfT05MTiksIE1BWF9DT1JFUyk7CisJaW50IGZvcm1h dF9pZHgsIHRpbGluZ19pZHg7CisKKwlpZ3RfZml4dHVyZSB7CisJCWlmIChncHUpIHsKKwkJCWZv ciAoaSA9IDA7IGkgPCBJR1RfTUFYX1BJUEVTOyBpKyspIHsKKwkJCQlkYXRhLT5mYltpXS5mYl9p ZCA9IDA7CisJCQkJZGF0YS0+Y3Vyc29yX2ZiW2ldLmZiX2lkID0gMDsKKwkJCQlkYXRhLT5ncHVf Y29udGV4dFtpXS5kYXRhID0gZGF0YTsKKwkJCQlkYXRhLT5ncHVfY29udGV4dFtpXS5waXBlID0g aTsKKwkJCX0KKwkJfQorCisJCWlmIChjcHUpIHsKKwkJCWZvciAoaSA9IDA7IGkgPCBudW1iZXJf b2ZfY29yZXM7aSsrKSB7CisJCQkJZGF0YS0+Y3B1X2NvbnRleHRbaV0uYnVmMSA9IG1hbGxvYyhC VUZfU0laRSk7CisJCQkJZGF0YS0+Y3B1X2NvbnRleHRbaV0uYnVmMiA9IG1hbGxvYyhCVUZfU0la RSk7CisJCQkJZGF0YS0+Y3B1X2NvbnRleHRbaV0uaWQgPSBpOworCQkJCWRhdGEtPmNwdV9jb250 ZXh0W2ldLmRhdGEgPSBkYXRhOworCQkJCXB0aHJlYWRfY3JlYXRlKCZkYXRhLT5jcHVfdGhyZWFk W2ldLCBOVUxMLCBjcHVfbG9hZCwgKHZvaWQqKSZkYXRhLT5jcHVfY29udGV4dFtpXSk7CisJCQl9 CisJCX0KKwl9CisKKwlmb3IgKGZvcm1hdF9pZHggPSAwOyBmb3JtYXRfaWR4IDwgTl9GT1JNQVRT OyBmb3JtYXRfaWR4KyspIHsKKwkJZm9yICh0aWxpbmdfaWR4ID0gMDsgdGlsaW5nX2lkeCA8IE5f VElMSU5HX01FVEhPRFM7IHRpbGluZ19pZHgrKykgeworCisJCQlpZ3Rfc3VidGVzdF9mKCJzdHJl c3MlcyVzJXMtJXMtJXMiLAorCQkJCSAgICAgIG92ZXJyaWRlID09IGZhbHNlID8gIiIgOiAiLW1v ZGUtb3ZlcnJpZGUiLAorCQkJCSAgICAgIGNwdSA9PSBmYWxzZSA/ICIiIDogIi1jcHUtbG9hZCIs CisJCQkJICAgICAgZ3B1ID09IGZhbHNlID8gIiIgOiAiLWdwdS1sb2FkIiwKKwkJCQkgICAgICBm b3JtYXRfc3RyKGZvcm1hdF9pZHgpLAorCQkJCSAgICAgIHRpbGluZ19zdHIodGlsaW5nX2lkeCkp CisKKwkJCXN0cmVzcyhkYXRhLCBvdmVycmlkZSwgZ3B1LCBmb3JtYXRfaWR4LCB0aWxpbmdfaWR4 KTsKKworCQkJZm9yIChpID0gMDsgaSA8IElHVF9NQVhfUElQRVM7IGkrKykgeworCQkJCWlmIChk YXRhLT5mYltpXS5mYl9pZCkgeworCQkJCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRpc3BsYXkuZHJt X2ZkLCAmZGF0YS0+ZmJbaV0pOworCQkJCQlkYXRhLT5mYltpXS5mYl9pZCA9IDA7CisJCQkJfQor CQkJfQorCQl9CisJfQorCisJaWd0X2ZpeHR1cmUgeworCQlpZiAoY3B1KSB7CisJCQlmb3IgKGkg PSAwOyBpIDwgbnVtYmVyX29mX2NvcmVzO2krKykgeworCQkJCWRhdGEtPmNwdV90aHJlYWRfc3Rv cFtpXSA9IHRydWU7CisJCQkJcHRocmVhZF9qb2luKGRhdGEtPmNwdV90aHJlYWRbaV0sIE5VTEwp OworCQkJfQorCQkJZm9yIChpID0gMDtpIDwgbnVtYmVyX29mX2NvcmVzOyBpKyspIHsKKwkJCQlm cmVlKGRhdGEtPmNwdV9jb250ZXh0W2ldLmJ1ZjEpOworCQkJCWZyZWUoZGF0YS0+Y3B1X2NvbnRl eHRbaV0uYnVmMik7CisJCQl9CisJCX0KKwl9Cit9CisKKworc3RydWN0IGRhdGEgZGF0YSA9IHsK KwkubnVtX3BsYW5lcyA9IDcsCisJLmZvcm1hdCA9IERSTV9GT1JNQVRfWFJHQjg4ODgsCisJLm1v ZGlmaWVyID0gRFJNX0ZPUk1BVF9NT0RfTElORUFSLAorCS5kZXZpZCA9IDAsCit9OworCisKK2ln dF9tYWluCit7CisJYm9vbCBtb2RlX292ZXJyaWRlID0gZmFsc2U7CisJYm9vbCBjcHVfbG9hZCA9 IGZhbHNlOworCWJvb2wgZ3B1X2xvYWQgPSBmYWxzZTsKKworCWlndF9maXh0dXJlIHsKKwkJZGF0 YS5kcm1fZmQgPSBkYXRhLmRpc3BsYXkuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihE UklWRVJfQU5ZKTsKKworCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7CisKKwkJaWd0 X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS5kaXNwbGF5LCBkYXRhLmRpc3BsYXkuZHJtX2ZkKTsKKwkJ aWd0X3JlcXVpcmUoZGF0YS5kaXNwbGF5LmlzX2F0b21pYyk7CisJCWlndF9kaXNwbGF5X3JlcXVp cmVfb3V0cHV0KCZkYXRhLmRpc3BsYXkpOworCX0KKworCXRlc3QoJmRhdGEsIG1vZGVfb3ZlcnJp ZGUsIGNwdV9sb2FkLCBncHVfbG9hZCk7CisKKwljcHVfbG9hZCA9IHRydWU7CisJZ3B1X2xvYWQg PSB0cnVlOworCisJdGVzdCgmZGF0YSwgbW9kZV9vdmVycmlkZSwgY3B1X2xvYWQsIGdwdV9sb2Fk KTsKKworCW1vZGVfb3ZlcnJpZGUgPSB0cnVlOworCWNwdV9sb2FkID0gZmFsc2U7CisJZ3B1X2xv YWQgPSBmYWxzZTsKKworCXRlc3QoJmRhdGEsIG1vZGVfb3ZlcnJpZGUsIGNwdV9sb2FkLCBncHVf bG9hZCk7CisKKwljcHVfbG9hZCA9IHRydWU7CisJZ3B1X2xvYWQgPSB0cnVlOworCisJdGVzdCgm ZGF0YSwgbW9kZV9vdmVycmlkZSwgY3B1X2xvYWQsIGdwdV9sb2FkKTsKKworCWlndF9maXh0dXJl IHsKKwkJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKKwl9Cit9ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9t ZXNvbi5idWlsZAppbmRleCAwZjEyZGYyNi4uYjBkMDMyY2YgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21l c29uLmJ1aWxkCisrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCkBAIC00Nyw2ICs0Nyw3IEBAIHRlc3Rf cHJvZ3MgPSBbCiAJJ2ttc19wbGFuZV9sb3dyZXMnLAogCSdrbXNfcGxhbmVfbXVsdGlwbGUnLAog CSdrbXNfcGxhbmVfc2NhbGluZycsCisJJ2ttc19wbGFuZV9zdHJlc3MnLAogCSdrbXNfcHJvcGVy dGllcycsCiAJJ2ttc19wc3InLAogCSdrbXNfcHdyaXRlX2NyYycsCi0tIAoyLjE3LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGlu ZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==