Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1j4Ojr-0003E7-21 for pgsql-hackers@arkaria.postgresql.org; Wed, 19 Feb 2020 12:46:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1j4Ojo-00014Z-OE for pgsql-hackers@arkaria.postgresql.org; Wed, 19 Feb 2020 12:46:00 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1j4Ojo-00014S-Dc for pgsql-hackers@lists.postgresql.org; Wed, 19 Feb 2020 12:46:00 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1j4OjV-0005kx-PI for pgsql-hackers@postgresql.org; Wed, 19 Feb 2020 12:45:59 +0000 Received: from hnk.local (sp49-97-95-122.msc.spmode.ne.jp [49.97.95.122]) by oss.nttdata.com (Postfix) with ESMTPSA id B2B7E60107; Wed, 19 Feb 2020 21:45:36 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.101.5 at oss.nttdata.com Subject: Re: RecoveryWalAll and RecoveryWalStream wait events To: Kyotaro Horiguchi Cc: pgsql-hackers@postgresql.org References: <124997ee-096a-5d09-d8da-2c7a57d0816e@oss.nttdata.com> <20200218.142016.2107516686265665330.horikyota.ntt@gmail.com> From: Fujii Masao Message-ID: <2ea0c6f1-adcd-f2a2-fe5a-92376ad38432@oss.nttdata.com> Date: Wed, 19 Feb 2020 21:45:36 +0900 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <20200218.142016.2107516686265665330.horikyota.ntt@gmail.com> Content-Type: multipart/mixed; boundary="------------7651D63D07C84273954A817A" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------7651D63D07C84273954A817A Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2020/02/18 14:20, Kyotaro Horiguchi wrote: > Hello. > > At Tue, 18 Feb 2020 12:25:51 +0900, Fujii Masao wrote in >> Hi, >> >> RecoveryWalAll and RecoveryWalStream wait events are documented as >> follows. >> >> RecoveryWalAll >> Waiting for WAL from any kind of source (local, archive or stream) at >> recovery. >> >> RecoveryWalStream >> Waiting for WAL from a stream at recovery. >> >> But as far as I read the code, RecoveryWalAll is reported only when >> waiting >> for WAL from a stream. So the current description looks >> incorrect. What's >> described now for RecoveryWalStream seems rather fit to >> RecoveryWalAll. >> I'd like to change the description of RecoveryWalAll to "Waiting for >> WAL >> from a stream at recovery". > > Good catch! > >> Regarding RecoveryWalStream, as far as I read the code, while this >> event is >> being reported, the startup process is waiting for next trial to >> retrieve >> WAL data when WAL data is not available from any sources, based on >> wal_retrieve_retry_interval. So this current description looks also >> incorrect. I'd like to change it to "Waiting when WAL data is not >> available >> from any kind of sources (local, archive or stream) before trying >> again >> to retrieve WAL data". >> >> Thought? > > I agree that the corrected description sound correct in meaning. The > latter seems a bit lengthy, though. Yeah, so better idea? Anyway, attached is the patch (fix_recovery_wait_event_doc_v1.patch) that fixes the descriptions of those wait events. This should be back-patched to v9.5. >> Also the current names of these wait events sound confusing. I think >> that RecoveryWalAll should be changed to RecoveryWalStream. >> RecoveryWalStream should be RecoveryRetrieveRetryInterval or >> something. > > I agree to the former, I think RecoveryWalInterval works well enough. RecoveryWalInterval sounds confusing to me... Attached is the patch (improve_recovery_wait_event_for_master_v1.patch) that changes the names and types of wait events. This patch uses RecoveryRetrieveRetryInterval, but if there is better name, I will adopt that. Note that this patch needs to be applied after fix_recovery_wait_event_doc_v1.patch is applied. >> Another problem is that the current wait event types of them also look >> strange. Currently the type of them is Activity, but IMO it's better >> to >> use IPC for RecoveryWalAll because it's waiting for walreceiver to >> receive new WAL. Also it's better to use Timeout for RecoveryWalStream >> because it's waiting depending on wal_retrieve_retry_interval. > > Do you mean condition variable by the "IPC"? But the WaitLatch waits > not only for new WAL but also for trigger, SIGHUP, shutdown and > walreceiver events other than new WAL. I'm not sure that condition > variable fits for the purpose. OK, I didn't change the type of RecoveryWalStream to IPC, in the patch. Its type is still Activity. Regards, -- Fujii Masao NTT DATA CORPORATION Advanced Platform Technology Group Research and Development Headquarters --------------7651D63D07C84273954A817A Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="fix_recovery_wait_event_doc_v1.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="fix_recovery_wait_event_doc_v1.patch" ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IDg3NTg2YTdiMDYuLmM2NDEzNjE0MTggMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L21vbml0b3Jpbmcuc2dtbApAQCAtMTI3MCwxMiArMTI3MCwxNiBAQCBwb3N0Z3JlcyAgIDI3 MDkzICAwLjAgIDAuMCAgMzAwOTYgIDI3NTIgPyAgICAgICAgU3MgICAxMTozNCAgIDA6MDAg cG9zdGdyZXM6IHNlcgogICAgICAgICA8L3Jvdz4KICAgICAgICAgPHJvdz4KICAgICAgICAg IDxlbnRyeT48bGl0ZXJhbD5SZWNvdmVyeVdhbEFsbDwvbGl0ZXJhbD48L2VudHJ5PgotICAg ICAgICAgPGVudHJ5PldhaXRpbmcgZm9yIFdBTCBmcm9tIGFueSBraW5kIG9mIHNvdXJjZSAo bG9jYWwsIGFyY2hpdmUgb3Igc3RyZWFtKSBhdCByZWNvdmVyeS48L2VudHJ5PgotICAgICAg ICA8L3Jvdz4KLSAgICAgICAgPHJvdz4KLSAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5SZWNv dmVyeVdhbFN0cmVhbTwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgICAgPGVudHJ5PldhaXRp bmcgZm9yIFdBTCBmcm9tIGEgc3RyZWFtIGF0IHJlY292ZXJ5LjwvZW50cnk+CiAgICAgICAg IDwvcm93PgorICAgICAgICA8cm93PgorICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPlJlY292 ZXJ5V2FsU3RyZWFtPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+CisgICAg ICAgICAgV2FpdGluZyB3aGVuIFdBTCBkYXRhIGlzIG5vdCBhdmFpbGFibGUgZnJvbSBhbnkg a2luZCBvZiBzb3VyY2VzCisgICAgICAgICAgKGxvY2FsLCBhcmNoaXZlIG9yIHN0cmVhbSkg YmVmb3JlIHRyeWluZyBhZ2FpbiB0byByZXRyaWV2ZSBXQUwgZGF0YSwKKyAgICAgICAgICBh dCByZWNvdmVyeS4KKyAgICAgICAgIDwvZW50cnk+CisgICAgICAgIDwvcm93PgogICAgICAg ICA8cm93PgogICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPlN5c0xvZ2dlck1haW48L2xpdGVy YWw+PC9lbnRyeT4KICAgICAgICAgIDxlbnRyeT5XYWl0aW5nIGluIG1haW4gbG9vcCBvZiBz eXNsb2dnZXIgcHJvY2Vzcy48L2VudHJ5Pgo= --------------7651D63D07C84273954A817A Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="improve_recovery_wait_event_for_master_v1.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="improve_recovery_wait_event_for_master_v1.patch" ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IGM2NDEzNjE0MTguLjhmYmFhZDE5N2IgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L21vbml0b3Jpbmcuc2dtbApAQCAtMTIzNiw3ICsxMjM2LDcgQEAgcG9zdGdyZXMgICAyNzA5 MyAgMC4wICAwLjAgIDMwMDk2ICAyNzUyID8gICAgICAgIFNzICAgMTE6MzQgICAwOjAwIHBv c3RncmVzOiBzZXIKICAgICAgICAgIDxlbnRyeT5XYWl0aW5nIHRvIGFjcXVpcmUgYSBwaW4g b24gYSBidWZmZXIuPC9lbnRyeT4KICAgICAgICAgPC9yb3c+CiAgICAgICAgIDxyb3c+Ci0g ICAgICAgICA8ZW50cnkgbW9yZXJvd3M9IjEzIj48bGl0ZXJhbD5BY3Rpdml0eTwvbGl0ZXJh bD48L2VudHJ5PgorICAgICAgICAgPGVudHJ5IG1vcmVyb3dzPSIxMiI+PGxpdGVyYWw+QWN0 aXZpdHk8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BcmNo aXZlck1haW48L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgICAgIDxlbnRyeT5XYWl0aW5nIGlu IG1haW4gbG9vcCBvZiB0aGUgYXJjaGl2ZXIgcHJvY2Vzcy48L2VudHJ5PgogICAgICAgICA8 L3Jvdz4KQEAgLTEyNjgsMTcgKzEyNjgsOSBAQCBwb3N0Z3JlcyAgIDI3MDkzICAwLjAgIDAu MCAgMzAwOTYgIDI3NTIgPyAgICAgICAgU3MgICAxMTozNCAgIDA6MDAgcG9zdGdyZXM6IHNl cgogICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPlBnU3RhdE1haW48L2xpdGVyYWw+PC9lbnRy eT4KICAgICAgICAgIDxlbnRyeT5XYWl0aW5nIGluIG1haW4gbG9vcCBvZiB0aGUgc3RhdGlz dGljcyBjb2xsZWN0b3IgcHJvY2Vzcy48L2VudHJ5PgogICAgICAgICA8L3Jvdz4KLSAgICAg ICAgPHJvdz4KLSAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5SZWNvdmVyeVdhbEFsbDwvbGl0 ZXJhbD48L2VudHJ5PgotICAgICAgICAgPGVudHJ5PldhaXRpbmcgZm9yIFdBTCBmcm9tIGEg c3RyZWFtIGF0IHJlY292ZXJ5LjwvZW50cnk+Ci0gICAgICAgIDwvcm93PgogICAgICAgICA8 cm93PgogICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPlJlY292ZXJ5V2FsU3RyZWFtPC9saXRl cmFsPjwvZW50cnk+Ci0gICAgICAgICA8ZW50cnk+Ci0gICAgICAgICAgV2FpdGluZyB3aGVu IFdBTCBkYXRhIGlzIG5vdCBhdmFpbGFibGUgZnJvbSBhbnkga2luZCBvZiBzb3VyY2VzCi0g ICAgICAgICAgKGxvY2FsLCBhcmNoaXZlIG9yIHN0cmVhbSkgYmVmb3JlIHRyeWluZyBhZ2Fp biB0byByZXRyaWV2ZSBXQUwgZGF0YSwKLSAgICAgICAgICBhdCByZWNvdmVyeS4KLSAgICAg ICAgIDwvZW50cnk+CisgICAgICAgICA8ZW50cnk+V2FpdGluZyBmb3IgV0FMIGZyb20gYSBz dHJlYW0gYXQgcmVjb3ZlcnkuPC9lbnRyeT4KICAgICAgICAgPC9yb3c+CiAgICAgICAgIDxy b3c+CiAgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+U3lzTG9nZ2VyTWFpbjwvbGl0ZXJhbD48 L2VudHJ5PgpAQCAtMTQ4OCw3ICsxNDgwLDcgQEAgcG9zdGdyZXMgICAyNzA5MyAgMC4wICAw LjAgIDMwMDk2ICAyNzUyID8gICAgICAgIFNzICAgMTE6MzQgICAwOjAwIHBvc3RncmVzOiBz ZXIKICAgICAgICAgIDxlbnRyeT5XYWl0aW5nIGZvciBjb25maXJtYXRpb24gZnJvbSByZW1v dGUgc2VydmVyIGR1cmluZyBzeW5jaHJvbm91cyByZXBsaWNhdGlvbi48L2VudHJ5PgogICAg ICAgICA8L3Jvdz4KICAgICAgICAgPHJvdz4KLSAgICAgICAgIDxlbnRyeSBtb3Jlcm93cz0i MiI+PGxpdGVyYWw+VGltZW91dDwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICAgPGVudHJ5 IG1vcmVyb3dzPSIzIj48bGl0ZXJhbD5UaW1lb3V0PC9saXRlcmFsPjwvZW50cnk+CiAgICAg ICAgICA8ZW50cnk+PGxpdGVyYWw+QmFzZUJhY2t1cFRocm90dGxlPC9saXRlcmFsPjwvZW50 cnk+CiAgICAgICAgICA8ZW50cnk+V2FpdGluZyBkdXJpbmcgYmFzZSBiYWNrdXAgd2hlbiB0 aHJvdHRsaW5nIGFjdGl2aXR5LjwvZW50cnk+CiAgICAgICAgIDwvcm93PgpAQCAtMTUwMCw2 ICsxNDkyLDE0IEBAIHBvc3RncmVzICAgMjcwOTMgIDAuMCAgMC4wICAzMDA5NiAgMjc1MiA/ ICAgICAgICBTcyAgIDExOjM0ICAgMDowMCBwb3N0Z3Jlczogc2VyCiAgICAgICAgICA8ZW50 cnk+PGxpdGVyYWw+UmVjb3ZlcnlBcHBseURlbGF5PC9saXRlcmFsPjwvZW50cnk+CiAgICAg ICAgICA8ZW50cnk+V2FpdGluZyB0byBhcHBseSBXQUwgYXQgcmVjb3ZlcnkgYmVjYXVzZSBp dCBpcyBkZWxheWVkLjwvZW50cnk+CiAgICAgICAgIDwvcm93PgorICAgICAgICA8cm93Pgor ICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPlJlY292ZXJ5UmV0cmlldmVSZXRyeUludGVydmFs PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+CisgICAgICAgICAgV2FpdGlu ZyB3aGVuIFdBTCBkYXRhIGlzIG5vdCBhdmFpbGFibGUgZnJvbSBhbnkga2luZCBvZiBzb3Vy Y2VzCisgICAgICAgICAgKGxvY2FsLCBhcmNoaXZlIG9yIHN0cmVhbSkgYmVmb3JlIHRyeWlu ZyBhZ2FpbiB0byByZXRyaWV2ZSBXQUwgZGF0YSwKKyAgICAgICAgICBhdCByZWNvdmVyeS4K KyAgICAgICAgIDwvZW50cnk+CisgICAgICAgIDwvcm93PgogICAgICAgICA8cm93PgogICAg ICAgICAgPGVudHJ5IG1vcmVyb3dzPSI2OCI+PGxpdGVyYWw+SU88L2xpdGVyYWw+PC9lbnRy eT4KICAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5CdWZGaWxlUmVhZDwvbGl0ZXJhbD48L2Vu dHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IDM4MTNlYWRmYjQuLmE5 NjU5MjIzZTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTExOTgxLDcg KzExOTgxLDcgQEAgV2FpdEZvcldBTFRvQmVjb21lQXZhaWxhYmxlKFhMb2dSZWNQdHIgUmVj UHRyLCBib29sIHJhbmRBY2Nlc3MsCiAJCQkJCQkJCQkJIFdMX0xBVENIX1NFVCB8IFdMX1RJ TUVPVVQgfAogCQkJCQkJCQkJCSBXTF9FWElUX09OX1BNX0RFQVRILAogCQkJCQkJCQkJCSB3 YWl0X3RpbWUsCi0JCQkJCQkJCQkJIFdBSVRfRVZFTlRfUkVDT1ZFUllfV0FMX1NUUkVBTSk7 CisJCQkJCQkJCQkJIFdBSVRfRVZFTlRfUkVDT1ZFUllfUkVUUklFVkVfUkVUUllfSU5URVJW QUwpOwogCQkJCQkJUmVzZXRMYXRjaCgmWExvZ0N0bC0+cmVjb3ZlcnlXYWtldXBMYXRjaCk7 CiAJCQkJCQlub3cgPSBHZXRDdXJyZW50VGltZXN0YW1wKCk7CiAJCQkJCX0KQEAgLTEyMTY1 LDcgKzEyMTY1LDcgQEAgV2FpdEZvcldBTFRvQmVjb21lQXZhaWxhYmxlKFhMb2dSZWNQdHIg UmVjUHRyLCBib29sIHJhbmRBY2Nlc3MsCiAJCQkJCSh2b2lkKSBXYWl0TGF0Y2goJlhMb2dD dGwtPnJlY292ZXJ5V2FrZXVwTGF0Y2gsCiAJCQkJCQkJCQkgV0xfTEFUQ0hfU0VUIHwgV0xf VElNRU9VVCB8CiAJCQkJCQkJCQkgV0xfRVhJVF9PTl9QTV9ERUFUSCwKLQkJCQkJCQkJCSA1 MDAwTCwgV0FJVF9FVkVOVF9SRUNPVkVSWV9XQUxfQUxMKTsKKwkJCQkJCQkJCSA1MDAwTCwg V0FJVF9FVkVOVF9SRUNPVkVSWV9XQUxfU1RSRUFNKTsKIAkJCQkJUmVzZXRMYXRjaCgmWExv Z0N0bC0+cmVjb3ZlcnlXYWtldXBMYXRjaCk7CiAJCQkJCWJyZWFrOwogCQkJCX0KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMgYi9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL3Bnc3RhdC5jCmluZGV4IDU5ZGM0ZjMxYWIuLmFiYTIzZjVkMjMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMKKysrIGIvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9wZ3N0YXQuYwpAQCAtMzY1NCw5ICszNjU0LDYgQEAgcGdzdGF0X2dl dF93YWl0X2FjdGl2aXR5KFdhaXRFdmVudEFjdGl2aXR5IHcpCiAJCWNhc2UgV0FJVF9FVkVO VF9QR1NUQVRfTUFJTjoKIAkJCWV2ZW50X25hbWUgPSAiUGdTdGF0TWFpbiI7CiAJCQlicmVh azsKLQkJY2FzZSBXQUlUX0VWRU5UX1JFQ09WRVJZX1dBTF9BTEw6Ci0JCQlldmVudF9uYW1l ID0gIlJlY292ZXJ5V2FsQWxsIjsKLQkJCWJyZWFrOwogCQljYXNlIFdBSVRfRVZFTlRfUkVD T1ZFUllfV0FMX1NUUkVBTToKIAkJCWV2ZW50X25hbWUgPSAiUmVjb3ZlcnlXYWxTdHJlYW0i OwogCQkJYnJlYWs7CkBAIC0zODc2LDYgKzM4NzMsOSBAQCBwZ3N0YXRfZ2V0X3dhaXRfdGlt ZW91dChXYWl0RXZlbnRUaW1lb3V0IHcpCiAJCWNhc2UgV0FJVF9FVkVOVF9SRUNPVkVSWV9B UFBMWV9ERUxBWToKIAkJCWV2ZW50X25hbWUgPSAiUmVjb3ZlcnlBcHBseURlbGF5IjsKIAkJ CWJyZWFrOworCQljYXNlIFdBSVRfRVZFTlRfUkVDT1ZFUllfUkVUUklFVkVfUkVUUllfSU5U RVJWQUw6CisJCQlldmVudF9uYW1lID0gIlJlY292ZXJ5UmV0cmlldmVSZXRyeUludGVydmFs IjsKKwkJCWJyZWFrOwogCQkJLyogbm8gZGVmYXVsdCBjYXNlLCBzbyB0aGF0IGNvbXBpbGVy IHdpbGwgd2FybiAqLwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdzdGF0Lmgg Yi9zcmMvaW5jbHVkZS9wZ3N0YXQuaAppbmRleCAzYTY1YTUxNjk2Li40NTQ5NjczOGYwIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9wZ3N0 YXQuaApAQCAtNzc5LDcgKzc3OSw2IEBAIHR5cGVkZWYgZW51bQogCVdBSVRfRVZFTlRfTE9H SUNBTF9BUFBMWV9NQUlOLAogCVdBSVRfRVZFTlRfTE9HSUNBTF9MQVVOQ0hFUl9NQUlOLAog CVdBSVRfRVZFTlRfUEdTVEFUX01BSU4sCi0JV0FJVF9FVkVOVF9SRUNPVkVSWV9XQUxfQUxM LAogCVdBSVRfRVZFTlRfUkVDT1ZFUllfV0FMX1NUUkVBTSwKIAlXQUlUX0VWRU5UX1NZU0xP R0dFUl9NQUlOLAogCVdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX01BSU4sCkBAIC04NjYsNyAr ODY1LDggQEAgdHlwZWRlZiBlbnVtCiB7CiAJV0FJVF9FVkVOVF9CQVNFX0JBQ0tVUF9USFJP VFRMRSA9IFBHX1dBSVRfVElNRU9VVCwKIAlXQUlUX0VWRU5UX1BHX1NMRUVQLAotCVdBSVRf RVZFTlRfUkVDT1ZFUllfQVBQTFlfREVMQVkKKwlXQUlUX0VWRU5UX1JFQ09WRVJZX0FQUExZ X0RFTEFZLAorCVdBSVRfRVZFTlRfUkVDT1ZFUllfUkVUUklFVkVfUkVUUllfSU5URVJWQUwK IH0gV2FpdEV2ZW50VGltZW91dDsKIAogLyogLS0tLS0tLS0tLQo= --------------7651D63D07C84273954A817A--