ZGlmZiAtLWdpdCBhL21ha28vZXh0L2V4dHJhY3QucHkgYi9tYWtvL2V4dC9leHRyYWN0LnB5CmluZGV4IDMxM2MwODguLjhkZDJlOTYgMTAwNjQ0Ci0tLSBhL21ha28vZXh0L2V4dHJhY3QucHkKKysrIGIvbWFrby9leHQvZXh0cmFjdC5weQpAQCAtMTYsNiArMTYsNyBAQAogICAgIGRlZiBleHRyYWN0X25vZGVzKHNlbGYsIG5vZGVzKToKICAgICAgICAgdHJhbnNsYXRvcl9jb21tZW50cyA9IFtdCiAgICAgICAgIGluX3RyYW5zbGF0b3JfY29tbWVudHMgPSBGYWxzZQorICAgICAgICBpbnB1dF9lbmNvZGluZyA9IHNlbGYuY29uZmlnWydlbmNvZGluZyddIG9yICdhc2NpaScKICAgICAgICAgY29tbWVudF90YWdzID0gbGlzdCgKICAgICAgICAgICAgIGZpbHRlcihOb25lLCByZS5zcGxpdChyJ1xzKycsIHNlbGYuY29uZmlnWydjb21tZW50LXRhZ3MnXSkpKQogCkBAIC03NiwxMyArNzcsMTggQEAKICAgICAgICAgICAgICAgICBjb21tZW50WzFdIGZvciBjb21tZW50IGluIHRyYW5zbGF0b3JfY29tbWVudHNdCiAKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY29kZSwgY29tcGF0LnRleHRfdHlwZSk6Ci0gICAgICAgICAgICAgICAgY29kZSA9IGNvZGUuZW5jb2RlKCdhc2NpaScsICdiYWNrc2xhc2hyZXBsYWNlJykKKyAgICAgICAgICAgICAgICBjb2RlID0gY29kZS5lbmNvZGUoaW5wdXRfZW5jb2RpbmcsICdiYWNrc2xhc2hyZXBsYWNlJykKIAogICAgICAgICAgICAgdXNlZF90cmFuc2xhdG9yX2NvbW1lbnRzID0gRmFsc2UKLSAgICAgICAgICAgIGNvZGUgPSBjb21wYXQuYnl0ZV9idWZmZXIoY29kZSkKKyAgICAgICAgICAgICMgV2UgYWRkIGV4dHJhIG5ld2xpbmUgdG8gd29yayBhcm91bmQgYSBweWJhYmVsIGJ1ZworICAgICAgICAgICAgIyAoc2VlIHB5dGhvbi1iYWJlbC9iYWJlbCMyNzQsIHBhcnNlX2VuY29kaW5nIGRpZXMgaWYgdGhlIGZpcnN0CisgICAgICAgICAgICAjIGlucHV0IHN0cmluZyBvZiB0aGUgaW5wdXQgaXMgbm9uLWFzY2lpKQorICAgICAgICAgICAgIyBBbHNvLCBiZWNhdXNlIHdlIGFkZGVkIGl0LCB3ZSBoYXZlIHRvIHN1YnRyYWN0IG9uZSBmcm9tCisgICAgICAgICAgICAjIG5vZGUubGluZW5vCisgICAgICAgICAgICBjb2RlID0gY29tcGF0LmJ5dGVfYnVmZmVyKGNvbXBhdC5iKCdcbicpICsgY29kZSkKIAogICAgICAgICAgICAgZm9yIG1lc3NhZ2UgaW4gc2VsZi5wcm9jZXNzX3B5dGhvbigKLSAgICAgICAgICAgICAgICAgICAgY29kZSwgbm9kZS5saW5lbm8sIHRyYW5zbGF0b3Jfc3RyaW5ncyk6CisgICAgICAgICAgICAgICAgICAgIGNvZGUsIG5vZGUubGluZW5vIC0gMSwgdHJhbnNsYXRvcl9zdHJpbmdzKToKICAgICAgICAgICAgICAgICB5aWVsZCBtZXNzYWdlCiAgICAgICAgICAgICAgICAgdXNlZF90cmFuc2xhdG9yX2NvbW1lbnRzID0gVHJ1ZQogCmRpZmYgLS1naXQgYS90ZXN0L2V4dC90ZXN0X2JhYmVscGx1Z2luLnB5IGIvdGVzdC9leHQvdGVzdF9iYWJlbHBsdWdpbi5weQppbmRleCAzNzg5YjU4Li5hYmNlNzBhIDEwMDY0NAotLS0gYS90ZXN0L2V4dC90ZXN0X2JhYmVscGx1Z2luLnB5CisrKyBiL3Rlc3QvZXh0L3Rlc3RfYmFiZWxwbHVnaW4ucHkKQEAgLTc4LDMgKzc4LDE2IEBACiAgICAgICAgICAgICAgKDk5LCAnXycsICdObyBhY3Rpb24gYXQgYSBkaXN0YW5jZS4nLCBbXSksCiAgICAgICAgICAgICAgXQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCBtZXNzYWdlcykKKworICAgIEBza2lwKCkKKyAgICBkZWYgdGVzdF9leHRyYWN0X3V0Zjgoc2VsZik6CisgICAgICAgIG1ha29fdG1wbCA9IG9wZW4ob3MucGF0aC5qb2luKHRlbXBsYXRlX2Jhc2UsICdnZXR0ZXh0X3V0ZjgubWFrbycpLCAncmInKQorICAgICAgICBtZXNzYWdlID0gbmV4dChleHRyYWN0KG1ha29fdG1wbCwgeydfJywgTm9uZX0sIFtdLCB7J2VuY29kaW5nJzogJ3V0Zi04J30pKQorICAgICAgICBhc3NlcnQgbWVzc2FnZSA9PSAoMSwgJ18nLCB1J0tceGY2bG4nLCBbXSkKKworICAgIEBza2lwKCkKKyAgICBkZWYgdGVzdF9leHRyYWN0X2NwMTI1MShzZWxmKToKKyAgICAgICAgbWFrb190bXBsID0gb3Blbihvcy5wYXRoLmpvaW4odGVtcGxhdGVfYmFzZSwgJ2dldHRleHRfY3AxMjUxLm1ha28nKSwgJ3JiJykKKyAgICAgICAgbWVzc2FnZSA9IG5leHQoZXh0cmFjdChtYWtvX3RtcGwsIHsnXycsIE5vbmV9LCBbXSwgeydlbmNvZGluZyc6ICdjcDEyNTEnfSkpCisgICAgICAgICMgInRlc3QiIGluIFJ1c2lhbi4gRmlsZSBlbmNvZGluZyBpcyBjcDEyNTEgKGFrYSAid2luZG93cy0xMjUxIikKKyAgICAgICAgYXNzZXJ0IG1lc3NhZ2UgPT0gKDEsICdfJywgdSdcdTA0NDJcdTA0MzVcdTA0NDFcdTA0NDInLCBbXSkKZGlmZiAtLWdpdCBhL3Rlc3QvdGVtcGxhdGVzL2dldHRleHRfY3AxMjUxLm1ha28gYi90ZXN0L3RlbXBsYXRlcy9nZXR0ZXh0X2NwMTI1MS5tYWtvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzNDFkOTMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0L3RlbXBsYXRlcy9nZXR0ZXh0X2NwMTI1MS5tYWtvCkBAIC0wLDAgKzEgQEAKKyR7Xygi8uXx8iIpfQpkaWZmIC0tZ2l0IGEvdGVzdC90ZW1wbGF0ZXMvZ2V0dGV4dF91dGY4Lm1ha28gYi90ZXN0L3RlbXBsYXRlcy9nZXR0ZXh0X3V0ZjgubWFrbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjFmOTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdC90ZW1wbGF0ZXMvZ2V0dGV4dF91dGY4Lm1ha28KQEAgLTAsMCArMSBAQAorJHtfKCJLw7ZsbiIpfQo=