From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Jaesup Kwak Newsgroups: gmane.emacs.bugs Subject: bug#29565: [PATCH] Support file download and upload (Bug#29565) Date: Thu, 21 Dec 2017 13:12:53 +0900 Message-ID: References: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="001a1140df566c2de10560d1ec8e" X-Trace: blaine.gmane.org 1513829540 27631 195.159.176.226 (21 Dec 2017 04:12:20 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 21 Dec 2017 04:12:20 +0000 (UTC) To: 29565@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Dec 21 05:12:16 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eRsDL-0006TZ-DY for geb-bug-gnu-emacs@m.gmane.org; Thu, 21 Dec 2017 05:12:11 +0100 Original-Received: from localhost ([::1]:58000 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eRsFJ-0000Gh-Fy for geb-bug-gnu-emacs@m.gmane.org; Wed, 20 Dec 2017 23:14:13 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49560) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eRsFC-0000GR-Nf for bug-gnu-emacs@gnu.org; Wed, 20 Dec 2017 23:14:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eRsF8-0003WA-SC for bug-gnu-emacs@gnu.org; Wed, 20 Dec 2017 23:14:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:36394) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eRsF8-0003Va-Fy for bug-gnu-emacs@gnu.org; Wed, 20 Dec 2017 23:14:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eRsF8-0006Zw-1P for bug-gnu-emacs@gnu.org; Wed, 20 Dec 2017 23:14:02 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Jaesup Kwak Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 21 Dec 2017 04:14:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 29565 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 29565-submit@debbugs.gnu.org id=B29565.151382962225256 (code B ref 29565); Thu, 21 Dec 2017 04:14:01 +0000 Original-Received: (at 29565) by debbugs.gnu.org; 21 Dec 2017 04:13:42 +0000 Original-Received: from localhost ([127.0.0.1]:45075 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eRsEn-0006ZI-UK for submit@debbugs.gnu.org; Wed, 20 Dec 2017 23:13:42 -0500 Original-Received: from mail-wm0-f51.google.com ([74.125.82.51]:46964) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eRsEm-0006Z5-Bg for 29565@debbugs.gnu.org; Wed, 20 Dec 2017 23:13:41 -0500 Original-Received: by mail-wm0-f51.google.com with SMTP id r78so13553508wme.5 for <29565@debbugs.gnu.org>; Wed, 20 Dec 2017 20:13:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=s1nj/E3xAjWTc/YR97DrDCJG90I17BQFOj/xf5f1tn0=; b=KoublrGWKPIqQnozdS2rQCLlVWPjwpvyFWDCs0RXYUYM1aDvDH2fcBooviqUPV1dp3 pvpToncgNOrgk/J6QrZXdXFjLK2d+7wTi9iAHDE1ayYYMZ58lP/478ENM2fuaVle87Am E3y/XPUBnEQGV5gyg1Uq9Vq255fGL2D+EWC8oSqLfe0+KyYSd8q0ErTbCdDzs+A5O7jJ MDBGqR7LR9mGNPn3DVG+Hg7jGF9mTfHobXFxAcvuxdl8v68ddZuxqvhHhBlSzC4RU+tz a6G2YUCzrMlKcciDNgZGVi+XTzx4FiRSsLwx7Pr3t0lOxd/5+GNJ0JugbinwoC4mybxi yOig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=s1nj/E3xAjWTc/YR97DrDCJG90I17BQFOj/xf5f1tn0=; b=WQrrUJXRH8wxb7ktRfbJD+stP1xympbcTAnIr1KjBHlOK/So9ROmtXmwEWYgvGDeNu m9wgiy/R3KVUNBD0GIol/uF2OOeTirJP0UzWis4Ei0WQHZofa4/STeQ0OwsmuAmcmVW3 R4RsTNeX/mc4o3wfLJF6XXlMqer+QZTIjGwTssYPfP8a1ywSWGoe6bAPGyKN2PNOhqMQ Vtmzn3rUk4Owkj5o9VsxOMiyWy9I1u4uHLQgjfgJrRjEx7Ew2O/0pnuvsDR8b1gHIGBZ ZXXBJQBIi242qZOnVPPkke9lik613ti00riP0s9MKpfXSX/S1sOSVK/lgovgwUqjqRlc UUJA== X-Gm-Message-State: AKGB3mIsWk4ZE2Y44kTqaL2hrLDyKzY0yy1AjGCGQpBxWGXW+EQpSnGm TeCrVvLNRenlqaSnYBlfo9uNpuOJP/eS/vCOkdNYH23d X-Google-Smtp-Source: ACJfBovaX6wvq6WWkr10+cD952d8xY7gHK8FKtphK+kXfA5U+m/7oQX8r7pOUfYyDL8UgxTCGc0p28hoAjWisxpOlRQ= X-Received: by 10.28.50.197 with SMTP id y188mr8113498wmy.159.1513829614485; Wed, 20 Dec 2017 20:13:34 -0800 (PST) Original-Received: by 10.28.227.67 with HTTP; Wed, 20 Dec 2017 20:12:53 -0800 (PST) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:141321 Archived-At: --001a1140df566c2de10560d1ec8e Content-Type: multipart/alternative; boundary="001a1140df566c2ddd0560d1ec8c" --001a1140df566c2ddd0560d1ec8c Content-Type: text/plain; charset="UTF-8" For the MIME types, which ns xwidget webkit cannot show in a view, 'xwidget-webkit-save-as-file' is called via 'response-callback' event. Ns xwidget webkit presents file open panel to select upload files. Tighter check for javascript availability. * lisp/xwidget.el (xwidget-webkit-callback): Add case for 'response-callback' event. (xwidget-webkit-download-dir): New variable. (xwidget-webkit-save-as-file): New function. * src/nsxwidget.m (XwWebView::decidePolicyForNavigationResponse): Store the event. And tighter check for javascript availability. (XwWebView::runOpenPanelWithParameters): Select upload files. * src/xwidget.c (store_xwidget_response_callback_event): New function. --001a1140df566c2ddd0560d1ec8c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
For the MIME types, which ns xwidget webkit cannot sh= ow in a view,
'xwidget-webkit-save-as-file' is called via= 'response-callback' event.

Ns xwidget web= kit presents file open panel to select upload files.

Tighter check for javascript availability.

* li= sp/xwidget.el
(xwidget-webkit-callback): Add case for 'respon= se-callback' event.
(xwidget-webkit-download-dir): New variab= le.
(xwidget-webkit-save-as-file): New function.
* src/= nsxwidget.m
(XwWebView::decidePolicyForNavigationResponse): Store= the event.=C2=A0 And
tighter check for javascript availability.<= /div>
(XwWebView::runOpenPanelWithParameters): Select upload files.
* src/xwidget.c
(store_xwidget_response_callback_event): N= ew function.

--001a1140df566c2ddd0560d1ec8c-- --001a1140df566c2de10560d1ec8e Content-Type: application/octet-stream; name="0001-Support-file-download-and-upload-Bug-29565.patch" Content-Disposition: attachment; filename="0001-Support-file-download-and-upload-Bug-29565.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jbfz1cbs0 RnJvbSBiNWUzZGIwOTBmNDM3MzRjMzY1Zjg2ZDkyY2FlMTEwN2Y4ZGY1Mzk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWVzdXAgS3dhayA8dmVzaGJvb0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMjEgRGVjIDIwMTcgMTI6MzY6NTEgKzA5MDAKU3ViamVjdDogW1BBVENIXSBTdXBwb3J0 IGZpbGUgZG93bmxvYWQgYW5kIHVwbG9hZCAoQnVnIzI5NTY1KQoKRm9yIHRoZSBNSU1FIHR5cGVz LCB3aGljaCBucyB4d2lkZ2V0IHdlYmtpdCBjYW5ub3Qgc2hvdyBpbiBhIHZpZXcsCid4d2lkZ2V0 LXdlYmtpdC1zYXZlLWFzLWZpbGUnIGlzIGNhbGxlZCB2aWEgJ3Jlc3BvbnNlLWNhbGxiYWNrJyBl dmVudC4KCk5zIHh3aWRnZXQgd2Via2l0IHByZXNlbnRzIGZpbGUgb3BlbiBwYW5lbCB0byBzZWxl Y3QgdXBsb2FkIGZpbGVzLgoKVGlnaHRlciBjaGVjayBmb3IgamF2YXNjcmlwdCBhdmFpbGFiaWxp dHkuCgoqIGxpc3AveHdpZGdldC5lbAooeHdpZGdldC13ZWJraXQtY2FsbGJhY2spOiBBZGQgY2Fz ZSBmb3IgJ3Jlc3BvbnNlLWNhbGxiYWNrJyBldmVudC4KKHh3aWRnZXQtd2Via2l0LWRvd25sb2Fk LWRpcik6IE5ldyB2YXJpYWJsZS4KKHh3aWRnZXQtd2Via2l0LXNhdmUtYXMtZmlsZSk6IE5ldyBm dW5jdGlvbi4KKiBzcmMvbnN4d2lkZ2V0Lm0KKFh3V2ViVmlldzo6ZGVjaWRlUG9saWN5Rm9yTmF2 aWdhdGlvblJlc3BvbnNlKTogU3RvcmUgdGhlIGV2ZW50LiAgQW5kCnRpZ2h0ZXIgY2hlY2sgZm9y IGphdmFzY3JpcHQgYXZhaWxhYmlsaXR5LgooWHdXZWJWaWV3OjpydW5PcGVuUGFuZWxXaXRoUGFy YW1ldGVycyk6IFNlbGVjdCB1cGxvYWQgZmlsZXMuCiogc3JjL3h3aWRnZXQuYwooc3RvcmVfeHdp ZGdldF9yZXNwb25zZV9jYWxsYmFja19ldmVudCk6IE5ldyBmdW5jdGlvbi4KLS0tCiBsaXNwL3h3 aWRnZXQuZWwgfCAyMyArKysrKysrKysrKysrKysrKysrKysrKwogc3JjL25zeHdpZGdldC5tIHwg MzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBzcmMveHdpZGdldC5jICAg fCAyMCArKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA3NyBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AveHdpZGdldC5lbCBiL2xpc3Av eHdpZGdldC5lbAppbmRleCA5MDFhNmJlOWEyLi42Yzg4MjYyZTQzIDEwMDY0NAotLS0gYS9saXNw L3h3aWRnZXQuZWwKKysrIGIvbGlzcC94d2lkZ2V0LmVsCkBAIC04NCw2ICs4NCw3IEBAIHh3aWRn ZXQtYXQKIChyZXF1aXJlICdicm93c2UtdXJsKQogKHJlcXVpcmUgJ2ltYWdlLW1vZGUpOztmb3Ig c29tZSBpbWFnZS1tb2RlIGFsaWtlIGZ1bmN0aW9uYWxpdHkKIChyZXF1aXJlICdzZXEpCisocmVx dWlyZSAndXJsLWhhbmRsZXJzKQogCiA7OzsjIyNhdXRvbG9hZAogKGRlZnVuIHh3aWRnZXQtd2Vi a2l0LWJyb3dzZS11cmwgKHVybCAmb3B0aW9uYWwgbmV3LXNlc3Npb24pCkBAIC0yODksNiArMjkw LDEyIEBAIHh3aWRnZXQtd2Via2l0LWNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgKHh3aWRn ZXQtd2Via2l0LXNob3ctaWQtb3ItbmFtZWQtZWxlbWVudAogICAgICAgICAgICAgICAgICAgICB4 d2lkZ2V0CiAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSBzdHJhcmcpKSkpKQor Ozs7IFRPRE86IFJlc3BvbnNlIGhhbmRsaW5nIG90aGVyIHRoYW4gZG93bmxvYWQuCisgICAgICAg ICAgICAoKGVxIHh3aWRnZXQtZXZlbnQtdHlwZSAncmVzcG9uc2UtY2FsbGJhY2spCisgICAgICAg ICAgICAgKGxldCAoKHVybCAgKG50aCAzIGxhc3QtaW5wdXQtZXZlbnQpKQorICAgICAgICAgICAg ICAgICAgIChtaW1lLXR5cGUgKG50aCA0IGxhc3QtaW5wdXQtZXZlbnQpKQorICAgICAgICAgICAg ICAgICAgIChmaWxlLW5hbWUgKG50aCA1IGxhc3QtaW5wdXQtZXZlbnQpKSkKKyAgICAgICAgICAg ICAgICh4d2lkZ2V0LXdlYmtpdC1zYXZlLWFzLWZpbGUgeHdpZGdldCB1cmwgbWltZS10eXBlIGZp bGUtbmFtZSkpKQogICAgICAgICAgICAgKChlcSB4d2lkZ2V0LWV2ZW50LXR5cGUgJ2phdmFzY3Jp cHQtY2FsbGJhY2spCiAgICAgICAgICAgICAgKGxldCAoKHByb2MgKG50aCAzIGxhc3QtaW5wdXQt ZXZlbnQpKQogICAgICAgICAgICAgICAgICAgIChhcmcgIChudGggNCBsYXN0LWlucHV0LWV2ZW50 KSkpCkBAIC0zMTcsNiArMzI0LDIyIEBAIHh3aWRnZXQtd2Via2l0LW1vZGUKICAgICA7OyBLZWVw IHRyYWNrIG9mIFt2aF1zY3JvbGwgd2hlbiBzd2l0Y2hpbmcgYnVmZmVycwogICAgIChpbWFnZS1t b2RlLXNldHVwLXdpbnByb3BzKSkKIAorOzs7IERvd25sb2FkLCBzYXZlIGFzIGZpbGUuCisKKyhk ZWZ2YXIgeHdpZGdldC13ZWJraXQtZG93bmxvYWQtZGlyICJ+L0Rvd25sb2Fkcy8iCisgICJEaXJl Y3Rvcnkgd2hlcmUgZG93bmxvYWQgZmlsZSBzYXZlZC4iKQorCisoZGVmdW4geHdpZGdldC13ZWJr aXQtc2F2ZS1hcy1maWxlICh4d2lkZ2V0IHVybCBtaW1lLXR5cGUgJm9wdGlvbmFsIGZpbGUtbmFt ZSkKKyAgIkZvciBYV0lER0VUIHdlYmtpdCwgc2F2ZSBVUkwgcmVzb3VyY2Ugb2YgTUlNRS1UWVBF IGFzIEZJTEUtTkFNRS4iCisgIChpZ25vcmUgeHdpZGdldCkgOzsgTm90IHVzZWQgY3VycmVudGx5 CisgIChsZXQgKChzYXZlLW5hbWUgKHJlYWQtZmlsZS1uYW1lCisgICAgICAgICAgICAgICAgICAg IChmb3JtYXQgIlNhdmUgJyVzJyBmaWxlIGFzOiAiIG1pbWUtdHlwZSkKKyAgICAgICAgICAgICAg ICAgICAgeHdpZGdldC13ZWJraXQtZG93bmxvYWQtZGlyIGZpbGUtbmFtZSBuaWwgZmlsZS1uYW1l KSkpCisgICAgKGlmIChmaWxlLWRpcmVjdG9yeS1wIHNhdmUtbmFtZSkKKyAgICAgICAgKHNldHEg c2F2ZS1uYW1lIChjb25jYXQgKGZpbGUtbmFtZS1hcy1kaXJlY3Rvcnkgc2F2ZS1uYW1lKSBmaWxl LW5hbWUpKSkKKyAgICAoc2V0cSB4d2lkZ2V0LXdlYmtpdC1kb3dubG9hZC1kaXIgKGZpbGUtbmFt ZS1kaXJlY3Rvcnkgc2F2ZS1uYW1lKSkKKyAgICAodXJsLWNvcHktZmlsZSB1cmwgc2F2ZS1uYW1l IHQpKSkKKwogOzs7IEJvb2ttYXJrcyBpbnRlZ3JhdGlvbgogCiAoZGVmdmFyIHh3aWRnZXQtd2Vi a2l0LWJvb2ttYXJrLWp1bXAtbmV3LXNlc3Npb24gbmlsCmRpZmYgLS1naXQgYS9zcmMvbnN4d2lk Z2V0Lm0gYi9zcmMvbnN4d2lkZ2V0Lm0KaW5kZXggZWUyOTU1MThiOC4uMjJiYWFlY2VkZiAxMDA2 NDQKLS0tIGEvc3JjL25zeHdpZGdldC5tCisrKyBiL3NyYy9uc3h3aWRnZXQubQpAQCAtMzMsNiAr MzMsMTEgQEAgdm9pZCBzdG9yZV94d2lkZ2V0X2V2ZW50X3N0cmluZyAoc3RydWN0IHh3aWRnZXQg Knh3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXZlbnRu YW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXZlbnRz dHIpOwogCit2b2lkIHN0b3JlX3h3aWRnZXRfcmVzcG9uc2VfY2FsbGJhY2tfZXZlbnQgKHN0cnVj dCB4d2lkZ2V0ICp4dywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICptaW1ldHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZmlsZW5hbWUpOworCiB2b2lkIHN0b3JlX3h3 aWRnZXRfanNfY2FsbGJhY2tfZXZlbnQgKHN0cnVjdCB4d2lkZ2V0ICp4dywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzcF9PYmplY3QgcHJvYywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzcF9PYmplY3QgYXJndW1lbnQpOwpAQCAtMTQy LDcgKzE0NywxNSBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcKIHsKICAg aWYgKCFuYXZpZ2F0aW9uUmVzcG9uc2UuY2FuU2hvd01JTUVUeXBlKQogICAgIHsKLSAgICAgIC8q IFRPRE86IGRvd25sb2FkIHVzaW5nIE5TVVJMeHh4PyAgKi8KKyAgICAgIE5TU3RyaW5nICp1cmwg PSBuYXZpZ2F0aW9uUmVzcG9uc2UucmVzcG9uc2UuVVJMLmFic29sdXRlU3RyaW5nOworICAgICAg TlNTdHJpbmcgKm1pbWV0eXBlID0gbmF2aWdhdGlvblJlc3BvbnNlLnJlc3BvbnNlLk1JTUVUeXBl OworICAgICAgTlNTdHJpbmcgKmZpbGVuYW1lID0gbmF2aWdhdGlvblJlc3BvbnNlLnJlc3BvbnNl LnN1Z2dlc3RlZEZpbGVuYW1lOworICAgICAgZGVjaXNpb25IYW5kbGVyIChXS05hdmlnYXRpb25S ZXNwb25zZVBvbGljeUNhbmNlbCk7CisgICAgICBzdG9yZV94d2lkZ2V0X3Jlc3BvbnNlX2NhbGxi YWNrX2V2ZW50IChzZWxmLnh3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdXJsLlVURjhTdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtaW1ldHlwZS5VVEY4U3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUuVVRGOFN0cmluZyk7CisgICAgICByZXR1 cm47CiAgICAgfQogICBkZWNpc2lvbkhhbmRsZXIgKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5 QWxsb3cpOwogCkBAIC0xNTcsNyArMTcwLDEwIEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3 ICopd2ViVmlldwogICAgICAgICB7CiAgICAgICAgICAgLyogVE9ETzogU2xvcHB5IHBhcnNpbmcg b2YgJ0NvbnRlbnQtU2VjdXJpdHktUG9saWN5JyB2YWx1ZS4gICovCiAgICAgICAgICAgTlNSYW5n ZSBzYW5kYm94ID0gW3ZhbHVlIHJhbmdlT2ZTdHJpbmc6QCJzYW5kYm94Il07Ci0gICAgICAgICAg aWYgKHNhbmRib3gubG9jYXRpb24gIT0gTlNOb3RGb3VuZCkKKyAgICAgICAgICBpZiAoc2FuZGJv eC5sb2NhdGlvbiAhPSBOU05vdEZvdW5kCisgICAgICAgICAgICAgICYmIChzYW5kYm94LmxvY2F0 aW9uID09IDAKKyAgICAgICAgICAgICAgICAgIHx8IFt2YWx1ZSBjaGFyYWN0ZXJBdEluZGV4Oihz YW5kYm94LmxvY2F0aW9uIC0gMSldID09ICcgJworICAgICAgICAgICAgICAgICAgfHwgW3ZhbHVl IGNoYXJhY3RlckF0SW5kZXg6KHNhbmRib3gubG9jYXRpb24gLSAxKV0gPT0gJzsnKSkKICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgTlNSYW5nZSBhbGxvd1NjcmlwdHMgPSBbdmFsdWUgcmFu Z2VPZlN0cmluZzpAImFsbG93LXNjcmlwdHMiXTsKICAgICAgICAgICAgICAgaWYgKGFsbG93U2Ny aXB0cy5sb2NhdGlvbiA9PSBOU05vdEZvdW5kCkBAIC0xODEsNiArMTk3LDIyIEBAIC0gKFdLV2Vi VmlldyAqKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcKICAgcmV0dXJuIG5pbDsKIH0KIAor LyogT3BlbiBwYW5lbCBmb3IgZmlsZSB1cGxvYWQuICAqLworLSAodm9pZCl3ZWJWaWV3OihXS1dl YlZpZXcgKil3ZWJWaWV3CitydW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyczooV0tPcGVuUGFuZWxQ YXJhbWV0ZXJzICopcGFyYW1ldGVycworaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilm cmFtZQorY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8TlNVUkwgKj4gKlVSTHMp KWNvbXBsZXRpb25IYW5kbGVyCit7CisgIE5TT3BlblBhbmVsICpvcGVuUGFuZWwgPSBbTlNPcGVu UGFuZWwgb3BlblBhbmVsXTsKKyAgb3BlblBhbmVsLmNhbkNob29zZUZpbGVzID0gWUVTOworICBv cGVuUGFuZWwuY2FuQ2hvb3NlRGlyZWN0b3JpZXMgPSBOTzsKKyAgb3BlblBhbmVsLmFsbG93c011 bHRpcGxlU2VsZWN0aW9uID0gcGFyYW1ldGVycy5hbGxvd3NNdWx0aXBsZVNlbGVjdGlvbjsKKyAg aWYgKFtvcGVuUGFuZWwgcnVuTW9kYWxdID09IE5TTW9kYWxSZXNwb25zZU9LKQorICAgIGNvbXBs ZXRpb25IYW5kbGVyIChvcGVuUGFuZWwuVVJMcyk7CisgIGVsc2UKKyAgICBjb21wbGV0aW9uSGFu ZGxlciAobmlsKTsKK30KKwogLyogQnkgZm9yd2FyZGluZyBtb3VzZSBldmVudHMgdG8gZW1hY3Mg dmlldyAoZnJhbWUpCiAgICAtIE1vdXNlIGNsaWNrIGluIHdlYnZpZXcgc2VsZWN0cyB0aGUgd2lu ZG93IGNvbnRhaW5zIHRoZSB3ZWJ2aWV3LgogICAgLSBDb3JyZWN0IG1vdXNlIGhhbmQvYXJyb3cv SS1iZWFtIGlzIGRpc3BsYXllZCAoVE9ETzogbm90IHBlcmZlY3QgeWV0KS4KZGlmZiAtLWdpdCBh L3NyYy94d2lkZ2V0LmMgYi9zcmMveHdpZGdldC5jCmluZGV4IDYwZTgyNjAzNzcuLmM2YTgyMThj NTYgMTAwNjQ0Ci0tLSBhL3NyYy94d2lkZ2V0LmMKKysrIGIvc3JjL3h3aWRnZXQuYwpAQCAtMjU1 LDYgKzI1NSwyNiBAQCBzdG9yZV94d2lkZ2V0X2V2ZW50X3N0cmluZyAoc3RydWN0IHh3aWRnZXQg Knh3LCBjb25zdCBjaGFyICpldmVudG5hbWUsCiAgIGtiZF9idWZmZXJfc3RvcmVfZXZlbnQgKCZl dmVudCk7CiB9CiAKK3ZvaWQKK3N0b3JlX3h3aWRnZXRfcmVzcG9uc2VfY2FsbGJhY2tfZXZlbnQg KHN0cnVjdCB4d2lkZ2V0ICp4dywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKnVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKm1pbWV0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqZmlsZW5hbWUpCit7CisgIHN0cnVjdCBpbnB1dF9ldmVudCBl dmVudDsKKyAgTGlzcF9PYmplY3QgeHdsOworICBYU0VUWFdJREdFVCAoeHdsLCB4dyk7CisgIEVW RU5UX0lOSVQgKGV2ZW50KTsKKyAgZXZlbnQua2luZCA9IFhXSURHRVRfRVZFTlQ7CisgIGV2ZW50 LmZyYW1lX29yX3dpbmRvdyA9IFFuaWw7CisgIGV2ZW50LmFyZyA9IGxpc3Q1IChpbnRlcm4gKCJy ZXNwb25zZS1jYWxsYmFjayIpLAorICAgICAgICAgICAgICAgICAgICAgeHdsLAorICAgICAgICAg ICAgICAgICAgICAgYnVpbGRfc3RyaW5nICh1cmwpLAorICAgICAgICAgICAgICAgICAgICAgYnVp bGRfc3RyaW5nIChtaW1ldHlwZSksCisgICAgICAgICAgICAgICAgICAgICBidWlsZF9zdHJpbmcg KGZpbGVuYW1lKSk7CisgIGtiZF9idWZmZXJfc3RvcmVfZXZlbnQgKCZldmVudCk7Cit9CisKIHZv aWQKIHN0b3JlX3h3aWRnZXRfanNfY2FsbGJhY2tfZXZlbnQgKHN0cnVjdCB4d2lkZ2V0ICp4dywK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3BfT2JqZWN0IHByb2MsCi0tIAoy LjE1LjAKCg== --001a1140df566c2de10560d1ec8e--