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: =?utf-8?b?UGV0ciBQw61zYcWZIDxwcGlzYXJAcmVkaGF0LmNvbT4=?= To: git-commits@fedoraproject.org Subject: [rpms/libmodulemd] rawhide: 2.15.3 bump Date: Fri, 12 Jun 2026 13:07:03 GMT Message-ID: <178126962301.1.8850378858381981030.rpms-libmodulemd-b34829e6232d@fedoraproject.org> List-ID: X-Git-Repo: rpms/libmodulemd X-Git-Branch: rawhide X-Git-Rev: b34829e6232d935cecd60f76bf442665fcd583bb QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvbGlibW9kdWxlbWQK QnJhbmNoIDogcmF3aGlkZQpDb21taXQgOiBiMzQ4MjllNjIzMmQ5MzVjZWNkNjBmNzZiZjQ0MjY2 NWZjZDU4M2JiCkF1dGhvciA6IFBldHIgUMOtc2HFmSA8cHBpc2FyQHJlZGhhdC5jb20+CkRhdGUg ICA6IDIwMjYtMDYtMTJUMTU6MDM6MTQrMDI6MDAKU3RhdHMgIDogKzkvLTIyODYgaW4gNSBmaWxl KHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvbGlibW9kdWxl bWQvYy9iMzQ4MjllNjIzMmQ5MzVjZWNkNjBmNzZiZjQ0MjY2NWZjZDU4M2JiP2JyYW5jaD1yYXdo aWRlCgpMb2c6CjIuMTUuMyBidW1wCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0 aWdub3JlCmluZGV4IDc4ZTE0ZWEuLjNmNjc4ZGMgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysr IGIvLmdpdGlnbm9yZQpAQCAtNjgsMyArNjgsNSBAQAogL21vZHVsZW1kLTIuMTUuMS50YXIueHou YXNjCiAvbW9kdWxlbWQtMi4xNS4yLnRhci54egogL21vZHVsZW1kLTIuMTUuMi50YXIueHouYXNj CisvbW9kdWxlbWQtMi4xNS4zLnRhci54egorL21vZHVsZW1kLTIuMTUuMy50YXIueHouYXNjCgpk aWZmIC0tZ2l0IGEvbGlibW9kdWxlbWQuc3BlYyBiL2xpYm1vZHVsZW1kLnNwZWMKaW5kZXggOGEw NzA4OS4uYmQ4MjRkZSAxMDA2NDQKLS0tIGEvbGlibW9kdWxlbWQuc3BlYworKysgYi9saWJtb2R1 bGVtZC5zcGVjCkBAIC0yMyw4ICsyMyw4IEBACiAlZW5kaWYKIAogTmFtZTogICAgICAgICAgICV7 dXBzdHJlYW1fbmFtZX0lez92Ml9zdWZmaXh9Ci1WZXJzaW9uOiAgICAgICAgMi4xNS4yCi1SZWxl YXNlOiAgICAgICAgOCV7P2Rpc3R9CitWZXJzaW9uOiAgICAgICAgMi4xNS4zCitSZWxlYXNlOiAg ICAgICAgMSV7P2Rpc3R9CiBTdW1tYXJ5OiAgICAgICAgTW9kdWxlIG1ldGFkYXRhIG1hbmlwdWxh dGlvbiBsaWJyYXJ5CiAKICMgQ09QWUlORzogICAgICBNSVQKQEAgLTQxLDEwICs0MSw2IEBAIFNv dXJjZTA6ICAgICAgICAle3VybH0vcmVsZWFzZXMvZG93bmxvYWQvJXt2ZXJzaW9ufS9tb2R1bGVt ZC0le3ZlcnNpb259LnRhci54egogU291cmNlMTogICAgICAgICV7dXJsfS9yZWxlYXNlcy9kb3du bG9hZC8le3ZlcnNpb259L21vZHVsZW1kLSV7dmVyc2lvbn0udGFyLnh6LmFzYwogIyBLZXkgZXhw b3J0ZWQgZnJvbSBQZXRyIFBpc2FyJ3Mga2V5cmluZwogU291cmNlMjogICAgICAgIGdwZ2tleS1F M0Y0MkZDRTE1NjgzMEE4MDM1OEU2RTk0RkQxQUVDMzM2NUFGN0JGLmdwZwotIyBBZGFwdCB0ZXN0 cyB0byBnbGliMi0yLjg3LjAsIGluIHVwc3RyZWFtIGFmdGVyIDIuMTUuMiwgYnVnICMyNDIzMTUz Ci1QYXRjaDA6ICAgICAgICAgbW9kdWxlbWQtMi4xNS4yLXRlc3RzLUFkYXB0LXRvLWdsaWItMi44 Ny4wLnBhdGNoCi0jIEFkYXB0IHRlc3RzIHRvIHB5Z29iamVjdCAzLjU1LjAsIGluIHVwc3RyZWFt IGFmdGVyIDIuMTUuMiwgYnVnICMyNDQwNTcwCi1QYXRjaDE6ICAgICAgICAgbW9kdWxlbWQtMi4x NS4yLXRlc3RzLUFkYXB0LXRvLXB5Z29iamVjdC0zLjU1LjAucGF0Y2gKIAogQnVpbGRSZXF1aXJl czogIGdudXBnMgogQnVpbGRSZXF1aXJlczogIG1lc29uID49IDAuNDcKQEAgLTgyLDcgKzc4LDYg QEAgbW9yZSBkZXRhaWxzLgogU3VtbWFyeTogICAgICAgIFB5dGhvbiAyIGJpbmRpbmdzIGZvciAl e25hbWV9CiBSZXF1aXJlczogICAgICAgJXtuYW1lfSV7P19pc2F9ID0gJXt2ZXJzaW9ufS0le3Jl bGVhc2V9CiBSZXF1aXJlczogICAgICAgcHl0aG9uLWdvYmplY3QtYmFzZQotUmVxdWlyZXM6ICAg ICAgIHB5dGhvbi1zaXgKIAogJWRlc2NyaXB0aW9uIC1uIHB5dGhvbjItJXtuYW1lfQogUHl0aG9u IDIgYmluZGluZ3MgZm9yICV7bmFtZX0uCkBAIC05NCwxMiArODksNiBAQCBQeXRob24gMiBiaW5k aW5ncyBmb3IgJXtuYW1lfS4KIFN1bW1hcnk6ICAgICAgICBQeXRob24gMyBiaW5kaW5ncyBmb3Ig JXtuYW1lfQogUmVxdWlyZXM6ICAgICAgICV7bmFtZX0lez9faXNhfSA9ICV7dmVyc2lvbn0tJXty ZWxlYXNlfQogUmVxdWlyZXM6ICAgICAgIHB5dGhvbiV7cHl0aG9uM19wa2d2ZXJzaW9ufS1nb2Jq ZWN0LWJhc2UKLSVpZiAoMCV7P3JoZWx9ICYmIDAlez9yaGVsfSA8PSA3KQotIyBUaGUgcHkzX2Rp c3QgbWFjcm8gb24gRVBFTCA3IGRvZXNuJ3Qgd29yayByaWdodCBhdCB0aGUgbW9tZW50Ci1SZXF1 aXJlczogICAgICAgcHl0aG9uMy42ZGlzdChzaXgpCi0lZWxzZQotUmVxdWlyZXM6ICAgICAgICV7 cHkzX2Rpc3Qgc2l4fQotJWVuZGlmCiAKICVkZXNjcmlwdGlvbiAtbiBweXRob24le3B5dGhvbjNf cGtndmVyc2lvbn0tJXtuYW1lfQogUHl0aG9uICV7cHl0aG9uM19wa2d2ZXJzaW9ufSBiaW5kaW5n cyBmb3IgJXtuYW1lfS4KQEAgLTE5Myw2ICsxODIsOSBAQCBtdiAle2J1aWxkcm9vdH0le19tYW5k aXJ9L21hbjEvbW9kdWxlbWQtdmFsaWRhdG9yLjEgXAogCiAKICVjaGFuZ2Vsb2cKKyogRnJpIEp1 biAxMiAyMDI2IFBldHIgUGlzYXIgPHBwaXNhckByZWRoYXQuY29tPiAtIDIuMTUuMy0xCistIDIu MTUuMyBidW1wCisKICogV2VkIEp1biAwMyAyMDI2IFB5dGhvbiBNYWludCA8cHl0aG9uLW1haW50 QHJlZGhhdC5jb20+IC0gMi4xNS4yLTgKIC0gUmVidWlsdCBmb3IgUHl0aG9uIDMuMTUKIAoKZGlm ZiAtLWdpdCBhL21vZHVsZW1kLTIuMTUuMi10ZXN0cy1BZGFwdC10by1nbGliLTIuODcuMC5wYXRj aCBiL21vZHVsZW1kLTIuMTUuMi10ZXN0cy1BZGFwdC10by1nbGliLTIuODcuMC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU4NmI1OC4uMDAwMDAwMAotLS0gYS9tb2R1bGVt ZC0yLjE1LjItdGVzdHMtQWRhcHQtdG8tZ2xpYi0yLjg3LjAucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwyMTA0ICswLDAgQEAKLUZyb20gODlkNGFmYjNkMDE4MjUwNDI3ZDRkODc4NDBhZTU3YWFi MzkwMzM2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9QZXRyPTIw UD1DMz1BRHNhPUM1PTk5Pz0gPHBwaXNhckByZWRoYXQuY29tPgotRGF0ZTogTW9uLCA4IERlYyAy MDI1IDEzOjM5OjI5ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHRlc3RzOiBBZGFwdCB0byBnbGli IDIuODcuMAotCi1BZnRlciB1cGdyYWRpbmcgZ2xpYiBmcm9tIDIuODYuMSB0byAyLjg3LjAsIHRl c3RzIHdoaWNoIGV4cGVjdCBjYXRjaGluZwotU0lHVFJBUCBzdGFydGVkIHRvIGZhaWwgbGlrZSB0 aGlzOgotCi0gICAgWy4uLl0vcmVkaGF0LWxpbnV4LWJ1aWxkL21vZHVsZW1kL2NvbXBvbmVudF9t b2R1bGUKLSAgICBUQVAgdmVyc2lvbiAxNAotICAgICMgcmFuZG9tIHNlZWQ6IFIwMlM1MDFiNmJk MDI0MTNhMjk4MDEzM2YxOTdkYWI5OTQxNgotICAgIDEuLjYKLSAgICAjIFN0YXJ0IG9mIG1vZHVs ZW1kIHRlc3RzCi0gICAgIyBTdGFydCBvZiB2MiB0ZXN0cwotICAgICMgU3RhcnQgb2YgY29tcG9u ZW50IHRlc3RzCi0gICAgIyBTdGFydCBvZiBtb2R1bGUgdGVzdHMKLSAgICBub3Qgb2sgL21vZHVs ZW1kL3YyL2NvbXBvbmVudC9tb2R1bGUvY29uc3RydWN0IC0gbGlibW9kdWxlbWQtRkFUQUwtQ1JJ VElDQUw6IG1vZHVsZW1kX2NvbXBvbmVudF9zZXRfa2V5OiBhc3NlcnRpb24gJ25hbWUnIGZhaWxl ZAotICAgIEJhaWwgb3V0IQotICAgIEFib3J0ZWQgICAgICAgICAgICAgICAgICAgIChjb3JlIGR1 bXBlZCkgTERfTElCUkFSWV9QQVRIPS9ob21lL3Rlc3QvbGlibW9kdWxlbWQtZGV2ZWwvcmVkaGF0 LWxpbnV4LWJ1aWxkL21vZHVsZW1kIE1FU09OX0JVSUxEX1JPT1Q9L2hvbWUvdGVzdC9saWJtb2R1 bGVtZC1kZXZlbC9yZWRoYXQtbGludXgtYnVpbGQgVEVTVF9EQVRBX1BBVEg9L2hvbWUvdGVzdC9s aWJtb2R1bGVtZC1kZXZlbC9tb2R1bGVtZC90ZXN0cy90ZXN0X2RhdGEgVUJTQU5fT1BUSU9OUz1o YWx0X29uX2Vycm9yPTE6YWJvcnRfb25fZXJyb3I9MTpwcmludF9zdW1tYXJ5PTE6cHJpbnRfc3Rh Y2t0cmFjZT0xIE1TQU5fT1BUSU9OUz1oYWx0X29uX2Vycm9yPTE6YWJvcnRfb25fZXJyb3I9MTpw cmludF9zdW1tYXJ5PTE6cHJpbnRfc3RhY2t0cmFjZT0xIExDX0FMTD1DIE1FU09OX1RFU1RfSVRF UkFUSU9OPTEgTUVTT05fU09VUkNFX1JPT1Q9L2hvbWUvdGVzdC9saWJtb2R1bGVtZC1kZXZlbCBN QUxMT0NfUEVSVFVSQl89MTE1IEFTQU5fT1BUSU9OUz1oYWx0X29uX2Vycm9yPTE6YWJvcnRfb25f ZXJyb3I9MTpwcmludF9zdW1tYXJ5PTEgL2hvbWUvdGVzdC9saWJtb2R1bGVtZC1kZXZlbC9yZWRo YXQtbGludXgtYnVpbGQvbW9kdWxlbWQvY29tcG9uZW50X21vZHVsZQotCi1UaGUgdGVzdHMgcGFz c2VkIGEgTlVMTCBwb2ludGVyIHRvIGxpYm1vZHVsZW1kIG9iamVjdCBjb25zdHJ1Y3RvcnMgYW5k Ci1jaGVja2VkIHRoYXQgZ2xpYiByYWlzZWQgYSBTSUdUUkFQIHNpZ25hbC4gVGhlIG5ldyBnbGli IGZpeGVkCi08aHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dsaWIvLS9pc3N1ZXMvMzc5 MD4gYW5kIGFzIGEgc2lkZQotZWZmZWN0IGNoYW5nZWQgaG93IHRoZSBwcm9jZXNzIGlzIHRlcm1p bmF0ZWQ6IElmIHRoZSBwcm9jZXNzIHJ1bnMKLXVuZGVyIGEgZGVidWdnZXIsIGEgYnJlYWtwb2lu dCB0cmFwIGlzIGludm9rZWQgb3IgU0lHVFJBUCByYWlzZWQsCi1kZXBlbmRpbmcgb24gdGhlIGFy Y2hpdGVjdHVyZS4gSWYgdGhlIHByb2Nlc3MgZG9lcyBub3QgcnVuIHVuZGVyCi1hIGRlYnVnZ2Vy LCBhYm9ydCgpIGlzIGNhbGxlZCwgd2hpY2ggcmFpc2VzIFNJR0FCUlQgYW5kIHRoZW4gYWZ0ZXIK LXJldHVybmluZyB0byBnbGliIFNJR0FCUlQgZGlzcG9zaXRpb24gaXMgcmVzZXQgYW5kIFNJR0FC UlQgcmFpc2VkCi1hZ2FpbiB0byBmaW5hbGx5IHRlcm1pbmF0ZSB0aGUgcHJvY2Vzcy4gVGhhdCBt ZWFucyB0aGF0IGNhdGNoaW5nCi1zaWduYWxzIGlzIHBvaW50bGVzcyBiZWNhdXNlIHRoZSBwcm9j ZXNzIHdpbGwgYmUgdGVybWluYXRlZAotbmV2ZXJ0aGVsZXNzLgotCi1UaGlzIHBhdGNoIGFkYXB0 cyB0aGUgdGVzdHMgYnkgdXNpbmcgYSBnbGliLXNhbmN0aW9uZWQgd2F5IG9mIGNoZWNraW5nCi13 aGV0aGVyIGEgcHJvY2VzcyB0ZXJtaW5hdGVkIGFibm9ybWFsbHkgaW5zdGVhZCBvZiBkZXBlbmRp bmcgb24KLWEgd2F5IGEgcGFydGljdWxhciBnbGliIHZlcnNpb24gaW1wbGVtZW50cy4KLQotVGhp cyBwYXRjaCBtb3ZlcyB0aGUgdHJhcHBpbmcgc3VidGVzdHMgaW50byBzdGFuZGFsb25lIHRlc3Rz IGJlY2F1c2UKLWdfdGVzdF90cmFwX3N1YnByb2Nlc3MoKSBjYW5ub3QgaGFuZGxlIG11bHRpcGxl IHN1YnRlc3RzIGluIGEgc2luZ2xlCi10ZXN0IGZ1bmN0aW9uLiBJdCBhbHNvIHJlbW92ZXMgcG9p bnRsZXNzIGNoZWNrcyBmb3IgYSByZXR1cm4gdmFsdWUgb2YKLWEgZnVuY3Rpb24gd2hpY2ggaGFz IGp1c3QgZXhpdGVkIHRoZSBwcm9jZXNzLgotCi1UaGUgc2FtZSBnb2VzIGZvciBQeXRob24gdGVz dHMgKHdpdGgKLUdfREVCVUc9ZmF0YWwtd2FybmluZ3MsZmF0YWwtY3JpdGljYWxzKSB3aGljaCBv cmlnaW5hbGx5IHdlbnQgYXMgZmFyCi1hcyBjaGVja2luZyB3aGV0aGVyIGFuZCB3aGljaCBzaWdu YWwgd2FzIHJhaXNlZC4gVGhpcyBwYXRjaCBtYWtlcyB0aGUKLVB5dGhvbiB0ZXN0cyBwYXNzaW5n IHJlZ2FyZGxlc3Mgb2YgR19ERUJVRyBzZXR0aW5nLgotCi1JbXBsZW1lbnRhdGlvbiBub3RlOiBQ eXRob24gZG9lcyBub3Qgc3VwcG9ydCBhbm5veW1vdXMgYmxvY2sgYW5kCi1jb250ZXh0IG1hbmFn ZXJzIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIGZvcmssIGhlbmNlIHRoaXMgcGF0Y2ggbW92ZXMK LXRoZSBibG9ja3MgaW50byBuYW1lZCBjYWxsYWJsZXMgdG8gYmUgZXhlY3R1dGVkIGluIGEgc3Vi cHJvY2Vzcy4KLQotSW1wbGVtZW50YXRpb24gbm90ZTogR2xpYiBwcm92aWRlcyBHX1RFU1RfU1VC UFJPQ0VTU19ERUZBVUxUIGNvbnN0YW50Ci1zaW5jZSAyLjc0LiBUaGlzIHBhdGNoIGFkZHMgYSBm YWxsYmFjayBkZWZpbml0aW9uIGluc3RlYWQgb2YKLWhhcmQtY29kaW5nIDAgbGl0ZXJhbC4KLQot UmVzb2x2ZXM6IGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MjQy MzE1MwotLS0tCi0gbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA4ICsKLSBtb2R1bGVtZC9pbmNsdWRlL3ByaXZhdGUvZ2xpYi1leHRlbnNpb25zLmggICAg fCAgIDQgKwotIG1vZHVsZW1kL2luY2x1ZGUvcHJpdmF0ZS90ZXN0LXV0aWxzLmggICAgICAgICB8 ICAgMSArCi0gbW9kdWxlbWQvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKLSBtb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2Jhc2UucHkgICAgICAgICAgfCAg MjUgKysrCi0gbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9kZWZhdWx0cy5weSAgICAgIHwg IDMxICsrLQotIG1vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvZGVwZW5kZW5jaWVzLnB5ICB8 ICAyNiArKy0KLSBtb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3Byb2ZpbGUucHkgICAgICAg fCAgMjEgKy0KLSBtb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3NlcnZpY2VsZXZlbC5weSAg fCAgMjEgKy0KLSAuLi4vdGVzdHMvTW9kdWxlbWRUZXN0cy90cmFuc2xhdGlvbmVudHJ5LnB5ICAg fCAgMjEgKy0KLSBtb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWNvbW1vbi5jICAgICAgICAg fCAgNjggKysrLS0tCi0gLi4uL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtY29tcG9uZW50LW1vZHVsZS5j ICAgIHwgIDgyICsrKystLS0KLSBtb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWRlZmF1bHRz LXYxLmMgICAgfCAgODcgKysrKy0tLQotIG1vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtZGVm YXVsdHMuYyAgICAgICB8ICA3OSArKysrLS0tCi0gbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVt ZC1kZXBlbmRlbmNpZXMuYyAgIHwgMjEyICsrKysrKysrKysrKysrLS0tLQotIG1vZHVsZW1kL3Rl c3RzL3Rlc3QtbW9kdWxlbWQtbW9kdWxlLmMgICAgICAgICB8ICA3MiArKysrLS0KLSBtb2R1bGVt ZC90ZXN0cy90ZXN0LW1vZHVsZW1kLW9ic29sZXRlcy5jICAgICAgfCAgNzkgKysrKy0tLQotIG1v ZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtcHJvZmlsZS5jICAgICAgICB8IDEwNSArKysrKyst LS0KLSBtb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLXNlcnZpY2UtbGV2ZWwuYyAgfCAxMTcg KysrKysrLS0tLQotIC4uLi90ZXN0cy90ZXN0LW1vZHVsZW1kLXRyYW5zbGF0aW9uLWVudHJ5LmMg ICB8IDExMyArKysrKystLS0tCi0gbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC10cmFuc2xh dGlvbi5jICAgIHwgMTA4ICsrKysrLS0tLQotIDIxIGZpbGVzIGNoYW5nZWQsIDg3MyBpbnNlcnRp b25zKCspLCA0MDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21l c29uLmJ1aWxkCi1pbmRleCBmMjhlNDEwLi5kZjZlNWFlIDEwMDY0NAotLS0tIGEvbWVzb24uYnVp bGQKLSsrKyBiL21lc29uLmJ1aWxkCi1AQCAtMTI4LDYgKzEyOCwxNCBAQCBoYXNfZ19zcGF3bl9j aGVja193YWl0X3N0YXR1cyA9IGNjLmhhc19mdW5jdGlvbigKLSAgICAgJ2dfc3Bhd25fY2hlY2tf d2FpdF9zdGF0dXMnLAotICAgICBkZXBlbmRlbmNpZXMgOiBbIGdsaWIgXSkKLSAKLSsjIENoZWNr IHdoZXRoZXIgZ2xpYjIgaGFzIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQgZW51bSBtZW1iZXIu Ci0raGFzX2dfdGVzdF9zdWJwcm9jZXNzX2RlZmF1bHQgPSBjYy5jb21waWxlcygKLSsgICAgJycn I2luY2x1ZGUgPGdsaWIuaD4KLSsgICAgaW50IGZvbyA9IEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFV TFQ7Ci0rICAgICcnJywKLSsgICAgZGVwZW5kZW5jaWVzIDogWyBnbGliIF0sCi0rICAgIG5hbWUg OiAnR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCcpCi0rCi0gd2l0aF9weTMgPSBnZXRfb3B0aW9u KCd3aXRoX3B5MycpCi0gaWYgd2l0aF9weTMKLSAgICAgaWYgZ2V0X29wdGlvbignc2tpcF9pbnRy b3NwZWN0aW9uJykKLWRpZmYgLS1naXQgYS9tb2R1bGVtZC9pbmNsdWRlL3ByaXZhdGUvZ2xpYi1l eHRlbnNpb25zLmggYi9tb2R1bGVtZC9pbmNsdWRlL3ByaXZhdGUvZ2xpYi1leHRlbnNpb25zLmgK LWluZGV4IDI5ZTljODQuLjAwMDgxYmUgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVtZC9pbmNsdWRlL3By aXZhdGUvZ2xpYi1leHRlbnNpb25zLmgKLSsrKyBiL21vZHVsZW1kL2luY2x1ZGUvcHJpdmF0ZS9n bGliLWV4dGVuc2lvbnMuaAotQEAgLTIzLDYgKzIzLDEwIEBACi0gR19ERUZJTkVfQVVUT1BUUl9D TEVBTlVQX0ZVTkMgKEdEYXRlLCBnX2RhdGVfZnJlZSkKLSAjZW5kaWYKLSAKLSsvKiBHX1RFU1Rf U1VCUFJPQ0VTU19ERUZBVUxUIHdhcyBhZGRlZCBpbiBHbGliIDIuNzQuICovCi0rI2lmbmRlZiBI QVZFX0dfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQKLSsjZGVmaW5lIEdfVEVTVF9TVUJQUk9DRVNT X0RFRkFVTFQgMAotKyNlbmRpZgotIAotICNpZm5kZWYgSEFWRV9FWFRFTkRfQU5EX1NURUFMCi0g Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlbWQvaW5jbHVkZS9wcml2YXRlL3Rlc3QtdXRpbHMuaCBiL21v ZHVsZW1kL2luY2x1ZGUvcHJpdmF0ZS90ZXN0LXV0aWxzLmgKLWluZGV4IDI2NDNjYTEuLjMyMGNm OTkgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVtZC9pbmNsdWRlL3ByaXZhdGUvdGVzdC11dGlscy5oCi0r KysgYi9tb2R1bGVtZC9pbmNsdWRlL3ByaXZhdGUvdGVzdC11dGlscy5oCi1AQCAtMTYsNiArMTYs NyBAQAotICNpbmNsdWRlIDxnbGliLmg+Ci0gI2luY2x1ZGUgPGxvY2FsZS5oPgotICNpbmNsdWRl IDx5YW1sLmg+Ci0rI2luY2x1ZGUgImdsaWItZXh0ZW5zaW9ucy5oIgotIAotIEdfQkVHSU5fREVD TFMKLSAKLWRpZmYgLS1naXQgYS9tb2R1bGVtZC9tZXNvbi5idWlsZCBiL21vZHVsZW1kL21lc29u LmJ1aWxkCi1pbmRleCAxYzc1MDAyLi5lNDFiY2M1IDEwMDY0NAotLS0tIGEvbW9kdWxlbWQvbWVz b24uYnVpbGQKLSsrKyBiL21vZHVsZW1kL21lc29uLmJ1aWxkCi1AQCAtMTQ1LDYgKzE0NSw3IEBA IGNkYXRhLnNldCgnSEFWRV9SUE1JTycsIHJwbS5mb3VuZCgpKQotIGNkYXRhLnNldCgnSEFWRV9H REFURV9BVVRPUFRSJywgaGFzX2dkYXRlX2F1dG9wdHIpCi0gY2RhdGEuc2V0KCdIQVZFX0VYVEVO RF9BTkRfU1RFQUwnLCBoYXNfZXh0ZW5kX2FuZF9zdGVhbCkKLSBjZGF0YS5zZXQoJ0hBVkVfR19T UEFXTl9DSEVDS19XQUlUX1NUQVRVUycsIGhhc19nX3NwYXduX2NoZWNrX3dhaXRfc3RhdHVzKQot K2NkYXRhLnNldCgnSEFWRV9HX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUJywgaGFzX2dfdGVzdF9z dWJwcm9jZXNzX2RlZmF1bHQpCi0gY2RhdGEuc2V0KCdIQVZFX09WRVJGTE9XRURfQlVJTERPUkRF UicsIGFjY2VwdF9vdmVyZmxvd2VkX2J1aWxkb3JkZXIpCi0gY29uZmlndXJlX2ZpbGUoCi0gICBv dXRwdXQgOiAnY29uZmlnLmgnLAotZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1k VGVzdHMvYmFzZS5weSBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvYmFzZS5weQotaW5k ZXggMWI0NjQ3MC4uNTVhYzc0MiAxMDA2NDQKLS0tLSBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1k VGVzdHMvYmFzZS5weQotKysrIGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9iYXNlLnB5 Ci1AQCAtNTIsNiArNTIsMjEgQEAgY2xhc3MgVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgot ICAgICAgICAgZWxpZiBzZWxmLl9jYXVnaHRfc2lnbmFsIGFuZCBub3QgZXhwZWN0X3NpZ25hbDoK LSAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiU2lnbmFsIGNhdWdodCBpbiBub24t d2FybmluZyBzdGF0ZSIpCi0gCi0rICAgIGRlZiBhc3NlcnRQcm9jZXNzRmFpbHVyZShzZWxmLCBj YWxsYWJsZSwgKmFyZ3MpOgotKyAgICAgICAgIiIiQ2FsbHMgdGhlIGNhbGxhYmxlIGluIGEgc3Vi cHJvY2VzcyBhbmQgY2hlY2tzIHdoZXRoZXIgdGhlIHByb2Nlc3Mgd2FzCi0rICAgICAgICBraWxs ZWQgd2l0aCBhIHNpZ25hbCBkZXBlbmRpbmcgb24gR2xpYiB3YXJuaW5nIGZhdGFsaXR5LiIiIgot KyAgICAgICAgcGlkID0gb3MuZm9yaygpCi0rICAgICAgICBpZiBwaWQgPT0gMDoKLSsgICAgICAg ICAgICBjYWxsYWJsZSgqYXJncykKLSsgICAgICAgICAgICBvcy5fZXhpdCgwKQotKyAgICAgICAg Xywgc3RhdHVzID0gb3Mud2FpdHBpZChwaWQsIDApCi0rICAgICAgICBpZiBzZWxmLndhcm5pbmdz X2ZhdGFsOgotKyAgICAgICAgICAgIGlmIG5vdCBvcy5XSUZTSUdOQUxFRChzdGF0dXMpOgotKyAg ICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiQ2hpbGQgcHJvY2VzcyB3YXMgbm90 IGFib3J0ZWQiKQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAgICBpZiBvcy5XSUZTSUdOQUxF RChzdGF0dXMpOgotKyAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiQ2hpbGQg cHJvY2VzcyB3YXMgdW5leHBlY3RlZGx5IGFib3J0ZWQiKQotKwotICAgICBAcHJvcGVydHkKLSAg ICAgZGVmIHdhcm5pbmdzX2ZhdGFsKHNlbGYpOgotICAgICAgICAgZ2RlYnVnID0gb3MuZ2V0ZW52 KCJHX0RFQlVHIiwgIiIpLnNwbGl0KCIsIikKLUBAIC02NywzICs4MiwxMyBAQCBjbGFzcyBUZXN0 QmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICAgICAgcmV0dXJuIHN1cGVyKFRlc3RC YXNlLCBzZWxmKS5hc3NlcnRSYWlzZXNSZWdleCgqYXJncywgKiprd2FyZ3MpCi0gICAgICAgICBl eGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXNzZXJ0UmFp c2VzUmVnZXhwKCphcmdzLCAqKmt3YXJncykKLSsKLSsgICAgZGVmIGFzc2VydFJhaXNlc1JlZ2V4 T3JEaWVzKHNlbGYsIGNhbGxhYmxlLCAqYXJncywgKiprd2FyZ3MpOgotKyAgICAgICAgIiIiQ2hl Y2tzIHRoYXQgdGhlIGNhbGxhYmxlIHRlcm1pbmF0ZXMgYSBwcm9jZXNzIGlmIEdsaWIgd2Fybmlu Z3MgYXJlCi0rICAgICAgICBmYXRhbC4gT3RoZXJ3aXNlLCB0aGF0IHRoZSBjYWxsYWJsZSByYWlz ZWQgYSBnaXZlbiBleGNlcHRpb24gdHlwZSB3aXRoCi0rICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUg bWF0Y2hpbmcgYSByZWd1bGFyIGV4cHJlc3Npb24uIiIiCi0rICAgICAgICBpZiBzZWxmLndhcm5p bmdzX2ZhdGFsOgotKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoY2FsbGFi bGUpCi0rICAgICAgICBlbHNlOgotKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNS ZWdleCgqYXJncywgKiprd2FyZ3MpOgotKyAgICAgICAgICAgICAgICBjYWxsYWJsZSgpCi1kaWZm IC0tZ2l0IGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9kZWZhdWx0cy5weSBiL21vZHVs ZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvZGVmYXVsdHMucHkKLWluZGV4IGMxNjJiZjMuLjNhMWI5 ZmUgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2RlZmF1bHRzLnB5 Ci0rKysgYi9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2RlZmF1bHRzLnB5Ci1AQCAtMjks NiArMjksMjAgQEAgZXhjZXB0IEltcG9ydEVycm9yOgotIGZyb20gYmFzZSBpbXBvcnQgVGVzdEJh c2UKLSAKLSAKLStkZWYgX3plcm9fbWR2ZXJzaW9uKCk6Ci0rICAgIGRlZnMgPSBNb2R1bGVtZC5E ZWZhdWx0cy5uZXcoMCwgImZvbyIpCi0rCi0rCi0rZGVmIF91bmtub3duX21kdmVyc2lvbigpOgot KyAgICBkZWZzID0gTW9kdWxlbWQuRGVmYXVsdHMubmV3KAotKyAgICAgICAgTW9kdWxlbWQuRGVm YXVsdHNWZXJzaW9uRW51bS5MQVRFU1QgKyAxLCAiZm9vIgotKyAgICApCi0rCi0rCi0rZGVmIF9z ZXRfbW9kdWxlX25hbWVfdG9fbm9uZShkZWZzKToKLSsgICAgZGVmcy5wcm9wcy5tb2R1bGVfbmFt ZSA9IE5vbmUKLSsKLSsKLSBjbGFzcyBUZXN0RGVmYXVsdHMoVGVzdEJhc2UpOgotICAgICBkZWYg dGVzdF9jb25zdHJ1Y3RvcnMoc2VsZik6Ci0gICAgICAgICAjIFRlc3QgdGhhdCB0aGUgbmV3KCkg ZnVuY3Rpb24gd29ya3MKLUBAIC00OCwxNiArNjIsMTQgQEAgY2xhc3MgVGVzdERlZmF1bHRzKFRl c3RCYXNlKToKLSAgICAgICAgICAgICBNb2R1bGVtZC5EZWZhdWx0cygpCi0gCi0gICAgICAgICAj IFRlc3Qgd2l0aCBhIHplcm8gbWR2ZXJzaW9uCi0tICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFp c2VzUmVnZXgoVHlwZUVycm9yLCAiY29uc3RydWN0b3IgcmV0dXJuZWQgTlVMTCIpOgotLSAgICAg ICAgICAgIHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKCk6Ci0tICAgICAgICAgICAgICAgIGRlZnMg PSBNb2R1bGVtZC5EZWZhdWx0cy5uZXcoMCwgImZvbyIpCi0rICAgICAgICBzZWxmLmFzc2VydFJh aXNlc1JlZ2V4T3JEaWVzKAotKyAgICAgICAgICAgIF96ZXJvX21kdmVyc2lvbiwgVHlwZUVycm9y LCAiY29uc3RydWN0b3IgcmV0dXJuZWQgTlVMTCIKLSsgICAgICAgICkKLSAKLSAgICAgICAgICMg VGVzdCB3aXRoIGFuIHVua25vd24gbWR2ZXJzaW9uCi0tICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0 UmFpc2VzUmVnZXgoVHlwZUVycm9yLCAiY29uc3RydWN0b3IgcmV0dXJuZWQgTlVMTCIpOgotLSAg ICAgICAgICAgIHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKCk6Ci0tICAgICAgICAgICAgICAgIGRl ZnMgPSBNb2R1bGVtZC5EZWZhdWx0cy5uZXcoCi0tICAgICAgICAgICAgICAgICAgICBNb2R1bGVt ZC5EZWZhdWx0c1ZlcnNpb25FbnVtLkxBVEVTVCArIDEsICJmb28iCi0tICAgICAgICAgICAgICAg ICkKLSsgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXhPckRpZXMoCi0rICAgICAgICAgICAg X3Vua25vd25fbWR2ZXJzaW9uLCBUeXBlRXJyb3IsICJjb25zdHJ1Y3RvciByZXR1cm5lZCBOVUxM IgotKyAgICAgICAgKQotIAotICAgICAgICAgIyBUZXN0IHdpdGggbm8gbmFtZQotICAgICAgICAg d2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KAotQEAgLTk5LDggKzExMSw3IEBAIGNsYXNzIFRl c3REZWZhdWx0cyhUZXN0QmFzZSk6Ci0gICAgICAgICBhc3NlcnQgZGVmcy5nZXRfbW9kdWxlX25h bWUoKSA9PSAiZm9vIgotIAotICAgICAgICAgIyBFbnN1cmUgd2UgY2Fubm90IHNldCB0aGUgbW9k dWxlX25hbWUKLS0gICAgICAgIHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKCk6Ci0tICAgICAgICAg ICAgZGVmcy5wcm9wcy5tb2R1bGVfbmFtZSA9IE5vbmUKLSsgICAgICAgIHNlbGYuYXNzZXJ0UHJv Y2Vzc0ZhaWx1cmUoX3NldF9tb2R1bGVfbmFtZV90b19ub25lLCBkZWZzKQotIAotICAgICBkZWYg dGVzdF9tb2RpZmllZChzZWxmKToKLSAgICAgICAgIGRlZnMgPSBNb2R1bGVtZC5EZWZhdWx0cy5u ZXcoCi1kaWZmIC0tZ2l0IGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9kZXBlbmRlbmNp ZXMucHkgYi9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2RlcGVuZGVuY2llcy5weQotaW5k ZXggYTE5MDEzNC4uYzc3NmUyMyAxMDA2NDQKLS0tLSBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1k VGVzdHMvZGVwZW5kZW5jaWVzLnB5Ci0rKysgYi9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3Rz L2RlcGVuZGVuY2llcy5weQotQEAgLTI4LDM4ICsyOCw0MCBAQCBleGNlcHQgSW1wb3J0RXJyb3I6 Ci0gZnJvbSBiYXNlIGltcG9ydCBUZXN0QmFzZQotIAotIAotK2RlZiBfZ2V0X2J1aWxkdGltZV9z dHJlYW1zKG1vZHVsZW1kX2RlcGVuZGVjaWVzLCBzdHJlYW1fbmFtZSk6Ci0rICAgIG1vZHVsZW1k X2RlcGVuZGVjaWVzLmdldF9idWlsZHRpbWVfc3RyZWFtcyhzdHJlYW1fbmFtZSkKLSsKLSsKLStk ZWYgX2dldF9ydW50aW1lX3N0cmVhbXMobW9kdWxlbWRfZGVwZW5kZWNpZXMsIHN0cmVhbV9uYW1l KToKLSsgICAgbW9kdWxlbWRfZGVwZW5kZWNpZXMuZ2V0X3J1bnRpbWVfc3RyZWFtcyhzdHJlYW1f bmFtZSkKLSsKLSsKLSBjbGFzcyBUZXN0RGVwZW5kZW5jaWVzKFRlc3RCYXNlKToKLSAgICAgZGVm IHRlc3RfY29uc3RydWN0b3Ioc2VsZik6Ci0gICAgICAgICAjIFRlc3QgdGhhdCB0aGUgbmV3KCkg ZnVuY3Rpb24gd29ya3MKLSAgICAgICAgIGQgPSBNb2R1bGVtZC5EZXBlbmRlbmNpZXMubmV3KCkK LSAgICAgICAgIGFzc2VydCBkCi0gICAgICAgICBhc3NlcnQgZC5nZXRfYnVpbGR0aW1lX21vZHVs ZXMoKSA9PSBbXQotLSAgICAgICAgd2l0aCBzZWxmLmV4cGVjdF9zaWduYWwob25seV9vbl9mYXRh bF93YXJuaW5ncz1UcnVlKToKLS0gICAgICAgICAgICBkLmdldF9idWlsZHRpbWVfc3RyZWFtcygi Zm9vYmFyMTIzIikKLSsgICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoX2dldF9idWls ZHRpbWVfc3RyZWFtcywgZCwgImZvb2JhcjEyMyIpCi0gICAgICAgICBhc3NlcnQgZC5nZXRfcnVu dGltZV9tb2R1bGVzKCkgPT0gW10KLS0gICAgICAgIHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKG9u bHlfb25fZmF0YWxfd2FybmluZ3M9VHJ1ZSk6Ci0tICAgICAgICAgICAgZC5nZXRfcnVudGltZV9z dHJlYW1zKCJmb29iYXIxMjMiKQotKyAgICAgICAgc2VsZi5hc3NlcnRQcm9jZXNzRmFpbHVyZShf Z2V0X3J1bnRpbWVfc3RyZWFtcywgZCwgImZvb2JhcjEyMyIpCi0gCi0gICAgICAgICAjIFRlc3Qg dGhhdCBrZXl3b3JkIG5hbWUgaXMgYWNjZXB0ZWQKLSAgICAgICAgIGQgPSBNb2R1bGVtZC5EZXBl bmRlbmNpZXMoKQotICAgICAgICAgYXNzZXJ0IGQKLSAgICAgICAgIGFzc2VydCBkLmdldF9idWls ZHRpbWVfbW9kdWxlcygpID09IFtdCi0tICAgICAgICB3aXRoIHNlbGYuZXhwZWN0X3NpZ25hbChv bmx5X29uX2ZhdGFsX3dhcm5pbmdzPVRydWUpOgotLSAgICAgICAgICAgIGQuZ2V0X2J1aWxkdGlt ZV9zdHJlYW1zKCJmb29iYXIxMjMiKQotKyAgICAgICAgc2VsZi5hc3NlcnRQcm9jZXNzRmFpbHVy ZShfZ2V0X2J1aWxkdGltZV9zdHJlYW1zLCBkLCAiZm9vYmFyMTIzIikKLSAgICAgICAgIGFzc2Vy dCBkLmdldF9ydW50aW1lX21vZHVsZXMoKSA9PSBbXQotLSAgICAgICAgd2l0aCBzZWxmLmV4cGVj dF9zaWduYWwob25seV9vbl9mYXRhbF93YXJuaW5ncz1UcnVlKToKLS0gICAgICAgICAgICBkLmdl dF9ydW50aW1lX3N0cmVhbXMoImZvb2JhcjEyMyIpCi0rICAgICAgICBzZWxmLmFzc2VydFByb2Nl c3NGYWlsdXJlKF9nZXRfcnVudGltZV9zdHJlYW1zLCBkLCAiZm9vYmFyMTIzIikKLSAKLSAgICAg ZGVmIHRlc3RfY29weShzZWxmKToKLSAgICAgICAgIGRfb3JpZyA9IE1vZHVsZW1kLkRlcGVuZGVu Y2llcygpCi0gICAgICAgICBkID0gZF9vcmlnLmNvcHkoKQotICAgICAgICAgYXNzZXJ0IGQKLSAg ICAgICAgIGFzc2VydCBkLmdldF9idWlsZHRpbWVfbW9kdWxlcygpID09IFtdCi0tICAgICAgICB3 aXRoIHNlbGYuZXhwZWN0X3NpZ25hbChvbmx5X29uX2ZhdGFsX3dhcm5pbmdzPVRydWUpOgotLSAg ICAgICAgICAgIGQuZ2V0X2J1aWxkdGltZV9zdHJlYW1zKCJmb29iYXIxMjMiKQotKyAgICAgICAg c2VsZi5hc3NlcnRQcm9jZXNzRmFpbHVyZShfZ2V0X2J1aWxkdGltZV9zdHJlYW1zLCBkLCAiZm9v YmFyMTIzIikKLSAgICAgICAgIGFzc2VydCBkLmdldF9ydW50aW1lX21vZHVsZXMoKSA9PSBbXQot LSAgICAgICAgd2l0aCBzZWxmLmV4cGVjdF9zaWduYWwob25seV9vbl9mYXRhbF93YXJuaW5ncz1U cnVlKToKLS0gICAgICAgICAgICBkLmdldF9ydW50aW1lX3N0cmVhbXMoImZvb2JhcjEyMyIpCi0r ICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9nZXRfcnVudGltZV9zdHJlYW1zLCBk LCAiZm9vYmFyMTIzIikKLSAKLSAgICAgICAgIGRfb3JpZy5hZGRfYnVpbGR0aW1lX3N0cmVhbSgi YnVpbGRtb2QxIiwgInN0cmVhbTIiKQotICAgICAgICAgZF9vcmlnLmFkZF9idWlsZHRpbWVfc3Ry ZWFtKCJidWlsZG1vZDEiLCAic3RyZWFtMSIpCi1kaWZmIC0tZ2l0IGEvbW9kdWxlbWQvdGVzdHMv TW9kdWxlbWRUZXN0cy9wcm9maWxlLnB5IGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9w cm9maWxlLnB5Ci1pbmRleCAxZGU1N2M2Li43NjVjNTdkIDEwMDY0NAotLS0tIGEvbW9kdWxlbWQv dGVzdHMvTW9kdWxlbWRUZXN0cy9wcm9maWxlLnB5Ci0rKysgYi9tb2R1bGVtZC90ZXN0cy9Nb2R1 bGVtZFRlc3RzL3Byb2ZpbGUucHkKLUBAIC0yOCw2ICsyOCwxOCBAQCBleGNlcHQgSW1wb3J0RXJy b3I6Ci0gZnJvbSBiYXNlIGltcG9ydCBUZXN0QmFzZQotIAotIAotK2RlZiBjb25zdHJ1Y3Rfd2l0 aG91dF9hcmd1bWVudHMoKToKLSsgICAgTW9kdWxlbWQuUHJvZmlsZSgpCi0rCi0rCi0rZGVmIGNv bnN0cnVjdF93aXRoX25vbmVfbmFtZSgpOgotKyAgICBNb2R1bGVtZC5Qcm9maWxlKG5hbWU9Tm9u ZSkKLSsKLSsKLStkZWYgX3NldF9wcm9wc19uYW1lKG1vZHVsZW1kX3Byb2ZpbGUsIHZhbHVlKToK LSsgICAgbW9kdWxlbWRfcHJvZmlsZS5wcm9wcy5uYW1lID0gdmFsdWUKLSsKLSsKLSBjbGFzcyBU ZXN0UHJvZmlsZShUZXN0QmFzZSk6Ci0gICAgIGRlZiB0ZXN0X2NvbnN0cnVjdG9yKHNlbGYpOgot ICAgICAgICAgIyBUZXN0IHRoYXQgdGhlIG5ldygpIGZ1bmN0aW9uIHdvcmtzCi1AQCAtNTEsMTEg KzYzLDkgQEAgY2xhc3MgVGVzdFByb2ZpbGUoVGVzdEJhc2UpOgotICAgICAgICAgICAgIE1vZHVs ZW1kLlByb2ZpbGUubmV3KE5vbmUpCi0gICAgICAgICBhc3NlcnQgImRvZXMgbm90IGFsbG93IE5v bmUgYXMgYSB2YWx1ZSIgaW4gY20uZXhjZXB0aW9uLl9fc3RyX18oKQotIAotLSAgICAgICAgd2l0 aCBzZWxmLmV4cGVjdF9zaWduYWwoKToKLS0gICAgICAgICAgICBNb2R1bGVtZC5Qcm9maWxlKCkK LSsgICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoY29uc3RydWN0X3dpdGhvdXRfYXJn dW1lbnRzKQotIAotLSAgICAgICAgd2l0aCBzZWxmLmV4cGVjdF9zaWduYWwoKToKLS0gICAgICAg ICAgICBNb2R1bGVtZC5Qcm9maWxlKG5hbWU9Tm9uZSkKLSsgICAgICAgIHNlbGYuYXNzZXJ0UHJv Y2Vzc0ZhaWx1cmUoY29uc3RydWN0X3dpdGhfbm9uZV9uYW1lKQotIAotICAgICBkZWYgdGVzdF9j b3B5KHNlbGYpOgotICAgICAgICAgcF9vcmlnID0gTW9kdWxlbWQuUHJvZmlsZShuYW1lPSJ0ZXN0 cHJvZmlsZSIpCi1AQCAtODQsOCArOTQsNyBAQCBjbGFzcyBUZXN0UHJvZmlsZShUZXN0QmFzZSk6 Ci0gICAgICAgICBhc3NlcnQgcC5nZXRfbmFtZSgpID09ICJ0ZXN0cHJvZmlsZSIKLSAgICAgICAg IGFzc2VydCBwLnByb3BzLm5hbWUgPT0gInRlc3Rwcm9maWxlIgotIAotLSAgICAgICAgd2l0aCBz ZWxmLmV4cGVjdF9zaWduYWwoKToKLS0gICAgICAgICAgICBwLnByb3BzLm5hbWUgPSAibm90YWRy aWxsIgotKyAgICAgICAgc2VsZi5hc3NlcnRQcm9jZXNzRmFpbHVyZShfc2V0X3Byb3BzX25hbWUs IHAsICJub3RhZHJpbGwiKQotIAotICAgICBkZWYgdGVzdF9nZXRfc2V0X2Rlc2NyaXB0aW9uKHNl bGYpOgotICAgICAgICAgcCA9IE1vZHVsZW1kLlByb2ZpbGUobmFtZT0idGVzdHByb2ZpbGUiKQot ZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvc2VydmljZWxldmVsLnB5 IGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9zZXJ2aWNlbGV2ZWwucHkKLWluZGV4IGYy NDRiMDEuLmZjOWM2NDggMTAwNjQ0Ci0tLS0gYS9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3Rz L3NlcnZpY2VsZXZlbC5weQotKysrIGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9zZXJ2 aWNlbGV2ZWwucHkKLUBAIC0zMCw2ICszMCwxOCBAQCBmcm9tIGJhc2UgaW1wb3J0IFRlc3RCYXNl Ci0gaW1wb3J0IGRhdGV0aW1lCi0gCi0gCi0rZGVmIF9jb25zdHJ1Y3Rfd2l0aG91dF9hcmd1bWVu dHMoKToKLSsgICAgTW9kdWxlbWQuU2VydmljZUxldmVsKCkKLSsKLSsKLStkZWYgX2NvbnN0cnVj dF93aXRoX25vbmVfbmFtZSgpOgotKyAgICBNb2R1bGVtZC5TZXJ2aWNlTGV2ZWwobmFtZT1Ob25l KQotKwotKwotK2RlZiBfc2V0X3Byb3BzX25hbWUobW9kdWxlbWRfc2VydmljZWxldmVsLCB2YWx1 ZSk6Ci0rICAgIG1vZHVsZW1kX3NlcnZpY2VsZXZlbC5wcm9wcy5uYW1lID0gdmFsdWUKLSsKLSsK LSBjbGFzcyBUZXN0U2VydmljZUxldmVsKFRlc3RCYXNlKToKLSAgICAgZGVmIHRlc3RfY29uc3Ry dWN0b3JzKHNlbGYpOgotICAgICAgICAgIyBUZXN0IHRoYXQgdGhlIG5ldygpIGZ1bmN0aW9uIHdv cmtzCi1AQCAtNTYsMTIgKzY4LDEwIEBAIGNsYXNzIFRlc3RTZXJ2aWNlTGV2ZWwoVGVzdEJhc2Up OgotICAgICAgICAgICAgIGFzc2VydCAiZG9lcyBub3QgYWxsb3cgTm9uZSBhcyBhIHZhbHVlIiBp biBlLl9fc3RyX18oKQotIAotICAgICAgICAgIyBUZXN0IHRoYXQgd2UgZmFpbCBpZiBvYmplY3Qg aXMgaW5zdGFudGlhdGVkIHdpdGhvdXQgYSBuYW1lCi0tICAgICAgICB3aXRoIHNlbGYuZXhwZWN0 X3NpZ25hbCgpOgotLSAgICAgICAgICAgIHNsID0gTW9kdWxlbWQuU2VydmljZUxldmVsKCkKLSsg ICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoX2NvbnN0cnVjdF93aXRob3V0X2FyZ3Vt ZW50cykKLSAKLSAgICAgICAgICMgVGVzdCB0aGF0IHdlIGZhaWwgaWYgb2JqZWN0IGlzIGluc3Rh bnRpYXRlZCB3aXRoIGEgTm9uZSBuYW1lCi0tICAgICAgICB3aXRoIHNlbGYuZXhwZWN0X3NpZ25h bCgpOgotLSAgICAgICAgICAgIHNsID0gTW9kdWxlbWQuU2VydmljZUxldmVsKG5hbWU9Tm9uZSkK LSsgICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoX2NvbnN0cnVjdF93aXRoX25vbmVf bmFtZSkKLSAKLSAgICAgZGVmIHRlc3RfY29weShzZWxmKToKLSAgICAgICAgIHNsID0gTW9kdWxl bWQuU2VydmljZUxldmVsLm5ldygiZm9vIikKLUBAIC05Myw4ICsxMDMsNyBAQCBjbGFzcyBUZXN0 U2VydmljZUxldmVsKFRlc3RCYXNlKToKLSAgICAgICAgIGFzc2VydCBzbC5wcm9wcy5uYW1lID09 ICJmb28iCi0gCi0gICAgICAgICAjIFRoaXMgcHJvcGVydHkgaXMgbm90IHdyaXRhYmxlLCBtYWtl IHN1cmUgaXQgZmFpbHMgdG8gYXR0ZW1wdCBpdAotLSAgICAgICAgd2l0aCBzZWxmLmV4cGVjdF9z aWduYWwoKToKLS0gICAgICAgICAgICBzbC5wcm9wcy5uYW1lID0gImJhciIKLSsgICAgICAgIHNl bGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoX3NldF9wcm9wc19uYW1lLCBzbCwgImJhciIpCi0gCi0g ICAgIGRlZiB0ZXN0X2dldF9zZXRfZW9sKHNlbGYpOgotICAgICAgICAgc2wgPSBNb2R1bGVtZC5T ZXJ2aWNlTGV2ZWwubmV3KCJmb28iKQotZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL01vZHVs ZW1kVGVzdHMvdHJhbnNsYXRpb25lbnRyeS5weSBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVz dHMvdHJhbnNsYXRpb25lbnRyeS5weQotaW5kZXggYzUzZTY0Yi4uOWZjZTQ0MyAxMDA2NDQKLS0t LSBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvdHJhbnNsYXRpb25lbnRyeS5weQotKysr IGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy90cmFuc2xhdGlvbmVudHJ5LnB5Ci1AQCAt MjksNiArMjksMTggQEAgZXhjZXB0IEltcG9ydEVycm9yOgotIGZyb20gYmFzZSBpbXBvcnQgVGVz dEJhc2UKLSAKLSAKLStkZWYgX2luc3RhbnRpYXRlX3dpdGhvdXRfbG9jYWxlKCk6Ci0rICAgIE1v ZHVsZW1kLlRyYW5zbGF0aW9uRW50cnkoKQotKwotKwotK2RlZiBfaW5zdGFudGlhdGVfd2l0aF9u b25lX2xvY2FsKCk6Ci0rICAgIE1vZHVsZW1kLlRyYW5zbGF0aW9uRW50cnkobG9jYWxlPU5vbmUp Ci0rCi0rCi0rZGVmIF9zZXRfbG9jYWxlKHRlKToKLSsgICAgdGUucHJvcHMubG9jYWxlID0gImVu X0dCIgotKwotKwotIGNsYXNzIFRlc3RUcmFuc2xhdGlvbkVudHJ5KFRlc3RCYXNlKToKLSAgICAg ZGVmIHRlc3RfY29uc3RydWN0b3JzKHNlbGYpOgotICAgICAgICAgIyBUZXN0IHRoYXQgdGhlIG5l dygpIGZ1bmN0aW9uIHdvcmtzCi1AQCAtMTE4LDEyICsxMzAsMTAgQEAgY2xhc3MgVGVzdFRyYW5z bGF0aW9uRW50cnkoVGVzdEJhc2UpOgotICAgICAgICAgICAgIGFzc2VydCAiZG9lcyBub3QgYWxs b3cgTm9uZSBhcyBhIHZhbHVlIiBpbiBlLl9fc3RyX18oKQotIAotICAgICAgICAgIyBUZXN0IHRo YXQgd2UgZmFpbCBpZiBvYmplY3QgaXMgaW5zdGFudGlhdGVkIHdpdGhvdXQgYSBsb2NhbGUKLS0g ICAgICAgIHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKCk6Ci0tICAgICAgICAgICAgTW9kdWxlbWQu VHJhbnNsYXRpb25FbnRyeSgpCi0rICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9p bnN0YW50aWF0ZV93aXRob3V0X2xvY2FsZSkKLSAKLSAgICAgICAgICMgVGVzdCB0aGF0IHdlIGZh aWwgaWYgb2JqZWN0IGlzIGluc3RhbnRpYXRlZCB3aXRoIGEgTm9uZSBsb2NhbGUKLS0gICAgICAg IHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKCk6Ci0tICAgICAgICAgICAgTW9kdWxlbWQuVHJhbnNs YXRpb25FbnRyeShsb2NhbGU9Tm9uZSkKLSsgICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1 cmUoX2luc3RhbnRpYXRlX3dpdGhfbm9uZV9sb2NhbCkKLSAKLSAgICAgZGVmIHRlc3RfY29weShz ZWxmKToKLSAgICAgICAgIHRlX29yaWcgPSBNb2R1bGVtZC5UcmFuc2xhdGlvbkVudHJ5KGxvY2Fs ZT0iZW5fVVMiKQotQEAgLTE2Miw4ICsxNzIsNyBAQCBjbGFzcyBUZXN0VHJhbnNsYXRpb25FbnRy eShUZXN0QmFzZSk6Ci0gICAgICAgICBhc3NlcnQgdGUuZ2V0X2xvY2FsZSgpID09ICJlbl9VUyIK LSAgICAgICAgIGFzc2VydCB0ZS5wcm9wcy5sb2NhbGUgPT0gImVuX1VTIgotIAotLSAgICAgICAg d2l0aCBzZWxmLmV4cGVjdF9zaWduYWwoKToKLS0gICAgICAgICAgICB0ZS5wcm9wcy5sb2NhbGUg PSAiZW5fR0IiCi0rICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9zZXRfbG9jYWxl LCB0ZSkKLSAKLSAgICAgZGVmIHRlc3RfZ2V0X3NldF9zdW1tYXJ5KHNlbGYpOgotICAgICAgICAg dGUgPSBNb2R1bGVtZC5UcmFuc2xhdGlvbkVudHJ5KGxvY2FsZT0iZW5fVVMiKQotZGlmZiAtLWdp dCBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtY29tbW9uLmMgYi9tb2R1bGVtZC90ZXN0 cy90ZXN0LW1vZHVsZW1kLWNvbW1vbi5jCi1pbmRleCA5N2U0NzdmLi42ODk1ZTM0IDEwMDY0NAot LS0tIGEvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1jb21tb24uYwotKysrIGIvbW9kdWxl bWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1jb21tb24uYwotQEAgLTE0LDcgKzE0LDYgQEAKLSAjaW5j bHVkZSA8Z2xpYi5oPgotICNpbmNsdWRlIDxnbGliL2dzdGRpby5oPgotICNpbmNsdWRlIDxsb2Nh bGUuaD4KLS0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0gCi0gI2luY2x1ZGUgIm1vZHVsZW1kLmgiCi0g Ci1AQCAtODMsNyArODIsNyBAQCB0ZXN0X21vZHVsZW1kX2xvYWRfZmlsZSAodm9pZCkKLSAKLSAK LSBzdGF0aWMgdm9pZAotLXRlc3RfbW9kdWxlbWRfbG9hZF9zdHJpbmcgKHZvaWQpCi0rdGVzdF9t b2R1bGVtZF9sb2FkX3N0cmluZ19yZWd1bGFyICh2b2lkKQotIHsKLSAgIGNvbnN0IGdjaGFyICp5 YW1sX3N0cmluZyA9IE5VTEw7Ci0gICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOwot QEAgLTEyMiwxNiArMTIxLDYgQEAgdGVzdF9tb2R1bGVtZF9sb2FkX3N0cmluZyAodm9pZCkKLSAg IGdfYXNzZXJ0X25vbm51bGwgKG91dHB1dCk7Ci0gCi0gCi0tICAvKiBOVUxMIHN0cmluZyBzaG91 bGQgcmFpc2UgYW4gZXhjZXB0aW9uICovCi0tICBnX2NsZWFyX2Vycm9yICgmZXJyb3IpOwotLSAg Z19jbGVhcl9vYmplY3QgKCZpZHgpOwotLSAgbW9kdWxlbWRfdGVzdF9zaWduYWwgPSAwOwotLSAg c2lnbmFsIChTSUdUUkFQLCBtb2R1bGVtZF90ZXN0X3NpZ25hbF9oYW5kbGVyKTsKLS0gIGlkeCA9 IG1vZHVsZW1kX2xvYWRfc3RyaW5nIChOVUxMLCAmZXJyb3IpOwotLSAgZ19hc3NlcnRfY21waW50 IChtb2R1bGVtZF90ZXN0X3NpZ25hbCwgPT0sIFNJR1RSQVApOwotLSAgZ19hc3NlcnRfbnVsbCAo aWR4KTsKLS0KLS0KLSAgIC8qIEFuIGVtcHR5IHN0cmluZyBpcyB2YWxpZCBZQU1MLCBzbyBpdCBy ZXR1cm5zIGEgbm9uLU5VTEwgYnV0IGVtcHR5IGluZGV4LiAqLwotICAgZ19jbGVhcl9lcnJvciAo JmVycm9yKTsKLSAgIGdfY2xlYXJfb2JqZWN0ICgmaWR4KTsKLUBAIC0xNTEsNiArMTQwLDIyIEBA IHRlc3RfbW9kdWxlbWRfbG9hZF9zdHJpbmcgKHZvaWQpCi0gfQotIAotIAotKy8qIE5VTEwgc3Ry aW5nIHNob3VsZCByYWlzZSBhbiBleGNlcHRpb24gKi8KLStzdGF0aWMgdm9pZAotK3Rlc3RfbW9k dWxlbWRfbG9hZF9zdHJpbmdfbnVsbCAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nl c3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOwot KyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRNb2R1bGVJbmRleCkgaWR4ID0gTlVMTDsKLSsgICAg ICBpZHggPSBtb2R1bGVtZF9sb2FkX3N0cmluZyAoTlVMTCwgJmVycm9yKTsKLSsgICAgICByZXR1 cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9T VUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSt9 Ci0rCi0rCi0gc3RhdGljIHZvaWQKLSB0ZXN0X3BhY2thZ2VyX3JlYWRfZmlsZSAodm9pZCkKLSB7 Ci1AQCAtMzUzLDcgKzM1OCw3IEBAIHRlc3RfcGFja2FnZXJfcmVhZF9maWxlICh2b2lkKQotIAot IAotIHN0YXRpYyB2b2lkCi0tdGVzdF9wYWNrYWdlcl9yZWFkX3N0cmluZyAodm9pZCkKLSt0ZXN0 X3BhY2thZ2VyX3JlYWRfc3RyaW5nX3JlZ3VsYXIgKHZvaWQpCi0gewotICAgY29uc3QgZ2NoYXIg KnlhbWxfc3RyaW5nID0gTlVMTDsKLSAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7 Ci1AQCAtNTMxLDE2ICs1MzYsNiBAQCB0ZXN0X3BhY2thZ2VyX3JlYWRfc3RyaW5nICh2b2lkKQot ICAgICA9PSwKLSAgICAgInN0cmVhbW5hbWUtb3ZlcnJpZGUiKTsKLSAKLS0gIC8qIE5VTEwgc3Ry aW5nIHNob3VsZCByYWlzZSBhbiBleGNlcHRpb24gKi8KLS0gIGdfY2xlYXJfZXJyb3IgKCZlcnJv cik7Ci0tICBnX2NsZWFyX29iamVjdCAoJm9iamVjdCk7Ci0tICBtb2R1bGVtZF90ZXN0X3NpZ25h bCA9IDA7Ci0tICBzaWduYWwgKFNJR1RSQVAsIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsX2hhbmRsZXIp OwotLSAgb3R5cGUgPSBtb2R1bGVtZF9yZWFkX3BhY2thZ2VyX3N0cmluZyAoTlVMTCwgJm9iamVj dCwgJmVycm9yKTsKLS0gIGdfYXNzZXJ0X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09 LCBTSUdUUkFQKTsKLS0gIGdfYXNzZXJ0X2NtcGludCAob3R5cGUsID09LCBHX1RZUEVfSU5WQUxJ RCk7Ci0tICBnX2Fzc2VydF9udWxsIChvYmplY3QpOwotLQotICAgLyogQW4gZW1wdHkgc3RyaW5n IGlzIG5vdCBhIHZhbGlkIHBhY2thZ2VyIGZvcm1hdCAqLwotICAgZ19jbGVhcl9lcnJvciAoJmVy cm9yKTsKLSAgIGdfY2xlYXJfb2JqZWN0ICgmb2JqZWN0KTsKLUBAIC01NTksNiArNTU0LDIxIEBA IHRlc3RfcGFja2FnZXJfcmVhZF9zdHJpbmcgKHZvaWQpCi0gfQotIAotIAotKy8qIE5VTEwgc3Ry aW5nIHNob3VsZCByYWlzZSBhbiBleGNlcHRpb24gKi8KLStzdGF0aWMgdm9pZAotK3Rlc3RfcGFj a2FnZXJfcmVhZF9zdHJpbmdfbnVsbCAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nl c3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOwot KyAgICAgIGdfYXV0b3B0ciAoR09iamVjdCkgb2JqZWN0ID0gTlVMTDsKLSsgICAgICAodm9pZClt b2R1bGVtZF9yZWFkX3BhY2thZ2VyX3N0cmluZyAoTlVMTCwgJm9iamVjdCwgJmVycm9yKTsKLSsg ICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAs IEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxl ZCAoKTsKLSt9Ci0rCi0gLyoKLSAgKiBFbXB0eSBwcm9maWxlcyBhcmUgbGVnYWwuIFBhcnNlciBt aXNpbnRlcnByZXRlZCB0aGVtIGFzIGEgbGlzdCBvZiBvbmUKLSAgKiBwYWNrYWdlIHdpdGggYW4g ZW1wdHkgcGFja2FnZSBuYW1lLgotQEAgLTYxNywxMyArNjI3LDE3IEBAIG1haW4gKGludCBhcmdj LCBjaGFyICphcmd2W10pCi0gICAgICAgICAgICAgICAgICAgIHRlc3RfbW9kdWxlbWRfZ2V0X3Zl cnNpb24pOwotIAotICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2NvbW1vbi9sb2Fk X2ZpbGUiLCB0ZXN0X21vZHVsZW1kX2xvYWRfZmlsZSk7Ci0tICBnX3Rlc3RfYWRkX2Z1bmMgKCIv bW9kdWxlbWQvdjIvY29tbW9uL2xvYWRfc3RyaW5nIiwKLS0gICAgICAgICAgICAgICAgICAgdGVz dF9tb2R1bGVtZF9sb2FkX3N0cmluZyk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQv djIvY29tbW9uL2xvYWRfc3RyaW5nL3JlZ3VsYXIiLAotKyAgICAgICAgICAgICAgICAgICB0ZXN0 X21vZHVsZW1kX2xvYWRfc3RyaW5nX3JlZ3VsYXIpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21v ZHVsZW1kL3YyL2NvbW1vbi9sb2FkX3N0cmluZy9udWxsIiwKLSsgICAgICAgICAgICAgICAgICAg dGVzdF9tb2R1bGVtZF9sb2FkX3N0cmluZ19udWxsKTsKLSAKLSAgIGdfdGVzdF9hZGRfZnVuYyAo Ii9tb2R1bGVtZC92Mi9jb21tb24vcGFja2FnZXIvcmVhZF9maWxlIiwKLSAgICAgICAgICAgICAg ICAgICAgdGVzdF9wYWNrYWdlcl9yZWFkX2ZpbGUpOwotLSAgZ190ZXN0X2FkZF9mdW5jICgiL21v ZHVsZW1kL3YyL2NvbW1vbi9wYWNrYWdlci9yZWFkX3N0cmluZyIsCi0tICAgICAgICAgICAgICAg ICAgIHRlc3RfcGFja2FnZXJfcmVhZF9zdHJpbmcpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21v ZHVsZW1kL3YyL2NvbW1vbi9wYWNrYWdlci9yZWFkX3N0cmluZy9yZWd1bGFyIiwKLSsgICAgICAg ICAgICAgICAgICAgdGVzdF9wYWNrYWdlcl9yZWFkX3N0cmluZ19yZWd1bGFyKTsKLSsgIGdfdGVz dF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9jb21tb24vcGFja2FnZXIvcmVhZF9zdHJpbmcvbnVs bCIsCi0rICAgICAgICAgICAgICAgICAgIHRlc3RfcGFja2FnZXJfcmVhZF9zdHJpbmdfbnVsbCk7 Ci0gCi0gICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvY29tbW9uL2VtcHR5X3Byb2Zp bGUiLCB0ZXN0X2VtcHR5X3Byb2ZpbGUpOwotIAotZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3Rz L3Rlc3QtbW9kdWxlbWQtY29tcG9uZW50LW1vZHVsZS5jIGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1t b2R1bGVtZC1jb21wb25lbnQtbW9kdWxlLmMKLWluZGV4IDIwZTc4ODEuLjY4M2M3NzQgMTAwNjQ0 Ci0tLS0gYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWNvbXBvbmVudC1tb2R1bGUuYwot KysrIGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1jb21wb25lbnQtbW9kdWxlLmMKLUBA IC0xNCw3ICsxNCw2IEBACi0gI2luY2x1ZGUgPGdsaWIuaD4KLSAjaW5jbHVkZSA8Z2xpYi9nc3Rk aW8uaD4KLSAjaW5jbHVkZSA8bG9jYWxlLmg+Ci0tI2luY2x1ZGUgPHNpZ25hbC5oPgotIAotICNp bmNsdWRlICJtb2R1bGVtZC1jb21wb25lbnQtbW9kdWxlLmgiCi0gI2luY2x1ZGUgIm1vZHVsZW1k LWNvbXBvbmVudC5oIgotQEAgLTI4LDE2ICsyNyw4IEBAIHR5cGVkZWYgc3RydWN0IF9Db21wb25l bnRNb2R1bGVGaXh0dXJlCi0gewotIH0gQ29tcG9uZW50TW9kdWxlRml4dHVyZTsKLSAKLS1nYm9v bGVhbiBzaWduYWxlZCA9IEZBTFNFOwotLQotLXN0YXRpYyB2b2lkCi0tc2lndHJhcF9oYW5kbGVy IChpbnQgVU5VU0VEIChzaWdfbnVtKSkKLS17Ci0tICBzaWduYWxlZCA9IFRSVUU7Ci0tfQotLQot IHN0YXRpYyB2b2lkCi0tY29tcG9uZW50X21vZHVsZV90ZXN0X2NvbnN0cnVjdCAodm9pZCkKLStj b21wb25lbnRfbW9kdWxlX3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIgKHZvaWQpCi0gewotICAgZ19h dXRvcHRyIChNb2R1bGVtZENvbXBvbmVudE1vZHVsZSkgbSA9IE5VTEw7Ci0gICBNb2R1bGVtZENv bXBvbmVudCAqbWMgPSBOVUxMOwotQEAgLTg0LDI5ICs3NSw0OSBAQCBjb21wb25lbnRfbW9kdWxl X3Rlc3RfY29uc3RydWN0ICh2b2lkKQotICAgICBtb2R1bGVtZF9jb21wb25lbnRfbW9kdWxlX2dl dF9yZXBvc2l0b3J5IChtKSwgPT0sICJzb21lcmVwbyIpOwotICAgbWMgPSBOVUxMOwotICAgZ19j bGVhcl9vYmplY3QgKCZtKTsKLSt9Ci0gCi0tICAvKiBUZXN0IHRoYXQgd2UgYWJvcnQgd2l0aCBh IE5VTEwgbmFtZSB0byBuZXcoKSAqLwotLSAgc2lnbmFsZWQgPSBGQUxTRTsKLS0gIHNpZ25hbCAo U0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKLS0gIG0gPSBtb2R1bGVtZF9jb21wb25lbnRfbW9k dWxlX25ldyAoTlVMTCk7Ci0tICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7Ci0tICBnX2NsZWFy X29iamVjdCAoJm0pOwotLQotLSAgLyogVGVzdCB0aGF0IGluaXQgZmFpbHMgd2l0aG91dCBuYW1l ICovCi0tICBzaWduYWxlZCA9IEZBTFNFOwotLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hh bmRsZXIpOwotLSAgbSA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9DT01QT05FTlRfTU9E VUxFLCBOVUxMKTsKLS0gIGdfYXNzZXJ0X3RydWUgKHNpZ25hbGVkKTsKLS0gIGdfY2xlYXJfb2Jq ZWN0ICgmbSk7Ci0rLyogVGVzdCB0aGF0IHdlIGFib3J0IHdpdGggYSBOVUxMIG5hbWUgdG8gbmV3 KCkgKi8KLStzdGF0aWMgdm9pZAotK2NvbXBvbmVudF9tb2R1bGVfdGVzdF9jb25zdHJ1Y3RfbmV3 X251bGxfbmFtZSAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCi0rICAg IHsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kQ29tcG9uZW50TW9kdWxlKSBtID0gTlVMTDsK LSsgICAgICBtID0gbW9kdWxlbWRfY29tcG9uZW50X21vZHVsZV9uZXcgKE5VTEwpOwotKyAgICAg IHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19U RVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgp OwotK30KLSAKLS0gIC8qIFRlc3QgdGhhdCBpbml0IGZhaWxzIHdpdGggYSBOVUxMIG5hbWUgKi8K LS0gIHNpZ25hbGVkID0gRkFMU0U7Ci0tICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxl cik7Ci0tICBtID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX0NPTVBPTkVOVF9NT0RVTEUs ICJuYW1lIiwgTlVMTCwgTlVMTCk7Ci0tICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7Ci0tICBn X2NsZWFyX29iamVjdCAoJm0pOwotKy8qIFRlc3QgdGhhdCBpbml0IGZhaWxzIHdpdGhvdXQgbmFt ZSAqLwotK3N0YXRpYyB2b2lkCi0rY29tcG9uZW50X21vZHVsZV90ZXN0X2NvbnN0cnVjdF9pbml0 X3dpdGhvdXRfbmFtZSAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCi0r ICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kQ29tcG9uZW50TW9kdWxlKSBtID0gTlVM TDsKLSsgICAgICBtID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX0NPTVBPTkVOVF9NT0RV TEUsIE5VTEwpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3VicHJv Y2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJh cF9hc3NlcnRfZmFpbGVkICgpOwotIH0KLSAKLSsvKiBUZXN0IHRoYXQgaW5pdCBmYWlscyB3aXRo IGEgTlVMTCBuYW1lICovCi0rc3RhdGljIHZvaWQKLStjb21wb25lbnRfbW9kdWxlX3Rlc3RfY29u c3RydWN0X2luaXRfbnVsbF9uYW1lICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2Vz cyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRDb21wb25lbnRNb2R1bGUp IG0gPSBOVUxMOwotKyAgICAgIG0gPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfQ09NUE9O RU5UX01PRFVMRSwgIm5hbWUiLCBOVUxMLCBOVUxMKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0K LSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RF RkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSt9Ci0gCi0gc3RhdGlj IHZvaWQKLSBjb21wb25lbnRfbW9kdWxlX3Rlc3RfZXF1YWxzICh2b2lkKQotQEAgLTQyMSw4ICs0 MzIsMTcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAgIGdfdGVzdF9idWdfYmFz ZSAoImh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9Iik7Ci0gCi0g ICAvLyBEZWZpbmUgdGhlIHRlc3RzLgotLSAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3Yy L2NvbXBvbmVudC9tb2R1bGUvY29uc3RydWN0IiwKLS0gICAgICAgICAgICAgICAgICAgY29tcG9u ZW50X21vZHVsZV90ZXN0X2NvbnN0cnVjdCk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxl bWQvdjIvY29tcG9uZW50L21vZHVsZS9jb25zdHJ1Y3QvcmVndWxhciIsCi0rICAgICAgICAgICAg ICAgICAgIGNvbXBvbmVudF9tb2R1bGVfdGVzdF9jb25zdHJ1Y3RfcmVndWxhcik7Ci0rCi0rICBn X3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvY29tcG9uZW50L21vZHVsZS9jb25zdHJ1Y3Qv bmV3X251bGxfbmFtZSIsCi0rICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudF9tb2R1bGVfdGVz dF9jb25zdHJ1Y3RfbmV3X251bGxfbmFtZSk7Ci0rCi0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9k dWxlbWQvdjIvY29tcG9uZW50L21vZHVsZS9jb25zdHJ1Y3QvaW5pdF93aXRob3V0X25hbWUiLAot KyAgICAgICAgICAgICAgICAgICBjb21wb25lbnRfbW9kdWxlX3Rlc3RfY29uc3RydWN0X2luaXRf d2l0aG91dF9uYW1lKTsKLSsKLSsgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9jb21w b25lbnQvbW9kdWxlL2NvbnN0cnVjdC9pbml0X251bGxfbmFtZSIsCi0rICAgICAgICAgICAgICAg ICAgIGNvbXBvbmVudF9tb2R1bGVfdGVzdF9jb25zdHJ1Y3RfaW5pdF9udWxsX25hbWUpOwotIAot ICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2NvbXBvbmVudC9tb2R1bGUvZXF1YWxz IiwKLSAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50X21vZHVsZV90ZXN0X2VxdWFscyk7Ci1k aWZmIC0tZ2l0IGEvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1kZWZhdWx0cy12MS5jIGIv bW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1kZWZhdWx0cy12MS5jCi1pbmRleCBjNGZlMjM1 Li4yZGFhMjk1IDEwMDY0NAotLS0tIGEvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1kZWZh dWx0cy12MS5jCi0rKysgYi9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWRlZmF1bHRzLXYx LmMKLUBAIC0xNCw3ICsxNCw2IEBACi0gI2luY2x1ZGUgPGdsaWIuaD4KLSAjaW5jbHVkZSA8Z2xp Yi9nc3RkaW8uaD4KLSAjaW5jbHVkZSA8bG9jYWxlLmg+Ci0tI2luY2x1ZGUgPHNpZ25hbC5oPgot IAotICNpbmNsdWRlICJtb2R1bGVtZC1kZWZhdWx0cy12MS5oIgotICNpbmNsdWRlICJwcml2YXRl L2dsaWItZXh0ZW5zaW9ucy5oIgotQEAgLTI2LDcgKzI1LDcgQEAKLSAKLSAKLSBzdGF0aWMgdm9p ZAotLWRlZmF1bHRzX3Rlc3RfY29uc3RydWN0ICh2b2lkKQotK2RlZmF1bHRzX3Rlc3RfY29uc3Ry dWN0X3JlZ3VsYXIgKHZvaWQpCi0gewotICAgZ19hdXRvcHRyIChNb2R1bGVtZERlZmF1bHRzVjEp IGRlZmF1bHRzID0gTlVMTDsKLSAKLUBAIC0zNywxMyArMzYsNiBAQCBkZWZhdWx0c190ZXN0X2Nv bnN0cnVjdCAodm9pZCkKLSAgIGdfYXNzZXJ0X3RydWUgKE1PRFVMRU1EX0lTX0RFRkFVTFRTX1Yx IChkZWZhdWx0cykpOwotICAgZ19jbGVhcl9vYmplY3QgKCZkZWZhdWx0cyk7Ci0gCi0tICAvKiBU ZXN0IG5ldygpIHdpdGggYSBOVUxMIG1vZHVsZV9uYW1lICovCi0tICBtb2R1bGVtZF90ZXN0X3Np Z25hbCA9IDA7Ci0tICBzaWduYWwgKFNJR1RSQVAsIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsX2hhbmRs ZXIpOwotLSAgZGVmYXVsdHMgPSBtb2R1bGVtZF9kZWZhdWx0c192MV9uZXcgKE5VTEwpOwotLSAg Z19hc3NlcnRfY21waW50IChtb2R1bGVtZF90ZXN0X3NpZ25hbCwgPT0sIFNJR1RSQVApOwotLSAg Z19jbGVhcl9vYmplY3QgKCZkZWZhdWx0cyk7Ci0tCi0gCi0gICAvKiBUZXN0IG9iamVjdCBpbnN0 YW50aWF0aW9uIHdpdGggYSB2YWxpZCBtb2R1bGUgbmFtZSAqLwotICAgLy8gY2xhbmctZm9ybWF0 IG9mZgotQEAgLTU1LDI2ICs0Nyw1NyBAQCBkZWZhdWx0c190ZXN0X2NvbnN0cnVjdCAodm9pZCkK LSAgIGdfYXNzZXJ0X3RydWUgKE1PRFVMRU1EX0lTX0RFRkFVTFRTIChkZWZhdWx0cykpOwotICAg Z19hc3NlcnRfdHJ1ZSAoTU9EVUxFTURfSVNfREVGQVVMVFNfVjEgKGRlZmF1bHRzKSk7Ci0gICBn X2NsZWFyX29iamVjdCAoJmRlZmF1bHRzKTsKLSt9Ci0gCi0tICAvKiBUZXN0IG9iamVjdCBpbnN0 YW50aWF0aW9uIHdpdGggYSBOVUxMIG1vZHVsZSBuYW1lICovCi0tICBtb2R1bGVtZF90ZXN0X3Np Z25hbCA9IDA7Ci0tICBzaWduYWwgKFNJR1RSQVAsIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsX2hhbmRs ZXIpOwotLSAgLy8gY2xhbmctZm9ybWF0IG9mZgotLSAgZGVmYXVsdHMgPSBnX29iamVjdF9uZXcg KE1PRFVMRU1EX1RZUEVfREVGQVVMVFNfVjEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg Im1vZHVsZS1uYW1lIiwgTlVMTCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsK LS0gIC8vIGNsYW5nLWZvcm1hdCBvbgotLSAgZ19hc3NlcnRfY21waW50IChtb2R1bGVtZF90ZXN0 X3NpZ25hbCwgPT0sIFNJR1RSQVApOwotLSAgZ19jbGVhcl9vYmplY3QgKCZkZWZhdWx0cyk7Ci0g Ci0tICAvKiBUZXN0IG9iamVjdCBpbnN0YW50aWF0aW9uIHdpdGhvdXQgc3BlY2lmeWluZyB0aGUg bW9kdWxlIG5hbWUgKi8KLS0gIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsID0gMDsKLS0gIHNpZ25hbCAo U0lHVFJBUCwgbW9kdWxlbWRfdGVzdF9zaWduYWxfaGFuZGxlcik7Ci0tICAvLyBjbGFuZy1mb3Jt YXQgb2ZmCi0tICBkZWZhdWx0cyA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9ERUZBVUxU U19WMSwgTlVMTCk7Ci0tICAvLyBjbGFuZy1mb3JtYXQgb24KLS0gIGdfYXNzZXJ0X2NtcGludCAo bW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgm ZGVmYXVsdHMpOwotKy8qIFRlc3QgbmV3KCkgd2l0aCBhIE5VTEwgbW9kdWxlX25hbWUgKi8KLStz dGF0aWMgdm9pZAotK2RlZmF1bHRzX3Rlc3RfY29uc3RydWN0X25ld19udWxsX21vZHVsZV9uYW1l ICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAg IGdfYXV0b3B0ciAoTW9kdWxlbWREZWZhdWx0c1YxKSBkZWZhdWx0cyA9IE5VTEw7Ci0rICAgICAg ZGVmYXVsdHMgPSBtb2R1bGVtZF9kZWZhdWx0c192MV9uZXcgKE5VTEwpOwotKyAgICAgIHJldHVy bjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NV QlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotK30K LSsKLSsKLSsvKiBUZXN0IG9iamVjdCBpbnN0YW50aWF0aW9uIHdpdGhvdXQgc3BlY2lmeWluZyB0 aGUgbW9kdWxlIG5hbWUgKi8KLStzdGF0aWMgdm9pZAotK2RlZmF1bHRzX3Rlc3RfY29uc3RydWN0 X2luaXRfbm9fbW9kdWxlX25hbWUgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNz ICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZERlZmF1bHRzVjEpIGRlZmF1 bHRzID0gTlVMTDsKLSsgICAgICAvLyBjbGFuZy1mb3JtYXQgb2ZmCi0rICAgICAgZGVmYXVsdHMg PSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfREVGQVVMVFNfVjEsIE5VTEwpOwotKyAgICAg IC8vIGNsYW5nLWZvcm1hdCBvbgotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3Ry YXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBn X3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotK30KLSsKLSsKLSsvKiBUZXN0IG9iamVjdCBp bnN0YW50aWF0aW9uIHdpdGggYSBOVUxMIG1vZHVsZSBuYW1lICovCi0rc3RhdGljIHZvaWQKLStk ZWZhdWx0c190ZXN0X2NvbnN0cnVjdF9pbml0X251bGxfbW9kdWxlX25hbWUgKHZvaWQpCi0rewot KyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChN b2R1bGVtZERlZmF1bHRzVjEpIGRlZmF1bHRzID0gTlVMTDsKLSsgICAgICAvLyBjbGFuZy1mb3Jt YXQgb2ZmCi0rICAgICAgZGVmYXVsdHMgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfREVG QVVMVFNfVjEsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2R1bGUtbmFtZSIs IE5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotKyAgICAgIC8v IGNsYW5nLWZvcm1hdCBvbgotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBf c3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rl c3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotIH0KLSAKLSAKLUBAIC04MjAsOCArODQzLDE0IEBA IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gICAvLyBEZWZpbmUgdGhlIHRlc3RzLgot ICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2RlZmF1bHRzL3YxL2VxdWFscyIsIGRl ZmF1bHRzX3Rlc3RfZXF1YWxzKTsKLSAKLS0gIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92 Mi9kZWZhdWx0cy92MS9jb25zdHJ1Y3QiLAotLSAgICAgICAgICAgICAgICAgICBkZWZhdWx0c190 ZXN0X2NvbnN0cnVjdCk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvZGVmYXVs dHMvdjEvY29uc3RydWN0L3JlZ3VsYXIiLAotKyAgICAgICAgICAgICAgICAgICBkZWZhdWx0c190 ZXN0X2NvbnN0cnVjdF9yZWd1bGFyKTsKLSsgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92 Mi9kZWZhdWx0cy92MS9jb25zdHJ1Y3QvbmV3X251bGxfbW9kdWxlX25hbWUiLAotKyAgICAgICAg ICAgICAgICAgICBkZWZhdWx0c190ZXN0X2NvbnN0cnVjdF9uZXdfbnVsbF9tb2R1bGVfbmFtZSk7 Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvZGVmYXVsdHMvdjEvY29uc3RydWN0 L2luaXRfbm9fbW9kdWxlX25hbWUiLAotKyAgICAgICAgICAgICAgICAgICBkZWZhdWx0c190ZXN0 X2NvbnN0cnVjdF9pbml0X25vX21vZHVsZV9uYW1lKTsKLSsgIGdfdGVzdF9hZGRfZnVuYyAoIi9t b2R1bGVtZC92Mi9kZWZhdWx0cy92MS9jb25zdHJ1Y3QvaW5pdF9udWxsX21vZHVsZV9uYW1lIiwK LSsgICAgICAgICAgICAgICAgICAgZGVmYXVsdHNfdGVzdF9jb25zdHJ1Y3RfaW5pdF9udWxsX21v ZHVsZV9uYW1lKTsKLSAKLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9kZWZhdWx0 cy92MS9jb3B5IiwgZGVmYXVsdHNfdGVzdF9jb3B5KTsKLSAKLWRpZmYgLS1naXQgYS9tb2R1bGVt ZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWRlZmF1bHRzLmMgYi9tb2R1bGVtZC90ZXN0cy90ZXN0LW1v ZHVsZW1kLWRlZmF1bHRzLmMKLWluZGV4IDJhNDY3NzQuLjU2MmU0ZmUgMTAwNjQ0Ci0tLS0gYS9t b2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWRlZmF1bHRzLmMKLSsrKyBiL21vZHVsZW1kL3Rl c3RzL3Rlc3QtbW9kdWxlbWQtZGVmYXVsdHMuYwotQEAgLTE0LDcgKzE0LDYgQEAKLSAjaW5jbHVk ZSA8Z2xpYi5oPgotICNpbmNsdWRlIDxnbGliL2dzdGRpby5oPgotICNpbmNsdWRlIDxsb2NhbGUu aD4KLS0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0gCi0gI2luY2x1ZGUgIm1vZHVsZW1kLWRlZmF1bHRz LXYxLmgiCi0gI2luY2x1ZGUgIm1vZHVsZW1kLWRlZmF1bHRzLmgiCi1AQCAtMjQsNyArMjMsNyBA QAotICNpbmNsdWRlICJwcml2YXRlL3Rlc3QtdXRpbHMuaCIKLSAKLSBzdGF0aWMgdm9pZAotLWRl ZmF1bHRzX3Rlc3RfY29uc3RydWN0ICh2b2lkKQotK2RlZmF1bHRzX3Rlc3RfY29uc3RydWN0X3Jl Z3VsYXIgKHZvaWQpCi0gewotICAgZ19hdXRvcHRyIChNb2R1bGVtZERlZmF1bHRzKSBkZWZhdWx0 cyA9IE5VTEw7Ci0gCi1AQCAtMzQsMzAgKzMzLDUxIEBAIGRlZmF1bHRzX3Rlc3RfY29uc3RydWN0 ICh2b2lkKQotICAgZ19hc3NlcnRfdHJ1ZSAoTU9EVUxFTURfSVNfREVGQVVMVFMgKGRlZmF1bHRz KSk7Ci0gICBnX2Fzc2VydF90cnVlIChNT0RVTEVNRF9JU19ERUZBVUxUU19WMSAoZGVmYXVsdHMp KTsKLSAgIGdfY2xlYXJfb2JqZWN0ICgmZGVmYXVsdHMpOwotK30KLSAKLS0gIC8qIFRlc3QgbmV3 KCkgd2l0aCBhIHplcm8gbWR2ZXJzaW9uICovCi0tICBtb2R1bGVtZF90ZXN0X3NpZ25hbCA9IDA7 Ci0tICBzaWduYWwgKFNJR1RSQVAsIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsX2hhbmRsZXIpOwotLSAg ZGVmYXVsdHMgPSBtb2R1bGVtZF9kZWZhdWx0c19uZXcgKDAsICJmb28iKTsKLS0gIGdfYXNzZXJ0 X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsKLS0gIGdfYXNzZXJ0 X251bGwgKGRlZmF1bHRzKTsKLS0KLS0gIC8qIFRlc3QgbmV3KCkgd2l0aCBhIHRvby1oaWdoIG1k dmVyc2lvbiAqLwotLSAgbW9kdWxlbWRfdGVzdF9zaWduYWwgPSAwOwotLSAgc2lnbmFsIChTSUdU UkFQLCBtb2R1bGVtZF90ZXN0X3NpZ25hbF9oYW5kbGVyKTsKLS0gIGRlZmF1bHRzID0gbW9kdWxl bWRfZGVmYXVsdHNfbmV3IChNRF9ERUZBVUxUU19WRVJTSU9OX0xBVEVTVCArIDEsICJmb28iKTsK LS0gIGdfYXNzZXJ0X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsK LS0gIGdfYXNzZXJ0X251bGwgKGRlZmF1bHRzKTsKLS0KLS0gIC8qIFRlc3QgbmV3KCkgd2l0aCBh IE5VTEwgbW9kdWxlX25hbWUgKi8KLS0gIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsID0gMDsKLS0gIHNp Z25hbCAoU0lHVFJBUCwgbW9kdWxlbWRfdGVzdF9zaWduYWxfaGFuZGxlcik7Ci0tICBkZWZhdWx0 cyA9IG1vZHVsZW1kX2RlZmF1bHRzX25ldyAoTURfREVGQVVMVFNfVkVSU0lPTl9PTkUsIE5VTEwp OwotLSAgZ19hc3NlcnRfY21waW50IChtb2R1bGVtZF90ZXN0X3NpZ25hbCwgPT0sIFNJR1RSQVAp OwotLSAgLyogSWYgd2UgdHJhcCB0aGUgZXJyb3IsIGRlZmF1bHRzIGFjdHVhbGx5IHJldHVybnMg YSB2YWx1ZSBoZXJlLCBzbyBmcmVlCi0tICAgKiBpdAotLSAgICovCi0tICBnX2NsZWFyX29iamVj dCAoJmRlZmF1bHRzKTsKLSsKLSsvKiBUZXN0IG5ldygpIHdpdGggYSB6ZXJvIG1kdmVyc2lvbiAq LwotK3N0YXRpYyB2b2lkCi0rZGVmYXVsdHNfdGVzdF9jb25zdHJ1Y3RfemVyb19tZHZlcnNpb24g KHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAg Z19hdXRvcHRyIChNb2R1bGVtZERlZmF1bHRzKSBkZWZhdWx0cyA9IE5VTEw7Ci0rICAgICAgZGVm YXVsdHMgPSBtb2R1bGVtZF9kZWZhdWx0c19uZXcgKDAsICJmb28iKTsKLSsgICAgICByZXR1cm47 Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQ Uk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSt9Ci0r Ci0rCi0rLyogVGVzdCBuZXcoKSB3aXRoIGEgdG9vLWhpZ2ggbWR2ZXJzaW9uICovCi0rc3RhdGlj IHZvaWQKLStkZWZhdWx0c190ZXN0X2NvbnN0cnVjdF90b29faGlnaF9tZHZlcnNpb24gKHZvaWQp Ci0rewotKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRv cHRyIChNb2R1bGVtZERlZmF1bHRzKSBkZWZhdWx0cyA9IE5VTEw7Ci0rICAgICAgZGVmYXVsdHMg PSBtb2R1bGVtZF9kZWZhdWx0c19uZXcgKE1EX0RFRkFVTFRTX1ZFUlNJT05fTEFURVNUICsgMSwg ImZvbyIpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3VicHJvY2Vz cyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9h c3NlcnRfZmFpbGVkICgpOwotK30KLSsKLSsKLSsvKiBUZXN0IG5ldygpIHdpdGggYSBOVUxMIG1v ZHVsZV9uYW1lICovCi0rc3RhdGljIHZvaWQKLStkZWZhdWx0c190ZXN0X25ld193aXRoX251bGxf bW9kdWxlX25hbWUgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQotKyAg ICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZERlZmF1bHRzKSBkZWZhdWx0cyA9IE5VTEw7 Ci0rICAgICAgZGVmYXVsdHMgPSBtb2R1bGVtZF9kZWZhdWx0c19uZXcgKE1EX0RFRkFVTFRTX1ZF UlNJT05fT05FLCBOVUxMKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFw X3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190 ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSB9Ci0gCi0gCi1AQCAtMjAzLDcgKzIyMywxNCBA QCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQotICAgZ190ZXN0X2J1Z19iYXNlICgiaHR0 cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0iKTsKLSAKLSAgIC8vIERl ZmluZSB0aGUgdGVzdHMuCi0tICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvZGVmYXVs dHMvY29uc3RydWN0IiwgZGVmYXVsdHNfdGVzdF9jb25zdHJ1Y3QpOwotKyAgZ190ZXN0X2FkZF9m dW5jICgiL21vZHVsZW1kL3YyL2RlZmF1bHRzL2NvbnN0cnVjdC9yZWd1bGFyIiwKLSsgICAgICAg ICAgICAgICAgICAgZGVmYXVsdHNfdGVzdF9jb25zdHJ1Y3RfcmVndWxhcik7Ci0rICBnX3Rlc3Rf YWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvZGVmYXVsdHMvY29uc3RydWN0L3plcm9fbWR2ZXJzaW9u IiwKLSsgICAgICAgICAgICAgICAgICAgZGVmYXVsdHNfdGVzdF9jb25zdHJ1Y3RfemVyb19tZHZl cnNpb24pOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2RlZmF1bHRzL2NvbnN0 cnVjdC90b29faGlnaF9tZHZlcnNpb24iLAotKyAgICAgICAgICAgICAgICAgICBkZWZhdWx0c190 ZXN0X2NvbnN0cnVjdF90b29faGlnaF9tZHZlcnNpb24pOwotKyAgZ190ZXN0X2FkZF9mdW5jICgi L21vZHVsZW1kL3YyL2RlZmF1bHRzL25ldy93aXRoX251bGxfbW9kdWxlX25hbWUiLAotKyAgICAg ICAgICAgICAgICAgICBkZWZhdWx0c190ZXN0X25ld193aXRoX251bGxfbW9kdWxlX25hbWUpOwot IAotICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2RlZmF1bHRzL2NvcHkiLCBkZWZh dWx0c190ZXN0X2NvcHkpOwotIAotZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9k dWxlbWQtZGVwZW5kZW5jaWVzLmMgYi9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWRlcGVu ZGVuY2llcy5jCi1pbmRleCBiYWUwZjQ2Li5kMTI2ZGJhIDEwMDY0NAotLS0tIGEvbW9kdWxlbWQv dGVzdHMvdGVzdC1tb2R1bGVtZC1kZXBlbmRlbmNpZXMuYwotKysrIGIvbW9kdWxlbWQvdGVzdHMv dGVzdC1tb2R1bGVtZC1kZXBlbmRlbmNpZXMuYwotQEAgLTE0LDcgKzE0LDYgQEAKLSAjaW5jbHVk ZSA8Z2xpYi5oPgotICNpbmNsdWRlIDxnbGliL2dzdGRpby5oPgotICNpbmNsdWRlIDxsb2NhbGUu aD4KLS0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0gCi0gI2luY2x1ZGUgIm1vZHVsZW1kLWRlcGVuZGVu Y2llcy5oIgotICNpbmNsdWRlICJwcml2YXRlL2dsaWItZXh0ZW5zaW9ucy5oIgotQEAgLTI3LDE0 ICsyNiw2IEBAIHR5cGVkZWYgc3RydWN0IF9EZXBlbmRlbmNpZXNGaXh0dXJlCi0gewotIH0gRGVw ZW5kZW5jaWVzRml4dHVyZTsKLSAKLS1nYm9vbGVhbiBzaWduYWxlZCA9IEZBTFNFOwotLQotLXN0 YXRpYyB2b2lkCi0tc2lndHJhcF9oYW5kbGVyIChpbnQgVU5VU0VEIChzaWdfbnVtKSkKLS17Ci0t ICBzaWduYWxlZCA9IFRSVUU7Ci0tfQotLQotIHN0YXRpYyB2b2lkCi0gZGVwZW5kZW5jaWVzX3Rl c3RfY29uc3RydWN0ICh2b2lkKQotIHsKLUBAIC02MCw3ICs1MSw3IEBAIGRlcGVuZGVuY2llc190 ZXN0X2NvbnN0cnVjdCAodm9pZCkKLSAKLSAKLSBzdGF0aWMgdm9pZAotLWRlcGVuZGVuY2llc190 ZXN0X2RlcGVuZGVuY2llcyAodm9pZCkKLStkZXBlbmRlbmNpZXNfdGVzdF9kZXBlbmRlbmNpZXNf cmVndWxhciAodm9pZCkKLSB7Ci0gICBnX2F1dG9wdHIgKE1vZHVsZW1kRGVwZW5kZW5jaWVzKSBk ID0gTlVMTDsKLSAgIGdfYXV0byAoR1N0cnYpIGxpc3QgPSBOVUxMOwotQEAgLTczLDEwICs2NCw2 IEBAIGRlcGVuZGVuY2llc190ZXN0X2RlcGVuZGVuY2llcyAodm9pZCkKLSAgIGdfYXNzZXJ0X25v bm51bGwgKGxpc3QpOwotICAgZ19hc3NlcnRfY21waW50IChnX3N0cnZfbGVuZ3RoIChsaXN0KSwg PT0sIDApOwotICAgZ19jbGVhcl9wb2ludGVyICgmbGlzdCwgZ19zdHJmcmVldik7Ci0tICBzaWdu YWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7Ci0tICBsaXN0ID0gbW9kdWxlbWRfZGVwZW5k ZW5jaWVzX2dldF9idWlsZHRpbWVfc3RyZWFtc19hc19zdHJ2IChkLCAiYnVpbGRtb2QxIik7Ci0t ICBnX2Fzc2VydF9udWxsIChsaXN0KTsKLS0gIGdfY2xlYXJfcG9pbnRlciAoJmxpc3QsIGdfc3Ry ZnJlZXYpOwotIAotICAgLyogQWRkIHNvbWUgZGVwcyAqLwotICAgbW9kdWxlbWRfZGVwZW5kZW5j aWVzX2FkZF9idWlsZHRpbWVfc3RyZWFtIChkLCAiYnVpbGRtb2QxIiwgInN0cmVhbTEiKTsKLUBA IC0xMDIsMTAgKzg5LDYgQEAgZGVwZW5kZW5jaWVzX3Rlc3RfZGVwZW5kZW5jaWVzICh2b2lkKQot ICAgZ19hc3NlcnRfbm9ubnVsbCAobGlzdCk7Ci0gICBnX2Fzc2VydF9jbXBpbnQgKGdfc3Rydl9s ZW5ndGggKGxpc3QpLCA9PSwgMCk7Ci0gICBnX2NsZWFyX3BvaW50ZXIgKCZsaXN0LCBnX3N0cmZy ZWV2KTsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKLS0gIGxpc3QgPSBt b2R1bGVtZF9kZXBlbmRlbmNpZXNfZ2V0X3J1bnRpbWVfc3RyZWFtc19hc19zdHJ2IChkLCAiYnVp bGRtb2QxIik7Ci0tICBnX2Fzc2VydF9udWxsIChsaXN0KTsKLS0gIGdfY2xlYXJfcG9pbnRlciAo Jmxpc3QsIGdfc3RyZnJlZXYpOwotIAotICAgbGlzdCA9IG1vZHVsZW1kX2RlcGVuZGVuY2llc19n ZXRfcnVudGltZV9tb2R1bGVzX2FzX3N0cnYgKGQpOwotICAgZ19hc3NlcnRfbm9ubnVsbCAobGlz dCk7Ci1AQCAtMTE3LDEwICsxMDAsNiBAQCBkZXBlbmRlbmNpZXNfdGVzdF9kZXBlbmRlbmNpZXMg KHZvaWQpCi0gICBnX2Fzc2VydF9ub25udWxsIChsaXN0KTsKLSAgIGdfYXNzZXJ0X2NtcGludCAo Z19zdHJ2X2xlbmd0aCAobGlzdCksID09LCAwKTsKLSAgIGdfY2xlYXJfcG9pbnRlciAoJmxpc3Qs IGdfc3RyZnJlZXYpOwotLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOwotLSAg bGlzdCA9IG1vZHVsZW1kX2RlcGVuZGVuY2llc19nZXRfcnVudGltZV9zdHJlYW1zX2FzX3N0cnYg KGQsICJidWlsZG1vZDEiKTsKLS0gIGdfYXNzZXJ0X251bGwgKGxpc3QpOwotLSAgZ19jbGVhcl9w b2ludGVyICgmbGlzdCwgZ19zdHJmcmVldik7Ci0gICBsaXN0ID0gbW9kdWxlbWRfZGVwZW5kZW5j aWVzX2dldF9ydW50aW1lX3N0cmVhbXNfYXNfc3RydiAoZCwgInJ1bm1vZDEiKTsKLSAgIGdfYXNz ZXJ0X25vbm51bGwgKGxpc3QpOwotICAgZ19hc3NlcnRfY21waW50IChnX3N0cnZfbGVuZ3RoIChs aXN0KSwgPT0sIDIpOwotQEAgLTEzMCw2ICsxMDksNTcgQEAgZGVwZW5kZW5jaWVzX3Rlc3RfZGVw ZW5kZW5jaWVzICh2b2lkKQotIH0KLSAKLSAKLStzdGF0aWMgdm9pZAotK2RlcGVuZGVuY2llc190 ZXN0X2RlcGVuZGVuY2llc19ub25leGlzdGVudF9idWlsZHRpbWVfc3RyZWFtICh2b2lkKQotK3sK LSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAo TW9kdWxlbWREZXBlbmRlbmNpZXMpIGQgPSBOVUxMOwotKyAgICAgIGdfYXV0byAoR1N0cnYpIGxp c3QgPSBOVUxMOwotKwotKyAgICAgIGQgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfbmV3ICgpOwot KyAgICAgIGdfYXNzZXJ0X25vbm51bGwgKGQpOwotKyAgICAgIGdfYXNzZXJ0X3RydWUgKE1PRFVM RU1EX0lTX0RFUEVOREVOQ0lFUyAoZCkpOwotKwotKyAgICAgIGxpc3QgPQotKyAgICAgICAgbW9k dWxlbWRfZGVwZW5kZW5jaWVzX2dldF9idWlsZHRpbWVfc3RyZWFtc19hc19zdHJ2IChkLCAiYnVp bGRtb2QxIik7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9j ZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFw X2Fzc2VydF9mYWlsZWQgKCk7Ci0rfQotKwotKwotK3N0YXRpYyB2b2lkCi0rZGVwZW5kZW5jaWVz X3Rlc3RfZGVwZW5kZW5jaWVzX25vbmV4aXN0ZW50X3J1bnRpbWVfc3RyZWFtICh2b2lkKQotK3sK LSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAo TW9kdWxlbWREZXBlbmRlbmNpZXMpIGQgPSBOVUxMOwotKyAgICAgIGdfYXV0byAoR1N0cnYpIGxp c3QgPSBOVUxMOwotKwotKyAgICAgIGQgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfbmV3ICgpOwot KyAgICAgIGdfYXNzZXJ0X25vbm51bGwgKGQpOwotKyAgICAgIGdfYXNzZXJ0X3RydWUgKE1PRFVM RU1EX0lTX0RFUEVOREVOQ0lFUyAoZCkpOwotKwotKyAgICAgIC8qIEFkZCBzb21lIGRlcHMgKi8K LSsgICAgICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfYWRkX2J1aWxkdGltZV9zdHJlYW0gKGQsICJi dWlsZG1vZDEiLCAic3RyZWFtMSIpOwotKyAgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19hZGRf cnVudGltZV9zdHJlYW0gKGQsICJydW5tb2QxIiwgInN0cmVhbTIiKTsKLSsgICAgICBtb2R1bGVt ZF9kZXBlbmRlbmNpZXNfYWRkX3J1bnRpbWVfc3RyZWFtIChkLCAicnVubW9kMSIsICJzdHJlYW0x Iik7Ci0rICAgICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVzX3NldF9lbXB0eV9idWlsZHRpbWVfZGVw ZW5kZW5jaWVzX2Zvcl9tb2R1bGUgKAotKyAgICAgICAgZCwgImRlZmJ1aWxkIik7Ci0rICAgICAg bW9kdWxlbWRfZGVwZW5kZW5jaWVzX3NldF9lbXB0eV9ydW50aW1lX2RlcGVuZGVuY2llc19mb3Jf bW9kdWxlICgKLSsgICAgICAgIGQsICJkZWZydW4iKTsKLSsKLSsgICAgICBsaXN0ID0KLSsgICAg ICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19nZXRfcnVudGltZV9zdHJlYW1zX2FzX3N0cnYgKGQs ICJidWlsZG1vZDEiKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1 YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0 X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSt9Ci0rCi0rCi0gc3RhdGljIHZvaWQKLSBkZXBlbmRl bmNpZXNfdGVzdF9lcXVhbHMgKHZvaWQpCi0gewotQEAgLTI5OCw3ICszMjgsNyBAQCBkZXBlbmRl bmNpZXNfdGVzdF9lcXVhbHMgKHZvaWQpCi0gCi0gCi0gc3RhdGljIHZvaWQKLS1kZXBlbmRlbmNp ZXNfdGVzdF9jb3B5ICh2b2lkKQotK2RlcGVuZGVuY2llc190ZXN0X2NvcHlfcmVndWxhciAodm9p ZCkKLSB7Ci0gICBnX2F1dG9wdHIgKE1vZHVsZW1kRGVwZW5kZW5jaWVzKSBkID0gTlVMTDsKLSAg IGdfYXV0b3B0ciAoTW9kdWxlbWREZXBlbmRlbmNpZXMpIGRfY29weSA9IE5VTEw7Ci1AQCAtMzEx LDEwICszNDEsNiBAQCBkZXBlbmRlbmNpZXNfdGVzdF9jb3B5ICh2b2lkKQotICAgZ19hc3NlcnRf bm9ubnVsbCAobGlzdCk7Ci0gICBnX2Fzc2VydF9jbXBpbnQgKGdfc3Rydl9sZW5ndGggKGxpc3Qp LCA9PSwgMCk7Ci0gICBnX2NsZWFyX3BvaW50ZXIgKCZsaXN0LCBnX3N0cmZyZWV2KTsKLS0gIHNp Z25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKLS0gIGxpc3QgPSBtb2R1bGVtZF9kZXBl bmRlbmNpZXNfZ2V0X2J1aWxkdGltZV9zdHJlYW1zX2FzX3N0cnYgKGQsICJtb2R1bGUxIik7Ci0t ICBnX2Fzc2VydF9udWxsIChsaXN0KTsKLS0gIGdfY2xlYXJfcG9pbnRlciAoJmxpc3QsIGdfc3Ry ZnJlZXYpOwotIAotICAgZF9jb3B5ID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2NvcHkgKGQpOwot ICAgZ19hc3NlcnRfbm9ubnVsbCAoZF9jb3B5KTsKLUBAIC0zMjMsMTAgKzM0OSw2IEBAIGRlcGVu ZGVuY2llc190ZXN0X2NvcHkgKHZvaWQpCi0gICBnX2Fzc2VydF9ub25udWxsIChsaXN0KTsKLSAg IGdfYXNzZXJ0X2NtcGludCAoZ19zdHJ2X2xlbmd0aCAobGlzdCksID09LCAwKTsKLSAgIGdfY2xl YXJfcG9pbnRlciAoJmxpc3QsIGdfc3RyZnJlZXYpOwotLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0 cmFwX2hhbmRsZXIpOwotLSAgbGlzdCA9IG1vZHVsZW1kX2RlcGVuZGVuY2llc19nZXRfYnVpbGR0 aW1lX3N0cmVhbXNfYXNfc3RydiAoZCwgIm1vZHVsZTEiKTsKLS0gIGdfYXNzZXJ0X251bGwgKGxp c3QpOwotLSAgZ19jbGVhcl9wb2ludGVyICgmbGlzdCwgZ19zdHJmcmVldik7Ci0gICBnX2NsZWFy X29iamVjdCAoJmRfY29weSk7Ci0gCi0gICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfYWRkX2J1aWxk dGltZV9zdHJlYW0gKGQsICJidWlsZG1vZDEiLCAic3RyZWFtMiIpOwotQEAgLTM0NywxMSArMzY5 LDcgQEAgZGVwZW5kZW5jaWVzX3Rlc3RfY29weSAodm9pZCkKLSAgIGdfYXNzZXJ0X2NtcHN0ciAo bGlzdFswXSwgPT0sICJidWlsZGRlZiIpOwotICAgZ19hc3NlcnRfY21wc3RyIChsaXN0WzFdLCA9 PSwgImJ1aWxkbW9kMSIpOwotICAgZ19jbGVhcl9wb2ludGVyICgmbGlzdCwgZ19zdHJmcmVldik7 Ci0tICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7Ci0tICBsaXN0ID0gbW9kdWxl bWRfZGVwZW5kZW5jaWVzX2dldF9idWlsZHRpbWVfc3RyZWFtc19hc19zdHJ2IChkX2NvcHksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAibm9zdWNobW9kdWxlIik7Ci0tICBnX2Fzc2VydF9udWxsIChsaXN0KTsKLS0gIGdfY2xl YXJfcG9pbnRlciAoJmxpc3QsIGdfc3RyZnJlZXYpOwotKwotICAgbGlzdCA9Ci0gICAgIG1vZHVs ZW1kX2RlcGVuZGVuY2llc19nZXRfYnVpbGR0aW1lX3N0cmVhbXNfYXNfc3RydiAoZF9jb3B5LCAi YnVpbGRtb2QxIik7Ci0gICBnX2Fzc2VydF9ub25udWxsIChsaXN0KTsKLUBAIC0zNzEsMTEgKzM4 OSw2IEBAIGRlcGVuZGVuY2llc190ZXN0X2NvcHkgKHZvaWQpCi0gICBnX2Fzc2VydF9jbXBzdHIg KGxpc3RbMF0sID09LCAicnVuZGVmIik7Ci0gICBnX2Fzc2VydF9jbXBzdHIgKGxpc3RbMV0sID09 LCAicnVubW9kMSIpOwotICAgZ19jbGVhcl9wb2ludGVyICgmbGlzdCwgZ19zdHJmcmVldik7Ci0t ICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7Ci0tICBsaXN0ID0KLS0gICAgbW9k dWxlbWRfZGVwZW5kZW5jaWVzX2dldF9ydW50aW1lX3N0cmVhbXNfYXNfc3RydiAoZF9jb3B5LCAi bm9zdWNobW9kdWxlIik7Ci0tICBnX2Fzc2VydF9udWxsIChsaXN0KTsKLS0gIGdfY2xlYXJfcG9p bnRlciAoJmxpc3QsIGdfc3RyZnJlZXYpOwotICAgbGlzdCA9IG1vZHVsZW1kX2RlcGVuZGVuY2ll c19nZXRfcnVudGltZV9zdHJlYW1zX2FzX3N0cnYgKGRfY29weSwgInJ1bm1vZDEiKTsKLSAgIGdf YXNzZXJ0X25vbm51bGwgKGxpc3QpOwotICAgZ19hc3NlcnRfY21waW50IChnX3N0cnZfbGVuZ3Ro IChsaXN0KSwgPT0sIDIpOwotQEAgLTM4OCw2ICs0MDEsMTAxIEBAIGRlcGVuZGVuY2llc190ZXN0 X2NvcHkgKHZvaWQpCi0gICBnX2NsZWFyX3BvaW50ZXIgKCZsaXN0LCBnX3N0cmZyZWV2KTsKLSB9 Ci0gCi0rCi0rc3RhdGljIHZvaWQKLStkZXBlbmRlbmNpZXNfdGVzdF9jb3B5X2VtcHR5X25vbmV4 c2l0ZW50X2J1aWxkdGltZV9zdHJlYW0gKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9zdWJwcm9j ZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZERlcGVuZGVuY2llcykg ZCA9IE5VTEw7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZERlcGVuZGVuY2llcykgZF9jb3B5 ID0gTlVMTDsKLSsgICAgICBnX2F1dG8gKEdTdHJ2KSBsaXN0ID0gTlVMTDsKLSsKLSsgICAgICBk ID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX25ldyAoKTsKLSsgICAgICBnX2Fzc2VydF9ub25udWxs IChkKTsKLSsgICAgICBnX2Fzc2VydF90cnVlIChNT0RVTEVNRF9JU19ERVBFTkRFTkNJRVMgKGQp KTsKLSsKLSsgICAgICBkX2NvcHkgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfY29weSAoZCk7Ci0r ICAgICAgZ19hc3NlcnRfbm9ubnVsbCAoZF9jb3B5KTsKLSsgICAgICBnX2Fzc2VydF90cnVlIChN T0RVTEVNRF9JU19ERVBFTkRFTkNJRVMgKGRfY29weSkpOwotKwotKyAgICAgIGxpc3QgPQotKyAg ICAgICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2dldF9idWlsZHRpbWVfc3RyZWFtc19hc19zdHJ2 IChkLCAibW9kdWxlMSIpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBf c3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rl c3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotK30KLSsKLSsKLStzdGF0aWMgdm9pZAotK2RlcGVu ZGVuY2llc190ZXN0X2NvcHlfZnVsbF9ub25leHNpdGVudF9idWlsZHRpbWVfc3RyZWFtICh2b2lk KQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0 b3B0ciAoTW9kdWxlbWREZXBlbmRlbmNpZXMpIGQgPSBOVUxMOwotKyAgICAgIGdfYXV0b3B0ciAo TW9kdWxlbWREZXBlbmRlbmNpZXMpIGRfY29weSA9IE5VTEw7Ci0rICAgICAgZ19hdXRvIChHU3Ry dikgbGlzdCA9IE5VTEw7Ci0rCi0rICAgICAgZCA9IG1vZHVsZW1kX2RlcGVuZGVuY2llc19uZXcg KCk7Ci0rICAgICAgZ19hc3NlcnRfbm9ubnVsbCAoZCk7Ci0rICAgICAgZ19hc3NlcnRfdHJ1ZSAo TU9EVUxFTURfSVNfREVQRU5ERU5DSUVTIChkKSk7Ci0rCi0rICAgICAgbW9kdWxlbWRfZGVwZW5k ZW5jaWVzX2FkZF9idWlsZHRpbWVfc3RyZWFtIChkLCAiYnVpbGRtb2QxIiwgInN0cmVhbTIiKTsK LSsgICAgICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfYWRkX2J1aWxkdGltZV9zdHJlYW0gKGQsICJi dWlsZG1vZDEiLCAic3RyZWFtMSIpOwotKyAgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19zZXRf ZW1wdHlfYnVpbGR0aW1lX2RlcGVuZGVuY2llc19mb3JfbW9kdWxlICgKLSsgICAgICAgIGQsICJi dWlsZGRlZiIpOwotKyAgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19hZGRfcnVudGltZV9zdHJl YW0gKGQsICJydW5tb2QxIiwgInN0cmVhbTMiKTsKLSsgICAgICBtb2R1bGVtZF9kZXBlbmRlbmNp ZXNfYWRkX3J1bnRpbWVfc3RyZWFtIChkLCAicnVubW9kMSIsICJzdHJlYW00Iik7Ci0rICAgICAg bW9kdWxlbWRfZGVwZW5kZW5jaWVzX3NldF9lbXB0eV9ydW50aW1lX2RlcGVuZGVuY2llc19mb3Jf bW9kdWxlICgKLSsgICAgICAgIGQsICJydW5kZWYiKTsKLSsKLSsgICAgICBkX2NvcHkgPSBtb2R1 bGVtZF9kZXBlbmRlbmNpZXNfY29weSAoZCk7Ci0rICAgICAgZ19hc3NlcnRfbm9ubnVsbCAoZF9j b3B5KTsKLSsgICAgICBnX2Fzc2VydF90cnVlIChNT0RVTEVNRF9JU19ERVBFTkRFTkNJRVMgKGRf Y29weSkpOwotKyAgICAgIGxpc3QgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfZ2V0X2J1aWxkdGlt ZV9zdHJlYW1zX2FzX3N0cnYgKAotKyAgICAgICAgZF9jb3B5LCAibm9zdWNobW9kdWxlIik7Ci0r ICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAw LCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWls ZWQgKCk7Ci0rfQotKwotKwotK3N0YXRpYyB2b2lkCi0rZGVwZW5kZW5jaWVzX3Rlc3RfY29weV9m dWxsX25vbmV4c2l0ZW50X3J1bnRpbWVfc3RyZWFtICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rf c3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZXBlbmRl bmNpZXMpIGQgPSBOVUxMOwotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZXBlbmRlbmNpZXMp IGRfY29weSA9IE5VTEw7Ci0rICAgICAgZ19hdXRvIChHU3RydikgbGlzdCA9IE5VTEw7Ci0rCi0r ICAgICAgZCA9IG1vZHVsZW1kX2RlcGVuZGVuY2llc19uZXcgKCk7Ci0rICAgICAgZ19hc3NlcnRf bm9ubnVsbCAoZCk7Ci0rICAgICAgZ19hc3NlcnRfdHJ1ZSAoTU9EVUxFTURfSVNfREVQRU5ERU5D SUVTIChkKSk7Ci0rCi0rICAgICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2FkZF9idWlsZHRpbWVf c3RyZWFtIChkLCAiYnVpbGRtb2QxIiwgInN0cmVhbTIiKTsKLSsgICAgICBtb2R1bGVtZF9kZXBl bmRlbmNpZXNfYWRkX2J1aWxkdGltZV9zdHJlYW0gKGQsICJidWlsZG1vZDEiLCAic3RyZWFtMSIp OwotKyAgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19zZXRfZW1wdHlfYnVpbGR0aW1lX2RlcGVu ZGVuY2llc19mb3JfbW9kdWxlICgKLSsgICAgICAgIGQsICJidWlsZGRlZiIpOwotKyAgICAgIG1v ZHVsZW1kX2RlcGVuZGVuY2llc19hZGRfcnVudGltZV9zdHJlYW0gKGQsICJydW5tb2QxIiwgInN0 cmVhbTMiKTsKLSsgICAgICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfYWRkX3J1bnRpbWVfc3RyZWFt IChkLCAicnVubW9kMSIsICJzdHJlYW00Iik7Ci0rICAgICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVz X3NldF9lbXB0eV9ydW50aW1lX2RlcGVuZGVuY2llc19mb3JfbW9kdWxlICgKLSsgICAgICAgIGQs ICJydW5kZWYiKTsKLSsKLSsgICAgICBkX2NvcHkgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfY29w eSAoZCk7Ci0rICAgICAgZ19hc3NlcnRfbm9ubnVsbCAoZF9jb3B5KTsKLSsgICAgICBnX2Fzc2Vy dF90cnVlIChNT0RVTEVNRF9JU19ERVBFTkRFTkNJRVMgKGRfY29weSkpOwotKyAgICAgIGxpc3Qg PSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfZ2V0X3J1bnRpbWVfc3RyZWFtc19hc19zdHJ2ICgKLSsg ICAgICAgIGRfY29weSwgIm5vc3VjaG1vZHVsZSIpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQot KyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVG QVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotK30KLSsKLSsKLSBzdGF0 aWMgdm9pZAotIGRlcGVuZGVuY2llc190ZXN0X3BhcnNlX3lhbWwgKHZvaWQpCi0gewotQEAgLTYz MSwxMyArNzM5LDI5IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gICBnX3Rlc3Rf YWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvZGVwZW5kZW5jaWVzL2NvbnN0cnVjdCIsCi0gICAgICAg ICAgICAgICAgICAgIGRlcGVuZGVuY2llc190ZXN0X2NvbnN0cnVjdCk7Ci0gCi0tICBnX3Rlc3Rf YWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvZGVwZW5kZW5jaWVzL2RlcGVuZGVuY2llcyIsCi0tICAg ICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llc190ZXN0X2RlcGVuZGVuY2llcyk7Ci0rICBnX3Rl c3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvZGVwZW5kZW5jaWVzL2RlcGVuZGVuY2llcy9yZWd1 bGFyIiwKLSsgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzX3Rlc3RfZGVwZW5kZW5jaWVz X3JlZ3VsYXIpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgKLSsgICAgIi9tb2R1bGVtZC92Mi9kZXBl bmRlbmNpZXMvZGVwZW5kZW5jaWVzL25vbmV4aXN0ZW50X2J1aWxkdGltZV9zdHJlYW0iLAotKyAg ICBkZXBlbmRlbmNpZXNfdGVzdF9kZXBlbmRlbmNpZXNfbm9uZXhpc3RlbnRfYnVpbGR0aW1lX3N0 cmVhbSk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKAotKyAgICAiL21vZHVsZW1kL3YyL2RlcGVuZGVu Y2llcy9kZXBlbmRlbmNpZXMvbm9uZXhpc3RlbnRfcnVudGltZV9zdHJlYW0iLAotKyAgICBkZXBl bmRlbmNpZXNfdGVzdF9kZXBlbmRlbmNpZXNfbm9uZXhpc3RlbnRfcnVudGltZV9zdHJlYW0pOwot IAotICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2RlcGVuZGVuY2llcy9lcXVhbHMi LAotICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNfdGVzdF9lcXVhbHMpOwotIAotLSAg Z190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2RlcGVuZGVuY2llcy9jb3B5IiwgZGVwZW5k ZW5jaWVzX3Rlc3RfY29weSk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvZGVw ZW5kZW5jaWVzL2NvcHkvcmVndWxhciIsCi0rICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2ll c190ZXN0X2NvcHlfcmVndWxhcik7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKAotKyAgICAiL21vZHVs ZW1kL3YyL2RlcGVuZGVuY2llcy9jb3B5L2VtcHR5X25vbmV4c2l0ZW50X2J1aWxkdGltZV9zdHJl YW0iLAotKyAgICBkZXBlbmRlbmNpZXNfdGVzdF9jb3B5X2VtcHR5X25vbmV4c2l0ZW50X2J1aWxk dGltZV9zdHJlYW0pOwotKyAgZ190ZXN0X2FkZF9mdW5jICgKLSsgICAgIi9tb2R1bGVtZC92Mi9k ZXBlbmRlbmNpZXMvY29weS9mdWxsX25vbmV4c2l0ZW50X2J1aWxkdGltZV9zdHJlYW0iLAotKyAg ICBkZXBlbmRlbmNpZXNfdGVzdF9jb3B5X2Z1bGxfbm9uZXhzaXRlbnRfYnVpbGR0aW1lX3N0cmVh bSk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKAotKyAgICAiL21vZHVsZW1kL3YyL2RlcGVuZGVuY2ll cy9jb3B5L2Z1bGxfbm9uZXhzaXRlbnRfcnVuZHRpbWVfc3RyZWFtIiwKLSsgICAgZGVwZW5kZW5j aWVzX3Rlc3RfY29weV9mdWxsX25vbmV4c2l0ZW50X3J1bnRpbWVfc3RyZWFtKTsKLSAKLSAgIGdf dGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9kZXBlbmRlbmNpZXMveWFtbC9wYXJzZSIsCi0g ICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llc190ZXN0X3BhcnNlX3lhbWwpOwotZGlmZiAt LWdpdCBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtbW9kdWxlLmMgYi9tb2R1bGVtZC90 ZXN0cy90ZXN0LW1vZHVsZW1kLW1vZHVsZS5jCi1pbmRleCBjMDgzYzk2Li43NzU5YjM3IDEwMDY0 NAotLS0tIGEvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1tb2R1bGUuYwotKysrIGIvbW9k dWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1tb2R1bGUuYwotQEAgLTE0LDcgKzE0LDYgQEAKLSAj aW5jbHVkZSA8Z2xpYi5oPgotICNpbmNsdWRlIDxnbGliL2dzdGRpby5oPgotICNpbmNsdWRlIDxs b2NhbGUuaD4KLS0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0gCi0gI2luY2x1ZGUgIm1vZHVsZW1kLWRl ZmF1bHRzLmgiCi0gI2luY2x1ZGUgIm1vZHVsZW1kLW1vZHVsZS1pbmRleC1tZXJnZXIuaCIKLUBA IC0zOCw3ICszNyw3IEBAIHR5cGVkZWYgc3RydWN0IF9Nb2R1bGVGaXh0dXJlCi0gCi0gCi0gc3Rh dGljIHZvaWQKLS1tb2R1bGVfdGVzdF9jb25zdHJ1Y3QgKHZvaWQpCi0rbW9kdWxlX3Rlc3RfY29u c3RydWN0X3JlZ3VsYXIgKHZvaWQpCi0gewotICAgZ19hdXRvcHRyIChNb2R1bGVtZE1vZHVsZSkg bSA9IE5VTEw7Ci0gICBnX2F1dG9wdHIgKEdQdHJBcnJheSkgbGlzdCA9IE5VTEw7Ci1AQCAtNjYs MjcgKzY1LDUxIEBAIG1vZHVsZV90ZXN0X2NvbnN0cnVjdCAodm9pZCkKLSAgIGdfYXNzZXJ0X3Ry dWUgKE1PRFVMRU1EX0lTX01PRFVMRSAobSkpOwotICAgZ19hc3NlcnRfY21wc3RyIChtb2R1bGVt ZF9tb2R1bGVfZ2V0X21vZHVsZV9uYW1lIChtKSwgPT0sICJ0ZXN0bW9kdWxlIik7Ci0gICBnX2Ns ZWFyX29iamVjdCAoJm0pOwotK30KLSAKLS0gIC8qIFRlc3QgdGhhdCB3ZSBhYm9ydCB3aXRoIGEg TlVMTCBuYW1lIHRvIG5ldygpICovCi0tICBtb2R1bGVtZF90ZXN0X3NpZ25hbCA9IDA7Ci0tICBz aWduYWwgKFNJR1RSQVAsIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsX2hhbmRsZXIpOwotLSAgbSA9IG1v ZHVsZW1kX21vZHVsZV9uZXcgKE5VTEwpOwotLSAgZ19hc3NlcnRfY21waW50IChtb2R1bGVtZF90 ZXN0X3NpZ25hbCwgPT0sIFNJR1RSQVApOwotLSAgZ19jbGVhcl9vYmplY3QgKCZtKTsKLSAKLS0g IC8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3ZSBpbnN0YW50aWF0ZSB3aXRob3V0IGEgbmFtZSAq LwotLSAgbW9kdWxlbWRfdGVzdF9zaWduYWwgPSAwOwotLSAgc2lnbmFsIChTSUdUUkFQLCBtb2R1 bGVtZF90ZXN0X3NpZ25hbF9oYW5kbGVyKTsKLS0gIG0gPSBnX29iamVjdF9uZXcgKE1PRFVMRU1E X1RZUEVfTU9EVUxFLCBOVUxMKTsKLS0gIGdfYXNzZXJ0X2NtcGludCAobW9kdWxlbWRfdGVzdF9z aWduYWwsID09LCBTSUdUUkFQKTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmbSk7Ci0rLyogVGVzdCB0 aGF0IHdlIGFib3J0IHdpdGggYSBOVUxMIG5hbWUgdG8gbmV3KCkgKi8KLStzdGF0aWMgdm9pZAot K21vZHVsZV90ZXN0X2NvbnN0cnVjdF9uZXdfbnVsbF9uYW1lICh2b2lkKQotK3sKLSsgIGlmIChn X3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRN b2R1bGUpIG0gPSBOVUxMOwotKyAgICAgIG0gPSBtb2R1bGVtZF9tb2R1bGVfbmV3IChOVUxMKTsK LSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEws IDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2Zh aWxlZCAoKTsKLSt9Ci0gCi0tICAvKiB0ZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgaW5zdGFudGlh dGUgd2l0aCBhIE5VTEwgbmFtZSAqLwotLSAgbW9kdWxlbWRfdGVzdF9zaWduYWwgPSAwOwotLSAg c2lnbmFsIChTSUdUUkFQLCBtb2R1bGVtZF90ZXN0X3NpZ25hbF9oYW5kbGVyKTsKLS0gIG0gPSBn X29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfTU9EVUxFLCAibW9kdWxlLW5hbWUiLCBOVUxMLCBO VUxMKTsKLS0gIGdfYXNzZXJ0X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdU UkFQKTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmbSk7Ci0rCi0rLyogVGVzdCB0aGF0IHdlIGFib3J0 IGlmIHdlIGluc3RhbnRpYXRlIHdpdGhvdXQgYSBuYW1lICovCi0rc3RhdGljIHZvaWQKLSttb2R1 bGVfdGVzdF9jb25zdHJ1Y3RfaW5pdF9ub19uYW1lICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rf c3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRNb2R1bGUp IG0gPSBOVUxMOwotKyAgICAgIG0gPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfTU9EVUxF LCBOVUxMKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nl c3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBf YXNzZXJ0X2ZhaWxlZCAoKTsKLSt9Ci0rCi0rCi0rLyogdGVzdCB0aGF0IHdlIGFib3J0IGlmIHdl IGluc3RhbnRpYXRlIHdpdGggYSBOVUxMIG5hbWUgKi8KLStzdGF0aWMgdm9pZAotK21vZHVsZV90 ZXN0X2NvbnN0cnVjdF9pbml0X251bGxfbmFtZSAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1 YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kTW9kdWxlKSBt ID0gTlVMTDsKLSsgICAgICBtID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX01PRFVMRSwg Im1vZHVsZS1uYW1lIiwgTlVMTCwgTlVMTCk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBn X3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxU KTsKLSsgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7Ci0gfQotIAotIAotQEAgLTgwMSw3 ICs4MjQsMTQgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAKLSAgIC8vIERlZmlu ZSB0aGUgdGVzdHMuCi0gCi0tICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvbW9kdWxl L2NvbnN0cnVjdCIsIG1vZHVsZV90ZXN0X2NvbnN0cnVjdCk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMg KCIvbW9kdWxlbWQvdjIvbW9kdWxlL2NvbnN0cnVjdC9yZWd1bGFyIiwKLSsgICAgICAgICAgICAg ICAgICAgbW9kdWxlX3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIpOwotKyAgZ190ZXN0X2FkZF9mdW5j ICgiL21vZHVsZW1kL3YyL21vZHVsZS9jb25zdHJ1Y3QvbmV3X251bGxfbmFtZSIsCi0rICAgICAg ICAgICAgICAgICAgIG1vZHVsZV90ZXN0X2NvbnN0cnVjdF9uZXdfbnVsbF9uYW1lKTsKLSsgIGdf dGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9tb2R1bGUvY29uc3RydWN0L2luaXRfbm9fbmFt ZSIsCi0rICAgICAgICAgICAgICAgICAgIG1vZHVsZV90ZXN0X2NvbnN0cnVjdF9pbml0X25vX25h bWUpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL21vZHVsZS9jb25zdHJ1Y3Qv aW5pdF9udWxsX25hbWUiLAotKyAgICAgICAgICAgICAgICAgICBtb2R1bGVfdGVzdF9jb25zdHJ1 Y3RfaW5pdF9udWxsX25hbWUpOwotIAotICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3Yy L21vZHVsZS9kZWZhdWx0cyIsIG1vZHVsZV90ZXN0X2RlZmF1bHRzKTsKLSAKLWRpZmYgLS1naXQg YS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLW9ic29sZXRlcy5jIGIvbW9kdWxlbWQvdGVz dHMvdGVzdC1tb2R1bGVtZC1vYnNvbGV0ZXMuYwotaW5kZXggZjNlOTBkMy4uZDRjZWQzYyAxMDA2 NDQKLS0tLSBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtb2Jzb2xldGVzLmMKLSsrKyBi L21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtb2Jzb2xldGVzLmMKLUBAIC0xNCw3ICsxNCw2 IEBACi0gI2luY2x1ZGUgPGdsaWIuaD4KLSAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KLSAjaW5j bHVkZSA8bG9jYWxlLmg+Ci0tI2luY2x1ZGUgPHNpZ25hbC5oPgotIAotICNpbmNsdWRlICJtb2R1 bGVtZC1zdWJkb2N1bWVudC1pbmZvLmgiCi0gI2luY2x1ZGUgIm1vZHVsZW1kLW9ic29sZXRlcy5o IgotQEAgLTI2LDcgKzI1LDcgQEAKLSAjaW5jbHVkZSAicHJpdmF0ZS90ZXN0LXV0aWxzLmgiCi0g Ci0gc3RhdGljIHZvaWQKLS1vYnNvbGV0ZXNfdGVzdF9jb25zdHJ1Y3QgKHZvaWQpCi0rb2Jzb2xl dGVzX3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIgKHZvaWQpCi0gewotICAgZ19hdXRvcHRyIChNb2R1 bGVtZE9ic29sZXRlcykgZSA9IE5VTEw7Ci0gCi1AQCAtMzksMzMgKzM4LDUxIEBAIG9ic29sZXRl c190ZXN0X2NvbnN0cnVjdCAodm9pZCkKLSAgIGdfYXNzZXJ0X2NtcHN0ciAobW9kdWxlbWRfb2Jz b2xldGVzX2dldF9tb2R1bGVfc3RyZWFtIChlKSwgPT0sICJ0ZXN0c3RyZWFtIik7Ci0gICBnX2Fz c2VydF9jbXBzdHIgKG1vZHVsZW1kX29ic29sZXRlc19nZXRfbWVzc2FnZSAoZSksID09LCAidGVz dG1lc3NhZ2UiKTsKLSAgIGdfY2xlYXJfb2JqZWN0ICgmZSk7Ci0rfQotIAotLSAgLyogVGVzdCBu ZXcoKSB3aXRoIGEgTlVMTCBtb2R1bGVfbmFtZSAqLwotLSAgbW9kdWxlbWRfdGVzdF9zaWduYWwg PSAwOwotLSAgc2lnbmFsIChTSUdUUkFQLCBtb2R1bGVtZF90ZXN0X3NpZ25hbF9oYW5kbGVyKTsK LS0gIGUgPSBtb2R1bGVtZF9vYnNvbGV0ZXNfbmV3ICgKLS0gICAgTURfT0JTT0xFVEVTX1ZFUlNJ T05fT05FLCAyLCBOVUxMLCAidGVzdHN0cmVhbSIsICJ0ZXN0bWVzc2FnZSIpOwotLSAgZ19hc3Nl cnRfY21waW50IChtb2R1bGVtZF90ZXN0X3NpZ25hbCwgPT0sIFNJR1RSQVApOwotLSAgLyogSWYg d2UgdHJhcCB0aGUgZXJyb3IsIG9ic29sZXRlcyBhY3R1YWxseSByZXR1cm5zIGEgdmFsdWUgaGVy ZSwgc28gZnJlZSBpdCAqLwotLSAgZ19jbGVhcl9vYmplY3QgKCZlKTsKLSsvKiBUZXN0IG5ldygp IHdpdGggYSBOVUxMIG1vZHVsZV9uYW1lICovCi0rc3RhdGljIHZvaWQKLStvYnNvbGV0ZXNfdGVz dF9jb25zdHJ1Y3RfbnVsbF9tb2R1bGVfbmFtZSAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1 YnByb2Nlc3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kT2Jzb2xldGVz KSBlID0gTlVMTDsKLSsgICAgICBlID0gbW9kdWxlbWRfb2Jzb2xldGVzX25ldyAoCi0rICAgICAg ICBNRF9PQlNPTEVURVNfVkVSU0lPTl9PTkUsIDIsIE5VTEwsICJ0ZXN0c3RyZWFtIiwgInRlc3Rt ZXNzYWdlIik7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9j ZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFw X2Fzc2VydF9mYWlsZWQgKCk7Ci0rfQotIAotLSAgLyogVGVzdCBuZXcoKSB3aXRoIGEgTlVMTCBt b2R1bGVfY29udGV4dCAqLwotLSAgbW9kdWxlbWRfdGVzdF9zaWduYWwgPSAwOwotLSAgc2lnbmFs IChTSUdUUkFQLCBtb2R1bGVtZF90ZXN0X3NpZ25hbF9oYW5kbGVyKTsKLS0gIGUgPSBtb2R1bGVt ZF9vYnNvbGV0ZXNfbmV3ICgKLS0gICAgTURfT0JTT0xFVEVTX1ZFUlNJT05fT05FLCAyLCAidGVz dG1vZHVsZSIsIE5VTEwsICJ0ZXN0bWVzc2FnZSIpOwotLSAgZ19hc3NlcnRfY21waW50IChtb2R1 bGVtZF90ZXN0X3NpZ25hbCwgPT0sIFNJR1RSQVApOwotLSAgLyogSWYgd2UgdHJhcCB0aGUgZXJy b3IsIG9ic29sZXRlcyBhY3R1YWxseSByZXR1cm5zIGEgdmFsdWUgaGVyZSwgc28gZnJlZSBpdCAq LwotLSAgZ19jbGVhcl9vYmplY3QgKCZlKTsKLSsvKiBUZXN0IG5ldygpIHdpdGggYSBOVUxMIG1v ZHVsZV9jb250ZXh0ICovCi0rc3RhdGljIHZvaWQKLStvYnNvbGV0ZXNfdGVzdF9jb25zdHJ1Y3Rf bnVsbF9tb2R1bGVfY29udGV4dCAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nlc3Mg KCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kT2Jzb2xldGVzKSBlID0gTlVM TDsKLSsgICAgICBlID0gbW9kdWxlbWRfb2Jzb2xldGVzX25ldyAoCi0rICAgICAgICBNRF9PQlNP TEVURVNfVkVSU0lPTl9PTkUsIDIsICJ0ZXN0bW9kdWxlIiwgTlVMTCwgInRlc3RtZXNzYWdlIik7 Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxM LCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFwX2Fzc2VydF9m YWlsZWQgKCk7Ci0rfQotIAotLSAgLyogVGVzdCBuZXcoKSB3aXRoIGEgTlVMTCBtZXNzYWdlICov Ci0tICBtb2R1bGVtZF90ZXN0X3NpZ25hbCA9IDA7Ci0tICBzaWduYWwgKFNJR1RSQVAsIG1vZHVs ZW1kX3Rlc3Rfc2lnbmFsX2hhbmRsZXIpOwotLSAgZSA9IG1vZHVsZW1kX29ic29sZXRlc19uZXcg KAotLSAgICBNRF9PQlNPTEVURVNfVkVSU0lPTl9PTkUsIDIsICJ0ZXN0bW9kdWxlIiwgInRlc3Rz dHJlYW0iLCBOVUxMKTsKLS0gIGdfYXNzZXJ0X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWws ID09LCBTSUdUUkFQKTsKLS0gIC8qIElmIHdlIHRyYXAgdGhlIGVycm9yLCBvYnNvbGV0ZXMgYWN0 dWFsbHkgcmV0dXJucyBhIHZhbHVlIGhlcmUsIHNvIGZyZWUgaXQgKi8KLS0gIGdfY2xlYXJfb2Jq ZWN0ICgmZSk7Ci0rLyogVGVzdCBuZXcoKSB3aXRoIGEgTlVMTCBtZXNzYWdlICovCi0rc3RhdGlj IHZvaWQKLStvYnNvbGV0ZXNfdGVzdF9jb25zdHJ1Y3RfbnVsbF9tZXNzYWdlICh2b2lkKQotK3sK LSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAo TW9kdWxlbWRPYnNvbGV0ZXMpIGUgPSBOVUxMOwotKyAgICAgIGUgPSBtb2R1bGVtZF9vYnNvbGV0 ZXNfbmV3ICgKLSsgICAgICAgIE1EX09CU09MRVRFU19WRVJTSU9OX09ORSwgMiwgInRlc3Rtb2R1 bGUiLCAidGVzdHN0cmVhbSIsIE5VTEwpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190 ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7 Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotIH0KLSAKLSBzdGF0aWMgdm9pZAot QEAgLTQ5Niw4ICs1MTMsMTQgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAKLSAg IC8vIERlZmluZSB0aGUgdGVzdHMuCi0gCi0tICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQv djIvb2Jzb2xldGVzL2NvbnN0cnVjdCIsCi0tICAgICAgICAgICAgICAgICAgIG9ic29sZXRlc190 ZXN0X2NvbnN0cnVjdCk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvb2Jzb2xl dGVzL2NvbnN0cnVjdC9yZWd1bGFyIiwKLSsgICAgICAgICAgICAgICAgICAgb2Jzb2xldGVzX3Rl c3RfY29uc3RydWN0X3JlZ3VsYXIpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3Yy L29ic29sZXRlcy9jb25zdHJ1Y3QvbnVsbF9tb2R1bGVfbmFtZSIsCi0rICAgICAgICAgICAgICAg ICAgIG9ic29sZXRlc190ZXN0X2NvbnN0cnVjdF9udWxsX21vZHVsZV9uYW1lKTsKLSsgIGdfdGVz dF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9vYnNvbGV0ZXMvY29uc3RydWN0L251bGxfbW9kdWxl X2NvbnRleHQiLAotKyAgICAgICAgICAgICAgICAgICBvYnNvbGV0ZXNfdGVzdF9jb25zdHJ1Y3Rf bnVsbF9tb2R1bGVfY29udGV4dCk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIv b2Jzb2xldGVzL2NvbnN0cnVjdC9udWxsX21lc3NhZ2UiLAotKyAgICAgICAgICAgICAgICAgICBv YnNvbGV0ZXNfdGVzdF9jb25zdHJ1Y3RfbnVsbF9tZXNzYWdlKTsKLSAKLSAgIGdfdGVzdF9hZGRf ZnVuYyAoIi9tb2R1bGVtZC92Mi9vYnNvbGV0ZXMvY29weSIsIG9ic29sZXRlc190ZXN0X2NvcHkp OwotIAotZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtcHJvZmlsZS5j IGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1wcm9maWxlLmMKLWluZGV4IDNhNzMwYzEu LmI0YmQ4OGYgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLXByb2Zp bGUuYwotKysrIGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1wcm9maWxlLmMKLUBAIC0x NCw3ICsxNCw2IEBACi0gI2luY2x1ZGUgPGdsaWIuaD4KLSAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8u aD4KLSAjaW5jbHVkZSA8bG9jYWxlLmg+Ci0tI2luY2x1ZGUgPHNpZ25hbC5oPgotIAotICNpbmNs dWRlICJtb2R1bGVtZC1wcm9maWxlLmgiCi0gI2luY2x1ZGUgInByaXZhdGUvZ2xpYi1leHRlbnNp b25zLmgiCi1AQCAtMjYsMTYgKzI1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1Byb2ZpbGVGaXh0dXJl Ci0gewotIH0gUHJvZmlsZUZpeHR1cmU7Ci0gCi0tZ2Jvb2xlYW4gc2lnbmFsZWQgPSBGQUxTRTsK LS0KLSBzdGF0aWMgdm9pZAotLXNpZ3RyYXBfaGFuZGxlciAoaW50IFVOVVNFRCAoc2lnX251bSkp Ci0tewotLSAgc2lnbmFsZWQgPSBUUlVFOwotLX0KLS0KLS1zdGF0aWMgdm9pZAotLXByb2ZpbGVf dGVzdF9jb25zdHJ1Y3QgKHZvaWQpCi0rcHJvZmlsZV90ZXN0X2NvbnN0cnVjdF9yZWd1bGFyICh2 b2lkKQotIHsKLSAgIGdfYXV0b3B0ciAoTW9kdWxlbWRQcm9maWxlKSBwID0gTlVMTDsKLSAgIGdf YXV0byAoR1N0cnYpIHJwbXMgPSBOVUxMOwotQEAgLTU2LDI3ICs0Nyw1MiBAQCBwcm9maWxlX3Rl c3RfY29uc3RydWN0ICh2b2lkKQotICAgZ19hc3NlcnRfdHJ1ZSAoTU9EVUxFTURfSVNfUFJPRklM RSAocCkpOwotICAgZ19hc3NlcnRfY21wc3RyIChtb2R1bGVtZF9wcm9maWxlX2dldF9uYW1lIChw KSwgPT0sICJ0ZXN0cHJvZmlsZSIpOwotICAgZ19jbGVhcl9vYmplY3QgKCZwKTsKLSt9Ci0gCi0t ICAvKiBUZXN0IHRoYXQgd2UgYWJvcnQgd2l0aCBhIE5VTEwgbmFtZSB0byBuZXcoKSAqLwotLSAg c2lnbmFsZWQgPSBGQUxTRTsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsK LS0gIHAgPSBtb2R1bGVtZF9wcm9maWxlX25ldyAoTlVMTCk7Ci0tICBnX2Fzc2VydF90cnVlIChz aWduYWxlZCk7Ci0tICBnX2NsZWFyX29iamVjdCAoJnApOwotIAotLSAgLyogVGVzdCB0aGF0IHdl IGFib3J0IGlmIHdlIGluc3RhbnRpYXRlIHdpdGhvdXQgYSBuYW1lICovCi0tICBzaWduYWxlZCA9 IEZBTFNFOwotLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOwotLSAgcCA9IGdf b2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9QUk9GSUxFLCBOVUxMKTsKLS0gIGdfYXNzZXJ0X3Ry dWUgKHNpZ25hbGVkKTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmcCk7Ci0rLyogVGVzdCB0aGF0IHdl IGFib3J0IHdpdGggYSBOVUxMIG5hbWUgdG8gbmV3KCkgKi8KLStzdGF0aWMgdm9pZAotK3Byb2Zp bGVfdGVzdF9jb25zdHJ1Y3RfbmV3X251bGwgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9zdWJw cm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZFByb2ZpbGUpIHAg PSBOVUxMOwotKyAgICAgIHAgPSBtb2R1bGVtZF9wcm9maWxlX25ldyAoTlVMTCk7Ci0rICAgICAg cmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RF U1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7 Ci0rfQotIAotLSAgLyogdGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGluc3RhbnRpYXRlIHdpdGgg YSBOVUxMIG5hbWUgKi8KLS0gIHNpZ25hbGVkID0gRkFMU0U7Ci0tICBzaWduYWwgKFNJR1RSQVAs IHNpZ3RyYXBfaGFuZGxlcik7Ci0tICBwID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1BS T0ZJTEUsICJuYW1lIiwgTlVMTCwgTlVMTCk7Ci0tICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7 Ci0tICBnX2NsZWFyX29iamVjdCAoJnApOwotKwotKy8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3 ZSBpbnN0YW50aWF0ZSB3aXRob3V0IGEgbmFtZSAqLwotK3N0YXRpYyB2b2lkCi0rcHJvZmlsZV90 ZXN0X2NvbnN0cnVjdF9pbml0X25vX25hbWUgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9zdWJw cm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZFByb2ZpbGUpIHAg PSBOVUxMOwotKyAgICAgIHAgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfUFJPRklMRSwg TlVMTCk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNz IChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFwX2Fz c2VydF9mYWlsZWQgKCk7Ci0rfQotKwotKwotKy8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3ZSBp bnN0YW50aWF0ZSB3aXRoIGEgTlVMTCBuYW1lICovCi0rc3RhdGljIHZvaWQKLStwcm9maWxlX3Rl c3RfY29uc3RydWN0X2luaXRfbnVsbF9uYW1lICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rfc3Vi cHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRQcm9maWxlKSBw ID0gTlVMTDsKLSsKLSsgICAgICBwID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1BST0ZJ TEUsICJuYW1lIiwgTlVMTCwgTlVMTCk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rl c3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsK LSsgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7Ci0gfQotIAotIAotQEAgLTM1MywxMiAr MzY5LDIzIEBAIHByb2ZpbGVfdGVzdF9nZXRfbmFtZSAodm9pZCkKLSAKLSAgIGdfb2JqZWN0X2dl dCAocCwgIm5hbWUiLCAmbmFtZSwgTlVMTCk7Ci0gICBnX2Fzc2VydF9jbXBzdHIgKG5hbWUsID09 LCAidGVzdHByb2ZpbGUiKTsKLSt9Ci0rCi0gCi0tICAvKiBUZXN0IHRoYXQgbmFtZSBpcyBpbW11 dGFibGUgKi8KLS0gIHNpZ25hbGVkID0gRkFMU0U7Ci0tICBzaWduYWwgKFNJR1RSQVAsIHNpZ3Ry YXBfaGFuZGxlcik7Ci0tICBnX29iamVjdF9zZXQgKHAsICJuYW1lIiwgIm5vdGF0ZXN0IiwgTlVM TCk7Ci0tICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7Ci0rLyogVGVzdCB0aGF0IG5hbWUgaXMg aW1tdXRhYmxlICovCi0rc3RhdGljIHZvaWQKLStwcm9maWxlX3Rlc3RfbmFtZV9pc19pbW11dGFi bGUgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQotKyAgICB7Ci0rICAg ICAgZ19hdXRvcHRyIChNb2R1bGVtZFByb2ZpbGUpIHAgPSBOVUxMOwotKyAgICAgIHAgPSBtb2R1 bGVtZF9wcm9maWxlX25ldyAoInRlc3Rwcm9maWxlIik7Ci0rCi0rICAgICAgZ19vYmplY3Rfc2V0 IChwLCAibmFtZSIsICJub3RhdGVzdCIsIE5VTEwpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQot KyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVG QVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotIH0KLSAKLSAKLUBAIC01 NzYsNyArNjAzLDE0IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gCi0gICAvLyBE ZWZpbmUgdGhlIHRlc3RzLgotIAotLSAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3By b2ZpbGUvY29uc3RydWN0IiwgcHJvZmlsZV90ZXN0X2NvbnN0cnVjdCk7Ci0rICBnX3Rlc3RfYWRk X2Z1bmMgKCIvbW9kdWxlbWQvdjIvcHJvZmlsZS9jb25zdHJ1Y3QvcmVndWxhciIsCi0rICAgICAg ICAgICAgICAgICAgIHByb2ZpbGVfdGVzdF9jb25zdHJ1Y3RfcmVndWxhcik7Ci0rICBnX3Rlc3Rf YWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvcHJvZmlsZS9jb25zdHJ1Y3QvbmV3X251bGwiLAotKyAg ICAgICAgICAgICAgICAgICBwcm9maWxlX3Rlc3RfY29uc3RydWN0X25ld19udWxsKTsKLSsgIGdf dGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9wcm9maWxlL2NvbnN0cnVjdC9pbml0X25vX25h bWUiLAotKyAgICAgICAgICAgICAgICAgICBwcm9maWxlX3Rlc3RfY29uc3RydWN0X2luaXRfbm9f bmFtZSk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvcHJvZmlsZS9jb25zdHJ1 Y3QvaW5pdF9udWxsX25hbWUiLAotKyAgICAgICAgICAgICAgICAgICBwcm9maWxlX3Rlc3RfY29u c3RydWN0X2luaXRfbnVsbF9uYW1lKTsKLSAKLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVt ZC92Mi9wcm9maWxlL2VxdWFscyIsIHByb2ZpbGVfdGVzdF9lcXVhbHMpOwotIAotQEAgLTU4NCw2 ICs2MTgsOSBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAotICAgZ190ZXN0X2Fk ZF9mdW5jICgiL21vZHVsZW1kL3YyL3Byb2ZpbGUvZ2V0X25hbWUiLCBwcm9maWxlX3Rlc3RfZ2V0 X25hbWUpOwotIAotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3Byb2ZpbGUvbmFt ZV9pc19pbW11dGFibGUiLAotKyAgICAgICAgICAgICAgICAgICBwcm9maWxlX3Rlc3RfbmFtZV9p c19pbW11dGFibGUpOwotKwotICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3Byb2Zp bGUvZ2V0X3NldF9kZXNjcmlwdGlvbiIsCi0gICAgICAgICAgICAgICAgICAgIHByb2ZpbGVfdGVz dF9nZXRfc2V0X2Rlc2NyaXB0aW9uKTsKLSAKLWRpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy90 ZXN0LW1vZHVsZW1kLXNlcnZpY2UtbGV2ZWwuYyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxl bWQtc2VydmljZS1sZXZlbC5jCi1pbmRleCBkOGVlOTgxLi45NjE5NTZkIDEwMDY0NAotLS0tIGEv bW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1zZXJ2aWNlLWxldmVsLmMKLSsrKyBiL21vZHVs ZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtc2VydmljZS1sZXZlbC5jCi1AQCAtMTQsNyArMTQsNiBA QAotICNpbmNsdWRlIDxnbGliLmg+Ci0gI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+Ci0gI2luY2x1 ZGUgPGxvY2FsZS5oPgotLSNpbmNsdWRlIDxzaWduYWwuaD4KLSAKLSAjaW5jbHVkZSAibW9kdWxl bWQtc2VydmljZS1sZXZlbC5oIgotICNpbmNsdWRlICJwcml2YXRlL2dsaWItZXh0ZW5zaW9ucy5o IgotQEAgLTI2LDE2ICsyNSw4IEBAIHR5cGVkZWYgc3RydWN0IF9TZXJ2aWNlTGV2ZWxGaXh0dXJl Ci0gewotIH0gU2VydmljZUxldmVsRml4dHVyZTsKLSAKLS1nYm9vbGVhbiBzaWduYWxlZCA9IEZB TFNFOwotLQotLXN0YXRpYyB2b2lkCi0tc2lndHJhcF9oYW5kbGVyIChpbnQgVU5VU0VEIChzaWdf bnVtKSkKLS17Ci0tICBzaWduYWxlZCA9IFRSVUU7Ci0tfQotLQotIHN0YXRpYyB2b2lkCi0tc2Vy dmljZV9sZXZlbF90ZXN0X2NvbnN0cnVjdCAodm9pZCkKLStzZXJ2aWNlX2xldmVsX3Rlc3RfY29u c3RydWN0X3JlZ3VsYXIgKHZvaWQpCi0gewotICAgZ19hdXRvcHRyIChNb2R1bGVtZFNlcnZpY2VM ZXZlbCkgc2wgPSBOVUxMOwotIAotQEAgLTU5LDM0ICs1MCw1NSBAQCBzZXJ2aWNlX2xldmVsX3Rl c3RfY29uc3RydWN0ICh2b2lkKQotICAgZ19hc3NlcnRfY21wc3RyIChtb2R1bGVtZF9zZXJ2aWNl X2xldmVsX2dldF9uYW1lIChzbCksID09LCAiYmFyIik7Ci0gICBnX2Fzc2VydF9udWxsIChtb2R1 bGVtZF9zZXJ2aWNlX2xldmVsX2dldF9lb2wgKHNsKSk7Ci0gICBnX2NsZWFyX29iamVjdCAoJnNs KTsKLSt9Ci0gCi0gCi0tICAvKiBUZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgY2FsbCBuZXcoKSB3 aXRoIGEgTlVMTCBuYW1lICovCi0tICBzaWduYWxlZCA9IEZBTFNFOwotLSAgc2lnbmFsIChTSUdU UkFQLCBzaWd0cmFwX2hhbmRsZXIpOwotLSAgc2wgPSBtb2R1bGVtZF9zZXJ2aWNlX2xldmVsX25l dyAoTlVMTCk7Ci0tICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7Ci0tICBnX2NsZWFyX29iamVj dCAoJnNsKTsKLSsvKiBUZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgY2FsbCBuZXcoKSB3aXRoIGEg TlVMTCBuYW1lICovCi0rc3RhdGljIHZvaWQKLStzZXJ2aWNlX2xldmVsX3Rlc3RfY29uc3RydWN0 X25ld19udWxsICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAg ewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRTZXJ2aWNlTGV2ZWwpIHNsID0gTlVMTDsKLSsg ICAgICBzbCA9IG1vZHVsZW1kX3NlcnZpY2VfbGV2ZWxfbmV3IChOVUxMKTsKLSsgICAgICByZXR1 cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9T VUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSt9 Ci0gCi0gCi0tICAvKiBUZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgaW5zdGF0aWF0ZSB3aXRob3V0 IGEgbmFtZSAqLwotLSAgc2lnbmFsZWQgPSBGQUxTRTsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgc2ln dHJhcF9oYW5kbGVyKTsKLS0gIHNsID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1NFUlZJ Q0VfTEVWRUwsIE5VTEwpOwotLSAgZ19hc3NlcnRfdHJ1ZSAoc2lnbmFsZWQpOwotLSAgZ19jbGVh cl9vYmplY3QgKCZzbCk7Ci0rLyogVGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGluc3RhdGlhdGUg d2l0aG91dCBhIG5hbWUgKi8KLStzdGF0aWMgdm9pZAotK3NlcnZpY2VfbGV2ZWxfdGVzdF9jb25z dHJ1Y3RfaW5pdF9ub19uYW1lICh2b2lkKQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAo KSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRTZXJ2aWNlTGV2ZWwpIHNsID0g TlVMTDsKLSsgICAgICBzbCA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9TRVJWSUNFX0xF VkVMLCBOVUxMKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnBy b2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3Ry YXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSt9Ci0gCi0gCi0tICAvKiBUZXN0IHRoYXQgd2UgYWJvcnQg aWYgd2UgaW5zdGF0aWF0ZSB3aXRoIGEgTlVMTCBuYW1lICovCi0tICBzaWduYWxlZCA9IEZBTFNF OwotLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOwotLSAgLy8gY2xhbmctZm9y bWF0IG9mZgotLSAgc2wgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfU0VSVklDRV9MRVZF TCwKLS0gICAgICAgICAgICAgICAgICAgICAibmFtZSIsIE5VTEwsCi0tICAgICAgICAgICAgICAg ICAgICAgTlVMTCk7Ci0tICAvLyBjbGFuZy1mb3JtYXQgb24KLS0gIGdfYXNzZXJ0X3RydWUgKHNp Z25hbGVkKTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmc2wpOwotKy8qIFRlc3QgdGhhdCB3ZSBhYm9y dCBpZiB3ZSBpbnN0YXRpYXRlIHdpdGggYSBOVUxMIG5hbWUgKi8KLStzdGF0aWMgdm9pZAotK3Nl cnZpY2VfbGV2ZWxfdGVzdF9jb25zdHJ1Y3RfaW5pdF9udWxsX25hbWUgKHZvaWQpCi0rewotKyAg aWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1 bGVtZFNlcnZpY2VMZXZlbCkgc2wgPSBOVUxMOwotKyAgICAgIC8vIGNsYW5nLWZvcm1hdCBvZmYK LSsgICAgICBzbCA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9TRVJWSUNFX0xFVkVMLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIsIE5VTEwsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgIE5VTEwpOwotKyAgICAgIC8vIGNsYW5nLWZvcm1hdCBvbgotKyAgICAgIHJldHVy bjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NV QlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotIH0K LSAKLSAKLUBAIC0yNDksMTkgKzI2MSwyNSBAQCBzZXJ2aWNlX2xldmVsX3Rlc3RfZ2V0X25hbWUg KHZvaWQpCi0gICAgICAgICAgICAgICAgIE5VTEwpOwotICAgLy8gY2xhbmctZm9ybWF0IG9uCi0g ICBnX2Fzc2VydF9jbXBzdHIgKG5hbWUsID09LCAiZm9vIik7Ci0rfQotIAotIAotLSAgLyogVGVz dCB0aGF0IHRyeWluZyB0byBzZXQgdGhlIG5hbWUgYnkgb2JqZWN0IHByb3BlcnRpZXMgZmFpbHMu Ci0tICAgKiBUaGUgbmFtZSBtdXN0IGJlIGltbXV0YWJsZSBmb3IgdGhlIGxpZmUgb2YgdGhlIG9i amVjdC4KLS0gICAqLwotLSAgc2lnbmFsZWQgPSBGQUxTRTsKLS0gIHNpZ25hbCAoU0lHVFJBUCwg c2lndHJhcF9oYW5kbGVyKTsKLS0gIC8vIGNsYW5nLWZvcm1hdCBvZmYKLS0gIGdfb2JqZWN0X3Nl dCAoc2wsCi0tICAgICAgICAgICAgICAgICJuYW1lIiwgImJhciIsCi0tICAgICAgICAgICAgICAg IE5VTEwpOwotLSAgLy8gY2xhbmctZm9ybWF0IG9uCi0tICBnX2Fzc2VydF90cnVlIChzaWduYWxl ZCk7Ci0rLyoKLSsgKiBUZXN0IHRoYXQgdHJ5aW5nIHRvIHNldCB0aGUgbmFtZSBieSBvYmplY3Qg cHJvcGVydGllcyBmYWlscy4KLSsgKiBUaGUgbmFtZSBtdXN0IGJlIGltbXV0YWJsZSBmb3IgdGhl IGxpZmUgb2YgdGhlIG9iamVjdC4KLSsgKi8KLStzdGF0aWMgdm9pZAotK3NlcnZpY2VfbGV2ZWxf dGVzdF9uYW1lX2lzX2ltbXV0YWJsZSAodm9pZCkKLSt7Ci0rICBpZiAoZ190ZXN0X3N1YnByb2Nl c3MgKCkpCi0rICAgIHsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kU2VydmljZUxldmVsKSBz bCA9IE5VTEw7Ci0rICAgICAgc2wgPSBtb2R1bGVtZF9zZXJ2aWNlX2xldmVsX25ldyAoImZvbyIp OwotKyAgICAgIGdfb2JqZWN0X3NldCAoc2wsICJuYW1lIiwgImJhciIsIE5VTEwpOwotKyAgICAg IHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19U RVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgp OwotIH0KLSAKLSAKLUBAIC00NzYsMTIgKzQ5NCwyMSBAQCBtYWluIChpbnQgYXJnYywgY2hhciAq YXJndltdKQotIAotICAgLy8gRGVmaW5lIHRoZSB0ZXN0cy4KLSAKLS0gIGdfdGVzdF9hZGRfZnVu YyAoIi9tb2R1bGVtZC92Mi9zZXJ2aWNlbGV2ZWwvY29uc3RydWN0IiwKLS0gICAgICAgICAgICAg ICAgICAgc2VydmljZV9sZXZlbF90ZXN0X2NvbnN0cnVjdCk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMg KCIvbW9kdWxlbWQvdjIvc2VydmljZWxldmVsL2NvbnN0cnVjdC9yZWd1bGFyIiwKLSsgICAgICAg ICAgICAgICAgICAgc2VydmljZV9sZXZlbF90ZXN0X2NvbnN0cnVjdF9yZWd1bGFyKTsKLSsgIGdf dGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9zZXJ2aWNlbGV2ZWwvY29uc3RydWN0L25ld19u dWxsIiwKLSsgICAgICAgICAgICAgICAgICAgc2VydmljZV9sZXZlbF90ZXN0X2NvbnN0cnVjdF9u ZXdfbnVsbCk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvc2VydmljZWxldmVs L2NvbnN0cnVjdC9pbml0X25vX25hbWUiLAotKyAgICAgICAgICAgICAgICAgICBzZXJ2aWNlX2xl dmVsX3Rlc3RfY29uc3RydWN0X2luaXRfbm9fbmFtZSk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIv bW9kdWxlbWQvdjIvc2VydmljZWxldmVsL2NvbnN0cnVjdC9pbml0X251bGxfbmFtZSIsCi0rICAg ICAgICAgICAgICAgICAgIHNlcnZpY2VfbGV2ZWxfdGVzdF9jb25zdHJ1Y3RfaW5pdF9udWxsX25h bWUpOwotIAotICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3NlcnZpY2VsZXZlbC9n ZXRfc2V0X25hbWUiLAotICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlX2xldmVsX3Rlc3RfZ2V0 X25hbWUpOwotIAotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3NlcnZpY2VsZXZl bC9uYW1lX2lzX2ltbXV0YWJsZSIsCi0rICAgICAgICAgICAgICAgICAgIHNlcnZpY2VfbGV2ZWxf dGVzdF9uYW1lX2lzX2ltbXV0YWJsZSk7Ci0rCi0gICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxl bWQvdjIvc2VydmljZWxldmVsL2VxdWFscyIsCi0gICAgICAgICAgICAgICAgICAgIHNlcnZpY2Vf bGV2ZWxfdGVzdF9lcXVhbHMpOwotIAotZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL3Rlc3Qt bW9kdWxlbWQtdHJhbnNsYXRpb24tZW50cnkuYyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxl bWQtdHJhbnNsYXRpb24tZW50cnkuYwotaW5kZXggODU4YmRmYS4uZWUxNzk0MCAxMDA2NDQKLS0t LSBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtdHJhbnNsYXRpb24tZW50cnkuYwotKysr IGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC10cmFuc2xhdGlvbi1lbnRyeS5jCi1AQCAt MTQsNyArMTQsNiBAQAotICNpbmNsdWRlIDxnbGliLmg+Ci0gI2luY2x1ZGUgPGdsaWIvZ3N0ZGlv Lmg+Ci0gI2luY2x1ZGUgPGxvY2FsZS5oPgotLSNpbmNsdWRlIDxzaWduYWwuaD4KLSAKLSAjaW5j bHVkZSAibW9kdWxlbWQtdHJhbnNsYXRpb24tZW50cnkuaCIKLSAjaW5jbHVkZSAicHJpdmF0ZS9n bGliLWV4dGVuc2lvbnMuaCIKLUBAIC0yNiwxNiArMjUsOCBAQCB0eXBlZGVmIHN0cnVjdCBfVHJh bnNsYXRpb25FbnRyeUZpeHR1cmUKLSB7Ci0gfSBUcmFuc2xhdGlvbkVudHJ5Rml4dHVyZTsKLSAK LS1nYm9vbGVhbiBzaWduYWxlZCA9IEZBTFNFOwotLQotIHN0YXRpYyB2b2lkCi0tc2lndHJhcF9o YW5kbGVyIChpbnQgVU5VU0VEIChzaWdfbnVtKSkKLS17Ci0tICBzaWduYWxlZCA9IFRSVUU7Ci0t fQotLQotLXN0YXRpYyB2b2lkCi0tdHJhbnNsYXRpb25fZW50cnlfdGVzdF9jb25zdHJ1Y3QgKHZv aWQpCi0rdHJhbnNsYXRpb25fZW50cnlfdGVzdF9jb25zdHJ1Y3RfcmVndWxhciAodm9pZCkKLSB7 Ci0gICBnX2F1dG9wdHIgKE1vZHVsZW1kVHJhbnNsYXRpb25FbnRyeSkgdGUgPSBOVUxMOwotICAg Z19hdXRvIChHU3RydikgcHJvZmlsZV9uYW1lcyA9IE5VTEw7Ci1AQCAtMTEwLDM0ICsxMDEsNTUg QEAgdHJhbnNsYXRpb25fZW50cnlfdGVzdF9jb25zdHJ1Y3QgKHZvaWQpCi0gICBnX2Fzc2VydF9j bXBzdHIgKAotICAgICBtb2R1bGVtZF90cmFuc2xhdGlvbl9lbnRyeV9nZXRfZGVzY3JpcHRpb24g KHRlKSwgPT0sICJqdW1wZWQiKTsKLSAgIGdfY2xlYXJfb2JqZWN0ICgmdGUpOwotK30KLSAKLSAK LS0gIC8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3ZSBjYWxsIG5ldygpIHdpdGggYSBOVUxMIGxv Y2FsZSAqLwotLSAgc2lnbmFsZWQgPSBGQUxTRTsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJh cF9oYW5kbGVyKTsKLS0gIHRlID0gbW9kdWxlbWRfdHJhbnNsYXRpb25fZW50cnlfbmV3IChOVUxM KTsKLS0gIGdfYXNzZXJ0X3RydWUgKHNpZ25hbGVkKTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmdGUp OwotKy8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3ZSBjYWxsIG5ldygpIHdpdGggYSBOVUxMIGxv Y2FsZSAqLwotK3N0YXRpYyB2b2lkCi0rdHJhbnNsYXRpb25fZW50cnlfdGVzdF9jb25zdHJ1Y3Rf bmV3X251bGwgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQotKyAgICB7 Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZFRyYW5zbGF0aW9uRW50cnkpIHRlID0gTlVMTDsK LSsgICAgICB0ZSA9IG1vZHVsZW1kX3RyYW5zbGF0aW9uX2VudHJ5X25ldyAoTlVMTCk7Ci0rICAg ICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBH X1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQg KCk7Ci0rfQotIAotIAotLSAgLyogVGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGluc3RhdGlhdGUg d2l0aG91dCBhIGxvY2FsZSAqLwotLSAgc2lnbmFsZWQgPSBGQUxTRTsKLS0gIHNpZ25hbCAoU0lH VFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKLS0gIHRlID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9U WVBFX1RSQU5TTEFUSU9OX0VOVFJZLCBOVUxMKTsKLS0gIGdfYXNzZXJ0X3RydWUgKHNpZ25hbGVk KTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmdGUpOwotKy8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3 ZSBpbnN0YXRpYXRlIHdpdGhvdXQgYSBsb2NhbGUgKi8KLStzdGF0aWMgdm9pZAotK3RyYW5zbGF0 aW9uX2VudHJ5X3Rlc3RfY29uc3RydWN0X2luaXRfbm9fbG9jYWxlICh2b2lkKQotK3sKLSsgIGlm IChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxl bWRUcmFuc2xhdGlvbkVudHJ5KSB0ZSA9IE5VTEw7Ci0rICAgICAgdGUgPSBnX29iamVjdF9uZXcg KE1PRFVMRU1EX1RZUEVfVFJBTlNMQVRJT05fRU5UUlksIE5VTEwpOwotKyAgICAgIHJldHVybjsK LSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBS T0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotK30KLSAK LSAKLS0gIC8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3ZSBpbnN0YXRpYXRlIHdpdGggYSBOVUxM IGxvY2FsZSAqLwotLSAgc2lnbmFsZWQgPSBGQUxTRTsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgc2ln dHJhcF9oYW5kbGVyKTsKLS0gIC8vIGNsYW5nLWZvcm1hdCBvZmYKLS0gIHRlID0gZ19vYmplY3Rf bmV3IChNT0RVTEVNRF9UWVBFX1RSQU5TTEFUSU9OX0VOVFJZLAotLSAgICAgICAgICAgICAgICAg ICAgICJsb2NhbGUiLCBOVUxMLAotLSAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotLSAgLy8g Y2xhbmctZm9ybWF0IG9uCi0tICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7Ci0tICBnX2NsZWFy X29iamVjdCAoJnRlKTsKLSsvKiBUZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgaW5zdGF0aWF0ZSB3 aXRoIGEgTlVMTCBsb2NhbGUgKi8KLStzdGF0aWMgdm9pZAotK3RyYW5zbGF0aW9uX2VudHJ5X3Rl c3RfY29uc3RydWN0X2luaXRfbnVsbF9sb2NhbGUgKHZvaWQpCi0rewotKyAgaWYgKGdfdGVzdF9z dWJwcm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZFRyYW5zbGF0 aW9uRW50cnkpIHRlID0gTlVMTDsKLSsgICAgICAvLyBjbGFuZy1mb3JtYXQgb2ZmCi0rICAgICAg dGUgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfVFJBTlNMQVRJT05fRU5UUlksCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICJsb2NhbGUiLCBOVUxMLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMKTsKLSsgICAgICAvLyBjbGFuZy1mb3JtYXQgb24KLSsgICAgICByZXR1cm47 Ci0rICAgIH0KLSsgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQ Uk9DRVNTX0RFRkFVTFQpOwotKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKLSB9Ci0g Ci0gCi1AQCAtMzM0LDEyICszNDYsMjYgQEAgdHJhbnNsYXRpb25fZW50cnlfdGVzdF9nZXRfbG9j YWxlICh2b2lkKQotIAotICAgZ19vYmplY3RfZ2V0ICh0ZSwgImxvY2FsZSIsICZsb2NhbGUsIE5V TEwpOwotICAgZ19hc3NlcnRfY21wc3RyIChsb2NhbGUsID09LCAiZW5fVVMiKTsKLSt9Ci0rCi0g Ci0tICAvKiBUZXN0IHRoYXQgbG9jYWxlIGlzIGltbXV0YWJsZSAqLwotLSAgc2lnbmFsZWQgPSBG QUxTRTsKLS0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKLS0gIGdfb2JqZWN0 X3NldCAodGUsICJsb2NhbGUiLCAiZW5fR0IiLCBOVUxMKTsKLS0gIGdfYXNzZXJ0X3RydWUgKHNp Z25hbGVkKTsKLSsvKiBUZXN0IHRoYXQgbG9jYWxlIGlzIGltbXV0YWJsZSAqLwotK3N0YXRpYyB2 b2lkCi0rdHJhbnNsYXRpb25fZW50cnlfdGVzdF9sb2NhbGVfaXNfaW1tdXRhYmxlICh2b2lkKQot K3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0b3B0 ciAoTW9kdWxlbWRUcmFuc2xhdGlvbkVudHJ5KSB0ZSA9IE5VTEw7Ci0rCi0rICAgICAgdGUgPSBt b2R1bGVtZF90cmFuc2xhdGlvbl9lbnRyeV9uZXcgKCJlbl9VUyIpOwotKyAgICAgIGdfYXNzZXJ0 X25vbm51bGwgKHRlKTsKLSsgICAgICBnX2Fzc2VydF90cnVlIChNT0RVTEVNRF9JU19UUkFOU0xB VElPTl9FTlRSWSAodGUpKTsKLSsKLSsgICAgICBnX29iamVjdF9zZXQgKHRlLCAibG9jYWxlIiwg ImVuX0dCIiwgTlVMTCk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJhcF9z dWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdfdGVz dF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7Ci0gfQotIAotIAotQEAgLTYwOSw4ICs2MzUsMTQgQEAg bWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAKLSAgIC8vIERlZmluZSB0aGUgdGVzdHMu Ci0gCi0tICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvdHJhbnNsYXRpb25lbnRyeS9j b25zdHJ1Y3QiLAotLSAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbl9lbnRyeV90ZXN0X2Nv bnN0cnVjdCk7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvdHJhbnNsYXRpb25l bnRyeS9jb25zdHJ1Y3QvcmVndWxhciIsCi0rICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9u X2VudHJ5X3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21v ZHVsZW1kL3YyL3RyYW5zbGF0aW9uZW50cnkvY29uc3RydWN0L25ld19udWxsIiwKLSsgICAgICAg ICAgICAgICAgICAgdHJhbnNsYXRpb25fZW50cnlfdGVzdF9jb25zdHJ1Y3RfbmV3X251bGwpOwot KyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3RyYW5zbGF0aW9uZW50cnkvY29uc3Ry dWN0L2luaXRfbm9fbG9jYWxlIiwKLSsgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25fZW50 cnlfdGVzdF9jb25zdHJ1Y3RfaW5pdF9ub19sb2NhbGUpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgi L21vZHVsZW1kL3YyL3RyYW5zbGF0aW9uZW50cnkvY29uc3RydWN0L2luaXRfbnVsbF9sb2NhbGUi LAotKyAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbl9lbnRyeV90ZXN0X2NvbnN0cnVjdF9p bml0X251bGxfbG9jYWxlKTsKLSAKLSAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi90 cmFuc2xhdGlvbmVudHJ5L2NvcHkiLAotICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbl9l bnRyeV90ZXN0X2NvcHkpOwotQEAgLTYxOCw2ICs2NTAsOSBAQCBtYWluIChpbnQgYXJnYywgY2hh ciAqYXJndltdKQotICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3RyYW5zbGF0aW9u ZW50cnkvZ2V0X2xvY2FsZSIsCi0gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uX2VudHJ5 X3Rlc3RfZ2V0X2xvY2FsZSk7Ci0gCi0rICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIv dHJhbnNsYXRpb25lbnRyeS9sb2NhbGVfaXNfaW1tdXRhYmxlIiwKLSsgICAgICAgICAgICAgICAg ICAgdHJhbnNsYXRpb25fZW50cnlfdGVzdF9sb2NhbGVfaXNfaW1tdXRhYmxlKTsKLSsKLSAgIGdf dGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi90cmFuc2xhdGlvbmVudHJ5L2dldF9zZXRfc3Vt bWFyeSIsCi0gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfZ2V0X3Nl dF9zdW1tYXJ5KTsKLSAKLWRpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1k LXRyYW5zbGF0aW9uLmMgYi9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLXRyYW5zbGF0aW9u LmMKLWluZGV4IDY1NTIwMGYuLmE2N2I3ODcgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVtZC90ZXN0cy90 ZXN0LW1vZHVsZW1kLXRyYW5zbGF0aW9uLmMKLSsrKyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9k dWxlbWQtdHJhbnNsYXRpb24uYwotQEAgLTE0LDcgKzE0LDYgQEAKLSAjaW5jbHVkZSA8Z2xpYi5o PgotICNpbmNsdWRlIDxnbGliL2dzdGRpby5oPgotICNpbmNsdWRlIDxsb2NhbGUuaD4KLS0jaW5j bHVkZSA8c2lnbmFsLmg+Ci0gCi0gI2luY2x1ZGUgIm1vZHVsZW1kLXN1YmRvY3VtZW50LWluZm8u aCIKLSAjaW5jbHVkZSAibW9kdWxlbWQtdHJhbnNsYXRpb24tZW50cnkuaCIKLUBAIC0zMCwxNyAr MjksOSBAQCB0eXBlZGVmIHN0cnVjdCBfVHJhbnNsYXRpb25GaXh0dXJlCi0gewotIH0gVHJhbnNs YXRpb25GaXh0dXJlOwotIAotLWdib29sZWFuIHNpZ25hbGVkID0gRkFMU0U7Ci0gCi0gc3RhdGlj IHZvaWQKLS1zaWd0cmFwX2hhbmRsZXIgKGludCBVTlVTRUQgKHNpZ19udW0pKQotLXsKLS0gIHNp Z25hbGVkID0gVFJVRTsKLS19Ci0tCi0tCi0tc3RhdGljIHZvaWQKLS10cmFuc2xhdGlvbl90ZXN0 X2NvbnN0cnVjdCAodm9pZCkKLSt0cmFuc2xhdGlvbl90ZXN0X2NvbnN0cnVjdF9yZWd1bGFyICh2 b2lkKQotIHsKLSAgIGdfYXV0b3B0ciAoTW9kdWxlbWRUcmFuc2xhdGlvbikgdCA9IE5VTEw7Ci0g ICBnX2F1dG8gKEdTdHJ2KSBsb2NhbGVzID0gTlVMTDsKLUBAIC05NCw0MSArODUsNjQgQEAgdHJh bnNsYXRpb25fdGVzdF9jb25zdHJ1Y3QgKHZvaWQpCi0gICBnX2Fzc2VydF9jbXBzdHIgKG1vZHVs ZW1kX3RyYW5zbGF0aW9uX2dldF9tb2R1bGVfc3RyZWFtICh0KSwgPT0sICJ0ZXN0c3RyIik7Ci0g ICBnX2Fzc2VydF9jbXBpbnQgKG1vZHVsZW1kX3RyYW5zbGF0aW9uX2dldF9tb2RpZmllZCAodCks ID09LCBtb2RpZmllZCk7Ci0gICBnX2NsZWFyX29iamVjdCAoJnQpOwotK30KLSAKLS0gIC8qIFRl c3QgdGhhdCBvYmplY3RfbmV3IGRvZXMgbm90IHdvcmsgd2l0aG91dCBhIHZlcnNpb24gKi8KLS0g IHNpZ25hbGVkID0gRkFMU0U7Ci0tICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7 Ci0tICAvLyBjbGFuZy1mb3JtYXQgb2ZmCi0tICB0ID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9U WVBFX1RSQU5TTEFUSU9OLAotLSAgICAgICAgICAgICAgICAgICAgIm1vZHVsZV9uYW1lIiwgInRl c3Rtb2QiLAotLSAgICAgICAgICAgICAgICAgICAgIm1vZHVsZV9zdHJlYW0iLCAidGVzdHN0ciIs Ci0tICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLS0gIC8vIGNsYW5nLWZvcm1hdCBvbgotLSAg Z19hc3NlcnRfdHJ1ZSAoc2lnbmFsZWQpOwotLSAgZ19jbGVhcl9vYmplY3QgKCZ0KTsKLSsvKiBU ZXN0IHRoYXQgb2JqZWN0X25ldyBkb2VzIG5vdCB3b3JrIHdpdGhvdXQgYSB2ZXJzaW9uICovCi0r c3RhdGljIHZvaWQKLSt0cmFuc2xhdGlvbl90ZXN0X2NvbnN0cnVjdF9ub192ZXJzaW9uICh2b2lk KQotK3sKLSsgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGdfYXV0 b3B0ciAoTW9kdWxlbWRUcmFuc2xhdGlvbikgdCA9IE5VTEw7Ci0rICAgICAgLy8gY2xhbmctZm9y bWF0IG9mZgotKyAgICAgIHQgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfVFJBTlNMQVRJ T04sCi0rICAgICAgICAgICAgICAgICAgICAgICAgIm1vZHVsZV9uYW1lIiwgInRlc3Rtb2QiLAot KyAgICAgICAgICAgICAgICAgICAgICAgICJtb2R1bGVfc3RyZWFtIiwgInRlc3RzdHIiLAotKyAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotKyAgICAgIC8vIGNsYW5nLWZvcm1hdCBvbgot KyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwg MCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFp bGVkICgpOwotK30KLSAKLS0gIC8qIFRlc3QgdGhhdCBvYmplY3RfbmV3IGRvZXMgbm90IHdvcmsg d2l0aG91dCBhIG5hbWUgKi8KLS0gIHNpZ25hbGVkID0gRkFMU0U7Ci0tICBzaWduYWwgKFNJR1RS QVAsIHNpZ3RyYXBfaGFuZGxlcik7Ci0tICAvLyBjbGFuZy1mb3JtYXQgb2ZmCi0tICB0ID0gZ19v YmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1RSQU5TTEFUSU9OLAotLSAgICAgICAgICAgICAgICAg ICAgInZlcnNpb24iLCB0cmFuc2xhdGlvbl92ZXJzaW9uLAotLSAgICAgICAgICAgICAgICAgICAg Im1vZHVsZV9zdHJlYW0iLCAidGVzdHN0ciIsIE5VTEwpOwotLSAgLy8gY2xhbmctZm9ybWF0IG9u Ci0tICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7Ci0tICBnX2NsZWFyX29iamVjdCAoJnQpOwot Ky8qIFRlc3QgdGhhdCBvYmplY3RfbmV3IGRvZXMgbm90IHdvcmsgd2l0aG91dCBhIG5hbWUgKi8K LStzdGF0aWMgdm9pZAotK3RyYW5zbGF0aW9uX3Rlc3RfY29uc3RydWN0X25vX25hbWUgKHZvaWQp Ci0rewotKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQotKyAgICB7Ci0rICAgICAgZ3VpbnQ2 NCB0cmFuc2xhdGlvbl92ZXJzaW9uID0gMTsKLSsgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kVHJh bnNsYXRpb24pIHQgPSBOVUxMOwotKyAgICAgIC8vIGNsYW5nLWZvcm1hdCBvZmYKLSsgICAgICB0 ID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1RSQU5TTEFUSU9OLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICJ2ZXJzaW9uIiwgdHJhbnNsYXRpb25fdmVyc2lvbiwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAibW9kdWxlX3N0cmVhbSIsICJ0ZXN0c3RyIiwgTlVMTCk7Ci0rICAgICAg Ly8gY2xhbmctZm9ybWF0IG9uCi0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBnX3Rlc3RfdHJh cF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKLSsgIGdf dGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7Ci0rfQotIAotLSAgLyogVGVzdCB0aGF0IG9iamVj dF9uZXcgZG9lcyBub3Qgd29yayB3aXRob3V0IGEgc3RyZWFtICovCi0tICBzaWduYWxlZCA9IEZB TFNFOwotLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOwotLSAgLy8gY2xhbmct Zm9ybWF0IG9mZgotLSAgdCA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9UUkFOU0xBVElP TiwKLS0gICAgICAgICAgICAgICAgICAgICJ2ZXJzaW9uIiwgdHJhbnNsYXRpb25fdmVyc2lvbiwK LS0gICAgICAgICAgICAgICAgICAgICJtb2R1bGVfbmFtZSIsICJ0ZXN0bW9kIiwKLS0gICAgICAg ICAgICAgICAgICAgIE5VTEwpOwotLSAgLy8gY2xhbmctZm9ybWF0IG9uCi0tICBnX2Fzc2VydF90 cnVlIChzaWduYWxlZCk7Ci0tICBnX2NsZWFyX29iamVjdCAoJnQpOwotKy8qIFRlc3QgdGhhdCBv YmplY3RfbmV3IGRvZXMgbm90IHdvcmsgd2l0aG91dCBhIHN0cmVhbSAqLwotK3N0YXRpYyB2b2lk Ci0rdHJhbnNsYXRpb25fdGVzdF9jb25zdHJ1Y3Rfbm9fc3RyZWFtICh2b2lkKQotK3sKLSsgIGlm IChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKLSsgICAgewotKyAgICAgIGd1aW50NjQgdHJhbnNsYXRp b25fdmVyc2lvbiA9IDE7Ci0rICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZFRyYW5zbGF0aW9uKSB0 ID0gTlVMTDsKLSsgICAgICAvLyBjbGFuZy1mb3JtYXQgb2ZmCi0rICAgICAgdCA9IGdfb2JqZWN0 X25ldyAoTU9EVUxFTURfVFlQRV9UUkFOU0xBVElPTiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAidmVyc2lvbiIsIHRyYW5zbGF0aW9uX3ZlcnNpb24sCi0rICAgICAgICAgICAgICAgICAgICAg ICAgIm1vZHVsZV9uYW1lIiwgInRlc3Rtb2QiLAotKyAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwpOwotKyAgICAgIC8vIGNsYW5nLWZvcm1hdCBvbgotKyAgICAgIHJldHVybjsKLSsgICAgfQot KyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVG QVVMVCk7Ci0rICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwotIH0KLSAKLSBzdGF0aWMg dm9pZAotQEAgLTQxNiw4ICs0MzAsMTQgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK LSAKLSAgIC8vIERlZmluZSB0aGUgdGVzdHMuCi0gCi0tICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9k dWxlbWQvdjIvdHJhbnNsYXRpb24vY29uc3RydWN0IiwKLS0gICAgICAgICAgICAgICAgICAgdHJh bnNsYXRpb25fdGVzdF9jb25zdHJ1Y3QpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1k L3YyL3RyYW5zbGF0aW9uL2NvbnN0cnVjdC9yZWd1bGFyIiwKLSsgICAgICAgICAgICAgICAgICAg dHJhbnNsYXRpb25fdGVzdF9jb25zdHJ1Y3RfcmVndWxhcik7Ci0rICBnX3Rlc3RfYWRkX2Z1bmMg KCIvbW9kdWxlbWQvdjIvdHJhbnNsYXRpb24vY29uc3RydWN0L25vX3ZlcnNpb24iLAotKyAgICAg ICAgICAgICAgICAgICB0cmFuc2xhdGlvbl90ZXN0X2NvbnN0cnVjdF9ub192ZXJzaW9uKTsKLSsg IGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi90cmFuc2xhdGlvbi9jb25zdHJ1Y3Qvbm9f bmFtZSIsCi0rICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uX3Rlc3RfY29uc3RydWN0X25v X25hbWUpOwotKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3RyYW5zbGF0aW9uL2Nv bnN0cnVjdC9ub19zdHJlYW0iLAotKyAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbl90ZXN0 X2NvbnN0cnVjdF9ub19zdHJlYW0pOwotIAotICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1k L3YyL3RyYW5zbGF0aW9uL2NvcHkiLCB0cmFuc2xhdGlvbl90ZXN0X2NvcHkpOwotIAotLS0gCi0y LjUyLjAKLQoKZGlmZiAtLWdpdCBhL21vZHVsZW1kLTIuMTUuMi10ZXN0cy1BZGFwdC10by1weWdv YmplY3QtMy41NS4wLnBhdGNoIGIvbW9kdWxlbWQtMi4xNS4yLXRlc3RzLUFkYXB0LXRvLXB5Z29i amVjdC0zLjU1LjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjNGM1MTcu LjAwMDAwMDAKLS0tIGEvbW9kdWxlbWQtMi4xNS4yLXRlc3RzLUFkYXB0LXRvLXB5Z29iamVjdC0z LjU1LjAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNjcgKzAsMCBAQAotRnJvbSBlMzNlY2Yx Y2MxNTM4M2I5NTYzYmM0Y2Q5YTY5MDgyNzdiZjgwMzlkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogPT9VVEYtOD9xP1BldHI9MjBQPUMzPUFEc2E9QzU9OTk/PSA8cHBpc2FyQHJlZGhh dC5jb20+Ci1EYXRlOiBUdWUsIDI0IEZlYiAyMDI2IDEzOjM1OjE3ICswMTAwCi1TdWJqZWN0OiBb UEFUQ0hdIHRlc3RzOiBBZGFwdCB0byBweWdvYmplY3QgMy41NS4wCi0KLUFmdGVyIHVwZ3JhZGlu ZyBweWdvYmplY3QgZnJvbSAzLjU0LjUgdG8gMy41NS4yLCBQeXRob24gdGVzdHMKLWV4cGVjdGlu ZyBhIHByb2Nlc3MgZmFpbHVyZSBvbiBzZXR0aW5nIGFuIGltbXV0YWJsZQotKEdfUEFSQU1fQ09O U1RSVUNUX09OTFkpIHByb3BlcnR5IHN0YXJ0ZWQgdG8gZmFpbCBsaWtlIHRoaXM6Ci0KLSAgICBU cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6Ci0gICAgICBGaWxlICIvaG9tZS90ZXN0 L2xpYm1vZHVsZW1kLWRldmVsL3JlZGhhdC1saW51eC1idWlsZC8uLi9tb2R1bGVtZC90ZXN0cy9N b2R1bGVtZFRlc3RzL2RlZmF1bHRzLnB5IiwgbGluZSAxMTQsIGluIHRlc3RfbW9kdWxlX25hbWUK LQlzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9zZXRfbW9kdWxlX25hbWVfdG9fbm9uZSwgZGVm cykKLQl+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl4KLSAgICAgIEZpbGUgIi9ob21lL3Rlc3QvbGlibW9kdWxlbWQtZGV2ZWwvbW9kdWxlbWQv dGVzdHMvTW9kdWxlbWRUZXN0cy9iYXNlLnB5IiwgbGluZSA2MCwgaW4gYXNzZXJ0UHJvY2Vzc0Zh aWx1cmUKLQljYWxsYWJsZSgqYXJncykKLQl+fn5+fn5+fl5eXl5eXl4KLSAgICAgIEZpbGUgIi9o b21lL3Rlc3QvbGlibW9kdWxlbWQtZGV2ZWwvcmVkaGF0LWxpbnV4LWJ1aWxkLy4uL21vZHVsZW1k L3Rlc3RzL01vZHVsZW1kVGVzdHMvZGVmYXVsdHMucHkiLCBsaW5lIDQzLCBpbiBfc2V0X21vZHVs ZV9uYW1lX3RvX25vbmUKLQlkZWZzLnByb3BzLm1vZHVsZV9uYW1lID0gTm9uZQotCV5eXl5eXl5e Xl5eXl5eXl5eXl5eXl4KLSAgICBUeXBlRXJyb3I6IHByb3BlcnR5ICdtb2R1bGUtbmFtZScgY2Fu IG9ubHkgYmUgc2V0IGluIGNvbnN0cnVjdG9yCi0KLVRoZSBjYXVzZSB3YXMgdGhhdCBweWdvYmpl Y3QtMy41NS4wIHN0YXJ0ZWQgdG8gcmFpc2UgYSBQeXRob24KLVR5cGVFcnJvciBleGNlcHRpb24g aW5zdGVhZCBvZiBjYWxsaW5nIEdsaWIgZnVuY3Rpb25zIHdoaWNoIHdvdWxkIGZhaWwKLW9uIGl0 cyBvd24gZGVwZW5kaW5nIG9uIEdsaWIgd2FybmluZyBmYXRhbGl0eSBhbmQgR2xpYiB2ZXJzaW9u LiBBbiBleGFtcGxlOgotCi0gICAgY2F0IC90bXAvdGVzdC5weQotICAgICMhL3Vzci9iaW4vcHl0 aG9uMwotCi0gICAgaW1wb3J0IGdpCi0gICAgZ2kucmVxdWlyZV92ZXJzaW9uKCJNb2R1bGVtZCIs ICIyLjAiKQotICAgIGZyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQgTW9kdWxlbWQKLQotICAgIG9i amVjdCA9IE1vZHVsZW1kLkRlZmF1bHRzLm5ldyhNb2R1bGVtZC5EZWZhdWx0c1ZlcnNpb25FbnVt LkxBVEVTVCwgImZvbyIpCi0gICAgb2JqZWN0LnByb3BzLm1vZHVsZV9uYW1lID0gImJhciIKLQot QmVmb3JlOgotCi0gICAgJCAvdG1wL3Rlc3QucHkKLSAgICAvdG1wL3Rlc3QucHk6ODogV2Fybmlu ZzogZ19vYmplY3Rfc2V0X2lzX3ZhbGlkX3Byb3BlcnR5OiBjb25zdHJ1Y3QgcHJvcGVydHkgIm1v ZHVsZS1uYW1lIiBmb3Igb2JqZWN0ICdNb2R1bGVtZERlZmF1bHRzVjEnIGNhbid0IGJlIHNldCBh ZnRlciBjb25zdHJ1Y3Rpb24KLSAgICAgIG9iamVjdC5wcm9wcy5tb2R1bGVfbmFtZSA9ICJiYXIi Ci0KLUFmdGVyOgotCi0gICAgJCAvdG1wL3Rlc3QucHkKLSAgICBUcmFjZWJhY2sgKG1vc3QgcmVj ZW50IGNhbGwgbGFzdCk6Ci0gICAgICBGaWxlICIvdG1wL3Rlc3QucHkiLCBsaW5lIDgsIGluIDxt b2R1bGU+Ci0Jb2JqZWN0LnByb3BzLm1vZHVsZV9uYW1lID0gImJhciIKLQleXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl4KLSAgICBUeXBlRXJyb3I6IHByb3BlcnR5ICdtb2R1bGUtbmFtZScgY2FuIG9u bHkgYmUgc2V0IGluIGNvbnN0cnVjdG9yCi0KLVRoYXQgd2FzIGFuIGludGVudGlvbmFsIGNoYW5n ZSBpbiBweWdvYmplY3QKLTNiNmU0ODA0ZGU0ZjI2Y2ZiOTQ3MjY2NmYxOGY0NGFjNzMxZDg3NGMg Y29tbWl0IChnaTogRmFjdG9yIG91dAotcHlnaV9zZXRfcHJvcGVydHlfZ3ZhbHVlX2Zyb21fcHJv cGVydHlfaW5mbykuIFByb2JhYmx5IGFuCi1vcHRpbWl6YXRpb24uCi0KLVRoaXMgcGF0Y2ggYWRq dXN0cyB0aGUgdGVzdHMgdG8gcGFzcyBpZiBUeXBlRXJyb3IgZXhjZXB0aW9uIGlzIHJhaXNlZAot cmVnYXJkbGVzcyBvZiBHbGliIHdhcm5pbmcgZmF0YWxpdHkuCi0KLVJlc29sdmVzOiBodHRwczov L2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTI0NDA1NzAKLS0tLQotIG1vZHVs ZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvYmFzZS5weSAgICAgICAgICB8IDMwICsrKysrKysrKysr KysrKysrKysKLSBtb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2RlZmF1bHRzLnB5ICAgICAg fCAgNCArKy0KLSBtb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3Byb2ZpbGUucHkgICAgICAg fCAgNCArKy0KLSBtb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3NlcnZpY2VsZXZlbC5weSAg fCAgMiArLQotIC4uLi90ZXN0cy9Nb2R1bGVtZFRlc3RzL3RyYW5zbGF0aW9uZW50cnkucHkgICB8 ICAyICstCi0gNSBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9iYXNlLnB5IGIv bW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9iYXNlLnB5Ci1pbmRleCA1NWFjNzQyLi4xNmI5 MGUwIDEwMDY0NAotLS0tIGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9iYXNlLnB5Ci0r KysgYi9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2Jhc2UucHkKLUBAIC02Nyw2ICs2Nywz NiBAQCBjbGFzcyBUZXN0QmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICAgICAgaWYg b3MuV0lGU0lHTkFMRUQoc3RhdHVzKToKLSAgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9u RXJyb3IoIkNoaWxkIHByb2Nlc3Mgd2FzIHVuZXhwZWN0ZWRseSBhYm9ydGVkIikKLSAKLSsgICAg ZGVmIGFzc2VydFR5cGVFeGNlcHRpb25PclByb2Nlc3NGYWlsdXJlKHNlbGYsIGNhbGxhYmxlLCAq YXJncyk6Ci0rICAgICAgICAiIiJDYWxscyB0aGUgY2FsbGFibGUgaW4gYSBzdWJwcm9jZXNzIGFu ZCBjaGVja3MgdGhhdCB0aGUgcHJvY2VzcwotKyAgICAgICAgcmFpc2VkIGEgVHlwZUVycm9yIGV4 Y2VwdGlvbiwgb3Igd2FzIGtpbGxlZCBkZXBlbmRpbmcgb24gR2xpYiB3YXJuaW5nCi0rICAgICAg ICBmYXRhbGl0eS4KLSsKLSsgICAgICAgIFNpbmNlIHB5Z29iamVjdC0zLjU1LjAgc2V0dGluZyBh IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkgcHJvcGVydHkKLSsgICAgICAgIHJhaXNlcyBhIFB5dGhv biBleGNlcHRpb24uIE9sZCBweWdvYmplY3QgY29udGludWVzIGRvd24gdG8gR2xpYgotKyAgICAg ICAgd2hpY2gga2lsbHMgdGhlIHByb2Nlc3MgaWYgR2xpYiB3YXJuaW5ncyBhIGZhdGFsLCBvdGhl cndpc2UgR2xpYgotKyAgICAgICAgd2FybmluZyBpcyBwcmludGVkIGFuZCB0aGUgY29kZSBjb250 aW51ZXMuCi0rICAgICAgICAiIiIKLSsgICAgICAgIHBpZCA9IG9zLmZvcmsoKQotKyAgICAgICAg aWYgcGlkID09IDA6Ci0rICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAgICAgICBjYWxsYWJs ZSgqYXJncykKLSsgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgotKyAgICAgICAgICAgICAg ICBvcy5fZXhpdCgxKQotKyAgICAgICAgICAgIG9zLl9leGl0KDApCi0rICAgICAgICBfLCBzdGF0 dXMgPSBvcy53YWl0cGlkKHBpZCwgMCkKLSsgICAgICAgIGlmIG9zLldJRkVYSVRFRChzdGF0dXMp IGFuZCBvcy5XRVhJVFNUQVRVUyhzdGF0dXMpID09IDE6Ci0rICAgICAgICAgICAgcmV0dXJuCi0r ICAgICAgICBpZiBzZWxmLndhcm5pbmdzX2ZhdGFsOgotKyAgICAgICAgICAgIGlmIG5vdCBvcy5X SUZTSUdOQUxFRChzdGF0dXMpOgotKyAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJv cigKLSsgICAgICAgICAgICAgICAgICAgICJDaGlsZCBwcm9jZXNzIGRpZCBub3QgcmFpc2UgVHlw ZUVycm9yICIKLSsgICAgICAgICAgICAgICAgICAgICJleGNlcHRpb24gb3Igd2FzIG5vdCBhYm9y dGVkIgotKyAgICAgICAgICAgICAgICApCi0rICAgICAgICBlbHNlOgotKyAgICAgICAgICAgIGlm IG9zLldJRlNJR05BTEVEKHN0YXR1cyk6Ci0rICAgICAgICAgICAgICAgIHJhaXNlIEFzc2VydGlv bkVycm9yKCJDaGlsZCBwcm9jZXNzIHdhcyB1bmV4cGVjdGVkbHkgYWJvcnRlZCIpCi0rCi0gICAg IEBwcm9wZXJ0eQotICAgICBkZWYgd2FybmluZ3NfZmF0YWwoc2VsZik6Ci0gICAgICAgICBnZGVi dWcgPSBvcy5nZXRlbnYoIkdfREVCVUciLCAiIikuc3BsaXQoIiwiKQotZGlmZiAtLWdpdCBhL21v ZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvZGVmYXVsdHMucHkgYi9tb2R1bGVtZC90ZXN0cy9N b2R1bGVtZFRlc3RzL2RlZmF1bHRzLnB5Ci1pbmRleCAzYTFiOWZlLi4yZjJlYzAyIDEwMDY0NAot LS0tIGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9kZWZhdWx0cy5weQotKysrIGIvbW9k dWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9kZWZhdWx0cy5weQotQEAgLTExMSw3ICsxMTEsOSBA QCBjbGFzcyBUZXN0RGVmYXVsdHMoVGVzdEJhc2UpOgotICAgICAgICAgYXNzZXJ0IGRlZnMuZ2V0 X21vZHVsZV9uYW1lKCkgPT0gImZvbyIKLSAKLSAgICAgICAgICMgRW5zdXJlIHdlIGNhbm5vdCBz ZXQgdGhlIG1vZHVsZV9uYW1lCi0tICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9z ZXRfbW9kdWxlX25hbWVfdG9fbm9uZSwgZGVmcykKLSsgICAgICAgIHNlbGYuYXNzZXJ0VHlwZUV4 Y2VwdGlvbk9yUHJvY2Vzc0ZhaWx1cmUoCi0rICAgICAgICAgICAgX3NldF9tb2R1bGVfbmFtZV90 b19ub25lLCBkZWZzCi0rICAgICAgICApCi0gCi0gICAgIGRlZiB0ZXN0X21vZGlmaWVkKHNlbGYp OgotICAgICAgICAgZGVmcyA9IE1vZHVsZW1kLkRlZmF1bHRzLm5ldygKLWRpZmYgLS1naXQgYS9t b2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3Byb2ZpbGUucHkgYi9tb2R1bGVtZC90ZXN0cy9N b2R1bGVtZFRlc3RzL3Byb2ZpbGUucHkKLWluZGV4IDc2NWM1N2QuLmY4YzdiOTMgMTAwNjQ0Ci0t LS0gYS9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3Byb2ZpbGUucHkKLSsrKyBiL21vZHVs ZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvcHJvZmlsZS5weQotQEAgLTk0LDcgKzk0LDkgQEAgY2xh c3MgVGVzdFByb2ZpbGUoVGVzdEJhc2UpOgotICAgICAgICAgYXNzZXJ0IHAuZ2V0X25hbWUoKSA9 PSAidGVzdHByb2ZpbGUiCi0gICAgICAgICBhc3NlcnQgcC5wcm9wcy5uYW1lID09ICJ0ZXN0cHJv ZmlsZSIKLSAKLS0gICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoX3NldF9wcm9wc19u YW1lLCBwLCAibm90YWRyaWxsIikKLSsgICAgICAgIHNlbGYuYXNzZXJ0VHlwZUV4Y2VwdGlvbk9y UHJvY2Vzc0ZhaWx1cmUoCi0rICAgICAgICAgICAgX3NldF9wcm9wc19uYW1lLCBwLCAibm90YWRy aWxsIgotKyAgICAgICAgKQotIAotICAgICBkZWYgdGVzdF9nZXRfc2V0X2Rlc2NyaXB0aW9uKHNl bGYpOgotICAgICAgICAgcCA9IE1vZHVsZW1kLlByb2ZpbGUobmFtZT0idGVzdHByb2ZpbGUiKQot ZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvc2VydmljZWxldmVsLnB5 IGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9zZXJ2aWNlbGV2ZWwucHkKLWluZGV4IGZj OWM2NDguLjcxMjg5ZWIgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3Rz L3NlcnZpY2VsZXZlbC5weQotKysrIGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9zZXJ2 aWNlbGV2ZWwucHkKLUBAIC0xMDMsNyArMTAzLDcgQEAgY2xhc3MgVGVzdFNlcnZpY2VMZXZlbChU ZXN0QmFzZSk6Ci0gICAgICAgICBhc3NlcnQgc2wucHJvcHMubmFtZSA9PSAiZm9vIgotIAotICAg ICAgICAgIyBUaGlzIHByb3BlcnR5IGlzIG5vdCB3cml0YWJsZSwgbWFrZSBzdXJlIGl0IGZhaWxz IHRvIGF0dGVtcHQgaXQKLS0gICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoX3NldF9w cm9wc19uYW1lLCBzbCwgImJhciIpCi0rICAgICAgICBzZWxmLmFzc2VydFR5cGVFeGNlcHRpb25P clByb2Nlc3NGYWlsdXJlKF9zZXRfcHJvcHNfbmFtZSwgc2wsICJiYXIiKQotIAotICAgICBkZWYg dGVzdF9nZXRfc2V0X2VvbChzZWxmKToKLSAgICAgICAgIHNsID0gTW9kdWxlbWQuU2VydmljZUxl dmVsLm5ldygiZm9vIikKLWRpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3Rz L3RyYW5zbGF0aW9uZW50cnkucHkgYi9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3RyYW5z bGF0aW9uZW50cnkucHkKLWluZGV4IDlmY2U0NDMuLjY4NTM0OWUgMTAwNjQ0Ci0tLS0gYS9tb2R1 bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3RyYW5zbGF0aW9uZW50cnkucHkKLSsrKyBiL21vZHVs ZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvdHJhbnNsYXRpb25lbnRyeS5weQotQEAgLTE3Miw3ICsx NzIsNyBAQCBjbGFzcyBUZXN0VHJhbnNsYXRpb25FbnRyeShUZXN0QmFzZSk6Ci0gICAgICAgICBh c3NlcnQgdGUuZ2V0X2xvY2FsZSgpID09ICJlbl9VUyIKLSAgICAgICAgIGFzc2VydCB0ZS5wcm9w cy5sb2NhbGUgPT0gImVuX1VTIgotIAotLSAgICAgICAgc2VsZi5hc3NlcnRQcm9jZXNzRmFpbHVy ZShfc2V0X2xvY2FsZSwgdGUpCi0rICAgICAgICBzZWxmLmFzc2VydFR5cGVFeGNlcHRpb25PclBy b2Nlc3NGYWlsdXJlKF9zZXRfbG9jYWxlLCB0ZSkKLSAKLSAgICAgZGVmIHRlc3RfZ2V0X3NldF9z dW1tYXJ5KHNlbGYpOgotICAgICAgICAgdGUgPSBNb2R1bGVtZC5UcmFuc2xhdGlvbkVudHJ5KGxv Y2FsZT0iZW5fVVMiKQotLS0gCi0yLjUzLjAKLQoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3Vy Y2VzCmluZGV4IGE5MTI1MzguLmNiMTAzZWQgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291 cmNlcwpAQCAtMSwyICsxLDIgQEAKLVNIQTUxMiAobW9kdWxlbWQtMi4xNS4yLnRhci54eikgPSBk MTc4NWY2OTgyZWQxOTI5MjEwM2Q3NDFlM2U5NDU4MWU5Nzg5NzM3YmU2ZjhlOTBkMTkyMTgyOTZm M2FlYjg3ZDY1ODlmMzI0Nzc0NGY4ZWFiNGY3MTRkMjk4ZDE1MDgzMTJiMTE5NjI0YThjMzIwODZj NzIwYmVjZmE0Y2RjNQotU0hBNTEyIChtb2R1bGVtZC0yLjE1LjIudGFyLnh6LmFzYykgPSAyODJm ZjM1ZjE1NDE4ZTk1YWFlMDlkOWJmZjgwODRhYTBiNmYyNzMyY2VhMzkzNGE4NGExYmQ0ZGRkOGU1 MGM4Mzc1NDY2YWNiNmEzOWE2ZTYzMmY0YmJiZWZkNDk3MzViN2Y1NmU5MzA0ZDUyNTIxNzg2ZTI0 NWY1MmZlYWUyNAorU0hBNTEyIChtb2R1bGVtZC0yLjE1LjMudGFyLnh6KSA9IGI4YzJmODA1NTNi NjY3MDRlODExN2E2NjA4Y2JmYzFiMWE0N2NiOGYyNjA1MDMxOTNjNThhZmY3MDJjMmUxMWNkNzli Nzk1NDgyZDBjOWE5NTNhYjczZTUzZWNiODEzMzY4MmZlMmU4YTA3NTVlY2ExZDk5YjcxOGJiY2Nm ZGUyCitTSEE1MTIgKG1vZHVsZW1kLTIuMTUuMy50YXIueHouYXNjKSA9IGFjMDhjNzlhZDZhZTVi ZTJlODA4NWIyYTU5ODg0OGM0MTIxZDIxZmUyNWE1YmQ2NGMwNWIzNmE3NTU4ZDA3YjJlNTVmYjQ2 OGFlMjYzM2E4ZDg4MDIxMmIzYzcxMTE2MzI5MTA3MDM4MWQwNDA4MjcwN2QwMjM2ZTU4ZTIxZTli Cg==