From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-133.freemail.mail.aliyun.com (out30-133.freemail.mail.aliyun.com [115.124.30.133]) by sourceware.org (Postfix) with ESMTPS id 9442B384DB45 for ; Thu, 11 Jan 2024 12:05:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9442B384DB45 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.alibaba.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9442B384DB45 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=115.124.30.133 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704974730; cv=none; b=RqshvHxdSHE02mCYnEE2MSd1oiw2gth25N0DH6LzclA/uCDy8XtH90+02mZpgBahAq+WB+fBezmFQOBi+EvAKlCAZLguYqbDOa5Rj22Km64S9ZIQUplS5tab6C6qtlMvhzTaqB6wJVxhO8PmF5m3lRhtL7nsjNMPait4/KB+UYY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704974730; c=relaxed/simple; bh=MV4ZxIYpcvSFsu9FNA0ZHTew/Rx5GXkuqPYH5OblYHI=; h=Date:From:To:Message-ID:Subject:MIME-Version; b=KZU1XQeRiJQ/ocTfzOKQb1y0uhbLhx0IP0Jmi9By5OLmp2tFrt8qUge5vf0OyQq8dGcFnGYlAfVYU6/LLVgUJn5U9u3o2vm0OiQF/ql17zrS5Vykykf1cNZjfU2NdpAxbhJh6IdwikyjcGBV12V3dTlbuV5vjDXjWEvUPaucABo= ARC-Authentication-Results: i=1; server2.sourceware.org X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R721e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046060;MF=cooper.joshua@linux.alibaba.com;NM=1;PH=DW;RN=10;SR=0;TI=W4_0.2.3_v5ForWebDing_21250CDB_1704971374856_o7001c702; Received: from WS-web (cooper.joshua@linux.alibaba.com[W4_0.2.3_v5ForWebDing_21250CDB_1704971374856_o7001c702]) at Thu, 11 Jan 2024 20:05:18 +0800 Date: Thu, 11 Jan 2024 20:05:18 +0800 From: "joshua" To: "juzhe.zhong@rivai.ai" , "gcc-patches" Cc: "Jim Wilson" , "palmer" , "andrew" , "philipp.tomsich" , "jeffreyalaw" , "christoph.muellner" , "jinma" , "cooper.qu" Reply-To: "joshua" Message-ID: <801d769f-9edf-4048-b5ba-957081df1dd3.cooper.joshua@linux.alibaba.com> Subject: =?UTF-8?B?UmXvvJpSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVj?= =?UTF-8?B?dG9yLXNwZWNpZmljIGludHJpbnNpY3Mu?= X-Mailer: [Alimail-Mailagent revision 79][W4_0.2.3][v5ForWebDing][Chrome] MIME-Version: 1.0 x-aliyun-im-through: {"mailThroughImNew":true} References: <469B905EF964F80C+202401111732306695863@rivai.ai> x-aliyun-mail-creator: W4_0.2.3_v5ForWebDing_SFRTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xMjAuMC4wLjA=Ch In-Reply-To: <469B905EF964F80C+202401111732306695863@rivai.ai> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-18.4 required=5.0 tests=BAYES_00,BODY_8BITS,ENV_AND_HDR_SPF_MATCH,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SCC_5_SHORT_WORD_LINES,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL 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: d2l0aG91dCBDU0U6CihpbnNuIDE2IDE1IDE3IDIgKHNldCAocmVnL3Y6UlZWTTJISSAxMzcgWyBv dXRwdXRfdmFyXzAgXSkKICAgICAgICAoaWZfdGhlbl9lbHNlOlJWVk0ySEkgKHVuc3BlYzpSVlZN RjhCSSBbCiAgICAgICAgICAgICAgICAgICAgKGNvbnN0X3ZlY3RvcjpSVlZNRjhCSSByZXBlYXQg WwogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxIFsweDFdKQogICAgICAg ICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAgICAgICAgIChyZWc6REkgMTQ2KQogICAg ICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMiBbMHgyXSkgcmVwZWF0ZWQgeDIKICAgICAgICAg ICAgICAgICAgICAoY29uc3RfaW50IDAgWzBdKQogICAgICAgICAgICAgICAgICAgIChyZWc6U0kg NjYgdmwpCiAgICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2NyB2dHlwZSkKICAgICAgICAgICAg ICAgIF0gVU5TUEVDX1ZQUkVESUNBVEUpCiAgICAgICAgICAgIChtdWx0OlJWVk0ySEkgKHNpZ25f ZXh0ZW5kOlJWVk0ySEkgKHJlZy92OlJWVk0xUUkgMTM2IFsgb3AxIF0pKQogICAgICAgICAgICAg ICAgKHNpZ25fZXh0ZW5kOlJWVk0ySEkgKHZlY19kdXBsaWNhdGU6UlZWTTFRSSAocmVnOlFJIDE0 NykpKSkKICAgICAgICAgICAgKHVuc3BlYzpSVlZNMkhJIFsKICAgICAgICAgICAgICAgICAgICAo cmVnOlNJIDAgemVybykKICAgICAgICAgICAgICAgIF0gVU5TUEVDX1ZVTkRFRikpKSAgICAgICAg IHtwcmVkX2R1YWxfd2lkZW5fbXVsc3J2dm0yaGlfc2NhbGFyfQoKd2l0aCBDU0U6CihpbnNuIDE2 IDE1IDE3IDIgKHNldCAocmVnL3Y6UlZWTTJISSAxMzcgWyBvdXRwdXRfdmFyXzAgXSkKICAgICAg ICAoaWZfdGhlbl9lbHNlOlJWVk0ySEkgKHVuc3BlYzpSVlZNRjhCSSBbCiAgICAgICAgICAgICAg ICAgICAgKGNvbnN0X3ZlY3RvcjpSVlZNRjhCSSByZXBlYXQgWwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAxIFsweDFdKQogICAgICAgICAgICAgICAgICAgICAgICBdKQog ICAgICAgICAgICAgICAgICAgIChyZWc6REkgMTQ2KQogICAgICAgICAgICAgICAgICAgIChjb25z dF9pbnQgMiBbMHgyXSkgcmVwZWF0ZWQgeDIKICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50 IDAgWzBdKQogICAgICAgICAgICAgICAgICAgIChyZWc6U0kgNjYgdmwpCiAgICAgICAgICAgICAg ICAgICAgKHJlZzpTSSA2NyB2dHlwZSkKICAgICAgICAgICAgICAgIF0gVU5TUEVDX1ZQUkVESUNB VEUpCiAgICAgICAgICAgIChzaWduX2V4dGVuZDpSVlZNMkhJIChyZWcvdjpSVlZNMVFJIDEzNiBb IG9wMSBdKSkKICAgICAgICAgICAgKHVuc3BlYzpSVlZNMkhJIFsKICAgICAgICAgICAgICAgICAg ICAocmVnOlNJIDAgemVybykKICAgICAgICAgICAgICAgIF0gVU5TUEVDX1ZVTkRFRikpKSAgICAg ICAgIHtwcmVkX2V4dGVuZHJ2dm0yaGlfdmYyfQoKCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K5Y+R5Lu25Lq677ya anV6aGUuemhvbmdAcml2YWkuYWkgPGp1emhlLnpob25nQHJpdmFpLmFpPgrlj5HpgIHml7bpl7Tv vJoyMDI05bm0MeaciDEx5pelKOaYn+acn+WbmykgMTc6MzIK5pS25Lu25Lq677yaImNvb3Blci5q b3NodWEiPGNvb3Blci5qb3NodWFAbGludXguYWxpYmFiYS5jb20+OyAiZ2NjLXBhdGNoZXMiPGdj Yy1wYXRjaGVzQGdjYy5nbnUub3JnPgrmioTjgIDpgIHvvJpKaW0gV2lsc29uPGppbS53aWxzb24u Z2NjQGdtYWlsLmNvbT47IHBhbG1lcjxwYWxtZXJAZGFiYmVsdC5jb20+OyBhbmRyZXc8YW5kcmV3 QHNpZml2ZS5jb20+OyAicGhpbGlwcC50b21zaWNoIjxwaGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+ OyBqZWZmcmV5YWxhdzxqZWZmcmV5YWxhd0BnbWFpbC5jb20+OyAiY2hyaXN0b3BoLm11ZWxsbmVy IjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyBqaW5tYTxqaW5tYUBsaW51eC5hbGliYWJh LmNvbT47ICJjb29wZXIucXUiPGNvb3Blci5xdUBsaW51eC5hbGliYWJhLmNvbT4K5Li744CA6aKY 77yaUmU6IFJl77yaW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0 b3Itc3BlY2lmaWMgaW50cmluc2ljcy4KCgpPay4gwqBMZXQncyBob2xkIG9uwqAiUklTQy1WOiBI YW5kbGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBYVGhlYWR2ZWN0b3IgYW5kwqBWZWN0b3IiIHBhdGNo CnVudGlsIHlvdSBjYW4gcmVwcm9kdWNlIHRoZSBpc3N1ZSBmb3IgbWUuCgoKanV6aGUuemhvbmdA cml2YWkuYWkKCsKgCuWPkeS7tuS6uu+8msKgam9zaHVhCuWPkemAgeaXtumXtO+8msKgMjAyNC0w MS0xMcKgMTc6MjkK5pS25Lu25Lq677yawqBqdXpoZS56aG9uZ0ByaXZhaS5haTsgZ2NjLXBhdGNo ZXMK5oqE6YCB77yawqBKaW0gV2lsc29uOyBwYWxtZXI7IGFuZHJldzsgcGhpbGlwcC50b21zaWNo OyBqZWZmcmV5YWxhdzsgY2hyaXN0b3BoLm11ZWxsbmVyOyBqaW5tYTsgY29vcGVyLnF1CuS4u+mi mO+8msKgUmXvvJpSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFk dmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuCgpUaGUgc2V4dC96ZXh0IGlzc3VlIGlzIG5vdCBy ZWxhdGVkIHRvIHh0aGVhZHZlY3Rvci1zcGVjaWFsIHBhdHRlcm5zLgpJIGFkZGVkICFUQVJHRVRf WFRIRUFEVkVDVE9SIHRvIHNleHQvemV4dCBwYXR0ZXJucyBpbgoiUklTQy1WOiBIYW5kbGUgZGlm ZmVyZW5jZXMgYmV0d2VlbiBYVGhlYWR2ZWN0b3IgYW5kwqBWZWN0b3IiClRoYXQgaXMgY2F1c2Vk IGJ5IHRoZSB2d211bCBwYXR0ZXJuLCBidXQgSSBjYW5ub3QgcmVwcm9kdWNlIGl0IHJpZ2h0IG5v dy4KwqAKwqAKwqAKwqAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCuWPkeS7tuS6uu+8mmp1emhlLnpob25nQHJpdmFpLmFp IDxqdXpoZS56aG9uZ0ByaXZhaS5haT4K5Y+R6YCB5pe26Ze077yaMjAyNOW5tDHmnIgxMeaXpSjm mJ/mnJ/lm5spIDE3OjI0CuaUtuS7tuS6uu+8miJjb29wZXIuam9zaHVhIjxjb29wZXIuam9zaHVh QGxpbnV4LmFsaWJhYmEuY29tPjsgImdjYy1wYXRjaGVzIjxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9y Zz4K5oqE44CA6YCB77yaSmltIFdpbHNvbjxqaW0ud2lsc29uLmdjY0BnbWFpbC5jb20+OyBwYWxt ZXI8cGFsbWVyQGRhYmJlbHQuY29tPjsgYW5kcmV3PGFuZHJld0BzaWZpdmUuY29tPjsgInBoaWxp cHAudG9tc2ljaCI8cGhpbGlwcC50b21zaWNoQHZydWxsLmV1PjsgamVmZnJleWFsYXc8amVmZnJl eWFsYXdAZ21haWwuY29tPjsgImNocmlzdG9waC5tdWVsbG5lciI8Y2hyaXN0b3BoLm11ZWxsbmVy QHZydWxsLmV1PjsgamlubWE8amlubWFAbGludXguYWxpYmFiYS5jb20+OyAiY29vcGVyLnF1Ijxj b29wZXIucXVAbGludXguYWxpYmFiYS5jb20+CuS4u+OAgOmimO+8mlJlOiBSZe+8mltQQVRDSCB2 NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNp Y3MuCsKgCsKgCkkgZG9uJ3Qgc2VlIGFueSBwYXR0ZXJucyBhcmUgcG9zc2libGUgQ1NFIGludG8g c2V4dC96ZXh0IHBhdHRlcm5zOgrCoArCoAorKGRlZmluZV9leHBhbmQgIkBwcmVkX21vdl93aWR0 aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZfVkxTIDAg Im5vbmltbWVkaWF0ZV9vcGVyYW5kIikKK8KgwqDCoCAoaWZfdGhlbl9lbHNlOlZfVkxTCivCoMKg wqDCoMKgICh1bnNwZWM6PFZNPgorCVsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNr X29wZXJhbmQiKQorCShtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIpCisJ KG1hdGNoX29wZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQiKQorCShtYXRjaF9vcGVyYW5kIDYg ImNvbnN0X2ludF9vcGVyYW5kIikKKwkobWF0Y2hfb3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFu ZCIpCisJKHJlZzpTSSBWTF9SRUdOVU0pCisJKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNf VEhfVkxNRU1fT1ApCivCoMKgwqDCoMKgIChtYXRjaF9vcGVyYW5kOlZfVkxTIDMgInZlY3Rvcl9t b3ZlX29wZXJhbmQiKQorwqDCoMKgwqDCoCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAyICJ2ZWN0b3Jf bWVyZ2Vfb3BlcmFuZCIpKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgIHt9KQorCiso ZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqcHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9k ZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAwICJub25pbW1lZGlhdGVfb3BlcmFu ZCIJwqDCoMKgICI9dnIswqDCoMKgIHZyLMKgwqDCoCB2ZCzCoMKgwqDCoCBtLMKgwqDCoCB2cizC oMKgwqAgdnIiKQorwqDCoMKgIChpZl90aGVuX2Vsc2U6Vl9WTFMKK8KgwqDCoMKgwqAgKHVuc3Bl Yzo8Vk0+CisJWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIJwqDC oCAidm1XYzEswqDCoCBXYzEswqDCoMKgIHZtLCB2bVdjMSzCoMKgIFdjMSzCoMKgIFdjMSIpCisJ KG1hdGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIgnCoMKgwqDCoMKgICLCoMKg IHJLLMKgwqDCoCBySyzCoMKgwqAgcksswqDCoMKgIHJLLMKgwqDCoCBySyzCoMKgwqAgcksiKQor CShtYXRjaF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5kIgnCoCAiwqDCoMKgIGkswqDCoMKg wqAgaSzCoMKgwqDCoCBpLMKgwqDCoMKgIGkswqDCoMKgwqAgaSzCoMKgwqDCoCBpIikKKwkobWF0 Y2hfb3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIJwqAgIsKgwqDCoCBpLMKgwqDCoMKgIGks wqDCoMKgwqAgaSzCoMKgwqDCoCBpLMKgwqDCoMKgIGkswqDCoMKgwqAgaSIpCisJKG1hdGNoX29w ZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQiCcKgICLCoMKgwqAgaSzCoMKgwqDCoCBpLMKgwqDC oMKgIGkswqDCoMKgwqAgaSzCoMKgwqDCoCBpLMKgwqDCoMKgIGkiKQorCShyZWc6U0kgVkxfUkVH TlVNKQorCShyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZMTUVNX09QKQorwqDCoMKg wqDCoCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAzICJyZWdfb3JfbWVtX29wZXJhbmQiCcKgwqDCoMKg wqAgIsKgwqDCoCBtLMKgwqDCoMKgIG0swqDCoMKgwqAgbSzCoMKgwqAgdnIswqDCoMKgIHZyLMKg wqDCoCB2ciIpCivCoMKgwqDCoMKgIChtYXRjaF9vcGVyYW5kOlZfVkxTIDIgInZlY3Rvcl9tZXJn ZV9vcGVyYW5kIgnCoMKgwqAgIsKgwqDCoCAwLMKgwqDCoCB2dSzCoMKgwqAgdnUswqDCoMKgIHZ1 LMKgwqDCoCB2dSzCoMKgwqDCoCAwIikpKV0KK8KgICIoVEFSR0VUX1hUSEVBRFZFQ1RPUgorwqDC oMKgICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgPE1PREU+bW9kZSkKKwl8fCBy ZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1szXSwgPE1PREU+bW9kZSkpKSIKK8KgICJACivCoMKg IHZsPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzJXAxCivCoMKgIHZsPHZsbWVtX29wX2F0dHI+LnZc dCUwLCUzCivCoMKgIHZsPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzLCUxLnQKK8KgwqAgdnM8dmxt ZW1fb3BfYXR0cj4udlx0JTMsJTAlcDEKK8KgwqAgdm12LnYudlx0JTAsJTMKK8KgwqAgdm12LnYu dlx0JTAsJTMiCivCoCAiJiYgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIDxNT0RFPm1v ZGUpCivCoMKgICYmIHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzNdLCA8TU9ERT5tb2RlKQor wqDCoCAmJiBzYXRpc2ZpZXNfY29uc3RyYWludF92dSAob3BlcmFuZHNbMl0pCivCoMKgICYmIElO VFZBTCAob3BlcmFuZHNbN10pID09IHJpc2N2X3ZlY3Rvcjo6VkxNQVgiCivCoCBbKHNldCAobWF0 Y2hfZHVwIDApIChtYXRjaF9kdXAgMykpXQorwqAgIiIKK8KgIFsoc2V0X2F0dHIgInR5cGUiICJ2 bGRlLHZsZGUsdmxkZSx2c3RlLHZpbW92LHZpbW92IikKK8KgwqAgKHNldF9hdHRyICJtb2RlIiAi PE1PREU+IildKQorCisoZGVmaW5lX2luc24gIkBwcmVkX3N0b3JlX3dpZHRoPHZsbWVtX29wX2F0 dHI+PG1vZGU+IgorwqAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAibWVtb3J5X29wZXJhbmQi CSIrbSIpCisJKGlmX3RoZW5fZWxzZTpWSQorCcKgICh1bnNwZWM6PFZNPgorCcKgwqDCoCBbKG1h dGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1XYzEiKQorCcKgwqDC oMKgIChtYXRjaF9vcGVyYW5kIDMgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCLCoMKgwqAgIsKgwqAg cksiKQorCcKgwqDCoMKgIChtYXRjaF9vcGVyYW5kIDQgImNvbnN0X2ludF9vcGVyYW5kIgkiwqDC oMKgIGkiKQorCcKgwqDCoMKgIChyZWc6U0kgVkxfUkVHTlVNKQorCcKgwqDCoMKgIChyZWc6U0kg VlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZTTUVNX09QKQorCcKgIChtYXRjaF9vcGVyYW5kOlZJ IDIgInJlZ2lzdGVyX29wZXJhbmQiCSLCoMKgwqAgdnIiKQorCcKgIChtYXRjaF9kdXAgMCkpKV0K K8KgICJUQVJHRVRfWFRIRUFEVkVDVE9SIgorwqAgInZzPHZsbWVtX29wX2F0dHI+LnZcdCUyLCUw JXAxIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZzdGUiKQorwqDCoCAoc2V0X2F0dHIgIm1vZGUi ICI8TU9ERT4iKQorwqDCoCAoc2V0IChhdHRyICJhdmxfdHlwZV9pZHgiKSAoY29uc3RfaW50IDQp KQorwqDCoCAoc2V0X2F0dHIgInZsX29wX2lkeCIgIjMiKV0pCisKKyhkZWZpbmVfaW5zbiAiQHBy ZWRfc3RyaWRlZF9sb2FkX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+IgorwqAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6VkkgMCAicmVnaXN0ZXJfb3BlcmFuZCIJwqDCoMKgwqDCoCAiPXZyLMKgwqDC oCB2cizCoMKgwqAgdmQiKQorCShpZl90aGVuX2Vsc2U6VkkKKwnCoCAodW5zcGVjOjxWTT4KKwnC oMKgwqAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2Mx LMKgwqAgV2MxLMKgwqDCoCB2bSIpCisJwqDCoMKgwqAgKG1hdGNoX29wZXJhbmQgNSAidmVjdG9y X2xlbmd0aF9vcGVyYW5kIsKgwqDCoCAiwqDCoCBySyzCoMKgwqAgcksswqDCoMKgIHJLIikKKwnC oMKgwqDCoCAobWF0Y2hfb3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIJIsKgwqDCoCBpLMKg wqDCoMKgIGkswqDCoMKgwqAgaSIpCisJwqDCoMKgwqAgKG1hdGNoX29wZXJhbmQgNyAiY29uc3Rf aW50X29wZXJhbmQiCSLCoMKgwqAgaSzCoMKgwqDCoCBpLMKgwqDCoMKgIGkiKQorCcKgwqDCoMKg IChtYXRjaF9vcGVyYW5kIDggImNvbnN0X2ludF9vcGVyYW5kIgkiwqDCoMKgIGkswqDCoMKgwqAg aSzCoMKgwqDCoCBpIikKKwnCoMKgwqDCoCAocmVnOlNJIFZMX1JFR05VTSkKKwnCoMKgwqDCoCAo cmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WTFNNRU1fT1ApCisJwqAgKHVuc3BlYzpW SQorCcKgwqDCoCBbKG1hdGNoX29wZXJhbmQ6VkkgMyAibWVtb3J5X29wZXJhbmQiCSLCoMKgwqAg bSzCoMKgwqDCoCBtLMKgwqDCoMKgIG0iKQorCcKgwqDCoMKgIChtYXRjaF9vcGVyYW5kIDQgInBt b2RlX3JlZ19vcl8wX29wZXJhbmQiwqDCoCAiwqDCoCBySizCoMKgwqAgckoswqDCoMKgIHJKIild IFVOU1BFQ19USF9WTFNNRU1fT1ApCisJwqAgKG1hdGNoX29wZXJhbmQ6VkkgMiAidmVjdG9yX21l cmdlX29wZXJhbmQiwqDCoMKgwqDCoCAiwqDCoMKgIDAswqDCoMKgIHZ1LMKgwqDCoCB2dSIpKSld CivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2bHM8dmxtZW1fb3BfYXR0cj4udlx0JTAs JTMsJXo0JXAxIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZsZHMiKQorwqDCoCAoc2V0X2F0dHIg Im1vZGUiICI8TU9ERT4iKV0pCisKKyhkZWZpbmVfaW5zbiAiQHByZWRfc3RyaWRlZF9zdG9yZV93 aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJIDAg Im1lbW9yeV9vcGVyYW5kIgkiK20iKQorCShpZl90aGVuX2Vsc2U6VkkKKwnCoCAodW5zcGVjOjxW TT4KKwnCoMKgwqAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIg InZtV2MxIikKKwnCoMKgwqDCoCAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3RoX29wZXJh bmQiwqDCoMKgICLCoMKgIHJLIikKKwnCoMKgwqDCoCAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9p bnRfb3BlcmFuZCIJIsKgwqDCoCBpIikKKwnCoMKgwqDCoCAocmVnOlNJIFZMX1JFR05VTSkKKwnC oMKgwqDCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WU1NNRU1fT1ApCisJwqAg KHVuc3BlYzpWSQorCcKgwqDCoCBbKG1hdGNoX29wZXJhbmQgMiAicG1vZGVfcmVnX29yXzBfb3Bl cmFuZCLCoMKgICLCoMKgIHJKIikKKwnCoMKgwqDCoCAobWF0Y2hfb3BlcmFuZDpWSSAzICJyZWdp c3Rlcl9vcGVyYW5kIsKgwqDCoMKgwqDCoCAiwqDCoCB2ciIpXSBVTlNQRUNfVEhfVlNTTUVNX09Q KQorCcKgIChtYXRjaF9kdXAgMCkpKV0KK8KgICJUQVJHRVRfWFRIRUFEVkVDVE9SIgorwqAgInZz czx2bG1lbV9vcF9hdHRyPi52XHQlMywlMCwlejIlcDEiCivCoCBbKHNldF9hdHRyICJ0eXBlIiAi dnN0cyIpCivCoMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpCivCoMKgIChzZXQgKGF0dHIg ImF2bF90eXBlX2lkeCIpIChjb25zdF9pbnQgNSkpXSkKKworKGRlZmluZV9pbnNuICJAcHJlZF9p bmRleGVkX2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCivCoCBbKHNldCAobWF0Y2hf b3BlcmFuZDpWSSAwICJyZWdpc3Rlcl9vcGVyYW5kIgnCoMKgwqDCoCAiPXZkLCB2cix2ZCwgdnIi KQorCShpZl90aGVuX2Vsc2U6VkkKKwnCoCAodW5zcGVjOjxWTT4KKwnCoMKgwqAgWyhtYXRjaF9v cGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCLCoCAiIHZtLFdjMSx2bSxXYzEiKQor CcKgwqDCoMKgIChtYXRjaF9vcGVyYW5kIDUgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCLCoMKgwqDC oCAiIHJLLCBySyxySywgcksiKQorCcKgwqDCoMKgIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0X2lu dF9vcGVyYW5kIgkiwqAgaSzCoCBpLCBpLMKgIGkiKQorCcKgwqDCoMKgIChtYXRjaF9vcGVyYW5k IDcgImNvbnN0X2ludF9vcGVyYW5kIgkiwqAgaSzCoCBpLCBpLMKgIGkiKQorCcKgwqDCoMKgICht YXRjaF9vcGVyYW5kIDggImNvbnN0X2ludF9vcGVyYW5kIgkiwqAgaSzCoCBpLCBpLMKgIGkiKQor CcKgwqDCoMKgIChyZWc6U0kgVkxfUkVHTlVNKQorCcKgwqDCoMKgIChyZWc6U0kgVlRZUEVfUkVH TlVNKV0gVU5TUEVDX1RIX1ZMWE1FTV9PUCkKKwnCoCAodW5zcGVjOlZJCisJwqDCoMKgIFsobWF0 Y2hfb3BlcmFuZCAzICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIsKgwqDCoCAiIHJKLCBySixySiwg ckoiKQorCcKgwqDCoMKgIChtZW06QkxLIChzY3JhdGNoKSkKKwnCoMKgwqDCoCAobWF0Y2hfb3Bl cmFuZDpWSSA0ICJyZWdpc3Rlcl9vcGVyYW5kIiAiIHZyLCB2cix2ciwgdnIiKV0gVU5TUEVDX1RI X1ZMWE1FTV9PUCkKKwnCoCAobWF0Y2hfb3BlcmFuZDpWSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFu ZCLCoMKgwqDCoMKgwqAgIiB2dSwgdnUsIDAswqAgMCIpKSldCivCoCAiVEFSR0VUX1hUSEVBRFZF Q1RPUiIKK8KgICJ2bHg8dmxtZW1fb3BfYXR0cj4udlx0JTAsKCV6MyksJTQlcDEiCivCoCBbKHNl dF9hdHRyICJ0eXBlIiAidmxkdXgiKQorwqDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0p CisKKyhkZWZpbmVfaW5zbiAiQHByZWRfaW5kZXhlZF88dmxtZW1fb3JkZXJfYXR0cj5zdG9yZV93 aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFsoc2V0IChtZW06QkxLIChzY3JhdGNoKSkK KwkodW5zcGVjOkJMSworCcKgIFsodW5zcGVjOjxWTT4KKwnCoMKgwqAgWyhtYXRjaF9vcGVyYW5k OjxWTT4gMCAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxIikKKwnCoMKgwqDCoCAobWF0Y2hf b3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQiwqDCoMKgICLCoMKgIHJLIikKKwnCoMKg wqDCoCAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCIJIsKgwqDCoCBpIikKKwnC oMKgwqDCoCAocmVnOlNJIFZMX1JFR05VTSkKKwnCoMKgwqDCoCAocmVnOlNJIFZUWVBFX1JFR05V TSldIFVOU1BFQ19USF9WU1hNRU1fT1ApCisJwqDCoCAobWF0Y2hfb3BlcmFuZCAxICJwbW9kZV9y ZWdfb3JfMF9vcGVyYW5kIsKgwqDCoMKgwqAgIsKgIHJKIikKKwnCoMKgIChtYXRjaF9vcGVyYW5k OlZJIDIgInJlZ2lzdGVyX29wZXJhbmQiICLCoCB2ciIpCisJwqDCoCAobWF0Y2hfb3BlcmFuZDpW SSAzICJyZWdpc3Rlcl9vcGVyYW5kIsKgICLCoCB2ciIpXSBVTlNQRUNfVEhfVlNYTUVNX09QKSld CivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2czx2bG1lbV9vcmRlcl9hdHRyPng8dmxt ZW1fb3BfYXR0cj4udlx0JTMsKCV6MSksJTIlcDAiCivCoCBbKHNldF9hdHRyICJ0eXBlIiAidnN0 dXgiKQorwqDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisKKyhkZWZpbmVfZXhwYW5k ICJAcHJlZF90aF9leHRyYWN0PG1vZGU+IgorwqAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZFTD4g MCAicmVnaXN0ZXJfb3BlcmFuZCIpCisJKHVuc3BlYzo8VkVMPgorCcKgIFsodmVjX3NlbGVjdDo8 VkVMPgorCcKgwqDCoMKgIChtYXRjaF9vcGVyYW5kOlZfVkxTSSAxICJyZWdpc3Rlcl9vcGVyYW5k IikKKwnCoMKgwqDCoCAocGFyYWxsZWwgWyhtYXRjaF9vcGVyYW5kOkRJIDIgInJlZ2lzdGVyX29w ZXJhbmQiICJyIildKSkKKwnCoMKgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1ZQUkVE SUNBVEUpKV0KK8KgICJUQVJHRVRfWFRIRUFEVkVDVE9SIgore30pCisKKyhkZWZpbmVfaW5zbiAi KnByZWRfdGhfZXh0cmFjdDxtb2RlPiIKK8KgIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxWRUw+IDAg InJlZ2lzdGVyX29wZXJhbmQiwqDCoCAiPXIiKQorwqAgKHVuc3BlYzo8VkVMPgorwqDCoMKgIFso dmVjX3NlbGVjdDo8VkVMPgorwqDCoMKgwqDCoMKgIChtYXRjaF9vcGVyYW5kOlZfVkxTSSAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAidnIiKQorwqDCoMKgwqDCoMKgIChwYXJhbGxlbCBbKG1hdGNoX29w ZXJhbmQ6REkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKV0pKQorwqDCoMKgwqAgKHJlZzpTSSBW VFlQRV9SRUdOVU0pXSBVTlNQRUNfVlBSRURJQ0FURSkpXQorwqAgIlRBUkdFVF9YVEhFQURWRUNU T1IiCivCoCAidmV4dC54LnZcdCUwLCUxLCUyIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZpbW92 dngiKQorwqDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCsKgCsKgCsKgCmp1emhlLnpo b25nQHJpdmFpLmFpCsKgCsKgCuWPkeS7tuS6uu+8msKgam9zaHVhCuWPkemAgeaXtumXtO+8msKg MjAyNC0wMS0xMcKgMTc6MjEK5pS25Lu25Lq677yawqBqdXpoZS56aG9uZ0ByaXZhaS5haTsgZ2Nj LXBhdGNoZXMK5oqE6YCB77yawqBKaW0gV2lsc29uOyBwYWxtZXI7IGFuZHJldzsgcGhpbGlwcC50 b21zaWNoOyBqZWZmcmV5YWxhdzsgY2hyaXN0b3BoLm11ZWxsbmVyOyBqaW5tYTsgY29vcGVyLnF1 CuS4u+mimO+8msKgUmXvvJpSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3Ig eHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuCsKgCiJJIGRpZG4ndCBzZWUgdGhlYWR2 ZWN0b3Itc3BlY2lmaWMgZXh0ZW5zaW9uIHBhdHRlcm5zLiBDb3VsZCB5b3Ugc2hvdyBtZT8iClRo ZXkgYXJlIGFsbCBpbiB0aGUgZmlsZSB0aGVhZC12ZWN0b3IubWQuCsKgCkZvciB0aGUgc2V4dC96 ZXh0IGlzc3VlLCBwZXJoYXBzIEkgbmVlZCBzb21lIHRpbWUgdG8gcmVwcm9kdWNlIHRoYXQgb3B0 aW1pemF0aW9uLApidXQgSSBjYW4gY2xlYXJseSByZW1lbWJlciBpdCBpcyByZWxhdGVkIHRvIHZ3 bXVsLgrCoArCoAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0K5Y+R5Lu25Lq677yaanV6aGUuemhvbmdAcml2YWkuYWkgPGp1 emhlLnpob25nQHJpdmFpLmFpPgrlj5HpgIHml7bpl7TvvJoyMDI05bm0MeaciDEx5pelKOaYn+ac n+WbmykgMTc6MTcK5pS25Lu25Lq677yaImNvb3Blci5qb3NodWEiPGNvb3Blci5qb3NodWFAbGlu dXguYWxpYmFiYS5jb20+OyAiZ2NjLXBhdGNoZXMiPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPgrm ioTjgIDpgIHvvJpKaW0gV2lsc29uPGppbS53aWxzb24uZ2NjQGdtYWlsLmNvbT47IHBhbG1lcjxw YWxtZXJAZGFiYmVsdC5jb20+OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyAicGhpbGlwcC50 b21zaWNoIjxwaGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+OyBqZWZmcmV5YWxhdzxqZWZmcmV5YWxh d0BnbWFpbC5jb20+OyAiY2hyaXN0b3BoLm11ZWxsbmVyIjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1 bGwuZXU+OyBqaW5tYTxqaW5tYUBsaW51eC5hbGliYWJhLmNvbT47ICJjb29wZXIucXUiPGNvb3Bl ci5xdUBsaW51eC5hbGliYWJhLmNvbT4K5Li744CA6aKY77yaUmU6IFJl77yaW1BBVENIIHY1XSBS SVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4K wqAKwqAKWW91IG1lYW4gd2hpY2ggcGF0dGVybiBvcHRpbWl6ZWQgc2V4dC92emV4dCBwYXR0ZXJu PwrCoArCoApJIGRpZG4ndCBzZWUgdGhlYWR2ZWN0b3Itc3BlY2lmaWMgZXh0ZW5zaW9uIHBhdHRl cm5zLiBDb3VsZCB5b3Ugc2hvdyBtZT8KwqAKwqAKwqAKwqAKanV6aGUuemhvbmdAcml2YWkuYWkK wqAKwqAK5Y+R5Lu25Lq677yawqBqb3NodWEK5Y+R6YCB5pe26Ze077yawqAyMDI0LTAxLTExwqAx NzoxNArmlLbku7bkurrvvJrCoGp1emhlLnpob25nQHJpdmFpLmFpOyBnY2MtcGF0Y2hlcwrmioTp gIHvvJrCoEppbSBXaWxzb247IHBhbG1lcjsgYW5kcmV3OyBwaGlsaXBwLnRvbXNpY2g7IGplZmZy ZXlhbGF3OyBjaHJpc3RvcGgubXVlbGxuZXI7IGppbm1hOyBjb29wZXIucXUK5Li76aKY77yawqBS Ze+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNp ZmljIGludHJpbnNpY3MuCsKgClRvIGJlIHNwZWNpZmljLMKgaW4gQ1NFIHBhc3MsIHRoZSBpbml0 aWFsIHBhdHRlcm4gd2lsbCBiZSBvcHRpbWl6ZWQgaW50byB0aGUgc2V4dC96ZXh0IHBhdHRlcm4u CsKgCsKgCsKgCsKgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrlj5Hku7bkurrvvJpqb3NodWEgPGNvb3Blci5qb3NodWFA bGludXguYWxpYmFiYS5jb20+CuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTHml6Uo5pif5pyf 5ZubKSAxNzoxMQrmlLbku7bkurrvvJoianV6aGUuemhvbmdAcml2YWkuYWkiPGp1emhlLnpob25n QHJpdmFpLmFpPjsgImdjYy1wYXRjaGVzIjxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4K5oqE44CA 6YCB77yaSmltIFdpbHNvbjxqaW0ud2lsc29uLmdjY0BnbWFpbC5jb20+OyBwYWxtZXI8cGFsbWVy QGRhYmJlbHQuY29tPjsgYW5kcmV3PGFuZHJld0BzaWZpdmUuY29tPjsgInBoaWxpcHAudG9tc2lj aCI8cGhpbGlwcC50b21zaWNoQHZydWxsLmV1PjsgamVmZnJleWFsYXc8amVmZnJleWFsYXdAZ21h aWwuY29tPjsgImNocmlzdG9waC5tdWVsbG5lciI8Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1 PjsgamlubWE8amlubWFAbGludXguYWxpYmFiYS5jb20+OyAiY29vcGVyLnF1Ijxjb29wZXIucXVA bGludXguYWxpYmFiYS5jb20+CuS4u+OAgOmimO+8mlJl77yaW1BBVENIIHY1XSBSSVNDLVY6IEFk ZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4KwqAKwqAKc2V4 dC96ZXh0IHdpbGwgYmUgZ2VuZXJhdGVkIGluIE8yIGV2ZW4gd2l0aG91dCBjb3JyZXNwb25kaW5n IGludHJpbnNpY3MuCsKgCsKgCsKgCsKgCsKgCsKgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrlj5Hku7bkurrvvJpqdXpo ZS56aG9uZ0ByaXZhaS5haSA8anV6aGUuemhvbmdAcml2YWkuYWk+CuWPkemAgeaXtumXtO+8mjIw MjTlubQx5pyIMTHml6Uo5pif5pyf5ZubKSAxNzowNwrmlLbku7bkurrvvJoiY29vcGVyLmpvc2h1 YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNvbT47ICJnY2MtcGF0Y2hlcyI8Z2NjLXBh dGNoZXNAZ2NjLmdudS5vcmc+CuaKhCDpgIHvvJpKaW0gV2lsc29uPGppbS53aWxzb24uZ2NjQGdt YWlsLmNvbT47IHBhbG1lcjxwYWxtZXJAZGFiYmVsdC5jb20+OyBhbmRyZXc8YW5kcmV3QHNpZml2 ZS5jb20+OyAicGhpbGlwcC50b21zaWNoIjxwaGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+OyBqZWZm cmV5YWxhdzxqZWZmcmV5YWxhd0BnbWFpbC5jb20+OyAiY2hyaXN0b3BoLm11ZWxsbmVyIjxjaHJp c3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyAiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBs aW51eC5hbGliYWJhLmNvbT47IGppbm1hPGppbm1hQGxpbnV4LmFsaWJhYmEuY29tPjsgImNvb3Bl ci5xdSI8Y29vcGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tPgrkuLsg6aKY77yaUmU6IFtQQVRDSCB2 NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNp Y3MuCsKgCsKgCmVudW0gcmVxdWlyZWRfZXh0CnsKIMKgIFZFQ1RPUl9FWFQsIMKgIC8qIFZlY3Rv ciBleHRlbnNpb24gKi8KK8KgIFhUSEVBRFZFQ1RPUl9FWFQsIMKgIC8qIFhUaGVhZFZlY3RvciBl eHRlbnNpb24gKi8KIMKgIFpWQkJfRVhULMKgIMKgIC8qIENyeXRvIHZlY3RvciBadmJiIHN1Yi1l eHQgKi8KIMKgIFpWQkJfT1JfWlZLQl9FWFQsIC8qIENyeXRvIHZlY3RvciBadmJiIG9yIHp2a2Ig c3ViLWV4dCAqLwogwqAgWlZCQ19FWFQswqAgwqAgLyogQ3J5cHRvIHZlY3RvciBadmJjIHN1Yi1l eHQgKi8KwqAKwqAKwqAKQWRkIHRoZWFkdmVjdG9yIHRvIHRoZSBlbmQgb2YgdGhlIGVudW0uCsKg CsKgCivCoCDCoCDCoCBjYXNlIFhUSEVBRFZFQ1RPUl9FWFQ6CisgcmV0dXJuIFRBUkdFVF9YVEhF QURWRUNUT1I7CsKgCsKgCsKgClNhbWUuCsKgCsKgCivCoCAiJiYgcmVnaXN0ZXJfb3BlcmFuZCAo b3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpCisgwqAgJiYgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFu ZHNbM10sIDxNT0RFPm1vZGUpCisgwqAgJiYgc2F0aXNmaWVzX2NvbnN0cmFpbnRfdnUgKG9wZXJh bmRzWzJdKQorIMKgICYmIElOVFZBTCAob3BlcmFuZHNbN10pID09IHJpc2N2X3ZlY3Rvcjo6VkxN QVgiCsKgCsKgCsKgCllvdSBjYW4gdXNlIHdob2xlX3JlZ190b19yZWdfbW92ZV9wCsKgCsKgCsKg CsKgCkJ0dywgSSByZXZpZXcgYWdhaW4gOiDCoCBSSVNDLVY6IEhhbmRsZSBkaWZmZXJlbmNlcyBi ZXR3ZWVuIFhUaGVhZHZlY3RvciBhbmQgVmVjdG9yCsKgCsKgCsKgIMKgIChhbnlfZXh0ZW5kOlZX RVhUScKgIMKgIMKgIChtYXRjaF9vcGVyYW5kOjxWX0RPVUJMRV9UUlVOQz4gMyAicmVnaXN0ZXJf b3BlcmFuZCIgwqAgIlcyMSxXMjEsVzIxLFcyMSxXNDIsVzQyLFc0MixXNDIsVzg0LFc4NCxXODQs Vzg0LCDCoCB2ciwgwqAgdnIiKSnCoCDCoCAobWF0Y2hfb3BlcmFuZDpWV0VYVEkgMiAidmVjdG9y X21lcmdlX29wZXJhbmQiIMKgIMKgIMKgIMKgIMKgICIgdnUsIHZ1LMKgIDAswqAgMCwgdnUsIHZ1 LMKgIDAswqAgMCwgdnUsIHZ1LMKgIDAswqAgMCwgwqAgdnUswqAgwqAgMCIpKSldLcKgICJUQVJH RVRfVkVDVE9SIivCoCAiVEFSR0VUX1ZFQ1RPUiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiIgwqAg InY8c3o+ZXh0LnZmMlx0JTAsJTMlcDEiIMKgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZXh0IinCoCDC oCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKUBAIC0zNzEzLDcgKzM3NDQsNyBAQMKgIMKgIChh bnlfZXh0ZW5kOlZRRVhUScKgIMKgIMKgIChtYXRjaF9vcGVyYW5kOjxWX1FVQURfVFJVTkM+IDMg InJlZ2lzdGVyX29wZXJhbmQiIMKgICJXNDMsVzQzLFc0MyxXNDMsVzg2LFc4NixXODYsVzg2LCDC oCB2ciwgwqAgdnIiKSnCoCDCoCAobWF0Y2hfb3BlcmFuZDpWUUVYVEkgMiAidmVjdG9yX21lcmdl X29wZXJhbmQiIMKgIMKgIMKgIMKgICIgdnUsIHZ1LMKgIDAswqAgMCwgdnUsIHZ1LMKgIDAswqAg MCwgwqAgdnUswqAgwqAgMCIpKSldLcKgICJUQVJHRVRfVkVDVE9SIivCoCAiVEFSR0VUX1ZFQ1RP UiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiIgwqAgInY8c3o+ZXh0LnZmNFx0JTAsJTMlcDEiIMKg IFsoc2V0X2F0dHIgInR5cGUiICJ2ZXh0IinCoCDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4i KUBAIC0zNzM0LDcgKzM3NjUsNyBAQMKgIMKgIChhbnlfZXh0ZW5kOlZPRVhUScKgIMKgIMKgICht YXRjaF9vcGVyYW5kOjxWX09DVF9UUlVOQz4gMyAicmVnaXN0ZXJfb3BlcmFuZCIgwqAgIlc4NyxX ODcsVzg3LFc4NywgwqAgdnIsIMKgIHZyIikpwqAgwqAgKG1hdGNoX29wZXJhbmQ6Vk9FWFRJIDIg InZlY3Rvcl9tZXJnZV9vcGVyYW5kIsKgIMKgIMKgIMKgICIgdnUsIHZ1LMKgIDAswqAgMCwgwqAg dnUswqAgwqAgMCIpKSldLcKgICJUQVJHRVRfVkVDVE9SIivCoCAiVEFSR0VUX1ZFQ1RPUiAmJiAh VEFSR0VUX1hUSEVBRFZFQ1RPUiIgwqAgInY8c3o+ZXh0LnZmOFx0JTAsJTMlcDEiIMKgIFsoc2V0 X2F0dHIgInR5cGUiICJ2ZXh0IinCoCDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKQpXaHkg ZG8geW91IGFkZCB0aGVzZSAhVEFSR0VSVF9YVEhFQURWRUNSVE9SID8KwqAKwqAKanV6aGUuemhv bmdAcml2YWkuYWkKwqAKIApGcm9tOiBKdW4gU2hhIChKb3NodWEpCkRhdGU6IDIwMjQtMDEtMTEg MTY6NDYKVG86IGdjYy1wYXRjaGVzCkNDOiBqaW0ud2lsc29uLmdjYzsgcGFsbWVyOyBhbmRyZXc7 IHBoaWxpcHAudG9tc2ljaDsgamVmZnJleWFsYXc7IGNocmlzdG9waC5tdWVsbG5lcjsganV6aGUu emhvbmc7IEp1biBTaGEgKEpvc2h1YSk7IEppbiBNYTsgWGlhbm1pYW8gUXUKU3ViamVjdDogW1BB VENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50 cmluc2ljcy4KwqAKVGhpcyBwYXRjaCBvbmx5IGludm9sdmVzIHRoZSBnZW5lcmF0aW9uIG9mIHh0 aGVhZHZlY3RvcgpzcGVjaWFsIGxvYWQvc3RvcmUgaW5zdHJ1Y3Rpb25zIGFuZCB2ZXh0IGluc3Ry dWN0aW9ucy4KIApnY2MvQ2hhbmdlTG9nOgogCiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtYmFzZXMuY2MKIChjbGFzcyB0aF9sb2Fkc3RvcmVfd2lkdGgpOiBEZWZpbmUgbmV3 IGJ1aWx0aW4gYmFzZXMuCiAoY2xhc3MgdGhfZXh0cmFjdCk6IERlZmluZSBuZXcgYnVpbHRpbiBi YXNlcy4KIChCQVNFKTogRGVmaW5lIG5ldyBidWlsdGluIGJhc2VzLgogKiBjb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmg6CiBEZWZpbmUgbmV3IGJ1aWx0aW4gY2xhc3Mu CiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjCiAoc3RydWN0 IHRoX2xvYWRzdG9yZV93aWR0aF9kZWYpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gc2hhcGVzLgogKHN0 cnVjdCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aF9kZWYpOgogRGVmaW5lIG5ldyBidWlsdGlu IHNoYXBlcy4KIChzdHJ1Y3QgdGhfZXh0cmFjdF9kZWYpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gc2hh cGVzLgogKFNIQVBFKTogRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4KICogY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaDoKIERlZmluZSBuZXcgYnVpbHRpbiBzaGFw ZXMuCiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgKERFRl9SVlZfRlVO Q1RJT04pOgogKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmggKGVudW0gcmVx dWlyZWRfZXh0KToKIChzdHJ1Y3QgZnVuY3Rpb25fZ3JvdXBfaW5mbyk6CiAqIGNvbmZpZy9yaXNj di90LXJpc2N2OiBBZGQgdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYKICogY29u ZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZAogKEBwcmVkX21vdl93aWR0aDx2bG1lbV9vcF9hdHRy Pjxtb2RlPik6IEFkZCBuZXcgcGF0dGVybnMuCiAoKnByZWRfbW92X3dpZHRoPHZsbWVtX29wX2F0 dHI+PG1vZGU+KTogTGlrZXdpc2UuCiAoQHByZWRfc3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48 bW9kZT4pOiBMaWtld2lzZS4KIChAcHJlZF9zdHJpZGVkX2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0 cj48bW9kZT4pOiBMaWtld2lzZS4KIChAcHJlZF9zdHJpZGVkX3N0b3JlX3dpZHRoPHZsbWVtX29w X2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuCiAoQHByZWRfaW5kZXhlZF9sb2FkX3dpZHRoPHZsbWVt X29wX2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuCiAoQHByZWRfaW5kZXhlZF88dmxtZW1fb3JkZXJf YXR0cj5zdG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPik6CiAoQHByZWRfdGhfZXh0cmFj dDxtb2RlPik6IExpa2V3aXNlLgogKCpwcmVkX3RoX2V4dHJhY3Q8bW9kZT4pOiBMaWtld2lzZS4K ICogY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmOiBOZXcg ZmlsZS4KIApnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKIAogKiBnY2MudGFyZ2V0L3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5jOiBOZXcgdGVzdC4KICogZ2NjLnRhcmdldC9yaXNjdi9y dnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmM6IE5ldyB0ZXN0LgogKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jOiBOZXcgdGVzdC4KICogZ2NjLnRhcmdldC9yaXNj di9ydnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmM6IE5ldyB0ZXN0LgogKiBnY2MudGFyZ2V0L3Jp c2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jOiBOZXcgdGVzdC4KICogZ2NjLnRhcmdldC9y aXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmM6IE5ldyB0ZXN0LgogCkNvLWF1dGhvcmVk LWJ5OiBKaW4gTWEgPGppbm1hQGxpbnV4LmFsaWJhYmEuY29tPgpDby1hdXRob3JlZC1ieTogWGlh bm1pYW8gUXUgPGNvb3Blci5xdUBsaW51eC5hbGliYWJhLmNvbT4KQ28tYXV0aG9yZWQtYnk6IENo cmlzdG9waCBNw7xsbG5lciA8Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1PgotLS0KIC4uLi9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2PCoCDCoCDCoCB8IDEzOSArKysrKysr KysrCiAuLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmggwqAgwqAgwqAgfMKg IDMxICsrKwogLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MgwqAgwqAg fCAxNjAgKysrKysrKysrKysKIC4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVz LmjCoCDCoCDCoCB8IMKgIDMgKwogZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMuY2MgwqAgwqAgfMKgIDcwICsrKysrCiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5owqAgwqAgwqAgfCDCoCAzICsKIGdjYy9jb25maWcvcmlzY3YvdC1yaXNjdsKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgMSArCiAuLi4vcmlzY3YvdGhlYWQtdmVj dG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgfMKgIDM5ICsrKwogZ2NjL2NvbmZpZy9yaXNjdi90 aGVhZC12ZWN0b3IubWTCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IDI1MyArKysrKysrKysrKysrKysr KysKIC4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuY8KgIMKgIMKgIMKgIMKgIHzC oCA2OCArKysrKwogLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYyDCoCDCoCDC oCDCoCB8wqAgNjggKysrKysKIC4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guY8Kg IMKgIMKgIMKgIMKgIHzCoCA2OCArKysrKwogLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmxo dS12c2guYyDCoCDCoCDCoCDCoCB8wqAgNjggKysrKysKIC4uLi9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3Zsdy12c3cuY8KgIMKgIMKgIMKgIMKgIHzCoCA2OCArKysrKwogLi4uL3Jpc2N2L3J2di94 dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYyDCoCDCoCDCoCDCoCB8wqAgNjggKysrKysKIDE1IGZpbGVz IGNoYW5nZWQsIDExMDcgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy9jb25m aWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92 bGItdnNiLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3IvdmxodS12c2guYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3 LmMKIApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMt YmFzZXMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5j YwppbmRleCA0NmYxYTFkYTMzZS4uM2ViYTc5NDM3NTcgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjCisrKyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjCkBAIC0yMTI1LDYgKzIxMjUsODMgQEAg cHVibGljOgogwqAgfQogfTsKIAorLyogSW1wbGVtZW50cworICogdGgudmwoYi9oL3cpW3VdLnYv dGgudnMoYi9oL3cpW3VdLnYvdGgudmxzKGIvaC93KVt1XS52L3RoLnZzcyhiL2gvdylbdV0udi8K KyAqIHRoLnZseChiL2gvdylbdV0udi90aC52c1t1XXgoYi9oL3cpLnYKKyAqIGNvZGVnZW4uwqAg Ki8KK3RlbXBsYXRlPGJvb2wgU1RPUkVfUCwgbHN0X3R5cGUgTFNUX1RZUEUsIGludCBVTlNQRUM+ CitjbGFzcyB0aF9sb2Fkc3RvcmVfd2lkdGggOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQoreworcHVi bGljOgorwqAgYm9vbCBhcHBseV90YWlsX3BvbGljeV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0 dXJuICFTVE9SRV9QOyB9CivCoCBib29sIGFwcGx5X21hc2tfcG9saWN5X3AgKCkgY29uc3Qgb3Zl cnJpZGUgeyByZXR1cm4gIVNUT1JFX1A7IH0KKworwqAgdW5zaWduZWQgaW50IGNhbGxfcHJvcGVy dGllcyAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJikgY29uc3Qgb3ZlcnJpZGUKK8KgIHsKK8Kg IMKgIGlmIChTVE9SRV9QKQorwqAgwqAgwqAgcmV0dXJuIENQX1dSSVRFX01FTU9SWTsKK8KgIMKg IGVsc2UKK8KgIMKgIMKgIHJldHVybiBDUF9SRUFEX01FTU9SWTsKK8KgIH0KKworwqAgYm9vbCBj YW5fYmVfb3ZlcmxvYWRlZF9wIChlbnVtIHByZWRpY2F0aW9uX3R5cGVfaW5kZXggcHJlZCkgY29u c3Qgb3ZlcnJpZGUKK8KgIHsKK8KgIMKgIGlmIChTVE9SRV9QIHx8IExTVF9UWVBFID09IExTVF9J TkRFWEVEKQorwqAgwqAgwqAgcmV0dXJuIHRydWU7CivCoCDCoCByZXR1cm4gcHJlZCAhPSBQUkVE X1RZUEVfbm9uZTsKK8KgIH0KKworwqAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUp IGNvbnN0IG92ZXJyaWRlCivCoCB7CivCoCDCoCBnY2NfYXNzZXJ0IChUQVJHRVRfWFRIRUFEVkVD VE9SKTsKK8KgIMKgIGlmIChMU1RfVFlQRSA9PSBMU1RfSU5ERVhFRCkKK8KgIMKgIMKgIHsKKyBp ZiAoU1RPUkVfUCkKKyDCoCByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoCisgwqAgwqAgY29kZV9m b3JfcHJlZF9pbmRleGVkX3N0b3JlX3dpZHRoIChVTlNQRUMsIFVOU1BFQywKK8KgIMKgIMKgIMKg IMKgIMKgIGUudmVjdG9yX21vZGUgKCkpKTsKKyBlbHNlCisgwqAgcmV0dXJuIGUudXNlX2V4YWN0 X2luc24gKAorIMKgIMKgIGNvZGVfZm9yX3ByZWRfaW5kZXhlZF9sb2FkX3dpZHRoIChVTlNQRUMs IGUudmVjdG9yX21vZGUgKCkpKTsKK8KgIMKgIMKgIH0KK8KgIMKgIGVsc2UgaWYgKExTVF9UWVBF ID09IExTVF9TVFJJREVEKQorwqAgwqAgwqAgeworIGlmIChTVE9SRV9QKQorIMKgIHJldHVybiBl LnVzZV9jb250aWd1b3VzX3N0b3JlX2luc24gKAorIMKgIMKgIGNvZGVfZm9yX3ByZWRfc3RyaWRl ZF9zdG9yZV93aWR0aCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7CisgZWxzZQorIMKgIHJl dHVybiBlLnVzZV9jb250aWd1b3VzX2xvYWRfaW5zbiAoCisgwqAgwqAgY29kZV9mb3JfcHJlZF9z dHJpZGVkX2xvYWRfd2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOworwqAgwqAgwqAg fQorwqAgwqAgZWxzZQorwqAgwqAgwqAgeworIGlmIChTVE9SRV9QKQorIMKgIHJldHVybiBlLnVz ZV9jb250aWd1b3VzX3N0b3JlX2luc24gKAorIMKgIMKgIGNvZGVfZm9yX3ByZWRfc3RvcmVfd2lk dGggKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOworIGVsc2UKKyDCoCByZXR1cm4gZS51c2Vf Y29udGlndW91c19sb2FkX2luc24gKAorIMKgIMKgIGNvZGVfZm9yX3ByZWRfbW92X3dpZHRoIChV TlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsKK8KgIMKgIMKgIH0KK8KgIH0KK307CisKKy8qIElt cGxlbWVudHMgdmV4dC54LnYuwqAgKi8KK2NsYXNzIHRoX2V4dHJhY3QgOiBwdWJsaWMgZnVuY3Rp b25fYmFzZQoreworcHVibGljOgorwqAgYm9vbCBhcHBseV92bF9wICgpIGNvbnN0IG92ZXJyaWRl IHsgcmV0dXJuIGZhbHNlOyB9CivCoCBib29sIGFwcGx5X3RhaWxfcG9saWN5X3AgKCkgY29uc3Qg b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KK8KgIGJvb2wgYXBwbHlfbWFza19wb2xpY3lfcCAo KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorwqAgYm9vbCB1c2VfbWFza19wcmVk aWNhdGlvbl9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CivCoCBib29sIGhh c19tZXJnZV9vcGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKwor wqAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlCivCoCB7 CivCoCDCoCBnY2NfYXNzZXJ0IChUQVJHRVRfWFRIRUFEVkVDVE9SKTsKK8KgIMKgIHJldHVybiBl LnVzZV9leGFjdF9pbnNuIChjb2RlX2Zvcl9wcmVkX3RoX2V4dHJhY3QgKGUudmVjdG9yX21vZGUg KCkpKTsKK8KgIH0KK307CisKIC8qIEJlbG93IGltcGxlbWVudHMgYXJlIHZlY3RvciBjcnlwdG8g Ki8KIC8qIEltcGxlbWVudHMgdmFuZG4uW3Z2LHZ4XSAqLwogY2xhc3MgdmFuZG4gOiBwdWJsaWMg ZnVuY3Rpb25fYmFzZQpAQCAtMjU4Nyw2ICsyNjY0LDM3IEBAIHN0YXRpYyBDT05TVEVYUFIgY29u c3Qgc2VnX2luZGV4ZWRfbG9hZDxVTlNQRUNfT1JERVJFRD4gdmxveHNlZ19vYmo7CiBzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHNlZ19pbmRleGVkX3N0b3JlPFVOU1BFQ19VTk9SREVSRUQ+IHZzdXhz ZWdfb2JqOwogc3RhdGljIENPTlNURVhQUiBjb25zdCBzZWdfaW5kZXhlZF9zdG9yZTxVTlNQRUNf T1JERVJFRD4gdnNveHNlZ19vYmo7CiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZsc2VnZmYgdmxz ZWdmZl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxz ZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxCPiB2bGJfb2JqOworc3RhdGljIENPTlNU RVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5T UEVDX1RIX1ZMQlU+IHZsYnVfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3Rv cmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMSD4gdmxoX29iajsK K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5J VF9TVFJJREUsIFVOU1BFQ19USF9WTEhVPiB2bGh1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9W TFc+IHZsd19vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxm YWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxXVT4gdmx3dV9vYmo7CitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUs IFVOU1BFQ19USF9WTEI+IHZzYl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRz dG9yZV93aWR0aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEg+IHZzaF9vYmo7 CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfVU5J VF9TVFJJREUsIFVOU1BFQ19USF9WTFc+IHZzd19vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNCPiB2 bHNiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNl LCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0JVPiB2bHNidV9vYmo7CitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19U SF9WTFNIPiB2bHNoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dp ZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0hVPiB2bHNodV9vYmo7CitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQs IFVOU1BFQ19USF9WTFNXPiB2bHN3X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9h ZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU1dVPiB2bHN3dV9v Ymo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1Rf U1RSSURFRCwgVU5TUEVDX1RIX1ZMU0I+IHZzc2Jfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25z dCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNIPiB2 c3NoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUs IExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTVz4gdnNzd19vYmo7CitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9W TFhCPiB2bHhiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRo PGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEJVPiB2bHhidV9vYmo7CitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVO U1BFQ19USF9WTFhIPiB2bHhoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0 b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEhVPiB2bHhodV9vYmo7 CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lO REVYRUQsIFVOU1BFQ19USF9WTFhXPiB2bHh3X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWFdVPiB2 bHh3dV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVl LCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEI+IHZzeGJfb2JqOworc3RhdGljIENPTlNURVhQ UiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9W TFhIPiB2c3hoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRo PHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYVz4gdnN4d19vYmo7CitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVD X1RIX1ZTVVhCPiB2c3V4Yl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9y ZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZTVVhIPiB2c3V4aF9vYmo7Citz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhF RCwgVU5TUEVDX1RIX1ZTVVhXPiB2c3V4d19vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2V4dHJhY3QgdmV4dF94X3Zfb2JqOwogCiAvKiBDcnlwdG8gVmVjdG9yICovCiBzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHZhbmRuIHZhbmRuX29iajsKQEAgLTI4NzgsNiArMjk4NiwzNyBAQCBCQVNF ICh2bG94c2VnKQogQkFTRSAodnN1eHNlZykKIEJBU0UgKHZzb3hzZWcpCiBCQVNFICh2bHNlZ2Zm KQorQkFTRSAodmxiKQorQkFTRSAodmxoKQorQkFTRSAodmx3KQorQkFTRSAodmxidSkKK0JBU0Ug KHZsaHUpCitCQVNFICh2bHd1KQorQkFTRSAodnNiKQorQkFTRSAodnNoKQorQkFTRSAodnN3KQor QkFTRSAodmxzYikKK0JBU0UgKHZsc2gpCitCQVNFICh2bHN3KQorQkFTRSAodmxzYnUpCitCQVNF ICh2bHNodSkKK0JBU0UgKHZsc3d1KQorQkFTRSAodnNzYikKK0JBU0UgKHZzc2gpCitCQVNFICh2 c3N3KQorQkFTRSAodmx4YikKK0JBU0UgKHZseGgpCitCQVNFICh2bHh3KQorQkFTRSAodmx4YnUp CitCQVNFICh2bHhodSkKK0JBU0UgKHZseHd1KQorQkFTRSAodnN4YikKK0JBU0UgKHZzeGgpCitC QVNFICh2c3h3KQorQkFTRSAodnN1eGIpCitCQVNFICh2c3V4aCkKK0JBU0UgKHZzdXh3KQorQkFT RSAodmV4dF94X3YpCiAvKiBDcnlwdG8gdmVjdG9yICovCiBCQVNFICh2YW5kbikKIEJBU0UgKHZi cmV2KQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMt YmFzZXMuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgK aW5kZXggMTEyMmUzODAxYTcuLjU2NWEwMzExZDJiIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oCisrKyBiL2djYy9jb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgKQEAgLTI5OSw2ICsyOTksMzcgQEAgZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsb3hzZWc7CiBleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdnN1eHNlZzsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2c294c2VnOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc2VnZmY7Citl eHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxiOworZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX2Jhc2UgKmNvbnN0IHZsaDsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2 bHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxidTsKK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bGh1OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2Ug KmNvbnN0IHZsd3U7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNiOworZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzaDsKK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2c3c7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmxz YjsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNoOworZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc3c7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3QgdmxzYnU7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxzaHU7Citl eHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmxzd3U7CitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdnNzYjsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2c3NoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzc3c7CitleHRlcm4g Y29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4YjsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2bHhoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZseHc7 CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4YnU7CitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4aHU7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3Qgdmx4d3U7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN4YjsKK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3hoOworZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX2Jhc2UgKmNvbnN0IHZzeHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dnN1eGI7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eGg7CitleHRlcm4g Y29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdmV4dF94X3Y7CiAvKiBCZWxvdyBmdW5jdGlvbl9iYXNlIGFyZSBWZWN0cm8g Q3J5cHRvKi8KIGV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YW5kbjsKIGV4dGVy biBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YnJldjsKZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYwppbmRleCAxZTRmNGQ1M2RlNi4uOGU5 MGIxN2E5NGIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLXNoYXBlcy5jYworKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy1zaGFwZXMuY2MKQEAgLTIxMSw2ICsyMTEsMTQ2IEBAIHN0cnVjdCBpbmRleGVkX2xvYWRzdG9y ZV9kZWYgOiBwdWJsaWMgZnVuY3Rpb25fc2hhcGUKIMKgIH0KIH07CiAKKy8qIEFkZCBvbmUgZnVu Y3Rpb24gaW5zdGFuY2UgZm9yIEdST1VQLCB1c2luZyBvcGVyYW5kIHN1ZmZpeCBhdCBpbmRleCBP SSwKKyDCoCBtb2RlIHN1ZmZpeCBhdCBpbmRleCBQQUlSICYmIGJpIGFuZCBwcmVkaWNhdGlvbiBz dWZmaXggYXQgaW5kZXggcHJlZF9pZHguwqAgKi8KK3N0YXRpYyB2b2lkCitidWlsZF90aF9sb2Fk c3RvcmUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdy b3VwLAorwqAgwqAgwqAgdW5zaWduZWQgaW50IHByZWRfaWR4LCB1bnNpZ25lZCBpbnQgdmVjX3R5 cGVfaWR4KQoreworwqAgYXV0b192ZWM8dHJlZSwgNT4gYXJndW1lbnRfdHlwZXM7CivCoCBmdW5j dGlvbl9pbnN0YW5jZSBmdW5jdGlvbl9pbnN0YW5jZSAoZ3JvdXAuYmFzZV9uYW1lLCAqZ3JvdXAu YmFzZSwKKyDCoCDCoCDCoCDCoCDCoCAqZ3JvdXAuc2hhcGUsCisgwqAgwqAgwqAgwqAgwqAgZ3Jv dXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0sCisgwqAgwqAgwqAgwqAgwqAgZ3JvdXAu cHJlZHNbcHJlZF9pZHhdLCAmZ3JvdXAub3BzX2luZm9zKTsKK8KgIHRyZWUgcmV0dXJuX3R5cGUg PSBncm91cC5vcHNfaW5mb3MucmV0LmdldF90cmVlX3R5cGUgKAorwqAgwqAgZ3JvdXAub3BzX2lu Zm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXgpOworwqAgYi5hbGxvY2F0ZV9hcmd1bWVudF90 eXBlcyAoZnVuY3Rpb25faW5zdGFuY2UsIGFyZ3VtZW50X3R5cGVzKTsKK8KgIGIuYXBwbHlfcHJl ZGljYXRpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCByZXR1cm5fdHlwZSwgYXJndW1lbnRfdHlwZXMp OworCivCoCBpZiAoVEFSR0VUX1hUSEVBRFZFQ1RPUiAmJiAhY2hlY2tfdHlwZSAocmV0dXJuX3R5 cGUsIGFyZ3VtZW50X3R5cGVzKSkKK8KgIMKgIHJldHVybjsKKworwqAgdHJlZSB0eXBlID0gYnVp bHRpbl90eXBlc1tncm91cC5vcHNfaW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRleF0udmVj dG9yOworwqAgaWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAibCIpCivCoCDCoCDCoCAmJiBz dHJzdHIgKGdyb3VwLmJhc2VfbmFtZSwgInUiKQorwqAgwqAgwqAgJiYgIVRZUEVfVU5TSUdORUQg KFRSRUVfVFlQRSAodHlwZSkpKQorwqAgwqAgcmV0dXJuOworCivCoCBpZiAoc3Ryc3RyIChncm91 cC5iYXNlX25hbWUsICJsIikKK8KgIMKgIMKgICYmICFzdHJzdHIgKGdyb3VwLmJhc2VfbmFtZSwg InUiKQorwqAgwqAgwqAgJiYgVFlQRV9VTlNJR05FRCAoVFJFRV9UWVBFICh0eXBlKSkpCivCoCDC oCByZXR1cm47CisKK8KgIG1hY2hpbmVfbW9kZSBtb2RlID0gVFlQRV9NT0RFICh0eXBlKTsKK8Kg IGludCBzZXcgPSBHRVRfTU9ERV9CSVRTSVpFIChHRVRfTU9ERV9JTk5FUiAobW9kZSkpOworwqAg aWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAiaCIpICYmIHNldyA9PSA4KQorwqAgwqAgcmV0 dXJuOworCivCoCBpZiAoc3Ryc3RyIChncm91cC5iYXNlX25hbWUsICJ3IikgJiYgKHNldyA9PSA4 IHx8IHNldyA9PTE2KSkKK8KgIMKgIHJldHVybjsKKworwqAgYi5hZGRfb3ZlcmxvYWRlZF9mdW5j dGlvbiAoZnVuY3Rpb25faW5zdGFuY2UsICpncm91cC5zaGFwZSk7CivCoCBiLmFkZF91bmlxdWVf ZnVuY3Rpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCAoKmdyb3VwLnNoYXBlKSwgcmV0dXJuX3R5cGUs CivCoCDCoCBhcmd1bWVudF90eXBlcyk7Cit9CisKKy8qIHRoX2xvYWRzdG9yZV93aWR0aF9kZWYg Y2xhc3MuwqAgKi8KK3N0cnVjdCB0aF9sb2Fkc3RvcmVfd2lkdGhfZGVmIDogcHVibGljIGJ1aWxk X2Jhc2UKK3sKKyDCoCB2b2lkIGJ1aWxkIChmdW5jdGlvbl9idWlsZGVyICZiLAorIMKgIMKgIMKg IGNvbnN0IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwKSBjb25zdCBvdmVycmlkZQorwqAgewor wqAgwqAgZm9yICh1bnNpZ25lZCBpbnQgcHJlZF9pZHggPSAwOyBncm91cC5wcmVkc1twcmVkX2lk eF0gIT0gTlVNX1BSRURfVFlQRVM7CisgwqAgwqAgwqAgKytwcmVkX2lkeCkKK8KgIMKgIMKgIHsK KyBmb3IgKHVuc2lnbmVkIGludCB2ZWNfdHlwZV9pZHggPSAwOworwqAgwqAgwqAgZ3JvdXAub3Bz X2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXggIT0gTlVNX1ZFQ1RPUl9UWVBFUzsKK8Kg IMKgIMKgICsrdmVjX3R5cGVfaWR4KQorIMKgIHsKKyDCoCDCoCBidWlsZF90aF9sb2Fkc3RvcmUg KGIsIGdyb3VwLCBwcmVkX2lkeCwgdmVjX3R5cGVfaWR4KTsKKyDCoCB9CivCoCDCoCDCoCB9CivC oCB9CisKK8KgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9idWlsZGVyICZiLCBjb25zdCBmdW5j dGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsCivCoCDCoCBib29sIG92ZXJsb2FkZWRfcCkgY29uc3Qg b3ZlcnJpZGUKK8KgIHsKK8KgIMKgIC8qIFJldHVybiBudWxscHRyIGlmIGl0IGNhbiBub3QgYmUg b3ZlcmxvYWRlZC7CoCAqLworwqAgwqAgaWYgKG92ZXJsb2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFz ZS0+Y2FuX2JlX292ZXJsb2FkZWRfcCAoaW5zdGFuY2UucHJlZCkpCivCoCDCoCDCoCByZXR1cm4g bnVsbHB0cjsKKworwqAgwqAgYi5hcHBlbmRfbmFtZSAoIl9fcmlzY3ZfdGhfIik7CivCoCDCoCBi LmFwcGVuZF9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOworCivCoCDCoCAvKiB2b3BfdiAtLT4g dm9wX3ZfPHR5cGU+LsKgICovCivCoCDCoCBpZiAoIW92ZXJsb2FkZWRfcCkKK8KgIMKgIMKgIHsK KyAvKiB2b3AgLS0+IHZvcF92LsKgICovCisgYi5hcHBlbmRfbmFtZSAob3BlcmFuZF9zdWZmaXhl c1tpbnN0YW5jZS5vcF9pbmZvLT5vcF0pOworIC8qIHZvcF92IC0tPiB2b3Bfdl88dHlwZT4uwqAg Ki8KKyBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhdLnZl Y3Rvcik7CivCoCDCoCDCoCB9CisKK8KgIMKgIC8qIEFjY29yZGluZyB0byBydnYtaW50cmluc2lj LWRvYywgaXQgZG9lcyBub3QgYWRkICJfbSIgc3VmZml4CisgwqAgwqAgwqAgZm9yIHZvcF9tIEMr KyBvdmVybG9hZGVkIEFQSS7CoCAqLworwqAgwqAgaWYgKG92ZXJsb2FkZWRfcCAmJiBpbnN0YW5j ZS5wcmVkID09IFBSRURfVFlQRV9tKQorwqAgwqAgwqAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7 CivCoCDCoCBiLmFwcGVuZF9uYW1lIChwcmVkaWNhdGlvbl9zdWZmaXhlc1tpbnN0YW5jZS5wcmVk XSk7CivCoCDCoCByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsKK8KgIH0KK307CisKKworLyogdGhf aW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVmIGNsYXNzLsKgICovCitzdHJ1Y3QgdGhfaW5kZXhl ZF9sb2Fkc3RvcmVfd2lkdGhfZGVmIDogcHVibGljIGZ1bmN0aW9uX3NoYXBlCit7CivCoCB2b2lk IGJ1aWxkIChmdW5jdGlvbl9idWlsZGVyICZiLAorIMKgIMKgIMKgIGNvbnN0IGZ1bmN0aW9uX2dy b3VwX2luZm8gJmdyb3VwKSBjb25zdCBvdmVycmlkZQorwqAgeworwqAgwqAgZm9yICh1bnNpZ25l ZCBpbnQgcHJlZF9pZHggPSAwOyBncm91cC5wcmVkc1twcmVkX2lkeF0gIT0gTlVNX1BSRURfVFlQ RVM7CivCoCArK3ByZWRfaWR4KQorwqAgwqAgwqAgeworIGZvciAodW5zaWduZWQgaW50IHZlY190 eXBlX2lkeCA9IDA7CivCoCDCoCDCoCBncm91cC5vcHNfaW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4 XS5pbmRleCAhPSBOVU1fVkVDVE9SX1RZUEVTOworwqAgwqAgwqAgKyt2ZWNfdHlwZV9pZHgpCisg wqAgeworwqAgwqAgdHJlZSBpbmRleF90eXBlID0gZ3JvdXAub3BzX2luZm9zLmFyZ3NbMV0uZ2V0 X3RyZWVfdHlwZSAoCisgwqAgwqAgwqAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lk eF0uaW5kZXgpOworwqAgwqAgaWYgKCFpbmRleF90eXBlKQorIMKgIMKgIMKgIGNvbnRpbnVlOwor wqAgwqAgYnVpbGRfdGhfbG9hZHN0b3JlIChiLCBncm91cCwgcHJlZF9pZHgsIHZlY190eXBlX2lk eCk7CisgwqAgfQorwqAgwqAgwqAgfQorwqAgfQorCivCoCBjaGFyICpnZXRfbmFtZSAoZnVuY3Rp b25fYnVpbGRlciAmYiwgY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLAorwqAgwqAg Ym9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92ZXJyaWRlCivCoCB7CisKK8KgIMKgIC8qIFJldHVy biBudWxscHRyIGlmIGl0IGNhbiBub3QgYmUgb3ZlcmxvYWRlZC7CoCAqLworwqAgwqAgaWYgKG92 ZXJsb2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2JlX292ZXJsb2FkZWRfcCAoaW5zdGFu Y2UucHJlZCkpCivCoCDCoCDCoCByZXR1cm4gbnVsbHB0cjsKKworwqAgwqAgYi5hcHBlbmRfbmFt ZSAoIl9fcmlzY3ZfdGhfIik7CivCoCDCoCBiLmFwcGVuZF9uYW1lIChpbnN0YW5jZS5iYXNlX25h bWUpOworwqAgwqAgLyogdm9wX3YgLS0+IHZvcF92Xzx0eXBlPi7CoCAqLworwqAgwqAgaWYgKCFv dmVybG9hZGVkX3ApCivCoCDCoCDCoCB7CisgLyogdm9wIC0tPiB2b3Bfdi7CoCAqLworIGIuYXBw ZW5kX25hbWUgKG9wZXJhbmRfc3VmZml4ZXNbaW5zdGFuY2Uub3BfaW5mby0+b3BdKTsKKyAvKiB2 b3BfdiAtLT4gdm9wX3ZfPHR5cGU+LsKgICovCisgYi5hcHBlbmRfbmFtZSAodHlwZV9zdWZmaXhl c1tpbnN0YW5jZS50eXBlLmluZGV4XS52ZWN0b3IpOworwqAgwqAgwqAgfQorCivCoCDCoCAvKiBB Y2NvcmRpbmcgdG8gcnZ2LWludHJpbnNpYy1kb2MsIGl0IGRvZXMgbm90IGFkZCAiX20iIHN1ZmZp eAorIMKgIMKgIMKgIGZvciB2b3BfbSBDKysgb3ZlcmxvYWRlZCBBUEkuwqAgKi8KK8KgIMKgIGlm IChvdmVybG9hZGVkX3AgJiYgaW5zdGFuY2UucHJlZCA9PSBQUkVEX1RZUEVfbSkKK8KgIMKgIMKg IHJldHVybiBiLmZpbmlzaF9uYW1lICgpOworwqAgwqAgYi5hcHBlbmRfbmFtZSAocHJlZGljYXRp b25fc3VmZml4ZXNbaW5zdGFuY2UucHJlZF0pOworwqAgwqAgcmV0dXJuIGIuZmluaXNoX25hbWUg KCk7CivCoCB9Cit9OworCiAvKiBhbHVfZGVmIGNsYXNzLsKgICovCiBzdHJ1Y3QgYWx1X2RlZiA6 IHB1YmxpYyBidWlsZF9iYXNlCiB7CkBAIC02MzIsNiArNzcyLDIzIEBAIHN0cnVjdCByZWR1Y19h bHVfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UKIMKgIH0KIH07CiAKKy8qIHRoX2V4dHJhY3RfZGVm IGNsYXNzLsKgICovCitzdHJ1Y3QgdGhfZXh0cmFjdF9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQor eworwqAgY2hhciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9u X2luc3RhbmNlICZpbnN0YW5jZSwKK8KgIMKgIMKgIGJvb2wgb3ZlcmxvYWRlZF9wKSBjb25zdCBv dmVycmlkZQorwqAgeworwqAgwqAgYi5hcHBlbmRfbmFtZSAoIl9fcmlzY3ZfdGhfIik7CivCoCDC oCBiLmFwcGVuZF9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOworCivCoCDCoCBpZiAob3Zlcmxv YWRlZF9wKQorwqAgwqAgwqAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7CivCoCDCoCBiLmFwcGVu ZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7CivCoCDC oCBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhdLnNjYWxh cik7CivCoCDCoCByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsKK8KgIH0KK307CisKIC8qIHNjYWxh cl9tb3ZlX2RlZiBjbGFzcy7CoCAqLwogc3RydWN0IHNjYWxhcl9tb3ZlX2RlZiA6IHB1YmxpYyBi dWlsZF9iYXNlCiB7CkBAIC0xMDk0LDYgKzEyNTEsOCBAQCBTSEFQRSh2c2V0dmwsIHZzZXR2bCkK IFNIQVBFKHZzZXR2bCwgdnNldHZsbWF4KQogU0hBUEUobG9hZHN0b3JlLCBsb2Fkc3RvcmUpCiBT SEFQRShpbmRleGVkX2xvYWRzdG9yZSwgaW5kZXhlZF9sb2Fkc3RvcmUpCitTSEFQRSh0aF9sb2Fk c3RvcmVfd2lkdGgsIHRoX2xvYWRzdG9yZV93aWR0aCkKK1NIQVBFKHRoX2luZGV4ZWRfbG9hZHN0 b3JlX3dpZHRoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCkKIFNIQVBFKGFsdSwgYWx1KQog U0hBUEUoYWx1X2ZybSwgYWx1X2ZybSkKIFNIQVBFKHdpZGVuX2FsdSwgd2lkZW5fYWx1KQpAQCAt MTEwNiw2ICsxMjY1LDcgQEAgU0hBUEUobW92ZSwgbW92ZSkKIFNIQVBFKG1hc2tfYWx1LCBtYXNr X2FsdSkKIFNIQVBFKHJlZHVjX2FsdSwgcmVkdWNfYWx1KQogU0hBUEUocmVkdWNfYWx1X2ZybSwg cmVkdWNfYWx1X2ZybSkKK1NIQVBFKHRoX2V4dHJhY3QsIHRoX2V4dHJhY3QpCiBTSEFQRShzY2Fs YXJfbW92ZSwgc2NhbGFyX21vdmUpCiBTSEFQRSh2dW5kZWZpbmVkLCB2dW5kZWZpbmVkKQogU0hB UEUobWlzYywgbWlzYykKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLXNoYXBlcy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtc2hhcGVzLmgKaW5kZXggYWMyYTI4Y2UwMTcuLmE3NjI0ZDBmYWJkIDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaAorKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaApAQCAtMjgsNiArMjgs OCBAQCBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHZzZXR2bDsKIGV4dGVybiBj b25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNldHZsbWF4OwogZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX3NoYXBlICpjb25zdCBsb2Fkc3RvcmU7CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUg KmNvbnN0IGluZGV4ZWRfbG9hZHN0b3JlOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNv bnN0IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3No YXBlICpjb25zdCBhbHU7CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGFsdV9m cm07CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHdpZGVuX2FsdTsKQEAgLTQx LDYgKzQzLDcgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBtYXNrX2FsdTsK IGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgcmVkdWNfYWx1OwogZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCByZWR1Y19hbHVfZnJtOwogZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX3NoYXBlICpjb25zdCBzY2FsYXJfbW92ZTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9z aGFwZSAqY29uc3QgdGhfZXh0cmFjdDsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29u c3QgdnVuZGVmaW5lZDsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgbWlzYzsK IGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNldDsKZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MKaW5kZXggMjVlMGI2ZTU2ZGUuLjQ0YjlmZWMxODk4 IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYwor KysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYwpAQCAtOTM0LDYg KzkzNCwzMiBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIGV4dF92 Y3JlYXRlX2FyZ3NbXQogwqAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3Rvciks CsKgIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07CiAKKy8qIEEgbGlzdCBvZiBhcmdzIGZv ciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLCBzaXplX3QpCisgKiBmdW5j dGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBzY2Fs YXJfY29uc3RfcHRyX3NpemVfYXJnc1tdCivCoCA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JB U0Vfc2NhbGFyX2NvbnN0X3B0ciksCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNF X3NpemUpLCBydnZfYXJnX3R5cGVfaW5mb19lbmR9OworCisvKiBBIGxpc3Qgb2YgYXJncyBmb3Ig dmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwgZWV3OF9pbmRleF90eXBlKQor ICogZnVuY3Rpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2lu Zm8gc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9hcmdzW10KK8KgID0ge3J2dl9hcmdfdHlwZV9pbmZv IChSVlZfQkFTRV9zY2FsYXJfY29uc3RfcHRyKSwKKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAo UlZWX0JBU0VfdW5zaWduZWRfdmVjdG9yKSwgcnZ2X2FyZ190eXBlX2luZm9fZW5kfTsKKworLyog QSBsaXN0IG9mIGFyZ3MgZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgZWV3OF9pbmRleF90 eXBlLCB2ZWN0b3JfdHlwZSkKKyAqIGZ1bmN0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHJ2dl9hcmdfdHlwZV9pbmZvIHNjYWxhcl9wdHJfaW5kZXhfYXJnc1tdCivCoCA9IHtydnZf YXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX3B0ciksCisgwqAgwqAgcnZ2X2FyZ190eXBl X2luZm8gKFJWVl9CQVNFX3Vuc2lnbmVkX3ZlY3RvciksCisgwqAgwqAgcnZ2X2FyZ190eXBlX2lu Zm8gKFJWVl9CQVNFX3ZlY3RvciksIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07CisKKy8qIEEgbGlz dCBvZiBhcmdzIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIHNpemVfdCwgdmVjdG9yX3R5 cGUpCisgKiBmdW5jdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5 cGVfaW5mbyBzY2FsYXJfcHRyX3NpemVfYXJnc1tdCivCoCA9IHtydnZfYXJnX3R5cGVfaW5mbyAo UlZWX0JBU0Vfc2NhbGFyX3B0ciksCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNF X3NpemUpLCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwKKyDCoCDCoCBydnZf YXJnX3R5cGVfaW5mb19lbmR9OworCiAvKiBBIGxpc3Qgb2Ygbm9uZSBwcmVkcyB0aGF0IHdpbGwg YmUgcmVnaXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLwogc3RhdGljIENPTlNU RVhQUiBjb25zdCBwcmVkaWNhdGlvbl90eXBlX2luZGV4IG5vbmVfcHJlZHNbXQogwqAgPSB7UFJF RF9UWVBFX25vbmUsIE5VTV9QUkVEX1RZUEVTfTsKQEAgLTE0NTUsNiArMTQ4MSwxNCBAQCBzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3NoaWZ0X3Z2dl9vcHMKwqAgwqAgwqAg cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlICovCsKg IMKgIMKgIHNoaWZ0X3Z2X2FyZ3MgLyogQXJncyAqL307CiAKKy8qIEEgc3RhdGljIG9wZXJhbmQg aW5mb3JtYXRpb24gZm9yIHNjYWxhcl90eXBlIGZ1bmMgKHZlY3Rvcl90eXBlLCBzaXplX3QpCisg KiBmdW5jdGlvbiByZWdpc3RyYXRpb24uICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9v cF9pbmZvIGl1X3hfc191X29wcworwqAgPSB7aXVfb3BzLMKgIMKgIMKgIMKgIMKgIC8qIFR5cGVz ICovCisgwqAgwqAgT1BfVFlQRV92eCzCoCDCoCDCoCDCoCAvKiBTdWZmaXggKi8KKyDCoCDCoCBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyKSwgLyogUmV0dXJuIHR5cGUgKi8KKyDC oCDCoCB2X3NpemVfYXJncyAvKiBBcmdzICovfTsKKwogLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZv cm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAodmVjdG9yX3R5cGUsIHNpemVfdCkKwqAgKiBm dW5jdGlvbiByZWdpc3RyYXRpb24uICovCiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9p bmZvIGl1X3NoaWZ0X3Z2eF9vcHMKQEAgLTI2MzgsNiArMjY3MiwzOCBAQCBzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3ZjcmVhdGVfbG11bDRfeDJfb3BzCsKgIMKgIMKg IHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92bG11bF9leHRfeDIpLCAvKiBSZXR1cm4gdHlw ZSAqLwrCoCDCoCDCoCBleHRfdmNyZWF0ZV9hcmdzIC8qIEFyZ3MgKi99OwogCisvKiBBIHN0YXRp YyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJf dHlwZSAqLAorICogc2l6ZV90KSBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29w cworwqAgPSB7YWxsX29wcyzCoCDCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92 LMKgIMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9C QVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfY29uc3RfcHRy X3NpemVfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlv biBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBzaXplX3QsCisgKiB2ZWN0b3JfdHlwZSkg ZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9v cF9pbmZvIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMKK8KgID0ge2FsbF9vcHMswqAgwqAgLyog VHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKgIMKg IHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJuIHR5cGXCoCAqLwor IMKgIMKgIHNjYWxhcl9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBv cGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlw ZSAqLAorICogaW5kZXhfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhf b3BzCivCoCA9IHthbGxfb3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBF X3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZW X0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9w dHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1h dGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBpbmRleF90eXBlLAorICogdmVjdG9y X3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25z dCBydnZfb3BfaW5mbyBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcworwqAgPSB7YWxsX29wcyzC oCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIC8qIFN1ZmZpeMKgICov CisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlw ZcKgICovCisgwqAgwqAgc2NhbGFyX3B0cl9pbmRleF9hcmdzIC8qIEFyZ3MgKi99OworCiAvKiBB IHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jICh2ZWN0b3Jf dHlwZSkuCsKgIMKgIFNvbWUgaW5zIGp1c3Qgc3VwcG9ydHMgU0VXPTMyLCBzdWNoIGFzIGNyeXB0 byB2ZWN0b2wgWnZrZyBleHRlbnNpb24uCsKgICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICov CkBAIC0yODE2LDYgKzI4ODIsMTAgQEAgc3RhdGljIGZ1bmN0aW9uX2dyb3VwX2luZm8gZnVuY3Rp b25fZ3JvdXBzW10gPSB7CiAjZGVmaW5lIERFRl9SVlZfRlVOQ1RJT04oTkFNRSwgU0hBUEUsIFBS RURTLCBPUFNfSU5GTykgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXAogwqAg eyNOQU1FLCAmYmFzZXM6Ok5BTUUsICZzaGFwZXM6OlNIQVBFLCBQUkVEUywgT1BTX0lORk8sIFJF UVVJUkVEX0VYVEVOU0lPTlN9LAogI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5j dGlvbnMuZGVmIgorI3VuZGVmIERFRl9SVlZfRlVOQ1RJT04KKyNkZWZpbmUgREVGX1JWVl9GVU5D VElPTihOQU1FLCBTSEFQRSwgUFJFRFMsIE9QU19JTkZPKSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCBcCivCoCB7I05BTUUsICZiYXNlczo6TkFNRSwgJnNoYXBlczo6U0hBUEUs IFBSRURTLCBPUFNfSU5GTywgUkVRVUlSRURfRVhURU5TSU9OU30sCisjaW5jbHVkZSAidGhlYWQt dmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYiCiB9OwogCiAvKiBUaGUgUlZWIHR5cGVzLCB3 aXRoIHRoZWlyIGJ1aWx0LWluCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu aAppbmRleCA1NGM4ODI0ZmY5Mi4uYThlZTM5YTNjYjIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMuaApAQCAtMTE0LDYgKzExNCw3IEBAIHN0YXRpYyBjb25zdCB1bnNp Z25lZCBpbnQgQ1BfV1JJVEVfQ1NSID0gMVUgPDwgNTsKIGVudW0gcmVxdWlyZWRfZXh0CiB7CiDC oCBWRUNUT1JfRVhULCDCoCAvKiBWZWN0b3IgZXh0ZW5zaW9uICovCivCoCBYVEhFQURWRUNUT1Jf RVhULCDCoCAvKiBYVGhlYWRWZWN0b3IgZXh0ZW5zaW9uICovCiDCoCBaVkJCX0VYVCzCoCDCoCAv KiBDcnl0byB2ZWN0b3IgWnZiYiBzdWItZXh0ICovCiDCoCBaVkJCX09SX1pWS0JfRVhULCAvKiBD cnl0byB2ZWN0b3IgWnZiYiBvciB6dmtiIHN1Yi1leHQgKi8KIMKgIFpWQkNfRVhULMKgIMKgIC8q IENyeXB0byB2ZWN0b3IgWnZiYyBzdWItZXh0ICovCkBAIC0yMzQsNiArMjM1LDggQEAgc3RydWN0 IGZ1bmN0aW9uX2dyb3VwX2luZm8KIMKgIMKgIHsKIMKgIMKgIMKgIGNhc2UgVkVDVE9SX0VYVDoK IMKgIMKgIMKgIMKgIHJldHVybiBUQVJHRVRfVkVDVE9SOworwqAgwqAgwqAgY2FzZSBYVEhFQURW RUNUT1JfRVhUOgorIHJldHVybiBUQVJHRVRfWFRIRUFEVkVDVE9SOwogwqAgwqAgwqAgY2FzZSBa VkJCX0VYVDoKIMKgIMKgIMKgIMKgIHJldHVybiBUQVJHRVRfWlZCQjsKIMKgIMKgIMKgIGNhc2Ug WlZCQl9PUl9aVktCX0VYVDoKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvdC1yaXNjdiBi L2djYy9jb25maWcvcmlzY3YvdC1yaXNjdgppbmRleCAzMmRlNmI4NTFjMS4uMzg0OTQzMjBkOGIg MTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvdC1yaXNjdgorKysgYi9nY2MvY29uZmlnL3Jp c2N2L3QtcmlzY3YKQEAgLTEsNiArMSw3IEBACiBSSVNDVl9CVUlMVElOU19IID0gJChzcmNkaXIp L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaCBcCsKgIMKgIMKgICQoc3JjZGly KS9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmRlZiBcCsKgIMKgIMKgICQoc3Jj ZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgXAor IMKgIMKgIMKgICQoc3JjZGlyKS9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1 bmN0aW9ucy5kZWYgXArCoCDCoCDCoCByaXNjdi12ZWN0b3ItdHlwZS1pbmRleGVyLmdlbi5kZWYK IAogcmlzY3YtYnVpbHRpbnMubzogJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi1idWlsdGlu cy5jYyAkKENPTkZJR19IKSBcCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZl Y3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0 b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uZmQzYmEyOWJhZTkKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvY29uZmlnL3Jpc2N2 L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmCkBAIC0wLDAgKzEsMzkgQEAKKyNp Zm5kZWYgREVGX1JWVl9GVU5DVElPTgorI2RlZmluZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNI QVBFLCBQUkVEUywgT1BTX0lORk8pCisjZW5kaWYKKworI2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJ T05TIFhUSEVBRFZFQ1RPUl9FWFQKK0RFRl9SVlZfRlVOQ1RJT04gKHZsYiwgdGhfbG9hZHN0b3Jl X3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZf RlVOQ1RJT04gKHZsaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2Fs YXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsdywgdGhfbG9hZHN0b3JlX3dp ZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVO Q1RJT04gKHZsYnUsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFy X2NvbnN0X3B0cl9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2bGh1LCB0aF9sb2Fkc3RvcmVfd2lk dGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9GVU5D VElPTiAodmx3dSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJf Y29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzYiwgdGhfbG9hZHN0b3JlX3dpZHRo LCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAo dnNoLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9v cHMpCitERUZfUlZWX0ZVTkNUSU9OICh2c3csIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3By ZWRzLCBhbGxfdl9zY2FsYXJfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsc2IsIHRoX2xv YWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29w cykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsc2gsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVk cywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZs c3csIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0 cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsc2J1LCB0aF9sb2Fkc3RvcmVfd2lkdGgs IGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMpCitERUZfUlZWX0ZV TkNUSU9OICh2bHNodSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2Fs YXJfY29uc3RfcHRyX3NpemVfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodmxzd3UsIHRoX2xvYWRz dG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykK K0RFRl9SVlZfRlVOQ1RJT04gKHZzc2IsIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRz LCBhbGxfdl9zY2FsYXJfcHRyX3NpemVfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodnNzaCwgdGhf bG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMp CitERUZfUlZWX0ZVTkNUSU9OICh2c3N3LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVk cywgYWxsX3Zfc2NhbGFyX3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZseGIsIHRo X2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3Rf cHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZseGgsIHRoX2luZGV4ZWRfbG9hZHN0 b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykK K0RFRl9SVlZfRlVOQ1RJT04gKHZseHcsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxs X3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJ T04gKHZseGJ1LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zf c2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2bHhodSwgdGhf aW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9w dHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodmx4d3UsIHRoX2luZGV4ZWRfbG9hZHN0 b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykK K0RFRl9SVlZfRlVOQ1RJT04gKHZzeGIsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25l X21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAo dnN4aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2Nh bGFyX3B0cl9pbmRleF9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2c3h3LCB0aF9pbmRleGVkX2xv YWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykK K0RFRl9SVlZfRlVOQ1RJT04gKHZzdXhiLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9u ZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04g KHZzdXhoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9z Y2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzdXh3LCB0aF9pbmRleGVk X2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29w cykKK0RFRl9SVlZfRlVOQ1RJT04gKHZleHRfeF92LCB0aF9leHRyYWN0LCBub25lX3ByZWRzLCBp dV94X3NfdV9vcHMpCisjdW5kZWYgUkVRVUlSRURfRVhURU5TSU9OUworCisjdW5kZWYgREVGX1JW Vl9GVU5DVElPTgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQg Yi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZAppbmRleCA2OTZiODE1MjUyZC4uMGYz NzAwZDkyNjkgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kCisr KyBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kCkBAIC0xLDcgKzEsOTUgQEAKIChk ZWZpbmVfY19lbnVtICJ1bnNwZWMiIFsKK8KgIFVOU1BFQ19USF9WTEIKK8KgIFVOU1BFQ19USF9W TEJVCivCoCBVTlNQRUNfVEhfVkxICivCoCBVTlNQRUNfVEhfVkxIVQorwqAgVU5TUEVDX1RIX1ZM VworwqAgVU5TUEVDX1RIX1ZMV1UKKworwqAgVU5TUEVDX1RIX1ZMU0IKK8KgIFVOU1BFQ19USF9W TFNCVQorwqAgVU5TUEVDX1RIX1ZMU0gKK8KgIFVOU1BFQ19USF9WTFNIVQorwqAgVU5TUEVDX1RI X1ZMU1cKK8KgIFVOU1BFQ19USF9WTFNXVQorCivCoCBVTlNQRUNfVEhfVkxYQgorwqAgVU5TUEVD X1RIX1ZMWEJVCivCoCBVTlNQRUNfVEhfVkxYSAorwqAgVU5TUEVDX1RIX1ZMWEhVCivCoCBVTlNQ RUNfVEhfVkxYVworwqAgVU5TUEVDX1RIX1ZMWFdVCisKK8KgIFVOU1BFQ19USF9WU1VYQgorwqAg VU5TUEVDX1RIX1ZTVVhICivCoCBVTlNQRUNfVEhfVlNVWFcKKwogwqAgVU5TUEVDX1RIX1ZXTERT VAogXSkKIAorKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZMTUVNX09QIFsKK8KgIFVO U1BFQ19USF9WTEIgVU5TUEVDX1RIX1ZMQlUKK8KgIFVOU1BFQ19USF9WTEggVU5TUEVDX1RIX1ZM SFUKK8KgIFVOU1BFQ19USF9WTFcgVU5TUEVDX1RIX1ZMV1UKK10pCisKKyhkZWZpbmVfaW50X2l0 ZXJhdG9yIFVOU1BFQ19USF9WTFNNRU1fT1AgWworwqAgVU5TUEVDX1RIX1ZMU0IgVU5TUEVDX1RI X1ZMU0JVCivCoCBVTlNQRUNfVEhfVkxTSCBVTlNQRUNfVEhfVkxTSFUKK8KgIFVOU1BFQ19USF9W TFNXIFVOU1BFQ19USF9WTFNXVQorXSkKKworKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RI X1ZMWE1FTV9PUCBbCivCoCBVTlNQRUNfVEhfVkxYQiBVTlNQRUNfVEhfVkxYQlUKK8KgIFVOU1BF Q19USF9WTFhIIFVOU1BFQ19USF9WTFhIVQorwqAgVU5TUEVDX1RIX1ZMWFcgVU5TUEVDX1RIX1ZM WFdVCitdKQorCisoZGVmaW5lX2ludF9hdHRyIHZsbWVtX29wX2F0dHIgWworwqAgKFVOU1BFQ19U SF9WTEIgImIiKSAoVU5TUEVDX1RIX1ZMQlUgImJ1IikKK8KgIChVTlNQRUNfVEhfVkxIICJoIikg KFVOU1BFQ19USF9WTEhVICJodSIpCivCoCAoVU5TUEVDX1RIX1ZMVyAidyIpIChVTlNQRUNfVEhf VkxXVSAid3UiKQorwqAgKFVOU1BFQ19USF9WTFNCICJiIikgKFVOU1BFQ19USF9WTFNCVSAiYnUi KQorwqAgKFVOU1BFQ19USF9WTFNIICJoIikgKFVOU1BFQ19USF9WTFNIVSAiaHUiKQorwqAgKFVO U1BFQ19USF9WTFNXICJ3IikgKFVOU1BFQ19USF9WTFNXVSAid3UiKQorwqAgKFVOU1BFQ19USF9W TFhCICJiIikgKFVOU1BFQ19USF9WTFhCVSAiYnUiKQorwqAgKFVOU1BFQ19USF9WTFhIICJoIikg KFVOU1BFQ19USF9WTFhIVSAiaHUiKQorwqAgKFVOU1BFQ19USF9WTFhXICJ3IikgKFVOU1BFQ19U SF9WTFhXVSAid3UiKQorwqAgKFVOU1BFQ19USF9WU1VYQiAiYiIpCivCoCAoVU5TUEVDX1RIX1ZT VVhIICJoIikKK8KgIChVTlNQRUNfVEhfVlNVWFcgInciKQorXSkKKworKGRlZmluZV9pbnRfYXR0 ciB2bG1lbV9vcmRlcl9hdHRyIFsKK8KgIChVTlNQRUNfVEhfVkxYQiAiIikKK8KgIChVTlNQRUNf VEhfVkxYSCAiIikKK8KgIChVTlNQRUNfVEhfVkxYVyAiIikKK8KgIChVTlNQRUNfVEhfVlNVWEIg InUiKQorwqAgKFVOU1BFQ19USF9WU1VYSCAidSIpCivCoCAoVU5TUEVDX1RIX1ZTVVhXICJ1IikK K10pCisKKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WU01FTV9PUCBbCivCoCBVTlNQ RUNfVEhfVkxCCivCoCBVTlNQRUNfVEhfVkxICivCoCBVTlNQRUNfVEhfVkxXCitdKQorCisoZGVm aW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNTTUVNX09QIFsKK8KgIFVOU1BFQ19USF9WTFNC CivCoCBVTlNQRUNfVEhfVkxTSAorwqAgVU5TUEVDX1RIX1ZMU1cKK10pCisKKyhkZWZpbmVfaW50 X2l0ZXJhdG9yIFVOU1BFQ19USF9WU1hNRU1fT1AgWworwqAgVU5TUEVDX1RIX1ZMWEIKK8KgIFVO U1BFQ19USF9WTFhICivCoCBVTlNQRUNfVEhfVkxYVworwqAgVU5TUEVDX1RIX1ZTVVhCCivCoCBV TlNQRUNfVEhfVlNVWEgKK8KgIFVOU1BFQ19USF9WU1VYVworXSkKKwogKGRlZmluZV9tb2RlX2l0 ZXJhdG9yIFZfVkxTX1ZUIFtWIFZMUyBWVF0pCiAoZGVmaW5lX21vZGVfaXRlcmF0b3IgVl9WQl9W TFNfVlQgW1YgVkIgVkxTIFZUXSkKIApAQCAtMTAwLDMgKzE4OCwxNjggQEAKIMKgIH0KIMKgIFso c2V0X2F0dHIgInR5cGUiICJ2bGRtLHZzdG0sdm1hbHUsdm1hbHUsdm1hbHUiKQrCoCDCoCAoc2V0 X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisKKyhkZWZpbmVfZXhwYW5kICJAcHJlZF9tb3Zfd2lk dGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAw ICJub25pbW1lZGlhdGVfb3BlcmFuZCIpCivCoCDCoCAoaWZfdGhlbl9lbHNlOlZfVkxTCivCoCDC oCDCoCAodW5zcGVjOjxWTT4KKyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19v cGVyYW5kIikKK8KgIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIpCivC oCAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCIpCivCoCAobWF0Y2hfb3BlcmFu ZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIpCivCoCAobWF0Y2hfb3BlcmFuZCA3ICJjb25zdF9pbnRf b3BlcmFuZCIpCivCoCAocmVnOlNJIFZMX1JFR05VTSkKK8KgIChyZWc6U0kgVlRZUEVfUkVHTlVN KV0gVU5TUEVDX1RIX1ZMTUVNX09QKQorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMyAi dmVjdG9yX21vdmVfb3BlcmFuZCIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAyICJ2 ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIpKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgIHt9 KQorCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqcHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0 cj48bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAwICJub25pbW1lZGlhdGVf b3BlcmFuZCIgwqAgwqAgIj12cizCoCDCoCB2cizCoCDCoCB2ZCwgwqAgwqAgbSzCoCDCoCB2cizC oCDCoCB2ciIpCivCoCDCoCAoaWZfdGhlbl9lbHNlOlZfVkxTCivCoCDCoCDCoCAodW5zcGVjOjxW TT4KKyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIsKgIMKgICJ2 bVdjMSwgwqAgV2MxLMKgIMKgIHZtLCB2bVdjMSwgwqAgV2MxLCDCoCBXYzEiKQorwqAgKG1hdGNo X29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiDCoCDCoCDCoCAiIMKgIHJLLMKgIMKg IHJLLMKgIMKgIHJLLMKgIMKgIHJLLMKgIMKgIHJLLMKgIMKgIHJLIikKK8KgIChtYXRjaF9vcGVy YW5kIDUgImNvbnN0X2ludF9vcGVyYW5kIsKgIMKgICLCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBp LCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpIikKK8KgIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0 X2ludF9vcGVyYW5kIsKgIMKgICLCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDC oCDCoCBpLCDCoCDCoCBpIikKK8KgIChtYXRjaF9vcGVyYW5kIDcgImNvbnN0X2ludF9vcGVyYW5k IsKgIMKgICLCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDC oCBpIikKK8KgIChyZWc6U0kgVkxfUkVHTlVNKQorwqAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBV TlNQRUNfVEhfVkxNRU1fT1ApCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAzICJyZWdf b3JfbWVtX29wZXJhbmQiIMKgIMKgIMKgICLCoCDCoCBtLCDCoCDCoCBtLCDCoCDCoCBtLMKgIMKg IHZyLMKgIMKgIHZyLMKgIMKgIHZyIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kOlZfVkxTIDIg InZlY3Rvcl9tZXJnZV9vcGVyYW5kIiDCoCDCoCAiwqAgwqAgMCzCoCDCoCB2dSzCoCDCoCB2dSzC oCDCoCB2dSzCoCDCoCB2dSwgwqAgwqAgMCIpKSldCivCoCAiKFRBUkdFVF9YVEhFQURWRUNUT1IK K8KgIMKgICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgPE1PREU+bW9kZSkKKyB8 fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1szXSwgPE1PREU+bW9kZSkpKSIKK8KgICJACisg wqAgdmw8dmxtZW1fb3BfYXR0cj4udlx0JTAsJTMlcDEKKyDCoCB2bDx2bG1lbV9vcF9hdHRyPi52 XHQlMCwlMworIMKgIHZsPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzLCUxLnQKKyDCoCB2czx2bG1l bV9vcF9hdHRyPi52XHQlMywlMCVwMQorIMKgIHZtdi52LnZcdCUwLCUzCisgwqAgdm12LnYudlx0 JTAsJTMiCivCoCAiJiYgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUp CisgwqAgJiYgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbM10sIDxNT0RFPm1vZGUpCisgwqAg JiYgc2F0aXNmaWVzX2NvbnN0cmFpbnRfdnUgKG9wZXJhbmRzWzJdKQorIMKgICYmIElOVFZBTCAo b3BlcmFuZHNbN10pID09IHJpc2N2X3ZlY3Rvcjo6VkxNQVgiCivCoCBbKHNldCAobWF0Y2hfZHVw IDApIChtYXRjaF9kdXAgMykpXQorwqAgIiIKK8KgIFsoc2V0X2F0dHIgInR5cGUiICJ2bGRlLHZs ZGUsdmxkZSx2c3RlLHZpbW92LHZpbW92IikKKyDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4i KV0pCisKKyhkZWZpbmVfaW5zbiAiQHByZWRfc3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9k ZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAwICJtZW1vcnlfb3BlcmFuZCIgwqAgIitt IikKKyAoaWZfdGhlbl9lbHNlOlZJCisgwqAgKHVuc3BlYzo8Vk0+CisgwqAgwqAgWyhtYXRjaF9v cGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxIikKK8KgIMKgIMKgICht YXRjaF9vcGVyYW5kIDMgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCLCoCDCoCAiIMKgIHJLIikKK8Kg IMKgIMKgIChtYXRjaF9vcGVyYW5kIDQgImNvbnN0X2ludF9vcGVyYW5kIiAiwqAgwqAgaSIpCivC oCDCoCDCoCAocmVnOlNJIFZMX1JFR05VTSkKK8KgIMKgIMKgIChyZWc6U0kgVlRZUEVfUkVHTlVN KV0gVU5TUEVDX1RIX1ZTTUVNX09QKQorIMKgIChtYXRjaF9vcGVyYW5kOlZJIDIgInJlZ2lzdGVy X29wZXJhbmQiwqAgIsKgIMKgIHZyIikKKyDCoCAobWF0Y2hfZHVwIDApKSldCivCoCAiVEFSR0VU X1hUSEVBRFZFQ1RPUiIKK8KgICJ2czx2bG1lbV9vcF9hdHRyPi52XHQlMiwlMCVwMSIKK8KgIFso c2V0X2F0dHIgInR5cGUiICJ2c3RlIikKKyDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKQor IMKgIChzZXQgKGF0dHIgImF2bF90eXBlX2lkeCIpIChjb25zdF9pbnQgNCkpCisgwqAgKHNldF9h dHRyICJ2bF9vcF9pZHgiICIzIildKQorCisoZGVmaW5lX2luc24gIkBwcmVkX3N0cmlkZWRfbG9h ZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJ IDAgInJlZ2lzdGVyX29wZXJhbmQiIMKgIMKgIMKgICI9dnIswqAgwqAgdnIswqAgwqAgdmQiKQor IChpZl90aGVuX2Vsc2U6VkkKKyDCoCAodW5zcGVjOjxWTT4KKyDCoCDCoCBbKG1hdGNoX29wZXJh bmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1XYzEsIMKgIFdjMSzCoCDCoCB2bSIp CivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA1ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQiwqAgwqAg IiDCoCBySyzCoCDCoCBySyzCoCDCoCBySyIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA2ICJj b25zdF9pbnRfb3BlcmFuZCIgIsKgIMKgIGksIMKgIMKgIGksIMKgIMKgIGkiKQorwqAgwqAgwqAg KG1hdGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQiICLCoCDCoCBpLCDCoCDCoCBpLCDC oCDCoCBpIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDggImNvbnN0X2ludF9vcGVyYW5kIiAi wqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSIpCivCoCDCoCDCoCAocmVnOlNJIFZMX1JFR05VTSkK K8KgIMKgIMKgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZMU01FTV9PUCkKKyDC oCAodW5zcGVjOlZJCisgwqAgwqAgWyhtYXRjaF9vcGVyYW5kOlZJIDMgIm1lbW9yeV9vcGVyYW5k IsKgICLCoCDCoCBtLCDCoCDCoCBtLCDCoCDCoCBtIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5k IDQgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiIMKgICIgwqAgckoswqAgwqAgckoswqAgwqAgckoi KV0gVU5TUEVDX1RIX1ZMU01FTV9PUCkKKyDCoCAobWF0Y2hfb3BlcmFuZDpWSSAyICJ2ZWN0b3Jf bWVyZ2Vfb3BlcmFuZCLCoCDCoCDCoCAiwqAgwqAgMCzCoCDCoCB2dSzCoCDCoCB2dSIpKSldCivC oCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2bHM8dmxtZW1fb3BfYXR0cj4udlx0JTAsJTMs JXo0JXAxIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZsZHMiKQorIMKgIChzZXRfYXR0ciAibW9k ZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9pbnNuICJAcHJlZF9zdHJpZGVkX3N0b3JlX3dpZHRo PHZsbWVtX29wX2F0dHI+PG1vZGU+IgorwqAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAibWVt b3J5X29wZXJhbmQiIMKgICIrbSIpCisgKGlmX3RoZW5fZWxzZTpWSQorIMKgICh1bnNwZWM6PFZN PgorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2 bVdjMSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQi wqAgwqAgIiDCoCBySyIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3Bl cmFuZCIgIsKgIMKgIGkiKQorwqAgwqAgwqAgKHJlZzpTSSBWTF9SRUdOVU0pCivCoCDCoCDCoCAo cmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WU1NNRU1fT1ApCisgwqAgKHVuc3BlYzpW SQorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZCAyICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIiDCoCAi IMKgIHJKIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kOlZJIDMgInJlZ2lzdGVyX29wZXJhbmQi IMKgIMKgIMKgICIgwqAgdnIiKV0gVU5TUEVDX1RIX1ZTU01FTV9PUCkKKyDCoCAobWF0Y2hfZHVw IDApKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2c3M8dmxtZW1fb3BfYXR0cj4u dlx0JTMsJTAsJXoyJXAxIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZzdHMiKQorIMKgIChzZXRf YXR0ciAibW9kZSIgIjxNT0RFPiIpCisgwqAgKHNldCAoYXR0ciAiYXZsX3R5cGVfaWR4IikgKGNv bnN0X2ludCA1KSldKQorCisoZGVmaW5lX2luc24gIkBwcmVkX2luZGV4ZWRfbG9hZF93aWR0aDx2 bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJIDAgInJlZ2lz dGVyX29wZXJhbmQiwqAgwqAgwqAgIj12ZCwgdnIsdmQsIHZyIikKKyAoaWZfdGhlbl9lbHNlOlZJ CisgwqAgKHVuc3BlYzo8Vk0+CisgwqAgwqAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9y X21hc2tfb3BlcmFuZCLCoCAiIHZtLFdjMSx2bSxXYzEiKQorwqAgwqAgwqAgKG1hdGNoX29wZXJh bmQgNSAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiDCoCDCoCAiIHJLLCBySyxySywgcksiKQorwqAg wqAgwqAgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQiwqAgIsKgIGkswqAgaSwg aSzCoCBpIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDcgImNvbnN0X2ludF9vcGVyYW5kIsKg ICLCoCBpLMKgIGksIGkswqAgaSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA4ICJjb25zdF9p bnRfb3BlcmFuZCLCoCAiwqAgaSzCoCBpLCBpLMKgIGkiKQorwqAgwqAgwqAgKHJlZzpTSSBWTF9S RUdOVU0pCivCoCDCoCDCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WTFhNRU1f T1ApCisgwqAgKHVuc3BlYzpWSQorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZCAzICJwbW9kZV9yZWdf b3JfMF9vcGVyYW5kIsKgIMKgICIgckosIHJKLHJKLCBySiIpCivCoCDCoCDCoCAobWVtOkJMSyAo c2NyYXRjaCkpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZDpWSSA0ICJyZWdpc3Rlcl9vcGVyYW5k IiAiIHZyLCB2cix2ciwgdnIiKV0gVU5TUEVDX1RIX1ZMWE1FTV9PUCkKKyDCoCAobWF0Y2hfb3Bl cmFuZDpWSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgwqAgwqAgwqAgIiB2dSwgdnUsIDAswqAg MCIpKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2bHg8dmxtZW1fb3BfYXR0cj4u dlx0JTAsKCV6MyksJTQlcDEiCivCoCBbKHNldF9hdHRyICJ0eXBlIiAidmxkdXgiKQorIMKgIChz ZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9pbnNuICJAcHJlZF9pbmRleGVk Xzx2bG1lbV9vcmRlcl9hdHRyPnN0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+IgorwqAg WyhzZXQgKG1lbTpCTEsgKHNjcmF0Y2gpKQorICh1bnNwZWM6QkxLCisgwqAgWyh1bnNwZWM6PFZN PgorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDAgInZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2 bVdjMSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQi wqAgwqAgIiDCoCBySyIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3Bl cmFuZCIgIsKgIMKgIGkiKQorwqAgwqAgwqAgKHJlZzpTSSBWTF9SRUdOVU0pCivCoCDCoCDCoCAo cmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WU1hNRU1fT1ApCivCoCDCoCAobWF0Y2hf b3BlcmFuZCAxICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIsKgIMKgIMKgICLCoCBySiIpCivCoCDC oCAobWF0Y2hfb3BlcmFuZDpWSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiwqAgdnIiKQorwqAgwqAg KG1hdGNoX29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3BlcmFuZCLCoCAiwqAgdnIiKV0gVU5TUEVD X1RIX1ZTWE1FTV9PUCkpXQorwqAgIlRBUkdFVF9YVEhFQURWRUNUT1IiCivCoCAidnM8dmxtZW1f b3JkZXJfYXR0cj54PHZsbWVtX29wX2F0dHI+LnZcdCUzLCglejEpLCUyJXAwIgorwqAgWyhzZXRf YXR0ciAidHlwZSIgInZzdHV4IikKKyDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisK KyhkZWZpbmVfZXhwYW5kICJAcHJlZF90aF9leHRyYWN0PG1vZGU+IgorwqAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFuZCIpCisgKHVuc3BlYzo8VkVMPgorIMKg IFsodmVjX3NlbGVjdDo8VkVMPgorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQ6Vl9WTFNJIDEgInJl Z2lzdGVyX29wZXJhbmQiKQorwqAgwqAgwqAgKHBhcmFsbGVsIFsobWF0Y2hfb3BlcmFuZDpESSAy ICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXSkpCivCoCDCoCAocmVnOlNJIFZUWVBFX1JFR05VTSld IFVOU1BFQ19WUFJFRElDQVRFKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK3t9KQorCiso ZGVmaW5lX2luc24gIipwcmVkX3RoX2V4dHJhY3Q8bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3Bl cmFuZDo8VkVMPiAwICJyZWdpc3Rlcl9vcGVyYW5kIiDCoCAiPXIiKQorwqAgKHVuc3BlYzo8VkVM PgorwqAgwqAgWyh2ZWNfc2VsZWN0OjxWRUw+CisgwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQ6Vl9W TFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2ciIpCisgwqAgwqAgwqAgKHBhcmFsbGVsIFsobWF0 Y2hfb3BlcmFuZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXSkpCisgwqAgwqAgKHJlZzpT SSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVlBSRURJQ0FURSkpXQorwqAgIlRBUkdFVF9YVEhFQURW RUNUT1IiCivCoCAidmV4dC54LnZcdCUwLCUxLCUyIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZp bW92dngiKQorIMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2Iu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2MxMmMxMjQ1OTcKLS0t IC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVh ZHZlY3Rvci92bGItdnNiLmMKQEAgLTAsMCArMSw2OCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0g Ki8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAz MmQgLU8zIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIg IiIgfSB9ICovCisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiCisKKy8qCisqKiBmMToKKyoq IHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hCisqKiB0aC52bGJcLnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsYlwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiog dGgudmFkZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rCisqKiB0aC52YWRkXC52 dlx0dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSsKKyoqIHRoLnZzYlwudlx0dlswLTldKyww XChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQp Cit7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xIChpbiwgNCk7 CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJfdl9pMzJtMV90dSAodiwgaW4s IDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMSAodjIsIHYy LCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTFfdHUgKHYz LCB2MiwgdjIsIDQpOworwqAgwqAgX19yaXNjdl90aF92c2Jfdl9pMzJtMSAob3V0LCB2NCwgNCk7 Cit9CisKKy8qCisqKiBmMjoKKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0 YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxp XHR6ZXJvLDQsZTMyLG0xLHRhLG1hCisqKiB0aC52bGIudlx0dlswLTldKywwXChbYS14MC05XStc KSx2MC50CisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSsKKyoq IHRoLnZhZGRcLnZ2XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyp2WzAtOV0rLFxzKnYwLnQK KyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYy ICh2b2lkICogaW4sIHZvaWQgKm91dCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9v bDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZp bnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTEgKGluLCA0KTsKK8KgIMKgIHZpbnQz Mm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xX20gKG1hc2ssIGluLCA0KTsKK8KgIMKg IHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTEgKHYyLCB2MiwgNCk7CivCoCDC oCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z2X2kzMm0xX20gKG1hc2ssIHYzLCB2Mywg NCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzYl92X2kzMm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoK KyoqIGYzOgorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0 aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudnNldGl2bGlcdHplcm8sNCxl MzIsbTEsdHUsbXUKKyoqIHRoLnZsYlwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgu dmxiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAorKiogdGgudmFkZFwudnZcdHZbMC05 XSssXHMqdlswLTldKyxccyp2WzAtOV0rCisqKiB0aC52YWRkXC52dlx0dlsxLTldWzAtOV0/LFxz KnZbMC05XSssXHMqdlswLTldKyxccyp2MC50CisqKiB0aC52c2Iudlx0dlswLTldKywwXChbYS14 MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQpCit7CivC oCDCoCB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xhdGls ZSAoIiI6OjoibWVtb3J5Iik7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYl92 X2kzMm0xIChpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJfdl9p MzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYzID0gX19yaXNj dl92YWRkX3Z2X2kzMm0xICh2MiwgdjIsIDQpOworwqAgwqAgdmludDMybTFfdCB2NCA9IF9fcmlz Y3ZfdmFkZF92dl9pMzJtMV90dW11IChtYXNrLCB2MywgdjIsIHYyLCA0KTsKK8KgIMKgIF9fcmlz Y3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMwYmVmMzY5Mzc1Ci0tLSAvZGV2 L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3IvdmxidS12c2IuYwpAQCAtMCwwICsxLDY4IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwor LyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAt TzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9 IH0gKi8KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCIKKworLyoKKyoqIGYxOgorKiogdGgu dnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRoLnZsYnVcLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkKKyoqIHRoLnZsYnVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRo LnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsw LTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnNiXC52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3Qg eCkKK3sKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4s IDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMV90dSAo diwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEg KHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMy bTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNiX3ZfdTMybTEgKG91 dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVy byxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0 aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiogdGgudmxidS52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYw LnQKKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lk IGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJf dCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1v cnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4s IDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMV9tICht YXNrLCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJt MSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNiX3ZfdTMybTEg KG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSss emVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisq KiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmxidVwudlx0dlswLTld KywwXChbYS14MC05XStcKQorKiogdGgudmxidS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYw LnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRk XC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzYi52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYzICh2b2lkICogaW4s IHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9v bDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1 aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVp bnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMV90dW11IChtYXNrLCB2LCBpbiwg NCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0x NiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dW11 IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzYl92X3UzMm0xIChv dXQsIHY0LCA0KTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uM2M4YjVjY2MxNmIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMKQEAgLTAsMCAr MSw2OCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovCisvKiB7IGRnLWZpbmFs IHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovCisjaW5jbHVkZSAicmlzY3Zf dGhfdmVjdG9yLmgiCisKKy8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0x LHR1LG1hCisqKiB0aC52bGhcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsaFwu dlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlsw LTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2Cisq KiB0aC52c2hcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjEg KHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CivCoCDCoCB2aW50MzJtMV90IHYg PSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xIChpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYyID0g X19yaXNjdl90aF92bGhfdl9pMzJtMV90dSAodiwgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2 MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2aW50MzJtMV90 IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1ICh2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBf X3Jpc2N2X3RoX3ZzaF92X2kzMm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYyOgorKiog dGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlsw LTldKywwXChbYS14MC05XStcKQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdGEsbWEK KyoqIHRoLnZsaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZp XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/ LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpCisqKiByZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJf dCB4KQoreworwqAgwqAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CivCoCDCoCBh c20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworwqAgwqAgdmludDMybTFfdCB2ID0gX19yaXNj dl90aF92bGhfdl9pMzJtMSAoaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MiA9IF9fcmlzY3Zf dGhfdmxoX3ZfaTMybTFfbSAobWFzaywgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9f cmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0g X19yaXNjdl92YWRkX3Z4X2kzMm0xX20gKG1hc2ssIHYzLCAtMTYsIDQpOworwqAgwqAgX19yaXNj dl90aF92c2hfdl9pMzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMzoKKyoqIHRoLnZz ZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11CisqKiB0 aC52bGhcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsaC52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYw LnQKKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lk IGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQoreworwqAgwqAgdmJvb2wzMl90 IG1hc2sgPSAqKHZib29sMzJfdCopaW47CivCoCDCoCBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9y eSIpOworwqAgwqAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGhfdl9pMzJtMSAoaW4sIDQp OworwqAgwqAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTFfdHVtdSAobWFz aywgdiwgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJt MSAodjIsIC0xNiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kz Mm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNoX3Zf aTMybTEgKG91dCwgdjQsIDQpOworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI3YzAwNDA0ZjE4Ci0tLSAvZGV2L251bGwKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2gu YwpAQCAtMCwwICsxLDY4IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8KKy8q IHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNs dWRlICJyaXNjdl90aF92ZWN0b3IuaCIKKworLyoKKyoqIGYxOgorKiogdGgudnNldGl2bGlcdHpl cm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRoLnZsaHVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkK KyoqIHRoLnZsaHVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZhZGRcLnZpXHR2 WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAt OV0rLFxzKi0xNgorKiogdGgudnNoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQK KyovCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKg IHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMSAoaW4sIDQpOworwqAgwqAg dnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV90dSAodiwgaW4sIDQpOwor wqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQp OworwqAgwqAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHUgKHYzLCB2 MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNoX3ZfdTMybTEgKG91dCwgdjQsIDQpOwor fQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEs bWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0 emVybyw0LGUzMixtMSx0YSxtYQorKiogdGgudmxodS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp LHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52 YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZz aC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYyICh2b2lkICog aW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2 Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKg IHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMSAoaW4sIDQpOworwqAgwqAg dnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV9tIChtYXNrLCBpbiwgNCk7 CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwg NCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV9tIChtYXNr LCB2MywgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNoX3ZfdTMybTEgKG91dCwgdjQsIDQp OworfQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQs dGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZs aVx0emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmxodVwudlx0dlswLTldKywwXChbYS14MC05 XStcKQorKiogdGgudmxodS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZh ZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTld WzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwg dWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOwor wqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYg PSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIg PSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7CivCoCDCoCB2 dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDC oCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dW11IChtYXNrLCB2Mywg djIsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzaF92X3UzMm0xIChvdXQsIHY0LCA0KTsK K30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3Zsdy12c3cuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRo ZWFkdmVjdG9yL3Zsdy12c3cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uMTdhNTMwMTJhY2YKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmMKQEAgLTAsMCArMSw2OCBAQAorLyog eyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVh ZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVu Y3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovCisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgi CisKKy8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hCisqKiB0 aC52bHdcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsd1wudlx0dlswLTldKyww XChbYS14MC05XStcKQorKiogdGgudmFkZFwudnhcdHZbMC05XSssXHMqdlswLTldKyxccypbYS14 MC05XSsKKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqW2EteDAtOV0rCisq KiB0aC52c3dcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjEg KHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CivCoCDCoCB2aW50MzJtMV90IHYg PSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYyID0g X19yaXNjdl90aF92bHdfdl9pMzJtMV90dSAodiwgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2 MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIHgsIDQpOworwqAgwqAgdmludDMybTFfdCB2 NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dSAodjMsIHYyLCB4LCA0KTsKK8KgIMKgIF9fcmlz Y3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52 c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiog dGgudmx3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAorKiogdGgudmFkZFwudnhcdHZb MC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsKKyoqIHRoLnZhZGRcLnZ4XHR2WzEtOV1bMC05 XT8sXHMqdlswLTldKyxccypbYS14MC05XSssXHMqdjAudAorKiogdGgudnN3LnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0 LCBpbnQzMl90IHgpCit7CivCoCDCoCB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsK K8KgIMKgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CivCoCDCoCB2aW50MzJtMV90IHYg PSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYyID0g X19yaXNjdl90aF92bHdfdl9pMzJtMV9tIChtYXNrLCBpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90 IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgeCwgNCk7CivCoCDCoCB2aW50MzJtMV90 IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX20gKG1hc2ssIHYzLCB4LCA0KTsKK8KgIMKgIF9f cmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0 aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQor KiogdGgudmx3XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52bHcudlx0dlswLTld KywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRkXC52eFx0dlswLTldKyxccyp2WzAtOV0r LFxzKlthLXgwLTldKworKiogdGgudmFkZFwudnhcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxz KlthLXgwLTldKyxccyp2MC50CisqKiB0aC52c3cudlx0dlswLTldKywwXChbYS14MC05XStcKQor KiogcmV0CisqLwordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkKK3sK K8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0 aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3 X3ZfaTMybTEgKGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd192 X2kzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjMgPSBfX3Jp c2N2X3ZhZGRfdnhfaTMybTEgKHYyLCB4LCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jp c2N2X3ZhZGRfdnhfaTMybTFfdHVtdSAobWFzaywgdjMsIHYyLCB4LCA0KTsKK8KgIMKgIF9fcmlz Y3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIxODdjZmM4NTJiCi0tLSAvZGV2 L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3Ivdmx3dS12c3cuYwpAQCAtMCwwICsxLDY4IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwor LyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAt TzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9 IH0gKi8KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCIKKworLyoKKyoqIGYxOgorKiogdGgu dnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRoLnZsd3VcLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkKKyoqIHRoLnZsd3VcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRo LnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsw LTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnN3XC52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3Qg eCkKK3sKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMSAoaW4s IDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMV90dSAo diwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEg KHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMy bTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3X3ZfdTMybTEgKG91 dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVy byxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0 aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiogdGgudmx3dS52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYw LnQKKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lk IGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJf dCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1v cnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMSAoaW4s IDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMV9tICht YXNrLCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJt MSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3X3ZfdTMybTEg KG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSss emVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisq KiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmx3dVwudlx0dlswLTld KywwXChbYS14MC05XStcKQorKiogdGgudmx3dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYw LnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRk XC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzdy52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYzICh2b2lkICogaW4s IHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9v bDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1 aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVp bnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMV90dW11IChtYXNrLCB2LCBpbiwg NCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0x NiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dW11 IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3Zzd192X3UzMm0xIChv dXQsIHY0LCA0KTsKK30KLS0gCjIuMTcuMQogCiAKwqAKwqAKwqAKwqAKwqAKwqAKCgo=