From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau_=3Cmarcandre=2Elureau=40redhat=2Ecom=3E?= To: git-commits@fedoraproject.org Subject: [rpms/spice] rawhide: Backport keyboad & mouse state leak fix Date: Tue, 21 Jul 2026 13:37:16 GMT Message-ID: <178464103647.1.16257326055619451033.rpms-spice-3298e4e9e373@fedoraproject.org> List-ID: X-Git-Repo: rpms/spice X-Git-Branch: rawhide X-Git-Rev: 3298e4e9e3737f70d877a1b2f3f8576d98074363 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvc3BpY2UKQnJhbmNo IDogcmF3aGlkZQpDb21taXQgOiAzMjk4ZTRlOWUzNzM3ZjcwZDg3N2ExYjJmM2Y4NTc2ZDk4MDc0 MzYzCkF1dGhvciA6IE1hcmMtQW5kcsOpIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUByZWRoYXQu Y29tPgpEYXRlICAgOiAyMDI2LTA3LTIxVDE3OjM3OjAyKzA0OjAwClN0YXRzICA6ICsxNzMvLTEg aW4gMiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMv c3BpY2UvYy8zMjk4ZTRlOWUzNzM3ZjcwZDg3N2ExYjJmM2Y4NTc2ZDk4MDc0MzYzP2JyYW5jaD1y YXdoaWRlCgpMb2c6CkJhY2twb3J0IGtleWJvYWQgJiBtb3VzZSBzdGF0ZSBsZWFrIGZpeAoKLS0t CmRpZmYgLS1naXQgYS8wMDAxLWlucHV0cy1GaXgta2V5Ym9hcmQtYW5kLW1vdXNlLXN0YXRlLWxl YWtzLW9uLWludGVyZmEucGF0Y2ggYi8wMDAxLWlucHV0cy1GaXgta2V5Ym9hcmQtYW5kLW1vdXNl LXN0YXRlLWxlYWtzLW9uLWludGVyZmEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYWMzZmEwZQotLS0gL2Rldi9udWxsCisrKyBiLzAwMDEtaW5wdXRzLUZpeC1rZXli b2FyZC1hbmQtbW91c2Utc3RhdGUtbGVha3Mtb24taW50ZXJmYS5wYXRjaApAQCAtMCwwICsxLDE2 OCBAQAorRnJvbSBjM2VmZTY5ZWNkY2I2YzFiOWQ3MzU2MGQwY2ZkZjg4ZjEwOWYyMzk1IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP01hcmMtQW5kcj1DMz1BOT0yMEx1 cmVhdT89IDxtYXJjYW5kcmUubHVyZWF1QHJlZGhhdC5jb20+CitEYXRlOiBGcmksIDIyIE1heSAy MDI2IDIxOjQ3OjE3ICswNDAwCitTdWJqZWN0OiBbUEFUQ0hdIGlucHV0czogRml4IGtleWJvYXJk IGFuZCBtb3VzZSBzdGF0ZSBsZWFrcyBvbiBpbnRlcmZhY2UKKyByZW1vdmFsCitNSU1FLVZlcnNp b246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1NwaWNlS2JkU3RhdGUgYW5kIFNwaWNlTW91c2VT dGF0ZSBhbGxvY2F0ZWQgYnkgc2V0X2tleWJvYXJkKCkvc2V0X21vdXNlKCkKK3dlcmUgbmV2ZXIg ZnJlZWQg4oCUIHJlbW92ZV9pbnRlcmZhY2UoKSBoYWQgbm8gaGFuZGxlciBmb3IgS0VZQk9BUkQg b3IgTU9VU0UKK3R5cGVzLCBhbmQgdGhlIElucHV0c0NoYW5uZWwgZGVzdHJ1Y3RvciBvbmx5IGNs ZWFuZWQgdXAgdGhlIHRhYmxldC4KKworQWRkIGRldGFjaF9rZXlib2FyZCgpL2RldGFjaF9tb3Vz ZSgpIGZvbGxvd2luZyB0aGUgZXhpc3RpbmcgZGV0YWNoX3RhYmxldCgpCitwYXR0ZXJuLCBjYWxs IHRoZW0gZnJvbSB0aGUgZGVzdHJ1Y3RvciBhbmQgZnJvbSByZW1vdmVfaW50ZXJmYWNlKCkuCisK K0Fsc28gZ2l2ZSBTcGljZU1vdXNlU3RhdGUgYSBSZWRzU3RhdGUgYmFjay1wb2ludGVyIChyZXBs YWNpbmcgdGhlIGR1bW15CitmaWVsZCkgc28gcmVtb3ZlX2ludGVyZmFjZSgpIGNhbiBsb2NhdGUg dGhlIHNlcnZlciwgbWF0Y2hpbmcgdGhlIHRhYmxldAorc3RhdGUgZGVzaWduLgorCitDby1BdXRo b3JlZC1CeTogQ2xhdWRlIE9wdXMgNC42IDxub3JlcGx5QGFudGhyb3BpYy5jb20+CistLS0KKyBz ZXJ2ZXIvaW5wdXRzLWNoYW5uZWwuY3BwIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tCisgc2VydmVyL2lucHV0cy1jaGFubmVsLmggICB8ICA0ICsrKysKKyBzZXJ2 ZXIvcmVkcy5jcHAgICAgICAgICAgIHwgMTYgKysrKysrKysrKysrKystLQorIDMgZmlsZXMgY2hh bmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3Nl cnZlci9pbnB1dHMtY2hhbm5lbC5jcHAgYi9zZXJ2ZXIvaW5wdXRzLWNoYW5uZWwuY3BwCitpbmRl eCAwMjlkYWQ0YS4uMzdkZTEwNTEgMTAwNjQ0CistLS0gYS9zZXJ2ZXIvaW5wdXRzLWNoYW5uZWwu Y3BwCisrKysgYi9zZXJ2ZXIvaW5wdXRzLWNoYW5uZWwuY3BwCitAQCAtNTYsMTIgKzU2LDE0IEBA IHN0YXRpYyBTcGljZUtiZFN0YXRlKiBzcGljZV9rYmRfc3RhdGVfbmV3KElucHV0c0NoYW5uZWwg KmlucHV0cykKKyB9CisgCisgc3RydWN0IFNwaWNlTW91c2VTdGF0ZSB7CistICAgIGludCBkdW1t eTsKKysgICAgUmVkc1N0YXRlICpyZWRzOworIH07CisgCistc3RhdGljIFNwaWNlTW91c2VTdGF0 ZSogc3BpY2VfbW91c2Vfc3RhdGVfbmV3KCkKKytzdGF0aWMgU3BpY2VNb3VzZVN0YXRlKiBzcGlj ZV9tb3VzZV9zdGF0ZV9uZXcoUmVkc1N0YXRlICpyZWRzKQorIHsKKy0gICAgcmV0dXJuIGdfbmV3 MChTcGljZU1vdXNlU3RhdGUsIDEpOworKyAgICBhdXRvIHN0ID0gZ19uZXcwKFNwaWNlTW91c2VT dGF0ZSwgMSk7CisrICAgIHN0LT5yZWRzID0gcmVkczsKKysgICAgcmV0dXJuIHN0OworIH0KKyAK KyBzdHJ1Y3QgU3BpY2VUYWJsZXRTdGF0ZSB7CitAQCAtODUsNiArODcsMTYgQEAgUmVkc1N0YXRl KiBzcGljZV90YWJsZXRfc3RhdGVfZ2V0X3NlcnZlcihTcGljZVRhYmxldFN0YXRlICpzdCkKKyAg ICAgcmV0dXJuIHN0LT5yZWRzOworIH0KKyAKKytSZWRzU3RhdGUqIHNwaWNlX2tiZF9zdGF0ZV9n ZXRfc2VydmVyKFNwaWNlS2JkU3RhdGUgKnN0KQorK3sKKysgICAgcmV0dXJuIHN0LT5pbnB1dHMt PmdldF9zZXJ2ZXIoKTsKKyt9CisrCisrUmVkc1N0YXRlKiBzcGljZV9tb3VzZV9zdGF0ZV9nZXRf c2VydmVyKFNwaWNlTW91c2VTdGF0ZSAqc3QpCisreworKyAgICByZXR1cm4gc3QtPnJlZHM7Cisr fQorKworIHN0cnVjdCBSZWRLZXlNb2RpZmllcnNQaXBlSXRlbTogcHVibGljIFJlZFBpcGVJdGVt TnVtPFJFRF9QSVBFX0lURU1fS0VZX01PRElGSUVSUz4geworICAgICBleHBsaWNpdCBSZWRLZXlN b2RpZmllcnNQaXBlSXRlbSh1aW50OF90IG1vZGlmaWVycyk7CisgICAgIHVpbnQ4X3QgbW9kaWZp ZXJzOworQEAgLTUzMCw2ICs1NDIsOCBAQCBJbnB1dHNDaGFubmVsOjpJbnB1dHNDaGFubmVsKFJl ZHNTdGF0ZSAqcmVkcyk6CisgCisgSW5wdXRzQ2hhbm5lbDo6fklucHV0c0NoYW5uZWwoKQorIHsK KysgICAgZGV0YWNoX2tleWJvYXJkKGtleWJvYXJkKTsKKysgICAgZGV0YWNoX21vdXNlKG1vdXNl KTsKKyAgICAgZGV0YWNoX3RhYmxldCh0YWJsZXQpOworICAgICByZWRfdGltZXJfcmVtb3ZlKGtl eV9tb2RpZmllcnNfdGltZXIpOworIH0KK0BAIC01NTIsNyArNTY2LDcgQEAgaW50IElucHV0c0No YW5uZWw6OnNldF9tb3VzZShTcGljZU1vdXNlSW5zdGFuY2UgKm5ld19tb3VzZSkKKyAgICAgICAg IHJldHVybiAtMTsKKyAgICAgfQorICAgICBtb3VzZSA9IG5ld19tb3VzZTsKKy0gICAgbW91c2Ut PnN0ID0gc3BpY2VfbW91c2Vfc3RhdGVfbmV3KCk7CisrICAgIG1vdXNlLT5zdCA9IHNwaWNlX21v dXNlX3N0YXRlX25ldyhnZXRfc2VydmVyKCkpOworICAgICByZXR1cm4gMDsKKyB9CisgCitAQCAt NTgxLDYgKzU5NSwyNCBAQCB2b2lkIElucHV0c0NoYW5uZWw6OmRldGFjaF90YWJsZXQoU3BpY2VU YWJsZXRJbnN0YW5jZSAqb2xkX3RhYmxldCkKKyAgICAgdGFibGV0ID0gbnVsbHB0cjsKKyB9Cisg Cisrdm9pZCBJbnB1dHNDaGFubmVsOjpkZXRhY2hfa2V5Ym9hcmQoU3BpY2VLYmRJbnN0YW5jZSAq b2xkX2tleWJvYXJkKQorK3sKKysgICAgaWYgKG9sZF9rZXlib2FyZCAhPSBudWxscHRyICYmIG9s ZF9rZXlib2FyZCA9PSBrZXlib2FyZCkgeworKyAgICAgICAgZ19mcmVlKG9sZF9rZXlib2FyZC0+ c3QpOworKyAgICAgICAgb2xkX2tleWJvYXJkLT5zdCA9IG51bGxwdHI7CisrICAgIH0KKysgICAg a2V5Ym9hcmQgPSBudWxscHRyOworK30KKysKKyt2b2lkIElucHV0c0NoYW5uZWw6OmRldGFjaF9t b3VzZShTcGljZU1vdXNlSW5zdGFuY2UgKm9sZF9tb3VzZSkKKyt7CisrICAgIGlmIChvbGRfbW91 c2UgIT0gbnVsbHB0ciAmJiBvbGRfbW91c2UgPT0gbW91c2UpIHsKKysgICAgICAgIGdfZnJlZShv bGRfbW91c2UtPnN0KTsKKysgICAgICAgIG9sZF9tb3VzZS0+c3QgPSBudWxscHRyOworKyAgICB9 CisrICAgIG1vdXNlID0gbnVsbHB0cjsKKyt9CisrCisgYm9vbCBJbnB1dHNDaGFubmVsOjppc19z cmNfZHVyaW5nX21pZ3JhdGUoKSBjb25zdAorIHsKKyAgICAgcmV0dXJuIHNyY19kdXJpbmdfbWln cmF0ZTsKK2RpZmYgLS1naXQgYS9zZXJ2ZXIvaW5wdXRzLWNoYW5uZWwuaCBiL3NlcnZlci9pbnB1 dHMtY2hhbm5lbC5oCitpbmRleCBkODA5M2VmOS4uODY2YzU3MTQgMTAwNjQ0CistLS0gYS9zZXJ2 ZXIvaW5wdXRzLWNoYW5uZWwuaAorKysrIGIvc2VydmVyL2lucHV0cy1jaGFubmVsLmgKK0BAIC00 Niw2ICs0Niw4IEBAIHB1YmxpYzoKKyAgICAgaW50IHNldF90YWJsZXQoU3BpY2VUYWJsZXRJbnN0 YW5jZSAqdGFibGV0KTsKKyAgICAgYm9vbCBoYXNfdGFibGV0KCkgY29uc3Q7CisgICAgIHZvaWQg ZGV0YWNoX3RhYmxldChTcGljZVRhYmxldEluc3RhbmNlICp0YWJsZXQpOworKyAgICB2b2lkIGRl dGFjaF9rZXlib2FyZChTcGljZUtiZEluc3RhbmNlICprZXlib2FyZCk7CisrICAgIHZvaWQgZGV0 YWNoX21vdXNlKFNwaWNlTW91c2VJbnN0YW5jZSAqbW91c2UpOworIAorIHByaXZhdGU6CisgICAg IFZEQWdlbnRNb3VzZVN0YXRlIG1vdXNlX3N0YXRlOworQEAgLTc3LDYgKzc5LDggQEAgcHJpdmF0 ZToKKyByZWQ6OnNoYXJlZF9wdHI8SW5wdXRzQ2hhbm5lbD4gaW5wdXRzX2NoYW5uZWxfbmV3KFJl ZHNTdGF0ZSAqcmVkcyk7CisgCisgUmVkc1N0YXRlICpzcGljZV90YWJsZXRfc3RhdGVfZ2V0X3Nl cnZlcihTcGljZVRhYmxldFN0YXRlICpzdCk7CisrUmVkc1N0YXRlICpzcGljZV9rYmRfc3RhdGVf Z2V0X3NlcnZlcihTcGljZUtiZFN0YXRlICpzdCk7CisrUmVkc1N0YXRlICpzcGljZV9tb3VzZV9z dGF0ZV9nZXRfc2VydmVyKFNwaWNlTW91c2VTdGF0ZSAqc3QpOworIAorICNpbmNsdWRlICJwb3At dmlzaWJpbGl0eS5oIgorIAorZGlmZiAtLWdpdCBhL3NlcnZlci9yZWRzLmNwcCBiL3NlcnZlci9y ZWRzLmNwcAoraW5kZXggMjM4MzdiNDAuLjRiZWI2ZTZjIDEwMDY0NAorLS0tIGEvc2VydmVyL3Jl ZHMuY3BwCisrKysgYi9zZXJ2ZXIvcmVkcy5jcHAKK0BAIC0zMzYwLDcgKzMzNjAsMTkgQEAgU1BJ Q0VfR05VQ19WSVNJQkxFIGludCBzcGljZV9zZXJ2ZXJfcmVtb3ZlX2ludGVyZmFjZShTcGljZUJh c2VJbnN0YW5jZSAqc2luKQorICAgICBnX3JldHVybl92YWxfaWZfZmFpbChzaW4gIT0gbnVsbHB0 ciwgLTEpOworIAorICAgICBiYXNlX2ludGVyZmFjZSA9IHNpbi0+c2lmOworLSAgICBpZiAoc3Ry Y21wKGJhc2VfaW50ZXJmYWNlLT50eXBlLCBTUElDRV9JTlRFUkZBQ0VfVEFCTEVUKSA9PSAwKSB7 CisrICAgIGlmIChzdHJjbXAoYmFzZV9pbnRlcmZhY2UtPnR5cGUsIFNQSUNFX0lOVEVSRkFDRV9L RVlCT0FSRCkgPT0gMCkgeworKyAgICAgICAgU3BpY2VLYmRJbnN0YW5jZSAqa2JkID0gU1BJQ0Vf VVBDQVNUKFNwaWNlS2JkSW5zdGFuY2UsIHNpbik7CisrICAgICAgICBnX3JldHVybl92YWxfaWZf ZmFpbChrYmQtPnN0ICE9IG51bGxwdHIsIC0xKTsKKysgICAgICAgIHJlZHMgPSBzcGljZV9rYmRf c3RhdGVfZ2V0X3NlcnZlcihrYmQtPnN0KTsKKysgICAgICAgIHNwaWNlX2RlYnVnKCJyZW1vdmUg U1BJQ0VfSU5URVJGQUNFX0tFWUJPQVJEIik7CisrICAgICAgICByZWRzLT5pbnB1dHNfY2hhbm5l bC0+ZGV0YWNoX2tleWJvYXJkKGtiZCk7CisrICAgIH0gZWxzZSBpZiAoc3RyY21wKGJhc2VfaW50 ZXJmYWNlLT50eXBlLCBTUElDRV9JTlRFUkZBQ0VfTU9VU0UpID09IDApIHsKKysgICAgICAgIFNw aWNlTW91c2VJbnN0YW5jZSAqbW91c2UgPSBTUElDRV9VUENBU1QoU3BpY2VNb3VzZUluc3RhbmNl LCBzaW4pOworKyAgICAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwobW91c2UtPnN0ICE9IG51bGxw dHIsIC0xKTsKKysgICAgICAgIHJlZHMgPSBzcGljZV9tb3VzZV9zdGF0ZV9nZXRfc2VydmVyKG1v dXNlLT5zdCk7CisrICAgICAgICBzcGljZV9kZWJ1ZygicmVtb3ZlIFNQSUNFX0lOVEVSRkFDRV9N T1VTRSIpOworKyAgICAgICAgcmVkcy0+aW5wdXRzX2NoYW5uZWwtPmRldGFjaF9tb3VzZShtb3Vz ZSk7CisrICAgIH0gZWxzZSBpZiAoc3RyY21wKGJhc2VfaW50ZXJmYWNlLT50eXBlLCBTUElDRV9J TlRFUkZBQ0VfVEFCTEVUKSA9PSAwKSB7CisgICAgICAgICBTcGljZVRhYmxldEluc3RhbmNlICp0 YWJsZXQgPSBTUElDRV9VUENBU1QoU3BpY2VUYWJsZXRJbnN0YW5jZSwgc2luKTsKKyAgICAgICAg IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHRhYmxldC0+c3QgIT0gbnVsbHB0ciwgLTEpOworICAgICAg ICAgcmVkcyA9IHNwaWNlX3RhYmxldF9zdGF0ZV9nZXRfc2VydmVyKHRhYmxldC0+c3QpOworQEAg LTMzODcsNyArMzM5OSw3IEBAIFNQSUNFX0dOVUNfVklTSUJMRSBpbnQgc3BpY2Vfc2VydmVyX3Jl bW92ZV9pbnRlcmZhY2UoU3BpY2VCYXNlSW5zdGFuY2UgKnNpbikKKyAgICAgICAgIHJlZHMtPnF4 bF9pbnN0YW5jZXMucmVtb3ZlKHF4bCk7IC8vIFhYWCBvd25pbmcKKyAgICAgICAgIHJlZF9xeGxf ZGVzdHJveShxeGwpOworICAgICB9IGVsc2UgeworLSAgICAgICAgc3BpY2Vfd2FybmluZygiVkRf SU5URVJGQUNFX1JFTU9WSU5HIHVuc3VwcG9ydGVkIik7CisrICAgICAgICBzcGljZV93YXJuaW5n KCIlcyBpbnRlcmZhY2UgcmVtb3ZpbmcgaXMgdW5zdXBwb3J0ZWQiLCBiYXNlX2ludGVyZmFjZS0+ dHlwZSk7CisgICAgICAgICByZXR1cm4gLTE7CisgICAgIH0KKyAKKy0tIAorMi41NS4wCisKCmRp ZmYgLS1naXQgYS9zcGljZS5zcGVjIGIvc3BpY2Uuc3BlYwppbmRleCBkOTMwYzFlLi5kZDA2NGYy IDEwMDY0NAotLS0gYS9zcGljZS5zcGVjCisrKyBiL3NwaWNlLnNwZWMKQEAgLTEsNiArMSw2IEBA CiBOYW1lOiAgICAgICAgICAgc3BpY2UKIFZlcnNpb246ICAgICAgICAwLjE2LjAKLVJlbGVhc2U6 ICAgICAgICA4JXs/ZGlzdH0KK1JlbGVhc2U6ICAgICAgICA5JXs/ZGlzdH0KIFN1bW1hcnk6ICAg ICAgICBJbXBsZW1lbnRzIHRoZSBTUElDRSBwcm90b2NvbAogIyBBdXRvbWF0aWNhbGx5IGNvbnZl cnRlZCBmcm9tIG9sZCBmb3JtYXQ6IExHUEx2MisgLSByZXZpZXcgaXMgaGlnaGx5IHJlY29tbWVu ZGVkLgogTGljZW5zZTogICAgICAgIExpY2Vuc2VSZWYtQ2FsbGF3YXktTEdQTHYyKwpAQCAtOCw2 ICs4LDcgQEAgVVJMOiAgICAgICAgICAgIGh0dHA6Ly93d3cuc3BpY2Utc3BhY2Uub3JnLwogU291 cmNlMDogICAgICAgIGh0dHA6Ly93d3cuc3BpY2Utc3BhY2Uub3JnL2Rvd25sb2FkL3JlbGVhc2Vz LyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuYnoyCiBQYXRjaDAwMDA6ICAgICAgMDAwMS10ZXN0LWdz dC1GaXgtY29tcGlsYXRpb24tZXJyb3IucGF0Y2gKIFBhdGNoMDAwMTogICAgICAwMDAxLXRlc3Qt ZGlzcGxheS1iYXNlLUZpeC1DLWRlc2lnbmF0ZWQtaW5pdGlhbGl6ZXItZm9yLWEucGF0Y2gKK1Bh dGNoMDAwMjogICAgICAwMDAxLWlucHV0cy1GaXgta2V5Ym9hcmQtYW5kLW1vdXNlLXN0YXRlLWxl YWtzLW9uLWludGVyZmEucGF0Y2gKIAogIyBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hv d19idWcuY2dpP2lkPTYxMzUyOQogJWlmIDAlez9yaGVsfSAmJiAwJXs/cmhlbH0gPD0gNwpAQCAt OTksNiArMTAwLDkgQEAgdXNpbmcgc3BpY2Utc2VydmVyLCB5b3Ugd2lsbCBuZWVkIHRvIGluc3Rh bGwgc3BpY2Utc2VydmVyLWRldmVsLgogCiAKICVjaGFuZ2Vsb2cKKyogVHVlIEp1bCAyMSAyMDI2 IE1hcmMtQW5kcsOpIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUByZWRoYXQuY29tPiAtIDAuMTYu MC05CistIEJhY2twb3J0IGtleWJvYWQgJiBtb3VzZSBzdGF0ZSBsZWFrIGZpeC4KKwogKiBGcmkg SnVsIDE3IDIwMjYgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9q ZWN0Lm9yZz4gLSAwLjE2LjAtOAogLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qu b3JnL3dpa2kvRmVkb3JhXzQ1X01hc3NfUmVidWlsZAogCg==