From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATH i-g-t 13/13] media-bench: Add mixed mode evaluation Date: Wed, 5 Sep 2018 14:49:39 +0100 Message-ID: <20180905134939.2942-14-tvrtko.ursulin@linux.intel.com> References: <20180905134939.2942-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-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 620476E4B6 for ; Wed, 5 Sep 2018 13:49:58 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id j192-v6so7871821wmj.1 for ; Wed, 05 Sep 2018 06:49:58 -0700 (PDT) In-Reply-To: <20180905134939.2942-1-tvrtko.ursulin@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: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCk1peGVkIG1v ZGUgKC1tKSBlbmFibGVzIGV2YWx1YXRpb24gb2YgZGlmZmVyZW50IHdvcmtsb2FkIHNldHMgYWdh aW5zdCBvbmUKb3IgbW9yZSBsb2FkIGJhbGFuY2luZyBzdHJhdGVnaWVzLgoKQ29udHJhcnkgdG8g dGhlIGRlZmF1bHQgbW9kZSB3aGljaCBydW5zIGFsbCBzZWxlY3RlZCB3b3JrbG9hZHMgc2VyaWFs eSwKbWl4ZWQgbW9kZSBydW5zIGEgc2Vjb25kIHN0YWdlIHdoZXJlIHRoZXkgYXJlIGFsbCBydW4g aW4gcGFyYWxsZWwuIFRoZQpwZXJmb3JtYW5jZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBw YXNzZXMgaXMgdGhlbiB1c2VkIGZvciB0aGUgc2NvcmluZwptZXRyaWMuCgpGaXJzdCBtZXRyaWMg aXMgdGhlIG5vcm1hbGl6ZWQgYWdncmVnYXRlIHRocm91Z2hwdXQsIGFuZCBzZWNvbmQgaXMKYmFs YW5jZXIgImZhaXJuZXNzIiBhcyBhcHByb3hpbWF0ZWQgYnkgdGhyb3VnaHB1dCBhY2hpZXZlZCBp biBtaXhlZCBtb2RlLApyZWxhdGl2ZSB0byB0aGUgYmVzdCBpbmRpdmlkdWFsIGJhbGFuY2VyIGZv ciBlYWNoIHdvcmtsb2FkLgoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51 cnN1bGluQGludGVsLmNvbT4KLS0tCiBzY3JpcHRzL21lZGlhLWJlbmNoLnBsIHwgMTUwICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIx IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWVk aWEtYmVuY2gucGwgYi9zY3JpcHRzL21lZGlhLWJlbmNoLnBsCmluZGV4IDc3ZTc1Yzc4YjExMy4u MDY2YjU0MmY5NWRmIDEwMDc1NQotLS0gYS9zY3JpcHRzL21lZGlhLWJlbmNoLnBsCisrKyBiL3Nj cmlwdHMvbWVkaWEtYmVuY2gucGwKQEAgLTQxLDYgKzQxLDggQEAgbXkgJHNob3dfY21kcyA9IDA7 CiBteSAkcmVhbHRpbWVfdGFyZ2V0ID0gMDsKIG15ICR3cHNfdGFyZ2V0ID0gMDsKIG15ICR3cHNf dGFyZ2V0X3BhcmFtID0gMDsKK215ICRtdWx0aV9tb2RlID0gMDsKK215IEBtdWx0aV93b3JrbG9h ZHM7CiBteSAkd19kaXJlY3Q7CiBteSAkYmFsYW5jZXI7CiBteSAkbm9wOwpAQCAtMTQxLDYgKzE0 Myw3IEBAIHN1YiBydW5fd29ya2xvYWQKIHsKIAlteSAoQGFyZ3MpID0gQF87CiAJbXkgKCR0aW1l LCAkd3BzLCAkY21kKTsKKwlteSBAcmV0OwogCiAJQGFyZ3MgPSBhZGRfd3BzX2FyZyhAYXJncyk7 CiAJcHVzaCBAYXJncywgJy0yJyBpZiAkZ3QyOwpAQCAtMTU1LDExICsxNTgsMTMgQEAgc3ViIHJ1 bl93b3JrbG9hZAogCQlpZiAoL14oXGQrXC5cZCspcyBlbGFwc2VkIFwoKFxkK1wuP1xkKykgd29y a2xvYWRzXC9zXCkkLykgewogCQkJJHRpbWUgPSAkMTsKIAkJCSR3cHMgPSAkMjsKKwkJfSBlbHNp ZiAoLyhcZCspXDogXGQrXC5cZCtzIGVsYXBzZWQgXChcZCsgY3ljbGVzLCAoXGQrXC4/XGQrKSB3 b3JrbG9hZHNcL3NcKS8pIHsKKwkJCSRyZXRbJDFdID0gJDI7CiAJCX0KIAl9CiAJY2xvc2UgV1NJ TTsKIAotCXJldHVybiAoJHRpbWUsICR3cHMpOworCXJldHVybiAoJHRpbWUsICR3cHMsIFxAcmV0 KTsKIH0KIAogc3ViIGR1bXBfY21kCkBAIC0yMjMsNyArMjI4LDExIEBAIHN1YiB0cmFjZV93b3Jr bG9hZAogCX0KIAljbG9zZSBDTUQ7CiAKLQkkd3JrID1+IHMvIC9fL2c7CisJJHdyayA9fiBzLyR3 cmtfcm9vdC8vZzsKKwkkd3JrID1+IHMvXC53c2ltLy9nOworCSR3cmsgPX4gcy8tdy9XL2c7CisJ JHdyayA9fiBzL1sgLV0vXy9nOworCSR3cmsgPX4gcy9cLy8tL2c7CiAJJGIgPX4gcy9bIDw+XS9f L2c7CiAJJGZpbGUgPSAiJHt3cmt9XyR7Yn1fLXIke3J9Xy1jJHtjfSI7CiAKQEAgLTI1OSw2ICsy NjgsNyBAQCBzdWIgY2FsaWJyYXRlX3dvcmtsb2FkCiAKIAkJKCR0aW1lLCAkd3BzKSA9IHJ1bl93 b3JrbG9hZChAYXJncyk7CiAKKwkJJHdwcyA9ICRyIC8gJHRpbWUgaWYgJHdfZGlyZWN0OwogCQkk ZXJyb3IgPSBhYnMoJHRpbWUgLSAkY2xpZW50X3RhcmdldF9zKSAvICRjbGllbnRfdGFyZ2V0X3M7 CiAKIAkJbGFzdCBpZiAkZXJyb3IgPD0gJHRvbDsKQEAgLTI3OCwxMyArMjg4LDE1IEBAIHN1YiBj YWxpYnJhdGVfd29ya2xvYWQKIHN1YiBmaW5kX3NhdHVyYXRpb25fcG9pbnQKIHsKIAlteSAoJHdy aywgJHJyLCAkdmVyYm9zZSwgQGFyZ3MpID0gQF87Ci0JbXkgKCRsYXN0X3dwcywgJGMsICRzd3Bz KTsKKwlteSAoJGxhc3Rfd3BzLCAkYywgJHN3cHMsICR3d3BzKTsKIAlteSAkdGFyZ2V0ID0gJHJl YWx0aW1lX3RhcmdldCA+IDAgPyAkcmVhbHRpbWVfdGFyZ2V0IDogJHdwc190YXJnZXQ7CiAJbXkg JHIgPSAkcnI7CiAJbXkgJHdjbnQ7CiAJbXkgJG1heGM7CiAJbXkgJG1heCA9IDA7CiAKKwlwdXNo IEBhcmdzLCAnLXYnIGlmICRtdWx0aV9tb2RlIGFuZCAkd19kaXJlY3Q7CisKIAlpZiAoZGVmaW5l ZCAkd19kaXJlY3QpIHsKIAkJcHVzaCBAYXJncywgc3BsaXQgL1xzKy8sICR3cms7CiAJCSR3Y250 ID0gKCkgPSAkd3JrID1+IC8tW3dXXS9naTsKQEAgLTI5Nyw4ICszMDksOSBAQCBzdWIgZmluZF9z YXR1cmF0aW9uX3BvaW50CiAKIAlmb3IgKCRjID0gMTsgOyAkYyA9ICRjICsgMSkgewogCQlteSAo JHRpbWUsICR3cHMpOworCQlteSBAYXJnc18gPSAoQGFyZ3MsICgnLXInLCAkciwgJy1jJywgJGMp KTsKIAotCQkoJHRpbWUsICR3cHMpID0gcnVuX3dvcmtsb2FkKChAYXJncywgKCctcicsICRyLCAn LWMnLCAkYykpKTsKKwkJKCR0aW1lLCAkd3BzLCAkd3dwcykgPSBydW5fd29ya2xvYWQoQGFyZ3Nf KTsKIAogCQlzYXkgIiAgICAgICAgJGMgY2xpZW50cyBpcyAkd3BzIHdwcy4iIGlmICR2ZXJib3Nl OwogCkBAIC0zMjQsMjEgKzMzNywyMyBAQCBzdWIgZmluZF9zYXR1cmF0aW9uX3BvaW50CiAJCQkk ciA9IGludCgkcnIgKiAoJGNsaWVudF90YXJnZXRfcyAvICR0aW1lKSk7CiAJCX0gZWxzaWYgKCRj ID09IDEpIHsKIAkJCSRzd3BzID0gJHdwczsKLQkJCXJldHVybiAoJGMsICR3cHMsICRzd3BzKSBp ZiAkd2NudCA+IDEgb3IKLQkJCQkJCSAgICAoJHdwc190YXJnZXRfcGFyYW0gPCAwIGFuZCAkd3Bz X3RhcmdldCA9PSAwKTsKKwkJCXJldHVybiAoJGMsICR3cHMsICRzd3BzLCAkd3dwcykgaWYgJHdj bnQgPiAxIG9yCisJCQkJCQkJICAgJG11bHRpX21vZGUgb3IKKwkJCQkJCQkgICAoJHdwc190YXJn ZXRfcGFyYW0gPCAwIGFuZAorCQkJCQkJCSAgICAkd3BzX3RhcmdldCA9PSAwKTsKIAkJfQogCiAJ CSRsYXN0X3dwcyA9ICR3cHM7CiAJfQogCiAJaWYgKCR0YXJnZXQgPD0gMCkgewotCQlyZXR1cm4g KCRtYXhjLCAkbWF4LCAkc3dwcyk7CisJCXJldHVybiAoJG1heGMsICRtYXgsICRzd3BzLCAkd3dw cyk7CiAJfSBlbHNlIHsKLQkJcmV0dXJuICgkYyAtIDEsICRsYXN0X3dwcywgJHN3cHMpOworCQly ZXR1cm4gKCRjIC0gMSwgJGxhc3Rfd3BzLCAkc3dwcywgJHd3cHMpOwogCX0KIH0KIAotZ2V0b3B0 cygnaHYyeG46YjpXOkI6cjp0Omk6UjpUOnc6JywgXCVvcHRzKTsKK2dldG9wdHMoJ2h2Mnhtbjpi Olc6QjpyOnQ6aTpSOlQ6dzonLCBcJW9wdHMpOwogCiBpZiAoZGVmaW5lZCAkb3B0c3snaCd9KSB7 CiAJcHJpbnQgPDxFTkRIRUxQOwpAQCAtMzYwLDggKzM3NSwxMSBAQCBTdXBwb3J0ZWQgb3B0aW9u czoKICAgLVIgd3BzICAgICAgUnVuIHdvcmtsb2FkcyBpbiB0aGUgcmVhbC10aW1lIG1vZGUgYXQg d3BzIHJhdGUuCiAgIC1UIHdwcyAgICAgIENhbGlicmF0ZSB1cCB0byB3cHMvY2xpZW50IHRhcmdl dCBpbnN0ZWFkIG9mIEdQVSBzYXR1cmF0aW9uLgogICAgICAgICAgICAgICBOZWdhdGl2ZSB2YWx1 ZXMgc2V0IHRoZSB0YXJnZXQgYmFzZWQgb24gdGhlIHNpbmdsZSBjbGllbnQKLQkgICAgICBwZXJm b3JtYW5jZSB3aGVyZSB0YXJnZXQgPSBzaW5nbGUtY2xpZW50LXdwcyAvIC1OLgorICAgICAgICAg ICAgICBwZXJmb3JtYW5jZSB3aGVyZSB0YXJnZXQgPSBzaW5nbGUtY2xpZW50LXdwcyAvIC1OLgog ICAtdyBzdHIgICAgICBQYXNzLXRocm91Z2ggdG8gZ2VtX3dzaW0uIE92ZXJyaWRlcyBub3JtYWwg d29ya2xvYWQgc2VsZWN0aW9uLgorICAtbSAgICAgICAgICBNdWx0aS13b3JrbG9hZCBtb2RlLiBB bGwgc2VsZWN0ZWQgd29ya2xvYWRzIHdpbGwgYmUgcnVuIGluCisgICAgICAgICAgICAgIHBhcmFs bGVsIGFuZCBvdmVyYWwgc2NvcmUgd2lsbCBiZSByZWxhdGl2ZSB0byB3aGVuIHJ1bgorICAgICAg ICAgICAgICBpbmRpdmlkdWFsbHkuCiBFTkRIRUxQCiAJZXhpdCAwOwogfQpAQCAtMzY5LDYgKzM4 Nyw3IEBAIEVOREhFTFAKICR2ZXJib3NlID0gMSBpZiBkZWZpbmVkICRvcHRzeyd2J307CiAkZ3Qy ID0gMSBpZiBkZWZpbmVkICRvcHRzeycyJ307CiAkc2hvd19jbWRzID0gMSBpZiBkZWZpbmVkICRv cHRzeyd4J307CiskbXVsdGlfbW9kZSA9IDEgaWYgZGVmaW5lZCAkb3B0c3snbSd9OwogaWYgKGRl ZmluZWQgJG9wdHN7J2InfSkgewogCWRpZSB1bmxlc3Mgc3Vic3RyKCRvcHRzeydiJ30sIDAsIDIp IGVxICctYic7CiAJJGJhbGFuY2VyID0gJG9wdHN7J2InfTsKQEAgLTM4Nyw3ICs0MDYsMTMgQEAg JHdwc190YXJnZXQgPSAkb3B0c3snVCd9IGlmIGRlZmluZWQgJG9wdHN7J1QnfTsKICR3cHNfdGFy Z2V0X3BhcmFtID0gJHdwc190YXJnZXQ7CiAkd19kaXJlY3QgPSAkb3B0c3sndyd9IGlmIGRlZmlu ZWQgJG9wdHN7J3cnfTsKIAotQHdvcmtsb2FkcyA9ICAoJHdfZGlyZWN0ICkgaWYgZGVmaW5lZCAk d19kaXJlY3Q7CitpZiAoJG11bHRpX21vZGUpIHsKKwlkaWUgaWYgJHdfZGlyZWN0OyAjIE5vdCBz dXBwb3J0ZWQKKwlAbXVsdGlfd29ya2xvYWRzID0gQHdvcmtsb2FkczsKK30KKworQHdvcmtsb2Fk cyA9ICgkd19kaXJlY3QpIGlmIGRlZmluZWQgJHdfZGlyZWN0OworCiBzYXkgIldvcmtsb2Fkczoi OwogcHJpbnQgbWFwIHsgIiAgJF9cbiIgfSBAd29ya2xvYWRzOwogcHJpbnQgIkJhbGFuY2Vyczog IjsKQEAgLTM5NiwxMyArNDIxLDE0IEBAIHNheSAiVGFyZ2V0IHdvcmtsb2FkIGR1cmF0aW9uIGlz ICR7Y2xpZW50X3RhcmdldF9zfXMuIjsKIHNheSAiQ2FsaWJyYXRpb24gdG9sZXJhbmNlIGlzICR0 b2xlcmFuY2UuIjsKIHNheSAiUmVhbC10aW1lIG1vZGUgYXQgJHtyZWFsdGltZV90YXJnZXR9IHdw cy4iIGlmICRyZWFsdGltZV90YXJnZXQgPiAwOwogc2F5ICJXcHMgdGFyZ2V0IGlzICR7d3BzX3Rh cmdldH0gd3BzLiIgaWYgJHdwc190YXJnZXQgPiAwOworc2F5ICJNdWx0aS13b3JrbG9hZCBtb2Rl LiIgaWYgJG11bHRpX21vZGU7CiAkbm9wID0gJG9wdHN7J24nfTsKICRub3AgPSBjYWxpYnJhdGVf bm9wKCkgdW5sZXNzICRub3A7CiBzYXkgIk5vcCBjYWxpYnJhdGlvbiBpcyAkbm9wLiI7CiAKIGdv dG8gVkVSSUZZIGlmIGRlZmluZWQgJGJhbGFuY2VyOwogCi1teSAlYmVzdF9iYWw7CitteSAoJWJl c3RfYmFsLCAlYmVzdF9iaWQpOwogbXkgJXJlc3VsdHM7CiBteSAlc2NvcmVzOwogbXkgJXdzY29y ZXM7CkBAIC00MzgsMTMgKzQ2NCwyMiBAQCBzdWIgYWRkX3BvaW50cwogCX0KIH0KIAotZm9yZWFj aCBteSAkd3JrIChAd29ya2xvYWRzKSB7CitteSBAc2F0dXJhdGlvbl93b3JrbG9hZHMgPSAkbXVs dGlfbW9kZSA/IEBtdWx0aV93b3JrbG9hZHMgOiBAd29ya2xvYWRzOworbXkgJWFsbHdwczsKK215 ICR3aWR4ID0gMDsKKworcHVzaCBAc2F0dXJhdGlvbl93b3JrbG9hZHMsICctdyAnIC4gam9pbiAn IC13ICcsIG1hcCgiJHdya19yb290LyRfIiwgQHdvcmtsb2FkcykKKyAgICAgaWYgJG11bHRpX21v ZGU7CisKK2ZvcmVhY2ggbXkgJHdyayAoQHNhdHVyYXRpb25fd29ya2xvYWRzKSB7CiAJbXkgQGFy Z3MgPSAoICItbiAkbm9wIik7CiAJbXkgKCRyLCAkZXJyb3IsICRzaG91bGRfYiwgJGJlc3QpOwog CW15ICgld3BzLCAlY3dwcywgJW13cHMpOwogCW15IEBzb3J0ZWQ7CiAJbXkgJHJhbmdlOwogCisJ JHdfZGlyZWN0ID0gJHdyayBpZiAkbXVsdGlfbW9kZSBhbmQgJHdpZHggPT0gJCNzYXR1cmF0aW9u X3dvcmtsb2FkczsKKwogCSRzaG91bGRfYiA9IDE7CiAJJHNob3VsZF9iID0gY2FuX2JhbGFuY2Vf d29ya2xvYWQoJHdyaykgdW5sZXNzIGRlZmluZWQgJHdfZGlyZWN0OwogCkBAIC00NTksNyArNDk0 LDcgQEAgZm9yZWFjaCBteSAkd3JrIChAd29ya2xvYWRzKSB7CiAJCUdCQUw6IGZvcmVhY2ggbXkg JEcgKCcnLCAnLUcnLCAnLWQnLCAnLUcgLWQnKSB7CiAJCQlmb3JlYWNoIG15ICRIICgnJywgJy1I JykgewogCQkJCW15IEB4YXJnczsKLQkJCQlteSAoJHcsICRjLCAkcyk7CisJCQkJbXkgKCR3LCAk YywgJHMsICRid3dwcyk7CiAJCQkJbXkgJGJpZDsKIAogCQkJCWlmICgkYmFsIG5lICcnKSB7CkBA IC00NzYsMjEgKzUxMSw2NyBAQCBmb3JlYWNoIG15ICR3cmsgKEB3b3JrbG9hZHMpIHsKIAogCQkJ CSR3cHNfdGFyZ2V0ID0gMCBpZiAkd3BzX3RhcmdldF9wYXJhbSA8IDA7CiAKLQkJCQkoJGMsICR3 LCAkcykgPSBmaW5kX3NhdHVyYXRpb25fcG9pbnQoJHdyaywgJHIsCi0JCQkJCQkJCSAgICAgMCwK LQkJCQkJCQkJICAgICAoQGFyZ3MsCi0JCQkJCQkJCSAgICAgIEB4YXJncykpOworCQkJCSgkYywg JHcsICRzLCAkYnd3cHMpID0KKwkJCQkJZmluZF9zYXR1cmF0aW9uX3BvaW50KCR3cmssICRyLCAw LAorCQkJCQkJCSAgICAgIChAYXJncywgQHhhcmdzKSk7CiAKIAkJCQlpZiAoJHdwc190YXJnZXRf cGFyYW0gPCAwKSB7CiAJCQkJCSR3cHNfdGFyZ2V0ID0gJHMgLyAtJHdwc190YXJnZXRfcGFyYW07 CiAKLQkJCQkJKCRjLCAkdywgJHMpID0KKwkJCQkJKCRjLCAkdywgJHMsICRid3dwcykgPQogCQkJ CQkJZmluZF9zYXR1cmF0aW9uX3BvaW50KCR3cmssICRyLAogCQkJCQkJCQkgICAgICAwLAogCQkJ CQkJCQkgICAgICAoQGFyZ3MsCiAJCQkJCQkJCSAgICAgICBAeGFyZ3MpKTsKIAkJCQl9CiAKKwkJ CQlpZiAoJG11bHRpX21vZGUgYW5kICR3X2RpcmVjdCkgeworCQkJCQlteSAkd2lkeDsKKworCQkJ CQlkaWUgdW5sZXNzIHNjYWxhcihAbXVsdGlfd29ya2xvYWRzKSA9PQorCQkJCQkJICAgc2NhbGFy KEB7JGJ3d3BzfSk7CisJCQkJCWRpZSB1bmxlc3Mgc2NhbGFyKEBtdWx0aV93b3JrbG9hZHMpID09 CisJCQkJCQkgICBzY2FsYXIoa2V5cyAlYWxsd3BzKTsKKworCQkJCQkjIFRvdGFsIG9mIGFsbCB3 b3JrbG9hZCB3cHMgZnJvbSB0aGUKKwkJCQkJIyBtaXhlZCBydW4uCisJCQkJCSR3ID0gMDsKKwkJ CQkJZm9yZWFjaCAkd2lkeCAoMC4uJCN7JGJ3d3BzfSkgeworCQkJCQkJJHcgKz0gJGJ3d3BzLT5b JHdpZHhdOworCQkJCQl9CisKKwkJCQkJIyBUb3RhbCBvZiBhbGwgd29ya2xvYWQgd3BzIGZyb20g d2hlbgorCQkJCQkjIHJhbiBpbmRpdmlkdWFsbHkgd2l0aCB0aGUgYmVzdAorCQkJCQkjIGJhbGFu Y2VyLgorCQkJCQlteSAkdG90ID0gMDsKKwkJCQkJZm9yZWFjaCBteSAkd3JrIChAbXVsdGlfd29y a2xvYWRzKSB7CisJCQkJCQkkdG90ICs9ICRhbGx3cHN7JHdya30tPnskYmVzdF9iaWR7JHdya319 OworCQkJCQl9CisKKwkJCQkJIyBOb3JtYWxpemUgbWl4ZWQgc3VtIHdpdGggc3VtIG9mCisJCQkJ CSMgaW5kaXZpZHVhbCBydW5zLgorCQkJCQkkdyAqPSAxMDA7CisJCQkJCSR3IC89ICR0b3Q7CisK KwkJCQkJIyBTZWNvbmQgbWV0cmljIGlzIGF2ZXJhZ2Ugb2YgZWFjaAorCQkJCQkjIHdvcmtsb2Fk IHdwcyBub3JtYWxpemVkIGJ5IHRoZWlyCisJCQkJCSMgaW5kaXZpZHVhbCBydW4gcGVyZm9ybWFu Y2Ugd2l0aCB0aGUKKwkJCQkJIyBiZXN0IGJhbGFuY2VyLgorCQkJCQkkcyA9IDA7CisJCQkJCSR3 aWR4ID0gMDsKKwkJCQkJZm9yZWFjaCBteSAkd3JrIChAbXVsdGlfd29ya2xvYWRzKSB7CisJCQkJ CQkkcyArPSAxMDAgKiAkYnd3cHMtPlskd2lkeF0gLworCQkJCQkJICAgICAgJGFsbHdwc3skd3Jr fS0+eyRiZXN0X2JpZHskd3JrfX07CisJCQkJCQkkd2lkeCsrOworCQkJCQl9CisJCQkJCSRzIC89 IHNjYWxhcihAbXVsdGlfd29ya2xvYWRzKTsKKworCQkJCQlzYXkgc3ByaW50ZignQWdncmVnYXRl IChub3JtYWxpemVkKSAlLjJmJSU7IGZhaXJuZXNzICUuMmYlJScsCisJCQkJCQkgICAgJHcsICRz KTsKKwkJCQl9IGVsc2UgeworCQkJCQkkYWxsd3BzeyR3cmt9ID0gXCV3cHM7CisJCQkJfQorCiAJ CQkJJHdwc3skYmlkfSA9ICR3OwogCQkJCSRjd3BzeyRiaWR9ID0gJHM7CiAKQEAgLTUwMCw3ICs1 ODEsOCBAQCBmb3JlYWNoIG15ICR3cmsgKEB3b3JrbG9hZHMpIHsKIAkJCQkJJG13cHN7JGJpZH0g PSAkdyArICRzOwogCQkJCX0KIAotCQkJCXNheSAiJGMgY2xpZW50cyAoJHcgd3BzLCAkcyB3cHMg c2luZ2xlIGNsaWVudCwgc2NvcmU9JG13cHN7JGJpZH0pLiI7CisJCQkJc2F5ICIkYyBjbGllbnRz ICgkdyB3cHMsICRzIHdwcyBzaW5nbGUgY2xpZW50LCBzY29yZT0kbXdwc3skYmlkfSkuIgorCQkJ CSAgICB1bmxlc3MgJG11bHRpX21vZGUgYW5kICR3X2RpcmVjdDsKIAogCQkJCWxhc3QgQkFMIHVu bGVzcyAkc2hvdWxkX2I7CiAJCQkJbmV4dCBCQUwgaWYgJGJhbCBlcSAnJzsKQEAgLTUwOSwxOSAr NTkxLDI0IEBAIGZvcmVhY2ggbXkgJHdyayAoQHdvcmtsb2FkcykgewogCQl9CiAJfQogCisJJHdp ZHgrKzsKKwogCUBzb3J0ZWQgPSBzb3J0IHsgJG13cHN7JGJ9IDw9PiAkbXdwc3skYX0gfSBrZXlz ICVtd3BzOwotCSRiZXN0ID0gJHNvcnRlZFswXTsKKwkkYmVzdF9iaWR7JHdya30gPSAkc29ydGVk WzBdOwogCUBzb3J0ZWQgPSBzb3J0IHsgJGIgPD0+ICRhIH0gdmFsdWVzICVtd3BzOwogCSRyYW5n ZSA9IDEgLSAkc29ydGVkWy0xXSAvICRzb3J0ZWRbMF07CiAJJGJlc3RfYmFseyR3cmt9ID0gJHNv cnRlZFswXTsKLQlzYXkgIiAgQmVzdCBiYWxhbmNlciBpcyAnJGJlc3QnIChyYW5nZT0kcmFuZ2Up LiI7CisKKwluZXh0IGlmICRtdWx0aV9tb2RlIGFuZCBub3QgJHdfZGlyZWN0OworCisJc2F5ICIg IEJlc3QgYmFsYW5jZXIgaXMgJyRiZXN0X2JpZHskd3JrfScgKHJhbmdlPSRyYW5nZSkuIjsKIAog CiAJJHJlc3VsdHN7JHdya30gPSBcJW13cHM7CiAKIAlhZGRfcG9pbnRzKFwld3BzLCBcJXNjb3Jl cywgXCV3c2NvcmVzKTsKLQlhZGRfcG9pbnRzKFwlY3dwcywgXCVjc2NvcmVzLCBcJWN3c2NvcmVz KTsKIAlhZGRfcG9pbnRzKFwlbXdwcywgXCVtc2NvcmVzLCBcJW13c2NvcmVzKTsKKwlhZGRfcG9p bnRzKFwlY3dwcywgXCVjc2NvcmVzLCBcJWN3c2NvcmVzKTsKIH0KIAogc3ViIGR1bXBfc2NvcmVi b2FyZApAQCAtNTUyLDEyICs2MzksMTIgQEAgc3ViIGR1bXBfc2NvcmVib2FyZAogCXJldHVybiAk YmFsYW5jZXI7CiB9CiAKLWR1bXBfc2NvcmVib2FyZCgnVG90YWwgd3BzJywgXCVzY29yZXMpOwot ZHVtcF9zY29yZWJvYXJkKCdUb3RhbCB3ZWlnaHRlZCB3cHMnLCBcJXdzY29yZXMpOwotZHVtcF9z Y29yZWJvYXJkKCdQZXIgY2xpZW50IHdwcycsIFwlY3Njb3Jlcyk7Ci1kdW1wX3Njb3JlYm9hcmQo J1BlciBjbGllbnQgd2VpZ2h0ZWQgd3BzJywgXCVjd3Njb3Jlcyk7Ci1kdW1wX3Njb3JlYm9hcmQo J0NvbWJpbmVkIHdwcycsIFwlbXNjb3Jlcyk7Ci0kYmFsYW5jZXIgPSBkdW1wX3Njb3JlYm9hcmQo J0NvbWJpbmVkIHdlaWdodGVkIHdwcycsIFwlbXdzY29yZXMpOworZHVtcF9zY29yZWJvYXJkKCRt dWx0aV9tb2RlID8gJ1Rocm91Z2hwdXQnIDogJ1RvdGFsIHdwcycsIFwlc2NvcmVzKTsKK2R1bXBf c2NvcmVib2FyZCgnVG90YWwgd2VpZ2h0ZWQgd3BzJywgXCV3c2NvcmVzKSB1bmxlc3MgJG11bHRp X21vZGU7CitkdW1wX3Njb3JlYm9hcmQoJG11bHRpX21vZGUgPyAnRmFpcm5lc3MnIDogJ1BlciBj bGllbnQgd3BzJywgXCVjc2NvcmVzKTsKK2R1bXBfc2NvcmVib2FyZCgnUGVyIGNsaWVudCB3ZWln aHRlZCB3cHMnLCBcJWN3c2NvcmVzKSB1bmxlc3MgJG11bHRpX21vZGU7CiskYmFsYW5jZXIgPSBk dW1wX3Njb3JlYm9hcmQoJG11bHRpX21vZGUgPyAnQ29tYmluZWQnIDogJ0NvbWJpbmVkIHdwcycs IFwlbXNjb3Jlcyk7CiskYmFsYW5jZXIgPSBkdW1wX3Njb3JlYm9hcmQoJ0NvbWJpbmVkIHdlaWdo dGVkIHdwcycsIFwlbXdzY29yZXMpIHVubGVzcyAkbXVsdGlfbW9kZTsKIAogVkVSSUZZOgogCkBA IC01NjgsNiArNjU1LDExIEBAIGRpZSB1bmxlc3MgZGVmaW5lZCAkYmFsYW5jZXI7CiBzYXkgIlxu QmFsYW5jZXIgaXMgJyRiYWxhbmNlcicuIjsKIHNheSAiSWRsZW5lc3MgdG9sZXJhbmNlIGlzICRp ZGxlX3RvbGVyYW5jZV9wY3QlLiI7CiAKK2lmICgkbXVsdGlfbW9kZSkgeworCSR3X2RpcmVjdCA9 ICctdyAnIC4gam9pbiAnIC13ICcsIG1hcCgiJHdya19yb290LyRfIiwgQHdvcmtsb2Fkcyk7CisJ QHdvcmtsb2FkcyA9ICgkd19kaXJlY3QpOworfQorCiBmb3JlYWNoIG15ICR3cmsgKEB3b3JrbG9h ZHMpIHsKIAlteSBAYXJncyA9ICggIi1uICRub3AiICk7CiAJbXkgKCRyLCAkZXJyb3IsICRjLCAk d3BzLCAkc3dwcyk7Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=