From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Charalampos Stratakis To: git-commits@fedoraproject.org Subject: [rpms/pythran] rawhide: Update to 0.19.0 Date: Fri, 21 Aug 2026 13:27:46 GMT Message-ID: <178731886661.1.4574344807970717805.rpms-pythran-3ac8f2dc8ec8@fedoraproject.org> List-ID: X-Git-Repo: rpms/pythran X-Git-Branch: rawhide X-Git-Rev: 3ac8f2dc8ec8698d609e383425a6c7c6ab773b46 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvcHl0aHJhbgogICAgICAgICAgICBCcmFuY2ggOiByYXdoaWRlCiAgICAgICAg ICAgIENvbW1pdCA6IDNhYzhmMmRjOGVjODY5OGQ2MDllMzgzNDI1YTZjN2M2YWI3NzNiNDYKICAg ICAgICAgICAgQXV0aG9yIDogQ2hhcmFsYW1wb3MgU3RyYXRha2lzIDxjc3RyYXRha0ByZWRoYXQu Y29tPgogICAgICAgICAgICBEYXRlICAgOiAyMDI2LTA4LTIwVDEzOjMwOjMyKzAyOjAwCiAgICAg ICAgICAgIFN0YXRzICA6ICszLy0xMDg1IGluIDEyIGZpbGUocykKICAgICAgICAgICAgVVJMICAg IDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9weXRocmFuL2MvM2FjOGYyZGM4 ZWM4Njk4ZDYwOWUzODM0MjVhNmM3YzZhYjc3M2I0Nj9icmFuY2g9cmF3aGlkZQoKICAgICAgICAg ICAgTG9nOgogICAgICAgICAgICBVcGRhdGUgdG8gMC4xOS4wCgotIEZpeGVzOiByaGJ6IzI1MDQ2 MDgsIHJoYnojMjUxNzY2MwoKLS0tCmRpZmYgLS1naXQgYS8yMzc1LnBhdGNoIGIvMjM3NS5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzIwOTIzZC4uMDAwMDAwMAotLS0gYS8y Mzc1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotRnJvbSA0NDQxZmJhNWM2 NzdlNDFlZWU5ZTQ5NDg1ZWYwYTM4ZWFhNWYwYjk2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogc2VyZ2Utc2Fucy1wYWlsbGUgPHNlcmdlLmd1ZWx0b25AdGVsZWNvbS1icmV0YWduZS5l dT4KLURhdGU6IFdlZCwgMTkgTm92IDIwMjUgMTA6MTg6MDkgKzAxMDAKLVN1YmplY3Q6IFtQQVRD SF0gRG9uJ3QgdGVzdCBmbG9hdDEyOCB3aGVuIGl0IGRvZXMgbm90IGV4aXN0IGluIG51bXB5Ci0K LS0tLQotIHB5dGhyYW4vdGVzdHMvdGVzdF9jb252ZXJzaW9uLnB5IHwgNiArKysrLS0KLSAxIGZp bGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvcHl0aHJhbi90ZXN0cy90ZXN0X2NvbnZlcnNpb24ucHkgYi9weXRocmFuL3Rlc3RzL3Rlc3Rf Y29udmVyc2lvbi5weQotaW5kZXggNmFhMGE4MjliLi43NmRhZTdjNGUgMTAwNjQ0Ci0tLS0gYS9w eXRocmFuL3Rlc3RzL3Rlc3RfY29udmVyc2lvbi5weQotKysrIGIvcHl0aHJhbi90ZXN0cy90ZXN0 X2NvbnZlcnNpb24ucHkKLUBAIC0yNTcsMTIgKzI1NywxNCBAQCBkZWYgdGVzdF9idWlsdGluX3R5 cGU5KHNlbGYpOgotIAotICAgICBkZWYgdGVzdF9zaW1wbGVfbWV0YV90eXBlcyhzZWxmKToKLSAg ICAgICAgIHR5cGVzID0gKGNvbXBsZXgsIGZsb2F0LCBpbnQsIGJvb2wsIHN0ciwKLS0gICAgICAg ICAgICAgICAgIG5wLmZsb2F0MTI4LCBucC5mbG9hdDY0LCBucC5mbG9hdDMyLAotLSAgICAgICAg ICAgICAgICAgbnAuY29tcGxleDI1NiwgbnAuY29tcGxleDEyOCwgbnAuY29tcGxleDY0LAotKyAg ICAgICAgICAgICAgICAgbnAuZmxvYXQ2NCwgbnAuZmxvYXQzMiwKLSsgICAgICAgICAgICAgICAg IG5wLmNvbXBsZXgxMjgsIG5wLmNvbXBsZXg2NCwKLSAgICAgICAgICAgICAgICAgIG5wLnVpbnQ2 NCwgbnAudWludDMyLCBucC51aW50MTYsIG5wLnVpbnQ4LAotICAgICAgICAgICAgICAgICAgbnAu aW50NjQsIG5wLmludDMyLCBucC5pbnQxNiwgbnAuaW50OCwKLSAgICAgICAgICAgICAgICAgIG5w LmludDY0LCBucC5pbnQzMiwgbnAuaW50MTYsIG5wLmludDgsCi0gICAgICAgICAgICAgICAgICAp Ci0rICAgICAgICBpZiBoYXNfZmxvYXQxMjg6Ci0rICAgICAgICAgICAgdHlwZXMgKz0gbnAuZmxv YXQxMjgsIG5wLmNvbXBsZXgyNTYKLSAgICAgICAgIGZvciBpLCB0eSBpbiBlbnVtZXJhdGUodHlw ZXMpOgotICAgICAgICAgICAgIGt3YXJncz0ge2Yic2ltcGxlX21ldGFfdHlwZXNfe2l9IjogW1R5 cGVbdHldXX0KLSAgICAgICAgICAgICBzZWxmLnJ1bl90ZXN0KGYiZGVmIHNpbXBsZV9tZXRhX3R5 cGVzX3tpfShvYmopOiByZXR1cm4gb2JqKCkiLAoKZGlmZiAtLWdpdCBhLzIzOTgucGF0Y2ggYi8y Mzk4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YmFjZTA0Li4wMDAwMDAw Ci0tLSBhLzIzOTgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1Gcm9tIDNi MTk5YTYwM2IzYjE3ODUzMzJmOWZlNjYzNzliNWNkMDY0MjI0ODcgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBFbGkgU2Nod2FydHogPGVzY2h3YXJ0ekBnZW50b28ub3JnPgotRGF0ZTog U3VuLCAxOCBKYW4gMjAyNiAyMDowNzowMCAtMDUwMAotU3ViamVjdDogW1BBVENIXSBtYXJrIG51 bXB5IGZsb2F0MTI4IHRlc3RzIGFzIHNraXBwYWJsZSB3aGVuIG51bXB5IGxhY2tzCi0gZmxvYXQx Mjggc3VwcG9ydAotCi1TaWduZWQtb2ZmLWJ5OiBFbGkgU2Nod2FydHogPGVzY2h3YXJ0ekBnZW50 b28ub3JnPgotLS0tCi0gcHl0aHJhbi90ZXN0cy90ZXN0X251bXB5X2Z1bmMyLnB5IHwgNyArKysr KysrCi0gMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvcHl0 aHJhbi90ZXN0cy90ZXN0X251bXB5X2Z1bmMyLnB5IGIvcHl0aHJhbi90ZXN0cy90ZXN0X251bXB5 X2Z1bmMyLnB5Ci1pbmRleCAyYjFmMzFiZWYuLmNlMjliYjkyZCAxMDA2NDQKLS0tLSBhL3B5dGhy YW4vdGVzdHMvdGVzdF9udW1weV9mdW5jMi5weQotKysrIGIvcHl0aHJhbi90ZXN0cy90ZXN0X251 bXB5X2Z1bmMyLnB5Ci1AQCAtNSw2ICs1LDEyIEBACi0gCi0gZnJvbSBweXRocmFuLnR5cGluZyBp bXBvcnQgTkRBcnJheSwgTGlzdCwgVHVwbGUKLSAKLSt0cnk6Ci0rICAgIG51bXB5LmZsb2F0MTI4 Ci0rICAgIGhhc19mbG9hdDEyOCA9IFRydWUKLStleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0rICAg IGhhc19mbG9hdDEyOCA9IEZhbHNlCi0rCi0gCi0gbnBfdmVyc2lvbiA9IHZlcnNpb24ucGFyc2Uo bnVtcHkudmVyc2lvbi52ZXJzaW9uKQotIAotQEAgLTIwNiw2ICsyMTIsNyBAQCBkZWYgdGVzdF9j b252b2x2ZV8yKHNlbGYpOgotICAgICAgICAgICAgICAgICAgIG51bXB5LmFyYW5nZSgxMCxkdHlw ZT1mbG9hdCksCi0gICAgICAgICAgICAgICAgICAgbnBfY29udm9sdmVfMj1bTkRBcnJheVtmbG9h dCw6XSxOREFycmF5W2Zsb2F0LDpdXSkKLSAKLSsgICAgQHVuaXR0ZXN0LnNraXBJZihub3QgaGFz X2Zsb2F0MTI4LCAnbm90IGZsb2F0MTI4JykKLSAgICAgZGVmIHRlc3RfY29udm9sdmVfMmIoc2Vs Zik6Ci0gICAgICAgICBzZWxmLnJ1bl90ZXN0KCJkZWYgbnBfY29udm9sdmVfMmIoYSxiKTpcbiBm cm9tIG51bXB5IGltcG9ydCBjb252b2x2ZVxuIHJldHVybiBjb252b2x2ZShhLGIpIiwKLSAgICAg ICAgICAgICAgICAgICBudW1weS5hcmFuZ2UoMTIsZHR5cGU9bnVtcHkuZmxvYXQxMjgpLAoKZGlm ZiAtLWdpdCBhLzI0MDIucGF0Y2ggYi8yNDAyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBmNDFkZTM0Li4wMDAwMDAwCi0tLSBhLzI0MDIucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwzOSArMCwwIEBACi1Gcm9tIGE2NjBkYTc0YTYzMDM5ZjMzNDAyMTYyZGQ4OTA3ZmFlOWJh NDYxN2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBzZXJnZS1zYW5zLXBhaWxsZSA8 c2VyZ2UuZ3VlbHRvbkB0ZWxlY29tLWJyZXRhZ25lLmV1PgotRGF0ZTogV2VkLCAyOCBKYW4gMjAy NiAxMTozNDoxNCArMDEwMAotU3ViamVjdDogW1BBVENIXSBbcGx5XSBNYWtlIHB5dGhyYW4gY29t cGF0aWJsZSB3aXRoIHRvcC1vZi10cmVlIFBMWSB2ZXJzaW9uCi0KLUZpeCAjMjM5MwotLS0tCi0g cHl0aHJhbi9zcGVjLnB5IHwgMTEgKysrKysrKy0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNyBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcHl0aHJhbi9zcGVjLnB5 IGIvcHl0aHJhbi9zcGVjLnB5Ci1pbmRleCAxN2U4NDRmMGUuLjEzOThiYjRkMiAxMDA2NDQKLS0t LSBhL3B5dGhyYW4vc3BlYy5weQotKysrIGIvcHl0aHJhbi9zcGVjLnB5Ci1AQCAtNiw2ICs2LDcg QEAKLSAKLSBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAotIGZyb20gaXRlcnRv b2xzIGltcG9ydCBwcm9kdWN0LCBjaGFpbgotK2ltcG9ydCBpbnNwZWN0Ci0gaW1wb3J0IHJlCi0g aW1wb3J0IHBseS5sZXggYXMgbGV4Ci0gaW1wb3J0IHBseS55YWNjIGFzIHlhY2MKLUBAIC01MjMs MTAgKzUyNCwxMiBAQCBkZWYgcF9lcnJvcihzZWxmLCBwKToKLSAKLSAgICAgZGVmIF9faW5pdF9f KHNlbGYpOgotICAgICAgICAgc2VsZi5sZXhlciA9IGxleC5sZXgobW9kdWxlPXNlbGYsIGRlYnVn PUZhbHNlKQotLSAgICAgICAgIyBEbyBub3Qgd3JpdGUgdGhlIHRhYmxlIGZvciBiZXR0ZXIgY29t cGF0aWJpbGl0eSBhY3Jvc3MgcGx5IHZlcnNpb24KLS0gICAgICAgIHNlbGYucGFyc2VyID0geWFj Yy55YWNjKG1vZHVsZT1zZWxmLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVi dWc9RmFsc2UsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZV90YWJsZXM9 RmFsc2UpCi0rCi0rICAgICAgICB5YWNjX2t3YXJncyA9IHsnbW9kdWxlJzogc2VsZiwgJ2RlYnVn JzogRmFsc2V9Ci0rICAgICAgICAjIHBseSBwb3N0LTMuMTEgdmVyc2lvbiByZW1vdmVkIHRoZSB3 cml0ZV90YWJsZXMgcGFyYW1ldGVyCi0rICAgICAgICBpZiAnd3JpdGVfdGFibGVzJyBpbiBpbnNw ZWN0LnNpZ25hdHVyZSh5YWNjLnlhY2MpLnBhcmFtZXRlcnM6Ci0rICAgICAgICAgICAgeWFjY19r d2FyZ3NbJ3dyaXRlX3RhYmxlcyddID0gRmFsc2UKLSsgICAgICAgIHNlbGYucGFyc2VyID0geWFj Yy55YWNjKCoqeWFjY19rd2FyZ3MpCi0gCi0gICAgIGRlZiBfX2NhbGxfXyhzZWxmLCB0ZXh0LCBp bnB1dF9maWxlPU5vbmUpOgotICAgICAgICAgc2VsZi5leHBvcnRzID0gZGVmYXVsdGRpY3QodHVw bGUpCgpkaWZmIC0tZ2l0IGEvMjQwMy5wYXRjaCBiLzI0MDMucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDg4NWRiMzQuLjAwMDAwMDAKLS0tIGEvMjQwMy5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDIzICswLDAgQEAKLUZyb20gY2MwMWY3ZTAwNjFhMGYwYTk4ZDI1ODZiNjUx MjY1YzM3NDZiNzg1YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IENoYXJhbGFtcG9z IFN0cmF0YWtpcyA8Y3N0cmF0YWtAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgMyBGZWIgMjAyNiAw MzowNDo0MSArMDEwMAotU3ViamVjdDogW1BBVENIXSBSZW5hbWUgdGhlIGJlbmNobWFyayBmaWxl Ci0KLVRoZSB0ZXN0XyBwcmVmaXggb2YgdGhlIGJlbmNobWFyayBmaWxlIHdhcyBtYWtpbmcKLXB5 dGVzdCBjb2xsZWN0IGl0IGFuZCB1c2UgdGhlIGJlbmNobWFya3MgZGlyZWN0b3J5IGFzCi1yb290 LCBoYXZpbmcgdGhlIHRlc3RzIGZhaWxpbmcuCi0KLVJlbmFtZSB0aGUgZmlsZSBzbyBpdCdzIG5v dCBjb2xsZWN0ZWQgdmlhIHRoZSB1c3VhbAotcHl0ZXN0IHJ1bnMuCi0tLS0KLSBweXRocmFuL2Jl bmNobWFya3Mve3Rlc3RfYmVuY2htYXJrLnB5ID0+IGJlbmNobWFya19ydW5uZXIucHl9IHwgMAot IDEgZmlsZSBjaGFuZ2VkLCAwIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCi0gcmVuYW1l IHB5dGhyYW4vYmVuY2htYXJrcy97dGVzdF9iZW5jaG1hcmsucHkgPT4gYmVuY2htYXJrX3J1bm5l ci5weX0gKDEwMCUpCi0KLWRpZmYgLS1naXQgYS9weXRocmFuL2JlbmNobWFya3MvdGVzdF9iZW5j aG1hcmsucHkgYi9weXRocmFuL2JlbmNobWFya3MvYmVuY2htYXJrX3J1bm5lci5weQotc2ltaWxh cml0eSBpbmRleCAxMDAlCi1yZW5hbWUgZnJvbSBweXRocmFuL2JlbmNobWFya3MvdGVzdF9iZW5j aG1hcmsucHkKLXJlbmFtZSB0byBweXRocmFuL2JlbmNobWFya3MvYmVuY2htYXJrX3J1bm5lci5w eQotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzI0MDQucGF0Y2ggYi8yNDA0LnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTFlNDMwLi4wMDAwMDAwCi0tLSBhLzI0MDQu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxODYgKzAsMCBAQAotRnJvbSBlMGFiN2E2YTFjNWY4 MzhlOTVlNDdhMDNlNTk5ZWJlNTFiM2IyZDY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogQ2hhcmFsYW1wb3MgU3RyYXRha2lzIDxjc3RyYXRha0ByZWRoYXQuY29tPgotRGF0ZTogVHVl LCAxMCBGZWIgMjAyNiAyMDoyOToxMSArMDEwMAotU3ViamVjdDogW1BBVENIIDEvMl0gQWRkIGZy b21fcHl0aG9uL3RvX3B5dGhvbiBzcGVjaWFsaXphdGlvbnMgZm9yIGxvbmdsb25nCi0gYW5kIHVs b25nbG9uZwotCi1Db21taXQgODU0MTk3YzY3IGFkZGVkIFB5dGhvbiBjb252ZXJzaW9uIHNwZWNp YWxpemF0aW9ucyBmb3IgYWxsIG51bXB5Ci10eXBlIGhlYWRlcnMgYnV0IG1pc3NlZCBsb25nbG9u ZyBhbmQgdWxvbmdsb25nLiBPbiB4ODZfNjQgdGhpcyBpcwotaGFybWxlc3MgYmVjYXVzZSBpbnQ2 NF90IGlzIGxvbmcsIG1hcHBlZCB0aHJvdWdoIHRoZSBpbnQ2NCBmdW5jdG9yLgotCi1PbiBpNjg2 IGludDY0X3QgaXMgbG9uZyBsb25nLCBzbyBucC5pbnQ2NC9ucC51aW50NjQgcmVzb2x2ZSB0byB0 aGUKLWxvbmdsb25nL3Vsb25nbG9uZyBmdW5jdG9ycyB3aGljaCBsYWNrIHRoZSBjb252ZXJzaW9u IGNvZGUsIGNhdXNpbmcKLWluY29tcGxldGUgdHlwZSBlcnJvcnMgZHVyaW5nIGNvbXBpbGF0aW9u LgotLS0tCi0gcHl0aHJhbi9weXRob25pYy9pbmNsdWRlL251bXB5L2xvbmdsb25nLmhwcCAgfCAx OSArKysrKysrKysrKysrKwotIHB5dGhyYW4vcHl0aG9uaWMvaW5jbHVkZS9udW1weS91bG9uZ2xv bmcuaHBwIHwgMTkgKysrKysrKysrKysrKysKLSBweXRocmFuL3B5dGhvbmljL251bXB5L2xvbmds b25nLmhwcCAgICAgICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKysrCi0gcHl0aHJhbi9weXRo b25pYy9udW1weS91bG9uZ2xvbmcuaHBwICAgICAgICAgfCAyNyArKysrKysrKysrKysrKysrKysr KwotIDQgZmlsZXMgY2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvcHl0 aHJhbi9weXRob25pYy9pbmNsdWRlL251bXB5L2xvbmdsb25nLmhwcCBiL3B5dGhyYW4vcHl0aG9u aWMvaW5jbHVkZS9udW1weS9sb25nbG9uZy5ocHAKLWluZGV4IDM5M2EwNjU4Zi4uMmUzNzI3ZmI4 IDEwMDY0NAotLS0tIGEvcHl0aHJhbi9weXRob25pYy9pbmNsdWRlL251bXB5L2xvbmdsb25nLmhw cAotKysrIGIvcHl0aHJhbi9weXRob25pYy9pbmNsdWRlL251bXB5L2xvbmdsb25nLmhwcAotQEAg LTI2LDQgKzI2LDIzIEBAIG5hbWVzcGFjZSBudW1weQotIH0gLy8gbmFtZXNwYWNlIG51bXB5Ci0g UFlUSE9OSUNfTlNfRU5ECi0gCi0rI2lmZGVmIEVOQUJMRV9QWVRIT05fTU9EVUxFCi0rCi0rI2lu Y2x1ZGUgInB5dGhvbmljL3B5dGhvbi9jb3JlLmhwcCIKLSsKLStQWVRIT05JQ19OU19CRUdJTgot KwotK3RlbXBsYXRlIDw+Ci0rc3RydWN0IHRvX3B5dGhvbjxudW1weTo6ZnVuY3Rvcjo6bG9uZ2xv bmc+IHsKLSsgIHN0YXRpYyBQeU9iamVjdCAqY29udmVydChudW1weTo6ZnVuY3Rvcjo6bG9uZ2xv bmcgY29uc3QgJmMpOwotK307Ci0rCi0rdGVtcGxhdGUgPD4KLStzdHJ1Y3QgZnJvbV9weXRob248 bnVtcHk6OmZ1bmN0b3I6Omxvbmdsb25nPiB7Ci0rICBzdGF0aWMgYm9vbCBpc19jb252ZXJ0aWJs ZShQeU9iamVjdCAqb2JqKTsKLSsgIHN0YXRpYyBudW1weTo6ZnVuY3Rvcjo6bG9uZ2xvbmcgY29u dmVydChQeU9iamVjdCAqb2JqKTsKLSt9OwotK1BZVEhPTklDX05TX0VORAotKyNlbmRpZgotKwot ICNlbmRpZgotZGlmZiAtLWdpdCBhL3B5dGhyYW4vcHl0aG9uaWMvaW5jbHVkZS9udW1weS91bG9u Z2xvbmcuaHBwIGIvcHl0aHJhbi9weXRob25pYy9pbmNsdWRlL251bXB5L3Vsb25nbG9uZy5ocHAK LWluZGV4IGI3ODYyMmQ5NS4uMjM4ZGIyZGJiIDEwMDY0NAotLS0tIGEvcHl0aHJhbi9weXRob25p Yy9pbmNsdWRlL251bXB5L3Vsb25nbG9uZy5ocHAKLSsrKyBiL3B5dGhyYW4vcHl0aG9uaWMvaW5j bHVkZS9udW1weS91bG9uZ2xvbmcuaHBwCi1AQCAtMjYsNCArMjYsMjMgQEAgbmFtZXNwYWNlIG51 bXB5Ci0gfSAvLyBuYW1lc3BhY2UgbnVtcHkKLSBQWVRIT05JQ19OU19FTkQKLSAKLSsjaWZkZWYg RU5BQkxFX1BZVEhPTl9NT0RVTEUKLSsKLSsjaW5jbHVkZSAicHl0aG9uaWMvcHl0aG9uL2NvcmUu aHBwIgotKwotK1BZVEhPTklDX05TX0JFR0lOCi0rCi0rdGVtcGxhdGUgPD4KLStzdHJ1Y3QgdG9f cHl0aG9uPG51bXB5OjpmdW5jdG9yOjp1bG9uZ2xvbmc+IHsKLSsgIHN0YXRpYyBQeU9iamVjdCAq Y29udmVydChudW1weTo6ZnVuY3Rvcjo6dWxvbmdsb25nIGNvbnN0ICZjKTsKLSt9OwotKwotK3Rl bXBsYXRlIDw+Ci0rc3RydWN0IGZyb21fcHl0aG9uPG51bXB5OjpmdW5jdG9yOjp1bG9uZ2xvbmc+ IHsKLSsgIHN0YXRpYyBib29sIGlzX2NvbnZlcnRpYmxlKFB5T2JqZWN0ICpvYmopOwotKyAgc3Rh dGljIG51bXB5OjpmdW5jdG9yOjp1bG9uZ2xvbmcgY29udmVydChQeU9iamVjdCAqb2JqKTsKLSt9 OwotK1BZVEhPTklDX05TX0VORAotKyNlbmRpZgotKwotICNlbmRpZgotZGlmZiAtLWdpdCBhL3B5 dGhyYW4vcHl0aG9uaWMvbnVtcHkvbG9uZ2xvbmcuaHBwIGIvcHl0aHJhbi9weXRob25pYy9udW1w eS9sb25nbG9uZy5ocHAKLWluZGV4IDFmZTI4NjVlMi4uMTBkY2RkZGFlIDEwMDY0NAotLS0tIGEv cHl0aHJhbi9weXRob25pYy9udW1weS9sb25nbG9uZy5ocHAKLSsrKyBiL3B5dGhyYW4vcHl0aG9u aWMvbnVtcHkvbG9uZ2xvbmcuaHBwCi1AQCAtMzQsNCArMzQsMzEgQEAgbmFtZXNwYWNlIG51bXB5 Ci0gfSAvLyBuYW1lc3BhY2UgbnVtcHkKLSBQWVRIT05JQ19OU19FTkQKLSAKLSsjaWZkZWYgRU5B QkxFX1BZVEhPTl9NT0RVTEUKLSsKLSsjaW5jbHVkZSAicHl0aG9uaWMvcHl0aG9uL2NvcmUuaHBw IgotKyNpbmNsdWRlICJudW1weS9hcnJheXNjYWxhcnMuaCIKLSsKLStQWVRIT05JQ19OU19CRUdJ TgotKwotK2lubGluZSBQeU9iamVjdCAqCi0rdG9fcHl0aG9uPG51bXB5OjpmdW5jdG9yOjpsb25n bG9uZz46OmNvbnZlcnQobnVtcHk6OmZ1bmN0b3I6Omxvbmdsb25nIGNvbnN0ICZjKQotK3sKLSsg IHJldHVybiAoUHlPYmplY3QqKSZQeUxvbmdMb25nQXJyVHlwZV9UeXBlOwotK30KLSsKLStpbmxp bmUgYm9vbCBmcm9tX3B5dGhvbjxudW1weTo6ZnVuY3Rvcjo6bG9uZ2xvbmc+Ojppc19jb252ZXJ0 aWJsZShQeU9iamVjdCAqb2JqKQotK3sKLSsgIHJldHVybiBvYmogPT0gKFB5T2JqZWN0KikmUHlM b25nTG9uZ0FyclR5cGVfVHlwZTsKLSt9Ci0rCi0raW5saW5lIG51bXB5OjpmdW5jdG9yOjpsb25n bG9uZwotK2Zyb21fcHl0aG9uPG51bXB5OjpmdW5jdG9yOjpsb25nbG9uZz46OmNvbnZlcnQoUHlP YmplY3QgKm9iaikKLSt7Ci0rICByZXR1cm4ge307Ci0rfQotKwotK1BZVEhPTklDX05TX0VORAot KyNlbmRpZgotKwotICNlbmRpZgotZGlmZiAtLWdpdCBhL3B5dGhyYW4vcHl0aG9uaWMvbnVtcHkv dWxvbmdsb25nLmhwcCBiL3B5dGhyYW4vcHl0aG9uaWMvbnVtcHkvdWxvbmdsb25nLmhwcAotaW5k ZXggNGU1MzZkOTczLi4xYWQyODc2NDggMTAwNjQ0Ci0tLS0gYS9weXRocmFuL3B5dGhvbmljL251 bXB5L3Vsb25nbG9uZy5ocHAKLSsrKyBiL3B5dGhyYW4vcHl0aG9uaWMvbnVtcHkvdWxvbmdsb25n LmhwcAotQEAgLTM0LDQgKzM0LDMxIEBAIG5hbWVzcGFjZSBudW1weQotIH0gLy8gbmFtZXNwYWNl IG51bXB5Ci0gUFlUSE9OSUNfTlNfRU5ECi0gCi0rI2lmZGVmIEVOQUJMRV9QWVRIT05fTU9EVUxF Ci0rCi0rI2luY2x1ZGUgInB5dGhvbmljL3B5dGhvbi9jb3JlLmhwcCIKLSsjaW5jbHVkZSAibnVt cHkvYXJyYXlzY2FsYXJzLmgiCi0rCi0rUFlUSE9OSUNfTlNfQkVHSU4KLSsKLStpbmxpbmUgUHlP YmplY3QgKgotK3RvX3B5dGhvbjxudW1weTo6ZnVuY3Rvcjo6dWxvbmdsb25nPjo6Y29udmVydChu dW1weTo6ZnVuY3Rvcjo6dWxvbmdsb25nIGNvbnN0ICZjKQotK3sKLSsgIHJldHVybiAoUHlPYmpl Y3QqKSZQeVVMb25nTG9uZ0FyclR5cGVfVHlwZTsKLSt9Ci0rCi0raW5saW5lIGJvb2wgZnJvbV9w eXRob248bnVtcHk6OmZ1bmN0b3I6OnVsb25nbG9uZz46OmlzX2NvbnZlcnRpYmxlKFB5T2JqZWN0 ICpvYmopCi0rewotKyAgcmV0dXJuIG9iaiA9PSAoUHlPYmplY3QqKSZQeVVMb25nTG9uZ0FyclR5 cGVfVHlwZTsKLSt9Ci0rCi0raW5saW5lIG51bXB5OjpmdW5jdG9yOjp1bG9uZ2xvbmcKLStmcm9t X3B5dGhvbjxudW1weTo6ZnVuY3Rvcjo6dWxvbmdsb25nPjo6Y29udmVydChQeU9iamVjdCAqb2Jq KQotK3sKLSsgIHJldHVybiB7fTsKLSt9Ci0rCi0rUFlUSE9OSUNfTlNfRU5ECi0rI2VuZGlmCi0r Ci0gI2VuZGlmCi0KLUZyb20gNjE3ZDNiZjgzNTAyZDhjOGZmYjFmOGViNDZjZGU3Njc2MDM3NzFl OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IENoYXJhbGFtcG9zIFN0cmF0YWtpcyA8 Y3N0cmF0YWtAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMTEgRmViIDIwMjYgMTU6MTg6NTcgKzAx MDAKLVN1YmplY3Q6IFtQQVRDSCAyLzJdIEZpeCB1aW50IGZ1bmN0b3IgdXNpbmcgd3JvbmcgbnVt cHkgQyBBUEkgdHlwZSBvYmplY3QKLQotVGhlIGNvZGUgd2FzIHVzaW5nIFB5VUludEFyclR5cGVf VHlwZSAodW5zaWduZWQgaW50KSBpbnN0ZWFkIG9mCi1QeVVMb25nQXJyVHlwZV9UeXBlICh1bnNp Z25lZCBsb25nKS4gV29ya2VkIG9uIDY0LWJpdCBieSBhY2NpZGVudAotdGhyb3VnaCBtYWNybyBh bGlhc2luZyBidXQgZmFpbHMgb24gMzItYml0IHdpdGggcnVudGltZSBUeXBlRXJyb3JzLgotLS0t Ci0gcHl0aHJhbi9weXRob25pYy9udW1weS91aW50LmhwcCB8IDEwICsrLS0tLS0tLS0KLSAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvcHl0aHJhbi9weXRob25pYy9udW1weS91aW50LmhwcCBiL3B5dGhyYW4vcHl0aG9uaWMvbnVt cHkvdWludC5ocHAKLWluZGV4IDFmY2ExOTVjNi4uMGM1MDRhOGFmIDEwMDY0NAotLS0tIGEvcHl0 aHJhbi9weXRob25pYy9udW1weS91aW50LmhwcAotKysrIGIvcHl0aHJhbi9weXRob25pYy9udW1w eS91aW50LmhwcAotQEAgLTQzLDE4ICs0MywxMiBAQCBQWVRIT05JQ19OU19CRUdJTgotIAotIGlu bGluZSBQeU9iamVjdCAqdG9fcHl0aG9uPG51bXB5OjpmdW5jdG9yOjp1aW50Pjo6Y29udmVydChu dW1weTo6ZnVuY3Rvcjo6dWludCBjb25zdCAmYykKLSB7Ci0tICByZXR1cm4gKFB5T2JqZWN0ICop JlB5VUludEFyclR5cGVfVHlwZTsKLSsgIHJldHVybiAoUHlPYmplY3QgKikmUHlVTG9uZ0FyclR5 cGVfVHlwZTsKLSB9Ci0gCi0gaW5saW5lIGJvb2wgZnJvbV9weXRob248bnVtcHk6OmZ1bmN0b3I6 OnVpbnQ+Ojppc19jb252ZXJ0aWJsZShQeU9iamVjdCAqb2JqKQotIHsKLS0gIHJldHVybiBvYmog PT0gKFB5T2JqZWN0ICopJlB5VUludEFyclR5cGVfVHlwZSB8fAotLSNpZiBOUFlfU0laRU9GX0lO VFAgPT0gTlBZX1NJWkVPRl9MT05HCi0tICAgICAgICAgb2JqID09IChQeU9iamVjdCAqKSZQeVVJ bnQ2NEFyclR5cGVfVHlwZQotLSNlbHNlCi0tICAgICAgICAgb2JqID09IChQeU9iamVjdCAqKSZQ eVVJbnQzMkFyclR5cGVfVHlwZQotLSNlbmRpZgotLSAgICAgIDsKLSsgIHJldHVybiBvYmogPT0g KFB5T2JqZWN0ICopJlB5VUxvbmdBcnJUeXBlX1R5cGU7Ci0gfQotIAotIGlubGluZSBudW1weTo6 ZnVuY3Rvcjo6dWludCBmcm9tX3B5dGhvbjxudW1weTo6ZnVuY3Rvcjo6dWludD46OmNvbnZlcnQo UHlPYmplY3QgKm9iaikKCmRpZmYgLS1naXQgYS8yNDA3LnBhdGNoIGIvMjQwNy5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRlM2Q2MS4uMDAwMDAwMAotLS0gYS8yNDA3LnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotRnJvbSAyZDI1YTBhZTRmODE1MDQ4 MGVjNTg4MzY4MzFjY2YzNTE4ZGMwY2NjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog Q2hhcmFsYW1wb3MgU3RyYXRha2lzIDxjc3RyYXRha0ByZWRoYXQuY29tPgotRGF0ZTogVHVlLCAx NyBGZWIgMjAyNiAxMzoxMjo1NiArMDEwMAotU3ViamVjdDogW1BBVENIXSBSZWR1Y2UgdGVzdF9u dW1weV9yYW5kb21fYnl0ZXMxIHNhbXBsZSBzaXplIHRvIGF2b2lkIDMyLWJpdAotIG1lbW9yeSBl eGhhdXN0aW9uCi0KLVRoZSB0ZXN0IGFsbG9jYXRlcyAxMCoqOCByYW5kb20gYnl0ZXMgdGhlbiBj b252ZXJ0cyB0byBmbG9hdDY0LCByZXF1aXJpbmcKLX45MDAgTUIgb2YgY29udGlndW91cyBtZW1v cnkuIE9uIDMyLWJpdCBzeXN0ZW1zIHdpdGggfjMgR0IgYWRkcmVzcyBzcGFjZQotdGhpcyByZWxp YWJseSBmYWlscy4gUmVkdWNlIHRvIDEwKio3IHdoaWNoIHN0aWxsIHZhbGlkYXRlcyB0aGUgc3Rh dGlzdGljYWwKLXByb3BlcnR5IHdlbGwgd2l0aGluIDAuMDUgdG9sZXJhbmNlLgotLS0tCi0gcHl0 aHJhbi90ZXN0cy90ZXN0X251bXB5X3JhbmRvbS5weSB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3B5dGhyYW4vdGVz dHMvdGVzdF9udW1weV9yYW5kb20ucHkgYi9weXRocmFuL3Rlc3RzL3Rlc3RfbnVtcHlfcmFuZG9t LnB5Ci1pbmRleCA2NTQ3YTJlOTIuLjQ4NTA3NDhlMyAxMDA2NDQKLS0tLSBhL3B5dGhyYW4vdGVz dHMvdGVzdF9udW1weV9yYW5kb20ucHkKLSsrKyBiL3B5dGhyYW4vdGVzdHMvdGVzdF9udW1weV9y YW5kb20ucHkKLUBAIC02NDEsNyArNjQxLDcgQEAgZGVmIG51bXB5X3JhbmRvbV9ieXRlczEobik6 Ci0gICAgICAgICAgICAgICAgIGZyb20gbnVtcHkgaW1wb3J0IG1lYW4sIGZyb21idWZmZXIsIHVp bnQ4LCBhc2FycmF5Ci0gICAgICAgICAgICAgICAgIGEgPSBieXRlcyhuKQotICAgICAgICAgICAg ICAgICByZXR1cm4gKGFicyhtZWFuKGFzYXJyYXkoZnJvbWJ1ZmZlcihhLCB1aW50OCksIGR0eXBl PWZsb2F0KSkgLSAxMjcuNSkgPCAuMDUpIiIiLAotLSAgICAgICAgICAgICAgICAgICAgICAxMCAq KiA4LCBudW1weV9yYW5kb21fYnl0ZXMxPVtpbnRdKQotKyAgICAgICAgICAgICAgICAgICAgICAx MCAqKiA3LCBudW1weV9yYW5kb21fYnl0ZXMxPVtpbnRdKQotIAotICAgICAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKLSAgICAgI1Rlc3RzIGZvciBudW1weS5yYW5kb20uZXhwb25lbnRpYWwKCmRpZmYgLS1n aXQgYS8yNDEzLnBhdGNoIGIvMjQxMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggZGQ1OWViNy4uMDAwMDAwMAotLS0gYS8yNDEzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs NjcgKzAsMCBAQAotRnJvbSBkOTRjY2EwNDZjN2Q2NDIwOGEyNjNkNjI4YTBlZGY5NzRmNGU4YmMy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQ2hhcmFsYW1wb3MgU3RyYXRha2lzIDxj c3RyYXRha0ByZWRoYXQuY29tPgotRGF0ZTogV2VkLCAyNSBGZWIgMjAyNiAwMjoyMTo1NiArMDEw MAotU3ViamVjdDogW1BBVENIXSBSZWR1Y2UgQysrIGNvZGUgZ2VuZXJhdGlvbiBkdXJpbmcgdGVz dCBydW5zCi0KLVJldXNlIHRoZSBDKysgb3V0cHV0IGZyb20gZ2VuZXJhdGVfY3h4IGZvciBib3Ro IHRoZSBkZXRlcm1pbmlzbSBjaGVjawotYW5kIGNvbXBpbGF0aW9uLCByZW1vdmluZyBhIHJlZHVu ZGFudCByZWdlbmVyYXRpb24gdGhyb3VnaAotY29tcGlsZV9weXRocmFuY29kZS4gRnJlZSB0aGUg aW50ZXJtZWRpYXRlIG1vZHVsZSBvYmplY3QgYWZ0ZXIKLXN0cmluZ2lmaWNhdGlvbiB0byByZWR1 Y2UgbWVtb3J5IHVzYWdlLgotCi1UaGUgZGV0ZXJtaW5pc20gY2hlY2sgY2FuIGJlIHNraXBwZWQg Ynkgc2V0dGluZwotUFlUSFJBTl9TS0lQX0RFVEVSTUlOSVNNX0NIRUNLPTEgZm9yIHJlc291cmNl LWNvbnN0cmFpbmVkIGVudmlyb25tZW50cwotKGUuZy4gMzItYml0IHN5c3RlbXMpLgotLS0tCi0g cHl0aHJhbi90ZXN0cy9fX2luaXRfXy5weSB8IDI5ICsrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tCi0gMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9weXRocmFuL3Rlc3RzL19faW5pdF9fLnB5IGIvcHl0aHJhbi90ZXN0cy9f X2luaXRfXy5weQotaW5kZXggNTE3MzQ3YWNiLi5mYmRhZTg0YTggMTAwNjQ0Ci0tLS0gYS9weXRo cmFuL3Rlc3RzL19faW5pdF9fLnB5Ci0rKysgYi9weXRocmFuL3Rlc3RzL19faW5pdF9fLnB5Ci1A QCAtMjYsOSArMjYsMTAgQEAKLSAKLSBmcm9tIHB5dGhyYW4gaW1wb3J0IGNvbXBpbGVfcHl0aHJh bmNvZGUsIHNwZWNfcGFyc2VyLCBsb2FkX3NwZWNmaWxlLCBmcm9udGVuZAotIGZyb20gcHl0aHJh bi5iYWNrZW5kIGltcG9ydCBQeXRob24KLStmcm9tIHB5dGhyYW4uZXJyb3JzIGltcG9ydCBQeXRo cmFuQ29tcGlsZUVycm9yCi0gZnJvbSBweXRocmFuLm1pZGRsZW5kIGltcG9ydCByZWZpbmUKLSBm cm9tIHB5dGhyYW4ucGFzc21hbmFnZXIgaW1wb3J0IFBhc3NNYW5hZ2VyCi0tZnJvbSBweXRocmFu LnRvb2xjaGFpbiBpbXBvcnQgX3BhcnNlX29wdGltaXphdGlvbiwgZ2VuZXJhdGVfY3h4Ci0rZnJv bSBweXRocmFuLnRvb2xjaGFpbiBpbXBvcnQgX3BhcnNlX29wdGltaXphdGlvbiwgZ2VuZXJhdGVf Y3h4LCBjb21waWxlX2N4eGNvZGUKLSBmcm9tIHB5dGhyYW4uc3BlYyBpbXBvcnQgU3BlYwotIAot IGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJweXRocmFuIikKLUBAIC0zMDYsMTQgKzMwNywy NiBAQCBkZWYgcnVuX3Rlc3Qoc2VsZiwgY29kZSwgKnBhcmFtcywgKippbnRlcmZhY2UpOgotIAot ICAgICAgICAgY29kZSA9IGRlZGVudChjb2RlKQotIAotLSAgICAgICAgY3h4MCwgXyA9IGdlbmVy YXRlX2N4eChtb2RuYW1lLCBjb2RlLCBpbnRlcmZhY2UpCi0tICAgICAgICBjeHgxLCBfID0gZ2Vu ZXJhdGVfY3h4KG1vZG5hbWUsIGNvZGUsIGludGVyZmFjZSkKLS0gICAgICAgIHNlbGYubWF4RGlm ZiwgbWF4RGlmZiA9IE5vbmUsIHNlbGYubWF4RGlmZgotLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh bChzdHIoY3h4MCksIHN0cihjeHgxKSkKLS0gICAgICAgIHNlbGYubWF4RGlmZiA9IG1heERpZmYK LSsgICAgICAgIG1vZHVsZSwgZXJyb3JfY2hlY2tlciA9IGdlbmVyYXRlX2N4eChtb2RuYW1lLCBj b2RlLCBpbnRlcmZhY2UpCi0rICAgICAgICBjeHhfY29kZSA9IHN0cihtb2R1bGUpCi0rICAgICAg ICBkZWwgbW9kdWxlCi0gCi0tICAgICAgICBjeHhfY29tcGlsZWQgPSBjb21waWxlX3B5dGhyYW5j b2RlKAotLSAgICAgICAgICAgIG1vZG5hbWUsIGNvZGUsIGludGVyZmFjZSwgZXh0cmFfY29tcGls ZV9hcmdzPXNlbGYuUFlUSFJBTl9DWFhfRkxBR1MpCi0rICAgICAgICAjIFZlcmlmeSB0aGF0IGNv ZGUgZ2VuZXJhdGlvbiBpcyBkZXRlcm1pbmlzdGljIGJ5IGdlbmVyYXRpbmcgdHdpY2UKLSsgICAg ICAgICMgYW5kIGNvbXBhcmluZy4gU2V0IFBZVEhSQU5fU0tJUF9ERVRFUk1JTklTTV9DSEVDSz0x IHRvIGRpc2FibGUKLSsgICAgICAgICMgdGhpcyBjaGVjayBhbmQgcmVkdWNlIG1lbW9yeSB1c2Fn ZSAoZS5nLiBmb3IgMzItYml0IHN5c3RlbXMpLgotKyAgICAgICAgaWYgbm90IG9zLmVudmlyb24u Z2V0KCdQWVRIUkFOX1NLSVBfREVURVJNSU5JU01fQ0hFQ0snKToKLSsgICAgICAgICAgICBjeHgx LCBfID0gZ2VuZXJhdGVfY3h4KG1vZG5hbWUsIGNvZGUsIGludGVyZmFjZSkKLSsgICAgICAgICAg ICBzZWxmLm1heERpZmYsIG1heERpZmYgPSBOb25lLCBzZWxmLm1heERpZmYKLSsgICAgICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKGN4eF9jb2RlLCBzdHIoY3h4MSkpCi0rICAgICAgICAgICAgc2Vs Zi5tYXhEaWZmID0gbWF4RGlmZgotKyAgICAgICAgICAgIGRlbCBjeHgxCi0rCi0rICAgICAgICB0 cnk6Ci0rICAgICAgICAgICAgY3h4X2NvbXBpbGVkID0gY29tcGlsZV9jeHhjb2RlKG1vZG5hbWUs IGN4eF9jb2RlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl eHRyYV9jb21waWxlX2FyZ3M9c2VsZi5QWVRIUkFOX0NYWF9GTEFHUykKLSsgICAgICAgIGV4Y2Vw dCBQeXRocmFuQ29tcGlsZUVycm9yOgotKyAgICAgICAgICAgIGVycm9yX2NoZWNrZXIoKQotKyAg ICAgICAgICAgIHJhaXNlCi0gCi0gICAgICAgICAjIEZJWE1FIENoZWNrIHNob3VsZCBiZSBkb25l IG9uIGlucHV0IHBhcmFtZXRlcnMgYWZ0ZXIgZnVuY3Rpb24gY2FsbAotICAgICAgICAgcHl0aG9u X3JlZiA9IHNlbGYucnVuX3B5dGhvbihjb2RlLCAobmFtZSwgY29weS5kZWVwY29weShwYXJhbXMp KSwKCmRpZmYgLS1naXQgYS8yNDE0LnBhdGNoIGIvMjQxNC5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggNTEwMGFkYS4uMDAwMDAwMAotLS0gYS8yNDE0LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMzEgKzAsMCBAQAotRnJvbSBlNWZiNWQ5YjU4ZDhhZmM4ZGQ4YTAwNDk3MGJm NzAxYTUwMWExYmEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQ2hhcmFsYW1wb3Mg U3RyYXRha2lzIDxjc3RyYXRha0ByZWRoYXQuY29tPgotRGF0ZTogV2VkLCAyNSBGZWIgMjAyNiAx NzowMzowNCArMDEwMAotU3ViamVjdDogW1BBVENIIDEvMl0gV2lkZW4gdG9sZXJhbmNlIGluIHRl c3RfbnVtcHlfcmFuZG9tX2J5dGVzMQotCi1UaGUgcHJldmlvdXMgcmVkdWN0aW9uIGZyb20gMTAq KjggdG8gMTAqKjcgc2FtcGxlcyAodG8gYXZvaWQgMzItYml0Ci1tZW1vcnkgZXhoYXVzdGlvbikg aW5jcmVhc2VkIHRoZSBzdGF0aXN0aWNhbCB2YXJpYW5jZS4gV2l0aCAxMCoqNwotc2FtcGxlcyBh bmQgMC4wNSB0b2xlcmFuY2UgdGhlcmUgaXMgcm91Z2hseSBhIDMlIGNoYW5jZSBvZgotdGhlIG1l YW4gZmFsbGluZyBvdXRzaWRlIHRoZSBib3VuZCBvbiBhbnkgZ2l2ZW4gcnVuLiBTaW5jZSBkaWZm ZXJlbnQKLWFyY2hpdGVjdHVyZXMgdXNlcyBkaWZmZXJlbnQgcmFuZG9tIHNlZWRzLCB0aGlzIGNh biBjYXVzZSBzcG9yYWRpYwotZmFpbHVyZXMgKG9ic2VydmVkIGluIHMzOTB4LCBwcGM2NGxlKS4K LQotV2lkZW4gdG8gMC4xIHdoaWNoIHByb3ZpZGVzIHN1ZmZpY2llbnQgaGVhZHJvb20gdG8gbWFr ZSByYW5kb20KLWZhaWx1cmVzIHN0YXRpc3RpY2FsbHkgbmVnbGlnaWJsZSB3aGlsZSBzdGlsbCBk ZXRlY3RpbmcgYSBicm9rZW4gUk5HLgotLS0tCi0gcHl0aHJhbi90ZXN0cy90ZXN0X251bXB5X3Jh bmRvbS5weSB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKLQotZGlmZiAtLWdpdCBhL3B5dGhyYW4vdGVzdHMvdGVzdF9udW1weV9yYW5kb20ucHkg Yi9weXRocmFuL3Rlc3RzL3Rlc3RfbnVtcHlfcmFuZG9tLnB5Ci1pbmRleCA0ODUwNzQ4ZTMuLjNl ODZkMzcyNiAxMDA2NDQKLS0tLSBhL3B5dGhyYW4vdGVzdHMvdGVzdF9udW1weV9yYW5kb20ucHkK LSsrKyBiL3B5dGhyYW4vdGVzdHMvdGVzdF9udW1weV9yYW5kb20ucHkKLUBAIC02NDAsNyArNjQw LDcgQEAgZGVmIG51bXB5X3JhbmRvbV9ieXRlczEobik6Ci0gICAgICAgICAgICAgICAgIGZyb20g bnVtcHkucmFuZG9tIGltcG9ydCBieXRlcwotICAgICAgICAgICAgICAgICBmcm9tIG51bXB5IGlt cG9ydCBtZWFuLCBmcm9tYnVmZmVyLCB1aW50OCwgYXNhcnJheQotICAgICAgICAgICAgICAgICBh ID0gYnl0ZXMobikKLS0gICAgICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhc2FycmF5KGZy b21idWZmZXIoYSwgdWludDgpLCBkdHlwZT1mbG9hdCkpIC0gMTI3LjUpIDwgLjA1KSIiIiwKLSsg ICAgICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhc2FycmF5KGZyb21idWZmZXIoYSwgdWlu dDgpLCBkdHlwZT1mbG9hdCkpIC0gMTI3LjUpIDwgLjEpIiIiLAotICAgICAgICAgICAgICAgICAg ICAgICAxMCAqKiA3LCBudW1weV9yYW5kb21fYnl0ZXMxPVtpbnRdKQotIAotICAgICAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKCmRpZmYgLS1naXQgYS8yNDE1LnBhdGNoIGIvMjQxNS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM1Mzc2NS4uMDAwMDAwMAotLS0gYS8yNDE1LnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsNTQyICswLDAgQEAKLUZyb20gYjA2ZjdhODI3MGRiOGVjOGQ5 OGM4ZjViNTUyMzRjMGY1MzQ4NjhmMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IENo YXJhbGFtcG9zIFN0cmF0YWtpcyA8Y3N0cmF0YWtAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMjUg RmViIDIwMjYgMTg6NDI6MDggKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gV2lkZW4gdmFyaWFuY2Ug dG9sZXJhbmNlIGluIHJhbmRvbSBkaXN0cmlidXRpb24gdGVzdHMKLQotVGhlIHZhcmlhbmNlIGNo ZWNrIGluIHN0YXRpc3RpY2FsIHRlc3RzIHVzZWQgYSB0b2xlcmFuY2Ugb2YgMC4wNSB3aGljaAot aXMgdG9vIHRpZ2h0IGZvciB0aGUgZ2l2ZW4gc2FtcGxlIHNpemVzLiBUaGlzIGNhbiBjYXVzZSBz cG9yYWRpYwotZmFpbHVyZXMgYWNyb3NzIENJIGFyY2hpdGVjdHVyZXMgc2luY2UgdGhlIFB5dGhv biBhbmQgUHl0aHJhbiBjb2RlIHVzZQotaW5kZXBlbmRlbnQgcmFuZG9tIHNlZWRzLgotCi1XaWRl biBmcm9tIDAuMDUgdG8gMC4xIGFjcm9zcyBhbGwgYWJzb2x1dGUgdmFyaWFuY2UgY2hlY2tzLCBt YXRjaGluZwotdGhlIHRvbGVyYW5jZSBhbHJlYWR5IHVzZWQgYnkgcmVjZW50bHkgYWRkZWQgdGVz dHMuCi0tLS0KLSBweXRocmFuL3Rlc3RzL3Rlc3RfbnVtcHlfcmFuZG9tLnB5IHwgMTE2ICsrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDU4IGluc2VydGlvbnMo KyksIDU4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcHl0aHJhbi90ZXN0cy90ZXN0X251 bXB5X3JhbmRvbS5weSBiL3B5dGhyYW4vdGVzdHMvdGVzdF9udW1weV9yYW5kb20ucHkKLWluZGV4 IDQ4NTA3NDhlMy4uY2Q1NzgyZTZlIDEwMDY0NAotLS0tIGEvcHl0aHJhbi90ZXN0cy90ZXN0X251 bXB5X3JhbmRvbS5weQotKysrIGIvcHl0aHJhbi90ZXN0cy90ZXN0X251bXB5X3JhbmRvbS5weQot QEAgLTE4MCw3ICsxODAsNyBAQCBkZWYgbnVtcHlfYmlub21pYWwwKG4sIHAsIHNpemUpOgotICAg ICAgICAgIGZyb20gbnVtcHkucmFuZG9tIGltcG9ydCBiaW5vbWlhbAotICAgICAgICAgIGZyb20g bnVtcHkgaW1wb3J0IHZhcgotICAgICAgICAgIGEgPSBbYmlub21pYWwobiwgcCkgZm9yIHggaW4g cmFuZ2Uoc2l6ZSldCi0tICAgICAgICAgcmV0dXJuIChhYnMoZmxvYXQoc3VtKGEpKS9zaXplIC0g biAqIHApIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gbipwKigxLXApKSA8IC4wNSkKLSsgICAgICAg ICByZXR1cm4gKGFicyhmbG9hdChzdW0oYSkpL3NpemUgLSBuICogcCkgPCAuMDUgYW5kIGFicyh2 YXIoYSkgLSBuKnAqKDEtcCkpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVu X3Rlc3QoY29kZSwgMTAuLCAuMiwgMTAqKjUsIG51bXB5X2Jpbm9taWFsMD1bZmxvYXQsIGZsb2F0 LCBpbnRdKQotIAotQEAgLTE5MCw3ICsxOTAsNyBAQCBkZWYgbnVtcHlfYmlub21pYWwxKG4sIHAs IHNpemUpOgotICAgICAgICAgIGZyb20gbnVtcHkucmFuZG9tIGltcG9ydCBiaW5vbWlhbAotICAg ICAgICAgIGZyb20gbnVtcHkgaW1wb3J0IHZhcgotICAgICAgICAgIGE9Ymlub21pYWwobiwgcCwg c2l6ZSkKLS0gICAgICAgICByZXR1cm4gKGFicyhmbG9hdChzdW0oYSkpL3NpemUgLSBuICogcCkg PCAuMDUgYW5kIGFicyh2YXIoYSkgLSBuKnAqKDEtcCkpIDwgLjA1KQotKyAgICAgICAgIHJldHVy biAoYWJzKGZsb2F0KHN1bShhKSkvc2l6ZSAtIG4gKiBwKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAt IG4qcCooMS1wKSkgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChj b2RlLCA3LiwgLjIsIDEwKio1LCBudW1weV9iaW5vbWlhbDE9W2Zsb2F0LCBmbG9hdCwgaW50XSkK LSAKLUBAIC0yMDAsNyArMjAwLDcgQEAgZGVmIG51bXB5X2Jpbm9taWFsMihuLCBwLCBzaXplKToK LSAgICAgICAgICBmcm9tIG51bXB5LnJhbmRvbSBpbXBvcnQgYmlub21pYWwKLSAgICAgICAgICBm cm9tIG51bXB5IGltcG9ydCBzdW0sIHZhcgotICAgICAgICAgIGE9Ymlub21pYWwobiwgcCwgKHNp emUsIHNpemUpKQotLSAgICAgICAgIHJldHVybiAoYWJzKGZsb2F0KHN1bShhKSkvKHNpemUqc2l6 ZSkgLSBuICogcCkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBuKnAqKDEtcCkpIDwgLjA1KQotKyAg ICAgICAgIHJldHVybiAoYWJzKGZsb2F0KHN1bShhKSkvKHNpemUqc2l6ZSkgLSBuICogcCkgPCAu MDUgYW5kIGFicyh2YXIoYSkgLSBuKnAqKDEtcCkpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAg ICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgOS4sIC4yLCAxMCoqMywgbnVtcHlfYmlub21pYWwyPVtm bG9hdCwgZmxvYXQsIGludF0pCi0gCi1AQCAtMjMxLDcgKzIzMSw3IEBAIGRlZiBudW1weV9zdGFu ZGFyZF9ub3JtYWwwKHNpemUpOgotICAgICAgICAgICAgIGZyb20gbnVtcHkgaW1wb3J0IHZhciwg bWVhbgotICAgICAgICAgICAgIGEgPSBbc3RhbmRhcmRfbm9ybWFsKCkgZm9yIHggaW4gcmFuZ2Uo c2l6ZSldCi0gICAgICAgICAgICAgcHJpbnQobWVhbihhKSkKLS0gICAgICAgICAgICByZXR1cm4g KGFicyhtZWFuKGEpKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjA1KQotKyAgICAgICAg ICAgIHJldHVybiAoYWJzKG1lYW4oYSkpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMSkK LSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA1LCBudW1w eV9zdGFuZGFyZF9ub3JtYWwwPVtpbnRdKQotIAotQEAgLTI0Myw3ICsyNDMsNyBAQCBkZWYgbnVt cHlfc3RhbmRhcmRfbm9ybWFsMShzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9y dCB2YXIsIG1lYW4KLSAgICAgICAgICAgICBhID0gc3RhbmRhcmRfbm9ybWFsKHNpemUpCi0gICAg ICAgICAgICAgcHJpbnQobWVhbihhKSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEp KSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAo YWJzKG1lYW4oYSkpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMSkKLSAgICAgICAgICIi IgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA1LCBudW1weV9zdGFuZGFyZF9u b3JtYWwxPVtpbnRdKQotIAotQEAgLTI1NSw3ICsyNTUsNyBAQCBkZWYgbnVtcHlfc3RhbmRhcmRf bm9ybWFsMihzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCBtZWFuLCB2YXIK LSAgICAgICAgICAgICBhID0gc3RhbmRhcmRfbm9ybWFsKChzaXplLCBzaXplKSkKLSAgICAgICAg ICAgICBwcmludChtZWFuKGEpKQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkpIDwg LjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMo bWVhbihhKSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4xKQotICAgICAgICAgIiIiCi0g ICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDMsIG51bXB5X3N0YW5kYXJkX25vcm1h bDI9W2ludF0pCi0gCi1AQCAtMjcxLDcgKzI3MSw3IEBAIGRlZiBudW1weV9ub3JtYWwwKHNpemUp OgotICAgICAgICAgICAgIGZyb20gbnVtcHkgaW1wb3J0IHZhciwgbWVhbgotICAgICAgICAgICAg IGEgPSBbbm9ybWFsKCkgZm9yIHggaW4gcmFuZ2Uoc2l6ZSldCi0gICAgICAgICAgICAgcHJpbnQo bWVhbihhKSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpKSA8IC4wNSBhbmQgYWJz KHZhcihhKSAtIDEpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkpIDwg LjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2Vs Zi5ydW5fdGVzdChjb2RlLCAxMCAqKiA1LCBudW1weV9ub3JtYWwwPVtpbnRdKQotIAotQEAgLTI4 Myw3ICsyODMsNyBAQCBkZWYgbnVtcHlfbm9ybWFsMGEoc2l6ZSk6Ci0gICAgICAgICAgICAgZnJv bSBudW1weSBpbXBvcnQgdmFyLCBtZWFuCi0gICAgICAgICAgICAgYSA9IFtub3JtYWwoMy4pIGZv ciB4IGluIHJhbmdlKHNpemUpXQotICAgICAgICAgICAgIHByaW50KG1lYW4oYSkpCi0tICAgICAg ICAgICAgcmV0dXJuIChhYnMobWVhbihhKS0zKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8 IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpLTMpIDwgMC4wNSBhbmQgYWJz KHZhcihhKSAtIDEpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3Qo Y29kZSwgMTAgKiogNSwgbnVtcHlfbm9ybWFsMGE9W2ludF0pCi0gCi1AQCAtMzEwLDcgKzMxMCw3 IEBAIGRlZiBudW1weV9ub3JtYWwxKHNpemUpOgotICAgICAgICAgICAgIGZyb20gbnVtcHkgaW1w b3J0IHZhciwgbWVhbgotICAgICAgICAgICAgIGEgPSBub3JtYWwoc2l6ZT1zaXplKQotICAgICAg ICAgICAgIHByaW50KG1lYW4oYSkpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSkg PCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFi cyhtZWFuKGEpKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjEpCi0gICAgICAgICAiIiIK LSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNSwgbnVtcHlfbm9ybWFsMT1baW50 XSkKLSAKLUBAIC0zMjIsNyArMzIyLDcgQEAgZGVmIG51bXB5X25vcm1hbDIoc2l6ZSk6Ci0gICAg ICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgbWVhbiwgdmFyCi0gICAgICAgICAgICAgYSA9IG5v cm1hbChzaXplPShzaXplLCBzaXplKSkKLSAgICAgICAgICAgICBwcmludChtZWFuKGEpKQotLSAg ICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkg PCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSkgPCAuMDUgYW5kIGFicyh2 YXIoYSkgLSAxKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNv ZGUsIDEwICoqIDMsIG51bXB5X25vcm1hbDI9W2ludF0pCi0gCi1AQCAtMzM4LDcgKzMzOCw3IEBA IGRlZiBudW1weV9wb2lzc29uMChzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9y dCB2YXIsIG1lYW4KLSAgICAgICAgICAgICBhID0gW3BvaXNzb24oKSBmb3IgeCBpbiByYW5nZShz aXplKV0KLSAgICAgICAgICAgICBwcmludChtZWFuKGEpKQotLSAgICAgICAgICAgIHJldHVybiAo YWJzKG1lYW4oYSktMSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4wNSkKLSsgICAgICAg ICAgICByZXR1cm4gKGFicyhtZWFuKGEpLTEpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAu MSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA1LCBu dW1weV9wb2lzc29uMD1baW50XSkKLSAKLUBAIC0zNTAsNyArMzUwLDcgQEAgZGVmIG51bXB5X3Bv aXNzb24wYShzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCB2YXIsIG1lYW4K LSAgICAgICAgICAgICBhID0gW3BvaXNzb24oMy4pIGZvciB4IGluIHJhbmdlKHNpemUpXQotICAg ICAgICAgICAgIHByaW50KG1lYW4oYSkpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihh KS0zKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDMpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVy biAoYWJzKG1lYW4oYSktMykgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAzKSA8IC4xKQotICAgICAg ICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDUsIG51bXB5X3BvaXNz b24wYT1baW50XSkKLSAKLUBAIC0zNzcsNyArMzc3LDcgQEAgZGVmIG51bXB5X3BvaXNzb24xKHNp emUpOgotICAgICAgICAgICAgIGZyb20gbnVtcHkgaW1wb3J0IHZhciwgbWVhbgotICAgICAgICAg ICAgIGEgPSBwb2lzc29uKHNpemU9c2l6ZSkKLSAgICAgICAgICAgICBwcmludChtZWFuKGEpKQot LSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSktMSkgPCAuMDUgYW5kIGFicyh2YXIoYSkg LSAxKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpLTEpIDwgLjA1IGFu ZCBhYnModmFyKGEpIC0gMSkgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5f dGVzdChjb2RlLCAxMCAqKiA1LCBudW1weV9wb2lzc29uMT1baW50XSkKLSAKLUBAIC0zODksNyAr Mzg5LDcgQEAgZGVmIG51bXB5X3BvaXNzb24yKHNpemUpOgotICAgICAgICAgICAgIGZyb20gbnVt cHkgaW1wb3J0IG1lYW4sIHZhcgotICAgICAgICAgICAgIGEgPSBwb2lzc29uKHNpemU9KHNpemUs IHNpemUpKQotICAgICAgICAgICAgIHByaW50KG1lYW4oYSkpCi0tICAgICAgICAgICAgcmV0dXJu IChhYnMobWVhbihhKS0xKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjA1KQotKyAgICAg ICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSktMSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8 IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDMs IG51bXB5X3BvaXNzb24yPVtpbnRdKQotIAotQEAgLTQwNCw3ICs0MDQsNyBAQCBkZWYgbnVtcHlf cmFuZG4wKG4pOgotICAgICAgICAgICAgICAgICBmcm9tIG51bXB5LnJhbmRvbSBpbXBvcnQgcmFu ZG4KLSAgICAgICAgICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgbWVhbiwgdmFyCi0gICAgICAg ICAgICAgICAgIGEgPSBbcmFuZG4oKSBmb3IgeCBpbiByYW5nZShuKV0KLS0gICAgICAgICAgICAg ICAgcmV0dXJuIChhYnMobWVhbihhKSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4wNSki IiIsCi0rICAgICAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkpIDwgLjA1IGFuZCBhYnMo dmFyKGEpIC0gMSkgPCAuMSkiIiIsCi0gICAgICAgICAgICAgICAgICAgICAgIDEwICoqIDUsIG51 bXB5X3JhbmRuMD1baW50XSkKLSAKLSAgICAgZGVmIHRlc3RfbnVtcHlfcmFuZG4xKHNlbGYpOgot QEAgLTQxNCw3ICs0MTQsNyBAQCBkZWYgbnVtcHlfcmFuZG4xKG4pOgotICAgICAgICAgICAgICAg ICBmcm9tIG51bXB5LnJhbmRvbSBpbXBvcnQgcmFuZG4KLSAgICAgICAgICAgICAgICAgZnJvbSBu dW1weSBpbXBvcnQgbWVhbiwgdmFyCi0gICAgICAgICAgICAgICAgIGEgPSByYW5kbihuLCBuKQot LSAgICAgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpKSA8IC4wNSBhbmQgYWJzKHZhcihh KSAtIDEpIDwgLjA1KSIiIiwKLSsgICAgICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSkg PCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4xKSIiIiwKLSAgICAgICAgICAgICAgICAgICAg ICAgMTAgKiogMywgbnVtcHlfcmFuZG4xPVtpbnRdKQotIAotICAgICAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLUBAIC02NTQsNyArNjU0LDcgQEAgZGVmIG51bXB5X2V4cG9uZW50aWFsMChzaXplKToKLSAg ICAgICAgICAgICBmcm9tIG51bXB5LnJhbmRvbSBpbXBvcnQgZXhwb25lbnRpYWwKLSAgICAgICAg ICAgICBmcm9tIG51bXB5IGltcG9ydCB2YXIsIG1lYW4KLSAgICAgICAgICAgICBhID0gW2V4cG9u ZW50aWFsKCkgZm9yIHggaW4gcmFuZ2Uoc2l6ZSldCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMo bWVhbihhKSAtMSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4wNSkKLSsgICAgICAgICAg ICByZXR1cm4gKGFicyhtZWFuKGEpIC0xKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjEp Ci0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNiwgbnVt cHlfZXhwb25lbnRpYWwwPVtpbnRdKQotIAotQEAgLTY2Niw3ICs2NjYsNyBAQCBkZWYgbnVtcHlf ZXhwb25lbnRpYWwwYShzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCB2YXIs IG1lYW4KLSAgICAgICAgICAgICBzY2FsZSA9IDIuCi0gICAgICAgICAgICAgYSA9IFtleHBvbmVu dGlhbChzY2FsZSkgZm9yIHggaW4gcmFuZ2Uoc2l6ZSldCi0tICAgICAgICAgICAgcmV0dXJuIChh YnMobWVhbihhKSAtIHNjYWxlKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBzY2FsZSoqMikgPCAu MDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHNjYWxlKSA8IDAuMDUgYW5k IGFicyh2YXIoYSkgLSBzY2FsZSoqMikgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2Vs Zi5ydW5fdGVzdChjb2RlLCAxMCAqKiA2LCBudW1weV9leHBvbmVudGlhbDBhPVtpbnRdKQotIAot QEAgLTY4OSw3ICs2ODksNyBAQCBkZWYgbnVtcHlfZXhwb25lbnRpYWwxKHNpemUpOgotICAgICAg ICAgICAgIGZyb20gbnVtcHkucmFuZG9tIGltcG9ydCBleHBvbmVudGlhbAotICAgICAgICAgICAg IGZyb20gbnVtcHkgaW1wb3J0IHZhciwgbWVhbgotICAgICAgICAgICAgIGEgPSBleHBvbmVudGlh bChzaXplPXNpemUpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtMSApPCAuMDUg YW5kIGFicyh2YXIoYSkgLSAxKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFu KGEpIC0xICk8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjEpCi0gICAgICAgICAiIiIKLSAg ICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNiwgbnVtcHlfZXhwb25lbnRpYWwxPVtp bnRdKQotIAotQEAgLTcwMCw3ICs3MDAsNyBAQCBkZWYgbnVtcHlfZXhwb25lbnRpYWwyKHNpemUp OgotICAgICAgICAgICAgIGZyb20gbnVtcHkucmFuZG9tIGltcG9ydCBleHBvbmVudGlhbAotICAg ICAgICAgICAgIGZyb20gbnVtcHkgaW1wb3J0IG1lYW4sIHZhcgotICAgICAgICAgICAgIGEgPSBl eHBvbmVudGlhbChzaXplPShzaXplLCBzaXplKSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyht ZWFuKGEpKSAtMSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjA1KQotKyAgICAgICAgICAg IHJldHVybiAoYWJzKG1lYW4oYSkpIC0xIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMSkK LSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiAzLCBudW1w eV9leHBvbmVudGlhbDI9W2ludF0pCi0gCi1AQCAtNzE2LDcgKzcxNiw3IEBAIGRlZiBudW1weV9j aGlzcXVhcmUwYShzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCB2YXIsIG1l YW4KLSAgICAgICAgICAgICBkZiA9IDMuCi0gICAgICAgICAgICAgYSA9IFtjaGlzcXVhcmUoZGYp IGZvciB4IGluIHJhbmdlKHNpemUpXQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkg LSBkZikgPCAwLjA1IGFuZCBhYnModmFyKGEpIC0gMipkZikgPCAuMDUpCi0rICAgICAgICAgICAg cmV0dXJuIChhYnMobWVhbihhKSAtIGRmKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSAyKmRmKSA8 IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDYs IG51bXB5X2NoaXNxdWFyZTBhPVtpbnRdKQotIAotQEAgLTcyOCw3ICs3MjgsNyBAQCBkZWYgbnVt cHlfY2hpc3F1YXJlMGIoc2l6ZSk6Ci0gICAgICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgdmFy LCBtZWFuLCBzcXJ0Ci0gICAgICAgICAgICAgZGYgPSAyCi0gICAgICAgICAgICAgYSA9IGNoaXNx dWFyZShkZiwgc2l6ZSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gZGYpIDwg MC4wNSBhbmQgYWJzKHZhcihhKSAtIGRmKjIgKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4g KGFicyhtZWFuKGEpIC0gZGYpIDwgMC4wNSBhbmQgYWJzKHZhcihhKSAtIGRmKjIgKSA8IC4xKQot ICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDYsIG51bXB5 X2NoaXNxdWFyZTBiPVtpbnRdKQotIAotQEAgLTc0MCw3ICs3NDAsNyBAQCBkZWYgbnVtcHlfY2hp c3F1YXJlMihzaXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCBtZWFuLCB2YXIK LSAgICAgICAgICAgICBkZiA9IDEKLSAgICAgICAgICAgICBhID0gY2hpc3F1YXJlKGRmLCBzaXpl PShzaXplLCBzaXplKSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpKSAtIGRmIDwg LjA1IGFuZCBhYnModmFyKGEpIC0gMipkZikgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChh YnMobWVhbihhKSkgLSBkZiA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDIqZGYpIDwgLjEpCi0gICAg ICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogMywgbnVtcHlfY2hp c3F1YXJlMj1baW50XSkKLSAKLUBAIC03NjgsNyArNzY4LDcgQEAgZGVmIG51bXB5X2dhbW1hMGIo c2l6ZSk6Ci0gICAgICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgdmFyLCBtZWFuLCBzcXJ0Ci0g ICAgICAgICAgICAgc2hhcGUsIHNjYWxlID0gMSwyCi0gICAgICAgICAgICAgYSA9IGdhbW1hKHNo YXBlLCBzY2FsZSwgc2l6ZSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gc2hh cGUqc2NhbGUpIDwgMC4wNSBhbmQgYWJzKHZhcihhKSAtIHNoYXBlKnNjYWxlKioyKSA8IC4wNSkK LSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gc2hhcGUqc2NhbGUpIDwgMC4wNSBh bmQgYWJzKHZhcihhKSAtIHNoYXBlKnNjYWxlKioyKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAg ICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDYsIG51bXB5X2dhbW1hMGI9W2ludF0pCi0g Ci1AQCAtNzgwLDcgKzc4MCw3IEBAIGRlZiBudW1weV9nYW1tYTIoc2l6ZSk6Ci0gICAgICAgICAg ICAgZnJvbSBudW1weSBpbXBvcnQgbWVhbiwgdmFyCi0gICAgICAgICAgICAgc2hhcGUgPSAyCi0g ICAgICAgICAgICAgYSA9IGdhbW1hKHNoYXBlID0gc2hhcGUsIHNpemU9KHNpemUsIHNpemUpKQot LSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBzaGFwZSkgPCAuMDUgYW5kIGFicyh2 YXIoYSkgLSBzaGFwZSkgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAt IHNoYXBlKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHNoYXBlKSA8IC4xKQotICAgICAgICAgIiIi Ci0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDMsIG51bXB5X2dhbW1hMj1baW50 XSkKLSAKLUBAIC03OTYsNyArNzk2LDcgQEAgZGVmIG51bXB5X3dlaWJ1bGwwYShzaXplKToKLSAg ICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCB2YXIsIG1lYW4KLSAgICAgICAgICAgICBwYSA9 IDMuCi0gICAgICAgICAgICAgYSA9IFt3ZWlidWxsKHBhKSBmb3IgeCBpbiByYW5nZShzaXplKV0K LS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcGEpIDwgMC4wNSBhbmQgYWJzKHZh cihhKSAtIDIqcGEpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBw YSkgPCAwLjA1IGFuZCBhYnModmFyKGEpIC0gMipwYSkgPCAuMSkKLSAgICAgICAgICIiIgotICAg ICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA2LCBudW1weV93ZWlidWxsMGE9W2ludF0p Ci0gCi1AQCAtODA4LDcgKzgwOCw3IEBAIGRlZiBudW1weV93ZWlidWxsMGIoc2l6ZSk6Ci0gICAg ICAgICAgICAgZnJvbSBudW1weSBpbXBvcnQgdmFyLCBtZWFuLCBzcXJ0Ci0gICAgICAgICAgICAg cGEgPSAyCi0gICAgICAgICAgICAgYSA9IHdlaWJ1bGwocGEsIHNpemUpCi0tICAgICAgICAgICAg cmV0dXJuIChhYnMobWVhbihhKSAtIHBhKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBwYSoyICkg PCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHBhKSA8IDAuMDUgYW5k IGFicyh2YXIoYSkgLSBwYSoyICkgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5y dW5fdGVzdChjb2RlLCAxMCAqKiA2LCBudW1weV93ZWlidWxsMGI9W2ludF0pCi0gCi1AQCAtODIw LDcgKzgyMCw3IEBAIGRlZiBudW1weV93ZWlidWxsMihzaXplKToKLSAgICAgICAgICAgICBmcm9t IG51bXB5IGltcG9ydCBtZWFuLCB2YXIKLSAgICAgICAgICAgICBwYSA9IDEKLSAgICAgICAgICAg ICBhID0gd2VpYnVsbChwYSwgc2l6ZT0oc2l6ZSwgc2l6ZSkpCi0tICAgICAgICAgICAgcmV0dXJu IChhYnMobWVhbihhKSkgLSBwYSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDIqcGEpIDwgLjA1KQot KyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkpIC0gcGEgPCAuMDUgYW5kIGFicyh2YXIo YSkgLSAyKnBhKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNv ZGUsIDEwICoqIDMsIG51bXB5X3dlaWJ1bGwyPVtpbnRdKQotIAotQEAgLTk1OSw3ICs5NTksNyBA QCBkZWYgbnVtcHlfcGFyZXRvMGEoc2l6ZSk6Ci0gICAgICAgICAgICAgYWxwaGEgPSAxMAotICAg ICAgICAgICAgIHJ2YXIgPSBhbHBoYS8oKGFscGhhLTEpKioyKihhbHBoYS0yKSkKLSAgICAgICAg ICAgICBhID0gW3BhcmV0byhhbHBoYSkgZm9yIHggaW4gcmFuZ2Uoc2l6ZSldCi0tICAgICAgICAg ICAgcmV0dXJuIChhYnMobWVhbihhKS0gMC41KSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIp IDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSktIDAuNSkgPCAuMDUgYW5k IGFicyh2YXIoYSkgLSBydmFyKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1 bl90ZXN0KGNvZGUsIDEwICoqIDYsIG51bXB5X3BhcmV0bzBhPVtpbnRdKQotIAotQEAgLTk3Miw3 ICs5NzIsNyBAQCBkZWYgbnVtcHlfcGFyZXRvMGIoc2l6ZSk6Ci0gICAgICAgICAgICAgYWxwaGEg PSA2Ci0gICAgICAgICAgICAgcnZhciA9IGFscGhhLygoYWxwaGEtMSkqKjIqKGFscGhhLTIpKQot ICAgICAgICAgICAgIGEgPSBwYXJldG8oYWxwaGEsIHNpemUpCi0tICAgICAgICAgICAgcmV0dXJu IChhYnMobWVhbihhKS0gMC41KSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4wNSkK LSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpLSAwLjUpIDwgMC4wNSBhbmQgYWJzKHZh cihhKSAtIHJ2YXIpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3Qo Y29kZSwgMTAgKiogNiwgbnVtcHlfcGFyZXRvMGI9W2ludF0pCi0gCi1AQCAtOTg1LDcgKzk4NSw3 IEBAIGRlZiBudW1weV9wYXJldG8yKHNpemUpOgotICAgICAgICAgICAgIGFscGhhID0gNQotICAg ICAgICAgICAgIHJ2YXIgPSBhbHBoYS8oKGFscGhhLTEpKioyKihhbHBoYS0yKSkKLSAgICAgICAg ICAgICBhID0gcGFyZXRvKGFscGhhLCBzaXplPShzaXplLCBzaXplKSkKLS0gICAgICAgICAgICBy ZXR1cm4gKGFicyhtZWFuKGEpLSAwLjUpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAu MDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKS0gMC41KSA8IC4wNSBhbmQgYWJz KHZhcihhKSAtIHJ2YXIpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rl c3QoY29kZSwgMTAgKiogMywgbnVtcHlfcGFyZXRvMj1baW50XSkKLSAKLUBAIC0xMDAzLDcgKzEw MDMsNyBAQCBkZWYgbnVtcHlfcG93ZXIwYShzaXplKToKLSAgICAgICAgICAgICBybWVhbiA9IGFs cGhhIC8gKGFscGhhICsgMSkKLSAgICAgICAgICAgICBydmFyID0gYWxwaGEvKChhbHBoYSsxKSoq MiooYWxwaGErMikpCi0gICAgICAgICAgICAgYSA9IFtwb3dlcihhbHBoYSkgZm9yIHggaW4gcmFu Z2Uoc2l6ZSldCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKS0gcm1lYW4pIDwgLjA1 IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMo bWVhbihhKS0gcm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMSkKLSAgICAg ICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA2LCBudW1weV9wb3dl cjBhPVtpbnRdKQotIAotQEAgLTEwMTcsNyArMTAxNyw3IEBAIGRlZiBudW1weV9wb3dlcjBiKHNp emUpOgotICAgICAgICAgICAgIHJtZWFuID0gYWxwaGEgLyAoYWxwaGEgKyAxKQotICAgICAgICAg ICAgIHJ2YXIgPSBhbHBoYS8oKGFscGhhKzEpKioyKihhbHBoYSsyKSkKLSAgICAgICAgICAgICBh ID0gcG93ZXIoYWxwaGEsIHNpemUpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKS0g cm1lYW4pIDwgMC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjA1KQotKyAgICAgICAgICAg IHJldHVybiAoYWJzKG1lYW4oYSktIHJtZWFuKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFy KSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoq IDYsIG51bXB5X3Bvd2VyMGI9W2ludF0pCi0gCi1AQCAtMTAzMSw3ICsxMDMxLDcgQEAgZGVmIG51 bXB5X3Bvd2VyMihzaXplKToKLSAgICAgICAgICAgICBybWVhbiA9IGFscGhhIC8gKGFscGhhICsg MSkKLSAgICAgICAgICAgICBydmFyID0gYWxwaGEvKChhbHBoYSsxKSoqMiooYWxwaGErMikpCi0g ICAgICAgICAgICAgYSA9IHBvd2VyKGFscGhhLCBzaXplPShzaXplLCBzaXplKSkKLS0gICAgICAg ICAgICByZXR1cm4gKGFicyhtZWFuKGEpLSBybWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBy dmFyKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpLSBybWVhbikgPCAu MDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBz ZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDMsIG51bXB5X3Bvd2VyMj1baW50XSkKLSAKLUBAIC0x MDQ5LDcgKzEwNDksNyBAQCBkZWYgbnVtcHlfcmF5bGVpZ2gwKHNpemUpOgotICAgICAgICAgICAg IHMgPSAyCi0gICAgICAgICAgICAgcm1lYW4gPSBzKnNxcnQocGkvMikKLSAgICAgICAgICAgICBy dmFyID0gKCg0LXBpKS8yKSpzKioyCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKS1y bWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4wNSkKLSsgICAgICAgICAgICBy ZXR1cm4gKGFicyhtZWFuKGEpLXJtZWFuKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwg LjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNSwg bnVtcHlfcmF5bGVpZ2gwPVtpbnRdKQotIAotQEAgLTEwNjMsNyArMTA2Myw3IEBAIGRlZiBudW1w eV9yYXlsZWlnaDBhKHNpemUpOgotICAgICAgICAgICAgIGEgPSBbcmF5bGVpZ2gocykgZm9yIHgg aW4gcmFuZ2Uoc2l6ZSldCi0gICAgICAgICAgICAgcm1lYW4gPSBzKnNxcnQocGkvMikKLSAgICAg ICAgICAgICBydmFyID0gKCg0LXBpKS8yKSpzKioyCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMo bWVhbihhKS1ybWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4wNSkKLSsgICAg ICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpLXJtZWFuKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAt IHJ2YXIpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwg MTAgKiogNSwgbnVtcHlfcmF5bGVpZ2gwYT1baW50XSkKLSAKLUBAIC0xMDc3LDcgKzEwNzcsNyBA QCBkZWYgbnVtcHlfcmF5bGVpZ2gwYihzaXplKToKLSAgICAgICAgICAgICBhID0gcmF5bGVpZ2go cywgc2l6ZSkKLSAgICAgICAgICAgICBybWVhbiA9IHMqc3FydChwaS8yKQotICAgICAgICAgICAg IHJ2YXIgPSAoKDQtcGkpLzIpKnMqKjIKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEp LXJtZWFuKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjA1KQotKyAgICAgICAgICAg IHJldHVybiAoYWJzKG1lYW4oYSktcm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikg PCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA1 LCBudW1weV9yYXlsZWlnaDBiPVtpbnRdKQotIAotQEAgLTEwOTEsNyArMTA5MSw3IEBAIGRlZiBu dW1weV9yYXlsZWlnaDEoc2l6ZSk6Ci0gICAgICAgICAgICAgcyA9IDIKLSAgICAgICAgICAgICBy bWVhbiA9IHMqc3FydChwaS8yKQotICAgICAgICAgICAgIHJ2YXIgPSAoKDQtcGkpLzIpKnMqKjIK LS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpLXJtZWFuKSA8IC4wNSBhbmQgYWJzKHZh cihhKSAtIHJ2YXIpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSktcm1l YW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMSkKLSAgICAgICAgICIiIgotICAg ICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA1LCBudW1weV9yYXlsZWlnaDE9W2ludF0p Ci0gCi1AQCAtMTEwNSw3ICsxMTA1LDcgQEAgZGVmIG51bXB5X3JheWxlaWdoMihzaXplKToKLSAg ICAgICAgICAgICBzID0gMgotICAgICAgICAgICAgIHJtZWFuID0gcypzcXJ0KHBpLzIpCi0gICAg ICAgICAgICAgcnZhciA9ICgoNC1waSkvMikqcyoqMgotLSAgICAgICAgICAgIHJldHVybiAoYWJz KG1lYW4oYSktcm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMDUpCi0rICAg ICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKS1ybWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkg LSBydmFyKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUs IDEwICoqIDMsIG51bXB5X3JheWxlaWdoMj1baW50XSkKLSAKLUBAIC0xMjE5LDcgKzEyMTksNyBA QCBkZWYgbnVtcHlfc3RhbmRhcmRfZXhwb25lbnRpYWwwKHNpemUpOgotICAgICAgICAgICAgIGZy b20gbnVtcHkucmFuZG9tIGltcG9ydCBzdGFuZGFyZF9leHBvbmVudGlhbAotICAgICAgICAgICAg IGZyb20gbnVtcHkgaW1wb3J0IHZhciwgbWVhbgotICAgICAgICAgICAgIGEgPSBbc3RhbmRhcmRf ZXhwb25lbnRpYWwoKSBmb3IgeCBpbiByYW5nZShzaXplKV0KLS0gICAgICAgICAgICByZXR1cm4g KGFicyhtZWFuKGEpIC0gMSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4wNSkKLSsgICAg ICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gMSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAx KSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoq IDUsIG51bXB5X3N0YW5kYXJkX2V4cG9uZW50aWFsMD1baW50XSkKLSAKLUBAIC0xMjMwLDcgKzEy MzAsNyBAQCBkZWYgbnVtcHlfc3RhbmRhcmRfZXhwb25lbnRpYWwxKHNpemUpOgotICAgICAgICAg ICAgIGZyb20gbnVtcHkucmFuZG9tIGltcG9ydCBzdGFuZGFyZF9leHBvbmVudGlhbAotICAgICAg ICAgICAgIGZyb20gbnVtcHkgaW1wb3J0IHZhciwgbWVhbgotICAgICAgICAgICAgIGEgPSBzdGFu ZGFyZF9leHBvbmVudGlhbChzaXplKQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkg LSAxKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVy biAoYWJzKG1lYW4oYSkgLSAxKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIDEpIDwgLjEpCi0gICAg ICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNSwgbnVtcHlfc3Rh bmRhcmRfZXhwb25lbnRpYWwxPVtpbnRdKQotIAotQEAgLTEyNDEsNyArMTI0MSw3IEBAIGRlZiBu dW1weV9zdGFuZGFyZF9leHBvbmVudGlhbDIoc2l6ZSk6Ci0gICAgICAgICAgICAgZnJvbSBudW1w eS5yYW5kb20gaW1wb3J0IHN0YW5kYXJkX2V4cG9uZW50aWFsCi0gICAgICAgICAgICAgZnJvbSBu dW1weSBpbXBvcnQgbWVhbiwgdmFyCi0gICAgICAgICAgICAgYSA9IHN0YW5kYXJkX2V4cG9uZW50 aWFsKChzaXplLCBzaXplKSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gMSkg PCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFi cyhtZWFuKGEpIC0gMSkgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAxKSA8IC4xKQotICAgICAgICAg IiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDMsIG51bXB5X3N0YW5kYXJk X2V4cG9uZW50aWFsMj1baW50XSkKLSAKLUBAIC0xMjU2LDcgKzEyNTYsNyBAQCBkZWYgbnVtcHlf c3RhbmRhcmRfZ2FtbWEwKHNpemUpOgotICAgICAgICAgICAgIGZyb20gbnVtcHkucmFuZG9tIGlt cG9ydCBzdGFuZGFyZF9nYW1tYQotICAgICAgICAgICAgIGZyb20gbnVtcHkgaW1wb3J0IHZhciwg bWVhbgotICAgICAgICAgICAgIGEgPSBbc3RhbmRhcmRfZ2FtbWEoMSkgZm9yIHggaW4gcmFuZ2Uo c2l6ZSldCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIDEpIDwgLjA1IGFuZCBh YnModmFyKGEpIC0gMSkgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAt IDEpIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMSkgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAg ICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA1LCBudW1weV9zdGFuZGFyZF9nYW1tYTA9W2lu dF0pCi0gCi1AQCAtMTI2Nyw3ICsxMjY3LDcgQEAgZGVmIG51bXB5X3N0YW5kYXJkX2dhbW1hMShz aXplKToKLSAgICAgICAgICAgICBmcm9tIG51bXB5LnJhbmRvbSBpbXBvcnQgc3RhbmRhcmRfZ2Ft bWEKLSAgICAgICAgICAgICBmcm9tIG51bXB5IGltcG9ydCB2YXIsIG1lYW4KLSAgICAgICAgICAg ICBhID0gc3RhbmRhcmRfZ2FtbWEoMiwgc2l6ZSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyht ZWFuKGEpIC0gMikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAyKSA8IC4wNSkKLSsgICAgICAgICAg ICByZXR1cm4gKGFicyhtZWFuKGEpIC0gMikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSAyKSA8IC4x KQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDUsIG51 bXB5X3N0YW5kYXJkX2dhbW1hMT1baW50XSkKLSAKLUBAIC0xMjc4LDcgKzEyNzgsNyBAQCBkZWYg bnVtcHlfc3RhbmRhcmRfZ2FtbWEyKHNpemUpOgotICAgICAgICAgICAgIGZyb20gbnVtcHkucmFu ZG9tIGltcG9ydCBzdGFuZGFyZF9nYW1tYQotICAgICAgICAgICAgIGZyb20gbnVtcHkgaW1wb3J0 IG1lYW4sIHZhcgotICAgICAgICAgICAgIGEgPSBzdGFuZGFyZF9nYW1tYSgzLCAoc2l6ZSwgc2l6 ZSkpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIDMpIDwgLjA1IGFuZCBhYnMo dmFyKGEpIC0gMykgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIDMp IDwgLjA1IGFuZCBhYnModmFyKGEpIC0gMykgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAg c2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiAzLCBudW1weV9zdGFuZGFyZF9nYW1tYTI9W2ludF0p Ci0gCi1AQCAtMTI5Niw3ICsxMjk2LDcgQEAgZGVmIG51bXB5X2d1bWJlbDAoc2l6ZSk6Ci0gICAg ICAgICAgICAgcm1lYW4gPSB1ICsgMC41NzcyMQotICAgICAgICAgICAgIHJ2YXIgPSAocGkqKjIv NikKLSAgICAgICAgICAgICBhID0gW2d1bWJlbCgpIGZvciB4IGluIHJhbmdlKHNpemUpXQotLSAg ICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBybWVhbikgPCAuMDUgYW5kIGFicyh2YXIo YSkgLSBydmFyKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1l YW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMSkKLSAgICAgICAgICIiIgotICAg ICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA2LCBudW1weV9ndW1iZWwwPVtpbnRdKQot IAotQEAgLTEzMTAsNyArMTMxMCw3IEBAIGRlZiBudW1weV9ndW1iZWwwYShzaXplKToKLSAgICAg ICAgICAgICBybWVhbiA9IHUgKyAwLjU3NzIxCi0gICAgICAgICAgICAgcnZhciA9IChwaSoqMi82 KQotICAgICAgICAgICAgIGEgPSBbZ3VtYmVsKHUpIGZvciB4IGluIHJhbmdlKHNpemUpXQotLSAg ICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBybWVhbiApIDwgMC4wNSBhbmQgYWJzKHZh cihhKSAtIHJ2YXIpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBy bWVhbiApIDwgMC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjEpCi0gICAgICAgICAiIiIK LSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNiwgbnVtcHlfZ3VtYmVsMGE9W2lu dF0pCi0gCi1AQCAtMTMyNSw3ICsxMzI1LDcgQEAgZGVmIG51bXB5X2d1bWJlbDBiKHNpemUpOgot ICAgICAgICAgICAgIHJtZWFuID0gdSArIDAuNTc3MjEqcwotICAgICAgICAgICAgIHJ2YXIgPSAo cGkqKjIvNikqcyoqMgotICAgICAgICAgICAgIGEgPSBndW1iZWwodSwgcywgc2l6ZSkKLS0gICAg ICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1lYW4pIDwgMC4wNSBhbmQgYWJzKHZhcihh KSAtIHJ2YXIpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBybWVh bikgPCAwLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMSkKLSAgICAgICAgICIiIgotICAg ICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiA2LCBudW1weV9ndW1iZWwwYj1baW50XSkK LSAKLUBAIC0xMzQxLDcgKzEzNDEsNyBAQCBkZWYgbnVtcHlfZ3VtYmVsMShzaXplKToKLSAgICAg ICAgICAgICBybWVhbiA9IHUgKyAwLjU3NzIxKnMKLSAgICAgICAgICAgICBydmFyID0gKHBpKioy LzYpKnMqKjIKLSAgICAgICAgICAgICBhID0gZ3VtYmVsKHNpemU9c2l6ZSkKLS0gICAgICAgICAg ICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZh cikgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHJtZWFuKSA8IC4w NSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNl bGYucnVuX3Rlc3QoY29kZSwgMTAgKiogNiwgbnVtcHlfZ3VtYmVsMT1baW50XSkKLSAKLUBAIC0x MzU3LDcgKzEzNTcsNyBAQCBkZWYgbnVtcHlfZ3VtYmVsMihzaXplKToKLSAgICAgICAgICAgICBy bWVhbiA9IHUgKyAwLjU3NzIxKnMKLSAgICAgICAgICAgICBydmFyID0gKHBpKioyLzYpKnMqKjIK LSAgICAgICAgICAgICBhID0gZ3VtYmVsKHNpemU9KHNpemUsIHNpemUpKQotLSAgICAgICAgICAg IHJldHVybiAoYWJzKG1lYW4oYSkgLSBybWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFy KSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1lYW4pIDwgLjA1 IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2Vs Zi5ydW5fdGVzdChjb2RlLCAxMCAqKiAzLCBudW1weV9ndW1iZWwyPVtpbnRdKQotIAotQEAgLTE0 NTUsNyArMTQ1NSw3IEBAIGRlZiBudW1weV9sYXBsYWNlMChzaXplKToKLSAgICAgICAgICAgICBy bWVhbiA9IHUKLSAgICAgICAgICAgICBydmFyID0gMipzKioyCi0gICAgICAgICAgICAgYSA9IFts YXBsYWNlKCkgZm9yIHggaW4gcmFuZ2Uoc2l6ZSldCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMo bWVhbihhKSAtIHJtZWFuKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjA1KQotKyAg ICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBybWVhbikgPCAuMDUgYW5kIGFicyh2YXIo YSkgLSBydmFyKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNv ZGUsIDEwICoqIDYsIG51bXB5X2xhcGxhY2UwPVtpbnRdKQotIAotQEAgLTE0NzAsNyArMTQ3MCw3 IEBAIGRlZiBudW1weV9sYXBsYWNlMGEoc2l6ZSk6Ci0gICAgICAgICAgICAgcm1lYW4gPSB1Ci0g ICAgICAgICAgICAgcnZhciA9IDIqcyoqMgotICAgICAgICAgICAgIGEgPSBbbGFwbGFjZSh1KSBm b3IgeCBpbiByYW5nZShzaXplKV0KLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0g cm1lYW4gKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4wNSkKLSsgICAgICAgICAg ICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1lYW4gKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBy dmFyKSA8IC4xKQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEw ICoqIDYsIG51bXB5X2xhcGxhY2UwYT1baW50XSkKLSAKLUBAIC0xNDg1LDcgKzE0ODUsNyBAQCBk ZWYgbnVtcHlfbGFwbGFjZTBiKHNpemUpOgotICAgICAgICAgICAgIHJtZWFuID0gdQotICAgICAg ICAgICAgIHJ2YXIgPSAyKnMqKjIKLSAgICAgICAgICAgICBhID0gbGFwbGFjZSh1LCBzLCBzaXpl KQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBybWVhbikgPCAwLjA1IGFuZCBh YnModmFyKGEpIC0gcnZhcikgPCAuMDUpCi0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihh KSAtIHJtZWFuKSA8IDAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4xKQotICAgICAgICAg IiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDYsIG51bXB5X2xhcGxhY2Uw Yj1baW50XSkKLSAKLUBAIC0xNTAxLDcgKzE1MDEsNyBAQCBkZWYgbnVtcHlfbGFwbGFjZTEoc2l6 ZSk6Ci0gICAgICAgICAgICAgcm1lYW4gPSB1Ci0gICAgICAgICAgICAgcnZhciA9IDIqcyoqMgot ICAgICAgICAgICAgIGEgPSBsYXBsYWNlKHNpemU9c2l6ZSkKLS0gICAgICAgICAgICByZXR1cm4g KGFicyhtZWFuKGEpIC0gcm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMDUp Ci0rICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHJtZWFuKSA8IC4wNSBhbmQgYWJz KHZhcihhKSAtIHJ2YXIpIDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rl c3QoY29kZSwgMTAgKiogNiwgbnVtcHlfbGFwbGFjZTE9W2ludF0pCi0gCi1AQCAtMTUxNyw3ICsx NTE3LDcgQEAgZGVmIG51bXB5X2xhcGxhY2UyKHNpemUpOgotICAgICAgICAgICAgIHJtZWFuID0g dQotICAgICAgICAgICAgIHJ2YXIgPSAyKnMqKjIKLSAgICAgICAgICAgICBhID0gbGFwbGFjZShz aXplPShzaXplLCBzaXplKSkKLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0gcm1l YW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMDUpCi0rICAgICAgICAgICAgcmV0 dXJuIChhYnMobWVhbihhKSAtIHJtZWFuKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwg LjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiogMywg bnVtcHlfbGFwbGFjZTI9W2ludF0pCi0gCi1AQCAtMTUzNSw3ICsxNTM1LDcgQEAgZGVmIG51bXB5 X2xvZ3NlcmllczAoc2l6ZSk6Ci0gICAgICAgICAgICAgcm1lYW4gPSBzIC8gKGxvZygxIC0gcykq KHMgLSAxKSkKLSAgICAgICAgICAgICBydmFyID0gLShzKihzK2xvZygxLXMpKSkvKChzIC0gMSkq KjIqKGxvZygxLXMpKSoqMikgICAgICAKLSAgICAgICAgICAgICBhID0gW2xvZ3NlcmllcyhzKSBm b3IgeCBpbiByYW5nZShzaXplKV0KLS0gICAgICAgICAgICByZXR1cm4gKGFicyhtZWFuKGEpIC0g cm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAuMDUpCi0rICAgICAgICAgICAg cmV0dXJuIChhYnMobWVhbihhKSAtIHJtZWFuKSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIp IDwgLjEpCi0gICAgICAgICAiIiIKLSAgICAgICAgIHNlbGYucnVuX3Rlc3QoY29kZSwgMTAgKiog NSwgbnVtcHlfbG9nc2VyaWVzMD1baW50XSkKLSAKLUBAIC0xNTQ5LDcgKzE1NDksNyBAQCBkZWYg bnVtcHlfbG9nc2VyaWVzMShzaXplKToKLSAgICAgICAgICAgICBybWVhbiA9IHMgLyAobG9nKDEg LSBzKSoocyAtIDEpKQotICAgICAgICAgICAgIHJ2YXIgPSAtKHMqKHMrbG9nKDEtcykpKS8oKHMg LSAxKSoqMioobG9nKDEtcykpKioyKSAgICAgICAgICAgICAKLSAgICAgICAgICAgICBhID0gbG9n c2VyaWVzKHMsIHNpemUpCi0tICAgICAgICAgICAgcmV0dXJuIChhYnMobWVhbihhKSAtIHJtZWFu KSA8IC4wNSBhbmQgYWJzKHZhcihhKSAtIHJ2YXIpIDwgLjA1KQotKyAgICAgICAgICAgIHJldHVy biAoYWJzKG1lYW4oYSkgLSBybWVhbikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4x KQotICAgICAgICAgIiIiCi0gICAgICAgICBzZWxmLnJ1bl90ZXN0KGNvZGUsIDEwICoqIDUsIG51 bXB5X2xvZ3NlcmllczE9W2ludF0pCi0gCi1AQCAtMTU2Myw3ICsxNTYzLDcgQEAgZGVmIG51bXB5 X2xvZ3NlcmllczIoc2l6ZSk6Ci0gICAgICAgICAgICAgcm1lYW4gPSBzIC8gKGxvZygxIC0gcykq KHMgLSAxKSkKLSAgICAgICAgICAgICBydmFyID0gLShzKihzK2xvZygxLXMpKSkvKChzIC0gMSkq KjIqKGxvZygxLXMpKSoqMikgICAgICAgICAgIAotICAgICAgICAgICAgIGEgPSBsb2dzZXJpZXMo cywgKHNpemUsIHNpemUpKQotLSAgICAgICAgICAgIHJldHVybiAoYWJzKG1lYW4oYSkgLSBybWVh bikgPCAuMDUgYW5kIGFicyh2YXIoYSkgLSBydmFyKSA8IC4wNSkKLSsgICAgICAgICAgICByZXR1 cm4gKGFicyhtZWFuKGEpIC0gcm1lYW4pIDwgLjA1IGFuZCBhYnModmFyKGEpIC0gcnZhcikgPCAu MSkKLSAgICAgICAgICIiIgotICAgICAgICAgc2VsZi5ydW5fdGVzdChjb2RlLCAxMCAqKiAzLCBu dW1weV9sb2dzZXJpZXMyPVtpbnRdKQotIAoKZGlmZiAtLWdpdCBhLzI0MzEucGF0Y2ggYi8yNDMx LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiM2JlMjVjLi4wMDAwMDAwCi0t LSBhLzI0MzEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi1Gcm9tIGM4MTJk MDVlZTc5ZmE5NTU1NmU0NGIzMGQyOTJhNjBiYWY1YWMwNGYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiA9P1VURi04P3E/TWlybz0yMEhyb249QzQ9OERvaz89IDxtaXJvQGhyb25jb2su Y3o+Ci1EYXRlOiBUdWUsIDI2IE1heSAyMDI2IDE2OjUzOjQ4ICswMjAwCi1TdWJqZWN0OiBbUEFU Q0hdIEZpeCB0eXBpbmcgb2YgYXJyYXkudHlwZWNvZGVzIGZvciBQeXRob24gMy4xNQotCi1QeXRo b24gMy4xNSBjaGFuZ2VkIGFycmF5LnR5cGVjb2RlcyBmcm9tIHN0ciB0byB0dXBsZSB0byBzdXBw b3J0Ci10eXBlIGNvZGVzIGxvbmdlciB0aGFuIDEgY2hhcmFjdGVyIChaZiBhbmQgWmQpLgotU2Vl IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vY3B5dGhvbi9pc3N1ZXMvMTQ4Njc1Ci0KLVB5dGhy YW4ncyBmaWxsX2NvbnN0YW50c190eXBlcygpIHVzZXMgdHlwZSgpIGludHJvc3BlY3Rpb24gb24g bGl2ZQotUHl0aG9uIGNvbnN0YW50cyB0byBzZXQgc2lnbmF0dXJlcywgd2hpY2ggbm93IHByb2R1 Y2VzIHR1cGxlIGluc3RlYWQKLW9mIHN0ci4gTWVhbndoaWxlLCB0aGUgZXhwbGljaXQgQ29uc3Rh bnRJbnRyKHNpZ25hdHVyZT1zdHIpIHdhcwotc2lsZW50bHkgaWdub3JlZCBiZWNhdXNlIENvbnN0 YW50SW50ci5fX2luaXRfXyBuZXZlciBzdG9yZWQgaXQuCi0KLUZpeCBDb25zdGFudEludHIgdG8g cHJlc2VydmUgYW4gZXhwbGljaXRseSBwcm92aWRlZCBzaWduYXR1cmUsIGFuZAotc2tpcCBpbnRy b3NwZWN0aW9uIGluIGZpbGxfY29uc3RhbnRzX3R5cGVzIHdoZW4gb25lIGlzIGFscmVhZHkgc2V0 LgotCi1XaXRob3V0IHRoZSBmaXgsIHB5dGVzdCBweXRocmFuL3Rlc3RzL3Rlc3RfYXJyYXkucHkg LWsgdGVzdF90eXBlY29kZXMKLWZhaWxzIHdpdGg6Ci0KLSAgICAgICAgZWxzZToKLT4gICAgICAg ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IodCkKLUUgICAgICAgICAgIE5vdEltcGxlbWVu dGVkRXJyb3I6IDxjbGFzcyAndHVwbGUnPgotCi1weXRocmFuL3R5cGVzL3RvZy5weTo0ODA6IE5v dEltcGxlbWVudGVkRXJyb3IKLQotQXNzaXN0ZWQtQnk6IENsYXVkZSBPcHVzIDQuNgotLS0tCi0g cHl0aHJhbi9pbnRyaW5zaWMucHkgfCAyICsrCi0gcHl0aHJhbi90YWJsZXMucHkgICAgfCA3ICsr KystLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL3B5dGhyYW4vaW50cmluc2ljLnB5IGIvcHl0aHJhbi9pbnRyaW5zaWMu cHkKLWluZGV4IGY3NTY2ZTRkZS4uYTU5NDhjMTcyIDEwMDY0NAotLS0tIGEvcHl0aHJhbi9pbnRy aW5zaWMucHkKLSsrKyBiL3B5dGhyYW4vaW50cmluc2ljLnB5Ci1AQCAtMjU1LDYgKzI1NSw4IEBA IGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgICAiIiIgRm9yd2FyZCBhcmd1 bWVudHMgYW5kIHJlbW92ZSBhcmd1bWVudHMgZWZmZWN0cy4gIiIiCi0gICAgICAgICBrd2FyZ3Nb ImFyZ3VtZW50X2VmZmVjdHMiXSA9ICgpCi0gICAgICAgICBzdXBlcihDb25zdGFudEludHIsIHNl bGYpLl9faW5pdF9fKCoqa3dhcmdzKQotKyAgICAgICAgaWYgJ3NpZ25hdHVyZScgaW4ga3dhcmdz OgotKyAgICAgICAgICAgIHNlbGYuc2lnbmF0dXJlID0ga3dhcmdzWydzaWduYXR1cmUnXQotIAot ICAgICBkZWYgaXNsaXRlcmFsKHNlbGYpOgotICAgICAgICAgIiIiIE1hcmsgdGhpcyBpbnRyaW5z aWMgYXMgYSBsaXRlcmFsLiAiIiIKLWRpZmYgLS1naXQgYS9weXRocmFuL3RhYmxlcy5weSBiL3B5 dGhyYW4vdGFibGVzLnB5Ci1pbmRleCA2NGNhM2Q1YzIuLjEyNjY1Njg2MyAxMDA2NDQKLS0tLSBh L3B5dGhyYW4vdGFibGVzLnB5Ci0rKysgYi9weXRocmFuL3RhYmxlcy5weQotQEAgLTQ3MzEsOSAr NDczMSwxMCBAQCBkZWYgZmlsbF9jb25zdGFudHNfdHlwZXMobW9kdWxlX25hbWUsIGVsZW1lbnRz KToKLSAgICAgICAgIGlmIGlzaW5zdGFuY2UoaW50cmluc2ljLCBkaWN0KTogICMgU3VibW9kdWxl IGNhc2UKLSAgICAgICAgICAgICBmaWxsX2NvbnN0YW50c190eXBlcyhtb2R1bGVfbmFtZSArIChl bGVtLCksIGludHJpbnNpYykKLSAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShpbnRyaW5zaWMsIENv bnN0YW50SW50cik6Ci0tICAgICAgICAgICAgIyB1c2UgaW50cm9zcGVjdGlvbiB0byBnZXQgdGhl IFB5dGhvbiBjb25zdGFudHMgdHlwZXMKLS0gICAgICAgICAgICBjc3QgPSBnZXRhdHRyKGltcG9y dF9tb2R1bGUoIi4iLmpvaW4obW9kdWxlX25hbWUpKSwgZWxlbSkKLS0gICAgICAgICAgICBpbnRy aW5zaWMuc2lnbmF0dXJlID0gdHlwZShjc3QpCi0rICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIo aW50cmluc2ljLCAnc2lnbmF0dXJlJyk6Ci0rICAgICAgICAgICAgICAgICMgdXNlIGludHJvc3Bl Y3Rpb24gdG8gZ2V0IHRoZSBQeXRob24gY29uc3RhbnRzIHR5cGVzCi0rICAgICAgICAgICAgICAg IGNzdCA9IGdldGF0dHIoaW1wb3J0X21vZHVsZSgiLiIuam9pbihtb2R1bGVfbmFtZSkpLCBlbGVt KQotKyAgICAgICAgICAgICAgICBpbnRyaW5zaWMuc2lnbmF0dXJlID0gdHlwZShjc3QpCi0gCi0g Ci0gZmlsbF9jb25zdGFudHNfdHlwZXMoKCksIE1PRFVMRVMpCgpkaWZmIC0tZ2l0IGEvcHl0aHJh bi5zcGVjIGIvcHl0aHJhbi5zcGVjCmluZGV4IGE2ZTM2ZTkuLjEyZmIxNTkgMTAwNjQ0Ci0tLSBh L3B5dGhyYW4uc3BlYworKysgYi9weXRocmFuLnNwZWMKQEAgLTEsNSArMSw1IEBACiBOYW1lOiAg ICAgICAgICAgcHl0aHJhbgotVmVyc2lvbjogICAgICAgIDAuMTguMQorVmVyc2lvbjogICAgICAg IDAuMTkuMAogUmVsZWFzZTogICAgICAgICVhdXRvcmVsZWFzZQogU3VtbWFyeTogICAgICAgIEFo ZWFkIG9mIFRpbWUgUHl0aG9uIGNvbXBpbGVyIGZvciBudW1lcmljIGtlcm5lbHMKIApAQCAtMjIs NDUgKzIyLDYgQEAgUHJvdmlkZXM6ICAgICAgIGJ1bmRsZWQocHl0aG9uM2Rpc3QobmV0d29ya3gp KSA9IDIuNi4xCiBVUkw6ICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3NlcmdlLXNhbnMt cGFpbGxlL3B5dGhyYW4KIFNvdXJjZTogICAgICAgICAle3VybH0vYXJjaGl2ZS8le3ZlcnNpb259 LyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuZ3oKIAotIyBDb21wYXRpYmlsaXR5IHdpdGggMzIgYml0 cyBudW1weQotIyBSZXNvbHZlZCB1cHN0cmVhbQotUGF0Y2g6IGh0dHBzOi8vZ2l0aHViLmNvbS9z ZXJnZS1zYW5zLXBhaWxsZS9weXRocmFuL3B1bGwvMjM3NS5wYXRjaAotCi0jIFNraXAgbnVtcHkg ZmxvYXQxMjggdGVzdHMgd2hlbiBudW1weSBkb2Vzbid0IHN1cHBvcnQgdGhlbQotIyBSZXNvbHZl ZCB1cHN0cmVhbQotUGF0Y2g6IGh0dHBzOi8vZ2l0aHViLmNvbS9zZXJnZS1zYW5zLXBhaWxsZS9w eXRocmFuL3B1bGwvMjM5OC5wYXRjaAotCi0jIENvbXBhdGliaWxpdHkgd2l0aCBwbHkgcG9zdC0z LjExIHZlcnNpb24KLSMgUmVzb2x2ZWQgdXBzdHJlYW0KLVBhdGNoOiBodHRwczovL2dpdGh1Yi5j b20vc2VyZ2Utc2Fucy1wYWlsbGUvcHl0aHJhbi9wdWxsLzI0MDIucGF0Y2gKLQotIyBGaXggZGly ZWN0b3J5IHN0cnVjdHVyZSBmb3IgcHl0ZXN0IGRpc2NvdmVyeQotIyBTZW50IHVwc3RyZWFtCi1Q YXRjaDogaHR0cHM6Ly9naXRodWIuY29tL3NlcmdlLXNhbnMtcGFpbGxlL3B5dGhyYW4vcHVsbC8y NDAzLnBhdGNoCi0KLSMgRml4IDMyIGJpdCB0eXBlIGNvbnZlcnNpb24gZmFpbHVyZXMKLSMgUmVz b2x2ZWQgdXBzdHJlYW0KLVBhdGNoOiBodHRwczovL2dpdGh1Yi5jb20vc2VyZ2Utc2Fucy1wYWls bGUvcHl0aHJhbi9wdWxsLzI0MDQucGF0Y2gKLQotIyBSZWR1Y2UgdGVzdF9udW1weV9yYW5kb21f Ynl0ZXMxIHNhbXBsZSBzaXplCi0jIFJlc29sdmVkIHVwc3RyZWFtCi1QYXRjaDogaHR0cHM6Ly9n aXRodWIuY29tL3NlcmdlLXNhbnMtcGFpbGxlL3B5dGhyYW4vcHVsbC8yNDA3LnBhdGNoCi0KLSMg UmVkdWNlIEMrKyBjb2RlIGdlbmVyYXRpb24gZHVyaW5nIHRlc3RpbmcKLSMgUmVzb2x2ZWQgdXBz dHJlYW0KLVBhdGNoOiBodHRwczovL2dpdGh1Yi5jb20vc2VyZ2Utc2Fucy1wYWlsbGUvcHl0aHJh bi9wdWxsLzI0MTMucGF0Y2gKLQotIyBXaWRlbiB0b2xlcmFuY2UgaW4gdGVzdF9udW1weV9yYW5k b21fYnl0ZXMxCi0jIFJlc29sdmVkIHVwc3RyZWFtCi1QYXRjaDogaHR0cHM6Ly9naXRodWIuY29t L3NlcmdlLXNhbnMtcGFpbGxlL3B5dGhyYW4vcHVsbC8yNDE0LnBhdGNoCi0KLSMgV2lkZW4gdG9s ZXJhbmNlIGluIHJhbmRvbSBkaXN0cmlidXRpb24gdGVzdHMKLSMgUmVzb2x2ZWQgdXBzdHJlYW0K LVBhdGNoOiBodHRwczovL2dpdGh1Yi5jb20vc2VyZ2Utc2Fucy1wYWlsbGUvcHl0aHJhbi9wdWxs LzI0MTUucGF0Y2gKLQotIyBGaXggdHlwaW5nIG9mIGFycmF5LnR5cGVjb2RlcyBmb3IgUHl0aG9u IDMuMTUKLVBhdGNoOiBodHRwczovL2dpdGh1Yi5jb20vc2VyZ2Utc2Fucy1wYWlsbGUvcHl0aHJh bi9wdWxsLzI0MzEucGF0Y2gKLQogIyB0aGVyZSBpcyBubyBhY3R1YWwgYXJjaGVkIGNvbnRlbnQK ICMgeWV0IHdlIHdhbnQgdG8gdGVzdCBvbiBhbGwgYXJjaGl0ZWN0dXJlcwogIyBhbmQgd2UgYWxz byBtaWdodCBuZWVkIHRvIHNraXAgc29tZQpAQCAtMTI2LDYgKzg3LDcgQEAgc2VkIC1pICdzLywg Im5idmFsIi8vJyBweXByb2plY3QudG9tbAogc2VkIC1pIC1lICdzLy1PMC8tTzEvZycgLWUgJ3Mv LVdlcnJvci8tdy9nJyBweXRocmFuL3Rlc3RzL19faW5pdF9fLnB5CiAKICVweXByb2plY3RfcGF0 Y2hfZGVwZW5kZW5jeSBnYXN0OnNldF91cHBlcjowLjguMAorJXB5cHJvamVjdF9wYXRjaF9kZXBl bmRlbmN5IGJlbmlnZXQ6ZHJvcF9sb3dlcgogCiAKICVnZW5lcmF0ZV9idWlsZHJlcXVpcmVzCgpk aWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggOTJjMzhlMC4uMGFiZWY0MCAxMDA2 NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1TSEE1MTIgKHB5dGhy YW4tMC4xOC4xLnRhci5neikgPSAxNTY1MDYyN2I5Mzk2YjQ5NDAxMDY3YzNhN2MxNjFkMTU2OWY4 OWYyOWEwODI0M2FhODU2NTkwMjNlNDJjZTAyODYzMzkxNWM1MWM4YzUxODhhNTU5OWMyMDFlYjMw YWEyNzIxZDY0YmE3NjZiMmEyNTIyMDM0NjliYzZlMmFiMQorU0hBNTEyIChweXRocmFuLTAuMTku MC50YXIuZ3opID0gZTcyMzhjZGJhMWU2YWI2MWY4MjY4ZjUyYmM3MjI0NjAwZWU1ZGI5ZTU0OTI4 ZDc4YzM3OWVhNjFkYTRlMDBmMTIxZmNiMDNhOTY2NmNlMGRiMWYzZTNkOTc1NTY5NWI2YTlkZDRm MjJmNzcwYmI1NTRmNWU0MzhmMDRiNGYzN2MK