From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Delete upstreamed patch Date: Sun, 31 May 2026 02:07:33 GMT Message-ID: <178019325338.1.16346717093295816911.rpms-ibus-dab831e141bb@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: dab831e141bb288b172e0764877247f6a4af0699 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBhdXRvdG9vbApDb21taXQgOiBkYWI4MzFlMTQxYmIyODhiMTcyZTA3NjQ4NzcyNDdmNmE0YWYw Njk5CkF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgpEYXRlICAg OiAyMDIxLTAyLTIyVDAwOjQ5OjUxKzA5OjAwClN0YXRzICA6ICswLy0xODg4IGluIDEgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy9kYWI4 MzFlMTQxYmIyODhiMTcyZTA3NjQ4NzcyNDdmNmE0YWYwNjk5P2JyYW5jaD1hdXRvdG9vbAoKTG9n OgpEZWxldGUgdXBzdHJlYW1lZCBwYXRjaAoKLS0tCmRpZmYgLS1naXQgYS9pYnVzLUhFQUQucGF0 Y2ggYi9pYnVzLUhFQUQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlM2Fh ZGYuLjAwMDAwMDAKLS0tIGEvaWJ1cy1IRUFELnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTg4 OCArMCwwIEBACi1Gcm9tIGRkNGNjNWIwMjhjMzVmOWJiOGZhOWQzYmRjOGYyNmJjZGZjNDNkNDAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJh MUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDMwIFNlcCAyMDIwIDIwOjM1OjIzICswOTAwCi1TdWJq ZWN0OiBbUEFUQ0hdIHVpL2d0azM6IEZpeCBhcmd1bWVudHMgaW4gR0xpYi5EQnVzU2lnbmFsQ2Fs bGJhY2sgZm9yIFZhbGEKLSAwLjUwCi0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVz L2lzc3Vlcy8yMjY1Ci0tLS0KLSB1aS9ndGszL2FwcGxpY2F0aW9uLnZhbGEgfCAyMiArKysrKysr KysrKy0tLS0tLS0tLS0tCi0gdWkvZ3RrMy9leHRlbnNpb24udmFsYSAgIHwgMjIgKysrKysrKysr KystLS0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMjIgZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS91aS9ndGszL2FwcGxpY2F0aW9uLnZhbGEgYi91aS9n dGszL2FwcGxpY2F0aW9uLnZhbGEKLWluZGV4IGNjOWVlNTRjLi5kYTY1MzAxYiAxMDA2NDQKLS0t LSBhL3VpL2d0azMvYXBwbGljYXRpb24udmFsYQotKysrIGIvdWkvZ3RrMy9hcHBsaWNhdGlvbi52 YWxhCi1AQCAtMyw3ICszLDcgQEAKLSAgKiBpYnVzIC0gVGhlIElucHV0IEJ1cwotICAqCi0gICog Q29weXJpZ2h0KGMpIDIwMTEgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0t ICogQ29weXJpZ2h0KGMpIDIwMTcgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+Ci0rICogQ29weXJpZ2h0KGMpIDIwMTctMjAyMCBUYWthbyBGdWppd2FyYSA8dGFrYW8u ZnVqaXdhcmExQGdtYWlsLmNvbT4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtNjksMjIgKzY5 LDIyIEBAIGNsYXNzIEFwcGxpY2F0aW9uIHsKLSAgICAgfQotIAotICAgICBwcml2YXRlIHZvaWQg YnVzX25hbWVfYWNxdWlyZWRfY2IoREJ1c0Nvbm5lY3Rpb24gY29ubmVjdGlvbiwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBzZW5kZXJfbmFtZSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBvYmplY3RfcGF0aCwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBpbnRlcmZhY2VfbmFt ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBzaWduYWxf bmFtZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhbnQgcGFy YW1ldGVycykgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5n PyAgICAgICAgc2VuZGVyX25hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJpbmcgICAgICAgICBvYmplY3RfcGF0aCwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cmluZyAgICAgICAgIGludGVyZmFjZV9uYW1lLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nICAgICAgICAgc2lnbmFsX25hbWUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYW50ICAgICAgICBw YXJhbWV0ZXJzKSB7Ci0gICAgICAgICBkZWJ1Zygic2lnbmFsX25hbWUgPSAlcyIsIHNpZ25hbF9u YW1lKTsKLSAgICAgICAgIG1fcGFuZWwgPSBuZXcgUGFuZWwobV9idXMpOwotICAgICAgICAgbV9w YW5lbC5sb2FkX3NldHRpbmdzKCk7Ci0gICAgIH0KLSAKLSAgICAgcHJpdmF0ZSB2b2lkIGJ1c19u YW1lX2xvc3RfY2IoREJ1c0Nvbm5lY3Rpb24gY29ubmVjdGlvbiwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyaW5nIHNlbmRlcl9uYW1lLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJpbmcgb2JqZWN0X3BhdGgsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cmluZyBpbnRlcmZhY2VfbmFtZSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyaW5nIHNpZ25hbF9uYW1lLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBWYXJpYW50IHBhcmFtZXRlcnMpIHsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyaW5nPyAgICAgICAgc2VuZGVyX25hbWUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyAgICAgICAgIG9iamVjdF9wYXRoLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgICAgICAgICBpbnRlcmZhY2Vf bmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nICAgICAgICAg c2lnbmFsX25hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhbnQg ICAgICAgIHBhcmFtZXRlcnMpIHsKLSAgICAgICAgIC8vICJEZXN0cm95IiBkYnVzIG1ldGhvZCB3 YXMgY2FsbGVkIGJlZm9yZSB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZC4KLSAgICAgICAgIC8vICJE ZXN0cm95IiBkYnVzIG1ldGhvZCAtPiBpYnVzX3NlcnZpY2VfZGVzdHJveSgpCi0gICAgICAgICAv LyAtPiBnX2RidXNfY29ubmVjdGlvbl91bnJlZ2lzdGVyX29iamVjdCgpCi1kaWZmIC0tZ2l0IGEv dWkvZ3RrMy9leHRlbnNpb24udmFsYSBiL3VpL2d0azMvZXh0ZW5zaW9uLnZhbGEKLWluZGV4IGVh M2NkNDY0Li5hNmYyZThlNiAxMDA2NDQKLS0tLSBhL3VpL2d0azMvZXh0ZW5zaW9uLnZhbGEKLSsr KyBiL3VpL2d0azMvZXh0ZW5zaW9uLnZhbGEKLUBAIC0zLDcgKzMsNyBAQAotICAqIGlidXMgLSBU aGUgSW5wdXQgQnVzCi0gICoKLSAgKiBDb3B5cmlnaHQoYykgMjAxOCBQZW5nIEh1YW5nIDxzaGF3 bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQoYykgMjAxOCBUYWthbyBGdWppd2Fy YSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQoYykgMjAxOC0yMDIw IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotICAqCi0gICogVGhp cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgotICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKLUBAIC02NywyMiArNjcsMjIgQEAgY2xhc3MgRXh0ZW5zaW9uR3RrIDogR3RrLkFw cGxpY2F0aW9uIHsKLSAKLSAKLSAgICAgcHJpdmF0ZSB2b2lkIGJ1c19uYW1lX2FjcXVpcmVkX2Ni KERCdXNDb25uZWN0aW9uIGNvbm5lY3Rpb24sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJpbmcgc2VuZGVyX25hbWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJpbmcgb2JqZWN0X3BhdGgsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJpbmcgaW50ZXJmYWNlX25hbWUsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgc2lnbmFsX25hbWUsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYW50IHBhcmFtZXRlcnMpIHsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZz8gICAgICAgIHNlbmRlcl9uYW1l LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nICAgICAgICAg b2JqZWN0X3BhdGgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJp bmcgICAgICAgICBpbnRlcmZhY2VfbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cmluZyAgICAgICAgIHNpZ25hbF9uYW1lLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVmFyaWFudCAgICAgICAgcGFyYW1ldGVycykgewotICAgICAg ICAgZGVidWcoInNpZ25hbF9uYW1lID0gJXMiLCBzaWduYWxfbmFtZSk7Ci0gICAgICAgICBtX3Bh bmVsID0gbmV3IFBhbmVsQmluZGluZyhtX2J1cywgdGhpcyk7Ci0gICAgICAgICBtX3BhbmVsLmxv YWRfc2V0dGluZ3MoKTsKLSAgICAgfQotIAotICAgICBwcml2YXRlIHZvaWQgYnVzX25hbWVfbG9z dF9jYihEQnVzQ29ubmVjdGlvbiBjb25uZWN0aW9uLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJpbmcgc2VuZGVyX25hbWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cmluZyBvYmplY3RfcGF0aCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyaW5nIGludGVyZmFjZV9uYW1lLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJpbmcgc2lnbmFsX25hbWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFZhcmlhbnQgcGFyYW1ldGVycykgewotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJpbmc/ICAgICAgICBzZW5kZXJfbmFtZSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyaW5nICAgICAgICAgb2JqZWN0X3BhdGgsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyAgICAgICAgIGludGVyZmFjZV9uYW1lLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgICAgICAgICBzaWduYWxf bmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFudCAgICAgICAg cGFyYW1ldGVycykgewotICAgICAgICAgLy8gIkRlc3Ryb3kiIGRidXMgbWV0aG9kIHdhcyBjYWxs ZWQgYmVmb3JlIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkLgotICAgICAgICAgLy8gIkRlc3Ryb3ki IGRidXMgbWV0aG9kIC0+IGlidXNfc2VydmljZV9kZXN0cm95KCkKLSAgICAgICAgIC8vIC0+IGdf ZGJ1c19jb25uZWN0aW9uX3VucmVnaXN0ZXJfb2JqZWN0KCkKLS0tIAotMi4yNC4xCi0KLUZyb20g MDIzMzhjZTc1MWExZWQ1YjliODkyZmJhNTMwZWMyZmUyMTFkMzE0ZSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURh dGU6IEZyaSwgMjAgTm92IDIwMjAgMDg6NTg6NTIgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gZG9j czogRml4IG1ha2UgZGlzdAotCi0tLS0KLSBkb2NzL3JlZmVyZW5jZS9pYnVzL01ha2VmaWxlLmFt IHwgNiArKystLS0KLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGEvZG9jcy9yZWZlcmVuY2UvaWJ1cy9NYWtlZmlsZS5hbSBiL2Rv Y3MvcmVmZXJlbmNlL2lidXMvTWFrZWZpbGUuYW0KLWluZGV4IDFlY2UyMzRjLi4wZjMwN2JiZCAx MDA2NDQKLS0tLSBhL2RvY3MvcmVmZXJlbmNlL2lidXMvTWFrZWZpbGUuYW0KLSsrKyBiL2RvY3Mv cmVmZXJlbmNlL2lidXMvTWFrZWZpbGUuYW0KLUBAIC0zLDggKzMsOCBAQAotICMgaWJ1cyAtIFRo ZSBJbnB1dCBCdXMKLSAjCi0gIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxNSBQZW5nIEh1YW5nIDxz aGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0jIENvcHlyaWdodCAoYykgMjAwNy0yMDE1IFJlZCBI YXQsIEluYy4KLS0jIENvcHlyaWdodCAoYykgMjAxNSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVq aXdhcmExQGdtYWlsLmNvbT4KLSsjIENvcHlyaWdodCAoYykgMjAwNy0yMDIwIFJlZCBIYXQsIElu Yy4KLSsjIENvcHlyaWdodCAoYykgMjAxNS0yMDIwIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWpp d2FyYTFAZ21haWwuY29tPgotICMKLSAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0xNDcsNiArMTQ3LDYgQEAg dG1wbC1idWlsZC5zdGFtcDogdHJpbS1idWlsZC5zdGFtcCAgJChET0NfTU9EVUxFKS1kZWNsLnR4 dCAkKFNDQU5PQkpfRklMRVMpICQoRE8KLSAjIGNsZWFuLWxvY2FsOgotICMgCXJtIC1yZiB0bXBs ICR7RE9DX01PRFVMRSkKLSAKLS1DTEVBTkZJTEVTKz0gKi5zdGFtcAotK0NMRUFORklMRVMrPSAq YWN0aW9ucyAqLnN0YW1wCi0gCi0gLWluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9naXQubWsKLS0tIAot Mi4yNC4xCi0KLUZyb20gYWE1NThkZTgwYzIyNDkyMTc1Mzk5MDgwNmNmNTUzNDI4ZmJlNzA1NyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjAgTm92IDIwMjAgMDk6MDM6MzIgKzA5MDAKLVN1Ympl Y3Q6IFtQQVRDSF0gc3JjOiBGaXggdG8gYnVpbGQgZW1vamktKi5kaWN0IGluIENMRFIgMzgKLQot cm9vdC54bWwgYW5kIHNyX0N5cmwueG1sIGhhdmUgaW5jbHVkZWQgbm8gY29udGVudHMgc2luY2UK LWNsZHItZW1vamktYW5ub3RhdGlvbi0zOCBhbmQgbWFrZSBpbnN0YWxsIGZhaWxlZCBiZWNhdXNl IG9mIG5vCi1lbW9qaS1yb290LmRpY3QgYW5kIGVtb2ppLXNyLkN5cmwuZGljdC4KLU5vdyB0aGUg YnVpbGQgY3JlYXRlcyB0aGUgbm8gY29udGVudCBmaWxlcyBidXQgcmVtb3ZlIHRob3NlIGZpbGVz Ci1pbiB0aGUgaW5zdGFsbCBob29rLgotCi1CVUc9cmhieiMxODk4MDY1Ci0tLS0KLSBzcmMvTWFr ZWZpbGUuYW0gICAgfCA2MSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gc3JjL2Vtb2ppLXBhcnNlci5jIHwgIDQgKystCi0gMiBmaWxlcyBjaGFuZ2VkLCAz MiBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9NYWtl ZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQotaW5kZXggOTlkZTFhYjcuLjc0MmVlN2Q3IDEwMDY0 NAotLS0tIGEvc3JjL01ha2VmaWxlLmFtCi0rKysgYi9zcmMvTWFrZWZpbGUuYW0KLUBAIC0zLDcg KzMsNyBAQAotICMgaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAjCi0gIyBDb3B5cmlnaHQgKGMpIDIw MDctMjAxNSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0jIENvcHlyaWdo dCAoYykgMjAxNS0yMDE5IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29t PgotKyMgQ29weXJpZ2h0IChjKSAyMDE1LTIwMjAgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3 YXJhMUBnbWFpbC5jb20+Ci0gIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxNyBSZWQgSGF0LCBJbmMu Ci0gIwotICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgotQEAgLTI0OCw2ICsyNDgsNyBAQCBBTV9DUFBGTEFHUyArPSAtREVOQUJM RV9FTU9KSV9ESUNUCi0gZGljdGRpciA9ICQocGtnZGF0YWRpcikvZGljdHMKLSBMQU5HX0ZJTEVT ID0gJChiYXNlbmFtZSAkKG5vdGRpciAkKHdpbGRjYXJkICQoRU1PSklfQU5OT1RBVElPTl9ESVIp LyoueG1sKSkpCi0gRU1PSklfRElDVF9GSUxFUyA9ICQocGF0c3Vic3QgJSxkaWN0cy9lbW9qaS0l LmRpY3QsJChMQU5HX0ZJTEVTKSkKLSsjIGVtb2ppLXJvb3QuZGljdCwgZW1vamktc3JfQ3lybC5k aWN0IGhhdmUgbm8gY29udGVudHMuCi0gZGljdF9EQVRBID0gJChFTU9KSV9ESUNUX0ZJTEVTKQot IAotIG5vaW5zdF9QUk9HUkFNUyArPSBlbW9qaS1wYXJzZXIKLUBAIC0yNjUsNiArMjY2LDcgQEAg ZGljdHMvZW1vamktJS5kaWN0OiBlbW9qaS1wYXJzZXIKLSAJICAgICAgICB4bWxfZGVyaXZlZF9v cHRpb249Ii0teG1sLWRlcml2ZWQgJChFTU9KSV9BTk5PVEFUSU9OX0RJUikvLi4vYW5ub3RhdGlv bnNEZXJpdmVkLyQqLnhtbCI7IFwKLSAJICAgICAgICBwbHVzX2NvbW1lbnQ9ImRlcml2ZWQiOyBc Ci0gCWZpOyBcCi0rCWlzX3NraXA9MDsgXAotIAlpZiB0ZXN0IHgiJCoiID0geGVuIDsgdGhlbiBc Ci0gCSAgICAkKGJ1aWxkZGlyKS9lbW9qaS1wYXJzZXIgXAotIAkgICAgICAgIC0tdW5pY29kZS1l bW9qaS1kaXIgJChVTklDT0RFX0VNT0pJX0RJUikgXAotQEAgLTI3OSw0OCArMjgxLDQzIEBAIGRp Y3RzL2Vtb2ppLSUuZGljdDogZW1vamktcGFyc2VyCi0gCSAgICAgICAgLS14bWwgJChFTU9KSV9B Tk5PVEFUSU9OX0RJUikvJCoueG1sIFwKLSAJICAgICAgICAkJHhtbF9kZXJpdmVkX29wdGlvbiBc Ci0gCSAgICAgICAgLS1vdXQgJEA7IFwKLSsJICAgIHJldHZhbD0kJD87IFwKLSsJICAgIGlmIHRl c3QgJCRyZXR2YWwgLWVxIDk5IDsgdGhlbiBcCi0rCSAgICAgICAgaXNfc2tpcD0xOyBcCi0rCSAg ICAgICAgdG91Y2ggJEA7IFwKLSsJICAgIGVsaWYgdGVzdCAkJHJldHZhbCAtbmUgMCA7IHRoZW4g XAotKwkgICAgICAgIGVjaG8gIkZhaWwgdG8gZ2VuZXJhdGUgJEAiOyBcCi0rCSAgICAgICAgYWJy dDsgXAotKwkgICAgZmk7IFwKLSAJZmk7IFwKLS0JZWNobyAiR2VuZXJhdGVkICQkcGx1c19jb21t ZW50ICRAIgotKwlpZiB0ZXN0ICQkaXNfc2tpcCAtZXEgMCA7IHRoZW4gXAotKwkgICAgZWNobyAi R2VuZXJhdGVkICQkcGx1c19jb21tZW50ICRAIjsgXAotKwllbHNlIFwKLSsJICAgIGVjaG8gIlNr aXAgJCRwbHVzX2NvbW1lbnQgJEAiOyBcCi0rCWZpOwotIAotIGlidXNlbW9qaWdlbi5oOiBkaWN0 cy9lbW9qaS1lbi5kaWN0Ci0gCSQoTlVMTCkKLSAKLS1pbnN0YWxsLWRhdGEtaG9vazogJChkaWN0 X0RBVEEpCi0tCUAkKE5PUk1BTF9JTlNUQUxMKQotKyMgV2UgcHV0IGRpY3RzL2Vtb2ppLSUuZGlj dCBhcyB0aGUgbWFrZSB0YXJnZXQgZm9yIHRoZSBwYXJhbGxlbCBidWlsZAotKyMgYW5kIHRoZSBt YWtlIHRhcmdldCBoYXMgdG8gYmUgZ2VuYXJhdGVkIGV2ZW4gaWYgdGhlIGZpbGUgc2l6ZSBpcyB6 ZXJvLgotKyMgQnV0IHdlIGRvbid0IHdhbnQgdG8gaW5zdGFsbCB0aGUgemVybyBzaXplIGZpbGVz IGFuZCBkZWxldGUgdGhlbQotKyMgaW4gaW5zdGFsbC1kYXRhLWhvb2suCi0raW5zdGFsbC1kYXRh LWhvb2s6Ci0gCSQoQU1fVl9hdClsaXN0PSckKHdpbGRjYXJkIGRpY3RzLyouZGljdCknOyBcCi0g ICAgICAgICB0ZXN0IC1uICIkKGRpY3RkaXIpIiB8fCBsaXN0PTsgXAotLQlpZiB0ZXN0IC1uICIk JGxpc3QiOyB0aGVuIFwKLS0JICBlY2hvICIgJChNS0RJUl9QKSAnJChERVNURElSKSQoZGljdGRp ciknIjsgXAotLQkgICQoTUtESVJfUCkgIiQoREVTVERJUikkKGRpY3RkaXIpIiB8fCBleGl0IDE7 IFwKLS0JZmk7IFwKLSAJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0tCSAgaWYgdGVzdCAtZiAiJCRw IjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLS0JICBlY2hvICIkJGQkJHAi OyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8i OyBmaTsgXAotKwkgICAgaWYgdGVzdCAtcyAgIiQkZCQkcCI7IHRoZW4gY29udGludWU7IGZpOyAg XAotKwkgICAgYmFzZW5hbWUgIiQkcCI7IFwKLSAJZG9uZSB8IFwKLS0Jd2hpbGUgcmVhZCBmaWxl czsgZG8gXAotLQkgIGlmIFsgeCQoQU1fREVGQVVMVF9WRVJCT1NJVFkpID0geDEgXSA7IHRoZW4g XAotLQkgICAgICBlY2hvICIkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQoZGlj dGRpciknIjsgXAotLQkgIGVsc2UgXAotLQkgICAgICBlY2hvICJJbnN0YWxsaW5nICQkZmlsZXMi OyBcCi0tCSAgZmk7IFwKLS0JICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQo ZGljdGRpcikiIHx8IGV4aXQgJCQ/OyBcCi0rCXdoaWxlIHJlYWQgZmlsZTsgZG8gXAotKwkgICAg aWYgdGVzdCAtZiAiJChERVNURElSKSQoZGljdGRpcikvJCRmaWxlIjsgdGhlbiBcCi0rCSAgICAg ICAgZWNobyAiRGVsZXRlICQoREVTVERJUikkKGRpY3RkaXIpLyQkZmlsZSI7IFwKLSsJICAgICAg ICBybSAiJChERVNURElSKSQoZGljdGRpcikvJCRmaWxlIiB8fCBleGl0ICQkPzsgXAotKwkgICAg Zmk7IFwKLSAJZG9uZQotIAotLWRpY3RfX3VuaW5zdGFsbF9maWxlc19mcm9tX2RpciA9IHsgXAot LSAgICB0ZXN0IC16ICIkJGZpbGVzIiBcCi0tICAgICAgICB8fCB7IHRlc3QgISAtZCAiJCRkaXIi ICYmIHRlc3QgISAtZiAiJCRkaXIiICYmIHRlc3QgISAtciAiJCRkaXIiOyB9IFwKLS0gICAgICAg IHx8IHsgZWNobyAiICggY2QgJyQkZGlyJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKLS0gICAg ICAgICAgICAgY2QgIiQkZGlyIiAmJiBybSAtZiAkJGZpbGVzOyB9OyBcCi0tICAgIH0KLS0KLS0j IGZvciBtYWtlIGRpc3QKLS11bmluc3RhbGwtaG9vazoKLS0JQCQoTk9STUFMX1VOSU5TVEFMTCkK LS0JJChBTV9WX2F0KWxpc3Q9JyQod2lsZGNhcmQgZGljdHMvKi5kaWN0KSc7IFwKLS0JdGVzdCAt biAiJChkaWN0ZGlyKSIgfHwgbGlzdD07IFwKLS0JZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8g ZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKLS0JZGlyPSckKERFU1RESVIp JChkaWN0ZGlyKSc7ICQoZGljdF9fdW5pbnN0YWxsX2ZpbGVzX2Zyb21fZGlyKQotLQotIGVtb2pp X3BhcnNlcl9TT1VSQ0VTID0gICAgICAgICAgXAotICAgICBlbW9qaS1wYXJzZXIuYyAgICAgICAg ICAgICAgXAotICAgICAkKE5VTEwpCi1kaWZmIC0tZ2l0IGEvc3JjL2Vtb2ppLXBhcnNlci5jIGIv c3JjL2Vtb2ppLXBhcnNlci5jCi1pbmRleCA5NmE3NzljNi4uYjExN2IxYjQgMTAwNjQ0Ci0tLS0g YS9zcmMvZW1vamktcGFyc2VyLmMKLSsrKyBiL3NyYy9lbW9qaS1wYXJzZXIuYwotQEAgLTEsNyAr MSw3IEBACi0gLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1t b2RlOiBuaWw7IC0qLSAqLwotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogaWJ1cyAtIFRo ZSBJbnB1dCBCdXMKLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBUYWthbyBGdWppd2FyYSA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMCBU YWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSAgKiBDb3B5cmlnaHQg KEMpIDIwMTYgUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotQEAgLTEyOTQsNiArMTI5NCw4 IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gICAgICAgICBjYXRlZ29yeV9maWxl X3NhdmUgKG91dHB1dF9jYXRlZ29yeSwgbGlzdCk7Ci0gICAgIGlmIChsaXN0KQotICAgICAgICAg Z19zbGlzdF9mcmVlIChsaXN0KTsKLSsgICAgZWxzZQotKyAgICAgICAgcmV0dXJuIDk5OwotIAot ICAgICByZXR1cm4gMDsKLSB9Ci0tLSAKLTIuMjQuMQotCi1Gcm9tIGI3MmVmZWE0MmQ1ZjcyZTA4 ZTI3NzRhZTAzMDI3YzI0NmQ0MWNhYjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBm dWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDIwIE5vdiAy MDIwIDEwOjU2OjExICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNyYzogVXBkYXRlIElCdXNJbnB1 dFB1cnBvc2UgYW5kIElCdXNJbnB1dEhpbnRzIGluCi0gaWJ1c3R5cGVzLmgKLQotQ29weSBJQlVT X0lOUFVUX1BVUlBPU0VfVEVSTUlOQUwsIElCVVNfSU5QVVRfUFVSUE9TRV9QSU4sCi1JQlVTX0lO UFVUX1BVUlBPU0VfVEVSTUlOQUwgZnJvbSBHVEsgMy4yNC4xNAotLS0tCi0gc3JjL2lidXN0eXBl cy5oIHwgNzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LQotIDEgZmlsZSBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL3NyYy9pYnVzdHlwZXMuaCBiL3NyYy9pYnVzdHlwZXMuaAotaW5kZXggMDYz NzBhMjcuLjc5OGFkMDRkIDEwMDY0NAotLS0tIGEvc3JjL2lidXN0eXBlcy5oCi0rKysgYi9zcmMv aWJ1c3R5cGVzLmgKLUBAIC0yLDcgKzIsNyBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0g LyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBQZW5n IEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMDgt MjAxNSBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMjAgUmVkIEhhdCwg SW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0yNDEsMjkgKzI0MSw0NiBAQCB0eXBlZGVm IHZvaWQgKCogSUJ1c0ZyZWVGdW5jKSAoZ3BvaW50ZXIgb2JqZWN0KTsKLSAgKiBASUJVU19JTlBV VF9QVVJQT1NFX0VNQUlMOiBFZGl0ZWQgZmllbGQgZXhwZWN0cyBlbWFpbCBhZGRyZXNzCi0gICog QElCVVNfSU5QVVRfUFVSUE9TRV9OQU1FOiBFZGl0ZWQgZmllbGQgZXhwZWN0cyB0aGUgbmFtZSBv ZiBhIHBlcnNvbgotICAqIEBJQlVTX0lOUFVUX1BVUlBPU0VfUEFTU1dPUkQ6IExpa2UgQElCVVNf SU5QVVRfUFVSUE9TRV9GUkVFX0ZPUk0sCi0tICogYnV0IGNoYXJhY3RlcnMgYXJlIGhpZGRlbgot KyAqICAgICBidXQgY2hhcmFjdGVycyBhcmUgaGlkZGVuCi0gICogQElCVVNfSU5QVVRfUFVSUE9T RV9QSU46IExpa2UgQElCVVNfSU5QVVRfUFVSUE9TRV9ESUdJVFMsIGJ1dAotLSAqIGNoYXJhY3Rl cnMgYXJlIGhpZGRlbgotKyAqICAgICBjaGFyYWN0ZXJzIGFyZSBoaWRkZW4KLSsgKiBASUJVU19J TlBVVF9QVVJQT1NFX1RFUk1JTkFMOiBBbGxvdyBhbnkgY2hhcmFjdGVyLCBpbiBhZGRpdGlvbiB0 byBjb250cm9sCi0rICogICAgIGNvZGVzLiBTaW5jZSAxLjUuMjQKLSAgKgotICAqIERlc2NyaWJl cyBwcmltYXJ5IHB1cnBvc2Ugb2YgdGhlIGlucHV0IGNvbnRleHQuICBUaGlzIGluZm9ybWF0aW9u Ci0gICogaXMgcGFydGljdWxhcmx5IHVzZWZ1bCB0byBpbXBsZW1lbnQgaW50ZWxsaWdlbnQgYmVo YXZpb3IgaW4KLSAgKiBlbmdpbmVzLCBzdWNoIGFzIGF1dG9tYXRpYyBpbnB1dC1tb2RlIHN3aXRj aCBhbmQgdGV4dCBwcmVkaWN0aW9uLgotICAqCi0rICogTm90ZSB0aGF0IHRoZSBwdXJwb3NlIGlz IG5vdCBtZWFudCB0byBpbXBvc2UgYSB0b3RhbGx5IHN0cmljdCBydWxlCi0rICogYWJvdXQgYWxs b3dlZCBjaGFyYWN0ZXJzLCBhbmQgZG9lcyBub3QgcmVwbGFjZSBpbnB1dCB2YWxpZGF0aW9uLgot KyAqIEl0IGlzIGZpbmUgZm9yIGFuIG9uLXNjcmVlbiBrZXlib2FyZCB0byBsZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlCi0rICogY2hhcmFjdGVyIHNldCByZXN0cmljdGlvbiB0aGF0IGlzIGV4cHJl c3NlZCBieSB0aGUgcHVycG9zZS4gVGhlCi0rICogYXBwbGljYXRpb24gaXMgZXhwZWN0ZWQgdG8g dmFsaWRhdGUgdGhlIGVudHJ5IGNvbnRlbnRzLCBldmVuIGlmCi0rICogaXQgc3BlY2lmaWVkIGEg cHVycG9zZS4KLSsgKgotKyAqIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gQElCVVNfSU5QVVRfUFVS UE9TRV9ESUdJVFMgYW5kCi0rICogQElCVVNfSU5QVVRfUFVSUE9TRV9OVU1CRVIgaXMgdGhhdCB0 aGUgZm9ybWVyIGFjY2VwdHMgb25seSBkaWdpdHMKLSsgKiB3aGlsZSB0aGUgbGF0dGVyIGFsc28g c29tZSBwdW5jdHVhdGlvbiAobGlrZSBjb21tYXMgb3IgcG9pbnRzLCBwbHVzLAotKyAqIG1pbnVz KSBhbmQg4oCcZeKAnSBvciDigJxF4oCdIGFzIGluIDMuMTRFKzAwMC4KLSsgKgotICAqIFRoaXMg ZW51bWVyYXRpb24gbWF5IGJlIGV4dGVuZGVkIGluIHRoZSBmdXR1cmU7IGVuZ2luZXMgc2hvdWxk Ci0gICogaW50ZXJwcmV0IHVua25vd24gdmFsdWVzIGFzICdmcmVlIGZvcm0nLgotKyAqCi0rICog U2luY2U6IDEuNS40Ci0gICovCi0gdHlwZWRlZiBlbnVtCi0gewotLSAgSUJVU19JTlBVVF9QVVJQ T1NFX0ZSRUVfRk9STSwKLS0gIElCVVNfSU5QVVRfUFVSUE9TRV9BTFBIQSwKLS0gIElCVVNfSU5Q VVRfUFVSUE9TRV9ESUdJVFMsCi0tICBJQlVTX0lOUFVUX1BVUlBPU0VfTlVNQkVSLAotLSAgSUJV U19JTlBVVF9QVVJQT1NFX1BIT05FLAotLSAgSUJVU19JTlBVVF9QVVJQT1NFX1VSTCwKLS0gIElC VVNfSU5QVVRfUFVSUE9TRV9FTUFJTCwKLS0gIElCVVNfSU5QVVRfUFVSUE9TRV9OQU1FLAotLSAg SUJVU19JTlBVVF9QVVJQT1NFX1BBU1NXT1JELAotLSAgSUJVU19JTlBVVF9QVVJQT1NFX1BJTgot KyAgICBJQlVTX0lOUFVUX1BVUlBPU0VfRlJFRV9GT1JNLAotKyAgICBJQlVTX0lOUFVUX1BVUlBP U0VfQUxQSEEsCi0rICAgIElCVVNfSU5QVVRfUFVSUE9TRV9ESUdJVFMsCi0rICAgIElCVVNfSU5Q VVRfUFVSUE9TRV9OVU1CRVIsCi0rICAgIElCVVNfSU5QVVRfUFVSUE9TRV9QSE9ORSwKLSsgICAg SUJVU19JTlBVVF9QVVJQT1NFX1VSTCwKLSsgICAgSUJVU19JTlBVVF9QVVJQT1NFX0VNQUlMLAot KyAgICBJQlVTX0lOUFVUX1BVUlBPU0VfTkFNRSwKLSsgICAgSUJVU19JTlBVVF9QVVJQT1NFX1BB U1NXT1JELAotKyAgICBJQlVTX0lOUFVUX1BVUlBPU0VfUElOLAotKyAgICBJQlVTX0lOUFVUX1BV UlBPU0VfVEVSTUlOQUwKLSB9IElCdXNJbnB1dFB1cnBvc2U7Ci0gCi0gLyoqCi1AQCAtMjgwLDI0 ICsyOTcsMzYgQEAgdHlwZWRlZiBlbnVtCi0gICogICAgIGZpcnN0IHdvcmQgb2YgZWFjaCBzZW50 ZW5jZQotICAqIEBJQlVTX0lOUFVUX0hJTlRfSU5ISUJJVF9PU0s6IFN1Z2dlc3QgdG8gbm90IHNo b3cgYW4gb25zY3JlZW4ga2V5Ym9hcmQKLSAgKiAgICAgKGUuZyBmb3IgYSBjYWxjdWxhdG9yIHRo YXQgYWxyZWFkeSBoYXMgYWxsIHRoZSBrZXlzKS4KLS0gKiBASUJVU19JTlBVVF9ISU5UX1ZFUlRJ Q0FMX1dSSVRJTkc6IFRoZSB0ZXh0IGlzIHZlcnRpY2FsLgotKyAqIEBJQlVTX0lOUFVUX0hJTlRf VkVSVElDQUxfV1JJVElORzogVGhlIHRleHQgaXMgdmVydGljYWwuIFNpbmNlIDEuNS4xMQotKyAq IEBJQlVTX0lOUFVUX0hJTlRfRU1PSkk6IFN1Z2dlc3Qgb2ZmZXJpbmcgRW1vamkgc3VwcG9ydC4g U2luY2UgMS41LjI0Ci0rICogQElCVVNfSU5QVVRfSElOVF9OT19FTU9KSTogU3VnZ2VzdCBub3Qg b2ZmZXJpbmcgRW1vamkgc3VwcG9ydC4gU2luY2UgMS41LjI0Ci0gICoKLSAgKiBEZXNjcmliZXMg aGludHMgdGhhdCBtaWdodCBiZSB0YWtlbiBpbnRvIGFjY291bnQgYnkgZW5naW5lcy4gIE5vdGUK LSAgKiB0aGF0IGVuZ2luZXMgbWF5IGFscmVhZHkgdGFpbG9yIHRoZWlyIGJlaGF2aW91ciBhY2Nv cmRpbmcgdG8gdGhlCi0gICogI0lCdXNJbnB1dFB1cnBvc2Ugb2YgdGhlIGVudHJ5LgotKyAqCi0r ICogU29tZSBjb21tb24gc2Vuc2UgaXMgZXhwZWN0ZWQgd2hlbiB1c2luZyB0aGVzZSBmbGFncyAt IG1peGluZwotKyAqIEBJQlVTX0lOUFVUX0hJTlRfTE9XRVJDQVNFIHdpdGggYW55IG9mIHRoZSB1 cHBlcmNhc2UgaGludHMgbWFrZXMgbm8gc2Vuc2UuCi0rICoKLSsgKiBUaGlzIGVudW1lcmF0aW9u IG1heSBiZSBleHRlbmRlZCBpbiB0aGUgZnV0dXJlOyBlbmdpbmVzIHNob3VsZAotKyAqIGlnbm9y ZSB1bmtub3duIHZhbHVlcy4KLSsgKgotKyAqIFNpbmNlOiAxLjUuNAotICAqLwotIHR5cGVkZWYg ZW51bQotIHsKLS0gIElCVVNfSU5QVVRfSElOVF9OT05FICAgICAgICAgICAgICAgID0gMCwKLS0g IElCVVNfSU5QVVRfSElOVF9TUEVMTENIRUNLICAgICAgICAgID0gMSA8PCAwLAotLSAgSUJVU19J TlBVVF9ISU5UX05PX1NQRUxMQ0hFQ0sgICAgICAgPSAxIDw8IDEsCi0tICBJQlVTX0lOUFVUX0hJ TlRfV09SRF9DT01QTEVUSU9OICAgICA9IDEgPDwgMiwKLS0gIElCVVNfSU5QVVRfSElOVF9MT1dF UkNBU0UgICAgICAgICAgID0gMSA8PCAzLAotLSAgSUJVU19JTlBVVF9ISU5UX1VQUEVSQ0FTRV9D SEFSUyAgICAgPSAxIDw8IDQsCi0tICBJQlVTX0lOUFVUX0hJTlRfVVBQRVJDQVNFX1dPUkRTICAg ICA9IDEgPDwgNSwKLS0gIElCVVNfSU5QVVRfSElOVF9VUFBFUkNBU0VfU0VOVEVOQ0VTID0gMSA8 PCA2LAotLSAgSUJVU19JTlBVVF9ISU5UX0lOSElCSVRfT1NLICAgICAgICAgPSAxIDw8IDcsCi0t ICBJQlVTX0lOUFVUX0hJTlRfVkVSVElDQUxfV1JJVElORyAgICA9IDEgPDwgOAotKyAgICBJQlVT X0lOUFVUX0hJTlRfTk9ORSAgICAgICAgICAgICAgICA9IDAsCi0rICAgIElCVVNfSU5QVVRfSElO VF9TUEVMTENIRUNLICAgICAgICAgID0gMSA8PCAwLAotKyAgICBJQlVTX0lOUFVUX0hJTlRfTk9f U1BFTExDSEVDSyAgICAgICA9IDEgPDwgMSwKLSsgICAgSUJVU19JTlBVVF9ISU5UX1dPUkRfQ09N UExFVElPTiAgICAgPSAxIDw8IDIsCi0rICAgIElCVVNfSU5QVVRfSElOVF9MT1dFUkNBU0UgICAg ICAgICAgID0gMSA8PCAzLAotKyAgICBJQlVTX0lOUFVUX0hJTlRfVVBQRVJDQVNFX0NIQVJTICAg ICA9IDEgPDwgNCwKLSsgICAgSUJVU19JTlBVVF9ISU5UX1VQUEVSQ0FTRV9XT1JEUyAgICAgPSAx IDw8IDUsCi0rICAgIElCVVNfSU5QVVRfSElOVF9VUFBFUkNBU0VfU0VOVEVOQ0VTID0gMSA8PCA2 LAotKyAgICBJQlVTX0lOUFVUX0hJTlRfSU5ISUJJVF9PU0sgICAgICAgICA9IDEgPDwgNywKLSsg ICAgSUJVU19JTlBVVF9ISU5UX1ZFUlRJQ0FMX1dSSVRJTkcgICAgPSAxIDw8IDgsCi0rICAgIElC VVNfSU5QVVRfSElOVF9FTU9KSSAgICAgICAgICAgICAgID0gMSA8PCA5LAotKyAgICBJQlVTX0lO UFVUX0hJTlRfTk9fRU1PSkkgICAgICAgICAgICA9IDEgPDwgMTAKLSB9IElCdXNJbnB1dEhpbnRz OwotIAotICNlbmRpZgotLS0gCi0yLjI0LjEKLQotRnJvbSA1MzIyYzQ0N2M3NGExMGVlNTRiNDgy ZDZlZmY2ZGE2ZDE2YTdjOWNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdh cmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogU2F0LCAyMSBOb3YgMjAyMCAw Nzo0MToyMyArMDkwMAotU3ViamVjdDogW1BBVENIXSB1aS9ndGszOiBXYXJuIGRlcHJlY2F0ZWQg SUJ1cyBYS0IgZW5naW5lcyAvdyBkaWFsb2cKLQotc2ltcGxlLnhtbCBpcyB1cGRhdGVkIGJ5IElC dXMgcmVsZWFzZSBhbmQgc29tZSBYS0IgZW5naW5lcwotY291bGQgYmUgZGVwcmVjYXRlZCB3aXRo IHhrZXlib2FyZC1jb25maWcgdXBkYXRlcy4KLU5vdyBhIHdhcm5pbmcgZGlhbG9nIGlzIGxhdW5j aGVkIHdoZW4gdGhlIGRlcHJlY2F0ZWQgZW5naW5lcyBhcmUKLWNoYW5nZWQgdG8geGtiOnVzOjpl bmcgZW5naW5lLgotCi1CVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9pc3N1ZXMvMjI3 NAotLS0tCi0gdWkvZ3RrMy9wYW5lbC52YWxhIHwgMTUgKysrKysrKysrKysrKysrCi0gMSBmaWxl cyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp dCBhL3VpL2d0azMvcGFuZWwudmFsYSBiL3VpL2d0azMvcGFuZWwudmFsYQotaW5kZXggNjI3ZTI2 YWUuLjAxZjg3ZTMzIDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9wYW5lbC52YWxhCi0rKysgYi91aS9n dGszL3BhbmVsLnZhbGEKLUBAIC05NzAsNiArOTcwLDIxIEBAIGNsYXNzIFBhbmVsIDogSUJ1cy5Q YW5lbFNlcnZpY2UgewotICAgICAgICAgICAgIG5hbWVzID0gIHsieGtiOnVzOjplbmcifTsKLSAg ICAgICAgICAgICBtX3NldHRpbmdzX2dlbmVyYWwuc2V0X3N0cnYoInByZWxvYWQtZW5naW5lcyIs IG5hbWVzKTsKLSAgICAgICAgICAgICBlbmdpbmVzID0gbV9idXMuZ2V0X2VuZ2luZXNfYnlfbmFt ZXMobmFtZXMpOwotKyAgICAgICAgICAgIHZhciBtZXNzYWdlID0gXygiWW91ciBpbnB1dCBtZXRo b2QgJXMgZG9lcyBub3QgZXhpc3QgaW4gSUJ1cyAiICsKLSsgICAgICAgICAgICAgICAgICAgICJp bnB1dCBtZXRob2RzIHNvIFwiVVNcIiBsYXlvdXQgd2FzIGNvbmZpZ3VyZWQgaW5zdGVhZCAiICsK LSsgICAgICAgICAgICAgICAgICAgICJvZiB5b3VyIGlucHV0IG1ldGhvZC4gUGxlYXNlIHJ1biBg aWJ1cy1zZXR1cGAgY29tbWFuZCwgIiArCi0rICAgICAgICAgICAgICAgICAgICAib3BlbiBcIklu cHV0IE1ldGhvZFwiIHRhYiwgYW5kIGNvbmZpZ3VyZSB5b3VyIGlucHV0ICIgKwotKyAgICAgICAg ICAgICAgICAgICAgIm1ldGhvZHMgYWdhaW4uIikucHJpbnRmKG5hbWVzWzBdKTsKLSsgICAgICAg ICAgICB2YXIgZGlhbG9nID0gbmV3IEd0ay5NZXNzYWdlRGlhbG9nKAotKyAgICAgICAgICAgICAg ICAgICAgbnVsbCwKLSsgICAgICAgICAgICAgICAgICAgIEd0ay5EaWFsb2dGbGFncy5ERVNUUk9Z X1dJVEhfUEFSRU5ULAotKyAgICAgICAgICAgICAgICAgICAgR3RrLk1lc3NhZ2VUeXBlLldBUk5J TkcsCi0rICAgICAgICAgICAgICAgICAgICBHdGsuQnV0dG9uc1R5cGUuQ0xPU0UsCi0rICAgICAg ICAgICAgICAgICAgICBtZXNzYWdlKTsKLSsgICAgICAgICAgICBkaWFsb2cucmVzcG9uc2UuY29u bmVjdCgoaWQpID0+IHsKLSsgICAgICAgICAgICAgICAgICAgIGRpYWxvZy5kZXN0cm95KCk7Ci0r ICAgICAgICAgICAgfSk7Ci0rICAgICAgICAgICAgZGlhbG9nLnNob3coKTsKLSAJfQotIAotICAg ICAgICAgaWYgKG1fZW5naW5lcy5sZW5ndGggPT0gMCkgewotLS0gCi0yLjI4LjAKLQotRnJvbSBh ZWMyYWM3NWVhNjczZDM3MDE5MDQ3MzUzNzg3NjU0NzZjYWQwZjIxIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogR3VubmFyIEhqYWxtYXJzc29uIDxndW5uYXJoakB1YnVudHUuY29tPgot RGF0ZTogRnJpLCAxMSBEZWMgMjAyMCAxNjoyNzozNiArMDkwMAotU3ViamVjdDogW1BBVENIXSB1 aS9ndGszOiBXYXJuaW5nIGRpYWxvZyBmb3IgYW55IGRlcHJlY2F0ZWQgSUJ1cyBYS0IKLSBlbmdp bmUKLQotVGhpcyBpcyBhIGZvbGxvdy11cCBvZiBjb21taXQgNTMyMmM0NDcuIFRoYXQgY29tbWl0 IGludHJvZHVjZWQKLWEgd2FybmluZyBkaWFsb2cgaW4gY2FzZSBvZiBhbiBlbXB0eSBlbmdpbmVz IGxpc3QuCi0KLVRoaXMgY29tbWl0IG1ha2VzIGEgZGlmZmVyZW50bHkgd29yZGVkIHdhcm5pbmcg ZGlhbG9nIGJlIHNob3duCi1pbiBjYXNlcyB3aGVyZSB0aGUgZW5naW5lcyBsaXN0IGlzIG5vdCBl bXB0eSBidXQgcHJlbG9hZC1lbmdpbmVzCi1pbmNsdWRlcyBhdCBsZWFzdCBvbmUgZGVwcmVjYXRl ZCBlbmdpbmUuIEl0IGFsc28gZml4ZXMgYSB2YXJpYWJsZQotY29uZnVzaW9uIHNvIGEgZGVwcmVj YXRlZCBlbmdpbmUgaXMgbWVudGlvbmVkIGluIHRoZSBmaXJzdCBraW5kCi1vZiB3YXJuaW5nIGRp YWxvZyBhbmQgbm90IHRoZSBVUyBlbmdpbmUuCi0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1 cy9pYnVzL2lzc3Vlcy8yMjc0Ci0tLS0KLSB1aS9ndGszL3BhbmVsLnZhbGEgfCAzMCArKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMo KyksIDI0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9wYW5lbC52YWxhIGIv dWkvZ3RrMy9wYW5lbC52YWxhCi1pbmRleCAwMWY4N2UzMy4uYWIyMDA1ZDcgMTAwNjQ0Ci0tLS0g YS91aS9ndGszL3BhbmVsLnZhbGEKLSsrKyBiL3VpL2d0azMvcGFuZWwudmFsYQotQEAgLTk2Niwy NSArOTY2LDMzIEBAIGNsYXNzIFBhbmVsIDogSUJ1cy5QYW5lbFNlcnZpY2UgewotICAgICAgICAg LyogRmVkb3JhIGludGVybmFsIHBhdGNoIGNvdWxkIHNhdmUgZW5naW5lcyBub3QgaW4gc2ltcGxl LnhtbAotICAgICAgICAgICogbGlrZXMgJ3hrYjpjbjo6Y2hpJy4KLSAgICAgICAgICAqLwotLSAg ICAgICAgaWYgKGVuZ2luZXMubGVuZ3RoID09IDApIHsKLS0gICAgICAgICAgICBuYW1lcyA9ICB7 InhrYjp1czo6ZW5nIn07Ci0tICAgICAgICAgICAgbV9zZXR0aW5nc19nZW5lcmFsLnNldF9zdHJ2 KCJwcmVsb2FkLWVuZ2luZXMiLCBuYW1lcyk7Ci0tICAgICAgICAgICAgZW5naW5lcyA9IG1fYnVz LmdldF9lbmdpbmVzX2J5X25hbWVzKG5hbWVzKTsKLS0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9 IF8oIllvdXIgaW5wdXQgbWV0aG9kICVzIGRvZXMgbm90IGV4aXN0IGluIElCdXMgIiArCi0tICAg ICAgICAgICAgICAgICAgICAiaW5wdXQgbWV0aG9kcyBzbyBcIlVTXCIgbGF5b3V0IHdhcyBjb25m aWd1cmVkIGluc3RlYWQgIiArCi0tICAgICAgICAgICAgICAgICAgICAib2YgeW91ciBpbnB1dCBt ZXRob2QuIFBsZWFzZSBydW4gYGlidXMtc2V0dXBgIGNvbW1hbmQsICIgKwotLSAgICAgICAgICAg ICAgICAgICAgIm9wZW4gXCJJbnB1dCBNZXRob2RcIiB0YWIsIGFuZCBjb25maWd1cmUgeW91ciBp bnB1dCAiICsKLS0gICAgICAgICAgICAgICAgICAgICJtZXRob2RzIGFnYWluLiIpLnByaW50Zihu YW1lc1swXSk7Ci0rICAgICAgICBpZiAoZW5naW5lcy5sZW5ndGggPCBuYW1lcy5sZW5ndGgpIHsK LSsgICAgICAgICAgICBzdHJpbmcgbWVzc2FnZTE7Ci0rICAgICAgICAgICAgaWYgKGVuZ2luZXMu bGVuZ3RoID09IDApIHsKLSsgICAgICAgICAgICAgICAgc3RyaW5nW10gZmFsbGJhY2tfbmFtZXMg PSB7InhrYjp1czo6ZW5nIn07Ci0rICAgICAgICAgICAgICAgIG1fc2V0dGluZ3NfZ2VuZXJhbC5z ZXRfc3RydigicHJlbG9hZC1lbmdpbmVzIiwgZmFsbGJhY2tfbmFtZXMpOwotKyAgICAgICAgICAg ICAgICBlbmdpbmVzID0gbV9idXMuZ2V0X2VuZ2luZXNfYnlfbmFtZXMoZmFsbGJhY2tfbmFtZXMp OwotKyAgICAgICAgICAgICAgICBtZXNzYWdlMSA9IF8oIllvdXIgY29uZmlndXJlZCBpbnB1dCBt ZXRob2QgJXMgZG9lcyBub3QgZXhpc3QgIiArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiaW4gSUJ1cyBpbnB1dCBtZXRob2RzIHNvIFwiVVNcIiBsYXlvdXQgd2FzICIgKwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImNvbmZpZ3VyZWQgaW5zdGVhZCBvZiB5b3VyIGlucHV0 IG1ldGhvZC4iCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICkucHJpbnRmKG5hbWVzWzBd KTsKLSsgICAgICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICAgICAgICBtZXNzYWdlMSA9IF8o IkF0IGxlYXN0IG9uZSBvZiB5b3VyIGNvbmZpZ3VyZWQgaW5wdXQgbWV0aG9kcyAiICsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJkb2VzIG5vdCBleGlzdCBpbiBJQnVzIGlucHV0IG1l dGhvZHMuIik7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIHZhciBtZXNzYWdlMiA9IF8o IlBsZWFzZSBydW4gYGlidXMtc2V0dXBgIGNvbW1hbmQsIG9wZW4gXCJJbnB1dCAiICsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJNZXRob2RcIiB0YWIsIGFuZCBjb25maWd1cmUgeW91 ciBpbnB1dCBtZXRob2RzICIgKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFnYWlu LiIpOwotICAgICAgICAgICAgIHZhciBkaWFsb2cgPSBuZXcgR3RrLk1lc3NhZ2VEaWFsb2coCi0g ICAgICAgICAgICAgICAgICAgICBudWxsLAotICAgICAgICAgICAgICAgICAgICAgR3RrLkRpYWxv Z0ZsYWdzLkRFU1RST1lfV0lUSF9QQVJFTlQsCi0gICAgICAgICAgICAgICAgICAgICBHdGsuTWVz c2FnZVR5cGUuV0FSTklORywKLSAgICAgICAgICAgICAgICAgICAgIEd0ay5CdXR0b25zVHlwZS5D TE9TRSwKLS0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UpOwotKyAgICAgICAgICAgICAgICAg ICAgIiVzICVzIiwgbWVzc2FnZTEsIG1lc3NhZ2UyKTsKLSAgICAgICAgICAgICBkaWFsb2cucmVz cG9uc2UuY29ubmVjdCgoaWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgIGRpYWxvZy5kZXN0 cm95KCk7Ci0gICAgICAgICAgICAgfSk7Ci0tICAgICAgICAgICAgZGlhbG9nLnNob3coKTsKLSsg ICAgICAgICAgICBkaWFsb2cuc2hvd19hbGwoKTsKLSAJfQotIAotICAgICAgICAgaWYgKG1fZW5n aW5lcy5sZW5ndGggPT0gMCkgewotLS0gCi0yLjI4LjAKLQotRnJvbSA1ZDY4YjAwZTA0NjRkNDNi YTJmNzc2OTdmOWRjZmJmZjc4ZDdiNDM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog ZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogVGh1LCAzMSBEZWMg MjAyMCAxNzoyODo0NSArMDkwMAotU3ViamVjdDogW1BBVENIXSBlbmdpbmU6IEZpeCBpc28tcGF0 aCBpbiBnZW5zaW1wbGUucHkKLQotUmVwbGFjZSBkYXRhcm9vdGRpciB3aXRoIElTT0NPREVTX1BS RUZJWC4KLS0tLQotIGVuZ2luZS9NYWtlZmlsZS5hbSB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2VuZ2luZS9NYWtl ZmlsZS5hbSBiL2VuZ2luZS9NYWtlZmlsZS5hbQotaW5kZXggZDgxMDcwNGIuLjE5NDRjMDJiIDEw MDY0NAotLS0tIGEvZW5naW5lL01ha2VmaWxlLmFtCi0rKysgYi9lbmdpbmUvTWFrZWZpbGUuYW0K LUBAIC0xMDQsNyArMTA0LDcgQEAgc2ltcGxlLnhtbC5pbjoKLSAJICAgIC0tb3V0cHV0PSRAIFwK LSAJICAgIC0tdmVyc2lvbj0kKFZFUlNJT04pLmBkYXRlICcrJVklbSVkJ2AgXAotIAkgICAgLS1l eGVjLXBhdGg9QGxpYmV4ZWNkaXJcQC9pYnVzLWVuZ2luZS1zaW1wbGUgXAotLQkgICAgLS1pc28t cGF0aD0kKGRhdGFyb290ZGlyKS94bWwvaXNvLWNvZGVzL2lzb182MzkueG1sIFwKLSsJICAgIC0t aXNvLXBhdGg9JChJU09DT0RFU19QUkVGSVgpL3NoYXJlL3htbC9pc28tY29kZXMvaXNvXzYzOS54 bWwgXAotIAkgICAgLS1maXJzdC1sYW5ndWFnZSBcCi0gCSQoTlVMTCkKLSAKLS0tIAotMi4yOC4w Ci0KLUZyb20gMjk5NTllMWQyNTIxNzgxYzU0NDg3OWIyODRlMDM4MTJhMmExMWIyZSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWls LmNvbT4KLURhdGU6IFRodSwgMzEgRGVjIDIwMjAgMjA6MDA6MDIgKzA5MDAKLVN1YmplY3Q6IFtQ QVRDSF0gZW5naW5lOiBGaXggaW5wdXQgaW4gZ2Vuc2ltcGxlLnB5Ci0KLVJlcGxhY2UgZGF0YXJv b3RkaXIgd2l0aCBYS0JDT05GSUdfQkFTRS4KLS0tLQotIGNvbmZpZ3VyZS5hYyAgICAgICB8IDcg KysrKysrKwotIGVuZ2luZS9NYWtlZmlsZS5hbSB8IDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDgg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFj IGIvY29uZmlndXJlLmFjCi1pbmRleCA1NzUzMDU3Yi4uOWVkNWNiNjYgMTAwNjQ0Ci0tLS0gYS9j b25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTcyMCw2ICs3MjAsMTMgQEAgUEtH X0NIRUNLX01PRFVMRVMoSVNPQ09ERVMsIFsKLSBJU09DT0RFU19QUkVGSVg9YCRQS0dfQ09ORklH IGlzby1jb2RlcyAtLXZhcmlhYmxlPXByZWZpeGAKLSBBQ19TVUJTVChJU09DT0RFU19QUkVGSVgp Ci0gCi0rUEtHX0NIRUNLX01PRFVMRVMoWEtCQ09ORklHLAotKyAgICBbeGtleWJvYXJkLWNvbmZp Z10sCi0rICAgIFtYS0JDT05GSUdfQkFTRT1gJFBLR19DT05GSUcgeGtleWJvYXJkLWNvbmZpZyAt LXZhcmlhYmxlPXhrYl9iYXNlYF0sCi0rICAgIFtYS0JDT05GSUdfQkFTRT0nJChkYXRhcm9vdGRp cikvWDExL3hrYiddCi0rKQotK0FDX1NVQlNUKFhLQkNPTkZJR19CQVNFKQotKwotIEFDX1NVQlNU KFtHREJVU19DT0RFR0VOXSwgW2AkUEtHX0NPTkZJRyAtLXZhcmlhYmxlIGdkYnVzX2NvZGVnZW4g Z2lvLTIuMGBdKQotIAotICMgT1VUUFVUIGZpbGVzCi1kaWZmIC0tZ2l0IGEvZW5naW5lL01ha2Vm aWxlLmFtIGIvZW5naW5lL01ha2VmaWxlLmFtCi1pbmRleCAxOTQ0YzAyYi4uODRiYzdmNmMgMTAw NjQ0Ci0tLS0gYS9lbmdpbmUvTWFrZWZpbGUuYW0KLSsrKyBiL2VuZ2luZS9NYWtlZmlsZS5hbQot QEAgLTEwMCw3ICsxMDAsNyBAQCBzaW1wbGUueG1sOiBzaW1wbGUueG1sLmluCi0gCi0gc2ltcGxl LnhtbC5pbjoKLSAJJChzcmNkaXIpL2dlbnNpbXBsZS5weSBcCi0tCSAgICAtLWlucHV0PSQoZGF0 YXJvb3RkaXIpL1gxMS94a2IvcnVsZXMvZXZkZXYueG1sIFwKLSsJICAgIC0taW5wdXQ9JChYS0JD T05GSUdfQkFTRSkvcnVsZXMvZXZkZXYueG1sIFwKLSAJICAgIC0tb3V0cHV0PSRAIFwKLSAJICAg IC0tdmVyc2lvbj0kKFZFUlNJT04pLmBkYXRlICcrJVklbSVkJ2AgXAotIAkgICAgLS1leGVjLXBh dGg9QGxpYmV4ZWNkaXJcQC9pYnVzLWVuZ2luZS1zaW1wbGUgXAotLS0gCi0yLjI4LjAKLQotRnJv bSBjNzkyOGIxNTg3NDEyODJlMTdhMDQyZjc2N2JjNWFlMzJjMzAyYzk2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgot RGF0ZTogRnJpLCA4IEphbiAyMDIxIDE4OjQ1OjU1ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEFk ZCBHVEs0IElNIG1vZHVsZQotCi1CVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9pc3N1 ZXMvMjI5MQotLS0tCi0gY2xpZW50L01ha2VmaWxlLmFtICAgICAgICAgIHwgICA3ICstCi0gY2xp ZW50L2d0azIvaWJ1c2ltY29udGV4dC5jIHwgMzUyICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLQotIGNsaWVudC9ndGs0L01ha2VmaWxlLmFtICAgICB8ICA2NiArKysrKysrCi0g Y2xpZW50L2d0azQvaWJ1c2ltLmMgICAgICAgIHwgIDUyICsrKysrKwotIGNsaWVudC9ndGs0L2li dXNpbWNvbnRleHQuYyB8ICAgMSArCi0gY2xpZW50L2d0azQvaWJ1c2ltY29udGV4dC5oIHwgICAx ICsKLSBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgfCAgMzIgKysrKwotIDcgZmlsZXMgY2hh bmdlZCwgNDY1IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEw MDY0NCBjbGllbnQvZ3RrNC9NYWtlZmlsZS5hbQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBjbGllbnQv Z3RrNC9pYnVzaW0uYwotIGNyZWF0ZSBtb2RlIDEyMDAwMCBjbGllbnQvZ3RrNC9pYnVzaW1jb250 ZXh0LmMKLSBjcmVhdGUgbW9kZSAxMjAwMDAgY2xpZW50L2d0azQvaWJ1c2ltY29udGV4dC5oCi0K LWRpZmYgLS1naXQgYS9jbGllbnQvTWFrZWZpbGUuYW0gYi9jbGllbnQvTWFrZWZpbGUuYW0KLWlu ZGV4IDU0NmNhMTMyLi4xNzQ0NTE4YyAxMDA2NDQKLS0tLSBhL2NsaWVudC9NYWtlZmlsZS5hbQot KysrIGIvY2xpZW50L01ha2VmaWxlLmFtCi1AQCAtMyw3ICszLDcgQEAKLSAjIGlidXMgLSBUaGUg SW5wdXQgQnVzCi0gIwotICMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgUGVuZyBIdWFuZyA8c2hh d24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBSZWQgSGF0 LCBJbmMuCi0rIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAyMCBSZWQgSGF0LCBJbmMuCi0gIwotICMg VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgotICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYwotQEAgLTI4LDYgKzI4LDEwIEBAIGlmIEVOQUJMRV9HVEszCi0gR1RLMyA9IGd0 azMKLSBlbmRpZgotIAotK2lmIEVOQUJMRV9HVEs0Ci0rR1RLNCA9IGd0azQKLStlbmRpZgotKwot IGlmIEVOQUJMRV9YSU0KLSBYMTEgPSB4MTEKLSBlbmRpZgotQEAgLTM5LDYgKzQzLDcgQEAgZW5k aWYKLSBTVUJESVJTID0gXAotIAkkKEdUSzIpIFwKLSAJJChHVEszKSBcCi0rCSQoR1RLNCkgXAot IAkkKFgxMSkgXAotIAkkKFdBWUxBTkQpIFwKLSAJJChOVUxMKQotZGlmZiAtLWdpdCBhL2NsaWVu dC9ndGsyL2lidXNpbWNvbnRleHQuYyBiL2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYwotaW5k ZXggNTAyOTBjNTUuLmEyM2ZjMmUzIDEwMDY0NAotLS0tIGEvY2xpZW50L2d0azIvaWJ1c2ltY29u dGV4dC5jCi0rKysgYi9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKLUBAIC0yLDggKzIsOCBA QAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAg KiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWls LmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8u ZnVqaXdhcmExQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBSZWQgSGF0 LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgVGFrYW8gRnVqaXdhcmEgPHRha2Fv LmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMjAgUmVkIEhh dCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0zMiw4ICszMiwxMiBAQAotICNpbmNs dWRlICJpYnVzaW1jb250ZXh0LmgiCi0gCi0gI2lmZGVmIEdES19XSU5ET1dJTkdfV0FZTEFORAot KyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCi0rI2luY2x1ZGUgPGdkay93YXlsYW5k L2dka3dheWxhbmQuaD4KLSsjZWxzZQotICNpbmNsdWRlIDxnZGsvZ2Rrd2F5bGFuZC5oPgotICNl bmRpZgotKyNlbmRpZgotIAotICNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDIsIDkxLCAwKQotICMg IGRlZmluZSBERVBSRUNBVEVEX0dES19LRVlTWU1TIDEKLUBAIC01Miw3ICs1NiwxMSBAQCBzdHJ1 Y3QgX0lCdXNJTUNvbnRleHQgewotIAotICAgICAvKiBpbnN0YW5jZSBtZW1iZXJzICovCi0gICAg IEd0a0lNQ29udGV4dCAqc2xhdmU7Ci0rI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkK LSsgICAgR3RrV2lkZ2V0ICpjbGllbnRfd2luZG93OwotKyNlbHNlCi0gICAgIEdka1dpbmRvdyAq Y2xpZW50X3dpbmRvdzsKLSsjZW5kaWYKLSAKLSAgICAgSUJ1c0lucHV0Q29udGV4dCAqaWJ1c2Nv bnRleHQ7Ci0gCi1AQCAtNzMsNyArODEsMTIgQEAgc3RydWN0IF9JQnVzSU1Db250ZXh0IHsKLSAg ICAgR0NhbmNlbGxhYmxlICAgICpjYW5jZWxsYWJsZTsKLSAgICAgR1F1ZXVlICAgICAgICAgICpl dmVudHNfcXVldWU7Ci0gCi0tI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTMsIDApCi0rI2lm IEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKLSsgICAgR2RrU3VyZmFjZSAgICAgICpzdXJm YWNlOwotKyAgICBHZGtEZXZpY2UgICAgICAgKmRldmljZTsKLSsgICAgZG91YmxlICAgICAgICAg ICB4OwotKyAgICBkb3VibGUgICAgICAgICAgIHk7Ci0rI2Vsc2UKLSAgICAgZ2Jvb2xlYW4gICAg ICAgICB1c2VfYnV0dG9uX3ByZXNzX2V2ZW50OwotICNlbmRpZgotIH07Ci1AQCAtOTAsOSArMTAz LDExIEBAIHN0YXRpYyBndWludCAgICBfc2lnbmFsX3ByZWVkaXRfZW5kX2lkID0gMDsKLSBzdGF0 aWMgZ3VpbnQgICAgX3NpZ25hbF9kZWxldGVfc3Vycm91bmRpbmdfaWQgPSAwOwotIHN0YXRpYyBn dWludCAgICBfc2lnbmFsX3JldHJpZXZlX3N1cnJvdW5kaW5nX2lkID0gMDsKLSAKLSsjaWYgIUdU S19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKLSBzdGF0aWMgY29uc3QgZ2NoYXIgKl9ub19zbm9v cGVyX2FwcHMgPSBOT19TTk9PUEVSX0FQUFM7Ci0gc3RhdGljIGdib29sZWFuIF91c2Vfa2V5X3Nu b29wZXIgPSBFTkFCTEVfU05PT1BFUjsKLSBzdGF0aWMgZ3VpbnQgICAgX2tleV9zbm9vcGVyX2lk ID0gMDsKLSsjZW5kaWYKLSAKLSBzdGF0aWMgZ2Jvb2xlYW4gX3VzZV9zeW5jX21vZGUgPSBGQUxT RTsKLSAKLUBAIC0xMDEsOCArMTE2LDEwIEBAIHN0YXRpYyBnYm9vbGVhbiBfdXNlX2Rpc2NhcmRf cGFzc3dvcmQgPSBGQUxTRTsKLSAKLSBzdGF0aWMgR3RrSU1Db250ZXh0ICpfZm9jdXNfaW1fY29u dGV4dCA9IE5VTEw7Ci0gc3RhdGljIElCdXNJbnB1dENvbnRleHQgKl9mYWtlX2NvbnRleHQgPSBO VUxMOwotKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotIHN0YXRpYyBHZGtXaW5k b3cgKl9pbnB1dF93aW5kb3cgPSBOVUxMOwotIHN0YXRpYyBHdGtXaWRnZXQgKl9pbnB1dF93aWRn ZXQgPSBOVUxMOwotKyNlbmRpZgotIAotIC8qIGZ1bmN0aW9ucyBwcm90b3R5cGUgKi8KLSBzdGF0 aWMgdm9pZCAgICAgaWJ1c19pbV9jb250ZXh0X2NsYXNzX2luaXQgIChJQnVzSU1Db250ZXh0Q2xh c3MgICAgKmNsYXNzKTsKLUBAIC0xMTQsNyArMTMxLDExIEBAIHN0YXRpYyB2b2lkICAgICBpYnVz X2ltX2NvbnRleHRfZmluYWxpemUgICAgKEdPYmplY3QgICAgICAgICAgICAgICAqb2JqKTsKLSBz dGF0aWMgdm9pZCAgICAgaWJ1c19pbV9jb250ZXh0X3Jlc2V0ICAgICAgIChHdGtJTUNvbnRleHQg ICAgICAgICAgKmNvbnRleHQpOwotIHN0YXRpYyBnYm9vbGVhbiBpYnVzX2ltX2NvbnRleHRfZmls dGVyX2tleXByZXNzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoR3RrSU1Db250ZXh0ICAgICAgICAgICAqY29udGV4dCwKLSsjaWYgR1RLX0NIRUNLX1ZFUlNJ T04gKDMsIDk4LCA0KQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdka0V2ZW50ICAgICAgICAgICAgICAgKmtleSk7Ci0rI2Vsc2UKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtFdmVudEtleSAgICAgICAgICAgICpr ZXkpOwotKyNlbmRpZgotIHN0YXRpYyB2b2lkICAgICBpYnVzX2ltX2NvbnRleHRfZm9jdXNfaW4g ICAgKEd0a0lNQ29udGV4dCAgICAgICAgICAqY29udGV4dCk7Ci0gc3RhdGljIHZvaWQgICAgIGli dXNfaW1fY29udGV4dF9mb2N1c19vdXQgICAoR3RrSU1Db250ZXh0ICAgICAgICAgICpjb250ZXh0 KTsKLSBzdGF0aWMgdm9pZCAgICAgaWJ1c19pbV9jb250ZXh0X2dldF9wcmVlZGl0X3N0cmluZwot QEAgLTEyMiw5ICsxNDMsMTUgQEAgc3RhdGljIHZvaWQgICAgIGlidXNfaW1fY29udGV4dF9nZXRf cHJlZWRpdF9zdHJpbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnY2hhciAgICAgICAgICAgICAgICAgICoqc3RyLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBhbmdvQXR0ckxpc3QgICAgICAgICAgKiphdHRycywK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAg ICAgICAgICAgICAgICpjdXJzb3JfcG9zKTsKLSsjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4 LCA0KQotK3N0YXRpYyB2b2lkICAgICBpYnVzX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aWRnZXQK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHdGtJTUNvbnRl eHQgICAgICAgICAgICpjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEd0a1dpZGdldCAgICAgICAgICAgICAgKmNsaWVudCk7Ci0rI2Vsc2UKLSBz dGF0aWMgdm9pZCAgICAgaWJ1c19pbV9jb250ZXh0X3NldF9jbGllbnRfd2luZG93Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3RrSU1Db250ZXh0ICAgICAg ICAgICAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHZGtXaW5kb3cgICAgICAgICAgICAgICpjbGllbnQpOwotKyNlbmRpZgotIHN0YXRpYyB2 b2lkICAgICBpYnVzX2ltX2NvbnRleHRfc2V0X2N1cnNvcl9sb2NhdGlvbgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEd0a0lNQ29udGV4dCAgICAgICAgICAg KmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R2RrUmVjdGFuZ2xlICAgICAgICAgICAqYXJlYSk7Ci1AQCAtMjM5LDYgKzI2Niw3IEBAIGlidXNf aW1fY29udGV4dF9uZXcgKHZvaWQpCi0gICAgIHJldHVybiBJQlVTX0lNX0NPTlRFWFQgKG9iaik7 Ci0gfQotIAotKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotIHN0YXRpYyBnYm9v bGVhbgotIF9mb2N1c19pbl9jYiAoR3RrV2lkZ2V0ICAgICAqd2lkZ2V0LAotICAgICAgICAgICAg ICAgR2RrRXZlbnRGb2N1cyAqZXZlbnQsCi1AQCAtMjYwLDIyICsyODgsNDEgQEAgX2ZvY3VzX291 dF9jYiAoR3RrV2lkZ2V0ICAgICAqd2lkZ2V0LAotICAgICB9Ci0gICAgIHJldHVybiBGQUxTRTsK LSB9Ci0rI2VuZGlmIC8qIGVuZCBvZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpICovCi0g Ci0gc3RhdGljIGdib29sZWFuCi0gaWJ1c19pbV9jb250ZXh0X2NvbW1pdF9ldmVudCAoSUJ1c0lN Q29udGV4dCAqaWJ1c2ltY29udGV4dCwKLSsjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0 KQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka0V2ZW50ICAgICAgKmV2ZW50KQot KyNlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrRXZlbnRLZXkgICAqZXZl bnQpCi0rI2VuZGlmCi0gewotKyAgICBndWludCBrZXl2YWwgPSAwOwotKyAgICBHZGtNb2RpZmll clR5cGUgc3RhdGUgPSAwOwotICAgICBpbnQgaTsKLSAgICAgR2RrTW9kaWZpZXJUeXBlIG5vX3Rl eHRfaW5wdXRfbWFzazsKLSAgICAgZ3VuaWNoYXIgY2g7Ci0gCi0rI2lmIEdUS19DSEVDS19WRVJT SU9OICgzLCA5OCwgNCkKLSsgICAgaWYgKGdka19ldmVudF9nZXRfZXZlbnRfdHlwZSAoZXZlbnQp ID09IEdES19LRVlfUkVMRUFTRSkKLSsgICAgICAgIHJldHVybiBGQUxTRTsKLSsgICAga2V5dmFs ID0gZ2RrX2tleV9ldmVudF9nZXRfa2V5dmFsIChldmVudCk7Ci0rICAgIHN0YXRlID0gZ2RrX2V2 ZW50X2dldF9tb2RpZmllcl9zdGF0ZSAoZXZlbnQpOwotKyNlbHNlCi0gICAgIGlmIChldmVudC0+ dHlwZSA9PSBHREtfS0VZX1JFTEVBU0UpCi0gICAgICAgICByZXR1cm4gRkFMU0U7Ci0rICAgIGtl eXZhbCA9IGV2ZW50LT5rZXl2YWw7Ci0rICAgIHN0YXRlID0gZXZlbnQtPnN0YXRlOwotKyNlbmRp ZgotKwotICAgICAvKiBJZ25vcmUgbW9kaWZpZXIga2V5IHByZXNzZXMgKi8KLSAgICAgZm9yIChp ID0gMDsgaSA8IEdfTl9FTEVNRU5UUyAoSUJVU19DT01QT1NFX0lHTk9SRV9LRVlMSVNUKTsgaSsr KQotLSAgICAgICAgaWYgKGV2ZW50LT5rZXl2YWwgPT0gSUJVU19DT01QT1NFX0lHTk9SRV9LRVlM SVNUW2ldKQotKyAgICAgICAgaWYgKGtleXZhbCA9PSBJQlVTX0NPTVBPU0VfSUdOT1JFX0tFWUxJ U1RbaV0pCi0gICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotLSNpZiBHVEtfQ0hFQ0tfVkVSU0lP TiAoMywgNCwgMCkKLSsjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotKyAgICBub190 ZXh0X2lucHV0X21hc2sgPSBHREtfTU9ESUZJRVJfTUFTSzsKLSsjZWxpZiBHVEtfQ0hFQ0tfVkVS U0lPTiAoMywgNCwgMCkKLSAgICAgbm9fdGV4dF9pbnB1dF9tYXNrID0gZ2RrX2tleW1hcF9nZXRf bW9kaWZpZXJfbWFzayAoCi0gICAgICAgICAgICAgZ2RrX2tleW1hcF9nZXRfZm9yX2Rpc3BsYXkg KGdka19kaXNwbGF5X2dldF9kZWZhdWx0ICgpKSwKLSAgICAgICAgICAgICBHREtfTU9ESUZJRVJf SU5URU5UX05PX1RFWFRfSU5QVVQpOwotQEAgLTI5MCwxMyArMzM3LDEzIEBAIGlidXNfaW1fY29u dGV4dF9jb21taXRfZXZlbnQgKElCdXNJTUNvbnRleHQgKmlidXNpbWNvbnRleHQsCi0gCi0gIyAg dW5kZWYgX0lCVVNfTk9fVEVYVF9JTlBVVF9NT0RfTUFTSwotICNlbmRpZgotLSAgICBpZiAoZXZl bnQtPnN0YXRlICYgbm9fdGV4dF9pbnB1dF9tYXNrIHx8Ci0tICAgICAgICBldmVudC0+a2V5dmFs ID09IEdES19LRVlfUmV0dXJuIHx8Ci0tICAgICAgICBldmVudC0+a2V5dmFsID09IEdES19LRVlf SVNPX0VudGVyIHx8Ci0tICAgICAgICBldmVudC0+a2V5dmFsID09IEdES19LRVlfS1BfRW50ZXIp IHsKLSsgICAgaWYgKHN0YXRlICYgbm9fdGV4dF9pbnB1dF9tYXNrIHx8Ci0rICAgICAgICBrZXl2 YWwgPT0gR0RLX0tFWV9SZXR1cm4gfHwKLSsgICAgICAgIGtleXZhbCA9PSBHREtfS0VZX0lTT19F bnRlciB8fAotKyAgICAgICAga2V5dmFsID09IEdES19LRVlfS1BfRW50ZXIpIHsKLSAgICAgICAg IHJldHVybiBGQUxTRTsKLSAgICAgfQotLSAgICBjaCA9IGlidXNfa2V5dmFsX3RvX3VuaWNvZGUg KGV2ZW50LT5rZXl2YWwpOwotKyAgICBjaCA9IGlidXNfa2V5dmFsX3RvX3VuaWNvZGUgKGtleXZh bCk7Ci0gICAgIGlmIChjaCAhPSAwICYmICFnX3VuaWNoYXJfaXNjbnRybCAoY2gpKSB7Ci0gICAg ICAgICBJQnVzVGV4dCAqdGV4dCA9IGlidXNfdGV4dF9uZXdfZnJvbV91bmljaGFyIChjaCk7Ci0g ICAgICAgICBnX3NpZ25hbF9lbWl0IChpYnVzaW1jb250ZXh0LCBfc2lnbmFsX2NvbW1pdF9pZCwg MCwgdGV4dC0+dGV4dCk7Ci1AQCAtMzA3LDE0ICszNTQsMjYgQEAgaWJ1c19pbV9jb250ZXh0X2Nv bW1pdF9ldmVudCAoSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCwKLSAgICByZXR1cm4gRkFM U0U7Ci0gfQotIAotK3N0cnVjdCBfUHJvY2Vzc0tleUV2ZW50RGF0YSB7Ci0rICAgIEdka0V2ZW50 ICpldmVudDsKLSsgICAgSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dDsKLSt9OwotKwotK3R5 cGVkZWYgc3RydWN0IF9Qcm9jZXNzS2V5RXZlbnREYXRhIFByb2Nlc3NLZXlFdmVudERhdGE7Ci0r Ci0gc3RhdGljIHZvaWQKLSBfcHJvY2Vzc19rZXlfZXZlbnRfZG9uZSAoR09iamVjdCAgICAgICpv YmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAqcmVzLAotICAg ICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgIHVzZXJfZGF0YSkKLSB7Ci0gICAg IElCdXNJbnB1dENvbnRleHQgKmNvbnRleHQgPSAoSUJ1c0lucHV0Q29udGV4dCAqKW9iamVjdDsK LS0gICAgR2RrRXZlbnRLZXkgKmV2ZW50ID0gKEdka0V2ZW50S2V5ICopIHVzZXJfZGF0YTsKLSsK LSsgICAgUHJvY2Vzc0tleUV2ZW50RGF0YSAqZGF0YSA9IChQcm9jZXNzS2V5RXZlbnREYXRhICop dXNlcl9kYXRhOwotKyAgICBHZGtFdmVudCAqZXZlbnQgPSBkYXRhLT5ldmVudDsKLSsgICAgSUJ1 c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCA9IGRhdGEtPmlidXNpbWNvbnRleHQ7Ci0gICAgIEdF cnJvciAqZXJyb3IgPSBOVUxMOwotKwotKyAgICBnX3NsaWNlX2ZyZWUgKFByb2Nlc3NLZXlFdmVu dERhdGEsIGRhdGEpOwotICAgICBnYm9vbGVhbiByZXR2YWwgPSBpYnVzX2lucHV0X2NvbnRleHRf cHJvY2Vzc19rZXlfZXZlbnRfYXN5bmNfZmluaXNoICgKLSAgICAgICAgICAgICBjb250ZXh0LAot ICAgICAgICAgICAgIHJlcywKLUBAIC0zMjYsNDYgKzM4NSw5NiBAQCBfcHJvY2Vzc19rZXlfZXZl bnRfZG9uZSAoR09iamVjdCAgICAgICpvYmplY3QsCi0gICAgIH0KLSAKLSAgICAgaWYgKHJldHZh bCA9PSBGQUxTRSkgewotLSAgICAgICAgZXZlbnQtPnN0YXRlIHw9IElCVVNfSUdOT1JFRF9NQVNL OwotLSAgICAgICAgZ2RrX2V2ZW50X3B1dCAoKEdka0V2ZW50ICopZXZlbnQpOwotKyNpZiBHVEtf Q0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCi0rICAgICAgICBnX3JldHVybl9pZl9mYWlsIChHVEtf SVNfSU1fQ09OVEVYVCAoaWJ1c2ltY29udGV4dCkpOwotKyAgICAgICAgZ3RrX2ltX2NvbnRleHRf ZmlsdGVyX2tleSAoCi0rICAgICAgICAgICAgICAgIEdUS19JTV9DT05URVhUIChpYnVzaW1jb250 ZXh0KSwKLSsgICAgICAgICAgICAgICAgZ2RrX2V2ZW50X2dldF9ldmVudF90eXBlIChldmVudCkg PT0gR0RLX0tFWV9QUkVTUywKLSsgICAgICAgICAgICAgICAgZ2RrX2V2ZW50X2dldF9zdXJmYWNl IChldmVudCksCi0rICAgICAgICAgICAgICAgIGdka19ldmVudF9nZXRfZGV2aWNlIChldmVudCks Ci0rICAgICAgICAgICAgICAgIGdka19ldmVudF9nZXRfdGltZSAoZXZlbnQpLAotKyAgICAgICAg ICAgICAgICBnZGtfa2V5X2V2ZW50X2dldF9rZXljb2RlIChldmVudCksCi0rICAgICAgICAgICAg ICAgIGdka19ldmVudF9nZXRfbW9kaWZpZXJfc3RhdGUgKGV2ZW50KSB8IElCVVNfSUdOT1JFRF9N QVNLLAotKyAgICAgICAgICAgICAgICAwKTsKLSsjZWxzZQotKyAgICAgICAgKChHZGtFdmVudEtl eSAqKWV2ZW50KS0+c3RhdGUgfD0gSUJVU19JR05PUkVEX01BU0s7Ci0rICAgICAgICBnZGtfZXZl bnRfcHV0IChldmVudCk7Ci0rI2VuZGlmCi0gICAgIH0KLS0gICAgZ2RrX2V2ZW50X2ZyZWUgKChH ZGtFdmVudCAqKWV2ZW50KTsKLSsjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotKyAg ICBnZGtfZXZlbnRfdW5yZWYgKGV2ZW50KTsKLSsjZWxzZQotKyAgICBnZGtfZXZlbnRfZnJlZSAo ZXZlbnQpOwotKyNlbmRpZgotIH0KLSAKLSBzdGF0aWMgZ2Jvb2xlYW4KLSBfcHJvY2Vzc19rZXlf ZXZlbnQgKElCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCi0tICAgICAgICAgICAgICAgICAgICBH ZGtFdmVudEtleSAgICAgICpldmVudCkKLSsjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0 KQotKyAgICAgICAgICAgICAgICAgICAgR2RrRXZlbnQgICAgICAgICAqZXZlbnQsCi0rI2Vsc2UK LSsgICAgICAgICAgICAgICAgICAgIEdka0V2ZW50S2V5ICAgICAgKmV2ZW50LAotKyNlbmRpZgot KyAgICAgICAgICAgICAgICAgICAgSUJ1c0lNQ29udGV4dCAgICAqaWJ1c2ltY29udGV4dCkKLSB7 Ci0tICAgIGd1aW50IHN0YXRlID0gZXZlbnQtPnN0YXRlOwotKyAgICBndWludCBzdGF0ZTsKLSsg ICAgZ3VpbnQga2V5dmFsID0gMDsKLSsgICAgZ3VpbnQxNiBoYXJkd2FyZV9rZXljb2RlID0gMDsK LSsgICAgZ3VpbnQga2V5Y29kZSA9IDA7Ci0gICAgIGdib29sZWFuIHJldHZhbCA9IEZBTFNFOwot IAotLSAgICBpZiAoZXZlbnQtPnR5cGUgPT0gR0RLX0tFWV9SRUxFQVNFKSB7Ci0rI2lmIEdUS19D SEVDS19WRVJTSU9OICgzLCA5OCwgNCkKLSsgICAgR2RrTW9kaWZpZXJUeXBlIGdka3N0YXRlID0g Z2RrX2V2ZW50X2dldF9tb2RpZmllcl9zdGF0ZSAoZXZlbnQpOwotKyAgICBzdGF0ZSA9ICh1aW50 KWdka3N0YXRlOwotKyAgICBpZiAoZ2RrX2V2ZW50X2dldF9ldmVudF90eXBlIChldmVudCkgPT0g R0RLX0tFWV9SRUxFQVNFKQotICAgICAgICAgc3RhdGUgfD0gSUJVU19SRUxFQVNFX01BU0s7Ci0t ICAgIH0KLSsgICAga2V5dmFsID0gZ2RrX2tleV9ldmVudF9nZXRfa2V5dmFsIChldmVudCk7Ci0r ICAgIGhhcmR3YXJlX2tleWNvZGUgPSBnZGtfa2V5X2V2ZW50X2dldF9rZXljb2RlIChldmVudCk7 Ci0rI2Vsc2UKLSsgICAgc3RhdGUgPSBldmVudC0+c3RhdGU7Ci0rICAgIGlmIChldmVudC0+dHlw ZSA9PSBHREtfS0VZX1JFTEVBU0UpCi0rICAgICAgICBzdGF0ZSB8PSBJQlVTX1JFTEVBU0VfTUFT SzsKLSsgICAga2V5dmFsID0gZXZlbnQtPmtleXZhbDsKLSsgICAgaGFyZHdhcmVfa2V5Y29kZSA9 IGV2ZW50LT5oYXJkd2FyZV9rZXljb2RlOwotKyNlbmRpZgotKyAgICBrZXljb2RlID0gaGFyZHdh cmVfa2V5Y29kZTsKLSAKLSAgICAgaWYgKF91c2Vfc3luY19tb2RlKSB7Ci0gICAgICAgICByZXR2 YWwgPSBpYnVzX2lucHV0X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnQgKGNvbnRleHQsCi0tICAg ICAgICAgICAgZXZlbnQtPmtleXZhbCwKLS0gICAgICAgICAgICBldmVudC0+aGFyZHdhcmVfa2V5 Y29kZSAtIDgsCi0rICAgICAgICAgICAga2V5dmFsLAotKyAgICAgICAgICAgIGtleWNvZGUgLSA4 LAotICAgICAgICAgICAgIHN0YXRlKTsKLSAgICAgfQotICAgICBlbHNlIHsKLSsgICAgICAgIFBy b2Nlc3NLZXlFdmVudERhdGEgKmRhdGEgPSBnX3NsaWNlX25ldzAgKFByb2Nlc3NLZXlFdmVudERh dGEpOwotKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCi0rICAgICAgICBkYXRhLT5l dmVudCA9IGdka19ldmVudF9yZWYgKGV2ZW50KTsKLSsjZWxzZQotKyAgICAgICAgZGF0YS0+ZXZl bnQgPSBnZGtfZXZlbnRfY29weSAoKEdka0V2ZW50ICopZXZlbnQpOwotKyNlbmRpZgotKyAgICAg ICAgZGF0YS0+aWJ1c2ltY29udGV4dCA9IGlidXNpbWNvbnRleHQ7Ci0gICAgICAgICBpYnVzX2lu cHV0X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnRfYXN5bmMgKGNvbnRleHQsCi0tICAgICAgICAg ICAgZXZlbnQtPmtleXZhbCwKLS0gICAgICAgICAgICBldmVudC0+aGFyZHdhcmVfa2V5Y29kZSAt IDgsCi0rICAgICAgICAgICAga2V5dmFsLAotKyAgICAgICAgICAgIGtleWNvZGUgLSA4LAotICAg ICAgICAgICAgIHN0YXRlLAotICAgICAgICAgICAgIC0xLAotICAgICAgICAgICAgIE5VTEwsCi0g ICAgICAgICAgICAgX3Byb2Nlc3Nfa2V5X2V2ZW50X2RvbmUsCi0tICAgICAgICAgICAgZ2RrX2V2 ZW50X2NvcHkgKChHZGtFdmVudCAqKSBldmVudCkpOwotKyAgICAgICAgICAgIGRhdGEpOwotIAot ICAgICAgICAgcmV0dmFsID0gVFJVRTsKLSAgICAgfQotIAotKyAgICAvKiBHVEs0IGRvZXMgbm90 IHByb3ZpZGUgZ3RrX2tleV9zbm9vcGVyX2luc3RhbGwoKSBhbmQgYWxzbwotKyAgICAgKiBHdGtJ TUNvbnRleHRDbGFzcy0+ZmlsdGVyX2tleXByZXNzKCkgY2Fubm90IHNlbmQgdGhlIHVwZGF0ZWQK LSsgICAgICogR2RrRXZlbnRLZXkgc28gZXZlbnQtPnN0YXRlIGlzIG5vdCB1cGRhdGVkIGhlcmUg aW4gR1RLNC4KLSsgICAgICovCi0rI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCi0g ICAgIGlmIChyZXR2YWwpCi0gICAgICAgICBldmVudC0+c3RhdGUgfD0gSUJVU19IQU5ETEVEX01B U0s7Ci0gICAgIGVsc2UKLSAgICAgICAgIGV2ZW50LT5zdGF0ZSB8PSBJQlVTX0lHTk9SRURfTUFT SzsKLSsjZW5kaWYKLSAKLSAgICAgcmV0dXJuIHJldHZhbDsKLSB9Ci1AQCAtNDI1LDYgKzUzNCw3 IEBAIF9zZXRfY29udGVudF90eXBlIChJQnVzSU1Db250ZXh0ICpjb250ZXh0KQotIH0KLSAKLSAK LSsjaWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKLSBzdGF0aWMgZ2ludAotIF9rZXlf c25vb3Blcl9jYiAoR3RrV2lkZ2V0ICAgKndpZGdldCwKLSAgICAgICAgICAgICAgICAgIEdka0V2 ZW50S2V5ICpldmVudCwKLUBAIC01MjYsNyArNjM2LDcgQEAgX2tleV9zbm9vcGVyX2NiIChHdGtX aWRnZXQgICAqd2lkZ2V0LAotICAgICAgICAgaWJ1c2ltY29udGV4dC0+dGltZSA9IGV2ZW50LT50 aW1lOwotICAgICB9Ci0gCi0tICAgIHJldHZhbCA9IF9wcm9jZXNzX2tleV9ldmVudCAoaWJ1c2Nv bnRleHQsIGV2ZW50KTsKLSsgICAgcmV0dmFsID0gX3Byb2Nlc3Nfa2V5X2V2ZW50IChpYnVzY29u dGV4dCwgZXZlbnQsIGlidXNpbWNvbnRleHQpOwotIAotICAgICBpZiAoaWJ1c2ltY29udGV4dCAh PSBOVUxMKSB7Ci0gICAgICAgICAvKiB1bnJlZiBpYnVzaW1jb250ZXh0IGNvdWxkIGNhbGwgaWJ1 c19pbV9jb250ZXh0X2ZpbmFsaXplIGhlcmUKLUBAIC01MzcsNiArNjQ3LDcgQEAgX2tleV9zbm9v cGVyX2NiIChHdGtXaWRnZXQgICAqd2lkZ2V0LAotIAotICAgICByZXR1cm4gcmV0dmFsOwotIH0K LSsjZW5kaWYKLSAKLSBzdGF0aWMgZ2Jvb2xlYW4KLSBfZ2V0X2Jvb2xlYW5fZW52KGNvbnN0IGdj aGFyICpuYW1lLAotQEAgLTU5OSw3ICs3MTAsMTEgQEAgaWJ1c19pbV9jb250ZXh0X2NsYXNzX2lu aXQgKElCdXNJTUNvbnRleHRDbGFzcyAqY2xhc3MpCi0gICAgIGltX2NvbnRleHRfY2xhc3MtPmZv Y3VzX291dCA9IGlidXNfaW1fY29udGV4dF9mb2N1c19vdXQ7Ci0gICAgIGltX2NvbnRleHRfY2xh c3MtPmZpbHRlcl9rZXlwcmVzcyA9IGlidXNfaW1fY29udGV4dF9maWx0ZXJfa2V5cHJlc3M7Ci0g ICAgIGltX2NvbnRleHRfY2xhc3MtPmdldF9wcmVlZGl0X3N0cmluZyA9IGlidXNfaW1fY29udGV4 dF9nZXRfcHJlZWRpdF9zdHJpbmc7Ci0rI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkK LSsgICAgaW1fY29udGV4dF9jbGFzcy0+c2V0X2NsaWVudF93aWRnZXQgPSBpYnVzX2ltX2NvbnRl eHRfc2V0X2NsaWVudF93aWRnZXQ7Ci0rI2Vsc2UKLSAgICAgaW1fY29udGV4dF9jbGFzcy0+c2V0 X2NsaWVudF93aW5kb3cgPSBpYnVzX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aW5kb3c7Ci0rI2Vu ZGlmCi0gICAgIGltX2NvbnRleHRfY2xhc3MtPnNldF9jdXJzb3JfbG9jYXRpb24gPSBpYnVzX2lt X2NvbnRleHRfc2V0X2N1cnNvcl9sb2NhdGlvbjsKLSAgICAgaW1fY29udGV4dF9jbGFzcy0+c2V0 X3VzZV9wcmVlZGl0ID0gaWJ1c19pbV9jb250ZXh0X3NldF91c2VfcHJlZWRpdDsKLSAgICAgaW1f Y29udGV4dF9jbGFzcy0+c2V0X3N1cnJvdW5kaW5nID0gaWJ1c19pbV9jb250ZXh0X3NldF9zdXJy b3VuZGluZzsKLUBAIC02MzAsOCArNzQ1LDEwIEBAIGlidXNfaW1fY29udGV4dF9jbGFzc19pbml0 IChJQnVzSU1Db250ZXh0Q2xhc3MgKmNsYXNzKQotICAgICAgICAgZ19zaWduYWxfbG9va3VwICgi cmV0cmlldmUtc3Vycm91bmRpbmciLCBHX1RZUEVfRlJPTV9DTEFTUyAoY2xhc3MpKTsKLSAgICAg Z19hc3NlcnQgKF9zaWduYWxfcmV0cmlldmVfc3Vycm91bmRpbmdfaWQgIT0gMCk7Ci0gCi0rI2lm ICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCi0gICAgIF91c2Vfa2V5X3Nub29wZXIgPSAh X2dldF9ib29sZWFuX2VudiAoIklCVVNfRElTQUJMRV9TTk9PUEVSIiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhKEVOQUJMRV9TTk9PUEVSKSk7Ci0rI2VuZGlm Ci0gICAgIF91c2Vfc3luY19tb2RlID0gX2dldF9ib29sZWFuX2VudiAoIklCVVNfRU5BQkxFX1NZ TkNfTU9ERSIsIEZBTFNFKTsKLSAgICAgX3VzZV9kaXNjYXJkX3Bhc3N3b3JkID0gX2dldF9ib29s ZWFuX2VudiAoIklCVVNfRElTQ0FSRF9QQVNTV09SRCIsIEZBTFNFKTsKLSAKLUBAIC02NTYsNiAr NzczLDcgQEAgaWJ1c19pbV9jb250ZXh0X2NsYXNzX2luaXQgKElCdXNJTUNvbnRleHRDbGFzcyAq Y2xhc3MpCi0gICAgIGdfc3RyZnJlZXYgKGFwcHMpOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAotIH0KLSAKLSsjaWYgIUdUS19DSEVDS19WRVJTSU9O ICgzLCA5OCwgNCkKLSAgICAgLyogZW52IElCVVNfRElTQUJMRV9TTk9PUEVSIGRvZXMgbm90IGV4 aXN0ICovCi0gICAgIGlmIChfdXNlX2tleV9zbm9vcGVyKSB7Ci0gICAgICAgICAvKiBkaXNhYmxl IHNub29wZXIgaWYgYXBwIGlzIGluIF9ub19zbm9vcGVyX2FwcHMgKi8KLUBAIC02NjQsNiArNzgy LDcgQEAgaWJ1c19pbV9jb250ZXh0X2NsYXNzX2luaXQgKElCdXNJTUNvbnRleHRDbGFzcyAqY2xh c3MpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ub19zbm9vcGVy X2FwcHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFKTsK LSAgICAgfQotKyNlbmRpZgotICAgICBpZiAoIV91c2VfZGlzY2FyZF9wYXNzd29yZCkgewotICAg ICAgICAgQ0hFQ0tfQVBQX0lOX0NTVl9FTlZfVkFSSUFCTEVTIChfdXNlX2Rpc2NhcmRfcGFzc3dv cmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCVVNfRElTQ0FS RF9QQVNTV09SRF9BUFBTLAotQEAgLTY4Niw2ICs4MDUsNyBAQCBpYnVzX2ltX2NvbnRleHRfY2xh c3NfaW5pdCAoSUJ1c0lNQ29udGV4dENsYXNzICpjbGFzcykKLSAgICAgfQotIAotIAotKyNpZiAh R1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotICAgICAvKiBhbHdheXMgaW5zdGFsbCBzbm9v cGVyICovCi0gICAgIGlmIChfa2V5X3Nub29wZXJfaWQgPT0gMCkgewotICNwcmFnbWEgR0NDIGRp YWdub3N0aWMgcHVzaAotQEAgLTY5Myw2ICs4MTMsNyBAQCBpYnVzX2ltX2NvbnRleHRfY2xhc3Nf aW5pdCAoSUJ1c0lNQ29udGV4dENsYXNzICpjbGFzcykKLSAgICAgICAgIF9rZXlfc25vb3Blcl9p ZCA9IGd0a19rZXlfc25vb3Blcl9pbnN0YWxsIChfa2V5X3Nub29wZXJfY2IsIE5VTEwpOwotICNw cmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0gICAgIH0KLSsjZW5kaWYKLSAKLSAgICAgX2RhZW1v bl9uYW1lX3dhdGNoX2lkID0gZ19idXNfd2F0Y2hfbmFtZSAoR19CVVNfVFlQRV9TRVNTSU9OLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYnVzX2J1c19n ZXRfc2VydmljZV9uYW1lIChfYnVzKSwKLUBAIC03MDYsNiArODI3LDcgQEAgaWJ1c19pbV9jb250 ZXh0X2NsYXNzX2luaXQgKElCdXNJTUNvbnRleHRDbGFzcyAqY2xhc3MpCi0gc3RhdGljIHZvaWQK LSBpYnVzX2ltX2NvbnRleHRfY2xhc3NfZmluaSAoSUJ1c0lNQ29udGV4dENsYXNzICpjbGFzcykK LSB7Ci0rI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCi0gICAgIGlmIChfa2V5X3Nu b29wZXJfaWQgIT0gMCkgewotICAgICAgICAgSURFQlVHICgic25vb3BlciBpcyB0ZXJtaW5hdGVk LiIpOwotICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotQEAgLTcxNCw2ICs4MzYsNyBAQCBp YnVzX2ltX2NvbnRleHRfY2xhc3NfZmluaSAoSUJ1c0lNQ29udGV4dENsYXNzICpjbGFzcykKLSAj cHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotICAgICAgICAgX2tleV9zbm9vcGVyX2lkID0gMDsK LSAgICAgfQotKyNlbmRpZgotIAotICAgICBnX2J1c191bndhdGNoX25hbWUgKF9kYWVtb25fbmFt ZV93YXRjaF9pZCk7Ci0gfQotQEAgLTg0OSw3ICs5NzIsMTEgQEAgaWJ1c19pbV9jb250ZXh0X2Zp bmFsaXplIChHT2JqZWN0ICpvYmopCi0gICAgICAgICBpYnVzX3Byb3h5X2Rlc3Ryb3kgKChJQnVz UHJveHkgKilpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCk7Ci0gICAgIH0KLSAKLSsjaWYgR1RL X0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotKyAgICBpYnVzX2ltX2NvbnRleHRfc2V0X2NsaWVu dF93aWRnZXQgKChHdGtJTUNvbnRleHQgKilpYnVzaW1jb250ZXh0LCBOVUxMKTsKLSsjZWxzZQot ICAgICBpYnVzX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aW5kb3cgKChHdGtJTUNvbnRleHQgKilp YnVzaW1jb250ZXh0LCBOVUxMKTsKLSsjZW5kaWYKLSAKLSAgICAgaWYgKGlidXNpbWNvbnRleHQt PnNsYXZlKSB7Ci0gICAgICAgICBnX29iamVjdF91bnJlZiAoaWJ1c2ltY29udGV4dC0+c2xhdmUp OwotQEAgLTg2NCw4ICs5OTEsMTMgQEAgaWJ1c19pbV9jb250ZXh0X2ZpbmFsaXplIChHT2JqZWN0 ICpvYmopCi0gICAgICAgICBwYW5nb19hdHRyX2xpc3RfdW5yZWYgKGlidXNpbWNvbnRleHQtPnBy ZWVkaXRfYXR0cnMpOwotICAgICB9Ci0gCi0rI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwg NCkKLSsgICAgZ19xdWV1ZV9mcmVlX2Z1bGwgKGlidXNpbWNvbnRleHQtPmV2ZW50c19xdWV1ZSwK LSsgICAgICAgICAgICAgICAgICAgICAgIChHRGVzdHJveU5vdGlmeSlnZGtfZXZlbnRfdW5yZWYp OwotKyNlbHNlCi0gICAgIGdfcXVldWVfZnJlZV9mdWxsIChpYnVzaW1jb250ZXh0LT5ldmVudHNf cXVldWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpZ2RrX2V2ZW50 X2ZyZWUpOwotKyNlbmRpZgotIAotICAgICBHX09CSkVDVF9DTEFTUyhwYXJlbnRfY2xhc3MpLT5m aW5hbGl6ZSAob2JqKTsKLSB9Ci1AQCAtOTAyLDcgKzEwMzQsMTEgQEAgaWJ1c19pbV9jb250ZXh0 X2NsZWFyX3ByZWVkaXRfdGV4dCAoSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCkKLSAKLSBz dGF0aWMgZ2Jvb2xlYW4KLSBpYnVzX2ltX2NvbnRleHRfZmlsdGVyX2tleXByZXNzIChHdGtJTUNv bnRleHQgKmNvbnRleHQsCi0rI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtFdmVudCAgICAgKmV2ZW50KQotKyNlbHNl Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrRXZlbnRLZXkgICpldmVudCkK LSsjZW5kaWYKLSB7Ci0gICAgIElERUJVRyAoIiVzIiwgX19GVU5DVElPTl9fKTsKLSAKLUBAIC05 MTcsNiArMTA1MywxNSBAQCBpYnVzX2ltX2NvbnRleHRfZmlsdGVyX2tleXByZXNzIChHdGtJTUNv bnRleHQgKmNvbnRleHQsCi0gICAgIGlmICghaWJ1c2ltY29udGV4dC0+aGFzX2ZvY3VzKQotICAg ICAgICAgcmV0dXJuIGd0a19pbV9jb250ZXh0X2ZpbHRlcl9rZXlwcmVzcyAoaWJ1c2ltY29udGV4 dC0+c2xhdmUsIGV2ZW50KTsKLSAKLSsjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQot KyAgICB7Ci0rICAgICAgICBHZGtNb2RpZmllclR5cGUgc3RhdGUgPSBnZGtfZXZlbnRfZ2V0X21v ZGlmaWVyX3N0YXRlIChldmVudCk7Ci0rICAgICAgICBpZiAoc3RhdGUgJiBJQlVTX0hBTkRMRURf TUFTSykKLSsgICAgICAgICAgICByZXR1cm4gVFJVRTsKLSsgICAgICAgIGlmIChzdGF0ZSAmIElC VVNfSUdOT1JFRF9NQVNLKQotKyAgICAgICAgICAgIHJldHVybiBpYnVzX2ltX2NvbnRleHRfY29t bWl0X2V2ZW50IChpYnVzaW1jb250ZXh0LCBldmVudCk7Ci0rICAgIH0KLSsjZWxzZQotICAgICBp ZiAoZXZlbnQtPnN0YXRlICYgSUJVU19IQU5ETEVEX01BU0spCi0gICAgICAgICByZXR1cm4gVFJV RTsKLSAKLUBAIC05MzEsMTcgKzEwNzYsMjggQEAgaWJ1c19pbV9jb250ZXh0X2ZpbHRlcl9rZXlw cmVzcyAoR3RrSU1Db250ZXh0ICpjb250ZXh0LAotICAgICBpZiAoaWJ1c2ltY29udGV4dC0+Y2xp ZW50X3dpbmRvdyA9PSBOVUxMICYmIGV2ZW50LT53aW5kb3cgIT0gTlVMTCkKLSAgICAgICAgIGd0 a19pbV9jb250ZXh0X3NldF9jbGllbnRfd2luZG93ICgoR3RrSU1Db250ZXh0ICopaWJ1c2ltY29u dGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC0+ d2luZG93KTsKLSsjZW5kaWYKLSAKLSAgICAgX3JlcXVlc3Rfc3Vycm91bmRpbmdfdGV4dCAoaWJ1 c2ltY29udGV4dCk7Ci0gCi0rI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKLSsgICAg aWJ1c2ltY29udGV4dC0+dGltZSA9IGdka19ldmVudF9nZXRfdGltZSAoZXZlbnQpOwotKyAgICBp YnVzaW1jb250ZXh0LT5zdXJmYWNlPSBnZGtfZXZlbnRfZ2V0X3N1cmZhY2UgKGV2ZW50KTsKLSsg ICAgaWJ1c2ltY29udGV4dC0+ZGV2aWNlID0gZ2RrX2V2ZW50X2dldF9kZXZpY2UgKGV2ZW50KTsK LSsgICAgZ2RrX2V2ZW50X2dldF9wb3NpdGlvbiAoZXZlbnQsICZpYnVzaW1jb250ZXh0LT54LCAm aWJ1c2ltY29udGV4dC0+eSk7Ci0rI2Vsc2UKLSAgICAgaWJ1c2ltY29udGV4dC0+dGltZSA9IGV2 ZW50LT50aW1lOwotKyNlbmRpZgotIAotICAgICBpZiAoaWJ1c2ltY29udGV4dC0+aWJ1c2NvbnRl eHQpIHsKLS0gICAgICAgIGlmIChfcHJvY2Vzc19rZXlfZXZlbnQgKGlidXNpbWNvbnRleHQtPmli dXNjb250ZXh0LCBldmVudCkpCi0rICAgICAgICBpZiAoX3Byb2Nlc3Nfa2V5X2V2ZW50IChpYnVz aW1jb250ZXh0LT5pYnVzY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGV2ZW50LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWJ1c2ltY29udGV4dCkp IHsKLSAgICAgICAgICAgICByZXR1cm4gVFJVRTsKLS0gICAgICAgIGVsc2UKLSsgICAgICAgIH0g ZWxzZSB7Ci0gICAgICAgICAgICAgcmV0dXJuIGd0a19pbV9jb250ZXh0X2ZpbHRlcl9rZXlwcmVz cyAoaWJ1c2ltY29udGV4dC0+c2xhdmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZXZlbnQpOwotKyAgICAgICAgfQotICAgICB9Ci0gCi0gICAg IC8qIEF0IHRoaXMgcG9pbnQgd2UgX3Nob3VsZF8gYmUgd2FpdGluZyBmb3IgdGhlIElCdXMgY29u dGV4dCB0byBiZQotQEAgLTk1MiwxMiArMTEwOCwyMSBAQCBpYnVzX2ltX2NvbnRleHRfZmlsdGVy X2tleXByZXNzIChHdGtJTUNvbnRleHQgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICBpYnVzX2J1c19pc19jb25uZWN0ZWQgKF9idXMpID09IEZBTFNFLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgRkFMU0UpOwotICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoaWJ1c2ltY29u dGV4dC0+ZXZlbnRzX3F1ZXVlLAotKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCi0r ICAgICAgICAgICAgICAgICAgICAgICBnZGtfZXZlbnRfcmVmIChldmVudCkpOwotKyNlbHNlCi0g ICAgICAgICAgICAgICAgICAgICAgICBnZGtfZXZlbnRfY29weSAoKEdka0V2ZW50ICopZXZlbnQp KTsKLSsjZW5kaWYKLSAKLSAgICAgaWYgKGdfcXVldWVfZ2V0X2xlbmd0aCAoaWJ1c2ltY29udGV4 dC0+ZXZlbnRzX3F1ZXVlKSA+IE1BWF9RVUVVRURfRVZFTlRTKSB7Ci0gICAgICAgICBnX3dhcm5p bmcgKCJFdmVudHMgcXVldWUgZ3Jvd2luZyB0b28gYmlnLCB3aWxsIHN0YXJ0IHRvIGRyb3AuIik7 Ci0rI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKLSsgICAgICAgIGdka19ldmVudF91 bnJlZiAoKEdka0V2ZW50ICopCi0rICAgICAgICAgICAgICAgICAgICAgICAgIGdfcXVldWVfcG9w X2hlYWQgKGlidXNpbWNvbnRleHQtPmV2ZW50c19xdWV1ZSkpOwotKyNlbHNlCi0gICAgICAgICBn ZGtfZXZlbnRfZnJlZSAoKEdka0V2ZW50ICopCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ19x dWV1ZV9wb3BfaGVhZCAoaWJ1c2ltY29udGV4dC0+ZXZlbnRzX3F1ZXVlKSk7Ci0rI2VuZGlmCi0g ICAgIH0KLSAKLSAgICAgcmV0dXJuIFRSVUU7Ci1AQCAtOTY2LDI2ICsxMTMxLDI5IEBAIGlidXNf aW1fY29udGV4dF9maWx0ZXJfa2V5cHJlc3MgKEd0a0lNQ29udGV4dCAqY29udGV4dCwKLSBzdGF0 aWMgdm9pZAotIGlidXNfaW1fY29udGV4dF9mb2N1c19pbiAoR3RrSU1Db250ZXh0ICpjb250ZXh0 KQotIHsKLS0gICAgSURFQlVHICgiJXMiLCBfX0ZVTkNUSU9OX18pOwotLQotICAgICBJQnVzSU1D b250ZXh0ICppYnVzaW1jb250ZXh0ID0gKElCdXNJTUNvbnRleHQgKikgY29udGV4dDsKLSsgICAg R3RrV2lkZ2V0ICp3aWRnZXQgPSBOVUxMOwotKwotKyAgICBJREVCVUcgKCIlcyIsIF9fRlVOQ1RJ T05fXyk7Ci0gCi0gICAgIGlmIChpYnVzaW1jb250ZXh0LT5oYXNfZm9jdXMpCi0gICAgICAgICBy ZXR1cm47Ci0gCi0gICAgIC8qIGRvbid0IHNldCBmb2N1cyBvbiBwYXNzd29yZCBlbnRyeSAqLwot KyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCi0rICAgIHdpZGdldCA9IGlidXNpbWNv bnRleHQtPmNsaWVudF93aW5kb3c7Ci0rI2Vsc2UKLSAgICAgaWYgKGlidXNpbWNvbnRleHQtPmNs aWVudF93aW5kb3cgIT0gTlVMTCkgewotLSAgICAgICAgR3RrV2lkZ2V0ICp3aWRnZXQ7Ci0tCi0g ICAgICAgICBnZGtfd2luZG93X2dldF91c2VyX2RhdGEgKGlidXNpbWNvbnRleHQtPmNsaWVudF93 aW5kb3csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncG9pbnRlciAqKSZ3 aWRnZXQpOwotIAotLSAgICAgICAgaWYgKEdUS19JU19FTlRSWSAod2lkZ2V0KSAmJgotLSAgICAg ICAgICAgICFndGtfZW50cnlfZ2V0X3Zpc2liaWxpdHkgKEdUS19FTlRSWSAod2lkZ2V0KSkpIHsK LS0gICAgICAgICAgICByZXR1cm47Ci0tICAgICAgICB9Ci0gICAgIH0KLSsjZW5kaWYKLSAKLSsg ICAgaWYgKHdpZGdldCAmJiBHVEtfSVNfRU5UUlkgKHdpZGdldCkgJiYKLSsgICAgICAgICFndGtf ZW50cnlfZ2V0X3Zpc2liaWxpdHkgKEdUS19FTlRSWSAod2lkZ2V0KSkpIHsKLSsgICAgICAgIHJl dHVybjsKLSsgICAgfQotICAgICAvKiBEbyBub3QgY2FsbCBndGtfaW1fY29udGV4dF9mb2N1c19v dXQoKSBoZXJlLgotICAgICAgKiBnb29nbGUtY2hyb21lJ3Mgbm90aWZpY2F0aW9uIHBvcHVwIHdp bmRvdyAoUHVzaGJ1bGxldCkKLSAgICAgICogdGFrZXMgdGhlIGZvY3VzIGFuZCB0aGUgcG9wdXAg d2luZG93IGRpc2FwcGVhcnMuCi1AQCAtMTAxNCwxMCArMTE4MiwxMCBAQCBpYnVzX2ltX2NvbnRl eHRfZm9jdXNfaW4gKEd0a0lNQ29udGV4dCAqY29udGV4dCkKLSAKLSAgICAgLyogc2V0X2N1cnNv cl9sb2NhdGlvbl9pbnRlcm5hbCgpIHdpbGwgZ2V0IG9yaWdpbiBmcm9tIFggc2VydmVyLAotICAg ICAgKiBpdCBibG9ja3MgVUkuIFNvIGRlbGF5IGl0IHRvIGlkbGUgY2FsbGJhY2suICovCi0tICAg IGdka190aHJlYWRzX2FkZF9pZGxlX2Z1bGwgKEdfUFJJT1JJVFlfREVGQVVMVF9JRExFLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR1NvdXJjZUZ1bmMpIF9zZXRfY3Vyc29yX2xv Y2F0aW9uX2ludGVybmFsLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX29iamVj dF9yZWYgKGlidXNpbWNvbnRleHQpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo R0Rlc3Ryb3lOb3RpZnkpIGdfb2JqZWN0X3VucmVmKTsKLSsgICAgZ19pZGxlX2FkZF9mdWxsIChH X1BSSU9SSVRZX0RFRkFVTFRfSURMRSwKLSsgICAgICAgICAgICAgICAgICAgICAoR1NvdXJjZUZ1 bmMpIF9zZXRfY3Vyc29yX2xvY2F0aW9uX2ludGVybmFsLAotKyAgICAgICAgICAgICAgICAgICAg IGdfb2JqZWN0X3JlZiAoaWJ1c2ltY29udGV4dCksCi0rICAgICAgICAgICAgICAgICAgICAgKEdE ZXN0cm95Tm90aWZ5KSBnX29iamVjdF91bnJlZik7Ci0gCi0gICAgIC8qIHJldHJpZXZlIHRoZSBp bml0aWFsIHN1cnJvdW5kaW5nLXRleHQgKHJlZ2FyZGxlc3Mgb2Ygd2hldGhlcgotICAgICAgKiB0 aGUgY3VycmVudCBJQnVzIGVuZ2luZSBuZWVkcyBzdXJyb3VuZGluZy10ZXh0KSAqLwotQEAgLTEx MjIsNyArMTI5MCw3IEBAIGlidXNfaW1fY29udGV4dF9nZXRfcHJlZWRpdF9zdHJpbmcgKEd0a0lN Q29udGV4dCAgICpjb250ZXh0LAotIH0KLSAKLSAKLS0jaWYgIUdUS19DSEVDS19WRVJTSU9OICgz LCA5MywgMCkKLSsjaWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKLSAvKiBVc2UgdGhl IGJ1dHRvbi1wcmVzcy1ldmVudCBzaWduYWwgdW50aWwgR3RrSU1Db250ZXh0IGFsd2F5cyBlbWl0 cyB0aGUgcmVzZXQKLSAgKiBzaWduYWwuCi0gICogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dO T01FL2d0ay9tZXJnZV9yZXF1ZXN0cy80NjAKLUBAIC0xMTcxLDggKzEzMzksMTUgQEAgX2Nvbm5l Y3RfYnV0dG9uX3ByZXNzX2V2ZW50IChJQnVzSU1Db250ZXh0ICppYnVzaW1jb250ZXh0LAotIH0K LSAjZW5kaWYKLSAKLSsjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotIHN0YXRpYyB2 b2lkCi0taWJ1c19pbV9jb250ZXh0X3NldF9jbGllbnRfd2luZG93IChHdGtJTUNvbnRleHQgKmNv bnRleHQsIEdka1dpbmRvdyAqY2xpZW50KQotK2lidXNfaW1fY29udGV4dF9zZXRfY2xpZW50X3dp ZGdldCAoR3RrSU1Db250ZXh0ICpjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR3RrV2lkZ2V0ICAgICpjbGllbnQpCi0rI2Vsc2UKLStzdGF0aWMgdm9pZAotK2li dXNfaW1fY29udGV4dF9zZXRfY2xpZW50X3dpbmRvdyAoR3RrSU1Db250ZXh0ICpjb250ZXh0LAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrV2luZG93ICAgICpjbGllbnQp Ci0rI2VuZGlmCi0gewotICAgICBJQnVzSU1Db250ZXh0ICppYnVzaW1jb250ZXh0OwotIAotQEAg LTExODEsNyArMTM1Niw3IEBAIGlidXNfaW1fY29udGV4dF9zZXRfY2xpZW50X3dpbmRvdyAoR3Rr SU1Db250ZXh0ICpjb250ZXh0LCBHZGtXaW5kb3cgKmNsaWVudCkKLSAgICAgaWJ1c2ltY29udGV4 dCA9IElCVVNfSU1fQ09OVEVYVCAoY29udGV4dCk7Ci0gCi0gICAgIGlmIChpYnVzaW1jb250ZXh0 LT5jbGllbnRfd2luZG93KSB7Ci0tI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTMsIDApCi0r I2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCi0gICAgICAgICBpZiAoaWJ1c2ltY29u dGV4dC0+dXNlX2J1dHRvbl9wcmVzc19ldmVudCkKLSAgICAgICAgICAgICBfY29ubmVjdF9idXR0 b25fcHJlc3NfZXZlbnQgKGlidXNpbWNvbnRleHQsIEZBTFNFKTsKLSAjZW5kaWYKLUBAIC0xMTkx LDI2ICsxMzY2LDQxIEBAIGlidXNfaW1fY29udGV4dF9zZXRfY2xpZW50X3dpbmRvdyAoR3RrSU1D b250ZXh0ICpjb250ZXh0LCBHZGtXaW5kb3cgKmNsaWVudCkKLSAKLSAgICAgaWYgKGNsaWVudCAh PSBOVUxMKSB7Ci0gICAgICAgICBpYnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93ID0gZ19vYmpl Y3RfcmVmIChjbGllbnQpOwotLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDkzLCAwKQotKyNp ZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotICAgICAgICAgaWYgKCFpYnVzaW1jb250 ZXh0LT51c2VfYnV0dG9uX3ByZXNzX2V2ZW50KQotICAgICAgICAgICAgIF9jb25uZWN0X2J1dHRv bl9wcmVzc19ldmVudCAoaWJ1c2ltY29udGV4dCwgVFJVRSk7Ci0gI2VuZGlmCi0gICAgIH0KLSsj aWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotKyAgICBpZiAoaWJ1c2ltY29udGV4dC0+ c2xhdmUpCi0rICAgICAgICBndGtfaW1fY29udGV4dF9zZXRfY2xpZW50X3dpZGdldCAoaWJ1c2lt Y29udGV4dC0+c2xhdmUsIGNsaWVudCk7Ci0rI2Vsc2UKLSAgICAgaWYgKGlidXNpbWNvbnRleHQt PnNsYXZlKQotICAgICAgICAgZ3RrX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aW5kb3cgKGlidXNp bWNvbnRleHQtPnNsYXZlLCBjbGllbnQpOwotKyNlbmRpZgotIH0KLSAKLSBzdGF0aWMgdm9pZAot IF9zZXRfcmVjdF9zY2FsZV9mYWN0b3Jfd2l0aF93aW5kb3cgKEdka1JlY3RhbmdsZSAqYXJlYSwK LSsjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEd0a1dpZGdldCAgICAqd2luZG93KQotKyNlbHNlCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrV2luZG93ICAgICp3aW5kb3cpCi0rI2VuZGlm Ci0gewotICNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgMTAsIDApCi0gICAgIGludCBzY2FsZV9m YWN0b3I7Ci0gCi0gICAgIGdfYXNzZXJ0IChhcmVhKTsKLSsjaWYgR1RLX0NIRUNLX1ZFUlNJT04g KDMsIDk4LCA0KQotKyAgICBnX2Fzc2VydCAoR1RLX0lTX1dJREdFVCAod2luZG93KSk7Ci0rCi0r ICAgIHNjYWxlX2ZhY3RvciA9IGd0a193aWRnZXRfZ2V0X3NjYWxlX2ZhY3RvciAod2luZG93KTsK LSsjZWxzZQotICAgICBnX2Fzc2VydCAoR0RLX0lTX1dJTkRPVyAod2luZG93KSk7Ci0gCi0gICAg IHNjYWxlX2ZhY3RvciA9IGdka193aW5kb3dfZ2V0X3NjYWxlX2ZhY3RvciAod2luZG93KTsKLSsj ZW5kaWYKLSAgICAgYXJlYS0+eCAqPSBzY2FsZV9mYWN0b3I7Ci0gICAgIGFyZWEtPnkgKj0gc2Nh bGVfZmFjdG9yOwotICAgICBhcmVhLT53aWR0aCAqPSBzY2FsZV9mYWN0b3I7Ci1AQCAtMTIzMCw2 ICsxNDIwLDcgQEAgX3NldF9jdXJzb3JfbG9jYXRpb25faW50ZXJuYWwgKElCdXNJTUNvbnRleHQg KmlidXNpbWNvbnRleHQpCi0gCi0gICAgIGFyZWEgPSBpYnVzaW1jb250ZXh0LT5jdXJzb3JfYXJl YTsKLSAKLSsjaWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKLSAjaWZkZWYgR0RLX1dJ TkRPV0lOR19XQVlMQU5ECi0gICAgIGlmIChHREtfSVNfV0FZTEFORF9ESVNQTEFZIChnZGtfZGlz cGxheV9nZXRfZGVmYXVsdCAoKSkpIHsKLSAgICAgICAgIGdkb3VibGUgcHgsIHB5OwotQEAgLTEy NTMsMTAgKzE0NDQsMTQgQEAgX3NldF9jdXJzb3JfbG9jYXRpb25faW50ZXJuYWwgKElCdXNJTUNv bnRleHQgKmlidXNpbWNvbnRleHQpCi0gICAgICAgICAgICAgYXJlYS5oZWlnaHQpOwotICAgICAg ICAgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0rI2VuZGlmCi0gI2VuZGlmCi0gCi0gICAgIGlmIChh cmVhLnggPT0gLTEgJiYgYXJlYS55ID09IC0xICYmIGFyZWEud2lkdGggPT0gMCAmJiBhcmVhLmhl aWdodCA9PSAwKSB7Ci0tI2lmIEdUS19DSEVDS19WRVJTSU9OICgyLCA5MSwgMCkKLSsjaWYgR1RL X0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotKyAgICAgICAgYXJlYS54ID0gMDsKLSsgICAgICAg IGFyZWEueSArPSBndGtfd2lkZ2V0X2dldF9oZWlnaHQgKGlidXNpbWNvbnRleHQtPmNsaWVudF93 aW5kb3cpOwotKyNlbGlmIEdUS19DSEVDS19WRVJTSU9OICgyLCA5MSwgMCkKLSAgICAgICAgIGFy ZWEueCA9IDA7Ci0gICAgICAgICBhcmVhLnkgKz0gZ2RrX3dpbmRvd19nZXRfaGVpZ2h0IChpYnVz aW1jb250ZXh0LT5jbGllbnRfd2luZG93KTsKLSAjZWxzZQotQEAgLTEyNjcsOSArMTQ2MiwzOSBA QCBfc2V0X2N1cnNvcl9sb2NhdGlvbl9pbnRlcm5hbCAoSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29u dGV4dCkKLSAjZW5kaWYKLSAgICAgfQotIAotKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTMs IDApCi0rICAgIHsKLSsjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotKyAgICAgICAg R3RrTmF0aXZlICpuYXRpdmUgPSBndGtfd2lkZ2V0X2dldF9uYXRpdmUgKAotKyAgICAgICAgICAg ICAgICBpYnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93KTsKLSsgICAgICAgIEd0a1Jvb3QgKnJv b3QgPSBndGtfd2lkZ2V0X2dldF9yb290IChpYnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93KTsK LSsgICAgICAgIGRvdWJsZSBueCwgbnk7Ci0rICAgICAgICBkb3VibGUgcHgsIHB5OwotKyAgICAg ICAgZ3RrX25hdGl2ZV9nZXRfc3VyZmFjZV90cmFuc2Zvcm0gKG5hdGl2ZSwgJm54LCAmbnkpOwot KyAgICAgICAgcHggPSAoZG91YmxlKWFyZWEueCArIGlidXNpbWNvbnRleHQtPnggLSBueDsKLSsg ICAgICAgIHB5ID0gKGRvdWJsZSlhcmVhLnkgKyBpYnVzaW1jb250ZXh0LT55IC0gbnk7Ci0rICAg ICAgICBndGtfd2lkZ2V0X3RyYW5zbGF0ZV9jb29yZGluYXRlcyAoaWJ1c2ltY29udGV4dC0+Y2xp ZW50X3dpbmRvdywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo R3RrV2lkZ2V0ICopcm9vdCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBweCwgcHksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JnB4LCAmcHkpOwotKyAgICAgICAgYXJlYS54ID0gKGludClweDsKLSsgICAgICAgIGFyZWEueSA9 IChpbnQpcHk7Ci0rI2Vsc2UKLSsgICAgICAgIEd0a05hdGl2ZSAqbmF0aXZlID0gZ3RrX3dpZGdl dF9nZXRfbmF0aXZlICgKLSsgICAgICAgICAgICAgICAgaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dp bmRvdyk7Ci0rICAgICAgICBHZGtTdXJmYWNlICpzdXJmYWNlID0gZ3RrX25hdGl2ZV9nZXRfc3Vy ZmFjZSAobmF0aXZlKTsKLSsgICAgICAgIGludCByb290X3ggPSAwOwotKyAgICAgICAgaW50IHJv b3RfeSA9IDA7Ci0rICAgICAgICBnZGtfc3VyZmFjZV9nZXRfcG9zaXRpb24gKHN1cmZhY2UsICZy b290X3gsICZyb290X3kpOwotKyAgICAgICAgYXJlYS54ICs9IHJvb3RfeDsKLSsgICAgICAgIGFy ZWEueSArPSByb290X3k7Ci0rI2VuZGlmCi0rICAgIH0KLSsjZWxzZQotICAgICBnZGtfd2luZG93 X2dldF9yb290X2Nvb3JkcyAoaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZWEueCwgYXJlYS55LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmFyZWEueCwgJmFyZWEueSk7Ci0rI2VuZGlmCi0gICAgIF9zZXRf cmVjdF9zY2FsZV9mYWN0b3Jfd2l0aF93aW5kb3cgKCZhcmVhLCBpYnVzaW1jb250ZXh0LT5jbGll bnRfd2luZG93KTsKLSAgICAgaWJ1c19pbnB1dF9jb250ZXh0X3NldF9jdXJzb3JfbG9jYXRpb24g KGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXJlYS54LAotQEAgLTEzMjYsNyArMTU1MSwxMSBAQCBnZXRfc2Vs ZWN0aW9uX2FuY2hvcl9wb2ludCAoSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCwKLSAgICAg aWYgKGlidXNpbWNvbnRleHQtPmNsaWVudF93aW5kb3cgPT0gTlVMTCkgewotICAgICAgICAgcmV0 dXJuIGN1cnNvcl9wb3M7Ci0gICAgIH0KLSsjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0 KQotKyAgICB3aWRnZXQgPSBpYnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93OwotKyNlbHNlCi0g ICAgIGdka193aW5kb3dfZ2V0X3VzZXJfZGF0YSAoaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRv dywgKGdwb2ludGVyICopJndpZGdldCk7Ci0rI2VuZGlmCi0gCi0gICAgIGlmICghR1RLX0lTX1RF WFRfVklFVyAod2lkZ2V0KSl7Ci0gICAgICAgICByZXR1cm4gY3Vyc29yX3BvczsKLUBAIC0xNDQw LDYgKzE2NjksNyBAQCBfaWJ1c19jb250ZXh0X2NvbW1pdF90ZXh0X2NiIChJQnVzSW5wdXRDb250 ZXh0ICppYnVzY29udGV4dCwKLSAgICAgX3JlcXVlc3Rfc3Vycm91bmRpbmdfdGV4dCAoaWJ1c2lt Y29udGV4dCk7Ci0gfQotIAotKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotIHN0 YXRpYyBnYm9vbGVhbgotIF9rZXlfaXNfbW9kaWZpZXIgKGd1aW50IGtleXZhbCkKLSB7Ci1AQCAt MTYxNSw2ICsxODQ1LDcgQEAgX2NyZWF0ZV9nZGtfZXZlbnQgKElCdXNJTUNvbnRleHQgKmlidXNp bWNvbnRleHQsCi0gb3V0OgotICAgICByZXR1cm4gZXZlbnQ7Ci0gfQotKyNlbmRpZgotIAotIHN0 YXRpYyB2b2lkCi0gX2lidXNfY29udGV4dF9mb3J3YXJkX2tleV9ldmVudF9jYiAoSUJ1c0lucHV0 Q29udGV4dCAgKmlidXNjb250ZXh0LAotQEAgLTE2MjQsOSArMTg1NSwzMiBAQCBfaWJ1c19jb250 ZXh0X2ZvcndhcmRfa2V5X2V2ZW50X2NiIChJQnVzSW5wdXRDb250ZXh0ICAqaWJ1c2NvbnRleHQs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c0lNQ29udGV4dCAgICAg KmlidXNpbWNvbnRleHQpCi0gewotICAgICBJREVCVUcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7Ci0r I2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKLSsgICAgaW50IGdyb3VwID0gMDsKLSsg ICAgZ19yZXR1cm5faWZfZmFpbCAoR1RLX0lTX0lNX0NPTlRFWFQgKGlidXNpbWNvbnRleHQpKTsK LSsgICAgaWYgKGtleWNvZGUgPT0gMCAmJiBpYnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93KSB7 Ci0rICAgICAgICBHZGtEaXNwbGF5ICpkaXNwbGF5ID0gZ3RrX3dpZGdldF9nZXRfZGlzcGxheSAo aWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdyk7Ci0rICAgICAgICBHZGtLZXltYXBLZXkgKmtl eXMgPSBOVUxMOwotKyAgICAgICAgZ2ludCBuX2tleXMgPSAwOwotKyAgICAgICAgaWYgKCFnZGtf ZGlzcGxheV9tYXBfa2V5dmFsIChkaXNwbGF5LCBrZXl2YWwsICZrZXlzLCAmbl9rZXlzKSkKLSsg ICAgICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gcGFyc2Uga2V5Y29kZSBmcm9tIGtleXZh bCAleCIsIGtleXZhbCk7Ci0rICAgICAgIGtleWNvZGUgPSBrZXlzLT5rZXljb2RlOwotKyAgICAg ICBncm91cCA9IGtleXMtPmdyb3VwOwotKyAgICB9Ci0rICAgIGd0a19pbV9jb250ZXh0X2ZpbHRl cl9rZXkgKAotKyAgICAgICAgR1RLX0lNX0NPTlRFWFQgKGlidXNpbWNvbnRleHQpLAotKyAgICAg ICAgKHN0YXRlICYgSUJVU19SRUxFQVNFX01BU0spID8gRkFMU0UgOiBUUlVFLAotKyAgICAgICAg aWJ1c2ltY29udGV4dC0+c3VyZmFjZSwKLSsgICAgICAgIGlidXNpbWNvbnRleHQtPmRldmljZSwK LSsgICAgICAgIGlidXNpbWNvbnRleHQtPnRpbWUsCi0rICAgICAgICBrZXljb2RlLAotKyAgICAg ICAgKEdka01vZGlmaWVyVHlwZSlzdGF0ZSwKLSsgICAgICAgIGdyb3VwKTsKLSsjZWxzZQotICAg ICBHZGtFdmVudEtleSAqZXZlbnQgPSBfY3JlYXRlX2dka19ldmVudCAoaWJ1c2ltY29udGV4dCwg a2V5dmFsLCBrZXljb2RlLCBzdGF0ZSk7Ci0gICAgIGdka19ldmVudF9wdXQgKChHZGtFdmVudCAq KWV2ZW50KTsKLSAgICAgZ2RrX2V2ZW50X2ZyZWUgKChHZGtFdmVudCAqKWV2ZW50KTsKLSsjZW5k aWYKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC0xNjYwLDcgKzE5MTQsNyBAQCBfaWJ1c19jb250 ZXh0X3VwZGF0ZV9wcmVlZGl0X3RleHRfY2IgKElCdXNJbnB1dENvbnRleHQgICppYnVzY29udGV4 dCwKLSAgICAgICAgIGlidXNpbWNvbnRleHQtPnByZWVkaXRfYXR0cnMgPSBOVUxMOwotICAgICB9 Ci0gCi0tI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTMsIDApCi0rI2lmICFHVEtfQ0hFQ0tf VkVSU0lPTiAoMywgOTgsIDQpCi0gICAgIGlmICghaWJ1c2ltY29udGV4dC0+dXNlX2J1dHRvbl9w cmVzc19ldmVudCAmJgotICAgICAgICAgbW9kZSA9PSBJQlVTX0VOR0lORV9QUkVFRElUX0NPTU1J VCkgewotICAgICAgICAgaWYgKGlidXNpbWNvbnRleHQtPmNsaWVudF93aW5kb3cpIHsKLUBAIC0x ODQ3LDEwICsyMTAxLDE4IEBAIF9jcmVhdGVfaW5wdXRfY29udGV4dF9kb25lIChJQnVzQnVzICAg ICAgICpidXMsCi0gICAgICAgICB9Ci0gCi0gICAgICAgICBpZiAoIWdfcXVldWVfaXNfZW1wdHkg KGlidXNpbWNvbnRleHQtPmV2ZW50c19xdWV1ZSkpIHsKLSsjaWYgR1RLX0NIRUNLX1ZFUlNJT04g KDMsIDk4LCA0KQotKyAgICAgICAgICAgIEdka0V2ZW50ICpldmVudDsKLSsjZWxzZQotICAgICAg ICAgICAgIEdka0V2ZW50S2V5ICpldmVudDsKLSsjZW5kaWYKLSAgICAgICAgICAgICB3aGlsZSAo KGV2ZW50ID0gZ19xdWV1ZV9wb3BfaGVhZCAoaWJ1c2ltY29udGV4dC0+ZXZlbnRzX3F1ZXVlKSkp IHsKLS0gICAgICAgICAgICAgICAgX3Byb2Nlc3Nfa2V5X2V2ZW50IChjb250ZXh0LCBldmVudCk7 Ci0rICAgICAgICAgICAgICAgIF9wcm9jZXNzX2tleV9ldmVudCAoY29udGV4dCwgZXZlbnQsIGli dXNpbWNvbnRleHQpOwotKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCi0rICAgICAg ICAgICAgICAgIGdka19ldmVudF91bnJlZiAoZXZlbnQpOwotKyNlbHNlCi0gICAgICAgICAgICAg ICAgIGdka19ldmVudF9mcmVlICgoR2RrRXZlbnQgKilldmVudCk7Ci0rI2VuZGlmCi0gICAgICAg ICAgICAgfQotICAgICAgICAgfQotICAgICB9Ci1kaWZmIC0tZ2l0IGEvY2xpZW50L2d0azQvTWFr ZWZpbGUuYW0gYi9jbGllbnQvZ3RrNC9NYWtlZmlsZS5hbQotbmV3IGZpbGUgbW9kZSAxMDA2NDQK LWluZGV4IDAwMDAwMDAwLi44ZDhiMzFkYgotLS0tIC9kZXYvbnVsbAotKysrIGIvY2xpZW50L2d0 azQvTWFrZWZpbGUuYW0KLUBAIC0wLDAgKzEsNjYgQEAKLSsjIHZpbTpzZXQgbm9ldCB0cz00Ogot KyMKLSsjIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0rIwotKyMgQ29weXJpZ2h0IChjKSAyMDIwIFRh a2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyMgQ29weXJpZ2h0IChj KSAyMDIwIFJlZCBIYXQsIEluYy4KLSsjCi0rIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0rIyBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rIyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSsjIHZlcnNp b24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgotKyMKLSsjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rIyBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSsj IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKLSsjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEKLSsjIFVTQQotKwotK2xpYmlidXMgPSAk KHRvcF9idWlsZGRpcikvc3JjL2xpYmlidXMtQElCVVNfQVBJX1ZFUlNJT05ALmxhCi0rCi0rQU1f Q1BQRkxBR1MgPSBcCi0rCS1JJCh0b3Bfc3JjZGlyKS9zcmMgXAotKwktSSQodG9wX2J1aWxkZGly KS9zcmMgXAotKwkkKE5VTEwpCi0rCi0raW1tb2R1bGVkaXIgPSBAR1RLNF9JTV9NT0RVTEVESVJA Ci0raW1tb2R1bGVfTFRMSUJSQVJJRVMgPSBsaWJpbS1pYnVzLmxhCi0rCi0rbGliaW1faWJ1c19s YV9TT1VSQ0VTID0gXAotKwlpYnVzaW0uYyBcCi0rCWlidXNpbWNvbnRleHQuYyBcCi0rCWlidXNp bWNvbnRleHQuaCBcCi0rCSQoTlVMTCkKLSsKLStsaWJpbV9pYnVzX2xhX0RFUEVOREVOQ0lFUyA9 ICQobGliaWJ1cykKLSsKLStsaWJpbV9pYnVzX2xhX0NGTEFHUyA9IFwKLSsJQEdUSzRfQ0ZMQUdT QCBcCi0rCUBEQlVTX0NGTEFHU0AgXAotKwktREdfTE9HX0RPTUFJTj1cIklCVVNcIiBcCi0rCSQo TlVMTCkKLSsKLStsaWJpbV9pYnVzX2xhX0xJQkFERCA9IFwKLSsJQEdUSzRfTElCU0AgXAotKwlA REJVU19MSUJTQCBcCi0rCSQobGliaWJ1cykgXAotKwkkKE5VTEwpCi0rbGliaW1faWJ1c19sYV9M REZMQUdTID0gXAotKwktYXZvaWQtdmVyc2lvbiBcCi0rCS1tb2R1bGUgXAotKwkkKE5VTEwpCi0r Ci0rJChsaWJpYnVzKToKLSsJKGNkICQodG9wX2J1aWxkZGlyKS9zcmM7IG1ha2UgKQotKwotK0VY VFJBX0RJU1QgPSBcCi0rCSQoTlVMTCkKLSsKLSt0ZXN0OiBhbGwKLSsJR1RLX0lNX01PRFVMRT1p YnVzIGdlZGl0Ci0rCi0rLWluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9naXQubWsKLWRpZmYgLS1naXQg YS9jbGllbnQvZ3RrNC9pYnVzaW0uYyBiL2NsaWVudC9ndGs0L2lidXNpbS5jCi1uZXcgZmlsZSBt b2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAuLjVlY2Y5Nzc4Ci0tLS0gL2Rldi9udWxsCi0rKysg Yi9jbGllbnQvZ3RrNC9pYnVzaW0uYwotQEAgLTAsMCArMSw1MiBAQAotKy8qIC0qLSBtb2RlOiBD OyBjLWJhc2ljLW9mZnNldDogNDsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyAtKi0gKi8KLSsvKiB2 aW06c2V0IGV0IHRzPTQ6ICovCi0rLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSsgKiBDb3B5cmln aHQgKEMpIDIwMDgtMjAxMCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLSsg KiBDb3B5cmlnaHQgKEMpIDIwMjAgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMjAgUmVkIEhhdCwgSW5jLgotKyAqCi0r ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgotKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKLSsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsgKgotKyAqIFRoaXMgbGli cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCi0rICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSsgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgotKyAqCi0rICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotKyAqIExpY2Vuc2UgYWxvbmcg d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSsg KiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0 b24sIE1BICAwMjExMC0xMzAxCi0rICogVVNBCi0rICovCi0rCi0rI2luY2x1ZGUgPGd0ay9ndGsu aD4KLSsjaW5jbHVkZSA8Z3RrL2d0a2ltbW9kdWxlLmg+Ci0rI2luY2x1ZGUgPGlidXMuaD4KLSsj aW5jbHVkZSAiaWJ1c2ltY29udGV4dC5oIgotKwotK0dfTU9EVUxFX0VYUE9SVCB2b2lkCi0rZ19p b19pbV9pYnVzX2xvYWQgKEdUeXBlTW9kdWxlICp0eXBlX21vZHVsZSkKLSt7Ci0rICAgIHN0YXRp YyBnYm9vbGVhbiBpbml0ZWQgPSBGQUxTRTsKLSsKLSsgICAgaWYgKCFpbml0ZWQpIHsKLSsgICAg ICAgIGlidXNfaW5pdCAoKTsKLSsgICAgICAgIGlidXNfaW1fY29udGV4dF9yZWdpc3Rlcl90eXBl ICh0eXBlX21vZHVsZSk7Ci0rICAgICAgICBnX2lvX2V4dGVuc2lvbl9wb2ludF9pbXBsZW1lbnQg KCJndGstaW0tbW9kdWxlIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSUJVU19UWVBFX0lNX0NPTlRFWFQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJpYnVzIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgNTApOwotKyAgICAgICAgaW5pdGVkID0gVFJVRTsKLSsgICAgfQotKyAgICAvKiBtYWtlIG1v ZHVsZSByZXNpZGVudCAqLwotKyAgICBnX3R5cGVfbW9kdWxlX3VzZSAodHlwZV9tb2R1bGUpOwot K30KLSsKLStHX01PRFVMRV9FWFBPUlQgdm9pZAotK2dfaW9faW1faWJ1c191bmxvYWQgKEdUeXBl TW9kdWxlICp0eXBlX21vZHVsZSkKLSt7Ci0rICAgIGdfdHlwZV9tb2R1bGVfdW51c2UgKHR5cGVf bW9kdWxlKTsKLSt9Ci0rCi1kaWZmIC0tZ2l0IGEvY2xpZW50L2d0azQvaWJ1c2ltY29udGV4dC5j IGIvY2xpZW50L2d0azQvaWJ1c2ltY29udGV4dC5jCi1uZXcgZmlsZSBtb2RlIDEyMDAwMAotaW5k ZXggMDAwMDAwMDAuLjQxODk2ZjA1Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9jbGllbnQvZ3RrNC9p YnVzaW1jb250ZXh0LmMKLUBAIC0wLDAgKzEgQEAKLSsuLi9ndGsyL2lidXNpbWNvbnRleHQuYwot XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi1kaWZmIC0tZ2l0IGEvY2xpZW50L2d0azQvaWJ1 c2ltY29udGV4dC5oIGIvY2xpZW50L2d0azQvaWJ1c2ltY29udGV4dC5oCi1uZXcgZmlsZSBtb2Rl IDEyMDAwMAotaW5kZXggMDAwMDAwMDAuLjI5NzU5ODgzCi0tLS0gL2Rldi9udWxsCi0rKysgYi9j bGllbnQvZ3RrNC9pYnVzaW1jb250ZXh0LmgKLUBAIC0wLDAgKzEgQEAKLSsuLi9ndGsyL2lidXNp bWNvbnRleHQuaAotXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi1kaWZmIC0tZ2l0IGEvY29u ZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCA5ZWQ1Y2I2Ni4uZmZlYTMzMTcgMTAwNjQ0 Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTE5Myw2ICsxOTMs MTUgQEAgQUNfQVJHX0VOQUJMRShndGszLAotICkKLSBBTV9DT05ESVRJT05BTChbRU5BQkxFX0dU SzNdLCBbdGVzdCB4IiRlbmFibGVfZ3RrMyIgPSB4InllcyJdKQotIAotKyMgLS1lbmFibGUtZ3Rr NCBvcHRpb24uCi0rQUNfQVJHX0VOQUJMRShndGs0LAotKyAgICBBU19IRUxQX1NUUklORyhbLS1l bmFibGUtZ3RrNF0sCi0rICAgICAgICAgICAgICAgICAgIFtCdWlsZCBndGs0IGltIG1vZHVsZV0p LAotKyAgICBbZW5hYmxlX2d0azQ9JGVuYWJsZXZhbF0sCi0rICAgIFtlbmFibGVfZ3RrND1ub10K LSspCi0rQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9HVEs0XSwgW3Rlc3QgeCIkZW5hYmxlX2d0azQi ID0geCJ5ZXMiXSkKLSsKLSAjIC0tZGlzYWJsZS14aW0gb3B0aW9uLgotIEFDX0FSR19FTkFCTEUo eGltLAotICAgICBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLXhpbV0sCi1AQCAtMjU3LDYgKzI2 NiwxOCBAQCBpZiB0ZXN0IHgiJGVuYWJsZV9nZGszX3dheWxhbmQiICE9IHgieWVzIjsgdGhlbgot IGZpCi0gQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9HREszX1dBWUxBTkRdLCBbdGVzdCB4IiRlbmFi bGVfZ2RrM193YXlsYW5kIiA9IHgieWVzIl0pCi0gCi0raWYgdGVzdCB4IiRlbmFibGVfZ3RrNCIg PSB4InllcyI7IHRoZW4KLSsgICAgIyBjaGVjayBmb3IgZ3RrNAotKyAgICBQS0dfQ0hFQ0tfTU9E VUxFUyhHVEs0LCBbCi0rICAgICAgICBndGs0Ci0rICAgIF0pCi0rCi0rICAgIGd0azRfYmluYXJ5 X3ZlcnNpb249YCRQS0dfQ09ORklHIC0tdmFyaWFibGU9Z3RrX2JpbmFyeV92ZXJzaW9uIGd0azRg Ci0rICAgIEdUSzRfSU1fTU9EVUxFRElSPSIkbGliZGlyIi9ndGstNC4wLyRndGs0X2JpbmFyeV92 ZXJzaW9uL2ltbW9kdWxlcwotK2Vsc2UKLSsgICAgZW5hYmxlX2d0azQ9Im5vIChkaXNhYmxlZCwg dXNlIC0tZW5hYmxlLWd0azQgdG8gZW5hYmxlKSIKLStmaQotKwotIGlmIHRlc3QgeCIkZW5hYmxl X3hpbSIgPSB4InllcyI7IHRoZW4KLSAgICAgIyBDaGVjayBmb3IgeDExCi0gICAgIFBLR19DSEVD S19NT0RVTEVTKFgxMSwgWwotQEAgLTQ3OCw2ICs0OTksMTQgQEAgQUNfQVJHX1dJVEgoZ3RrMy1p bS1tb2R1bGUtZGlyLAotICkKLSBBQ19TVUJTVChHVEszX0lNX01PRFVMRURJUikKLSAKLSsjIERl ZmluZSBndGs0IGltbW9kdWxlIGRpci4KLStBQ19BUkdfV0lUSChndGs0LWltLW1vZHVsZS1kaXIs Ci0rICAgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtZ3RrNC1pbS1tb2R1bGUtZGlyWz1ESVJdXSwK LSsgICAgICAgIFtTZWxlY3QgZ3RrNCBpbW1vZHVsZSBkaXJdKSwKLSsgICAgR1RLNF9JTV9NT0RV TEVESVI9JHdpdGhfZ3RrNF9pbV9tb2R1bGVfZGlyCi0rKQotK0FDX1NVQlNUKEdUSzRfSU1fTU9E VUxFRElSKQotKwotIGlmIHRlc3QgeCIkZW5hYmxlX3B5dGhvbiIgPSB4InllcyI7IHRoZW4KLSAg ICAgIyBDaGVjayBmb3IgZGJ1cy1weXRob24uCi0gICAgIEFDX0FSR19FTkFCTEUoZGJ1cy1weXRo b24tY2hlY2ssCi1AQCAtNzM3LDYgKzc2Niw3IEBAIGlidXMuc3BlYwotIGNsaWVudC9NYWtlZmls ZQotIGNsaWVudC9ndGsyL01ha2VmaWxlCi0gY2xpZW50L2d0azMvTWFrZWZpbGUKLStjbGllbnQv Z3RrNC9NYWtlZmlsZQotIGNsaWVudC94MTEvTWFrZWZpbGUKLSBjbGllbnQvd2F5bGFuZC9NYWtl ZmlsZQotIHNyYy9NYWtlZmlsZQotQEAgLTc4Niw4ICs4MTYsMTAgQEAgQnVpbGQgb3B0aW9uczoK LSAgIEVuYWJsZSBweXRob24yICAgICAgICAgICAgICAgICRlbmFibGVfcHl0aG9uMgotICAgR3Rr MiBpbW1vZHVsZSBkaXIgICAgICAgICAgICAgJEdUSzJfSU1fTU9EVUxFRElSCi0gICBHdGszIGlt bW9kdWxlIGRpciAgICAgICAgICAgICAkR1RLM19JTV9NT0RVTEVESVIKLSsgIEd0azQgaW1tb2R1 bGUgZGlyICAgICAgICAgICAgICRHVEs0X0lNX01PRFVMRURJUgotICAgQnVpbGQgZ3RrMiBpbW1v ZHVsZSAgICAgICAgICAgJGVuYWJsZV9ndGsyCi0gICBCdWlsZCBndGszIGltbW9kdWxlICAgICAg ICAgICAkZW5hYmxlX2d0azMKLSsgIEJ1aWxkIGd0azQgaW1tb2R1bGUgICAgICAgICAgICRlbmFi bGVfZ3RrNAotICAgQnVpbGQgWElNIGFnZW50IHNlcnZlciAgICAgICAgJGVuYWJsZV94aW0KLSAg IEJ1aWxkIHdheWxhbmQgc3VwcG9ydCAgICAgICAgICRlbmFibGVfd2F5bGFuZAotICAgQnVpbGQg Z2RrMyB3YXlsYW5kIHN1cHBvcnQgICAgJGVuYWJsZV9nZGszX3dheWxhbmQKLS0tIAotMi4yOC4w Ci0KLUZyb20gZDBhNDdjM2M4MmIxYTBjMjYzZmY4Yjk1ZjljZjVjMGE1ZDFmMjI4ZCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWls LmNvbT4KLURhdGU6IEZyaSwgOCBKYW4gMjAyMSAxODo0ODoxMyArMDkwMAotU3ViamVjdDogW1BB VENIXSBjbGllbnQvZ3RrMjogQWRkIFhUcmFuc2xhdGVDb29yZGluYXRlcyBmb3IgR1RLNCBYMTEK LSBjb29yZGluYXRlCi0KLUdka1dpbmRvdyBoYWQgdGhlIGFic29sdXRlIGNvb3JkaWFudGUgaW4g dGhlIHByaXZhdGUgY2xhc3MgaW4gR1RLMwotYnV0IHRoZSBhYnNvbHV0ZSBjb29yZGlhbmUgbm8g bG9uZ2VyIGV4aXN0cyBpbiBHVEs0IGZvciBXYXlsYW5kLgotTm93IGdldCB0aGUgdG9wbGV2ZWwg d2luZG93IGNvb3JkaWFudGUgZm9yIHRoZSB3YXJrYXJvdW5kIGluIEdUSzQKLWJ1dCB0aGUgY29v cmRpYW50ZSBvZiB0aGUgaW5uZXIgd2lkZ2V0cyBpcyBubyBsb25nZXIgYXZhaWxhYmxlIHRvby4K LQotQlVHPWh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9ndGsvLS9pc3N1ZXMvMzAyNCNu b3RlXzk4NzgzNQotLS0tCi0gY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jIHwgNDcgKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzMSBpbnNl cnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NsaWVudC9ndGsyL2li dXNpbWNvbnRleHQuYyBiL2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYwotaW5kZXggYTIzZmMy ZTMuLmUxNTMwODFkIDEwMDY0NAotLS0tIGEvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi0r KysgYi9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKLUBAIC0zOSw2ICszOSwxMyBAQAotICNl bmRpZgotICNlbmRpZgotIAotKyNpZmRlZiBHREtfV0lORE9XSU5HX1gxMQotKyNpZiBHVEtfQ0hF Q0tfVkVSU0lPTiAoMywgOTgsIDQpCi0rI2luY2x1ZGUgPGdkay94MTEvZ2RreC5oPgotKyNpbmNs dWRlIDxYMTEvWGxpYi5oPgotKyNlbmRpZgotKyNlbmRpZgotKwotICNpZiAhR1RLX0NIRUNLX1ZF UlNJT04gKDIsIDkxLCAwKQotICMgIGRlZmluZSBERVBSRUNBVEVEX0dES19LRVlTWU1TIDEKLSAj ZW5kaWYKLUBAIC0xNDYyLDI0ICsxNDY5LDMzIEBAIF9zZXRfY3Vyc29yX2xvY2F0aW9uX2ludGVy bmFsIChJQnVzSU1Db250ZXh0ICppYnVzaW1jb250ZXh0KQotICNlbmRpZgotICAgICB9Ci0gCi0t I2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5MywgMCkKLS0gICAgewotICNpZiBHVEtfQ0hFQ0tf VkVSU0lPTiAoMywgOTgsIDQpCi0rI2lmZGVmIEdES19XSU5ET1dJTkdfWDExCi0rICAgIEdka0Rp c3BsYXkgKmRpc3BsYXkgPSBndGtfd2lkZ2V0X2dldF9kaXNwbGF5IChpYnVzaW1jb250ZXh0LT5j bGllbnRfd2luZG93KTsKLSsgICAgaWYgKEdES19JU19YMTFfRElTUExBWSAoZGlzcGxheSkpIHsK LSsgICAgICAgIERpc3BsYXkgKnhkaXNwbGF5ID0gZ2RrX3gxMV9kaXNwbGF5X2dldF94ZGlzcGxh eSAoZGlzcGxheSk7Ci0rICAgICAgICBXaW5kb3cgcm9vdF93aW5kb3cgPSBnZGtfeDExX2Rpc3Bs YXlfZ2V0X3hyb290d2luZG93IChkaXNwbGF5KTsKLSAgICAgICAgIEd0a05hdGl2ZSAqbmF0aXZl ID0gZ3RrX3dpZGdldF9nZXRfbmF0aXZlICgKLSAgICAgICAgICAgICAgICAgaWJ1c2ltY29udGV4 dC0+Y2xpZW50X3dpbmRvdyk7Ci0tICAgICAgICBHdGtSb290ICpyb290ID0gZ3RrX3dpZGdldF9n ZXRfcm9vdCAoaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdyk7Ci0tICAgICAgICBkb3VibGUg bngsIG55OwotLSAgICAgICAgZG91YmxlIHB4LCBweTsKLS0gICAgICAgIGd0a19uYXRpdmVfZ2V0 X3N1cmZhY2VfdHJhbnNmb3JtIChuYXRpdmUsICZueCwgJm55KTsKLS0gICAgICAgIHB4ID0gKGRv dWJsZSlhcmVhLnggKyBpYnVzaW1jb250ZXh0LT54IC0gbng7Ci0tICAgICAgICBweSA9IChkb3Vi bGUpYXJlYS55ICsgaWJ1c2ltY29udGV4dC0+eSAtIG55OwotLSAgICAgICAgZ3RrX3dpZGdldF90 cmFuc2xhdGVfY29vcmRpbmF0ZXMgKGlidXNpbWNvbnRleHQtPmNsaWVudF93aW5kb3csCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEd0a1dpZGdldCAqKXJvb3Qs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHgsIHB5LAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZweCwgJnB5KTsKLS0gICAg ICAgIGFyZWEueCA9IChpbnQpcHg7Ci0tICAgICAgICBhcmVhLnkgPSAoaW50KXB5OwotLSNlbHNl Ci0rICAgICAgICBHZGtTdXJmYWNlICpzdXJmYWNlID0gZ3RrX25hdGl2ZV9nZXRfc3VyZmFjZSAo bmF0aXZlKTsKLSsgICAgICAgIC8qIFRoZSB3aW5kb3cgaXMgdGhlIHRvcGxldmVsIHdpbmRvdyBi dXQgbm90IHRoZSBpbm5lciB0ZXh0IHdpZGdldC4KLSsgICAgICAgICAqIFVuZm9ydHVuYXRlbGx5 IEdUSzQgY2Fubm90IGdldCB0aGUgY29vcmRpbmF0ZSBvZiB0aGUgdGV4dCB3aWRnZXQuCi0rICAg ICAgICAgKi8KLSsgICAgICAgIFdpbmRvdyB3aW5kb3cgPSBnZGtfeDExX3N1cmZhY2VfZ2V0X3hp ZCAoc3VyZmFjZSk7Ci0rICAgICAgICBXaW5kb3cgY2hpbGQ7Ci0rICAgICAgICBpbnQgeCwgeTsK LSsgICAgICAgIFhUcmFuc2xhdGVDb29yZGluYXRlcyAoeGRpc3BsYXksIHdpbmRvdywgcm9vdF93 aW5kb3csCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICZ4LCAmeSwgJmNo aWxkKTsKLSsgICAgICAgIFhXaW5kb3dBdHRyaWJ1dGVzIHh3YTsKLSsgICAgICAgIFhHZXRXaW5k b3dBdHRyaWJ1dGVzICh4ZGlzcGxheSwgd2luZG93LCAmeHdhKTsKLSsgICAgICAgIGFyZWEueCA9 IHggLSB4d2EueCArIGFyZWEueDsKLSsgICAgICAgIGFyZWEueSA9IHkgLSB4d2EueSArIGFyZWEu eTsKLSsgICAgICAgIGFyZWEud2lkdGggPSB4d2Eud2lkdGg7Ci0rICAgICAgICBhcmVhLmhlaWdo dCA9IHh3YS5oZWlnaHQ7Ci0rICAgIH0KLSsjZW5kaWYKLSsjZWxpZiBHVEtfQ0hFQ0tfVkVSU0lP TiAoMywgOTMsIDApCi0rICAgIHsKLSAgICAgICAgIEd0a05hdGl2ZSAqbmF0aXZlID0gZ3RrX3dp ZGdldF9nZXRfbmF0aXZlICgKLSAgICAgICAgICAgICAgICAgaWJ1c2ltY29udGV4dC0+Y2xpZW50 X3dpbmRvdyk7Ci0gICAgICAgICBHZGtTdXJmYWNlICpzdXJmYWNlID0gZ3RrX25hdGl2ZV9nZXRf c3VyZmFjZSAobmF0aXZlKTsKLUBAIC0xNDg4LDcgKzE1MDQsNiBAQCBfc2V0X2N1cnNvcl9sb2Nh dGlvbl9pbnRlcm5hbCAoSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCkKLSAgICAgICAgIGdk a19zdXJmYWNlX2dldF9wb3NpdGlvbiAoc3VyZmFjZSwgJnJvb3RfeCwgJnJvb3RfeSk7Ci0gICAg ICAgICBhcmVhLnggKz0gcm9vdF94OwotICAgICAgICAgYXJlYS55ICs9IHJvb3RfeTsKLS0jZW5k aWYKLSAgICAgfQotICNlbHNlCi0gICAgIGdka193aW5kb3dfZ2V0X3Jvb3RfY29vcmRzIChpYnVz aW1jb250ZXh0LT5jbGllbnRfd2luZG93LAotLS0gCi0yLjI4LjAKLQotRnJvbSBlZjRjNWM3ZWY3 OTBjZTFmODBlOTRhNTQ2M2UxMTBlZDRiYWUyNTRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogV2VkLCAy MCBKYW4gMjAyMSAxNzoyNjo0NyArMDkwMAotU3ViamVjdDogW1BBVENIXSBzZXR1cDogU2VhcmNo IGVuZ2luZSBuYW1lIGRpcmVjdGx5Ci0KLUN1cnJlbnRseSB1c2VycyBjYW4gc2VhcmNoIGxhbmd1 YWdlIG5hbWVzIG9ubHkgaW4gdGhlIGxhbmd1YWdlIGxpc3QKLWluIGlidXMtc2V0dXAuIEFmdGVy IGEgbGFuZ3VhZ2UgaXMgc2VsZWN0ZWQgYW5kIG9wZW4sIGVuZ2luZSBuYW1lcyBjYW4KLWJlIHNl YXJjaGVkLgotTm93IGVuZ2luZSBuYW1lcyBhbHNvIGNhbiBiZSBzZWFyY2hlZCBpbiB0aGUgbGFu Z3VhZ2UgbGlzdC4KLS0tLQotIHNldHVwL2VuZ2luZWRpYWxvZy5weSB8IDQwICsrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0 aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zZXR1cC9lbmdpbmVkaWFs b2cucHkgYi9zZXR1cC9lbmdpbmVkaWFsb2cucHkKLWluZGV4IDcyZGVhZGE4Li5lMWMzMjJiZiAx MDA2NDQKLS0tLSBhL3NldHVwL2VuZ2luZWRpYWxvZy5weQotKysrIGIvc2V0dXAvZW5naW5lZGlh bG9nLnB5Ci1AQCAtNCw3ICs0LDcgQEAKLSAjIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0gIwotICMg Q29weXJpZ2h0IChjKSAyMDE1IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgot LSMgQ29weXJpZ2h0IChjKSAyMDE1LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJh MUBnbWFpbC5jb20+Ci0rIyBDb3B5cmlnaHQgKGMpIDIwMTUtMjAyMSBUYWthbyBGdWppd2FyYSA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSAjIENvcHlyaWdodCAoYykgMjAxMy0yMDE1IFJl ZCBIYXQsIEluYy4KLSAjCi0gIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi1AQCAtMTEyLDE1ICsxMTIsMjAgQEAgY2xhc3MgRW5n aW5lRGlhbG9nKEd0ay5EaWFsb2cpOgotICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAg ICAgaWYgc2VsZi5fX2ZpbHRlcl93b3JkID09IE5vbmU6Ci0gICAgICAgICAgICAgcmV0dXJuIFRy dWUKLSsgICAgICAgIGlmIHJvdy5iYWNrOgotKyAgICAgICAgICAgIHJldHVybiBUcnVlCi0gCi0t ICAgICAgICBuYW1lID0gcm93Lm5hbWUubG93ZXIoKQotLSAgICAgICAgdW50cmFucyA9IHJvdy51 bnRyYW5zLmxvd2VyKCkKLS0gICAgICAgIGlmIHNlbGYuX19maWx0ZXJfd29yZCAhPSBOb25lOgot LSAgICAgICAgICAgIHdvcmQgPSBzZWxmLl9fZmlsdGVyX3dvcmQubG93ZXIoKQotLSAgICAgICAg ICAgIGlmIG5hbWUuc3RhcnRzd2l0aCh3b3JkKToKLS0gICAgICAgICAgICAgICAgcmV0dXJuIFRy dWUKLS0gICAgICAgICAgICBpZiB1bnRyYW5zLnN0YXJ0c3dpdGgod29yZCk6Ci0tICAgICAgICAg ICAgICAgIHJldHVybiBUcnVlCi0rICAgICAgICB3b3JkID0gc2VsZi5fX2ZpbHRlcl93b3JkLmxv d2VyKCkKLSsgICAgICAgIGlmIHdvcmQgaW4gcm93Lm5hbWUubG93ZXIoKToKLSsgICAgICAgICAg ICByZXR1cm4gVHJ1ZQotKyAgICAgICAgaWYgd29yZCBpbiByb3cudW50cmFucy5sb3dlcigpOgot KyAgICAgICAgICAgIHJldHVybiBUcnVlCi0rICAgICAgICBpZiByb3cubGFuZ19pbmZvIGFuZCBy b3cubmFtZSBpbiBzZWxmLl9fZW5naW5lc19mb3JfbGFuZzoKLSsgICAgICAgICAgICBmb3Igcm93 X2UgaW4gc2VsZi5fX2VuZ2luZXNfZm9yX2xhbmdbcm93Lm5hbWVdOgotKyAgICAgICAgICAgICAg ICBpZiB3b3JkIGluIHJvd19lLm5hbWUubG93ZXIoKToKLSsgICAgICAgICAgICAgICAgICAgIHJl dHVybiBUcnVlCi0rICAgICAgICAgICAgICAgIGlmIHdvcmQgaW4gcm93X2UudW50cmFucy5sb3dl cigpOgotKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgIHJldHVybiBG YWxzZQotIAotIAotQEAgLTEyOSwxMSArMTM0LDkgQEAgY2xhc3MgRW5naW5lRGlhbG9nKEd0ay5E aWFsb2cpOgotICAgICAgICAgICAgIHNlbGYuX19zaG93X21vcmUoKQotICAgICAgICAgICAgIHJl dHVybgotICAgICAgICAgaWYgcm93LmJhY2s6Ci0tICAgICAgICAgICAgc2VsZi5fX2ZpbHRlcl9l bnRyeS5zZXRfdGV4dCgnJykKLSAgICAgICAgICAgICBzZWxmLl9fc2hvd19sYW5nX3Jvd3MoKQot ICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgaWYgcm93LmxhbmdfaW5mbzoKLS0gICAgICAg ICAgICBzZWxmLl9fZmlsdGVyX2VudHJ5LnNldF90ZXh0KCcnKQotICAgICAgICAgICAgIHNlbGYu X19zaG93X2VuZ2luZXNfZm9yX2xhbmcocm93KQotICAgICAgICAgICAgIHJldHVybgotIAotQEAg LTIzMiw2ICsyMzUsNyBAQCBjbGFzcyBFbmdpbmVEaWFsb2coR3RrLkRpYWxvZyk6Ci0gICAgICAg ICBkZXNjcmlwdGlvbiA9IGkxOG4uZ2V0dGV4dF9lbmdpbmVfZGVzY3JpcHRpb24oZW5naW5lKQot ICAgICAgICAgcm93ID0gc2VsZi5fX2xpc3RfYm94X3Jvd19uZXcobG9uZ25hbWUpCi0gICAgICAg ICByb3cudW50cmFucyA9IGVuZ2luZS5nZXRfbG9uZ25hbWUoKQotKyAgICAgICAgcm93LnJhbmsg PSBlbmdpbmUuZ2V0X3JhbmsoKQotICAgICAgICAgcm93LnNldF90b29sdGlwX3RleHQoZGVzY3Jp cHRpb24pCi0gICAgICAgICByb3cuZW5naW5lID0gZW5naW5lCi0gICAgICAgICB3aWRnZXQgPSBz ZWxmLl9fcGFkZGVkX2xhYmVsX25ldyhsb25nbmFtZSwKLUBAIC0yNjAsMTYgKzI2NCwxMyBAQCBj bGFzcyBFbmdpbmVEaWFsb2coR3RrLkRpYWxvZyk6Ci0gICAgICAgICBsYW5nID0gcm93Lm5hbWUK LSAKLSAgICAgICAgIGRlZiBjbXBfZW5naW5lKGEsIGIpOgotLSAgICAgICAgICAgIGlmIGEuZ2V0 X3JhbmsoKSA9PSBiLmdldF9yYW5rKCk6Ci0tICAgICAgICAgICAgICAgIGFfbG9uZ25hbWUgPSBp MThuLmdldHRleHRfZW5naW5lX2xvbmduYW1lKGEpCi0tICAgICAgICAgICAgICAgIGJfbG9uZ25h bWUgPSBpMThuLmdldHRleHRfZW5naW5lX2xvbmduYW1lKGIpCi0tICAgICAgICAgICAgICAgIHJl dHVybiBsb2NhbGUuc3RyY29sbChhX2xvbmduYW1lLCBiX2xvbmduYW1lKQotLSAgICAgICAgICAg IHJldHVybiBpbnQoYi5nZXRfcmFuaygpIC0gYS5nZXRfcmFuaygpKQotKyAgICAgICAgICAgIGlm IGEucmFuayA9PSBiLnJhbms6Ci0rICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGUuc3RyY29s bChhLm5hbWUsIGIubmFtZSkKLSsgICAgICAgICAgICByZXR1cm4gaW50KGIucmFuayAtIGEucmFu aykKLSAKLSAgICAgICAgIHNlbGYuX19lbmdpbmVzX2Zvcl9sYW5nW2xhbmddLnNvcnQoCi0gICAg ICAgICAgICAgICAgIGtleSA9IGZ1bmN0b29scy5jbXBfdG9fa2V5KGNtcF9lbmdpbmUpKQotLSAg ICAgICAgZm9yIGUgaW4gc2VsZi5fX2VuZ2luZXNfZm9yX2xhbmdbbGFuZ106Ci0tICAgICAgICAg ICAgcm93ID0gc2VsZi5fX2VuZ2luZV9yb3dfbmV3KGUpCi0rICAgICAgICBmb3Igcm93IGluIHNl bGYuX19lbmdpbmVzX2Zvcl9sYW5nW2xhbmddOgotICAgICAgICAgICAgIHNlbGYuX19saXN0LmFk ZChyb3cpCi0gCi0gCi1AQCAtMzI5LDcgKzMzMCw4IEBAIGNsYXNzIEVuZ2luZURpYWxvZyhHdGsu RGlhbG9nKToKLSAgICAgICAgICAgICBpZiBsIG5vdCBpbiBzZWxmLl9fZW5naW5lc19mb3JfbGFu ZzoKLSAgICAgICAgICAgICAgICAgc2VsZi5fX2VuZ2luZXNfZm9yX2xhbmdbbF0gPSBbXQotICAg ICAgICAgICAgIGkxOG4uaW5pdF90ZXh0ZG9tYWluKGUuZ2V0X3RleHRkb21haW4oKSkKLS0gICAg ICAgICAgICBzZWxmLl9fZW5naW5lc19mb3JfbGFuZ1tsXS5hcHBlbmQoZSkKLSsgICAgICAgICAg ICByb3cgPSBzZWxmLl9fZW5naW5lX3Jvd19uZXcoZSkKLSsgICAgICAgICAgICBzZWxmLl9fZW5n aW5lc19mb3JfbGFuZ1tsXS5hcHBlbmQocm93KQotIAotICAgICAgICAgICAgICMgUmV0cmlldmUg VW50cmFuc2xhdGVkIGxhbmd1YWdlIG5hbWVzLgotICAgICAgICAgICAgIHVudHJhbnMgPSBJQnVz LmdldF91bnRyYW5zbGF0ZWRfbGFuZ3VhZ2VfbmFtZShlLmdldF9sYW5ndWFnZSgpKQotLS0gCi0y LjI4LjAKLQo=