From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp82.ord1c.emailsrvr.com (smtp82.ord1c.emailsrvr.com [108.166.43.82]) by sourceware.org (Postfix) with ESMTPS id 6D5BD3858D35 for ; Sun, 27 Feb 2022 16:53:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6D5BD3858D35 X-Auth-ID: tom@honermann.net Received: by smtp27.relay.ord1c.emailsrvr.com (Authenticated sender: tom-AT-honermann.net) with ESMTPSA id 2599440083 for ; Sun, 27 Feb 2022 11:53:25 -0500 (EST) Content-Type: multipart/mixed; boundary="------------n3FdbbHNyLcHW24z1PPiRY0j" Message-ID: <57610f50-dd95-fd32-1102-5f1cda440891@honermann.net> Date: Sun, 27 Feb 2022 11:53:23 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Content-Language: en-US From: Tom Honermann Subject: [PATCH 2/3]: C++20 P0482R6 and C2X N2653: Implement mbrtoc8, c8rtomb, char8_t To: libc-alpha X-Classification-ID: 532f964c-4949-4264-b6fd-73f940998a65-1-1 X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Feb 2022 16:53:30 -0000 This is a multi-part message in MIME format. --------------n3FdbbHNyLcHW24z1PPiRY0j Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit This patch provides implementations for the mbrtoc8 and c8rtomb functions adopted for C++20 via WG21 P0482R6 [1] and for C2X via WG14 N2653 [2]. It also provides the char8_t typedef adopted for C2X via WG14 N2653 [2]. The mbrtoc8 and c8rtomb functions are declared in uchar.h in C2X mode or when the _GNU_SOURCE macro or C++20 __cpp_char8_t feature test macro is defined. The char8_t typedef is declared in uchar.h in C2X mode or when the _GNU_SOURCE macro is defined and the C++20 __cpp_char8_t feature test macro is not defined (if __cpp_char8_t is defined, then char8_t is a builtin type). Tested on Linux x86_64. Tom. [1]: WG21 P0482R6 "char8_t: A type for UTF-8 characters and strings (Revision 6)" https://wg21.link/p0482r6 [2]: WG14 N2653 "char8_t: A type for UTF-8 characters and strings (Revision 1)" http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2653.htm --------------n3FdbbHNyLcHW24z1PPiRY0j Content-Type: text/x-patch; charset=UTF-8; name="n2653-2.patch" Content-Disposition: attachment; filename="n2653-2.patch" Content-Transfer-Encoding: base64 Y29tbWl0IGQyOWZmMjE0MDM5MTNmNzAxNGZlM2RlZWJlNjVjOTI5NGU2YzFkNDQKQXV0aG9y OiBUb20gSG9uZXJtYW5uIDx0b21AaG9uZXJtYW5uLm5ldD4KRGF0ZTogICBTdW4gRmViIDI3 IDEwOjI4OjU4IDIwMjIgLTA1MDAKCiAgICBJbXBsZW1lbnQgbWJydG9jOCgpLCBjOHJ0b21i KCksIGFuZCB0aGUgY2hhcjhfdCB0eXBlZGVmLgogICAgCiAgICBUaGlzIGNoYW5nZSBwcm92 aWRlcyBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSBtYnJ0b2M4IGFuZCBjOHJ0b21iCiAgICBm dW5jdGlvbnMgYWRvcHRlZCBmb3IgQysrMjAgdmlhIFdHMjEgUDA0ODJSNiBhbmQgZm9yIEMy WCB2aWEgV0cxNAogICAgTjI2NTMuICBJdCBhbHNvIHByb3ZpZGVzIHRoZSBjaGFyOF90IHR5 cGVkZWYgZnJvbSBXRzE0IE4yNjUzLgogICAgCiAgICBUaGUgbWJydG9jOCBhbmQgYzhydG9t YiBmdW5jdGlvbnMgYXJlIGRlY2xhcmVkIGluIHVjaGFyLmggaW4gQzJYCiAgICBtb2RlIG9y IHdoZW4gdGhlIF9HTlVfU09VUkNFIG1hY3JvIG9yIEMrKzIwIF9fY3BwX2NoYXI4X3QgZmVh dHVyZQogICAgdGVzdCBtYWNybyBpcyBkZWZpbmVkLgogICAgCiAgICBUaGUgY2hhcjhfdCB0 eXBlZGVmIGlzIGRlY2xhcmVkIGluIHVjaGFyLmggaW4gQzJYIG1vZGUgb3Igd2hlbiB0aGUK ICAgIF9HTlVfU09VUkNFIG1hY3JvIGlzIGRlZmluZWQgYW5kIHRoZSBDKysyMCBfX2NwcF9j aGFyOF90IGZlYXR1cmUKICAgIHRlc3QgbWFjcm8gaXMgbm90IGRlZmluZWQgKGlmIF9fY3Bw X2NoYXI4X3QgaXMgZGVmaW5lZCwgdGhlbiBjaGFyOF90CiAgICBpcyBhIGJ1aWx0aW4gdHlw ZSkuCgpkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKaW5kZXggNjI2ZWVhYmY1ZC4uM2M0YjU5 N2FiMyAxMDA2NDQKLS0tIGEvTkVXUworKysgYi9ORVdTCkBAIC05LDYgKzksMTUgQEAgVmVy c2lvbiAyLjM2CiAKIE1ham9yIG5ldyBmZWF0dXJlczoKIAorKiBTdXBwb3J0IGZvciB0aGUg bWJydG9jOCBhbmQgYzhydG9tYiBtdWx0aWJ5dGUvVVRGLTggY2hhcmFjdGVyIGNvbnZlcnNp b24KKyAgZnVuY3Rpb25zIGhhcyBiZWVuIGFkZGVkIHBlciB0aGUgSVNPIEMyWCBOMjY1MyBh bmQgQysrMjAgUDA0ODJSNiBwcm9wb3NhbHMuCisgIFN1cHBvcnQgZm9yIHRoZSBjaGFyOF90 IHR5cGVkZWYgaGFzIGJlZW4gYWRkZWQgcGVyIHRoZSBJU08gQzJYIE4yNjUzCisgIHByb3Bv c2FsLiBUaGUgZnVuY3Rpb25zIGFyZSBkZWNsYXJlZCBpbiB1Y2hhci5oIGluIEMyWCBtb2Rl IG9yIHdoZW4gdGhlCisgIF9HTlVfU09VUkNFIG1hY3JvIG9yIEMrKzIwIF9fY3BwX2NoYXI4 X3QgZmVhdHVyZSB0ZXN0IG1hY3JvIGlzIGRlZmluZWQuCisgIFRoZSBjaGFyOF90IHR5cGVk ZWYgaXMgZGVjbGFyZWQgaW4gdWNoYXIuaCBpbiBDMlggbW9kZSBvciB3aGVuIHRoZQorICBf R05VX1NPVVJDRSBtYWNybyBpcyBkZWZpbmVkIGFuZCB0aGUgQysrMjAgX19jcHBfY2hhcjhf dCBmZWF0dXJlIHRlc3QgbWFjcm8KKyAgaXMgbm90IGRlZmluZWQgKGlmIF9fY3BwX2NoYXI4 X3QgaXMgZGVmaW5lZCwgdGhlbiBjaGFyOF90IGlzIGEgYnVpbHRpbiB0eXBlKS4KKwogICBb QWRkIG5ldyBmZWF0dXJlcyBoZXJlXQogCiBEZXByZWNhdGVkIGFuZCByZW1vdmVkIGZlYXR1 cmVzLCBhbmQgb3RoZXIgY2hhbmdlcyBhZmZlY3RpbmcgY29tcGF0aWJpbGl0eToKZGlmZiAt LWdpdCBhL3N5c2RlcHMvbWFjaC9odXJkL2kzODYvbGliYy5hYmlsaXN0IGIvc3lzZGVwcy9t YWNoL2h1cmQvaTM4Ni9saWJjLmFiaWxpc3QKaW5kZXggNGRjODdlOTA2MS4uNjZmYjBlMjhm YSAxMDA2NDQKLS0tIGEvc3lzZGVwcy9tYWNoL2h1cmQvaTM4Ni9saWJjLmFiaWxpc3QKKysr IGIvc3lzZGVwcy9tYWNoL2h1cmQvaTM4Ni9saWJjLmFiaWxpc3QKQEAgLTIyODksNiArMjI4 OSw4IEBAIEdMSUJDXzIuMzUgX19tZW1jbXBlcSBGCiBHTElCQ18yLjM1IF9kbF9maW5kX29i amVjdCBGCiBHTElCQ18yLjM1IGNsb3NlX3JhbmdlIEYKIEdMSUJDXzIuMzUgcG9zaXhfc3Bh d25fZmlsZV9hY3Rpb25zX2FkZHRjc2V0cGdycF9ucCBGCitHTElCQ18yLjM2IGM4cnRvbWIg RgorR0xJQkNfMi4zNiBtYnJ0b2M4IEYKIEdMSUJDXzIuNCBfX2NvbmZzdHJfY2hrIEYKIEdM SUJDXzIuNCBfX2ZnZXRzX2NoayBGCiBHTElCQ18yLjQgX19mZ2V0c191bmxvY2tlZF9jaGsg RgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWFyY2g2NC9saWJjLmFi aWxpc3QgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hYXJjaDY0L2xpYmMuYWJpbGlzdApp bmRleCAxYjYzZDllNDQ3Li44MmRmYWUzNDIxIDEwMDY0NAotLS0gYS9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC9hYXJjaDY0L2xpYmMuYWJpbGlzdAorKysgYi9zeXNkZXBzL3VuaXgvc3lz di9saW51eC9hYXJjaDY0L2xpYmMuYWJpbGlzdApAQCAtMjYxNiwzICsyNjE2LDUgQEAgR0xJ QkNfMi4zNSBfX21lbWNtcGVxIEYKIEdMSUJDXzIuMzUgX2RsX2ZpbmRfb2JqZWN0IEYKIEdM SUJDXzIuMzUgZXBvbGxfcHdhaXQyIEYKIEdMSUJDXzIuMzUgcG9zaXhfc3Bhd25fZmlsZV9h Y3Rpb25zX2FkZHRjc2V0cGdycF9ucCBGCitHTElCQ18yLjM2IGM4cnRvbWIgRgorR0xJQkNf Mi4zNiBtYnJ0b2M4IEYKZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Fs cGhhL2xpYmMuYWJpbGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2xpYmMu YWJpbGlzdAppbmRleCBlN2U0Y2Y3ZDJhLi41NmQ5MDk0YTU4IDEwMDY0NAotLS0gYS9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9saWJjLmFiaWxpc3QKKysrIGIvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvYWxwaGEvbGliYy5hYmlsaXN0CkBAIC0yNzEzLDYgKzI3MTMsOCBA QCBHTElCQ18yLjM1IF9fbWVtY21wZXEgRgogR0xJQkNfMi4zNSBfZGxfZmluZF9vYmplY3Qg RgogR0xJQkNfMi4zNSBlcG9sbF9wd2FpdDIgRgogR0xJQkNfMi4zNSBwb3NpeF9zcGF3bl9m aWxlX2FjdGlvbnNfYWRkdGNzZXRwZ3JwX25wIEYKK0dMSUJDXzIuMzYgYzhydG9tYiBGCitH TElCQ18yLjM2IG1icnRvYzggRgogR0xJQkNfMi40IF9JT19mcHJpbnRmIEYKIEdMSUJDXzIu NCBfSU9fcHJpbnRmIEYKIEdMSUJDXzIuNCBfSU9fc3ByaW50ZiBGCmRpZmYgLS1naXQgYS9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9hcmMvbGliYy5hYmlsaXN0IGIvc3lzZGVwcy91bml4 L3N5c3YvbGludXgvYXJjL2xpYmMuYWJpbGlzdAppbmRleCBiYzNkMjI4ZTMxLi5mYjdmYzEx N2YzIDEwMDY0NAotLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hcmMvbGliYy5hYmls aXN0CisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FyYy9saWJjLmFiaWxpc3QKQEAg LTIzNzcsMyArMjM3Nyw1IEBAIEdMSUJDXzIuMzUgX19tZW1jbXBlcSBGCiBHTElCQ18yLjM1 IF9kbF9maW5kX29iamVjdCBGCiBHTElCQ18yLjM1IGVwb2xsX3B3YWl0MiBGCiBHTElCQ18y LjM1IHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGR0Y3NldHBncnBfbnAgRgorR0xJQkNf Mi4zNiBjOHJ0b21iIEYKK0dMSUJDXzIuMzYgbWJydG9jOCBGCmRpZmYgLS1naXQgYS9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9hcm0vYmUvbGliYy5hYmlsaXN0IGIvc3lzZGVwcy91bml4 L3N5c3YvbGludXgvYXJtL2JlL2xpYmMuYWJpbGlzdAppbmRleCBkYjcwMzljNGFiLi5mN2Mz Yjg3YmMwIDEwMDY0NAotLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hcm0vYmUvbGli Yy5hYmlsaXN0CisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FybS9iZS9saWJjLmFi aWxpc3QKQEAgLTQ5Niw2ICs0OTYsOCBAQCBHTElCQ18yLjM1IF9fbWVtY21wZXEgRgogR0xJ QkNfMi4zNSBfZGxfZmluZF9vYmplY3QgRgogR0xJQkNfMi4zNSBlcG9sbF9wd2FpdDIgRgog R0xJQkNfMi4zNSBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkdGNzZXRwZ3JwX25wIEYK K0dMSUJDXzIuMzYgYzhydG9tYiBGCitHTElCQ18yLjM2IG1icnRvYzggRgogR0xJQkNfMi40 IF9FeGl0IEYKIEdMSUJDXzIuNCBfSU9fMl8xX3N0ZGVycl8gRCAweGEwCiBHTElCQ18yLjQg X0lPXzJfMV9zdGRpbl8gRCAweGEwCmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9hcm0vbGUvbGliYy5hYmlsaXN0IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvYXJt L2xlL2xpYmMuYWJpbGlzdAppbmRleCBkMmFkZDRmYjQ5Li4xOWY0NDUxMGVlIDEwMDY0NAot LS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hcm0vbGUvbGliYy5hYmlsaXN0CisrKyBi L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FybS9sZS9saWJjLmFiaWxpc3QKQEAgLTQ5Myw2 ICs0OTMsOCBAQCBHTElCQ18yLjM1IF9fbWVtY21wZXEgRgogR0xJQkNfMi4zNSBfZGxfZmlu ZF9vYmplY3QgRgogR0xJQkNfMi4zNSBlcG9sbF9wd2FpdDIgRgogR0xJQkNfMi4zNSBwb3Np eF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkdGNzZXRwZ3JwX25wIEYKK0dMSUJDXzIuMzYgYzhy dG9tYiBGCitHTElCQ18yLjM2IG1icnRvYzggRgogR0xJQkNfMi40IF9FeGl0IEYKIEdMSUJD XzIuNCBfSU9fMl8xX3N0ZGVycl8gRCAweGEwCiBHTElCQ18yLjQgX0lPXzJfMV9zdGRpbl8g RCAweGEwCmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jc2t5L2xpYmMu YWJpbGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Nza3kvbGliYy5hYmlsaXN0Cmlu ZGV4IDM1NWQ3MmEzMGMuLmZjZTNlZTYzZWEgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L2Nza3kvbGliYy5hYmlsaXN0CisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xp bnV4L2Nza3kvbGliYy5hYmlsaXN0CkBAIC0yNjUyLDMgKzI2NTIsNSBAQCBHTElCQ18yLjM1 IF9fbWVtY21wZXEgRgogR0xJQkNfMi4zNSBfZGxfZmluZF9vYmplY3QgRgogR0xJQkNfMi4z NSBlcG9sbF9wd2FpdDIgRgogR0xJQkNfMi4zNSBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNf YWRkdGNzZXRwZ3JwX25wIEYKK0dMSUJDXzIuMzYgYzhydG9tYiBGCitHTElCQ18yLjM2IG1i cnRvYzggRgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaHBwYS9saWJj LmFiaWxpc3QgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9ocHBhL2xpYmMuYWJpbGlzdApp bmRleCAzZGYzOWJiMjhjLi4zMDdiNzdjMjViIDEwMDY0NAotLS0gYS9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC9ocHBhL2xpYmMuYWJpbGlzdAorKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9ocHBhL2xpYmMuYWJpbGlzdApAQCAtMjYwMSw2ICsyNjAxLDggQEAgR0xJQkNfMi4z NSBfX21lbWNtcGVxIEYKIEdMSUJDXzIuMzUgX2RsX2ZpbmRfb2JqZWN0IEYKIEdMSUJDXzIu MzUgZXBvbGxfcHdhaXQyIEYKIEdMSUJDXzIuMzUgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25z X2FkZHRjc2V0cGdycF9ucCBGCitHTElCQ18yLjM2IGM4cnRvbWIgRgorR0xJQkNfMi4zNiBt YnJ0b2M4IEYKIEdMSUJDXzIuNCBfX2NvbmZzdHJfY2hrIEYKIEdMSUJDXzIuNCBfX2ZnZXRz X2NoayBGCiBHTElCQ18yLjQgX19mZ2V0c191bmxvY2tlZF9jaGsgRgpkaWZmIC0tZ2l0IGEv c3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9saWJjLmFiaWxpc3QgYi9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9pMzg2L2xpYmMuYWJpbGlzdAppbmRleCBjNGRhMzU4ZjgwLi45OWYz YjBkZGUxIDEwMDY0NAotLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L2xpYmMu YWJpbGlzdAorKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L2xpYmMuYWJpbGlz dApAQCAtMjc4NSw2ICsyNzg1LDggQEAgR0xJQkNfMi4zNSBfX21lbWNtcGVxIEYKIEdMSUJD XzIuMzUgX2RsX2ZpbmRfb2JqZWN0IEYKIEdMSUJDXzIuMzUgZXBvbGxfcHdhaXQyIEYKIEdM SUJDXzIuMzUgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZHRjc2V0cGdycF9ucCBGCitH TElCQ18yLjM2IGM4cnRvbWIgRgorR0xJQkNfMi4zNiBtYnJ0b2M4IEYKIEdMSUJDXzIuNCBf X2NvbmZzdHJfY2hrIEYKIEdMSUJDXzIuNCBfX2ZnZXRzX2NoayBGCiBHTElCQ18yLjQgX19m Z2V0c191bmxvY2tlZF9jaGsgRgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvaWE2NC9saWJjLmFiaWxpc3QgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pYTY0L2xp YmMuYWJpbGlzdAppbmRleCAyNDFiYWM3MGVhLi4zZmUxOGMxYmVhIDEwMDY0NAotLS0gYS9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9pYTY0L2xpYmMuYWJpbGlzdAorKysgYi9zeXNkZXBz L3VuaXgvc3lzdi9saW51eC9pYTY0L2xpYmMuYWJpbGlzdApAQCAtMjU1MSw2ICsyNTUxLDgg QEAgR0xJQkNfMi4zNSBfX21lbWNtcGVxIEYKIEdMSUJDXzIuMzUgX2RsX2ZpbmRfb2JqZWN0 IEYKIEdMSUJDXzIuMzUgZXBvbGxfcHdhaXQyIEYKIEdMSUJDXzIuMzUgcG9zaXhfc3Bhd25f ZmlsZV9hY3Rpb25zX2FkZHRjc2V0cGdycF9ucCBGCitHTElCQ18yLjM2IGM4cnRvbWIgRgor R0xJQkNfMi4zNiBtYnJ0b2M4IEYKIEdMSUJDXzIuNCBfX2NvbmZzdHJfY2hrIEYKIEdMSUJD XzIuNCBfX2ZnZXRzX2NoayBGCiBHTElCQ18yLjQgX19mZ2V0c191bmxvY2tlZF9jaGsgRgpk aWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9jb2xkZmlyZS9saWJj LmFiaWxpc3QgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2NvbGRmaXJlL2xpYmMu YWJpbGlzdAppbmRleCA3OGJmMzcyYjcyLi5hZWU4Y2I1NzZiIDEwMDY0NAotLS0gYS9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2NvbGRmaXJlL2xpYmMuYWJpbGlzdAorKysgYi9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2NvbGRmaXJlL2xpYmMuYWJpbGlzdApAQCAt NDk3LDYgKzQ5Nyw4IEBAIEdMSUJDXzIuMzUgX19tZW1jbXBlcSBGCiBHTElCQ18yLjM1IF9k bF9maW5kX29iamVjdCBGCiBHTElCQ18yLjM1IGVwb2xsX3B3YWl0MiBGCiBHTElCQ18yLjM1 IHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGR0Y3NldHBncnBfbnAgRgorR0xJQkNfMi4z NiBjOHJ0b21iIEYKK0dMSUJDXzIuMzYgbWJydG9jOCBGCiBHTElCQ18yLjQgX0V4aXQgRgog R0xJQkNfMi40IF9JT18yXzFfc3RkZXJyXyBEIDB4OTgKIEdMSUJDXzIuNCBfSU9fMl8xX3N0 ZGluXyBEIDB4OTgKZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsv bTY4MHgwL2xpYmMuYWJpbGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvbTY4 MHgwL2xpYmMuYWJpbGlzdAppbmRleCAwMGRmNWM5MDFmLi45YjIwNGM1Y2Y5IDEwMDY0NAot LS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL202ODB4MC9saWJjLmFiaWxpc3QK KysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9tNjgweDAvbGliYy5hYmlsaXN0 CkBAIC0yNzI4LDYgKzI3MjgsOCBAQCBHTElCQ18yLjM1IF9fbWVtY21wZXEgRgogR0xJQkNf Mi4zNSBfZGxfZmluZF9vYmplY3QgRgogR0xJQkNfMi4zNSBlcG9sbF9wd2FpdDIgRgogR0xJ QkNfMi4zNSBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkdGNzZXRwZ3JwX25wIEYKK0dM SUJDXzIuMzYgYzhydG9tYiBGCitHTElCQ18yLjM2IG1icnRvYzggRgogR0xJQkNfMi40IF9f Y29uZnN0cl9jaGsgRgogR0xJQkNfMi40IF9fZmdldHNfY2hrIEYKIEdMSUJDXzIuNCBfX2Zn ZXRzX3VubG9ja2VkX2NoayBGCmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9taWNyb2JsYXplL2JlL2xpYmMuYWJpbGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L21pY3JvYmxhemUvYmUvbGliYy5hYmlsaXN0CmluZGV4IGU4MTE4NTY5YzMuLjZlYzgxOTUy ZTEgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21pY3JvYmxhemUvYmUv bGliYy5hYmlsaXN0CisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21pY3JvYmxhemUv YmUvbGliYy5hYmlsaXN0CkBAIC0yNzAxLDMgKzI3MDEsNSBAQCBHTElCQ18yLjM1IF9fbWVt Y21wZXEgRgogR0xJQkNfMi4zNSBfZGxfZmluZF9vYmplY3QgRgogR0xJQkNfMi4zNSBlcG9s bF9wd2FpdDIgRgogR0xJQkNfMi4zNSBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkdGNz ZXRwZ3JwX25wIEYKK0dMSUJDXzIuMzYgYzhydG9tYiBGCitHTElCQ18yLjM2IG1icnRvYzgg RgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWljcm9ibGF6ZS9sZS9s aWJjLmFiaWxpc3QgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taWNyb2JsYXplL2xlL2xp YmMuYWJpbGlzdAppbmRleCBjMGQyMzczZTY0Li43YjQ4NGE4NDE5IDEwMDY0NAotLS0gYS9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9taWNyb2JsYXplL2xlL2xpYmMuYWJpbGlzdAorKysg Yi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taWNyb2JsYXplL2xlL2xpYmMuYWJpbGlzdApA QCAtMjY5OCwzICsyNjk4LDUgQEAgR0xJQkNfMi4zNSBfX21lbWNtcGVxIEYKIEdMSUJDXzIu MzUgX2RsX2ZpbmRfb2JqZWN0IEYKIEdMSUJDXzIuMzUgZXBvbGxfcHdhaXQyIEYKIEdMSUJD XzIuMzUgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZHRjc2V0cGdycF9ucCBGCitHTElC Q18yLjM2IGM4cnRvbWIgRgorR0xJQkNfMi4zNiBtYnJ0b2M4IEYKZGlmZiAtLWdpdCBhL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L21pcHMvbWlwczMyL2ZwdS9saWJjLmFiaWxpc3QgYi9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL21pcHMzMi9mcHUvbGliYy5hYmlsaXN0Cmlu ZGV4IDJkMGZkMDRmNTQuLjI2ZTQzMjFmODAgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L21pcHMvbWlwczMyL2ZwdS9saWJjLmFiaWxpc3QKKysrIGIvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvbWlwcy9taXBzMzIvZnB1L2xpYmMuYWJpbGlzdApAQCAtMjY5Myw2 ICsyNjkzLDggQEAgR0xJQkNfMi4zNSBfX21lbWNtcGVxIEYKIEdMSUJDXzIuMzUgX2RsX2Zp bmRfb2JqZWN0IEYKIEdMSUJDXzIuMzUgZXBvbGxfcHdhaXQyIEYKIEdMSUJDXzIuMzUgcG9z aXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZHRjc2V0cGdycF9ucCBGCitHTElCQ18yLjM2IGM4 cnRvbWIgRgorR0xJQkNfMi4zNiBtYnJ0b2M4IEYKIEdMSUJDXzIuNCBfX2NvbmZzdHJfY2hr IEYKIEdMSUJDXzIuNCBfX2ZnZXRzX2NoayBGCiBHTElCQ18yLjQgX19mZ2V0c191bmxvY2tl ZF9jaGsgRgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9taXBz MzIvbm9mcHUvbGliYy5hYmlsaXN0IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9t aXBzMzIvbm9mcHUvbGliYy5hYmlsaXN0CmluZGV4IGUzOWNjZmIzMTIuLjJjNWU2NmUyYzAg MTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21pcHMvbWlwczMyL25vZnB1 L2xpYmMuYWJpbGlzdAorKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL21pcHMz Mi9ub2ZwdS9saWJjLmFiaWxpc3QKQEAgLTI2OTEsNiArMjY5MSw4IEBAIEdMSUJDXzIuMzUg X19tZW1jbXBlcSBGCiBHTElCQ18yLjM1IF9kbF9maW5kX29iamVjdCBGCiBHTElCQ18yLjM1 IGVwb2xsX3B3YWl0MiBGCiBHTElCQ18yLjM1IHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19h ZGR0Y3NldHBncnBfbnAgRgorR0xJQkNfMi4zNiBjOHJ0b21iIEYKK0dMSUJDXzIuMzYgbWJy dG9jOCBGCiBHTElCQ18yLjQgX19jb25mc3RyX2NoayBGCiBHTElCQ18yLjQgX19mZ2V0c19j aGsgRgogR0xJQkNfMi40IF9fZmdldHNfdW5sb2NrZWRfY2hrIEYKZGlmZiAtLWdpdCBhL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L21pcHMvbWlwczY0L24zMi9saWJjLmFiaWxpc3QgYi9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL21pcHM2NC9uMzIvbGliYy5hYmlsaXN0Cmlu ZGV4IDFlOTAwZjg2ZTQuLmYyZTBhNDgxOGEgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L21pcHMvbWlwczY0L24zMi9saWJjLmFiaWxpc3QKKysrIGIvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvbWlwcy9taXBzNjQvbjMyL2xpYmMuYWJpbGlzdApAQCAtMjY5OSw2 ICsyNjk5LDggQEAgR0xJQkNfMi4zNSBfX21lbWNtcGVxIEYKIEdMSUJDXzIuMzUgX2RsX2Zp bmRfb2JqZWN0IEYKIEdMSUJDXzIuMzUgZXBvbGxfcHdhaXQyIEYKIEdMSUJDXzIuMzUgcG9z aXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZHRjc2V0cGdycF9ucCBGCitHTElCQ18yLjM2IGM4 cnRvbWIgRgorR0xJQkNfMi4zNiBtYnJ0b2M4IEYKIEdMSUJDXzIuNCBfX2NvbmZzdHJfY2hr IEYKIEdMSUJDXzIuNCBfX2ZnZXRzX2NoayBGCiBHTElCQ18yLjQgX19mZ2V0c191bmxvY2tl ZF9jaGsgRgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9taXBz NjQvbjY0L2xpYmMuYWJpbGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21pcHMvbWlw czY0L242NC9saWJjLmFiaWxpc3QKaW5kZXggOTE0NWJhNzkzMS4uZTA1MDU0NDFmNiAxMDA2 NDQKLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9taXBzNjQvbjY0L2xpYmMu YWJpbGlzdAorKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL21pcHM2NC9uNjQv bGliYy5hYmlsaXN0CkBAIC0yNjAyLDYgKzI2MDIsOCBAQCBHTElCQ18yLjM1IF9fbWVtY21w ZXEgRgogR0xJQkNfMi4zNSBfZGxfZmluZF9vYmplY3QgRgogR0xJQkNfMi4zNSBlcG9sbF9w d2FpdDIgRgogR0xJQkNfMi4zNSBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkdGNzZXRw Z3JwX25wIEYKK0dMSUJDXzIuMzYgYzhydG9tYiBGCitHTElCQ18yLjM2IG1icnRvYzggRgog R0xJQkNfMi40IF9fY29uZnN0cl9jaGsgRgogR0xJQkNfMi40IF9fZmdldHNfY2hrIEYKIEdM SUJDXzIuNCBfX2ZnZXRzX3VubG9ja2VkX2NoayBGCmRpZmYgLS1naXQgYS9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9uaW9zMi9saWJjLmFiaWxpc3QgYi9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9uaW9zMi9saWJjLmFiaWxpc3QKaW5kZXggZTk1ZDYwZDkyNi4uZDAyNjAyNjFlMiAx MDA2NDQKLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmlvczIvbGliYy5hYmlsaXN0 CisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25pb3MyL2xpYmMuYWJpbGlzdApAQCAt Mjc0MCwzICsyNzQwLDUgQEAgR0xJQkNfMi4zNSBfX21lbWNtcGVxIEYKIEdMSUJDXzIuMzUg X2RsX2ZpbmRfb2JqZWN0IEYKIEdMSUJDXzIuMzUgZXBvbGxfcHdhaXQyIEYKIEdMSUJDXzIu MzUgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZHRjc2V0cGdycF9ucCBGCitHTElCQ18y LjM2IGM4cnRvbWIgRgorR0xJQkNfMi4zNiBtYnJ0b2M4IEYKZGlmZiAtLWdpdCBhL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L29yMWsvbGliYy5hYmlsaXN0IGIvc3lzZGVwcy91bml4L3N5 c3YvbGludXgvb3Ixay9saWJjLmFiaWxpc3QKaW5kZXggY2E5MzRlMzc0Yi4uNTA2ODUzZWUy NSAxMDA2NDQKLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvb3Ixay9saWJjLmFiaWxp c3QKKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvb3Ixay9saWJjLmFiaWxpc3QKQEAg LTIxMjMsMyArMjEyMyw1IEBAIEdMSUJDXzIuMzUgd3ByaW50ZiBGCiBHTElCQ18yLjM1IHdy aXRlIEYKIEdMSUJDXzIuMzUgd3JpdGV2IEYKIEdMSUJDXzIuMzUgd3NjYW5mIEYKK0dMSUJD XzIuMzYgYzhydG9tYiBGCitHTElCQ18yLjM2IG1icnRvYzggRgpkaWZmIC0tZ2l0IGEvc3lz ZGVwcy91bml4L3N5c3YvbGludXgvcG93ZXJwYy9wb3dlcnBjMzIvZnB1L2xpYmMuYWJpbGlz dCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Bvd2VycGMvcG93ZXJwYzMyL2ZwdS9saWJj LmFiaWxpc3QKaW5kZXggMzgyMGI5ZjIzNS4uMDA5NmFhN2E5NyAxMDA2NDQKLS0tIGEvc3lz ZGVwcy91bml4L3N5c3YvbGludXgvcG93ZXJwYy9wb3dlcnBjMzIvZnB1L2xpYmMuYWJpbGlz dAorKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb3dlcnBjL3Bvd2VycGMzMi9mcHUv bGliYy5hYmlsaXN0CkBAIC0yNzU1LDYgKzI3NTUsOCBAQCBHTElCQ18yLjM1IF9fbWVtY21w ZXEgRgogR0xJQkNfMi4zNSBfZGxfZmluZF9vYmplY3QgRgogR0xJQkNfMi4zNSBlcG9sbF9w d2FpdDIgRgogR0xJQkNfMi4zNSBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkdGNzZXRw Z3JwX25wIEYKK0dMSUJDXzIuMzYgYzhydG9tYiBGCitHTElCQ18yLjM2IG1icnRvYzggRgog R0xJQkNfMi40IF9JT19mcHJpbnRmIEYKIEdMSUJDXzIuNCBfSU9fcHJpbnRmIEYKIEdMSUJD XzIuNCBfSU9fc3ByaW50ZiBGCmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9wb3dlcnBjL3Bvd2VycGMzMi9ub2ZwdS9saWJjLmFiaWxpc3QgYi9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC9wb3dlcnBjL3Bvd2VycGMzMi9ub2ZwdS9saWJjLmFiaWxpc3QKaW5kZXgg NDY0ZGMyN2ZjZC4uNTg2OTk0MWVjNiAxMDA2NDQKLS0tIGEvc3lzZGVwcy91bml4L3N5c3Yv bGludXgvcG93ZXJwYy9wb3dlcnBjMzIvbm9mcHUvbGliYy5hYmlsaXN0CisrKyBiL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L3Bvd2VycGMvcG93ZXJwYzMyL25vZnB1L2xpYmMuYWJpbGlz dApAQCAtMjc4OCw2ICsyNzg4LDggQEAgR0xJQkNfMi4zNSBfX21lbWNtcGVxIEYKIEdMSUJD XzIuMzUgX2RsX2ZpbmRfb2JqZWN0IEYKIEdMSUJDXzIuMzUgZXBvbGxfcHdhaXQyIEYKIEdM SUJDXzIuMzUgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZHRjc2V0cGdycF9ucCBGCitH TElCQ18yLjM2IGM4cnRvbWIgRgorR0xJQkNfMi4zNiBtYnJ0b2M4IEYKIEdMSUJDXzIuNCBf SU9fZnByaW50ZiBGCiBHTElCQ18yLjQgX0lPX3ByaW50ZiBGCiBHTElCQ18yLjQgX0lPX3Nw cmludGYgRgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcG93ZXJwYy9w b3dlcnBjNjQvYmUvbGliYy5hYmlsaXN0IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcG93 ZXJwYy9wb3dlcnBjNjQvYmUvbGliYy5hYmlsaXN0CmluZGV4IDJmN2U1ODc0N2YuLmRjNjI3 N2YxZDggMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Bvd2VycGMvcG93 ZXJwYzY0L2JlL2xpYmMuYWJpbGlzdAorKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9w b3dlcnBjL3Bvd2VycGM2NC9iZS9saWJjLmFiaWxpc3QKQEAgLTI1MTAsNiArMjUxMCw4IEBA IEdMSUJDXzIuMzUgX19tZW1jbXBlcSBGCiBHTElCQ18yLjM1IF9kbF9maW5kX29iamVjdCBG CiBHTElCQ18yLjM1IGVwb2xsX3B3YWl0MiBGCiBHTElCQ18yLjM1IHBvc2l4X3NwYXduX2Zp bGVfYWN0aW9uc19hZGR0Y3NldHBncnBfbnAgRgorR0xJQkNfMi4zNiBjOHJ0b21iIEYKK0dM SUJDXzIuMzYgbWJydG9jOCBGCiBHTElCQ18yLjQgX0lPX2ZwcmludGYgRgogR0xJQkNfMi40 IF9JT19wcmludGYgRgogR0xJQkNfMi40IF9JT19zcHJpbnRmIEYKZGlmZiAtLWdpdCBhL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Bvd2VycGMvcG93ZXJwYzY0L2xlL2xpYmMuYWJpbGlz dCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Bvd2VycGMvcG93ZXJwYzY0L2xlL2xpYmMu YWJpbGlzdAppbmRleCA0ZjMwNDNkOTEzLi5mZDhhZGNlZWU2IDEwMDY0NAotLS0gYS9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9wb3dlcnBjL3Bvd2VycGM2NC9sZS9saWJjLmFiaWxpc3QK KysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcG93ZXJwYy9wb3dlcnBjNjQvbGUvbGli Yy5hYmlsaXN0CkBAIC0yODEyLDMgKzI4MTIsNSBAQCBHTElCQ18yLjM1IF9fbWVtY21wZXEg RgogR0xJQkNfMi4zNSBfZGxfZmluZF9vYmplY3QgRgogR0xJQkNfMi4zNSBlcG9sbF9wd2Fp dDIgRgogR0xJQkNfMi4zNSBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkdGNzZXRwZ3Jw X25wIEYKK0dMSUJDXzIuMzYgYzhydG9tYiBGCitHTElCQ18yLjM2IG1icnRvYzggRgpkaWZm IC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmlzY3YvcnYzMi9saWJjLmFiaWxp c3QgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yaXNjdi9ydjMyL2xpYmMuYWJpbGlzdApp bmRleCA4NGI2YWM4MTVhLi4yZjBiMDhmZTMwIDEwMDY0NAotLS0gYS9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC9yaXNjdi9ydjMyL2xpYmMuYWJpbGlzdAorKysgYi9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC9yaXNjdi9ydjMyL2xpYmMuYWJpbGlzdApAQCAtMjM3OSwzICsyMzc5LDUg QEAgR0xJQkNfMi4zNSBfX21lbWNtcGVxIEYKIEdMSUJDXzIuMzUgX2RsX2ZpbmRfb2JqZWN0 IEYKIEdMSUJDXzIuMzUgZXBvbGxfcHdhaXQyIEYKIEdMSUJDXzIuMzUgcG9zaXhfc3Bhd25f ZmlsZV9hY3Rpb25zX2FkZHRjc2V0cGdycF9ucCBGCitHTElCQ18yLjM2IGM4cnRvbWIgRgor R0xJQkNfMi4zNiBtYnJ0b2M4IEYKZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xp bnV4L3Jpc2N2L3J2NjQvbGliYy5hYmlsaXN0IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgv cmlzY3YvcnY2NC9saWJjLmFiaWxpc3QKaW5kZXggNGQ1YzE5YzU2YS4uYWQ0OTYyMWM3NiAx MDA2NDQKLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmlzY3YvcnY2NC9saWJjLmFi aWxpc3QKKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmlzY3YvcnY2NC9saWJjLmFi aWxpc3QKQEAgLTI1NzksMyArMjU3OSw1IEBAIEdMSUJDXzIuMzUgX19tZW1jbXBlcSBGCiBH TElCQ18yLjM1IF9kbF9maW5kX29iamVjdCBGCiBHTElCQ18yLjM1IGVwb2xsX3B3YWl0MiBG CiBHTElCQ18yLjM1IHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGR0Y3NldHBncnBfbnAg RgorR0xJQkNfMi4zNiBjOHJ0b21iIEYKK0dMSUJDXzIuMzYgbWJydG9jOCBGCmRpZmYgLS1n aXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zMzkwL3MzOTAtMzIvbGliYy5hYmlsaXN0 IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvczM5MC9zMzkwLTMyL2xpYmMuYWJpbGlzdApp bmRleCA3YzVlZThkNTY5Li5hYjI1ZTk2NGYxIDEwMDY0NAotLS0gYS9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC9zMzkwL3MzOTAtMzIvbGliYy5hYmlsaXN0CisrKyBiL3N5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L3MzOTAvczM5MC0zMi9saWJjLmFiaWxpc3QKQEAgLTI3NTMsNiArMjc1 Myw4IEBAIEdMSUJDXzIuMzUgX19tZW1jbXBlcSBGCiBHTElCQ18yLjM1IF9kbF9maW5kX29i amVjdCBGCiBHTElCQ18yLjM1IGVwb2xsX3B3YWl0MiBGCiBHTElCQ18yLjM1IHBvc2l4X3Nw YXduX2ZpbGVfYWN0aW9uc19hZGR0Y3NldHBncnBfbnAgRgorR0xJQkNfMi4zNiBjOHJ0b21i IEYKK0dMSUJDXzIuMzYgbWJydG9jOCBGCiBHTElCQ18yLjQgX0lPX2ZwcmludGYgRgogR0xJ QkNfMi40IF9JT19wcmludGYgRgogR0xJQkNfMi40IF9JT19zcHJpbnRmIEYKZGlmZiAtLWdp dCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3MzOTAvczM5MC02NC9saWJjLmFiaWxpc3Qg Yi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zMzkwL3MzOTAtNjQvbGliYy5hYmlsaXN0Cmlu ZGV4IDUwZGUwYjQ2Y2YuLjM4NTE2NDU2OTAgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3MzOTAvczM5MC02NC9saWJjLmFiaWxpc3QKKysrIGIvc3lzZGVwcy91bml4 L3N5c3YvbGludXgvczM5MC9zMzkwLTY0L2xpYmMuYWJpbGlzdApAQCAtMjU0Nyw2ICsyNTQ3 LDggQEAgR0xJQkNfMi4zNSBfX21lbWNtcGVxIEYKIEdMSUJDXzIuMzUgX2RsX2ZpbmRfb2Jq ZWN0IEYKIEdMSUJDXzIuMzUgZXBvbGxfcHdhaXQyIEYKIEdMSUJDXzIuMzUgcG9zaXhfc3Bh d25fZmlsZV9hY3Rpb25zX2FkZHRjc2V0cGdycF9ucCBGCitHTElCQ18yLjM2IGM4cnRvbWIg RgorR0xJQkNfMi4zNiBtYnJ0b2M4IEYKIEdMSUJDXzIuNCBfSU9fZnByaW50ZiBGCiBHTElC Q18yLjQgX0lPX3ByaW50ZiBGCiBHTElCQ18yLjQgX0lPX3NwcmludGYgRgpkaWZmIC0tZ2l0 IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2gvYmUvbGliYy5hYmlsaXN0IGIvc3lzZGVw cy91bml4L3N5c3YvbGludXgvc2gvYmUvbGliYy5hYmlsaXN0CmluZGV4IDY2ZmJhMDEzY2Eu LmI2MDZiYWQ1ZGMgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NoL2Jl L2xpYmMuYWJpbGlzdAorKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaC9iZS9saWJj LmFiaWxpc3QKQEAgLTI2MDgsNiArMjYwOCw4IEBAIEdMSUJDXzIuMzUgX19tZW1jbXBlcSBG CiBHTElCQ18yLjM1IF9kbF9maW5kX29iamVjdCBGCiBHTElCQ18yLjM1IGVwb2xsX3B3YWl0 MiBGCiBHTElCQ18yLjM1IHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGR0Y3NldHBncnBf bnAgRgorR0xJQkNfMi4zNiBjOHJ0b21iIEYKK0dMSUJDXzIuMzYgbWJydG9jOCBGCiBHTElC Q18yLjQgX19jb25mc3RyX2NoayBGCiBHTElCQ18yLjQgX19mZ2V0c19jaGsgRgogR0xJQkNf Mi40IF9fZmdldHNfdW5sb2NrZWRfY2hrIEYKZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3NoL2xlL2xpYmMuYWJpbGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L3NoL2xlL2xpYmMuYWJpbGlzdAppbmRleCAzODcwM2Y4YWEwLi45YjdlMDNhMjkwIDEwMDY0 NAotLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaC9sZS9saWJjLmFiaWxpc3QKKysr IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2gvbGUvbGliYy5hYmlsaXN0CkBAIC0yNjA1 LDYgKzI2MDUsOCBAQCBHTElCQ18yLjM1IF9fbWVtY21wZXEgRgogR0xJQkNfMi4zNSBfZGxf ZmluZF9vYmplY3QgRgogR0xJQkNfMi4zNSBlcG9sbF9wd2FpdDIgRgogR0xJQkNfMi4zNSBw b3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkdGNzZXRwZ3JwX25wIEYKK0dMSUJDXzIuMzYg YzhydG9tYiBGCitHTElCQ18yLjM2IG1icnRvYzggRgogR0xJQkNfMi40IF9fY29uZnN0cl9j aGsgRgogR0xJQkNfMi40IF9fZmdldHNfY2hrIEYKIEdMSUJDXzIuNCBfX2ZnZXRzX3VubG9j a2VkX2NoayBGCmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFyYy9z cGFyYzMyL2xpYmMuYWJpbGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL3Nw YXJjMzIvbGliYy5hYmlsaXN0CmluZGV4IDZkZjU1ZWI3NjUuLjA0NjUxMjExZDcgMTAwNjQ0 Ci0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL3NwYXJjMzIvbGliYy5hYmls aXN0CisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL3NwYXJjMzIvbGliYy5h YmlsaXN0CkBAIC0yNzQ4LDYgKzI3NDgsOCBAQCBHTElCQ18yLjM1IF9fbWVtY21wZXEgRgog R0xJQkNfMi4zNSBfZGxfZmluZF9vYmplY3QgRgogR0xJQkNfMi4zNSBlcG9sbF9wd2FpdDIg RgogR0xJQkNfMi4zNSBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkdGNzZXRwZ3JwX25w IEYKK0dMSUJDXzIuMzYgYzhydG9tYiBGCitHTElCQ18yLjM2IG1icnRvYzggRgogR0xJQkNf Mi40IF9JT19mcHJpbnRmIEYKIEdMSUJDXzIuNCBfSU9fcHJpbnRmIEYKIEdMSUJDXzIuNCBf SU9fc3ByaW50ZiBGCmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFy Yy9zcGFyYzY0L2xpYmMuYWJpbGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJj L3NwYXJjNjQvbGliYy5hYmlsaXN0CmluZGV4IGI5MDU2OWQ4ODEuLjVjZTJjOTA5MDMgMTAw NjQ0Ci0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL3NwYXJjNjQvbGliYy5h YmlsaXN0CisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL3NwYXJjNjQvbGli Yy5hYmlsaXN0CkBAIC0yNTc0LDYgKzI1NzQsOCBAQCBHTElCQ18yLjM1IF9fbWVtY21wZXEg RgogR0xJQkNfMi4zNSBfZGxfZmluZF9vYmplY3QgRgogR0xJQkNfMi4zNSBlcG9sbF9wd2Fp dDIgRgogR0xJQkNfMi4zNSBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkdGNzZXRwZ3Jw X25wIEYKK0dMSUJDXzIuMzYgYzhydG9tYiBGCitHTElCQ18yLjM2IG1icnRvYzggRgogR0xJ QkNfMi40IF9fY29uZnN0cl9jaGsgRgogR0xJQkNfMi40IF9fZmdldHNfY2hrIEYKIEdMSUJD XzIuNCBfX2ZnZXRzX3VubG9ja2VkX2NoayBGCmRpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgv c3lzdi9saW51eC94ODZfNjQvNjQvbGliYy5hYmlsaXN0IGIvc3lzZGVwcy91bml4L3N5c3Yv bGludXgveDg2XzY0LzY0L2xpYmMuYWJpbGlzdAppbmRleCBlODhiMGYxMDFmLi44NWE3ZmIz MTUyIDEwMDY0NAotLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvNjQvbGli Yy5hYmlsaXN0CisrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC82NC9saWJj LmFiaWxpc3QKQEAgLTI1MjUsNiArMjUyNSw4IEBAIEdMSUJDXzIuMzUgX19tZW1jbXBlcSBG CiBHTElCQ18yLjM1IF9kbF9maW5kX29iamVjdCBGCiBHTElCQ18yLjM1IGVwb2xsX3B3YWl0 MiBGCiBHTElCQ18yLjM1IHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGR0Y3NldHBncnBf bnAgRgorR0xJQkNfMi4zNiBjOHJ0b21iIEYKK0dMSUJDXzIuMzYgbWJydG9jOCBGCiBHTElC Q18yLjQgX19jb25mc3RyX2NoayBGCiBHTElCQ18yLjQgX19mZ2V0c19jaGsgRgogR0xJQkNf Mi40IF9fZmdldHNfdW5sb2NrZWRfY2hrIEYKZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3g4Nl82NC94MzIvbGliYy5hYmlsaXN0IGIvc3lzZGVwcy91bml4L3N5c3Yv bGludXgveDg2XzY0L3gzMi9saWJjLmFiaWxpc3QKaW5kZXggZTA3NTUyNzJlYi4uOTc1ZTc4 ZWFhNSAxMDA2NDQKLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L3gzMi9s aWJjLmFiaWxpc3QKKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L3gzMi9s aWJjLmFiaWxpc3QKQEAgLTI2MzEsMyArMjYzMSw1IEBAIEdMSUJDXzIuMzUgX19tZW1jbXBl cSBGCiBHTElCQ18yLjM1IF9kbF9maW5kX29iamVjdCBGCiBHTElCQ18yLjM1IGVwb2xsX3B3 YWl0MiBGCiBHTElCQ18yLjM1IHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGR0Y3NldHBn cnBfbnAgRgorR0xJQkNfMi4zNiBjOHJ0b21iIEYKK0dMSUJDXzIuMzYgbWJydG9jOCBGCmRp ZmYgLS1naXQgYS93Y3NtYnMvTWFrZWZpbGUgYi93Y3NtYnMvTWFrZWZpbGUKaW5kZXggZGY5 YTg1ZjRhOS4uYmRhMjgxYWQ3MCAxMDA2NDQKLS0tIGEvd2NzbWJzL01ha2VmaWxlCisrKyBi L3djc21icy9NYWtlZmlsZQpAQCAtNDIsNyArNDIsNyBAQCByb3V0aW5lcyA6PSB3Y3NjYXQg d2NzY2hyIHdjc2NtcCB3Y3NjcHkgd2NzY3NwbiB3Y3NkdXAgd2NzbGVuIHdjc25jYXQgXAog CSAgICB3Y3NtYnNsb2FkIG1ic3J0b3djc19sIFwKIAkgICAgaXNvYzk5X3dzY2FuZiBpc29j OTlfdndzY2FuZiBpc29jOTlfZndzY2FuZiBpc29jOTlfdmZ3c2NhbmYgXAogCSAgICBpc29j OTlfc3dzY2FuZiBpc29jOTlfdnN3c2NhbmYgXAotCSAgICBtYnJ0b2MxNiBjMTZydG9tYiBt YnJ0b2MzMiBjMzJydG9tYgorCSAgICBtYnJ0b2M4IGM4cnRvbWIgbWJydG9jMTYgYzE2cnRv bWIgbWJydG9jMzIgYzMycnRvbWIKIAogc3Ryb3AtdGVzdHMgOj0gIHdjc2NtcCB3Y3NuY21w IHdtZW1jbXAgd2NzbGVuIHdjc2NociB3Y3NyY2hyIHdjc2NweSB3Y3NubGVuIFwKIAkJd2Nw Y3B5IHdjc25jcHkgd2NwbmNweSB3Y3NjYXQgd2NzbmNhdCB3Y3NjaHJudWwgd2Nzc3BuIHdj c3BicmsgXApkaWZmIC0tZ2l0IGEvd2NzbWJzL1ZlcnNpb25zIGIvd2NzbWJzL1ZlcnNpb25z CmluZGV4IDBiMzFjMWI5NDAuLmVjMjhhY2ZiNzMgMTAwNjQ0Ci0tLSBhL3djc21icy9WZXJz aW9ucworKysgYi93Y3NtYnMvVmVyc2lvbnMKQEAgLTQ5LDQgKzQ5LDcgQEAgbGliYyB7CiAg ICAgd2NzdG9mMzI7IHdjc3RvZjY0OyB3Y3N0b2YzMng7CiAgICAgd2NzdG9mMzJfbDsgd2Nz dG9mNjRfbDsgd2NzdG9mMzJ4X2w7CiAgIH0KKyAgR0xJQkNfMi4zNiB7CisgICAgYzhydG9t YjsgbWJydG9jODsKKyAgfQogfQpkaWZmIC0tZ2l0IGEvd2NzbWJzL2M4cnRvbWIuYyBiL3dj c21icy9jOHJ0b21iLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u OGE1ZmZlYWIyMwotLS0gL2Rldi9udWxsCisrKyBiL3djc21icy9jOHJ0b21iLmMKQEAgLTAs MCArMSwxMzIgQEAKKy8qIFVURi04IHRvIG11bHRpYnl0ZSBjb252ZXJzaW9uLgorICAgQ29w eXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBM aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAg TGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAg PGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlIDxlcnJu by5oPgorI2luY2x1ZGUgPHVjaGFyLmg+CisjaW5jbHVkZSA8d2NoYXIuaD4KKworCisvKiBU aGlzIGlzIHRoZSBwcml2YXRlIHN0YXRlIHVzZWQgaWYgUFMgaXMgTlVMTC4gICovCitzdGF0 aWMgbWJzdGF0ZV90IHN0YXRlOworCitzaXplX3QKK2M4cnRvbWIgKGNoYXIgKnMsIGNoYXI4 X3QgYzgsIG1ic3RhdGVfdCAqcHMpCit7CisgIC8qIFRoaXMgaW1wbGVtZW50YXRpb24gZGVw ZW5kcyBvbiB0aGUgY29udmVydGVyIGludm9rZWQgYnkgd2NydG9tYiBub3QKKyAgICAgbmVl ZGluZyB0byByZXRhaW4gc3RhdGUgaW4gZWl0aGVyIHRoZSB0b3AgbW9zdCBiaXQgb2YgcHMt Pl9fY291bnQgb3IKKyAgICAgaW4gcHMtPl9fdmFsdWUgYmV0d2VlbiBpbnZvY2F0aW9ucy4g IFRoaXMgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUKKyAgICAgdG9wIG1vc3QgYml0IG9mIHBz LT5fX2NvdW50IHRvIGluZGljYXRlIHRoYXQgdHJhaWxpbmcgY29kZSB1bml0cyBhcmUKKyAg ICAgZXhwZWN0ZWQgYW5kIHVzZXMgcHMtPl9fdmFsdWUgdG8gc3RvcmUgcHJldmlvdXNseSBz ZWVuIGNvZGUgdW5pdHMuICAqLworCisgIHdjaGFyX3Qgd2M7CisKKyAgaWYgKHBzID09IE5V TEwpCisgICAgcHMgPSAmc3RhdGU7CisKKyAgaWYgKHMgPT0gTlVMTCkKKyAgICB7CisgICAg ICAvKiBpZiAncycgaXMgYSBudWxsIHBvaW50ZXIsIGJlaGF2ZSBhcyBpZiB1OCdcMCcgd2Fz IHBhc3NlZCBhcyAnYzgnLiAgSWYKKyAgICAgICAgIHRoaXMgb2NjdXJzIGZvciBhbiBpbmNv bXBsZXRlIGNvZGUgdW5pdCBzZXF1ZW5jZSwgdGhlbiBhbiBlcnJvciB3aWxsCisgICAgICAg ICBiZSByZXBvcnRlZCBiZWxvdy4gICovCisgICAgICBjOCA9IHU4IiJbMF07CisgICAgfQor CisgIGlmICghIChwcy0+X19jb3VudCAmIDB4ODAwMDAwMDApKQorICAgIHsKKyAgICAgIC8q IEluaXRpYWwgc3RhdGUuICAqLworICAgICAgaWYgKChjOCA+PSAweDgwICYmIGM4IDw9IDB4 QzEpIHx8IGM4ID49IDB4RjUpCisJeworCSAgLyogQW4gaW52YWxpZCBsZWFkIGNvZGUgdW5p dC4gICovCisJICBfX3NldF9lcnJubyAoRUlMU0VRKTsKKwkgIHJldHVybiAtMTsKKwl9Cisg ICAgICBpZiAoYzggPj0gMHhDMikKKwl7CisJICAvKiBBIHZhbGlkIGxlYWQgY29kZSB1bml0 LiAgKi8KKwkgIHBzLT5fX2NvdW50IHw9IDB4ODAwMDAwMDA7CisJICBwcy0+X192YWx1ZS5f X3djaGJbMF0gPSBjODsKKyAgICAgICAgICBwcy0+X192YWx1ZS5fX3djaGJbM10gPSAxOwor CSAgcmV0dXJuIDA7CisJfQorICAgICAgLyogQSBzaW5nbGUgYnl0ZSAoQVNDSUkpIGNvZGUg dW5pdC4gICovCisgICAgICB3YyA9IGM4OworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAg IGNoYXI4X3QgY3UxID0gcHMtPl9fdmFsdWUuX193Y2hiWzBdOworICAgICAgaWYgKHBzLT5f X3ZhbHVlLl9fd2NoYlszXSA9PSAxKQorCXsKKwkgIC8qIEEgc2luZ2xlIGxlYWQgY29kZSB1 bml0IHdhcyBwcmV2aW91c2x5IHNlZW4uICAqLworCSAgaWYgKChjOCA8IDB4ODAgfHwgYzgg PiAweEJGKSB8fAorICAgICAgICAgICAgICAgKGN1MSA9PSAweEUwICYmIGM4IDwgMHhBMCkg fHwKKyAgICAgICAgICAgICAgIChjdTEgPT0gMHhFRCAmJiBjOCA+IDB4OUYpIHx8CisgICAg ICAgICAgICAgICAoY3UxID09IDB4RjAgJiYgYzggPCAweDkwKSB8fAorICAgICAgICAgICAg ICAgKGN1MSA9PSAweEY0ICYmIGM4ID4gMHg4RikpCisJICAgIHsKKwkgICAgICAvKiBBbiBp bnZhbGlkIHNlY29uZCBjb2RlIHVuaXQuICAqLworCSAgICAgIF9fc2V0X2Vycm5vIChFSUxT RVEpOworCSAgICAgIHJldHVybiAtMTsKKwkgICAgfQorCSAgaWYgKGN1MSA+PSAweEUwKQor CSAgICB7CisJICAgICAgLyogQSB0aHJlZSBvciBmb3VyIGNvZGUgdW5pdCBzZXF1ZW5jZS4g ICovCisJICAgICAgcHMtPl9fdmFsdWUuX193Y2hiWzFdID0gYzg7CisJICAgICAgKytwcy0+ X192YWx1ZS5fX3djaGJbM107CisJICAgICAgcmV0dXJuIDA7CisJICAgIH0KKwkgIHdjID0g KChjdTEgJiAweDFGKSA8PCA2KSArCisJICAgICAgIChjOCAmIDB4M0YpOworCX0KKyAgICAg IGVsc2UKKwl7CisJICBjaGFyOF90IGN1MiA9IHBzLT5fX3ZhbHVlLl9fd2NoYlsxXTsKKwkg IC8qIEEgdGhyZWUgb3IgZm91ciBieXRlIGNvZGUgdW5pdCBzZXF1ZW5jZS4gICovCisJICBp ZiAoYzggPCAweDgwIHx8IGM4ID4gMHhCRikKKwkgICAgeworCSAgICAgIC8qIEFuIGludmFs aWQgdGhpcmQgb3IgZm91cnRoIGNvZGUgdW5pdC4gICovCisJICAgICAgX19zZXRfZXJybm8g KEVJTFNFUSk7CisJICAgICAgcmV0dXJuIC0xOworCSAgICB9CisJICBpZiAocHMtPl9fdmFs dWUuX193Y2hiWzNdID09IDIgJiYgY3UxID49IDB4RjApCisJICAgIHsKKwkgICAgICAvKiBB IGZvdXIgY29kZSB1bml0IHNlcXVlbmNlLiAgKi8KKwkgICAgICBwcy0+X192YWx1ZS5fX3dj aGJbMl0gPSBjODsKKwkgICAgICArK3BzLT5fX3ZhbHVlLl9fd2NoYlszXTsKKwkgICAgICBy ZXR1cm4gMDsKKwkgICAgfQorCSAgaWYgKGN1MSA8IDB4RjApCisJICAgIHsKKwkgICAgICB3 YyA9ICgoY3UxICYgMHgwRikgPDwgMTIpICsKKwkJICAgKChjdTIgJiAweDNGKSA8PCA2KSAr CisJCSAgIChjOCAmIDB4M0YpOworCSAgICB9CisJICBlbHNlCisJICAgIHsKKwkgICAgICBj aGFyOF90IGN1MyA9IHBzLT5fX3ZhbHVlLl9fd2NoYlsyXTsKKwkgICAgICB3YyA9ICgoY3Ux ICYgMHgwNykgPDwgMTgpICsKKwkJICAgKChjdTIgJiAweDNGKSA8PCAxMikgKworCQkgICAo KGN1MyAmIDB4M0YpIDw8IDYpICsKKwkJICAgKGM4ICYgMHgzRik7CisJICAgIH0KKwl9Cisg ICAgICBwcy0+X19jb3VudCAmPSAweDdmZmZmZmZmOworICAgICAgcHMtPl9fdmFsdWUuX193 Y2ggPSAwOworICAgIH0KKworICByZXR1cm4gd2NydG9tYiAocywgd2MsIHBzKTsKK30KZGlm ZiAtLWdpdCBhL3djc21icy9tYnJ0b2M4LmMgYi93Y3NtYnMvbWJydG9jOC5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjhjYTQ1NzA4OGQKLS0tIC9kZXYvbnVs bAorKysgYi93Y3NtYnMvbWJydG9jOC5jCkBAIC0wLDAgKzEsMTI2IEBACisvKiBNdWx0aWJ5 dGUgdG8gVVRGLTggY29udmVyc2lvbi4KKyAgIENvcHlyaWdodCAoQykgMjAyMiBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBH TlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor ICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUg R05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8ZGxmY24u aD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGdjb252Lmg+CisjaW5jbHVkZSA8 dWNoYXIuaD4KKyNpbmNsdWRlIDx3Y3NtYnNsb2FkLmg+CisKKyNpbmNsdWRlIDxzeXNkZXAu aD4KKworI2lmbmRlZiBFSUxTRVEKKyMgZGVmaW5lIEVJTFNFUSBFSU5WQUwKKyNlbmRpZgor CisKKy8qIFRoaXMgaXMgdGhlIHByaXZhdGUgc3RhdGUgdXNlZCBpZiBQUyBpcyBOVUxMLiAg Ki8KK3N0YXRpYyBtYnN0YXRlX3Qgc3RhdGU7CisKK3NpemVfdAorbWJydG9jOCAoY2hhcjhf dCAqcGM4LCBjb25zdCBjaGFyICpzLCBzaXplX3QgbiwgbWJzdGF0ZV90ICpwcykKK3sKKyAg LyogVGhpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRzIG9uIHRoZSBjb252ZXJ0ZXIgaW52b2tl ZCBieSBtYnJ0b3djKCkgbm90CisgICAgIG5lZWRpbmcgdG8gcmV0YWluIHN0YXRlIGluIGVp dGhlciB0aGUgdG9wIG1vc3QgYml0IG9mIHBzLT5fX2NvdW50IG9yCisgICAgIGluIHBzLT5f X3ZhbHVlIGJldHdlZW4gaW52b2NhdGlvbnMuICBUaGlzIGltcGxlbWVudGF0aW9uIHVzZXMg dGhlCisgICAgIHRvcCBtb3N0IGJpdCBvZiBwcy0+X19jb3VudCB0byBpbmRpY2F0ZSB0aGF0 IHRyYWlsaW5nIGNvZGUgdW5pdHMgYXJlCisgICAgIHlldCB0byBiZSB3cml0dGVuIGFuZCB1 c2VzIHBzLT5fX3ZhbHVlIHRvIHN0b3JlIHRob3NlIGNvZGUgdW5pdHMuICAqLworCisgIGlm IChwcyA9PSBOVUxMKQorICAgIHBzID0gJnN0YXRlOworCisgIC8qIElmIHN0YXRlIGluZGlj YXRlcyB0aGF0IHRyYWlsaW5nIGNvZGUgdW5pdHMgYXJlIHlldCB0byBiZSB3cml0dGVuLCB3 cml0ZQorICAgICB0aG9zZSBmaXJzdCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgJ3MnIGlzIGEg bnVsbCBwb2ludGVyLiAgKi8KKyAgaWYgKHBzLT5fX2NvdW50ICYgMHg4MDAwMDAwMCkKKyAg ICB7CisgICAgICAvKiBwcy0+X192YWx1ZS5fX3djaGJbM10gc3RvcmVzIHRoZSBpbmRleCBv ZiB0aGUgbmV4dCBjb2RlIHVuaXQgdG8KKyAgICAgICAgIHdyaXRlLiAgQ29kZSB1bml0cyBh cmUgc3RvcmVkIGluIHJldmVyc2Ugb3JkZXIuICAqLworICAgICAgc2l6ZV90IGkgPSBwcy0+ X192YWx1ZS5fX3djaGJbM107CisgICAgICBpZiAocGM4ICE9IE5VTEwpCisJeworCSAgKnBj OCA9IHBzLT5fX3ZhbHVlLl9fd2NoYltpXTsKKwl9CisgICAgICBpZiAoaSA9PSAwKQorCXsK KwkgIHBzLT5fX2NvdW50ICY9IDB4N2ZmZmZmZmY7CisJICBwcy0+X192YWx1ZS5fX3djaCA9 IDA7CisJfQorICAgICAgZWxzZQorCS0tcHMtPl9fdmFsdWUuX193Y2hiWzNdOworICAgICAg cmV0dXJuIC0zOworICAgIH0KKworICBpZiAocyA9PSBOVUxMKQorICAgIHsKKyAgICAgIC8q IGlmICdzJyBpcyBhIG51bGwgcG9pbnRlciwgYmVoYXZlIGFzIGlmIGEgbnVsbCBwb2ludGVy IHdhcyBwYXNzZWQgZm9yCisgICAgICAgICAncGM4JywgYW4gZW1wdHkgc3RyaW5nIHdhcyBw YXNzZWQgZm9yICdzJywgYW5kIDEgcGFzc2VkIGZvciAnbicuICAqLworICAgICAgcGM4ID0g TlVMTDsKKyAgICAgIHMgPSAiIjsKKyAgICAgIG4gPSAxOworICAgIH0KKworICB3Y2hhcl90 IHdjOworICBzaXplX3QgcmVzdWx0OworCisgIHJlc3VsdCA9IG1icnRvd2MoJndjLCBzLCBu LCBwcyk7CisgIGlmIChyZXN1bHQgPD0gbikKKyAgICB7CisgICAgICBpZiAod2MgPD0gMHg3 RikKKwl7CisJICBpZiAocGM4ICE9IE5VTEwpCisJICAgICpwYzggPSB3YzsKKwl9CisgICAg ICBlbHNlIGlmICh3YyA8PSAweDdGRikKKwl7CisJICBpZiAocGM4ICE9IE5VTEwpCisJICAg ICpwYzggPSAweEMwICsgKCh3YyA+PiA2KSAmIDB4MUYpOworCSAgcHMtPl9fdmFsdWUuX193 Y2hiWzBdID0gMHg4MCArICh3YyAmIDB4M0YpOworCSAgcHMtPl9fdmFsdWUuX193Y2hiWzNd ID0gMDsKKwkgIHBzLT5fX2NvdW50IHw9IDB4ODAwMDAwMDA7CisJfQorICAgICAgZWxzZSBp ZiAod2MgPD0gMHhGRkZGKQorCXsKKwkgIGlmIChwYzggIT0gTlVMTCkKKwkgICAgKnBjOCA9 IDB4RTAgKyAoKHdjID4+IDEyKSAmIDB4MEYpOworCSAgcHMtPl9fdmFsdWUuX193Y2hiWzFd ID0gMHg4MCArICgod2MgPj4gNikgJiAweDNGKTsKKwkgIHBzLT5fX3ZhbHVlLl9fd2NoYlsw XSA9IDB4ODAgKyAod2MgJiAweDNGKTsKKwkgIHBzLT5fX3ZhbHVlLl9fd2NoYlszXSA9IDE7 CisJICBwcy0+X19jb3VudCB8PSAweDgwMDAwMDAwOworCX0KKyAgICAgIGVsc2UgaWYgKHdj IDw9IDB4MTBGRkZGKQorCXsKKwkgIGlmIChwYzggIT0gTlVMTCkKKwkgICAgKnBjOCA9IDB4 RjAgKyAoKHdjID4+IDE4KSAmIDB4MDcpOworCSAgcHMtPl9fdmFsdWUuX193Y2hiWzJdID0g MHg4MCArICgod2MgPj4gMTIpICYgMHgzRik7CisJICBwcy0+X192YWx1ZS5fX3djaGJbMV0g PSAweDgwICsgKCh3YyA+PiA2KSAmIDB4M0YpOworCSAgcHMtPl9fdmFsdWUuX193Y2hiWzBd ID0gMHg4MCArICh3YyAmIDB4M0YpOworCSAgcHMtPl9fdmFsdWUuX193Y2hiWzNdID0gMjsK KwkgIHBzLT5fX2NvdW50IHw9IDB4ODAwMDAwMDA7CisJfQorICAgIH0KKyAgaWYgKHJlc3Vs dCA9PSAwICYmIHdjICE9IDApCisgICAgeworICAgICAgLyogbWJydG93YygpIG5ldmVyIHJl dHVybnMgLTMuICBXaGVuIGEgTUIgc2VxdWVuY2UgY29udmVydHMgdG8gbXVsdGlwbGUKKyAg ICAgICAgIFdDcywgbm8gaW5wdXQgaXMgY29uc3VtZWQgd2hlbiB3cml0aW5nIHRoZSBzdWJz ZXF1ZW50IFdDcyByZXN1bHRpbmcKKyAgICAgICAgIGluIGEgcmVzdWx0IG9mIDAgZXZlbiBp ZiBhIG51bGwgY2hhcmFjdGVyIHdhc24ndCB3cml0dGVuLiAgKi8KKyAgICAgIHJlc3VsdCA9 IC0zOworICAgIH0KKworICByZXR1cm4gcmVzdWx0OworfQpkaWZmIC0tZ2l0IGEvd2NzbWJz L3VjaGFyLmggYi93Y3NtYnMvdWNoYXIuaAppbmRleCAwNTFjZGNiZWI1Li4wMWFhZjljOTRi IDEwMDY0NAotLS0gYS93Y3NtYnMvdWNoYXIuaAorKysgYi93Y3NtYnMvdWNoYXIuaApAQCAt MzEsNiArMzEsMTMgQEAKICNpbmNsdWRlIDxiaXRzL3R5cGVzLmg+CiAjaW5jbHVkZSA8Yml0 cy90eXBlcy9tYnN0YXRlX3QuaD4KIAorLyogRGVjbGFyZSB0aGUgQzJ4IGNoYXI4X3QgdHlw ZWRlZiBpbiBfR05VX1NPVVJDRSBhbmQgQzJ4IG1vZGVzLCBidXQgb25seQorICAgaWYgdGhl IEMrKyBfX2NwcF9jaGFyOF90IGZlYXR1cmUgdGVzdCBtYWNybyBpcyBub3QgZGVmaW5lZC4g ICovCisjaWYgKGRlZmluZWQgX19VU0VfR05VIHx8IF9fR0xJQkNfVVNFIChJU09DMlgpKSAm JiAhZGVmaW5lZCBfX2NwcF9jaGFyOF90CisvKiBEZWZpbmUgdGhlIDgtYml0IGNoYXJhY3Rl ciB0eXBlLiAgKi8KK3R5cGVkZWYgdW5zaWduZWQgY2hhciBjaGFyOF90OworI2VuZGlmCisK ICNpZm5kZWYgX19VU0VfSVNPQ1hYMTEKIC8qIERlZmluZSB0aGUgMTYtYml0IGFuZCAzMi1i aXQgY2hhcmFjdGVyIHR5cGVzLiAgKi8KIHR5cGVkZWYgX191aW50X2xlYXN0MTZfdCBjaGFy MTZfdDsKQEAgLTQwLDYgKzQ3LDIwIEBAIHR5cGVkZWYgX191aW50X2xlYXN0MzJfdCBjaGFy MzJfdDsKIAogX19CRUdJTl9ERUNMUwogCisvKiBEZWNsYXJlIHRoZSBDMnggbWJydG9jOCgp IGFuZCBjOHJ0b21iKCkgZnVuY3Rpb25zIGluIF9HTlVfU09VUkNFIGFuZCBDMngKKyAgIG1v ZGVzIG9yIGlmIHRoZSBDKysgX19jcHBfY2hhcjhfdCBmZWF0dXJlIHRlc3QgbWFjcm8gaXMg ZGVmaW5lZC4gICovCisjaWYgZGVmaW5lZCBfX1VTRV9HTlUgfHwgX19HTElCQ19VU0UgKElT T0MyWCkgfHwgZGVmaW5lZCBfX2NwcF9jaGFyOF90CisvKiBXcml0ZSBjaGFyOF90IHJlcHJl c2VudGF0aW9uIG9mIG11bHRpYnl0ZSBjaGFyYWN0ZXIgcG9pbnRlZAorICAgdG8gYnkgUyB0 byBQQzguICAqLworZXh0ZXJuIHNpemVfdCBtYnJ0b2M4ICAoY2hhcjhfdCAqX19yZXN0cmlj dCBfX3BjOCwKKwkJCWNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19uLAor CQkJbWJzdGF0ZV90ICpfX3Jlc3RyaWN0IF9fcCkgX19USFJPVzsKKworLyogV3JpdGUgbXVs dGlieXRlIHJlcHJlc2VudGF0aW9uIG9mIGNoYXI4X3QgQzggdG8gUy4gICovCitleHRlcm4g c2l6ZV90IGM4cnRvbWIgIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgY2hhcjhfdCBfX2M4LAor CQkJbWJzdGF0ZV90ICpfX3Jlc3RyaWN0IF9fcHMpIF9fVEhST1c7CisjZW5kaWYKKwogLyog V3JpdGUgY2hhcjE2X3QgcmVwcmVzZW50YXRpb24gb2YgbXVsdGlieXRlIGNoYXJhY3RlciBw b2ludGVkCiAgICB0byBieSBTIHRvIFBDMTYuICAqLwogZXh0ZXJuIHNpemVfdCBtYnJ0b2Mx NiAoY2hhcjE2X3QgKl9fcmVzdHJpY3QgX19wYzE2LAo= --------------n3FdbbHNyLcHW24z1PPiRY0j--