From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleh Subject: Re: Drag images from Firefox to org-mode Date: Sat, 4 Jan 2014 16:01:03 +0100 Message-ID: References: <87eh7irjvi.fsf@yahoo.fr> <52610C29.3000505@yahoo.fr> <526114B4.6060303@yahoo.fr> <2d5635af9ad6d51badb40e1e19c85572@mail.rickster.com> <87y55qpp44.fsf@yahoo.fr> <857b1a922e24dda4404df4d19fabd7e2@mail.rickster.com> <20131018204553.GA87254@BigDog.local> <87k3h7ptcc.fsf@yahoo.fr> <23f3f3530f88fa5571d80b8c38adf4c6@mail.rickster.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=20cf30223a9ba954de04ef264b76 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:60977) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VzSiq-0002NS-3B for emacs-orgmode@gnu.org; Sat, 04 Jan 2014 10:01:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VzSio-0007dZ-6F for emacs-orgmode@gnu.org; Sat, 04 Jan 2014 10:01:08 -0500 Received: from mail-bk0-x22f.google.com ([2a00:1450:4008:c01::22f]:43102) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VzSin-0007d6-Me for emacs-orgmode@gnu.org; Sat, 04 Jan 2014 10:01:06 -0500 Received: by mail-bk0-f47.google.com with SMTP id mx12so5127749bkb.6 for ; Sat, 04 Jan 2014 07:01:04 -0800 (PST) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Rick Frankel Cc: Nicolas Richard , org mode --20cf30223a9ba954de04ef264b76 Content-Type: text/plain; charset=ISO-8859-1 Hi all, Here's a patch to add org-download to org-mode. I've had the additional features (the screenshots and local files) implemented some time ago, but never got around to wrapping it up. Feedback welcome. regards Oleh > There's still two functionality bits that I want to add: > local files and forwarding to default dnd handlers in the case it's > not an image. > But that can be added in later. > Please make the changes that you think are necessary and commit to org. > > regards, > Oleh --20cf30223a9ba954de04ef264b76 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Add-image-drag-and-drop-and-screenshot-support-to-or.patch" Content-Disposition: attachment; filename="0001-Add-image-drag-and-drop-and-screenshot-support-to-or.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hq1013s10 RnJvbSA2ZDc2NTc3ZTgwZjhhZjI3OTUzMjFhOWNiMGYwZTkyYmIwMmI4MzQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBPbGVoIEtyZWhlbCA8b2h3b2Vvd2hvQGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCA0IEphbiAyMDE0IDE1OjE3OjAwICswMTAwClN1YmplY3Q6IFtQQVRDSF0gQWRkIGlt YWdlIGRyYWctYW5kLWRyb3AgYW5kIHNjcmVlbnNob3Qgc3VwcG9ydCB0byBvcmctbW9kZS4KCi0t LQogbGlzcC9vcmctZG93bmxvYWQuZWwgfCAzMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMzM2IGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaXNwL29yZy1kb3dubG9hZC5lbAoKZGlmZiAtLWdpdCBh L2xpc3Avb3JnLWRvd25sb2FkLmVsIGIvbGlzcC9vcmctZG93bmxvYWQuZWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzkzMTJjZgotLS0gL2Rldi9udWxsCisrKyBiL2xpc3Av b3JnLWRvd25sb2FkLmVsCkBAIC0wLDAgKzEsMzM2IEBACis7Ozsgb3JnLWRvd25sb2FkLmVsIC0t LSBJbWFnZSBkcmFnLWFuZC1kcm9wIGZvciBFbWFjcyBvcmctbW9kZQorCis7OyBDb3B5cmlnaHQg KEMpIDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKzs7IEF1dGhvcjogT2xl aCBLcmVoZWwKKzs7IEtleXdvcmRzOiBpbWFnZXMsIHNjcmVlbnNob3RzLCBkb3dubG9hZAorOzsg SG9tZXBhZ2U6IGh0dHA6Ly9vcmdtb2RlLm9yZworCis7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBH TlUgRW1hY3MuCisKKzs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cis7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKzs7 IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKzs7IEdOVSBFbWFjcyBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzsgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK Kzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCis7OyBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworOzs7IENvbW1lbnRhcnk6Cis7OworOzsg VGhpcyBleHRlbnNpb24gZmFjaWxpdGF0ZXMgbW92aW5nIGltYWdlcyBmcm9tIHBvaW50IEEgdG8g cG9pbnQgQi4KKzs7Cis7OyBQb2ludCBBICh0aGUgc291cmNlKSBjYW4gYmU6Cis7OyAxLiBBbiBp bWFnZSBpbnNpZGUgeW91ciBicm93c2VyIHRoYXQgeW91IGNhbiBkcmFnIHRvIEVtYWNzLgorOzsg Mi4gQW4gaW1hZ2Ugb24geW91ciBmaWxlIHN5c3RlbSB0aGF0IHlvdSBjYW4gZHJhZyB0byBFbWFj cy4KKzs7IDMuIEEgbG9jYWwgb3IgcmVtb3RlIGltYWdlIGFkZHJlc3MgaW4ga2lsbC1yaW5nLgor OzsgICAgVXNlIHRoZSBgb3JnLWRvd25sb2FkLXlhbmsnIGNvbW1hbmQgZm9yIHRoaXMuCis7OyAg ICBSZW1lbWJlciB0aGF0IHlvdSBjYW4gdXNlICIwIHciIGluIGBkaXJlZCcgdG8gZ2V0IGFuIGFk ZHJlc3MuCis7OyA0LiBBbiBzY3JlZW5zaG90IHRha2VuIHVzaW5nIGBnbm9tZS1zY3JlZW5zaG90 JyBvciBgc2Nyb3QnIG9yIGBnbScuCis7OyAgICBVc2UgdGhlIGBvcmctZG93bmxvYWQtc2NyZWVu c2hvdCcgY29tbWFuZCBmb3IgdGhpcy4KKzs7ICAgIEN1c3RvbWl6ZSB0aGUgYmFja2VuZCB3aXRo ICBgb3JnLWRvd25sb2FkLXNjcmVlbnNob3QtbWV0aG9kJy4KKzs7Cis7OyBQb2ludCBCICh0aGUg dGFyZ2V0KSBpcyBhbiBFbWFjcyBgb3JnLW1vZGUnIGJ1ZmZlciB3aGVyZSB0aGUgaW5saW5lCis7 OyBsaW5rIHdpbGwgYmUgaW5zZXJ0ZWQuICBTZXZlcmFsIGN1c3RvbWl6YXRpb24gb3B0aW9ucyB3 aWxsIGRldGVybWluZQorOzsgd2hlcmUgZXhhY3RseSBvbiB0aGUgZmlsZSBzeXN0ZW0gdGhlIGZp bGUgd2lsbCBiZSBzdG9yZWQuCis7OworOzsgVGhleSBhcmU6Cis7OyBgb3JnLWRvd25sb2FkLW1l dGhvZCc6Cis7OyBhLiAnYXR0YWNoID0+IHVzZSBgb3JnLW1vZGUnIGF0dGFjaG1lbnQgbWFjaGlu ZXJ5Cis7OyBiLiAnZGlyZWN0b3J5ID0+IGNvbnN0cnVjdCB0aGUgZGlyZWN0b3J5IGluIHR3byBz dGFnZXM6Cis7OyAgICAxLiBmaXJzdCBwYXJ0IG9mIHRoZSBmb2xkZXIgbmFtZSBpczoKKzs7ICAg ICAgICogZWl0aGVyICIuIiAoY3VycmVudCBmb2xkZXIpCis7OyAgICAgICAqIG9yIGBvcmctZG93 bmxvYWQtaW1hZ2UtZGlyJyAoaWYgaXQncyBub3QgbmlsKS4KKzs7ICAgICAgICAgYG9yZy1kb3du bG9hZC1pbWFnZS1kaXInIGJlY29tZXMgYnVmZmVyLWxvY2FsIHdoZW4gc2V0LAorOzsgICAgICAg ICBzbyBlYWNoIGZpbGUgY2FuIGN1c3RvbWl6ZSB0aGlzIHZhbHVlLCBlLmcgd2l0aDoKKzs7ICAg ICAgICAgIyAtKi0gbW9kZTogT3JnOyBvcmctZG93bmxvYWQtaW1hZ2UtZGlyOiB+L1BpY3R1cmVz L2ZvbzsgLSotCis7OyAgICAyLiBzZWNvbmQgcGFydCBpczoKKzs7ICAgICAgICogYG9yZy1kb3du bG9hZC1oZWFkaW5nLWx2bCcgaXMgbmlsID0+ICIiCis7OyAgICAgICAqIGBvcmctZG93bmxvYWQt aGVhZGluZy1sdmwnIGlzIG4gPT4gdGhlIG5hbWUgb2YgY3VycmVudAorOzsgICAgICAgICBoZWFk aW5nIHdpdGggbGV2ZWwgbi4gTGV2ZWwgY291bnQgc3RhcnRzIHdpdGggMCwKKzs7ICAgICAgICAg aS5lLiAqIGlzIDAsICoqIGlzIDEsICoqKiBpcyAyIGV0Yy4KKzs7ICAgICAgICAgYG9yZy1kb3du bG9hZC1oZWFkaW5nLWx2bCcgYmVjb21lcyBidWZmZXItbG9jYWwgd2hlbiBzZXQsCis7OyAgICAg ICAgIHNvIGVhY2ggZmlsZSBjYW4gY3VzdG9taXplIHRoaXMgdmFsdWUsIGUuZyB3aXRoOgorOzsg ICAgICAgICAjIC0qLSBtb2RlOiBPcmc7IG9yZy1kb3dubG9hZC1oZWFkaW5nLWx2bDogbmlsOyAt Ki0KKzs7Cis7OyBgb3JnLWRvd25sb2FkLXRpbWVzdGFtcCc6Cis7OyBvcHRpb25hbGx5IGFkZCBh IHRpbWVzdGFtcCB0byB0aGUgZmlsZSBuYW1lLgorOzsKKzs7IEN1c3RvbWl6ZSBgb3JnLWRvd25s b2FkLWJhY2tlbmQnIHRvIGNob29zZSBiZXR3ZWVuIGB1cmwtcmV0cmlldmUnCis7OyAodGhlIGRl ZmF1bHQpIG9yIGB3Z2V0JyBvciBgY3VybCcuCis7OworOzs7IENvZGU6CisMCisKKyhldmFsLXdo ZW4tY29tcGlsZQorICAocmVxdWlyZSAnY2wpKQorKHJlcXVpcmUgJ3VybC1wYXJzZSkKKyhyZXF1 aXJlICd1cmwtaHR0cCkKKworKGRlZmdyb3VwIG9yZy1kb3dubG9hZCBuaWwKKyAgIkltYWdlIGRy YWctYW5kLWRyb3AgZm9yIG9yZy1tb2RlLiIKKyAgOmdyb3VwICdvcmcKKyAgOnByZWZpeCAib3Jn LWRvd25sb2FkLSIpCisKKyhkZWZjdXN0b20gb3JnLWRvd25sb2FkLW1ldGhvZCAnZGlyZWN0b3J5 CisgICJUaGUgd2F5IGltYWdlcyBzaG91bGQgYmUgc3RvcmVkLiIKKyAgOnR5cGUgJyhjaG9pY2UK KyAgICAgICAgICAoY29uc3QgOnRhZyAiRGlyZWN0b3J5IiBkaXJlY3RvcnkpCisgICAgICAgICAg KGNvbnN0IDp0YWcgIkF0dGFjaG1lbnQiIGF0dGFjaCkpCisgIDpncm91cCAnb3JnLWRvd25sb2Fk KQorCisoZGVmY3VzdG9tIG9yZy1kb3dubG9hZC1pbWFnZS1kaXIgbmlsCisgICJJZiBzZXQsIGlt YWdlcyB3aWxsIGJlIHN0b3JlZCBpbiB0aGlzIGRpcmVjdG9yeSBpbnN0ZWFkIG9mIFwiLlwiLgor U2VlIGBvcmctZG93bmxvYWQtLWRpci0xJyBmb3IgbW9yZSBpbmZvLiIKKyAgOnR5cGUgJyhjaG9p Y2UKKyAgICAgICAgICAoY29uc3QgOnRhZyAiRGVmYXVsdCIgbmlsKQorICAgICAgICAgIChzdHJp bmcgOnRhZyAiRGlyZWN0b3J5IikpCisgIDpncm91cCAnb3JnLWRvd25sb2FkKQorKG1ha2UtdmFy aWFibGUtYnVmZmVyLWxvY2FsICdvcmctZG93bmxvYWQtaW1hZ2UtZGlyKQorCisoZGVmY3VzdG9t IG9yZy1kb3dubG9hZC1oZWFkaW5nLWx2bCAwCisgICJIZWFkaW5nIGxldmVsIHRvIGJlIHVzZWQg aW4gYG9yZy1kb3dubG9hZC0tZGlyLTInLiIKKyAgOmdyb3VwICdvcmctZG93bmxvYWQpCisobWFr ZS12YXJpYWJsZS1idWZmZXItbG9jYWwgJ29yZy1kb3dubG9hZC1oZWFkaW5nLWx2bCkKKworKGRl ZmN1c3RvbSBvcmctZG93bmxvYWQtYmFja2VuZCB0CisgICJNZXRob2QgdG8gdXNlIGZvciBkb3du bG9hZGluZy4iCisgIDp0eXBlICcoY2hvaWNlCisgICAgICAgICAgKGNvbnN0IDp0YWcgIndnZXQi ICJ3Z2V0IFwiJXNcIiAtTyBcIiVzXCIiKQorICAgICAgICAgIChjb25zdCA6dGFnICJjdXJsIiAi Y3VybCBcIiVzXCIgLW8gXCIlc1wiIikKKyAgICAgICAgICAoY29uc3QgOnRhZyAidXJsLXJldHJp ZXZlIiB0KSkKKyAgOmdyb3VwICdvcmctZG93bmxvYWQpCisKKyhkZWZjdXN0b20gb3JnLWRvd25s b2FkLXRpbWVzdGFtcCAiXyVZLSVtLSVkXyVIOiVNOiVTIgorICAiVGhpcyBgZm9ybWF0LXRpbWUt c3RyaW5nJy1zdHlsZSBzdHJpbmcgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZmlsZSBuYW1lLgor U2V0IHRoaXMgdG8gXCJcIiBpZiB5b3UgZG9uJ3Qgd2FudCB0aW1lIHN0YW1wcy4iCisgIDp0eXBl ICdzdHJpbmcKKyAgOmdyb3VwICdvcmctZG93bmxvYWQpCisKKyhkZWZjdXN0b20gb3JnLWRvd25s b2FkLXNjcmVlbnNob3QtbWV0aG9kICJnbm9tZS1zY3JlZW5zaG90IC1hIC1mICVzIgorICAiVGhl IHRvb2wgdG8gY2FwdHVyZSBzY3JlZW5zaG90cy4iCisgIDp0eXBlICcoY2hvaWNlCisgICAgICAg ICAgKGNvbnN0IDp0YWcgImdub21lLXNjcmVlbnNob3QiICJnbm9tZS1zY3JlZW5zaG90IC1hIC1m ICVzIikKKyAgICAgICAgICAoY29uc3QgOnRhZyAic2Nyb3QiICJzY3JvdCAtcyAlcyIpCisgICAg ICAgICAgKGNvbnN0IDp0YWcgImdtIiAiZ20gaW1wb3J0ICVzIikpCisgIDpncm91cCAnb3JnLWRv d25sb2FkKQorCisoZGVmY3VzdG9tIG9yZy1kb3dubG9hZC1pbWFnZS13aWR0aCAwCisgICJXaGVu IG5vbi16ZXJvIGFkZCAjK2F0dHJfaHRtbDogOndpZHRoIHRhZyB0byB0aGUgaW1hZ2UuIgorICA6 dHlwZSAnaW50ZWdlcgorICA6Z3JvdXAgJ29yZy1kb3dubG9hZCkKKworKGRlZnVuIG9yZy1kb3du bG9hZC1nZXQtaGVhZGluZyAobHZsKQorICAiUmV0dXJuIHRoZSBoZWFkaW5nIG9mIHRoZSBjdXJy ZW50IGVudHJ5J3MgTFZMIGxldmVsIHBhcmVudC4iCisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChs ZXQgKChjdXItbHZsIChvcmctY3VycmVudC1sZXZlbCkpKQorICAgICAgKHVubGVzcyAoPSBjdXIt bHZsIDEpCisgICAgICAgIChvcmctdXAtaGVhZGluZy1hbGwgKC0gKDEtIChvcmctY3VycmVudC1s ZXZlbCkpIGx2bCkpKQorICAgICAgKHN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgKG9y Zy1nZXQtaGVhZGluZykpKSkpCisKKyhkZWZ1biBvcmctZG93bmxvYWQtLWRpci0xICgpCisgICJS ZXR1cm4gdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGRpcmVjdG9yeSBwYXRoIGZvciBgb3JnLWRvd25s b2FkLS1kaXInLgorSXQncyBgb3JnLWRvd25sb2FkLWltYWdlLWRpcicsIHVubGVzcyBpdCdzIG5p bC4gIFRoZW4gaXQncyBcIi5cIi4iCisgIChvciBvcmctZG93bmxvYWQtaW1hZ2UtZGlyICIuIikp CisKKyhkZWZ1biBvcmctZG93bmxvYWQtLWRpci0yICgpCisgICJSZXR1cm4gdGhlIHNlY29uZCBw YXJ0IG9mIHRoZSBkaXJlY3RvcnkgcGF0aCBmb3IgYG9yZy1kb3dubG9hZC0tZGlyJy4KK1VubGVz cyBgb3JnLWRvd25sb2FkLWhlYWRpbmctbHZsJyBpcyBuaWwsIGl0J3MgdGhlIG5hbWUgb2YgdGhl IGN1cnJlbnQKK2BvcmctZG93bmxvYWQtaGVhZGluZy1sdmwnLWxldmVsZWQgaGVhZGluZy4gIE90 aGVyd2lzZSBpdCdzIFwiXCIuIgorICAoYW5kIG9yZy1kb3dubG9hZC1oZWFkaW5nLWx2bAorICAg ICAgIChvcmctZG93bmxvYWQtZ2V0LWhlYWRpbmcKKyAgICAgICAgb3JnLWRvd25sb2FkLWhlYWRp bmctbHZsKSkpCisKKyhkZWZ1biBvcmctZG93bmxvYWQtLWRpciAoKQorICAiUmV0dXJuIHRoZSBk aXJlY3RvcnkgcGF0aCBmb3IgaW1hZ2Ugc3RvcmFnZS4KKworVGhlIHBhdGggaXMgY29tcG9zZWQg ZnJvbSBgb3JnLWRvd25sb2FkLS1kaXItMScgYW5kIGBvcmctZG93bmxvYWQtLWRpci0yJy4KK1Ro ZSBkaXJlY3RvcnkgaXMgY3JlYXRlZCBpZiBpdCBkaWRuJ3QgZXhpc3QgYmVmb3JlLiIKKyAgKGxl dCogKChwYXJ0MSAob3JnLWRvd25sb2FkLS1kaXItMSkpCisgICAgICAgICAocGFydDIgKG9yZy1k b3dubG9hZC0tZGlyLTIpKQorICAgICAgICAgKGRpciAoaWYgcGFydDIKKyAgICAgICAgICAgICAg ICAgIChmb3JtYXQgIiVzLyVzIiBwYXJ0MSBwYXJ0MikKKyAgICAgICAgICAgICAgICBwYXJ0MSkp KQorICAgICh1bmxlc3MgKGZpbGUtZXhpc3RzLXAgZGlyKQorICAgICAgKG1ha2UtZGlyZWN0b3J5 IGRpciB0KSkKKyAgICBkaXIpKQorCisoZGVmdW4gb3JnLWRvd25sb2FkLS1mdWxsbmFtZSAobGlu aykKKyAgIlJldHVybiB0aGUgZmlsZSBuYW1lIHdoZXJlIExJTksgd2lsbCBiZSBzYXZlZCB0by4K KworSXQncyBhZmZlY3RlZCBieSBgb3JnLWRvd25sb2FkLXRpbWVzdGFtcCcgYW5kIGBvcmctZG93 bmxvYWQtLWRpcicuIgorICAobGV0ICgoZmlsZW5hbWUKKyAgICAgICAgIChmaWxlLW5hbWUtbm9u ZGlyZWN0b3J5CisgICAgICAgICAgKGNhciAodXJsLXBhdGgtYW5kLXF1ZXJ5CisgICAgICAgICAg ICAgICAgKHVybC1nZW5lcmljLXBhcnNlLXVybCBsaW5rKSkpKSkKKyAgICAgICAgKGRpciAob3Jn LWRvd25sb2FkLS1kaXIpKSkKKyAgICAoZm9ybWF0ICIlcy8lcyVzLiVzIgorICAgICAgICAgICAg ZGlyCisgICAgICAgICAgICAoZmlsZS1uYW1lLXNhbnMtZXh0ZW5zaW9uIGZpbGVuYW1lKQorICAg ICAgICAgICAgKGZvcm1hdC10aW1lLXN0cmluZyBvcmctZG93bmxvYWQtdGltZXN0YW1wKQorICAg ICAgICAgICAgKGZpbGUtbmFtZS1leHRlbnNpb24gZmlsZW5hbWUpKSkpCisKKyhkZWZ1biBvcmct ZG93bmxvYWQtLWltYWdlIChsaW5rIGZpbGVuYW1lKQorICAiU2F2ZSBMSU5LIHRvIEZJTEVOQU1F IGFzeW5jaHJvbm91c2x5IGFuZCBzaG93IGlubGluZSBpbWFnZXMgaW4gY3VycmVudCBidWZmZXIu IgorICAod2hlbiAoc3RyaW5nLW1hdGNoICJeZmlsZTovL1xcKC4qXFwpIiBsaW5rKQorICAgIChz ZXRxIGxpbmsgKHVybC11bmhleC1zdHJpbmcgKG1hdGNoLXN0cmluZyAxIGxpbmspKSkpCisgIChj b25kICgoZmlsZS1leGlzdHMtcCBsaW5rKQorICAgICAgICAgKG9yZy1kb3dubG9hZC0taW1hZ2Uv Y29tbWFuZCAiY3AgXCIlc1wiIFwiJXNcIiIgbGluayBmaWxlbmFtZSkpCisgICAgICAgICgoZXEg b3JnLWRvd25sb2FkLWJhY2tlbmQgdCkKKyAgICAgICAgIChvcmctZG93bmxvYWQtLWltYWdlL3Vy bC1yZXRyaWV2ZSBsaW5rIGZpbGVuYW1lKSkKKyAgICAgICAgKHQKKyAgICAgICAgIChvcmctZG93 bmxvYWQtLWltYWdlL2NvbW1hbmQgb3JnLWRvd25sb2FkLWJhY2tlbmQgbGluayBmaWxlbmFtZSkp KSkKKworKGRlZnVuIG9yZy1kb3dubG9hZC0taW1hZ2UvY29tbWFuZCAoY29tbWFuZCBsaW5rIGZp bGVuYW1lKQorICAiVXNpbmcgQ09NTUFORCwgc2F2ZSBMSU5LIHRvIEZJTEVOQU1FLgorQ09NTUFO RCBpcyBhIGZvcm1hdC1zdHlsZSBzdHJpbmcgd2l0aCB0d28gc2xvdHMgZm9yIExJTksgYW5kIEZJ TEVOQU1FLiIKKyAgKHJlcXVpcmUgJ2FzeW5jKQorICAoYXN5bmMtc3RhcnQKKyAgIGAobGFtYmRh KCkgKHNoZWxsLWNvbW1hbmQKKyAgICAgICAgICAsKGZvcm1hdCBjb21tYW5kIGxpbmsKKyAgICAg ICAgICAgICAgICAgICAoZXhwYW5kLWZpbGUtbmFtZSBmaWxlbmFtZSkpKSkKKyAgIChsZXhpY2Fs LWxldCAoKGN1ci1idWYgKGN1cnJlbnQtYnVmZmVyKSkpCisgICAgIChsYW1iZGEoeCkKKyAgICAg ICAod2l0aC1jdXJyZW50LWJ1ZmZlciBjdXItYnVmCisgICAgICAgICAob3JnLWRpc3BsYXktaW5s aW5lLWltYWdlcykpKSkpKQorCisoZGVmdW4gb3JnLWRvd25sb2FkLS1pbWFnZS91cmwtcmV0cmll dmUgKGxpbmsgZmlsZW5hbWUpCisgICJTYXZlIExJTksgdG8gRklMRU5BTUUgdXNpbmcgYHVybC1y ZXRyaWV2ZScuIgorICAodXJsLXJldHJpZXZlCisgICBsaW5rCisgICAobGFtYmRhIChzdGF0dXMg ZmlsZW5hbWUgYnVmZmVyKQorICAgICA7OyBXcml0ZSBjdXJyZW50IGJ1ZmZlciB0byBGSUxFTkFN RQorICAgICA7OyBhbmQgdXBkYXRlIGlubGluZSBpbWFnZXMgaW4gQlVGRkVSCisgICAgIChsZXQg KChlcnIgKHBsaXN0LWdldCBzdGF0dXMgOmVycm9yKSkpCisgICAgICAgKGlmIGVyciAoZXJyb3IK KyAgICAgICAgICAgICAgICAiXCIlc1wiICVzIiBsaW5rCisgICAgICAgICAgICAgICAgKGRvd25j YXNlIChudGggMiAoYXNzcSAobnRoIDIgZXJyKSB1cmwtaHR0cC1jb2RlcykpKSkpKQorICAgICAo ZGVsZXRlLXJlZ2lvbgorICAgICAgKHBvaW50LW1pbikKKyAgICAgIChwcm9nbgorICAgICAgICAo cmUtc2VhcmNoLWZvcndhcmQgIlxuXG4iIG5pbCAnbW92ZSkKKyAgICAgICAgKHBvaW50KSkpCisg ICAgIChsZXQgKChjb2Rpbmctc3lzdGVtLWZvci13cml0ZSAnbm8tY29udmVyc2lvbikpCisgICAg ICAgKHdyaXRlLXJlZ2lvbiBuaWwgbmlsIGZpbGVuYW1lIG5pbCBuaWwgbmlsICdjb25maXJtKSkK KyAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCisgICAgICAgKG9yZy1kaXNwbGF5LWlu bGluZS1pbWFnZXMpKSkKKyAgIChsaXN0CisgICAgKGV4cGFuZC1maWxlLW5hbWUgZmlsZW5hbWUp CisgICAgKGN1cnJlbnQtYnVmZmVyKSkKKyAgIG5pbCB0KSkKKworKGRlZnVuIG9yZy1kb3dubG9h ZC15YW5rICgpCisgICJDYWxsIGBvcmctZG93bmxvYWQtaW1hZ2UnIHdpdGggY3VycmVudCBraWxs LiIKKyAgKGludGVyYWN0aXZlKQorICAob3JnLWRvd25sb2FkLWltYWdlIChjdXJyZW50LWtpbGwg MCkpKQorCisoZGVmdW4gb3JnLWRvd25sb2FkLXNjcmVlbnNob3QgKCkKKyAgIkNhcHR1cmUgc2Ny ZWVuc2hvdCBhbmQgaW5zZXJ0IHRoZSByZXN1bHRpbmcgZmlsZS4KK1RoZSBzY3JlZW5zaG90IHRv b2wgaXMgZGV0ZXJtaW5lZCBieSBgb3JnLWRvd25sb2FkLXNjcmVlbnNob3QtbWV0aG9kJy4iCisg IChpbnRlcmFjdGl2ZSkKKyAgKGxldCAoKGxpbmsgIi90bXAvc2NyZWVuc2hvdC5wbmciKSkKKyAg ICAoc2hlbGwtY29tbWFuZCAoZm9ybWF0IG9yZy1kb3dubG9hZC1zY3JlZW5zaG90LW1ldGhvZCBs aW5rKSkKKyAgICAob3JnLWRvd25sb2FkLWltYWdlIGxpbmspKSkKKworKGRlZnVuIG9yZy1kb3du bG9hZC1pbWFnZSAobGluaykKKyAgIlNhdmUgaW1hZ2UgYXQgYWRkcmVzcyBMSU5LIHRvIGBvcmct ZG93bmxvYWQtLWRpcicuIgorICAoaW50ZXJhY3RpdmUgInNVcmw6ICIpCisgIChsZXQgKChmaWxl bmFtZQorICAgICAgICAgKGlmIChlcSBvcmctZG93bmxvYWQtbWV0aG9kICdhdHRhY2gpCisgICAg ICAgICAgICAgKGxldCAoKG9yZy1kb3dubG9hZC1pbWFnZS1kaXIgKHByb2duIChyZXF1aXJlICdv cmctYXR0YWNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAob3JnLWF0dGFjaC1kaXIgdCkpKQorICAgICAgICAgICAgICAgICAgIG9yZy1kb3dubG9h ZC1oZWFkaW5nLWx2bCkKKyAgICAgICAgICAgICAgIChvcmctZG93bmxvYWQtLWZ1bGxuYW1lIGxp bmspKQorICAgICAgICAgICAob3JnLWRvd25sb2FkLS1mdWxsbmFtZSBsaW5rKSkpKQorICAgICh3 aGVuIChpbWFnZS10eXBlLWZyb20tZmlsZS1uYW1lIGZpbGVuYW1lKQorICAgICAgKG9yZy1kb3du bG9hZC0taW1hZ2UgbGluayBmaWxlbmFtZSkKKyAgICAgICh3aGVuIChlcSBvcmctZG93bmxvYWQt bWV0aG9kICdhdHRhY2gpCisgICAgICAgIChvcmctYXR0YWNoLWF0dGFjaCBmaWxlbmFtZSBuaWwg J25vbmUpKQorICAgICAgKGlmIChsb29raW5nLWJhY2sgIl5bIFx0XSsiKQorICAgICAgICAgIChk ZWxldGUtcmVnaW9uIChtYXRjaC1iZWdpbm5pbmcgMCkgKG1hdGNoLWVuZCAwKSkKKyAgICAgICAg KG5ld2xpbmUpKQorICAgICAgKGluc2VydCAoZm9ybWF0ICIjK0RPV05MT0FERUQ6ICVzIEAgJXNc biVzIFtbJXNdXSIKKyAgICAgICAgICAgICAgICAgICAgICBsaW5rCisgICAgICAgICAgICAgICAg ICAgICAgKGZvcm1hdC10aW1lLXN0cmluZyAiJVktJW0tJWQgJUg6JU06JVMiKQorICAgICAgICAg ICAgICAgICAgICAgIChpZiAoPSBvcmctZG93bmxvYWQtaW1hZ2Utd2lkdGggMCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIiIKKyAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiMr YXR0cl9odG1sOiA6d2lkdGggJWRweFxuIiBvcmctZG93bmxvYWQtaW1hZ2Utd2lkdGgpKQorICAg ICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lKSkKKyAgICAgIChvcmctZGlzcGxheS1pbmxpbmUt aW1hZ2VzKSkpKQorCisoZGVmdW4gb3JnLWRvd25sb2FkLS1hdC1jb21tZW50LXAgKCkKKyAgIkNo ZWNrIGlmIGN1cnJlbnQgbGluZSBiZWdpbnMgd2l0aCAjK0RPV0xPQURFRDouIgorICAoc2F2ZS1l eGN1cnNpb24KKyAgICAobW92ZS1iZWdpbm5pbmctb2YtbGluZSBuaWwpCisgICAgKGxvb2tpbmct YXQgIiNcXCtET1dOTE9BREVEOiIpKSkKKworKGRlZnVuIG9yZy1kb3dubG9hZC1kZWxldGUgKCkK KyAgIkRlbGV0ZSBpbmxpbmUgaW1hZ2UgbGluayBvbiBjdXJyZW50IGxpbmUsIGFuZCB0aGUgZmls ZSB0aGF0IGl0IHBvaW50cyB0by4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGNvbmQgKChvcmctZG93 bmxvYWQtLWF0LWNvbW1lbnQtcCkKKyAgICAgICAgIChkZWxldGUtcmVnaW9uIChsaW5lLWJlZ2lu bmluZy1wb3NpdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlv bikpCisgICAgICAgICAob3JnLWRvd25sb2FkLS1kZWxldGUgKGxpbmUtYmVnaW5uaW5nLXBvc2l0 aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDEpKQorICAgICAgICAoKHJlZ2lvbi1hY3RpdmUtcCkKKyAgICAgICAg IChvcmctZG93bmxvYWQtLWRlbGV0ZSAocmVnaW9uLWJlZ2lubmluZykKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAocmVnaW9uLWVuZCkpCisgICAgICAgICAoZGVsZXRlLXJlZ2lvbiAo cmVnaW9uLWJlZ2lubmluZykKKyAgICAgICAgICAgICAgICAgICAgICAgIChyZWdpb24tZW5kKSkp CisKKyAgICAgICAgKHQgKG9yZy1kb3dubG9hZC0tZGVsZXRlIChsaW5lLWJlZ2lubmluZy1wb3Np dGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlv bikpKSkpCisKKyhkZWZ1biBvcmctZG93bmxvYWQtLWRlbGV0ZSAoYmVnIGVuZCAmb3B0aW9uYWwg dGltZXMpCisgICJEZWxldGUgaW5saW5lIGltYWdlIGxpbmtzIGFuZCB0aGUgZmlsZXMgdGhleSBw b2ludCB0byBiZXR3ZWVuIEJFRyBhbmQgRU5ELgorCitXaGVuIFRJTUVTIGlzbid0IG5pbCwgZGVs ZXRlIG9ubHkgVElNRVMgbGlua3MuIgorICAodW5sZXNzIHRpbWVzCisgICAgKHNldHEgdGltZXMg bW9zdC1wb3NpdGl2ZS1maXhudW0pKQorICAoc2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFy IGJlZykKKyAgICAod2hpbGUgKGFuZCAoPj0gKGRlY2YgdGltZXMpIDApCisgICAgICAgICAgICAg ICAgKHJlLXNlYXJjaC1mb3J3YXJkICJcXFtcXFtcXChbXl1dKlxcKVxcXVxcXSIgZW5kIHQpKQor ICAgICAgKGxldCAoKHN0ciAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgMSkpKQorICAgICAg ICAoZGVsZXRlLXJlZ2lvbiAobWF0Y2gtYmVnaW5uaW5nIDApCisgICAgICAgICAgICAgICAgICAg ICAgIChtYXRjaC1lbmQgMCkpCisgICAgICAgICh3aGVuIChmaWxlLWV4aXN0cy1wIHN0cikKKyAg ICAgICAgICAoZGVsZXRlLWZpbGUgc3RyKSkpKSkpCisKKyhkZWZ1biBvcmctZG93bmxvYWQtZG5k ICh1cmkgYWN0aW9uKQorICAiV2hlbiBpbiBgb3JnLW1vZGUnIGFuZCBVUkkgcG9pbnRzIHRvIGlt YWdlLCBkb3dubG9hZCBpdC4KK090aGVyd2lzZSwgcGFzcyBVUkkgYW5kIEFDVElPTiBiYWNrIHRv IGRuZCBkaXNwYXRjaC4iCisgIChpZiAoZXEgbWFqb3ItbW9kZSAnb3JnLW1vZGUpCisgICAgICA7 OyBwcm9iYWJseSBzaG91bGRuJ3QgcmVkaXJlY3QKKyAgICAgICh1bmxlc3MgKG9yZy1kb3dubG9h ZC1pbWFnZSB1cmkpCisgICAgICAgIChtZXNzYWdlICJub3QgYW4gaW1hZ2UgVVJMIikpCisgICAg OzsgcmVkaXJlY3QgdG8gc29tZW9uZSBlbHNlCisgICAgKGxldCAoKGRuZC1wcm90b2NvbC1hbGlz dAorICAgICAgICAgICAocmFzc3EtZGVsZXRlLWFsbAorICAgICAgICAgICAgJ29yZy1kb3dubG9h ZC1kbmQKKyAgICAgICAgICAgIChjb3B5LWFsaXN0IGRuZC1wcm90b2NvbC1hbGlzdCkpKSkKKyAg ICAgIChkbmQtaGFuZGxlLW9uZS11cmwgbmlsIGFjdGlvbiB1cmkpKSkpCisKKyhkZWZ1biBvcmct ZG93bmxvYWQtZW5hYmxlICgpCisgICJFbmFibGUgb3JnLWRvd25sb2FkLiIKKyAgKHVubGVzcyAo ZXEgKGNkciAoYXNzb2MgIl5cXChodHRwcz9cXHxmdHBcXHxmaWxlXFx8bmZzXFwpOi8vIiBkbmQt cHJvdG9jb2wtYWxpc3QpKQorICAgICAgICAgICAgICAnb3JnLWRvd25sb2FkLWRuZCkKKyAgICAo c2V0cSBkbmQtcHJvdG9jb2wtYWxpc3QKKyAgICAgICAgICBgKCgiXlxcKGh0dHBzP1xcfGZ0cFxc fGZpbGVcXHxuZnNcXCk6Ly8iIC4gb3JnLWRvd25sb2FkLWRuZCkgLEBkbmQtcHJvdG9jb2wtYWxp c3QpKSkpCisKKyhkZWZ1biBvcmctZG93bmxvYWQtZGlzYWJsZSAoKQorICAiRGlzYWJsZSBvcmct ZG93bmxvYWQuIgorICAocmFzc3EtZGVsZXRlLWFsbCAnb3JnLWRvd25sb2FkLWRuZCBkbmQtcHJv dG9jb2wtYWxpc3QpKQorCisob3JnLWRvd25sb2FkLWVuYWJsZSkKKworKHByb3ZpZGUgJ29yZy1k b3dubG9hZCkKKworOzs7IG9yZy1kb3dubG9hZC5lbCBlbmRzIGhlcmUKLS0gCjEuOC40Cgo= --20cf30223a9ba954de04ef264b76--