From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tiago Vignatti Subject: [PATCH i-g-t 4/5] tests: Add kms_mmap_write_crc for cache coherency tests Date: Tue, 11 Aug 2015 17:59:27 -0300 Message-ID: <1439326768-5611-9-git-send-email-tiago.vignatti@intel.com> References: <1439326768-5611-1-git-send-email-tiago.vignatti@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1439326768-5611-1-git-send-email-tiago.vignatti@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, daniel.thompson@linaro.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwcm9ncmFtIGNhbiBiZSB1c2VkIHRvIGRldGVjdCB3aGVuIHRoZSB3cml0ZXMgZG9uJ3Qg bGFuZCBpbiBzY2Fub3V0IGR1ZQpjYWNoZSBpbmNvaGVyZW5jeS4gQWx0aG91Z2ggdGhpcyBzZWVt cyBhIHByb2JsZW0gaW5oZXJlbnRseSBvZiBub24tTENDIG1hY2hpbmVzCigiQXRvbSIpLCB0aGlz IHBhcnRpY3VsYXIgdGVzdCBjYXRjaGVzIGEgY2FjaGUgZGlydCBvbiBzY2Fub3V0IG9uIExMQyBt YWNoaW5lcwphcyB3ZWxsLiBJdCdzIGluc3BpcmVkIGluIFZpbGxlJ3Mga21zX3B3cml0ZV9jcmMu YyBhbmQgY2FuIGJlIHVzZWQgYWxzbyB0byB0ZXN0CnRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgZHJp dmVyJ3MgYmVnaW5fY3B1X2FjY2VzcyAoVE9ETyBlbmRfY3B1X2FjY2VzcykuCgpUbyBzZWUgdGhl IG5lZWQgZm9yIGZsdXNoLCBvbmUgaGFzIHRvIHJ1biB0aGlzIHNhbWUgYmluYXJ5IGEgZmV3IHRp bWVzIGNhdXNlCml0J3Mgbm90IDEwMCUgcmVwcm9kdWNpYmxlIChpbiBteSBDb3JlIG1hY2hpbmUg aXQncyBhbHdheXMgcG9zc2libGUgdG8gY2F0Y2gKdGhlIHByb2JsZW0gYnkgcnVubmluZyBpdCBh dCBtb3N0IDUgdGltZXMpLgoKU2lnbmVkLW9mZi1ieTogVGlhZ28gVmlnbmF0dGkgPHRpYWdvLnZp Z25hdHRpQGludGVsLmNvbT4KLS0tCiB0ZXN0cy8uZ2l0aWdub3JlICAgICAgICAgICB8ICAgMSAr CiB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzICAgICB8ICAgMSArCiB0ZXN0cy9rbXNfbW1hcF93cml0 ZV9jcmMuYyB8IDIzNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIDMgZmlsZXMgY2hhbmdlZCwgMjM4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0 NCB0ZXN0cy9rbXNfbW1hcF93cml0ZV9jcmMuYwoKZGlmZiAtLWdpdCBhL3Rlc3RzLy5naXRpZ25v cmUgYi90ZXN0cy8uZ2l0aWdub3JlCmluZGV4IDViYzRhNTguLjliYTFlNDggMTAwNjQ0Ci0tLSBh L3Rlc3RzLy5naXRpZ25vcmUKKysrIGIvdGVzdHMvLmdpdGlnbm9yZQpAQCAtMTQwLDYgKzE0MCw3 IEBAIGttc19mb3JjZV9jb25uZWN0b3IKIGttc19mcm9udGJ1ZmZlcl90cmFja2luZwoga21zX2xl Z2FjeV9jb2xvcmtleQoga21zX21taW9fdnNfY3NfZmxpcAora21zX21tYXBfd3JpdGVfY3JjCiBr bXNfcGlwZV9iX2NfaXZiCiBrbXNfcGlwZV9jcmNfYmFzaWMKIGttc19wbGFuZQpkaWZmIC0tZ2l0 IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXgg NWIyMDcyZS4uMzFjNTUwOCAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysg Yi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCkBAIC0xNjMsNiArMTYzLDcgQEAgVEVTVFNfcHJvZ3Mg PSBcCiAJa21zXzNkIFwKIAlrbXNfZmVuY2VfcGluX2xlYWsgXAogCWttc19mb3JjZV9jb25uZWN0 b3IgXAorCWttc19tbWFwX3dyaXRlX2NyYyBcCiAJa21zX3B3cml0ZV9jcmMgXAogCWttc19zaW5r X2NyY19iYXNpYyBcCiAJcHJpbWVfdWRsIFwKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19tbWFwX3dy aXRlX2NyYy5jIGIvdGVzdHMva21zX21tYXBfd3JpdGVfY3JjLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZTI0ZDUzNQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2ttc19t bWFwX3dyaXRlX2NyYy5jCkBAIC0wLDAgKzEsMjM2IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIw MTUgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5k L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv IHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90 aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBh cmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw b3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9W SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisg KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G IE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO RCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1Ig Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RI RVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg T1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUg U09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAqICAgIFRpYWdvIFZpZ25hdHRpIDx0aWFnby52 aWduYXR0aSBhdCBpbnRlbC5jb20+CisgKi8KKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVk ZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+Cisj aW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlICJkcm10ZXN0LmgiCisjaW5jbHVkZSAiaWd0 X2RlYnVnZnMuaCIKKyNpbmNsdWRlICJpZ3Rfa21zLmgiCisjaW5jbHVkZSAiaW50ZWxfY2hpcHNl dC5oIgorI2luY2x1ZGUgImlvY3RsX3dyYXBwZXJzLmgiCisjaW5jbHVkZSAiaWd0X2F1eC5oIgor CitJR1RfVEVTVF9ERVNDUklQVElPTigKKyAgICJVc2UgdGhlIGRpc3BsYXkgQ1JDIHN1cHBvcnQg dG8gdmFsaWRhdGUgbW1hcCB3cml0ZSB0byBhbiBhbHJlYWR5IHVuY2FjaGVkIGZ1dHVyZSBzY2Fu b3V0IGJ1ZmZlci4iKTsKKwordHlwZWRlZiBzdHJ1Y3QgeworCWludCBkcm1fZmQ7CisJaWd0X2Rp c3BsYXlfdCBkaXNwbGF5OworCXN0cnVjdCBpZ3RfZmIgZmJbMl07CisJaWd0X291dHB1dF90ICpv dXRwdXQ7CisJaWd0X3BsYW5lX3QgKnByaW1hcnk7CisJZW51bSBwaXBlIHBpcGU7CisJaWd0X2Ny Y190IHJlZl9jcmM7CisJaWd0X3BpcGVfY3JjX3QgKnBpcGVfY3JjOworCXVpbnQzMl90IGRldmlk OworfSBkYXRhX3Q7CisKK2ludCBkbWFfYnVmX2ZkOworCitzdGF0aWMgY2hhciAqZG1hYnVmX21t YXBfZnJhbWVidWZmZXIoaW50IGRybV9mZCwgc3RydWN0IGlndF9mYiAqZmIpCit7CisJY2hhciAq cHRyID0gTlVMTDsKKworCWRtYV9idWZfZmQgPSBwcmltZV9oYW5kbGVfdG9fZmQoZHJtX2ZkLCBm Yi0+Z2VtX2hhbmRsZSk7CisJaWd0X2Fzc2VydChlcnJubyA9PSAwKTsKKworCXB0ciA9IG1tYXAo TlVMTCwgZmItPnNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIGRtYV9i dWZfZmQsIDApOworCWlndF9hc3NlcnQocHRyICE9IE1BUF9GQUlMRUQpOworCisJcmV0dXJuIHB0 cjsKK30KKworc3RhdGljIHZvaWQgdGVzdF9iZWdpbl9hY2Nlc3MoZGF0YV90ICpkYXRhKQorewor CWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKKwlpZ3Rfb3V0cHV0X3Qg Km91dHB1dCA9IGRhdGEtPm91dHB1dDsKKwlzdHJ1Y3QgaWd0X2ZiICpmYiA9ICZkYXRhLT5mYlsx XTsKKwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7CisJY2Fpcm9fdCAqY3I7CisJY2hhciAqcHRyOwor CXVpbnQzMl90IGNhY2hpbmc7CisJdm9pZCAqYnVmOworCWlndF9jcmNfdCBjcmM7CisKKwltb2Rl ID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOworCisJLyogY3JlYXRlIGEgbm9uLXdoaXRl IGZiIHdoZXJlIHdlIGNhbiB3cml0ZSBsYXRlciAqLworCWlndF9jcmVhdGVfZmIoZGF0YS0+ZHJt X2ZkLCBtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXksCisJCSAgICAgIERSTV9GT1JNQVRf WFJHQjg4ODgsIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsIGZiKTsKKworCXB0ciA9IGRtYWJ1 Zl9tbWFwX2ZyYW1lYnVmZmVyKGRhdGEtPmRybV9mZCwgZmIpOworCisJY3IgPSBpZ3RfZ2V0X2Nh aXJvX2N0eChkYXRhLT5kcm1fZmQsIGZiKTsKKwlpZ3RfcGFpbnRfdGVzdF9wYXR0ZXJuKGNyLCBm Yi0+d2lkdGgsIGZiLT5oZWlnaHQpOworCWNhaXJvX2Rlc3Ryb3koY3IpOworCisJLyogZmxpcCB0 byBpdCB0byBtYWtlIGl0IFVDL1dDIGFuZCBmdWxseSBmbHVzaGVkICovCisJaWd0X3BsYW5lX3Nl dF9mYihkYXRhLT5wcmltYXJ5LCBmYik7CisJaWd0X2Rpc3BsYXlfY29tbWl0KGRpc3BsYXkpOwor CisJLyogZmxpcCBiYWNrIHRoZSBvcmlnaW5hbCB3aGl0ZSBidWZmZXIgKi8KKwlpZ3RfcGxhbmVf c2V0X2ZiKGRhdGEtPnByaW1hcnksICZkYXRhLT5mYlswXSk7CisJaWd0X2Rpc3BsYXlfY29tbWl0 KGRpc3BsYXkpOworCisJLyogbWFrZSBzdXJlIGNhY2hpbmcgbW9kZSBoYXMgYmVjb21lIFVDL1dU ICovCisJY2FjaGluZyA9IGdlbV9nZXRfY2FjaGluZyhkYXRhLT5kcm1fZmQsIGZiLT5nZW1faGFu ZGxlKTsKKwlpZ3RfYXNzZXJ0KGNhY2hpbmcgPT0gSTkxNV9DQUNISU5HX05PTkUgfHwgY2FjaGlu ZyA9PSBJOTE1X0NBQ0hJTkdfRElTUExBWSk7CisKKwkvLyBVbmNvbW1lbnQgdGhlIGZvbGxvd2lu ZyBmb3IgZmx1c2ggYW5kIHRoZSBjcmMgY2hlY2sgbmV4dCBwYXNzZXMuIEl0CisJLy8gcmVxdWly ZXMgdGhlIGtlcm5lbCBjb3VudGVyLXBhcnQgb2YgaXQgaW1wbGVtZW50ZWQgb2J2aW91c2x5Lgor CS8vIHsKKwkvLyBzdHJ1Y3QgZG1hX2J1Zl9zeW5jIHN5bmNfc3RhcnQ7CisJLy8gbWVtc2V0KCZz eW5jX3N0YXJ0LCAwLCBzaXplb2Yoc3luY19zdGFydCkpOworCS8vIHN5bmNfc3RhcnQuZmxhZ3Mg PSBETUFfQlVGX1NZTkNfU1RBUlQgfCBETUFfQlVGX1NZTkNfUlc7CisJLy8gZG9faW9jdGwoZG1h X2J1Zl9mZCwgRE1BX0JVRl9JT0NUTF9TWU5DLCAmc3luY19zdGFydCk7CisJLy8gfQorCisJLyog dXNlIGRtYWJ1ZiBwb2ludGVyIHRvIG1ha2UgdGhlIG90aGVyIGZiIGFsbCB3aGl0ZSB0b28gKi8K KwlidWYgPSBtYWxsb2MoZmItPnNpemUpOworCWlndF9hc3NlcnQoYnVmICE9IE5VTEwpOworCW1l bXNldChidWYsIDB4ZmYsIGZiLT5zaXplKTsKKwltZW1jcHkocHRyLCBidWYsIGZiLT5zaXplKTsK KwlmcmVlKGJ1Zik7CisKKwkvKiBhbmQgZmxpcCB0byBpdCAqLworCWlndF9wbGFuZV9zZXRfZmIo ZGF0YS0+cHJpbWFyeSwgZmIpOworCWlndF9kaXNwbGF5X2NvbW1pdChkaXNwbGF5KTsKKworCS8q IGNoZWNrIHRoYXQgdGhlIGNyYyBpcyBhcyBleHBlY3RlZCwgd2hpY2ggcmVxdWlyZXMgdGhhdCBj YWNoZXMgZ290IGZsdXNoZWQgKi8KKwlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMoZGF0YS0+cGlw ZV9jcmMsICZjcmMpOworCWlndF9hc3NlcnRfY3JjX2VxdWFsKCZjcmMsICZkYXRhLT5yZWZfY3Jj KTsKK30KKworc3RhdGljIGJvb2wgcHJlcGFyZV9jcnRjKGRhdGFfdCAqZGF0YSkKK3sKKwlpZ3Rf ZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7CisJaWd0X291dHB1dF90ICpvdXRw dXQgPSBkYXRhLT5vdXRwdXQ7CisJZHJtTW9kZU1vZGVJbmZvICptb2RlOworCisJLyogc2VsZWN0 IHRoZSBwaXBlIHdlIHdhbnQgdG8gdXNlICovCisJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQs IGRhdGEtPnBpcGUpOworCWlndF9kaXNwbGF5X2NvbW1pdChkaXNwbGF5KTsKKworCWlmICghb3V0 cHV0LT52YWxpZCkgeworCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgUElQRV9BTlkpOwor CQlpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxheSk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlt b2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOworCisJLyogY3JlYXRlIGEgd2hpdGUg cmVmZXJlbmNlIGZiIGFuZCBmbGlwIHRvIGl0ICovCisJaWd0X2NyZWF0ZV9jb2xvcl9mYihkYXRh LT5kcm1fZmQsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKKwkJCSAgICBEUk1fRk9S TUFUX1hSR0I4ODg4LCBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLAorCQkJICAgIDEuMCwgMS4w LCAxLjAsICZkYXRhLT5mYlswXSk7CisKKwlkYXRhLT5wcmltYXJ5ID0gaWd0X291dHB1dF9nZXRf cGxhbmUob3V0cHV0LCBJR1RfUExBTkVfUFJJTUFSWSk7CisKKwlpZ3RfcGxhbmVfc2V0X2ZiKGRh dGEtPnByaW1hcnksICZkYXRhLT5mYlswXSk7CisJaWd0X2Rpc3BsYXlfY29tbWl0KGRpc3BsYXkp OworCisJaWYgKGRhdGEtPnBpcGVfY3JjKQorCQlpZ3RfcGlwZV9jcmNfZnJlZShkYXRhLT5waXBl X2NyYyk7CisKKwlkYXRhLT5waXBlX2NyYyA9IGlndF9waXBlX2NyY19uZXcoZGF0YS0+cGlwZSwK KwkJCQkJICBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7CisKKwkvKiBnZXQgcmVmZXJlbmNl IGNyYyBmb3IgdGhlIHdoaXRlIGZiICovCisJaWd0X3BpcGVfY3JjX2NvbGxlY3RfY3JjKGRhdGEt PnBpcGVfY3JjLCAmZGF0YS0+cmVmX2NyYyk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGlj IHZvaWQgY2xlYW51cF9jcnRjKGRhdGFfdCAqZGF0YSkKK3sKKwlpZ3RfZGlzcGxheV90ICpkaXNw bGF5ID0gJmRhdGEtPmRpc3BsYXk7CisJaWd0X291dHB1dF90ICpvdXRwdXQgPSBkYXRhLT5vdXRw dXQ7CisKKwlpZ3RfcGlwZV9jcmNfZnJlZShkYXRhLT5waXBlX2NyYyk7CisJZGF0YS0+cGlwZV9j cmMgPSBOVUxMOworCisJaWd0X3BsYW5lX3NldF9mYihkYXRhLT5wcmltYXJ5LCBOVUxMKTsKKwor CWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7CisJaWd0X2Rpc3BsYXlfY29t bWl0KGRpc3BsYXkpOworCisJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlsw XSk7CisJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlsxXSk7Cit9CisKK3N0 YXRpYyB2b2lkIHJ1bl90ZXN0KGRhdGFfdCAqZGF0YSkKK3sKKwlpZ3RfZGlzcGxheV90ICpkaXNw bGF5ID0gJmRhdGEtPmRpc3BsYXk7CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJZW51bSBwaXBl IHBpcGU7CisKKwlmb3JfZWFjaF9jb25uZWN0ZWRfb3V0cHV0KGRpc3BsYXksIG91dHB1dCkgewor CQlkYXRhLT5vdXRwdXQgPSBvdXRwdXQ7CisJCWZvcl9lYWNoX3BpcGUoZGlzcGxheSwgcGlwZSkg eworCQkJZGF0YS0+cGlwZSA9IHBpcGU7CisKKwkJCWlmICghcHJlcGFyZV9jcnRjKGRhdGEpKQor CQkJCWNvbnRpbnVlOworCisJCQl0ZXN0X2JlZ2luX2FjY2VzcyhkYXRhKTsKKwkJCWNsZWFudXBf Y3J0YyhkYXRhKTsKKworCQkJLyogb25jZSBpcyBlbm91Z2ggKi8KKwkJCXJldHVybjsKKwkJfQor CX0KKworCWlndF9za2lwKCJubyB2YWxpZCBjcnRjL2Nvbm5lY3RvciBjb21iaW5hdGlvbnMgZm91 bmRcbiIpOworfQorCitzdGF0aWMgZGF0YV90IGRhdGE7CisKK2lndF9zaW1wbGVfbWFpbgorewor CWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKKworCWlndF9maXh0dXJlIHsKKwkJZGF0YS5kcm1f ZmQgPSBkcm1fb3Blbl9hbnlfbWFzdGVyKCk7CisKKwkJZGF0YS5kZXZpZCA9IGludGVsX2dldF9k cm1fZGV2aWQoZGF0YS5kcm1fZmQpOworCisJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUo KTsKKworCQlpZ3RfcmVxdWlyZV9waXBlX2NyYygpOworCisJCWlndF9kaXNwbGF5X2luaXQoJmRh dGEuZGlzcGxheSwgZGF0YS5kcm1fZmQpOworCX0KKworCXJ1bl90ZXN0KCZkYXRhKTsKKworCWln dF9maXh0dXJlIHsKKwkJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKKwl9Cit9Ci0t IAoyLjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK