From kde-kimageshop Fri Sep 11 20:01:58 2015 From: Dmitry Kazakov Date: Fri, 11 Sep 2015 20:01:58 +0000 To: kde-kimageshop Subject: [calligra/krita-animation-pentikainen] krita: Fix Layer Styles to support updates in LoD mode Message-Id: X-MARC-Message: https://marc.info/?l=kde-kimageshop&m=144200174605607 R2l0IGNvbW1pdCA3ZDRlOGFjMjdmZjBhZjA1MDE1ZDM1NzMzOGQwZDU0OWI1N2IxYmFjIGJ5IERt aXRyeSBLYXpha292LgpDb21taXR0ZWQgb24gMTEvMDkvMjAxNSBhdCAyMDowMS4KUHVzaGVkIGJ5 IGRrYXpha292IGludG8gYnJhbmNoICdrcml0YS1hbmltYXRpb24tcGVudGlrYWluZW4nLgoKRml4 IExheWVyIFN0eWxlcyB0byBzdXBwb3J0IHVwZGF0ZXMgaW4gTG9EIG1vZGUKCk5vZGUgeW91IGNh biBwYWludCB1bmRlciBhIExheWVyIFN0eWxlZCBsYXllciBhbWF6aW5nbHkgZmFzdCEKCkNDOmtp bWFnZXNob3BAa2RlLm9yZwoKTSAgKzIgICAgLTIgICAga3JpdGEvaW1hZ2UvbGF5ZXJzdHlsZXMv a2lzX2xheWVyX3N0eWxlX2ZpbHRlci5oCk0gICs2ICAgIC0wICAgIGtyaXRhL2ltYWdlL2xheWVy c3R5bGVzL2tpc19sYXllcl9zdHlsZV9maWx0ZXJfZW52aXJvbm1lbnQuY3BwCk0gICsxICAgIC0w ICAgIGtyaXRhL2ltYWdlL2xheWVyc3R5bGVzL2tpc19sYXllcl9zdHlsZV9maWx0ZXJfZW52aXJv bm1lbnQuaApNICArMiAgICAtMiAgICBrcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbGF5ZXJf c3R5bGVfZmlsdGVyX3Byb2plY3Rpb25fcGxhbmUuY3BwCk0gICsxOCAgIC03ICAgIGtyaXRhL2lt YWdlL2xheWVyc3R5bGVzL2tpc19sc19iZXZlbF9lbWJvc3NfZmlsdGVyLmNwcApNICArMiAgICAt MiAgICBrcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfYmV2ZWxfZW1ib3NzX2ZpbHRlci5o Ck0gICsxMCAgIC01ICAgIGtyaXRhL2ltYWdlL2xheWVyc3R5bGVzL2tpc19sc19kcm9wX3NoYWRv d19maWx0ZXIuY3BwCk0gICsyICAgIC0yICAgIGtyaXRhL2ltYWdlL2xheWVyc3R5bGVzL2tpc19s c19kcm9wX3NoYWRvd19maWx0ZXIuaApNICArNCAgICAtMiAgICBrcml0YS9pbWFnZS9sYXllcnN0 eWxlcy9raXNfbHNfb3ZlcmxheV9maWx0ZXIuY3BwCk0gICsyICAgIC0yICAgIGtyaXRhL2ltYWdl L2xheWVyc3R5bGVzL2tpc19sc19vdmVybGF5X2ZpbHRlci5oCk0gICs5ICAgIC02ICAgIGtyaXRh L2ltYWdlL2xheWVyc3R5bGVzL2tpc19sc19zYXRpbl9maWx0ZXIuY3BwCk0gICsyICAgIC0yICAg IGtyaXRhL2ltYWdlL2xheWVyc3R5bGVzL2tpc19sc19zYXRpbl9maWx0ZXIuaApNICArMTAgICAt NCAgICBrcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfc3Ryb2tlX2ZpbHRlci5jcHAKTSAg KzIgICAgLTIgICAga3JpdGEvaW1hZ2UvbGF5ZXJzdHlsZXMva2lzX2xzX3N0cm9rZV9maWx0ZXIu aApNICArMjcgICAtMCAgICBrcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfdXRpbHMuaApN ICArNSAgICAtMiAgICBrcml0YS9pbWFnZS90ZXN0cy9raXNfbGF5ZXJfc3R5bGVzX3Rlc3QuY3Bw Ck0gICsxNSAgIC0wICAgIGtyaXRhL2xpYnBzZC9wc2QuaAoKaHR0cDovL2NvbW1pdHMua2RlLm9y Zy9jYWxsaWdyYS83ZDRlOGFjMjdmZjBhZjA1MDE1ZDM1NzMzOGQwZDU0OWI1N2IxYmFjCgpkaWZm IC0tZ2l0IGEva3JpdGEvaW1hZ2UvbGF5ZXJzdHlsZXMva2lzX2xheWVyX3N0eWxlX2ZpbHRlci5o IGIva3JpdGEvaW1hZ2UvbGF5ZXJzdHlsZXMva2lzX2xheWVyX3N0eWxlX2ZpbHRlci5oCmluZGV4 IDE5NGIwYjEuLjZmMDkzYzUgMTAwNjQ0Ci0tLSBhL2tyaXRhL2ltYWdlL2xheWVyc3R5bGVzL2tp c19sYXllcl9zdHlsZV9maWx0ZXIuaAorKysgYi9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNf bGF5ZXJfc3R5bGVfZmlsdGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgICAqIFNv bWUgZmlsdGVycyBuZWVkIHBpeGVscyBvdXRzaWRlIHRoZSBjdXJyZW50IHByb2Nlc3NpbmcgcmVj dCB0byBjb21wdXRlIHRoZSBuZXcKICAgICAgKiB2YWx1ZSAoZm9yIGluc3RhbmNlLCBjb252b2x1 dGlvbiBmaWx0ZXJzKQogICAgICAqLwotICAgIHZpcnR1YWwgUVJlY3QgbmVlZGVkUmVjdChjb25z dCBRUmVjdCAmIHJlY3QsIEtpc1BTRExheWVyU3R5bGVTUCBzdHlsZSkgY29uc3QgPSAwOworICAg IHZpcnR1YWwgUVJlY3QgbmVlZGVkUmVjdChjb25zdCBRUmVjdCAmIHJlY3QsIEtpc1BTRExheWVy U3R5bGVTUCBzdHlsZSwgS2lzTGF5ZXJTdHlsZUZpbHRlckVudmlyb25tZW50ICplbnYpIGNvbnN0 ID0gMDsKIAogICAgIC8qKgogICAgICAqIFNpbWlsYXIgdG8gXHJlZiBuZWVkZWRSZWN0OiBzb21l IGZpbHRlcnMgd2lsbCBhbHRlciBhIGxvdCBvZiBwaXhlbHMgdGhhdCBhcmUKQEAgLTU4LDcgKzU4 LDcgQEAgcHVibGljOgogICAgICAqIGluIGEgZGV2aWNlLCB0aGUgYWN0dWFsIHJlY3RhbmdsZSB0 aGF0IHdpbGwgZmVlbCB0aGUgaW5mbHVlbmNlIG9mIHRoaXMgY2hhbmdlCiAgICAgICogbWlnaHQg YmUgYmlnZ2VyLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBkZXRlcm1pbmUgdGhhdCByZWN0LgogICAg ICAqLwotICAgIHZpcnR1YWwgUVJlY3QgY2hhbmdlZFJlY3QoY29uc3QgUVJlY3QgJiByZWN0LCBL aXNQU0RMYXllclN0eWxlU1Agc3R5bGUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFFSZWN0IGNo YW5nZWRSZWN0KGNvbnN0IFFSZWN0ICYgcmVjdCwgS2lzUFNETGF5ZXJTdHlsZVNQIHN0eWxlLCBL aXNMYXllclN0eWxlRmlsdGVyRW52aXJvbm1lbnQgKmVudikgY29uc3QgPSAwOwogCiBwcml2YXRl OgogICAgIHN0cnVjdCBQcml2YXRlOwpkaWZmIC0tZ2l0IGEva3JpdGEvaW1hZ2UvbGF5ZXJzdHls ZXMva2lzX2xheWVyX3N0eWxlX2ZpbHRlcl9lbnZpcm9ubWVudC5jcHAgYi9rcml0YS9pbWFnZS9s YXllcnN0eWxlcy9raXNfbGF5ZXJfc3R5bGVfZmlsdGVyX2Vudmlyb25tZW50LmNwcAppbmRleCAy OTdiOGRjLi4xY2M3ZGU1IDEwMDY0NAotLS0gYS9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNf bGF5ZXJfc3R5bGVfZmlsdGVyX2Vudmlyb25tZW50LmNwcAorKysgYi9rcml0YS9pbWFnZS9sYXll cnN0eWxlcy9raXNfbGF5ZXJfc3R5bGVfZmlsdGVyX2Vudmlyb25tZW50LmNwcApAQCAtOTgsNiAr OTgsMTIgQEAgUVJlY3QgS2lzTGF5ZXJTdHlsZUZpbHRlckVudmlyb25tZW50OjpkZWZhdWx0Qm91 bmRzKCkgY29uc3QKICAgICAgICAgbV9kLT5zb3VyY2VMYXllci0+b3JpZ2luYWwoKS0+ZGVmYXVs dEJvdW5kcygpLT5ib3VuZHMoKSA6IFFSZWN0KCk7CiB9CiAKK2ludCBLaXNMYXllclN0eWxlRmls dGVyRW52aXJvbm1lbnQ6OmN1cnJlbnRMZXZlbE9mRGV0YWlsKCkgY29uc3QKK3sKKyAgICByZXR1 cm4gbV9kLT5zb3VyY2VMYXllciA/CisgICAgICAgIG1fZC0+c291cmNlTGF5ZXItPm9yaWdpbmFs KCktPmRlZmF1bHRCb3VuZHMoKS0+Y3VycmVudExldmVsT2ZEZXRhaWwoKSA6IDA7Cit9CisKIFFQ YWludGVyUGF0aCBLaXNMYXllclN0eWxlRmlsdGVyRW52aXJvbm1lbnQ6OmxheWVyT3V0bGluZUNh Y2hlKCkgY29uc3QKIHsKICAgICAvLyBUT0RPOiBtYWtlIGl0IHJlYWxseSBjYWNoYWJsZSEKZGlm ZiAtLWdpdCBhL2tyaXRhL2ltYWdlL2xheWVyc3R5bGVzL2tpc19sYXllcl9zdHlsZV9maWx0ZXJf ZW52aXJvbm1lbnQuaCBiL2tyaXRhL2ltYWdlL2xheWVyc3R5bGVzL2tpc19sYXllcl9zdHlsZV9m aWx0ZXJfZW52aXJvbm1lbnQuaAppbmRleCBhMTkwYTlmLi45NDBmMWVjIDEwMDY0NAotLS0gYS9r cml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbGF5ZXJfc3R5bGVfZmlsdGVyX2Vudmlyb25tZW50 LmgKKysrIGIva3JpdGEvaW1hZ2UvbGF5ZXJzdHlsZXMva2lzX2xheWVyX3N0eWxlX2ZpbHRlcl9l bnZpcm9ubWVudC5oCkBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKIAogICAgIFFSZWN0IGxheWVy Qm91bmRzKCkgY29uc3Q7CiAgICAgUVJlY3QgZGVmYXVsdEJvdW5kcygpIGNvbnN0OworICAgIGlu dCBjdXJyZW50TGV2ZWxPZkRldGFpbCgpIGNvbnN0OwogCiAgICAgUVBhaW50ZXJQYXRoIGxheWVy T3V0bGluZUNhY2hlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL2tyaXRhL2ltYWdlL2xheWVyc3R5 bGVzL2tpc19sYXllcl9zdHlsZV9maWx0ZXJfcHJvamVjdGlvbl9wbGFuZS5jcHAgYi9rcml0YS9p bWFnZS9sYXllcnN0eWxlcy9raXNfbGF5ZXJfc3R5bGVfZmlsdGVyX3Byb2plY3Rpb25fcGxhbmUu Y3BwCmluZGV4IDRkZGI1MjAuLjQ3ZTA1NTMgMTAwNjQ0Ci0tLSBhL2tyaXRhL2ltYWdlL2xheWVy c3R5bGVzL2tpc19sYXllcl9zdHlsZV9maWx0ZXJfcHJvamVjdGlvbl9wbGFuZS5jcHAKKysrIGIv a3JpdGEvaW1hZ2UvbGF5ZXJzdHlsZXMva2lzX2xheWVyX3N0eWxlX2ZpbHRlcl9wcm9qZWN0aW9u X3BsYW5lLmNwcApAQCAtODksNyArODksNyBAQCBRUmVjdCBLaXNMYXllclN0eWxlRmlsdGVyUHJv amVjdGlvblBsYW5lOjpuZWVkUmVjdChjb25zdCBRUmVjdCAmcmVjdCwgS2lzTGF5ZXI6OgogICAg IH0KIAogICAgIEtJU19BU1NFUlRfUkVDT1ZFUl9OT09QKHBvcyA9PSBLaXNMYXllcjo6Tl9BQk9W RV9GSUxUSFkpOwotICAgIHJldHVybiBtX2QtPmZpbHRlci0+bmVlZGVkUmVjdChyZWN0LCBtX2Qt PnN0eWxlKTsKKyAgICByZXR1cm4gbV9kLT5maWx0ZXItPm5lZWRlZFJlY3QocmVjdCwgbV9kLT5z dHlsZSwgbV9kLT5lbnZpcm9ubWVudC5kYXRhKCkpOwogfQogCiBRUmVjdCBLaXNMYXllclN0eWxl RmlsdGVyUHJvamVjdGlvblBsYW5lOjpjaGFuZ2VSZWN0KGNvbnN0IFFSZWN0ICZyZWN0LCBLaXNM YXllcjo6UG9zaXRpb25Ub0ZpbHRoeSBwb3MpIGNvbnN0CkBAIC0xMDAsNyArMTAwLDcgQEAgUVJl Y3QgS2lzTGF5ZXJTdHlsZUZpbHRlclByb2plY3Rpb25QbGFuZTo6Y2hhbmdlUmVjdChjb25zdCBR UmVjdCAmcmVjdCwgS2lzTGF5ZXIKICAgICB9CiAKICAgICBLSVNfQVNTRVJUX1JFQ09WRVJfTk9P UChwb3MgPT0gS2lzTGF5ZXI6Ok5fQUJPVkVfRklMVEhZKTsKLSAgICByZXR1cm4gbV9kLT5maWx0 ZXItPmNoYW5nZWRSZWN0KHJlY3QsIG1fZC0+c3R5bGUpOworICAgIHJldHVybiBtX2QtPmZpbHRl ci0+Y2hhbmdlZFJlY3QocmVjdCwgbV9kLT5zdHlsZSwgbV9kLT5lbnZpcm9ubWVudC5kYXRhKCkp OwogfQogCiBRUmVjdCBLaXNMYXllclN0eWxlRmlsdGVyUHJvamVjdGlvblBsYW5lOjphY2Nlc3NS ZWN0KGNvbnN0IFFSZWN0ICZyZWN0LCBLaXNMYXllcjo6UG9zaXRpb25Ub0ZpbHRoeSBwb3MpIGNv bnN0CmRpZmYgLS1naXQgYS9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfYmV2ZWxfZW1i b3NzX2ZpbHRlci5jcHAgYi9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfYmV2ZWxfZW1i b3NzX2ZpbHRlci5jcHAKaW5kZXggMGIzNDIzOS4uZWFhMGQ3NiAxMDA2NDQKLS0tIGEva3JpdGEv aW1hZ2UvbGF5ZXJzdHlsZXMva2lzX2xzX2JldmVsX2VtYm9zc19maWx0ZXIuY3BwCisrKyBiL2ty aXRhL2ltYWdlL2xheWVyc3R5bGVzL2tpc19sc19iZXZlbF9lbWJvc3NfZmlsdGVyLmNwcApAQCAt NDYyLDE3ICs0NjIsMjggQEAgdm9pZCBLaXNMc0JldmVsRW1ib3NzRmlsdGVyOjpwcm9jZXNzRGly ZWN0bHkoS2lzUGFpbnREZXZpY2VTUCBzcmMsCiAgICAgY29uc3QgcHNkX2xheWVyX2VmZmVjdHNf YmV2ZWxfZW1ib3NzICpjb25maWcgPSBzdHlsZS0+YmV2ZWxBbmRFbWJvc3MoKTsKICAgICBpZiAo IWNvbmZpZy0+ZWZmZWN0RW5hYmxlZCgpKSByZXR1cm47CiAKLSAgICBhcHBseUJldmVsRW1ib3Nz KHNyYywgZHN0LCBhcHBseVJlY3QsIGNvbmZpZywgZW52KTsKKyAgICBLaXNMc1V0aWxzOjpMb2RX cmFwcGVyPHBzZF9sYXllcl9lZmZlY3RzX2JldmVsX2VtYm9zcz4gdyhlbnYtPmN1cnJlbnRMZXZl bE9mRGV0YWlsKCksIGNvbmZpZyk7CisgICAgYXBwbHlCZXZlbEVtYm9zcyhzcmMsIGRzdCwgYXBw bHlSZWN0LCB3LmNvbmZpZywgZW52KTsKIH0KIAotUVJlY3QgS2lzTHNCZXZlbEVtYm9zc0ZpbHRl cjo6bmVlZGVkUmVjdChjb25zdCBRUmVjdCAmcmVjdCwgS2lzUFNETGF5ZXJTdHlsZVNQIHN0eWxl KSBjb25zdAorUVJlY3QgS2lzTHNCZXZlbEVtYm9zc0ZpbHRlcjo6bmVlZGVkUmVjdChjb25zdCBR UmVjdCAmcmVjdCwgS2lzUFNETGF5ZXJTdHlsZVNQIHN0eWxlLCBLaXNMYXllclN0eWxlRmlsdGVy RW52aXJvbm1lbnQgKmVudikgY29uc3QKIHsKLSAgICBCZXZlbEVtYm9zc1JlY3RDYWxjdWxhdG9y IGQocmVjdCwgc3R5bGUtPmJldmVsQW5kRW1ib3NzKCkpOwotICAgIHJldHVybiBkLnRvdGFsTmVl ZFJlY3QocmVjdCwgc3R5bGUtPmJldmVsQW5kRW1ib3NzKCkpOworICAgIGNvbnN0IHBzZF9sYXll cl9lZmZlY3RzX2JldmVsX2VtYm9zcyAqY29uZmlnID0gc3R5bGUtPmJldmVsQW5kRW1ib3NzKCk7 CisgICAgaWYgKCFjb25maWctPmVmZmVjdEVuYWJsZWQoKSkgcmV0dXJuIHJlY3Q7CisKKyAgICBL aXNMc1V0aWxzOjpMb2RXcmFwcGVyPHBzZF9sYXllcl9lZmZlY3RzX2JldmVsX2VtYm9zcz4gdyhl bnYtPmN1cnJlbnRMZXZlbE9mRGV0YWlsKCksIGNvbmZpZyk7CisKKyAgICBCZXZlbEVtYm9zc1Jl Y3RDYWxjdWxhdG9yIGQocmVjdCwgdy5jb25maWcpOworICAgIHJldHVybiBkLnRvdGFsTmVlZFJl Y3QocmVjdCwgdy5jb25maWcpOwogfQogCi1RUmVjdCBLaXNMc0JldmVsRW1ib3NzRmlsdGVyOjpj aGFuZ2VkUmVjdChjb25zdCBRUmVjdCAmcmVjdCwgS2lzUFNETGF5ZXJTdHlsZVNQIHN0eWxlKSBj b25zdAorUVJlY3QgS2lzTHNCZXZlbEVtYm9zc0ZpbHRlcjo6Y2hhbmdlZFJlY3QoY29uc3QgUVJl Y3QgJnJlY3QsIEtpc1BTRExheWVyU3R5bGVTUCBzdHlsZSwgS2lzTGF5ZXJTdHlsZUZpbHRlckVu dmlyb25tZW50ICplbnYpIGNvbnN0CiB7Ci0gICAgQmV2ZWxFbWJvc3NSZWN0Q2FsY3VsYXRvciBk KHJlY3QsIHN0eWxlLT5iZXZlbEFuZEVtYm9zcygpKTsKLSAgICByZXR1cm4gZC50b3RhbENoYW5n ZVJlY3QocmVjdCwgc3R5bGUtPmJldmVsQW5kRW1ib3NzKCkpOworICAgIGNvbnN0IHBzZF9sYXll cl9lZmZlY3RzX2JldmVsX2VtYm9zcyAqY29uZmlnID0gc3R5bGUtPmJldmVsQW5kRW1ib3NzKCk7 CisgICAgaWYgKCFjb25maWctPmVmZmVjdEVuYWJsZWQoKSkgcmV0dXJuIHJlY3Q7CisKKyAgICBL aXNMc1V0aWxzOjpMb2RXcmFwcGVyPHBzZF9sYXllcl9lZmZlY3RzX2JldmVsX2VtYm9zcz4gdyhl bnYtPmN1cnJlbnRMZXZlbE9mRGV0YWlsKCksIGNvbmZpZyk7CisKKyAgICBCZXZlbEVtYm9zc1Jl Y3RDYWxjdWxhdG9yIGQocmVjdCwgdy5jb25maWcpOworICAgIHJldHVybiBkLnRvdGFsQ2hhbmdl UmVjdChyZWN0LCB3LmNvbmZpZyk7CiB9CmRpZmYgLS1naXQgYS9rcml0YS9pbWFnZS9sYXllcnN0 eWxlcy9raXNfbHNfYmV2ZWxfZW1ib3NzX2ZpbHRlci5oIGIva3JpdGEvaW1hZ2UvbGF5ZXJzdHls ZXMva2lzX2xzX2JldmVsX2VtYm9zc19maWx0ZXIuaAppbmRleCBmZmJmMzZlLi5lMjk0MDNiIDEw MDY0NAotLS0gYS9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfYmV2ZWxfZW1ib3NzX2Zp bHRlci5oCisrKyBiL2tyaXRhL2ltYWdlL2xheWVyc3R5bGVzL2tpc19sc19iZXZlbF9lbWJvc3Nf ZmlsdGVyLmgKQEAgLTM5LDggKzM5LDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAg ICAgIEtpc1BTRExheWVyU3R5bGVTUCBzdHlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBL aXNMYXllclN0eWxlRmlsdGVyRW52aXJvbm1lbnQgKmVudikgY29uc3Q7CiAKLSAgICBRUmVjdCBu ZWVkZWRSZWN0KGNvbnN0IFFSZWN0ICYgcmVjdCwgS2lzUFNETGF5ZXJTdHlsZVNQIHN0eWxlKSBj b25zdDsKLSAgICBRUmVjdCBjaGFuZ2VkUmVjdChjb25zdCBRUmVjdCAmIHJlY3QsIEtpc1BTRExh eWVyU3R5bGVTUCBzdHlsZSkgY29uc3Q7CisgICAgUVJlY3QgbmVlZGVkUmVjdChjb25zdCBRUmVj dCAmIHJlY3QsIEtpc1BTRExheWVyU3R5bGVTUCBzdHlsZSwgS2lzTGF5ZXJTdHlsZUZpbHRlckVu dmlyb25tZW50ICplbnYpIGNvbnN0OworICAgIFFSZWN0IGNoYW5nZWRSZWN0KGNvbnN0IFFSZWN0 ICYgcmVjdCwgS2lzUFNETGF5ZXJTdHlsZVNQIHN0eWxlLCBLaXNMYXllclN0eWxlRmlsdGVyRW52 aXJvbm1lbnQgKmVudikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBhcHBseUJldmVsRW1i b3NzKEtpc1BhaW50RGV2aWNlU1Agc3JjRGV2aWNlLApkaWZmIC0tZ2l0IGEva3JpdGEvaW1hZ2Uv bGF5ZXJzdHlsZXMva2lzX2xzX2Ryb3Bfc2hhZG93X2ZpbHRlci5jcHAgYi9rcml0YS9pbWFnZS9s YXllcnN0eWxlcy9raXNfbHNfZHJvcF9zaGFkb3dfZmlsdGVyLmNwcAppbmRleCA4MWFiZGNiLi5h ZDQzZjA1IDEwMDY0NAotLS0gYS9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfZHJvcF9z aGFkb3dfZmlsdGVyLmNwcAorKysgYi9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfZHJv cF9zaGFkb3dfZmlsdGVyLmNwcApAQCAtMzksNiArMzksOCBAQAogI2luY2x1ZGUgImtpc19wc2Rf bGF5ZXJfc3R5bGUuaCIKIAogI2luY2x1ZGUgImtpc19sc191dGlscy5oIgorI2luY2x1ZGUgImtp c19sYXllcl9zdHlsZV9maWx0ZXJfZW52aXJvbm1lbnQuaCIKKwogCiAKIEtpc0xzRHJvcFNoYWRv d0ZpbHRlcjo6S2lzTHNEcm9wU2hhZG93RmlsdGVyKE1vZGUgbW9kZSkKQEAgLTI1NCwyNCArMjU2 LDI3IEBAIHZvaWQgS2lzTHNEcm9wU2hhZG93RmlsdGVyOjpwcm9jZXNzRGlyZWN0bHkoS2lzUGFp bnREZXZpY2VTUCBzcmMsCiAgICAgY29uc3QgcHNkX2xheWVyX2VmZmVjdHNfc2hhZG93X2Jhc2Ug KnNoYWRvd1N0cnVjdCA9IGdldFNoYWRvd1N0cnVjdChzdHlsZSk7CiAgICAgaWYgKCFzaGFkb3dT dHJ1Y3QtPmVmZmVjdEVuYWJsZWQoKSkgcmV0dXJuOwogCi0gICAgYXBwbHlEcm9wU2hhZG93KHNy YywgZHN0LCBhcHBseVJlY3QsIHN0eWxlLT5jb250ZXh0KCksIHNoYWRvd1N0cnVjdCwgZW52KTsK KyAgICBLaXNMc1V0aWxzOjpMb2RXcmFwcGVyPHBzZF9sYXllcl9lZmZlY3RzX3NoYWRvd19iYXNl PiB3KGVudi0+Y3VycmVudExldmVsT2ZEZXRhaWwoKSwgc2hhZG93U3RydWN0KTsKKyAgICBhcHBs eURyb3BTaGFkb3coc3JjLCBkc3QsIGFwcGx5UmVjdCwgc3R5bGUtPmNvbnRleHQoKSwgdy5jb25m aWcsIGVudik7CiB9CiAKLVFSZWN0IEtpc0xzRHJvcFNoYWRvd0ZpbHRlcjo6bmVlZGVkUmVjdChj b25zdCBRUmVjdCAmcmVjdCwgS2lzUFNETGF5ZXJTdHlsZVNQIHN0eWxlKSBjb25zdAorUVJlY3Qg S2lzTHNEcm9wU2hhZG93RmlsdGVyOjpuZWVkZWRSZWN0KGNvbnN0IFFSZWN0ICZyZWN0LCBLaXNQ U0RMYXllclN0eWxlU1Agc3R5bGUsIEtpc0xheWVyU3R5bGVGaWx0ZXJFbnZpcm9ubWVudCAqZW52 KSBjb25zdAogewogICAgIGNvbnN0IHBzZF9sYXllcl9lZmZlY3RzX3NoYWRvd19iYXNlICpzaGFk b3dTdHJ1Y3QgPSBnZXRTaGFkb3dTdHJ1Y3Qoc3R5bGUpOwogICAgIGlmICghc2hhZG93U3RydWN0 LT5lZmZlY3RFbmFibGVkKCkpIHJldHVybiByZWN0OwogCi0gICAgU2hhZG93UmVjdHNEYXRhIGQo cmVjdCwgc3R5bGUtPmNvbnRleHQoKSwgc2hhZG93U3RydWN0LCBTaGFkb3dSZWN0c0RhdGE6Ok5F RURfUkVDVCk7CisgICAgS2lzTHNVdGlsczo6TG9kV3JhcHBlcjxwc2RfbGF5ZXJfZWZmZWN0c19z aGFkb3dfYmFzZT4gdyhlbnYtPmN1cnJlbnRMZXZlbE9mRGV0YWlsKCksIHNoYWRvd1N0cnVjdCk7 CisgICAgU2hhZG93UmVjdHNEYXRhIGQocmVjdCwgc3R5bGUtPmNvbnRleHQoKSwgdy5jb25maWcs IFNoYWRvd1JlY3RzRGF0YTo6TkVFRF9SRUNUKTsKICAgICByZXR1cm4gcmVjdCB8IGQuZmluYWxO ZWVkUmVjdCgpOwogfQogCi1RUmVjdCBLaXNMc0Ryb3BTaGFkb3dGaWx0ZXI6OmNoYW5nZWRSZWN0 KGNvbnN0IFFSZWN0ICZyZWN0LCBLaXNQU0RMYXllclN0eWxlU1Agc3R5bGUpIGNvbnN0CitRUmVj dCBLaXNMc0Ryb3BTaGFkb3dGaWx0ZXI6OmNoYW5nZWRSZWN0KGNvbnN0IFFSZWN0ICZyZWN0LCBL aXNQU0RMYXllclN0eWxlU1Agc3R5bGUsIEtpc0xheWVyU3R5bGVGaWx0ZXJFbnZpcm9ubWVudCAq ZW52KSBjb25zdAogewogICAgIGNvbnN0IHBzZF9sYXllcl9lZmZlY3RzX3NoYWRvd19iYXNlICpz aGFkb3dTdHJ1Y3QgPSBnZXRTaGFkb3dTdHJ1Y3Qoc3R5bGUpOwogICAgIGlmICghc2hhZG93U3Ry dWN0LT5lZmZlY3RFbmFibGVkKCkpIHJldHVybiByZWN0OwogCi0gICAgU2hhZG93UmVjdHNEYXRh IGQocmVjdCwgc3R5bGUtPmNvbnRleHQoKSwgc2hhZG93U3RydWN0LCBTaGFkb3dSZWN0c0RhdGE6 OkNIQU5HRV9SRUNUKTsKKyAgICBLaXNMc1V0aWxzOjpMb2RXcmFwcGVyPHBzZF9sYXllcl9lZmZl Y3RzX3NoYWRvd19iYXNlPiB3KGVudi0+Y3VycmVudExldmVsT2ZEZXRhaWwoKSwgc2hhZG93U3Ry dWN0KTsKKyAgICBTaGFkb3dSZWN0c0RhdGEgZChyZWN0LCBzdHlsZS0+Y29udGV4dCgpLCB3LmNv bmZpZywgU2hhZG93UmVjdHNEYXRhOjpDSEFOR0VfUkVDVCk7CiAgICAgcmV0dXJuIHN0eWxlLT5j b250ZXh0KCktPmtlZXBfb3JpZ2luYWwgPwogICAgICAgICBkLmZpbmFsQ2hhbmdlUmVjdCgpIDog cmVjdCB8IGQuZmluYWxDaGFuZ2VSZWN0KCk7CiB9CmRpZmYgLS1naXQgYS9rcml0YS9pbWFnZS9s YXllcnN0eWxlcy9raXNfbHNfZHJvcF9zaGFkb3dfZmlsdGVyLmggYi9rcml0YS9pbWFnZS9sYXll cnN0eWxlcy9raXNfbHNfZHJvcF9zaGFkb3dfZmlsdGVyLmgKaW5kZXggYjUxZjJkYi4uMDAwZjM5 OSAxMDA2NDQKLS0tIGEva3JpdGEvaW1hZ2UvbGF5ZXJzdHlsZXMva2lzX2xzX2Ryb3Bfc2hhZG93 X2ZpbHRlci5oCisrKyBiL2tyaXRhL2ltYWdlL2xheWVyc3R5bGVzL2tpc19sc19kcm9wX3NoYWRv d19maWx0ZXIuaApAQCAtNDYsOCArNDYsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAg ICAgICAgS2lzUFNETGF5ZXJTdHlsZVNQIHN0eWxlLAogICAgICAgICAgICAgICAgICAgICAgICAg IEtpc0xheWVyU3R5bGVGaWx0ZXJFbnZpcm9ubWVudCAqZW52KSBjb25zdDsKIAotICAgIFFSZWN0 IG5lZWRlZFJlY3QoY29uc3QgUVJlY3QgJiByZWN0LCBLaXNQU0RMYXllclN0eWxlU1Agc3R5bGUp IGNvbnN0OwotICAgIFFSZWN0IGNoYW5nZWRSZWN0KGNvbnN0IFFSZWN0ICYgcmVjdCwgS2lzUFNE TGF5ZXJTdHlsZVNQIHN0eWxlKSBjb25zdDsKKyAgICBRUmVjdCBuZWVkZWRSZWN0KGNvbnN0IFFS ZWN0ICYgcmVjdCwgS2lzUFNETGF5ZXJTdHlsZVNQIHN0eWxlLCBLaXNMYXllclN0eWxlRmlsdGVy RW52aXJvbm1lbnQgKmVudikgY29uc3Q7CisgICAgUVJlY3QgY2hhbmdlZFJlY3QoY29uc3QgUVJl Y3QgJiByZWN0LCBLaXNQU0RMYXllclN0eWxlU1Agc3R5bGUsIEtpc0xheWVyU3R5bGVGaWx0ZXJF bnZpcm9ubWVudCAqZW52KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBjb25zdCBwc2RfbGF5ZXJf ZWZmZWN0c19zaGFkb3dfYmFzZSogZ2V0U2hhZG93U3RydWN0KEtpc1BTRExheWVyU3R5bGVTUCBz dHlsZSkgY29uc3Q7CmRpZmYgLS1naXQgYS9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNf b3ZlcmxheV9maWx0ZXIuY3BwIGIva3JpdGEvaW1hZ2UvbGF5ZXJzdHlsZXMva2lzX2xzX292ZXJs YXlfZmlsdGVyLmNwcAppbmRleCBjNzJmZTllLi5mZTM0MDgwIDEwMDY0NAotLS0gYS9rcml0YS9p bWFnZS9sYXllcnN0eWxlcy9raXNfbHNfb3ZlcmxheV9maWx0ZXIuY3BwCisrKyBiL2tyaXRhL2lt YWdlL2xheWVyc3R5bGVzL2tpc19sc19vdmVybGF5X2ZpbHRlci5jcHAKQEAgLTEyNiwxNCArMTI2 LDE2IEBAIHZvaWQgS2lzTHNPdmVybGF5RmlsdGVyOjpwcm9jZXNzRGlyZWN0bHkoS2lzUGFpbnRE ZXZpY2VTUCBzcmMsCiAgICAgYXBwbHlPdmVybGF5KHNyYywgZHN0LCBhcHBseVJlY3QsIGNvbmZp ZywgZW52KTsKIH0KIAotUVJlY3QgS2lzTHNPdmVybGF5RmlsdGVyOjpuZWVkZWRSZWN0KGNvbnN0 IFFSZWN0ICZyZWN0LCBLaXNQU0RMYXllclN0eWxlU1Agc3R5bGUpIGNvbnN0CitRUmVjdCBLaXNM c092ZXJsYXlGaWx0ZXI6Om5lZWRlZFJlY3QoY29uc3QgUVJlY3QgJnJlY3QsIEtpc1BTRExheWVy U3R5bGVTUCBzdHlsZSwgS2lzTGF5ZXJTdHlsZUZpbHRlckVudmlyb25tZW50ICplbnYpIGNvbnN0 CiB7CiAgICAgUV9VTlVTRUQoc3R5bGUpOworICAgIFFfVU5VU0VEKGVudik7CiAgICAgcmV0dXJu IHJlY3Q7CiB9CiAKLVFSZWN0IEtpc0xzT3ZlcmxheUZpbHRlcjo6Y2hhbmdlZFJlY3QoY29uc3Qg UVJlY3QgJnJlY3QsIEtpc1BTRExheWVyU3R5bGVTUCBzdHlsZSkgY29uc3QKK1FSZWN0IEtpc0xz T3ZlcmxheUZpbHRlcjo6Y2hhbmdlZFJlY3QoY29uc3QgUVJlY3QgJnJlY3QsIEtpc1BTRExheWVy U3R5bGVTUCBzdHlsZSwgS2lzTGF5ZXJTdHlsZUZpbHRlckVudmlyb25tZW50ICplbnYpIGNvbnN0 CiB7CiAgICAgUV9VTlVTRUQoc3R5bGUpOworICAgIFFfVU5VU0VEKGVudik7CiAgICAgcmV0dXJu IHJlY3Q7CiB9CmRpZmYgLS1naXQgYS9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfb3Zl cmxheV9maWx0ZXIuaCBiL2tyaXRhL2ltYWdlL2xheWVyc3R5bGVzL2tpc19sc19vdmVybGF5X2Zp bHRlci5oCmluZGV4IDgxZWI1MmMuLmVkNGYxN2YgMTAwNjQ0Ci0tLSBhL2tyaXRhL2ltYWdlL2xh eWVyc3R5bGVzL2tpc19sc19vdmVybGF5X2ZpbHRlci5oCisrKyBiL2tyaXRhL2ltYWdlL2xheWVy c3R5bGVzL2tpc19sc19vdmVybGF5X2ZpbHRlci5oCkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoK ICAgICAgICAgICAgICAgICAgICAgICAgICBLaXNQU0RMYXllclN0eWxlU1Agc3R5bGUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgS2lzTGF5ZXJTdHlsZUZpbHRlckVudmlyb25tZW50ICplbnYp IGNvbnN0OwogCi0gICAgUVJlY3QgbmVlZGVkUmVjdChjb25zdCBRUmVjdCAmIHJlY3QsIEtpc1BT RExheWVyU3R5bGVTUCBzdHlsZSkgY29uc3Q7Ci0gICAgUVJlY3QgY2hhbmdlZFJlY3QoY29uc3Qg UVJlY3QgJiByZWN0LCBLaXNQU0RMYXllclN0eWxlU1Agc3R5bGUpIGNvbnN0OworICAgIFFSZWN0 IG5lZWRlZFJlY3QoY29uc3QgUVJlY3QgJiByZWN0LCBLaXNQU0RMYXllclN0eWxlU1Agc3R5bGUs IEtpc0xheWVyU3R5bGVGaWx0ZXJFbnZpcm9ubWVudCAqZW52KSBjb25zdDsKKyAgICBRUmVjdCBj aGFuZ2VkUmVjdChjb25zdCBRUmVjdCAmIHJlY3QsIEtpc1BTRExheWVyU3R5bGVTUCBzdHlsZSwg S2lzTGF5ZXJTdHlsZUZpbHRlckVudmlyb25tZW50ICplbnYpIGNvbnN0OwogCiBwcml2YXRlOgog ICAgIGNvbnN0IHBzZF9sYXllcl9lZmZlY3RzX292ZXJsYXlfYmFzZSogZ2V0T3ZlcmxheVN0cnVj dChLaXNQU0RMYXllclN0eWxlU1Agc3R5bGUpIGNvbnN0OwpkaWZmIC0tZ2l0IGEva3JpdGEvaW1h Z2UvbGF5ZXJzdHlsZXMva2lzX2xzX3NhdGluX2ZpbHRlci5jcHAgYi9rcml0YS9pbWFnZS9sYXll cnN0eWxlcy9raXNfbHNfc2F0aW5fZmlsdGVyLmNwcAppbmRleCA3ZmMxMTM5Li44ZjY3Njk0IDEw MDY0NAotLS0gYS9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfc2F0aW5fZmlsdGVyLmNw cAorKysgYi9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfc2F0aW5fZmlsdGVyLmNwcApA QCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgImtpc19wc2RfbGF5ZXJfc3R5bGUuaCIKIAogI2lu Y2x1ZGUgImtpc19sc191dGlscy5oIgotCisjaW5jbHVkZSAia2lzX2xheWVyX3N0eWxlX2ZpbHRl cl9lbnZpcm9ubWVudC5oIgogCiAKIEtpc0xzU2F0aW5GaWx0ZXI6Oktpc0xzU2F0aW5GaWx0ZXIo KQpAQCAtMjA0LDI0ICsyMDQsMjcgQEAgdm9pZCBLaXNMc1NhdGluRmlsdGVyOjpwcm9jZXNzRGly ZWN0bHkoS2lzUGFpbnREZXZpY2VTUCBzcmMsCiAgICAgY29uc3QgcHNkX2xheWVyX2VmZmVjdHNf c2F0aW4gKmNvbmZpZyA9IHN0eWxlLT5zYXRpbigpOwogICAgIGlmICghY29uZmlnLT5lZmZlY3RF bmFibGVkKCkpIHJldHVybjsKIAotICAgIGFwcGx5U2F0aW4oc3JjLCBkc3QsIGFwcGx5UmVjdCwg c3R5bGUtPmNvbnRleHQoKSwgY29uZmlnLCBlbnYpOworICAgIEtpc0xzVXRpbHM6OkxvZFdyYXBw ZXI8cHNkX2xheWVyX2VmZmVjdHNfc2F0aW4+IHcoZW52LT5jdXJyZW50TGV2ZWxPZkRldGFpbCgp LCBjb25maWcpOworICAgIGFwcGx5U2F0aW4oc3JjLCBkc3QsIGFwcGx5UmVjdCwgc3R5bGUtPmNv bnRleHQoKSwgdy5jb25maWcsIGVudik7CiB9CiAKLVFSZWN0IEtpc0xzU2F0aW5GaWx0ZXI6Om5l ZWRlZFJlY3QoY29uc3QgUVJlY3QgJnJlY3QsIEtpc1BTRExheWVyU3R5bGVTUCBzdHlsZSkgY29u c3QKK1FSZWN0IEtpc0xzU2F0aW5GaWx0ZXI6Om5lZWRlZFJlY3QoY29uc3QgUVJlY3QgJnJlY3Qs IEtpc1BTRExheWVyU3R5bGVTUCBzdHlsZSwgS2lzTGF5ZXJTdHlsZUZpbHRlckVudmlyb25tZW50 ICplbnYpIGNvbnN0CiB7CiAgICAgY29uc3QgcHNkX2xheWVyX2VmZmVjdHNfc2F0aW4gKmNvbmZp ZyA9IHN0eWxlLT5zYXRpbigpOwogICAgIGlmICghY29uZmlnLT5lZmZlY3RFbmFibGVkKCkpIHJl dHVybiByZWN0OwogCi0gICAgU2F0aW5SZWN0c0RhdGEgZChyZWN0LCBzdHlsZS0+Y29udGV4dCgp LCBjb25maWcsIFNhdGluUmVjdHNEYXRhOjpORUVEX1JFQ1QpOworICAgIEtpc0xzVXRpbHM6Okxv ZFdyYXBwZXI8cHNkX2xheWVyX2VmZmVjdHNfc2F0aW4+IHcoZW52LT5jdXJyZW50TGV2ZWxPZkRl dGFpbCgpLCBjb25maWcpOworICAgIFNhdGluUmVjdHNEYXRhIGQocmVjdCwgc3R5bGUtPmNvbnRl eHQoKSwgdy5jb25maWcsIFNhdGluUmVjdHNEYXRhOjpORUVEX1JFQ1QpOwogICAgIHJldHVybiBy ZWN0IHwgZC5maW5hbE5lZWRSZWN0KCk7CiB9CiAKLVFSZWN0IEtpc0xzU2F0aW5GaWx0ZXI6OmNo YW5nZWRSZWN0KGNvbnN0IFFSZWN0ICZyZWN0LCBLaXNQU0RMYXllclN0eWxlU1Agc3R5bGUpIGNv bnN0CitRUmVjdCBLaXNMc1NhdGluRmlsdGVyOjpjaGFuZ2VkUmVjdChjb25zdCBRUmVjdCAmcmVj dCwgS2lzUFNETGF5ZXJTdHlsZVNQIHN0eWxlLCBLaXNMYXllclN0eWxlRmlsdGVyRW52aXJvbm1l bnQgKmVudikgY29uc3QKIHsKICAgICBjb25zdCBwc2RfbGF5ZXJfZWZmZWN0c19zYXRpbiAqY29u ZmlnID0gc3R5bGUtPnNhdGluKCk7CiAgICAgaWYgKCFjb25maWctPmVmZmVjdEVuYWJsZWQoKSkg cmV0dXJuIHJlY3Q7CiAKLSAgICBTYXRpblJlY3RzRGF0YSBkKHJlY3QsIHN0eWxlLT5jb250ZXh0 KCksIGNvbmZpZywgU2F0aW5SZWN0c0RhdGE6OkNIQU5HRV9SRUNUKTsKKyAgICBLaXNMc1V0aWxz OjpMb2RXcmFwcGVyPHBzZF9sYXllcl9lZmZlY3RzX3NhdGluPiB3KGVudi0+Y3VycmVudExldmVs T2ZEZXRhaWwoKSwgY29uZmlnKTsKKyAgICBTYXRpblJlY3RzRGF0YSBkKHJlY3QsIHN0eWxlLT5j b250ZXh0KCksIHcuY29uZmlnLCBTYXRpblJlY3RzRGF0YTo6Q0hBTkdFX1JFQ1QpOwogICAgIHJl dHVybiBzdHlsZS0+Y29udGV4dCgpLT5rZWVwX29yaWdpbmFsID8KICAgICAgICAgZC5maW5hbENo YW5nZVJlY3QoKSA6IHJlY3QgfCBkLmZpbmFsQ2hhbmdlUmVjdCgpOwogfQpkaWZmIC0tZ2l0IGEv a3JpdGEvaW1hZ2UvbGF5ZXJzdHlsZXMva2lzX2xzX3NhdGluX2ZpbHRlci5oIGIva3JpdGEvaW1h Z2UvbGF5ZXJzdHlsZXMva2lzX2xzX3NhdGluX2ZpbHRlci5oCmluZGV4IGE0ZWNlNjEuLmYwZDMw YzUgMTAwNjQ0Ci0tLSBhL2tyaXRhL2ltYWdlL2xheWVyc3R5bGVzL2tpc19sc19zYXRpbl9maWx0 ZXIuaAorKysgYi9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfc2F0aW5fZmlsdGVyLmgK QEAgLTM4LDggKzM4LDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgIEtpc1BT RExheWVyU3R5bGVTUCBzdHlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBLaXNMYXllclN0 eWxlRmlsdGVyRW52aXJvbm1lbnQgKmVudikgY29uc3Q7CiAKLSAgICBRUmVjdCBuZWVkZWRSZWN0 KGNvbnN0IFFSZWN0ICYgcmVjdCwgS2lzUFNETGF5ZXJTdHlsZVNQIHN0eWxlKSBjb25zdDsKLSAg ICBRUmVjdCBjaGFuZ2VkUmVjdChjb25zdCBRUmVjdCAmIHJlY3QsIEtpc1BTRExheWVyU3R5bGVT UCBzdHlsZSkgY29uc3Q7CisgICAgUVJlY3QgbmVlZGVkUmVjdChjb25zdCBRUmVjdCAmIHJlY3Qs IEtpc1BTRExheWVyU3R5bGVTUCBzdHlsZSwgS2lzTGF5ZXJTdHlsZUZpbHRlckVudmlyb25tZW50 ICplbnYpIGNvbnN0OworICAgIFFSZWN0IGNoYW5nZWRSZWN0KGNvbnN0IFFSZWN0ICYgcmVjdCwg S2lzUFNETGF5ZXJTdHlsZVNQIHN0eWxlLCBLaXNMYXllclN0eWxlRmlsdGVyRW52aXJvbm1lbnQg KmVudikgY29uc3Q7CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2tyaXRhL2ltYWdlL2xheWVy c3R5bGVzL2tpc19sc19zdHJva2VfZmlsdGVyLmNwcCBiL2tyaXRhL2ltYWdlL2xheWVyc3R5bGVz L2tpc19sc19zdHJva2VfZmlsdGVyLmNwcAppbmRleCAxY2I5NTIyLi5mODlkYTBjIDEwMDY0NAot LS0gYS9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfc3Ryb2tlX2ZpbHRlci5jcHAKKysr IGIva3JpdGEvaW1hZ2UvbGF5ZXJzdHlsZXMva2lzX2xzX3N0cm9rZV9maWx0ZXIuY3BwCkBAIC0x MzIsMTcgKzEzMiwyMyBAQCB2b2lkIEtpc0xzU3Ryb2tlRmlsdGVyOjpwcm9jZXNzRGlyZWN0bHko S2lzUGFpbnREZXZpY2VTUCBzcmMsCiAgICAgY29uc3QgcHNkX2xheWVyX2VmZmVjdHNfc3Ryb2tl ICpjb25maWcgPSBzdHlsZS0+c3Ryb2tlKCk7CiAgICAgaWYgKCFjb25maWctPmVmZmVjdEVuYWJs ZWQoKSkgcmV0dXJuOwogCi0gICAgYXBwbHlTdHJva2Uoc3JjLCBkc3QsIGFwcGx5UmVjdCwgY29u ZmlnLCBlbnYpOworICAgIEtpc0xzVXRpbHM6OkxvZFdyYXBwZXI8cHNkX2xheWVyX2VmZmVjdHNf c3Ryb2tlPiB3KGVudi0+Y3VycmVudExldmVsT2ZEZXRhaWwoKSwgY29uZmlnKTsKKyAgICBhcHBs eVN0cm9rZShzcmMsIGRzdCwgYXBwbHlSZWN0LCB3LmNvbmZpZywgZW52KTsKIH0KIAotUVJlY3Qg S2lzTHNTdHJva2VGaWx0ZXI6Om5lZWRlZFJlY3QoY29uc3QgUVJlY3QgJnJlY3QsIEtpc1BTRExh eWVyU3R5bGVTUCBzdHlsZSkgY29uc3QKK1FSZWN0IEtpc0xzU3Ryb2tlRmlsdGVyOjpuZWVkZWRS ZWN0KGNvbnN0IFFSZWN0ICZyZWN0LCBLaXNQU0RMYXllclN0eWxlU1Agc3R5bGUsIEtpc0xheWVy U3R5bGVGaWx0ZXJFbnZpcm9ubWVudCAqZW52KSBjb25zdAogewogICAgIFFfVU5VU0VEKHN0eWxl KTsKICAgICByZXR1cm4gcmVjdDsKIH0KIAotUVJlY3QgS2lzTHNTdHJva2VGaWx0ZXI6OmNoYW5n ZWRSZWN0KGNvbnN0IFFSZWN0ICZyZWN0LCBLaXNQU0RMYXllclN0eWxlU1Agc3R5bGUpIGNvbnN0 CitRUmVjdCBLaXNMc1N0cm9rZUZpbHRlcjo6Y2hhbmdlZFJlY3QoY29uc3QgUVJlY3QgJnJlY3Qs IEtpc1BTRExheWVyU3R5bGVTUCBzdHlsZSwgS2lzTGF5ZXJTdHlsZUZpbHRlckVudmlyb25tZW50 ICplbnYpIGNvbnN0CiB7Ci0gICAgY29uc3QgaW50IGJvcmRlclNpemUgPSBzdHlsZS0+c3Ryb2tl KCktPnNpemUoKSArIDE7CisgICAgY29uc3QgcHNkX2xheWVyX2VmZmVjdHNfc3Ryb2tlICpjb25m aWcgPSBzdHlsZS0+c3Ryb2tlKCk7CisgICAgaWYgKCFjb25maWctPmVmZmVjdEVuYWJsZWQoKSkg cmV0dXJuIHJlY3Q7CisKKyAgICBLaXNMc1V0aWxzOjpMb2RXcmFwcGVyPHBzZF9sYXllcl9lZmZl Y3RzX3N0cm9rZT4gdyhlbnYtPmN1cnJlbnRMZXZlbE9mRGV0YWlsKCksIGNvbmZpZyk7CisKKyAg ICBjb25zdCBpbnQgYm9yZGVyU2l6ZSA9IHcuY29uZmlnLT5zaXplKCkgKyAxOwogICAgIHJldHVy biBraXNHcm93UmVjdChyZWN0LCBib3JkZXJTaXplKTsKIH0KZGlmZiAtLWdpdCBhL2tyaXRhL2lt YWdlL2xheWVyc3R5bGVzL2tpc19sc19zdHJva2VfZmlsdGVyLmggYi9rcml0YS9pbWFnZS9sYXll cnN0eWxlcy9raXNfbHNfc3Ryb2tlX2ZpbHRlci5oCmluZGV4IGQ4ZDIyMjguLjY3NDc1MTIgMTAw NjQ0Ci0tLSBhL2tyaXRhL2ltYWdlL2xheWVyc3R5bGVzL2tpc19sc19zdHJva2VfZmlsdGVyLmgK KysrIGIva3JpdGEvaW1hZ2UvbGF5ZXJzdHlsZXMva2lzX2xzX3N0cm9rZV9maWx0ZXIuaApAQCAt MzksOCArMzksOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgS2lzUFNETGF5 ZXJTdHlsZVNQIHN0eWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgIEtpc0xheWVyU3R5bGVG aWx0ZXJFbnZpcm9ubWVudCAqZW52KSBjb25zdDsKIAotICAgIFFSZWN0IG5lZWRlZFJlY3QoY29u c3QgUVJlY3QgJiByZWN0LCBLaXNQU0RMYXllclN0eWxlU1Agc3R5bGUpIGNvbnN0OwotICAgIFFS ZWN0IGNoYW5nZWRSZWN0KGNvbnN0IFFSZWN0ICYgcmVjdCwgS2lzUFNETGF5ZXJTdHlsZVNQIHN0 eWxlKSBjb25zdDsKKyAgICBRUmVjdCBuZWVkZWRSZWN0KGNvbnN0IFFSZWN0ICYgcmVjdCwgS2lz UFNETGF5ZXJTdHlsZVNQIHN0eWxlLCBLaXNMYXllclN0eWxlRmlsdGVyRW52aXJvbm1lbnQgKmVu dikgY29uc3Q7CisgICAgUVJlY3QgY2hhbmdlZFJlY3QoY29uc3QgUVJlY3QgJiByZWN0LCBLaXNQ U0RMYXllclN0eWxlU1Agc3R5bGUsIEtpc0xheWVyU3R5bGVGaWx0ZXJFbnZpcm9ubWVudCAqZW52 KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2b2lkIGFwcGx5U3Ryb2tlKEtpc1BhaW50RGV2aWNl U1Agc3JjRGV2aWNlLApkaWZmIC0tZ2l0IGEva3JpdGEvaW1hZ2UvbGF5ZXJzdHlsZXMva2lzX2xz X3V0aWxzLmggYi9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfdXRpbHMuaAppbmRleCA3 ZDY2MzJiLi41ZWYzNDI3IDEwMDY0NAotLS0gYS9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNf bHNfdXRpbHMuaAorKysgYi9rcml0YS9pbWFnZS9sYXllcnN0eWxlcy9raXNfbHNfdXRpbHMuaApA QCAtMjEsNiArMjEsOCBAQAogCiAjaW5jbHVkZSAia2lzX3R5cGVzLmgiCiAKKyNpbmNsdWRlICJr aXNfbG9kX3RyYW5zZm9ybS5oIgorCiAKIHN0cnVjdCBwc2RfbGF5ZXJfZWZmZWN0c19jb250ZXh0 OwogY2xhc3MgcHNkX2xheWVyX2VmZmVjdHNfc2hhZG93X2Jhc2U7CkBAIC05MCw2ICs5MiwzMSBA QCBuYW1lc3BhY2UgS2lzTHNVdGlscwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBwc2RfbGF5ZXJfZWZmZWN0c19zaGFkb3dfYmFzZSAqY29uZmlnLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBLaXNMYXllclN0eWxlRmlsdGVyRW52aXJvbm1lbnQgKmVudik7 CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBDb25maWdTdHJ1Y3Q+CisgICAgc3RydWN0IExvZFdyYXBw ZXIKKyAgICB7CisgICAgICAgIExvZFdyYXBwZXIoaW50IGxvZCwKKyAgICAgICAgICAgICAgICAg ICBjb25zdCBDb25maWdTdHJ1Y3QgKnNyY1N0cnVjdCkKKworICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgIGlmIChsb2QgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2UucmVz ZXQobmV3IENvbmZpZ1N0cnVjdCgqc3JjU3RydWN0KSk7CisKKyAgICAgICAgICAgICAgICAgICAg Y29uc3QgcXJlYWwgbG9kU2NhbGUgPSBLaXNMb2RUcmFuc2Zvcm06OmxvZFRvU2NhbGUobG9kKTsK KyAgICAgICAgICAgICAgICAgICAgc3RvcmFnZS0+c2NhbGVMaW5lYXJTaXplcyhsb2RTY2FsZSk7 CisKKyAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gc3RvcmFnZS5kYXRhKCk7CisgICAgICAg ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gc3JjU3RydWN0 OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICBjb25zdCBDb25m aWdTdHJ1Y3QgKmNvbmZpZzsKKworICAgIHByaXZhdGU6CisgICAgICAgIFFTY29wZWRQb2ludGVy PENvbmZpZ1N0cnVjdD4gc3RvcmFnZTsKKyAgICB9OworCiB9CiAKICNlbmRpZiAvKiBfX0tJU19M U19VVElMU19IICovCmRpZmYgLS1naXQgYS9rcml0YS9pbWFnZS90ZXN0cy9raXNfbGF5ZXJfc3R5 bGVzX3Rlc3QuY3BwIGIva3JpdGEvaW1hZ2UvdGVzdHMva2lzX2xheWVyX3N0eWxlc190ZXN0LmNw cAppbmRleCA0MzI4ZDc0Li40Njk3NzRiIDEwMDY0NAotLS0gYS9rcml0YS9pbWFnZS90ZXN0cy9r aXNfbGF5ZXJfc3R5bGVzX3Rlc3QuY3BwCisrKyBiL2tyaXRhL2ltYWdlL3Rlc3RzL2tpc19sYXll cl9zdHlsZXNfdGVzdC5jcHAKQEAgLTIyOSw4ICsyMjksMTEgQEAgdm9pZCB0ZXN0RHJvcFNoYWRv d05lZWRDaGFuZ2VSZWN0cyhpbnQgZGlzdGFuY2UsCiAgICAgYy53cml0ZVByb3BlcnRpZXMoc3R5 bGUpOwogCiAKLSAgICBRQ09NUEFSRShsc0ZpbHRlci5uZWVkZWRSZWN0KGFwcGx5UmVjdCwgc3R5 bGUpLCBuZWVkUmVjdCk7Ci0gICAgUUNPTVBBUkUobHNGaWx0ZXIuY2hhbmdlZFJlY3QoYXBwbHlS ZWN0LCBzdHlsZSksIGNoYW5nZVJlY3QpOworICAgIFRlc3RVdGlsOjpNYXNrUGFyZW50IHBhcmVu dDsKKyAgICBLaXNMYXllclN0eWxlRmlsdGVyRW52aXJvbm1lbnQgZW52KHBhcmVudC5sYXllci5k YXRhKCkpOworCisgICAgUUNPTVBBUkUobHNGaWx0ZXIubmVlZGVkUmVjdChhcHBseVJlY3QsIHN0 eWxlLCAmZW52KSwgbmVlZFJlY3QpOworICAgIFFDT01QQVJFKGxzRmlsdGVyLmNoYW5nZWRSZWN0 KGFwcGx5UmVjdCwgc3R5bGUsICZlbnYpLCBjaGFuZ2VSZWN0KTsKIH0KIAogdm9pZCBLaXNMYXll clN0eWxlc1Rlc3Q6OnRlc3RMYXllclN0eWxlc1JlY3RzKCkKZGlmZiAtLWdpdCBhL2tyaXRhL2xp YnBzZC9wc2QuaCBiL2tyaXRhL2xpYnBzZC9wc2QuaAppbmRleCA1ODQ3MTdiLi5mNGYxYzNlIDEw MDY0NAotLS0gYS9rcml0YS9saWJwc2QvcHNkLmgKKysrIGIva3JpdGEvbGlicHNkL3BzZC5oCkBA IC00MzQsNiArNDM0LDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9ncmFkaWVudCA9IHZhbHVlOwog ICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCBzY2FsZUxpbmVhclNpemVzKHFyZWFsIHNjYWxlKSB7 CisgICAgICAgIG1fZGlzdGFuY2UgKj0gc2NhbGU7CisgICAgICAgIG1fc2l6ZSAqPSBzY2FsZTsK KyAgICB9CisKIHByaXZhdGU6CiAgICAgLy8gaW50ZXJuYWwKICAgICBib29sIG1faW52ZXJ0c1Nl bGVjdGlvbjsKQEAgLTg0OSw2ICs4NTQsMTEgQEAgc3RydWN0IHBzZF9sYXllcl9lZmZlY3RzX2Jl dmVsX2VtYm9zcyA6IHB1YmxpYyBwc2RfbGF5ZXJfZWZmZWN0c19zaGFkb3dfYmFzZQogICAgICAg ICBtX3RleHR1cmVWZXJ0aWNhbFBoYXNlID0gdmFsdWU7CiAgICAgfQogCisgICAgdmlydHVhbCB2 b2lkIHNjYWxlTGluZWFyU2l6ZXMocXJlYWwgc2NhbGUpIHsKKyAgICAgICAgcHNkX2xheWVyX2Vm ZmVjdHNfc2hhZG93X2Jhc2U6OnNjYWxlTGluZWFyU2l6ZXMoc2NhbGUpOworICAgICAgICBtX3Nv ZnRlbiAqPSBzY2FsZTsKKyAgICAgICAgbV90ZXh0dXJlU2NhbGUgKj0gc2NhbGU7CisgICAgfQog CiBwcml2YXRlOgogICAgIHBzZF9iZXZlbF9zdHlsZSBtX3N0eWxlOwpAQCAtOTg0LDYgKzk5NCwx MSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBRUG9pbnRGKG1faG9yaXpvbnRhbFBoYXNlLCBt X3ZlcnRpY2FsUGhhc2UpOwogICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCBzY2FsZUxpbmVhclNp emVzKHFyZWFsIHNjYWxlKSB7CisgICAgICAgIHBzZF9sYXllcl9lZmZlY3RzX3NoYWRvd19iYXNl OjpzY2FsZUxpbmVhclNpemVzKHNjYWxlKTsKKyAgICAgICAgbV9zY2FsZSAqPSBzY2FsZTsKKyAg ICB9CisKIHByaXZhdGU6CiAKICAgICAvLyBHcmFkaWVudCtQYXR0ZXJuCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCktyaXRhIG1haWxpbmcgbGlzdApraW1h Z2VzaG9wQGtkZS5vcmcKaHR0cHM6Ly9tYWlsLmtkZS5vcmcvbWFpbG1hbi9saXN0aW5mby9raW1h Z2VzaG9wCg==