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: Sergio Durigan Junior To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Rebase to FSF GDB 8.1.90.20180714 (8.2pre). Date: Sat, 27 Jun 2026 23:58:51 GMT Message-ID: <178260473126.1.6502846638158078128.rpms-gdb-2cbda85f1ce9@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 2cbda85f1ce90ca3d8c1db5743f544e4fc9ebdd6 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogMmNiZGE4NWYxY2U5MGNhM2Q4YzFkYjU3NDNmNTQ0ZTRmYzll YmRkNgogICAgICAgICAgICBBdXRob3IgOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2Rq QHJlZGhhdC5jb20+CiAgICAgICAgICAgIERhdGUgICA6IDIwMTgtMDctMTVUMTI6Mjc6MjEtMDQ6 MDAKICAgICAgICAgICAgU3RhdHMgIDogKzIwNDkvLTggaW4gMTAgZmlsZShzKQogICAgICAgICAg ICBVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9jLzJjYmRh ODVmMWNlOTBjYTNkOGMxZGI1NzQzZjU0NGU0ZmM5ZWJkZDY/YnJhbmNoPWdkYi0xNy4yLXJlYmFz ZS1mNDQKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAgUmViYXNlIHRvIEZTRiBHREIgOC4x LjkwLjIwMTgwNzE0ICg4LjJwcmUpLgpCYWNrcG9ydCBJUHY2IHBhdGNoIChSSCBCWiA4ODE4NDks IFNlcmdpbyBEdXJpZ2FuIEp1bmlvcikuCgotLS0KZGlmZiAtLWdpdCBhL19nZGIuc3BlYy5QYXRj aC5pbmNsdWRlIGIvX2dkYi5zcGVjLlBhdGNoLmluY2x1ZGUKaW5kZXggZWRjZTU3MC4uOGJhMGU0 OCAxMDA2NDQKLS0tIGEvX2dkYi5zcGVjLlBhdGNoLmluY2x1ZGUKKysrIGIvX2dkYi5zcGVjLlBh dGNoLmluY2x1ZGUKQEAgLTUwNCwzICs1MDQsOSBAQCBQYXRjaDEyMDogZ2RiLXZsYS1pbnRlbC1m aXgtcHJpbnQtY2hhci1hcnJheS5wYXRjaAogIyA9ZmVkb3JhdGVzdAogUGF0Y2gxMjE6IGdkYi1y aGJ6MTU1MzEwNC1zMzkweC1hcmNoMTItdGVzdC5wYXRjaAogCisjIEltcGxlbWVudCBJUHY2IHN1 cHBvcnQgZm9yIEdEQi9nZGJzZXJ2ZXIgKFJIIEJaIDg4MTg0OSwgU2VyZ2lvIER1cmlnYW4gSnVu aW9yKS4KK1BhdGNoMTIyOiBnZGItcmhiejg4MTg0OS1pcHY2LTFvZjIucGF0Y2gKKworIyBJbXBs ZW1lbnQgSVB2NiBzdXBwb3J0IGZvciBHREIvZ2Ric2VydmVyIChSSCBCWiA4ODE4NDksIFNlcmdp byBEdXJpZ2FuIEp1bmlvcikuCitQYXRjaDEyMzogZ2RiLXJoYno4ODE4NDktaXB2Ni0yb2YyLnBh dGNoCisKCmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMucGF0Y2guaW5jbHVkZSBiL19nZGIuc3BlYy5w YXRjaC5pbmNsdWRlCmluZGV4IGE2NjNlZGIuLjI3YTM5YjcgMTAwNjQ0Ci0tLSBhL19nZGIuc3Bl Yy5wYXRjaC5pbmNsdWRlCisrKyBiL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCkBAIC0xMTksMyAr MTE5LDUgQEAKICVwYXRjaDExOSAtcDEKICVwYXRjaDEyMCAtcDEKICVwYXRjaDEyMSAtcDEKKyVw YXRjaDEyMiAtcDEKKyVwYXRjaDEyMyAtcDEKCmRpZmYgLS1naXQgYS9fZ2l0X3Vwc3RyZWFtX2Nv bW1pdCBiL19naXRfdXBzdHJlYW1fY29tbWl0CmluZGV4IGQ4OTBmN2IuLjZlZGRmZDIgMTAwNjQ0 Ci0tLSBhL19naXRfdXBzdHJlYW1fY29tbWl0CisrKyBiL19naXRfdXBzdHJlYW1fY29tbWl0CkBA IC0xICsxIEBACi0wYmFkMTY2YjkyMDI1NDk3NGFkMmUzNWYwODdlMTRhYTkxM2FmZTQ0CitiYWE5 OGNiN2U2Mjk4Y2Q3NGFkOTYzOGU1YjAyYWExOTJmODA0NjU5CgpkaWZmIC0tZ2l0IGEvX3BhdGNo X29yZGVyIGIvX3BhdGNoX29yZGVyCmluZGV4IDFiM2E1ZmUuLjExYjQxMzEgMTAwNjQ0Ci0tLSBh L19wYXRjaF9vcmRlcgorKysgYi9fcGF0Y2hfb3JkZXIKQEAgLTExOSwzICsxMTksNSBAQCBnZGIt dGVzdHN1aXRlLXJlYWRsaW5lNjMtc2lnaW50LnBhdGNoCiBnZGItYXJjaGVyLnBhdGNoCiBnZGIt dmxhLWludGVsLWZpeC1wcmludC1jaGFyLWFycmF5LnBhdGNoCiBnZGItcmhiejE1NTMxMDQtczM5 MHgtYXJjaDEyLXRlc3QucGF0Y2gKK2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMi5wYXRjaAorZ2Ri LXJoYno4ODE4NDktaXB2Ni0yb2YyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvZ2RiLWNvbnRhaW5lci1y aC1wa2cucGF0Y2ggYi9nZGItY29udGFpbmVyLXJoLXBrZy5wYXRjaAppbmRleCBhNThhZjIzLi4y ZGVmYzhkIDEwMDY0NAotLS0gYS9nZGItY29udGFpbmVyLXJoLXBrZy5wYXRjaAorKysgYi9nZGIt Y29udGFpbmVyLXJoLXBrZy5wYXRjaApAQCAtOSw3ICs5LDcgQEAgU3ViamVjdDogZ2RiLWNvbnRh aW5lci1yaC1wa2cucGF0Y2gKIGRpZmYgLS1naXQgYS9nZGIvcmVtb3RlLmMgYi9nZGIvcmVtb3Rl LmMKIC0tLSBhL2dkYi9yZW1vdGUuYwogKysrIGIvZ2RiL3JlbW90ZS5jCi1AQCAtMTM5MDEsNyAr MTM5MDEsMTcgQEAgcmVtb3RlX3RhcmdldDo6cGlkX3RvX2V4ZWNfZmlsZSAoaW50IHBpZCkKK0BA IC0xMzkwOSw3ICsxMzkwOSwxNyBAQCByZW1vdGVfdGFyZ2V0OjpwaWRfdG9fZXhlY19maWxlIChp bnQgcGlkKQogICAgY2hhciAqYW5uZXggPSBOVUxMOwogIAogICAgaWYgKHBhY2tldF9zdXBwb3J0 IChQQUNLRVRfcVhmZXJfZXhlY19maWxlKSAhPSBQQUNLRVRfRU5BQkxFKQoKZGlmZiAtLWdpdCBh L2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRw b3MtMjBvZjI1LnBhdGNoCmluZGV4IGUzZDQ3MTMuLjZlYmRhNTIgMTAwNjQ0Ci0tLSBhL2dkYi1y aGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9z LTIwb2YyNS5wYXRjaApAQCAtMjc1OCw3ICsyNzU4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9yZW1v dGUuYyBiL2dkYi9yZW1vdGUuYwogIAogICAgaW50IGluc2VydF93YXRjaHBvaW50IChDT1JFX0FE RFIsIGludCwgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSwKICAJCQkgc3RydWN0IGV4cHJlc3Npb24g Kikgb3ZlcnJpZGU7Ci1AQCAtMTA0MDUsNyArMTA0MDUsNyBAQCBpbnQgcmVtb3RlX2h3X3dhdGNo cG9pbnRfbGVuZ3RoX2xpbWl0ID0gLTE7CitAQCAtMTA0MTMsNyArMTA0MTMsNyBAQCBpbnQgcmVt b3RlX2h3X3dhdGNocG9pbnRfbGVuZ3RoX2xpbWl0ID0gLTE7CiAgaW50IHJlbW90ZV9od19icmVh a3BvaW50X2xpbWl0ID0gLTE7CiAgCiAgaW50CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQt Yml0cG9zLTIyb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMm9mMjUucGF0Y2gK aW5kZXggZWI4MWExNy4uODA3MmY3NyAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9z LTIyb2YyNS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjJvZjI1LnBhdGNoCkBA IC0zODQsNyArMzg0LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUu YwogIAogICAgaW50IGNhbl91c2VfaHdfYnJlYWtwb2ludCAoZW51bSBicHR5cGUsIGludCwgaW50 KSBvdmVycmlkZTsKICAKLUBAIC0xMDMzNCw3ICsxMDMzNCw3IEBAIHJlbW90ZV90YXJnZXQ6Omlu c2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwKK0BAIC0xMDM0Miw3ICsx MDM0Miw3IEBAIHJlbW90ZV90YXJnZXQ6Omluc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRk ciwgaW50IGxlbiwKICAgIHAgPSBzdHJjaHIgKHJzLT5idWYsICdcMCcpOwogICAgYWRkciA9IHJl bW90ZV9hZGRyZXNzX21hc2tlZCAoYWRkcik7CiAgICBwICs9IGhleG51bXN0ciAocCwgKFVMT05H RVNUKSBhZGRyKTsKQEAgLTM5Myw3ICszOTMsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3JlbW90ZS5j IGIvZ2RiL3JlbW90ZS5jCiAgCiAgICBwdXRwa3QgKHJzLT5idWYpOwogICAgZ2V0cGt0ICgmcnMt PmJ1ZiwgJnJzLT5idWZfc2l6ZSwgMCk7Ci1AQCAtMTAzNTQsNyArMTAzNTQsNyBAQCByZW1vdGVf dGFyZ2V0OjppbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCitAQCAt MTAzNjIsNyArMTAzNjIsNyBAQCByZW1vdGVfdGFyZ2V0OjppbnNlcnRfd2F0Y2hwb2ludCAoQ09S RV9BRERSIGFkZHIsIGludCBsZW4sCiAgCiAgYm9vbAogIHJlbW90ZV90YXJnZXQ6OndhdGNocG9p bnRfYWRkcl93aXRoaW5fcmFuZ2UgKENPUkVfQUREUiBhZGRyLApAQCAtNDAyLDcgKzQwMiw3IEBA IGRpZmYgLS1naXQgYS9nZGIvcmVtb3RlLmMgYi9nZGIvcmVtb3RlLmMKICB7CiAgICBDT1JFX0FE RFIgZGlmZiA9IHJlbW90ZV9hZGRyZXNzX21hc2tlZCAoYWRkciAtIHN0YXJ0KTsKICAKLUBAIC0x MDM4Myw3ICsxMDM4Myw3IEBAIHJlbW90ZV90YXJnZXQ6OnJlbW92ZV93YXRjaHBvaW50IChDT1JF X0FERFIgYWRkciwgaW50IGxlbiwKK0BAIC0xMDM5MSw3ICsxMDM5MSw3IEBAIHJlbW90ZV90YXJn ZXQ6OnJlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwKICAgIHAgPSBz dHJjaHIgKHJzLT5idWYsICdcMCcpOwogICAgYWRkciA9IHJlbW90ZV9hZGRyZXNzX21hc2tlZCAo YWRkcik7CiAgICBwICs9IGhleG51bXN0ciAocCwgKFVMT05HRVNUKSBhZGRyKTsKCmRpZmYgLS1n aXQgYS9nZGItcmhiejg4MTg0OS1pcHY2LTFvZjIucGF0Y2ggYi9nZGItcmhiejg4MTg0OS1pcHY2 LTFvZjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI3NDVjOQot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMi5wYXRjaApAQCAtMCww ICsxLDE5NjQgQEAKK0Zyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+CitEYXRl OiBGcmksIDE4IE1heSAyMDE4IDAxOjI5OjI0IC0wNDAwCitTdWJqZWN0OiBnZGItcmhiejg4MTg0 OS1pcHY2LTFvZjIucGF0Y2gKKworOzsgSW1wbGVtZW50IElQdjYgc3VwcG9ydCBmb3IgR0RCL2dk YnNlcnZlciAoUkggQlogODgxODQ5LCBTZXJnaW8gRHVyaWdhbiBKdW5pb3IpLgorCitJbXBsZW1l bnQgSVB2NiBzdXBwb3J0IGZvciBHREIvZ2Ric2VydmVyCisKK1RoaXMgcGF0Y2ggaW1wbGVtZW50 cyBJUHY2IHN1cHBvcnQgZm9yIGJvdGggR0RCIGFuZCBnZGJzZXJ2ZXIuICBCYXNlZAorb24gbXkg cmVzZWFyY2gsIGl0IGlzIHRoZSBmb3VydGggYXR0ZW1wdCB0byBkbyB0aGF0IHNpbmNlIDIwMDYu ICBTaW5jZQorSSB1c2VkIGlkZWFzIGZyb20gYWxsIG9mIHRoZSBwcmV2aW91cyBwYXRjaGVzLCBJ IGFsc28gYWRkZWQgdGhlaXIKK2F1dGhvcnMncyBuYW1lcyBvbiB0aGUgQ2hhbmdlTG9ncyBhcyBh IHdheSB0byByZWNvZ25pemUgdGhlaXIKK2VmZm9ydHMuICBGb3IgcmVmZXJlbmNlIHNha2UsIHlv dSBjYW4gZmluZCB0aGUgcHJldmlvdXMgYXR0ZW1wdHMgYXQ6CisKKyAgaHR0cHM6Ly9zb3VyY2V3 YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDA2LTA5L21zZzAwMTkyLmh0bWwKKworICBodHRwczov L3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDIvbXNnMDAyNDguaHRtbAorCisg IGh0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDIyNi5o dG1sCisKK1RoZSBiYXNpYyBpZGVhIGJlaGluZCB0aGUgcGF0Y2ggaXMgdG8gc3RhcnQgdXNpbmcg dGhlIG5ldworJ2dldGFkZHJpbmZvJy8nZ2V0bmFtZWluZm8nIGNhbGxzLCB3aGljaCBhcmUgcmVz cG9uc2libGUgZm9yCit0cmFuc2xhdGluZyBuYW1lcyBhbmQgYWRkcmVzc2VzIGluIGEgcHJvdG9j b2wtaW5kZXBlbmRlbnQgd2F5LiAgVGhpcworbWVhbnMgdGhhdCBpZiB3ZSBldmVyIGhhdmUgYSBu ZXcgdmVyc2lvbiBvZiB0aGUgSVAgcHJvdG9jb2wsIHdlIHdvbid0CituZWVkIHRvIGNoYW5nZSB0 aGUgY29kZSBhZ2FpbiAob3IsIGF0IGxlYXN0LCB3b24ndCBoYXZlIHRvIGNoYW5nZSB0aGUKK21h am9yaXR5IG9mIHRoZSBjb2RlKS4KKworVGhlIGZ1bmN0aW9uICdnZXRhZGRyaW5mbycgcmV0dXJu cyBhIGxpbmtlZCBsaXN0IG9mIHBvc3NpYmxlIGFkZHJlc3NlcwordG8gY29ubmVjdCB0by4gIERl YWxpbmcgd2l0aCBtdWx0aXBsZSBhZGRyZXNzZXMgcHJvdmVkIHRvIGJlIGEgaGFyZAordGFzayB3 aXRoIHRoZSBjdXJyZW50IFRDUCBhdXRvLXJldHJ5IG1lY2hhbmlzbSBpbXBsZW1lbnRlZCBvbgor c2VyLXRjcDpuZXRfb3Blbi4gIEZvciBleGFtcGxlLCB3aGVuIGdkYnNlcnZlciBsaXN0ZW5lZCBv bmx5IG9uIGFuCitJUHY0IHNvY2tldDoKKworICAkIC4vZ2Ric2VydmVyIC0tb25jZSAxMjcuMC4w LjE6MTIzNCAuL2Eub3V0CisKK2FuZCBHREIgd2FzIGluc3RydWN0ZWQgdG8gdHJ5IHRvIGNvbm5l Y3QgdG8gYm90aCBJUHY2IGFuZCBJUHY0Citzb2NrZXRzOgorCisgICQgLi9nZGIgLWV4ICd0YXJn ZXQgZXh0ZW5kZWQtcmVtb3RlIGxvY2FsaG9zdDoxMjM0JyAuL2Eub3V0CisKK3RoZSB1c2VyIHdv dWxkIG5vdGljZSBhIHNvbWV3aGF0IGJpZyBkZWxheSBiZWZvcmUgR0RCIHdhcyBhYmxlIHRvCitj b25uZWN0IHRvIHRoZSBJUHY0IHNvY2tldC4gIFRoaXMgaGFwcGVuZWQgYmVjYXVzZSBHREIgd2Fz IHRyeWluZyB0bworY29ubmVjdCB0byB0aGUgSVB2NiBzb2NrZXQgZmlyc3QsIGFuZCBoYWQgdG8g d2FpdCB1bnRpbCB0aGUgY29ubmVjdGlvbgordGltZWQgb3V0IGJlZm9yZSBpdCB0cmllZCB0byBj b25uZWN0IHRvIHRoZSBJUHY0IHNvY2tldC4KKworRm9yIHRoYXQgcmVhc29uLCBJIGhhZCB0byBy ZXdyaXRlIHRoZSBtYWluIGxvb3AgYW5kIGltcGxlbWVudCBhIG5ldworbWV0aG9kIGZvciBoYW5k bGluZyBtdWx0aXBsZSBjb25uZWN0aW9ucy4gIEFmdGVyIHNvbWUgZGlzY3Vzc2lvbiwKK1BlZHJv IGFuZCBJIGFncmVlZCBvbiB0aGUgZm9sbG93aW5nIGFsZ29yaXRobToKKworICAxKSBGb3IgZWFj aCBlbnRyeSByZXR1cm5lZCBieSAnZ2V0YWRkcmluZm8nLCB3ZSB0cnkgdG8gb3BlbiBhIHNvY2tl dAorICBhbmQgY29ubmVjdCB0byBpdC4KKworICAyLmEpIElmIHdlIGhhdmUgYSBzdWNjZXNzZnVs ICdjb25uZWN0Jywgd2UganVzdCB1c2UgdGhhdCBjb25uZWN0aW9uLgorCisgIDIuYikgSWYgd2Ug ZG9uJ3QgaGF2ZSBhIHN1Y2Nlc3NmdWxsICdjb25uZWN0JywgYnV0IGlmIHdlJ3ZlIGdvdCBhCisg IEVDT05OUkVGVVNFRCAobWVhbmluZyB0aGUgdGhlIGNvbm5lY3Rpb24gd2FzIHJlZnVzZWQpLCB3 ZSBrZWVwIHRyYWNrCisgIG9mIHRoaXMgZmFjdCBieSB1c2luZyBhIGZsYWcuCisKKyAgMi5jKSBJ ZiB3ZSBkb24ndCBoYXZlIGEgc3VjY2Vzc2Z1bGwgJ2Nvbm5lY3QnLCBidXQgaWYgd2UndmUgZ290 IGEKKyAgRUlOUFJPR1JFU1MgKG1lYW5pbmcgdGhhdCB0aGUgY29ubmVjdGlvbiBpcyBpbiBwcm9n cmVzcyksIHdlIHBlcmZvcm0KKyAgYSAnc2VsZWN0JyBjYWxsIG9uIHRoZSBzb2NrZXQgdW50aWwg d2UgaGF2ZSBhIHJlc3VsdCAoZWl0aGVyIGEKKyAgc3VjY2Vzc2Z1bCBjb25uZWN0aW9uLCBvciBh biBlcnJvciBvbiB0aGUgc29ja2V0KS4KKworICAzKSBJZiB0Y3BfYXV0b19yZXRyeSBpcyB0cnVl LCBhbmQgd2UgaGF2ZW4ndCBnb3R0ZW4gYSBzdWNjZXNzZnVsCisgIGNvbm5lY3Rpb24sIGFuZCBh dCBsZWFzdCBvbmUgb2Ygb3VyIGF0dGVtcHRzIGZhaWxlZCB3aXRoCisgIEVDT05OUkVGVVNFRCwg dGhlbiB3ZSB3YWl0IGEgbGl0dGxlIGJpdCAoaS5lLiwgY2FsbAorICAnd2FpdF9mb3JfY29ubmVj dCcpLCBjaGVjayB0byBzZWUgaWYgdGhlcmUgd2FzIGEKKyAgdGltZW91dC9pbnRlcnJ1cHRpb24g KGluIHdoaWNoIGNhc2Ugd2UgYmFpbCBvdXQpLCBhbmQgdGhlbiBnbyBiYWNrCisgIHRvICgxKS4K KworQWZ0ZXIgbXVsdGlwbGUgdGVzdHMsIEkgd2FzIGFibGUgdG8gY29ubmVjdCB3aXRob3V0IGRl bGF5IG9uIHRoZQorc2NlbmFyaW8gZGVzY3JpYmVkIGFib3ZlLCBhbmQgd2FzIGFsc28gYWJsZSB0 byBjb25uZWN0IGluIGFsbCBvdGhlcgordHlwZXMgb2Ygc2NlbmFyaW9zLgorCitJIGFsc28gaW1w bGVtZW50ZWQgc29tZSBob3N0bmFtZSBwYXJzaW5nIGZ1bmN0aW9ucyAoYWxvbmcgd2l0aCB0aGVp cgorY29ycmVzcG9uZGluZyB1bml0IHRlc3RzKSB3aGljaCBhcmUgdXNlZCB0byBoZWxwIEdEQiBh bmQgZ2Ric2VydmVyIHRvCitwYXJzZSBob3N0bmFtZSBzdHJpbmdzIHByb3ZpZGVkIGJ5IHRoZSB1 c2VyLiAgVGhlc2UgbmV3IGZ1bmN0aW9ucyBhcmUKK2xpdmluZyBpbnNpZGUgY29tbW9uL25ldHN0 dWZmLltjaF0uICBJJ3ZlIGhhZCB0byBkbyB0aGF0IHNpbmNlIElQdjYKK2ludHJvZHVjZXMgYSBu ZXcgVVJMIHNjaGVtZSwgd2hpY2ggZGVmaW5lcyB0aGF0IHNxdWFyZSBicmFja2V0cyBjYW4gYmUK K3VzZWQgdG8gZW5jbG9zZSB0aGUgaG9zdCBwYXJ0IGFuZCBkaWZmZXJlbnRpYXRlIGl0IGZyb20g dGhlCitwb3J0IChlLmcuLCAiWzo6MV06MTIzNCIgbWVhbnMgImhvc3QgOjoxLCBwb3J0IDEyMzQi KS4gIEkgc3BlbnQgc29tZQordGltZSB0aGlua2luZyBhYm91dCBhIHJlYXNvbmFibGUgd2F5IHRv IGludGVycHJldCB3aGF0IHRoZSB1c2VyIHdhbnRzLAorYW5kIEkgY2FtZSB1cCB3aXRoIHRoZSBm b2xsb3dpbmc6CisKKyAgLSBJZiB0aGUgdXNlciBoYXMgcHJvdmlkZWQgYSBwcmVmaXggdGhhdCBk b2Vzbid0IHNwZWNpZnkgdGhlIHByb3RvY29sCisgICAgdmVyc2lvbiAoaS5lLiwgInRjcDoiIG9y ICJ1ZHA6IiksIG9yIGlmIHRoZSB1c2VyIGhhcyBub3QgcHJvdmlkZWQKKyAgICBhbnkgcHJlZml4 LCBkb24ndCBtYWtlIGFueSBhc3N1bXB0aW9ucyAoaS5lLiwgYXNzdW1lIEFGX1VOU1BFQyB3aGVu CisgICAgZGVhbGluZyB3aXRoICdnZXRhZGRyaW5mbycpICp1bmxlc3MqIHRoZSBob3N0IHN0YXJ0 cyB3aXRoICJbIiAoaW4KKyAgICB3aGljaCBjYXNlLCBhc3N1bWUgaXQncyBhbiBJUHY2IGhvc3Qp LgorCisgIC0gSWYgdGhlIHVzZXIgaGFzIHByb3ZpZGVkIGEgcHJlZml4IHRoYXQgZG9lcyBzcGVj aWZ5IHRoZSBwcm90b2NvbAorICAgIHZlcnNpb24gKGkuZS4sICJ0Y3A0OiIsICJ0Y3A2OiIsICJ1 ZHA0OiIgb3IgInVkcDY6IiksIHRoZW4gcmVzcGVjdAorICAgIHRoYXQuCisKK1RoaXMgbWV0aG9k IGRvZXNuJ3QgZm9sbG93IHN0cmljdGx5IHdoYXQgUkZDIDI3MzIgcHJvcG9zZXMgKHRoYXQKK2xp dGVyYWwgSVB2NiBhZGRyZXNzZXMgc2hvdWxkIGJlIHByb3ZpZGVkIGVuY2xvc2VkIGluICJbIiBh bmQgIl0iKQorYmVjYXVzZSBJUHY2IGFkZHJlc3NlcyBzdGlsbCBjYW4gYmUgcHJvdmlkZWQgd2l0 aG91dCBzcXVhcmUgYnJhY2tldHMKK2luIG91ciBjYXNlLCBidXQgc2luY2Ugd2UgaGF2ZSBwcmVm aXhlcyB0byBzcGVjaWZ5IHByb3RvY29sIHZlcnNpb25zIEkKK3RoaW5rIHRoaXMgaXMgbm90IGFu IGlzc3VlLgorCitBbm90aGVyIHRoaW5nIHdvcnRoIG1lbnRpb25pbmcgaXMgdGhlIG5ldyAnR0RC X1RFU1RfU09DS0VUSE9TVCcKK3Rlc3RjYXNlIHBhcmFtZXRlciwgd2hpY2ggbWFrZXMgaXQgcG9z c2libGUgdG8gc3BlY2lmeSB0aGUKK2hvc3RuYW1lICh3aXRob3V0IHRoZSBwb3J0KSB0byBiZSB1 c2VkIHdoZW4gdGVzdGluZyBHREIgYW5kCitnZGJzZXJ2ZXIuICBGb3IgZXhhbXBsZSwgdG8gcnVu IElQdjYgdGVzdHM6CisKKyAgJCBtYWtlIGNoZWNrLWdkYiBSVU5URVNURkxBR1M9J0dEQl9URVNU X1NPQ0tFVEhPU1Q9dGNwNjpbOjoxXScKKworT3IsIHRvIHJ1biBJUHY0IHRlc3RzOgorCisgICQg bWFrZSBjaGVjay1nZGIgUlVOVEVTVEZMQUdTPSdHREJfVEVTVF9TT0NLRVRIT1NUPXRjcDQ6MTI3 LjAuMC4xJworCitUaGlzIHJlcXVpcmVkIGEgZmV3IGNoYW5nZXMgb24gdGhlIGdkYnNlcnZlci1i YXNlLmV4cCwgYW5kIGFsc28gYQorbWluaW1hbCBhZGp1c3RtZW50IG9uIGdkYi5zZXJ2ZXIvcnVu LXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cC4KKworRmluYWxseSwgSSd2ZSBpbXBsZW1lbnRlZCBh IG5ldyB0ZXN0Y2FzZSwKK2dkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwLCB3aGljaCBpcyBz dXBwb3NlZCB0byBydW4gb24gdGhlIG5hdGl2ZQoraG9zdCBhbmQgcGVyZm9ybSB2YXJpb3VzICJz bW9rZSB0ZXN0cyIgdXNpbmcgZGlmZmVyZW50IGNvbm5lY3Rpb24KK21ldGhvZHMuCisKK1RoaXMg cGF0Y2ggaGFzIGJlZW4gcmVncmVzc2lvbi10ZXN0ZWQgb24gQnVpbGRCb3QgYW5kIGxvY2FsbHks IGFuZAorYWxzbyBidWlsdCB1c2luZyBhIHg4Nl82NC13NjQtbWluZ3czMiBHQ0MsIGFuZCBubyBw cm9ibGVtcyB3ZXJlIGZvdW5kLgorCitnZGIvQ2hhbmdlTG9nOgorMjAxOC0wNy0xMSAgU2VyZ2lv IER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKwkgICAgSmFuIEtyYXRvY2h2 aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJj ZXJwYXZAZ21haWwuY29tPgorCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFpbC5jb20+ CisJICAgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+CisKKwkqIE1ha2VmaWxlLmlu IChTVUJESVJfVU5JVFRFU1RTX1NSQ1MpOiBBZGQKKwkndW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rp b24tc3BlYy1zZWxmdGVzdHMuYycuCisJKENPTU1PTl9TRklMRVMpOiBBZGQgJ2NvbW1vbi9uZXRz dHVmZi5jJy4KKwkoSEZJTEVTX05PX1NSQ0RJUik6IEFkZCAnY29tbW9uL25ldHN0dWZmLmgnLgor CSogTkVXUyAoQ2hhbmdlcyBzaW5jZSBHREIgOC4yKTogTWVudGlvbiBJUHY2IHN1cHBvcnQuCisJ KiBjb21tb24vbmV0c3R1ZmYuYzogTmV3IGZpbGUuCisJKiBjb21tb24vbmV0c3R1ZmYuaDogTmV3 IGZpbGUuCisJKiBzZXItdGNwLmM6IEluY2x1ZGUgJ25ldHN0dWZmLmgnIGFuZCAnd3NwaWFwaS5o Jy4KKwkod2FpdF9mb3JfY29ubmVjdCk6IFVwZGF0ZSBjb21tZW50LiAgTmV3IHBhcmFtZXRlcgor CSdnZGI6Om9wdGlvbmFsPGludD4gc29jaycgaW5zdGVhZCBvZiAnc3RydWN0IHNlcmlhbCAqc2Ni Jy4KKwlVc2UgJ3NvY2snIGRpcmVjdGx5IGluc3RlYWQgb2YgJ3NjYi0+ZmQnLgorCSh0cnlfY29u bmVjdCk6IE5ldyBmdW5jdGlvbiwgd2l0aCBjb2RlIGZyb20gJ25ldF9vcGVuJy4KKwkobmV0X29w ZW4pOiBSZXdyaXRlIG1haW4gbG9vcCB0byBkZWFsIHdpdGggbXVsdGlwbGUKKwlzb2NrZXRzL2Fk ZHJlc3Nlcy4gIEhhbmRsZSBJUHY2LXN0eWxlIGhvc3RuYW1lczsgaW1wbGVtZW50CisJc3VwcG9y dCBmb3IgSVB2NiBjb25uZWN0aW9ucy4KKwkqIHVuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNw ZWMtc2VsZnRlc3RzLmM6IE5ldyBmaWxlLgorCitnZGIvZ2Ric2VydmVyL0NoYW5nZUxvZzoKKzIw MTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisJ ICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKwkgICAgUGF1 bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KKwkgICAgVHN1dG9tdSBTZWtpICA8c2Vr aXJpa2lAZ21haWwuY29tPgorCisJKiBNYWtlZmlsZS5pbiAoU0ZJTEVTKTogQWRkICckKHNyY2Rp cikvY29tbW9uL25ldHN0dWZmLmMnLgorCShPQlMpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5vJy4K KwkoR0RCUkVQTEFZX09CUyk6IExpa2V3aXNlLgorCSogZ2RicmVwbGF5LmM6IEluY2x1ZGUgJ3dz cGlhcGkuaCcgYW5kICduZXRzdHVmZi5oJy4KKwkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQgc3Vw cG9ydCBmb3IgSVB2NgorCWNvbm5lY3Rpb25zLgorCSogcmVtb3RlLXV0aWxzLmM6IEluY2x1ZGUg J25ldHN0dWZmLmgnLCAnZmlsZXN0dWZmLmgnCisJYW5kICd3c3BpYXBpLmgnLgorCShoYW5kbGVf YWNjZXB0X2V2ZW50KTogQWNjZXB0IGNvbm5lY3Rpb25zIGZyb20gSVB2NiBzb3VyY2VzLgorCShy ZW1vdGVfcHJlcGFyZSk6IEhhbmRsZSBJUHY2LXN0eWxlIGhvc3RuYW1lczsgaW1wbGVtZW50CisJ c3VwcG9ydCBmb3IgSVB2NiBjb25uZWN0aW9ucy4KKwkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQg c3VwcG9ydCBmb3IgcHJpbnRpbmcgY29ubmVjdGlvbnMgZnJvbQorCUlQdjYgc291cmNlcy4KKwor Z2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CisyMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5p b3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgorCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+CisJICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5j b20+CisJICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KKworCSogUkVBRE1F IChUZXN0c3VpdGUgUGFyYW1ldGVycyk6IE1lbnRpb24gbmV3ICdHREJfVEVTVF9TT0NLRVRIT1NU JworCXBhcmFtZXRlci4KKwkqIGJvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cDog RG8gbm90IHNldCAnc29ja2V0aG9zdCcKKwlieSBkZWZhdWx0LgorCSogYm9hcmRzL25hdGl2ZS1n ZGJzZXJ2ZXIuZXhwOiBMaWtld2lzZS4KKwkqIGdkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwt YmluYXJ5LmV4cDogSW1wcm92ZSByZWdleHAgdXNlZAorCWZvciBkZXRlY3Rpbmcgd2hlbiBhIHJl bW90ZSBkZWJ1Z2dpbmcgY29ubmVjdGlvbiBzdWNjZWVkcy4KKwkqIGdkYi5zZXJ2ZXIvc2VydmVy LWNvbm5lY3QuZXhwOiBOZXcgZmlsZS4KKwkqIGxpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAgKGdk YnNlcnZlcl9kZWZhdWx0X2dldF9jb21tX3BvcnQpOgorCURvIG5vdCBwcmVmaXggdGhlIHBvcnQg bnVtYmVyIHdpdGggIjoiLgorCShnZGJzZXJ2ZXJfc3RhcnQpOiBOZXcgZ2xvYmFsIEdEQl9URVNU X1NPQ0tFVEhPU1QuICBJbXBsZW1lbnQKKwlzdXBwb3J0IGZvciBkZXRlY3RpbmcgYW5kIHVzaW5n IGl0LiAgQWRkICckZGVidWdob3N0X2dkYnNlcnZlcicKKwl0byB0aGUgbGlzdCBvZiBhcmd1bWVu dHMgdXNlZCB0byBzdGFydCBnZGJzZXJ2ZXIuICBIYW5kbGUgY2FzZQorCXdoZW4gZ2Ric2VydmVy IGNhbm5vdCByZXNvbHZlIGEgbmV0d29yayBuYW1lLgorCitnZGIvZG9jL0NoYW5nZUxvZzoKKzIw MTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisJ ICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKwkgICAgUGF1 bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KKwkgICAgVHN1dG9tdSBTZWtpICA8c2Vr aXJpa2lAZ21haWwuY29tPgorCisJKiBnZGIudGV4aW5mbyAoUmVtb3RlIENvbm5lY3Rpb24gQ29t bWFuZHMpOiBBZGQgZXhwbGFuYXRpb24KKwlhYm91dCBuZXcgSVB2NiBzdXBwb3J0LiAgQWRkIG5l dyBjb25uZWN0aW9uIHByZWZpeGVzLgorCitkaWZmIC0tZ2l0IGEvZ2RiL0NoYW5nZUxvZyBiL2dk Yi9DaGFuZ2VMb2cKKy0tLSBhL2dkYi9DaGFuZ2VMb2cKKysrKyBiL2dkYi9DaGFuZ2VMb2cKK0BA IC0xLDMgKzEsMjYgQEAKKysyMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJn aW9kakByZWRoYXQuY29tPgorKwkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPgorKwkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KKysJ ICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KKysJICAgIFBlZHJvIEFsdmVz ICA8cGFsdmVzQHJlZGhhdC5jb20+CisrCisrCSogTWFrZWZpbGUuaW4gKFNVQkRJUl9VTklUVEVT VFNfU1JDUyk6IEFkZAorKwkndW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVz dHMuYycuCisrCShDT01NT05fU0ZJTEVTKTogQWRkICdjb21tb24vbmV0c3R1ZmYuYycuCisrCShI RklMRVNfTk9fU1JDRElSKTogQWRkICdjb21tb24vbmV0c3R1ZmYuaCcuCisrCSogTkVXUyAoQ2hh bmdlcyBzaW5jZSBHREIgOC4yKTogTWVudGlvbiBJUHY2IHN1cHBvcnQuCisrCSogY29tbW9uL25l dHN0dWZmLmM6IE5ldyBmaWxlLgorKwkqIGNvbW1vbi9uZXRzdHVmZi5oOiBOZXcgZmlsZS4KKysJ KiBzZXItdGNwLmM6IEluY2x1ZGUgJ25ldHN0dWZmLmgnIGFuZCAnd3NwaWFwaS5oJy4KKysJKHdh aXRfZm9yX2Nvbm5lY3QpOiBVcGRhdGUgY29tbWVudC4gIE5ldyBwYXJhbWV0ZXIKKysJJ2dkYjo6 b3B0aW9uYWw8aW50PiBzb2NrJyBpbnN0ZWFkIG9mICdzdHJ1Y3Qgc2VyaWFsICpzY2InLgorKwlV c2UgJ3NvY2snIGRpcmVjdGx5IGluc3RlYWQgb2YgJ3NjYi0+ZmQnLgorKwkodHJ5X2Nvbm5lY3Qp OiBOZXcgZnVuY3Rpb24sIHdpdGggY29kZSBmcm9tICduZXRfb3BlbicuCisrCShuZXRfb3Blbik6 IFJld3JpdGUgbWFpbiBsb29wIHRvIGRlYWwgd2l0aCBtdWx0aXBsZQorKwlzb2NrZXRzL2FkZHJl c3Nlcy4gIEhhbmRsZSBJUHY2LXN0eWxlIGhvc3RuYW1lczsgaW1wbGVtZW50CisrCXN1cHBvcnQg Zm9yIElQdjYgY29ubmVjdGlvbnMuCisrCSogdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3Bl Yy1zZWxmdGVzdHMuYzogTmV3IGZpbGUuCisrCisgMjAxOC0wNy0xMSAgUGVkcm8gQWx2ZXMgIDxw YWx2ZXNAcmVkaGF0LmNvbT4KKyAKKyAJUFIgZ2RiLzIzMzc3CitkaWZmIC0tZ2l0IGEvZ2RiL01h a2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCistLS0gYS9nZGIvTWFrZWZpbGUuaW4KKysrKyBi L2dkYi9NYWtlZmlsZS5pbgorQEAgLTQzMCw2ICs0MzAsNyBAQCBTVUJESVJfVU5JVFRFU1RTX1NS Q1MgPSBcCisgCXVuaXR0ZXN0cy9vZmZzZXQtdHlwZS1zZWxmdGVzdHMuYyBcCisgCXVuaXR0ZXN0 cy9vYnNlcnZhYmxlLXNlbGZ0ZXN0cy5jIFwKKyAJdW5pdHRlc3RzL29wdGlvbmFsLXNlbGZ0ZXN0 cy5jIFwKKysJdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYyBcCisg CXVuaXR0ZXN0cy9wdGlkLXNlbGZ0ZXN0cy5jIFwKKyAJdW5pdHRlc3RzL3JzcC1sb3ctc2VsZnRl c3RzLmMgXAorIAl1bml0dGVzdHMvc2NvcGVkX2ZkLXNlbGZ0ZXN0cy5jIFwKK0BAIC05NjcsNiAr OTY4LDcgQEAgQ09NTU9OX1NGSUxFUyA9IFwKKyAJY29tbW9uL2pvYi1jb250cm9sLmMgXAorIAlj b21tb24vZ2RiX3RpbGRlX2V4cGFuZC5jIFwKKyAJY29tbW9uL2dkYl92ZWNzLmMgXAorKwljb21t b24vbmV0c3R1ZmYuYyBcCisgCWNvbW1vbi9uZXctb3AuYyBcCisgCWNvbW1vbi9wYXRoc3R1ZmYu YyBcCisgCWNvbW1vbi9wcmludC11dGlscy5jIFwKK0BAIC0xNDQ4LDYgKzE0NTAsNyBAQCBIRklM RVNfTk9fU1JDRElSID0gXAorIAljb21tb24vZ2RiX3ZlY3MuaCBcCisgCWNvbW1vbi9nZGJfd2Fp dC5oIFwKKyAJY29tbW9uL2NvbW1vbi1pbmZlcmlvci5oIFwKKysJY29tbW9uL25ldHN0dWZmLmgg XAorIAljb21tb24vaG9zdC1kZWZzLmggXAorIAljb21tb24vcGF0aHN0dWZmLmggXAorIAljb21t b24vcHJpbnQtdXRpbHMuaCBcCitkaWZmIC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVXUworLS0t IGEvZ2RiL05FV1MKKysrKyBiL2dkYi9ORVdTCitAQCAtMSw2ICsxLDEyIEBACisgCQlXaGF0IGhh cyBjaGFuZ2VkIGluIEdEQj8KKyAJICAgICAoT3JnYW5pemVkIHJlbGVhc2UgYnkgcmVsZWFzZSkK KyAKKysqKiogQ2hhbmdlcyBzaW5jZSBHREIgOC4yCisrCisrKiBHREIgYW5kIEdEQnNlcnZlciBu b3cgc3VwcG9ydCBJUHY2IGNvbm5lY3Rpb25zLiAgSVB2NiBhZGRyZXNzZXMKKysgIGNhbiBiZSBw YXNzZWQgdXNpbmcgdGhlICdbQUREUkVTU106UE9SVCcgbm90YXRpb24sIG9yIHRoZSByZWd1bGFy CisrICAnQUREUkVTUzpQT1JUJyBtZXRob2QuCisrCisgKioqIENoYW5nZXMgaW4gR0RCIDguMgor IAorICogVGhlICdzZXQgZGlzYXNzZW1ibGVyLW9wdGlvbnMnIGNvbW1hbmQgbm93IHN1cHBvcnRz IHNwZWNpZnlpbmcgb3B0aW9ucworZGlmZiAtLWdpdCBhL2dkYi9jb21tb24vbmV0c3R1ZmYuYyBi L2dkYi9jb21tb24vbmV0c3R1ZmYuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251 bGwKKysrKyBiL2dkYi9jb21tb24vbmV0c3R1ZmYuYworQEAgLTAsMCArMSwxNTUgQEAKKysvKiBP cGVyYXRpb25zIG9uIG5ldHdvcmsgc3R1ZmYuCisrICAgQ29weXJpZ2h0IChDKSAyMDE4IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdE Qi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysg ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lu Y2x1ZGUgImNvbW1vbi1kZWZzLmgiCisrI2luY2x1ZGUgIm5ldHN0dWZmLmgiCisrI2luY2x1ZGUg PGFsZ29yaXRobT4KKysKKysjaWZkZWYgVVNFX1dJTjMyQVBJCisrI2luY2x1ZGUgPHdpbnNvY2sy Lmg+CisrI2luY2x1ZGUgPHdzcGlhcGkuaD4KKysjZWxzZQorKyNpbmNsdWRlIDxuZXRpbmV0L2lu Lmg+CisrI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorKyNpbmNsdWRlIDxuZXRkYi5oPgorKyNpbmNs dWRlIDxzeXMvc29ja2V0Lmg+CisrI2luY2x1ZGUgPG5ldGluZXQvdGNwLmg+CisrI2VuZGlmCisr CisrLyogU2VlIGNvbW1vbi9uZXRzdHVmZi5oLiAgKi8KKysKKytzY29wZWRfZnJlZV9hZGRyaW5m bzo6fnNjb3BlZF9mcmVlX2FkZHJpbmZvICgpCisreworKyAgZnJlZWFkZHJpbmZvIChtX3Jlcyk7 CisrfQorKworKy8qIFNlZSBjb21tb24vbmV0c3R1ZmYuaC4gICovCisrCisrcGFyc2VkX2Nvbm5l Y3Rpb25fc3BlYworK3BhcnNlX2Nvbm5lY3Rpb25fc3BlY193aXRob3V0X3ByZWZpeCAoc3RkOjpz dHJpbmcgc3BlYywgc3RydWN0IGFkZHJpbmZvICpoaW50KQorK3sKKysgIHBhcnNlZF9jb25uZWN0 aW9uX3NwZWMgcmV0OworKyAgc2l6ZV90IGxhc3RfY29sb25fcG9zID0gMDsKKysgIC8qIFdlJ3Jl IGRlYWxpbmcgd2l0aCBJUHY2IGlmOgorKworKyAgICAgLSBhaV9mYW1pbHkgaXMgQUZfSU5FVDYs IG9yCisrICAgICAtIGFpX2ZhbWlseSBpcyBub3QgQUZfSU5FVCwgYW5kCisrICAgICAgIC0gc3Bl Y1swXSBpcyAnWycsIG9yCisrICAgICAgIC0gdGhlIG51bWJlciBvZiAnOicgb24gc3BlYyBpcyBn cmVhdGVyIHRoYW4gMS4gICovCisrICBib29sIGlzX2lwdjYgPSAoaGludC0+YWlfZmFtaWx5ID09 IEFGX0lORVQ2CisrCQkgIHx8IChoaW50LT5haV9mYW1pbHkgIT0gQUZfSU5FVAorKwkJICAgICAg JiYgKHNwZWNbMF0gPT0gJ1snCisrCQkJICB8fCBzdGQ6OmNvdW50IChzcGVjLmJlZ2luICgpLAor KwkJCQkJIHNwZWMuZW5kICgpLCAnOicpID4gMSkpKTsKKysKKysgIGlmIChpc19pcHY2KQorKyAg ICB7CisrICAgICAgaWYgKHNwZWNbMF0gPT0gJ1snKQorKwl7CisrCSAgLyogSVB2NiBhZGRyZXNz ZXMgY2FuIGJlIHdyaXR0ZW4gYXMgJ1tBRERSXTpQT1JUJywgYW5kIHdlCisrCSAgICAgc3VwcG9y dCB0aGlzIG5vdGF0aW9uLiAgKi8KKysJICBzaXplX3QgY2xvc2VfYnJhY2tldF9wb3MgPSBzcGVj LmZpbmRfZmlyc3Rfb2YgKCddJyk7CisrCisrCSAgaWYgKGNsb3NlX2JyYWNrZXRfcG9zID09IHN0 ZDo6c3RyaW5nOjpucG9zKQorKwkgICAgZXJyb3IgKF8oIk1pc3NpbmcgY2xvc2UgYnJhY2tldCBp biBob3N0bmFtZSAnJXMnIiksCisrCQkgICBzcGVjLmNfc3RyICgpKTsKKysKKysJICBoaW50LT5h aV9mYW1pbHkgPSBBRl9JTkVUNjsKKysKKysJICBjb25zdCBjaGFyIGMgPSBzcGVjW2Nsb3NlX2Jy YWNrZXRfcG9zICsgMV07CisrCisrCSAgaWYgKGMgPT0gJ1wwJykKKysJICAgIGxhc3RfY29sb25f cG9zID0gc3RkOjpzdHJpbmc6Om5wb3M7CisrCSAgZWxzZSBpZiAoYyAhPSAnOicpCisrCSAgICBl cnJvciAoXygiSW52YWxpZCBjcnVmdCBhZnRlciBjbG9zZSBicmFja2V0IGluICclcyciKSwKKysJ CSAgIHNwZWMuY19zdHIgKCkpOworKworKwkgIC8qIEVyYXNlIGJvdGggJ1snIGFuZCAnXScuICAq LworKwkgIHNwZWMuZXJhc2UgKDAsIDEpOworKwkgIHNwZWMuZXJhc2UgKGNsb3NlX2JyYWNrZXRf cG9zIC0gMSwgMSk7CisrCX0KKysgICAgICBlbHNlIGlmIChzcGVjLmZpbmRfZmlyc3Rfb2YgKCdd JykgIT0gc3RkOjpzdHJpbmc6Om5wb3MpCisrCWVycm9yIChfKCJNaXNzaW5nIG9wZW4gYnJhY2tl dCBpbiBob3N0bmFtZSAnJXMnIiksCisrCSAgICAgICBzcGVjLmNfc3RyICgpKTsKKysgICAgfQor KworKyAgaWYgKGxhc3RfY29sb25fcG9zID09IDApCisrICAgIGxhc3RfY29sb25fcG9zID0gc3Bl Yy5maW5kX2xhc3Rfb2YgKCc6Jyk7CisrCisrICAvKiBUaGUgbGVuZ3RoIG9mIHRoZSBob3N0bmFt ZSBwYXJ0LiAgKi8KKysgIHNpemVfdCBob3N0X2xlbjsKKysKKysgIGlmIChsYXN0X2NvbG9uX3Bv cyAhPSBzdGQ6OnN0cmluZzo6bnBvcykKKysgICAgeworKyAgICAgIC8qIFRoZSB1c2VyIGhhcyBw cm92aWRlZCBhIHBvcnQuICAqLworKyAgICAgIGhvc3RfbGVuID0gbGFzdF9jb2xvbl9wb3M7Cisr ICAgICAgcmV0LnBvcnRfc3RyID0gc3BlYy5zdWJzdHIgKGxhc3RfY29sb25fcG9zICsgMSk7Cisr ICAgIH0KKysgIGVsc2UKKysgICAgaG9zdF9sZW4gPSBzcGVjLnNpemUgKCk7CisrCisrICByZXQu aG9zdF9zdHIgPSBzcGVjLnN1YnN0ciAoMCwgaG9zdF9sZW4pOworKworKyAgLyogRGVmYXVsdCBo b3N0bmFtZSBpcyBsb2NhbGhvc3QuICAqLworKyAgaWYgKHJldC5ob3N0X3N0ci5lbXB0eSAoKSkK KysgICAgcmV0Lmhvc3Rfc3RyID0gImxvY2FsaG9zdCI7CisrCisrICByZXR1cm4gcmV0OworK30K KysKKysvKiBTZWUgY29tbW9uL25ldHN0dWZmLmguICAqLworKworK3BhcnNlZF9jb25uZWN0aW9u X3NwZWMKKytwYXJzZV9jb25uZWN0aW9uX3NwZWMgKGNvbnN0IGNoYXIgKnNwZWMsIHN0cnVjdCBh ZGRyaW5mbyAqaGludCkKKyt7CisrICAvKiBTdHJ1Y3QgdG8gaG9sZCB0aGUgYXNzb2NpYXRpb24g YmV0d2VlbiB2YWxpZCBwcmVmaXhlcywgdGhlaXIKKysgICAgIGZhbWlseSBhbmQgc29ja3R5cGUu ICAqLworKyAgc3RydWN0IGhvc3RfcHJlZml4CisrICAgIHsKKysgICAgICAvKiBUaGUgcHJlZml4 LiAgKi8KKysgICAgICBjb25zdCBjaGFyICpwcmVmaXg7CisrCisrICAgICAgLyogVGhlICdhaV9m YW1pbHknLiAgKi8KKysgICAgICBpbnQgZmFtaWx5OworKworKyAgICAgIC8qIFRoZSAnYWlfc29j a3R5cGUnLiAgKi8KKysgICAgICBpbnQgc29ja3R5cGU7CisrICAgIH07CisrICBzdGF0aWMgY29u c3Qgc3RydWN0IGhvc3RfcHJlZml4IHByZWZpeGVzW10gPQorKyAgICB7CisrICAgICAgeyAidWRw OiIsICBBRl9VTlNQRUMsIFNPQ0tfREdSQU0gfSwKKysgICAgICB7ICJ0Y3A6IiwgIEFGX1VOU1BF QywgU09DS19TVFJFQU0gfSwKKysgICAgICB7ICJ1ZHA0OiIsIEFGX0lORVQsICAgU09DS19ER1JB TSB9LAorKyAgICAgIHsgInRjcDQ6IiwgQUZfSU5FVCwgICBTT0NLX1NUUkVBTSB9LAorKyAgICAg IHsgInVkcDY6IiwgQUZfSU5FVDYsICBTT0NLX0RHUkFNIH0sCisrICAgICAgeyAidGNwNjoiLCBB Rl9JTkVUNiwgIFNPQ0tfU1RSRUFNIH0sCisrICAgIH07CisrCisrICBmb3IgKGNvbnN0IGhvc3Rf cHJlZml4IHByZWZpeCA6IHByZWZpeGVzKQorKyAgICBpZiAoc3RhcnRzd2l0aCAoc3BlYywgcHJl Zml4LnByZWZpeCkpCisrICAgICAgeworKwlzcGVjICs9IHN0cmxlbiAocHJlZml4LnByZWZpeCk7 CisrCWhpbnQtPmFpX2ZhbWlseSA9IHByZWZpeC5mYW1pbHk7CisrCWhpbnQtPmFpX3NvY2t0eXBl ID0gcHJlZml4LnNvY2t0eXBlOworKwloaW50LT5haV9wcm90b2NvbAorKwkgID0gaGludC0+YWlf c29ja3R5cGUgPT0gU09DS19ER1JBTSA/IElQUFJPVE9fVURQIDogSVBQUk9UT19UQ1A7CisrCWJy ZWFrOworKyAgICAgIH0KKysKKysgIHJldHVybiBwYXJzZV9jb25uZWN0aW9uX3NwZWNfd2l0aG91 dF9wcmVmaXggKHNwZWMsIGhpbnQpOworK30KK2RpZmYgLS1naXQgYS9nZGIvY29tbW9uL25ldHN0 dWZmLmggYi9nZGIvY29tbW9uL25ldHN0dWZmLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0g L2Rldi9udWxsCisrKysgYi9nZGIvY29tbW9uL25ldHN0dWZmLmgKK0BAIC0wLDAgKzEsNzYgQEAK KysvKiBPcGVyYXRpb25zIG9uIG5ldHdvcmsgc3R1ZmYuCisrICAgQ29weXJpZ2h0IChDKSAyMDE4 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisr CisrI2lmbmRlZiBORVRTVFVGRl9ICisrI2RlZmluZSBORVRTVFVGRl9ICisrCisrI2luY2x1ZGUg PHN0cmluZz4KKysKKysvKiBMaWtlIE5JX01BWEhPU1QvTklfTUFYU0VSViwgYnV0IGVub3VnaCBm b3IgbnVtZXJpYyBmb3Jtcy4gICovCisrI2RlZmluZSBHREJfTklfTUFYX0FERFIgNjQKKysjZGVm aW5lIEdEQl9OSV9NQVhfUE9SVCAxNgorKworKy8qIEhlbHBlciBjbGFzcyB0byBndWFyYW50ZWUg dGhhdCB3ZSBhbHdheXMgY2FsbCAnZnJlZWFkZHJpbmZvJy4gICovCisrCisrY2xhc3Mgc2NvcGVk X2ZyZWVfYWRkcmluZm8KKyt7CisrcHVibGljOgorKyAgLyogRGVmYXVsdCBjb25zdHJ1Y3Rvci4g ICovCisrICBleHBsaWNpdCBzY29wZWRfZnJlZV9hZGRyaW5mbyAoc3RydWN0IGFkZHJpbmZvICph aW5mbykKKysgICAgOiBtX3JlcyAoYWluZm8pCisrICB7CisrICB9CisrCisrICAvKiBEZXN0cnVj dG9yIHJlc3BvbnNpYmxlIGZvciBmcmVlJ2luZyBNX1JFUyBieSBjYWxsaW5nCisrICAgICAnZnJl ZWFkZHJpbmZvJy4gICovCisrICB+c2NvcGVkX2ZyZWVfYWRkcmluZm8gKCk7CisrCisrICBESVNB QkxFX0NPUFlfQU5EX0FTU0lHTiAoc2NvcGVkX2ZyZWVfYWRkcmluZm8pOworKworK3ByaXZhdGU6 CisrICAvKiBUaGUgYWRkcmluZm8gcmVzb3VyY2UuICAqLworKyAgc3RydWN0IGFkZHJpbmZvICpt X3JlczsKKyt9OworKworKy8qIFRoZSBzdHJ1Y3Qgd2UgcmV0dXJuIGFmdGVyIHBhcnNpbmcgdGhl IGNvbm5lY3Rpb24gc3BlYy4gICovCisrCisrc3RydWN0IHBhcnNlZF9jb25uZWN0aW9uX3NwZWMK Kyt7CisrICAvKiBUaGUgaG9zdG5hbWUuICAqLworKyAgc3RkOjpzdHJpbmcgaG9zdF9zdHI7Cisr CisrICAvKiBUaGUgcG9ydCwgaWYgYW55LiAgKi8KKysgIHN0ZDo6c3RyaW5nIHBvcnRfc3RyOwor K307CisrCisrCisrLyogUGFyc2UgU1BFQyAod2hpY2ggaXMgYSBzdHJpbmcgaW4gdGhlIGZvcm0g b2YgIkFERFI6UE9SVCIpIGFuZAorKyAgIHJldHVybiBhICdwYXJzZWRfY29ubmVjdGlvbl9zcGVj JyBzdHJ1Y3R1cmUgd2l0aCB0aGUgcHJvcGVyIGZpZWxkcworKyAgIGZpbGxlZCBpbi4gIEFsc28g YWRqdXN0IEhJTlQgYWNjb3JkaW5nbHkuICAqLworK2V4dGVybiBwYXJzZWRfY29ubmVjdGlvbl9z cGVjCisrICBwYXJzZV9jb25uZWN0aW9uX3NwZWNfd2l0aG91dF9wcmVmaXggKHN0ZDo6c3RyaW5n IHNwZWMsCisrCQkJCQlzdHJ1Y3QgYWRkcmluZm8gKmhpbnQpOworKworKy8qIFBhcnNlIFNQRUMg KHdoaWNoIGlzIGEgc3RyaW5nIGluIHRoZSBmb3JtIG9mCisrICAgIlt0Y3BbNl06fHVkcFs2XTpd QUREUjpQT1JUIikgYW5kIHJldHVybiBhICdwYXJzZWRfY29ubmVjdGlvbl9zcGVjJworKyAgIHN0 cnVjdHVyZSB3aXRoIHRoZSBwcm9wZXIgZmllbGRzIGZpbGxlZCBpbi4gIEFsc28gYWRqdXN0IEhJ TlQKKysgICBhY2NvcmRpbmdseS4gICovCisrZXh0ZXJuIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMg cGFyc2VfY29ubmVjdGlvbl9zcGVjIChjb25zdCBjaGFyICpzcGVjLAorKwkJCQkJCSAgICAgc3Ry dWN0IGFkZHJpbmZvICpoaW50KTsKKysKKysjZW5kaWYgLyogISBORVRTVFVGRl9IICovCitkaWZm IC0tZ2l0IGEvZ2RiL2RvYy9DaGFuZ2VMb2cgYi9nZGIvZG9jL0NoYW5nZUxvZworLS0tIGEvZ2Ri L2RvYy9DaGFuZ2VMb2cKKysrKyBiL2dkYi9kb2MvQ2hhbmdlTG9nCitAQCAtMSwzICsxLDExIEBA CisrMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNv bT4KKysJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKysJ ICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5jb20+CisrCSAgICBUc3V0b211IFNl a2kgIDxzZWtpcmlraUBnbWFpbC5jb20+CisrCisrCSogZ2RiLnRleGluZm8gKFJlbW90ZSBDb25u ZWN0aW9uIENvbW1hbmRzKTogQWRkIGV4cGxhbmF0aW9uCisrCWFib3V0IG5ldyBJUHY2IHN1cHBv cnQuICBBZGQgbmV3IGNvbm5lY3Rpb24gcHJlZml4ZXMuCisrCisgMjAxOC0wNy0wMiAgTWFjaWVq IFcuIFJvenlja2kgIDxtYWNyb0BtaXBzLmNvbT4KKyAKKyAJUFIgdGRlcC84MjgyCitkaWZmIC0t Z2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KKy0tLSBhL2dk Yi9kb2MvZ2RiLnRleGluZm8KKysrKyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KK0BAIC0yMDU0OCwx NiArMjA1NDgsMjcgQEAgSWYgeW91J3JlIHVzaW5nIGEgc2VyaWFsIGxpbmUsIHlvdSBtYXkgd2Fu dCB0byBnaXZlIEB2YWx1ZXtHREJOfSB0aGUKKyBAY29kZXt0YXJnZXR9IGNvbW1hbmQuCisgCisg QGl0ZW0gdGFyZ2V0IHJlbW90ZSBAY29kZXtAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14 IHRhcmdldCByZW1vdGUgQGNvZGV7QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19CisgQGl0ZW14IHRh cmdldCByZW1vdGUgQGNvZGV7dGNwOkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFy Z2V0IHJlbW90ZSBAY29kZXt0Y3A6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRh cmdldCByZW1vdGUgQGNvZGV7dGNwNDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRh cmdldCByZW1vdGUgQGNvZGV7dGNwNjpAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRh cmdldCByZW1vdGUgQGNvZGV7dGNwNjpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKyBAaXRlbXgg dGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXtAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0 ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19 CisgQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwOkB2YXJ7aG9zdH06QHZh cntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt0Y3A6QHZhcntb aG9zdF19OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7 dGNwNDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1v dGUgQGNvZGV7dGNwNjpAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRl bmRlZC1yZW1vdGUgQGNvZGV7dGNwNjpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKyBAY2luZGV4 IEBhY3Jvbnlte1RDUH0gcG9ydCwgQGNvZGV7dGFyZ2V0IHJlbW90ZX0KKyBEZWJ1ZyB1c2luZyBh IEBhY3Jvbnlte1RDUH0gY29ubmVjdGlvbiB0byBAdmFye3BvcnR9IG9uIEB2YXJ7aG9zdH0uCist VGhlIEB2YXJ7aG9zdH0gbWF5IGJlIGVpdGhlciBhIGhvc3QgbmFtZSBvciBhIG51bWVyaWMgQGFj cm9ueW17SVB9CistYWRkcmVzczsgQHZhcntwb3J0fSBtdXN0IGJlIGEgZGVjaW1hbCBudW1iZXIu ICBUaGUgQHZhcntob3N0fSBjb3VsZCBiZQorLXRoZSB0YXJnZXQgbWFjaGluZSBpdHNlbGYsIGlm IGl0IGlzIGRpcmVjdGx5IGNvbm5lY3RlZCB0byB0aGUgbmV0LCBvcgorLWl0IG1pZ2h0IGJlIGEg dGVybWluYWwgc2VydmVyIHdoaWNoIGluIHR1cm4gaGFzIGEgc2VyaWFsIGxpbmUgdG8gdGhlCist dGFyZ2V0LgorK1RoZSBAdmFye2hvc3R9IG1heSBiZSBlaXRoZXIgYSBob3N0IG5hbWUsIGEgbnVt ZXJpYyBAYWNyb255bXtJUHY0fQorK2FkZHJlc3MsIG9yIGEgbnVtZXJpYyBAYWNyb255bXtJUHY2 fSBhZGRyZXNzICh3aXRoIG9yIHdpdGhvdXQgdGhlCisrc3F1YXJlIGJyYWNrZXRzIHRvIHNlcGFy YXRlIHRoZSBhZGRyZXNzIGZyb20gdGhlIHBvcnQpOyBAdmFye3BvcnR9CisrbXVzdCBiZSBhIGRl Y2ltYWwgbnVtYmVyLiAgVGhlIEB2YXJ7aG9zdH0gY291bGQgYmUgdGhlIHRhcmdldCBtYWNoaW5l CisraXRzZWxmLCBpZiBpdCBpcyBkaXJlY3RseSBjb25uZWN0ZWQgdG8gdGhlIG5ldCwgb3IgaXQg bWlnaHQgYmUgYQorK3Rlcm1pbmFsIHNlcnZlciB3aGljaCBpbiB0dXJuIGhhcyBhIHNlcmlhbCBs aW5lIHRvIHRoZSB0YXJnZXQuCisgCisgRm9yIGV4YW1wbGUsIHRvIGNvbm5lY3QgdG8gcG9ydCAy ODI4IG9uIGEgdGVybWluYWwgc2VydmVyIG5hbWVkCisgQGNvZGV7bWFueWZhcm1zfToKK0BAIC0y MDU2Niw2ICsyMDU3NywyOCBAQCBGb3IgZXhhbXBsZSwgdG8gY29ubmVjdCB0byBwb3J0IDI4Mjgg b24gYSB0ZXJtaW5hbCBzZXJ2ZXIgbmFtZWQKKyB0YXJnZXQgcmVtb3RlIG1hbnlmYXJtczoyODI4 CisgQGVuZCBzbWFsbGV4YW1wbGUKKyAKKytUbyBjb25uZWN0IHRvIHBvcnQgMjgyOCBvbiBhIHRl cm1pbmFsIHNlcnZlciB3aG9zZSBhZGRyZXNzIGlzCisrQGNvZGV7MjAwMTowZGI4Ojg1YTM6MDAw MDowMDAwOjhhMmU6MDM3MDo3MzM0fSwgeW91IGNhbiBlaXRoZXIgdXNlIHRoZQorK3NxdWFyZSBi cmFja2V0IHN5bnRheDoKKysKKytAc21hbGxleGFtcGxlCisrdGFyZ2V0IHJlbW90ZSBbMjAwMTow ZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0XToyODI4CisrQGVuZCBzbWFsbGV4YW1w bGUKKysKKytAbm9pbmRlbnQKKytvciBleHBsaWNpdGx5IHNwZWNpZnkgdGhlIEBhY3Jvbnlte0lQ djZ9IHByb3RvY29sOgorKworK0BzbWFsbGV4YW1wbGUKKyt0YXJnZXQgcmVtb3RlIHRjcDY6MjAw MTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0OjI4MjgKKytAZW5kIHNtYWxsZXhh bXBsZQorKworK1RoaXMgbGFzdCBleGFtcGxlIG1heSBiZSBjb25mdXNpbmcgdG8gdGhlIHJlYWRl ciwgYmVjYXVzZSB0aGVyZSBpcyBubworK3Zpc2libGUgc2VwYXJhdGlvbiBiZXR3ZWVuIHRoZSBo b3N0bmFtZSBhbmQgdGhlIHBvcnQgbnVtYmVyLgorK1RoZXJlZm9yZSwgd2UgcmVjb21tZW5kIHRo ZSB1c2VyIHRvIHByb3ZpZGUgQGFjcm9ueW17SVB2Nn0gYWRkcmVzc2VzCisrdXNpbmcgc3F1YXJl IGJyYWNrZXRzIGZvciBjbGFyaXR5LiAgSG93ZXZlciwgaXQgaXMgaW1wb3J0YW50IHRvCisrbWVu dGlvbiB0aGF0IGZvciBAdmFsdWV7R0RCTn0gdGhlcmUgaXMgbm8gYW1iaWd1aXR5OiB0aGUgbnVt YmVyIGFmdGVyCisrdGhlIGxhc3QgY29sb24gaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgcG9ydCBu dW1iZXIuCisrCisgSWYgeW91ciByZW1vdGUgdGFyZ2V0IGlzIGFjdHVhbGx5IHJ1bm5pbmcgb24g dGhlIHNhbWUgbWFjaGluZSBhcyB5b3VyCisgZGVidWdnZXIgc2Vzc2lvbiAoZS5nLkA6IGEgc2lt dWxhdG9yIGZvciB5b3VyIHRhcmdldCBydW5uaW5nIG9uIHRoZQorIHNhbWUgaG9zdCksIHlvdSBj YW4gb21pdCB0aGUgaG9zdG5hbWUuICBGb3IgZXhhbXBsZSwgdG8gY29ubmVjdCB0bworQEAgLTIw NTc5LDcgKzIwNjEyLDE1IEBAIHRhcmdldCByZW1vdGUgOjEyMzQKKyBOb3RlIHRoYXQgdGhlIGNv bG9uIGlzIHN0aWxsIHJlcXVpcmVkIGhlcmUuCisgCisgQGl0ZW0gdGFyZ2V0IHJlbW90ZSBAY29k ZXt1ZHA6QHZhcntob3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rl e3VkcDpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29k ZXt1ZHA0OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29k ZXt1ZHA2OkB2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQt cmVtb3RlIEBjb2Rle3VkcDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisgQGl0ZW14IHRhcmdldCBl eHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwOkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXgg dGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt1ZHA6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19 CisrQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwNDpAdmFye2hvc3R9OkB2 YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwNjpAdmFy e2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7 dWRwNjpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKyBAY2luZGV4IEBhY3Jvbnlte1VEUH0gcG9y dCwgQGNvZGV7dGFyZ2V0IHJlbW90ZX0KKyBEZWJ1ZyB1c2luZyBAYWNyb255bXtVRFB9IHBhY2tl dHMgdG8gQHZhcntwb3J0fSBvbiBAdmFye2hvc3R9LiAgRm9yIGV4YW1wbGUsIHRvCisgY29ubmVj dCB0byBAYWNyb255bXtVRFB9IHBvcnQgMjgyOCBvbiBhIHRlcm1pbmFsIHNlcnZlciBuYW1lZCBA Y29kZXttYW55ZmFybXN9OgorZGlmZiAtLWdpdCBhL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nIGIv Z2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cKKy0tLSBhL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nCisr KysgYi9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZworQEAgLTEsMyArMSwyMiBAQAorKzIwMTgtMDct MTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisrCSAgICBK YW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCSAgICBQYXVsIEZl cnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgorKwkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJp a2lAZ21haWwuY29tPgorKworKwkqIE1ha2VmaWxlLmluIChTRklMRVMpOiBBZGQgJyQoc3JjZGly KS9jb21tb24vbmV0c3R1ZmYuYycuCisrCShPQlMpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5vJy4K KysJKEdEQlJFUExBWV9PQlMpOiBMaWtld2lzZS4KKysJKiBnZGJyZXBsYXkuYzogSW5jbHVkZSAn d3NwaWFwaS5oJyBhbmQgJ25ldHN0dWZmLmgnLgorKwkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQg c3VwcG9ydCBmb3IgSVB2NgorKwljb25uZWN0aW9ucy4KKysJKiByZW1vdGUtdXRpbHMuYzogSW5j bHVkZSAnbmV0c3R1ZmYuaCcsICdmaWxlc3R1ZmYuaCcKKysJYW5kICd3c3BpYXBpLmgnLgorKwko aGFuZGxlX2FjY2VwdF9ldmVudCk6IEFjY2VwdCBjb25uZWN0aW9ucyBmcm9tIElQdjYgc291cmNl cy4KKysJKHJlbW90ZV9wcmVwYXJlKTogSGFuZGxlIElQdjYtc3R5bGUgaG9zdG5hbWVzOyBpbXBs ZW1lbnQKKysJc3VwcG9ydCBmb3IgSVB2NiBjb25uZWN0aW9ucy4KKysJKHJlbW90ZV9vcGVuKTog SW1wbGVtZW50IHN1cHBvcnQgZm9yIHByaW50aW5nIGNvbm5lY3Rpb25zIGZyb20KKysJSVB2NiBz b3VyY2VzLgorKworIDIwMTgtMDctMTEgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+ CisgCisgCVBSIGdkYi8yMzM3NworZGlmZiAtLWdpdCBhL2dkYi9nZGJzZXJ2ZXIvTWFrZWZpbGUu aW4gYi9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCistLS0gYS9nZGIvZ2Ric2VydmVyL01ha2Vm aWxlLmluCisrKysgYi9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCitAQCAtMjExLDYgKzIxMSw3 IEBAIFNGSUxFUyA9IFwKKyAJJChzcmNkaXIpL2NvbW1vbi9qb2ItY29udHJvbC5jIFwKKyAJJChz cmNkaXIpL2NvbW1vbi9nZGJfdGlsZGVfZXhwYW5kLmMgXAorIAkkKHNyY2RpcikvY29tbW9uL2dk Yl92ZWNzLmMgXAorKwkkKHNyY2RpcikvY29tbW9uL25ldHN0dWZmLmMgXAorIAkkKHNyY2Rpcikv Y29tbW9uL25ldy1vcC5jIFwKKyAJJChzcmNkaXIpL2NvbW1vbi9wYXRoc3R1ZmYuYyBcCisgCSQo c3JjZGlyKS9jb21tb24vcHJpbnQtdXRpbHMuYyBcCitAQCAtMjU0LDYgKzI1NSw3IEBAIE9CUyA9 IFwKKyAJY29tbW9uL2Zvcm1hdC5vIFwKKyAJY29tbW9uL2dkYl90aWxkZV9leHBhbmQubyBcCisg CWNvbW1vbi9nZGJfdmVjcy5vIFwKKysJY29tbW9uL25ldHN0dWZmLm8gXAorIAljb21tb24vbmV3 LW9wLm8gXAorIAljb21tb24vcGF0aHN0dWZmLm8gXAorIAljb21tb24vcHJpbnQtdXRpbHMubyBc CitAQCAtMjkwLDYgKzI5Miw3IEBAIEdEQlJFUExBWV9PQlMgPSBcCisgCWNvbW1vbi9jb21tb24t ZXhjZXB0aW9ucy5vIFwKKyAJY29tbW9uL2NvbW1vbi11dGlscy5vIFwKKyAJY29tbW9uL2Vycm9y cy5vIFwKKysJY29tbW9uL25ldHN0dWZmLm8gXAorIAljb21tb24vcHJpbnQtdXRpbHMubyBcCisg CWdkYnJlcGxheS5vIFwKKyAJdXRpbHMubyBcCitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnNlcnZlci9n ZGJyZXBsYXkuYyBiL2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5LmMKKy0tLSBhL2dkYi9nZGJzZXJ2 ZXIvZ2RicmVwbGF5LmMKKysrKyBiL2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5LmMKK0BAIC00Niw4 ICs0NiwxMSBAQAorIAorICNpZiBVU0VfV0lOMzJBUEkKKyAjaW5jbHVkZSA8d2luc29jazIuaD4K KysjaW5jbHVkZSA8d3NwaWFwaS5oPgorICNlbmRpZgorIAorKyNpbmNsdWRlICJuZXRzdHVmZi5o IgorKworICNpZm5kZWYgSEFWRV9TT0NLTEVOX1QKKyB0eXBlZGVmIGludCBzb2NrbGVuX3Q7Cisg I2VuZGlmCitAQCAtMTQyLDU2ICsxNDUsMTA4IEBAIHJlbW90ZV9jbG9zZSAodm9pZCkKKyBzdGF0 aWMgdm9pZAorIHJlbW90ZV9vcGVuIChjaGFyICpuYW1lKQorIHsKKy0gIGlmICghc3RyY2hyIChu YW1lLCAnOicpKQorKyAgY2hhciAqbGFzdF9jb2xvbiA9IHN0cnJjaHIgKG5hbWUsICc6Jyk7Cisr CisrICBpZiAobGFzdF9jb2xvbiA9PSBOVUxMKQorICAgICB7CisgICAgICAgZnByaW50ZiAoc3Rk ZXJyLCAiJXM6IE11c3Qgc3BlY2lmeSB0Y3AgY29ubmVjdGlvbiBhcyBob3N0OmFkZHJcbiIsIG5h bWUpOworICAgICAgIGZmbHVzaCAoc3RkZXJyKTsKKyAgICAgICBleGl0ICgxKTsKKyAgICAgfQor LSAgZWxzZQorLSAgICB7CisrCisgI2lmZGVmIFVTRV9XSU4zMkFQSQorLSAgICAgIHN0YXRpYyBp bnQgd2luc29ja19pbml0aWFsaXplZDsKKysgIHN0YXRpYyBpbnQgd2luc29ja19pbml0aWFsaXpl ZDsKKyAjZW5kaWYKKy0gICAgICBjaGFyICpwb3J0X3N0cjsKKy0gICAgICBpbnQgcG9ydDsKKy0g ICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc29ja2FkZHI7CistICAgICAgc29ja2xlbl90IHRtcDsK Ky0gICAgICBpbnQgdG1wX2Rlc2M7CisrICBjaGFyICpwb3J0X3N0cjsKKysgIGludCB0bXA7Cisr ICBpbnQgdG1wX2Rlc2M7CisrICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKKysgIHN0cnVjdCBhZGRy aW5mbyAqYWluZm87CisgCistICAgICAgcG9ydF9zdHIgPSBzdHJjaHIgKG5hbWUsICc6Jyk7Cisr ICBtZW1zZXQgKCZoaW50LCAwLCBzaXplb2YgKGhpbnQpKTsKKysgIC8qIEFzc3VtZSBubyBwcmVm aXggd2lsbCBiZSBwYXNzZWQsIHRoZXJlZm9yZSB3ZSBzaG91bGQgdXNlCisrICAgICBBRl9VTlNQ RUMuICAqLworKyAgaGludC5haV9mYW1pbHkgPSBBRl9VTlNQRUM7CisrICBoaW50LmFpX3NvY2t0 eXBlID0gU09DS19TVFJFQU07CisrICBoaW50LmFpX3Byb3RvY29sID0gSVBQUk9UT19UQ1A7Cisg CistICAgICAgcG9ydCA9IGF0b2kgKHBvcnRfc3RyICsgMSk7CisrICBwYXJzZWRfY29ubmVjdGlv bl9zcGVjIHBhcnNlZCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAobmFtZSwgJmhpbnQpOworKwor KyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkKKysgICAgZXJyb3IgKF8oIk1pc3Npbmcg cG9ydCBvbiBob3N0bmFtZSAnJXMnIiksIG5hbWUpOworIAorICNpZmRlZiBVU0VfV0lOMzJBUEkK Ky0gICAgICBpZiAoIXdpbnNvY2tfaW5pdGlhbGl6ZWQpCistCXsKKy0JICBXU0FEQVRBIHdzYWQ7 CisrICBpZiAoIXdpbnNvY2tfaW5pdGlhbGl6ZWQpCisrICAgIHsKKysgICAgICBXU0FEQVRBIHdz YWQ7CisgCistCSAgV1NBU3RhcnR1cCAoTUFLRVdPUkQgKDEsIDApLCAmd3NhZCk7CistCSAgd2lu c29ja19pbml0aWFsaXplZCA9IDE7CistCX0KKysgICAgICBXU0FTdGFydHVwIChNQUtFV09SRCAo MSwgMCksICZ3c2FkKTsKKysgICAgICB3aW5zb2NrX2luaXRpYWxpemVkID0gMTsKKysgICAgfQor ICNlbmRpZgorIAorLSAgICAgIHRtcF9kZXNjID0gc29ja2V0IChQRl9JTkVULCBTT0NLX1NUUkVB TSwgMCk7CistICAgICAgaWYgKHRtcF9kZXNjID09IC0xKQorLQlwZXJyb3Jfd2l0aF9uYW1lICgi Q2FuJ3Qgb3BlbiBzb2NrZXQiKTsKKysgIGludCByID0gZ2V0YWRkcmluZm8gKHBhcnNlZC5ob3N0 X3N0ci5jX3N0ciAoKSwgcGFyc2VkLnBvcnRfc3RyLmNfc3RyICgpLAorKwkJICAgICAgICZoaW50 LCAmYWluZm8pOworIAorLSAgICAgIC8qIEFsbG93IHJhcGlkIHJldXNlIG9mIHRoaXMgcG9ydC4g Ki8KKy0gICAgICB0bXAgPSAxOworLSAgICAgIHNldHNvY2tvcHQgKHRtcF9kZXNjLCBTT0xfU09D S0VULCBTT19SRVVTRUFERFIsIChjaGFyICopICZ0bXAsCistCQkgIHNpemVvZiAodG1wKSk7Cisr ICBpZiAociAhPSAwKQorKyAgICB7CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6JXM6IGNh bm5vdCByZXNvbHZlIG5hbWU6ICVzXG4iLAorKwkgICAgICAgcGFyc2VkLmhvc3Rfc3RyLmNfc3Ry ICgpLCBwYXJzZWQucG9ydF9zdHIuY19zdHIgKCksCisrCSAgICAgICBnYWlfc3RyZXJyb3IgKHIp KTsKKysgICAgICBmZmx1c2ggKHN0ZGVycik7CisrICAgICAgZXhpdCAoMSk7CisrICAgIH0KKysK KysgIHNjb3BlZF9mcmVlX2FkZHJpbmZvIGZyZWVfYWluZm8gKGFpbmZvKTsKKysKKysgIHN0cnVj dCBhZGRyaW5mbyAqcDsKKysKKysgIGZvciAocCA9IGFpbmZvOyBwICE9IE5VTEw7IHAgPSBwLT5h aV9uZXh0KQorKyAgICB7CisrICAgICAgdG1wX2Rlc2MgPSBzb2NrZXQgKHAtPmFpX2ZhbWlseSwg cC0+YWlfc29ja3R5cGUsIHAtPmFpX3Byb3RvY29sKTsKKyAKKy0gICAgICBzb2NrYWRkci5zaW5f ZmFtaWx5ID0gUEZfSU5FVDsKKy0gICAgICBzb2NrYWRkci5zaW5fcG9ydCA9IGh0b25zIChwb3J0 KTsKKy0gICAgICBzb2NrYWRkci5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQU5ZOworKyAgICAg IGlmICh0bXBfZGVzYyA+PSAwKQorKwlicmVhazsKKysgICAgfQorKworKyAgaWYgKHAgPT0gTlVM TCkKKysgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbm5vdCBvcGVuIHNvY2tldCIpOworIAorLSAg ICAgIGlmIChiaW5kICh0bXBfZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsIHNp emVvZiAoc29ja2FkZHIpKQorLQkgIHx8IGxpc3RlbiAodG1wX2Rlc2MsIDEpKQorLQlwZXJyb3Jf d2l0aF9uYW1lICgiQ2FuJ3QgYmluZCBhZGRyZXNzIik7CisrICAvKiBBbGxvdyByYXBpZCByZXVz ZSBvZiB0aGlzIHBvcnQuICovCisrICB0bXAgPSAxOworKyAgc2V0c29ja29wdCAodG1wX2Rlc2Ms IFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgKGNoYXIgKikgJnRtcCwKKysJICAgICAgc2l6ZW9m ICh0bXApKTsKKysKKysgIHN3aXRjaCAocC0+YWlfZmFtaWx5KQorKyAgICB7CisrICAgIGNhc2Ug QUZfSU5FVDoKKysgICAgICAoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSBwLT5haV9hZGRyKS0+c2lu X2FkZHIuc19hZGRyID0gSU5BRERSX0FOWTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBBRl9J TkVUNjoKKysgICAgICAoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikgcC0+YWlfYWRkciktPnNpbjZf YWRkciA9IGluNmFkZHJfYW55OworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAg IGZwcmludGYgKHN0ZGVyciwgIkludmFsaWQgJ2FpX2ZhbWlseScgJWRcbiIsIHAtPmFpX2ZhbWls eSk7CisrICAgICAgZXhpdCAoMSk7CisrICAgIH0KKysKKysgIGlmIChiaW5kICh0bXBfZGVzYywg cC0+YWlfYWRkciwgcC0+YWlfYWRkcmxlbikgIT0gMCkKKysgICAgcGVycm9yX3dpdGhfbmFtZSAo IkNhbid0IGJpbmQgYWRkcmVzcyIpOworKworKyAgaWYgKHAtPmFpX3NvY2t0eXBlID09IFNPQ0tf REdSQU0pCisrICAgIHJlbW90ZV9kZXNjID0gdG1wX2Rlc2M7CisrICBlbHNlCisrICAgIHsKKysg ICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2NrYWRkcjsKKysgICAgICBzb2NrbGVuX3Qg c29ja2FkZHJzaXplID0gc2l6ZW9mIChzb2NrYWRkcik7CisrICAgICAgY2hhciBvcmlnX2hvc3Rb R0RCX05JX01BWF9BRERSXSwgb3JpZ19wb3J0W0dEQl9OSV9NQVhfUE9SVF07CisrCisrICAgICAg aWYgKGxpc3RlbiAodG1wX2Rlc2MsIDEpICE9IDApCisrCXBlcnJvcl93aXRoX25hbWUgKCJDYW4n dCBsaXN0ZW4gb24gc29ja2V0Iik7CisrCisrICAgICAgcmVtb3RlX2Rlc2MgPSBhY2NlcHQgKHRt cF9kZXNjLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwKKysJCQkgICAgJnNvY2thZGRy c2l6ZSk7CisgCistICAgICAgdG1wID0gc2l6ZW9mIChzb2NrYWRkcik7CistICAgICAgcmVtb3Rl X2Rlc2MgPSBhY2NlcHQgKHRtcF9kZXNjLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwg JnRtcCk7CisgICAgICAgaWYgKHJlbW90ZV9kZXNjID09IC0xKQorIAlwZXJyb3Jfd2l0aF9uYW1l ICgiQWNjZXB0IGZhaWxlZCIpOworIAorQEAgLTIwNiw2ICsyNjEsMTYgQEAgcmVtb3RlX29wZW4g KGNoYXIgKm5hbWUpCisgICAgICAgc2V0c29ja29wdCAocmVtb3RlX2Rlc2MsIElQUFJPVE9fVENQ LCBUQ1BfTk9ERUxBWSwKKyAJCSAgKGNoYXIgKikgJnRtcCwgc2l6ZW9mICh0bXApKTsKKyAKKysg ICAgICBpZiAoZ2V0bmFtZWluZm8gKChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBzb2Nr YWRkcnNpemUsCisrCQkgICAgICAgb3JpZ19ob3N0LCBzaXplb2YgKG9yaWdfaG9zdCksCisrCQkg ICAgICAgb3JpZ19wb3J0LCBzaXplb2YgKG9yaWdfcG9ydCksCisrCQkgICAgICAgTklfTlVNRVJJ Q0hPU1QgfCBOSV9OVU1FUklDU0VSVikgPT0gMCkKKysJeworKwkgIGZwcmludGYgKHN0ZGVyciwg IlJlbW90ZSBkZWJ1Z2dpbmcgZnJvbSBob3N0ICVzLCBwb3J0ICVzXG4iLAorKwkJICAgb3JpZ19o b3N0LCBvcmlnX3BvcnQpOworKwkgIGZmbHVzaCAoc3RkZXJyKTsKKysJfQorKworICNpZm5kZWYg VVNFX1dJTjMyQVBJCisgICAgICAgY2xvc2UgKHRtcF9kZXNjKTsJCS8qIE5vIGxvbmdlciBuZWVk IHRoaXMgKi8KKyAKK2RpZmYgLS1naXQgYS9nZGIvZ2Ric2VydmVyL3JlbW90ZS11dGlscy5jIGIv Z2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYworLS0tIGEvZ2RiL2dkYnNlcnZlci9yZW1vdGUt dXRpbHMuYworKysrIGIvZ2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYworQEAgLTI2LDYgKzI2 LDggQEAKKyAjaW5jbHVkZSAiZGxsLmgiCisgI2luY2x1ZGUgInJzcC1sb3cuaCIKKyAjaW5jbHVk ZSAiZ2RidGhyZWFkLmgiCisrI2luY2x1ZGUgIm5ldHN0dWZmLmgiCisrI2luY2x1ZGUgImZpbGVz dHVmZi5oIgorICNpbmNsdWRlIDxjdHlwZS5oPgorICNpZiBIQVZFX1NZU19JT0NUTF9ICisgI2lu Y2x1ZGUgPHN5cy9pb2N0bC5oPgorQEAgLTYzLDYgKzY1LDcgQEAKKyAKKyAjaWYgVVNFX1dJTjMy QVBJCisgI2luY2x1ZGUgPHdpbnNvY2syLmg+CisrI2luY2x1ZGUgPHdzcGlhcGkuaD4KKyAjZW5k aWYKKyAKKyAjaWYgX19RTlhfXworQEAgLTE1MSwxOSArMTU0LDE4IEBAIGVuYWJsZV9hc3luY19u b3RpZmljYXRpb24gKGludCBmZCkKKyBzdGF0aWMgaW50CisgaGFuZGxlX2FjY2VwdF9ldmVudCAo aW50IGVyciwgZ2RiX2NsaWVudF9kYXRhIGNsaWVudF9kYXRhKQorIHsKKy0gIHN0cnVjdCBzb2Nr YWRkcl9pbiBzb2NrYWRkcjsKKy0gIHNvY2tsZW5fdCB0bXA7CisrICBzdHJ1Y3Qgc29ja2FkZHJf c3RvcmFnZSBzb2NrYWRkcjsKKysgIHNvY2tsZW5fdCBsZW4gPSBzaXplb2YgKHNvY2thZGRyKTsK KyAKKyAgIGlmIChkZWJ1Z190aHJlYWRzKQorICAgICBkZWJ1Z19wcmludGYgKCJoYW5kbGluZyBw b3NzaWJsZSBhY2NlcHQgZXZlbnRcbiIpOworIAorLSAgdG1wID0gc2l6ZW9mIChzb2NrYWRkcik7 CistICByZW1vdGVfZGVzYyA9IGFjY2VwdCAobGlzdGVuX2Rlc2MsIChzdHJ1Y3Qgc29ja2FkZHIg KikgJnNvY2thZGRyLCAmdG1wKTsKKysgIHJlbW90ZV9kZXNjID0gYWNjZXB0IChsaXN0ZW5fZGVz YywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZsZW4pOworICAgaWYgKHJlbW90ZV9k ZXNjID09IC0xKQorICAgICBwZXJyb3Jfd2l0aF9uYW1lICgiQWNjZXB0IGZhaWxlZCIpOworIAor ICAgLyogRW5hYmxlIFRDUCBrZWVwIGFsaXZlIHByb2Nlc3MuICovCistICB0bXAgPSAxOworKyAg c29ja2xlbl90IHRtcCA9IDE7CisgICBzZXRzb2Nrb3B0IChyZW1vdGVfZGVzYywgU09MX1NPQ0tF VCwgU09fS0VFUEFMSVZFLAorIAkgICAgICAoY2hhciAqKSAmdG1wLCBzaXplb2YgKHRtcCkpOwor IAorQEAgLTE5Miw4ICsxOTQsMTkgQEAgaGFuZGxlX2FjY2VwdF9ldmVudCAoaW50IGVyciwgZ2Ri X2NsaWVudF9kYXRhIGNsaWVudF9kYXRhKQorICAgZGVsZXRlX2ZpbGVfaGFuZGxlciAobGlzdGVu X2Rlc2MpOworIAorICAgLyogQ29udmVydCBJUCBhZGRyZXNzIHRvIHN0cmluZy4gICovCistICBm cHJpbnRmIChzdGRlcnIsICJSZW1vdGUgZGVidWdnaW5nIGZyb20gaG9zdCAlc1xuIiwKKy0JICAg aW5ldF9udG9hIChzb2NrYWRkci5zaW5fYWRkcikpOworKyAgY2hhciBvcmlnX2hvc3RbR0RCX05J X01BWF9BRERSXSwgb3JpZ19wb3J0W0dEQl9OSV9NQVhfUE9SVF07CisrCisrICBpbnQgciA9IGdl dG5hbWVpbmZvICgoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgbGVuLAorKwkJICAgICAg IG9yaWdfaG9zdCwgc2l6ZW9mIChvcmlnX2hvc3QpLAorKwkJICAgICAgIG9yaWdfcG9ydCwgc2l6 ZW9mIChvcmlnX3BvcnQpLAorKwkJICAgICAgIE5JX05VTUVSSUNIT1NUIHwgTklfTlVNRVJJQ1NF UlYpOworKworKyAgaWYgKHIgIT0gMCkKKysgICAgZnByaW50ZiAoc3RkZXJyLCBfKCJDb3VsZCBu b3Qgb2J0YWluIHJlbW90ZSBhZGRyZXNzOiAlc1xuIiksCisrCSAgICAgZ2FpX3N0cmVycm9yIChy KSk7CisrICBlbHNlCisrICAgIGZwcmludGYgKHN0ZGVyciwgXygiUmVtb3RlIGRlYnVnZ2luZyBm cm9tIGhvc3QgJXMsIHBvcnQgJXNcbiIpLAorKwkgICAgIG9yaWdfaG9zdCwgb3JpZ19wb3J0KTsK KyAKKyAgIGVuYWJsZV9hc3luY19ub3RpZmljYXRpb24gKHJlbW90ZV9kZXNjKTsKKyAKK0BAIC0y MjIsMTAgKzIzNSw3IEBAIHJlbW90ZV9wcmVwYXJlIChjb25zdCBjaGFyICpuYW1lKQorICNpZmRl ZiBVU0VfV0lOMzJBUEkKKyAgIHN0YXRpYyBpbnQgd2luc29ja19pbml0aWFsaXplZDsKKyAjZW5k aWYKKy0gIGludCBwb3J0OworLSAgc3RydWN0IHNvY2thZGRyX2luIHNvY2thZGRyOworICAgc29j a2xlbl90IHRtcDsKKy0gIGNoYXIgKnBvcnRfZW5kOworIAorICAgcmVtb3RlX2lzX3N0ZGlvID0g MDsKKyAgIGlmIChzdHJjbXAgKG5hbWUsIFNURElPX0NPTk5FQ1RJT05fTkFNRSkgPT0gMCkKK0BA IC0yMzgsMTcgKzI0OCwyNSBAQCByZW1vdGVfcHJlcGFyZSAoY29uc3QgY2hhciAqbmFtZSkKKyAg ICAgICByZXR1cm47CisgICAgIH0KKyAKKy0gIHBvcnRfc3RyID0gc3RyY2hyIChuYW1lLCAnOicp OworLSAgaWYgKHBvcnRfc3RyID09IE5VTEwpCisrICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKKysg IHN0cnVjdCBhZGRyaW5mbyAqYWluZm87CisrCisrICBtZW1zZXQgKCZoaW50LCAwLCBzaXplb2Yg KGhpbnQpKTsKKysgIC8qIEFzc3VtZSBubyBwcmVmaXggd2lsbCBiZSBwYXNzZWQsIHRoZXJlZm9y ZSB3ZSBzaG91bGQgdXNlCisrICAgICBBRl9VTlNQRUMuICAqLworKyAgaGludC5haV9mYW1pbHkg PSBBRl9VTlNQRUM7CisrICBoaW50LmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07CisrICBoaW50 LmFpX3Byb3RvY29sID0gSVBQUk9UT19UQ1A7CisrCisrICBwYXJzZWRfY29ubmVjdGlvbl9zcGVj IHBhcnNlZAorKyAgICA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlY193aXRob3V0X3ByZWZpeCAobmFt ZSwgJmhpbnQpOworKworKyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkKKyAgICAgewor ICAgICAgIGNzLnRyYW5zcG9ydF9pc19yZWxpYWJsZSA9IDA7CisgICAgICAgcmV0dXJuOworICAg ICB9CisgCistICBwb3J0ID0gc3RydG91bCAocG9ydF9zdHIgKyAxLCAmcG9ydF9lbmQsIDEwKTsK Ky0gIGlmIChwb3J0X3N0clsxXSA9PSAnXDAnIHx8ICpwb3J0X2VuZCAhPSAnXDAnKQorLSAgICBl cnJvciAoIkJhZCBwb3J0IGFyZ3VtZW50OiAlcyIsIG5hbWUpOworLQorICNpZmRlZiBVU0VfV0lO MzJBUEkKKyAgIGlmICghd2luc29ja19pbml0aWFsaXplZCkKKyAgICAgeworQEAgLTI1OSw4ICsy NzcsMjYgQEAgcmVtb3RlX3ByZXBhcmUgKGNvbnN0IGNoYXIgKm5hbWUpCisgICAgIH0KKyAjZW5k aWYKKyAKKy0gIGxpc3Rlbl9kZXNjID0gc29ja2V0IChQRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQ Uk9UT19UQ1ApOworLSAgaWYgKGxpc3Rlbl9kZXNjID09IC0xKQorKyAgaW50IHIgPSBnZXRhZGRy aW5mbyAocGFyc2VkLmhvc3Rfc3RyLmNfc3RyICgpLCBwYXJzZWQucG9ydF9zdHIuY19zdHIgKCks CisrCQkgICAgICAgJmhpbnQsICZhaW5mbyk7CisrCisrICBpZiAociAhPSAwKQorKyAgICBlcnJv ciAoXygiJXM6IGNhbm5vdCByZXNvbHZlIG5hbWU6ICVzIiksIG5hbWUsIGdhaV9zdHJlcnJvciAo cikpOworKworKyAgc2NvcGVkX2ZyZWVfYWRkcmluZm8gZnJlZWFkZHJpbmZvIChhaW5mbyk7Cisr CisrICBzdHJ1Y3QgYWRkcmluZm8gKml0ZXI7CisrCisrICBmb3IgKGl0ZXIgPSBhaW5mbzsgaXRl ciAhPSBOVUxMOyBpdGVyID0gaXRlci0+YWlfbmV4dCkKKysgICAgeworKyAgICAgIGxpc3Rlbl9k ZXNjID0gZ2RiX3NvY2tldF9jbG9leGVjIChpdGVyLT5haV9mYW1pbHksIGl0ZXItPmFpX3NvY2t0 eXBlLAorKwkJCQkJaXRlci0+YWlfcHJvdG9jb2wpOworKworKyAgICAgIGlmIChsaXN0ZW5fZGVz YyA+PSAwKQorKwlicmVhazsKKysgICAgfQorKworKyAgaWYgKGl0ZXIgPT0gTlVMTCkKKyAgICAg cGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IG9wZW4gc29ja2V0Iik7CisgCisgICAvKiBBbGxvdyBy YXBpZCByZXVzZSBvZiB0aGlzIHBvcnQuICovCitAQCAtMjY4LDE0ICszMDQsMjUgQEAgcmVtb3Rl X3ByZXBhcmUgKGNvbnN0IGNoYXIgKm5hbWUpCisgICBzZXRzb2Nrb3B0IChsaXN0ZW5fZGVzYywg U09MX1NPQ0tFVCwgU09fUkVVU0VBRERSLCAoY2hhciAqKSAmdG1wLAorIAkgICAgICBzaXplb2Yg KHRtcCkpOworIAorLSAgc29ja2FkZHIuc2luX2ZhbWlseSA9IFBGX0lORVQ7CistICBzb2NrYWRk ci5zaW5fcG9ydCA9IGh0b25zIChwb3J0KTsKKy0gIHNvY2thZGRyLnNpbl9hZGRyLnNfYWRkciA9 IElOQUREUl9BTlk7CisrICBzd2l0Y2ggKGl0ZXItPmFpX2ZhbWlseSkKKysgICAgeworKyAgICBj YXNlIEFGX0lORVQ6CisrICAgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikgaXRlci0+YWlfYWRk ciktPnNpbl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2UgQUZfSU5FVDY6CisrICAgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopIGl0ZXItPmFpX2Fk ZHIpLT5zaW42X2FkZHIgPSBpbjZhZGRyX2FueTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVs dDoKKysgICAgICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLAorKwkJICAgICAg XygiSW52YWxpZCAnYWlfZmFtaWx5JyAlZFxuIiksIGl0ZXItPmFpX2ZhbWlseSk7CisrICAgIH0K KyAKKy0gIGlmIChiaW5kIChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2Fk ZHIsIHNpemVvZiAoc29ja2FkZHIpKQorLSAgICAgIHx8IGxpc3RlbiAobGlzdGVuX2Rlc2MsIDEp KQorKyAgaWYgKGJpbmQgKGxpc3Rlbl9kZXNjLCBpdGVyLT5haV9hZGRyLCBpdGVyLT5haV9hZGRy bGVuKSAhPSAwKQorICAgICBwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3QgYmluZCBhZGRyZXNzIik7 CisgCisrICBpZiAobGlzdGVuIChsaXN0ZW5fZGVzYywgMSkgIT0gMCkKKysgICAgcGVycm9yX3dp dGhfbmFtZSAoIkNhbid0IGxpc3RlbiBvbiBzb2NrZXQiKTsKKysKKyAgIGNzLnRyYW5zcG9ydF9p c19yZWxpYWJsZSA9IDE7CisgfQorIAorQEAgLTM1MCwxOCArMzk3LDI0IEBAIHJlbW90ZV9vcGVu IChjb25zdCBjaGFyICpuYW1lKQorICNlbmRpZiAvKiBVU0VfV0lOMzJBUEkgKi8KKyAgIGVsc2UK KyAgICAgeworLSAgICAgIGludCBwb3J0OworLSAgICAgIHNvY2tsZW5fdCBsZW47CistICAgICAg c3RydWN0IHNvY2thZGRyX2luIHNvY2thZGRyOworLQorLSAgICAgIGxlbiA9IHNpemVvZiAoc29j a2FkZHIpOworLSAgICAgIGlmIChnZXRzb2NrbmFtZSAobGlzdGVuX2Rlc2MsCistCQkgICAgICAg KHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZsZW4pIDwgMAorLQkgIHx8IGxlbiA8IHNp emVvZiAoc29ja2FkZHIpKQorKyAgICAgIGNoYXIgbGlzdGVuX3BvcnRbR0RCX05JX01BWF9QT1JU XTsKKysgICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2NrYWRkcjsKKysgICAgICBzb2Nr bGVuX3QgbGVuID0gc2l6ZW9mIChzb2NrYWRkcik7CisrCisrICAgICAgaWYgKGdldHNvY2tuYW1l IChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZsZW4pIDwgMCkK KyAJcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGRldGVybWluZSBwb3J0Iik7CistICAgICAgcG9y dCA9IG50b2hzIChzb2NrYWRkci5zaW5fcG9ydCk7CisgCistICAgICAgZnByaW50ZiAoc3RkZXJy LCAiTGlzdGVuaW5nIG9uIHBvcnQgJWRcbiIsIHBvcnQpOworKyAgICAgIGludCByID0gZ2V0bmFt ZWluZm8gKChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBsZW4sCisrCQkJICAgTlVMTCwg MCwKKysJCQkgICBsaXN0ZW5fcG9ydCwgc2l6ZW9mIChsaXN0ZW5fcG9ydCksCisrCQkJICAgTklf TlVNRVJJQ1NFUlYpOworKworKyAgICAgIGlmIChyICE9IDApCisrCWZwcmludGYgKHN0ZGVyciwg XygiQ2FuJ3Qgb2J0YWluIHBvcnQgd2hlcmUgd2UgYXJlIGxpc3RlbmluZzogJXMiKSwKKysJCSBn YWlfc3RyZXJyb3IgKHIpKTsKKysgICAgICBlbHNlCisrCWZwcmludGYgKHN0ZGVyciwgXygiTGlz dGVuaW5nIG9uIHBvcnQgJXNcbiIpLCBsaXN0ZW5fcG9ydCk7CisrCisgICAgICAgZmZsdXNoIChz dGRlcnIpOworIAorICAgICAgIC8qIFJlZ2lzdGVyIHRoZSBldmVudCBsb29wIGhhbmRsZXIuICAq LworZGlmZiAtLWdpdCBhL2dkYi9zZXItdGNwLmMgYi9nZGIvc2VyLXRjcC5jCistLS0gYS9nZGIv c2VyLXRjcC5jCisrKysgYi9nZGIvc2VyLXRjcC5jCitAQCAtMjUsNiArMjUsNyBAQAorICNpbmNs dWRlICJjbGkvY2xpLWRlY29kZS5oIgorICNpbmNsdWRlICJjbGkvY2xpLXNldHNob3cuaCIKKyAj aW5jbHVkZSAiZmlsZXN0dWZmLmgiCisrI2luY2x1ZGUgIm5ldHN0dWZmLmgiCisgCisgI2luY2x1 ZGUgPHN5cy90eXBlcy5oPgorIAorQEAgLTM5LDYgKzQwLDcgQEAKKyAKKyAjaWZkZWYgVVNFX1dJ TjMyQVBJCisgI2luY2x1ZGUgPHdpbnNvY2syLmg+CisrI2luY2x1ZGUgPHdzcGlhcGkuaD4KKyAj aWZuZGVmIEVUSU1FRE9VVAorICNkZWZpbmUgRVRJTUVET1VUIFdTQUVUSU1FRE9VVAorICNlbmRp ZgorQEAgLTgxLDEyICs4MywxMyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHRjcF9yZXRyeV9saW1p dCA9IDE1OworIAorICNkZWZpbmUgUE9MTF9JTlRFUlZBTCA1CisgCistLyogSGVscGVyIGZ1bmN0 aW9uIHRvIHdhaXQgYSB3aGlsZS4gIElmIFNDQiBpcyBub24tbnVsbCwgd2FpdCBvbiBpdHMKKy0g ICBmaWxlIGRlc2NyaXB0b3IuICBPdGhlcndpc2UganVzdCB3YWl0IG9uIGEgdGltZW91dCwgdXBk YXRpbmcgKlBPTExTLgorLSAgIFJldHVybnMgLTEgb24gdGltZW91dCBvciBpbnRlcnJ1cHQsIG90 aGVyd2lzZSB0aGUgdmFsdWUgb2Ygc2VsZWN0LiAgKi8KKysvKiBIZWxwZXIgZnVuY3Rpb24gdG8g d2FpdCBhIHdoaWxlLiAgSWYgU09DSyBpcyBub3QgLTEsIHdhaXQgb24gaXRzCisrICAgZmlsZSBk ZXNjcmlwdG9yLiAgT3RoZXJ3aXNlIGp1c3Qgd2FpdCBvbiBhIHRpbWVvdXQsIHVwZGF0aW5nCisr ICAgKlBPTExTLiAgUmV0dXJucyAtMSBvbiB0aW1lb3V0IG9yIGludGVycnVwdCwgb3RoZXJ3aXNl IHRoZSB2YWx1ZSBvZgorKyAgIHNlbGVjdC4gICovCisgCisgc3RhdGljIGludAorLXdhaXRfZm9y X2Nvbm5lY3QgKHN0cnVjdCBzZXJpYWwgKnNjYiwgdW5zaWduZWQgaW50ICpwb2xscykKKyt3YWl0 X2Zvcl9jb25uZWN0IChpbnQgc29jaywgdW5zaWduZWQgaW50ICpwb2xscykKKyB7CisgICBzdHJ1 Y3QgdGltZXZhbCB0OworICAgaW50IG47CitAQCAtMTIwLDI0ICsxMjMsMjQgQEAgd2FpdF9mb3Jf Y29ubmVjdCAoc3RydWN0IHNlcmlhbCAqc2NiLCB1bnNpZ25lZCBpbnQgKnBvbGxzKQorICAgICAg IHQudHZfdXNlYyA9IDA7CisgICAgIH0KKyAKKy0gIGlmIChzY2IpCisrICBpZiAoc29jayA+PSAw KQorICAgICB7CisgICAgICAgZmRfc2V0IHJzZXQsIHdzZXQsIGVzZXQ7CisgCisgICAgICAgRkRf WkVSTyAoJnJzZXQpOworLSAgICAgIEZEX1NFVCAoc2NiLT5mZCwgJnJzZXQpOworKyAgICAgIEZE X1NFVCAoc29jaywgJnJzZXQpOworICAgICAgIHdzZXQgPSByc2V0OworICAgICAgIGVzZXQgPSBy c2V0OworLQkgIAorKworICAgICAgIC8qIFBPU0lYIHN5c3RlbXMgcmV0dXJuIGNvbm5lY3Rpb24g c3VjY2VzcyBvciBmYWlsdXJlIGJ5IHNpZ25hbGxpbmcKKyAJIHdzZXQuICBXaW5kb3dzIHN5c3Rl bXMgcmV0dXJuIHN1Y2Nlc3MgaW4gd3NldCBhbmQgZmFpbHVyZSBpbgorIAkgZXNldC4KKy0gICAg IAorKworIAkgV2UgbXVzdCBjYWxsIHNlbGVjdCBoZXJlLCByYXRoZXIgdGhhbiBnZGJfc2VsZWN0 LCBiZWNhdXNlCisgCSB0aGUgc2VyaWFsIHN0cnVjdHVyZSBoYXMgbm90IHlldCBiZWVuIGluaXRp YWxpemVkIC0gdGhlCisgCSBNaW5HVyBzZWxlY3Qgd3JhcHBlciB3aWxsIG5vdCBrbm93IHRoYXQg dGhpcyBGRCByZWZlcnMKKyAJIHRvIGEgc29ja2V0LiAgKi8KKy0gICAgICBuID0gc2VsZWN0IChz Y2ItPmZkICsgMSwgJnJzZXQsICZ3c2V0LCAmZXNldCwgJnQpOworKyAgICAgIG4gPSBzZWxlY3Qg KHNvY2sgKyAxLCAmcnNldCwgJndzZXQsICZlc2V0LCAmdCk7CisgICAgIH0KKyAgIGVsc2UKKyAg ICAgLyogVXNlIGdkYl9zZWxlY3QgaGVyZSwgc2luY2Ugd2UgaGF2ZSBubyBmaWxlIGRlc2NyaXB0 b3JzLCBhbmQgb24KK0BAIC0xNTMsODAgKzE1NiwyOCBAQCB3YWl0X2Zvcl9jb25uZWN0IChzdHJ1 Y3Qgc2VyaWFsICpzY2IsIHVuc2lnbmVkIGludCAqcG9sbHMpCisgICByZXR1cm4gbjsKKyB9Cisg CistLyogT3BlbiBhIHRjcCBzb2NrZXQuICAqLworKy8qIFRyeSB0byBjb25uZWN0IHRvIHRoZSBo b3N0IHJlcHJlc2VudGVkIGJ5IEFJTkZPLiAgSWYgdGhlIGNvbm5lY3Rpb24KKysgICBzdWNjZWVk cywgcmV0dXJuIGl0cyBzb2NrZXQuICBPdGhlcndpc2UsIHJldHVybiAtMSBhbmQgc2V0IEVSUk5P CisrICAgYWNjb3JkaW5nbHkuICBQT0xMUyBpcyB1c2VkIHdoZW4gJ2Nvbm5lY3QnIHJldHVybnMg RUlOUFJPR1JFU1MsIGFuZAorKyAgIHdlIG5lZWQgdG8gaW52b2tlICd3YWl0X2Zvcl9jb25uZWN0 JyB0byBvYnRhaW4gdGhlIHN0YXR1cy4gICovCisgCistaW50CistbmV0X29wZW4gKHN0cnVjdCBz ZXJpYWwgKnNjYiwgY29uc3QgY2hhciAqbmFtZSkKKytzdGF0aWMgaW50CisrdHJ5X2Nvbm5lY3Qg KGNvbnN0IHN0cnVjdCBhZGRyaW5mbyAqYWluZm8sIHVuc2lnbmVkIGludCAqcG9sbHMpCisgewor LSAgY2hhciBob3N0bmFtZVsxMDBdOworLSAgY29uc3QgY2hhciAqcG9ydF9zdHI7CistICBpbnQg biwgcG9ydCwgdG1wOworLSAgaW50IHVzZV91ZHA7CistICBzdHJ1Y3QgaG9zdGVudCAqaG9zdGVu dDsKKy0gIHN0cnVjdCBzb2NrYWRkcl9pbiBzb2NrYWRkcjsKKy0jaWZkZWYgVVNFX1dJTjMyQVBJ CistICB1X2xvbmcgaW9hcmc7CistI2Vsc2UKKy0gIGludCBpb2FyZzsKKy0jZW5kaWYKKy0gIHVu c2lnbmVkIGludCBwb2xscyA9IDA7CistCistICB1c2VfdWRwID0gMDsKKy0gIGlmIChzdGFydHN3 aXRoIChuYW1lLCAidWRwOiIpKQorLSAgICB7CistICAgICAgdXNlX3VkcCA9IDE7CistICAgICAg bmFtZSA9IG5hbWUgKyA0OworLSAgICB9CistICBlbHNlIGlmIChzdGFydHN3aXRoIChuYW1lLCAi dGNwOiIpKQorLSAgICBuYW1lID0gbmFtZSArIDQ7CistCistICBwb3J0X3N0ciA9IHN0cmNociAo bmFtZSwgJzonKTsKKy0KKy0gIGlmICghcG9ydF9zdHIpCistICAgIGVycm9yIChfKCJuZXRfb3Bl bjogTm8gY29sb24gaW4gaG9zdCBuYW1lISIpKTsgIC8qIFNob3VsZG4ndCBldmVyCistCQkJCQkJ ICAgICAgIGhhcHBlbi4gICovCistCistICB0bXAgPSBzdGQ6Om1pbiAocG9ydF9zdHIgLSBuYW1l LCAocHRyZGlmZl90KSBzaXplb2YgaG9zdG5hbWUgLSAxKTsKKy0gIHN0cm5jcHkgKGhvc3RuYW1l LCBuYW1lLCB0bXApOwkvKiBEb24ndCB3YW50IGNvbG9uLiAgKi8KKy0gIGhvc3RuYW1lW3RtcF0g PSAnXDAwMCc7CS8qIFRpZSBvZmYgaG9zdCBuYW1lLiAgKi8KKy0gIHBvcnQgPSBhdG9pIChwb3J0 X3N0ciArIDEpOworLQorLSAgLyogRGVmYXVsdCBob3N0bmFtZSBpcyBsb2NhbGhvc3QuICAqLwor LSAgaWYgKCFob3N0bmFtZVswXSkKKy0gICAgc3RyY3B5IChob3N0bmFtZSwgImxvY2FsaG9zdCIp OworLQorLSAgaG9zdGVudCA9IGdldGhvc3RieW5hbWUgKGhvc3RuYW1lKTsKKy0gIGlmICghaG9z dGVudCkKKy0gICAgeworLSAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGVyciwgIiVz OiB1bmtub3duIGhvc3RcbiIsIGhvc3RuYW1lKTsKKy0gICAgICBlcnJubyA9IEVOT0VOVDsKKy0g ICAgICByZXR1cm4gLTE7CistICAgIH0KKysgIGludCBzb2NrID0gZ2RiX3NvY2tldF9jbG9leGVj IChhaW5mby0+YWlfZmFtaWx5LCBhaW5mby0+YWlfc29ja3R5cGUsCisrCQkJCSBhaW5mby0+YWlf cHJvdG9jb2wpOworIAorLSAgc29ja2FkZHIuc2luX2ZhbWlseSA9IFBGX0lORVQ7CistICBzb2Nr YWRkci5zaW5fcG9ydCA9IGh0b25zIChwb3J0KTsKKy0gIG1lbWNweSAoJnNvY2thZGRyLnNpbl9h ZGRyLnNfYWRkciwgaG9zdGVudC0+aF9hZGRyLAorLQkgIHNpemVvZiAoc3RydWN0IGluX2FkZHIp KTsKKy0KKy0gcmV0cnk6CistCistICBpZiAodXNlX3VkcCkKKy0gICAgc2NiLT5mZCA9IGdkYl9z b2NrZXRfY2xvZXhlYyAoUEZfSU5FVCwgU09DS19ER1JBTSwgMCk7CistICBlbHNlCistICAgIHNj Yi0+ZmQgPSBnZGJfc29ja2V0X2Nsb2V4ZWMgKFBGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKKy0K Ky0gIGlmIChzY2ItPmZkID09IC0xKQorKyAgaWYgKHNvY2sgPCAwKQorICAgICByZXR1cm4gLTE7 CistICAKKysKKyAgIC8qIFNldCBzb2NrZXQgbm9uYmxvY2tpbmcuICAqLworLSAgaW9hcmcgPSAx OworLSAgaW9jdGwgKHNjYi0+ZmQsIEZJT05CSU8sICZpb2FyZyk7CisrICBpbnQgaW9hcmcgPSAx OworKworKyAgaW9jdGwgKHNvY2ssIEZJT05CSU8sICZpb2FyZyk7CisgCisgICAvKiBVc2UgTm9u LWJsb2NraW5nIGNvbm5lY3QuICBjb25uZWN0KCkgd2lsbCByZXR1cm4gMCBpZiBjb25uZWN0ZWQK KyAgICAgIGFscmVhZHkuICAqLworLSAgbiA9IGNvbm5lY3QgKHNjYi0+ZmQsIChzdHJ1Y3Qgc29j a2FkZHIgKikgJnNvY2thZGRyLCBzaXplb2YgKHNvY2thZGRyKSk7CistCistICBpZiAobiA8IDAp CisrICBpZiAoY29ubmVjdCAoc29jaywgYWluZm8tPmFpX2FkZHIsIGFpbmZvLT5haV9hZGRybGVu KSA8IDApCisgICAgIHsKKyAjaWZkZWYgVVNFX1dJTjMyQVBJCisgICAgICAgaW50IGVyciA9IFdT QUdldExhc3RFcnJvcigpOworQEAgLTIzNCwyMSArMTg1LDI2IEBAIG5ldF9vcGVuIChzdHJ1Y3Qg c2VyaWFsICpzY2IsIGNvbnN0IGNoYXIgKm5hbWUpCisgICAgICAgaW50IGVyciA9IGVycm5vOwor ICNlbmRpZgorIAorLSAgICAgIC8qIE1heWJlIHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSByZW1vdGUg dGFyZ2V0IHRvIGJlY29tZSByZWFkeSB0bworLQkgYWNjZXB0IGNvbm5lY3Rpb25zLiAgKi8KKy0g ICAgICBpZiAodGNwX2F1dG9fcmV0cnkKKysgICAgICAvKiBJZiB3ZSd2ZSBnb3QgYSAiY29ubmVj dGlvbiByZWZ1c2VkIiBlcnJvciwganVzdCByZXR1cm4KKysJIC0xLiAgVGhlIGNhbGxlciB3aWxs IGtub3cgd2hhdCB0byBkby4gICovCisrICAgICAgaWYgKAorICNpZmRlZiBVU0VfV0lOMzJBUEkK Ky0JICAmJiBlcnIgPT0gV1NBRUNPTk5SRUZVU0VECisrCSAgZXJyID09IFdTQUVDT05OUkVGVVNF RAorICNlbHNlCistCSAgJiYgZXJyID09IEVDT05OUkVGVVNFRAorKwkgIGVyciA9PSBFQ09OTlJF RlVTRUQKKyAjZW5kaWYKKy0JICAmJiB3YWl0X2Zvcl9jb25uZWN0IChOVUxMLCAmcG9sbHMpID49 IDApCisrCSAgKQorIAl7CistCSAgY2xvc2UgKHNjYi0+ZmQpOworLQkgIGdvdG8gcmV0cnk7Cisr CSAgY2xvc2UgKHNvY2spOworKwkgIGVycm5vID0gZXJyOworKwkgIHJldHVybiAtMTsKKyAJfQor IAorICAgICAgIGlmICgKKysJICAvKiBBbnkgb3RoZXIgZXJyb3IgKGV4Y2VwdCBFSU5QUk9HUkVT Uykgd2lsbCBiZSAic3dhbGxvd2VkIgorKwkgICAgIGhlcmUuICBXZSByZXR1cm4gd2l0aG91dCBz cGVjaWZ5aW5nIGEgcmV0dXJuIHZhbHVlLCBhbmQKKysJICAgICBzZXQgZXJybm8gaWYgdGhlIGNh bGxlciB3YW50cyB0byBpbnNwZWN0IHdoYXQKKysJICAgICBoYXBwZW5lZC4gICovCisgI2lmZGVm IFVTRV9XSU4zMkFQSQorIAkgIC8qIFVuZGVyIFdpbmRvd3MsIGNhbGxpbmcgImNvbm5lY3QiIHdp dGggYSBub24tYmxvY2tpbmcgc29ja2V0CisgCSAgICAgcmVzdWx0cyBpbiBXU0FFV09VTERCTE9D Sywgbm90IFdTQUVJTlBST0dSRVNTLiAgKi8KK0BAIC0yNTgsNjYgKzIxNCwxNjYgQEAgbmV0X29w ZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwgY29uc3QgY2hhciAqbmFtZSkKKyAjZW5kaWYKKyAJICAp CisgCXsKKysJICBjbG9zZSAoc29jayk7CisgCSAgZXJybm8gPSBlcnI7CistCSAgbmV0X2Nsb3Nl IChzY2IpOworIAkgIHJldHVybiAtMTsKKyAJfQorIAorICAgICAgIC8qIExvb2tzIGxpa2Ugd2Ug bmVlZCB0byB3YWl0IGZvciB0aGUgY29ubmVjdC4gICovCistICAgICAgZG8gCistCXsKKy0JICBu ID0gd2FpdF9mb3JfY29ubmVjdCAoc2NiLCAmcG9sbHMpOworLQl9IAorKyAgICAgIGludCBuOwor KworKyAgICAgIGRvCisrCW4gPSB3YWl0X2Zvcl9jb25uZWN0IChzb2NrLCBwb2xscyk7CisgICAg ICAgd2hpbGUgKG4gPT0gMCk7CisrCisgICAgICAgaWYgKG4gPCAwKQorIAl7CistCSAgbmV0X2Ns b3NlIChzY2IpOworKwkgIGludCBzYXZlZF9lcnJubyA9IGVycm5vOworKworKwkgIC8qIEEgbmVn YXRpdmUgdmFsdWUgaGVyZSBtZWFucyB0aGF0IHdlIGVpdGhlciB0aW1lZCBvdXQgb3IKKysJICAg ICBnb3QgaW50ZXJydXB0ZWQgYnkgdGhlIHVzZXIuICBKdXN0IHJldHVybi4gICovCisrCSAgY2xv c2UgKHNvY2spOworKwkgIGVycm5vID0gc2F2ZWRfZXJybm87CisgCSAgcmV0dXJuIC0xOworIAl9 CisgICAgIH0KKyAKKyAgIC8qIEdvdCBzb21ldGhpbmcuICBJcyBpdCBhbiBlcnJvcj8gICovCist ICB7CistICAgIGludCByZXMsIGVycjsKKy0gICAgc29ja2xlbl90IGxlbjsKKy0KKy0gICAgbGVu ID0gc2l6ZW9mIChlcnIpOworLSAgICAvKiBPbiBXaW5kb3dzLCB0aGUgZm91cnRoIHBhcmFtZXRl ciB0byBnZXRzb2Nrb3B0IGlzIGEgImNoYXIgKiI7CistICAgICAgIG9uIFVOSVggc3lzdGVtcyBp dCBpcyBnZW5lcmFsbHkgInZvaWQgKiIuICBUaGUgY2FzdCB0byAiY2hhciAqIgorLSAgICAgICBp cyBPSyBldmVyeXdoZXJlLCBzaW5jZSBpbiBDKysgYW55IGRhdGEgcG9pbnRlciB0eXBlIGNhbiBi ZQorLSAgICAgICBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byAidm9pZCAqIi4gICovCistICAgIHJl cyA9IGdldHNvY2tvcHQgKHNjYi0+ZmQsIFNPTF9TT0NLRVQsIFNPX0VSUk9SLCAoY2hhciAqKSAm ZXJyLCAmbGVuKTsKKy0gICAgaWYgKHJlcyA8IDAgfHwgZXJyKQorLSAgICAgIHsKKy0JLyogTWF5 YmUgdGhlIHRhcmdldCBzdGlsbCBpc24ndCByZWFkeSB0byBhY2NlcHQgdGhlIGNvbm5lY3Rpb24u ICAqLworLQlpZiAodGNwX2F1dG9fcmV0cnkKKysgIGludCBlcnI7CisrICBzb2NrbGVuX3QgbGVu ID0gc2l6ZW9mIChlcnIpOworKworKyAgLyogT24gV2luZG93cywgdGhlIGZvdXJ0aCBwYXJhbWV0 ZXIgdG8gZ2V0c29ja29wdCBpcyBhICJjaGFyICoiOworKyAgICAgb24gVU5JWCBzeXN0ZW1zIGl0 IGlzIGdlbmVyYWxseSAidm9pZCAqIi4gIFRoZSBjYXN0IHRvICJjaGFyICoiCisrICAgICBpcyBP SyBldmVyeXdoZXJlLCBzaW5jZSBpbiBDKysgYW55IGRhdGEgcG9pbnRlciB0eXBlIGNhbiBiZQor KyAgICAgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gInZvaWQgKiIuICAqLworKyAgaW50IHJldCA9 IGdldHNvY2tvcHQgKHNvY2ssIFNPTF9TT0NLRVQsIFNPX0VSUk9SLCAoY2hhciAqKSAmZXJyLCAm bGVuKTsKKysKKysgIGlmIChyZXQgPCAwKQorKyAgICB7CisrICAgICAgaW50IHNhdmVkX2Vycm5v ID0gZXJybm87CisrCisrICAgICAgY2xvc2UgKHNvY2spOworKyAgICAgIGVycm5vID0gc2F2ZWRf ZXJybm87CisrICAgICAgcmV0dXJuIC0xOworKyAgICB9CisrICBlbHNlIGlmIChyZXQgPT0gMCAm JiBlcnIgIT0gMCkKKysgICAgeworKyAgICAgIGNsb3NlIChzb2NrKTsKKysgICAgICBlcnJubyA9 IGVycjsKKysgICAgICByZXR1cm4gLTE7CisrICAgIH0KKysKKysgIC8qIFRoZSBjb25uZWN0aW9u IHN1Y2NlZWRlZC4gIFJldHVybiB0aGUgc29ja2V0LiAgKi8KKysgIHJldHVybiBzb2NrOworK30K KysKKysvKiBPcGVuIGEgdGNwIHNvY2tldC4gICovCisrCisraW50CisrbmV0X29wZW4gKHN0cnVj dCBzZXJpYWwgKnNjYiwgY29uc3QgY2hhciAqbmFtZSkKKyt7CisrICBzdHJ1Y3QgYWRkcmluZm8g aGludDsKKysgIHN0cnVjdCBhZGRyaW5mbyAqYWluZm87CisrCisrICBtZW1zZXQgKCZoaW50LCAw LCBzaXplb2YgKGhpbnQpKTsKKysgIC8qIEFzc3VtZSBubyBwcmVmaXggd2lsbCBiZSBwYXNzZWQs IHRoZXJlZm9yZSB3ZSBzaG91bGQgdXNlCisrICAgICBBRl9VTlNQRUMuICAqLworKyAgaGludC5h aV9mYW1pbHkgPSBBRl9VTlNQRUM7CisrICBoaW50LmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07 CisrICBoaW50LmFpX3Byb3RvY29sID0gSVBQUk9UT19UQ1A7CisrCisrICBwYXJzZWRfY29ubmVj dGlvbl9zcGVjIHBhcnNlZCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAobmFtZSwgJmhpbnQpOwor KworKyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkKKysgICAgZXJyb3IgKF8oIk1pc3Np bmcgcG9ydCBvbiBob3N0bmFtZSAnJXMnIiksIG5hbWUpOworKworKyAgaW50IHIgPSBnZXRhZGRy aW5mbyAocGFyc2VkLmhvc3Rfc3RyLmNfc3RyICgpLAorKwkJICAgICAgIHBhcnNlZC5wb3J0X3N0 ci5jX3N0ciAoKSwKKysJCSAgICAgICAmaGludCwgJmFpbmZvKTsKKysKKysgIGlmIChyICE9IDAp CisrICAgIHsKKysgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRlcnIsIF8oIiVzOiBj YW5ub3QgcmVzb2x2ZSBuYW1lOiAlc1xuIiksCisrCQkJICBuYW1lLCBnYWlfc3RyZXJyb3IgKHIp KTsKKysgICAgICBlcnJubyA9IEVOT0VOVDsKKysgICAgICByZXR1cm4gLTE7CisrICAgIH0KKysK KysgIHNjb3BlZF9mcmVlX2FkZHJpbmZvIGZyZWVfYWluZm8gKGFpbmZvKTsKKysKKysgIC8qIEZs YWcgdG8gaW5kaWNhdGUgd2hldGhlciB3ZSd2ZSBnb3QgYSBjb25uZWN0aW9uIHJlZnVzZWQuICBJ dCB3aWxsCisrICAgICBiZSB0cnVlIGlmIGFueSBvZiB0aGUgY29ubmVjdGlvbnMgdHJpZWQgd2Fz IHJlZnVzZWQuICAqLworKyAgYm9vbCBnb3RfY29ubnJlZnVzZWQ7CisrICAvKiBJZiBhIGNvbm5l Y3Rpb24gc3VjY2VlZWRzLCBTVUNDRVNTX0FJTkZPIHdpbGwgcG9pbnQgdG8gdGhlCisrICAgICAn c3RydWN0IGFkZHJpbmZvJyB0aGF0IHN1Y2NlZWQuICAqLworKyAgc3RydWN0IGFkZHJpbmZvICpz dWNjZXNzX2FpbmZvID0gTlVMTDsKKysgIHVuc2lnbmVkIGludCBwb2xscyA9IDA7CisrCisrICAv KiBBc3N1bWUgdGhlIHdvcnN0LiAgKi8KKysgIHNjYi0+ZmQgPSAtMTsKKysKKysgIGRvCisrICAg IHsKKysgICAgICBnb3RfY29ubnJlZnVzZWQgPSBmYWxzZTsKKysKKysgICAgICBmb3IgKHN0cnVj dCBhZGRyaW5mbyAqaXRlciA9IGFpbmZvOyBpdGVyICE9IE5VTEw7IGl0ZXIgPSBpdGVyLT5haV9u ZXh0KQorKwl7CisrCSAgLyogSXRlcmF0ZSBvdmVyIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGFkZHJl c3NlcyB0byBjb25uZWN0CisrCSAgICAgdG8uICBGb3IgZWFjaCwgd2UnbGwgdHJ5IHRvIGNvbm5l Y3QgYW5kIHNlZSBpZiBpdAorKwkgICAgIHN1Y2NlZWRzLiAgKi8KKysJICBpbnQgc29jayA9IHRy eV9jb25uZWN0IChpdGVyLCAmcG9sbHMpOworKworKwkgIGlmIChzb2NrID49IDApCisrCSAgICB7 CisrCSAgICAgIC8qIFdlJ3ZlIGdvdHRlbiBhIHN1Y2Nlc3NmdWwgY29ubmVjdGlvbi4gIFNhdmUg aXRzCisrCQkgJ3N0cnVjdCBhZGRyaW5mbycsIHRoZSBzb2NrZXQsIGFuZCBicmVhay4gICovCisr CSAgICAgIHN1Y2Nlc3NfYWluZm8gPSBpdGVyOworKwkgICAgICBzY2ItPmZkID0gc29jazsKKysJ ICAgICAgYnJlYWs7CisrCSAgICB9CisrCSAgZWxzZSBpZiAoCisgI2lmZGVmIFVTRV9XSU4zMkFQ SQorLQkgICAgJiYgZXJyID09IFdTQUVDT05OUkVGVVNFRAorKwkgIGVycm5vID09IFdTQUVDT05O UkVGVVNFRAorICNlbHNlCistCSAgICAmJiBlcnIgPT0gRUNPTk5SRUZVU0VECisrCSAgZXJybm8g PT0gRUNPTk5SRUZVU0VECisgI2VuZGlmCistCSAgICAmJiB3YWl0X2Zvcl9jb25uZWN0IChOVUxM LCAmcG9sbHMpID49IDApCistCSAgeworLQkgICAgY2xvc2UgKHNjYi0+ZmQpOworLQkgICAgZ290 byByZXRyeTsKKy0JICB9CistCWlmIChlcnIpCistCSAgZXJybm8gPSBlcnI7CistCW5ldF9jbG9z ZSAoc2NiKTsKKy0JcmV0dXJuIC0xOworLSAgICAgIH0KKy0gIH0gCisrCQkgICApCisrCSAgICBn b3RfY29ubnJlZnVzZWQgPSB0cnVlOworKwl9CisrICAgIH0KKysgIC8qIEp1c3QgcmV0cnkgaWY6 CisrCisrICAgICAtIHRjcF9hdXRvX3JldHJ5IGlzIHRydWUsIGFuZAorKyAgICAgLSBXZSBoYXZl bid0IGdvdHRlbiBhIGNvbm5lY3Rpb24geWV0LCBhbmQKKysgICAgIC0gQW55IG9mIG91ciBjb25u ZWN0aW9uIGF0dGVtcHRzIHJldHVybmVkIHdpdGggRUNPTk5SRUZVU0VELCBhbmQKKysgICAgIC0g d2FpdF9mb3JfY29ubmVjdCBzaWduYWxzIHRoYXQgd2UgY2FuIGtlZXAgZ29pbmcuICAqLworKyAg d2hpbGUgKHRjcF9hdXRvX3JldHJ5CisrCSAmJiBzdWNjZXNzX2FpbmZvID09IE5VTEwKKysJICYm IGdvdF9jb25ucmVmdXNlZAorKwkgJiYgd2FpdF9mb3JfY29ubmVjdCAoLTEsICZwb2xscykgPj0g MCk7CisrCisrICBpZiAoc3VjY2Vzc19haW5mbyA9PSBOVUxMKQorKyAgICB7CisrICAgICAgbmV0 X2Nsb3NlIChzY2IpOworKyAgICAgIHJldHVybiAtMTsKKysgICAgfQorIAorICAgLyogVHVybiBv ZmYgbm9uYmxvY2tpbmcuICAqLworLSAgaW9hcmcgPSAwOworKyNpZmRlZiBVU0VfV0lOMzJBUEkK KysgIHVfbG9uZyBpb2FyZyA9IDA7CisrI2Vsc2UKKysgIGludCBpb2FyZyA9IDA7CisrI2VuZGlm CisrCisgICBpb2N0bCAoc2NiLT5mZCwgRklPTkJJTywgJmlvYXJnKTsKKyAKKy0gIGlmICh1c2Vf dWRwID09IDApCisrICBpZiAoc3VjY2Vzc19haW5mby0+YWlfc29ja3R5cGUgPT0gSVBQUk9UT19U Q1ApCisgICAgIHsKKyAgICAgICAvKiBEaXNhYmxlIE5hZ2xlIGFsZ29yaXRobS4gIE5lZWRlZCBp biBzb21lIGNhc2VzLiAgKi8KKy0gICAgICB0bXAgPSAxOworKyAgICAgIGludCB0bXAgPSAxOwor KworICAgICAgIHNldHNvY2tvcHQgKHNjYi0+ZmQsIElQUFJPVE9fVENQLCBUQ1BfTk9ERUxBWSwK Ky0JCSAgKGNoYXIgKikmdG1wLCBzaXplb2YgKHRtcCkpOworKwkJICAoY2hhciAqKSAmdG1wLCBz aXplb2YgKHRtcCkpOworICAgICB9CisgCisgI2lmZGVmIFNJR1BJUEUKK2RpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCistLS0gYS9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKK0BA IC0xLDMgKzEsMjMgQEAKKysyMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJn aW9kakByZWRoYXQuY29tPgorKwkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPgorKwkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KKysJ ICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KKysKKysJKiBSRUFETUUgKFRl c3RzdWl0ZSBQYXJhbWV0ZXJzKTogTWVudGlvbiBuZXcgJ0dEQl9URVNUX1NPQ0tFVEhPU1QnCisr CXBhcmFtZXRlci4KKysJKiBib2FyZHMvbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci5leHA6IERv IG5vdCBzZXQgJ3NvY2tldGhvc3QnCisrCWJ5IGRlZmF1bHQuCisrCSogYm9hcmRzL25hdGl2ZS1n ZGJzZXJ2ZXIuZXhwOiBMaWtld2lzZS4KKysJKiBnZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2Fs LWJpbmFyeS5leHA6IEltcHJvdmUgcmVnZXhwIHVzZWQKKysJZm9yIGRldGVjdGluZyB3aGVuIGEg cmVtb3RlIGRlYnVnZ2luZyBjb25uZWN0aW9uIHN1Y2NlZWRzLgorKwkqIGdkYi5zZXJ2ZXIvc2Vy dmVyLWNvbm5lY3QuZXhwOiBOZXcgZmlsZS4KKysJKiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhw IChnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfY29tbV9wb3J0KToKKysJRG8gbm90IHByZWZpeCB0aGUg cG9ydCBudW1iZXIgd2l0aCAiOiIuCisrCShnZGJzZXJ2ZXJfc3RhcnQpOiBOZXcgZ2xvYmFsIEdE Ql9URVNUX1NPQ0tFVEhPU1QuICBJbXBsZW1lbnQKKysJc3VwcG9ydCBmb3IgZGV0ZWN0aW5nIGFu ZCB1c2luZyBpdC4gIEFkZCAnJGRlYnVnaG9zdF9nZGJzZXJ2ZXInCisrCXRvIHRoZSBsaXN0IG9m IGFyZ3VtZW50cyB1c2VkIHRvIHN0YXJ0IGdkYnNlcnZlci4gIEhhbmRsZSBjYXNlCisrCXdoZW4g Z2Ric2VydmVyIGNhbm5vdCByZXNvbHZlIGEgbmV0d29yayBuYW1lLgorKworIDIwMTgtMDctMTEg IFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisgCisgCVBSIGMr Ky8yMzM3MworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvUkVBRE1FIGIvZ2RiL3Rlc3RzdWl0 ZS9SRUFETUUKKy0tLSBhL2dkYi90ZXN0c3VpdGUvUkVBRE1FCisrKysgYi9nZGIvdGVzdHN1aXRl L1JFQURNRQorQEAgLTI1OSw2ICsyNTksMjAgQEAgVGhpcyBtYWtlIChub3QgcnVudGVzdCkgdmFy aWFibGUgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXRoZXIgdGhlCisgdGVzdHN1aXRlIHByZWxvYWRz IHRoZSByZWFkMS5zbyBsaWJyYXJ5IGludG8gZXhwZWN0LiAgQW55IG5vbi1lbXB0eQorIHZhbHVl IG1lYW5zIHRydWUuICBTZWUgIlJhY2UgZGV0ZWN0aW9uIiBiZWxvdy4KKyAKKytHREJfVEVTVF9T T0NLRVRIT1NUCisrCisrVGhpcyB2YXJpYWJsZSBjYW4gcHJvdmlkZSB0aGUgaG9zdG5hbWUvYWRk cmVzcyB0aGF0IHNob3VsZCBiZSB1c2VkCisrd2hlbiBwZXJmb3JtaW5nIEdEQnNlcnZlci1yZWxh dGVkIHRlc3RzLiAgVGhpcyBpcyB1c2VmdWwgaW4gc29tZQorK3NpdHVhdGlvbnMsIGUuZy4sIHdo ZW4geW91IHdhbnQgdG8gdGVzdCB0aGUgSVB2NiBjb25uZWN0aXZpdHkgb2YgR0RCCisrYW5kIEdE QnNlcnZlciwgb3Igd2hlbiB1c2luZyBhIGRpZmZlcmVudCBob3N0bmFtZS9hZGRyZXNzIGlzIG5l ZWRlZC4KKytGb3IgZXhhbXBsZSwgdG8gbWFrZSBHREIgYW5kIEdEQnNlcnZlciB1c2UgSVB2Ni1v bmx5IGNvbm5lY3Rpb25zLCB5b3UKKytjYW4gZG86CisrCisrCW1ha2UgY2hlY2sgVEVTVFM9Imdk Yi5zZXJ2ZXIvKi5leHAiIFJVTlRFU1RGTEFHUz0nR0RCX1RFU1RfU09DS0VUSE9TVD10Y3A2Ols6 OjFdJworKworK05vdGUgdGhhdCBvbmx5IGEgaG9zdG5hbWUvYWRkcmVzcyBjYW4gYmUgcHJvdmlk ZWQsIHdpdGhvdXQgYSBwb3J0CisrbnVtYmVyLgorKworIFJhY2UgZGV0ZWN0aW9uCisgKioqKioq KioqKioqKioKKyAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZXh0 ZW5kZWQtZ2Ric2VydmVyLmV4cCBiL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1leHRlbmRl ZC1nZGJzZXJ2ZXIuZXhwCistLS0gYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZXh0ZW5k ZWQtZ2Ric2VydmVyLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWV4dGVu ZGVkLWdkYnNlcnZlci5leHAKK0BAIC0yNCw4ICsyNCw2IEBAIGxvYWRfZ2VuZXJpY19jb25maWcg ImV4dGVuZGVkLWdkYnNlcnZlciIKKyBsb2FkX2JvYXJkX2Rlc2NyaXB0aW9uICJnZGJzZXJ2ZXIt YmFzZSIKKyBsb2FkX2JvYXJkX2Rlc2NyaXB0aW9uICJsb2NhbC1ib2FyZCIKKyAKKy1zZXRfYm9h cmRfaW5mbyBzb2NrZXRob3N0ICJsb2NhbGhvc3Q6IgorLQorICMgV2Ugd2lsbCBiZSB1c2luZyB0 aGUgZXh0ZW5kZWQgR0RCIHJlbW90ZSBwcm90b2NvbC4KKyBzZXRfYm9hcmRfaW5mbyBnZGJfcHJv dG9jb2wgImV4dGVuZGVkLXJlbW90ZSIKKyAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2Jv YXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cCBiL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1n ZGJzZXJ2ZXIuZXhwCistLS0gYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZ2Ric2VydmVy LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWdkYnNlcnZlci5leHAKK0BA IC0zMCw3ICszMCw2IEBAIHNldF9ib2FyZF9pbmZvIGdkYixkb19yZWxvYWRfb25fcnVuIDEKKyAj IFRoZXJlJ3Mgbm8gc3VwcG9ydCBmb3IgYXJndW1lbnQtcGFzc2luZyAoeWV0KS4KKyBzZXRfYm9h cmRfaW5mbyBub2FyZ3MgMQorIAorLXNldF9ib2FyZF9pbmZvIHNvY2tldGhvc3QgImxvY2FsaG9z dDoiCisgc2V0X2JvYXJkX2luZm8gdXNlX2dkYl9zdHViIDEKKyBzZXRfYm9hcmRfaW5mbyBleGl0 X2lzX3JlbGlhYmxlIDEKKyAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIv cnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9y dW4td2l0aG91dC1sb2NhbC1iaW5hcnkuZXhwCistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2 ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu c2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHAKK0BAIC01Myw3ICs1Myw3IEBAIHNh dmVfdmFycyB7IEdEQkZMQUdTIH0geworICAgICBzZXQgdXNlX2dkYl9zdHViIDAKKyAKKyAgICAg Z2RiX3Rlc3QgInRhcmdldCAke2dkYnNlcnZlcl9wcm90b2NvbH0gJHtnZGJzZXJ2ZXJfZ2RicG9y dH0iIFwKKy0JIlJlbW90ZSBkZWJ1Z2dpbmcgdXNpbmcgJGdkYnNlcnZlcl9nZGJwb3J0IiBcCisr CSJSZW1vdGUgZGVidWdnaW5nIHVzaW5nIFtzdHJpbmdfdG9fcmVnZXhwICRnZGJzZXJ2ZXJfZ2Ri cG9ydF0iIFwKKyAJImNvbm5lY3QgdG8gZ2Ric2VydmVyIgorIAorICAgICBnZGJfdGVzdCAicnVu IiBcCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3NlcnZlci1jb25uZWN0 LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9zZXJ2ZXItY29ubmVjdC5leHAKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5z ZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwCitAQCAtMCwwICsxLDExMSBAQAorKyMgVGhpcyB0ZXN0 Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysjCisrIyBDb3B5cmlnaHQg MjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjCisrIyBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQor KyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysj IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorKworKyMgVGVzdCBtdWx0aXBsZSB0eXBlcyBvZiBjb25uZWN0aW9uIChJ UHY0LCBJUHY2LCBUQ1AsIFVEUCkgYW5kIG1ha2UKKysjIHN1cmUgYm90aCBnZGJzZXJ2ZXIgYW5k IEdEQiB3b3JrLgorKworK2xvYWRfbGliIGdkYnNlcnZlci1zdXBwb3J0LmV4cAorKworK3N0YW5k YXJkX3Rlc3RmaWxlIG5vcm1hbC5jCisrCisraWYge1tza2lwX2dkYnNlcnZlcl90ZXN0c119IHsK KysgICAgcmV0dXJuIDAKKyt9CisrCisrIyBXZSB3YW50IHRvIGhhdmUgY29udHJvbCBvdmVyIHdo ZXJlIHdlIHN0YXJ0IGdkYnNlcnZlci4KKytpZiB7IFtpc19yZW1vdGUgdGFyZ2V0XSB9IHsKKysg ICAgcmV0dXJuIDAKKyt9CisrCisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRv IHByZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmlsZSBkZWJ1Z10gfSB7CisrICAgIHJldHVybiAtMQor K30KKysKKysjIE1ha2Ugc3VyZSB3ZSdyZSBkaXNjb25uZWN0ZWQsIGluIGNhc2Ugd2UncmUgdGVz dGluZyB3aXRoIGFuCisrIyBleHRlbmRlZC1yZW1vdGUgYm9hcmQsIHRoZXJlZm9yZSBhbHJlYWR5 IGNvbm5lY3RlZC4KKytnZGJfdGVzdCAiZGlzY29ubmVjdCIgIi4qIgorKworK3NldCB0YXJnZXRf ZXhlYyBbZ2Ric2VydmVyX2Rvd25sb2FkX2N1cnJlbnRfcHJvZ10KKysKKysjIEFuIGFycmF5IGNv bnRhaW5pbmcgdGhlIHRlc3QgaW5zdHJ1Y3Rpb25zIGZvciBlYWNoIHNjZW5hcmlvLiAgVGhlCisr IyBkZXNjcmlwdGlvbiBvZiBlYWNoIGZpZWxkIGlzIGFzIGZvbGxvd3M6CisrIworKyMgLSBUaGUg Y29ubmVjdGlvbiBzcGVjaWZpY2F0aW9uIHRvIGJlIHVzZWQgd2hlbiBzdGFydGluZworKyMgICBn ZGJzZXJ2ZXIvR0RCLiAgVGhpcyBzdHJpbmcgd2lsbCBiZSB1c2VkIHRvIHNldCB0aGUKKysjICAg R0RCX1RFU1RfU09DS0VUSE9TVCB3aGVuIGNhbGxpbmcgZ2Ric2VydmVyX3N0YXJ0LgorKyMKKysj IC0gQSBmbGFnIGluZGljYXRpbmcgd2hldGhlciBnZGJzZXJ2ZXIgc2hvdWxkIGZhaWwgd2hlbiB3 ZSBhdHRlbXB0IHRvCisrIyAgIHN0YXJ0IGl0LiAgVXNlZnVsIHdoZW4gdGVzdGluZyBlcnJvbmVv dXMgY29ubmVjdGlvbiBzcGVjcyBzdWNoIGFzCisrIyAgICJ0Y3A4OiIuCisrIworKyMgLSBUaGUg cHJlZml4IHRoYXQgc2hvdWxkIGJlIHByZXBlbmRlZCB0byB0aGUgdGVzdCBtZXNzYWdlcy4KKytz ZXQgdGVzdF9wYXJhbXMgXAorKyAgICB7IFwKKysJICB7ICJ0Y3A0OjEyNy4wLjAuMSIgMCAidGNw NCIgfSBcCisrCSAgeyAidGNwNjo6OjEiICAgICAgIDAgInRjcDYiIH0gXAorKwkgIHsgInRjcDY6 Wzo6MV0iICAgICAwICJ0Y3A2LXdpdGgtYnJhY2tldHMiIH0gXAorKwkgIHsgInRjcDpsb2NhbGhv c3QiICAwICJ0Y3AiIH0gXAorKwkgIHsgInVkcDQ6MTI3LjAuMC4xIiAwICJ1ZHA0IiB9IFwKKysJ ICB7ICJ1ZHA2Ojo6MSIgICAgICAgMCAidWRwNiIgfSBcCisrCSAgeyAidWRwNjpbOjoxXSIgICAg IDAgInVkcDYtd2l0aC1icmFja2V0cyIgfSBcCisrCSAgeyAidGNwODoxMjMiICAgICAgIDEgInRj cDgiIH0gXAorKwkgIHsgInVkcDEyMzo6OiIgICAgICAxICJ1ZHAxMjMiIH0gXAorKwkgIHsgImdh cmJhZ2U6MTIzNCIgICAxICJnYXJiYWdlOjEyMzQiIH0gXAorKyAgICB9CisrCisrIyBUaGUgYmVz dCB3YXkgdG8gdGVzdCBkaWZmZXJlbnQgdHlwZXMgb2YgY29ubmVjdGlvbnMgaXMgdG8gc2V0IHRo ZQorKyMgR0RCX1RFU1RfU09DS0VUSE9TVCB2YXJpYWJsZSBhY2NvcmRpbmdseS4KKytzYXZlX3Zh cnMgeyBHREJfVEVTVF9TT0NLRVRIT1NUIH0geworKyAgICBmb3JlYWNoIGxpbmUgJHRlc3RfcGFy YW1zIHsKKysJc2V0IHNvY2tob3N0IFtsaW5kZXggJGxpbmUgMF0KKysJc2V0IGdkYnNlcnZlcl9z aG91bGRfZmFpbCBbbGluZGV4ICRsaW5lIDFdCisrCXNldCBwcmVmaXggW2xpbmRleCAkbGluZSAy XQorKworKwl3aXRoX3Rlc3RfcHJlZml4ICRwcmVmaXggeworKwkgICAgc2V0IEdEQl9URVNUX1NP Q0tFVEhPU1QgJHNvY2tob3N0CisrCSAgICBzZXQgdGVzdCAic3RhcnQgZ2Ric2VydmVyIgorKwor KwkgICAgIyBUcnkgdG8gc3RhcnQgZ2Ric2VydmVyLgorKwkgICAgc2V0IGNhdGNocmVzIFtjYXRj aCB7c2V0IHJlcyBbZ2Ric2VydmVyX3N0YXJ0ICIiICR0YXJnZXRfZXhlY119IGVycm1zZ10KKysK KysJICAgIGlmIHsgJGNhdGNocmVzICE9IDAgfSB7CisrCQlpZiB7ICRnZGJzZXJ2ZXJfc2hvdWxk X2ZhaWwgfSB7CisrCQkgICAgcGFzcyAiJHRlc3Q6IGdkYnNlcnZlciBmYWlsZWQgYXMgZXhwZWN0 ZWQiCisrCQl9IGVsc2UgeworKwkJICAgIGZhaWwgIiR0ZXN0OiAkZXJybXNnIgorKwkJfQorKwkJ Y29udGludWUKKysJICAgIH0gZWxzZSB7CisrCQlpZiB7ICRnZGJzZXJ2ZXJfc2hvdWxkX2ZhaWwg fSB7CisrCQkgICAgZmFpbCAiJHRlc3Q6IGdkYnNlcnZlciBzaG91bGQgZmFpbCBidXQgZGlkIG5v dCIKKysJCX0gZWxzZSB7CisrCQkgICAgcGFzcyAiJHRlc3QiCisrCQl9CisrCSAgICB9CisrCisr CSAgICBzZXQgZ2Ric2VydmVyX3Byb3RvY29sIFtsaW5kZXggJHJlcyAwXQorKwkgICAgc2V0IGdk YnNlcnZlcl9nZGJwb3J0IFtsaW5kZXggJHJlcyAxXQorKwkgICAgc2V0IHRlc3QgImNvbm5lY3Qg dG8gZ2Ric2VydmVyIHVzaW5nICRzb2NraG9zdCIKKysKKysJICAgIGlmIHsgW2dkYl90YXJnZXRf Y21kICRnZGJzZXJ2ZXJfcHJvdG9jb2wgJGdkYnNlcnZlcl9nZGJwb3J0XSA9PSAwIH0geworKwkJ cGFzcyAkdGVzdAorKwkgICAgfSBlbHNlIHsKKysJCWZhaWwgJHRlc3QKKysJICAgIH0KKysJfQor KyAgICB9CisrfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBw b3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cAorLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCisrKysgYi9nZGIvdGVzdHN1 aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKK0BAIC0yMTEsNyArMjExLDcgQEAgcHJvYyBn ZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfcmVtb3RlX2FkZHJlc3MgeyBob3N0IHBvcnQgfSB7CisgIyBE ZWZhdWx0IHJvdXRpbmUgdG8gY29tcHV0ZSB0aGUgImNvbW0iIGFyZ3VtZW50IGZvciBnZGJzZXJ2 ZXIuCisgCisgcHJvYyBnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfY29tbV9wb3J0IHsgcG9ydCB9IHsK Ky0gICAgcmV0dXJuICI6JHBvcnQiCisrICAgIHJldHVybiAiJHBvcnQiCisgfQorIAorICMgU3Rh cnQgYSBnZGJzZXJ2ZXIgcHJvY2VzcyB3aXRoIGluaXRpYWwgT1BUSU9OUyBhbmQgdHJhaWxpbmcg QVJHVU1FTlRTLgorQEAgLTIyMSw2ICsyMjEsNyBAQCBwcm9jIGdkYnNlcnZlcl9kZWZhdWx0X2dl dF9jb21tX3BvcnQgeyBwb3J0IH0geworIAorIHByb2MgZ2Ric2VydmVyX3N0YXJ0IHsgb3B0aW9u cyBhcmd1bWVudHMgfSB7CisgICAgIGdsb2JhbCBwb3J0bnVtCisrICAgIGdsb2JhbCBHREJfVEVT VF9TT0NLRVRIT1NUCisgCisgICAgICMgUG9ydCBpZCAtLSBlaXRoZXIgc3BlY2lmaWVkIGluIGJh c2Vib2FyZCBmaWxlLCBvciBtYW5hZ2VkIGhlcmUuCisgICAgIGlmIFt0YXJnZXRfaW5mbyBleGlz dHMgZ2RiLHNvY2tldHBvcnRdIHsKK0BAIC0yMzEsMTAgKzIzMiwyMiBAQCBwcm9jIGdkYnNlcnZl cl9zdGFydCB7IG9wdGlvbnMgYXJndW1lbnRzIH0geworICAgICB9CisgCisgICAgICMgRXh0cmFj dCB0aGUgbG9jYWwgYW5kIHJlbW90ZSBob3N0IGlkcyBmcm9tIHRoZSB0YXJnZXQgYm9hcmQgc3Ry dWN0LgorLSAgICBpZiBbdGFyZ2V0X2luZm8gZXhpc3RzIHNvY2tldGhvc3RdIHsKKysgICAgaWYg eyBbaW5mbyBleGlzdHMgR0RCX1RFU1RfU09DS0VUSE9TVF0gfSB7CisrCSMgVGhlIHVzZXIgaXMg bm90IHN1cHBvc2VkIHRvIHByb3ZpZGUgYSBwb3J0IG51bWJlciwganVzdCBhCisrCSMgaG9zdG5h bWUvYWRkcmVzcywgdGhlcmVmb3JlIHdlIGFkZCB0aGUgdHJhaWxpbmcgIjoiIGhlcmUuCisrCXNl dCBkZWJ1Z2hvc3QgIiR7R0RCX1RFU1RfU09DS0VUSE9TVH06IgorKwkjIEVzY2FwZSBvcGVuIGFu ZCBjbG9zZSBzcXVhcmUgYnJhY2tldHMuCisrCXNldCBkZWJ1Z2hvc3RfdG1wIFtzdHJpbmcgbWFw IHsgWyBcXFsgXSBcXF0gfSAkZGVidWdob3N0XQorKwkjIFdlIG5lZWQgYSAiZ2Ric2VydmVyIiB2 ZXJzaW9uIG9mIHRoZSBkZWJ1Z2hvc3QsIHdoaWNoIHdpbGwKKysJIyBoYXZlIHRoZSBwb3NzaWJs ZSBjb25uZWN0aW9uIHByZWZpeCBzdHJpcHBlZC4gIFRoaXMgaXMKKysJIyBiZWNhdXNlIGdkYnNl cnZlciBjdXJyZW50bHkgZG9lc24ndCByZWNvZ25pemUgdGhlIHByZWZpeGVzLgorKwlyZWdzdWIg LWFsbCAiXlwodGNwOnx1ZHA6fHRjcDQ6fHVkcDQ6fHRjcDY6fHVkcDY6XCkiICRkZWJ1Z2hvc3Rf dG1wICIiIGRlYnVnaG9zdF9nZGJzZXJ2ZXIKKysgICAgfSBlbHNlaWYgW3RhcmdldF9pbmZvIGV4 aXN0cyBzb2NrZXRob3N0XSB7CisgCXNldCBkZWJ1Z2hvc3QgW3RhcmdldF9pbmZvIHNvY2tldGhv c3RdCisrCXNldCBkZWJ1Z2hvc3RfZ2Ric2VydmVyICRkZWJ1Z2hvc3QKKyAgICAgfSBlbHNlIHsK KyAJc2V0IGRlYnVnaG9zdCAibG9jYWxob3N0OiIKKysJc2V0IGRlYnVnaG9zdF9nZGJzZXJ2ZXIg JGRlYnVnaG9zdAorICAgICB9CisgCisgICAgICMgU29tZSBib2FyZHMgdXNlIGEgZGlmZmVyZW50 IHZhbHVlIGZvciB0aGUgcG9ydCB0aGF0IGlzIHBhc3NlZCB0bworQEAgLTI3Nyw4ICsyOTAsMTQg QEAgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKKyAJaWYgeyAk b3B0aW9ucyAhPSAiIiB9IHsKKyAJICAgIGFwcGVuZCBnZGJzZXJ2ZXJfY29tbWFuZCAiICRvcHRp b25zIgorIAl9CisrCWlmIHsgJGRlYnVnaG9zdF9nZGJzZXJ2ZXIgIT0gIiIgfSB7CisrCSAgICBh cHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIiAkZGVidWdob3N0X2dkYnNlcnZlciIKKysJfQorIAlp ZiB7ICRwb3J0bnVtICE9ICIiIH0geworLQkgICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICIg WyRnZXRfY29tbV9wb3J0ICRwb3J0bnVtXSIKKysJICAgIGlmIHsgJGRlYnVnaG9zdF9nZGJzZXJ2 ZXIgPT0gIiIgfSB7CisrCQlhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIiAiCisrCSAgICB9Cisr CSAgICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIlskZ2V0X2NvbW1fcG9ydCAkcG9ydG51bV0i CisgCX0KKyAJaWYgeyAkYXJndW1lbnRzICE9ICIiIH0geworIAkgICAgYXBwZW5kIGdkYnNlcnZl cl9jb21tYW5kICIgJGFyZ3VtZW50cyIKK0BAIC0zMDcsNiArMzI2LDkgQEAgcHJvYyBnZGJzZXJ2 ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKKyAJCSAgICBjb250aW51ZQorIAkJfQor IAkgICAgfQorKwkgICAgLXJlICIuKjogY2Fubm90IHJlc29sdmUgbmFtZTogTmFtZSBvciBzZXJ2 aWNlIG5vdCBrbm93blxyXG4iIHsKKysJCWVycm9yICJnZGJzZXJ2ZXIgY2Fubm90IHJlc29sdmUg bmFtZS4iCisrCSAgICB9CisgCSAgICB0aW1lb3V0IHsKKyAJCWVycm9yICJUaW1lb3V0IHdhaXRp bmcgZm9yIGdkYnNlcnZlciByZXNwb25zZS4iCisgCSAgICB9CitkaWZmIC0tZ2l0IGEvZ2RiL3Vu aXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3RzLmMgYi9nZGIvdW5pdHRlc3Rz L3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSAvZGV2L251bGwKKysrKyBiL2dkYi91bml0dGVzdHMvcGFyc2UtY29ubmVjdGlvbi1zcGVj LXNlbGZ0ZXN0cy5jCitAQCAtMCwwICsxLDI0OSBAQAorKy8qIFNlbGYgdGVzdHMgZm9yIHBhcnNp bmcgY29ubmVjdGlvbiBzcGVjcyBmb3IgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorKworKyAgIENv cHlyaWdodCAoQykgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBU aGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlICJkZWZzLmgiCisrI2luY2x1ZGUgInNlbGZ0ZXN0 LmgiCisrI2luY2x1ZGUgImNvbW1vbi9uZXRzdHVmZi5oIgorKyNpbmNsdWRlICJkaWFnbm9zdGlj cy5oIgorKyNpZmRlZiBVU0VfV0lOMzJBUEkKKysjaW5jbHVkZSA8d2luc29jazIuaD4KKysjaW5j bHVkZSA8d3NwaWFwaS5oPgorKyNlbHNlCisrI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKysjaW5j bHVkZSA8YXJwYS9pbmV0Lmg+CisrI2luY2x1ZGUgPG5ldGRiLmg+CisrI2luY2x1ZGUgPHN5cy9z b2NrZXQuaD4KKysjaW5jbHVkZSA8bmV0aW5ldC90Y3AuaD4KKysjZW5kaWYKKysKKytuYW1lc3Bh Y2Ugc2VsZnRlc3RzIHsKKytuYW1lc3BhY2UgcGFyc2VfY29ubmVjdGlvbl9zcGVjX3Rlc3RzIHsK KysKKysvKiBBdXhpbGlhcnkgc3RydWN0IHRoYXQgaG9sZHMgaW5mbyBhYm91dCBhIHNwZWNpZmlj IHRlc3QgZm9yIGEKKysgICBjb25uZWN0aW9uIHNwZWMuICAqLworKworK3N0cnVjdCBwYXJzZV9j b25uX3Rlc3QKKyt7CisrICAvKiBUaGUgY29ubmVjdGlvbiBzcGVjLiAgKi8KKysgIGNvbnN0IGNo YXIgKmNvbm5zcGVjOworKworKyAgLyogRXhwZWN0ZWQgcmVzdWx0IGZyb20gJ3BhcnNlX2Nvbm5l Y3Rpb25fc3BlYycuICAqLworKyAgcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYyBleHBlY3RlZF9yZXN1 bHQ7CisrCisrICAvKiBUcnVlIGlmIHRoaXMgdGVzdCBzaG91bGQgZmFpbCwgZmFsc2Ugb3RoZXJ3 aXNlLiAgSWYgdHJ1ZSwgb25seQorKyAgICAgdGhlIENPTk5TUEVDIGZpZWxkIHNob3VsZCBiZSBj b25zaWRlcmVkIGFzIHZhbGlkLiAgKi8KKysgIGJvb2wgc2hvdWxkX2ZhaWw7CisrCisrICAvKiBU aGUgZXhwZWN0ZWQgQUlfRkFNSUxZIHRvIGJlIGZvdW5kIG9uIHRoZSAnc3RydWN0IGFkZHJpbmZv JworKyAgICAgSElOVC4gICovCisrICBpbnQgZXhwX2FpX2ZhbWlseTsKKysKKysgIC8qIFRoZSBl eHBlY3RlZCBBSV9TT0NLVFlQRSB0byBiZSBmb3VuZCBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycK KysgICAgIEhJTlQuICAqLworKyAgaW50IGV4cF9haV9zb2NrdHlwZTsKKysKKysgIC8qIFRoZSBl eHBlY3RlZCBBSV9QUk9UT0NPTCB0byBiZSBmb3VuZCBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycK KysgICAgIEhJTlQuICAqLworKyAgaW50IGV4cF9haV9wcm90b2NvbDsKKyt9OworKworKy8qIFNv bWUgZGVmaW5lcyB0byBoZWxwIHVzIGZpbGwgYSAnc3RydWN0IHBhcnNlX2Nvbm5fdGVzdCcuICAq LworKworKy8qIEluaXRpYWxpemUgYSBmdWxsIGVudHJ5LiAgKi8KKysjZGVmaW5lIElOSVRfRU5U UlkoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBTSE9VTERfRkFJTCwgRVhQX0FJX0ZBTUlMWSwg XAorKwkJICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJPVE9DT0wpCQkJXAorKyAgeyBBRERS LCB7IEVYUF9IT1NULCBFWFBfUE9SVCB9LCBTSE9VTERfRkFJTCwgRVhQX0FJX0ZBTUlMWSwgXAor KyAgICBFWFBfQUlfU09DS1RZUEUsIEVYUF9BSV9QUk9UT0NPTCB9CisrCisrLyogSW5pdGlhbGl6 ZSBhbiB1bnByZWZpeGVkIGVudHJ5LiAgSW4gdGhpcyBjYXNlLCB3ZSBkb24ndCBleHBlY3QKKysg ICBhbnl0aGluZyBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycgSElOVC4gICovCisrI2RlZmluZSBJ TklUX1VOUFJFRklYRURfRU5UUlkoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCisrICBJTklU X0VOVFJZIChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIGZhbHNlLCAwLCAwLCAwKQorKworKy8q IEluaXRpYWxpemVkIGFuIHVucHJlZml4ZWQgSVB2NiBlbnRyeS4gIEluIHRoaXMgY2FzZSwgd2Ug ZG9uJ3QKKysgICBleHBlY3QgYW55dGhpbmcgb24gdGhlICdzdHJ1Y3QgYWRkcmluZm8nIEhJTlQu ICAqLworKyNkZWZpbmUgSU5JVF9VTlBSRUZJWEVEX0lQVjZfRU5UUlkoQUREUiwgRVhQX0hPU1Qs IEVYUF9QT1JUKSBcCisrICBJTklUX0VOVFJZIChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIGZh bHNlLCBBRl9JTkVUNiwgMCwgMCkKKysKKysvKiBJbml0aWFsaXplIGEgcHJlZml4ZWQgZW50cnku ICAqLworKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9FTlRSWShBRERSLCBFWFBfSE9TVCwgRVhQX1BP UlQsIEVYUF9BSV9GQU1JTFksIFwKKysJCQkgICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJP VE9DT0wpIFwKKysgIElOSVRfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgZmFsc2Us IEVYUF9BSV9GQU1JTFksIFwKKysJICAgICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJPVE9D T0wpCisrCisrLyogSW5pdGlhbGl6ZSBhbiBlbnRyeSBwcmVmaXhlZCB3aXRoICJ0Y3A0OiIuICAq LworKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUChBRERSLCBFWFBfSE9TVCwgRVhQX1BP UlQpIFwKKysgIElOSVRfUFJFRklYRURfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwg QUZfSU5FVCwgU09DS19TVFJFQU0sIFwKKysJCSAgICAgICBJUFBST1RPX1RDUCkKKysKKysvKiBJ bml0aWFsaXplIGFuIGVudHJ5IHByZWZpeGVkIHdpdGggInRjcDY6Ii4gICovCisrI2RlZmluZSBJ TklUX1BSRUZJWEVEX0lQVjZfVENQKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCkgXAorKyAgSU5J VF9QUkVGSVhFRF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBBRl9JTkVUNiwgU09D S19TVFJFQU0sIFwKKysJCSAgICAgICBJUFBST1RPX1RDUCkKKysKKysvKiBJbml0aWFsaXplIGFu IGVudHJ5IHByZWZpeGVkIHdpdGggInVkcDQ6Ii4gICovCisrI2RlZmluZSBJTklUX1BSRUZJWEVE X0lQVjRfVURQKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCkgXAorKyAgSU5JVF9QUkVGSVhFRF9F TlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBBRl9JTkVULCBTT0NLX0RHUkFNLCBcCisr CQkgICAgICAgSVBQUk9UT19VRFApCisrCisrLyogSW5pdGlhbGl6ZSBhbiBlbnRyeSBwcmVmaXhl ZCB3aXRoICJ1ZHA2OiIuICAqLworKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9JUFY2X1VEUChBRERS LCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwKKysgIElOSVRfUFJFRklYRURfRU5UUlkgKEFERFIsIEVY UF9IT1NULCBFWFBfUE9SVCwgQUZfSU5FVDYsIFNPQ0tfREdSQU0sIFwKKysJCSAgICAgICBJUFBS T1RPX1VEUCkKKysKKysvKiBJbml0aWFsaXplIGEgYm9ndXMgZW50cnksIGkuZS4sIGEgY29ubmVj dGlvbiBzcGVjIHRoYXQgc2hvdWxkCisrICAgZmFpbC4gICovCisrI2RlZmluZSBJTklUX0JPR1VT X0VOVFJZKEFERFIpIFwKKysgIElOSVRfRU5UUlkgKEFERFIsICIiLCAiIiwgdHJ1ZSwgMCwgMCwg MCkKKysKKysvKiBUaGUgdmFyaWFibGUgd2hpY2ggaG9sZHMgYWxsIG9mIG91ciB0ZXN0cy4gICov CisrCisrc3RhdGljIGNvbnN0IHBhcnNlX2Nvbm5fdGVzdCBjb25uX3Rlc3RbXSA9CisrICB7Cisr ICAgIC8qIFVucHJlZml4ZWQgYWRkcmVzc2VzLiAgKi8KKysKKysgICAgLyogSVB2NCwgaG9zdCBh bmQgcG9ydCBwcmVzZW50LiAgKi8KKysgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiMTI3LjAu MC4xOjEyMzQiLCAiMTI3LjAuMC4xIiwgIjEyMzQiKSwKKysgICAgLyogSVB2NCwgb25seSBob3N0 LiAgKi8KKysgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiMTI3LjAuMC4xIiwgIjEyNy4wLjAu MSIsICIiKSwKKysgICAgLyogSVB2NCwgbWlzc2luZyBwb3J0LiAgKi8KKysgICAgSU5JVF9VTlBS RUZJWEVEX0VOVFJZICgiMTI3LjAuMC4xOiIsICIxMjcuMC4wLjEiLCAiIiksCisrCisrICAgIC8q IElQdjYsIGhvc3QgYW5kIHBvcnQgcHJlc2VudCwgbm8gYnJhY2tldHMuICAqLworKyAgICBJTklU X1VOUFJFRklYRURfRU5UUlkgKCI6OjE6MTIzNCIsICI6OjEiLCAiMTIzNCIpLAorKyAgICAvKiBJ UHY2LCBtaXNzaW5nIHBvcnQsIG5vIGJyYWNrZXRzLiAgKi8KKysgICAgSU5JVF9VTlBSRUZJWEVE X0VOVFJZICgiOjoxOiIsICI6OjEiLCAiIiksCisrICAgIC8qIElQdjYsIGhvc3QgYW5kIHBvcnQg cHJlc2VudCwgd2l0aCBicmFja2V0cy4gICovCisrICAgIElOSVRfVU5QUkVGSVhFRF9JUFY2X0VO VFJZICgiWzo6MV06MTIzNCIsICI6OjEiLCAiMTIzNCIpLAorKyAgICAvKiBJUHY2LCBvbmx5IGhv c3QsIHdpdGggYnJhY2tldHMuICAqLworKyAgICBJTklUX1VOUFJFRklYRURfSVBWNl9FTlRSWSAo Ils6OjFdIiwgIjo6MSIsICIiKSwKKysgICAgLyogSVB2NiwgbWlzc2luZyBwb3J0LCB3aXRoIGJy YWNrZXRzLiAgKi8KKysgICAgSU5JVF9VTlBSRUZJWEVEX0lQVjZfRU5UUlkgKCJbOjoxXToiLCAi OjoxIiwgIiIpLAorKworKyAgICAvKiBVbnNwZWNpZmllZCwgb25seSBwb3J0LiAgKi8KKysgICAg SU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiOjEyMzQiLCAibG9jYWxob3N0IiwgIjEyMzQiKSwKKysK KysgICAgLyogUHJlZml4ZWQgYWRkcmVzc2VzLiAgKi8KKysKKysgICAgLyogUHJlZml4ZWQgInRj cDQ6IiBJUHY0LCBob3N0IGFuZCBwb3J0IHByZXNlbnRzLiAgKi8KKysgICAgSU5JVF9QUkVGSVhF RF9JUFY0X1RDUCAoInRjcDQ6MTI3LjAuMC4xOjEyMzQiLCAiMTI3LjAuMC4xIiwgIjEyMzQiKSwK KysgICAgLyogUHJlZml4ZWQgInRjcDQ6IiBJUHY0LCBvbmx5IHBvcnQuICAqLworKyAgICBJTklU X1BSRUZJWEVEX0lQVjRfVENQICgidGNwNDo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAor KyAgICAvKiBQcmVmaXhlZCAidGNwNDoiIElQdjQsIG9ubHkgaG9zdC4gICovCisrICAgIElOSVRf UFJFRklYRURfSVBWNF9UQ1AgKCJ0Y3A0OjEyNy4wLjAuMSIsICIxMjcuMC4wLjEiLCAiIiksCisr ICAgIC8qIFByZWZpeGVkICJ0Y3A0OiIgSVB2NCwgbWlzc2luZyBwb3J0LiAgKi8KKysgICAgSU5J VF9QUkVGSVhFRF9JUFY0X1RDUCAoInRjcDQ6MTI3LjAuMC4xOiIsICIxMjcuMC4wLjEiLCAiIiks CisrCisrICAgIC8qIFByZWZpeGVkICJ1ZHA0OiIgSVB2NCwgaG9zdCBhbmQgcG9ydCBwcmVzZW50 LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1VEUCAoInVkcDQ6MTI3LjAuMC4xOjEyMzQi LCAiMTI3LjAuMC4xIiwgIjEyMzQiKSwKKysgICAgLyogUHJlZml4ZWQgInVkcDQ6IiBJUHY0LCBv bmx5IHBvcnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVURQICgidWRwNDo6MTIzNCIs ICJsb2NhbGhvc3QiLCAiMTIzNCIpLAorKyAgICAvKiBQcmVmaXhlZCAidWRwNDoiIElQdjQsIG9u bHkgaG9zdC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNF9VRFAgKCJ1ZHA0OjEyNy4wLjAu MSIsICIxMjcuMC4wLjEiLCAiIiksCisrICAgIC8qIFByZWZpeGVkICJ1ZHA0OiIgSVB2NCwgbWlz c2luZyBwb3J0LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1VEUCAoInVkcDQ6MTI3LjAu MC4xOiIsICIxMjcuMC4wLjEiLCAiIiksCisrCisrCisrICAgIC8qIFByZWZpeGVkICJ0Y3A2OiIg SVB2NiwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY2 X1RDUCAoInRjcDY6OjoxOjEyMzQiLCAiOjoxIiwgIjEyMzQiKSwKKysgICAgLyogUHJlZml4ZWQg InRjcDY6IiBJUHY2LCBvbmx5IHBvcnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQ ICgidGNwNjo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAorKyAgICAvKiBQcmVmaXhlZCAi dGNwNjoiIElQdjYsIG9ubHkgaG9zdC4gICovCisrICAgIC8vSU5JVF9QUkVGSVhFRF9JUFY2X1RD UCAoInRjcDY6OjoxIiwgIjo6MSIsICIiKSwKKysgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2 LCBtaXNzaW5nIHBvcnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNwNjo6 OjE6IiwgIjo6MSIsICIiKSwKKysKKysgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2LCBob3N0 IGFuZCBwb3J0IHByZXNlbnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVURQICgidWRw Njo6OjE6MTIzNCIsICI6OjEiLCAiMTIzNCIpLAorKyAgICAvKiBQcmVmaXhlZCAidWRwNjoiIElQ djYsIG9ubHkgcG9ydC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ojox MjM0IiwgImxvY2FsaG9zdCIsICIxMjM0IiksCisrICAgIC8qIFByZWZpeGVkICJ1ZHA2OiIgSVB2 Niwgb25seSBob3N0LiAgKi8KKysgICAgLy9JTklUX1BSRUZJWEVEX0lQVjZfVURQICgidWRwNjo6 OjEiLCAiOjoxIiwgIiIpLAorKyAgICAvKiBQcmVmaXhlZCAidWRwNjoiIElQdjYsIG1pc3Npbmcg cG9ydC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ojo6MToiLCAiOjox IiwgIiIpLAorKworKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYgd2l0aCBicmFja2V0cywg aG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAo InRjcDY6Wzo6MV06MTIzNCIsICI6OjEiLCAiMTIzNCIpLAorKyAgICAvKiBQcmVmaXhlZCAidGNw NjoiIElQdjYgd2l0aCBicmFja2V0cywgb25seSBob3N0LiAgKi8KKysgICAgSU5JVF9QUkVGSVhF RF9JUFY2X1RDUCAoInRjcDY6Wzo6MV0iLCAiOjoxIiwgIiIpLAorKyAgICAvKiBQcmVmaXhlZCAi dGNwNjoiIElQdjYgd2l0aCBicmFja2V0cywgbWlzc2luZyBwb3J0LiAgKi8KKysgICAgSU5JVF9Q UkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6Wzo6MV06IiwgIjo6MSIsICIiKSwKKysKKysgICAgLyog UHJlZml4ZWQgInVkcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIGhvc3QgYW5kIHBvcnQgcHJlc2Vu dC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ols6OjFdOjEyMzQiLCAi OjoxIiwgIjEyMzQiKSwKKysgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2IHdpdGggYnJhY2tl dHMsIG9ubHkgaG9zdC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ols6 OjFdIiwgIjo6MSIsICIiKSwKKysgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2IHdpdGggYnJh Y2tldHMsIG1pc3NpbmcgcG9ydC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1 ZHA2Ols6OjFdOiIsICI6OjEiLCAiIiksCisrCisrCisrICAgIC8qIEJvZ3VzIGFkZHJlc3Nlcy4g ICovCisrICAgIElOSVRfQk9HVVNfRU5UUlkgKCJ0Y3A2Ols6OjFdMTIzOjQ0IiksCisrICAgIElO SVRfQk9HVVNfRU5UUlkgKCJbOjoxIiksCisrICAgIElOSVRfQk9HVVNfRU5UUlkgKCJ0Y3A2Ojo6 MV06IiksCisrICB9OworKworKy8qIFRlc3QgYSBjb25uZWN0aW9uIHNwZWMgQy4gICovCisrCisr c3RhdGljIHZvaWQKKyt0ZXN0X2Nvbm4gKGNvbnN0IHBhcnNlX2Nvbm5fdGVzdCAmYykKKyt7Cisr ICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKKysgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcmV0Owor KworKyAgbWVtc2V0ICgmaGludCwgMCwgc2l6ZW9mIChoaW50KSk7CisrCisrICBUUlkKKysgICAg eworKyAgICAgIHJldCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAoYy5jb25uc3BlYywgJmhpbnQp OworKyAgICB9CisrICBDQVRDSCAoZXgsIFJFVFVSTl9NQVNLX0VSUk9SKQorKyAgICB7CisrICAg ICAgLyogSWYgd2UgY2F1Z2h0IGFuIGVycm9yLCB3ZSBzaG91bGQgY2hlY2sgaWYgdGhpcyBjb25u ZWN0aW9uCisrCSBzcGVjIHdhcyBzdXBwb3NlZCB0byBmYWlsLiAgKi8KKysgICAgICBTRUxGX0NI RUNLIChjLnNob3VsZF9mYWlsKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysgIEVORF9DQVRD SAorKworKyAgU0VMRl9DSEVDSyAoIWMuc2hvdWxkX2ZhaWwpOworKyAgU0VMRl9DSEVDSyAocmV0 Lmhvc3Rfc3RyID09IGMuZXhwZWN0ZWRfcmVzdWx0Lmhvc3Rfc3RyKTsKKysgIFNFTEZfQ0hFQ0sg KHJldC5wb3J0X3N0ciA9PSBjLmV4cGVjdGVkX3Jlc3VsdC5wb3J0X3N0cik7CisrICBTRUxGX0NI RUNLIChoaW50LmFpX2ZhbWlseSA9PSBjLmV4cF9haV9mYW1pbHkpOworKyAgU0VMRl9DSEVDSyAo aGludC5haV9zb2NrdHlwZSA9PSBjLmV4cF9haV9zb2NrdHlwZSk7CisrICBTRUxGX0NIRUNLICho aW50LmFpX3Byb3RvY29sID09IGMuZXhwX2FpX3Byb3RvY29sKTsKKyt9CisrCisrLyogUnVuIHRo ZSB0ZXN0cyBhc3NvY2lhdGVkIHdpdGggcGFyc2luZyBjb25uZWN0aW9uIHNwZWNzLiAgKi8KKysK KytzdGF0aWMgdm9pZAorK3J1bl90ZXN0cyAoKQorK3sKKysgIGZvciAoY29uc3QgcGFyc2VfY29u bl90ZXN0ICZjIDogY29ubl90ZXN0KQorKyAgICB0ZXN0X2Nvbm4gKGMpOworK30KKyt9IC8qIG5h bWVzcGFjZSBwYXJzZV9jb25uZWN0aW9uX3NwZWNfdGVzdHMgKi8KKyt9IC8qIG5hbWVzcGFjZSBz ZWxmdGVzdHMgKi8KKysKKyt2b2lkCisrX2luaXRpYWxpemVfcGFyc2VfY29ubmVjdGlvbl9zcGVj X3NlbGZ0ZXN0cyAoKQorK3sKKysgIHNlbGZ0ZXN0czo6cmVnaXN0ZXJfdGVzdCAoInBhcnNlX2Nv bm5lY3Rpb25fc3BlYyIsCisrCQkJICAgIHNlbGZ0ZXN0czo6cGFyc2VfY29ubmVjdGlvbl9zcGVj X3Rlc3RzOjpydW5fdGVzdHMpOworK30KCmRpZmYgLS1naXQgYS9nZGItcmhiejg4MTg0OS1pcHY2 LTJvZjIucGF0Y2ggYi9nZGItcmhiejg4MTg0OS1pcHY2LTJvZjIucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM5Yzk2NgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1y aGJ6ODgxODQ5LWlwdjYtMm9mMi5wYXRjaApAQCAtMCwwICsxLDYzIEBACitGcm9tIEZFRE9SQV9Q QVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2VyZ2lvIER1cmlnYW4gSnVu aW9yIDxzZXJnaW9kakByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAxMyBKdWwgMjAxOCAxNjoyMDoz NCAtMDQwMAorU3ViamVjdDogZ2RiLXJoYno4ODE4NDktaXB2Ni0yb2YyLnBhdGNoCisKKzs7IElt cGxlbWVudCBJUHY2IHN1cHBvcnQgZm9yIEdEQi9nZGJzZXJ2ZXIgKFJIIEJaIDg4MTg0OSwgU2Vy Z2lvIER1cmlnYW4gSnVuaW9yKS4KKworRXhwZWN0IGZvciBhbm90aGVyIHZhcmlhbnQgb2YgZXJy b3IgbWVzc2FnZSB3aGVuIGdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBob3N0bmFtZQorCitJJ3Zl IG5vdGljZWQgdGhhdCBvbiBhIGZldyBob3N0cywgd2hlbiBnaXZlbiBhbiBpbnZhbGlkIGhvc3Ru YW1lLAorZ2Ric2VydmVyIGZhaWxzIHdpdGg6CisKKyAgc3Bhd24gLy4uLy4uL2dkYi9nZGJzZXJ2 ZXIvZ2Ric2VydmVyIC0tb25jZSB0Y3A4OjEyMzoyMzUzIC9nZGIvYnVpbGQvZmVkb3JhLXMzOTB4 L2J1aWxkL2dkYi90ZXN0c3VpdGUvb3V0cHV0cy9nZGIuc2VydmVyL3NlcnZlci1jb25uZWN0L3Nl cnZlci1jb25uZWN0CisgIHRjcDg6MTIzOjIzNTM6IGNhbm5vdCByZXNvbHZlIG5hbWU6IE5vIGFk ZHJlc3MgYXNzb2NpYXRlZCB3aXRoIGhvc3RuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisgIEV4aXRp bmcKKworVW5mb3J0dW5hdGVseSwgdGhpcyBjYXVzZXMgYSBmYWlsIG9uIHRoZSBuZXcKK2dkYi5z ZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwIHRlc3QgKGludHJvZHVjZWQgYnkgdGhlIElQdjYgcGF0 Y2gpOgorCisgIEZBSUw6IGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwOiB0Y3A4OiBzdGFy dCBnZGJzZXJ2ZXI6IGdkYnNlcnZlciBzaG91bGQgZmFpbCBidXQgZGlkIG5vdAorCitUaGlzIGhh cHBlbnMgYmVjYXVzZSB3ZSdyZSBleHBlY3RpbmcgZm9yIGFub3RoZXIgdmFyaWFudCBvZiB0aGlz IGVycm9yCittZXNzYWdlOgorCisgIGNhbm5vdCByZXNvbHZlIG5hbWU6IE5hbWUgb3Igc2Vydmlj ZSBub3Qga25vd24KKworVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGV4dGVuZHMgdGhlIGhlbHBlciBm dW5jdGlvbiAnZ2Ric2VydmVyX3N0YXJ0JyB0bworYWxzbyByZWNvZ25pemUgdGhlICJObyBhZGRy ZXNzIGFzc29jaWF0ZWQgd2l0aCBob3N0bmFtZSIgbWVzc2FnZS4KK1RoaXMgImZpeGVzIiB0aGUg dGVzdGNhc2Ugb24gdGhlIGhvc3RzIHRoYXQgdXNlIHRoaXMgdmFyaWFudC4KKworZ2RiL3Rlc3Rz dWl0ZS9DaGFuZ2VMb2c6CisyMDE4LTA3LTEzICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJn aW9kakByZWRoYXQuY29tPgorCisJKiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2 ZXJfc3RhcnQpOiBFeHBlY3QgZm9yIHRoZQorCW1lc3NhZ2UgIk5vIGFkZHJlc3MgYXNzb2NpYXRl ZCB3aXRoIGhvc3RuYW1lIiB3aGVuIGdkYnNlcnZlcgorCWNhbm5vdCByZXNvbHZlIHRoZSBob3N0 bmFtZS4KKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nIGIvZ2RiL3Rlc3Rz dWl0ZS9DaGFuZ2VMb2cKKy0tLSBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCisrKysgYi9nZGIv dGVzdHN1aXRlL0NoYW5nZUxvZworQEAgLTEsMyArMSw5IEBACisrMjAxOC0wNy0xMyAgU2VyZ2lv IER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKysKKysJKiBsaWIvZ2Ric2Vy dmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2ZXJfc3RhcnQpOiBFeHBlY3QgZm9yIHRoZQorKwltZXNz YWdlICJObyBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCBob3N0bmFtZSIgd2hlbiBnZGJzZXJ2ZXIK KysJY2Fubm90IHJlc29sdmUgdGhlIGhvc3RuYW1lLgorKworIDIwMTgtMDctMTEgIFNlcmdpbyBE dXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisgCSAgICBKYW4gS3JhdG9jaHZp bCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisgCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJj ZXJwYXZAZ21haWwuY29tPgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZl ci1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cAor LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCisrKysgYi9nZGIv dGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKK0BAIC0zMjYsNyArMzI2LDcgQEAg cHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKKyAJCSAgICBjb250 aW51ZQorIAkJfQorIAkgICAgfQorLQkgICAgLXJlICIuKjogY2Fubm90IHJlc29sdmUgbmFtZTog TmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93blxyXG4iIHsKKysJICAgIC1yZSAiLio6IGNhbm5vdCBy ZXNvbHZlIG5hbWU6IFwoTm8gYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggaG9zdG5hbWV8TmFtZSBv ciBzZXJ2aWNlIG5vdCBrbm93blwpXHJcbiIgeworIAkJZXJyb3IgImdkYnNlcnZlciBjYW5ub3Qg cmVzb2x2ZSBuYW1lLiIKKyAJICAgIH0KKyAJICAgIHRpbWVvdXQgewoKZGlmZiAtLWdpdCBhL2dk Yi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggNzdhOTljMi4uZmM2ZDMyYiAxMDA2NDQKLS0tIGEvZ2Ri LnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTE4LDcgKzE4LDcgQEAKIE5hbWU6ICV7P3NjbF9wcmVm aXh9Z2RiCiAKICMgRnJlZXplIGl0IHdoZW4gR0RCIGdldHMgYnJhbmNoZWQKLSVnbG9iYWwgc25h cHNyYyAgICAyMDE4MDcwOAorJWdsb2JhbCBzbmFwc3JjICAgIDIwMTgwNzE0CiAjIFNlZSB0aW1l c3RhbXAgb2Ygc291cmNlIGdudWxpYiBpbnN0YWxsZWQgaW50byBnZGIvZ251bGliLyAuCiAlZ2xv YmFsIHNuYXBnbnVsaWIgMjAxNjExMTUKICVnbG9iYWwgdGFybmFtZSBnZGItJXt2ZXJzaW9ufQpA QCAtMjYsNyArMjYsNyBAQCBWZXJzaW9uOiA4LjEuOTAuJXtzbmFwc3JjfQogCiAjIFRoZSByZWxl YXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBh dCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkg cnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDM0 JXs/ZGlzdH0KK1JlbGVhc2U6IDM1JXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrIGFuZCBHUEx2 Mysgd2l0aCBleGNlcHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlvbnMg YW5kIEdQTCsgYW5kIExHUEx2MisgYW5kIExHUEx2MysgYW5kIEJTRCBhbmQgUHVibGljIERvbWFp biBhbmQgR0ZETAogR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwpAQCAtMTAzMCw2ICsxMDMw LDEwIEBAIGZpCiAlZW5kaWYKIAogJWNoYW5nZWxvZworKiBTYXQgSnVsIDE0IDIwMTggU2VyZ2lv IER1cmlnYW4gSnVuaW9yIDxzZXJnaW9kakByZWRoYXQuY29tPiAtIDguMS45MC4yMDE4MDcxNC0z NS5mYzI5CistIFJlYmFzZSB0byBGU0YgR0RCIDguMS45MC4yMDE4MDcxNCAoOC4ycHJlKS4KKy0g QmFja3BvcnQgSVB2NiBwYXRjaCAoUkggQlogODgxODQ5LCBTZXJnaW8gRHVyaWdhbiBKdW5pb3Ip LgorCiAqIEZyaSBKdWwgMTMgMjAxOCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5n QGZlZG9yYXByb2plY3Qub3JnPgogLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qu b3JnL3dpa2kvRmVkb3JhXzI5X01hc3NfUmVidWlsZAogCg==