From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t] scripts/trace.pl: Auto-detect tracepoint field order Date: Mon, 18 Dec 2017 12:02:15 +0000 Message-ID: <20171218120215.28139-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x232.google.com (mail-wr0-x232.google.com [IPv6:2a00:1450:400c:c0c::232]) by gabe.freedesktop.org (Postfix) with ESMTPS id B3728898A8 for ; Mon, 18 Dec 2017 12:02:26 +0000 (UTC) Received: by mail-wr0-x232.google.com with SMTP id w68so1371539wrc.10 for ; Mon, 18 Dec 2017 04:02:26 -0800 (PST) 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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkluc3RlYWQg b2YgaGFyZC1jb2RpbmcgdGhlIG9yZGVyIG9mIGtleS12YWx1ZSBwYWlycyBpbnRvIHJlZ3VsYXIK ZXhwcmVzc2lvbnMsIGF1dG8tZGV0ZWN0IHRoZW0gYXMgd2UgZ28uCgpBdCB0aGUgc2FtZSB0aW1l IHJlLWZhY3RvciB0aGUgY29kZSBzbyBpdCBpcyBzbWFsbGVyIGFuZCBldmVuCnNsaWdodGx5IGZh c3RlciAoMTAtMTUlIGJ5IGEgcXVpY2sgbWVhc3VyZW1lbnQpLgoKU2lnbmVkLW9mZi1ieTogVHZy dGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6IExpb25lbCBMYW5kd2Vy bGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KQ2M6IEpvaG4gSGFycmlzb24gPEpv aG4uQy5IYXJyaXNvbkBpbnRlbC5jb20+Ci0tLQogc2NyaXB0cy90cmFjZS5wbCB8IDIyMyArKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgMTUyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NjcmlwdHMvdHJhY2UucGwgYi9zY3JpcHRzL3RyYWNlLnBsCmluZGV4IGFlZDliMjBkODQw Ny4uOWIzZmI2NDg2ZmVjIDEwMDc1NQotLS0gYS9zY3JpcHRzL3RyYWNlLnBsCisrKyBiL3Njcmlw dHMvdHJhY2UucGwKQEAgLTMwMiw3NCArMzAyLDYgQEAgZGllIGlmIHNjYWxhcihAYXJncyk7CiAK IEBBUkdWID0gQGFyZ3M7CiAKLXN1YiBwYXJzZV9yZXEKLXsKLQlteSAoJGxpbmUsICR0cCkgPSBA XzsKLQlzdGF0ZSAlY2FjaGU7Ci0KLQkkY2FjaGV7JHRwfSA9IHFyLyhcZCspXC4oXGQrKTouKiR0 cC4qcmluZz0oXGQrKSwgY3R4PShcZCspLCBzZXFubz0oXGQrKSwgZ2xvYmFsKD86X3NlcW5vKT89 KFxkKykvIHVubGVzcyBleGlzdHMgJGNhY2hleyR0cH07Ci0KLQlpZiAoJGxpbmUgPX4gJGNhY2hl eyR0cH0pIHsKLQkJcmV0dXJuICgkMSwgJDIsICQzLCAkNCwgJDUsICQ2KTsKLQl9IGVsc2Ugewot CQlyZXR1cm4gdW5kZWY7Ci0JfQotfQotCi1zdWIgcGFyc2VfcmVxX2h3Ci17Ci0JbXkgKCRsaW5l LCAkdHApID0gQF87Ci0Jc3RhdGUgJWNhY2hlOwotCi0JJGNhY2hleyR0cH0gPSBxci8oXGQrKVwu KFxkKyk6LiokdHAuKnJpbmc9KFxkKyksIGN0eD0oXGQrKSwgc2Vxbm89KFxkKyksIGdsb2JhbCg/ Ol9zZXFubyk/PShcZCspLCBwb3J0PShcZCspLyB1bmxlc3MgZXhpc3RzICRjYWNoZXskdHB9Owot Ci0JaWYgKCRsaW5lID1+ICRjYWNoZXskdHB9KSB7Ci0JCXJldHVybiAoJDEsICQyLCAkMywgJDQs ICQ1LCAkNiwgJDcpOwotCX0gZWxzZSB7Ci0JCXJldHVybiB1bmRlZjsKLQl9Ci19Ci0KLXN1YiBw YXJzZV9yZXFfd2FpdF9iZWdpbgotewotCW15ICgkbGluZSwgJHRwKSA9IEBfOwotCi0JaWYgKCRs aW5lID1+IC8oXGQrKVwuKFxkKyk6LippOTE1X2dlbV9yZXF1ZXN0X3dhaXRfYmVnaW4uKnJpbmc9 KFxkKyksIGN0eD0oXGQrKSwgc2Vxbm89KFxkKykvKSB7Ci0JCXJldHVybiAoJDEsICQyLCAkMywg JDQsICQ1KTsKLQl9IGVsc2UgewotCQlyZXR1cm4gdW5kZWY7Ci0JfQotfQotCi1zdWIgcGFyc2Vf bm90aWZ5Ci17Ci0JbXkgKCRsaW5lKSA9IEBfOwotCi0JaWYgKCRsaW5lID1+IC8oXGQrKVwuKFxk Kyk6LippbnRlbF9lbmdpbmVfbm90aWZ5LipyaW5nPShcZCspLCBzZXFubz0oXGQrKS8pIHsKLQkJ cmV0dXJuICgkMSwgJDIsICQzLCAkNCk7Ci0JfSBlbHNlIHsKLQkJcmV0dXJuIHVuZGVmOwotCX0K LX0KLQotc3ViIHBhcnNlX2ZyZXEKLXsKLQlteSAoJGxpbmUpID0gQF87Ci0KLQlpZiAoJGxpbmUg PX4gLyhcZCspXC4oXGQrKTouKmludGVsX2dwdV9mcmVxX2NoYW5nZS4qbmV3X2ZyZXE9KFxkKykv KSB7Ci0JCXJldHVybiAoJDEsICQyLCAkMyk7Ci0JfSBlbHNlIHsKLQkJcmV0dXJuIHVuZGVmOwot CX0KLX0KLQotc3ViIHVzCi17Ci0JbXkgKCRzLCAkdXMpID0gQF87Ci0KLQlyZXR1cm4gJHMgKiAx MDAwMDAwICsgJHVzOwotfQotCiBzdWIgZGJfa2V5CiB7CiAJbXkgKCRyaW5nLCAkY3R4LCAkc2Vx bm8pID0gQF87CkBAIC00MjUsODYgKzM1Nyw4NyBAQCBteSAkcHJldl9mcmVxX3RzID0gMDsKIG15 ICRvbGRrZXJuZWx3YSA9IDA7CiBteSAoJG5vX3F1ZXVlLCAkbm9faW4pOwogd2hpbGUgKDw+KSB7 Ci0JbXkgKCRzLCAkdXMsICRyaW5nLCAkY3R4LCAkc2Vxbm8sICRnbG9iYWxfc2Vxbm8sICRwb3J0 KTsKLQlteSAkZnJlcTsKKwlteSBAZmllbGRzOworCW15IEB0bXA7CisJbXkgJHRwX25hbWU7CisJ bXkgJHRpbWU7CisJbXkgJXRwOwogCW15ICRrZXk7CiAKIAljaG9tcDsKKwlAZmllbGRzID0gc3Bs aXQgJyAnOwogCi0JKCRzLCAkdXMsICRyaW5nLCAkY3R4LCAkc2Vxbm8pID0gcGFyc2VfcmVxX3dh aXRfYmVnaW4oJF8pOwotCWlmIChkZWZpbmVkICRzKSB7Ci0JCW15ICVydzsKKwkkdHBfbmFtZSA9 ICRmaWVsZHNbNF07CisJQHRtcCA9IHNwbGl0ICc6JywgJHRwX25hbWUsIDI7CisJbmV4dCB1bmxl c3MgJHRtcFswXSBlcSAnaTkxNSc7CisJJHRwX25hbWUgPSAkdG1wWzFdOworCWNob3AgJHRwX25h bWU7CiAKLQkJbmV4dCBpZiBleGlzdHMgJGlnbm9yZV9yaW5neyRyaW5nfTsKKwljaG9wICRmaWVs ZHNbM107CisJJHRpbWUgPSAkZmllbGRzWzNdICogMTAwMDAwMC4wOworCXNwbGljZSBAZmllbGRz LCAwLCA1OwogCi0JCSRjdHggPSBzYW5pdGl6ZV9jdHgoJGN0eCwgJHJpbmcpOwotCQkka2V5ID0g ZGJfa2V5KCRyaW5nLCAkY3R4LCAkc2Vxbm8pOworCWZvcmVhY2ggbXkgJGYgKEBmaWVsZHMpIHsK KwkJbXkgQGt2ID0gc3BsaXQgJz18LCcsICRmOwogCi0JCW5leHQgaWYgZXhpc3RzICRyZXF3YWl0 eyRrZXl9OworCQkka3ZbMF0gPSAnZ2xvYmFsJyBpZiAka3ZbMF0gZXEgJ2dsb2JhbF9zZXFubyc7 CiAKLQkJJHJ3eydrZXknfSA9ICRrZXk7Ci0JCSRyd3sncmluZyd9ID0gJHJpbmc7Ci0JCSRyd3sn c2Vxbm8nfSA9ICRzZXFubzsKLQkJJHJ3eydjdHgnfSA9ICRjdHg7Ci0JCSRyd3snc3RhcnQnfSA9 IHVzKCRzLCAkdXMpOwotCQkkcmVxd2FpdHska2V5fSA9IFwlcnc7Ci0JCW5leHQ7CisJCSR0cHsk a3ZbMF19ID0gJGt2WzFdOwogCX0KIAotCSgkcywgJHVzLCAkcmluZywgJGN0eCwgJHNlcW5vLCAk Z2xvYmFsX3NlcW5vKSA9IHBhcnNlX3JlcSgkXywgJ2k5MTU6aTkxNV9nZW1fcmVxdWVzdF93YWl0 X2VuZCcpOwotCWlmIChkZWZpbmVkICRzKSB7Ci0JCW5leHQgaWYgZXhpc3RzICRpZ25vcmVfcmlu Z3skcmluZ307CisJcmV0dXJuIHVuZGVmIGlmIGV4aXN0cyAkdHB7J3JpbmcnfSBhbmQgZXhpc3Rz ICRpZ25vcmVfcmluZ3skdHB7J3JpbmcnfX07CisKKwlpZiAoJHRwX25hbWUgZXEgJ2k5MTVfZ2Vt X3JlcXVlc3Rfd2FpdF9iZWdpbicpIHsKKwkJbXkgJXJ3OwogCi0JCSRjdHggPSBzYW5pdGl6ZV9j dHgoJGN0eCwgJHJpbmcpOwotCQkka2V5ID0gZGJfa2V5KCRyaW5nLCAkY3R4LCAkc2Vxbm8pOwor CQkkdHB7J2N0eCd9ID0gc2FuaXRpemVfY3R4KCR0cHsnY3R4J30sICR0cHsncmluZyd9KTsKKwkJ JGtleSA9IGRiX2tleSgkdHB7J3JpbmcnfSwgJHRweydjdHgnfSwgJHRweydzZXFubyd9KTsKIAot CQluZXh0IHVubGVzcyBleGlzdHMgJHJlcXdhaXR7JGtleX07CisJCW5leHQgaWYgZXhpc3RzICRy ZXF3YWl0eyRrZXl9OwogCi0JCSRyZXF3YWl0eyRrZXl9LT57J2VuZCd9ID0gdXMoJHMsICR1cyk7 CisJCSRyd3sna2V5J30gPSAka2V5OworCQkkcnd7J3JpbmcnfSA9ICR0cHsncmluZyd9OworCQkk cnd7J3NlcW5vJ30gPSAkdHB7J3NlcW5vJ307CisJCSRyd3snY3R4J30gPSAkdHB7J2N0eCd9Owor CQkkcnd7J3N0YXJ0J30gPSAkdGltZTsKKwkJJHJlcXdhaXR7JGtleX0gPSBcJXJ3OwogCQluZXh0 OwotCX0KKwl9IGVsc2lmICgkdHBfbmFtZSBlcSAnaTkxNV9nZW1fcmVxdWVzdF93YWl0X2VuZCcp IHsKKwkJJHRweydjdHgnfSA9IHNhbml0aXplX2N0eCgkdHB7J2N0eCd9LCAkdHB7J3JpbmcnfSk7 CisJCSRrZXkgPSBkYl9rZXkoJHRweydyaW5nJ30sICR0cHsnY3R4J30sICR0cHsnc2Vxbm8nfSk7 CiAKLQkoJHMsICR1cywgJHJpbmcsICRjdHgsICRzZXFubywgJGdsb2JhbF9zZXFubykgPSBwYXJz ZV9yZXEoJF8sICdpOTE1Omk5MTVfZ2VtX3JlcXVlc3RfYWRkJyk7Ci0JaWYgKGRlZmluZWQgJHMp IHsKLQkJbXkgJG9yaWdfY3R4ID0gJGN0eDsKKwkJbmV4dCB1bmxlc3MgZXhpc3RzICRyZXF3YWl0 eyRrZXl9OwogCi0JCW5leHQgaWYgZXhpc3RzICRpZ25vcmVfcmluZ3skcmluZ307CisJCSRyZXF3 YWl0eyRrZXl9LT57J2VuZCd9ID0gJHRpbWU7CisJCW5leHQ7CisJfSBlbHNpZiAoJHRwX25hbWUg ZXEgJ2k5MTVfZ2VtX3JlcXVlc3RfYWRkJykgeworCQlteSAkb3JpZ19jdHggPSAkdHB7J2N0eCd9 OwogCi0JCSRjdHggPSBzYW5pdGl6ZV9jdHgoJGN0eCwgJHJpbmcpOwotCQkka2V5ID0gZGJfa2V5 KCRyaW5nLCAkY3R4LCAkc2Vxbm8pOworCQkkdHB7J2N0eCd9ID0gc2FuaXRpemVfY3R4KCR0cHsn Y3R4J30sICR0cHsncmluZyd9KTsKKwkJJGtleSA9IGRiX2tleSgkdHB7J3JpbmcnfSwgJHRweydj dHgnfSwgJHRweydzZXFubyd9KTsKIAogCQlpZiAoZXhpc3RzICRxdWV1ZXska2V5fSkgewogCQkJ JGN0eGRieyRvcmlnX2N0eH0rKzsKLQkJCSRjdHggPSBzYW5pdGl6ZV9jdHgoJG9yaWdfY3R4LCAk cmluZyk7Ci0JCQkka2V5ID0gZGJfa2V5KCRyaW5nLCAkY3R4LCAkc2Vxbm8pOworCQkJJHRweydj dHgnfSA9IHNhbml0aXplX2N0eCgkdHB7J2N0eCd9LCAkdHB7J3JpbmcnfSk7CisJCQkka2V5ID0g ZGJfa2V5KCR0cHsncmluZyd9LCAkdHB7J2N0eCd9LCAkdHB7J3NlcW5vJ30pOwogCQl9CiAKLQkJ JHF1ZXVleyRrZXl9ID0gdXMoJHMsICR1cyk7CisJCSRxdWV1ZXska2V5fSA9ICR0aW1lOwogCQlu ZXh0OwotCX0KLQotCSgkcywgJHVzLCAkcmluZywgJGN0eCwgJHNlcW5vLCAkZ2xvYmFsX3NlcW5v KSA9IHBhcnNlX3JlcSgkXywgJ2k5MTU6aTkxNV9nZW1fcmVxdWVzdF9zdWJtaXQnKTsKLQlpZiAo ZGVmaW5lZCAkcykgewotCQluZXh0IGlmIGV4aXN0cyAkaWdub3JlX3Jpbmd7JHJpbmd9OwotCi0J CSRjdHggPSBzYW5pdGl6ZV9jdHgoJGN0eCwgJHJpbmcpOwotCQkka2V5ID0gZGJfa2V5KCRyaW5n LCAkY3R4LCAkc2Vxbm8pOworCX0gZWxzaWYgKCR0cF9uYW1lIGVxICdpOTE1X2dlbV9yZXF1ZXN0 X3N1Ym1pdCcpIHsKKwkJJHRweydjdHgnfSA9IHNhbml0aXplX2N0eCgkdHB7J2N0eCd9LCAkdHB7 J3JpbmcnfSk7CisJCSRrZXkgPSBkYl9rZXkoJHRweydyaW5nJ30sICR0cHsnY3R4J30sICR0cHsn c2Vxbm8nfSk7CiAKIAkJZGllIGlmIGV4aXN0cyAkc3VibWl0eyRrZXl9OwogCQlkaWUgdW5sZXNz IGV4aXN0cyAkcXVldWV7JGtleX07CiAKLQkJJHN1Ym1pdHska2V5fSA9IHVzKCRzLCAkdXMpOwor CQkkc3VibWl0eyRrZXl9ID0gJHRpbWU7CiAJCW5leHQ7Ci0JfQotCi0JKCRzLCAkdXMsICRyaW5n LCAkY3R4LCAkc2Vxbm8sICRnbG9iYWxfc2Vxbm8sICRwb3J0KSA9IHBhcnNlX3JlcV9odygkXywg J2k5MTU6aTkxNV9nZW1fcmVxdWVzdF9pbicpOwotCWlmIChkZWZpbmVkICRzKSB7CisJfSBlbHNp ZiAoJHRwX25hbWUgZXEgJ2k5MTVfZ2VtX3JlcXVlc3RfaW4nKSB7CiAJCW15ICVyZXE7CiAKLQkJ bmV4dCBpZiBleGlzdHMgJGlnbm9yZV9yaW5neyRyaW5nfTsKLQotCQkkY3R4ID0gc2FuaXRpemVf Y3R4KCRjdHgsICRyaW5nKTsKLQkJJGtleSA9IGRiX2tleSgkcmluZywgJGN0eCwgJHNlcW5vKTsK KwkJJHRweydjdHgnfSA9IHNhbml0aXplX2N0eCgkdHB7J2N0eCd9LCAkdHB7J3JpbmcnfSk7CisJ CSRrZXkgPSBkYl9rZXkoJHRweydyaW5nJ30sICR0cHsnY3R4J30sICR0cHsnc2Vxbm8nfSk7CiAK IAkJZGllIGlmIGV4aXN0cyAkZGJ7JGtleX07CiAJCWlmIChub3QgZXhpc3RzICRxdWV1ZXska2V5 fSBhbmQgJG9sZGtlcm5lbHdhKSB7CkBAIC01MTQsMzAgKzQ0NywyNSBAQCB3aGlsZSAoPD4pIHsK IAkJZGllIHVubGVzcyBleGlzdHMgJHF1ZXVleyRrZXl9OwogCQlkaWUgdW5sZXNzIGV4aXN0cyAk c3VibWl0eyRrZXl9OwogCi0JCSRyZXF7J3N0YXJ0J30gPSB1cygkcywgJHVzKTsKLQkJJHJlcXsn cmluZyd9ID0gJHJpbmc7Ci0JCSRyZXF7J3NlcW5vJ30gPSAkc2Vxbm87Ci0JCSRyZXF7J2N0eCd9 ID0gJGN0eDsKLQkJJHJlcXsnbmFtZSd9ID0gJGN0eCAuICcvJyAuICRzZXFubzsKLQkJJHJlcXsn Z2xvYmFsJ30gPSAkZ2xvYmFsX3NlcW5vOwotCQkkcmVxeydwb3J0J30gPSAkcG9ydDsKKwkJJHJl cXsnc3RhcnQnfSA9ICR0aW1lOworCQkkcmVxeydyaW5nJ30gPSAkdHB7J3JpbmcnfTsKKwkJJHJl cXsnc2Vxbm8nfSA9ICR0cHsnc2Vxbm8nfTsKKwkJJHJlcXsnY3R4J30gPSAkdHB7J2N0eCd9Owor CQkkcmVxeyduYW1lJ30gPSAkdHB7J2N0eCd9IC4gJy8nIC4gJHRweydzZXFubyd9OworCQkkcmVx eydnbG9iYWwnfSA9ICR0cHsnZ2xvYmFsJ307CisJCSRyZXF7J3BvcnQnfSA9ICR0cHsncG9ydCd9 OwogCQkkcmVxeydxdWV1ZSd9ID0gJHF1ZXVleyRrZXl9OwogCQkkcmVxeydzdWJtaXQtZGVsYXkn fSA9ICRzdWJtaXR7JGtleX0gLSAkcXVldWV7JGtleX07CiAJCSRyZXF7J2V4ZWN1dGUtZGVsYXkn fSA9ICRyZXF7J3N0YXJ0J30gLSAkc3VibWl0eyRrZXl9OwotCQkkcmluZ3N7JHJpbmd9ID0gJGdp ZCsrIHVubGVzcyBleGlzdHMgJHJpbmdzeyRyaW5nfTsKLQkJJHJpbmdtYXB7JHJpbmdzeyRyaW5n fX0gPSAkcmluZzsKKwkJJHJpbmdzeyR0cHsncmluZyd9fSA9ICRnaWQrKyB1bmxlc3MgZXhpc3Rz ICRyaW5nc3skdHB7J3JpbmcnfX07CisJCSRyaW5nbWFweyRyaW5nc3skdHB7J3JpbmcnfX19ID0g JHRweydyaW5nJ307CiAJCSRkYnska2V5fSA9IFwlcmVxOwogCQluZXh0OwotCX0KLQotCSgkcywg JHVzLCAkcmluZywgJGN0eCwgJHNlcW5vLCAkZ2xvYmFsX3NlcW5vLCAkcG9ydCkgPSBwYXJzZV9y ZXEoJF8sICdpOTE1Omk5MTVfZ2VtX3JlcXVlc3Rfb3V0Jyk7Ci0JaWYgKGRlZmluZWQgJHMpIHsK LQkJbXkgJGdrZXkgPSBnbG9iYWxfa2V5KCRyaW5nLCAkZ2xvYmFsX3NlcW5vKTsKKwl9IGVsc2lm ICgkdHBfbmFtZSBlcSAnaTkxNV9nZW1fcmVxdWVzdF9vdXQnKSB7CisJCW15ICRna2V5ID0gZ2xv YmFsX2tleSgkdHB7J3JpbmcnfSwgJHRweydnbG9iYWwnfSk7CiAKLQkJbmV4dCBpZiBleGlzdHMg JGlnbm9yZV9yaW5neyRyaW5nfTsKLQotCQkkY3R4ID0gc2FuaXRpemVfY3R4KCRjdHgsICRyaW5n KTsKLQkJJGtleSA9IGRiX2tleSgkcmluZywgJGN0eCwgJHNlcW5vKTsKKwkJJHRweydjdHgnfSA9 IHNhbml0aXplX2N0eCgkdHB7J2N0eCd9LCAkdHB7J3JpbmcnfSk7CisJCSRrZXkgPSBkYl9rZXko JHRweydyaW5nJ30sICR0cHsnY3R4J30sICR0cHsnc2Vxbm8nfSk7CiAKIAkJaWYgKG5vdCBleGlz dHMgJGRieyRrZXl9IGFuZCAkb2xka2VybmVsd2EpIHsKIAkJCSRub19pbisrOwpAQCAtNTQ3LDcg KzQ3NSw3IEBAIHdoaWxlICg8PikgewogCQlkaWUgdW5sZXNzIGV4aXN0cyAkZGJ7JGtleX0tPnsn c3RhcnQnfTsKIAkJZGllIGlmIGV4aXN0cyAkZGJ7JGtleX0tPnsnZW5kJ307CiAKLQkJJGRieyRr ZXl9LT57J2VuZCd9ID0gdXMoJHMsICR1cyk7CisJCSRkYnska2V5fS0+eydlbmQnfSA9ICR0aW1l OwogCQlpZiAoZXhpc3RzICRub3RpZnl7JGdrZXl9KSB7CiAJCQkkZGJ7JGtleX0tPnsnbm90aWZ5 J30gPSAkbm90aWZ5eyRna2V5fTsKIAkJfSBlbHNlIHsKQEAgLTU1OSwyMiArNDg3LDEzIEBAIHdo aWxlICg8PikgewogCQkkZGJ7JGtleX0tPnsnZHVyYXRpb24nfSA9ICRkYnska2V5fS0+eydub3Rp ZnknfSAtICRkYnska2V5fS0+eydzdGFydCd9OwogCQkkZGJ7JGtleX0tPnsnY29udGV4dC1jb21w bGV0ZS1kZWxheSd9ID0gJGRieyRrZXl9LT57J2VuZCd9IC0gJGRieyRrZXl9LT57J25vdGlmeSd9 OwogCQluZXh0OwotCX0KLQotCSgkcywgJHVzLCAkcmluZywgJHNlcW5vKSA9IHBhcnNlX25vdGlm eSgkXyk7Ci0JaWYgKGRlZmluZWQgJHMpIHsKLQkJbmV4dCBpZiBleGlzdHMgJGlnbm9yZV9yaW5n eyRyaW5nfTsKLQkJJG5vdGlmeXtnbG9iYWxfa2V5KCRyaW5nLCAkc2Vxbm8pfSA9IHVzKCRzLCAk dXMpOworCX0gZWxzaWYgKCR0cF9uYW1lIGVxICdpbnRlbF9lbmdpbmVfbm90aWZ5JykgeworCQkk bm90aWZ5e2dsb2JhbF9rZXkoJHRweydyaW5nJ30sICR0cHsnc2Vxbm8nfSl9ID0gJHRpbWU7CiAJ CW5leHQ7Ci0JfQotCi0JKCRzLCAkdXMsICRmcmVxKSA9IHBhcnNlX2ZyZXEoJF8pOwotCWlmIChk ZWZpbmVkICRzKSB7Ci0JCW15ICRjdXIgPSB1cygkcywgJHVzKTsKLQotCQlwdXNoIEBmcmVxcywg WyRwcmV2X2ZyZXFfdHMsICRjdXIsICRwcmV2X2ZyZXFdIGlmICRwcmV2X2ZyZXE7Ci0JCSRwcmV2 X2ZyZXFfdHMgPSAkY3VyOwotCQkkcHJldl9mcmVxID0gJGZyZXE7CisJfSBlbHNpZiAoJHRwX25h bWUgZXEgJ2ludGVsX2dwdV9mcmVxX2NoYW5nZScpIHsKKwkJcHVzaCBAZnJlcXMsIFskcHJldl9m cmVxX3RzLCAkdGltZSwgJHByZXZfZnJlcV0gaWYgJHByZXZfZnJlcTsKKwkJJHByZXZfZnJlcV90 cyA9ICR0aW1lOworCQkkcHJldl9mcmVxID0gJHRweyduZXdfZnJlcSd9OwogCQluZXh0OwogCX0K IH0KLS0gCjIuMTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==