From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbg154.qq.com (smtpbg154.qq.com [15.184.224.54]) by sourceware.org (Postfix) with ESMTPS id DCE323858D1E for ; Thu, 11 Jan 2024 23:22:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DCE323858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org DCE323858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=15.184.224.54 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705015365; cv=none; b=wYPdXd3SWHM2eDeyoO8pIYJaIc4cuqCKXcS7bjGUxhkBXRh8HW4PizRvKTZHuDiIVLMdJ/9UTh89fFOnCRSmOFbTBfb8/rMTd0oHvZQMrGA/RciyCTY5SF6Sg1r7OvUEKwwiuqqIB+m1JLn3ULrvp1RQOIwynBPuL+reZ3sI5G8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705015365; c=relaxed/simple; bh=gP+49x3li87HeX1kD0VnLV/+Eqh/iECIqN5tb+lRUFY=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=wRWeIreRy8qSdBd925S4CfLhFeDh3TtFfWFrchjqMNSLG592zDVZY/JwwfG3bpVtdOkNqQgwbiyMAhUfyECrbjKA3xmWDf858MZg/tdLkI4Pkzb16tS/INzhE2hmlFZ8RtBgDmPsDARVTCckEU/iFG4By5E3BhFKzix2nZEcdkA= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp62t1705015328tpi9ydbp Received: from TABLET-POE6JQHH ( [116.77.2.214]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 12 Jan 2024 07:22:06 +0800 (CST) X-QQ-SSF: 00400000000000G0V000000A0000000 X-QQ-FEAT: W+onFc5Tw4NXutXK4LWcv/TK2a6k/TWtQpkPcu4QR5kYSkgPvtUR7+RQkEPCz UPIfFf/RbRafr4zNMUb/1MVjO+U8IrWefa45MnxRYkCex13rjhXVrNR2Tjq/3+13SUbhTLp oPMembkEuqYKv3uUt7iJpDUkW+hLeo4Ir6KfDdg63T1Q5qaXGyojYVf60nE1k0yCq/fFyQp HtivByGuFzaIhPLmk4YpBeBCdGUYGc8VtEdaUE2dts4TqPwessZ24cS6FXE6clMmS/0VwJU uCRdASVuJAXq+7uY1qn8naeuBBr7lqHR49RyZ4A9Ivr03qe1UHxynCqH3GiMc3nvHkyIPwD urtdXaE+gsVlqxjgNeXz1BIbXl2uVWQeb3TVtAd5uX7oFu3qPcduvr2AWpG9CDAE/1mkIjT lbL/OKYtO+csPwYS1P/h2t3SJkRZ8TwN X-QQ-GoodBg: 2 X-BIZMAIL-ID: 14256089279588675967 Date: Fri, 12 Jan 2024 07:22:07 +0800 From: =?UTF-8?B?6ZKf5bGF5ZOy?= To: cooper.joshua , gcc-patches Cc: jim.wilson.gcc , palmer , andrew , philipp.tomsich , "Jeff Law" , =?UTF-8?B?Q2hyaXN0b3BoIE3DvGxsbmVy?= , jinma , "Cooper Qu" Subject: =?UTF-8?B?UmU6IFJl77yaW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4=?= References: , X-Priority: 3 X-GUID: 647F5989-717C-46AA-B77D-9C36672BD621 X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart658202516216_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.8 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart658202516216_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 QWxzbywgeW91IGRvbid0IG5lZWQgdG8gY2hhbmdlIHRoZXNlOg0KDQotRU5U UlkgKFJWVk1GNjRCSSwgVEFSR0VUX01JTl9WTEVOID4gMzIsIExNVUxfRjgs IDY0KQotRU5UUlkgKFJWVk1GMzJCSSwgdHJ1ZSwgTE1VTF9GNCwgMzIpCi1F TlRSWSAoUlZWTUYxNkJJLCB0cnVlLCBMTVVMX0YyLCAxNikKK0VOVFJZIChS VlZNRjY0QkksIFRBUkdFVF9NSU5fVkxFTiA+IDMyLCBUQVJHRVRfWFRIRUFE VkVDVE9SID8gTE1VTF8xIDpMTVVMX0Y4LCA2NCkKK0VOVFJZIChSVlZNRjMy QkksIHRydWUsIFRBUkdFVF9YVEhFQURWRUNUT1IgPyBMTVVMXzEgOkxNVUxf RjQsIDMyKQorRU5UUlkgKFJWVk1GMTZCSSwgdHJ1ZSwgVEFSR0VUX1hUSEVB RFZFQ1RPUiA/IExNVUxfMSA6IExNVUxfRjIgLCAxNikNCllvdSBzaG91bGQg c3BlY2lmeSB0aGVzZSBjYXNlcyBpbiANCg0KZW51bSB2bG11bF90eXBlDQpn ZXRfdmxtdWwgKG1hY2hpbmVfbW9kZSBtb2RlKQ0KDQpBbmQgZG9uJ3QgY2hh bmdlOg0KDQogKGRlZmluZV9hdHRyICJzZXciICIiCi0gIChjb25kIFsoZXFf YXR0ciAibW9kZSIgIlJWVk1GNjRCSSxSVlZNRjMyQkksUlZWTUYxNkJJLFJW Vk1GOEJJLFJWVk1GNEJJLFJWVk1GMkJJLFJWVk0xQkksXAorICAoY29uZCBb KGVxX2F0dHIgIm1vZGUiICJSVlZNRjhCSSxSVlZNRjRCSSxSVlZNRjJCSSxS VlZNMUJJLFwKIAkJCSAgUlZWTThRSSxSVlZNNFFJLFJWVk0yUUksUlZWTTFR SSxSVlZNRjJRSSxSVlZNRjRRSSxSVlZNRjhRSSxcCiAJCQkgIFJWVk0xeDhR SSxSVlZNRjJ4OFFJLFJWVk1GNHg4UUksUlZWTUY4eDhRSSxcCiAJCQkgIFJW Vk0xeDdRSSxSVlZNRjJ4N1FJLFJWVk1GNHg3UUksUlZWTUY4eDdRSSxcCkBA IC05OSw2ICs5OSwxOCBAQAogCQkJICBWMVFJLFYyUUksVjRRSSxWOFFJLFYx NlFJLFYzMlFJLFY2NFFJLFYxMjhRSSxWMjU2UUksVjUxMlFJLFYxMDI0UUks VjIwNDhRSSxWNDA5NlFJLFwKIAkJCSAgVjFCSSxWMkJJLFY0QkksVjhCSSxW MTZCSSxWMzJCSSxWNjRCSSxWMTI4QkksVjI1NkJJLFY1MTJCSSxWMTAyNEJJ LFYyMDQ4QkksVjQwOTZCSSIpCiAJIChjb25zdF9pbnQgOCkKKwkgKGVxX2F0 dHIgIm1vZGUiICJSVlZNRjE2QkkiKQorCSAgIChpZl90aGVuX2Vsc2UgKG1h dGNoX3Rlc3QgIlRBUkdFVF9YVEhFQURWRUNUT1IiKQorCSAgICAgKGNvbnN0 X2ludCAxNikKKwkgICAgIChjb25zdF9pbnQgOCkpCisJIChlcV9hdHRyICJt b2RlIiAiUlZWTUYzMkJJIikKKwkgICAoaWZfdGhlbl9lbHNlIChtYXRjaF90 ZXN0ICJUQVJHRVRfWFRIRUFEVkVDVE9SIikKKwkgICAgIChjb25zdF9pbnQg MzIpCisJICAgICAoY29uc3RfaW50IDgpKQorCSAoZXFfYXR0ciAibW9kZSIg IlJWVk1GNjRCSSIpCisJICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfdGVzdCAi VEFSR0VUX1hUSEVBRFZFQ1RPUiIpCisJICAgICAoY29uc3RfaW50IDY0KQor CSAgICAgKGNvbnN0X2ludCA4KSkKIAkgKGVxX2F0dHIgIm1vZGUiICJSVlZN OEhJLFJWVk00SEksUlZWTTJISSxSVlZNMUhJLFJWVk1GMkhJLFJWVk1GNEhJ LFwKIAkJCSAgUlZWTTF4OEhJLFJWVk1GMng4SEksUlZWTUY0eDhISSxcCiAJ CQkgIFJWVk0xeDdISSxSVlZNRjJ4N0hJLFJWVk1GNHg3SEksXApAQCAtMTU5 LDkgKzE3MSw5IEBACiAJIChlcV9hdHRyICJtb2RlIiAiUlZWTTRRSSxSVlZN RjJCSSIpIChzeW1ib2xfcmVmICJyaXNjdl92ZWN0b3I6OkxNVUxfNCIpCiAJ IChlcV9hdHRyICJtb2RlIiAiUlZWTTJRSSxSVlZNRjRCSSIpIChzeW1ib2xf cmVmICJyaXNjdl92ZWN0b3I6OkxNVUxfMiIpCiAJIChlcV9hdHRyICJtb2Rl IiAiUlZWTTFRSSxSVlZNRjhCSSIpIChzeW1ib2xfcmVmICJyaXNjdl92ZWN0 b3I6OkxNVUxfMSIpCi0JIChlcV9hdHRyICJtb2RlIiAiUlZWTUYyUUksUlZW TUYxNkJJIikgKHN5bWJvbF9yZWYgInJpc2N2X3ZlY3Rvcjo6TE1VTF9GMiIp Ci0JIChlcV9hdHRyICJtb2RlIiAiUlZWTUY0UUksUlZWTUYzMkJJIikgKHN5 bWJvbF9yZWYgInJpc2N2X3ZlY3Rvcjo6TE1VTF9GNCIpCi0JIChlcV9hdHRy ICJtb2RlIiAiUlZWTUY4UUksUlZWTUY2NEJJIikgKHN5bWJvbF9yZWYgInJp c2N2X3ZlY3Rvcjo6TE1VTF9GOCIpCisJIChlcV9hdHRyICJtb2RlIiAiUlZW TUYyUUksUlZWTUYxNkJJIikgKHN5bWJvbF9yZWYgIlRBUkdFVF9YVEhFQURW RUNUT1IgPyByaXNjdl92ZWN0b3I6OkxNVUxfMSA6IHJpc2N2X3ZlY3Rvcjo6 TE1VTF9GMiIpCisJIChlcV9hdHRyICJtb2RlIiAiUlZWTUY0UUksUlZWTUYz MkJJIikgKHN5bWJvbF9yZWYgIlRBUkdFVF9YVEhFQURWRUNUT1IgPyByaXNj dl92ZWN0b3I6OkxNVUxfMSA6IHJpc2N2X3ZlY3Rvcjo6TE1VTF9GNCIpCisJ IChlcV9hdHRyICJtb2RlIiAiUlZWTUY4UUksUlZWTUY2NEJJIikgKHN5bWJv bF9yZWYgIlRBUkdFVF9YVEhFQURWRUNUT1IgPyByaXNjdl92ZWN0b3I6OkxN VUxfMSA6IHJpc2N2X3ZlY3Rvcjo6TE1VTF9GOCIpWW91IHNob3VsZCBjaGFu Z2UgDQovKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IFNFVyBvcGVyYW5kLiBX ZSBhbHdheXMgaGF2ZSBTRVcgdmFsdWUgZm9yDQogICBhbGwgUlZWIGluc3Ry dWN0aW9ucyB0aGF0IGhhdmUgVlRZUEUgT1AuICAqLw0KdWludDhfdA0KZ2V0 X3NldyAocnR4X2luc24gKnJpbnNuKQ0Kew0KICByZXR1cm4gZ2V0X2F0dHJf c2V3IChyaW5zbik7DQp9DQoNCi8qIEhlbHBlciBmdW5jdGlvbiB0byBnZXQg VkxNVUwgb3BlcmFuZC4gV2UgYWx3YXlzIGhhdmUgVkxNVUwgdmFsdWUgZm9y DQogICBhbGwgUlZWIGluc3RydWN0aW9ucyB0aGF0IGhhdmUgVlRZUEUgT1Au ICovDQplbnVtIHZsbXVsX3R5cGUNCmdldF92bG11bCAocnR4X2luc24gKnJp bnNuKQ0Kew0KICByZXR1cm4gKGVudW0gdmxtdWxfdHlwZSkgZ2V0X2F0dHJf dmxtdWwgKHJpbnNuKTsNCn0NCisJKGFuZCAoZXFfYXR0ciAidHlwZSIgInZs ZGUsdnN0ZSx2bHNlZ2RlLHZzc2VndGUsdmxzZWdkcyx2c3NlZ3RzLFwKKwkJ CSAgICAgICB2bHNlZ2RmZix2c3NlZ3R1eCx2bHNlZ2RveCx2bHNlZ2R1eCIp CisJICAgICAgKG1hdGNoX3Rlc3QgIlRBUkdFVF9YVEhFQURWRUNUT1IiKSkK KwkgICAoY29uc3RfaW50IElOVkFMSURfQVRUUklCVVRFKVdoeSBkbyB5b3Ug YWRkIHRoaXMgPw0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFpDQogDQrlj5Hk u7bkurrvvJogam9zaHVhDQrlj5HpgIHml7bpl7TvvJogMjAyNC0wMS0xMSAy MjoxMQ0K5pS25Lu25Lq677yaIGp1emhlLnpob25nQHJpdmFpLmFpOyBnY2Mt cGF0Y2hlcw0K5oqE6YCB77yaIEppbSBXaWxzb247IHBhbG1lcjsgYW5kcmV3 OyBwaGlsaXBwLnRvbXNpY2g7IGplZmZyZXlhbGF3OyBjaHJpc3RvcGgubXVl bGxuZXI7IGppbm1hOyBjb29wZXIucXUNCuS4u+mimO+8miBSZe+8mlJl77ya W1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0 b3Itc3BlY2lmaWMgaW50cmluc2ljcy4NCklzIHRoZSBwYXRjaCB3aXRoICFU QVJHRVRfWFRIRUFEVkVDVE9SIGZvciBzZXh0L3pleHQNCnBhdHRlcm5zIHJl bW92ZWQgT0sgdG8gY29tbWl0Pw0KaHR0cHM6Ly9nY2MuZ251Lm9yZy9waXBl cm1haWwvZ2NjLXBhdGNoZXMvMjAyNC1KYW51YXJ5LzY0MjY1Ny5odG1sDQog DQogDQogDQogDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCuWPkeS7tuS6uu+8 mmp1emhlLnpob25nQHJpdmFpLmFpIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4N CuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTHml6Uo5pif5pyf5ZubKSAx ODo1Ng0K5pS25Lu25Lq677yaImNvb3Blci5qb3NodWEiPGNvb3Blci5qb3No dWFAbGludXguYWxpYmFiYS5jb20+OyAiZ2NjLXBhdGNoZXMiPGdjYy1wYXRj aGVzQGdjYy5nbnUub3JnPg0K5oqE44CA6YCB77yaSmltIFdpbHNvbjxqaW0u d2lsc29uLmdjY0BnbWFpbC5jb20+OyBwYWxtZXI8cGFsbWVyQGRhYmJlbHQu Y29tPjsgYW5kcmV3PGFuZHJld0BzaWZpdmUuY29tPjsgInBoaWxpcHAudG9t c2ljaCI8cGhpbGlwcC50b21zaWNoQHZydWxsLmV1PjsgamVmZnJleWFsYXc8 amVmZnJleWFsYXdAZ21haWwuY29tPjsgImNocmlzdG9waC5tdWVsbG5lciI8 Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1PjsgamlubWE8amlubWFAbGlu dXguYWxpYmFiYS5jb20+OyAiY29vcGVyLnF1Ijxjb29wZXIucXVAbGludXgu YWxpYmFiYS5jb20+DQrkuLvjgIDpopjvvJpSZTogUmXvvJpbUEFUQ0ggdjVd IFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZp YyBpbnRyaW5zaWNzLg0KIA0KIA0KWWVzLg0KIA0KIA0KanV6aGUuemhvbmdA cml2YWkuYWkNCiANCiANCuWPkeS7tuS6uu+8miBqb3NodWENCuWPkemAgeaX tumXtO+8miAyMDI0LTAxLTExIDE4OjU0DQrmlLbku7bkurrvvJoganV6aGUu emhvbmdAcml2YWkuYWk7IGdjYy1wYXRjaGVzDQrmioTpgIHvvJogSmltIFdp bHNvbjsgcGFsbWVyOyBhbmRyZXc7IHBoaWxpcHAudG9tc2ljaDsgamVmZnJl eWFsYXc7IGNocmlzdG9waC5tdWVsbG5lcjsgamlubWE7IGNvb3Blci5xdQ0K 5Li76aKY77yaIFJl77yaW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0 IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4NCiANCkRv IHlvdSBtZWFuIHJlbW92aW5nIFRBUkdFVF9YVEhFQURWRUNUT1IgZm9yIHNl eHQvemV4dCBwYXR0ZXJucw0KYW5kIHRoZW4gcmVzZW5kaW5nIHRoZSAgIlJJ U0MtVjogSGFuZGxlIGRpZmZlcmVuY2VzIGJldHdlZW4gWFRoZWFkdmVjdG9y DQphbmQgVmVjdG9yIiBwYXRjaD8NCiANCiANCiANCiANCiANCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0K5Y+R5Lu25Lq677yaanV6aGUuemhvbmdAcml2YWku YWkgPGp1emhlLnpob25nQHJpdmFpLmFpPg0K5Y+R6YCB5pe26Ze077yaMjAy NOW5tDHmnIgxMeaXpSjmmJ/mnJ/lm5spIDE3OjU3DQrmlLbku7bkurrvvJoi Y29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNv bT47ICJnY2MtcGF0Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+DQrm ioTjgIDpgIHvvJpKaW0gV2lsc29uPGppbS53aWxzb24uZ2NjQGdtYWlsLmNv bT47IHBhbG1lcjxwYWxtZXJAZGFiYmVsdC5jb20+OyBhbmRyZXc8YW5kcmV3 QHNpZml2ZS5jb20+OyAicGhpbGlwcC50b21zaWNoIjxwaGlsaXBwLnRvbXNp Y2hAdnJ1bGwuZXU+OyBqZWZmcmV5YWxhdzxqZWZmcmV5YWxhd0BnbWFpbC5j b20+OyAiY2hyaXN0b3BoLm11ZWxsbmVyIjxjaHJpc3RvcGgubXVlbGxuZXJA dnJ1bGwuZXU+OyAiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51 eC5hbGliYWJhLmNvbT47IGppbm1hPGppbm1hQGxpbnV4LmFsaWJhYmEuY29t PjsgImNvb3Blci5xdSI8Y29vcGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tPg0K 5Li744CA6aKY77yaUmU6IFtQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9y dCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuDQogDQog DQpMR1RNLiBDb3VsZCB5b3UgcmVzZW5kIHRoZSBwYXRjaCAiUklTQy1WOiBI YW5kbGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBYVGhlYWR2ZWN0b3IgYW5kIFZl Y3Rvcg0KIA0KIA0KVGhhbmtzLg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiAN CiANCkZyb206IEp1biBTaGEgKEpvc2h1YSkNCkRhdGU6IDIwMjQtMDEtMTEg MTc6NTINClRvOiBnY2MtcGF0Y2hlcw0KQ0M6IGppbS53aWxzb24uZ2NjOyBw YWxtZXI7IGFuZHJldzsgcGhpbGlwcC50b21zaWNoOyBqZWZmcmV5YWxhdzsg Y2hyaXN0b3BoLm11ZWxsbmVyOyBqdXpoZS56aG9uZzsgSnVuIFNoYSAoSm9z aHVhKTsgSmluIE1hOyBYaWFubWlhbyBRdQ0KU3ViamVjdDogW1BBVENIIHY1 XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lm aWMgaW50cmluc2ljcy4NCiANClRoaXMgcGF0Y2ggb25seSBpbnZvbHZlcyB0 aGUgZ2VuZXJhdGlvbiBvZiB4dGhlYWR2ZWN0b3INCnNwZWNpYWwgbG9hZC9z dG9yZSBpbnN0cnVjdGlvbnMgYW5kIHZleHQgaW5zdHJ1Y3Rpb25zLg0KIA0K Z2NjL0NoYW5nZUxvZzoNCiANCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1iYXNlcy5jYw0KKGNsYXNzIHRoX2xvYWRzdG9yZV93aWR0 aCk6IERlZmluZSBuZXcgYnVpbHRpbiBiYXNlcy4NCihjbGFzcyB0aF9leHRy YWN0KTogRGVmaW5lIG5ldyBidWlsdGluIGJhc2VzLg0KKEJBU0UpOiBEZWZp bmUgbmV3IGJ1aWx0aW4gYmFzZXMuDQoqIGNvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaDoNCkRlZmluZSBuZXcgYnVpbHRpbiBj bGFzcy4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1z aGFwZXMuY2MNCihzdHJ1Y3QgdGhfbG9hZHN0b3JlX3dpZHRoX2RlZik6IERl ZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuDQooc3RydWN0IHRoX2luZGV4ZWRf bG9hZHN0b3JlX3dpZHRoX2RlZik6DQpEZWZpbmUgbmV3IGJ1aWx0aW4gc2hh cGVzLg0KKHN0cnVjdCB0aF9leHRyYWN0X2RlZik6IERlZmluZSBuZXcgYnVp bHRpbiBzaGFwZXMuDQooU0hBUEUpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gc2hh cGVzLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNo YXBlcy5oOg0KRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4NCiogY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYyAoREVGX1JWVl9GVU5D VElPTik6DQoqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu aCAoZW51bSByZXF1aXJlZF9leHQpOg0KKHN0cnVjdCBmdW5jdGlvbl9ncm91 cF9pbmZvKToNCiogY29uZmlnL3Jpc2N2L3QtcmlzY3Y6IEFkZCB0aGVhZC12 ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZg0KKiBjb25maWcvcmlzY3Yv dGhlYWQtdmVjdG9yLm1kDQooQHByZWRfbW92X3dpZHRoPHZsbWVtX29wX2F0 dHI+PG1vZGU+KTogQWRkIG5ldyBwYXR0ZXJucy4NCigqcHJlZF9tb3Zfd2lk dGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lzZS4NCihAcHJlZF9z dG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPik6IExpa2V3aXNlLg0K KEBwcmVkX3N0cmlkZWRfbG9hZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2Rl Pik6IExpa2V3aXNlLg0KKEBwcmVkX3N0cmlkZWRfc3RvcmVfd2lkdGg8dmxt ZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lzZS4NCihAcHJlZF9pbmRleGVk X2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lzZS4N CihAcHJlZF9pbmRleGVkXzx2bG1lbV9vcmRlcl9hdHRyPnN0b3JlX3dpZHRo PHZsbWVtX29wX2F0dHI+PG1vZGU+KToNCihAcHJlZF90aF9leHRyYWN0PG1v ZGU+KTogTGlrZXdpc2UuDQooKnByZWRfdGhfZXh0cmFjdDxtb2RlPik6IExp a2V3aXNlLg0KKiBjb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5z LWZ1bmN0aW9ucy5kZWY6IE5ldyBmaWxlLg0KIA0KZ2NjL3Rlc3RzdWl0ZS9D aGFuZ2VMb2c6DQogDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bGItdnNiLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYzogTmV3IHRlc3QuDQoqIGdj Yy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmM6IE5l dyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Iv dmxodS12c2guYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bHctdnN3LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYzogTmV3IHRl c3QuDQpDby1hdXRob3JlZC1ieTogSmluIE1hIDxqaW5tYUBsaW51eC5hbGli YWJhLmNvbT4NCkNvLWF1dGhvcmVkLWJ5OiBYaWFubWlhbyBRdSA8Y29vcGVy LnF1QGxpbnV4LmFsaWJhYmEuY29tPg0KQ28tYXV0aG9yZWQtYnk6IENocmlz dG9waCBNw7xsbG5lciA8Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1Pg0K LS0tDQouLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNj ICAgICAgfCAxMzkgKysrKysrKysrKw0KLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1iYXNlcy5oICAgICAgIHwgIDMxICsrKw0KLi4uL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MgICAgIHwgMTYwICsr KysrKysrKysrDQouLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNo YXBlcy5oICAgICAgfCAgIDMgKw0KZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMuY2MgICAgIHwgIDcwICsrKysrDQpnY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oICAgICAgfCAgIDMgKw0K Z2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2ICAgICAgICAgICAgICAgICAgICAg IHwgICAxICsNCi4uLi9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVu Y3Rpb25zLmRlZiB8ICAzOSArKysNCmdjYy9jb25maWcvcmlzY3YvdGhlYWQt dmVjdG9yLm1kICAgICAgICAgICAgICB8IDI1MCArKysrKysrKysrKysrKysr KysNCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYyAgICAg ICAgICB8ICA2OCArKysrKw0KLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Iv dmxidS12c2IuYyAgICAgICAgIHwgIDY4ICsrKysrDQouLi4vcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMgICAgICAgICAgfCAgNjggKysrKysN Ci4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmMgICAgICAg ICB8ICA2OCArKysrKw0KLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3 LXZzdy5jICAgICAgICAgIHwgIDY4ICsrKysrDQouLi4vcmlzY3YvcnZ2L3h0 aGVhZHZlY3Rvci92bHd1LXZzdy5jICAgICAgICAgfCAgNjggKysrKysNCjE1 IGZpbGVzIGNoYW5nZWQsIDExMDQgaW5zZXJ0aW9ucygrKQ0KY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0 aW5zLWZ1bmN0aW9ucy5kZWYNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGIt dnNiLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jDQpjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jDQpjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3IvdmxodS12c2guYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12 c3cuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMNCiANCmRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy1iYXNlcy5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLWJhc2VzLmNjDQppbmRleCAxYWE2ZTNjNjY2NS4uYjZmNmU0 ZmYzN2UgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy1iYXNlcy5jYw0KKysrIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MNCkBAIC0yMTQxLDYg KzIxNDEsODMgQEAgcHVibGljOg0KICAgfQ0KfTsNCisvKiBJbXBsZW1lbnRz DQorICogdGgudmwoYi9oL3cpW3VdLnYvdGgudnMoYi9oL3cpW3VdLnYvdGgu dmxzKGIvaC93KVt1XS52L3RoLnZzcyhiL2gvdylbdV0udi8NCisgKiB0aC52 bHgoYi9oL3cpW3VdLnYvdGgudnNbdV14KGIvaC93KS52DQorICogY29kZWdl bi4gICovDQordGVtcGxhdGU8Ym9vbCBTVE9SRV9QLCBsc3RfdHlwZSBMU1Rf VFlQRSwgaW50IFVOU1BFQz4NCitjbGFzcyB0aF9sb2Fkc3RvcmVfd2lkdGgg OiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KK3sNCitwdWJsaWM6DQorICBib29s IGFwcGx5X3RhaWxfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1 cm4gIVNUT1JFX1A7IH0NCisgIGJvb2wgYXBwbHlfbWFza19wb2xpY3lfcCAo KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAhU1RPUkVfUDsgfQ0KKw0KKyAg dW5zaWduZWQgaW50IGNhbGxfcHJvcGVydGllcyAoY29uc3QgZnVuY3Rpb25f aW5zdGFuY2UgJikgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgaWYgKFNU T1JFX1ApDQorICAgICAgcmV0dXJuIENQX1dSSVRFX01FTU9SWTsNCisgICAg ZWxzZQ0KKyAgICAgIHJldHVybiBDUF9SRUFEX01FTU9SWTsNCisgIH0NCisN CisgIGJvb2wgY2FuX2JlX292ZXJsb2FkZWRfcCAoZW51bSBwcmVkaWNhdGlv bl90eXBlX2luZGV4IHByZWQpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAg IGlmIChTVE9SRV9QIHx8IExTVF9UWVBFID09IExTVF9JTkRFWEVEKQ0KKyAg ICAgIHJldHVybiB0cnVlOw0KKyAgICByZXR1cm4gcHJlZCAhPSBQUkVEX1RZ UEVfbm9uZTsNCisgIH0NCisNCisgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4 cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICBnY2NfYXNz ZXJ0IChUQVJHRVRfWFRIRUFEVkVDVE9SKTsNCisgICAgaWYgKExTVF9UWVBF ID09IExTVF9JTkRFWEVEKQ0KKyAgICAgIHsNCisgaWYgKFNUT1JFX1ApDQor ICAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24gKA0KKyAgICAgY29kZV9mb3Jf cHJlZF9pbmRleGVkX3N0b3JlX3dpZHRoIChVTlNQRUMsIFVOU1BFQywNCisg ICAgICAgIGUudmVjdG9yX21vZGUgKCkpKTsNCisgZWxzZQ0KKyAgIHJldHVy biBlLnVzZV9leGFjdF9pbnNuICgNCisgICAgIGNvZGVfZm9yX3ByZWRfaW5k ZXhlZF9sb2FkX3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsN CisgICAgICB9DQorICAgIGVsc2UgaWYgKExTVF9UWVBFID09IExTVF9TVFJJ REVEKQ0KKyAgICAgIHsNCisgaWYgKFNUT1JFX1ApDQorICAgcmV0dXJuIGUu dXNlX2NvbnRpZ3VvdXNfc3RvcmVfaW5zbiAoDQorICAgICBjb2RlX2Zvcl9w cmVkX3N0cmlkZWRfc3RvcmVfd2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9k ZSAoKSkpOw0KKyBlbHNlDQorICAgcmV0dXJuIGUudXNlX2NvbnRpZ3VvdXNf bG9hZF9pbnNuICgNCisgICAgIGNvZGVfZm9yX3ByZWRfc3RyaWRlZF9sb2Fk X3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsNCisgICAgICB9 DQorICAgIGVsc2UNCisgICAgICB7DQorIGlmIChTVE9SRV9QKQ0KKyAgIHJl dHVybiBlLnVzZV9jb250aWd1b3VzX3N0b3JlX2luc24gKA0KKyAgICAgY29k ZV9mb3JfcHJlZF9zdG9yZV93aWR0aCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2Rl ICgpKSk7DQorIGVsc2UNCisgICByZXR1cm4gZS51c2VfY29udGlndW91c19s b2FkX2luc24gKA0KKyAgICAgY29kZV9mb3JfcHJlZF9tb3Zfd2lkdGggKFVO U1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgIH0NCisgIH0NCit9 Ow0KKw0KKy8qIEltcGxlbWVudHMgdmV4dC54LnYuICAqLw0KK2NsYXNzIHRo X2V4dHJhY3QgOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KK3sNCitwdWJsaWM6 DQorICBib29sIGFwcGx5X3ZsX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1 cm4gZmFsc2U7IH0NCisgIGJvb2wgYXBwbHlfdGFpbF9wb2xpY3lfcCAoKSBj b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KKyAgYm9vbCBhcHBs eV9tYXNrX3BvbGljeV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZh bHNlOyB9DQorICBib29sIHVzZV9tYXNrX3ByZWRpY2F0aW9uX3AgKCkgY29u c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgaGFzX21l cmdlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz ZTsgfQ0KKw0KKyAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUp IGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIGdjY19hc3NlcnQgKFRBUkdF VF9YVEhFQURWRUNUT1IpOw0KKyAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5z biAoY29kZV9mb3JfcHJlZF90aF9leHRyYWN0IChlLnZlY3Rvcl9tb2RlICgp KSk7DQorICB9DQorfTsNCisNCi8qIEJlbG93IGltcGxlbWVudHMgYXJlIHZl Y3RvciBjcnlwdG8gKi8NCi8qIEltcGxlbWVudHMgdmFuZG4uW3Z2LHZ4XSAq Lw0KY2xhc3MgdmFuZG4gOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KQEAgLTI2 MDMsNiArMjY4MCwzNyBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHNlZ19p bmRleGVkX2xvYWQ8VU5TUEVDX09SREVSRUQ+IHZsb3hzZWdfb2JqOw0Kc3Rh dGljIENPTlNURVhQUiBjb25zdCBzZWdfaW5kZXhlZF9zdG9yZTxVTlNQRUNf VU5PUkRFUkVEPiB2c3V4c2VnX29iajsNCnN0YXRpYyBDT05TVEVYUFIgY29u c3Qgc2VnX2luZGV4ZWRfc3RvcmU8VU5TUEVDX09SREVSRUQ+IHZzb3hzZWdf b2JqOw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCB2bHNlZ2ZmIHZsc2VnZmZf b2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dp ZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEI+IHZs Yl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVf d2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMQlU+ IHZsYnVfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0 b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9W TEg+IHZsaF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fk c3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RI X1ZMSFU+IHZsaHVfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhf bG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BF Q19USF9WTFc+IHZsd19vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5T UEVDX1RIX1ZMV1U+IHZsd3Vfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9VTklUX1NUUklERSwg VU5TUEVDX1RIX1ZMQj4gdnNiX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUs IFVOU1BFQ19USF9WTEg+IHZzaF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1VOSVRfU1RSSURF LCBVTlNQRUNfVEhfVkxXPiB2c3dfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwg VU5TUEVDX1RIX1ZMU0I+IHZsc2Jfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwg VU5TUEVDX1RIX1ZMU0JVPiB2bHNidV9vYmo7DQorc3RhdGljIENPTlNURVhQ UiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVE LCBVTlNQRUNfVEhfVkxTSD4gdmxzaF9vYmo7DQorc3RhdGljIENPTlNURVhQ UiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVE LCBVTlNQRUNfVEhfVkxTSFU+IHZsc2h1X29iajsNCitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklE RUQsIFVOU1BFQ19USF9WTFNXPiB2bHN3X29iajsNCitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklE RUQsIFVOU1BFQ19USF9WTFNXVT4gdmxzd3Vfb2JqOw0KK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9TVFJJ REVELCBVTlNQRUNfVEhfVkxTQj4gdnNzYl9vYmo7DQorc3RhdGljIENPTlNU RVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1NUUklE RUQsIFVOU1BFQ19USF9WTFNIPiB2c3NoX29iajsNCitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfU1RSSURF RCwgVU5TUEVDX1RIX1ZMU1c+IHZzc3dfb2JqOw0KK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhF RCwgVU5TUEVDX1RIX1ZMWEI+IHZseGJfb2JqOw0KK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhF RCwgVU5TUEVDX1RIX1ZMWEJVPiB2bHhidV9vYmo7DQorc3RhdGljIENPTlNU RVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRF WEVELCBVTlNQRUNfVEhfVkxYSD4gdmx4aF9vYmo7DQorc3RhdGljIENPTlNU RVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRF WEVELCBVTlNQRUNfVEhfVkxYSFU+IHZseGh1X29iajsNCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lO REVYRUQsIFVOU1BFQ19USF9WTFhXPiB2bHh3X29iajsNCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lO REVYRUQsIFVOU1BFQ19USF9WTFhXVT4gdmx4d3Vfb2JqOw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9J TkRFWEVELCBVTlNQRUNfVEhfVkxYQj4gdnN4Yl9vYmo7DQorc3RhdGljIENP TlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX0lO REVYRUQsIFVOU1BFQ19USF9WTFhIPiB2c3hoX29iajsNCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5E RVhFRCwgVU5TUEVDX1RIX1ZMWFc+IHZzeHdfb2JqOw0KK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRF WEVELCBVTlNQRUNfVEhfVlNVWEI+IHZzdXhiX29iajsNCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5E RVhFRCwgVU5TUEVDX1RIX1ZTVVhIPiB2c3V4aF9vYmo7DQorc3RhdGljIENP TlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX0lO REVYRUQsIFVOU1BFQ19USF9WU1VYVz4gdnN1eHdfb2JqOw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgdGhfZXh0cmFjdCB2ZXh0X3hfdl9vYmo7DQovKiBD cnlwdG8gVmVjdG9yICovDQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZhbmRu IHZhbmRuX29iajsNCkBAIC0yODk0LDYgKzMwMDIsMzcgQEAgQkFTRSAodmxv eHNlZykNCkJBU0UgKHZzdXhzZWcpDQpCQVNFICh2c294c2VnKQ0KQkFTRSAo dmxzZWdmZikNCitCQVNFICh2bGIpDQorQkFTRSAodmxoKQ0KK0JBU0UgKHZs dykNCitCQVNFICh2bGJ1KQ0KK0JBU0UgKHZsaHUpDQorQkFTRSAodmx3dSkN CitCQVNFICh2c2IpDQorQkFTRSAodnNoKQ0KK0JBU0UgKHZzdykNCitCQVNF ICh2bHNiKQ0KK0JBU0UgKHZsc2gpDQorQkFTRSAodmxzdykNCitCQVNFICh2 bHNidSkNCitCQVNFICh2bHNodSkNCitCQVNFICh2bHN3dSkNCitCQVNFICh2 c3NiKQ0KK0JBU0UgKHZzc2gpDQorQkFTRSAodnNzdykNCitCQVNFICh2bHhi KQ0KK0JBU0UgKHZseGgpDQorQkFTRSAodmx4dykNCitCQVNFICh2bHhidSkN CitCQVNFICh2bHhodSkNCitCQVNFICh2bHh3dSkNCitCQVNFICh2c3hiKQ0K K0JBU0UgKHZzeGgpDQorQkFTRSAodnN4dykNCitCQVNFICh2c3V4YikNCitC QVNFICh2c3V4aCkNCitCQVNFICh2c3V4dykNCitCQVNFICh2ZXh0X3hfdikN Ci8qIENyeXB0byB2ZWN0b3IgKi8NCkJBU0UgKHZhbmRuKQ0KQkFTRSAodmJy ZXYpDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtYmFzZXMuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgNCmluZGV4IDg3YzdmNDNhNDIzLi4x ZjJjOTRkMzU0MSAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgNCisrKyBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgNCkBAIC0yODAs NiArMjgwLDM3IEBAIGV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2bG94c2VnOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0 IHZzdXhzZWc7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dnNveHNlZzsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2 bHNlZ2ZmOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2 bGI7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsaDsN CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx3Ow0KK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bGJ1Ow0KK2V4dGVy biBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bGh1Ow0KK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHd1Ow0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c2I7DQorZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZzaDsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdnN3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2bHNiOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2bHNoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpj b25zdCB2bHN3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2bHNidTsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dmxzaHU7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZs c3d1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3Ni Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3NoOw0K K2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3N3Ow0KK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhiOw0KK2V4dGVy biBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhoOw0KK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHh3Ow0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhidTsNCitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4aHU7DQorZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZseHd1Ow0KK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB2c3hiOw0KK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2c3hoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2c3h3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2c3V4YjsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3QgdnN1eGg7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHZzdXh3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2ZXh0X3hfdjsNCi8qIEJlbG93IGZ1bmN0aW9uX2Jhc2UgYXJlIFZlY3Ry byBDcnlwdG8qLw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0 IHZhbmRuOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZi cmV2Ow0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLXNoYXBlcy5jYyBiL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYw0KaW5kZXggMWU0ZjRkNTNk ZTYuLjhlOTBiMTdhOTRiIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjDQorKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MN CkBAIC0yMTEsNiArMjExLDE0NiBAQCBzdHJ1Y3QgaW5kZXhlZF9sb2Fkc3Rv cmVfZGVmIDogcHVibGljIGZ1bmN0aW9uX3NoYXBlDQogICB9DQp9Ow0KKy8q IEFkZCBvbmUgZnVuY3Rpb24gaW5zdGFuY2UgZm9yIEdST1VQLCB1c2luZyBv cGVyYW5kIHN1ZmZpeCBhdCBpbmRleCBPSSwNCisgICBtb2RlIHN1ZmZpeCBh dCBpbmRleCBQQUlSICYmIGJpIGFuZCBwcmVkaWNhdGlvbiBzdWZmaXggYXQg aW5kZXggcHJlZF9pZHguICAqLw0KK3N0YXRpYyB2b2lkDQorYnVpbGRfdGhf bG9hZHN0b3JlIChmdW5jdGlvbl9idWlsZGVyICZiLCBjb25zdCBmdW5jdGlv bl9ncm91cF9pbmZvICZncm91cCwNCisgICAgIHVuc2lnbmVkIGludCBwcmVk X2lkeCwgdW5zaWduZWQgaW50IHZlY190eXBlX2lkeCkNCit7DQorICBhdXRv X3ZlYzx0cmVlLCA1PiBhcmd1bWVudF90eXBlczsNCisgIGZ1bmN0aW9uX2lu c3RhbmNlIGZ1bmN0aW9uX2luc3RhbmNlIChncm91cC5iYXNlX25hbWUsICpn cm91cC5iYXNlLA0KKyAgICAgICAgKmdyb3VwLnNoYXBlLA0KKyAgICAgICAg Z3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0sDQorICAgICAg ICBncm91cC5wcmVkc1twcmVkX2lkeF0sICZncm91cC5vcHNfaW5mb3MpOw0K KyAgdHJlZSByZXR1cm5fdHlwZSA9IGdyb3VwLm9wc19pbmZvcy5yZXQuZ2V0 X3RyZWVfdHlwZSAoDQorICAgIGdyb3VwLm9wc19pbmZvcy50eXBlc1t2ZWNf dHlwZV9pZHhdLmluZGV4KTsNCisgIGIuYWxsb2NhdGVfYXJndW1lbnRfdHlw ZXMgKGZ1bmN0aW9uX2luc3RhbmNlLCBhcmd1bWVudF90eXBlcyk7DQorICBi LmFwcGx5X3ByZWRpY2F0aW9uIChmdW5jdGlvbl9pbnN0YW5jZSwgcmV0dXJu X3R5cGUsIGFyZ3VtZW50X3R5cGVzKTsNCisNCisgIGlmIChUQVJHRVRfWFRI RUFEVkVDVE9SICYmICFjaGVja190eXBlIChyZXR1cm5fdHlwZSwgYXJndW1l bnRfdHlwZXMpKQ0KKyAgICByZXR1cm47DQorDQorICB0cmVlIHR5cGUgPSBi dWlsdGluX3R5cGVzW2dyb3VwLm9wc19pbmZvcy50eXBlc1t2ZWNfdHlwZV9p ZHhdLmluZGV4XS52ZWN0b3I7DQorICBpZiAoc3Ryc3RyIChncm91cC5iYXNl X25hbWUsICJsIikNCisgICAgICAmJiBzdHJzdHIgKGdyb3VwLmJhc2VfbmFt ZSwgInUiKQ0KKyAgICAgICYmICFUWVBFX1VOU0lHTkVEIChUUkVFX1RZUEUg KHR5cGUpKSkNCisgICAgcmV0dXJuOw0KKw0KKyAgaWYgKHN0cnN0ciAoZ3Jv dXAuYmFzZV9uYW1lLCAibCIpDQorICAgICAgJiYgIXN0cnN0ciAoZ3JvdXAu YmFzZV9uYW1lLCAidSIpDQorICAgICAgJiYgVFlQRV9VTlNJR05FRCAoVFJF RV9UWVBFICh0eXBlKSkpDQorICAgIHJldHVybjsNCisNCisgIG1hY2hpbmVf bW9kZSBtb2RlID0gVFlQRV9NT0RFICh0eXBlKTsNCisgIGludCBzZXcgPSBH RVRfTU9ERV9CSVRTSVpFIChHRVRfTU9ERV9JTk5FUiAobW9kZSkpOw0KKyAg aWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAiaCIpICYmIHNldyA9PSA4 KQ0KKyAgICByZXR1cm47DQorDQorICBpZiAoc3Ryc3RyIChncm91cC5iYXNl X25hbWUsICJ3IikgJiYgKHNldyA9PSA4IHx8IHNldyA9PTE2KSkNCisgICAg cmV0dXJuOw0KKw0KKyAgYi5hZGRfb3ZlcmxvYWRlZF9mdW5jdGlvbiAoZnVu Y3Rpb25faW5zdGFuY2UsICpncm91cC5zaGFwZSk7DQorICBiLmFkZF91bmlx dWVfZnVuY3Rpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCAoKmdyb3VwLnNoYXBl KSwgcmV0dXJuX3R5cGUsDQorIGFyZ3VtZW50X3R5cGVzKTsNCit9DQorDQor LyogdGhfbG9hZHN0b3JlX3dpZHRoX2RlZiBjbGFzcy4gICovDQorc3RydWN0 IHRoX2xvYWRzdG9yZV93aWR0aF9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQ0K K3sNCisgICB2b2lkIGJ1aWxkIChmdW5jdGlvbl9idWlsZGVyICZiLA0KKyAg ICAgICBjb25zdCBmdW5jdGlvbl9ncm91cF9pbmZvICZncm91cCkgY29uc3Qg b3ZlcnJpZGUNCisgIHsNCisgICAgZm9yICh1bnNpZ25lZCBpbnQgcHJlZF9p ZHggPSAwOyBncm91cC5wcmVkc1twcmVkX2lkeF0gIT0gTlVNX1BSRURfVFlQ RVM7DQorICAgICAgICsrcHJlZF9pZHgpDQorICAgICAgew0KKyBmb3IgKHVu c2lnbmVkIGludCB2ZWNfdHlwZV9pZHggPSAwOw0KKyAgICAgIGdyb3VwLm9w c19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4ICE9IE5VTV9WRUNU T1JfVFlQRVM7DQorICAgICAgKyt2ZWNfdHlwZV9pZHgpDQorICAgew0KKyAg ICAgYnVpbGRfdGhfbG9hZHN0b3JlIChiLCBncm91cCwgcHJlZF9pZHgsIHZl Y190eXBlX2lkeCk7DQorICAgfQ0KKyAgICAgIH0NCisgIH0NCisNCisgIGNo YXIgKmdldF9uYW1lIChmdW5jdGlvbl9idWlsZGVyICZiLCBjb25zdCBmdW5j dGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsDQorICAgYm9vbCBvdmVybG9hZGVk X3ApIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIC8qIFJldHVybiBudWxs cHRyIGlmIGl0IGNhbiBub3QgYmUgb3ZlcmxvYWRlZC4gICovDQorICAgIGlm IChvdmVybG9hZGVkX3AgJiYgIWluc3RhbmNlLmJhc2UtPmNhbl9iZV9vdmVy bG9hZGVkX3AgKGluc3RhbmNlLnByZWQpKQ0KKyAgICAgIHJldHVybiBudWxs cHRyOw0KKw0KKyAgICBiLmFwcGVuZF9uYW1lICgiX19yaXNjdl90aF8iKTsN CisgICAgYi5hcHBlbmRfbmFtZSAoaW5zdGFuY2UuYmFzZV9uYW1lKTsNCisN CisgICAgLyogdm9wX3YgLS0+IHZvcF92Xzx0eXBlPi4gICovDQorICAgIGlm ICghb3ZlcmxvYWRlZF9wKQ0KKyAgICAgIHsNCisgLyogdm9wIC0tPiB2b3Bf di4gICovDQorIGIuYXBwZW5kX25hbWUgKG9wZXJhbmRfc3VmZml4ZXNbaW5z dGFuY2Uub3BfaW5mby0+b3BdKTsNCisgLyogdm9wX3YgLS0+IHZvcF92Xzx0 eXBlPi4gICovDQorIGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNbaW5z dGFuY2UudHlwZS5pbmRleF0udmVjdG9yKTsNCisgICAgICB9DQorDQorICAg IC8qIEFjY29yZGluZyB0byBydnYtaW50cmluc2ljLWRvYywgaXQgZG9lcyBu b3QgYWRkICJfbSIgc3VmZml4DQorICAgICAgIGZvciB2b3BfbSBDKysgb3Zl cmxvYWRlZCBBUEkuICAqLw0KKyAgICBpZiAob3ZlcmxvYWRlZF9wICYmIGlu c3RhbmNlLnByZWQgPT0gUFJFRF9UWVBFX20pDQorICAgICAgcmV0dXJuIGIu ZmluaXNoX25hbWUgKCk7DQorICAgIGIuYXBwZW5kX25hbWUgKHByZWRpY2F0 aW9uX3N1ZmZpeGVzW2luc3RhbmNlLnByZWRdKTsNCisgICAgcmV0dXJuIGIu ZmluaXNoX25hbWUgKCk7DQorICB9DQorfTsNCisNCisNCisvKiB0aF9pbmRl eGVkX2xvYWRzdG9yZV93aWR0aF9kZWYgY2xhc3MuICAqLw0KK3N0cnVjdCB0 aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aF9kZWYgOiBwdWJsaWMgZnVuY3Rp b25fc2hhcGUNCit7DQorICB2b2lkIGJ1aWxkIChmdW5jdGlvbl9idWlsZGVy ICZiLA0KKyAgICAgICBjb25zdCBmdW5jdGlvbl9ncm91cF9pbmZvICZncm91 cCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgZm9yICh1bnNpZ25lZCBp bnQgcHJlZF9pZHggPSAwOyBncm91cC5wcmVkc1twcmVkX2lkeF0gIT0gTlVN X1BSRURfVFlQRVM7DQorICsrcHJlZF9pZHgpDQorICAgICAgew0KKyBmb3Ig KHVuc2lnbmVkIGludCB2ZWNfdHlwZV9pZHggPSAwOw0KKyAgICAgIGdyb3Vw Lm9wc19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4ICE9IE5VTV9W RUNUT1JfVFlQRVM7DQorICAgICAgKyt2ZWNfdHlwZV9pZHgpDQorICAgew0K KyAgICB0cmVlIGluZGV4X3R5cGUgPSBncm91cC5vcHNfaW5mb3MuYXJnc1sx XS5nZXRfdHJlZV90eXBlICgNCisgICAgICAgZ3JvdXAub3BzX2luZm9zLnR5 cGVzW3ZlY190eXBlX2lkeF0uaW5kZXgpOw0KKyAgICBpZiAoIWluZGV4X3R5 cGUpDQorICAgICAgIGNvbnRpbnVlOw0KKyAgICBidWlsZF90aF9sb2Fkc3Rv cmUgKGIsIGdyb3VwLCBwcmVkX2lkeCwgdmVjX3R5cGVfaWR4KTsNCisgICB9 DQorICAgICAgfQ0KKyAgfQ0KKw0KKyAgY2hhciAqZ2V0X25hbWUgKGZ1bmN0 aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0 YW5jZSwNCisgICBib29sIG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUN CisgIHsNCisNCisgICAgLyogUmV0dXJuIG51bGxwdHIgaWYgaXQgY2FuIG5v dCBiZSBvdmVybG9hZGVkLiAgKi8NCisgICAgaWYgKG92ZXJsb2FkZWRfcCAm JiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2JlX292ZXJsb2FkZWRfcCAoaW5zdGFu Y2UucHJlZCkpDQorICAgICAgcmV0dXJuIG51bGxwdHI7DQorDQorICAgIGIu YXBwZW5kX25hbWUgKCJfX3Jpc2N2X3RoXyIpOw0KKyAgICBiLmFwcGVuZF9u YW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOw0KKyAgICAvKiB2b3BfdiAtLT4g dm9wX3ZfPHR5cGU+LiAgKi8NCisgICAgaWYgKCFvdmVybG9hZGVkX3ApDQor ICAgICAgew0KKyAvKiB2b3AgLS0+IHZvcF92LiAgKi8NCisgYi5hcHBlbmRf bmFtZSAob3BlcmFuZF9zdWZmaXhlc1tpbnN0YW5jZS5vcF9pbmZvLT5vcF0p Ow0KKyAvKiB2b3BfdiAtLT4gdm9wX3ZfPHR5cGU+LiAgKi8NCisgYi5hcHBl bmRfbmFtZSAodHlwZV9zdWZmaXhlc1tpbnN0YW5jZS50eXBlLmluZGV4XS52 ZWN0b3IpOw0KKyAgICAgIH0NCisNCisgICAgLyogQWNjb3JkaW5nIHRvIHJ2 di1pbnRyaW5zaWMtZG9jLCBpdCBkb2VzIG5vdCBhZGQgIl9tIiBzdWZmaXgN CisgICAgICAgZm9yIHZvcF9tIEMrKyBvdmVybG9hZGVkIEFQSS4gICovDQor ICAgIGlmIChvdmVybG9hZGVkX3AgJiYgaW5zdGFuY2UucHJlZCA9PSBQUkVE X1RZUEVfbSkNCisgICAgICByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsNCisg ICAgYi5hcHBlbmRfbmFtZSAocHJlZGljYXRpb25fc3VmZml4ZXNbaW5zdGFu Y2UucHJlZF0pOw0KKyAgICByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsNCisg IH0NCit9Ow0KKw0KLyogYWx1X2RlZiBjbGFzcy4gICovDQpzdHJ1Y3QgYWx1 X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQp7DQpAQCAtNjMyLDYgKzc3Miwy MyBAQCBzdHJ1Y3QgcmVkdWNfYWx1X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNl DQogICB9DQp9Ow0KKy8qIHRoX2V4dHJhY3RfZGVmIGNsYXNzLiAgKi8NCitz dHJ1Y3QgdGhfZXh0cmFjdF9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQ0KK3sN CisgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9idWlsZGVyICZiLCBjb25z dCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsDQorICAgICAgYm9vbCBv dmVybG9hZGVkX3ApIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIGIuYXBw ZW5kX25hbWUgKCJfX3Jpc2N2X3RoXyIpOw0KKyAgICBiLmFwcGVuZF9uYW1l IChpbnN0YW5jZS5iYXNlX25hbWUpOw0KKw0KKyAgICBpZiAob3ZlcmxvYWRl ZF9wKQ0KKyAgICAgIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOw0KKyAgICBi LmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5k ZXhdLnZlY3Rvcik7DQorICAgIGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4 ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0uc2NhbGFyKTsNCisgICAgcmV0dXJu IGIuZmluaXNoX25hbWUgKCk7DQorICB9DQorfTsNCisNCi8qIHNjYWxhcl9t b3ZlX2RlZiBjbGFzcy4gICovDQpzdHJ1Y3Qgc2NhbGFyX21vdmVfZGVmIDog cHVibGljIGJ1aWxkX2Jhc2UNCnsNCkBAIC0xMDk0LDYgKzEyNTEsOCBAQCBT SEFQRSh2c2V0dmwsIHZzZXR2bCkNClNIQVBFKHZzZXR2bCwgdnNldHZsbWF4 KQ0KU0hBUEUobG9hZHN0b3JlLCBsb2Fkc3RvcmUpDQpTSEFQRShpbmRleGVk X2xvYWRzdG9yZSwgaW5kZXhlZF9sb2Fkc3RvcmUpDQorU0hBUEUodGhfbG9h ZHN0b3JlX3dpZHRoLCB0aF9sb2Fkc3RvcmVfd2lkdGgpDQorU0hBUEUodGhf aW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIHRoX2luZGV4ZWRfbG9hZHN0b3Jl X3dpZHRoKQ0KU0hBUEUoYWx1LCBhbHUpDQpTSEFQRShhbHVfZnJtLCBhbHVf ZnJtKQ0KU0hBUEUod2lkZW5fYWx1LCB3aWRlbl9hbHUpDQpAQCAtMTEwNiw2 ICsxMjY1LDcgQEAgU0hBUEUobW92ZSwgbW92ZSkNClNIQVBFKG1hc2tfYWx1 LCBtYXNrX2FsdSkNClNIQVBFKHJlZHVjX2FsdSwgcmVkdWNfYWx1KQ0KU0hB UEUocmVkdWNfYWx1X2ZybSwgcmVkdWNfYWx1X2ZybSkNCitTSEFQRSh0aF9l eHRyYWN0LCB0aF9leHRyYWN0KQ0KU0hBUEUoc2NhbGFyX21vdmUsIHNjYWxh cl9tb3ZlKQ0KU0hBUEUodnVuZGVmaW5lZCwgdnVuZGVmaW5lZCkNClNIQVBF KG1pc2MsIG1pc2MpDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmggYi9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaA0KaW5kZXggYWMy YTI4Y2UwMTcuLmE3NjI0ZDBmYWJkIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgNCisrKyBi L2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBl cy5oDQpAQCAtMjgsNiArMjgsOCBAQCBleHRlcm4gY29uc3QgZnVuY3Rpb25f c2hhcGUgKmNvbnN0IHZzZXR2bDsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9z aGFwZSAqY29uc3QgdnNldHZsbWF4Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X3NoYXBlICpjb25zdCBsb2Fkc3RvcmU7DQpleHRlcm4gY29uc3QgZnVuY3Rp b25fc2hhcGUgKmNvbnN0IGluZGV4ZWRfbG9hZHN0b3JlOw0KK2V4dGVybiBj b25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRo Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdGhfaW5k ZXhlZF9sb2Fkc3RvcmVfd2lkdGg7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25f c2hhcGUgKmNvbnN0IGFsdTsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFw ZSAqY29uc3QgYWx1X2ZybTsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFw ZSAqY29uc3Qgd2lkZW5fYWx1Ow0KQEAgLTQxLDYgKzQzLDcgQEAgZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBtYXNrX2FsdTsNCmV4dGVy biBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgcmVkdWNfYWx1Ow0KZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCByZWR1Y19hbHVfZnJt Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBzY2FsYXJf bW92ZTsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHRo X2V4dHJhY3Q7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0 IHZ1bmRlZmluZWQ7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNv bnN0IG1pc2M7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0 IHZzZXQ7DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy5jYw0KaW5kZXggMjVlMGI2ZTU2ZGUuLjQ0YjlmZWMx ODk4IDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMuY2MNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLmNjDQpAQCAtOTM0LDYgKzkzNCwzMiBAQCBzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIGV4dF92Y3Jl YXRlX2FyZ3NbXQ0KICAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNF X3ZlY3RvciksDQogICAgICBydnZfYXJnX3R5cGVfaW5mb19lbmR9Ow0KKy8q IEEgbGlzdCBvZiBhcmdzIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBz Y2FsYXJfdHlwZSAqLCBzaXplX3QpDQorICogZnVuY3Rpb24uICAqLw0KK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2NhbGFy X2NvbnN0X3B0cl9zaXplX2FyZ3NbXQ0KKyAgPSB7cnZ2X2FyZ190eXBlX2lu Zm8gKFJWVl9CQVNFX3NjYWxhcl9jb25zdF9wdHIpLA0KKyAgICAgcnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX3NpemUpLCBydnZfYXJnX3R5cGVfaW5m b19lbmR9Ow0KKw0KKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2ZWN0b3JfdHlw ZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLCBlZXc4X2luZGV4X3R5cGUp DQorICogZnVuY3Rpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg cnZ2X2FyZ190eXBlX2luZm8gc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9hcmdz W10NCisgID0ge3J2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXJf Y29uc3RfcHRyKSwNCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFT RV91bnNpZ25lZF92ZWN0b3IpLCBydnZfYXJnX3R5cGVfaW5mb19lbmR9Ow0K Kw0KKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90 eXBlICosIGVldzhfaW5kZXhfdHlwZSwgdmVjdG9yX3R5cGUpDQorICogZnVu Y3Rpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190 eXBlX2luZm8gc2NhbGFyX3B0cl9pbmRleF9hcmdzW10NCisgID0ge3J2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXJfcHRyKSwNCisgICAgIHJ2 dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV91bnNpZ25lZF92ZWN0b3IpLA0K KyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIHJ2 dl9hcmdfdHlwZV9pbmZvX2VuZH07DQorDQorLyogQSBsaXN0IG9mIGFyZ3Mg Zm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgc2l6ZV90LCB2ZWN0b3Jf dHlwZSkNCisgKiBmdW5jdGlvbi4gICovDQorc3RhdGljIENPTlNURVhQUiBj b25zdCBydnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfcHRyX3NpemVfYXJnc1td DQorICA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX3B0 ciksDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2l6ZSks IHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLA0KKyAgICAg cnZ2X2FyZ190eXBlX2luZm9fZW5kfTsNCisNCi8qIEEgbGlzdCBvZiBub25l IHByZWRzIHRoYXQgd2lsbCBiZSByZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMg ZnVuY3Rpb25zLiAgKi8NCnN0YXRpYyBDT05TVEVYUFIgY29uc3QgcHJlZGlj YXRpb25fdHlwZV9pbmRleCBub25lX3ByZWRzW10NCiAgID0ge1BSRURfVFlQ RV9ub25lLCBOVU1fUFJFRF9UWVBFU307DQpAQCAtMTQ1NSw2ICsxNDgxLDE0 IEBAIHN0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaXVfc2hp ZnRfdnZ2X29wcw0KICAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNF X3ZlY3RvciksIC8qIFJldHVybiB0eXBlICovDQogICAgICBzaGlmdF92dl9h cmdzIC8qIEFyZ3MgKi99Ow0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3Jt YXRpb24gZm9yIHNjYWxhcl90eXBlIGZ1bmMgKHZlY3Rvcl90eXBlLCBzaXpl X3QpDQorICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAqLw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaXVfeF9zX3Vfb3BzDQorICA9 IHtpdV9vcHMsICAgICAgICAgIC8qIFR5cGVzICovDQorICAgICBPUF9UWVBF X3Z4LCAgICAgICAgLyogU3VmZml4ICovDQorICAgICBydnZfYXJnX3R5cGVf aW5mbyAoUlZWX0JBU0Vfc2NhbGFyKSwgLyogUmV0dXJuIHR5cGUgKi8NCisg ICAgIHZfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KLyogQSBzdGF0aWMg b3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAodmVj dG9yX3R5cGUsIHNpemVfdCkNCiAgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24u ICovDQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3No aWZ0X3Z2eF9vcHMNCkBAIC0yNjM4LDYgKzI2NzIsMzggQEAgc3RhdGljIENP TlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBhbGxfdl92Y3JlYXRlX2xtdWw0 X3gyX29wcw0KICAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3Zs bXVsX2V4dF94MiksIC8qIFJldHVybiB0eXBlICovDQogICAgICBleHRfdmNy ZWF0ZV9hcmdzIC8qIEFyZ3MgKi99Ow0KKy8qIEEgc3RhdGljIG9wZXJhbmQg aW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxh cl90eXBlICosDQorICogc2l6ZV90KSBmdW5jdGlvbiByZWdpc3RyYXRpb24u ICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxs X3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcw0KKyAgPSB7YWxsX29wcywg ICAvKiBUeXBlcyAgKi8NCisgICAgIE9QX1RZUEVfdiwgICAvKiBTdWZmaXgg ICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9y KSwgLyogUmV0dXJuIHR5cGUgICovDQorICAgICBzY2FsYXJfY29uc3RfcHRy X3NpemVfYXJncyAvKiBBcmdzICovfTsNCisNCisvKiBBIHN0YXRpYyBvcGVy YW5kIGluZm9ybWF0aW9uIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICos IHNpemVfdCwNCisgKiB2ZWN0b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0 aW9uLiAgKi8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZv IGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMNCisgID0ge2FsbF9vcHMsIC8q IFR5cGVzICAqLw0KKyAgICAgT1BfVFlQRV92LCAvKiBTdWZmaXggICovDQor ICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfdm9pZCksIC8qIFJl dHVybiB0eXBlICAqLw0KKyAgICAgc2NhbGFyX3B0cl9zaXplX2FyZ3MgLyog QXJncyAqL307DQorDQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlv biBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwN CisgKiBpbmRleF90eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRpb24uICAqLw0K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxsX3Zfc2Nh bGFyX2NvbnN0X3B0cl9pbmRleF9vcHMNCisgID0ge2FsbF9vcHMsICAgLyog VHlwZXMgICovDQorICAgICBPUF9UWVBFX3YsICAgLyogU3VmZml4ICAqLw0K KyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8q IFJldHVybiB0eXBlICAqLw0KKyAgICAgc2NhbGFyX2NvbnN0X3B0cl9pbmRl eF9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KKy8qIEEgc3RhdGljIG9wZXJhbmQg aW5mb3JtYXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgaW5k ZXhfdHlwZSwNCisgKiB2ZWN0b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0 aW9uLiAgKi8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZv IGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzDQorICA9IHthbGxfb3BzLCAv KiBUeXBlcyAgKi8NCisgICAgIE9QX1RZUEVfdiwgLyogU3VmZml4ICAqLw0K KyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBS ZXR1cm4gdHlwZSAgKi8NCisgICAgIHNjYWxhcl9wdHJfaW5kZXhfYXJncyAv KiBBcmdzICovfTsNCisNCi8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRp b24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKHZlY3Rvcl90eXBlKS4NCiAgICBT b21lIGlucyBqdXN0IHN1cHBvcnRzIFNFVz0zMiwgc3VjaCBhcyBjcnlwdG8g dmVjdG9sIFp2a2cgZXh0ZW5zaW9uLg0KICAqIGZ1bmN0aW9uIHJlZ2lzdHJh dGlvbi4gICovDQpAQCAtMjgxNiw2ICsyODgyLDEwIEBAIHN0YXRpYyBmdW5j dGlvbl9ncm91cF9pbmZvIGZ1bmN0aW9uX2dyb3Vwc1tdID0gew0KI2RlZmlu ZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQUkVEUywgT1BTX0lO Rk8pICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgIHsjTkFNRSwgJmJh c2VzOjpOQU1FLCAmc2hhcGVzOjpTSEFQRSwgUFJFRFMsIE9QU19JTkZPLCBS RVFVSVJFRF9FWFRFTlNJT05TfSwNCiNpbmNsdWRlICJyaXNjdi12ZWN0b3It YnVpbHRpbnMtZnVuY3Rpb25zLmRlZiINCisjdW5kZWYgREVGX1JWVl9GVU5D VElPTg0KKyNkZWZpbmUgREVGX1JWVl9GVU5DVElPTihOQU1FLCBTSEFQRSwg UFJFRFMsIE9QU19JTkZPKSAgICAgICAgICAgICAgICAgICAgICAgICBcDQor ICB7I05BTUUsICZiYXNlczo6TkFNRSwgJnNoYXBlczo6U0hBUEUsIFBSRURT LCBPUFNfSU5GTywgUkVRVUlSRURfRVhURU5TSU9OU30sDQorI2luY2x1ZGUg InRoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIg0KfTsNCi8q IFRoZSBSVlYgdHlwZXMsIHdpdGggdGhlaXIgYnVpbHQtaW4NCmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5o IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaA0K aW5kZXggNTRjODgyNGZmOTIuLjIyZmVkNjBiNGMzIDEwMDY0NA0KLS0tIGEv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaA0KKysr IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaA0K QEAgLTEyMyw2ICsxMjMsNyBAQCBlbnVtIHJlcXVpcmVkX2V4dA0KICAgWlZL TkhCX0VYVCwgIC8qIENyeXB0byB2ZWN0b3IgWnZrbmhiIHN1Yi1leHQgKi8N CiAgIFpWS1NFRF9FWFQsICAvKiBDcnlwdG8gdmVjdG9yIFp2a3NlZCBzdWIt ZXh0ICovDQogICBaVktTSF9FWFQsICAgLyogQ3J5cHRvIHZlY3RvciBadmtz aCBzdWItZXh0ICovDQorICBYVEhFQURWRUNUT1JfRVhULCAgIC8qIFhUaGVh ZFZlY3RvciBleHRlbnNpb24gKi8NCn07DQovKiBFbnVtZXJhdGVzIHRoZSBS VlYgb3BlcmFuZCB0eXBlcy4gICovDQpAQCAtMjUyLDYgKzI1Myw4IEBAIHN0 cnVjdCBmdW5jdGlvbl9ncm91cF9pbmZvDQogICAgICAgICByZXR1cm4gVEFS R0VUX1pWS1NFRDsNCiAgICAgICBjYXNlIFpWS1NIX0VYVDoNCiAgICAgICAg IHJldHVybiBUQVJHRVRfWlZLU0g7DQorICAgICAgY2FzZSBYVEhFQURWRUNU T1JfRVhUOg0KKyByZXR1cm4gVEFSR0VUX1hUSEVBRFZFQ1RPUjsNCiAgICAg ICBkZWZhdWx0Og0KICAgICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOw0KICAg ICB9DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2IGIv Z2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2DQppbmRleCAzMmRlNmI4NTFjMS4u Mzg0OTQzMjBkOGIgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Qt cmlzY3YNCisrKyBiL2djYy9jb25maWcvcmlzY3YvdC1yaXNjdg0KQEAgLTEs NiArMSw3IEBADQpSSVNDVl9CVUlMVElOU19IID0gJChzcmNkaXIpL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaCBcDQogICAkKHNyY2Rp cikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5kZWYgXA0K ICAgJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtZnVuY3Rpb25zLmRlZiBcDQorICAgICAgICQoc3JjZGlyKS9jb25maWcv cmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgXA0K ICAgcmlzY3YtdmVjdG9yLXR5cGUtaW5kZXhlci5nZW4uZGVmDQpyaXNjdi1i dWlsdGlucy5vOiAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LWJ1aWx0 aW5zLmNjICQoQ09ORklHX0gpIFwNCmRpZmYgLS1naXQgYS9nY2MvY29uZmln L3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIGIv Z2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rp b25zLmRlZg0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAw MDAwLi5mZDNiYTI5YmFlOQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL2Nv bmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRl Zg0KQEAgLTAsMCArMSwzOSBAQA0KKyNpZm5kZWYgREVGX1JWVl9GVU5DVElP Tg0KKyNkZWZpbmUgREVGX1JWVl9GVU5DVElPTihOQU1FLCBTSEFQRSwgUFJF RFMsIE9QU19JTkZPKQ0KKyNlbmRpZg0KKw0KKyNkZWZpbmUgUkVRVUlSRURf RVhURU5TSU9OUyBYVEhFQURWRUNUT1JfRVhUDQorREVGX1JWVl9GVU5DVElP TiAodmxiLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92 X3NjYWxhcl9jb25zdF9wdHJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZs aCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2Fs YXJfY29uc3RfcHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHcsIHRo X2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2Nv bnN0X3B0cl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmxidSwgdGhfbG9h ZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3Rf cHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bGh1LCB0aF9sb2Fkc3Rv cmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJf b3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsd3UsIHRoX2xvYWRzdG9yZV93 aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMp DQorREVGX1JWVl9GVU5DVElPTiAodnNiLCB0aF9sb2Fkc3RvcmVfd2lkdGgs IG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9vcHMpDQorREVGX1JW Vl9GVU5DVElPTiAodnNoLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9w cmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9vcHMpDQorREVGX1JWVl9GVU5DVElP TiAodnN3LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxs X3Zfc2NhbGFyX3B0cl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmxzYiwg dGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJf Y29uc3RfcHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsc2gs IHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFy X2NvbnN0X3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHN3 LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxh cl9jb25zdF9wdHJfc2l6ZV9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmxz YnUsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2Nh bGFyX2NvbnN0X3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2 bHNodSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9z Y2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04g KHZsc3d1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92 X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMpDQorREVGX1JWVl9GVU5DVElP TiAodnNzYiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFs bF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAo dnNzaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92 X3NjYWxhcl9wdHJfc2l6ZV9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnNz dywgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3Nj YWxhcl9wdHJfc2l6ZV9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmx4Yiwg dGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92 X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJ T04gKHZseGgsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3By ZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2bHh3LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0 aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9v cHMpDQorREVGX1JWVl9GVU5DVElPTiAodmx4YnUsIHRoX2luZGV4ZWRfbG9h ZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3Rf cHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHhodSwgdGhf aW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3Nj YWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04g KHZseHd1LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVk cywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpDQorREVGX1JW Vl9GVU5DVElPTiAodnN4YiwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgs IG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMpDQor REVGX1JWVl9GVU5DVElPTiAodnN4aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVf d2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9pbmRleF9v cHMpDQorREVGX1JWVl9GVU5DVElPTiAodnN4dywgdGhfaW5kZXhlZF9sb2Fk c3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9p bmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnN1eGIsIHRoX2luZGV4 ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxh cl9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzdXhoLCB0 aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxf dl9zY2FsYXJfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2 c3V4dywgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVk cywgYWxsX3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5D VElPTiAodmV4dF94X3YsIHRoX2V4dHJhY3QsIG5vbmVfcHJlZHMsIGl1X3hf c191X29wcykNCisjdW5kZWYgUkVRVUlSRURfRVhURU5TSU9OUw0KKw0KKyN1 bmRlZiBERUZfUlZWX0ZVTkNUSU9ODQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi90aGVhZC12ZWN0b3IubWQgYi9nY2MvY29uZmlnL3Jpc2N2L3Ro ZWFkLXZlY3Rvci5tZA0KaW5kZXggNjk2YjgxNTI1MmQuLjVmZTliYTA4YzRl IDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3Iu bWQNCisrKyBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kDQpA QCAtMSw3ICsxLDk1IEBADQooZGVmaW5lX2NfZW51bSAidW5zcGVjIiBbDQor ICBVTlNQRUNfVEhfVkxCDQorICBVTlNQRUNfVEhfVkxCVQ0KKyAgVU5TUEVD X1RIX1ZMSA0KKyAgVU5TUEVDX1RIX1ZMSFUNCisgIFVOU1BFQ19USF9WTFcN CisgIFVOU1BFQ19USF9WTFdVDQorDQorICBVTlNQRUNfVEhfVkxTQg0KKyAg VU5TUEVDX1RIX1ZMU0JVDQorICBVTlNQRUNfVEhfVkxTSA0KKyAgVU5TUEVD X1RIX1ZMU0hVDQorICBVTlNQRUNfVEhfVkxTVw0KKyAgVU5TUEVDX1RIX1ZM U1dVDQorDQorICBVTlNQRUNfVEhfVkxYQg0KKyAgVU5TUEVDX1RIX1ZMWEJV DQorICBVTlNQRUNfVEhfVkxYSA0KKyAgVU5TUEVDX1RIX1ZMWEhVDQorICBV TlNQRUNfVEhfVkxYVw0KKyAgVU5TUEVDX1RIX1ZMWFdVDQorDQorICBVTlNQ RUNfVEhfVlNVWEINCisgIFVOU1BFQ19USF9WU1VYSA0KKyAgVU5TUEVDX1RI X1ZTVVhXDQorDQogICBVTlNQRUNfVEhfVldMRFNUDQpdKQ0KKyhkZWZpbmVf aW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTE1FTV9PUCBbDQorICBVTlNQRUNf VEhfVkxCIFVOU1BFQ19USF9WTEJVDQorICBVTlNQRUNfVEhfVkxIIFVOU1BF Q19USF9WTEhVDQorICBVTlNQRUNfVEhfVkxXIFVOU1BFQ19USF9WTFdVDQor XSkNCisNCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVkxTTUVN X09QIFsNCisgIFVOU1BFQ19USF9WTFNCIFVOU1BFQ19USF9WTFNCVQ0KKyAg VU5TUEVDX1RIX1ZMU0ggVU5TUEVDX1RIX1ZMU0hVDQorICBVTlNQRUNfVEhf VkxTVyBVTlNQRUNfVEhfVkxTV1UNCitdKQ0KKw0KKyhkZWZpbmVfaW50X2l0 ZXJhdG9yIFVOU1BFQ19USF9WTFhNRU1fT1AgWw0KKyAgVU5TUEVDX1RIX1ZM WEIgVU5TUEVDX1RIX1ZMWEJVDQorICBVTlNQRUNfVEhfVkxYSCBVTlNQRUNf VEhfVkxYSFUNCisgIFVOU1BFQ19USF9WTFhXIFVOU1BFQ19USF9WTFhXVQ0K K10pDQorDQorKGRlZmluZV9pbnRfYXR0ciB2bG1lbV9vcF9hdHRyIFsNCisg IChVTlNQRUNfVEhfVkxCICJiIikgKFVOU1BFQ19USF9WTEJVICJidSIpDQor ICAoVU5TUEVDX1RIX1ZMSCAiaCIpIChVTlNQRUNfVEhfVkxIVSAiaHUiKQ0K KyAgKFVOU1BFQ19USF9WTFcgInciKSAoVU5TUEVDX1RIX1ZMV1UgInd1IikN CisgIChVTlNQRUNfVEhfVkxTQiAiYiIpIChVTlNQRUNfVEhfVkxTQlUgImJ1 IikNCisgIChVTlNQRUNfVEhfVkxTSCAiaCIpIChVTlNQRUNfVEhfVkxTSFUg Imh1IikNCisgIChVTlNQRUNfVEhfVkxTVyAidyIpIChVTlNQRUNfVEhfVkxT V1UgInd1IikNCisgIChVTlNQRUNfVEhfVkxYQiAiYiIpIChVTlNQRUNfVEhf VkxYQlUgImJ1IikNCisgIChVTlNQRUNfVEhfVkxYSCAiaCIpIChVTlNQRUNf VEhfVkxYSFUgImh1IikNCisgIChVTlNQRUNfVEhfVkxYVyAidyIpIChVTlNQ RUNfVEhfVkxYV1UgInd1IikNCisgIChVTlNQRUNfVEhfVlNVWEIgImIiKQ0K KyAgKFVOU1BFQ19USF9WU1VYSCAiaCIpDQorICAoVU5TUEVDX1RIX1ZTVVhX ICJ3IikNCitdKQ0KKw0KKyhkZWZpbmVfaW50X2F0dHIgdmxtZW1fb3JkZXJf YXR0ciBbDQorICAoVU5TUEVDX1RIX1ZMWEIgIiIpDQorICAoVU5TUEVDX1RI X1ZMWEggIiIpDQorICAoVU5TUEVDX1RIX1ZMWFcgIiIpDQorICAoVU5TUEVD X1RIX1ZTVVhCICJ1IikNCisgIChVTlNQRUNfVEhfVlNVWEggInUiKQ0KKyAg KFVOU1BFQ19USF9WU1VYVyAidSIpDQorXSkNCisNCisoZGVmaW5lX2ludF9p dGVyYXRvciBVTlNQRUNfVEhfVlNNRU1fT1AgWw0KKyAgVU5TUEVDX1RIX1ZM Qg0KKyAgVU5TUEVDX1RIX1ZMSA0KKyAgVU5TUEVDX1RIX1ZMVw0KK10pDQor DQorKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZTU01FTV9PUCBb DQorICBVTlNQRUNfVEhfVkxTQg0KKyAgVU5TUEVDX1RIX1ZMU0gNCisgIFVO U1BFQ19USF9WTFNXDQorXSkNCisNCisoZGVmaW5lX2ludF9pdGVyYXRvciBV TlNQRUNfVEhfVlNYTUVNX09QIFsNCisgIFVOU1BFQ19USF9WTFhCDQorICBV TlNQRUNfVEhfVkxYSA0KKyAgVU5TUEVDX1RIX1ZMWFcNCisgIFVOU1BFQ19U SF9WU1VYQg0KKyAgVU5TUEVDX1RIX1ZTVVhIDQorICBVTlNQRUNfVEhfVlNV WFcNCitdKQ0KKw0KKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFZfVkxTX1ZUIFtW IFZMUyBWVF0pDQooZGVmaW5lX21vZGVfaXRlcmF0b3IgVl9WQl9WTFNfVlQg W1YgVkIgVkxTIFZUXSkNCkBAIC0xMDAsMyArMTg4LDE2NSBAQA0KICAgfQ0K ICAgWyhzZXRfYXR0ciAidHlwZSIgInZsZG0sdnN0bSx2bWFsdSx2bWFsdSx2 bWFsdSIpDQogICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQ0KKw0K KyhkZWZpbmVfZXhwYW5kICJAcHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0 cj48bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAwICJu b25pbW1lZGlhdGVfb3BlcmFuZCIpDQorICAgIChpZl90aGVuX2Vsc2U6Vl9W TFMNCisgICAgICAodW5zcGVjOjxWTT4NCisgWyhtYXRjaF9vcGVyYW5kOjxW TT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIpDQorIChtYXRjaF9vcGVyYW5k IDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIpDQorIChtYXRjaF9vcGVyYW5k IDUgImNvbnN0X2ludF9vcGVyYW5kIikNCisgKG1hdGNoX29wZXJhbmQgNiAi Y29uc3RfaW50X29wZXJhbmQiKQ0KKyAobWF0Y2hfb3BlcmFuZCA3ICJjb25z dF9pbnRfb3BlcmFuZCIpDQorIChyZWc6U0kgVkxfUkVHTlVNKQ0KKyAocmVn OlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WTE1FTV9PUCkNCisgICAg ICAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAzICJ2ZWN0b3JfbW92ZV9vcGVyYW5k IikNCisgICAgICAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAyICJ2ZWN0b3JfbWVy Z2Vfb3BlcmFuZCIpKSldDQorICAiVEFSR0VUX1hUSEVBRFZFQ1RPUiINCisg IHt9KQ0KKw0KKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipwcmVkX21vdl93 aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiINCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlZfVkxTIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAgICAgIj12 ciwgICAgdnIsICAgIHZkLCAgICAgbSwgICAgdnIsICAgIHZyIikNCisgICAg KGlmX3RoZW5fZWxzZTpWX1ZMUw0KKyAgICAgICh1bnNwZWM6PFZNPg0KKyBb KG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAg ICAidm1XYzEsICAgV2MxLCAgICB2bSwgdm1XYzEsICAgV2MxLCAgIFdjMSIp DQorIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIg ICAgICAgIiAgIHJLLCAgICBySywgICAgckssICAgIHJLLCAgICBySywgICAg cksiKQ0KKyAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCIg ICAiICAgIGksICAgICBpLCAgICAgaSwgICAgIGksICAgICBpLCAgICAgaSIp DQorIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0X2ludF9vcGVyYW5kIiAgICIg ICAgaSwgICAgIGksICAgICBpLCAgICAgaSwgICAgIGksICAgICBpIikNCisg KG1hdGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQiICAgIiAgICBp LCAgICAgaSwgICAgIGksICAgICBpLCAgICAgaSwgICAgIGkiKQ0KKyAocmVn OlNJIFZMX1JFR05VTSkNCisgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQ RUNfVEhfVkxNRU1fT1ApDQorICAgICAgKG1hdGNoX29wZXJhbmQ6Vl9WTFMg MyAicmVnX29yX21lbV9vcGVyYW5kIiAgICAgICAiICAgIG0sICAgICBtLCAg ICAgbSwgICAgdnIsICAgIHZyLCAgICB2ciIpDQorICAgICAgKG1hdGNoX29w ZXJhbmQ6Vl9WTFMgMiAidmVjdG9yX21lcmdlX29wZXJhbmQiICAgICAiICAg IDAsICAgIHZ1LCAgICB2dSwgICAgdnUsICAgIHZ1LCAgICAgMCIpKSldDQor ICAiKFRBUkdFVF9YVEhFQURWRUNUT1INCisgICAgJiYgKHJlZ2lzdGVyX29w ZXJhbmQgKG9wZXJhbmRzWzBdLCA8TU9ERT5tb2RlKQ0KKyB8fCByZWdpc3Rl cl9vcGVyYW5kIChvcGVyYW5kc1szXSwgPE1PREU+bW9kZSkpKSINCisgICJA DQorICAgdmw8dmxtZW1fb3BfYXR0cj4udlx0JTAsJTMlcDENCisgICB2bDx2 bG1lbV9vcF9hdHRyPi52XHQlMCwlMw0KKyAgIHZsPHZsbWVtX29wX2F0dHI+ LnZcdCUwLCUzLCUxLnQNCisgICB2czx2bG1lbV9vcF9hdHRyPi52XHQlMywl MCVwMQ0KKyAgIHZtdi52LnZcdCUwLCUzDQorICAgdm12LnYudlx0JTAsJTMi DQorICAiJiYgcmlzY3ZfdmVjdG9yOjp3aG9sZV9yZWdfdG9fcmVnX21vdmVf cCAob3BlcmFuZHMsIDxNT0RFPm1vZGUsIDcpIg0KKyAgWyhzZXQgKG1hdGNo X2R1cCAwKSAobWF0Y2hfZHVwIDMpKV0NCisgICIiDQorICBbKHNldF9hdHRy ICJ0eXBlIiAidmxkZSx2bGRlLHZsZGUsdnN0ZSx2aW1vdix2aW1vdiIpDQor ICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQ0KKw0KKyhkZWZpbmVf aW5zbiAiQHByZWRfc3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4i DQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAwICJtZW1vcnlfb3BlcmFu ZCIgIittIikNCisgKGlmX3RoZW5fZWxzZTpWSQ0KKyAgICh1bnNwZWM6PFZN Pg0KKyAgICAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tf b3BlcmFuZCIgInZtV2MxIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCAzICJ2 ZWN0b3JfbGVuZ3RoX29wZXJhbmQiICAgICIgICBySyIpDQorICAgICAgKG1h dGNoX29wZXJhbmQgNCAiY29uc3RfaW50X29wZXJhbmQiICIgICAgaSIpDQor ICAgICAgKHJlZzpTSSBWTF9SRUdOVU0pDQorICAgICAgKHJlZzpTSSBWVFlQ RV9SRUdOVU0pXSBVTlNQRUNfVEhfVlNNRU1fT1ApDQorICAgKG1hdGNoX29w ZXJhbmQ6VkkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIiAgICB2ciIpDQorICAg KG1hdGNoX2R1cCAwKSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNUT1IiDQor ICAidnM8dmxtZW1fb3BfYXR0cj4udlx0JTIsJTAlcDEiDQorICBbKHNldF9h dHRyICJ0eXBlIiAidnN0ZSIpDQorICAgKHNldF9hdHRyICJtb2RlIiAiPE1P REU+IikNCisgICAoc2V0IChhdHRyICJhdmxfdHlwZV9pZHgiKSAoY29uc3Rf aW50IDQpKQ0KKyAgIChzZXRfYXR0ciAidmxfb3BfaWR4IiAiMyIpXSkNCisN CisoZGVmaW5lX2luc24gIkBwcmVkX3N0cmlkZWRfbG9hZF93aWR0aDx2bG1l bV9vcF9hdHRyPjxtb2RlPiINCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICI9dnIsICAgIHZyLCAgICB2 ZCIpDQorIChpZl90aGVuX2Vsc2U6VkkNCisgICAodW5zcGVjOjxWTT4NCisg ICAgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJh bmQiICJ2bVdjMSwgICBXYzEsICAgIHZtIikNCisgICAgICAobWF0Y2hfb3Bl cmFuZCA1ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQiICAgICIgICBySywgICAg ckssICAgIHJLIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA2ICJjb25zdF9p bnRfb3BlcmFuZCIgIiAgICBpLCAgICAgaSwgICAgIGkiKQ0KKyAgICAgICht YXRjaF9vcGVyYW5kIDcgImNvbnN0X2ludF9vcGVyYW5kIiAiICAgIGksICAg ICBpLCAgICAgaSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgOCAiY29uc3Rf aW50X29wZXJhbmQiICIgICAgaSwgICAgIGksICAgICBpIikNCisgICAgICAo cmVnOlNJIFZMX1JFR05VTSkNCisgICAgICAocmVnOlNJIFZUWVBFX1JFR05V TSldIFVOU1BFQ19USF9WTFNNRU1fT1ApDQorICAgKHVuc3BlYzpWSQ0KKyAg ICAgWyhtYXRjaF9vcGVyYW5kOlZJIDMgIm1lbW9yeV9vcGVyYW5kIiAiICAg IG0sICAgICBtLCAgICAgbSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNCAi cG1vZGVfcmVnX29yXzBfb3BlcmFuZCIgICAiICAgckosICAgIHJKLCAgICBy SiIpXSBVTlNQRUNfVEhfVkxTTUVNX09QKQ0KKyAgIChtYXRjaF9vcGVyYW5k OlZJIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIiAgICAgICIgICAgMCwgICAg dnUsICAgIHZ1IikpKV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAg InZsczx2bG1lbV9vcF9hdHRyPi52XHQlMCwlMywlejQlcDEiDQorICBbKHNl dF9hdHRyICJ0eXBlIiAidmxkcyIpDQorICAgKHNldF9hdHRyICJtb2RlIiAi PE1PREU+IildKQ0KKw0KKyhkZWZpbmVfaW5zbiAiQHByZWRfc3RyaWRlZF9z dG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiINCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZJIDAgIm1lbW9yeV9vcGVyYW5kIiAiK20iKQ0KKyAo aWZfdGhlbl9lbHNlOlZJDQorICAgKHVuc3BlYzo8Vk0+DQorICAgICBbKG1h dGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1X YzEiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhf b3BlcmFuZCIgICAgIiAgIHJLIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA1 ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgICBpIikNCisgICAgICAocmVnOlNJ IFZMX1JFR05VTSkNCisgICAgICAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVO U1BFQ19USF9WU1NNRU1fT1ApDQorICAgKHVuc3BlYzpWSQ0KKyAgICAgWyht YXRjaF9vcGVyYW5kIDIgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiICAgIiAg IHJKIikNCisgICAgICAobWF0Y2hfb3BlcmFuZDpWSSAzICJyZWdpc3Rlcl9v cGVyYW5kIiAgICAgICAiICAgdnIiKV0gVU5TUEVDX1RIX1ZTU01FTV9PUCkN CisgICAobWF0Y2hfZHVwIDApKSldDQorICAiVEFSR0VUX1hUSEVBRFZFQ1RP UiINCisgICJ2c3M8dmxtZW1fb3BfYXR0cj4udlx0JTMsJTAsJXoyJXAxIg0K KyAgWyhzZXRfYXR0ciAidHlwZSIgInZzdHMiKQ0KKyAgIChzZXRfYXR0ciAi bW9kZSIgIjxNT0RFPiIpDQorICAgKHNldCAoYXR0ciAiYXZsX3R5cGVfaWR4 IikgKGNvbnN0X2ludCA1KSldKQ0KKw0KKyhkZWZpbmVfaW5zbiAiQHByZWRf aW5kZXhlZF9sb2FkX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+Ig0KKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg ICAgICAiPXZkLCB2cix2ZCwgdnIiKQ0KKyAoaWZfdGhlbl9lbHNlOlZJDQor ICAgKHVuc3BlYzo8Vk0+DQorICAgICBbKG1hdGNoX29wZXJhbmQ6PFZNPiAx ICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAgIiB2bSxXYzEsdm0sV2MxIikNCisg ICAgICAobWF0Y2hfb3BlcmFuZCA1ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQi ICAgICAiIHJLLCBySyxySywgcksiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5k IDYgImNvbnN0X2ludF9vcGVyYW5kIiAiICBpLCAgaSwgaSwgIGkiKQ0KKyAg ICAgIChtYXRjaF9vcGVyYW5kIDcgImNvbnN0X2ludF9vcGVyYW5kIiAiICBp LCAgaSwgaSwgIGkiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDggImNvbnN0 X2ludF9vcGVyYW5kIiAiICBpLCAgaSwgaSwgIGkiKQ0KKyAgICAgIChyZWc6 U0kgVkxfUkVHTlVNKQ0KKyAgICAgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0g VU5TUEVDX1RIX1ZMWE1FTV9PUCkNCisgICAodW5zcGVjOlZJDQorICAgICBb KG1hdGNoX29wZXJhbmQgMyAicG1vZGVfcmVnX29yXzBfb3BlcmFuZCIgICAg IiBySiwgckosckosIHJKIikNCisgICAgICAobWVtOkJMSyAoc2NyYXRjaCkp DQorICAgICAgKG1hdGNoX29wZXJhbmQ6VkkgNCAicmVnaXN0ZXJfb3BlcmFu ZCIgIiB2ciwgdnIsdnIsIHZyIildIFVOU1BFQ19USF9WTFhNRU1fT1ApDQor ICAgKG1hdGNoX29wZXJhbmQ6VkkgMiAidmVjdG9yX21lcmdlX29wZXJhbmQi ICAgICAgICIgdnUsIHZ1LCAwLCAgMCIpKSldDQorICAiVEFSR0VUX1hUSEVB RFZFQ1RPUiINCisgICJ2bHg8dmxtZW1fb3BfYXR0cj4udlx0JTAsKCV6Myks JTQlcDEiDQorICBbKHNldF9hdHRyICJ0eXBlIiAidmxkdXgiKQ0KKyAgIChz ZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkNCisNCisoZGVmaW5lX2luc24g IkBwcmVkX2luZGV4ZWRfPHZsbWVtX29yZGVyX2F0dHI+c3RvcmVfd2lkdGg8 dmxtZW1fb3BfYXR0cj48bW9kZT4iDQorICBbKHNldCAobWVtOkJMSyAoc2Ny YXRjaCkpDQorICh1bnNwZWM6QkxLDQorICAgWyh1bnNwZWM6PFZNPg0KKyAg ICAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMCAidmVjdG9yX21hc2tfb3BlcmFu ZCIgInZtV2MxIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3Jf bGVuZ3RoX29wZXJhbmQiICAgICIgICBySyIpDQorICAgICAgKG1hdGNoX29w ZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQiICIgICAgaSIpDQorICAgICAg KHJlZzpTSSBWTF9SRUdOVU0pDQorICAgICAgKHJlZzpTSSBWVFlQRV9SRUdO VU0pXSBVTlNQRUNfVEhfVlNYTUVNX09QKQ0KKyAgICAobWF0Y2hfb3BlcmFu ZCAxICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIiAgICAgICIgIHJKIikNCisg ICAgKG1hdGNoX29wZXJhbmQ6VkkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIiAg dnIiKQ0KKyAgICAobWF0Y2hfb3BlcmFuZDpWSSAzICJyZWdpc3Rlcl9vcGVy YW5kIiAgIiAgdnIiKV0gVU5TUEVDX1RIX1ZTWE1FTV9PUCkpXQ0KKyAgIlRB UkdFVF9YVEhFQURWRUNUT1IiDQorICAidnM8dmxtZW1fb3JkZXJfYXR0cj54 PHZsbWVtX29wX2F0dHI+LnZcdCUzLCglejEpLCUyJXAwIg0KKyAgWyhzZXRf YXR0ciAidHlwZSIgInZzdHV4IikNCisgICAoc2V0X2F0dHIgIm1vZGUiICI8 TU9ERT4iKV0pDQorDQorKGRlZmluZV9leHBhbmQgIkBwcmVkX3RoX2V4dHJh Y3Q8bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDo8VkVMPiAwICJy ZWdpc3Rlcl9vcGVyYW5kIikNCisgKHVuc3BlYzo8VkVMPg0KKyAgIFsodmVj X3NlbGVjdDo8VkVMPg0KKyAgICAgIChtYXRjaF9vcGVyYW5kOlZfVkxTSSAx ICJyZWdpc3Rlcl9vcGVyYW5kIikNCisgICAgICAocGFyYWxsZWwgWyhtYXRj aF9vcGVyYW5kOkRJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIildKSkNCisg ICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVlBSRURJQ0FURSkp XQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNUT1IiDQore30pDQorDQorKGRlZmlu ZV9pbnNuICIqcHJlZF90aF9leHRyYWN0PG1vZGU+Ig0KKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAiPXIi KQ0KKyAgKHVuc3BlYzo8VkVMPg0KKyAgICBbKHZlY19zZWxlY3Q6PFZFTD4N CisgICAgICAgKG1hdGNoX29wZXJhbmQ6Vl9WTFNJIDEgInJlZ2lzdGVyX29w ZXJhbmQiICJ2ciIpDQorICAgICAgIChwYXJhbGxlbCBbKG1hdGNoX29wZXJh bmQ6REkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKV0pKQ0KKyAgICAgKHJl ZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVlBSRURJQ0FURSkpXQ0KKyAg IlRBUkdFVF9YVEhFQURWRUNUT1IiDQorICAidmV4dC54LnZcdCUwLCUxLCUy Ig0KKyAgWyhzZXRfYXR0ciAidHlwZSIgInZpbW92dngiKQ0KKyAgIChzZXRf YXR0ciAibW9kZSIgIjxNT0RFPiIpXSkNCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGIt dnNiLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0 aGVhZHZlY3Rvci92bGItdnNiLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCAwMDAwMDAwMDAwMC4uM2MxMmMxMjQ1OTcNCi0tLSAvZGV2L251bGwN CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRo ZWFkdmVjdG9yL3ZsYi12c2IuYw0KQEAgLTAsMCArMSw2OCBAQA0KKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9 cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIg fSB9ICovDQorI2luY2x1ZGUgInJpc2N2X3RoX3ZlY3Rvci5oIg0KKw0KKy8q DQorKiogZjE6DQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUs bWENCisqKiB0aC52bGJcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisq KiB0aC52bGJcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52 YWRkXC52dlx0dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSsNCisqKiB0 aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSsNCisq KiB0aC52c2JcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQN CisqLw0KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0KQ0KK3sNCisg ICAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJfdl9pMzJtMSAoaW4s IDQpOw0KKyAgICB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJfdl9p MzJtMV90dSAodiwgaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYzID0gX19y aXNjdl92YWRkX3Z2X2kzMm0xICh2MiwgdjIsIDQpOw0KKyAgICB2aW50MzJt MV90IHY0ID0gX19yaXNjdl92YWRkX3Z2X2kzMm0xX3R1ICh2MywgdjIsIHYy LCA0KTsNCisgICAgX19yaXNjdl90aF92c2Jfdl9pMzJtMSAob3V0LCB2NCwg NCk7DQorfQ0KKw0KKy8qDQorKiogZjI6DQorKiogdGgudnNldHZsaVx0W2Et eDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUz MixtMSx0YSxtYQ0KKyoqIHRoLnZsYi52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpLHYwLnQNCisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAtOV0r LFxzKnZbMC05XSsNCisqKiB0aC52YWRkXC52dlx0dlsxLTldWzAtOV0/LFxz KnZbMC05XSssXHMqdlswLTldKyxccyp2MC50DQorKiogdGgudnNiLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjIg KHZvaWQgKiBpbiwgdm9pZCAqb3V0KQ0KK3sNCisgICAgdmJvb2wzMl90IG1h c2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6 OjoibWVtb3J5Iik7DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhf dmxiX3ZfaTMybTEgKGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9IF9f cmlzY3ZfdGhfdmxiX3ZfaTMybTFfbSAobWFzaywgaW4sIDQpOw0KKyAgICB2 aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z2X2kzMm0xICh2MiwgdjIs IDQpOw0KKyAgICB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z2X2kz Mm0xX20gKG1hc2ssIHYzLCB2MywgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNi X3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoqIGYzOg0K KyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0K KyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgu dnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUNCisqKiB0aC52bGJcLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52bGIudlx0dlswLTld KywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgudmFkZFwudnZcdHZbMC05 XSssXHMqdlswLTldKyxccyp2WzAtOV0rDQorKiogdGgudmFkZFwudnZcdHZb MS05XVswLTldPyxccyp2WzAtOV0rLFxzKnZbMC05XSssXHMqdjAudA0KKyoq IHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQor Ki8NCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCkNCit7DQorICAg IHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20g dm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2aW50MzJtMV90IHYg PSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xIChpbiwgNCk7DQorICAgIHZpbnQz Mm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xX3R1bXUgKG1hc2ss IHYsIGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFk ZF92dl9pMzJtMSAodjIsIHYyLCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9 IF9fcmlzY3ZfdmFkZF92dl9pMzJtMV90dW11IChtYXNrLCB2MywgdjIsIHYy LCA0KTsNCisgICAgX19yaXNjdl90aF92c2Jfdl9pMzJtMSAob3V0LCB2NCwg NCk7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1 LXZzYi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAw MDAuLjMwYmVmMzY5Mzc1DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1 LXZzYi5jDQpAQCAtMCwwICsxLDY4IEBADQorLyogeyBkZy1kbyBjb21waWxl IH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2 ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLw0KKy8qIHsgZGctZmluYWwg eyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCisjaW5j bHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiDQorDQorLyoNCisqKiBmMToNCisq KiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQ0KKyoqIHRoLnZs YnVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52bGJ1XC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmFkZFwudmlcdHZb MC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0dlsw LTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZzYlwudlx0dlswLTld KywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMSAodm9p ZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpDQorew0KKyAgICB2dWlu dDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJ1X3ZfdTMybTEgKGluLCA0KTsN CisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJt MV90dSAodiwgaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9IF9fcmlz Y3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1aW50MzJt MV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1ICh2MywgdjIsIC0x NiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNiX3ZfdTMybTEgKG91dCwgdjQs IDQpOw0KK30NCisNCisvKg0KKyoqIGYyOg0KKyoqIHRoLnZzZXR2bGlcdFth LXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxl MzIsbTEsdGEsbWENCisqKiB0aC52bGJ1LnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05 XSssXHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2 WzAtOV0rLFxzKi0xNixccyp2MC50DQorKiogdGgudnNiLnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjIgKHZvaWQg KiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wz Ml90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFzbSB2b2xhdGls ZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jp c2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFf dCB2MiA9IF9fcmlzY3ZfdGhfdmxidV92X3UzMm0xX20gKG1hc2ssIGluLCA0 KTsNCisgICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMy bTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlz Y3ZfdmFkZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsNCisgICAg X19yaXNjdl90aF92c2Jfdl91MzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0K Ky8qDQorKiogZjM6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8s ZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQ0K KyoqIHRoLnZsYnVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0 aC52bGJ1LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudA0KKyoqIHRo LnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgu dmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2 MC50DQorKiogdGgudnNiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisq KiByZXQNCisqLw0KK3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1 aW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29s MzJfdCopaW47DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7 DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJt MSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhf dmxidV92X3UzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsNCisgICAgdnVp bnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYs IDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7DQorICAgIF9fcmlz Y3ZfdGhfdnNiX3ZfdTMybTEgKG91dCwgdjQsIDQpOw0KK30NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVh ZHZlY3Rvci92bGgtdnNoLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uM2M4YjVjY2MxNmINCi0t LSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYw0KQEAgLTAsMCArMSw2 OCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAt TzMiIH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9k aWVzICIqKiIgIiIgfSB9ICovDQorI2luY2x1ZGUgInJpc2N2X3RoX3ZlY3Rv ci5oIg0KKw0KKy8qDQorKiogZjE6DQorKiogdGgudnNldGl2bGlcdHplcm8s NCxlMzIsbTEsdHUsbWENCisqKiB0aC52bGhcLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkNCisqKiB0aC52bGhcLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0x Ng0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2 DQorKiogdGgudnNoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiog cmV0DQorKi8NCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50 MzJfdCB4KQ0KK3sNCisgICAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92 bGhfdl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYyID0gX19y aXNjdl90aF92bGhfdl9pMzJtMV90dSAodiwgaW4sIDQpOw0KKyAgICB2aW50 MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgLTE2LCA0 KTsNCisgICAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJt MV90dSAodjMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzaF92 X2kzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBmMjoNCisq KiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisq KiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZz ZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hDQorKiogdGgudmxoLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZpXHR2 WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZb MS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50DQorKiogdGgu dnNoLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0K K3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpDQor ew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisg ICAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdmludDMy bTFfdCB2ID0gX19yaXNjdl90aF92bGhfdl9pMzJtMSAoaW4sIDQpOw0KKyAg ICB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGhfdl9pMzJtMV9tICht YXNrLCBpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3Zh ZGRfdnhfaTMybTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2aW50MzJtMV90IHY0 ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX20gKG1hc2ssIHYzLCAtMTYsIDQp Ow0KKyAgICBfX3Jpc2N2X3RoX3ZzaF92X2kzMm0xIChvdXQsIHY0LCA0KTsN Cit9DQorDQorLyoNCisqKiBmMzoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05 XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKyww XChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0x LHR1LG11DQorKiogdGgudmxoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp DQorKiogdGgudmxoLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudA0K KyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQor KiogdGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0x Nixccyp2MC50DQorKiogdGgudnNoLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAq b3V0LCBpbnQzMl90IHgpDQorew0KKyAgICB2Ym9vbDMyX3QgbWFzayA9ICoo dmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1v cnkiKTsNCisgICAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGhfdl9p MzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYyID0gX19yaXNjdl90 aF92bGhfdl9pMzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7DQorICAgIHZp bnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCAtMTYs IDQpOw0KKyAgICB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kz Mm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsNCisgICAgX19yaXNj dl90aF92c2hfdl9pMzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3ZsaHUtdnNoLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZzaC5jDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmI3YzAwNDA0ZjE4DQot LS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZzaC5jDQpAQCAtMCwwICsx LDY4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9w dGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1hYmk9aWxwMzJk IC1PMyIgfSAqLw0KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1i b2RpZXMgIioqIiAiIiB9IH0gKi8NCisjaW5jbHVkZSAicmlzY3ZfdGhfdmVj dG9yLmgiDQorDQorLyoNCisqKiBmMToNCisqKiB0aC52c2V0aXZsaVx0emVy byw0LGUzMixtMSx0dSxtYQ0KKyoqIHRoLnZsaHVcLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkNCisqKiB0aC52bGh1XC52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpDQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxc cyotMTYNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxz Ki0xNg0KKyoqIHRoLnZzaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0K KyoqIHJldA0KKyovDQordm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQs IHVpbnQzMl90IHgpDQorew0KKyAgICB2dWludDMybTFfdCB2ID0gX19yaXNj dl90aF92bGh1X3ZfdTMybTEgKGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3Qg djIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV90dSAodiwgaW4sIDQpOw0K KyAgICB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAo djIsIC0xNiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92 YWRkX3Z4X3UzMm0xX3R1ICh2MywgdjIsIC0xNiwgNCk7DQorICAgIF9fcmlz Y3ZfdGhfdnNoX3ZfdTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0K KyoqIGYyOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1m NCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp DQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdGEsbWENCisqKiB0 aC52bGh1LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudA0KKyoqIHRo LnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgu dmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2 MC50DQorKiogdGgudnNoLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisq KiByZXQNCisqLw0KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1 aW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29s MzJfdCopaW47DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7 DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJt MSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhf dmxodV92X3UzMm0xX20gKG1hc2ssIGluLCA0KTsNCisgICAgdnVpbnQzMm0x X3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOw0K KyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV9t IChtYXNrLCB2MywgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92c2hfdl91 MzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjM6DQorKiog dGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiog dGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0 aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQ0KKyoqIHRoLnZsaHVcLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52bGh1LnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0r LFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZbMS05XVsw LTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50DQorKiogdGgudnNoLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQg ZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQ0KK3sNCisg ICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFz bSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZ1aW50MzJtMV90 IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMSAoaW4sIDQpOw0KKyAgICB2 dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxodV92X3UzMm0xX3R1bXUg KG1hc2ssIHYsIGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jp c2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2dWludDMy bTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dW11IChtYXNrLCB2 MywgdjIsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNoX3ZfdTMybTEg KG91dCwgdjQsIDQpOw0KK30NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bHctdnN3LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwMDAwMC4uMTdhNTMwMTJhY2YNCi0tLSAvZGV2L251bGwNCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3Zsdy12c3cuYw0KQEAgLTAsMCArMSw2OCBAQA0KKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdj eHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICov DQorI2luY2x1ZGUgInJpc2N2X3RoX3ZlY3Rvci5oIg0KKw0KKy8qDQorKiog ZjE6DQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWENCisq KiB0aC52bHdcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52 bHdcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52YWRkXC52 eFx0dlswLTldKyxccyp2WzAtOV0rLFxzKlthLXgwLTldKw0KKyoqIHRoLnZh ZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqW2EteDAtOV0rDQorKiog dGgudnN3XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQor Ki8NCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4 KQ0KK3sNCisgICAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHdfdl9p MzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYyID0gX19yaXNjdl90 aF92bHdfdl9pMzJtMV90dSAodiwgaW4sIDQpOw0KKyAgICB2aW50MzJtMV90 IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgeCwgNCk7DQorICAg IHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHUgKHYz LCB2MiwgeCwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91 dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoqIGYyOg0KKyoqIHRoLnZzZXR2 bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlcdHpl cm8sNCxlMzIsbTEsdGEsbWENCisqKiB0aC52bHcudlx0dlswLTldKywwXChb YS14MC05XStcKSx2MC50DQorKiogdGgudmFkZFwudnhcdHZbMC05XSssXHMq dlswLTldKyxccypbYS14MC05XSsNCisqKiB0aC52YWRkXC52eFx0dlsxLTld WzAtOV0/LFxzKnZbMC05XSssXHMqW2EteDAtOV0rLFxzKnYwLnQNCisqKiB0 aC52c3cudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyov DQordm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkN Cit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOw0K KyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2aW50 MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChpbiwgNCk7DQor ICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xX20g KG1hc2ssIGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MyA9IF9fcmlzY3Zf dmFkZF92eF9pMzJtMSAodjIsIHgsIDQpOw0KKyAgICB2aW50MzJtMV90IHY0 ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX20gKG1hc2ssIHYzLCB4LCA0KTsN CisgICAgX19yaXNjdl90aF92c3dfdl9pMzJtMSAob3V0LCB2NCwgNCk7DQor fQ0KKw0KKy8qDQorKiogZjM6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0r LHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0 dSxtdQ0KKyoqIHRoLnZsd1wudlx0dlswLTldKywwXChbYS14MC05XStcKQ0K KyoqIHRoLnZsdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisq KiB0aC52YWRkXC52eFx0dlswLTldKyxccyp2WzAtOV0rLFxzKlthLXgwLTld Kw0KKyoqIHRoLnZhZGRcLnZ4XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxc cypbYS14MC05XSssXHMqdjAudA0KKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYzICh2b2lkICog aW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wzMl90 IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFzbSB2b2xhdGlsZSAo IiI6OjoibWVtb3J5Iik7DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3Zf dGhfdmx3X3ZfaTMybTEgKGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9 IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTFfdHVtdSAobWFzaywgdiwgaW4sIDQp Ow0KKyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0x ICh2MiwgeCwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3Zh ZGRfdnhfaTMybTFfdHVtdSAobWFzaywgdjMsIHYyLCB4LCA0KTsNCisgICAg X19yaXNjdl90aF92c3dfdl9pMzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5jDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmIxODdjZmM4 NTJiDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5jDQpAQCAt MCwwICsxLDY4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7 IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1hYmk9 aWxwMzJkIC1PMyIgfSAqLw0KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5j dGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCisjaW5jbHVkZSAicmlzY3Zf dGhfdmVjdG9yLmgiDQorDQorLyoNCisqKiBmMToNCisqKiB0aC52c2V0aXZs aVx0emVybyw0LGUzMixtMSx0dSxtYQ0KKyoqIHRoLnZsd3VcLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52bHd1XC52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpDQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlsw LTldKyxccyotMTYNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAt OV0rLFxzKi0xNg0KKyoqIHRoLnZzd1wudlx0dlswLTldKywwXChbYS14MC05 XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMSAodm9pZCAqIGluLCB2b2lk ICpvdXQsIHVpbnQzMl90IHgpDQorew0KKyAgICB2dWludDMybTFfdCB2ID0g X19yaXNjdl90aF92bHd1X3ZfdTMybTEgKGluLCA0KTsNCisgICAgdnVpbnQz Mm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMV90dSAodiwgaW4s IDQpOw0KKyAgICB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMSAodjIsIC0xNiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHY0ID0gX19y aXNjdl92YWRkX3Z4X3UzMm0xX3R1ICh2MywgdjIsIC0xNiwgNCk7DQorICAg IF9fcmlzY3ZfdGhfdnN3X3ZfdTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisN CisvKg0KKyoqIGYyOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJv LGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdGEsbWEN CisqKiB0aC52bHd1LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudA0K KyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQor KiogdGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0x Nixccyp2MC50DQorKiogdGgudnN3LnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAq b3V0LCB1aW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAq KHZib29sMzJfdCopaW47DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVt b3J5Iik7DQorICAgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vf dl91MzJtMSAoaW4sIDQpOw0KKyAgICB2dWludDMybTFfdCB2MiA9IF9fcmlz Y3ZfdGhfdmx3dV92X3UzMm0xX20gKG1hc2ssIGluLCA0KTsNCisgICAgdnVp bnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYs IDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92 c3dfdl91MzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjM6 DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1h DQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0 aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQ0KKyoqIHRoLnZsd3Vc LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52bHd1LnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZpXHR2 WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZb MS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50DQorKiogdGgu dnN3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0K K3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQ0K K3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQor ICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZ1aW50 MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMSAoaW4sIDQpOw0K KyAgICB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3dV92X3UzMm0x X3R1bXUgKG1hc2ssIHYsIGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjMg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2 dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dW11ICht YXNrLCB2MywgdjIsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnN3X3Zf dTMybTEgKG91dCwgdjQsIDQpOw0KK30NCi0tIA0KMi4xNy4xDQogDQogDQog DQogDQogDQogDQo= ------=_001_NextPart658202516216_=------