Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:44422 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 27936 invoked from network); 22 Jun 2009 18:23:57 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 22 Jun 2009 18:23:57 -0000 Authentication-Results: pb1.pair.com smtp.mail=chris_se@gmx.net; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=chris_se@gmx.net; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmx.net designates 213.165.64.20 as permitted sender) X-PHP-List-Original-Sender: chris_se@gmx.net X-Host-Fingerprint: 213.165.64.20 mail.gmx.net Linux 2.5 (sometimes 2.4) (4) Received: from [213.165.64.20] ([213.165.64.20:47943] helo=mail.gmx.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B8/93-08779-B3CCF3A4 for ; Mon, 22 Jun 2009 14:23:57 -0400 Received: (qmail invoked by alias); 22 Jun 2009 18:23:52 -0000 Received: from p54A16A5A.dip.t-dialin.net (EHLO chris-se.dyndns.org) [84.161.106.90] by mail.gmx.net (mp034) with SMTP; 22 Jun 2009 20:23:52 +0200 X-Authenticated: #186999 X-Provags-ID: V01U2FsdGVkX19wQzELd6twt+aiZAjUGrFGFF9abBtzlxjOl1N8OX y7AFWlYTvj9yHx Received: from [192.168.0.175] (HSI-KBW-082-212-059-033.hsi.kabelbw.de [82.212.59.33]) by chris-se.dyndns.org (Postfix) with ESMTP id 819596B42; Mon, 22 Jun 2009 20:23:47 +0200 (CEST) Message-ID: <4A3FCBF8.4060308@gmx.net> Date: Mon, 22 Jun 2009 20:22:48 +0200 User-Agent: Thunderbird 2.0.0.21 (X11/20090302) MIME-Version: 1.0 To: Lukas Kahwe Smith CC: PHP internals References: <688E0CB7-742C-4861-B636-0C89DC4D8B9A@pooteeweet.org> In-Reply-To: <688E0CB7-742C-4861-B636-0C89DC4D8B9A@pooteeweet.org> X-Enigmail-Version: 0.95.7 Content-Type: multipart/mixed; boundary="------------060102020601090809070308" X-Y-GMX-Trusted: 0 X-FuHaFi: 0.64,0.38 Subject: Re: [PHP-DEV] 5.3.0 stable release From: chris_se@gmx.net (Christian Seiler) --------------060102020601090809070308 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi Lukas, > If issues are found/fixed please send the patches to internals for > review. Based on the importance and risk of the patch will then be > applied, however the next 2 days should really be focused on testing to > make sure we do not have critical issues, minor issues can always be > fixed in 5.3.1 and we better release with known minor issues than big > unknown issues caused by a last minute fix. I have a minor issue with regard to spl_autoload_unregister / spl_autoload_functions and closures in my backlog. I already committed the patch & tests to HEAD [1]. I see this as extremely minor (since spl_autoload_register was fixed a while ago and that is the only *really* important use case in my eyes) so I'm perfectly happy to wait until after 5.3.0 to merge it from HEAD. But just in case I've attached the patch for 5.3 (NEWS file update not included in patch). [1] http://news.php.net/php.cvs/58900 Regards, Christian --------------060102020601090809070308 Content-Type: text/plain; name="spl_autoload.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="spl_autoload.diff" SW5kZXg6IGV4dC9zcGwvcGhwX3NwbC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9yZXBv c2l0b3J5L3BocC1zcmMvZXh0L3NwbC9waHBfc3BsLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9u IDEuNTIuMi4yOC4yLjE3LjIuMzgKZGlmZiAtdSAtcCAtcjEuNTIuMi4yOC4yLjE3LjIuMzgg cGhwX3NwbC5jCi0tLSBleHQvc3BsL3BocF9zcGwuYwkxMyBKdW4gMjAwOSAxNzozMDo1MCAt MDAwMAkxLjUyLjIuMjguMi4xNy4yLjM4CisrKyBleHQvc3BsL3BocF9zcGwuYwkyMiBKdW4g MjAwOSAxODoxNDo1NiAtMDAwMApAQCAtNTA5LDEwICs1MDksMTAgQEAgUEhQX0ZVTkNUSU9O KHNwbF9hdXRvbG9hZF9yZWdpc3RlcikKIAkJCWFsZmkuY2xvc3VyZSA9IHpjYWxsYWJsZTsK IAkJCVpfQUREUkVGX1AoemNhbGxhYmxlKTsKIAotCQkJbGNfbmFtZSA9IGVyZWFsbG9jKGxj X25hbWUsIGZ1bmNfbmFtZV9sZW4gKyAyICsgc2l6ZW9mKHpjYWxsYWJsZS0+dmFsdWUub2Jq LmhhbmRsZSkpOwotCQkJbWVtY3B5KGxjX25hbWUgKyBmdW5jX25hbWVfbGVuLCAmKHpjYWxs YWJsZS0+dmFsdWUub2JqLmhhbmRsZSksCi0JCQkJc2l6ZW9mKHpjYWxsYWJsZS0+dmFsdWUu b2JqLmhhbmRsZSkpOwotCQkJZnVuY19uYW1lX2xlbiArPSBzaXplb2YoemNhbGxhYmxlLT52 YWx1ZS5vYmouaGFuZGxlKTsKKwkJCWxjX25hbWUgPSBlcmVhbGxvYyhsY19uYW1lLCBmdW5j X25hbWVfbGVuICsgMiArIHNpemVvZih6ZW5kX29iamVjdF9oYW5kbGUpKTsKKwkJCW1lbWNw eShsY19uYW1lICsgZnVuY19uYW1lX2xlbiwgJlpfT0JKX0hBTkRMRV9QKHpjYWxsYWJsZSks CisJCQkJc2l6ZW9mKHplbmRfb2JqZWN0X2hhbmRsZSkpOworCQkJZnVuY19uYW1lX2xlbiAr PSBzaXplb2YoemVuZF9vYmplY3RfaGFuZGxlKTsKIAkJCWxjX25hbWVbZnVuY19uYW1lX2xl bl0gPSAnXDAnOwogCQl9CiAKQEAgLTU3OSw2ICs1NzksNyBAQCBQSFBfRlVOQ1RJT04oc3Bs X2F1dG9sb2FkX3VucmVnaXN0ZXIpCiB7CiAJY2hhciAqZnVuY19uYW1lLCAqZXJyb3IgPSBO VUxMOwogCWludCBmdW5jX25hbWVfbGVuOworCWNoYXIgKmxjX25hbWUgPSBOVUxMOwogCXp2 YWwgKnpjYWxsYWJsZTsKIAlpbnQgc3VjY2VzcyA9IEZBSUxVUkU7CiAJemVuZF9mdW5jdGlv biAqc3BsX2Z1bmNfcHRyOwpAQCAtNjA0LDEwICs2MDUsMjAgQEAgUEhQX0ZVTkNUSU9OKHNw bF9hdXRvbG9hZF91bnJlZ2lzdGVyKQogCQllZnJlZShlcnJvcik7CiAJfQogCi0JemVuZF9z dHJfdG9sb3dlcihmdW5jX25hbWUsIGZ1bmNfbmFtZV9sZW4pOworCWxjX25hbWUgPSBzYWZl X2VtYWxsb2MoZnVuY19uYW1lX2xlbiwgMSwgc2l6ZW9mKGxvbmcpICsgMSk7CisJemVuZF9z dHJfdG9sb3dlcl9jb3B5KGxjX25hbWUsIGZ1bmNfbmFtZSwgZnVuY19uYW1lX2xlbik7CisJ ZWZyZWUoZnVuY19uYW1lKTsKKworCWlmIChaX1RZUEVfUCh6Y2FsbGFibGUpID09IElTX09C SkVDVCkgeworCQlsY19uYW1lID0gZXJlYWxsb2MobGNfbmFtZSwgZnVuY19uYW1lX2xlbiAr IDIgKyBzaXplb2YoemVuZF9vYmplY3RfaGFuZGxlKSk7CisJCW1lbWNweShsY19uYW1lICsg ZnVuY19uYW1lX2xlbiwgJlpfT0JKX0hBTkRMRV9QKHpjYWxsYWJsZSksCisJCQlzaXplb2Yo emVuZF9vYmplY3RfaGFuZGxlKSk7CisJCWZ1bmNfbmFtZV9sZW4gKz0gc2l6ZW9mKHplbmRf b2JqZWN0X2hhbmRsZSk7CisJCWxjX25hbWVbZnVuY19uYW1lX2xlbl0gPSAnXDAnOworCX0K IAogCWlmIChTUExfRyhhdXRvbG9hZF9mdW5jdGlvbnMpKSB7Ci0JCWlmIChmdW5jX25hbWVf bGVuID09IHNpemVvZigic3BsX2F1dG9sb2FkX2NhbGwiKS0xICYmICFzdHJjbXAoZnVuY19u YW1lLCAic3BsX2F1dG9sb2FkX2NhbGwiKSkgeworCQlpZiAoZnVuY19uYW1lX2xlbiA9PSBz aXplb2YoInNwbF9hdXRvbG9hZF9jYWxsIiktMSAmJiAhc3RyY21wKGxjX25hbWUsICJzcGxf YXV0b2xvYWRfY2FsbCIpKSB7CiAJCQkvKiByZW1vdmUgYWxsICovCiAJCQl6ZW5kX2hhc2hf ZGVzdHJveShTUExfRyhhdXRvbG9hZF9mdW5jdGlvbnMpKTsKIAkJCUZSRUVfSEFTSFRBQkxF KFNQTF9HKGF1dG9sb2FkX2Z1bmN0aW9ucykpOwpAQCAtNjE2LDE2ICs2MjcsMTYgQEAgUEhQ X0ZVTkNUSU9OKHNwbF9hdXRvbG9hZF91bnJlZ2lzdGVyKQogCQkJc3VjY2VzcyA9IFNVQ0NF U1M7CiAJCX0gZWxzZSB7CiAJCQkvKiByZW1vdmUgc3BlY2lmaWMgKi8KLQkJCXN1Y2Nlc3Mg PSB6ZW5kX2hhc2hfZGVsKFNQTF9HKGF1dG9sb2FkX2Z1bmN0aW9ucyksIGZ1bmNfbmFtZSwg ZnVuY19uYW1lX2xlbisxKTsKKwkJCXN1Y2Nlc3MgPSB6ZW5kX2hhc2hfZGVsKFNQTF9HKGF1 dG9sb2FkX2Z1bmN0aW9ucyksIGxjX25hbWUsIGZ1bmNfbmFtZV9sZW4rMSk7CiAJCQlpZiAo c3VjY2VzcyAhPSBTVUNDRVNTICYmIG9ial9wdHIpIHsKLQkJCQlmdW5jX25hbWUgPSBlcmVh bGxvYyhmdW5jX25hbWUsIGZ1bmNfbmFtZV9sZW4gKyAxICsgc2l6ZW9mKHplbmRfb2JqZWN0 X2hhbmRsZSkpOwotCQkJCW1lbWNweShmdW5jX25hbWUgKyBmdW5jX25hbWVfbGVuLCAmWl9P QkpfSEFORExFX1Aob2JqX3B0ciksIHNpemVvZih6ZW5kX29iamVjdF9oYW5kbGUpKTsKKwkJ CQlsY19uYW1lID0gZXJlYWxsb2MobGNfbmFtZSwgZnVuY19uYW1lX2xlbiArIDIgKyBzaXpl b2YoemVuZF9vYmplY3RfaGFuZGxlKSk7CisJCQkJbWVtY3B5KGxjX25hbWUgKyBmdW5jX25h bWVfbGVuLCAmWl9PQkpfSEFORExFX1Aob2JqX3B0ciksIHNpemVvZih6ZW5kX29iamVjdF9o YW5kbGUpKTsKIAkJCQlmdW5jX25hbWVfbGVuICs9IHNpemVvZih6ZW5kX29iamVjdF9oYW5k bGUpOwotCQkJCWZ1bmNfbmFtZVtmdW5jX25hbWVfbGVuXSA9ICdcMCc7Ci0JCQkJc3VjY2Vz cyA9IHplbmRfaGFzaF9kZWwoU1BMX0coYXV0b2xvYWRfZnVuY3Rpb25zKSwgZnVuY19uYW1l LCBmdW5jX25hbWVfbGVuKzEpOworCQkJCWxjX25hbWVbZnVuY19uYW1lX2xlbl0gPSAnXDAn OworCQkJCXN1Y2Nlc3MgPSB6ZW5kX2hhc2hfZGVsKFNQTF9HKGF1dG9sb2FkX2Z1bmN0aW9u cyksIGxjX25hbWUsIGZ1bmNfbmFtZV9sZW4rMSk7CiAJCQl9CiAJCX0KLQl9IGVsc2UgaWYg KGZ1bmNfbmFtZV9sZW4gPT0gc2l6ZW9mKCJzcGxfYXV0b2xvYWQiKS0xICYmICFzdHJjbXAo ZnVuY19uYW1lLCAic3BsX2F1dG9sb2FkIikpIHsKKwl9IGVsc2UgaWYgKGZ1bmNfbmFtZV9s ZW4gPT0gc2l6ZW9mKCJzcGxfYXV0b2xvYWQiKS0xICYmICFzdHJjbXAobGNfbmFtZSwgInNw bF9hdXRvbG9hZCIpKSB7CiAJCS8qIHJlZ2lzdGVyIHNpbmdsZSBzcGxfYXV0b2xvYWQoKSAq LwogCQl6ZW5kX2hhc2hfZmluZChFRyhmdW5jdGlvbl90YWJsZSksICJzcGxfYXV0b2xvYWQi LCBzaXplb2YoInNwbF9hdXRvbG9hZCIpLCAodm9pZCAqKikgJnNwbF9mdW5jX3B0cik7CiAK QEAgLTYzNSw3ICs2NDYsNyBAQCBQSFBfRlVOQ1RJT04oc3BsX2F1dG9sb2FkX3VucmVnaXN0 ZXIpCiAJCX0KIAl9CiAKLQllZnJlZShmdW5jX25hbWUpOworCWVmcmVlKGxjX25hbWUpOwog CVJFVFVSTl9CT09MKHN1Y2Nlc3MgPT0gU1VDQ0VTUyk7CiB9IC8qIH19fSAqLwogCkBAIC02 NjMsNyArNjc0LDEwIEBAIFBIUF9GVU5DVElPTihzcGxfYXV0b2xvYWRfZnVuY3Rpb25zKQog CQl6ZW5kX2hhc2hfaW50ZXJuYWxfcG9pbnRlcl9yZXNldF9leChTUExfRyhhdXRvbG9hZF9m dW5jdGlvbnMpLCAmZnVuY3Rpb25fcG9zKTsKIAkJd2hpbGUoemVuZF9oYXNoX2hhc19tb3Jl X2VsZW1lbnRzX2V4KFNQTF9HKGF1dG9sb2FkX2Z1bmN0aW9ucyksICZmdW5jdGlvbl9wb3Mp ID09IFNVQ0NFU1MpIHsKIAkJCXplbmRfaGFzaF9nZXRfY3VycmVudF9kYXRhX2V4KFNQTF9H KGF1dG9sb2FkX2Z1bmN0aW9ucyksICh2b2lkICoqKSAmYWxmaSwgJmZ1bmN0aW9uX3Bvcyk7 Ci0JCQlpZiAoYWxmaS0+ZnVuY19wdHItPmNvbW1vbi5zY29wZSkgeworCQkJaWYgKGFsZmkt PmNsb3N1cmUpIHsKKwkJCQlaX0FERFJFRl9QKGFsZmktPmNsb3N1cmUpOworCQkJCWFkZF9u ZXh0X2luZGV4X3p2YWwocmV0dXJuX3ZhbHVlLCBhbGZpLT5jbG9zdXJlKTsKKwkJCX0gZWxz ZSBpZiAoYWxmaS0+ZnVuY19wdHItPmNvbW1vbi5zY29wZSkgewogCQkJCXp2YWwgKnRtcDsK IAkJCQlNQUtFX1NURF9aVkFMKHRtcCk7CiAJCQkJYXJyYXlfaW5pdCh0bXApOwpJbmRleDog ZXh0L3NwbC90ZXN0cy9zcGxfYXV0b2xvYWRfMDEzLnBocHQKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg ZmlsZTogZXh0L3NwbC90ZXN0cy9zcGxfYXV0b2xvYWRfMDEzLnBocHQKZGlmZiAtTiBleHQv c3BsL3Rlc3RzL3NwbF9hdXRvbG9hZF8wMTMucGhwdAotLS0gL2Rldi9udWxsCTEgSmFuIDE5 NzAgMDA6MDA6MDAgLTAwMDAKKysrIGV4dC9zcGwvdGVzdHMvc3BsX2F1dG9sb2FkXzAxMy5w aHB0CTIyIEp1biAyMDA5IDE4OjE0OjU4IC0wMDAwCkBAIC0wLDAgKzEsNTEgQEAKKy0tVEVT VC0tCitTUEw6IHNwbF9hdXRvbG9hZF9mdW5jdGlvbnMoKSB3aXRoIGNsb3N1cmVzIGFuZCBp bnZva2FibGVzCistLUZJTEUtLQorPD9waHAKKyRjbG9zdXJlID0gZnVuY3Rpb24oJGNsYXNz KSB7CisgIGVjaG8gImEgY2FsbGVkXG4iOworfTsKKworY2xhc3MgQXV0b2xvYWRlciB7Cisg IHByaXZhdGUgJGRpcjsKKyAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRkaXIpIHsK KyAgICAkdGhpcy0+ZGlyID0gJGRpcjsKKyAgfQorICBwdWJsaWMgZnVuY3Rpb24gX19pbnZv a2UoJGNsYXNzKSB7CisgICAgdmFyX2R1bXAoInskdGhpcy0+ZGlyfS8kY2xhc3MucGhwIik7 CisgIH0KK30KKworJGFsMSA9IG5ldyBBdXRvbG9hZGVyKCdkMScpOworJGFsMiA9IG5ldyBB dXRvbG9hZGVyKCdkMicpOworCitzcGxfYXV0b2xvYWRfcmVnaXN0ZXIoJGNsb3N1cmUpOwor c3BsX2F1dG9sb2FkX3JlZ2lzdGVyKCRhbDEpOworc3BsX2F1dG9sb2FkX3JlZ2lzdGVyKCRh bDIpOworCit2YXJfZHVtcChzcGxfYXV0b2xvYWRfZnVuY3Rpb25zKCkpOworCis/PgorPT09 RE9ORT09PQorLS1FWFBFQ1RGLS0KK2FycmF5KDMpIHsKKyAgWzBdPT4KKyAgb2JqZWN0KENs b3N1cmUpIyVkICgxKSB7CisgICAgWyJwYXJhbWV0ZXIiXT0+CisgICAgYXJyYXkoMSkgewor ICAgICAgWyIkY2xhc3MiXT0+CisgICAgICBzdHJpbmcoMTApICI8cmVxdWlyZWQ+IgorICAg IH0KKyAgfQorICBbMV09PgorICBvYmplY3QoQXV0b2xvYWRlcikjJWQgKDEpIHsKKyAgICBb ImRpciI6IkF1dG9sb2FkZXIiOnByaXZhdGVdPT4KKyAgICBzdHJpbmcoMikgImQxIgorICB9 CisgIFsyXT0+CisgIG9iamVjdChBdXRvbG9hZGVyKSMlZCAoMSkgeworICAgIFsiZGlyIjoi QXV0b2xvYWRlciI6cHJpdmF0ZV09PgorICAgIHN0cmluZygyKSAiZDIiCisgIH0KK30KKz09 PURPTkU9PT0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBleHQvc3BsL3Rl c3RzL3NwbF9hdXRvbG9hZF8wMTQucGhwdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBleHQv c3BsL3Rlc3RzL3NwbF9hdXRvbG9hZF8wMTQucGhwdApkaWZmIC1OIGV4dC9zcGwvdGVzdHMv c3BsX2F1dG9sb2FkXzAxNC5waHB0Ci0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDow MCAtMDAwMAorKysgZXh0L3NwbC90ZXN0cy9zcGxfYXV0b2xvYWRfMDE0LnBocHQJMjIgSnVu IDIwMDkgMTg6MTQ6NTggLTAwMDAKQEAgLTAsMCArMSw0NyBAQAorLS1URVNULS0KK1NQTDog c3BsX2F1dG9sb2FkX3VucmVnaXN0ZXIoKSB3aXRoIGNsb3N1cmVzIGFuZCBpbnZva2FibGVz CistLUZJTEUtLQorPD9waHAKKyRjbG9zdXJlID0gZnVuY3Rpb24oJGNsYXNzKSB7CisgIGVj aG8gImNsb3N1cmUgY2FsbGVkIHdpdGggY2xhc3MgJGNsYXNzXG4iOworfTsKKworY2xhc3Mg QXV0b2xvYWRlciB7CisgIHByaXZhdGUgJGRpcjsKKyAgcHVibGljIGZ1bmN0aW9uIF9fY29u c3RydWN0KCRkaXIpIHsKKyAgICAkdGhpcy0+ZGlyID0gJGRpcjsKKyAgfQorICBwdWJsaWMg ZnVuY3Rpb24gX19pbnZva2UoJGNsYXNzKSB7CisgICAgZWNobyAoIkF1dG9sb2FkZXIoJ3sk dGhpcy0+ZGlyfScpIGNhbGxlZCB3aXRoICRjbGFzc1xuIik7CisgIH0KK30KKworY2xhc3Mg V29ya2luZ0F1dG9sb2FkZXIgeworICBwdWJsaWMgZnVuY3Rpb24gX19pbnZva2UoJGNsYXNz KSB7CisgICAgZWNobyAoIldvcmtpbmdBdXRvbG9hZGVyKCkgY2FsbGVkIHdpdGggJGNsYXNz XG4iKTsKKyAgICBldmFsKCJjbGFzcyAkY2xhc3MgeyB9Iik7CisgIH0KK30KKworJGFsMSA9 IG5ldyBBdXRvbG9hZGVyKCdkMScpOworJGFsMiA9IG5ldyBXb3JraW5nQXV0b2xvYWRlcign ZDInKTsKKworc3BsX2F1dG9sb2FkX3JlZ2lzdGVyKCRjbG9zdXJlKTsKK3NwbF9hdXRvbG9h ZF9yZWdpc3RlcigkYWwxKTsKK3NwbF9hdXRvbG9hZF9yZWdpc3RlcigkYWwyKTsKKworJHgg PSBuZXcgVGVzdFg7CisKK3NwbF9hdXRvbG9hZF91bnJlZ2lzdGVyKCRjbG9zdXJlKTsKK3Nw bF9hdXRvbG9hZF91bnJlZ2lzdGVyKCRhbDEpOworCiskeSA9IG5ldyBUZXN0WTsKKworPz4K Kz09PURPTkU9PT0KKy0tRVhQRUNULS0KK2Nsb3N1cmUgY2FsbGVkIHdpdGggY2xhc3MgVGVz dFgKK0F1dG9sb2FkZXIoJ2QxJykgY2FsbGVkIHdpdGggVGVzdFgKK1dvcmtpbmdBdXRvbG9h ZGVyKCkgY2FsbGVkIHdpdGggVGVzdFgKK1dvcmtpbmdBdXRvbG9hZGVyKCkgY2FsbGVkIHdp dGggVGVzdFkKKz09PURPTkU9PT0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4 OiBleHQvc3BsL3Rlc3RzL3NwbF9hdXRvbG9hZF9idWc0ODU0MS5waHB0Cj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KUkNTIGZpbGU6IC9yZXBvc2l0b3J5L3BocC1zcmMvZXh0L3NwbC90ZXN0cy9zcGxfYXV0 b2xvYWRfYnVnNDg1NDEucGhwdCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjIuMgpkaWZm IC11IC1wIC1yMS4xLjIuMiBzcGxfYXV0b2xvYWRfYnVnNDg1NDEucGhwdAotLS0gZXh0L3Nw bC90ZXN0cy9zcGxfYXV0b2xvYWRfYnVnNDg1NDEucGhwdAkxMyBKdW4gMjAwOSAxNzozMDo1 MCAtMDAwMAkxLjEuMi4yCisrKyBleHQvc3BsL3Rlc3RzL3NwbF9hdXRvbG9hZF9idWc0ODU0 MS5waHB0CTIyIEp1biAyMDA5IDE4OjE0OjU4IC0wMDAwCkBAIC0yLDIzICsyLDM4IEBACiBT UEw6IHNwbF9hdXRvbG9hZF9yZWdpc3RlcigpIEJ1ZyAjNDg1NDE6IHJlZ2lzdGVyaW5nIG11 bHRpcGxlIGNsb3N1cmVzIGZhaWxzIHdpdGggbWVtbGVha3MKIC0tRklMRS0tCiA8P3BocAor CitjbGFzcyBYIHsKKyAgcHVibGljIGZ1bmN0aW9uIGdldENsb3N1cmUoKSB7CisgICAgcmV0 dXJuIGZ1bmN0aW9uKCRjbGFzcykgeworICAgICAgZWNobyAiYTIgY2FsbGVkXG4iOworICAg IH07CisgIH0KK30KKwogJGEgPSBmdW5jdGlvbiAoJGNsYXNzKSB7CiAgICAgZWNobyAiYSBj YWxsZWRcbiI7CiB9OworJHggPSBuZXcgWDsKKyRhMiA9ICR4LT5nZXRDbG9zdXJlKCk7CiAk YiA9IGZ1bmN0aW9uICgkY2xhc3MpIHsKICAgICBldmFsKCdjbGFzcyAnIC4gJGNsYXNzIC4g J3tmdW5jdGlvbiBfX2NvbnN0cnVjdCgpe2VjaG8gImZvb1xuIjt9fScpOwogICAgIGVjaG8g ImIgY2FsbGVkXG4iOwogfTsKIHNwbF9hdXRvbG9hZF9yZWdpc3RlcigkYSk7CitzcGxfYXV0 b2xvYWRfcmVnaXN0ZXIoJGEyKTsKIHNwbF9hdXRvbG9hZF9yZWdpc3RlcigkYik7CiAKICRj ID0gJGE7CiskYzIgPSAkYTI7CiBzcGxfYXV0b2xvYWRfcmVnaXN0ZXIoJGMpOworc3BsX2F1 dG9sb2FkX3JlZ2lzdGVyKCRjMik7CiAkYyA9IG5ldyBmb287CiA/PgogPT09RE9ORT09PQog LS1FWFBFQ1QtLQogYSBjYWxsZWQKK2EyIGNhbGxlZAogYiBjYWxsZWQKIGZvbwogPT09RE9O RT09PQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK --------------060102020601090809070308--