From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH for-next v2 v2 3/5] pygrub: convert python scripts to work with 2.6 and up Date: Wed, 6 Mar 2019 17:52:08 +0000 Message-ID: <20190306175210.28145-4-wei.liu2@citrix.com> References: <20190306175210.28145-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h1aiR-0000Xa-W2 for xen-devel@lists.xenproject.org; Wed, 06 Mar 2019 17:52:28 +0000 In-Reply-To: <20190306175210.28145-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: George Dunlap , Anthony PERARD , Wei Liu , Ian Jackson , Andrew Cooper List-Id: xen-devel@lists.xenproject.org UnVuIDJ0bzMgYW5kIHBpY2sgdGhlIHNlbnNpYmxlIHN1Z2dlc3Rpb25zLgoKU2lnbmVkLW9mZi1i eTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiB0b29scy9weWdydWIvc3JjL0V4 dExpbnV4Q29uZi5weSB8IDE1ICsrKysrKysrLS0tLS0tLQogdG9vbHMvcHlncnViL3NyYy9HcnVi Q29uZi5weSAgICAgfCAzNiArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIHRv b2xzL3B5Z3J1Yi9zcmMvTGlsb0NvbmYucHkgICAgIHwgMTUgKysrKysrKystLS0tLS0tCiAzIGZp bGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3Rvb2xzL3B5Z3J1Yi9zcmMvRXh0TGludXhDb25mLnB5IGIvdG9vbHMvcHlncnViL3NyYy9F eHRMaW51eENvbmYucHkKaW5kZXggZDE3ODliZjAyMC4uYjg0YmJmODQ1NCAxMDA2NDQKLS0tIGEv dG9vbHMvcHlncnViL3NyYy9FeHRMaW51eENvbmYucHkKKysrIGIvdG9vbHMvcHlncnViL3NyYy9F eHRMaW51eENvbmYucHkKQEAgLTMyLDcgKzMyLDggQEAgY2xhc3MgRXh0TGludXhJbWFnZShvYmpl Y3QpOgogICAgICAgICBzZWxmLmxpbmVzID0gW10KICAgICAgICAgc2VsZi5wYXRoID0gcGF0aAog ICAgICAgICBzZWxmLnJvb3QgPSAiIgotICAgICAgICBtYXAoc2VsZi5zZXRfZnJvbV9saW5lLCBs aW5lcykKKyAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6CisgICAgICAgICAgICBzZWxmLnNldF9m cm9tX2xpbmUobGluZSkKIAogICAgIGRlZiBzZXRfZnJvbV9saW5lKHNlbGYsIGxpbmUsIHJlcGxh Y2UgPSBOb25lKToKICAgICAgICAgKGNvbSwgYXJnKSA9IEdydWJDb25mLmdydWJfZXhhY3Rfc3Bs aXQobGluZSwgMikKQEAgLTY3LDcgKzY4LDcgQEAgY2xhc3MgRXh0TGludXhJbWFnZShvYmplY3Qp OgogICAgICAgICAgICAgICAgICAgICAgICAgc2V0YXR0cihzZWxmLCAiaW5pdHJkIiwgYS5yZXBs YWNlKCJpbml0cmQ9IiwgIiIpKQogICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJnLnJl cGxhY2UoYSwgIiIpCiAKLSAgICAgICAgaWYgY29tIGlzIG5vdCBOb25lIGFuZCBzZWxmLmNvbW1h bmRzLmhhc19rZXkoY29tKToKKyAgICAgICAgaWYgY29tIGlzIG5vdCBOb25lIGFuZCBjb20gaW4g c2VsZi5jb21tYW5kczoKICAgICAgICAgICAgIGlmIHNlbGYuY29tbWFuZHNbY29tXSBpcyBub3Qg Tm9uZToKICAgICAgICAgICAgICAgICBzZXRhdHRyKHNlbGYsIHNlbGYuY29tbWFuZHNbY29tXSwg cmUuc3ViKCdeIiguKykiJCcsIHIiXDEiLCBhcmcuc3RyaXAoKSkpCiAgICAgICAgICAgICBlbHNl OgpAQCAtMTM2LDcgKzEzNyw3IEBAIGNsYXNzIEV4dExpbnV4Q29uZmlnRmlsZShvYmplY3QpOgog ICAgIGRlZiBwYXJzZShzZWxmLCBidWYgPSBOb25lKToKICAgICAgICAgaWYgYnVmIGlzIE5vbmU6 CiAgICAgICAgICAgICBpZiBzZWxmLmZpbGVuYW1lIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAg cmFpc2UgVmFsdWVFcnJvciwgIk5vIGNvbmZpZyBmaWxlIGRlZmluZWQgdG8gcGFyc2UhIgorICAg ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIGNvbmZpZyBmaWxlIGRlZmluZWQgdG8g cGFyc2UhIikKIAogICAgICAgICAgICAgZiA9IG9wZW4oc2VsZi5maWxlbmFtZSwgJ3InKQogICAg ICAgICAgICAgbGluZXMgPSBmLnJlYWRsaW5lcygpCkBAIC0xNjcsNyArMTY4LDcgQEAgY2xhc3Mg RXh0TGludXhDb25maWdGaWxlKG9iamVjdCk6CiAKICAgICAgICAgICAgIChjb20sIGFyZykgPSBH cnViQ29uZi5ncnViX2V4YWN0X3NwbGl0KGwsIDIpCiAgICAgICAgICAgICBjb20gPSBjb20ubG93 ZXIoKQotICAgICAgICAgICAgaWYgc2VsZi5jb21tYW5kcy5oYXNfa2V5KGNvbSk6CisgICAgICAg ICAgICBpZiBjb20gaW4gc2VsZi5jb21tYW5kczoKICAgICAgICAgICAgICAgICBpZiBzZWxmLmNv bW1hbmRzW2NvbV0gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIHNldGF0dHIoc2Vs Ziwgc2VsZi5jb21tYW5kc1tjb21dLCBhcmcuc3RyaXAoKSkKICAgICAgICAgICAgICAgICBlbHNl OgpAQCAtMjA3LDggKzIwOCw4IEBAIGNsYXNzIEV4dExpbnV4Q29uZmlnRmlsZShvYmplY3QpOgog ICAgICAgICAKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICAgaWYgbGVuKHN5cy5hcmd2 KSA8IDI6Ci0gICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvciwgIk5lZWQgYSBjb25maWd1cmF0aW9u IGZpbGUgdG8gcmVhZCIKKyAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJOZWVkIGEgY29uZmln dXJhdGlvbiBmaWxlIHRvIHJlYWQiKQogICAgIGcgPSBFeHRMaW51eENvbmZpZ0ZpbGUoc3lzLmFy Z3ZbMV0pCiAgICAgZm9yIGkgaW4gZy5pbWFnZXM6Ci0gICAgICAgIHByaW50IGkKLSAgICBwcmlu dCBnLmRlZmF1bHQKKyAgICAgICAgcHJpbnQoaSkKKyAgICBwcmludChnLmRlZmF1bHQpCmRpZmYg LS1naXQgYS90b29scy9weWdydWIvc3JjL0dydWJDb25mLnB5IGIvdG9vbHMvcHlncnViL3NyYy9H cnViQ29uZi5weQppbmRleCBkYzgxMGQ1NWNiLi45NzkxM2YzOTkzIDEwMDY0NAotLS0gYS90b29s cy9weWdydWIvc3JjL0dydWJDb25mLnB5CisrKyBiL3Rvb2xzL3B5Z3J1Yi9zcmMvR3J1YkNvbmYu cHkKQEAgLTQ0LDcgKzQ0LDcgQEAgZGVmIGdldF9wYXRoKHMpOgogICAgICAgICByZXR1cm4gKE5v bmUsIHMpCiAgICAgaWR4ID0gcy5maW5kKCcpJykKICAgICBpZiBpZHggPT0gLTE6Ci0gICAgICAg IHJhaXNlIFZhbHVlRXJyb3IsICJVbmFibGUgdG8gZmluZCBtYXRjaGluZyAnKSciCisgICAgICAg IHJhaXNlIFZhbHVlRXJyb3IoIlVuYWJsZSB0byBmaW5kIG1hdGNoaW5nICcpJyIpCiAgICAgZCA9 IHNbOmlkeF0KICAgICByZXR1cm4gKEdydWJEaXNrUGFydChkKSwgc1tpZHggKyAxOl0pCiAKQEAg LTEwMCw3ICsxMDAsNyBAQCBjbGFzcyBfR3J1YkltYWdlKG9iamVjdCk6CiAgICAgICAgICAgICAg ICAgIiAgaW5pdHJkOiAlc1xuIiAlKHNlbGYudGl0bGUsIHNlbGYucm9vdCwgc2VsZi5rZXJuZWws CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXJncywgc2VsZi5pbml0 cmQpKQogICAgIGRlZiBfcGFyc2Uoc2VsZiwgbGluZXMpOgotICAgICAgICBtYXAoc2VsZi5zZXRf ZnJvbV9saW5lLCBsaW5lcykKKyAgICAgICAgbGlzdChtYXAoc2VsZi5zZXRfZnJvbV9saW5lLCBs aW5lcykpCiAKICAgICBkZWYgcmVzZXQoc2VsZiwgbGluZXMpOgogICAgICAgICBzZWxmLl9yb290 ID0gc2VsZi5faW5pdHJkID0gc2VsZi5fa2VybmVsID0gc2VsZi5fYXJncyA9IE5vbmUKQEAgLTE0 MSw3ICsxNDEsNyBAQCBjbGFzcyBHcnViSW1hZ2UoX0dydWJJbWFnZSk6CiAgICAgZGVmIHNldF9m cm9tX2xpbmUoc2VsZiwgbGluZSwgcmVwbGFjZSA9IE5vbmUpOgogICAgICAgICAoY29tLCBhcmcp ID0gZ3J1Yl9leGFjdF9zcGxpdChsaW5lLCAyKQogCi0gICAgICAgIGlmIHNlbGYuY29tbWFuZHMu aGFzX2tleShjb20pOgorICAgICAgICBpZiBjb20gaW4gc2VsZi5jb21tYW5kczoKICAgICAgICAg ICAgIGlmIHNlbGYuY29tbWFuZHNbY29tXSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICBz ZXRhdHRyKHNlbGYsIHNlbGYuY29tbWFuZHNbY29tXSwgYXJnLnN0cmlwKCkpCiAgICAgICAgICAg ICBlbHNlOgpAQCAtMTc3LDcgKzE3Nyw3IEBAIGNsYXNzIF9HcnViQ29uZmlnRmlsZShvYmplY3Qp OgogICAgICAgICAgICAgc2VsZi5wYXJzZSgpCiAKICAgICBkZWYgcGFyc2Uoc2VsZiwgYnVmID0g Tm9uZSk6Ci0gICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvciwgInVuaW1wbGVtZW50ZWQgcGFyc2Ug ZnVuY3Rpb24iICAgCisgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigidW5pbXBsZW1lbnRlZCBw YXJzZSBmdW5jdGlvbiIpCiAKICAgICBkZWYgaGFzUGFzc3dvcmRBY2Nlc3Moc2VsZik6CiAgICAg ICAgIHJldHVybiBzZWxmLnBhc3N3b3JkQWNjZXNzCkBAIC0yMDEsNyArMjAxLDcgQEAgY2xhc3Mg X0dydWJDb25maWdGaWxlKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgaW1wb3J0IGNyeXB0CiAg ICAgICAgICAgICAgICAgaWYgY3J5cHQuY3J5cHQocGFzc3dvcmQsIHB3ZFsxXSkgPT0gcHdkWzFd OgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICAgICAgZXhjZXB0IEV4 Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAg ICAgICAgICBzZWxmLnBhc3NFeGMgPSAiQ2FuJ3QgdmVyaWZ5IHBhc3N3b3JkOiAlcyIgJSBzdHIo ZSkKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIApAQCAtMjEzLDcgKzIxMyw3IEBAIGNs YXNzIF9HcnViQ29uZmlnRmlsZShvYmplY3QpOgogCiAgICAgZGVmIHNldChzZWxmLCBsaW5lKToK ICAgICAgICAgKGNvbSwgYXJnKSA9IGdydWJfZXhhY3Rfc3BsaXQobGluZSwgMikKLSAgICAgICAg aWYgc2VsZi5jb21tYW5kcy5oYXNfa2V5KGNvbSk6CisgICAgICAgIGlmIGNvbSBpbiBzZWxmLmNv bW1hbmRzOgogICAgICAgICAgICAgaWYgc2VsZi5jb21tYW5kc1tjb21dIGlzIG5vdCBOb25lOgog ICAgICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgc2VsZi5jb21tYW5kc1tjb21dLCBhcmcuc3Ry aXAoKSkKICAgICAgICAgICAgIGVsc2U6CkBAIC0yMzMsNyArMjMzLDcgQEAgY2xhc3MgX0dydWJD b25maWdGaWxlKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9kZWZhdWx0ID0gdmFsCiAKICAg ICAgICAgaWYgc2VsZi5fZGVmYXVsdCA8IDA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y LCAiZGVmYXVsdCBtdXN0IGJlIHBvc2l0aXZlIG51bWJlciIKKyAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoImRlZmF1bHQgbXVzdCBiZSBwb3NpdGl2ZSBudW1iZXIiKQogICAgIGRlZmF1bHQg PSBwcm9wZXJ0eShfZ2V0X2RlZmF1bHQsIF9zZXRfZGVmYXVsdCkKIAogICAgIGRlZiBzZXRfc3Bs YXNoKHNlbGYsIHZhbCk6CkBAIC0yNjUsNyArMjY1LDcgQEAgY2xhc3MgR3J1YkNvbmZpZ0ZpbGUo X0dydWJDb25maWdGaWxlKToKICAgICBkZWYgcGFyc2Uoc2VsZiwgYnVmID0gTm9uZSk6CiAgICAg ICAgIGlmIGJ1ZiBpcyBOb25lOgogICAgICAgICAgICAgaWYgc2VsZi5maWxlbmFtZSBpcyBOb25l OgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IsICJObyBjb25maWcgZmlsZSBkZWZp bmVkIHRvIHBhcnNlISIKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBjb25m aWcgZmlsZSBkZWZpbmVkIHRvIHBhcnNlISIpCiAKICAgICAgICAgICAgIGYgPSBvcGVuKHNlbGYu ZmlsZW5hbWUsICdyJykKICAgICAgICAgICAgIGxpbmVzID0gZi5yZWFkbGluZXMoKQpAQCAtMjk2 LDcgKzI5Niw3IEBAIGNsYXNzIEdydWJDb25maWdGaWxlKF9HcnViQ29uZmlnRmlsZSk6CiAgICAg ICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICAgICAgKGNvbSwgYXJnKSA9IGdydWJfZXhh Y3Rfc3BsaXQobCwgMikKLSAgICAgICAgICAgIGlmIHNlbGYuY29tbWFuZHMuaGFzX2tleShjb20p OgorICAgICAgICAgICAgaWYgY29tIGluIHNlbGYuY29tbWFuZHM6CiAgICAgICAgICAgICAgICAg aWYgc2VsZi5jb21tYW5kc1tjb21dIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICAgICBz ZXRhdHRyKHNlbGYsIHNlbGYuY29tbWFuZHNbY29tXSwgYXJnLnN0cmlwKCkpCiAgICAgICAgICAg ICAgICAgZWxzZToKQEAgLTMyOCw3ICszMjgsNyBAQCBjbGFzcyBHcnViMkltYWdlKF9HcnViSW1h Z2UpOgogICAgICAgICBpZiBjb20gPT0gInNldCI6CiAgICAgICAgICAgICAoY29tLGFyZykgPSBn cnViMl9oYW5kbGVfc2V0KGFyZykKICAgICAgICAgICAgIAotICAgICAgICBpZiBzZWxmLmNvbW1h bmRzLmhhc19rZXkoY29tKToKKyAgICAgICAgaWYgY29tIGluIHNlbGYuY29tbWFuZHM6CiAgICAg ICAgICAgICBpZiBzZWxmLmNvbW1hbmRzW2NvbV0gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAg ICAgc2V0YXR0cihzZWxmLCBzZWxmLmNvbW1hbmRzW2NvbV0sIGFyZy5zdHJpcCgpKQogICAgICAg ICAgICAgZWxzZToKQEAgLTM2NCw3ICszNjQsNyBAQCBjbGFzcyBHcnViMkNvbmZpZ0ZpbGUoX0dy dWJDb25maWdGaWxlKToKICAgICBkZWYgcGFyc2Uoc2VsZiwgYnVmID0gTm9uZSk6CiAgICAgICAg IGlmIGJ1ZiBpcyBOb25lOgogICAgICAgICAgICAgaWYgc2VsZi5maWxlbmFtZSBpcyBOb25lOgot ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IsICJObyBjb25maWcgZmlsZSBkZWZpbmVk IHRvIHBhcnNlISIKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJObyBjb25maWcg ZmlsZSBkZWZpbmVkIHRvIHBhcnNlISIpCiAKICAgICAgICAgICAgIGYgPSBvcGVuKHNlbGYuZmls ZW5hbWUsICdyJykKICAgICAgICAgICAgIGxpbmVzID0gZi5yZWFkbGluZXMoKQpAQCAtMzk4LDcg KzM5OCw3IEBAIGNsYXNzIEdydWIyQ29uZmlnRmlsZShfR3J1YkNvbmZpZ0ZpbGUpOgogICAgICAg ICAgICAgdGl0bGVfbWF0Y2ggPSByZS5tYXRjaCgnXm1lbnVlbnRyeSBbIlwnXSguKj8pWyJcJ10g KC4qKXsnLCBsKQogICAgICAgICAgICAgaWYgdGl0bGVfbWF0Y2g6CiAgICAgICAgICAgICAgICAg aWYgaW1nIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJy b3IsICJzeW50YXggZXJyb3I6IGNhbm5vdCBuZXN0IG1lbnVlbnRyeSAoJWQgJXMpIiAlIChsZW4o aW1nKSxpbWcpCisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigic3ludGF4 IGVycm9yOiBjYW5ub3QgbmVzdCBtZW51ZW50cnkgKCVkICVzKSIgJSAobGVuKGltZyksaW1nKSkK ICAgICAgICAgICAgICAgICBpbWcgPSBbXQogICAgICAgICAgICAgICAgIHRpdGxlID0gdGl0bGVf bWF0Y2guZ3JvdXAoMSkKICAgICAgICAgICAgICAgICBjb250aW51ZQpAQCAtNDEzLDcgKzQxMyw3 IEBAIGNsYXNzIEdydWIyQ29uZmlnRmlsZShfR3J1YkNvbmZpZ0ZpbGUpOgogICAgICAgICAgICAg ICAgICAgICAgICAgbWVudV9sZXZlbCAtPSAxCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250 aW51ZQogICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAg cmFpc2UgUnVudGltZUVycm9yLCAic3ludGF4IGVycm9yOiBjbG9zaW5nIGJyYWNlIHdpdGhvdXQg bWVudWVudHJ5IgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJz eW50YXggZXJyb3I6IGNsb3NpbmcgYnJhY2Ugd2l0aG91dCBtZW51ZW50cnkiKQogCiAgICAgICAg ICAgICAgICAgc2VsZi5hZGRfaW1hZ2UoR3J1YjJJbWFnZSh0aXRsZSwgaW1nKSkKICAgICAgICAg ICAgICAgICBpbWcgPSBOb25lCkBAIC00MjgsNyArNDI4LDcgQEAgY2xhc3MgR3J1YjJDb25maWdG aWxlKF9HcnViQ29uZmlnRmlsZSk6CiAgICAgICAgICAgICBpZiBjb20gPT0gInNldCI6CiAgICAg ICAgICAgICAgICAgKGNvbSxhcmcpID0gZ3J1YjJfaGFuZGxlX3NldChhcmcpCiAgICAgICAgICAg ICAgICAgCi0gICAgICAgICAgICBpZiBzZWxmLmNvbW1hbmRzLmhhc19rZXkoY29tKToKKyAgICAg ICAgICAgIGlmIGNvbSBpbiBzZWxmLmNvbW1hbmRzOgogICAgICAgICAgICAgICAgIGlmIHNlbGYu Y29tbWFuZHNbY29tXSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICAgICAgYXJnX3N0cmlw ID0gYXJnLnN0cmlwKCkKICAgICAgICAgICAgICAgICAgICAgaWYgYXJnX3N0cmlwID09ICIke3Nh dmVkX2VudHJ5fSIgb3IgYXJnX3N0cmlwID09ICIke25leHRfZW50cnl9IjoKQEAgLTQ0Myw3ICs0 NDMsNyBAQCBjbGFzcyBHcnViMkNvbmZpZ0ZpbGUoX0dydWJDb25maWdGaWxlKToKICAgICAgICAg ICAgICAgICBsb2dnaW5nLndhcm5pbmcoIlVua25vd24gZGlyZWN0aXZlICVzIiAlKGNvbSwpKQog ICAgICAgICAgICAgCiAgICAgICAgIGlmIGltZyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJh aXNlIFJ1bnRpbWVFcnJvciwgInN5bnRheCBlcnJvcjogZW5kIG9mIGZpbGUgd2l0aCBvcGVuIG1l bnVlbnRyeSglZCAlcykiICUgKGxlbihpbWcpLGltZykKKyAgICAgICAgICAgIHJhaXNlIFJ1bnRp bWVFcnJvcigic3ludGF4IGVycm9yOiBlbmQgb2YgZmlsZSB3aXRoIG9wZW4gbWVudWVudHJ5KCVk ICVzKSIgJSAobGVuKGltZyksaW1nKSkKIAogICAgICAgICBpZiBzZWxmLmhhc1Bhc3N3b3JkKCk6 CiAgICAgICAgICAgICBzZWxmLnNldFBhc3N3b3JkQWNjZXNzKEZhbHNlKQpAQCAtNDYyLDEyICs0 NjIsMTIgQEAgY2xhc3MgR3J1YjJDb25maWdGaWxlKF9HcnViQ29uZmlnRmlsZSk6CiAgICAgICAg IAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgICBpZiBsZW4oc3lzLmFyZ3YpIDwgMzoK LSAgICAgICAgcmFpc2UgUnVudGltZUVycm9yLCAiTmVlZCBhIGdydWIgdmVyc2lvbiAoXCJncnVi XCIgb3IgXCJncnViMlwiKSBhbmQgYSBncnViLmNvbmYgb3IgZ3J1Yi5jZmcgdG8gcmVhZCIKKyAg ICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJOZWVkIGEgZ3J1YiB2ZXJzaW9uIChcImdydWJcIiBv ciBcImdydWIyXCIpIGFuZCBhIGdydWIuY29uZiBvciBncnViLmNmZyB0byByZWFkIikKICAgICBp ZiBzeXMuYXJndlsxXSA9PSAiZ3J1YiI6CiAgICAgICAgIGcgPSBHcnViQ29uZmlnRmlsZShzeXMu YXJndlsyXSkKICAgICBlbGlmIHN5cy5hcmd2WzFdID09ICJncnViMiI6CiAgICAgICAgIGcgPSBH cnViMkNvbmZpZ0ZpbGUoc3lzLmFyZ3ZbMl0pCiAgICAgZWxzZToKLSAgICAgICAgcmFpc2UgUnVu dGltZUVycm9yLCAiVW5rbm93biBjb25maWcgdHlwZSAlcyIgJSBzeXMuYXJndlsxXQorICAgICAg ICByYWlzZSBSdW50aW1lRXJyb3IoIlVua25vd24gY29uZmlnIHR5cGUgJXMiICUgc3lzLmFyZ3Zb MV0pCiAgICAgZm9yIGkgaW4gZy5pbWFnZXM6Ci0gICAgICAgIHByaW50IGkgIywgaS50aXRsZSwg aS5yb290LCBpLmtlcm5lbCwgaS5hcmdzLCBpLmluaXRyZAorICAgICAgICBwcmludChpKSAjLCBp LnRpdGxlLCBpLnJvb3QsIGkua2VybmVsLCBpLmFyZ3MsIGkuaW5pdHJkCmRpZmYgLS1naXQgYS90 b29scy9weWdydWIvc3JjL0xpbG9Db25mLnB5IGIvdG9vbHMvcHlncnViL3NyYy9MaWxvQ29uZi5w eQppbmRleCAyY2I2NDlmMTE1Li5mNGQyNjczN2Y1IDEwMDY0NAotLS0gYS90b29scy9weWdydWIv c3JjL0xpbG9Db25mLnB5CisrKyBiL3Rvb2xzL3B5Z3J1Yi9zcmMvTGlsb0NvbmYucHkKQEAgLTI0 LDEyICsyNCwxMyBAQCBjbGFzcyBMaWxvSW1hZ2Uob2JqZWN0KToKICAgICAgICAgc2VsZi5saW5l cyA9IFtdCiAgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKICAgICAgICAgc2VsZi5yb290ID0gIiIK LSAgICAgICAgbWFwKHNlbGYuc2V0X2Zyb21fbGluZSwgbGluZXMpCisgICAgICAgIGZvciBsaW5l IGluIGxpbmVzOgorICAgICAgICAgICAgc2VsZi5zZXRfZnJvbV9saW5lKGxpbmUpCiAKICAgICBk ZWYgc2V0X2Zyb21fbGluZShzZWxmLCBsaW5lLCByZXBsYWNlID0gTm9uZSk6CiAgICAgICAgIChj b20sIGFyZykgPSBHcnViQ29uZi5ncnViX2V4YWN0X3NwbGl0KGxpbmUsIDIpCiAKLSAgICAgICAg aWYgc2VsZi5jb21tYW5kcy5oYXNfa2V5KGNvbSk6CisgICAgICAgIGlmIGNvbSBpbiBzZWxmLmNv bW1hbmRzOgogICAgICAgICAgICAgaWYgc2VsZi5jb21tYW5kc1tjb21dIGlzIG5vdCBOb25lOgog ICAgICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgc2VsZi5jb21tYW5kc1tjb21dLCByZS5zdWIo J14iKC4rKSIkJywgciJcMSIsIGFyZy5zdHJpcCgpKSkKICAgICAgICAgICAgIGVsc2U6CkBAIC05 Nyw3ICs5OCw3IEBAIGNsYXNzIExpbG9Db25maWdGaWxlKG9iamVjdCk6CiAgICAgZGVmIHBhcnNl KHNlbGYsIGJ1ZiA9IE5vbmUpOgogICAgICAgICBpZiBidWYgaXMgTm9uZToKICAgICAgICAgICAg IGlmIHNlbGYuZmlsZW5hbWUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy cm9yLCAiTm8gY29uZmlnIGZpbGUgZGVmaW5lZCB0byBwYXJzZSEiCisgICAgICAgICAgICAgICAg cmFpc2UgVmFsdWVFcnJvcigiTm8gY29uZmlnIGZpbGUgZGVmaW5lZCB0byBwYXJzZSEiKQogCiAg ICAgICAgICAgICBmID0gb3BlbihzZWxmLmZpbGVuYW1lLCAncicpCiAgICAgICAgICAgICBsaW5l cyA9IGYucmVhZGxpbmVzKCkKQEAgLTEyNyw3ICsxMjgsNyBAQCBjbGFzcyBMaWxvQ29uZmlnRmls ZShvYmplY3QpOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAKICAgICAgICAgICAgIChjb20s IGFyZykgPSBHcnViQ29uZi5ncnViX2V4YWN0X3NwbGl0KGwsIDIpCi0gICAgICAgICAgICBpZiBz ZWxmLmNvbW1hbmRzLmhhc19rZXkoY29tKToKKyAgICAgICAgICAgIGlmIGNvbSBpbiBzZWxmLmNv bW1hbmRzOgogICAgICAgICAgICAgICAgIGlmIHNlbGYuY29tbWFuZHNbY29tXSBpcyBub3QgTm9u ZToKICAgICAgICAgICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBzZWxmLmNvbW1hbmRzW2NvbV0s IGFyZy5zdHJpcCgpKQogICAgICAgICAgICAgICAgIGVsc2U6CkBAIC0xNzAsOCArMTcxLDggQEAg Y2xhc3MgTGlsb0NvbmZpZ0ZpbGUob2JqZWN0KToKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9f IjoKICAgICBpZiBsZW4oc3lzLmFyZ3YpIDwgMjoKLSAgICAgICAgcmFpc2UgUnVudGltZUVycm9y LCAiTmVlZCBhIGxpbG8uY29uZiB0byByZWFkIgorICAgICAgICByYWlzZSBSdW50aW1lRXJyb3Io Ik5lZWQgYSBsaWxvLmNvbmYgdG8gcmVhZCIpCiAgICAgZyA9IExpbG9Db25maWdGaWxlKHN5cy5h cmd2WzFdKQogICAgIGZvciBpIGluIGcuaW1hZ2VzOgotICAgICAgICBwcmludCBpICMsIGkudGl0 bGUsIGkucm9vdCwgaS5rZXJuZWwsIGkuYXJncywgaS5pbml0cmQKLSAgICBwcmludCBnLmRlZmF1 bHQKKyAgICAgICAgcHJpbnQoaSkgIywgaS50aXRsZSwgaS5yb290LCBpLmtlcm5lbCwgaS5hcmdz LCBpLmluaXRyZAorICAgIHByaW50KGcuZGVmYXVsdCkKLS0gCjIuMTEuMAoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=