From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE,URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: from inbox.vuxu.org (inbox.vuxu.org [IPv6:::1]) by inbox.vuxu.org (Postfix) with ESMTP id 0B43C24952 for ; Fri, 15 Mar 2024 07:33:16 +0100 (CET) Content-Type: multipart/mixed; boundary="===============4692901006130190737==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_glibc=3A_update_to_2=2E39=2E?= To: ml@inbox.vuxu.org From: oreo639 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 15 Mar 2024 07:33:16 +0100 List-Id: Message-Id: <20240315063316.0B43C24952@inbox.vuxu.org> GitHub notification mails are now in MIME to allow UTF8. --===============4692901006130190737== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgb3JlbzYzOSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vb3Jl bzYzOS92b2lkLXBhY2thZ2VzIGdsaWJjMi4zOQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL3B1bGwvNDkxNjMKCmdsaWJjOiB1cGRhdGUgdG8gMi4zOS4KPCEtLSBV bmNvbW1lbnQgcmVsZXZhbnQgc2VjdGlvbnMgYW5kIGRlbGV0ZSBvcHRpb25zIHdoaWNoIGFyZSBu b3QgYXBwbGljYWJsZSAtLT4NCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVk IHRoZSBjaGFuZ2VzIGluIHRoaXMgUFI6ICoqYnJpZWZseSoqDQoNCltjaSBza2lwXQ0KDQpEZXBl bmRzIG9uOiBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwv NDkxNDYNClNlZTogaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9p c3N1ZXMvNDkxNjINCg0KTm8gbWFqb3IgcGFja2FnaW5nIGNoYW5nZXMgaW5kaWNhdGVkIGJ5IHVw c3RyZWFtOg0KaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9nbGliYy93aWtpL1JlbGVhc2UvMi4zOQ0K aHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9pbmZvLWdudS8yMDI0LTAxL21zZzAw MDE3Lmh0bWwNCg0KPCEtLQ0KIyMjIyBOZXcgcGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNv bmZvcm1zIHRvIHRoZSBbcGFja2FnZSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92 b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI3BhY2th Z2UtcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioNCi0tPg0KDQo8IS0tIE5vdGU6IElmIHRo ZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIGFkZCBj aSBza2lwIHRhZyBhcyBkZXNjcmliZWQgaW4NCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50 ZWdyYXRpb24NCmFuZCB0ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBw b3J0ZWQsIGF0IGxlYXN0IG9uZSBjcm9zcyBidWlsZC4NCklnbm9yZSB0aGlzIHNlY3Rpb24gaWYg dGhpcyBQUiBpcyBub3Qgc2tpcHBpbmcgQ0kuDQotLT4NCjwhLS0NCiMjIyMgTG9jYWwgYnVpbGQg dGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hpdGVj dHVyZSwgKEFSQ0gtTElCQykNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFy Y2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFyY2g2 NC1tdXNsDQogIC0gYXJtdjdsDQogIC0gYXJtdjZsLW11c2wNCi0tPg0KCgpBIHBhdGNoIGZpbGUg ZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDkx NjMucGF0Y2ggaXMgYXR0YWNoZWQ= --===============4692901006130190737== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-glibc2.39-49163.patch" RnJvbSAwZDI1ZTJiNzY0ZjJmZjJmMGFmZDlmNzQyMjViZWFmOWIzODZjZTExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgNiBNYXIgMjAyNCAxNzo1OToxMSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMTJdIGdsaWJj OiB1cGRhdGUgdG8gMi4zOS4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDYwICsrLS0KIC4uLjRmMTBiNTA0YmM0NTY0ZTlmMjJmMDA5MDcwOTNm MWFiOTMzOC5wYXRjaCB8IDMzNSAtLS0tLS0tLS0tLS0tLS0tLS0KIC4uLjFhMDA0N2ZiMjZhNjVh OWIyYTdiOGNkOTc3MjQzZjdkMzUzYy5wYXRjaCB8IDI2MiArKysrKysrKysrKysrKwogLi4uMTEw NTg1MjU2OGMzZWJjNzEyMjI1YWU3OGI4YzhiYTMxYTc4LnBhdGNoIHwgMjk2IC0tLS0tLS0tLS0t LS0tLS0KIC4uLmZjMWNmMDk0NDA2YTEzOGU0ZDFiY2Y5NTUzZTU5ZWRjZjg5ZC5wYXRjaCB8IDI1 MiAtLS0tLS0tLS0tLS0tCiAuLi4xNTk2MjZiNjdmZTExZjM5ZTgzZTIyMmNmNDM0OGEzOTYyZjMu cGF0Y2ggfCAgODAgKysrKysKIC4uLjVlNGZkYTFmNmRhYjRiZjc0NDI3MDZmZTMwM2JmMjgzMDM2 Yy5wYXRjaCB8ICAzNyArKwogc3JjcGtncy9nbGliYy9wYXRjaGVzL0NWRS0yMDIzLTYyNDYucGF0 Y2ggICAgIHwgMTc4IC0tLS0tLS0tLS0KIHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9DVkUtMjAyMy02 Nzc5LnBhdGNoICAgICB8IDEwMyAtLS0tLS0KIHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9DVkUtMjAy My02NzgwLnBhdGNoICAgICB8ICAzOCAtLQogLi4uMDhkZDc3NGI2MTdmOTk0MTliZGMzY2YyYWNl NDU2MGNkMmQ2LnBhdGNoIHwgMTkyIC0tLS0tLS0tLS0KIC4uLnRlLUdMSUJDX1RVTkFCTEVTLWlu LXNldHhpZC1iaW5hcmllcy5wYXRjaCB8IDE5OCAtLS0tLS0tLS0tLQogc3JjcGtncy9nbGliYy90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICstCiAxMyBmaWxlcyBjaGFuZ2Vk LCA0MTUgaW5zZXJ0aW9ucygrKSwgMTYyOSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2dsaWJjL3BhdGNoZXMvMDBhZTRmMTBiNTA0YmM0NTY0ZTlmMjJmMDA5MDcwOTNm MWFiOTMzOC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy8x YjljMWEwMDQ3ZmIyNmE2NWE5YjJhN2I4Y2Q5NzcyNDNmN2QzNTNjLnBhdGNoCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9nbGliYy9wYXRjaGVzLzMwNzIzLTEtNTQyYjExMDU4NTI1NjhjM2Vi YzcxMjIyNWFlNzhiOGM4YmEzMWE3OC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv Z2xpYmMvcGF0Y2hlcy8zMDcyMy0yLTBkYzdmYzFjZjA5NDQwNmExMzhlNGQxYmNmOTU1M2U1OWVk Y2Y4OWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dsaWJjL3BhdGNoZXMvMzEy ZTE1OTYyNmI2N2ZlMTFmMzllODNlMjIyY2Y0MzQ4YTM5NjJmMy5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy82MzI5NWU0ZmRhMWY2ZGFiNGJmNzQ0MjcwNmZl MzAzYmYyODMwMzZjLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGliYy9wYXRj aGVzL0NWRS0yMDIzLTYyNDYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dsaWJj L3BhdGNoZXMvQ1ZFLTIwMjMtNjc3OS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv Z2xpYmMvcGF0Y2hlcy9DVkUtMjAyMy02NzgwLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9nbGliYy9wYXRjaGVzL2IyNTUwOGRkNzc0YjYxN2Y5OTQxOWJkYzNjZjJhY2U0NTYwY2Qy ZDYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dsaWJjL3BhdGNoZXMvY29tbWl0 dGVkLTEtMi1Qcm9wYWdhdGUtR0xJQkNfVFVOQUJMRVMtaW4tc2V0eGlkLWJpbmFyaWVzLnBhdGNo CgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggZDMyOThl MjEwMDNkZjIuLjFiNTU0ZjIzYmNmZTEyIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBi L2NvbW1vbi9zaGxpYnMKQEAgLTE3LDQwICsxNyw0MCBAQAogIyBvbmUgKG9yZGVyIHRvcC0+Ym90 dG9tKSBpcyBwcmVmZXJyZWQgb3ZlciB0aGUgbmV4dCBvbmVzLgogIwogbGliYy5zbyBtdXNsLTEu MS4yNF83Ci1saWJjLnNvLjYgZ2xpYmMtMi4zOF8xCi1saWJtLnNvLjYgZ2xpYmMtMi4zOF8xCi1s aWJwdGhyZWFkLnNvLjAgZ2xpYmMtMi4zOF8xCi1saWJydC5zby4xIGdsaWJjLTIuMzhfMQotbGli ZGwuc28uMiBnbGliYy0yLjM4XzEKLWxkLWxpbnV4LXg4Ni02NC5zby4yIGdsaWJjLTIuMzhfMSB4 ODZfNjQKLWxkLWxpbnV4LnNvLjIgZ2xpYmMtMi4zOF8xIGk2ODYKLWxkLWxpbnV4LnNvLjMgZ2xp YmMtMi4zOF8xIGFybXY1dGVsCi1sZC1saW51eC1hYXJjaDY0LnNvLjEgZ2xpYmMtMi4zOF8xIGFh cmNoNjQKLWxkLWxpbnV4LXJpc2N2NjQtbHA2NGQuc28uMSBnbGliYy0yLjM4XzEgcmlzY3Y2NAot bGQ2NC5zby4yIGdsaWJjLTIuMzhfMSBwcGM2NAotbGQuc28uMSBnbGliYy0yLjM4XzEgbWlwcwot bGQuc28uMSBnbGliYy0yLjM4XzEgcHBjCi1sZC1saW51eC1hcm1oZi5zby4zIGdsaWJjLTIuMzhf MQotbGlicmVzb2x2LnNvLjIgZ2xpYmMtMi4zOF8xCi1saWJhbmwuc28uMSBnbGliYy0yLjM4XzEK LWxpYnRocmVhZF9kYi5zby4xIGdsaWJjLTIuMzhfMQotbGlidXRpbC5zby4xIGdsaWJjLTIuMzhf MQotbGlibnNsLnNvLjEgZ2xpYmMtMi4zOF8xCi1saWJuc3NfZGIuc28uMiBnbGliYy0yLjM4XzEK LWxpYm5zc19maWxlcy5zby4yIGdsaWJjLTIuMzhfMQotbGlibnNzX2NvbXBhdC5zby4yIGdsaWJj LTIuMzhfMQotbGlibnNzX2Rucy5zby4yIGdsaWJjLTIuMzhfMQotbGlibnNzX2hlc2lvZC5zby4y IGdsaWJjLTIuMzhfMQotbGliQnJva2VuTG9jYWxlLnNvLjEgZ2xpYmMtMi4zOF8xCitsaWJjLnNv LjYgZ2xpYmMtMi4zOV8xCitsaWJtLnNvLjYgZ2xpYmMtMi4zOV8xCitsaWJwdGhyZWFkLnNvLjAg Z2xpYmMtMi4zOV8xCitsaWJydC5zby4xIGdsaWJjLTIuMzlfMQorbGliZGwuc28uMiBnbGliYy0y LjM5XzEKK2xkLWxpbnV4LXg4Ni02NC5zby4yIGdsaWJjLTIuMzlfMSB4ODZfNjQKK2xkLWxpbnV4 LnNvLjIgZ2xpYmMtMi4zOV8xIGk2ODYKK2xkLWxpbnV4LnNvLjMgZ2xpYmMtMi4zOV8xIGFybXY1 dGVsCitsZC1saW51eC1hYXJjaDY0LnNvLjEgZ2xpYmMtMi4zOV8xIGFhcmNoNjQKK2xkLWxpbnV4 LXJpc2N2NjQtbHA2NGQuc28uMSBnbGliYy0yLjM5XzEgcmlzY3Y2NAorbGQ2NC5zby4yIGdsaWJj LTIuMzlfMSBwcGM2NAorbGQuc28uMSBnbGliYy0yLjM5XzEgbWlwcworbGQuc28uMSBnbGliYy0y LjM5XzEgcHBjCitsZC1saW51eC1hcm1oZi5zby4zIGdsaWJjLTIuMzlfMQorbGlicmVzb2x2LnNv LjIgZ2xpYmMtMi4zOV8xCitsaWJhbmwuc28uMSBnbGliYy0yLjM5XzEKK2xpYnRocmVhZF9kYi5z by4xIGdsaWJjLTIuMzlfMQorbGlidXRpbC5zby4xIGdsaWJjLTIuMzlfMQorbGlibnNsLnNvLjEg Z2xpYmMtMi4zOV8xCitsaWJuc3NfZGIuc28uMiBnbGliYy0yLjM5XzEKK2xpYm5zc19maWxlcy5z by4yIGdsaWJjLTIuMzlfMQorbGlibnNzX2NvbXBhdC5zby4yIGdsaWJjLTIuMzlfMQorbGlibnNz X2Rucy5zby4yIGdsaWJjLTIuMzlfMQorbGlibnNzX2hlc2lvZC5zby4yIGdsaWJjLTIuMzlfMQor bGliQnJva2VuTG9jYWxlLnNvLjEgZ2xpYmMtMi4zOV8xCitsaWJtZW11c2FnZS5zbyBnbGliYy0y LjM5XzEKK2xpYlNlZ0ZhdWx0LnNvIGdsaWJjLTIuMzlfMQorbGlicGNwcm9maWxlLnNvIGdsaWJj LTIuMzlfMQorbGliY2lkbi5zby4xIGdsaWJjLTIuMzlfMQorbGlibXZlYy5zby4xIGdsaWJjLTIu MzlfMQogbGliY3J5cHQuc28uMiBsaWJ4Y3J5cHQtNC40LjM2XzEKIGxpYmNyeXB0LnNvLjEgbGli eGNyeXB0LWNvbXBhdC00LjQuMzZfMQogbGliU2ltR2VhckNvcmUuc28uMjAyMC4zLjE3IHNpbWdl YXItMjAyMC4zLjE3XzEKIGxpYlNpbUdlYXJTY2VuZS5zby4yMDIwLjMuMTcgc2ltZ2Vhci0yMDIw LjMuMTdfMQotbGlibWVtdXNhZ2Uuc28gZ2xpYmMtMi4zOF8xCi1saWJTZWdGYXVsdC5zbyBnbGli Yy0yLjM4XzEKLWxpYnBjcHJvZmlsZS5zbyBnbGliYy0yLjM4XzEKLWxpYmNpZG4uc28uMSBnbGli Yy0yLjM4XzEKLWxpYm12ZWMuc28uMSBnbGliYy0yLjM4XzEKIGxpYmNkZGdtcC5zby4wIGNkZGxp Yi0wLjk0bV8xCiBsaWJjZGQuc28uMCBjZGRsaWItMC45NG1fMQogbGliY293c3FsLnNvLjAgY293 c3FsLTEuMTUuNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvMDBhZTRmMTBi NTA0YmM0NTY0ZTlmMjJmMDA5MDcwOTNmMWFiOTMzOC5wYXRjaCBiL3NyY3BrZ3MvZ2xpYmMvcGF0 Y2hlcy8wMGFlNGYxMGI1MDRiYzQ1NjRlOWYyMmYwMDkwNzA5M2YxYWI5MzM4LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjUzODc2NzgwOWI4Mi4uMDAwMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9nbGliYy9wYXRjaGVzLzAwYWU0ZjEwYjUwNGJjNDU2NGU5ZjIyZjAwOTA3 MDkzZjFhYjkzMzgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMzUgKzAsMCBAQAotRnJvbSAw MGFlNGYxMGI1MDRiYzQ1NjRlOWYyMmYwMDkwNzA5M2YxYWI5MzM4IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9y Zz4KLURhdGU6IEZyaSwgMTUgU2VwIDIwMjMgMTM6NTE6MTIgLTA0MDAKLVN1YmplY3Q6IFtQQVRD SF0gZ2V0YWRkcmluZm86IEZpeCB1c2UgYWZ0ZXIgZnJlZSBpbiBnZXRjYW5vbm5hbWUKLSAoQ1ZF LTIwMjMtNDgwNikKLQotV2hlbiBhbiBOU1MgcGx1Z2luIG9ubHkgaW1wbGVtZW50cyB0aGUgX2dl dGhvc3RieW5hbWUyX3IgYW5kCi1fZ2V0Y2Fub25uYW1lX3IgY2FsbGJhY2tzLCBnZXRhZGRyaW5m byBjb3VsZCB1c2UgbWVtb3J5IHRoYXQgd2FzIGZyZWVkCi1kdXJpbmcgdG1wYnVmIHJlc2l6aW5n LCB0aHJvdWdoIGhfbmFtZSBpbiBhIHByZXZpb3VzIHF1ZXJ5IHJlc3BvbnNlLgotCi1UaGUgYmFj a2luZyBzdG9yZSBmb3IgcmVzLT5hdC0+bmFtZSB3aGVuIGRvaW5nIGEgcXVlcnkgd2l0aAotZ2V0 aG9zdGJ5bmFtZTNfciBvciBnZXRob3N0YnluYW1lMl9yIGlzIHRtcGJ1Ziwgd2hpY2ggaXMgcmVh bGxvY2F0ZWQgaW4KLWdldGhvc3RzIGR1cmluZyB0aGUgcXVlcnkuICBGb3IgQUZfSU5FVDYgbG9v a3VwIHdpdGggQUlfQUxMIHwKLUFJX1Y0TUFQUEVELCBnZXRob3N0cyBnZXRzIGNhbGxlZCB0d2lj ZSwgb25jZSBmb3IgYSB2NiBsb29rdXAgYW5kIHNlY29uZAotZm9yIGEgdjQgbG9va3VwLiAgSW4g dGhpcyBjYXNlLCBpZiB0aGUgZmlyc3QgY2FsbCByZWFsbG9jYXRlcyB0bXBidWYKLWVub3VnaCBu dW1iZXIgb2YgdGltZXMsIHJlc3VsdGluZyBpbiBhIG1hbGxvYywgdGgtPmhfbmFtZSAodGhhdAot cmVzLT5hdC0+bmFtZSByZWZlcnMgdG8pIGVuZHMgdXAgb24gYSBoZWFwIGFsbG9jYXRlZCBzdG9y YWdlIGluIHRtcGJ1Zi4KLU5vdyBpZiB0aGUgc2Vjb25kIGNhbGwgdG8gZ2V0aG9zdHMgYWxzbyBj YXVzZXMgdGhlIHBsdWdpbiBjYWxsYmFjayB0bwotcmV0dXJuIE5TU19TVEFUVVNfVFJZQUdBSU4s IHRtcGJ1ZiB3aWxsIGdldCBmcmVlZCwgcmVzdWx0aW5nIGluIGEgVUFGCi1yZWZlcmVuY2UgaW4g cmVzLT5hdC0+bmFtZS4gIFRoaXMgdGhlbiBnZXRzIGRlcmVmZXJlbmNlZCBpbiB0aGUKLWdldGNh bm9ubmFtZV9yIHBsdWdpbiBjYWxsLCByZXN1bHRpbmcgaW4gdGhlIHVzZSBhZnRlciBmcmVlLgot Ci1GaXggdGhpcyBieSBjb3B5aW5nIGhfbmFtZSBvdmVyIGFuZCBmcmVlaW5nIGl0IGF0IHRoZSBl bmQuICBUaGlzCi1yZXNvbHZlcyBCWiAjMzA4NDMsIHdoaWNoIGlzIGFzc2lnbmVkIENWRS0yMDIz LTQ4MDYuCi0KLVNpZ25lZC1vZmYtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291 cmNld2FyZS5vcmc+Ci0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5NzNmZTkzYTU2NzVjNDI3 OThiMjE2MWM2ZjI5YzAxYjBlMjQzOTk0KQotLS0tCi0gbnNzL01ha2VmaWxlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKy0KLSBuc3MvbnNzX3Rlc3RfZ2FpX2h2Ml9j YW5vbm5hbWUuYyAgICAgICAgICAgICAgfCA1NiArKysrKysrKysrKysrKysrKwotIG5zcy90c3Qt bnNzLWdhaS1odjItY2Fub25uYW1lLmMgICAgICAgICAgICAgICB8IDYzICsrKysrKysrKysrKysr KysrKysKLSBuc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5oICAgICAgICAgICAgICAgfCAg MSArCi0gLi4uL3Bvc3RjbGVhbi5yZXEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDAK LSAuLi4vdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5zY3JpcHQgICAgICAgICAgfCAgMiArCi0g c3lzZGVwcy9wb3NpeC9nZXRhZGRyaW5mby5jICAgICAgICAgICAgICAgICAgIHwgMjUgKysrKyst LS0KLSA3IGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkK LSBjcmVhdGUgbW9kZSAxMDA2NDQgbnNzL25zc190ZXN0X2dhaV9odjJfY2Fub25uYW1lLmMKLSBj cmVhdGUgbW9kZSAxMDA2NDQgbnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUuYwotIGNyZWF0 ZSBtb2RlIDEwMDY0NCBuc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5oCi0gY3JlYXRlIG1v ZGUgMTAwNjQ0IG5zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLnJvb3QvcG9zdGNsZWFuLnJl cQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBuc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5yb290 L3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUuc2NyaXB0Ci0KLWRpZmYgLS1naXQgYS9uc3MvTWFr ZWZpbGUgYi9uc3MvTWFrZWZpbGUKLWluZGV4IDA2ZmNkYzQ1MGYxLi44YTUxMjZlY2YzNCAxMDA2 NDQKLS0tLSBhL25zcy9NYWtlZmlsZQotKysrIGIvbnNzL01ha2VmaWxlCi1AQCAtODIsNiArODIs NyBAQCB0ZXN0cy1jb250YWluZXIgOj0gXAotICAgdHN0LW5zcy10ZXN0MyBcCi0gICB0c3QtcmVs b2FkMSBcCi0gICB0c3QtcmVsb2FkMiBcCi0rICB0c3QtbnNzLWdhaS1odjItY2Fub25uYW1lIFwK LSAjIHRlc3RzLWNvbnRhaW5lcgotIAotICMgVGVzdHMgd2hpY2ggbmVlZCBsaWJkbAotQEAgLTE0 NSw3ICsxNDYsOCBAQCBsaWJuc3NfY29tcGF0LWluaGliaXQtbwk9ICQoZmlsdGVyLW91dCAub3Ms JChvYmplY3Qtc3VmZml4ZXMpKQotIGlmZXEgKCQoYnVpbGQtc3RhdGljLW5zcykseWVzKQotIHRl c3RzLXN0YXRpYwkJKz0gdHN0LW5zcy1zdGF0aWMKLSBlbmRpZgotLWV4dHJhLXRlc3Qtb2JqcwkJ Kz0gbnNzX3Rlc3QxLm9zIG5zc190ZXN0Mi5vcyBuc3NfdGVzdF9lcnJuby5vcwotK2V4dHJhLXRl c3Qtb2JqcwkJKz0gbnNzX3Rlc3QxLm9zIG5zc190ZXN0Mi5vcyBuc3NfdGVzdF9lcnJuby5vcyBc Ci0rCQkJICAgbnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUub3MKLSAKLSBpbmNsdWRlIC4uL1J1 bGVzCi0gCi1AQCAtMTgwLDEyICsxODIsMTYgQEAgcnRsZC10ZXN0cy1MREZMQUdTICs9IC1XbCwt LWR5bmFtaWMtbGlzdD1uc3NfdGVzdC52ZXIKLSBsaWJvZi1uc3NfdGVzdDEgPSBleHRyYW1vZHVs ZXMKLSBsaWJvZi1uc3NfdGVzdDIgPSBleHRyYW1vZHVsZXMKLSBsaWJvZi1uc3NfdGVzdF9lcnJu byA9IGV4dHJhbW9kdWxlcwotK2xpYm9mLW5zc190ZXN0X2dhaV9odjJfY2Fub25uYW1lID0gZXh0 cmFtb2R1bGVzCi0gJChvYmpwZngpL2xpYm5zc190ZXN0MS5zbzogJChvYmpwZngpbnNzX3Rlc3Qx Lm9zICQobGluay1saWJjLWRlcHMpCi0gCSQoYnVpbGQtbW9kdWxlKQotICQob2JqcGZ4KS9saWJu c3NfdGVzdDIuc286ICQob2JqcGZ4KW5zc190ZXN0Mi5vcyAkKGxpbmstbGliYy1kZXBzKQotIAkk KGJ1aWxkLW1vZHVsZSkKLSAkKG9ianBmeCkvbGlibnNzX3Rlc3RfZXJybm8uc286ICQob2JqcGZ4 KW5zc190ZXN0X2Vycm5vLm9zICQobGluay1saWJjLWRlcHMpCi0gCSQoYnVpbGQtbW9kdWxlKQot KyQob2JqcGZ4KS9saWJuc3NfdGVzdF9nYWlfaHYyX2Nhbm9ubmFtZS5zbzogXAotKyAgJChvYmpw ZngpbnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUub3MgJChsaW5rLWxpYmMtZGVwcykKLSsJJChi dWlsZC1tb2R1bGUpCi0gJChvYmpwZngpbnNzX3Rlc3QyLm9zIDogbnNzX3Rlc3QxLmMKLSAjIFVz ZSB0aGUgbnNzX2ZpbGVzIHN1ZmZpeCBmb3IgdGhlc2Ugb2JqZWN0cyBhcyB3ZWxsLgotICQob2Jq cGZ4KS9saWJuc3NfdGVzdDEuc28kKGxpYm5zc19maWxlcy5zby12ZXJzaW9uKTogJChvYmpwZngp L2xpYm5zc190ZXN0MS5zbwotQEAgLTE5NSwxMCArMjAxLDE0IEBAICQob2JqcGZ4KS9saWJuc3Nf dGVzdDIuc28kKGxpYm5zc19maWxlcy5zby12ZXJzaW9uKTogJChvYmpwZngpL2xpYm5zc190ZXN0 Mi5zbwotICQob2JqcGZ4KS9saWJuc3NfdGVzdF9lcnJuby5zbyQobGlibnNzX2ZpbGVzLnNvLXZl cnNpb24pOiBcCi0gICAkKG9ianBmeCkvbGlibnNzX3Rlc3RfZXJybm8uc28KLSAJJChtYWtlLWxp bmspCi0rJChvYmpwZngpL2xpYm5zc190ZXN0X2dhaV9odjJfY2Fub25uYW1lLnNvJChsaWJuc3Nf ZmlsZXMuc28tdmVyc2lvbik6IFwKLSsgICQob2JqcGZ4KS9saWJuc3NfdGVzdF9nYWlfaHYyX2Nh bm9ubmFtZS5zbwotKwkkKG1ha2UtbGluaykKLSAkKHBhdHN1YnN0ICUsJChvYmpwZngpJS5vdXQs JCh0ZXN0cykgJCh0ZXN0cy1jb250YWluZXIpKSA6IFwKLSAJJChvYmpwZngpL2xpYm5zc190ZXN0 MS5zbyQobGlibnNzX2ZpbGVzLnNvLXZlcnNpb24pIFwKLSAJJChvYmpwZngpL2xpYm5zc190ZXN0 Mi5zbyQobGlibnNzX2ZpbGVzLnNvLXZlcnNpb24pIFwKLS0JJChvYmpwZngpL2xpYm5zc190ZXN0 X2Vycm5vLnNvJChsaWJuc3NfZmlsZXMuc28tdmVyc2lvbikKLSsJJChvYmpwZngpL2xpYm5zc190 ZXN0X2Vycm5vLnNvJChsaWJuc3NfZmlsZXMuc28tdmVyc2lvbikgXAotKwkkKG9ianBmeCkvbGli bnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUuc28kKGxpYm5zc19maWxlcy5zby12ZXJzaW9uKQot IAotIGlmZXEgKHllcywkKGhhdmUtdGhyZWFkLWxpYnJhcnkpKQotICQob2JqcGZ4KXRzdC1jYW5j ZWwtZ2V0cHd1aWRfcjogJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCi1AQCAtMjE1LDMgKzIyNSw0 IEBAIExERkxBR1MtdHN0LW5zcy10ZXN0MyA9IC1XbCwtLWRpc2FibGUtbmV3LWR0YWdzCi0gTERG TEFHUy10c3QtbnNzLXRlc3Q0ID0gLVdsLC0tZGlzYWJsZS1uZXctZHRhZ3MKLSBMREZMQUdTLXRz dC1uc3MtdGVzdDUgPSAtV2wsLS1kaXNhYmxlLW5ldy1kdGFncwotIExERkxBR1MtdHN0LW5zcy10 ZXN0X2Vycm5vID0gLVdsLC0tZGlzYWJsZS1uZXctZHRhZ3MKLStMREZMQUdTLXRzdC1uc3MtdGVz dF9nYWlfaHYyX2Nhbm9ubmFtZSA9IC1XbCwtLWRpc2FibGUtbmV3LWR0YWdzCi1kaWZmIC0tZ2l0 IGEvbnNzL25zc190ZXN0X2dhaV9odjJfY2Fub25uYW1lLmMgYi9uc3MvbnNzX3Rlc3RfZ2FpX2h2 Ml9jYW5vbm5hbWUuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMDAwLi40 NDM5YzgzYzlmNAotLS0tIC9kZXYvbnVsbAotKysrIGIvbnNzL25zc190ZXN0X2dhaV9odjJfY2Fu b25uYW1lLmMKLUBAIC0wLDAgKzEsNTYgQEAKLSsvKiBOU1Mgc2VydmljZSBwcm92aWRlciB0aGF0 IG9ubHkgcHJvdmlkZXMgZ2V0aG9zdGJ5bmFtZTJfci4KLSsgICBDb3B5cmlnaHQgVGhlIEdOVSBU b29sY2hhaW4gQXV0aG9ycy4KLSsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGli cmFyeS4KLSsKLSsgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSsgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0rICAgdmVyc2lvbiAyLjEg b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0r Ci0rICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rICAgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0r ICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQotKyAg IDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKyNpbmNsdWRlIDxuc3Mu aD4KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHN0cmluZy5oPgotKyNpbmNsdWRl ICJuc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5oIgotKwotKy8qIENhdGNoIG1pc25hbWVk IGFuZCBmdW5jdGlvbnMuICAqLwotKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgZXJyb3IgIi1XbWlz c2luZy1wcm90b3R5cGVzIgotK05TU19ERUNMQVJFX01PRFVMRV9GVU5DVElPTlMgKHRlc3RfZ2Fp X2h2Ml9jYW5vbm5hbWUpCi0rCi0rZXh0ZXJuIGVudW0gbnNzX3N0YXR1cyBfbnNzX2ZpbGVzX2dl dGhvc3RieW5hbWUyX3IgKGNvbnN0IGNoYXIgKiwgaW50LAotKwkJCQkJCSAgICBzdHJ1Y3QgaG9z dGVudCAqLCBjaGFyICosCi0rCQkJCQkJICAgIHNpemVfdCwgaW50ICosIGludCAqKTsKLSsKLStl bnVtIG5zc19zdGF0dXMKLStfbnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWVfZ2V0aG9zdGJ5bmFt ZTJfciAoY29uc3QgY2hhciAqbmFtZSwgaW50IGFmLAotKwkJCQkJICAgICAgc3RydWN0IGhvc3Rl bnQgKnJlc3VsdCwKLSsJCQkJCSAgICAgIGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmxlbiwKLSsJ CQkJCSAgICAgIGludCAqZXJybm9wLCBpbnQgKmhlcnJub3ApCi0rewotKyAgcmV0dXJuIF9uc3Nf ZmlsZXNfZ2V0aG9zdGJ5bmFtZTJfciAobmFtZSwgYWYsIHJlc3VsdCwgYnVmZmVyLCBidWZsZW4s IGVycm5vcCwKLSsJCQkJICAgICAgaGVycm5vcCk7Ci0rfQotKwotK2VudW0gbnNzX3N0YXR1cwot K19uc3NfdGVzdF9nYWlfaHYyX2Nhbm9ubmFtZV9nZXRjYW5vbm5hbWVfciAoY29uc3QgY2hhciAq bmFtZSwgY2hhciAqYnVmZmVyLAotKwkJCQkJICAgIHNpemVfdCBidWZsZW4sIGNoYXIgKipyZXN1 bHQsCi0rCQkJCQkgICAgaW50ICplcnJub3AsIGludCAqaF9lcnJub3ApCi0rewotKyAgLyogV2Ug ZXhwZWN0IFFVRVJZTkFNRSwgd2hpY2ggaXMgYSBzbWFsbCBlbm91Z2ggc3RyaW5nIHRoYXQgaXQg c2hvdWxkbid0IGZhaWwKLSsgICAgIHRoZSB0ZXN0LiAgKi8KLSsgIGlmIChtZW1jbXAgKFFVRVJZ TkFNRSwgbmFtZSwgc2l6ZW9mIChRVUVSWU5BTUUpKQotKyAgICAgIHx8IGJ1ZmxlbiA8IHNpemVv ZiAoUVVFUllOQU1FKSkKLSsgICAgYWJvcnQgKCk7Ci0rCi0rICBzdHJuY3B5IChidWZmZXIsIG5h bWUsIGJ1Zmxlbik7Ci0rICAqcmVzdWx0ID0gYnVmZmVyOwotKyAgcmV0dXJuIE5TU19TVEFUVVNf U1VDQ0VTUzsKLSt9Ci1kaWZmIC0tZ2l0IGEvbnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUu YyBiL25zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwMDAwMC4uZDVmMTBjMDdkNmEKLS0tLSAvZGV2L251bGwKLSsrKyBiL25z cy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmMKLUBAIC0wLDAgKzEsNjMgQEAKLSsvKiBUZXN0 IE5TUyBxdWVyeSBwYXRoIGZvciBwbHVnaW5zIHRoYXQgb25seSBpbXBsZW1lbnQgZ2V0aG9zdGJ5 bmFtZTIKLSsgICAoIzMwODQzKS4KLSsgICBDb3B5cmlnaHQgVGhlIEdOVSBUb29sY2hhaW4gQXV0 aG9ycy4KLSsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KLSsKLSsg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKLSsgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCi0rICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0rICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vu c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhlIEdO VSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rICAgTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rICAgTGljZW5zZSBh bG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQotKyAgIDxodHRwczovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKyNpbmNsdWRlIDxuc3MuaD4KLSsjaW5jbHVk ZSA8bmV0ZGIuaD4KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHN0cmluZy5oPgot KyNpbmNsdWRlIDxzdXBwb3J0L2NoZWNrLmg+Ci0rI2luY2x1ZGUgPHN1cHBvcnQveHN0ZGlvLmg+ Ci0rI2luY2x1ZGUgIm5zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmgiCi0rCi0rI2RlZmlu ZSBQUkVQQVJFIGRvX3ByZXBhcmUKLSsKLStzdGF0aWMgdm9pZCBkb19wcmVwYXJlIChpbnQgYSwg Y2hhciAqKmF2KQotK3sKLSsgIEZJTEUgKmhvc3RzID0geGZvcGVuICgiL2V0Yy9ob3N0cyIsICJ3 Iik7Ci0rICBmb3IgKHVuc2lnbmVkIGkgPSAyOyBpIDwgMjU1OyBpKyspCi0rICAgIHsKLSsgICAg ICBmcHJpbnRmIChob3N0cywgImZmMDE6OmZmMDI6ZmYwMzoldToyXHR0ZXN0LmV4YW1wbGUuY29t XG4iLCBpKTsKLSsgICAgICBmcHJpbnRmIChob3N0cywgIjE5Mi4xNjguMC4ldVx0dGVzdC5leGFt cGxlLmNvbVxuIiwgaSk7Ci0rICAgIH0KLSsgIHhmY2xvc2UgKGhvc3RzKTsKLSt9Ci0rCi0rc3Rh dGljIGludAotK2RvX3Rlc3QgKHZvaWQpCi0rewotKyAgX19uc3NfY29uZmlndXJlX2xvb2t1cCAo Imhvc3RzIiwgInRlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUiKTsKLSsKLSsgIHN0cnVjdCBhZGRyaW5m byBoaW50cyA9IHt9OwotKyAgc3RydWN0IGFkZHJpbmZvICpyZXN1bHQgPSBOVUxMOwotKwotKyAg aGludHMuYWlfZmFtaWx5ID0gQUZfSU5FVDY7Ci0rICBoaW50cy5haV9mbGFncyA9IEFJX0FMTCB8 IEFJX1Y0TUFQUEVEIHwgQUlfQ0FOT05OQU1FOwotKwotKyAgaW50IHJldCA9IGdldGFkZHJpbmZv IChRVUVSWU5BTUUsIE5VTEwsICZoaW50cywgJnJlc3VsdCk7Ci0rCi0rICBpZiAocmV0ICE9IDAp Ci0rICAgIEZBSUxfRVhJVDEgKCJnZXRhZGRyaW5mbyBmYWlsZWQ6ICVzXG4iLCBnYWlfc3RyZXJy b3IgKHJldCkpOwotKwotKyAgVEVTVF9DT01QQVJFX1NUUklORyAocmVzdWx0LT5haV9jYW5vbm5h bWUsIFFVRVJZTkFNRSk7Ci0rCi0rICBmcmVlYWRkcmluZm8ocmVzdWx0KTsKLSsgIHJldHVybiAw OwotK30KLSsKLSsjaW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRyaXZlci5jPgotZGlmZiAtLWdpdCBh L25zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmggYi9uc3MvdHN0LW5zcy1nYWktaHYyLWNh bm9ubmFtZS5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwMDAuLjE0ZjJh OWNiMDg2Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9uc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFt ZS5oCi1AQCAtMCwwICsxIEBACi0rI2RlZmluZSBRVUVSWU5BTUUgInRlc3QuZXhhbXBsZS5jb20i Ci1kaWZmIC0tZ2l0IGEvbnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUucm9vdC9wb3N0Y2xl YW4ucmVxIGIvbnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUucm9vdC9wb3N0Y2xlYW4ucmVx Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkCi1k aWZmIC0tZ2l0IGEvbnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUucm9vdC90c3QtbnNzLWdh aS1odjItY2Fub25uYW1lLnNjcmlwdCBiL25zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLnJv b3QvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5zY3JpcHQKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwMDAwMC4uMzE4NDhiNGEyODUKLS0tLSAvZGV2L251bGwKLSsrKyBiL25z cy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLnJvb3QvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFt ZS5zY3JpcHQKLUBAIC0wLDAgKzEsMiBAQAotK2NwICRCL25zcy9saWJuc3NfdGVzdF9nYWlfaHYy X2Nhbm9ubmFtZS5zbyAkTC9saWJuc3NfdGVzdF9nYWlfaHYyX2Nhbm9ubmFtZS5zby4yCi0rc3UK LWRpZmYgLS1naXQgYS9zeXNkZXBzL3Bvc2l4L2dldGFkZHJpbmZvLmMgYi9zeXNkZXBzL3Bvc2l4 L2dldGFkZHJpbmZvLmMKLWluZGV4IDAzNTZiNjIyYmU2Li5iMjIzNmIxMDVjMSAxMDA2NDQKLS0t LSBhL3N5c2RlcHMvcG9zaXgvZ2V0YWRkcmluZm8uYwotKysrIGIvc3lzZGVwcy9wb3NpeC9nZXRh ZGRyaW5mby5jCi1AQCAtMTIwLDYgKzEyMCw3IEBAIHN0cnVjdCBnYWloX3Jlc3VsdAotIHsKLSAg IHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqYXQ7Ci0gICBjaGFyICpjYW5vbjsKLSsgIGNoYXIgKmhf bmFtZTsKLSAgIGJvb2wgZnJlZV9hdDsKLSAgIGJvb2wgZ290X2lwdjY7Ci0gfTsKLUBAIC0xNjUs NiArMTY2LDcgQEAgZ2FpaF9yZXN1bHRfcmVzZXQgKHN0cnVjdCBnYWloX3Jlc3VsdCAqcmVzKQot ICAgaWYgKHJlcy0+ZnJlZV9hdCkKLSAgICAgZnJlZSAocmVzLT5hdCk7Ci0gICBmcmVlIChyZXMt PmNhbm9uKTsKLSsgIGZyZWUgKHJlcy0+aF9uYW1lKTsKLSAgIG1lbXNldCAocmVzLCAwLCBzaXpl b2YgKCpyZXMpKTsKLSB9Ci0gCi1AQCAtMjAzLDkgKzIwNSw4IEBAIGdhaWhfaW5ldF9zZXJ2IChj b25zdCBjaGFyICpzZXJ2aWNlbmFtZSwgY29uc3Qgc3RydWN0IGdhaWhfdHlwZXByb3RvICp0cCwK LSAgIHJldHVybiAwOwotIH0KLSAKLS0vKiBDb252ZXJ0IHN0cnVjdCBob3N0ZW50IHRvIGEgbGlz dCBvZiBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgb2JqZWN0cy4gIGhfbmFtZQotLSAgIGlzIG5vdCBj b3BpZWQsIGFuZCB0aGUgc3RydWN0IGhvc3RlbnQgb2JqZWN0IG11c3Qgbm90IGJlIGRlYWxsb2Nh dGVkCi0tICAgcHJlbWF0dXJlbHkuICBUaGUgbmV3IGFkZHJlc3NlcyBhcmUgYXBwZW5kZWQgdG8g dGhlIHR1cGxlIGFycmF5IGluIFJFUy4gICovCi0rLyogQ29udmVydCBzdHJ1Y3QgaG9zdGVudCB0 byBhIGxpc3Qgb2Ygc3RydWN0IGdhaWhfYWRkcnR1cGxlIG9iamVjdHMuICBUaGUgbmV3Ci0rICAg YWRkcmVzc2VzIGFyZSBhcHBlbmRlZCB0byB0aGUgdHVwbGUgYXJyYXkgaW4gUkVTLiAgKi8KLSBz dGF0aWMgYm9vbAotIGNvbnZlcnRfaG9zdGVudF90b19nYWloX2FkZHJ0dXBsZSAoY29uc3Qgc3Ry dWN0IGFkZHJpbmZvICpyZXEsIGludCBmYW1pbHksCi0gCQkJCSAgIHN0cnVjdCBob3N0ZW50ICpo LCBzdHJ1Y3QgZ2FpaF9yZXN1bHQgKnJlcykKLUBAIC0yMzgsNiArMjM5LDE1IEBAIGNvbnZlcnRf aG9zdGVudF90b19nYWloX2FkZHJ0dXBsZSAoY29uc3Qgc3RydWN0IGFkZHJpbmZvICpyZXEsIGlu dCBmYW1pbHksCi0gICByZXMtPmF0ID0gYXJyYXk7Ci0gICByZXMtPmZyZWVfYXQgPSB0cnVlOwot IAotKyAgLyogRHVwbGljYXRlIGhfbmFtZSBiZWNhdXNlIGl0IG1heSBnZXQgcmVjbGFpbWVkIHdo ZW4gdGhlIHVuZGVybHlpbmcgc3RvcmFnZQotKyAgICAgaXMgZnJlZWQuICAqLwotKyAgaWYgKHJl cy0+aF9uYW1lID09IE5VTEwpCi0rICAgIHsKLSsgICAgICByZXMtPmhfbmFtZSA9IF9fc3RyZHVw IChoLT5oX25hbWUpOwotKyAgICAgIGlmIChyZXMtPmhfbmFtZSA9PSBOVUxMKQotKwlyZXR1cm4g ZmFsc2U7Ci0rICAgIH0KLSsKLSAgIC8qIFVwZGF0ZSB0aGUgbmV4dCBwb2ludGVycyBvbiByZWFs bG9jYXRpb24uICAqLwotICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvbGQ7IGkrKykKLSAgICAg YXJyYXlbaV0ubmV4dCA9IGFycmF5ICsgaSArIDE7Ci1AQCAtMjYyLDcgKzI3Miw2IEBAIGNvbnZl cnRfaG9zdGVudF90b19nYWloX2FkZHJ0dXBsZSAoY29uc3Qgc3RydWN0IGFkZHJpbmZvICpyZXEs IGludCBmYW1pbHksCi0gCX0KLSAgICAgICBhcnJheVtpXS5uZXh0ID0gYXJyYXkgKyBpICsgMTsK LSAgICAgfQotLSAgYXJyYXlbMF0ubmFtZSA9IGgtPmhfbmFtZTsKLSAgIGFycmF5W2NvdW50IC0g MV0ubmV4dCA9IE5VTEw7Ci0gCi0gICByZXR1cm4gdHJ1ZTsKLUBAIC0zMjQsMTUgKzMzMywxNSBA QCBnZXRob3N0cyAobnNzX2dldGhvc3RieW5hbWUzX3IgZmN0LCBpbnQgZmFtaWx5LCBjb25zdCBj aGFyICpuYW1lLAotICAgIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUuICBUaGUgcmV0dXJuZWQg c3RyaW5nIGlzIGFsbG9jYXRlZCBvbiB0aGUKLSAgICBoZWFwOyB0aGUgY2FsbGVyIGhhcyB0byBm cmVlIGl0LiAgKi8KLSBzdGF0aWMgY2hhciAqCi0tZ2V0Y2Fub25uYW1lIChuc3NfYWN0aW9uX2xp c3QgbmlwLCBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKmF0LCBjb25zdCBjaGFyICpuYW1lKQotK2dl dGNhbm9ubmFtZSAobnNzX2FjdGlvbl9saXN0IG5pcCwgY29uc3QgY2hhciAqaG5hbWUsIGNvbnN0 IGNoYXIgKm5hbWUpCi0gewotICAgbnNzX2dldGNhbm9ubmFtZV9yICpjZmN0ID0gX19uc3NfbG9v a3VwX2Z1bmN0aW9uIChuaXAsICJnZXRjYW5vbm5hbWVfciIpOwotICAgY2hhciAqcyA9IChjaGFy ICopIG5hbWU7Ci0gICBpZiAoY2ZjdCAhPSBOVUxMKQotICAgICB7Ci0gICAgICAgY2hhciBidWZb MjU2XTsKLS0gICAgICBpZiAoRExfQ0FMTF9GQ1QgKGNmY3QsIChhdC0+bmFtZSA/OiBuYW1lLCBi dWYsIHNpemVvZiAoYnVmKSwKLS0JCQkgICAgICAmcywgJmVycm5vLCAmaF9lcnJubykpICE9IE5T U19TVEFUVVNfU1VDQ0VTUykKLSsgICAgICBpZiAoRExfQ0FMTF9GQ1QgKGNmY3QsIChobmFtZSA/ OiBuYW1lLCBidWYsIHNpemVvZiAoYnVmKSwgJnMsICZlcnJubywKLSsJCQkgICAgICAmaF9lcnJu bykpICE9IE5TU19TVEFUVVNfU1VDQ0VTUykKLSAJLyogSWYgdGhlIGNhbm9uaWNhbCBuYW1lIGNh bm5vdCBiZSBkZXRlcm1pbmVkLCB1c2UgdGhlIHBhc3NlZAotIAkgICBzdHJpbmcuICAqLwotIAlz ID0gKGNoYXIgKikgbmFtZTsKLUBAIC03NzEsNyArNzgwLDcgQEAgZ2V0X25zc19hZGRyZXNzZXMg KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0cnVjdCBhZGRyaW5mbyAqcmVxLAotIAkJICBpZiAo KHJlcS0+YWlfZmxhZ3MgJiBBSV9DQU5PTk5BTUUpICE9IDAKLSAJCSAgICAgICYmIHJlcy0+Y2Fu b24gPT0gTlVMTCkKLSAJCSAgICB7Ci0tCQkgICAgICBjaGFyICpjYW5vbmJ1ZiA9IGdldGNhbm9u bmFtZSAobmlwLCByZXMtPmF0LCBuYW1lKTsKLSsJCSAgICAgIGNoYXIgKmNhbm9uYnVmID0gZ2V0 Y2Fub25uYW1lIChuaXAsIHJlcy0+aF9uYW1lLCBuYW1lKTsKLSAJCSAgICAgIGlmIChjYW5vbmJ1 ZiA9PSBOVUxMKQotIAkJCXsKLSAJCQkgIF9fcmVzb2x2X2NvbnRleHRfcHV0IChyZXNfY3R4KTsK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy8xYjljMWEwMDQ3ZmIyNmE2NWE5YjJh N2I4Y2Q5NzcyNDNmN2QzNTNjLnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzLzFiOWMxYTAw NDdmYjI2YTY1YTliMmE3YjhjZDk3NzI0M2Y3ZDM1M2MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLmYwYTY3YjE5MzlkYjExCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9nbGliYy9wYXRjaGVzLzFiOWMxYTAwNDdmYjI2YTY1YTliMmE3YjhjZDk3NzI0 M2Y3ZDM1M2MucGF0Y2gKQEAgLTAsMCArMSwyNjIgQEAKK0Zyb20gMWI5YzFhMDA0N2ZiMjZhNjVh OWIyYTdiOGNkOTc3MjQzZjdkMzUzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEph a3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+CitEYXRlOiBXZWQsIDMxIEphbiAyMDI0IDE5 OjE3OjI3ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFVzZSBnY2MgX19idWlsdGluX3N0ZGNfKiBi dWlsdGlucyBpbiBzdGRiaXQuaCBpZiBwb3NzaWJsZQorCitUaGUgZm9sbG93aW5nIHBhdGNoIHVz ZXMgdGhlIEdDQyAxNCBfX2J1aWx0aW5fc3RkY18qIGJ1aWx0aW5zIGluIHN0ZGJpdC5oCitmb3Ig dGhlIHR5cGUtZ2VuZXJpYyBtYWNyb3MsIHNvIHRoYXQgd2hlbiBjb21waWxlZCB3aXRoIEdDQyAx NCBvciBsYXRlciwKK2l0IHN1cHBvcnRzIG5vdCBqdXN0IDgvMTYvMzIvNjQtYml0IHVuc2lnbmVk IGludGVnZXJzLCBidXQgYWxzbyAxMjgtYml0CisoaWYgdGFyZ2V0IHN1cHBvcnRzIHRoZW0pIGFu ZCB1bnNpZ25lZCBfQml0SW50IChhbnkgc3VwcG9ydGVkIHByZWNpc2lvbikuCitBbmQgc28gdGhh dCB0aGUgbWFjcm9zIGRvbid0IGV4cGFuZCBhcmd1bWVudHMgbXVsdGlwbGUgdGltZXMgYW5kIGNh biBiZQorZXZhbHVhdGVkIGluIGNvbnN0YW50IGV4cHJlc3Npb25zLgorCitUaGUgbmV3IHRlc3Rj YXNlIGlzIGdjYydzIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW4tc3RkYy1iaXQtMS5jCith ZGp1c3RlZCB0byB0ZXN0IHN0ZGJpdC5oIGFuZCB0aGUgdHlwZS1nZW5lcmljIG1hY3JvcyBpbiB0 aGVyZSBpbnN0ZWFkCitvZiB0aGUgYnVpbHRpbnMgYW5kIGFkanVzdGVkIHRvIHVzZSBnbGliYyB0 ZXN0IGZyYW1ld29yayByYXRoZXIgdGhhbgorZ2NjIHN0eWxlIHRlc3RzIHdpdGggX19idWlsdGlu X2Fib3J0ICgpLgorCitTaWduZWQtb2ZmLWJ5OiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQu Y29tPgorUmV2aWV3ZWQtYnk6IEpvc2VwaCBNeWVycyA8am9zbXllcnNAcmVkaGF0LmNvbT4KKyhj aGVycnkgcGlja2VkIGZyb20gY29tbWl0IGRhODk0OTYzMzdiOTdlNmEyYWFmMWU4MWQ1NWNmOTk4 ZjZkYjEwNzApCistLS0KKyBtYW51YWwvc3RkYml0LnRleGkgICAgICAgICAgIHwgICA4ICstCisg c3RkbGliL01ha2VmaWxlICAgICAgICAgICAgICB8ICAgMSArCisgc3RkbGliL3N0ZGJpdC5oICAg ICAgICAgICAgICB8ICA4NCArKystCisgc3RkbGliL3RzdC1zdGRiaXQtYnVpbHRpbnMuYyB8IDc3 OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIDQgZmlsZXMgY2hhbmdlZCwg ODU2IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBz dGRsaWIvdHN0LXN0ZGJpdC1idWlsdGlucy5jCisKK2RpZmYgLS1naXQgYS9tYW51YWwvc3RkYml0 LnRleGkgYi9tYW51YWwvc3RkYml0LnRleGkKK2luZGV4IGZlNDFjNjcxZDguLjZjNzVlZDlhMjAg MTAwNjQ0CistLS0gYS9tYW51YWwvc3RkYml0LnRleGkKKysrKyBiL21hbnVhbC9zdGRiaXQudGV4 aQorQEAgLTMyLDcgKzMyLDEzIEBAIGFuZCBAY29kZXt1bnNpZ25lZCBsb25nIGxvbmcgaW50fS4g IEluIGFkZGl0aW9uLCB0aGVyZSBpcyBhCisgY29ycmVzcG9uZGluZyB0eXBlLWdlbmVyaWMgbWFj cm8gKG5vdCBsaXN0ZWQgYmVsb3cpLCBuYW1lZCB0aGUgc2FtZSBhcworIHRoZSBmdW5jdGlvbnMg YnV0IHdpdGhvdXQgYW55IHN1ZmZpeCBzdWNoIGFzIEBzYW1we191Y30uICBUaGUKKyB0eXBlLWdl bmVyaWMgbWFjcm8gY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGFuIGFyZ3VtZW50IG9mIGFuIHVuc2ln bmVkCistaW50ZWdlciB0eXBlIHdpdGggYSB3aWR0aCBvZiA4LCAxNiwgMzIgb3IgNjQgYml0cy4K KytpbnRlZ2VyIHR5cGUgd2l0aCBhIHdpZHRoIG9mIDgsIDE2LCAzMiBvciA2NCBiaXRzLCBvciB3 aGVuIHVzaW5nCisrYSBjb21waWxlciB3aXRoIHN1cHBvcnQgZm9yCisrQHVyZWZ7aHR0cHM6Ly9n Y2MuZ251Lm9yZy9vbmxpbmVkb2NzL2djYy9PdGhlci1CdWlsdGlucy5odG1sLEBjb2Rle19fYnVp bHRpbl9zdGRjX2JpdF9jZWlsfX0sCisrZXRjLkA6LCBidWlsdC1pbiBmdW5jdGlvbnMgc3VjaCBh cyBHQ0MgMTQuMSBvciBsYXRlcgorK2FueSB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgdGhvc2UgYnVp bHQtaW4gZnVuY3Rpb25zIHN1cHBvcnQuCisrSW4gR0NDIDE0LjEgdGhhdCBpbmNsdWRlcyBzdXBw b3J0IGZvciBAY29kZXt1bnNpZ25lZCBfX2ludDEyOH0gYW5kCisrQGNvZGV7dW5zaWduZWQgX0Jp dEludChAdmFye259KX0gaWYgc3VwcG9ydGVkIGJ5IHRoZSB0YXJnZXQuCisgCisgQGRlZnR5cGVm dW4ge3Vuc2lnbmVkIGludH0gc3RkY19sZWFkaW5nX3plcm9zX3VjICh1bnNpZ25lZCBjaGFyIEB2 YXJ7eH0pCisgQGRlZnR5cGVmdW54IHt1bnNpZ25lZCBpbnR9IHN0ZGNfbGVhZGluZ196ZXJvc191 cyAodW5zaWduZWQgc2hvcnQgQHZhcnt4fSkKK2RpZmYgLS1naXQgYS9zdGRsaWIvc3RkYml0Lmgg Yi9zdGRsaWIvc3RkYml0LmgKK2luZGV4IGYzMzRlYjE3NGQuLjI4MDE1OTBjNjMgMTAwNjQ0Cist LS0gYS9zdGRsaWIvc3RkYml0LmgKKysrKyBiL3N0ZGxpYi9zdGRiaXQuaAorQEAgLTY0LDkgKzY0 LDEzIEBAIGV4dGVybiB1bnNpZ25lZCBpbnQgc3RkY19sZWFkaW5nX3plcm9zX3VsICh1bnNpZ25l ZCBsb25nIGludCBfX3gpCisgX19leHRlbnNpb25fXworIGV4dGVybiB1bnNpZ25lZCBpbnQgc3Rk Y19sZWFkaW5nX3plcm9zX3VsbCAodW5zaWduZWQgbG9uZyBsb25nIGludCBfX3gpCisgICAgICBf X1RIUk9XIF9fYXR0cmlidXRlX2NvbnN0X187CistI2RlZmluZSBzdGRjX2xlYWRpbmdfemVyb3Mo eCkJCQkJXAorKyNpZiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fc3RkY19sZWFkaW5n X3plcm9zKQorKyMgZGVmaW5lIHN0ZGNfbGVhZGluZ196ZXJvcyh4KSAoX19idWlsdGluX3N0ZGNf bGVhZGluZ196ZXJvcyAoeCkpCisrI2Vsc2UKKysjIGRlZmluZSBzdGRjX2xlYWRpbmdfemVyb3Mo eCkJCQkJXAorICAgKHN0ZGNfbGVhZGluZ196ZXJvc191bGwgKHgpCQkJCVwKKyAgICAtICh1bnNp Z25lZCBpbnQpICg4ICogKHNpemVvZiAoMFVMTCkgLSBzaXplb2YgKHgpKSkpCisrI2VuZGlmCisg CisgI2lmIF9fR05VQ19QUkVSRVEgKDMsIDQpIHx8IF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVp bHRpbl9jbHpsbCkKKyBzdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGludAorQEAgLTEx Niw5ICsxMjAsMTMgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2xlYWRpbmdfb25lc191bCAo dW5zaWduZWQgbG9uZyBpbnQgX194KQorIF9fZXh0ZW5zaW9uX18KKyBleHRlcm4gdW5zaWduZWQg aW50IHN0ZGNfbGVhZGluZ19vbmVzX3VsbCAodW5zaWduZWQgbG9uZyBsb25nIGludCBfX3gpCisg ICAgICBfX1RIUk9XIF9fYXR0cmlidXRlX2NvbnN0X187CistI2RlZmluZSBzdGRjX2xlYWRpbmdf b25lcyh4KQkJCQkJXAorKyNpZiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fc3RkY19s ZWFkaW5nX29uZXMpCisrIyBkZWZpbmUgc3RkY19sZWFkaW5nX29uZXMoeCkgKF9fYnVpbHRpbl9z dGRjX2xlYWRpbmdfb25lcyAoeCkpCisrI2Vsc2UKKysjIGRlZmluZSBzdGRjX2xlYWRpbmdfb25l cyh4KQkJCQkJXAorICAgKHN0ZGNfbGVhZGluZ19vbmVzX3VsbCAoKHVuc2lnbmVkIGxvbmcgbG9u ZyBpbnQpICh4KQkJXAorIAkJCSAgPDwgOCAqIChzaXplb2YgKDBVTEwpIC0gc2l6ZW9mICh4KSkp KQorKyNlbmRpZgorIAorICNpZiBfX0dOVUNfUFJFUkVRICgzLCA0KSB8fCBfX2dsaWJjX2hhc19i dWlsdGluIChfX2J1aWx0aW5fY2x6bGwpCisgc3RhdGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25l ZCBpbnQKK0BAIC0xNjgsMTEgKzE3NiwxNSBAQCBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfdHJh aWxpbmdfemVyb3NfdWwgKHVuc2lnbmVkIGxvbmcgaW50IF9feCkKKyBfX2V4dGVuc2lvbl9fCisg ZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX3RyYWlsaW5nX3plcm9zX3VsbCAodW5zaWduZWQgbG9u ZyBsb25nIGludCBfX3gpCisgICAgICBfX1RIUk9XIF9fYXR0cmlidXRlX2NvbnN0X187CistI2Rl ZmluZSBzdGRjX3RyYWlsaW5nX3plcm9zKHgpCQkJCVwKKysjaWYgX19nbGliY19oYXNfYnVpbHRp biAoX19idWlsdGluX3N0ZGNfdHJhaWxpbmdfemVyb3MpCisrIyBkZWZpbmUgc3RkY190cmFpbGlu Z196ZXJvcyh4KSAoX19idWlsdGluX3N0ZGNfdHJhaWxpbmdfemVyb3MgKHgpKQorKyNlbHNlCisr IyBkZWZpbmUgc3RkY190cmFpbGluZ196ZXJvcyh4KQkJCQlcCisgICAoc2l6ZW9mICh4KSA9PSA4 ID8gc3RkY190cmFpbGluZ196ZXJvc191bGwgKHgpCVwKKyAgICA6IHNpemVvZiAoeCkgPT0gNCA/ IHN0ZGNfdHJhaWxpbmdfemVyb3NfdWkgKHgpCVwKKyAgICA6IHNpemVvZiAoeCkgPT0gMiA/IHN0 ZGNfdHJhaWxpbmdfemVyb3NfdXMgKF9fcGFjaWZ5X3VpbnQxNiAoeCkpCVwKKyAgICA6IHN0ZGNf dHJhaWxpbmdfemVyb3NfdWMgKF9fcGFjaWZ5X3VpbnQ4ICh4KSkpCisrI2VuZGlmCisgCisgI2lm IF9fR05VQ19QUkVSRVEgKDMsIDQpIHx8IF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9j dHpsbCkKKyBzdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGludAorQEAgLTIyMiw3ICsy MzQsMTEgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX3RyYWlsaW5nX29uZXNfdWwgKHVuc2ln bmVkIGxvbmcgaW50IF9feCkKKyBfX2V4dGVuc2lvbl9fCisgZXh0ZXJuIHVuc2lnbmVkIGludCBz dGRjX3RyYWlsaW5nX29uZXNfdWxsICh1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9feCkKKyAgICAg IF9fVEhST1cgX19hdHRyaWJ1dGVfY29uc3RfXzsKKy0jZGVmaW5lIHN0ZGNfdHJhaWxpbmdfb25l cyh4KSAoc3RkY190cmFpbGluZ19vbmVzX3VsbCAoeCkpCisrI2lmIF9fZ2xpYmNfaGFzX2J1aWx0 aW4gKF9fYnVpbHRpbl9zdGRjX3RyYWlsaW5nX29uZXMpCisrIyBkZWZpbmUgc3RkY190cmFpbGlu Z19vbmVzKHgpIChfX2J1aWx0aW5fc3RkY190cmFpbGluZ19vbmVzICh4KSkKKysjZWxzZQorKyMg ZGVmaW5lIHN0ZGNfdHJhaWxpbmdfb25lcyh4KSAoc3RkY190cmFpbGluZ19vbmVzX3VsbCAoeCkp CisrI2VuZGlmCisgCisgI2lmIF9fR05VQ19QUkVSRVEgKDMsIDQpIHx8IF9fZ2xpYmNfaGFzX2J1 aWx0aW4gKF9fYnVpbHRpbl9jdHpsbCkKKyBzdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVk IGludAorQEAgLTI3MiwxMSArMjg4LDE1IEBAIGV4dGVybiB1bnNpZ25lZCBpbnQgc3RkY19maXJz dF9sZWFkaW5nX3plcm9fdWwgKHVuc2lnbmVkIGxvbmcgaW50IF9feCkKKyBfX2V4dGVuc2lvbl9f CisgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2ZpcnN0X2xlYWRpbmdfemVyb191bGwgKHVuc2ln bmVkIGxvbmcgbG9uZyBpbnQgX194KQorICAgICAgX19USFJPVyBfX2F0dHJpYnV0ZV9jb25zdF9f OworLSNkZWZpbmUgc3RkY19maXJzdF9sZWFkaW5nX3plcm8oeCkJCQlcCisrI2lmIF9fZ2xpYmNf aGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9zdGRjX2ZpcnN0X2xlYWRpbmdfemVybykKKysjIGRlZmlu ZSBzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyh4KSAoX19idWlsdGluX3N0ZGNfZmlyc3RfbGVhZGlu Z196ZXJvICh4KSkKKysjZWxzZQorKyMgZGVmaW5lIHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvKHgp CQkJXAorICAgKHNpemVvZiAoeCkgPT0gOCA/IHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvX3VsbCAo eCkJXAorICAgIDogc2l6ZW9mICh4KSA9PSA0ID8gc3RkY19maXJzdF9sZWFkaW5nX3plcm9fdWkg KHgpCVwKKyAgICA6IHNpemVvZiAoeCkgPT0gMiA/IHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvX3Vz IChfX3BhY2lmeV91aW50MTYgKHgpKQlcCisgICAgOiBzdGRjX2ZpcnN0X2xlYWRpbmdfemVyb191 YyAoX19wYWNpZnlfdWludDggKHgpKSkKKysjZW5kaWYKKyAKKyAjaWYgX19HTlVDX1BSRVJFUSAo MywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX2NsemxsKQorIHN0YXRpYyBf X2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50CitAQCAtMzI2LDExICszNDYsMTUgQEAgZXh0ZXJu IHVuc2lnbmVkIGludCBzdGRjX2ZpcnN0X2xlYWRpbmdfb25lX3VsICh1bnNpZ25lZCBsb25nIGlu dCBfX3gpCisgX19leHRlbnNpb25fXworIGV4dGVybiB1bnNpZ25lZCBpbnQgc3RkY19maXJzdF9s ZWFkaW5nX29uZV91bGwgKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX194KQorICAgICAgX19USFJP VyBfX2F0dHJpYnV0ZV9jb25zdF9fOworLSNkZWZpbmUgc3RkY19maXJzdF9sZWFkaW5nX29uZSh4 KQkJCVwKKysjaWYgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3N0ZGNfZmlyc3RfbGVh ZGluZ19vbmUpCisrIyBkZWZpbmUgc3RkY19maXJzdF9sZWFkaW5nX29uZSh4KSAoX19idWlsdGlu X3N0ZGNfZmlyc3RfbGVhZGluZ19vbmUgKHgpKQorKyNlbHNlCisrIyBkZWZpbmUgc3RkY19maXJz dF9sZWFkaW5nX29uZSh4KQkJCVwKKyAgIChzaXplb2YgKHgpID09IDggPyBzdGRjX2ZpcnN0X2xl YWRpbmdfb25lX3VsbCAoeCkJXAorICAgIDogc2l6ZW9mICh4KSA9PSA0ID8gc3RkY19maXJzdF9s ZWFkaW5nX29uZV91aSAoeCkJXAorICAgIDogc2l6ZW9mICh4KSA9PSAyID8gc3RkY19maXJzdF9s ZWFkaW5nX29uZV91cyAoX19wYWNpZnlfdWludDE2ICh4KSkJXAorICAgIDogc3RkY19maXJzdF9s ZWFkaW5nX29uZV91YyAoX19wYWNpZnlfdWludDggKHgpKSkKKysjZW5kaWYKKyAKKyAjaWYgX19H TlVDX1BSRVJFUSAoMywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX2Nsemxs KQorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50CitAQCAtMzgwLDExICs0MDQs MTUgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm9fdWwgKHVu c2lnbmVkIGxvbmcgaW50IF9feCkKKyBfX2V4dGVuc2lvbl9fCisgZXh0ZXJuIHVuc2lnbmVkIGlu dCBzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm9fdWxsICh1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9f eCkKKyAgICAgIF9fVEhST1cgX19hdHRyaWJ1dGVfY29uc3RfXzsKKy0jZGVmaW5lIHN0ZGNfZmly c3RfdHJhaWxpbmdfemVybyh4KQkJCVwKKysjaWYgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWls dGluX3N0ZGNfZmlyc3RfdHJhaWxpbmdfemVybykKKysjIGRlZmluZSBzdGRjX2ZpcnN0X3RyYWls aW5nX3plcm8oeCkgKF9fYnVpbHRpbl9zdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm8gKHgpKQorKyNl bHNlCisrIyBkZWZpbmUgc3RkY19maXJzdF90cmFpbGluZ196ZXJvKHgpCQkJXAorICAgKHNpemVv ZiAoeCkgPT0gOCA/IHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVyb191bGwgKHgpCVwKKyAgICA6IHNp emVvZiAoeCkgPT0gNCA/IHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVyb191aSAoeCkJXAorICAgIDog c2l6ZW9mICh4KSA9PSAyID8gc3RkY19maXJzdF90cmFpbGluZ196ZXJvX3VzIChfX3BhY2lmeV91 aW50MTYgKHgpKSBcCisgICAgOiBzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm9fdWMgKF9fcGFjaWZ5 X3VpbnQ4ICh4KSkpCisrI2VuZGlmCisgCisgI2lmIF9fR05VQ19QUkVSRVEgKDMsIDQpIHx8IF9f Z2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9jdHpsbCkKKyBzdGF0aWMgX19hbHdheXNfaW5s aW5lIHVuc2lnbmVkIGludAorQEAgLTQzNCwxMSArNDYyLDE1IEBAIGV4dGVybiB1bnNpZ25lZCBp bnQgc3RkY19maXJzdF90cmFpbGluZ19vbmVfdWwgKHVuc2lnbmVkIGxvbmcgaW50IF9feCkKKyBf X2V4dGVuc2lvbl9fCisgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2ZpcnN0X3RyYWlsaW5nX29u ZV91bGwgKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX194KQorICAgICAgX19USFJPVyBfX2F0dHJp YnV0ZV9jb25zdF9fOworLSNkZWZpbmUgc3RkY19maXJzdF90cmFpbGluZ19vbmUoeCkJCQlcCisr I2lmIF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9zdGRjX2ZpcnN0X3RyYWlsaW5nX29u ZSkKKysjIGRlZmluZSBzdGRjX2ZpcnN0X3RyYWlsaW5nX29uZSh4KSAoX19idWlsdGluX3N0ZGNf Zmlyc3RfdHJhaWxpbmdfb25lICh4KSkKKysjZWxzZQorKyMgZGVmaW5lIHN0ZGNfZmlyc3RfdHJh aWxpbmdfb25lKHgpCQkJXAorICAgKHNpemVvZiAoeCkgPT0gOCA/IHN0ZGNfZmlyc3RfdHJhaWxp bmdfb25lX3VsbCAoeCkJXAorICAgIDogc2l6ZW9mICh4KSA9PSA0ID8gc3RkY19maXJzdF90cmFp bGluZ19vbmVfdWkgKHgpCVwKKyAgICA6IHNpemVvZiAoeCkgPT0gMiA/IHN0ZGNfZmlyc3RfdHJh aWxpbmdfb25lX3VzIChfX3BhY2lmeV91aW50MTYgKHgpKQlcCisgICAgOiBzdGRjX2ZpcnN0X3Ry YWlsaW5nX29uZV91YyAoX19wYWNpZnlfdWludDggKHgpKSkKKysjZW5kaWYKKyAKKyAjaWYgX19H TlVDX1BSRVJFUSAoMywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX2N0emxs KQorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50CitAQCAtNDg4LDkgKzUyMCwx MyBAQCBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfY291bnRfemVyb3NfdWwgKHVuc2lnbmVkIGxv bmcgaW50IF9feCkKKyBfX2V4dGVuc2lvbl9fCisgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2Nv dW50X3plcm9zX3VsbCAodW5zaWduZWQgbG9uZyBsb25nIGludCBfX3gpCisgICAgICBfX1RIUk9X IF9fYXR0cmlidXRlX2NvbnN0X187CistI2RlZmluZSBzdGRjX2NvdW50X3plcm9zKHgpCQkJCVwK KysjaWYgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3N0ZGNfY291bnRfemVyb3MpCisr IyBkZWZpbmUgc3RkY19jb3VudF96ZXJvcyh4KSAoX19idWlsdGluX3N0ZGNfY291bnRfemVyb3Mg KHgpKQorKyNlbHNlCisrIyBkZWZpbmUgc3RkY19jb3VudF96ZXJvcyh4KQkJCQlcCisgICAoc3Rk Y19jb3VudF96ZXJvc191bGwgKHgpCQkJCVwKKyAgICAtICh1bnNpZ25lZCBpbnQpICg4ICogKHNp emVvZiAoMFVMTCkgLSBzaXplb2YgKHgpKSkpCisrI2VuZGlmCisgCisgI2lmIF9fR05VQ19QUkVS RVEgKDMsIDQpIHx8IF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9wb3Bjb3VudGxsKQor IHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50CitAQCAtNTQwLDcgKzU3NiwxMSBA QCBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfY291bnRfb25lc191bCAodW5zaWduZWQgbG9uZyBp bnQgX194KQorIF9fZXh0ZW5zaW9uX18KKyBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfY291bnRf b25lc191bGwgKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX194KQorICAgICAgX19USFJPVyBfX2F0 dHJpYnV0ZV9jb25zdF9fOworLSNkZWZpbmUgc3RkY19jb3VudF9vbmVzKHgpIChzdGRjX2NvdW50 X29uZXNfdWxsICh4KSkKKysjaWYgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3N0ZGNf Y291bnRfb25lcykKKysjIGRlZmluZSBzdGRjX2NvdW50X29uZXMoeCkgKF9fYnVpbHRpbl9zdGRj X2NvdW50X29uZXMgKHgpKQorKyNlbHNlCisrIyBkZWZpbmUgc3RkY19jb3VudF9vbmVzKHgpIChz dGRjX2NvdW50X29uZXNfdWxsICh4KSkKKysjZW5kaWYKKyAKKyAjaWYgX19HTlVDX1BSRVJFUSAo MywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3BvcGNvdW50bGwpCisgc3Rh dGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25lZCBpbnQKK0BAIC01OTAsMTAgKzYzMCwxNCBAQCBl eHRlcm4gYm9vbCBzdGRjX2hhc19zaW5nbGVfYml0X3VsICh1bnNpZ25lZCBsb25nIGludCBfX3gp CisgX19leHRlbnNpb25fXworIGV4dGVybiBib29sIHN0ZGNfaGFzX3NpbmdsZV9iaXRfdWxsICh1 bnNpZ25lZCBsb25nIGxvbmcgaW50IF9feCkKKyAgICAgIF9fVEhST1cgX19hdHRyaWJ1dGVfY29u c3RfXzsKKy0jZGVmaW5lIHN0ZGNfaGFzX3NpbmdsZV9iaXQoeCkJCQkJXAorKyNpZiBfX2dsaWJj X2hhc19idWlsdGluIChfX2J1aWx0aW5fc3RkY19oYXNfc2luZ2xlX2JpdCkKKysjIGRlZmluZSBz dGRjX2hhc19zaW5nbGVfYml0KHgpIChfX2J1aWx0aW5fc3RkY19oYXNfc2luZ2xlX2JpdCAoeCkp CisrI2Vsc2UKKysjIGRlZmluZSBzdGRjX2hhc19zaW5nbGVfYml0KHgpCQkJCVwKKyAgICgoYm9v bCkgKHNpemVvZiAoeCkgPD0gc2l6ZW9mICh1bnNpZ25lZCBpbnQpCQlcCisgCSAgID8gc3RkY19o YXNfc2luZ2xlX2JpdF91aSAoeCkJCQlcCisgCSAgIDogc3RkY19oYXNfc2luZ2xlX2JpdF91bGwg KHgpKSkKKysjZW5kaWYKKyAKKyBzdGF0aWMgX19hbHdheXNfaW5saW5lIGJvb2wKKyBfX2hzYjY0 X2lubGluZSAodWludDY0X3QgX194KQorQEAgLTY0MSw3ICs2ODUsMTEgQEAgZXh0ZXJuIHVuc2ln bmVkIGludCBzdGRjX2JpdF93aWR0aF91bCAodW5zaWduZWQgbG9uZyBpbnQgX194KQorIF9fZXh0 ZW5zaW9uX18KKyBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfYml0X3dpZHRoX3VsbCAodW5zaWdu ZWQgbG9uZyBsb25nIGludCBfX3gpCisgICAgICBfX1RIUk9XIF9fYXR0cmlidXRlX2NvbnN0X187 CistI2RlZmluZSBzdGRjX2JpdF93aWR0aCh4KSAoc3RkY19iaXRfd2lkdGhfdWxsICh4KSkKKysj aWYgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3N0ZGNfYml0X3dpZHRoKQorKyMgZGVm aW5lIHN0ZGNfYml0X3dpZHRoKHgpIChfX2J1aWx0aW5fc3RkY19iaXRfd2lkdGggKHgpKQorKyNl bHNlCisrIyBkZWZpbmUgc3RkY19iaXRfd2lkdGgoeCkgKHN0ZGNfYml0X3dpZHRoX3VsbCAoeCkp CisrI2VuZGlmCisgCisgI2lmIF9fR05VQ19QUkVSRVEgKDMsIDQpIHx8IF9fZ2xpYmNfaGFzX2J1 aWx0aW4gKF9fYnVpbHRpbl9jbHpsbCkKKyBzdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVk IGludAorQEAgLTY5MSw3ICs3MzksMTEgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW50IHN0ZGNf Yml0X2Zsb29yX3VsICh1bnNpZ25lZCBsb25nIGludCBfX3gpCisgX19leHRlbnNpb25fXworIGV4 dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHN0ZGNfYml0X2Zsb29yX3VsbCAodW5zaWduZWQg bG9uZyBsb25nIGludCBfX3gpCisgICAgICBfX1RIUk9XIF9fYXR0cmlidXRlX2NvbnN0X187Cist I2RlZmluZSBzdGRjX2JpdF9mbG9vcih4KSAoKF9fdHlwZW9mICh4KSkgc3RkY19iaXRfZmxvb3Jf dWxsICh4KSkKKysjaWYgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3N0ZGNfYml0X2Zs b29yKQorKyMgZGVmaW5lIHN0ZGNfYml0X2Zsb29yKHgpIChfX2J1aWx0aW5fc3RkY19iaXRfZmxv b3IgKHgpKQorKyNlbHNlCisrIyBkZWZpbmUgc3RkY19iaXRfZmxvb3IoeCkgKChfX3R5cGVvZiAo eCkpIHN0ZGNfYml0X2Zsb29yX3VsbCAoeCkpCisrI2VuZGlmCisgCisgI2lmIF9fR05VQ19QUkVS RVEgKDMsIDQpIHx8IF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9jbHpsbCkKKyBzdGF0 aWMgX19hbHdheXNfaW5saW5lIHVpbnQ2NF90CitAQCAtNzQzLDcgKzc5NSwxMSBAQCBleHRlcm4g dW5zaWduZWQgbG9uZyBpbnQgc3RkY19iaXRfY2VpbF91bCAodW5zaWduZWQgbG9uZyBpbnQgX194 KQorIF9fZXh0ZW5zaW9uX18KKyBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIGludCBzdGRjX2Jp dF9jZWlsX3VsbCAodW5zaWduZWQgbG9uZyBsb25nIGludCBfX3gpCisgICAgICBfX1RIUk9XIF9f YXR0cmlidXRlX2NvbnN0X187CistI2RlZmluZSBzdGRjX2JpdF9jZWlsKHgpICgoX190eXBlb2Yg KHgpKSBzdGRjX2JpdF9jZWlsX3VsbCAoeCkpCisrI2lmIF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9f YnVpbHRpbl9zdGRjX2JpdF9jZWlsKQorKyMgZGVmaW5lIHN0ZGNfYml0X2NlaWwoeCkgKF9fYnVp bHRpbl9zdGRjX2JpdF9jZWlsICh4KSkKKysjZWxzZQorKyMgZGVmaW5lIHN0ZGNfYml0X2NlaWwo eCkgKChfX3R5cGVvZiAoeCkpIHN0ZGNfYml0X2NlaWxfdWxsICh4KSkKKysjZW5kaWYKKyAKKyAj aWYgX19HTlVDX1BSRVJFUSAoMywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGlu X2NsemxsKQorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdWludDY0X3QKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ2xpYmMvcGF0Y2hlcy8zMDcyMy0xLTU0MmIxMTA1ODUyNTY4YzNlYmM3MTIyMjVhZTc4 YjhjOGJhMzFhNzgucGF0Y2ggYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvMzA3MjMtMS01NDJiMTEw NTg1MjU2OGMzZWJjNzEyMjI1YWU3OGI4YzhiYTMxYTc4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA1NmQ1ZDQ3YzAzMWEwMy4uMDAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9nbGliYy9wYXRjaGVzLzMwNzIzLTEtNTQyYjExMDU4NTI1NjhjM2ViYzcxMjIyNWFlNzhiOGM4 YmEzMWE3OC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI5NiArMCwwIEBACi1Gcm9tIDU0MmIx MTA1ODUyNTY4YzNlYmM3MTIyMjVhZTc4YjhjOGJhMzFhNzggTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgotRGF0ZTogRnJp LCAxMSBBdWcgMjAyMyAxMToxODoxNyArMDIwMAotU3ViamVjdDogW1BBVENIXSBtYWxsb2M6IEVu YWJsZSBtZXJnaW5nIG9mIHJlbWFpbmRlcnMgaW4gbWVtYWxpZ24gKGJ1ZyAzMDcyMykKLQotUHJl dmlvdXNseSwgY2FsbGluZyBfaW50X2ZyZWUgZnJvbSBfaW50X21lbWFsaWduIGNvdWxkIHB1dCBy ZW1haW5kZXJzCi1pbnRvIHRoZSB0Y2FjaGUgb3IgaW50byBmYXN0Ymlucywgd2hlcmUgdGhleSBh cmUgaW52aXNpYmxlIHRvIHRoZQotbG93LWxldmVsIGFsbG9jYXRvci4gIFRoaXMgcmVzdWx0cyBp biBtaXNzZWQgbWVyZ2Ugb3Bwb3J0dW5pdGllcwotYmVjYXVzZSBvbmNlIHRoZXNlIGZyZWVkIGNo dW5rcyBiZWNvbWUgYXZhaWxhYmxlIHRvIHRoZSBsb3ctbGV2ZWwKLWFsbG9jYXRvciwgZnVydGhl ciBtZW1hbGlnbiBhbGxvY2F0aW9ucyAoZXZlbiBvZiB0aGUgc2FtZSBzaXplIGFyZSkKLWxpa2Vs eSBvYnN0cnVjdGluZyBtZXJnZXMuCi0KLUZ1cnRoZXJtb3JlLCBkdXJpbmcgZm9yd2FyZHMgbWVy Z2luZyBpbiBfaW50X21lbWFsaWduLCBkbyBub3QKLWNvbXBsZXRlbHkgZ2l2ZSB1cCB3aGVuIHRo ZSByZW1haW5kZXIgaXMgdG9vIHNtYWxsIHRvIHNlcnZlIGFzIGEKLWNodW5rIG9uIGl0cyBvd24u ICBXZSBjYW4gc3RpbGwgZ2l2ZSBpdCBiYWNrIGlmIGl0IGNhbiBiZSBtZXJnZWQKLXdpdGggdGhl IGZvbGxvd2luZyB1bnVzZWQgY2h1bmsuICBUaGlzIG1ha2VzIGl0IG1vcmUgbGlrZWx5IHRoYXQK LW1lbWFsaWduIGNhbGxzIGluIGEgbG9vcCBhY2hpZXZlIGEgY29tcGFjdCBtZW1vcnkgbGF5b3V0 LAotaW5kZXBlbmRlbnRseSBvZiBpbml0aWFsIGhlYXAgbGF5b3V0LgotCi1Ecm9wIHNvbWUgdXNl bGVzcyAodW5zaWduZWQgbG9uZykgY2FzdHMgYWxvbmcgdGhlIHdheSwgYW5kIHR3ZWFrCi10aGUg c3R5bGUgdG8gbW9yZSBjbG9zZWx5IG1hdGNoIEdOVSBvbiBjaGFuZ2VkIGxpbmVzLgotCi1SZXZp ZXdlZC1ieTogREogRGVsb3JpZSA8ZGpAcmVkaGF0LmNvbT4KLS0tLQotIG1hbGxvYy9tYWxsb2Mu YyB8IDE5NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0K LSAxIGZpbGUgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKyksIDc2IGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvbWFsbG9jL21hbGxvYy5jIGIvbWFsbG9jL21hbGxvYy5jCi1pbmRleCBlMmYx YTYxNWE0Li45NDhmOTc1OWFmIDEwMDY0NAotLS0tIGEvbWFsbG9jL21hbGxvYy5jCi0rKysgYi9t YWxsb2MvbWFsbG9jLmMKLUBAIC0xMDg2LDYgKzEwODYsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgbWFs bG9jX2NodW5rKiBtY2h1bmtwdHI7Ci0gCi0gc3RhdGljIHZvaWQqICBfaW50X21hbGxvYyhtc3Rh dGUsIHNpemVfdCk7Ci0gc3RhdGljIHZvaWQgICAgIF9pbnRfZnJlZShtc3RhdGUsIG1jaHVua3B0 ciwgaW50KTsKLStzdGF0aWMgdm9pZCBfaW50X2ZyZWVfbWVyZ2VfY2h1bmsgKG1zdGF0ZSwgbWNo dW5rcHRyLCBJTlRFUk5BTF9TSVpFX1QpOwotK3N0YXRpYyBJTlRFUk5BTF9TSVpFX1QgX2ludF9m cmVlX2NyZWF0ZV9jaHVuayAobXN0YXRlLAotKwkJCQkJICAgICAgIG1jaHVua3B0ciwgSU5URVJO QUxfU0laRV9ULAotKwkJCQkJICAgICAgIG1jaHVua3B0ciwgSU5URVJOQUxfU0laRV9UKTsKLStz dGF0aWMgdm9pZCBfaW50X2ZyZWVfbWF5YmVfY29uc29saWRhdGUgKG1zdGF0ZSwgSU5URVJOQUxf U0laRV9UKTsKLSBzdGF0aWMgdm9pZCogIF9pbnRfcmVhbGxvYyhtc3RhdGUsIG1jaHVua3B0ciwg SU5URVJOQUxfU0laRV9ULAotIAkJCSAgIElOVEVSTkFMX1NJWkVfVCk7Ci0gc3RhdGljIHZvaWQq ICBfaW50X21lbWFsaWduKG1zdGF0ZSwgc2l6ZV90LCBzaXplX3QpOwotQEAgLTQ2MzcsMzEgKzQ2 NDIsNTIgQEAgX2ludF9mcmVlIChtc3RhdGUgYXYsIG1jaHVua3B0ciBwLCBpbnQgaGF2ZV9sb2Nr KQotICAgICBpZiAoIWhhdmVfbG9jaykKLSAgICAgICBfX2xpYmNfbG9ja19sb2NrIChhdi0+bXV0 ZXgpOwotIAotLSAgICBuZXh0Y2h1bmsgPSBjaHVua19hdF9vZmZzZXQocCwgc2l6ZSk7Ci0tCi0t ICAgIC8qIExpZ2h0d2VpZ2h0IHRlc3RzOiBjaGVjayB3aGV0aGVyIHRoZSBibG9jayBpcyBhbHJl YWR5IHRoZQotLSAgICAgICB0b3AgYmxvY2suICAqLwotLSAgICBpZiAoX19nbGliY191bmxpa2Vs eSAocCA9PSBhdi0+dG9wKSkKLS0gICAgICBtYWxsb2NfcHJpbnRlcnIgKCJkb3VibGUgZnJlZSBv ciBjb3JydXB0aW9uICh0b3ApIik7Ci0tICAgIC8qIE9yIHdoZXRoZXIgdGhlIG5leHQgY2h1bmsg aXMgYmV5b25kIHRoZSBib3VuZGFyaWVzIG9mIHRoZSBhcmVuYS4gICovCi0tICAgIGlmIChfX2J1 aWx0aW5fZXhwZWN0IChjb250aWd1b3VzIChhdikKLS0JCQkgICYmIChjaGFyICopIG5leHRjaHVu awotLQkJCSAgPj0gKChjaGFyICopIGF2LT50b3AgKyBjaHVua3NpemUoYXYtPnRvcCkpLCAwKSkK LS0JbWFsbG9jX3ByaW50ZXJyICgiZG91YmxlIGZyZWUgb3IgY29ycnVwdGlvbiAob3V0KSIpOwot LSAgICAvKiBPciB3aGV0aGVyIHRoZSBibG9jayBpcyBhY3R1YWxseSBub3QgbWFya2VkIHVzZWQu ICAqLwotLSAgICBpZiAoX19nbGliY191bmxpa2VseSAoIXByZXZfaW51c2UobmV4dGNodW5rKSkp Ci0tICAgICAgbWFsbG9jX3ByaW50ZXJyICgiZG91YmxlIGZyZWUgb3IgY29ycnVwdGlvbiAoIXBy ZXYpIik7Ci0tCi0tICAgIG5leHRzaXplID0gY2h1bmtzaXplKG5leHRjaHVuayk7Ci0tICAgIGlm IChfX2J1aWx0aW5fZXhwZWN0IChjaHVua3NpemVfbm9tYXNrIChuZXh0Y2h1bmspIDw9IENIVU5L X0hEUl9TWiwgMCkKLS0JfHwgX19idWlsdGluX2V4cGVjdCAobmV4dHNpemUgPj0gYXYtPnN5c3Rl bV9tZW0sIDApKQotLSAgICAgIG1hbGxvY19wcmludGVyciAoImZyZWUoKTogaW52YWxpZCBuZXh0 IHNpemUgKG5vcm1hbCkiKTsKLSsgICAgX2ludF9mcmVlX21lcmdlX2NodW5rIChhdiwgcCwgc2l6 ZSk7Ci0gCi0tICAgIGZyZWVfcGVydHVyYiAoY2h1bmsybWVtKHApLCBzaXplIC0gQ0hVTktfSERS X1NaKTsKLSsgICAgaWYgKCFoYXZlX2xvY2spCi0rICAgICAgX19saWJjX2xvY2tfdW5sb2NrIChh di0+bXV0ZXgpOwotKyAgfQotKyAgLyoKLSsgICAgSWYgdGhlIGNodW5rIHdhcyBhbGxvY2F0ZWQg dmlhIG1tYXAsIHJlbGVhc2UgdmlhIG11bm1hcCgpLgotKyAgKi8KLSsKLSsgIGVsc2UgewotKyAg ICBtdW5tYXBfY2h1bmsgKHApOwotKyAgfQotK30KLSsKLSsvKiBUcnkgdG8gbWVyZ2UgY2h1bmsg UCBvZiBTSVpFIGJ5dGVzIHdpdGggaXRzIG5laWdoYm9ycy4gIFB1dCB0aGUKLSsgICByZXN1bHRp bmcgY2h1bmsgb24gdGhlIGFwcHJvcHJpYXRlIGJpbiBsaXN0LiAgUCBtdXN0IG5vdCBiZSBvbiBh Ci0rICAgYmluIGxpc3QgeWV0LCBhbmQgaXQgY2FuIGJlIGluIHVzZS4gICovCi0rc3RhdGljIHZv aWQKLStfaW50X2ZyZWVfbWVyZ2VfY2h1bmsgKG1zdGF0ZSBhdiwgbWNodW5rcHRyIHAsIElOVEVS TkFMX1NJWkVfVCBzaXplKQotK3sKLSsgIG1jaHVua3B0ciBuZXh0Y2h1bmsgPSBjaHVua19hdF9v ZmZzZXQocCwgc2l6ZSk7Ci0rCi0rICAvKiBMaWdodHdlaWdodCB0ZXN0czogY2hlY2sgd2hldGhl ciB0aGUgYmxvY2sgaXMgYWxyZWFkeSB0aGUKLSsgICAgIHRvcCBibG9jay4gICovCi0rICBpZiAo X19nbGliY191bmxpa2VseSAocCA9PSBhdi0+dG9wKSkKLSsgICAgbWFsbG9jX3ByaW50ZXJyICgi ZG91YmxlIGZyZWUgb3IgY29ycnVwdGlvbiAodG9wKSIpOwotKyAgLyogT3Igd2hldGhlciB0aGUg bmV4dCBjaHVuayBpcyBiZXlvbmQgdGhlIGJvdW5kYXJpZXMgb2YgdGhlIGFyZW5hLiAgKi8KLSsg IGlmIChfX2J1aWx0aW5fZXhwZWN0IChjb250aWd1b3VzIChhdikKLSsJCQkmJiAoY2hhciAqKSBu ZXh0Y2h1bmsKLSsJCQk+PSAoKGNoYXIgKikgYXYtPnRvcCArIGNodW5rc2l6ZShhdi0+dG9wKSks IDApKQotKyAgICBtYWxsb2NfcHJpbnRlcnIgKCJkb3VibGUgZnJlZSBvciBjb3JydXB0aW9uIChv dXQpIik7Ci0rICAvKiBPciB3aGV0aGVyIHRoZSBibG9jayBpcyBhY3R1YWxseSBub3QgbWFya2Vk IHVzZWQuICAqLwotKyAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKCFwcmV2X2ludXNlKG5leHRjaHVu aykpKQotKyAgICBtYWxsb2NfcHJpbnRlcnIgKCJkb3VibGUgZnJlZSBvciBjb3JydXB0aW9uICgh cHJldikiKTsKLSsKLSsgIElOVEVSTkFMX1NJWkVfVCBuZXh0c2l6ZSA9IGNodW5rc2l6ZShuZXh0 Y2h1bmspOwotKyAgaWYgKF9fYnVpbHRpbl9leHBlY3QgKGNodW5rc2l6ZV9ub21hc2sgKG5leHRj aHVuaykgPD0gQ0hVTktfSERSX1NaLCAwKQotKyAgICAgIHx8IF9fYnVpbHRpbl9leHBlY3QgKG5l eHRzaXplID49IGF2LT5zeXN0ZW1fbWVtLCAwKSkKLSsgICAgbWFsbG9jX3ByaW50ZXJyICgiZnJl ZSgpOiBpbnZhbGlkIG5leHQgc2l6ZSAobm9ybWFsKSIpOwotKwotKyAgZnJlZV9wZXJ0dXJiIChj aHVuazJtZW0ocCksIHNpemUgLSBDSFVOS19IRFJfU1opOwotIAotLSAgICAvKiBjb25zb2xpZGF0 ZSBiYWNrd2FyZCAqLwotLSAgICBpZiAoIXByZXZfaW51c2UocCkpIHsKLS0gICAgICBwcmV2c2l6 ZSA9IHByZXZfc2l6ZSAocCk7Ci0rICAvKiBDb25zb2xpZGF0ZSBiYWNrd2FyZC4gICovCi0rICBp ZiAoIXByZXZfaW51c2UocCkpCi0rICAgIHsKLSsgICAgICBJTlRFUk5BTF9TSVpFX1QgcHJldnNp emUgPSBwcmV2X3NpemUgKHApOwotICAgICAgIHNpemUgKz0gcHJldnNpemU7Ci0gICAgICAgcCA9 IGNodW5rX2F0X29mZnNldChwLCAtKChsb25nKSBwcmV2c2l6ZSkpOwotICAgICAgIGlmIChfX2ds aWJjX3VubGlrZWx5IChjaHVua3NpemUocCkgIT0gcHJldnNpemUpKQotQEAgLTQ2NjksOSArNDY5 NSwyNSBAQCBfaW50X2ZyZWUgKG1zdGF0ZSBhdiwgbWNodW5rcHRyIHAsIGludCBoYXZlX2xvY2sp Ci0gICAgICAgdW5saW5rX2NodW5rIChhdiwgcCk7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5leHRj aHVuayAhPSBhdi0+dG9wKSB7Ci0rICAvKiBXcml0ZSB0aGUgY2h1bmsgaGVhZGVyLCBtYXliZSBh ZnRlciBtZXJnaW5nIHdpdGggdGhlIGZvbGxvd2luZyBjaHVuay4gICovCi0rICBzaXplID0gX2lu dF9mcmVlX2NyZWF0ZV9jaHVuayAoYXYsIHAsIHNpemUsIG5leHRjaHVuaywgbmV4dHNpemUpOwot KyAgX2ludF9mcmVlX21heWJlX2NvbnNvbGlkYXRlIChhdiwgc2l6ZSk7Ci0rfQotKwotKy8qIENy ZWF0ZSBhIGNodW5rIGF0IFAgb2YgU0laRSBieXRlcywgd2l0aCBTSVpFIHBvdGVudGlhbGx5IGlu Y3JlYXNlZAotKyAgIHRvIGNvdmVyIHRoZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2h1bmsgTkVY VENIVU5LIG9mIE5FWFRTSVpFCi0rICAgYnl0ZXMgKGlmIE5FWFRDSFVOSyBpcyB1bnVzZWQpLiAg VGhlIGNodW5rIGF0IFAgaXMgbm90IGFjdHVhbGx5Ci0rICAgcmVhZCBhbmQgZG9lcyBub3QgaGF2 ZSB0byBiZSBpbml0aWFsaXplZC4gIEFmdGVyIGNyZWF0aW9uLCBpdCBpcwotKyAgIHBsYWNlZCBv biB0aGUgYXBwcm9wcmlhdGUgYmluIGxpc3QuICBUaGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgc2l6 ZQotKyAgIG9mIHRoZSBuZXcgY2h1bmsuICAqLwotK3N0YXRpYyBJTlRFUk5BTF9TSVpFX1QKLStf aW50X2ZyZWVfY3JlYXRlX2NodW5rIChtc3RhdGUgYXYsIG1jaHVua3B0ciBwLCBJTlRFUk5BTF9T SVpFX1Qgc2l6ZSwKLSsJCQltY2h1bmtwdHIgbmV4dGNodW5rLCBJTlRFUk5BTF9TSVpFX1QgbmV4 dHNpemUpCi0rewotKyAgaWYgKG5leHRjaHVuayAhPSBhdi0+dG9wKQotKyAgICB7Ci0gICAgICAg LyogZ2V0IGFuZCBjbGVhciBpbnVzZSBiaXQgKi8KLS0gICAgICBuZXh0aW51c2UgPSBpbnVzZV9i aXRfYXRfb2Zmc2V0KG5leHRjaHVuaywgbmV4dHNpemUpOwotKyAgICAgIGJvb2wgbmV4dGludXNl ID0gaW51c2VfYml0X2F0X29mZnNldCAobmV4dGNodW5rLCBuZXh0c2l6ZSk7Ci0gCi0gICAgICAg LyogY29uc29saWRhdGUgZm9yd2FyZCAqLwotICAgICAgIGlmICghbmV4dGludXNlKSB7Ci1AQCAt NDY4Niw4ICs0NzI4LDggQEAgX2ludF9mcmVlIChtc3RhdGUgYXYsIG1jaHVua3B0ciBwLCBpbnQg aGF2ZV9sb2NrKQotIAliZWVuIGdpdmVuIG9uZSBjaGFuY2UgdG8gYmUgdXNlZCBpbiBtYWxsb2Mu Ci0gICAgICAgKi8KLSAKLS0gICAgICBiY2sgPSB1bnNvcnRlZF9jaHVua3MoYXYpOwotLSAgICAg IGZ3ZCA9IGJjay0+ZmQ7Ci0rICAgICAgbWNodW5rcHRyIGJjayA9IHVuc29ydGVkX2NodW5rcyAo YXYpOwotKyAgICAgIG1jaHVua3B0ciBmd2QgPSBiY2stPmZkOwotICAgICAgIGlmIChfX2dsaWJj X3VubGlrZWx5IChmd2QtPmJrICE9IGJjaykpCi0gCW1hbGxvY19wcmludGVyciAoImZyZWUoKTog Y29ycnVwdGVkIHVuc29ydGVkIGNodW5rcyIpOwotICAgICAgIHAtPmZkID0gZndkOwotQEAgLTQ3 MDYsNjEgKzQ3NDgsNTIgQEAgX2ludF9mcmVlIChtc3RhdGUgYXYsIG1jaHVua3B0ciBwLCBpbnQg aGF2ZV9sb2NrKQotICAgICAgIGNoZWNrX2ZyZWVfY2h1bmsoYXYsIHApOwotICAgICB9Ci0gCi0t ICAgIC8qCi0tICAgICAgSWYgdGhlIGNodW5rIGJvcmRlcnMgdGhlIGN1cnJlbnQgaGlnaCBlbmQg b2YgbWVtb3J5LAotLSAgICAgIGNvbnNvbGlkYXRlIGludG8gdG9wCi0tICAgICovCi0tCi0tICAg IGVsc2UgewotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgLyogSWYgdGhlIGNodW5rIGJvcmRlcnMg dGhlIGN1cnJlbnQgaGlnaCBlbmQgb2YgbWVtb3J5LAotKwkgY29uc29saWRhdGUgaW50byB0b3Au ICAqLwotICAgICAgIHNpemUgKz0gbmV4dHNpemU7Ci0gICAgICAgc2V0X2hlYWQocCwgc2l6ZSB8 IFBSRVZfSU5VU0UpOwotICAgICAgIGF2LT50b3AgPSBwOwotICAgICAgIGNoZWNrX2NodW5rKGF2 LCBwKTsKLSAgICAgfQotIAotLSAgICAvKgotLSAgICAgIElmIGZyZWVpbmcgYSBsYXJnZSBzcGFj ZSwgY29uc29saWRhdGUgcG9zc2libHktc3Vycm91bmRpbmcKLS0gICAgICBjaHVua3MuIFRoZW4s IGlmIHRoZSB0b3RhbCB1bnVzZWQgdG9wbW9zdCBtZW1vcnkgZXhjZWVkcyB0cmltCi0tICAgICAg dGhyZXNob2xkLCBhc2sgbWFsbG9jX3RyaW0gdG8gcmVkdWNlIHRvcC4KLS0KLS0gICAgICBVbmxl c3MgbWF4X2Zhc3QgaXMgMCwgd2UgZG9uJ3Qga25vdyBpZiB0aGVyZSBhcmUgZmFzdGJpbnMKLS0g ICAgICBib3JkZXJpbmcgdG9wLCBzbyB3ZSBjYW5ub3QgdGVsbCBmb3Igc3VyZSB3aGV0aGVyIHRo cmVzaG9sZAotLSAgICAgIGhhcyBiZWVuIHJlYWNoZWQgdW5sZXNzIGZhc3RiaW5zIGFyZSBjb25z b2xpZGF0ZWQuICBCdXQgd2UKLS0gICAgICBkb24ndCB3YW50IHRvIGNvbnNvbGlkYXRlIG9uIGVh Y2ggZnJlZS4gIEFzIGEgY29tcHJvbWlzZSwKLS0gICAgICBjb25zb2xpZGF0aW9uIGlzIHBlcmZv cm1lZCBpZiBGQVNUQklOX0NPTlNPTElEQVRJT05fVEhSRVNIT0xECi0tICAgICAgaXMgcmVhY2hl ZC4KLS0gICAgKi8KLSsgIHJldHVybiBzaXplOwotK30KLSAKLS0gICAgaWYgKCh1bnNpZ25lZCBs b25nKShzaXplKSA+PSBGQVNUQklOX0NPTlNPTElEQVRJT05fVEhSRVNIT0xEKSB7Ci0rLyogSWYg ZnJlZWluZyBhIGxhcmdlIHNwYWNlLCBjb25zb2xpZGF0ZSBwb3NzaWJseS1zdXJyb3VuZGluZwot KyAgIGNodW5rcy4gIFRoZW4sIGlmIHRoZSB0b3RhbCB1bnVzZWQgdG9wbW9zdCBtZW1vcnkgZXhj ZWVkcyB0cmltCi0rICAgdGhyZXNob2xkLCBhc2sgbWFsbG9jX3RyaW0gdG8gcmVkdWNlIHRvcC4g ICovCi0rc3RhdGljIHZvaWQKLStfaW50X2ZyZWVfbWF5YmVfY29uc29saWRhdGUgKG1zdGF0ZSBh diwgSU5URVJOQUxfU0laRV9UIHNpemUpCi0rewotKyAgLyogVW5sZXNzIG1heF9mYXN0IGlzIDAs IHdlIGRvbid0IGtub3cgaWYgdGhlcmUgYXJlIGZhc3RiaW5zCi0rICAgICBib3JkZXJpbmcgdG9w LCBzbyB3ZSBjYW5ub3QgdGVsbCBmb3Igc3VyZSB3aGV0aGVyIHRocmVzaG9sZCBoYXMKLSsgICAg IGJlZW4gcmVhY2hlZCB1bmxlc3MgZmFzdGJpbnMgYXJlIGNvbnNvbGlkYXRlZC4gIEJ1dCB3ZSBk b24ndCB3YW50Ci0rICAgICB0byBjb25zb2xpZGF0ZSBvbiBlYWNoIGZyZWUuICBBcyBhIGNvbXBy b21pc2UsIGNvbnNvbGlkYXRpb24gaXMKLSsgICAgIHBlcmZvcm1lZCBpZiBGQVNUQklOX0NPTlNP TElEQVRJT05fVEhSRVNIT0xEIGlzIHJlYWNoZWQuICAqLwotKyAgaWYgKHNpemUgPj0gRkFTVEJJ Tl9DT05TT0xJREFUSU9OX1RIUkVTSE9MRCkKLSsgICAgewotICAgICAgIGlmIChhdG9taWNfbG9h ZF9yZWxheGVkICgmYXYtPmhhdmVfZmFzdGNodW5rcykpCi0gCW1hbGxvY19jb25zb2xpZGF0ZShh dik7Ci0gCi0tICAgICAgaWYgKGF2ID09ICZtYWluX2FyZW5hKSB7Ci0rICAgICAgaWYgKGF2ID09 ICZtYWluX2FyZW5hKQotKwl7Ci0gI2lmbmRlZiBNT1JFQ09SRV9DQU5OT1RfVFJJTQotLQlpZiAo KHVuc2lnbmVkIGxvbmcpKGNodW5rc2l6ZShhdi0+dG9wKSkgPj0KLS0JICAgICh1bnNpZ25lZCBs b25nKShtcF8udHJpbV90aHJlc2hvbGQpKQotLQkgIHN5c3RyaW0obXBfLnRvcF9wYWQsIGF2KTsK LSsJICBpZiAoY2h1bmtzaXplIChhdi0+dG9wKSA+PSBtcF8udHJpbV90aHJlc2hvbGQpCi0rCSAg ICBzeXN0cmltIChtcF8udG9wX3BhZCwgYXYpOwotICNlbmRpZgotLSAgICAgIH0gZWxzZSB7Ci0t CS8qIEFsd2F5cyB0cnkgaGVhcF90cmltKCksIGV2ZW4gaWYgdGhlIHRvcCBjaHVuayBpcyBub3QK LS0JICAgbGFyZ2UsIGJlY2F1c2UgdGhlIGNvcnJlc3BvbmRpbmcgaGVhcCBtaWdodCBnbyBhd2F5 LiAgKi8KLS0JaGVhcF9pbmZvICpoZWFwID0gaGVhcF9mb3JfcHRyKHRvcChhdikpOwotKwl9Ci0r ICAgICAgZWxzZQotKwl7Ci0rCSAgLyogQWx3YXlzIHRyeSBoZWFwX3RyaW0sIGV2ZW4gaWYgdGhl IHRvcCBjaHVuayBpcyBub3QgbGFyZ2UsCi0rCSAgICAgYmVjYXVzZSB0aGUgY29ycmVzcG9uZGlu ZyBoZWFwIG1pZ2h0IGdvIGF3YXkuICAqLwotKwkgIGhlYXBfaW5mbyAqaGVhcCA9IGhlYXBfZm9y X3B0ciAodG9wIChhdikpOwotIAotLQlhc3NlcnQoaGVhcC0+YXJfcHRyID09IGF2KTsKLS0JaGVh cF90cmltKGhlYXAsIG1wXy50b3BfcGFkKTsKLS0gICAgICB9Ci0rCSAgYXNzZXJ0IChoZWFwLT5h cl9wdHIgPT0gYXYpOwotKwkgIGhlYXBfdHJpbSAoaGVhcCwgbXBfLnRvcF9wYWQpOwotKwl9Ci0g ICAgIH0KLS0KLS0gICAgaWYgKCFoYXZlX2xvY2spCi0tICAgICAgX19saWJjX2xvY2tfdW5sb2Nr IChhdi0+bXV0ZXgpOwotLSAgfQotLSAgLyoKLS0gICAgSWYgdGhlIGNodW5rIHdhcyBhbGxvY2F0 ZWQgdmlhIG1tYXAsIHJlbGVhc2UgdmlhIG11bm1hcCgpLgotLSAgKi8KLS0KLS0gIGVsc2Ugewot LSAgICBtdW5tYXBfY2h1bmsgKHApOwotLSAgfQotIH0KLSAKLSAvKgotQEAgLTUyMjEsNyArNTI1 NCw3IEBAIF9pbnRfbWVtYWxpZ24gKG1zdGF0ZSBhdiwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90 IGJ5dGVzKQotICAgICAgICAgICAgICAgICAoYXYgIT0gJm1haW5fYXJlbmEgPyBOT05fTUFJTl9B UkVOQSA6IDApKTsKLSAgICAgICBzZXRfaW51c2VfYml0X2F0X29mZnNldCAobmV3cCwgbmV3c2l6 ZSk7Ci0gICAgICAgc2V0X2hlYWRfc2l6ZSAocCwgbGVhZHNpemUgfCAoYXYgIT0gJm1haW5fYXJl bmEgPyBOT05fTUFJTl9BUkVOQSA6IDApKTsKLS0gICAgICBfaW50X2ZyZWUgKGF2LCBwLCAxKTsK LSsgICAgICBfaW50X2ZyZWVfbWVyZ2VfY2h1bmsgKGF2LCBwLCBsZWFkc2l6ZSk7Ci0gICAgICAg cCA9IG5ld3A7Ci0gCi0gICAgICAgYXNzZXJ0IChuZXdzaXplID49IG5iICYmCi1AQCAtNTIzMiwx NSArNTI2NSwyNyBAQCBfaW50X21lbWFsaWduIChtc3RhdGUgYXYsIHNpemVfdCBhbGlnbm1lbnQs IHNpemVfdCBieXRlcykKLSAgIGlmICghY2h1bmtfaXNfbW1hcHBlZCAocCkpCi0gICAgIHsKLSAg ICAgICBzaXplID0gY2h1bmtzaXplIChwKTsKLS0gICAgICBpZiAoKHVuc2lnbmVkIGxvbmcpIChz aXplKSA+ICh1bnNpZ25lZCBsb25nKSAobmIgKyBNSU5TSVpFKSkKLSsgICAgICBtY2h1bmtwdHIg bmV4dGNodW5rID0gY2h1bmtfYXRfb2Zmc2V0KHAsIHNpemUpOwotKyAgICAgIElOVEVSTkFMX1NJ WkVfVCBuZXh0c2l6ZSA9IGNodW5rc2l6ZShuZXh0Y2h1bmspOwotKyAgICAgIGlmIChzaXplID4g bmIpCi0gICAgICAgICB7Ci0gICAgICAgICAgIHJlbWFpbmRlcl9zaXplID0gc2l6ZSAtIG5iOwot LSAgICAgICAgICByZW1haW5kZXIgPSBjaHVua19hdF9vZmZzZXQgKHAsIG5iKTsKLS0gICAgICAg ICAgc2V0X2hlYWQgKHJlbWFpbmRlciwgcmVtYWluZGVyX3NpemUgfCBQUkVWX0lOVVNFIHwKLS0g ICAgICAgICAgICAgICAgICAgIChhdiAhPSAmbWFpbl9hcmVuYSA/IE5PTl9NQUlOX0FSRU5BIDog MCkpOwotLSAgICAgICAgICBzZXRfaGVhZF9zaXplIChwLCBuYik7Ci0tICAgICAgICAgIF9pbnRf ZnJlZSAoYXYsIHJlbWFpbmRlciwgMSk7Ci0tICAgICAgICB9Ci0rCSAgaWYgKHJlbWFpbmRlcl9z aXplID49IE1JTlNJWkUKLSsJICAgICAgfHwgbmV4dGNodW5rID09IGF2LT50b3AKLSsJICAgICAg fHwgIWludXNlX2JpdF9hdF9vZmZzZXQgKG5leHRjaHVuaywgbmV4dHNpemUpKQotKwkgICAgewot KwkgICAgICAvKiBXZSBjYW4gb25seSBnaXZlIGJhY2sgdGhlIHRhaWwgaWYgaXQgaXMgbGFyZ2Vy IHRoYW4KLSsJCSBNSU5TSVpFLCBvciBpZiB0aGUgZm9sbG93aW5nIGNodW5rIGlzIHVudXNlZCAo dG9wCi0rCQkgY2h1bmsgb3IgdW51c2VkIGluLWhlYXAgY2h1bmspLiAgT3RoZXJ3aXNlIHdlIHdv dWxkCi0rCQkgY3JlYXRlIGEgY2h1bmsgdGhhdCBpcyBzbWFsbGVyIHRoYW4gTUlOU0laRS4gICov Ci0rCSAgICAgIHJlbWFpbmRlciA9IGNodW5rX2F0X29mZnNldCAocCwgbmIpOwotKwkgICAgICBz ZXRfaGVhZF9zaXplIChwLCBuYik7Ci0rCSAgICAgIHJlbWFpbmRlcl9zaXplID0gX2ludF9mcmVl X2NyZWF0ZV9jaHVuayAoYXYsIHJlbWFpbmRlciwKLSsJCQkJCQkgICAgICAgcmVtYWluZGVyX3Np emUsCi0rCQkJCQkJICAgICAgIG5leHRjaHVuaywgbmV4dHNpemUpOwotKwkgICAgICBfaW50X2Zy ZWVfbWF5YmVfY29uc29saWRhdGUgKGF2LCByZW1haW5kZXJfc2l6ZSk7Ci0rCSAgICB9Ci0rCX0K LSAgICAgfQotIAotICAgY2hlY2tfaW51c2VfY2h1bmsgKGF2LCBwKTsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ2xpYmMvcGF0Y2hlcy8zMDcyMy0yLTBkYzdmYzFjZjA5NDQwNmExMzhlNGQxYmNmOTU1 M2U1OWVkY2Y4OWQucGF0Y2ggYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvMzA3MjMtMi0wZGM3ZmMx Y2YwOTQ0MDZhMTM4ZTRkMWJjZjk1NTNlNTllZGNmODlkLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA0NjE1YzdiMDM1Y2M3NS4uMDAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9nbGliYy9wYXRjaGVzLzMwNzIzLTItMGRjN2ZjMWNmMDk0NDA2YTEzOGU0ZDFiY2Y5NTUzZTU5 ZWRjZjg5ZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1MiArMCwwIEBACi1Gcm9tIDBkYzdm YzFjZjA5NDQwNmExMzhlNGQxYmNmOTU1M2U1OWVkY2Y4OWQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgotRGF0ZTogVGh1 LCAxMCBBdWcgMjAyMyAxOTozNjo1NiArMDIwMAotU3ViamVjdDogW1BBVENIXSBtYWxsb2M6IFJl bW92ZSBiaW4gc2Nhbm5pbmcgZnJvbSBtZW1hbGlnbiAoYnVnIDMwNzIzKQotCi1PbiB0aGUgdGVz dCB3b3JrbG9hZCAobXB2IC0tY2FjaGU9eWVzIHdpdGggVlA5IHZpZGVvIGRlY29kaW5nKSwgdGhl Ci1iaW4gc2Nhbm5pbmcgaGFzIGEgdmVyeSBwb29yIHN1Y2Nlc3MgcmF0ZSAobGVzcyB0aGFuIDIl KS4gIFRoZSB0Y2FjaGUKLXNjYW5uaW5nIGhhcyBhYm91dCA1MCUgc3VjY2VzcyByYXRlLCBzbyBr ZWVwIHRoYXQuCi0KLVVwZGF0ZSBjb21tZW50cyBpbiBtYWxsb2MvdHN0LW1lbWFsaWduLTIgdG8g aW5kaWNhdGUgdGhlIHB1cnBvc2UKLW9mIHRoZSB0ZXN0cy4gIEV2ZW4gd2l0aCB0aGUgc2Nhbm5p bmcgcmVtb3ZlZCwgdGhlIGFkZGl0aW9uYWwKLW1lcmdpbmcgb3Bwb3J0dW5pdGllcyBzaW5jZSBj b21taXQgNTQyYjExMDU4NTI1NjhjM2ViYzcxMjIyNWFlNzhiCi0oIm1hbGxvYzogRW5hYmxlIG1l cmdpbmcgb2YgcmVtYWluZGVycyBpbiBtZW1hbGlnbiAoYnVnIDMwNzIzKSIpCi1hcmUgc3VmZmlj aWVudCB0byBwYXNzIHRoZSBleGlzdGluZyBsYXJnZSBiaW5zIHRlc3QuCi0KLVJlbW92ZSBsZWZ0 b3ZlciB2YXJpYWJsZXMgZnJvbSBfaW50X2ZyZWUgZnJvbSByZWZhY3RvcmluZyBpbiB0aGUKLXNh bWUgY29tbWl0LgotCi1SZXZpZXdlZC1ieTogREogRGVsb3JpZSA8ZGpAcmVkaGF0LmNvbT4KLS0t LQotIG1hbGxvYy9tYWxsb2MuYyAgICAgICAgIHwgMTY5ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSBtYWxsb2MvdHN0LW1lbWFsaWduLTIuYyB8ICAgNyArLQotIDIg ZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMTY2IGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvbWFsbG9jL21hbGxvYy5jIGIvbWFsbG9jL21hbGxvYy5jCi1pbmRleCA5NDhmOTc1 OWFmLi5kMGJiYmYzNzEwIDEwMDY0NAotLS0tIGEvbWFsbG9jL21hbGxvYy5jCi0rKysgYi9tYWxs b2MvbWFsbG9jLmMKLUBAIC00NDg4LDEyICs0NDg4LDYgQEAgX2ludF9mcmVlIChtc3RhdGUgYXYs IG1jaHVua3B0ciBwLCBpbnQgaGF2ZV9sb2NrKQotIHsKLSAgIElOVEVSTkFMX1NJWkVfVCBzaXpl OyAgICAgICAgLyogaXRzIHNpemUgKi8KLSAgIG1mYXN0YmlucHRyICpmYjsgICAgICAgICAgICAg LyogYXNzb2NpYXRlZCBmYXN0YmluICovCi0tICBtY2h1bmtwdHIgbmV4dGNodW5rOyAgICAgICAg IC8qIG5leHQgY29udGlndW91cyBjaHVuayAqLwotLSAgSU5URVJOQUxfU0laRV9UIG5leHRzaXpl OyAgICAvKiBpdHMgc2l6ZSAqLwotLSAgaW50IG5leHRpbnVzZTsgICAgICAgICAgICAgICAvKiB0 cnVlIGlmIG5leHRjaHVuayBpcyB1c2VkICovCi0tICBJTlRFUk5BTF9TSVpFX1QgcHJldnNpemU7 ICAgIC8qIHNpemUgb2YgcHJldmlvdXMgY29udGlndW91cyBjaHVuayAqLwotLSAgbWNodW5rcHRy IGJjazsgICAgICAgICAgICAgICAvKiBtaXNjIHRlbXAgZm9yIGxpbmtpbmcgKi8KLS0gIG1jaHVu a3B0ciBmd2Q7ICAgICAgICAgICAgICAgLyogbWlzYyB0ZW1wIGZvciBsaW5raW5nICovCi0gCi0g ICBzaXplID0gY2h1bmtzaXplIChwKTsKLSAKLUBAIC01MDMyLDQyICs1MDI2LDYgQEAgX2ludF9y ZWFsbG9jIChtc3RhdGUgYXYsIG1jaHVua3B0ciBvbGRwLCBJTlRFUk5BTF9TSVpFX1Qgb2xkc2l6 ZSwKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gbWVtYWxpZ24gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICovCi0gCi0tLyogUmV0dXJucyAwIGlmIHRoZSBjaHVu ayBpcyBub3QgYW5kIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVlc3RlZAotLSAgIGFsaWduZWQg c3ViLWNodW5rLCBlbHNlIHJldHVybnMgdGhlIGFtb3VudCBvZiAid2FzdGUiIGZyb20KLS0gICB0 cmltbWluZy4gIE5CIGlzIHRoZSAqY2h1bmsqIGJ5dGUgc2l6ZSwgbm90IHRoZSB1c2VyIGJ5dGUK LS0gICBzaXplLiAgKi8KLS1zdGF0aWMgc2l6ZV90Ci0tY2h1bmtfb2tfZm9yX21lbWFsaWduICht Y2h1bmtwdHIgcCwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IG5iKQotLXsKLS0gIHZvaWQgKm0g PSBjaHVuazJtZW0gKHApOwotLSAgSU5URVJOQUxfU0laRV9UIHNpemUgPSBjaHVua3NpemUgKHAp OwotLSAgdm9pZCAqYWxpZ25lZF9tID0gbTsKLS0KLS0gIGlmIChfX2dsaWJjX3VubGlrZWx5ICht aXNhbGlnbmVkX2NodW5rIChwKSkpCi0tICAgIG1hbGxvY19wcmludGVyciAoIl9pbnRfbWVtYWxp Z24oKTogdW5hbGlnbmVkIGNodW5rIGRldGVjdGVkIik7Ci0tCi0tICBhbGlnbmVkX20gPSBQVFJf QUxJR05fVVAgKG0sIGFsaWdubWVudCk7Ci0tCi0tICBJTlRFUk5BTF9TSVpFX1QgZnJvbnRfZXh0 cmEgPSAoaW50cHRyX3QpIGFsaWduZWRfbSAtIChpbnRwdHJfdCkgbTsKLS0KLS0gIC8qIFdlIGNh bid0IHRyaW0gb2ZmIHRoZSBmcm9udCBhcyBpdCdzIHRvbyBzbWFsbC4gICovCi0tICBpZiAoZnJv bnRfZXh0cmEgPiAwICYmIGZyb250X2V4dHJhIDwgTUlOU0laRSkKLS0gICAgcmV0dXJuIDA7Ci0t Ci0tICAvKiBJZiBpdCdzIGEgcGVyZmVjdCBmaXQsIGl0J3MgYW4gZXhjZXB0aW9uIHRvIHRoZSBy ZXR1cm4gdmFsdWUgcnVsZQotLSAgICAgKHdlIHdvdWxkIHJldHVybiB6ZXJvIHdhc3RlLCB3aGlj aCBsb29rcyBsaWtlICJub3QgdXNhYmxlIiksIHNvCi0tICAgICBoYW5kbGUgaXQgaGVyZSBieSBy ZXR1cm5pbmcgYSBzbWFsbCBub24temVybyB2YWx1ZSBpbnN0ZWFkLiAgKi8KLS0gIGlmIChzaXpl ID09IG5iICYmIGZyb250X2V4dHJhID09IDApCi0tICAgIHJldHVybiAxOwotLQotLSAgLyogSWYg dGhlIGJsb2NrIHdlIG5lZWQgZml0cyBpbiB0aGUgY2h1bmssIGNhbGN1bGF0ZSB0b3RhbCB3YXN0 ZS4gICovCi0tICBpZiAoc2l6ZSA+IG5iICsgZnJvbnRfZXh0cmEpCi0tICAgIHJldHVybiBzaXpl IC0gbmI7Ci0tCi0tICAvKiBDYW4ndCB1c2UgdGhpcyBjaHVuay4gICovCi0tICByZXR1cm4gMDsK LS19Ci0tCi0gLyogQllURVMgaXMgdXNlciByZXF1ZXN0ZWQgYnl0ZXMsIG5vdCByZXF1ZXN0ZWQg Y2h1bmtzaXplIGJ5dGVzLiAgKi8KLSBzdGF0aWMgdm9pZCAqCi0gX2ludF9tZW1hbGlnbiAobXN0 YXRlIGF2LCBzaXplX3QgYWxpZ25tZW50LCBzaXplX3QgYnl0ZXMpCi1AQCAtNTA4Miw3ICs1MDQw LDYgQEAgX2ludF9tZW1hbGlnbiAobXN0YXRlIGF2LCBzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qg Ynl0ZXMpCi0gICBtY2h1bmtwdHIgcmVtYWluZGVyOyAgICAgICAgICAgIC8qIHNwYXJlIHJvb20g YXQgZW5kIHRvIHNwbGl0IG9mZiAqLwotICAgdW5zaWduZWQgbG9uZyByZW1haW5kZXJfc2l6ZTsg ICAvKiBpdHMgc2l6ZSAqLwotICAgSU5URVJOQUxfU0laRV9UIHNpemU7Ci0tICBtY2h1bmtwdHIg dmljdGltOwotIAotICAgbmIgPSBjaGVja2VkX3JlcXVlc3Qyc2l6ZSAoYnl0ZXMpOwotICAgaWYg KG5iID09IDApCi1AQCAtNTEwMSwxMjkgKzUwNTgsMTMgQEAgX2ludF9tZW1hbGlnbiAobXN0YXRl IGF2LCBzaXplX3QgYWxpZ25tZW50LCBzaXplX3QgYnl0ZXMpCi0gICAgICB3ZSBkb24ndCBmaW5k IGFueXRoaW5nIGluIHRob3NlIGJpbnMsIHRoZSBjb21tb24gbWFsbG9jIGNvZGUgd2lsbAotICAg ICAgc2NhbiBzdGFydGluZyBhdCAyeC4gICovCi0gCi0tICAvKiBUaGlzIHdpbGwgYmUgc2V0IGlm IHdlIGZvdW5kIGEgY2FuZGlkYXRlIGNodW5rLiAgKi8KLS0gIHZpY3RpbSA9IE5VTEw7Ci0tCi0t ICAvKiBGYXN0IGJpbnMgYXJlIHNpbmdseS1saW5rZWQsIGhhcmQgdG8gcmVtb3ZlIGEgY2h1bmsg ZnJvbSB0aGUgbWlkZGxlCi0tICAgICBhbmQgdW5saWtlbHkgdG8gbWVldCBvdXIgYWxpZ25tZW50 IHJlcXVpcmVtZW50cy4gIFdlIGhhdmUgbm90IGRvbmUKLS0gICAgIGFueSBleHBlcmltZW50YXRp b24gd2l0aCBzZWFyY2hpbmcgZm9yIGFsaWduZWQgZmFzdGJpbnMuICAqLwotLQotLSAgaWYgKGF2 ICE9IE5VTEwpCi0tICAgIHsKLS0gICAgICBpbnQgZmlyc3RfYmluX2luZGV4OwotLSAgICAgIGlu dCBmaXJzdF9sYXJnZWJpbl9pbmRleDsKLS0gICAgICBpbnQgbGFzdF9iaW5faW5kZXg7Ci0tCi0t ICAgICAgaWYgKGluX3NtYWxsYmluX3JhbmdlIChuYikpCi0tCWZpcnN0X2Jpbl9pbmRleCA9IHNt YWxsYmluX2luZGV4IChuYik7Ci0tICAgICAgZWxzZQotLQlmaXJzdF9iaW5faW5kZXggPSBsYXJn ZWJpbl9pbmRleCAobmIpOwotLQotLSAgICAgIGlmIChpbl9zbWFsbGJpbl9yYW5nZSAobmIgKiAy KSkKLS0JbGFzdF9iaW5faW5kZXggPSBzbWFsbGJpbl9pbmRleCAobmIgKiAyKTsKLS0gICAgICBl bHNlCi0tCWxhc3RfYmluX2luZGV4ID0gbGFyZ2ViaW5faW5kZXggKG5iICogMik7Ci0tCi0tICAg ICAgZmlyc3RfbGFyZ2ViaW5faW5kZXggPSBsYXJnZWJpbl9pbmRleCAoTUlOX0xBUkdFX1NJWkUp OwotLQotLSAgICAgIGludCB2aWN0aW1faW5kZXg7ICAgICAgICAgICAgICAgICAvKiBpdHMgYmlu IGluZGV4ICovCi0tCi0tICAgICAgZm9yICh2aWN0aW1faW5kZXggPSBmaXJzdF9iaW5faW5kZXg7 Ci0tCSAgIHZpY3RpbV9pbmRleCA8IGxhc3RfYmluX2luZGV4OwotLQkgICB2aWN0aW1faW5kZXgg KyspCi0tCXsKLS0JICB2aWN0aW0gPSBOVUxMOwotLQotLQkgIGlmICh2aWN0aW1faW5kZXggPCBm aXJzdF9sYXJnZWJpbl9pbmRleCkKLS0JICAgIHsKLS0JICAgICAgLyogQ2hlY2sgc21hbGwgYmlu cy4gIFNtYWxsIGJpbiBjaHVua3MgYXJlIGRvdWJseS1saW5rZWQgZGVzcGl0ZQotLQkJIGJlaW5n IHRoZSBzYW1lIHNpemUuICAqLwotLQotLQkgICAgICBtY2h1bmtwdHIgZndkOyAgICAgICAgICAg ICAgICAgICAgLyogbWlzYyB0ZW1wIGZvciBsaW5raW5nICovCi0tCSAgICAgIG1jaHVua3B0ciBi Y2s7ICAgICAgICAgICAgICAgICAgICAvKiBtaXNjIHRlbXAgZm9yIGxpbmtpbmcgKi8KLS0KLS0J ICAgICAgYmNrID0gYmluX2F0IChhdiwgdmljdGltX2luZGV4KTsKLS0JICAgICAgZndkID0gYmNr LT5mZDsKLS0JICAgICAgd2hpbGUgKGZ3ZCAhPSBiY2spCi0tCQl7Ci0tCQkgIGlmIChjaHVua19v a19mb3JfbWVtYWxpZ24gKGZ3ZCwgYWxpZ25tZW50LCBuYikgPiAwKQotLQkJICAgIHsKLS0JCSAg ICAgIHZpY3RpbSA9IGZ3ZDsKLS0KLS0JCSAgICAgIC8qIFVubGluayBpdCAqLwotLQkJICAgICAg dmljdGltLT5mZC0+YmsgPSB2aWN0aW0tPmJrOwotLQkJICAgICAgdmljdGltLT5iay0+ZmQgPSB2 aWN0aW0tPmZkOwotLQkJICAgICAgYnJlYWs7Ci0tCQkgICAgfQotLQotLQkJICBmd2QgPSBmd2Qt PmZkOwotLQkJfQotLQkgICAgfQotLQkgIGVsc2UKLS0JICAgIHsKLS0JICAgICAgLyogQ2hlY2sg bGFyZ2UgYmlucy4gICovCi0tCSAgICAgIG1jaHVua3B0ciBmd2Q7ICAgICAgICAgICAgICAgICAg ICAvKiBtaXNjIHRlbXAgZm9yIGxpbmtpbmcgKi8KLS0JICAgICAgbWNodW5rcHRyIGJjazsgICAg ICAgICAgICAgICAgICAgIC8qIG1pc2MgdGVtcCBmb3IgbGlua2luZyAqLwotLQkgICAgICBtY2h1 bmtwdHIgYmVzdCA9IE5VTEw7Ci0tCSAgICAgIHNpemVfdCBiZXN0X3NpemUgPSAwOwotLQotLQkg ICAgICBiY2sgPSBiaW5fYXQgKGF2LCB2aWN0aW1faW5kZXgpOwotLQkgICAgICBmd2QgPSBiY2st PmZkOwotKyAgLyogQ2FsbCBtYWxsb2Mgd2l0aCB3b3JzdCBjYXNlIHBhZGRpbmcgdG8gaGl0IGFs aWdubWVudC4gKi8KLSsgIG0gPSAoY2hhciAqKSAoX2ludF9tYWxsb2MgKGF2LCBuYiArIGFsaWdu bWVudCArIE1JTlNJWkUpKTsKLSAKLS0JICAgICAgd2hpbGUgKGZ3ZCAhPSBiY2spCi0tCQl7Ci0t CQkgIGludCBleHRyYTsKLS0KLS0JCSAgaWYgKGNodW5rc2l6ZSAoZndkKSA8IG5iKQotLQkJICAg IGJyZWFrOwotLQkJICBleHRyYSA9IGNodW5rX29rX2Zvcl9tZW1hbGlnbiAoZndkLCBhbGlnbm1l bnQsIG5iKTsKLS0JCSAgaWYgKGV4dHJhID4gMAotLQkJICAgICAgJiYgKGV4dHJhIDw9IGJlc3Rf c2l6ZSB8fCBiZXN0ID09IE5VTEwpKQotLQkJICAgIHsKLS0JCSAgICAgIGJlc3QgPSBmd2Q7Ci0t CQkgICAgICBiZXN0X3NpemUgPSBleHRyYTsKLS0JCSAgICB9Ci0rICBpZiAobSA9PSAwKQotKyAg ICByZXR1cm4gMDsgICAgICAgICAgIC8qIHByb3BhZ2F0ZSBmYWlsdXJlICovCi0gCi0tCQkgIGZ3 ZCA9IGZ3ZC0+ZmQ7Ci0tCQl9Ci0tCSAgICAgIHZpY3RpbSA9IGJlc3Q7Ci0tCi0tCSAgICAgIGlm ICh2aWN0aW0gIT0gTlVMTCkKLS0JCXsKLS0JCSAgdW5saW5rX2NodW5rIChhdiwgdmljdGltKTsK LS0JCSAgYnJlYWs7Ci0tCQl9Ci0tCSAgICB9Ci0tCi0tCSAgaWYgKHZpY3RpbSAhPSBOVUxMKQot LQkgICAgYnJlYWs7Ci0tCX0KLS0gICAgfQotLQotLSAgLyogU3RyYXRlZ3k6IGZpbmQgYSBzcG90 IHdpdGhpbiB0aGF0IGNodW5rIHRoYXQgbWVldHMgdGhlIGFsaWdubWVudAotLSAgICAgcmVxdWVz dCwgYW5kIHRoZW4gcG9zc2libHkgZnJlZSB0aGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2Uu Ci0tICAgICBUaGlzIHN0cmF0ZWd5IGlzIGluY3JlZGlibHkgY29zdGx5IGFuZCBjYW4gbGVhZCB0 byBleHRlcm5hbAotLSAgICAgZnJhZ21lbnRhdGlvbiBpZiBoZWFkZXIgYW5kIGZvb3RlciBjaHVu a3MgYXJlIHVudXNlZC4gICovCi0tCi0tICBpZiAodmljdGltICE9IE5VTEwpCi0tICAgIHsKLS0g ICAgICBwID0gdmljdGltOwotLSAgICAgIG0gPSBjaHVuazJtZW0gKHApOwotLSAgICAgIHNldF9p bnVzZSAocCk7Ci0tICAgICAgaWYgKGF2ICE9ICZtYWluX2FyZW5hKQotLQlzZXRfbm9uX21haW5f YXJlbmEgKHApOwotLSAgICB9Ci0tICBlbHNlCi0tICAgIHsKLS0gICAgICAvKiBDYWxsIG1hbGxv YyB3aXRoIHdvcnN0IGNhc2UgcGFkZGluZyB0byBoaXQgYWxpZ25tZW50LiAqLwotLQotLSAgICAg IG0gPSAoY2hhciAqKSAoX2ludF9tYWxsb2MgKGF2LCBuYiArIGFsaWdubWVudCArIE1JTlNJWkUp KTsKLS0KLS0gICAgICBpZiAobSA9PSAwKQotLQlyZXR1cm4gMDsgICAgICAgICAgIC8qIHByb3Bh Z2F0ZSBmYWlsdXJlICovCi0tCi0tICAgICAgcCA9IG1lbTJjaHVuayAobSk7Ci0tICAgIH0KLSsg IHAgPSBtZW0yY2h1bmsgKG0pOwotIAotICAgaWYgKCgoKHVuc2lnbmVkIGxvbmcpIChtKSkgJSBh bGlnbm1lbnQpICE9IDApICAgLyogbWlzYWxpZ25lZCAqLwotICAgICB7Ci1kaWZmIC0tZ2l0IGEv bWFsbG9jL3RzdC1tZW1hbGlnbi0yLmMgYi9tYWxsb2MvdHN0LW1lbWFsaWduLTIuYwotaW5kZXgg ZjIyOTI4M2RiZi4uZWNkNmZhMjQ5ZSAxMDA2NDQKLS0tLSBhL21hbGxvYy90c3QtbWVtYWxpZ24t Mi5jCi0rKysgYi9tYWxsb2MvdHN0LW1lbWFsaWduLTIuYwotQEAgLTg2LDcgKzg2LDggQEAgZG9f dGVzdCAodm9pZCkKLSAgICAgICBURVNUX1ZFUklGWSAodGNhY2hlX2FsbG9jc1tpXS5wdHIxID09 IHRjYWNoZV9hbGxvY3NbaV0ucHRyMik7Ci0gICAgIH0KLSAKLS0gIC8qIFRlc3QgZm9yIG5vbi1o ZWFkIHRjYWNoZSBoaXRzLiAgKi8KLSsgIC8qIFRlc3QgZm9yIG5vbi1oZWFkIHRjYWNoZSBoaXRz LiAgVGhpcyBleGVyY2lzZXMgdGhlIG1lbWFsaWduCi0rICAgICBzY2FubmluZyBjb2RlIHRvIGZp bmQgbWF0Y2hpbmcgYWxsb2NhdGlvbnMuICAqLwotICAgZm9yIChpID0gMDsgaSA8IGFycmF5X2xl bmd0aCAocHRyKTsgKysgaSkKLSAgICAgewotICAgICAgIGlmIChpID09IDQpCi1AQCAtMTEzLDcg KzExNCw5IEBAIGRvX3Rlc3QgKHZvaWQpCi0gICBmcmVlIChwKTsKLSAgIFRFU1RfVkVSSUZZIChj b3VudCA+IDApOwotIAotLSAgLyogTGFyZ2UgYmlucyB0ZXN0LiAgKi8KLSsgIC8qIExhcmdlIGJp bnMgdGVzdC4gIFRoaXMgdmVyaWZpZXMgdGhhdCB0aGUgb3Zlci1hbGxvY2F0ZWQgcGFydHMKLSsg ICAgIHRoYXQgbWVtYWxpZ24gcmVsZWFzZXMgZm9yIGZ1dHVyZSBhbGxvY2F0aW9ucyBjYW4gYmUg cmV1c2VkIGJ5Ci0rICAgICBtZW1hbGlnbiBpdHNlbGYgYXQgbGVhc3QgaW4gc29tZSBjYXNlcy4g ICovCi0gCi0gICBmb3IgKGkgPSAwOyBpIDwgTE47ICsrIGkpCi0gICAgIHsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy8zMTJlMTU5NjI2YjY3ZmUxMWYzOWU4M2UyMjJjZjQzNDhh Mzk2MmYzLnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzLzMxMmUxNTk2MjZiNjdmZTExZjM5 ZTgzZTIyMmNmNDM0OGEzOTYyZjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwMDAuLjkzMGQxZmQ5NzAyYzA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9n bGliYy9wYXRjaGVzLzMxMmUxNTk2MjZiNjdmZTExZjM5ZTgzZTIyMmNmNDM0OGEzOTYyZjMucGF0 Y2gKQEAgLTAsMCArMSw4MCBAQAorRnJvbSAzMTJlMTU5NjI2YjY3ZmUxMWYzOWU4M2UyMjJjZjQz NDhhMzk2MmYzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWRoZW1lcnZhbCBaYW5l bGxhIDxhZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz4KK0RhdGU6IFRodSwgMSBGZWIgMjAy NCAxNDoyOTo1MyAtMDMwMAorU3ViamVjdDogW1BBVENIXSBtaXBzOiBGSXggY2xvbmUzIGltcGxl bWVudGF0aW9uIChCWiAzMTMyNSkKKworRm9yIG8zMiB3ZSBuZWVkIHRvIHNldHVwIGEgbWluaW1h bCBzdGFjayBmcmFtZSB0byBhbGxvdyBjcHJlc3RvcmUKK29uIF9fdGhyZWFkX3N0YXJ0X2Nsb25l MyAod2hpY2ggaW5zdHJ1Y3QgdGhlIGxpbmtlciB0byBzYXZlIHRoZQorZ3AgZm9yIFBJQykuICBB bHNvLCB0aGVyZSBpcyBubyBndWFyYW50ZWUgYnkga0FCSSB0aGF0ICQ4IHdpbGwgYmUKK3ByZXNl cnZlZCBhZnRlciBzeXNjYWxsIGV4ZWN1dGlvbiwgc28gd2UgbmVlZCB0byBzYXZlIGl0IG9uIHRo ZQorcHJvdmlkZWQgc3RhY2suCisKK0NoZWNrZWQgb24gbWlwc2VsLWxpbnV4LWdudS4KKworUmVw b3J0ZWQtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitUZXN0ZWQtYnk6IEtoZW0g UmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiYmQy NDhhYzBkNzVlZmRlZjhmZTYxZWE2OWIxZmIyNWZiOTViNmU3KQorLS0tCisgc3lzZGVwcy91bml4 L3N5c3YvbGludXgvbWlwcy9jbG9uZTMuUyB8IDMyICsrKysrKysrKysrKysrKysrKysrKystLS0t LQorIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9jbG9uZTMuUyBiL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L21pcHMvY2xvbmUzLlMKK2luZGV4IGU5ZmVjMmZhNDcuLjQ4MWI4 YWU5NjMgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL2Nsb25lMy5T CisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL2Nsb25lMy5TCitAQCAtMzcsMTEg KzM3LDYgQEAKKyAKKyAJLnRleHQKKyAJLnNldAkJbm9taXBzMTYKKy0jaWYgX01JUFNfU0lNID09 IF9BQklPMzIKKy0jIGRlZmluZSBFWFRSQV9MT0NBTFMgMQorLSNlbHNlCistIyBkZWZpbmUgRVhU UkFfTE9DQUxTIDAKKy0jZW5kaWYKKyAjZGVmaW5lIEZSQU1FU1ogKChOQVJHU0FWRSpTWlJFRykr QUxTWikmQUxNQVNLCisgR1BPRkY9IEZSQU1FU1otKDEqU1pSRUcpCisgTkVTVEVEKF9fY2xvbmUz LCBTWlJFRywgc3ApCitAQCAtNjgsOCArNjMsMzEgQEAgTkVTVEVEKF9fY2xvbmUzLCBTWlJFRywg c3ApCisgCWJlcXoJYTAsIEwoZXJyb3IpCS8qIE5vIE5VTEwgY2xfYXJncyBwb2ludGVyLiAgKi8K KyAJYmVxeglhMiwgTChlcnJvcikJLyogTm8gTlVMTCBmdW5jdGlvbiBwb2ludGVyLiAgKi8KKyAK KysjaWYgX01JUFNfU0lNID09IF9BQklPMzIKKysJLyogQm90aCBzdGFjayBhbmQgc3RhY2tfc2l6 ZSBvbiBjbG9uZV9hcmdzIGFyZSBkZWZpbmVkIGFzIHVpbnQ2NF90LCBhbmQKKysJICAgdGhlcmUg aXMgbm8gbmVlZCB0byBoYW5kbGUgdmFsdWVzIGxhcmdlciB0aGFuIHRvIDMyIGJpdHMgZm9yIG8z Mi4gICovCisrIyBpZiBfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOCisrIyAgZGVmaW5lIENM X1NUQUNLUE9JTlRFUl9PRkZTRVQgIDQ0CisrIyAgZGVmaW5lIENMX1NUQUNLU0laRV9PRkZTRVQg ICAgIDUyCisrIyBlbHNlCisrIyAgZGVmaW5lIENMX1NUQUNLUE9JTlRFUl9PRkZTRVQgIDQwCisr IyAgZGVmaW5lIENMX1NUQUNLU0laRV9PRkZTRVQgICAgIDQ4CisrIyBlbmRpZgorKworKwkvKiBG b3IgbzMyIHdlIG5lZWQgdG8gc2V0dXAgYSBtaW5pbWFsIHN0YWNrIGZyYW1lIHRvIGFsbG93IGNw cmVzdG9yZQorKwkgICBvbiBfX3RocmVhZF9zdGFydF9jbG9uZTMuICBBbHNvIHRoZXJlIGlzIG5v IGd1YXJhbnRlZSBieSBrQUJJIHRoYXQKKysJICAgJDggd2lsbCBiZSBwcmVzZXJ2ZWQgYWZ0ZXIg c3lzY2FsbCBleGVjdXRpb24gKHNvIHdlIG5lZWQgdG8gc2F2ZSBpdAorKwkgICBvbiB0aGUgcHJv dmlkZWQgc3RhY2spLiAgKi8KKysJbHcJdDAsIENMX1NUQUNLUE9JTlRFUl9PRkZTRVQoYTApCS8q IExvYWQgdGhlIHN0YWNrIHBvaW50ZXIuICAqLworKwlsdwl0MSwgQ0xfU1RBQ0tTSVpFX09GRlNF VChhMCkJLyogTG9hZCB0aGUgc3RhY2tfc2l6ZS4gICovCisrCWFkZGl1CXQxLCAtMzIJCQkJLyog VXBkYXRlIHRoZSBzdGFjayBzaXplLiAgKi8KKysJYWRkdQl0MiwgdDEsIHQwCQkJLyogQ2FsY3Vs YXRlIHRoZSB0aHJlYWQgc3RhY2suICAqLworKwlzdwlhMywgMCh0MikJCQkvKiBTYXZlIGFyZ3Vt ZW50IHBvaW50ZXIuICAqLworKwlzdwl0MSwgQ0xfU1RBQ0tTSVpFX09GRlNFVChhMCkJLyogU2F2 ZSB0aGUgbmV3IHN0YWNrIHNpemUuICAqLworKyNlbHNlCisgCW1vdmUJJDgsIGEzCQkvKiBhMyBp cyBzZXQgdG8gMC8xIGZvciBzeXNjYWxsIHN1Y2Nlc3MvZXJyb3IKKyAJCQkJICAgd2hpbGUgYTQv JDggaXMgcmV0dXJuZWQgdW5tb2RpZmllZC4gICovCisrI2VuZGlmCisgCisgCS8qIERvIHRoZSBz eXN0ZW0gY2FsbCwgdGhlIGtlcm5lbCBleHBlY3RzOgorIAkgICB2MDogc3lzdGVtIGNhbGwgbnVt YmVyCitAQCAtMTI1LDcgKzE0MywxMSBAQCBMKHRocmVhZF9zdGFydF9jbG9uZTMpOgorIAorIAkv KiBSZXN0b3JlIHRoZSBhcmcgZm9yIHVzZXIncyBmdW5jdGlvbi4gICovCisgCW1vdmUJCXQ5LCBh MgkJLyogRnVuY3Rpb24gcG9pbnRlci4gICovCisrI2lmIF9NSVBTX1NJTSA9PSBfQUJJTzMyCisr CVBUUl9MCQlhMCwgMChzcCkKKysjZWxzZQorIAltb3ZlCQlhMCwgJDgJCS8qIEFyZ3VtZW50IHBv aW50ZXIuICAqLworKyNlbmRpZgorIAorIAkvKiBDYWxsIHRoZSB1c2VyJ3MgZnVuY3Rpb24uICAq LworIAlqYWwJCXQ5CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvNjMyOTVlNGZk YTFmNmRhYjRiZjc0NDI3MDZmZTMwM2JmMjgzMDM2Yy5wYXRjaCBiL3NyY3BrZ3MvZ2xpYmMvcGF0 Y2hlcy82MzI5NWU0ZmRhMWY2ZGFiNGJmNzQ0MjcwNmZlMzAzYmYyODMwMzZjLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi5jOTI0ODViYTRkNTQzMQotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy82MzI5NWU0ZmRhMWY2ZGFiNGJm NzQ0MjcwNmZlMzAzYmYyODMwMzZjLnBhdGNoCkBAIC0wLDAgKzEsMzcgQEAKK0Zyb20gNjMyOTVl NGZkYTFmNmRhYjRiZjc0NDI3MDZmZTMwM2JmMjgzMDM2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IEFkaGVtZXJ2YWwgWmFuZWxsYSA8YWRoZW1lcnZhbC56YW5lbGxhQGxpbmFyby5v cmc+CitEYXRlOiBNb24sIDUgRmViIDIwMjQgMTY6MTA6MjQgKzAwMDAKK1N1YmplY3Q6IFtQQVRD SF0gYXJtOiBSZW1vdmUgd3JvbmcgbGRyIGZyb20gX2RsX3N0YXJ0X3VzZXIgKEJaIDMxMzM5KQor CitUaGUgY29tbWl0IDQ5ZDg3N2E4MGIyOWQzMDAyODg3YjA4NGVlYzY2NzZkOWY1ZmVjMTggKGFy bTogUmVtb3ZlCitfZGxfc2tpcF9hcmdzIHVzYWdlKSByZW1vdmVkIHRoZSBfU0tJUF9BUkdTIGxp dGVyYWwsIHdoaWNoIHdhcworcHJldmlvdXNseSBsb2FkZXIgdG8gcjQgb24gbG9hZGVyIF9zdGFy dC4gIEhvd2V2ZXIsIHRoZSBjbGVhbnVwIGRpZCBub3QKK3JlbW92ZSB0aGUgZm9sbG93aW5nICds ZHIgcjQsIFtzbCwgcjRdJyBvbiBfZGxfc3RhcnRfdXNlciwgdXNlZCB0byBjaGVjawordG8gc2tp cCB0aGUgYXJndW1lbnRzIGFmdGVyIGxkIHNlbGYtcmVsb2NhdGlvbnMuCisKK0luIG15IHRlc3Rp bmcsIHRoZSBrZXJuZWwgaW5pdGlhbGx5IHNldCByNCB0byAwLCB3aGljaCBtYWtlcyB0aGUKK2xk ciBpbnN0cnVjdGlvbiBqdXN0IHJlYWQgdGhlIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXy4gIEhvd2V2 ZXIsIHNpbmNlIHI0CitpcyBhIGNhbGxlZS1zYXZlZCByZWdpc3RlcjsgYSBkaWZmZXJlbnQgcnVu dGltZSBtaWdodCBub3QgemVybworaW5pdGlhbGl6ZSBpdCBhbmQgdGh1cyB0cmlnZ2VyIGFuIGlu dmFsaWQgbWVtb3J5IGFjY2Vzcy4KKworQ2hlY2tlZCBvbiBhcm0tbGludXgtZ251LgorCitSZXBv cnRlZC1ieTogQWRyaWFuIFJhdGl1IDxhZHJpYW4ucmF0aXVAY29sbGFib3JhLmNvbT4KK1Jldmll d2VkLWJ5OiBTemFib2xjcyBOYWd5IDxzemFib2xjcy5uYWd5QGFybS5jb20+CisoY2hlcnJ5IHBp Y2tlZCBmcm9tIGNvbW1pdCAxZTI1MTEyZGMwY2IyNTE1ZDI3ZDhkMTc4YjFlY2NlNzc4YTlkMzdh KQorLS0tCisgc3lzZGVwcy9hcm0vZGwtbWFjaGluZS5oIHwgMSAtCisgMSBmaWxlIGNoYW5nZWQs IDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3N5c2RlcHMvYXJtL2RsLW1hY2hpbmUuaCBi L3N5c2RlcHMvYXJtL2RsLW1hY2hpbmUuaAoraW5kZXggYjg1N2JiYzg2OC4uZGQxYTBmNmI2ZSAx MDA2NDQKKy0tLSBhL3N5c2RlcHMvYXJtL2RsLW1hY2hpbmUuaAorKysrIGIvc3lzZGVwcy9hcm0v ZGwtbWFjaGluZS5oCitAQCAtMTM5LDcgKzEzOSw2IEBAIF9zdGFydDpcblwKKyBfZGxfc3RhcnRf dXNlcjpcblwKKyAJYWRyCXI2LCAuTF9HRVRfR09UXG5cCisgCWFkZAlzbCwgc2wsIHI2XG5cCist CWxkcglyNCwgW3NsLCByNF1cblwKKyAJQCBzYXZlIHRoZSBlbnRyeSBwb2ludCBpbiBhbm90aGVy IHJlZ2lzdGVyXG5cCisgCW1vdglyNiwgcjBcblwKKyAJQCBnZXQgdGhlIG9yaWdpbmFsIGFyZyBj b3VudFxuXApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliYy9wYXRjaGVzL0NWRS0yMDIzLTYyNDYu cGF0Y2ggYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvQ1ZFLTIwMjMtNjI0Ni5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmIyNDc5ZTIyMTdmMWUuLjAwMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9DVkUtMjAyMy02MjQ2LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTc4ICswLDAgQEAKLUZyb20gMjM1MTRjNzJiNzgwZjNkYTA5N2VjZjMzYTc5M2I3 YmE5YzIwNzBkMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyanVuIFNoYW5rYXIg PGFyanVuQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDE1IEphbiAyMDI0IDE3OjQ0OjQzICswMTAw Ci1TdWJqZWN0OiBbUEFUQ0hdIHN5c2xvZzogRml4IGhlYXAgYnVmZmVyIG92ZXJmbG93IGluIF9f dnN5c2xvZ19pbnRlcm5hbAotIChDVkUtMjAyMy02MjQ2KQotCi1fX3ZzeXNsb2dfaW50ZXJuYWwg ZGlkIG5vdCBoYW5kbGUgYSBjYXNlIHdoZXJlIHByaW50aW5nIGEgU1lTTE9HX0hFQURFUgotY29u dGFpbmluZyBhIGxvbmcgcHJvZ3JhbSBuYW1lIGZhaWxlZCB0byB1cGRhdGUgdGhlIHJlcXVpcmVk IGJ1ZmZlcgotc2l6ZSwgbGVhZGluZyB0byB0aGUgYWxsb2NhdGlvbiBhbmQgb3ZlcmZsb3cgb2Yg YSB0b28tc21hbGwgYnVmZmVyIG9uCi10aGUgaGVhcC4gIFRoaXMgY29tbWl0IGZpeGVzIHRoYXQu ICBJdCBhbHNvIGFkZHMgYSBuZXcgcmVncmVzc2lvbiB0ZXN0Ci10aGF0IHVzZXMgZ2xpYmMubWFs bG9jLmNoZWNrLgotCi1SZXZpZXdlZC1ieTogQWRoZW1lcnZhbCBaYW5lbGxhICA8YWRoZW1lcnZh bC56YW5lbGxhQGxpbmFyby5vcmc+Ci1SZXZpZXdlZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJs b3NAcmVkaGF0LmNvbT4KLVRlc3RlZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0 LmNvbT4KLShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDZiZDBlNGVmY2M3OGYzYzAxMTVlNWVh OTczOWExNjQyODA3NDUwZGEpCi0tLS0KLSBtaXNjL01ha2VmaWxlICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgOCArKy0KLSBtaXNjL3N5c2xvZy5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCA1MCArKysrKysrKysrKysrLS0tLS0tCi0gbWlzYy90c3Qtc3lzbG9n LWxvbmctcHJvZ25hbWUuYyAgICAgICAgICAgICAgIHwgMzkgKysrKysrKysrKysrKysrCi0gLi4u L3Bvc3RjbGVhbi5yZXEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDAKLSA0IGZpbGVz IGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2Rl IDEwMDY0NCBtaXNjL3RzdC1zeXNsb2ctbG9uZy1wcm9nbmFtZS5jCi0gY3JlYXRlIG1vZGUgMTAw NjQ0IG1pc2MvdHN0LXN5c2xvZy1sb25nLXByb2duYW1lLnJvb3QvcG9zdGNsZWFuLnJlcQotCi1k aWZmIC0tZ2l0IGEvbWlzYy9NYWtlZmlsZSBiL21pc2MvTWFrZWZpbGUKLWluZGV4IGZlMGQ0OWMx ZGU1Li45MGIzMTk1MmM1OSAxMDA2NDQKLS0tLSBhL21pc2MvTWFrZWZpbGUKLSsrKyBiL21pc2Mv TWFrZWZpbGUKLUBAIC0yODksNyArMjg5LDEwIEBAIHRlc3RzLXNwZWNpYWwgKz0gJChvYmpwZngp dHN0LWVycm9yMS1tZW0ub3V0IFwKLSAgICQob2JqcGZ4KXRzdC1hbGxvY2F0ZV9vbmNlLW1lbS5v dXQKLSBlbmRpZgotIAotLXRlc3RzLWNvbnRhaW5lciA6PSB0c3Qtc3lzbG9nCi0rdGVzdHMtY29u dGFpbmVyIDo9IFwKLSsgIHRzdC1zeXNsb2cgXAotKyAgdHN0LXN5c2xvZy1sb25nLXByb2duYW1l IFwKLSsgICMgdGVzdHMtY29udGFpbmVyCi0gCi0gQ0ZMQUdTLXNlbGVjdC5jICs9IC1mZXhjZXB0 aW9ucyAtZmFzeW5jaHJvbm91cy11bndpbmQtdGFibGVzCi0gQ0ZMQUdTLXRzZWFyY2guYyArPSAk KHVzZXMtY2FsbGJhY2tzKQotQEAgLTM1MSw2ICszNTQsOSBAQCAkKG9ianBmeCl0c3QtYWxsb2Nh dGVfb25jZS1tZW0ub3V0OiAkKG9ianBmeCl0c3QtYWxsb2NhdGVfb25jZS5vdXQKLSAJJChjb21t b24tb2JqcGZ4KW1hbGxvYy9tdHJhY2UgJChvYmpwZngpdHN0LWFsbG9jYXRlX29uY2UubXRyYWNl ID4gJEA7IFwKLSAJJChldmFsdWF0ZS10ZXN0KQotIAotK3RzdC1zeXNsb2ctbG9uZy1wcm9nbmFt ZS1FTlYgPSBHTElCQ19UVU5BQkxFUz1nbGliYy5tYWxsb2MuY2hlY2s9MyBcCi0rCQkJICAgICAg IExEX1BSRUxPQUQ9bGliY19tYWxsb2NfZGVidWcuc28uMAotKwotICQob2JqcGZ4KXRzdC1zZWxl Y3Q6ICQobGlicnQpCi0gJChvYmpwZngpdHN0LXNlbGVjdC10aW1lNjQ6ICQobGlicnQpCi0gJChv YmpwZngpdHN0LXBzZWxlY3Q6ICQobGlicnQpCi1kaWZmIC0tZ2l0IGEvbWlzYy9zeXNsb2cuYyBi L21pc2Mvc3lzbG9nLmMKLWluZGV4IDFiOGNiNzIyYzUxLi44MTRkMjI0YTFlOSAxMDA2NDQKLS0t LSBhL21pc2Mvc3lzbG9nLmMKLSsrKyBiL21pc2Mvc3lzbG9nLmMKLUBAIC0xMjQsOCArMTI0LDkg QEAgX192c3lzbG9nX2ludGVybmFsIChpbnQgcHJpLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3Qg YXAsCi0gewotICAgLyogVHJ5IHRvIHVzZSBhIHN0YXRpYyBidWZmZXIgYXMgYW4gb3B0aW1pemF0 aW9uLiAgKi8KLSAgIGNoYXIgYnVmc1sxMDI0XTsKLS0gIGNoYXIgKmJ1ZiA9IE5VTEw7Ci0tICBz aXplX3QgYnVmc2l6ZSA9IDA7Ci0rICBjaGFyICpidWYgPSBidWZzOwotKyAgc2l6ZV90IGJ1ZnNp emU7Ci0rCi0gICBpbnQgbXNnb2ZmOwotICAgaW50IHNhdmVkX2Vycm5vID0gZXJybm87Ci0gCi1A QCAtMTc3LDI5ICsxNzgsNTAgQEAgX192c3lzbG9nX2ludGVybmFsIChpbnQgcHJpLCBjb25zdCBj aGFyICpmbXQsIHZhX2xpc3QgYXAsCi0gI2RlZmluZSBTWVNMT0dfSEVBREVSX1dJVEhPVVRfVFMo X19wcmksIF9fbXNnb2ZmKSAgICAgICAgXAotICAgIjwlZD46ICVuIiwgX19wcmksIF9fbXNnb2Zm Ci0gCi0tICBpbnQgbDsKLSsgIGludCBsLCB2bDsKLSAgIGlmIChoYXNfdHMpCi0gICAgIGwgPSBf X3NucHJpbnRmIChidWZzLCBzaXplb2YgYnVmcywKLSAJCSAgICBTWVNMT0dfSEVBREVSIChwcmks IHRpbWVzdGFtcCwgJm1zZ29mZiwgcGlkKSk7Ci0gICBlbHNlCi0gICAgIGwgPSBfX3NucHJpbnRm IChidWZzLCBzaXplb2YgYnVmcywKLSAJCSAgICBTWVNMT0dfSEVBREVSX1dJVEhPVVRfVFMgKHBy aSwgJm1zZ29mZikpOwotKwotKyAgY2hhciAqcG9zOwotKyAgc2l6ZV90IGxlbjsKLSsKLSAgIGlm ICgwIDw9IGwgJiYgbCA8IHNpemVvZiBidWZzKQotICAgICB7Ci0tICAgICAgdmFfbGlzdCBhcGM7 Ci0tICAgICAgdmFfY29weSAoYXBjLCBhcCk7Ci0rICAgICAgLyogQXQgdGhpcyBwb2ludCwgdGhl cmUgaXMgc3RpbGwgYSBjaGFuY2UgdGhhdCB3ZSBjYW4gcHJpbnQgdGhlCi0rICAgICAgICAgcmVt YWluaW5nIHBhcnQgb2YgdGhlIGxvZyBpbnRvIGJ1ZnMgYW5kIHVzZSB0aGF0LiAgKi8KLSsgICAg ICBwb3MgPSBidWZzICsgbDsKLSsgICAgICBsZW4gPSBzaXplb2YgKGJ1ZnMpIC0gbDsKLSsgICAg fQotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgYnVmID0gTlVMTDsKLSsgICAgICAvKiBXZSBhbHJl YWR5IGtub3cgdGhhdCBidWZzIGlzIHRvbyBzbWFsbCB0byB1c2UgZm9yIHRoaXMgbG9nIG1lc3Nh Z2UuCi0rICAgICAgICAgVGhlIG5leHQgdnNucHJpbnRmIGludG8gYnVmcyBpcyB1c2VkIG9ubHkg dG8gY2FsY3VsYXRlIHRoZSB0b3RhbAotKyAgICAgICAgIHJlcXVpcmVkIGJ1ZmZlciBsZW5ndGgu ICBXZSB3aWxsIGRpc2NhcmQgYnVmcyBjb250ZW50cyBhbmQgYWxsb2NhdGUKLSsgICAgICAgICBh biBhcHByb3ByaWF0ZWx5IHNpemVkIGJ1ZmZlciBsYXRlciBpbnN0ZWFkLiAgKi8KLSsgICAgICBw b3MgPSBidWZzOwotKyAgICAgIGxlbiA9IHNpemVvZiAoYnVmcyk7Ci0rICAgIH0KLSAKLS0gICAg ICAvKiBSZXN0b3JlIGVycm5vIGZvciAlbSBmb3JtYXQuICAqLwotLSAgICAgIF9fc2V0X2Vycm5v IChzYXZlZF9lcnJubyk7Ci0rICB7Ci0rICAgIHZhX2xpc3QgYXBjOwotKyAgICB2YV9jb3B5IChh cGMsIGFwKTsKLSAKLS0gICAgICBpbnQgdmwgPSBfX3ZzbnByaW50Zl9pbnRlcm5hbCAoYnVmcyAr IGwsIHNpemVvZiBidWZzIC0gbCwgZm10LCBhcGMsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1vZGVfZmxhZ3MpOwotLSAgICAgIGlmICgwIDw9IHZsICYmIHZsIDwgc2l6 ZW9mIGJ1ZnMgLSBsKQotLSAgICAgICAgYnVmID0gYnVmczsKLS0gICAgICBidWZzaXplID0gbCAr IHZsOwotKyAgICAvKiBSZXN0b3JlIGVycm5vIGZvciAlbSBmb3JtYXQuICAqLwotKyAgICBfX3Nl dF9lcnJubyAoc2F2ZWRfZXJybm8pOwotIAotLSAgICAgIHZhX2VuZCAoYXBjKTsKLS0gICAgfQot KyAgICB2bCA9IF9fdnNucHJpbnRmX2ludGVybmFsIChwb3MsIGxlbiwgZm10LCBhcGMsIG1vZGVf ZmxhZ3MpOwotKwotKyAgICBpZiAoISgwIDw9IHZsICYmIHZsIDwgbGVuKSkKLSsgICAgICBidWYg PSBOVUxMOwotKwotKyAgICBidWZzaXplID0gbCArIHZsOwotKyAgICB2YV9lbmQgKGFwYyk7Ci0r ICB9Ci0gCi0gICBpZiAoYnVmID09IE5VTEwpCi0gICAgIHsKLWRpZmYgLS1naXQgYS9taXNjL3Rz dC1zeXNsb2ctbG9uZy1wcm9nbmFtZS5jIGIvbWlzYy90c3Qtc3lzbG9nLWxvbmctcHJvZ25hbWUu YwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMDAwLi44OGYzN2E4YTAwNAot LS0tIC9kZXYvbnVsbAotKysrIGIvbWlzYy90c3Qtc3lzbG9nLWxvbmctcHJvZ25hbWUuYwotQEAg LTAsMCArMSwzOSBAQAotKy8qIFRlc3QgaGVhcCBidWZmZXIgb3ZlcmZsb3cgaW4gc3lzbG9nIHdp dGggbG9uZyBfX3Byb2duYW1lIChDVkUtMjAyMy02MjQ2KQotKyAgIENvcHlyaWdodCAoQykgMjAy MyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsgICBUaGlzIGZpbGUgaXMgcGFydCBv ZiB0aGUgR05VIEMgTGlicmFyeS4KLSsKLSsgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSsgICBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rICAgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0r ICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCi0rCi0rICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V Ci0rICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsK LSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCi0rICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBp ZiBub3QsIHNlZQotKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwot KyNpbmNsdWRlIDxzeXNsb2cuaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rCi0rZXh0ZXJuIGNo YXIgKiBfX3Byb2duYW1lOwotKwotK3N0YXRpYyBpbnQKLStkb190ZXN0ICh2b2lkKQotK3sKLSsg IGNoYXIgbG9uZ19wcm9nbmFtZVsyMDQ4XTsKLSsKLSsgIG1lbXNldCAobG9uZ19wcm9nbmFtZSwg J1gnLCBzaXplb2YgKGxvbmdfcHJvZ25hbWUpIC0gMSk7Ci0rICBsb25nX3Byb2duYW1lW3NpemVv ZiAobG9uZ19wcm9nbmFtZSkgLSAxXSA9ICdcMCc7Ci0rCi0rICBfX3Byb2duYW1lID0gbG9uZ19w cm9nbmFtZTsKLSsKLSsgIHN5c2xvZyAoTE9HX0lORk8sICJIZWxsbywgV29ybGQhIik7Ci0rCi0r ICByZXR1cm4gMDsKLSt9Ci0rCi0rI2luY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4KLWRp ZmYgLS1naXQgYS9taXNjL3RzdC1zeXNsb2ctbG9uZy1wcm9nbmFtZS5yb290L3Bvc3RjbGVhbi5y ZXEgYi9taXNjL3RzdC1zeXNsb2ctbG9uZy1wcm9nbmFtZS5yb290L3Bvc3RjbGVhbi5yZXEKLW5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9DVkUtMjAyMy02Nzc5LnBhdGNoIGIvc3JjcGtn cy9nbGliYy9wYXRjaGVzL0NWRS0yMDIzLTY3NzkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDVhY2M5ZTM3NTEwMzJhLi4wMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ds aWJjL3BhdGNoZXMvQ1ZFLTIwMjMtNjc3OS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyAr MCwwIEBACi1Gcm9tIGQwMzM4MzEyYWFjZTViYmZlZjg1ZTAzMDU1ZTEyMTJkZDBlNDk1NzggTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmp1biBTaGFua2FyIDxhcmp1bkByZWRoYXQu Y29tPgotRGF0ZTogTW9uLCAxNSBKYW4gMjAyNCAxNzo0NDo0NCArMDEwMAotU3ViamVjdDogW1BB VENIXSBzeXNsb2c6IEZpeCBoZWFwIGJ1ZmZlciBvdmVyZmxvdyBpbiBfX3ZzeXNsb2dfaW50ZXJu YWwKLSAoQ1ZFLTIwMjMtNjc3OSkKLQotX192c3lzbG9nX2ludGVybmFsIHVzZWQgdGhlIHJldHVy biB2YWx1ZSBvZiBzbnByaW50Zi92c25wcmludGYgdG8KLWNhbGN1bGF0ZSBidWZmZXIgc2l6ZXMg Zm9yIG1lbW9yeSBhbGxvY2F0aW9uLiAgSWYgdGhlc2UgZnVuY3Rpb25zIChmb3IKLWFueSByZWFz b24pIGZhaWxlZCBhbmQgcmV0dXJuZWQgLTEsIHRoZSByZXN1bHRpbmcgYnVmZmVyIHdvdWxkIGJl IHRvbwotc21hbGwgdG8gaG9sZCBvdXRwdXQuICBUaGlzIGNvbW1pdCBmaXhlcyB0aGF0LgotCi1B bGwgc25wcmludGYvdnNucHJpbnRmIGNhbGxzIGFyZSBjaGVja2VkIGZvciBuZWdhdGl2ZSByZXR1 cm4gdmFsdWVzIGFuZAotdGhlIGZ1bmN0aW9uIHNpbGVudGx5IHJldHVybnMgdXBvbiBlbmNvdW50 ZXJpbmcgdGhlbS4KLQotUmV2aWV3ZWQtYnk6IENhcmxvcyBPJ0RvbmVsbCA8Y2FybG9zQHJlZGhh dC5jb20+Ci0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA3ZTVhMGMyODZkYTMzMTU5ZDQ3ZDAx MjIwMDdhYWMwMTZmM2UwMmNkKQotLS0tCi0gbWlzYy9zeXNsb2cuYyB8IDM5ICsrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRp b25zKCspLCAxMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL21pc2Mvc3lzbG9nLmMgYi9t aXNjL3N5c2xvZy5jCi1pbmRleCA4MTRkMjI0YTFlLi41MzQ0MGU0N2FkIDEwMDY0NAotLS0tIGEv bWlzYy9zeXNsb2cuYwotKysrIGIvbWlzYy9zeXNsb2cuYwotQEAgLTE4NSwxMSArMTg1LDEzIEBA IF9fdnN5c2xvZ19pbnRlcm5hbCAoaW50IHByaSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFw LAotICAgZWxzZQotICAgICBsID0gX19zbnByaW50ZiAoYnVmcywgc2l6ZW9mIGJ1ZnMsCi0gCQkg ICAgU1lTTE9HX0hFQURFUl9XSVRIT1VUX1RTIChwcmksICZtc2dvZmYpKTsKLSsgIGlmIChsIDwg MCkKLSsgICAgZ290byBvdXQ7Ci0gCi0gICBjaGFyICpwb3M7Ci0gICBzaXplX3QgbGVuOwotIAot LSAgaWYgKDAgPD0gbCAmJiBsIDwgc2l6ZW9mIGJ1ZnMpCi0rICBpZiAobCA8IHNpemVvZiBidWZz KQotICAgICB7Ci0gICAgICAgLyogQXQgdGhpcyBwb2ludCwgdGhlcmUgaXMgc3RpbGwgYSBjaGFu Y2UgdGhhdCB3ZSBjYW4gcHJpbnQgdGhlCi0gICAgICAgICAgcmVtYWluaW5nIHBhcnQgb2YgdGhl IGxvZyBpbnRvIGJ1ZnMgYW5kIHVzZSB0aGF0LiAgKi8KLUBAIC0yMTUsMTIgKzIxNywxNSBAQCBf X3ZzeXNsb2dfaW50ZXJuYWwgKGludCBwcmksIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCwK LSAgICAgX19zZXRfZXJybm8gKHNhdmVkX2Vycm5vKTsKLSAKLSAgICAgdmwgPSBfX3ZzbnByaW50 Zl9pbnRlcm5hbCAocG9zLCBsZW4sIGZtdCwgYXBjLCBtb2RlX2ZsYWdzKTsKLSsgICAgdmFfZW5k IChhcGMpOwotKwotKyAgICBpZiAodmwgPCAwKQotKyAgICAgIGdvdG8gb3V0OwotIAotLSAgICBp ZiAoISgwIDw9IHZsICYmIHZsIDwgbGVuKSkKLSsgICAgaWYgKHZsID49IGxlbikKLSAgICAgICBi dWYgPSBOVUxMOwotIAotICAgICBidWZzaXplID0gbCArIHZsOwotLSAgICB2YV9lbmQgKGFwYyk7 Ci0gICB9Ci0gCi0gICBpZiAoYnVmID09IE5VTEwpCi1AQCAtMjMxLDI1ICsyMzYsMzcgQEAgX192 c3lzbG9nX2ludGVybmFsIChpbnQgcHJpLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXAsCi0g CSAgLyogVGVsbCB0aGUgY2FuY2VsbGF0aW9uIGhhbmRsZXIgdG8gZnJlZSB0aGlzIGJ1ZmZlci4g ICovCi0gCSAgY2xhcmcuYnVmID0gYnVmOwotIAotKwkgIGludCBjbDsKLSAJICBpZiAoaGFzX3Rz KQotLQkgICAgX19zbnByaW50ZiAoYnVmLCBsICsgMSwKLS0JCQlTWVNMT0dfSEVBREVSIChwcmks IHRpbWVzdGFtcCwgJm1zZ29mZiwgcGlkKSk7Ci0rCSAgICBjbCA9IF9fc25wcmludGYgKGJ1Ziwg bCArIDEsCi0rCQkJICAgICBTWVNMT0dfSEVBREVSIChwcmksIHRpbWVzdGFtcCwgJm1zZ29mZiwg cGlkKSk7Ci0gCSAgZWxzZQotLQkgICAgX19zbnByaW50ZiAoYnVmLCBsICsgMSwKLS0JCQlTWVNM T0dfSEVBREVSX1dJVEhPVVRfVFMgKHByaSwgJm1zZ29mZikpOwotKwkgICAgY2wgPSBfX3NucHJp bnRmIChidWYsIGwgKyAxLAotKwkJCSAgICAgU1lTTE9HX0hFQURFUl9XSVRIT1VUX1RTIChwcmks ICZtc2dvZmYpKTsKLSsJICBpZiAoY2wgIT0gbCkKLSsJICAgIGdvdG8gb3V0OwotIAotIAkgIHZh X2xpc3QgYXBjOwotIAkgIHZhX2NvcHkgKGFwYywgYXApOwotLQkgIF9fdnNucHJpbnRmX2ludGVy bmFsIChidWYgKyBsLCBidWZzaXplIC0gbCArIDEsIGZtdCwgYXBjLAotLQkJCQltb2RlX2ZsYWdz KTsKLSsJICBjbCA9IF9fdnNucHJpbnRmX2ludGVybmFsIChidWYgKyBsLCBidWZzaXplIC0gbCAr IDEsIGZtdCwgYXBjLAotKwkJCQkgICAgIG1vZGVfZmxhZ3MpOwotIAkgIHZhX2VuZCAoYXBjKTsK LSsKLSsJICBpZiAoY2wgIT0gdmwpCi0rCSAgICBnb3RvIG91dDsKLSAJfQotICAgICAgIGVsc2UK LSAgICAgICAgIHsKLSsgICAgICAgICAgaW50IGJsOwotIAkgIC8qIE5vdGhpbmcgbXVjaCB0byBk byBidXQgZW1pdCBhbiBlcnJvciBtZXNzYWdlLiAgKi8KLS0gICAgICAgICAgYnVmc2l6ZSA9IF9f c25wcmludGYgKGJ1ZnMsIHNpemVvZiBidWZzLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIm91dCBvZiBtZW1vcnlbJWRdIiwgX19nZXRwaWQgKCkpOwotKyAgICAgICAgICBibCA9 IF9fc25wcmludGYgKGJ1ZnMsIHNpemVvZiBidWZzLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICJvdXQgb2YgbWVtb3J5WyVkXSIsIF9fZ2V0cGlkICgpKTsKLSsgICAgICAgICAgaWYgKGJs IDwgMCB8fCBibCA+PSBzaXplb2YgYnVmcykKLSsgICAgICAgICAgICBnb3RvIG91dDsKLSsKLSsg ICAgICAgICAgYnVmc2l6ZSA9IGJsOwotICAgICAgICAgICBidWYgPSBidWZzOwotKyAgICAgICAg ICBtc2dvZmYgPSAwOwotICAgICAgICAgfQotICAgICB9Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dsaWJjL3BhdGNoZXMvQ1ZFLTIwMjMtNjc4MC5wYXRjaCBiL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hl cy9DVkUtMjAyMy02NzgwLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjY5 NGU1NTQ5OTAwNS4uMDAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbGliYy9wYXRjaGVzL0NW RS0yMDIzLTY3ODAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1Gcm9tIGQz N2MyYjIwYTQ3ODc0NjNkMTkyYjMyMDQxYzM0MDZjMmJkOTFkZTAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBBcmp1biBTaGFua2FyIDxhcmp1bkByZWRoYXQuY29tPgotRGF0ZTogTW9u LCAxNSBKYW4gMjAyNCAxNzo0NDo0NSArMDEwMAotU3ViamVjdDogW1BBVENIXSBzeXNsb2c6IEZp eCBpbnRlZ2VyIG92ZXJmbG93IGluIF9fdnN5c2xvZ19pbnRlcm5hbAotIChDVkUtMjAyMy02Nzgw KQotCi1fX3ZzeXNsb2dfaW50ZXJuYWwgY2FsY3VsYXRlZCBhIGJ1ZmZlciBzaXplIGJ5IGFkZGlu ZyB0d28gaW50ZWdlcnMsIGJ1dAotZGlkIG5vdCBmaXJzdCBjaGVjayBpZiB0aGUgYWRkaXRpb24g d291bGQgb3ZlcmZsb3cuICBUaGlzIGNvbW1pdCBmaXhlcwotdGhhdC4KLQotUmV2aWV3ZWQtYnk6 IENhcmxvcyBPJ0RvbmVsbCA8Y2FybG9zQHJlZGhhdC5jb20+Ci1UZXN0ZWQtYnk6IENhcmxvcyBP J0RvbmVsbCA8Y2FybG9zQHJlZGhhdC5jb20+Ci0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBk ZGY1NDJkYTk0Y2FmOTdmZjQzY2MyODc1Yzg4NzQ5ODgwYjcyNTliKQotLS0tCi0gbWlzYy9zeXNs b2cuYyB8IDMgKystCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQotCi1kaWZmIC0tZ2l0IGEvbWlzYy9zeXNsb2cuYyBiL21pc2Mvc3lzbG9nLmMKLWluZGV4 IDUzNDQwZTQ3YWQuLjRhZjg3ZjU0ZmQgMTAwNjQ0Ci0tLS0gYS9taXNjL3N5c2xvZy5jCi0rKysg Yi9taXNjL3N5c2xvZy5jCi1AQCAtNDEsNiArNDEsNyBAQCBzdGF0aWMgY2hhciBzY2NzaWRbXSA9 ICJAKCMpc3lzbG9nLmMJOC40IChCZXJrZWxleSkgMy8xOC85NCI7Ci0gI2luY2x1ZGUgPHN5cy91 aW8uaD4KLSAjaW5jbHVkZSA8c3lzL3VuLmg+Ci0gI2luY2x1ZGUgPHN5c2xvZy5oPgotKyNpbmNs dWRlIDxsaW1pdHMuaD4KLSAKLSBzdGF0aWMgaW50IExvZ1R5cGUgPSBTT0NLX0RHUkFNOwkvKiB0 eXBlIG9mIHNvY2tldCBjb25uZWN0aW9uICovCi0gc3RhdGljIGludCBMb2dGaWxlID0gLTE7CQkv KiBmZCBmb3IgbG9nICovCi1AQCAtMjE5LDcgKzIyMCw3IEBAIF9fdnN5c2xvZ19pbnRlcm5hbCAo aW50IHByaSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwLAotICAgICB2bCA9IF9fdnNucHJp bnRmX2ludGVybmFsIChwb3MsIGxlbiwgZm10LCBhcGMsIG1vZGVfZmxhZ3MpOwotICAgICB2YV9l bmQgKGFwYyk7Ci0gCi0tICAgIGlmICh2bCA8IDApCi0rICAgIGlmICh2bCA8IDAgfHwgdmwgPj0g SU5UX01BWCAtIGwpCi0gICAgICAgZ290byBvdXQ7Ci0gCi0gICAgIGlmICh2bCA+PSBsZW4pCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvYjI1NTA4ZGQ3NzRiNjE3Zjk5NDE5YmRj M2NmMmFjZTQ1NjBjZDJkNi5wYXRjaCBiL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9iMjU1MDhkZDc3 NGI2MTdmOTk0MTliZGMzY2YyYWNlNDU2MGNkMmQ2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMzlkN2U5ZjA0YmE1Zi4uMDAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9n bGliYy9wYXRjaGVzL2IyNTUwOGRkNzc0YjYxN2Y5OTQxOWJkYzNjZjJhY2U0NTYwY2QyZDYucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOTIgKzAsMCBAQAotRnJvbSBiMjU1MDhkZDc3NGI2MTdm OTk0MTliZGMzY2YyYWNlNDU2MGNkMmQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog RmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMTMgU2VwIDIw MjMgMTQ6MTA6NTYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gQ1ZFLTIwMjMtNDUyNzogU3RhY2sg cmVhZCBvdmVyZmxvdyB3aXRoIGxhcmdlIFRDUCByZXNwb25zZXMKLSBpbiBuby1hYWFhIG1vZGUK LQotV2l0aG91dCBwYXNzaW5nIGFsdF9kbnNfcGFja2V0X2J1ZmZlciwgX19yZXNfY29udGV4dF9z ZWFyY2ggY2FuIG9ubHkKLXN0b3JlIDIwNDggYnl0ZXMgKHdoYXQgZml0cyBpbnRvIGRuc19wYWNr ZXRfYnVmZmVyKS4gIEhvd2V2ZXIsCi10aGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgdG90YWwgcGFj a2V0IHNpemUsIGFuZCB0aGUgc3Vic2VxdWVudAotRE5TIHBhcnNpbmcgY29kZSBpbiBfbnNzX2Ru c19nZXRob3N0YnluYW1lNF9yIHJlYWRzIGJleW9uZCB0aGUgZW5kCi1vZiB0aGUgc3RhY2stYWxs b2NhdGVkIGJ1ZmZlci4KLQotRml4ZXMgY29tbWl0IGYyODJjZGJlN2Y0MzZjNzU4NjRlNTY0MGE0 ICgicmVzb2x2OiBJbXBsZW1lbnQgbm8tYWFhYQotc3R1YiByZXNvbHZlciBvcHRpb24iKSBhbmQg YnVnIDMwODQyLgotCi0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiZDc3ZGQ3ZTczZTM1MzAy MDNiZTFjNTJjOGEyOWQwODI3MGNiMjVkKQotLS0tCi0gTkVXUyAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDkgKysrCi0gcmVzb2x2L01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDIgKwot IHJlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgICAgIHwgICAyICstCi0gcmVzb2x2L3RzdC1yZXNv bHYtbm9hYWFhLXZjLmMgfCAxMjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwot IDQgZmlsZXMgY2hhbmdlZCwgMTQxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLSBjcmVh dGUgbW9kZSAxMDA2NDQgcmVzb2x2L3RzdC1yZXNvbHYtbm9hYWFhLXZjLmMKLQotZGlmZiAtLWdp dCBhL3Jlc29sdi9NYWtlZmlsZSBiL3Jlc29sdi9NYWtlZmlsZQotaW5kZXggMDU0YjFmYTM2Yy4u MmY5OWViMzg2MiAxMDA2NDQKLS0tLSBhL3Jlc29sdi9NYWtlZmlsZQotKysrIGIvcmVzb2x2L01h a2VmaWxlCi1AQCAtMTAyLDYgKzEwMiw3IEBAIHRlc3RzICs9IFwKLSAgIHRzdC1yZXNvbHYtaW52 YWxpZC1jbmFtZSBcCi0gICB0c3QtcmVzb2x2LW5ldHdvcmsgXAotICAgdHN0LXJlc29sdi1ub2Fh YWEgXAotKyAgdHN0LXJlc29sdi1ub2FhYWEtdmMgXAotICAgdHN0LXJlc29sdi1ub25kZWNpbWFs IFwKLSAgIHRzdC1yZXNvbHYtcmVzX2luaXQtbXVsdGkgXAotICAgdHN0LXJlc29sdi1zZWFyY2gg XAotQEAgLTI5Myw2ICsyOTQsNyBAQCAkKG9ianBmeCl0c3QtcmVzb2x2LXJlc19pbml0LXRocmVh ZDogJChvYmpwZngpbGlicmVzb2x2LnNvIFwKLSAkKG9ianBmeCl0c3QtcmVzb2x2LWludmFsaWQt Y25hbWU6ICQob2JqcGZ4KWxpYnJlc29sdi5zbyBcCi0gICAkKHNoYXJlZC10aHJlYWQtbGlicmFy eSkKLSAkKG9ianBmeCl0c3QtcmVzb2x2LW5vYWFhYTogJChvYmpwZngpbGlicmVzb2x2LnNvICQo c2hhcmVkLXRocmVhZC1saWJyYXJ5KQotKyQob2JqcGZ4KXRzdC1yZXNvbHYtbm9hYWFhLXZjOiAk KG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCi0gJChvYmpwZngp dHN0LXJlc29sdi1ub25kZWNpbWFsOiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhy ZWFkLWxpYnJhcnkpCi0gJChvYmpwZngpdHN0LXJlc29sdi1xdHlwZXM6ICQob2JqcGZ4KWxpYnJl c29sdi5zbyAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKLSAkKG9ianBmeCl0c3QtcmVzb2x2LXJv dGF0ZTogJChvYmpwZngpbGlicmVzb2x2LnNvICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5KQotZGlm ZiAtLWdpdCBhL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgYi9yZXNvbHYvbnNzX2Rucy9kbnMt aG9zdC5jCi1pbmRleCAxZDYwYzUxZjVlLi41ZDBhYjMwZGU2IDEwMDY0NAotLS0tIGEvcmVzb2x2 L25zc19kbnMvZG5zLWhvc3QuYwotKysrIGIvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYwotQEAg LTQyNyw3ICs0MjcsNyBAQCBfbnNzX2Ruc19nZXRob3N0YnluYW1lNF9yIChjb25zdCBjaGFyICpu YW1lLCBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKipwYXQsCi0gICAgIHsKLSAgICAgICBuID0gX19y ZXNfY29udGV4dF9zZWFyY2ggKGN0eCwgbmFtZSwgQ19JTiwgVF9BLAotIAkJCQlkbnNfcGFja2V0 X2J1ZmZlciwgc2l6ZW9mIChkbnNfcGFja2V0X2J1ZmZlciksCi0tCQkJCU5VTEwsIE5VTEwsIE5V TEwsIE5VTEwsIE5VTEwpOwotKwkJCQkmYWx0X2Ruc19wYWNrZXRfYnVmZmVyLCBOVUxMLCBOVUxM LCBOVUxMLCBOVUxMKTsKLSAgICAgICBpZiAobiA+PSAwKQotIAlzdGF0dXMgPSBnYWloX2dldGFu c3dlcl9ub2FhYWEgKGFsdF9kbnNfcGFja2V0X2J1ZmZlciwgbiwKLSAJCQkJCSZhYnVmLCBwYXQs IGVycm5vcCwgaGVycm5vcCwgdHRscCk7Ci1kaWZmIC0tZ2l0IGEvcmVzb2x2L3RzdC1yZXNvbHYt bm9hYWFhLXZjLmMgYi9yZXNvbHYvdHN0LXJlc29sdi1ub2FhYWEtdmMuYwotbmV3IGZpbGUgbW9k ZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMDAuLjlmNWFlYmQ5OWYKLS0tLSAvZGV2L251bGwKLSsr KyBiL3Jlc29sdi90c3QtcmVzb2x2LW5vYWFhYS12Yy5jCi1AQCAtMCwwICsxLDEyOSBAQAotKy8q IFRlc3QgdGhlIFJFU19OT0FBQUEgcmVzb2x2ZXIgb3B0aW9uIHdpdGggYSBsYXJnZSByZXNwb25z ZS4KLSsgICBDb3B5cmlnaHQgKEMpIDIwMjItMjAyMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KLSsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KLSsKLSsg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKLSsgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCi0rICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0rICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vu c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhlIEdO VSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rICAgTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rICAgTGljZW5zZSBh bG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQotKyAgIDxodHRwczovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKyNpbmNsdWRlIDxlcnJuby5oPgotKyNpbmNs dWRlIDxuZXRkYi5oPgotKyNpbmNsdWRlIDxyZXNvbHYuaD4KLSsjaW5jbHVkZSA8c3RkYm9vbC5o PgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSA8c3VwcG9ydC9jaGVjay5oPgotKyNp bmNsdWRlIDxzdXBwb3J0L2NoZWNrX25zcy5oPgotKyNpbmNsdWRlIDxzdXBwb3J0L3Jlc29sdl90 ZXN0Lmg+Ci0rI2luY2x1ZGUgPHN1cHBvcnQvc3VwcG9ydC5oPgotKyNpbmNsdWRlIDxzdXBwb3J0 L3htZW1zdHJlYW0uaD4KLSsKLSsvKiBVc2VkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIG51bWJlciBv ZiBxdWVyaWVzLiAgKi8KLStzdGF0aWMgdm9sYXRpbGUgdW5zaWduZWQgaW50IHF1ZXJpZXM7Ci0r Ci0rLyogSWYgdHJ1ZSwgYWRkIGEgbGFyZ2UgVFhUIHJlY29yZCBhdCB0aGUgc3RhcnQgb2YgdGhl IGFuc3dlciBzZWN0aW9uLiAgKi8KLStzdGF0aWMgdm9sYXRpbGUgYm9vbCBzdHVmZl90eHQ7Ci0r Ci0rc3RhdGljIHZvaWQKLStyZXNwb25zZSAoY29uc3Qgc3RydWN0IHJlc29sdl9yZXNwb25zZV9j b250ZXh0ICpjdHgsCi0rICAgICAgICAgIHN0cnVjdCByZXNvbHZfcmVzcG9uc2VfYnVpbGRlciAq YiwKLSsgICAgICAgICAgY29uc3QgY2hhciAqcW5hbWUsIHVpbnQxNl90IHFjbGFzcywgdWludDE2 X3QgcXR5cGUpCi0rewotKyAgLyogSWYgbm90IHVzaW5nIFRDUCwganVzdCBmb3JjZSBpdHMgdXNl LiAgKi8KLSsgIGlmICghY3R4LT50Y3ApCi0rICAgIHsKLSsgICAgICBzdHJ1Y3QgcmVzb2x2X3Jl c3BvbnNlX2ZsYWdzIGZsYWdzID0gey50YyA9IHRydWV9OwotKyAgICAgIHJlc29sdl9yZXNwb25z ZV9pbml0IChiLCBmbGFncyk7Ci0rICAgICAgcmVzb2x2X3Jlc3BvbnNlX2FkZF9xdWVzdGlvbiAo YiwgcW5hbWUsIHFjbGFzcywgcXR5cGUpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAg LyogVGhlIHRlc3QgbmVlZHMgdG8gc2VuZCBmb3VyIHF1ZXJpZXMsIHRoZSBmaXJzdCB0aHJlZSBh cmUgdXNlZCB0bwotKyAgICAgZ3JvdyB0aGUgTlNTIGJ1ZmZlciB2aWEgdGhlIEVSQU5HRSBoYW5k c2hha2UuICAqLwotKyAgKytxdWVyaWVzOwotKyAgVEVTVF9WRVJJRlkgKHF1ZXJpZXMgPD0gNCk7 Ci0rCi0rICAvKiBBQUFBIHF1ZXJpZXMgYXJlIHN1cHBvc2VkIHRvIGJlIGRpc2FibGVkLiAgKi8K LSsgIFRFU1RfQ09NUEFSRSAocXR5cGUsIFRfQSk7Ci0rICBURVNUX0NPTVBBUkUgKHFjbGFzcywg Q19JTik7Ci0rICBURVNUX0NPTVBBUkVfU1RSSU5HIChxbmFtZSwgImV4YW1wbGUuY29tIik7Ci0r Ci0rICBzdHJ1Y3QgcmVzb2x2X3Jlc3BvbnNlX2ZsYWdzIGZsYWdzID0ge307Ci0rICByZXNvbHZf cmVzcG9uc2VfaW5pdCAoYiwgZmxhZ3MpOwotKyAgcmVzb2x2X3Jlc3BvbnNlX2FkZF9xdWVzdGlv biAoYiwgcW5hbWUsIHFjbGFzcywgcXR5cGUpOwotKwotKyAgcmVzb2x2X3Jlc3BvbnNlX3NlY3Rp b24gKGIsIG5zX3NfYW4pOwotKwotKyAgaWYgKHN0dWZmX3R4dCkKLSsgICAgewotKyAgICAgIHJl c29sdl9yZXNwb25zZV9vcGVuX3JlY29yZCAoYiwgcW5hbWUsIHFjbGFzcywgVF9UWFQsIDYwKTsK LSsgICAgICBpbnQgemVybyA9IDA7Ci0rICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMTUwMDA7 ICsraSkKLSsgICAgICAgIHJlc29sdl9yZXNwb25zZV9hZGRfZGF0YSAoYiwgJnplcm8sIHNpemVv ZiAoemVybykpOwotKyAgICAgIHJlc29sdl9yZXNwb25zZV9jbG9zZV9yZWNvcmQgKGIpOwotKyAg ICB9Ci0rCi0rICBmb3IgKGludCBpID0gMDsgaSA8IDIwMDsgKytpKQotKyAgICB7Ci0rICAgICAg cmVzb2x2X3Jlc3BvbnNlX29wZW5fcmVjb3JkIChiLCBxbmFtZSwgcWNsYXNzLCBxdHlwZSwgNjAp OwotKyAgICAgIGNoYXIgaXB2NFs0XSA9IHsxOTIsIDAsIDIsIGkgKyAxfTsKLSsgICAgICByZXNv bHZfcmVzcG9uc2VfYWRkX2RhdGEgKGIsICZpcHY0LCBzaXplb2YgKGlwdjQpKTsKLSsgICAgICBy ZXNvbHZfcmVzcG9uc2VfY2xvc2VfcmVjb3JkIChiKTsKLSsgICAgfQotK30KLSsKLStzdGF0aWMg aW50Ci0rZG9fdGVzdCAodm9pZCkKLSt7Ci0rICBzdHJ1Y3QgcmVzb2x2X3Rlc3QgKm9iaiA9IHJl c29sdl90ZXN0X3N0YXJ0Ci0rICAgICgoc3RydWN0IHJlc29sdl9yZWRpcmVjdF9jb25maWcpCi0r ICAgICB7Ci0rICAgICAgIC5yZXNwb25zZV9jYWxsYmFjayA9IHJlc3BvbnNlCi0rICAgICB9KTsK LSsKLSsgIF9yZXMub3B0aW9ucyB8PSBSRVNfTk9BQUFBOwotKwotKyAgZm9yIChpbnQgZG9fc3R1 ZmZfdHh0ID0gMDsgZG9fc3R1ZmZfdHh0IDwgMjsgKytkb19zdHVmZl90eHQpCi0rICAgIHsKLSsg ICAgICBxdWVyaWVzID0gMDsKLSsgICAgICBzdHVmZl90eHQgPSBkb19zdHVmZl90eHQ7Ci0rCi0r ICAgICAgc3RydWN0IGFkZHJpbmZvICphaSA9IE5VTEw7Ci0rICAgICAgaW50IHJldDsKLSsgICAg ICByZXQgPSBnZXRhZGRyaW5mbyAoImV4YW1wbGUuY29tIiwgIjgwIiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgJihzdHJ1Y3QgYWRkcmluZm8pCi0rICAgICAgICAgICAgICAgICAgICAgICAg IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWlfZmFtaWx5ID0gQUZfVU5TUEVDLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgIC5haV9zb2NrdHlwZSA9IFNPQ0tfU1RSRUFNLAot KyAgICAgICAgICAgICAgICAgICAgICAgICB9LCAmYWkpOwotKwotKyAgICAgIGNoYXIgKmV4cGVj dGVkX3Jlc3VsdDsKLSsgICAgICB7Ci0rICAgICAgICBzdHJ1Y3QgeG1lbXN0cmVhbSBtZW07Ci0r ICAgICAgICB4b3Blbl9tZW1zdHJlYW0gKCZtZW0pOwotKyAgICAgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCAyMDA7ICsraSkKLSsgICAgICAgICAgZnByaW50ZiAobWVtLm91dCwgImFkZHJlc3M6IFNU UkVBTS9UQ1AgMTkyLjAuMi4lZCA4MFxuIiwgaSArIDEpOwotKyAgICAgICAgeGZjbG9zZV9tZW1z dHJlYW0gKCZtZW0pOwotKyAgICAgICAgZXhwZWN0ZWRfcmVzdWx0ID0gbWVtLmJ1ZmZlcjsKLSsg ICAgICB9Ci0rCi0rICAgICAgY2hlY2tfYWRkcmluZm8gKCJleGFtcGxlLmNvbSIsIGFpLCByZXQs IGV4cGVjdGVkX3Jlc3VsdCk7Ci0rCi0rICAgICAgZnJlZSAoZXhwZWN0ZWRfcmVzdWx0KTsKLSsg ICAgICBmcmVlYWRkcmluZm8gKGFpKTsKLSsgICAgfQotKwotKyAgcmVzb2x2X3Rlc3RfZW5kIChv YmopOwotKyAgcmV0dXJuIDA7Ci0rfQotKwotKyNpbmNsdWRlIDxzdXBwb3J0L3Rlc3QtZHJpdmVy LmM+CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvY29tbWl0dGVkLTEtMi1Qcm9w YWdhdGUtR0xJQkNfVFVOQUJMRVMtaW4tc2V0eGlkLWJpbmFyaWVzLnBhdGNoIGIvc3JjcGtncy9n bGliYy9wYXRjaGVzL2NvbW1pdHRlZC0xLTItUHJvcGFnYXRlLUdMSUJDX1RVTkFCTEVTLWluLXNl dHhpZC1iaW5hcmllcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzFkY2Jk MDMwMDliYTEuLjAwMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9jb21t aXR0ZWQtMS0yLVByb3BhZ2F0ZS1HTElCQ19UVU5BQkxFUy1pbi1zZXR4aWQtYmluYXJpZXMucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOTggKzAsMCBAQAotRnJvbSAwZDVmOWVhOTdmMWIzOWYy YTg1NTc1NjA3ODc3MTY3M2E2ODQ5N2UxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog U2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4KLURhdGU6IFR1ZSwg MTkgU2VwIDIwMjMgMTM6MjU6NDAgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gUHJvcGFnYXRlIEdM SUJDX1RVTkFCTEVTIGluIHNldHhpZCBiaW5hcmllcwotCi1HTElCQ19UVU5BQkxFUyBzY3J1YmJp bmcgaGFwcGVucyBlYXJsaWVyIHRoYW4gZW52dmFyIHNjcnViYmluZyBhbmQgc29tZQotdHVuYWJs ZXMgYXJlIHJlcXVpcmVkIHRvIHByb3BhZ2F0ZSBwYXN0IHNldHhpZCBib3VuZGFyeSwgbGlrZSB0 aGVpcgotZW52X2FsaWFzLiAgUmVseSBvbiB0dW5hYmxlIHNjcnViYmluZyB0byBjbGVhbiBvdXQg R0xJQkNfVFVOQUJMRVMgbGlrZQotYmVmb3JlLCByZXN0b3JpbmcgYmVoYXZpb3VyIGluIGdsaWJj IDIuMzcgYW5kIGVhcmxpZXIuCi0KLVNpZ25lZC1vZmYtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8 c2lkZGhlc2hAc291cmNld2FyZS5vcmc+Ci1SZXZpZXdlZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxj YXJsb3NAcmVkaGF0LmNvbT4KLS0tLQotIHN5c2RlcHMvZ2VuZXJpYy91bnNlY3ZhcnMuaCB8IDEg LQotIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zeXNkZXBz L2dlbmVyaWMvdW5zZWN2YXJzLmggYi9zeXNkZXBzL2dlbmVyaWMvdW5zZWN2YXJzLmgKLWluZGV4 IDgxMzk3ZmI5MGIuLjgyNzhjNTBhODQgMTAwNjQ0Ci0tLS0gYS9zeXNkZXBzL2dlbmVyaWMvdW5z ZWN2YXJzLmgKLSsrKyBiL3N5c2RlcHMvZ2VuZXJpYy91bnNlY3ZhcnMuaAotQEAgLTQsNyArNCw2 IEBACi0gI2RlZmluZSBVTlNFQ1VSRV9FTlZWQVJTIFwKLSAgICJHQ09OVl9QQVRIXDAiCQkJCQkJ CSAgICAgIFwKLSAgICJHRVRDT05GX0RJUlwwIgkJCQkJCQkgICAgICBcCi0tICAiR0xJQkNfVFVO QUJMRVNcMCIJCQkJCQkJICAgICAgXAotICAgIkhPU1RBTElBU0VTXDAiCQkJCQkJCSAgICAgIFwK LSAgICJMRF9BVURJVFwwIgkJCQkJCQkJICAgICAgXAotICAgIkxEX0RFQlVHXDAiCQkJCQkJCQkg ICAgICBcCi0tLSAKLUZyb20gMTA1NmU1YjRjM2YyZDkwZWQyYjRhNTVmOTZhZGQyOGRhMmY0Yzhm YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFNpZGRoZXNoIFBveWFyZWthciA8c2lk ZGhlc2hAc291cmNld2FyZS5vcmc+Ci1EYXRlOiBUdWUsIDE5IFNlcCAyMDIzIDE4OjM5OjMyIC0w NDAwCi1TdWJqZWN0OiBbUEFUQ0hdIHR1bmFibGVzOiBUZXJtaW5hdGUgaWYgZW5kIG9mIGlucHV0 IGlzIHJlYWNoZWQKLSAoQ1ZFLTIwMjMtNDkxMSkKLQotVGhlIHN0cmluZyBwYXJzaW5nIHJvdXRp bmUgbWF5IGVuZCB1cCB3cml0aW5nIGJleW9uZCBib3VuZHMgb2YgdHVuZXN0cgotaWYgdGhlIGlu cHV0IHR1bmFibGUgc3RyaW5nIGlzIG1hbGZvcm1lZCwgb2YgdGhlIGZvcm0gbmFtZT1uYW1lPXZh bC4KLVRoaXMgZ2V0cyBwcm9jZXNzZWQgdHdpY2UsIGZpcnN0IGFzIG5hbWU9bmFtZT12YWwgYW5k IG5leHQgYXMgbmFtZT12YWwsCi1yZXN1bHRpbmcgaW4gdHVuZXN0ciBiZWluZyBuYW1lPW5hbWU9 dmFsOm5hbWU9dmFsLCB0aHVzIG92ZXJmbG93aW5nCi10dW5lc3RyLgotCi1UZXJtaW5hdGUgdGhl IHBhcnNpbmcgbG9vcCBhdCB0aGUgZmlyc3QgaW5zdGFuY2UgaXRzZWxmIHNvIHRoYXQgdHVuZXN0 cgotZG9lcyBub3Qgb3ZlcmZsb3cuCi0KLVRoaXMgYWxzbyBmaXhlcyB1cCB0c3QtZW52LXNldHVp ZC10dW5hYmxlcyB0byBhY3R1YWxseSBoYW5kbGUgZmFpbHVyZXMKLWNvcnJlY3QgYW5kIGFkZCBu ZXcgdGVzdHMgdG8gdmFsaWRhdGUgdGhlIGZpeCBmb3IgdGhpcyBDVkUuCi0KLVNpZ25lZC1vZmYt Ynk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+Ci1SZXZpZXdl ZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KLS0tLQotIE5FV1MgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysrKysKLSBlbGYvZGwtdHVuYWJsZXMuYyAgICAg ICAgICAgICB8IDE3ICsrKysrKysrKy0tLS0tLS0KLSBlbGYvdHN0LWVudi1zZXR1aWQtdHVuYWJs ZXMuYyB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCi0gMyBmaWxlcyBj aGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L05FV1MgYi9ORVdTCi1pbmRleCBhOTQ2NTBkYTY0Li5jYzRiODFmMGFjIDEwMDY0NAotLS0tIGEv TkVXUwotKysrIGIvTkVXUwotQEAgLTY0LDYgKzY0LDExIEBAIFNlY3VyaXR5IHJlbGF0ZWQgY2hh bmdlczoKLSAgIGFuIGFwcGxpY2F0aW9uIGNhbGxzIGdldGFkZHJpbmZvIGZvciBBRl9JTkVUNiB3 aXRoIEFJX0NBTk9OTkFNRSwKLSAgIEFJX0FMTCBhbmQgQUlfVjRNQVBQRUQgZmxhZ3Mgc2V0Lgot IAotKyAgQ1ZFLTIwMjMtNDkxMTogSWYgYSB0dW5hYmxlIG9mIHRoZSBmb3JtIE5BTUU9TkFNRT1W QUwgaXMgcGFzc2VkIGluIHRoZQotKyAgZW52aXJvbm1lbnQgb2YgYSBzZXR1aWQgcHJvZ3JhbSBh bmQgTkFNRSBpcyB2YWxpZCwgaXQgbWF5IHJlc3VsdCBpbiBhCi0rICBidWZmZXIgb3ZlcmZsb3cs IHdoaWNoIGNvdWxkIGJlIGV4cGxvaXRlZCB0byBhY2hpZXZlIGVzY2FsYXRlZAotKyAgcHJpdmls ZWdlcy4gIFRoaXMgZmxhdyB3YXMgaW50cm9kdWNlZCBpbiBnbGliYyAyLjM0LgotKwotIFRoZSBm b2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6Ci0gCi0gICBbVGhl IHJlbGVhc2UgbWFuYWdlciB3aWxsIGFkZCB0aGUgbGlzdCBnZW5lcmF0ZWQgYnkKLWRpZmYgLS1n aXQgYS9lbGYvZGwtdHVuYWJsZXMuYyBiL2VsZi9kbC10dW5hYmxlcy5jCi1pbmRleCA2MmI3MzMy ZDk1Li5jYWU2N2VmYTBhIDEwMDY0NAotLS0tIGEvZWxmL2RsLXR1bmFibGVzLmMKLSsrKyBiL2Vs Zi9kbC10dW5hYmxlcy5jCi1AQCAtMTgwLDExICsxODAsNyBAQCBwYXJzZV90dW5hYmxlcyAoY2hh ciAqdHVuZXN0ciwgY2hhciAqdmFsc3RyaW5nKQotICAgICAgIC8qIElmIHdlIHJlYWNoIHRoZSBl bmQgb2YgdGhlIHN0cmluZyBiZWZvcmUgZ2V0dGluZyBhIHZhbGlkIG5hbWUtdmFsdWUKLSAJIHBh aXIsIGJhaWwgb3V0LiAgKi8KLSAgICAgICBpZiAocFtsZW5dID09ICdcMCcpCi0tCXsKLS0JICBp ZiAoX19saWJjX2VuYWJsZV9zZWN1cmUpCi0tCSAgICB0dW5lc3RyW29mZl0gPSAnXDAnOwotLQkg IHJldHVybjsKLS0JfQotKwlicmVhazsKLSAKLSAgICAgICAvKiBXZSBkaWQgbm90IGZpbmQgYSB2 YWxpZCBuYW1lLXZhbHVlIHBhaXIgYmVmb3JlIGVuY291bnRlcmluZyB0aGUKLSAJIGNvbG9uLiAg Ki8KLUBAIC0yNDQsOSArMjQwLDE2IEBAIHBhcnNlX3R1bmFibGVzIChjaGFyICp0dW5lc3RyLCBj aGFyICp2YWxzdHJpbmcpCi0gCSAgICB9Ci0gCX0KLSAKLS0gICAgICBpZiAocFtsZW5dICE9ICdc MCcpCi0tCXAgKz0gbGVuICsgMTsKLSsgICAgICAvKiBXZSByZWFjaGVkIHRoZSBlbmQgd2hpbGUg cHJvY2Vzc2luZyB0aGUgdHVuYWJsZSBzdHJpbmcuICAqLwotKyAgICAgIGlmIChwW2xlbl0gPT0g J1wwJykKLSsJYnJlYWs7Ci0rCi0rICAgICAgcCArPSBsZW4gKyAxOwotICAgICB9Ci0rCi0rICAv KiBUZXJtaW5hdGUgdHVuZXN0ciBiZWZvcmUgd2UgbGVhdmUuICAqLwotKyAgaWYgKF9fbGliY19l bmFibGVfc2VjdXJlKQotKyAgICB0dW5lc3RyW29mZl0gPSAnXDAnOwotIH0KLSAKLSAvKiBFbmFi bGUgdGhlIGdsaWJjLm1hbGxvYy5jaGVjayB0dW5hYmxlIGluIFNFVFVJRC9TRVRHSUQgcHJvZ3Jh bXMgb25seSB3aGVuCi1kaWZmIC0tZ2l0IGEvZWxmL3RzdC1lbnYtc2V0dWlkLXR1bmFibGVzLmMg Yi9lbGYvdHN0LWVudi1zZXR1aWQtdHVuYWJsZXMuYwotaW5kZXggN2RmYjBlMDczYS4uZjBiOTJj OTdlNyAxMDA2NDQKLS0tLSBhL2VsZi90c3QtZW52LXNldHVpZC10dW5hYmxlcy5jCi0rKysgYi9l bGYvdHN0LWVudi1zZXR1aWQtdHVuYWJsZXMuYwotQEAgLTUwLDYgKzUwLDggQEAgY29uc3QgY2hh ciAqdGVzdHN0cmluZ3NbXSA9Ci0gICAiZ2xpYmMubWFsbG9jLnBlcnR1cmI9MHg4MDA6bm90X3Zh bGlkLm1hbGxvYy5jaGVjaz0yOmdsaWJjLm1hbGxvYy5tbWFwX3RocmVzaG9sZD00MDk2IiwKLSAg ICJnbGliYy5ub3RfdmFsaWQuY2hlY2s9MjpnbGliYy5tYWxsb2MubW1hcF90aHJlc2hvbGQ9NDA5 NiIsCi0gICAibm90X3ZhbGlkLm1hbGxvYy5jaGVjaz0yOmdsaWJjLm1hbGxvYy5tbWFwX3RocmVz aG9sZD00MDk2IiwKLSsgICJnbGliYy5tYWxsb2MubW1hcF90aHJlc2hvbGQ9Z2xpYmMubWFsbG9j Lm1tYXBfdGhyZXNob2xkPTQwOTYiLAotKyAgImdsaWJjLm1hbGxvYy5jaGVjaz0yIiwKLSAgICJn bGliYy5tYWxsb2MuZ2FyYmFnZT0yOmdsaWJjLm1hb2MubW1hcF90aHJlc2hvbGQ9NDA5NjpnbGli Yy5tYWxsb2MuY2hlY2s9MiIsCi0gICAiZ2xpYmMubWFsbG9jLmNoZWNrPTQ6Z2xpYmMubWFsbG9j LmdhcmJhZ2U9MjpnbGliYy5tYW9jLm1tYXBfdGhyZXNob2xkPTQwOTYiLAotICAgIjpnbGliYy5t YWxsb2MuZ2FyYmFnZT0yOmdsaWJjLm1hbGxvYy5jaGVjaz0xIiwKLUBAIC02OCw2ICs3MCw4IEBA IGNvbnN0IGNoYXIgKnJlc3VsdHN0cmluZ3NbXSA9Ci0gICAiZ2xpYmMubWFsbG9jLnBlcnR1cmI9 MHg4MDA6Z2xpYmMubWFsbG9jLm1tYXBfdGhyZXNob2xkPTQwOTYiLAotICAgImdsaWJjLm1hbGxv Yy5tbWFwX3RocmVzaG9sZD00MDk2IiwKLSAgICJnbGliYy5tYWxsb2MubW1hcF90aHJlc2hvbGQ9 NDA5NiIsCi0rICAiZ2xpYmMubWFsbG9jLm1tYXBfdGhyZXNob2xkPWdsaWJjLm1hbGxvYy5tbWFw X3RocmVzaG9sZD00MDk2IiwKLSsgICIiLAotICAgIiIsCi0gICAiIiwKLSAgICIiLAotQEAgLTgx LDExICs4NSwxOCBAQCB0ZXN0X2NoaWxkIChpbnQgb2ZmKQotIHsKLSAgIGNvbnN0IGNoYXIgKnZh bCA9IGdldGVudiAoIkdMSUJDX1RVTkFCTEVTIik7Ci0gCi0rICBwcmludGYgKCIgICAgWyVkXSBH TElCQ19UVU5BQkxFUyBpcyAlc1xuIiwgb2ZmLCB2YWwpOwotKyAgZmZsdXNoIChzdGRvdXQpOwot ICAgaWYgKHZhbCAhPSBOVUxMICYmIHN0cmNtcCAodmFsLCByZXN1bHRzdHJpbmdzW29mZl0pID09 IDApCi0gICAgIHJldHVybiAwOwotIAotICAgaWYgKHZhbCAhPSBOVUxMKQotLSAgICBwcmludGYg KCJbJWRdIFVuZXhwZWN0ZWQgR0xJQkNfVFVOQUJMRVMgVkFMVUUgJXNcbiIsIG9mZiwgdmFsKTsK LSsgICAgcHJpbnRmICgiICAgIFslZF0gVW5leHBlY3RlZCBHTElCQ19UVU5BQkxFUyBWQUxVRSAl cywgZXhwZWN0ZWQgJXNcbiIsCi0rCSAgICBvZmYsIHZhbCwgcmVzdWx0c3RyaW5nc1tvZmZdKTsK LSsgIGVsc2UKLSsgICAgcHJpbnRmICgiICAgIFslZF0gR0xJQkNfVFVOQUJMRVMgZW52aXJvbm1l bnQgdmFyaWFibGUgYWJzZW50XG4iLCBvZmYpOwotKwotKyAgZmZsdXNoIChzdGRvdXQpOwotIAot ICAgcmV0dXJuIDE7Ci0gfQotQEAgLTEwNiwyMSArMTE3LDI2IEBAIGRvX3Rlc3QgKGludCBhcmdj LCBjaGFyICoqYXJndikKLSAgICAgICBpZiAocmV0ICE9IDApCi0gCWV4aXQgKDEpOwotIAotLSAg ICAgIGV4aXQgKEVYSVRfU1VDQ0VTUyk7Ci0rICAgICAgLyogU3BlY2lhbCByZXR1cm4gY29kZSB0 byBtYWtlIHN1cmUgdGhhdCB0aGUgY2hpbGQgZXhlY3V0ZWQgYWxsIHRoZSB3YXkKLSsJIHRocm91 Z2guICAqLwotKyAgICAgIGV4aXQgKDQyKTsKLSAgICAgfQotICAgZWxzZQotICAgICB7Ci0tICAg ICAgaW50IHJldCA9IDA7Ci0tCi0gICAgICAgLyogU3Bhd24gdGVzdHMuICAqLwotICAgICAgIGZv ciAoaW50IGkgPSAwOyBpIDwgYXJyYXlfbGVuZ3RoICh0ZXN0c3RyaW5ncyk7IGkrKykKLSAJewot IAkgIGNoYXIgYnVmW0lOVF9CVUZTSVpFX0JPVU5EIChpbnQpXTsKLSAKLS0JICBwcmludGYgKCJT cGF3bmVkIHRlc3QgZm9yICVzICglZClcbiIsIHRlc3RzdHJpbmdzW2ldLCBpKTsKLSsJICBwcmlu dGYgKCJbJWRdIFNwYXduZWQgdGVzdCBmb3IgJXNcbiIsIGksIHRlc3RzdHJpbmdzW2ldKTsKLSAJ ICBzbnByaW50ZiAoYnVmLCBzaXplb2YgKGJ1ZiksICIlZFxuIiwgaSk7Ci0rCSAgZmZsdXNoIChz dGRvdXQpOwotIAkgIGlmIChzZXRlbnYgKCJHTElCQ19UVU5BQkxFUyIsIHRlc3RzdHJpbmdzW2ld LCAxKSAhPSAwKQotLQkgICAgZXhpdCAoMSk7Ci0rCSAgICB7Ci0rCSAgICAgIHByaW50ZiAoIiAg ICBbJWRdIEZhaWxlZCB0byBzZXQgR0xJQkNfVFVOQUJMRVM6ICVtIiwgaSk7Ci0rCSAgICAgIHN1 cHBvcnRfcmVjb3JkX2ZhaWx1cmUgKCk7Ci0rCSAgICAgIGNvbnRpbnVlOwotKwkgICAgfQotIAot IAkgIGludCBzdGF0dXMgPSBzdXBwb3J0X2NhcHR1cmVfc3VicHJvZ3JhbV9zZWxmX3NnaWQgKGJ1 Zik7Ci0gCi1AQCAtMTI4LDkgKzE0NCwxNCBAQCBkb190ZXN0IChpbnQgYXJnYywgY2hhciAqKmFy Z3YpCi0gCSAgaWYgKFdFWElUU1RBVFVTIChzdGF0dXMpID09IEVYSVRfVU5TVVBQT1JURUQpCi0g CSAgICByZXR1cm4gRVhJVF9VTlNVUFBPUlRFRDsKLSAKLS0JICByZXQgfD0gc3RhdHVzOwotKwkg IGlmIChXRVhJVFNUQVRVUyAoc3RhdHVzKSAhPSA0MikKLSsJICAgIHsKLSsJICAgICAgcHJpbnRm ICgiICAgIFslZF0gY2hpbGQgZmFpbGVkIHdpdGggc3RhdHVzICVkXG4iLCBpLAotKwkJICAgICAg V0VYSVRTVEFUVVMgKHN0YXR1cykpOwotKwkgICAgICBzdXBwb3J0X3JlY29yZF9mYWlsdXJlICgp OwotKwkgICAgfQotIAl9Ci0tICAgICAgcmV0dXJuIHJldDsKLSsgICAgICByZXR1cm4gMDsKLSAg ICAgfQotIH0KLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xpYmMvdGVtcGxhdGUgYi9zcmNwa2dz L2dsaWJjL3RlbXBsYXRlCmluZGV4IGNmMzBjZDg4ZGQ2MWEyLi5jNGZhOWIwMDM5YTkyYyAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nbGliYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dsaWJjL3RlbXBs YXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbGliYycKIHBrZ25h bWU9Z2xpYmMKLXZlcnNpb249Mi4zOAotcmV2aXNpb249NgordmVyc2lvbj0yLjM5CityZXZpc2lv bj0xCiBib290c3RyYXA9eWVzCiBzaG9ydF9kZXNjPSJHTlUgQyBsaWJyYXJ5IgogbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyLCBCU0QtMy1DbGF1c2UiCiBob21lcGFnZT0iaHR0 cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmMiCiBkaXN0ZmlsZXM9IiR7R05VX1NJVEV9L2xp YmMvZ2xpYmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mYjgyOTk4OTk4YjJiMjk5NjU0 NjdiYzFiNjlkMTUyZTljMzA3ZDJjZjMwMWM5ZWFmYjQ1NTViNzcwZWYzZmQyCitjaGVja3N1bT1m NzdiZDQ3Y2Y4MTcwYzU3MzY1YWU3YmY4NjY5NmMxMThhZGIzYjEyMGQzMjU5YzY0YzUwMmQzZGMx ZTJkOTI2CiAjIERvIG5vdCBzdHJpcCB0aGVzZSBmaWxlcywgb2JqY29weSBlcnJvcnMgb3V0Lgog bm9zdHJpcF9maWxlcz0iCiAJWEJTNV9JTFAzMl9PRkZCSUcKQEAgLTQ4LDEzICs0OCwxMiBAQCBj b25mX2ZpbGVzPSIKIAkvZXRjL2xkLnNvLmNvbmYiCiBpZiBbICIkQ0hST09UX1JFQURZIiBdOyB0 aGVuCiAJaG9zdG1ha2VkZXBlbmRzPSJiaXNvbiBnZXR0ZXh0IHBlcmwgcHl0aG9uMyB0ZXhpbmZv IgotCSMgWFhYOiByZW1vdmUgdGhpcyBvbiB0aGUgbmV4dCB1cGRhdGUKLQkjIGVuc3VyZXMgcGFy dGlhbCB1cGdyYWRlcyBkb24ndCBicmVhayB0aGluZ3MgbGlrZSBQQU0KLQlkZXBlbmRzPSJsaWJ4 Y3J5cHQtY29tcGF0IgogZmkKIG1ha2VkZXBlbmRzPSJrZXJuZWwtbGliYy1oZWFkZXJzIgogbGli MzJmaWxlcz0iL3Vzci9saWIvZ2NvbnYvZ2NvbnYtbW9kdWxlcyIKIGxpYjMyc3ltbGlua3M9Imxk LWxpbnV4LnNvLjIiCisjIGdsaWJjIDIuMzggc3RvcHMgcHJvdmlkaW5nIGxpYmNyeXB0LnNvLjEK K2NvbmZsaWN0cz0iZ2xpYmMtMzJiaXQ8Mi4zOF8xIgogYXJjaHM9In4qLW11c2wiCiBpZiBbICIk WEJQU19UQVJHRVRfTElCQyIgPSBtdXNsIF07IHRoZW4KIAlicm9rZW49Im5vIHBvaW50IGluIGJ1 aWxkaW5nIHRoaXMgZm9yIG11c2wiCkBAIC0xMzMsNyArMTMyLDcgQEAgZG9faW5zdGFsbCgpIHsK IAkoIGNkIGJ1aWxkICYmIG1ha2UgaW5zdGFsbF9yb290PSR7REVTVERJUn0gaW5zdGFsbCApCiAK IAkjIFRoZSBDLlVURi04IGxvY2FsZSBzaG91bGQgYWx3YXlzIGJlIGF2YWlsYWJsZQotCWlmIFsg LXogIiR7Q1JPU1NfQlVJTER9IiBdOyB0aGVuCisJaWYgWyAteiAiJHtDUk9TU19CVUlMRH0iIF0g fHwgWyAiJHtYQlBTX01BQ0hJTkUlLSp9IiA9ICIke1hCUFNfVEFSR0VUX01BQ0hJTkUlLSp9IiBd OyB0aGVuCiAJCW1ha2UgLUMgbG9jYWxlZGF0YSBERVNURElSPSIke0RFU1RESVJ9IiBcCiAJCQlv YmpkaXI9Ii4uL2J1aWxkIiBpbnN0YWxsLWZpbGVzLUMuVVRGLTgvVVRGLTgKIAllbGlmIGNvbW1h bmQgLXYgbG9jYWxlZGVmID4vZGV2L251bGwgMj4mMTsgdGhlbgoKRnJvbSBhNTJlZWYzYzRhYjYz ZWQxNTE0ZDdlODI3ZTVjY2UwYTJlOGVmYWI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgNiBNYXIgMjAyNCAxODow NzoyMyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMTJdIGNyb3NzLWFhcmNoNjQtbGludXgtZ251 OiByZWJ1aWxkIGZvciBnbGliYyAyLjM5CgotLS0KIHNyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51 eC1nbnUvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGlu dXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0 ZQppbmRleCBjNGQ3ZGJhZjRiYTE5Yy4uNzNhZGJlZTdlODUzM2IgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1h YXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUnCiBfYmludXRpbHNfdmVyc2lvbj0yLjQx CiBfZ2NjX3ZlcnNpb249MTMuMi4wCi1fZ2xpYmNfdmVyc2lvbj0yLjM4CitfZ2xpYmNfdmVyc2lv bj0yLjM5CiBfbGludXhfdmVyc2lvbj02LjEKIHBrZ25hbWU9Y3Jvc3MtYWFyY2g2NC1saW51eC1n bnUKIHZlcnNpb249MC4zNgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9dm9p ZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY4LWEiCiBob3N0bWFrZWRl cGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyBwa2ct Y29uZmlnIgpAQCAtMjIsNyArMjIsNyBAQCBkaXN0ZmlsZXMrPSIgJHtHTlVfU0lURX0vZ2xpYmMv Z2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6IgogZGlzdGZpbGVzKz0iICR7S0VSTkVMX1NJ VEV9L2tlcm5lbC92JHtfbGludXhfdmVyc2lvbiUlLip9LngvbGludXgtJHtfbGludXhfdmVyc2lv bn0udGFyLnh6IgogY2hlY2tzdW09ImFlOWE1Nzg5ZTIzNDU5ZTU5NjA2ZTY3MTQ3MjNmMmQzZmZj MzFjMDMxNzQxOTFlZjBkMDE1YmRmMDYwMDc0NTAKICBlMjc1ZTc2NDQyYTYwNjczNDFhMjdmMDRj NWM2YjgzZDg2MTMxNDQwMDRjMDQxMzUyODg2M2RjNmI1Yzc0M2RhCi0gZmI4Mjk5ODk5OGIyYjI5 OTY1NDY3YmMxYjY5ZDE1MmU5YzMwN2QyY2YzMDFjOWVhZmI0NTU1Yjc3MGVmM2ZkMgorIGY3N2Jk NDdjZjgxNzBjNTczNjVhZTdiZjg2Njk2YzExOGFkYjNiMTIwZDMyNTljNjRjNTAyZDNkYzFlMmQ5 MjYKICAyY2ExZjE3MDUxYTQzMGY2ZmVkMTE5NmU0OTUyNzE3NTA3MTcxYWNmZDk3ZDk2NTc3MjEy NTAyNzAzYjI1ZGViIgogbm9jcm9zcz15ZXMKIAoKRnJvbSA2ZWE5ODQ5MjcwZGNhNDMzNjY2MWZi NjkwYzJlZjk1ZTJkZmFlOGM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5 IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgNiBNYXIgMjAyNCAxODowNzoyMyAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggMDMvMTJdIGNyb3NzLWFybS1saW51eC1nbnVlYWJpOiByZWJ1aWxk IGZvciBnbGliYyAyLjM5CgotLS0KIHNyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmkvdGVt cGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3Rl bXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaS90ZW1wbGF0ZQppbmRleCBl ZmRlMTAxN2NiODY0Yi4uZTNjYzRhMjhhM2RjNWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3Mt YXJtLWxpbnV4LWdudWVhYmkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgt Z251ZWFiaS90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn Y3Jvc3MtYXJtLWxpbnV4LWdudWVhYmknCiBfYmludXRpbHNfdmVyc2lvbj0yLjQxCiBfZ2NjX3Zl cnNpb249MTMuMi4wCi1fZ2xpYmNfdmVyc2lvbj0yLjM4CitfZ2xpYmNfdmVyc2lvbj0yLjM5CiBf bGludXhfdmVyc2lvbj02LjEKIHBrZ25hbWU9Y3Jvc3MtYXJtLWxpbnV4LWdudWVhYmkKIHZlcnNp b249MC4zNgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwog Y29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY1dGUgLS13aXRoLWZsb2F0PXNvZnQKICAt LWVuYWJsZS1hdXRvbGluay1saWJhdG9taWMiCkBAIC0yMyw3ICsyMyw3IEBAIGRpc3RmaWxlcys9 IiAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19nbGliY192ZXJzaW9ufS50YXIueHoiCiBkaXN0 ZmlsZXMrPSIgJHtLRVJORUxfU0lURX0va2VybmVsL3Yke19saW51eF92ZXJzaW9uJSUuKn0ueC9s aW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCiBjaGVja3N1bT0iYWU5YTU3ODllMjM0NTll NTk2MDZlNjcxNDcyM2YyZDNmZmMzMWMwMzE3NDE5MWVmMGQwMTViZGYwNjAwNzQ1MAogIGUyNzVl NzY0NDJhNjA2NzM0MWEyN2YwNGM1YzZiODNkODYxMzE0NDAwNGMwNDEzNTI4ODYzZGM2YjVjNzQz ZGEKLSBmYjgyOTk4OTk4YjJiMjk5NjU0NjdiYzFiNjlkMTUyZTljMzA3ZDJjZjMwMWM5ZWFmYjQ1 NTViNzcwZWYzZmQyCisgZjc3YmQ0N2NmODE3MGM1NzM2NWFlN2JmODY2OTZjMTE4YWRiM2IxMjBk MzI1OWM2NGM1MDJkM2RjMWUyZDkyNgogIDJjYTFmMTcwNTFhNDMwZjZmZWQxMTk2ZTQ5NTI3MTc1 MDcxNzFhY2ZkOTdkOTY1NzcyMTI1MDI3MDNiMjVkZWIiCiBub2Nyb3NzPXllcwogCgpGcm9tIGM4 ODZjYWU5OTUwNDIzMzE0ZmQxY2U3ODJlZDZiMTc4ZDM3ZGFmMjQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCA2IE1h ciAyMDI0IDE4OjA3OjIzIC0wODAwClN1YmplY3Q6IFtQQVRDSCAwNC8xMl0gY3Jvc3MtYXJtLWxp bnV4LWdudWVhYmloZjogcmVidWlsZCBmb3IgZ2xpYmMgMi4zOQoKLS0tCiBzcmNwa2dzL2Nyb3Nz LWFybS1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Ny b3NzLWFybS1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFybS1saW51 eC1nbnVlYWJpaGYvdGVtcGxhdGUKaW5kZXggZGQ1NjJjZWI0NDk4NjEuLjA5ZGU2NDIyMDhhMmM4 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlCkBAIC0xLDEx ICsxLDExIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtZ251ZWFiaWhm JwogX2JpbnV0aWxzX3ZlcnNpb249Mi40MQogX2djY192ZXJzaW9uPTEzLjIuMAotX2dsaWJjX3Zl cnNpb249Mi4zOAorX2dsaWJjX3ZlcnNpb249Mi4zOQogX2xpbnV4X3ZlcnNpb249Ni4xCiBwa2du YW1lPWNyb3NzLWFybS1saW51eC1nbnVlYWJpaGYKIHZlcnNpb249MC4zNgotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0td2l0 aC1hcmNoPWFybXY2IC0td2l0aC1mcHU9dmZwIC0td2l0aC1mbG9hdD1oYXJkCiAgLS1lbmFibGUt YXV0b2xpbmstbGliYXRvbWljIgpAQCAtMjMsNyArMjMsNyBAQCBkaXN0ZmlsZXMrPSIgJHtHTlVf U0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6IgogZGlzdGZpbGVzKz0i ICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92JHtfbGludXhfdmVyc2lvbiUlLip9LngvbGludXgtJHtf bGludXhfdmVyc2lvbn0udGFyLnh6IgogY2hlY2tzdW09ImFlOWE1Nzg5ZTIzNDU5ZTU5NjA2ZTY3 MTQ3MjNmMmQzZmZjMzFjMDMxNzQxOTFlZjBkMDE1YmRmMDYwMDc0NTAKICBlMjc1ZTc2NDQyYTYw NjczNDFhMjdmMDRjNWM2YjgzZDg2MTMxNDQwMDRjMDQxMzUyODg2M2RjNmI1Yzc0M2RhCi0gZmI4 Mjk5ODk5OGIyYjI5OTY1NDY3YmMxYjY5ZDE1MmU5YzMwN2QyY2YzMDFjOWVhZmI0NTU1Yjc3MGVm M2ZkMgorIGY3N2JkNDdjZjgxNzBjNTczNjVhZTdiZjg2Njk2YzExOGFkYjNiMTIwZDMyNTljNjRj NTAyZDNkYzFlMmQ5MjYKICAyY2ExZjE3MDUxYTQzMGY2ZmVkMTE5NmU0OTUyNzE3NTA3MTcxYWNm ZDk3ZDk2NTc3MjEyNTAyNzAzYjI1ZGViIgogbm9jcm9zcz15ZXMKIAoKRnJvbSBjNjFlZGJkNGQ4 MmQyZDU3ZjVmNzQ4YWIyMDk2OGQ5OWI2MGIwZDdiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgNiBNYXIgMjAyNCAx ODowNzoyMyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMTJdIGNyb3NzLWFybXY3bC1saW51eC1n bnVlYWJpaGY6IHJlYnVpbGQgZm9yIGdsaWJjIDIuMzkKCi0tLQogc3JjcGtncy9jcm9zcy1hcm12 N2wtbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9z cy1hcm12N2wtbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm12N2wt bGludXgtZ251ZWFiaWhmL3RlbXBsYXRlCmluZGV4IDYwYzY3OGYzZjVhYTc1Li5jZWFlNjk3MWVl NDg0YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhmL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0 ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtYXJtdjdsLWxp bnV4LWdudWVhYmloZicKIF9iaW51dGlsc192ZXJzaW9uPTIuNDEKIF9nY2NfdmVyc2lvbj0xMy4y LjAKLV9nbGliY192ZXJzaW9uPTIuMzgKK19nbGliY192ZXJzaW9uPTIuMzkKIF9saW51eF92ZXJz aW9uPTYuMQogcGtnbmFtZT1jcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhmCiB2ZXJzaW9uPTAu MzYKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZp Z3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12Ny1hIC0td2l0aC1mcHU9dmZwdjMgLS13aXRoLWZs b2F0PWhhcmQiCiBob3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBm bGV4IHBlcmwgcHl0aG9uMyBwa2ctY29uZmlnIgpAQCAtMjIsNyArMjIsNyBAQCBkaXN0ZmlsZXMr PSIgJHtHTlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6IgogZGlz dGZpbGVzKz0iICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92JHtfbGludXhfdmVyc2lvbiUlLip9Lngv bGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgogY2hlY2tzdW09ImFlOWE1Nzg5ZTIzNDU5 ZTU5NjA2ZTY3MTQ3MjNmMmQzZmZjMzFjMDMxNzQxOTFlZjBkMDE1YmRmMDYwMDc0NTAKICBlMjc1 ZTc2NDQyYTYwNjczNDFhMjdmMDRjNWM2YjgzZDg2MTMxNDQwMDRjMDQxMzUyODg2M2RjNmI1Yzc0 M2RhCi0gZmI4Mjk5ODk5OGIyYjI5OTY1NDY3YmMxYjY5ZDE1MmU5YzMwN2QyY2YzMDFjOWVhZmI0 NTU1Yjc3MGVmM2ZkMgorIGY3N2JkNDdjZjgxNzBjNTczNjVhZTdiZjg2Njk2YzExOGFkYjNiMTIw ZDMyNTljNjRjNTAyZDNkYzFlMmQ5MjYKICAyY2ExZjE3MDUxYTQzMGY2ZmVkMTE5NmU0OTUyNzE3 NTA3MTcxYWNmZDk3ZDk2NTc3MjEyNTAyNzAzYjI1ZGViIgogbm9jcm9zcz15ZXMKIAoKRnJvbSAy YmJhMGMyN2I2ZjI2ZGU0OThiZDUyNWU5NzdiMmIxYWUzMDNlNDgyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgNiBN YXIgMjAyNCAxODowNzoyMyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMTJdIGNyb3NzLWk2ODYt cGMtbGludXgtZ251OiByZWJ1aWxkIGZvciBnbGliYyAyLjM5CgotLS0KIHNyY3BrZ3MvY3Jvc3Mt aTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3Nz LWk2ODYtcGMtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1pNjg2LXBjLWxpbnV4 LWdudS90ZW1wbGF0ZQppbmRleCA3YTgyYzMyOGQ0YTkzNS4uMzAzMjFkYWQ2NzFmMGYgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9jcm9zcy1pNjg2LXBjLWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUnCiBfYmludXRpbHNf dmVyc2lvbj0yLjQxCiBfZ2NjX3ZlcnNpb249MTMuMi4wCi1fZ2xpYmNfdmVyc2lvbj0yLjM4Citf Z2xpYmNfdmVyc2lvbj0yLjM5CiBfbGludXhfdmVyc2lvbj02LjEKIHBrZ25hbWU9Y3Jvc3MtaTY4 Ni1wYy1saW51eC1nbnUKIHZlcnNpb249MC4zNgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVp bGRfc3R5bGU9dm9pZC1jcm9zcwogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2Jq YyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJpc2wt ZGV2ZWwgbGlibXBjLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsCkBAIC0yMSw3ICsyMSw3IEBA IGRpc3RmaWxlcys9IiAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19nbGliY192ZXJzaW9ufS50 YXIueHoiCiBkaXN0ZmlsZXMrPSIgJHtLRVJORUxfU0lURX0va2VybmVsL3Yke19saW51eF92ZXJz aW9uJSUuKn0ueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCiBjaGVja3N1bT0iYWU5 YTU3ODllMjM0NTllNTk2MDZlNjcxNDcyM2YyZDNmZmMzMWMwMzE3NDE5MWVmMGQwMTViZGYwNjAw NzQ1MAogIGUyNzVlNzY0NDJhNjA2NzM0MWEyN2YwNGM1YzZiODNkODYxMzE0NDAwNGMwNDEzNTI4 ODYzZGM2YjVjNzQzZGEKLSBmYjgyOTk4OTk4YjJiMjk5NjU0NjdiYzFiNjlkMTUyZTljMzA3ZDJj ZjMwMWM5ZWFmYjQ1NTViNzcwZWYzZmQyCisgZjc3YmQ0N2NmODE3MGM1NzM2NWFlN2JmODY2OTZj MTE4YWRiM2IxMjBkMzI1OWM2NGM1MDJkM2RjMWUyZDkyNgogIDJjYTFmMTcwNTFhNDMwZjZmZWQx MTk2ZTQ5NTI3MTc1MDcxNzFhY2ZkOTdkOTY1NzcyMTI1MDI3MDNiMjVkZWIiCiBub2Nyb3NzPXll cwogCgpGcm9tIGEyZDFhMGRhNDZlMjY4MjEyZGFjNDhjZmY1NmQ2YjViMDRjMTc1Y2UgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0 ZTogV2VkLCA2IE1hciAyMDI0IDE4OjA3OjI0IC0wODAwClN1YmplY3Q6IFtQQVRDSCAwNy8xMl0g Y3Jvc3MtcG93ZXJwYy1saW51eC1nbnU6IHJlYnVpbGQgZm9yIGdsaWJjIDIuMzkKCi0tLQogc3Jj cGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LWdudS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY3Jvc3MtcG93ZXJwYy1saW51eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXBv d2VycGMtbGludXgtZ251L3RlbXBsYXRlCmluZGV4IDNhMTRhNjJiY2VjMjk1Li5lYzE3NTM0MTRj ZDVhZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LWdudS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDEx ICsxLDExIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1wb3dlcnBjLWxpbnV4LWdudScK IF9iaW51dGlsc192ZXJzaW9uPTIuNDEKIF9nY2NfdmVyc2lvbj0xMy4yLjAKLV9nbGliY192ZXJz aW9uPTIuMzgKK19nbGliY192ZXJzaW9uPTIuMzkKIF9saW51eF92ZXJzaW9uPTYuMQogcGtnbmFt ZT1jcm9zcy1wb3dlcnBjLWxpbnV4LWdudQogdmVyc2lvbj0wLjM2Ci1yZXZpc2lvbj0xCityZXZp c2lvbj0yCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS1lbmFibGUt c2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5CiAgLS1lbmFibGUtYXV0b2xpbmstbGli YXRvbWljIgpAQCAtMjMsNyArMjMsNyBAQCBkaXN0ZmlsZXMrPSIgJHtHTlVfU0lURX0vZ2xpYmMv Z2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6IgogZGlzdGZpbGVzKz0iICR7S0VSTkVMX1NJ VEV9L2tlcm5lbC92JHtfbGludXhfdmVyc2lvbiUlLip9LngvbGludXgtJHtfbGludXhfdmVyc2lv bn0udGFyLnh6IgogY2hlY2tzdW09ImFlOWE1Nzg5ZTIzNDU5ZTU5NjA2ZTY3MTQ3MjNmMmQzZmZj MzFjMDMxNzQxOTFlZjBkMDE1YmRmMDYwMDc0NTAKICBlMjc1ZTc2NDQyYTYwNjczNDFhMjdmMDRj NWM2YjgzZDg2MTMxNDQwMDRjMDQxMzUyODg2M2RjNmI1Yzc0M2RhCi0gZmI4Mjk5ODk5OGIyYjI5 OTY1NDY3YmMxYjY5ZDE1MmU5YzMwN2QyY2YzMDFjOWVhZmI0NTU1Yjc3MGVmM2ZkMgorIGY3N2Jk NDdjZjgxNzBjNTczNjVhZTdiZjg2Njk2YzExOGFkYjNiMTIwZDMyNTljNjRjNTAyZDNkYzFlMmQ5 MjYKICAyY2ExZjE3MDUxYTQzMGY2ZmVkMTE5NmU0OTUyNzE3NTA3MTcxYWNmZDk3ZDk2NTc3MjEy NTAyNzAzYjI1ZGViIgogbm9jcm9zcz15ZXMKIAoKRnJvbSAzNTdlMWViZjg3MTkzOTc3ZjczMWVj NjI5NjRhNzRiMjE5ZjgwNzJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5 IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgNiBNYXIgMjAyNCAxODowNzoyNCAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggMDgvMTJdIGNyb3NzLXBvd2VycGM2NC1saW51eC1nbnU6IHJlYnVp bGQgZm9yIGdsaWJjIDIuMzkKCi0tLQogc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251 L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgt Z251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRl CmluZGV4IGY2NjRmMWRiYzc2NGEyLi41YWI0YWNlYzQ1ZmRiNiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3Mt cG93ZXJwYzY0LWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudScKIF9iaW51dGlsc192ZXJzaW9u PTIuNDEKIF9nY2NfdmVyc2lvbj0xMy4yLjAKLV9nbGliY192ZXJzaW9uPTIuMzgKK19nbGliY192 ZXJzaW9uPTIuMzkKIF9saW51eF92ZXJzaW9uPTYuMQogcGtnbmFtZT1jcm9zcy1wb3dlcnBjNjQt bGludXgtZ251CiB2ZXJzaW9uPTAuMzYKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0 eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQgLS1kaXNh YmxlLXZ0YWJsZS12ZXJpZnkgLS13aXRoLWFiaT1lbGZ2MgogIC0tZW5hYmxlLXRhcmdldHM9cG93 ZXJwYy1saW51eCAtLWVuYWJsZS1hdXRvbGluay1saWJhdG9taWMiCkBAIC0yMyw3ICsyMyw3IEBA IGRpc3RmaWxlcys9IiAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19nbGliY192ZXJzaW9ufS50 YXIueHoiCiBkaXN0ZmlsZXMrPSIgJHtLRVJORUxfU0lURX0va2VybmVsL3Yke19saW51eF92ZXJz aW9uJSUuKn0ueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCiBjaGVja3N1bT0iYWU5 YTU3ODllMjM0NTllNTk2MDZlNjcxNDcyM2YyZDNmZmMzMWMwMzE3NDE5MWVmMGQwMTViZGYwNjAw NzQ1MAogIGUyNzVlNzY0NDJhNjA2NzM0MWEyN2YwNGM1YzZiODNkODYxMzE0NDAwNGMwNDEzNTI4 ODYzZGM2YjVjNzQzZGEKLSBmYjgyOTk4OTk4YjJiMjk5NjU0NjdiYzFiNjlkMTUyZTljMzA3ZDJj ZjMwMWM5ZWFmYjQ1NTViNzcwZWYzZmQyCisgZjc3YmQ0N2NmODE3MGM1NzM2NWFlN2JmODY2OTZj MTE4YWRiM2IxMjBkMzI1OWM2NGM1MDJkM2RjMWUyZDkyNgogIDJjYTFmMTcwNTFhNDMwZjZmZWQx MTk2ZTQ5NTI3MTc1MDcxNzFhY2ZkOTdkOTY1NzcyMTI1MDI3MDNiMjVkZWIiCiBub2Nyb3NzPXll cwogCgpGcm9tIDFmMThjOGZmMmI2NWIwODcwZWQ2N2ZlMDUxMGZmZTVjMjQyODlmMmYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0 ZTogV2VkLCA2IE1hciAyMDI0IDE4OjA3OjI0IC0wODAwClN1YmplY3Q6IFtQQVRDSCAwOS8xMl0g Y3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251OiByZWJ1aWxkIGZvciBnbGliYyAyLjM5CgotLS0K IHNyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251L3RlbXBsYXRlIHwgNiArKystLS0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1nbnUvdGVtcGxhdGUgYi9zcmNw a2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCBlMGNhNmU5Y2Uy ZDAxYi4uMWZlOWViZjZkNDdmYjYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0 bGUtbGludXgtZ251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGlu dXgtZ251L3RlbXBsYXRlCkBAIC0xLDExICsxLDExIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdj cm9zcy1wb3dlcnBjNjRsZS1saW51eC1nbnUnCiBfYmludXRpbHNfdmVyc2lvbj0yLjQxCiBfZ2Nj X3ZlcnNpb249MTMuMi4wCi1fZ2xpYmNfdmVyc2lvbj0yLjM4CitfZ2xpYmNfdmVyc2lvbj0yLjM5 CiBfbGludXhfdmVyc2lvbj02LjEKIHBrZ25hbWU9Y3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251 CiB2ZXJzaW9uPTAuMzYKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPXZvaWQt Y3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQgLS1kaXNhYmxlLXZ0YWJs ZS12ZXJpZnkgLS13aXRoLWFiaT1lbGZ2MgogIC0tZW5hYmxlLXRhcmdldHM9cG93ZXJwY2xlLWxp bnV4IC0tZW5hYmxlLWF1dG9saW5rLWxpYmF0b21pYyIKQEAgLTIzLDcgKzIzLDcgQEAgZGlzdGZp bGVzKz0iICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54eiIK IGRpc3RmaWxlcys9IiAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdiR7X2xpbnV4X3ZlcnNpb24lJS4q fS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIKIGNoZWNrc3VtPSJhZTlhNTc4OWUy MzQ1OWU1OTYwNmU2NzE0NzIzZjJkM2ZmYzMxYzAzMTc0MTkxZWYwZDAxNWJkZjA2MDA3NDUwCiAg ZTI3NWU3NjQ0MmE2MDY3MzQxYTI3ZjA0YzVjNmI4M2Q4NjEzMTQ0MDA0YzA0MTM1Mjg4NjNkYzZi NWM3NDNkYQotIGZiODI5OTg5OThiMmIyOTk2NTQ2N2JjMWI2OWQxNTJlOWMzMDdkMmNmMzAxYzll YWZiNDU1NWI3NzBlZjNmZDIKKyBmNzdiZDQ3Y2Y4MTcwYzU3MzY1YWU3YmY4NjY5NmMxMThhZGIz YjEyMGQzMjU5YzY0YzUwMmQzZGMxZTJkOTI2CiAgMmNhMWYxNzA1MWE0MzBmNmZlZDExOTZlNDk1 MjcxNzUwNzE3MWFjZmQ5N2Q5NjU3NzIxMjUwMjcwM2IyNWRlYiIKIG5vY3Jvc3M9eWVzCiAKCkZy b20gNTkyM2U0NzgyMDgxZmQ2MzJjMjAwMWRhYzZlMzg2NWUwM2QzMTQ0YiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBXZWQs IDYgTWFyIDIwMjQgMTg6MDc6MjQgLTA4MDAKU3ViamVjdDogW1BBVENIIDEwLzEyXSBjcm9zcy1w b3dlcnBjbGUtbGludXgtZ251OiByZWJ1aWxkIGZvciBnbGliYyAyLjM5CgotLS0KIHNyY3BrZ3Mv Y3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93 ZXJwY2xlLWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCBmMTgzNzBhMzA0ODc1Yi4uM2EwY2QwZDZi YjRiNGQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudS90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51eC1nbnUvdGVtcGxhdGUKQEAg LTEsMTEgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXBvd2VycGNsZS1saW51 eC1nbnUnCiBfYmludXRpbHNfdmVyc2lvbj0yLjQxCiBfZ2NjX3ZlcnNpb249MTMuMi4wCi1fZ2xp YmNfdmVyc2lvbj0yLjM4CitfZ2xpYmNfdmVyc2lvbj0yLjM5CiBfbGludXhfdmVyc2lvbj02LjEK IHBrZ25hbWU9Y3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudQogdmVyc2lvbj0wLjM2Ci1yZXZpc2lv bj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0i LS1lbmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5CiAgLS1lbmFibGUtYXV0 b2xpbmstbGliYXRvbWljIgpAQCAtMjQsNyArMjQsNyBAQCBkaXN0ZmlsZXM9IgogICR7S0VSTkVM X1NJVEV9L2tlcm5lbC92JHtfbGludXhfdmVyc2lvbiUlLip9LngvbGludXgtJHtfbGludXhfdmVy c2lvbn0udGFyLnh6IgogY2hlY2tzdW09ImFlOWE1Nzg5ZTIzNDU5ZTU5NjA2ZTY3MTQ3MjNmMmQz ZmZjMzFjMDMxNzQxOTFlZjBkMDE1YmRmMDYwMDc0NTAKICBlMjc1ZTc2NDQyYTYwNjczNDFhMjdm MDRjNWM2YjgzZDg2MTMxNDQwMDRjMDQxMzUyODg2M2RjNmI1Yzc0M2RhCi0gZmI4Mjk5ODk5OGIy YjI5OTY1NDY3YmMxYjY5ZDE1MmU5YzMwN2QyY2YzMDFjOWVhZmI0NTU1Yjc3MGVmM2ZkMgorIGY3 N2JkNDdjZjgxNzBjNTczNjVhZTdiZjg2Njk2YzExOGFkYjNiMTIwZDMyNTljNjRjNTAyZDNkYzFl MmQ5MjYKICAyY2ExZjE3MDUxYTQzMGY2ZmVkMTE5NmU0OTUyNzE3NTA3MTcxYWNmZDk3ZDk2NTc3 MjEyNTAyNzAzYjI1ZGViIgogbm9jcm9zcz15ZXMKIAoKRnJvbSAyMTYzZjFhNmZhZTU0YjE3YjM2 ODVkZTgxMjllYjVhZGE4YTYzOTk4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVv NjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgNiBNYXIgMjAyNCAxODowNzoyNCAt MDgwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMTJdIGNyb3NzLXJpc2N2NjQtbGludXgtZ251OiByZWJ1 aWxkIGZvciBnbGliYyAyLjM5CgotLS0KIHNyY3BrZ3MvY3Jvc3MtcmlzY3Y2NC1saW51eC1nbnUv dGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXJpc2N2NjQtbGludXgtZ251 L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1yaXNjdjY0LWxpbnV4LWdudS90ZW1wbGF0ZQppbmRl eCA2OTBiNWQ2MTg0MjM5NS4uNWQ1NmNlODUzZDk2MDYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jv c3MtcmlzY3Y2NC1saW51eC1nbnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1yaXNjdjY0 LWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnY3Jvc3MtcmlzY3Y2NC1saW51eC1nbnUnCiBfYmludXRpbHNfdmVyc2lvbj0yLjQxCiBfZ2Nj X3ZlcnNpb249MTMuMi4wCi1fZ2xpYmNfdmVyc2lvbj0yLjM4CitfZ2xpYmNfdmVyc2lvbj0yLjM5 CiBfbGludXhfdmVyc2lvbj02LjEKIHBrZ25hbWU9Y3Jvc3MtcmlzY3Y2NC1saW51eC1nbnUKIHZl cnNpb249MC4zNgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9dm9pZC1jcm9z cwogY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPXJ2NjRnYyAtLXdpdGgtYWJpPWxwNjRkIC0t ZW5hYmxlLWF1dG9saW5rLWxpYmF0b21pYyAtLWRpc2FibGUtbXVsdGlsaWIiCiBob3N0bWFrZWRl cGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyBwa2ct Y29uZmlnIgpAQCAtMjIsNyArMjIsNyBAQCBkaXN0ZmlsZXMrPSIgJHtHTlVfU0lURX0vZ2xpYmMv Z2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6IgogZGlzdGZpbGVzKz0iICR7S0VSTkVMX1NJ VEV9L2tlcm5lbC92JHtfbGludXhfdmVyc2lvbiUlLip9LngvbGludXgtJHtfbGludXhfdmVyc2lv bn0udGFyLnh6IgogY2hlY2tzdW09ImFlOWE1Nzg5ZTIzNDU5ZTU5NjA2ZTY3MTQ3MjNmMmQzZmZj MzFjMDMxNzQxOTFlZjBkMDE1YmRmMDYwMDc0NTAKICBlMjc1ZTc2NDQyYTYwNjczNDFhMjdmMDRj NWM2YjgzZDg2MTMxNDQwMDRjMDQxMzUyODg2M2RjNmI1Yzc0M2RhCi0gZmI4Mjk5ODk5OGIyYjI5 OTY1NDY3YmMxYjY5ZDE1MmU5YzMwN2QyY2YzMDFjOWVhZmI0NTU1Yjc3MGVmM2ZkMgorIGY3N2Jk NDdjZjgxNzBjNTczNjVhZTdiZjg2Njk2YzExOGFkYjNiMTIwZDMyNTljNjRjNTAyZDNkYzFlMmQ5 MjYKICAyY2ExZjE3MDUxYTQzMGY2ZmVkMTE5NmU0OTUyNzE3NTA3MTcxYWNmZDk3ZDk2NTc3MjEy NTAyNzAzYjI1ZGViIgogbm9jcm9zcz15ZXMKIAoKRnJvbSA2MmQ3MWY4Y2EzNWVhMTc0MDQ4YTRl NDliNjY2YTI1NDBiNmQ5YTQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5 IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgNiBNYXIgMjAyNCAxODowNzoyNCAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggMTIvMTJdIGNyb3NzLXg4Nl82NC1saW51eC1nbnU6IHJlYnVpbGQg Zm9yIGdsaWJjIDIuMzkKCi0tLQogc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtZ251L3RlbXBs YXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtZ251L3RlbXBs YXRlIGIvc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtZ251L3RlbXBsYXRlCmluZGV4IDRmYjM1 Y2I2ZjczNmNhLi44Y2NhODMyODk2YzRkNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy14ODZf NjQtbGludXgtZ251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LWdu dS90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3Mt eDg2XzY0LWxpbnV4LWdudScKIF9iaW51dGlsc192ZXJzaW9uPTIuNDEKIF9nY2NfdmVyc2lvbj0x My4yLjAKLV9nbGliY192ZXJzaW9uPTIuMzgKK19nbGliY192ZXJzaW9uPTIuMzkKIF9saW51eF92 ZXJzaW9uPTYuMQogcGtnbmFtZT1jcm9zcy14ODZfNjQtbGludXgtZ251CiB2ZXJzaW9uPTAuMzYK LXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGhvc3RtYWtl ZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIHBr Zy1jb25maWciCiBtYWtlZGVwZW5kcz0iaXNsLWRldmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwg bXBmci1kZXZlbApAQCAtMjEsNyArMjEsNyBAQCBkaXN0ZmlsZXMrPSIgJHtHTlVfU0lURX0vZ2xp YmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6IgogZGlzdGZpbGVzKz0iICR7S0VSTkVM X1NJVEV9L2tlcm5lbC92JHtfbGludXhfdmVyc2lvbiUlLip9LngvbGludXgtJHtfbGludXhfdmVy c2lvbn0udGFyLnh6IgogY2hlY2tzdW09ImFlOWE1Nzg5ZTIzNDU5ZTU5NjA2ZTY3MTQ3MjNmMmQz ZmZjMzFjMDMxNzQxOTFlZjBkMDE1YmRmMDYwMDc0NTAKICBlMjc1ZTc2NDQyYTYwNjczNDFhMjdm MDRjNWM2YjgzZDg2MTMxNDQwMDRjMDQxMzUyODg2M2RjNmI1Yzc0M2RhCi0gZmI4Mjk5ODk5OGIy YjI5OTY1NDY3YmMxYjY5ZDE1MmU5YzMwN2QyY2YzMDFjOWVhZmI0NTU1Yjc3MGVmM2ZkMgorIGY3 N2JkNDdjZjgxNzBjNTczNjVhZTdiZjg2Njk2YzExOGFkYjNiMTIwZDMyNTljNjRjNTAyZDNkYzFl MmQ5MjYKICAyY2ExZjE3MDUxYTQzMGY2ZmVkMTE5NmU0OTUyNzE3NTA3MTcxYWNmZDk3ZDk2NTc3 MjEyNTAyNzAzYjI1ZGViIgogbm9jcm9zcz15ZXMKIAo= --===============4692901006130190737==--