R2l0IGNvbW1pdCAwOGZkM2FhOGU1NTQ1NTc3MjhmNjBmODU3MWU1MTM2NDA3MGMwOWU4IGJ5IERt aXRyeSBLYXpha292LgpDb21taXR0ZWQgb24gMjUvMDMvMjAxNiBhdCAxMjowOC4KUHVzaGVkIGJ5 IGRrYXpha292IGludG8gYnJhbmNoICdtYXN0ZXInLgoKRml4ICJvcGVuR0wgbGFnIGF0IHpvb20g MjAwMCArIHJvdGF0aW9uIgoKVGhlIHByb2JsZW0gd2FzIG5vdCByZWxhdGVkIHRvIHRoZSBvcGVu R0wgYWN0dWFseS4gSXQgd2FzIGNhdXNlZApieSB0aGUgaW1wbGVtZW50YXRpb24gb2YgUVBhaW50 ZXI6OmNsaXBSZWdpb24oKSB3aGljaCBnZW5lcmF0ZWQKMjBrKyByZWN0YW5nbGVzIGZyb20gYSBy b3RhdGVkIHJlY3Qgd2hlbiByb3RhdGlvbiBhbmdsZSB3YXMgbmVhciB0bwphIDAgb3IgOTBkZWcu CgpXQVJOSU5HIGZvciB0aGUgZnV0dXJlOgpOZXZlciB1c2UgUVBhaW50ZXI6OmNsaXBSZWdpb24o KS4gVXNlIEtpc1BhaW50aW5nVXRpbHM6OnNhZmVDbGlwUmVnaW9uKCkKaW5zdGVhZC4gSXQgd29y a2Fyb3VuZHMgdGhlIGlzc3VlIHJldHVybmluZyBhIGJpdCBiaWdnZXIgcmVjdC4KCkZpeGVzIFQx NDQ2CkJVRzozNTUxMDQKQ0M6a2ltYWdlc2hvcEBrZGUub3JnCgpNICArMyAgICAtMSAgICBsaWJz L2ZsYWtlL0tvU2hhcGVDb250YWluZXIuY3BwCk0gICszICAgIC0xICAgIGxpYnMvZmxha2UvS29T aGFwZU1hbmFnZXIuY3BwCk0gICswICAgIC0zICAgIGxpYnMvZmxha2UvdG9vbHMvS29DcmVhdGVT aGFwZVN0cmF0ZWd5LmNwcApNICArMCAgICAtMiAgICBsaWJzL2ZsYWtlL3Rvb2xzL0tvU2hhcGVS dWJiZXJTZWxlY3RTdHJhdGVneS5jcHAKTSAgKzEgICAgLTAgICAgbGlicy9nbG9iYWwvQ01ha2VM aXN0cy50eHQKQSAgKzUxICAgLTAgICAgbGlicy9nbG9iYWwva2lzX3BhaW50aW5nX3R3ZWFrcy5j cHAgICAgIFtMaWNlbnNlOiBHUEwgKHYyKyldCkEgICs0NSAgIC0wICAgIGxpYnMvZ2xvYmFsL2tp c19wYWludGluZ190d2Vha3MuaCAgICAgW0xpY2Vuc2U6IEdQTCAodjIrKV0KTSAgKzQgICAgLTEg ICAgcGx1Z2lucy9mbGFrZS90ZXh0c2hhcGUvVGV4dFNoYXBlLmNwcApNICArMiAgICAtMSAgICBw bHVnaW5zL2ZsYWtlL3RleHRzaGFwZS90ZXh0bGF5b3V0L0tvVGV4dExheW91dEFyZWFfcGFpbnQu Y3BwCk0gICszICAgIC0xICAgIHBsdWdpbnMvZmxha2UvdmVjdG9yc2hhcGUvVmVjdG9yU2hhcGUu Y3BwCgpodHRwOi8vY29tbWl0cy5rZGUub3JnL2tyaXRhLzA4ZmQzYWE4ZTU1NDU1NzcyOGY2MGY4 NTcxZTUxMzY0MDcwYzA5ZTgKCmRpZmYgLS1naXQgYS9saWJzL2ZsYWtlL0tvU2hhcGVDb250YWlu ZXIuY3BwIGIvbGlicy9mbGFrZS9Lb1NoYXBlQ29udGFpbmVyLmNwcAppbmRleCA3NGNkYjIzLi40 MTEwOThjIDEwMDY0NAotLS0gYS9saWJzL2ZsYWtlL0tvU2hhcGVDb250YWluZXIuY3BwCisrKyBi L2xpYnMvZmxha2UvS29TaGFwZUNvbnRhaW5lci5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNs dWRlIDxRUGFpbnRlcj4KICNpbmNsdWRlIDxRUGFpbnRlclBhdGg+CiAKKyNpbmNsdWRlICJraXNf cGFpbnRpbmdfdHdlYWtzLmgiCisKIEtvU2hhcGVDb250YWluZXJQcml2YXRlOjpLb1NoYXBlQ29u dGFpbmVyUHJpdmF0ZShLb1NoYXBlQ29udGFpbmVyICpxKQogICAgIDogS29TaGFwZVByaXZhdGUo cSksCiAgICAgbW9kZWwoMCkKQEAgLTE3Myw3ICsxNzUsNyBAQCB2b2lkIEtvU2hhcGVDb250YWlu ZXI6OnBhaW50KFFQYWludGVyICZwYWludGVyLCBjb25zdCBLb1ZpZXdDb252ZXJ0ZXIgJmNvbnZl cnRlcgogICAgIG0uc2NhbGUoem9vbVgsIHpvb21ZKTsKICAgICBwYWludGVyLnNldENsaXBQYXRo KG0ubWFwKG91dGxpbmUoKSksIFF0OjpJbnRlcnNlY3RDbGlwKTsKIAotICAgIFFSZWN0RiB0b1Bh aW50UmVjdCA9IGNvbnZlcnRlci52aWV3VG9Eb2N1bWVudChwYWludGVyLmNsaXBSZWdpb24oKS5i b3VuZGluZ1JlY3QoKSk7CisgICAgUVJlY3RGIHRvUGFpbnRSZWN0ID0gY29udmVydGVyLnZpZXdU b0RvY3VtZW50KEtpc1BhaW50aW5nVHdlYWtzOjpzYWZlQ2xpcEJvdW5kaW5nUmVjdChwYWludGVy KSk7CiAgICAgdG9QYWludFJlY3QgPSB0cmFuc2Zvcm0oKS5tYXBSZWN0KHRvUGFpbnRSZWN0KTsK ICAgICAvLyBXZSdsbCB1c2UgdGhpcyBjbGlwUmVjdCB0byBzZWUgaWYgb3VyIGNoaWxkIHNoYXBl cyBsaWUgd2l0aGluIGl0LgogICAgIC8vIEJlY2F1c2Ugc2hhcGUtPmJvdW5kaW5nUmVjdCgpIHVz ZXMgYWJzb2x1dGVUcmFuc2Zvcm1hdGlvbigwKSB3ZSdsbApkaWZmIC0tZ2l0IGEvbGlicy9mbGFr ZS9Lb1NoYXBlTWFuYWdlci5jcHAgYi9saWJzL2ZsYWtlL0tvU2hhcGVNYW5hZ2VyLmNwcAppbmRl eCBmNDRkNGJlLi42Zjg2MWYxIDEwMDY0NAotLS0gYS9saWJzL2ZsYWtlL0tvU2hhcGVNYW5hZ2Vy LmNwcAorKysgYi9saWJzL2ZsYWtlL0tvU2hhcGVNYW5hZ2VyLmNwcApAQCAtNDgsNiArNDgsOCBA QAogI2luY2x1ZGUgPFFUaW1lcj4KICNpbmNsdWRlIDxGbGFrZURlYnVnLmg+CiAKKyNpbmNsdWRl ICJraXNfcGFpbnRpbmdfdHdlYWtzLmgiCisKIAogdm9pZCBLb1NoYXBlTWFuYWdlcjo6UHJpdmF0 ZTo6dXBkYXRlVHJlZSgpCiB7CkBAIC0yMjcsNyArMjI5LDcgQEAgdm9pZCBLb1NoYXBlTWFuYWdl cjo6cGFpbnQoUVBhaW50ZXIgJnBhaW50ZXIsIGNvbnN0IEtvVmlld0NvbnZlcnRlciAmY29udmVy dGVyLAogCiAgICAgUUxpc3Q8S29TaGFwZSo+IHVuc29ydGVkU2hhcGVzOwogICAgIGlmIChwYWlu dGVyLmhhc0NsaXBwaW5nKCkpIHsKLSAgICAgICAgUVJlY3RGIHJlY3QgPSBjb252ZXJ0ZXIudmll d1RvRG9jdW1lbnQocGFpbnRlci5jbGlwUmVnaW9uKCkuYm91bmRpbmdSZWN0KCkpOworICAgICAg ICBRUmVjdEYgcmVjdCA9IGNvbnZlcnRlci52aWV3VG9Eb2N1bWVudChLaXNQYWludGluZ1R3ZWFr czo6c2FmZUNsaXBCb3VuZGluZ1JlY3QocGFpbnRlcikpOwogICAgICAgICB1bnNvcnRlZFNoYXBl cyA9IGQtPnRyZWUuaW50ZXJzZWN0cyhyZWN0KTsKICAgICB9IGVsc2UgewogICAgICAgICB1bnNv cnRlZFNoYXBlcyA9IHNoYXBlcygpOwpkaWZmIC0tZ2l0IGEvbGlicy9mbGFrZS90b29scy9Lb0Ny ZWF0ZVNoYXBlU3RyYXRlZ3kuY3BwIGIvbGlicy9mbGFrZS90b29scy9Lb0NyZWF0ZVNoYXBlU3Ry YXRlZ3kuY3BwCmluZGV4IDdlNmVmMWEuLjA1NGE1NmIgMTAwNjQ0Ci0tLSBhL2xpYnMvZmxha2Uv dG9vbHMvS29DcmVhdGVTaGFwZVN0cmF0ZWd5LmNwcAorKysgYi9saWJzL2ZsYWtlL3Rvb2xzL0tv Q3JlYXRlU2hhcGVTdHJhdGVneS5jcHAKQEAgLTExOSw5ICsxMTksNiBAQCB2b2lkIEtvQ3JlYXRl U2hhcGVTdHJhdGVneTo6cGFpbnQoUVBhaW50ZXIgJnBhaW50ZXIsIGNvbnN0IEtvVmlld0NvbnZl cnRlciAmY29udgogICAgICAgICBtYXRyaXguc2NhbGUoeHNjYWxlLCB5c2NhbGUpOwogICAgICAg ICBwYWludGVyLnRyYW5zbGF0ZShwYWludFJlY3QubGVmdCgpLCBwYWludFJlY3QudG9wKCkpOwog Ci0gICAgICAgIGlmIChwYWludGVyLmhhc0NsaXBwaW5nKCkpCi0gICAgICAgICAgICBwYWludFJl Y3QgPSBwYWludFJlY3QuaW50ZXJzZWN0KHBhaW50ZXIuY2xpcFJlZ2lvbigpLmJvdW5kaW5nUmVj dCgpKTsKLQogICAgICAgICBwYWludGVyLnNldFRyYW5zZm9ybShtYXRyaXgsIHRydWUpOwogICAg ICAgICBwYWludGVyLmRyYXdQYXRoKG1fb3V0bGluZSk7CiAgICAgICAgIHBhaW50ZXIucmVzdG9y ZSgpOwpkaWZmIC0tZ2l0IGEvbGlicy9mbGFrZS90b29scy9Lb1NoYXBlUnViYmVyU2VsZWN0U3Ry YXRlZ3kuY3BwIGIvbGlicy9mbGFrZS90b29scy9Lb1NoYXBlUnViYmVyU2VsZWN0U3RyYXRlZ3ku Y3BwCmluZGV4IDgyNDA1OTMuLjBiMGEwZTggMTAwNjQ0Ci0tLSBhL2xpYnMvZmxha2UvdG9vbHMv S29TaGFwZVJ1YmJlclNlbGVjdFN0cmF0ZWd5LmNwcAorKysgYi9saWJzL2ZsYWtlL3Rvb2xzL0tv U2hhcGVSdWJiZXJTZWxlY3RTdHJhdGVneS5jcHAKQEAgLTUyLDggKzUyLDYgQEAgdm9pZCBLb1No YXBlUnViYmVyU2VsZWN0U3RyYXRlZ3k6OnBhaW50KFFQYWludGVyICZwYWludGVyLCBjb25zdCBL b1ZpZXdDb252ZXJ0ZXIKICAgICBRUmVjdEYgcGFpbnRSZWN0ID0gY29udmVydGVyLmRvY3VtZW50 VG9WaWV3KGQtPnNlbGVjdGVkUmVjdCgpKTsKICAgICBwYWludFJlY3QgPSBwYWludFJlY3Qubm9y bWFsaXplZCgpOwogICAgIHBhaW50UmVjdC5hZGp1c3QoMC4sIC0wLjUsIDAuNSwgMC4pOwotICAg IGlmIChwYWludGVyLmhhc0NsaXBwaW5nKCkpCi0gICAgICAgIHBhaW50UmVjdCA9IHBhaW50UmVj dC5pbnRlcnNlY3QocGFpbnRlci5jbGlwUmVnaW9uKCkuYm91bmRpbmdSZWN0KCkpOwogICAgIHBh aW50ZXIuZHJhd1JlY3QocGFpbnRSZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvbGlicy9nbG9iYWwv Q01ha2VMaXN0cy50eHQgYi9saWJzL2dsb2JhbC9DTWFrZUxpc3RzLnR4dAppbmRleCBlZmIwZDk4 Li40MmEzM2ZlIDEwMDY0NAotLS0gYS9saWJzL2dsb2JhbC9DTWFrZUxpc3RzLnR4dAorKysgYi9s aWJzL2dsb2JhbC9DTWFrZUxpc3RzLnR4dApAQCAtMTIsNiArMTIsNyBAQCBzZXQoa3JpdGFnbG9i YWxfTElCX1NSQ1MKICAgICBraXNfbWVtb3J5X2xlYWtfdHJhY2tlci5jcHAKICAgICBraXNfc2hh cmVkLmNwcAogICAgIGtpc19kb21fdXRpbHMuY3BwCisgICAga2lzX3BhaW50aW5nX3R3ZWFrcy5j cHAKICkKIAogYWRkX2xpYnJhcnkoa3JpdGFnbG9iYWwgU0hBUkVEICR7a3JpdGFnbG9iYWxfTElC X1NSQ1N9ICkKZGlmZiAtLWdpdCBhL2xpYnMvZ2xvYmFsL2tpc19wYWludGluZ190d2Vha3MuY3Bw IGIvbGlicy9nbG9iYWwva2lzX3BhaW50aW5nX3R3ZWFrcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMWM1OWUxYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnMvZ2xvYmFs L2tpc19wYWludGluZ190d2Vha3MuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiAgQ29weXJp Z2h0IChjKSAyMDE2IERtaXRyeSBLYXpha292IDxkaW11bGE3M0BnbWFpbC5jb20+CisgKgorICog IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwg d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq LworCisjaW5jbHVkZSAia2lzX3BhaW50aW5nX3R3ZWFrcy5oIgorCisjaW5jbHVkZSA8UVJlZ2lv bj4KKyNpbmNsdWRlIDxRUGFpbnRlcj4KKyNpbmNsdWRlIDxRVHJhbnNmb3JtPgorCisjaW5jbHVk ZSAia2lzX2RlYnVnLmgiCisKKworbmFtZXNwYWNlIEtpc1BhaW50aW5nVHdlYWtzIHsKKworUVJl Z2lvbiBzYWZlQ2xpcFJlZ2lvbihjb25zdCBRUGFpbnRlciAmcGFpbnRlcikKK3sKKyAgICBjb25z dCBRVHJhbnNmb3JtIHQgPSBwYWludGVyLnRyYW5zZm9ybSgpOworCisgICAgUVJlZ2lvbiByZWdp b24gPSB0LnR5cGUoKSA8PSBRVHJhbnNmb3JtOjpUeFNjYWxlID8KKyAgICAgICAgcGFpbnRlci5j bGlwUmVnaW9uKCkgOgorICAgICAgICBRUmVnaW9uKHBhaW50ZXIuY2xpcEJvdW5kaW5nUmVjdCgp LnRvQWxpZ25lZFJlY3QoKSk7CisKKyAgICBpZiAocmVnaW9uLnJlY3RDb3VudCgpID4gMTAwMCkg eworICAgICAgICBxV2FybmluZygpIDw8ICJXQVJOSU5HOiBLaXNQYWludGluZ1R3ZWFrczo6c2Fm ZUNsaXBSZWdpb246IHRvbyBtYW55IHJlY3RhbmdsZXMgaW4gdGhlIHJlZ2lvbiEiIDw8IHBwVmFy KHJlZ2lvbi5yZWN0Q291bnQoKSk7CisgICAgICAgIHJlZ2lvbiA9IFFSZWdpb24ocGFpbnRlci5j bGlwQm91bmRpbmdSZWN0KCkudG9BbGlnbmVkUmVjdCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4g cmVnaW9uOworfQorCitRUmVjdCBzYWZlQ2xpcEJvdW5kaW5nUmVjdChjb25zdCBRUGFpbnRlciAm cGFpbnRlcikKK3sKKyAgICByZXR1cm4gcGFpbnRlci5jbGlwQm91bmRpbmdSZWN0KCkudG9BbGln bmVkUmVjdCgpOworfQorCit9CmRpZmYgLS1naXQgYS9saWJzL2dsb2JhbC9raXNfcGFpbnRpbmdf dHdlYWtzLmggYi9saWJzL2dsb2JhbC9raXNfcGFpbnRpbmdfdHdlYWtzLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc0Y2JhZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnMv Z2xvYmFsL2tpc19wYWludGluZ190d2Vha3MuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogIENv cHlyaWdodCAoYykgMjAxNiBEbWl0cnkgS2F6YWtvdiA8ZGltdWxhNzNAZ21haWwuY29tPgorICoK KyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBu b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu CisgKi8KKworI2lmbmRlZiBfX0tJU19QQUlOVElOR19UV0VBS1NfSAorI2RlZmluZSBfX0tJU19Q QUlOVElOR19UV0VBS1NfSAorCisjaW5jbHVkZSAia3JpdGFnbG9iYWxfZXhwb3J0LmgiCisKK2Ns YXNzIFFQYWludGVyOworY2xhc3MgUVJlZ2lvbjsKK2NsYXNzIFFSZWN0OworCituYW1lc3BhY2Ug S2lzUGFpbnRpbmdUd2Vha3MgeworCisgICAgLyoqCisgICAgICogVGhpcyBpcyBhIHdvcmthcm91 bmQgZm9yIFFQYWludGVyOjpjbGlwUmVnaW9uKCkgYnVnLiBXaGVuIHpvb20KKyAgICAgKiBpcyBh Ym91dCAyMDAwJSBhbmQgcm90YXRpb24gaXMgaW4gYSByYW5nZVstNTs1XSBkZWdyZWVzLCB0aGUK KyAgICAgKiBnZW5lcmF0ZWQgcmVnaW9uIHdpbGwgaGF2ZSBhYm91dCAyMGsrIHJlZ3RhbmdsZXMg aW5zaWRlLiBUaGVpcgorICAgICAqIHByb2Nlc3Npbmcgd2lsbCBiZSByZWFsbHkgc2xvdy4gVGhl c2UgZnVuY3Rpb25zIGZ3b3JrYXJvdW5kcworICAgICAqIHRoZSBpc3N1ZS4KKyAgICAgKi8KKyAg ICBLUklUQUdMT0JBTF9FWFBPUlQgUVJlZ2lvbiBzYWZlQ2xpcFJlZ2lvbihjb25zdCBRUGFpbnRl ciAmcGFpbnRlcik7CisKKyAgICAvKioKKyAgICAgKiBcc2VlIHNhZmVDbGlwUmVnaW9uKCkKKyAg ICAgKi8KKyAgICBLUklUQUdMT0JBTF9FWFBPUlQgUVJlY3Qgc2FmZUNsaXBCb3VuZGluZ1JlY3Qo Y29uc3QgUVBhaW50ZXIgJnBhaW50ZXIpOworfQorCisjZW5kaWYgLyogX19LSVNfUEFJTlRJTkdf VFdFQUtTX0ggKi8KZGlmZiAtLWdpdCBhL3BsdWdpbnMvZmxha2UvdGV4dHNoYXBlL1RleHRTaGFw ZS5jcHAgYi9wbHVnaW5zL2ZsYWtlL3RleHRzaGFwZS9UZXh0U2hhcGUuY3BwCmluZGV4IDY1YjVh YzMuLjdmZGRhNzQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvZmxha2UvdGV4dHNoYXBlL1RleHRTaGFw ZS5jcHAKKysrIGIvcGx1Z2lucy9mbGFrZS90ZXh0c2hhcGUvVGV4dFNoYXBlLmNwcApAQCAtNjMs NiArNjMsOSBAQAogCiAjaW5jbHVkZSA8UURlYnVnPgogCisjaW5jbHVkZSAia2lzX3BhaW50aW5n X3R3ZWFrcy5oIgorCisKIFRleHRTaGFwZTo6VGV4dFNoYXBlKEtvSW5saW5lVGV4dE9iamVjdE1h bmFnZXIgKmlubGluZVRleHRPYmplY3RNYW5hZ2VyLCBLb1RleHRSYW5nZU1hbmFnZXIgKnRleHRS YW5nZU1hbmFnZXIpCiAgICAgOiBLb1NoYXBlQ29udGFpbmVyKG5ldyBLb1RleHRTaGFwZUNvbnRh aW5lck1vZGVsKCkpCiAgICAgLCBLb0ZyYW1lU2hhcGUoS29YbWxOUzo6ZHJhdywgInRleHQtYm94 IikKQEAgLTEzNyw3ICsxNDAsNyBAQCB2b2lkIFRleHRTaGFwZTo6cGFpbnRDb21wb25lbnQoUVBh aW50ZXIgJnBhaW50ZXIsIGNvbnN0IEtvVmlld0NvbnZlcnRlciAmY29udmVydAogICAgICAgICBL b1RleHRQYWdlICpwYWdlID0gbV9wYWdlUHJvdmlkZXItPnBhZ2UodGhpcyk7CiAgICAgICAgIGlm IChwYWdlKSB7CiAgICAgICAgICAgICAvLyB0aGlzIGlzIHVzZWQgdG8gbm90IHRyaWdnZXIgcmVw YWludHMgaWYgbGF5b3V0IGR1cmluZyB0aGUgcGFpbnRpbmcgaXMgZG9uZQotICAgICAgICAgICAg bV9wYWludFJlZ2lvbiA9IHBhaW50ZXIuY2xpcFJlZ2lvbigpOworICAgICAgICAgICAgbV9wYWlu dFJlZ2lvbiA9IEtpc1BhaW50aW5nVHdlYWtzOjpzYWZlQ2xpcFJlZ2lvbihwYWludGVyKTsKICAg ICAgICAgICAgIGlmICghbV90ZXh0U2hhcGVEYXRhLT5yb290QXJlYSgpLT5wYWdlKCkgfHwgcGFn ZS0+cGFnZU51bWJlcigpICE9IG1fdGV4dFNoYXBlRGF0YS0+cm9vdEFyZWEoKS0+cGFnZSgpLT5w YWdlTnVtYmVyKCkpIHsKICAgICAgICAgICAgICAgICBtX3RleHRTaGFwZURhdGEtPnJvb3RBcmVh KCktPnNldFBhZ2UocGFnZSk7IC8vIHRha2VzIG92ZXIgb3duZXJzaGlwIG9mIHRoZSBwYWdlCiAg ICAgICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9mbGFrZS90ZXh0c2hhcGUv dGV4dGxheW91dC9Lb1RleHRMYXlvdXRBcmVhX3BhaW50LmNwcCBiL3BsdWdpbnMvZmxha2UvdGV4 dHNoYXBlL3RleHRsYXlvdXQvS29UZXh0TGF5b3V0QXJlYV9wYWludC5jcHAKaW5kZXggNWQ2ODYw Yy4uZGJlNzQ5ZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9mbGFrZS90ZXh0c2hhcGUvdGV4dGxheW91 dC9Lb1RleHRMYXlvdXRBcmVhX3BhaW50LmNwcAorKysgYi9wbHVnaW5zL2ZsYWtlL3RleHRzaGFw ZS90ZXh0bGF5b3V0L0tvVGV4dExheW91dEFyZWFfcGFpbnQuY3BwCkBAIC02NSw2ICs2NSw3IEBA CiAjaW5jbHVkZSA8UVRleHRMYXlvdXQ+CiAjaW5jbHVkZSA8UVRleHRDdXJzb3I+CiAjaW5jbHVk ZSA8UVRpbWU+CisjaW5jbHVkZSAia2lzX3BhaW50aW5nX3R3ZWFrcy5oIgogCiBleHRlcm4gaW50 IHF0X2RlZmF1bHREcGlZKCk7CiBRX0RFQ0xBUkVfTUVUQVRZUEUoUVRleHREb2N1bWVudCAqKQpA QCAtOTEsNyArOTIsNyBAQCB2b2lkIEtvVGV4dExheW91dEFyZWE6OnBhaW50KFFQYWludGVyICpw YWludGVyLCBjb25zdCBLb1RleHREb2N1bWVudExheW91dDo6UGFpbgogICAgIHBhaW50ZXItPnRy YW5zbGF0ZSgwLCBkLT52ZXJ0aWNhbEFsaWduT2Zmc2V0KTsKIAogICAgIHBhaW50ZXItPnNldFBl bihjb250ZXh0LnRleHRDb250ZXh0LnBhbGV0dGUuY29sb3IoUVBhbGV0dGU6OlRleHQpKTsgLy8g Zm9yIHRleHQgdGhhdCBoYXMgbm8gY29sb3IuCi0gICAgY29uc3QgUVJlZ2lvbiBjbGlwUmVnaW9u ID0gcGFpbnRlci0+Y2xpcFJlZ2lvbigpOyAvLyBmZXRjaCBhZnRlciBwYWludGVyLT50cmFuc2xh dGUgc28gdGhlIGNsaXBSZWdpb24gaXMgY29ycmVjdAorICAgIGNvbnN0IFFSZWdpb24gY2xpcFJl Z2lvbiA9IEtpc1BhaW50aW5nVHdlYWtzOjpzYWZlQ2xpcFJlZ2lvbigqcGFpbnRlcik7IC8vIGZl dGNoIGFmdGVyIHBhaW50ZXItPnRyYW5zbGF0ZSBzbyB0aGUgY2xpcFJlZ2lvbiBpcyBjb3JyZWN0 CiAgICAgS29UZXh0QmxvY2tCb3JkZXJEYXRhICpsYXN0Qm9yZGVyID0gMDsKICAgICBRUmVjdEYg bGFzdEJvcmRlclJlY3Q7CiAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvZmxha2UvdmVjdG9yc2hhcGUv VmVjdG9yU2hhcGUuY3BwIGIvcGx1Z2lucy9mbGFrZS92ZWN0b3JzaGFwZS9WZWN0b3JTaGFwZS5j cHAKaW5kZXggNmUyMjdkZi4uMmE4MGE1YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9mbGFrZS92ZWN0 b3JzaGFwZS9WZWN0b3JTaGFwZS5jcHAKKysrIGIvcGx1Z2lucy9mbGFrZS92ZWN0b3JzaGFwZS9W ZWN0b3JTaGFwZS5jcHAKQEAgLTU3LDYgKzU3LDggQEAKICNpbmNsdWRlICJTdm1QYXJzZXIuaCIK ICNpbmNsdWRlICJTdm1QYWludGVyQmFja2VuZC5oIgogCisjaW5jbHVkZSAia2lzX3BhaW50aW5n X3R3ZWFrcy5oIgorCiAvLyBDb21tZW50IG91dCB0byBnZXQgdW5jYWNoZWQgcGFpbnRpbmcsIHdo aWNoIGlzIGdvb2QgZm9yIGRlYnVnZ2luZwogLy8jZGVmaW5lIFZFQ1RPUlNIQVBFX1BBSU5UX1VO Q0FDSEVECiAKQEAgLTI0Nyw3ICsyNDksNyBAQCB2b2lkIFZlY3RvclNoYXBlOjpwYWludChRUGFp bnRlciAmcGFpbnRlciwgY29uc3QgS29WaWV3Q29udmVydGVyICZjb252ZXJ0ZXIsIEtvUwogICAg IFFJbWFnZSAqY2FjaGUgPSByZW5kZXIoY29udmVydGVyLCBhc3luY2hyb25vdXMsIHVzZUNhY2hl KTsKICAgICBpZiAoY2FjaGUpIHsgLy8gcGFpbnQgY2FjaGVkIGltYWdlCiAgICAgICAgIFFfQVNT RVJUKCFjYWNoZS0+aXNOdWxsKCkpOwotICAgICAgICBRVmVjdG9yPFFSZWN0PiBjbGlwUmVjdHMg PSBwYWludGVyLmNsaXBSZWdpb24oKS5yZWN0cygpOworICAgICAgICBRVmVjdG9yPFFSZWN0PiBj bGlwUmVjdHMgPSBLaXNQYWludGluZ1R3ZWFrczo6c2FmZUNsaXBSZWdpb24ocGFpbnRlcikucmVj dHMoKTsKICAgICAgICAgZm9yZWFjaCAoY29uc3QgUVJlY3QgJnJjLCBjbGlwUmVjdHMpIHsKICAg ICAgICAgICAgIHBhaW50ZXIuZHJhd0ltYWdlKHJjLnRvcExlZnQoKSwgKmNhY2hlLCByYyk7CiAg ICAgICAgIH0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K S3JpdGEgbWFpbGluZyBsaXN0CmtpbWFnZXNob3BAa2RlLm9yZwpodHRwczovL21haWwua2RlLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2tpbWFnZXNob3AK