From mboxrd@z Thu Jan 1 00:00:00 1970 From: Abdiel Janulgue Subject: [i-g-t PATCH v3 3/3] Convert shell script tests to C version Date: Tue, 6 Jun 2017 11:54:14 +0300 Message-ID: <1496739254-18898-3-git-send-email-abdiel.janulgue@linux.intel.com> References: <1496739254-18898-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F7486E0D0 for ; Tue, 6 Jun 2017 08:58:26 +0000 (UTC) In-Reply-To: <1496739254-18898-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 List-Id: intel-gfx@lists.freedesktop.org djM6IERyb3AgcmVkdW5kYW50IHRlc3QgY292ZXJlZCBieSBkcnZfaGFuZ21hbi9iYXNpYy4gRGVz Y2VuZCB0aHJ1CiAgICBkZWJ1Z2ZzIHBhdGggd2hlbiByZWFkaW5nIHN5c2ZzIGVudHJpZXMgKENo cmlzKS4KCnYyOiBVc2UgaW50ZXJuYWwgaWd0X2RlYnVnZnMgZnVuY3Rpb25zIGluc3RlYWQgb2Yg Y2F0IGFuZCBkb2N1bWVudAogICAgZGVidWdmcyB0ZXN0cy4KICAgIENvbnZlcnQgc3lzZnNfbDNf cGFyaXR5IHByb3Blcmx5LgogICAgUmVuYW1lIHJlZHVuZGFudCBuYW1lcyBpbiB0ZXN0cy4KCkNv bnZlcnRlZDoKIC0gY2hlY2tfZHJtX2NsaWVudHMgKGVuc3VyZXMgbm8gb3RoZXIgY2xpZW50cyBh cmUgcnVubmluZy4KICAgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSBkcm1fb3Blbl9kcml2ZXJf bWFzdGVyKS4KIC0gZGVidWdmc19lbW9uX2NyYXNoCiAtIGRlYnVnZnNfd2VkZ2VkCiAtIGRydl9k ZWJ1Z2ZzX3JlYWRlcgogLSBzeXNmc19sM19wYXJpdHkKIC0gdGVzdF9ydGVfY2hlY2sgIChzYW1l IGFzIGNoZWNrX2RybV9jbGllbnRzKQogLSB0b29sc190ZXN0CiAtIFpaX2NoZWNrX2RtZXNnCgpD YzogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEFiZGllbCBKYW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbT4KLS0tCiB0 ZXN0cy9NYWtlZmlsZS5zb3VyY2VzICAgfCAgIDkgKy0tLQogdGVzdHMvWlpfY2hlY2tfZG1lc2cg ICAgIHwgIDExIC0tLS0tCiB0ZXN0cy9jaGVja19kcm1fY2xpZW50cyAgfCAgIDYgLS0tCiB0ZXN0 cy9kZWJ1Z2ZzLmMgICAgICAgICAgfCAgOTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogdGVzdHMvZGVidWdmc19lbW9uX2NyYXNoIHwgIDE2IC0tLS0tLS0KIHRlc3RzL2Rl YnVnZnNfd2VkZ2VkICAgICB8ICAxMCAtLS0tCiB0ZXN0cy9kcnZfZGVidWdmc19yZWFkZXIgfCAg IDkgLS0tLQogdGVzdHMvc3lzZnNfbDNfcGFyaXR5ICAgIHwgIDIyIC0tLS0tLS0tLQogdGVzdHMv dGVzdF9ydGVfY2hlY2sgICAgIHwgICA2IC0tLQogdGVzdHMvdG9vbHMuYyAgICAgICAgICAgIHwg MTIyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0 cy90b29sc190ZXN0ICAgICAgICAgfCAgMTYgLS0tLS0tLQogMTEgZmlsZXMgY2hhbmdlZCwgMjIw IGluc2VydGlvbnMoKyksIDEwMyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDc1NSB0ZXN0 cy9aWl9jaGVja19kbWVzZwogZGVsZXRlIG1vZGUgMTAwNzU1IHRlc3RzL2NoZWNrX2RybV9jbGll bnRzCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvZGVidWdmcy5jCiBkZWxldGUgbW9kZSAxMDA3 NTUgdGVzdHMvZGVidWdmc19lbW9uX2NyYXNoCiBkZWxldGUgbW9kZSAxMDA3NTUgdGVzdHMvZGVi dWdmc193ZWRnZWQKIGRlbGV0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9kcnZfZGVidWdmc19yZWFkZXIK IGRlbGV0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9zeXNmc19sM19wYXJpdHkKIGRlbGV0ZSBtb2RlIDEw MDc1NSB0ZXN0cy90ZXN0X3J0ZV9jaGVjawogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL3Rvb2xz LmMKIGRlbGV0ZSBtb2RlIDEwMDc1NSB0ZXN0cy90b29sc190ZXN0CgpkaWZmIC0tZ2l0IGEvdGVz dHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggOTU1M2U0 ZC4uYzRhNzhhOSAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0 cy9NYWtlZmlsZS5zb3VyY2VzCkBAIC0yNDMsNiArMjQzLDggQEAgVEVTVFNfcHJvZ3MgPSBcCiAJ ZHJ2X21vZHVsZV9yZWxvYWQgXAogCWttc19zeXNmc19lZGlkX3RpbWluZyBcCiAJcGVyZiBcCisJ ZGVidWdmcyBcCisJdG9vbHMgXAogCSQoTlVMTCkKIAogIyBJTVBPUlRBTlQ6IFRoZSBaWl8gdGVz dHMgbmVlZCB0byBiZSBydW4gbGFzdCEKQEAgLTI1MSwxMSArMjUzLDYgQEAgVEVTVFNfc2NyaXB0 c19NID0gXAogCSQoTlVMTCkKIAogVEVTVFNfc2NyaXB0cyA9IFwKLQlkZWJ1Z2ZzX2Vtb25fY3Jh c2ggXAotCWRydl9kZWJ1Z2ZzX3JlYWRlciBcCi0Jc3lzZnNfbDNfcGFyaXR5IFwKLQl0ZXN0X3J0 ZV9jaGVjayBcCi0JdG9vbHNfdGVzdCBcCiAJJChOVUxMKQogCiAjIFRoaXMgdGFyZ2V0IGNvbnRh aW5zIHRlc3RjYXNlcyB3aGljaCBzdXBwb3J0IGF1dG9tYWdpYyBzdWJ0ZXN0IGVudW1lcmF0aW9u CkBAIC0zMTcsOSArMzE0LDcgQEAgSEFORyA9IFwKIAkkKE5VTEwpCiAKIHNjcmlwdHMgPSBcCi0J Y2hlY2tfZHJtX2NsaWVudHMgXAogCWRkeF9pbnRlbF9hZnRlcl9mYmRldiBcCi0JZGVidWdmc193 ZWRnZWQgXAogCWRybV9saWIuc2ggXAogCWRybV9nZXRvcHQuc2ggXAogCSQoTlVMTCkKZGlmZiAt LWdpdCBhL3Rlc3RzL1paX2NoZWNrX2RtZXNnIGIvdGVzdHMvWlpfY2hlY2tfZG1lc2cKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGUyOGJhMzUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvWlpf Y2hlY2tfZG1lc2cKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0jIS9iaW4vc2gKLQot aWYgZG1lc2cgfCBncmVwICdcKkVSUk9SXConICA+IC9kZXYvbnVsbCA7IHRoZW4KLQllY2hvICJE Uk1fRVJST1IgZGlydCBpbiBkbWVzZyIKLQlleGl0IDEKLWZpCi0KLWlmIGRtZXNnIHwgZ3JlcCAt LSAnLS0tLS0tXFsgY3V0IGhlcmUgXF0tLS0tJyA+IC9kZXYvbnVsbCAgOyB0aGVuCi0JZWNobyAi Zm91bmQgYSBiYWNrdHJhY2UgaW4gZG1lc2ciCi0JZXhpdCAxCi1maQpkaWZmIC0tZ2l0IGEvdGVz dHMvY2hlY2tfZHJtX2NsaWVudHMgYi90ZXN0cy9jaGVja19kcm1fY2xpZW50cwpkZWxldGVkIGZp bGUgbW9kZSAxMDA3NTUKaW5kZXggMmE4OTFiOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9jaGVja19k cm1fY2xpZW50cworKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotIyEvYmluL2Jhc2gKLQot U09VUkNFX0RJUj0iJCggZGlybmFtZSAiJHtCQVNIX1NPVVJDRVswXX0iICkiCi0uICRTT1VSQ0Vf RElSL2RybV9saWIuc2gKLQotZXhpdCAkSUdUX0VYSVRfU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvdGVz dHMvZGVidWdmcy5jIGIvdGVzdHMvZGVidWdmcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmI5YWU4NmMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9kZWJ1Z2ZzLmMKQEAg LTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE3IEludGVsIENvcnBvcmF0aW9u CisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs aW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi bGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0 aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdh cmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGlu Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBT b2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisg KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAg SU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO RworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1Ig VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZk ZWYgSEFWRV9DT05GSUdfSAorI2luY2x1ZGUgImNvbmZpZy5oIgorI2VuZGlmCisjaW5jbHVkZSAi aWd0LmgiCisjaW5jbHVkZSAiaWd0X3N5c2ZzLmgiCisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNs dWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KKworc3RhdGljIHZvaWQgZ2V0 X3N5c2ZzX2VudHJ5KGludCBwYXRoX2ZkKQoreworCXN0cnVjdCBkaXJlbnQgKmRpcmVudDsKKwlE SVIgKmRpcjsKKworCWRpciA9IGZkb3BlbmRpcihwYXRoX2ZkKTsKKwlpZiAoIWRpcikKKwkJcmV0 dXJuOworCisJd2hpbGUgKChkaXJlbnQgPSByZWFkZGlyKGRpcikpKSB7CisJCWlmICghc3RyY21w KGRpcmVudC0+ZF9uYW1lLCAiLiIpIHx8CisJCSAgICAhc3RyY21wKGRpcmVudC0+ZF9uYW1lLCAi Li4iKSkKKwkJCWNvbnRpbnVlOworCQlpZiAoZGlyZW50LT5kX3R5cGUgPT0gRFRfRElSKSB7CisJ CQlpbnQgc3ViX2ZkID0gLTE7CisJCQlpZ3RfYXNzZXJ0KChzdWJfZmQgPQorCQkJCSAgICBvcGVu YXQocGF0aF9mZCwgZGlyZW50LT5kX25hbWUsIE9fUkRPTkxZIHwKKwkJCQkJICAgT19ESVJFQ1RP UlkpKSA+IDApOworCQkJZ2V0X3N5c2ZzX2VudHJ5KHN1Yl9mZCk7CisJCQljbG9zZShzdWJfZmQp OworCQl9IGVsc2UgeworCQkJY2hhciAqYnVmID0gaWd0X3N5c2ZzX2dldChwYXRoX2ZkLCBkaXJl bnQtPmRfbmFtZSk7CisJCQlmcmVlKGJ1Zik7CisJCX0KKwl9CisJY2xvc2VkaXIoZGlyKTsKK30K KworaWd0X21haW4KK3sKKwlpbnQgZmQgPSAtMSwgZGVidWdmczsKKwlpZ3Rfc2tpcF9vbl9zaW11 bGF0aW9uKCk7CisKKwlpZ3RfZml4dHVyZSB7CisJCWZkID0gZHJtX29wZW5fZHJpdmVyX21hc3Rl cihEUklWRVJfSU5URUwpOworCQlpZ3RfcmVxdWlyZV9nZW0oZmQpOworCQlkZWJ1Z2ZzID0gaWd0 X2RlYnVnZnNfZGlyKGZkKTsKKwl9CisKKwlpZ3Rfc3VidGVzdCgiZHJ2X3JlYWRlciIpIHsKKwkJ Z2V0X3N5c2ZzX2VudHJ5KGRlYnVnZnMpOworCX0KKworCWlndF9zdWJ0ZXN0KCJlbW9uX2NyYXNo IikgeworCQlpbnQgaTsKKwkJLyoKKwkJICogVGhpcyBjaGVjayBpZiB3ZSBjYW4gY3Jhc2ggdGhl IGtlcm5lbCB3aXRoCisJCSAqIHNlZ21lbnRhdGlvbi1mYXVsdCBieSByZWFkaW5nCisJCSAqIC9z eXMva2VybmVsL2RlYnVnL2RyaS8wL2k5MTVfZW1vbl9zdGF0dXMgdG9vIHF1aWNrbHkKKwkJICov CisJCWZvciAoaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKKwkJCWNoYXIgKmJ1ZiA9IGlndF9zeXNm c19nZXQoZGVidWdmcywKKwkJCQkJCSAgImk5MTVfZW1vbl9zdGF0dXMiKTsKKwkJCWZyZWUoYnVm KTsKKwkJfQorCisJCS8qIElmIHdlIGdvdCBoZXJlLCB3ZSBoYXZlbid0IGNyYXNoZWQgKi8KKwkJ aWd0X3N1Y2Nlc3MoKTsKKwl9CisKKwlpZ3RfZml4dHVyZSB7CisJCWNsb3NlKGRlYnVnZnMpOwor CQljbG9zZShmZCk7CisJfQorfQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGVidWdmc19lbW9uX2NyYXNo IGIvdGVzdHMvZGVidWdmc19lbW9uX2NyYXNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRl eCAxZGJmY2IyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RlYnVnZnNfZW1vbl9jcmFzaAorKysgL2Rl di9udWxsCkBAIC0xLDE2ICswLDAgQEAKLSMhL2Jpbi9iYXNoCi0jCi0jIFRoaXMgY2hlY2sgaWYg d2UgY2FuIGNyYXNoIHRoZSBrZXJuZWwgd2l0aCBzZWdtZW50YXRpb24tZmF1bHQKLSMgYnkgcmVh ZGluZyAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvMC9pOTE1X2Vtb25fc3RhdHVzIHRvbyBxdWlja2x5 Ci0jCi0KLVNPVVJDRV9ESVI9IiQoIGRpcm5hbWUgIiR7QkFTSF9TT1VSQ0VbMF19IiApIgotLiAk U09VUkNFX0RJUi9kcm1fbGliLnNoCi0KLWZvciB6IGluICQoc2VxIDEgMTAwMCk7IGRvCi0JY2F0 ICRpOTE1X2Rmc19wYXRoL2k5MTVfZW1vbl9zdGF0dXMgPiAvZGV2L251bGwgMiY+MQotZG9uZQot Ci0jIElmIHdlIGdvdCBoZXJlLCB3ZSBoYXZlbid0IGNyYXNoZWQKLQotZXhpdCAkSUdUX0VYSVRf U1VDQ0VTUwpkaWZmIC0tZ2l0IGEvdGVzdHMvZGVidWdmc193ZWRnZWQgYi90ZXN0cy9kZWJ1Z2Zz X3dlZGdlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZjE1YWM0Ni4uMDAwMDAwMAot LS0gYS90ZXN0cy9kZWJ1Z2ZzX3dlZGdlZAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAK LSMhL2Jpbi9iYXNoCi0KLVNPVVJDRV9ESVI9IiQoIGRpcm5hbWUgIiR7QkFTSF9TT1VSQ0VbMF19 IiApIgotLiAkU09VUkNFX0RJUi9kcm1fbGliLnNoCi0KLSMgVGVzdGNhc2U6IHdlZGdlIHRoZSBo dyB0byBjaGVjayB0aGUgZXJyb3Jfc3RhdGUgcmVhZGluZwotIyAKLSMgVW5mb3J0dW5hdGVseSB3 ZWRnZWQgaXMgcGVybWFuZW50LCBzbyB0aGlzIHRlc3QgaXMgbm90IHJ1biBieSBkZWZhdWx0Ci1l Y2hvIDEgPiAke2k5MTVfZGZzX3BhdGh9L2k5MTVfd2VkZ2VkCi1jYXQgJGk5MTVfZGZzX3BhdGgv aTkxNV9lcnJvcl9zdGF0ZSA+IC9kZXYvbnVsbCAyPiYxCmRpZmYgLS1naXQgYS90ZXN0cy9kcnZf ZGVidWdmc19yZWFkZXIgYi90ZXN0cy9kcnZfZGVidWdmc19yZWFkZXIKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNzU1CmluZGV4IDZlYTRlNjQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZHJ2X2RlYnVnZnNf cmVhZGVyCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0jIS9iaW4vYmFzaAotCi1TT1VS Q0VfRElSPSIkKCBkaXJuYW1lICIke0JBU0hfU09VUkNFWzBdfSIgKSIKLS4gJFNPVVJDRV9ESVIv ZHJtX2xpYi5zaAotCi0jIHJlYWQgZXZlcnl0aGluZyB3ZSBjYW4KLWNhdCAkaTkxNV9kZnNfcGF0 aC8qID4gL2Rldi9udWxsIDI+JjEKLQotZXhpdCAkSUdUX0VYSVRfU1VDQ0VTUwpkaWZmIC0tZ2l0 IGEvdGVzdHMvc3lzZnNfbDNfcGFyaXR5IGIvdGVzdHMvc3lzZnNfbDNfcGFyaXR5CmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDc1NQppbmRleCBkNWYzMjg0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL3N5c2Zz X2wzX3Bhcml0eQorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLSMhL2Jpbi9iYXNoCi0K LVNPVVJDRV9ESVI9IiQoIGRpcm5hbWUgIiR7QkFTSF9TT1VSQ0VbMF19IiApIgotLiAkU09VUkNF X0RJUi9kcm1fbGliLnNoCi0KLSRTT1VSQ0VfRElSLy4uL3Rvb2xzL2ludGVsX2wzX3Bhcml0eSAt ciAwIC1iIDAgLXMgMCAtZSB8fCBleGl0ICQ/Ci0KLSNDaGVjayB0aGF0IHdlIGNhbiByZW1hcCBh IHJvdwotJFNPVVJDRV9ESVIvLi4vdG9vbHMvaW50ZWxfbDNfcGFyaXR5IC1yIDAgLWIgMCAtcyAw IC1kCi1kaXNhYmxlZD1gJFNPVVJDRV9ESVIvLi4vdG9vbHMvaW50ZWxfbDNfcGFyaXR5IC1sIHwg Z3JlcCAtYyAnUm93IDAsIEJhbmsgMCwgU3ViYmFuayAwIGlzIGRpc2FibGVkJ2AKLWlmIFsgIiRk aXNhYmxlZCIgIT0gIjEiIF0gOyB0aGVuCi0JZWNobyAiRmFpbCIKLQlleGl0ICRJR1RfRVhJVF9G QUlMVVJFCi1maQotCi0kU09VUkNFX0RJUi8uLi90b29scy9pbnRlbF9sM19wYXJpdHkgLXIgMCAt YiAwIC1zIDAgLWUKLQotI0NoZWNrIHRoYXQgd2UgY2FuIGNsZWFyIHJlbWFwcwotaWYgWyBgJFNP VVJDRV9ESVIvLi4vdG9vbHMvaW50ZWxfbDNfcGFyaXR5IC1sIHwgd2MgLWxgICE9IDEgXSA7IHRo ZW4KLQllY2hvICJGYWlsIDIiCi0JZXhpdCAkSUdUX0VYSVRfRkFJTFVSRQotZmkKZGlmZiAtLWdp dCBhL3Rlc3RzL3Rlc3RfcnRlX2NoZWNrIGIvdGVzdHMvdGVzdF9ydGVfY2hlY2sKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNzU1CmluZGV4IDJhODkxYjguLjAwMDAwMDAKLS0tIGEvdGVzdHMvdGVzdF9y dGVfY2hlY2sKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLSMhL2Jpbi9iYXNoCi0KLVNP VVJDRV9ESVI9IiQoIGRpcm5hbWUgIiR7QkFTSF9TT1VSQ0VbMF19IiApIgotLiAkU09VUkNFX0RJ Ui9kcm1fbGliLnNoCi0KLWV4aXQgJElHVF9FWElUX1NVQ0NFU1MKZGlmZiAtLWdpdCBhL3Rlc3Rz L3Rvb2xzLmMgYi90ZXN0cy90b29scy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjJlYzk1MWEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90b29scy5jCkBAIC0wLDAgKzEs MTIyIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTcgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisg KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl cnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhl IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp b24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk aXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0 d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgor ICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90 aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQg aW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJl LgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBF VkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBG Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF IE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKi8KKyNpZmRlZiBIQVZF X0NPTkZJR19ICisjaW5jbHVkZSAiY29uZmlnLmgiCisjZW5kaWYKKyNpbmNsdWRlICJpZ3QuaCIK KyNpbmNsdWRlIDxzdGRpby5oPgorCisvKioKKyAqIFBhcnNlIHRoZSByLXZhbHVlIG9mIGEgW2Nt ZF0gc3RyaW5nLgorICovCitzdGF0aWMgYm9vbCBjaGVja19jbWRfcmV0dXJuX3ZhbHVlKGNvbnN0 IGNoYXIgKnMsIHZvaWQgKmRhdGEpCit7CisJaW50ICp2YWwgPSBkYXRhOworCWNoYXIgKmNtZCwg KmZvdW5kOworCWNvbnN0IGNoYXIgKmRlbGltID0gIltjbWRdIjsKKwljb25zdCBpbnQgZGVsaW1f bGVuID0gc3RybGVuKGRlbGltKTsKKworCWlmICghKGNtZCA9IHN0cnN0cihzLCBkZWxpbSkpKQor CQlyZXR1cm4gZmFsc2U7CisKKwlmb3VuZCA9IGNtZCArIGRlbGltX2xlbiArIDE7CisJaWd0X2Fz c2VydChkZWxpbV9sZW4gKyBzdHJsZW4oZm91bmQpIDwgc3RybGVuKGNtZCkpOworCisJKnZhbCA9 IGF0b2koZm91bmQpOworCXJldHVybiB0cnVlOworfQorCitpZ3RfbWFpbgoreworCWludCBmZCA9 IC0xOworCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKKworCWlndF9zdWJ0ZXN0KCJzeXNmc19s M19wYXJpdHkiKSB7CisJCWludCBleGVjX3JldHVybjsKKworCQlpZ3Rfc3lzdGVtX2NtZChleGVj X3JldHVybiwKKwkJCSAgICAgICAiLi4vdG9vbHMvaW50ZWxfbDNfcGFyaXR5IC1yIDAgLWIgMCAi CisJCQkgICAgICAgIi1zIDAgLWUiKTsKKwkJaWd0X2Fzc2VydChleGVjX3JldHVybiA9PSBJR1Rf RVhJVF9TVUNDRVNTKTsKKworCQlpZ3Rfc3lzdGVtX2NtZChleGVjX3JldHVybiwKKwkJCSAgICAg ICAiLi4vdG9vbHMvaW50ZWxfbDNfcGFyaXR5IC1sIHwgIgorCQkJICAgICAgICJncmVwIC1jICdS b3cgMCwgQmFuayAwLCBTdWJiYW5rIDAgIgorCQkJICAgICAgICJpcyBkaXNhYmxlZCciKTsKKwkJ aWYgKGV4ZWNfcmV0dXJuID09IElHVF9FWElUX1NVQ0NFU1MpIHsKKwkJCWludCB2YWwgPSAtMTsK KwkJCWlndF9sb2dfYnVmZmVyX2luc3BlY3QoY2hlY2tfY21kX3JldHVybl92YWx1ZSwKKwkJCQkJ ICAgICAgICZ2YWwpOworCQkJaWd0X2Fzc2VydCh2YWwgPT0gMSk7CisJCX0gZWxzZSB7CisJCQlp Z3RfZmFpbChJR1RfRVhJVF9GQUlMVVJFKTsKKwkJfQorCisJCWlndF9zeXN0ZW1fY21kKGV4ZWNf cmV0dXJuLAorCQkJICAgICAgICIuLi90b29scy9pbnRlbF9sM19wYXJpdHkgLXIgMCAtYiAwICIK KwkJCSAgICAgICAiLXMgMCAtZSIpOworCQlpZ3RfYXNzZXJ0KGV4ZWNfcmV0dXJuID09IElHVF9F WElUX1NVQ0NFU1MpOworCisJCS8qIENoZWNrIHRoYXQgd2UgY2FuIGNsZWFyIHJlbWFwcyAqLwor CQlpZ3Rfc3lzdGVtX2NtZChleGVjX3JldHVybiwKKwkJCSAgICAgICAiLi4vdG9vbHMvaW50ZWxf bDNfcGFyaXR5IC1sIHwgIgorCQkJICAgICAgICJ3YyAtbCIpOworCQlpZiAoZXhlY19yZXR1cm4g PT0gSUdUX0VYSVRfU1VDQ0VTUykgeworCQkJaW50IHZhbCA9IC0xOworCQkJaWd0X2xvZ19idWZm ZXJfaW5zcGVjdChjaGVja19jbWRfcmV0dXJuX3ZhbHVlLAorCQkJCQkgICAgICAgJnZhbCk7CisJ CQlpZ3RfYXNzZXJ0KHZhbCA9PSAxKTsKKwkJfSBlbHNlIHsKKwkJCWlndF9mYWlsKElHVF9FWElU X0ZBSUxVUkUpOworCQl9CisJfQorCisJaWd0X3N1YnRlc3QoInRvb2xzX3Rlc3QiKSB7CisJCWNo YXIgKmNtZDsKKworCQlpZ3RfYXNzZXJ0KGFzcHJpbnRmKCZjbWQsCisJCQkJICAgICIuLi90b29s cy9pbnRlbF9yZWcgcmVhZCAweDQwMzAiKQorCQkJICAgIT0gLTEpOworCQlpZ3RfYXNzZXJ0KGln dF9zeXN0ZW1fcXVpZXQoY21kKSA9PSBJR1RfRVhJVF9TVUNDRVNTKTsKKwkJZnJlZShjbWQpOwor CisJCWlndF9hc3NlcnQoYXNwcmludGYoJmNtZCwgIi4uL3Rvb2xzL2ludGVsX3JlZyBkdW1wIikK KwkJCSAgICE9IC0xKTsKKwkJaWd0X2Fzc2VydChpZ3Rfc3lzdGVtX3F1aWV0KGNtZCkgPT0gSUdU X0VYSVRfU1VDQ0VTUyk7CisJCWZyZWUoY21kKTsKKwl9CisKKwlpZ3Rfc3VidGVzdCgiY2hlY2tf ZG1lc2ciKSB7CisJCWNoYXIgKmNtZDsKKwkJaWd0X2Fzc2VydChhc3ByaW50ZigmY21kLCAiZG1l c2cgfCBncmVwICdcXCpFUlJPUlxcKiciKQorCQkJICAgIT0gLTEpOworCQlpZ3RfYXNzZXJ0KGln dF9zeXN0ZW1fcXVpZXQoY21kKSAhPSBJR1RfRVhJVF9TVUNDRVNTKTsKKwkJZnJlZShjbWQpOwor CisJCWlndF9hc3NlcnQoYXNwcmludGYoJmNtZCwgImRtZXNnIHwgZ3JlcCAiCisJCQkJICAgICIt LSAnLS0tLS0tXFxbIGN1dCBoZXJlIFxcXS0tLS0nIikKKwkJCSAgICE9IC0xKTsKKwkJaWd0X2Fz c2VydChpZ3Rfc3lzdGVtX3F1aWV0KGNtZCkgIT0gSUdUX0VYSVRfU1VDQ0VTUyk7CisJCWZyZWUo Y21kKTsKKwl9Cit9CmRpZmYgLS1naXQgYS90ZXN0cy90b29sc190ZXN0IGIvdGVzdHMvdG9vbHNf dGVzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYTI3ZmI4Ny4uMDAwMDAwMAotLS0g YS90ZXN0cy90b29sc190ZXN0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotIyEvYmlu L2Jhc2gKLSMgVGVzdCBzb21lIG9mIHRoZSBtb3N0IGNyaXRpY2FsIHRvb2xzIHdlIGhhdmUgYWNj aWRlbnRhbGx5IGJyb2tlbiBiZWZvcmUuCi0jIFRPRE86IFBvc3NpYmx5IG1ha2UgdGVzdHMgcGFy c2Ugb3V0cHV0Ci0KLVNPVVJDRV9ESVI9IiQoIGRpcm5hbWUgIiR7QkFTSF9TT1VSQ0VbMF19IiAp IgotLiAkU09VUkNFX0RJUi9kcm1fbGliLnNoCi0KLSMgQVJCX01PREUgaGFzIGV4aXN0ZWQgZm9y IG1hbnkgZ2VucwotUEFUSD0kU09VUkNFX0RJUi8uLi90b29sczokUEFUSAotZG9fb3JfZGllICJp bnRlbF9yZWcgcmVhZCAweDQwMzAiCi1kb19vcl9kaWUgImludGVsX3JlZyBkdW1wIgotCi0jIFRP RE86IEFkZCBtb3JlIHRlc3RzCi0KLWV4aXQgJElHVF9FWElUX1NVQ0NFU1MKLQotLSAKMi43LjQK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=