From mboxrd@z Thu Jan 1 00:00:00 1970 From: Abdiel Janulgue Subject: [i-g-t PATCH 4/4] Convert shell script tests to C version Date: Thu, 20 Apr 2017 11:13:48 +0300 Message-ID: <1492676028-15372-4-git-send-email-abdiel.janulgue@linux.intel.com> References: <1492676028-15372-1-git-send-email-abdiel.janulgue@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id BE4846E337 for ; Thu, 20 Apr 2017 08:15:14 +0000 (UTC) In-Reply-To: <1492676028-15372-1-git-send-email-abdiel.janulgue@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org Q29udmVydGVkOgogLSBjaGVja19kcm1fY2xpZW50cyAoZW5zdXJlcyBubyBvdGhlciBjbGllbnRz IGFyZSBydW5uaW5nLgogICBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IGRybV9vcGVuX2RyaXZl cl9tYXN0ZXIpLgogLSBkZWJ1Z2ZzX2Vtb25fY3Jhc2gKIC0gZGVidWdmc193ZWRnZWQKIC0gZHJ2 X2RlYnVnZnNfcmVhZGVyCiAtIHN5c2ZzX2wzX3Bhcml0eQogLSB0ZXN0X3J0ZV9jaGVjayAgKHNh bWUgYXMgY2hlY2tfZHJtX2NsaWVudHMpCiAtIHRvb2xzX3Rlc3QKIC0gWlpfY2hlY2tfZG1lc2cK CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpDYzogUGV0cmkgTGF0 dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFiZGllbCBKYW51 bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4KLS0tCiB0ZXN0cy9NYWtlZmls ZS5zb3VyY2VzICAgfCAgIDkgKy0tLQogdGVzdHMvWlpfY2hlY2tfZG1lc2cgICAgIHwgIDExIC0t LS0tCiB0ZXN0cy9jaGVja19kcm1fY2xpZW50cyAgfCAgIDYgLS0tCiB0ZXN0cy9kZWJ1Z2ZzLmMg ICAgICAgICAgfCAgNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRlc3RzL2Rl YnVnZnNfZW1vbl9jcmFzaCB8ICAxNiAtLS0tLS0tCiB0ZXN0cy9kZWJ1Z2ZzX3dlZGdlZCAgICAg fCAgMTAgLS0tLS0KIHRlc3RzL2Rydl9kZWJ1Z2ZzX3JlYWRlciB8ICAgOSAtLS0tCiB0ZXN0cy9z eXNmc19sM19wYXJpdHkgICAgfCAgMjIgLS0tLS0tLS0tLQogdGVzdHMvdGVzdF9ydGVfY2hlY2sg ICAgIHwgICA2IC0tLQogdGVzdHMvdG9vbHMuYyAgICAgICAgICAgIHwgMTExICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy90b29sc190ZXN0ICAg ICAgICAgfCAgMTYgLS0tLS0tLQogMTEgZmlsZXMgY2hhbmdlZCwgMTg4IGluc2VydGlvbnMoKyks IDEwMyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9aWl9jaGVja19kbWVz ZwogZGVsZXRlIG1vZGUgMTAwNzU1IHRlc3RzL2NoZWNrX2RybV9jbGllbnRzCiBjcmVhdGUgbW9k ZSAxMDA2NDQgdGVzdHMvZGVidWdmcy5jCiBkZWxldGUgbW9kZSAxMDA3NTUgdGVzdHMvZGVidWdm c19lbW9uX2NyYXNoCiBkZWxldGUgbW9kZSAxMDA3NTUgdGVzdHMvZGVidWdmc193ZWRnZWQKIGRl bGV0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9kcnZfZGVidWdmc19yZWFkZXIKIGRlbGV0ZSBtb2RlIDEw MDc1NSB0ZXN0cy9zeXNmc19sM19wYXJpdHkKIGRlbGV0ZSBtb2RlIDEwMDc1NSB0ZXN0cy90ZXN0 X3J0ZV9jaGVjawogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL3Rvb2xzLmMKIGRlbGV0ZSBtb2Rl IDEwMDc1NSB0ZXN0cy90b29sc190ZXN0CgpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291 cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggN2ZhOWI4Zi4uMDg5NDI4ZCAxMDA2 NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5zb3Vy Y2VzCkBAIC0yMzQsNiArMjM0LDggQEAgVEVTVFNfcHJvZ3MgPSBcCiAJZHJ2X21vZHVsZV9yZWxv YWQgXAogCWttc19zeXNmc19lZGlkX3RpbWluZyBcCiAJcGVyZiBcCisJZGVidWdmcyBcCisJdG9v bHMgXAogCSQoTlVMTCkKIAogIyBJTVBPUlRBTlQ6IFRoZSBaWl8gdGVzdHMgbmVlZCB0byBiZSBy dW4gbGFzdCEKQEAgLTI0MiwxMSArMjQ0LDYgQEAgVEVTVFNfc2NyaXB0c19NID0gXAogCSQoTlVM TCkKIAogVEVTVFNfc2NyaXB0cyA9IFwKLQlkZWJ1Z2ZzX2Vtb25fY3Jhc2ggXAotCWRydl9kZWJ1 Z2ZzX3JlYWRlciBcCi0Jc3lzZnNfbDNfcGFyaXR5IFwKLQl0ZXN0X3J0ZV9jaGVjayBcCi0JdG9v bHNfdGVzdCBcCiAJJChOVUxMKQogCiAjIFRoaXMgdGFyZ2V0IGNvbnRhaW5zIHRlc3RjYXNlcyB3 aGljaCBzdXBwb3J0IGF1dG9tYWdpYyBzdWJ0ZXN0IGVudW1lcmF0aW9uCkBAIC0zMDgsOSArMzA1 LDcgQEAgSEFORyA9IFwKIAkkKE5VTEwpCiAKIHNjcmlwdHMgPSBcCi0JY2hlY2tfZHJtX2NsaWVu dHMgXAogCWRkeF9pbnRlbF9hZnRlcl9mYmRldiBcCi0JZGVidWdmc193ZWRnZWQgXAogCWRybV9s aWIuc2ggXAogCWRybV9nZXRvcHQuc2ggXAogCSQoTlVMTCkKZGlmZiAtLWdpdCBhL3Rlc3RzL1pa X2NoZWNrX2RtZXNnIGIvdGVzdHMvWlpfY2hlY2tfZG1lc2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NzU1CmluZGV4IGUyOGJhMzUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvWlpfY2hlY2tfZG1lc2cKKysr IC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0jIS9iaW4vc2gKLQotaWYgZG1lc2cgfCBncmVw ICdcKkVSUk9SXConICA+IC9kZXYvbnVsbCA7IHRoZW4KLQllY2hvICJEUk1fRVJST1IgZGlydCBp biBkbWVzZyIKLQlleGl0IDEKLWZpCi0KLWlmIGRtZXNnIHwgZ3JlcCAtLSAnLS0tLS0tXFsgY3V0 IGhlcmUgXF0tLS0tJyA+IC9kZXYvbnVsbCAgOyB0aGVuCi0JZWNobyAiZm91bmQgYSBiYWNrdHJh Y2UgaW4gZG1lc2ciCi0JZXhpdCAxCi1maQpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2tfZHJtX2Ns aWVudHMgYi90ZXN0cy9jaGVja19kcm1fY2xpZW50cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUK aW5kZXggMmE4OTFiOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9jaGVja19kcm1fY2xpZW50cworKysg L2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotIyEvYmluL2Jhc2gKLQotU09VUkNFX0RJUj0iJCgg ZGlybmFtZSAiJHtCQVNIX1NPVVJDRVswXX0iICkiCi0uICRTT1VSQ0VfRElSL2RybV9saWIuc2gK LQotZXhpdCAkSUdUX0VYSVRfU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvdGVzdHMvZGVidWdmcy5jIGIv dGVzdHMvZGVidWdmcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMmY5 YmIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9kZWJ1Z2ZzLmMKQEAgLTAsMCArMSw3NSBAQAor LyoKKyAqIENvcHlyaWdodCDCqSAyMDE3IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlz c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0 YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu dGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0 aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0 ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFu ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVk IHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBU aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5j bHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBj b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisg KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hB TEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU SU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VU IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF UiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZkZWYgSEFWRV9DT05GSUdf SAorI2luY2x1ZGUgImNvbmZpZy5oIgorI2VuZGlmCisjaW5jbHVkZSAiaWd0LmgiCisKK2lndF9t YWluCit7CisJaW50IGZkID0gLTE7CisJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOworCisJaWd0 X2ZpeHR1cmUgeworCQlmZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0lOVEVMKTsK KwkJaWd0X3JlcXVpcmVfZ2VtKGZkKTsKKwl9CisKKwlpZ3Rfc3VidGVzdF9ncm91cCB7CisJCWln dF9zdWJ0ZXN0KCJkZWJ1Z2ZzX2Vtb25fY3Jhc2giKSB7CisJCQlpbnQgaTsKKwkJCWNoYXIgKmNt ZDsKKwkJCWlndF9hc3NlcnQoYXNwcmludGYoJmNtZCwgImNhdCAlcy9pOTE1X2Vtb25fc3RhdHVz IiwKKwkJCQkJICAgIGlndF9kZWJ1Z2ZzX3BhdGgoZmQpKSAhPSAtMSk7CisKKwkJCWZvciAoaSA9 IDA7IGkgPCAxMDAwOyBpKyspCisJCQkJaWd0X2V4ZWNfcXVpZXQoY21kKTsKKworCQkJZnJlZShj bWQpOworCQl9CisKKwkJaWd0X3N1YnRlc3QoImRlYnVnZnNfd2VkZ2VkIikgeworCQkJY2hhciAq YzEsICpjMjsKKwkJCWlndF9hc3NlcnQoYXNwcmludGYoJmMxLCAiZWNobyAxID4gJXMvaTkxNV93 ZWRnZWQiLAorCQkJCQkgICAgaWd0X2RlYnVnZnNfcGF0aChmZCkpICE9IC0xKTsKKwkJCWlndF9h c3NlcnQoYXNwcmludGYoJmMyLCAiY2F0ICVzL2k5MTVfZXJyb3Jfc3RhdGUiLAorCQkJCQkgICAg aWd0X2RlYnVnZnNfcGF0aChmZCkpICE9IC0xKTsKKwkJCWlndF9leGVjKGMxKTsKKwkJCWlndF9l eGVjX3F1aWV0KGMyKTsKKwkJCWZyZWUoYzEpOworCQkJZnJlZShjMik7CisJCX0KKworCQlpZ3Rf c3VidGVzdCgiZHJ2X2RlYnVnZnNfcmVhZGVyIikgeworCQkJY2hhciAqY21kOworCQkJaWd0X2Fz c2VydChhc3ByaW50ZigmY21kLCAiY2F0ICVzLyoiLAorCQkJCQkgICAgaWd0X2RlYnVnZnNfcGF0 aChmZCkpICE9IC0xKTsKKwkJCWlndF9leGVjX3F1aWV0KGNtZCk7CisJCQlmcmVlKGNtZCk7CisJ CX0KKwl9CisKKwlpZ3RfZml4dHVyZSB7CisJCWNsb3NlKGZkKTsKKwl9Cit9CmRpZmYgLS1naXQg YS90ZXN0cy9kZWJ1Z2ZzX2Vtb25fY3Jhc2ggYi90ZXN0cy9kZWJ1Z2ZzX2Vtb25fY3Jhc2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDFkYmZjYjIuLjAwMDAwMDAKLS0tIGEvdGVzdHMv ZGVidWdmc19lbW9uX2NyYXNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotIyEvYmlu L2Jhc2gKLSMKLSMgVGhpcyBjaGVjayBpZiB3ZSBjYW4gY3Jhc2ggdGhlIGtlcm5lbCB3aXRoIHNl Z21lbnRhdGlvbi1mYXVsdAotIyBieSByZWFkaW5nIC9zeXMva2VybmVsL2RlYnVnL2RyaS8wL2k5 MTVfZW1vbl9zdGF0dXMgdG9vIHF1aWNrbHkKLSMKLQotU09VUkNFX0RJUj0iJCggZGlybmFtZSAi JHtCQVNIX1NPVVJDRVswXX0iICkiCi0uICRTT1VSQ0VfRElSL2RybV9saWIuc2gKLQotZm9yIHog aW4gJChzZXEgMSAxMDAwKTsgZG8KLQljYXQgJGk5MTVfZGZzX3BhdGgvaTkxNV9lbW9uX3N0YXR1 cyA+IC9kZXYvbnVsbCAyJj4xCi1kb25lCi0KLSMgSWYgd2UgZ290IGhlcmUsIHdlIGhhdmVuJ3Qg Y3Jhc2hlZAotCi1leGl0ICRJR1RfRVhJVF9TVUNDRVNTCmRpZmYgLS1naXQgYS90ZXN0cy9kZWJ1 Z2ZzX3dlZGdlZCBiL3Rlc3RzL2RlYnVnZnNfd2VkZ2VkCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1 NQppbmRleCBmMTVhYzQ2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RlYnVnZnNfd2VkZ2VkCisrKyAv ZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotIyEvYmluL2Jhc2gKLQotU09VUkNFX0RJUj0iJCgg ZGlybmFtZSAiJHtCQVNIX1NPVVJDRVswXX0iICkiCi0uICRTT1VSQ0VfRElSL2RybV9saWIuc2gK LQotIyBUZXN0Y2FzZTogd2VkZ2UgdGhlIGh3IHRvIGNoZWNrIHRoZSBlcnJvcl9zdGF0ZSByZWFk aW5nCi0jIAotIyBVbmZvcnR1bmF0ZWx5IHdlZGdlZCBpcyBwZXJtYW5lbnQsIHNvIHRoaXMgdGVz dCBpcyBub3QgcnVuIGJ5IGRlZmF1bHQKLWVjaG8gMSA+ICR7aTkxNV9kZnNfcGF0aH0vaTkxNV93 ZWRnZWQKLWNhdCAkaTkxNV9kZnNfcGF0aC9pOTE1X2Vycm9yX3N0YXRlID4gL2Rldi9udWxsIDI+ JjEKZGlmZiAtLWdpdCBhL3Rlc3RzL2Rydl9kZWJ1Z2ZzX3JlYWRlciBiL3Rlc3RzL2Rydl9kZWJ1 Z2ZzX3JlYWRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNmVhNGU2NC4uMDAwMDAw MAotLS0gYS90ZXN0cy9kcnZfZGVidWdmc19yZWFkZXIKKysrIC9kZXYvbnVsbApAQCAtMSw5ICsw LDAgQEAKLSMhL2Jpbi9iYXNoCi0KLVNPVVJDRV9ESVI9IiQoIGRpcm5hbWUgIiR7QkFTSF9TT1VS Q0VbMF19IiApIgotLiAkU09VUkNFX0RJUi9kcm1fbGliLnNoCi0KLSMgcmVhZCBldmVyeXRoaW5n IHdlIGNhbgotY2F0ICRpOTE1X2Rmc19wYXRoLyogPiAvZGV2L251bGwgMj4mMQotCi1leGl0ICRJ R1RfRVhJVF9TVUNDRVNTCmRpZmYgLS1naXQgYS90ZXN0cy9zeXNmc19sM19wYXJpdHkgYi90ZXN0 cy9zeXNmc19sM19wYXJpdHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGQ1ZjMyODQu LjAwMDAwMDAKLS0tIGEvdGVzdHMvc3lzZnNfbDNfcGFyaXR5CisrKyAvZGV2L251bGwKQEAgLTEs MjIgKzAsMCBAQAotIyEvYmluL2Jhc2gKLQotU09VUkNFX0RJUj0iJCggZGlybmFtZSAiJHtCQVNI X1NPVVJDRVswXX0iICkiCi0uICRTT1VSQ0VfRElSL2RybV9saWIuc2gKLQotJFNPVVJDRV9ESVIv Li4vdG9vbHMvaW50ZWxfbDNfcGFyaXR5IC1yIDAgLWIgMCAtcyAwIC1lIHx8IGV4aXQgJD8KLQot I0NoZWNrIHRoYXQgd2UgY2FuIHJlbWFwIGEgcm93Ci0kU09VUkNFX0RJUi8uLi90b29scy9pbnRl bF9sM19wYXJpdHkgLXIgMCAtYiAwIC1zIDAgLWQKLWRpc2FibGVkPWAkU09VUkNFX0RJUi8uLi90 b29scy9pbnRlbF9sM19wYXJpdHkgLWwgfCBncmVwIC1jICdSb3cgMCwgQmFuayAwLCBTdWJiYW5r IDAgaXMgZGlzYWJsZWQnYAotaWYgWyAiJGRpc2FibGVkIiAhPSAiMSIgXSA7IHRoZW4KLQllY2hv ICJGYWlsIgotCWV4aXQgJElHVF9FWElUX0ZBSUxVUkUKLWZpCi0KLSRTT1VSQ0VfRElSLy4uL3Rv b2xzL2ludGVsX2wzX3Bhcml0eSAtciAwIC1iIDAgLXMgMCAtZQotCi0jQ2hlY2sgdGhhdCB3ZSBj YW4gY2xlYXIgcmVtYXBzCi1pZiBbIGAkU09VUkNFX0RJUi8uLi90b29scy9pbnRlbF9sM19wYXJp dHkgLWwgfCB3YyAtbGAgIT0gMSBdIDsgdGhlbgotCWVjaG8gIkZhaWwgMiIKLQlleGl0ICRJR1Rf RVhJVF9GQUlMVVJFCi1maQpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdF9ydGVfY2hlY2sgYi90ZXN0 cy90ZXN0X3J0ZV9jaGVjawpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMmE4OTFiOC4u MDAwMDAwMAotLS0gYS90ZXN0cy90ZXN0X3J0ZV9jaGVjaworKysgL2Rldi9udWxsCkBAIC0xLDYg KzAsMCBAQAotIyEvYmluL2Jhc2gKLQotU09VUkNFX0RJUj0iJCggZGlybmFtZSAiJHtCQVNIX1NP VVJDRVswXX0iICkiCi0uICRTT1VSQ0VfRElSL2RybV9saWIuc2gKLQotZXhpdCAkSUdUX0VYSVRf U1VDQ0VTUwpkaWZmIC0tZ2l0IGEvdGVzdHMvdG9vbHMuYyBiL3Rlc3RzL3Rvb2xzLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWZjNzg0YwotLS0gL2Rldi9udWxsCisrKyBi L3Rlc3RzL3Rvb2xzLmMKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAx NyBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRo aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0 d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQv b3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g d2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFy YWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAq IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBD T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF UgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP UiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBT T0ZUV0FSRS4KKyAqLworI2lmZGVmIEhBVkVfQ09ORklHX0gKKyNpbmNsdWRlICJjb25maWcuaCIK KyNlbmRpZgorI2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKy8qKgorICog UGFyc2UgdGhlIHItdmFsdWUgb2YgYSBbY21kXSBzdHJpbmcuCisgKi8KK3N0YXRpYyBib29sIGNo ZWNrX2NtZF9yZXR1cm5fdmFsdWUoY29uc3QgY2hhciAqcywgdm9pZCAqZGF0YSkKK3sKKwlpbnQg KnZhbCA9IGRhdGE7CisJY2hhciAqY21kLCAqZm91bmQ7CisJY29uc3QgY2hhciAqZGVsaW0gPSAi W2NtZF0iOworCWNvbnN0IGludCBkZWxpbV9sZW4gPSBzdHJsZW4oZGVsaW0pOworCisJaWYgKCEo Y21kID0gc3Ryc3RyKHMsIGRlbGltKSkpCisJCXJldHVybiBmYWxzZTsKKworCWZvdW5kID0gY21k ICsgZGVsaW1fbGVuICsgMTsKKwlpZ3RfYXNzZXJ0KGRlbGltX2xlbiArIHN0cmxlbihmb3VuZCkg PCBzdHJsZW4oY21kKSk7CisKKwkqdmFsID0gYXRvaShmb3VuZCk7CisJcmV0dXJuIHRydWU7Cit9 CisKK2lndF9tYWluCit7CisJaW50IGZkID0gLTE7CisJaWd0X3NraXBfb25fc2ltdWxhdGlvbigp OworCisJaWd0X2ZpeHR1cmUgeworCQkvKiBKdXN0IG1ha2Ugc3VyZSBubyBvdGhlciBkcm0gY2xp ZW50cyBhcmUgcnVubmluZyAqLworCQlmZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVS X0lOVEVMKTsKKwkJaWd0X3JlcXVpcmVfZ2VtKGZkKTsKKwkJY2xvc2UoZmQpOworCX0KKworCWln dF9zdWJ0ZXN0X2dyb3VwIHsKKwkJaWd0X3N1YnRlc3QoInN5c2ZzX2wzX3Bhcml0eSIpIHsKKwkJ CWNoYXIgKmNtZDsKKwkJCWludCBleGVjX3JldHVybjsKKworCQkJaWd0X2Fzc2VydChhc3ByaW50 ZigmY21kLAorCQkJCQkgICAgIi4uL3Rvb2xzL2ludGVsX2wzX3Bhcml0eSAtbCB8ICIKKwkJCQkJ ICAgICJncmVwIC1jICdSb3cgMCwgQmFuayAwLCBTdWJiYW5rIDAgIgorCQkJCQkgICAgImlzIGRp c2FibGVkJyIpKTsKKwkJCWV4ZWNfcmV0dXJuID0gaWd0X2V4ZWMoY21kKTsKKwkJCWZyZWUoY21k KTsKKwkJCWlmIChleGVjX3JldHVybiA9PSBJR1RfRVhJVF9TVUNDRVNTKSB7CisJCQkJaW50IHZh bCA9IC0xOworCQkJCWlndF9sb2dfYnVmZmVyX2luc3BlY3QoY2hlY2tfY21kX3JldHVybl92YWx1 ZSwKKwkJCQkJCSAgICAgICAmdmFsKTsKKwkJCQlpZ3RfYXNzZXJ0KHZhbCA9PSAxKTsKKwkJCX0g ZWxzZSB7CisJCQkJaWd0X2ZhaWwoSUdUX0VYSVRfRkFJTFVSRSk7CisJCQl9CisJCX0KKworCQlp Z3Rfc3VidGVzdCgidG9vbHNfdGVzdCIpIHsKKwkJCWNoYXIgKmNtZDsKKworCQkJaWd0X2Fzc2Vy dChhc3ByaW50ZigmY21kLAorCQkJCQkgICAgIi4uL3Rvb2xzL2ludGVsX3JlZyByZWFkIDB4NDAz MCIpCisJCQkJICAgIT0gLTEpOworCQkJaWd0X2Fzc2VydChpZ3RfZXhlY19xdWlldChjbWQpID09 IElHVF9FWElUX1NVQ0NFU1MpOworCQkJZnJlZShjbWQpOworCisJCQlpZ3RfYXNzZXJ0KGFzcHJp bnRmKCZjbWQsICIuLi90b29scy9pbnRlbF9yZWcgZHVtcCIpCisJCQkJICAgIT0gLTEpOworCQkJ aWd0X2Fzc2VydChpZ3RfZXhlY19xdWlldChjbWQpID09IElHVF9FWElUX1NVQ0NFU1MpOworCQkJ ZnJlZShjbWQpOworCQl9CisKKwkJaWd0X3N1YnRlc3QoIlpaX2NoZWNrX2RtZXNnIikgeworCQkJ Y2hhciAqY21kOworCQkJaWd0X2Fzc2VydChhc3ByaW50ZigmY21kLCAiZG1lc2cgfCBncmVwICdc XCpFUlJPUlxcKiciKQorCQkJCSAgICE9IC0xKTsKKwkJCWlndF9hc3NlcnQoaWd0X2V4ZWNfcXVp ZXQoY21kKSAhPSBJR1RfRVhJVF9TVUNDRVNTKTsKKwkJCWZyZWUoY21kKTsKKworCQkJaWd0X2Fz c2VydChhc3ByaW50ZigmY21kLCAiZG1lc2cgfCBncmVwICIKKwkJCQkJICAgICItLSAnLS0tLS0t XFxbIGN1dCBoZXJlIFxcXS0tLS0nIikKKwkJCQkgICAhPSAtMSk7CisJCQlpZ3RfYXNzZXJ0KGln dF9leGVjX3F1aWV0KGNtZCkgIT0gSUdUX0VYSVRfU1VDQ0VTUyk7CisJCQlmcmVlKGNtZCk7CisJ CX0KKwl9Cit9CmRpZmYgLS1naXQgYS90ZXN0cy90b29sc190ZXN0IGIvdGVzdHMvdG9vbHNfdGVz dApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYTI3ZmI4Ny4uMDAwMDAwMAotLS0gYS90 ZXN0cy90b29sc190ZXN0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotIyEvYmluL2Jh c2gKLSMgVGVzdCBzb21lIG9mIHRoZSBtb3N0IGNyaXRpY2FsIHRvb2xzIHdlIGhhdmUgYWNjaWRl bnRhbGx5IGJyb2tlbiBiZWZvcmUuCi0jIFRPRE86IFBvc3NpYmx5IG1ha2UgdGVzdHMgcGFyc2Ug b3V0cHV0Ci0KLVNPVVJDRV9ESVI9IiQoIGRpcm5hbWUgIiR7QkFTSF9TT1VSQ0VbMF19IiApIgot LiAkU09VUkNFX0RJUi9kcm1fbGliLnNoCi0KLSMgQVJCX01PREUgaGFzIGV4aXN0ZWQgZm9yIG1h bnkgZ2VucwotUEFUSD0kU09VUkNFX0RJUi8uLi90b29sczokUEFUSAotZG9fb3JfZGllICJpbnRl bF9yZWcgcmVhZCAweDQwMzAiCi1kb19vcl9kaWUgImludGVsX3JlZyBkdW1wIgotCi0jIFRPRE86 IEFkZCBtb3JlIHRlc3RzCi0KLWV4aXQgJElHVF9FWElUX1NVQ0NFU1MKLQotLSAKMi43LjQKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=