Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pL89m-0001rh-5D for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Jan 2023 19:43:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pL89l-00087q-1O for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Jan 2023 19:43:33 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pL89k-00087h-La for pgsql-hackers@lists.postgresql.org; Thu, 26 Jan 2023 19:43:32 +0000 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pL89g-0004BC-IT for pgsql-hackers@lists.postgresql.org; Thu, 26 Jan 2023 19:43:32 +0000 Received: by mail-wr1-x434.google.com with SMTP id q5so2915345wrv.0 for ; Thu, 26 Jan 2023 11:43:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=JpQDy9G8tvN6GVYs9g3mTyZbLTfftcFn6bMvEx3vsaQ=; b=gPD3Krj4ty35O0NWg0/EMtzGkow+E88GJlRUDprXo65XqIApXRuLGE0/m4JLj8D9Ix 185ercFUuwBNZ6FeLCUtzbX8b/jZnZgFYf1CNEjcNWnD26MORQDRd/mBW2axIVpVQO1l Ra6y02JaM6IWhlv1Ls7aNwya5+o3EO+gnsQZqbbU4YiST6qMH8TQeC3SbXIegQEUbR+w PODXc01Y+LP0mWQSPEWfFQCMjcDpvQ5eG57u8MP852QpQ12YhUAbmJ8B2bvzPZMmHyW5 cUGWGcM77d/FIM0bBBYsRx39LNsvWAvVsHV+fumhAv79GMhfWBAM6xX+VOO90YV13Quz MJRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=JpQDy9G8tvN6GVYs9g3mTyZbLTfftcFn6bMvEx3vsaQ=; b=FqNDDqC5rkqjt9gxgwwe3zNXz5dza+wTNjuS5m5+8Efx+e7zYmDfbbiqXp3wjD8PRh +KkVJvQgHkDZX7FcY62ZoGUeubRKGC/nUQVoBGhLGwdbP3bc9t4BsDnj5136us082C6s E9ASGF2N+fDRXBGw7qenFrNY4ZyQuadVOtBRJO6r+TPoaejd4TO9Uc2IbyMhPgD3C2ss dZO7JDhKRQrRnkEHjoO0mEJufV05j8PS9DFhnkSMz+TD1iOahPijyrANHyiP/nnc0j9V 4Sx6uzCuRD929LjC1xP4tuoa7AXL3YCiYOnfvcVsMGW/5e7pXee1CR0zhwHQfv3dTk5X pl6g== X-Gm-Message-State: AFqh2kruTzyqhhC5pDeHNHdUepWELNtwSRiZuT3pMsEto+Dor8dammbl pkxYUAuXpBAtq4Ibgfh/tQw= X-Google-Smtp-Source: AMrXdXuAgZZbW90B2OaaosXWeSUDRpKdHUDJub8sPPgwXggyTzCIy3bOYPHfdjajnKyQG/UkKc8YTQ== X-Received: by 2002:a5d:5150:0:b0:242:3353:26ed with SMTP id u16-20020a5d5150000000b00242335326edmr32319228wrt.62.1674762207387; Thu, 26 Jan 2023 11:43:27 -0800 (PST) Received: from [192.168.15.226] ([54.239.6.190]) by smtp.gmail.com with ESMTPSA id a17-20020a5d53d1000000b0024cb961b6aesm2003206wrw.104.2023.01.26.11.43.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Jan 2023 11:43:27 -0800 (PST) Content-Type: multipart/mixed; boundary="------------CB9qPWOXQD9E4LvkPAv3bTWb" Message-ID: Date: Thu, 26 Jan 2023 20:43:25 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: Helper functions for wait_for_catchup() in Cluster.pm Content-Language: en-US To: Alvaro Herrera Cc: PostgreSQL Hackers References: <20230126094241.yjofprg2xcu43kop@alvherre.pgsql> From: "Drouvot, Bertrand" In-Reply-To: <20230126094241.yjofprg2xcu43kop@alvherre.pgsql> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------CB9qPWOXQD9E4LvkPAv3bTWb Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 1/26/23 10:42 AM, Alvaro Herrera wrote: > On 2023-Jan-26, Drouvot, Bertrand wrote: > >> On 1/24/23 7:27 PM, Alvaro Herrera wrote: > >>> 1. I don't think wait_for_write_catchup is necessary, because >>> calling wait_for_catchup() and omitting the 'mode' and 'lsn' arguments >>> would already do the same thing. Having a closer look, it does not seem to be the case. The default mode in wait_for_catchup() is 'replay' and the default mode for the lsn is 'write'. But in wait_for_write_catchup() we are making use of 'write' for both. > >>> 2. Because wait_for_replay_catchup is an instance method, passing the >>> second node as argument is needlessly noisy, because that's already >>> known as $self. So we can just say >>> >>> $primary_node->wait_for_replay_catchup($standby_node); >> >> Yeah, but same here, there is places where the node passed as the second argument is not the "$self": >> >> src/bin/pg_rewind/t/007_standby_source.pl:$node_b->wait_for_replay_catchup('node_c', $node_a); >> src/test/recovery/t/001_stream_rep.pl:$node_standby_1->wait_for_replay_catchup($node_standby_2, $node_primary); >> src/test/recovery/t/001_stream_rep.pl:$node_standby_1->wait_for_replay_catchup($node_standby_2, $node_primary); >> src/test/recovery/t/001_stream_rep.pl: $node_standby_1->wait_for_replay_catchup($node_standby_2, $node_primary); >> >> So it looks like there is still a need for wait_for_replay_catchup() with 2 parameters. > > Ah, cascading replication. In that case, let's make the second > parameter optional. If it's not given, $self is used. > Good point, done in V3 attached. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------CB9qPWOXQD9E4LvkPAv3bTWb Content-Type: text/plain; charset=UTF-8; name="v3-0001-wait_for_catchup_helper_functions.patch" Content-Disposition: attachment; filename="v3-0001-wait_for_catchup_helper_functions.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfcmV3aW5kL3QvMDA3X3N0YW5kYnlfc291cmNlLnBs IGIvc3JjL2Jpbi9wZ19yZXdpbmQvdC8wMDdfc3RhbmRieV9zb3VyY2UucGwKaW5kZXggNTI2 NDRjMmMwZC4uNzIzNmEzYjE3NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19yZXdpbmQvdC8w MDdfc3RhbmRieV9zb3VyY2UucGwKKysrIGIvc3JjL2Jpbi9wZ19yZXdpbmQvdC8wMDdfc3Rh bmRieV9zb3VyY2UucGwKQEAgLTc0LDkgKzc0LDggQEAgJG5vZGVfYS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCiAJIklOU0VSVCBJTlRPIHRibDEgdmFsdWVzICgnaW4gQSwgYmVmb3JlIHBy b21vdGlvbicpIik7CiAkbm9kZV9hLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NIRUNLUE9J TlQnKTsKIAotbXkgJGxzbiA9ICRub2RlX2EtPmxzbignd3JpdGUnKTsKLSRub2RlX2EtPndh aXRfZm9yX2NhdGNodXAoJ25vZGVfYicsICd3cml0ZScsICRsc24pOwotJG5vZGVfYi0+d2Fp dF9mb3JfY2F0Y2h1cCgnbm9kZV9jJywgJ3dyaXRlJywgJGxzbik7Ciskbm9kZV9hLT53YWl0 X2Zvcl93cml0ZV9jYXRjaHVwKCdub2RlX2InLCAkbm9kZV9hKTsKKyRub2RlX2ItPndhaXRf Zm9yX3dyaXRlX2NhdGNodXAoJ25vZGVfYycsICRub2RlX2EpOwogCiAjIFByb21vdGUgQwog IwpAQCAtMTYwLDcgKzE1OSw3IEBAIGluIEEsIGFmdGVyIEMgd2FzIHByb21vdGVkCiAkbm9k ZV9hLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiSU5TRVJUIElOVE8gdGJsMSB2YWx1ZXMg KCdpbiBBLCBhZnRlciByZXdpbmQnKSIpOwogCi0kbm9kZV9iLT53YWl0X2Zvcl9jYXRjaHVw KCdub2RlX2MnLCAncmVwbGF5JywgJG5vZGVfYS0+bHNuKCd3cml0ZScpKTsKKyRub2RlX2It PndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCdub2RlX2MnLCAkbm9kZV9hKTsKIAogY2hlY2tf cXVlcnkoCiAJJ1NFTEVDVCAqIEZST00gdGJsMScsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9t b2R1bGVzL2JyaW4vdC8wMl93YWxfY29uc2lzdGVuY3kucGwgYi9zcmMvdGVzdC9tb2R1bGVz L2JyaW4vdC8wMl93YWxfY29uc2lzdGVuY3kucGwKaW5kZXggNTk4M2VmMjA4ZS4uOGIyYjI0 NGZlYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9icmluL3QvMDJfd2FsX2NvbnNp c3RlbmN5LnBsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvYnJpbi90LzAyX3dhbF9jb25zaXN0 ZW5jeS5wbApAQCAtNzAsNiArNzAsNiBAQCBteSAoJHJldCwgJG91dCwgJGVycikgPSAkd2hp c2tleS0+cHNxbCgKIAl9KTsKIGNtcF9vaygkb3V0LCAnPj0nLCAxKTsKIAotJHdoaXNrZXkt PndhaXRfZm9yX2NhdGNodXAoJGNoYXJsaWUsICdyZXBsYXknLCAkd2hpc2tleS0+bHNuKCdp bnNlcnQnKSk7Ciskd2hpc2tleS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAoJGNoYXJsaWUp OwogCiBkb25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3BlcmwvUG9zdGdy ZVNRTC9UZXN0L0NsdXN0ZXIucG0gYi9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9D bHVzdGVyLnBtCmluZGV4IDA0OTIxY2EzYTMuLjNiYTE1NDU2ODggMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0KKysrIGIvc3JjL3Rlc3Qv cGVybC9Qb3N0Z3JlU1FML1Rlc3QvQ2x1c3Rlci5wbQpAQCAtMjcwOSw2ICsyNzA5LDQ1IEBA IHN1YiB3YWl0X2Zvcl9jYXRjaHVwCiAJcmV0dXJuOwogfQogCisjIE5vdyBkZWZpbmluZyBo ZWxwZXIgZnVuY3Rpb25zIHdhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCkgYW5kCisjIHdhaXRf Zm9yX3dyaXRlX2NhdGNodXAoKS4KKyMgUGxlYXNlIG5vdGUgdGhhdCB3YWl0X2Zvcl9mbHVz aF9jYXRjaHVwKCkgYW5kIHdhaXRfZm9yX3NlbnRfY2F0Y2h1cCgpIGFyZSBub3QKKyMgZGVm aW5lZCBhczogMSkgdGhleSBhcmUgbm90IHVzZWQgeWV0IGFuZCAyKSBpdCBsZXRzIHRoZWly IGF1dGhvciAoaWYgYW55KQorIyBkZWNpZGUgdGhlIG5vZGUtPmxzbigpIG1vZGUgdG8gYmUg dXNlZC4KKworPXBvZAorCis9aXRlbSAkbm9kZS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAo c3RhbmRieV9uYW1lLCBub2RlKQorCitIZWxwZXIgZnVuY3Rpb24gZm9yIHdhaXRfZm9yX2Nh dGNodXAgd2hlbiB3YWl0aW5nIGZvciB0aGUgcmVwbGF5X2xzbiBjb2x1bW4KK3RvIGNhdGNo dXAuCisKKz1jdXQKKworc3ViIHdhaXRfZm9yX3JlcGxheV9jYXRjaHVwCit7CisJbXkgKCRz ZWxmLCAkc3RhbmRieV9uYW1lLCAkbm9kZSkgPSBAXzsKKwkkbm9kZSA9IGRlZmluZWQoJG5v ZGUpID8gJG5vZGUgOiAkc2VsZjsKKworCSRzZWxmLT53YWl0X2Zvcl9jYXRjaHVwKCRzdGFu ZGJ5X25hbWUsICdyZXBsYXknLCAkbm9kZS0+bHNuKCdmbHVzaCcpKTsKK30KKworPXBvZAor Cis9aXRlbSAkbm9kZS0+d2FpdF9mb3Jfd3JpdGVfY2F0Y2h1cChzdGFuZGJ5X25hbWUsIG5v ZGUpCisKK0hlbHBlciBmdW5jdGlvbiBmb3Igd2FpdF9mb3JfY2F0Y2h1cCB3aGVuIHdhaXRp bmcgZm9yIHRoZSB3cml0ZV9sc24gY29sdW1uCit0byBjYXRjaHVwLgorCis9Y3V0CisKK3N1 YiB3YWl0X2Zvcl93cml0ZV9jYXRjaHVwCit7CisJbXkgKCRzZWxmLCAkc3RhbmRieV9uYW1l LCAkbm9kZSkgPSBAXzsKKworCSRzZWxmLT53YWl0X2Zvcl9jYXRjaHVwKCRzdGFuZGJ5X25h bWUsICd3cml0ZScsICRub2RlLT5sc24oJ3dyaXRlJykpOworfQorCiA9cG9kCiAKID1pdGVt ICRub2RlLT53YWl0X2Zvcl9zbG90X2NhdGNodXAoc2xvdF9uYW1lLCBtb2RlLCB0YXJnZXRf bHNuKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDFfc3RyZWFtX3JlcC5w bCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDAxX3N0cmVhbV9yZXAucGwKaW5kZXggMjNhOTBk ZDg1Yi4uNzY4NDY5MDVhNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDFf c3RyZWFtX3JlcC5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAwMV9zdHJlYW1fcmVw LnBsCkBAIC00Nyw5ICs0Nyw4IEBAICRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAogCSJDUkVBVEUgVEFCTEUgdGFiX2ludCBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVz KDEsMTAwMikgQVMgYSIpOwogCiAjIFdhaXQgZm9yIHN0YW5kYnlzIHRvIGNhdGNoIHVwCi1t eSAkcHJpbWFyeV9sc24gPSAkbm9kZV9wcmltYXJ5LT5sc24oJ3dyaXRlJyk7Ci0kbm9kZV9w cmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnlfMSwgJ3JlcGxheScsICRw cmltYXJ5X2xzbik7Ci0kbm9kZV9zdGFuZGJ5XzEtPndhaXRfZm9yX2NhdGNodXAoJG5vZGVf c3RhbmRieV8yLCAncmVwbGF5JywgJHByaW1hcnlfbHNuKTsKKyRub2RlX3ByaW1hcnktPndh aXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnlfMSk7Ciskbm9kZV9zdGFuZGJ5 XzEtPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnlfMiwgJG5vZGVfcHJp bWFyeSk7CiAKIG15ICRyZXN1bHQgPQogICAkbm9kZV9zdGFuZGJ5XzEtPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gdGFiX2ludCIpOwpAQCAtNjYsOSAr NjUsOCBAQCAkbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiQ1JFQVRF IFNFUVVFTkNFIHNlcTE7IFNFTEVDVCBuZXh0dmFsKCdzZXExJykiKTsKIAogIyBXYWl0IGZv ciBzdGFuZGJ5cyB0byBjYXRjaCB1cAotJHByaW1hcnlfbHNuID0gJG5vZGVfcHJpbWFyeS0+ bHNuKCd3cml0ZScpOwotJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9z dGFuZGJ5XzEsICdyZXBsYXknLCAkcHJpbWFyeV9sc24pOwotJG5vZGVfc3RhbmRieV8xLT53 YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnlfMiwgJ3JlcGxheScsICRwcmltYXJ5X2xz bik7Ciskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9kZV9zdGFu ZGJ5XzEpOworJG5vZGVfc3RhbmRieV8xLT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9k ZV9zdGFuZGJ5XzIsICRub2RlX3ByaW1hcnkpOwogCiAkcmVzdWx0ID0gJG5vZGVfc3RhbmRi eV8xLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2VxMSIpOwogcHJp bnQgInN0YW5kYnkgMTogJHJlc3VsdFxuIjsKQEAgLTM3MiwxMCArMzcwLDggQEAgc3ViIHJl cGxheV9jaGVjawogCW15ICRuZXd2YWwgPSAkbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKIAkJJ0lOU0VSVCBJTlRPIHJlcGxheWVkKHZhbCkgU0VMRUNUIGNvYWxlc2Nl KG1heCh2YWwpLDApICsgMSBBUyBuZXd2YWwgRlJPTSByZXBsYXllZCBSRVRVUk5JTkcgdmFs JwogCSk7Ci0JbXkgJHByaW1hcnlfbHNuID0gJG5vZGVfcHJpbWFyeS0+bHNuKCd3cml0ZScp OwotCSRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieV8xLCAn cmVwbGF5JywgJHByaW1hcnlfbHNuKTsKLQkkbm9kZV9zdGFuZGJ5XzEtPndhaXRfZm9yX2Nh dGNodXAoJG5vZGVfc3RhbmRieV8yLCAncmVwbGF5JywKLQkJJHByaW1hcnlfbHNuKTsKKwkk bm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5XzEp OworCSRub2RlX3N0YW5kYnlfMS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAoJG5vZGVfc3Rh bmRieV8yLCAkbm9kZV9wcmltYXJ5KTsKIAogCSRub2RlX3N0YW5kYnlfMS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCiAJCXFxW1NFTEVDVCAxIEZST00gcmVwbGF5ZWQgV0hFUkUgdmFsID0g JG5ld3ZhbF0pCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAxMF9sb2dpY2Fs X2RlY29kaW5nX3RpbWVsaW5lcy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDEwX2xvZ2lj YWxfZGVjb2RpbmdfdGltZWxpbmVzLnBsCmluZGV4IGViMWEzYjZlZjguLjU3YjMyYTcwYTcg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDEwX2xvZ2ljYWxfZGVjb2Rpbmdf dGltZWxpbmVzLnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDEwX2xvZ2ljYWxfZGVj b2RpbmdfdGltZWxpbmVzLnBsCkBAIC0xMzUsNyArMTM1LDcgQEAgY21wX29rKAogCSd4bWlu IG9uIHBoeXNpY2FsIHNsb3QgbXVzdCBub3QgYmUgbG93ZXIgdGhhbiBjYXRhbG9nX3htaW4n KTsKIAogJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdDSEVDS1BPSU5U Jyk7Ci0kbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3JlcGxpY2EsICd3 cml0ZScpOworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3Jfd3JpdGVfY2F0Y2h1cCgkbm9kZV9y ZXBsaWNhLCAkbm9kZV9wcmltYXJ5KTsKIAogIyBCb29tLCBjcmFzaAogJG5vZGVfcHJpbWFy eS0+c3RvcCgnaW1tZWRpYXRlJyk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90 LzAyN19zdHJlYW1fcmVncmVzcy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDI3X3N0cmVh bV9yZWdyZXNzLnBsCmluZGV4IDY5ZDZkZGYyODEuLjEzNDgyYWRiYWYgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDI3X3N0cmVhbV9yZWdyZXNzLnBsCisrKyBiL3NyYy90 ZXN0L3JlY292ZXJ5L3QvMDI3X3N0cmVhbV9yZWdyZXNzLnBsCkBAIC04Niw4ICs4Niw3IEBA ICRub2RlX3ByaW1hcnktPnBzcWwoJ3JlZ3Jlc3Npb24nLAogCSJzZWxlY3Qgc2V0dmFsKHNl cXJlbGlkLCBuZXh0dmFsKHNlcXJlbGlkKSkgZnJvbSBwZ19zZXF1ZW5jZSIpOwogCiAjIFdh aXQgZm9yIHN0YW5kYnkgdG8gY2F0Y2ggdXAKLSRub2RlX3ByaW1hcnktPndhaXRfZm9yX2Nh dGNodXAoJG5vZGVfc3RhbmRieV8xLCAncmVwbGF5JywKLQkkbm9kZV9wcmltYXJ5LT5sc24o J2luc2VydCcpKTsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRu b2RlX3N0YW5kYnlfMSk7CiAKICMgUGVyZm9ybSBhIGxvZ2ljYWwgZHVtcCBvZiBwcmltYXJ5 IGFuZCBzdGFuZGJ5LCBhbmQgY2hlY2sgdGhhdCB0aGV5IG1hdGNoCiBjb21tYW5kX29rKApk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzBfc3RhdHNfY2xlYW51cF9yZXBs aWNhLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzBfc3RhdHNfY2xlYW51cF9yZXBsaWNh LnBsCmluZGV4IGYxMTIxZTRiMTIuLmNlZjg5MDMwOTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDMwX3N0YXRzX2NsZWFudXBfcmVwbGljYS5wbAorKysgYi9zcmMvdGVz dC9yZWNvdmVyeS90LzAzMF9zdGF0c19jbGVhbnVwX3JlcGxpY2EucGwKQEAgLTM4LDggKzM4 LDcgQEAgZHJvcF90YWJsZV9ieV9vaWQoJ3Bvc3RncmVzJywgJHRhYmxlb2lkKTsKIGRyb3Bf ZnVuY3Rpb25fYnlfb2lkKCdwb3N0Z3JlcycsICRmdW5jb2lkKTsKIAogJHNlY3QgPSAncG9z dCBkcm9wJzsKLW15ICRwcmltYXJ5X2xzbiA9ICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gn KTsKLSRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3Jl cGxheScsICRwcmltYXJ5X2xzbik7Ciskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlf Y2F0Y2h1cCgkbm9kZV9zdGFuZGJ5KTsKIHRlc3Rfc3RhbmRieV9mdW5jX3RhYl9zdGF0c19z dGF0dXMoJ3Bvc3RncmVzJywKIAkkZGJvaWQsICR0YWJsZW9pZCwgJGZ1bmNvaWQsICdmJyk7 CiAKQEAgLTQ5LDggKzQ4LDcgQEAgdGVzdF9zdGFuZGJ5X2Z1bmNfdGFiX3N0YXRzX3N0YXR1 cygncG9zdGdyZXMnLAogJHNlY3QgPSAic2NoZW1hIGNyZWF0aW9uIjsKIAogJG5vZGVfcHJp bWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgU0NIRU1BIGRyb3Bfc2NoZW1h X3Rlc3QxIik7Ci0kcHJpbWFyeV9sc24gPSAkbm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJyk7 Ci0kbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBs YXknLCAkcHJpbWFyeV9sc24pOworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfcmVwbGF5X2Nh dGNodXAoJG5vZGVfc3RhbmRieSk7CiAKICgkZGJvaWQsICR0YWJsZW9pZCwgJGZ1bmNvaWQp ID0KICAgcG9wdWxhdGVfc3RhbmRieV9zdGF0cygncG9zdGdyZXMnLCAnZHJvcF9zY2hlbWFf dGVzdDEnKTsKQEAgLTYxLDggKzU5LDcgQEAgJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJEUk9QIFNDSEVNQSBkcm9wX3NjaGVtYV90ZXN0MSBDQVNDQURFIik7CiAK ICRzZWN0ID0gInBvc3Qgc2NoZW1hIGRyb3AiOwogCi0kcHJpbWFyeV9sc24gPSAkbm9kZV9w cmltYXJ5LT5sc24oJ2ZsdXNoJyk7Ci0kbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVw KCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkcHJpbWFyeV9sc24pOworJG5vZGVfcHJpbWFy eS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAoJG5vZGVfc3RhbmRieSk7CiAKICMgdmVyaWZ5 IHRhYmxlIGFuZCBmdW5jdGlvbiBzdGF0cyByZW1vdmVkIGZyb20gc3RhbmRieQogdGVzdF9z dGFuZGJ5X2Z1bmNfdGFiX3N0YXRzX3N0YXR1cygncG9zdGdyZXMnLApAQCAtNzQsOCArNzEs NyBAQCB0ZXN0X3N0YW5kYnlfZnVuY190YWJfc3RhdHNfc3RhdHVzKCdwb3N0Z3JlcycsCiAk c2VjdCA9ICJjcmVhdGVkYiI7CiAKICRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiQ1JFQVRFIERBVEFCQVNFIHRlc3QiKTsKLSRwcmltYXJ5X2xzbiA9ICRub2RlX3By aW1hcnktPmxzbignZmx1c2gnKTsKLSRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAo JG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRwcmltYXJ5X2xzbik7Ciskbm9kZV9wcmltYXJ5 LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5KTsKIAogKCRkYm9pZCwg JHRhYmxlb2lkLCAkZnVuY29pZCkgPSBwb3B1bGF0ZV9zdGFuZGJ5X3N0YXRzKCd0ZXN0Jywg J3B1YmxpYycpOwogCkBAIC04NSw4ICs4MSw3IEBAIHRlc3Rfc3RhbmRieV9kYl9zdGF0c19z dGF0dXMoJ3Rlc3QnLCAkZGJvaWQsICd0Jyk7CiAKICRub2RlX3ByaW1hcnktPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiRFJPUCBEQVRBQkFTRSB0ZXN0Iik7CiAkc2VjdCAgICAgICAgPSAi cG9zdCBkcm9wZGIiOwotJHByaW1hcnlfbHNuID0gJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVz aCcpOwotJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAn cmVwbGF5JywgJHByaW1hcnlfbHNuKTsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxh eV9jYXRjaHVwKCRub2RlX3N0YW5kYnkpOwogCiAjIFRlc3QgdGhhdCB0aGUgc3RhdHMgd2Vy ZSBjbGVhbmVkIHVwIG9uIHN0YW5kYnkKICMgTm90ZSB0aGF0IHRoaXMgY29ubmVjdHMgdG8g J3Bvc3RncmVzJyBidXQgcHJvdmlkZXMgdGhlIGRib2lkIG9mIGRyb3BwZWQgZGIKQEAgLTEz Nyw4ICsxMzIsNyBAQCBzdWIgcG9wdWxhdGVfc3RhbmRieV9zdGF0cwogCSRub2RlX3ByaW1h cnktPnNhZmVfcHNxbCgkY29ubmVjdF9kYiwKIAkJIkNSRUFURSBGVU5DVElPTiAkc2NoZW1h LmRyb3BfZnVuY190ZXN0MSgpIFJFVFVSTlMgVk9JRCBBUyAnc2VsZWN0IDI7JyBMQU5HVUFH RSBTUUwgSU1NVVRBQkxFIgogCSk7Ci0JbXkgJHByaW1hcnlfbHNuID0gJG5vZGVfcHJpbWFy eS0+bHNuKCdmbHVzaCcpOwotCSRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5v ZGVfc3RhbmRieSwgJ3JlcGxheScsICRwcmltYXJ5X2xzbik7CisJJG5vZGVfcHJpbWFyeS0+ d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAoJG5vZGVfc3RhbmRieSk7CiAKIAkjIGNvbGxlY3Qg b2JqZWN0IG9pZHMKIAlteSAkZGJvaWQgPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJGNv bm5lY3RfZGIsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzMV9yZWNvdmVy eV9jb25mbGljdC5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDMxX3JlY292ZXJ5X2NvbmZs aWN0LnBsCmluZGV4IDg3NWFmYjhlM2MuLjg0Mzc1ZmFjY2IgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlY292ZXJ5L3QvMDMxX3JlY292ZXJ5X2NvbmZsaWN0LnBsCisrKyBiL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDMxX3JlY292ZXJ5X2NvbmZsaWN0LnBsCkBAIC02Myw4ICs2Myw3IEBA IENSRUFURSBUQUJMRSAke3RhYmxlMX0oYSBpbnQsIGIgaW50KTsKIElOU0VSVCBJTlRPICR0 YWJsZTEgU0VMRUNUIGkgJSAzLCAwIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMjApIGk7CiBD UkVBVEUgVEFCTEUgJHt0YWJsZTJ9KGEgaW50LCBiIGludCk7CiBdKTsKLW15ICRwcmltYXJ5 X2xzbiA9ICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKTsKLSRub2RlX3ByaW1hcnktPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRwcmltYXJ5X2xzbik7 Ciskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5 KTsKIAogCiAjIGEgbG9uZ3J1bm5pbmcgcHNxbCB0aGF0IHdlIGNhbiB1c2UgdG8gdHJpZ2dl ciBjb25mbGljdHMKQEAgLTk3LDggKzk2LDcgQEAgJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3Fs KAogCUJFR0lOOyBMT0NLICR0YWJsZTE7IENPTU1JVDsKIAldKTsKIAotJHByaW1hcnlfbHNu ID0gJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpOwotJG5vZGVfcHJpbWFyeS0+d2FpdF9m b3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJHByaW1hcnlfbHNuKTsKKyRu b2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnkpOwog CiBteSAkY3Vyc29yMSA9ICJ0ZXN0X3JlY292ZXJ5X2NvbmZsaWN0X2N1cnNvciI7CiAKQEAg LTEyNCw4ICsxMjIsNyBAQCAkbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJHRlc3RfZGIsIHFx W1ZBQ1VVTSAkdGFibGUxO10pOwogIyBmaW5pc2hlZCwgc28gd2FpdGluZyBmb3IgY2F0Y2h1 cCBlbnN1cmVzIHRoYXQgdGhlcmUgaXMgbm8gcmFjZSBiZXR3ZWVuCiAjIGVuY291bnRlcmlu ZyB0aGUgcmVjb3ZlcnkgY29uZmxpY3Qgd2hpY2ggY2F1c2VzIHRoZSBkaXNjb25uZWN0IGFu ZCBjaGVja2luZwogIyB0aGUgbG9nZmlsZSBmb3IgdGhlIHRlcm1pbmF0ZWQgY29ubmVjdGlv bi4KLSRwcmltYXJ5X2xzbiA9ICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKTsKLSRub2Rl X3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRw cmltYXJ5X2xzbik7Ciskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgk bm9kZV9zdGFuZGJ5KTsKIAogY2hlY2tfY29uZmxpY3RfbG9nKCJVc2VyIHdhcyBob2xkaW5n IHNoYXJlZCBidWZmZXIgcGluIGZvciB0b28gbG9uZyIpOwogcmVjb25uZWN0X2FuZF9jbGVh cigpOwpAQCAtMTM4LDggKzEzNSw3IEBAICRleHBlY3RlZF9jb25mbGljdHMrKzsKIAogJG5v ZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCR0ZXN0X2RiLAogCXFxW0lOU0VSVCBJTlRPICR0YWJs ZTEgU0VMRUNUIGksIDAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwyMCkgaV0pOwotJHByaW1h cnlfbHNuID0gJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpOwotJG5vZGVfcHJpbWFyeS0+ d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJHByaW1hcnlfbHNu KTsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5k YnkpOwogCiAjIERFQ0xBUkUgYW5kIEZFVENIIGZyb20gY3Vyc29yIG9uIHRoZSBzdGFuZGJ5 CiAkcHNxbF9zdGFuZGJ5e3N0ZGlufSAuPSBxcVsKQEAgLTE2MCw4ICsxNTYsNyBAQCAkbm9k ZV9wcmltYXJ5LT5zYWZlX3BzcWwoJHRlc3RfZGIsCiAkbm9kZV9wcmltYXJ5LT5zYWZlX3Bz cWwoJHRlc3RfZGIsIHFxW1ZBQ1VVTSAkdGFibGUxO10pOwogCiAjIFdhaXQgZm9yIGF0dGVt cHRlZCByZXBsYXkgb2YgUFJVTkUgcmVjb3JkcwotJHByaW1hcnlfbHNuID0gJG5vZGVfcHJp bWFyeS0+bHNuKCdmbHVzaCcpOwotJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgk bm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJHByaW1hcnlfbHNuKTsKKyRub2RlX3ByaW1hcnkt PndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnkpOwogCiBjaGVja19jb25m bGljdF9sb2coCiAJIlVzZXIgcXVlcnkgbWlnaHQgaGF2ZSBuZWVkZWQgdG8gc2VlIHJvdyB2 ZXJzaW9ucyB0aGF0IG11c3QgYmUgcmVtb3ZlZCIpOwpAQCAtMTg0LDggKzE3OSw3IEBAIG9r KHB1bXBfdW50aWxfc3RhbmRieShxci9eMSQvbSksICIkc2VjdDogY29uZmxpY3RpbmcgbG9j ayBhY3F1aXJlZCIpOwogIyBEUk9QIFRBQkxFIGNvbnRhaW5pbmcgYmxvY2sgd2hpY2ggc3Rh bmRieSBoYXMgaW4gYSBwaW5uZWQgYnVmZmVyCiAkbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwo JHRlc3RfZGIsIHFxW0RST1AgVEFCTEUgJHRhYmxlMTtdKTsKIAotJHByaW1hcnlfbHNuID0g JG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpOwotJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3Jf Y2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJHByaW1hcnlfbHNuKTsKKyRub2Rl X3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnkpOwogCiBj aGVja19jb25mbGljdF9sb2coIlVzZXIgd2FzIGhvbGRpbmcgYSByZWxhdGlvbiBsb2NrIGZv ciB0b28gbG9uZyIpOwogcmVjb25uZWN0X2FuZF9jbGVhcigpOwpAQCAtMjEzLDggKzIwNyw3 IEBAIG9rKHB1bXBfdW50aWxfc3RhbmRieShxci9eNjAwMCQvbSksCiAjIHN0YW5kYnkKICRu b2RlX3ByaW1hcnktPnNhZmVfcHNxbCgkdGVzdF9kYiwgcXFbRFJPUCBUQUJMRVNQQUNFICR0 YWJsZXNwYWNlMTtdKTsKIAotJHByaW1hcnlfbHNuID0gJG5vZGVfcHJpbWFyeS0+bHNuKCdm bHVzaCcpOwotJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5 LCAncmVwbGF5JywgJHByaW1hcnlfbHNuKTsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX3Jl cGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnkpOwogCiBjaGVja19jb25mbGljdF9sb2coCiAJ IlVzZXIgd2FzIG9yIG1pZ2h0IGhhdmUgYmVlbiB1c2luZyB0YWJsZXNwYWNlIHRoYXQgbXVz dCBiZSBkcm9wcGVkIik7CkBAIC0yNTUsOCArMjQ4LDcgQEAgSU5TRVJUIElOVE8gJHRhYmxl MShhKSBWQUxVRVMgKDE3MCk7CiBTRUxFQ1QgdHhpZF9jdXJyZW50KCk7CiBdKTsKIAotJHBy aW1hcnlfbHNuID0gJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpOwotJG5vZGVfcHJpbWFy eS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJHByaW1hcnlf bHNuKTsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0 YW5kYnkpOwogCiAkcHNxbF9zdGFuZGJ5e3N0ZGlufSAuPSBxcVsKICAgICBCRUdJTjsKQEAg LTI4Miw4ICsyNzQsNyBAQCBTRUxFQ1QgJ3dhaXRpbmcnIEZST00gcGdfbG9ja3MgV0hFUkUg bG9ja3R5cGUgPSAncmVsYXRpb24nIEFORCBOT1QgZ3JhbnRlZDsKICMgVkFDVVVNIHdpbGwg cHJ1bmUgYXdheSByb3dzLCBjYXVzaW5nIGEgYnVmZmVyIHBpbiBjb25mbGljdCwgd2hpbGUg c3RhbmRieQogIyBwc3FsIGlzIHdhaXRpbmcgb24gbG9jawogJG5vZGVfcHJpbWFyeS0+c2Fm ZV9wc3FsKCR0ZXN0X2RiLCBxcVtWQUNVVU0gJHRhYmxlMTtdKTsKLSRwcmltYXJ5X2xzbiA9 ICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKTsKLSRub2RlX3ByaW1hcnktPndhaXRfZm9y X2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRwcmltYXJ5X2xzbik7Ciskbm9k ZV9wcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5KTsKIAog Y2hlY2tfY29uZmxpY3RfbG9nKCJVc2VyIHRyYW5zYWN0aW9uIGNhdXNlZCBidWZmZXIgZGVh ZGxvY2sgd2l0aCByZWNvdmVyeS4iKTsKIHJlY29ubmVjdF9hbmRfY2xlYXIoKTsKQEAgLTMx MSw4ICszMDIsNyBAQCAkc2VjdCA9ICJkYXRhYmFzZSBjb25mbGljdCI7CiAKICRub2RlX3By aW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcVtEUk9QIERBVEFCQVNFICR0ZXN0X2Ri O10pOwogCi0kcHJpbWFyeV9sc24gPSAkbm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJyk7Ci0k bm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXkn LCAkcHJpbWFyeV9sc24pOworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNo dXAoJG5vZGVfc3RhbmRieSk7CiAKIGNoZWNrX2NvbmZsaWN0X2xvZygiVXNlciB3YXMgY29u bmVjdGVkIHRvIGEgZGF0YWJhc2UgdGhhdCBtdXN0IGJlIGRyb3BwZWQiKTsKIApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzNfcmVwbGF5X3RzcF9kcm9wcy5wbCBiL3Ny Yy90ZXN0L3JlY292ZXJ5L3QvMDMzX3JlcGxheV90c3BfZHJvcHMucGwKaW5kZXggODk2YjI4 MmJkNC4uY2E0OWUyZDRkYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzNf cmVwbGF5X3RzcF9kcm9wcy5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzM19yZXBs YXlfdHNwX2Ryb3BzLnBsCkBAIC00Miw4ICs0Miw3IEBAIHN1YiB0ZXN0X3RhYmxlc3BhY2UK IAkkbm9kZV9zdGFuZGJ5LT5zdGFydDsKIAogCSMgTWFrZSBzdXJlIHRoZSBjb25uZWN0aW9u IGlzIG1hZGUKLQkkbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5k YnksICd3cml0ZScsCi0JCSRub2RlX3ByaW1hcnktPmxzbignd3JpdGUnKSk7CisJJG5vZGVf cHJpbWFyeS0+d2FpdF9mb3Jfd3JpdGVfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAkbm9kZV9w cmltYXJ5KTsKIAogCSMgRG8gaW1tZWRpYXRlIHNodXRkb3duIGp1c3QgYWZ0ZXIgYSBzZXF1 ZW5jZSBvZiBDUkVBVEUgREFUQUJBU0UgLyBEUk9QCiAJIyBEQVRBQkFTRSAvIERST1AgVEFC TEVTUEFDRS4gVGhpcyBjYXVzZXMgQ1JFQVRFIERBVEFCQVNFIFdBTCByZWNvcmRzCkBAIC02 NSw4ICs2NCw3IEBAIHN1YiB0ZXN0X3RhYmxlc3BhY2UKIAkkcXVlcnkgPX4gcy88U1RSQVRF R1k+LyRzdHJhdGVneS9nOwogCiAJJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICRxdWVyeSk7Ci0JJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9z dGFuZGJ5LCAnd3JpdGUnLAotCQkkbm9kZV9wcmltYXJ5LT5sc24oJ3dyaXRlJykpOworCSRu b2RlX3ByaW1hcnktPndhaXRfZm9yX3dyaXRlX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJG5v ZGVfcHJpbWFyeSk7CiAKIAkjIHNob3cgImNyZWF0ZSBtaXNzaW5nIGRpcmVjdG9yeSIgbG9n IG1lc3NhZ2UKIAkkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK --------------CB9qPWOXQD9E4LvkPAv3bTWb--