From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Andrew Burgess To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Back-port upstream commits to fix non-consistent gdb-index creation Date: Thu, 23 Jul 2026 18:35:32 GMT Message-ID: <178483173298.1.7828939175142937581.rpms-gdb-c26c6b70cb66@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: c26c6b70cb66136db7b4cbfb4899fc595889ea85 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogYzI2YzZiNzBjYjY2MTM2ZGI3YjRjYmZiNDg5OWZjNTk1ODg5ZWE4NQog ICAgICAgICAgICBBdXRob3IgOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1cmdlc3NAcmVkaGF0LmNvbT4K ICAgICAgICAgICAgRGF0ZSAgIDogMjAyMy0xMS0yOFQxNToyMDoyNyswMDowMAogICAgICAgICAg ICBTdGF0cyAgOiArOTMyLy0xIGluIDkgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRw czovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9jL2MyNmM2YjcwY2I2NjEzNmRiN2I0 Y2JmYjQ4OTlmYzU5NTg4OWVhODU/YnJhbmNoPWZpeC1kdXAtcGF0Y2gKCiAgICAgICAgICAgIExv ZzoKICAgICAgICAgICAgQmFjay1wb3J0IHVwc3RyZWFtIGNvbW1pdHMgdG8gZml4IG5vbi1jb25z aXN0ZW50IGdkYi1pbmRleCBjcmVhdGlvbgoKQmFja3BvcnQgdXBzdHJlYW0gY29tbWl0cyAxZjBm YWI3ZmY4NiwgYWExOWJjMWQyNTksIGFjYzExN2I1N2Y3LAphZmYyNTAxNDVhZiwgYW5kIDM2NDRm NDFkYzgwLiAgVGhlc2UgY29tbWl0cyByZWR1Y2UgdGhlIHNpemUgb2YgdGhlCmdlbmVyYXRlZCBn ZGItaW5kZXggZmlsZSwgYW5kIGFsc28gZW5zdXJlIHRoYXQgdGhlIGdkYi1pbmRleCBhbmQKZHdh cmYtNSBpbmRleCBhcmUgZ2VuZXJhdGVkIGNvbnNpc3RlbnRseSBldmVuIGFzIHRoZSBudW1iZXIg b2Ygd29ya2VyCnRocmVhZHMgdGhhdCBHREIgdXNlcyBjaGFuZ2VzIChSSEJaIDIyMzIwODYpLgoK VGhlIGZpcnN0IGFuZCB0aGlyZCBvZiB0aGVzZSBwYXRjaGVzIGFyZSByZWZhY3RvcmluZywgYnV0 IGFyZSByZXF1aXJlZApieSB0aGUgb3RoZXIgcGF0Y2hlcyBpbiB0aGlzIHNlcmllcy4KClRoZSBz ZWNvbmQgcGF0Y2ggZml4ZXMgYSBidWcgdGhhdCBjYXVzZXMgdGhlIGdkYi1pbmRleCBmaWxlcyB0 bwpiZSAoc29tZXRpbWVzKSBiaWdnZXIgdGhhbiBuZWVkZWQuCgpUaGUgZm91cnRoIGFuZCBmaWZ0 aCBwYXRjaGVzIGVuc3VyZSB0aGF0IHRoZSBnZGItaW5kZXggYW5kIGR3YXJmLTUKaW5kZXggKHJl c3BlY3RpdmVseSkgYXJlIGdlbmVyYXRlZCB0aGUgc2FtZSAoZm9yIHRoZSBzYW1lIGlucHV0CmJp bmFyeSksIHJlZ2FyZGxlc3Mgb2YgaG93IG1hbnkgd29ya2VyIHRocmVhZHMgdGhhdCBHREIgdXNl cy4KCi0tLQpkaWZmIC0tZ2l0IGEvX2dkYi5zcGVjLlBhdGNoLmluY2x1ZGUgYi9fZ2RiLnNwZWMu UGF0Y2guaW5jbHVkZQppbmRleCBjNWIwNDY4Li5mZTZiNGQxIDEwMDY0NAotLS0gYS9fZ2RiLnNw ZWMuUGF0Y2guaW5jbHVkZQorKysgYi9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZQpAQCAtMjA3LDMg KzIwNywyMyBAQCBQYXRjaDA0NzogZ2RiLXJoYnoyMjMzOTY1LW1lbW9yeS1sZWFrLnBhdGNoCiAj IGdlbmVyYXRpbmcgYSBnZGItaW5kZXggZmlsZSAoUkggQlogMTc3MzY1MSkuCiBQYXRjaDA0ODog Z2RiLXJoYnoxNzczNjUxLWdkYi1pbmRleC1pbnRlcm5hbC1lcnJvci5wYXRjaAogCisjIEJhY2st cG9ydCB1cHN0cmVhbSBjb21taXQgMWYwZmFiN2ZmODYgYXMgcGFydCBvZiBhIGZpeCBmb3IKKyMg bm9uLWRldGVybWluaXN0aWMgZ2RiLWluZGV4IGdlbmVyYXRpb24gKFJIIEJaIDIyMzIwODYpLgor UGF0Y2gwNDk6IGdkYi1yaGJ6MjIzMjA4Ni1yZWZhY3Rvci1zZWxmdGVzdC1zdXBwb3J0LnBhdGNo CisKKyMgQmFjay1wb3J0IHVwc3RyZWFtIGNvbW1pdCBhYTE5YmMxZDI1OSBhcyBwYXJ0IG9mIGEg Zml4IGZvcgorIyBub24tZGV0ZXJtaW5pc3RpYyBnZGItaW5kZXggZ2VuZXJhdGlvbiAoUkggQlog MjIzMjA4NikuCitQYXRjaDA1MDogZ2RiLXJoYnotMjIzMjA4Ni1yZWR1Y2Utc2l6ZS1vZi1nZGIt aW5kZXgucGF0Y2gKKworIyBCYWNrLXBvcnQgdXBzdHJlYW0gY29tbWl0IGFjYzExN2I1N2Y3IGFz IHBhcnQgb2YgYSBmaXggZm9yCisjIG5vbi1kZXRlcm1pbmlzdGljIGdkYi1pbmRleCBnZW5lcmF0 aW9uIChSSCBCWiAyMjMyMDg2KS4KK1BhdGNoMDUxOiBnZGItcmhiei0yMjMyMDg2LWNwcC1pZnkt bWFwcGVkLXN5bXRhYi5wYXRjaAorCisjIEJhY2stcG9ydCB1cHN0cmVhbSBjb21taXQgYWZmMjUw MTQ1YWYgYXMgcGFydCBvZiBhIGZpeCBmb3IKKyMgbm9uLWRldGVybWluaXN0aWMgZ2RiLWluZGV4 IGdlbmVyYXRpb24gKFJIIEJaIDIyMzIwODYpLgorUGF0Y2gwNTI6IGdkYi1yaGJ6LTIyMzIwODYt Z2VuZXJhdGUtZ2RiLWluZGV4LWNvbnNpc3RlbnRseS5wYXRjaAorCisjIEJhY2stcG9ydCB1cHN0 cmVhbSBjb21taXQgMzY0NGY0MWRjODAgYXMgcGFydCBvZiBhIGZpeCBmb3IKKyMgbm9uLWRldGVy bWluaXN0aWMgZ2RiLWluZGV4IGdlbmVyYXRpb24gKFJIIEJaIDIyMzIwODYpLgorUGF0Y2gwNTM6 IGdkYi1yaGJ6LTIyMzIwODYtZ2VuZXJhdGUtZHdhcmYtNS1pbmRleC1jb25zaXN0ZW50bHkucGF0 Y2gKKwoKZGlmZiAtLWdpdCBhL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlIGIvX2dkYi5zcGVjLnBh dGNoLmluY2x1ZGUKaW5kZXggZWY1NWRkMC4uOGVjMTNlOSAxMDA2NDQKLS0tIGEvX2dkYi5zcGVj LnBhdGNoLmluY2x1ZGUKKysrIGIvX2dkYi5zcGVjLnBhdGNoLmluY2x1ZGUKQEAgLTQ2LDMgKzQ2 LDggQEAKICVwYXRjaCAtcDEgLVAwNDYKICVwYXRjaCAtcDEgLVAwNDcKICVwYXRjaCAtcDEgLVAw NDgKKyVwYXRjaCAtcDEgLVAwNDkKKyVwYXRjaCAtcDEgLVAwNTAKKyVwYXRjaCAtcDEgLVAwNTEK KyVwYXRjaCAtcDEgLVAwNTIKKyVwYXRjaCAtcDEgLVAwNTMKCmRpZmYgLS1naXQgYS9fcGF0Y2hf b3JkZXIgYi9fcGF0Y2hfb3JkZXIKaW5kZXggZTVmNWIzNi4uNzEzZjg1MCAxMDA2NDQKLS0tIGEv X3BhdGNoX29yZGVyCisrKyBiL19wYXRjaF9vcmRlcgpAQCAtNDYsMyArNDYsOCBAQCBnZGItYnoy MjM3MzkyLWR3YXJmLW9ic3RhY2stYWxsb2NhdGlvbi5wYXRjaAogZ2RiLXJoYnoyMjMzOTYxLUNW RS0yMDIyLTQ4MDYucGF0Y2gKIGdkYi1yaGJ6MjIzMzk2NS1tZW1vcnktbGVhay5wYXRjaAogZ2Ri LXJoYnoxNzczNjUxLWdkYi1pbmRleC1pbnRlcm5hbC1lcnJvci5wYXRjaAorZ2RiLXJoYnoyMjMy MDg2LXJlZmFjdG9yLXNlbGZ0ZXN0LXN1cHBvcnQucGF0Y2gKK2dkYi1yaGJ6LTIyMzIwODYtcmVk dWNlLXNpemUtb2YtZ2RiLWluZGV4LnBhdGNoCitnZGItcmhiei0yMjMyMDg2LWNwcC1pZnktbWFw cGVkLXN5bXRhYi5wYXRjaAorZ2RiLXJoYnotMjIzMjA4Ni1nZW5lcmF0ZS1nZGItaW5kZXgtY29u c2lzdGVudGx5LnBhdGNoCitnZGItcmhiei0yMjMyMDg2LWdlbmVyYXRlLWR3YXJmLTUtaW5kZXgt Y29uc2lzdGVudGx5LnBhdGNoCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnotMjIzMjA4Ni1jcHAtaWZ5 LW1hcHBlZC1zeW10YWIucGF0Y2ggYi9nZGItcmhiei0yMjMyMDg2LWNwcC1pZnktbWFwcGVkLXN5 bXRhYi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWNjY2E2Ci0t LSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnotMjIzMjA4Ni1jcHAtaWZ5LW1hcHBlZC1zeW10YWIu cGF0Y2gKQEAgLTAsMCArMSwyNjQgQEAKK0Zyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1cmdlc3NAcmVkaGF0LmNvbT4K K0RhdGU6IFNhdCwgMjUgTm92IDIwMjMgMTA6MzU6MzcgKzAwMDAKK1N1YmplY3Q6IGdkYi1yaGJ6 LTIyMzIwODYtY3BwLWlmeS1tYXBwZWQtc3ltdGFiLnBhdGNoCisKKzs7IEJhY2stcG9ydCB1cHN0 cmVhbSBjb21taXQgYWNjMTE3YjU3ZjcgYXMgcGFydCBvZiBhIGZpeCBmb3IKKzs7IG5vbi1kZXRl cm1pbmlzdGljIGdkYi1pbmRleCBnZW5lcmF0aW9uIChSSCBCWiAyMjMyMDg2KS4KKworZ2RiOiBD KystaWZ5IG1hcHBlZF9zeW10YWIgZnJvbSBkd2FyZjIvaW5kZXgtd3JpdGUuYworCitNYWtlIHN0 YXRpYyB0aGUgZnVuY3Rpb25zIGFkZF9pbmRleF9lbnRyeSwgZmluZF9zbG90LCBhbmQgaGFzaF9l eHBhbmQsCittZW1iZXIgZnVuY3Rpb25zIG9mIHRoZSBtYXBwZWRfc3ltdGFiIGNsYXNzLgorCitG b2xkIGFuIGFkZGl0aW9uYWwgc25pcHBldCBvZiBjb2RlIGZyb20gd3JpdGVfZ2RiaW5kZXggaW50 bworbWFwcGVkX3N5bXRhYjo6bWluaW1pemUsIHRoaXMgY29kZSByZWxhdGVzIHRvIG1pbmltaXNh dGlvbiwgc28gdGhpcworc2VlbXMgbGlrZSBhIGdvb2QgaG9tZSBmb3IgaXQuCisKK01ha2UgdGhl IG5fZWxlbWVudHMsIGRhdGEsIGFuZCBtX3N0cmluZ19vYnN0YWNrIG1lbWJlciB2YXJpYWJsZXMg b2YKK21hcHBlZF9zeW10YWIgcHJpdmF0ZS4gIFByb3ZpZGUgYSBuZXcgb2JzdGFjaygpIG1lbWJl ciBmdW5jdGlvbiB0bworcHJvdmlkZSBhY2Nlc3MgdG8gdGhlIG9ic3RhY2sgd2hlbiBuZWVkZWQs IGFuZCBhbHNvIGFkZCBtZW1iZXIKK2Z1bmN0aW9ucyBiZWdpbigpLCBlbmQoKSwgY2JlZ2luKCks IGFuZCBjZW5kKCkgc28gdGhhdCB0aGUKK21hcHBlZF9zeW10YWIgY2xhc3MgY2FuIGJlIHRyZWF0 ZWQgbGlrZSBhIGNvbnRhaW5lZCBhbmQgaXRlcmF0ZWQKK292ZXIuCisKK0kndmUgYWxzbyB0YWtl biB0aGlzIG9wcG9ydHVuaXR5IHRvIHNwbGl0IG91dCB0aGUgbG9naWMgZm9yIHdoZXRoZXIKK3Ro ZSBoYXNoIHRhYmxlIChtX2RhdGEpIG5lZWRzIGV4cGFuZGluZywgdGhpcyBpcyB0aGUgbmV3IGZ1 bmN0aW9uCitoYXNoX25lZWRzX2V4cGFuZGluZy4gIFRoaXMgd2lsbCBiZSB1c2VmdWwgaW4gYSBs YXRlciBjb21taXQuCisKK1RoZXJlIHNob3VsZCBiZSBubyB1c2VyIHZpc2libGUgY2hhbmdlcyBh ZnRlciB0aGlzIGNvbW1pdC4KKworQXBwcm92ZWQtQnk6IFRvbSBUcm9tZXkgPHRvbUB0cm9tZXku Y29tPgorCitkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMi9pbmRleC13cml0ZS5jIGIvZ2RiL2R3YXJm Mi9pbmRleC13cml0ZS5jCistLS0gYS9nZGIvZHdhcmYyL2luZGV4LXdyaXRlLmMKKysrKyBiL2dk Yi9kd2FyZjIvaW5kZXgtd3JpdGUuYworQEAgLTE4Nyw4NiArMTg3LDEzNSBAQCBzdHJ1Y3QgbWFw cGVkX3N5bXRhYgorIHsKKyAgIG1hcHBlZF9zeW10YWIgKCkKKyAgIHsKKy0gICAgZGF0YS5yZXNp emUgKDEwMjQpOworKyAgICBtX2RhdGEucmVzaXplICgxMDI0KTsKKyAgIH0KKyAKKy0gIC8qIE1p bmltaXplIGVhY2ggZW50cnkgaW4gdGhlIHN5bWJvbCB0YWJsZSwgcmVtb3ZpbmcgZHVwbGljYXRl cy4gICovCisrICAvKiBJZiB0aGVyZSBhcmUgbm8gZWxlbWVudHMgaW4gdGhlIHN5bWJvbCB0YWJs ZSwgdGhlbiByZWR1Y2UgdGhlIHRhYmxlCisrICAgICBzaXplIHRvIHplcm8uICBPdGhlcndpc2Ug Y2FsbCBzeW10YWJfaW5kZXhfZW50cnk6Om1pbmltaXplIGVhY2ggZW50cnkKKysgICAgIGluIHRo ZSBzeW1ib2wgdGFibGUuICAqLworKworICAgdm9pZCBtaW5pbWl6ZSAoKQorICAgeworLSAgICBm b3IgKHN5bXRhYl9pbmRleF9lbnRyeSAmaXRlbSA6IGRhdGEpCisrICAgIGlmIChtX2VsZW1lbnRf Y291bnQgPT0gMCkKKysgICAgICBtX2RhdGEucmVzaXplICgwKTsKKysKKysgICAgZm9yIChzeW10 YWJfaW5kZXhfZW50cnkgJml0ZW0gOiBtX2RhdGEpCisgICAgICAgaXRlbS5taW5pbWl6ZSAoKTsK KyAgIH0KKyAKKy0gIG9mZnNldF90eXBlIG5fZWxlbWVudHMgPSAwOworLSAgc3RkOjp2ZWN0b3I8 c3ltdGFiX2luZGV4X2VudHJ5PiBkYXRhOworKyAgLyogQWRkIGFuIGVudHJ5IHRvIFNZTVRBQi4g IE5BTUUgaXMgdGhlIG5hbWUgb2YgdGhlIHN5bWJvbC4gIENVX0lOREVYIGlzCisrICAgICB0aGUg aW5kZXggb2YgdGhlIENVIGluIHdoaWNoIHRoZSBzeW1ib2wgYXBwZWFycy4gIElTX1NUQVRJQyBp cyBvbmUgaWYKKysgICAgIHRoZSBzeW1ib2wgaXMgc3RhdGljLCBvdGhlcndpc2UgemVybyAoZ2xv YmFsKS4gICovCisrCisrICB2b2lkIGFkZF9pbmRleF9lbnRyeSAoY29uc3QgY2hhciAqbmFtZSwg aW50IGlzX3N0YXRpYywKKysJCQlnZGJfaW5kZXhfc3ltYm9sX2tpbmQga2luZCwgb2Zmc2V0X3R5 cGUgY3VfaW5kZXgpOworKworKyAgLyogQWNjZXNzIHRoZSBvYnN0YWNrLiAgKi8KKysgIHN0cnVj dCBvYnN0YWNrICpvYnN0YWNrICgpCisrICB7IHJldHVybiAmbV9zdHJpbmdfb2JzdGFjazsgfQor KworK3ByaXZhdGU6CisrCisrICAvKiBGaW5kIGEgc2xvdCBpbiBTWU1UQUIgZm9yIHRoZSBzeW1i b2wgTkFNRS4gIFJldHVybnMgYSByZWZlcmVuY2UgdG8KKysgICAgIHRoZSBzbG90LgorKworKyAg ICAgRnVuY3Rpb24gaXMgdXNlZCBvbmx5IGR1cmluZyB3cml0ZV9oYXNoX3RhYmxlIHNvIG5vIGlu ZGV4IGZvcm1hdAorKyAgICAgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpcyBuZWVkZWQuICAqLwor KworKyAgc3ltdGFiX2luZGV4X2VudHJ5ICZmaW5kX3Nsb3QgKGNvbnN0IGNoYXIgKm5hbWUpOwor KworKyAgLyogRXhwYW5kIFNZTVRBQidzIGhhc2ggdGFibGUuICAqLworKworKyAgdm9pZCBoYXNo X2V4cGFuZCAoKTsKKysKKysgIC8qIFJldHVybiB0cnVlIGlmIHRoZSBoYXNoIHRhYmxlIGluIGRh dGEgbmVlZHMgdG8gZ3Jvdy4gICovCisrCisrICBib29sIGhhc2hfbmVlZHNfZXhwYW5kaW5nICgp IGNvbnN0CisrICB7IHJldHVybiA0ICogbV9lbGVtZW50X2NvdW50IC8gMyA+PSBtX2RhdGEuc2l6 ZSAoKTsgfQorKworKyAgLyogQSB2ZWN0b3IgdGhhdCBpcyB1c2VkIGFzIGEgaGFzaCB0YWJsZS4g ICovCisrICBzdGQ6OnZlY3RvcjxzeW10YWJfaW5kZXhfZW50cnk+IG1fZGF0YTsKKysKKysgIC8q IFRoZSBudW1iZXIgb2YgZWxlbWVudHMgc3RvcmVkIGluIHRoZSBtX2RhdGEgaGFzaC4gICovCisr ICBvZmZzZXRfdHlwZSBtX2VsZW1lbnRfY291bnQgPSAwOworIAorICAgLyogVGVtcG9yYXJ5IHN0 b3JhZ2UgZm9yIG5hbWVzLiAgKi8KKyAgIGF1dG9fb2JzdGFjayBtX3N0cmluZ19vYnN0YWNrOwor LX07CisgCistLyogRmluZCBhIHNsb3QgaW4gU1lNVEFCIGZvciB0aGUgc3ltYm9sIE5BTUUuICBS ZXR1cm5zIGEgcmVmZXJlbmNlIHRvCistICAgdGhlIHNsb3QuCisrcHVibGljOgorKyAgdXNpbmcg aXRlcmF0b3IgPSBkZWNsdHlwZSAobV9kYXRhKTo6aXRlcmF0b3I7CisrICB1c2luZyBjb25zdF9p dGVyYXRvciA9IGRlY2x0eXBlIChtX2RhdGEpOjpjb25zdF9pdGVyYXRvcjsKKyAKKy0gICBGdW5j dGlvbiBpcyB1c2VkIG9ubHkgZHVyaW5nIHdyaXRlX2hhc2hfdGFibGUgc28gbm8gaW5kZXggZm9y bWF0IGJhY2t3YXJkCistICAgY29tcGF0aWJpbGl0eSBpcyBuZWVkZWQuICAqLworKyAgaXRlcmF0 b3IgYmVnaW4gKCkKKysgIHsgcmV0dXJuIG1fZGF0YS5iZWdpbiAoKTsgfQorIAorLXN0YXRpYyBz eW10YWJfaW5kZXhfZW50cnkgJgorLWZpbmRfc2xvdCAoc3RydWN0IG1hcHBlZF9zeW10YWIgKnN5 bXRhYiwgY29uc3QgY2hhciAqbmFtZSkKKysgIGl0ZXJhdG9yIGVuZCAoKQorKyAgeyByZXR1cm4g bV9kYXRhLmVuZCAoKTsgfQorKworKyAgY29uc3RfaXRlcmF0b3IgY2JlZ2luICgpCisrICB7IHJl dHVybiBtX2RhdGEuY2JlZ2luICgpOyB9CisrCisrICBjb25zdF9pdGVyYXRvciBjZW5kICgpCisr ICB7IHJldHVybiBtX2RhdGEuY2VuZCAoKTsgfQorK307CisrCisrLyogU2VlIGNsYXNzIGRlZmlu aXRpb24uICAqLworKworK3N5bXRhYl9pbmRleF9lbnRyeSAmCisrbWFwcGVkX3N5bXRhYjo6Zmlu ZF9zbG90IChjb25zdCBjaGFyICpuYW1lKQorIHsKKyAgIG9mZnNldF90eXBlIGluZGV4LCBzdGVw LCBoYXNoID0gbWFwcGVkX2luZGV4X3N0cmluZ19oYXNoIChJTlRfTUFYLCBuYW1lKTsKKyAKKy0g IGluZGV4ID0gaGFzaCAmIChzeW10YWItPmRhdGEuc2l6ZSAoKSAtIDEpOworLSAgc3RlcCA9ICgo aGFzaCAqIDE3KSAmIChzeW10YWItPmRhdGEuc2l6ZSAoKSAtIDEpKSB8IDE7CisrICBpbmRleCA9 IGhhc2ggJiAobV9kYXRhLnNpemUgKCkgLSAxKTsKKysgIHN0ZXAgPSAoKGhhc2ggKiAxNykgJiAo bV9kYXRhLnNpemUgKCkgLSAxKSkgfCAxOworIAorICAgZm9yICg7OykKKyAgICAgeworLSAgICAg IGlmIChzeW10YWItPmRhdGFbaW5kZXhdLm5hbWUgPT0gTlVMTAorLQkgIHx8IHN0cmNtcCAobmFt ZSwgc3ltdGFiLT5kYXRhW2luZGV4XS5uYW1lKSA9PSAwKQorLQlyZXR1cm4gc3ltdGFiLT5kYXRh W2luZGV4XTsKKy0gICAgICBpbmRleCA9IChpbmRleCArIHN0ZXApICYgKHN5bXRhYi0+ZGF0YS5z aXplICgpIC0gMSk7CisrICAgICAgaWYgKG1fZGF0YVtpbmRleF0ubmFtZSA9PSBOVUxMCisrCSAg fHwgc3RyY21wIChuYW1lLCBtX2RhdGFbaW5kZXhdLm5hbWUpID09IDApCisrCXJldHVybiBtX2Rh dGFbaW5kZXhdOworKyAgICAgIGluZGV4ID0gKGluZGV4ICsgc3RlcCkgJiAobV9kYXRhLnNpemUg KCkgLSAxKTsKKyAgICAgfQorIH0KKyAKKy0vKiBFeHBhbmQgU1lNVEFCJ3MgaGFzaCB0YWJsZS4g ICovCisrLyogU2VlIGNsYXNzIGRlZmluaXRpb24uICAqLworIAorLXN0YXRpYyB2b2lkCistaGFz aF9leHBhbmQgKHN0cnVjdCBtYXBwZWRfc3ltdGFiICpzeW10YWIpCisrdm9pZAorK21hcHBlZF9z eW10YWI6Omhhc2hfZXhwYW5kICgpCisgeworLSAgYXV0byBvbGRfZW50cmllcyA9IHN0ZDo6bW92 ZSAoc3ltdGFiLT5kYXRhKTsKKysgIGF1dG8gb2xkX2VudHJpZXMgPSBzdGQ6Om1vdmUgKG1fZGF0 YSk7CisgCistICBzeW10YWItPmRhdGEuY2xlYXIgKCk7CistICBzeW10YWItPmRhdGEucmVzaXpl IChvbGRfZW50cmllcy5zaXplICgpICogMik7CisrICBnZGJfYXNzZXJ0IChtX2RhdGEuc2l6ZSAo KSA9PSAwKTsKKysgIG1fZGF0YS5yZXNpemUgKG9sZF9lbnRyaWVzLnNpemUgKCkgKiAyKTsKKyAK KyAgIGZvciAoYXV0byAmaXQgOiBvbGRfZW50cmllcykKKyAgICAgaWYgKGl0Lm5hbWUgIT0gTlVM TCkKKyAgICAgICB7CistCWF1dG8gJnJlZiA9IGZpbmRfc2xvdCAoc3ltdGFiLCBpdC5uYW1lKTsK KysJYXV0byAmcmVmID0gdGhpcy0+ZmluZF9zbG90IChpdC5uYW1lKTsKKyAJcmVmID0gc3RkOjpt b3ZlIChpdCk7CisgICAgICAgfQorIH0KKyAKKy0vKiBBZGQgYW4gZW50cnkgdG8gU1lNVEFCLiAg TkFNRSBpcyB0aGUgbmFtZSBvZiB0aGUgc3ltYm9sLgorLSAgIENVX0lOREVYIGlzIHRoZSBpbmRl eCBvZiB0aGUgQ1UgaW4gd2hpY2ggdGhlIHN5bWJvbCBhcHBlYXJzLgorLSAgIElTX1NUQVRJQyBp cyBvbmUgaWYgdGhlIHN5bWJvbCBpcyBzdGF0aWMsIG90aGVyd2lzZSB6ZXJvIChnbG9iYWwpLiAg Ki8KKysvKiBTZWUgY2xhc3MgZGVmaW5pdGlvbi4gICovCisgCistc3RhdGljIHZvaWQKKy1hZGRf aW5kZXhfZW50cnkgKHN0cnVjdCBtYXBwZWRfc3ltdGFiICpzeW10YWIsIGNvbnN0IGNoYXIgKm5h bWUsCistCQkgaW50IGlzX3N0YXRpYywgZ2RiX2luZGV4X3N5bWJvbF9raW5kIGtpbmQsCistCQkg b2Zmc2V0X3R5cGUgY3VfaW5kZXgpCisrdm9pZAorK21hcHBlZF9zeW10YWI6OmFkZF9pbmRleF9l bnRyeSAoY29uc3QgY2hhciAqbmFtZSwgaW50IGlzX3N0YXRpYywKKysJCQkJZ2RiX2luZGV4X3N5 bWJvbF9raW5kIGtpbmQsCisrCQkJCW9mZnNldF90eXBlIGN1X2luZGV4KQorIHsKKy0gIHN5bXRh Yl9pbmRleF9lbnRyeSAqc2xvdCA9ICZmaW5kX3Nsb3QgKHN5bXRhYiwgbmFtZSk7CisrICBzeW10 YWJfaW5kZXhfZW50cnkgKnNsb3QgPSAmdGhpcy0+ZmluZF9zbG90IChuYW1lKTsKKyAgIGlmIChz bG90LT5uYW1lID09IE5VTEwpCisgICAgIHsKKyAgICAgICAvKiBUaGlzIGlzIGEgbmV3IGVsZW1l bnQgaW4gdGhlIGhhc2ggdGFibGUuICAqLworLSAgICAgICsrc3ltdGFiLT5uX2VsZW1lbnRzOwor KyAgICAgICsrdGhpcy0+bV9lbGVtZW50X2NvdW50OworIAorICAgICAgIC8qIFdlIG1pZ2h0IG5l ZWQgdG8gZ3JvdyB0aGUgaGFzaCB0YWJsZS4gICovCistICAgICAgaWYgKDQgKiBzeW10YWItPm5f ZWxlbWVudHMgLyAzID49IHN5bXRhYi0+ZGF0YS5zaXplICgpKQorKyAgICAgIGlmICh0aGlzLT5o YXNoX25lZWRzX2V4cGFuZGluZyAoKSkKKyAJeworLQkgIGhhc2hfZXhwYW5kIChzeW10YWIpOwor KwkgIHRoaXMtPmhhc2hfZXhwYW5kICgpOworIAorIAkgIC8qIFRoaXMgZWxlbWVudCB3aWxsIGhh dmUgYSBkaWZmZXJlbnQgc2xvdCBpbiB0aGUgbmV3IHRhYmxlLiAgKi8KKy0JICBzbG90ID0gJmZp bmRfc2xvdCAoc3ltdGFiLCBuYW1lKTsKKysJICBzbG90ID0gJnRoaXMtPmZpbmRfc2xvdCAobmFt ZSk7CisgCisgCSAgLyogQnV0IGl0IHNob3VsZCBzdGlsbCBiZSBhIG5ldyBlbGVtZW50IGluIHRo ZSBoYXNoIHRhYmxlLiAgKi8KKyAJICBnZGJfYXNzZXJ0IChzbG90LT5uYW1lID09IG51bGxwdHIp OworQEAgLTM4OCw3ICs0MzcsNyBAQCB3cml0ZV9oYXNoX3RhYmxlIChtYXBwZWRfc3ltdGFiICpz eW10YWIsIGRhdGFfYnVmICZvdXRwdXQsIGRhdGFfYnVmICZjcG9vbCkKKyAKKyAgICAgLyogV2Ug YWRkIGFsbCB0aGUgaW5kZXggdmVjdG9ycyB0byB0aGUgY29uc3RhbnQgcG9vbCBmaXJzdCwgdG8K KyAgICAgICAgZW5zdXJlIGFsaWdubWVudCBpcyBvay4gICovCistICAgIGZvciAoc3ltdGFiX2lu ZGV4X2VudHJ5ICZlbnRyeSA6IHN5bXRhYi0+ZGF0YSkKKysgICAgZm9yIChzeW10YWJfaW5kZXhf ZW50cnkgJmVudHJ5IDogKnN5bXRhYikKKyAgICAgICB7CisgCWlmIChlbnRyeS5uYW1lID09IE5V TEwpCisgCSAgY29udGludWU7CitAQCAtNDE3LDcgKzQ2Niw3IEBAIHdyaXRlX2hhc2hfdGFibGUg KG1hcHBlZF9zeW10YWIgKnN5bXRhYiwgZGF0YV9idWYgJm91dHB1dCwgZGF0YV9idWYgJmNwb29s KQorIAorICAgLyogTm93IHdyaXRlIG91dCB0aGUgaGFzaCB0YWJsZS4gICovCisgICBzdGQ6OnVu b3JkZXJlZF9tYXA8Y19zdHJfdmlldywgb2Zmc2V0X3R5cGUsIGNfc3RyX3ZpZXdfaGFzaGVyPiBz dHJfdGFibGU7CistICBmb3IgKGNvbnN0IGF1dG8gJmVudHJ5IDogc3ltdGFiLT5kYXRhKQorKyAg Zm9yIChjb25zdCBhdXRvICZlbnRyeSA6ICpzeW10YWIpCisgICAgIHsKKyAgICAgICBvZmZzZXRf dHlwZSBzdHJfb2ZmLCB2ZWNfb2ZmOworIAorQEAgLTExNDksNyArMTE5OCw3IEBAIHdyaXRlX2Nv b2tlZF9pbmRleCAoY29va2VkX2luZGV4X3ZlY3RvciAqdGFibGUsCisgICAgICAgY29uc3QgYXV0 byBpdCA9IGN1X2luZGV4X2h0YWIuZmluZCAoZW50cnktPnBlcl9jdSk7CisgICAgICAgZ2RiX2Fz c2VydCAoaXQgIT0gY3VfaW5kZXhfaHRhYi5jZW5kICgpKTsKKyAKKy0gICAgICBjb25zdCBjaGFy ICpuYW1lID0gZW50cnktPmZ1bGxfbmFtZSAoJnN5bXRhYi0+bV9zdHJpbmdfb2JzdGFjayk7Cisr ICAgICAgY29uc3QgY2hhciAqbmFtZSA9IGVudHJ5LT5mdWxsX25hbWUgKHN5bXRhYi0+b2JzdGFj ayAoKSk7CisgCisgICAgICAgaWYgKGVudHJ5LT5wZXJfY3UtPmxhbmcgKCkgPT0gbGFuZ3VhZ2Vf YWRhKQorIAl7CitAQCAtMTE2OSw3ICsxMjE4LDcgQEAgd3JpdGVfY29va2VkX2luZGV4IChjb29r ZWRfaW5kZXhfdmVjdG9yICp0YWJsZSwKKyAJCSBnZGIsIGl0IGhhcyB0byB1c2UgdGhlIGVuY29k ZWQgbmFtZSwgd2l0aCBhbnkKKyAJCSBzdWZmaXhlcyBzdHJpcHBlZC4gICovCisgCSAgICAgIHN0 ZDo6c3RyaW5nIGVuY29kZWQgPSBhZGFfZW5jb2RlIChuYW1lLCBmYWxzZSk7CistCSAgICAgIG5h bWUgPSBvYnN0YWNrX3N0cmR1cCAoJnN5bXRhYi0+bV9zdHJpbmdfb2JzdGFjaywKKysJICAgICAg bmFtZSA9IG9ic3RhY2tfc3RyZHVwIChzeW10YWItPm9ic3RhY2sgKCksCisgCQkJCSAgICAgZW5j b2RlZC5jX3N0ciAoKSk7CisgCSAgICB9CisgCX0KK0BAIC0xMjAyLDggKzEyNTEsOCBAQCB3cml0 ZV9jb29rZWRfaW5kZXggKGNvb2tlZF9pbmRleF92ZWN0b3IgKnRhYmxlLAorICAgICAgIGVsc2UK KyAJa2luZCA9IEdEQl9JTkRFWF9TWU1CT0xfS0lORF9UWVBFOworIAorLSAgICAgIGFkZF9pbmRl eF9lbnRyeSAoc3ltdGFiLCBuYW1lLCAoZW50cnktPmZsYWdzICYgSVNfU1RBVElDKSAhPSAwLAor LQkJICAgICAgIGtpbmQsIGl0LT5zZWNvbmQpOworKyAgICAgIHN5bXRhYi0+YWRkX2luZGV4X2Vu dHJ5IChuYW1lLCAoZW50cnktPmZsYWdzICYgSVNfU1RBVElDKSAhPSAwLAorKwkJCSAgICAgICBr aW5kLCBpdC0+c2Vjb25kKTsKKyAgICAgfQorIH0KKyAKK0BAIC0xMjgxLDggKzEzMzAsNiBAQCB3 cml0ZV9nZGJpbmRleCAoZHdhcmYyX3Blcl9vYmpmaWxlICpwZXJfb2JqZmlsZSwKKyAgIHN5bXRh Yi5taW5pbWl6ZSAoKTsKKyAKKyAgIGRhdGFfYnVmIHN5bXRhYl92ZWMsIGNvbnN0YW50X3Bvb2w7 CistICBpZiAoc3ltdGFiLm5fZWxlbWVudHMgPT0gMCkKKy0gICAgc3ltdGFiLmRhdGEucmVzaXpl ICgwKTsKKyAKKyAgIHdyaXRlX2hhc2hfdGFibGUgKCZzeW10YWIsIHN5bXRhYl92ZWMsIGNvbnN0 YW50X3Bvb2wpOworIAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6LTIyMzIwODYtZ2VuZXJhdGUtZHdh cmYtNS1pbmRleC1jb25zaXN0ZW50bHkucGF0Y2ggYi9nZGItcmhiei0yMjMyMDg2LWdlbmVyYXRl LWR3YXJmLTUtaW5kZXgtY29uc2lzdGVudGx5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjZiMjFjMTQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiei0yMjMyMDg2 LWdlbmVyYXRlLWR3YXJmLTUtaW5kZXgtY29uc2lzdGVudGx5LnBhdGNoCkBAIC0wLDAgKzEsMTAx IEBACitGcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog QW5kcmV3IEJ1cmdlc3MgPGFidXJnZXNzQHJlZGhhdC5jb20+CitEYXRlOiBNb24sIDI3IE5vdiAy MDIzIDEzOjE5OjM5ICswMDAwCitTdWJqZWN0OiBnZGItcmhiei0yMjMyMDg2LWdlbmVyYXRlLWR3 YXJmLTUtaW5kZXgtY29uc2lzdGVudGx5LnBhdGNoCisKKzs7IEJhY2stcG9ydCB1cHN0cmVhbSBj b21taXQgMzY0NGY0MWRjODAgYXMgcGFydCBvZiBhIGZpeCBmb3IKKzs7IG5vbi1kZXRlcm1pbmlz dGljIGdkYi1pbmRleCBnZW5lcmF0aW9uIChSSCBCWiAyMjMyMDg2KS4KKworZ2RiOiBnZW5lcmF0 ZSBkd2FyZi01IGluZGV4IGlkZW50aWNhbGx5IGFzIHdvcmtlci10aHJlYWQgY291bnQgY2hhbmdl cworCitTaW1pbGFyIHRvIHRoZSBwcmV2aW91cyBjb21taXQsIHRoaXMgY29tbWl0IGVuc3VyZXMg dGhhdCB0aGUgZHdhcmYtNQoraW5kZXggZmlsZXMgYXJlIGdlbmVyYXRlZCBpZGVudGljYWxseSBh cyB0aGUgbnVtYmVyIG9mIHdvcmtlci10aHJlYWRzCitjaGFuZ2VzLgorCitCdWlsZGluZyB0aGUg ZHdhcmYtNSBpbmRleCBtYWtlcyB1c2Ugb2YgYSBjbG9zZWQgaGFzaCB0YWJsZSwgdGhlCitidWNr ZXRfaGFzaCBsb2NhbCB3aXRoaW4gZGVidWdfbmFtZXM6OmJ1aWxkKCkuICBFbnRyaWVzIGFyZSBh ZGRlZCB0bworYnVja2V0X2hhc2ggZnJvbSBtX25hbWVfdG9fdmFsdWVfc2V0LCB3aGljaCwgaW4g dHVybiwgaXMgcG9wdWxhdGVkCitieSBjYWxscyB0byBkZWJ1Z19uYW1lczo6aW5zZXJ0KCkgaW4g d3JpdGVfZGVidWdfbmFtZXMuICBUaGUgaW5zZXJ0CitjYWxscyBhcmUgb3JkZXJlZCBiYXNlZCBv biB0aGUgZW50cmllcyB3aXRoaW4gdGhlIGNvb2tlZF9pbmRleCwgYW5kCit0aGUgb3JkZXJpbmcg d2l0aGluIGNvb2tlZF9pbmRleCBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2Ygd29ya2VyCit0aHJl YWRzIHRoYXQgR0RCIGlzIHVzaW5nLgorCitNeSBwcm9wb3NhbCBpcyB0byBzb3J0IGVhY2ggY2hh aW4gd2l0aGluIHRoZSBidWNrZXRfaGFzaCBjbG9zZWQgaGFzaAordGFibGUgcHJpb3IgdG8gdXNp bmcgdGhpcyB0byBidWlsZCB0aGUgZHdhcmYtNSBpbmRleC4KKworVGhlIGJ1Y2tldHMgd2l0aGlu IGJ1Y2tldF9oYXNoIHdpbGwgYWx3YXlzIGhhdmUgdGhlIHNhbWUgb3JkZXJpbmcgKGZvcgorYSBn aXZlbiBHREIgYnVpbGQgd2l0aCBhIGdpdmVuIGV4ZWN1dGFibGUpLCBhbmQgYnkgc29ydGluZyB0 aGUgY2hhaW5zCit3aXRoaW4gZWFjaCBidWNrZXQsIHdlIGNhbiBiZSBzdXJlIHRoYXQgR0RCIHdp bGwgc2VlIGVhY2ggZW50cnkgaW4gYQorZGV0ZXJtaW5pc3RpYyBvcmRlci4KKworSSd2ZSBleHRl bmRlZCB0aGUgaW5kZXggY3JlYXRpb24gdGVzdCB0byBjb3ZlciB0aGlzIGNhc2UuCisKK0FwcHJv dmVkLUJ5OiBUb20gVHJvbWV5IDx0b21AdHJvbWV5LmNvbT4KKworZGlmZiAtLWdpdCBhL2dkYi9k d2FyZjIvaW5kZXgtd3JpdGUuYyBiL2dkYi9kd2FyZjIvaW5kZXgtd3JpdGUuYworLS0tIGEvZ2Ri L2R3YXJmMi9pbmRleC13cml0ZS5jCisrKysgYi9nZGIvZHdhcmYyL2luZGV4LXdyaXRlLmMKK0BA IC00NTMsNiArNDUzLDExIEBAIGNsYXNzIGNfc3RyX3ZpZXcKKyAgICAgcmV0dXJuIHN0cmNtcCAo bV9jc3RyLCBvdGhlci5tX2NzdHIpID09IDA7CisgICB9CisgCisrICBib29sIG9wZXJhdG9yPCAo Y29uc3QgY19zdHJfdmlldyAmb3RoZXIpIGNvbnN0CisrICB7CisrICAgIHJldHVybiBzdHJjbXAg KG1fY3N0ciwgb3RoZXIubV9jc3RyKSA8IDA7CisrICB9CisrCisgICAvKiBSZXR1cm4gdGhlIHVu ZGVybHlpbmcgQyBzdHJpbmcuICBOb3RlLCB0aGUgcmV0dXJuZWQgc3RyaW5nIGlzCisgICAgICBv bmx5IGEgcmVmZXJlbmNlIHdpdGggbGlmZXRpbWUgb2YgdGhpcyBvYmplY3QuICAqLworICAgY29u c3QgY2hhciAqY19zdHIgKCkgY29uc3QKK0BAIC03NzAsMTAgKzc3NSwxOCBAQCBjbGFzcyBkZWJ1 Z19uYW1lcworICAgICAgIH0KKyAgICAgZm9yIChzaXplX3QgYnVja2V0X2l4ID0gMDsgYnVja2V0 X2l4IDwgYnVja2V0X2hhc2guc2l6ZSAoKTsgKytidWNrZXRfaXgpCisgICAgICAgeworLQljb25z dCBzdGQ6OmZvcndhcmRfbGlzdDxoYXNoX2l0X3BhaXI+ICZoYXNoaXRsaXN0CistCSAgPSBidWNr ZXRfaGFzaFtidWNrZXRfaXhdOworKwlzdGQ6OmZvcndhcmRfbGlzdDxoYXNoX2l0X3BhaXI+ICZo YXNoaXRsaXN0ID0gYnVja2V0X2hhc2hbYnVja2V0X2l4XTsKKyAJaWYgKGhhc2hpdGxpc3QuZW1w dHkgKCkpCisgCSAgY29udGludWU7CisrCisrCS8qIFNvcnQgdGhlIGl0ZW1zIHdpdGhpbiBlYWNo IGJ1Y2tldC4gIFRoaXMgZW5zdXJlcyB0aGF0IHRoZQorKwkgICBnZW5lcmF0ZWQgaW5kZXggZmls ZXMgd2lsbCBiZSB0aGUgc2FtZSBubyBtYXR0ZXIgdGhlIG9yZGVyIGluCisrCSAgIHdoaWNoIHN5 bWJvbHMgd2VyZSBhZGRlZCBpbnRvIHRoZSBpbmRleC4gICovCisrCWhhc2hpdGxpc3Quc29ydCAo W10gKGNvbnN0IGhhc2hfaXRfcGFpciAmYSwgY29uc3QgaGFzaF9pdF9wYWlyICZiKQorKwl7Cisr CSAgcmV0dXJuIGEuaXQtPmZpcnN0IDwgYi5pdC0+Zmlyc3Q7CisrCX0pOworKworIAl1aW50MzJf dCAmYnVja2V0X3Nsb3QgPSBtX2J1Y2tldF90YWJsZVtidWNrZXRfaXhdOworIAkvKiBUaGUgaGFz aGVzIGFycmF5IGlzIGluZGV4ZWQgc3RhcnRpbmcgYXQgMS4gICovCisgCXN0b3JlX3Vuc2lnbmVk X2ludGVnZXIgKHJlaW50ZXJwcmV0X2Nhc3Q8Z2RiX2J5dGUgKj4gKCZidWNrZXRfc2xvdCksCitk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL2luZGV4LWZpbGUuZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZ2RiL2luZGV4LWZpbGUuZXhwCistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5n ZGIvaW5kZXgtZmlsZS5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9pbmRleC1maWxl LmV4cAorQEAgLTQ3LDYgKzQ3LDkgQEAgcmVtb3RlX2V4ZWMgaG9zdCAibWtkaXIgLXAgJHtkaXIx fSIKKyB3aXRoX3RpbWVvdXRfZmFjdG9yICR0aW1lb3V0X2ZhY3RvciB7CisgICAgIGdkYl90ZXN0 X25vX291dHB1dCAic2F2ZSBnZGItaW5kZXggJGRpcjEiIFwKKyAJImNyZWF0ZSBnZGItaW5kZXgg ZmlsZSIKKysKKysgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzYXZlIGdkYi1pbmRleCAtZHdhcmYt NSAkZGlyMSIgXAorKwkiY3JlYXRlIGR3YXJmLWluZGV4IGZpbGVzIgorIH0KKyAKKyAjIENsb3Nl IEdEQi4KK0BAIC0xNDMsMTMgKzE0NiwxNiBAQCBpZiB7ICR3b3JrZXJfdGhyZWFkcyA+IDEgfSB7 CisgICAgIHdpdGhfdGltZW91dF9mYWN0b3IgJHRpbWVvdXRfZmFjdG9yIHsKKyAJZ2RiX3Rlc3Rf bm9fb3V0cHV0ICJzYXZlIGdkYi1pbmRleCAkZGlyMiIgXAorIAkgICAgImNyZWF0ZSBzZWNvbmQg Z2RiLWluZGV4IGZpbGUiCisrCisrCWdkYl90ZXN0X25vX291dHB1dCAic2F2ZSBnZGItaW5kZXgg LWR3YXJmLTUgJGRpcjIiIFwKKysJICAgICJjcmVhdGUgc2Vjb25kIGR3YXJmLWluZGV4IGZpbGVz IgorICAgICB9CisgCisgICAgICMgQ2xvc2UgR0RCLgorICAgICBnZGJfZXhpdAorIAorICAgICAj IE5vdyBjaGVjayB0aGF0IHRoZSBpbmRleCBmaWxlcyBhcmUgaWRlbnRpY2FsLgorLSAgICBmb3Jl YWNoIHN1ZmZpeCB7IGdkYi1pbmRleCAgfSB7CisrICAgIGZvcmVhY2ggc3VmZml4IHsgZ2RiLWlu ZGV4IGRlYnVnX25hbWVzIGRlYnVnX3N0ciB9IHsKKyAJc2V0IHJlc3VsdCBcCisgCSAgICBbcmVt b3RlX2V4ZWMgaG9zdCBcCisgCQkgImNtcCAtcyBcIiRkaXIxLyR7aW5kZXhfZmlsZW5hbWVfYmFz ZX0uJHtzdWZmaXh9XCIgXCIkZGlyMi8ke2luZGV4X2ZpbGVuYW1lX2Jhc2V9LiR7c3VmZml4fVwi Il0KCmRpZmYgLS1naXQgYS9nZGItcmhiei0yMjMyMDg2LWdlbmVyYXRlLWdkYi1pbmRleC1jb25z aXN0ZW50bHkucGF0Y2ggYi9nZGItcmhiei0yMjMyMDg2LWdlbmVyYXRlLWdkYi1pbmRleC1jb25z aXN0ZW50bHkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDBlNWM5 NQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6LTIyMzIwODYtZ2VuZXJhdGUtZ2RiLWluZGV4 LWNvbnNpc3RlbnRseS5wYXRjaApAQCAtMCwwICsxLDIzMCBAQAorRnJvbSBGRURPUkFfUEFUQ0hF UyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJldyBCdXJnZXNzIDxhYnVyZ2Vz c0ByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAyNCBOb3YgMjAyMyAxMjowNDozNiArMDAwMAorU3Vi amVjdDogZ2RiLXJoYnotMjIzMjA4Ni1nZW5lcmF0ZS1nZGItaW5kZXgtY29uc2lzdGVudGx5LnBh dGNoCisKKzs7IEJhY2stcG9ydCB1cHN0cmVhbSBjb21taXQgYWZmMjUwMTQ1YWYgYXMgcGFydCBv ZiBhIGZpeCBmb3IKKzs7IG5vbi1kZXRlcm1pbmlzdGljIGdkYi1pbmRleCBnZW5lcmF0aW9uIChS SCBCWiAyMjMyMDg2KS4KKworZ2RiOiBnZW5lcmF0ZSBnZGItaW5kZXggaWRlbnRpY2FsbHkgcmVn YXJkbGVzcyBvZiB3b3JrIHRocmVhZCBjb3VudAorCitJdCB3YXMgb2JzZXJ2ZWQgdGhhdCBjaGFu Z2luZyB0aGUgbnVtYmVyIG9mIHdvcmtlciB0aHJlYWRzIHRoYXQgR0RCCit1c2VzIChtYWludGVu YW5jZSBzZXQgd29ya2VyLXRocmVhZHMgTlVNKSB3b3VsZCBoYXZlIGFuIGltcGFjdCBvbiB0aGUK K2xheW91dCBvZiB0aGUgZ2VuZXJhdGVkIGdkYi1pbmRleC4KKworVGhlIGNhdXNlIHNlZW1zIHRv IGJlIGhvdyB0aGUgQ1UgYXJlIGRpc3RyaWJ1dGVkIGJldHdlZW4gdGhyZWFkcywgYW5kCit0aGVu IHN5bWJvbHMgdGhhdCBhcHBlYXIgaW4gbXVsdGlwbGUgQ1UgY2FuIGJlIGVuY291bnRlcmVkIGVh cmxpZXIgb3IKK2xhdGVyIGRlcGVuZGluZyBvbiB3aGV0aGVyIGEgcGFydGljdWxhciBDVSBtb3Zl cyBiZXR3ZWVuIHRocmVhZHMuCisKK0kgY2VydGFpbmx5IGZvdW5kIHRoaXMgYmVoYXZpb3VyIHdh cyByZXByb2R1Y2libGUgd2hlbiBnZW5lcmF0aW5nIGFuCitpbmRleCBmb3IgR0RCIGl0c2VsZiwg bGlrZToKKworICBnZGIgLXEgLW54IC1uaCAtYmF0Y2ggXAorICAgICAgLWVpZXggJ21haW50IHNl dCB3b3JrZXItdGhyZWFkcyBOVU0nIFwKKyAgICAgIC1leCAnc2F2ZSBnZGItaW5kZXggL3RtcC8n CisKK0FuZCB0aGVuIHNldHRpbmcgZGlmZmVyZW50IHZhbHVlcyBmb3IgTlVNIHdpbGwgY2hhbmdl IHRoZSBnZW5lcmF0ZWQKK2luZGV4LgorCitOb3csIHRoZSBxdWVzdGlvbiBpczogZG9lcyB0aGlz IG1hdHRlcj8KKworSSB3b3VsZCBsaWtlIHRvIHN1Z2dlc3QgdGhhdCB5ZXMsIHRoaXMgZG9lcyBt YXR0ZXIuICBBdCBSZWQgSGF0IHdlCitnZW5lcmF0ZSBhIGdkYi1pbmRleCBhcyBwYXJ0IG9mIHRo ZSBidWlsZCBwcm9jZXNzLCBhbmQgd2Ugd291bGQKK2lkZWFsbHkgbGlrZSB0byBoYXZlIHJlcHJv ZHVjaWJsZSBidWlsZHM6IGZvciB0aGUgc2FtZSBzb3VyY2UsCitjb21waWxlZCB3aXRoIHRoZSBz YW1lIHRvb2wtY2hhaW4sIHdlIHNob3VsZCBnZXQgdGhlIGV4YWN0IHNhbWUgb3V0cHV0CitiaW5h cnkuICBBbmQgd2UgZG8gLi4uLiBleGNlcHQgZm9yIHRoZSBpbmRleC4KKworTm93IHdlIGNvdWxk IHNpbXBseSBmb3JjZSBHREIgdG8gb25seSB1c2UgYSBzaW5nbGUgd29ya2VyIHRocmVhZCB3aGVu Cit3ZSBidWlsZCB0aGUgaW5kZXgsIGJ1dCwgSSBkb24ndCB0aGluayB0aGUgaWRlYSBvZiByZXBy b2R1Y2libGUgYnVpbGRzCitpcyB0aGF0IHN0cmFuZ2UsIHNvIEkgdGhpbmsgd2Ugc2hvdWxkIGVu c3VyZSB0aGF0IG91ciBnZW5lcmF0ZWQKK2luZGV4ZXMgYXJlIGFsd2F5cyByZXByb2R1Y2libGUu CisKK1RvIGFjaGlldmUgdGhpcywgSSBwcm9wb3NlIHRoYXQgd2UgYWRkIGFuIGV4dHJhIHN0ZXAg d2hlbiBidWlsZGluZyB0aGUKK2dkYi1pbmRleCBmaWxlLiAgQWZ0ZXIgY29uc3RydWN0aW5nIHRo ZSBpbml0aWFsIHN5bWJvbCBoYXNoIHRhYmxlCitjb250ZW50cywgd2Ugd2lsbCBwdWxsIGFsbCB0 aGUgc3ltYm9scyBvdXQgb2YgdGhlIGhhc2gsIHNvcnQgdGhlbSwKK3RoZW4gcmUtaW5zZXJ0IHRo ZW0gaW4gc29ydGVkIG9yZGVyLiAgVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZQorc3RydWN0dXJl IG9mIHRoZSBnZW5lcmF0ZWQgaGFzaCB3aWxsIHJlbWFpbiBjb25zaXN0ZW50IChnaXZlbiB0aGUg c2FtZQorc2V0IG9mIHN5bWJvbHMpLgorCitJJ3ZlIGV4dGVuZGVkIHRoZSBleGlzdGluZyBpbmRl eC1maWxlIHRlc3QgdG8gY2hlY2sgdGhhdCB0aGUgZ2VuZXJhdGVkCitpbmRleCBkb2Vzbid0IGNo YW5nZSBpZiB3ZSBhZGp1c3QgdGhlIG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcyB1c2VkLgorR2l2 ZW4gdGhhdCB0aGlzIHRlc3QgaXMgYWxyZWFkeSByYXRoZXIgc2xvdywgSSd2ZSBvbmx5IG1hZGUg b25lIGNoYW5nZQordG8gdGhlIHdvcmtlci10aHJlYWQgY291bnQuICBNYXliZSB0aGlzIHRlc3Qg c2hvdWxkIGJlIGNoYW5nZWQgdG8gdXNlCithIHNtYWxsZXIgYmluYXJ5LCB3aGljaCBpcyBxdWlj a2VyIHRvIGxvYWQsIGFuZCBmb3Igd2hpY2ggd2UgY291bGQKK3RoZW4gdHJ5IG1hbnkgZGlmZmVy ZW50IHdvcmtlciB0aHJlYWQgY291bnRzLgorCitBcHByb3ZlZC1CeTogVG9tIFRyb21leSA8dG9t QHRyb21leS5jb20+CisKK2RpZmYgLS1naXQgYS9nZGIvZHdhcmYyL2luZGV4LXdyaXRlLmMgYi9n ZGIvZHdhcmYyL2luZGV4LXdyaXRlLmMKKy0tLSBhL2dkYi9kd2FyZjIvaW5kZXgtd3JpdGUuYwor KysrIGIvZ2RiL2R3YXJmMi9pbmRleC13cml0ZS5jCitAQCAtMjEwLDYgKzIxMCwxMyBAQCBzdHJ1 Y3QgbWFwcGVkX3N5bXRhYgorICAgdm9pZCBhZGRfaW5kZXhfZW50cnkgKGNvbnN0IGNoYXIgKm5h bWUsIGludCBpc19zdGF0aWMsCisgCQkJZ2RiX2luZGV4X3N5bWJvbF9raW5kIGtpbmQsIG9mZnNl dF90eXBlIGN1X2luZGV4KTsKKyAKKysgIC8qIFdoZW4gZW50cmllcyBhcmUgb3JpZ2luYWxseSBh ZGRlZCBpbnRvIHRoZSBkYXRhIGhhc2ggdGhlIG9yZGVyIHdpbGwKKysgICAgIHZhcnkgYmFzZWQg b24gdGhlIG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcyBHREIgaXMgY29uZmlndXJlZCB0byB1c2Uu CisrICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmVidWlsZCB0aGUgaGFzaCBzdWNoIHRoYXQgdGhl IGZpbmFsIGxheW91dCB3aWxsIGJlCisrICAgICBkZXRlcm1pbmlzdGljIHJlZ2FyZGxlc3Mgb2Yg dGhlIG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcyB1c2VkLiAgKi8KKysKKysgIHZvaWQgc29ydCAo KTsKKysKKyAgIC8qIEFjY2VzcyB0aGUgb2JzdGFjay4gICovCisgICBzdHJ1Y3Qgb2JzdGFjayAq b2JzdGFjayAoKQorICAgeyByZXR1cm4gJm1fc3RyaW5nX29ic3RhY2s7IH0KK0BAIC0yOTYsNiAr MzAzLDY1IEBAIG1hcHBlZF9zeW10YWI6Omhhc2hfZXhwYW5kICgpCisgICAgICAgfQorIH0KKyAK KysvKiBTZWUgbWFwcGVkX3N5bXRhYiBjbGFzcyBkZWNsYXJhdGlvbi4gICovCisrCisrdm9pZCBt YXBwZWRfc3ltdGFiOjpzb3J0ICgpCisreworKyAgLyogTW92ZSBjb250ZW50cyBvdXQgb2YgdGhp cy0+ZGF0YSB2ZWN0b3IuICAqLworKyAgc3RkOjp2ZWN0b3I8c3ltdGFiX2luZGV4X2VudHJ5PiBv cmlnaW5hbF9kYXRhID0gc3RkOjptb3ZlIChtX2RhdGEpOworKworKyAgLyogUmVzdG9yZSB0aGUg c2l6ZSBvZiBtX2RhdGEsIHRoaXMgd2lsbCBhdm9pZCBoYXZpbmcgdG8gZXhwYW5kIHRoZSBoYXNo CisrICAgICB0YWJsZSAoYW5kIHJlaGFzaCBhbGwgZWxlbWVudHMpIHdoZW4gd2UgcmVpbnNlcnQg YWZ0ZXIgc29ydGluZy4KKysgICAgIEhvd2V2ZXIsIHdlIGRvIHJlc2V0IHRoZSBlbGVtZW50IGNv dW50LCB0aGlzIGFsbG93cyBmb3Igc29tZSBzYW5pdHkKKysgICAgIGNoZWNraW5nIGFzc2VydHMg ZHVyaW5nIHRoZSByZWluc2VydCBwaGFzZS4gICovCisrICBnZGJfYXNzZXJ0IChtX2RhdGEuc2l6 ZSAoKSA9PSAwKTsKKysgIG1fZGF0YS5yZXNpemUgKG9yaWdpbmFsX2RhdGEuc2l6ZSAoKSk7Cisr ICBtX2VsZW1lbnRfY291bnQgPSAwOworKworKyAgLyogUmVtb3ZlIGVtcHR5IGVudHJpZXMgZnJv bSBPUklHSU5BTF9EQVRBLCB0aGlzIG1ha2VzIHNvcnRpbmcgcXVpY2tlci4gICovCisrICBhdXRv IGl0ID0gc3RkOjpyZW1vdmVfaWYgKG9yaWdpbmFsX2RhdGEuYmVnaW4gKCksIG9yaWdpbmFsX2Rh dGEuZW5kICgpLAorKwkJCSAgICBbXSAoY29uc3Qgc3ltdGFiX2luZGV4X2VudHJ5ICZlbnRyeSkg LT4gYm9vbAorKwkJCSAgICB7CisrCQkJICAgICAgcmV0dXJuIGVudHJ5Lm5hbWUgPT0gbnVsbHB0 cjsKKysJCQkgICAgfSk7CisrICBvcmlnaW5hbF9kYXRhLmVyYXNlIChpdCwgb3JpZ2luYWxfZGF0 YS5lbmQgKCkpOworKworKyAgLyogU29ydCB0aGUgZXhpc3RpbmcgY29udGVudHMuICAqLworKyAg c3RkOjpzb3J0IChvcmlnaW5hbF9kYXRhLmJlZ2luICgpLCBvcmlnaW5hbF9kYXRhLmVuZCAoKSwK KysJICAgICBbXSAoY29uc3Qgc3ltdGFiX2luZGV4X2VudHJ5ICZhLAorKwkJIGNvbnN0IHN5bXRh Yl9pbmRleF9lbnRyeSAmYikgLT4gYm9vbAorKwkgICAgIHsKKysJICAgICAgIC8qIFJldHVybiB0 cnVlIGlmIEEgaXMgYmVmb3JlIEIuICAqLworKwkgICAgICAgZ2RiX2Fzc2VydCAoYS5uYW1lICE9 IG51bGxwdHIpOworKwkgICAgICAgZ2RiX2Fzc2VydCAoYi5uYW1lICE9IG51bGxwdHIpOworKwor KwkgICAgICAgcmV0dXJuIHN0cmNtcCAoYS5uYW1lLCBiLm5hbWUpIDwgMDsKKysJICAgICB9KTsK KysKKysgIC8qIFJlLWluc2VydCBlYWNoIGl0ZW0gZnJvbSB0aGUgc29ydGVkIGxpc3QuICAqLwor KyAgZm9yIChhdXRvICZlbnRyeSA6IG9yaWdpbmFsX2RhdGEpCisrICAgIHsKKysgICAgICAvKiBX ZSBrbm93IHRoYXQgT1JJR0lOQUxfREFUQSBjb250YWlucyBubyBkdXBsaWNhdGVzLCB0aGlzIGRh dGEgd2FzCisrCSB0YWtlbiBmcm9tIGEgaGFzaCB0YWJsZSB0aGF0IGRlLWR1cGxpY2F0ZWQgZW50 cmllcyBmb3IgdXMsIHNvCisrCSBjb3VudCB0aGlzIGFzIGEgbmV3IGl0ZW0uCisrCisrCSBBcyB3 ZSByZXRhaW5lZCB0aGUgb3JpZ2luYWwgc2l6ZSBvZiBtX2RhdGEgKHNlZSBhYm92ZSkgdGhlbiB3 ZQorKwkgc2hvdWxkIG5ldmVyIG5lZWQgdG8gZ3JvdyBtX2RhdGFfIGR1cmluZyB0aGlzIHJlLWlu c2VydGlvbiBwaGFzZSwKKysJIGFzc2VydCB0aGF0IG5vdy4gICovCisrICAgICAgKyttX2VsZW1l bnRfY291bnQ7CisrICAgICAgZ2RiX2Fzc2VydCAoIXRoaXMtPmhhc2hfbmVlZHNfZXhwYW5kaW5n ICgpKTsKKysKKysgICAgICAvKiBMb29rdXAgYSBzbG90LiAgKi8KKysgICAgICBzeW10YWJfaW5k ZXhfZW50cnkgJnNsb3QgPSB0aGlzLT5maW5kX3Nsb3QgKGVudHJ5Lm5hbWUpOworKworKyAgICAg IC8qIEFzIGRpc2N1c3NlZCBhYm92ZSwgd2Ugc2hvdWxkIG5vdCBmaW5kIGR1cGxpY2F0ZXMuICAq LworKyAgICAgIGdkYl9hc3NlcnQgKHNsb3QubmFtZSA9PSBudWxscHRyKTsKKysKKysgICAgICAv KiBNb3ZlIHRoaXMgaXRlbSBpbnRvIHRoZSBzbG90IHdlIGZvdW5kLiAgKi8KKysgICAgICBzbG90 ID0gc3RkOjptb3ZlIChlbnRyeSk7CisrICAgIH0KKyt9CisrCisgLyogU2VlIGNsYXNzIGRlZmlu aXRpb24uICAqLworIAorIHZvaWQKK0BAIC0xMzI1LDYgKzEzOTEsOSBAQCB3cml0ZV9nZGJpbmRl eCAoZHdhcmYyX3Blcl9vYmpmaWxlICpwZXJfb2JqZmlsZSwKKyAgIGZvciAoYXV0byBtYXAgOiB0 YWJsZS0+Z2V0X2FkZHJtYXBzICgpKQorICAgICB3cml0ZV9hZGRyZXNzX21hcCAobWFwLCBhZGRy X3ZlYywgY3VfaW5kZXhfaHRhYik7CisgCisrICAvKiBFbnN1cmUgc3ltYm9sIGhhc2ggaXMgYnVp bHQgZG9tZXN0aWNhbGx5LiAgKi8KKysgIHN5bXRhYi5zb3J0ICgpOworKworICAgLyogTm93IHRo YXQgd2UndmUgcHJvY2Vzc2VkIGFsbCBzeW1ib2xzIHdlIGNhbiBzaHJpbmsgdGhlaXIgY3VfaW5k aWNlcworICAgICAgbGlzdHMuICAqLworICAgc3ltdGFiLm1pbmltaXplICgpOworZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9pbmRleC1maWxlLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmdkYi9pbmRleC1maWxlLmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL2luZGV4 LWZpbGUuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvaW5kZXgtZmlsZS5leHAKK0BA IC0zOCw2ICszOCw5IEBAIHdpdGhfdGltZW91dF9mYWN0b3IgJHRpbWVvdXRfZmFjdG9yIHsKKyAg ICAgY2xlYW5fcmVzdGFydCAkZmlsZW5hbWUKKyB9CisgCisrIyBSZWNvcmQgaG93IG1hbnkgd29y a2VyIHRocmVhZHMgR0RCIGlzIHVzaW5nLgorK3NldCB3b3JrZXJfdGhyZWFkcyBbZ2RiX2dldF93 b3JrZXJfdGhyZWFkc10KKysKKyAjIEdlbmVyYXRlIGFuIGluZGV4IGZpbGUuCisgc2V0IGRpcjEg W3N0YW5kYXJkX291dHB1dF9maWxlICJpbmRleF8xIl0KKyByZW1vdGVfZXhlYyBob3N0ICJta2Rp ciAtcCAke2RpcjF9IgorQEAgLTExNiwzICsxMTksNDEgQEAgcHJvYyBjaGVja19zeW1ib2xfdGFi bGVfdXNhZ2UgeyBmaWxlbmFtZSB9IHsKKyAKKyBzZXQgaW5kZXhfZmlsZW5hbWVfYmFzZSBbZmls ZSB0YWlsICRmaWxlbmFtZV0KKyBjaGVja19zeW1ib2xfdGFibGVfdXNhZ2UgIiRkaXIxLyR7aW5k ZXhfZmlsZW5hbWVfYmFzZX0uZ2RiLWluZGV4IgorKworKyMgSWYgR0RCIGlzIHVzaW5nIG1vcmUg dGhhbiAxIHdvcmtlciB0aHJlYWQgdGhlbiByZWR1Y2UgdGhlIG51bWJlciBvZgorKyMgd29ya2Vy IHRocmVhZHMsIHJlZ2VuZXJhdGUgdGhlIGluZGV4LCBhbmQgY2hlY2sgdGhhdCB3ZSBnZXQgdGhl IHNhbWUKKysjIGluZGV4IGZpbGUgYmFjay4gIEF0IG9uZSBwb2ludCB0aGUgbGF5b3V0IG9mIHRo ZSBpbmRleCB3b3VsZCB2YXJ5CisrIyBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIHdvcmtlciB0aHJl YWRzIHVzZWQuCisraWYgeyAkd29ya2VyX3RocmVhZHMgPiAxIH0geworKyAgICAjIFN0YXJ0IEdE QiwgYnV0IGRvbid0IGxvYWQgYSBmaWxlIHlldC4KKysgICAgY2xlYW5fcmVzdGFydAorKworKyAg ICAjIEFkanVzdCB0aGUgbnVtYmVyIG9mIHRocmVhZHMgdG8gdXNlLgorKyAgICBzZXQgcmVkdWNl ZF90aHJlYWRzIFtleHByICR3b3JrZXJfdGhyZWFkcyAvIDJdCisrICAgIGdkYl90ZXN0X25vX291 dHB1dCAibWFpbnQgc2V0IHdvcmtlci10aHJlYWRzICRyZWR1Y2VkX3RocmVhZHMiCisrCisrICAg IHdpdGhfdGltZW91dF9mYWN0b3IgJHRpbWVvdXRfZmFjdG9yIHsKKysJIyBOb3cgbG9hZCB0aGUg dGVzdCBiaW5hcnkuCisrCWdkYl9maWxlX2NtZCAkZmlsZW5hbWUKKysgICAgfQorKworKyAgICAj IEdlbmVyYXRlIGFuIGluZGV4IGZpbGUuCisrICAgIHNldCBkaXIyIFtzdGFuZGFyZF9vdXRwdXRf ZmlsZSAiaW5kZXhfMiJdCisrICAgIHJlbW90ZV9leGVjIGhvc3QgIm1rZGlyIC1wICR7ZGlyMn0i CisrICAgIHdpdGhfdGltZW91dF9mYWN0b3IgJHRpbWVvdXRfZmFjdG9yIHsKKysJZ2RiX3Rlc3Rf bm9fb3V0cHV0ICJzYXZlIGdkYi1pbmRleCAkZGlyMiIgXAorKwkgICAgImNyZWF0ZSBzZWNvbmQg Z2RiLWluZGV4IGZpbGUiCisrICAgIH0KKysKKysgICAgIyBDbG9zZSBHREIuCisrICAgIGdkYl9l eGl0CisrCisrICAgICMgTm93IGNoZWNrIHRoYXQgdGhlIGluZGV4IGZpbGVzIGFyZSBpZGVudGlj YWwuCisrICAgIGZvcmVhY2ggc3VmZml4IHsgZ2RiLWluZGV4ICB9IHsKKysJc2V0IHJlc3VsdCBc CisrCSAgICBbcmVtb3RlX2V4ZWMgaG9zdCBcCisrCQkgImNtcCAtcyBcIiRkaXIxLyR7aW5kZXhf ZmlsZW5hbWVfYmFzZX0uJHtzdWZmaXh9XCIgXCIkZGlyMi8ke2luZGV4X2ZpbGVuYW1lX2Jhc2V9 LiR7c3VmZml4fVwiIl0KKysJZ2RiX2Fzc2VydCB7IFtsaW5kZXggJHJlc3VsdCAwXSA9PSAwIH0g XAorKwkgICAgIiRzdWZmaXggZmlsZXMgYXJlIGlkZW50aWNhbCIKKysgICAgfQorK30KK2RpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ri LmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9saWIvZ2RiLmV4cAorQEAgLTkyNzQsNiArOTI3NCwyMSBAQCBwcm9jIGdkYl9zdGVwX3VudGls IHsgcmVnZXhwIHt0ZXN0X25hbWUgIiJ9IHttYXhfc3RlcHMgMTB9IH0geworICAgICB9CisgfQor IAorKyMgUmV0dXJuIHRoZSBudW1iZXIgb2Ygd29ya2VyIHRocmVhZHMgdGhhdCBHREIgaXMgY3Vy cmVudGx5IHVzaW5nLgorKworK3Byb2MgZ2RiX2dldF93b3JrZXJfdGhyZWFkcyB7IHt0ZXN0bmFt ZSAiIn0gfSB7CisrICAgIHNldCB3b3JrZXJfdGhyZWFkcyAiVU5LTk9XTiIKKysgICAgZ2RiX3Rl c3RfbXVsdGlwbGUgIm1haW50ZW5hbmNlIHNob3cgd29ya2VyLXRocmVhZHMiICR0ZXN0bmFtZSB7 CisrCS13cmFwIC1yZSAiVGhlIG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcyBHREIgY2FuIHVzZSBp cyB1bmxpbWl0ZWQgXFwoY3VycmVudGx5ICgkOjpkZWNpbWFsKVxcKVxcLiIgeworKwkgICAgc2V0 IHdvcmtlcl90aHJlYWRzICRleHBlY3Rfb3V0KDEsc3RyaW5nKQorKwl9CisrCS13cmFwIC1yZSAi VGhlIG51bWJlciBvZiB3b3JrZXIgdGhyZWFkcyBHREIgY2FuIHVzZSBpcyAoJDo6ZGVjaW1hbClc XC4iIHsKKysJICAgIHNldCB3b3JrZXJfdGhyZWFkcyAkZXhwZWN0X291dCgxLHN0cmluZykKKysJ fQorKyAgICB9CisrICAgIHJldHVybiAkd29ya2VyX3RocmVhZHMKKyt9CisrCisgIyBDaGVjayBp ZiB0aGUgY29tcGlsZXIgZW1pdHMgZXBpbG9ndWUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZAorICMg d2l0aCB0aGUgY2xvc2luZyBicmFjZSBvciB3aXRoIHRoZSBsYXN0IHN0YXRlbWVudCBsaW5lLgor ICMKCmRpZmYgLS1naXQgYS9nZGItcmhiei0yMjMyMDg2LXJlZHVjZS1zaXplLW9mLWdkYi1pbmRl eC5wYXRjaCBiL2dkYi1yaGJ6LTIyMzIwODYtcmVkdWNlLXNpemUtb2YtZ2RiLWluZGV4LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllYWY2MTUKLS0tIC9kZXYvbnVs bAorKysgYi9nZGItcmhiei0yMjMyMDg2LXJlZHVjZS1zaXplLW9mLWdkYi1pbmRleC5wYXRjaApA QCAtMCwwICsxLDIyMiBAQAorRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IEFuZHJldyBCdXJnZXNzIDxhYnVyZ2Vzc0ByZWRoYXQuY29tPgorRGF0ZTog RnJpLCAyNCBOb3YgMjAyMyAxMTo1MDozNSArMDAwMAorU3ViamVjdDogZ2RiLXJoYnotMjIzMjA4 Ni1yZWR1Y2Utc2l6ZS1vZi1nZGItaW5kZXgucGF0Y2gKKworOzsgQmFjay1wb3J0IHVwc3RyZWFt IGNvbW1pdCBhYTE5YmMxZDI1OSBhcyBwYXJ0IG9mIGEgZml4IGZvcgorOzsgbm9uLWRldGVybWlu aXN0aWMgZ2RiLWluZGV4IGdlbmVyYXRpb24gKFJIIEJaIDIyMzIwODYpLgorCitnZGI6IHJlZHVj ZSBzaXplIG9mIGdlbmVyYXRlZCBnZGItaW5kZXggZmlsZQorCitJIG5vdGljZWQgaW4gcGFzc2lu ZyB0aGF0IG91dCBhbGdvcml0aG0gZm9yIGdlbmVyYXRpbmcgdGhlIGdkYi1pbmRleAorZmlsZSBp cyBpbmNvcnJlY3QuICBXaGVuIGJ1aWxkaW5nIHRoZSBoYXNoIHRhYmxlIGluIGFkZF9pbmRleF9l bnRyeSB3ZQorY291bnQgZXZlcnkgaW5jb21pbmcgZW50cnkgcmVoYXNoIHdoZW4gdGhlIG51bWJl ciBvZiBlbnRyaWVzIGdldHMgdG9vCitsYXJnZS4gIEhvd2V2ZXIsIHNvbWUgb2YgdGhlIGluY29t aW5nIGVudHJpZXMgd2lsbCBiZSBkdXBsaWNhdGVzLAord2hpY2ggZG9uJ3QgYWN0dWFsbHkgcmVz dWx0IGluIG5ldyBpdGVtcyBiZWluZyBhZGRlZCB0byB0aGUgaGFzaAordGFibGUuCisKK0FzIGEg cmVzdWx0LCB3ZSBncm93IHRoZSBnZGItaW5kZXggaGFzaCB0YWJsZSBmYXIgdG9vIG9mdGVuLgor CitXaXRoIGFuIHVubW9kaWZpZWQgR0RCLCBnZW5lcmF0aW5nIGEgZ2RiLWluZGV4IGZvciBHREIs IEkgc2VlIGEgZmlsZQorc2l6ZSBvZiA5ME0sIHdpdGggYSBoYXNoIHVzYWdlIChpbiB0aGUgZ2Vu ZXJhdGVkIGluZGV4IGZpbGUpIG9mIGp1c3QKKzIuNiUuCisKK1dpdGggYSBwYXRjaGVkIEdEQiwg Z2VuZXJhdGluZyBhIGdkYi1pbmRleCBmb3IgdGhlIF9zYW1lXyBHREIgYmluYXJ5LAorSSBub3cg c2VlIGEgZ2RiLWluZGV4IGZpbGUgc2l6ZSBvZiAzME0sIHdpdGggYSBoYXNoIHVzYWdlIG9mIDQx LjklLgorCitUaGlzIGlzIGEgNjclIHJlZHVjdGlvbiBpbiBnZGItaW5kZXggZmlsZSBzaXplLgor CitPYnZpb3VzbHksIG5vdCBldmVyeSBnZGItaW5kZXggZmlsZSBpcyBnb2luZyB0byBzZWUgc3Vj aCBiaWcgc2F2aW5ncywKK2hvd2V2ZXIsIHRoZSBsYXJnZXIgYSBwcm9ncmFtLCBhbmQgdGhlIG1v cmUgc3ltYm9scyB0aGF0IGFyZQorZHVwbGljYXRlZCBiZXR3ZWVuIGNvbXBpbGF0aW9uIHVuaXRz LCB0aGUgbW9yZSBHREIgd291bGQgb3ZlciBjb3VudCwKK2FuZCBzbywgb3Zlci1ncm93IHRoZSBp bmRleC4KKworVGhlIGdkYi1pbmRleCBoYXNoIHRhYmxlIHdlIGNyZWF0ZSBoYXMgYSBtaW5pbXVt IHNpemUgb2YgMTAyNCwgYW5kCit0aGVuIHdlIGdyb3cgdGhlIGhhc2ggd2hlbiBpdCBpcyA3NSUg ZnVsbCwgZG91YmxpbmcgdGhlIGhhc2ggdGFibGUgYXQKK3RoYXQgdGltZS4gIEdpdmVuIHRoaXMs IHRoZW4gd2UgZXhwZWN0IHRoYXQgZWl0aGVyOgorCisgIGEuIFRoZSBoYXNoIHRhYmxlIGlzIHNp emUgMTAyNCwgYW5kIGxlc3MgdGhhbiA3NSUgZnVsbCwgb3IKKyAgYi4gVGhlIGhhc2ggdGFibGUg aXMgYmV0d2VlbiAzNy41JSBhbmQgNzUlIGZ1bGwuCisKK0kndmUgaW5jbHVkZSBhIHRlc3QgdGhh dCBjaGVja3Mgc29tZSBvZiB0aGVzZSBjb25zdHJhaW50cyAtLSBJJ3ZlIG5vdAorYm90aGVyZWQg dG8gY2hlY2sgdGhlIHVwcGVyIGxpbWl0LCBhbmQgb3ZlciBmdWxsIGhhc2ggdGFibGUgaXNuJ3QK K3JlYWxseSBhIHByb2JsZW0gaGVyZSwgYnV0IGlmIHRoZSBmaWxsIHBlcmNlbnRhZ2UgaXMgbGVz cyB0aGFuIDM3LjUlCit0aGVuIHRoaXMgaW5kaWNhdGVzIHRoYXQgd2UndmUgZG9uZSBzb21ldGhp bmcgd3JvbmcgKG9idmlvdXNseSwgSSBhbHNvCitjaGVjayBmb3IgdGhlIDEwMjQgbWluaW11bSBz aXplKS4KKworQXBwcm92ZWQtQnk6IFRvbSBUcm9tZXkgPHRvbUB0cm9tZXkuY29tPgorCitkaWZm IC0tZ2l0IGEvZ2RiL2R3YXJmMi9pbmRleC13cml0ZS5jIGIvZ2RiL2R3YXJmMi9pbmRleC13cml0 ZS5jCistLS0gYS9nZGIvZHdhcmYyL2luZGV4LXdyaXRlLmMKKysrKyBiL2dkYi9kd2FyZjIvaW5k ZXgtd3JpdGUuYworQEAgLTI1NCwyMCArMjU0LDI5IEBAIGFkZF9pbmRleF9lbnRyeSAoc3RydWN0 IG1hcHBlZF9zeW10YWIgKnN5bXRhYiwgY29uc3QgY2hhciAqbmFtZSwKKyAJCSBpbnQgaXNfc3Rh dGljLCBnZGJfaW5kZXhfc3ltYm9sX2tpbmQga2luZCwKKyAJCSBvZmZzZXRfdHlwZSBjdV9pbmRl eCkKKyB7CistICBvZmZzZXRfdHlwZSBjdV9pbmRleF9hbmRfYXR0cnM7CisrICBzeW10YWJfaW5k ZXhfZW50cnkgKnNsb3QgPSAmZmluZF9zbG90IChzeW10YWIsIG5hbWUpOworKyAgaWYgKHNsb3Qt Pm5hbWUgPT0gTlVMTCkKKysgICAgeworKyAgICAgIC8qIFRoaXMgaXMgYSBuZXcgZWxlbWVudCBp biB0aGUgaGFzaCB0YWJsZS4gICovCisrICAgICAgKytzeW10YWItPm5fZWxlbWVudHM7CisgCist ICArK3N5bXRhYi0+bl9lbGVtZW50czsKKy0gIGlmICg0ICogc3ltdGFiLT5uX2VsZW1lbnRzIC8g MyA+PSBzeW10YWItPmRhdGEuc2l6ZSAoKSkKKy0gICAgaGFzaF9leHBhbmQgKHN5bXRhYik7Cisr ICAgICAgLyogV2UgbWlnaHQgbmVlZCB0byBncm93IHRoZSBoYXNoIHRhYmxlLiAgKi8KKysgICAg ICBpZiAoNCAqIHN5bXRhYi0+bl9lbGVtZW50cyAvIDMgPj0gc3ltdGFiLT5kYXRhLnNpemUgKCkp CisrCXsKKysJICBoYXNoX2V4cGFuZCAoc3ltdGFiKTsKKyAKKy0gIHN5bXRhYl9pbmRleF9lbnRy eSAmc2xvdCA9IGZpbmRfc2xvdCAoc3ltdGFiLCBuYW1lKTsKKy0gIGlmIChzbG90Lm5hbWUgPT0g TlVMTCkKKy0gICAgeworLSAgICAgIHNsb3QubmFtZSA9IG5hbWU7CisrCSAgLyogVGhpcyBlbGVt ZW50IHdpbGwgaGF2ZSBhIGRpZmZlcmVudCBzbG90IGluIHRoZSBuZXcgdGFibGUuICAqLworKwkg IHNsb3QgPSAmZmluZF9zbG90IChzeW10YWIsIG5hbWUpOworKworKwkgIC8qIEJ1dCBpdCBzaG91 bGQgc3RpbGwgYmUgYSBuZXcgZWxlbWVudCBpbiB0aGUgaGFzaCB0YWJsZS4gICovCisrCSAgZ2Ri X2Fzc2VydCAoc2xvdC0+bmFtZSA9PSBudWxscHRyKTsKKysJfQorKworKyAgICAgIHNsb3QtPm5h bWUgPSBuYW1lOworICAgICAgIC8qIGluZGV4X29mZnNldCBpcyBzZXQgbGF0ZXIuICAqLworICAg ICB9CisgCistICBjdV9pbmRleF9hbmRfYXR0cnMgPSAwOworKyAgb2Zmc2V0X3R5cGUgY3VfaW5k ZXhfYW5kX2F0dHJzID0gMDsKKyAgIERXMl9HREJfSU5ERVhfQ1VfU0VUX1ZBTFVFIChjdV9pbmRl eF9hbmRfYXR0cnMsIGN1X2luZGV4KTsKKyAgIERXMl9HREJfSU5ERVhfU1lNQk9MX1NUQVRJQ19T RVRfVkFMVUUgKGN1X2luZGV4X2FuZF9hdHRycywgaXNfc3RhdGljKTsKKyAgIERXMl9HREJfSU5E RVhfU1lNQk9MX0tJTkRfU0VUX1ZBTFVFIChjdV9pbmRleF9hbmRfYXR0cnMsIGtpbmQpOworQEAg LTI3OSw3ICsyODgsNyBAQCBhZGRfaW5kZXhfZW50cnkgKHN0cnVjdCBtYXBwZWRfc3ltdGFiICpz eW10YWIsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICB0aGUgbGFzdCBlbnRyeSBwdXNoZWQpLCBi dXQgYSBzeW1ib2wgY291bGQgaGF2ZSBtdWx0aXBsZSBraW5kcyBpbiBvbmUgQ1UuCisgICAgICBU byBrZWVwIHRoaW5ncyBzaW1wbGUgd2UgZG9uJ3Qgd29ycnkgYWJvdXQgdGhlIGR1cGxpY2F0aW9u IGhlcmUgYW5kCisgICAgICBzb3J0IGFuZCB1bmlxdWlmeSB0aGUgbGlzdCBhZnRlciB3ZSd2ZSBw cm9jZXNzZWQgYWxsIHN5bWJvbHMuICAqLworLSAgc2xvdC5jdV9pbmRpY2VzLnB1c2hfYmFjayAo Y3VfaW5kZXhfYW5kX2F0dHJzKTsKKysgIHNsb3QtPmN1X2luZGljZXMucHVzaF9iYWNrIChjdV9p bmRleF9hbmRfYXR0cnMpOworIH0KKyAKKyAvKiBTZWUgc3ltdGFiX2luZGV4X2VudHJ5LiAgKi8K K2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvaW5kZXgtZmlsZS5leHAgYi9nZGIv dGVzdHN1aXRlL2dkYi5nZGIvaW5kZXgtZmlsZS5leHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvaW5kZXgtZmlsZS5leHAK K0BAIC0wLDAgKzEsMTE4IEBACisrIyBDb3B5cmlnaHQgMjAyMyBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBMb2Fk IHRoZSBHREIgZXhlY3V0YWJsZSwgYW5kIHRoZW4gJ3NhdmUgZ2RiLWluZGV4JywgYW5kIG1ha2Ug c29tZQorKyMgY2hlY2tzIG9mIHRoZSBnZW5lcmF0ZWQgaW5kZXggZmlsZS4KKysKKytsb2FkX2xp YiBzZWxmdGVzdC1zdXBwb3J0LmV4cAorKworKyMgQ2FuJ3Qgc2F2ZSBhbiBpbmRleCB3aXRoIHJl YWRub3cuCisraWYge1tyZWFkbm93XX0geworKyAgICB1bnRlc3RlZCAiY2Fubm90IGNyZWF0ZSBh biBpbmRleCB3aGVuIHJlYWRub3cgaXMgaW4gdXNlIgorKyAgICByZXR1cm4gLTEKKyt9CisrCisr IyBBIG11bHRpcGxpZXIgdXNlZCB0byBlbnN1cmUgc2xvdyB0YXNrcyBhcmUgbGVzcyBsaWtlbHkg dG8gdGltZW91dC4KKytzZXQgdGltZW91dF9mYWN0b3IgMjAKKysKKytzZXQgZmlsZW5hbWUgW3Nl bGZ0ZXN0X3ByZXBhcmVdCisraWYgeyAkZmlsZW5hbWUgZXEgIiIgfSB7CisrICAgIHVuc3VwcG9y dGVkICIke2dkYl90ZXN0X2ZpbGVfbmFtZX0uZXhwIgorKyAgICByZXR1cm4gLTEKKyt9CisrCisr d2l0aF90aW1lb3V0X2ZhY3RvciAkdGltZW91dF9mYWN0b3IgeworKyAgICAjIFN0YXJ0IEdEQiwg bG9hZCBGSUxFTkFNRS4KKysgICAgY2xlYW5fcmVzdGFydCAkZmlsZW5hbWUKKyt9CisrCisrIyBH ZW5lcmF0ZSBhbiBpbmRleCBmaWxlLgorK3NldCBkaXIxIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAi aW5kZXhfMSJdCisrcmVtb3RlX2V4ZWMgaG9zdCAibWtkaXIgLXAgJHtkaXIxfSIKKyt3aXRoX3Rp bWVvdXRfZmFjdG9yICR0aW1lb3V0X2ZhY3RvciB7CisrICAgIGdkYl90ZXN0X25vX291dHB1dCAi c2F2ZSBnZGItaW5kZXggJGRpcjEiIFwKKysJImNyZWF0ZSBnZGItaW5kZXggZmlsZSIKKyt9Cisr CisrIyBDbG9zZSBHREIuCisrZ2RiX2V4aXQKKysKKysjIFZhbGlkYXRlIHRoYXQgdGhlIGluZGV4 LWZpbGUgRklMRU5BTUUgaGFzIG1hZGUgZWZmaWNpZW50IHVzZSBvZiBpdHMKKysjIHN5bWJvbCBo YXNoIHRhYmxlLiAgQ2FsY3VsYXRlIHRoZSBudW1iZXIgb2Ygc3ltYm9scyBpbiB0aGUgaGFzaAor KyMgdGFibGUgYW5kIHRoZSB0b3RhbCBoYXNoIHRhYmxlIHNpemUuICBUaGUgaGFzaCB0YWJsZSBz dGFydHMgd2l0aAorKyMgMTAyNCBlbnRyaWVzLCBhbmQgdGhlbiBkb3VibGVzIGVhY2ggdGltZSBp dCBpcyBmaWxsZWQgdG8gNzUlLiAgQXQKKysjIDc1JSBmaWxsZWQsIGRvdWJsaW5nIHRoZSBzaXpl IHRha2VzIGl0IHRvIDM3LjUlIGZpbGxlZC4KKysjCisrIyBUaHVzLCB0aGUgaGFzaCB0YWJsZSBp cyBjb3JyZWN0bHkgZmlsbGVkIGlmOgorKyMgIDEuIEl0cyBzaXplIGlzIDEwMjQgKGkuZS4gaXQg aGFzIG5vdCB5ZXQgaGFkIGl0cyBmaXJzdCBkb3VibGluZyksIG9yCisrIyAgMi4gSXRzIGZpbGxl ZCBwZXJjZW50YWdlIGlzIG92ZXIgMzclCisrIworKyMgV2UgY291bGQgY2hlY2sgdGhhdCBpdCBp cyBub3Qgb3ZlciBmaWxsZWQsIGJ1dCBJIGRvbid0IGFzIHRoYXQncyBub3QKKysjIHJlYWxseSBh biBpc3N1ZS4gIEJ1dCB3ZSBkaWQgb25jZSBoYXZlIGEgYnVnIHdoZXJlIHRoZSB0YWJsZSB3YXMK KysjIGRvdWJsZWQgaW5jb3JyZWN0bHksIGluIHdoaWNoIGNhc2Ugd2UnZCBzZWUgYSBmaWxsZWQg cGVyY2VudGFnZSBvZgorKyMgYXJvdW5kIDIlIGluIHNvbWUgY2FzZXMsIHdoaWNoIGlzIGEgaHVn ZSB3YXN0ZSBvZiBkaXNrIHNwYWNlLgorK3Byb2MgY2hlY2tfc3ltYm9sX3RhYmxlX3VzYWdlIHsg ZmlsZW5hbWUgfSB7CisrICAgICMgT3BlbiB0aGUgZmlsZSBpbiBiaW5hcnkgbW9kZSBhbmQgcmVh ZC1vbmx5IG1vZGUuCisrICAgIHNldCBmcCBbb3BlbiAkZmlsZW5hbWUgcmJdCisrCisrICAgICMg Q29uZmlndXJlIHRoZSBjaGFubmVsIHRvIHVzZSBiaW5hcnkgdHJhbnNsYXRpb24uCisrICAgIGZj b25maWd1cmUgJGZwIC10cmFuc2xhdGlvbiBiaW5hcnkKKysKKysgICAgIyBSZWFkIHRoZSBmaXJz dCA4IGJ5dGVzIG9mIHRoZSBmaWxlLCB3aGljaCBjb250YWluIHRoZSBoZWFkZXIgb2YKKysgICAg IyB0aGUgaW5kZXggc2VjdGlvbi4KKysgICAgc2V0IGhlYWRlciBbcmVhZCAkZnAgW2V4cHIgNyAq IDRdXQorKworKyAgICAjIFNjYW4gdGhlIGhlYWRlciB0byBnZXQgdGhlIHZlcnNpb24sIHRoZSBD VSBsaXN0IG9mZnNldCwgYW5kIHRoZQorKyAgICAjIHR5cGVzIENVIGxpc3Qgb2Zmc2V0LgorKyAg ICBiaW5hcnkgc2NhbiAkaGVhZGVyIGlpaWlpaSB2ZXJzaW9uIFwKKysJXyBfIF8gc3ltYm9sX3Rh YmxlX29mZnNldCBzaG9ydGN1dF9vZmZzZXQKKysKKysgICAgIyBUaGUgbGVuZ3RoIG9mIHRoZSBz eW1ib2wgaGFzaCB0YWJsZSAoaW4gZW50cmllcykuCisrICAgIHNldCBsZW4gW2V4cHIgKCRzaG9y dGN1dF9vZmZzZXQgLSAkc3ltYm9sX3RhYmxlX29mZnNldCkgLyA4XQorKworKyAgICAjIE5vdyB3 YWxrIHRoZSBoYXNoIHRhYmxlIGFuZCBjb3VudCBob3cgbWFueSBlbnRyaWVzIGFyZSBpbiB1c2Uu CisrICAgIHNldCBvZmZzZXQgJHN5bWJvbF90YWJsZV9vZmZzZXQKKysgICAgc2V0IGNvdW50IDAK KysgICAgd2hpbGUgeyAkb2Zmc2V0IDwgJHNob3J0Y3V0X29mZnNldCB9IHsKKysJc2VlayAkZnAg JG9mZnNldAorKwlzZXQgZW50cnkgW3JlYWQgJGZwIDhdCisrCWJpbmFyeSBzY2FuICRlbnRyeSBp aSBuYW1lX3B0ciBmbGFncworKwlpZiB7ICRuYW1lX3B0ciAhPSAwIH0geworKwkgICAgaW5jciBj b3VudAorKwl9CisrCisrCWluY3Igb2Zmc2V0IDgKKysgICAgfQorKworKyAgICAjIENsb3NlIHRo ZSBmaWxlLgorKyAgICBjbG9zZSAkZnAKKysKKysgICAgIyBDYWxjdWxhdGUgaG93IGZ1bGwgdGhl IGNhY2hlIGlzLgorKyAgICBzZXQgcGN0IFtleHByICgxMDAgKiBkb3VibGUoJGNvdW50KSkgLyAk bGVuXQorKworKyAgICAjIFdyaXRlIG91ciByZXN1bHRzIG91dCB0byB0aGUgZ2RiLmxvZy4KKysg ICAgdmVyYm9zZSAtbG9nICJIYXNoIHRhYmxlIHNpemU6ICRsZW4iCisrICAgIHZlcmJvc2UgLWxv ZyAiSGFzaCB0YWJsZSBlbnRyaWVzOiAkY291bnQiCisrICAgIHZlcmJvc2UgLWxvZyAiUGVyY2Vu dGFnZSB1c2FnZTogJHBjdCUiCisrCisrICAgICMgVGhlIG1pbmltdW0gZmlsbCBwZXJjZW50YWdl IGlzIGFjdHVhbGx5IDM3LjUlLCBidXQgd2UgZ2l2ZSBUQ0wgYQorKyAgICAjIGxpdHRsZSBmbGV4 aWJpbGl0eSBpbiBjYXNlIHRoZSBGUCBtYXRocyBnaXZlIGEgcmVzdWx0IGEgbGl0dGxlCisrICAg ICMgb2ZmLgorKyAgICBnZGJfYXNzZXJ0IHsgJGxlbiA9PSAxMDI0IHx8ICRwY3QgPiAzNyB9IFwK KysJInN5bWJvbCBoYXNoIHRhYmxlIHVzYWdlIgorK30KKysKKytzZXQgaW5kZXhfZmlsZW5hbWVf YmFzZSBbZmlsZSB0YWlsICRmaWxlbmFtZV0KKytjaGVja19zeW1ib2xfdGFibGVfdXNhZ2UgIiRk aXIxLyR7aW5kZXhfZmlsZW5hbWVfYmFzZX0uZ2RiLWluZGV4IgoKZGlmZiAtLWdpdCBhL2dkYi1y aGJ6MjIzMjA4Ni1yZWZhY3Rvci1zZWxmdGVzdC1zdXBwb3J0LnBhdGNoIGIvZ2RiLXJoYnoyMjMy MDg2LXJlZmFjdG9yLXNlbGZ0ZXN0LXN1cHBvcnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZTlmZWJmNwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MjIzMjA4 Ni1yZWZhY3Rvci1zZWxmdGVzdC1zdXBwb3J0LnBhdGNoCkBAIC0wLDAgKzEsNzcgQEAKK0Zyb20g RkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZXcgQnVy Z2VzcyA8YWJ1cmdlc3NAcmVkaGF0LmNvbT4KK0RhdGU6IEZyaSwgMjQgTm92IDIwMjMgMTE6MTA6 MDggKzAwMDAKK1N1YmplY3Q6IGdkYi1yaGJ6MjIzMjA4Ni1yZWZhY3Rvci1zZWxmdGVzdC1zdXBw b3J0LnBhdGNoCisKKzs7IEJhY2stcG9ydCB1cHN0cmVhbSBjb21taXQgMWYwZmFiN2ZmODYgYXMg cGFydCBvZiBhIGZpeCBmb3IKKzs7IG5vbi1kZXRlcm1pbmlzdGljIGdkYi1pbmRleCBnZW5lcmF0 aW9uIChSSCBCWiAyMjMyMDg2KS4KKworZ2RiL3Rlc3RzdWl0ZTogc21hbGwgcmVmYWN0b3IgaW4g c2VsZnRlc3Qtc3VwcG9ydC5leHAKKworU3BsaXQgb3V0IHRoZSBjb2RlIHRoYXQgbWFrZXMgYSBj b3B5IG9mIHRoZSBHREIgZXhlY3V0YWJsZSByZWFkeSBmb3IKK3NlbGYgdGVzdGluZyBpbnRvIGEg bmV3IHByb2MuICBBIGxhdGVyIGNvbW1pdCBpbiB0aGlzIHNlcmllcyB3YW50cyB0bworbG9hZCB0 aGUgR0RCIGV4ZWN1dGFibGUgaW50byBHREIgKGZvciBjcmVhdGluZyBhbiBvbi1kaXNrIGRlYnVn CitpbmRleCksIGJ1dCBkb2Vzbid0IG5lZWQgdG8gbWFrZSB1c2Ugb2YgdGhlIGZ1bGwgZG9fc2Vs Zl90ZXN0cyBwcm9jLgorCitUaGVyZSBzaG91bGQgYmUgbm8gY2hhbmdlcyBpbiB3aGF0IGlzIHRl c3RlZCBhZnRlciB0aGlzIGNvbW1pdC4KKworQXBwcm92ZWQtQnk6IFRvbSBUcm9tZXkgPHRvbUB0 cm9tZXkuY29tPgorCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvc2VsZnRlc3Qtc3Vw cG9ydC5leHAgYi9nZGIvdGVzdHN1aXRlL2xpYi9zZWxmdGVzdC1zdXBwb3J0LmV4cAorLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9saWIvc2VsZnRlc3Qtc3VwcG9ydC5leHAKKysrKyBiL2dkYi90ZXN0c3Vp dGUvbGliL3NlbGZ0ZXN0LXN1cHBvcnQuZXhwCitAQCAtOTIsMTEgKzkyLDEzIEBAIHByb2Mgc2Vs ZnRlc3Rfc2V0dXAgeyBleGVjdXRhYmxlIGZ1bmN0aW9uIH0geworICAgICByZXR1cm4gMAorIH0K KyAKKy0jIEEgc2ltcGxlIHdheSB0byBydW4gc29tZSBzZWxmLXRlc3RzLgorLQorLXByb2MgZG9f c2VsZl90ZXN0cyB7ZnVuY3Rpb24gYm9keX0geworLSAgICBnbG9iYWwgR0RCIHRvb2wKKy0KKysj IFByZXBhcmUgZm9yIHJ1bm5pbmcgYSBzZWxmLXRlc3QgYnkgbW92aW5nIHRoZSBHREIgZXhlY3V0 YWJsZSB0byBhCisrIyBsb2NhdGlvbiB3aGVyZSB3ZSBjYW4gdXNlIGl0IGFzIHRoZSBpbmZlcmlv ci4gIFJldHVybiB0aGUgZmlsZW5hbWUKKysjIG9mIHRoZSBuZXcgbG9jYXRpb24uCisrIworKyMg SWYgdGhlIGN1cnJlbnQgdGVzdGluZyBzZXR1cCBpcyBub3Qgc3VpdGFibGUgZm9yIHJ1bm5pbmcg YQorKyMgc2VsZi10ZXN0LCB0aGVuIHJldHVybiBhbiBlbXB0eSBzdHJpbmcuCisrcHJvYyBzZWxm dGVzdF9wcmVwYXJlIHt9IHsKKyAgICAgIyBBcmUgd2UgdGVzdGluZyB3aXRoIGEgcmVtb3RlIGJv YXJkPyAgSW4gdGhhdCBjYXNlLCB0aGUgdGFyZ2V0CisgICAgICMgd29uJ3QgaGF2ZSBhY2Nlc3Mg dG8gdGhlIEdEQidzIGF1eGlsbGlhcnkgZGF0YSBmaWxlcworICAgICAjIChkYXRhLWRpcmVjdG9y eSwgZXRjLikuICBJdCdzIHNpbXBsZXIgdG8ganVzdCBza2lwLgorQEAgLTEyMCwxOSArMTIyLDMx IEBAIHByb2MgZG9fc2VsZl90ZXN0cyB7ZnVuY3Rpb24gYm9keX0geworICAgICAjIFJ1biB0aGUg dGVzdCB3aXRoIHNlbGYuICBDb3B5IHRoZSBmaWxlIGV4ZWN1dGFibGUgZmlsZSBpbiBjYXNlCisg ICAgICMgdGhpcyBPUyBkb2Vzbid0IGxpa2UgdG8gZWRpdCBpdHMgb3duIHRleHQgc3BhY2UuCisg CistICAgIHNldCBHREJfRlVMTFBBVEggW2ZpbmRfZ2RiICRHREJdCisrICAgIHNldCBnZGJfZnVs bHBhdGggW2ZpbmRfZ2RiICQ6OkdEQl0KKyAKKyAgICAgaWYge1tpc19yZW1vdGUgaG9zdF19IHsK Ky0Jc2V0IHhnZGIgeCR0b29sCisrCXNldCB4Z2RiIHgkOjp0b29sCisgICAgIH0gZWxzZSB7Cist CXNldCB4Z2RiIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSB4JHRvb2xdCisrCXNldCB4Z2RiIFtzdGFu ZGFyZF9vdXRwdXRfZmlsZSB4JDo6dG9vbF0KKyAgICAgfQorIAorICAgICAjIFJlbW92ZSBhbnkg b2xkIGNvcHkgbHlpbmcgYXJvdW5kLgorICAgICByZW1vdGVfZmlsZSBob3N0IGRlbGV0ZSAkeGdk YgorIAorKyAgICBzZXQgZmlsZW5hbWUgW3JlbW90ZV9kb3dubG9hZCBob3N0ICRnZGJfZnVsbHBh dGggJHhnZGJdCisrCisrICAgIHJldHVybiAkZmlsZW5hbWUKKyt9CisrCisrIyBBIHNpbXBsZSB3 YXkgdG8gcnVuIHNvbWUgc2VsZi10ZXN0cy4KKysKKytwcm9jIGRvX3NlbGZfdGVzdHMge2Z1bmN0 aW9uIGJvZHl9IHsKKysgICAgc2V0IGZpbGUgW3NlbGZ0ZXN0X3ByZXBhcmVdCisrICAgIGlmIHsg JGZpbGUgZXEgIiIgfSB7CisrCXJldHVybgorKyAgICB9CisrCisgICAgIGdkYl9zdGFydAorLSAg ICBzZXQgZmlsZSBbcmVtb3RlX2Rvd25sb2FkIGhvc3QgJEdEQl9GVUxMUEFUSCAkeGdkYl0KKyAK KyAgICAgIyBXaGVuIGRlYnVnZ2luZyBHREIgd2l0aCBHREIsIHNvbWUgb3BlcmF0aW9ucyBjYW4g dGFrZSBhIHJlbGF0aXZlbHkgbG9uZworICAgICAjIHRpbWUsIGVzcGVjaWFsbHkgaWYgdGhlIGJ1 aWxkIGlzIG5vbi1vcHRpbWl6ZWQuICBCdW1wIHRoZSB0aW1lb3V0IGZvciB0aGUKCmRpZmYgLS1n aXQgYS9nZGIuc3BlYyBiL2dkYi5zcGVjCmluZGV4IGZiOTliZGQuLjdlODE0MWYgMTAwNjQ0Ci0t LSBhL2dkYi5zcGVjCisrKyBiL2dkYi5zcGVjCkBAIC01Nyw3ICs1Nyw3IEBAIFZlcnNpb246IDEz LjIKIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51 bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1l JyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3Rp bmcuCi1SZWxlYXNlOiAxMSV7P2Rpc3R9CitSZWxlYXNlOiAxMiV7P2Rpc3R9CiAKIExpY2Vuc2U6 IEdQTC0zLjAtb3ItbGF0ZXIgQU5EIEJTRC0zLWNsYXVzZSBBTkQgRlNGQVAgQU5EIExHUEwtMi4x LW9yLWxhdGVyIEFORCBHUEwtMi4wLW9yLWxhdGVyIEFORCBMR1BMLTIuMC1vci1sYXRlciBBTkQg TGljZW5zZVJlZi1GZWRvcmEtUHVibGljLURvbWFpbiBBTkQgR0ZETC0xLjMtb3ItbGF0ZXIgQU5E IExHUEwtMi4wLW9yLWxhdGVyIFdJVEggR0NDLWV4Y2VwdGlvbi0yLjAgQU5EIEdQTC0zLjAtb3It bGF0ZXIgV0lUSCBHQ0MtZXhjZXB0aW9uLTMuMSBBTkQgR1BMLTIuMC1vci1sYXRlciBXSVRIIEdO VS1jb21waWxlci1leGNlcHRpb24KICMgRG8gbm90IHByb3ZpZGUgVVJMIGZvciBzbmFwc2hvdHMg YXMgdGhlIGZpbGUgbGFzdHMgdGhlcmUgb25seSBmb3IgMiBkYXlzLgpAQCAtMTI1Miw2ICsxMjUy LDEzIEBAIGZpCiAlZW5kaWYKIAogJWNoYW5nZWxvZworKiBUdWUgTm92IDI4IDIwMjMgQW5kcmV3 IEJ1cmdlc3MgPGFidXJnZXNzQHJlZGhhdC5jb20+CistIEJhY2twb3J0IHVwc3RyZWFtIGNvbW1p dHMgMWYwZmFiN2ZmODYsIGFhMTliYzFkMjU5LCBhY2MxMTdiNTdmNywKKyAgYWZmMjUwMTQ1YWYs IGFuZCAzNjQ0ZjQxZGM4MC4gIFRoZXNlIGNvbW1pdHMgcmVkdWNlIHRoZSBzaXplIG9mIHRoZQor ICBnZW5lcmF0ZWQgZ2RiLWluZGV4IGZpbGUsIGFuZCBhbHNvIGVuc3VyZSB0aGF0IHRoZSBnZGIt aW5kZXggYW5kCisgIGR3YXJmLTUgaW5kZXggYXJlIGdlbmVyYXRlZCBjb25zaXN0ZW50bHkgZXZl biBhcyB0aGUgbnVtYmVyIG9mCisgIHdvcmtlciB0aHJlYWRzIHRoYXQgR0RCIHVzZXMgY2hhbmdl cyAoUkhCWiAyMjMyMDg2KS4KKwogKiBUaHUgT2N0IDE5IDIwMjMgQWxleGFuZHJhIEjDoWprb3bD oSA8YWhhamtvdmFAcmVkaGF0LmNvbT4KIC0gUmVtb3ZlIGdkYi02LjUtaWE2NC1saWJ1bndpbmQt bGVhay10ZXN0LnBhdGNoLgogICBUaGUgcGF0Y2ggZG9lc24ndCBpbmNsdWRlIGFueSBhY3R1YWwg Zml4ZXMsIHRoZSBhcmNoaXRlY3R1cmUK