[office/kmymoney] /: Enhance date entry widget keyboard support.
Ralf Habacker <[email protected]> Tue, 14 Apr 2026 20:33:34 +0000 (UTC)
| Newsgroups | gmane.comp.kde.cvs,gmane.comp.kde.doc |
|---|---|
| Message-ID | <[email protected]> |
R2l0IGNvbW1pdCBkMDZkMDQzZmMwYzQzNTkxOGFmNDUwZjYwZmU3YWMxMWNlYWJmY2RmIGJ5IFJh bGYgSGFiYWNrZXIsIG9uIGJlaGFsZiBvZiBEYXdpZCBXcm/MgWJlbC4KQ29tbWl0dGVkIG9uIDE0 LzA0LzIwMjYgYXQgMTk6MzIuClB1c2hlZCBieSBoYWJhY2tlciBpbnRvIGJyYW5jaCAnbWFzdGVy Jy4KCkVuaGFuY2UgZGF0ZSBlbnRyeSB3aWRnZXQga2V5Ym9hcmQgc3VwcG9ydC4KCi0gQWRkIG5l dyBrZXlib2FyZCBzaG9ydGN1dHMgZm9yIGluY3JlYXNpbmcvZGVjcmVhc2luZyBtb250aCBhbmQg eWVhciwKICB3cmFwcGluZyBhcm91bmQgZGF0ZXMgYXMgbmVlZGVkLCB3aGlsZSBrZWVwaW5nIHRo ZSBvcmlnaW5hbCBkYXkKICB3aGVuZXZlciBwb3NzaWJsZS4KLSBBZGQgbmV3IGtleWJvYXJkIHNo b3J0Y3V0cyBmb3IgcXVpY2sgc2VsZWN0aW9uIG9yIHN0YXJ0L2VuZCBvZgogIG1vbnRoIGFuZCB5 ZWFyLgotIFNpbXBsaWZpZXMgdGhlIGFkanVzdERheSgpLCBhZGp1c3RNb250aCgpIGFuZCBhZGp1 c3RZZWFyKCkgbG9naWMuCgpBbGwgbmV3IGtleWJvYXJkIHNob3J0Y3V0cyBmb2xsb3cgdGhlIEdu dUNhc2ggc3RhbmRhcmQ6Cmh0dHBzOi8vd3d3LmdudWNhc2gub3JnL2RvY3MvdjUvQy9nbnVjYXNo LWd1aWRlL2NoYXB0ZXJfdHhucy5odG1sCgpNICArMzIgICAtNCAgICBkb2MvZGV0YWlscy13aWRn ZXRzLmRvY2Jvb2sKTSAgKzc3ICAgLTYwICAga215bW9uZXkvd2lkZ2V0cy9rbXltb25leWRhdGVl ZGl0LmNwcAoKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9vZmZpY2Uva215bW9uZXkvLS9jb21taXQv ZDA2ZDA0M2ZjMGM0MzU5MThhZjQ1MGY2MGZlN2FjMTFjZWFiZmNkZgoKZGlmZiAtLWdpdCBhL2Rv Yy9kZXRhaWxzLXdpZGdldHMuZG9jYm9vayBiL2RvYy9kZXRhaWxzLXdpZGdldHMuZG9jYm9vawpp bmRleCA1MzAxYTVhM2MuLjRjMTUyYmM4MSAxMDA2NDQKLS0tIGEvZG9jL2RldGFpbHMtd2lkZ2V0 cy5kb2Nib29rCisrKyBiL2RvYy9kZXRhaWxzLXdpZGdldHMuZG9jYm9vawpAQCAtNDYsMTAgKzQ2 LDM4IEBACiAgIFdpdGhpbiB0aGUgZGF0ZSBlbnRyeSB3aWRnZXQsIHRoZSAmTGVmdDsvJlJpZ2h0 OyBjdXJzb3Iga2V5cyBjYW4gYmUgdXNlZCB0byBzd2l0Y2gKICAgYmV0d2VlbiB0aGUgPGVtcGhh c2lzPmRheTwvZW1waGFzaXM+LCB0aGUgPGVtcGhhc2lzPm1vbnRoPC9lbXBoYXNpcz4sIGFuZCB0 aGUKICAgPGVtcGhhc2lzPnllYXI8L2VtcGhhc2lzPiBmaWVsZHMuIFVzaW5nIHRoZSAmVXA7LyZE b3duOyBjdXJzb3Iga2V5cywgdGhlIHZhbHVlIG9mCi0gIHRoZSBzZWxlY3RlZCBmaWVsZCBjYW4g YmUgaW5jcmVtZW50ZWQvZGVjcmVtZW50ZWQuICBUaGUgPGtleWNhcD4rPC9rZXljYXA+IGFuZAot ICA8a2V5Y2FwPi08L2tleWNhcD4ga2V5cyBjYW4gYmUgdXNlZCB0byBpbmNyZW1lbnQvZGVjcmVt ZW50IGEgc2luZ2xlIGRheS4gIE1vbnRoIGFuZAotICB5ZWFyIGJvdW5kYXJpZXMgYXJlIGNvbnNp ZGVyZWQgYW5kIGluY3JlbWVudGVkL2RlY3JlbWVudGVkIGlmIG5lY2Vzc2FyeS4gIFByZXNzaW5n Ci0gIDxrZXljYXA+VDwva2V5Y2FwPiB3aWxsIHNldCB0aGUgZGF0ZSB0byB0b2RheSdzIGRhdGUu CisgIHRoZSBzZWxlY3RlZCBmaWVsZCBjYW4gYmUgaW5jcmVtZW50ZWQvZGVjcmVtZW50ZWQuICBU aGUgPGtleWNhcD4rPC9rZXljYXA+IG9yCisgIDxrZXljYXA+PTwva2V5Y2FwPiBhbmQgPGtleWNh cD4tPC9rZXljYXA+IGtleXMgY2FuIGJlIHVzZWQgdG8gaW5jcmVtZW50L2RlY3JlbWVudCBhCisg IHNpbmdsZSBkYXkuICBUaGUgPGtleWNhcD5dPC9rZXljYXA+IG9yIDxrZXljYXA+fTwva2V5Y2Fw PiBhbmQgPGtleWNhcD5bPC9rZXljYXA+IG9yCisgIDxrZXljYXA+ezwva2V5Y2FwPiBrZXlzIGNh biBiZSB1c2VkIHRvIGluY3JlbWVudC9kZWNyZW1lbnQgYSBzaW5nbGUgbW9udGguCisgIFRoZSA8 a2V5Y2FwPic8L2tleWNhcD4gb3IgPGtleWNhcD4iPC9rZXljYXA+IGFuZCA8a2V5Y2FwPjs8L2tl eWNhcD4gb3IgPGtleWNhcD46PC9rZXljYXA+CisgIGtleXMgY2FuIGJlIHVzZWQgdG8gaW5jcmVt ZW50L2RlY3JlbWVudCBhIHNpbmdsZSB5ZWFyLiBNb250aCBhbmQgeWVhciBib3VuZGFyaWVzCisg IGFyZSBjb25zaWRlcmVkIGFuZCBpbmNyZW1lbnRlZC9kZWNyZW1lbnRlZCBpZiBuZWNlc3Nhcnks IGUuZy4gdXNpbmcgPGtleWNhcD4rPC9rZXljYXA+CisgIHRvIGluY3JlbWVudCB0aGUgZGF0ZSBv ZiBKYW51YXJ5IDMxdGggd2lsbCBjaGFuZ2UgaXQgdG8gRmVicnVhcnkgMXN0LgorPC9wYXJhPgor Cis8cGFyYT4KKyAgVGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIHNob3J0Y3V0cyBjYW4gYWxzbyBi ZSB1c2VkOgorPC9wYXJhPgorCis8cGFyYT4KKyAgPGl0ZW1pemVkbGlzdD4KKyAgICA8bGlzdGl0 ZW0+CisgICAgICA8cGFyYT48a2V5Y2FwPk08L2tleWNhcD4gdG8gc2V0IHRoZSBkYXRlIHRvIHRo ZSBmaXJzdCBkYXkgb2YgdGhlIGN1cnJlbnQgbW9udGg8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT48a2V5Y2FwPkg8L2tleWNhcD4gdG8gc2V0IHRo ZSBkYXRlIHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgY3VycmVudCBtb250aDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPjxrZXljYXA+WTwva2V5Y2Fw PiB0byBzZXQgdGhlIGRhdGUgdG8gdGhlIGZpcnN0IGRheSBvZiB0aGUgY3VycmVudCB5ZWFyPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+PGtleWNh cD5SPC9rZXljYXA+IHRvIHNldCB0aGUgZGF0ZSB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIGN1cnJl bnQgeWVhcjwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPjxrZXljYXA+VDwva2V5Y2FwPiB0byBzZXQgdGhlIGRhdGUgdG8gdG9kYXkncyBkYXRlPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgIDwvaXRlbWl6ZWRsaXN0PgogPC9wYXJhPgogCiA8cGFy YT4KZGlmZiAtLWdpdCBhL2tteW1vbmV5L3dpZGdldHMva215bW9uZXlkYXRlZWRpdC5jcHAgYi9r bXltb25leS93aWRnZXRzL2tteW1vbmV5ZGF0ZWVkaXQuY3BwCmluZGV4IDYzODY0ZTViYy4uMDdj ZDM0NmJlIDEwMDY0NAotLS0gYS9rbXltb25leS93aWRnZXRzL2tteW1vbmV5ZGF0ZWVkaXQuY3Bw CisrKyBiL2tteW1vbmV5L3dpZGdldHMva215bW9uZXlkYXRlZWRpdC5jcHAKQEAgLTI1Niw3NSAr MjU2LDM3IEBAIHB1YmxpYzoKIAogICAgIC8qKgogICAgICAqIEFkanVzdCB0aGUgZGF5IG9mIHRo ZSBAYSBkYXRlIGJ5IHRoZSBhbW91bnQgcHJvdmlkZWQgYnkgQGEgZGVsdGEKLSAgICAgKiBpbiBk YXlzLiBJbiBjYXNlIHRoZSByZXN1bHRpbmcgZGF5IGlzIG5vdCB3aXRoaW4gdGhlIGJvdW5kcyBv ZgotICAgICAqIHRoZSBtb250aCBvZiBAYSBkYXRlIGFuIGludmFsaWQgZGF0ZSBpcyByZXR1cm5l ZC4KKyAgICAgKiBpbiBkYXlzLgogICAgICAqLwogICAgIFFEYXRlIGFkanVzdERheShRRGF0ZSBk YXRlLCBpbnQgZGVsdGEpCiAgICAgewotICAgICAgICBjb25zdCBhdXRvIG1pblZhbHVlKDEpOwot ICAgICAgICBjb25zdCBhdXRvIG1heFZhbHVlKGRhdGUuZGF5c0luTW9udGgoKSk7Ci0gICAgICAg IGNvbnN0IGF1dG8gbmV3RGF5KGRhdGUuZGF5KCkgKyBkZWx0YSk7Ci0gICAgICAgIGlmICgobmV3 RGF5ID49IG1pblZhbHVlKSAmJiAobmV3RGF5IDw9IG1heFZhbHVlKSkgewotICAgICAgICAgICAg cmV0dXJuIFFEYXRlKGRhdGUueWVhcigpLCBkYXRlLm1vbnRoKCksIG5ld0RheSk7Ci0gICAgICAg IH0KLSAgICAgICAgcmV0dXJuIHt9OworICAgICAgICByZXR1cm4gZGF0ZS5hZGREYXlzKGRlbHRh KTsKICAgICB9CiAKICAgICAvKioKICAgICAgKiBBZGp1c3QgdGhlIG1vbnRoIG9mIHRoZSBAYSBk YXRlIGJ5IHRoZSBhbW91bnQgcHJvdmlkZWQgYnkgQGEgZGVsdGEKLSAgICAgKiBpbiBtb250aHMu IEluIGNhc2UgdGhlIHJlc3VsdGluZyBtb250aCBpcyBub3Qgd2l0aGluIHRoZSBib3VuZHMgb2YK LSAgICAgKiB2YWxpZCBtb250aHMgKDEuLjEyKSBhbiBpbnZhbGlkIGRhdGUgaXMgcmV0dXJuZWQu IEluIGNhc2UgdGhlCi0gICAgICogb3JpZ2luYWwgZGF5IGlzIGxhcmdlciB0aGFuIHRoZSBjdXJy ZW50IGRheSwgaXQgd2lsbCBiZSB1c2VkCi0gICAgICogaW5zdGVhZC4gSW4gY2FzZSB0aGUgZGF5 IGlzIG5vdCB3aXRoaW4gdGhlIHJhbmdlIG9mIHZhbGlkIGRheXMKLSAgICAgKiBmb3IgdGhlIHJl c3VsdGluZyBtb250aCB0aGUgZGF5IHdpbGwgYmUgYWRqdXN0ZWQgdG8gdGhlIGxhc3QgZGF5Ci0g ICAgICogb2YgdGhlIG1vbnRoLgorICAgICAqIGluIG1vbnRocy4gVXNlcyB0aGUgb3JpZ2luYWwg ZGF5LiBJbiBjYXNlIHRoZSBvcmlnaW5hbCBkYXkgaXMgbm90IHdpdGhpbgorICAgICAqIHRoZSBy YW5nZSBvZiB2YWxpZCBkYXlzIGZvciB0aGUgcmVzdWx0aW5nLCBwb3N0LWFkanVzdG1lbnQgbW9u dGgsIHRoZSBkYXkKKyAgICAgKiB3aWxsIGJlIGFkanVzdGVkIHRvIHRoZSBsYXN0IGRheSBvZiB0 aGF0IG1vbnRoLgogICAgICAqLwogICAgIFFEYXRlIGFkanVzdE1vbnRoKFFEYXRlIGRhdGUsIGlu dCBkZWx0YSkKICAgICB7Ci0gICAgICAgIGNvbnN0IGF1dG8gbWluVmFsdWUoMSk7Ci0gICAgICAg IGNvbnN0IGF1dG8gbWF4VmFsdWUoMTIpOwotICAgICAgICBjb25zdCBhdXRvIG5ld01vbnRoKGRh dGUubW9udGgoKSArIGRlbHRhKTsKLQotICAgICAgICBpZiAoKG5ld01vbnRoID49IG1pblZhbHVl KSAmJiAobmV3TW9udGggPD0gbWF4VmFsdWUpKSB7Ci0gICAgICAgICAgICBhdXRvIGRheSA9IGRh dGUuZGF5KCk7Ci0gICAgICAgICAgICBpZiAobV9vcmlnaW5hbERheSA+IGRheSkKLSAgICAgICAg ICAgICAgICBkYXkgPSBtX29yaWdpbmFsRGF5OwotICAgICAgICAgICAgYXV0byBuZXdEYXRlID0g UURhdGUoZGF0ZS55ZWFyKCksIG5ld01vbnRoLCBkYXkpOwotICAgICAgICAgICAgaWYgKCFuZXdE YXRlLmlzVmFsaWQoKSkgewotICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8gbWF4RGF5cyhRRGF0 ZShkYXRlLnllYXIoKSwgbmV3TW9udGgsIDEpLmRheXNJbk1vbnRoKCkpOwotICAgICAgICAgICAg ICAgIG5ld0RhdGUgPSBRRGF0ZShkYXRlLnllYXIoKSwgbmV3TW9udGgsIG1heERheXMpOwotICAg ICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG5ld0RhdGU7Ci0gICAgICAgIH0KLSAgICAg ICAgcmV0dXJuIHt9OworICAgICAgICBRRGF0ZSBuZXdEYXRlID0gZGF0ZS5hZGRNb250aHMoZGVs dGEpOworCisgICAgICAgIHJldHVybiBRRGF0ZShuZXdEYXRlLnllYXIoKSwgbmV3RGF0ZS5tb250 aCgpLCBxTWluKG1fb3JpZ2luYWxEYXksIG5ld0RhdGUuZGF5c0luTW9udGgoKSkpOwogICAgIH0K IAogICAgIC8qKgogICAgICAqIEFkanVzdCB0aGUgeWVhciBvZiB0aGUgQGEgZGF0ZSBieSB0aGUg YW1vdW50IHByb3ZpZGVkIGJ5IEBhIGRlbHRhCi0gICAgICogaW4geWVhcnMuIEluIGNhc2UgdGhl IHJlc3VsdGluZyB5ZWFyIGlzIG5vdCB3aXRoaW4gdGhlIGJvdW5kcyBvZgotICAgICAqIHZhbGlk IHllYXJzICgxLi40MDAwKSBhbiBpbnZhbGlkIGRhdGUgaXMgcmV0dXJuZWQuIEluIGNhc2UgdGhl Ci0gICAgICogb3JpZ2luYWwgZGF5IGlzIGxhcmdlciB0aGFuIHRoZSBjdXJyZW50IGRheSwgaXQg d2lsbCBiZSB1c2VkCi0gICAgICogaW5zdGVhZC4gSW4gY2FzZSB0aGUgZGF5IGlzIG5vdCB3aXRo aW4gdGhlIHJhbmdlIG9mIHZhbGlkIGRheXMKLSAgICAgKiBmb3IgdGhlIHJlc3VsdGluZyBtb250 aCB0aGUgZGF5IHdpbGwgYmUgYWRqdXN0ZWQgdG8gdGhlIGxhc3QgZGF5Ci0gICAgICogb2YgdGhl IG1vbnRoLgorICAgICAqIGluIHllYXIuIFVzZXMgdGhlIG9yaWdpbmFsIGRheS4gSW4gY2FzZSB0 aGUgb3JpZ2luYWwgZGF5IGlzIG5vdCB3aXRoaW4KKyAgICAgKiB0aGUgcmFuZ2Ugb2YgdmFsaWQg ZGF5cyBmb3IgdGhlIHJlc3VsdGluZywgcG9zdC1hZGp1c3RtZW50IG1vbnRoLCB0aGUgZGF5Cisg ICAgICogd2lsbCBiZSBhZGp1c3RlZCB0byB0aGUgbGFzdCBkYXkgb2YgdGhhdCBtb250aC4KICAg ICAgKi8KICAgICBRRGF0ZSBhZGp1c3RZZWFyKFFEYXRlIGRhdGUsIGludCBkZWx0YSkKICAgICB7 Ci0gICAgICAgIGNvbnN0IGF1dG8gbWluVmFsdWUoMSk7Ci0gICAgICAgIGNvbnN0IGF1dG8gbWF4 VmFsdWUoNDAwMCk7Ci0gICAgICAgIGNvbnN0IGF1dG8gbmV3WWVhcihkYXRlLnllYXIoKSArIGRl bHRhKTsKLSAgICAgICAgaWYgKChuZXdZZWFyID49IG1pblZhbHVlKSAmJiAobmV3WWVhciA8PSBt YXhWYWx1ZSkpIHsKLSAgICAgICAgICAgIGF1dG8gZGF5ID0gZGF0ZS5kYXkoKTsKLSAgICAgICAg ICAgIGlmIChtX29yaWdpbmFsRGF5ID4gZGF5KQotICAgICAgICAgICAgICAgIGRheSA9IG1fb3Jp Z2luYWxEYXk7Ci0gICAgICAgICAgICBhdXRvIG5ld0RhdGUgPSBRRGF0ZShuZXdZZWFyLCBkYXRl Lm1vbnRoKCksIGRheSk7Ci0gICAgICAgICAgICBpZiAoIW5ld0RhdGUuaXNWYWxpZCgpKSB7Ci0g ICAgICAgICAgICAgICAgY29uc3QgYXV0byBtYXhEYXlzKFFEYXRlKG5ld1llYXIsIGRhdGUubW9u dGgoKSwgMSkuZGF5c0luTW9udGgoKSk7Ci0gICAgICAgICAgICAgICAgbmV3RGF0ZSA9IFFEYXRl KG5ld1llYXIsIGRhdGUubW9udGgoKSwgbWF4RGF5cyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg ICAgICByZXR1cm4gbmV3RGF0ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4ge307CisgICAg ICAgIFFEYXRlIG5ld0RhdGUgPSBkYXRlLmFkZFllYXJzKGRlbHRhKTsKKworICAgICAgICByZXR1 cm4gUURhdGUobmV3RGF0ZS55ZWFyKCksIG5ld0RhdGUubW9udGgoKSwgcU1pbihtX29yaWdpbmFs RGF5LCBuZXdEYXRlLmRheXNJbk1vbnRoKCkpKTsKICAgICB9CiAKICAgICAvKioKQEAgLTM4Nywy MSArMzQ5LDE2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGF1dG8gZGF0ZSA9IGZpeHVwRGF0ZSgp OwogICAgICAgICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpKSB7CiAgICAgICAgICAgICAgICAgc3dp dGNoIChzZWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBRRGF0ZUVkaXQ6OkRheVNlY3Rp b246Ci0gICAgICAgICAgICAgICAgICAgIGRhdGUgPSBhZGp1c3REYXkoZGF0ZSwgZGVsdGEpOwot ICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHsKLSAgICAgICAgICAgICAg ICAgICAgICAgIG1fb3JpZ2luYWxEYXkgPSBkYXRlLmRheSgpOwotICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgUURh dGVFZGl0OjpNb250aFNlY3Rpb246CiAgICAgICAgICAgICAgICAgICAgIGRhdGUgPSBhZGp1c3RN b250aChkYXRlLCBkZWx0YSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICAgICAgIGNhc2UgUURhdGVFZGl0OjpZZWFyU2VjdGlvbjoKICAgICAgICAgICAgICAgICAgICAg ZGF0ZSA9IGFkanVzdFllYXIoZGF0ZSwgZGVsdGEpOwogICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICBjYXNlIFFEYXRlRWRpdDo6RGF5U2VjdGlvbjoKICAgICAgICAg ICAgICAgICBjYXNlIFFEYXRlRWRpdDo6Tm9TZWN0aW9uOgogICAgICAgICAgICAgICAgIGRlZmF1 bHQ6Ci0gICAgICAgICAgICAgICAgICAgIGRhdGUgPSBkYXRlLmFkZERheXMoZGVsdGEpOworICAg ICAgICAgICAgICAgICAgICBkYXRlID0gYWRqdXN0RGF5KGRhdGUsIGRlbHRhKTsKICAgICAgICAg ICAgICAgICAgICAgbV9vcmlnaW5hbERheSA9IGRhdGUuZGF5KCk7CiAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTYwOCw3ICs1NjUsMzUgQEAgdm9pZCBL TXlNb25leURhdGVFZGl0OjprZXlQcmVzc0V2ZW50KFFLZXlFdmVudCoga2V5RXZlbnQpCiAgICAg Y2FzZSBRdDo6S2V5X01pbnVzOgogICAgIGNhc2UgUXQ6OktleV9FcXVhbDoKICAgICAgICAgaWYg KGlzVmFsaWQoKSkgewotICAgICAgICAgICAgZC0+YWRqdXN0RGF0ZShrZXkgIT0gUXQ6OktleV9N aW51cyA/IDEgOiAtMSwgUURhdGVFZGl0OjpOb1NlY3Rpb24pOworICAgICAgICAgICAgZC0+YWRq dXN0RGF0ZShrZXkgIT0gUXQ6OktleV9NaW51cyA/IDEgOiAtMSwgUURhdGVFZGl0OjpEYXlTZWN0 aW9uKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgUXQ6OktleV9CcmFj a2V0TGVmdDoKKyAgICBjYXNlIFF0OjpLZXlfQnJhY2VMZWZ0OgorICAgICAgICBpZiAoaXNWYWxp ZCgpKSB7CisgICAgICAgICAgICBkLT5hZGp1c3REYXRlKC0xLCBRRGF0ZUVkaXQ6Ok1vbnRoU2Vj dGlvbik7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFF0OjpLZXlfQnJh Y2tldFJpZ2h0OgorICAgIGNhc2UgUXQ6OktleV9CcmFjZVJpZ2h0OgorICAgICAgICBpZiAoaXNW YWxpZCgpKSB7CisgICAgICAgICAgICBkLT5hZGp1c3REYXRlKDEsIFFEYXRlRWRpdDo6TW9udGhT ZWN0aW9uKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgUXQ6OktleV9D b2xvbjoKKyAgICBjYXNlIFF0OjpLZXlfU2VtaWNvbG9uOgorICAgICAgICBpZiAoaXNWYWxpZCgp KSB7CisgICAgICAgICAgICBkLT5hZGp1c3REYXRlKC0xLCBRRGF0ZUVkaXQ6OlllYXJTZWN0aW9u KTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgUXQ6OktleV9RdW90ZURi bDoKKyAgICBjYXNlIFF0OjpLZXlfQXBvc3Ryb3BoZToKKyAgICAgICAgaWYgKGlzVmFsaWQoKSkg eworICAgICAgICAgICAgZC0+YWRqdXN0RGF0ZSgxLCBRRGF0ZUVkaXQ6OlllYXJTZWN0aW9uKTsK ICAgICAgICAgfQogICAgICAgICBicmVhazsKIApAQCAtNjUyLDYgKzYzNywzOCBAQCB2b2lkIEtN eU1vbmV5RGF0ZUVkaXQ6OmtleVByZXNzRXZlbnQoUUtleUV2ZW50KiBrZXlFdmVudCkKICAgICAg ICAgUUNvbWJvQm94OjprZXlQcmVzc0V2ZW50KGtleUV2ZW50KTsKICAgICAgICAgYnJlYWs7CiAK KyAgICBjYXNlIFF0OjpLZXlfTToKKyAgICAgICAgZGF0ZSA9IGQtPmZpeHVwRGF0ZSgpOworICAg ICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIHNldERhdGUoUURhdGUoZGF0 ZS55ZWFyKCksIGRhdGUubW9udGgoKSwgMSkpOworICAgICAgICAgICAgZC0+c2VsZWN0U2VjdGlv bihRRGF0ZUVkaXQ6Ok1vbnRoU2VjdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisK KyAgICBjYXNlIFF0OjpLZXlfSDoKKyAgICAgICAgZGF0ZSA9IGQtPmZpeHVwRGF0ZSgpOworICAg ICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIHNldERhdGUoUURhdGUoZGF0 ZS55ZWFyKCksIGRhdGUubW9udGgoKSwgZGF0ZS5kYXlzSW5Nb250aCgpKSk7CisgICAgICAgICAg ICBkLT5zZWxlY3RTZWN0aW9uKFFEYXRlRWRpdDo6TW9udGhTZWN0aW9uKTsKKyAgICAgICAgfQor ICAgICAgICBicmVhazsKKworICAgIGNhc2UgUXQ6OktleV9ZOgorICAgICAgICBkYXRlID0gZC0+ Zml4dXBEYXRlKCk7CisgICAgICAgIGlmIChkYXRlLmlzVmFsaWQoKSkgeworICAgICAgICAgICAg c2V0RGF0ZShRRGF0ZShkYXRlLnllYXIoKSwgMSwgMSkpOworICAgICAgICAgICAgZC0+c2VsZWN0 U2VjdGlvbihRRGF0ZUVkaXQ6OlllYXJTZWN0aW9uKTsKKyAgICAgICAgfQorICAgICAgICBicmVh azsKKworICAgIGNhc2UgUXQ6OktleV9SOgorICAgICAgICBkYXRlID0gZC0+Zml4dXBEYXRlKCk7 CisgICAgICAgIGlmIChkYXRlLmlzVmFsaWQoKSkgeworICAgICAgICAgICAgc2V0RGF0ZShRRGF0 ZShkYXRlLnllYXIoKSwgMTIsIDMxKSk7CisgICAgICAgICAgICBkLT5zZWxlY3RTZWN0aW9uKFFE YXRlRWRpdDo6WWVhclNlY3Rpb24pOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCiAgICAg Y2FzZSBRdDo6S2V5X1Q6CiAgICAgICAgIGQtPnNldERhdGUoUURhdGU6OmN1cnJlbnREYXRlKCkp OwogICAgICAgICBRX0VNSVQgZGF0ZVZhbGlkaXR5Q2hhbmdlZChRRGF0ZTo6Y3VycmVudERhdGUo KSk7Cg==