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: Mamoru TASAKA To: git-commits@fedoraproject.org Subject: [rpms/ruby] f43: Backport upstream patch to update resolv to 0.7.2 Date: Thu, 10 Sep 2026 08:38:56 GMT Message-ID: <178902953691.1.11432161869460049084.rpms-ruby-66fb74d338b0@fedoraproject.org> List-ID: X-Git-Repo: rpms/ruby X-Git-Branch: f43 X-Git-Rev: 66fb74d338b07638560671140c4d5cf6a0d17d85 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvcnVieQogICAgICAgICAgICBCcmFuY2ggOiBmNDMKICAgICAgICAgICAgQ29t bWl0IDogNjZmYjc0ZDMzOGIwNzYzODU2MDY3MTE0MGM0ZDVjZjZhMGQxN2Q4NQogICAgICAgICAg ICBBdXRob3IgOiBNYW1vcnUgVEFTQUtBIDxtdGFzYWthQGZlZG9yYXByb2plY3Qub3JnPgogICAg ICAgICAgICBEYXRlICAgOiAyMDI2LTA5LTEwVDE3OjM4OjQ1KzA5OjAwCiAgICAgICAgICAgIFN0 YXRzICA6ICsxMDcyLy01IGluIDMgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRwczov L3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3J1YnkvYy82NmZiNzRkMzM4YjA3NjM4NTYwNjcx MTQwYzRkNWNmNmEwZDE3ZDg1P2JyYW5jaD1mNDMKCiAgICAgICAgICAgIExvZzoKICAgICAgICAg ICAgQmFja3BvcnQgdXBzdHJlYW0gcGF0Y2ggdG8gdXBkYXRlIHJlc29sdiB0byAwLjcuMgoKUmVz b2x2ZXM6IENWRS0yMDI2LTgwMjEyIChyaGJ6IzI1MjczMDgpClJlc29sdmVzOiBDVkUtMjAyNi04 MDIxMyAocmhieiMyNTI3MzEwKQoKLS0tCmRpZmYgLS1naXQgYS9ydWJ5LTIuMS4wLWN1c3RvbS1y dWJ5Z2Vtcy1sb2NhdGlvbi5wYXRjaCBiL3J1YnktMi4xLjAtY3VzdG9tLXJ1YnlnZW1zLWxvY2F0 aW9uLnBhdGNoCmluZGV4IDJmZjU1OTQuLmIyNjU2NDQgMTAwNjQ0Ci0tLSBhL3J1YnktMi4xLjAt Y3VzdG9tLXJ1YnlnZW1zLWxvY2F0aW9uLnBhdGNoCisrKyBiL3J1YnktMi4xLjAtY3VzdG9tLXJ1 YnlnZW1zLWxvY2F0aW9uLnBhdGNoCkBAIC0xNSw3ICsxNSw3IEBAIGRpZmYgLS1naXQgYS9jb25m aWd1cmUuYWMgYi9jb25maWd1cmUuYWMKIGluZGV4IDkzYWYzMDMyMWQuLmJjMTMzOTdlMGUgMTAw NjQ0CiAtLS0gYS9jb25maWd1cmUuYWMKICsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTQ0MDEsNiAr NDQwMSwxMCBAQCBBQ19BUkdfV0lUSCh2ZW5kb3JhcmNoZGlyLAorQEAgLTQzOTgsNiArNDM5OCwx MCBAQCBBQ19BUkdfV0lUSCh2ZW5kb3JhcmNoZGlyLAogICAgICAgICAgICAgIFt2ZW5kb3JhcmNo ZGlyPSR3aXRodmFsXSwKICAgICAgICAgICAgICBbdmVuZG9yYXJjaGRpcj0ke211bHRpYXJjaCsn JHtydWJ5c2l0ZWFyY2hwcmVmaXh9L3ZlbmRvcl9ydWJ5JyR7cnVieV92ZXJzaW9uX2Rpcn19JHtt dWx0aWFyY2gtJyR7dmVuZG9ybGliZGlyfS8ke3NpdGVhcmNofSd9XSkKICAKQEAgLTI2LDcgKzI2 LDcgQEAgaW5kZXggOTNhZjMwMzIxZC4uYmMxMzM5N2UwZSAxMDA2NDQKICBBU19JRihbdGVzdCAi JHtMT0FEX1JFTEFUSVZFK3NldH0iXSwgWwogICAgICBBQ19ERUZJTkVfVU5RVU9URUQoTE9BRF9S RUxBVElWRSwgJExPQURfUkVMQVRJVkUpCiAgICAgIFJVQllfRVhFQ19QUkVGSVg9JycKLUBAIC00 NDI1LDYgKzQ0MjksNyBAQCBBQ19TVUJTVChzaXRlYXJjaGRpcilkbmwKK0BAIC00NDIyLDYgKzQ0 MjYsNyBAQCBBQ19TVUJTVChzaXRlYXJjaGRpcilkbmwKICBBQ19TVUJTVCh2ZW5kb3JkaXIpZG5s CiAgQUNfU1VCU1QodmVuZG9ybGliZGlyKWRubAogIEFDX1NVQlNUKHZlbmRvcmFyY2hkaXIpZG5s CgpkaWZmIC0tZ2l0IGEvcnVieS0zXzQtcHIxODUyOS11cGRhdGUtcmVzb2x2LTBfN18yLnBhdGNo IGIvcnVieS0zXzQtcHIxODUyOS11cGRhdGUtcmVzb2x2LTBfN18yLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3YmFlMzAKLS0tIC9kZXYvbnVsbAorKysgYi9ydWJ5 LTNfNC1wcjE4NTI5LXVwZGF0ZS1yZXNvbHYtMF83XzIucGF0Y2gKQEAgLTAsMCArMSwxMDU3IEBA CitGcm9tIDY4YTExYjZmNDQwMGFlMmYwZjE2ZGYzNzczOTIxMjUzZTQxOWYyOTQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBIaXJvc2hpIFNISUJBVEEgPGhzYnRAcnVieS1sYW5nLm9y Zz4KK0RhdGU6IFRodSwgMjcgQXVnIDIwMjYgMTI6MzE6NDkgKzA5MDAKK1N1YmplY3Q6IFtQQVRD SF0gQnVtcCB1cCByZXNvbHYtMC43LjIgZm9yIFJ1YnkgMy40CisKK0JhY2twb3J0IG9mIHRoZSBB dWd1c3QgMjAyNiByZXNvbHYgc2VjdXJpdHkgcmVsZWFzZS4KKworQ1ZFLTIwMjYtODAyMTIKK0NW RS0yMDI2LTgwMjEzCisKK0NvLUF1dGhvcmVkLUJ5OiBDbGF1ZGUgT3B1cyA1IDxub3JlcGx5QGFu dGhyb3BpYy5jb20+CistLS0KKyBsaWIvcmVzb2x2LnJiICAgICAgICAgICAgICAgICAgICAgfCAx MDEgKysrKysrKysrKysrKy0tCisgdGVzdC9yZXNvbHYvdGVzdF9kbnMucmIgICAgICAgICAgIHwg MTk5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIHRlc3QvcmVzb2x2L3Rlc3RfcmVz b3VyY2UucmIgICAgICB8ICA2MSArKysrKysrKysKKyB0ZXN0L3Jlc29sdi90ZXN0X3Jlc291cmNl X2xlYWsucmIgfCAxMDEgKysrKysrKysrKysrKysrCisgNCBmaWxlcyBjaGFuZ2VkLCA0NTEgaW5z ZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvcmVz b2x2L3Rlc3RfcmVzb3VyY2VfbGVhay5yYgorCitkaWZmIC0tZ2l0IGEvbGliL3Jlc29sdi5yYiBi L2xpYi9yZXNvbHYucmIKK2luZGV4IDk3MjBiNTJjMDBmZWYzLi5hMmZlNjkyYjM4ZjZjZiAxMDA2 NDQKKy0tLSBhL2xpYi9yZXNvbHYucmIKKysrKyBiL2xpYi9yZXNvbHYucmIKK0BAIC0zNSw3ICsz NSw3IEBACisgY2xhc3MgUmVzb2x2CisgCisgICAjIFRoZSB2ZXJzaW9uIHN0cmluZworLSAgVkVS U0lPTiA9ICIwLjcuMSIKKysgIFZFUlNJT04gPSAiMC43LjIiCisgCisgICAjIworICAgIyBMb29r cyB1cCB0aGUgZmlyc3QgSVAgYWRkcmVzcyBmb3IgK25hbWUrLgorQEAgLTEyNTMsNiArMTI1Mywx MyBAQCBkZWYgc2VsZi5zcGxpdChhcmcpCisgCisgICAgICAgY2xhc3MgU3RyICMgOm5vZG9jOgor ICAgICAgICAgZGVmIGluaXRpYWxpemUoc3RyaW5nKQorKyAgICAgICAgICAjIEEgbGFiZWwgaXMg bGltaXRlZCB0byA2MyBvY3RldHMuIFtSRkMgMTAzNSAyLjMuNF0gQ2hlY2tpbmcgaXQgaGVyZQor KyAgICAgICAgICAjIG1ha2VzIGl0IGFuIGludmFyaWFudCBvZiB0aGUgb2JqZWN0OiBldmVyeSBs YWJlbCwgaG93ZXZlciBpdCB3YXMKKysgICAgICAgICAgIyBidWlsdCwgZml0cyBpbiBpdHMgbGVu Z3RoIG9jdGV0IGFuZCBjYW5ub3Qgd3JhcCBpdC4gQ2FsbGVycyB0dXJuCisrICAgICAgICAgICMg dGhpcyBpbnRvIHRoZSBlcnJvciB0aGVpciBvd24gY29udHJhY3QgcHJvbWlzZXMuCisrICAgICAg ICAgIGlmIHN0cmluZy5ieXRlc2l6ZSA+IDYzCisrICAgICAgICAgICAgcmFpc2UgQXJndW1lbnRF cnJvciwgIkROUyBsYWJlbCBpcyB0b28gbG9uZyAoI3tzdHJpbmcuYnl0ZXNpemV9IGJ5dGVzLCBt YXggNjMpOiAje3N0cmluZy5pbnNwZWN0fSIKKysgICAgICAgICAgZW5kCisgICAgICAgICAgIEBz dHJpbmcgPSBzdHJpbmcKKyAgICAgICAgICAgIyBjYXNlIGluc2Vuc2l2aXR5IG9mIEROUyBsYWJl bHMgZG9lc24ndCBhcHBseSBub24tQVNDSUkgY2hhcmFjdGVycy4gW1JGQyA0MzQzXQorICAgICAg ICAgICAjIFRoaXMgYXNzdW1lcyBAc3RyaW5nIGlzIGdpdmVuIGluIEFTQ0lJIGNvbXBhdGlibGUg ZW5jb2RpbmcuCitAQCAtMTI5OCw3ICsxMzA1LDI2IEBAIGRlZiBzZWxmLmNyZWF0ZShhcmcpCisg ICAgICAgICB3aGVuIE5hbWUKKyAgICAgICAgICAgcmV0dXJuIGFyZworICAgICAgICAgd2hlbiBT dHJpbmcKKy0gICAgICAgICAgcmV0dXJuIE5hbWUubmV3KExhYmVsLnNwbGl0KGFyZyksIC9cLlx6 LyA9fiBhcmcgPyB0cnVlIDogZmFsc2UpCisrICAgICAgICAgICMgQSBob3N0bmFtZSBpcyBydW50 aW1lIGRhdGEgcmF0aGVyIHRoYW4gYSBwcm9ncmFtbWluZyBtaXN0YWtlLCBzbworKyAgICAgICAg ICAjIGJvdGggc2l6ZSBsaW1pdHMgc3VyZmFjZSBhcyBSZXNvbHZFcnJvciB0byBzdGF5IHJlc2N1 YWJsZSBhbG9uZ3NpZGUKKysgICAgICAgICAgIyB0aGUgcmVzdCBvZiBuYW1lIHJlc29sdXRpb24u IFRoZSB0eXBlIGNoZWNrIGJlbG93IGlzIGEgY2FsbGVyCisrICAgICAgICAgICMgbWlzdGFrZSBh bmQga2VlcHMgcmFpc2luZyBBcmd1bWVudEVycm9yLgorKyAgICAgICAgICBiZWdpbgorKyAgICAg ICAgICAgIGxhYmVscyA9IExhYmVsLnNwbGl0KGFyZykKKysgICAgICAgICAgcmVzY3VlIEFyZ3Vt ZW50RXJyb3IgPT4gZQorKyAgICAgICAgICAgIHJhaXNlIFJlc29sdkVycm9yLm5ldyhlLm1lc3Nh Z2UpCisrICAgICAgICAgIGVuZAorKyAgICAgICAgICAjIExhYmVsOjpTdHIgZW5mb3JjZXMgdGhl IHBlci1sYWJlbCBsaW1pdC4gT25seSB0aGUgdG90YWwgaXMga25vd2FibGUKKysgICAgICAgICAg IyBoZXJlLCBhbmQgaXQgY291bnRzIHRoZSBlbmNvZGVkIGZvcm0sIHNvIHNpemUgc3RhcnRzIGF0 IDEgZm9yIHRoZQorKyAgICAgICAgICAjIHJvb3QgbGFiZWwncyB0ZXJtaW5hdGluZyB6ZXJvIG9j dGV0LiBbUkZDIDEwMzUgMi4zLjQsIDMuMV0KKysgICAgICAgICAgc2l6ZSA9IDEKKysgICAgICAg ICAgbGFiZWxzLmVhY2ggZG8gfGxhYmVsfAorKyAgICAgICAgICAgIHNpemUgKz0gMSArIGxhYmVs LnN0cmluZy5ieXRlc2l6ZQorKyAgICAgICAgICAgIGlmIHNpemUgPiAyNTUKKysgICAgICAgICAg ICAgIHJhaXNlIFJlc29sdkVycm9yLm5ldygiRE5TIG5hbWUgaXMgdG9vIGxvbmcgKCN7c2l6ZX0g b2N0ZXRzLCBtYXggMjU1KTogI3thcmcuaW5zcGVjdH0iKQorKyAgICAgICAgICAgIGVuZAorKyAg ICAgICAgICBlbmQKKysgICAgICAgICAgcmV0dXJuIE5hbWUubmV3KGxhYmVscywgL1wuXHovID1+ IGFyZyA/IHRydWUgOiBmYWxzZSkKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAgcmFpc2UgQXJn dW1lbnRFcnJvci5uZXcoImNhbm5vdCBpbnRlcnByZXQgYXMgRE5TIG5hbWU6ICN7YXJnLmluc3Bl Y3R9IikKKyAgICAgICAgIGVuZAorQEAgLTE0MjAsMTIgKzE0NDYsMjQgQEAgZGVmID09KG90aGVy KQorICAgICAgICAgICAgICAgIEByZCA9PSBvdGhlci5yZCAmJgorICAgICAgICAgICAgICAgIEBy YSA9PSBvdGhlci5yYSAmJgorICAgICAgICAgICAgICAgIEByY29kZSA9PSBvdGhlci5yY29kZSAm JgorLSAgICAgICAgICAgICAgIEBxdWVzdGlvbiA9PSBvdGhlci5xdWVzdGlvbiAmJgorKyAgICAg ICAgICAgICAgIHF1ZXN0aW9uX2VxdWFsPyhvdGhlci5xdWVzdGlvbikgJiYKKyAgICAgICAgICAg ICAgICBAYW5zd2VyID09IG90aGVyLmFuc3dlciAmJgorICAgICAgICAgICAgICAgIEBhdXRob3Jp dHkgPT0gb3RoZXIuYXV0aG9yaXR5ICYmCisgICAgICAgICAgICAgICAgQGFkZGl0aW9uYWwgPT0g b3RoZXIuYWRkaXRpb25hbAorICAgICAgIGVuZAorIAorKyAgICAgICMgQSBxdWVzdGlvbiBob2xk cyB0aGUgcmVzb3VyY2UgY2xhc3MgaXRzZWxmLCBhbmQgZGVjb2RpbmcgY3JlYXRlcyBhIGZyZXNo CisrICAgICAgIyBjbGFzcyBmb3IgZWFjaCB1bmtub3duIHR5cGUsIHNvIHRoZSBjbGFzc2VzIGNh bm5vdCBiZSBjb21wYXJlZCBieQorKyAgICAgICMgaWRlbnRpdHkgYWxvbmUuCisrICAgICAgcHJp dmF0ZSBkZWYgcXVlc3Rpb25fZXF1YWw/KG90aGVyX3F1ZXN0aW9uKSAjIDpub2RvYzoKKysgICAg ICAgIHJldHVybiBmYWxzZSB1bmxlc3MgQHF1ZXN0aW9uLmxlbmd0aCA9PSBvdGhlcl9xdWVzdGlv bi5sZW5ndGgKKysgICAgICAgIEBxdWVzdGlvbi56aXAob3RoZXJfcXVlc3Rpb24pIHt8KG5hbWUs IHR5cGVjbGFzcyksIChvX25hbWUsIG9fdHlwZWNsYXNzKXwKKysgICAgICAgICAgcmV0dXJuIGZh bHNlIHVubGVzcyBuYW1lID09IG9fbmFtZSAmJgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJlc291cmNlOjpHZW5lcmljLnR5cGVfY2xhc3NfZXF1YWw/KHR5cGVjbGFzcywgb190eXBl Y2xhc3MpCisrICAgICAgICB9CisrICAgICAgICByZXR1cm4gdHJ1ZQorKyAgICAgIGVuZAorKwor ICAgICAgIGRlZiBhZGRfcXVlc3Rpb24obmFtZSwgdHlwZWNsYXNzKQorICAgICAgICAgQHF1ZXN0 aW9uIDw8IFtOYW1lLmNyZWF0ZShuYW1lKSwgdHlwZWNsYXNzXQorICAgICAgIGVuZAorQEAgLTE1 MzIsOCArMTU3MCwxNSBAQCBkZWYgcHV0X2xlbmd0aDE2CisgICAgICAgICBlbmQKKyAKKyAgICAg ICAgIGRlZiBwdXRfc3RyaW5nKGQpCistICAgICAgICAgIHNlbGYucHV0X3BhY2soIkMiLCBkLmxl bmd0aCkKKy0gICAgICAgICAgQGRhdGEgPDwgZAorKyAgICAgICAgICBzID0gZC50b19zCisrICAg ICAgICAgICMgQSBjaGFyYWN0ZXItc3RyaW5nIGlzIHByZWZpeGVkIGJ5IGEgc2luZ2xlIGxlbmd0 aCBvY3RldCwgc28gaXQgY2FuCisrICAgICAgICAgICMgaG9sZCBhdCBtb3N0IDI1NSBvY3RldHMu IFtSRkMgMTAzNSAzLjNdIFJlamVjdCBhbnl0aGluZyBsb25nZXIgdG8KKysgICAgICAgICAgIyBh dm9pZCBzaWxlbnRseSB0cnVuY2F0aW5nIHRoZSBsZW5ndGggdG8gaXRzIGxvdyA4IGJpdHMgKG1v ZCAyNTYpLgorKyAgICAgICAgICBpZiBzLmJ5dGVzaXplID4gMjU1CisrICAgICAgICAgICAgcmFp c2UgQXJndW1lbnRFcnJvciwgImNoYXJhY3Rlci1zdHJpbmcgaXMgdG9vIGxvbmcgKCN7cy5ieXRl c2l6ZX0gYnl0ZXMsIG1heCAyNTUpOiAje3MuaW5zcGVjdH0iCisrICAgICAgICAgIGVuZAorKyAg ICAgICAgICBzZWxmLnB1dF9wYWNrKCJDIiwgcy5ieXRlc2l6ZSkKKysgICAgICAgICAgQGRhdGEg PDwgcworICAgICAgICAgZW5kCisgCisgICAgICAgICBkZWYgcHV0X3N0cmluZ19saXN0KGRzKQor QEAgLTE1NjMsNyArMTYwOCwxNyBAQCBkZWYgcHV0X2xhYmVscyhkLCBjb21wcmVzczogdHJ1ZSkK KyAgICAgICAgIGVuZAorIAorICAgICAgICAgZGVmIHB1dF9sYWJlbChkKQorLSAgICAgICAgICBz ZWxmLnB1dF9zdHJpbmcoZC50b19zKQorKyAgICAgICAgICBzID0gZC50b19zCisrICAgICAgICAg ICMgTGFiZWw6OlN0ciBhcHBsaWVzIHRoaXMgbGltaXQgd2hlbiBhIGxhYmVsIGlzIGJ1aWx0LCBz byB3aGF0IGlzIGxlZnQKKysgICAgICAgICAgIyBmb3IgaGVyZSBpcyBhIHJhdyBzdHJpbmcgaGFu ZGVkIHN0cmFpZ2h0IHRvIHB1dF9sYWJlbHMuIFRoZSB0d28gd2F5cworKyAgICAgICAgICAjIGFu IG92ZXItbG9uZyBsYWJlbCBnb2VzIHdyb25nIGRpZmZlcjogNjQgdG8gMjU1IG9jdGV0cyB3cml0 ZSBhIGxlbmd0aAorKyAgICAgICAgICAjIG9jdGV0IGluIHRoZSByZXNlcnZlZCBvciBjb21wcmVz c2lvbiBwb2ludGVyIHJhbmdlLCBhbmQgMjU2IG9yIG1vcmUKKysgICAgICAgICAgIyB3cmFwIGl0 IG1vZCAyNTYuIEVpdGhlciB3YXkgdGhlIGVuY29kZWQgbmFtZSBzdG9wcyBiZWluZyB0aGUgbmFt ZSB0aGUKKysgICAgICAgICAgIyBjYWxsZXIgYXNrZWQgZm9yLiBbUkZDIDEwMzUgMi4zLjQsIDQu MS40XQorKyAgICAgICAgICBpZiBzLmJ5dGVzaXplID4gNjMKKysgICAgICAgICAgICByYWlzZSBB cmd1bWVudEVycm9yLCAiRE5TIGxhYmVsIGlzIHRvbyBsb25nICgje3MuYnl0ZXNpemV9IGJ5dGVz LCBtYXggNjMpOiAje3MuaW5zcGVjdH0iCisrICAgICAgICAgIGVuZAorKyAgICAgICAgICBzZWxm LnB1dF9zdHJpbmcocykKKyAgICAgICAgIGVuZAorICAgICAgIGVuZAorIAorQEAgLTE2ODksNyAr MTc0NCw5IEBAIGRlZiBnZXRfbGFiZWxzCisgICAgICAgICAgIHByZXZfaW5kZXggPSBAaW5kZXgK KyAgICAgICAgICAgc2F2ZV9pbmRleCA9IG5pbAorICAgICAgICAgICBkID0gW10KKy0gICAgICAg ICAgc2l6ZSA9IC0xCisrICAgICAgICAgICMgc2l6ZSBjb3VudHMgdGhlIGVuY29kZWQgZm9ybSwg c28gaXQgc3RhcnRzIGF0IDEgZm9yIHRoZSByb290CisrICAgICAgICAgICMgbGFiZWwncyB0ZXJt aW5hdGluZyB6ZXJvIG9jdGV0LiBbUkZDIDEwMzUgMy4xXQorKyAgICAgICAgICBzaXplID0gMQor ICAgICAgICAgICB3aGlsZSB0cnVlCisgICAgICAgICAgICAgcmFpc2UgRGVjb2RlRXJyb3IubmV3 KCJsaW1pdCBleGNlZWRlZCIpIGlmIEBsaW1pdCA8PSBAaW5kZXgKKyAgICAgICAgICAgICBjYXNl IEBkYXRhLmdldGJ5dGUoQGluZGV4KQorQEAgLTE3MjAsNiArMTc3NywxMSBAQCBkZWYgZ2V0X2xh YmVscworIAorICAgICAgICAgZGVmIGdldF9sYWJlbAorICAgICAgICAgICByZXR1cm4gTGFiZWw6 OlN0ci5uZXcoc2VsZi5nZXRfc3RyaW5nKQorKyAgICAgICAgcmVzY3VlIEFyZ3VtZW50RXJyb3Ig PT4gZQorKyAgICAgICAgICAjIEEgbGVuZ3RoIG9jdGV0IG9mIDY0Li4xOTEgaXMgcmVzZXJ2ZWQg cmF0aGVyIHRoYW4gYSBsYWJlbCBsZW5ndGgsCisrICAgICAgICAgICMgYnV0IHRoaXMgZGVjb2Rl ciB1c2VkIHRvIHJlYWQgaXQgYXMgb25lLiBbUkZDIDEwMzUgNC4xLjRdIFJlcG9ydCBpdAorKyAg ICAgICAgICAjIHRoZSB3YXkgdGhlIHJlc3Qgb2YgYSBtYWxmb3JtZWQgbWVzc2FnZSBpcyByZXBv cnRlZC4KKysgICAgICAgICAgcmFpc2UgRGVjb2RlRXJyb3IubmV3KGUubWVzc2FnZSkKKyAgICAg ICAgIGVuZAorIAorICAgICAgICAgZGVmIGdldF9xdWVzdGlvbgorQEAgLTE5MDcsOCArMTk2OSw5 IEBAIGRlZiBzZWxmLmNyZWF0ZShrZXlfbnVtYmVyKQorICAgICAgICAgICBrZXlfbmFtZSA9IDoi a2V5I3trZXlfbnVtYmVyfSIKKyAgICAgICAgICAgYy5jb25zdF9zZXQoOktleU5hbWUsIGtleV9u YW1lKQorICAgICAgICAgICBjLmNvbnN0X3NldCg6S2V5TnVtYmVyLCBrZXlfbnVtYmVyKQorLSAg ICAgICAgICBzZWxmLmNvbnN0X3NldCg6IktleSN7a2V5X251bWJlcn0iLCBjKQorLSAgICAgICAg ICBDbGFzc0hhc2hba2V5X25hbWVdID0gQ2xhc3NIYXNoW2tleV9udW1iZXJdID0gYworKyAgICAg ICAgICAjIE5vdCByZWdpc3RlcmVkIGluIGEgY29uc3RhbnQgb3IgaW4gQ2xhc3NIYXNoLiBDbGFz c0hhc2ggY3JlYXRlcyBhCisrICAgICAgICAgICMgY2xhc3MgZm9yIGV2ZXJ5IHVua25vd24gU3Zj UGFyYW1LZXksIHNvIHJlZ2lzdGVyaW5nIHRoZW0KKysgICAgICAgICAgIyBwZXJtYW5lbnRseSB3 b3VsZCBsZXQgYSBtYWxpY2lvdXMgcmVzcG9uc2UgZXhoYXVzdCBtZW1vcnkuCisgICAgICAgICAg IHJldHVybiBjCisgICAgICAgICBlbmQKKyAgICAgICBlbmQKK0BAIC0yMjE1LDEyICsyMjc4LDI4 IEBAIGRlZiBzZWxmLmRlY29kZV9yZGF0YShtc2cpICMgOm5vZG9jOgorICAgICAgICAgICByZXR1 cm4gc2VsZi5uZXcobXNnLmdldF9ieXRlcykKKyAgICAgICAgIGVuZAorIAorKyAgICAgICAgIyBj cmVhdGUgbWFrZXMgYSBmcmVzaCBjbGFzcyBmb3IgZWFjaCBkZWNvZGVkIHJlc291cmNlLCBzbyB0 aGUgdHlwZSBhbmQKKysgICAgICAgICMgY2xhc3MgdmFsdWVzIGhhdmUgdG8gYmUgY29tcGFyZWQg aW5zdGVhZCBvZiB0aGUgY2xhc3MgaXRzZWxmLgorKyAgICAgICAgZGVmIHNlbGYudHlwZV9jbGFz c19lcXVhbD8oa2xhc3MsIG90aGVyKSAjIDpub2RvYzoKKysgICAgICAgICAgcmV0dXJuIHRydWUg aWYga2xhc3MuZXF1YWw/KG90aGVyKQorKyAgICAgICAgICBHZW5lcmljID4ga2xhc3MgJiYgR2Vu ZXJpYyA+IG90aGVyICYmCisrICAgICAgICAgICAga2xhc3M6OlR5cGVWYWx1ZSA9PSBvdGhlcjo6 VHlwZVZhbHVlICYmCisrICAgICAgICAgICAga2xhc3M6OkNsYXNzVmFsdWUgPT0gb3RoZXI6OkNs YXNzVmFsdWUKKysgICAgICAgIGVuZAorKworKyAgICAgICAgZGVmID09KG90aGVyKSAjIDpub2Rv YzoKKysgICAgICAgICAgcmV0dXJuIG90aGVyLmlzX2E/KEdlbmVyaWMpICYmCisrICAgICAgICAg ICAgICAgICBHZW5lcmljLnR5cGVfY2xhc3NfZXF1YWw/KHNlbGYuY2xhc3MsIG90aGVyLmNsYXNz KSAmJgorKyAgICAgICAgICAgICAgICAgQGRhdGEgPT0gb3RoZXIuZGF0YQorKyAgICAgICAgZW5k CisrCisgICAgICAgICBkZWYgc2VsZi5jcmVhdGUodHlwZV92YWx1ZSwgY2xhc3NfdmFsdWUpICMg Om5vZG9jOgorICAgICAgICAgICBjID0gQ2xhc3MubmV3KEdlbmVyaWMpCisgICAgICAgICAgIGMu Y29uc3Rfc2V0KDpUeXBlVmFsdWUsIHR5cGVfdmFsdWUpCisgICAgICAgICAgIGMuY29uc3Rfc2V0 KDpDbGFzc1ZhbHVlLCBjbGFzc192YWx1ZSkKKy0gICAgICAgICAgR2VuZXJpYy5jb25zdF9zZXQo IlR5cGUje3R5cGVfdmFsdWV9X0NsYXNzI3tjbGFzc192YWx1ZX0iLCBjKQorLSAgICAgICAgICBD bGFzc0hhc2hbW3R5cGVfdmFsdWUsIGNsYXNzX3ZhbHVlXV0gPSBjCisrICAgICAgICAgICMgTm90 IHJlZ2lzdGVyZWQgaW4gYSBjb25zdGFudCBvciBpbiBDbGFzc0hhc2guIGdldF9jbGFzcyBjcmVh dGVzIGEKKysgICAgICAgICAgIyBjbGFzcyBmb3IgZXZlcnkgdW5rbm93biAodHlwZSwgY2xhc3Mp IHBhaXIsIHNvIHJlZ2lzdGVyaW5nIHRoZW0KKysgICAgICAgICAgIyBwZXJtYW5lbnRseSB3b3Vs ZCBsZXQgYSBtYWxpY2lvdXMgcmVzcG9uc2UgZXhoYXVzdCBtZW1vcnkuCisgICAgICAgICAgIHJl dHVybiBjCisgICAgICAgICBlbmQKKyAgICAgICBlbmQKK2RpZmYgLS1naXQgYS90ZXN0L3Jlc29s di90ZXN0X2Rucy5yYiBiL3Rlc3QvcmVzb2x2L3Rlc3RfZG5zLnJiCitpbmRleCA3YTAxOTA5ZWVi OWE0Yi4uMzRhZTRhZWI5YTMzYzMgMTAwNjQ0CistLS0gYS90ZXN0L3Jlc29sdi90ZXN0X2Rucy5y YgorKysrIGIvdGVzdC9yZXNvbHYvdGVzdF9kbnMucmIKK0BAIC02MzYsNiArNjM2LDIwNSBAQCBk ZWYgdGVzdF90b29fbG9uZ19hZGRyZXNzCisgICAgIGVuZAorICAgZW5kCisgCisrICAjIEEgRE5T IGxhYmVsIGlzIGxpbWl0ZWQgdG8gNjMgb2N0ZXRzLiBbUkZDIDEwMzUgMi4zLjRdIFdyaXRpbmcg YSBsb25nZXIgbGFiZWwKKysgICMgdGhyb3VnaCB0aGUgbGFiZWwgcGF0aCBtdXN0IHJhaXNlIGlu c3RlYWQgb2Ygb3ZlcmZsb3dpbmcgdGhlIGxlbmd0aCBvY3RldC4KKysgIGRlZiB0ZXN0X3B1dF9s YWJlbF9yZWplY3RzX2xhYmVsX292ZXJfNjNfb2N0ZXRzCisrICAgIFJlc29sdjo6RE5TOjpNZXNz YWdlOjpNZXNzYWdlRW5jb2Rlci5uZXcge3xtc2d8CisrICAgICAgYXNzZXJ0X25vdGhpbmdfcmFp c2VkIHsgbXNnLnB1dF9sYWJlbCgiYSIgKiA2MykgfQorKyAgICAgIGFzc2VydF9yYWlzZV93aXRo X21lc3NhZ2UoQXJndW1lbnRFcnJvciwgL0ROUyBsYWJlbCBpcyB0b28gbG9uZy8pIGRvCisrICAg ICAgICBtc2cucHV0X2xhYmVsKCJhIiAqIDY0KQorKyAgICAgIGVuZAorKyAgICB9CisrICAgICMg cHV0X2xhYmVscyBkcml2ZXMgcHV0X2xhYmVsLCBzbyB0aGUgc2FtZSBndWFyZCBhcHBsaWVzIHRv IHRoZSBuYW1lIHBhdGguCisrICAgIFJlc29sdjo6RE5TOjpNZXNzYWdlOjpNZXNzYWdlRW5jb2Rl ci5uZXcge3xtc2d8CisrICAgICAgYXNzZXJ0X3JhaXNlX3dpdGhfbWVzc2FnZShBcmd1bWVudEVy cm9yLCAvRE5TIGxhYmVsIGlzIHRvbyBsb25nLykgZG8KKysgICAgICAgIG1zZy5wdXRfbGFiZWxz KFsiYSIgKiA2NF0pCisrICAgICAgZW5kCisrICAgIH0KKysgIGVuZAorKworKyAgIyBUaGUgcGVy LWxhYmVsIGxpbWl0IGlzIGFuIGludmFyaWFudCBvZiBMYWJlbDo6U3RyLCBzbyBubyBsYWJlbCBv YmplY3QgY2FuCisrICAjIGV4aXN0IHRoYXQgd291bGQgb3ZlcmZsb3cgaXRzIGxlbmd0aCBvY3Rl dC4gW1JGQyAxMDM1IDIuMy40XQorKyAgZGVmIHRlc3RfbGFiZWxfc3RyX3JlamVjdHNfbGFiZWxf b3Zlcl82M19vY3RldHMKKysgICAgYXNzZXJ0X25vdGhpbmdfcmFpc2VkIHsgUmVzb2x2OjpETlM6 OkxhYmVsOjpTdHIubmV3KCJhIiAqIDYzKSB9CisrICAgIGFzc2VydF9yYWlzZV93aXRoX21lc3Nh Z2UoQXJndW1lbnRFcnJvciwgL0ROUyBsYWJlbCBpcyB0b28gbG9uZy8pIGRvCisrICAgICAgUmVz b2x2OjpETlM6OkxhYmVsOjpTdHIubmV3KCJhIiAqIDY0KQorKyAgICBlbmQKKysgIGVuZAorKwor KyAgIyBFdmVyeSB3YXkgb2YgYnVpbGRpbmcgYSBuYW1lIGdvZXMgdGhyb3VnaCBMYWJlbDo6U3Ry LCBzbyB0aGUgcGF0aHMgdGhhdAorKyAgIyBza2lwIE5hbWUuY3JlYXRlIGFyZSBjb3ZlcmVkIHRv by4KKysgIGRlZiB0ZXN0X2xhYmVsX2xlbmd0aF9pc19lbmZvcmNlZF9vbl9ldmVyeV9jb25zdHJ1 Y3Rpb25fcGF0aAorKyAgICBhc3NlcnRfcmFpc2Vfd2l0aF9tZXNzYWdlKEFyZ3VtZW50RXJyb3Is IC9ETlMgbGFiZWwgaXMgdG9vIGxvbmcvKSBkbworKyAgICAgIFJlc29sdjo6RE5TOjpOYW1lLm5l dyhbImEiICogNjRdKQorKyAgICBlbmQKKysgICAgYXNzZXJ0X3JhaXNlX3dpdGhfbWVzc2FnZShB cmd1bWVudEVycm9yLCAvRE5TIGxhYmVsIGlzIHRvbyBsb25nLykgZG8KKysgICAgICBSZXNvbHY6 OkROUzo6TGFiZWwuc3BsaXQoImEiICogNjQpCisrICAgIGVuZAorKyAgICAjIENvbmZpZyNnZW5l cmF0ZV9jYW5kaWRhdGVzIGFwcGVuZHMgc2VhcmNoIGRvbWFpbnMgd2l0aCBOYW1lLm5ldywgYW5k IHRoZQorKyAgICAjIHNlYXJjaCBsaXN0IGl0c2VsZiBjb21lcyBmcm9tIExhYmVsLnNwbGl0LCBz byBhIHJlc29sdi5jb25mIGNhcnJ5aW5nIGFuCisrICAgICMgb3Zlci1sb25nIGxhYmVsIGlzIHJl amVjdGVkIHdoZW4gdGhlIGNvbmZpZyBpcyByZWFkLgorKyAgICBjb25maWcgPSBSZXNvbHY6OkRO Uzo6Q29uZmlnLm5ldyhuYW1lc2VydmVyOiBbJzEyNy4wLjAuMSddLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2g6IFsiYSIgKiA2NF0sIG5kb3RzOiAxKQorKyAg ICBhc3NlcnRfcmFpc2Vfd2l0aF9tZXNzYWdlKEFyZ3VtZW50RXJyb3IsIC9ETlMgbGFiZWwgaXMg dG9vIGxvbmcvKSBkbworKyAgICAgIGNvbmZpZy5sYXp5X2luaXRpYWxpemUKKysgICAgZW5kCisr ICBlbmQKKysKKysgIGRlZiB0ZXN0X25hbWVfY3JlYXRlX3JlamVjdHNfdG9vX2xvbmdfbGFiZWwK KysgICAgYXNzZXJ0X25vdGhpbmdfcmFpc2VkIHsgUmVzb2x2OjpETlM6Ok5hbWUuY3JlYXRlKCJh IiAqIDYzKSB9CisrICAgIGFzc2VydF9yYWlzZV93aXRoX21lc3NhZ2UoUmVzb2x2OjpSZXNvbHZF cnJvciwgL0ROUyBsYWJlbCBpcyB0b28gbG9uZy8pIGRvCisrICAgICAgUmVzb2x2OjpETlM6Ok5h bWUuY3JlYXRlKCJhIiAqIDY0KQorKyAgICBlbmQKKysgIGVuZAorKworKyAgZGVmIHRlc3RfbmFt ZV9jcmVhdGVfcmVqZWN0c190b29fbG9uZ19uYW1lCisrICAgICMgRml2ZSA2My1vY3RldCBsYWJl bHMgdG90YWwgMzIxIGVuY29kZWQgb2N0ZXRzLCBvdmVyIHRoZSAyNTUgb2N0ZXQgbGltaXQsCisr ICAgICMgd2hpbGUgZWFjaCBpbmRpdmlkdWFsIGxhYmVsIGlzIHN0aWxsIHZhbGlkLgorKyAgICB0 b29fbG9uZyA9IChbImEiICogNjNdICogNSkuam9pbigiLiIpCisrICAgIGFzc2VydF9yYWlzZV93 aXRoX21lc3NhZ2UoUmVzb2x2OjpSZXNvbHZFcnJvciwgL0ROUyBuYW1lIGlzIHRvbyBsb25nLykg ZG8KKysgICAgICBSZXNvbHY6OkROUzo6TmFtZS5jcmVhdGUodG9vX2xvbmcpCisrICAgIGVuZAor KyAgZW5kCisrCisrICAjIEEgaG9zdG5hbWUgaXMgcnVudGltZSBkYXRhLCBzbyBhbiBvdmVyLWxv bmcgb25lIGhhcyB0byBzdGF5IHJlc2N1YWJsZSB0aGUKKysgICMgd2F5IHRoZSByZXN0IG9mIG5h bWUgcmVzb2x1dGlvbiBpcy4gSXQgcmVhY2hlcyBOYW1lLmNyZWF0ZSB0aHJvdWdoCisrICAjIENv bmZpZyNnZW5lcmF0ZV9jYW5kaWRhdGVzLCB3aGljaCBydW5zIG91dHNpZGUgQ29uZmlnI3Jlc29s didzIG93biByZXNjdWUuCisrICBkZWYgdGVzdF9vdmVyc2l6ZWRfbmFtZV9pc19yZXNjdWFibGVf YXNfcmVzb2x2X2Vycm9yCisrICAgIGRucyA9IFJlc29sdjo6RE5TLm5ldyhuYW1lc2VydmVyX3Bv cnQ6IFtbJzEyNy4wLjAuMScsIDUzXV0pCisrICAgIGFzc2VydF9yYWlzZShSZXNvbHY6OlJlc29s dkVycm9yKSB7IGRucy5nZXRhZGRyZXNzKCJhIiAqIDY0KSB9CisrICAgIGFzc2VydF9yYWlzZShS ZXNvbHY6OlJlc29sdkVycm9yKSB7IGRucy5nZXRhZGRyZXNzKChbImEiICogNjNdICogNSkuam9p bigiLiIpKSB9CisrICBlbnN1cmUKKysgICAgZG5zJi5jbG9zZQorKyAgZW5kCisrCisrICAjIEEg bGVuZ3RoIG9jdGV0IG9mIDY0Li4xOTEgaXMgcmVzZXJ2ZWQsIG5vdCBhIGxhYmVsIGxlbmd0aCwg YnV0IHRoaXMgZGVjb2RlcgorKyAgIyByZWFkIGl0IGFzIG9uZSBhbmQgYWNjZXB0ZWQgbGFiZWxz IG5vIGVuY29kZXIgc2hvdWxkIGV2ZXIgcHJvZHVjZS4KKysgICMgW1JGQyAxMDM1IDQuMS40XSBS ZWplY3RpbmcgdGhlbSBoYXMgdG8gbG9vayBsaWtlIGFueSBvdGhlciBtYWxmb3JtZWQKKysgICMg bWVzc2FnZSwgc28gdGhlIGNhbGxlcidzIHJlc2N1ZSBEZWNvZGVFcnJvciBzdGlsbCBjb3ZlcnMg aXQuCisrICBkZWYgdGVzdF9kZWNvZGVfcmVqZWN0c19sYWJlbF9vdmVyXzYzX29jdGV0cworKyAg ICBtZXNzYWdlID0gLT4obikgeworKyAgICAgIFswLCAweDgxODAsIDEsIDAsIDAsIDBdLnBhY2so Im4qIikgKworKyAgICAgICAgW25dLnBhY2soIkMiKSArICgiYSIgKiBuKSArICJcMCIgKyBbMSwg MV0ucGFjaygibm4iKQorKyAgICB9CisrICAgIGFzc2VydF9ub3RoaW5nX3JhaXNlZCB7IFJlc29s djo6RE5TOjpNZXNzYWdlLmRlY29kZShtZXNzYWdlLmNhbGwoNjMpKSB9CisrICAgIFs2NCwgMTAw LCAxOTFdLmVhY2ggZG8gfG58CisrICAgICAgYXNzZXJ0X3JhaXNlX3dpdGhfbWVzc2FnZShSZXNv bHY6OkROUzo6RGVjb2RlRXJyb3IsIC9ETlMgbGFiZWwgaXMgdG9vIGxvbmcvKSBkbworKyAgICAg ICAgUmVzb2x2OjpETlM6Ok1lc3NhZ2UuZGVjb2RlKG1lc3NhZ2UuY2FsbChuKSkKKysgICAgICBl bmQKKysgICAgZW5kCisrICBlbmQKKysKKysgICMgVGhlIHR5cGUgY2hlY2sgaXMgYSBjYWxsZXIg bWlzdGFrZSByYXRoZXIgdGhhbiBydW50aW1lIGRhdGEsIHNvIGl0IGtlZXBzCisrICAjIHJhaXNp bmcgQXJndW1lbnRFcnJvci4KKysgIGRlZiB0ZXN0X25hbWVfY3JlYXRlX3N0aWxsX3JhaXNlc19h cmd1bWVudF9lcnJvcl9mb3Jfd3JvbmdfdHlwZQorKyAgICBhc3NlcnRfcmFpc2Vfd2l0aF9tZXNz YWdlKEFyZ3VtZW50RXJyb3IsIC9jYW5ub3QgaW50ZXJwcmV0IGFzIEROUyBuYW1lLykgZG8KKysg ICAgICBSZXNvbHY6OkROUzo6TmFtZS5jcmVhdGUoMTIzKQorKyAgICBlbmQKKysgIGVuZAorKwor KyAgIyBUaGUgMjU1IG9jdGV0IGxpbWl0IGNvdW50cyB0aGUgZW5jb2RlZCBmb3JtLCBpbmNsdWRp bmcgZWFjaCBsYWJlbCdzIGxlbmd0aAorKyAgIyBvY3RldCBhbmQgdGhlIHJvb3QgbGFiZWwncyB0 ZXJtaW5hdGluZyB6ZXJvIG9jdGV0LiBbUkZDIDEwMzUgMi4zLjQsIDMuMV0KKysgICMgU28gdGhl IGxvbmdlc3QgbGVnYWwgbmFtZSBlbmNvZGVzIHRvIGV4YWN0bHkgMjU1IG9jdGV0cy4KKysgIGRl ZiB0ZXN0X25hbWVfY3JlYXRlX3RvdGFsX2xlbmd0aF9ib3VuZGFyeQorKyAgICBhdF9saW1pdCA9 IChbImEiICogNjNdICogMyArIFsiYSIgKiA2MV0pLmpvaW4oIi4iKQorKyAgICBuYW1lID0gUmVz b2x2OjpETlM6Ok5hbWUuY3JlYXRlKGF0X2xpbWl0KQorKyAgICBlbmNvZGVkID0gUmVzb2x2OjpE TlM6Ok1lc3NhZ2U6Ok1lc3NhZ2VFbmNvZGVyLm5ldyB7fG1zZ3wgbXNnLnB1dF9uYW1lKG5hbWUp IH0udG9fcworKyAgICBhc3NlcnRfZXF1YWwoMjU1LCBlbmNvZGVkLmJ5dGVzaXplLCAibG9uZ2Vz dCBsZWdhbCBuYW1lIGVuY29kZXMgdG8gMjU1IG9jdGV0cyIpCisrCisrICAgIG92ZXJfbGltaXQg PSAoWyJhIiAqIDYzXSAqIDMgKyBbImEiICogNjJdKS5qb2luKCIuIikKKysgICAgYXNzZXJ0X3Jh aXNlX3dpdGhfbWVzc2FnZShSZXNvbHY6OlJlc29sdkVycm9yLCAvRE5TIG5hbWUgaXMgdG9vIGxv bmcvKSBkbworKyAgICAgIFJlc29sdjo6RE5TOjpOYW1lLmNyZWF0ZShvdmVyX2xpbWl0KQorKyAg ICBlbmQKKysKKysgICAgIyBGb3VyIDYzLW9jdGV0IGxhYmVscyBlbmNvZGUgdG8gMjU3IG9jdGV0 cy4gQ291bnRpbmcgdGhlIHByZXNlbnRhdGlvbgorKyAgICAjIGZvcm0gaW5zdGVhZCBvZiB0aGUg ZW5jb2RlZCBmb3JtIGxldHMgdGhlc2UgdHdvIGV4dHJhIG9jdGV0cyB0aHJvdWdoLgorKyAgICBh c3NlcnRfcmFpc2Vfd2l0aF9tZXNzYWdlKFJlc29sdjo6UmVzb2x2RXJyb3IsIC9ETlMgbmFtZSBp cyB0b28gbG9uZy8pIGRvCisrICAgICAgUmVzb2x2OjpETlM6Ok5hbWUuY3JlYXRlKChbImEiICog NjNdICogNCkuam9pbigiLiIpKQorKyAgICBlbmQKKysgIGVuZAorKworKyAgIyBUaGUgZGVjb2Rl ciBlbmZvcmNlcyB0aGUgc2FtZSBsaW1pdCwgY291bnRlZCB0aGUgc2FtZSB3YXkuCisrICBkZWYg dGVzdF9nZXRfbGFiZWxzX3RvdGFsX2xlbmd0aF9ib3VuZGFyeQorKyAgICBlbmNvZGUgPSAtPihs YWJlbHMpIHsKKysgICAgICBSZXNvbHY6OkROUzo6TWVzc2FnZTo6TWVzc2FnZUVuY29kZXIubmV3 IHt8bXNnfAorKyAgICAgICAgbXNnLnB1dF9sYWJlbHMobGFiZWxzLm1hcCB7fGx8IFJlc29sdjo6 RE5TOjpMYWJlbDo6U3RyLm5ldyhsKSB9KQorKyAgICAgIH0udG9fcworKyAgICB9CisrCisrICAg IGF0X2xpbWl0ID0gZW5jb2RlLmNhbGwoWyJhIiAqIDYzXSAqIDMgKyBbImEiICogNjFdKQorKyAg ICBhc3NlcnRfZXF1YWwoMjU1LCBhdF9saW1pdC5ieXRlc2l6ZSkKKysgICAgUmVzb2x2OjpETlM6 Ok1lc3NhZ2U6Ok1lc3NhZ2VEZWNvZGVyLm5ldyhhdF9saW1pdCkge3xtc2d8CisrICAgICAgYXNz ZXJ0X2VxdWFsKDQsIG1zZy5nZXRfbGFiZWxzLmxlbmd0aCkKKysgICAgfQorKworKyAgICBvdmVy X2xpbWl0ID0gZW5jb2RlLmNhbGwoWyJhIiAqIDYzXSAqIDQpCisrICAgIGFzc2VydF9lcXVhbCgy NTcsIG92ZXJfbGltaXQuYnl0ZXNpemUpCisrICAgIGFzc2VydF9yYWlzZV93aXRoX21lc3NhZ2Uo UmVzb2x2OjpETlM6OkRlY29kZUVycm9yLCAvbmFtZSBsYWJlbCBkYXRhIGV4Y2VlZCAyNTUgb2N0 ZXRzLykgZG8KKysgICAgICBSZXNvbHY6OkROUzo6TWVzc2FnZTo6TWVzc2FnZURlY29kZXIubmV3 KG92ZXJfbGltaXQpIHt8bXNnfCBtc2cuZ2V0X2xhYmVscyB9CisrICAgIGVuZAorKyAgZW5kCisr CisrICAjIEEgc2luZ2xlIDI2Mi1vY3RldCBsYWJlbCB3aG9zZSBieXRlcyBzdGFydCB3aXRoICJ0 YXJnZXRceDAzY29tXHgwMCIuIFRoZQorKyAgIyBvbGQgZW5jb2RlciB3cm90ZSB0aGUgbGVuZ3Ro IG9jdGV0IGFzIDI2MiAmIDB4ZmYgPT0gNiwgc28gdGhlIHdpcmUgYnl0ZXMKKysgICMgZGVjb2Rl ZCB0byB0aGUgdW5yZWxhdGVkIG5hbWUgInRhcmdldC5jb20iIChxdWVyeSBuYW1lIGNvbmZ1c2lv biAvCisrICAjIGFsbG93bGlzdCBieXBhc3MpLgorKyAgZGVmIHRlc3RfZW5jb2Rlcl9yZWplY3Rz X2xhYmVsX2xlbmd0aF93cmFwCisrICAgIHBvY19sYWJlbCA9ICJ0YXJnZXQiLmIgKyAiXHgwM2Nv bVx4MDAiLmIgKyAoImEiLmIgKiAyNTEpCisrICAgIGFzc2VydF9lcXVhbCgyNjIsIHBvY19sYWJl bC5ieXRlc2l6ZSkKKysgICAgYXNzZXJ0X2VxdWFsKDYsIHBvY19sYWJlbC5ieXRlc2l6ZSAmIDB4 ZmYsICJwcmVjb25kaXRpb246IHRoZSBsZW5ndGggb2N0ZXQgd3JhcHMgdG8gNiIpCisrCisrICAg ICMgVGhlIGJ5dGVzIHRoZSBidWdneSBlbmNvZGVyIHdvdWxkIGhhdmUgZW1pdHRlZCByZWFsbHkg ZG8gZGVjb2RlIHRvIGEKKysgICAgIyBkaWZmZXJlbnQgbmFtZS4gVGhpcyBpcyB0aGUgdnVsbmVy YWJpbGl0eSBiZWluZyBmaXhlZC4KKysgICAgd3JhcHBlZCA9IFtwb2NfbGFiZWwuYnl0ZXNpemUg JiAweGZmXS5wYWNrKCJDIikgKyBwb2NfbGFiZWwKKysgICAgUmVzb2x2OjpETlM6Ok1lc3NhZ2U6 Ok1lc3NhZ2VEZWNvZGVyLm5ldyh3cmFwcGVkKSB7fG1zZ3wKKysgICAgICBhc3NlcnRfZXF1YWwo InRhcmdldC5jb20iLCBtc2cuZ2V0X2xhYmVscy5tYXAoJjp0b19zKS5qb2luKCIuIikpCisrICAg IH0KKysKKysgICAgIyBUaGUgZml4ZWQgZW5jb2RlciByZWZ1c2VzIHRvIGVtaXQgaXQgaW5zdGVh ZCBvZiBzaWxlbnRseSB3cmFwcGluZywgc28gaXQKKysgICAgIyBjYW4gbm8gbG9uZ2VyIHByb2R1 Y2UgInRhcmdldC5jb20iIGZyb20gdGhpcyBpbnB1dC4KKysgICAgUmVzb2x2OjpETlM6Ok1lc3Nh Z2U6Ok1lc3NhZ2VFbmNvZGVyLm5ldyB7fG1zZ3wKKysgICAgICBhc3NlcnRfcmFpc2Vfd2l0aF9t ZXNzYWdlKEFyZ3VtZW50RXJyb3IsIC9ETlMgbGFiZWwgaXMgdG9vIGxvbmcvKSBkbworKyAgICAg ICAgbXNnLnB1dF9sYWJlbChwb2NfbGFiZWwpCisrICAgICAgZW5kCisrICAgIH0KKysgICAgYXNz ZXJ0X3JhaXNlX3dpdGhfbWVzc2FnZShSZXNvbHY6OlJlc29sdkVycm9yLCAvRE5TIGxhYmVsIGlz IHRvbyBsb25nLykgZG8KKysgICAgICBSZXNvbHY6OkROUzo6TmFtZS5jcmVhdGUocG9jX2xhYmVs KQorKyAgICBlbmQKKysgIGVuZAorKworKyAgIyBBIGNoYXJhY3Rlci1zdHJpbmcgKGUuZy4gVFhU IHJkYXRhKSBpcyBwcmVmaXhlZCBieSBhIHNpbmdsZSBsZW5ndGggb2N0ZXQgYW5kCisrICAjIG1h eSBsZWdpdGltYXRlbHkgYmUgdXAgdG8gMjU1IG9jdGV0cywgc28gdGhlIDYzIG9jdGV0IGxhYmVs IGxpbWl0IG11c3Qgbm90CisrICAjIGxlYWsgaW50byBwdXRfc3RyaW5nLiBbUkZDIDEwMzUgMy4z XQorKyAgZGVmIHRlc3RfcHV0X3N0cmluZ19hbGxvd3NfY2hhcmFjdGVyX3N0cmluZ191cF90b18y NTUKKysgICAgWzY0LCAyMDAsIDI1NV0uZWFjaCBkbyB8bnwKKysgICAgICBzID0gImEiICogbgor KyAgICAgIG0gPSBSZXNvbHY6OkROUzo6TWVzc2FnZTo6TWVzc2FnZUVuY29kZXIubmV3IHt8bXNn fCBtc2cucHV0X3N0cmluZyhzKSB9CisrICAgICAgZW5jb2RlZCA9IG0udG9fcworKyAgICAgIGFz c2VydF9lcXVhbChuLCBlbmNvZGVkLmdldGJ5dGUoMCksICJsZW5ndGggb2N0ZXQgZm9yICN7bn0g Ynl0ZSBzdHJpbmciKQorKyAgICAgIGFzc2VydF9lcXVhbChuICsgMSwgZW5jb2RlZC5ieXRlc2l6 ZSkKKysgICAgICBSZXNvbHY6OkROUzo6TWVzc2FnZTo6TWVzc2FnZURlY29kZXIubmV3KGVuY29k ZWQpIHt8bXNnfAorKyAgICAgICAgYXNzZXJ0X2VxdWFsKHMsIG1zZy5nZXRfc3RyaW5nKQorKyAg ICAgIH0KKysgICAgZW5kCisrICBlbmQKKysKKysgIGRlZiB0ZXN0X3R4dF9yZWNvcmRfcm91bmR0 cmlwX3dpdGhfbG9uZ19jaGFyYWN0ZXJfc3RyaW5ncworKyAgICB0eHQgPSBSZXNvbHY6OkROUzo6 UmVzb3VyY2U6OklOOjpUWFQubmV3KCJhIiAqIDI1NSwgImIiICogNjQpCisrICAgIG0gPSBSZXNv bHY6OkROUzo6TWVzc2FnZS5uZXcoMCkKKysgICAgbS5hZGRfYW5zd2VyKCJleGFtcGxlLmNvbS4i LCAzNjAwLCB0eHQpCisrICAgIGRlY29kZWQgPSBSZXNvbHY6OkROUzo6TWVzc2FnZS5kZWNvZGUo bS5lbmNvZGUpCisrICAgIF8sIF8sIHJlcyA9IGRlY29kZWQuYW5zd2VyLmZpcnN0CisrICAgIGFz c2VydF9lcXVhbChbImEiICogMjU1LCAiYiIgKiA2NF0sIHJlcy5zdHJpbmdzKQorKyAgZW5kCisr CisrICAjIHB1dF9zdHJpbmcgc3RpbGwgZ3VhcmRzIGFnYWluc3QgdGhlIGxlbmd0aCBvY3RldCB3 cmFwcGluZyBwYXN0IDI1NSBvY3RldHMuCisrICBkZWYgdGVzdF9wdXRfc3RyaW5nX3JlamVjdHNf b3Zlcl8yNTVfb2N0ZXRzCisrICAgIGFzc2VydF9yYWlzZV93aXRoX21lc3NhZ2UoQXJndW1lbnRF cnJvciwgL2NoYXJhY3Rlci1zdHJpbmcgaXMgdG9vIGxvbmcvKSBkbworKyAgICAgIFJlc29sdjo6 RE5TOjpNZXNzYWdlOjpNZXNzYWdlRW5jb2Rlci5uZXcge3xtc2d8IG1zZy5wdXRfc3RyaW5nKCJh IiAqIDI1NikgfQorKyAgICBlbmQKKysgIGVuZAorKworICAgZGVmIGFzc2VydF9ub19mZF9sZWFr CisgICAgIHNvY2tldCA9IGFzc2VydF90aHJvdyhzZWxmKSBkbyB8dGFnfAorICAgICAgIFJlc29s djo6RE5TLnN0dWIoOmJpbmRfcmFuZG9tX3BvcnQsIC0+KHMsICopIHt0aHJvdyh0YWcsIHMpfSkg ZG8KK2RpZmYgLS1naXQgYS90ZXN0L3Jlc29sdi90ZXN0X3Jlc291cmNlLnJiIGIvdGVzdC9yZXNv bHYvdGVzdF9yZXNvdXJjZS5yYgoraW5kZXggNDM0MzgwMjM2ZTY3MjEuLmI0ZTU2Y2U0YmI4ZmY1 IDEwMDY0NAorLS0tIGEvdGVzdC9yZXNvbHYvdGVzdF9yZXNvdXJjZS5yYgorKysrIGIvdGVzdC9y ZXNvbHYvdGVzdF9yZXNvdXJjZS5yYgorQEAgLTI0LDYgKzI0LDY3IEBAIGRlZiB0ZXN0X2Nvb3Jk CisgICAgIFJlc29sdjo6TE9DOjpDb29yZC5jcmVhdGUoJzEgMiAxLjEgTicpCisgICBlbmQKKyAK KysgICMgRGVjb2RpbmcgYW4gdW5rbm93biAodHlwZSwgY2xhc3MpIHBhaXIgYnVpbGRzIGEgZnJl c2ggY2xhc3MgZXZlcnkgdGltZSwgc28KKysgICMgZXF1YWxpdHkgbXVzdCBub3QgcmVzdCBvbiB0 aGUgY2xhc3MgaWRlbnRpdHkuCisrICBkZWYgdGVzdF9nZW5lcmljX2VxdWFsaXR5CisrICAgIHdp cmUgPSBnZW5lcmljX2Fuc3dlcig0MDAwMCwgIlx4MDFceDAyXHgwMyIpCisrICAgIHJyMSA9IGRl Y29kZV9nZW5lcmljKHdpcmUpCisrICAgIHJyMiA9IGRlY29kZV9nZW5lcmljKHdpcmUpCisrCisr ICAgIGFzc2VydF9ub3Rfc2FtZSBycjEuY2xhc3MsIHJyMi5jbGFzcworKyAgICBhc3NlcnRfZXF1 YWwgcnIxLCBycjIKKysgICAgYXNzZXJ0IHJyMS5lcWw/KHJyMikKKysgICAgYXNzZXJ0X2VxdWFs IHJyMS5oYXNoLCBycjIuaGFzaAorKyAgICBhc3NlcnRfZXF1YWwgUmVzb2x2OjpETlM6Ok1lc3Nh Z2UuZGVjb2RlKHdpcmUpLCBSZXNvbHY6OkROUzo6TWVzc2FnZS5kZWNvZGUod2lyZSkKKysgIGVu ZAorKworKyAgIyBBbnkgZGVzY2VuZGFudCBjb3VudHMsIG5vdCBqdXN0IGEgY2xhc3MgY3JlYXRl IHJldHVybmVkLgorKyAgZGVmIHRlc3RfZ2VuZXJpY19lcXVhbGl0eV9iZXR3ZWVuX2Rlc2NlbmRh bnRzCisrICAgIGdlbmVyaWMgPSBSZXNvbHY6OkROUzo6UmVzb3VyY2U6OkdlbmVyaWMKKysgICAg ZGlyZWN0ID0gZ2VuZXJpYy5jcmVhdGUoNDAwMDAsIDYwMDAwKQorKyAgICBkZXNjZW5kYW50ID0g Q2xhc3MubmV3KGdlbmVyaWMuY3JlYXRlKDQwMDAwLCA2MDAwMCkpCisrCisrICAgIGFzc2VydF9l cXVhbCBkaXJlY3QubmV3KCJceDAxXHgwMlx4MDMiKSwgZGVzY2VuZGFudC5uZXcoIlx4MDFceDAy XHgwMyIpCisrICAgIGFzc2VydF9lcXVhbCBkZXNjZW5kYW50Lm5ldygiXHgwMVx4MDJceDAzIiks IGRpcmVjdC5uZXcoIlx4MDFceDAyXHgwMyIpCisrICAgIGFzc2VydF9lcXVhbCBnZW5lcmljLm5l dygiXHgwMVx4MDJceDAzIiksIGdlbmVyaWMubmV3KCJceDAxXHgwMlx4MDMiKQorKyAgICBhc3Nl cnRfbm90X2VxdWFsIGRpcmVjdC5uZXcoIlx4MDFceDAyXHgwMyIpLAorKyAgICAgIENsYXNzLm5l dyhnZW5lcmljLmNyZWF0ZSg0MDAwMSwgNjAwMDApKS5uZXcoIlx4MDFceDAyXHgwMyIpCisrICBl bmQKKysKKysgIGRlZiB0ZXN0X2dlbmVyaWNfaW5lcXVhbGl0eQorKyAgICByciA9IGRlY29kZV9n ZW5lcmljKGdlbmVyaWNfYW5zd2VyKDQwMDAwLCAiXHgwMVx4MDJceDAzIikpCisrCisrICAgIGFz c2VydF9ub3RfZXF1YWwgcnIsIGRlY29kZV9nZW5lcmljKGdlbmVyaWNfYW5zd2VyKDQwMDAxLCAi XHgwMVx4MDJceDAzIikpCisrICAgIGFzc2VydF9ub3RfZXF1YWwgcnIsIGRlY29kZV9nZW5lcmlj KGdlbmVyaWNfYW5zd2VyKDQwMDAwLCAiXHgwOVx4MDlceDA5IikpCisrICAgIGFzc2VydF9ub3Rf ZXF1YWwgcnIsIFJlc29sdjo6RE5TOjpSZXNvdXJjZTo6SU46OkEubmV3KCIxOTIuMTY4LjAuMSIp CisrICBlbmQKKysKKysgICMgQSBxdWVzdGlvbiBob2xkcyB0aGUgcmVzb3VyY2UgY2xhc3MgaXRz ZWxmLCBzbyBpdCBuZWVkcyB0aGUgc2FtZSB0cmVhdG1lbnQuCisrICBkZWYgdGVzdF9nZW5lcmlj X3F1ZXN0aW9uX2VxdWFsaXR5CisrICAgIHdpcmUgPSBnZW5lcmljX3F1ZXN0aW9uKDQwMDAwKQor KworKyAgICBhc3NlcnRfZXF1YWwgUmVzb2x2OjpETlM6Ok1lc3NhZ2UuZGVjb2RlKHdpcmUpLCBS ZXNvbHY6OkROUzo6TWVzc2FnZS5kZWNvZGUod2lyZSkKKysgICAgYXNzZXJ0X25vdF9lcXVhbCBS ZXNvbHY6OkROUzo6TWVzc2FnZS5kZWNvZGUod2lyZSksCisrICAgICAgUmVzb2x2OjpETlM6Ok1l c3NhZ2UuZGVjb2RlKGdlbmVyaWNfcXVlc3Rpb24oNDAwMDEpKQorKyAgZW5kCisrCisrICBwcml2 YXRlIGRlZiBoZWFkZXIocWRjb3VudCwgYW5jb3VudCkKKysgICAgIlx4MDBceDAwXHgwMFx4MDAi LmIgKyBbcWRjb3VudCwgYW5jb3VudCwgMCwgMF0ucGFjaygnbm5ubicpCisrICBlbmQKKysKKysg IHByaXZhdGUgZGVmIGdlbmVyaWNfYW5zd2VyKHR5cGUsIHJkYXRhKQorKyAgICByZGF0YSA9IHJk YXRhLmIKKysgICAgKGhlYWRlcigwLCAxKSArICJceDAwIi5iICsgW3R5cGUsIDYwMDAwLCAwLCBy ZGF0YS5ieXRlc2l6ZV0ucGFjaygnbm5ObicpICsgcmRhdGEpLmIKKysgIGVuZAorKworKyAgcHJp dmF0ZSBkZWYgZ2VuZXJpY19xdWVzdGlvbih0eXBlKQorKyAgICAoaGVhZGVyKDEsIDApICsgIlx4 MDdleGFtcGxlXHgwM2NvbVx4MDAiLmIgKyBbdHlwZSwgNjAwMDBdLnBhY2soJ25uJykpLmIKKysg IGVuZAorKworKyAgcHJpdmF0ZSBkZWYgZGVjb2RlX2dlbmVyaWMod2lyZSkKKysgICAgUmVzb2x2 OjpETlM6Ok1lc3NhZ2UuZGVjb2RlKHdpcmUpLmFuc3dlci5maXJzdFsyXQorKyAgZW5kCisrCisg ICBkZWYgdGVzdF9zcnZfbm9fY29tcHJlc3MKKyAgICAgIyBEb21haW4gbmFtZSBpbiBTUlYgUkRB VEEgc2hvdWxkIG5vdCBiZSBjb21wcmVzc2VkCisgICAgIGlzc3VlMjkgPSAnaHR0cHM6Ly9naXRo dWIuY29tL3J1YnkvcmVzb2x2L2lzc3Vlcy8yOScKK2RpZmYgLS1naXQgYS90ZXN0L3Jlc29sdi90 ZXN0X3Jlc291cmNlX2xlYWsucmIgYi90ZXN0L3Jlc29sdi90ZXN0X3Jlc291cmNlX2xlYWsucmIK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAwMC4uNDYyOGEzZDI4NTc2 NzcKKy0tLSAvZGV2L251bGwKKysrKyBiL3Rlc3QvcmVzb2x2L3Rlc3RfcmVzb3VyY2VfbGVhay5y YgorQEAgLTAsMCArMSwxMDEgQEAKKysjIGZyb3plbl9zdHJpbmdfbGl0ZXJhbDogZmFsc2UKKyty ZXF1aXJlICd0ZXN0L3VuaXQnCisrcmVxdWlyZSAncmVzb2x2JworKworKyMgRGVjb2RpbmcgYSBy ZXNwb25zZSB3aXRoIHVua25vd24gKHR5cGUsIGNsYXNzKSBwYWlycyBvciB1bmtub3duIFN2Y1Bh cmFtS2V5cworKyMgdXNlZCB0byByZWdpc3RlciBhIGdlbmVyYXRlZCBjbGFzcyBwZXJtYW5lbnRs eSwgc28gYSBtYWxpY2lvdXMgcmVzcG9uc2UgY291bGQKKysjIGV4aGF1c3QgbWVtb3J5IGV2ZW4g YWZ0ZXIgdGhlIHJlc3BvbnNlIHdhcyBkaXNjYXJkZWQuCisrY2xhc3MgVGVzdFJlc29sdlJlc291 cmNlTGVhayA8IFRlc3Q6OlVuaXQ6OlRlc3RDYXNlCisrICAjIE51bWJlciBvZiBkeW5hbWljYWxs eS1yZWdpc3RlcmVkICJUeXBlPG4+X0NsYXNzPG4+IiBjb25zdGFudHMgb24gK21vZCsuCisrICBk ZWYgdHlwZV9jb25zdF9jb3VudChtb2QpCisrICAgIG1vZC5jb25zdGFudHMoZmFsc2UpLmNvdW50 IHsgfGN8IGMudG9fcy5tYXRjaD8oL1xBVHlwZVxkK19DbGFzc1xkK1x6LykgfQorKyAgZW5kCisr CisrICBkZWYgc3ZjcGFyYW1fa2V5X2NvbnN0X2NvdW50CisrICAgIFJlc29sdjo6RE5TOjpTdmNQ YXJhbTo6R2VuZXJpYy5jb25zdGFudHMoZmFsc2UpLmNvdW50IHsgfGN8IGMudG9fcy5tYXRjaD8o L1xBS2V5XGQrXHovKSB9CisrICBlbmQKKysKKysgICMgQSBETlMgcmVzcG9uc2Ugd2hvc2UgYW5z d2VyIHNlY3Rpb24gaG9sZHMgK2NvdW50KyBSUnMsIGVhY2ggd2l0aCBhIGRpc3RpbmN0CisrICAj IHVua25vd24gKHR5cGUsIGNsYXNzKSBwYWlyLgorKyAgZGVmIHVua25vd25fdHlwZWNsYXNzX3Jl c3BvbnNlKGNvdW50KQorKyAgICBib2R5ID0gIiIuYgorKyAgICBjb3VudC50aW1lcyBkbyB8aXwK KysgICAgICB0eXBlICA9IDQwMDAwICsgaQorKyAgICAgIGtsYXNzID0gNjAwMDAKKysgICAgICBy ZGF0YSA9ICJceDAxXHgwMlx4MDMiLmIKKysgICAgICBib2R5IDw8ICJceDAwIi5iICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBOQU1FID0gcm9vdAorKyAgICAgIGJvZHkgPDwg W3R5cGUsIGtsYXNzLCAwLCByZGF0YS5ieXRlc2l6ZV0ucGFjaygnbm5ObicpCisrICAgICAgYm9k eSA8PCByZGF0YQorKyAgICBlbmQKKysgICAgaGVhZGVyID0gIlx4MDBceDAwXHgwMFx4MDAiLmIg KyBbMCwgY291bnQsIDAsIDBdLnBhY2soJ25ubm4nKQorKyAgICAoaGVhZGVyICsgYm9keSkuYgor KyAgZW5kCisrCisrICAjIEFuIFNWQ0IgUlIgKHR5cGUgNjQpIGNhcnJ5aW5nICtjb3VudCsgZGlz dGluY3QgdW5rbm93biBTdmNQYXJhbUtleXMuCisrICBkZWYgdW5rbm93bl9zdmNwYXJhbV9yZXNw b25zZShjb3VudCkKKysgICAgcmRhdGEgPSAiIi5iCisrICAgIHJkYXRhIDw8IFsxXS5wYWNrKCdu JykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgU3ZjUHJpb3JpdHkKKysgICAgcmRh dGEgPDwgIlx4MDNmb29ceDA3ZXhhbXBsZVx4MDNjb21ceDAwIi5iICAgICAgICAgICAgIyBUYXJn ZXROYW1lCisrICAgIGNvdW50LnRpbWVzIGRvIHxpfAorKyAgICAgIGtleSA9IDEwMDAgKyBpCisr ICAgICAgdmFsID0gIngiLmIKKysgICAgICByZGF0YSA8PCBba2V5LCB2YWwuYnl0ZXNpemVdLnBh Y2soJ25uJykgPDwgdmFsCisrICAgIGVuZAorKyAgICBoZWFkZXIgPSAiXHgwMFx4MDBceDAwXHgw MCIuYiArIFswLCAxLCAwLCAwXS5wYWNrKCdubm5uJykKKysgICAgbmFtZSAgID0gIlx4MDdleGFt cGxlXHgwM2NvbVx4MDAiLmIKKysgICAgcnIgICAgID0gbmFtZSArIFs2NCwgMSwgMCwgcmRhdGEu Ynl0ZXNpemVdLnBhY2soJ25uTm4nKSArIHJkYXRhCisrICAgIChoZWFkZXIgKyBycikuYgorKyAg ZW5kCisrCisrICBkZWYgdGVzdF91bmtub3duX3R5cGVjbGFzc19kb2VzX25vdF9sZWFrX2NsYXNz ZXMKKysgICAgcmVzb3VyY2UgPSBSZXNvbHY6OkROUzo6UmVzb3VyY2UKKysgICAgZ2VuZXJpYyAg PSBSZXNvbHY6OkROUzo6UmVzb3VyY2U6OkdlbmVyaWMKKysKKysgICAgYmVmb3JlX3Jlc291cmNl ID0gdHlwZV9jb25zdF9jb3VudChyZXNvdXJjZSkKKysgICAgYmVmb3JlX2dlbmVyaWMgID0gdHlw ZV9jb25zdF9jb3VudChnZW5lcmljKQorKworKyAgICBbMTAwLCAxMDAwXS5lYWNoIGRvIHxjb3Vu dHwKKysgICAgICBtc2cgPSB1bmtub3duX3R5cGVjbGFzc19yZXNwb25zZShjb3VudCkKKysgICAg ICAzLnRpbWVzIHsgUmVzb2x2OjpETlM6Ok1lc3NhZ2UuZGVjb2RlKG1zZykgfQorKyAgICBlbmQK KysgICAgR0Muc3RhcnQKKysKKysgICAgYXNzZXJ0X2VxdWFsIGJlZm9yZV9yZXNvdXJjZSwgdHlw ZV9jb25zdF9jb3VudChyZXNvdXJjZSksCisrICAgICAgJ2RlY29kaW5nIHVua25vd24gKHR5cGUs IGNsYXNzKSBSUnMgbXVzdCBub3QgcmVnaXN0ZXIgbmV3IFJlc291cmNlIGNvbnN0YW50cycKKysg ICAgYXNzZXJ0X2VxdWFsIGJlZm9yZV9nZW5lcmljLCB0eXBlX2NvbnN0X2NvdW50KGdlbmVyaWMp LAorKyAgICAgICdkZWNvZGluZyB1bmtub3duICh0eXBlLCBjbGFzcykgUlJzIG11c3Qgbm90IHJl Z2lzdGVyIG5ldyBHZW5lcmljIGNvbnN0YW50cycKKysgIGVuZAorKworKyAgZGVmIHRlc3RfdW5r bm93bl9zdmNwYXJhbV9rZXlfZG9lc19ub3RfbGVha19jbGFzc2VzCisrICAgIGNsYXNzX2hhc2gg PSBSZXNvbHY6OkROUzo6U3ZjUGFyYW06OkNsYXNzSGFzaAorKworKyAgICBiZWZvcmVfY29uc3Rz ID0gc3ZjcGFyYW1fa2V5X2NvbnN0X2NvdW50CisrICAgIGJlZm9yZV9oYXNoICAgPSBjbGFzc19o YXNoLnNpemUKKysKKysgICAgWzEwMCwgMTAwMF0uZWFjaCBkbyB8Y291bnR8CisrICAgICAgbXNn ID0gdW5rbm93bl9zdmNwYXJhbV9yZXNwb25zZShjb3VudCkKKysgICAgICAzLnRpbWVzIHsgUmVz b2x2OjpETlM6Ok1lc3NhZ2UuZGVjb2RlKG1zZykgfQorKyAgICBlbmQKKysgICAgR0Muc3RhcnQK KysKKysgICAgYXNzZXJ0X2VxdWFsIGJlZm9yZV9jb25zdHMsIHN2Y3BhcmFtX2tleV9jb25zdF9j b3VudCwKKysgICAgICAnZGVjb2RpbmcgdW5rbm93biBTdmNQYXJhbUtleXMgbXVzdCBub3QgcmVn aXN0ZXIgbmV3IEdlbmVyaWMgY29uc3RhbnRzJworKyAgICBhc3NlcnRfZXF1YWwgYmVmb3JlX2hh c2gsIGNsYXNzX2hhc2guc2l6ZSwKKysgICAgICAnZGVjb2RpbmcgdW5rbm93biBTdmNQYXJhbUtl eXMgbXVzdCBub3QgZ3JvdyBTdmNQYXJhbTo6Q2xhc3NIYXNoJworKyAgZW5kCisrCisrICAjIERy b3BwaW5nIHRoZSBwZXJtYW5lbnQgcmVnaXN0cmF0aW9uIG11c3Qgbm90IGJyZWFrIGRlY29kaW5n IG9mIHRoZSB1bmtub3duCisrICAjIHZhbHVlcyB0aGVtc2VsdmVzLgorKyAgZGVmIHRlc3RfdW5r bm93bl92YWx1ZXNfc3RpbGxfZGVjb2RlCisrICAgIG1zZyA9IFJlc29sdjo6RE5TOjpNZXNzYWdl LmRlY29kZSh1bmtub3duX3R5cGVjbGFzc19yZXNwb25zZSgzKSkKKysgICAgYXNzZXJ0X2VxdWFs IDMsIG1zZy5hbnN3ZXIuc2l6ZQorKyAgICBfLCBfLCByciA9IG1zZy5hbnN3ZXIuZmlyc3QKKysg ICAgYXNzZXJ0X2tpbmRfb2YgUmVzb2x2OjpETlM6OlJlc291cmNlOjpHZW5lcmljLCBycgorKyAg ICBhc3NlcnRfZXF1YWwgIlx4MDFceDAyXHgwMyIuYiwgcnIuZGF0YQorKworKyAgICBtc2cgPSBS ZXNvbHY6OkROUzo6TWVzc2FnZS5kZWNvZGUodW5rbm93bl9zdmNwYXJhbV9yZXNwb25zZSgzKSkK KysgICAgXywgXywgc3ZjYiA9IG1zZy5hbnN3ZXIuZmlyc3QKKysgICAgYXNzZXJ0X2VxdWFsIDMs IHN2Y2IucGFyYW1zLmNvdW50CisrICAgIGFzc2VydF9lcXVhbCAieCIuYiwgc3ZjYi5wYXJhbXNb OmtleTEwMDBdLnZhbHVlCisrICBlbmQKKytlbmQKKy0tLSBydWJ5LTMuNC4xMC5vcmlnL2xpYi9y dWJ5Z2Vtcy92ZW5kb3IvcmVzb2x2L2xpYi9yZXNvbHYucmIJMjAyNi0wNi0zMCAxOTo1NDozNS4w MDAwMDAwMDAgKzA5MDAKKysrKyBydWJ5LTMuNC4xMC9saWIvcnVieWdlbXMvdmVuZG9yL3Jlc29s di9saWIvcmVzb2x2LnJiCTIwMjYtMDktMTAgMTc6MDk6MTcuNzEwOTU3NzIwICswOTAwCitAQCAt NCw2ICs0LDcgQEAgcmVxdWlyZSAnc29ja2V0JworIHJlcXVpcmVfcmVsYXRpdmUgJy4uLy4uL3Rp bWVvdXQvbGliL3RpbWVvdXQnCisgcmVxdWlyZSAnaW8vd2FpdCcKKyByZXF1aXJlX3JlbGF0aXZl ICcuLi8uLi8uLi92ZW5kb3JlZF9zZWN1cmVyYW5kb20nCisrcmVxdWlyZSAncmJjb25maWcnCisg CisgIyBHZW06OlJlc29sdiBpcyBhIHRocmVhZC1hd2FyZSBETlMgcmVzb2x2ZXIgbGlicmFyeSB3 cml0dGVuIGluIFJ1YnkuICBHZW06OlJlc29sdiBjYW4KKyAjIGhhbmRsZSBtdWx0aXBsZSBETlMg cmVxdWVzdHMgY29uY3VycmVudGx5IHdpdGhvdXQgYmxvY2tpbmcgdGhlIGVudGlyZSBSdWJ5CitA QCAtMzMsNyArMzQsOCBAQCByZXF1aXJlX3JlbGF0aXZlICcuLi8uLi8uLi92ZW5kb3JlZF9zZWN1 CisgCisgY2xhc3MgR2VtOjpSZXNvbHYKKyAKKy0gIFZFUlNJT04gPSAiMC42LjAiCisrICAjIFRo ZSB2ZXJzaW9uIHN0cmluZworKyAgVkVSU0lPTiA9ICIwLjcuMiIKKyAKKyAgICMjCisgICAjIExv b2tzIHVwIHRoZSBmaXJzdCBJUCBhZGRyZXNzIGZvciArbmFtZSsuCitAQCAtMTc3LDE0ICsxNzks MTUgQEAgY2xhc3MgR2VtOjpSZXNvbHYKKyAgICMgR2VtOjpSZXNvbHY6Okhvc3RzIGlzIGEgaG9z dG5hbWUgcmVzb2x2ZXIgdGhhdCB1c2VzIHRoZSBzeXN0ZW0gaG9zdHMgZmlsZS4KKyAKKyAgIGNs YXNzIEhvc3RzCistICAgIGlmIC9tc3dpbnxtaW5nd3xjeWd3aW4vID1+IFJVQllfUExBVEZPUk0g YW5kCisrICAgIGlmIC9tc3dpbnxjeWd3aW58bWluZ3d8YmNjd2luLyA9fiBSVUJZX1BMQVRGT1JN IHx8IDo6UmJDb25maWc6OkNPTkZJR1snaG9zdF9vcyddID1+IC9tc3dpbi8KKyAgICAgICBiZWdp bgorLSAgICAgICAgcmVxdWlyZSAnd2luMzIvcmVzb2x2JworLSAgICAgICAgRGVmYXVsdEZpbGVO YW1lID0gV2luMzI6OlJlc29sdi5nZXRfaG9zdHNfcGF0aCB8fCBJTzo6TlVMTAorKyAgICAgICAg cmVxdWlyZSAnd2luMzIvcmVzb2x2JyB1bmxlc3MgZGVmaW5lZD8oV2luMzI6OlJlc29sdikKKysg ICAgICAgIGhvc3RzID0gV2luMzI6OlJlc29sdi5nZXRfaG9zdHNfcGF0aCB8fCBJTzo6TlVMTAor ICAgICAgIHJlc2N1ZSBMb2FkRXJyb3IKKyAgICAgICBlbmQKKyAgICAgZW5kCistICAgIERlZmF1 bHRGaWxlTmFtZSB8fD0gJy9ldGMvaG9zdHMnCisrICAgICMgVGhlIGRlZmF1bHQgZmlsZSBuYW1l IGZvciBob3N0IG5hbWVzCisrICAgIERlZmF1bHRGaWxlTmFtZSA9IGhvc3RzIHx8ICcvZXRjL2hv c3RzJworIAorICAgICAjIworICAgICAjIENyZWF0ZXMgYSBuZXcgR2VtOjpSZXNvbHY6Okhvc3Rz LCB1c2luZyArZmlsZW5hbWUrIGZvciBpdHMgZGF0YSBzb3VyY2UuCitAQCAtNDg0LDEzICs0ODcs MTggQEAgY2xhc3MgR2VtOjpSZXNvbHYKKyAgICAgIyAqIEdlbTo6UmVzb2x2OjpETlM6OlJlc291 cmNlOjpJTjo6QQorICAgICAjICogR2VtOjpSZXNvbHY6OkROUzo6UmVzb3VyY2U6OklOOjpBQUFB CisgICAgICMgKiBHZW06OlJlc29sdjo6RE5TOjpSZXNvdXJjZTo6SU46OkFOWQorKyAgICAjICog R2VtOjpSZXNvbHY6OkROUzo6UmVzb3VyY2U6OklOOjpDQUEKKyAgICAgIyAqIEdlbTo6UmVzb2x2 OjpETlM6OlJlc291cmNlOjpJTjo6Q05BTUUKKyAgICAgIyAqIEdlbTo6UmVzb2x2OjpETlM6OlJl c291cmNlOjpJTjo6SElORk8KKysgICAgIyAqIEdlbTo6UmVzb2x2OjpETlM6OlJlc291cmNlOjpJ Tjo6SFRUUFMKKysgICAgIyAqIEdlbTo6UmVzb2x2OjpETlM6OlJlc291cmNlOjpJTjo6TE9DCisg ICAgICMgKiBHZW06OlJlc29sdjo6RE5TOjpSZXNvdXJjZTo6SU46Ok1JTkZPCisgICAgICMgKiBH ZW06OlJlc29sdjo6RE5TOjpSZXNvdXJjZTo6SU46Ok1YCisgICAgICMgKiBHZW06OlJlc29sdjo6 RE5TOjpSZXNvdXJjZTo6SU46Ok5TCisgICAgICMgKiBHZW06OlJlc29sdjo6RE5TOjpSZXNvdXJj ZTo6SU46OlBUUgorICAgICAjICogR2VtOjpSZXNvbHY6OkROUzo6UmVzb3VyY2U6OklOOjpTT0EK KysgICAgIyAqIEdlbTo6UmVzb2x2OjpETlM6OlJlc291cmNlOjpJTjo6U1JWCisrICAgICMgKiBH ZW06OlJlc29sdjo6RE5TOjpSZXNvdXJjZTo6SU46OlNWQ0IKKyAgICAgIyAqIEdlbTo6UmVzb2x2 OjpETlM6OlJlc291cmNlOjpJTjo6VFhUCisgICAgICMgKiBHZW06OlJlc29sdjo6RE5TOjpSZXNv dXJjZTo6SU46OldLUworICAgICAjCitAQCAtNTIyLDYgKzUzMCw4IEBAIGNsYXNzIEdlbTo6UmVz b2x2CisgICAgICAgfQorICAgICBlbmQKKyAKKysgICAgIyA6c3RvcGRvYzoKKysKKyAgICAgZGVm IGZldGNoX3Jlc291cmNlKG5hbWUsIHR5cGVjbGFzcykKKyAgICAgICBsYXp5X2luaXRpYWxpemUK KyAgICAgICB0cnVuY2F0ZWQgPSB7fQorQEAgLTY1OSw4ICs2NjksMjAgQEAgY2xhc3MgR2VtOjpS ZXNvbHYKKyAgICAgICB9CisgICAgIGVuZAorIAorLSAgICBkZWYgc2VsZi5iaW5kX3JhbmRvbV9w b3J0KHVkcHNvY2ssIGJpbmRfaG9zdD0iMC4wLjAuMCIpICMgOm5vZG9jOgorLSAgICAgIGJlZ2lu CisrICAgIGNhc2UgUlVCWV9QTEFURk9STQorKyAgICB3aGVuICpbCisrICAgICAgIyBodHRwczov L3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNjA1Ni50eHQKKysgICAgICAjIEFwcGVuZGl4IEEu IFN1cnZleSBvZiB0aGUgQWxnb3JpdGhtcyBpbiBVc2UgYnkgU29tZSBQb3B1bGFyIEltcGxlbWVu dGF0aW9ucworKyAgICAgIC9mcmVlYnNkLywgL2xpbnV4LywgL25ldGJzZC8sIC9vcGVuYnNkLywg L3NvbGFyaXMvLAorKyAgICAgIC9kYXJ3aW4vLCAjIHRoZSBzYW1lIGFzIEZyZWVCU0QKKysgICAg XSB0aGVuCisrICAgICAgZGVmIHNlbGYuYmluZF9yYW5kb21fcG9ydCh1ZHBzb2NrLCBiaW5kX2hv c3Q9IjAuMC4wLjAiKSAjIDpub2RvYzoKKysgICAgICAgIHVkcHNvY2suYmluZChiaW5kX2hvc3Qs IDApCisrICAgICAgZW5kCisrICAgIGVsc2UKKysgICAgICAjIFNlcXVlbnRpYWwgcG9ydCBhc3Np Z25tZW50CisrICAgICAgZGVmIHNlbGYuYmluZF9yYW5kb21fcG9ydCh1ZHBzb2NrLCBiaW5kX2hv c3Q9IjAuMC4wLjAiKSAjIDpub2RvYzoKKysgICAgICAgICMgRXBoZW1lcmFsIHBvcnQgbnVtYmVy IHJhbmdlIHJlY29tbWVuZGVkIGJ5IFJGQyA2MDU2CisgICAgICAgICBwb3J0ID0gcmFuZG9tKDEw MjQuLjY1NTM1KQorICAgICAgICAgdWRwc29jay5iaW5kKGJpbmRfaG9zdCwgcG9ydCkKKyAgICAg ICByZXNjdWUgRXJybm86OkVBRERSSU5VU0UsICMgUE9TSVgKK0BAIC03MDQsNyArNzI2LDggQEAg Y2xhc3MgR2VtOjpSZXNvbHYKKyAgICAgICAgICAgYmVnaW4KKyAgICAgICAgICAgICByZXBseSwg ZnJvbSA9IHJlY3ZfcmVwbHkoc2VsZWN0X3Jlc3VsdFswXSkKKyAgICAgICAgICAgcmVzY3VlIEVy cm5vOjpFQ09OTlJFRlVTRUQsICMgR05VL0xpbnV4LCBGcmVlQlNECistICAgICAgICAgICAgICAg ICBFcnJubzo6RUNPTk5SRVNFVCAjIFdpbmRvd3MKKysgICAgICAgICAgICAgICAgIEVycm5vOjpF Q09OTlJFU0VULCAjIFdpbmRvd3MKKysgICAgICAgICAgICAgICAgIEVPRkVycm9yCisgICAgICAg ICAgICAgIyBObyBuYW1lIHNlcnZlciBydW5uaW5nIG9uIHRoZSBzZXJ2ZXI/CisgICAgICAgICAg ICAgIyBEb24ndCB3YWl0IGFueW1vcmUuCisgICAgICAgICAgICAgcmFpc2UgUmVzb2x2VGltZW91 dAorQEAgLTkxMyw4ICs5MzYsMTEgQEAgY2xhc3MgR2VtOjpSZXNvbHYKKyAgICAgICAgIGVuZAor IAorICAgICAgICAgZGVmIHJlY3ZfcmVwbHkocmVhZGFibGVfc29ja3MpCistICAgICAgICAgIGxl biA9IHJlYWRhYmxlX3NvY2tzWzBdLnJlYWQoMikudW5wYWNrKCduJylbMF0KKysgICAgICAgICAg bGVuX2RhdGEgPSByZWFkYWJsZV9zb2Nrc1swXS5yZWFkKDIpCisrICAgICAgICAgIHJhaXNlIEVP RkVycm9yIGlmIGxlbl9kYXRhLm5pbD8gfHwgbGVuX2RhdGEuYnl0ZXNpemUgIT0gMgorKyAgICAg ICAgICBsZW4gPSBsZW5fZGF0YS51bnBhY2soJ24nKVswXQorICAgICAgICAgICByZXBseSA9IEBz b2Nrc1swXS5yZWFkKGxlbikKKysgICAgICAgICAgcmFpc2UgRU9GRXJyb3IgaWYgcmVwbHkubmls PyB8fCByZXBseS5ieXRlc2l6ZSAhPSBsZW4KKyAgICAgICAgICAgcmV0dXJuIHJlcGx5LCBuaWwK KyAgICAgICAgIGVuZAorIAorQEAgLTk4MywxMyArMTAwOSwxMyBAQCBjbGFzcyBHZW06OlJlc29s dgorICAgICAgICAgICAgIG5leHQgdW5sZXNzIGtleXdvcmQKKyAgICAgICAgICAgICBjYXNlIGtl eXdvcmQKKyAgICAgICAgICAgICB3aGVuICduYW1lc2VydmVyJworLSAgICAgICAgICAgICAgbmFt ZXNlcnZlci5jb25jYXQoYXJncykKKysgICAgICAgICAgICAgIG5hbWVzZXJ2ZXIuY29uY2F0KGFy Z3MuZWFjaCgmOmZyZWV6ZSkpCisgICAgICAgICAgICAgd2hlbiAnZG9tYWluJworICAgICAgICAg ICAgICAgbmV4dCBpZiBhcmdzLmVtcHR5PworLSAgICAgICAgICAgICAgc2VhcmNoID0gW2FyZ3Nb MF1dCisrICAgICAgICAgICAgICBzZWFyY2ggPSBbYXJnc1swXS5mcmVlemVdCisgICAgICAgICAg ICAgd2hlbiAnc2VhcmNoJworICAgICAgICAgICAgICAgbmV4dCBpZiBhcmdzLmVtcHR5PworLSAg ICAgICAgICAgICAgc2VhcmNoID0gYXJncworKyAgICAgICAgICAgICAgc2VhcmNoID0gYXJncy5l YWNoKCY6ZnJlZXplKQorICAgICAgICAgICAgIHdoZW4gJ29wdGlvbnMnCisgICAgICAgICAgICAg ICBhcmdzLmVhY2gge3xhcmd8CisgICAgICAgICAgICAgICAgIGNhc2UgYXJnCitAQCAtMTAwMCwy MiArMTAyNiwyMSBAQCBjbGFzcyBHZW06OlJlc29sdgorICAgICAgICAgICAgIGVuZAorICAgICAg ICAgICB9CisgICAgICAgICB9CistICAgICAgICByZXR1cm4geyA6bmFtZXNlcnZlciA9PiBuYW1l c2VydmVyLCA6c2VhcmNoID0+IHNlYXJjaCwgOm5kb3RzID0+IG5kb3RzIH0KKysgICAgICAgIHJl dHVybiB7IDpuYW1lc2VydmVyID0+IG5hbWVzZXJ2ZXIuZnJlZXplLCA6c2VhcmNoID0+IHNlYXJj aC5mcmVlemUsIDpuZG90cyA9PiBuZG90cy5mcmVlemUgfS5mcmVlemUKKyAgICAgICBlbmQKKyAK KyAgICAgICBkZWYgQ29uZmlnLmRlZmF1bHRfY29uZmlnX2hhc2goZmlsZW5hbWU9Ii9ldGMvcmVz b2x2LmNvbmYiKQorICAgICAgICAgaWYgRmlsZS5leGlzdD8gZmlsZW5hbWUKKy0gICAgICAgICAg Y29uZmlnX2hhc2ggPSBDb25maWcucGFyc2VfcmVzb2x2X2NvbmYoZmlsZW5hbWUpCisrICAgICAg ICAgIENvbmZpZy5wYXJzZV9yZXNvbHZfY29uZihmaWxlbmFtZSkKKysgICAgICAgIGVsc2lmIGRl ZmluZWQ/KFdpbjMyOjpSZXNvbHYpCisrICAgICAgICAgIHNlYXJjaCwgbmFtZXNlcnZlciA9IFdp bjMyOjpSZXNvbHYuZ2V0X3Jlc29sdl9pbmZvCisrICAgICAgICAgIGNvbmZpZ19oYXNoID0ge30K KysgICAgICAgICAgY29uZmlnX2hhc2hbOm5hbWVzZXJ2ZXJdID0gbmFtZXNlcnZlciBpZiBuYW1l c2VydmVyCisrICAgICAgICAgIGNvbmZpZ19oYXNoWzpzZWFyY2hdID0gW3NlYXJjaF0uZmxhdHRl biBpZiBzZWFyY2gKKysgICAgICAgICAgY29uZmlnX2hhc2gKKyAgICAgICAgIGVsc2UKKy0gICAg ICAgICAgaWYgL21zd2lufGN5Z3dpbnxtaW5nd3xiY2N3aW4vID1+IFJVQllfUExBVEZPUk0KKy0g ICAgICAgICAgICByZXF1aXJlICd3aW4zMi9yZXNvbHYnCistICAgICAgICAgICAgc2VhcmNoLCBu YW1lc2VydmVyID0gV2luMzI6OlJlc29sdi5nZXRfcmVzb2x2X2luZm8KKy0gICAgICAgICAgICBj b25maWdfaGFzaCA9IHt9CistICAgICAgICAgICAgY29uZmlnX2hhc2hbOm5hbWVzZXJ2ZXJdID0g bmFtZXNlcnZlciBpZiBuYW1lc2VydmVyCistICAgICAgICAgICAgY29uZmlnX2hhc2hbOnNlYXJj aF0gPSBbc2VhcmNoXS5mbGF0dGVuIGlmIHNlYXJjaAorLSAgICAgICAgICBlbmQKKysgICAgICAg ICAge30KKyAgICAgICAgIGVuZAorLSAgICAgICAgY29uZmlnX2hhc2ggfHwge30KKyAgICAgICBl bmQKKyAKKyAgICAgICBkZWYgbGF6eV9pbml0aWFsaXplCitAQCAtMTIyOCw2ICsxMjUzLDEzIEBA IGNsYXNzIEdlbTo6UmVzb2x2CisgCisgICAgICAgY2xhc3MgU3RyICMgOm5vZG9jOgorICAgICAg ICAgZGVmIGluaXRpYWxpemUoc3RyaW5nKQorKyAgICAgICAgICAjIEEgbGFiZWwgaXMgbGltaXRl ZCB0byA2MyBvY3RldHMuIFtSRkMgMTAzNSAyLjMuNF0gQ2hlY2tpbmcgaXQgaGVyZQorKyAgICAg ICAgICAjIG1ha2VzIGl0IGFuIGludmFyaWFudCBvZiB0aGUgb2JqZWN0OiBldmVyeSBsYWJlbCwg aG93ZXZlciBpdCB3YXMKKysgICAgICAgICAgIyBidWlsdCwgZml0cyBpbiBpdHMgbGVuZ3RoIG9j dGV0IGFuZCBjYW5ub3Qgd3JhcCBpdC4gQ2FsbGVycyB0dXJuCisrICAgICAgICAgICMgdGhpcyBp bnRvIHRoZSBlcnJvciB0aGVpciBvd24gY29udHJhY3QgcHJvbWlzZXMuCisrICAgICAgICAgIGlm IHN0cmluZy5ieXRlc2l6ZSA+IDYzCisrICAgICAgICAgICAgcmFpc2UgQXJndW1lbnRFcnJvciwg IkROUyBsYWJlbCBpcyB0b28gbG9uZyAoI3tzdHJpbmcuYnl0ZXNpemV9IGJ5dGVzLCBtYXggNjMp OiAje3N0cmluZy5pbnNwZWN0fSIKKysgICAgICAgICAgZW5kCisgICAgICAgICAgIEBzdHJpbmcg PSBzdHJpbmcKKyAgICAgICAgICAgIyBjYXNlIGluc2Vuc2l2aXR5IG9mIEROUyBsYWJlbHMgZG9l c24ndCBhcHBseSBub24tQVNDSUkgY2hhcmFjdGVycy4gW1JGQyA0MzQzXQorICAgICAgICAgICAj IFRoaXMgYXNzdW1lcyBAc3RyaW5nIGlzIGdpdmVuIGluIEFTQ0lJIGNvbXBhdGlibGUgZW5jb2Rp bmcuCitAQCAtMTI3Myw3ICsxMzA1LDI2IEBAIGNsYXNzIEdlbTo6UmVzb2x2CisgICAgICAgICB3 aGVuIE5hbWUKKyAgICAgICAgICAgcmV0dXJuIGFyZworICAgICAgICAgd2hlbiBTdHJpbmcKKy0g ICAgICAgICAgcmV0dXJuIE5hbWUubmV3KExhYmVsLnNwbGl0KGFyZyksIC9cLlx6LyA9fiBhcmcg PyB0cnVlIDogZmFsc2UpCisrICAgICAgICAgICMgQSBob3N0bmFtZSBpcyBydW50aW1lIGRhdGEg cmF0aGVyIHRoYW4gYSBwcm9ncmFtbWluZyBtaXN0YWtlLCBzbworKyAgICAgICAgICAjIGJvdGgg c2l6ZSBsaW1pdHMgc3VyZmFjZSBhcyBSZXNvbHZFcnJvciB0byBzdGF5IHJlc2N1YWJsZSBhbG9u Z3NpZGUKKysgICAgICAgICAgIyB0aGUgcmVzdCBvZiBuYW1lIHJlc29sdXRpb24uIFRoZSB0eXBl IGNoZWNrIGJlbG93IGlzIGEgY2FsbGVyCisrICAgICAgICAgICMgbWlzdGFrZSBhbmQga2VlcHMg cmFpc2luZyBBcmd1bWVudEVycm9yLgorKyAgICAgICAgICBiZWdpbgorKyAgICAgICAgICAgIGxh YmVscyA9IExhYmVsLnNwbGl0KGFyZykKKysgICAgICAgICAgcmVzY3VlIEFyZ3VtZW50RXJyb3Ig PT4gZQorKyAgICAgICAgICAgIHJhaXNlIFJlc29sdkVycm9yLm5ldyhlLm1lc3NhZ2UpCisrICAg ICAgICAgIGVuZAorKyAgICAgICAgICAjIExhYmVsOjpTdHIgZW5mb3JjZXMgdGhlIHBlci1sYWJl bCBsaW1pdC4gT25seSB0aGUgdG90YWwgaXMga25vd2FibGUKKysgICAgICAgICAgIyBoZXJlLCBh bmQgaXQgY291bnRzIHRoZSBlbmNvZGVkIGZvcm0sIHNvIHNpemUgc3RhcnRzIGF0IDEgZm9yIHRo ZQorKyAgICAgICAgICAjIHJvb3QgbGFiZWwncyB0ZXJtaW5hdGluZyB6ZXJvIG9jdGV0LiBbUkZD IDEwMzUgMi4zLjQsIDMuMV0KKysgICAgICAgICAgc2l6ZSA9IDEKKysgICAgICAgICAgbGFiZWxz LmVhY2ggZG8gfGxhYmVsfAorKyAgICAgICAgICAgIHNpemUgKz0gMSArIGxhYmVsLnN0cmluZy5i eXRlc2l6ZQorKyAgICAgICAgICAgIGlmIHNpemUgPiAyNTUKKysgICAgICAgICAgICAgIHJhaXNl IFJlc29sdkVycm9yLm5ldygiRE5TIG5hbWUgaXMgdG9vIGxvbmcgKCN7c2l6ZX0gb2N0ZXRzLCBt YXggMjU1KTogI3thcmcuaW5zcGVjdH0iKQorKyAgICAgICAgICAgIGVuZAorKyAgICAgICAgICBl bmQKKysgICAgICAgICAgcmV0dXJuIE5hbWUubmV3KGxhYmVscywgL1wuXHovID1+IGFyZyA/IHRy dWUgOiBmYWxzZSkKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAgcmFpc2UgQXJndW1lbnRFcnJv ci5uZXcoImNhbm5vdCBpbnRlcnByZXQgYXMgRE5TIG5hbWU6ICN7YXJnLmluc3BlY3R9IikKKyAg ICAgICAgIGVuZAorQEAgLTEzOTUsMTIgKzE0NDYsMjQgQEAgY2xhc3MgR2VtOjpSZXNvbHYKKyAg ICAgICAgICAgICAgICBAcmQgPT0gb3RoZXIucmQgJiYKKyAgICAgICAgICAgICAgICBAcmEgPT0g b3RoZXIucmEgJiYKKyAgICAgICAgICAgICAgICBAcmNvZGUgPT0gb3RoZXIucmNvZGUgJiYKKy0g ICAgICAgICAgICAgICBAcXVlc3Rpb24gPT0gb3RoZXIucXVlc3Rpb24gJiYKKysgICAgICAgICAg ICAgICBxdWVzdGlvbl9lcXVhbD8ob3RoZXIucXVlc3Rpb24pICYmCisgICAgICAgICAgICAgICAg QGFuc3dlciA9PSBvdGhlci5hbnN3ZXIgJiYKKyAgICAgICAgICAgICAgICBAYXV0aG9yaXR5ID09 IG90aGVyLmF1dGhvcml0eSAmJgorICAgICAgICAgICAgICAgIEBhZGRpdGlvbmFsID09IG90aGVy LmFkZGl0aW9uYWwKKyAgICAgICBlbmQKKyAKKysgICAgICAjIEEgcXVlc3Rpb24gaG9sZHMgdGhl IHJlc291cmNlIGNsYXNzIGl0c2VsZiwgYW5kIGRlY29kaW5nIGNyZWF0ZXMgYSBmcmVzaAorKyAg ICAgICMgY2xhc3MgZm9yIGVhY2ggdW5rbm93biB0eXBlLCBzbyB0aGUgY2xhc3NlcyBjYW5ub3Qg YmUgY29tcGFyZWQgYnkKKysgICAgICAjIGlkZW50aXR5IGFsb25lLgorKyAgICAgIHByaXZhdGUg ZGVmIHF1ZXN0aW9uX2VxdWFsPyhvdGhlcl9xdWVzdGlvbikgIyA6bm9kb2M6CisrICAgICAgICBy ZXR1cm4gZmFsc2UgdW5sZXNzIEBxdWVzdGlvbi5sZW5ndGggPT0gb3RoZXJfcXVlc3Rpb24ubGVu Z3RoCisrICAgICAgICBAcXVlc3Rpb24uemlwKG90aGVyX3F1ZXN0aW9uKSB7fChuYW1lLCB0eXBl Y2xhc3MpLCAob19uYW1lLCBvX3R5cGVjbGFzcyl8CisrICAgICAgICAgIHJldHVybiBmYWxzZSB1 bmxlc3MgbmFtZSA9PSBvX25hbWUgJiYKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXNvdXJjZTo6R2VuZXJpYy50eXBlX2NsYXNzX2VxdWFsPyh0eXBlY2xhc3MsIG9fdHlwZWNsYXNz KQorKyAgICAgICAgfQorKyAgICAgICAgcmV0dXJuIHRydWUKKysgICAgICBlbmQKKysKKyAgICAg ICBkZWYgYWRkX3F1ZXN0aW9uKG5hbWUsIHR5cGVjbGFzcykKKyAgICAgICAgIEBxdWVzdGlvbiA8 PCBbTmFtZS5jcmVhdGUobmFtZSksIHR5cGVjbGFzc10KKyAgICAgICBlbmQKK0BAIC0xNTA3LDgg KzE1NzAsMTUgQEAgY2xhc3MgR2VtOjpSZXNvbHYKKyAgICAgICAgIGVuZAorIAorICAgICAgICAg ZGVmIHB1dF9zdHJpbmcoZCkKKy0gICAgICAgICAgc2VsZi5wdXRfcGFjaygiQyIsIGQubGVuZ3Ro KQorLSAgICAgICAgICBAZGF0YSA8PCBkCisrICAgICAgICAgIHMgPSBkLnRvX3MKKysgICAgICAg ICAgIyBBIGNoYXJhY3Rlci1zdHJpbmcgaXMgcHJlZml4ZWQgYnkgYSBzaW5nbGUgbGVuZ3RoIG9j dGV0LCBzbyBpdCBjYW4KKysgICAgICAgICAgIyBob2xkIGF0IG1vc3QgMjU1IG9jdGV0cy4gW1JG QyAxMDM1IDMuM10gUmVqZWN0IGFueXRoaW5nIGxvbmdlciB0bworKyAgICAgICAgICAjIGF2b2lk IHNpbGVudGx5IHRydW5jYXRpbmcgdGhlIGxlbmd0aCB0byBpdHMgbG93IDggYml0cyAobW9kIDI1 NikuCisrICAgICAgICAgIGlmIHMuYnl0ZXNpemUgPiAyNTUKKysgICAgICAgICAgICByYWlzZSBB cmd1bWVudEVycm9yLCAiY2hhcmFjdGVyLXN0cmluZyBpcyB0b28gbG9uZyAoI3tzLmJ5dGVzaXpl fSBieXRlcywgbWF4IDI1NSk6ICN7cy5pbnNwZWN0fSIKKysgICAgICAgICAgZW5kCisrICAgICAg ICAgIHNlbGYucHV0X3BhY2soIkMiLCBzLmJ5dGVzaXplKQorKyAgICAgICAgICBAZGF0YSA8PCBz CisgICAgICAgICBlbmQKKyAKKyAgICAgICAgIGRlZiBwdXRfc3RyaW5nX2xpc3QoZHMpCitAQCAt MTUzOCw3ICsxNjA4LDE3IEBAIGNsYXNzIEdlbTo6UmVzb2x2CisgICAgICAgICBlbmQKKyAKKyAg ICAgICAgIGRlZiBwdXRfbGFiZWwoZCkKKy0gICAgICAgICAgc2VsZi5wdXRfc3RyaW5nKGQudG9f cykKKysgICAgICAgICAgcyA9IGQudG9fcworKyAgICAgICAgICAjIExhYmVsOjpTdHIgYXBwbGll cyB0aGlzIGxpbWl0IHdoZW4gYSBsYWJlbCBpcyBidWlsdCwgc28gd2hhdCBpcyBsZWZ0CisrICAg ICAgICAgICMgZm9yIGhlcmUgaXMgYSByYXcgc3RyaW5nIGhhbmRlZCBzdHJhaWdodCB0byBwdXRf bGFiZWxzLiBUaGUgdHdvIHdheXMKKysgICAgICAgICAgIyBhbiBvdmVyLWxvbmcgbGFiZWwgZ29l cyB3cm9uZyBkaWZmZXI6IDY0IHRvIDI1NSBvY3RldHMgd3JpdGUgYSBsZW5ndGgKKysgICAgICAg ICAgIyBvY3RldCBpbiB0aGUgcmVzZXJ2ZWQgb3IgY29tcHJlc3Npb24gcG9pbnRlciByYW5nZSwg YW5kIDI1NiBvciBtb3JlCisrICAgICAgICAgICMgd3JhcCBpdCBtb2QgMjU2LiBFaXRoZXIgd2F5 IHRoZSBlbmNvZGVkIG5hbWUgc3RvcHMgYmVpbmcgdGhlIG5hbWUgdGhlCisrICAgICAgICAgICMg Y2FsbGVyIGFza2VkIGZvci4gW1JGQyAxMDM1IDIuMy40LCA0LjEuNF0KKysgICAgICAgICAgaWYg cy5ieXRlc2l6ZSA+IDYzCisrICAgICAgICAgICAgcmFpc2UgQXJndW1lbnRFcnJvciwgIkROUyBs YWJlbCBpcyB0b28gbG9uZyAoI3tzLmJ5dGVzaXplfSBieXRlcywgbWF4IDYzKTogI3tzLmluc3Bl Y3R9IgorKyAgICAgICAgICBlbmQKKysgICAgICAgICAgc2VsZi5wdXRfc3RyaW5nKHMpCisgICAg ICAgICBlbmQKKyAgICAgICBlbmQKKyAKK0BAIC0xNjY0LDYgKzE3NDQsOSBAQCBjbGFzcyBHZW06 OlJlc29sdgorICAgICAgICAgICBwcmV2X2luZGV4ID0gQGluZGV4CisgICAgICAgICAgIHNhdmVf aW5kZXggPSBuaWwKKyAgICAgICAgICAgZCA9IFtdCisrICAgICAgICAgICMgc2l6ZSBjb3VudHMg dGhlIGVuY29kZWQgZm9ybSwgc28gaXQgc3RhcnRzIGF0IDEgZm9yIHRoZSByb290CisrICAgICAg ICAgICMgbGFiZWwncyB0ZXJtaW5hdGluZyB6ZXJvIG9jdGV0LiBbUkZDIDEwMzUgMy4xXQorKyAg ICAgICAgICBzaXplID0gMQorICAgICAgICAgICB3aGlsZSB0cnVlCisgICAgICAgICAgICAgcmFp c2UgRGVjb2RlRXJyb3IubmV3KCJsaW1pdCBleGNlZWRlZCIpIGlmIEBsaW1pdCA8PSBAaW5kZXgK KyAgICAgICAgICAgICBjYXNlIEBkYXRhLmdldGJ5dGUoQGluZGV4KQorQEAgLTE2ODQsMTMgKzE3 NjcsMjEgQEAgY2xhc3MgR2VtOjpSZXNvbHYKKyAgICAgICAgICAgICAgIGVuZAorICAgICAgICAg ICAgICAgQGluZGV4ID0gaWR4CisgICAgICAgICAgICAgZWxzZQorLSAgICAgICAgICAgICAgZCA8 PCBzZWxmLmdldF9sYWJlbAorKyAgICAgICAgICAgICAgbCA9IHNlbGYuZ2V0X2xhYmVsCisrICAg ICAgICAgICAgICBkIDw8IGwKKysgICAgICAgICAgICAgIHNpemUgKz0gMSArIGwuc3RyaW5nLmJ5 dGVzaXplCisrICAgICAgICAgICAgICByYWlzZSBEZWNvZGVFcnJvci5uZXcoIm5hbWUgbGFiZWwg ZGF0YSBleGNlZWQgMjU1IG9jdGV0cyIpIGlmIHNpemUgPiAyNTUKKyAgICAgICAgICAgICBlbmQK KyAgICAgICAgICAgZW5kCisgICAgICAgICBlbmQKKyAKKyAgICAgICAgIGRlZiBnZXRfbGFiZWwK KyAgICAgICAgICAgcmV0dXJuIExhYmVsOjpTdHIubmV3KHNlbGYuZ2V0X3N0cmluZykKKysgICAg ICAgIHJlc2N1ZSBBcmd1bWVudEVycm9yID0+IGUKKysgICAgICAgICAgIyBBIGxlbmd0aCBvY3Rl dCBvZiA2NC4uMTkxIGlzIHJlc2VydmVkIHJhdGhlciB0aGFuIGEgbGFiZWwgbGVuZ3RoLAorKyAg ICAgICAgICAjIGJ1dCB0aGlzIGRlY29kZXIgdXNlZCB0byByZWFkIGl0IGFzIG9uZS4gW1JGQyAx MDM1IDQuMS40XSBSZXBvcnQgaXQKKysgICAgICAgICAgIyB0aGUgd2F5IHRoZSByZXN0IG9mIGEg bWFsZm9ybWVkIG1lc3NhZ2UgaXMgcmVwb3J0ZWQuCisrICAgICAgICAgIHJhaXNlIERlY29kZUVy cm9yLm5ldyhlLm1lc3NhZ2UpCisgICAgICAgICBlbmQKKyAKKyAgICAgICAgIGRlZiBnZXRfcXVl c3Rpb24KK0BAIC0xODc4LDggKzE5NjksOSBAQCBjbGFzcyBHZW06OlJlc29sdgorICAgICAgICAg ICBrZXlfbmFtZSA9IDoia2V5I3trZXlfbnVtYmVyfSIKKyAgICAgICAgICAgYy5jb25zdF9zZXQo OktleU5hbWUsIGtleV9uYW1lKQorICAgICAgICAgICBjLmNvbnN0X3NldCg6S2V5TnVtYmVyLCBr ZXlfbnVtYmVyKQorLSAgICAgICAgICBzZWxmLmNvbnN0X3NldCg6IktleSN7a2V5X251bWJlcn0i LCBjKQorLSAgICAgICAgICBDbGFzc0hhc2hba2V5X25hbWVdID0gQ2xhc3NIYXNoW2tleV9udW1i ZXJdID0gYworKyAgICAgICAgICAjIE5vdCByZWdpc3RlcmVkIGluIGEgY29uc3RhbnQgb3IgaW4g Q2xhc3NIYXNoLiBDbGFzc0hhc2ggY3JlYXRlcyBhCisrICAgICAgICAgICMgY2xhc3MgZm9yIGV2 ZXJ5IHVua25vd24gU3ZjUGFyYW1LZXksIHNvIHJlZ2lzdGVyaW5nIHRoZW0KKysgICAgICAgICAg IyBwZXJtYW5lbnRseSB3b3VsZCBsZXQgYSBtYWxpY2lvdXMgcmVzcG9uc2UgZXhoYXVzdCBtZW1v cnkuCisgICAgICAgICAgIHJldHVybiBjCisgICAgICAgICBlbmQKKyAgICAgICBlbmQKK0BAIC0y MTEwLDcgKzIyMDIsMTQgQEAgY2xhc3MgR2VtOjpSZXNvbHYKKyAKKyAgICAgICBhdHRyX3JlYWRl ciA6dHRsCisgCistICAgICAgQ2xhc3NIYXNoID0ge30gIyA6bm9kb2M6CisrICAgICAgQ2xhc3NI YXNoID0gTW9kdWxlLm5ldyBkbworKyAgICAgICAgbW9kdWxlX2Z1bmN0aW9uCisrCisrICAgICAg ICBkZWYgW109KHR5cGVfY2xhc3NfdmFsdWUsIGtsYXNzKQorKyAgICAgICAgICB0eXBlX3ZhbHVl LCBjbGFzc192YWx1ZSA9IHR5cGVfY2xhc3NfdmFsdWUKKysgICAgICAgICAgUmVzb3VyY2UuY29u c3Rfc2V0KDoiVHlwZSN7dHlwZV92YWx1ZX1fQ2xhc3Mje2NsYXNzX3ZhbHVlfSIsIGtsYXNzKQor KyAgICAgICAgZW5kCisrICAgICAgZW5kCisgCisgICAgICAgZGVmIGVuY29kZV9yZGF0YShtc2cp ICMgOm5vZG9jOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvci5uZXcKK0BAIC0y MTQ4LDcgKzIyNDcsOSBAQCBjbGFzcyBHZW06OlJlc29sdgorICAgICAgIGVuZAorIAorICAgICAg IGRlZiBzZWxmLmdldF9jbGFzcyh0eXBlX3ZhbHVlLCBjbGFzc192YWx1ZSkgIyA6bm9kb2M6Cist ICAgICAgICByZXR1cm4gQ2xhc3NIYXNoW1t0eXBlX3ZhbHVlLCBjbGFzc192YWx1ZV1dIHx8Cisr ICAgICAgICBjYWNoZSA9IDoiVHlwZSN7dHlwZV92YWx1ZX1fQ2xhc3Mje2NsYXNzX3ZhbHVlfSIK KysKKysgICAgICAgIHJldHVybiAoY29uc3RfZGVmaW5lZD8oY2FjaGUpICYmIGNvbnN0X2dldChj YWNoZSkpIHx8CisgICAgICAgICAgICAgICAgR2VuZXJpYy5jcmVhdGUodHlwZV92YWx1ZSwgY2xh c3NfdmFsdWUpCisgICAgICAgZW5kCisgCitAQCAtMjE3NywxMiArMjI3OCwyOCBAQCBjbGFzcyBH ZW06OlJlc29sdgorICAgICAgICAgICByZXR1cm4gc2VsZi5uZXcobXNnLmdldF9ieXRlcykKKyAg ICAgICAgIGVuZAorIAorKyAgICAgICAgIyBjcmVhdGUgbWFrZXMgYSBmcmVzaCBjbGFzcyBmb3Ig ZWFjaCBkZWNvZGVkIHJlc291cmNlLCBzbyB0aGUgdHlwZSBhbmQKKysgICAgICAgICMgY2xhc3Mg dmFsdWVzIGhhdmUgdG8gYmUgY29tcGFyZWQgaW5zdGVhZCBvZiB0aGUgY2xhc3MgaXRzZWxmLgor KyAgICAgICAgZGVmIHNlbGYudHlwZV9jbGFzc19lcXVhbD8oa2xhc3MsIG90aGVyKSAjIDpub2Rv YzoKKysgICAgICAgICAgcmV0dXJuIHRydWUgaWYga2xhc3MuZXF1YWw/KG90aGVyKQorKyAgICAg ICAgICBHZW5lcmljID4ga2xhc3MgJiYgR2VuZXJpYyA+IG90aGVyICYmCisrICAgICAgICAgICAg a2xhc3M6OlR5cGVWYWx1ZSA9PSBvdGhlcjo6VHlwZVZhbHVlICYmCisrICAgICAgICAgICAga2xh c3M6OkNsYXNzVmFsdWUgPT0gb3RoZXI6OkNsYXNzVmFsdWUKKysgICAgICAgIGVuZAorKworKyAg ICAgICAgZGVmID09KG90aGVyKSAjIDpub2RvYzoKKysgICAgICAgICAgcmV0dXJuIG90aGVyLmlz X2E/KEdlbmVyaWMpICYmCisrICAgICAgICAgICAgICAgICBHZW5lcmljLnR5cGVfY2xhc3NfZXF1 YWw/KHNlbGYuY2xhc3MsIG90aGVyLmNsYXNzKSAmJgorKyAgICAgICAgICAgICAgICAgQGRhdGEg PT0gb3RoZXIuZGF0YQorKyAgICAgICAgZW5kCisrCisgICAgICAgICBkZWYgc2VsZi5jcmVhdGUo dHlwZV92YWx1ZSwgY2xhc3NfdmFsdWUpICMgOm5vZG9jOgorICAgICAgICAgICBjID0gQ2xhc3Mu bmV3KEdlbmVyaWMpCisgICAgICAgICAgIGMuY29uc3Rfc2V0KDpUeXBlVmFsdWUsIHR5cGVfdmFs dWUpCisgICAgICAgICAgIGMuY29uc3Rfc2V0KDpDbGFzc1ZhbHVlLCBjbGFzc192YWx1ZSkKKy0g ICAgICAgICAgR2VuZXJpYy5jb25zdF9zZXQoIlR5cGUje3R5cGVfdmFsdWV9X0NsYXNzI3tjbGFz c192YWx1ZX0iLCBjKQorLSAgICAgICAgICBDbGFzc0hhc2hbW3R5cGVfdmFsdWUsIGNsYXNzX3Zh bHVlXV0gPSBjCisrICAgICAgICAgICMgTm90IHJlZ2lzdGVyZWQgaW4gYSBjb25zdGFudCBvciBp biBDbGFzc0hhc2guIGdldF9jbGFzcyBjcmVhdGVzIGEKKysgICAgICAgICAgIyBjbGFzcyBmb3Ig ZXZlcnkgdW5rbm93biAodHlwZSwgY2xhc3MpIHBhaXIsIHNvIHJlZ2lzdGVyaW5nIHRoZW0KKysg ICAgICAgICAgIyBwZXJtYW5lbnRseSB3b3VsZCBsZXQgYSBtYWxpY2lvdXMgcmVzcG9uc2UgZXho YXVzdCBtZW1vcnkuCisgICAgICAgICAgIHJldHVybiBjCisgICAgICAgICBlbmQKKyAgICAgICBl bmQKK0BAIC0yNTc3LDcgKzI2OTQsNyBAQCBjbGFzcyBHZW06OlJlc29sdgorICAgICAgICAgZW5k CisgCisgICAgICAgICAjIworLSAgICAgICAgIyBGbGFncyBmb3IgdGhpcyBwcm9wcnR5OgorKyAg ICAgICAgIyBGbGFncyBmb3IgdGhpcyBwcm9wZXJ0eToKKyAgICAgICAgICMgLSBCaXQgMCA6IDAg PSBub3QgY3JpdGljYWwsIDEgPSBjcml0aWNhbAorIAorICAgICAgICAgYXR0cl9yZWFkZXIgOmZs YWdzCitAQCAtMjg5OCwxNSArMzAxNSwyMSBAQCBjbGFzcyBHZW06OlJlc29sdgorIAorICAgY2xh c3MgSVB2NAorIAorLSAgICAjIworLSAgICAjIFJlZ3VsYXIgZXhwcmVzc2lvbiBJUHY0IGFkZHJl c3NlcyBtdXN0IG1hdGNoLgorLQorICAgICBSZWdleDI1NiA9IC8wCisgICAgICAgICAgICAgICAg fDEoPzpbMC05XVswLTldPyk/CisgICAgICAgICAgICAgICAgfDIoPzpbMC00XVswLTldP3w1WzAt NV0/fFs2LTldKT8KKy0gICAgICAgICAgICAgICB8WzMtOV1bMC05XT8veAorKyAgICAgICAgICAg ICAgIHxbMy05XVswLTldPy94ICMgOm5vZG9jOgorKworKyAgICAjIworKyAgICAjIFJlZ3VsYXIg ZXhwcmVzc2lvbiBJUHY0IGFkZHJlc3NlcyBtdXN0IG1hdGNoLgorICAgICBSZWdleCA9IC9cQSgj e1JlZ2V4MjU2fSlcLigje1JlZ2V4MjU2fSlcLigje1JlZ2V4MjU2fSlcLigje1JlZ2V4MjU2fSlc ei8KKyAKKysgICAgIyMKKysgICAgIyBDcmVhdGVzIGEgbmV3IElQdjQgYWRkcmVzcyBmcm9tICth cmcrIHdoaWNoIG1heSBiZToKKysgICAgIworKyAgICAjIElQdjQ6OiByZXR1cm5zICthcmcrLgor KyAgICAjIFN0cmluZzo6ICthcmcrIG11c3QgbWF0Y2ggdGhlIElQdjQ6OlJlZ2V4IGNvbnN0YW50 CisrCisgICAgIGRlZiBzZWxmLmNyZWF0ZShhcmcpCisgICAgICAgY2FzZSBhcmcKKyAgICAgICB3 aGVuIElQdjQKK0BAIC0zMjE1LDEzICszMzM4LDE1IEBAIGNsYXNzIEdlbTo6UmVzb2x2CisgCisg ICBlbmQKKyAKKy0gIG1vZHVsZSBMT0MKKysgIG1vZHVsZSBMT0MgIyA6bm9kb2M6CisgCisgICAg ICMjCisgICAgICMgQSBHZW06OlJlc29sdjo6TE9DOjpTaXplCisgCisgICAgIGNsYXNzIFNpemUK KyAKKysgICAgICAjIFJlZ3VsYXIgZXhwcmVzc2lvbiBMT0Mgc2l6ZSBtdXN0IG1hdGNoLgorKwor ICAgICAgIFJlZ2V4ID0gL14oXGQrXC4qXGQqKVttXSQvCisgCisgICAgICAgIyMKK0BAIC0zMjQ3 LDYgKzMzNzIsNyBAQCBjbGFzcyBHZW06OlJlc29sdgorICAgICAgICAgZW5kCisgICAgICAgZW5k CisgCisrICAgICAgIyBJbnRlcm5hbCB1c2U7IHVzZSBzZWxmLmNyZWF0ZS4KKyAgICAgICBkZWYg aW5pdGlhbGl6ZShzY2FsYXIpCisgICAgICAgICBAc2NhbGFyID0gc2NhbGFyCisgICAgICAgZW5k CitAQCAtMzI4NCw2ICszNDEwLDggQEAgY2xhc3MgR2VtOjpSZXNvbHYKKyAKKyAgICAgY2xhc3Mg Q29vcmQKKyAKKysgICAgICAjIFJlZ3VsYXIgZXhwcmVzc2lvbiBMT0MgQ29vcmQgbXVzdCBtYXRj aC4KKysKKyAgICAgICBSZWdleCA9IC9eKFxkKylccyhcZCspXHMoXGQrXC5cZCspXHMoW05FU1dd KSQvCisgCisgICAgICAgIyMKK0BAIC0zMzEzLDYgKzM0NDEsNyBAQCBjbGFzcyBHZW06OlJlc29s dgorICAgICAgICAgZW5kCisgICAgICAgZW5kCisgCisrICAgICAgIyBJbnRlcm5hbCB1c2U7IHVz ZSBzZWxmLmNyZWF0ZS4KKyAgICAgICBkZWYgaW5pdGlhbGl6ZShjb29yZGluYXRlcyxvcmllbnRh dGlvbikKKyAgICAgICAgIHVubGVzcyBjb29yZGluYXRlcy5raW5kX29mPyhTdHJpbmcpCisgICAg ICAgICAgIHJhaXNlIEFyZ3VtZW50RXJyb3IubmV3KCJDb29yZCBtdXN0IGJlIGEgMzJiaXQgdW5z aWduZWQgaW50ZWdlciBpbiBoZXggZm9ybWF0OiAje2Nvb3JkaW5hdGVzLmluc3BlY3R9IikKK0BA IC0zMzc1LDYgKzM1MDQsOCBAQCBjbGFzcyBHZW06OlJlc29sdgorIAorICAgICBjbGFzcyBBbHQK KyAKKysgICAgICAjIFJlZ3VsYXIgZXhwcmVzc2lvbiBMT0MgQWx0IG11c3QgbWF0Y2guCisrCisg ICAgICAgUmVnZXggPSAvXihbKy1dKlxkK1wuKlxkKilbbV0kLworIAorICAgICAgICMjCitAQCAt MzQwMCw2ICszNTMxLDcgQEAgY2xhc3MgR2VtOjpSZXNvbHYKKyAgICAgICAgIGVuZAorICAgICAg IGVuZAorIAorKyAgICAgICMgSW50ZXJuYWwgdXNlOyB1c2Ugc2VsZi5jcmVhdGUuCisgICAgICAg ZGVmIGluaXRpYWxpemUoYWx0aXR1ZGUpCisgICAgICAgICBAYWx0aXR1ZGUgPSBhbHRpdHVkZQor ICAgICAgIGVuZAoKZGlmZiAtLWdpdCBhL3J1Ynkuc3BlYyBiL3J1Ynkuc3BlYwppbmRleCA5NGIw ZjIyLi42MWRmOGM5IDEwMDY0NAotLS0gYS9ydWJ5LnNwZWMKKysrIGIvcnVieS5zcGVjCkBAIC0z Miw3ICszMiw3IEBACiAlZ2xvYmFsIHJ1YnlnZW1zX25ldF9odHRwX3ZlcnNpb24gMC42LjAKICVn bG9iYWwgcnVieWdlbXNfbmV0X3Byb3RvY29sX3ZlcnNpb24gMC4yLjIKICVnbG9iYWwgcnVieWdl bXNfb3B0cGFyc2VfdmVyc2lvbiAwLjYuMAotJWdsb2JhbCBydWJ5Z2Vtc19yZXNvbHZfdmVyc2lv biAwLjYuMAorJWdsb2JhbCBydWJ5Z2Vtc19yZXNvbHZfdmVyc2lvbiAwLjcuMgogJWdsb2JhbCBy dWJ5Z2Vtc19zZWN1cmVyYW5kb21fdmVyc2lvbiAwLjQuMQogJWdsb2JhbCBydWJ5Z2Vtc190aW1l b3V0X3ZlcnNpb24gMC40LjMKICVnbG9iYWwgcnVieWdlbXNfdHNvcnRfdmVyc2lvbiAwLjIuMApA QCAtODIsNyArODIsNyBAQAogJWdsb2JhbCBwc3RvcmVfdmVyc2lvbiAwLjIuMQogJWdsb2JhbCBy ZWFkbGluZV92ZXJzaW9uIDAuMC40CiAlZ2xvYmFsIHJlbGluZV92ZXJzaW9uIDAuNi4wCi0lZ2xv YmFsIHJlc29sdl92ZXJzaW9uIDAuNy4xCislZ2xvYmFsIHJlc29sdl92ZXJzaW9uIDAuNy4yCiAl Z2xvYmFsIHJ1YnkyX2tleXdvcmRzX3ZlcnNpb24gMC4wLjUKICVnbG9iYWwgc2VjdXJlcmFuZG9t X3ZlcnNpb24gMC40LjEKICVnbG9iYWwgc2V0X3ZlcnNpb24gMS4xLjEKQEAgLTE3Nyw3ICsxNzcs NyBAQAogU3VtbWFyeTogQW4gaW50ZXJwcmV0ZXIgb2Ygb2JqZWN0LW9yaWVudGVkIHNjcmlwdGlu ZyBsYW5ndWFnZQogTmFtZTogcnVieQogVmVyc2lvbjogJXtydWJ5X3ZlcnNpb259JXs/ZGV2ZWxv cG1lbnRfcmVsZWFzZX0KLVJlbGVhc2U6IDMxJXs/ZGlzdH0KK1JlbGVhc2U6IDMyJXs/ZGlzdH0K ICMgTGljZW5zZXMsIHdoaWNoIGFyZSBsaWtlbHkgbm90IGluY2x1ZGVkIGluIGJpbmFyeSBSUE1z OgogIyBBcGFjaGUtMi4wOgogIyAgIGJlbmNobWFyay9nYy9yZWRibGFjay5yYgpAQCAtMjgxLDYg KzI4MSwxMCBAQCBQYXRjaDk6IHJ1YnktMy4zLjAtRGlzYWJsZS1zeW50YXgtc3VnZ2VzdC10ZXN0 LWNhc2UucGF0Y2gKICMgRml4IHRoZSB0ZXN0cyB1c2luZyBTSEEtMSBQcm9iYWJpbGlzdGljIFNp Z25hdHVyZSBTY2hlbWUgKFBTUykgcGFyYW1ldGVycy4KICMgaHR0cHM6Ly9naXRodWIuY29tL3J1 Ynkvb3BlbnNzbC9wdWxsLzg3OQogUGF0Y2gxMDogcnVieS0zLjQuMi1vcGVuc3NsLUZpeC1TSEEt MS1QU1MtdGVzdHMucGF0Y2gKKyMgQmFja3BvcnQgZnJvbSBydWJ5XzNfNCBicmFuY2ggdG8gdXBk YXRlIHJlc29sdiB0byAwLjcuMiAoZml4ZXMgQ1ZFLTIwMjYtODAyMTIgQ1ZFLTIwMjYtODAyMTMp CisjIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8xODUyOQorIyBBbHNvIGNvcGll ZCB0aGUgcGF0Y2ggdG8gYXBwbHkgdGhlIGZpeCBhbHNvIGZvciB2ZW5kb3JlZCByZXNvbHYKK1Bh dGNoMTE6IHJ1YnktM180LXByMTg1MjktdXBkYXRlLXJlc29sdi0wXzdfMi5wYXRjaAogCiBSZXF1 aXJlczogJXtuYW1lfS1saWJzJXs/X2lzYX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KICV7P3dp dGhfcnVieXBpY2s6U3VnZ2VzdHM6IHJ1YnlwaWNrfQpAQCAtNzc1LDYgKzc3OSw3IEBAIGFuYWx5 c2lzIHJlc3VsdCBpbiBSQlMgZm9ybWF0LCBhIHN0YW5kYXJkIHR5cGUgZGVzY3JpcHRpb24gZm9y bWF0IGZvciBSdWJ5CiAlcGF0Y2ggNiAtcDEKICVwYXRjaCA5IC1wMQogJXBhdGNoIDEwIC1wMQor JXBhdGNoIDExIC1wMQogCiAjIFByb3ZpZGUgYW4gZXhhbXBsZSBvZiB1c2FnZSBvZiB0aGUgdGFw c2V0OgogY3AgLWEgJXtTT1VSQ0UzfSAuCkBAIC0xODc5LDYgKzE4ODQsMTEgQEAgbWFrZSAtQyAl e192cGF0aF9idWlsZGRpcn0gcnVucnVieSBURVNUUlVOX1NDUklQVD0iIFwKIAogCiAlY2hhbmdl bG9nCisqIEZyaSBTZXAgMDQgMjAyNiBNYW1vcnUgVEFTQUtBIDxtdGFzYWthQGZlZG9yYXByb2pl Y3Qub3JnPiAtIDMuNC4xMC0zMgorLSBCYWNrcG9ydCB1cHN0cmVhbSBwYXRjaCB0byB1cGRhdGUg cmVzb2x2IHRvIDAuNy4yCistIFJlc29sdmVzOiBDVkUtMjAyNi04MDIxMiAocmhieiMyNTI3MzA4 KQorLSBSZXNvbHZlczogQ1ZFLTIwMjYtODAyMTMgKHJoYnojMjUyNzMxMCkKKwogKiBXZWQgSnVs IDA4IDIwMjYgTWFtb3J1IFRBU0FLQSA8bXRhc2FrYUBmZWRvcmFwcm9qZWN0Lm9yZz4gLSAzLjQu MTAtMzEKIC0gVXBkYXRlIHRvIFJ1YnkgMy40LjEwCiAtIFJlc29sdmVzOiBDVkUtMjAyNi00MTMx NiAocmhieiMyNDYzMjE2KQo=