From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sender4-pp-o91.zoho.com (sender4-pp-o91.zoho.com [136.143.188.91]) by sourceware.org (Postfix) with ESMTPS id E86A03858D28; Sun, 20 Nov 2022 19:03:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E86A03858D28 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=zoho.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=zoho.com ARC-Seal: i=1; a=rsa-sha256; t=1668970995; cv=none; d=zohomail.com; s=zohoarc; b=ZoCuStm96tUWTQ86J4KBV4h9JkUgZSCAXVjjmPnDTX8wwnaXlYVsB1nH0xdH6cVWPNd++5Oc6BaNCMjhT0BSK25txRPK7eQsIueLQ8V3c8t7trQYIncnA9DwMSrn1iRSar8wzhAE03tC82dqmcq7F0bwk1FH1/mczsQLCEbZLK8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1668970995; h=Content-Type:Cc:Date:From:MIME-Version:Message-ID:Subject:To; bh=t/04o0ZTpI+0O7iAx6jy6cD+z4Zqj6uIN7VDD7J26l4=; b=eoEqCCokAR6V1QzvqYCbf6CIL4nRrL/z/Ic3bg7KZ1v2CCHisGFVe8kSO6/uMzQ6Ge+zTh0Hsgyiuew1Hj8r7TYh8V0sYAbK9KyqkjEffDtZ2k3PGpDJ8VkH/p29nGM+P2kXC6dsENWjbJNi3YygehWni/0DppxvxDre9KGl3XQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zoho.com; spf=pass smtp.mailfrom=bouanto@zoho.com; dmarc=pass header.from= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=zapps768; d=zoho.com; h=message-id:subject:from:to:cc:date:content-type:user-agent:mime-version; b=LifOz1aLUFdwfaP4bb1SPSQsUBCIycHZkvLdO+6Ugrj36XQEJMRHqBzOQZxzS8EbLtKceDMN2jQB BSO3+k9IUpQXkx9rNy6yiglkFWzh3dzwkmKe42YJmJy+sMirlgeb DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1668970995; s=zm2022; d=zoho.com; i=bouanto@zoho.com; h=Message-ID:Subject:Subject:From:From:To:To:Cc:Cc:Date:Date:Content-Type:MIME-Version:Message-Id:Reply-To; bh=t/04o0ZTpI+0O7iAx6jy6cD+z4Zqj6uIN7VDD7J26l4=; b=K5dDz4v5mh2VVtLmGjw2lM8aAViNo30iorEBLWcN5B20EEp7fZz9H4WlsR/kx5ku m2tpGJ3XIVNjxOxqx2klW4FWiuEVzV2nMnpfU7eT2BGYmVC9fP20r8KiGqmMWH+ZLsB pcrNxGDvgZBTvLRWv7CpG8HytKpiwjYZofx8vrXc= Received: from [192.168.1.174] (38.87.11.6 [38.87.11.6]) by mx.zohomail.com with SMTPS id 1668970993955141.60569178927472; Sun, 20 Nov 2022 11:03:13 -0800 (PST) Message-ID: Subject: [PATCH] libgccjit: Fix float vector comparison From: Antoni Boucher To: gcc-patches@gcc.gnu.org, jit@gcc.gnu.org Cc: Guillaume Gomez Date: Sun, 20 Nov 2022 14:03:12 -0500 Content-Type: multipart/mixed; boundary="=-9I2Jilwed2eQpPBKP8U6" User-Agent: Evolution 3.46.1 MIME-Version: 1.0 X-Zoho-Virus-Status: 1 X-ZohoMailClient: External X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,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: --=-9I2Jilwed2eQpPBKP8U6 Content-Type: text/plain Content-Transfer-Encoding: 7bit Hi. This fixes bug 107770. Thanks for the review. --=-9I2Jilwed2eQpPBKP8U6 Content-Disposition: attachment; filename="0001-libgccjit-Fix-float-vector-comparison.patch" Content-Type: text/x-patch; name="0001-libgccjit-Fix-float-vector-comparison.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAxMTEyZTkyNjI0ZDQxZWM5NmMzNjZmZGI2MDEwMWUxMDQwNDYyNTIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmkgQm91Y2hlciA8Ym91YW50b0B6b2hvLmNvbT4KRGF0 ZTogU3VuLCAyMCBOb3YgMjAyMiAxMDoyMjo1MyAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIGxpYmdj Y2ppdDogRml4IGZsb2F0IHZlY3RvciBjb21wYXJpc29uCgpGaXggZmxvYXQgdmVjdG9yIGNvbXBh cmlzb24gYW5kIGFkZCBjb21wYXJpc29uIHRlc3RzIGRpZG4ndCBpbmNsdWRlIGZsb2F0IGFuZAp2 ZWN0b3JzLgoKZ2NjL3Rlc3RzdWl0ZToKCVBSIGppdC8xMDc3NzAKCSogaml0LmRnL2hhcm5lc3Mu aDogQWRkIG5ldyBtYWNybyB0byB0byBwZXJmb3JtIHZlY3RvcgoJY29tcGFyaXNvbnMKCSogaml0 LmRnL3Rlc3QtZXhwcmVzc2lvbnMuYzogRXh0ZW5kIGNvbXBhcmlzb24gdGVzdHMgdG8gYWRkIGZs b2F0Cgl0eXBlcyBhbmQgdmVjdG9ycwoKZ2NjL2ppdDoKCVBSIGppdC8xMDc3NzAKCSogaml0LXBs YXliYWNrLmNjOiBGaXggdmVjdG9yIGZsb2F0IGNvbXBhcmlzb24KCSogaml0LXBsYXliYWNrLmg6 IFVwZGF0ZSBjb21wYXJpc29uIGZ1bmN0aW9uIHNpZ25hdHVyZQoJKiBqaXQtcmVjb3JkaW5nLmNj OiBVcGRhdGUgY2FsbCBmb3IgIm5ld19jb21wYXJpc29uIiBmdW5jdGlvbgoJKiBqaXQtcmVjb3Jk aW5nLmg6IEZpeCB2ZWN0b3IgZmxvYXQgY29tcGFyaXNvbgoKQ28tYXV0aG9yZWQtYnk6IEd1aWxs YXVtZSBHb21leiA8Z3VpbGxhdW1lMS5nb21lekBnbWFpbC5jb20+Ci0tLQogZ2NjL2ppdC9qaXQt cGxheWJhY2suY2MgICAgICAgICAgICAgICAgIHwgIDI3ICsrLQogZ2NjL2ppdC9qaXQtcGxheWJh Y2suaCAgICAgICAgICAgICAgICAgIHwgICAyICstCiBnY2Mvaml0L2ppdC1yZWNvcmRpbmcuY2Mg ICAgICAgICAgICAgICAgfCAgIDMgKy0KIGdjYy9qaXQvaml0LXJlY29yZGluZy5oICAgICAgICAg ICAgICAgICB8ICAxOCArLQogZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvaGFybmVzcy5oICAgICAgICAg IHwgIDE1ICsrCiBnY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LWV4cHJlc3Npb25zLmMgfCAyMzQg KysrKysrKysrKysrKysrKysrKy0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDI0NiBpbnNlcnRpb25z KCspLCA1MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1wbGF5YmFjay5j YyBiL2djYy9qaXQvaml0LXBsYXliYWNrLmNjCmluZGV4IGQyMjdkMzYyODNhLi4yODg4ZGExNmVi ZiAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suY2MKKysrIGIvZ2NjL2ppdC9qaXQt cGxheWJhY2suY2MKQEAgLTEyMTMsNyArMTIxMyw3IEBAIHBsYXliYWNrOjpydmFsdWUgKgogcGxh eWJhY2s6OmNvbnRleHQ6OgogbmV3X2NvbXBhcmlzb24gKGxvY2F0aW9uICpsb2MsCiAJCWVudW0g Z2NjX2ppdF9jb21wYXJpc29uIG9wLAotCQlydmFsdWUgKmEsIHJ2YWx1ZSAqYikKKwkJcnZhbHVl ICphLCBydmFsdWUgKmIsIHR5cGUgKnZlY19yZXN1bHRfdHlwZSkKIHsKICAgLy8gRklYTUU6IHR5 cGUtY2hlY2tpbmcsIG9yIGNvZXJjaW9uPwogICBlbnVtIHRyZWVfY29kZSBpbm5lcl9vcDsKQEAg LTEyNTIsMTAgKzEyNTIsMjcgQEAgbmV3X2NvbXBhcmlzb24gKGxvY2F0aW9uICpsb2MsCiAgIHRy ZWUgbm9kZV9iID0gYi0+YXNfdHJlZSAoKTsKICAgbm9kZV9iID0gZm9sZF9jb25zdF92YXIgKG5v ZGVfYik7CiAKLSAgdHJlZSBpbm5lcl9leHByID0gYnVpbGQyIChpbm5lcl9vcCwKLQkJCSAgICBi b29sZWFuX3R5cGVfbm9kZSwKLQkJCSAgICBub2RlX2EsCi0JCQkgICAgbm9kZV9iKTsKKyAgdHJl ZSBpbm5lcl9leHByOworICB0cmVlIGFfdHlwZSA9IFRSRUVfVFlQRSAobm9kZV9hKTsKKyAgaWYg KFZFQ1RPUl9UWVBFX1AgKGFfdHlwZSkpCisgIHsKKyAgICAvKiBCdWlsZCBhIHZlY3RvciBjb21w YXJpc29uLiAgU2VlIGJ1aWxkX3ZlY19jbXAgaW4gYy10eXBlY2suY2MgZm9yCisgICAgICAgcmVm ZXJlbmNlLiAgKi8KKyAgICB0cmVlIHRfdmVjX3Jlc3VsdF90eXBlID0gdmVjX3Jlc3VsdF90eXBl LT5hc190cmVlICgpOworICAgIHRyZWUgemVyb192ZWMgPSBidWlsZF96ZXJvX2NzdCAodF92ZWNf cmVzdWx0X3R5cGUpOworICAgIHRyZWUgbWludXNfb25lX3ZlYyA9IGJ1aWxkX21pbnVzX29uZV9j c3QgKHRfdmVjX3Jlc3VsdF90eXBlKTsKKyAgICB0cmVlIGNtcF90eXBlID0gdHJ1dGhfdHlwZV9m b3IgKGFfdHlwZSk7CisgICAgdHJlZSBjbXAgPSBidWlsZDIgKGlubmVyX29wLCBjbXBfdHlwZSwg bm9kZV9hLCBub2RlX2IpOworICAgIGlubmVyX2V4cHIgPSBidWlsZDMgKFZFQ19DT05EX0VYUFIs IHRfdmVjX3Jlc3VsdF90eXBlLCBjbXAsIG1pbnVzX29uZV92ZWMsCisJCQkgemVyb192ZWMpOwor ICB9CisgIGVsc2UKKyAgeworICAgIGlubmVyX2V4cHIgPSBidWlsZDIgKGlubmVyX29wLAorCQkJ IGJvb2xlYW5fdHlwZV9ub2RlLAorCQkJIG5vZGVfYSwKKwkJCSBub2RlX2IpOworICB9CiAKICAg LyogVHJ5IHRvIGZvbGQuICAqLwogICBpbm5lcl9leHByID0gZm9sZCAoaW5uZXJfZXhwcik7CmRp ZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1wbGF5YmFjay5oIGIvZ2NjL2ppdC9qaXQtcGxheWJhY2su aAppbmRleCAzYmEwMmEwNDUxYS4uMDU2ZTUyMzE1MTQgMTAwNjQ0Ci0tLSBhL2djYy9qaXQvaml0 LXBsYXliYWNrLmgKKysrIGIvZ2NjL2ppdC9qaXQtcGxheWJhY2suaApAQCAtMTYyLDcgKzE2Miw3 IEBAIHB1YmxpYzoKICAgcnZhbHVlICoKICAgbmV3X2NvbXBhcmlzb24gKGxvY2F0aW9uICpsb2Ms CiAJCSAgZW51bSBnY2Nfaml0X2NvbXBhcmlzb24gb3AsCi0JCSAgcnZhbHVlICphLCBydmFsdWUg KmIpOworCQkgIHJ2YWx1ZSAqYSwgcnZhbHVlICpiLCB0eXBlICp2ZWNfcmVzdWx0X3R5cGUpOwog CiAgIHJ2YWx1ZSAqCiAgIG5ld19jYWxsIChsb2NhdGlvbiAqbG9jLApkaWZmIC0tZ2l0IGEvZ2Nj L2ppdC9qaXQtcmVjb3JkaW5nLmNjIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmNjCmluZGV4IGY3 OGRhZWQyZDcxLi5iNWViNjQ4YWQyNCAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9qaXQtcmVjb3JkaW5n LmNjCisrKyBiL2djYy9qaXQvaml0LXJlY29yZGluZy5jYwpAQCAtNTgzNyw3ICs1ODM3LDggQEAg cmVjb3JkaW5nOjpjb21wYXJpc29uOjpyZXBsYXlfaW50byAocmVwbGF5ZXIgKnIpCiAgIHNldF9w bGF5YmFja19vYmogKHItPm5ld19jb21wYXJpc29uIChwbGF5YmFja19sb2NhdGlvbiAociwgbV9s b2MpLAogCQkJCSAgICAgICBtX29wLAogCQkJCSAgICAgICBtX2EtPnBsYXliYWNrX3J2YWx1ZSAo KSwKLQkJCQkgICAgICAgbV9iLT5wbGF5YmFja19ydmFsdWUgKCkpKTsKKwkJCQkgICAgICAgbV9i LT5wbGF5YmFja19ydmFsdWUgKCksCisJCQkJICAgICAgIG1fdHlwZS0+cGxheWJhY2tfdHlwZSAo KSkpOwogfQogCiAvKiBJbXBsZW1lbnRhdGlvbiBvZiBwdXJlIHZpcnR1YWwgaG9vayByZWNvcmRp bmc6OnJ2YWx1ZTo6dmlzaXRfY2hpbGRyZW4KZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXJlY29y ZGluZy5oIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgKaW5kZXggODYxMGVhOTg4YmQuLjVkN2M3 MTc3Y2MzIDEwMDY0NAotLS0gYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaAorKysgYi9nY2Mvaml0 L2ppdC1yZWNvcmRpbmcuaApAQCAtMTY4Myw3ICsxNjgzLDIzIEBAIHB1YmxpYzoKICAgICBtX29w IChvcCksCiAgICAgbV9hIChhKSwKICAgICBtX2IgKGIpCi0gIHt9CisgIHsKKyAgICB0eXBlICph X3R5cGUgPSBhLT5nZXRfdHlwZSAoKTsKKyAgICB2ZWN0b3JfdHlwZSAqdmVjX3R5cGUgPSBhX3R5 cGUtPmR5bl9jYXN0X3ZlY3Rvcl90eXBlICgpOworICAgIGlmICh2ZWNfdHlwZSAhPSBOVUxMKQor ICAgIHsKKyAgICAgIHR5cGUgKmVsZW1lbnRfdHlwZSA9IHZlY190eXBlLT5nZXRfZWxlbWVudF90 eXBlICgpOworICAgICAgdHlwZSAqaW5uZXJfdHlwZTsKKyAgICAgIC8qIFZlY3RvcnMgb2YgZmxv YXRpbmctcG9pbnQgdmFsdWVzIHJldHVybiBhIHZlY3RvciBvZiBpbnRlZ2VycyBvZiB0aGUKKyAg ICAgICAgIHNhbWUgc2l6ZS4gICovCisgICAgICBpZiAoZWxlbWVudF90eXBlLT5pc19mbG9hdCAo KSkKKwlpbm5lcl90eXBlID0gY3R4dC0+Z2V0X2ludF90eXBlIChlbGVtZW50X3R5cGUtPmdldF9z aXplICgpLCBmYWxzZSk7CisgICAgICBlbHNlCisJaW5uZXJfdHlwZSA9IGVsZW1lbnRfdHlwZTsK KyAgICAgIG1fdHlwZSA9IG5ldyB2ZWN0b3JfdHlwZSAoaW5uZXJfdHlwZSwgdmVjX3R5cGUtPmdl dF9udW1fdW5pdHMgKCkpOworICAgICAgY3R4dC0+cmVjb3JkIChtX3R5cGUpOworICAgIH0KKyAg fQogCiAgIHZvaWQgcmVwbGF5X2ludG8gKHJlcGxheWVyICpyKSBmaW5hbCBvdmVycmlkZTsKIApk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvaGFybmVzcy5oIGIvZ2NjL3Rlc3RzdWl0 ZS9qaXQuZGcvaGFybmVzcy5oCmluZGV4IDdiNzBjZTczZGQ1Li5lNDIzYWJlOWVlMSAxMDA2NDQK LS0tIGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvaGFybmVzcy5oCisrKyBiL2djYy90ZXN0c3VpdGUv aml0LmRnL2hhcm5lc3MuaApAQCAtNjgsNiArNjgsMjEgQEAgc3RhdGljIGNoYXIgdGVzdFsxMDI0 XTsKICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgfSB3 aGlsZSAoMCkKIAorI2RlZmluZSBDSEVDS19WRUNUT1JfVkFMVUUoTEVOLCBBQ1RVQUwsIEVYUEVD VEVEKSBcCisgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgZm9yIChpbnQgX19jaGVja192ZWN0b3JfaXQgPSAwOyBfX2NoZWNrX3ZlY3Rvcl9pdCA8IExF TjsgKytfX2NoZWNrX3ZlY3Rvcl9pdCkgeyBcCisgICAgICBpZiAoKEFDVFVBTClbX19jaGVja192 ZWN0b3JfaXRdICE9IChFWFBFQ1RFRClbX19jaGVja192ZWN0b3JfaXRdKSB7IFwKKyAgICAgICAg ICBmYWlsICgiJXM6ICVzOiBhY3R1YWw6ICVzICE9IGV4cGVjdGVkOiAlcyAocG9zaXRpb24gJWQp IiwgXAorICAgICAgICAgICAgICB0ZXN0LCBfX2Z1bmNfXywgI0FDVFVBTCwgI0VYUEVDVEVELCBf X2NoZWNrX3ZlY3Rvcl9pdCk7ICBcCisgICAgICAgIGZwcmludGYgKHN0ZGVyciwgImluY29ycmVj dCB2YWx1ZVxuIik7IFwKKyAgICAgICAgYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgfSBcCisgICAgfSBcCisgIHBhc3MgKCIlczogJXM6IGFjdHVhbDogJXMg PT0gZXhwZWN0ZWQ6ICVzIiwgXAorICAgICAgICB0ZXN0LCBfX2Z1bmNfXywgI0FDVFVBTCwgI0VY UEVDVEVEKTsgIFwKKyAgfSB3aGlsZSAoMCkKKworCiAjZGVmaW5lIENIRUNLX0RPVUJMRV9WQUxV RShBQ1RVQUwsIEVYUEVDVEVEKSBcCiAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCiAgICAgZG91YmxlIGV4cGVjdGVkID0gKEVYUEVDVEVEKTsJICAgICBcCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LWV4cHJlc3Npb25zLmMgYi9nY2Mv dGVzdHN1aXRlL2ppdC5kZy90ZXN0LWV4cHJlc3Npb25zLmMKaW5kZXggZjljYzY0ZmQ0ZGIuLjEz YjNiYWY3OWVhIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LWV4cHJlc3Np b25zLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1leHByZXNzaW9ucy5jCkBAIC0z ODMsMTUgKzM4Myw3IEBAIG1ha2VfdGVzdF9vZl9jb21wYXJpc29uIChnY2Nfaml0X2NvbnRleHQg KmN0eHQsCiAgIGdjY19qaXRfcGFyYW0gKnBhcmFtX2IgPQogICAgIGdjY19qaXRfY29udGV4dF9u ZXdfcGFyYW0gKGN0eHQsIE5VTEwsIHR5cGUsICJiIik7CiAgIGdjY19qaXRfcGFyYW0gKnBhcmFt c1tdID0ge3BhcmFtX2EsIHBhcmFtX2J9OwotICBnY2Nfaml0X3R5cGUgKmJvb2xfdHlwZSA9Ci0g ICAgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0LCBHQ0NfSklUX1RZUEVfQk9PTCk7Ci0g IGdjY19qaXRfZnVuY3Rpb24gKnRlc3RfZm4gPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZnVu Y3Rpb24gKGN0eHQsIE5VTEwsCi0JCQkJICBHQ0NfSklUX0ZVTkNUSU9OX0VYUE9SVEVELAotCQkJ CSAgYm9vbF90eXBlLAotCQkJCSAgZnVuY25hbWUsCi0JCQkJICAyLCBwYXJhbXMsCi0JCQkJICAw KTsKKwogICBnY2Nfaml0X3J2YWx1ZSAqY29tcGFyaXNvbiA9CiAgICAgZ2NjX2ppdF9jb250ZXh0 X25ld19jb21wYXJpc29uICgKICAgICAgIGN0eHQsCkBAIC00MDAsNiArMzkyLDE2IEBAIG1ha2Vf dGVzdF9vZl9jb21wYXJpc29uIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsCiAgICAgICBnY2Nfaml0 X3BhcmFtX2FzX3J2YWx1ZSAocGFyYW1fYSksCiAgICAgICBnY2Nfaml0X3BhcmFtX2FzX3J2YWx1 ZSAocGFyYW1fYikpOwogCisgIGdjY19qaXRfdHlwZSAqY29tcGFyaXNvbl90eXBlID0gZ2NjX2pp dF9ydmFsdWVfZ2V0X3R5cGUoY29tcGFyaXNvbik7CisKKyAgZ2NjX2ppdF9mdW5jdGlvbiAqdGVz dF9mbiA9CisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19mdW5jdGlvbiAoY3R4dCwgTlVMTCwKKwkJ CQkgIEdDQ19KSVRfRlVOQ1RJT05fRVhQT1JURUQsCisJCQkJICBjb21wYXJpc29uX3R5cGUsCisJ CQkJICBmdW5jbmFtZSwKKwkJCQkgIDIsIHBhcmFtcywKKwkJCQkgIDApOworCiAgIGdjY19qaXRf YmxvY2sgKmluaXRpYWwgPSBnY2Nfaml0X2Z1bmN0aW9uX25ld19ibG9jayAodGVzdF9mbiwgImlu aXRpYWwiKTsKICAgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9yZXR1cm4gKGluaXRpYWwsIE5VTEws IGNvbXBhcmlzb24pOwogCkBAIC00MDcsNDggKzQwOSwxMDMgQEAgbWFrZV90ZXN0X29mX2NvbXBh cmlzb24gKGdjY19qaXRfY29udGV4dCAqY3R4dCwKICAgICBnY2Nfaml0X3J2YWx1ZV9hc19vYmpl Y3QgKGNvbXBhcmlzb24pKTsKIH0KIAotc3RhdGljIHZvaWQKLW1ha2VfdGVzdHNfb2ZfY29tcGFy aXNvbnMgKGdjY19qaXRfY29udGV4dCAqY3R4dCkKK3N0YXRpYyB2b2lkIHJ1bl90ZXN0X29mX2Nv bXBhcmlzb24oZ2NjX2ppdF9jb250ZXh0ICpjdHh0LAorCQkJIGdjY19qaXRfdHlwZSAqdHlwZSwK KwkJCSBlbnVtIGdjY19qaXRfY29tcGFyaXNvbiBvcCwKKwkJCSBjb25zdCBjaGFyICpmdW5jbmFt ZSwKKwkJCSBjb25zdCBjaGFyICp2ZWNfZnVuY25hbWUsCisJCQkgY29uc3QgY2hhciAqZXhwZWN0 ZWQpCiB7Ci0gIGdjY19qaXRfdHlwZSAqaW50X3R5cGUgPQotICAgIGdjY19qaXRfY29udGV4dF9n ZXRfdHlwZSAoY3R4dCwgR0NDX0pJVF9UWVBFX0lOVCk7CisgIGdjY19qaXRfdHlwZSAqdmVjX3R5 cGUgPQorICAgIGdjY19qaXRfdHlwZV9nZXRfdmVjdG9yICh0eXBlLCA0KTsKIAogICBDSEVDS19T VFJJTkdfVkFMVUUgKAogICAgIG1ha2VfdGVzdF9vZl9jb21wYXJpc29uIChjdHh0LAotCQkJICAg ICBpbnRfdHlwZSwKLQkJCSAgICAgR0NDX0pJVF9DT01QQVJJU09OX0VRLAotCQkJICAgICAidGVz dF9DT01QQVJJU09OX0VRX29uX2ludCIpLAotICAgICJhID09IGIiKTsKLSAgQ0hFQ0tfU1RSSU5H X1ZBTFVFICgKLSAgICBtYWtlX3Rlc3Rfb2ZfY29tcGFyaXNvbiAoY3R4dCwKLQkJCSAgICAgaW50 X3R5cGUsCi0JCQkgICAgIEdDQ19KSVRfQ09NUEFSSVNPTl9ORSwKLQkJCSAgICAgInRlc3RfQ09N UEFSSVNPTl9ORV9vbl9pbnQiKSwKLSAgICAiYSAhPSBiIik7Ci0gIENIRUNLX1NUUklOR19WQUxV RSAoCi0gICAgbWFrZV90ZXN0X29mX2NvbXBhcmlzb24gKGN0eHQsCi0JCQkgICAgIGludF90eXBl LAotCQkJICAgICBHQ0NfSklUX0NPTVBBUklTT05fTFQsCi0JCQkgICAgICJ0ZXN0X0NPTVBBUklT T05fTFRfb25faW50IiksCi0gICAgImEgPCBiIik7CisJCQkgICAgIHR5cGUsCisJCQkgICAgIG9w LAorCQkJICAgICBmdW5jbmFtZSksCisgICAgZXhwZWN0ZWQpOwogICBDSEVDS19TVFJJTkdfVkFM VUUgKAogICAgIG1ha2VfdGVzdF9vZl9jb21wYXJpc29uIChjdHh0LAotCQkJICAgICBpbnRfdHlw ZSwKLQkJCSAgICAgR0NDX0pJVF9DT01QQVJJU09OX0xFLAotCQkJICAgICAidGVzdF9DT01QQVJJ U09OX0xFX29uX2ludCIpLAotICAgICJhIDw9IGIiKTsKLSAgQ0hFQ0tfU1RSSU5HX1ZBTFVFICgK LSAgICBtYWtlX3Rlc3Rfb2ZfY29tcGFyaXNvbiAoY3R4dCwKLQkJCSAgICAgaW50X3R5cGUsCi0J CQkgICAgIEdDQ19KSVRfQ09NUEFSSVNPTl9HVCwKLQkJCSAgICAgInRlc3RfQ09NUEFSSVNPTl9H VF9vbl9pbnQiKSwKLSAgICAiYSA+IGIiKTsKLSAgQ0hFQ0tfU1RSSU5HX1ZBTFVFICgKLSAgICBt YWtlX3Rlc3Rfb2ZfY29tcGFyaXNvbiAoY3R4dCwKLQkJCSAgICAgaW50X3R5cGUsCi0JCQkgICAg IEdDQ19KSVRfQ09NUEFSSVNPTl9HRSwKLQkJCSAgICAgInRlc3RfQ09NUEFSSVNPTl9HRV9vbl9p bnQiKSwKLSAgICAiYSA+PSBiIik7CisJCQkgICAgIHZlY190eXBlLAorCQkJICAgICBvcCwKKwkJ CSAgICAgdmVjX2Z1bmNuYW1lKSwKKyAgICBleHBlY3RlZCk7Cit9CisKK3N0YXRpYyB2b2lkCitt YWtlX3Rlc3RzX29mX2NvbXBhcmlzb25zIChnY2Nfaml0X2NvbnRleHQgKmN0eHQpCit7CisgIGdj Y19qaXRfdHlwZSAqaW50X3R5cGUgPQorICAgIGdjY19qaXRfY29udGV4dF9nZXRfdHlwZSAoY3R4 dCwgR0NDX0pJVF9UWVBFX0lOVCk7CisgIGdjY19qaXRfdHlwZSAqZmxvYXRfdHlwZSA9CisgICAg Z2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0LCBHQ0NfSklUX1RZUEVfRkxPQVQpOworCisg IHJ1bl90ZXN0X29mX2NvbXBhcmlzb24oCisgIAljdHh0LAorICAJaW50X3R5cGUsCisgIAlHQ0Nf SklUX0NPTVBBUklTT05fRVEsCisgIAkidGVzdF9DT01QQVJJU09OX0VRX29uX2ludCIsCisgIAki dGVzdF9DT01QQVJJU09OX0VRX29uX3ZlY19pbnQiLAorICAJImEgPT0gYiIpOworICBydW5fdGVz dF9vZl9jb21wYXJpc29uKAorICAJY3R4dCwKKyAgCWludF90eXBlLAorICAJR0NDX0pJVF9DT01Q QVJJU09OX05FLAorICAJInRlc3RfQ09NUEFSSVNPTl9ORV9vbl9pbnQiLAorICAJInRlc3RfQ09N UEFSSVNPTl9ORV9vbl92ZWNfaW50IiwKKyAgCSJhICE9IGIiKTsKKyAgcnVuX3Rlc3Rfb2ZfY29t cGFyaXNvbigKKyAgCWN0eHQsCisgIAlpbnRfdHlwZSwKKyAgCUdDQ19KSVRfQ09NUEFSSVNPTl9M VCwKKyAgCSJ0ZXN0X0NPTVBBUklTT05fTFRfb25faW50IiwKKyAgCSJ0ZXN0X0NPTVBBUklTT05f TFRfb25fdmVjX2ludCIsCisgIAkiYSA8IGIiKTsKKyAgcnVuX3Rlc3Rfb2ZfY29tcGFyaXNvbigK KyAgCWN0eHQsCisgIAlpbnRfdHlwZSwKKyAgCUdDQ19KSVRfQ09NUEFSSVNPTl9MRSwKKyAgCSJ0 ZXN0X0NPTVBBUklTT05fTEVfb25faW50IiwKKyAgCSJ0ZXN0X0NPTVBBUklTT05fTEVfb25fdmVj X2ludCIsCisgIAkiYSA8PSBiIik7CisgIHJ1bl90ZXN0X29mX2NvbXBhcmlzb24oCisgIAljdHh0 LAorICAJaW50X3R5cGUsCisgIAlHQ0NfSklUX0NPTVBBUklTT05fR1QsCisgIAkidGVzdF9DT01Q QVJJU09OX0dUX29uX2ludCIsCisgIAkidGVzdF9DT01QQVJJU09OX0dUX29uX3ZlY19pbnQiLAor ICAJImEgPiBiIik7CisgIHJ1bl90ZXN0X29mX2NvbXBhcmlzb24oCisgIAljdHh0LAorICAJaW50 X3R5cGUsCisgIAlHQ0NfSklUX0NPTVBBUklTT05fR0UsCisgIAkidGVzdF9DT01QQVJJU09OX0dF X29uX2ludCIsCisgIAkidGVzdF9DT01QQVJJU09OX0dFX29uX3ZlY19pbnQiLAorICAJImEgPj0g YiIpOworCisgIC8vIEZsb2F0IHRlc3RzCisgIHJ1bl90ZXN0X29mX2NvbXBhcmlzb24oCisgIAlj dHh0LAorICAJZmxvYXRfdHlwZSwKKyAgCUdDQ19KSVRfQ09NUEFSSVNPTl9ORSwKKyAgCSJ0ZXN0 X0NPTVBBUklTT05fTkVfb25fZmxvYXQiLAorICAJInRlc3RfQ09NUEFSSVNPTl9ORV9vbl92ZWNf ZmxvYXQiLAorICAJImEgIT0gYiIpOworICBydW5fdGVzdF9vZl9jb21wYXJpc29uKAorICAJY3R4 dCwKKyAgCWZsb2F0X3R5cGUsCisgIAlHQ0NfSklUX0NPTVBBUklTT05fTFQsCisgIAkidGVzdF9D T01QQVJJU09OX0xUX29uX2Zsb2F0IiwKKyAgCSJ0ZXN0X0NPTVBBUklTT05fTFRfb25fdmVjX2Zs b2F0IiwKKyAgCSJhIDwgYiIpOworICBydW5fdGVzdF9vZl9jb21wYXJpc29uKAorICAJY3R4dCwK KyAgCWZsb2F0X3R5cGUsCisgIAlHQ0NfSklUX0NPTVBBUklTT05fR1QsCisgIAkidGVzdF9DT01Q QVJJU09OX0dUX29uX2Zsb2F0IiwKKyAgCSJ0ZXN0X0NPTVBBUklTT05fR1Rfb25fdmVjX2Zsb2F0 IiwKKyAgCSJhID4gYiIpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtNTAyLDYgKzU1OSw5MyBAQCB2 ZXJpZnlfY29tcGFyaXNvbnMgKGdjY19qaXRfcmVzdWx0ICpyZXN1bHQpCiAgIENIRUNLX1ZBTFVF ICh0ZXN0X0NPTVBBUklTT05fR0Vfb25faW50ICgwLCAwKSwgMSk7CiAgIENIRUNLX1ZBTFVFICh0 ZXN0X0NPTVBBUklTT05fR0Vfb25faW50ICgxLCAyKSwgMCk7CiAgIENIRUNLX1ZBTFVFICh0ZXN0 X0NPTVBBUklTT05fR0Vfb25faW50ICgyLCAxKSwgMSk7CisKKyAgdHlwZWRlZiBpbnQgX192ZWN0 b3IgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoc2l6ZW9mKGludCkgKiAyKSkpOwor ICB0eXBlZGVmIF9fdmVjdG9yICgqdGVzdF92ZWNfZm4pIChfX3ZlY3RvciwgX192ZWN0b3IpOwor CisgIF9fdmVjdG9yIHplcm9femVybyA9IHswLCAwfTsKKyAgX192ZWN0b3IgemVyb19vbmUgPSB7 MCwgMX07CisgIF9fdmVjdG9yIG9uZV96ZXJvID0gezEsIDB9OworCisgIF9fdmVjdG9yIHRydWVf dHJ1ZSA9IHstMSwgLTF9OworICBfX3ZlY3RvciBmYWxzZV90cnVlID0gezAsIC0xfTsKKyAgX192 ZWN0b3IgdHJ1ZV9mYWxzZSA9IHstMSwgMH07CisgIF9fdmVjdG9yIGZhbHNlX2ZhbHNlID0gezAs IDB9OworCisgIHRlc3RfdmVjX2ZuIHRlc3RfQ09NUEFSSVNPTl9FUV9vbl92ZWNfaW50ID0KKyAg ICAodGVzdF92ZWNfZm4pZ2NjX2ppdF9yZXN1bHRfZ2V0X2NvZGUgKHJlc3VsdCwKKwkJCQkgICAg ICAidGVzdF9DT01QQVJJU09OX0VRX29uX3ZlY19pbnQiKTsKKyAgQ0hFQ0tfTk9OX05VTEwgKHRl c3RfQ09NUEFSSVNPTl9FUV9vbl92ZWNfaW50KTsKKyAgQ0hFQ0tfVkVDVE9SX1ZBTFVFICgyLCB0 ZXN0X0NPTVBBUklTT05fRVFfb25fdmVjX2ludCAoemVyb196ZXJvLCB6ZXJvX3plcm8pLCB0cnVl X3RydWUpOworICBDSEVDS19WRUNUT1JfVkFMVUUgKDIsIHRlc3RfQ09NUEFSSVNPTl9FUV9vbl92 ZWNfaW50ICh6ZXJvX29uZSwgb25lX3plcm8pLCBmYWxzZV9mYWxzZSk7CisKKyAgdGVzdF92ZWNf Zm4gdGVzdF9DT01QQVJJU09OX05FX29uX3ZlY19pbnQgPQorICAgICh0ZXN0X3ZlY19mbilnY2Nf aml0X3Jlc3VsdF9nZXRfY29kZSAocmVzdWx0LAorCQkJCSAgICAgICJ0ZXN0X0NPTVBBUklTT05f TkVfb25fdmVjX2ludCIpOworICBDSEVDS19OT05fTlVMTCAodGVzdF9DT01QQVJJU09OX05FX29u X3ZlY19pbnQpOworICBDSEVDS19WRUNUT1JfVkFMVUUgKDIsIHRlc3RfQ09NUEFSSVNPTl9ORV9v bl92ZWNfaW50ICh6ZXJvX3plcm8sIHplcm9femVybyksIGZhbHNlX2ZhbHNlKTsKKyAgQ0hFQ0tf VkVDVE9SX1ZBTFVFICgyLCB0ZXN0X0NPTVBBUklTT05fTkVfb25fdmVjX2ludCAoemVyb19vbmUs IG9uZV96ZXJvKSwgdHJ1ZV90cnVlKTsKKworICB0ZXN0X3ZlY19mbiB0ZXN0X0NPTVBBUklTT05f TFRfb25fdmVjX2ludCA9CisgICAgKHRlc3RfdmVjX2ZuKWdjY19qaXRfcmVzdWx0X2dldF9jb2Rl IChyZXN1bHQsCisJCQkJICAgICAgInRlc3RfQ09NUEFSSVNPTl9MVF9vbl92ZWNfaW50Iik7Cisg IENIRUNLX05PTl9OVUxMICh0ZXN0X0NPTVBBUklTT05fTFRfb25fdmVjX2ludCk7CisgIENIRUNL X1ZFQ1RPUl9WQUxVRSAoMiwgdGVzdF9DT01QQVJJU09OX0xUX29uX3ZlY19pbnQgKHplcm9femVy bywgemVyb196ZXJvKSwgZmFsc2VfZmFsc2UpOworICBDSEVDS19WRUNUT1JfVkFMVUUgKDIsIHRl c3RfQ09NUEFSSVNPTl9MVF9vbl92ZWNfaW50ICh6ZXJvX29uZSwgb25lX3plcm8pLCB0cnVlX2Zh bHNlKTsKKworICB0ZXN0X3ZlY19mbiB0ZXN0X0NPTVBBUklTT05fTEVfb25fdmVjX2ludCA9Cisg ICAgKHRlc3RfdmVjX2ZuKWdjY19qaXRfcmVzdWx0X2dldF9jb2RlIChyZXN1bHQsCisJCQkJICAg ICAgInRlc3RfQ09NUEFSSVNPTl9MRV9vbl92ZWNfaW50Iik7CisgIENIRUNLX05PTl9OVUxMICh0 ZXN0X0NPTVBBUklTT05fTEVfb25fdmVjX2ludCk7CisgIENIRUNLX1ZFQ1RPUl9WQUxVRSAoMiwg dGVzdF9DT01QQVJJU09OX0xFX29uX3ZlY19pbnQgKHplcm9femVybywgemVyb196ZXJvKSwgdHJ1 ZV90cnVlKTsKKyAgQ0hFQ0tfVkVDVE9SX1ZBTFVFICgyLCB0ZXN0X0NPTVBBUklTT05fTEVfb25f dmVjX2ludCAoemVyb19vbmUsIG9uZV96ZXJvKSwgdHJ1ZV9mYWxzZSk7CisKKyAgdGVzdF92ZWNf Zm4gdGVzdF9DT01QQVJJU09OX0dUX29uX3ZlY19pbnQgPQorICAgICh0ZXN0X3ZlY19mbilnY2Nf aml0X3Jlc3VsdF9nZXRfY29kZSAocmVzdWx0LAorCQkJCSAgICAgICJ0ZXN0X0NPTVBBUklTT05f R1Rfb25fdmVjX2ludCIpOworICBDSEVDS19OT05fTlVMTCAodGVzdF9DT01QQVJJU09OX0dUX29u X3ZlY19pbnQpOworICBDSEVDS19WRUNUT1JfVkFMVUUgKDIsIHRlc3RfQ09NUEFSSVNPTl9HVF9v bl92ZWNfaW50ICh6ZXJvX3plcm8sIHplcm9femVybyksIGZhbHNlX2ZhbHNlKTsKKyAgQ0hFQ0tf VkVDVE9SX1ZBTFVFICgyLCB0ZXN0X0NPTVBBUklTT05fR1Rfb25fdmVjX2ludCAoemVyb19vbmUs IG9uZV96ZXJvKSwgZmFsc2VfdHJ1ZSk7CisKKyAgdGVzdF92ZWNfZm4gdGVzdF9DT01QQVJJU09O X0dFX29uX3ZlY19pbnQgPQorICAgICh0ZXN0X3ZlY19mbilnY2Nfaml0X3Jlc3VsdF9nZXRfY29k ZSAocmVzdWx0LAorCQkJCSAgICAgICJ0ZXN0X0NPTVBBUklTT05fR0Vfb25fdmVjX2ludCIpOwor ICBDSEVDS19OT05fTlVMTCAodGVzdF9DT01QQVJJU09OX0dFX29uX3ZlY19pbnQpOworICBDSEVD S19WRUNUT1JfVkFMVUUgKDIsIHRlc3RfQ09NUEFSSVNPTl9HRV9vbl92ZWNfaW50ICh6ZXJvX3pl cm8sIHplcm9femVybyksIHRydWVfdHJ1ZSk7CisgIENIRUNLX1ZFQ1RPUl9WQUxVRSAoMiwgdGVz dF9DT01QQVJJU09OX0dFX29uX3ZlY19pbnQgKHplcm9fb25lLCBvbmVfemVybyksIGZhbHNlX3Ry dWUpOworCisgIHR5cGVkZWYgZmxvYXQgX192ZWN0b3JfZiBfX2F0dHJpYnV0ZV9fICgoX192ZWN0 b3Jfc2l6ZV9fIChzaXplb2YoZmxvYXQpICogMikpKTsKKyAgdHlwZWRlZiBfX3ZlY3RvciAoKnRl c3RfdmVjX2ZfZm4pIChfX3ZlY3Rvcl9mLCBfX3ZlY3Rvcl9mKTsKKworICBfX3ZlY3Rvcl9mIHpl cm9femVyb19mID0gezAsIDB9OworICBfX3ZlY3Rvcl9mIHplcm9fb25lX2YgPSB7MCwgMX07Cisg IF9fdmVjdG9yX2Ygb25lX3plcm9fZiA9IHsxLCAwfTsKKworICBfX3ZlY3Rvcl9mIHRydWVfdHJ1 ZV9mID0gey0xLCAtMX07CisgIF9fdmVjdG9yX2YgZmFsc2VfdHJ1ZV9mID0gezAsIC0xfTsKKyAg X192ZWN0b3JfZiB0cnVlX2ZhbHNlX2YgPSB7LTEsIDB9OworICBfX3ZlY3Rvcl9mIGZhbHNlX2Zh bHNlX2YgPSB7MCwgMH07CisKKyAgdGVzdF92ZWNfZl9mbiB0ZXN0X0NPTVBBUklTT05fTkVfb25f dmVjX2Zsb2F0ID0KKyAgICAodGVzdF92ZWNfZl9mbilnY2Nfaml0X3Jlc3VsdF9nZXRfY29kZSAo cmVzdWx0LAorCQkJCSAgICAgICJ0ZXN0X0NPTVBBUklTT05fTkVfb25fdmVjX2Zsb2F0Iik7Cisg IENIRUNLX05PTl9OVUxMICh0ZXN0X0NPTVBBUklTT05fTkVfb25fdmVjX2Zsb2F0KTsKKyAgQ0hF Q0tfVkVDVE9SX1ZBTFVFICgyLCB0ZXN0X0NPTVBBUklTT05fTkVfb25fdmVjX2Zsb2F0ICh6ZXJv X3plcm9fZiwgemVyb196ZXJvX2YpLCBmYWxzZV9mYWxzZV9mKTsKKyAgQ0hFQ0tfVkVDVE9SX1ZB TFVFICgyLCB0ZXN0X0NPTVBBUklTT05fTkVfb25fdmVjX2Zsb2F0ICh6ZXJvX29uZV9mLCBvbmVf emVyb19mKSwgdHJ1ZV90cnVlX2YpOworCisgIHRlc3RfdmVjX2ZfZm4gdGVzdF9DT01QQVJJU09O X0xUX29uX3ZlY19mbG9hdCA9CisgICAgKHRlc3RfdmVjX2ZfZm4pZ2NjX2ppdF9yZXN1bHRfZ2V0 X2NvZGUgKHJlc3VsdCwKKwkJCQkgICAgICAidGVzdF9DT01QQVJJU09OX0xUX29uX3ZlY19mbG9h dCIpOworICBDSEVDS19OT05fTlVMTCAodGVzdF9DT01QQVJJU09OX0xUX29uX3ZlY19mbG9hdCk7 CisgIENIRUNLX1ZFQ1RPUl9WQUxVRSAoMiwgdGVzdF9DT01QQVJJU09OX0xUX29uX3ZlY19mbG9h dCAoemVyb196ZXJvX2YsIHplcm9femVyb19mKSwgZmFsc2VfZmFsc2VfZik7CisgIENIRUNLX1ZF Q1RPUl9WQUxVRSAoMiwgdGVzdF9DT01QQVJJU09OX0xUX29uX3ZlY19mbG9hdCAoemVyb19vbmVf Ziwgb25lX3plcm9fZiksIHRydWVfZmFsc2VfZik7CisKKyAgdGVzdF92ZWNfZl9mbiB0ZXN0X0NP TVBBUklTT05fR1Rfb25fdmVjX2Zsb2F0ID0KKyAgICAodGVzdF92ZWNfZl9mbilnY2Nfaml0X3Jl c3VsdF9nZXRfY29kZSAocmVzdWx0LAorCQkJCSAgICAgICJ0ZXN0X0NPTVBBUklTT05fR1Rfb25f dmVjX2Zsb2F0Iik7CisgIENIRUNLX05PTl9OVUxMICh0ZXN0X0NPTVBBUklTT05fR1Rfb25fdmVj X2Zsb2F0KTsKKyAgQ0hFQ0tfVkVDVE9SX1ZBTFVFICgyLCB0ZXN0X0NPTVBBUklTT05fR1Rfb25f dmVjX2Zsb2F0ICh6ZXJvX3plcm9fZiwgemVyb196ZXJvX2YpLCBmYWxzZV9mYWxzZV9mKTsKKyAg Q0hFQ0tfVkVDVE9SX1ZBTFVFICgyLCB0ZXN0X0NPTVBBUklTT05fR1Rfb25fdmVjX2Zsb2F0ICh6 ZXJvX29uZV9mLCBvbmVfemVyb19mKSwgZmFsc2VfdHJ1ZV9mKTsKIH0KIAogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKLS0gCjIuMjYuMi43LmcxOWRiOWNmYjY4LmRpcnR5Cgo= --=-9I2Jilwed2eQpPBKP8U6--