From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-119.freemail.mail.aliyun.com (out30-119.freemail.mail.aliyun.com [115.124.30.119]) by sourceware.org (Postfix) with ESMTPS id 9557C385800A for ; Thu, 11 Jan 2024 09:14:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9557C385800A 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 9557C385800A Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=115.124.30.119 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704964483; cv=none; b=RyF+MA56BGEg+stfWI4Ett4EMMF+i0KtODFxuSEltf/xq00OfJ2l5A2W9/X1uTwq6ZzXubLkX9xk8DkOZe7z3UG87gT6W9j1o+UaYBX7xdbrQxWdo6wgqv2dED+yx03HIhXusUwLZlraW7WN16jrKWV1Xm2d2WEecafjV3whXBU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704964483; c=relaxed/simple; bh=6jkACxLdpU1xB1t2PwUQHD6cCuS66UhnNElEzdzfZRM=; h=Date:From:To:Message-ID:Subject:MIME-Version; b=s1JuBlLA0vvjzJB8ZuXBrKYVVYgiDvHhcKJkt99iCBEFTv5qtwdPU6BvI20u61bTzUETpN+uM8xf8qTQaJmjB/PgM+eIdGz1vCKVVku8yBmQ0Tton/UIS4qWN5Q/l97e/uqMrYV5GzpcfIzbTR3Dv2qTGfyNP/oknVxzjPDmH/Q= ARC-Authentication-Results: i=1; server2.sourceware.org X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R151e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046059;MF=cooper.joshua@linux.alibaba.com;NM=1;PH=DW;RN=10;SR=0;TI=W4_0.2.3_v5ForWebDing_212504DB_1704964463557_o7001c355; Received: from WS-web (cooper.joshua@linux.alibaba.com[W4_0.2.3_v5ForWebDing_212504DB_1704964463557_o7001c355]) at Thu, 11 Jan 2024 17:14:23 +0800 Date: Thu, 11 Jan 2024 17:14:23 +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: Subject: =?UTF-8?B?UmXvvJpbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1z?= =?UTF-8?B?cGVjaWZpYyBpbnRyaW5zaWNzLg==?= X-Mailer: [Alimail-Mailagent revision 79][W4_0.2.3][v5ForWebDing][Chrome] MIME-Version: 1.0 x-aliyun-im-through: {"mailThroughImNew":true} References: x-aliyun-mail-creator: W4_0.2.3_v5ForWebDing_SFRTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xMjAuMC4wLjA=Ch In-Reply-To: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-18.2 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,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: VG8gYmUgc3BlY2lmaWMswqBpbiBDU0UgcGFzcywgdGhlIGluaXRpYWwgcGF0dGVybiB3aWxsIGJl IG9wdGltaXplZCBpbnRvIHRoZSBzZXh0L3pleHQgcGF0dGVybi4KCgoKCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrlj5Hk u7bkurrvvJpqb3NodWEgPGNvb3Blci5qb3NodWFAbGludXguYWxpYmFiYS5jb20+CuWPkemAgeaX tumXtO+8mjIwMjTlubQx5pyIMTHml6Uo5pif5pyf5ZubKSAxNzoxMQrmlLbku7bkurrvvJoianV6 aGUuemhvbmdAcml2YWkuYWkiPGp1emhlLnpob25nQHJpdmFpLmFpPjsgImdjYy1wYXRjaGVzIjxn Y2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4K5oqE44CA6YCB77yaSmltIFdpbHNvbjxqaW0ud2lsc29u LmdjY0BnbWFpbC5jb20+OyBwYWxtZXI8cGFsbWVyQGRhYmJlbHQuY29tPjsgYW5kcmV3PGFuZHJl d0BzaWZpdmUuY29tPjsgInBoaWxpcHAudG9tc2ljaCI8cGhpbGlwcC50b21zaWNoQHZydWxsLmV1 PjsgamVmZnJleWFsYXc8amVmZnJleWFsYXdAZ21haWwuY29tPjsgImNocmlzdG9waC5tdWVsbG5l ciI8Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1PjsgamlubWE8amlubWFAbGludXguYWxpYmFi YS5jb20+OyAiY29vcGVyLnF1Ijxjb29wZXIucXVAbGludXguYWxpYmFiYS5jb20+CuS4u+OAgOmi mO+8mlJl77yaW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3It c3BlY2lmaWMgaW50cmluc2ljcy4KCgpzZXh0L3pleHQgd2lsbCBiZSBnZW5lcmF0ZWQgaW4gTzIg ZXZlbiB3aXRob3V0IGNvcnJlc3BvbmRpbmcgaW50cmluc2ljcy4KCgoKCgoKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCuWP keS7tuS6uu+8mmp1emhlLnpob25nQHJpdmFpLmFpIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4K5Y+R 6YCB5pe26Ze077yaMjAyNOW5tDHmnIgxMeaXpSjmmJ/mnJ/lm5spIDE3OjA3CuaUtuS7tuS6uu+8 miJjb29wZXIuam9zaHVhIjxjb29wZXIuam9zaHVhQGxpbnV4LmFsaWJhYmEuY29tPjsgImdjYy1w YXRjaGVzIjxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4K5oqEIOmAge+8mkppbSBXaWxzb248amlt LndpbHNvbi5nY2NAZ21haWwuY29tPjsgcGFsbWVyPHBhbG1lckBkYWJiZWx0LmNvbT47IGFuZHJl dzxhbmRyZXdAc2lmaXZlLmNvbT47ICJwaGlsaXBwLnRvbXNpY2giPHBoaWxpcHAudG9tc2ljaEB2 cnVsbC5ldT47IGplZmZyZXlhbGF3PGplZmZyZXlhbGF3QGdtYWlsLmNvbT47ICJjaHJpc3RvcGgu bXVlbGxuZXIiPGNocmlzdG9waC5tdWVsbG5lckB2cnVsbC5ldT47ICJjb29wZXIuam9zaHVhIjxj b29wZXIuam9zaHVhQGxpbnV4LmFsaWJhYmEuY29tPjsgamlubWE8amlubWFAbGludXguYWxpYmFi YS5jb20+OyAiY29vcGVyLnF1Ijxjb29wZXIucXVAbGludXguYWxpYmFiYS5jb20+CuS4uyDpopjv vJpSZTogW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3Bl Y2lmaWMgaW50cmluc2ljcy4KCgplbnVtIHJlcXVpcmVkX2V4dAp7CiDCoCBWRUNUT1JfRVhULCDC oCAvKiBWZWN0b3IgZXh0ZW5zaW9uICovCivCoCBYVEhFQURWRUNUT1JfRVhULCDCoCAvKiBYVGhl YWRWZWN0b3IgZXh0ZW5zaW9uICovCiDCoCBaVkJCX0VYVCzCoCDCoCAvKiBDcnl0byB2ZWN0b3Ig WnZiYiBzdWItZXh0ICovCiDCoCBaVkJCX09SX1pWS0JfRVhULCAvKiBDcnl0byB2ZWN0b3IgWnZi YiBvciB6dmtiIHN1Yi1leHQgKi8KIMKgIFpWQkNfRVhULMKgIMKgIC8qIENyeXB0byB2ZWN0b3Ig WnZiYyBzdWItZXh0ICovCgoKCkFkZCB0aGVhZHZlY3RvciB0byB0aGUgZW5kIG9mIHRoZSBlbnVt LgoKCivCoCDCoCDCoCBjYXNlIFhUSEVBRFZFQ1RPUl9FWFQ6CisgcmV0dXJuIFRBUkdFVF9YVEhF QURWRUNUT1I7CgoKClNhbWUuCgoKK8KgICImJiByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1sw XSwgPE1PREU+bW9kZSkKKyDCoCAmJiByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1szXSwgPE1P REU+bW9kZSkKKyDCoCAmJiBzYXRpc2ZpZXNfY29uc3RyYWludF92dSAob3BlcmFuZHNbMl0pCisg wqAgJiYgSU5UVkFMIChvcGVyYW5kc1s3XSkgPT0gcmlzY3ZfdmVjdG9yOjpWTE1BWCIKCgoKWW91 IGNhbiB1c2Ugd2hvbGVfcmVnX3RvX3JlZ19tb3ZlX3AKCgoKCkJ0dywgSSByZXZpZXcgYWdhaW4g OiDCoCBSSVNDLVY6IEhhbmRsZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIFhUaGVhZHZlY3RvciBhbmQg VmVjdG9yCgoKwqAgwqAgKGFueV9leHRlbmQ6VldFWFRJwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQ6 PFZfRE9VQkxFX1RSVU5DPiAzICJyZWdpc3Rlcl9vcGVyYW5kIiDCoCAiVzIxLFcyMSxXMjEsVzIx LFc0MixXNDIsVzQyLFc0MixXODQsVzg0LFc4NCxXODQsIMKgIHZyLCDCoCB2ciIpKcKgIMKgICht YXRjaF9vcGVyYW5kOlZXRVhUSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgwqAgwqAgwqAgwqAg wqAgIiB2dSwgdnUswqAgMCzCoCAwLCB2dSwgdnUswqAgMCzCoCAwLCB2dSwgdnUswqAgMCzCoCAw LCDCoCB2dSzCoCDCoCAwIikpKV0twqAgIlRBUkdFVF9WRUNUT1IiK8KgICJUQVJHRVRfVkVDVE9S ICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SIiDCoCAidjxzej5leHQudmYyXHQlMCwlMyVwMSIgwqAg WyhzZXRfYXR0ciAidHlwZSIgInZleHQiKcKgIMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIp QEAgLTM3MTMsNyArMzc0NCw3IEBAwqAgwqAgKGFueV9leHRlbmQ6VlFFWFRJwqAgwqAgwqAgKG1h dGNoX29wZXJhbmQ6PFZfUVVBRF9UUlVOQz4gMyAicmVnaXN0ZXJfb3BlcmFuZCIgwqAgIlc0MyxX NDMsVzQzLFc0MyxXODYsVzg2LFc4NixXODYsIMKgIHZyLCDCoCB2ciIpKcKgIMKgIChtYXRjaF9v cGVyYW5kOlZRRVhUSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgwqAgwqAgwqAgwqAgIiB2dSwg dnUswqAgMCzCoCAwLCB2dSwgdnUswqAgMCzCoCAwLCDCoCB2dSzCoCDCoCAwIikpKV0twqAgIlRB UkdFVF9WRUNUT1IiK8KgICJUQVJHRVRfVkVDVE9SICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SIiDC oCAidjxzej5leHQudmY0XHQlMCwlMyVwMSIgwqAgWyhzZXRfYXR0ciAidHlwZSIgInZleHQiKcKg IMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpQEAgLTM3MzQsNyArMzc2NSw3IEBAwqAgwqAg KGFueV9leHRlbmQ6Vk9FWFRJwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQ6PFZfT0NUX1RSVU5DPiAz ICJyZWdpc3Rlcl9vcGVyYW5kIiDCoCAiVzg3LFc4NyxXODcsVzg3LCDCoCB2ciwgwqAgdnIiKSnC oCDCoCAobWF0Y2hfb3BlcmFuZDpWT0VYVEkgMiAidmVjdG9yX21lcmdlX29wZXJhbmQiwqAgwqAg wqAgwqAgIiB2dSwgdnUswqAgMCzCoCAwLCDCoCB2dSzCoCDCoCAwIikpKV0twqAgIlRBUkdFVF9W RUNUT1IiK8KgICJUQVJHRVRfVkVDVE9SICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SIiDCoCAidjxz ej5leHQudmY4XHQlMCwlMyVwMSIgwqAgWyhzZXRfYXR0ciAidHlwZSIgInZleHQiKcKgIMKgIChz ZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpCldoeSBkbyB5b3UgYWRkIHRoZXNlICFUQVJHRVJUX1hU SEVBRFZFQ1JUT1IgPwoKCmp1emhlLnpob25nQHJpdmFpLmFpCgogCkZyb206IEp1biBTaGEgKEpv c2h1YSkKRGF0ZTogMjAyNC0wMS0xMSAxNjo0NgpUbzogZ2NjLXBhdGNoZXMKQ0M6IGppbS53aWxz b24uZ2NjOyBwYWxtZXI7IGFuZHJldzsgcGhpbGlwcC50b21zaWNoOyBqZWZmcmV5YWxhdzsgY2hy aXN0b3BoLm11ZWxsbmVyOyBqdXpoZS56aG9uZzsgSnVuIFNoYSAoSm9zaHVhKTsgSmluIE1hOyBY aWFubWlhbyBRdQpTdWJqZWN0OiBbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0 aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLgoKVGhpcyBwYXRjaCBvbmx5IGludm9sdmVz IHRoZSBnZW5lcmF0aW9uIG9mIHh0aGVhZHZlY3RvcgpzcGVjaWFsIGxvYWQvc3RvcmUgaW5zdHJ1 Y3Rpb25zIGFuZCB2ZXh0IGluc3RydWN0aW9ucy4KIApnY2MvQ2hhbmdlTG9nOgogCiAqIGNvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MKIChjbGFzcyB0aF9sb2Fkc3Rv cmVfd2lkdGgpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gYmFzZXMuCiAoY2xhc3MgdGhfZXh0cmFjdCk6 IERlZmluZSBuZXcgYnVpbHRpbiBiYXNlcy4KIChCQVNFKTogRGVmaW5lIG5ldyBidWlsdGluIGJh c2VzLgogKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmg6CiBEZWZp bmUgbmV3IGJ1aWx0aW4gY2xhc3MuCiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtc2hhcGVzLmNjCiAoc3RydWN0IHRoX2xvYWRzdG9yZV93aWR0aF9kZWYpOiBEZWZpbmUgbmV3 IGJ1aWx0aW4gc2hhcGVzLgogKHN0cnVjdCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aF9kZWYp OgogRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4KIChzdHJ1Y3QgdGhfZXh0cmFjdF9kZWYpOiBE ZWZpbmUgbmV3IGJ1aWx0aW4gc2hhcGVzLgogKFNIQVBFKTogRGVmaW5lIG5ldyBidWlsdGluIHNo YXBlcy4KICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaDoKIERl ZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuCiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMuY2MgKERFRl9SVlZfRlVOQ1RJT04pOgogKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLmggKGVudW0gcmVxdWlyZWRfZXh0KToKIChzdHJ1Y3QgZnVuY3Rpb25fZ3JvdXBf aW5mbyk6CiAqIGNvbmZpZy9yaXNjdi90LXJpc2N2OiBBZGQgdGhlYWQtdmVjdG9yLWJ1aWx0aW5z LWZ1bmN0aW9ucy5kZWYKICogY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZAogKEBwcmVkX21v dl93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPik6IEFkZCBuZXcgcGF0dGVybnMuCiAoKnByZWRf bW92X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuCiAoQHByZWRfc3RvcmVf d2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lzZS4KIChAcHJlZF9zdHJpZGVkX2xv YWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lzZS4KIChAcHJlZF9zdHJpZGVk X3N0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuCiAoQHByZWRfaW5k ZXhlZF9sb2FkX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuCiAoQHByZWRf aW5kZXhlZF88dmxtZW1fb3JkZXJfYXR0cj5zdG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2Rl Pik6CiAoQHByZWRfdGhfZXh0cmFjdDxtb2RlPik6IExpa2V3aXNlLgogKCpwcmVkX3RoX2V4dHJh Y3Q8bW9kZT4pOiBMaWtld2lzZS4KICogY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlu cy1mdW5jdGlvbnMuZGVmOiBOZXcgZmlsZS4KIApnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKIAog KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5jOiBOZXcgdGVzdC4K ICogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmM6IE5ldyB0ZXN0 LgogKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jOiBOZXcgdGVz dC4KICogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmM6IE5ldyB0 ZXN0LgogKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jOiBOZXcg dGVzdC4KICogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmM6IE5l dyB0ZXN0LgogCkNvLWF1dGhvcmVkLWJ5OiBKaW4gTWEgPGppbm1hQGxpbnV4LmFsaWJhYmEuY29t PgpDby1hdXRob3JlZC1ieTogWGlhbm1pYW8gUXUgPGNvb3Blci5xdUBsaW51eC5hbGliYWJhLmNv bT4KQ28tYXV0aG9yZWQtYnk6IENocmlzdG9waCBNw7xsbG5lciA8Y2hyaXN0b3BoLm11ZWxsbmVy QHZydWxsLmV1PgotLS0KIC4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2PC oCDCoCDCoCB8IDEzOSArKysrKysrKysrCiAuLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LWJhc2VzLmggwqAgwqAgwqAgfMKgIDMxICsrKwogLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy1zaGFwZXMuY2MgwqAgwqAgfCAxNjAgKysrKysrKysrKysKIC4uLi9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmjCoCDCoCDCoCB8IMKgIDMgKwogZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgwqAgwqAgfMKgIDcwICsrKysrCiBnY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5owqAgwqAgwqAgfCDCoCAzICsKIGdjYy9jb25m aWcvcmlzY3YvdC1yaXNjdsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgMSAr CiAuLi4vcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgfMKgIDM5ICsr KwogZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWTCoCDCoCDCoCDCoCDCoCDCoCDCoCB8 IDI1MyArKysrKysrKysrKysrKysrKysKIC4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12 c2IuY8KgIMKgIMKgIMKgIMKgIHzCoCA2OCArKysrKwogLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3IvdmxidS12c2IuYyDCoCDCoCDCoCDCoCB8wqAgNjggKysrKysKIC4uLi9yaXNjdi9ydnYveHRo ZWFkdmVjdG9yL3ZsaC12c2guY8KgIMKgIMKgIMKgIMKgIHzCoCA2OCArKysrKwogLi4uL3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYyDCoCDCoCDCoCDCoCB8wqAgNjggKysrKysKIC4u Li9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuY8KgIMKgIMKgIMKgIMKgIHzCoCA2OCAr KysrKwogLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYyDCoCDCoCDCoCDCoCB8 wqAgNjggKysrKysKIDE1IGZpbGVzIGNoYW5nZWQsIDExMDcgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0 aW9ucy5kZWYKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3IvdmxoLXZzaC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMKIApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy1iYXNlcy5jYwppbmRleCA0NmYxYTFkYTMzZS4uM2ViYTc5NDM3NTcgMTAw NjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNj CisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjCkBA IC0yMTI1LDYgKzIxMjUsODMgQEAgcHVibGljOgogwqAgfQogfTsKIAorLyogSW1wbGVtZW50cwor ICogdGgudmwoYi9oL3cpW3VdLnYvdGgudnMoYi9oL3cpW3VdLnYvdGgudmxzKGIvaC93KVt1XS52 L3RoLnZzcyhiL2gvdylbdV0udi8KKyAqIHRoLnZseChiL2gvdylbdV0udi90aC52c1t1XXgoYi9o L3cpLnYKKyAqIGNvZGVnZW4uwqAgKi8KK3RlbXBsYXRlPGJvb2wgU1RPUkVfUCwgbHN0X3R5cGUg TFNUX1RZUEUsIGludCBVTlNQRUM+CitjbGFzcyB0aF9sb2Fkc3RvcmVfd2lkdGggOiBwdWJsaWMg ZnVuY3Rpb25fYmFzZQoreworcHVibGljOgorwqAgYm9vbCBhcHBseV90YWlsX3BvbGljeV9wICgp IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICFTVE9SRV9QOyB9CivCoCBib29sIGFwcGx5X21hc2tf cG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIVNUT1JFX1A7IH0KKworwqAgdW5z aWduZWQgaW50IGNhbGxfcHJvcGVydGllcyAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJikgY29u c3Qgb3ZlcnJpZGUKK8KgIHsKK8KgIMKgIGlmIChTVE9SRV9QKQorwqAgwqAgwqAgcmV0dXJuIENQ X1dSSVRFX01FTU9SWTsKK8KgIMKgIGVsc2UKK8KgIMKgIMKgIHJldHVybiBDUF9SRUFEX01FTU9S WTsKK8KgIH0KKworwqAgYm9vbCBjYW5fYmVfb3ZlcmxvYWRlZF9wIChlbnVtIHByZWRpY2F0aW9u X3R5cGVfaW5kZXggcHJlZCkgY29uc3Qgb3ZlcnJpZGUKK8KgIHsKK8KgIMKgIGlmIChTVE9SRV9Q IHx8IExTVF9UWVBFID09IExTVF9JTkRFWEVEKQorwqAgwqAgwqAgcmV0dXJuIHRydWU7CivCoCDC oCByZXR1cm4gcHJlZCAhPSBQUkVEX1RZUEVfbm9uZTsKK8KgIH0KKworwqAgcnR4IGV4cGFuZCAo ZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlCivCoCB7CivCoCDCoCBnY2NfYXNz ZXJ0IChUQVJHRVRfWFRIRUFEVkVDVE9SKTsKK8KgIMKgIGlmIChMU1RfVFlQRSA9PSBMU1RfSU5E RVhFRCkKK8KgIMKgIMKgIHsKKyBpZiAoU1RPUkVfUCkKKyDCoCByZXR1cm4gZS51c2VfZXhhY3Rf aW5zbiAoCisgwqAgwqAgY29kZV9mb3JfcHJlZF9pbmRleGVkX3N0b3JlX3dpZHRoIChVTlNQRUMs IFVOU1BFQywKK8KgIMKgIMKgIMKgIMKgIMKgIGUudmVjdG9yX21vZGUgKCkpKTsKKyBlbHNlCisg wqAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24gKAorIMKgIMKgIGNvZGVfZm9yX3ByZWRfaW5kZXhl ZF9sb2FkX3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsKK8KgIMKgIMKgIH0KK8Kg IMKgIGVsc2UgaWYgKExTVF9UWVBFID09IExTVF9TVFJJREVEKQorwqAgwqAgwqAgeworIGlmIChT VE9SRV9QKQorIMKgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX3N0b3JlX2luc24gKAorIMKgIMKg IGNvZGVfZm9yX3ByZWRfc3RyaWRlZF9zdG9yZV93aWR0aCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2Rl ICgpKSk7CisgZWxzZQorIMKgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX2xvYWRfaW5zbiAoCisg wqAgwqAgY29kZV9mb3JfcHJlZF9zdHJpZGVkX2xvYWRfd2lkdGggKFVOU1BFQywgZS52ZWN0b3Jf bW9kZSAoKSkpOworwqAgwqAgwqAgfQorwqAgwqAgZWxzZQorwqAgwqAgwqAgeworIGlmIChTVE9S RV9QKQorIMKgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX3N0b3JlX2luc24gKAorIMKgIMKgIGNv ZGVfZm9yX3ByZWRfc3RvcmVfd2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOworIGVs c2UKKyDCoCByZXR1cm4gZS51c2VfY29udGlndW91c19sb2FkX2luc24gKAorIMKgIMKgIGNvZGVf Zm9yX3ByZWRfbW92X3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsKK8KgIMKgIMKg IH0KK8KgIH0KK307CisKKy8qIEltcGxlbWVudHMgdmV4dC54LnYuwqAgKi8KK2NsYXNzIHRoX2V4 dHJhY3QgOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQoreworcHVibGljOgorwqAgYm9vbCBhcHBseV92 bF9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CivCoCBib29sIGFwcGx5X3Rh aWxfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KK8KgIGJvb2wg YXBwbHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQor wqAgYm9vbCB1c2VfbWFza19wcmVkaWNhdGlvbl9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu IGZhbHNlOyB9CivCoCBib29sIGhhc19tZXJnZV9vcGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJpZGUg eyByZXR1cm4gZmFsc2U7IH0KKworwqAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUp IGNvbnN0IG92ZXJyaWRlCivCoCB7CivCoCDCoCBnY2NfYXNzZXJ0IChUQVJHRVRfWFRIRUFEVkVD VE9SKTsKK8KgIMKgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuIChjb2RlX2Zvcl9wcmVkX3RoX2V4 dHJhY3QgKGUudmVjdG9yX21vZGUgKCkpKTsKK8KgIH0KK307CisKIC8qIEJlbG93IGltcGxlbWVu dHMgYXJlIHZlY3RvciBjcnlwdG8gKi8KIC8qIEltcGxlbWVudHMgdmFuZG4uW3Z2LHZ4XSAqLwog Y2xhc3MgdmFuZG4gOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQpAQCAtMjU4Nyw2ICsyNjY0LDM3IEBA IHN0YXRpYyBDT05TVEVYUFIgY29uc3Qgc2VnX2luZGV4ZWRfbG9hZDxVTlNQRUNfT1JERVJFRD4g dmxveHNlZ19vYmo7CiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHNlZ19pbmRleGVkX3N0b3JlPFVO U1BFQ19VTk9SREVSRUQ+IHZzdXhzZWdfb2JqOwogc3RhdGljIENPTlNURVhQUiBjb25zdCBzZWdf aW5kZXhlZF9zdG9yZTxVTlNQRUNfT1JERVJFRD4gdnNveHNlZ19vYmo7CiBzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHZsc2VnZmYgdmxzZWdmZl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxCPiB2 bGJfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2Us IExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMQlU+IHZsYnVfb2JqOworc3RhdGljIENPTlNU RVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5T UEVDX1RIX1ZMSD4gdmxoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEhVPiB2bGh1X29iajsK K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5J VF9TVFJJREUsIFVOU1BFQ19USF9WTFc+IHZsd19vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxX VT4gdmx3dV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0 cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEI+IHZzYl9vYmo7CitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVO U1BFQ19USF9WTEg+IHZzaF9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9y ZV93aWR0aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTFc+IHZzd19vYmo7Citz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklE RUQsIFVOU1BFQ19USF9WTFNCPiB2bHNiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhf bG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0JVPiB2bHNi dV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwg TFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNIPiB2bHNoX29iajsKK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZM U0hVPiB2bHNodV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNXPiB2bHN3X29iajsKK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5T UEVDX1RIX1ZMU1dVPiB2bHN3dV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRz dG9yZV93aWR0aDx0cnVlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0I+IHZzc2Jfb2JqOwor c3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1NUUklE RUQsIFVOU1BFQ19USF9WTFNIPiB2c3NoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhf bG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTVz4gdnNzd19v Ymo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNU X0lOREVYRUQsIFVOU1BFQ19USF9WTFhCPiB2bHhiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEJV PiB2bHhidV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxm YWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhIPiB2bHhoX29iajsKK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVD X1RIX1ZMWEhVPiB2bHhodV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9y ZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhXPiB2bHh3X29iajsKK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhF RCwgVU5TUEVDX1RIX1ZMWFdVPiB2bHh3dV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEI+IHZzeGJf b2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNU X0lOREVYRUQsIFVOU1BFQ19USF9WTFhIPiB2c3hoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYVz4g dnN4d19vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVl LCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZTVVhCPiB2c3V4Yl9vYmo7CitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RI X1ZTVVhIPiB2c3V4aF9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZTVVhXPiB2c3V4d19vYmo7CitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2V4dHJhY3QgdmV4dF94X3Zfb2JqOwogCiAvKiBDcnlwdG8g VmVjdG9yICovCiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZhbmRuIHZhbmRuX29iajsKQEAgLTI4 NzgsNiArMjk4NiwzNyBAQCBCQVNFICh2bG94c2VnKQogQkFTRSAodnN1eHNlZykKIEJBU0UgKHZz b3hzZWcpCiBCQVNFICh2bHNlZ2ZmKQorQkFTRSAodmxiKQorQkFTRSAodmxoKQorQkFTRSAodmx3 KQorQkFTRSAodmxidSkKK0JBU0UgKHZsaHUpCitCQVNFICh2bHd1KQorQkFTRSAodnNiKQorQkFT RSAodnNoKQorQkFTRSAodnN3KQorQkFTRSAodmxzYikKK0JBU0UgKHZsc2gpCitCQVNFICh2bHN3 KQorQkFTRSAodmxzYnUpCitCQVNFICh2bHNodSkKK0JBU0UgKHZsc3d1KQorQkFTRSAodnNzYikK K0JBU0UgKHZzc2gpCitCQVNFICh2c3N3KQorQkFTRSAodmx4YikKK0JBU0UgKHZseGgpCitCQVNF ICh2bHh3KQorQkFTRSAodmx4YnUpCitCQVNFICh2bHhodSkKK0JBU0UgKHZseHd1KQorQkFTRSAo dnN4YikKK0JBU0UgKHZzeGgpCitCQVNFICh2c3h3KQorQkFTRSAodnN1eGIpCitCQVNFICh2c3V4 aCkKK0JBU0UgKHZzdXh3KQorQkFTRSAodmV4dF94X3YpCiAvKiBDcnlwdG8gdmVjdG9yICovCiBC QVNFICh2YW5kbikKIEJBU0UgKHZicmV2KQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLWJhc2VzLmgKaW5kZXggMTEyMmUzODAxYTcuLjU2NWEwMzExZDJiIDEwMDY0 NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oCisr KyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgKQEAgLTI5 OSw2ICsyOTksMzcgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsb3hzZWc7 CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eHNlZzsKIGV4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c294c2VnOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jh c2UgKmNvbnN0IHZsc2VnZmY7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmxi OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsaDsKK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB2bHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29u c3QgdmxidTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bGh1OworZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsd3U7CitleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdnNiOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzaDsK K2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3c7CitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdmxzYjsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2bHNoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc3c7CitleHRlcm4g Y29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxzYnU7CitleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdmxzaHU7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmxz d3U7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNzYjsKK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3NoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2Ug KmNvbnN0IHZzc3c7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4YjsKK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhoOworZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX2Jhc2UgKmNvbnN0IHZseHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dmx4YnU7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4aHU7CitleHRlcm4g Y29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4d3U7CitleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdnN4YjsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3ho OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzeHc7CitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eGI7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3QgdnN1eGg7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eHc7Citl eHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmV4dF94X3Y7CiAvKiBCZWxvdyBmdW5j dGlvbl9iYXNlIGFyZSBWZWN0cm8gQ3J5cHRvKi8KIGV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2YW5kbjsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YnJldjsK ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBl cy5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYwpp bmRleCAxZTRmNGQ1M2RlNi4uOGU5MGIxN2E5NGIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYworKysgYi9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MKQEAgLTIxMSw2ICsyMTEsMTQ2IEBAIHN0 cnVjdCBpbmRleGVkX2xvYWRzdG9yZV9kZWYgOiBwdWJsaWMgZnVuY3Rpb25fc2hhcGUKIMKgIH0K IH07CiAKKy8qIEFkZCBvbmUgZnVuY3Rpb24gaW5zdGFuY2UgZm9yIEdST1VQLCB1c2luZyBvcGVy YW5kIHN1ZmZpeCBhdCBpbmRleCBPSSwKKyDCoCBtb2RlIHN1ZmZpeCBhdCBpbmRleCBQQUlSICYm IGJpIGFuZCBwcmVkaWNhdGlvbiBzdWZmaXggYXQgaW5kZXggcHJlZF9pZHguwqAgKi8KK3N0YXRp YyB2b2lkCitidWlsZF90aF9sb2Fkc3RvcmUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1 bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwLAorwqAgwqAgwqAgdW5zaWduZWQgaW50IHByZWRfaWR4 LCB1bnNpZ25lZCBpbnQgdmVjX3R5cGVfaWR4KQoreworwqAgYXV0b192ZWM8dHJlZSwgNT4gYXJn dW1lbnRfdHlwZXM7CivCoCBmdW5jdGlvbl9pbnN0YW5jZSBmdW5jdGlvbl9pbnN0YW5jZSAoZ3Jv dXAuYmFzZV9uYW1lLCAqZ3JvdXAuYmFzZSwKKyDCoCDCoCDCoCDCoCDCoCAqZ3JvdXAuc2hhcGUs CisgwqAgwqAgwqAgwqAgwqAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0sCisg wqAgwqAgwqAgwqAgwqAgZ3JvdXAucHJlZHNbcHJlZF9pZHhdLCAmZ3JvdXAub3BzX2luZm9zKTsK K8KgIHRyZWUgcmV0dXJuX3R5cGUgPSBncm91cC5vcHNfaW5mb3MucmV0LmdldF90cmVlX3R5cGUg KAorwqAgwqAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXgpOworwqAg Yi5hbGxvY2F0ZV9hcmd1bWVudF90eXBlcyAoZnVuY3Rpb25faW5zdGFuY2UsIGFyZ3VtZW50X3R5 cGVzKTsKK8KgIGIuYXBwbHlfcHJlZGljYXRpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCByZXR1cm5f dHlwZSwgYXJndW1lbnRfdHlwZXMpOworCivCoCBpZiAoVEFSR0VUX1hUSEVBRFZFQ1RPUiAmJiAh Y2hlY2tfdHlwZSAocmV0dXJuX3R5cGUsIGFyZ3VtZW50X3R5cGVzKSkKK8KgIMKgIHJldHVybjsK KworwqAgdHJlZSB0eXBlID0gYnVpbHRpbl90eXBlc1tncm91cC5vcHNfaW5mb3MudHlwZXNbdmVj X3R5cGVfaWR4XS5pbmRleF0udmVjdG9yOworwqAgaWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1l LCAibCIpCivCoCDCoCDCoCAmJiBzdHJzdHIgKGdyb3VwLmJhc2VfbmFtZSwgInUiKQorwqAgwqAg wqAgJiYgIVRZUEVfVU5TSUdORUQgKFRSRUVfVFlQRSAodHlwZSkpKQorwqAgwqAgcmV0dXJuOwor CivCoCBpZiAoc3Ryc3RyIChncm91cC5iYXNlX25hbWUsICJsIikKK8KgIMKgIMKgICYmICFzdHJz dHIgKGdyb3VwLmJhc2VfbmFtZSwgInUiKQorwqAgwqAgwqAgJiYgVFlQRV9VTlNJR05FRCAoVFJF RV9UWVBFICh0eXBlKSkpCivCoCDCoCByZXR1cm47CisKK8KgIG1hY2hpbmVfbW9kZSBtb2RlID0g VFlQRV9NT0RFICh0eXBlKTsKK8KgIGludCBzZXcgPSBHRVRfTU9ERV9CSVRTSVpFIChHRVRfTU9E RV9JTk5FUiAobW9kZSkpOworwqAgaWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAiaCIpICYm IHNldyA9PSA4KQorwqAgwqAgcmV0dXJuOworCivCoCBpZiAoc3Ryc3RyIChncm91cC5iYXNlX25h bWUsICJ3IikgJiYgKHNldyA9PSA4IHx8IHNldyA9PTE2KSkKK8KgIMKgIHJldHVybjsKKworwqAg Yi5hZGRfb3ZlcmxvYWRlZF9mdW5jdGlvbiAoZnVuY3Rpb25faW5zdGFuY2UsICpncm91cC5zaGFw ZSk7CivCoCBiLmFkZF91bmlxdWVfZnVuY3Rpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCAoKmdyb3Vw LnNoYXBlKSwgcmV0dXJuX3R5cGUsCivCoCDCoCBhcmd1bWVudF90eXBlcyk7Cit9CisKKy8qIHRo X2xvYWRzdG9yZV93aWR0aF9kZWYgY2xhc3MuwqAgKi8KK3N0cnVjdCB0aF9sb2Fkc3RvcmVfd2lk dGhfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UKK3sKKyDCoCB2b2lkIGJ1aWxkIChmdW5jdGlvbl9i dWlsZGVyICZiLAorIMKgIMKgIMKgIGNvbnN0IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwKSBj b25zdCBvdmVycmlkZQorwqAgeworwqAgwqAgZm9yICh1bnNpZ25lZCBpbnQgcHJlZF9pZHggPSAw OyBncm91cC5wcmVkc1twcmVkX2lkeF0gIT0gTlVNX1BSRURfVFlQRVM7CisgwqAgwqAgwqAgKytw cmVkX2lkeCkKK8KgIMKgIMKgIHsKKyBmb3IgKHVuc2lnbmVkIGludCB2ZWNfdHlwZV9pZHggPSAw OworwqAgwqAgwqAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXggIT0g TlVNX1ZFQ1RPUl9UWVBFUzsKK8KgIMKgIMKgICsrdmVjX3R5cGVfaWR4KQorIMKgIHsKKyDCoCDC oCBidWlsZF90aF9sb2Fkc3RvcmUgKGIsIGdyb3VwLCBwcmVkX2lkeCwgdmVjX3R5cGVfaWR4KTsK KyDCoCB9CivCoCDCoCDCoCB9CivCoCB9CisKK8KgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9i dWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsCivCoCDCoCBib29s IG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUKK8KgIHsKK8KgIMKgIC8qIFJldHVybiBudWxs cHRyIGlmIGl0IGNhbiBub3QgYmUgb3ZlcmxvYWRlZC7CoCAqLworwqAgwqAgaWYgKG92ZXJsb2Fk ZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2JlX292ZXJsb2FkZWRfcCAoaW5zdGFuY2UucHJl ZCkpCivCoCDCoCDCoCByZXR1cm4gbnVsbHB0cjsKKworwqAgwqAgYi5hcHBlbmRfbmFtZSAoIl9f cmlzY3ZfdGhfIik7CivCoCDCoCBiLmFwcGVuZF9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOwor CivCoCDCoCAvKiB2b3BfdiAtLT4gdm9wX3ZfPHR5cGU+LsKgICovCivCoCDCoCBpZiAoIW92ZXJs b2FkZWRfcCkKK8KgIMKgIMKgIHsKKyAvKiB2b3AgLS0+IHZvcF92LsKgICovCisgYi5hcHBlbmRf bmFtZSAob3BlcmFuZF9zdWZmaXhlc1tpbnN0YW5jZS5vcF9pbmZvLT5vcF0pOworIC8qIHZvcF92 IC0tPiB2b3Bfdl88dHlwZT4uwqAgKi8KKyBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2lu c3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7CivCoCDCoCDCoCB9CisKK8KgIMKgIC8qIEFjY29y ZGluZyB0byBydnYtaW50cmluc2ljLWRvYywgaXQgZG9lcyBub3QgYWRkICJfbSIgc3VmZml4Cisg wqAgwqAgwqAgZm9yIHZvcF9tIEMrKyBvdmVybG9hZGVkIEFQSS7CoCAqLworwqAgwqAgaWYgKG92 ZXJsb2FkZWRfcCAmJiBpbnN0YW5jZS5wcmVkID09IFBSRURfVFlQRV9tKQorwqAgwqAgwqAgcmV0 dXJuIGIuZmluaXNoX25hbWUgKCk7CivCoCDCoCBiLmFwcGVuZF9uYW1lIChwcmVkaWNhdGlvbl9z dWZmaXhlc1tpbnN0YW5jZS5wcmVkXSk7CivCoCDCoCByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsK K8KgIH0KK307CisKKworLyogdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVmIGNsYXNzLsKg ICovCitzdHJ1Y3QgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVmIDogcHVibGljIGZ1bmN0 aW9uX3NoYXBlCit7CivCoCB2b2lkIGJ1aWxkIChmdW5jdGlvbl9idWlsZGVyICZiLAorIMKgIMKg IMKgIGNvbnN0IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwKSBjb25zdCBvdmVycmlkZQorwqAg eworwqAgwqAgZm9yICh1bnNpZ25lZCBpbnQgcHJlZF9pZHggPSAwOyBncm91cC5wcmVkc1twcmVk X2lkeF0gIT0gTlVNX1BSRURfVFlQRVM7CivCoCArK3ByZWRfaWR4KQorwqAgwqAgwqAgeworIGZv ciAodW5zaWduZWQgaW50IHZlY190eXBlX2lkeCA9IDA7CivCoCDCoCDCoCBncm91cC5vcHNfaW5m b3MudHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRleCAhPSBOVU1fVkVDVE9SX1RZUEVTOworwqAgwqAg wqAgKyt2ZWNfdHlwZV9pZHgpCisgwqAgeworwqAgwqAgdHJlZSBpbmRleF90eXBlID0gZ3JvdXAu b3BzX2luZm9zLmFyZ3NbMV0uZ2V0X3RyZWVfdHlwZSAoCisgwqAgwqAgwqAgZ3JvdXAub3BzX2lu Zm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXgpOworwqAgwqAgaWYgKCFpbmRleF90eXBlKQor IMKgIMKgIMKgIGNvbnRpbnVlOworwqAgwqAgYnVpbGRfdGhfbG9hZHN0b3JlIChiLCBncm91cCwg cHJlZF9pZHgsIHZlY190eXBlX2lkeCk7CisgwqAgfQorwqAgwqAgwqAgfQorwqAgfQorCivCoCBj aGFyICpnZXRfbmFtZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwgY29uc3QgZnVuY3Rpb25faW5zdGFu Y2UgJmluc3RhbmNlLAorwqAgwqAgYm9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92ZXJyaWRlCivC oCB7CisKK8KgIMKgIC8qIFJldHVybiBudWxscHRyIGlmIGl0IGNhbiBub3QgYmUgb3ZlcmxvYWRl ZC7CoCAqLworwqAgwqAgaWYgKG92ZXJsb2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2Jl X292ZXJsb2FkZWRfcCAoaW5zdGFuY2UucHJlZCkpCivCoCDCoCDCoCByZXR1cm4gbnVsbHB0cjsK KworwqAgwqAgYi5hcHBlbmRfbmFtZSAoIl9fcmlzY3ZfdGhfIik7CivCoCDCoCBiLmFwcGVuZF9u YW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOworwqAgwqAgLyogdm9wX3YgLS0+IHZvcF92Xzx0eXBl Pi7CoCAqLworwqAgwqAgaWYgKCFvdmVybG9hZGVkX3ApCivCoCDCoCDCoCB7CisgLyogdm9wIC0t PiB2b3Bfdi7CoCAqLworIGIuYXBwZW5kX25hbWUgKG9wZXJhbmRfc3VmZml4ZXNbaW5zdGFuY2Uu b3BfaW5mby0+b3BdKTsKKyAvKiB2b3BfdiAtLT4gdm9wX3ZfPHR5cGU+LsKgICovCisgYi5hcHBl bmRfbmFtZSAodHlwZV9zdWZmaXhlc1tpbnN0YW5jZS50eXBlLmluZGV4XS52ZWN0b3IpOworwqAg wqAgwqAgfQorCivCoCDCoCAvKiBBY2NvcmRpbmcgdG8gcnZ2LWludHJpbnNpYy1kb2MsIGl0IGRv ZXMgbm90IGFkZCAiX20iIHN1ZmZpeAorIMKgIMKgIMKgIGZvciB2b3BfbSBDKysgb3ZlcmxvYWRl ZCBBUEkuwqAgKi8KK8KgIMKgIGlmIChvdmVybG9hZGVkX3AgJiYgaW5zdGFuY2UucHJlZCA9PSBQ UkVEX1RZUEVfbSkKK8KgIMKgIMKgIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOworwqAgwqAgYi5h cHBlbmRfbmFtZSAocHJlZGljYXRpb25fc3VmZml4ZXNbaW5zdGFuY2UucHJlZF0pOworwqAgwqAg cmV0dXJuIGIuZmluaXNoX25hbWUgKCk7CivCoCB9Cit9OworCiAvKiBhbHVfZGVmIGNsYXNzLsKg ICovCiBzdHJ1Y3QgYWx1X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlCiB7CkBAIC02MzIsNiArNzcy LDIzIEBAIHN0cnVjdCByZWR1Y19hbHVfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UKIMKgIH0KIH07 CiAKKy8qIHRoX2V4dHJhY3RfZGVmIGNsYXNzLsKgICovCitzdHJ1Y3QgdGhfZXh0cmFjdF9kZWYg OiBwdWJsaWMgYnVpbGRfYmFzZQoreworwqAgY2hhciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1aWxk ZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwKK8KgIMKgIMKgIGJvb2wg b3ZlcmxvYWRlZF9wKSBjb25zdCBvdmVycmlkZQorwqAgeworwqAgwqAgYi5hcHBlbmRfbmFtZSAo Il9fcmlzY3ZfdGhfIik7CivCoCDCoCBiLmFwcGVuZF9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUp OworCivCoCDCoCBpZiAob3ZlcmxvYWRlZF9wKQorwqAgwqAgwqAgcmV0dXJuIGIuZmluaXNoX25h bWUgKCk7CivCoCDCoCBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUu aW5kZXhdLnZlY3Rvcik7CivCoCDCoCBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3Rh bmNlLnR5cGUuaW5kZXhdLnNjYWxhcik7CivCoCDCoCByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsK K8KgIH0KK307CisKIC8qIHNjYWxhcl9tb3ZlX2RlZiBjbGFzcy7CoCAqLwogc3RydWN0IHNjYWxh cl9tb3ZlX2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlCiB7CkBAIC0xMDk0LDYgKzEyNTEsOCBAQCBT SEFQRSh2c2V0dmwsIHZzZXR2bCkKIFNIQVBFKHZzZXR2bCwgdnNldHZsbWF4KQogU0hBUEUobG9h ZHN0b3JlLCBsb2Fkc3RvcmUpCiBTSEFQRShpbmRleGVkX2xvYWRzdG9yZSwgaW5kZXhlZF9sb2Fk c3RvcmUpCitTSEFQRSh0aF9sb2Fkc3RvcmVfd2lkdGgsIHRoX2xvYWRzdG9yZV93aWR0aCkKK1NI QVBFKHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0 aCkKIFNIQVBFKGFsdSwgYWx1KQogU0hBUEUoYWx1X2ZybSwgYWx1X2ZybSkKIFNIQVBFKHdpZGVu X2FsdSwgd2lkZW5fYWx1KQpAQCAtMTEwNiw2ICsxMjY1LDcgQEAgU0hBUEUobW92ZSwgbW92ZSkK IFNIQVBFKG1hc2tfYWx1LCBtYXNrX2FsdSkKIFNIQVBFKHJlZHVjX2FsdSwgcmVkdWNfYWx1KQog U0hBUEUocmVkdWNfYWx1X2ZybSwgcmVkdWNfYWx1X2ZybSkKK1NIQVBFKHRoX2V4dHJhY3QsIHRo X2V4dHJhY3QpCiBTSEFQRShzY2FsYXJfbW92ZSwgc2NhbGFyX21vdmUpCiBTSEFQRSh2dW5kZWZp bmVkLCB2dW5kZWZpbmVkKQogU0hBUEUobWlzYywgbWlzYykKZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgKaW5kZXggYWMyYTI4Y2UwMTcuLmE3NjI0 ZDBmYWJkIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy1zaGFwZXMuaAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1z aGFwZXMuaApAQCAtMjgsNiArMjgsOCBAQCBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNv bnN0IHZzZXR2bDsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNldHZsbWF4 OwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBsb2Fkc3RvcmU7CiBleHRlcm4g Y29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGluZGV4ZWRfbG9hZHN0b3JlOworZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg7CitleHRlcm4gY29u c3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoOwogZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBhbHU7CiBleHRlcm4gY29uc3QgZnVuY3Rp b25fc2hhcGUgKmNvbnN0IGFsdV9mcm07CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNv bnN0IHdpZGVuX2FsdTsKQEAgLTQxLDYgKzQzLDcgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3No YXBlICpjb25zdCBtYXNrX2FsdTsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qg cmVkdWNfYWx1OwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCByZWR1Y19hbHVf ZnJtOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBzY2FsYXJfbW92ZTsKK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdGhfZXh0cmFjdDsKIGV4dGVybiBjb25z dCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnVuZGVmaW5lZDsKIGV4dGVybiBjb25zdCBmdW5jdGlv bl9zaGFwZSAqY29uc3QgbWlzYzsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qg dnNldDsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MKaW5kZXggMjVl MGI2ZTU2ZGUuLjQ0YjlmZWMxODk4IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy5jYworKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5jYwpAQCAtOTM0LDYgKzkzNCwzMiBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2 dl9hcmdfdHlwZV9pbmZvIGV4dF92Y3JlYXRlX2FyZ3NbXQogwqAgPSB7cnZ2X2FyZ190eXBlX2lu Zm8gKFJWVl9CQVNFX3ZlY3RvciksCsKgIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07CiAK Ky8qIEEgbGlzdCBvZiBhcmdzIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlw ZSAqLCBzaXplX3QpCisgKiBmdW5jdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBy dnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJnc1tdCivCoCA9IHtydnZf YXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX2NvbnN0X3B0ciksCisgwqAgwqAgcnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX3NpemUpLCBydnZfYXJnX3R5cGVfaW5mb19lbmR9OworCisv KiBBIGxpc3Qgb2YgYXJncyBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUg KiwgZWV3OF9pbmRleF90eXBlKQorICogZnVuY3Rpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9hcmdzW10KK8Kg ID0ge3J2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXJfY29uc3RfcHRyKSwKKyDCoCDC oCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdW5zaWduZWRfdmVjdG9yKSwgcnZ2X2FyZ190 eXBlX2luZm9fZW5kfTsKKworLyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZvaWQgZnVuYyAoc2NhbGFy X3R5cGUgKiwgZWV3OF9pbmRleF90eXBlLCB2ZWN0b3JfdHlwZSkKKyAqIGZ1bmN0aW9uLsKgICov CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIHNjYWxhcl9wdHJfaW5k ZXhfYXJnc1tdCivCoCA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX3B0ciks CisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3Vuc2lnbmVkX3ZlY3RvciksCisg wqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIHJ2dl9hcmdfdHlwZV9p bmZvX2VuZH07CisKKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBl ICosIHNpemVfdCwgdmVjdG9yX3R5cGUpCisgKiBmdW5jdGlvbi7CoCAqLworc3RhdGljIENPTlNU RVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfcHRyX3NpemVfYXJnc1tdCivCoCA9 IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX3B0ciksCisgwqAgwqAgcnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX3NpemUpLCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vf dmVjdG9yKSwKKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mb19lbmR9OworCiAvKiBBIGxpc3Qgb2Yg bm9uZSBwcmVkcyB0aGF0IHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9u cy7CoCAqLwogc3RhdGljIENPTlNURVhQUiBjb25zdCBwcmVkaWNhdGlvbl90eXBlX2luZGV4IG5v bmVfcHJlZHNbXQogwqAgPSB7UFJFRF9UWVBFX25vbmUsIE5VTV9QUkVEX1RZUEVTfTsKQEAgLTE0 NTUsNiArMTQ4MSwxNCBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3No aWZ0X3Z2dl9vcHMKwqAgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3Rvciks IC8qIFJldHVybiB0eXBlICovCsKgIMKgIMKgIHNoaWZ0X3Z2X2FyZ3MgLyogQXJncyAqL307CiAK Ky8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHNjYWxhcl90eXBlIGZ1bmMgKHZl Y3Rvcl90eXBlLCBzaXplX3QpCisgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uICovCitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3hfc191X29wcworwqAgPSB7aXVfb3BzLMKg IMKgIMKgIMKgIMKgIC8qIFR5cGVzICovCisgwqAgwqAgT1BfVFlQRV92eCzCoCDCoCDCoCDCoCAv KiBTdWZmaXggKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyKSwg LyogUmV0dXJuIHR5cGUgKi8KKyDCoCDCoCB2X3NpemVfYXJncyAvKiBBcmdzICovfTsKKwogLyog QSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAodmVjdG9y X3R5cGUsIHNpemVfdCkKwqAgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uICovCiBzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3NoaWZ0X3Z2eF9vcHMKQEAgLTI2MzgsNiArMjY3 MiwzOCBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3ZjcmVhdGVf bG11bDRfeDJfb3BzCsKgIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92bG11bF9l eHRfeDIpLCAvKiBSZXR1cm4gdHlwZSAqLwrCoCDCoCDCoCBleHRfdmNyZWF0ZV9hcmdzIC8qIEFy Z3MgKi99OwogCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlw ZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAorICogc2l6ZV90KSBmdW5jdGlvbiByZWdpc3Ry YXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxsX3Zfc2Nh bGFyX2NvbnN0X3B0cl9zaXplX29wcworwqAgPSB7YWxsX29wcyzCoCDCoCDCoCAvKiBUeXBlc8Kg ICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2 X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDC oCDCoCBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0 aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBzaXpl X3QsCisgKiB2ZWN0b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9vcHMKK8Kg ID0ge2FsbF9vcHMswqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCAv KiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwg LyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3Mg Ki99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBm dW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAorICogaW5kZXhfdHlwZSkgZnVuY3Rpb24gcmVnaXN0 cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3Nj YWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzCivCoCA9IHthbGxfb3BzLMKgIMKgIMKgIC8qIFR5cGVz wqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLwor IMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBz dGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBp bmRleF90eXBlLAorICogdmVjdG9yX3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLwor c3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBhbGxfdl9zY2FsYXJfcHRyX2luZGV4 X29wcworwqAgPSB7YWxsX29wcyzCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92 LMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNF X3ZvaWQpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX3B0cl9pbmRleF9hcmdz IC8qIEFyZ3MgKi99OworCiAvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0 b3JfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSkuCsKgIMKgIFNvbWUgaW5zIGp1c3Qgc3VwcG9ydHMg U0VXPTMyLCBzdWNoIGFzIGNyeXB0byB2ZWN0b2wgWnZrZyBleHRlbnNpb24uCsKgICogZnVuY3Rp b24gcmVnaXN0cmF0aW9uLsKgICovCkBAIC0yODE2LDYgKzI4ODIsMTAgQEAgc3RhdGljIGZ1bmN0 aW9uX2dyb3VwX2luZm8gZnVuY3Rpb25fZ3JvdXBzW10gPSB7CiAjZGVmaW5lIERFRl9SVlZfRlVO Q1RJT04oTkFNRSwgU0hBUEUsIFBSRURTLCBPUFNfSU5GTykgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgXAogwqAgeyNOQU1FLCAmYmFzZXM6Ok5BTUUsICZzaGFwZXM6OlNIQVBF LCBQUkVEUywgT1BTX0lORk8sIFJFUVVJUkVEX0VYVEVOU0lPTlN9LAogI2luY2x1ZGUgInJpc2N2 LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIgorI3VuZGVmIERFRl9SVlZfRlVOQ1RJT04K KyNkZWZpbmUgREVGX1JWVl9GVU5DVElPTihOQU1FLCBTSEFQRSwgUFJFRFMsIE9QU19JTkZPKSDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcCivCoCB7I05BTUUsICZiYXNlczo6 TkFNRSwgJnNoYXBlczo6U0hBUEUsIFBSRURTLCBPUFNfSU5GTywgUkVRVUlSRURfRVhURU5TSU9O U30sCisjaW5jbHVkZSAidGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYiCiB9Owog CiAvKiBUaGUgUlZWIHR5cGVzLCB3aXRoIHRoZWlyIGJ1aWx0LWluCmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMuaAppbmRleCA1NGM4ODI0ZmY5Mi4uYThlZTM5YTNjYjIgMTAw NjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgKKysrIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaApAQCAtMTE0LDYgKzExNCw3 IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgQ1BfV1JJVEVfQ1NSID0gMVUgPDwgNTsKIGVu dW0gcmVxdWlyZWRfZXh0CiB7CiDCoCBWRUNUT1JfRVhULCDCoCAvKiBWZWN0b3IgZXh0ZW5zaW9u ICovCivCoCBYVEhFQURWRUNUT1JfRVhULCDCoCAvKiBYVGhlYWRWZWN0b3IgZXh0ZW5zaW9uICov CiDCoCBaVkJCX0VYVCzCoCDCoCAvKiBDcnl0byB2ZWN0b3IgWnZiYiBzdWItZXh0ICovCiDCoCBa VkJCX09SX1pWS0JfRVhULCAvKiBDcnl0byB2ZWN0b3IgWnZiYiBvciB6dmtiIHN1Yi1leHQgKi8K IMKgIFpWQkNfRVhULMKgIMKgIC8qIENyeXB0byB2ZWN0b3IgWnZiYyBzdWItZXh0ICovCkBAIC0y MzQsNiArMjM1LDggQEAgc3RydWN0IGZ1bmN0aW9uX2dyb3VwX2luZm8KIMKgIMKgIHsKIMKgIMKg IMKgIGNhc2UgVkVDVE9SX0VYVDoKIMKgIMKgIMKgIMKgIHJldHVybiBUQVJHRVRfVkVDVE9SOwor wqAgwqAgwqAgY2FzZSBYVEhFQURWRUNUT1JfRVhUOgorIHJldHVybiBUQVJHRVRfWFRIRUFEVkVD VE9SOwogwqAgwqAgwqAgY2FzZSBaVkJCX0VYVDoKIMKgIMKgIMKgIMKgIHJldHVybiBUQVJHRVRf WlZCQjsKIMKgIMKgIMKgIGNhc2UgWlZCQl9PUl9aVktCX0VYVDoKZGlmZiAtLWdpdCBhL2djYy9j b25maWcvcmlzY3YvdC1yaXNjdiBiL2djYy9jb25maWcvcmlzY3YvdC1yaXNjdgppbmRleCAzMmRl NmI4NTFjMS4uMzg0OTQzMjBkOGIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvdC1yaXNj dgorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YKQEAgLTEsNiArMSw3IEBACiBSSVNDVl9C VUlMVElOU19IID0gJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu aCBcCsKgIMKgIMKgICQoc3JjZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LmRlZiBcCsKgIMKgIMKgICQoc3JjZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLWZ1bmN0aW9ucy5kZWYgXAorIMKgIMKgIMKgICQoc3JjZGlyKS9jb25maWcvcmlzY3YvdGhl YWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgXArCoCDCoCDCoCByaXNjdi12ZWN0b3It dHlwZS1pbmRleGVyLmdlbi5kZWYKIAogcmlzY3YtYnVpbHRpbnMubzogJChzcmNkaXIpL2NvbmZp Zy9yaXNjdi9yaXNjdi1idWlsdGlucy5jYyAkKENPTkZJR19IKSBcCmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIGIvZ2NjL2Nv bmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZgpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmQzYmEyOWJhZTkKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVm CkBAIC0wLDAgKzEsMzkgQEAKKyNpZm5kZWYgREVGX1JWVl9GVU5DVElPTgorI2RlZmluZSBERUZf UlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQUkVEUywgT1BTX0lORk8pCisjZW5kaWYKKworI2Rl ZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFhUSEVBRFZFQ1RPUl9FWFQKK0RFRl9SVlZfRlVOQ1RJ T04gKHZsYiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29u c3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBm dWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04g KHZsdywgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3Rf cHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsYnUsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVs bF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2 bGh1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9w dHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodmx3dSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxs X3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZz YiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfb3Bz KQorREVGX1JWVl9GVU5DVElPTiAodnNoLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVk cywgYWxsX3Zfc2NhbGFyX3B0cl9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2c3csIHRoX2xvYWRz dG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX29wcykKK0RFRl9SVlZf RlVOQ1RJT04gKHZsc2IsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2Nh bGFyX2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsc2gsIHRoX2xvYWRz dG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykK K0RFRl9SVlZfRlVOQ1RJT04gKHZsc3csIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywg YWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsc2J1 LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJf c2l6ZV9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2bHNodSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBm dWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQorREVGX1JWVl9GVU5D VElPTiAodmxzd3UsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFy X2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzc2IsIHRoX2xvYWRzdG9y ZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX3NpemVfb3BzKQorREVGX1JW Vl9GVU5DVElPTiAodnNzaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92 X3NjYWxhcl9wdHJfc2l6ZV9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2c3N3LCB0aF9sb2Fkc3Rv cmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9zaXplX29wcykKK0RFRl9S VlZfRlVOQ1RJT04gKHZseGIsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRz LCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZs eGgsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJf Y29uc3RfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZseHcsIHRoX2luZGV4ZWRf bG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4 X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZseGJ1LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0 aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpCitERUZfUlZW X0ZVTkNUSU9OICh2bHhodSwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMs IGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodmx4 d3UsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJf Y29uc3RfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzeGIsIHRoX2luZGV4ZWRf bG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3Bz KQorREVGX1JWVl9GVU5DVElPTiAodnN4aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5v bmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMpCitERUZfUlZWX0ZVTkNUSU9O ICh2c3h3LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9z Y2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzdXhiLCB0aF9pbmRleGVk X2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29w cykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzdXhoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwg bm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJ T04gKHZzdXh3LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxf dl9zY2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZleHRfeF92LCB0aF9l eHRyYWN0LCBub25lX3ByZWRzLCBpdV94X3NfdV9vcHMpCisjdW5kZWYgUkVRVUlSRURfRVhURU5T SU9OUworCisjdW5kZWYgREVGX1JWVl9GVU5DVElPTgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9y aXNjdi90aGVhZC12ZWN0b3IubWQgYi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZApp bmRleCA2OTZiODE1MjUyZC4uMGYzNzAwZDkyNjkgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlz Y3YvdGhlYWQtdmVjdG9yLm1kCisrKyBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1k CkBAIC0xLDcgKzEsOTUgQEAKIChkZWZpbmVfY19lbnVtICJ1bnNwZWMiIFsKK8KgIFVOU1BFQ19U SF9WTEIKK8KgIFVOU1BFQ19USF9WTEJVCivCoCBVTlNQRUNfVEhfVkxICivCoCBVTlNQRUNfVEhf VkxIVQorwqAgVU5TUEVDX1RIX1ZMVworwqAgVU5TUEVDX1RIX1ZMV1UKKworwqAgVU5TUEVDX1RI X1ZMU0IKK8KgIFVOU1BFQ19USF9WTFNCVQorwqAgVU5TUEVDX1RIX1ZMU0gKK8KgIFVOU1BFQ19U SF9WTFNIVQorwqAgVU5TUEVDX1RIX1ZMU1cKK8KgIFVOU1BFQ19USF9WTFNXVQorCivCoCBVTlNQ RUNfVEhfVkxYQgorwqAgVU5TUEVDX1RIX1ZMWEJVCivCoCBVTlNQRUNfVEhfVkxYSAorwqAgVU5T UEVDX1RIX1ZMWEhVCivCoCBVTlNQRUNfVEhfVkxYVworwqAgVU5TUEVDX1RIX1ZMWFdVCisKK8Kg IFVOU1BFQ19USF9WU1VYQgorwqAgVU5TUEVDX1RIX1ZTVVhICivCoCBVTlNQRUNfVEhfVlNVWFcK KwogwqAgVU5TUEVDX1RIX1ZXTERTVAogXSkKIAorKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVD X1RIX1ZMTUVNX09QIFsKK8KgIFVOU1BFQ19USF9WTEIgVU5TUEVDX1RIX1ZMQlUKK8KgIFVOU1BF Q19USF9WTEggVU5TUEVDX1RIX1ZMSFUKK8KgIFVOU1BFQ19USF9WTFcgVU5TUEVDX1RIX1ZMV1UK K10pCisKKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTFNNRU1fT1AgWworwqAgVU5T UEVDX1RIX1ZMU0IgVU5TUEVDX1RIX1ZMU0JVCivCoCBVTlNQRUNfVEhfVkxTSCBVTlNQRUNfVEhf VkxTSFUKK8KgIFVOU1BFQ19USF9WTFNXIFVOU1BFQ19USF9WTFNXVQorXSkKKworKGRlZmluZV9p bnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZMWE1FTV9PUCBbCivCoCBVTlNQRUNfVEhfVkxYQiBVTlNQ RUNfVEhfVkxYQlUKK8KgIFVOU1BFQ19USF9WTFhIIFVOU1BFQ19USF9WTFhIVQorwqAgVU5TUEVD X1RIX1ZMWFcgVU5TUEVDX1RIX1ZMWFdVCitdKQorCisoZGVmaW5lX2ludF9hdHRyIHZsbWVtX29w X2F0dHIgWworwqAgKFVOU1BFQ19USF9WTEIgImIiKSAoVU5TUEVDX1RIX1ZMQlUgImJ1IikKK8Kg IChVTlNQRUNfVEhfVkxIICJoIikgKFVOU1BFQ19USF9WTEhVICJodSIpCivCoCAoVU5TUEVDX1RI X1ZMVyAidyIpIChVTlNQRUNfVEhfVkxXVSAid3UiKQorwqAgKFVOU1BFQ19USF9WTFNCICJiIikg KFVOU1BFQ19USF9WTFNCVSAiYnUiKQorwqAgKFVOU1BFQ19USF9WTFNIICJoIikgKFVOU1BFQ19U SF9WTFNIVSAiaHUiKQorwqAgKFVOU1BFQ19USF9WTFNXICJ3IikgKFVOU1BFQ19USF9WTFNXVSAi d3UiKQorwqAgKFVOU1BFQ19USF9WTFhCICJiIikgKFVOU1BFQ19USF9WTFhCVSAiYnUiKQorwqAg KFVOU1BFQ19USF9WTFhIICJoIikgKFVOU1BFQ19USF9WTFhIVSAiaHUiKQorwqAgKFVOU1BFQ19U SF9WTFhXICJ3IikgKFVOU1BFQ19USF9WTFhXVSAid3UiKQorwqAgKFVOU1BFQ19USF9WU1VYQiAi YiIpCivCoCAoVU5TUEVDX1RIX1ZTVVhIICJoIikKK8KgIChVTlNQRUNfVEhfVlNVWFcgInciKQor XSkKKworKGRlZmluZV9pbnRfYXR0ciB2bG1lbV9vcmRlcl9hdHRyIFsKK8KgIChVTlNQRUNfVEhf VkxYQiAiIikKK8KgIChVTlNQRUNfVEhfVkxYSCAiIikKK8KgIChVTlNQRUNfVEhfVkxYVyAiIikK K8KgIChVTlNQRUNfVEhfVlNVWEIgInUiKQorwqAgKFVOU1BFQ19USF9WU1VYSCAidSIpCivCoCAo VU5TUEVDX1RIX1ZTVVhXICJ1IikKK10pCisKKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19U SF9WU01FTV9PUCBbCivCoCBVTlNQRUNfVEhfVkxCCivCoCBVTlNQRUNfVEhfVkxICivCoCBVTlNQ RUNfVEhfVkxXCitdKQorCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNTTUVNX09Q IFsKK8KgIFVOU1BFQ19USF9WTFNCCivCoCBVTlNQRUNfVEhfVkxTSAorwqAgVU5TUEVDX1RIX1ZM U1cKK10pCisKKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WU1hNRU1fT1AgWworwqAg VU5TUEVDX1RIX1ZMWEIKK8KgIFVOU1BFQ19USF9WTFhICivCoCBVTlNQRUNfVEhfVkxYVworwqAg VU5TUEVDX1RIX1ZTVVhCCivCoCBVTlNQRUNfVEhfVlNVWEgKK8KgIFVOU1BFQ19USF9WU1VYVwor XSkKKwogKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFZfVkxTX1ZUIFtWIFZMUyBWVF0pCiAoZGVmaW5l X21vZGVfaXRlcmF0b3IgVl9WQl9WTFNfVlQgW1YgVkIgVkxTIFZUXSkKIApAQCAtMTAwLDMgKzE4 OCwxNjggQEAKIMKgIH0KIMKgIFsoc2V0X2F0dHIgInR5cGUiICJ2bGRtLHZzdG0sdm1hbHUsdm1h bHUsdm1hbHUiKQrCoCDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisKKyhkZWZpbmVf ZXhwYW5kICJAcHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCivCoCBbKHNldCAo bWF0Y2hfb3BlcmFuZDpWX1ZMUyAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIpCivCoCDCoCAoaWZf dGhlbl9lbHNlOlZfVkxTCivCoCDCoCDCoCAodW5zcGVjOjxWTT4KKyBbKG1hdGNoX29wZXJhbmQ6 PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIikKK8KgIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rv cl9sZW5ndGhfb3BlcmFuZCIpCivCoCAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFu ZCIpCivCoCAobWF0Y2hfb3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIpCivCoCAobWF0Y2hf b3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIpCivCoCAocmVnOlNJIFZMX1JFR05VTSkKK8Kg IChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZMTUVNX09QKQorwqAgwqAgwqAgKG1h dGNoX29wZXJhbmQ6Vl9WTFMgMyAidmVjdG9yX21vdmVfb3BlcmFuZCIpCivCoCDCoCDCoCAobWF0 Y2hfb3BlcmFuZDpWX1ZMUyAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIpKSldCivCoCAiVEFSR0VU X1hUSEVBRFZFQ1RPUiIKK8KgIHt9KQorCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqcHJlZF9t b3Zfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpW X1ZMUyAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgwqAgwqAgIj12cizCoCDCoCB2cizCoCDCoCB2 ZCwgwqAgwqAgbSzCoCDCoCB2cizCoCDCoCB2ciIpCivCoCDCoCAoaWZfdGhlbl9lbHNlOlZfVkxT CivCoCDCoCDCoCAodW5zcGVjOjxWTT4KKyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3Jf bWFza19vcGVyYW5kIsKgIMKgICJ2bVdjMSwgwqAgV2MxLMKgIMKgIHZtLCB2bVdjMSwgwqAgV2Mx LCDCoCBXYzEiKQorwqAgKG1hdGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiDC oCDCoCDCoCAiIMKgIHJLLMKgIMKgIHJLLMKgIMKgIHJLLMKgIMKgIHJLLMKgIMKgIHJLLMKgIMKg IHJLIikKK8KgIChtYXRjaF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5kIsKgIMKgICLCoCDC oCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpIikKK8KgICht YXRjaF9vcGVyYW5kIDYgImNvbnN0X2ludF9vcGVyYW5kIsKgIMKgICLCoCDCoCBpLCDCoCDCoCBp LCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpIikKK8KgIChtYXRjaF9vcGVyYW5k IDcgImNvbnN0X2ludF9vcGVyYW5kIsKgIMKgICLCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDC oCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpIikKK8KgIChyZWc6U0kgVkxfUkVHTlVNKQorwqAgKHJl ZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVkxNRU1fT1ApCivCoCDCoCDCoCAobWF0Y2hf b3BlcmFuZDpWX1ZMUyAzICJyZWdfb3JfbWVtX29wZXJhbmQiIMKgIMKgIMKgICLCoCDCoCBtLCDC oCDCoCBtLCDCoCDCoCBtLMKgIMKgIHZyLMKgIMKgIHZyLMKgIMKgIHZyIikKK8KgIMKgIMKgICht YXRjaF9vcGVyYW5kOlZfVkxTIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIiDCoCDCoCAiwqAgwqAg MCzCoCDCoCB2dSzCoCDCoCB2dSzCoCDCoCB2dSzCoCDCoCB2dSwgwqAgwqAgMCIpKSldCivCoCAi KFRBUkdFVF9YVEhFQURWRUNUT1IKK8KgIMKgICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5k c1swXSwgPE1PREU+bW9kZSkKKyB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1szXSwgPE1P REU+bW9kZSkpKSIKK8KgICJACisgwqAgdmw8dmxtZW1fb3BfYXR0cj4udlx0JTAsJTMlcDEKKyDC oCB2bDx2bG1lbV9vcF9hdHRyPi52XHQlMCwlMworIMKgIHZsPHZsbWVtX29wX2F0dHI+LnZcdCUw LCUzLCUxLnQKKyDCoCB2czx2bG1lbV9vcF9hdHRyPi52XHQlMywlMCVwMQorIMKgIHZtdi52LnZc dCUwLCUzCisgwqAgdm12LnYudlx0JTAsJTMiCivCoCAiJiYgcmVnaXN0ZXJfb3BlcmFuZCAob3Bl cmFuZHNbMF0sIDxNT0RFPm1vZGUpCisgwqAgJiYgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNb M10sIDxNT0RFPm1vZGUpCisgwqAgJiYgc2F0aXNmaWVzX2NvbnN0cmFpbnRfdnUgKG9wZXJhbmRz WzJdKQorIMKgICYmIElOVFZBTCAob3BlcmFuZHNbN10pID09IHJpc2N2X3ZlY3Rvcjo6VkxNQVgi CivCoCBbKHNldCAobWF0Y2hfZHVwIDApIChtYXRjaF9kdXAgMykpXQorwqAgIiIKK8KgIFsoc2V0 X2F0dHIgInR5cGUiICJ2bGRlLHZsZGUsdmxkZSx2c3RlLHZpbW92LHZpbW92IikKKyDCoCAoc2V0 X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisKKyhkZWZpbmVfaW5zbiAiQHByZWRfc3RvcmVfd2lk dGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAwICJt ZW1vcnlfb3BlcmFuZCIgwqAgIittIikKKyAoaWZfdGhlbl9lbHNlOlZJCisgwqAgKHVuc3BlYzo8 Vk0+CisgwqAgwqAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIg InZtV2MxIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDMgInZlY3Rvcl9sZW5ndGhfb3BlcmFu ZCLCoCDCoCAiIMKgIHJLIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDQgImNvbnN0X2ludF9v cGVyYW5kIiAiwqAgwqAgaSIpCivCoCDCoCDCoCAocmVnOlNJIFZMX1JFR05VTSkKK8KgIMKgIMKg IChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZTTUVNX09QKQorIMKgIChtYXRjaF9v cGVyYW5kOlZJIDIgInJlZ2lzdGVyX29wZXJhbmQiwqAgIsKgIMKgIHZyIikKKyDCoCAobWF0Y2hf ZHVwIDApKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2czx2bG1lbV9vcF9hdHRy Pi52XHQlMiwlMCVwMSIKK8KgIFsoc2V0X2F0dHIgInR5cGUiICJ2c3RlIikKKyDCoCAoc2V0X2F0 dHIgIm1vZGUiICI8TU9ERT4iKQorIMKgIChzZXQgKGF0dHIgImF2bF90eXBlX2lkeCIpIChjb25z dF9pbnQgNCkpCisgwqAgKHNldF9hdHRyICJ2bF9vcF9pZHgiICIzIildKQorCisoZGVmaW5lX2lu c24gIkBwcmVkX3N0cmlkZWRfbG9hZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFso c2V0IChtYXRjaF9vcGVyYW5kOlZJIDAgInJlZ2lzdGVyX29wZXJhbmQiIMKgIMKgIMKgICI9dnIs wqAgwqAgdnIswqAgwqAgdmQiKQorIChpZl90aGVuX2Vsc2U6VkkKKyDCoCAodW5zcGVjOjxWTT4K KyDCoCDCoCBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1X YzEsIMKgIFdjMSzCoCDCoCB2bSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA1ICJ2ZWN0b3Jf bGVuZ3RoX29wZXJhbmQiwqAgwqAgIiDCoCBySyzCoCDCoCBySyzCoCDCoCBySyIpCivCoCDCoCDC oCAobWF0Y2hfb3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIgIsKgIMKgIGksIMKgIMKgIGks IMKgIMKgIGkiKQorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQi ICLCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDgg ImNvbnN0X2ludF9vcGVyYW5kIiAiwqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSIpCivCoCDCoCDC oCAocmVnOlNJIFZMX1JFR05VTSkKK8KgIMKgIMKgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5T UEVDX1RIX1ZMU01FTV9PUCkKKyDCoCAodW5zcGVjOlZJCisgwqAgwqAgWyhtYXRjaF9vcGVyYW5k OlZJIDMgIm1lbW9yeV9vcGVyYW5kIsKgICLCoCDCoCBtLCDCoCDCoCBtLCDCoCDCoCBtIikKK8Kg IMKgIMKgIChtYXRjaF9vcGVyYW5kIDQgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiIMKgICIgwqAg ckoswqAgwqAgckoswqAgwqAgckoiKV0gVU5TUEVDX1RIX1ZMU01FTV9PUCkKKyDCoCAobWF0Y2hf b3BlcmFuZDpWSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCLCoCDCoCDCoCAiwqAgwqAgMCzCoCDC oCB2dSzCoCDCoCB2dSIpKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2bHM8dmxt ZW1fb3BfYXR0cj4udlx0JTAsJTMsJXo0JXAxIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZsZHMi KQorIMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9pbnNuICJAcHJl ZF9zdHJpZGVkX3N0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+IgorwqAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6VkkgMCAibWVtb3J5X29wZXJhbmQiIMKgICIrbSIpCisgKGlmX3RoZW5fZWxz ZTpWSQorIMKgICh1bnNwZWM6PFZNPgorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZl Y3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdjMSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA0ICJ2 ZWN0b3JfbGVuZ3RoX29wZXJhbmQiwqAgwqAgIiDCoCBySyIpCivCoCDCoCDCoCAobWF0Y2hfb3Bl cmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCIgIsKgIMKgIGkiKQorwqAgwqAgwqAgKHJlZzpTSSBW TF9SRUdOVU0pCivCoCDCoCDCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WU1NN RU1fT1ApCisgwqAgKHVuc3BlYzpWSQorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZCAyICJwbW9kZV9y ZWdfb3JfMF9vcGVyYW5kIiDCoCAiIMKgIHJKIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kOlZJ IDMgInJlZ2lzdGVyX29wZXJhbmQiIMKgIMKgIMKgICIgwqAgdnIiKV0gVU5TUEVDX1RIX1ZTU01F TV9PUCkKKyDCoCAobWF0Y2hfZHVwIDApKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8Kg ICJ2c3M8dmxtZW1fb3BfYXR0cj4udlx0JTMsJTAsJXoyJXAxIgorwqAgWyhzZXRfYXR0ciAidHlw ZSIgInZzdHMiKQorIMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpCisgwqAgKHNldCAoYXR0 ciAiYXZsX3R5cGVfaWR4IikgKGNvbnN0X2ludCA1KSldKQorCisoZGVmaW5lX2luc24gIkBwcmVk X2luZGV4ZWRfbG9hZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlZJIDAgInJlZ2lzdGVyX29wZXJhbmQiwqAgwqAgwqAgIj12ZCwgdnIsdmQsIHZy IikKKyAoaWZfdGhlbl9lbHNlOlZJCisgwqAgKHVuc3BlYzo8Vk0+CisgwqAgwqAgWyhtYXRjaF9v cGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCLCoCAiIHZtLFdjMSx2bSxXYzEiKQor wqAgwqAgwqAgKG1hdGNoX29wZXJhbmQgNSAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiDCoCDCoCAi IHJLLCBySyxySywgcksiKQorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29w ZXJhbmQiwqAgIsKgIGkswqAgaSwgaSzCoCBpIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDcg ImNvbnN0X2ludF9vcGVyYW5kIsKgICLCoCBpLMKgIGksIGkswqAgaSIpCivCoCDCoCDCoCAobWF0 Y2hfb3BlcmFuZCA4ICJjb25zdF9pbnRfb3BlcmFuZCLCoCAiwqAgaSzCoCBpLCBpLMKgIGkiKQor wqAgwqAgwqAgKHJlZzpTSSBWTF9SRUdOVU0pCivCoCDCoCDCoCAocmVnOlNJIFZUWVBFX1JFR05V TSldIFVOU1BFQ19USF9WTFhNRU1fT1ApCisgwqAgKHVuc3BlYzpWSQorIMKgIMKgIFsobWF0Y2hf b3BlcmFuZCAzICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIsKgIMKgICIgckosIHJKLHJKLCBySiIp CivCoCDCoCDCoCAobWVtOkJMSyAoc2NyYXRjaCkpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZDpW SSA0ICJyZWdpc3Rlcl9vcGVyYW5kIiAiIHZyLCB2cix2ciwgdnIiKV0gVU5TUEVDX1RIX1ZMWE1F TV9PUCkKKyDCoCAobWF0Y2hfb3BlcmFuZDpWSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgwqAg wqAgwqAgIiB2dSwgdnUsIDAswqAgMCIpKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8Kg ICJ2bHg8dmxtZW1fb3BfYXR0cj4udlx0JTAsKCV6MyksJTQlcDEiCivCoCBbKHNldF9hdHRyICJ0 eXBlIiAidmxkdXgiKQorIMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKworKGRlZmlu ZV9pbnNuICJAcHJlZF9pbmRleGVkXzx2bG1lbV9vcmRlcl9hdHRyPnN0b3JlX3dpZHRoPHZsbWVt X29wX2F0dHI+PG1vZGU+IgorwqAgWyhzZXQgKG1lbTpCTEsgKHNjcmF0Y2gpKQorICh1bnNwZWM6 QkxLCisgwqAgWyh1bnNwZWM6PFZNPgorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDAgInZl Y3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdjMSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA0ICJ2 ZWN0b3JfbGVuZ3RoX29wZXJhbmQiwqAgwqAgIiDCoCBySyIpCivCoCDCoCDCoCAobWF0Y2hfb3Bl cmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCIgIsKgIMKgIGkiKQorwqAgwqAgwqAgKHJlZzpTSSBW TF9SRUdOVU0pCivCoCDCoCDCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WU1hN RU1fT1ApCivCoCDCoCAobWF0Y2hfb3BlcmFuZCAxICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIsKg IMKgIMKgICLCoCBySiIpCivCoCDCoCAobWF0Y2hfb3BlcmFuZDpWSSAyICJyZWdpc3Rlcl9vcGVy YW5kIiAiwqAgdnIiKQorwqAgwqAgKG1hdGNoX29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3BlcmFu ZCLCoCAiwqAgdnIiKV0gVU5TUEVDX1RIX1ZTWE1FTV9PUCkpXQorwqAgIlRBUkdFVF9YVEhFQURW RUNUT1IiCivCoCAidnM8dmxtZW1fb3JkZXJfYXR0cj54PHZsbWVtX29wX2F0dHI+LnZcdCUzLCgl ejEpLCUyJXAwIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZzdHV4IikKKyDCoCAoc2V0X2F0dHIg Im1vZGUiICI8TU9ERT4iKV0pCisKKyhkZWZpbmVfZXhwYW5kICJAcHJlZF90aF9leHRyYWN0PG1v ZGU+IgorwqAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFuZCIp CisgKHVuc3BlYzo8VkVMPgorIMKgIFsodmVjX3NlbGVjdDo8VkVMPgorwqAgwqAgwqAgKG1hdGNo X29wZXJhbmQ6Vl9WTFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiKQorwqAgwqAgwqAgKHBhcmFsbGVs IFsobWF0Y2hfb3BlcmFuZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXSkpCivCoCDCoCAo cmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19WUFJFRElDQVRFKSldCivCoCAiVEFSR0VUX1hU SEVBRFZFQ1RPUiIKK3t9KQorCisoZGVmaW5lX2luc24gIipwcmVkX3RoX2V4dHJhY3Q8bW9kZT4i CivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDo8VkVMPiAwICJyZWdpc3Rlcl9vcGVyYW5kIiDCoCAi PXIiKQorwqAgKHVuc3BlYzo8VkVMPgorwqAgwqAgWyh2ZWNfc2VsZWN0OjxWRUw+CisgwqAgwqAg wqAgKG1hdGNoX29wZXJhbmQ6Vl9WTFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2ciIpCisgwqAg wqAgwqAgKHBhcmFsbGVsIFsobWF0Y2hfb3BlcmFuZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAi ciIpXSkpCisgwqAgwqAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVlBSRURJQ0FURSkp XQorwqAgIlRBUkdFVF9YVEhFQURWRUNUT1IiCivCoCAidmV4dC54LnZcdCUwLCUxLCUyIgorwqAg WyhzZXRfYXR0ciAidHlwZSIgInZpbW92dngiKQorIMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RF PiIpXSkKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRo ZWFkdmVjdG9yL3ZsYi12c2IuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3ZsYi12c2IuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uM2MxMmMxMjQ1OTcKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmMKQEAgLTAsMCArMSw2OCBAQAor LyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0 aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2st ZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovCisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9y LmgiCisKKy8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hCisq KiB0aC52bGJcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsYlwudlx0dlswLTld KywwXChbYS14MC05XStcKQorKiogdGgudmFkZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2 WzAtOV0rCisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSsKKyoq IHRoLnZzYlwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMSAo dm9pZCAqIGluLCB2b2lkICpvdXQpCit7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3Ro X3ZsYl92X2kzMm0xIChpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92 bGJfdl9pMzJtMV90dSAodiwgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3Zf dmFkZF92dl9pMzJtMSAodjIsIHYyLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2 X3ZhZGRfdnZfaTMybTFfdHUgKHYzLCB2MiwgdjIsIDQpOworwqAgwqAgX19yaXNjdl90aF92c2Jf dl9pMzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMjoKKyoqIHRoLnZzZXR2bGlcdFth LXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hCisqKiB0aC52bGIudlx0 dlswLTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2 WzAtOV0rLFxzKnZbMC05XSsKKyoqIHRoLnZhZGRcLnZ2XHR2WzEtOV1bMC05XT8sXHMqdlswLTld Kyxccyp2WzAtOV0rLFxzKnYwLnQKKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp CisqKiByZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCkKK3sKK8KgIMKgIHZi b29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6 OiJtZW1vcnkiKTsKK8KgIMKgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTEg KGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xX20g KG1hc2ssIGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMy bTEgKHYyLCB2MiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z2X2kz Mm0xX20gKG1hc2ssIHYzLCB2MywgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzYl92X2kzMm0xIChv dXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYzOgorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHpl cm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQorKiog dGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUKKyoqIHRoLnZsYlwudlx0dlswLTldKyww XChbYS14MC05XStcKQorKiogdGgudmxiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAor KiogdGgudmFkZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rCisqKiB0aC52YWRk XC52dlx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqdlswLTldKyxccyp2MC50CisqKiB0aC52 c2Iudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMyAodm9pZCAq IGluLCB2b2lkICpvdXQpCit7CivCoCDCoCB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90Kilp bjsKK8KgIMKgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CivCoCDCoCB2aW50MzJtMV90 IHYgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xIChpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYy ID0gX19yaXNjdl90aF92bGJfdl9pMzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7CivCoCDCoCB2 aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z2X2kzMm0xICh2MiwgdjIsIDQpOworwqAgwqAg dmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMV90dW11IChtYXNrLCB2MywgdjIs IHYyLCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3IvdmxidS12c2IuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3ZsYnUtdnNiLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjMwYmVmMzY5Mzc1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYwpAQCAtMCwwICsxLDY4IEBACisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFk dmVjdG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5j dGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCIK KworLyoKKyoqIGYxOgorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRo LnZsYnVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsYnVcLnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2 CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnNiXC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4s IHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2 X3RoX3ZsYnVfdl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2 X3RoX3ZsYnVfdl91MzJtMV90dSAodiwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBf X3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjQg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlz Y3ZfdGhfdnNiX3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52 c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiog dGgudmxidS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2 WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxz KnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiByZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3Qg eCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNt IHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2 X3RoX3ZsYnVfdl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2 X3RoX3ZsYnVfdl91MzJtMV9tIChtYXNrLCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9 IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2 NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsKK8KgIMKgIF9f cmlzY3ZfdGhfdnNiX3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0 aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQor KiogdGgudmxidVwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmxidS52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05 XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2 LFxzKnYwLnQKKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyov Cit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZi b29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6 OiJtZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJt MSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJt MV90dW11IChtYXNrLCB2LCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3Zf dmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlz Y3ZfdmFkZF92eF91MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jp c2N2X3RoX3ZzYl92X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2M4YjVjY2MxNmIKLS0tIC9kZXYv bnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rv ci92bGgtdnNoLmMKQEAgLTAsMCArMSw2OCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8z IiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9 ICovCisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiCisKKy8qCisqKiBmMToKKyoqIHRoLnZz ZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hCisqKiB0aC52bGhcLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkKKyoqIHRoLnZsaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmFk ZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0r LFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52c2hcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkK KyoqIHJldAorKi8KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7 CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xIChpbiwgNCk7CivC oCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGhfdl9pMzJtMV90dSAodiwgaW4sIDQp OworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwg NCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1ICh2Mywg djIsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzaF92X2kzMm0xIChvdXQsIHY0LCA0KTsK K30KKworLyoKKyoqIGYyOgorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRh LG1hCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudnNldGl2bGlc dHplcm8sNCxlMzIsbTEsdGEsbWEKKyoqIHRoLnZsaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp LHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52 YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZz aC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYyICh2b2lkICog aW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQoreworwqAgwqAgdmJvb2wzMl90IG1hc2sgPSAqKHZi b29sMzJfdCopaW47CivCoCDCoCBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworwqAgwqAg dmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGhfdl9pMzJtMSAoaW4sIDQpOworwqAgwqAgdmlu dDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTFfbSAobWFzaywgaW4sIDQpOworwqAg wqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7CivC oCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX20gKG1hc2ssIHYzLCAt MTYsIDQpOworwqAgwqAgX19yaXNjdl90aF92c2hfdl9pMzJtMSAob3V0LCB2NCwgNCk7Cit9CisK Ky8qCisqKiBmMzoKKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQor KiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJv LDQsZTMyLG0xLHR1LG11CisqKiB0aC52bGhcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoq IHRoLnZsaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2 WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxz KnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiByZXQKKyovCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4 KQoreworwqAgwqAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CivCoCDCoCBhc20g dm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworwqAgwqAgdmludDMybTFfdCB2ID0gX19yaXNjdl90 aF92bGhfdl9pMzJtMSAoaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhf dmxoX3ZfaTMybTFfdHVtdSAobWFzaywgdiwgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9 IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0 ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsKK8Kg IMKgIF9fcmlzY3ZfdGhfdnNoX3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2gu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaHUt dnNoLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI3YzAwNDA0ZjE4 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94 dGhlYWR2ZWN0b3IvdmxodS12c2guYwpAQCAtMCwwICsxLDY4IEBACisvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJp PWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMg IioqIiAiIiB9IH0gKi8KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCIKKworLyoKKyoqIGYx OgorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRoLnZsaHVcLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsaHVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRk XC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnNoXC52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwg dWludDMyX3QgeCkKK3sKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91 MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91 MzJtMV90dSAodiwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRf dnhfdTMybTEgKHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3Zh ZGRfdnhfdTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNoX3Zf dTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRbYS14 MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiogdGgudmxodS52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZb MC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMq LTE2LFxzKnYwLnQKKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQK KyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKg IHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgi Ijo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91 MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91 MzJtMV9tIChtYXNrLCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFk ZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3Zf dmFkZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNo X3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRb YS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmxodVwu dlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmxodS52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2Cisq KiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoq IHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYzICh2 b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNr ID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsK K8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMSAoaW4sIDQpOwor wqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV90dW11IChtYXNr LCB2LCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJt MSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzaF92 X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTdhNTMwMTJhY2YKLS0tIC9kZXYvbnVsbAorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmMK QEAgLTAsMCArMSw2OCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9u cyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovCisvKiB7 IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovCisjaW5jbHVk ZSAicmlzY3ZfdGhfdmVjdG9yLmgiCisKKy8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxpXHR6ZXJv LDQsZTMyLG0xLHR1LG1hCisqKiB0aC52bHdcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoq IHRoLnZsd1wudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmFkZFwudnhcdHZbMC05 XSssXHMqdlswLTldKyxccypbYS14MC05XSsKKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxzKnZb MC05XSssXHMqW2EteDAtOV0rCisqKiB0aC52c3dcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkK KyoqIHJldAorKi8KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7 CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChpbiwgNCk7CivC oCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHdfdl9pMzJtMV90dSAodiwgaW4sIDQp OworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIHgsIDQp OworwqAgwqAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dSAodjMsIHYy LCB4LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQor CisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEK KyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVy byw0LGUzMixtMSx0YSxtYQorKiogdGgudmx3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAu dAorKiogdGgudmFkZFwudnhcdHZbMC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsKKyoqIHRo LnZhZGRcLnZ4XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccypbYS14MC05XSssXHMqdjAudAor KiogdGgudnN3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjIg KHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CivCoCDCoCB2Ym9vbDMyX3QgbWFz ayA9ICoodmJvb2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7 CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChpbiwgNCk7CivC oCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHdfdl9pMzJtMV9tIChtYXNrLCBpbiwg NCk7CivCoCDCoCB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgeCwg NCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX20gKG1hc2ss IHYzLCB4LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOwor fQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEs bWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0 emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmx3XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp CisqKiB0aC52bHcudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRkXC52 eFx0dlswLTldKyxccyp2WzAtOV0rLFxzKlthLXgwLTldKworKiogdGgudmFkZFwudnhcdHZbMS05 XVswLTldPyxccyp2WzAtOV0rLFxzKlthLXgwLTldKyxccyp2MC50CisqKiB0aC52c3cudlx0dlsw LTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMyAodm9pZCAqIGluLCB2b2lk ICpvdXQsIGludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3Qq KWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZpbnQzMm0x X3QgdiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTEgKGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3Qg djIgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsKK8KgIMKg IHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCB4LCA0KTsKK8KgIMKg IHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHVtdSAobWFzaywgdjMsIHYy LCB4LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3Ivdmx3dS12c3cuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3Zsd3UtdnN3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmIxODdjZmM4NTJiCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYwpAQCAtMCwwICsxLDY4IEBACisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFk dmVjdG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5j dGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCIK KworLyoKKyoqIGYxOgorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRo LnZsd3VcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsd3VcLnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCkKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2 CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnN3XC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4s IHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2 X3RoX3Zsd3Vfdl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2 X3RoX3Zsd3Vfdl91MzJtMV90dSAodiwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBf X3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjQg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlz Y3ZfdGhfdnN3X3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52 c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiog dGgudmx3dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2 WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxz KnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiByZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3Qg eCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNt IHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2 X3RoX3Zsd3Vfdl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2 X3RoX3Zsd3Vfdl91MzJtMV9tIChtYXNrLCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9 IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2 NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsKK8KgIMKgIF9f cmlzY3ZfdGhfdnN3X3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0 aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQor KiogdGgudmx3dVwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmx3dS52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05 XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2 LFxzKnYwLnQKKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyov Cit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZi b29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6 OiJtZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJt MSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJt MV90dW11IChtYXNrLCB2LCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3Zf dmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlz Y3ZfdmFkZF92eF91MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jp c2N2X3RoX3Zzd192X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KLS0gCjIuMTcuMQogCiAKCgo=