ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyMGY0ODRhLi4yMjMyYWUwIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOSBAQAorVHVlIEFwciAyNCAxNDoxMDozOCBDRVNUIDIwMDEgRGFuaWVsIFZlaWxsYXJkIDxEYW5pZWwuVmVpbGxhcmRAaW1hZy5mcj4KKworCSogZW50aXRpZXMuYzogeG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQgZml4ZWQgYSBmZXcgYWNjZXNzZXMKKwkgIHRvIGRvYyB3aGVyZSBpdCB3YXNuJ3QgY2hlY2tlZCBhZ2FpbnN0IE5VTEwgcmVwb3J0ZWQgYnkKKwkgIEplbnMgTGFhcworCiBUdWUgQXByIDI0IDEzOjIxOjM2IENFU1QgMjAwMSBEYW5pZWwgVmVpbGxhcmQgPERhbmllbC5WZWlsbGFyZEBpbWFnLmZyPgogCiAJKiBIVE1McGFyc2VyLmM6IEpvbmFzIEJvcmdzdHL2bSBwYXRjaCwgdGhlIDx0ZD4sIGFuZCA8dGg+IGVsZW1lbnRzCmRpZmYgLS1naXQgYS9lbnRpdGllcy5jIGIvZW50aXRpZXMuYwppbmRleCAyMjk3MWNjLi4zZTZiNTgxIDEwMDY0NAotLS0gYS9lbnRpdGllcy5jCisrKyBiL2VudGl0aWVzLmMKQEAgLTY0Myw3ICs2NDMsNyBAQAogCSAgICAgKi8KIAkgICAgKm91dCsrID0gKmN1cjsKIAl9IGVsc2UgaWYgKCpjdXIgPj0gMHg4MCkgewotCSAgICBpZiAoKGRvYy0+ZW5jb2RpbmcgIT0gTlVMTCkgfHwgKGh0bWwpKSB7CisJICAgIGlmICgoKGRvYyAhPSBOVUxMKSAmJiAoZG9jLT5lbmNvZGluZyAhPSBOVUxMKSkgfHwgKGh0bWwpKSB7CiAJCS8qCiAJCSAqIEJq+HJuIFJlZXNlIDxickBzc2V1c2EuY29tPiBwcm92aWRlZCB0aGUgcGF0Y2gKIAkgICAgICAgIHhtbENoYXIgeGM7CkBAIC02NjQsNyArNjY0LDggQEAKIAkJaWYgKCpjdXIgPCAweEMwKSB7CiAJCSAgICB4bWxHZW5lcmljRXJyb3IoeG1sR2VuZXJpY0Vycm9yQ29udGV4dCwKIAkJCSAgICAieG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQgOiBpbnB1dCBub3QgVVRGLThcbiIpOwotCQkgICAgZG9jLT5lbmNvZGluZyA9IHhtbFN0cmR1cChCQURfQ0FTVCAiSVNPLTg4NTktMSIpOworCQkgICAgaWYgKGRvYyAhPSBOVUxMKQorCQkJZG9jLT5lbmNvZGluZyA9IHhtbFN0cmR1cChCQURfQ0FTVCAiSVNPLTg4NTktMSIpOwogCQkgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiYjJWQ7IiwgKmN1cik7CiAJCSAgICBidWZbc2l6ZW9mKGJ1ZikgLSAxXSA9IDA7CiAJCSAgICBwdHIgPSBidWY7CkBAIC02OTUsNyArNjk2LDggQEAKIAkJaWYgKChsID09IDEpIHx8ICghSVNfQ0hBUih2YWwpKSkgewogCQkgICAgeG1sR2VuZXJpY0Vycm9yKHhtbEdlbmVyaWNFcnJvckNvbnRleHQsCiAJCQkieG1sRW5jb2RlRW50aXRpZXNSZWVudHJhbnQgOiBjaGFyIG91dCBvZiByYW5nZVxuIik7Ci0JCSAgICBkb2MtPmVuY29kaW5nID0geG1sU3RyZHVwKEJBRF9DQVNUICJJU08tODg1OS0xIik7CisJCSAgICBpZiAoZG9jICE9IE5VTEwpCisJCQlkb2MtPmVuY29kaW5nID0geG1sU3RyZHVwKEJBRF9DQVNUICJJU08tODg1OS0xIik7CiAJCSAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJiMlZDsiLCAqY3VyKTsKIAkJICAgIGJ1ZltzaXplb2YoYnVmKSAtIDFdID0gMDsKIAkJICAgIHB0ciA9IGJ1ZjsK