From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:1008:1e59::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1.migadu.com with LMTPS id 4NmTAslOW2bteAAAA41jLg (envelope-from ) for ; Sat, 01 Jun 2024 18:39:37 +0200 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id +NTPOshOW2Z80gAA62LTzQ (envelope-from ) for ; Sat, 01 Jun 2024 18:39:37 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=jNsrRbko; 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"; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1717259976; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=/i2o47ozeK4Qt0kQjxlWN+7wO68pN/YYiNZoET9Lzbc=; b=C2FhzriIcWw0G8kPkQpFZaPKpGWDr1HNiMLRPdFTxriZgfzMHD4z1kOQhQX7NhTSFou/3p yFE/xaKSF8BGhhliWKsIyf4RQltUfLOZ9g3RmnfBsa4U3ft4tCSD38RWW0hzFTOwSK8DQx sSTLub33vNPzMfTGrm6Xipe/9ng7lkgPIvYxKLdDvJZhK7XAxBztKDrgqtJY2Qz7o0HYVM C7TKzScdnexQZ1L7mFYEi1mkxbMqRlFx66mFhbl0rODawNw4iJ4MZ9D1iWp1XBladFJCx6 t++j82eP6gxI0FZ7K9WCgkqi1zLOJpwDMUhm6EjKRkTPEYQhYXPmN4LSOi7y5g== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=jNsrRbko; 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"; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=key1; d=yhetil.org; t=1717259976; a=rsa-sha256; cv=none; b=iy3bwfZMAoS3sYdQknR3qD33wfLJLoo/Ra1NvECC72ZjGiQbpeIFCcA0Bf8blFwvzKeNb1 J8bZCbu66Mh05grjZoWHqDjpHdMT9jl3gfkgeqT4M9pyr7S5Ldnv7OvhuTaH505wgdj/RV PfejzJSACxPn+gpzBoBlKvTjlTVmvUBPoD4+6099Mz93tzR7LRaPjcWXf2wlsFFqMF1P1+ 7rJa97tdvxX9VxziyevAR0bY8Tu0SnsDnPElppbz1qLbZNjbZOTNkWnFdy8gJStHUoYrsP pp+vomKrivg/2MN3FIPIb+06LKDCyRgUZrR1E8iu0CK6tyQOtHba8sNJRxbJfQ== 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 4B3795498E for ; Sat, 1 Jun 2024 18:39:36 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sDRkc-0002c0-SK; Sat, 01 Jun 2024 12:38:38 -0400 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 1sDRkb-0002bg-He for emacs-orgmode@gnu.org; Sat, 01 Jun 2024 12:38:37 -0400 Received: from mail-qt1-x82b.google.com ([2607:f8b0:4864:20::82b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sDRkZ-0001XI-1d for emacs-orgmode@gnu.org; Sat, 01 Jun 2024 12:38:37 -0400 Received: by mail-qt1-x82b.google.com with SMTP id d75a77b69052e-43fdb797ee2so17225501cf.3 for ; Sat, 01 Jun 2024 09:38:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717259913; x=1717864713; darn=gnu.org; h=cc:from:content-language:subject:to:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=/i2o47ozeK4Qt0kQjxlWN+7wO68pN/YYiNZoET9Lzbc=; b=jNsrRbkoCeP20WEQJkC8zOuKJwGd5USa63pBqbqPFu3s6LAquOOLD6UNCaLv9P/CoG FqirqpYo9pKFQMjMqSOkVOCaBNDmBR69PCRvDfONiB6Bu2OdUKyOdJ65QWW3gvSIgpCF 85VYNJhFtPdg7D7Po6+gj2hZapfsgi7w2gH5667hlzELnGiU3Su5xBy2MRplJVFiFlNQ 6f4gQt7sGZTauEfyCw97DQJI+yH5WW1G7blJZEluZeYKXLE2IuCMW1Cl4sM0nLtwb22O 4yy81qY1mzL/xe7QRRvliQwSKsbQ84NoUv28C533HX6KsPQh1vPi9e06pgaX4l8lmCMv G1Ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717259913; x=1717864713; h=cc:from:content-language:subject:to:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=/i2o47ozeK4Qt0kQjxlWN+7wO68pN/YYiNZoET9Lzbc=; b=sDcbC4dVhNVmbwlA+44dQMkqPbEYUEjUziaVv+ecCFYI+QxLzadiHkbLOBWOt6kVS4 rfWtoEgKu6zBVgrQlbW0Y17nyLV9rRlNh3d73Ohy3L/I5pKCfbmt3ekrPad7AWG7kC+n UUCXYTYp3VxUfwHhbOAqlTJ30yom0B3zREXr/1NDmmscb0fLKXFt5vmmpPREJ00HBi7B A/DFet5Jk1unK1FPtteeOWCuQwOs10+QxZdwpnGKzztFC/qzvV9VO3SB7CSC8PnpxKgd 4R2IL0edYHklxZP5fox3RvhCkmApRVJafAb4oTaOGDJ8qTR/J8Ivrof/E8k2VfBYTMyq DCLg== X-Gm-Message-State: AOJu0YzsfSUxzKS1ZBh1onp4oIoenGxjUIVqjoUsucq8Txake/faK0yc YuZmVrUdmrHLIqxUksEiv4NKdVsdRcLoqe+HqVCBR+yP2a074iM= X-Google-Smtp-Source: AGHT+IGcGh2xUSpeiqpdtR/Ux5uY+N7OQyrl2Gg908EV/LC1apJETlbTcd0sBSvUXViKQqL5hsyDUQ== X-Received: by 2002:a05:622a:391:b0:43a:abcd:c770 with SMTP id d75a77b69052e-43ff524e828mr50616441cf.26.1717259912859; Sat, 01 Jun 2024 09:38:32 -0700 (PDT) Received: from [192.168.18.2] ([198.16.212.43]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-43ff23cceedsm20430411cf.38.2024.06.01.09.38.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 01 Jun 2024 09:38:32 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------9LeqU0MUqCL4X7PrIo770I6Q" Message-ID: <42f22002-b17b-40ab-a8de-3a0df5091be9@gmail.com> Date: Sat, 1 Jun 2024 12:38:31 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: yantar92@posteo.net Subject: Re: [PATCH] function and symbol for headline and olp for org-capture-templates Content-Language: en-US From: Nafiz Islam Cc: emacs-orgmode@gnu.org Received-SPF: pass client-ip=2607:f8b0:4864:20::82b; envelope-from=nafiz.islam1000@gmail.com; helo=mail-qt1-x82b.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action 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-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -5.56 X-Spam-Score: -5.56 X-Migadu-Queue-Id: 4B3795498E X-Migadu-Scanner: mx13.migadu.com X-TUID: 1/5QDqudZTuH This is a multi-part message in MIME format. --------------9LeqU0MUqCL4X7PrIo770I6Q Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Craig Topham has cleared me to contribute to Emacs. I have attached the latest version of my patch. > All you need to create a new symbol in local context is (let ((my-symbol > value)) ...). I don't think that will work because of lexical binding. For example: (should    (equal     "* A\n* B\n** H1 Capture text\n* C\n"     (org-test-with-temp-text-in-file "* A\n* B\n* C\n"       (let* ((file (buffer-file-name))          (org-capture-templates           `(("t" "Todo" entry (file+headline ,file test-org-capture/entry/headline) "** H1 %?"))))         (setq test-org-capture/entry/headline "B")     (org-capture nil "t")     (insert "Capture text")     (org-capture-finalize)         (makunbound 'test-org-capture/entry/headline))       (buffer-string)))) In that code, if I decide to include `test-org-capture/entry/headline' in the `let' then the symbol would be `nil' during `org-capture' even if I initialize in the `let' or use `setq'. I've been also considering testing if the lambda is actually visiting the target file when it is called, but that would mean 3 more tests: `headline', `olp' and `olp+datetree'. Curious to know if you believe that is worthwhile or not. --------------9LeqU0MUqCL4X7PrIo770I6Q Content-Type: text/x-patch; charset=UTF-8; name="0001-function-and-symbol-for-headline-and-olp-for-org-cap.patch" Content-Disposition: attachment; filename*0="0001-function-and-symbol-for-headline-and-olp-for-org-cap.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBiYzFkZTQ4MGQ3MDAyYTdmYjAyNTA5OTAxZTJiYzEwZjAxYjI1MDYwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOYWZpeiBJc2xhbSA8bmFmaXouaXNsYW0xMDAxQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCAyMSBNYXkgMjAyNCAxNjoyNDoyNiAtMDQwMApTdWJqZWN0 OiBbUEFUQ0hdIGZ1bmN0aW9uIGFuZCBzeW1ib2wgZm9yIGhlYWRsaW5lIGFuZCBvbHAgZm9y CiBvcmctY2FwdHVyZS10ZW1wbGF0ZXMKCiogZG9jL29yZy1tYW51YWwub3JnOiBhZGQgdGVt cGxhdGUgZm9ybWF0IGZvciB0aGUgZnVuY3Rpb24gYW5kIHN5bWJvbCB2YXJpYW50CiogZXRj L09SRy1ORVdTOiBhbm5vdW5jZSB0aGUgdXBkYXRlZCBvcHRpb25zCiogbGlzcC9vcmctY2Fw dHVyZS5lbCAob3JnLWNhcHR1cmUtdGVtcGxhdGVzKTogdXBkYXRlIGN1c3RvbWl6YXRpb24g dHlwZSBmb3IgaGVhZGxpbmUsIG9scCBhbmQgb2xwK2RhdGV0cmVlIHRhcmdldHMsIGFuZCB1 cGRhdGUgZG9jc3RyaW5nCiogbGlzcC9vcmctY2FwdHVyZS5lbCAob3JnLWNhcHR1cmUtZXhw YW5kLWhlYWRsaW5lKTogZGVmaW5lIGBvcmctY2FwdHVyZS1leHBhbmQtaGVhZGxpbmUnCiog bGlzcC9vcmctY2FwdHVyZS5lbCAob3JnLWNhcHR1cmUtZXhwYW5kLW9scCk6IGRlZmluZSBg b3JnLWNhcHR1cmUtZXhwYW5kLW9scCcKKiBsaXNwL29yZy1jYXB0dXJlLmVsIChvcmctY2Fw dHVyZS1zZXQtdGFyZ2V0LWxvY2F0aW9uKTogdXNlIGBvcmctY2FwdHVyZS1leHBhbmQtaGVh ZGxpbmUnIHRvIGV4cGFuZCBoZWFkbGluZSwgYW5kIHVzZSBgb3JnLWNhcHR1cmUtZXhwYW5k LW9scCcgdG8gZXhwYW5kIG91dGxpbmUgcGF0aAoqIHRlc3RpbmcvbGlzcC90ZXN0LW9yZy1j YXB0dXJlLmVsICh0ZXN0LW9yZy1jYXB0dXJlL2VudHJ5KTogYWRkIHRlc3RzIGZvciBhdCBt b3N0IHRocmVlIGRpZmZlcmVudCBraW5kcyBvZiB0YXJnZXQgZm9yIGBmaWxlK2hlYWRsaW5l JywgYGZpbGUrb2xwJywgYW5kIGBmaWxlK29scCtkYXRldHJlZScKKiB0ZXN0aW5nL2xpc3Av dGVzdC1vcmctY2FwdHVyZS5lbCAodGVzdC1vcmctY2FwdHVyZS90ZXN0LW9yZy1jYXB0dXJl L29yZy1jYXB0dXJlLWV4cGFuZC1vbHApOiBhZGQgdGVzdHMgZm9yIGBvcmctY2FwdHVyZS1l eHBhbmQtb2xwJwoKLS0tCiBkb2Mvb3JnLW1hbnVhbC5vcmcgICAgICAgICAgICAgICB8ICAx MiArKysKIGV0Yy9PUkctTkVXUyAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsrCiBsaXNw L29yZy1jYXB0dXJlLmVsICAgICAgICAgICAgICB8ICA2NyArKysrKysrKysrKysrLS0tCiB0 ZXN0aW5nL2xpc3AvdGVzdC1vcmctY2FwdHVyZS5lbCB8IDEzMCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKystCiA0IGZpbGVzIGNoYW5nZWQsIDIwMSBpbnNlcnRpb25zKCspLCAx NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvb3JnLW1hbnVhbC5vcmcgYi9kb2Mv b3JnLW1hbnVhbC5vcmcKaW5kZXggMTcwZWVhNTA2Li5mZDIzYTZjZjYgMTAwNjQ0Ci0tLSBh L2RvYy9vcmctbWFudWFsLm9yZworKysgYi9kb2Mvb3JnLW1hbnVhbC5vcmcKQEAgLTgwNDEs MTAgKzgwNDEsMTggQEAgTm93IGxldHMgbG9vayBhdCB0aGUgZWxlbWVudHMgb2YgYSB0ZW1w bGF0ZSBkZWZpbml0aW9uLiAgRWFjaCBlbnRyeSBpbgogCiAgIC0gPShmaWxlK2hlYWRsaW5l ICJmaWxlbmFtZSIgIm5vZGUgaGVhZGxpbmUiKT0gOjoKIAorICAtID0oZmlsZStoZWFkbGlu ZSAiZmlsZW5hbWUiIGZ1bmN0aW9uLXJldHVybmluZy1oZWFkbGluZSk9IDo6CisKKyAgLSA9 KGZpbGUraGVhZGxpbmUgImZpbGVuYW1lIiBzeW1ib2wtY29udGFpbmluZy1oZWFkbGluZSk9 IDo6CisKICAgICBGYXN0IGNvbmZpZ3VyYXRpb24gaWYgdGhlIHRhcmdldCBoZWFkaW5nIGlz IHVuaXF1ZSBpbiB0aGUgZmlsZS4KIAogICAtID0oZmlsZStvbHAgImZpbGVuYW1lIiAiTGV2 ZWwgMSBoZWFkaW5nIiAiTGV2ZWwgMiIgLi4uKT0gOjoKIAorICAtID0oZmlsZStvbHAgImZp bGVuYW1lIiBmdW5jdGlvbi1yZXR1cm5pbmctb3V0bGluZS1wYXRoKT0gOjoKKworICAtID0o ZmlsZStvbHAgImZpbGVuYW1lIiBzeW1ib2wtY29udGFpbmluZy1vdXRsaW5lLXBhdGgpPSA6 OgorCiAgICAgRm9yIG5vbi11bmlxdWUgaGVhZGluZ3MsIHRoZSBmdWxsIHBhdGggaXMgc2Fm ZXIuCiAKICAgLSA9KGZpbGUrcmVnZXhwICJmaWxlbmFtZSIgInJlZ2V4cCB0byBmaW5kIGxv Y2F0aW9uIik9IDo6CkBAIC04MDUzLDYgKzgwNjEsMTAgQEAgTm93IGxldHMgbG9vayBhdCB0 aGUgZWxlbWVudHMgb2YgYSB0ZW1wbGF0ZSBkZWZpbml0aW9uLiAgRWFjaCBlbnRyeSBpbgog CiAgIC0gPShmaWxlK29scCtkYXRldHJlZSAiZmlsZW5hbWUiIFsgIkxldmVsIDEgaGVhZGlu ZyIgLi4uXSk9IDo6CiAKKyAgLSA9KGZpbGUrb2xwK2RhdGV0cmVlICJmaWxlbmFtZSIgZnVu Y3Rpb24tcmV0dXJuaW5nLW91dGxpbmUtcGF0aCk9IDo6CisKKyAgLSA9KGZpbGUrb2xwK2Rh dGV0cmVlICJmaWxlbmFtZSIgc3ltYm9sLWNvbnRhaW5pbmctb3V0bGluZS1wYXRoKT0gOjoK KwogICAgIFRoaXMgdGFyZ2V0W2ZuOjMwXSBjcmVhdGVzIGEgaGVhZGluZyBpbiBhIGRhdGUg dHJlZVtmbjozMV0gZm9yCiAgICAgdG9kYXkncyBkYXRlLiAgSWYgdGhlIG9wdGlvbmFsIG91 dGxpbmUgcGF0aCBpcyBnaXZlbiwgdGhlIHRyZWUKICAgICB3aWxsIGJlIGJ1aWx0IHVuZGVy IHRoZSBub2RlIGl0IGlzIHBvaW50aW5nIHRvLCBpbnN0ZWFkIG9mIGF0IHRvcApkaWZmIC0t Z2l0IGEvZXRjL09SRy1ORVdTIGIvZXRjL09SRy1ORVdTCmluZGV4IDI3NzEyZGQ5YS4uODJk ZWJiMzkzIDEwMDY0NAotLS0gYS9ldGMvT1JHLU5FV1MKKysrIGIvZXRjL09SRy1ORVdTCkBA IC01NjksNiArNTY5LDEyIEBAIFVzZXJzIHdobyBkbyBub3Qgd2FudCB2YXJpYWJsZSBleHBh bnNpb24gY2FuIHNldAogCiBUaGlzIG5ldyBob29rIHJ1bnMgd2hlbiBhIG5vdGUgaGFzIGJl ZW4gc3RvcmVkLgogCisqKiogTmV3IGN1c3RvbWl6YXRpb24gb3B0aW9ucyBmb3Igfm9yZy1j YXB0dXJlLXRlbXBsYXRlc34KKworVGhlIHZhcmlhYmxlIH5vcmctY2FwdHVyZS10ZW1wbGF0 ZXN+IGFjY2VwdHMgYSB0YXJnZXQgc3BlY2lmaWNhdGlvbgorZm9yIGhlYWRsaW5lICh+Zmls ZStoZWFkbGluZX4pIGFuZCBvbHAgKH5maWxlK29sZH4gYW5kCit+ZmlsZStvbHArZGF0ZXRy ZWV+KSBhcyBmdW5jdGlvbiBhbmQgc3ltYm9sLgorCiAqKiogTmV3IG9wdGlvbiBjb250cm9s bGluZyBob3cgT3JnIG1vZGUgc29ydHMgdGhpbmdzIH5vcmctc29ydC1mdW5jdGlvbn4KIAog U29ydGluZyBvZiBhZ2VuZGEgaXRlbXMsIHRhYmxlcywgbWVudXMsIGhlYWRsaW5lcywgZXRj IGNhbiBub3cgYmUKZGlmZiAtLWdpdCBhL2xpc3Avb3JnLWNhcHR1cmUuZWwgYi9saXNwL29y Zy1jYXB0dXJlLmVsCmluZGV4IDY2MDNiNWUwMS4uNWQwYzM5Yjg1IDEwMDY0NAotLS0gYS9s aXNwL29yZy1jYXB0dXJlLmVsCisrKyBiL2xpc3Avb3JnLWNhcHR1cmUuZWwKQEAgLTIwMSwx NSArMjAxLDIxIEBAIHRhcmdldCAgICAgICBTcGVjaWZpY2F0aW9uIG9mIHdoZXJlIHRoZSBj YXB0dXJlZCBpdGVtIHNob3VsZCBiZSBwbGFjZWQuCiAgICAgICAgICAgICAgICAgIEZpbGUg YXMgY2hpbGQgb2YgdGhpcyBlbnRyeSwgb3IgaW4gdGhlIGJvZHkgb2YgdGhlIGVudHJ5CiAK ICAgICAgICAgICAgICAoZmlsZStoZWFkbGluZSBcInBhdGgvdG8vZmlsZVwiIFwibm9kZSBo ZWFkbGluZVwiKQorICAgICAgICAgICAgIChmaWxlK2hlYWRsaW5lIFwicGF0aC90by9maWxl XCIgZnVuY3Rpb24tcmV0dXJuaW5nLWhlYWRsaW5lKQorICAgICAgICAgICAgIChmaWxlK2hl YWRsaW5lIFwicGF0aC90by9maWxlXCIgc3ltYm9sLWNvbnRhaW5pbmctaGVhZGxpbmUpCiAg ICAgICAgICAgICAgICAgIEZhc3QgY29uZmlndXJhdGlvbiBpZiB0aGUgdGFyZ2V0IGhlYWRp bmcgaXMgdW5pcXVlIGluIHRoZSBmaWxlCiAKICAgICAgICAgICAgICAoZmlsZStvbHAgXCJw YXRoL3RvL2ZpbGVcIiBcIkxldmVsIDEgaGVhZGluZ1wiIFwiTGV2ZWwgMlwiIC4uLikKKyAg ICAgICAgICAgICAoZmlsZStvbHAgXCJwYXRoL3RvL2ZpbGVcIiBmdW5jdGlvbi1yZXR1cm5p bmctb3V0bGluZS1wYXRoKQorICAgICAgICAgICAgIChmaWxlK29scCBcInBhdGgvdG8vZmls ZVwiIHN5bWJvbC1jb250YWluaW5nLW91dGxpbmUtcGF0aCkKICAgICAgICAgICAgICAgICAg Rm9yIG5vbi11bmlxdWUgaGVhZGluZ3MsIHRoZSBmdWxsIG91dGxpbmUgcGF0aCBpcyBzYWZl cgogCiAgICAgICAgICAgICAgKGZpbGUrcmVnZXhwICBcInBhdGgvdG8vZmlsZVwiIFwicmVn ZXhwIHRvIGZpbmQgbG9jYXRpb25cIikKICAgICAgICAgICAgICAgICAgRmlsZSB0byB0aGUg ZW50cnkgbWF0Y2hpbmcgcmVnZXhwCiAKICAgICAgICAgICAgICAoZmlsZStvbHArZGF0ZXRy ZWUgXCJwYXRoL3RvL2ZpbGVcIiBcIkxldmVsIDEgaGVhZGluZ1wiIC4uLikKKyAgICAgICAg ICAgICAoZmlsZStvbHArZGF0ZXRyZWUgXCJwYXRoL3RvL2ZpbGVcIiBmdW5jdGlvbi1yZXR1 cm5pbmctb3V0bGluZS1wYXRoKQorICAgICAgICAgICAgIChmaWxlK29scCtkYXRldHJlZSBc InBhdGgvdG8vZmlsZVwiIHN5bWJvbC1jb250YWluaW5nLW91dGxpbmUtcGF0aCkKICAgICAg ICAgICAgICAgICAgV2lsbCBjcmVhdGUgYSBoZWFkaW5nIGluIGEgZGF0ZSB0cmVlIGZvciB0 b2RheSdzIGRhdGUuCiAgICAgICAgICAgICAgICAgIElmIG5vIGhlYWRpbmcgaXMgZ2l2ZW4s IHRoZSB0cmVlIHdpbGwgYmUgb24gdG9wIGxldmVsLgogICAgICAgICAgICAgICAgICBUbyBw cm9tcHQgZm9yIGRhdGUgaW5zdGVhZCBvZiB1c2luZyBUT0RBWSwgdXNlIHRoZQpAQCAtNDA5 LDcgKzQxNSwxMyBAQCB5b3UgY2FuIGVzY2FwZSBhbWJpZ3VvdXMgY2FzZXMgd2l0aCBhIGJh Y2t3YXJkIHNsYXNoLCBlLmcuLCBcXCVpLiIKIAkJCQkoZmlsZSA6dGFnICJMaXRlcmFsIikK IAkJCQkoZnVuY3Rpb24gOnRhZyAiRnVuY3Rpb24iKQogCQkJCSh2YXJpYWJsZSA6dGFnICJW YXJpYWJsZSIpCi0JCQkJKHNleHAgOnRhZyAiRm9ybSIpKSkpCisJCQkJKHNleHAgOnRhZyAi Rm9ybSIpKSkKKyAgICAgICAgKG9scC12YXJpYW50cyAnKGNob2ljZSA6dGFnICJPdXRsaW5l IHBhdGgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcGVhdCA6dGFnICJP dXRsaW5lIHBhdGgiIDppbmxpbmUgdAorCQkJCSAgICAgICAoc3RyaW5nIDp0YWcgIkhlYWRs aW5lIikpCisJCQkgICAgICAgKGZ1bmN0aW9uIDp0YWcgIkZ1bmN0aW9uIikKKwkJCSAgICAg ICAodmFyaWFibGUgOnRhZyAiVmFyaWFibGUiKQorCQkJICAgICAgIChzZXhwIDp0YWcgIkZv cm0iKSkpKQogICAgIGAocmVwZWF0CiAgICAgICAoY2hvaWNlIDp2YWx1ZSAoIiIgIiIgZW50 cnkgKGZpbGUgIn4vb3JnL25vdGVzLm9yZyIpICIiKQogCSAgICAgIChsaXN0IDp0YWcgIk11 bHRpa2V5IGRlc2NyaXB0aW9uIgpAQCAtNDM0LDEyICs0NDYsMTUgQEAgeW91IGNhbiBlc2Nh cGUgYW1iaWd1b3VzIGNhc2VzIHdpdGggYSBiYWNrd2FyZCBzbGFzaCwgZS5nLiwgXFwlaS4i CiAJCQkgICAgKGxpc3QgOnRhZyAiRmlsZSAmIEhlYWRsaW5lIgogCQkJCSAgKGNvbnN0IDpm b3JtYXQgIiIgZmlsZStoZWFkbGluZSkKIAkJCQkgICxmaWxlLXZhcmlhbnRzCi0JCQkJICAo c3RyaW5nIDp0YWcgIiAgSGVhZGxpbmUiKSkKKwkJCQkgIChjaG9pY2UgOnRhZyAiSGVhZGxp bmUiCisJCQkJICAgICAgICAgIChzdHJpbmcgICA6dGFnICJIZWFkbGluZSIpCisJCQkJICAg ICAgICAgIChmdW5jdGlvbiA6dGFnICJGdW5jdGlvbiIpCisJCQkJICAgICAgICAgICh2YXJp YWJsZSA6dGFnICJWYXJpYWJsZSIpCisJCQkJICAgICAgICAgIChzZXhwIDp0YWcgIkZvcm0i KSkpCiAJCQkgICAgKGxpc3QgOnRhZyAiRmlsZSAmIE91dGxpbmUgcGF0aCIKIAkJCQkgIChj b25zdCA6Zm9ybWF0ICIiIGZpbGUrb2xwKQogCQkJCSAgLGZpbGUtdmFyaWFudHMKLQkJCQkg IChyZXBlYXQgOnRhZyAiT3V0bGluZSBwYXRoIiA6aW5saW5lIHQKLQkJCQkJICAoc3RyaW5n IDp0YWcgIkhlYWRsaW5lIikpKQorCQkJCSAgLG9scC12YXJpYW50cykKIAkJCSAgICAobGlz dCA6dGFnICJGaWxlICYgUmVnZXhwIgogCQkJCSAgKGNvbnN0IDpmb3JtYXQgIiIgZmlsZSty ZWdleHApCiAJCQkJICAsZmlsZS12YXJpYW50cwpAQCAtNDQ3LDggKzQ2Miw3IEBAIHlvdSBj YW4gZXNjYXBlIGFtYmlndW91cyBjYXNlcyB3aXRoIGEgYmFja3dhcmQgc2xhc2gsIGUuZy4s IFxcJWkuIgogCQkJICAgIChsaXN0IDp0YWcgIkZpbGUgWyAmIE91dGxpbmUgcGF0aCBdICYg RGF0ZSB0cmVlIgogCQkJCSAgKGNvbnN0IDpmb3JtYXQgIiIgZmlsZStvbHArZGF0ZXRyZWUp CiAJCQkJICAsZmlsZS12YXJpYW50cwotCQkJCSAgKG9wdGlvbiAocmVwZWF0IDp0YWcgIk91 dGxpbmUgcGF0aCIgOmlubGluZSB0Ci0JCQkJCQkgIChzdHJpbmcgOnRhZyAiSGVhZGxpbmUi KSkpKQorCQkJCSAgLG9scC12YXJpYW50cykKIAkJCSAgICAobGlzdCA6dGFnICJGaWxlICYg ZnVuY3Rpb24iCiAJCQkJICAoY29uc3QgOmZvcm1hdCAiIiBmaWxlK2Z1bmN0aW9uKQogCQkJ CSAgLGZpbGUtdmFyaWFudHMKQEAgLTEwMTIsNyArMTAyNiw3IEBAIFN0b3JlIHRoZW0gaW4g dGhlIGNhcHR1cmUgcHJvcGVydHkgbGlzdC4iCiAJICAgIChvcmctY2FwdHVyZS1wdXQtdGFy Z2V0LXJlZ2lvbi1hbmQtcG9zaXRpb24pCiAJICAgIChnb3RvLWNoYXIgcG9zaXRpb24pKQog CSAgIChfIChlcnJvciAiQ2Fubm90IGZpbmQgdGFyZ2V0IElEIFwiJXNcIiIgaWQpKSkpCi0J KGAoZmlsZStoZWFkbGluZSAscGF0aCAsKGFuZCBoZWFkbGluZSAocHJlZCBzdHJpbmdwKSkp CisJKGAoZmlsZStoZWFkbGluZSAscGF0aCAsaGVhZGxpbmUpCiAJIChzZXQtYnVmZmVyIChv cmctY2FwdHVyZS10YXJnZXQtYnVmZmVyIHBhdGgpKQogCSA7OyBPcmcgZXhwZWN0cyB0aGUg dGFyZ2V0IGZpbGUgdG8gYmUgaW4gT3JnIG1vZGUsIG90aGVyd2lzZQogCSA7OyBpdCB0aHJv d3MgYW4gZXJyb3IuICBIb3dldmVyLCB0aGUgZGVmYXVsdCBub3RlcyBmaWxlcwpAQCAtMTAy Niw2ICsxMDQwLDcgQEAgU3RvcmUgdGhlbSBpbiB0aGUgY2FwdHVyZSBwcm9wZXJ0eSBsaXN0 LiIKIAkgKG9yZy1jYXB0dXJlLXB1dC10YXJnZXQtcmVnaW9uLWFuZC1wb3NpdGlvbikKIAkg KHdpZGVuKQogCSAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgICAgICAgKHNldHEgaGVh ZGxpbmUgKG9yZy1jYXB0dXJlLWV4cGFuZC1oZWFkbGluZSBoZWFkbGluZSkpCiAJIChpZiAo cmUtc2VhcmNoLWZvcndhcmQgKGZvcm1hdCBvcmctY29tcGxleC1oZWFkaW5nLXJlZ2V4cC1m b3JtYXQKIAkJCQkJKHJlZ2V4cC1xdW90ZSBoZWFkbGluZSkpCiAJCQkJbmlsIHQpCkBAIC0x MDM1LDggKzEwNTAsOSBAQCBTdG9yZSB0aGVtIGluIHRoZSBjYXB0dXJlIHByb3BlcnR5IGxp c3QuIgogCSAgIChpbnNlcnQgIiogIiBoZWFkbGluZSAiXG4iKQogCSAgIChmb3J3YXJkLWxp bmUgLTEpKSkKIAkoYChmaWxlK29scCAscGF0aCAuICwoYW5kIG91dGxpbmUtcGF0aCAoZ3Vh cmQgb3V0bGluZS1wYXRoKSkpCi0JIChsZXQgKChtIChvcmctZmluZC1vbHAgKGNvbnMgKG9y Zy1jYXB0dXJlLWV4cGFuZC1maWxlIHBhdGgpCi0JCQkJICAgICAgb3V0bGluZS1wYXRoKSkp KQorCSAobGV0KiAoKGV4cGFuZGVkLWZpbGUtcGF0aCAob3JnLWNhcHR1cmUtZXhwYW5kLWZp bGUgcGF0aCkpCisgICAgICAgICAgICAgICAgKG0gKG9yZy1maW5kLW9scCAoY29ucyBleHBh bmRlZC1maWxlLXBhdGgKKwkJCQkgICAgICAgKGFwcGx5ICMnb3JnLWNhcHR1cmUtZXhwYW5k LW9scCBleHBhbmRlZC1maWxlLXBhdGggb3V0bGluZS1wYXRoKSkpKSkKIAkgICAoc2V0LWJ1 ZmZlciAobWFya2VyLWJ1ZmZlciBtKSkKIAkgICAob3JnLWNhcHR1cmUtcHV0LXRhcmdldC1y ZWdpb24tYW5kLXBvc2l0aW9uKQogCSAgICh3aWRlbikKQEAgLTEwNTcsOCArMTA3Myw5IEBA IFN0b3JlIHRoZW0gaW4gdGhlIGNhcHR1cmUgcHJvcGVydHkgbGlzdC4iCiAJCSAoYW5kIChk ZXJpdmVkLW1vZGUtcCAnb3JnLW1vZGUpIChvcmctYXQtaGVhZGluZy1wKSkpKSkKIAkoYChm aWxlK29scCtkYXRldHJlZSAscGF0aCAuICxvdXRsaW5lLXBhdGgpCiAJIChsZXQgKChtIChp ZiBvdXRsaW5lLXBhdGgKLQkJICAgICAgKG9yZy1maW5kLW9scCAoY29ucyAob3JnLWNhcHR1 cmUtZXhwYW5kLWZpbGUgcGF0aCkKLQkJCQkJICBvdXRsaW5lLXBhdGgpKQorCQkgICAgICAo bGV0ICgoZXhwYW5kZWQtZmlsZS1wYXRoIChvcmctY2FwdHVyZS1leHBhbmQtZmlsZSBwYXRo KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWZpbmQtb2xwIChjb25zIGV4cGFu ZGVkLWZpbGUtcGF0aAorCQkJCQkgICAgKGFwcGx5ICMnb3JnLWNhcHR1cmUtZXhwYW5kLW9s cCBleHBhbmRlZC1maWxlLXBhdGggb3V0bGluZS1wYXRoKSkpKQogCQkgICAgKHNldC1idWZm ZXIgKG9yZy1jYXB0dXJlLXRhcmdldC1idWZmZXIgcGF0aCkpCiAJCSAgICAocG9pbnQtbWFy a2VyKSkpKQogCSAgIChzZXQtYnVmZmVyIChtYXJrZXItYnVmZmVyIG0pKQpAQCAtMTE0Myw2 ICsxMTYwLDM0IEBAIFN0b3JlIHRoZW0gaW4gdGhlIGNhcHR1cmUgcHJvcGVydHkgbGlzdC4i CiAJCQkgICAgICAob3JnLWRlY3J5cHQtZW50cnkpCiAJCQkgICAgICAoYW5kIChvcmctYmFj ay10by1oZWFkaW5nIHQpIChwb2ludCkpKSkpKSkpCiAKKyhkZWZ1biBvcmctY2FwdHVyZS1l eHBhbmQtaGVhZGxpbmUgKGhlYWRsaW5lKQorICAiRXhwYW5kIGZ1bmN0aW9ucywgc3ltYm9s cyBhbmQgaGVhZGxpbmUgbmFtZXMgZm9yIEhFQURMSU5FLgorV2hlbiBIRUFETElORSBpcyBh IGZ1bmN0aW9uLCBjYWxsIGl0LiBXaGVuIGl0IGlzIGEgdmFyaWFibGUsCityZXR1cm4gaXRz IHZhbHVlLiBXaGVuIGl0IGlzIGEgc3RyaW5nLCByZXR1cm4gaXQuICBJbiBhbnkgb3RoZXIK K2Nhc2UsIHJldHVybiBgbmlsJy4iCisgIChsZXQqICgoZmluYWwtaGVhZGxpbmUgKGNvbmQg KChzdHJpbmdwIGhlYWRsaW5lKSBoZWFkbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoKGZ1bmN0aW9ucCBoZWFkbGluZSkgKGZ1bmNhbGwgaGVhZGxpbmUpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYW5kIChzeW1ib2xwIGhlYWRsaW5lKSAo Ym91bmRwIGhlYWRsaW5lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN5 bWJvbC12YWx1ZSBoZWFkbGluZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHQgbmlsKSkpKQorICAgIGZpbmFsLWhlYWRsaW5lKSkKKworKGRlZnVuIG9yZy1jYXB0dXJl LWV4cGFuZC1vbHAgKGZpbGUgJnJlc3Qgb2xwKQorICAiRXhwYW5kIGZ1bmN0aW9ucywgc3lt Ym9scyBhbmQgb3V0bGluZSBwYXRocyBmb3IgT0xQLgorV2hlbiBPTFAgaXMgYSBmdW5jdGlv biwgY2FsbCBpdCB3aXRoIG5vIGFyZ3VtZW50cyB3aGlsZQordGhlIGN1cnJlbnQgYnVmZmVy IGlzIHRoZSBGSUxFLXZpc2l0aW5nIGJ1ZmZlci4gV2hlbiBpdAoraXMgYSB2YXJpYWJsZSwg cmV0dXJuIGl0cyB2YWx1ZS4gV2hlbiBpdCBpcyBhIGxpc3Qgb2YKK3N0cmluZywgcmV0dXJu IGl0LiBJbiBhbnkgb3RoZXIgY2FzZSwgc2lnbmFsIGFuIGVycm9yLiIKKyAgKGxldCogKChm aXJzdCAoY2FyIG9scCkpCisgICAgICAgICAoZmluYWwtb2xwIChjb25kICgob3IgKG5vdCBm aXJzdCkgKHN0cmluZ3AgZmlyc3QpKSBvbHApCisgICAgICAgICAgICAgICAgICAgICAgICAg ICgoYW5kIChub3QgKGNkciBvbHApKSAoZnVuY3Rpb25wIGZpcnN0KSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChmaW5kLWZpbGUtbm9zZWxl Y3QgZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgZmlyc3Qp KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKChhbmQgKG5vdCAoY2RyIG9scCkpIChz eW1ib2xwIGZpcnN0KSAoYm91bmRwIGZpcnN0KSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzeW1ib2wtdmFsdWUgZmlyc3QpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo dCAoZXJyb3IgIkludmFsaWQgb3V0bGluZSBwYXRoOiAlUyIgb2xwKSkpKSkKKyAgICAgIGZp bmFsLW9scCkpCisKIChkZWZ1biBvcmctY2FwdHVyZS1leHBhbmQtZmlsZSAoZmlsZSkKICAg IkV4cGFuZCBmdW5jdGlvbnMsIHN5bWJvbHMgYW5kIGZpbGUgbmFtZXMgZm9yIEZJTEUuCiBX aGVuIEZJTEUgaXMgYSBmdW5jdGlvbiwgY2FsbCBpdC4gIFdoZW4gaXQgaXMgYSBmb3JtLCBl dmFsdWF0ZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWNhcHR1cmUuZWwg Yi90ZXN0aW5nL2xpc3AvdGVzdC1vcmctY2FwdHVyZS5lbAppbmRleCAwZWQ0NGM2YWYuLmNl YjZmZDdlOCAxMDA2NDQKLS0tIGEvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWNhcHR1cmUuZWwK KysrIGIvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWNhcHR1cmUuZWwKQEAgLTIxNCwxNSArMjE0 LDExMiBAQAogICA7OyBEbyBub3QgYnJlYWsgbmV4dCBoZWFkbGluZS4KICAgKHNob3VsZAog ICAgKGVxdWFsCi0gICAgIiogQVxuKiogSDEgQ2FwdHVyZSB0ZXh0XG4qIEJcbiIKLSAgICAo b3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQtaW4tZmlsZSAiKiBBXG4qIEJcbiIKKyAgICAiKiBB XG4qIEJcbioqIEgxIENhcHR1cmUgdGV4dFxuKiBDXG4iCisgICAgKG9yZy10ZXN0LXdpdGgt dGVtcC10ZXh0LWluLWZpbGUgIiogQVxuKiBCXG4qIENcbiIKICAgICAgIChsZXQqICgoZmls ZSAoYnVmZmVyLWZpbGUtbmFtZSkpCiAJICAgICAob3JnLWNhcHR1cmUtdGVtcGxhdGVzCi0J ICAgICAgYCgoInQiICJUb2RvIiBlbnRyeSAoZmlsZStoZWFkbGluZSAsZmlsZSAiQSIpICIq KiBIMSAlPyIpKSkpCisJICAgICAgYCgoInQiICJUb2RvIiBlbnRyeSAoZmlsZStoZWFkbGlu ZSAsZmlsZSAiQiIpICIqKiBIMSAlPyIpKSkpCisJKG9yZy1jYXB0dXJlIG5pbCAidCIpCisJ KGluc2VydCAiQ2FwdHVyZSB0ZXh0IikKKwkob3JnLWNhcHR1cmUtZmluYWxpemUpKQorICAg ICAgKGJ1ZmZlci1zdHJpbmcpKSkpCisgIChzaG91bGQKKyAgIChlcXVhbAorICAgICIqIEFc biogQlxuKiogSDEgQ2FwdHVyZSB0ZXh0XG4qIENcbiIKKyAgICAob3JnLXRlc3Qtd2l0aC10 ZW1wLXRleHQtaW4tZmlsZSAiKiBBXG4qIEJcbiogQ1xuIgorICAgICAgKGxldCogKChmaWxl IChidWZmZXItZmlsZS1uYW1lKSkKKwkgICAgIChvcmctY2FwdHVyZS10ZW1wbGF0ZXMKKwkg ICAgICBgKCgidCIgIlRvZG8iIGVudHJ5IChmaWxlK2hlYWRsaW5lICxmaWxlICwobGFtYmRh ICgpICJCIikpICIqKiBIMSAlPyIpKSkpCisJKG9yZy1jYXB0dXJlIG5pbCAidCIpCisJKGlu c2VydCAiQ2FwdHVyZSB0ZXh0IikKKwkob3JnLWNhcHR1cmUtZmluYWxpemUpKQorICAgICAg KGJ1ZmZlci1zdHJpbmcpKSkpCisgIChzaG91bGQKKyAgIChlcXVhbAorICAgICIqIEFcbiog QlxuKiogSDEgQ2FwdHVyZSB0ZXh0XG4qIENcbiIKKyAgICAob3JnLXRlc3Qtd2l0aC10ZW1w LXRleHQtaW4tZmlsZSAiKiBBXG4qIEJcbiogQ1xuIgorICAgICAgKGxldCogKChmaWxlIChi dWZmZXItZmlsZS1uYW1lKSkKKwkgICAgIChvcmctY2FwdHVyZS10ZW1wbGF0ZXMKKwkgICAg ICBgKCgidCIgIlRvZG8iIGVudHJ5IChmaWxlK2hlYWRsaW5lICxmaWxlIHRlc3Qtb3JnLWNh cHR1cmUvZW50cnkvaGVhZGxpbmUpICIqKiBIMSAlPyIpKSkpCisgICAgICAgIChzZXRxIHRl c3Qtb3JnLWNhcHR1cmUvZW50cnkvaGVhZGxpbmUgIkIiKQorCShvcmctY2FwdHVyZSBuaWwg InQiKQorCShpbnNlcnQgIkNhcHR1cmUgdGV4dCIpCisJKG9yZy1jYXB0dXJlLWZpbmFsaXpl KQorICAgICAgICAobWFrdW5ib3VuZCAndGVzdC1vcmctY2FwdHVyZS9lbnRyeS9oZWFkbGlu ZSkpCisgICAgICAoYnVmZmVyLXN0cmluZykpKSkKKyAgKHNob3VsZAorICAgKGVxdWFsCisg ICAgIiogQVxuKiogQlxuKioqIEgxIENhcHR1cmUgdGV4dFxuKiogQ1xuIgorICAgIChvcmct dGVzdC13aXRoLXRlbXAtdGV4dC1pbi1maWxlICIqIEFcbioqIEJcbioqIENcbiIKKyAgICAg IChsZXQqICgoZmlsZSAoYnVmZmVyLWZpbGUtbmFtZSkpCisJICAgICAob3JnLWNhcHR1cmUt dGVtcGxhdGVzCisJICAgICAgYCgoInQiICJUb2RvIiBlbnRyeSAoZmlsZStvbHAgLGZpbGUg IkEiICJCIikgIiogSDEgJT8iKSkpKQorCShvcmctY2FwdHVyZSBuaWwgInQiKQorCShpbnNl cnQgIkNhcHR1cmUgdGV4dCIpCisJKG9yZy1jYXB0dXJlLWZpbmFsaXplKSkKKyAgICAgIChi dWZmZXItc3RyaW5nKSkpKQorICAoc2hvdWxkCisgICAoZXF1YWwKKyAgICAiKiBBXG4qKiBC XG4qKiogSDEgQ2FwdHVyZSB0ZXh0XG4qKiBDXG4iCisgICAgKG9yZy10ZXN0LXdpdGgtdGVt cC10ZXh0LWluLWZpbGUgIiogQVxuKiogQlxuKiogQ1xuIgorICAgICAgKGxldCogKChmaWxl IChidWZmZXItZmlsZS1uYW1lKSkKKwkgICAgIChvcmctY2FwdHVyZS10ZW1wbGF0ZXMKKwkg ICAgICBgKCgidCIgIlRvZG8iIGVudHJ5IChmaWxlK29scCAsZmlsZSAsKGxhbWJkYSAoKSAn KCJBIiAiQiIpKSkgIiogSDEgJT8iKSkpKQorCShvcmctY2FwdHVyZSBuaWwgInQiKQorCShp bnNlcnQgIkNhcHR1cmUgdGV4dCIpCisJKG9yZy1jYXB0dXJlLWZpbmFsaXplKSkKKyAgICAg IChidWZmZXItc3RyaW5nKSkpKQorICAoc2hvdWxkCisgICAoZXF1YWwKKyAgICAiKiBBXG4q KiBCXG4qKiogSDEgQ2FwdHVyZSB0ZXh0XG4qKiBDXG4iCisgICAgKG9yZy10ZXN0LXdpdGgt dGVtcC10ZXh0LWluLWZpbGUgIiogQVxuKiogQlxuKiogQ1xuIgorICAgICAgKGxldCogKChm aWxlIChidWZmZXItZmlsZS1uYW1lKSkKKwkgICAgIChvcmctY2FwdHVyZS10ZW1wbGF0ZXMK KwkgICAgICBgKCgidCIgIlRvZG8iIGVudHJ5IChmaWxlK29scCAsZmlsZSB0ZXN0LW9yZy1j YXB0dXJlL2VudHJ5L2ZpbGUrb2xwKSAiKiBIMSAlPyIpKSkpCisgICAgICAgIChzZXRxIHRl c3Qtb3JnLWNhcHR1cmUvZW50cnkvZmlsZStvbHAgJygiQSIgIkIiKSkKKwkob3JnLWNhcHR1 cmUgbmlsICJ0IikKKwkoaW5zZXJ0ICJDYXB0dXJlIHRleHQiKQorCShvcmctY2FwdHVyZS1m aW5hbGl6ZSkKKyAgICAgICAgKG1ha3VuYm91bmQgJ3Rlc3Qtb3JnLWNhcHR1cmUvZW50cnkv ZmlsZStvbHApKQorICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpCisgIChzaG91bGQKKyAgIChl cXVhbAorICAgICIqIEFcbioqIEJcbioqKiAxOTY5XG4qKioqIDE5NjktMTIgRGVjZW1iZXJc bioqKioqIDE5NjktMTItMzEgV2VkbmVzZGF5XG4qKioqKiogSDEgQ2FwdHVyZSB0ZXh0XG4q KiBDXG4iCisgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0LWluLWZpbGUgIiogQVxuKiog QlxuKiogQ1xuIgorICAgICAgKGxldCogKChmaWxlIChidWZmZXItZmlsZS1uYW1lKSkKKwkg ICAgIChvcmctY2FwdHVyZS10ZW1wbGF0ZXMKKwkgICAgICBgKCgidCIgIlRvZG8iIGVudHJ5 IChmaWxlK29scCtkYXRldHJlZSAsZmlsZSAiQSIgIkIiKSAiKiBIMSAlPyIpKSkKKyAgICAg ICAgICAgICAob3JnLW92ZXJyaWRpbmctZGVmYXVsdC10aW1lIDApKQorCShvcmctY2FwdHVy ZSBuaWwgInQiKQorCShpbnNlcnQgIkNhcHR1cmUgdGV4dCIpCisJKG9yZy1jYXB0dXJlLWZp bmFsaXplKSkKKyAgICAgIChidWZmZXItc3RyaW5nKSkpKQorICAoc2hvdWxkCisgICAoZXF1 YWwKKyAgICAiKiBBXG4qKiBCXG4qKiogMTk2OVxuKioqKiAxOTY5LTEyIERlY2VtYmVyXG4q KioqKiAxOTY5LTEyLTMxIFdlZG5lc2RheVxuKioqKioqIEgxIENhcHR1cmUgdGV4dFxuKiog Q1xuIgorICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dC1pbi1maWxlICIqIEFcbioqIEJc bioqIENcbiIKKyAgICAgIChsZXQqICgoZmlsZSAoYnVmZmVyLWZpbGUtbmFtZSkpCisJICAg ICAob3JnLWNhcHR1cmUtdGVtcGxhdGVzCisJICAgICAgYCgoInQiICJUb2RvIiBlbnRyeSAo ZmlsZStvbHArZGF0ZXRyZWUgLGZpbGUgKGxhbWJkYSAoKSAnKCJBIiAiQiIpKSkgIiogSDEg JT8iKSkpCisgICAgICAgICAgICAgKG9yZy1vdmVycmlkaW5nLWRlZmF1bHQtdGltZSAwKSkK IAkob3JnLWNhcHR1cmUgbmlsICJ0IikKIAkoaW5zZXJ0ICJDYXB0dXJlIHRleHQiKQogCShv cmctY2FwdHVyZS1maW5hbGl6ZSkpCiAgICAgICAoYnVmZmVyLXN0cmluZykpKSkKKyAgKHNo b3VsZAorICAgKGVxdWFsCisgICAgIiogQVxuKiogQlxuKioqIDE5NjlcbioqKiogMTk2OS0x MiBEZWNlbWJlclxuKioqKiogMTk2OS0xMi0zMSBXZWRuZXNkYXlcbioqKioqKiBIMSBDYXB0 dXJlIHRleHRcbioqIENcbiIKKyAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQtaW4tZmls ZSAiKiBBXG4qKiBCXG4qKiBDXG4iCisgICAgICAobGV0KiAoKGZpbGUgKGJ1ZmZlci1maWxl LW5hbWUpKQorCSAgICAgKG9yZy1jYXB0dXJlLXRlbXBsYXRlcworCSAgICAgIGAoKCJ0IiAi VG9kbyIgZW50cnkgKGZpbGUrb2xwK2RhdGV0cmVlICxmaWxlIHRlc3Qtb3JnLWNhcHR1cmUv ZW50cnkvZmlsZStvbHArZGF0ZXRyZWUpICIqIEgxICU/IikpKQorICAgICAgICAgICAgIChv cmctb3ZlcnJpZGluZy1kZWZhdWx0LXRpbWUgMCkpCisgICAgICAgIChzZXRxIHRlc3Qtb3Jn LWNhcHR1cmUvZW50cnkvZmlsZStvbHArZGF0ZXRyZWUgJygiQSIgIkIiKSkKKwkob3JnLWNh cHR1cmUgbmlsICJ0IikKKwkoaW5zZXJ0ICJDYXB0dXJlIHRleHQiKQorCShvcmctY2FwdHVy ZS1maW5hbGl6ZSkKKyAgICAgICAgKG1ha3VuYm91bmQgJ3Rlc3Qtb3JnLWNhcHR1cmUvZW50 cnkvZmlsZStvbHArZGF0ZXRyZWUpKQorICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpCiAgIDs7 IENvcnJlY3RseSBzYXZlIHBvc2l0aW9uIG9mIGluc2VydGVkIGVudHJ5LgogICAoc2hvdWxk CiAgICAoZXF1YWwKQEAgLTgwOSw1ICs5MDYsMzIgQEAgYmVmb3JlXG5nbG9iYWwtYmVmb3Jl XG5hZnRlclxuZ2xvYmFsLWFmdGVyIgogICAgICAgICAgICAgICAob3JnLWNhcHR1cmUgbmls ICJ0IikKICAgICAgICAgICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpKSkKIAorKGVydC1kZWZ0 ZXN0IHRlc3Qtb3JnLWNhcHR1cmUvb3JnLWNhcHR1cmUtZXhwYW5kLW9scCAoKQorICAiVGVz dCBvcmctY2FwdHVyZS1leHBhbmQtb2xwLiIKKyAgOzsgb3JnLWNhcHR1cmUtZXhwYW5kLW9s cCBhY2NlcHRzIGlubGluZWQgb3V0bGluZSBwYXRoCisgIChzaG91bGQKKyAgIChlcXVhbAor ICAgICcoIkEiICJCIiAiQyIpCisgICAgKGxldCAoKGZpbGUgKG1ha2UtdGVtcC1maWxlICJv cmctdGVzdCIpKSkKKyAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAgIChvcmctY2Fw dHVyZS1leHBhbmQtb2xwIGZpbGUgIkEiICJCIiAiQyIpCisgICAgICAgIChkZWxldGUtZmls ZSBmaWxlKSkpKSkKKyAgOzsgVGhlIGN1cnJlbnQgYnVmZmVyIGR1cmluZyB0aGUgZnVuY2Fs bCBvZiB0aGUgbGFtYmRhIGlzIHRoZSB0ZW1wb3JhcnkgdGVzdCBmaWxlCisgIChzaG91bGQK KyAgIChsZXQgKChmaWxlIChtYWtlLXRlbXAtZmlsZSAib3JnLXRlc3QiKSkpCisgICAgIChl cXVhbAorICAgICAgZmlsZQorICAgICAgKHVud2luZC1wcm90ZWN0CisgICAgICAgICAgKG9y Zy1jYXB0dXJlLWV4cGFuZC1vbHAgZmlsZSAobGFtYmRhICgpIChidWZmZXItZmlsZS1uYW1l KSkpCisgICAgICAgIChkZWxldGUtZmlsZSBmaWxlKSkpKSkKKyAgOzsgb3JnLWNhcHR1cmUt ZXhwYW5kLW9scCByZWplY3RzIG91dGxpbmUgcGF0aCB0aGF0IGlzIG5vdCBpbmxpbmVkCisg IChzaG91bGQtZXJyb3IKKyAgIChlcXVhbAorICAgICcoIkEiICJCIiAiQyIpCisgICAgKGxl dCAoKGZpbGUgKG1ha2UtdGVtcC1maWxlICJvcmctdGVzdCIpKSkKKyAgICAgICh1bndpbmQt cHJvdGVjdAorICAgICAgICAgIChvcmctY2FwdHVyZS1leHBhbmQtb2xwIGZpbGUgJygiQSIg IkIiICJDIikpCisgICAgICAgIChkZWxldGUtZmlsZSBmaWxlKSkpKSkpCisKIChwcm92aWRl ICd0ZXN0LW9yZy1jYXB0dXJlKQogOzs7IHRlc3Qtb3JnLWNhcHR1cmUuZWwgZW5kcyBoZXJl Ci0tIAoyLjQ0LjEKCg== --------------9LeqU0MUqCL4X7PrIo770I6Q--