From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 0A7BA3858C78 for ; Fri, 17 Feb 2023 11:46:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0A7BA3858C78 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.97,304,1669104000"; d="scan'208,223";a="98592992" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 17 Feb 2023 03:46:44 -0800 IronPort-SDR: oBMzpmBeROtHhM1nGKyqjR3IxPuQAI2JUAVH7mvmww2bap1/48CeJQRHCAU7+pCFBhAqUMy2/k QA0wom0Y3dS+7N253F2QmaCGwyfSyIaKBHdCZQaTPkWRYFHg7NpDbRrrIni86R/3B9TSYJYF/q yEcSnqQXVDGvU9uOCNw7edoR2zUKhvBv2r9WvKbrh6vqS0+pRYqKWuNQ1EtFQTDhmGbuYnUbCu dReo7Ogfbv0HUWaZK+uktfcjVmGFQxFQcE0KYSneqPGY9moRqyZMEY1uFZJ0nxL256g3v4Cii2 nhg= Content-Type: multipart/mixed; boundary="------------osgsgKVE8nEHFQWYFsQ0z73a" Message-ID: Date: Fri, 17 Feb 2023 11:45:33 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 To: gcc-patches , Jakub Jelinek References: <6eb5d0dd-da2a-6d8e-eaa2-d14bf708cf36@codesourcery.com> Subject: [PATCHv2] openmp: Add support for 'present' modifier From: Kwok Cheung Yeung In-Reply-To: <6eb5d0dd-da2a-6d8e-eaa2-d14bf708cf36@codesourcery.com> X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-14.mgc.mentorg.com (139.181.222.14) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP 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: --------------osgsgKVE8nEHFQWYFsQ0z73a Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit Hello This is a revised version of the patch for the 'present' modifier for OpenMP. Compared to the first version, three improvements have been made: - A bug which caused bootstrapping with a '-m32' multilib on x86-64 to fail due to pointer size issues has been fixed. - The Fortran parse tree dump now shows clauses with 'present' applied. - The reordering of OpenMP clauses has been moved to gimplify_scan_omp_clauses, where the other clause reordering rules are applied. Thanks Kwok --------------osgsgKVE8nEHFQWYFsQ0z73a Content-Type: text/plain; charset="UTF-8"; name="0001-openmp-Add-support-for-the-present-modifier.patch" Content-Disposition: attachment; filename="0001-openmp-Add-support-for-the-present-modifier.patch" Content-Transfer-Encoding: base64 RnJvbSAyNGI2MjI1NTc4YmIwOGJiZDc0NWQ2ZWM2NTNhYWI2MDgwMmRkMjIwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLd29rIENoZXVuZyBZZXVuZyA8a2N5QGNvZGVzb3Vy Y2VyeS5jb20+CkRhdGU6IEZyaSwgMyBGZWIgMjAyMyAxMzowNDoyMSArMDAwMApTdWJqZWN0 OiBbUEFUQ0hdIG9wZW5tcDogQWRkIHN1cHBvcnQgZm9yIHRoZSAncHJlc2VudCcgbW9kaWZp ZXIKClRoaXMgaW1wbGVtZW50cyBzdXBwb3J0IGZvciB0aGUgT3Blbk1QIDUuMSAncHJlc2Vu dCcgbW9kaWZpZXIsIHdoaWNoIGNhbiBiZQp1c2VkIGluIG1hcCBjbGF1c2VzIGluIHRoZSAn dGFyZ2V0JywgJ3RhcmdldCBkYXRhJywgJ3RhcmdldCBkYXRhIGVudGVyJyBhbmQKJ3Rhcmdl dCBkYXRhIGV4aXQnIGNvbnN0cnVjdHMsIGFuZCBpbiB0aGUgJ3RvJyBhbmQgJ2Zyb20nIGNs YXVzZXMgb2YgdGhlCid0YXJnZXQgdXBkYXRlJyBjb25zdHJ1Y3QuICBJdCBpcyBhbHNvIHN1 cHBvcnRlZCBpbiBkZWZhdWx0bWFwLgoKVGhlIG1vZGlmaWVyIHRyaWdnZXJzIGEgZmF0YWwg cnVudGltZSBlcnJvciBpZiB0aGUgZGF0YSBzcGVjaWZpZWQgYnkgdGhlCmNsYXVzZSBpcyBu b3QgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSB0YXJnZXQgZGV2aWNlLiAgSXQgY2FuIGFsc28g YmUgY29tYmluZWQKd2l0aCAnYWx3YXlzJyBpbiBtYXAgY2xhdXNlcy4KCjIwMjMtMDItMDEg IEt3b2sgQ2hldW5nIFlldW5nICA8a2N5QGNvZGVzb3VyY2VyeS5jb20+CgoJZ2NjL2MvCgkq IGMtcGFyc2VyLmNjIChjX3BhcnNlcl9vbXBfdmFyaWFibGVfbGlzdCk6IFNldCBkZWZhdWx0 IG1vdGlvbgoJbW9kaWZpZXIuCgkoY19wYXJzZXJfb21wX3Zhcl9saXN0X3BhcmVucyk6IEFk ZCBuZXcgcGFyYW1ldGVyIHdpdGggZGVmYXVsdC4gIFBhcnNlCgkncHJlc2VudCcgbW90aW9u IG1vZGlmaWVyIGFuZCBhcHBseS4KCShjX3BhcnNlcl9vbXBfY2xhdXNlX2RlZmF1bHRtYXAp OiBQYXJzZSAncHJlc2VudCcgaW4gZGVmYXVsdG1hcC4KCShjX3BhcnNlcl9vbXBfY2xhdXNl X21hcCk6IFBhcnNlICdwcmVzZW50JyBtb2RpZmllciBpbiBtYXAgY2xhdXNlcy4KCShjX3Bh cnNlcl9vbXBfY2xhdXNlX3RvKTogQWxsb3cgdXNlIG9mICdwcmVzZW50JyBpbiB2YXJpYWJs ZSBsaXN0LgoJKGNfcGFyc2VyX29tcF9jbGF1c2VfZnJvbSk6IExpa2V3aXNlLgoJKGNfcGFy c2VyX29tcF90YXJnZXRfZGF0YSk6IEFsbG93IG1hcCBjbGF1c2VzIHdpdGggJ3ByZXNlbnQn Cgltb2RpZmllcnMuCgkoY19wYXJzZXJfb21wX3RhcmdldF9lbnRlcl9kYXRhKTogTGlrZXdp c2UuCgkoY19wYXJzZXJfb21wX3RhcmdldF9leGl0X2RhdGEpOiBMaWtld2lzZS4KCShjX3Bh cnNlcl9vbXBfdGFyZ2V0KTogTGlrZXdpc2UuCgoJZ2NjL2NwLwoJKiBwYXJzZXIuY2MgKGNw X3BhcnNlcl9vbXBfdmFyX2xpc3Rfbm9fb3Blbik6IEFkZCBuZXcgcGFyYW1ldGVyIHdpdGgK CWRlZmF1bHQuICBQYXJzZQkncHJlc2VudCcgbW90aW9uIG1vZGlmaWVyIGFuZCBhcHBseS4K CShjcF9wYXJzZXJfb21wX2NsYXVzZV9kZWZhdWx0bWFwKTogUGFyc2UgJ3ByZXNlbnQnIGlu IGRlZmF1bHRtYXAuCgkoY3BfcGFyc2VyX29tcF9jbGF1c2VfbWFwKTogUGFyc2UgJ3ByZXNl bnQnIG1vZGlmaWVyIGluIG1hcCBjbGF1c2VzLgoJKGNwX3BhcnNlcl9vbXBfYWxsX2NsYXVz ZXMpOiBBbGxvdyB1c2Ugb2YgJ3ByZXNlbnQnIGluICd0bycgYW5kICdmcm9tJwoJY2xhdXNl cy4KCShjcF9wYXJzZXJfb21wX3RhcmdldF9kYXRhKTogQWxsb3cgbWFwIGNsYXVzZXMgd2l0 aCAncHJlc2VudCcKCW1vZGlmaWVycy4KCShjcF9wYXJzZXJfb21wX3RhcmdldF9lbnRlcl9k YXRhKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX29tcF90YXJnZXRfZXhpdF9kYXRhKTogTGlr ZXdpc2UuCgkqIHNlbWFudGljcy5jYyAoZmluaXNoX29tcF90YXJnZXQpOiBBY2NlcHQgbWFw IGNsYXVzZXMgd2l0aCAncHJlc2VudCcKCW1vZGlmaWVycy4KCglnY2MvZm9ydHJhbi8KCSog ZHVtcC1wYXJzZS10cmVlLmNjIChzaG93X29tcF9uYW1lbGlzdCk6IERpc3BsYXkgJ3ByZXNl bnQnIG1hcAoJbW9kaWZpZXIuCgkoc2hvd19vbXBfY2xhdXNlcyk6IERpc3BsYXkgJ3ByZXNl bnQnIG1vdGlvbiBtb2RpZmllciBmb3IgJ3RvJwoJYW5kICdmcm9tJyBjbGF1c2VzLgoJKiBn Zm9ydHJhbi5oIChlbnVtIGdmY19vbXBfbWFwX29wKTogQWRkIGVudHJpZXMgd2l0aCAncHJl c2VudCcKCW1vZGlmaWVycy4KCShlbnVtIGdmY19vbXBfbW90aW9uX21vZGlmaWVyKTogTmV3 LgoJKHN0cnVjdCBnZmNfb21wX25hbWVsaXN0KTogQWRkIG1vdGlvbl9tb2RpZmllciBmaWVs ZC4KCSogb3Blbm1wLmNjIChnZmNfbWF0Y2hfb21wX3ZhcmlhYmxlX2xpc3QpOiBBZGQgbmV3 IHBhcmFtZXRlciB3aXRoCglkZWZhdWx0LiAgUGFyc2UgJ3ByZXNlbnQnIG1vdGlvbiBtb2Rp ZmllciBhbmQgYXBwbHkuCgkoZ2ZjX21hdGNoX29tcF9jbGF1c2VzKTogUGFyc2UgJ3ByZXNl bnQnIGluIGRlZmF1bHRtYXAsICdmcm9tJwoJY2xhdXNlcywgJ21hcCcgY2xhdXNlcyBhbmQg J3RvJyBjbGF1c2VzLgoJKHJlc29sdmVfb21wX2NsYXVzZXMpOiBBbGxvdyAncHJlc2VudCcg bW9kaWZpZXJzIG9uICd0YXJnZXQnLAoJJ3RhcmdldCBkYXRhJywgJ3RhcmdldCBlbnRlcicg YW5kICd0YXJnZXQgZXhpdCcJZGlyZWN0aXZlcy4KCSogdHJhbnMtb3Blbm1wLmNjIChnZmNf dHJhbnNfb21wX2NsYXVzZXMpOiBBcHBseSAncHJlc2VudCcgbW9kaWZpZXJzCgl0byB0cmVl IG5vZGUgZm9yICdtYXAnLCAndG8nIGFuZCAnZnJvbScJY2xhdXNlcy4gIEFwcGx5ICdwcmVz ZW50JyBmb3IKCWRlZmF1bHRtYXAuCgoJZ2NjLwoJKiBnaW1wbGlmeS5jYyAob21wX25vdGlj ZV92YXJpYWJsZSk6IEFwcGx5IEdPVkRfTUFQX0FMTE9DX09OTFkgZmxhZwoJYW5kIGRlZmF1 bHRtYXAgZmxhZ3MgaWYgdGhlIGRlZmF1bHRtYXAgaGFzIEdPVkRfTUFQX0ZPUkNFX1BSRVNF TlQgZmxhZwoJc2V0LgoJKG9tcF9nZXRfYXR0YWNobWVudCk6IEhhbmRsZSBtYXAgY2xhdXNl cyB3aXRoICdwcmVzZW50JyBtb2RpZmllci4KCShvbXBfZ3JvdXBfYmFzZSk6IExpa2V3aXNl LgoJKGdpbXBsaWZ5X3NjYW5fb21wX2NsYXVzZXMpOiBSZW9yZGVyIHByZXNlbnQgbWFwcyB0 byBjb21lIGZpcnN0LgoJU2V0IEdPVkQgZmxhZ3MgZm9yIHByZXNlbnQgZGVmYXVsdG1hcHMu CgkoZ2ltcGxpZnlfYWRqdXN0X29tcF9jbGF1c2VzXzEpOiBTZXQgbWFwIGtpbmQgZm9yIHBy ZXNlbnQgZGVmYXVsdG1hcHMuCgkqIG9tcC1sb3cuY2MgKHNjYW5fc2hhcmluZ19jbGF1c2Vz KTogSGFuZGxlICdhbHdheXMsIHByZXNlbnQnIG1hcAoJY2xhdXNlcy4KCShsb3dlcl9vbXBf dGFyZ2V0KTogSGFuZGxlIG1hcCBjbGF1c2VzIHdpdGggJ3ByZXNlbnQnIG1vZGlmaWVyLgoJ SGFuZGxlICd0bycgYW5kICdmcm9tJyBjbGF1c2VzIHdpdGggJ3ByZXNlbnQnLgoJKiB0cmVl LWNvcmUuaCAoZW51bSBvbXBfY2xhdXNlX2RlZmF1bHRtYXBfa2luZCk6IEFkZAoJT01QX0NM QVVTRV9ERUZBVUxUTUFQX1BSRVNFTlQgZGVmYXVsdG1hcCBraW5kLgoJKGVudW0gb21wX2Ns YXVzZV9tb3Rpb25fbW9kaWZpZXIpOiBOZXcuCgkoc3RydWN0IHRyZWVfb21wX2NsYXVzZSk6 IEFkZCBtb3Rpb25fbW9kaWZpZXIgZmllbGQuCgkqIHRyZWUtcHJldHR5LXByaW50LmNjIChk dW1wX29tcF9jbGF1c2UpOiBIYW5kbGUgJ21hcCcsICd0bycgYW5kCgknZnJvbScgY2xhdXNl cyB3aXRoICdwcmVzZW50JyBtb2RpZmllci4gIEhhbmRsZSBwcmVzZW50IGRlZmF1bHRtYXAu CgkqIHRyZWUuaCAoT01QX0NMQVVTRV9NT1RJT05fTU9ESUZJRVIpOiBOZXcuCgkoT01QX0NM QVVTRV9TRVRfTU9USU9OX01PRElGSUVSKTogTmV3LgoKCWdjYy90ZXN0c3VpdGUvCgkqIGMt YysrLWNvbW1vbi9nb21wL2RlZmF1bHRtYXAtNC5jOiBOZXcuCgkqIGMtYysrLWNvbW1vbi9n b21wL21hcC02LmM6IFVwZGF0ZSBleHBlY3RlZCBlcnJvciBtZXNzYWdlcy4KCSogYy1jKyst Y29tbW9uL2dvbXAvbWFwLTguYzogTmV3LgoJKiBjLWMrKy1jb21tb24vZ29tcC90YXJnZXQt dXBkYXRlLTEuYzogTmV3LgoJKiBnZm9ydHJhbi5kZy9nb21wL2RlZmF1bHRtYXAtMS5mOTA6 IFVwZGF0ZSBleHBlY3RlZCBlcnJvciBtZXNzYWdlcy4KCSogZ2ZvcnRyYW4uZGcvZ29tcC9k ZWZhdWx0bWFwLTguZjkwOiBOZXcuCgkqIGdmb3J0cmFuLmRnL2dvbXAvbWFwLTkuZjkwOiBO ZXcuCgkqIGdmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0LXVwZGF0ZS0xLmY5MDogTmV3LgoKCWlu Y2x1ZGUvCgkqIGdvbXAtY29uc3RhbnRzLmggKEdPTVBfTUFQX0ZMQUdfU1BFQ0lBTF81KTog TmV3LgoJKEdPTVBfTUFQX0ZMQUdfRk9SQ0UpOiBSZWRlZmluZS4KCShHT01QX01BUF9GTEFH X1BSRVNFTlQpOiBOZXcuCgkoR09NUF9NQVBfRkxBR19BTFdBWVNfUFJFU0VOVCk6IE5ldy4K CShlbnVtIGdvbXBfbWFwX2tpbmQpOiBBZGQgbWFwIGtpbmRzIHdpdGggJ3ByZXNlbnQnIG1v ZGlmaWVycy4KCShHT01QX01BUF9DT1BZX1RPX1ApOiBFdmFsdWF0ZSB0byB0cnVlIGZvciBt YXAgdmFyaWFudHMgd2l0aCAncHJlc2VudCcKCW1vZGlmaWVycy4KCShHT01QX01BUF9DT1BZ X0ZST01fUCk6IExpa2V3aXNlLgoJKEdPTVBfTUFQX0FMV0FZU19UT19QKTogRXZhbHVhdGUg dG8gdHJ1ZSBmb3IgbWFwIHZhcmlhbnRzIHdpdGgKCSdhbHdheXMsIHByZXNlbnQnIG1vZGlm aWVycy4KCShHT01QX01BUF9BTFdBWVNfRlJPTV9QKTogTGlrZXdpc2UuCgkoR09NUF9NQVBf QUxXQVlTKTogUmVkZWZpbmUuCgkoR09NUF9NQVBfRk9SQ0VfUCk6IE5ldy4KCShHT01QX01B UF9QUkVTRU5UX1ApOiBOZXcuCgoJbGliZ29tcC8KCSogdGFyZ2V0LmMgKGdvbXBfdG9fZGV2 aWNlX2tpbmRfcCk6IEFkZCBtYXAga2luZHMgd2l0aCAncHJlc2VudCcKCW1vZGlmaWVyLgoJ KGdvbXBfbWFwX3ZhcnNfZXhpc3RpbmcpOiBVc2UgbmV3IEdPTVBfTUFQX0ZPUkNFX1AgbWFj cm8uCgkoZ29tcF9tYXBfdmFyc19pbnRlcm5hbCk6IEVtaXQgcnVudGltZSBlcnJvciBpZiBt ZW1vcnkgcmVnaW9uIG5vdAoJcHJlc2VudC4KCShnb21wX3VwZGF0ZSk6IExpa2V3aXNlLgoJ KGdvbXBfdGFyZ2V0X3Jldik6IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGliZ29tcC5jLWMr Ky1jb21tb24vdGFyZ2V0LXByZXNlbnQtMS5jOiBOZXcuCgkqIHRlc3RzdWl0ZS9saWJnb21w LmMtYysrLWNvbW1vbi90YXJnZXQtcHJlc2VudC0yLmM6IE5ldy4KCSogdGVzdHN1aXRlL2xp YmdvbXAuYy1jKystY29tbW9uL3RhcmdldC1wcmVzZW50LTMuYzogTmV3LgoJKiB0ZXN0c3Vp dGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1wcmVzZW50LTEuZjkwOiBOZXcuCgkqIHRlc3Rz dWl0ZS9saWJnb21wLmZvcnRyYW4vdGFyZ2V0LXByZXNlbnQtMi5mOTA6IE5ldy4KCSogdGVz dHN1aXRlL2xpYmdvbXAuZm9ydHJhbi90YXJnZXQtcHJlc2VudC0zLmY5MDogTmV3LgotLS0K IGdjYy9jL2MtcGFyc2VyLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwNiAr KysrKysrKysrKysrKysrLS0KIGdjYy9jcC9wYXJzZXIuY2MgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDEwMyArKysrKysrKysrKysrKystLQogZ2NjL2NwL3NlbWFudGljcy5j YyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsrCiBnY2MvZm9ydHJhbi9kdW1w LXBhcnNlLXRyZWUuY2MgICAgICAgICAgICAgICAgfCAgMTUgKysrCiBnY2MvZm9ydHJhbi9n Zm9ydHJhbi5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTYgKystCiBnY2MvZm9ydHJh bi9vcGVubXAuY2MgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzcgKysrKysrKysrKyst LQogZ2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNjICAgICAgICAgICAgICAgICAgIHwgIDMw ICsrKysrCiBnY2MvZ2ltcGxpZnkuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgNjkgKysrKysrKysrKysrCiBnY2Mvb21wLWxvdy5jYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMjYgKysrKy0KIC4uLi9jLWMrKy1jb21tb24vZ29tcC9kZWZhdWx0 bWFwLTQuYyAgICAgICAgICB8ICAyNCArKysrCiBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1v bi9nb21wL21hcC02LmMgICAgICAgfCAgIDQgKy0KIGdjYy90ZXN0c3VpdGUvYy1jKystY29t bW9uL2dvbXAvbWFwLTguYyAgICAgICB8ICAzMiArKysrKysKIC4uLi9jLWMrKy1jb21tb24v Z29tcC90YXJnZXQtdXBkYXRlLTEuYyAgICAgICB8ICAxNSArKysKIC4uLi9nZm9ydHJhbi5k Zy9nb21wL2RlZmF1bHRtYXAtMS5mOTAgICAgICAgICB8ICAgMiArLQogLi4uL2dmb3J0cmFu LmRnL2dvbXAvZGVmYXVsdG1hcC04LmY5MCAgICAgICAgIHwgIDI2ICsrKysrCiBnY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvbWFwLTkuZjkwICAgICAgfCAgMzQgKysrKysrCiAu Li4vZ2ZvcnRyYW4uZGcvZ29tcC90YXJnZXQtdXBkYXRlLTEuZjkwICAgICAgfCAgMTMgKysr CiBnY2MvdHJlZS1jb3JlLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkg Ky0KIGdjYy90cmVlLXByZXR0eS1wcmludC5jYyAgICAgICAgICAgICAgICAgICAgICB8ICAy OCArKysrKwogZ2NjL3RyZWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA2ICsKIGluY2x1ZGUvZ29tcC1jb25zdGFudHMuaCAgICAgICAgICAgICAgICAgICAg ICB8ICA0NyArKysrKystLQogbGliZ29tcC90YXJnZXQuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDY2ICsrKysrKysrKystCiAuLi4vbGliZ29tcC5jLWMrKy1jb21tb24v dGFyZ2V0LXByZXNlbnQtMS5jICAgfCAgMjcgKysrKysKIC4uLi9saWJnb21wLmMtYysrLWNv bW1vbi90YXJnZXQtcHJlc2VudC0yLmMgICB8ICAyNyArKysrKwogLi4uL2xpYmdvbXAuYy1j KystY29tbW9uL3RhcmdldC1wcmVzZW50LTMuYyAgIHwgIDI3ICsrKysrCiAuLi4vbGliZ29t cC5mb3J0cmFuL3RhcmdldC1wcmVzZW50LTEuZjkwICAgICAgfCAgMzAgKysrKysKIC4uLi9s aWJnb21wLmZvcnRyYW4vdGFyZ2V0LXByZXNlbnQtMi5mOTAgICAgICB8ICAzMCArKysrKwog Li4uL2xpYmdvbXAuZm9ydHJhbi90YXJnZXQtcHJlc2VudC0zLmY5MCAgICAgIHwgIDIyICsr KysKIDI4IGZpbGVzIGNoYW5nZWQsIDg3MSBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21w L2RlZmF1bHRtYXAtNC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9jLWMr Ky1jb21tb24vZ29tcC9tYXAtOC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtdXBkYXRlLTEuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kZWZhdWx0bWFwLTguZjkwCiBj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL21hcC05 LmY5MAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29t cC90YXJnZXQtdXBkYXRlLTEuZjkwCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliZ29tcC90ZXN0 c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vdGFyZ2V0LXByZXNlbnQtMS5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vdGFy Z2V0LXByZXNlbnQtMi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliZ29tcC90ZXN0c3VpdGUv bGliZ29tcC5jLWMrKy1jb21tb24vdGFyZ2V0LXByZXNlbnQtMy5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1wcmVzZW50 LTEuZjkwCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5m b3J0cmFuL3RhcmdldC1wcmVzZW50LTIuZjkwCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliZ29t cC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1wcmVzZW50LTMuZjkwCgpkaWZm IC0tZ2l0IGEvZ2NjL2MvYy1wYXJzZXIuY2MgYi9nY2MvYy9jLXBhcnNlci5jYwppbmRleCA0 MzQyNzg4NmFkNC4uMDU3YTJjMDM5MzcgMTAwNjQ0Ci0tLSBhL2djYy9jL2MtcGFyc2VyLmNj CisrKyBiL2djYy9jL2MtcGFyc2VyLmNjCkBAIC0xNDAxNCw2ICsxNDAxNCw4IEBAIGNfcGFy c2VyX29tcF92YXJpYWJsZV9saXN0IChjX3BhcnNlciAqcGFyc2VyLAogCSAgICAgIHRyZWUg dSA9IGJ1aWxkX29tcF9jbGF1c2UgKGNsYXVzZV9sb2MsIGtpbmQpOwogCSAgICAgIE9NUF9D TEFVU0VfREVDTCAodSkgPSB0OwogCSAgICAgIE9NUF9DTEFVU0VfQ0hBSU4gKHUpID0gbGlz dDsKKwkgICAgICBpZiAoa2luZCA9PSBPTVBfQ0xBVVNFX0ZST00gfHwga2luZCA9PSBPTVBf Q0xBVVNFX1RPKQorCQlPTVBfQ0xBVVNFX1NFVF9NT1RJT05fTU9ESUZJRVIgKHUsIE9NUF9D TEFVU0VfTU9USU9OX05PTkUpOwogCSAgICAgIGxpc3QgPSB1OwogCSAgICB9CiAJfQpAQCAt MTQwNDEsNyArMTQwNDMsOCBAQCBjX3BhcnNlcl9vbXBfdmFyaWFibGVfbGlzdCAoY19wYXJz ZXIgKnBhcnNlciwKIAogc3RhdGljIHRyZWUKIGNfcGFyc2VyX29tcF92YXJfbGlzdF9wYXJl bnMgKGNfcGFyc2VyICpwYXJzZXIsIGVudW0gb21wX2NsYXVzZV9jb2RlIGtpbmQsCi0JCQkg ICAgICB0cmVlIGxpc3QsIGJvb2wgYWxsb3dfZGVyZWYgPSBmYWxzZSkKKwkJCSAgICAgIHRy ZWUgbGlzdCwgYm9vbCBhbGxvd19kZXJlZiA9IGZhbHNlLAorCQkJICAgICAgYm9vbCBhbGxv d19wcmVzZW50ID0gZmFsc2UpCiB7CiAgIC8qIFRoZSBjbGF1c2VzIGxvY2F0aW9uLiAgKi8K ICAgbG9jYXRpb25fdCBsb2MgPSBjX3BhcnNlcl9wZWVrX3Rva2VuIChwYXJzZXIpLT5sb2Nh dGlvbjsKQEAgLTE0MDQ5LDcgKzE0MDUyLDI2IEBAIGNfcGFyc2VyX29tcF92YXJfbGlzdF9w YXJlbnMgKGNfcGFyc2VyICpwYXJzZXIsIGVudW0gb21wX2NsYXVzZV9jb2RlIGtpbmQsCiAg IG1hdGNoaW5nX3BhcmVucyBwYXJlbnM7CiAgIGlmIChwYXJlbnMucmVxdWlyZV9vcGVuIChw YXJzZXIpKQogICAgIHsKKyAgICAgIGJvb2wgcHJlc2VudCA9IGZhbHNlOworCisgICAgICBp ZiAoYWxsb3dfcHJlc2VudCkKKwl7CisJICAgY190b2tlbiAqdG9rZW4gPSBjX3BhcnNlcl9w ZWVrX3Rva2VuIChwYXJzZXIpOworCisJICAgaWYgKHRva2VuLT50eXBlID09IENQUF9OQU1F CisJICAgICAgICYmIHN0cmNtcCAoSURFTlRJRklFUl9QT0lOVEVSICh0b2tlbi0+dmFsdWUp LCAicHJlc2VudCIpID09IDAKKwkgICAgICAgJiYgY19wYXJzZXJfcGVla18ybmRfdG9rZW4g KHBhcnNlciktPnR5cGUgPT0gQ1BQX0NPTE9OKQorCSAgICB7CisJICAgICAgcHJlc2VudCA9 IHRydWU7CisJICAgICAgY19wYXJzZXJfY29uc3VtZV90b2tlbiAocGFyc2VyKTsKKwkgICAg ICBjX3BhcnNlcl9jb25zdW1lX3Rva2VuIChwYXJzZXIpOworCSAgICB9CisJfQogICAgICAg bGlzdCA9IGNfcGFyc2VyX29tcF92YXJpYWJsZV9saXN0IChwYXJzZXIsIGxvYywga2luZCwg bGlzdCwgYWxsb3dfZGVyZWYpOworCisgICAgICBpZiAocHJlc2VudCkKKwlmb3IgKHRyZWUg Y2xhdXNlID0gbGlzdDsgY2xhdXNlOyBjbGF1c2UgPSBPTVBfQ0xBVVNFX0NIQUlOIChjbGF1 c2UpKQorCSAgT01QX0NMQVVTRV9TRVRfTU9USU9OX01PRElGSUVSIChjbGF1c2UsIE9NUF9D TEFVU0VfTU9USU9OX1BSRVNFTlQpOwogICAgICAgcGFyZW5zLnNraXBfdW50aWxfZm91bmRf Y2xvc2UgKHBhcnNlcik7CiAgICAgfQogICByZXR1cm4gbGlzdDsKQEAgLTE0OTMzLDYgKzE0 OTU1LDEzIEBAIGNfcGFyc2VyX29tcF9jbGF1c2VfZGVmYXVsdG1hcCAoY19wYXJzZXIgKnBh cnNlciwgdHJlZSBsaXN0KQogCWdvdG8gaW52YWxpZF9iZWhhdmlvcjsKICAgICAgIGJyZWFr OwogCisgICAgY2FzZSAncCc6CisgICAgICBpZiAoc3RyY21wICgicHJlc2VudCIsIHApID09 IDApCisJYmVoYXZpb3IgPSBPTVBfQ0xBVVNFX0RFRkFVTFRNQVBfUFJFU0VOVDsKKyAgICAg IGVsc2UKKwlnb3RvIGludmFsaWRfYmVoYXZpb3I7CisgICAgICBicmVhazsKKwogICAgIGNh c2UgJ3QnOgogICAgICAgaWYgKHN0cmNtcCAoInRvZnJvbSIsIHApID09IDApCiAJYmVoYXZp b3IgPSBPTVBfQ0xBVVNFX0RFRkFVTFRNQVBfVE9GUk9NOwpAQCAtMTcxMDMsNiArMTcxMzIs NyBAQCBjX3BhcnNlcl9vbXBfY2xhdXNlX21hcCAoY19wYXJzZXIgKnBhcnNlciwgdHJlZSBs aXN0KQogCiAgIGludCBhbHdheXNfbW9kaWZpZXIgPSAwOwogICBpbnQgY2xvc2VfbW9kaWZp ZXIgPSAwOworICBpbnQgcHJlc2VudF9tb2RpZmllciA9IDA7CiAgIGZvciAoaW50IHBvcyA9 IDE7IHBvcyA8IG1hcF9raW5kX3BvczsgKytwb3MpCiAgICAgewogICAgICAgY190b2tlbiAq dG9rID0gY19wYXJzZXJfcGVla190b2tlbiAocGFyc2VyKTsKQEAgLTE3MTM0LDExICsxNzE2 NCwyMSBAQCBjX3BhcnNlcl9vbXBfY2xhdXNlX21hcCAoY19wYXJzZXIgKnBhcnNlciwgdHJl ZSBsaXN0KQogCSAgICB9CiAJICBjbG9zZV9tb2RpZmllcisrOwogCX0KKyAgICAgIGVsc2Ug aWYgKHN0cmNtcCAoInByZXNlbnQiLCBwKSA9PSAwKQorCXsKKwkgIGlmIChwcmVzZW50X21v ZGlmaWVyKQorCSAgICB7CisJICAgICAgY19wYXJzZXJfZXJyb3IgKHBhcnNlciwgInRvbyBt YW55ICU8cHJlc2VudCU+IG1vZGlmaWVycyIpOworCSAgICAgIHBhcmVucy5za2lwX3VudGls X2ZvdW5kX2Nsb3NlIChwYXJzZXIpOworCSAgICAgIHJldHVybiBsaXN0OworCSAgICB9CisJ ICBwcmVzZW50X21vZGlmaWVyKys7CisJfQogICAgICAgZWxzZQogCXsKIAkgIGNfcGFyc2Vy X2Vycm9yIChwYXJzZXIsICIlPCNwcmFnbWEgb21wIHRhcmdldCU+IHdpdGggIgotCQkJCSAg Im1vZGlmaWVyIG90aGVyIHRoYW4gJTxhbHdheXMlPiBvciAiCi0JCQkJICAiJTxjbG9zZSU+ IG9uICU8bWFwJT4gY2xhdXNlIik7CisJCQkJICAibW9kaWZpZXIgb3RoZXIgdGhhbiAlPGFs d2F5cyU+LCAlPGNsb3NlJT4gIgorCQkJCSAgIm9yICU8cHJlc2VudCU+IG9uICU8bWFwJT4g Y2xhdXNlIik7CiAJICBwYXJlbnMuc2tpcF91bnRpbF9mb3VuZF9jbG9zZSAocGFyc2VyKTsK IAkgIHJldHVybiBsaXN0OwogCX0KQEAgLTE3MTUwLDE0ICsxNzE5MCwyNSBAQCBjX3BhcnNl cl9vbXBfY2xhdXNlX21hcCAoY19wYXJzZXIgKnBhcnNlciwgdHJlZSBsaXN0KQogICAgICAg JiYgY19wYXJzZXJfcGVla18ybmRfdG9rZW4gKHBhcnNlciktPnR5cGUgPT0gQ1BQX0NPTE9O KQogICAgIHsKICAgICAgIGNvbnN0IGNoYXIgKnAgPSBJREVOVElGSUVSX1BPSU5URVIgKGNf cGFyc2VyX3BlZWtfdG9rZW4gKHBhcnNlciktPnZhbHVlKTsKKyAgICAgIGludCBhbHdheXNf cHJlc2VudF9tb2RpZmllciA9IGFsd2F5c19tb2RpZmllciAmJiBwcmVzZW50X21vZGlmaWVy OworCiAgICAgICBpZiAoc3RyY21wICgiYWxsb2MiLCBwKSA9PSAwKQotCWtpbmQgPSBHT01Q X01BUF9BTExPQzsKKwlraW5kID0gcHJlc2VudF9tb2RpZmllciA/IEdPTVBfTUFQX1BSRVNF TlRfQUxMT0MgOiBHT01QX01BUF9BTExPQzsKICAgICAgIGVsc2UgaWYgKHN0cmNtcCAoInRv IiwgcCkgPT0gMCkKLQlraW5kID0gYWx3YXlzX21vZGlmaWVyID8gR09NUF9NQVBfQUxXQVlT X1RPIDogR09NUF9NQVBfVE87CisJa2luZCA9IGFsd2F5c19wcmVzZW50X21vZGlmaWVyID8g R09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE8KKwkgICAgICAgOiBwcmVzZW50X21vZGlmaWVy ID8gR09NUF9NQVBfUFJFU0VOVF9UTworCSAgICAgICA6IGFsd2F5c19tb2RpZmllciA/IEdP TVBfTUFQX0FMV0FZU19UTworCSAgICAgICA6IEdPTVBfTUFQX1RPOwogICAgICAgZWxzZSBp ZiAoc3RyY21wICgiZnJvbSIsIHApID09IDApCi0Ja2luZCA9IGFsd2F5c19tb2RpZmllciA/ IEdPTVBfTUFQX0FMV0FZU19GUk9NIDogR09NUF9NQVBfRlJPTTsKKwlraW5kID0gYWx3YXlz X3ByZXNlbnRfbW9kaWZpZXIgPyBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9GUk9NCisJICAg ICAgIDogcHJlc2VudF9tb2RpZmllciA/IEdPTVBfTUFQX1BSRVNFTlRfRlJPTQorCSAgICAg ICA6IGFsd2F5c19tb2RpZmllciA/IEdPTVBfTUFQX0FMV0FZU19GUk9NCisJICAgICAgIDog R09NUF9NQVBfRlJPTTsKICAgICAgIGVsc2UgaWYgKHN0cmNtcCAoInRvZnJvbSIsIHApID09 IDApCi0Ja2luZCA9IGFsd2F5c19tb2RpZmllciA/IEdPTVBfTUFQX0FMV0FZU19UT0ZST00g OiBHT01QX01BUF9UT0ZST007CisJa2luZCA9IGFsd2F5c19wcmVzZW50X21vZGlmaWVyID8g R09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NCisJICAgICAgIDogcHJlc2VudF9tb2Rp ZmllciA/IEdPTVBfTUFQX1BSRVNFTlRfVE9GUk9NCisJICAgICAgIDogYWx3YXlzX21vZGlm aWVyID8gR09NUF9NQVBfQUxXQVlTX1RPRlJPTQorCSAgICAgICA6IEdPTVBfTUFQX1RPRlJP TTsKICAgICAgIGVsc2UgaWYgKHN0cmNtcCAoInJlbGVhc2UiLCBwKSA9PSAwKQogCWtpbmQg PSBHT01QX01BUF9SRUxFQVNFOwogICAgICAgZWxzZSBpZiAoc3RyY21wICgiZGVsZXRlIiwg cCkgPT0gMCkKQEAgLTE3NDE4LDcgKzE3NDY5LDggQEAgY19wYXJzZXJfb21wX2NsYXVzZV9k ZXZpY2VfdHlwZSAoY19wYXJzZXIgKnBhcnNlciwgdHJlZSBsaXN0KQogc3RhdGljIHRyZWUK IGNfcGFyc2VyX29tcF9jbGF1c2VfdG8gKGNfcGFyc2VyICpwYXJzZXIsIHRyZWUgbGlzdCkK IHsKLSAgcmV0dXJuIGNfcGFyc2VyX29tcF92YXJfbGlzdF9wYXJlbnMgKHBhcnNlciwgT01Q X0NMQVVTRV9UTywgbGlzdCwgdHJ1ZSk7CisgIHJldHVybiBjX3BhcnNlcl9vbXBfdmFyX2xp c3RfcGFyZW5zIChwYXJzZXIsIE9NUF9DTEFVU0VfVE8sIGxpc3QsIHRydWUsCisJCQkJICAg ICAgIHRydWUpOwogfQogCiAvKiBPcGVuTVAgNC4wOgpAQCAtMTc0MjcsNyArMTc0NzksOCBA QCBjX3BhcnNlcl9vbXBfY2xhdXNlX3RvIChjX3BhcnNlciAqcGFyc2VyLCB0cmVlIGxpc3Qp CiBzdGF0aWMgdHJlZQogY19wYXJzZXJfb21wX2NsYXVzZV9mcm9tIChjX3BhcnNlciAqcGFy c2VyLCB0cmVlIGxpc3QpCiB7Ci0gIHJldHVybiBjX3BhcnNlcl9vbXBfdmFyX2xpc3RfcGFy ZW5zIChwYXJzZXIsIE9NUF9DTEFVU0VfRlJPTSwgbGlzdCwgdHJ1ZSk7CisgIHJldHVybiBj X3BhcnNlcl9vbXBfdmFyX2xpc3RfcGFyZW5zIChwYXJzZXIsIE9NUF9DTEFVU0VfRlJPTSwg bGlzdCwgdHJ1ZSwKKwkJCQkgICAgICAgdHJ1ZSk7CiB9CiAKIC8qIE9wZW5NUCA0LjA6CkBA IC0yMTc0NCwxMSArMjE3OTcsMTggQEAgY19wYXJzZXJfb21wX3RhcmdldF9kYXRhIChsb2Nh dGlvbl90IGxvYywgY19wYXJzZXIgKnBhcnNlciwgYm9vbCAqaWZfcCkKIAkgIHsKIAkgIGNh c2UgR09NUF9NQVBfVE86CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19UTzoKKwkgIGNhc2Ug R09NUF9NQVBfUFJFU0VOVF9UTzoKKwkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRf VE86CiAJICBjYXNlIEdPTVBfTUFQX0ZST006CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19G Uk9NOgorCSAgY2FzZSBHT01QX01BUF9QUkVTRU5UX0ZST006CisJICBjYXNlIEdPTVBfTUFQ X0FMV0FZU19QUkVTRU5UX0ZST006CiAJICBjYXNlIEdPTVBfTUFQX1RPRlJPTToKIAkgIGNh c2UgR09NUF9NQVBfQUxXQVlTX1RPRlJPTToKKwkgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9U T0ZST006CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToKIAkgIGNh c2UgR09NUF9NQVBfQUxMT0M6CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfQUxMT0M6CiAJ ICAgIG1hcF9zZWVuID0gMzsKIAkgICAgYnJlYWs7CiAJICBjYXNlIEdPTVBfTUFQX0ZJUlNU UFJJVkFURV9QT0lOVEVSOgpAQCAtMjE4OTQsNyArMjE5NTQsMTAgQEAgY19wYXJzZXJfb21w X3RhcmdldF9lbnRlcl9kYXRhIChsb2NhdGlvbl90IGxvYywgY19wYXJzZXIgKnBhcnNlciwK IAkgIHsKIAkgIGNhc2UgR09NUF9NQVBfVE86CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19U TzoKKwkgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9UTzoKKwkgIGNhc2UgR09NUF9NQVBfQUxX QVlTX1BSRVNFTlRfVE86CiAJICBjYXNlIEdPTVBfTUFQX0FMTE9DOgorCSAgY2FzZSBHT01Q X01BUF9QUkVTRU5UX0FMTE9DOgogCSAgICBtYXBfc2VlbiA9IDM7CiAJICAgIGJyZWFrOwog CSAgY2FzZSBHT01QX01BUF9UT0ZST006CkBAIC0yMTkwNSw2ICsyMTk2OCwxNCBAQCBjX3Bh cnNlcl9vbXBfdGFyZ2V0X2VudGVyX2RhdGEgKGxvY2F0aW9uX3QgbG9jLCBjX3BhcnNlciAq cGFyc2VyLAogCSAgICBPTVBfQ0xBVVNFX1NFVF9NQVBfS0lORCAoKnBjLCBHT01QX01BUF9B TFdBWVNfVE8pOwogCSAgICBtYXBfc2VlbiA9IDM7CiAJICAgIGJyZWFrOworCSAgY2FzZSBH T01QX01BUF9QUkVTRU5UX1RPRlJPTToKKwkgICAgT01QX0NMQVVTRV9TRVRfTUFQX0tJTkQg KCpwYywgR09NUF9NQVBfUFJFU0VOVF9UTyk7CisJICAgIG1hcF9zZWVuID0gMzsKKwkgICAg YnJlYWs7CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToKKwkgICAg T01QX0NMQVVTRV9TRVRfTUFQX0tJTkQgKCpwYywgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRf VE8pOworCSAgICBtYXBfc2VlbiA9IDM7CisJICAgIGJyZWFrOwogCSAgY2FzZSBHT01QX01B UF9GSVJTVFBSSVZBVEVfUE9JTlRFUjoKIAkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BPSU5U RVI6CiAJICBjYXNlIEdPTVBfTUFQX0FUVEFDSF9ERVRBQ0g6CkBAIC0yMTk5Miw2ICsyMjA2 Myw4IEBAIGNfcGFyc2VyX29tcF90YXJnZXRfZXhpdF9kYXRhIChsb2NhdGlvbl90IGxvYywg Y19wYXJzZXIgKnBhcnNlciwKIAkgIHsKIAkgIGNhc2UgR09NUF9NQVBfRlJPTToKIAkgIGNh c2UgR09NUF9NQVBfQUxXQVlTX0ZST006CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfRlJP TToKKwkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTToKIAkgIGNhc2UgR09N UF9NQVBfUkVMRUFTRToKIAkgIGNhc2UgR09NUF9NQVBfREVMRVRFOgogCSAgICBtYXBfc2Vl biA9IDM7CkBAIC0yMjAwNCw2ICsyMjA3NywxNCBAQCBjX3BhcnNlcl9vbXBfdGFyZ2V0X2V4 aXRfZGF0YSAobG9jYXRpb25fdCBsb2MsIGNfcGFyc2VyICpwYXJzZXIsCiAJICAgIE9NUF9D TEFVU0VfU0VUX01BUF9LSU5EICgqcGMsIEdPTVBfTUFQX0FMV0FZU19GUk9NKTsKIAkgICAg bWFwX3NlZW4gPSAzOwogCSAgICBicmVhazsKKwkgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9U T0ZST006CisJICAgIE9NUF9DTEFVU0VfU0VUX01BUF9LSU5EICgqcGMsIEdPTVBfTUFQX1BS RVNFTlRfRlJPTSk7CisJICAgIG1hcF9zZWVuID0gMzsKKwkgICAgYnJlYWs7CisJICBjYXNl IEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToKKwkgICAgT01QX0NMQVVTRV9TRVRf TUFQX0tJTkQgKCpwYywgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTSk7CisJICAgIG1h cF9zZWVuID0gMzsKKwkgICAgYnJlYWs7CiAJICBjYXNlIEdPTVBfTUFQX0ZJUlNUUFJJVkFU RV9QT0lOVEVSOgogCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfUE9JTlRFUjoKIAkgIGNhc2Ug R09NUF9NQVBfQVRUQUNIX0RFVEFDSDoKQEAgLTIyMjQ5LDExICsyMjMzMCwxOCBAQCBjaGVj a19jbGF1c2VzOgogCSAgewogCSAgY2FzZSBHT01QX01BUF9UTzoKIAkgIGNhc2UgR09NUF9N QVBfQUxXQVlTX1RPOgorCSAgY2FzZSBHT01QX01BUF9QUkVTRU5UX1RPOgorCSAgY2FzZSBH T01QX01BUF9BTFdBWVNfUFJFU0VOVF9UTzoKIAkgIGNhc2UgR09NUF9NQVBfRlJPTToKIAkg IGNhc2UgR09NUF9NQVBfQUxXQVlTX0ZST006CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRf RlJPTToKKwkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTToKIAkgIGNhc2Ug R09NUF9NQVBfVE9GUk9NOgogCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfVE9GUk9NOgorCSAg Y2FzZSBHT01QX01BUF9QUkVTRU5UX1RPRlJPTToKKwkgIGNhc2UgR09NUF9NQVBfQUxXQVlT X1BSRVNFTlRfVE9GUk9NOgogCSAgY2FzZSBHT01QX01BUF9BTExPQzoKKwkgIGNhc2UgR09N UF9NQVBfUFJFU0VOVF9BTExPQzoKIAkgIGNhc2UgR09NUF9NQVBfRklSU1RQUklWQVRFX1BP SU5URVI6CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QT0lOVEVSOgogCSAgY2FzZSBHT01Q X01BUF9BVFRBQ0hfREVUQUNIOgpkaWZmIC0tZ2l0IGEvZ2NjL2NwL3BhcnNlci5jYyBiL2dj Yy9jcC9wYXJzZXIuY2MKaW5kZXggMWExMjRmNTM5NWUuLjcyMDgyN2E5NDJhIDEwMDY0NAot LS0gYS9nY2MvY3AvcGFyc2VyLmNjCisrKyBiL2djYy9jcC9wYXJzZXIuY2MKQEAgLTM3NjQ0 LDExICszNzY0NCwzMyBAQCBjcF9wYXJzZXJfb21wX3Zhcl9saXN0X25vX29wZW4gKGNwX3Bh cnNlciAqcGFyc2VyLCBlbnVtIG9tcF9jbGF1c2VfY29kZSBraW5kLAogCiBzdGF0aWMgdHJl ZQogY3BfcGFyc2VyX29tcF92YXJfbGlzdCAoY3BfcGFyc2VyICpwYXJzZXIsIGVudW0gb21w X2NsYXVzZV9jb2RlIGtpbmQsIHRyZWUgbGlzdCwKLQkJCWJvb2wgYWxsb3dfZGVyZWYgPSBm YWxzZSkKKwkJCWJvb2wgYWxsb3dfZGVyZWYgPSBmYWxzZSwgYm9vbCBhbGxvd19wcmVzZW50 ID0gZmFsc2UpCiB7CiAgIGlmIChjcF9wYXJzZXJfcmVxdWlyZSAocGFyc2VyLCBDUFBfT1BF Tl9QQVJFTiwgUlRfT1BFTl9QQVJFTikpCi0gICAgcmV0dXJuIGNwX3BhcnNlcl9vbXBfdmFy X2xpc3Rfbm9fb3BlbiAocGFyc2VyLCBraW5kLCBsaXN0LCBOVUxMLAotCQkJCQkgICBhbGxv d19kZXJlZik7CisgICAgeworICAgICAgYm9vbCBwcmVzZW50ID0gZmFsc2U7CisKKyAgICAg IGlmIChhbGxvd19wcmVzZW50KQorCXsKKwkgICBjcF90b2tlbiAqdG9rZW4gPSBjcF9sZXhl cl9wZWVrX3Rva2VuIChwYXJzZXItPmxleGVyKTsKKworCSAgIGlmICh0b2tlbi0+dHlwZSA9 PSBDUFBfTkFNRQorCSAgICAgICAmJiBzdHJjbXAgKElERU5USUZJRVJfUE9JTlRFUiAodG9r ZW4tPnUudmFsdWUpLCAicHJlc2VudCIpID09IDAKKwkgICAgICAgJiYgY3BfbGV4ZXJfbnRo X3Rva2VuX2lzIChwYXJzZXItPmxleGVyLCAyLCBDUFBfQ09MT04pKQorCSAgICB7CisJICAg ICAgcHJlc2VudCA9IHRydWU7CisJICAgICAgY3BfbGV4ZXJfY29uc3VtZV90b2tlbiAocGFy c2VyLT5sZXhlcik7CisJICAgICAgY3BfbGV4ZXJfY29uc3VtZV90b2tlbiAocGFyc2VyLT5s ZXhlcik7CisJICAgIH0KKwl9CisKKyAgICAgIGxpc3QgPSBjcF9wYXJzZXJfb21wX3Zhcl9s aXN0X25vX29wZW4gKHBhcnNlciwga2luZCwgbGlzdCwgTlVMTCwKKwkJCQkJICAgICBhbGxv d19kZXJlZik7CisKKyAgICAgIGlmIChwcmVzZW50KQorCWZvciAodHJlZSBjbGF1c2UgPSBs aXN0OyBjbGF1c2U7IGNsYXVzZSA9IE9NUF9DTEFVU0VfQ0hBSU4gKGNsYXVzZSkpCisJICBP TVBfQ0xBVVNFX1NFVF9NT1RJT05fTU9ESUZJRVIgKGNsYXVzZSwgT01QX0NMQVVTRV9NT1RJ T05fUFJFU0VOVCk7CisgICAgfQogICByZXR1cm4gbGlzdDsKIH0KIApAQCAtMzg3MDAsNiAr Mzg3MjIsMTMgQEAgY3BfcGFyc2VyX29tcF9jbGF1c2VfZGVmYXVsdG1hcCAoY3BfcGFyc2Vy ICpwYXJzZXIsIHRyZWUgbGlzdCwKIAlnb3RvIGludmFsaWRfYmVoYXZpb3I7CiAgICAgICBi cmVhazsKIAorICAgIGNhc2UgJ3AnOgorICAgICAgaWYgKHN0cmNtcCAoInByZXNlbnQiLCBw KSA9PSAwKQorCWJlaGF2aW9yID0gT01QX0NMQVVTRV9ERUZBVUxUTUFQX1BSRVNFTlQ7Cisg ICAgICBlbHNlCisJZ290byBpbnZhbGlkX2JlaGF2aW9yOworICAgICAgYnJlYWs7CisKICAg ICBjYXNlICd0JzoKICAgICAgIGlmIChzdHJjbXAgKCJ0b2Zyb20iLCBwKSA9PSAwKQogCWJl aGF2aW9yID0gT01QX0NMQVVTRV9ERUZBVUxUTUFQX1RPRlJPTTsKQEAgLTQwNDUzLDYgKzQw NDgyLDcgQEAgY3BfcGFyc2VyX29tcF9jbGF1c2VfbWFwIChjcF9wYXJzZXIgKnBhcnNlciwg dHJlZSBsaXN0KQogCiAgIGJvb2wgYWx3YXlzX21vZGlmaWVyID0gZmFsc2U7CiAgIGJvb2wg Y2xvc2VfbW9kaWZpZXIgPSBmYWxzZTsKKyAgYm9vbCBwcmVzZW50X21vZGlmaWVyID0gZmFs c2U7CiAgIGZvciAoaW50IHBvcyA9IDE7IHBvcyA8IG1hcF9raW5kX3BvczsgKytwb3MpCiAg ICAgewogICAgICAgY3BfdG9rZW4gKnRvayA9IGNwX2xleGVyX3BlZWtfdG9rZW4gKHBhcnNl ci0+bGV4ZXIpOwpAQCAtNDA0ODksMTEgKzQwNTE5LDI0IEBAIGNwX3BhcnNlcl9vbXBfY2xh dXNlX21hcCAoY3BfcGFyc2VyICpwYXJzZXIsIHRyZWUgbGlzdCkKIAkgICAgfQogCSAgY2xv c2VfbW9kaWZpZXIgPSB0cnVlOwogCX0KKyAgICAgIGVsc2UgaWYgKHN0cmNtcCAoInByZXNl bnQiLCBwKSA9PSAwKQorCXsKKwkgIGlmIChwcmVzZW50X21vZGlmaWVyKQorCSAgICB7CisJ ICAgICAgY3BfcGFyc2VyX2Vycm9yIChwYXJzZXIsICJ0b28gbWFueSAlPHByZXNlbnQlPiBt b2RpZmllcnMiKTsKKwkgICAgICBjcF9wYXJzZXJfc2tpcF90b19jbG9zaW5nX3BhcmVudGhl c2lzIChwYXJzZXIsCisJCQkJCQkgICAgIC8qcmVjb3ZlcmluZz0qL3RydWUsCisJCQkJCQkg ICAgIC8qb3JfY29tbWE9Ki9mYWxzZSwKKwkJCQkJCSAgICAgLypjb25zdW1lX3BhcmVuPSov dHJ1ZSk7CisJICAgICAgcmV0dXJuIGxpc3Q7CisJICAgIH0KKwkgIHByZXNlbnRfbW9kaWZp ZXIgPSB0cnVlOworICAgICAgIH0KICAgICAgIGVsc2UKIAl7CiAJICBjcF9wYXJzZXJfZXJy b3IgKHBhcnNlciwgIiU8I3ByYWdtYSBvbXAgdGFyZ2V0JT4gd2l0aCAiCi0JCQkJICAgIm1v ZGlmaWVyIG90aGVyIHRoYW4gJTxhbHdheXMlPiBvciAiCi0JCQkJICAgIiU8Y2xvc2UlPiBv biAlPG1hcCU+IGNsYXVzZSIpOworCQkJCSAgICJtb2RpZmllciBvdGhlciB0aGFuICU8YWx3 YXlzJT4sICU8Y2xvc2UlPiAiCisJCQkJICAgIm9yICU8cHJlc2VudCU+IG9uICU8bWFwJT4g Y2xhdXNlIik7CiAJICBjcF9wYXJzZXJfc2tpcF90b19jbG9zaW5nX3BhcmVudGhlc2lzIChw YXJzZXIsCiAJCQkJCQkgLypyZWNvdmVyaW5nPSovdHJ1ZSwKIAkJCQkJCSAvKm9yX2NvbW1h PSovZmFsc2UsCkBAIC00MDUwOSwxNSArNDA1NTIsMjUgQEAgY3BfcGFyc2VyX29tcF9jbGF1 c2VfbWFwIChjcF9wYXJzZXIgKnBhcnNlciwgdHJlZSBsaXN0KQogICAgIHsKICAgICAgIHRy ZWUgaWQgPSBjcF9sZXhlcl9wZWVrX3Rva2VuIChwYXJzZXItPmxleGVyKS0+dS52YWx1ZTsK ICAgICAgIGNvbnN0IGNoYXIgKnAgPSBJREVOVElGSUVSX1BPSU5URVIgKGlkKTsKKyAgICAg IGludCBhbHdheXNfcHJlc2VudF9tb2RpZmllciA9IGFsd2F5c19tb2RpZmllciAmJiBwcmVz ZW50X21vZGlmaWVyOwogCiAgICAgICBpZiAoc3RyY21wICgiYWxsb2MiLCBwKSA9PSAwKQot CWtpbmQgPSBHT01QX01BUF9BTExPQzsKKwlraW5kID0gcHJlc2VudF9tb2RpZmllciA/IEdP TVBfTUFQX1BSRVNFTlRfQUxMT0MgOiBHT01QX01BUF9BTExPQzsKICAgICAgIGVsc2UgaWYg KHN0cmNtcCAoInRvIiwgcCkgPT0gMCkKLQlraW5kID0gYWx3YXlzX21vZGlmaWVyID8gR09N UF9NQVBfQUxXQVlTX1RPIDogR09NUF9NQVBfVE87CisJa2luZCA9IGFsd2F5c19wcmVzZW50 X21vZGlmaWVyID8gR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE8KKwkgICAgICAgOiBwcmVz ZW50X21vZGlmaWVyID8gR09NUF9NQVBfUFJFU0VOVF9UTworCSAgICAgICA6IGFsd2F5c19t b2RpZmllciA/IEdPTVBfTUFQX0FMV0FZU19UTworCSAgICAgICA6IEdPTVBfTUFQX1RPOwog ICAgICAgZWxzZSBpZiAoc3RyY21wICgiZnJvbSIsIHApID09IDApCi0Ja2luZCA9IGFsd2F5 c19tb2RpZmllciA/IEdPTVBfTUFQX0FMV0FZU19GUk9NIDogR09NUF9NQVBfRlJPTTsKKwlr aW5kID0gYWx3YXlzX3ByZXNlbnRfbW9kaWZpZXIgPyBHT01QX01BUF9BTFdBWVNfUFJFU0VO VF9GUk9NCisJICAgICAgIDogcHJlc2VudF9tb2RpZmllciA/IEdPTVBfTUFQX1BSRVNFTlRf RlJPTQorCSAgICAgICA6IGFsd2F5c19tb2RpZmllciA/IEdPTVBfTUFQX0FMV0FZU19GUk9N CisJICAgICAgIDogR09NUF9NQVBfRlJPTTsKICAgICAgIGVsc2UgaWYgKHN0cmNtcCAoInRv ZnJvbSIsIHApID09IDApCi0Ja2luZCA9IGFsd2F5c19tb2RpZmllciA/IEdPTVBfTUFQX0FM V0FZU19UT0ZST00gOiBHT01QX01BUF9UT0ZST007CisJa2luZCA9IGFsd2F5c19wcmVzZW50 X21vZGlmaWVyID8gR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NCisJICAgICAgIDog cHJlc2VudF9tb2RpZmllciA/IEdPTVBfTUFQX1BSRVNFTlRfVE9GUk9NCisJICAgICAgIDog YWx3YXlzX21vZGlmaWVyID8gR09NUF9NQVBfQUxXQVlTX1RPRlJPTQorCSAgICAgICA6IEdP TVBfTUFQX1RPRlJPTTsKICAgICAgIGVsc2UgaWYgKHN0cmNtcCAoInJlbGVhc2UiLCBwKSA9 PSAwKQogCWtpbmQgPSBHT01QX01BUF9SRUxFQVNFOwogICAgICAgZWxzZQpAQCAtNDEyOTUs MTIgKzQxMzQ4LDEyIEBAIGNwX3BhcnNlcl9vbXBfYWxsX2NsYXVzZXMgKGNwX3BhcnNlciAq cGFyc2VyLCBvbXBfY2xhdXNlX21hc2sgbWFzaywKIAkgICAgfQogCSAgZWxzZQogCSAgICBj bGF1c2VzID0gY3BfcGFyc2VyX29tcF92YXJfbGlzdCAocGFyc2VyLCBPTVBfQ0xBVVNFX1RP LCBjbGF1c2VzLAotCQkJCQkgICAgICB0cnVlKTsKKwkJCQkJICAgICAgdHJ1ZSwgdHJ1ZSk7 CiAJICBjX25hbWUgPSAidG8iOwogCSAgYnJlYWs7CiAJY2FzZSBQUkFHTUFfT01QX0NMQVVT RV9GUk9NOgogCSAgY2xhdXNlcyA9IGNwX3BhcnNlcl9vbXBfdmFyX2xpc3QgKHBhcnNlciwg T01QX0NMQVVTRV9GUk9NLCBjbGF1c2VzLAotCQkJCQkgICAgdHJ1ZSk7CisJCQkJCSAgICB0 cnVlLCB0cnVlKTsKIAkgIGNfbmFtZSA9ICJmcm9tIjsKIAkgIGJyZWFrOwogCWNhc2UgUFJB R01BX09NUF9DTEFVU0VfVU5JRk9STToKQEAgLTQ1MTMxLDExICs0NTE4NCwxOCBAQCBjcF9w YXJzZXJfb21wX3RhcmdldF9kYXRhIChjcF9wYXJzZXIgKnBhcnNlciwgY3BfdG9rZW4gKnBy YWdtYV90b2ssIGJvb2wgKmlmX3ApCiAJICB7CiAJICBjYXNlIEdPTVBfTUFQX1RPOgogCSAg Y2FzZSBHT01QX01BUF9BTFdBWVNfVE86CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfVE86 CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPOgogCSAgY2FzZSBHT01QX01B UF9GUk9NOgogCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfRlJPTToKKwkgIGNhc2UgR09NUF9N QVBfUFJFU0VOVF9GUk9NOgorCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9GUk9N OgogCSAgY2FzZSBHT01QX01BUF9UT0ZST006CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19U T0ZST006CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfVE9GUk9NOgorCSAgY2FzZSBHT01Q X01BUF9BTFdBWVNfUFJFU0VOVF9UT0ZST006CiAJICBjYXNlIEdPTVBfTUFQX0FMTE9DOgor CSAgY2FzZSBHT01QX01BUF9QUkVTRU5UX0FMTE9DOgogCSAgICBtYXBfc2VlbiA9IDM7CiAJ ICAgIGJyZWFrOwogCSAgY2FzZSBHT01QX01BUF9GSVJTVFBSSVZBVEVfUE9JTlRFUjoKQEAg LTQ1MjM4LDcgKzQ1Mjk4LDEwIEBAIGNwX3BhcnNlcl9vbXBfdGFyZ2V0X2VudGVyX2RhdGEg KGNwX3BhcnNlciAqcGFyc2VyLCBjcF90b2tlbiAqcHJhZ21hX3RvaywKIAkgIHsKIAkgIGNh c2UgR09NUF9NQVBfVE86CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19UTzoKKwkgIGNhc2Ug R09NUF9NQVBfUFJFU0VOVF9UTzoKKwkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRf VE86CiAJICBjYXNlIEdPTVBfTUFQX0FMTE9DOgorCSAgY2FzZSBHT01QX01BUF9QUkVTRU5U X0FMTE9DOgogCSAgICBtYXBfc2VlbiA9IDM7CiAJICAgIGJyZWFrOwogCSAgY2FzZSBHT01Q X01BUF9UT0ZST006CkBAIC00NTI0OSw2ICs0NTMxMiwxNCBAQCBjcF9wYXJzZXJfb21wX3Rh cmdldF9lbnRlcl9kYXRhIChjcF9wYXJzZXIgKnBhcnNlciwgY3BfdG9rZW4gKnByYWdtYV90 b2ssCiAJICAgIE9NUF9DTEFVU0VfU0VUX01BUF9LSU5EICgqcGMsIEdPTVBfTUFQX0FMV0FZ U19UTyk7CiAJICAgIG1hcF9zZWVuID0gMzsKIAkgICAgYnJlYWs7CisJICBjYXNlIEdPTVBf TUFQX1BSRVNFTlRfVE9GUk9NOgorCSAgICBPTVBfQ0xBVVNFX1NFVF9NQVBfS0lORCAoKnBj LCBHT01QX01BUF9QUkVTRU5UX1RPKTsKKwkgICAgbWFwX3NlZW4gPSAzOworCSAgICBicmVh azsKKwkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NOgorCSAgICBPTVBf Q0xBVVNFX1NFVF9NQVBfS0lORCAoKnBjLCBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9UTyk7 CisJICAgIG1hcF9zZWVuID0gMzsKKwkgICAgYnJlYWs7CiAJICBjYXNlIEdPTVBfTUFQX0ZJ UlNUUFJJVkFURV9QT0lOVEVSOgogCSAgY2FzZSBHT01QX01BUF9GSVJTVFBSSVZBVEVfUkVG RVJFTkNFOgogCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfUE9JTlRFUjoKQEAgLTQ1MzQxLDYg KzQ1NDEyLDggQEAgY3BfcGFyc2VyX29tcF90YXJnZXRfZXhpdF9kYXRhIChjcF9wYXJzZXIg KnBhcnNlciwgY3BfdG9rZW4gKnByYWdtYV90b2ssCiAJICB7CiAJICBjYXNlIEdPTVBfTUFQ X0ZST006CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19GUk9NOgorCSAgY2FzZSBHT01QX01B UF9QUkVTRU5UX0ZST006CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST006 CiAJICBjYXNlIEdPTVBfTUFQX1JFTEVBU0U6CiAJICBjYXNlIEdPTVBfTUFQX0RFTEVURToK IAkgICAgbWFwX3NlZW4gPSAzOwpAQCAtNDUzNTMsNiArNDU0MjYsMTQgQEAgY3BfcGFyc2Vy X29tcF90YXJnZXRfZXhpdF9kYXRhIChjcF9wYXJzZXIgKnBhcnNlciwgY3BfdG9rZW4gKnBy YWdtYV90b2ssCiAJICAgIE9NUF9DTEFVU0VfU0VUX01BUF9LSU5EICgqcGMsIEdPTVBfTUFQ X0FMV0FZU19GUk9NKTsKIAkgICAgbWFwX3NlZW4gPSAzOwogCSAgICBicmVhazsKKwkgIGNh c2UgR09NUF9NQVBfUFJFU0VOVF9UT0ZST006CisJICAgIE9NUF9DTEFVU0VfU0VUX01BUF9L SU5EICgqcGMsIEdPTVBfTUFQX1BSRVNFTlRfRlJPTSk7CisJICAgIG1hcF9zZWVuID0gMzsK KwkgICAgYnJlYWs7CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToK KwkgICAgT01QX0NMQVVTRV9TRVRfTUFQX0tJTkQgKCpwYywgR09NUF9NQVBfQUxXQVlTX1BS RVNFTlRfRlJPTSk7CisJICAgIG1hcF9zZWVuID0gMzsKKwkgICAgYnJlYWs7CiAJICBjYXNl IEdPTVBfTUFQX0ZJUlNUUFJJVkFURV9QT0lOVEVSOgogCSAgY2FzZSBHT01QX01BUF9GSVJT VFBSSVZBVEVfUkVGRVJFTkNFOgogCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfUE9JTlRFUjoK ZGlmZiAtLWdpdCBhL2djYy9jcC9zZW1hbnRpY3MuY2MgYi9nY2MvY3Avc2VtYW50aWNzLmNj CmluZGV4IGMyZGYwYjY5YjMwLi42YmE3NmViZWVhNiAxMDA2NDQKLS0tIGEvZ2NjL2NwL3Nl bWFudGljcy5jYworKysgYi9nY2MvY3Avc2VtYW50aWNzLmNjCkBAIC05OTkzLDExICs5OTkz LDE4IEBAIGZpbmlzaF9vbXBfdGFyZ2V0IChsb2NhdGlvbl90IGxvYywgdHJlZSBjbGF1c2Vz LCB0cmVlIGJvZHksIGJvb2wgY29tYmluZWRfcCkKIAkgIHsKIAkgIGNhc2UgR09NUF9NQVBf VE86CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19UTzoKKwkgIGNhc2UgR09NUF9NQVBfUFJF U0VOVF9UTzoKKwkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE86CiAJICBjYXNl IEdPTVBfTUFQX0ZST006CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19GUk9NOgorCSAgY2Fz ZSBHT01QX01BUF9QUkVTRU5UX0ZST006CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVT RU5UX0ZST006CiAJICBjYXNlIEdPTVBfTUFQX1RPRlJPTToKIAkgIGNhc2UgR09NUF9NQVBf QUxXQVlTX1RPRlJPTToKKwkgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9UT0ZST006CisJICBj YXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToKIAkgIGNhc2UgR09NUF9NQVBf QUxMT0M6CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfQUxMT0M6CiAJICBjYXNlIEdPTVBf TUFQX0ZJUlNUUFJJVkFURV9QT0lOVEVSOgogCSAgY2FzZSBHT01QX01BUF9GSVJTVFBSSVZB VEVfUkVGRVJFTkNFOgogCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfUE9JTlRFUjoKZGlmZiAt LWdpdCBhL2djYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJlZS5jYyBiL2djYy9mb3J0cmFuL2R1 bXAtcGFyc2UtdHJlZS5jYwppbmRleCAxNjQ3MTBmZTk4YS4uYjBiNDM5ZmYwZjMgMTAwNjQ0 Ci0tLSBhL2djYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJlZS5jYworKysgYi9nY2MvZm9ydHJh bi9kdW1wLXBhcnNlLXRyZWUuY2MKQEAgLTE0NTMsOSArMTQ1MywyMCBAQCBzaG93X29tcF9u YW1lbGlzdCAoaW50IGxpc3RfdHlwZSwgZ2ZjX29tcF9uYW1lbGlzdCAqbikKIAkgIGNhc2Ug T01QX01BUF9UTzogZnB1dHMgKCJ0bzoiLCBkdW1wZmlsZSk7IGJyZWFrOwogCSAgY2FzZSBP TVBfTUFQX0ZST006IGZwdXRzICgiZnJvbToiLCBkdW1wZmlsZSk7IGJyZWFrOwogCSAgY2Fz ZSBPTVBfTUFQX1RPRlJPTTogZnB1dHMgKCJ0b2Zyb206IiwgZHVtcGZpbGUpOyBicmVhazsK KwkgIGNhc2UgT01QX01BUF9QUkVTRU5UX0FMTE9DOiBmcHV0cyAoInByZXNlbnQsYWxsb2M6 IiwgZHVtcGZpbGUpOyBicmVhazsKKwkgIGNhc2UgT01QX01BUF9QUkVTRU5UX1RPOiBmcHV0 cyAoInByZXNlbnQsdG86IiwgZHVtcGZpbGUpOyBicmVhazsKKwkgIGNhc2UgT01QX01BUF9Q UkVTRU5UX0ZST006IGZwdXRzICgicHJlc2VudCxmcm9tOiIsIGR1bXBmaWxlKTsgYnJlYWs7 CisJICBjYXNlIE9NUF9NQVBfUFJFU0VOVF9UT0ZST006CisJICAgIGZwdXRzICgicHJlc2Vu dCx0b2Zyb206IiwgZHVtcGZpbGUpOyBicmVhazsKIAkgIGNhc2UgT01QX01BUF9BTFdBWVNf VE86IGZwdXRzICgiYWx3YXlzLHRvOiIsIGR1bXBmaWxlKTsgYnJlYWs7CiAJICBjYXNlIE9N UF9NQVBfQUxXQVlTX0ZST006IGZwdXRzICgiYWx3YXlzLGZyb206IiwgZHVtcGZpbGUpOyBi cmVhazsKIAkgIGNhc2UgT01QX01BUF9BTFdBWVNfVE9GUk9NOiBmcHV0cyAoImFsd2F5cyx0 b2Zyb206IiwgZHVtcGZpbGUpOyBicmVhazsKKwkgIGNhc2UgT01QX01BUF9BTFdBWVNfUFJF U0VOVF9UTzoKKwkgICAgZnB1dHMgKCJhbHdheXMscHJlc2VudCx0bzoiLCBkdW1wZmlsZSk7 IGJyZWFrOworCSAgY2FzZSBPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST006CisJICAgIGZw dXRzICgiYWx3YXlzLHByZXNlbnQsZnJvbToiLCBkdW1wZmlsZSk7IGJyZWFrOworCSAgY2Fz ZSBPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToKKwkgICAgZnB1dHMgKCJhbHdheXMs cHJlc2VudCx0b2Zyb206IiwgZHVtcGZpbGUpOyBicmVhazsKIAkgIGNhc2UgT01QX01BUF9E RUxFVEU6IGZwdXRzICgiZGVsZXRlOiIsIGR1bXBmaWxlKTsgYnJlYWs7CiAJICBjYXNlIE9N UF9NQVBfUkVMRUFTRTogZnB1dHMgKCJyZWxlYXNlOiIsIGR1bXBmaWxlKTsgYnJlYWs7CiAJ ICBkZWZhdWx0OiBicmVhazsKQEAgLTE3NzgsNiArMTc4OSwxMCBAQCBzaG93X29tcF9jbGF1 c2VzIChnZmNfb21wX2NsYXVzZXMgKm9tcF9jbGF1c2VzKQogCSAgZnB1dHMgKCJpbnNjYW4s ICIsIGR1bXBmaWxlKTsKIAlpZiAobGlzdF90eXBlID09IE9NUF9MSVNUX1JFRFVDVElPTl9U QVNLKQogCSAgZnB1dHMgKCJ0YXNrLCAiLCBkdW1wZmlsZSk7CisJaWYgKChsaXN0X3R5cGUg PT0gT01QX0xJU1RfVE8gfHwgbGlzdF90eXBlID09IE9NUF9MSVNUX0ZST00pCisJICAgICYm IG9tcF9jbGF1c2VzLT5saXN0c1tsaXN0X3R5cGVdLT51Lm1vdGlvbl9tb2RpZmllcgorCSAg ICAgICA9PSBPTVBfTU9USU9OX1BSRVNFTlQpCisJICBmcHV0cyAoInByZXNlbnQ6IiwgZHVt cGZpbGUpOwogCXNob3dfb21wX25hbWVsaXN0IChsaXN0X3R5cGUsIG9tcF9jbGF1c2VzLT5s aXN0c1tsaXN0X3R5cGVdKTsKIAlmcHV0YyAoJyknLCBkdW1wZmlsZSk7CiAgICAgICB9CmRp ZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9nZm9ydHJhbi5oIGIvZ2NjL2ZvcnRyYW4vZ2ZvcnRy YW4uaAppbmRleCBhODkzZWUwNmYzZC4uZTQ2ODFmMDQ0M2YgMTAwNjQ0Ci0tLSBhL2djYy9m b3J0cmFuL2dmb3J0cmFuLmgKKysrIGIvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaApAQCAtMTMw Niw3ICsxMzA2LDE0IEBAIGVudW0gZ2ZjX29tcF9tYXBfb3AKICAgT01QX01BUF9SRUxFQVNF LAogICBPTVBfTUFQX0FMV0FZU19UTywKICAgT01QX01BUF9BTFdBWVNfRlJPTSwKLSAgT01Q X01BUF9BTFdBWVNfVE9GUk9NCisgIE9NUF9NQVBfQUxXQVlTX1RPRlJPTSwKKyAgT01QX01B UF9QUkVTRU5UX0FMTE9DLAorICBPTVBfTUFQX1BSRVNFTlRfVE8sCisgIE9NUF9NQVBfUFJF U0VOVF9GUk9NLAorICBPTVBfTUFQX1BSRVNFTlRfVE9GUk9NLAorICBPTVBfTUFQX0FMV0FZ U19QUkVTRU5UX1RPLAorICBPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST00sCisgIE9NUF9N QVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NCiB9OwogCiBlbnVtIGdmY19vbXBfZGVmYXVsdG1h cApAQCAtMTM0MCw2ICsxMzQ3LDEyIEBAIGVudW0gZ2ZjX29tcF9saW5lYXJfb3AKICAgT01Q X0xJTkVBUl9VVkFMCiB9OwogCitlbnVtIGdmY19vbXBfbW90aW9uX21vZGlmaWVyCit7Cisg IE9NUF9NT1RJT05fTk9ORSwKKyAgT01QX01PVElPTl9QUkVTRU5UCit9OworCiAvKiBGb3Ig dXNlIGluIE9wZW5NUCBjbGF1c2VzIGluIGNhc2Ugd2UgbmVlZCBleHRyYSBpbmZvcm1hdGlv bgogICAgKGFsaWduZWQgY2xhdXNlIGFsaWdubWVudCwgbGluZWFyIGNsYXVzZSBzdGVwLCBl dGMuKS4gICovCiAKQEAgLTEzNTgsNiArMTM3MSw3IEBAIHR5cGVkZWYgc3RydWN0IGdmY19v bXBfbmFtZWxpc3QKIAkgIEVOVU1fQklURklFTEQgKGdmY19vbXBfbGluZWFyX29wKSBvcDo0 OwogCSAgYm9vbCBvbGRfbW9kaWZpZXI7CiAJfSBsaW5lYXI7CisgICAgICBnZmNfb21wX21v dGlvbl9tb2RpZmllciBtb3Rpb25fbW9kaWZpZXI7CiAgICAgICBzdHJ1Y3QgZ2ZjX2NvbW1v bl9oZWFkICpjb21tb247CiAgICAgICBib29sIGxhc3Rwcml2YXRlX2NvbmRpdGlvbmFsOwog ICAgIH0gdTsKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL29wZW5tcC5jYyBiL2djYy9mb3J0 cmFuL29wZW5tcC5jYwppbmRleCBhYmNhMTQ2ZDc4ZS4uNzc1OTgxOTA2MDAgMTAwNjQ0Ci0t LSBhL2djYy9mb3J0cmFuL29wZW5tcC5jYworKysgYi9nY2MvZm9ydHJhbi9vcGVubXAuY2MK QEAgLTM5NCw3ICszOTQsOCBAQCBnZmNfbWF0Y2hfb21wX3ZhcmlhYmxlX2xpc3QgKGNvbnN0 IGNoYXIgKnN0ciwgZ2ZjX29tcF9uYW1lbGlzdCAqKmxpc3QsCiAJCQkgICAgIGdmY19vbXBf bmFtZWxpc3QgKioqaGVhZHAgPSBOVUxMLAogCQkJICAgICBib29sIGFsbG93X3NlY3Rpb25z ID0gZmFsc2UsCiAJCQkgICAgIGJvb2wgYWxsb3dfZGVyaXZlZCA9IGZhbHNlLAotCQkJICAg ICBib29sICpoYXNfYWxsX21lbW9yeSA9IE5VTEwpCisJCQkgICAgIGJvb2wgKmhhc19hbGxf bWVtb3J5ID0gTlVMTCwKKwkJCSAgICAgYm9vbCBhbGxvd19tb3Rpb25fbW9kaWZpZXIgPSBm YWxzZSkKIHsKICAgZ2ZjX29tcF9uYW1lbGlzdCAqaGVhZCwgKnRhaWwsICpwOwogICBsb2N1 cyBvbGRfbG9jLCBjdXJfbG9jOwpAQCAtNDAyLDYgKzQwMyw3IEBAIGdmY19tYXRjaF9vbXBf dmFyaWFibGVfbGlzdCAoY29uc3QgY2hhciAqc3RyLCBnZmNfb21wX25hbWVsaXN0ICoqbGlz dCwKICAgZ2ZjX3N5bWJvbCAqc3ltOwogICBtYXRjaCBtOwogICBnZmNfc3ltdHJlZSAqc3Q7 CisgIGJvb2wgcHJlc2VudCA9IGZhbHNlOwogCiAgIGhlYWQgPSB0YWlsID0gTlVMTDsKIApA QCAtNDM3LDYgKzQzOSwxMiBAQCBnZmNfbWF0Y2hfb21wX3ZhcmlhYmxlX2xpc3QgKGNvbnN0 IGNoYXIgKnN0ciwgZ2ZjX29tcF9uYW1lbGlzdCAqKmxpc3QsCiAJICB0YWlsLT53aGVyZSA9 IGN1cl9sb2M7CiAJICBnb3RvIG5leHRfaXRlbTsKIAl9CisgICAgICBlbHNlIGlmIChhbGxv d19tb3Rpb25fbW9kaWZpZXIgJiYgbSA9PSBNQVRDSF9ZRVMgJiYgc3RyY21wIChuLCAicHJl c2VudCIpID09IDAKKwkgICAgICAgJiYgZ2ZjX21hdGNoX2NoYXIgKCc6JykgPT0gTUFUQ0hf WUVTKQorCXsKKwkgIHByZXNlbnQgPSB0cnVlOworCSAgbSA9IGdmY19tYXRjaF9uYW1lIChu KTsKKwl9CiAgICAgICBpZiAobSA9PSBNQVRDSF9ZRVMpCiAJewogCSAgZ2ZjX3N5bXRyZWUg KnN0OwpAQCAtNTM3LDYgKzU0NSwxMyBAQCBnZmNfbWF0Y2hfb21wX3ZhcmlhYmxlX2xpc3Qg KGNvbnN0IGNoYXIgKnN0ciwgZ2ZjX29tcF9uYW1lbGlzdCAqKmxpc3QsCiAgICpsaXN0ID0g aGVhZDsKICAgaWYgKGhlYWRwKQogICAgICpoZWFkcCA9IGxpc3Q7CisKKyAgaWYgKHByZXNl bnQpCisgICAgeworICAgICAgZ2ZjX29tcF9uYW1lbGlzdCAqbjsKKyAgICAgIGZvciAobiA9 IGhlYWQ7IG47IG4gPSBuLT5uZXh0KQorCW4tPnUubW90aW9uX21vZGlmaWVyID0gT01QX01P VElPTl9QUkVTRU5UOworICAgIH0KICAgcmV0dXJuIE1BVENIX1lFUzsKIAogc3ludGF4OgpA QCAtMjA4Nyw2ICsyMTAyLDggQEAgZ2ZjX21hdGNoX29tcF9jbGF1c2VzIChnZmNfb21wX2Ns YXVzZXMgKipjcCwgY29uc3Qgb21wX21hc2sgbWFzaywKIAkJYmVoYXZpb3IgPSBPTVBfREVG QVVMVE1BUF9GUk9NOwogCSAgICAgIGVsc2UgaWYgKGdmY19tYXRjaCAoImZpcnN0cHJpdmF0 ZSAiKSA9PSBNQVRDSF9ZRVMpCiAJCWJlaGF2aW9yID0gT01QX0RFRkFVTFRNQVBfRklSU1RQ UklWQVRFOworCSAgICAgIGVsc2UgaWYgKGdmY19tYXRjaCAoInByZXNlbnQgIikgPT0gTUFU Q0hfWUVTKQorCQliZWhhdmlvciA9IE9NUF9ERUZBVUxUTUFQX1BSRVNFTlQ7CiAJICAgICAg ZWxzZSBpZiAoZ2ZjX21hdGNoICgibm9uZSAiKSA9PSBNQVRDSF9ZRVMpCiAJCWJlaGF2aW9y ID0gT01QX0RFRkFVTFRNQVBfTk9ORTsKIAkgICAgICBlbHNlIGlmIChnZmNfbWF0Y2ggKCJk ZWZhdWx0ICIpID09IE1BVENIX1lFUykKQEAgLTIwOTQsNyArMjExMSw3IEBAIGdmY19tYXRj aF9vbXBfY2xhdXNlcyAoZ2ZjX29tcF9jbGF1c2VzICoqY3AsIGNvbnN0IG9tcF9tYXNrIG1h c2ssCiAJICAgICAgZWxzZQogCQl7CiAJCSAgZ2ZjX2Vycm9yICgiRXhwZWN0ZWQgQUxMT0Ms IFRPLCBGUk9NLCBUT0ZST00sIEZJUlNUUFJJVkFURSwgIgotCQkJICAgIk5PTkUgb3IgREVG QVVMVCBhdCAlQyIpOworCQkJICAgICAiUFJFU0VOVCwgTk9ORSBvciBERUZBVUxUIGF0ICVD Iik7CiAJCSAgYnJlYWs7CiAJCX0KIAkgICAgICBpZiAoJyknID09IGdmY19wZWVrX2FzY2lp X2NoYXIgKCkpCkBAIC0yNTIwLDcgKzI1MzcsOCBAQCBnZmNfbWF0Y2hfb21wX2NsYXVzZXMg KGdmY19vbXBfY2xhdXNlcyAqKmNwLCBjb25zdCBvbXBfbWFzayBtYXNrLAogCSAgaWYgKCht YXNrICYgT01QX0NMQVVTRV9GUk9NKQogCSAgICAgICYmIChnZmNfbWF0Y2hfb21wX3Zhcmlh YmxlX2xpc3QgKCJmcm9tICgiLAogCQkJCQkgICAgICAmYy0+bGlzdHNbT01QX0xJU1RfRlJP TV0sIGZhbHNlLAotCQkJCQkgICAgICBOVUxMLCAmaGVhZCwgdHJ1ZSwgdHJ1ZSkKKwkJCQkJ ICAgICAgTlVMTCwgJmhlYWQsIHRydWUsIHRydWUsIE5VTEwsCisJCQkJCSAgICAgIHRydWUp CiAJCSAgPT0gTUFUQ0hfWUVTKSkKIAkgICAgY29udGludWU7CiAJICBicmVhazsKQEAgLTI4 NzcsNiArMjg5NSw3IEBAIGdmY19tYXRjaF9vbXBfY2xhdXNlcyAoZ2ZjX29tcF9jbGF1c2Vz ICoqY3AsIGNvbnN0IG9tcF9tYXNrIG1hc2ssCiAJICAgICAgbG9jdXMgb2xkX2xvYzIgPSBn ZmNfY3VycmVudF9sb2N1czsKIAkgICAgICBpbnQgYWx3YXlzX21vZGlmaWVyID0gMDsKIAkg ICAgICBpbnQgY2xvc2VfbW9kaWZpZXIgPSAwOworCSAgICAgIGludCBwcmVzZW50X21vZGlm aWVyID0gMDsKIAkgICAgICBsb2N1cyBzZWNvbmRfYWx3YXlzX2xvY3VzID0gb2xkX2xvYzI7 CiAJICAgICAgbG9jdXMgc2Vjb25kX2Nsb3NlX2xvY3VzID0gb2xkX2xvYzI7CiAKQEAgLTI4 OTMsMjAgKzI5MTIsMzggQEAgZ2ZjX21hdGNoX29tcF9jbGF1c2VzIChnZmNfb21wX2NsYXVz ZXMgKipjcCwgY29uc3Qgb21wX21hc2sgbWFzaywKIAkJICAgICAgaWYgKGNsb3NlX21vZGlm aWVyKysgPT0gMSkKIAkJCXNlY29uZF9jbG9zZV9sb2N1cyA9IGN1cnJlbnRfbG9jdXM7CiAJ CSAgICB9CisJCSAgZWxzZSBpZiAoZ2ZjX21hdGNoICgicHJlc2VudCAiKSA9PSBNQVRDSF9Z RVMpCisJCSAgICB7CisJCSAgICAgIGlmIChwcmVzZW50X21vZGlmaWVyKysgPT0gMSkKKwkJ CXNlY29uZF9jbG9zZV9sb2N1cyA9IGN1cnJlbnRfbG9jdXM7CisJCSAgICB9CiAJCSAgZWxz ZQogCQkgICAgYnJlYWs7CiAJCSAgZ2ZjX21hdGNoICgiLCAiKTsKIAkJfQogCiAJICAgICAg Z2ZjX29tcF9tYXBfb3AgbWFwX29wID0gT01QX01BUF9UT0ZST007CisJICAgICAgaW50IGFs d2F5c19wcmVzZW50X21vZGlmaWVyCisJCT0gYWx3YXlzX21vZGlmaWVyICYmIHByZXNlbnRf bW9kaWZpZXI7CisKIAkgICAgICBpZiAoZ2ZjX21hdGNoICgiYWxsb2MgOiAiKSA9PSBNQVRD SF9ZRVMpCi0JCW1hcF9vcCA9IE9NUF9NQVBfQUxMT0M7CisJCW1hcF9vcCA9IHByZXNlbnRf bW9kaWZpZXIgPyBPTVBfTUFQX1BSRVNFTlRfQUxMT0MKKwkJCSA6IE9NUF9NQVBfQUxMT0M7 CiAJICAgICAgZWxzZSBpZiAoZ2ZjX21hdGNoICgidG9mcm9tIDogIikgPT0gTUFUQ0hfWUVT KQotCQltYXBfb3AgPSBhbHdheXNfbW9kaWZpZXIgPyBPTVBfTUFQX0FMV0FZU19UT0ZST00g OiBPTVBfTUFQX1RPRlJPTTsKKwkJbWFwX29wID0gYWx3YXlzX3ByZXNlbnRfbW9kaWZpZXIg PyBPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTQorCQkJIDogcHJlc2VudF9tb2RpZmll ciA/IE9NUF9NQVBfUFJFU0VOVF9UT0ZST00KKwkJCSA6IGFsd2F5c19tb2RpZmllciA/IE9N UF9NQVBfQUxXQVlTX1RPRlJPTQorCQkJIDogT01QX01BUF9UT0ZST007CiAJICAgICAgZWxz ZSBpZiAoZ2ZjX21hdGNoICgidG8gOiAiKSA9PSBNQVRDSF9ZRVMpCi0JCW1hcF9vcCA9IGFs d2F5c19tb2RpZmllciA/IE9NUF9NQVBfQUxXQVlTX1RPIDogT01QX01BUF9UTzsKKwkJbWFw X29wID0gYWx3YXlzX3ByZXNlbnRfbW9kaWZpZXIgPyBPTVBfTUFQX0FMV0FZU19QUkVTRU5U X1RPCisJCQkgOiBwcmVzZW50X21vZGlmaWVyID8gT01QX01BUF9QUkVTRU5UX1RPCisJCQkg OiBhbHdheXNfbW9kaWZpZXIgPyBPTVBfTUFQX0FMV0FZU19UTworCQkJIDogT01QX01BUF9U TzsKIAkgICAgICBlbHNlIGlmIChnZmNfbWF0Y2ggKCJmcm9tIDogIikgPT0gTUFUQ0hfWUVT KQotCQltYXBfb3AgPSBhbHdheXNfbW9kaWZpZXIgPyBPTVBfTUFQX0FMV0FZU19GUk9NIDog T01QX01BUF9GUk9NOworCQltYXBfb3AgPSBhbHdheXNfcHJlc2VudF9tb2RpZmllciA/IE9N UF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTQorCQkJIDogcHJlc2VudF9tb2RpZmllciA/IE9N UF9NQVBfUFJFU0VOVF9GUk9NCisJCQkgOiBhbHdheXNfbW9kaWZpZXIgPyBPTVBfTUFQX0FM V0FZU19GUk9NCisJCQkgOiBPTVBfTUFQX0ZST007CiAJICAgICAgZWxzZSBpZiAoZ2ZjX21h dGNoICgicmVsZWFzZSA6ICIpID09IE1BVENIX1lFUykKIAkJbWFwX29wID0gT01QX01BUF9S RUxFQVNFOwogCSAgICAgIGVsc2UgaWYgKGdmY19tYXRjaCAoImRlbGV0ZSA6ICIpID09IE1B VENIX1lFUykKQEAgLTM0NTgsNyArMzQ5NSw4IEBAIGdmY19tYXRjaF9vbXBfY2xhdXNlcyAo Z2ZjX29tcF9jbGF1c2VzICoqY3AsIGNvbnN0IG9tcF9tYXNrIG1hc2ssCiAJICBlbHNlIGlm ICgobWFzayAmIE9NUF9DTEFVU0VfVE8pCiAJICAgICAgJiYgKGdmY19tYXRjaF9vbXBfdmFy aWFibGVfbGlzdCAoInRvICgiLAogCQkJCQkgICAgICAmYy0+bGlzdHNbT01QX0xJU1RfVE9d LCBmYWxzZSwKLQkJCQkJICAgICAgTlVMTCwgJmhlYWQsIHRydWUsIHRydWUpCisJCQkJCSAg ICAgIE5VTEwsICZoZWFkLCB0cnVlLCB0cnVlLCBOVUxMLAorCQkJCQkgICAgICB0cnVlKQog CQkgID09IE1BVENIX1lFUykpCiAJICAgIGNvbnRpbnVlOwogCSAgYnJlYWs7CkBAIC03ODA1 LDExICs3ODQzLDE4IEBAIHJlc29sdmVfb21wX2NsYXVzZXMgKGdmY19jb2RlICpjb2RlLCBn ZmNfb21wX2NsYXVzZXMgKm9tcF9jbGF1c2VzLAogCQkJewogCQkJY2FzZSBPTVBfTUFQX1RP OgogCQkJY2FzZSBPTVBfTUFQX0FMV0FZU19UTzoKKwkJCWNhc2UgT01QX01BUF9QUkVTRU5U X1RPOgorCQkJY2FzZSBPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPOgogCQkJY2FzZSBPTVBf TUFQX0ZST006CiAJCQljYXNlIE9NUF9NQVBfQUxXQVlTX0ZST006CisJCQljYXNlIE9NUF9N QVBfUFJFU0VOVF9GUk9NOgorCQkJY2FzZSBPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST006 CiAJCQljYXNlIE9NUF9NQVBfVE9GUk9NOgogCQkJY2FzZSBPTVBfTUFQX0FMV0FZU19UT0ZS T006CisJCQljYXNlIE9NUF9NQVBfUFJFU0VOVF9UT0ZST006CisJCQljYXNlIE9NUF9NQVBf QUxXQVlTX1BSRVNFTlRfVE9GUk9NOgogCQkJY2FzZSBPTVBfTUFQX0FMTE9DOgorCQkJY2Fz ZSBPTVBfTUFQX1BSRVNFTlRfQUxMT0M6CiAJCQkgIGJyZWFrOwogCQkJZGVmYXVsdDoKIAkJ CSAgZ2ZjX2Vycm9yICgiVEFSR0VUJXMgd2l0aCBtYXAtdHlwZSBvdGhlciB0aGFuIFRPLCAi CkBAIC03ODI1LDYgKzc4NzAsOCBAQCByZXNvbHZlX29tcF9jbGF1c2VzIChnZmNfY29kZSAq Y29kZSwgZ2ZjX29tcF9jbGF1c2VzICpvbXBfY2xhdXNlcywKIAkJCXsKIAkJCWNhc2UgT01Q X01BUF9UTzoKIAkJCWNhc2UgT01QX01BUF9BTFdBWVNfVE86CisJCQljYXNlIE9NUF9NQVBf UFJFU0VOVF9UTzoKKwkJCWNhc2UgT01QX01BUF9BTFdBWVNfUFJFU0VOVF9UTzoKIAkJCWNh c2UgT01QX01BUF9BTExPQzoKIAkJCSAgYnJlYWs7CiAJCQljYXNlIE9NUF9NQVBfVE9GUk9N OgpAQCAtNzgzMyw2ICs3ODgwLDEyIEBAIHJlc29sdmVfb21wX2NsYXVzZXMgKGdmY19jb2Rl ICpjb2RlLCBnZmNfb21wX2NsYXVzZXMgKm9tcF9jbGF1c2VzLAogCQkJY2FzZSBPTVBfTUFQ X0FMV0FZU19UT0ZST006CiAJCQkgIG4tPnUubWFwX29wID0gT01QX01BUF9BTFdBWVNfVE87 CiAJCQkgIGJyZWFrOworCQkJY2FzZSBPTVBfTUFQX1BSRVNFTlRfVE9GUk9NOgorCQkJICBu LT51Lm1hcF9vcCA9IE9NUF9NQVBfUFJFU0VOVF9UTzsKKwkJCSAgYnJlYWs7CisJCQljYXNl IE9NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NOgorCQkJICBuLT51Lm1hcF9vcCA9IE9N UF9NQVBfQUxXQVlTX1BSRVNFTlRfVE87CisJCQkgIGJyZWFrOwogCQkJZGVmYXVsdDoKIAkJ CSAgZ2ZjX2Vycm9yICgiVEFSR0VUIEVOVEVSIERBVEEgd2l0aCBtYXAtdHlwZSBvdGhlciAi CiAJCQkJICAgICAidGhhbiBUTywgVE9GUk9NIG9yIEFMTE9DIG9uIE1BUCBjbGF1c2UgIgpA QCAtNzg0NSw2ICs3ODk4LDggQEAgcmVzb2x2ZV9vbXBfY2xhdXNlcyAoZ2ZjX2NvZGUgKmNv ZGUsIGdmY19vbXBfY2xhdXNlcyAqb21wX2NsYXVzZXMsCiAJCQl7CiAJCQljYXNlIE9NUF9N QVBfRlJPTToKIAkJCWNhc2UgT01QX01BUF9BTFdBWVNfRlJPTToKKwkJCWNhc2UgT01QX01B UF9QUkVTRU5UX0ZST006CisJCQljYXNlIE9NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTToK IAkJCWNhc2UgT01QX01BUF9SRUxFQVNFOgogCQkJY2FzZSBPTVBfTUFQX0RFTEVURToKIAkJ CSAgYnJlYWs7CkBAIC03ODU0LDYgKzc5MDksMTIgQEAgcmVzb2x2ZV9vbXBfY2xhdXNlcyAo Z2ZjX2NvZGUgKmNvZGUsIGdmY19vbXBfY2xhdXNlcyAqb21wX2NsYXVzZXMsCiAJCQljYXNl IE9NUF9NQVBfQUxXQVlTX1RPRlJPTToKIAkJCSAgbi0+dS5tYXBfb3AgPSBPTVBfTUFQX0FM V0FZU19GUk9NOwogCQkJICBicmVhazsKKwkJCWNhc2UgT01QX01BUF9QUkVTRU5UX1RPRlJP TToKKwkJCSAgbi0+dS5tYXBfb3AgPSBPTVBfTUFQX1BSRVNFTlRfRlJPTTsKKwkJCSAgYnJl YWs7CisJCQljYXNlIE9NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NOgorCQkJICBuLT51 Lm1hcF9vcCA9IE9NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTTsKKwkJCSAgYnJlYWs7CiAJ CQlkZWZhdWx0OgogCQkJICBnZmNfZXJyb3IgKCJUQVJHRVQgRVhJVCBEQVRBIHdpdGggbWFw LXR5cGUgb3RoZXIgIgogCQkJCSAgICAgInRoYW4gRlJPTSwgVE9GUk9NLCBSRUxFQVNFLCBv ciBERUxFVEUgb24gIgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNj IGIvZ2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNjCmluZGV4IDJkMTZmM2JlOGVhLi4zNWY5 NjY5YzZjMCAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNjCisrKyBi L2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYwpAQCAtMzA2Niw2ICszMDY2LDMwIEBAIGdm Y190cmFuc19vbXBfY2xhdXNlcyAoc3RtdGJsb2NrX3QgKmJsb2NrLCBnZmNfb21wX2NsYXVz ZXMgKmNsYXVzZXMsCiAJCSAgYWx3YXlzX21vZGlmaWVyID0gdHJ1ZTsKIAkJICBPTVBfQ0xB VVNFX1NFVF9NQVBfS0lORCAobm9kZSwgR09NUF9NQVBfQUxXQVlTX1RPRlJPTSk7CiAJCSAg YnJlYWs7CisJCWNhc2UgT01QX01BUF9QUkVTRU5UX0FMTE9DOgorCQkgIE9NUF9DTEFVU0Vf U0VUX01BUF9LSU5EIChub2RlLCBHT01QX01BUF9QUkVTRU5UX0FMTE9DKTsKKwkJICBicmVh azsKKwkJY2FzZSBPTVBfTUFQX1BSRVNFTlRfVE86CisJCSAgT01QX0NMQVVTRV9TRVRfTUFQ X0tJTkQgKG5vZGUsIEdPTVBfTUFQX1BSRVNFTlRfVE8pOworCQkgIGJyZWFrOworCQljYXNl IE9NUF9NQVBfUFJFU0VOVF9GUk9NOgorCQkgIE9NUF9DTEFVU0VfU0VUX01BUF9LSU5EIChu b2RlLCBHT01QX01BUF9QUkVTRU5UX0ZST00pOworCQkgIGJyZWFrOworCQljYXNlIE9NUF9N QVBfUFJFU0VOVF9UT0ZST006CisJCSAgT01QX0NMQVVTRV9TRVRfTUFQX0tJTkQgKG5vZGUs IEdPTVBfTUFQX1BSRVNFTlRfVE9GUk9NKTsKKwkJICBicmVhazsKKwkJY2FzZSBPTVBfTUFQ X0FMV0FZU19QUkVTRU5UX1RPOgorCQkgIGFsd2F5c19tb2RpZmllciA9IHRydWU7CisJCSAg T01QX0NMQVVTRV9TRVRfTUFQX0tJTkQgKG5vZGUsIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5U X1RPKTsKKwkJICBicmVhazsKKwkJY2FzZSBPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST006 CisJCSAgYWx3YXlzX21vZGlmaWVyID0gdHJ1ZTsKKwkJICBPTVBfQ0xBVVNFX1NFVF9NQVBf S0lORCAobm9kZSwgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTSk7CisJCSAgYnJlYWs7 CisJCWNhc2UgT01QX01BUF9BTFdBWVNfUFJFU0VOVF9UT0ZST006CisJCSAgYWx3YXlzX21v ZGlmaWVyID0gdHJ1ZTsKKwkJICBPTVBfQ0xBVVNFX1NFVF9NQVBfS0lORCAobm9kZSwgR09N UF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NKTsKKwkJICBicmVhazsKIAkJY2FzZSBPTVBf TUFQX1JFTEVBU0U6CiAJCSAgT01QX0NMQVVTRV9TRVRfTUFQX0tJTkQgKG5vZGUsIEdPTVBf TUFQX1JFTEVBU0UpOwogCQkgIGJyZWFrOwpAQCAtMzcwNSw2ICszNzI5LDkgQEAgZ2ZjX3Ry YW5zX29tcF9jbGF1c2VzIChzdG10YmxvY2tfdCAqYmxvY2ssIGdmY19vbXBfY2xhdXNlcyAq Y2xhdXNlcywKIAkJICBnY2NfYXNzZXJ0IChQT0lOVEVSX1RZUEVfUCAoVFJFRV9UWVBFIChw dHIpKSk7CiAJCSAgT01QX0NMQVVTRV9ERUNMIChub2RlKSA9IGJ1aWxkX2ZvbGRfaW5kaXJl Y3RfcmVmIChwdHIpOwogCQl9CisJICAgICAgaWYgKG4tPnUubW90aW9uX21vZGlmaWVyID09 IE9NUF9NT1RJT05fUFJFU0VOVCkKKwkJT01QX0NMQVVTRV9TRVRfTU9USU9OX01PRElGSUVS IChub2RlLAorCQkJCQkJT01QX0NMQVVTRV9NT1RJT05fUFJFU0VOVCk7CiAJICAgICAgb21w X2NsYXVzZXMgPSBnZmNfdHJhbnNfYWRkX2NsYXVzZSAobm9kZSwgb21wX2NsYXVzZXMpOwog CSAgICB9CiAJICBicmVhazsKQEAgLTQyNDYsNiArNDI3Myw5IEBAIGdmY190cmFuc19vbXBf Y2xhdXNlcyAoc3RtdGJsb2NrX3QgKmJsb2NrLCBnZmNfb21wX2NsYXVzZXMgKmNsYXVzZXMs CiAJY2FzZSBPTVBfREVGQVVMVE1BUF9GSVJTVFBSSVZBVEU6CiAJICBiZWhhdmlvciA9IE9N UF9DTEFVU0VfREVGQVVMVE1BUF9GSVJTVFBSSVZBVEU7CiAJICBicmVhazsKKwljYXNlIE9N UF9ERUZBVUxUTUFQX1BSRVNFTlQ6CisJICBiZWhhdmlvciA9IE9NUF9DTEFVU0VfREVGQVVM VE1BUF9QUkVTRU5UOworCSAgYnJlYWs7CiAJY2FzZSBPTVBfREVGQVVMVE1BUF9OT05FOiBi ZWhhdmlvciA9IE9NUF9DTEFVU0VfREVGQVVMVE1BUF9OT05FOyBicmVhazsKIAljYXNlIE9N UF9ERUZBVUxUTUFQX0RFRkFVTFQ6CiAJICBiZWhhdmlvciA9IE9NUF9DTEFVU0VfREVGQVVM VE1BUF9ERUZBVUxUOwpkaWZmIC0tZ2l0IGEvZ2NjL2dpbXBsaWZ5LmNjIGIvZ2NjL2dpbXBs aWZ5LmNjCmluZGV4IDk2ODQ1MTU0YTkyLi4xMDQ5NWZiZDc3ZSAxMDA2NDQKLS0tIGEvZ2Nj L2dpbXBsaWZ5LmNjCisrKyBiL2djYy9naW1wbGlmeS5jYwpAQCAtNzkwNCw2ICs3OTA0LDEx IEBAIG9tcF9ub3RpY2VfdmFyaWFibGUgKHN0cnVjdCBnaW1wbGlmeV9vbXBfY3R4ICpjdHgs IHRyZWUgZGVjbCwgYm9vbCBpbl9jb2RlKQogCQkgIGVsc2UgaWYgKGN0eC0+ZGVmYXVsdG1h cFtnZG1rXQogCQkJICAgJiAoR09WRF9NQVBfMExFTl9BUlJBWSB8IEdPVkRfRklSU1RQUklW QVRFKSkKIAkJICAgIG5mbGFncyB8PSBjdHgtPmRlZmF1bHRtYXBbZ2Rta107CisJCSAgZWxz ZSBpZiAoY3R4LT5kZWZhdWx0bWFwW2dkbWtdICYgR09WRF9NQVBfRk9SQ0VfUFJFU0VOVCkK KwkJICAgIHsKKwkJICAgICAgZ2NjX2Fzc2VydCAoY3R4LT5kZWZhdWx0bWFwW2dkbWtdICYg R09WRF9NQVApOworCQkgICAgICBuZmxhZ3MgfD0gY3R4LT5kZWZhdWx0bWFwW2dkbWtdIHwg R09WRF9NQVBfQUxMT0NfT05MWTsKKwkJICAgIH0KIAkJICBlbHNlCiAJCSAgICB7CiAJCSAg ICAgIGdjY19hc3NlcnQgKGN0eC0+ZGVmYXVsdG1hcFtnZG1rXSAmIEdPVkRfTUFQKTsKQEAg LTkwNjIsNiArOTA2NywxMyBAQCBvbXBfZ2V0X2F0dGFjaG1lbnQgKG9tcF9tYXBwaW5nX2dy b3VwICpncnApCiAgICAgY2FzZSBHT01QX01BUF9GT1JDRV9UTzoKICAgICBjYXNlIEdPTVBf TUFQX0ZPUkNFX1RPRlJPTToKICAgICBjYXNlIEdPTVBfTUFQX0ZPUkNFX1BSRVNFTlQ6Cisg ICAgY2FzZSBHT01QX01BUF9QUkVTRU5UX0FMTE9DOgorICAgIGNhc2UgR09NUF9NQVBfUFJF U0VOVF9GUk9NOgorICAgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9UTzoKKyAgICBjYXNlIEdP TVBfTUFQX1BSRVNFTlRfVE9GUk9NOgorICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNF TlRfRlJPTToKKyAgICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPOgorICAgIGNh c2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NOgogICAgIGNhc2UgR09NUF9NQVBf QUxMT0M6CiAgICAgY2FzZSBHT01QX01BUF9SRUxFQVNFOgogICAgIGNhc2UgR09NUF9NQVBf REVMRVRFOgpAQCAtOTI5Myw2ICs5MzA1LDEzIEBAIG9tcF9ncm91cF9iYXNlIChvbXBfbWFw cGluZ19ncm91cCAqZ3JwLCB1bnNpZ25lZCBpbnQgKmNoYWluZWQsCiAgICAgY2FzZSBHT01Q X01BUF9GT1JDRV9UTzoKICAgICBjYXNlIEdPTVBfTUFQX0ZPUkNFX1RPRlJPTToKICAgICBj YXNlIEdPTVBfTUFQX0ZPUkNFX1BSRVNFTlQ6CisgICAgY2FzZSBHT01QX01BUF9QUkVTRU5U X0FMTE9DOgorICAgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9GUk9NOgorICAgIGNhc2UgR09N UF9NQVBfUFJFU0VOVF9UTzoKKyAgICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfVE9GUk9NOgor ICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTToKKyAgICBjYXNlIEdPTVBf TUFQX0FMV0FZU19QUkVTRU5UX1RPOgorICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNF TlRfVE9GUk9NOgogICAgIGNhc2UgR09NUF9NQVBfQUxMT0M6CiAgICAgY2FzZSBHT01QX01B UF9SRUxFQVNFOgogICAgIGNhc2UgR09NUF9NQVBfREVMRVRFOgpAQCAtMTA3NzYsNiArMTA3 OTUsNTAgQEAgZ2ltcGxpZnlfc2Nhbl9vbXBfY2xhdXNlcyAodHJlZSAqbGlzdF9wLCBnaW1w bGVfc2VxICpwcmVfcCwKIAkgIGRlbGV0ZSBncnBtYXA7CiAJICBkZWxldGUgZ3JvdXBzOwog CX0KKworICAgICAgLyogT3Blbk1QIG1hcCBjbGF1c2VzIHdpdGggJ3ByZXNlbnQnIG5lZWQg dG8gZ28gaW4gZnJvbnQgb2YgdGhvc2UKKwkgd2l0aG91dC4gICovCisgICAgICB0cmVlIHBy ZXNlbnRfbWFwX2hlYWQgPSBOVUxMOworICAgICAgdHJlZSAqcHJlc2VudF9tYXBfdGFpbF9w ID0gJnByZXNlbnRfbWFwX2hlYWQ7CisgICAgICB0cmVlICpmaXJzdF9tYXBfY2xhdXNlX3Ag PSBOVUxMOworCisgICAgICBmb3IgKHRyZWUgKmNfcCA9IGxpc3RfcDsgKmNfcDsgKQorCXsK KwkgIHRyZWUgYyA9ICpjX3A7CisJICB0cmVlICpuZXh0X2NfcCA9ICZPTVBfQ0xBVVNFX0NI QUlOIChjKTsKKworCSAgaWYgKE9NUF9DTEFVU0VfQ09ERSAoYykgPT0gT01QX0NMQVVTRV9N QVApCisJICAgIHsKKwkgICAgICBpZiAoIWZpcnN0X21hcF9jbGF1c2VfcCkKKwkJZmlyc3Rf bWFwX2NsYXVzZV9wID0gY19wOworCSAgICAgIHN3aXRjaCAoT01QX0NMQVVTRV9NQVBfS0lO RCAoYykpCisJCXsKKwkJY2FzZSBHT01QX01BUF9QUkVTRU5UX0FMTE9DOgorCQljYXNlIEdP TVBfTUFQX1BSRVNFTlRfRlJPTToKKwkJY2FzZSBHT01QX01BUF9QUkVTRU5UX1RPOgorCQlj YXNlIEdPTVBfTUFQX1BSRVNFTlRfVE9GUk9NOgorCQkgIG5leHRfY19wID0gY19wOworCQkg ICpjX3AgPSBPTVBfQ0xBVVNFX0NIQUlOIChjKTsKKworCQkgIE9NUF9DTEFVU0VfQ0hBSU4g KGMpID0gTlVMTDsKKwkJICAqcHJlc2VudF9tYXBfdGFpbF9wID0gYzsKKwkJICBwcmVzZW50 X21hcF90YWlsX3AgPSAmT01QX0NMQVVTRV9DSEFJTiAoYyk7CisKKwkJICBicmVhazsKKwor CQlkZWZhdWx0OgorCQkgIGJyZWFrOworCQl9CisJICAgIH0KKworCSAgY19wID0gbmV4dF9j X3A7CisJfQorICAgICAgaWYgKGZpcnN0X21hcF9jbGF1c2VfcCAmJiBwcmVzZW50X21hcF9o ZWFkKQorCXsKKwkgIHRyZWUgbmV4dCA9ICpmaXJzdF9tYXBfY2xhdXNlX3A7CisJICAqZmly c3RfbWFwX2NsYXVzZV9wID0gcHJlc2VudF9tYXBfaGVhZDsKKwkgICpwcmVzZW50X21hcF90 YWlsX3AgPSBuZXh0OworCX0KICAgICB9CiAgIGVsc2UgaWYgKHJlZ2lvbl90eXBlICYgT1JU X0FDQykKICAgICB7CkBAIC0xMTk3Miw2ICsxMjAzNSw5IEBAIGdpbXBsaWZ5X3NjYW5fb21w X2NsYXVzZXMgKHRyZWUgKmxpc3RfcCwgZ2ltcGxlX3NlcSAqcHJlX3AsCiAJICAgICAgY2Fz ZSBPTVBfQ0xBVVNFX0RFRkFVTFRNQVBfTk9ORToKIAkJY3R4LT5kZWZhdWx0bWFwW2dkbWtd ID0gMDsKIAkJYnJlYWs7CisJICAgICAgY2FzZSBPTVBfQ0xBVVNFX0RFRkFVTFRNQVBfUFJF U0VOVDoKKwkJY3R4LT5kZWZhdWx0bWFwW2dkbWtdID0gR09WRF9NQVAgfCBHT1ZEX01BUF9G T1JDRV9QUkVTRU5UOworCQlicmVhazsKIAkgICAgICBjYXNlIE9NUF9DTEFVU0VfREVGQVVM VE1BUF9ERUZBVUxUOgogCQlzd2l0Y2ggKGdkbWspCiAJCSAgewpAQCAtMTI0MTYsNiArMTI0 ODIsOSBAQCBnaW1wbGlmeV9hZGp1c3Rfb21wX2NsYXVzZXNfMSAoc3BsYXlfdHJlZV9ub2Rl IG4sIHZvaWQgKmRhdGEpCiAJY2FzZSBHT1ZEX01BUF9GT1JDRV9QUkVTRU5UOgogCSAga2lu ZCA9IEdPTVBfTUFQX0ZPUkNFX1BSRVNFTlQ7CiAJICBicmVhazsKKwljYXNlIEdPVkRfTUFQ X0ZPUkNFX1BSRVNFTlQgfCBHT1ZEX01BUF9BTExPQ19PTkxZOgorCSAga2luZCA9IEdPTVBf TUFQX1BSRVNFTlRfQUxMT0M7CisJICBicmVhazsKIAlkZWZhdWx0OgogCSAgZ2NjX3VucmVh Y2hhYmxlICgpOwogCX0KZGlmZiAtLWdpdCBhL2djYy9vbXAtbG93LmNjIGIvZ2NjL29tcC1s b3cuY2MKaW5kZXggZmVmNDFhMDEzZWMuLmMxYWMzNGU1ZWMwIDEwMDY0NAotLS0gYS9nY2Mv b21wLWxvdy5jYworKysgYi9nY2Mvb21wLWxvdy5jYwpAQCAtMTU3Niw2ICsxNTc2LDkgQEAg c2Nhbl9zaGFyaW5nX2NsYXVzZXMgKHRyZWUgY2xhdXNlcywgb21wX2NvbnRleHQgKmN0eCkK IAkgICAgICAmJiBPTVBfQ0xBVVNFX01BUF9LSU5EIChjKSAhPSBHT01QX01BUF9BTFdBWVNf VE8KIAkgICAgICAmJiBPTVBfQ0xBVVNFX01BUF9LSU5EIChjKSAhPSBHT01QX01BUF9BTFdB WVNfRlJPTQogCSAgICAgICYmIE9NUF9DTEFVU0VfTUFQX0tJTkQgKGMpICE9IEdPTVBfTUFQ X0FMV0FZU19UT0ZST00KKwkgICAgICAmJiBPTVBfQ0xBVVNFX01BUF9LSU5EIChjKSAhPSBH T01QX01BUF9BTFdBWVNfUFJFU0VOVF9UTworCSAgICAgICYmIE9NUF9DTEFVU0VfTUFQX0tJ TkQgKGMpICE9IEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST00KKwkgICAgICAmJiBPTVBf Q0xBVVNFX01BUF9LSU5EIChjKSAhPSBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9UT0ZST00K IAkgICAgICAmJiBPTVBfQ0xBVVNFX01BUF9LSU5EIChjKSAhPSBHT01QX01BUF9UT19QU0VU CiAJICAgICAgJiYgaXNfZ2xvYmFsX3ZhciAobWF5YmVfbG9va3VwX2RlY2xfaW5fb3V0ZXJf Y3R4IChkZWNsLCBjdHgpKQogCSAgICAgICYmIHZhcnBvb2xfbm9kZTo6Z2V0X2NyZWF0ZSAo ZGVjbCktPm9mZmxvYWRhYmxlCkBAIC0xMjc5Nyw2ICsxMjgwMCwxNCBAQCBsb3dlcl9vbXBf dGFyZ2V0IChnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3NpX3AsIG9tcF9jb250ZXh0ICpjdHgp CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19UTzoKIAkgIGNhc2UgR09NUF9NQVBfQUxXQVlT X0ZST006CiAJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19UT0ZST006CisJICBjYXNlIEdPTVBf TUFQX1BSRVNFTlRfQUxMT0M6CisJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfRlJPTToKKwkg IGNhc2UgR09NUF9NQVBfUFJFU0VOVF9UTzoKKwkgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9U T0ZST006CisJICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST006CisJICBjYXNl IEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPOgorCSAgY2FzZSBHT01QX01BUF9BTFdBWVNf UFJFU0VOVF9UT0ZST006CisKIAkgIGNhc2UgR09NUF9NQVBfRklSU1RQUklWQVRFX1BPSU5U RVI6CiAJICBjYXNlIEdPTVBfTUFQX0ZJUlNUUFJJVkFURV9SRUZFUkVOQ0U6CiAJICBjYXNl IEdPTVBfTUFQX1NUUlVDVDoKQEAgLTEzMzM4LDYgKzEzMzQ5LDEzIEBAIGxvd2VyX29tcF90 YXJnZXQgKGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2lfcCwgb21wX2NvbnRleHQgKmN0eCkK IAkJICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1RPOgogCQkgICAgY2FzZSBHT01QX01BUF9B TFdBWVNfRlJPTToKIAkJICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1RPRlJPTToKKwkJICAg IGNhc2UgR09NUF9NQVBfUFJFU0VOVF9BTExPQzoKKwkJICAgIGNhc2UgR09NUF9NQVBfUFJF U0VOVF9UTzoKKwkJICAgIGNhc2UgR09NUF9NQVBfUFJFU0VOVF9GUk9NOgorCQkgICAgY2Fz ZSBHT01QX01BUF9QUkVTRU5UX1RPRlJPTToKKwkJICAgIGNhc2UgR09NUF9NQVBfQUxXQVlT X1BSRVNFTlRfVE86CisJCSAgICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST006 CisJCSAgICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToKIAkJICAgIGNh c2UgR09NUF9NQVBfUkVMRUFTRToKIAkJICAgIGNhc2UgR09NUF9NQVBfRk9SQ0VfVE86CiAJ CSAgICBjYXNlIEdPTVBfTUFQX0ZPUkNFX0ZST006CkBAIC0xMzM3NywxMSArMTMzOTUsMTUg QEAgbG93ZXJfb21wX3RhcmdldCAoZ2ltcGxlX3N0bXRfaXRlcmF0b3IgKmdzaV9wLCBvbXBf Y29udGV4dCAqY3R4KQogCQl0a2luZF96ZXJvID0gdGtpbmQ7CiAJCWJyZWFrOwogCSAgICAg IGNhc2UgT01QX0NMQVVTRV9UTzoKLQkJdGtpbmQgPSBHT01QX01BUF9UTzsKKwkJdGtpbmQK KwkJICA9IE9NUF9DTEFVU0VfTU9USU9OX01PRElGSUVSIChjKSA9PSBPTVBfQ0xBVVNFX01P VElPTl9QUkVTRU5UCisJCSAgICA/IEdPTVBfTUFQX1BSRVNFTlRfVE8gOiBHT01QX01BUF9U TzsKIAkJdGtpbmRfemVybyA9IHRraW5kOwogCQlicmVhazsKIAkgICAgICBjYXNlIE9NUF9D TEFVU0VfRlJPTToKLQkJdGtpbmQgPSBHT01QX01BUF9GUk9NOworCQl0a2luZAorCQkgID0g T01QX0NMQVVTRV9NT1RJT05fTU9ESUZJRVIgKGMpID09IE9NUF9DTEFVU0VfTU9USU9OX1BS RVNFTlQKKwkJICAgID8gR09NUF9NQVBfUFJFU0VOVF9GUk9NIDogR09NUF9NQVBfRlJPTTsK IAkJdGtpbmRfemVybyA9IHRraW5kOwogCQlicmVhazsKIAkgICAgICBkZWZhdWx0OgpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC9kZWZhdWx0bWFwLTQu YyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvZGVmYXVsdG1hcC00LmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFhZmZmN2VhMzhmCi0tLSAv ZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC9kZWZhdWx0 bWFwLTQuYwpAQCAtMCwwICsxLDI0IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyog eyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1mZHVtcC10cmVlLWdpbXBsZSIgfSAqLworCisj ZGVmaW5lIE4gMTAwMAorCit2b2lkCitmb28gKHZvaWQpCit7CisgIGludCBhW05dLCBiW05d LCBjW05dOworCisgIC8qIFNob3VsZCBnZW5lcmF0ZSBpbXBsaWNpdCAnbWFwKHByZXNlbnQs IGFsbG9jKScgY2xhdXNlcy4gICovCisgICNwcmFnbWEgb21wIHRhcmdldCBkZWZhdWx0bWFw IChwcmVzZW50OiBhZ2dyZWdhdGUpCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKysp CisgICAgICBjW2ldID0gYVtpXSArIGJbaV07CisKKyAgLyogU2hvdWxkIGdlbmVyYXRlIGlt cGxpY2l0ICdtYXAocHJlc2VudCwgYWxsb2MpJyBjbGF1c2VzLAorICAgICBhbmQgdGhleSBz aG91bGQgZ28gYmVmb3JlIG90aGVyIG5vbi1wcmVzZW50IGNsYXVzZXMuICAqLworICAjcHJh Z21hIG9tcCB0YXJnZXQgbWFwKGZyb206IGMpIGRlZmF1bHRtYXAgKHByZXNlbnQ6IGFnZ3Jl Z2F0ZSkKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykKKyAgICAgIGNbaV0gPSBh W2ldICsgYltpXTsKK30KKworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJwcmFn bWEgb21wIHRhcmdldC4qZGVmYXVsdG1hcFxcKHByZXNlbnQ6YWdncmVnYXRlXFwpIG1hcFxc KHByZXNlbnQsYWxsb2M6YyBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXFxbaW1wbGljaXRcXFxd XFwpIG1hcFxcKHByZXNlbnQsYWxsb2M6YiBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXFxbaW1w bGljaXRcXFxdXFwpIG1hcFxcKHByZXNlbnQsYWxsb2M6YSBcXFxbbGVuOiBcWzAtOVxdK1xc XF1cXFxbaW1wbGljaXRcXFxdXFwpIiAiZ2ltcGxlIiB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcCAicHJhZ21hIG9tcCB0YXJnZXQuKmRlZmF1bHRtYXBcXChwcmVz ZW50OmFnZ3JlZ2F0ZVxcKSBtYXBcXChwcmVzZW50LGFsbG9jOmIgXFxcW2xlbjogXFswLTlc XStcXFxdXFxcW2ltcGxpY2l0XFxcXVxcKSBtYXBcXChwcmVzZW50LGFsbG9jOmEgXFxcW2xl bjogXFswLTlcXStcXFxdXFxcW2ltcGxpY2l0XFxcXVxcKSBtYXBcXChmcm9tOmMgXFxcW2xl bjogXFswLTlcXStcXFxdXFwpIiAiZ2ltcGxlIiB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvbWFwLTYuYyBiL2djYy90ZXN0c3VpdGUvYy1j KystY29tbW9uL2dvbXAvbWFwLTYuYwppbmRleCA2ZWU1OTcxNDg0Ny4uYjQ2ODNkZGJhYmYg MTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvbWFwLTYuYwor KysgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL21hcC02LmMKQEAgLTEzLDEw ICsxMywxMCBAQCBmb28gKHZvaWQpCiAgICNwcmFnbWEgb21wIHRhcmdldCBtYXAgKHRvOmEp CiAgIDsKIAotICAjcHJhZ21hIG9tcCB0YXJnZXQgbWFwIChhIHRvOiBiKSAvKiB7IGRnLWVy cm9yICInI3ByYWdtYSBvbXAgdGFyZ2V0JyB3aXRoIG1vZGlmaWVyIG90aGVyIHRoYW4gJ2Fs d2F5cycgb3IgJ2Nsb3NlJyIgfSAqLworICAjcHJhZ21hIG9tcCB0YXJnZXQgbWFwIChhIHRv OiBiKSAvKiB7IGRnLWVycm9yICInI3ByYWdtYSBvbXAgdGFyZ2V0JyB3aXRoIG1vZGlmaWVy IG90aGVyIHRoYW4gJ2Fsd2F5cycsICdjbG9zZScgb3IgJ3ByZXNlbnQnIiB9ICovCiAgIDsK IAotICAjcHJhZ21hIG9tcCB0YXJnZXQgbWFwIChjbG9zZSwgYSB0bzogYikgLyogeyBkZy1l cnJvciAiJyNwcmFnbWEgb21wIHRhcmdldCcgd2l0aCBtb2RpZmllciBvdGhlciB0aGFuICdh bHdheXMnIG9yICdjbG9zZSciIH0gKi8KKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IG1hcCAoY2xv c2UsIGEgdG86IGIpIC8qIHsgZGctZXJyb3IgIicjcHJhZ21hIG9tcCB0YXJnZXQnIHdpdGgg bW9kaWZpZXIgb3RoZXIgdGhhbiAnYWx3YXlzJywgJ2Nsb3NlJyBvciAncHJlc2VudCciIH0g Ki8KICAgOwogCiAgICNwcmFnbWEgb21wIHRhcmdldCBtYXAgKGNsb3NlIGEpIC8qIHsgZGct ZXJyb3IgIidjbG9zZScgdW5kZWNsYXJlZCIgIiIgeyB0YXJnZXQgYyB9IH0gKi8gCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL21hcC04LmMgYi9nY2Mv dGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL21hcC04LmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRiNGJkNmQyYWEzCi0tLSAvZGV2L251bGwKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC9tYXAtOC5jCkBAIC0wLDAgKzEsMzIg QEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9u cyAiLWZkdW1wLXRyZWUtZ2ltcGxlIiB9ICovCisKKyNkZWZpbmUgTiAxMDAwCisKK3ZvaWQK K2ZvbyAodm9pZCkKK3sKKyAgaW50IGFbTl0sIGJbTl0sIGNbTl07CisKKyAgLyogU2hvdWxk IGJlIGFibGUgdG8gcGFyc2UgJ3ByZXNlbnQnIG1hcCBtb2RpZmllci4gICovCisgICNwcmFn bWEgb21wIHRhcmdldCBlbnRlciBkYXRhIG1hcCAocHJlc2VudCwgdG86IGEsIGIpCisKKyAg I3ByYWdtYSBvbXAgdGFyZ2V0IGRhdGEgbWFwIChwcmVzZW50LCB0bzogYSwgYikgbWFwIChh bHdheXMsIHByZXNlbnQsIGZyb206IGMpCisKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IG1hcCAo cHJlc2VudCwgdG86IGEsIGIpIG1hcCAocHJlc2VudCwgZnJvbTogYykKKyAgICBmb3IgKGlu dCBpID0gMDsgaSA8IE47IGkrKykKKyAgICAgIGNbaV0gPSBhW2ldICsgYltpXTsKKworICAj cHJhZ21hIG9tcCB0YXJnZXQgZXhpdCBkYXRhIG1hcCAoYWx3YXlzLCBwcmVzZW50LCBmcm9t OiBjKQorCisgIC8qIE1hcCBjbGF1c2VzIHdpdGggJ3ByZXNlbnQnIG1vZGlmaWVyIHNob3Vs ZCBnbyBhaGVhZCBvZiB0aG9zZSB3aXRob3V0LiAgKi8KKyAgI3ByYWdtYSBvbXAgdGFyZ2V0 IG1hcCAodG86IGEpIG1hcCAocHJlc2VudCwgdG86IGIpIG1hcCAoZnJvbTogYykKKyAgICBm b3IgKGludCBpID0gMDsgaSA8IE47IGkrKykKKyAgICAgIGNbaV0gPSBhW2ldICsgYltpXTsK K30KKworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJwcmFnbWEgb21wIHRhcmdl dCBlbnRlciBkYXRhIG1hcFxcKHByZXNlbnQsdG86YiBcXFxbbGVuOiBcWzAtOVxdK1xcXF1c XCkgbWFwXFwocHJlc2VudCx0bzphIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSIgImdpbXBs ZSIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgInByYWdtYSBvbXAg dGFyZ2V0IGRhdGEgbWFwXFwocHJlc2VudCx0bzpiIFxcXFtsZW46IFxbMC05XF0rXFxcXVxc KSBtYXBcXChwcmVzZW50LHRvOmEgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIG1hcFxcKGFs d2F5cyxwcmVzZW50LGZyb206YyBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXCkiICJnaW1wbGUi IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJwcmFnbWEgb21wIHRh cmdldC4qbWFwXFwocHJlc2VudCxmcm9tOmMgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIG1h cFxcKHByZXNlbnQsdG86YiBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXCkgbWFwXFwocHJlc2Vu dCx0bzphIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSIgImdpbXBsZSIgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgInByYWdtYSBvbXAgdGFyZ2V0IGV4aXQgZGF0 YSBtYXBcXChhbHdheXMscHJlc2VudCxmcm9tOmMgXFxcW2xlbjogXFswLTlcXStcXFxdXFwp IiAiZ2ltcGxlIiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAicHJh Z21hIG9tcCB0YXJnZXQuKm1hcFxcKHByZXNlbnQsdG86YiBcXFxbbGVuOiBcWzAtOVxdK1xc XF1cXCkgbWFwXFwoZnJvbTpjIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSBtYXBcXCh0bzph IFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSIgImdpbXBsZSIgfSB9ICovCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3RhcmdldC11cGRhdGUtMS5jIGIv Z2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC90YXJnZXQtdXBkYXRlLTEuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDIzM2ZlNWE3YWYKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3RhcmdldC11 cGRhdGUtMS5jCkBAIC0wLDAgKzEsMTUgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisv KiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLWZkdW1wLXRyZWUtZ2ltcGxlIiB9ICovCisK KyNkZWZpbmUgTiAxMDAwCisKK3ZvaWQKK2ZvbyAodm9pZCkKK3sKKyAgaW50IGFbTl0sIGJb Tl07CisKKyAgLyogU2hvdWxkIGJlIGFibGUgdG8gcGFyc2UgcHJlc2VudCBpbiB0by9mcm9t IGNsYXVzZXMgb2YgJ3RhcmdldCB1cGRhdGUnLiAgKi8KKyAgI3ByYWdtYSBvbXAgdGFyZ2V0 IHVwZGF0ZSB0byhwcmVzZW50OiBhKSBmcm9tKHByZXNlbnQ6IGIpCit9CisKKy8qIHsgZGct ZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAicHJhZ21hIG9tcCB0YXJnZXQgdXBkYXRlIGZyb21c XChwcmVzZW50OmIgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIHRvXFwocHJlc2VudDphIFxc XFtsZW46IFxbMC05XF0rXFxcXVxcKSIgImdpbXBsZSIgfSB9ICovCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVmYXVsdG1hcC0xLmY5MCBiL2djYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kZWZhdWx0bWFwLTEuZjkwCmluZGV4IDI5OWQ5 NzFmMjNjLi4xZjFiODUyOGFlZiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9nb21wL2RlZmF1bHRtYXAtMS5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9nb21wL2RlZmF1bHRtYXAtMS5mOTAKQEAgLTIsNyArMiw3IEBACiAKIGltcGxpY2l0 IG5vbmUKIAotISRvbXAgdGFyZ2V0IGRlZmF1bHRtYXAoYmFyKSAgISB7IGRnLWVycm9yICIy NTogRXhwZWN0ZWQgQUxMT0MsIFRPLCBGUk9NLCBUT0ZST00sIEZJUlNUUFJJVkFURSwgTk9O RSBvciBERUZBVUxUIiB9CishJG9tcCB0YXJnZXQgZGVmYXVsdG1hcChiYXIpICAhIHsgZGct ZXJyb3IgIjI1OiBFeHBlY3RlZCBBTExPQywgVE8sIEZST00sIFRPRlJPTSwgRklSU1RQUklW QVRFLCBQUkVTRU5ULCBOT05FIG9yIERFRkFVTFQiIH0KIAogISRvbXAgdGFyZ2V0IGRlZmF1 bHRtYXAgKCBhbGxvYzogZm9vKSAgISB7IGRnLWVycm9yICIzNDogRXhwZWN0ZWQgU0NBTEFS LCBBR0dSRUdBVEUsIEFMTE9DQVRBQkxFIG9yIFBPSU5URVIiIH0KIApkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2RlZmF1bHRtYXAtOC5mOTAgYi9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVmYXVsdG1hcC04LmY5MApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjY5YTYyM2Y3NDYKLS0tIC9kZXYvbnVs bAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVmYXVsdG1hcC04LmY5 MApAQCAtMCwwICsxLDI2IEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsgZGctYWRkaXRp b25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1naW1wbGUiIH0KKworcHJvZ3JhbSBtYWluCisg IGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciwgcGFyYW1ldGVyIDo6IE4gPSAxMDAwCisgIGlu dGVnZXIgOjogYShOKSwgYihOKSwgYyhOKSwgaQorICAKKyAgISBTaG91bGQgZ2VuZXJhdGUg aW1wbGljaXQgJ21hcChwcmVzZW50LCBhbGxvYyknIGNsYXVzZXMuCisgICEkb21wIHRhcmdl dCBkZWZhdWx0bWFwIChwcmVzZW50OiBhZ2dyZWdhdGUpCisgICAgZG8gaSA9IDEsIE4KKyAg ICAgIGMoaSkgPSBhKGkpICsgYihpKQorICAgIGVuZCBkbworICAhJG9tcCBlbmQgdGFyZ2V0 CisKKyAgISBTaG91bGQgZ2VuZXJhdGUgaW1wbGljaXQgJ21hcChwcmVzZW50LCBhbGxvYykn IGNsYXVzZXMsCisgICEgYW5kIHRoZXkgc2hvdWxkIGdvIGJlZm9yZSBvdGhlciBub24tcHJl c2VudCBjbGF1c2VzLgorICAhJG9tcCB0YXJnZXQgbWFwKGZyb206IGMpIGRlZmF1bHRtYXAg KHByZXNlbnQ6IGFnZ3JlZ2F0ZSkKKyAgICBkbyBpID0gMSwgTgorICAgICAgYyhpKSA9IGEo aSkgKyBiKGkpCisgICAgZW5kIGRvCisgICEkb21wIGVuZCB0YXJnZXQKK2VuZCBwcm9ncmFt CisgIAorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgInByYWdtYSBvbXAgdGFyZ2V0 LipkZWZhdWx0bWFwXFwocHJlc2VudDphZ2dyZWdhdGVcXCkuKm1hcFxcKHByZXNlbnQsYWxs b2M6YyBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXFxbaW1wbGljaXRcXFxdXFwpIG1hcFxcKHBy ZXNlbnQsYWxsb2M6YiBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXFxbaW1wbGljaXRcXFxdXFwp IG1hcFxcKHByZXNlbnQsYWxsb2M6YSBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXFxbaW1wbGlj aXRcXFxdXFwpIiAiZ2ltcGxlIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1w ICJwcmFnbWEgb21wIHRhcmdldC4qbWFwXFwocHJlc2VudCxhbGxvYzpiIFxcXFtsZW46IFxb MC05XF0rXFxcXVxcXFtpbXBsaWNpdFxcXF1cXCkgbWFwXFwocHJlc2VudCxhbGxvYzphIFxc XFtsZW46IFxbMC05XF0rXFxcXVxcXFtpbXBsaWNpdFxcXF1cXCkgbWFwXFwoZnJvbTpjIFxc XFtsZW46IFxbMC05XF0rXFxcXVxcKSBkZWZhdWx0bWFwXFwocHJlc2VudDphZ2dyZWdhdGVc XCkiICJnaW1wbGUiIH0gfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9nb21wL21hcC05LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9tYXAt OS5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjODcyMTJm OGQwCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21w L21hcC05LmY5MApAQCAtMCwwICsxLDM0IEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsg ZGctYWRkaXRpb25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1naW1wbGUiIH0KKworcHJvZ3Jh bSBtYWluCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciwgcGFyYW1ldGVyIDo6IE4gPSAx MDAwCisgIGludGVnZXIgOjogYShOKSwgYihOKSwgYyhOKSwgaQorCisgICEgU2hvdWxkIGJl IGFibGUgdG8gcGFyc2UgJ3ByZXNlbnQnIG1hcCBtb2RpZmllci4KKyAgISRvbXAgdGFyZ2V0 IGVudGVyIGRhdGEgbWFwIChwcmVzZW50LCB0bzogYSwgYikKKworICAhJG9tcCB0YXJnZXQg ZGF0YSBtYXAgKHByZXNlbnQsIHRvOiBhLCBiKSBtYXAgKGFsd2F5cywgcHJlc2VudCwgZnJv bTogYykKKyAgICAhJG9tcCB0YXJnZXQgbWFwIChwcmVzZW50LCB0bzogYSwgYikgbWFwIChw cmVzZW50LCBmcm9tOiBjKQorICAgICAgZG8gaSA9IDEsIE4KKwljKGkpID0gYShpKSArIGIo aSkKKyAgICAgIGVuZCBkbworICAgICEkb21wIGVuZCB0YXJnZXQKKyAgISRvbXAgZW5kIHRh cmdldCBkYXRhCisKKyAgISRvbXAgdGFyZ2V0IGV4aXQgZGF0YSBtYXAgKGFsd2F5cywgcHJl c2VudCwgZnJvbTogYykKKworICAhIE1hcCBjbGF1c2VzIHdpdGggJ3ByZXNlbnQnIG1vZGlm aWVyIHNob3VsZCBnbyBhaGVhZCBvZiB0aG9zZSB3aXRob3V0LgorICAhJG9tcCB0YXJnZXQg bWFwICh0bzogYSkgbWFwIChwcmVzZW50LCB0bzogYikgbWFwIChmcm9tOiBjKQorICAgIGRv IGkgPSAxLCBOCisgICAgICBjKGkpID0gYShpKSArIGIoaSkKKyAgICBlbmQgZG8KKyAgISRv bXAgZW5kIHRhcmdldAorZW5kIHByb2dyYW0KKworISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAgInByYWdtYSBvbXAgdGFyZ2V0IGVudGVyIGRhdGEgbWFwXFwocHJlc2VudCx0bzph IFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSBtYXBcXChwcmVzZW50LHRvOmIgXFxcW2xlbjog XFswLTlcXStcXFxdXFwpIiAiZ2ltcGxlIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wICJwcmFnbWEgb21wIHRhcmdldCBkYXRhIG1hcFxcKHByZXNlbnQsdG86YSBcXFxb bGVuOiBcWzAtOVxdK1xcXF1cXCkgbWFwXFwocHJlc2VudCx0bzpiIFxcXFtsZW46IFxbMC05 XF0rXFxcXVxcKSBtYXBcXChhbHdheXMscHJlc2VudCxmcm9tOmMgXFxcW2xlbjogXFswLTlc XStcXFxdXFwpIiAiZ2ltcGxlIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1w ICJwcmFnbWEgb21wIHRhcmdldC4qbWFwXFwocHJlc2VudCx0bzphIFxcXFtsZW46IFxbMC05 XF0rXFxcXVxcKSBtYXBcXChwcmVzZW50LHRvOmIgXFxcW2xlbjogXFswLTlcXStcXFxdXFwp IG1hcFxcKHByZXNlbnQsZnJvbTpjIFxcXFtsZW46IFxbMC05XF0rXFxcXVxcKSIgImdpbXBs ZSIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAicHJhZ21hIG9tcCB0YXJn ZXQgZXhpdCBkYXRhIG1hcFxcKGFsd2F5cyxwcmVzZW50LGZyb206YyBcXFxbbGVuOiBcWzAt OVxdK1xcXF1cXCkiICJnaW1wbGUiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1 bXAgInByYWdtYSBvbXAgdGFyZ2V0LiptYXBcXChwcmVzZW50LHRvOmIgXFxcW2xlbjogXFsw LTlcXStcXFxdXFwpIG1hcFxcKHRvOmEgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIG1hcFxc KGZyb206YyBcXFxbbGVuOiBcWzAtOVxdK1xcXF1cXCkiICJnaW1wbGUiIH0gfQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3RhcmdldC11cGRhdGUtMS5m OTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvdGFyZ2V0LXVwZGF0ZS0xLmY5 MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTM4MmI4N2YyMjkK LS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvdGFy Z2V0LXVwZGF0ZS0xLmY5MApAQCAtMCwwICsxLDEzIEBACishIHsgZGctZG8gY29tcGlsZSB9 CishIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1naW1wbGUiIH0KKwor cHJvZ3JhbSBtYWluCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciwgcGFyYW1ldGVyIDo6 IE4gPSAxMDAwCisgIGludGVnZXIgOjogYShOKSwgYihOKSwgaQorCisgICEgU2hvdWxkIGJl IGFibGUgdG8gcGFyc2UgcHJlc2VudCBpbiB0by9mcm9tIGNsYXVzZXMgb2YgJ3RhcmdldCB1 cGRhdGUnLgorICAhJG9tcCB0YXJnZXQgdXBkYXRlIHRvKHByZXNlbnQ6IGEpIGZyb20ocHJl c2VudDogYikKK2VuZCBwcm9ncmFtCisKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1w ICJwcmFnbWEgb21wIHRhcmdldCB1cGRhdGUgdG9cXChwcmVzZW50OmEgXFxcW2xlbjogXFsw LTlcXStcXFxdXFwpIGZyb21cXChwcmVzZW50OmIgXFxcW2xlbjogXFswLTlcXStcXFxdXFwp IiAiZ2ltcGxlIiB9IH0KZGlmZiAtLWdpdCBhL2djYy90cmVlLWNvcmUuaCBiL2djYy90cmVl LWNvcmUuaAppbmRleCBhY2Q4ZGVlYTM0ZS4uZTUwZGY4MGIyMmMgMTAwNjQ0Ci0tLSBhL2dj Yy90cmVlLWNvcmUuaAorKysgYi9nY2MvdHJlZS1jb3JlLmgKQEAgLTU3Myw3ICs1NzMsOCBA QCBlbnVtIG9tcF9jbGF1c2VfZGVmYXVsdG1hcF9raW5kIHsKICAgT01QX0NMQVVTRV9ERUZB VUxUTUFQX05PTkUgPSA2ICogKE9NUF9DTEFVU0VfREVGQVVMVE1BUF9DQVRFR09SWV9NQVNL ICsgMSksCiAgIE9NUF9DTEFVU0VfREVGQVVMVE1BUF9ERUZBVUxUCiAgICAgPSA3ICogKE9N UF9DTEFVU0VfREVGQVVMVE1BUF9DQVRFR09SWV9NQVNLICsgMSksCi0gIE9NUF9DTEFVU0Vf REVGQVVMVE1BUF9NQVNLID0gNyAqIChPTVBfQ0xBVVNFX0RFRkFVTFRNQVBfQ0FURUdPUllf TUFTSyArIDEpCisgIE9NUF9DTEFVU0VfREVGQVVMVE1BUF9QUkVTRU5UID0gOCAqIChPTVBf Q0xBVVNFX0RFRkFVTFRNQVBfQ0FURUdPUllfTUFTSyArIDEpLAorICBPTVBfQ0xBVVNFX0RF RkFVTFRNQVBfTUFTSyA9IDE1ICogKE9NUF9DTEFVU0VfREVGQVVMVE1BUF9DQVRFR09SWV9N QVNLICsgMSkKIH07CiAKIGVudW0gb21wX2NsYXVzZV9iaW5kX2tpbmQgewpAQCAtNTgyLDYg KzU4MywxMSBAQCBlbnVtIG9tcF9jbGF1c2VfYmluZF9raW5kIHsKICAgT01QX0NMQVVTRV9C SU5EX1RIUkVBRAogfTsKIAorZW51bSBvbXBfY2xhdXNlX21vdGlvbl9tb2RpZmllciB7Cisg IE9NUF9DTEFVU0VfTU9USU9OX05PTkUsCisgIE9NUF9DTEFVU0VfTU9USU9OX1BSRVNFTlQK K307CisKIC8qIG1lbW9yeS1vcmRlci1jbGF1c2Ugb24gT3Blbk1QIGF0b21pYy9mbHVzaCBj b25zdHJ1Y3RzIG9yCiAgICBhcmd1bWVudCBvZiBhdG9taWNfZGVmYXVsdF9tZW1fb3JkZXIg Y2xhdXNlLiAgKi8KIGVudW0gb21wX21lbW9yeV9vcmRlciB7CkBAIC0xNjQ2LDYgKzE2NTIs NyBAQCBzdHJ1Y3QgR1RZKCgpKSB0cmVlX29tcF9jbGF1c2UgewogICAgIGVudW0gb21wX2Ns YXVzZV9kZWZhdWx0bWFwX2tpbmQgZGVmYXVsdG1hcF9raW5kOwogICAgIGVudW0gb21wX2Ns YXVzZV9iaW5kX2tpbmQgICAgICBiaW5kX2tpbmQ7CiAgICAgZW51bSBvbXBfY2xhdXNlX2Rl dmljZV90eXBlX2tpbmQgZGV2aWNlX3R5cGVfa2luZDsKKyAgICBlbnVtIG9tcF9jbGF1c2Vf bW90aW9uX21vZGlmaWVyIG1vdGlvbl9tb2RpZmllcjsKICAgfSBHVFkgKChza2lwKSkgc3Vi Y29kZTsKIAogICAvKiBUaGUgZ2ltcGxpZmljYXRpb24gb2YgT01QX0NMQVVTRV9SRURVQ1RJ T05fe0lOSVQsTUVSR0V9IGZvciBvbXAtbG93J3MKZGlmZiAtLWdpdCBhL2djYy90cmVlLXBy ZXR0eS1wcmludC5jYyBiL2djYy90cmVlLXByZXR0eS1wcmludC5jYwppbmRleCA3OTQ3Zjk2 NDdhMS4uOTlmOGFjYzNhY2MgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLXByZXR0eS1wcmludC5j YworKysgYi9nY2MvdHJlZS1wcmV0dHktcHJpbnQuY2MKQEAgLTk5MSw2ICs5OTEsMjcgQEAg ZHVtcF9vbXBfY2xhdXNlIChwcmV0dHlfcHJpbnRlciAqcHAsIHRyZWUgY2xhdXNlLCBpbnQg c3BjLCBkdW1wX2ZsYWdzX3QgZmxhZ3MpCiAJY2FzZSBHT01QX01BUF9BVFRBQ0hfWkVST19M RU5HVEhfQVJSQVlfU0VDVElPTjoKIAkgIHBwX3N0cmluZyAocHAsICJhdHRhY2hfemVyb19s ZW5ndGhfYXJyYXlfc2VjdGlvbiIpOwogCSAgYnJlYWs7CisJY2FzZSBHT01QX01BUF9QUkVT RU5UX0FMTE9DOgorCSAgcHBfc3RyaW5nIChwcCwgInByZXNlbnQsYWxsb2MiKTsKKwkgIGJy ZWFrOworCWNhc2UgR09NUF9NQVBfUFJFU0VOVF9UTzoKKwkgIHBwX3N0cmluZyAocHAsICJw cmVzZW50LHRvIik7CisJICBicmVhazsKKwljYXNlIEdPTVBfTUFQX1BSRVNFTlRfRlJPTToK KwkgIHBwX3N0cmluZyAocHAsICJwcmVzZW50LGZyb20iKTsKKwkgIGJyZWFrOworCWNhc2Ug R09NUF9NQVBfUFJFU0VOVF9UT0ZST006CisJICBwcF9zdHJpbmcgKHBwLCAicHJlc2VudCx0 b2Zyb20iKTsKKwkgIGJyZWFrOworCWNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE86 CisJICBwcF9zdHJpbmcgKHBwLCAiYWx3YXlzLHByZXNlbnQsdG8iKTsKKwkgIGJyZWFrOwor CWNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTToKKwkgIHBwX3N0cmluZyAocHAs ICJhbHdheXMscHJlc2VudCxmcm9tIik7CisJICBicmVhazsKKwljYXNlIEdPTVBfTUFQX0FM V0FZU19QUkVTRU5UX1RPRlJPTToKKwkgIHBwX3N0cmluZyAocHAsICJhbHdheXMscHJlc2Vu dCx0b2Zyb20iKTsKKwkgIGJyZWFrOwogCWRlZmF1bHQ6CiAJICBnY2NfdW5yZWFjaGFibGUg KCk7CiAJfQpAQCAtMTAzOCwxMiArMTA1OSwxNiBAQCBkdW1wX29tcF9jbGF1c2UgKHByZXR0 eV9wcmludGVyICpwcCwgdHJlZSBjbGF1c2UsIGludCBzcGMsIGR1bXBfZmxhZ3NfdCBmbGFn cykKIAogICAgIGNhc2UgT01QX0NMQVVTRV9GUk9NOgogICAgICAgcHBfc3RyaW5nIChwcCwg ImZyb20oIik7CisgICAgICBpZiAoT01QX0NMQVVTRV9NT1RJT05fTU9ESUZJRVIgKGNsYXVz ZSkgPT0gT01QX0NMQVVTRV9NT1RJT05fUFJFU0VOVCkKKwlwcF9zdHJpbmcgKHBwLCAicHJl c2VudDoiKTsKICAgICAgIGR1bXBfZ2VuZXJpY19ub2RlIChwcCwgT01QX0NMQVVTRV9ERUNM IChjbGF1c2UpLAogCQkJIHNwYywgZmxhZ3MsIGZhbHNlKTsKICAgICAgIGdvdG8gcHJpbnRf Y2xhdXNlX3NpemU7CiAKICAgICBjYXNlIE9NUF9DTEFVU0VfVE86CiAgICAgICBwcF9zdHJp bmcgKHBwLCAidG8oIik7CisgICAgICBpZiAoT01QX0NMQVVTRV9NT1RJT05fTU9ESUZJRVIg KGNsYXVzZSkgPT0gT01QX0NMQVVTRV9NT1RJT05fUFJFU0VOVCkKKwlwcF9zdHJpbmcgKHBw LCAicHJlc2VudDoiKTsKICAgICAgIGR1bXBfZ2VuZXJpY19ub2RlIChwcCwgT01QX0NMQVVT RV9ERUNMIChjbGF1c2UpLAogCQkJIHNwYywgZmxhZ3MsIGZhbHNlKTsKICAgICAgIGdvdG8g cHJpbnRfY2xhdXNlX3NpemU7CkBAIC0xMjEwLDYgKzEyMzUsOSBAQCBkdW1wX29tcF9jbGF1 c2UgKHByZXR0eV9wcmludGVyICpwcCwgdHJlZSBjbGF1c2UsIGludCBzcGMsIGR1bXBfZmxh Z3NfdCBmbGFncykKIAljYXNlIE9NUF9DTEFVU0VfREVGQVVMVE1BUF9OT05FOgogCSAgcHBf c3RyaW5nIChwcCwgIm5vbmUiKTsKIAkgIGJyZWFrOworCWNhc2UgT01QX0NMQVVTRV9ERUZB VUxUTUFQX1BSRVNFTlQ6CisJICBwcF9zdHJpbmcgKHBwLCAicHJlc2VudCIpOworCSAgYnJl YWs7CiAJY2FzZSBPTVBfQ0xBVVNFX0RFRkFVTFRNQVBfREVGQVVMVDoKIAkgIHBwX3N0cmlu ZyAocHAsICJkZWZhdWx0Iik7CiAJICBicmVhazsKZGlmZiAtLWdpdCBhL2djYy90cmVlLmgg Yi9nY2MvdHJlZS5oCmluZGV4IGM2NTZjZDViN2JmLi5lYjU3M2EwMWI1NSAxMDA2NDQKLS0t IGEvZ2NjL3RyZWUuaAorKysgYi9nY2MvdHJlZS5oCkBAIC0xNzQyLDYgKzE3NDIsMTIgQEAg Y2xhc3MgYXV0b19zdXBwcmVzc19sb2NhdGlvbl93cmFwcGVycwogICAoT01QX0NMQVVTRV9T VUJDT0RFX0NIRUNLIChOT0RFLCBPTVBfQ0xBVVNFX01BUCktPm9tcF9jbGF1c2Uuc3ViY29k ZS5tYXBfa2luZCBcCiAgICA9ICh1bnNpZ25lZCBpbnQpIChNQVBfS0lORCkpCiAKKyNkZWZp bmUgT01QX0NMQVVTRV9NT1RJT05fTU9ESUZJRVIoTk9ERSkgXAorICAoKGVudW0gb21wX2Ns YXVzZV9tb3Rpb25fbW9kaWZpZXIpIE9NUF9DTEFVU0VfUkFOR0VfQ0hFQ0sgKE5PREUsIE9N UF9DTEFVU0VfRlJPTSwgT01QX0NMQVVTRV9UTyktPm9tcF9jbGF1c2Uuc3ViY29kZS5tb3Rp b25fbW9kaWZpZXIpCisjZGVmaW5lIE9NUF9DTEFVU0VfU0VUX01PVElPTl9NT0RJRklFUihO T0RFLCBNT1RJT05fTU9ESUZJRVIpIFwKKyAgKE9NUF9DTEFVU0VfUkFOR0VfQ0hFQ0sgKE5P REUsIE9NUF9DTEFVU0VfRlJPTSwgT01QX0NMQVVTRV9UTyktPm9tcF9jbGF1c2Uuc3ViY29k ZS5tb3Rpb25fbW9kaWZpZXIgXAorICAgPSAoTU9USU9OX01PRElGSUVSKSkKKwogLyogTm9u emVybyBpZiB0aGlzIG1hcCBjbGF1c2UgaXMgZm9yIGFycmF5IChyYXRoZXIgdGhhbiBwb2lu dGVyKSBiYXNlZCBhcnJheQogICAgc2VjdGlvbiB3aXRoIHplcm8gYmlhcy4gIEJvdGggdGhl IG5vbi1kZWNsIE9NUF9DTEFVU0VfTUFQIGFuZCBjb3JyZXNwb25kaW5nCiAgICBPTVBfQ0xB VVNFX01BUCB3aXRoIEdPTVBfTUFQX1BPSU5URVIgYXJlIG1hcmtlZCB3aXRoIHRoaXMgZmxh Zy4gICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2dvbXAtY29uc3RhbnRzLmggYi9pbmNsdWRl L2dvbXAtY29uc3RhbnRzLmgKaW5kZXggMWI5YjA3ZGMyNDUuLjQ5YjdkZDg2ZmY1IDEwMDY0 NAotLS0gYS9pbmNsdWRlL2dvbXAtY29uc3RhbnRzLmgKKysrIGIvaW5jbHVkZS9nb21wLWNv bnN0YW50cy5oCkBAIC00Miw2ICs0Miw3IEBACiAjZGVmaW5lIEdPTVBfTUFQX0ZMQUdfU1BF Q0lBTF8yCQkoMSA8PCA0KQogI2RlZmluZSBHT01QX01BUF9GTEFHX1NQRUNJQUxfMwkJKDEg PDwgNSkKICNkZWZpbmUgR09NUF9NQVBfRkxBR19TUEVDSUFMXzQJCSgxIDw8IDYpCisjZGVm aW5lIEdPTVBfTUFQX0ZMQUdfU1BFQ0lBTF81CQkoMSA8PCA3KQogI2RlZmluZSBHT01QX01B UF9GTEFHX1NQRUNJQUwJCShHT01QX01BUF9GTEFHX1NQRUNJQUxfMSBcCiAJCQkJCSB8IEdP TVBfTUFQX0ZMQUdfU1BFQ0lBTF8wKQogI2RlZmluZSBHT01QX01BUF9ERUVQX0NPUFkJCShH T01QX01BUF9GTEFHX1NQRUNJQUxfNCBcCkBAIC01NSw5ICs1NiwxNCBAQAogCQkJCQkgfCBH T01QX01BUF9GTEFHX1NQRUNJQUxfMSBcCiAJCQkJCSB8IEdPTVBfTUFQX0ZMQUdfU1BFQ0lB TF8yIFwKIAkJCQkJIHwgR09NUF9NQVBfRkxBR19TUEVDSUFMXzMgXAotCQkJCQkgfCBHT01Q X01BUF9GTEFHX1NQRUNJQUxfNCkKKwkJCQkJIHwgR09NUF9NQVBfRkxBR19TUEVDSUFMXzQg XAorCQkJCQkgfCBHT01QX01BUF9GTEFHX1NQRUNJQUxfNSkKIC8qIEZsYWcgdG8gZm9yY2Ug YSBzcGVjaWZpYyBiZWhhdmlvciAob3IgZWxzZSwgdHJpZ2dlciBhIHJ1bi10aW1lIGVycm9y KS4gICovCi0jZGVmaW5lIEdPTVBfTUFQX0ZMQUdfRk9SQ0UJCSgxIDw8IDcpCisjZGVmaW5l IEdPTVBfTUFQX0ZMQUdfRk9SQ0UJCShHT01QX01BUF9GTEFHX1NQRUNJQUxfNSkKKyNkZWZp bmUgR09NUF9NQVBfRkxBR19QUkVTRU5UCQkoR09NUF9NQVBfRkxBR19TUEVDSUFMXzUgXAor CQkJCQkgfCBHT01QX01BUF9GTEFHX1NQRUNJQUxfMCkKKyNkZWZpbmUgR09NUF9NQVBfRkxB R19BTFdBWVNfUFJFU0VOVAkoR09NUF9NQVBfRkxBR19TUEVDSUFMXzIgXAorCQkJCQkgfCBH T01QX01BUF9GTEFHX1BSRVNFTlQpCiAKIGVudW0gZ29tcF9tYXBfa2luZAogICB7CkBAIC0x MzAsNiArMTM2LDIzIEBAIGVudW0gZ29tcF9tYXBfa2luZAogICAgICAgIGRldmljZS4gICov CiAgICAgR09NUF9NQVBfQUxXQVlTX1RPRlJPTSA9CQkoR09NUF9NQVBfRkxBR19TUEVDSUFM XzIKIAkJCQkJIHwgR09NUF9NQVBfVE9GUk9NKSwKKyAgICAvKiBNdXN0IGFscmVhZHkgYmUg cHJlc2VudC4gICovCisgICAgR09NUF9NQVBfUFJFU0VOVF9BTExPQyA9CQkoR09NUF9NQVBf RkxBR19QUkVTRU5UIHwgR09NUF9NQVBfQUxMT0MpLAorICAgIC8qIE11c3QgYWxyZWFkeSBi ZSBwcmVzZW50LCBjb3B5IHRvIGRldmljZS4gICovCisgICAgR09NUF9NQVBfUFJFU0VOVF9U TyA9CQkoR09NUF9NQVBfRkxBR19QUkVTRU5UIHwgR09NUF9NQVBfVE8pLAorICAgIC8qIE11 c3QgYWxyZWFkeSBiZSBwcmVzZW50LCBjb3B5IGZyb20gZGV2aWNlLiAgKi8KKyAgICBHT01Q X01BUF9QUkVTRU5UX0ZST00gPQkJKEdPTVBfTUFQX0ZMQUdfUFJFU0VOVCB8IEdPTVBfTUFQ X0ZST00pLAorICAgIC8qIE11c3QgYWxyZWFkeSBiZSBwcmVzZW50LCBjb3B5IHRvIGFuZCBm cm9tIGRldmljZS4gICovCisgICAgR09NUF9NQVBfUFJFU0VOVF9UT0ZST00gPQkJKEdPTVBf TUFQX0ZMQUdfUFJFU0VOVCB8IEdPTVBfTUFQX1RPRlJPTSksCisgICAgLyogTXVzdCBhbHJl YWR5IGJlIHByZXNlbnQsIHVuY29uZGl0aW9uYWxseSBjb3B5IHRvIGRldmljZS4gICovCisg ICAgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE8gPQkoR09NUF9NQVBfRkxBR19BTFdBWVNf UFJFU0VOVAorCQkJCQkgfCBHT01QX01BUF9UTyksCisgICAgLyogTXVzdCBhbHJlYWR5IGJl IHByZXNlbnQsIHVuY29uZGl0aW9uYWxseSBjb3B5IGZyb20gZGV2aWNlLiAgKi8KKyAgICBH T01QX01BUF9BTFdBWVNfUFJFU0VOVF9GUk9NID0JKEdPTVBfTUFQX0ZMQUdfQUxXQVlTX1BS RVNFTlQKKwkJCQkJIHwgR09NUF9NQVBfRlJPTSksCisgICAgLyogTXVzdCBhbHJlYWR5IGJl IHByZXNlbnQsIHVuY29uZGl0aW9uYWxseSBjb3B5IHRvIGFuZCBmcm9tIGRldmljZS4gICov CisgICAgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NID0JKEdPTVBfTUFQX0ZMQUdf QUxXQVlTX1BSRVNFTlQKKwkJCQkJIHwgR09NUF9NQVBfVE9GUk9NKSwKICAgICAvKiBNYXAg YSBzcGFyc2Ugc3RydWN0OyB0aGUgYWRkcmVzcyBpcyB0aGUgYmFzZSBvZiB0aGUgc3RydWN0 dXJlLCBhbGlnbm1lbnQKICAgICAgICBpdCdzIHJlcXVpcmVkIGFsaWdubWVudCwgYW5kIHNp emUgaXMgdGhlIG51bWJlciBvZiBhZGphY2VudCBlbnRyaWVzCiAgICAgICAgdGhhdCBiZWxv bmcgdG8gdGhlIHN0cnVjdC4gIFRoZSBhZGphY2VudCBlbnRyaWVzIHNob3VsZCBiZSBzb3J0 ZWQgYnkKQEAgLTE4NiwxMSArMjA5LDExIEBAIGVudW0gZ29tcF9tYXBfa2luZAogICB9Owog CiAjZGVmaW5lIEdPTVBfTUFQX0NPUFlfVE9fUChYKSBcCi0gICghKChYKSAmIEdPTVBfTUFQ X0ZMQUdfU1BFQ0lBTCkgXAorICAoKCEoKFgpICYgR09NUF9NQVBfRkxBR19TUEVDSUFMKSB8 fCBHT01QX01BUF9QUkVTRU5UX1AgKFgpKSBcCiAgICAmJiAoKFgpICYgR09NUF9NQVBfRkxB R19UTykpCiAKICNkZWZpbmUgR09NUF9NQVBfQ09QWV9GUk9NX1AoWCkgXAotICAoISgoWCkg JiBHT01QX01BUF9GTEFHX1NQRUNJQUwpIFwKKyAgKCghKChYKSAmIEdPTVBfTUFQX0ZMQUdf U1BFQ0lBTCkgfHwgR09NUF9NQVBfUFJFU0VOVF9QIChYKSkgXAogICAgJiYgKChYKSAmIEdP TVBfTUFQX0ZMQUdfRlJPTSkpCiAKICNkZWZpbmUgR09NUF9NQVBfQUxXQVlTX1BPSU5URVJf UChYKSBcCkBAIC0yMDEsMTcgKzIyNCwyNyBAQCBlbnVtIGdvbXBfbWFwX2tpbmQKICAgIHx8 IChYKSA9PSBHT01QX01BUF9QT0lOVEVSX1RPX1pFUk9fTEVOR1RIX0FSUkFZX1NFQ1RJT04p CiAKICNkZWZpbmUgR09NUF9NQVBfQUxXQVlTX1RPX1AoWCkgXAotICAoKChYKSA9PSBHT01Q X01BUF9BTFdBWVNfVE8pIHx8ICgoWCkgPT0gR09NUF9NQVBfQUxXQVlTX1RPRlJPTSkpCisg ICgoKFgpID09IEdPTVBfTUFQX0FMV0FZU19UTykgfHwgKChYKSA9PSBHT01QX01BUF9BTFdB WVNfVE9GUk9NKSBcCisgICB8fCAoKFgpID09IEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RP KSBcCisgICB8fCAoKFgpID09IEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTSkpCiAK ICNkZWZpbmUgR09NUF9NQVBfQUxXQVlTX0ZST01fUChYKSBcCi0gICgoKFgpID09IEdPTVBf TUFQX0FMV0FZU19GUk9NKSB8fCAoKFgpID09IEdPTVBfTUFQX0FMV0FZU19UT0ZST00pKQor ICAoKChYKSA9PSBHT01QX01BUF9BTFdBWVNfRlJPTSkgfHwgKChYKSA9PSBHT01QX01BUF9B TFdBWVNfVE9GUk9NKSBcCisgICB8fCAoKFgpID09IEdPTVBfTUFQX0FMV0FZU19QUkVTRU5U X0ZST00pIFwKKyAgIHx8ICgoWCkgPT0gR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9N KSkKIAogI2RlZmluZSBHT01QX01BUF9BTFdBWVNfUChYKSBcCi0gIChHT01QX01BUF9BTFdB WVNfVE9fUCAoWCkgfHwgKChYKSA9PSBHT01QX01BUF9BTFdBWVNfRlJPTSkpCisgIChHT01Q X01BUF9BTFdBWVNfVE9fUCAoWCkgfHwgR09NUF9NQVBfQUxXQVlTX0ZST01fUCAoWCkpCiAK ICNkZWZpbmUgR09NUF9NQVBfSU1QTElDSVRfUChYKSBcCiAgICgoKFgpICYgR09NUF9NQVBf RkxBR19TUEVDSUFMX0JJVFMpID09IEdPTVBfTUFQX0lNUExJQ0lUKQogCisjZGVmaW5lIEdP TVBfTUFQX0ZPUkNFX1AoWCkgXAorICAoKChYKSAmIEdPTVBfTUFQX0ZMQUdfU1BFQ0lBTF9C SVRTKSA9PSBHT01QX01BUF9GTEFHX0ZPUkNFKQorCisjZGVmaW5lIEdPTVBfTUFQX1BSRVNF TlRfUChYKSBcCisgICgoKFgpICYgR09NUF9NQVBfRkxBR19QUkVTRU5UKSA9PSBHT01QX01B UF9GTEFHX1BSRVNFTlQpCisKIAogLyogQXN5bmNocm9ub3VzIGJlaGF2aW9yLiAgS2VlcCBp biBzeW5jIHdpdGgKICAgIGxpYmdvbXAve29wZW5hY2MuaCxvcGVuYWNjLmY5MCxvcGVuYWNj X2xpYi5ofTphY2NfYXN5bmNfdC4gICovCmRpZmYgLS1naXQgYS9saWJnb21wL3RhcmdldC5j IGIvbGliZ29tcC90YXJnZXQuYwppbmRleCA0ODM4NTFjOTVhYy4uMzU4YTFjMjY3ZjcgMTAw NjQ0Ci0tLSBhL2xpYmdvbXAvdGFyZ2V0LmMKKysrIGIvbGliZ29tcC90YXJnZXQuYwpAQCAt MzYwLDYgKzM2MCw4IEBAIGdvbXBfdG9fZGV2aWNlX2tpbmRfcCAoaW50IGtpbmQpCiAgICAg Y2FzZSBHT01QX01BUF9GT1JDRV9BTExPQzoKICAgICBjYXNlIEdPTVBfTUFQX0ZPUkNFX0ZS T006CiAgICAgY2FzZSBHT01QX01BUF9BTFdBWVNfRlJPTToKKyAgICBjYXNlIEdPTVBfTUFQ X1BSRVNFTlRfRlJPTToKKyAgICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST006 CiAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZGVmYXVsdDoKICAgICAgIHJldHVybiB0cnVl OwpAQCAtNTkyLDcgKzU5NCw3IEBAIGdvbXBfbWFwX3ZhcnNfZXhpc3RpbmcgKHN0cnVjdCBn b21wX2RldmljZV9kZXNjciAqZGV2aWNlcCwKICAgZWxzZQogICAgIHRndF92YXItPmxlbmd0 aCA9IG5ld24tPmhvc3RfZW5kIC0gbmV3bi0+aG9zdF9zdGFydDsKIAotICBpZiAoKGtpbmQg JiBHT01QX01BUF9GTEFHX0ZPUkNFKQorICBpZiAoR09NUF9NQVBfRk9SQ0VfUCAoa2luZCkK ICAgICAgIC8qIEZvciBpbXBsaWNpdCBtYXBzLCBvbGQgY29udGFpbmVkIGluIG5ldyBpcyB2 YWxpZC4gICovCiAgICAgICB8fCAhKGltcGxpY2l0X3N1YnNldAogCSAgIC8qIE90aGVyd2lz ZSwgbmV3IGNvbnRhaW5lZCBpbnNpZGUgb2xkIGlzIGNvbnNpZGVyZWQgdmFsaWQuICAqLwpA QCAtMTcwOCw2ICsxNzEwLDIwIEBAIGdvbXBfbWFwX3ZhcnNfaW50ZXJuYWwgKHN0cnVjdCBn b21wX2RldmljZV9kZXNjciAqZGV2aWNlcCwKICNlbmRpZgogCQkgICAgfQogCQkgICAgYnJl YWs7CisJCSAgY2FzZSBHT01QX01BUF9QUkVTRU5UX0FMTE9DOgorCQkgIGNhc2UgR09NUF9N QVBfUFJFU0VOVF9UTzoKKwkJICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfRlJPTToKKwkJICBj YXNlIEdPTVBfTUFQX1BSRVNFTlRfVE9GUk9NOgorCQkgIGNhc2UgR09NUF9NQVBfQUxXQVlT X1BSRVNFTlRfVE86CisJCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9GUk9NOgor CQkgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfVE9GUk9NOgorCQkgICAgLyogV2Ug YWxyZWFkeSBsb29rZWQgdXAgdGhlIG1lbW9yeSByZWdpb24gYWJvdmUgYW5kIGl0CisJCSAg ICAgICB3YXMgbWlzc2luZy4gICovCisJCSAgICBnb21wX211dGV4X3VubG9jayAoJmRldmlj ZXAtPmxvY2spOworCQkgICAgZ29tcF9mYXRhbCAoInByZXNlbnQgY2xhdXNlOiAhb21wX3Rh cmdldF9pc19wcmVzZW50ICIKKwkJCQkiKCVwLCAlZCkiLAorCQkJCSh2b2lkICopIGstPmhv c3Rfc3RhcnQsIGRldmljZXAtPnRhcmdldF9pZCk7CisJCSAgICBicmVhazsKIAkJICBjYXNl IEdPTVBfTUFQX0ZPUkNFX0RFVklDRVBUUjoKIAkJICAgIGFzc2VydCAoay0+aG9zdF9lbmQg LSBrLT5ob3N0X3N0YXJ0ID09IHNpemVvZiAodm9pZCAqKSk7CiAJCSAgICBnb21wX2NvcHlf aG9zdDJkZXYgKGRldmljZXAsIGFxLApAQCAtMjExNyw2ICsyMTMzLDIwIEBAIGdvbXBfdXBk YXRlIChzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3IgKmRldmljZXAsIHNpemVfdCBtYXBudW0s IHZvaWQgKipob3N0YWRkcnMsCiAJCSAgZ29tcF9jb3B5X2RldjJob3N0IChkZXZpY2VwLCBO VUxMLCBob3N0YWRkciwgZGV2YWRkciwgc2l6ZSk7CiAJICAgICAgfQogCSAgfQorCWVsc2UK KwkgIHsKKwkgICAgaW50IGtpbmQgPSBnZXRfa2luZCAoc2hvcnRfbWFwa2luZCwga2luZHMs IGkpOworCisJICAgIGlmIChHT01QX01BUF9QUkVTRU5UX1AgKGtpbmQpKQorCSAgICAgIHsK KwkJLyogV2UgYWxyZWFkeSBsb29rZWQgdXAgdGhlIG1lbW9yeSByZWdpb24gYWJvdmUgYW5k IGl0CisJCSAgIHdhcyBtaXNzaW5nLiAgKi8KKwkJZ29tcF9tdXRleF91bmxvY2sgKCZkZXZp Y2VwLT5sb2NrKTsKKwkJZ29tcF9mYXRhbCAoInByZXNlbnQgY2xhdXNlOiAhb21wX3Rhcmdl dF9pc19wcmVzZW50ICIKKwkJCSAgICAiKCVwLCAlZCkiLAorCQkJICAgICh2b2lkICopIGhv c3RhZGRyc1tpXSwgZGV2aWNlcC0+dGFyZ2V0X2lkKTsKKwkgICAgICB9CisJICB9CiAgICAg ICB9CiAgIGdvbXBfbXV0ZXhfdW5sb2NrICgmZGV2aWNlcC0+bG9jayk7CiB9CkBAIC0zNDI1 LDcgKzM0NTUsOCBAQCBnb21wX3RhcmdldF9yZXYgKHVpbnQ2NF90IGZuX3B0ciwgdWludDY0 X3QgbWFwbnVtLCB1aW50NjRfdCBkZXZhZGRyc19wdHIsCiAJICAgICAgY2FzZSBHT01QX01B UF9ERUxFVEU6CiAJICAgICAgY2FzZSBHT01QX01BUF9SRUxFQVNFOgogCSAgICAgIGNhc2Ug R09NUF9NQVBfREVMRVRFX1pFUk9fTEVOX0FSUkFZX1NFQ1RJT046Ci0JCS8qIEFzc3VtZSBp dCBpcyBwcmVzZW50OyBsb29rIGl0IHVwIC0gYnV0IGlnbm9yZSBvdGhlcndpc2UuICovCisJ CS8qIEFzc3VtZSBpdCBpcyBwcmVzZW50OyBsb29rIGl0IHVwIC0gYnV0IGlnbm9yZSB1bmxl c3MgdGhlCisJCSAgIHByZXNlbnQgY2xhdXNlIGlzIHRoZXJlLiAqLwogCSAgICAgIGNhc2Ug R09NUF9NQVBfQUxMT0M6CiAJICAgICAgY2FzZSBHT01QX01BUF9GUk9NOgogCSAgICAgIGNh c2UgR09NUF9NQVBfRk9SQ0VfQUxMT0M6CkBAIC0zNDM3LDYgKzM0NjgsMTIgQEAgZ29tcF90 YXJnZXRfcmV2ICh1aW50NjRfdCBmbl9wdHIsIHVpbnQ2NF90IG1hcG51bSwgdWludDY0X3Qg ZGV2YWRkcnNfcHRyLAogCSAgICAgIGNhc2UgR09NUF9NQVBfRk9SQ0VfVE9GUk9NOgogCSAg ICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1RPOgogCSAgICAgIGNhc2UgR09NUF9NQVBfQUxX QVlTX1RPRlJPTToKKwkgICAgICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfRlJPTToKKwkgICAg ICBjYXNlIEdPTVBfTUFQX1BSRVNFTlRfVE86CisJICAgICAgY2FzZSBHT01QX01BUF9QUkVT RU5UX1RPRlJPTToKKwkgICAgICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX0ZST006 CisJICAgICAgY2FzZSBHT01QX01BUF9BTFdBWVNfUFJFU0VOVF9UTzoKKwkgICAgICBjYXNl IEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToKIAkgICAgICBjYXNlIEdPTVBfTUFQ X1pFUk9fTEVOX0FSUkFZX1NFQ1RJT046CiAJCWNkYXRhW2ldLmRldmFkZHIgPSBkZXZhZGRy c1tpXTsKIAkJYm9vbCB6ZXJvX2xlbiA9IChraW5kID09IEdPTVBfTUFQX0RFTEVURV9aRVJP X0xFTl9BUlJBWV9TRUNUSU9OCkBAIC0zNDU3LDcgKzM0OTQsMjMgQEAgZ29tcF90YXJnZXRf cmV2ICh1aW50NjRfdCBmbl9wdHIsIHVpbnQ2NF90IG1hcG51bSwgdWludDY0X3QgZGV2YWRk cnNfcHRyLAogCQkJCQkgICAgICBkZXZhZGRyc1tpXSArIHNpemVzW2ldLCB6ZXJvX2xlbik7 CiAJCSAgICBjZGF0YVtpXS5wcmVzZW50ID0gbjIgIT0gTlVMTDsKIAkJICB9Ci0JCWlmICgh Y2RhdGFbaV0ucHJlc2VudAorCQlpZiAoIWNkYXRhW2ldLnByZXNlbnQgJiYgR09NUF9NQVBf UFJFU0VOVF9QIChraW5kKSkKKwkJICB7CisJCSAgICBnb21wX211dGV4X3VubG9jayAoJmRl dmljZXAtPmxvY2spOworI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAorCQkgICAgZ29tcF9mYXRh bCAoInByZXNlbnQgY2xhdXNlOiBubyBjb3JyZXNwb25kaW5nIGRhdGEgb24gIgorCQkJCSJw YXJlbnQgZGV2aWNlIGF0ICVwIHdpdGggc2l6ZSAlIlBSSXU2NCwKKwkJCQkodm9pZCAqKSAo dWludHB0cl90KSBkZXZhZGRyc1tpXSwKKwkJCQkodWludDY0X3QpIHNpemVzW2ldKTsKKyNl bHNlCisJCSAgICBnb21wX2ZhdGFsICgicHJlc2VudCBjbGF1c2U6IG5vIGNvcnJlc3BvbmRp bmcgZGF0YSBvbiAiCisJCQkJInBhcmVudCBkZXZpY2UgYXQgJXAgd2l0aCBzaXplICVsdSIs CisJCQkJKHZvaWQgKikgKHVpbnRwdHJfdCkgZGV2YWRkcnNbaV0sCisJCQkJKHVuc2lnbmVk IGxvbmcpIHNpemVzW2ldKTsKKyNlbmRpZgorCQkgICAgYnJlYWs7CisJCSAgfQorCQllbHNl IGlmICghY2RhdGFbaV0ucHJlc2VudAogCQkgICAgJiYga2luZCAhPSBHT01QX01BUF9ERUxF VEUKIAkJICAgICYmIGtpbmQgIT0gR09NUF9NQVBfUkVMRUFTRQogCQkgICAgJiYga2luZCAh PSBHT01QX01BUF9ERUxFVEVfWkVST19MRU5fQVJSQVlfU0VDVElPTikKQEAgLTM0NzUsOCAr MzUyOCw3IEBAIGdvbXBfdGFyZ2V0X3JldiAodWludDY0X3QgZm5fcHRyLCB1aW50NjRfdCBt YXBudW0sIHVpbnQ2NF90IGRldmFkZHJzX3B0ciwKIAkJICAgICAmJiAoa2luZCA9PSBHT01Q X01BUF9UTyB8fCBraW5kID09IEdPTVBfTUFQX1RPRlJPTSkpCiAJCSAgICB8fCBraW5kID09 IEdPTVBfTUFQX0ZPUkNFX1RPCiAJCSAgICB8fCBraW5kID09IEdPTVBfTUFQX0ZPUkNFX1RP RlJPTQotCQkgICAgfHwga2luZCA9PSBHT01QX01BUF9BTFdBWVNfVE8KLQkJICAgIHx8IGtp bmQgPT0gR09NUF9NQVBfQUxXQVlTX1RPRlJPTSkKKwkJICAgIHx8IEdPTVBfTUFQX0FMV0FZ U19UT19QIChraW5kKSkKIAkJICB7CiAJCSAgICBpZiAoZGV2X3RvX2hvc3RfY3B5KQogCQkg ICAgICBkZXZfdG9faG9zdF9jcHkgKCh2b2lkICopICh1aW50cHRyX3QpIGRldmFkZHJzW2ld LApAQCAtMzY2MSw2ICszNzEzLDEwIEBAIGdvbXBfdGFyZ2V0X3JldiAodWludDY0X3QgZm5f cHRyLCB1aW50NjRfdCBtYXBudW0sIHVpbnQ2NF90IGRldmFkZHJzX3B0ciwKIAkgICAgICBj YXNlIEdPTVBfTUFQX0ZPUkNFX1RPRlJPTToKIAkgICAgICBjYXNlIEdPTVBfTUFQX0FMV0FZ U19GUk9NOgogCSAgICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1RPRlJPTToKKwkgICAgICBj YXNlIEdPTVBfTUFQX1BSRVNFTlRfRlJPTToKKwkgICAgICBjYXNlIEdPTVBfTUFQX1BSRVNF TlRfVE9GUk9NOgorCSAgICAgIGNhc2UgR09NUF9NQVBfQUxXQVlTX1BSRVNFTlRfRlJPTToK KwkgICAgICBjYXNlIEdPTVBfTUFQX0FMV0FZU19QUkVTRU5UX1RPRlJPTToKIAkJY29weSA9 IHRydWU7CiAJCS8qIEZBTExUSFJVICovCiAJICAgICAgY2FzZSBHT01QX01BUF9GUk9NOgpk aWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vdGFy Z2V0LXByZXNlbnQtMS5jIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21t b24vdGFyZ2V0LXByZXNlbnQtMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5iYmM0NTU5YjEyZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1 aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3RhcmdldC1wcmVzZW50LTEuYwpAQCAtMCwwICsx LDI3IEBACisvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCBvZmZsb2FkX3RhcmdldF9hbnkgfSB9 ICovCisvKiB7IGRnLXNob3VsZGZhaWwgInByZXNlbnQgZXJyb3IgdHJpZ2dlcmVkIiB9ICov CisKKyNkZWZpbmUgTiAxMDAKKworaW50IG1haW4gKHZvaWQpCit7CisgIGludCBhW05dLCBi W05dLCBjW05dOworCisgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKSB7CisgICAgYVtp XSA9IGkgKiAyOworICAgIGJbaV0gPSBpICogMyArIDE7CisgIH0KKworICAjcHJhZ21hIG9t cCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAgKGFsbG9jOiBhLCBjKQorICAgIC8qIGEgaGFzIGFs cmVhZHkgYmVlbiBhbGxvY2F0ZWQsIHNvIHRoaXMgc2hvdWxkIGJlIG9rYXkuICAqLworICAg ICNwcmFnbWEgb21wIHRhcmdldCBtYXAgKHByZXNlbnQsIHRvOiBhKQorICAgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBOOyBpKyspCisJY1tpXSA9IGFbaV07CisKKyAgICAvKiBiIGhhcyBu b3QgYmVlbiBhbGxvY2F0ZWQsIHNvIHRoaXMgc2hvdWxkIHJlc3VsdCBpbiBhbiBlcnJvci4g ICovCisgICAgLyogeyBkZy1vdXRwdXQgImxpYmdvbXA6IHByZXNlbnQgY2xhdXNlOiAhb21w X3RhcmdldF9pc19wcmVzZW50IFxcXCgweFxbMC05YS1mXF0rLCBcWzAtOVxdK1xcXCkiIH0g Ki8KKyAgICAjcHJhZ21hIG9tcCB0YXJnZXQgbWFwIChwcmVzZW50LCB0bzogYikKKyAgICAg IGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKQorCWNbaV0gKz0gYltpXTsKKyAgI3ByYWdt YSBvbXAgdGFyZ2V0IGV4aXQgZGF0YSBtYXAgKGZyb206IGMpCit9CmRpZmYgLS1naXQgYS9s aWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi90YXJnZXQtcHJlc2VudC0y LmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi90YXJnZXQtcHJl c2VudC0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYyNTlj OTU5YzA0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5j LWMrKy1jb21tb24vdGFyZ2V0LXByZXNlbnQtMi5jCkBAIC0wLDAgKzEsMjcgQEAKKy8qIHsg ZGctZG8gcnVuIHsgdGFyZ2V0IG9mZmxvYWRfdGFyZ2V0X2FueSB9IH0gKi8KKy8qIHsgZGct c2hvdWxkZmFpbCAicHJlc2VudCBlcnJvciB0cmlnZ2VyZWQiIH0gKi8KKworI2RlZmluZSBO IDEwMAorCitpbnQgbWFpbiAodm9pZCkKK3sKKyAgaW50IGFbTl0sIGJbTl0sIGNbTl07CisK KyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKKyAgICBhW2ldID0gaSAqIDI7Cisg ICAgYltpXSA9IGkgKiAzICsgMTsKKyAgfQorCisgICNwcmFnbWEgb21wIHRhcmdldCBlbnRl ciBkYXRhIG1hcCAoYWxsb2M6IGEsIGMpCisgICAgLyogYSBoYXMgYWxyZWFkeSBiZWVuIGFs bG9jYXRlZCwgc28gdGhpcyBzaG91bGQgYmUgb2theS4gICovCisgICAgI3ByYWdtYSBvbXAg dGFyZ2V0IGRlZmF1bHRtYXAgKHByZXNlbnQpCisgICAgICBmb3IgKGludCBpID0gMDsgaSA8 IE47IGkrKykKKwljW2ldID0gYVtpXTsKKworICAgIC8qIGIgaGFzIG5vdCBiZWVuIGFsbG9j YXRlZCwgc28gdGhpcyBzaG91bGQgcmVzdWx0IGluIGFuIGVycm9yLiAgKi8KKyAgICAvKiB7 IGRnLW91dHB1dCAibGliZ29tcDogcHJlc2VudCBjbGF1c2U6ICFvbXBfdGFyZ2V0X2lzX3By ZXNlbnQgXFxcKDB4XFswLTlhLWZcXSssIFxbMC05XF0rXFxcKSIgfSAqLworICAgICNwcmFn bWEgb21wIHRhcmdldCBkZWZhdWx0bWFwIChwcmVzZW50KQorICAgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBOOyBpKyspCisJY1tpXSArPSBiW2ldOworICAjcHJhZ21hIG9tcCB0YXJnZXQg ZXhpdCBkYXRhIG1hcCAoZnJvbTogYykKK30KZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1 aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3RhcmdldC1wcmVzZW50LTMuYyBiL2xpYmdvbXAv dGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3RhcmdldC1wcmVzZW50LTMuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODllNjQ4NjQ1YjIKLS0tIC9k ZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi90 YXJnZXQtcHJlc2VudC0zLmMKQEAgLTAsMCArMSwyNyBAQAorLyogeyBkZy1kbyBydW4geyB0 YXJnZXQgb2ZmbG9hZF90YXJnZXRfYW55IH0gfSAqLworLyogeyBkZy1zaG91bGRmYWlsICJw cmVzZW50IGVycm9yIHRyaWdnZXJlZCIgfSAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKwor I2RlZmluZSBOIDEwMAorCitpbnQgbWFpbiAodm9pZCkKK3sKKyAgaW50IGFbTl0sIGJbTl0s IGNbTl07CisKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKKyAgICBhW2ldID0g aSAqIDI7CisgICAgYltpXSA9IGkgKiAzICsgMTsKKyAgfQorCisgICNwcmFnbWEgb21wIHRh cmdldCBlbnRlciBkYXRhIG1hcCAoYWxsb2M6IGEsIGMpCisKKyAgLyogVGhpcyBzaG91bGQg d29yayBhcyBhIGhhcyBhbHJlYWR5IGJlZW4gYWxsb2NhdGVkLiAgKi8KKyAgI3ByYWdtYSBv bXAgdGFyZ2V0IHVwZGF0ZSB0byAocHJlc2VudDogYSkKKworICAvKiBUaGlzIHNob3VsZCBm YWlsIGFzIGIgaGFzIG5vdCBiZWVuIGFsbG9jYXRlZC4gICovCisgIC8qIHsgZGctb3V0cHV0 ICJsaWJnb21wOiBwcmVzZW50IGNsYXVzZTogIW9tcF90YXJnZXRfaXNfcHJlc2VudCBcXFwo MHhcWzAtOWEtZlxdKywgXFswLTlcXStcXFwpIiB9ICovCisgICNwcmFnbWEgb21wIHRhcmdl dCB1cGRhdGUgdG8gKHByZXNlbnQ6IGIpCisKKyAgI3ByYWdtYSBvbXAgdGFyZ2V0IGV4aXQg ZGF0YSBtYXAgKGZyb206IGMpCit9CmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9s aWJnb21wLmZvcnRyYW4vdGFyZ2V0LXByZXNlbnQtMS5mOTAgYi9saWJnb21wL3Rlc3RzdWl0 ZS9saWJnb21wLmZvcnRyYW4vdGFyZ2V0LXByZXNlbnQtMS5mOTAKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgwMDQ2MDExYjI1Ci0tLSAvZGV2L251bGwKKysr IGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1wcmVzZW50LTEu ZjkwCkBAIC0wLDAgKzEsMzAgQEAKKyEgeyBkZy1kbyBydW4geyB0YXJnZXQgb2ZmbG9hZF90 YXJnZXRfYW55IH0gfQorISB7IGRnLXNob3VsZGZhaWwgInByZXNlbnQgZXJyb3IgdHJpZ2dl cmVkIiB9CisKK3Byb2dyYW0gbWFpbgorICBpbXBsaWNpdCBub25lCisgIGludGVnZXIsIHBh cmFtZXRlciA6OiBOID0gMTAwCisgIGludGVnZXIgOjogYShOKSwgYihOKSwgYyhOKSwgaQor CisgIGRvIGkgPSAxLCBOCisgICAgYShpKSA9IGkgKiAyCisgICAgYihpKSA9IGkgKiAzICsg MQorICBlbmQgZG8KKworICAhJG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAgKGFsbG9jOiBh KQorICAgICEgYSBoYXMgYWxyZWFkeSBiZWVuIGFsbG9jYXRlZCwgc28gdGhpcyBzaG91bGQg YmUgb2theS4KKyAgICAhJG9tcCB0YXJnZXQgbWFwIChwcmVzZW50LCB0bzogYSkKKyAgICAg IGRvIGkgPSAxLCBOCisJYyhpKSA9IGEoaSkKKyAgICAgIGVuZCBkbworICAgICEkb21wIGVu ZCB0YXJnZXQKKworICAgICEgYiBoYXMgbm90IGJlZW4gYWxsb2NhdGVkLCBzbyB0aGlzIHNo b3VsZCByZXN1bHQgaW4gYW4gZXJyb3IuCisgICAgISB7IGRnLW91dHB1dCAibGliZ29tcDog cHJlc2VudCBjbGF1c2U6ICFvbXBfdGFyZ2V0X2lzX3ByZXNlbnQgXFxcKDB4XFswLTlhLWZc XSssIFxbMC05XF0rXFxcKSIgfQorICAgICEkb21wIHRhcmdldCBtYXAgKHByZXNlbnQsIHRv OiBiKQorICAgICAgZG8gaSA9IDEsIE4KKwljKGkpID0gYyhpKSArIGIoaSkKKyAgICAgIGVu ZCBkbworICAgICEkb21wIGVuZCB0YXJnZXQKKyAgISRvbXAgdGFyZ2V0IGV4aXQgZGF0YSBt YXAgKGZyb206IGMpCitlbmQgcHJvZ3JhbQpkaWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3Vp dGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1wcmVzZW50LTIuZjkwIGIvbGliZ29tcC90ZXN0 c3VpdGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1wcmVzZW50LTIuZjkwCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wYTM4ZGVhMWU0MQotLS0gL2Rldi9udWxs CisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi90YXJnZXQtcHJlc2Vu dC0yLmY5MApAQCAtMCwwICsxLDMwIEBACishIHsgZGctZG8gcnVuIHsgdGFyZ2V0IG9mZmxv YWRfdGFyZ2V0X2FueSB9IH0KKyEgeyBkZy1zaG91bGRmYWlsICJwcmVzZW50IGVycm9yIHRy aWdnZXJlZCIgfQorCitwcm9ncmFtIG1haW4KKyAgaW1wbGljaXQgbm9uZQorICBpbnRlZ2Vy LCBwYXJhbWV0ZXIgOjogTiA9IDEwMAorICBpbnRlZ2VyIDo6IGEoTiksIGIoTiksIGMoTiks IGkKKworICBkbyBpID0gMSwgTgorICAgIGEoaSkgPSBpICogMgorICAgIGIoaSkgPSBpICog MyArIDEKKyAgZW5kIGRvCisKKyAgISRvbXAgdGFyZ2V0IGVudGVyIGRhdGEgbWFwIChhbGxv YzogYSkKKyAgICAhIGEgaGFzIGFscmVhZHkgYmVlbiBhbGxvY2F0ZWQsIHNvIHRoaXMgc2hv dWxkIGJlIG9rYXkuCisgICAgISRvbXAgdGFyZ2V0IGRlZmF1bHRtYXAgKHByZXNlbnQpCisg ICAgICBkbyBpID0gMSwgTgorCWMoaSkgPSBhKGkpCisgICAgICBlbmQgZG8KKyAgICAhJG9t cCBlbmQgdGFyZ2V0CisKKyAgICAhIGIgaGFzIG5vdCBiZWVuIGFsbG9jYXRlZCwgc28gdGhp cyBzaG91bGQgcmVzdWx0IGluIGFuIGVycm9yLgorICAgICEgeyBkZy1vdXRwdXQgImxpYmdv bXA6IHByZXNlbnQgY2xhdXNlOiAhb21wX3RhcmdldF9pc19wcmVzZW50IFxcXCgweFxbMC05 YS1mXF0rLCBcWzAtOVxdK1xcXCkiIH0KKyAgICAhJG9tcCB0YXJnZXQgZGVmYXVsdG1hcCAo cHJlc2VudCkKKyAgICAgIGRvIGkgPSAxLCBOCisJYyhpKSA9IGMoaSkgKyBiKGkpCisgICAg ICBlbmQgZG8KKyAgICAhJG9tcCBlbmQgdGFyZ2V0CishJG9tcCB0YXJnZXQgZXhpdCBkYXRh IG1hcCAoZnJvbTogYykKK2VuZCBwcm9ncmFtCmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3Rz dWl0ZS9saWJnb21wLmZvcnRyYW4vdGFyZ2V0LXByZXNlbnQtMy5mOTAgYi9saWJnb21wL3Rl c3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vdGFyZ2V0LXByZXNlbnQtMy5mOTAKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM0ZGViODY1MmQxCi0tLSAvZGV2L251 bGwKKysrIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1wcmVz ZW50LTMuZjkwCkBAIC0wLDAgKzEsMjIgQEAKKyEgeyBkZy1kbyBydW4geyB0YXJnZXQgb2Zm bG9hZF90YXJnZXRfYW55IH0gfQorISB7IGRnLXNob3VsZGZhaWwgInByZXNlbnQgZXJyb3Ig dHJpZ2dlcmVkIiB9CisKK3Byb2dyYW0gbWFpbgorICBpbXBsaWNpdCBub25lCisgIGludGVn ZXIsIHBhcmFtZXRlciA6OiBOID0gMTAwCisgIGludGVnZXIgOjogYShOKSwgYihOKSwgYyhO KSwgaQorCisgIGRvIGkgPSAxLCBOCisgICAgYShpKSA9IGkgKiAyCisgICAgYihpKSA9IGkg KiAzICsgMQorICBlbmQgZG8KKworICAhJG9tcCB0YXJnZXQgZW50ZXIgZGF0YSBtYXAgKGFs bG9jOiBhLCBjKQorICAgICEgVGhpcyBzaG91bGQgd29yayBhcyBhIGhhcyBhbHJlYWR5IGJl ZW4gYWxsb2NhdGVkLgorICAgICEkb21wIHRhcmdldCB1cGRhdGUgdG8gKHByZXNlbnQ6IGEp CisKKyAgICAhIFRoaXMgc2hvdWxkIGZhaWwgYXMgYiBoYXMgbm90IGJlZW4gYWxsb2NhdGVk LgorICAgICEgeyBkZy1vdXRwdXQgImxpYmdvbXA6IHByZXNlbnQgY2xhdXNlOiAhb21wX3Rh cmdldF9pc19wcmVzZW50IFxcXCgweFxbMC05YS1mXF0rLCBcWzAtOVxdK1xcXCkiIH0KKyAg ICAhJG9tcCB0YXJnZXQgdXBkYXRlIHRvIChwcmVzZW50OiBiKQorICAhJG9tcCB0YXJnZXQg ZXhpdCBkYXRhIG1hcCAoZnJvbTogYykKK2VuZCBwcm9ncmFtCi0tIAoyLjM0LjEKCg== --------------osgsgKVE8nEHFQWYFsQ0z73a--