[PR] Opinionated list of fixes (PR #2)
Kacper Michajłow via ffmpeg-devel <[email protected]> Wed, 29 Jul 2026 23:58:30 -0000
| Newsgroups | gmane.comp.video.ffmpeg.devel |
|---|---|
| Message-ID | <178536951106.51.12479685481834933794@29965ddac10e> |
UFIgIzIgb3BlbmVkIGJ5IEthY3BlciBNaWNoYWrFgm93IChrYXNwZXI5MykKVVJMOiBodHRwczov L2NvZGUuZmZtcGVnLm9yZy9GRm1wZWcvZmF0ZXNlcnZlci9wdWxscy8yClBhdGNoIFVSTDogaHR0 cHM6Ly9jb2RlLmZmbXBlZy5vcmcvRkZtcGVnL2ZhdGVzZXJ2ZXIvcHVsbHMvMi5wYXRjaAoKCkZy b20gZTI5MDFkYTM1YmJmMGU2MWQ0MmRmMTNkYzMyODg1OTNlMjU0MDdkYyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0thY3Blcj0yME1pY2hhaj1DNT04Mm93Pz0gPGth c3BlcjkzQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAzMCBKdWwgMjAyNiAwMTowMzowMiArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMS82XSBGQVRFOiBhY2NlcHQgYSAiZGVzYyIgcHJlZml4IG9uIGFueSBz b3J0IGtleQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKVGhlIHByZWZpeCBzaGFy ZWQgdGhlIDEwIGNoYXJhY3RlciBidWRnZXQgb2YgdGhlIGtleSBpdCByZXZlcnNlcywgc28gdGhl CmxpbmtzIHRoZSBpbmRleCBpdHNlbGYgZ2VuZXJhdGVzIGZvciB0aGUgQ29tbWVudCBhbmQgQXJj aCBjb2x1bW5zIHdlcmUKcmVqZWN0ZWQgd2l0aCAiSW52YWxpZCBzb3J0IHZhbHVlIi4KClNpZ25l ZC1vZmYtYnk6IEthY3BlciBNaWNoYWrFgm93IDxrYXNwZXI5M0BnbWFpbC5jb20+Ci0tLQogRkFU RS5wbSB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL0ZBVEUucG0gYi9GQVRFLnBtCmluZGV4IGQ3NGZkMDAuLjgwNGRj ZDIgMTAwNjQ0Ci0tLSBhL0ZBVEUucG0KKysrIGIvRkFURS5wbQpAQCAtNDg5LDcgKzQ4OSw5IEBA IHN1YiBzYWZlcGFyYW0oJCQpIHsKIH0KIAogc3ViIHNhZmVwYXJhbV9zb3J0KCkgewotICAgIHJl dHVybiBzYWZlcGFyYW1fb3B0IHFyL1thLXpdezEsMTB9KD86XC9cL1thLXpdezEsMTB9KSovLCAn c29ydCc7CisgICAgIyBUaGUgImRlc2MiIHByZWZpeCByZXZlcnNpbmcgYSBrZXkgbXVzdCBub3Qg ZWF0IGludG8gaXRzIGxlbmd0aCBidWRnZXQuCisgICAgbXkgJGtleSA9IHFyLyg/OmRlc2MpP1th LXpdezEsMTB9LzsKKyAgICByZXR1cm4gc2FmZXBhcmFtX29wdCBxci8ka2V5KD86XC9cLyRrZXkp Ki8sICdzb3J0JzsKIH0KIAogc3ViIHNhZmVwYXJhbV9zbG90KCkgewotLSAKMi41Mi4wCgoKRnJv bSA0YWYzYjgyZWJhNTlmZmY5ZGUwOTUwYzAyY2E3YTRmZTRlY2QwZDBiIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/S2FjcGVyPTIwTWljaGFqPUM1PTgyb3c/PSA8a2Fz cGVyOTNAZ21haWwuY29tPgpEYXRlOiBUaHUsIDMwIEp1bCAyMDI2IDAxOjAzOjI2ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAyLzZdIGluZGV4OiBrZWVwIHRoZSBzb3J0IGRpcmVjdGlvbiBwZXIga2V5 Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt OApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGUgbG9vcCB2YXJpYWJsZSBhbGlh c2VzIHRoZSBhcnJheSBlbGVtZW50LCBzbyBzdHJpcHBpbmcgImRlc2MiIGVkaXRlZApAc29ydCBp biBwbGFjZSBhbmQgbGVmdCAkc2RpciByZXZlcnNlZCBmb3IgZXZlcnkgcmVtYWluaW5nIGtleSBh bmQgZXZlcnkKbGF0ZXIgY29tcGFyaXNvbi4KClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrF gm93IDxrYXNwZXI5M0BnbWFpbC5jb20+Ci0tLQogaW5kZXguY2dpIHwgMTUgKysrKysrLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2luZGV4LmNnaSBiL2luZGV4LmNnaQppbmRleCAwNGI2Y2JkLi40MzczNjc5IDEw MDc1NQotLS0gYS9pbmRleC5jZ2kKKysrIGIvaW5kZXguY2dpCkBAIC04NCw3ICs4NCw2IEBAICRh bGxmYWlsID0gMTAwICogJGFsbGZhaWwgLyBAcmVwczsKIG15ICR3YXJuID0gMTAwIC0gJGFsbHBh c3MgLSAkYWxsZmFpbDsKIAogbXkgQHNvcnQgPSAoJ3N1YmFyY2gnLCAnb3MnLCAnY2MnLCAnY29t bWVudCcsICdzbG90Jyk7Ci1teSAkc2RpciA9IDE7ICMgZGVmYXVsdCB0byBhc2NlbmRpbmcgc29y dGluZwogZGVmaW5lZCAkc29ydCBhbmQgdW5zaGlmdCBAc29ydCwgc3BsaXQgL1wvXC8vLCAkc29y dDsKICRzb3J0IHx8PSAkc29ydFswXTsKIApAQCAtOTQsMTUgKzkzLDEzIEBAIHN1YiBuc2NtcCB7 CiB9CiAKIHN1YiByZXBjbXAgewotICAgIG15ICRyOwotICAgIGZvciBteSAkcyAoQHNvcnQpIHsK LSAgICAgICAgaWYgKCRzID1+IC9eZGVzYy8pIHsKLSAgICAgICAgICAgICRzID1+IHMvXmRlc2Mv LzsKLSAgICAgICAgICAgICRzZGlyID0gLTE7Ci0gICAgICAgIH0KLSAgICAgICAgbGFzdCBpZiAk ciA9ICRzZGlyICogbnNjbXAgJCRheyRzfSwgJCRieyRzfTsKKyAgICBmb3IgbXkgJGtleSAoQHNv cnQpIHsKKyAgICAgICAgIyAka2V5IGFsaWFzZXMgdGhlIGFycmF5IGVsZW1lbnQsIHNvIGRvIG5v dCBlZGl0IGl0IGluIHBsYWNlLgorICAgICAgICAobXkgJHMgPSAka2V5KSA9fiBzL15kZXNjLy87 CisgICAgICAgIG15ICRyID0gKCRzIGVxICRrZXkgPyAxIDogLTEpICogbnNjbXAgJCRheyRzfSwg JCRieyRzfTsKKyAgICAgICAgcmV0dXJuICRyIGlmICRyOwogICAgIH0KLSAgICByZXR1cm4gJHI7 CisgICAgcmV0dXJuIDA7CiB9OwogCiBzdWIgbHNvcnQgewotLSAKMi41Mi4wCgoKRnJvbSA0YzIy N2U4ZGU5NDEzNzRhYzA0YzJiYzJiZTg0Yjg2MTg5NGE2ODQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiA9P1VURi04P3E/S2FjcGVyPTIwTWljaGFqPUM1PTgyb3c/PSA8a2FzcGVyOTNA Z21haWwuY29tPgpEYXRlOiBUaHUsIDMwIEp1bCAyMDI2IDAxOjA0OjA2ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAzLzZdIGluZGV4OiBsZXQgdGhlIEFyY2ggY29sdW1uIHNvcnQgaW4gYm90aCBkaXJl Y3Rpb25zCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgoiYXJjaCIgaXMgcmV3cml0 dGVuIHRvICJzdWJhcmNoIiBiZWZvcmUgbHNvcnQgY29tcGFyZXMgaXQgYWdhaW5zdCB0aGUKY3Vy cmVudCBrZXksIHNvIHRoZSBoZWFkZXIgbmV2ZXIgbWF0Y2hlZCBhbmQgbmV2ZXIgb2ZmZXJlZCB0 aGUgcmV2ZXJzZQpvcmRlci4KClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrFgm93IDxrYXNw ZXI5M0BnbWFpbC5jb20+Ci0tLQogaW5kZXguY2dpIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvaW5kZXguY2dpIGIvaW5k ZXguY2dpCmluZGV4IDQzNzM2NzkuLjljOWZlNmMgMTAwNzU1Ci0tLSBhL2luZGV4LmNnaQorKysg Yi9pbmRleC5jZ2kKQEAgLTIzNyw3ICsyMzcsNyBAQCBlbmQgJ3RyJzsKIHN0YXJ0ICd0cic7CiBz dGFydCAndGgnOyBsc29ydCAnVGltZScsICAgICAnZGVzY2RhdGUnOyAgICAgIGVuZCAndGgnOwog c3RhcnQgJ3RoJzsgbHNvcnQgJ1JldicsICAgICAgJ3Jldic7ICAgICAgICAgICBlbmQgJ3RoJzsK LXN0YXJ0ICd0aCc7IGxzb3J0ICdBcmNoJywgICAgICdhcmNoJzsgICAgICAgICAgZW5kICd0aCc7 CitzdGFydCAndGgnOyBsc29ydCAnQXJjaCcsICAgICAnc3ViYXJjaCc7ICAgICAgIGVuZCAndGgn Owogc3RhcnQgJ3RoJzsgbHNvcnQgJ09TJywgICAgICAgJ29zJzsgICAgICAgICAgICBlbmQgJ3Ro JzsKIHN0YXJ0ICd0aCc7IGxzb3J0ICdDb21waWxlcicsICdjYyc7ICAgICAgICAgICAgZW5kICd0 aCc7CiBzdGFydCAndGgnOyBsc29ydCAnQ29tbWVudCcsICAnY29tbWVudCc7ICAgICAgIGVuZCAn dGgnOwotLSAKMi41Mi4wCgoKRnJvbSAyNzVhYjlhNjE0NGZlZDA4MWU4MDc2NThkNzI1Y2NmZDkw MWEwNGRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/S2FjcGVyPTIw TWljaGFqPUM1PTgyb3c/PSA8a2FzcGVyOTNAZ21haWwuY29tPgpEYXRlOiBUaHUsIDMwIEp1bCAy MDI2IDAxOjA1OjUzICswMjAwClN1YmplY3Q6IFtQQVRDSCA0LzZdIGluZGV4OiBhbGxvdyAiLyIg YW5kICIlIiBpbiBzZWFyY2ggY3JpdGVyaWEKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi aXQKCkNHSSBhbHJlYWR5IHBlcmNlbnQtZGVjb2RlcyBlYWNoIHBhcmFtZXRlciwgc28gZGVjb2Rp bmcgdGhlIHF1ZXJ5IGFnYWluCnR1cm5lZCBhbiBlc2NhcGVkICIvIiBpbnNpZGUgYSB2YWx1ZSBi YWNrIGludG8gdGhlICIvLyIgc2VwYXJhdG9yIGFuZCB0b3JlCnRoZSBjcml0ZXJpb24gaW4gdHdv LgoKUGFzcyBvbmUgY3JpdGVyaW9uIHBlciBwYXJhbWV0ZXIgaW5zdGVhZDogQ0dJIHNwbGl0cyBv biAiJiIgYmVmb3JlIGRlY29kaW5nLApzbyBhIHZhbHVlIGNhbiBubyBsb25nZXIgYmUgbWlzdGFr ZW4gZm9yIGEgc2VwYXJhdG9yLiBFc2NhcGUgdmFsdWVzIGFzCmJ5dGVzLCBhcyB1cmlfZXNjYXBl X3V0ZjggZG91YmxlLWVuY29kZXMgdGhlIGJ5dGVzIENHSSBhbmQgdGhlIHJlcG9ydCBmaWxlcwph Y3R1YWxseSBoYW5kIG91dC4KClNpZ25lZC1vZmYtYnk6IEthY3BlciBNaWNoYWrFgm93IDxrYXNw ZXI5M0BnbWFpbC5jb20+Ci0tLQogaW5kZXguY2dpIHwgODYgKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQzIGlu c2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luZGV4LmNnaSBiL2lu ZGV4LmNnaQppbmRleCA5YzlmZTZjLi4xZGY4Yzg5IDEwMDc1NQotLS0gYS9pbmRleC5jZ2kKKysr IGIvaW5kZXguY2dpCkBAIC0yMCw3ICsyMCw3IEBAIHVzZSB3YXJuaW5nczsKIAogdXNlIGxpYiAi L3Zhci93d3cvZmF0ZXdlYiI7CiAKLXVzZSBDR0kgcXcvcGFyYW0vOwordXNlIENHSSBxdy9wYXJh bSBtdWx0aV9wYXJhbS87CiB1c2UgSFRNTDo6RW50aXRpZXM7CiB1c2UgRkFURTsKIHVzZSBUaW1l Ojpab25lOwpAQCAtMjgsMTIgKzI4LDE3IEBAIHVzZSBVUkk6OkVzY2FwZTsKIAogY2dpX3BhdGhf aXNfdHJ1c3R3b3J0aHk7CiAKLSMgRm9ybWF0IGZvciAvP3F1ZXJ5PSA6IC8/cXVlcnk9dHlwZTp2 YWx1ZS8vdHlwZTp2YWx1ZS8vIChVUkkgZW5jb2RlZCkuCi0jIFRyYWlsaW5nIC8vIGRvZXMgbm90 IG1hdHRlciAoaS5lLiBtYXkgYmUgYWRkZWQpLgotIyBAcXVlcmllcyBjb250YWlucyBhbiBhcnJh eSBvZiAndHlwZTp2YWx1ZScgc3RyaW5ncy4KLSMgRXZlcnkgbWVtYmVyIG9mIEBxdWVyaWVzIGNh biBiZSBmdXJ0aGVyIHBhcnNlZCB3aXRoIGFub3RoZXIgc2ltcGxlCi0jIHNwbGl0KC86LywgJHRo aXNfcXVlcnksIDIpOwotbXkgQHF1ZXJpZXMgPSBzcGxpdCgvXC9cLy8sIHVyaV91bmVzY2FwZSBz Y2FsYXIgcGFyYW0gJ3F1ZXJ5JykgaWYgKHBhcmFtICdxdWVyeScpOworIyBGb3JtYXQgZm9yIC8/ cXVlcnk9IDogLz9xdWVyeT10eXBlOnZhbHVlLCByZXBlYXRlZCBvbmNlIHBlciBjcml0ZXJpb24s IGFzIGFuCisjIGFycmF5IG9mIFt0eXBlLCB2YWx1ZV0gcGFpcnMuICBDR0kgc3BsaXRzIHRoZSBw YXJhbWV0ZXJzIGJlZm9yZSBkZWNvZGluZworIyB0aGVtLCBzbyBhIHZhbHVlIG1heSBjb250YWlu IGFueSBjaGFyYWN0ZXI7IGRlY29kaW5nIGFnYWluIGhlcmUgd291bGQgbGV0IGEKKyMgJy8nIGlu IGEgdmFsdWUgYWN0IGFzIGEgc2VwYXJhdG9yLgorbXkgQHF1ZXJpZXM7Citmb3IgbXkgJHRoaXNf cXVlcnkgKG11bHRpX3BhcmFtICdxdWVyeScpIHsKKyAgICBteSAoJHR5cGUsICR0ZXh0KSA9IHNw bGl0KC86LywgJHRoaXNfcXVlcnksIDIpOworICAgIGRlZmluZWQgJHRleHQgb3IgbmV4dDsKKyAg ICAoJHR5cGUpID0gJHR5cGUgPX4gL14oW2Etel17MSwxNn0pXHovIG9yIG5leHQ7CisgICAgcHVz aCBAcXVlcmllcywgWyR0eXBlLCAkdGV4dF07Cit9CiAKIG15ICRzb3J0ID0gc2FmZXBhcmFtX3Nv cnQ7CiAkc29ydCA9ICJzdWJhcmNoIiBpZiBkZWZpbmVkKCRzb3J0KSAmJiAkc29ydCBlcSAiYXJj aCI7CkBAIC01NSw4ICs2MCw4IEBAIGZvciBteSAkc2xvdCAoQHNsb3RzKSB7CiAgICAgbXkgJG5v dF9tYXRjaGVkID0gMDsKICAgICAkJHJlcHtzdWJhcmNofSA9ICQkcmVwe2FyY2h9IGlmIG5vdCAk JHJlcHtzdWJhcmNofTsKICAgICBmb3IgbXkgJHRoaXNfcXVlcnkgKEBxdWVyaWVzKSB7Ci0gICAg ICAgIG15ICgkdHlwZSwgJHRleHQpID0gc3BsaXQoLzovLCAkdGhpc19xdWVyeSwgMik7Ci0gICAg ICAgICRub3RfbWF0Y2hlZCA9IDEgaWYgKCQkcmVweyR0eXBlfSBuZSAkdGV4dCk7CisgICAgICAg IG15ICgkdHlwZSwgJHRleHQpID0gQCR0aGlzX3F1ZXJ5OworICAgICAgICAkbm90X21hdGNoZWQg PSAxIGlmIG5vdCBkZWZpbmVkICQkcmVweyR0eXBlfSBvciAkJHJlcHskdHlwZX0gbmUgJHRleHQ7 CiAgICAgfQogICAgIG5leHQgaWYgJG5vdF9tYXRjaGVkOwogCkBAIC0xMDIsMTYgKzEwNywyOSBA QCBzdWIgcmVwY21wIHsKICAgICByZXR1cm4gMDsKIH07CiAKLXN1YiBsc29ydCB7Ci0gICAgbXkg JHBhcmFtcyA9ICcnOworIyBFdmVyeSBwYXJhbWV0ZXIgZXhjZXB0ICdxdWVyeScgYW5kLCBvcHRp b25hbGx5LCAkc2tpcCwgaW4gSFRUUCBmb3JtYXQuCisjICdxdWVyeScgbWF5IG9jY3VyIHNldmVy YWwgdGltZXMgYW5kIGlzIHJlZ2VuZXJhdGVkIGJ5IHF1ZXJ5X3BhcmFtcygpLgorc3ViIG90aGVy X3BhcmFtcyB7CisgICAgbXkgKCRza2lwKSA9IEBfOworICAgIG15IEBwYXJhbXM7CiAgICAgZm9y IG15ICR0aGlzcGFyYW0gKHBhcmFtKSB7CiAgICAgICAgIG5leHQgaWYgJHRoaXNwYXJhbSA9fiAv W15hLXowLTlfXS87Ci0gICAgICAgIG5leHQgaWYgJHRoaXNwYXJhbSA9fiAnc29ydCc7Ci0gICAg ICAgICRwYXJhbXMgLj0gJyYnIGlmICRwYXJhbXMgbmUgJyc7Ci0gICAgICAgICRwYXJhbXMgLj0g IiR0aGlzcGFyYW09IiAuIHVyaV9lc2NhcGUocGFyYW0oJHRoaXNwYXJhbSkpOworICAgICAgICBu ZXh0IGlmICR0aGlzcGFyYW0gZXEgJ3F1ZXJ5JzsKKyAgICAgICAgbmV4dCBpZiBkZWZpbmVkICRz a2lwIGFuZCAkdGhpc3BhcmFtIGVxICRza2lwOworICAgICAgICBwdXNoIEBwYXJhbXMsICIkdGhp c3BhcmFtPSIgLiB1cmlfZXNjYXBlKHNjYWxhciBwYXJhbSgkdGhpc3BhcmFtKSk7CiAgICAgfQot ICAgICRwYXJhbXMgLj0gJyYnIGlmICRwYXJhbXM7CisgICAgcmV0dXJuIEBwYXJhbXM7Cit9CisK KyMgU2VyaWFsaXNlIFt0eXBlLCB2YWx1ZV0gcGFpcnMgYXMgcmVwZWF0ZWQgJ3F1ZXJ5JyBwYXJh bWV0ZXJzLiAgVmFsdWVzIGFyZQorIyBieXRlcywgYXMgQ0dJIGFuZCB0aGUgcmVwb3J0IGZpbGVz IGdpdmUgdGhlbSwgc28gZXNjYXBlIHRoZW0gYXMgYnl0ZXMuCitzdWIgcXVlcnlfcGFyYW1zIHsK KyAgICByZXR1cm4gbWFwICJxdWVyeT0iIC4gdXJpX2VzY2FwZSgiJCRfWzBdOiIgLiAoJCRfWzFd IC8vICcnKSksIEBfOworfQorCitzdWIgbHNvcnQgewogICAgIG15ICgkdGV4dCwgJGtleSkgPSBA XzsKKyAgICBteSBAcGFyYW1zID0gKG90aGVyX3BhcmFtcygnc29ydCcpLCBxdWVyeV9wYXJhbXMo QHF1ZXJpZXMpKTsKIAogICAgIG15ICRuZXdrZXkgPSAnJzsKICAgICBpZiAoJHNvcnQgZXEgJGtl eSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICMgJGtleSAgICAgPSAkc29ydApAQCAtMTMw LDM5ICsxNDgsMjEgQEAgc3ViIGxzb3J0IHsKICAgICB9CiAKICAgICAka2V5ID0gJG5ld2tleSBp ZiAkbmV3a2V5IG5lICcnOwotICAgIGFuY2hvciAkdGV4dCwgaHJlZiA9PiAiPyR7cGFyYW1zfXNv cnQ9JGtleSI7CisgICAgcHVzaCBAcGFyYW1zLCAic29ydD0ka2V5IjsKKyAgICBhbmNob3IgJHRl eHQsIGhyZWYgPT4gJz8nIC4gam9pbiAnJmFtcDsnLCBAcGFyYW1zOwogfQogCiBzdWIgY2F0ZWdv cnkgewogICAgIG15ICgkY2F0ZWdvcnksICRyZXApID0gQF87Ci0gICAgbXkgJGhlYWRfcHJpbnRl ZCA9IDA7CiAKLSAgICAjICRwYXJhbXMgd2lsbCBjb250YWluIHBhcmFtZXRlcnMgZWxzZSB0aGFu IHF1ZXJ5LCBpZiBhbnksIGluIEhUVFAgZm9ybWF0LgotICAgIG15ICRwYXJhbXMgPSAnJzsKLSAg ICBmb3IgbXkgJHRoaXNwYXJhbSAocGFyYW0pIHsKLSAgICAgICAgbmV4dCBpZiAkdGhpc3BhcmFt ID1+IC9bXmEtejAtOV9dLzsKLSAgICAgICAgbmV4dCBpZiAkdGhpc3BhcmFtIGVxICdxdWVyeSc7 Ci0gICAgICAgICRwYXJhbXMgLj0gJyYnIGlmICRwYXJhbXMgbmUgJyc7Ci0gICAgICAgICRwYXJh bXMgLj0gIiR0aGlzcGFyYW09IiAuIHVyaV9lc2NhcGUocGFyYW0oJHRoaXNwYXJhbSkpOwotICAg IH0KLSAgICBteSAkaGVhZCA9ICgkcGFyYW1zID8gJyYnIDogJycpIC4gJ3F1ZXJ5PSc7Ci0KLSAg ICBpZiAoQHF1ZXJpZXMpIHsKLSAgICAgICAgZm9yIG15ICR0aGlzX3F1ZXJ5IChAcXVlcmllcykg ewotICAgICAgICAgICAgbXkgKCR0eXBlLCAkdGV4dCkgPSBzcGxpdCgvOi8sICR0aGlzX3F1ZXJ5 LCAyKTsKLSAgICAgICAgICAgIGlmICgkdHlwZSBuZSAkY2F0ZWdvcnkpIHsKLSAgICAgICAgICAg ICAgICAkcGFyYW1zIC49ICRoZWFkIGlmICghJGhlYWRfcHJpbnRlZCk7Ci0gICAgICAgICAgICAg ICAgJHBhcmFtcyAuPSAkdGhpc19xdWVyeSAuICcvLyc7Ci0gICAgICAgICAgICAgICAgJGhlYWRf cHJpbnRlZCA9IDE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgJHBhcmFt cyAuPSAkaGVhZCBpZiAoISRoZWFkX3ByaW50ZWQpOwotICAgICRwYXJhbXMgLj0gIiRjYXRlZ29y eToiIC4gdXJpX2VzY2FwZV91dGY4ICIkJHJlcHskY2F0ZWdvcnl9IiAuICcvLyc7Ci0gICAgJGhl YWRfcHJpbnRlZCA9IDE7ICAgICAgICAgICAgICAgICAjIGZvciB0aGUgc2FrZSBvZiBjb21wbGV0 ZW5lc3MKKyAgICAjIEtlZXAgZXZlcnkgc2VhcmNoIGNyaXRlcmlvbiBleGNlcHQgdGhlIG9uZSBm b3IgJGNhdGVnb3J5LCB3aGljaCB0aGUKKyAgICAjIHZhbHVlIGluIHRoaXMgY2VsbCByZXBsYWNl cy4KKyAgICBteSBAcGFyYW1zID0gKG90aGVyX3BhcmFtcygpLAorICAgICAgICAgICAgICAgICAg cXVlcnlfcGFyYW1zKGdyZXAoJCRfWzBdIG5lICRjYXRlZ29yeSwgQHF1ZXJpZXMpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFskY2F0ZWdvcnksICQkcmVweyRjYXRlZ29yeX1dKSk7 CiAKICAgICBzdGFydCAndGQnOwotICAgIGFuY2hvciAkJHJlcHskY2F0ZWdvcnl9LCBocmVmID0+ ICI/JHBhcmFtcyI7CisgICAgYW5jaG9yICQkcmVweyRjYXRlZ29yeX0sIGhyZWYgPT4gJz8nIC4g am9pbiAnJmFtcDsnLCBAcGFyYW1zOwogICAgIGVuZCAndGQnOwogfQogCkBAIC0xOTcsOCArMTk3 LDggQEAgaWYgKEBxdWVyaWVzKSB7CiAgICAgc3RhcnQgJ3AnOwogICAgIHByaW50ICdTZWFyY2gg cGF0dGVybnM6ICc7CiAgICAgZm9yIG15ICR0aGlzX3F1ZXJ5IChAcXVlcmllcykgewotICAgICAg ICBteSAoJHR5cGUsICR0ZXh0KSA9IHNwbGl0KC86LywgJHRoaXNfcXVlcnksIDIpOwotICAgICAg ICBwcmludCAiJHR5cGU6ICR0ZXh0OyAiOworICAgICAgICBteSAoJHR5cGUsICR0ZXh0KSA9IEAk dGhpc19xdWVyeTsKKyAgICAgICAgcHJpbnQgZW5jb2RlX2VudGl0aWVzKCIkdHlwZTogJHRleHQi LCAnPD4mIicpLCAnOyAnOwogICAgIH0KICAgICBhbmNob3IgJ2NsZWFyIGFsbC4nLCBocmVmID0+ ICIiOwogICAgIGVuZCAncCc7Ci0tIAoyLjUyLjAKCgpGcm9tIDZhYzc3NDk1NjBjMjg2MDZjMjY2 MjVkY2YyMzE5NDk2YTkzOGUwNmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRG LTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9ODJvdz89IDxrYXNwZXI5M0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMzAgSnVsIDIwMjYgMDE6MDY6MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDUvNl0gaW5k ZXg6IHJvdW5kIHRoZSBwZXJjZW50YWdlcyBpbiB0aGUgZmFpbG9tZXRlcgpNSU1FLVZlcnNpb246 IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFu c2Zlci1FbmNvZGluZzogOGJpdAoKVGhleSBsYW5kIGluIGEgQ1NTIHdpZHRoIGFuZCBhIHRvb2x0 aXAsIHdoZXJlIDE3IHNpZ25pZmljYW50IGRpZ2l0cyBhcmUgb2YKbm8gdXNlLgoKU2lnbmVkLW9m Zi1ieTogS2FjcGVyIE1pY2hhasWCb3cgPGthc3BlcjkzQGdtYWlsLmNvbT4KLS0tCiBpbmRleC5j Z2kgfCAxNCArKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5kZXguY2dpIGIvaW5kZXguY2dpCmluZGV4 IDFkZjhjODkuLjI1ZWQwODggMTAwNzU1Ci0tLSBhL2luZGV4LmNnaQorKysgYi9pbmRleC5jZ2kK QEAgLTg0LDkgKzg0LDE3IEBAIGZvciBteSAkc2xvdCAoQHNsb3RzKSB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgIjxhIGhyZWY9XCJcIj5DbGVhciBhbGwgc2VhcmNoIGNyaXRlcmlhLjwvYT4i IDoKICAgICAgICAgICAgICAgICAgICAgICAgICAnTm8gZGF0YSBpbiAkZmF0ZWRpci4nOwogCi0k YWxscGFzcyA9IDEwMCAqICRhbGxwYXNzIC8gQHJlcHM7Ci0kYWxsZmFpbCA9IDEwMCAqICRhbGxm YWlsIC8gQHJlcHM7Ci1teSAkd2FybiA9IDEwMCAtICRhbGxwYXNzIC0gJGFsbGZhaWw7CisjIFBl cmNlbnRhZ2Ugb2YgJG4gb3V0IG9mICR0b3RhbCwgcm91bmRlZCB0byBvbmUgZGVjaW1hbCBmb3Ig ZGlzcGxheS4KK3N1YiBwY3QgeworICAgIG15ICgkbiwgJHRvdGFsKSA9IEBfOworICAgIHJldHVy biBpbnQoMTAwMCAqICRuIC8gJHRvdGFsICsgMC41KSAvIDEwOworfQorCitteSAkbnJlcHMgPSBA cmVwczsKK215ICR3YXJuID0gJG5yZXBzIC0gJGFsbHBhc3MgLSAkYWxsZmFpbDsKKyRhbGxwYXNz ID0gcGN0KCRhbGxwYXNzLCAkbnJlcHMpOworJGFsbGZhaWwgPSBwY3QoJGFsbGZhaWwsICRucmVw cyk7Ciskd2FybiAgICA9IHBjdCgkd2FybiwgICAgJG5yZXBzKTsKIAogbXkgQHNvcnQgPSAoJ3N1 YmFyY2gnLCAnb3MnLCAnY2MnLCAnY29tbWVudCcsICdzbG90Jyk7CiBkZWZpbmVkICRzb3J0IGFu ZCB1bnNoaWZ0IEBzb3J0LCBzcGxpdCAvXC9cLy8sICRzb3J0OwotLSAKMi41Mi4wCgoKRnJvbSA0 YjIzZjZkYTNiM2IxMTE5OTU4YjdmMmMwMDExYTFlZDcwMjhkNWNkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/S2FjcGVyPTIwTWljaGFqPUM1PTgyb3c/PSA8a2FzcGVy OTNAZ21haWwuY29tPgpEYXRlOiBUaHUsIDMwIEp1bCAyMDI2IDAxOjA2OjU5ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCA2LzZdIGluZGV4LCBoaXN0b3J5OiBzaG93IGEgZmFpbHVyZSB0byBidWlsZCB0 ZXN0cyBhcyBhCiBmYWlsdXJlCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9w bGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpBIHJ1 biB3aGVyZSBldmVyeSB0ZXN0IHBhc3NlZCBidXQgdGhlIHN0YXR1cyBpcyBub24temVybyBmYWls ZWQgdG8gYnVpbGQKdGhlIHRlc3RzLCB3aGljaCByZXBvcnQuY2dpIGFscmVhZHkgZmxhZ3MgYXMg YSBmYWlsdXJlLgoKU2lnbmVkLW9mZi1ieTogS2FjcGVyIE1pY2hhasWCb3cgPGthc3BlcjkzQGdt YWlsLmNvbT4KLS0tCiBoaXN0b3J5LmNnaSB8IDMgKystCiBpbmRleC5jZ2kgICB8IDMgKystCiAy IGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9oaXN0b3J5LmNnaSBiL2hpc3RvcnkuY2dpCmluZGV4IDVlNGYwMDcuLjcxZWNkYmIgMTAw NzU1Ci0tLSBhL2hpc3RvcnkuY2dpCisrKyBiL2hpc3RvcnkuY2dpCkBAIC03Niw3ICs3Niw4IEBA IGZvciBteSAkZGF0ZSAoKHNvcnQgeyAkYiBjbXAgJGEgfSBAcmVwcylbMC4uNDldKSB7CiAgICAg dGQgJCRyZXB7bndhcm59OwogICAgIGlmICgkbnBhc3MpIHsKICAgICAgICAgJHJ0ZXh0ICA9ICIk bnBhc3MgLyAkbnRlc3QiOwotICAgICAgICAkcmNsYXNzID0gJCRyZXB7c3RhdHVzfT09MD8gJ3Bh c3MnIDogJG5wYXNzPyAnd2FybicgOiAnZmFpbCc7CisgICAgICAgICRyY2xhc3MgPSAhJCRyZXB7 c3RhdHVzfSAgPyAncGFzcycgOgorICAgICAgICAgICAgICAgICAgJG5wYXNzIDwgJG50ZXN0ID8g J3dhcm4nIDogJ2ZhaWwnOwogICAgIH0gZWxzaWYgKCEkbnRlc3QgYW5kICEkJHJlcHtzdGF0dXN9 KSB7CiAgICAgICAgICRydGV4dCAgPSAiYnVpbGQgb25seSI7CiAgICAgICAgICRyY2xhc3MgPSAk JHJlcHtzdGF0dXN9PyAnZmFpbCcgOiAncGFzcyc7CmRpZmYgLS1naXQgYS9pbmRleC5jZ2kgYi9p bmRleC5jZ2kKaW5kZXggMjVlZDA4OC4uZDM4Yjk5OSAxMDA3NTUKLS0tIGEvaW5kZXguY2dpCisr KyBiL2luZGV4LmNnaQpAQCAtMjkzLDcgKzI5Myw4IEBAIGZvciBteSAkcmVwIChzb3J0IHJlcGNt cCBAcmVwcykgewogICAgIHRkICQkcmVwe2NvbW1lbnR9LCBjbGFzcyA9PiAnY29tbWVudCc7CiAg ICAgaWYgKCRucGFzcykgewogICAgICAgICAkcnRleHQgID0gIiRucGFzcyAvICRudGVzdCI7Ci0g ICAgICAgICRyY2xhc3MgPSAkJHJlcHtzdGF0dXN9PT0wPyAncGFzcycgOiAkbnBhc3M/ICd3YXJu JyA6ICdmYWlsJzsKKyAgICAgICAgJHJjbGFzcyA9ICEkJHJlcHtzdGF0dXN9ICA/ICdwYXNzJyA6 CisgICAgICAgICAgICAgICAgICAkbnBhc3MgPCAkbnRlc3QgPyAnd2FybicgOiAnZmFpbCc7CiAg ICAgfSBlbHNpZiAoISRudGVzdCBhbmQgISQkcmVwe3N0YXR1c30pIHsKICAgICAgICAgJHJ0ZXh0 ICA9ICJidWlsZCBvbmx5IjsKICAgICAgICAgJHJjbGFzcyA9ICQkcmVwe3N0YXR1c30/ICdmYWls JyA6ICdwYXNzJzsKLS0gCjIuNTIuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdCAtLSBmZm1wZWctZGV2ZWxA ZmZtcGVnLm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGZmbXBlZy1kZXZlbC1s ZWF2ZUBmZm1wZWcub3JnCg==