[frameworks/kio] src/filewidgets: knewfilemenu: convert m_popupFiles into a single QUrl

Antti Savolainen <[email protected]> Tue, 4 Aug 2026 20:59:29 +0000 (UTC)
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
R2l0IGNvbW1pdCA4NmEwZDJmMTUwMDBhNGU1YjE2Zjc4MWI4YTg1ODIxODY5NzJmMDc5IGJ5IEFu
dHRpIFNhdm9sYWluZW4uCkNvbW1pdHRlZCBvbiAwNC8wOC8yMDI2IGF0IDIwOjQ5LgpQdXNoZWQg
YnkgYXNhdm9sYWluZW4gaW50byBicmFuY2ggJ21hc3RlcicuCgprbmV3ZmlsZW1lbnU6IGNvbnZl
cnQgbV9wb3B1cEZpbGVzIGludG8gYSBzaW5nbGUgUVVybAoKTSAgKzc3ICAgLTgyICAgc3JjL2Zp
bGV3aWRnZXRzL2tuZXdmaWxlbWVudS5jcHAKCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvZnJhbWV3
b3Jrcy9raW8vLS9jb21taXQvODZhMGQyZjE1MDAwYTRlNWIxNmY3ODFiOGE4NTgyMTg2OTcyZjA3
OQoKZGlmZiAtLWdpdCBhL3NyYy9maWxld2lkZ2V0cy9rbmV3ZmlsZW1lbnUuY3BwIGIvc3JjL2Zp
bGV3aWRnZXRzL2tuZXdmaWxlbWVudS5jcHAKaW5kZXggYjBiMjJkOGRlYi4uZDYzYTk2MWE2ZiAx
MDA2NDQKLS0tIGEvc3JjL2ZpbGV3aWRnZXRzL2tuZXdmaWxlbWVudS5jcHAKKysrIGIvc3JjL2Zp
bGV3aWRnZXRzL2tuZXdmaWxlbWVudS5jcHAKQEAgLTQ1Myw5ICs0NTMsOCBAQCBwdWJsaWM6CiAg
ICAgICogaXMgZGlzcGxheWVkLiBUaGUgVVJMIGJlbG9uZ2luZyB0byB0aGlzIHBvcHVwIG1lbnUg
aXMgc3RvcmVkIGhlcmUuCiAgICAgICogRm9yIGFsbCBpbnRlbnRzIGFuZCBwdXJwb3NlcyB0aGlz
IGlzIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGVyZSB0aGUgbWVudSBpcwogICAgICAqIG9wZW5l
ZC4KLSAgICAgKiBUT0RPIEtGNiBtYWtlIGl0IGEgc2luZ2xlIFFVcmwuCiAgICAgICovCi0gICAg
UUxpc3Q8UVVybD4gbV9wb3B1cEZpbGVzOworICAgIFFVcmwgbV9tZW51V29ya2luZ0RpcmVjdG9y
eTsKIAogICAgIFFTdHJpbmdMaXN0IG1fc3VwcG9ydGVkTWltZVR5cGVzOwogICAgIFFTdHJpbmcg
bV90ZW1wRmlsZVRvRGVsZXRlOyAvLyBzZXQgd2hlbiBhIHRlbXBmaWxlIHdhcyBjcmVhdGVkIGZv
ciBhIFR5cGU9VVJMIGRlc2t0b3AgZmlsZQpAQCAtNTc4LDUyICs1NzcsNTAgQEAgdm9pZCBLTmV3
RmlsZU1lbnVQcml2YXRlOjpleGVjdXRlT3RoZXJEZXNrdG9wRmlsZShjb25zdCBLTmV3RmlsZU1l
bnVTaW5nbGV0b246OkUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZvciAoY29uc3Qg
YXV0byAmdXJsIDogc3RkOjphc19jb25zdChtX3BvcHVwRmlsZXMpKSB7Ci0gICAgICAgIFFTdHJp
bmcgdGV4dCA9IGVudHJ5LnRleHQ7Ci0gICAgICAgIHRleHQucmVtb3ZlKFFTdHJpbmdMaXRlcmFs
KCIuLi4iKSk7IC8vIHRoZSAuLi4gaXMgZmluZSBmb3IgdGhlIG1lbnUgaXRlbSBidXQgbm90IGZv
ciB0aGUgZGVmYXVsdCBmaWxlbmFtZQotICAgICAgICB0ZXh0LnJlbW92ZShRU3RyaW5nTGl0ZXJh
bCgi4oCmIikpOyAvLyBhY3R1YWwgZWxsaXBzaXMuCi0gICAgICAgIHRleHQgPSB0ZXh0LnRyaW1t
ZWQoKTsgLy8gSW4gc29tZSBsYW5ndWFnZXMsIHRoZXJlIGlzIGEgc3BhY2UgaW4gZnJvbnQgb2Yg
Ii4uLiIsIHNlZSBidWcgMjY4ODk1Ci0gICAgICAgIC8vIEtERTUgVE9ETzogcmVtb3ZlIHRoZSAi
Li4uIiBmcm9tIGxpbmsqLmRlc2t0b3AgZmlsZXMgYW5kIHVzZSBpMThuKCIlMS4uLiIpIHdoZW4g
bWFraW5nCi0gICAgICAgIC8vIHRoZSBhY3Rpb24uCi0gICAgICAgIFFTdHJpbmcgbmFtZSA9IHRl
eHQ7Ci0gICAgICAgIHRleHQuYXBwZW5kKFFTdHJpbmdMaXRlcmFsKCIuZGVza3RvcCIpKTsKLQot
ICAgICAgICBjb25zdCBRVXJsIGRpcmVjdG9yeSA9IG1vc3RMb2NhbFVybCh1cmwpOwotICAgICAg
ICBjb25zdCBRVXJsIGRlZmF1bHRGaWxlID0gUVVybDo6ZnJvbUxvY2FsRmlsZShkaXJlY3Rvcnku
dG9Mb2NhbEZpbGUoKSArIFFMYXRpbjFDaGFyKCcvJykgKyBLSU86OmVuY29kZUZpbGVOYW1lKHRl
eHQpKTsKLSAgICAgICAgaWYgKGRlZmF1bHRGaWxlLmlzTG9jYWxGaWxlKCkgJiYgUUZpbGU6OmV4
aXN0cyhkZWZhdWx0RmlsZS50b0xvY2FsRmlsZSgpKSkgewotICAgICAgICAgICAgdGV4dCA9IEtG
aWxlVXRpbHM6OnN1Z2dlc3ROYW1lKGRpcmVjdG9yeSwgdGV4dCk7Ci0gICAgICAgIH0KKyAgICBR
U3RyaW5nIHRleHQgPSBlbnRyeS50ZXh0OworICAgIHRleHQucmVtb3ZlKFFTdHJpbmdMaXRlcmFs
KCIuLi4iKSk7IC8vIHRoZSAuLi4gaXMgZmluZSBmb3IgdGhlIG1lbnUgaXRlbSBidXQgbm90IGZv
ciB0aGUgZGVmYXVsdCBmaWxlbmFtZQorICAgIHRleHQucmVtb3ZlKFFTdHJpbmdMaXRlcmFsKCLi
gKYiKSk7IC8vIGFjdHVhbCBlbGxpcHNpcy4KKyAgICB0ZXh0ID0gdGV4dC50cmltbWVkKCk7IC8v
IEluIHNvbWUgbGFuZ3VhZ2VzLCB0aGVyZSBpcyBhIHNwYWNlIGluIGZyb250IG9mICIuLi4iLCBz
ZWUgYnVnIDI2ODg5NQorICAgIC8vIEtERTUgVE9ETzogcmVtb3ZlIHRoZSAiLi4uIiBmcm9tIGxp
bmsqLmRlc2t0b3AgZmlsZXMgYW5kIHVzZSBpMThuKCIlMS4uLiIpIHdoZW4gbWFraW5nCisgICAg
Ly8gdGhlIGFjdGlvbi4KKyAgICBRU3RyaW5nIG5hbWUgPSB0ZXh0OworICAgIHRleHQuYXBwZW5k
KFFTdHJpbmdMaXRlcmFsKCIuZGVza3RvcCIpKTsKIAotICAgICAgICBRVXJsIHRlbXBsYXRlVXJs
OwotICAgICAgICBib29sIHVzaW5nVGVtcGxhdGUgPSBmYWxzZTsKLSAgICAgICAgaWYgKGVudHJ5
LnRlbXBsYXRlUGF0aC5zdGFydHNXaXRoKFFMYXRpbjFTdHJpbmcoIjovIikpKSB7Ci0gICAgICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UVRlbXBvcmFyeUZpbGU+IHRtcEZpbGUoUVRlbXBvcmFyeUZp
bGU6OmNyZWF0ZU5hdGl2ZUZpbGUoZW50cnkudGVtcGxhdGVQYXRoKSk7Ci0gICAgICAgICAgICB0
bXBGaWxlLT5zZXRBdXRvUmVtb3ZlKGZhbHNlKTsKLSAgICAgICAgICAgIFFTdHJpbmcgdGVtcEZp
bGVOYW1lID0gdG1wRmlsZS0+ZmlsZU5hbWUoKTsKLSAgICAgICAgICAgIHRtcEZpbGUtPmNsb3Nl
KCk7Ci0KLSAgICAgICAgICAgIEtEZXNrdG9wRmlsZSBkZih0ZW1wRmlsZU5hbWUpOwotICAgICAg
ICAgICAgS0NvbmZpZ0dyb3VwIGdyb3VwID0gZGYuZGVza3RvcEdyb3VwKCk7Ci0gICAgICAgICAg
ICBncm91cC53cml0ZUVudHJ5KCJOYW1lIiwgbmFtZSk7Ci0gICAgICAgICAgICB0ZW1wbGF0ZVVy
bCA9IFFVcmw6OmZyb21Mb2NhbEZpbGUodGVtcEZpbGVOYW1lKTsKLSAgICAgICAgICAgIG1fdGVt
cEZpbGVUb0RlbGV0ZSA9IHRlbXBGaWxlTmFtZTsKLSAgICAgICAgICAgIHVzaW5nVGVtcGxhdGUg
PSB0cnVlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGVtcGxhdGVVcmwgPSBRVXJs
Ojpmcm9tTG9jYWxGaWxlKGVudHJ5LnRlbXBsYXRlUGF0aCk7Ci0gICAgICAgIH0KLSAgICAgICAg
S1Byb3BlcnRpZXNEaWFsb2cgKmRsZyA9IG5ldyBLUHJvcGVydGllc0RpYWxvZyh0ZW1wbGF0ZVVy
bCwgZGlyZWN0b3J5LCB0ZXh0LCBtX3BhcmVudFdpZGdldCk7Ci0gICAgICAgIGRsZy0+c2V0TW9k
YWwocS0+aXNNb2RhbCgpKTsKLSAgICAgICAgZGxnLT5zZXRBdHRyaWJ1dGUoUXQ6OldBX0RlbGV0
ZU9uQ2xvc2UpOwotICAgICAgICBRT2JqZWN0Ojpjb25uZWN0KGRsZywgJktQcm9wZXJ0aWVzRGlh
bG9nOjphcHBsaWVkLCBxLCBbdGhpcywgZGxnXSgpIHsKLSAgICAgICAgICAgIF9rX3Nsb3RPdGhl
ckRlc2t0b3BGaWxlKGRsZyk7CisgICAgY29uc3QgUVVybCBkaXJlY3RvcnkgPSBtb3N0TG9jYWxV
cmwobV9tZW51V29ya2luZ0RpcmVjdG9yeSk7CisgICAgY29uc3QgUVVybCBkZWZhdWx0RmlsZSA9
IFFVcmw6OmZyb21Mb2NhbEZpbGUoZGlyZWN0b3J5LnRvTG9jYWxGaWxlKCkgKyBRTGF0aW4xQ2hh
cignLycpICsgS0lPOjplbmNvZGVGaWxlTmFtZSh0ZXh0KSk7CisgICAgaWYgKGRlZmF1bHRGaWxl
LmlzTG9jYWxGaWxlKCkgJiYgUUZpbGU6OmV4aXN0cyhkZWZhdWx0RmlsZS50b0xvY2FsRmlsZSgp
KSkgeworICAgICAgICB0ZXh0ID0gS0ZpbGVVdGlsczo6c3VnZ2VzdE5hbWUoZGlyZWN0b3J5LCB0
ZXh0KTsKKyAgICB9CisKKyAgICBRVXJsIHRlbXBsYXRlVXJsOworICAgIGJvb2wgdXNpbmdUZW1w
bGF0ZSA9IGZhbHNlOworICAgIGlmIChlbnRyeS50ZW1wbGF0ZVBhdGguc3RhcnRzV2l0aChRTGF0
aW4xU3RyaW5nKCI6LyIpKSkgeworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UVRlbXBvcmFyeUZp
bGU+IHRtcEZpbGUoUVRlbXBvcmFyeUZpbGU6OmNyZWF0ZU5hdGl2ZUZpbGUoZW50cnkudGVtcGxh
dGVQYXRoKSk7CisgICAgICAgIHRtcEZpbGUtPnNldEF1dG9SZW1vdmUoZmFsc2UpOworICAgICAg
ICBRU3RyaW5nIHRlbXBGaWxlTmFtZSA9IHRtcEZpbGUtPmZpbGVOYW1lKCk7CisgICAgICAgIHRt
cEZpbGUtPmNsb3NlKCk7CisKKyAgICAgICAgS0Rlc2t0b3BGaWxlIGRmKHRlbXBGaWxlTmFtZSk7
CisgICAgICAgIEtDb25maWdHcm91cCBncm91cCA9IGRmLmRlc2t0b3BHcm91cCgpOworICAgICAg
ICBncm91cC53cml0ZUVudHJ5KCJOYW1lIiwgbmFtZSk7CisgICAgICAgIHRlbXBsYXRlVXJsID0g
UVVybDo6ZnJvbUxvY2FsRmlsZSh0ZW1wRmlsZU5hbWUpOworICAgICAgICBtX3RlbXBGaWxlVG9E
ZWxldGUgPSB0ZW1wRmlsZU5hbWU7CisgICAgICAgIHVzaW5nVGVtcGxhdGUgPSB0cnVlOworICAg
IH0gZWxzZSB7CisgICAgICAgIHRlbXBsYXRlVXJsID0gUVVybDo6ZnJvbUxvY2FsRmlsZShlbnRy
eS50ZW1wbGF0ZVBhdGgpOworICAgIH0KKyAgICBLUHJvcGVydGllc0RpYWxvZyAqZGxnID0gbmV3
IEtQcm9wZXJ0aWVzRGlhbG9nKHRlbXBsYXRlVXJsLCBkaXJlY3RvcnksIHRleHQsIG1fcGFyZW50
V2lkZ2V0KTsKKyAgICBkbGctPnNldE1vZGFsKHEtPmlzTW9kYWwoKSk7CisgICAgZGxnLT5zZXRB
dHRyaWJ1dGUoUXQ6OldBX0RlbGV0ZU9uQ2xvc2UpOworICAgIFFPYmplY3Q6OmNvbm5lY3QoZGxn
LCAmS1Byb3BlcnRpZXNEaWFsb2c6OmFwcGxpZWQsIHEsIFt0aGlzLCBkbGddKCkgeworICAgICAg
ICBfa19zbG90T3RoZXJEZXNrdG9wRmlsZShkbGcpOworICAgIH0pOworICAgIGlmICh1c2luZ1Rl
bXBsYXRlKSB7CisgICAgICAgIFFPYmplY3Q6OmNvbm5lY3QoZGxnLCAmS1Byb3BlcnRpZXNEaWFs
b2c6OnByb3BlcnRpZXNDbG9zZWQsIHEsIFt0aGlzXSgpIHsKKyAgICAgICAgICAgIHNsb3RPdGhl
ckRlc2t0b3BGaWxlQ2xvc2VkKCk7CiAgICAgICAgIH0pOwotICAgICAgICBpZiAodXNpbmdUZW1w
bGF0ZSkgewotICAgICAgICAgICAgUU9iamVjdDo6Y29ubmVjdChkbGcsICZLUHJvcGVydGllc0Rp
YWxvZzo6cHJvcGVydGllc0Nsb3NlZCwgcSwgW3RoaXNdKCkgewotICAgICAgICAgICAgICAgIHNs
b3RPdGhlckRlc2t0b3BGaWxlQ2xvc2VkKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQot
ICAgICAgICBkbGctPnNob3coKTsKICAgICB9CisgICAgZGxnLT5zaG93KCk7CiAgICAgLy8gV2Ug
ZG9uJ3Qgc2V0IG1fc3JjIGhlcmUgLT4gdGhlcmUgd2lsbCBiZSBubyBjb3B5LCB3ZSBhcmUgZG9u
ZS4KIH0KIApAQCAtNjY3LDcgKzY2NCw3IEBAIHZvaWQgS05ld0ZpbGVNZW51UHJpdmF0ZTo6ZXhl
Y3V0ZVJlYWxGaWxlT3JEaXIoY29uc3QgS05ld0ZpbGVNZW51U2luZ2xldG9uOjpFbnRyCiAKICAg
ICBtX2NvcHlEYXRhLm1fc3JjID0gZW50cnkudGVtcGxhdGVQYXRoOwogCi0gICAgY29uc3QgUVVy
bCBkaXJlY3RvcnkgPSBtb3N0TG9jYWxVcmwobV9wb3B1cEZpbGVzLmZpcnN0KCkpOworICAgIGNv
bnN0IFFVcmwgZGlyZWN0b3J5ID0gbW9zdExvY2FsVXJsKG1fbWVudVdvcmtpbmdEaXJlY3Rvcnkp
OwogICAgIG1fYmFzZVVybCA9IGRpcmVjdG9yeTsKICAgICBjb25zdCBRVXJsIGRlZmF1bHRGaWxl
ID0gUVVybDo6ZnJvbUxvY2FsRmlsZShkaXJlY3RvcnkudG9Mb2NhbEZpbGUoKSArIFFMYXRpbjFD
aGFyKCcvJykgKyBLSU86OmVuY29kZUZpbGVOYW1lKHRleHQpKTsKICAgICBpZiAoZGVmYXVsdEZp
bGUuaXNMb2NhbEZpbGUoKSAmJiBRRmlsZTo6ZXhpc3RzKGRlZmF1bHRGaWxlLnRvTG9jYWxGaWxl
KCkpKSB7CkBAIC03MDUsNyArNzAyLDcgQEAgdm9pZCBLTmV3RmlsZU1lbnVQcml2YXRlOjpleGVj
dXRlUmVhbEZpbGVPckRpcihjb25zdCBLTmV3RmlsZU1lbnVTaW5nbGV0b246OkVudHIKIAogdm9p
ZCBLTmV3RmlsZU1lbnVQcml2YXRlOjpleGVjdXRlU3ltTGluayhjb25zdCBLTmV3RmlsZU1lbnVT
aW5nbGV0b246OkVudHJ5ICZlbnRyeSkKIHsKLSAgICBhdXRvIHRhcmdldFVybCA9IG1fcG9wdXBG
aWxlcy5maXJzdCgpOworICAgIGF1dG8gdGFyZ2V0VXJsID0gbV9tZW51V29ya2luZ0RpcmVjdG9y
eTsKICAgICBpZiAoIXRhcmdldFVybC5pc0xvY2FsRmlsZSgpKSB7CiAgICAgICAgIHRhcmdldFVy
bCA9IG1vc3RMb2NhbFVybCh0YXJnZXRVcmwpOwogICAgIH0KQEAgLTc0MCw0MCArNzM3LDM4IEBA
IHZvaWQgS05ld0ZpbGVNZW51UHJpdmF0ZTo6ZXhlY3V0ZVN0cmF0ZWd5KCkKICAgICB9CiAKICAg
ICAvLyBUaGUgdGVtcGxhdGUgaXMgbm90IGEgZGVza3RvcCBmaWxlIFtvciBpdCdzIGEgVVJMIG9u
ZV0gPj4+IENvcHkgaXQKLSAgICBmb3IgKGNvbnN0IGF1dG8gJnUgOiBzdGQ6OmFzX2NvbnN0KG1f
cG9wdXBGaWxlcykpIHsKLSAgICAgICAgUVVybCBkZXN0ID0gdTsKLSAgICAgICAgZGVzdC5zZXRQ
YXRoKFV0aWxzOjpjb25jYXRQYXRocyhkZXN0LnBhdGgoKSwgS0lPOjplbmNvZGVGaWxlTmFtZShj
aG9zZW5GaWxlTmFtZSkpKTsKLQotICAgICAgICBLSU86OkpvYiAqa2pvYjsKLSAgICAgICAgaWYg
KG1fY29weURhdGEubV9pc1N5bWxpbmspIHsKLSAgICAgICAgICAgIEtJTzo6Q29weUpvYiAqbGlu
a0pvYiA9IEtJTzo6bGlua0FzKHVTcmMsIGRlc3QpOwotICAgICAgICAgICAga2pvYiA9IGxpbmtK
b2I7Ci0gICAgICAgICAgICBLSU86OkZpbGVVbmRvTWFuYWdlcjo6c2VsZigpLT5yZWNvcmRDb3B5
Sm9iKGxpbmtKb2IpOwotICAgICAgICB9IGVsc2UgaWYgKHNyYy5zdGFydHNXaXRoKFFMYXRpbjFT
dHJpbmcoIjovIikpKSB7Ci0gICAgICAgICAgICBRRmlsZSBzcmNGaWxlKHNyYyk7Ci0gICAgICAg
ICAgICBpZiAoIXNyY0ZpbGUub3BlbihRSU9EZXZpY2U6OlJlYWRPbmx5KSkgewotICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIFRoZSBRRmlsZSB3
b24ndCBsaXZlIGxvbmcgZW5vdWdoIGZvciB0aGUgam9iLCBzbyBsZXQncyBidWZmZXIgdGhlIGNv
bnRlbnRzCi0gICAgICAgICAgICBjb25zdCBRQnl0ZUFycmF5IHNyY0J1ZihzcmNGaWxlLnJlYWRB
bGwoKSk7Ci0gICAgICAgICAgICBLSU86OlN0b3JlZFRyYW5zZmVySm9iICpwdXRKb2IgPSBLSU86
OnN0b3JlZFB1dChzcmNCdWYsIGRlc3QsIC0xKTsKLSAgICAgICAgICAgIGtqb2IgPSBwdXRKb2I7
Ci0gICAgICAgICAgICBLSU86OkZpbGVVbmRvTWFuYWdlcjo6c2VsZigpLT5yZWNvcmRKb2IoS0lP
OjpGaWxlVW5kb01hbmFnZXI6OlB1dCwgUUxpc3Q8UVVybD4oKSwgZGVzdCwgcHV0Sm9iKTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIHFEZWJ1ZygpIDw8ICJLSU86OmNvcHlBcygi
IDw8IHVTcmMudXJsKCkgPDwgIiwiIDw8IGRlc3QudXJsKCkgPDwgIikiOwotICAgICAgICAgICAg
S0lPOjpDb3B5Sm9iICpqb2IgPSBLSU86OmNvcHlBcyh1U3JjLCBkZXN0KTsKLSAgICAgICAgICAg
IGpvYi0+c2V0RGVmYXVsdFBlcm1pc3Npb25zKHRydWUpOwotICAgICAgICAgICAga2pvYiA9IGpv
YjsKLSAgICAgICAgICAgIEtJTzo6RmlsZVVuZG9NYW5hZ2VyOjpzZWxmKCktPnJlY29yZENvcHlK
b2Ioam9iKTsKKyAgICBRVXJsIGRlc3QgPSBtX21lbnVXb3JraW5nRGlyZWN0b3J5OworICAgIGRl
c3Quc2V0UGF0aChVdGlsczo6Y29uY2F0UGF0aHMoZGVzdC5wYXRoKCksIEtJTzo6ZW5jb2RlRmls
ZU5hbWUoY2hvc2VuRmlsZU5hbWUpKSk7CisKKyAgICBLSU86OkpvYiAqa2pvYjsKKyAgICBpZiAo
bV9jb3B5RGF0YS5tX2lzU3ltbGluaykgeworICAgICAgICBLSU86OkNvcHlKb2IgKmxpbmtKb2Ig
PSBLSU86OmxpbmtBcyh1U3JjLCBkZXN0KTsKKyAgICAgICAga2pvYiA9IGxpbmtKb2I7CisgICAg
ICAgIEtJTzo6RmlsZVVuZG9NYW5hZ2VyOjpzZWxmKCktPnJlY29yZENvcHlKb2IobGlua0pvYik7
CisgICAgfSBlbHNlIGlmIChzcmMuc3RhcnRzV2l0aChRTGF0aW4xU3RyaW5nKCI6LyIpKSkgewor
ICAgICAgICBRRmlsZSBzcmNGaWxlKHNyYyk7CisgICAgICAgIGlmICghc3JjRmlsZS5vcGVuKFFJ
T0RldmljZTo6UmVhZE9ubHkpKSB7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAg
ICAgICAgS0pvYldpZGdldHM6OnNldFdpbmRvdyhram9iLCBtX3BhcmVudFdpZGdldCk7Ci0gICAg
ICAgIFFPYmplY3Q6OmNvbm5lY3Qoa2pvYiwgJktKb2I6OnJlc3VsdCwgcSwgJktOZXdGaWxlTWVu
dTo6c2xvdFJlc3VsdCk7Ci0gICAgfQorICAgICAgICAvLyBUaGUgUUZpbGUgd29uJ3QgbGl2ZSBs
b25nIGVub3VnaCBmb3IgdGhlIGpvYiwgc28gbGV0J3MgYnVmZmVyIHRoZSBjb250ZW50cworICAg
ICAgICBjb25zdCBRQnl0ZUFycmF5IHNyY0J1ZihzcmNGaWxlLnJlYWRBbGwoKSk7CisgICAgICAg
IEtJTzo6U3RvcmVkVHJhbnNmZXJKb2IgKnB1dEpvYiA9IEtJTzo6c3RvcmVkUHV0KHNyY0J1Ziwg
ZGVzdCwgLTEpOworICAgICAgICBram9iID0gcHV0Sm9iOworICAgICAgICBLSU86OkZpbGVVbmRv
TWFuYWdlcjo6c2VsZigpLT5yZWNvcmRKb2IoS0lPOjpGaWxlVW5kb01hbmFnZXI6OlB1dCwgUUxp
c3Q8UVVybD4oKSwgZGVzdCwgcHV0Sm9iKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBxRGVi
dWcoKSA8PCAiS0lPOjpjb3B5QXMoIiA8PCB1U3JjLnVybCgpIDw8ICIsIiA8PCBkZXN0LnVybCgp
IDw8ICIpIjsKKyAgICAgICAgS0lPOjpDb3B5Sm9iICpqb2IgPSBLSU86OmNvcHlBcyh1U3JjLCBk
ZXN0KTsKKyAgICAgICAgam9iLT5zZXREZWZhdWx0UGVybWlzc2lvbnModHJ1ZSk7CisgICAgICAg
IGtqb2IgPSBqb2I7CisgICAgICAgIEtJTzo6RmlsZVVuZG9NYW5hZ2VyOjpzZWxmKCktPnJlY29y
ZENvcHlKb2Ioam9iKTsKKyAgICB9CisgICAgS0pvYldpZGdldHM6OnNldFdpbmRvdyhram9iLCBt
X3BhcmVudFdpZGdldCk7CisgICAgUU9iamVjdDo6Y29ubmVjdChram9iLCAmS0pvYjo6cmVzdWx0
LCBxLCAmS05ld0ZpbGVNZW51OjpzbG90UmVzdWx0KTsKIH0KIAogdm9pZCBLTmV3RmlsZU1lbnVQ
cml2YXRlOjpleGVjdXRlVXJsRGVza3RvcEZpbGUoY29uc3QgS05ld0ZpbGVNZW51U2luZ2xldG9u
OjpFbnRyeSAmZW50cnkpCiB7Ci0gICAgS05hbWVBbmRVcmxJbnB1dERpYWxvZyAqZGxnID0gbmV3
IEtOYW1lQW5kVXJsSW5wdXREaWFsb2coaTE4bigiTmFtZSBmb3IgbmV3IGxpbms6IiksIGVudHJ5
LmNvbW1lbnQsIG1fcG9wdXBGaWxlcy5maXJzdCgpLCBtX3BhcmVudFdpZGdldCk7CisgICAgS05h
bWVBbmRVcmxJbnB1dERpYWxvZyAqZGxnID0gbmV3IEtOYW1lQW5kVXJsSW5wdXREaWFsb2coaTE4
bigiTmFtZSBmb3IgbmV3IGxpbms6IiksIGVudHJ5LmNvbW1lbnQsIG1fbWVudVdvcmtpbmdEaXJl
Y3RvcnksIG1fcGFyZW50V2lkZ2V0KTsKICAgICBtX2NvcHlEYXRhLm1fdGVtcGxhdGVQYXRoID0g
ZW50cnkudGVtcGxhdGVQYXRoOwogICAgIGRsZy0+c2V0TW9kYWwocS0+aXNNb2RhbCgpKTsKICAg
ICBkbGctPnNldEF0dHJpYnV0ZShRdDo6V0FfRGVsZXRlT25DbG9zZSk7CkBAIC05MjYsNyArOTIx
LDcgQEAgdm9pZCBLTmV3RmlsZU1lbnVQcml2YXRlOjpzbG90Q3JlYXRlRGlyZWN0b3J5KCkKICAg
ICB9CiAKICAgICBRVXJsIHVybDsKLSAgICBRVXJsIGJhc2VVcmwgPSBtX3BvcHVwRmlsZXMuZmly
c3QoKTsKKyAgICBRVXJsIGJhc2VVcmwgPSBtX21lbnVXb3JraW5nRGlyZWN0b3J5OwogCiAgICAg
UVN0cmluZyBuYW1lID0gZXhwYW5kVGlsZGUobV90ZXh0KTsKIApAQCAtMTQ2MiwxMSArMTQ1Nywx
MSBAQCB2b2lkIEtOZXdGaWxlTWVudTo6Y2hlY2tVcFRvRGF0ZSgpCiAKIHZvaWQgS05ld0ZpbGVN
ZW51OjpjcmVhdGVEaXJlY3RvcnkoKQogewotICAgIGlmIChkLT5tX3BvcHVwRmlsZXMuaXNFbXB0
eSgpKSB7CisgICAgaWYgKGQtPm1fbWVudVdvcmtpbmdEaXJlY3RvcnkuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkLT5tX2Jhc2VVcmwgPSBkLT5tX3BvcHVwRmls
ZXMuZmlyc3QoKTsKKyAgICBkLT5tX2Jhc2VVcmwgPSBkLT5tX21lbnVXb3JraW5nRGlyZWN0b3J5
OwogCiAgICAgaWYgKGQtPm1faXNDcmVhdGVEaXJlY3RvcnlSdW5uaW5nKSB7CiAgICAgICAgIHFD
V2FybmluZyhLRklMRVdJREdFVFNfTE9HKSA8PCAiRGlyZWN0b3J5IGNyZWF0aW9uIGlzIGFscmVh
ZHkgcnVubmluZyBmb3IgIiA8PCBkLT5tX2Jhc2VVcmw7CkBAIC0xNjQ0LDcgKzE2MzksNyBAQCB2
b2lkIEtOZXdGaWxlTWVudVByaXZhdGU6OnNob3dOZXdEaXJOYW1lRGxnKGNvbnN0IFFTdHJpbmcg
Jm5hbWUpCiAKIHZvaWQgS05ld0ZpbGVNZW51OjpjcmVhdGVGaWxlKCkKIHsKLSAgICBpZiAoZC0+
bV9wb3B1cEZpbGVzLmlzRW1wdHkoKSkgeworICAgIGlmIChkLT5tX21lbnVXb3JraW5nRGlyZWN0
b3J5LmlzRW1wdHkoKSkgewogICAgICAgICBRX0VNSVQgZmlsZUNyZWF0aW9uUmVqZWN0ZWQoUVVy
bCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE3NDksNyArMTc0NCw3IEBAIFFTdHJp
bmdMaXN0IEtOZXdGaWxlTWVudTo6c3VwcG9ydGVkTWltZVR5cGVzKCkgY29uc3QKIAogdm9pZCBL
TmV3RmlsZU1lbnU6OnNldFdvcmtpbmdEaXJlY3RvcnkoY29uc3QgUVVybCAmZGlyZWN0b3J5KQog
ewotICAgIGQtPm1fcG9wdXBGaWxlcyA9IHtkaXJlY3Rvcnl9OworICAgIGQtPm1fbWVudVdvcmtp
bmdEaXJlY3RvcnkgPSBkaXJlY3Rvcnk7CiAKICAgICBpZiAoZGlyZWN0b3J5LmlzRW1wdHkoKSkg
ewogICAgICAgICBkLT5tX25ld01lbnVHcm91cC0+c2V0RW5hYmxlZChmYWxzZSk7CkBAIC0xNzY3
LDcgKzE3NjIsNyBAQCB2b2lkIEtOZXdGaWxlTWVudTo6c2V0V29ya2luZ0RpcmVjdG9yeShjb25z
dCBRVXJsICZkaXJlY3RvcnkpCiAKIFFVcmwgS05ld0ZpbGVNZW51Ojp3b3JraW5nRGlyZWN0b3J5
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZC0+bV9wb3B1cEZpbGVzLmlzRW1wdHkoKSA/IFFVcmwo
KSA6IGQtPm1fcG9wdXBGaWxlcy5maXJzdCgpOworICAgIHJldHVybiBkLT5tX21lbnVXb3JraW5n
RGlyZWN0b3J5OwogfQogCiB2b2lkIEtOZXdGaWxlTWVudTo6c2V0TmV3Rm9sZGVyU2hvcnRjdXRB
Y3Rpb24oUUFjdGlvbiAqYWN0aW9uKQo=