From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Thiago Melo Newsgroups: gmane.emacs.bugs Subject: bug#63589: [PATCH] 29.0.91; crash after creating graphical frames via emacsclient when compiled with cairo-xcb Date: Wed, 24 May 2023 14:16:20 +0000 Message-ID: References: <87wn11yyi4.fsf@yahoo.com> <87edn9ytbo.fsf@yahoo.com> <835y8kr5re.fsf@gnu.org> <87pm6sy5rb.fsf@yahoo.com> <83wn10ppa1.fsf@gnu.org> <874jo3yjly.fsf@yahoo.com> <837cszp9cc.fsf@gnu.org> <87cz2rw8pz.fsf@yahoo.com> <83y1lfnqwb.fsf@gnu.org> <87y1lfuqyb.fsf@yahoo.com> <83wn0znn7j.fsf@gnu.org> <87lehevaqz.fsf@yahoo.com> <83r0r6o3zk.fsf@gnu.org> <87edn6v2v3.fsf@yahoo.com> <83h6s2ng1p.fsf@gnu.org> <87v8gisz6u.fsf@yahoo.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000016fd5e05fc7128df" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21256"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 63589@debbugs.gnu.org, Eli Zaretskii To: Po Lu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed May 24 16:18:23 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q1pJl-0005HH-MZ for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 24 May 2023 16:18:21 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q1pJZ-0000j0-HP; Wed, 24 May 2023 10:18:09 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q1pJV-0000iW-IS for bug-gnu-emacs@gnu.org; Wed, 24 May 2023 10:18:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q1pJS-00036w-Fm for bug-gnu-emacs@gnu.org; Wed, 24 May 2023 10:18:05 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1q1pJS-00039f-BO for bug-gnu-emacs@gnu.org; Wed, 24 May 2023 10:18:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Thiago Melo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 May 2023 14:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63589 X-GNU-PR-Package: emacs Original-Received: via spool by 63589-submit@debbugs.gnu.org id=B63589.168493782612057 (code B ref 63589); Wed, 24 May 2023 14:18:02 +0000 Original-Received: (at 63589) by debbugs.gnu.org; 24 May 2023 14:17:06 +0000 Original-Received: from localhost ([127.0.0.1]:44282 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1pIX-00038P-Jk for submit@debbugs.gnu.org; Wed, 24 May 2023 10:17:06 -0400 Original-Received: from mail-qt1-f169.google.com ([209.85.160.169]:55484) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1pIV-00037s-EZ for 63589@debbugs.gnu.org; Wed, 24 May 2023 10:17:04 -0400 Original-Received: by mail-qt1-f169.google.com with SMTP id d75a77b69052e-3f6ac005824so9730791cf.2 for <63589@debbugs.gnu.org>; Wed, 24 May 2023 07:17:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684937818; x=1687529818; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=jIMTN5xVRJXjRKNcpBVR7fnivAGt5nEQM4FaGmFaxQQ=; b=iZX4npKz8wWMPdN7ThiJmI78bcgyY+Ob4NYJEncf8KfRAVwz/l2W7CbC7RSqFH/gex YE9UXGTnUe1JaGG5yBxqLkvByqnl75CeV5gkU/ysJQuRN6ZS8bkY653kDo9qNdKeiOL2 092GWCL39ouIrqG/44WZDzwp4GC0GZ0fc3GM+adaJtFr5IK8M/691QNVc/HzZQSb19p4 Gn6ymSGoslHaHu3wAu3P4eqsGllhKDTDtFTJ8q9yae+kCyKZPNMkLYAv+vQAqvdjxoGr iqnpnG4K7cHgxzmoNg5pPkmZbP1O5RBTG3WN+oSDceVFunFv6C7lIYIrN/7o7aSpJIqW +wdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684937818; x=1687529818; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=jIMTN5xVRJXjRKNcpBVR7fnivAGt5nEQM4FaGmFaxQQ=; b=W1xP3FNmZ1hB7SAywSghr/Jq20g3D+RGZ6gy2K+t7pzRbw5smVnbWSkste6Hb5048+ gOELlNiG2IY1SfS34gC+NCJbCJJfzTDnvpjo2Bj2TcuzCLs97W2x8d29ZhW8sV6aoJFQ 15CWkTAfKFyW1bkMaWbgfbmpEAYR9uHlT/msO5iKKLcB2Z0/nd65uZI9ZV6estWvgmTh rna9Ay/izRmIivzcJz952pYngIYeaXhfP8IkMDgsg3HhMOdhwhRUpeU6ja6xrSxEG/FG uY2CU0EbxC9A7FFa71d2J82ZUfxKvpIg+iXx9x4qKP+4mpJQ2vnQtiTF0//50S3hhWTn UcSg== X-Gm-Message-State: AC+VfDwOXIXWlYipYink67MtTS90lMzuw8NfeErBRNryeCVTvJF4wWdS hy2dS0z7YFxLR5nSNux7Pp/swBGx6Yit8cUfBkw= X-Google-Smtp-Source: ACHHUZ4RFNvWkqgEAmEnF6KXrR4uVhu68uSPPWq8DUiNepur9De/j50wrSo2vWtIiMCr5NIQIyCk/kOV7OXpRCU9Nyw= X-Received: by 2002:ac8:7f13:0:b0:3f6:c0f7:a5c4 with SMTP id f19-20020ac87f13000000b003f6c0f7a5c4mr4383135qtk.25.1684937817619; Wed, 24 May 2023 07:16:57 -0700 (PDT) In-Reply-To: <87v8gisz6u.fsf@yahoo.com> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:262295 Archived-At: --00000000000016fd5e05fc7128df Content-Type: text/plain; charset="UTF-8" > I thought I explained what the problems with trying to fix this in Emacs > are. The first is: there's a reference leak in Cairo somewhere, since > Emacs never allows displays to be closed without each frame being > destroyed, and destroying each frame will also dereference its Cairo > surface; thus, it's not actually Emacs's problem. [...] > The other problem occurs when `cairo_xcb_surface_create' creates a > different device from the one that was previously created for the > display. So you have only destroyed one of several devices, any one of > which may rear its ugly head later. This is also a bug in Cairo. > > BTW, it's not necessary to call XFreePixmap, as all resources created > by the client will be destroyed per the close down mode set earlier. Welp, I guess it means that all that remains is bringing up the issue to the Cairo mailing list (again) and waiting for the problem to be solved from their side. I'm afraid they might just say that Emacs is "holding it wrong". :( By the way, I wrote a minimal standalone cairo-xcb c program (see attached) to trigger this particular bug. It opens a small window via xcb, draws something via cairo, destroys the window and closes the display when any key or mouse button is pressed on it, then recreates everything again... And it repeats until it crashes (Hopefully. At lest it crashes in my system). Redrawing errors also happen during the process. It might be an useful example to bring to the Cairo mailing list and to debug the root of this issue. Thanks for everything you taught me, Po Lu. --00000000000016fd5e05fc7128df Content-Type: text/x-csrc; charset="US-ASCII"; name="cairo-xcb-bug.c" Content-Disposition: attachment; filename="cairo-xcb-bug.c" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_li1scik30 LyogRXhhbXBsZSBwcm9ncmFtIHRvIHRyaWdnZXIgcmVmZXJlbmNlIGJ1Z3MgaW4gY2Fpcm8teGNi CiAgIHdoZW4gcmVvcGVuaW5nIHRoZSBkaXNwbGF5LgogICBUaGlzIHByb2dyYW0gc2hvdWxkIGNy YXNoIHdpdGggdGhlIGZvbGxvd2luZyBlcnJvciBtZXNzYWdlOgogICBgYGAKICAgY2Fpcm8teGNi LXNjcmVlbi5jOjIxOTogX2dldF9zY3JlZW5faW5kZXg6IEFzc2VydGlvbiBgISJyZWFjaGVkIicg ZmFpbGVkLgogICBgYGAKICAgQ29tcGlsZSB3aXRoOgogICBnY2MgLVdhbGwgLW8gY2Fpcm8teGNi LWJ1ZyBjYWlyby14Y2ItYnVnLmMgYHBrZy1jb25maWcgLS1jZmxhZ3MgLS1saWJzIGNhaXJvLXhj YiB4MTEteGNiYCAtTzAgLWczCiAqLwoKI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3Rk aW8uaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgoKI2luY2x1ZGUgPHhjYi94Y2IuaD4KI2luY2x1ZGUg PFgxMS9YbGliLXhjYi5oPgoKI2luY2x1ZGUgPGNhaXJvLmg+CiNpbmNsdWRlIDxjYWlyby14Y2Iu aD4KCmNvbnN0IHVuc2lnbmVkIGludCB3aWR0aCA9IDEwMDsKY29uc3QgdW5zaWduZWQgaW50IGhl aWdodCA9IDEwMDsKCnZvaWQKZHJhdyAoY2Fpcm9fdCAqY3IpCnsKICBjYWlyb19wdXNoX2dyb3Vw IChjcik7CiAgY2Fpcm9fc2V0X3NvdXJjZV9yZ2IgKGNyLCAwLCAwLCAwKTsKICBjYWlyb19wYWlu dCAoY3IpOwogIGNhaXJvX21vdmVfdG8gKGNyLCAwLCAwKTsKICBjYWlyb19saW5lX3RvIChjciwg d2lkdGgsIGhlaWdodCk7CiAgY2Fpcm9fbW92ZV90byAoY3IsIDAsIHdpZHRoKTsKICBjYWlyb19s aW5lX3RvIChjciwgaGVpZ2h0LCAwKTsKICBjYWlyb19zZXRfc291cmNlX3JnYiAoY3IsIDEsIDEs IDEpOwogIGNhaXJvX3N0cm9rZSAoY3IpOwogIGNhaXJvX3BvcF9ncm91cF90b19zb3VyY2UgKGNy KTsKICBjYWlyb19wYWludCAoY3IpOwp9CgppbnQKbWFpbiAoKQp7CiAgRGlzcGxheSAqZGlzcGxh eTsKICB4Y2JfY29ubmVjdGlvbl90ICpjb25uZWN0aW9uOwogIHhjYl9zY3JlZW5fdCAqc2NyZWVu OwoKICB4Y2JfdmlzdWFsdHlwZV90ICAqdmlzdWFsX3R5cGU7CiAgY2Fpcm9fc3VyZmFjZV90ICpz dXJmYWNlOwogIC8vY2Fpcm9fZGV2aWNlX3QgKmRldmljZV9yZWY7IC8vIHBhcnQgb2YgdGhlIHJp dHVhbCBuZWVkZWQgdG8gYXZvaWQgYSBjcmFzaAogIGNhaXJvX3QgKmNvbnRleHQ7CgogIHByaW50 ZiAoIlByZXNzIGFueSBrZXkgb3IgbW91c2UgYnV0dG9uIGF0IHRoZSBYIFdpbmRvdyB0byBkZXN0 cm95IGl0IGFuZCByZWNyZWF0ZSBpdCBhZ2Fpbi5cblxuIik7CiAgcHJpbnRmICgiUHJlc3MgQy1j IGhlcmUgdG8gZXhpdC5cbiIpOwogIHdoaWxlICgxKQogICAgewogICAgICAvKiBSZXNldCBvdXIg dmFyaWFibGVzICAqLwogICAgICBkaXNwbGF5ID0gTlVMTDsKICAgICAgY29ubmVjdGlvbiA9IE5V TEw7CiAgICAgIHNjcmVlbiA9IE5VTEw7CiAgICAgIHZpc3VhbF90eXBlID0gTlVMTDsKICAgICAg c3VyZmFjZSA9IE5VTEw7CiAgICAgIC8vZGV2aWNlX3JlZiA9IE5VTEw7CiAgICAgIGNvbnRleHQg PSBOVUxMOwoKICAgICAgZGlzcGxheSA9IFhPcGVuRGlzcGxheSAoZ2V0ZW52ICgiRElTUExBWSIp KTsKICAgICAgaWYgKCFkaXNwbGF5KSB7CiAgICAgICAgcGVycm9yICgiQ2Fubm90IG9wZW4gZGlz cGxheSIpOwogICAgICAgIGV4aXQgKDEpOwogICAgICB9CgogICAgICAvKiBPcGVuIHRoZSBjb25u ZWN0aW9uIHRvIHRoZSBYIHNlcnZlciAqLwogICAgICBjb25uZWN0aW9uID0gWEdldFhDQkNvbm5l Y3Rpb24gKGRpc3BsYXkpOwogICAgICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgewogICAgICAg ICAgcGVycm9yICgiQ2Fubm90IG9wZW4gY29ubmVjdGlvbiIpOwogICAgICAgICAgZXhpdCAoMSk7 CiAgICAgICAgfQoKICAgICAgLyogR2V0IHRoZSBmaXJzdCBzY3JlZW4gKi8KICAgICAgc2NyZWVu ID0geGNiX3NldHVwX3Jvb3RzX2l0ZXJhdG9yICh4Y2JfZ2V0X3NldHVwIChjb25uZWN0aW9uKSku ZGF0YTsKCiAgICAgIC8qIENyZWF0ZSBhIHdpbmRvdyAgKi8KICAgICAgeGNiX2RyYXdhYmxlX3Qg d2luZG93ID0geGNiX2dlbmVyYXRlX2lkIChjb25uZWN0aW9uKTsKCiAgICAgIHVpbnQzMl90IG1h c2sgPSAgWENCX0NXX0JBQ0tfUElYTUFQIHwgWENCX0NXX0VWRU5UX01BU0s7CiAgICAgIHVpbnQz Ml90IHZhbHVlc1syXSA9IHtzY3JlZW4tPmJsYWNrX3BpeGVsLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgWENCX0VWRU5UX01BU0tfRVhQT1NVUkUgfAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgWENCX0VWRU5UX01BU0tfS0VZX1BSRVNTIHwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFhDQl9FVkVOVF9NQVNLX0JVVFRPTl9QUkVTU307CgogICAgICB4Y2JfY3JlYXRlX3dpbmRv dyAoY29ubmVjdGlvbiwgICAgICAgICAgICAgICAgICAgIC8qIGNvbm5lY3Rpb24gICAgICAgICAg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgIFhDQl9DT1BZX0ZST01fUEFSRU5ULCAgICAgICAg ICAvKiBkZXB0aCAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k b3csICAgICAgICAgICAgICAgICAgICAgICAgLyogd2luZG93IElkICAgICAgICAgICAqLwogICAg ICAgICAgICAgICAgICAgICAgICAgc2NyZWVuLT5yb290LCAgICAgICAgICAgICAgICAgIC8qIHBh cmVudCB3aW5kb3cgICAgICAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiB4LCB5ICAgICAgICAgICAgICAgICovCiAgICAgICAgICAg ICAgICAgICAgICAgICB3aWR0aCwgaGVpZ2h0LCAgICAgICAgICAgICAgICAgLyogd2lkdGgsIGhl aWdodCAgICAgICAqLwogICAgICAgICAgICAgICAgICAgICAgICAgMTAsICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIGJvcmRlcl93aWR0aCAgICAgICAgKi8KICAgICAgICAgICAgICAgICAg ICAgICAgIFhDQl9XSU5ET1dfQ0xBU1NfSU5QVVRfT1VUUFVULCAvKiBjbGFzcyAgICAgICAgICAg ICAgICovCiAgICAgICAgICAgICAgICAgICAgICAgICBYQ0JfQ09QWV9GUk9NX1BBUkVOVCwgICAg ICAgICAgLyogdmlzdWFsICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgICAgICAgICAg bWFzaywgdmFsdWVzICk7ICAgICAgICAgICAgICAgIC8qIG1hc2tzICovCgoKICAgICAgLyogTWFw IHRoZSB3aW5kb3cgb24gdGhlIHNjcmVlbiBhbmQgZmx1c2ggKi8KICAgICAgeGNiX21hcF93aW5k b3cgKGNvbm5lY3Rpb24sIHdpbmRvdyk7CiAgICAgIHhjYl9mbHVzaCAoY29ubmVjdGlvbik7Cgog ICAgICAvKiBCb2lsZXJwbGF0ZSB0byBnZXQgeGNiIHZpc3VhbCBmb3IgY2Fpcm8gICovCiAgICAg IGlmIChzY3JlZW4pCiAgICAgICAgewogICAgICAgICAgeGNiX2RlcHRoX2l0ZXJhdG9yX3QgZGVw dGhfaXRlcjsKCiAgICAgICAgICBkZXB0aF9pdGVyID0geGNiX3NjcmVlbl9hbGxvd2VkX2RlcHRo c19pdGVyYXRvciAoc2NyZWVuKTsKICAgICAgICAgIGZvciAoOyBkZXB0aF9pdGVyLnJlbTsgeGNi X2RlcHRoX25leHQgKCZkZXB0aF9pdGVyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgIHhj Yl92aXN1YWx0eXBlX2l0ZXJhdG9yX3QgdmlzdWFsX2l0ZXI7CgogICAgICAgICAgICAgIHZpc3Vh bF9pdGVyID0geGNiX2RlcHRoX3Zpc3VhbHNfaXRlcmF0b3IgKGRlcHRoX2l0ZXIuZGF0YSk7CiAg ICAgICAgICAgICAgZm9yICg7IHZpc3VhbF9pdGVyLnJlbTsgeGNiX3Zpc3VhbHR5cGVfbmV4dCAo JnZpc3VhbF9pdGVyKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgaWYgKHNj cmVlbi0+cm9vdF92aXN1YWwgPT0gdmlzdWFsX2l0ZXIuZGF0YS0+dmlzdWFsX2lkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIHZpc3VhbF90eXBlID0gdmlzdWFs X2l0ZXIuZGF0YTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgaWYg KCF2aXN1YWxfdHlwZSkgewogICAgICAgIHBlcnJvciAoIkJhZCB2aXN1YWwgdHlwZSIpOwogICAg ICAgIGV4aXQgKDEpOwogICAgICB9CgogICAgICBzdXJmYWNlID0gY2Fpcm9feGNiX3N1cmZhY2Vf Y3JlYXRlIChjb25uZWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHdpbmRvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXN1YWxfdHlw ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwgaGVpZ2h0KTsK CiAgICAgIGlmIChjYWlyb19zdXJmYWNlX3N0YXR1cyAoc3VyZmFjZSkgIT0gQ0FJUk9fU1RBVFVT X1NVQ0NFU1MpCiAgICAgICAgewogICAgICAgICAgcGVycm9yICgiQmFkIGNhaXJvIHN1cmZhY2Ui KTsKICAgICAgICAgIGV4aXQgKDEpOwogICAgICAgIH0KCiAgICAgIC8vZGV2aWNlX3JlZiA9IGNh aXJvX2RldmljZV9yZWZlcmVuY2UgKGRldmljZSk7IC8vIHBhcnQgb2YgdGhlIHJpdHVhbCB0byBt YWtlIHRoaXMgcHJvZ3JhbSBjcmFzaC1mcmVlCgogICAgICBjb250ZXh0ID0gY2Fpcm9fY3JlYXRl IChzdXJmYWNlKTsKICAgICAgaWYgKGNhaXJvX3N0YXR1cyAoY29udGV4dCkgIT0gQ0FJUk9fU1RB VFVTX1NVQ0NFU1MpCiAgICAgICAgewogICAgICAgICAgcGVycm9yICgiQmFkIGNhaXJvIGNvbnRl eHQiKTsKICAgICAgICAgIGV4aXQgKDEpOwogICAgICAgIH0KCiAgICAgIGludCBsb29wID0gMTsK ICAgICAgd2hpbGUgKGxvb3ApIHsKICAgICAgICB4Y2JfZ2VuZXJpY19ldmVudF90ICpldmVudDsK ICAgICAgICBldmVudCA9IHhjYl93YWl0X2Zvcl9ldmVudCAoY29ubmVjdGlvbik7CiAgICAgICAg c3dpdGNoIChldmVudC0+cmVzcG9uc2VfdHlwZSAmIH4weDgwKQogICAgICAgICAgewogICAgICAg ICAgY2FzZSBYQ0JfQlVUVE9OX1BSRVNTOgogICAgICAgICAgY2FzZSBYQ0JfS0VZX1BSRVNTOgog ICAgICAgICAgICBsb29wID0gMDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlIFhD Ql9FWFBPU0U6CiAgICAgICAgICAgIGRyYXcgKGNvbnRleHQpOwogICAgICAgICAgICBjYWlyb19z dXJmYWNlX2ZsdXNoIChzdXJmYWNlKTsgLy8gbm90IG5lZWRlZCBoZXJlLCBhcHBhcmVudGx5Pwog ICAgICAgICAgICB4Y2JfZmx1c2ggKGNvbm5lY3Rpb24pOwogICAgICAgICAgICBicmVhazsKICAg ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIC8qIFVua25vd24gZXZlbnQgdHlwZSwgaWdub3Jl IGl0ICAqLwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KCiAgICAgICAgZnJlZSAoZXZl bnQpOwogICAgICB9CiAgICAgIHVzbGVlcCAoMTAwMDAwKTsKCiAgICAgIGNhaXJvX2Rlc3Ryb3kg KGNvbnRleHQpOwogICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kgKHN1cmZhY2UpOwoKICAgICAg LyogTXVzdCBkZXN0cm95IHRoZSBkZXZpY2UgYmVmb3JlIGNsb3NpbmcgdGhlIGRpc3BsYXkKICAg ICAgICAgdG8gYXZvaWQgYnVncyB3aXRoIENhaXJvLVhDQiAgKi8KICAgICAgLy9jYWlyb19kZXZp Y2VfZmluaXNoIChkZXZpY2VfcmVmKTsKICAgICAgLy9jYWlyb19kZXZpY2VfZGVzdHJveSAoZGV2 aWNlX3JlZik7CgogICAgICBYQ2xvc2VEaXNwbGF5IChkaXNwbGF5KTsKICAgICAgdXNsZWVwICgx MDAwMDApOwogICAgfQoKICByZXR1cm4gMDsKfQo= --00000000000016fd5e05fc7128df--