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: Andrew Burgess To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: fix rhbz2366461 -- missing thread issue and solib entry address issue Date: Thu, 23 Jul 2026 18:36:29 GMT Message-ID: <178483178912.1.15742894928572991298.rpms-gdb-c5cb3e223c68@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: c5cb3e223c683f3b84e4a4a0b229ff74229b1319 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogYzVjYjNlMjIzYzY4M2YzYjg0ZTRhNGEwYjIyOWZmNzQyMjliMTMxOQog ICAgICAgICAgICBBdXRob3IgOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1cmdlc3NAcmVkaGF0LmNvbT4K ICAgICAgICAgICAgRGF0ZSAgIDogMjAyNi0wNC0yMVQwOToyMDoyMSswMTowMAogICAgICAgICAg ICBTdGF0cyAgOiArOTcwLy0xIGluIDYgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRw czovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9jL2M1Y2IzZTIyM2M2ODNmM2I4NGU0 YTRhMGIyMjlmZjc0MjI5YjEzMTk/YnJhbmNoPWZpeC1kdXAtcGF0Y2gKCiAgICAgICAgICAgIExv ZzoKICAgICAgICAgICAgZml4IHJoYnoyMzY2NDYxIC0tIG1pc3NpbmcgdGhyZWFkIGlzc3VlIGFu ZCBzb2xpYiBlbnRyeSBhZGRyZXNzIGlzc3VlCgpCYWNrcG9ydCB1cHN0cmVhbSBjb21taXRzIDhi ZDA4ZWU5MmM0IGFuZCBjZDI4OWRmMDY4ZSB0byBhZGRyZXNzCnJoYnoyMzY2NDYxLiAgVGhlc2Ug YmFja3BvcnRzIHdpbGwgbm90IGJlIG5lZWRlZCBvbmNlIHdlIHJlYmFzZSB0byBHREIKMTguCgpU aGUgcmhiejIzNjY0NjEgYnVnIHVuZm9ydHVuYXRlbHkgY29udGFpbnMgdHdvIHNlcGFyYXRlIGJ1 ZyByZXBvcnRzLAp0aGV5IGFwcGVhciB0byBoYXZlIGJlZW4gaW5jb3JyZWN0bHkgbWVyZ2VkIGJ5 IGxpYnJlcG9ydCAoSSB0aGluaykuClRoZSB0d28gYmFja3BvcnRzIGluIHRoaXMgY29tbWl0IGZp eCB0aGUgdHdvIGlzc3Vlcy4KCi0tLQpkaWZmIC0tZ2l0IGEvX2dkYi5zcGVjLlBhdGNoLmluY2x1 ZGUgYi9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZQppbmRleCA2NWFlYWM2Li4yZjIzMGY5IDEwMDY0 NAotLS0gYS9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZQorKysgYi9fZ2RiLnNwZWMuUGF0Y2guaW5j bHVkZQpAQCAtNjEsMyArNjEsMTEgQEAgUGF0Y2gwMTE6IGdkYi1maWxlaW8tdGVzdC1maXhlcy5w YXRjaAogIyAoVG9tIGRlIFZyaWVzKQogUGF0Y2gwMTI6IGdkYi1maXgtdGVzdHN1aXRlLW5ld2Vy LXRjbC5wYXRjaAogCisjIEJhY2twb3J0IHVwc3RyZWFtIGNvbW1pdCA4YmQwOGVlOTJjNCB0byBh ZGRyZXNzIHJoYnoyMzY2NDYxLiAgVGhpcworIyBjb21taXQgd2lsbCBkcm9wIG91dCB3aXRoIEdE QiAxOC4KK1BhdGNoMDEzOiBnZGItcmhiejIzNjY0NjEtbWlzc2luZy10aHJlYWQucGF0Y2gKKwor IyBCYWNrcG9ydCB1cHN0cmVhbSBjb21taXQgY2QyODlkZjA2OGUgdG8gYWRkcmVzcyByaGJ6MjM2 NjQ2MS4gIFRoaXMKKyMgY29tbWl0IHdpbGwgZHJvcCBvdXQgd2l0aCBHREIgMTguCitQYXRjaDAx NDogZ2RiLXJoYnoyMzY2NDYxLWJhZC1zb2xpYi1lbnRyeS1hZGRyLnBhdGNoCisKCmRpZmYgLS1n aXQgYS9fZ2RiLnNwZWMucGF0Y2guaW5jbHVkZSBiL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCmlu ZGV4IGRhZDRkMGEuLmU3ZTk2ZTIgMTAwNjQ0Ci0tLSBhL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRl CisrKyBiL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCkBAIC0xMCwzICsxMCw1IEBACiAlcGF0Y2gg LXAxIC1QMDEwCiAlcGF0Y2ggLXAxIC1QMDExCiAlcGF0Y2ggLXAxIC1QMDEyCislcGF0Y2ggLXAx IC1QMDEzCislcGF0Y2ggLXAxIC1QMDE0CgpkaWZmIC0tZ2l0IGEvX3BhdGNoX29yZGVyIGIvX3Bh dGNoX29yZGVyCmluZGV4IDM5MjJjYmQuLjYxNTc3OWUgMTAwNjQ0Ci0tLSBhL19wYXRjaF9vcmRl cgorKysgYi9fcGF0Y2hfb3JkZXIKQEAgLTEwLDMgKzEwLDUgQEAgZ2RiLXJoYnoyNDM1OTUwLXNr aXAtcmV2ZXJ0LnBhdGNoCiBnZGItcmhiejI0MTM0MDUtZ2NvcmUtdW5yZWFkYWJsZS1wYWdlcy5w YXRjaAogZ2RiLWZpbGVpby10ZXN0LWZpeGVzLnBhdGNoCiBnZGItZml4LXRlc3RzdWl0ZS1uZXdl ci10Y2wucGF0Y2gKK2dkYi1yaGJ6MjM2NjQ2MS1taXNzaW5nLXRocmVhZC5wYXRjaAorZ2RiLXJo YnoyMzY2NDYxLWJhZC1zb2xpYi1lbnRyeS1hZGRyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvZ2RiLXJo YnoyMzY2NDYxLWJhZC1zb2xpYi1lbnRyeS1hZGRyLnBhdGNoIGIvZ2RiLXJoYnoyMzY2NDYxLWJh ZC1zb2xpYi1lbnRyeS1hZGRyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjgzNmFiNWYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejIzNjY0NjEtYmFkLXNvbGli LWVudHJ5LWFkZHIucGF0Y2gKQEAgLTAsMCArMSw0NTMgQEAKK0Zyb20gRkVET1JBX1BBVENIRVMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1cmdlc3NA cmVkaGF0LmNvbT4KK0RhdGU6IFdlZCwgMTUgQXByIDIwMjYgMTA6NDM6MzEgKzAxMDAKK1N1Ympl Y3Q6IGdkYi1yaGJ6MjM2NjQ2MS1iYWQtc29saWItZW50cnktYWRkci5wYXRjaAorCis7OyBCYWNr cG9ydCB1cHN0cmVhbSBjb21taXQgY2QyODlkZjA2OGUgdG8gYWRkcmVzcyByaGJ6MjM2NjQ2MS4g IFRoaXMKKzs7IGNvbW1pdCB3aWxsIGRyb3Agb3V0IHdpdGggR0RCIDE4LgorCitnZGI6IGRvbid0 IHVzZSAudGV4dCBhcyBkZWZhdWx0IGVudHJ5IHBvaW50IHNlY3Rpb24KKworV2UgZ290IGEgRmVk b3JhIEdEQiBidWcgcmVwb3J0IHRoYXQgYSB1c2VyIHRyaWVkIHRvIGRlYnVnIGFuIEFwcGltYWdl LAorYW5kIEdEQiB3b3VsZCByZWxpYWJseSBjcmFzaCBsaWtlIHRoaXM6CisKKyAgKGdkYikgcnVu CisgIFN0YXJ0aW5nIHByb2dyYW06IC90bXAvYnVpbGQvZ2RiL3Rlc3RzdWl0ZS9vdXRwdXRzL2dk Yi5iYXNlL3NvbGliLWJhZC1lbnRyeS1hZGRyL3NvbGliLWJhZC1lbnRyeS1hZGRyCisgIC4uLy4u L3NyYy9nZGIvc3ltZmlsZS5jOjg0MzogaW50ZXJuYWwtZXJyb3I6IHNlY3RfaW5kZXhfdGV4dCBu b3QgaW5pdGlhbGl6ZWQKKyAgQSBwcm9ibGVtIGludGVybmFsIHRvIEdEQiBoYXMgYmVlbiBkZXRl Y3RlZCwKKyAgZnVydGhlciBkZWJ1Z2dpbmcgbWF5IHByb3ZlIHVucmVsaWFibGUuCisgIC0tLS0t IEJhY2t0cmFjZSAtLS0tLQorICAuLi4gZXRjIC4uLgorCitUaGUgc3BlY2lmaWMgQXBwSW1hZ2Ug YmVpbmcgZGVidWdnZWQgY2FuIGJlIGZvdW5kIGhlcmUsIEkndmUgbW9kaWZpZWQKK3RoZSBVUkwg d2l0aCBhIHdhcm5pbmcgbWFya2VyLiAgSSBtYWtlIG5vIGNsYWltcyBhYm91dCB3aGV0aGVyIGl0 IGlzCitzYWZlIHRvIGRvd25sb2FkIHRoZSBpbWFnZSwgYW5kIHJ1bm5pbmcgaXQgaXMgZGVmaW5p dGVseSBhdCB5b3VyIG93bgorcmlzay4gIElmIHlvdSB3aXNoIHRvLCBkZWxldGUgdGhlIHdhcm5p bmcgbWFya2VyIHRvIGRvd25sb2FkOgorCisgIGh0dHBzOi8vZ2l0aHViLmNvbS9NdXJtZWxlL0dp dHR5dXAvPFJVTiBBVCBZT1VSIE9XTiBSSVNLPi9yZWxlYXNlcy9kb3dubG9hZC9naXR0eXVwX3Yx LjQuMC9HaXR0eXVwLTEuNC4wLXg4Nl82NC5BcHBJbWFnZQorCitBdCB0aGUgcG9pbnQgb2YgdGhl IGFib3ZlIGNyYXNoIEdEQidzIHN0YWNrIGlzOgorCisgICM5ICAweDAwMDAwMDAwMDE5MGM2ZWQg aW4gaW50ZXJuYWxfZXJyb3JfbG9jIChmaWxlPTB4MWU0YTk0ZSAiLi4vLi4vc3JjL2dkYi9zeW1m aWxlLmMiLCBsaW5lPTgzOCwgZm10PTB4MWU0YWE1MCAic2VjdF9pbmRleF90ZXh0IG5vdCBpbml0 aWFsaXplZCIpIGF0IC4uLy4uL3NyYy9nZGJzdXBwb3J0L2Vycm9ycy5jYzo1NworICAjMTAgMHgw MDAwMDAwMDAwZjVmNWFjIGluIGluaXRfZW50cnlfcG9pbnRfaW5mbyAob2JqZmlsZT0weDVhOThl ODApIGF0IC4uLy4uL3NyYy9nZGIvc3ltZmlsZS5jOjgzOAorICAjMTEgMHgwMDAwMDAwMDAwZjVm OTQzIGluIHN5bXNfZnJvbV9vYmpmaWxlIChvYmpmaWxlPTB4NWE5OGU4MCwgYWRkcnM9MHg3ZmZk Nzg3Mjg0OTAsIGFkZF9mbGFncz0uLi4pIGF0IC4uLy4uL3NyYy9nZGIvc3ltZmlsZS5jOjk2Mgor ICAjMTIgMHgwMDAwMDAwMDAwZjVmZTZkIGluIHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzIChh YmZkPS4uLiwgbmFtZT0weDNlNzZlNTAgIi90bXAvLm1vdW50X0dpdHR5dWptSUJrRC91c3IvYmlu Ly4uLy4uL2hvbWUvcnVubmVyL3dvcmsvR2l0dHl1cC9RdC81LjE1LjIvZ2NjXzY0L2xpYi8uL2xp YmljdWRhdGEuc28uNTYiLCBhZGRfZmxhZ3M9Li4uLCBhZGRycz0weDdmZmQ3ODcyODQ5MCwgZmxh Z3M9Li4uLCBwYXJlbnQ9MHgwKSBhdCAuLi8uLi9zcmMvZ2RiL3N5bWZpbGUuYzoxMDcxCisgICMx MyAweDAwMDAwMDAwMDBmNjAxYWEgaW4gc3ltYm9sX2ZpbGVfYWRkX2Zyb21fYmZkIChhYmZkPS4u LiwgbmFtZT0weDNlNzZlNTAgIi90bXAvLm1vdW50X0dpdHR5dWptSUJrRC91c3IvYmluLy4uLy4u L2hvbWUvcnVubmVyL3dvcmsvR2l0dHl1cC9RdC81LjE1LjIvZ2NjXzY0L2xpYi8uL2xpYmljdWRh dGEuc28uNTYiLCBhZGRfZmxhZ3M9Li4uLCBhZGRycz0weDdmZmQ3ODcyODQ5MCwgZmxhZ3M9Li4u LCBwYXJlbnQ9MHgwKSBhdCAuLi8uLi9zcmMvZ2RiL3N5bWZpbGUuYzoxMTQ1CisgICMxNCAweDAw MDAwMDAwMDBmMGYyYWQgaW4gc29saWJfcmVhZF9zeW1ib2xzIChzbz0uLi4sIGZsYWdzPS4uLikg YXQgLi4vLi4vc3JjL2dkYi9zb2xpYi5jOjYyNworICAjMTUgMHgwMDAwMDAwMDAwZjEwMjYzIGlu IHNvbGliX2FkZCAocGF0dGVybj0weDAsIGZyb21fdHR5PTAsIHJlYWRzeW1zPTEpIGF0IC4uLy4u L3NyYy9nZGIvc29saWIuYzo5NjAKKworRnJvbSB0aGlzIHdlIGNhbiBzZWUgR0RCIGlzIHRyeWlu ZyB0byBhZGQgdGhlIHNoYXJlZCBsaWJyYXJ5OgorCisgIC90bXAvLm1vdW50X0dpdHR5dWptSUJr RC91c3IvYmluLy4uLy4uL2hvbWUvcnVubmVyL3dvcmsvR2l0dHl1cC9RdC81LjE1LjIvZ2NjXzY0 L2xpYi8uL2xpYmljdWRhdGEuc28uNTYKKworVGhlIGludGVybmFsIGVycm9yIGlzIHRyaWdnZXJl ZCBmcm9tIHRoZXNlIGxpbmVzIGluCitpbml0X2VudHJ5X3BvaW50X2luZm86CisKKyAgaWYgKCFm b3VuZCkKKyAgICBlaS0+dGhlX2JmZF9zZWN0aW9uX2luZGV4ID0gU0VDVF9PRkZfVEVYVCAob2Jq ZmlsZSk7CisKK1doZXJlIFNFQ1RfT0ZGX1RFWFQgaXM6CisKKyAgI2RlZmluZSBTRUNUX09GRl9U RVhUKG9iamZpbGUpIFwKKyAgICAgKChvYmpmaWxlLT5zZWN0X2luZGV4X3RleHQgPT0gLTEpIFwK KyAgICAgID8gKGludGVybmFsX2Vycm9yIChfKCJzZWN0X2luZGV4X3RleHQgbm90IGluaXRpYWxp emVkIikpLCAtMSkJXAorICAgICAgOiBvYmpmaWxlLT5zZWN0X2luZGV4X3RleHQpCisKK1NvIHdl IGNhbiBzZWUgdGhhdCBvYmpmaWxlOjpzZWN0X2luZGV4X3RleHQgaXMgLTEsIHdoaWNoIGxlYWRz IHRvIHRoZQoraW50ZXJuYWwgZXJyb3IuCisKK0xvb2tpbmcgYXQgdGhlICdyZWFkZWxmIC1XYSAu Li4nIG91dHB1dCBmb3IgdGhlIHNoYXJlZCBsaWJyYXJ5IGluCitxdWVzdGlvbiB3ZSBzZWUgdGhp czoKKworICBFTEYgSGVhZGVyOgorICAgIE1hZ2ljOiAgIDdmIDQ1IDRjIDQ2IDAyIDAxIDAxIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCisgICAgQ2xhc3M6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFTEY2NAorICAgIERhdGE6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMidz IGNvbXBsZW1lbnQsIGxpdHRsZSBlbmRpYW4KKyAgICBWZXJzaW9uOiAgICAgICAgICAgICAgICAg ICAgICAgICAgIDEgKGN1cnJlbnQpCisgICAgT1MvQUJJOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBVTklYIC0gU3lzdGVtIFYKKyAgICBBQkkgVmVyc2lvbjogICAgICAgICAgICAgICAgICAg ICAgIDAKKyAgICBUeXBlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERZTiAoU2hhcmVk IG9iamVjdCBmaWxlKQorICAgIE1hY2hpbmU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWR2 YW5jZWQgTWljcm8gRGV2aWNlcyBYODYtNjQKKyAgICBWZXJzaW9uOiAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MQorICAgIEVudHJ5IHBvaW50IGFkZHJlc3M6ICAgICAgICAgICAgICAgMHgy ZDcKKyAgICBTdGFydCBvZiBwcm9ncmFtIGhlYWRlcnM6ICAgICAgICAgIDI1MDUxMTM2IChieXRl cyBpbnRvIGZpbGUpCisgICAgU3RhcnQgb2Ygc2VjdGlvbiBoZWFkZXJzOiAgICAgICAgICAyNTA0 NzU1MiAoYnl0ZXMgaW50byBmaWxlKQorICAgIEZsYWdzOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwCisgICAgU2l6ZSBvZiB0aGlzIGhlYWRlcjogICAgICAgICAgICAgICA2NCAoYnl0 ZXMpCisgICAgU2l6ZSBvZiBwcm9ncmFtIGhlYWRlcnM6ICAgICAgICAgICA1NiAoYnl0ZXMpCisg ICAgTnVtYmVyIG9mIHByb2dyYW0gaGVhZGVyczogICAgICAgICA3CisgICAgU2l6ZSBvZiBzZWN0 aW9uIGhlYWRlcnM6ICAgICAgICAgICA2NCAoYnl0ZXMpCisgICAgTnVtYmVyIG9mIHNlY3Rpb24g aGVhZGVyczogICAgICAgICAxMQorICAgIFNlY3Rpb24gaGVhZGVyIHN0cmluZyB0YWJsZSBpbmRl eDogNworCisgIFNlY3Rpb24gSGVhZGVyczoKKyAgICBbTnJdIE5hbWUgICAgICAgICAgICAgIFR5 cGUgICAgICAgICAgICBBZGRyZXNzICAgICAgICAgIE9mZiAgICBTaXplICAgRVMgRmxnIExrIElu ZiBBbAorICAgIFsgMF0gICAgICAgICAgICAgICAgICAgTlVMTCAgICAgICAgICAgIDAwMDAwMDAw MDAwMDAwMDAgMDAwMDAwIDAwMDAwMCAwMCAgICAgIDAgICAwICAwCisgICAgWyAxXSAubm90ZS5n bnUuYnVpbGQtaWQgTk9URSAgICAgICAgICAgIDAwMDAwMDAwMDAwMDAxOTAgMDAwMTkwIDAwMDAy NCAwMCAgIEEgIDAgICAwICA0CisgICAgWyAyXSAuZ251Lmhhc2ggICAgICAgICBHTlVfSEFTSCAg ICAgICAgMDAwMDAwMDAwMDAwMDFiOCAwMDAxYjggMDAwMDM0IDAwICAgQSAgMyAgIDAgIDgKKyAg ICBbIDNdIC5keW5zeW0gICAgICAgICAgIERZTlNZTSAgICAgICAgICAwMDAwMDAwMDAwMDAwMWYw IDAwMDFmMCAwMDAwOTAgMTggICBBIDEwICAgMiAgOAorICAgIFsgNF0gLnJvZGF0YSAgICAgICAg ICAgUFJPR0JJVFMgICAgICAgIDAwMDAwMDAwMDAwMDAyZTAgMDAwMmUwIDE3ZTI3ZDAgMDAgICBB ICAwICAgMCAxNgorICAgIFsgNV0gLmVoX2ZyYW1lICAgICAgICAgUFJPR0JJVFMgICAgICAgIDAw MDAwMDAwMDE3ZTJhYjAgMTdlMmFiMCAwMDAwMDAgMDAgICBBICAwICAgMCAgOAorICAgIFsgNl0g LmR5bmFtaWMgICAgICAgICAgRFlOQU1JQyAgICAgICAgIDAwMDAwMDAwMDE5ZTJmMTAgMTdlMmYx MCAwMDAwZjAgMTAgIFdBIDEwICAgMCAgOAorICAgIFsgN10gLnNoc3RydGFiICAgICAgICAgU1RS VEFCICAgICAgICAgIDAwMDAwMDAwMDAwMDAwMDAgMTdlMzAwMCAwMDAwNjMgMDAgICAgICAwICAg MCAgMQorICAgIFsgOF0gLnN5bXRhYiAgICAgICAgICAgU1lNVEFCICAgICAgICAgIDAwMDAwMDAw MDAwMDAwMDAgMTdlMzA2OCAwMDAxNTAgMTggICAgICA5ICAxMCAgOAorICAgIFsgOV0gLnN0cnRh YiAgICAgICAgICAgU1RSVEFCICAgICAgICAgIDAwMDAwMDAwMDAwMDAwMDAgMTdlMzFiOCAwMDAw NDQgMDAgICAgICAwICAgMCAgMQorICAgIFsxMF0gLmR5bnN0ciAgICAgICAgICAgU1RSVEFCICAg ICAgICAgIDAwMDAwMDAwMDE5ZTMxODggMTdlNDE4OCAwMDA0MjAgMDAgICBBICAwICAgMCAgOAor ICBLZXkgdG8gRmxhZ3M6CisgICAgVyAod3JpdGUpLCBBIChhbGxvYyksIFggKGV4ZWN1dGUpLCBN IChtZXJnZSksIFMgKHN0cmluZ3MpLCBJIChpbmZvKSwKKyAgICBMIChsaW5rIG9yZGVyKSwgTyAo ZXh0cmEgT1MgcHJvY2Vzc2luZyByZXF1aXJlZCksIEcgKGdyb3VwKSwgVCAoVExTKSwKKyAgICBD IChjb21wcmVzc2VkKSwgeCAodW5rbm93biksIG8gKE9TIHNwZWNpZmljKSwgRSAoZXhjbHVkZSks CisgICAgRCAobWJpbmQpLCBsIChsYXJnZSksIHAgKHByb2Nlc3NvciBzcGVjaWZpYykKKworICBU aGVyZSBhcmUgbm8gc2VjdGlvbiBncm91cHMgaW4gdGhpcyBmaWxlLgorCisgIFByb2dyYW0gSGVh ZGVyczoKKyAgICBUeXBlICAgICAgICAgICBPZmZzZXQgICBWaXJ0QWRkciAgICAgICAgICAgUGh5 c0FkZHIgICAgICAgICAgIEZpbGVTaXogIE1lbVNpeiAgIEZsZyBBbGlnbgorICAgIExPQUQgICAg ICAgICAgIDB4MDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAgMHgx N2UyYWIwIDB4MTdlMmFiMCBSICAgMHgyMDAwMDAKKyAgICBHTlVfU1RBQ0sgICAgICAweDAwMDAw MCAweDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwIDB4MDAwMDAw IFJXICAweDEwCisgICAgTk9URSAgICAgICAgICAgMHgwMDAxOTAgMHgwMDAwMDAwMDAwMDAwMTkw IDB4MDAwMDAwMDAwMDAwMDE5MCAweDAwMDAyNCAweDAwMDAyNCBSICAgMHg0CisgICAgTE9BRCAg ICAgICAgICAgMHgxN2UyZjEwIDB4MDAwMDAwMDAwMTllMmYxMCAweDAwMDAwMDAwMDE5ZTJmMTAg MHgwMDAwZjAgMHgwMDAwZjAgUlcgIDB4MjAwMDAwCisgICAgRFlOQU1JQyAgICAgICAgMHgxN2Uy ZjEwIDB4MDAwMDAwMDAwMTllMmYxMCAweDAwMDAwMDAwMDE5ZTJmMTAgMHgwMDAwZjAgMHgwMDAw ZjAgUlcgIDB4OAorICAgIEdOVV9SRUxSTyAgICAgIDB4MTdlMmYxMCAweDAwMDAwMDAwMDE5ZTJm MTAgMHgwMDAwMDAwMDAxOWUyZjEwIDB4MDAwMGYwIDB4MDAwMGYwIFIgICAweDEKKyAgICBMT0FE ICAgICAgICAgICAweDE3ZTQwMDAgMHgwMDAwMDAwMDAxOWUzMDAwIDB4MDAwMDAwMDAwMTllMzAw MCAweDAwMDVhOCAweDAwMDVhOCBSVyAgMHgxMDAwCisKK1RoaW5ncyB0byBub3RlIGhlcmUgYXJl OgorCisgIDEuIFRoZXJlIHJlYWxseSBpcyBubyAudGV4dCBzZWN0aW9uLCBvciBhbnkgZXhlY3V0 YWJsZSBzZWN0aW9ucywKKworICAyLiB0aGVyZSBhcmUgMyBMT0FEIHNlZ21lbnRzLiAgVGhpcyB3 aWxsIGJlIGltcG9ydGFudCBsYXRlciwgYW5kCisKKyAgMy4gdGhlICJFbnRyeSBwb2ludCBhZGRy ZXNzIiBpcyBvdXRzaWRlIGFsbCBzZWN0aW9ucywgYW5kIGlzCisgICAgIG5vbi16ZXJvLgorCitO ZXh0IHdlIGNhbiBpbnZlc3RpZ2F0ZSB3aGVyZSBvYmpmaWxlOjpzZWN0X2luZGV4X3RleHQgaXMg c2V0IHRvCitzb21ldGhpbmcgb3RoZXIgdGhhbiAtMS4gIFN0YXJ0aW5nIGluIGluaXRfb2JqZmls ZV9zZWN0X2luZGljZXMsIGlmCit0aGUgb2JqZmlsZSBoYXMgYSAiLnRleHQiIHNlY3Rpb24gdGhl biBzZWN0X2luZGV4X3RleHQgY2FuIGJlIHNldC4KK1RoaXMgY2FzZSBjbGVhcmx5IGRvZXNuJ3Qg YXBwbHkuCisKK05leHQgc3ltZmlsZV9maW5kX3NlZ21lbnRfc2VjdGlvbnMgaXMgY2FsbGVkLiAg VGhpcyB0cmllcyB0byBtYXRjaCBhCitjb21tb24gY2FzZSB3aGVyZSB3ZSBoYXZlIGVpdGhlciAx IG9yIDIgTE9BRCBzZWdtZW50cywgYW5kIGFzc3VtZXMgYQorZGVmYXVsdCBkaXN0cmlidXRpb24g b2Ygc2VjdGlvbnMgdG8gc2VnbWVudHMuICBIb3dldmVyLCB3ZSBoYXZlIDMgTE9BRAorc2VnbWVu dHMsIHNvIHRoZXNlIGxpbmVzOgorCisgIGlmIChkYXRhLT5zZWdtZW50cy5zaXplICgpICE9IDEg JiYgZGF0YS0+c2VnbWVudHMuc2l6ZSAoKSAhPSAyKQorICAgIHJldHVybjsKKworcmVzdWx0IGlu IGFuIGVhcmx5IHJldHVybiBmcm9tIHN5bWZpbGVfZmluZF9zZWdtZW50X3NlY3Rpb25zIHdpdGhv dXQKK3NlY3RfaW5kZXhfdGV4dCBiZWluZyBzZXQuCisKK0JhY2sgaW4gaW5pdF9vYmpmaWxlX3Nl Y3RfaW5kaWNlcywgaWYgbm8gc2VjdGlvbnMgaGF2ZSBhbiBvZmZzZXQgdGhlbgord2Ugc2V0IGFu eSBjdXJyZW50bHkgdW5zZXQgc2VjdF9pbmRleF8qIHZhbHVlcywgaW5jbHVkaW5nCitzZWN0X2lu ZGV4X3RleHQsIHRvIHBvaW50IGF0IHNlY3Rpb24gMC4gIEhvd2V2ZXIsIGluIG91ciBjYXNlIHRo ZQorb2JqZmlsZSBpcyBhIHJlbG9jYXRhYmxlIHNoYXJlZCBsaWJyYXJ5LCBzbyB0aGUgc2VjdGlv bnMgd2lsbCBoYXZlIGFuCitvZmZzZXQsIGFuZCBzbyB0aGlzIGZpbmFsIGZhbGxiYWNrIGNhc2Ug ZG9lc24ndCBhcHBseS4KKworVGhlIHJlc3VsdCBpcyB0aGF0IGluaXRfb2JqZmlsZV9zZWN0X2lu ZGljZXMgbmV2ZXIgc2V0cworc2VjdF9pbmRleF90ZXh0LiAgVGhpcyB3b3JyaWVzIG1lIGEgbGl0 dGxlIGFzCitpbml0X29iamZpbGVfc2VjdF9pbmRpY2VzIGNvbnRhaW5zIHRoaXMgY29tbWVudDoK KworICAvKiBUaGlzIGlzIHdoZXJlIHRoaW5ncyBnZXQgcmVhbGx5IHdlaXJkLi4uICBXZSBNVVNU IGhhdmUgdmFsaWQKKyAgICAgaW5kaWNlcyBmb3IgdGhlIHZhcmlvdXMgc2VjdF9pbmRleF8qIG1l bWJlcnMgb3IgZ2RiIHdpbGwgYWJvcnQuCisgICAgIFNvIGlmIGZvciBleGFtcGxlLCB0aGVyZSBp cyBubyAiLnRleHQiIHNlY3Rpb24sIHdlIGhhdmUgdG8KKyAgICAgYWNjb21tb2RhdGUgdGhhdC4g IEZpcnN0LCBjaGVjayBmb3IgYSBmaWxlIHdpdGggdGhlIHN0YW5kYXJkCisgICAgIG9uZSBvciB0 d28gc2VnbWVudHMuICAqLworCitOb3RpY2UgdGhlIGVtcGhhc2lzIG9uIE1VU1QgaW4gdGhhdCBj b21tZW50LCBhbmQgaW5kZWVkLCB3ZSBleGl0IHRoaXMKK2Z1bmN0aW9uIHdpdGhvdXQgc2V0dGlu ZyBzZWN0X2luZGV4X3RleHQsIGFuZCBHREIgZG9lcyBpbmRlZWQgYWJvcnQuCitUaGUgY29tbWVu dCBzZWVtcyB0byBpbXBseSB0aGF0IHRoZSBmb2xsb3dpbmcgY29kZSBpcyBnb2luZyB0byB0cnkg dG8KK2ZpZ3VyZSBvdXQgYSBzdWl0YWJsZSBzdGFuZC1pbiBzZWN0X2luZGV4X3RleHQgZm9yIHdo ZW4gdGhlcmUgaXMgbm8KKyIudGV4dCIgc2VjdGlvbiwgYnV0IGNsZWFybHkgSSd2ZSBydW4gaW50 byBhIGNhc2UgdGhhdCBpc24ndCBjb3ZlcmVkLgorCitBbGwgb2YgdGhpcyBjb2RlIHJlbGF0aW5n IHRvIHNldHRpbmcgc2VjdF9pbmRleF90ZXh0IHdhcyBpbnRyb2R1Y2VkIGluCitjb21taXQ6CisK KyAgY29tbWl0IDMxZDk5Nzc2YzczZDZmY2ExMzE2M2RhNTljODUyYjBmYTk5Zjg5YjgKKyAgRGF0 ZTogICBNb24gSnVuIDE4IDE1OjQ2OjM4IDIwMDcgKzAwMDAKKworV2hpY2ggdW5mb3J0dW5hdGVs eSBpcyBmcm9tIGEgdGltZSB3aGVyZSB3ZSBkaWRuJ3Qgd3JpdGUgdXNlZnVsIGNvbW1pdAorbWVz c2FnZXMsIHNvIHRvIHVuZGVyc3RhbmQgdGhlIGNvbW1pdCB5b3UgbmVlZCB0byBnbyByZWFkIHRo ZSBtYWlsaW5nCitsaXN0IGFyY2hpdmUsIGJ1dCB0aGV5IGRvbid0IG9mZmVyIG11Y2ggbW9yZSBp bnNpZ2h0OgorCisgIGh0dHBzOi8vc291cmNld2FyZS5vcmcvcGlwZXJtYWlsL2dkYi1wYXRjaGVz LzIwMDctTWF5LzA1MDUyNy5odG1sCisKK0NsZWFybHkgdGhlIGNvbW1lbnQgaW4gaW5pdF9vYmpm aWxlX3NlY3RfaW5kaWNlcyB3b3VsZCBzdWdnZXN0IHRoYXQKK3RoZSBmaXggaGVyZSBpcyB0byBm aWd1cmUgb3V0IHNvbWUgImZha2UiIHZhbHVlIGZvciBzZWN0X2luZGV4X3RleHQsCithbmQgdGhh dCB3b3VsZCBjZXJ0YWlubHkgYXZvaWQgdGhlIHByb2JsZW0gaGVyZS4gIEJ1dCwgYXQgbGVhc3Qg Zm9yCit0aGlzIHByb2JsZW0sIEkgdGhpbmsgdGhlcmUncyBtYXliZSBhIGJldHRlciBzb2x1dGlv bi4KKworVGhlIG9yaWdpbmFsIGludGVybmFsIGVycm9yIGlzIHRyaWdnZXJlZCBieSBhIHVzZSBv ZiBTRUNUX09GRl9URVhUIGluCitpbml0X2VudHJ5X3BvaW50X2luZm8uICBXZSBoYXZlIGFuIGVu dHJ5IHBvaW50IGFkZHJlc3MsIHdlIHRyeSB0byBmaW5kCit0aGUgc2VjdGlvbiBpbmRleCBmb3Ig dGhlIHNlY3Rpb24gY29udGFpbmluZyB0aGUgZW50cnkgcG9pbnQsIGFuZAorZmFpbGluZyB0aGF0 LCB3ZSBhc3N1bWUgdGhlIGVudHJ5IHBvaW50IGlzIGluIHRoZSB0ZXh0IHNlY3Rpb24uICBUaGlz CitmYWxsLWJhY2sgYXNzdW1wdGlvbiBtZWFucyB0aGF0LCBpZiB0aGUgdGV4dCBzZWN0aW9uIGhh cyBhbiBvZmZzZXQKK2FwcGxpZWQsIHRoZW4gdGhlIGVudHJ5IHBvaW50IHdpbGwgYWxzbyBoYXZl IHRoYXQgc2FtZSBvZmZzZXQKK2FwcGxpZWQuICBCdXQgaXQncyBub3QgY2xlYXIgdG8gbWUgd2h5 IHBpY2tpbmcgdGhlIHRleHQgc2VjdGlvbiBpcworZ29pbmcgdG8gYmUgYW55IG1vcmUgdmFsaWQg dGhhbiBhbnkgb3RoZXIgc2VjdGlvbiwgZXNwZWNpYWxseSBpbiBhCitjYXNlIGxpa2UgdGhpcyB3 aGVyZSB3ZSBkb24ndCBldmVuIGhhdmUgYSB0ZXh0IHNlY3Rpb24sIHNvIHRoZQorc2VjdF9pbmRl eF90ZXh0IG1pZ2h0IGl0c2VsZiBwb2ludCB0byBzb21lIG90aGVyIGFyYml0cmFyeSBzZWN0aW9u LgorCitFYXJsaWVyIGluIGluaXRfZW50cnlfcG9pbnRfaW5mbyB3ZSBhbHJlYWR5IGhhdmUgYSBm YWxsLWJhY2sgY2FzZQord2hlcmUgd2Ugc2V0IGVudHJ5X2luZm86OmVudHJ5X3BvaW50X3AgdG8g ZmFsc2UgdG8gaW5kaWNhdGUgdGhhdCB0aGUKK29iamZpbGUgaGFzIG5vIGVudHJ5IHBvaW50LCBz byB0aGlzIGlzIGFsd2F5cyBhIHBvc3NpYmlsaXR5LiAgU28gSQord29uZGVyZWQgYWJvdXQgd3Jp dGluZyBzb21ldGhpbmcgbGlrZToKKworICBpZiAoIWZvdW5kKQorICAgIHsKKyAgICAgIGlmIChv YmpmaWxlLT5zZWN0X2luZGV4X3RleHQgIT0gLTEpCisJZWktPnRoZV9iZmRfc2VjdGlvbl9pbmRl eCA9IFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUpOworICAgICAgZWxzZQorICAgICAgICBlaS0+ZW50 cnlfcG9pbnRfcCA9IGZhbHNlOworICAgIH0KKworSWYgd2UgaGF2ZSBubyB0ZXh0IHNlY3Rpb24g aW5kZXggdGhlbiB3ZSBqdXN0IGNsYWltIHRoZSBvYmpmaWxlIGhhcyBubworZW50cnkgcG9pbnQu ICBCdXQgSSBkaWRuJ3QgbGlrZSB0aGlzIGZvciB0d28gcmVhc29ucywgZmlyc3QsIHRoZQorY29t bWVudCBiYWNrIGluIGluaXRfb2JqZmlsZV9zZWN0X2luZGljZXMgc2F5aW5nIHRoYXQgdGhlIGlu ZGV4IHNob3VsZAorYmUgc2V0LCB0aGlzIHNlZW1zIHRvIGluZGljYXRlIHRoYXQgd2Ugc2hvdWxk IG5vdCBiZSBtYWtpbmcgZGVjaXNpb25zCitsYXRlciB3aXRoaW4gR0RCIGJhc2VkIG9uIHdoZXRo ZXIgdGhlIGluZGV4IGlzIHNldCBvciBub3QuCisKK0FuZCBzZWNvbmQsIHVzaW5nIHRoZSB0ZXh0 IHNlY3Rpb24gYXMgYSBmYWxsIGJhY2ssIHdoZW4gdGhlIGVudHJ5CithZGRyZXNzIGlzIG91dHNp ZGUgZXZlcnkgc2VjdGlvbiwganVzdCBzZWVtcyBvZmYuICBTbyBJIHdvbmRlcmVkLCB3aHkKK25v dCBqdXN0IHJlamVjdCB0aGUgZW50cnkgcG9pbnQgY29tcGxldGVseSBpbiB0aGlzIGNhc2U/ICBX aGljaCBpcyBob3cKK0kgZW5kZWQgdXAgd2l0aDoKKworICBpZiAoIWZvdW5kKQorICAgIGVpLT5l bnRyeV9wb2ludF9wID0gZmFsc2U7CisKK1dpdGggdGhpcyBwYXRjaCBpbiBwbGFjZSBJIHdhcyBh YmxlIHRvIHN0YXJ0IGRlYnVnZ2luZyB0aGUgQXBwSW1hZ2UKK2xpbmtlZCBhYm92ZS4KKworSSBj cmVhdGVkIGEgc2ltcGxlIHRlc3QgY2FzZSB3aGljaCByZXByb2R1Y2VzIHRoaXMgaXNzdWUuICBJ dCdzIGEKK2xpdHRsZSBjb250cml2ZWQgYmVjYXVzZSBpdCBoYXMgdG8gaGl0IGFsbCB0aGUgcG9p bnRzIHJlcXVpcmVkIHRvCit0cmlnZ2VyIHRoaXMgYnVnOgorCisgIDEuIE5vIC50ZXh0IHNlY3Rp b24sCisKKyAgMi4gbW9yZSB0aGFuIDIgTE9BRCBzZWdtZW50cywgYW5kCisKKyAgMy4gZW50cnkg YWRkcmVzcyBvdXRzaWRlIGV2ZXJ5IHNlY3Rpb24uCisKK0kgaGF2ZSBubyBpZGVhIHdoYXQgY2F1 c2VkIHRoZSBvcmlnaW5hbCBzaGFyZWQgbGlicmFyeSB0byB0YWtlIG9uCit0aGVzZSBjaGFyYWN0 ZXJpc3RpY3MsIGl0IG1pZ2h0IGV2ZW4gYmUgYSB0b29sIGlzc3VlIGJ1aWxkaW5nIHRoZQorb3Jp Z2luYWwgc2hhcmVkIGxpYnJhcnkuICBJIGhhdmVuJ3QgaW52ZXN0aWdhdGVkIHRoaXMsIGFzIEkg ZG9uJ3QKK3RoaW5rIGl0IHJlYWxseSBtYXR0ZXJzLCBHREIgc2hvdWxkbid0IGJlIGNyYXNoaW5n IGp1c3QgYmVjYXVzZSB0aGUKK2luY29taW5nIG9iamVjdHMgYXJlIGEgbGl0dGxlIHdlaXJkLgor CitJJ3ZlIGF0dGFjaGVkIGEgbGluayB0byB0aGUgRmVkb3JhIGJ1ZyBpbiB0aGUgJ0J1ZzonIHRh ZywgYnV0IGl0J3MgYQorbGl0dGxlIGNvbmZ1c2luZy4gIEFuIGF1dG9tYXRlZCBzeXN0ZW0gaGFz IG1lcmdlZCB0b2dldGhlciB0d28gYnVnCityZXBvcnRzLiAgQXMgc3VjaCB0aGUgb3ZlcmFsbCBi dWcgcmVwb3J0IGxpbmtlZCB0b28gaXMgZm9yIGEKK2NvbXBsZXRlbHkgZGlmZmVyZW50IGlzc3Vl LCBvbmx5IGNvbW1lbnRzIDIxLCAyMiwgMjMsIGFuZCAyNCByZWxhdGUgdG8KK3RoZSBidWcgYmVp bmcgZml4ZWQgaGVyZS4KKworQnVnOiBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19i dWcuY2dpP2lkPTIzNjY0NjEjYzIxCisKK0FwcHJvdmVkLUJ5OiBUb20gVHJvbWV5IDx0b21AdHJv bWV5LmNvbT4KKworZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxlLmMgYi9nZGIvc3ltZmlsZS5jCist LS0gYS9nZGIvc3ltZmlsZS5jCisrKysgYi9nZGIvc3ltZmlsZS5jCitAQCAtODIyLDcgKzgyMiw2 IEBAIGluaXRfZW50cnlfcG9pbnRfaW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCisgICBp ZiAoZWktPmVudHJ5X3BvaW50X3ApCisgICAgIHsKKyAgICAgICBDT1JFX0FERFIgZW50cnlfcG9p bnQgPSAgZWktPmVudHJ5X3BvaW50OworLSAgICAgIGludCBmb3VuZDsKKyAKKyAgICAgICAvKiBN YWtlIGNlcnRhaW4gdGhhdCB0aGUgYWRkcmVzcyBwb2ludHMgYXQgcmVhbCBjb2RlLCBhbmQgbm90 IGEKKyAJIGZ1bmN0aW9uIGRlc2NyaXB0b3IuICAqLworQEAgLTgzNCw3ICs4MzMsNyBAQCBpbml0 X2VudHJ5X3BvaW50X2luZm8gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorICAgICAgIGVpLT5l bnRyeV9wb2ludAorIAk9IGdkYmFyY2hfYWRkcl9iaXRzX3JlbW92ZSAob2JqZmlsZS0+YXJjaCAo KSwgZW50cnlfcG9pbnQpOworIAorLSAgICAgIGZvdW5kID0gMDsKKysgICAgICBib29sIGZvdW5k ID0gZmFsc2U7CisgICAgICAgZm9yIChvYmpfc2VjdGlvbiAmb3NlY3QgOiBvYmpmaWxlLT5zZWN0 aW9ucyAoKSkKKyAJeworIAkgIHN0cnVjdCBiZmRfc2VjdGlvbiAqc2VjdCA9IG9zZWN0LnRoZV9i ZmRfc2VjdGlvbjsKK0BAIC04NDUsMTMgKzg0NCwxNyBAQCBpbml0X2VudHJ5X3BvaW50X2luZm8g KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorIAkgICAgeworIAkgICAgICBlaS0+dGhlX2JmZF9z ZWN0aW9uX2luZGV4CisgCQk9IGdkYl9iZmRfc2VjdGlvbl9pbmRleCAob2JqZmlsZS0+b2JmZC5n ZXQgKCksIHNlY3QpOworLQkgICAgICBmb3VuZCA9IDE7CisrCSAgICAgIGZvdW5kID0gdHJ1ZTsK KyAJICAgICAgYnJlYWs7CisgCSAgICB9CisgCX0KKyAKKysgICAgICAvKiBXZSBzdG9yZSB0aGUg c2VjdGlvbiBpbmRleCBzbyB0aGF0IHRoZSBlbnRyeSBhZGRyZXNzIGNhbiBiZQorKwkgcmVsb2Nh dGVkIHdoZW4gdXNlZC4gIElmIHRoZSBlbnRyeSBhZGRyZXNzIGlzIG91dHNpZGUgb2YgYW55Cisr CSBzZWN0aW9uIHRoZW4gd2UgY2Fubm90IHJlbG9jYXRlIGl0LiAgSnVzdCBjbGFpbSB0aGF0IHRo ZXJlIGlzIG5vCisrCSBlbnRyeSBhZGRyZXNzIGluIHRoaXMgY2FzZS4gICovCisgICAgICAgaWYg KCFmb3VuZCkKKy0JZWktPnRoZV9iZmRfc2VjdGlvbl9pbmRleCA9IFNFQ1RfT0ZGX1RFWFQgKG9i amZpbGUpOworKwllaS0+ZW50cnlfcG9pbnRfcCA9IGZhbHNlOworICAgICB9CisgfQorIAorZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc29saWItYmFkLWVudHJ5LWFkZHItbGli LnMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvbGliLWJhZC1lbnRyeS1hZGRyLWxpYi5zCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9zb2xpYi1iYWQtZW50cnktYWRkci1saWIucworQEAgLTAsMCArMSwzMyBAQAorKy8q IENvcHlyaWdodCAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysK KysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysJLnNlY3Rpb24gLnJvZGF0 YQorKwkuZ2xvYmwgbGliX3ZhcgorKwkudHlwZSBsaWJfdmFyLCBAb2JqZWN0CisrbGliX3ZhcjoK KysJLmxvbmcgNDIKKysJLnNpemUgbGliX3ZhciwgLi1saWJfdmFyCisrCisrCS8qIFRoaXMgZXhl Y3V0YWJsZSBzZWN0aW9uIGV4aXN0cyBzb2xlbHkgdG8gZm9yY2UgdGhlIGxpbmtlcgorKwkgICB0 byBjcmVhdGUgYW4gYWRkaXRpb25hbCBMT0FEIHNlZ21lbnQgKHdpdGggUitYIHBlcm1pc3Npb25z KSwKKysJICAgZ2l2aW5nIHRoZSBsaWJyYXJ5IDMrIExPQUQgc2VnbWVudHMgaW5zdGVhZCBvZiB0 aGUgZGVmYXVsdCAyLgorKworKwkgICBUaGlzIG1hdHRlcnMgYmVjYXVzZSBHREIncyBzeW1maWxl X2ZpbmRfc2VnbWVudF9zZWN0aW9ucyBvbmx5CisrCSAgIHJ1bnMgZm9yIG9iamVjdHMgd2l0aCBl eGFjdGx5IDEgb3IgMiBzZWdtZW50cy4gIFdoZW4gaXQgcnVucywKKysJICAgaXQgc2V0cyBzZWN0 X2luZGV4X3RleHQgZnJvbSB0aGUgZmlyc3Qgc2VjdGlvbiBpbiBzZWdtZW50IDEsCisrCSAgIHdo aWNoIG1hc2tzIHRoZSBidWcgd2UgYXJlIHRlc3RpbmcgZm9yLCBzZWUgdGhlIC5leHAgZmlsZSBm b3IKKysJICAgZGV0YWlscy4gICovCisrCS5zZWN0aW9uIC5ub3RfdGV4dCwgImF4IiwgQHByb2di aXRzCisrCS5ieXRlIDAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvbGli LWJhZC1lbnRyeS1hZGRyLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvbGliLWJhZC1lbnRy eS1hZGRyLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3NvbGliLWJhZC1lbnRyeS1hZGRyLmMKK0BAIC0wLDAgKzEsMjIg QEAKKysvKiBDb3B5cmlnaHQgMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysK KysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrZXh0ZXJuIGlu dCBsaWJfdmFyOworKworK2ludAorK21haW4gKCkKKyt7CisrICByZXR1cm4gbGliX3ZhcjsKKyt9 CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zb2xpYi1iYWQtZW50cnktYWRk ci5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvbGliLWJhZC1lbnRyeS1hZGRyLmV4cAor bmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2Uvc29saWItYmFkLWVudHJ5LWFkZHIuZXhwCitAQCAtMCwwICsxLDk5IEBACisrIyBD b3B5cmlnaHQgMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBUaGlzIHRlc3QgYWltcyB0byBleGVyY2lzZSBh IHNwZWNpZmljIHNpdHVhdGlvbiB3aGljaCB3YXMgc2VlbgorKyMgY2F1c2luZyBHREIgdG8gY3Jh c2guICBBbiBhcHBsaWNhdGlvbiBoYXMgYSBzaGFyZWQgbGlicmFyeSB0aGF0CisrIyBtZWV0cyB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisrIworKyMgMS4gTm8gIi50ZXh0IiBzZWN0aW9uLAor KyMgMi4gYXQgbGVhc3QgMyBMT0FEIHNlZ21lbnRzLCBhbmQKKysjIDMuIGEgbm9uLXplcm8gZW50 cnkgYWRkcmVzcyB0aGF0IGlzIG91dHNpZGUgb2YgZXZlcnkgc2VjdGlvbi4KKysjCisrIyBXaGVu IHRoZXNlIDMgY29uZGl0aW9ucyBhcmUgbWV0IHRoZW4gR0RCIHdvdWxkIHJ1biBpbnRvIGEgcHJv YmxlbSBpbgorKyMgaW5pdF9lbnRyeV9wb2ludF9pbmZvIGZvciB0aGUgc2hhcmVkIGxpYnJhcnku ICBUaGUgbm9uLXplcm8gZW50cnkKKysjIGFkZHJlc3MgbWVhbnMgR0RCIHdvdWxkIHRyeSB0byBm aW5kIHRoZSBzZWN0aW9uIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisrIyBhZGRyZXNzLiAgQXMgdGhl IGFkZHJlc3MgaXMgb3V0c2lkZSBvZiBhbGwgc2VjdGlvbnMgdGhlbiBHREIgd291bGQKKysjIHRy eSB0byB1c2UgdGhlIC50ZXh0IHNlY3Rpb24gYXMgYSBmYWxsLWJhY2suICBCdXQgdGhlcmUgaXMg bm8gdGV4dAorKyMgc2VjdGlvbiwgc28gYW4gaW50ZXJuYWwgZXJyb3Igd291bGQgYmUgdHJpZ2dl cmVkLgorKyMKKysjIFRoZSAzIExPQUQgc2VnbWVudHMgaXMgaW1wb3J0YW50IGJlY2F1c2UsIGlm IHRoZXJlIGFyZSBvbmx5IDEgb3IgMgorKyMgc2VnbWVudHMgR0RCIGhhcyBhIGRlZmF1bHQgaW4g c3ltZmlsZV9maW5kX3NlZ21lbnRfc2VjdGlvbnMgd2hlcmUKKysjIGl0IGFzc3VtZXMgdGhlIHRl eHQgc2VjdGlvbiBpcyB0aGUgZmlyc3Qgc2VjdGlvbiBpbiB0aGUgZmlyc3QKKysjIHNlZ21lbnQs IHdoaWNoIG1lYW5zIGluaXRfZW50cnlfcG9pbnRfaW5mbyB3aWxsIGhhdmUgYSAudGV4dCBzZWN0 aW9uCisrIyB0byB1c2UuCisrIworKyMgVGhpcyB0ZXN0IGhhcyBhIHZlcnkgc2ltcGxlIGFzc2Vt YmxlciBmaWxlICh3aGljaCBob3BlZnVsbHkgY29udGFpbnMKKysjIG5vIGFyY2hpdGVjdHVyZSBz cGVjaWZpYyBjb250ZW50KSwgd2hpY2ggd2lsbCBjb21waWxlIHRvIGEgY291cGxlIG9mCisrIyBz ZWN0aW9ucywgYnV0IG5vIC50ZXh0IHNlY3Rpb24uICBUaGVzZSBzZWN0aW9ucyBmb3JjZSB0aGUg Y3JlYXRpb24KKysjIG9mIG1vcmUgdGhhbiAyIExPQUQgc2VnbWVudHMuICBUaGUgY29tcGlsZXIg ZmxhZ3MgdGhlbiBzZXQgdGhlIGVudHJ5CisrIyBhZGRyZXNzIHRvIDB4MSwgd2hpY2ggKHdlIGhv cGUpIGlzIG91dHNpZGUgYWxsIHNlY3Rpb25zLiAgVGhpcworKyMgYXNzZW1ibGVyIGZpbGUgaXMg Y29tcGlsZWQgaW50byBhIHNoYXJlZCBsaWJyYXJ5LgorKworK3JlcXVpcmUgYWxsb3dfc2hsaWJf dGVzdHMKKytyZXF1aXJlICF1c2VfZ2RiX3N0dWIKKytyZXF1aXJlIHtpc3RhcmdldCAqLWxpbnV4 Kn0KKysKKytzdGFuZGFyZF90ZXN0ZmlsZSAuYyAtbGliLnMKKysKKysjIEJ1aWxkIHNoYXJlZCBs aWJyYXJ5LgorK3NldCBsaWJfdGVzdGZpbGUgJHt0ZXN0ZmlsZX0tbGliLnNvCisrc2V0IGxpYl9z cmNmaWxlICR7c3JjZmlsZTJ9Cisrc2V0IGxpYl9iaW5maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmls ZSAke2xpYl90ZXN0ZmlsZX1dCisrc2V0IGxpYl9mbGFncyB7c2hsaWIgXAorKwkJICAgYWRkaXRp b25hbF9mbGFncz0tbm9zdGFydGZpbGVzIFwKKysJCSAgIGFkZGl0aW9uYWxfZmxhZ3M9LVdsLC1l LDB4MSBcCisrCQkgICBhZGRpdGlvbmFsX2ZsYWdzPS1XbCwteixzZXBhcmF0ZS1jb2RlfQorK2lm IHsgW2J1aWxkX2V4ZWN1dGFibGUgImJ1aWxkIHNvbGliIiAkbGliX3Rlc3RmaWxlICRsaWJfc3Jj ZmlsZSBcCisrCSAgJGxpYl9mbGFnc10gPT0gLTEgfSB7CisrICAgIHJldHVybgorK30KKysKKysj IEJ1aWxkIHRoZSB0ZXN0IGV4ZWN1dGFibGUuCisraWYgeyBbYnVpbGRfZXhlY3V0YWJsZSAiYnVp bGQgZXhlYyIgJHRlc3RmaWxlICRzcmNmaWxlIFwKKysJICBbbGlzdCBkZWJ1ZyBwaWUgc2hsaWI9 JHtsaWJfYmluZmlsZX1dXSA9PSAtMSB9IHsKKysgICAgcmV0dXJuCisrfQorKworKyMgQ29uZmly bSB3ZSBoYXZlIG1vcmUgdGhhbiAyIExPQUQgc2VnbWVudHMgaW4gdGhlIHNoYXJlZCBsaWJyYXJ5 LgorK3NldCByZWFkZWxmX3Byb2dyYW0gW2dkYl9maW5kX3JlYWRlbGZdCisrc2V0IGNvbW1hbmQg ImV4ZWMgJHJlYWRlbGZfcHJvZ3JhbSAtV2wgJGxpYl9iaW5maWxlIgorK3ZlcmJvc2UgLWxvZyAi Y29tbWFuZCBpcyAkY29tbWFuZCIKKytzZXQgcmVzdWx0IFtjYXRjaCB7eyp9JGNvbW1hbmR9IG91 dHB1dF0KKyt2ZXJib3NlIC1sb2cgInJlc3VsdCBpcyAkcmVzdWx0IgorK3ZlcmJvc2UgLWxvZyAi b3V0cHV0IGlzICRvdXRwdXQiCisraWYgeyRyZXN1bHQgIT0gMH0geworKyAgICBmYWlsICJyZWFk IHByb2dyYW0gaGVhZGVycyBmcm9tICRsaWJfdGVzdGZpbGUiCisrICAgIHJldHVybgorK30KKytp ZiB7IVtyZWdleHAge1xuUHJvZ3JhbSBIZWFkZXJzOlxuICpUeXBlIFteXG5dKiBBbGlnblxuKC4q PylcblxufSAkb3V0cHV0IHRyYXNoIHBoZHJdfSB7CisrICAgIGZhaWwgIm5vIFByb2dyYW0gSGVh ZGVycyBmb3VuZCIKKysgICAgcmV0dXJuCisrfQorK3NldCBsb2FkX3NlZ21lbnRfY291bnQgMAor K2ZvcmVhY2ggbGluZSBbcmVnZXhwIC1saW5lIC1hbGwgLWlubGluZSB7XiAqTE9BRCAuKiAweFsw LTldKyR9ICRwaGRyXSB7CisrICAgIGluY3IgbG9hZF9zZWdtZW50X2NvdW50CisrfQorK2lmIHsg JGxvYWRfc2VnbWVudF9jb3VudCA8PSAyIH0geworKyAgICBmYWlsICJub3QgZW5vdWdoIExPQUQg c2VnbWVudHMiCisrICAgIHJldHVybgorK30KKysKKysjIFN0YXJ0IEdEQiBhbmQgcnVuIHRvIG1h aW4uICBJZiB0aGUgc2hhcmVkIGxpYnJhcnkgaXMgY2F1c2luZyBpc3N1ZXMKKysjIHRoZW4gd2Ug d2lsbCBzZWUgYW4gaW50ZXJuYWwgZXJyb3Igb25jZSB0aGUgaW5mZXJpb3Igc3RhcnRzIHJ1bm5p bmcuCisrY2xlYW5fcmVzdGFydCAkdGVzdGZpbGUKKysKKytpZiB7IVtydW50b19tYWluIG1lc3Nh Z2VdfSB7CisrICByZXR1cm4gMAorK30KCmRpZmYgLS1naXQgYS9nZGItcmhiejIzNjY0NjEtbWlz c2luZy10aHJlYWQucGF0Y2ggYi9nZGItcmhiejIzNjY0NjEtbWlzc2luZy10aHJlYWQucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRhY2Y5NwotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1yaGJ6MjM2NjQ2MS1taXNzaW5nLXRocmVhZC5wYXRjaApAQCAtMCwwICsxLDQ5 OSBAQAorRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IEFuZHJldyBCdXJnZXNzIDxhYnVyZ2Vzc0ByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAxNiBNYXkg MjAyNSAxNzo1Njo1OCArMDEwMAorU3ViamVjdDogZ2RiLXJoYnoyMzY2NDYxLW1pc3NpbmctdGhy ZWFkLnBhdGNoCisKKzs7IEJhY2twb3J0IHVwc3RyZWFtIGNvbW1pdCA4YmQwOGVlOTJjNCB0byBh ZGRyZXNzIHJoYnoyMzY2NDYxLiAgVGhpcworOzsgY29tbWl0IHdpbGwgZHJvcCBvdXQgd2l0aCBH REIgMTguCisKK2dkYjogY3Jhc2ggaWYgdGhyZWFkIHVuZXhwZWN0ZWRseSBkaXNhcHBlYXJzIGZy b20gdGhyZWFkIGxpc3QKKworQSBidWcgd2FzIHJlcG9ydGVkIHRvIFJlZCBIYXQgd2hlcmUgR0RC IHdhcyBjcmFzaGluZyB3aXRoIGFuIGFzc2VydGlvbgorZmFpbHVyZSwgdGhlIGFzc2VydGlvbiBt ZXNzYWdlIGlzOgorCisgIC4uLy4uL2dkYi9yZWdjYWNoZS5jOjQzMjogaW50ZXJuYWwtZXJyb3I6 IGdldF90aHJlYWRfcmVnY2FjaGU6IEFzc2VydGlvbiBgdGhyZWFkLT5zdGF0ZSAhPSBUSFJFQURf RVhJVEVEJyBmYWlsZWQuCisKK1RoZSBiYWNrdHJhY2UgZm9yIHRoZSBjcmFzaCBpczoKKworICAj NSAgMHgwMDAwNTVhMjFkYThhODgwIGluIGludGVybmFsX3Zwcm9ibGVtKGludGVybmFsX3Byb2Js ZW0gKiwgY29uc3QgY2hhciAqLCBpbnQsIGNvbnN0IGNoYXIgKiwgdHlwZWRlZiBfX3ZhX2xpc3Rf dGFnIF9fdmFfbGlzdF90YWcgKikgKHByb2JsZW09cHJvYmxlbUBlbnRyeT0weDU1YTIxZTI4OTA2 MCA8aW50ZXJuYWxfZXJyb3JfcHJvYmxlbT4sIGZpbGU9PG9wdGltaXplZCBvdXQ+LCBsaW5lPTxv cHRpbWl6ZWQgb3V0PiwgZm10PTxvcHRpbWl6ZWQgb3V0PiwgYXA9YXBAZW50cnk9MHg3ZmZlYzc1 NzZiZTApIGF0IC4uLy4uL2dkYi91dGlscy5jOjQ3NworICAjNiAgMHgwMDAwNTVhMjFkYThhYWRm IGluIGludGVybmFsX3ZlcnJvciAoZmlsZT08b3B0aW1pemVkIG91dD4sIGxpbmU9PG9wdGltaXpl ZCBvdXQ+LCBmbXQ9PG9wdGltaXplZCBvdXQ+LCBhcD1hcEBlbnRyeT0weDdmZmVjNzU3NmJlMCkg YXQgLi4vLi4vZ2RiL3V0aWxzLmM6NTAzCisgICM3ICAweDAwMDA1NWEyMWRjYmQwNTUgaW4gaW50 ZXJuYWxfZXJyb3JfbG9jIChmaWxlPWZpbGVAZW50cnk9MHg1NWEyMWRkMzNiNzEgIi4uLy4uL2dk Yi9yZWdjYWNoZS5jIiwgbGluZT1saW5lQGVudHJ5PTQzMiwgZm10PTxvcHRpbWl6ZWQgb3V0Pikg YXQgLi4vLi4vZ2Ric3VwcG9ydC9lcnJvcnMuY2M6NTcKKyAgIzggIDB4MDAwMDU1YTIxZDhiYWFh OSBpbiBnZXRfdGhyZWFkX3JlZ2NhY2hlICh0aHJlYWQ9dGhyZWFkQGVudHJ5PTB4NTVhMjU4ZGUz YTUwKSBhdCAuLi8uLi9nZGIvcmVnY2FjaGUuYzo0MzIKKyAgIzkgIDB4MDAwMDU1YTIxZDc0ZmEx OCBpbiBwcmludF9zaWduYWxfcmVjZWl2ZWRfcmVhc29uICh1aW91dD0weDU1YTI1OGI2NDliMCwg c2lnZ25hbD1HREJfU0lHTkFMX1RSQVApIGF0IC4uLy4uL2dkYi9pbmZydW4uYzo5Mjg3CisgICMx MCAweDAwMDA1NWEyMWQ3ZGFhZDkgaW4gbWlfaW50ZXJwOjpvbl9zaWduYWxfcmVjZWl2ZWQgKHRo aXM9MHg1NWEyNThhZjVmNjAsIHNpZ2duYWw9R0RCX1NJR05BTF9UUkFQKSBhdCAuLi8uLi9nZGIv bWkvbWktaW50ZXJwLmM6MzcyCisgICMxMSAweDAwMDA1NWEyMWQ3NmVmOTkgaW4gaW50ZXJwc19u b3RpZnk8dm9pZCAoaW50ZXJwOjoqKShnZGJfc2lnbmFsKSwgZ2RiX3NpZ25hbCY+IChtZXRob2Q9 JnZpcnR1YWwgdGFibGUgb2Zmc2V0IDg4LCB0aGlzIGFkanVzdG1lbnQgOTc0NjgyKSBhdCAuLi8u Li9nZGIvaW50ZXJwcy5jOjM2OQorICAjMTIgMHgwMDAwNTVhMjFkNzZlNThmIGluIGludGVycHNf bm90aWZ5X3NpZ25hbF9yZWNlaXZlZCAoc2lnPTxvcHRpbWl6ZWQgb3V0Piwgc2lnQGVudHJ5PUdE Ql9TSUdOQUxfVFJBUCkgYXQgLi4vLi4vZ2RiL2ludGVycHMuYzozNzgKKyAgIzEzIDB4MDAwMDU1 YTIxZDc1MDc0ZCBpbiBub3RpZnlfc2lnbmFsX3JlY2VpdmVkIChzaWc9R0RCX1NJR05BTF9UUkFQ KSBhdCAuLi8uLi9nZGIvaW5mcnVuLmM6NjgxOAorICAjMTQgMHgwMDAwNTVhMjFkNzU1YWYwIGlu IG5vcm1hbF9zdG9wICgpIGF0IC4uLy4uL2dkYi9nZGJ0aHJlYWQuaDo0MzIKKyAgIzE1IDB4MDAw MDU1YTIxZDc2ODMzMSBpbiBmZXRjaF9pbmZlcmlvcl9ldmVudCAoKSBhdCAuLi8uLi9nZGIvaW5m cnVuLmM6NDc1MworCitUaGUgdXNlciBpcyB1c2luZyBhIGJ1aWxkIG9mIEdEQiB3aXRoIDMyLWJp dCBBUk0gc3VwcG9ydCBpbmNsdWRlZCwgYW5kCit0aGV5IGdhdmUgdGhlIGZvbGxvd2luZyBkZXNj cmlwdGlvbiBmb3Igd2hhdCB0aGV5IHdlcmUgZG9pbmcgYXQgdGhlCit0aW1lIG9mIHRoZSBjcmFz aDoKKworICBTdXNwZW5kZWQgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgZmlybXdhcmUgaW4gRWNsaXBz ZS4gIFRoZSBnZGIgd2FzCisgIGNvbm5lY3RlZCB0byBKTGlua0dEQlNlcnZlciB3aXRoIGFjdGl2 YXRlZCBGcmVlUlRPUyBhd2FyZW5lc3MgSkxpbmsKKyAgcGx1Z2luLgorCitTbyB0aGV5IGFyZSBy ZW1vdGUgZGVidWdnaW5nIHdpdGggYSBub24tZ2Ric2VydmVyIHRhcmdldC4KKworTG9va2luZyBp biBub3JtYWxfc3RvcCgpIHdlIHNlZSB0aGlzIGNvZGU6CisKKyAgLyogQXMgd2UncmUgcHJlc2Vu dGluZyBhIHN0b3AsIGFuZCBwb3RlbnRpYWxseSByZW1vdmluZyBicmVha3BvaW50cywKKyAgICAg dXBkYXRlIHRoZSB0aHJlYWQgbGlzdCBzbyB3ZSBjYW4gdGVsbCB3aGV0aGVyIHRoZXJlIGFyZSB0 aHJlYWRzCisgICAgIHJ1bm5pbmcgb24gdGhlIHRhcmdldC4gIFdpdGggdGFyZ2V0IHJlbW90ZSwg Zm9yIGV4YW1wbGUsIHdlIGNhbgorICAgICBvbmx5IGxlYXJuIGFib3V0IG5ldyB0aHJlYWRzIHdo ZW4gd2UgZXhwbGljaXRseSB1cGRhdGUgdGhlIHRocmVhZAorICAgICBsaXN0LiAgRG8gdGhpcyBi ZWZvcmUgbm90aWZ5aW5nIHRoZSBpbnRlcnByZXRlcnMgYWJvdXQgc2lnbmFsCisgICAgIHN0b3Bz LCBlbmQgb2Ygc3RlcHBpbmcgcmFuZ2VzLCBldGMuLCBzbyB0aGF0IHRoZSAibmV3IHRocmVhZCIK KyAgICAgb3V0cHV0IGlzIGVtaXR0ZWQgYmVmb3JlIGUuZy4sICJQcm9ncmFtIHJlY2VpdmVkIHNp Z25hbCBGT08iLAorICAgICBpbnN0ZWFkIG9mIGFmdGVyLiAgKi8KKyAgdXBkYXRlX3RocmVhZF9s aXN0ICgpOworCisgIGlmIChsYXN0LmtpbmQgKCkgPT0gVEFSR0VUX1dBSVRLSU5EX1NUT1BQRUQg JiYgc3RvcHBlZF9ieV9yYW5kb21fc2lnbmFsKQorICAgIG5vdGlmeV9zaWduYWxfcmVjZWl2ZWQg KGluZmVyaW9yX3RocmVhZCAoKS0+c3RvcF9zaWduYWwgKCkpOworCitXaGljaCBhY2NvdW50cyBm b3IgdGhlIHRyYW5zaXRpb24gZnJvbSBmcmFtZSAjMTQgdG8gZnJhbWUgIzEzLiAgQnV0IGl0Citp cyB0aGUgdXBkYXRlX3RocmVhZF9saXN0KCkgY2FsbCB3aGljaCBpbnRlcmVzdHMgbWUuICBUaGlz IGNhbGwgYXNrcwordGhlIHRhcmdldCAocmVtb3RlIHRhcmdldCBpbiB0aGlzIGNhc2UpIGZvciB0 aGUgY3VycmVudCB0aHJlYWQgbGlzdCwKK2FuZCB0aGVuIG1hcmtzIHRocmVhZHMgZXhpdGVkIGJh c2VkIG9uIHRoZSBhbnN3ZXIuCisKK0FuZCBzbywgaWYgYSAoYmFkbHkgYmVoYXZlZCkgdGFyZ2V0 IChpbmNvcnJlY3RseSkgcmVtb3ZlcyBhIHRocmVhZAorZnJvbSB0aGUgdGhyZWFkIGxpc3QsIHRo ZW4gdGhlIHVwZGF0ZV90aHJlYWRfbGlzdCgpIGNhbGwgd2lsbCBtYXJrIHRoZQoraW1wYWN0ZWQg dGhyZWFkIGFzIGV4aXRlZCwgZXZlbiBpZiBHREIgaXMgY3VycmVudGx5IGhhbmRsaW5nIGEgc2ln bmFsCitzdG9wIGV2ZW50IGZvciB0aGF0IHRhcmdldC4KKworTXkgZ3Vlc3MgZm9yIHdoYXQncyBn b2luZyBvbiBoZXJlIHRoZW4gaXMgdGhpczoKKworICAxLiBUaHJlYWQgcmVjZWl2ZXMgYSBzaWdu YWwuCisgIDIuIFJlbW90ZSB0YXJnZXQgc2VuZHMgR0RCIGEgc3RvcCB3aXRoIHNpZ25hbCBwYWNr ZXQuCisgIDMuIFJlbW90ZSBkZWNpZGVzIHRoYXQgdGhlIHRocmVhZCBpcyBnb2luZyBhd2F5IHNv b24sIGFuZCBtYXJrcyB0aGUKKyAgICAgdGhyZWFkIGFzIGV4aXRlZC4KKyAgNC4gR0RCIGFza3Mg Zm9yIHRoZSB0aHJlYWQgbGlzdC4KKyAgNS4gUmVtb3RlIHNlbmRzIGJhY2sgdGhlIHRocmVhZCBs aXN0LCB3aGljaCBkb2Vzbid0IGluY2x1ZGUgdGhlCisgICAgIGV2ZW50IHRocmVhZCwgYXMgdGhl IHJlbW90ZSB0aGluZ3MgdGhpcyB0aHJlYWQgaGFzIGV4aXRlZC4KKyAgNi4gR0RCIG1hcmtzIHRo ZSB0aHJlYWQgYXMgZXhpdGVkLCBhbmQgdGhlbiBwcm9jZWVkcyB0byB0cnkgYW5kCisgICAgIHBy aW50IHRoZSBzaWduYWwgc3RvcCBldmVudCBmb3IgdGhlIGV2ZW50IHRocmVhZC4KKyAgNy4gUHJp bnRpbmcgdGhlIHNpZ25hbCBzdG9wIHJlcXVpcmVzIHJlYWRpbmcgcmVnaXN0ZXJzLCB3aGljaAor ICAgICByZXF1aXJlcyBhIHJlZ2FjaGUuICBXZSBjYW4gb25seSBnZXQgYSByZWdjYWNoZSBmb3Ig YSBub24tZXhpdGVkCisgICAgIHRocmVhZCwgYW5kIHNvIEdEQiByYWlzZXMgYW4gYXNzZXJ0aW9u LgorCitVc2luZyB0aGUgZ2RicmVwbGF5IHRlc3QgZnJhbWUgd29yayBJIHdhcyBhYmxlIHRvIHJl cHJvZHVjZSB0aGlzCitmYWlsdXJlIHVzaW5nIGdkYnNlcnZlci4gIEkgY3JlYXRlIGFuIGluZmVy aW9yIHdpdGggdHdvIHRocmVhZHMsIHRoZQorbWFpbiB0aHJlYWQgc2VuZHMgYSBzaWduYWwgdG8g dGhlIHNlY29uZCB0aHJlYWQsIEdEQiBzZWVzIHRoZSBzaWduYWwKK2Fycml2ZSBhbmQgcHJpbnRz IHRoaXMgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyLgorCitIYXZpbmcgY2FwdHVyZWQgdGhlIHRy YWNlIG9mIHRoaXMgYWN0aXZpdHksIEkgdGhlbiBmaW5kIHRoZSB0aHJlYWQKK2xpc3QgcmVwbHkg aW4gdGhlIGxvZyBmaWxlLCBhbmQgbW9kaWZ5IGl0IHRvIHJlbW92ZSB0aGUgc2Vjb25kIHRocmVh ZC4KKworTm93LCB3aGVuIEkgcmVwbGF5IHRoZSBtb2RpZmllZCBsb2cgZmlsZSBJIHNlZSB0aGUg c2FtZSBhc3NlcnRpb24KK2NvbXBsYWluaW5nIGFib3V0IGFuIGF0dGVtcHQgdG8gZ2V0IGEgcmVn Y2FjaGUgZm9yIGFuIGV4aXRlZCB0aHJlYWQuCisKK0knbSBub3QgZW50aXJlbHkgc3VyZSB0aGUg YmVzdCB3YXkgdG8gZml4IHRoaXMuICBDbGVhcmx5IHRoZSBwcm9ibGVtCitoZXJlIGlzIGEgYmFk IHJlbW90ZSB0YXJnZXQuICBCdXQsIHJlcGxpZXMgZnJvbSBhIHJlbW90ZSB0YXJnZXQKK3Nob3Vs ZCAoaW4gbXkgb3Bpbmlvbikgbm90IGJlIGNvbnNpZGVyZWQgdHJ1c3RlZCwgYXMgYSBjb25zZXF1 ZW5jZSwgd2UKK3Nob3VsZCBub3QgYmUgYXNzZXJ0aW5nIGJhc2VkIG9uIGRhdGEgY29taW5nIGZy b20gYSByZW1vdGUuICBJbnN0ZWFkLAord2Ugc2hvdWxkIGJlIGdpdmluZyB3YXJuaW5ncyBvciBl cnJvcnMgYW5kIGhhdmUgR0RCIGhhbmRsZSB0aGUgYmFkCitkYXRhIGFzIGJlc3QgaXQgY2FuLgor CitUaGlzIGlzIHRoZSBzZWNvbmQgYXR0ZW1wdCB0byBmaXggdGhpcyBpc3N1ZSwgbXkgZmlyc3Qg cGF0Y2ggY2FuIGJlCitzZWVuIGhlcmU6CisKKyAgaHR0cHM6Ly9pbmJveC5zb3VyY2V3YXJlLm9y Zy9nZGItcGF0Y2hlcy8wNjJlNDM4Yzg2NzdlMmFiMjhmYWM2MTgzZDJlYTZkNDQ0Y2I5MTIxLjE3 NDc1Njc3MTcuZ2l0LmFidXJnZXNzQHJlZGhhdC5jb20KKworSW4gdGhlIGZpcnN0IHBhdGNoIEkg d2FzIHRvIGNoZWNraW5nIGluIG5vcm1hbF9zdG9wLCBpbW1lZGlhdGVseSBhZnRlcgordGhlIGNh bGwgdG8gdXBkYXRlX3RocmVhZF9saXN0LCB0byBzZWUgaWYgdGhlIGN1cnJlbnQgdGhyZWFkIHdh cyBub3cKK21hcmtlZCBhcyBleGl0ZWQuICBIb3dldmVyIENJIHRlc3Rpbmcgc2hvd2VkIGFuIGlz c3VlIHdpdGggdGhpcworYXBwcm9hY2g7IEkgd2FzIGFscmVhZHkgY2hlY2tpbmcgZm9yIG1hbnkg ZGlmZmVyZW50IFRBUkdFVF9XQUlUS0lORF8qCitraW5kcyB3aGVyZSB0aGUgImlzIHRoZSBjdXJy ZW50IHRocmVhZCBleGl0ZWQiIHF1ZXN0aW9uIGRpZG4ndCBtYWtlCitzZW5zZSwgYW5kIGl0IHR1 cm5zIG91dCB0aGF0IHRoZSBsaXN0IG9mIGtpbmRzIGluIG15IGZpcnN0IGF0dGVtcHQgd2FzCith bHJlYWR5IGluc3VmZmljaWVudC4KKworUmF0aGVyIHRoYW4gdHJ5aW5nIHRvIGp1c3QgYWRkaW5n IHRvIHRoZSBsaXN0LCBpbiB0aGlzIHJldmlzZWQgcGF0Y2gKK0knbSBwcm9wb3NpbmcgdG8gbW92 ZSB0aGUgImlzIHRoaXMgdGhyZWFkIGV4aXRlZCIgY2hlY2sgaW5zaWRlIHRoZQorYmxvY2sgd2hp Y2ggaGFuZGxlcyBzaWduYWwgc3RvcCBldmVudHMuCisKK1JpZ2h0IG5vdywgdGhlIG9ubHkgcGFy dCBvZiBub3JtYWxfc3RvcCB3aGljaCBJIGtub3cgcmVsaWVzIG9uIHRoZQorY3VycmVudCB0aHJl YWQgbm90IGJlaW5nIGV4aXRlZCBpcyB0aGUgY2FsbCB0byBub3RpZnlfc2lnbmFsX3JlY2VpdmVk LAorc28gYmVmb3JlIGNhbGxpbmcgbm90aWZ5X3NpZ25hbF9yZWNlaXZlZCBJIGNoZWNrIHRvIHNl ZSBpZiB0aGUgY3VycmVudAordGhyZWFkIGlzIG5vdyBleGl0ZWQuICBJZiBpdCBpcyB0aGVuIEkg cHJpbnQgYSB3YXJuaW5nIHRvIGluZGljYXRlCit0aGF0IHRoZSB0aHJlYWQgaGFzIHVuZXhwZWN0 ZWRseSBleGl0ZWQgYW5kIHRoYXQgdGhlIGN1cnJlbnQKK2NvbW1hbmQgKGNvbnRpbnVlL3N0ZXAv ZXRjKSBoYXMgYmVlbiBjYW5jZWxsZWQsIEkgdGhlbiBjaGFuZ2UgdGhlCitjdXJyZW50IGV2ZW50 IHR5cGUgdG8gVEFSR0VUX1dBSVRLSU5EX1NQVVJJT1VTLgorCitHREIncyBvdXRwdXQgbm93IGxv b2tzIGxpa2UgdGhpcyBpbiBhbGwtc3RvcCBtb2RlOgorCisgIChnZGIpIGNvbnRpbnVlCisgIENv bnRpbnVpbmcuCisgIFtOZXcgVGhyZWFkIDM0ODM2OTAuMzQ4MzY5M10KKyAgW1RocmVhZCAzNDgz NjkwLjM0ODM2OTMgZXhpdGVkXQorICB3YXJuaW5nOiBUaHJlYWQgMzQ4MzY5MC4zNDgzNjkzIHVu ZXhwZWN0ZWRseSBleGl0ZWQgYWZ0ZXIgbm9uLWV4aXQgZXZlbnQKKyAgW1N3aXRjaGluZyB0byBU aHJlYWQgMzQ4MzY5MC4zNDgzNjkzXQorICAoZ2RiKQorCitUaGUgbm9uLXN0b3Agb3V0cHV0IGlz IGlkZW50aWNhbCwgZXhjZXB0IHdlIGRvbid0IHN3aXRjaCB0aHJlYWQgKHN0b3AKK2V2ZW50cyBu ZXZlciB0cmlnZ2VyIGEgdGhyZWFkIHN3aXRjaCBpbiBub24tc3RvcCBtb2RlKS4KKworVGhlIGlu Y2x1ZGUgdGVzdCBtYWtlcyB1c2Ugb2YgdGhlIGdkYnJlcGxheSBmcmFtZXdvcmssIGFuZCB0ZXN0 cyBpbgorYWxsLXN0b3AgYW5kIG5vbi1zdG9wIG1vZGVzLiAgSSB3b3VsZCBsaWtlIHRvIGRvIG1v cmUgZXh0ZW5zaXZlCit0ZXN0aW5nIG9mIEdEQidzIHN0YXRlIGFmdGVyIHRoZSByZWNlaXZpbmcg dGhlIHVuZXhwZWN0ZWQgdGhyZWFkIGxpc3QsCitidXQgZHVlIHRvIHVzaW5nIGdkYnJlcGxheSBm b3IgdGVzdGluZywgdGhpcyBpcyBxdWl0ZSBoYXJkLiAgTWFueQorY29tbWFuZHMsIGVzcGVjaWFs bHkgdGhvc2UgbG9va2luZyBhdCB0aHJlYWQgc3RhdGUsIGFyZSBsaWtlbHkgdG8KK3RyaWdnZXIg YWRkaXRpb25hbCBwYWNrZXRzIGJlaW5nIHNlbnQgdG8gdGhlIHJlbW90ZSwgd2hpY2ggY2F1c2Vz CitnZGJyZXBsYXkgdG8gYmFpbCBvdXQgYXMgdGhlIG5ldyBwYWNrZXQgZG9lc24ndCBtYXRjaCB0 aGUgb3JpZ2luYWwKK3JlY29yZGVkIHN0YXRlLiAgSG93ZXZlciwgSSByZWFsbHkgZG9uJ3QgdGhp bmsgaXQgaXMgYSBnb29kIGlkZWEgdG8KK2NoYW5nZSBnZGJzZXJ2ZXIgaW4gb3JkZXIgdG8gImZh a2UiIHRoaXMgZXJyb3IgY2FzZSwgc28gZm9yIG5vdywgdXNpbmcKK2dkYnJlcGxheSBpcyB0aGUg YmVzdCBpZGVhIEkgaGF2ZS4KKworQnVnOiBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hv d19idWcuY2dpP2lkPTIzNjY0NjEKKworZGlmZiAtLWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9p bmZydW4uYworLS0tIGEvZ2RiL2luZnJ1bi5jCisrKysgYi9nZGIvaW5mcnVuLmMKK0BAIC05NTYy LDcgKzk1NjIsMzggQEAgbm9ybWFsX3N0b3AgKCkKKyAgIHVwZGF0ZV90aHJlYWRfbGlzdCAoKTsK KyAKKyAgIGlmIChsYXN0LmtpbmQgKCkgPT0gVEFSR0VUX1dBSVRLSU5EX1NUT1BQRUQgJiYgc3Rv cHBlZF9ieV9yYW5kb21fc2lnbmFsKQorLSAgICBub3RpZnlfc2lnbmFsX3JlY2VpdmVkIChpbmZl cmlvcl90aHJlYWQgKCktPnN0b3Bfc2lnbmFsICgpKTsKKysgICAgeworKyAgICAgIGdkYl9hc3Nl cnQgKGluZmVyaW9yX3B0aWQgIT0gbnVsbF9wdGlkKTsKKysKKysgICAgICAvKiBDYWxsaW5nIHVw ZGF0ZV90aHJlYWRfbGlzdCBwdWxscyBpbmZvcm1hdGlvbiBmcm9tIHRoZSB0YXJnZXQuICBGb3IK KysJIG5hdGl2ZSB0YXJnZXRzIHdlIGNhbiBiZSAocmVhc29uYWJseSkgc3VyZSB0aGF0IHRoZSBp bmZvcm1hdGlvbiB3ZQorKwkgZ2V0IGJhY2sgaXMgc2FuZSwgYnV0IGZvciByZW1vdGUgdGFyZ2V0 cywgd2UgY2Fubm90IHJlcGx5IG9uIHRoZQorKwkgcmV0dXJuZWQgdGhyZWFkIGxpc3QgdG8gYmUg Y29ycmVjdC4KKysKKysJIFNwZWNpZmljYWxseSwgYSByZW1vdGUgdGFyZ2V0IChub3QgZ2Ric2Vy dmVyKSwgaGFzIGJlZW4gc2VlbiB0bworKwkgcHJlbWF0dXJlbHkgcmVtb3ZlIHRocmVhZHMgZnJv bSB0aGUgdGhyZWFkIGxpc3QgYWZ0ZXIgc2VuZGluZyBhCisrCSBzaWduYWwgc3RvcCBldmVudC4g IFRoZSBjb25zZXF1ZW5jZSBvZiB0aGlzLCBpcyB0aGF0IHRoZSB0aHJlYWQKKysJIG1pZ2h0IG5v dyBiZSBleGl0ZWQuICBUaGlzIGlzIGJhZCBhcywgdHJ5aW5nIHRvIGNhbGxpbmcKKysJIG5vdGlm eV9zaWduYWxfcmVjZWl2ZWQgd2lsbCBjYXVzZSBHREIgdG8gcmVhZCByZWdpc3RlcnMgZm9yIHRo ZQorKwkgY3VycmVudCB0aHJlYWQsIGJ1dCByZXF1ZXN0aW5nIHRoZSByZWdjYWNoZSBmb3IgYW4g ZXhpdGVkIHRocmVhZAorKwkgd2lsbCB0cmlnZ2VyIGFuIGFzc2VydGlvbi4KKysKKysJIENoZWNr IGZvciB0aGUgZXhpdGVkIHRocmVhZCBjYXNlIGhlcmUsIGFuZCBjb252ZXJ0IHRoZSBzdG9wIHJl YXNvbgorKwkgdG8gYSBzcHVyaW91cyBzdG9wIGV2ZW50LiAgVGhlIHRocmVhZCBleGl0aW5nIHdp bGwgaGF2ZSBhbHJlYWR5CisrCSBiZWVuIHJlcG9ydGVkICh3aGVuIHRoZSB0aHJlYWQgbGlzdCB3 YXMgcGFyc2VkKSwgc28gbWFraW5nIHRoaXMgYQorKwkgc3B1cmlvdXMgc3RvcCB3aWxsIGNhdXNl IEdEQiB0byBkcm9wIGJhY2sgdG8gdGhlIHByb21wdC4gICovCisrICAgICAgaWYgKGluZmVyaW9y X3RocmVhZCAoKS0+c3RhdGUgIT0gVEhSRUFEX0VYSVRFRCkKKysJbm90aWZ5X3NpZ25hbF9yZWNl aXZlZCAoaW5mZXJpb3JfdGhyZWFkICgpLT5zdG9wX3NpZ25hbCAoKSk7CisrICAgICAgZWxzZQor Kwl7CisrCSAgd2FybmluZyAoXygiY29tbWFuZCBhYm9ydGVkLCAlcyB1bmV4cGVjdGVkbHkgZXhp dGVkIGFmdGVyIHNpZ25hbCBzdG9wIGV2ZW50IiksCisrCQkgICB0YXJnZXRfcGlkX3RvX3N0ciAo aW5mZXJpb3JfdGhyZWFkICgpLT5wdGlkKS5jX3N0ciAoKSk7CisrCisrCSAgLyogTWFyayB0aGlz IGFzIGEgc3B1cmlvdXMgc3RvcC4gIEdEQiB3aWxsIHJldHVybiB0byB0aGUKKysJICAgICBwcm9t cHQuICBUaGUgd2FybmluZyBhYm92ZSB0ZWxscyB0aGUgdXNlciB3aHkuICAqLworKwkgIGxhc3Qu c2V0X3NwdXJpb3VzICgpOworKwl9CisrICAgIH0KKyAKKyAgIC8qIEFzIHdpdGggdGhlIG5vdGlm aWNhdGlvbiBvZiB0aHJlYWQgZXZlbnRzLCB3ZSB3YW50IHRvIGRlbGF5CisgICAgICBub3RpZnlp bmcgdGhlIHVzZXIgdGhhdCB3ZSd2ZSBzd2l0Y2hlZCB0aHJlYWQgY29udGV4dCB1bnRpbAorZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnJlcGxheS9taXNzaW5nLXRocmVhZC5jIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIucmVwbGF5L21pc3NpbmctdGhyZWFkLmMKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5yZXBsYXkvbWlzc2lu Zy10aHJlYWQuYworQEAgLTAsMCArMSw2MSBAQAorKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBv ZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMjUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLworKworKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisrI2luY2x1ZGUgPGFzc2VydC5o PgorKyNpbmNsdWRlIDxzaWduYWwuaD4KKysjaW5jbHVkZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8 dW5pc3RkLmg+CisrI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKysKKytwdGhyZWFkX211dGV4X3QgZ19t dXRleCA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CisrcHRocmVhZF9jb25kX3QgZ19jb25k dmFyID0gUFRIUkVBRF9DT05EX0lOSVRJQUxJWkVSOworKworK3ZvaWQgKgorK3dvcmtlcl9mdW5j dGlvbiAodm9pZCAqYXJnKQorK3sKKysgIHByaW50ZiAoIkluIHdvcmtlciwgYWJvdXQgdG8gbm90 aWZ5XG4iKTsKKysgIHB0aHJlYWRfY29uZF9zaWduYWwgKCZnX2NvbmR2YXIpOworKworKyAgd2hp bGUgKHRydWUpCisrICAgIHNsZWVwKDEpOworKworKyAgcmV0dXJuIE5VTEw7CisrfQorKworK2lu dAorK21haW4oKQorK3sKKysgIHB0aHJlYWRfdCBteV90aHJlYWQ7CisrCisrICBpbnQgcmVzdWx0 ID0gcHRocmVhZF9jcmVhdGUgKCZteV90aHJlYWQsIE5VTEwsIHdvcmtlcl9mdW5jdGlvbiwgTlVM TCk7CisrICBhc3NlcnQgKHJlc3VsdCA9PSAwKTsKKysKKysgIHB0aHJlYWRfbXV0ZXhfbG9jayAo JmdfbXV0ZXgpOworKyAgcHRocmVhZF9jb25kX3dhaXQgKCZnX2NvbmR2YXIsICZnX211dGV4KTsK KysKKysgIHByaW50ZiAoIkluIG1haW4sIGhhdmUgYmVlbiB3b2tlbi5cbiIpOworKyAgcHRocmVh ZF9tdXRleF91bmxvY2sgKCZnX211dGV4KTsKKysKKysgIHJlc3VsdCA9IHB0aHJlYWRfa2lsbCAo bXlfdGhyZWFkLCBTSUdUUkFQKTsKKysgIGFzc2VydCAocmVzdWx0ID09IDApOworKworKyAgcmVz dWx0ID0gcHRocmVhZF9qb2luIChteV90aHJlYWQsIE5VTEwpOworKyAgYXNzZXJ0IChyZXN1bHQg PT0gMCk7CisrCisrICByZXR1cm4gMDsKKyt9CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIucmVwbGF5L21pc3NpbmctdGhyZWFkLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnJlcGxheS9t aXNzaW5nLXRocmVhZC5leHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisr KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5yZXBsYXkvbWlzc2luZy10aHJlYWQuZXhwCitAQCAtMCww ICsxLDIzNyBAQAorKyMgQ29weXJpZ2h0IDIwMjUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrIyBUaGlzIHRl c3QgY29uZmlybXMgaG93IEdEQiBoYW5kbGVzIGEgYmFkbHkgYmVoYXZpbmcgcmVtb3RlIHRhcmdl dC4gIFRoZQorKyMgcmVtb3RlIHRhcmdldCByZXBvcnRzIGEgc3RvcCBldmVudCAoc2lnbmFsIGRl bGl2ZXJ5KSwgdGhlbiwgYXMgR0RCIGlzCisrIyBwcm9jZXNzaW5nIHRoZSBzdG9wIGl0IHN5bmNz IHRoZSB0aHJlYWQgbGlzdCB3aXRoIHRoZSByZW1vdGUuCisrIworKyMgVGhlIGJhZGx5IGJlaGF2 aW5nIHJlbW90ZSB0YXJnZXQgd2FzIGRyb3BwaW5nIHRoZSBzaWduYWxlZCB0aHJlYWQgZnJvbSB0 aGUKKysjIHRocmVhZCBsaXN0IGF0IHRoaXMgcG9pbnQsIHRoYXQgaXMsIHRoZSB0aHJlYWQgYXBw ZWFyZWQgdG8gZXhpdCBiZWZvcmUgYW4KKysjIGV4aXQgZXZlbnQgaGFkIGJlZW4gc2VudCB0byAo YW5kIHNlZW4gYnkpIEdEQi4KKysjCisrIyBBdCBvbmUgcG9pbnQgdGhpcyB3YXMgY2F1c2luZyBh biBhc3NlcnRpb24gZmFpbGVkLiAgR0RCIHdvdWxkIHRyeSB0bworKyMgcHJvY2VzcyB0aGUgc2ln bmFsIHN0b3AgZXZlbnQsIGFuZCB0byBkbyB0aGlzIHdvdWxkIHRyeSB0byByZWFkIHNvbWUKKysj IHJlZ2lzdGVycy4gIFJlYWRpbmcgcmVnaXN0ZXJzIHJlcXVpcmVzIGEgcmVnY2FjaGUsIGFuZCBH REIgd2lsbCBvbmx5CisrIyBjcmVhdGUgYSByZWdjYWNoZSBmb3IgYSBub24tZXhpdGVkIHRocmVh ZC4KKysKKytsb2FkX2xpYiBnZGJzZXJ2ZXItc3VwcG9ydC5leHAKKytsb2FkX2xpYiBnZGJyZXBs YXktc3VwcG9ydC5leHAKKysKKytyZXF1aXJlIGFsbG93X2dkYnNlcnZlcl90ZXN0cworK3JlcXVp cmUgaGFzX2dkYnJlcGxheQorKworK3N0YW5kYXJkX3Rlc3RmaWxlCisrCisraWYgeyBbYnVpbGRf ZXhlY3V0YWJsZSAiZmFpbGVkIHRvIGJ1aWxkIGV4ZWMiICR0ZXN0ZmlsZSAkc3JjZmlsZSB7ZGVi dWcgcHRocmVhZHN9XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgU3RhcnQgdGhlIGlu ZmVyaW9yIGFuZCByZWNvcmQgYSByZW1vdGUgbG9nIGZvciBvdXIgaW50ZXJhY3Rpb24gd2l0aCBp dC4KKysjIEFsbCB3ZSBkbyBpcyBzdGFydCB0aGUgaW5mZXJpb3IgYW5kIHdhaXQgZm9yIHRocmVh ZCAyIHRvIHJlY2VpdmUgYSBzaWduYWwuCisrIyBDaGVjayB0aGF0IEdEQiBjb3JyZWN0bHkgc2hv d3MgdGhlIHNpZ25hbCBhcyByZWNlaXZlZC4gIExPR19GSUxFTkFNRSBpcworKyMgd2hlcmUgd2Ug c2hvdWxkIHdyaXRlIHRoZSByZW1vdGUgbG9nLgorK3Byb2Nfd2l0aF9wcmVmaXggcmVjb3JkX2lu aXRpYWxfbG9nZmlsZSB7IGxvZ19maWxlbmFtZSB9IHsKKysgICAgY2xlYW5fcmVzdGFydCAkOjp0 ZXN0ZmlsZQorKworKyAgICAjIE1ha2Ugc3VyZSB3ZSdyZSBkaXNjb25uZWN0ZWQsIGluIGNhc2Ug d2UncmUgdGVzdGluZyB3aXRoIGFuCisrICAgICMgZXh0ZW5kZWQtcmVtb3RlIGJvYXJkLCB0aGVy ZWZvcmUgYWxyZWFkeSBjb25uZWN0ZWQuCisrICAgIGdkYl90ZXN0ICJkaXNjb25uZWN0IiAiLioi CisrCisrICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0IHN5c3Jvb3QiIFwKKysJInNldHRpbmcg c3lzcm9vdCBiZWZvcmUgc3RhcnRpbmcgZ2Ric2VydmVyIgorKworKyAgICAjIFN0YXJ0IGdkYnNl cnZlciBsaWtlOgorKyAgICAjICAgZ2Ric2VydmVyIDpQT1JUIC4uLi4KKysgICAgc2V0IHJlcyBb Z2Ric2VydmVyX3N0YXJ0ICIiICQ6OmJpbmZpbGVdCisrICAgIHNldCBnZGJzZXJ2ZXJfcHJvdG9j b2wgW2xpbmRleCAkcmVzIDBdCisrICAgIHNldCBnZGJzZXJ2ZXJfZ2RicG9ydCBbbGluZGV4ICRy ZXMgMV0KKysKKysgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVtb3RlbG9nZmlsZSAkbG9n X2ZpbGVuYW1lIiBcCisrCSJzZXR1cCByZW1vdGVsb2dmaWxlIgorKworKyAgICAjIENvbm5lY3Qg dG8gZ2Ric2VydmVyLgorKyAgICBpZiB7IVtnZGJfdGFyZ2V0X2NtZCAkZ2Ric2VydmVyX3Byb3Rv Y29sICRnZGJzZXJ2ZXJfZ2RicG9ydF0gPT0gMH0geworKwl1bnN1cHBvcnRlZCAiJHRlc3RmaWxl IChjb3VsZG4ndCBzdGFydCBnZGJzZXJ2ZXIpIgorKwlyZXR1cm4KKysgICAgfQorKworKyAgICBn ZGJfYnJlYWtwb2ludCBtYWluCisrICAgIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250 aW51aW5nIHRvIG1haW4iCisrCisrICAgIGdkYl90ZXN0ICJjb250aW51ZSIgXAorKwkiVGhyZWFk ICQ6OmRlY2ltYWwgXFteXHJcblxdKyByZWNlaXZlZCBzaWduYWwgU0lHVFJBUCwgLioiCisrCisr ICAgIGdkYl90ZXN0ICJkaXNjb25uZWN0IiAiLioiIFwKKysJImRpc2Nvbm5lY3QgYWZ0ZXIgc2Vl aW5nIHNpZ25hbCIKKyt9CisrCisrIyBDb3B5IHRoZSByZW1vdGUgbG9nIGZyb20gSU5fRklMRU5B TUUgdG8gT1VUX0ZJTEVOQU1FLCBidXQgbW9kaWZ5IG9uZQorKyMgcGFydGljdWxhciBsaW5lLgor KyMKKysjIFRoZSBsaW5lIHRvIGJlIG1vZGlmaWVkIGlzIHRoZSBsYXN0IDx0aHJlYWRzPi4uLjwv dGhyZWFkcz4gbGluZSwgdGhpcyBpcworKyMgdGhlIHJlcGx5IGZyb20gdGhlIHJlbW90ZSB0aGF0 IGluZGljYXRlcyB0aGUgdGhyZWFkIGxpc3QuICBJdCBpcyBleHBlY3RlZAorKyMgdGhhdCB0aGUg dGhyZWFkIGxpc3Qgd2lsbCBjb250YWluIHR3byB0aHJlYWRzLgorKyMKKysjIFdobiBEUk9QX0JP VEggaXMgdHJ1ZSB0aGVuIGJvdGggdGhyZWFkcyB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgbW9k aWZpZWQKKysjIGxpbmUuICBPdGhlcndpc2UsIG9ubHkgdGhlIHNlY29uZCB0aHJlYWQgaXMgcmVt b3ZlZC4KKytwcm9jIHVwZGF0ZV9yZXBsYXlfbG9nIHsgaW5fZmlsZW5hbWUgb3V0X2ZpbGVuYW1l IGRyb3BfYm90aCB9IHsKKysgICAgIyBSZWFkIElOX0ZJTEVOQU1FIGludG8gYSBsaXN0LgorKyAg ICBzZXQgZmQgW29wZW4gJGluX2ZpbGVuYW1lXQorKyAgICBzZXQgZGF0YSBbcmVhZCAkZmRdCisr ICAgIGNsb3NlICRmZAorKyAgICBzZXQgbGluZXMgW3NwbGl0ICRkYXRhICJcbiJdCisrCisrICAg ICMgRmluZCB0aGUgbGFzdCBsaW5lIGluIExJTkVTIHRoYXQgY29udGFpbnMgdGhlIDx0aHJlYWRz PiBsaXN0LgorKyAgICBzZXQgaWR4IC0xCisrICAgIGZvciB7IHNldCBpIDAgfSB7ICRpIDwgW2xs ZW5ndGggJGxpbmVzXSB9IHsgaW5jciBpIH0geworKwlpZiB7IFtyZWdleHAgIl5yLio8dGhyZWFk cz4uKjwvdGhyZWFkcz4iIFtsaW5kZXggJGxpbmVzICRpXV0gfSB7CisrCSAgICBzZXQgaWR4ICRp CisrCX0KKysgICAgfQorKworKyAgICAjIE1vZGlmeSB0aGUgbGluZSBieSBkcm9wcGluZyB0aGUg c2Vjb25kIHRocmVhZC4gIFRoaXMgZG9lcyBhc3N1bWUKKysgICAgIyB0aGUgdGhyZWFkIG9yZGVy IGFzIHNlZW4gaW4gdGhlIDx0aHJlYWRzPi4uLjwvdGhyZWFkcz4gbGlzdCwgYnV0CisrICAgICMg dGhpcyBzZWVtcyBzdGFibGUgZm9yIG5vdy4KKysgICAgc2V0IGxpbmUgW2xpbmRleCAkbGluZXMg JGlkeF0KKysgICAgc2V0IGZpeGVkX2xvZyBmYWxzZQorKyAgICBpZiB7W3JlZ2V4cCAiXihyIC4q PHRocmVhZHM+XFxcXG4pKDx0aHJlYWQgaWQuKi8+XFxcXG4pKDx0aHJlYWQgaWQuKi8+XFxcXG4p KDwvdGhyZWFkcz4uKikkIiAkbGluZSBcCisrCSAgICAgbWF0Y2ggcGFydDEgcGFydDIgcGFydDMg cGFydDRdfSB7CisrCWlmIHsgJGRyb3BfYm90aCB9IHsKKysJICAgIHNldCBsaW5lICRwYXJ0MSRw YXJ0NAorKwl9IGVsc2UgeworKwkgICAgc2V0IGxpbmUgJHBhcnQxJHBhcnQyJHBhcnQ0CisrCX0K KysJc2V0IGxpbmVzIFtscmVwbGFjZSAkbGluZXMgJGlkeCAkaWR4ICRsaW5lXQorKwlzZXQgZml4 ZWRfbG9nIHRydWUKKysgICAgfQorKworKyAgICAjIFdyaXRlIGFsbCB0aGUgbGluZXMgdG8gT1VU X0ZJTEVOQU1FCisrICAgIHNldCBmZCBbb3BlbiAkb3V0X2ZpbGVuYW1lICJ3Il0KKysgICAgZm9y ZWFjaCBsICRsaW5lcyB7CisrCXB1dHMgJGZkICRsCisrICAgIH0KKysgICAgY2xvc2UgJGZkCisr CisrICAgICMgRGlkIHdlIG1hbmFnZSB0byB1cGRhdGUgdGhlIGxvZyBmaWxlPworKyAgICByZXR1 cm4gJGZpeGVkX2xvZworK30KKysKKysjIFJlcGxheSB0aGUgdGVzdCBwcm9jZXNzIHVzaW5nIFJF TU9URV9MT0cgYXMgdGhlIGxvZ2ZpbGUgdG8gcmVwbGF5LiAgSWYKKysjIEVYUEVDVF9FUlJPUiBp cyB0cnVlIHRoZW4gYWZ0ZXIgdGhlIGZpbmFsICdjb250aW51ZScgd2UgZXhwZWN0IEdEQiB0byBn aXZlCisrIyBhbiBlcnJvciBhcyB0aGUgcmVxdWlyZWQgdGhyZWFkIGlzIG1pc3NpbmcuICBXaGVu IEVYUEVDVF9FUlJPUiBpcyBmYWxzZQorKyMgdGhlbiB3ZSBleHBlY3QgdGhlIHRlc3QgdG8gY29t cGxldGUgYXMgbm9ybWFsLiAgTk9OX1NUT1AgaXMgZWl0aGUgJ29uJyBvcgorKyMgJ29mZicgYW5k IGluZGljYXRlcyBHREJzIG5vbi1zdG9wIG1vZGUuCisrcHJvY193aXRoX3ByZWZpeCByZXBsYXlf d2l0aF9sb2cgeyByZW1vdGVfbG9nIGV4cGVjdF9lcnJvciBub25fc3RvcCB9IHsKKysgICAgY2xl YW5fcmVzdGFydCAkOjp0ZXN0ZmlsZQorKworKyAgICAjIE1ha2Ugc3VyZSB3ZSdyZSBkaXNjb25u ZWN0ZWQsIGluIGNhc2Ugd2UncmUgdGVzdGluZyB3aXRoIGFuCisrICAgICMgZXh0ZW5kZWQtcmVt b3RlIGJvYXJkLCB0aGVyZWZvcmUgYWxyZWFkeSBjb25uZWN0ZWQuCisrICAgIGdkYl90ZXN0ICJk aXNjb25uZWN0IiAiLioiCisrCisrICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0IHN5c3Jvb3Qi CisrCisrICAgIHNldCByZXMgW2dkYnJlcGxheV9zdGFydCAkcmVtb3RlX2xvZ10KKysgICAgc2V0 IGdkYnNlcnZlcl9wcm90b2NvbCBbbGluZGV4ICRyZXMgMF0KKysgICAgc2V0IGdkYnNlcnZlcl9n ZGJwb3J0IFtsaW5kZXggJHJlcyAxXQorKworKyAgICAjIENvbm5lY3QgdG8gZ2Ric2VydmVyLgor KyAgICBpZiB7IVtnZGJfdGFyZ2V0X2NtZCAkZ2Ric2VydmVyX3Byb3RvY29sICRnZGJzZXJ2ZXJf Z2RicG9ydF0gPT0gMH0geworKwlmYWlsICJjb3VsZG4ndCBjb25uZWN0IHRvIGdkYnJlcGxheSIK KysJcmV0dXJuCisrICAgIH0KKysKKysgICAgZ2RiX2JyZWFrcG9pbnQgbWFpbgorKyAgICBnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAiY29udGludWluZyB0byBtYWluIgorKworKyAgICBpZiB7 ICRleHBlY3RfZXJyb3IgfSB7CisrCXNldCBleHBlY3RlZF9vdXRwdXQgXAorKwkgICAgW2xpc3Qg XAorKwkJICJcXFxbVGhyZWFkIFxbXlxyXG5cXSsgZXhpdGVkXFxcXSIgXAorKwkJICJ3YXJuaW5n OiBjb21tYW5kIGFib3J0ZWQsIFRocmVhZCBcW15cclxuXF0rIHVuZXhwZWN0ZWRseSBleGl0ZWQg YWZ0ZXIgc2lnbmFsIHN0b3AgZXZlbnQiXQorKworKwlpZiB7ICEkbm9uX3N0b3AgfSB7CisrCSAg ICBsYXBwZW5kIGV4cGVjdGVkX291dHB1dCAiXFxcW1N3aXRjaGluZyB0byBUaHJlYWQgXFteXHJc blxdK1xcXF0iCisrCX0KKysKKysJZ2RiX3Rlc3QgImNvbnRpbnVlIiBbbXVsdGlfbGluZSB7Kn0k ZXhwZWN0ZWRfb3V0cHV0XQorKyAgICB9IGVsc2UgeworKwkjIFRoaXMgaXMgdGhlIG9yaWdpbmFs IGJlaGF2aW91ciwgd2Ugc2VlIHRoaXMgd2hlbiBydW5uaW5nCisrCSMgd2l0aCB0aGUgdW5tb2Rp ZmllZCBsb2cuCisrCWdkYl90ZXN0ICJjb250aW51ZSIgXAorKwkgICAgIlRocmVhZCAkezo6ZGVj aW1hbH0oPzogXFteXHJcblxdKyk/IHJlY2VpdmVkIHNpZ25hbCBTSUdUUkFQLCAuKiIKKysgICAg fQorKworKyAgICBnZGJfdGVzdCAiZGlzY29ubmVjdCIgIi4qIiBcCisrCSJkaXNjb25uZWN0IGFm dGVyIHNlZWluZyBzaWduYWwiCisrfQorKworKyMgUnVuIHRoZSBjb21wbGV0ZSB0ZXN0IGN5Y2xl OyBnZW5lcmF0ZSBhbiBpbml0aWFsIGxvZyBmaWxlLCBtb2RpZnkgdGhlIGxvZworKyMgZmlsZSwg dGhlbiBjaGVjayB0aGF0IEdEQiBjb3JyZWN0bHkgaGFuZGxlcyByZXBsYXlpbmcgdGhlIG1vZGlm aWVkIGxvZworKyMgZmlsZS4KKysjCisrIyBOT05fU1RPUCBpcyBlaXRoZXIgJ29uJyBvciAnb2Zm JyBhbmQgaW5kaWNhdGVzIEdEQidzIG5vbi1zdG9wIG1vZGUuCisrcHJvYyBydW5fdGVzdCB7IG5v bl9zdG9wIH0geworKyAgICBpZiB7ICRub25fc3RvcCB9IHsKKysJc2V0IHN1ZmZpeCAiLW5zIgor KyAgICB9IGVsc2UgeworKwlzZXQgc3VmZml4ICIiCisrICAgIH0KKysKKysgICAgIyBUaGUgcmVw bGF5IGxvZyBpcyBwbGFjZWQgaW4gJ3JlcGxheS5sb2cnLgorKyAgICBzZXQgcmVtb3RlX2xvZyBb c3RhbmRhcmRfb3V0cHV0X2ZpbGUgcmVwbGF5JHtzdWZmaXh9LmxvZ10KKysgICAgc2V0IG1pc3Np bmdfMV9sb2cgW3N0YW5kYXJkX291dHB1dF9maWxlIHJlcGxheS1taXNzaW5nLTEke3N1ZmZpeH0u bG9nXQorKyAgICBzZXQgbWlzc2luZ18yX2xvZyBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgcmVwbGF5 LW1pc3NpbmctMiR7c3VmZml4fS5sb2ddCisrCisrICAgIHJlY29yZF9pbml0aWFsX2xvZ2ZpbGUg JHJlbW90ZV9sb2cKKysKKysgICAgaWYgeyAhW3VwZGF0ZV9yZXBsYXlfbG9nICRyZW1vdGVfbG9n ICRtaXNzaW5nXzFfbG9nIGZhbHNlXSB9IHsKKysJZmFpbCAiY291bGRuJ3QgdXBkYXRlIHJlbW90 ZSByZXBsYXkgbG9nIChkcm9wIDEgY2FzZSkiCisrICAgIH0KKysKKysgICAgaWYgeyAhW3VwZGF0 ZV9yZXBsYXlfbG9nICRyZW1vdGVfbG9nICRtaXNzaW5nXzJfbG9nIHRydWVdIH0geworKwlmYWls ICJjb3VsZG4ndCB1cGRhdGUgcmVtb3RlIHJlcGxheSBsb2cgKGRyb3AgMiBjYXNlKSIKKysgICAg fQorKworKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJ3aXRoIHVubW9kaWZpZWQgbG9nIiB7CisrCSMg UmVwbGF5IHdpdGggdGhlIHVubW9kaWZpZWQgbG9nLiAgVGhpcyBjb25maXJtcyB0aGF0IHdlIGNh biByZXBsYXkgdGhpcworKwkjIHNjZW5hcmlvIGNvcnJlY3RseS4KKysJcmVwbGF5X3dpdGhfbG9n ICRyZW1vdGVfbG9nIGZhbHNlICRub25fc3RvcAorKyAgICB9CisrCisrICAgIHdpdGhfdGVzdF9w cmVmaXggIm1pc3NpbmcgMSB0aHJlYWQgbG9nIiB7CisrCSMgTm93IHJlcGxheSB3aXRoIHRoZSBt b2RpZmllZCBsb2csIHRoaXMgdGltZSB0aGUgdGhyZWFkIHRoYXQgcmVjZWl2ZXMKKysJIyB0aGUg ZXZlbnQgc2hvdWxkIGJlIG1pc3NpbmcgZnJvbSB0aGUgdGhyZWFkIGxpc3QsIEdEQiB3aWxsIGdp dmUgYW4KKysJIyBlcnJvciB3aGVuIHRoZSBpbmZlcmlvciBzdG9wcy4KKysJcmVwbGF5X3dpdGhf bG9nICRtaXNzaW5nXzFfbG9nIHRydWUgJG5vbl9zdG9wCisrICAgIH0KKysKKysgICAgd2l0aF90 ZXN0X3ByZWZpeCAibWlzc2luZyAyIHRocmVhZHMgbG9nIiB7CisrCSMgV2hlbiB3ZSBkcm9wIGJv dGggdGhyZWFkcyBmcm9tIHRoZSA8dGhyZWFkcz4gcmVwbHksIEdEQiBkb2Vzbid0CisrCSMgYWN0 dWFsbHkgcmVtb3ZlIGJvdGggdGhyZWFkcyBmcm9tIHRoZSBpbmZlcmlvcjsgYW4gaW5mZXJpb3Ig bXVzdAorKwkjIGFsd2F5cyBoYXZlIGF0IGxlYXN0IG9uZSB0aHJlYWQuICBTbyBpbiB0aGlzIGNh c2UsIGFzIHRoZSBwcmltYXJ5CisrCSMgdGhyZWFkIGlzIGZpcnN0LCBHREIgZHJvcHMgdGhpcywg dGhlbiByZXRhaW5zIHRoZSBzZWNvbmQgdGhyZWFkLCB3aGljaAorKwkjIGlzIHRoZSBvbmUgd2Un cmUgc3RvcHBpbmcgaW4sIGFuZCBzbywgd2UgZG9uJ3QgZXhwZWN0IHRvIHNlZSB0aGUgZXJyb3IK KysJIyBpbiB0aGlzIGNhc2UuCisrCXJlcGxheV93aXRoX2xvZyAkbWlzc2luZ18yX2xvZyBmYWxz ZSAkbm9uX3N0b3AKKysgICAgfQorK30KKysKKysjIFJ1biB0aGUgdGVzdCB0d2ljZSwgd2l0aCBu b24tc3RvcCBvbiBhbmQgb2ZmLgorK2ZvcmVhY2hfd2l0aF9wcmVmaXggbm9uX3N0b3AgeyBvbiBv ZmYgfSB7CisrICAgIHNhdmVfdmFycyB7IDo6R0RCRkxBR1MgfSB7CisrCWFwcGVuZCA6OkdEQkZM QUdTICIgLWV4IFwic2V0IG5vbi1zdG9wICRub25fc3RvcFwiIgorKwlydW5fdGVzdCAkbm9uX3N0 b3AKKysgICAgfQorK30KCmRpZmYgLS1naXQgYS9nZGIuc3BlYyBiL2dkYi5zcGVjCmluZGV4IDk0 YTk5NDYuLjEzN2Q4MmEgMTAwNjQ0Ci0tLSBhL2dkYi5zcGVjCisrKyBiL2dkYi5zcGVjCkBAIC00 NSw3ICs0NSw3IEBAIFZlcnNpb246IDE3LjEKIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFp bnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFt JyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMg Y29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiA1JXs/ZGlzdH0KK1JlbGVhc2U6 IDYlez9kaXN0fQogCiBMaWNlbnNlOiBHUEwtMy4wLW9yLWxhdGVyIEFORCBCU0QtMy1DbGF1c2Ug QU5EIEZTRkFQIEFORCBMR1BMLTIuMS1vci1sYXRlciBBTkQgR1BMLTIuMC1vci1sYXRlciBBTkQg TEdQTC0yLjAtb3ItbGF0ZXIgQU5EIExpY2Vuc2VSZWYtRmVkb3JhLVB1YmxpYy1Eb21haW4gQU5E IEdGREwtMS4zLW9yLWxhdGVyIEFORCBMR1BMLTIuMC1vci1sYXRlciBXSVRIIEdDQy1leGNlcHRp b24tMi4wIEFORCBHUEwtMy4wLW9yLWxhdGVyIFdJVEggR0NDLWV4Y2VwdGlvbi0zLjEgQU5EIEdQ TC0yLjAtb3ItbGF0ZXIgV0lUSCBHTlUtY29tcGlsZXItZXhjZXB0aW9uIEFORCBNSVQKICMgRG8g bm90IHByb3ZpZGUgVVJMIGZvciBzbmFwc2hvdHMgYXMgdGhlIGZpbGUgbGFzdHMgdGhlcmUgb25s eSBmb3IgMiBkYXlzLgpAQCAtOTMyLDYgKzkzMiwxMSBAQCBmaQogIyBlbmRpZiBzY2wKIAogJWNo YW5nZWxvZworKiBUdWUgQXByIDIxIDIwMjUgQW5kcmV3IEJ1cmdlc3MgPGFidXJnZXNzQHJlZGhh dC5jb20+CistIEJhY2twb3J0IHVwc3RyZWFtIGNvbW1pdHMgOGJkMDhlZTkyYzQgYW5kIGNkMjg5 ZGYwNjhlIHRvIGFkZHJlc3MKKyAgcmhiejIzNjY0NjEuICBUaGVzZSBiYWNrcG9ydHMgd2lsbCBu b3QgYmUgbmVlZGVkIG9uY2Ugd2UgcmViYXNlIHRvCisgIEdEQiAxOC4KKwogKiBXZWQgQXByIDE1 IDIwMjYgS2VpdGggU2VpdHogPGtlaXRoc0ByZWRoYXQuY29tPgogLSBCYWNrcG9ydCB1cHN0cmVh bSBjb21taXQgZWY3NzI3YWUgZnJvbSBUb20gZGUgVnJpZXMgdG8KICAgZml4IHRoZSB0ZXN0IHN1 aXRlIGZvciBuZXdlciBUY2wgcmVsZWFzZXMuCg==