From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id KMLyMVtoLmeRRwAAqHPOHw:P1 (envelope-from ) for ; Fri, 08 Nov 2024 19:36:59 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id KMLyMVtoLmeRRwAAqHPOHw (envelope-from ) for ; Fri, 08 Nov 2024 20:36:59 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=d1xx6X3T; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1731094619; a=rsa-sha256; cv=none; b=hBTIlb63BQvqhMP/8ITdB8iIxHKXqyzKLY3l3uZ5oAz4mFLMWoN7vkzyxwanljxm/OfqFD XQ7fNWzosszi+JP+PNu35wzKKXQneIXr50D+tqVPQsRgoKPdTwAxa+xzAPJ9WAr8KGTbAl DHk5/V5PcsK1Qm6Zc6huQCs3HRFvhDqWInVpcs3VUZQcejAscY5z8Veu3slOdFGGd1K+C2 6PZINKsAE11HgS+kNKH9VmpDdr685n+jmRoB3Zprol8lJazjX5x1wKJ7y2q2/eaKDJbJL5 KYBKHLzBIhDDe353NViqSYT45nAMHDUw4Yy0e6HpFbKGYRXAGET6VKRzVKdBuQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=d1xx6X3T; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1731094619; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=hkBJaAqcRh9uRqwGkXZSV7FYCwuwUh51hfTfU7+Ru5I=; b=ukn0C2iQKuSAT9efbcnqAu/VrEFtBprGapYGLRPCIvZnqd10xbRmUV2XjfLdFouggDWfES /7TY7MKPFbMSDeknq8iwa/pf1zSwb3/IJRcjPLexayKTwoTZNLgt2dWlIVqsWiqQYvjeiG /ycwxFOboIP8so4P2Nqu+JH0xNbrjGIreP9iA5vP1MTFWLb3pIRMg8sSkl285a3hGebMms CsmZsVrecHUKJRqpJx9jqG9NkvDNHPfkiP2tuX28FdzZ5Bw8TefRoDFA3pAwXpawzkKQFZ 9FkISusxVXHxCuQTT03mhRIYtJukvkt0QAdQSARW+csTUnn/8rpT2iVcAXXx6g== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 4ACF9725EE for ; Fri, 08 Nov 2024 20:36:59 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t9Um3-0001St-EZ; Fri, 08 Nov 2024 14:36:05 -0500 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 1t9UhH-00017S-Ri for emacs-orgmode@gnu.org; Fri, 08 Nov 2024 14:31:07 -0500 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t9UhE-0004Md-63 for emacs-orgmode@gnu.org; Fri, 08 Nov 2024 14:31:07 -0500 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-a9e71401844so296022966b.3 for ; Fri, 08 Nov 2024 11:31:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1731094261; x=1731699061; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=hkBJaAqcRh9uRqwGkXZSV7FYCwuwUh51hfTfU7+Ru5I=; b=d1xx6X3TKwJhp4bd75gIrni+Z/PmC7tXri5wkvlyY7JVdy1ye21kCUBLzJDQj2EBlk epqQW1HmYdJa7D5c8RvkJKJtcHGzfAFAi4lrf00Q/2z68P+5eXRq4tZlqlLyvbYnezfO 28nZd1TkLDmLzdPB1tu7xxj24NwDn96rnZr7/PmXowhlk8rIVoMXX25/Tnk9g+Ft4/U5 P3ZytECJGTkMvj3jbiGeOeys7V8w1Ux0RTWstXvRz1z4wEQ6LLVE5Eeyl5/EXZCsW3Cm +XCK8Hb/YoZSo2tcbKN37fo8IQzwPXjLbhlzMNF84Tdjo56m+d1PrEDugqrrM/COhEK/ e62Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731094261; x=1731699061; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=hkBJaAqcRh9uRqwGkXZSV7FYCwuwUh51hfTfU7+Ru5I=; b=BF9vX/WfVs9u8t/l19VGUJjrWNJE7VLQxYW3gnUg9Z9pHZtwAaZ7UsyuzXHXwLCGxz JKkB3Ev8EJ/0H9ZJHrK92Fq/wsZxhao56S4I6PixQDfHAXjf0QrQR9PkA2keRQlucO2h gUxEz9mZDcXs7CXHyRBeyzHjscpIl7uCFRuB9s1TPd0dA4AmCu5J4lqmvDo2mYY5n/Zr lM0Ws1F8va3XvEfNxtA/iNJCHGJKS3A4MCFzatLl90KSBlZMgQ/d5dw3QSb26Jxf8yO1 whJWWYnuRwhCo0TJi0GBFC4XqGzLaQIxx3W7gIsxEwWJY0ImqY71xQ797emwp576Vmx0 gDjg== X-Gm-Message-State: AOJu0Yw/ScDmx3AAm5ozPTeAYpkohVCchpQbCBbvSQX/hj8L87RFY3+u VvY0fJHiMJ3B+fKK6zlyoga0+0RMCtyVmUQ+ggK6Zp4sATa+kYkYOJ/d26362K8REBqAPnwzVFB xg4q6Fd6n5q4UorzG23Vwo3qgOVQJBgwZ X-Google-Smtp-Source: AGHT+IHfCrQThAQxRsgScvYATTIV5VkT7cmz1OG5Lzff/4gS/dWhu7WCXPi1oH0s8NP14a4KyZn6R5xuFt89nal8NrA= X-Received: by 2002:a17:907:7e83:b0:a99:f77f:b489 with SMTP id a640c23a62f3a-a9eeffe9819mr384642266b.43.1731094261368; Fri, 08 Nov 2024 11:31:01 -0800 (PST) MIME-Version: 1.0 From: John C Date: Fri, 8 Nov 2024 14:30:49 -0500 Message-ID: Subject: ob-octave: improve MATLAB support To: emacs-orgmode@gnu.org Content-Type: multipart/mixed; boundary="00000000000085ab4c06266bca6b" Received-SPF: pass client-ip=2a00:1450:4864:20::62c; envelope-from=john.ciolfi.32@gmail.com; helo=mail-ej1-x62c.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Fri, 08 Nov 2024 14:36:01 -0500 X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -2.80 X-Spam-Score: -2.80 X-Migadu-Queue-Id: 4ACF9725EE X-Migadu-Scanner: mx10.migadu.com X-TUID: Atctj+eyQgAz --00000000000085ab4c06266bca6b Content-Type: text/plain; charset="UTF-8" Hi Please see the attached patch which makes MATLAB work with org babel eval. Here's the commit message: ob-octave.el: improve MATLAB support * lisp/ob-octave.el (org-babel-octave-evaluate): Improve MATLAB support - Eliminated the code related to MATLAB Emacs Link. This capability was removed from MATLAB release R2009a, 15 years ago. - Fixed the following type of org block evaluation: 1) #+begin_src matlab :results verbatim 2) #+begin_src matlab :results output 3) #+begin_src matlab :results output latex 4) #+begin_src matlab :results file graphics which aid in writing scientific papers. - Minor point, the correct spelling of MATLAB when referencing the product is all upper case. * lisp/ob-matlab.el (header): Update URL for MATLAB * etc/ORG-NEWS (New functions and changes in function arguments): Added entry "ob-octave: improved MATLAB support" Note, I have sent in the paper work for the FSF copyright assignment. Thanks John --00000000000085ab4c06266bca6b Content-Type: text/x-patch; charset="US-ASCII"; name="ob-octave.el.patch" Content-Disposition: attachment; filename="ob-octave.el.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m394swdz0 ZGlmZiAtLWdpdCBhL2V0Yy9PUkctTkVXUyBiL2V0Yy9PUkctTkVXUwppbmRleCA1ZDQyMTE3MmYu LmEwODZjZTc5MiAxMDA2NDQKLS0tIGEvZXRjL09SRy1ORVdTCisrKyBiL2V0Yy9PUkctTkVXUwpA QCAtMTYyLDYgKzE2Miw4NCBAQCBiaWJsaW9ncmFwaHkgZm9ybWF0IHJlcXVpcmVzIHRoZW0gdG8g YmUgd3JpdHRlbiBpbiB0aXRsZS1jYXNlLgogCiAjIFRoaXMgYWxzbyBpbmNsdWRlcyBjaGFuZ2Vz IGluIGZ1bmN0aW9uIGJlaGF2aW9yIGZyb20gRWxpc3AgcGVyc3BlY3RpdmUuCiAKKyoqKiBvYi1v Y3RhdmU6IGltcHJvdmVkIE1BVExBQiBzdXBwb3J0CisKK0ltcHJvdmVkIG9iLW9jdGF2ZSBNQVRM QUIgKGh0dHBzOi8vd3d3Lm1hdGh3b3Jrcy5jb20pIGNvZGUgYmxvY2tzIHByb2Nlc3NpbmcuCitU aGUgcHJpb3IgdmVyc2lvbiBvZiBvYi1vY3RhdmUgZGlkbid0IGNvcnJlY3RseSBzdXBwb3J0IE1B VExBQi4gIFRvIHVzZSBNQVRMQUIKK3dpdGggb3JnLCB5b3UgbmVlZCBodHRwczovL2dpdGh1Yi5j b20vTWF0aFdvcmtzL0VtYWNzLU1BVExBQi1Nb2RlLgorCitFeGFtcGxlIH52ZXJiYXRpbX4gY29k ZSBibG9jazoKKworIytiZWdpbl9zcmMgb3JnCissIytiZWdpbl9zcmMgbWF0bGFiIDpyZXN1bHRz IHZlcmJhdGltCisgIGEgPSAyICsgMzsKKyAgYW5zID0gbWFnaWMoYSk7CissIytlbmRfc3JjCisK KywjK1JFU1VMVFM6Cit8IDE3IHwgMjQgfCAgMSB8ICA4IHwgMTUgfAorfCAyMyB8ICA1IHwgIDcg fCAxNCB8IDE2IHwKK3wgIDQgfCAgNiB8IDEzIHwgMjAgfCAyMiB8Cit8IDEwIHwgMTIgfCAxOSB8 IDIxIHwgIDMgfAorfCAxMSB8IDE4IHwgMjUgfCAgMiB8ICA5IHwKKyMrZW5kX3NyYworCitFeGFt cGxlIH5vdXRwdXR+IGNvZGUgYmxvY2s6CisKKyMrYmVnaW5fc3JjIG9yZworLCMrYmVnaW5fc3Jj IG1hdGxhYiA6cmVzdWx0cyBvdXRwdXQKKyAgZGlzcCgnVGhlIHJlc3VsdHMgYXJlOicpCisgIGEg PSBbMSwgMjsgMywgNF0KKyAgYiA9IGEgKiAyCissIytlbmRfc3JjCisKKywjK1JFU1VMVFM6Ciss IytiZWdpbl9leGFtcGxlCitUaGUgcmVzdWx0cyBhcmU6CisKK2EgPQorCisgICAgIDEgICAgIDIK KyAgICAgMyAgICAgNAorCitiID0KKworICAgICAyICAgICA0CisgICAgIDYgICAgIDgKKywjK2Vu ZF9leGFtcGxlCisKKyMrZW5kX3NyYworCitFeGFtcGxlIH5sYXRleH4gY29kZSBibG9jazoKKwor IytiZWdpbl9zcmMgb3JnCissIytiZWdpbl9zcmMgbWF0bGFiIDpyZXN1bHRzIG91dHB1dCBsYXRl eAorICBtID0gWzQqcGksIDMqcGk7IDIqcGksIHBpXTsKKyAgcmVzdWx0ID0gbGF0ZXgoc3ltKG0p KTsKKyAgZGlzcChyZXN1bHQpCissIytlbmRfc3JjCisKKywjK1JFU1VMVFM6CissIytiZWdpbl9l eHBvcnQgbGF0ZXgKK1xsZWZ0KFxiZWdpbnthcnJheX17Y2N9IDRcLFxwaSAgJiAzXCxccGkgXFwg MlwsXHBpICAmIFxwaSAgXGVuZHthcnJheX1ccmlnaHQpCissIytlbmRfZXhwb3J0CisjK2VuZF9z cmMKKworRXhhbXBsZSB+Z3JhcGhpY3N+IGNvZGUgYmxvY2s6CisKKyMrYmVnaW5fc3JjIG9yZwor LCMraGVhZGVyOiA6ZmlsZSBzaW5ld2F2ZS5wbmcKKywjK2JlZ2luX3NyYyBtYXRsYWIgOnJlc3Vs dHMgZmlsZSBncmFwaGljcworICB0ID0gWzAgOiAwLjEgOiAyKnBpXTsKKyAgeSA9IHNpbih0KTsK KyAgcGxvdCh0LCB5KTsKKyAgc2V0KGdjZiwgJ1BhcGVyVW5pdHMnLCAnaW5jaGVzJywgJ1BhcGVy UG9zaXRpb24nLCBbMCAwIDQgM10pICUgU2V0IHRoZSBzaXplIHRvIDQiIHggMyIKKywjK2VuZF9z cmMKKworLCMrUkVTVUxUUzoKK1tbZmlsZTpzaW5ld2F2ZS5wbmddXQorIytlbmRfc3JjCisKICoq KiBvYi1zcWxpdGU6IEFkZGVkIGFiaWxpdHkgdG8gb3BlbiBhIGRhdGFiYXNlIGluIHJlYWRvbmx5 IG1vZGUKIAogQWRkZWQgb3B0aW9uIDpyZWFkb25seSB0byBvYi1zcWxpdGUuCmRpZmYgLS1naXQg YS9saXNwL29iLW1hdGxhYi5lbCBiL2xpc3Avb2ItbWF0bGFiLmVsCmluZGV4IGRlOGRlYWRiZS4u YmVhNDA0ODJiIDEwMDY0NAotLS0gYS9saXNwL29iLW1hdGxhYi5lbAorKysgYi9saXNwL29iLW1h dGxhYi5lbApAQCAtMjgsMTEgKzI4LDEwIEBACiAKIDs7OyBSZXF1aXJlbWVudHM6CiAKLTs7IE1h dGxhYgotCi07OyBtYXRsYWIuZWwgcmVxdWlyZWQgZm9yIGludGVyYWN0aXZlIGVtYWNzIHNlc3Np b25zIGFuZCBtYXRsYWItbW9kZQotOzsgbWFqb3IgbW9kZSBmb3Igc291cmNlIGNvZGUgZWRpdGlu ZyBidWZmZXIKLTs7IGh0dHBzOi8vbWF0bGFiLWVtYWNzLnNvdXJjZWZvcmdlLm5ldC8KKzs7IDEp IE1BVExBQiBmcm9tIGh0dHBzOi8vd3d3Lm1hdGh3b3Jrcy5jb20KKzs7IDIpIGh0dHBzOi8vZ2l0 aHViLmNvbS9tYXRod29ya3MvRW1hY3MtTUFUTEFCLU1vZGUKKzs7ICAgIEZvciBtYXRsYWItc2hl bGwgdG8gcnVuIE1BVExBQiB3aXRoaW4gRW1hY3MgYW5kIG1hdGxhYi1tb2RlCis7OyAgICBtYWpv ciBtb2RlIGZvciBzb3VyY2UgY29kZSBlZGl0aW5nIGJ1ZmZlcgogCiA7OzsgQ29kZToKIApkaWZm IC0tZ2l0IGEvbGlzcC9vYi1vY3RhdmUuZWwgYi9saXNwL29iLW9jdGF2ZS5lbAppbmRleCAwMDU5 OTBmMjAuLjM5YTIwYjU3ZiAxMDA2NDQKLS0tIGEvbGlzcC9vYi1vY3RhdmUuZWwKKysrIGIvbGlz cC9vYi1vY3RhdmUuZWwKQEAgLTEsNCArMSw0IEBACi07Ozsgb2Itb2N0YXZlLmVsIC0tLSBCYWJl bCBGdW5jdGlvbnMgZm9yIE9jdGF2ZSBhbmQgTWF0bGFiIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7 IC0qLQorOzs7IG9iLW9jdGF2ZS5lbCAtLS0gQmFiZWwgRnVuY3Rpb25zIGZvciBPY3RhdmUgYW5k IE1BVExBQiAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAtKi0KIAogOzsgQ29weXJpZ2h0IChDKSAy MDEwLTIwMjQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKQEAgLTMwLDYgKzMwLDgg QEAKIAogOzs7IENvZGU6CiAKKyhyZXF1aXJlICdjbC1zZXEpCisKIChyZXF1aXJlICdvcmctbWFj cykKIChvcmctYXNzZXJ0LXZlcnNpb24pCiAKQEAgLTM5LDcgKzQxLDkgQEAKIChkZWNsYXJlLWZ1 bmN0aW9uIG1hdGxhYi1zaGVsbCAiZXh0Om1hdGxhYi1tb2RlIikKIChkZWNsYXJlLWZ1bmN0aW9u IG1hdGxhYi1zaGVsbC1ydW4tcmVnaW9uICJleHQ6bWF0bGFiLW1vZGUiKQogCi0oZGVmdmFyIG9y Zy1iYWJlbC1kZWZhdWx0LWhlYWRlci1hcmdzOm1hdGxhYiAnKCkpCis7OyBVc2UgdGhlIHNlc3Np b24gIipNQVRMQUIqIiBidWZmZXIgY3JlYXRlZCBieSBgbWF0bGFiLXNoZWxsYCBmb3IgY29kZSBl dmFsdWF0aW9uLgorKGRlZnZhciBvcmctYmFiZWwtZGVmYXVsdC1oZWFkZXItYXJnczptYXRsYWIg JygoOnNlc3Npb24gLiAiKk1BVExBQioiKSkpCisKIChkZWZ2YXIgb3JnLWJhYmVsLWRlZmF1bHQt aGVhZGVyLWFyZ3M6b2N0YXZlICcoKSkKIAogKGRlZnZhciBvcmctYmFiZWwtbWF0bGFiLXNoZWxs LWNvbW1hbmQgIm1hdGxhYiAtbm9zcGxhc2giCkBAIC00NywxOCArNTEsMzYgQEAKIChkZWZ2YXIg b3JnLWJhYmVsLW9jdGF2ZS1zaGVsbC1jb21tYW5kICJvY3RhdmUgLXEiCiAgICJTaGVsbCBjb21t YW5kIHRvIHJ1biBvY3RhdmUgYXMgYW4gZXh0ZXJuYWwgcHJvY2Vzcy4iKQogCi0oZGVmdmFyIG9y Zy1iYWJlbC1tYXRsYWItd2l0aC1lbWFjcy1saW5rIG5pbAotICAiSWYgbm9uLW5pbCB1c2UgbWF0 bGFiLXNoZWxsLXJ1bi1yZWdpb24gZm9yIHNlc3Npb24gZXZhbHVhdGlvbi4KLVRoaXMgd2lsbCB1 c2UgRW1hY3NMaW5rIGlmIChtYXRsYWItd2l0aC1lbWFjcy1saW5rKSBldmFsdWF0ZXMKLXRvIGEg bm9uLW5pbCB2YWx1ZS4iKQotCi0oZGVmdmFyIG9yZy1iYWJlbC1tYXRsYWItZW1hY3MtbGluay13 cmFwcGVyLW1ldGhvZAotICAiJXMKLWlmIGlzY2hhcihhbnMpLCBmaWQgPSBmb3BlbignJXMnLCAn dycpOyBmcHJpbnRmKGZpZCwgJyUlc1xcbicsIGFucyk7IGZjbG9zZShmaWQpOwotZWxzZSwgc2F2 ZSAtYXNjaWkgJXMgYW5zCi1lbmQKLWRlbGV0ZSgnJXMnKQorKGRlZnZhciBvcmctYmFiZWwtbWF0 bGFiLXByaW50ICJwcmludChcIi1kcG5nXCIsICVTKTtcbmFucz0lUzsiCisgIDs7IE1BVExBQiBj b21tYW5kLWZ1bmN0aW9uIGR1YWxpdHkgcmVxdWlyZXMgdGhhdCB0aGUgZmlsZSBuYW1lIGJlIHNw ZWNpZmllZAorICA7OyB3aXRob3V0IHF1b3Rlcy4gVXNpbmc6IHByaW50IC1kcG5nICJmaWxlLnBu ZyIsIHdvdWxkIHByb2R1Y2UgYSBmaWxlIHdpdGgKKyAgOzsgdGhlIHF1b3RlcyBpbiB0aGUgZmls ZSBuYW1lIG9uIGRpc2suIFRoZXJlZm9yZSwgdXNlIHRoZSBmdW5jdGlvbmFsIGZvcm0KKyAgOzsg dG8gaGFuZGxlIGZpbGVzIHdpdGggc3BhY2VzLCBwcmludCgiLWRwbmciLCAiZmlsZS5wbmciKS4K KyAgOzsgRXhhbXBsZToKKyAgOzsgICAgIytiZWdpbl9zcmMgbWF0bGFiIDpmaWxlICJzaW5lIHdh dmUucG5nIiA6cmVzdWx0cyBmaWxlIGdyYXBoaWNzCisgIDs7ICAgICAgdCA9IFswIDogMC4xIDog MipwaV07CisgIDs7ICAgICAgeSA9IHNpbih0KTsKKyAgOzsgICAgICBwbG90KHQsIHkpOworICA7 OyAgICAgIHNldChnY2YsICdQYXBlclVuaXRzJywgJ2luY2hlcycsICdQYXBlclBvc2l0aW9uJywg WzAgMCA0IDNdKSAlIFNldCB0aGUgc2l6ZSB0byA0IiB4IDMiCisgIDs7ICAgICMrZW5kX3NyYwor ICA7OworICA7OyAgICAjK1JFU1VMVFM6CisgIDs7ICAgIFtbZmlsZTpzaW5lIHdhdmUucG5nXV0K KyAgIk1BVExBQiBmb3JtYXQgc3BlY2lmaWVyIHRvIHByaW50IGN1cnJlbnQgZmlndXJlIHRvIGEg ZmlsZS4iKQorCisoZGVmdmFyIG9yZy1iYWJlbC1vY3RhdmUtcHJpbnQgInByaW50IC1kcG5nICVT XG5hbnM9JVMiCisgICJPY3RhdmUgZm9ybWF0IHNwZWNpZmllciB0byBwcmludCBjdXJyZW50IGZp Z3VyZSB0byBhIGZpbGUuIikKKworKGRlZnZhciBvcmctYmFiZWwtbWF0bGFiLXdyYXBwZXItbWV0 aG9kCisgIChjb25jYXQgIlwKK2NkKCclcycpOworJXMKK2lmIH5leGlzdCgnYW5zJywgJ3Zhcicp IGFucyA9ICcnOyBlbmQ7IFwKK3dyaXRlbWF0cml4KGFucywgJyVzJywgJ0RlbGltaXRlcicsICd0 YWInKTsKICIpCisgICJGb3JtYXQgc3BlY2lmaWVyIHVzZWQgd2hlbiBldmFsdWF0aW5nIE1BVExB QiBjb2RlIGJsb2Nrcy4KK0FyZ3VtZW50cyBhcmUgdGhlIGBkZWZhdWx0LWRpcmVjdG9yeScsIHRo ZSBNQVRMQUIgY29kZSwgYW5kIGEgcmVzdWx0IGZpbGUudHh0LiIpCisKIChkZWZ2YXIgb3JnLWJh YmVsLW9jdGF2ZS13cmFwcGVyLW1ldGhvZAogICAiJXMKIGlmIGlzY2hhcihhbnMpLCBmaWQgPSBm b3BlbignJXMnLCAndycpOyBmZGlzcChmaWQsIGFucyk7IGZjbG9zZShmaWQpOwpAQCAtOTIsNyAr MTE0LDEwIEBAIFdoZW4gTUFUTEFCUCBpcyBub24tbmlsLCBleGVjdXRlIE1hdGxhYi4gIE90aGVy d2lzZSwgZXhlY3V0ZSBPY3RhdmUuIgogCQkJCSAobGlzdAogCQkJCSAgInNldCAoMCwgXCJkZWZh dWx0ZmlndXJldmlzaWJsZVwiLCBcIm9mZlwiKTsiCiAJCQkJICBmdWxsLWJvZHkKLQkJCQkgIChm b3JtYXQgInByaW50IC1kcG5nICVTXG5hbnM9JVMiIGdmeC1maWxlIGdmeC1maWxlKSkKKwkJCQkg IChmb3JtYXQgKGlmIG1hdGxhYnAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvcmctYmFiZWwtbWF0bGFiLXByaW50CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9yZy1iYWJlbC1vY3RhdmUtcHJpbnQpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZngtZmlsZSBnZngtZmlsZSkpCiAJCQkJ ICJcbiIpCiAJCSAgICBmdWxsLWJvZHkpCiAJCSAgcmVzdWx0LXR5cGUgbWF0bGFicCkpKQpAQCAt MTUzLDYgKzE3OCwyMyBAQCBJZiB0aGVyZSBpcyBub3QgYSBjdXJyZW50IGluZmVyaW9yLXByb2Nl c3MtYnVmZmVyIGluIFNFU1NJT04gdGhlbgogY3JlYXRlLiAgUmV0dXJuIHRoZSBpbml0aWFsaXpl ZCBzZXNzaW9uLiAgUEFSQU1TIGFyZSBzcmMgYmxvY2sgcGFyYW1ldGVycy4iCiAgIChvcmctYmFi ZWwtb2N0YXZlLWluaXRpYXRlLXNlc3Npb24gc2Vzc2lvbiBwYXJhbXMgJ21hdGxhYikpCiAKKyhk ZWZ1biBvcmctYmFiZWwtbWF0bGFiLXNoZWxsICgpCisgICJTdGFydCBhbmQvb3Igd2FpdCBmb3Ig TUFUTEFCIHNoZWxsLiIKKyAgKHJlcXVpcmUgJ21hdGxhYi1zaGVsbCkgOzsgbWFrZSBgbWF0bGFi LXNoZWxsLWJ1c3ktY2hlY2tlcicgYXZhaWxhYmxlCisgIChjb25kCisgICAoKGZib3VuZHAgJ21h dGxhYi1zaGVsbC1idXN5LWNoZWNrZXIpCisgICAgOzsgU3RhcnQgdGhlIHNoZWxsIGlmIG5lZWRl ZC4gIGBtYXRsYWItc2hlbGwnIHdpbGwgcmV1c2UgZXhpc3RpbmcgaWYgYWxyZWFkeSBydW5uaW5n LgorICAgIChtYXRsYWItc2hlbGwpCisgICAgOzsgSWYgd2UganVzdCBzdGFydGVkIHRoZSBtYXRs YWItc2hlbGwsIHdhaXQgZm9yIHRoZSBwcm9tcHQuICBJZiB3ZSBkbyBub3QKKyAgICA7OyB3YWl0 LCB0aGVuIHRoZSBzdGFydHVwIG1lc3NhZ2VzIHdpbGwgc2hvdyB1cCBpbiB0aGUgZXZhbHVhdGlv biByZXN1bHRzLgorICAgIChtYXRsYWItc2hlbGwtYnVzeS1jaGVja2VyICd3YWl0LWZvci1wcm9t cHQpKQorICAgKHQKKyAgICAobWVzc2FnZSAoY29uY2F0ICJZb3UgdmVyc2lvbiBvZiBtYXRsYWIt bW9kZSBpcyBvbGQuXG4iCisgICAgICAgICAgICAgICAgICAgICAiUGxlYXNlIHVwZGF0ZSwgc2Vl IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRod29ya3MvRW1hY3MtTUFUTEFCLU1vZGVcbiIKKyAgICAg ICAgICAgICAgICAgICAgICJVcGRhdGluZyB3aWxsIGVsaW1pbmF0ZSB1bmV4cGVjdGVkIG91dHB1 dCBpbiB5b3VyIHJlc3VsdHNcbiIpKQorICAgIChzaXQtZm9yIDMpCisgICAgKG1hdGxhYi1zaGVs bCkpKSkKKwogKGRlZnVuIG9yZy1iYWJlbC1vY3RhdmUtaW5pdGlhdGUtc2Vzc2lvbiAoJm9wdGlv bmFsIHNlc3Npb24gX3BhcmFtcyBtYXRsYWJwKQogICAiQ3JlYXRlIGFuIG9jdGF2ZSBpbmZlcmlv ciBwcm9jZXNzIGJ1ZmZlci4KIElmIHRoZXJlIGlzIG5vdCBhIGN1cnJlbnQgaW5mZXJpb3ItcHJv Y2Vzcy1idWZmZXIgaW4gU0VTU0lPTiB0aGVuCkBAIC0xNjUsOSArMjA3LDE1IEBAIE9jdGF2ZSBz ZXNzaW9uLCB1bmxlc3MgTUFUTEFCUCBpcyBub24tbmlsLiIKICAgKHVubGVzcyAoc3RyaW5nPSBz ZXNzaW9uICJub25lIikKICAgICAobGV0ICgoc2Vzc2lvbiAob3Igc2Vzc2lvbgogCQkgICAgICAg KGlmIG1hdGxhYnAgIipJbmZlcmlvciBNYXRsYWIqIiAiKkluZmVyaW9yIE9jdGF2ZSoiKSkpKQot ICAgICAgKGlmIChvcmctYmFiZWwtY29taW50LWJ1ZmZlci1saXZlcCBzZXNzaW9uKSBzZXNzaW9u CisgICAgICAoaWYgKG9yZy1iYWJlbC1jb21pbnQtYnVmZmVyLWxpdmVwIHNlc3Npb24pCisgICAg ICAgICAgKHByb2duCisgICAgICAgICAgICAod2hlbiAoYW5kIG1hdGxhYnAgKGZib3VuZHAgJ21h dGxhYi1zaGVsbC1idXN5LWNoZWNrZXIpKQorICAgICAgICAgICAgICA7OyBDYW4ndCBldmFsdWF0 ZSBpZiB0aGUgbWF0bGFiLXNoZWxsIGlzIGN1cnJlbnRseSBydW5uaW5nIGNvZGUKKyAgICAgICAg ICAgICAgKG1hdGxhYi1zaGVsbC1idXN5LWNoZWNrZXIgJ2Vycm9yLWlmLWJ1c3kpKQorICAgICAg ICAgICAgc2Vzc2lvbikKIAkoc2F2ZS13aW5kb3ctZXhjdXJzaW9uCi0JICAoaWYgbWF0bGFicCAo dW5sZXNzIG9yZy1iYWJlbC1tYXRsYWItd2l0aC1lbWFjcy1saW5rIChtYXRsYWItc2hlbGwpKQor CSAgKGlmIG1hdGxhYnAKKyAgICAgICAgICAgICAgKG9yZy1iYWJlbC1tYXRsYWItc2hlbGwpCiAJ ICAgIChydW4tb2N0YXZlKSkKIAkgIChyZW5hbWUtYnVmZmVyIChpZiAoYnVmZmVycCBzZXNzaW9u KSAoYnVmZmVyLW5hbWUgc2Vzc2lvbikKIAkJCSAgIChpZiAoc3RyaW5ncCBzZXNzaW9uKSBzZXNz aW9uIChidWZmZXItbmFtZSkpKSkKQEAgLTE4Myw2NiArMjMxLDEwNyBAQCB2YWx1ZSBvZiB0aGUg bGFzdCBzdGF0ZW1lbnQgaW4gQk9EWSwgYXMgZWxpc3AuIgogICAgICAgKG9yZy1iYWJlbC1vY3Rh dmUtZXZhbHVhdGUtc2Vzc2lvbiBzZXNzaW9uIGJvZHkgcmVzdWx0LXR5cGUgbWF0bGFicCkKICAg ICAob3JnLWJhYmVsLW9jdGF2ZS1ldmFsdWF0ZS1leHRlcm5hbC1wcm9jZXNzIGJvZHkgcmVzdWx0 LXR5cGUgbWF0bGFicCkpKQogCisoZGVmdW4gb3JnLWJhYmVsLW9jdGF2ZS13cmFwcGVyLXRtcC1m aWxlIChtYXRsYWJwKQorICAiUmV0dXJuIGEgbG9jYWwgdG1wIGZpbGUgd2l0aCBuYW1lIGFkanVz dGVkIGZvciBNQVRMQUJQLiIKKyAgKGlmIG1hdGxhYnAKKyAgICAgIDs7IHdyaXRlbWF0cml4IHJl cXVpcmVzIGEgZmlsZSBlbmRpbmcgd2l0aCAnLnR4dCcKKyAgICAgIChvcmctYmFiZWwtdGVtcC1m aWxlICJtYXRsYWItIiAiLnR4dCIpCisgICAgKG9yZy1iYWJlbC10ZW1wLWZpbGUgIm9jdGF2ZS0i KSkpCisKKyhkZWZ1biBvcmctYmFiZWwtb2N0YXZlLWdldC1jb2RlLXRvLWV2YWwgKGJvZHkgdG1w LWZpbGUgbWF0bGFicCkKKyAgIkZvcm1hdCBCT0RZIG9mIHRoZSBjb2RlIGJsb2NrIGZvciBldmFs dWF0aW9uIHNhdmluZyByZXN1bHRzIHRvIFRNUC1GSUxFLgorSWYgTUFUTEFCUCwgZm9ybWF0IGZv ciBNQVRMQUIsIGVsc2UgZm9ybWF0IGZvciBPY3RhdmUuIgorICAgIChpZiBtYXRsYWJwCisgICAg ICAgIChmb3JtYXQgb3JnLWJhYmVsLW1hdGxhYi13cmFwcGVyLW1ldGhvZCBkZWZhdWx0LWRpcmVj dG9yeSBib2R5IHRtcC1maWxlKQorICAgICAgKGZvcm1hdCBvcmctYmFiZWwtb2N0YXZlLXdyYXBw ZXItbWV0aG9kIGJvZHkgdG1wLWZpbGUgdG1wLWZpbGUpKSkKKwogKGRlZnVuIG9yZy1iYWJlbC1v Y3RhdmUtZXZhbHVhdGUtZXh0ZXJuYWwtcHJvY2VzcyAoYm9keSByZXN1bHQtdHlwZSBtYXRsYWJw KQotICAiRXZhbHVhdGUgQk9EWSBpbiBhbiBleHRlcm5hbCBPY3RhdmUgb3IgTWF0YWxhYiBwcm9j ZXNzLgorICAiRXZhbHVhdGUgQk9EWSBpbiBhbiBleHRlcm5hbCBPY3RhdmUgb3IgTUFUTEFCIHBy b2Nlc3MuCiBQcm9jZXNzIHRoZSByZXN1bHQgYXMgUkVTVUxULVRZUEUuICBVc2UgT2N0YXZlLCB1 bmxlc3MgTUFUTEFCUCBpcyBub24tbmlsLiIKICAgKGxldCAoKGNtZCAoaWYgbWF0bGFicAogCQkg b3JnLWJhYmVsLW1hdGxhYi1zaGVsbC1jb21tYW5kCiAJICAgICAgIG9yZy1iYWJlbC1vY3RhdmUt c2hlbGwtY29tbWFuZCkpKQogICAgIChwY2FzZSByZXN1bHQtdHlwZQogICAgICAgKGBvdXRwdXQg KG9yZy1iYWJlbC1ldmFsIGNtZCBib2R5KSkKLSAgICAgIChgdmFsdWUgKGxldCAoKHRtcC1maWxl IChvcmctYmFiZWwtdGVtcC1maWxlICJvY3RhdmUtIikpKQorICAgICAgKGB2YWx1ZSAobGV0ICgo dG1wLWZpbGUgKG9yZy1iYWJlbC1wcm9jZXNzLWZpbGUtbmFtZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChvcmctYmFiZWwtb2N0YXZlLXdyYXBwZXItdG1wLWZpbGUgbWF0bGFicCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9xdW90ZSkpKQogCSAgICAgICAgKG9y Zy1iYWJlbC1ldmFsCiAJCSBjbWQKLQkJIChmb3JtYXQgb3JnLWJhYmVsLW9jdGF2ZS13cmFwcGVy LW1ldGhvZCBib2R5Ci0JCQkgKG9yZy1iYWJlbC1wcm9jZXNzLWZpbGUtbmFtZSB0bXAtZmlsZSAn bm9xdW90ZSkKLQkJCSAob3JnLWJhYmVsLXByb2Nlc3MtZmlsZS1uYW1lIHRtcC1maWxlICdub3F1 b3RlKSkpCisgICAgICAgICAgICAgICAgIChvcmctYmFiZWwtb2N0YXZlLWdldC1jb2RlLXRvLWV2 YWwgYm9keSB0bXAtZmlsZSBtYXRsYWJwKSkKIAkgICAgICAgIChvcmctYmFiZWwtb2N0YXZlLWlt cG9ydC1lbGlzcC1mcm9tLWZpbGUgdG1wLWZpbGUpKSkpKSkKIAorKGRlZnVuIG9yZy1iYWJlbC1i b2R5LWZvci1vdXRwdXQgKGJvZHkgbWF0bGFicCkKKyAgIklmIE1BVExBQlAsIGZpeHVwIEJPRFkg Zm9yIE1BVExBQiBvdXRwdXQgcmVzdWx0LXR5cGUuIgorICAod2hlbiBtYXRsYWJwCisgICAgOzsg V2hlbiB3ZSBzZW5kIG11bHRpLWxpbmUgaW5wdXQgdG8gYG1hdGxhYi1zaGVsbCcsIHdlJ2xsIHNl ZSB0aGUgImJvZHkiCisgICAgOzsgY29kZSBsaW5lcyBlY2hvZWQgaW4gdGhlIG91dHB1dCB3aGlj aCBpcyBub3Qgd2hhdCBvbmUgd291bGQgZXhwZWN0LiAgVG8KKyAgICA7OyByZW1vdmUgdGhlc2Ug dW53YW50ZWQgbGluZXMsIHdlIGFwcGVuZCBhIGNvbW1lbnQgIiUtPG9yZy1ldmFsPiIgdG8gZWFj aAorICAgIDs7IGxpbmUgaW4gdGhlIGJvZHkgTUFUTEFCIGNvZGUuICBBZnRlciB3ZSBjb2xsZWN0 IHRoZSByZXN1bHRzIGZyb20KKyAgICA7OyBldmFsdWF0aW9uLCB3ZSBsZXZlcmFnZSB0aGUgIiUt PG9yZy1ldmFsPiIgdG8gcmVtb3ZlIHRoZSB1bndhbnRlZCBsaW5lcy4KKyAgICA7OyBFeGFtcGxl IG9mIGRlc2lyZWQgYmVoYXZpb3I6CisgICAgOzsgICAgICMrYmVnaW5fc3JjIG1hdGxhYiA6cmVz dWx0cyBvdXRwdXQKKyAgICA7OyAgICAgICBkaXNwKCdUaGUgcmVzdWx0cyBhcmU6JykKKyAgICA7 OyAgICAgICBhID0gWzEsIDI7IDMsIDRdCisgICAgOzsgICAgICAgYiA9IGEgKiAyCisgICAgOzsg ICAgICMrZW5kX3NyYworICAgIDs7CisgICAgOzsgICAgICMrUkVTVUxUUzoKKyAgICA7OyAgICAg IytiZWdpbl9leGFtcGxlCisgICAgOzsgICAgIFRoZSByZXN1bHRzIGFyZToKKyAgICA7OworICAg IDs7ICAgICBhID0KKyAgICA7OworICAgIDs7ICAgICAgICAgIDEgICAgIDIKKyAgICA7OyAgICAg ICAgICAzICAgICA0CisgICAgOzsKKyAgICA7OyAgICAgYiA9CisgICAgOzsKKyAgICA7OyAgICAg ICAgICAyICAgICA0CisgICAgOzsgICAgICAgICAgNiAgICAgOAorICAgIDs7ICAgICAjK2VuZF9l eGFtcGxlCisKKyAgICAoc2V0cSBib2R5IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIlxuIiAi ICUtPG9yZy1ldmFsPi1cbiIgYm9keSkpCisgICAgKHdoZW4gKG5vdCAoc3RyaW5nLW1hdGNoICJc blxcJyIgYm9keSkpCisgICAgICAoc2V0cSBib2R5IChjb25jYXQgYm9keSAiICUtPG9yZy1ldmFs Pi0iKSkpKQorICBib2R5KQorCisoZGVmdW4gb3JnLWJhYmVsLWZpeC11cC1vdXRwdXQgKHJlc3Vs dHMpCisgICJGaXggdXAgUkVTVUxUUyBmb3Igb3V0cHV0IHJlc3VsdC10eXBlLiIKKyAgOzsgV2hl biB3ZSBzZW5kIG11bHRpLWxpbmUgaW5wdXQgdG8gYG1hdGxhYi1zaGVsbCcsIHdlJ2xsIHNlZSB0 aGUgImJvZHkiIGNvZGUKKyAgOzsgbGluZXMgZWNob2VkIGluIHRoZSBvdXRwdXQuIFRoZXJlZm9y ZSwgbGV2ZXJhZ2UgdGhlICIlLTxvcmctZXZhbD4iIHRvCisgIDs7IHJlbW92ZSB0aGUgdW5uZWNl c3NhcnkgbGluZXMuCisgIChsZXQgKChmaXhlZC1yZXN1bHRzIChyZXBsYWNlLXJlZ2V4cC1pbi1z dHJpbmcgIl5bXlxuXSolLTxvcmctZXZhbD4tXG4iICIiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0cykpKQorICAgIDs7IFJlbW92ZSB1bm5l Y2Vzc2FyeSBzdGFydGluZyBibGFuayBsaW5lIGNhdXNlZCBieSBzdHJpcHBpbmcgJS08b3JnLWV2 YWw+CisgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiXFxgW1s6c3BhY2U6XVxyXG5dKyIg IiIgZml4ZWQtcmVzdWx0cykpKQorCiAoZGVmdW4gb3JnLWJhYmVsLW9jdGF2ZS1ldmFsdWF0ZS1z ZXNzaW9uCiAgICAgKHNlc3Npb24gYm9keSByZXN1bHQtdHlwZSAmb3B0aW9uYWwgbWF0bGFicCkK ICAgIkV2YWx1YXRlIEJPRFkgaW4gU0VTU0lPTi4iCi0gIChsZXQqICgodG1wLWZpbGUgKG9yZy1i YWJlbC10ZW1wLWZpbGUgKGlmIG1hdGxhYnAgIm1hdGxhYi0iICJvY3RhdmUtIikpKQotCSAod2Fp dC1maWxlIChvcmctYmFiZWwtdGVtcC1maWxlICJtYXRsYWItZW1hY3MtbGluay13YWl0LXNpZ25h bC0iKSkKKyAgKGxldCogKCh0bXAtZmlsZSAob3JnLWJhYmVsLW9jdGF2ZS13cmFwcGVyLXRtcC1m aWxlIG1hdGxhYnApKQogCSAoZnVsbC1ib2R5CiAJICAocGNhc2UgcmVzdWx0LXR5cGUKIAkgICAg KGBvdXRwdXQKIAkgICAgIChtYXBjb25jYXQKIAkgICAgICAjJ29yZy1iYWJlbC1jaG9tcAotCSAg ICAgIChsaXN0IGJvZHkgb3JnLWJhYmVsLW9jdGF2ZS1lb2UtaW5kaWNhdG9yKSAiXG4iKSkKKwkg ICAgICAobGlzdCAob3JnLWJhYmVsLWJvZHktZm9yLW91dHB1dCBib2R5IG1hdGxhYnApCisgICAg ICAgICAgICAgICAgICAgIG9yZy1iYWJlbC1vY3RhdmUtZW9lLWluZGljYXRvcikKKyAgICAgICAg ICAgICAgIlxuIikpCiAJICAgIChgdmFsdWUKLQkgICAgIChpZiAoYW5kIG1hdGxhYnAgb3JnLWJh YmVsLW1hdGxhYi13aXRoLWVtYWNzLWxpbmspCi0JCSAoY29uY2F0Ci0JCSAgKGZvcm1hdCBvcmct YmFiZWwtbWF0bGFiLWVtYWNzLWxpbmstd3JhcHBlci1tZXRob2QKLQkJCSAgYm9keQotCQkJICAo b3JnLWJhYmVsLXByb2Nlc3MtZmlsZS1uYW1lIHRtcC1maWxlICdub3F1b3RlKQotCQkJICAob3Jn LWJhYmVsLXByb2Nlc3MtZmlsZS1uYW1lIHRtcC1maWxlICdub3F1b3RlKSB3YWl0LWZpbGUpICJc biIpCi0JICAgICAgIChtYXBjb25jYXQKLQkJIydvcmctYmFiZWwtY2hvbXAKLQkJKGxpc3QgKGZv cm1hdCBvcmctYmFiZWwtb2N0YXZlLXdyYXBwZXItbWV0aG9kCi0JCQkgICAgICBib2R5Ci0JCQkg ICAgICAob3JnLWJhYmVsLXByb2Nlc3MtZmlsZS1uYW1lIHRtcC1maWxlICdub3F1b3RlKQotCQkJ ICAgICAgKG9yZy1iYWJlbC1wcm9jZXNzLWZpbGUtbmFtZSB0bXAtZmlsZSAnbm9xdW90ZSkpCi0J CSAgICAgIG9yZy1iYWJlbC1vY3RhdmUtZW9lLWluZGljYXRvcikgIlxuIikpKSkpCi0JIChyYXcg KGlmIChhbmQgbWF0bGFicCBvcmctYmFiZWwtbWF0bGFiLXdpdGgtZW1hY3MtbGluaykKLQkJICAo c2F2ZS13aW5kb3ctZXhjdXJzaW9uCi0JCSAgICAod2l0aC10ZW1wLWJ1ZmZlcgotCQkgICAgICAo aW5zZXJ0IGZ1bGwtYm9keSkKLQkJICAgICAgKHdyaXRlLXJlZ2lvbiAiIiAnaWdub3JlZCB3YWl0 LWZpbGUgbmlsIG5pbCBuaWwgJ2V4Y2wpCi0JCSAgICAgIChtYXRsYWItc2hlbGwtcnVuLXJlZ2lv biAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkKLQkJICAgICAgKG1lc3NhZ2UgIldhaXRpbmcgZm9y IE1hdGxhYiBFbWFjcyBMaW5rIikKLQkJICAgICAgKHdoaWxlIChmaWxlLWV4aXN0cy1wIHdhaXQt ZmlsZSkgKHNpdC1mb3IgMC4wMSkpCi0JCSAgICAgICIiKSkgOzsgbWF0bGFiLXNoZWxsLXJ1bi1y ZWdpb24gZG9lc24ndCBzZWVtIHRvCi0JCTs7IG1ha2UgKm1hdGxhYiogYnVmZmVyIGNvbnRlbnRz IGVhc2lseQotCQk7OyBhdmFpbGFibGUsIHNvIDpyZXN1bHRzIG91dHB1dCBjdXJyZW50bHkKLQkJ Ozsgd29uJ3Qgd29yawotCQkob3JnLWJhYmVsLWNvbWludC13aXRoLW91dHB1dAotCQkgICAgKHNl c3Npb24KLQkJICAgICAoaWYgbWF0bGFicAotCQkJIG9yZy1iYWJlbC1vY3RhdmUtZW9lLWluZGlj YXRvcgotCQkgICAgICAgb3JnLWJhYmVsLW9jdGF2ZS1lb2Utb3V0cHV0KQotCQkgICAgIHQgZnVs bC1ib2R5KQotCQkgIChpbnNlcnQgZnVsbC1ib2R5KSAoY29taW50LXNlbmQtaW5wdXQgbmlsIHQp KSkpCisJICAgICAobWFwY29uY2F0CisJICAgICAgIydvcmctYmFiZWwtY2hvbXAKKwkgICAgICAo bGlzdCAob3JnLWJhYmVsLW9jdGF2ZS1nZXQtY29kZS10by1ldmFsIGJvZHkgdG1wLWZpbGUgbWF0 bGFicCkKKwkJICAgIG9yZy1iYWJlbC1vY3RhdmUtZW9lLWluZGljYXRvcikKKyAgICAgICAgICAg ICAgIlxuIikpKSkKKwkgKHJhdy1yZXN1bHRzCisJICAob3JnLWJhYmVsLWNvbWludC13aXRoLW91 dHB1dAorCSAgICAgIChzZXNzaW9uCisJICAgICAgIChpZiBtYXRsYWJwCisJCSAgIG9yZy1iYWJl bC1vY3RhdmUtZW9lLWluZGljYXRvcgorCQkgb3JnLWJhYmVsLW9jdGF2ZS1lb2Utb3V0cHV0KQor CSAgICAgICB0IGZ1bGwtYm9keSkKKwkgICAgKGluc2VydCBmdWxsLWJvZHkpIChjb21pbnQtc2Vu ZC1pbnB1dCBuaWwgdCkpKQogCSByZXN1bHRzKQogICAgIChwY2FzZSByZXN1bHQtdHlwZQogICAg ICAgKGB2YWx1ZQpAQCAtMjUwLDEyICszMzksMTMgQEAgUHJvY2VzcyB0aGUgcmVzdWx0IGFzIFJF U1VMVC1UWVBFLiAgVXNlIE9jdGF2ZSwgdW5sZXNzIE1BVExBQlAgaXMgbm9uLW5pbC4iCiAgICAg ICAoYG91dHB1dAogICAgICAgIChzZXRxIHJlc3VsdHMKIAkgICAgIChpZiBtYXRsYWJwCi0JCSAo Y2RyIChyZXZlcnNlIChkZWxldGUgIiIgKG1hcGNhciAjJ29yZy1zdHJpcC1xdW90ZXMKLQkJCQkJ ICAgICAgICAgIChtYXBjYXIgIydvcmctdHJpbSByYXcpKSkpKQorICAgICAgICAgICAgICAgICAo Y2RyIChyZXZlcnNlIChkZWxldGUgIiIgKG1hcGNhciAjJ29yZy1zdHJpcC1xdW90ZXMKKwkJCQkJ ICAgICAgICAgIChtYXBjYXIgIydvcmctdHJpbSByYXctcmVzdWx0cykpKSkpCiAJICAgICAgIChj ZHIgKG1lbWJlciBvcmctYmFiZWwtb2N0YXZlLWVvZS1vdXRwdXQKIAkJCSAgICAocmV2ZXJzZSAo bWFwY2FyICMnb3JnLXN0cmlwLXF1b3RlcwotCQkJCQkgICAgIChtYXBjYXIgIydvcmctdHJpbSBy YXcpKSkpKSkpCi0gICAgICAgKG1hcGNvbmNhdCAjJ2lkZW50aXR5IChyZXZlcnNlIHJlc3VsdHMp ICJcbiIpKSkpKQorCQkJCQkgICAgIChtYXBjYXIgIydvcmctdHJpbSByYXctcmVzdWx0cykpKSkp KSkKKyAgICAgICAob3JnLWJhYmVsLWZpeC11cC1vdXRwdXQKKyAgICAgICAgKG1hcGNvbmNhdCAj J2lkZW50aXR5IChyZXZlcnNlIHJlc3VsdHMpICJcbiIpKSkpKSkKIAogKGRlZnVuIG9yZy1iYWJl bC1vY3RhdmUtaW1wb3J0LWVsaXNwLWZyb20tZmlsZSAoZmlsZS1uYW1lKQogICAiSW1wb3J0IGRh dGEgZnJvbSBGSUxFLU5BTUUuCg== --00000000000085ab4c06266bca6b--