ZGlmZiAtLWdpdCBhL3NyYy90Y3Bzb2NrZXRzL1RDUFN0cmVhbS5oIGIvc3JjL3RjcHNvY2tldHMvVENQU3RyZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjFlZjZmZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90Y3Bzb2NrZXRzL1RDUFN0cmVhbS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgICBUQ1BTdHJlYW0uaAorCisgICBUQ1BTdHJlYW0gY2xhc3MgaW50ZXJmYWNlLiBUQ1BTdHJlYW0gcHJvdmlkZXMgbWV0aG9kcyB0byB0cmFzbmZlcgorICAgZGF0YSBiZXR3ZWVuIHBlZXJzIG92ZXIgYSBUQ1AvSVAgY29ubmVjdGlvbi4KKworICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgIENvcHlyaWdodCCpIDIwMTMgW1ZpYyBIYXJncmF2ZSAtIGh0dHA6Ly92aWNoYXJncmF2ZS5jb21dCisKKyAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworCisjaWZuZGVmIFRDUFNPQ0tFVFNfVENQU1RSRUFNX0hfCisjZGVmaW5lIFRDUFNPQ0tFVFNfVENQU1RSRUFNX0hfCisKKyNpbmNsdWRlIDxjc3RkZGVmPgorI2luY2x1ZGUgPHN0cmluZz4KKworI2lmZGVmIF9XSU4zMgorI2luY2x1ZGUgPHdpbnNvY2syLmg+CisjZWxzZQorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNlbmRpZgorCisjaW5jbHVkZSAiTmV0d29ya1N0cmVhbS5oIgorCitjbGFzcyBUQ1BTdHJlYW0gOiBwdWJsaWMgTmV0d29ya1N0cmVhbSB7CisgIGludCBtX3NkOworICBzdGQ6OnN0cmluZyBtX3BlZXJJUDsKKyAgaW50IG1fcGVlclBvcnQ7CisKKyBwdWJsaWM6CisgIGZyaWVuZCBjbGFzcyBUQ1BBY2NlcHRvcjsKKyAgZnJpZW5kIGNsYXNzIFRDUENvbm5lY3RvcjsKKworICB+VENQU3RyZWFtKCk7CisKKyAgc3RkOjpzaXplX3Qgc2VuZChjb25zdCBjaGFyKiBidWZmZXIsIHN0ZDo6c2l6ZV90IGxlbiwgRXJyb3IqIGVycikgb3ZlcnJpZGU7CisgIHN0ZDo6c2l6ZV90IHJlY2VpdmUoY2hhciogYnVmZmVyLCBzdGQ6OnNpemVfdCBsZW4sIEVycm9yKiBlcnIsCisgICAgICAgICAgICAgICAgICAgICAgaW50IHRpbWVvdXQgPSAwKSBvdmVycmlkZTsKKyAgdm9pZCBjbG9zZSgpIG92ZXJyaWRlOworCisgIGxsdm06OlN0cmluZ1JlZiBnZXRQZWVySVAoKSBjb25zdCBvdmVycmlkZTsKKyAgaW50IGdldFBlZXJQb3J0KCkgY29uc3Qgb3ZlcnJpZGU7CisgIHZvaWQgc2V0Tm9EZWxheSgpIG92ZXJyaWRlOworCisgIFRDUFN0cmVhbShjb25zdCBUQ1BTdHJlYW0mIHN0cmVhbSkgPSBkZWxldGU7CisgIFRDUFN0cmVhbSYgb3BlcmF0b3I9KGNvbnN0IFRDUFN0cmVhbSYpID0gZGVsZXRlOworIHByaXZhdGU6CisgIGJvb2wgV2FpdEZvclJlYWRFdmVudChpbnQgdGltZW91dCk7CisKKyAgVENQU3RyZWFtKGludCBzZCwgc3RydWN0IHNvY2thZGRyX2luKiBhZGRyZXNzKTsKKyAgVENQU3RyZWFtKCkgPSBkZWxldGU7Cit9OworCisjZW5kaWYK