[SCM] The rsync repository. - branch master updated
Rsync CVS commit messages <[email protected]> Mon, 10 Oct 2016 20:54:21 +0200 (CEST)
| Newsgroups | gmane.network.rsync.cvs |
|---|---|
| Message-ID | <[email protected]> |
VGhlIGJyYW5jaCwgbWFzdGVyIGhhcyBiZWVuIHVwZGF0ZWQKICAgICAgIHZpYSAgZjM4NzNiMyBT dXBwb3J0IC0tc3BhcnNlIGNvbWJpbmVkIHdpdGggLS1wcmVhbGxvY2F0ZSBvciAtLWlucGxhY2Uu CiAgICAgIGZyb20gIDZlM2IyMTAgeGF0dHJzOiBtYWludGFpbiBhIGhhc2h0YWJsZSBpbiBvcmRl ciB0byBzcGVlZCB1cCBmaW5kX21hdGNoaW5nX3hhdHRyKCkKCmh0dHBzOi8vZ2l0LnNhbWJhLm9y Zy8/cD1yc3luYy5naXQ7YT1zaG9ydGxvZztoPW1hc3RlcgoKCi0gTG9nIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmNvbW1p dCBmMzg3M2IzZDg4YjYxMTY3YjEwNmU3YjkyMjdhMjAxNDdmOGY2MTk3CkF1dGhvcjogV2F5bmUg RGF2aXNvbiA8d2F5bmVkQHNhbWJhLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDExOjQ5OjUwIDIw MTYgLTA3MDAKCiAgICBTdXBwb3J0IC0tc3BhcnNlIGNvbWJpbmVkIHdpdGggLS1wcmVhbGxvY2F0 ZSBvciAtLWlucGxhY2UuCiAgICAKICAgIFRoZSBuZXcgY29kZSB0cmllcyB0byBwdW5jaCBob2xl cyBpbiB0aGUgZGVzdGluYXRpb24gZmlsZSB1c2luZyBuZXdlcgogICAgTGludXggZmFsbG9jYXRl IGZlYXR1cmVzLiBJdCBhbHNvIHN1cHBvcnRzIGEgLS13aG9sZS1maWxlICsgLS1zcGFyc2UgKwog ICAgLS1pbnBsYWNlIGNvcHkgb24gYW55IGZpbGVzeXN0ZW0gYnkgdHJ1bmNhdGluZyB0aGUgZGVz dGluYXRpb24gZmlsZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpTdW1tYXJ5IG9mIGNoYW5nZXM6CiBjb25m aWd1cmUuYWMgfCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysKIGZpbGVpby5jICAgICB8 IDY3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQogb3B0aW9ucy5jICAgIHwgMTAgKy0tLS0tLS0tCiByZWNlaXZlci5jICAgfCA2NiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogcnN5bmMueW8gICAgIHwgMjYgKysrKysrKysrKysrKysrLS0tLS0tLS0KIHN5c2NhbGwuYyAg ICB8IDY1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0KIHRfc3R1Yi5jICAgICB8ICAxICsKIHRscy5jICAgICAgICB8ICAyICsrCiB0cmlt c2xhc2guYyAgfCAgMiArKwogdXRpbC5jICAgICAgIHwgMTcgKysrKy0tLS0tLS0tLS0tCiAxMCBm aWxlcyBjaGFuZ2VkLCAyMDIgaW5zZXJ0aW9ucygrKSwgODQgZGVsZXRpb25zKC0pCgoKQ2hhbmdl c2V0IHRydW5jYXRlZCBhdCA1MDAgbGluZXM6CgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIv Y29uZmlndXJlLmFjCmluZGV4IGI1ZTQwNDkuLmUwMWUxMjQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3Vy ZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTYxNCw2ICs2MTQsMzYgQEAgaWYgdGVzdCB4IiRy c3luY19jdl9oYXZlX2ZhbGxvY2F0ZSIgPSB4InllcyI7IHRoZW4KICAgICBBQ19ERUZJTkUoSEFW RV9GQUxMT0NBVEUsIDEsIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZmFsbG9jYXRlIGZ1 bmN0aW9uIGFuZCBpdCBjb21waWxlcyBhbmQgbGlua3Mgd2l0aG91dCBlcnJvcl0pCiBmaQogCitB Q19NU0dfQ0hFQ0tJTkcoW2ZvciBGQUxMT0NfRkxfUFVOQ0hfSE9MRV0pCitBQ19QUkVQUk9DX0lG RUxTRShbQUNfTEFOR19TT1VSQ0UoW1sKKyAgICAgICAgI2RlZmluZSBfR05VX1NPVVJDRSAxCisg ICAgICAgICNpbmNsdWRlIDxsaW51eC9mYWxsb2MuaD4KKyAgICAgICAgI2lmbmRlZiBGQUxMT0Nf RkxfUFVOQ0hfSE9MRQorICAgICAgICAjZXJyb3IgRkFMTE9DX0ZMX1BVTkNIX0hPTEUgaXMgbWlz c2luZworICAgICAgICAjZW5kaWYKKyAgICBdXSldLCBbCisgICAgICAgIEFDX01TR19SRVNVTFQo W3llc10pCisgICAgICAgIEFDX0RFRklORShbSEFWRV9GQUxMT0NfRkxfUFVOQ0hfSE9MRV0sIFsx XSwgW0RlZmluZSBpZiBGQUxMT0NfRkxfUFVOQ0hfSE9MRSBpcyBhdmFpbGFibGUuXSkKKyAgICBd LCBbCisgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKKyAgICBdCispCisKK0FDX01TR19DSEVD S0lORyhbZm9yIEZBTExPQ19GTF9aRVJPX1JBTkdFXSkKK0FDX1BSRVBST0NfSUZFTFNFKFtBQ19M QU5HX1NPVVJDRShbWworICAgICAgICAjZGVmaW5lIF9HTlVfU09VUkNFIDEKKyAgICAgICAgI2lu Y2x1ZGUgPGxpbnV4L2ZhbGxvYy5oPgorICAgICAgICAjaWZuZGVmIEZBTExPQ19GTF9aRVJPX1JB TkdFCisgICAgICAgICNlcnJvciBGQUxMT0NfRkxfWkVST19SQU5HRSBpcyBtaXNzaW5nCisgICAg ICAgICNlbmRpZgorICAgIF1dKV0sIFsKKyAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKyAg ICAgICAgQUNfREVGSU5FKFtIQVZFX0ZBTExPQ19GTF9aRVJPX1JBTkdFXSwgWzFdLCBbRGVmaW5l IGlmIEZBTExPQ19GTF9aRVJPX1JBTkdFIGlzIGF2YWlsYWJsZS5dKQorICAgIF0sIFsKKyAgICAg ICAgQUNfTVNHX1JFU1VMVChbbm9dKQorICAgIF0KKykKKwogQUNfQ0FDSEVfQ0hFQ0soW2ZvciBT WVNfZmFsbG9jYXRlXSxyc3luY19jdl9oYXZlX3N5c19mYWxsb2NhdGUsWwogQUNfQ09NUElMRV9J RkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgogI2luY2x1 ZGUgPHN5cy90eXBlcy5oPl1dLCBbW3N5c2NhbGwoU1lTX2ZhbGxvY2F0ZSwgMCwgMCwgKGxvZmZf dCkwLCAobG9mZl90KTApO11dKV0sW3JzeW5jX2N2X2hhdmVfc3lzX2ZhbGxvY2F0ZT15ZXNdLFty c3luY19jdl9oYXZlX3N5c19mYWxsb2NhdGU9bm9dKV0pCmRpZmYgLS1naXQgYS9maWxlaW8uYyBi L2ZpbGVpby5jCmluZGV4IDcwZTA3OWQuLjFlOGE1NjIgMTAwNjQ0Ci0tLSBhL2ZpbGVpby5jCisr KyBiL2ZpbGVpby5jCkBAIC0zNSw3ICszNSwxMCBAQAogCiBleHRlcm4gaW50IHNwYXJzZV9maWxl czsKIAorT0ZGX1QgcHJlYWxsb2NhdGVkX2xlbiA9IDA7CisKIHN0YXRpYyBPRkZfVCBzcGFyc2Vf c2VlayA9IDA7CitzdGF0aWMgT0ZGX1Qgc3BhcnNlX3Bhc3Rfd3JpdGUgPSAwOwogCiBpbnQgc3Bh cnNlX2VuZChpbnQgZiwgT0ZGX1Qgc2l6ZSkKIHsKQEAgLTYzLDggKzY2LDEwIEBAIGludCBzcGFy c2VfZW5kKGludCBmLCBPRkZfVCBzaXplKQogCXJldHVybiByZXQ7CiB9CiAKLQotc3RhdGljIGlu dCB3cml0ZV9zcGFyc2UoaW50IGYsIGNoYXIgKmJ1ZiwgaW50IGxlbikKKy8qIE5vdGUgdGhhdCB0 aGUgb2Zmc2V0IGlzIGp1c3QgdGhlIGNhbGxlciBsZXR0aW5nIHVzIGtub3cgd2hlcmUKKyAqIHRo ZSBjdXJyZW50IGZpbGUgcG9zaXRpb24gaXMgaW4gdGhlIGZpbGUuIFRoZSB1c2Vfc2VlayBhcmcg dGVsbHMKKyAqIHVzIHRoYXQgd2Ugc2hvdWxkIHNlZWsgb3ZlciBtYXRjaGluZyBkYXRhIGluc3Rl YWQgb2Ygd3JpdGluZyBpdC4gKi8KK3N0YXRpYyBpbnQgd3JpdGVfc3BhcnNlKGludCBmLCBpbnQg dXNlX3NlZWssIE9GRl9UIG9mZnNldCwgY29uc3QgY2hhciAqYnVmLCBpbnQgbGVuKQogewogCWlu dCBsMSA9IDAsIGwyID0gMDsKIAlpbnQgcmV0OwpAQCAtNzcsOSArODIsMjQgQEAgc3RhdGljIGlu dCB3cml0ZV9zcGFyc2UoaW50IGYsIGNoYXIgKmJ1ZiwgaW50IGxlbikKIAlpZiAobDEgPT0gbGVu KQogCQlyZXR1cm4gbGVuOwogCi0JaWYgKHNwYXJzZV9zZWVrKQotCQlkb19sc2VlayhmLCBzcGFy c2Vfc2VlaywgU0VFS19DVVIpOworCWlmIChzcGFyc2Vfc2VlaykgeworCQlpZiAoc3BhcnNlX3Bh c3Rfd3JpdGUgPj0gcHJlYWxsb2NhdGVkX2xlbikgeworCQkJaWYgKGRvX2xzZWVrKGYsIHNwYXJz ZV9zZWVrLCBTRUVLX0NVUikgPCAwKQorCQkJCXJldHVybiAtMTsKKwkJfSBlbHNlIGlmIChkb19w dW5jaF9ob2xlKGYsIHNwYXJzZV9wYXN0X3dyaXRlLCBzcGFyc2Vfc2VlaykgPCAwKSB7CisJCQlz cGFyc2Vfc2VlayA9IDA7CisJCQlyZXR1cm4gLTE7CisJCX0KKwl9CiAJc3BhcnNlX3NlZWsgPSBs MjsKKwlzcGFyc2VfcGFzdF93cml0ZSA9IG9mZnNldCArIGxlbiAtIGwyOworCisJaWYgKHVzZV9z ZWVrKSB7CisJCS8qIFRoZSBpbi1wbGFjZSBkYXRhIGFscmVhZHkgbWF0Y2hlcy4gKi8KKwkJaWYg KGRvX2xzZWVrKGYsIGxlbiAtIChsMStsMiksIFNFRUtfQ1VSKSA8IDApCisJCQlyZXR1cm4gLTE7 CisJCXJldHVybiBsZW47CisJfQogCiAJd2hpbGUgKChyZXQgPSB3cml0ZShmLCBidWYgKyBsMSwg bGVuIC0gKGwxK2wyKSkpIDw9IDApIHsKIAkJaWYgKHJldCA8IDAgJiYgZXJybm8gPT0gRUlOVFIp CkBAIC05Niw3ICsxMTYsNiBAQCBzdGF0aWMgaW50IHdyaXRlX3NwYXJzZShpbnQgZiwgY2hhciAq YnVmLCBpbnQgbGVuKQogCXJldHVybiBsZW47CiB9CiAKLQogc3RhdGljIGNoYXIgKndmX3dyaXRl QnVmOwogc3RhdGljIHNpemVfdCB3Zl93cml0ZUJ1ZlNpemU7CiBzdGF0aWMgc2l6ZV90IHdmX3dy aXRlQnVmQ250OwpAQCAtMTE4LDEyICsxMzcsMTAgQEAgaW50IGZsdXNoX3dyaXRlX2ZpbGUoaW50 IGYpCiAJcmV0dXJuIHJldDsKIH0KIAotCi0vKgotICogd3JpdGVfZmlsZSBkb2VzIG5vdCBhbGxv dyBpbmNvbXBsZXRlIHdyaXRlcy4gIEl0IGxvb3BzIGludGVybmFsbHkKLSAqIHVudGlsIGxlbiBi eXRlcyBhcmUgd3JpdHRlbiBvciBlcnJubyBpcyBzZXQuCi0gKi8KLWludCB3cml0ZV9maWxlKGlu dCBmLCBjaGFyICpidWYsIGludCBsZW4pCisvKiB3cml0ZV9maWxlIGRvZXMgbm90IGFsbG93IGlu Y29tcGxldGUgd3JpdGVzLiAgSXQgbG9vcHMgaW50ZXJuYWxseQorICogdW50aWwgbGVuIGJ5dGVz IGFyZSB3cml0dGVuIG9yIGVycm5vIGlzIHNldC4gIE5vdGUgdGhhdCB1c2Vfc2VlayBhbmQKKyAq IG9mZnNldCBhcmUgb25seSB1c2VkIGluIHNwYXJzZSBwcm9jZXNzaW5nIChzZWUgd3JpdGVfc3Bh cnNlKCkpLiAqLworaW50IHdyaXRlX2ZpbGUoaW50IGYsIGludCB1c2Vfc2VlaywgT0ZGX1Qgb2Zm c2V0LCBjb25zdCBjaGFyICpidWYsIGludCBsZW4pCiB7CiAJaW50IHJldCA9IDA7CiAKQEAgLTEz MSw3ICsxNDgsOCBAQCBpbnQgd3JpdGVfZmlsZShpbnQgZiwgY2hhciAqYnVmLCBpbnQgbGVuKQog CQlpbnQgcjE7CiAJCWlmIChzcGFyc2VfZmlsZXMgPiAwKSB7CiAJCQlpbnQgbGVuMSA9IE1JTihs ZW4sIFNQQVJTRV9XUklURV9TSVpFKTsKLQkJCXIxID0gd3JpdGVfc3BhcnNlKGYsIGJ1ZiwgbGVu MSk7CisJCQlyMSA9IHdyaXRlX3NwYXJzZShmLCB1c2Vfc2Vlaywgb2Zmc2V0LCBidWYsIGxlbjEp OworCQkJb2Zmc2V0ICs9IHIxOwogCQl9IGVsc2UgewogCQkJaWYgKCF3Zl93cml0ZUJ1Zikgewog CQkJCXdmX3dyaXRlQnVmU2l6ZSA9IFdSSVRFX1NJWkUgKiA4OwpAQCAtMTY0LDYgKzE4MiwzMCBA QCBpbnQgd3JpdGVfZmlsZShpbnQgZiwgY2hhciAqYnVmLCBpbnQgbGVuKQogCXJldHVybiByZXQ7 CiB9CiAKKy8qIEFuIGluLXBsYWNlIHVwZGF0ZSBmb3VuZCBpZGVudGljYWwgZGF0YSBhdCBhbiBp ZGVudGljYWwgbG9jYXRpb24uIFdlIGVpdGhlcgorICoganVzdCBzZWVrIHBhc3QgaXQsIG9yIChm b3IgYW4gaW4tcGxhY2Ugc3BhcnNlIHVwZGF0ZSksIHdlIGdpdmUgdGhlIGRhdGEgdG8KKyAqIHRo ZSBzcGFyc2UgcHJvY2Vzc29yIHdpdGggdGhlIHVzZV9zZWVrIGZsYWcgc2V0LiAqLworaW50IHNr aXBfbWF0Y2hlZChpbnQgZmQsIE9GRl9UIG9mZnNldCwgY29uc3QgY2hhciAqYnVmLCBpbnQgbGVu KQoreworCU9GRl9UIHBvczsKKworCWlmIChzcGFyc2VfZmlsZXMgPiAwKSB7CisJCWlmICh3cml0 ZV9maWxlKGZkLCAxLCBvZmZzZXQsIGJ1ZiwgbGVuKSAhPSBsZW4pCisJCQlyZXR1cm4gLTE7CisJ CXJldHVybiAwOworCX0KKworCWlmIChmbHVzaF93cml0ZV9maWxlKGZkKSA8IDApCisJCXJldHVy biAtMTsKKworCWlmICgocG9zID0gZG9fbHNlZWsoZmQsIGxlbiwgU0VFS19DVVIpKSAhPSBvZmZz ZXQgKyBsZW4pIHsKKwkJcnN5c2VycihGRVJST1JfWEZFUiwgZXJybm8sICJsc2VlayByZXR1cm5l ZCAlcywgbm90ICVzIiwKKwkJCWJpZ19udW0ocG9zKSwgYmlnX251bShvZmZzZXQpKTsKKwkJcmV0 dXJuIC0xOworCX0KKworCXJldHVybiAwOworfQogCiAvKiBUaGlzIHByb3ZpZGVzIGZ1bmN0aW9u YWxpdHkgc29tZXdoYXQgc2ltaWxhciB0byBtbWFwKCkgYnV0IHVzaW5nIHJlYWQoKS4KICAqIEl0 IGdpdmVzIHNsaWRpbmcgd2luZG93IGFjY2VzcyB0byBhIGZpbGUuICBtbWFwKCkgaXMgbm90IHVz ZWQgYmVjYXVzZSBvZgpAQCAtMjcxLDcgKzMxMyw2IEBAIGNoYXIgKm1hcF9wdHIoc3RydWN0IG1h cF9zdHJ1Y3QgKm1hcCwgT0ZGX1Qgb2Zmc2V0LCBpbnQzMiBsZW4pCiAJcmV0dXJuIG1hcC0+cCAr IGFsaWduX2Z1ZGdlOwogfQogCi0KIGludCB1bm1hcF9maWxlKHN0cnVjdCBtYXBfc3RydWN0ICpt YXApCiB7CiAJaW50CXJldDsKZGlmZiAtLWdpdCBhL29wdGlvbnMuYyBiL29wdGlvbnMuYwppbmRl eCAzMDg0NDNiLi42YmExM2I3IDEwMDY0NAotLS0gYS9vcHRpb25zLmMKKysrIGIvb3B0aW9ucy5j CkBAIC03MTQsNyArNzE0LDcgQEAgdm9pZCB1c2FnZShlbnVtIGxvZ2NvZGUgRikKICNpZmRlZiBT VVBQT1JUX1hBVFRSUwogICBycHJpbnRmKEYsIiAgICAgLS1mYWtlLXN1cGVyICAgICAgICAgICAg c3RvcmUvcmVjb3ZlciBwcml2aWxlZ2VkIGF0dHJzIHVzaW5nIHhhdHRyc1xuIik7CiAjZW5kaWYK LSAgcnByaW50ZihGLCIgLVMsIC0tc3BhcnNlICAgICAgICAgICAgICAgIGhhbmRsZSBzcGFyc2Ug ZmlsZXMgZWZmaWNpZW50bHlcbiIpOworICBycHJpbnRmKEYsIiAtUywgLS1zcGFyc2UgICAgICAg ICAgICAgICAgdHVybiBzZXF1ZW5jZXMgb2YgbnVsbHMgaW50byBzcGFyc2UgYmxvY2tzXG4iKTsK ICNpZmRlZiBTVVBQT1JUX1BSRUFMTE9DQVRJT04KICAgcnByaW50ZihGLCIgICAgIC0tcHJlYWxs b2NhdGUgICAgICAgICAgIGFsbG9jYXRlIGRlc3QgZmlsZXMgYmVmb3JlIHdyaXRpbmcgdGhlbVxu Iik7CiAjZWxzZQpAQCAtMjIzNywxNCArMjIzNyw2IEBAIGludCBwYXJzZV9hcmd1bWVudHMoaW50 ICphcmdjX3AsIGNvbnN0IGNoYXIgKioqYXJndl9wKQogCQkJYndsaW1pdF93cml0ZW1heCA9IDUx MjsKIAl9CiAKLQlpZiAoc3BhcnNlX2ZpbGVzICYmIGlucGxhY2UpIHsKLQkJLyogTm90ZTogd2Ug ZG9uJ3QgY2hlY2sgZm9yIHRoaXMgYmVsb3csIGJlY2F1c2UgLS1hcHBlbmQgaXMKLQkJICogT0sg d2l0aCAtLXNwYXJzZSAoYXMgbG9uZyBhcyByZWRvcyBhcmUgaGFuZGxlZCByaWdodCkuICovCi0J CXNucHJpbnRmKGVycl9idWYsIHNpemVvZiBlcnJfYnVmLAotCQkJICItLXNwYXJzZSBjYW5ub3Qg YmUgdXNlZCB3aXRoIC0taW5wbGFjZVxuIik7Ci0JCXJldHVybiAwOwotCX0KLQogCWlmIChhcHBl bmRfbW9kZSkgewogCQlpZiAod2hvbGVfZmlsZSA+IDApIHsKIAkJCXNucHJpbnRmKGVycl9idWYs IHNpemVvZiBlcnJfYnVmLApkaWZmIC0tZ2l0IGEvcmVjZWl2ZXIuYyBiL3JlY2VpdmVyLmMKaW5k ZXggZjliOTdkZC4uYmVkNTMyOCAxMDA2NDQKLS0tIGEvcmVjZWl2ZXIuYworKysgYi9yZWNlaXZl ci5jCkBAIC00OSw2ICs0OSw3IEBAIGV4dGVybiBpbnQgc3BhcnNlX2ZpbGVzOwogZXh0ZXJuIGlu dCBwcmVhbGxvY2F0ZV9maWxlczsKIGV4dGVybiBpbnQga2VlcF9wYXJ0aWFsOwogZXh0ZXJuIGlu dCBjaGVja3N1bV9zZWVkOworZXh0ZXJuIGludCB3aG9sZV9maWxlOwogZXh0ZXJuIGludCBpbnBs YWNlOwogZXh0ZXJuIGludCBhbGxvd2VkX2x1bGw7CiBleHRlcm4gaW50IGRlbGF5X3VwZGF0ZXM7 CkBAIC02MSw2ICs2Miw5IEBAIGV4dGVybiBjaGFyICpiYXNpc19kaXJbTUFYX0JBU0lTX0RJUlMr MV07CiBleHRlcm4gY2hhciBzZW5kZXJfZmlsZV9zdW1bTUFYX0RJR0VTVF9MRU5dOwogZXh0ZXJu IHN0cnVjdCBmaWxlX2xpc3QgKmN1cl9mbGlzdCwgKmZpcnN0X2ZsaXN0LCAqZGlyX2ZsaXN0Owog ZXh0ZXJuIGZpbHRlcl9ydWxlX2xpc3QgZGFlbW9uX2ZpbHRlcl9saXN0OworI2lmZGVmIFNVUFBP UlRfUFJFQUxMT0NBVElPTgorZXh0ZXJuIE9GRl9UIHByZWFsbG9jYXRlZF9sZW47CisjZW5kaWYK IAogc3RhdGljIHN0cnVjdCBiaXRiYWcgKmRlbGF5ZWRfYml0cyA9IE5VTEw7CiBzdGF0aWMgaW50 IHBoYXNlID0gMCwgcmVkb2luZyA9IDA7CkBAIC0yNDEsMjIgKzI0NSwyNSBAQCBzdGF0aWMgaW50 IHJlY2VpdmVfZGF0YShpbnQgZl9pbiwgY2hhciAqZm5hbWVfciwgaW50IGZkX3IsIE9GRl9UIHNp emVfciwKIAljaGFyICpkYXRhOwogCWludDMyIGk7CiAJY2hhciAqbWFwID0gTlVMTDsKLSNpZmRl ZiBTVVBQT1JUX1BSRUFMTE9DQVRJT04KLSNpZmRlZiBQUkVBTExPQ0FURV9ORUVEU19UUlVOQ0FU RQotCU9GRl9UIHByZWFsbG9jYXRlZF9sZW4gPSAwOwotI2VuZGlmCiAKKyNpZmRlZiBTVVBQT1JU X1BSRUFMTE9DQVRJT04KIAlpZiAocHJlYWxsb2NhdGVfZmlsZXMgJiYgZmQgIT0gLTEgJiYgdG90 YWxfc2l6ZSA+IDAgJiYgKCFpbnBsYWNlIHx8IHRvdGFsX3NpemUgPiBzaXplX3IpKSB7CiAJCS8q IFRyeSB0byBwcmVhbGxvY2F0ZSBlbm91Z2ggc3BhY2UgZm9yIGZpbGUncyBldmVudHVhbCBsZW5n dGguICBDYW4KIAkJICogcmVkdWNlIGZyYWdtZW50YXRpb24gb24gZmlsZXN5c3RlbXMgbGlrZSBl eHQ0LCB4ZnMsIGFuZCBOVEZTLiAqLwotCQlpZiAoZG9fZmFsbG9jYXRlKGZkLCAwLCB0b3RhbF9z aXplKSA9PSAwKSB7Ci0jaWZkZWYgUFJFQUxMT0NBVEVfTkVFRFNfVFJVTkNBVEUKLQkJCXByZWFs bG9jYXRlZF9sZW4gPSB0b3RhbF9zaXplOwotI2VuZGlmCi0JCX0gZWxzZQorCQlpZiAoKHByZWFs bG9jYXRlZF9sZW4gPSBkb19mYWxsb2NhdGUoZmQsIDAsIHRvdGFsX3NpemUpKSA8IDApCiAJCQly c3lzZXJyKEZXQVJOSU5HLCBlcnJubywgImRvX2ZhbGxvY2F0ZSAlcyIsIGZ1bGxfZm5hbWUoZm5h bWUpKTsKLQl9CisJfSBlbHNlCisjZW5kaWYKKwlpZiAoaW5wbGFjZSkgeworI2lmZGVmIEhBVkVf RlRSVU5DQVRFCisJCS8qIFRoZSBtb3N0IGNvbXBhdGlibGUgd2F5IHRvIGNyZWF0ZSBhIHNwYXJz ZSBmaWxlIGlzIHRvIHN0YXJ0IHdpdGggbm8gbGVuZ3RoLiAqLworCQlpZiAoc3BhcnNlX2ZpbGVz ID4gMCAmJiB3aG9sZV9maWxlICYmIGZkID49IDAgJiYgZG9fZnRydW5jYXRlKGZkLCAwKSA9PSAw KQorCQkJcHJlYWxsb2NhdGVkX2xlbiA9IDA7CisJCWVsc2UKICNlbmRpZgorCQkJcHJlYWxsb2Nh dGVkX2xlbiA9IHNpemVfcjsKKwl9IGVsc2UKKwkJcHJlYWxsb2NhdGVkX2xlbiA9IDA7CiAKIAly ZWFkX3N1bV9oZWFkKGZfaW4sICZzdW0pOwogCkBAIC0zMTgsNyArMzI1LDcgQEAgc3RhdGljIGlu dCByZWNlaXZlX2RhdGEoaW50IGZfaW4sIGNoYXIgKmZuYW1lX3IsIGludCBmZF9yLCBPRkZfVCBz aXplX3IsCiAKIAkJCXN1bV91cGRhdGUoZGF0YSwgaSk7CiAKLQkJCWlmIChmZCAhPSAtMSAmJiB3 cml0ZV9maWxlKGZkLGRhdGEsaSkgIT0gaSkKKwkJCWlmIChmZCAhPSAtMSAmJiB3cml0ZV9maWxl KGZkLCAwLCBvZmZzZXQsIGRhdGEsIGkpICE9IGkpCiAJCQkJZ290byByZXBvcnRfd3JpdGVfZXJy b3I7CiAJCQlvZmZzZXQgKz0gaTsKIAkJCWNvbnRpbnVlOwpAQCAtMzQ4LDM3ICszNTUsMzMgQEAg c3RhdGljIGludCByZWNlaXZlX2RhdGEoaW50IGZfaW4sIGNoYXIgKmZuYW1lX3IsIGludCBmZF9y LCBPRkZfVCBzaXplX3IsCiAKIAkJaWYgKHVwZGF0aW5nX2Jhc2lzX29yX2VxdWl2KSB7CiAJCQlp ZiAob2Zmc2V0ID09IG9mZnNldDIgJiYgZmQgIT0gLTEpIHsKLQkJCQlPRkZfVCBwb3M7Ci0JCQkJ aWYgKGZsdXNoX3dyaXRlX2ZpbGUoZmQpIDwgMCkKKwkJCQlpZiAoc2tpcF9tYXRjaGVkKGZkLCBv ZmZzZXQsIG1hcCwgbGVuKSA8IDApCiAJCQkJCWdvdG8gcmVwb3J0X3dyaXRlX2Vycm9yOwogCQkJ CW9mZnNldCArPSBsZW47Ci0JCQkJaWYgKChwb3MgPSBkb19sc2VlayhmZCwgbGVuLCBTRUVLX0NV UikpICE9IG9mZnNldCkgewotCQkJCQlyc3lzZXJyKEZFUlJPUl9YRkVSLCBlcnJubywKLQkJCQkJ CSJsc2VlayBvZiAlcyByZXR1cm5lZCAlcywgbm90ICVzIiwKLQkJCQkJCWZ1bGxfZm5hbWUoZm5h bWUpLAotCQkJCQkJYmlnX251bShwb3MpLCBiaWdfbnVtKG9mZnNldCkpOwotCQkJCQlleGl0X2Ns ZWFudXAoUkVSUl9GSUxFSU8pOwotCQkJCX0KIAkJCQljb250aW51ZTsKIAkJCX0KIAkJfQotCQlp ZiAoZmQgIT0gLTEgJiYgbWFwICYmIHdyaXRlX2ZpbGUoZmQsIG1hcCwgbGVuKSAhPSAoaW50KWxl bikKKwkJaWYgKGZkICE9IC0xICYmIG1hcCAmJiB3cml0ZV9maWxlKGZkLCAwLCBvZmZzZXQsIG1h cCwgbGVuKSAhPSAoaW50KWxlbikKIAkJCWdvdG8gcmVwb3J0X3dyaXRlX2Vycm9yOwogCQlvZmZz ZXQgKz0gbGVuOwogCX0KIAotCWlmIChmbHVzaF93cml0ZV9maWxlKGZkKSA8IDApCi0JCWdvdG8g cmVwb3J0X3dyaXRlX2Vycm9yOworCWlmIChmZCAhPSAtMSAmJiBvZmZzZXQgPiAwKSB7CisJCWlm IChzcGFyc2VfZmlsZXMgPiAwKSB7CisJCQlpZiAoc3BhcnNlX2VuZChmZCwgb2Zmc2V0KSAhPSAw KQorCQkJCWdvdG8gcmVwb3J0X3dyaXRlX2Vycm9yOworCQl9IGVsc2UgaWYgKGZsdXNoX3dyaXRl X2ZpbGUoZmQpIDwgMCkgeworCQkgICAgcmVwb3J0X3dyaXRlX2Vycm9yOgorCQkJcnN5c2VycihG RVJST1JfWEZFUiwgZXJybm8sICJ3cml0ZSBmYWlsZWQgb24gJXMiLCBmdWxsX2ZuYW1lKGZuYW1l KSk7CisJCQlleGl0X2NsZWFudXAoUkVSUl9GSUxFSU8pOworCQl9CisJfQogCiAjaWZkZWYgSEFW RV9GVFJVTkNBVEUKIAkvKiBpbnBsYWNlOiBOZXcgZGF0YSBjb3VsZCBiZSBzaG9ydGVyIHRoYW4g b2xkIGRhdGEuCiAJICogcHJlYWxsb2NhdGVfZmlsZXM6IHRvdGFsX3NpemUgY291bGQgaGF2ZSBi ZWVuIGFuIG92ZXJlc3RpbWF0ZS4KIAkgKiAgICAgQ3V0IG9mZiBhbnkgZXh0cmEgcHJlYWxsb2Nh dGVkIHplcm9zIGZyb20gZGVzdCBmaWxlLiAqLwotCWlmICgoaW5wbGFjZQotI2lmZGVmIFBSRUFM TE9DQVRFX05FRURTX1RSVU5DQVRFCi0JICB8fCBwcmVhbGxvY2F0ZWRfbGVuID4gb2Zmc2V0Ci0j ZW5kaWYKLQkgICkgJiYgZmQgIT0gLTEgJiYgZG9fZnRydW5jYXRlKGZkLCBvZmZzZXQpIDwgMCkg eworCWlmICgoaW5wbGFjZSB8fCBwcmVhbGxvY2F0ZWRfbGVuID4gb2Zmc2V0KSAmJiBmZCAhPSAt MSAmJiBkb19mdHJ1bmNhdGUoZmQsIG9mZnNldCkgPCAwKSB7CiAJCXJzeXNlcnIoRkVSUk9SX1hG RVIsIGVycm5vLCAiZnRydW5jYXRlIGZhaWxlZCBvbiAlcyIsCiAJCQlmdWxsX2ZuYW1lKGZuYW1l KSk7CiAJfQpAQCAtMzg3LDEzICszOTAsNiBAQCBzdGF0aWMgaW50IHJlY2VpdmVfZGF0YShpbnQg Zl9pbiwgY2hhciAqZm5hbWVfciwgaW50IGZkX3IsIE9GRl9UIHNpemVfciwKIAlpZiAoSU5GT19H VEUoUFJPR1JFU1MsIDEpKQogCQllbmRfcHJvZ3Jlc3ModG90YWxfc2l6ZSk7CiAKLQlpZiAoZmQg IT0gLTEgJiYgb2Zmc2V0ID4gMCAmJiBzcGFyc2VfZW5kKGZkLCBvZmZzZXQpICE9IDApIHsKLQkg ICAgcmVwb3J0X3dyaXRlX2Vycm9yOgotCQlyc3lzZXJyKEZFUlJPUl9YRkVSLCBlcnJubywgIndy aXRlIGZhaWxlZCBvbiAlcyIsCi0JCQlmdWxsX2ZuYW1lKGZuYW1lKSk7Ci0JCWV4aXRfY2xlYW51 cChSRVJSX0ZJTEVJTyk7Ci0JfQotCiAJY2hlY2tzdW1fbGVuID0gc3VtX2VuZChmaWxlX3N1bTEp OwogCiAJaWYgKG1hcGJ1ZikKZGlmZiAtLWdpdCBhL3JzeW5jLnlvIGIvcnN5bmMueW8KaW5kZXgg YmZlNDNiOS4uZDFlNmZkZiAxMDA2NDQKLS0tIGEvcnN5bmMueW8KKysrIGIvcnN5bmMueW8KQEAg LTM3Niw3ICszNzYsNyBAQCB0byB0aGUgZGV0YWlsZWQgZGVzY3JpcHRpb24gYmVsb3cgZm9yIGEg Y29tcGxldGUgZGVzY3JpcHRpb24uICB2ZXJiKAogIC1KLCAtLW9taXQtbGluay10aW1lcyAgICAg ICBvbWl0IHN5bWxpbmtzIGZyb20gLS10aW1lcwogICAgICAtLXN1cGVyICAgICAgICAgICAgICAg ICByZWNlaXZlciBhdHRlbXB0cyBzdXBlci11c2VyIGFjdGl2aXRpZXMKICAgICAgLS1mYWtlLXN1 cGVyICAgICAgICAgICAgc3RvcmUvcmVjb3ZlciBwcml2aWxlZ2VkIGF0dHJzIHVzaW5nIHhhdHRy cwotIC1TLCAtLXNwYXJzZSAgICAgICAgICAgICAgICBoYW5kbGUgc3BhcnNlIGZpbGVzIGVmZmlj aWVudGx5CisgLVMsIC0tc3BhcnNlICAgICAgICAgICAgICAgIHR1cm4gc2VxdWVuY2VzIG9mIG51 bGxzIGludG8gc3BhcnNlIGJsb2NrcwogICAgICAtLXByZWFsbG9jYXRlICAgICAgICAgICBhbGxv Y2F0ZSBkZXN0IGZpbGVzIGJlZm9yZSB3cml0aW5nCiAgLW4sIC0tZHJ5LXJ1biAgICAgICAgICAg ICAgIHBlcmZvcm0gYSB0cmlhbCBydW4gd2l0aCBubyBjaGFuZ2VzIG1hZGUKICAtVywgLS13aG9s ZS1maWxlICAgICAgICAgICAgY29weSBmaWxlcyB3aG9sZSAody9vIGRlbHRhLXhmZXIgYWxnb3Jp dGhtKQpAQCAtODczLDkgKzg3Myw3IEBAIHRoZSBzYW1lIG9yIGxvbmdlciB0aGFuIHRoZSBzaXpl IG9uIHRoZSBzZW5kZXIsIHRoZSBmaWxlIGlzIHNraXBwZWQuICBUaGlzCiBkb2VzIG5vdCBpbnRl cmZlcmUgd2l0aCB0aGUgdXBkYXRpbmcgb2YgYSBmaWxlJ3Mgbm9uLWNvbnRlbnQgYXR0cmlidXRl cwogKGUuZy4gcGVybWlzc2lvbnMsIG93bmVyc2hpcCwgZXRjLikgd2hlbiB0aGUgZmlsZSBkb2Vz IG5vdCBuZWVkIHRvIGJlCiB0cmFuc2ZlcnJlZCwgbm9yIGRvZXMgaXQgYWZmZWN0IHRoZSB1cGRh dGluZyBvZiBhbnkgbm9uLXJlZ3VsYXIgZmlsZXMuCi1JbXBsaWVzIGJmKC0taW5wbGFjZSksCi1i dXQgZG9lcyBub3QgY29uZmxpY3Qgd2l0aCBiZigtLXNwYXJzZSkgKHNpbmNlIGl0IGlzIGFsd2F5 cyBleHRlbmRpbmcgYQotZmlsZSdzIGxlbmd0aCkuCitJbXBsaWVzIGJmKC0taW5wbGFjZSkuCiAK IFRoZSB1c2Ugb2YgYmYoLS1hcHBlbmQpIGNhbiBiZSBkYW5nZXJvdXMgaWYgeW91IGFyZW4ndCAx MDAlIHN1cmUgdGhhdCB0aGUgZmlsZXMKIHRoYXQgYXJlIGxvbmdlciBoYXZlIG9ubHkgZ3Jvd24g YnkgdGhlIGFwcGVuZGluZyBvZiBkYXRhIG9udG8gdGhlIGVuZC4gIFlvdQpAQCAtMTI1MiwyMCAr MTI1MCwzMCBAQCBUaGlzIG9wdGlvbiBpcyBvdmVycmlkZGVuIGJ5IGJvdGggYmYoLS1zdXBlcikg YW5kIGJmKC0tbm8tc3VwZXIpLgogU2VlIGFsc28gdGhlICJmYWtlIHN1cGVyIiBzZXR0aW5nIGlu IHRoZSBkYWVtb24ncyByc3luY2QuY29uZiBmaWxlLgogCiBkaXQoYmYoLVMsIC0tc3BhcnNlKSkg VHJ5IHRvIGhhbmRsZSBzcGFyc2UgZmlsZXMgZWZmaWNpZW50bHkgc28gdGhleSB0YWtlCi11cCBs ZXNzIHNwYWNlIG9uIHRoZSBkZXN0aW5hdGlvbi4gIENvbmZsaWN0cyB3aXRoIGJmKC0taW5wbGFj ZSkgYmVjYXVzZSBpdCdzCi1ub3QgcG9zc2libGUgdG8gb3ZlcndyaXRlIGRhdGEgaW4gYSBzcGFy c2UgZmFzaGlvbi4KK3VwIGxlc3Mgc3BhY2Ugb24gdGhlIGRlc3RpbmF0aW9uLiAgSWYgY29tYmlu ZWQgd2l0aCBiZigtLWlucGxhY2UpIHRoZQorZmlsZSBjcmVhdGVkIG1pZ2h0IG5vdCBlbmQgdXAg d2l0aCBzcGFyc2UgYmxvY2tzIHdpdGggc29tZSBjb21iaW5hdGlvbnMKK29mIGtlcm5lbCB2ZXJz aW9uIGFuZC9vciBmaWxlc3lzdGVtIHR5cGUuICBJZiBiZigtLXdob2xlLWZpbGUpIGlzIGluCitl ZmZlY3QgKGUuZy4gZm9yIGEgbG9jYWwgY29weSkgdGhlbiBpdCB3aWxsIGFsd2F5cyB3b3JrIGJl Y2F1c2UgcnN5bmMKK3RydW5jYXRlcyB0aGUgZmlsZSBwcmlvciB0byB3cml0aW5nIG91dCB0aGUg dXBkYXRlZCB2ZXJzaW9uLgorCitOb3RlIHRoYXQgdmVyc2lvbnMgb2YgcnN5bmMgb2xkZXIgdGhh biAzLjEuMyB3aWxsIHJlamVjdCB0aGUgY29tYmluYXRpb24gb2YKK2JmKC0tc3BhcnNlKSBhbmQg YmYoLS1pbnBsYWNlKS4KIAogZGl0KGJmKC0tcHJlYWxsb2NhdGUpKSBUaGlzIHRlbGxzIHRoZSBy ZWNlaXZlciB0byBhbGxvY2F0ZSBlYWNoIGRlc3RpbmF0aW9uCi1maWxlIHRvIGl0cyBldmVudHVh bCBzaXplIGJlZm9yZSB3cml0aW5nIGRhdGEgdG8gdGhlIGZpbGUuICBSc3luYyB3aWxsIG9ubHkg dXNlCi10aGUgcmVhbCBmaWxlc3lzdGVtLWxldmVsIHByZWFsbG9jYXRpb24gc3VwcG9ydCBwcm92 aWRlZCBieSBMaW51eCdzCitmaWxlIHRvIGl0cyBldmVudHVhbCBzaXplIGJlZm9yZSB3cml0aW5n IGRhdGEgdG8gdGhlIGZpbGUuICBSc3luYyB3aWxsIG9ubHkKK3VzZSB0aGUgcmVhbCBmaWxlc3lz dGVtLWxldmVsIHByZWFsbG9jYXRpb24gc3VwcG9ydCBwcm92aWRlZCBieSBMaW51eCdzCiBiZihm YWxsb2NhdGUpKDIpIHN5c3RlbSBjYWxsIG9yIEN5Z3dpbidzIGJmKHBvc2l4X2ZhbGxvY2F0ZSko MyksIG5vdCB0aGUgc2xvdwotZ2xpYmMgaW1wbGVtZW50YXRpb24gdGhhdCB3cml0ZXMgYSB6ZXJv IGJ5dGUgaW50byBlYWNoIGJsb2NrLgorZ2xpYmMgaW1wbGVtZW50YXRpb24gdGhhdCB3cml0ZXMg YSBudWxsIGJ5dGUgaW50byBlYWNoIGJsb2NrLgogCiBXaXRob3V0IHRoaXMgb3B0aW9uLCBsYXJn ZXIgZmlsZXMgbWF5IG5vdCBiZSBlbnRpcmVseSBjb250aWd1b3VzIG9uIHRoZQogZmlsZXN5c3Rl bSwgYnV0IHdpdGggdGhpcyBvcHRpb24gcnN5bmMgd2lsbCBwcm9iYWJseSBjb3B5IG1vcmUgc2xv d2x5LiAgSWYgdGhlCiBkZXN0aW5hdGlvbiBpcyBub3QgYW4gZXh0ZW50LXN1cHBvcnRpbmcgZmls ZXN5c3RlbSAoc3VjaCBhcyBleHQ0LCB4ZnMsIE5URlMsCiBldGMuKSwgdGhpcyBvcHRpb24gbWF5 IGhhdmUgbm8gcG9zaXRpdmUgZWZmZWN0IGF0IGFsbC4KIAorSWYgY29tYmluZWQgd2l0aCBiZigt LXNwYXJzZSksIHRoZSBmaWxlIHdpbGwgb25seSBoYXZlIHNwYXJzZSBibG9ja3MgKGFzCitvcHBv c2VkIHRvIGFsbG9jYXRlZCBzZXF1ZW5jZXMgb2YgbnVsbCBieXRlcykgaWYgdGhlIGtlcm5lbCB2 ZXJzaW9uIGFuZAorZmlsZXN5c3RlbSB0eXBlIHN1cHBvcnQgY3JlYXRpbmcgaG9sZXMgaW4gdGhl IGFsbG9jYXRlZCBkYXRhLgorCiBkaXQoYmYoLW4sIC0tZHJ5LXJ1bikpIFRoaXMgbWFrZXMgcnN5 bmMgcGVyZm9ybSBhIHRyaWFsIHJ1biB0aGF0IGRvZXNuJ3QKIG1ha2UgYW55IGNoYW5nZXMgKGFu ZCBwcm9kdWNlcyBtb3N0bHkgdGhlIHNhbWUgb3V0cHV0IGFzIGEgcmVhbCBydW4pLiAgSXQKIGlz IG1vc3QgY29tbW9ubHkgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZSBiZigtdiwgLS12ZXJi b3NlKSBhbmQvb3IKZGlmZiAtLWdpdCBhL3N5c2NhbGwuYyBiL3N5c2NhbGwuYwppbmRleCBlY2Nh MmYxLi5mYTUzYjYzIDEwMDY0NAotLS0gYS9zeXNjYWxsLmMKKysrIGIvc3lzY2FsbC5jCkBAIC0z OCw2ICszOCw4IEBAIGV4dGVybiBpbnQgYW1fcm9vdDsKIGV4dGVybiBpbnQgYW1fc2VuZGVyOwog ZXh0ZXJuIGludCByZWFkX29ubHk7CiBleHRlcm4gaW50IGxpc3Rfb25seTsKK2V4dGVybiBpbnQg aW5wbGFjZTsKK2V4dGVybiBpbnQgcHJlYWxsb2NhdGVfZmlsZXM7CiBleHRlcm4gaW50IHByZXNl cnZlX3Blcm1zOwogZXh0ZXJuIGludCBwcmVzZXJ2ZV9leGVjdXRhYmlsaXR5OwogCkBAIC00MjMs MjcgKzQyNSw4MCBAQCBpbnQgZG9fdXRpbWUoY29uc3QgY2hhciAqZm5hbWUsIHRpbWVfdCBtb2R0 aW1lLCBVTlVTRUQodWludDMyIG1vZF9uc2VjKSkKICNlbmRpZgogCiAjaWZkZWYgU1VQUE9SVF9Q UkVBTExPQ0FUSU9OCi1pbnQgZG9fZmFsbG9jYXRlKGludCBmZCwgT0ZGX1Qgb2Zmc2V0LCBPRkZf VCBsZW5ndGgpCi17CiAjaWZkZWYgRkFMTE9DX0ZMX0tFRVBfU0laRQogI2RlZmluZSBET19GQUxM T0NfT1BUSU9OUyBGQUxMT0NfRkxfS0VFUF9TSVpFCiAjZWxzZQogI2RlZmluZSBET19GQUxMT0Nf T1BUSU9OUyAwCiAjZW5kaWYKKworT0ZGX1QgZG9fZmFsbG9jYXRlKGludCBmZCwgT0ZGX1Qgb2Zm c2V0LCBPRkZfVCBsZW5ndGgpCit7CisJaW50IG9wdHMgPSBpbnBsYWNlIHx8IHByZWFsbG9jYXRl X2ZpbGVzID8gMCA6IERPX0ZBTExPQ19PUFRJT05TOworCWludCByZXQ7CiAJUkVUVVJOX0VSUk9S X0lGKGRyeV9ydW4sIDApOwogCVJFVFVSTl9FUlJPUl9JRl9ST19PUl9MTzsKKwlpZiAobGVuZ3Ro ICYgMSkgLyogbWFrZSB0aGUgbGVuZ3RoIG5vdCBtYXRjaCB0aGUgZGVzaXJlZCBsZW5ndGggKi8K KwkJbGVuZ3RoKys7CisJZWxzZQorCQlsZW5ndGgtLTsKICNpZiBkZWZpbmVkIEhBVkVfRkFMTE9D QVRFCi0JcmV0dXJuIGZhbGxvY2F0ZShmZCwgRE9fRkFMTE9DX09QVElPTlMsIG9mZnNldCwgbGVu Z3RoKTsKKwlyZXQgPSBmYWxsb2NhdGUoZmQsIG9wdHMsIG9mZnNldCwgbGVuZ3RoKTsKICNlbGlm IGRlZmluZWQgSEFWRV9TWVNfRkFMTE9DQVRFCi0JcmV0dXJuIHN5c2NhbGwoU1lTX2ZhbGxvY2F0 ZSwgZmQsIERPX0ZBTExPQ19PUFRJT05TLCAobG9mZl90KW9mZnNldCwgKGxvZmZfdClsZW5ndGgp OworCXJldCA9IHN5c2NhbGwoU1lTX2ZhbGxvY2F0ZSwgZmQsIG9wdHMsIChsb2ZmX3Qpb2Zmc2V0 LCAobG9mZl90KWxlbmd0aCk7CiAjZWxpZiBkZWZpbmVkIEhBVkVfRUZGSUNJRU5UX1BPU0lYX0ZB TExPQ0FURQotCXJldHVybiBwb3NpeF9mYWxsb2NhdGUoZmQsIG9mZnNldCwgbGVuZ3RoKTsKKwly ZXQgPSBwb3NpeF9mYWxsb2NhdGUoZmQsIG9mZnNldCwgbGVuZ3RoKTsKICNlbHNlCiAjZXJyb3Ig Q29kaW5nIGVycm9yIGluIFNVUFBPUlRfUFJFQUxMT0NBVElPTiBsb2dpYy4KICNlbmRpZgorCWlm IChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCWlmIChvcHRzID09IDApIHsKKwkJU1RSVUNUX1NU QVQgc3Q7CisJCWlmIChkb19mc3RhdChmZCwgJnN0KSA8IDApCisJCQlyZXR1cm4gbGVuZ3RoOwor CQlyZXR1cm4gc3Quc3RfYmxvY2tzICogNTEyOworCX0KKwlyZXR1cm4gMDsKIH0KICNlbmRpZgog CisvKiBQdW5jaCBhIGhvbGUgYXQgcG9zIGZvciBsZW4gYnl0ZXMuIFRoZSBjdXJyZW50IGZpbGUg cG9zaXRpb24gbXVzdCBiZSBhdCBwb3MgYW5kIHdpbGwgYmUKKyAqIGNoYW5nZWQgdG8gYmUgYXQg cG9zICsgbGVuLiAqLworaW50IGRvX3B1bmNoX2hvbGUoaW50IGZkLCBVTlVTRUQoT0ZGX1QgcG9z KSwgaW50IGxlbikKK3sKKyNpZmRlZiBIQVZFX0ZBTExPQ0FURQorIyBpZmRlZiBIQVZFX0ZBTExP Q19GTF9QVU5DSF9IT0xFCisJaWYgKGZhbGxvY2F0ZShmZCwgRkFMTE9DX0ZMX1BVTkNIX0hPTEUg fCBGQUxMT0NfRkxfS0VFUF9TSVpFLCBwb3MsIGxlbikgPT0gMCkgeworCQlpZiAoZG9fbHNlZWso ZmQsIGxlbiwgU0VFS19DVVIpICE9IHBvcyArIGxlbikKKwkJCXJldHVybiAtMTsKKwkJcmV0dXJu IDA7CisJfQorIyBlbmRpZgorIyBpZmRlZiBIQVZFX0ZBTExPQ19GTF9aRVJPX1JBTkdFCisJaWYg KGZhbGxvY2F0ZShmZCwgRkFMTE9DX0ZMX1pFUk9fUkFOR0UsIHBvcywgbGVuKSA9PSAwKSB7CisJ CWlmIChkb19sc2VlayhmZCwgbGVuLCBTRUVLX0NVUikgIT0gcG9zICsgbGVuKQorCQkJcmV0dXJu IC0xOworCQlyZXR1cm4gMDsKKwl9CisjIGVuZGlmCisjZW5kaWYKKwl7CisJCWNoYXIgemVyb3Nb NDA5Nl07CisJCW1lbXNldCh6ZXJvcywgMCwgc2l6ZW9mIHplcm9zKTsKKwkJd2hpbGUgKGxlbiA+ IDApIHsKKwkJCWludCBjaHVuayA9IGxlbiA+IChpbnQpc2l6ZW9mIHplcm9zID8gKGludClzaXpl b2YgemVyb3MgOiBsZW47CisJCQlpbnQgd3JvdGUgPSB3cml0ZShmZCwgemVyb3MsIGNodW5rKTsK KwkJCWlmICh3cm90ZSA8PSAwKSB7CisJCQkJaWYgKHdyb3RlIDwgMCAmJiBlcnJubyA9PSBFSU5U UikKKwkJCQkJY29udGludWU7CisJCQkJcmV0dXJuIC0xOworCQkJfQorCQkJbGVuIC09IHdyb3Rl OworCQl9CisJfQorCXJldHVybiAwOworfQorCiBpbnQgZG9fb3Blbl9ub2ZvbGxvdyhjb25zdCBj aGFyICpwYXRobmFtZSwgaW50IGZsYWdzKQogewogI2lmbmRlZiBPX05PRk9MTE9XCmRpZmYgLS1n aXQgYS90X3N0dWIuYyBiL3Rfc3R1Yi5jCmluZGV4IDI2OTUxYTYuLmZjMWVlM2IgMTAwNjQ0Ci0t LSBhL3Rfc3R1Yi5jCisrKyBiL3Rfc3R1Yi5jCkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNsdWRl ICJyc3luYy5oIgogCitpbnQgaW5wbGFjZSA9IDA7CiBpbnQgbW9kaWZ5X3dpbmRvdyA9IDA7CiBp bnQgcHJlYWxsb2NhdGVfZmlsZXMgPSAwOwoKCi0tIApUaGUgcnN5bmMgcmVwb3NpdG9yeS4KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnJzeW5jLWN2cyBt YWlsaW5nIGxpc3QKcnN5bmMtY3ZzQGxpc3RzLnNhbWJhLm9yZwpodHRwczovL2xpc3RzLnNhbWJh Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3JzeW5jLWN2cwo=