From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964927AbVHIUTP (ORCPT ); Tue, 9 Aug 2005 16:19:15 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S964928AbVHIUTP (ORCPT ); Tue, 9 Aug 2005 16:19:15 -0400 Received: from ms-smtp-01.nyroc.rr.com ([24.24.2.55]:12789 "EHLO ms-smtp-01.nyroc.rr.com") by vger.kernel.org with ESMTP id S964927AbVHIUTO (ORCPT ); Tue, 9 Aug 2005 16:19:14 -0400 Subject: Re: Signal handling possibly wrong From: Steven Rostedt To: Bodo Stroesser Cc: linux-kernel@vger.kernel.org, Robert Wilkens In-Reply-To: <1123617812.18332.199.camel@localhost.localdomain> References: <42F8EB66.8020002@fujitsu-siemens.com> <1123612016.3167.3.camel@localhost.localdomain> <42F8F6CC.7090709@fujitsu-siemens.com> <1123612789.3167.9.camel@localhost.localdomain> <42F8F98B.3080908@fujitsu-siemens.com> <1123614253.3167.18.camel@localhost.localdomain> <1123615983.18332.194.camel@localhost.localdomain> <42F906EB.6060106@fujitsu-siemens.com> <1123617812.18332.199.camel@localhost.localdomain> Content-Type: multipart/mixed; boundary="=-bENqHn7yeEaHAHwmZqSL" Organization: Kihon Technologies Date: Tue, 09 Aug 2005 16:19:05 -0400 Message-Id: <1123618745.18332.204.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.2.3 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org --=-bENqHn7yeEaHAHwmZqSL Content-Type: text/plain Content-Transfer-Encoding: 7bit On Tue, 2005-08-09 at 16:03 -0400, Steven Rostedt wrote: > Man pages and kernel are right. I just tested this out on 2.6.13-rc3 > with the attached program and it seems to follow what is stated in the > man pages. So the assumption of what the code did by looking at it > proves to be the mistake. :-) > > Conclusion: sa_mask defers the signals. SA_NODEFER defers the sent > signal. I'm the one that's wrong here ;-) OK the kernel _does_ have a bug. Looking at the code, I now see it, and my last program didn't show it. The code in question was (as Bodo showed earlier): if (ret && !(ka->sa.sa_flags & SA_NODEFER)) { spin_lock_irq(¤t->sighand->siglock); sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask); sigaddset(¤t->blocked,sig); recalc_sigpending(); spin_unlock_irq(¤t->sighand->siglock); } Where, sa_mask is _ignored_ if NODEFER is set. (I now have woken up!). The attached program shows that the sa_mask is indeed ignored when SA_NODEFER is set. Now the real question is... Is this a bug? -- Steve --=-bENqHn7yeEaHAHwmZqSL Content-Disposition: attachment; filename=signal2 Content-Type: application/x-executable; name=signal2 Content-Transfer-Encoding: base64 f0VMRgEBAQAAAAAAAAAAAAIAAwABAAAAwIQECDQAAADwFAAAAAAAADQAIAAHACgAIgAfAAYAAAA0 AAAANIAECDSABAjgAAAA4AAAAAUAAAAEAAAAAwAAABQBAAAUgQQIFIEECBMAAAATAAAABAAAAAEA AAABAAAAAAAAAACABAgAgAQIUAoAAFAKAAAFAAAAABAAAAEAAABQCgAAUJoECFCaBAgoAQAALAEA AAYAAAAAEAAAAgAAAGQKAABkmgQIZJoECMgAAADIAAAABgAAAAQAAAAEAAAAKAEAACiBBAgogQQI IAAAACAAAAAEAAAABAAAAFHldGQAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAEAAAAL2xpYi9sZC1s aW51eC5zby4yAAAEAAAAEAAAAAEAAABHTlUAAAAAAAIAAAACAAAAAAAAAAMAAAAPAAAADgAAAAkA AAAMAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAgAAAAYAAAAEAAAABwAAAAUAAAAIAAAACwAA AAoAAAANAAAAAAAAAAAAAAAAAAAAAAAAAF0AAAAAAAAAQAAAABIAAAA1AAAAAAAAAAgAAAASAAAA PAAAAAAAAACvAAAAEgAAAFgAAAAAAAAATgAAABIAAABDAAAAAAAAAB0CAAASAAAASQAAAAAAAABT AAAAEgAAAIIAAAAAAAAAzgAAABIAAAAuAAAAAAAAAC8AAAASAAAAbgAAAAAAAADcAAAAEgAAAGcA AAAAAAAAUQAAABIAAABzAAAAhIkECAQAAAARAA4AUwAAAAAAAAA6AAAAEgAAAAEAAAAAAAAAAAAA ACAAAAAVAAAAAAAAAAAAAAAgAAAAAF9Kdl9SZWdpc3RlckNsYXNzZXMAX19nbW9uX3N0YXJ0X18A bGliYy5zby42AHByaW50ZgBnZXRwaWQAcGVycm9yAHNsZWVwAHNpZ2FkZHNldABraWxsAGZvcmsA c2lnYWN0aW9uAG1lbXNldABleGl0AF9JT19zdGRpbl91c2VkAF9fbGliY19zdGFydF9tYWluAEdM SUJDXzIuMAAAAAIAAgACAAIAAgACAAIAAgACAAIAAQACAAAAAAABAAEAJAAAABAAAAAAAAAAEGlp DQAAAgCUAAAAAAAAACybBAgGDgAAPJsECAcBAABAmwQIBwIAAESbBAgHAwAASJsECAcEAABMmwQI BwUAAFCbBAgHBgAAVJsECAcHAABYmwQIBwgAAFybBAgHCQAAYJsECAcKAABkmwQIBwwAAGibBAgH DgAAVYnlg+wI6A0BAADodAEAAOhPBQAAycMA/zU0mwQI/yU4mwQIAAAAAP8lPJsECGgAAAAA6eD/ ////JUCbBAhoCAAAAOnQ/////yVEmwQIaBAAAADpwP////8lSJsECGgYAAAA6bD/////JUybBAho IAAAAOmg/////yVQmwQIaCgAAADpkP////8lVJsECGgwAAAA6YD/////JVibBAhoOAAAAOlw//// /yVcmwQIaEAAAADpYP////8lYJsECGhIAAAA6VD/////JWSbBAhoUAAAAOlA/////yVomwQIaFgA AADpMP///wAAAAAAAAAAAAAAADHtXonhg+TwUFRSaNCIBAhoYIgECFFWaAyHBAjoc/////SQkFWJ 5VNR6AAAAABbgcNCFgAAi5P8////hdJ0Beig////WFvJw5CQkJCQkJCQVYnlg+wIgD14mwQIAHQb 6yvrDZCQkJCQkJCQkJCQkJCDwASjdJsECP/SoXSbBAiLEIXSdevGBXibBAgBycOJ9lWJ5YPsCKFg mgQIhcB0FrgAAAAAhcB0DYPsDGhgmgQI/9CDxBDJw5BVieWD7Bjogf7//4lF/IPsCP91/GiIiQQI 6M7+//+DxBCD7AxqBeiR/v//g8QQg+wI/3X8aJ6JBAjorv7//4PEEMnDVYnlg+wY6D7+//+JRfyD 7Aj/dfxotokECOiL/v//g8QQycNVieWD7BjoG/7//4lF/IPsCP91/GjIiQQI6Gj+//+DxBCD7Axq AOhr/v//VYnlgeyYAAAAjYV0////icK4jAAAAIPsBFBqAFLoWf7//4PEEMeFdP///96FBAiD7ARq AI2FdP///1BqAuip/f//g8QQhcB5GoPsDGjiiQQI6LX9//+DxBCD7Axq/+gI/v//x4V0////eIUE CItF+A0AAABAiUX4g+wIagyNhXT///+DwARQ6K/9//+DxBCD7ARqAI2FdP///1BqCuhJ/f//g8QQ hcB5GoPsDGjiiQQI6FX9//+DxBCD7Axq/+io/f//x4V0////u4UECIPsBGoAjYV0////UGoM6Av9 //+DxBCFwHkag+wMaOKJBAjoF/3//4PEEIPsDGr/6Gr9///r/lWJ5YPsGIPk8LgAAAAAg8APg8AP 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 AAGAjQAAAAIAFAAAAAQBWAAAAOSEBAjkhAQIawAAAAEAAAAABwAAAALEAAAABAcCrAAAAAEIAtEA AAACBwK/AAAABAcCrgAAAAEGAmEAAAACBQNpbnQABAUCngAAAAgFAroAAAAIBwKjAAAABAUCxAAA AAQHArUAAAABBgTkAAAAARmLAAAAAQUDhIkECAVPAAAAANUAAAACAFYAAAAEAXwAAAAvZGlzay9o ZGMyL2dsaWJjL2RlYmlhbi1idWlsZC9nbGliY18yLjMuNS0zLmJ1aWxkNy9nbGliYy0yLjMuNS9i dWlsZC10cmVlL2kzODYtbGliYy9jc3UvY3J0aS5TAC9kaXNrL2hkYzIvZ2xpYmMvZGViaWFuLWJ1 aWxkL2dsaWJjXzIuMy41LTMuYnVpbGQ3L2dsaWJjLTIuMy41L2J1aWxkLXRyZWUvZ2xpYmMtMi4z LjUvY3N1AEdOVSBBUyAyLjE2LjEAAYDVAAAAAgBmAAAABAE8AQAAL2Rpc2svaGRjMi9nbGliYy9k ZWJpYW4tYnVpbGQvZ2xpYmNfMi4zLjUtMy5idWlsZDcvZ2xpYmMtMi4zLjUvYnVpbGQtdHJlZS9p Mzg2LWxpYmMvY3N1L2NydG4uUwAvZGlzay9oZGMyL2dsaWJjL2RlYmlhbi1idWlsZC9nbGliY18y LjMuNS0zLmJ1aWxkNy9nbGliYy0yLjMuNS9idWlsZC10cmVlL2dsaWJjLTIuMy41L2NzdQBHTlUg QVMgMi4xNi4xAAGAAREAEAYRARIBAwgbCCUIEwUAAAABEQEQBhIBEQElDhMLAw4bDgAAAiQAAw4L Cz4LAAADJAADCAsLPgsAAAQ0AAMOOgs7C0kTPwwCCgAABSYASRMAAAABEQAQBgMIGwglCBMFAAAA AREAEAYDCBsIJQgTBQAAAFQAAAACAC8AAAABAfsOCgABAQEBAAAAAS4uL3N5c2RlcHMvaTM4Ni9l bGYAAHN0YXJ0LlMAAQAAAAAFAsCEBAgDwAABMB4xOiIfAxgdVlceH1lYAgEAAQEgAAAAAgAaAAAA AQH7DgoAAQEBAQAAAAEAaW5pdC5jAAAAAAC8AAAAAgByAAAAAQH7DgoAAQEBAQAAAAEvZGlzay9o ZGMyL2dsaWJjL2RlYmlhbi1idWlsZC9nbGliY18yLjMuNS0zLmJ1aWxkNy9nbGliYy0yLjMuNS9i dWlsZC10cmVlL2kzODYtbGliYy9jc3UAAGNydGkuUwABAAAAAAUCZIkECAMzAR4sHh5XHgIGAAEB AAUCzIMECAMjAR4sOgIFAAEBAAUC5IQECAMLAR4sHh5XHmRkLCxXHh4eAgEAAQGaAAAAAgByAAAA AQH7DgoAAQEBAQAAAAEvZGlzay9oZGMyL2dsaWJjL2RlYmlhbi1idWlsZC9nbGliY18yLjMuNS0z LmJ1aWxkNy9nbGliYy0yLjMuNS9idWlsZC10cmVlL2kzODYtbGliYy9jc3UAAGNydG4uUwABAAAA AAUCeokECAMSAR4eHgIBAAEBAAUC4YMECAMJAR4CAQABAWluaXQuYwAvZGlzay9oZGMyL2dsaWJj L2RlYmlhbi1idWlsZC9nbGliY18yLjMuNS0zLmJ1aWxkNy9nbGliYy0yLjMuNS9idWlsZC10cmVl L2dsaWJjLTIuMy41L2NzdQBzaG9ydCBpbnQAR05VIEMgNC4wLjIgMjAwNTA3MjUgKHByZXJlbGVh c2UpIChEZWJpYW4gNC4wLjEtMykAbG9uZyBsb25nIGludAB1bnNpZ25lZCBjaGFyAGxvbmcgbG9u ZyB1bnNpZ25lZCBpbnQAc2hvcnQgdW5zaWduZWQgaW50AF9JT19zdGRpbl91c2VkAAAuc3ltdGFi AC5zdHJ0YWIALnNoc3RydGFiAC5pbnRlcnAALm5vdGUuQUJJLXRhZwAuaGFzaAAuZHluc3ltAC5k eW5zdHIALmdudS52ZXJzaW9uAC5nbnUudmVyc2lvbl9yAC5yZWwuZHluAC5yZWwucGx0AC5pbml0 AC50ZXh0AC5maW5pAC5yb2RhdGEALmVoX2ZyYW1lAC5jdG9ycwAuZHRvcnMALmpjcgAuZHluYW1p YwAuZ290AC5nb3QucGx0AC5kYXRhAC5ic3MALmNvbW1lbnQALmRlYnVnX2FyYW5nZXMALmRlYnVn X3B1Ym5hbWVzAC5kZWJ1Z19pbmZvAC5kZWJ1Z19hYmJyZXYALmRlYnVnX2xpbmUALmRlYnVnX3N0 cgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAACAAAAFIEE CBQBAAATAAAAAAAAAAAAAAABAAAAAAAAACMAAAAHAAAAAgAAACiBBAgoAQAAIAAAAAAAAAAAAAAA BAAAAAAAAAAxAAAABQAAAAIAAABIgQQISAEAAFAAAAAEAAAAAAAAAAQAAAAEAAAANwAAAAsAAAAC AAAAmIEECJgBAADwAAAABQAAAAEAAAAEAAAAEAAAAD8AAAADAAAAAgAAAIiCBAiIAgAAngAAAAAA AAAAAAAAAQAAAAAAAABHAAAA////bwIAAAAmgwQIJgMAAB4AAAAEAAAAAAAAAAIAAAACAAAAVAAA AP7//28CAAAARIMECEQDAAAgAAAABQAAAAEAAAAEAAAAAAAAAGMAAAAJAAAAAgAAAGSDBAhkAwAA CAAAAAQAAAAAAAAABAAAAAgAAABsAAAACQAAAAIAAABsgwQIbAMAAGAAAAAEAAAACwAAAAQAAAAI AAAAdQAAAAEAAAAGAAAAzIMECMwDAAAXAAAAAAAAAAAAAAAEAAAAAAAAAHAAAAABAAAABgAAAOSD BAjkAwAA0AAAAAAAAAAAAAAABAAAAAQAAAB7AAAAAQAAAAYAAADAhAQIwAQAAKQEAAAAAAAAAAAA ABAAAAAAAAAAgQAAAAEAAAAGAAAAZIkECGQJAAAaAAAAAAAAAAAAAAAEAAAAAAAAAIcAAAABAAAA AgAAAICJBAiACQAAyQAAAAAAAAAAAAAABAAAAAAAAACPAAAAAQAAAAIAAABMigQITAoAAAQAAAAA AAAAAAAAAAQAAAAAAAAAmQAAAAEAAAADAAAAUJoECFAKAAAIAAAAAAAAAAAAAAAEAAAAAAAAAKAA AAABAAAAAwAAAFiaBAhYCgAACAAAAAAAAAAAAAAABAAAAAAAAACnAAAAAQAAAAMAAABgmgQIYAoA AAQAAAAAAAAAAAAAAAQAAAAAAAAArAAAAAYAAAADAAAAZJoECGQKAADIAAAABQAAAAAAAAAEAAAA CAAAALUAAAABAAAAAwAAACybBAgsCwAABAAAAAAAAAAAAAAABAAAAAQAAAC6AAAAAQAAAAMAAAAw mwQIMAsAADwAAAAAAAAAAAAAAAQAAAAEAAAAwwAAAAEAAAADAAAAbJsECGwLAAAMAAAAAAAAAAAA AAAEAAAAAAAAAMkAAAAIAAAAAwAAAHibBAh4CwAABAAAAAAAAAAAAAAABAAAAAAAAADOAAAAAQAA AAAAAAAAAAAAeAsAAI8BAAAAAAAAAAAAAAEAAAAAAAAA1wAAAAEAAAAAAAAAAAAAAAgNAAB4AAAA AAAAAAAAAAAIAAAAAAAAAOYAAAABAAAAAAAAAAAAAACADQAAJQAAAAAAAAAAAAAAAQAAAAAAAAD2 AAAAAQAAAAAAAAAAAAAApQ0AAOECAAAAAAAAAAAAAAEAAAAAAAAAAgEAAAEAAAAAAAAAAAAAAIYQ AAB2AAAAAAAAAAAAAAABAAAAAAAAABABAAABAAAAAAAAAAAAAAD8EAAA2gEAAAAAAAAAAAAAAQAA AAAAAAAcAQAAAQAAADAAAAAAAAAA1hIAAPMAAAAAAAAAAAAAAAEAAAABAAAAEQAAAAMAAAAAAAAA AAAAAMkTAAAnAQAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAABAGgAA4AUAACEAAAA5 AAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAICAAAMUDAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAUgQQIAAAAAAMAAQAAAAAAKIEECAAAAAADAAIAAAAAAEiBBAgAAAAAAwAD AAAAAACYgQQIAAAAAAMABAAAAAAAiIIECAAAAAADAAUAAAAAACaDBAgAAAAAAwAGAAAAAABEgwQI AAAAAAMABwAAAAAAZIMECAAAAAADAAgAAAAAAGyDBAgAAAAAAwAJAAAAAADMgwQIAAAAAAMACgAA AAAA5IMECAAAAAADAAsAAAAAAMCEBAgAAAAAAwAMAAAAAABkiQQIAAAAAAMADQAAAAAAgIkECAAA AAADAA4AAAAAAEyKBAgAAAAAAwAPAAAAAABQmgQIAAAAAAMAEAAAAAAAWJoECAAAAAADABEAAAAA AGCaBAgAAAAAAwASAAAAAABkmgQIAAAAAAMAEwAAAAAALJsECAAAAAADABQAAAAAADCbBAgAAAAA AwAVAAAAAABsmwQIAAAAAAMAFgAAAAAAeJsECAAAAAADABcAAAAAAAAAAAAAAAAAAwAYAAAAAAAA AAAAAAAAAAMAGQAAAAAAAAAAAAAAAAADABoAAAAAAAAAAAAAAAAAAwAbAAAAAAAAAAAAAAAAAAMA HAAAAAAAAAAAAAAAAAADAB0AAAAAAAAAAAAAAAAAAwAeAAAAAAAAAAAAAAAAAAMAHwAAAAAAAAAA AAAAAAADACAAAAAAAAAAAAAAAAAAAwAhAAEAAAAAAAAAAAAAAAQA8f8MAAAAAAAAAAAAAAAEAPH/ KAAAAAAAAAAAAAAABADx/y8AAAAAAAAAAAAAAAQA8f86AAAAAAAAAAAAAAAEAPH/mQAAAOSEBAgA AAAAAgAMAKkAAAAAAAAAAAAAAAQA8f+0AAAAUJoECAAAAAABABAAwgAAAFiaBAgAAAAAAQARANAA AABgmgQIAAAAAAEAEgDdAAAAeJsECAEAAAABABcA7AAAAHSbBAgAAAAAAQAWAPMAAAAQhQQIAAAA AAIADAAJAQAAUIUECAAAAAACAAwAqQAAAAAAAAAAAAAABADx/xUBAABUmgQIAAAAAAEAEAAiAQAA XJoECAAAAAABABEALwEAAEyKBAgAAAAAAQAPAD0BAABgmgQIAAAAAAEAEgBJAQAAMIkECAAAAAAC AAwALwAAAAAAAAAAAAAABADx/18BAAAAAAAAAAAAAAQA8f++AQAAAAAAAAAAAAAEAPH/yAEAAAAA AABAAAAAEgAAAN0BAAAAAAAACAAAABIAAADvAQAAZJoECAAAAAARABMA+AEAAHiFBAhDAAAAEgAM AP4BAACAiQQIBAAAABEADgAFAgAAAAAAAK8AAAASAAAAFwIAAAAAAABOAAAAEgAAACcCAABQmgQI AAAAABAA8f84AgAAcJsECAAAAAARAhYARQIAANCIBAhYAAAAEgAMAFUCAAAJhgQIAwEAABIADABc AgAAzIMECAAAAAASAAoAYgIAAMCEBAgAAAAAEgAMAGkCAAAAAAAAHQIAABIAAAB6AgAAAAAAAFMA AAASAAAAjwIAALuFBAgjAAAAEgAMAJUCAABQmgQIAAAAABAA8f+oAgAAYIgECGMAAAASAAwAuAIA AHibBAgAAAAAEADx/8QCAAAMhwQISgEAABIADADJAgAAAAAAAM4AAAASAAAA5gIAAFCaBAgAAAAA EADx//cCAABsmwQIAAAAACAAFgACAwAAAAAAAC8AAAASAAAAFAMAAGSJBAgAAAAAEgANABoDAAAA AAAA3AAAABIAAAAqAwAAeJsECAAAAAAQAPH/MQMAADCbBAgAAAAAEQIVAEcDAAB8mwQIAAAAABAA 8f9MAwAAAAAAAFEAAAASAAAAXgMAAFCaBAgAAAAAEADx/3EDAACEiQQIBAAAABEADgCAAwAAAAAA ADoAAAASAAAAkAMAAN6FBAgrAAAAEgAMAJUDAABsmwQIAAAAABAAFgCiAwAAAAAAAAAAAAAgAAAA tgMAAAAAAAAAAAAAIAAAAABhYmktbm90ZS5TAC4uL3N5c2RlcHMvaTM4Ni9lbGYvc3RhcnQuUwBp bml0LmMAaW5pdGZpbmkuYwAvZGlzay9oZGMyL2dsaWJjL2RlYmlhbi1idWlsZC9nbGliY18yLjMu NS0zLmJ1aWxkNy9nbGliYy0yLjMuNS9idWlsZC10cmVlL2kzODYtbGliYy9jc3UvY3J0aS5TAGNh bGxfZ21vbl9zdGFydABjcnRzdHVmZi5jAF9fQ1RPUl9MSVNUX18AX19EVE9SX0xJU1RfXwBfX0pD Ul9MSVNUX18AY29tcGxldGVkLjQzODYAcC40Mzg1AF9fZG9fZ2xvYmFsX2R0b3JzX2F1eABmcmFt ZV9kdW1teQBfX0NUT1JfRU5EX18AX19EVE9SX0VORF9fAF9fRlJBTUVfRU5EX18AX19KQ1JfRU5E X18AX19kb19nbG9iYWxfY3RvcnNfYXV4AC9kaXNrL2hkYzIvZ2xpYmMvZGViaWFuLWJ1aWxkL2ds aWJjXzIuMy41LTMuYnVpbGQ3L2dsaWJjLTIuMy41L2J1aWxkLXRyZWUvaTM4Ni1saWJjL2NzdS9j cnRuLlMAc2lnbmFsMi5jAHNpZ2FjdGlvbkBAR0xJQkNfMi4wAGdldHBpZEBAR0xJQkNfMi4wAF9E WU5BTUlDAHVzZXIxAF9mcF9odwBwZXJyb3JAQEdMSUJDXzIuMABmb3JrQEBHTElCQ18yLjAAX19m aW5pX2FycmF5X2VuZABfX2Rzb19oYW5kbGUAX19saWJjX2NzdV9maW5pAHN0YXJ0MQBfaW5pdABf c3RhcnQAc2xlZXBAQEdMSUJDXzIuMABzaWdhZGRzZXRAQEdMSUJDXzIuMAB1c2VyMgBfX2Zpbmlf YXJyYXlfc3RhcnQAX19saWJjX2NzdV9pbml0AF9fYnNzX3N0YXJ0AG1haW4AX19saWJjX3N0YXJ0 X21haW5AQEdMSUJDXzIuMABfX2luaXRfYXJyYXlfZW5kAGRhdGFfc3RhcnQAcHJpbnRmQEBHTElC Q18yLjAAX2ZpbmkAZXhpdEBAR0xJQkNfMi4wAF9lZGF0YQBfR0xPQkFMX09GRlNFVF9UQUJMRV8A X2VuZABtZW1zZXRAQEdMSUJDXzIuMABfX2luaXRfYXJyYXlfc3RhcnQAX0lPX3N0ZGluX3VzZWQA a2lsbEBAR0xJQkNfMi4wAGludHIAX19kYXRhX3N0YXJ0AF9Kdl9SZWdpc3RlckNsYXNzZXMAX19n bW9uX3N0YXJ0X18A --=-bENqHn7yeEaHAHwmZqSL--