From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9059E6E8D1 for ; Fri, 29 Nov 2019 11:24:48 +0000 (UTC) From: Ramalingam C Date: Fri, 29 Nov 2019 16:54:11 +0530 Message-Id: <20191129112412.8263-1-ramalingam.c@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3 1/2] tests/dumb_buffer: Tests for creation and map 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 , Chris Wilson List-ID: RHVtYiBidWZmZXIgY3JlYXRpb24gYW5kIG1hcHBpbmcgYXJlIGNvdmVyZWQgd2l0aCB0ZXN0IGNh c2VzLgoKdjI6CiAgTWFkZSBhcyBhIGdlbmVyaWMgdGVzdCBmb3IgZHVtYiBidWZmZXIgY3JlYXRp b24gW0NocmlzXQp2MzoKICBkdW1iX21hcCBpcyB1c2VkIFtDaHJpc10KICBBZGRlZCB0d28gdGVz dHMgZm9yIG1hcC4KClNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGlu dGVsLmNvbT4KY2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0K IHRlc3RzL01ha2VmaWxlLmFtICAgICAgIHwgICAyICsKIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMg IHwgICAxICsKIHRlc3RzL2dlbV9kdW1iX2J1ZmZlci5jIHwgMzE3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIHRlc3RzL21lc29uLmJ1aWxkICAgICAgIHwgICA5ICsr CiA0IGZpbGVzIGNoYW5nZWQsIDMyOSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg dGVzdHMvZ2VtX2R1bWJfYnVmZmVyLmMKCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5hbSBi L3Rlc3RzL01ha2VmaWxlLmFtCmluZGV4IDdmZTYwYjc4ZTI1OC4uYTliMDU0MTYxNzdkIDEwMDY0 NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5hbQorKysgYi90ZXN0cy9NYWtlZmlsZS5hbQpAQCAtOTcs NiArOTcsOCBAQCBnZW1fY3R4X2ZyZXFfTERBREQgPSAkKExEQUREKSAkKHRvcF9idWlsZGRpcikv bGliL2xpYmlndF9wZXJmLmxhCiBnZW1fY3R4X3RocmFzaF9DRkxBR1MgPSAkKEFNX0NGTEFHUykg JChUSFJFQURfQ0ZMQUdTKQogZ2VtX2N0eF90aHJhc2hfTERBREQgPSAkKExEQUREKSAtbHB0aHJl YWQKIGdlbV9jdHhfc3NldV9MREFERCA9ICQoTERBREQpICQodG9wX2J1aWxkZGlyKS9saWIvbGli aWd0X3BlcmYubGEKK2dlbV9kdW1iX2J1ZmZlcl9DRkxBR1MgPSAkKEFNX0NGTEFHUykgJChUSFJF QURfQ0ZMQUdTKQorZ2VtX2R1bWJfYnVmZmVyX0xEQUREID0gJChMREFERCkgLWxwdGhyZWFkIC1s YXRvbWljCiBnZW1fZXhlY19iYWxhbmNlcl9MREFERCA9ICQoTERBREQpICQodG9wX2J1aWxkZGly KS9saWIvbGliaWd0X3BlcmYubGEKIGdlbV9leGVjX2NhcHR1cmVfTERBREQgPSAkKExEQUREKSAt bHoKIGdlbV9leGVjX3BhcmFsbGVsX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAkKFRIUkVBRF9DRkxB R1MpCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUu c291cmNlcwppbmRleCBiZGQ5MTJkMmQ1YTguLmRmOTc1NmRkNzAzZSAxMDA2NDQKLS0tIGEvdGVz dHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCkBAIC05OSw2 ICs5OSw3IEBAIFRFU1RTX3Byb2dzID0gXAogCXRvb2xzX3Rlc3QgXAogCXZnZW1fYmFzaWMgXAog CXZnZW1fc2xvdyBcCisJZ2VtX2R1bWJfYnVmZmVyIFwKIAkkKE5VTEwpCiAKIFRFU1RTX3Byb2dz ICs9IGdlbV9iYWRfcmVsb2MKZGlmZiAtLWdpdCBhL3Rlc3RzL2dlbV9kdW1iX2J1ZmZlci5jIGIv dGVzdHMvZ2VtX2R1bWJfYnVmZmVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5jYWYxYWRiMWZhZGIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9nZW1fZHVtYl9i dWZmZXIuYwpAQCAtMCwwICsxLDMxNyBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVs IENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0 d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiks CisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp bmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5 LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxs IGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo ZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xs b3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg dGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgp IHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg b2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElF RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFO VEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G UklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVS V0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUg U09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJF LgorICoKKyAqIEF1dGhvcnM6CisgKiAgICBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRl bC5jb20+CisgKgorICovCisKKy8qKiBAZmlsZSBnZW1fZHVtYl9idWZmZXIuYworICoKKyAqIFRo aXMgaXMgYSB0ZXN0IGZvciB0aGUgZXh0ZW5kZWQgYW5kIG9sZCBnZW1fY3JlYXRlX2R1bWIgYW5k IGdlbV9tYXBfZHVtYgorICogaW9jdGwsIHRoYXQgaW5jbHVkZXMgYWxsb2NhdGlvbiBvZiBvYmpl Y3QgZnJvbSBzdG9sZW4gbWVtb3J5LCBzaG1lbSBhbmQKKyAqIGxvY2FsIG1lbW9yeS4KKyAqCisg KiBUaGUgZ29hbCBpcyB0byBzaW1wbHkgZW5zdXJlIHRoYXQgYmFzaWNzIHdvcmsgYW5kIGludmFs aWQgaW5wdXQKKyAqIGNvbWJpbmF0aW9ucyBhcmUgcmVqZWN0ZWQuCisgKi8KKworI2luY2x1ZGUg PHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+Cisj aW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxpbnR0eXBl cy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRl IDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPHB0aHJlYWQuaD4K KyNpbmNsdWRlIDxzdGRhdG9taWMuaD4KKworI2luY2x1ZGUgPGRybS5oPgorCisjaW5jbHVkZSAi aW9jdGxfd3JhcHBlcnMuaCIKKyNpbmNsdWRlICJpbnRlbF9idWZtZ3IuaCIKKyNpbmNsdWRlICJp bnRlbF9iYXRjaGJ1ZmZlci5oIgorI2luY2x1ZGUgImludGVsX2lvLmgiCisjaW5jbHVkZSAiaW50 ZWxfY2hpcHNldC5oIgorI2luY2x1ZGUgImlndF9hdXguaCIKKyNpbmNsdWRlICJkcm10ZXN0Lmgi CisjaW5jbHVkZSAiZHJtLmgiCisjaW5jbHVkZSAiaTkxNV9kcm0uaCIKKyNpbmNsdWRlICJpZ3Rf a21zLmgiCisKK0lHVF9URVNUX0RFU0NSSVBUSU9OKCJUaGlzIGlzIGEgdGVzdCBmb3IgdGhlIGV4 dGVuZGVkICYgb2xkIGdlbV9jcmVhdGVfZHVtYiBhbmQiCisJCSAgICAgIiBnZW1fbWFwX2R1bWIg aW9jdGwsIgorCQkgICAgICIgdGhhdCBpbmNsdWRlcyBhbGxvY2F0aW9uIG9mIG9iamVjdCBmcm9t IHN0b2xlbiBtZW1vcnksIgorCQkgICAgICIgc2htZW0gYW5kIGxvY2FsIG1lbW9yeS4iKTsKKwor I2RlZmluZSBDTEVBUihzKSBtZW1zZXQoJnMsIDAsIHNpemVvZihzKSkKKyNkZWZpbmUgUEFHRV9T SVpFIDQwOTYKKworc3RhdGljIHZvaWQgaW52YWxpZF9kaW1lbnNpb25zX3Rlc3QoaW50IGZkKQor eworCXN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiBjcmVhdGU7CisKKwltZW1zZXQoJmNyZWF0 ZSwgMCwgc2l6ZW9mKGNyZWF0ZSkpOworCWNyZWF0ZS53aWR0aCA9IDQwMzI7CisJY3JlYXRlLmhl aWdodCA9IDIwMTY7CisJY3JlYXRlLmJwcCA9IDI0OworCWRvX2lvY3RsX2VycihmZCwgRFJNX0lP Q1RMX01PREVfQ1JFQVRFX0RVTUIsICZjcmVhdGUsIEVJTlZBTCk7CisKKwljcmVhdGUuYnBwID0g MzI7CisJY3JlYXRlLndpZHRoID0gMDsKKwlkb19pb2N0bF9lcnIoZmQsIERSTV9JT0NUTF9NT0RF X0NSRUFURV9EVU1CLCAmY3JlYXRlLCBFSU5WQUwpOworCisJY3JlYXRlLndpZHRoID0gNDAzMjsK KwljcmVhdGUuaGVpZ2h0ID0gMDsKKwlkb19pb2N0bF9lcnIoZmQsIERSTV9JT0NUTF9NT0RFX0NS RUFURV9EVU1CLCAmY3JlYXRlLCBFSU5WQUwpOworfQorCitzdGF0aWMgdm9pZCB2YWxpZF9kdW1i X2NyZWF0aW9uX3Rlc3QoaW50IGZkKQoreworCXN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiBj cmVhdGUgPSB7CisJCS53aWR0aCA9IDQwMzIsCisJCS5oZWlnaHQgPSAyMDE2LAorCQkuYnBwID0g MzIsCisJfTsKKworCWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQiwgJmNy ZWF0ZSk7CisJZ2VtX2Nsb3NlKGZkLCBjcmVhdGUuaGFuZGxlKTsKK30KKworc3RhdGljIHZvaWQg dmFsaWRfbWFwKGludCBmZCkKK3sKKwlzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgY3JlYXRl ID0geworCQkud2lkdGggPSA0MDMyLAorCQkuaGVpZ2h0ID0gMjAxNiwKKwkJLmJwcCA9IDMyLAor CX07CisJdm9pZCAqcHRyOworCisJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9NT0RFX0NSRUFURV9E VU1CLCAmY3JlYXRlKTsKKwlwdHIgPSBrbXN0ZXN0X2R1bWJfbWFwX2J1ZmZlcihmZCwgY3JlYXRl LmhhbmRsZSwgY3JlYXRlLnNpemUsCisJCQkJICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSk7 CisJbXVubWFwKHB0ciwgY3JlYXRlLnNpemUpOworCWdlbV9jbG9zZShmZCwgY3JlYXRlLmhhbmRs ZSk7Cit9CisKK3N0YXRpYyB2b2lkIGludmFsaWRfc2l6ZV9tYXAoaW50IGZkKQoreworCXN0cnVj dCBkcm1fbW9kZV9tYXBfZHVtYiBhcmcgPSB7fTsKKwlzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1 bWIgY3JlYXRlID0geworCQkud2lkdGggPSA0MDMyLAorCQkuaGVpZ2h0ID0gMjAxNiwKKwkJLmJw cCA9IDMyLAorCX07CisJdm9pZCAqcHRyOworCisJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9NT0RF X0NSRUFURV9EVU1CLCAmY3JlYXRlKTsKKworCWFyZy5oYW5kbGUgPSBjcmVhdGUuaGFuZGxlOwor CWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfTU9ERV9NQVBfRFVNQiwgJmFyZyk7CisKKwlwdHIgPSBt bWFwKE5VTEwsIGNyZWF0ZS5zaXplICsgMSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKKwkJICAg TUFQX1NIQVJFRCwgZmQsIGFyZy5vZmZzZXQpOworCWlndF9hc3NlcnQocHRyID09IE1BUF9GQUlM RUQpOworCisJZ2VtX2Nsb3NlKGZkLCBjcmVhdGUuaGFuZGxlKTsKK30KKworLyoKKyAqIENyZWF0 aW5nIGFuIGR1bWIgYnVmZmVyIHdpdGggbm9uLWFsaWduZWQgc2l6ZSBhbmQgdHJ5aW5nIHRvIGFj Y2VzcyBpdCB3aXRoIGFuCisgKiBvZmZzZXQsIHdoaWNoIGlzIGdyZWF0ZXIgdGhhbiB0aGUgcmVx dWVzdGVkIHNpemUgYnV0IHNtYWxsZXIgdGhhbiB0aGUKKyAqIG9iamVjdCdzIGxhc3QgcGFnZSBi b3VuZGFyeS4gcHdyaXRlIGhlcmUgbXVzdCBiZSBzdWNjZXNzZnVsLgorICovCitzdGF0aWMgdm9p ZCB2YWxpZF9ub25hbGlnbmVkX3NpemUoaW50IGZkKQoreworCXN0cnVjdCBkcm1fbW9kZV9jcmVh dGVfZHVtYiBjcmVhdGUgPSB7CisJCS53aWR0aCA9IDI0LAorCQkuaGVpZ2h0ID0gMjQsCisJCS5i cHAgPSAzMiwKKwl9OworCWNoYXIgYnVmW1BBR0VfU0laRV07CisKKwlkb19pb2N0bChmZCwgRFJN X0lPQ1RMX01PREVfQ1JFQVRFX0RVTUIsICZjcmVhdGUpOworCisJZ2VtX3dyaXRlKGZkLCBjcmVh dGUuaGFuZGxlLCBQQUdFX1NJWkUgLyAyLCBidWYsIFBBR0VfU0laRSAvIDIpOworCisJZ2VtX2Ns b3NlKGZkLCBjcmVhdGUuaGFuZGxlKTsKK30KKworLyoKKyAqIENyZWF0aW5nIGFuIG9iamVjdCB3 aXRoIG5vbi1hbGlnbmVkIHNpemUgYW5kIHRyeWluZyB0byBhY2Nlc3MgaXQgd2l0aCBhbgorICog b2Zmc2V0LCB3aGljaCBpcyBncmVhdGVyIHRoYW4gdGhlIHJlcXVlc3RlZCBzaXplIGFuZCBsYXJn ZXIgdGhhbiB0aGUKKyAqIG9iamVjdCdzIGxhc3QgcGFnZSBib3VuZGFyeS4gcHdyaXRlIGhlcmUg bXVzdCBmYWlsLgorICovCitzdGF0aWMgdm9pZCBpbnZhbGlkX25vbmFsaWduZWRfc2l6ZShpbnQg ZmQpCit7CisJc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iIGNyZWF0ZSA9IHsKKwkJLndpZHRo ID0gMjQsCisJCS5oZWlnaHQgPSAyNCwKKwkJLmJwcCA9IDMyLAorCX07CisJY2hhciBidWZbUEFH RV9TSVpFXTsKKworCWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQiwgJmNy ZWF0ZSk7CisJLyogVGhpcyBzaG91bGQgZmFpbC4gSGVuY2UgY2Fubm90IHVzZSBnZW1fd3JpdGUu ICovCisJaWd0X2Fzc2VydChfX2dlbV93cml0ZShmZCwgY3JlYXRlLmhhbmRsZSwKKwkJCSAgICAg ICBjcmVhdGUuc2l6ZSAtIChQQUdFX1NJWkUgLyAyKSwgYnVmLCBQQUdFX1NJWkUpKTsKKwlnZW1f Y2xvc2UoZmQsIGNyZWF0ZS5oYW5kbGUpOworfQorCitzdGF0aWMgdWludDY0X3QgYXRvbWljX2Nv bXBhcmVfc3dhcF91NjQoX0F0b21pYyh1aW50NjRfdCkgKnB0ciwKKwkJCQkJdWludDY0X3Qgb2xk dmFsLCB1aW50NjRfdCBuZXd2YWwpCit7CisJYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25n KHB0ciwgJm9sZHZhbCwgbmV3dmFsKTsKKwlyZXR1cm4gb2xkdmFsOworfQorCitzdGF0aWMgdWlu dDY0X3QgZ2V0X25wYWdlcyhfQXRvbWljKHVpbnQ2NF90KSAqZ2xvYmFsLCB1aW50NjRfdCBucGFn ZXMpCit7CisJdWludDY0X3QgdHJ5LCBvbGQsIG1heDsKKworCW1heCA9ICpnbG9iYWw7CisJZG8g eworCQlvbGQgPSBtYXg7CisJCXRyeSA9IDEgKyBucGFnZXMgJSAoKG1heCAvIDIpID8gKG1heCAv IDIpIDogMSk7CisJCW1heCAtPSB0cnk7CisJfSB3aGlsZSAoKG1heCA9IGF0b21pY19jb21wYXJl X3N3YXBfdTY0KGdsb2JhbCwgb2xkLCBtYXgpKSAhPSBvbGQpOworCisJcmV0dXJuIHRyeTsKK30K Kworc3RydWN0IHRocmVhZF9jbGVhciB7CisJX0F0b21pYyh1aW50NjRfdCkgbWF4OworCWludCB0 aW1lb3V0OworCWludCBmZDsKK307CisKKyNkZWZpbmUgTUFYX1BBR0VfVE9fUkVRVUVTVAkxMDI0 MDAKKworc3RhdGljIHZvaWQgKnRocmVhZF9jbGVhcih2b2lkICpkYXRhKQoreworCXN0cnVjdCB0 aHJlYWRfY2xlYXIgKmFyZyA9IGRhdGE7CisJdW5zaWduZWQgbG9uZyBjaGVja2VkID0gMDsKKwlp bnQgZmQgPSBhcmctPmZkOworCXZvaWQgKnB0cjsKKworCWlndF91bnRpbF90aW1lb3V0KGFyZy0+ dGltZW91dCkgeworCQlzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgY3JlYXRlID0ge307CisJ CXVpbnQ2NF90IG5wYWdlczsKKworCQlucGFnZXMgPSByYW5kb20oKTsKKwkJbnBhZ2VzID0gbnBh Z2VzIDw8IDMyOworCQlucGFnZXMgfD0gcmFuZG9tKCk7CisJCW5wYWdlcyA9IGdldF9ucGFnZXMo JmFyZy0+bWF4LCBucGFnZXMpOworCisJCWZvcih1aW50NjRfdCBfbnBhZ2VzID0gbnBhZ2VzOyBu cGFnZXMgPiAwOyBucGFnZXMgLT0gX25wYWdlcykKKwkJeworCQkJY3JlYXRlLmJwcCA9IDMyOwor CQkJY3JlYXRlLndpZHRoID0gUEFHRV9TSVpFIC8gKGNyZWF0ZS5icHAgLyA4KTsKKwkJCV9ucGFn ZXMgPSBucGFnZXMgPD0gTUFYX1BBR0VfVE9fUkVRVUVTVCA/IG5wYWdlcyA6CisJCQkJICBNQVhf UEFHRV9UT19SRVFVRVNUOworCQkJY3JlYXRlLmhlaWdodCA9IF9ucGFnZXM7CisKKwkJCWRvX2lv Y3RsKGZkLCBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQiwgJmNyZWF0ZSk7CisKKwkJCWlndF9h c3NlcnQoX25wYWdlcyA9PSBjcmVhdGUuc2l6ZSAvIFBBR0VfU0laRSk7CisKKwkJCXB0ciA9IGtt c3Rlc3RfZHVtYl9tYXBfYnVmZmVyKGZkLCBjcmVhdGUuaGFuZGxlLAorCQkJCQkJICAgICAgY3Jl YXRlLnNpemUsCisJCQkJCQkgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKKworCQkJZm9y ICh1aW50NjRfdCBwYWdlID0gMDsgcGFnZSA8IF9ucGFnZXM7IHBhZ2UrKykgeworCQkJCXVpbnQ2 NF90IHg7CisJCQkJbWVtY3B5KCZ4LCBwdHIgKyBwYWdlICogNDA5NiArCisJCQkJICAgICAgIHBh Z2UgJSAoNDA5NiAtIHNpemVvZih4KSksIHNpemVvZih4KSk7CisJCQkJaWd0X2Fzc2VydF9lcV91 NjQoeCwgMCk7CisJCQl9CisKKwkJCWlmIChwdHIpCisJCQkJbXVubWFwKHB0ciwgY3JlYXRlLnNp emUpOworCisJCQlrbXN0ZXN0X2R1bWJfZGVzdHJveShmZCwgY3JlYXRlLmhhbmRsZSk7CisJCQlh dG9taWNfZmV0Y2hfYWRkKCZhcmctPm1heCwgX25wYWdlcyk7CisJCQljaGVja2VkICs9IF9ucGFn ZXM7CisJCX0KKworCX0KKworCXJldHVybiAodm9pZCAqKSh1aW50cHRyX3QpY2hlY2tlZDsKK30K Kworc3RhdGljIHZvaWQgYWx3YXlzX2NsZWFyKGludCBmZCwgaW50IHRpbWVvdXQpCit7CisJc3Ry dWN0IHRocmVhZF9jbGVhciBhcmcgPSB7CisJCS5mZCA9IGZkLAorCQkudGltZW91dCA9IHRpbWVv dXQsCisJCS5tYXggPSBpbnRlbF9nZXRfYXZhaWxfcmFtX21iKCkgPDwgKDIwIC0gMTIpLCAvKiBp biBwYWdlcyAqLworCX07CisJY29uc3QgaW50IG5jcHVzID0gc3lzY29uZihfU0NfTlBST0NFU1NP UlNfT05MTik7CisJdW5zaWduZWQgbG9uZyBjaGVja2VkOworCXB0aHJlYWRfdCB0aHJlYWRbbmNw dXNdOworCXZvaWQgKnJlc3VsdDsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgbmNwdXM7IGkrKykK KwkJcHRocmVhZF9jcmVhdGUoJnRocmVhZFtpXSwgTlVMTCwgdGhyZWFkX2NsZWFyLCAmYXJnKTsK KworCWNoZWNrZWQgPSAwOworCWZvciAoaW50IGkgPSAwOyBpIDwgbmNwdXM7IGkrKykgeworCQlw dGhyZWFkX2pvaW4odGhyZWFkW2ldLCAmcmVzdWx0KTsKKwkJY2hlY2tlZCArPSAodWludHB0cl90 KXJlc3VsdDsKKwl9CisJaWd0X2luZm8oIkNoZWNrZWQgJSdsdSBwYWdlIGFsbG9jYXRpb25zXG4i LCBjaGVja2VkKTsKK30KKworaWd0X21haW4KK3sKKwlpbnQgZmQgPSAtMTsKKworCWlndF9za2lw X29uX3NpbXVsYXRpb24oKTsKKworCWlndF9maXh0dXJlIHsKKwkJZmQgPSBkcm1fb3Blbl9kcml2 ZXIoRFJJVkVSX0FOWSk7CisJfQorCisJaWd0X3N1YnRlc3QoImludmFsaWQtYnBwIikKKwkJaW52 YWxpZF9kaW1lbnNpb25zX3Rlc3QoZmQpOworCisJaWd0X3N1YnRlc3QoImNyZWF0ZS12YWxpZC1k dW1iIikKKwkJdmFsaWRfZHVtYl9jcmVhdGlvbl90ZXN0KGZkKTsKKworCWlndF9zdWJ0ZXN0KCJj cmVhdGUtdmFsaWQtbm9uYWxpZ25lZCIpCisJCXZhbGlkX25vbmFsaWduZWRfc2l6ZShmZCk7CisK KwlpZ3Rfc3VidGVzdCgiY3JlYXRlLWludmFsaWQtbm9uYWxpZ25lZCIpCisJCWludmFsaWRfbm9u YWxpZ25lZF9zaXplKGZkKTsKKworCWlndF9zdWJ0ZXN0KCJtYXAtdmFsaWQiKQorCQl2YWxpZF9t YXAoZmQpOworCisJaWd0X3N1YnRlc3QoIm1hcC1pbnZhbGlkLXNpemUiKQorCQlpbnZhbGlkX3Np emVfbWFwKGZkKTsKKworCWlndF9zdWJ0ZXN0KCJjcmVhdGUtY2xlYXIiKQorCQlhbHdheXNfY2xl YXIoZmQsIDMwKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVz b24uYnVpbGQKaW5kZXggNTljNjk2MWYxMDI2Li5mMDQzZjRhZmY5NWIgMTAwNjQ0Ci0tLSBhL3Rl c3RzL21lc29uLmJ1aWxkCisrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCkBAIC05Nyw2ICs5Nyw3IEBA IHRlc3RfcHJvZ3MgPSBbCiAJJ3ZjNF93YWl0X3NlcW5vJywKIAkndmdlbV9iYXNpYycsCiAJJ3Zn ZW1fc2xvdycsCisJJ2dlbV9kdW1iX2J1ZmZlcicKIF0KIAogaTkxNV9wcm9ncyA9IFsKQEAgLTI5 Nyw2ICsyOTgsMTQgQEAgdGVzdF9leGVjdXRhYmxlcyArPSBleGVjdXRhYmxlKCdnZW1fY3R4X2Zy ZXEnLAogCSAgIGluc3RhbGwgOiB0cnVlKQogdGVzdF9saXN0ICs9ICdnZW1fY3R4X2ZyZXEnCiAK KyMgdGVzdF9leGVjdXRhYmxlcyArPSBleGVjdXRhYmxlKCdnZW1fZHVtYl9idWZmZXInLAorIwkg ICBqb2luX3BhdGhzKCdpOTE1JywgJ2dlbV9kdW1iX2J1ZmZlci5jJyksCisjCSAgIGRlcGVuZGVu Y2llcyA6IHRlc3RfZGVwcyArIFsgbGliYXRvbWljIF0sCisjCSAgIGluc3RhbGxfZGlyIDogbGli ZXhlY2RpciwKKyMJICAgaW5zdGFsbF9ycGF0aCA6IGxpYmV4ZWNkaXJfcnBhdGhkaXIsCisjCSAg IGluc3RhbGwgOiB0cnVlKQorI3Rlc3RfbGlzdCArPSAnZ2VtX2R1bWJfYnVmZmVyJworCiB0ZXN0 X2V4ZWN1dGFibGVzICs9IGV4ZWN1dGFibGUoJ2dlbV9jdHhfc3NldScsCiAJICAgam9pbl9wYXRo cygnaTkxNScsICdnZW1fY3R4X3NzZXUuYycpLAogCSAgIGRlcGVuZGVuY2llcyA6IHRlc3RfZGVw cyArIFsgbGliX2lndF9wZXJmIF0sCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaWd0LWRldg==