From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Fri, 17 May 2019 12:25:17 +0100 Message-Id: <20190517112526.6738-17-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20190517112526.6738-1-tvrtko.ursulin@linux.intel.com> References: <20190517112526.6738-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH i-g-t 16/25] gem_wsim: Engine bond command List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkVuZ2luZSBi b25kcyBhcmUgYW4gaTkxNSB1QVBJIGFwcGxpY2FibGUgdG8gbG9hZCBiYWxhbmNlZCBjb250ZXh0 cyB3aXRoCmVuZ2luZSBtYXAuIFRoZXkgYWxsb3cgZXhwcmVzc2lvbiBydWxlcyBvZiBlbmdpbmUg c2VsZWN0aW9uIGJldHdlZW4gdHdvCmNvbnRleHRzIHdoZW4gc3VibWlzc2lvbnMgYXJlIGFsc28g dGllZCB3aXRoIHN1Ym1pdCBmZW5jZXMuCgpQbGVhc2UgcmVmZXIgdG8gdGhlIFJFQURNRSBmb3Ig YSBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uLgoKdjI6CiAqIFVzZSBsaXN0IG9mIHN5bWJvbGlj IGVuZ2luZSBuYW1lcyBpbnN0ZWFkIG9mIHRoZSBtYXNrLiAoQ2hyaXMpCgpTaWduZWQtb2ZmLWJ5 OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGJlbmNobWFy a3MvZ2VtX3dzaW0uYyAgfCAxNTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0KIGJlbmNobWFya3Mvd3NpbS9SRUFETUUgfCAgNTAgKysrKysrKysrKysrKwogMiBmaWxl cyBjaGFuZ2VkLCAyMDIgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9iZW5jaG1hcmtzL2dlbV93c2ltLmMgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMKaW5kZXggZjdm ODRkMDUwMTBhLi5iZDkyMDFjMjkyOGIgMTAwNjQ0Ci0tLSBhL2JlbmNobWFya3MvZ2VtX3dzaW0u YworKysgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMKQEAgLTg1LDYgKzg1LDcgQEAgZW51bSB3X3R5 cGUKIAlQUkVFTVBUSU9OLAogCUVOR0lORV9NQVAsCiAJTE9BRF9CQUxBTkNFLAorCUJPTkQsCiB9 OwogCiBzdHJ1Y3QgZGVwcwpAQCAtMTAwLDYgKzEwMSwxMSBAQCBzdHJ1Y3Qgd19hcmcgewogCWlu dCBwcmlvOwogfTsKIAorc3RydWN0IGJvbmQgeworCXVpbnQ2NF90IG1hc2s7CisJZW51bSBpbnRl bF9lbmdpbmVfaWQgbWFzdGVyOworfTsKKwogc3RydWN0IHdfc3RlcAogewogCS8qIFdvcmtsb2Fk IHN0ZXAgbWV0YWRhdGEgKi8KQEAgLTEyMyw2ICsxMjksMTAgQEAgc3RydWN0IHdfc3RlcAogCQkJ ZW51bSBpbnRlbF9lbmdpbmVfaWQgKmVuZ2luZV9tYXA7CiAJCX07CiAJCWJvb2wgbG9hZF9iYWxh bmNlOworCQlzdHJ1Y3QgeworCQkJdWludDY0X3QgYm9uZF9tYXNrOworCQkJZW51bSBpbnRlbF9l bmdpbmVfaWQgYm9uZF9tYXN0ZXI7CisJCX07CiAJfTsKIAogCS8qIEltcGxlbWVudGF0aW9uIGRl dGFpbHMgKi8KQEAgLTE1Miw2ICsxNjIsOCBAQCBzdHJ1Y3QgY3R4IHsKIAlpbnQgcHJpb3JpdHk7 CiAJdW5zaWduZWQgaW50IGVuZ2luZV9tYXBfY291bnQ7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQg KmVuZ2luZV9tYXA7CisJdW5zaWduZWQgaW50IGJvbmRfY291bnQ7CisJc3RydWN0IGJvbmQgKmJv bmRzOwogCWJvb2wgdGFyZ2V0c19pbnN0YW5jZTsKIAlib29sIHdhbnRzX2JhbGFuY2U7CiAJdW5z aWduZWQgaW50IHN0YXRpY192Y3M7CkBAIC0zNzgsNiArMzkwLDI2IEBAIHN0YXRpYyBpbnQgcGFy c2VfZW5naW5lX21hcChzdHJ1Y3Qgd19zdGVwICpzdGVwLCBjb25zdCBjaGFyICpfc3RyKQogCXJl dHVybiAwOwogfQogCitzdGF0aWMgdWludDY0X3QgZW5naW5lX2xpc3RfbWFzayhjb25zdCBjaGFy ICpfc3RyKQoreworCXVpbnQ2NF90IG1hc2sgPSAwOworCisJY2hhciAqdG9rZW4sICp0Y3R4ID0g TlVMTCwgKnRzdGFydCA9IChjaGFyICopX3N0cjsKKworCXdoaWxlICgodG9rZW4gPSBzdHJ0b2tf cih0c3RhcnQsICJ8IiwgJnRjdHgpKSkgeworCQllbnVtIGludGVsX2VuZ2luZV9pZCBlbmdpbmUg PSBzdHJfdG9fZW5naW5lKHRva2VuKTsKKworCQlpZiAoKGludCllbmdpbmUgPCAwIHx8IGVuZ2lu ZSA9PSBERUZBVUxUIHx8IGVuZ2luZSA9PSBWQ1MpCisJCQlyZXR1cm4gMDsKKworCQltYXNrIHw9 IDEgPDwgZW5naW5lOworCisJCXRzdGFydCA9IE5VTEw7CisJfQorCisJcmV0dXJuIG1hc2s7Cit9 CisKICNkZWZpbmUgaW50X2ZpZWxkKF9TVEVQXywgX0ZJRUxEXywgX0NPTkRfLCBfRVJSXykgXAog CWlmICgoZmllbGQgPSBzdHJ0b2tfcihmc3RhcnQsICIuIiwgJmZjdHgpKSkgeyBcCiAJCXRtcCA9 IGF0b2koZmllbGQpOyBcCkBAIC01MjgsNiArNTYwLDM5IEBAIHBhcnNlX3dvcmtsb2FkKHN0cnVj dCB3X2FyZyAqYXJnLCB1bnNpZ25lZCBpbnQgZmxhZ3MsIHN0cnVjdCB3b3JrbG9hZCAqYXBwX3cp CiAKIAkJCQlzdGVwLnR5cGUgPSBMT0FEX0JBTEFOQ0U7CiAJCQkJZ290byBhZGRfc3RlcDsKKwkJ CX0gZWxzZSBpZiAoIXN0cmNtcChmaWVsZCwgImIiKSkgeworCQkJCXVuc2lnbmVkIGludCBuciA9 IDA7CisJCQkJd2hpbGUgKChmaWVsZCA9IHN0cnRva19yKGZzdGFydCwgIi4iLCAmZmN0eCkpKSB7 CisJCQkJCWNoZWNrX2FyZyhuciA+IDIsCisJCQkJCQkgICJJbnZhbGlkIGJvbmQgZm9ybWF0IGF0 IHN0ZXAgJXUhXG4iLAorCQkJCQkJICBucl9zdGVwcyk7CisKKwkJCQkJaWYgKG5yID09IDApIHsK KwkJCQkJCXRtcCA9IGF0b2koZmllbGQpOworCQkJCQkJc3RlcC5jb250ZXh0ID0gdG1wOworCQkJ CQkJY2hlY2tfYXJnKHRtcCA8PSAwLAorCQkJCQkJCSAgIkludmFsaWQgY29udGV4dCBhdCBzdGVw ICV1IVxuIiwKKwkJCQkJCQkgIG5yX3N0ZXBzKTsKKwkJCQkJfSBlbHNlIGlmIChuciA9PSAxKSB7 CisJCQkJCQlzdGVwLmJvbmRfbWFzayA9IGVuZ2luZV9saXN0X21hc2soZmllbGQpOworCQkJCQkJ Y2hlY2tfYXJnKHN0ZXAuYm9uZF9tYXNrID09IDAsCisJCQkJCQkJIkludmFsaWQgc2libGluZ3Mg bGlzdCBhdCBzdGVwICV1IVxuIiwKKwkJCQkJCQlucl9zdGVwcyk7CisJCQkJCX0gZWxzZSBpZiAo bnIgPT0gMikgeworCQkJCQkJdG1wID0gc3RyX3RvX2VuZ2luZShmaWVsZCk7CisJCQkJCQljaGVj a19hcmcodG1wIDw9IDAgfHwKKwkJCQkJCQkgIHRtcCA9PSBWQ1MgfHwKKwkJCQkJCQkgIHRtcCA9 PSBERUZBVUxULAorCQkJCQkJCSAgIkludmFsaWQgbWFzdGVyIGVuZ2luZSBhdCBzdGVwICV1IVxu IiwKKwkJCQkJCQkgIG5yX3N0ZXBzKTsKKwkJCQkJCXN0ZXAuYm9uZF9tYXN0ZXIgPSB0bXA7CisJ CQkJCX0KKworCQkJCQlucisrOworCQkJCX0KKworCQkJCXN0ZXAudHlwZSA9IEJPTkQ7CisJCQkJ Z290byBhZGRfc3RlcDsKIAkJCX0KIAogCQkJaWYgKCFmaWVsZCkgewpAQCAtMTAxMSw2ICsxMDc2 LDMxIEBAIHN0YXRpYyB2b2lkIHZtX2Rlc3Ryb3koaW50IGk5MTUsIHVpbnQzMl90IHZtX2lkKQog CWlndF9hc3NlcnRfZXEoX192bV9kZXN0cm95KGk5MTUsIHZtX2lkKSwgMCk7CiB9CiAKK3N0YXRp YyB1bnNpZ25lZCBpbnQKK2ZpbmRfZW5naW5lKHN0cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0 YW5jZSAqY2ksIHVuc2lnbmVkIGludCBjb3VudCwKKwkgICAgZW51bSBpbnRlbF9lbmdpbmVfaWQg ZW5naW5lKQoreworCXN0YXRpYyBzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgbWFw W10gPSB7CisJCVtSQ1NdID0geyBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVIsIDAgfSwKKwkJW0JD U10gPSB7IEk5MTVfRU5HSU5FX0NMQVNTX0NPUFksIDAgfSwKKwkJW1ZDUzFdID0geyBJOTE1X0VO R0lORV9DTEFTU19WSURFTywgMCB9LAorCQlbVkNTMl0gPSB7IEk5MTVfRU5HSU5FX0NMQVNTX1ZJ REVPLCAxIH0sCisJCVtWRUNTXSA9IHsgSTkxNV9FTkdJTkVfQ0xBU1NfVklERU9fRU5IQU5DRSwg MCB9LAorCX07CisJdW5zaWduZWQgaW50IGk7CisKKwlpZ3RfYXNzZXJ0KGVuZ2luZSA8IEFSUkFZ X1NJWkUobWFwKSk7CisJaWd0X2Fzc2VydChlbmdpbmUgPT0gUkNTIHx8IG1hcFtlbmdpbmVdLmVu Z2luZV9jbGFzcyk7CisKKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKywgY2krKykgeworCQlp ZiAoIW1lbWNtcCgmbWFwW2VuZ2luZV0sIGNpLCBzaXplb2YoKmNpKSkpCisJCQlyZXR1cm4gaTsK Kwl9CisKKwlpZ3RfYXNzZXJ0KDApOworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50CiBwcmVw YXJlX3dvcmtsb2FkKHVuc2lnbmVkIGludCBpZCwgc3RydWN0IHdvcmtsb2FkICp3cmssIHVuc2ln bmVkIGludCBmbGFncykKIHsKQEAgLTEwNzgsNiArMTE2OCw4IEBAIHByZXBhcmVfd29ya2xvYWQo dW5zaWduZWQgaW50IGlkLCBzdHJ1Y3Qgd29ya2xvYWQgKndyaywgdW5zaWduZWQgaW50IGZsYWdz KQogCSAqIFRyYW5zZmVyIG92ZXIgZW5naW5lIG1hcCBjb25maWd1cmF0aW9uIGZyb20gdGhlIHdv cmtsb2FkIHN0ZXAuCiAJICovCiAJZm9yIChqID0gMDsgaiA8IHdyay0+bnJfY3R4czsgaiArPSAy KSB7CisJCXN0cnVjdCBjdHggKmN0eCA9ICZ3cmstPmN0eF9saXN0W2pdOworCiAJCWJvb2wgdGFy Z2V0cyA9IGZhbHNlOwogCQlib29sIGJhbGFuY2UgPSBmYWxzZTsKIApAQCAtMTA5MSwxNiArMTE4 MywyOCBAQCBwcmVwYXJlX3dvcmtsb2FkKHVuc2lnbmVkIGludCBpZCwgc3RydWN0IHdvcmtsb2Fk ICp3cmssIHVuc2lnbmVkIGludCBmbGFncykKIAkJCQllbHNlCiAJCQkJCXRhcmdldHMgPSB0cnVl OwogCQkJfSBlbHNlIGlmICh3LT50eXBlID09IEVOR0lORV9NQVApIHsKLQkJCQl3cmstPmN0eF9s aXN0W2pdLmVuZ2luZV9tYXAgPSB3LT5lbmdpbmVfbWFwOwotCQkJCXdyay0+Y3R4X2xpc3Rbal0u ZW5naW5lX21hcF9jb3VudCA9Ci0JCQkJCXctPmVuZ2luZV9tYXBfY291bnQ7CisJCQkJY3R4LT5l bmdpbmVfbWFwID0gdy0+ZW5naW5lX21hcDsKKwkJCQljdHgtPmVuZ2luZV9tYXBfY291bnQgPSB3 LT5lbmdpbmVfbWFwX2NvdW50OwogCQkJfSBlbHNlIGlmICh3LT50eXBlID09IExPQURfQkFMQU5D RSkgewotCQkJCWlmICghd3JrLT5jdHhfbGlzdFtqXS5lbmdpbmVfbWFwKSB7CisJCQkJaWYgKCFj dHgtPmVuZ2luZV9tYXApIHsKIAkJCQkJd3NpbV9lcnIoIkxvYWQgYmFsYW5jaW5nIG5lZWRzIGFu IGVuZ2luZSBtYXAhXG4iKTsKIAkJCQkJcmV0dXJuIDE7CiAJCQkJfQotCQkJCXdyay0+Y3R4X2xp c3Rbal0ud2FudHNfYmFsYW5jZSA9Ci0JCQkJCXctPmxvYWRfYmFsYW5jZTsKKwkJCQljdHgtPndh bnRzX2JhbGFuY2UgPSB3LT5sb2FkX2JhbGFuY2U7CisJCQl9IGVsc2UgaWYgKHctPnR5cGUgPT0g Qk9ORCkgeworCQkJCWlmICghY3R4LT53YW50c19iYWxhbmNlKSB7CisJCQkJCXdzaW1fZXJyKCJF bmdpbmUgYm9uZHMgbmVlZCBsb2FkIGJhbGFuY2luZyBlbmdpbmUgbWFwIVxuIik7CisJCQkJCXJl dHVybiAxOworCQkJCX0KKwkJCQljdHgtPmJvbmRfY291bnQrKzsKKwkJCQljdHgtPmJvbmRzID0g cmVhbGxvYyhjdHgtPmJvbmRzLAorCQkJCQkJICAgICBjdHgtPmJvbmRfY291bnQgKgorCQkJCQkJ ICAgICBzaXplb2Yoc3RydWN0IGJvbmQpKTsKKwkJCQlpZ3RfYXNzZXJ0KGN0eC0+Ym9uZHMpOwor CQkJCWN0eC0+Ym9uZHNbY3R4LT5ib25kX2NvdW50IC0gMV0ubWFzayA9CisJCQkJCXctPmJvbmRf bWFzazsKKwkJCQljdHgtPmJvbmRzW2N0eC0+Ym9uZF9jb3VudCAtIDFdLm1hc3RlciA9CisJCQkJ CXctPmJvbmRfbWFzdGVyOwogCQkJfQogCQl9CiAKQEAgLTEyODEsNiArMTM4NSw0NiBAQCBwcmVw YXJlX3dvcmtsb2FkKHVuc2lnbmVkIGludCBpZCwgc3RydWN0IHdvcmtsb2FkICp3cmssIHVuc2ln bmVkIGludCBmbGFncykKIAkJCQkJY3R4LT5lbmdpbmVfbWFwW2ogLSAxXSAtIFZDUzE7IC8qIEZJ WE1FICovCiAJCQl9CiAKKwkJCWZvciAoaiA9IDA7IGogPCBjdHgtPmJvbmRfY291bnQ7IGorKykg eworCQkJCXVuc2lnbmVkIGxvbmcgbWFzayA9IGN0eC0+Ym9uZHNbal0ubWFzazsKKwkJCQlJOTE1 X0RFRklORV9DT05URVhUX0VOR0lORVNfQk9ORChib25kLAorCQkJCQkJCQkgX19idWlsdGluX3Bv cGNvdW50KG1hc2spKTsKKwkJCQlzdHJ1Y3QgaTkxNV9jb250ZXh0X2VuZ2luZXNfYm9uZCAqcCA9 IE5VTEwsICpwcmV2OworCQkJCXVuc2lnbmVkIGludCBiLCBlOworCisJCQkJcHJldiA9IHA7CisJ CQkJcCA9IGFsbG9jYShzaXplb2YoYm9uZCkpOworCQkJCWFzc2VydChwKTsKKwkJCQltZW1zZXQo cCwgMCwgc2l6ZW9mKGJvbmQpKTsKKworCQkJCWlmIChqID09IDApCisJCQkJCWxvYWRfYmFsYW5j ZS5iYXNlLm5leHRfZXh0ZW5zaW9uID0KKwkJCQkJCXRvX3VzZXJfcG9pbnRlcihwKTsKKwkJCQll bHNlIGlmIChqIDwgKGN0eC0+Ym9uZF9jb3VudCAtIDEpKQorCQkJCQlwcmV2LT5iYXNlLm5leHRf ZXh0ZW5zaW9uID0KKwkJCQkJCXRvX3VzZXJfcG9pbnRlcihwKTsKKworCQkJCXAtPmJhc2UubmFt ZSA9IEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9CT05EOworCQkJCXAtPnZpcnR1YWxfaW5kZXgg PSAwOworCQkJCXAtPm1hc3Rlci5lbmdpbmVfY2xhc3MgPQorCQkJCQlJOTE1X0VOR0lORV9DTEFT U19WSURFTzsKKwkJCQlwLT5tYXN0ZXIuZW5naW5lX2luc3RhbmNlID0KKwkJCQkJY3R4LT5ib25k c1tqXS5tYXN0ZXIgLSBWQ1MxOworCisJCQkJZm9yIChiID0gMCwgZSA9IDA7IG1hc2s7IGUrKywg bWFzayA+Pj0gMSkgeworCQkJCQl1bnNpZ25lZCBpbnQgaWR4OworCisJCQkJCWlmICghKG1hc2sg JiAxKSkKKwkJCQkJCWNvbnRpbnVlOworCisJCQkJCWlkeCA9IGZpbmRfZW5naW5lKCZzZXRfZW5n aW5lcy5lbmdpbmVzWzFdLAorCQkJCQkJCSAgY3R4LT5lbmdpbmVfbWFwX2NvdW50LAorCQkJCQkJ CSAgZSk7CisJCQkJCXAtPmVuZ2luZXNbYisrXSA9CisJCQkJCQlzZXRfZW5naW5lcy5lbmdpbmVz WzEgKyBpZHhdOworCQkJCX0KKwkJCX0KKwogCQkJZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGZkLCAm cGFyYW0pOwogCQl9IGVsc2UgaWYgKGN0eC0+d2FudHNfYmFsYW5jZSkgewogCQkJSTkxNV9ERUZJ TkVfQ09OVEVYVF9FTkdJTkVTX0xPQURfQkFMQU5DRShsb2FkX2JhbGFuY2UsIDIpID0gewpAQCAt MjI1NSw3ICsyMzk5LDggQEAgc3RhdGljIHZvaWQgKnJ1bl93b3JrbG9hZCh2b2lkICpkYXRhKQog CQkJCWNvbnRpbnVlOwogCQkJfSBlbHNlIGlmICh3LT50eXBlID09IFBSRUVNUFRJT04gfHwKIAkJ CQkgICB3LT50eXBlID09IEVOR0lORV9NQVAgfHwKLQkJCQkgICB3LT50eXBlID09IExPQURfQkFM QU5DRSkgeworCQkJCSAgIHctPnR5cGUgPT0gTE9BRF9CQUxBTkNFIHx8CisJCQkJICAgdy0+dHlw ZSA9PSBCT05EKSB7CiAJCQkJY29udGludWU7CiAJCQl9CiAKZGlmZiAtLWdpdCBhL2JlbmNobWFy a3Mvd3NpbS9SRUFETUUgYi9iZW5jaG1hcmtzL3dzaW0vUkVBRE1FCmluZGV4IDdhZGIzYjg5ZmZj Yy4uZTVkY2Y5Mjk1MTllIDEwMDY0NAotLS0gYS9iZW5jaG1hcmtzL3dzaW0vUkVBRE1FCisrKyBi L2JlbmNobWFya3Mvd3NpbS9SRUFETUUKQEAgLTcsNiArNyw3IEBAIEIuPHVpbnQ+CiBNLjx1aW50 Pi48c3RyPlt8PHN0cj5dLi4uCiBQfFguPHVpbnQ+LjxpbnQ+CiBkfHB8c3x0fHF8YS48aW50Piwu Li4KK2IuPHVpbnQ+LjxzdHI+W3w8c3RyPl0uPHN0cj4KIGYKIAogRm9yIGR1cmF0aW9uIGEgcmFu Z2UgY2FuIGJlIGdpdmVuIGZyb20gd2hpY2ggYSByYW5kb20gdmFsdWUgd2lsbCBiZSBwaWNrZWQK QEAgLTI2LDYgKzI3LDcgQEAgQWRkaXRpb25hbCB3b3JrbG9hZCBzdGVwcyBhcmUgYWxzbyBzdXBw b3J0ZWQ6CiAgJ2YnIC0gQ3JlYXRlIGEgc3luYyBmZW5jZS4KICAnYScgLSBBZHZhbmNlIHRoZSBw cmV2aW91c2x5IGNyZWF0ZWQgc3luYyBmZW5jZS4KICAnQicgLSBUdXJuIG9uIGNvbnRleHQgbG9h ZCBiYWxhbmNpbmcuCisgJ2InIC0gU2V0IHVwIGVuZ2luZSBib25kcy4KICAnTScgLSBTZXQgdXAg ZW5naW5lIG1hcC4KICAnUCcgLSBDb250ZXh0IHByaW9yaXR5LgogICdYJyAtIENvbnRleHQgcHJl ZW1wdGlvbiBjb250cm9sLgpAQCAtMjAyLDMgKzIwNCw1MSBAQCBUaGlzIGVuYWJsZXMgbG9hZCBi YWxhbmNpbmcgZm9yIGNvbnRleHQgbnVtYmVyIG9uZS4KIAogU3VibWlzc2lvbnMgdG8gbG9hZCBi YWxhbmNlZCBjb250ZXh0cyBhcmUgb25seSBhbGxvd2VkIHRvIHVzZSB0aGUgREVGQVVMVCBlbmdp bmUKIHNwZWNpZmllci4KKworRW5naW5lIGJvbmRzCistLS0tLS0tLS0tLS0KKworRW5naW5lIGJv bmRzIGFyZSBleHRlbnNpb25zIG9uIGxvYWQgYmFsYW5jZWQgY29udGV4dHMuIFRoZXkgYWxsb3cg ZXhwcmVzc2luZworcnVsZXMgb2YgZW5naW5lIHNlbGVjdGlvbiBiZXR3ZWVuIHR3byBjby1vcGVy YXRpbmcgY29udGV4dHMgdGllZCB3aXRoIHN1Ym1pdAorZmVuY2VzLiBJbiBvdGhlciB3b3Jkcywg dGhlIHJ1bGUgZXhwcmVzc2lvbiBpcyB0ZWxsaW5nIHRoZSBkcml2ZXI6ICJJZiB5b3UgcGljawor dGhpcyBlbmdpbmUgZm9yIGNvbnRleHQgb25lLCB0aGVuIHlvdSBoYXZlIHRvIHBpY2sgdGhhdCBl bmdpbmUgZm9yIGNvbnRleHQgdHdvIi4KKworU3ludGF4IGlzOgorICBiLjxjb250ZXh0Pi48ZW5n aW5lX2xpc3Q+LjxtYXN0ZXJfZW5naW5lPgorCitFbmdpbmUgbGlzdCBpcyBhIGxpc3Qgb2Ygb25l IG9yIG1vcmUgc2libGluZyBlbmdpbmVzIHNlcGFyYXRlZCBieSBhIHBpcGUKK2NoYXJhY3RlciAo ZWcuICJWQ1MxfFZDUzIiKS4KKworVGhlcmUgY2FuIGJlIG11bHRpcGxlIGJvbmRzIHRpZWQgdG8g dGhlIHNhbWUgY29udGV4dC4KKworRXhhbXBsZToKKworICBNLjEuUkNTfFZFQ1MKKyAgQi4xCisg IE0uMi5WQ1MxfFZDUzIKKyAgQi4yCisgIGIuMi5WQ1MxLlJDUworICBiLjIuVkNTMi5WRUNTCisK K1RoaXMgdGVsbHMgdGhlIGRyaXZlciB0aGF0IGlmIGl0IHBpY2tlZCBSQ1MgZm9yIGNvbnRleHQg b25lLCBpdCBoYXMgdG8gcGljayBWQ1MxCitmb3IgY29udGV4dCB0d28uIEFuZCBpZiBpdCBwaWNr ZWQgVkVDUyBmb3IgY29udGV4dCBvbmUsIGl0IGhhcyB0byBwaWNrIFZDUzEgZm9yCitjb250ZXh0 IHR3by4KKworSWYgd2UgZXh0ZW5kIHRoZSBhYm92ZSBleGFtcGxlIHdpdGggbW9yZSB3b3JrbG9h ZCBkaXJlY3RpdmVzOgorCisgIDEuREVGQVVMVC4xMDAwLjAuMAorICAyLkRFRkFVTFQuMTAwMC5z LTEuMAorCitXZSBnZXQgdG8gYSBmdWxseSBmdW5jdGlvbmFsIGV4YW1wbGUgd2hlcmUgdHdvIGJh dGNoIGJ1ZmZlcnMgYXJlIHN1Ym1pdHRlZCBpbiBhCitsb2FkIGJhbGFuY2VkIGZhc2hpb24sIHRl bGxpbmcgdGhlIGRyaXZlciB0aGV5IHNob3VsZCBydW4gc2ltdWx0YW5lb3VzbHkgYW5kCit0aGF0 IHZhbGlkIGVuZ2luZSBwYWlycyBhcmUgZWl0aGVyIFJDUyArIFZDUzEgKGZvciB0d28gY29udGV4 dHMgcmVzcGVjdGl2ZWx5KSwKK29yIFZFQ1MgKyBWQ1MyLgorCitUaGlzIGNhbiBhbHNvIGJlIGV4 dGVuZGVkIHVzaW5nIHN5bmMgZmVuY2VzIHRvIGltcHJvdmUgY2hhbmNlcyBvZiB0aGUgZmlyc3QK K3N1Ym1pc3Npb24gbm90IGdldHRpbmcgb24gdGhlIGhhcmR3YXJlIGFmdGVyIHRoZSBzZWNvbmQg b25lLiBTZWNvbmQgYmxvY2sgd291bGQKK3RoZW4gbG9vayBsaWtlOgorCisgIGYKKyAgMS5ERUZB VUxULjEwMDAuZi0xLjAKKyAgMi5ERUZBVUxULjEwMDAucy0xLjAKKyAgYS4tMwotLSAKMi4yMC4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=