From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Ken Manheimer" Newsgroups: gmane.emacs.devel Subject: allout-mode fixes - mode-specific settings, auto-fill, deactivation hook Date: Sat, 8 Jul 2006 11:48:53 -0400 Message-ID: <2cd46e7f0607080848r50bd436fm4826db512902f26e@mail.gmail.com> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_15338_13100503.1152373733961" X-Trace: sea.gmane.org 1152373850 26738 80.91.229.2 (8 Jul 2006 15:50:50 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sat, 8 Jul 2006 15:50:50 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Jul 08 17:50:44 2006 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1FzF3X-0000ln-G7 for ged-emacs-devel@m.gmane.org; Sat, 08 Jul 2006 17:50:33 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FzF3V-0004dt-3D for ged-emacs-devel@m.gmane.org; Sat, 08 Jul 2006 11:49:17 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1FzF3C-0004bz-NB for emacs-devel@gnu.org; Sat, 08 Jul 2006 11:48:58 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FzF3A-0004av-MF for emacs-devel@gnu.org; Sat, 08 Jul 2006 11:48:58 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FzF3A-0004as-FZ for emacs-devel@gnu.org; Sat, 08 Jul 2006 11:48:56 -0400 Original-Received: from [66.249.92.168] (helo=ug-out-1314.google.com) by monty-python.gnu.org with esmtp (Exim 4.52) id 1FzF3o-0006yu-Uy for emacs-devel@gnu.org; Sat, 08 Jul 2006 11:49:37 -0400 Original-Received: by ug-out-1314.google.com with SMTP id y2so915639uge for ; Sat, 08 Jul 2006 08:48:54 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type; b=alJe1wCYbB4FXWjYkjGfP+PEHK4VJhmZZkuVYxNl+7qJolSxuSvMb677O/5SnE103NTUgNVlT6giYa3tzKM0MBuNCthmrM1ghf+HUverId3V37Mq8uesA3wCra6f3bGIAvDJcs6aqIRLqsNKEVg+JVbDKYO4KkguKC71KlfNrEo= Original-Received: by 10.78.97.7 with SMTP id u7mr1138030hub; Sat, 08 Jul 2006 08:48:54 -0700 (PDT) Original-Received: by 10.78.202.13 with HTTP; Sat, 8 Jul 2006 08:48:53 -0700 (PDT) Original-To: emacs-devel@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:56802 Archived-At: ------=_Part_15338_13100503.1152373733961 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline i have new patch for allout.el. it fixes a few things: - hooks and mode-specific variable settings are properly set to be local, and properly cleaned up on mode deactivation - auto-fill is not forced active if it wasn't already active when the mode was initiated. - hotspot key handling is modularized, for consistent use everywhere. - a new hook variable, `allout-mode-deactivation-hook', provides a complement to `allout-mode-hook'. the settings cleanup is implemented with an improved settings suspension/resumption mechanism, accompanied by some much needed unit tests. the unit tests are run after the file is loaded if a new customization option, `allout-run-unit-tests-after-load', is true. the idea is that allout code developers set this to true, and are warned quickly about regressions. the change-log is included below and also attached. the patch and a new version of the NEWS file are also attached. I'm hoping someone with commit privileges will have a moment to install these changes. -- ken ken.manheimer@gmail.com http://myriadicity.net 2006-07-08 Ken Manheimer * allout.el: Require 'cl. (allout-mode-deactivate-hook): New hook, is run when allout mode deactivates. (allout-developer): New allout customization subgroup. (allout-run-unit-tests-after-load): New allout-developer customization variable, when true allout unit tests are run after file load. (allout-inhibit-auto-fill): Disable auto-fill activity even during auto-fill-mode. (allout-resumptions): Removed, to be replaced by... (allout-add-resumptions): Register variable settings to be reinstated by `allout-do-resumptions'. The settings are made buffer-local, but the locality/globality of the suspended setting is restored on resumption. (allout-do-resumptions): Reinstate all settings suspended using `allout-add-resumptions'. (allout-test-resumptions): Unit tests (and intermediate variables) for resumptions. (allout-tests-globally-unbound, allout-tests-globally-true) (allout-tests-locally-true): Intermediate variables for resumptions unit tests. (allout-overlay-preparations): Replaces `allout-set-overlay-category'. (allout-exposure-category): Replaces 'allout-overlay-category variable. (allout-mode): Use `allout-add-resumptions' and `allout-do-resumptions' instead of retired `allout-resumptions'. For hook functions, use `local' parameter so hook settings are created and removed as buffer-local settings. Revise (resumptions) setting auto-fill-function so it is set only if already active. (The related fill-function settings are all made in either case, so that activating auto-fill-mode activity will have the custom allout-mode behaviors (hanging indent on topics, if configured for it). Also, remove all allout-exposure-category overlays on mode deactivation. (allout-hotspot-key-handler): New function extracted from `allout-pre-command-business', so the functionality can be used for other purposes, eg as a binding in an overlay. (allout-pre-command-business): Use new `allout-hotspot-key-handler'. (allout-auto-fill): Respect new `allout-inhibit-auto-fill' customization variable. (allout-run-unit-tests): Run the (currently quite small) repertoire of unit tests. Called from an eval-after-load statement if user has customized `allout-run-unit-tests-after-load' non-nil. ------=_Part_15338_13100503.1152373733961 Content-Type: text/plain; name=allout-ChangeLog.txt; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_epe5bhsk Content-Disposition: attachment; filename="allout-ChangeLog.txt" MjAwNi0wNy0wOCAgS2VuIE1hbmhlaW1lciAgPGtlbi5tYW5oZWltZXJAZ21haWwuY29tPgoKCSog YWxsb3V0LmVsOiBSZXF1aXJlICdjbC4KCShhbGxvdXQtbW9kZS1kZWFjdGl2YXRlLWhvb2spOiBO ZXcgaG9vaywgaXMgcnVuIHdoZW4gYWxsb3V0IG1vZGUKCWRlYWN0aXZhdGVzLgoJKGFsbG91dC1k ZXZlbG9wZXIpOiBOZXcgYWxsb3V0IGN1c3RvbWl6YXRpb24gc3ViZ3JvdXAuCgkoYWxsb3V0LXJ1 bi11bml0LXRlc3RzLWFmdGVyLWxvYWQpOiBOZXcgYWxsb3V0LWRldmVsb3BlcgoJY3VzdG9taXph dGlvbiB2YXJpYWJsZSwgd2hlbiB0cnVlIGFsbG91dCB1bml0IHRlc3RzIGFyZSBydW4gYWZ0ZXIK CWZpbGUgbG9hZC4KCShhbGxvdXQtaW5oaWJpdC1hdXRvLWZpbGwpOiBEaXNhYmxlIGF1dG8tZmls bCBhY3Rpdml0eSBldmVuIGR1cmluZwoJYXV0by1maWxsLW1vZGUuCgkoYWxsb3V0LXJlc3VtcHRp b25zKTogUmVtb3ZlZCwgdG8gYmUgcmVwbGFjZWQgYnkuLi4KCShhbGxvdXQtYWRkLXJlc3VtcHRp b25zKTogUmVnaXN0ZXIgdmFyaWFibGUgc2V0dGluZ3MgdG8gYmUKCXJlaW5zdGF0ZWQgYnkgYGFs bG91dC1kby1yZXN1bXB0aW9ucycuICBUaGUgc2V0dGluZ3MgYXJlIG1hZGUKCWJ1ZmZlci1sb2Nh bCwgYnV0IHRoZSBsb2NhbGl0eS9nbG9iYWxpdHkgb2YgdGhlIHN1c3BlbmRlZCBzZXR0aW5nCglp cyByZXN0b3JlZCBvbiByZXN1bXB0aW9uLgoJKGFsbG91dC1kby1yZXN1bXB0aW9ucyk6IFJlaW5z dGF0ZSBhbGwgc2V0dGluZ3Mgc3VzcGVuZGVkIHVzaW5nCglgYWxsb3V0LWFkZC1yZXN1bXB0aW9u cycuCgkoYWxsb3V0LXRlc3QtcmVzdW1wdGlvbnMpOiBVbml0IHRlc3RzIChhbmQgaW50ZXJtZWRp YXRlIHZhcmlhYmxlcykKCWZvciByZXN1bXB0aW9ucy4KCShhbGxvdXQtdGVzdHMtZ2xvYmFsbHkt dW5ib3VuZCwgYWxsb3V0LXRlc3RzLWdsb2JhbGx5LXRydWUpCgkoYWxsb3V0LXRlc3RzLWxvY2Fs bHktdHJ1ZSk6IEludGVybWVkaWF0ZSB2YXJpYWJsZXMgZm9yCglyZXN1bXB0aW9ucyB1bml0IHRl c3RzLgoJKGFsbG91dC1vdmVybGF5LXByZXBhcmF0aW9ucyk6IFJlcGxhY2VzIGBhbGxvdXQtc2V0 LW92ZXJsYXktY2F0ZWdvcnknLgoJKGFsbG91dC1leHBvc3VyZS1jYXRlZ29yeSk6IFJlcGxhY2Vz ICdhbGxvdXQtb3ZlcmxheS1jYXRlZ29yeSB2YXJpYWJsZS4KCShhbGxvdXQtbW9kZSk6IFVzZSBg YWxsb3V0LWFkZC1yZXN1bXB0aW9ucycgYW5kIGBhbGxvdXQtZG8tcmVzdW1wdGlvbnMnCglpbnN0 ZWFkIG9mIHJldGlyZWQgYGFsbG91dC1yZXN1bXB0aW9ucycuICBGb3IgaG9vayBmdW5jdGlvbnMs IHVzZQoJYGxvY2FsJyBwYXJhbWV0ZXIgc28gaG9vayBzZXR0aW5ncyBhcmUgY3JlYXRlZCBhbmQg cmVtb3ZlZCBhcwoJYnVmZmVyLWxvY2FsIHNldHRpbmdzLiAgUmV2aXNlIChyZXN1bXB0aW9ucykg c2V0dGluZwoJYXV0by1maWxsLWZ1bmN0aW9uIHNvIGl0IGlzIHNldCBvbmx5IGlmIGFscmVhZHkg YWN0aXZlLiAgKFRoZQoJcmVsYXRlZCBmaWxsLWZ1bmN0aW9uIHNldHRpbmdzIGFyZSBhbGwgbWFk ZSBpbiBlaXRoZXIgY2FzZSwgc28KCXRoYXQgYWN0aXZhdGluZyBhdXRvLWZpbGwtbW9kZSBhY3Rp dml0eSB3aWxsIGhhdmUgdGhlIGN1c3RvbQoJYWxsb3V0LW1vZGUgYmVoYXZpb3JzIChoYW5naW5n IGluZGVudCBvbiB0b3BpY3MsIGlmIGNvbmZpZ3VyZWQgZm9yCglpdCkuICBBbHNvLCByZW1vdmUg YWxsIGFsbG91dC1leHBvc3VyZS1jYXRlZ29yeSBvdmVybGF5cyBvbiBtb2RlCglkZWFjdGl2YXRp b24uCgkoYWxsb3V0LWhvdHNwb3Qta2V5LWhhbmRsZXIpOiBOZXcgZnVuY3Rpb24gZXh0cmFjdGVk IGZyb20KCWBhbGxvdXQtcHJlLWNvbW1hbmQtYnVzaW5lc3MnLCBzbyB0aGUgZnVuY3Rpb25hbGl0 eSBjYW4gYmUgdXNlZAoJZm9yIG90aGVyIHB1cnBvc2VzLCBlZyBhcyBhIGJpbmRpbmcgaW4gYW4g b3ZlcmxheS4KCShhbGxvdXQtcHJlLWNvbW1hbmQtYnVzaW5lc3MpOiBVc2UgbmV3IGBhbGxvdXQt aG90c3BvdC1rZXktaGFuZGxlcicuCgkoYWxsb3V0LWF1dG8tZmlsbCk6IFJlc3BlY3QgbmV3IGBh bGxvdXQtaW5oaWJpdC1hdXRvLWZpbGwnCgljdXN0b21pemF0aW9uIHZhcmlhYmxlLgoJKGFsbG91 dC1ydW4tdW5pdC10ZXN0cyk6IFJ1biB0aGUgKGN1cnJlbnRseSBxdWl0ZSBzbWFsbCkKCXJlcGVy dG9pcmUgb2YgdW5pdCB0ZXN0cy4gIENhbGxlZCBmcm9tIGFuIGV2YWwtYWZ0ZXItbG9hZCBzdGF0 ZW1lbnQKCWlmIHVzZXIgaGFzIGN1c3RvbWl6ZWQgYGFsbG91dC1ydW4tdW5pdC10ZXN0cy1hZnRl ci1sb2FkJyBub24tbmlsLgoKMjAwNi0wNi0xNyAgS2VuIE1hbmhlaW1lciAgPGtlbi5tYW5oZWlt ZXJAZ21haWwuY29tPgoKCSogYWxsb3V0LmVsOiAoYWxsb3V0LWluaGliaXQtYXV0by1maWxsKTog TmV3IGN1c3RvbSBjb25maWd1cmF0aW9uCgl2YXJpYWJsZSwgbWFrZXMgaXQgZWFzeSB0byBpbmhp Yml0IGFsbG91dCBhdXRvIGZpbGwgaW4gZ2VuZXJhbCBvcgoJb24gYSBidWZmZXItYnktYnVmZmVy IGJhc2lzLgoJKGFsbG91dC1vdmVybGF5LXByZXBhcmF0aW9ucyk6IEJldHRlciBuYW1lIHRoYW4K CWFsbG91dC1zZXQtb3ZlcmxheS1jYXRlZ29yeSAocGFydGljdWxhcmx5IHdoZW4gaSBhZGQgYSBm ZXcgbW9yZQoJb3ZlcmxheXMpLgoJKGFsbG91dC1uZXh0LWhlYWRpbmcpOiBGaXhlZCBidWcgd2hl cmUgaXQgd291bGQgc2tpcCB0aGUgZmlyc3QKCWhlYWRpbmcgaWYgcHJlY2VkZWQgaW4gdGhlIGJ1 ZmZlciBieSBvbmx5IGEgYmxhbmsgbGluZS4gIEFsc28sCglmaXhlZCBkb2NzdHJpbmcgY3V0LWFu ZC1wYXN0ZSBlcnJvci4KCShhbGxvdXQta2lsbC10b3BpYyk6IEFkZCBjb2xsYXBzZWQtY3VlIHRl eHQgcHJvcGVydHkgd2l0aGluCglhbGxvdXQtdW5wcm90ZWN0ZWQuCgoyMDA2LTA1LTExICBLZW4g TWFuaGVpbWVyICA8a2VuLm1hbmhlaW1lckBnbWFpbC5jb20+CgoJKiBhbGxvdXQuZWw6IChhbGxv dXQtc2hvdy1ib2RpZXMsIGFsbG91dC1vbGQtc3R5bGUtcHJlZml4ZXMpCgkoYWxsb3V0LXN0eWxp c2gtcHJlZml4ZXMsIGFsbG91dC1udW1iZXJlZC1idWxsZXQpCgkoYWxsb3V0LWZpbGUteHJlZi1i dWxsZXQsIGFsbG91dC11c2UtaGFuZ2luZy1pbmRlbnRzKTogVXNlIHNpbXBsZQoJcHJlZGljYXRl cyB0byBxdWFsaWZ5IGBzYWZlLWxvY2FsLXZhcmlhYmxlJyBwcm9wZXJ0eSwgd2hlbgoJYXZhaWxh YmxlLCBlbHNlIHVzZSBlcXVpdmFsZW50IGxhbWJkYS4KCShhbGxvdXQtY3VycmVudC10b3BpYy1j b2xsYXBzZWQtcCk6IERvIHRoZSByaWdodCB0aGluZyByZWdhcmRpbmcKCXRyYWlsaW5nIGJsYW5r IGxpbmVzLgoKMjAwNi0wNS0xMiAgS2VuIE1hbmhlaW1lciAgPGtlbi5tYW5oZWltZXJAZ21haWwu Y29tPgoKCSogYWxsb3V0LmVsOiAoYWxsb3V0LXZpZXctY2hhbmdlLWhvb2spOiBNYXJrIGFzIGJl aW5nIGRlcHJlY2F0ZWQsCgl0byBiZSByZXBsYWNlZCBieSBgYWxsb3V0LWV4cG9zdXJlLWNoYW5n ZS1ob29rJy4KCShhbGxvdXQtZXhwb3N1cmUtY2hhbmdlLWhvb2spOiBOZXcsIHJlcGxhY2luZwoJ YGFsbG91dC12aWV3LWNoYW5nZS1ob29rJy4KCShhbGxvdXQtZmxhZy1yZWdpb24pOiBSdW4gbmV3 IGhvb2sgYGFsbG91dC1leHBvc3VyZS1jaGFuZ2UtaG9vaycsCglpbiBhZGRpdGlvbiB0byBgYWxs b3V0LXZpZXctY2hhbmdlLWhvb2snLgoJKGFsbG91dC1zaG93LWJvZGllcywgYWxsb3V0LW9sZC1z dHlsZS1wcmVmaXhlcykKCShhbGxvdXQtc3R5bGlzaC1wcmVmaXhlcywgYWxsb3V0LXVzZS1oYW5n aW5nLWluZGVudHMpOiBRdW90ZSB0aGUKCWxhbWJkYSBmb3JtcyB0byBwcmV2ZW50IHRoZWlyIHNo b3dpbmcgdXAgaW4gdmFyaWFibGUgaGVscAoJcHJlc2VudGF0aW9ucyBhcyBpbnNjcnV0YWJsZSBi eXRlLWNvbXBpbGVkIGNvZGUuCgkoYWxsb3V0LW51bWJlcmVkLWJ1bGxldCwgYWxsb3V0LWZpbGUt eHJlZi1idWxsZXQsIGFsbG91dC1sYXlvdXQpOgoJVXNlIHN0cmluZy1vci1udWxsLXAgdG8gcXVh bGlmeSBzYWZlLWxvY2FsLXZhcmlhYmxlIHZhbHVlcy4KCShhbGxvdXQtcmVpbmRlbnQtYm9kaWVz KTogVXNlIG1lbXEgdG8gcXVhbGlmeSBtYXRjaGVzIGFnYWluc3QKCXZhbGlkIHNhZmUtbG9jYWwt dmFyaWFibGUgdmFsdWVzLiAgQWxzbywgcXVvdGUgdGhlIGxhbWJkYSBhcyBhYm92ZS4KCShhbGxv dXQtdXNlLW1vZGUtc3BlY2lmaWMtbGVhZGVyKTogQWRkIG1pc3NpbmcgY2FuZGlkYXRlLXZhbHVl CglzeW1ib2xzLCB1c2UgbWVtcSwgYW5kIHF1b3RlIHRoZSBsYW1iZGEuCgkoYWxsb3V0LW92ZXJs YXktaW50ZXJpb3ItbW9kaWZpY2F0aW9uLWhhbmRsZXIpOiBSZW1vdmUgdW51c2VkCgl2YXJpYWJs ZXMgYG1zZycgYW5kICdvcGVuZWQnLgoJKGFsbG91dC1oaWRkZW4tcCk6IENvbnN0cmFpbiBpbnZp c2liaWxpdHkgY29uc2lkZXJhdGlvbiB0byBhbGxvdXQncwoJaW52aXNpYmlsaXR5IHNwZWMsIGRp c3JlZ2FyZGluZyBpbnZpc2liaWxpdHkgZm9yIG90aGVyIHJlYXNvbnMuCgoyMDA2LTA0LTE3ICBL ZW4gTWFuaGVpbWVyICA8a2VuLm1hbmhlaW1lckBnbWFpbC5jb20+CgoJKiBhbGxvdXQuZWw6IFJl bW92ZSBsb2NhbCBhdXRvbG9hZCBkZWNsYXJhdGlvbiBmb3IKCXBnZy1ncGctc3ltbWV0cmljLWtl eS1wLCBzaW5jZSB0aGF0J3Mgbm93IGRvbmUgaW4gcGdnLWdwZy5lbC4KCShhbGxvdXQtc2hvdy1i b2RpZXMsIGFsbG91dC1oZWFkZXItcHJlZml4LCBhbGxvdXQtcHJpbWFyeS1idWxsZXQpCgkoYWxs b3V0LXBsYWluLWJ1bGxldHMtc3RyaW5nLCBhbGxvdXQtZGlzdGluY3RpdmUtYnVsbGV0cy1zdHJp bmcpCgkoYWxsb3V0LXVzZS1tb2RlLXNwZWNpZmljLWxlYWRlciwgYWxsb3V0LW9sZC1zdHlsZS1w cmVmaXhlcykKCShhbGxvdXQtc3R5bGlzaC1wcmVmaXhlcywgYWxsb3V0LW51bWJlcmVkLWJ1bGxl dCkKCShhbGxvdXQtZmlsZS14cmVmLWJ1bGxldCwgYWxsb3V0LXByZXNlbnRhdGlvbi1wYWRkaW5n KQoJKGFsbG91dC11c2UtaGFuZ2luZy1pbmRlbnRzLCBhbGxvdXQtcmVpbmRlbnQtYm9kaWVzKTog TWFyayBhcwoJc2FmZS1sb2NhbC12YXJpYWJsZSB3aXRoIHN1aXRhYmxlIHZhbHVlIHNwZWMsIGFu ZCBhZGQgYXV0b2xvYWQKCWNvb2tpZSBmb3IgbG9hZGRlZnMgaW5jbHVzaW9uLiAgV2Ugbm93IHVz ZSBhbiBleHBsaWNpdCBzcGVjIGV2ZXJ5d2hlcmUuCgkobW92ZS1iZWdpbm5pbmctb2YtbGluZSwg bW92ZS1lbmQtb2YtbGluZSk6IFJlcGFpciBzbyB0aGVzZSBjb21wYXQKCWZ1bmN0aW9ucyBub3cg YWN0dWFsbHkgcmVzaXR1YXRlIHRoZSBwb2ludCwgd2hlbiBhcHByb3ByaWF0ZS4KCjIwMDYtMDQt MjYgIFN0ZWZhbiBNb25uaWVyICA8bW9ubmllckBpcm8udW1vbnRyZWFsLmNhPgoKCSogYWxsb3V0 LmVsIChhbGxvdXQtbGF5b3V0LCBhbGxvdXQtcGFzc3BocmFzZS12ZXJpZmllci1zdHJpbmcpCgko YWxsb3V0LXBhc3NwaHJhc2UtaGludC1zdHJpbmcpOiBUaWdodGVuIHVwIGEgYml0IHRoZSBzYWZl dHkgcHJlZGljYXRlLgoKMjAwNi0wMy0xNCAgS2VuIE1hbmhlaW1lciAgPGtlbi5tYW5oZWltZXJA Z21haWwuY29tPgoKCSogYWxsb3V0LmVsOiBJbmNyZW1lbnQgdmVyc2lvbiB0byAyLjIuMSBpbiBm aWxlIGNvbW1lbnRhcnkuCgoJKGFsbG91dC12ZXJzaW9uKTogSW5jcmVtZW50IHRvIDIuMi4xLgoK CShhbGxvdXQtZGVmYXVsdC1sYXlvdXQpOiBOZXcgY3VzdG9taXphdGlvbiB2YXJpYWJsZSwgdXNl ZCB3aGVuIHRoZQoJZmlsZSBsYWNrcyBhIHNwZWNpZmljIGFsbG91dC1sYXlvdXQuICBVc2VzIGFs bG91dC1sYXlvdXQtdHlwZSBmb3IKCXJlY3Vyc2l2ZWx5IG5lc3RlZCBkZWZpbml0aW9uLgoKCShh bGxvdXQtbGF5b3V0LXR5cGUpOiBXaWRnZXQgZGVmaW5pbmcgYWxsb3V0IGxheW91dHMsIG5lY2Vz c2FyeSBmb3IKCXNlbGYtcmVjdXJzaXZlIGRlZmluaXRpb24uCgoJKGFsbG91dC1tb2RlKTogSW5j b3Jwb3JhdGUgYWxsb3V0LWRlZmF1bHQtbGF5b3V0IGFzIGZhbGxiYWNrIGZvcgoJYWxsb3V0LWxh eW91dC4KCgkoYWxsb3V0LWxheW91dCk6IE1hcmsgYXMgJ3NhZmUtbG9jYWwtdmFyaWFibGUnLCBh bmQgcmVmZXIgbWVudGlvbgoJZmFsbGJhY2sgdG8gYGFsbG91dC1kZWZhdWx0LWxheW91dCcgaW4g YWJzZW5jZSBvZiBhIHNwZWNpZmllZCB2YWx1ZS4KCShhbGxvdXQtcGFzc3BocmFzZS12ZXJpZmll ci1zdHJpbmcpCgkoYWxsb3V0LXBhc3NwaHJhc2UtaGludC1zdHJpbmcpOiBNYXJrIGFzICdzYWZl LWxvY2FsLXZhcmlhYmxlJy4KCgkoYWxsb3V0LWZpbGUtcGFzc3BocmFzZS12ZXJpZmllci1zdHJp bmcpOiBPYnNvbGV0ZSB2YXJpYWJsZSwgcmVtb3ZlZC4KCgkoYWxsb3V0LWdldC1lbmNyeXB0aW9u LXBhc3NwaHJhc2UtdmVyaWZpZXIpOiBVc2UgY29ycmVjdCBuYW1lIG9mCglwYXNzcGhyYXNlIHZl cmlmaWVyIGluIGRvY3N0cmluZy4KCjIwMDYtMDMtMDMgIEtlbiBNYW5oZWltZXIgIDxrZW4ubWFu aGVpbWVyQGdtYWlsLmNvbT4KCgkqIGFsbG91dC5lbDogUmVzdGFibGlzaCBpbnRlcm1lZGlhdGUg bWlzc2luZyBjb21tZW50IGhlYWRlciB0bwoJcHJlc2VydmUgb3V0bGluZSBzdHJ1Y3R1cmUuCgko YWxsb3V0LWJlZ2lubmluZy1vZi1jdXJyZW50LWVudHJ5KTogU2tpcCBpbnZpc2libGUgdGV4dC4K CShhbGxvdXQtb3Blbi10b3BpYyk6IEZpeCBvcGVuaW5nIGEgdG9waWMgYXQgZW5kLW9mLWJ1ZmZl ci4KCShhbGxvdXQtbWlub3ItbW9kZSk6IE1vdmUgbmVhcmVyIHRvIGFsbG91dC1tb2RlIGZ1bmN0 aW9uLgoKMjAwNi0wMi0xNyAgRWxpIFphcmV0c2tpaSAgPGVsaXpAZ251Lm9yZz4KCgkqIGFsbG91 dC5lbCAoYWxsb3V0LWhpZGRlbi1wKTogTW92ZSB0aGlzIGRlZnN1YnN0IGJlZm9yZQoJYWxsb3V0 LW92ZXJsYXktaW50ZXJpb3ItbW9kaWZpY2F0aW9uLWhhbmRsZXIsIHdoZXJlIGl0IGlzIGZpcnN0 Cgl1c2VkLgoKMjAwNi0wMi0xNyAgS2VuIE1hbmhlaW1lciAgPGtlbi5tYW5oZWltZXJAZ21haWwu Y29tPgoKCSogYWxsb3V0LmVsOiBVc2UgYWxsb3V0IGludmlzaWJsZS10ZXh0IG92ZXJsYXlzIGlu c3RlYWQgb2YKCXNlbGVjdGl2ZSBkaXNwbGF5IGZvciBjb25jZWFsZWQgdGV4dC4gIEFsc28sIGxv dHMgb2YgZ2VuZXJhbAoJY2xlYW51cCwgYW5kIGltcHJvdmVkIGNvbXBhdGliaWxpdHkgY29kZS4K CgkoYWxsb3V0LXZlcnNpb24pIEluY3JlbWVudGVkLCBjb3JyZWN0ZWQsIHJldmlzZWQsIGFuZCBy ZWZpbmVkCgltb2R1bGUgY29tbWVudGFyeS4KCgkocHJvdmlkZSAnYWxsb3V0KTogTW92ZWQgdG8g dGhlIGJvdHRvbSwgYWRkZWQgYSByZXF1aXJlIG9mIG92ZXJsYXkuCgoJKGFsbG91dC1lbmNyeXB0 LXVuZW5jcnlwdGVkLW9uLXNhdmVzKTogRGVmYXVsdHMgdG8gdCBpbnN0ZWFkIG9mCglgZXhjZXB0 LWN1cnJlbnQnLgoJKGFsbG91dC13cml0ZS1maWxlLWhvb2staGFuZGxlcik6IE1pbmltaXplIGRl bGF5LgoJKGNvdW50LXRyYWlsaW5nLXdoaXRlc3BhY2UtcmVnaW9uKTogTmV3IGZ1bmN0aW9uIHNv CglhdXRvLWVuY3J5cHRpb24gb2YgY3VycmVudCB0b3BpYyBjYW4gcmVzaXR1YXRlIGN1cnNvciBl eGFjdGx5LgoJUEdQL0dQRyBlbmNyeXB0aW9uIHRyaW1zIHRyYWlsaW5nIHdoaXRlc3BhY2UgZnJv bSBsaW5lcywgd2hpY2gKCW11c3QgYmUgYWNjb3VudGVkIGZvciBhY3Jvc3MgZW5jcnlwdGlvbiB0 aGVuIGRlY3J5cHRpb24uCgoJKGFsbG91dC1jb21tYW5kLXByZWZpeCk6IE5vdyBkZWZhdWx0cyB0 byAiXEMtYzxzcGFjZT4iIHJhdGhlciB0aGFuCglqdXN0IHBsYWluICJcQy1jIiwgdG8gYXZvaWQg aW50cnVkaW5nIG9uIHVzZXIncyBrZXliaW5kaW5nIHNwYWNlLgoKCShhbGxvdXQtdG9nZ2xlLWN1 cnJlbnQtc3VidHJlZS1lbmNyeXB0aW9uKTogUGFzcyBhbG9uZyBmZXRjaC1wYXNzCglwYXJhbWV0 ZXIsIHNvIHVzZXIgcmVxdWVzdCB0byBwcm92aWRlIGEgbmV3IHBhc3N3b3JkIGlzIGRvbmUuCgoJ KGFsbG91dC1vdXRzaWRlLW5vcm1hbC1hdXRvLWZpbGwtZnVuY3Rpb24sIGFsbG91dC1hdXRvLWZp bGwpOgoJUmVmaW5lZCBtZWNoYW5pc20gZm9yIGF1dG8tZmlsbGluZyBiZWhhdmlvciB3aGlsZSBp biBhbGxvdXQgbW9kZS4KCgkoYWxsb3V0LW1vZGUpOiBFeHBsaWNpdGx5IHNwZWNpZnkgdGhlIG1v ZGUgbWFwIGluIHRoZSBkb2NzdHJpbmcuCglDbGFyaWZ5IHByb3Zpc2lvbiBmb3IgdmFyaW91cyB3 cml0ZS1maWxlIGhvb2sgdmFyIG5hbWVzLgoJQWRqdXN0ZWQgZm9yIGludmlzaWJsZS10ZXh0IG92 ZXJsYXlzIGluc3RlYWQgb2YJc2VsZWN0aXZlLWRpc3BsYXkuCgoJKGFsbG91dC1kZXB0aCk6IFJl YWxseSByZXR1cm4gMCBpZiBub3Qgd2l0aGluIGFueSB0b3BpYy4gIFRoaXMKCXJlY3RpZmllcyBg YWxsb3V0LWJlZ2lubmluZy1vZi1sZXZlbCcgYW5kIHNlcXVlbmNlIG51bWJlcmluZwoJZXJyb3Jz IHRoYXQgb2NjdXIgd2hlbiBjdXR0aW5nIGFuZCBwYXN0aW5nIG51bWJlcmVkIHRvcGljcy4KCUNo YW5nZWQgZnJvbSBhIGluLWxpbmUgc3Vic3QgdG8gYSByZWd1bGFyIGZ1bmN0aW9uLCBhcyB3ZWxs LgoKCShhbGxvdXQtcHJlLW5leHQtcHJlZml4KTogUmVuYW1lZCBmcm9tIGFsbG91dC1wcmUtbmV4 dC1wcmVmYWNlLgoKCShhbGxvdXQtZW5kLW9mLXN1YnRyZWUsIGFsbG91dC1lbmQtb2Ytc3VidHJl ZSkKCShhbGxvdXQtZW5kLW9mLWVudHJ5LCBhbGxvdXQtZW5kLW9mLWN1cnJlbnQtaGVhZGluZykK CShhbGxvdXQtbmV4dC12aXNpYmxlLWhlYWRpbmcsIGFsbG91dC1vcGVuLXRvcGljLCBhbGxvdXQt c2hvdy1lbnRyeSkKCShhbGxvdXQtc2hvdy1jaGlsZHJlbiwgYWxsb3V0LXNob3ctdG8tb2Zmc2hv b3QpCgkoYWxsb3V0LWhpZGUtY3VycmVudC1lbnRyeSwgYWxsb3V0LXNob3ctY3VycmVudC1lbnRy eSk6IFJlY3RpZmllZAoJaGFuZGxpbmcgb2YgdHJhaWxpbmcgYmxhbmsgbGluZXMgYmV0d2VlbiBp dGVtcy4KCgkoYWxsb3V0LWxpbmUtYm91bmRhcnktcmVnZXhwLCBzZXQtYWxsb3V0LXJlZ2V4cCwg YWxsb3V0LWRlcHRoKQoJKGFsbG91dC1jdXJyZW50LWRlcHRoLCBhbGxvdXQtdW5wcm90ZWN0ZWQs IGFsbG91dC1oaWRkZW4tcCkKCShhbGxvdXQtb24tY3VycmVudC1oZWFkaW5nLXAsIGFsbG91dC1s aXN0aWZ5LWV4cG9zZWQpCgkoYWxsb3V0LWNoYXJ0LXN1YnRyZWUsIGFsbG91dC1nb3RvLXByZWZp eCkKCShhbGxvdXQtYmFjay10by1jdXJyZW50LWhlYWRpbmcsIGFsbG91dC1nZXQtYm9keS10ZXh0 KQoJKGFsbG91dC1zbnVnLWJhY2ssIGFsbG91dC1mbGFnLWN1cnJlbnQtc3VidHJlZSwgYWxsb3V0 LXNob3ctYWxsKQoJKGFsbG91dC1oaWRlLXJlZ2lvbi1ib2R5LCBhbGxvdXQtdG9nZ2xlLXN1YnRy ZWUtZW5jcnlwdGlvbikKCShhbGxvdXQtZW5jcnlwdC1zdHJpbmcsIGFsbG91dC1lbmNyeXB0ZWQt a2V5LWluZm8pCgkoYWxsb3V0LW5leHQtdG9waWMtcGVuZGluZy1lbmNyeXB0aW9uLCBhbGxvdXQt ZW5jcnlwdC1kZWNyeXB0ZWQpCgkoYWxsb3V0LWZpbGUtdmFycy1zZWN0aW9uLWRhdGEpOiBBZGp1 c3RlZCBmb3IgdXNlIHdpdGgKCWludmlzaWJsZS10ZXh0IG92ZXJsYXlzIGluc3RlYWQgb2Ygc2Vs ZWN0aXZlLWRpc3BsYXkuCgoJKGFsbG91dC1raWxsLWxpbmUsIGFsbG91dC1raWxsLXRvcGljLCBh bGxvdXQteWFuay1wcm9jZXNzaW5nKToKCVJld29ya2VkIGZvciB1c2Ugd2l0aCBpbnZpc2libGUg dGV4dCBvdmVybGF5cy4KCgkoYWxsb3V0LWN1cnJlbnQtdG9waWMtY29sbGFwc2VkLXApOiBOZXcg ZnVuY3Rpb24uCgoJKGFsbG91dC1oaWRlLWN1cnJlbnQtc3VidHJlZSk6IFVzZSBhbGxvdXQtY3Vy cmVudC10b3BpYy1jb2xsYXBzZWQtcAoJdG8ga25vdyB3aGVuIHRvIGNsb3NlIHRoZSBjb250YWlu aW5nIHRvcGljLgoKCShhbGxvdXQtcHJlLWNvbW1hbmQtYnVzaW5lc3MsIGFsbG91dC1wb3N0LWNv bW1hbmQtYnVzaW5lc3MpOgoJU2ltcGxpZnkgdW5kby1iYXRjaGluZyBhbmQgZHluYW1pYyBpc2Vh cmNoIGV4cG9zdXJlLgoKCShhbGxvdXQtc2V0LW92ZXJsYXktY2F0ZWdvcnkpOiBOZXcgZm9yIGlu dmlzaWJsZS10ZXh0IG92ZXJsYXlzLgoJU2V0cyBwcm9wZXJ0aWVzIG9mIGFsbG91dC1vdmVybGF5 LWNhdGVnb3J5LCB1c2VkIGJ5CglhbGxvdXQtZmxhZy1yZWdpb24gdG8gc2V0IGludmlzaWJsZS10 ZXh0IG92ZXJsYXkgcHJvcGVydGllcy4KCShhbGxvdXQtZ2V0LWludmlzaWJpbGl0eS1vdmVybGF5 KTogR2V0IHRoZSBmaXJzdCBxdWFsaWZ5aW5nCglpbnZpc2liaWxpdHkgb3ZlcmxheSwgc28gd2Ug Y2FuIGZpbmQgdGhlIGV4dGVudCBvZiBpdC4KCShhbGxvdXQtYmFjay10by12aXNpYmxlLXRleHQp OiBHZXQgdG8ganVzdCBiZWZvcmUgdGhlIGJlZ2lubmluaW5nCglvZiB0aGUgY3VycmVudCBpbnZp c2liaWxpdHkgb3ZlcmxheSwgaWYgYW55LgoKCShhbGxvdXQtb3ZlcmxheS1pbnNlcnQtaW4tZnJv bnQtaGFuZGxlcikKCShhbGxvdXQtb3ZlcmxheS1pbnRlcmlvci1tb2RpZmljYXRpb24taGFuZGxl cikKCShhbGxvdXQtYmVmb3JlLWNoYW5nZS1oYW5kbGVyLCBhbGxvdXQtaXNlYXJjaC1lbmQtaGFu ZGxlcik6IE5ldwoJZnVuY3Rpb25zIHRvIGhhbmRsZSBleHRyYW9yZGluYXJ5IGFjdGlvbnMgYWZm ZWN0aW5nIGNvbmNlYWxlZAoJdGV4dC4KCgkoYWxsb3V0LWZsYWctcmVnaW9uKTogVXNlIG92ZXJs YXlzIGluc3RlYWQgb2Ygc2VsZWN0aXZlLWRpc3BsYXkKCWZvciBpbnZpc2libGUgdGV4dCAtIGJ5 IGluaGVyaXRlbmNlIGZyb20gdGhlIHByb3BlcnRpZXMgb2YKCWFsbG91dC1vdmVybGF5LWNhdGVn b3J5IGluIG1haW5saW5lIEVtYWNzLCBhbmQgYXBwbGllZAoJcHJvcGVydHktYnktcHJvcGVydHkg aW4gWEVtYWNzLCBzb21lIHJlY2VudCB2ZXJzaW9ucyBvZiB3aGljaAoJZG9uJ3QgaW5oZXJpdCB0 aGUgcHJvcGVydGllcyBmcm9tIHRoZSBjYXRlZ29yeS4gIFByb3Zpc2lvbnMgdG8KCXJlc3BvbmQg dG8gY29uY2VhbGVkLXRleHQgZWRpdHMgc2ltcGxpZmllZCBkcmFzdGljYWxseS4KCgkoYWxsb3V0 LWlzZWFyY2gtcmVjdGlmaWNhdGlvbiwgYWxsb3V0LWlzZWFyY2gtd2FzLWZvbnQtbG9jaykKCShh bGxvdXQtaXNlYXJjaC1leHBvc2UsIGFsbG91dC1lbndyYXAtaXNlYXJjaCkKCShhbGxvdXQtaXNl YXJjaC1hYm9ydCwgYWxsb3V0LXByZS13YXMtaXNlYXJjaGluZykKCShhbGxvdXQtaXNlYXJjaC1w cmlvci1wb3MsIGFsbG91dC1pc2VhcmNoLWRpZC1xdWl0KQoJKGFsbG91dC1pc2VhcmNoLWR5bmFt aWMtZXhwb3NlKQoJKGFsbG91dC1oaWRlLWN1cnJlbnQtZW50cnktY29tcGxldGVseSk6IEZ1bmN0 aW9ucyBkZWxldGVkLgoKCShhbGxvdXQtdW5kby1hZ2dyZWdhdGlvbik6IEV4cGxpY2l0IHVuZG8g YWdncmVnYXRpb24gbm8gbG9uZ2VyCgluZWNlc3NhcnkgZHVlIHRvIHRyYW5zaXRpb24gYXdheSBm cm9tIHNlbGVjdGl2ZS1kaXNwbGF5LgoKCShzZXQtYWxsb3V0LXJlZ2V4cCwgYWxsb3V0LXVwLWN1 cnJlbnQtbGV2ZWwpCgkoYWxsb3V0LW5leHQtdmlzaWJsZS1oZWFkaW5nLCBhbGxvdXQtZm9yd2Fy ZC1jdXJyZW50LWxldmVsKQoJKGFsbG91dC1vcGVuLXRvcGljLCBhbGxvdXQtcmVpbmRlbnQtYm9k eSwgYWxsb3V0LXJlYnVsbGV0LXRvcGljKQoJKGFsbG91dC1raWxsLWxpbmUsIGFsbG91dC15YW5r LXByb2Nlc3NpbmcsIGFsbG91dC1zaG93LWNoaWxkcmVuKQoJKGFsbG91dC1leHBvc2UtdG9waWMs IGFsbG91dC1vbGQtZXhwb3NlLXRvcGljKQoJKGFsbG91dC1saXN0aWZ5LWV4cG9zZWQsIGFsbG91 dC1pbnNlcnQtbGF0ZXgtaGVhZGVyKQoJKGFsbG91dC10b2dnbGUtc3VidHJlZS1lbmNyeXB0aW9u LCBhbGxvdXQtZW5jcnlwdC1zdHJpbmcpCgkocmVtb3ZlLWZyb20taW52aXNpYmlsaXR5LXNwZWMs IGFsbG91dC1oaWRlLWN1cnJlbnQtc3VidHJlZSk6CglEaXRjaGVkIHVudXNlZCB2YXJpYWJsZXMu CgoyMDA1LTEyLTAyICBLZW4gTWFuaGVpbWVyICA8a2VuLm1hbmhlaW1lckBnbWFpbC5jb20+CgoJ KiBhbGxvdXQuZWwgKGV2YWwtd2hlbi1jb21waWxlKTogUmVtb3ZlIHVubmVjZXNzYXJ5IGxvYWQg b2YgY2wuCglBZGQgZnNldCBvZiBhbGxvdXQtcmVhbC1pc2VhcmNoLWFib3J0IGR1cmluZyBjb21w aWxlIHRvIGZpeAoJYnl0ZS1jb21waWxhdGlvbiB3YXJuaW5ncy4KCShhbGxvdXQtbW9kZS1wKTog TW92ZSBkZWZpbml0aW9uIG9mIHRoaXMgbWFjcm8gYWJvdmUgYWxsIHVzZXMsIG9yCglieXRlIGNv bXBpbGF0aW9uIGluIGJhcnJlbiBlbWFjcyAoZWcsIGR1cmluZyBlbWFjcyBidWlsZCkgd2lsbAoJ bGFjayB0aGUgZGVmaW5pdGlvbi4KCShhbGxvdXQtbW9kZSk6IE1vdmUgdGhpcyB2YXJpYWJsZSBh Ym92ZSBhbnkgdXNlcywgb3IgYnl0ZQoJY29tcGlsYXRpb24gd2lsbCBmYWlsLgoJKGFsbG91dC1y ZXNvbHZlLXhyZWYpOiBSZW1vdmUgdXNlIG9mIHBlcnNvbmFsIGZpbGUtcmVmZXJlbmNlIGZ1bmN0 aW9uLgoJKGFsbG91dC10b2dnbGUtY3VycmVudC1zdWJ0cmVlLWVuY3J5cHRpb24pOiBEbyB0aGUg Y3VycmVudCAoaWUsCgl2aXNpYmxlIGNvbnRhaW5pbmcpIHRvcGljLCByYXRoZXIgdGhhbiBuZWFy ZXN0IGFyb3VuZCBwb2ludC4gIERvYyBmaXguCgkoYWxsb3V0LXRvZ2dsZS1zdWJ0cmVlLWVuY3J5 cHRpb24pOiBOZXcgZnVuY3Rpb24sIHdvcmtob3JzZSB0aGF0Cgl3b3JrcyBvbiBuZWFyZXN0IHRv cGljIGNvbnRhaW5pbmcgcG9pbnQuCgkoYWxsb3V0LWVuY3J5cHQtc3RyaW5nKTogU2lnbmFsIHJl cXVpcmVtZW50IGZvciBuZXdlciB2ZXJzaW9uIG9mIHBnZy4KCShhbGxvdXQtcmVzdW1wdGlvbnMp OiBEb2MgZml4LgoKMjAwNS0xMC0yMyAgS2VuIE1hbmhlaW1lciAgPGtlbi5tYW5oZWltZXJAZ21h aWwuY29tPgoKCSogYWxsb3V0LmVsOiBSZW1vdmUgYXV0b2xvYWRzIGZvciBtYWlsY3J5cHQgYW5k IGNyeXB0KysuCglSZXF1aXJlIHBnZywgcGdnLWdwZyBkdXJpbmcgY29tcGlsYXRpb24uCgkoYWxs b3V0LXZlcnNpb24pOiBJbmNyZW1lbnQgdmVyc2lvbiBudW1iZXIgdG8gMi4xLCBhbmQgdXNlIGEg bGl0ZXJhbAoJcmF0aGVyIHRoYW4gUkNTIElkLgoJKGFsbG91dC1kZWZhdWx0LWVuY3J5cHRpb24t c2NoZW1lKTogUmVtb3ZlLgoJKGFsbG91dC1wYXNzcGhyYXNlLXZlcmlmaWVyLWhhbmRsaW5nKQoJ KGFsbG91dC1wYXNzcGhyYXNlLXZlcmlmaWVyLXN0cmluZykKCShhbGxvdXQtZmlsZS1wYXNzcGhy YXNlLXZlcmlmaWVyLXN0cmluZykKCShhbGxvdXQtcGFzc3BocmFzZS1oaW50LXN0cmluZyk6IFJl bmFtZSAta2V5LSB0byAtcGFzc3BocmFzZS0uCgkoYWxsb3V0LXBhc3NwaHJhc2UtaGludC1oYW5k bGluZyk6IFJlbmFtZSBhbmQgc2ltcGxpZnkuCgkoYWxsb3V0LWluaXQpOiBVc2UgYGZpbmQtZmls ZS1ob29rJyBpZiBhdmFpbGFibGUsIG90aGVyd2lzZQoJYGZpbmQtZmlsZS1ob29rcycuCgkoYWxs b3V0LW1vZGUpOiBVc2UgYHdyaXRlLWZpbGUtZnVuY3Rpb25zJyBpZiBhdmFpbGFibGUsIG90aGVy d2lzZQoJYGxvY2FsLXdyaXRlLWZpbGUtaG9va3MnIGFuZCwgaW5zdGVhZCBvZiBtYWtpbmcgYXV0 by1zYXZlLWhvb2sKCWJ1ZmZlciBsb2NhbCwgbWFrZSB0aGUgd3JpdGUtZmlsZS1ob29rIGFjdGl2 aXR5IGNvbnRpbmdlbnQgdG8KCWFsbG91dC1tb2RlLgoJKGFsbG91dC1tb2RlKTogVXNlIGtleS1i aW5kaW5nIHN1YnN0aXR1dGlvbiBpbiB0aGUgZG9jc3RyaW5nLgoJKGFsbG91dC1raWxsLWxpbmUp OiBTcGVsbC1vdXQga2lsbCByaW5nIGRhdGEgc3RydWN0dXJlIG11dGF0aW9uCglpbnN0ZWFkIG9m IHVzaW5nIGJ5dGUtY29tcGlsZXItY29tcGxhaW50LXByb3Zva2luZyBgcG9wJy4KCShhbGxvdXQt aW5zZXJ0LWxpc3RpZmllZCk6IFVzZSBgaW5zZXJ0JyByYXRoZXIgdGhhbiBgaW5zZXJ0LXN0cmlu ZycKCShhbGxvdXQtdG9nZ2xlLWN1cnJlbnQtc3VidHJlZS1lbmNyeXB0aW9uKTogVXBkYXRlIGRv Y3N0cmluZywgYWRqdXN0Cgl0byBuZXcgZ3BwLWJhc2VkIGVuY3J5cHRpb24sIHVzZSBuZXcgYGFs bG91dC1lbmNyeXB0ZWQtdG9waWMtcCcuCgkoYWxsb3V0LWVuY3J5cHQtc3RyaW5nKTogVG90YWxs eSByZXZhbXBlZCB2aXMgbmV3IHVuZGVybHlpbmcKCWVuY3J5cHRpb24gZmFjaWxpdGllcy4KCShh bGxvdXQtbWMtYWN0aXZhdGUtcGFzc3dkKTogUmVtb3ZlLgoJKGFsbG91dC1vYnRhaW4tcGFzc3Bo cmFzZSk6IE5ldywgbW9yZSBvciBsZXNzIHJlcGxhY2VzCglhbGxvdXQtbWMtYWN0aXZhdGUtcGFz c3dkLgoJKGFsbG91dC1lbmNyeXB0ZWQta2V5LWluZm8pOiBNb3JlIG9yIGxlc3MgcmVwbGFjZXMK CWFsbG91dC1lbmNyeXB0ZWQtdGV4dC10eXBlLgoJKG91dGxpbmVpZnktc3RpY2t5LCBvdXRsaW5p Znktc3RpY2t5KTogQWRkIGF1dG9sb2FkIGNvb2tpZS4KCShteS1tYXJrLW1hcmtlcik6IFVzZSBg KGZlYXR1cmVwICd4ZW1hY3MpJy4KCjIwMDUtMTAtMjAgIEtlbiBNYW5oZWltZXIgIDxrZW4ubWFu aGVpbWVyQGdtYWlsLmNvbT4KCgkqIGFsbG91dC5lbDogQWRkIGF1dG9sb2FkcyBvZiBjcnlwdCsr IGFuZCBtYWlsY3J5cHQgcm91dGluZXMsIGFsbAoJZm9yIGVuY3J5cHRpb24gZnVuY3Rpb25hbGl0 eS4KCU1vdmUgYWxsb3V0IGN1c3RvbWl6YXRpb24gc3ViZ3JvdXAgZnJvbSBgZWRpdGluZycgdG8g YG91dGxpbmVzJyBncm91cC4KCUZpeCBjb21tZW50YXJ5IGtleXdvcmRzIHRvIGxlZ2l0aW1hdGUg b25lcy4KCVVwZGF0ZSBhdXRob3IgaW5mbyAodXNpbmcgbXkgY3VycmVudCBlbWFpbCBhZGRyZXNz LCBvYnNjdXJpZmllZCkuCgkoYWxsb3V0LWVuY3J5cHQtc3RyaW5nLCBhbGxvdXQtZW5jcnlwdGlv bi1wcm9kdWNlLXdvcmstYnVmZmVyKQoJKGFsbG91dC1lbmNyeXB0ZWQtdG9waWMtcCwgYWxsb3V0 LWVuY3J5cHRlZC10ZXh0LXR5cGUpCgkoYWxsb3V0LW1jLWFjdGl2YXRlLXBhc3N3ZCwgYWxsb3V0 LWNyZWF0ZS1lbmNyeXB0aW9uLWtleS12ZXJpZmllcikKCShhbGxvdXQtc2l0dWF0ZS1lbmNyeXB0 aW9uLWtleS12ZXJpZmllcikKCShhbGxvdXQtZ2V0LWVuY3J5cHRpb24ta2V5LXZlcmlmaWVyLCBh bGxvdXQtdmVyaWZ5LWtleSkKCShhbGxvdXQtbmV4dC10b3BpYy1wZW5kaW5nLWVuY3J5cHRpb24p CgkoYWxsb3V0LWVuY3J5cHQtZGVjcnlwdGVkLCBhbGxvdXQtZW5jcnlwdGVkLXR5cGUtcHJlZml4 KTogTmV3IGZ1bmNzLgoJKG91dGxpbmUtdG9waWMtZW5jcnlwdGlvbi1idWxsZXQsIG91dGxpbmUt ZGVmYXVsdC1lbmNyeXB0aW9uLXNjaGVtZSkKCShvdXRsaW5lLWtleS12ZXJpZmllci1oYW5kbGlu Zywgb3V0bGluZS1rZXktaGludC1oYW5kbGluZykKCShvdXRsaW5lLWVuY3J5cHQtdW5lbmNyeXB0 ZWQtb24tc2F2ZXMpOiBOZXcgZGVmY3VzdG9tcy4KCShhbGxvdXQtZmlsZS1rZXktdmVyaWZpZXIt c3RyaW5nLCBhbGxvdXQtZW5jcnlwdGlvbi1zY2hlbWUpCgkoYWxsb3V0LWtleS12ZXJpZmllci1z dHJpbmcsIGFsbG91dC1rZXktaGludC1zdHJpbmcpCgkoYWxsb3V0LWFmdGVyLXNhdmUtZGVjcnlw dCk6IE5ldyB2YXJpYWJsZXMuCgkoYWxsb3V0LXdyaXRlLWZpbGUtaG9vay1oYW5kbGVyLCBhbGxv dXQtYXV0by1zYXZlLWhvb2staGFuZGxlcikKCShhbGxvdXQtYWZ0ZXItc2F2ZXMtaGFuZGxlcik6 IE5ldyBob29rIGZ1bmN0aW9ucy4KCShhbGxvdXQtcG9zdC1jb21tYW5kLWJ1c2luZXNzKTogRG8g YWxsb3V0LWFmdGVyLXNhdmUtZGVjcnlwdC4KCShhbGxvdXQtZW5hYmxlLWZpbGUtdmFyaWFibGUt YWRqdXN0bWVudCk6IEN1c3RvbSB2YXIgdG8gZW5hYmxlCgltZWNoYW5pc20gZm9yIGFkZGluZyBh bmQgYWRqdXN0aW5nIHNldHRpbmdzIG9mIEVtYWNzIGZpbGUgdmFyaWFibGVzLgoJKGFsbG91dC1h ZGp1c3QtZmlsZS12YXJpYWJsZSwgYWxsb3V0LWZpbGUtdmFycy1zZWN0aW9uLWRhdGEpOgoJTmV3 IGZ1bmN0aW9ucywgaW1wbGVtZW50IHRoZSBtZWNoYW5pc20uCgkob3V0bGluZWlmeS1zdGlja3kp OiBVc2UgdGhlIGZpbGUgdmFycyBtZWNoYW5pc20uCgkoYWxsb3V0LWluaGliaXQtcHJvdGVjdGlv biwgYWxsb3V0LWR1cmluZy13cml0ZS1jdWUpCgkoYWxsb3V0LW92ZXJyaWRlLXByb3RlY3QsIGFs bG91dC1iZWZvcmUtY2hhbmdlLXByb3RlY3QpOiBSZW1vdmUuCgkoYWxsb3V0LWZsYWctcmVnaW9u LCBhbGxvdXQtb3Blbi10b3BpYyk6IEFkanVzdAlyZWFkLW9ubHkgdGV4dC4KCShhbGxvdXQtb3Bl bi1saW5lLW5vdC1yZWFkLW9ubHkpOiBBZGQgdG8gZmFjaWxpdGF0ZSByZWFkLW9ubHkKCXRleHQg YmFzZWQgcHJvdGVjdGlvbi4KCShhbGxvdXQta2lsbC1saW5lKTogUmV2aXNlIHRvIGFkanVzdCBy ZWFkLW9ubHkgdGV4dCwgY2x1ZSB0aGUKCXVzZXIgYWJvdXQgdGhlIGluaGliaXRpb24uCgkoYWxs b3V0LXVucHJvdGVjdGVkKTogVXNlIHVud2luZC1wcm90ZWN0LgoJKGFsbG91dC1zaGlmdC1pbiwg YWxsb3V0LXNoaWZ0LW91dCk6IERpc2FsbG93IG1hbnVhbGx5IHNoaWZ0aW5nIGEKCXRvcGljIGRl ZXBlciB0aGFuIHRoZSBvZmZzcHJpbmcgZGVwdGggb2YgdGhlIHByZXZpb3VzIHRvcGljIC0KCWF2 b2lkaW5nIGNvbmZ1c2luZyAiY29udGFpbm1lbnQgZGlzY29udGludWl0aWVzIi4KCShhbGxvdXQt cmVpbmRlbnQtYm9kaWVzKTogRml4IHJldGVudGlvbiBvZiBib2R5IHJlbGF0aXZlIGhhbmdpbmcK CWluZGVudCBkdXJpbmcgcHJvbW90aW9uIG9mIGNvbGxhcHNlZCBib2RpZXMuCgkoYWxsb3V0LW9w ZW4tdG9waWMpOiBNYWtlIGl0IGVhc3kgdG8gb3BlbiBuZXcgdG9waWMgd2l0aCBzYW1lCglidWxs ZXQgYXMgY3VycmVudCB0b3BpYyAtIHRvcGljIGNyZWF0aW9uIGZ1bmN0aW9ucyBwcm92aWRlZCB3 aXRoCglhbnkgdW5pdmVyc2FsIGFyZ3VtZW50IHByb3Zva2VzIG5vdyBwcm9tcHQgZm9yIGJ1bGxl dCwgZGVmYXVsdGluZwoJdG8gdGhlIGJ1bGxldCBvZiB0aGUgcHJldmlvdXMgdG9waWMuCgkoYWxs b3V0LXBsYWluLWJ1bGxldHMtc3RyaW5nLCBhbGxvdXQtZGlzdGluY3RpdmUtYnVsbGV0cy1zdHJp bmcpOgoJUGxhaW4gYnVsbGV0IGFsdGVybmF0ZXMgYC4nIHBlcmlvZCBhbmQgYCwnIGNvbW1hIG9u bHkuICBBbGwgb3RoZXIKCWJ1bGxldHMgYXJlIHJlbGVnYXRlZCB0byBzcGVjaWFsIHN0YXR1cyAo YnV0IGN1c3RvbWl6YWJsZSkuCgkoYWxsb3V0LWVuZC1vZi1lbnRyeSk6IFJlbmFtZSBmcm9tIGFs bG91dC1lbmQtb2YtY3VycmVudC1lbnRyeQoJc2luY2UgaXQgYWN0dWFsbHkgb3BlcmF0ZXMgdy5y LnQuIG1vc3QgaW1tZWRpYXRlbHkgY29udGFpbmluZwoJZW50cnksIHZpc2libGUgb3Igbm90LgoJ KGFsbG91dC1oaWRlLWN1cnJlbnQtZW50cnksIGFsbG91dC1zaG93LWN1cnJlbnQtZW50cnkpOiBV c2UgdGhlCglyZXZpc2VkIHZlcnNpb24uCgkoYWxsb3V0LW9sZC1leHBvc2UtdG9waWMpOiBTb2xp ZGlmeSBkZXByZWNhdGlvbi4KCShhbGxvdXQtZW5kLW9mLXN1YnRyZWUpOiBBZGQgc28gd2UgY2Fu IHNwYW4gY29uY2VhbGVkIGFzIHdlbGwKCWFzIHZpc2libGUgdG9waWNzLgoJKGFsbG91dC1lbmQt b2YtY3VycmVudC1zdWJ0cmVlKTogVXNlIGBhbGxvdXQtZW5kLW9mLXN1YnRyZWUnLgoJKGFsbG91 dC1lbmQtb2YtY3VycmVudC1oZWFkaW5nKTogVHdlYWsgdG8ganVzdCByZXNwZWN0IHRoZSBmaXJz dCBsaW5lLgoJKGFsbG91dC1nZXQtYm9keS10ZXh0KTogQWRkLgoJKGFsbG91dC1hc2NlbmQtdG8t ZGVwdGgsIGFsbG91dC1hc2NlbmQpOiBQb3NpdGlvbiBhdCBlbmQgb2YgcHJlZml4Cgl3aGVuIGlu dm9rZWQgaW50ZXJhY3RpdmVseS4KCShhbGxvdXQtdXAtY3VycmVudC1sZXZlbCk6IFVzZSBgaW50 ZXJhY3RpdmUtcCcuCgkoYWxsb3V0LW1vZGUsIGFsbG91dC1pbml0KTogTWlzY2VsbGFuZW91cyBk b2NzdHJpbmcgYW5kCglvcGVyYXRpb25hbCByZWZpbmVtZW50cywgYXMgd2VsbCBhcyBob29rdXBz IG9mIG5ldyBlbmNyeXB0aW9uIHN0dWZmLgoJKGFsbG91dC1iZWdpbm5pbmctb2YtY3VycmVudC1l bnRyeSk6IE5vdyB3b3JrcyBhcyBhZHZlcnRpc2VkLgoJKGFsbG91dC1lbmQtb2YtY3VycmVudC1l bnRyeSk6IFJlbW92ZSBvZiBzdXBlcmZsdW91cyBhbGxvdXQtc2hvdy1lbnRyeS4KCShhbGxvdXQt aXNlYXJjaC1yZWN0aWZpY2F0aW9uKTogUmVmaW5lIGNvbmRpdGlvbiBmb3IgaXNlYXJjaGluZy4K CShhbGxvdXQtaXNlYXJjaC1hYm9ydCwgYWxsb3V0LWVud3JhcC1pc2VhcmNoKQoJKGFsbG91dC1m bGFnLXJlZ2lvbiwgbXktcmVnaW9uLWFjdGl2ZS1wKTogUmVsb2NhdGUgc29tZSBtYWNyb3MuCgko YWxsb3V0LXRpdGxlKTogRmFsbGJhY2sgdGl0bGUgaXMgKGJ1ZmZlci1uYW1lKSwgbm90Cglub24t ZXhpc3RpbmcgKGN1cnJlbnQtYnVmZmVyLW5hbWUpLgoJKHN1YnN0LWNoYXItaW4tc3RyaW5nKTog RGVmaW5lIGlmIGFic2VudCAoZm9yIHNvbWUgWEVtYWNzIHZlcnNpb25zKS4K ------=_Part_15338_13100503.1152373733961 Content-Type: text/plain; name=allout-NEWS.txt; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_epe5bt9h Content-Disposition: attachment; filename="allout-NEWS.txt" KiogQ2hhbmdlcyBpbiBBbGxvdXQKCioqKiBUb3BpYyBjcnlwdG9ncmFwaHkgYWRkZWQsIGVuYWJs aW5nIGVhc3kgZ3BnIHRvcGljIGVuY3J5cHRpb24gYW5kCmRlY3J5cHRpb24uICBQZXItdG9waWMg YmFzaXMgZW5hYmxlcyBpbnRlcnNwZXJzaW5nIGVuY3J5cHRlZC10ZXh0IGFuZApjbGVhci10ZXh0 IHdpdGhpbiBhIHNpbmdsZSBmaWxlIHRvIHlvdXIgaGVhcnQncyBjb250ZW50LCB1c2luZyBzeW1t ZXRyaWMKYW5kL29yIHB1YmxpYyBrZXkgbW9kZXMuICBUaW1lLWxpbWl0ZWQga2V5IGNhY2hpbmcs IHVzZXItcHJvdmlkZWQKc3ltbWV0cmljIGtleSBoaW50aW5nIGFuZCBjb25zaXN0ZW5jeSB2ZXJp ZmljYXRpb24sIGF1dG8tZW5jcnlwdGlvbiBvZgpwZW5kaW5nIHRvcGljcyBvbiBzYXZlLCBhbmQg bW9yZSwgbWFrZSBpdCBlYXN5IHRvIHVzZSBlbmNyeXB0aW9uIGluCnBvd2VyZnVsIHdheXMuCgoq KiogYGFsbG91dC12aWV3LWNoYW5nZS1ob29rJyBtYXJrZWQgYXMgYmVpbmcgZGVwcmVjYXRlZCAt IHVzZQpgYWxsb3V0LWV4cG9zdXJlLWNoYW5nZS1ob29rJyBpbnN0ZWFkLiAgQm90aCBhcmUgY3Vy cmVudGx5IGJlaW5nIHVzZWQsIGJ1dApgYWxsb3V0LXZpZXctY2hhbmdlLWhvb2snIHdpbGwgYmUg aWdub3JlZCBpbiBhIHN1YnNlcXVlbnQgYWxsb3V0IHZlcnNpb24uCgoqKiogRGVmYXVsdCBjb21t YW5kIHByZWZpeCBjaGFuZ2VkIHRvICJcQy1jICIgKGNvbnRyb2wtYyBzcGFjZSksIHRvIGF2b2lk CmludHJ1ZGluZyBvbiB1c2VyJ3Mga2V5YmluZGluZyBzcGFjZS4gIEN1c3RvbWl6ZSB0aGUKYGFs bG91dC1jb21tYW5kLXByZWZpeCcgdmFyaWFibGUgdG8geW91ciBwcmVmZXJlbmNlLgoKKioqIEFs bG91dCBub3cgdXNlcyB0ZXh0IG92ZXJsYXkncyBgaW52aXNpYmxlJyBwcm9wZXJ0eSAoYW5kIG90 aGVycykgZm9yCmNvbmNlYWxlZCB0ZXh0LCBpbnN0ZWFkIG9mIHNlbGVjdGl2ZS1kaXNwbGF5LiAg VGhpcyBzaW1wbGlmaWVzIHRoZSBjb2RlLCBpbgpwYXJ0aWN1bGFyIGF2b2lkaW5nIHRoZSBuZWVk IGZvciBrbHVkZ2VzIGZvciBpc2VhcmNoIGR5bmFtaWMtZGlzcGxheSwKZGlzY3JldGlvbmFyeSBo YW5kbGluZyBvZiBlZGl0cyBvZiBjb25jZWFsZWQgdGV4dCwgdW5kbyBjb25jZXJucywgZXRjLgoK KioqIE1hbnkgc3Vic3RhbnRpYWwgZml4ZXMgYW5kIHJlZmluZW1lbnRzLCBpbmNsdWRpbmc6Cgog ICAtIHJlcGFpcmVkIGluaGliaXRpb24gb2YgaW5hZHZlcnRlbnQgZWRpdHMgdG8gY29uY2VhbGVk IHRleHQKICAgLSByZXBhaXJlZCByZXRlbnRpb24gb2YgdG9waWMgYm9keSBoYW5naW5nIGluZGVu dCB1cG9uIHRvcGljIGRlcHRoIHNoaWZ0cwogICAtIHJlZnVzZSB0byBjcmVhdGUgImNvbnRhaW5t ZW50IGRpc2NvbnRpbnVpdGllcyIsIHdoZXJlIGEKICAgICB0b3BpYyBpcyBzaGlmdGVkIGRlZXBl ciB0aGFuIHRoZSBvZmZzcHJpbmctZGVwdGggb2YgaXRzJyBjb250YWluZXIKICAgLSBhdXRvLWZp bGwtbW9kZSBpcyBub3cgbGVmdCBpbmFjdGl2ZSB3aGVuIGFsbG91dC1tb2RlIHN0YXJ0cywgaWYg aXQKICAgICBhbHJlYWR5IHdhcyBpbmFjdGl2ZS4gIGFsc28sIGBhbGxvdXQtaW5oaWJpdC1hdXRv LWZpbGwnIGN1c3RvbQogICAgIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgbWFrZXMgaXQgZWFzeSB0 byBkaXNhYmxlIGF1dG8gZmlsbCBpbiBhbGxvdXQKICAgICBvdXRsaW5lcyBpbiBnZW5lcmFsIG9y IG9uIGEgcGVyLWJ1ZmZlciBiYXNpcy4KICAgLSBuZXcgaG9vayBgYWxsb3V0LW1vZGUtZGVhY3Rp dmF0ZS1ob29rJywgZm9yIGNvb3JkaW5hdGluZyB3aXRoCiAgICAgZGVhY3RpdmF0aW9uIG9mIGFs bG91dC1tb2RlLgogICAtIGJ1bGxldGluZyB2YXJpYXRpb24gaXMgc2ltcGxlciBhbmQgbW9yZSBh Y2NvbW1vZGF0aW5nLCBib3RoIGluIHRoZQogICAgIGRlZmF1bHQgYmVoYXZpb3IgYW5kIGluIGFi aWxpdHkgdG8gdmFyeSB3aGVuIGNyZWF0aW5nIG5ldyB0b3BpY3MKICAgLSBtb2RlIGRlYWN0aXZh dGlvbiBub3cgZG9lcyBjbGVhbnMgdXAgZWZmZWN0aXZlbHksIG1vcmUgcHJvcGVybHkKICAgICBy ZXN0b3JpbmcgYWZmZWN0ZWQgdmFyaWFibGVzIGFuZCBob29rcyB0byBmb3JtZXIgc3RhdGUsIHJl bW92aW5nCiAgICAgb3ZlcmxheXMsIGV0Yy4KICAgLSBpbmNsdWRlZCBhIGZldyB1bml0LXRlc3Rz IGZvciBpbnRlcmlvciBmdW5jdGlvbmFsaXR5LiAgZGV2ZWxvcGVycyBjYW4KICAgICBoYXZlIHRo ZW0gYXV0b21hdGljYWxseSBydW4gYWZ0ZXIgbW9kdWxlIHcvY3VzdG9taXphdGlvbiBvcHRpb24g d2l0aAogICAgIGN1c3RvbWl6YXRpb24gdmFyaWFibGUgYGFsbG91dC1ydW4tdW5pdC10ZXN0cy1h ZnRlci1sb2FkJy4KICAgLSBtYW55LCBtYW55IG1pbm9yIHR3ZWFrcyBhbmQgZml4ZXMuICBtYW55 IGludGVybmFsIGZpeGVzIGFuZAogICAgIHJlZmluZW1lbnRzIG9mIGRvY3N0cmluZ3MuCiAgIC0g dmVyc2lvbiBudW1iZXIgaW5jcmVtZW50ZWQgdG8gMi4yCg== ------=_Part_15338_13100503.1152373733961 Content-Type: text/plain; name=allout-patch.txt; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_epe5bzab Content-Disposition: attachment; filename="allout-patch.txt" LS0tIGFsbG91dC5lbAkxNiBNYXkgMjAwNiAwODo1ODozNiAtMDQwMAkxLjc2CisrKyBhbGxvdXQu ZWwJMDggSnVsIDIwMDYgMDA6NDE6MTYgLTA0MDAJCkBAIC04LDYgKzgsNyBAQAogOzsgQ3JlYXRl ZDogRGVjIDE5OTEgLSBmaXJzdCByZWxlYXNlIHRvIHVzZW5ldAogOzsgVmVyc2lvbjogMi4yLjEK IDs7IEtleXdvcmRzOiBvdXRsaW5lcyB3cCBsYW5ndWFnZXMKKzs7IFdlYnNpdGU6IGh0dHA6Ly9t eXJpYWRpY2l0eS5uZXQvU3VuZHJ5L0VtYWNzQWxsb3V0CiAKIDs7IFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIEdOVSBFbWFjcy4KIApAQCAtNTgsNyArNTksOSBAQAogOzsgYW5kIG1vcmUuCiA7OwogOzsg U2VlIHRoZSBgYWxsb3V0LW1vZGUnIGZ1bmN0aW9uJ3MgZG9jc3RyaW5nIGZvciBhbiBpbnRyb2R1 Y3Rpb24gdG8gdGhlCi07OyBtb2RlLiAgVGhlIGRldmVsb3BtZW50IHZlcnNpb24gYW5kIGhlbHBm dWwgbm90ZXMgYXJlIGF2YWlsYWJsZSBhdAorOzsgbW9kZS4KKzs7Cis7OyBUaGUgbGF0ZXN0IGRl dmVsb3BtZW50IHZlcnNpb24gYW5kIGhlbHBmdWwgbm90ZXMgYXJlIGF2YWlsYWJsZSBhdAogOzsg aHR0cDovL215cmlhZGljaXR5Lm5ldC9TdW5kcnkvRW1hY3NBbGxvdXQgLgogOzsKIDs7IFRoZSBv dXRsaW5lIG1lbnViYXIgYWRkaXRpb25zIHByb3ZpZGUgcXVpY2sgcmVmZXJlbmNlIHRvIG1hbnkg b2YKQEAgLTgwLDYgKzgzLDcgQEAKIAogOzs7XyogRGVwZW5kZW5jeSBhdXRvbG9hZHMKIChyZXF1 aXJlICdvdmVybGF5KQorKHJlcXVpcmUgJ2NsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIDsg Zm9yIGBhc3NlcnQnLCBpbiBjbC1tYWNzLmVsLgogKGV2YWwtd2hlbi1jb21waWxlIChwcm9nbiAo cmVxdWlyZSAncGdnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAocmVxdWlyZSAncGdnLWdw ZykKICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVpcmUgJ292ZXJsYXkpCkBAIC01NTYs NiArNTYwLDI1IEBACiAgIDpncm91cCAnYWxsb3V0LWVuY3J5cHRpb24pCiAobWFrZS12YXJpYWJs ZS1idWZmZXItbG9jYWwgJ2FsbG91dC1lbmNyeXB0LXVuZW5jcnlwdGVkLW9uLXNhdmVzKQogCis7 OztfICsgRGV2ZWxvcGVyCis7OztfICA9IGFsbG91dC1kZXZlbG9wZXIgZ3JvdXAKKyhkZWZncm91 cCBhbGxvdXQtZGV2ZWxvcGVyIG5pbAorICAiU2V0dGluZ3MgZm9yIHRvcGljIGVuY3J5cHRpb24g ZmVhdHVyZXMgb2YgYWxsb3V0IG91dGxpbmVyLiIKKyAgOmdyb3VwICdhbGxvdXQpCis7OztfICA9 IGFsbG91dC1ydW4tdW5pdC10ZXN0cy1hZnRlci1sb2FkCisoZGVmY3VzdG9tIGFsbG91dC1ydW4t dW5pdC10ZXN0cy1hZnRlci1sb2FkIG5pbAorICAiKldoZW4gbm9uLW5pbCwgdW5pdCB0ZXN0cyB3 aWxsIGJlIHJ1biBhZnRlciBhbGxvdXQgaXMgbG9hZGVkLgorCitHZW5lcmFsbHksIGFsbG91dCBj b2RlIGRldmVsb3BlcnMgYXJlIHRoZSBvbmx5IG9uZXMgd2hvJ2xsIHdhbnQgdG8gc2V0IHRoaXMu CisKK1woSWYgc2V0LCB0aGlzIG1ha2VzIGl0IGFuIGV2ZW4gYmV0dGVyIHByYWN0aWNlIHRvIGRv IGJ5dGUtY29tcGlsYXRpb25zCit3aXRoIGEgcmVwZWF0IGNvdW50LCBzbyB0aGUgZmlsZSBpcyBs b2FkZWQgaW1tZWRpYXRlIGFmdGVyIGJ5dGUKK2NvbXBpbGF0aW9uLikKKworU2VlIGBhbGxvdXQt cnVuLXVuaXQtdGVzdHMnIHRvIHNlZSB3aGF0J3MgY292ZXJlZC4iCisgIDp0eXBlICdib29sZWFu CisgIDpncm91cCAnYWxsb3V0LWRldmVsb3BlcikKKwogOzs7XyArIE1pc2NlbGxhbmVvdXMgY3Vz dG9taXphdGlvbgogCiA7OztfICA9IGFsbG91dC1jb21tYW5kLXByZWZpeApAQCAtNjE1LDYgKzYz OCwyMiBAQAogCSgiPXQiIGFsbG91dC1sYXRleGlmeS1leHBvc2VkKQogCSgiPXAiIGFsbG91dC1m bGF0dGVuLWV4cG9zZWQtdG8tYnVmZmVyKSkpCiAKKzs7O18gID0gYWxsb3V0LWluaGliaXQtYXV0 by1maWxsCisoZGVmY3VzdG9tIGFsbG91dC1pbmhpYml0LWF1dG8tZmlsbCBuaWwKKyAgIipJZiBu b24tbmlsLCBhdXRvLWZpbGwgd2lsbCBiZSBpbmhpYml0ZWQgaW4gdGhlIGFsbG91dCBidWZmZXJz LgorCitZb3UgY2FuIGN1c3RvbWl6ZSB0aGlzIHNldHRpbmcgdG8gc2V0IGl0IGZvciBhbGwgYWxs b3V0IGJ1ZmZlcnMsIG9yIHNldCBpdAoraW4gaW5kaXZpZHVhbCBidWZmZXJzIGlmIHlvdSB3YW50 IHRvIGluaGliaXQgYXV0by1maWxsIG9ubHkgaW4gcGFydGljdWxhcgorYnVmZmVycy4gIFwoWW91 IGNvdWxkIHVzZSBhIGZ1bmN0aW9uIG9uIGBhbGxvdXQtbW9kZS1ob29rJyB0byBpbmhpYml0Cith dXRvLWZpbGwgYWNjb3JkaW5nLCBlZywgdG8gdGhlIG1ham9yIG1vZGUuXCkKKworSWYgeW91IGRv bid0IHNldCB0aGlzIGFuZCBhdXRvLWZpbGwtbW9kZSBpcyBlbmFibGVkLCBhbGxvdXQgd2lsbCB1 c2UgdGhlCit2YWx1ZSB0aGF0IGBub3JtYWwtYXV0by1maWxsLWZ1bmN0aW9uJywgaWYgYW55LCB3 aGVuIGFsbG91dCBtb2RlIHN0YXJ0cywgb3IKK2Vsc2UgYWxsb3V0J3Mgc3BlY2lhbCBoYW5naW5n LWluZGVudCBtYWludGFpbmluZyBhdXRvLWZpbGwgZnVuY3Rpb24sCitgYWxsb3V0LWF1dG8tZmls bCcuIgorICA6dHlwZSAnYm9vbGVhbiA6Z3JvdXAgJ2FsbG91dCkKKyhtYWtlLXZhcmlhYmxlLWJ1 ZmZlci1sb2NhbCAnYWxsb3V0LWluaGliaXQtYXV0by1maWxsKQorCiA7OztfICA9IGFsbG91dC11 c2UtaGFuZ2luZy1pbmRlbnRzCiAoZGVmY3VzdG9tIGFsbG91dC11c2UtaGFuZ2luZy1pbmRlbnRz IHQKICAgIipJZiBub24tbmlsLCB0b3BpYyBib2R5IHRleHQgYXV0by1pbmRlbnQgZGVmYXVsdHMg dG8gaW5kZW50IG9mIHRoZSBoZWFkZXIuCkBAIC05OTMsNjkgKzEwMzIsNjggQEAKIAkJICAgICAg Ii0tLS0iCiAJCSAgICAgIFsiU2V0IEhlYWRlciBMZWFkIiBhbGxvdXQtcmVzZXQtaGVhZGVyLWxl YWQgdF0KIAkJICAgICAgWyJTZXQgTmV3IEV4cG9zdXJlIiBhbGxvdXQtZXhwb3NlLXRvcGljIHRd KSkpCi07OztfICA6IE1vZGUtU3BlY2lmaWMgVmFyaWFibGUgTWFpbnRlbmFuY2UgVXRpbGl0aWVz Cis7OztfICA6IEFsbG91dCBNb2RhbC1WYXJpYWJsZXMgVXRpbGl0aWVzCiA7OztfICAgPSBhbGxv dXQtbW9kZS1wcmlvci1zZXR0aW5ncwogKGRlZnZhciBhbGxvdXQtbW9kZS1wcmlvci1zZXR0aW5n cyBuaWwKLSAgIkludGVybmFsIGBhbGxvdXQtbW9kZScgdXNlOyBzZXR0aW5ncyB0byBiZSByZXN1 bWVkIG9uIG1vZGUgZGVhY3RpdmF0aW9uLiIpCi0obWFrZS12YXJpYWJsZS1idWZmZXItbG9jYWwg J2FsbG91dC1tb2RlLXByaW9yLXNldHRpbmdzKQotOzs7XyAgID4gYWxsb3V0LXJlc3VtcHRpb25z IChuYW1lICZvcHRpb25hbCB2YWx1ZSkKLShkZWZ1biBhbGxvdXQtcmVzdW1wdGlvbnMgKG5hbWUg Jm9wdGlvbmFsIHZhbHVlKQotCi0gICJSZWdpc3RlcnMgb3IgcmVzdW1lcyBzZXR0aW5ncyBvdmVy IGBhbGxvdXQtbW9kZScgYWN0aXZhdGlvbi9kZWFjdGl2YXRpb24uCisgICJJbnRlcm5hbCBgYWxs b3V0LW1vZGUnIHVzZTsgc2V0dGluZ3MgdG8gYmUgcmVzdW1lZCBvbiBtb2RlIGRlYWN0aXZhdGlv bi4KIAotRmlyc3QgYXJnIGlzIE5BTUUgb2YgdmFyaWFibGUgYWZmZWN0ZWQuICBPcHRpb25hbCBz ZWNvbmQgYXJnIGlzIGxpc3QKLWNvbnRhaW5pbmcgYWxsb3V0LW1vZGUtc3BlY2lmaWMgVkFMVUUg dG8gYmUgaW1wb3NlZCBvbiBuYW1lZAotdmFyaWFibGUsIGFuZCB0byBiZSByZWdpc3RlcmVkLiAg XChJdCdzIGEgbGlzdCBzbyB5b3UgY2FuIHNwZWNpZnkKLXJlZ2lzdHJhdGlvbnMgb2YgbnVsbCB2 YWx1ZXMuKSAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGUKLXJlZ2lzdGVyZWQgdmFsdWUg aXMgcmV0dXJuZWQgKGVuY2Fwc3VsYXRlZCBpbiB0aGUgbGlzdCwgc28gdGhlIGNhbGxlcgotY2Fu IGRpc3Rpbmd1aXNoIG5pbCB2cyBubyB2YWx1ZSksIGFuZCB0aGUgcmVnaXN0cmF0aW9uIGlzIHBv cHBlZAotZnJvbSB0aGUgbGlzdC4iCi0KLSAgKGxldCAoKG9uLWxpc3QgKGFzc3EgbmFtZSBhbGxv dXQtbW9kZS1wcmlvci1zZXR0aW5ncykpCi0gICAgICAgIHByaW9yLWNhcHN1bGUgICAgICAgICAg ICAgICAgICAgOyBCeSBgY2Fwc3VsZScgaSBtZWFuIGEgbGlzdAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDsgY29udGFpbmluZyBhIHZhbHVlLCBzbyB3ZSBjYW4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IGRpc3Rpbmd1aXNoIG5pbCBm cm9tIG5vIHZhbHVlLgotICAgICAgICApCi0KLSAgICAoaWYgdmFsdWUKLQotICAgICAgICA7OyBS ZWdpc3RlcmluZzoKLSAgICAgICAgKHByb2duCi0gICAgICAgICAgKGlmIG9uLWxpc3QKLSAgICAg ICAgICAgICAgbmlsIAk7IEFscmVhZHkgcHJlc2VydmVkIHByaW9yIHZhbHVlIC0gZG9uJ3QgbWVz cyB3aXRoIGl0LgotICAgICAgICAgICAgOzsgUmVnaXN0ZXIgdGhlIG9sZCB2YWx1ZSwgb3Igbmls IGlmIHByZXZpb3VzbHkgdW5ib3VuZDoKLSAgICAgICAgICAgIChzZXRxIGFsbG91dC1tb2RlLXBy aW9yLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgICAoY29ucyAobGlzdCBuYW1lCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGJvdW5kcCBuYW1lKSAobGlzdCAoc3ltYm9sLXZh bHVlIG5hbWUpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICBhbGxvdXQtbW9kZS1wcmlvci1z ZXR0aW5ncykpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgQW5k IGltcG9zZSB0aGUgbmV3IHZhbHVlLCBsb2NhbGx5OgotCSAgKHByb2duIChtYWtlLWxvY2FsLXZh cmlhYmxlIG5hbWUpCi0JCSAoc2V0IG5hbWUgKGNhciB2YWx1ZSkpKSkKLQotICAgICAgOzsgUmVs aW5xdWlzaGluZzoKLSAgICAgIChpZiAobm90IG9uLWxpc3QpCi0KLSAgICAgICAgICA7OyBPb3Bz LCBub3QgcmVnaXN0ZXJlZCAtIGxlYXZlIGl0IGJlOgotICAgICAgICAgIG5pbAotCi0gICAgICAg IDs7IFNvbWUgcmVnaXN0cmF0aW9uOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDsgcmVlc3RhYmxpc2ggaXQ6Ci0gICAgICAgIChzZXRxIHByaW9yLWNhcHN1bGUgKGNh ciAoY2RyIG9uLWxpc3QpKSkKLSAgICAgICAgKGlmIHByaW9yLWNhcHN1bGUKLSAgICAgICAgICAg IChzZXQgbmFtZSAoY2FyIHByaW9yLWNhcHN1bGUpKSA7IFNvbWUgcHJpb3IgdmFsdWUgLSByZWVz dGFibGlzaCBpdC4KLSAgICAgICAgICAobWFrdW5ib3VuZCBuYW1lKSkJCTsgUHJldmlvdXNseSB1 bmJvdW5kIC0gZGVtb2xpc2ggdmFyLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDsgUmVtb3ZlIHJlZ2lzdHJhdGlvbjoKLSAgICAgICAgKGxldCAocmVidWlsZCkKLSAg ICAgICAgICAod2hpbGUgYWxsb3V0LW1vZGUtcHJpb3Itc2V0dGluZ3MKLSAgICAgICAgICAgIChp ZiAobm90IChlcSAoY2FyIGFsbG91dC1tb2RlLXByaW9yLXNldHRpbmdzKQotICAgICAgICAgICAg ICAgICAgICAgICAgIG9uLWxpc3QpKQotICAgICAgICAgICAgICAgIChzZXRxIHJlYnVpbGQKLSAg ICAgICAgICAgICAgICAgICAgICAoY29ucyAoY2FyIGFsbG91dC1tb2RlLXByaW9yLXNldHRpbmdz KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYnVpbGQpKSkKLSAgICAgICAgICAgIChz ZXRxIGFsbG91dC1tb2RlLXByaW9yLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgICAoY2RyIGFs bG91dC1tb2RlLXByaW9yLXNldHRpbmdzKSkpCi0gICAgICAgICAgKHNldHEgYWxsb3V0LW1vZGUt cHJpb3Itc2V0dGluZ3MgcmVidWlsZCkpKSkpCi0gICkKK1NlZSBgYWxsb3V0LWFkZC1yZXN1bXB0 aW9ucycgYW5kIGBhbGxvdXQtZG8tcmVzdW1wdGlvbnMnLiIpCisobWFrZS12YXJpYWJsZS1idWZm ZXItbG9jYWwgJ2FsbG91dC1tb2RlLXByaW9yLXNldHRpbmdzKQorOzs7XyAgID4gYWxsb3V0LWFk ZC1yZXN1bXB0aW9ucyAoJnJlc3QgcGFpcnMpCisoZGVmdW4gYWxsb3V0LWFkZC1yZXN1bXB0aW9u cyAoJnJlc3QgcGFpcnMpCisgICJTZXQgbmFtZS92YWx1ZSBwYWlycy4KKworT2xkIHNldHRpbmdz IGFyZSBwcmVzZXJ2ZWQgZm9yIGxhdGVyIHJlc3VtcHRpb24gdXNpbmcgYGFsbG91dC1kby1yZXN1 bXB0aW9ucycuCisKK1RoZSBwYWlycyBhcmUgbGlzdHMgd2hvc2UgY2FyIGlzIHRoZSBuYW1lIG9m IHRoZSB2YXJpYWJsZSBhbmQgY2FyIG9mIHRoZQorY2RyIGlzIHRoZSBuZXcgdmFsdWU6ICAnKHNv bWUtdmFyIHNvbWUtdmFsdWUpJy4KKworVGhlIG5ldyB2YWx1ZSBpcyBzZXQgYXMgYSBidWZmZXIg bG9jYWwuCisKK0lmIHRoZSB2YXJpYWJsZSB3YXMgbm90IHByZXZpb3VzbHkgYnVmZmVyLWxvY2Fs LCB0aGVuIHRoYXQgaXMgbm90ZWQgYW5kIHRoZQorYGFsbG91dC1kby1yZXN1bXB0aW9ucycgd2ls bCBqdXN0IGBraWxsLWxvY2FsLXZhcmlhYmxlJyBvZiB0aGF0IGJpbmRpbmcuCisKK0lmIGl0IHBy ZXZpb3VzbHkgd2FzIGJ1ZmZlci1sb2NhbCwgdGhlIG9sZCB2YWx1ZSBpcyBub3RlZCBhbmQgcmVz dXJyZWN0ZWQKK2J5IGBhbGxvdXQtZG8tcmVzdW1wdGlvbnMnLiAgXChJZiB0aGUgbG9jYWwgdmFs dWUgd2FzIHByZXZpb3VzbHkgdm9pZCwgdGhlbgoraXQgaXMgbGVmdCBhcyBuaWwgb24gcmVzdW1w dGlvbi5cKQorCitUaGUgc2V0dGluZ3MgYXJlIHN0b3JlZCBvbiBgYWxsb3V0LW1vZGUtcHJpb3It c2V0dGluZ3MnLiIKKyAgKHdoaWxlIHBhaXJzCisgICAgKGxldCogKChwYWlyIChwb3AgcGFpcnMp KQorICAgICAgICAgICAobmFtZSAoY2FyIHBhaXIpKQorICAgICAgICAgICAodmFsdWUgKGNhZHIg cGFpcikpKQorICAgICAgKGlmIChub3QgKHN5bWJvbHAgbmFtZSkpCisgICAgICAgICAgKGVycm9y ICJQYWlyJ3MgbmFtZSwgJVMsIG11c3QgYmUgYSBzeW1ib2wsIG5vdCAlcyIKKyAgICAgICAgICAg ICAgICAgbmFtZSAodHlwZS1vZiBuYW1lKSkpCisgICAgICAod2hlbiAobm90IChhc3NvYyBuYW1l IGFsbG91dC1tb2RlLXByaW9yLXNldHRpbmdzKSkKKyAgICAgICAgOzsgTm90IGFscmVhZHkgYWRk ZWQgYXMgYSByZXN1bXB0aW9uLCBjcmVhdGUgdGhlIHByaW9yIHNldHRpbmcgZW50cnkuCisgICAg ICAgIChpZiAobG9jYWwtdmFyaWFibGUtcCBuYW1lKQorICAgICAgICAgICAgOzsgaXMgYWxyZWFk eSBsb2NhbCB2YXJpYWJsZSAtIHByZXNlcnZlIHRoZSBwcmlvciB2YWx1ZToKKyAgICAgICAgICAg IChwdXNoIChsaXN0IG5hbWUgKGNvbmRpdGlvbi1jYXNlIGVycgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHN5bWJvbC12YWx1ZSBuYW1lKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICh2b2lkLXZhcmlhYmxlIG5pbCkpKQorICAgICAgICAgICAgICAgICAgYWxsb3V0 LW1vZGUtcHJpb3Itc2V0dGluZ3MpCisgICAgICAgICAgOzsgd2Fzbid0IGxvY2FsIHZhcmlhYmxl LCBpbmRpY2F0ZSBzbyBmb3IgcmVzdW1wdGlvbiBieSBraWxsaW5nCisgICAgICAgICAgOzsgbG9j YWwgdmFsdWUsIGFuZCBtYWtlIGl0IGxvY2FsOgorICAgICAgICAgIChwdXNoIChsaXN0IG5hbWUp IGFsbG91dC1tb2RlLXByaW9yLXNldHRpbmdzKQorICAgICAgICAgIChtYWtlLWxvY2FsLXZhcmlh YmxlIG5hbWUpKSkKKyAgICAgIChzZXQgbmFtZSB2YWx1ZSkpKSkKKzs7O18gICA+IGFsbG91dC1k by1yZXN1bXB0aW9ucyAoKQorKGRlZnVuIGFsbG91dC1kby1yZXN1bXB0aW9ucyAoKQorICAiUmVz dW1lIGFsbCBuYW1lL3ZhbHVlIHNldHRpbmdzIHJlZ2lzdGVyZWQgYnkgYGFsbG91dC1hZGQtcmVz dW1wdGlvbnMnLgorCitUaGlzIGlzIHVzZWQgd2hlbiBjb25jbHVkaW5nIGFsbG91dC1tb2RlLCB0 byByZXN1bWUgc2VsZWN0ZWQgdmFyaWFibGVzIHRvCit0aGVpciBzZXR0aW5ncyBiZWZvcmUgYWxs b3V0LW1vZGUgd2FzIHN0YXJ0ZWQuIgorCisgICAgKHdoaWxlIGFsbG91dC1tb2RlLXByaW9yLXNl dHRpbmdzCisgICAgICAobGV0KiAoKHBhaXIgKHBvcCBhbGxvdXQtbW9kZS1wcmlvci1zZXR0aW5n cykpCisgICAgICAgICAgICAgKG5hbWUgKGNhciBwYWlyKSkKKyAgICAgICAgICAgICAodmFsdWUt Y2VsbCAoY2RyIHBhaXIpKSkKKyAgICAgICAgKGlmIChub3QgdmFsdWUtY2VsbCkKKyAgICAgICAg ICAgIDs7IFByaW9yIHZhbHVlIHdhcyBnbG9iYWw6CisgICAgICAgICAgICAoa2lsbC1sb2NhbC12 YXJpYWJsZSBuYW1lKQorICAgICAgICAgIDs7IFByaW9yIHZhbHVlIHdhcyBleHBsaWNpdDoKKyAg ICAgICAgICAoc2V0IG5hbWUgKGNhciB2YWx1ZS1jZWxsKSkpKSkpCiA7OztfICA6IE1vZGUtc3Bl Y2lmaWMgaW5jaWRlbnRhbHMKIDs7O18gICA+IGFsbG91dC11bnByb3RlY3RlZCAoZXhwcikKIChk ZWZtYWNybyBhbGxvdXQtdW5wcm90ZWN0ZWQgKGV4cHIpCkBAIC0xMDY1LDkgKzExMDMsMTIgQEAK IDs7O18gICA9IGFsbG91dC1tb2RlLWhvb2sKIChkZWZ2YXIgYWxsb3V0LW1vZGUtaG9vayBuaWwK ICAgIipIb29rIHRoYXQncyBydW4gd2hlbiBhbGxvdXQgbW9kZSBzdGFydHMuIikKLTs7O18gICA9 IGFsbG91dC1vdmVybGF5LWNhdGVnb3J5Ci0oZGVmdmFyIGFsbG91dC1vdmVybGF5LWNhdGVnb3J5 IG5pbAotICAiU3ltYm9sIGZvciB1c2UgaW4gYWxsb3V0IGludmlzaWJsZS10ZXh0IG92ZXJsYXlz IGFzIHRoZSBjYXRlZ29yeS4iKQorOzs7XyAgID0gYWxsb3V0LW1vZGUtZGVhY3RpdmF0ZS1ob29r CisoZGVmdmFyIGFsbG91dC1tb2RlLWRlYWN0aXZhdGUtaG9vayBuaWwKKyAgIipIb29rIHRoYXQn cyBydW4gd2hlbiBhbGxvdXQgbW9kZSBlbmRzLiIpCis7OztfICAgPSBhbGxvdXQtZXhwb3N1cmUt Y2F0ZWdvcnkKKyhkZWZ2YXIgYWxsb3V0LWV4cG9zdXJlLWNhdGVnb3J5IG5pbAorICAiU3ltYm9s IGZvciB1c2UgYXMgYWxsb3V0IGludmlzaWJsZS10ZXh0IG92ZXJsYXkgY2F0ZWdvcnkuIikKIDs7 O18gICB4IGFsbG91dC12aWV3LWNoYW5nZS1ob29rCiAoZGVmdmFyIGFsbG91dC12aWV3LWNoYW5n ZS1ob29rIG5pbAogICAiKlwoRGVwcmVjYXRlZFwpICBIb29rIHRoYXQncyBydW4gYWZ0ZXIgYWxs b3V0IG91dGxpbmUgZXhwb3N1cmUgY2hhbmdlcy4KQEAgLTEyOTMsMzAgKzEzMzQsMjYgQEAKICAg ICAgIChzZXRxIGN1ciAoY2FyIG1lbnVzKQogCSAgICBtZW51cyAoY2RyIG1lbnVzKSkKICAgICAg IChlYXN5LW1lbnUtYWRkIGN1cikpKSkKLTs7O18gID4gYWxsb3V0LXNldC1vdmVybGF5LWNhdGVn b3J5Ci0oZGVmdW4gYWxsb3V0LXNldC1vdmVybGF5LWNhdGVnb3J5ICgpCi0gICJTZXQgdGhlIHBy b3BlcnRpZXMgb2YgdGhlIGFsbG91dCBpbnZpc2libGUtdGV4dCBvdmVybGF5LiIKLSAgKHNldHBs aXN0ICdhbGxvdXQtb3ZlcmxheS1jYXRlZ29yeSBuaWwpCi0gIChwdXQgJ2FsbG91dC1vdmVybGF5 LWNhdGVnb3J5ICdpbnZpc2libGUgJ2FsbG91dCkKLSAgKHB1dCAnYWxsb3V0LW92ZXJsYXktY2F0 ZWdvcnkgJ2V2YXBvcmF0ZSB0KQorOzs7XyAgPiBhbGxvdXQtb3ZlcmxheS1wcmVwYXJhdGlvbnMK KyhkZWZ1biBhbGxvdXQtb3ZlcmxheS1wcmVwYXJhdGlvbnMgKCkKKyAgIlNldCB0aGUgcHJvcGVy dGllcyBvZiB0aGUgYWxsb3V0IGludmlzaWJsZS10ZXh0IG92ZXJsYXkgYW5kIG90aGVycy4iCisg IChzZXRwbGlzdCAnYWxsb3V0LWV4cG9zdXJlLWNhdGVnb3J5IG5pbCkKKyAgKHB1dCAnYWxsb3V0 LWV4cG9zdXJlLWNhdGVnb3J5ICdpbnZpc2libGUgJ2FsbG91dCkKKyAgKHB1dCAnYWxsb3V0LWV4 cG9zdXJlLWNhdGVnb3J5ICdldmFwb3JhdGUgdCkKICAgOzsgWFhYIFdlIHVzZSBpc2VhcmNoLW9w ZW4taW52aXNpYmxlICphbmQqIGlzZWFyY2gtbW9kZS1lbmQtaG9vay4gIFRoZQogICA7OyBsYXR0 ZXIgd291bGQgYmUgc3VmZmljaWVudCwgYnV0IGl0IHNlZW1zIHRoYXQgYSBzZXBhcmF0ZSBiZWhh dmlvciAtCiAgIDs7IHRoZSBfdHJhbnNpZW50XyBvcGVuaW5nIG9mIGludmlzaWJsZSB0ZXh0IGR1 cmluZyBpc2VhcmNoIC0gaXMga2V5ZWQgdG8KICAgOzsgcHJlc2VuY2Ugb2YgdGhlIGlzZWFyY2gt b3Blbi1pbnZpc2libGUgcHJvcGVydHkgLSBldmVuIHRob3VnaCB0aGlzCiAgIDs7IHByb3BlcnR5 IGNvbnRyb2xzIHRoZSBpc2VhcmNoIF9hcnJpdmFsXyBiZWhhdmlvci4gIFRoaXMgaXMgdGhlIGNh c2UgYXQKICAgOzsgbGVhc3QgaW4gZW1hY3MgMjEsIDIyLjAsIGFuZCB4ZW1hY3MgMjEuNC4KLSAg KHB1dCAnYWxsb3V0LW92ZXJsYXktY2F0ZWdvcnkgJ2lzZWFyY2gtb3Blbi1pbnZpc2libGUKKyAg KHB1dCAnYWxsb3V0LWV4cG9zdXJlLWNhdGVnb3J5ICdpc2VhcmNoLW9wZW4taW52aXNpYmxlCiAg ICAgICAgJ2FsbG91dC1pc2VhcmNoLWVuZC1oYW5kbGVyKQogICAoaWYgKGZlYXR1cmVwICd4ZW1h Y3MpCi0gICAgICAocHV0ICdhbGxvdXQtb3ZlcmxheS1jYXRlZ29yeSAnc3RhcnQtb3BlbiB0KQot ICAgIChwdXQgJ2FsbG91dC1vdmVybGF5LWNhdGVnb3J5ICdpbnNlcnQtaW4tZnJvbnQtaG9va3MK KyAgICAgIChwdXQgJ2FsbG91dC1leHBvc3VyZS1jYXRlZ29yeSAnc3RhcnQtb3BlbiB0KQorICAg IChwdXQgJ2FsbG91dC1leHBvc3VyZS1jYXRlZ29yeSAnaW5zZXJ0LWluLWZyb250LWhvb2tzCiAg ICAgICAgICAnKGFsbG91dC1vdmVybGF5LWluc2VydC1pbi1mcm9udC1oYW5kbGVyKSkpCi0gIChp ZiAoZmVhdHVyZXAgJ3hlbWFjcykKLSAgICAgIChwcm9nbiAobWFrZS12YXJpYWJsZS1idWZmZXIt bG9jYWwgJ2JlZm9yZS1jaGFuZ2UtZnVuY3Rpb25zKQotICAgICAgICAgICAgIChhZGQtaG9vayAn YmVmb3JlLWNoYW5nZS1mdW5jdGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAgJ2FsbG91dC1i ZWZvcmUtY2hhbmdlLWhhbmRsZXIpKQotICAgIChwdXQgJ2FsbG91dC1vdmVybGF5LWNhdGVnb3J5 ICdtb2RpZmljYXRpb24taG9va3MKLSAgICAgICAgICcoYWxsb3V0LW92ZXJsYXktaW50ZXJpb3It bW9kaWZpY2F0aW9uLWhhbmRsZXIpKSkpCisgIChwdXQgJ2FsbG91dC1leHBvc3VyZS1jYXRlZ29y eSAnbW9kaWZpY2F0aW9uLWhvb2tzCisgICAgICAgJyhhbGxvdXQtb3ZlcmxheS1pbnRlcmlvci1t b2RpZmljYXRpb24taGFuZGxlcikpKQogOzs7XyAgPiBhbGxvdXQtbW9kZSAoJm9wdGlvbmFsIHRv Z2dsZSkKIDs7O18gICA6IERlZnVuOgogOzs7IyMjYXV0b2xvYWQKQEAgLTE1NzUsMTE4ICsxNjEy LDkyIEBACiAJCQkJICAgICAgIDsgYWN0aXZlIHN0YXRlIG9yICpkZSphY3RpdmF0aW9uCiAJCQkJ ICAgICAgIDsgc3BlY2lmaWNhbGx5IHJlcXVlc3RlZDoKICAgICAgIChzZXRxIGFsbG91dC1leHBs aWNpdGx5LWRlYWN0aXZhdGVkIHQpCi0gICAgICAoaWYgKHN0cmluZy1tYXRjaCAiXjE4XC4iIGVt YWNzLXZlcnNpb24pCi0JCQkJICAgICAgIDsgUmV2b2tlIHRob3NlIGtleXMgdGhhdCByZW1haW4K LQkJCQkgICAgICAgOyBhcyB3ZSBzZXQgdGhlbToKLQkgIChsZXQgKChjdXJyLWxvYyAoY3VycmVu dC1sb2NhbC1tYXApKSkKLQkgICAobWFwY2FyIChmdW5jdGlvbgotCQkgICAgKGxhbWJkYSAoY2Vs bCkKLQkJICAgICAgKGlmIChlcSAobG9va3VwLWtleSBjdXJyLWxvYyAoY2FyIGNlbGwpKQotCQkJ ICAgICAgKGNhciAoY2RyIGNlbGwpKSkKLQkJCSAgKGRlZmluZS1rZXkgY3Vyci1sb2MgKGNhciBj ZWxsKQotCQkJICAgIChhc3NxIChjYXIgY2VsbCkgYWxsb3V0LXByaW9yLWJpbmRpbmdzKSkpKSkK LQkJICAgYWxsb3V0LWFkZGVkLWJpbmRpbmdzKQotCSAgIChhbGxvdXQtcmVzdW1wdGlvbnMgJ2Fs bG91dC1hZGRlZC1iaW5kaW5ncykKLQkgICAoYWxsb3V0LXJlc3VtcHRpb25zICdhbGxvdXQtcHJp b3ItYmluZGluZ3MpKSkKIAotICAgICAgKGlmIGFsbG91dC1vbGQtc3R5bGUtcHJlZml4ZXMKLQkg IChwcm9nbgotCSAgIChhbGxvdXQtcmVzdW1wdGlvbnMgJ2FsbG91dC1wcmltYXJ5LWJ1bGxldCkK LQkgICAoYWxsb3V0LXJlc3VtcHRpb25zICdhbGxvdXQtb2xkLXN0eWxlLXByZWZpeGVzKSkpCi0g ICAgICA7OyhhbGxvdXQtcmVzdW1wdGlvbnMgJ3NlbGVjdGl2ZS1kaXNwbGF5KQorICAgICAgKGFs bG91dC1kby1yZXN1bXB0aW9ucykKKwogICAgICAgKHJlbW92ZS1mcm9tLWludmlzaWJpbGl0eS1z cGVjICcoYWxsb3V0IC4gdCkpCi0gICAgICAoc2V0IHdyaXRlLWZpbGUtaG9vay12YXItbmFtZQot CSAgIChkZWxxICdhbGxvdXQtd3JpdGUtZmlsZS1ob29rLWhhbmRsZXIKLSAgICAgICAgICAgICAg ICAgKHN5bWJvbC12YWx1ZSB3cml0ZS1maWxlLWhvb2stdmFyLW5hbWUpKSkKLSAgICAgIChzZXRx IGF1dG8tc2F2ZS1ob29rCi0JICAgKGRlbHEgJ2FsbG91dC1hdXRvLXNhdmUtaG9vay1oYW5kbGVy Ci0JCSBhdXRvLXNhdmUtaG9vaykpCi0gICAgICAoYWxsb3V0LXJlc3VtcHRpb25zICdwYXJhZ3Jh cGgtc3RhcnQpCi0gICAgICAoYWxsb3V0LXJlc3VtcHRpb25zICdwYXJhZ3JhcGgtc2VwYXJhdGUp Ci0gICAgICAoYWxsb3V0LXJlc3VtcHRpb25zICdhdXRvLWZpbGwtZnVuY3Rpb24pCi0gICAgICAo YWxsb3V0LXJlc3VtcHRpb25zICdub3JtYWwtYXV0by1maWxsLWZ1bmN0aW9uKQotICAgICAgKGFs bG91dC1yZXN1bXB0aW9ucyAnYWxsb3V0LWZvcm1lci1hdXRvLWZpbGxlcikKKyAgICAgIChyZW1v dmUtaG9vayAncHJlLWNvbW1hbmQtaG9vayAnYWxsb3V0LXByZS1jb21tYW5kLWJ1c2luZXNzIHQp CisgICAgICAocmVtb3ZlLWhvb2sgJ3Bvc3QtY29tbWFuZC1ob29rICdhbGxvdXQtcG9zdC1jb21t YW5kLWJ1c2luZXNzIHQpCisgICAgICAod2hlbiAoZmVhdHVyZXAgJ3hlbWFjcykKKyAgICAgICAg KHJlbW92ZS1ob29rICdiZWZvcmUtY2hhbmdlLWZ1bmN0aW9ucyAnYWxsb3V0LWJlZm9yZS1jaGFu Z2UtaGFuZGxlciB0KSkKKyAgICAgIChyZW1vdmUtaG9vayAnaXNlYXJjaC1tb2RlLWVuZC1ob29r ICdhbGxvdXQtaXNlYXJjaC1lbmQtaGFuZGxlciB0KQorICAgICAgKHJlbW92ZS1ob29rIHdyaXRl LWZpbGUtaG9vay12YXItbmFtZSAnYWxsb3V0LXdyaXRlLWZpbGUtaG9vay1oYW5kbGVyIHQpCisg ICAgICAocmVtb3ZlLWhvb2sgJ2F1dG8tc2F2ZS1ob29rICdhbGxvdXQtYXV0by1zYXZlLWhvb2st aGFuZGxlciB0KQorCisgICAgICAocmVtb3ZlLW92ZXJsYXlzIChwb2ludC1taW4pIChwb2ludC1t YXgpCisgICAgICAgICAgICAgICAgICAgICAgICdjYXRlZ29yeSAnYWxsb3V0LWV4cG9zdXJlLWNh dGVnb3J5KQorCisgICAgICAocnVuLWhvb2tzICdhbGxvdXQtbW9kZS1kZWFjdGl2YXRlLWhvb2sp CiAgICAgICAoc2V0cSBhbGxvdXQtbW9kZSBuaWwpKQogCiAgICAgIDs7IEFjdGl2YXRpb246CiAg ICAgICgobm90IGFjdGl2ZSkKICAgICAgIChzZXRxIGFsbG91dC1leHBsaWNpdGx5LWRlYWN0aXZh dGVkIG5pbCkKICAgICAgIChpZiBhbGxvdXQtb2xkLXN0eWxlLXByZWZpeGVzCi0JICAocHJvZ24J CQk7IEluaGliaXQgYWxsIHRoZSBmYW5jeSBmb3JtYXR0aW5nOgotCSAgIChhbGxvdXQtcmVzdW1w dGlvbnMgJ2FsbG91dC1wcmltYXJ5LWJ1bGxldCAnKCIqIikpCi0JICAgKGFsbG91dC1yZXN1bXB0 aW9ucyAnYWxsb3V0LW9sZC1zdHlsZS1wcmVmaXhlcyAnKCgpKSkpKQorICAgICAgICAgIDs7IElu aGliaXQgYWxsIHRoZSBmYW5jeSBmb3JtYXR0aW5nOgorICAgICAgICAgIChhbGxvdXQtYWRkLXJl c3VtcHRpb25zICcoKGFsbG91dC1wcmltYXJ5LWJ1bGxldCAiKiIpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoYWxsb3V0LW9sZC1zdHlsZS1wcmVmaXhlcyAoKSkpKSkKIAot ICAgICAgKGFsbG91dC1zZXQtb3ZlcmxheS1jYXRlZ29yeSkgICAgIDsgRG9lc24ndCBodXJ0IHRv IHJlZG8gdGhpcy4KKyAgICAgIChhbGxvdXQtb3ZlcmxheS1wcmVwYXJhdGlvbnMpICAgICA7IERv ZXNuJ3QgaHVydCB0byByZWRvIHRoaXMuCiAKICAgICAgIChhbGxvdXQtaW5mZXItaGVhZGVyLWxl YWQpCiAgICAgICAoYWxsb3V0LWluZmVyLWJvZHktcmVpbmRlbnQpCiAKICAgICAgIChzZXQtYWxs b3V0LXJlZ2V4cCkKIAotCQkJCSAgICAgICA7IFByb2R1Y2UgbWFwIGZyb20gY3VycmVudCB2ZXJz aW9uCi0JCQkJICAgICAgIDsgb2YgYWxsb3V0LWtleWJpbmRpbmdzLWxpc3Q6Ci0gICAgICAoaWYg KGJvdW5kcCAnbWlub3ItbW9kZS1tYXAtYWxpc3QpCi0KLQkgIChwcm9nbgkJCTsgVjE5LCBhbmQg bWF5YmUgbHVjaWQgYW5kCi0JCQkJICAgICAgIDsgZXBvY2gsIG1pbm9yLW1vZGUga2V5IGJpbmRp bmdzOgotCSAgIChzZXRxIGFsbG91dC1tb2RlLW1hcAotCQkgKHByb2R1Y2UtYWxsb3V0LW1vZGUt bWFwIGFsbG91dC1rZXliaW5kaW5ncy1saXN0KSkKLSAgICAgICAgICAgKHN1YnN0aXR1dGUta2V5 LWRlZmluaXRpb24gJ2JlZ2lubmluZy1vZi1saW5lCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdtb3ZlLWJlZ2lubmluZy1vZi1saW5lCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFsbG91dC1tb2RlLW1hcCBnbG9iYWwtbWFwKQotICAgICAgICAg ICAoc3Vic3RpdHV0ZS1rZXktZGVmaW5pdGlvbiAnZW5kLW9mLWxpbmUKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ21vdmUtZW5kLW9mLWxpbmUKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3V0LW1vZGUtbWFwIGdsb2JhbC1tYXApCi0JICAg KHByb2R1Y2UtYWxsb3V0LW1vZGUtbWVudWJhci1lbnRyaWVzKQotCSAgIChmc2V0ICdhbGxvdXQt bW9kZS1tYXAgYWxsb3V0LW1vZGUtbWFwKQotCQkJCSAgICAgICA7IEluY2x1ZGUgb24gbWlub3It bW9kZS1tYXAtYWxpc3QsCi0JCQkJICAgICAgIDsgaWYgbm90IGFscmVhZHkgdGhlcmU6Ci0JICAg KGlmIChub3QgKG1lbWJlciAnKGFsbG91dC1tb2RlIC4gYWxsb3V0LW1vZGUtbWFwKQotCQkJICAg IG1pbm9yLW1vZGUtbWFwLWFsaXN0KSkKLQkgICAgICAgKHNldHEgbWlub3ItbW9kZS1tYXAtYWxp c3QKLQkJICAgICAoY29ucyAnKGFsbG91dC1tb2RlIC4gYWxsb3V0LW1vZGUtbWFwKQotCQkJICAg bWlub3ItbW9kZS1tYXAtYWxpc3QpKSkpCi0KLQkJCQkgICAgICAgOyBWMTggbWlub3ItbW9kZSBr ZXkgYmluZGluZ3M6Ci0JCQkJICAgICAgIDsgU3Rhc2ggcmVjb3JkIG9mIGFkZGVkIGJpbmRpbmdz Ci0JCQkJICAgICAgIDsgZm9yIGxhdGVyIHJldm9jYXRpb246Ci0JKGFsbG91dC1yZXN1bXB0aW9u cyAnYWxsb3V0LWFkZGVkLWJpbmRpbmdzCi0JCQkgICAgKGxpc3QgYWxsb3V0LWtleWJpbmRpbmdz LWxpc3QpKQotCShhbGxvdXQtcmVzdW1wdGlvbnMgJ2FsbG91dC1wcmlvci1iaW5kaW5ncwotCQkJ ICAgIChsaXN0IChjdXJyZW50LWxvY2FsLW1hcCkpKQotCQkJCSAgICAgICA7IGFuZCBhZGQgdGhl bToKLQkodXNlLWxvY2FsLW1hcCAocHJvZHVjZS1hbGxvdXQtbW9kZS1tYXAgYWxsb3V0LWtleWJp bmRpbmdzLWxpc3QKLQkJCQkJCShjdXJyZW50LWxvY2FsLW1hcCkpKQotCSkKKyAgICAgIDs7IFBy b2R1Y2UgbWFwIGZyb20gY3VycmVudCB2ZXJzaW9uIG9mIGFsbG91dC1rZXliaW5kaW5ncy1saXN0 OgorICAgICAgKHNldHEgYWxsb3V0LW1vZGUtbWFwCisgICAgICAgICAgICAocHJvZHVjZS1hbGxv dXQtbW9kZS1tYXAgYWxsb3V0LWtleWJpbmRpbmdzLWxpc3QpKQorICAgICAgKHN1YnN0aXR1dGUt a2V5LWRlZmluaXRpb24gJ2JlZ2lubmluZy1vZi1saW5lCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnbW92ZS1iZWdpbm5pbmctb2YtbGluZQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYWxsb3V0LW1vZGUtbWFwIGdsb2JhbC1tYXApCisgICAgICAoc3Vic3RpdHV0 ZS1rZXktZGVmaW5pdGlvbiAnZW5kLW9mLWxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdtb3ZlLWVuZC1vZi1saW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhbGxvdXQtbW9kZS1tYXAgZ2xvYmFsLW1hcCkKKyAgICAgIChwcm9kdWNlLWFsbG91dC1tb2Rl LW1lbnViYXItZW50cmllcykKKyAgICAgIChmc2V0ICdhbGxvdXQtbW9kZS1tYXAgYWxsb3V0LW1v ZGUtbWFwKQorCisgICAgICA7OyBJbmNsdWRlIG9uIG1pbm9yLW1vZGUtbWFwLWFsaXN0LCBpZiBu b3QgYWxyZWFkeSB0aGVyZToKKyAgICAgIChpZiAobm90IChtZW1iZXIgJyhhbGxvdXQtbW9kZSAu IGFsbG91dC1tb2RlLW1hcCkKKyAgICAgICAgICAgICAgICAgICAgICAgbWlub3ItbW9kZS1tYXAt YWxpc3QpKQorICAgICAgICAgIChzZXRxIG1pbm9yLW1vZGUtbWFwLWFsaXN0CisgICAgICAgICAg ICAgICAgKGNvbnMgJyhhbGxvdXQtbW9kZSAuIGFsbG91dC1tb2RlLW1hcCkKKyAgICAgICAgICAg ICAgICAgICAgICBtaW5vci1tb2RlLW1hcC1hbGlzdCkpKQogCiAgICAgICAoYWRkLXRvLWludmlz aWJpbGl0eS1zcGVjICcoYWxsb3V0IC4gdCkpCi0gICAgICAobWFrZS1sb2NhbC12YXJpYWJsZSAn bGluZS1tb3ZlLWlnbm9yZS1pbnZpc2libGUpCi0gICAgICAoc2V0cSBsaW5lLW1vdmUtaWdub3Jl LWludmlzaWJsZSB0KQotICAgICAgKGFkZC1ob29rICdwcmUtY29tbWFuZC1ob29rICdhbGxvdXQt cHJlLWNvbW1hbmQtYnVzaW5lc3MpCi0gICAgICAoYWRkLWhvb2sgJ3Bvc3QtY29tbWFuZC1ob29r ICdhbGxvdXQtcG9zdC1jb21tYW5kLWJ1c2luZXNzKQotICAgICAgKGFkZC1ob29rICdpc2VhcmNo LW1vZGUtZW5kLWhvb2sgJ2FsbG91dC1pc2VhcmNoLWVuZC1oYW5kbGVyKQotICAgICAgKGFkZC1o b29rIHdyaXRlLWZpbGUtaG9vay12YXItbmFtZSAnYWxsb3V0LXdyaXRlLWZpbGUtaG9vay1oYW5k bGVyKQotICAgICAgKGFkZC1ob29rICdhdXRvLXNhdmUtaG9vayAnYWxsb3V0LWF1dG8tc2F2ZS1o b29rLWhhbmRsZXIpCi0JCQkJICAgICAgIDsgQ3VzdG9tIGF1dG8tZmlsbCBmdW5jLCB0byBzdXBw b3J0Ci0JCQkJICAgICAgIDsgcmVzcGVjdCBmb3IgdG9waWMgaGVhZGxpbmUsCi0JCQkJICAgICAg IDsgaGFuZ2luZy1pbmRlbnRzLCBldGM6Ci0gICAgICA7OyBSZWdpc3RlciBwcmV2YWlsaW5nIGZp bGwgZnVuYyBmb3IgdXNlIGJ5IGFsbG91dC1hdXRvLWZpbGw6Ci0gICAgICAoYWxsb3V0LXJlc3Vt cHRpb25zICdhbGxvdXQtZm9ybWVyLWF1dG8tZmlsbGVyIChsaXN0IGF1dG8tZmlsbC1mdW5jdGlv bikpCi0gICAgICA7OyBSZWdpc3RlciBhbGxvdXQtYXV0by1maWxsIHRvIGJlIHVzZWQgaWYgZmls bGluZyBpcyBhY3RpdmU6Ci0gICAgICAoYWxsb3V0LXJlc3VtcHRpb25zICdhdXRvLWZpbGwtZnVu Y3Rpb24gJyhhbGxvdXQtYXV0by1maWxsKSkKLSAgICAgIChhbGxvdXQtcmVzdW1wdGlvbnMgJ2Fs bG91dC1vdXRzaWRlLW5vcm1hbC1hdXRvLWZpbGwtZnVuY3Rpb24KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpc3Qgbm9ybWFsLWF1dG8tZmlsbC1mdW5jdGlvbikpCi0gICAgICAoYWxsb3V0 LXJlc3VtcHRpb25zICdub3JtYWwtYXV0by1maWxsLWZ1bmN0aW9uICcoYWxsb3V0LWF1dG8tZmls bCkpCi0gICAgICA7OyBQYXJhZ3JhcGhzIGFyZSBicm9rZW4gYnkgdG9waWMgaGVhZGxpbmVzLgot ICAgICAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ3BhcmFncmFwaC1zdGFydCkKLSAgICAgIChhbGxv dXQtcmVzdW1wdGlvbnMgJ3BhcmFncmFwaC1zdGFydAotCQkJICAobGlzdCAoY29uY2F0IHBhcmFn cmFwaC1zdGFydCAiXFx8XlxcKCIKLQkJCQkJYWxsb3V0LXJlZ2V4cCAiXFwpIikpKQotICAgICAg KG1ha2UtbG9jYWwtdmFyaWFibGUgJ3BhcmFncmFwaC1zZXBhcmF0ZSkKLSAgICAgIChhbGxvdXQt cmVzdW1wdGlvbnMgJ3BhcmFncmFwaC1zZXBhcmF0ZQotCQkJICAobGlzdCAoY29uY2F0IHBhcmFn cmFwaC1zZXBhcmF0ZSAiXFx8XlxcKCIKLQkJCQkJYWxsb3V0LXJlZ2V4cCAiXFwpIikpKQotCisg ICAgICAoYWxsb3V0LWFkZC1yZXN1bXB0aW9ucyAnKGxpbmUtbW92ZS1pZ25vcmUtaW52aXNpYmxl IHQpKQorICAgICAgKGFkZC1ob29rICdwcmUtY29tbWFuZC1ob29rICdhbGxvdXQtcHJlLWNvbW1h bmQtYnVzaW5lc3MgbmlsIHQpCisgICAgICAoYWRkLWhvb2sgJ3Bvc3QtY29tbWFuZC1ob29rICdh bGxvdXQtcG9zdC1jb21tYW5kLWJ1c2luZXNzIG5pbCB0KQorICAgICAgKHdoZW4gKGZlYXR1cmVw ICd4ZW1hY3MpCisgICAgICAgIChhZGQtaG9vayAnYmVmb3JlLWNoYW5nZS1mdW5jdGlvbnMgJ2Fs bG91dC1iZWZvcmUtY2hhbmdlLWhhbmRsZXIKKyAgICAgICAgICAgICAgICAgIG5pbCB0KSkKKyAg ICAgIChhZGQtaG9vayAnaXNlYXJjaC1tb2RlLWVuZC1ob29rICdhbGxvdXQtaXNlYXJjaC1lbmQt aGFuZGxlciBuaWwgdCkKKyAgICAgIChhZGQtaG9vayB3cml0ZS1maWxlLWhvb2stdmFyLW5hbWUg J2FsbG91dC13cml0ZS1maWxlLWhvb2staGFuZGxlcgorICAgICAgICAgICAgICAgIG5pbCB0KQor ICAgICAgKGFkZC1ob29rICdhdXRvLXNhdmUtaG9vayAnYWxsb3V0LWF1dG8tc2F2ZS1ob29rLWhh bmRsZXIKKyAgICAgICAgICAgICAgICBuaWwgdCkKKworICAgICAgOzsgU3Rhc2ggYXV0by1maWxs IHNldHRpbmdzIGFuZCBhZGp1c3Qgc28gY3VzdG9tIGFsbG91dCBhdXRvLWZpbGwKKyAgICAgIDs7 IGZ1bmMgd2lsbCBiZSB1c2VkIGlmIGF1dG8tZmlsbCBpcyBhY3RpdmUgb3IgYWN0aXZhdGVkLiAg KFRoZQorICAgICAgOzsgY3VzdG9tIGZ1bmMgcmVzcGVjdHMgdG9waWMgaGVhZGxpbmUsIG1haW50 YWlucyBoYW5naW5nLWluZGVudHMsCisgICAgICA7OyBldGMuKQorICAgICAgKGlmIChhbmQgYXV0 by1maWxsLWZ1bmN0aW9uIChub3QgYWxsb3V0LWluaGliaXQtYXV0by1maWxsKSkKKyAgICAgICAg ICA7OyBhbGxvdXQtYXV0by1maWxsIHdpbGwgdXNlIHRoZSBzdGFzaGVkIHZhbHVlcyBhbmQgc28g Zm9ydGguCisgICAgICAgICAgKGFsbG91dC1hZGQtcmVzdW1wdGlvbnMgJyhhdXRvLWZpbGwtZnVu Y3Rpb24gYWxsb3V0LWF1dG8tZmlsbCkpKQorICAgICAgKGFsbG91dC1hZGQtcmVzdW1wdGlvbnMg KGxpc3QgJ2FsbG91dC1mb3JtZXItYXV0by1maWxsZXIKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGF1dG8tZmlsbC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDs7IFJlZ2lzdGVyIGFsbG91dC1hdXRvLWZpbGwgdG8gYmUgdXNlZCBpZgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOzsgZmlsbGluZyBpcyBhY3RpdmU6CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGlzdCAnYWxsb3V0LW91dHNpZGUtbm9ybWFsLWF1dG8tZmls bC1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsLWF1 dG8tZmlsbC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcobm9ybWFs LWF1dG8tZmlsbC1mdW5jdGlvbiBhbGxvdXQtYXV0by1maWxsKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOzsgUGFyYWdyYXBocyBhcmUgYnJva2VuIGJ5IHRvcGljIGhlYWRsaW5lcy4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICdwYXJhZ3JhcGgtc3RhcnQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgcGFyYWdyYXBoLXN0YXJ0 ICJcXHxeXFwoIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh bGxvdXQtcmVnZXhwICJcXCkiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0 ICdwYXJhZ3JhcGgtc2VwYXJhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjb25jYXQgcGFyYWdyYXBoLXNlcGFyYXRlICJcXHxeXFwoIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvdXQtcmVnZXhwICJcXCkiKSkpCiAgICAgICAo b3IgKGFzc3EgJ2FsbG91dC1tb2RlIG1pbm9yLW1vZGUtYWxpc3QpCiAJICAoc2V0cSBtaW5vci1t b2RlLWFsaXN0CiAJICAgICAgIChjb25zICcoYWxsb3V0LW1vZGUgIiBBbGxvdXQiKSBtaW5vci1t b2RlLWFsaXN0KSkpCkBAIC0xNzAyLDggKzE3MTMsOSBAQAogICAgICA7OyBSZWFjdGl2YXRpb246 CiAgICAgICgoc2V0cSBkby1sYXlvdXQgdCkKICAgICAgIChhbGxvdXQtaW5mZXItYm9keS1yZWlu ZGVudCkpCi0gICAgICkJCQkJCTsgY29uZAorICAgICApIDs7IGVuZCBvZiBhY3RpdmF0aW9uLW1v ZGUgY2FzZXMuCiAKKyAgICA7OyBEbyBhdXRvIGxheW91dCBpZiB3YXJyYW50ZWQ6CiAgICAgKGxl dCAoKHVzZS1sYXlvdXQgKGlmIChsaXN0cCBhbGxvdXQtbGF5b3V0KQogICAgICAgICAgICAgICAg ICAgICAgICAgICBhbGxvdXQtbGF5b3V0CiAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvdXQt ZGVmYXVsdC1sYXlvdXQpKSkKQEAgLTE4MDIsOSArMTgxNCwxNCBAQAogCiBUaGlzIGJlZm9yZS1j aGFuZ2UgaGFuZGxlciBpcyB1c2VkIG9ubHkgd2hlcmUgbW9kaWZpY2F0aW9uLWhvb2tzCiBvdmVy bGF5IHByb3BlcnR5IGlzIG5vdCBzdXBwb3J0ZWQuIgotICAoaWYgKG5vdCAoYWxsb3V0LW1vZGUt cCkpCi0gICAgICBuaWwKLSAgICAoYWxsb3V0LW92ZXJsYXktaW50ZXJpb3ItbW9kaWZpY2F0aW9u LWhhbmRsZXIgbmlsIG5pbCBiZWcgZW5kIG5pbCkpKQorICA7OyBhbGxvdXQtb3ZlcmxheS1pbnRl cmlvci1tb2RpZmljYXRpb24taGFuZGxlciBvbiBhbiBvdmVybGF5IGhhbmRsZXMKKyAgOzsgdGhp cyBpbiBvdGhlciBlbWFjcywgdmlhIGBhbGxvdXQtZXhwb3N1cmUtY2F0ZWdvcnkncyAnbW9kaWZp Y2F0aW9uLWhvb2tzLgorICAod2hlbiAoYW5kIChmZWF0dXJlcCAneGVtYWNzKSAoYWxsb3V0LW1v ZGUtcCkpCisgICAgOzsgcHJvY2VzcyBhbGwgb2YgdGhlIHBlbmRpbmcgb3ZlcmxheXM6CisgICAg KGRvbGlzdCAob3ZlcmxheSAob3ZlcmxheXMtaW4gYmVnIGVuZCkpCisgICAgICAoaWYgKGVxIChv dmVybGF5LWdldCBvbCAnaW52aXNpYmxlKSAnYWxsb3V0KQorICAgICAgICAgIChhbGxvdXQtb3Zl cmxheS1pbnRlcmlvci1tb2RpZmljYXRpb24taGFuZGxlcgorICAgICAgICAgICAgIG92ZXJsYXkg bmlsIGJlZyBlbmQgbmlsKSkpKSkKIDs7O18gID4gYWxsb3V0LWlzZWFyY2gtZW5kLWhhbmRsZXIg KCZvcHRpb25hbCBvdmVybGF5KQogKGRlZnVuIGFsbG91dC1pc2VhcmNoLWVuZC1oYW5kbGVyICgm b3B0aW9uYWwgb3ZlcmxheSkKICAgIlJlY29uY2lsZSBhbGxvdXQgb3V0bGluZSBleHBvc3VyZSBv biBhcnJpdmluZyBpbiBoaWRkZW4gdGV4dCBhZnRlciBpc2VhcmNoLgpAQCAtMjAxOCwxMiArMjAz NSwxMiBAQAogICAgIChpZiAoYWxsb3V0LWhpZGRlbi1wKSAoZm9yd2FyZC1jaGFyIDEpKSkpCiA7 OztfICAgPiBhbGxvdXQtbmV4dC1oZWFkaW5nICgpCiAoZGVmc3Vic3QgYWxsb3V0LW5leHQtaGVh ZGluZyAoKQotICAiTW92ZSB0byB0aGUgaGVhZGluZyBmb3IgdGhlIHRvcGljIFwocG9zc2libHkg aW52aXNpYmxlKSBiZWZvcmUgdGhpcyBvbmUuCisgICJNb3ZlIHRvIHRoZSBoZWFkaW5nIGZvciB0 aGUgdG9waWMgXChwb3NzaWJseSBpbnZpc2libGUpIGFmdGVyIHRoaXMgb25lLgogCiBSZXR1cm5z IHRoZSBsb2NhdGlvbiBvZiB0aGUgaGVhZGluZywgb3IgbmlsIGlmIG5vbmUgZm91bmQuIgogCi0g IChpZiAoYW5kIChib2JwKSAobm90IChlb2JwKSkpCi0gICAgICAgKGZvcndhcmQtY2hhciAxKSkK KyAgKGlmIChhbmQgKGJvYnApIChub3QgKGVvYnApKSAobG9va2luZy1hdCBhbGxvdXQtcmVnZXhw KSkKKyAgICAgIChmb3J3YXJkLWNoYXIgMSkpCiAKICAgKGlmIChyZS1zZWFyY2gtZm9yd2FyZCBh bGxvdXQtbGluZS1ib3VuZGFyeS1yZWdleHAgbmlsIDApCiAgICAgICAoYWxsb3V0LXByZWZpeC1k YXRhCQk7IEdvdCB2YWxpZCBsb2NhdGlvbiBzdGF0ZSAtIHNldCB2YXJzOgpAQCAtMjY4OCwzNiAr MjcwNSw1MiBAQAogCiAgIChpZiAobm90IChhbGxvdXQtbW9kZS1wKSkKICAgICAgIG5pbAotICAg IDs7IEhvdC1zcG90IG5hdmlnYXRpb24gcHJvdmlzaW9uczoKICAgICAoaWYgKGFuZCAoZXEgdGhp cy1jb21tYW5kICdzZWxmLWluc2VydC1jb21tYW5kKQogCSAgICAgKGVxIChwb2ludCkoYWxsb3V0 LWN1cnJlbnQtYnVsbGV0LXBvcykpKQotCShsZXQqICgodGhpcy1rZXktbnVtIChjb25kCi0JCQkg ICAgICAoKG51bWJlcnAgbGFzdC1jb21tYW5kLWNoYXIpCi0JCQkgICAgICAgbGFzdC1jb21tYW5k LWNoYXIpCi0JCQkgICAgICA7OyBPbmx5IHhlbWFjcyBoYXMgY2hhcmFjdGVycC4KLQkJCSAgICAg ICgoYW5kIChmYm91bmRwICdjaGFyYWN0ZXJwKQotCQkJCSAgICAoYXBwbHkgJ2NoYXJhY3RlcnAK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCBsYXN0LWNv bW1hbmQtY2hhcikpKQotCQkJICAgICAgIChhcHBseSAnY2hhci10by1pbnQgKGxpc3QgbGFzdC1j b21tYW5kLWNoYXIpKSkKLQkJCSAgICAgICh0IDApKSkKLQkgICAgICAgbWFwcGVkLWJpbmRpbmcp Ci0JICAoaWYgKHplcm9wIHRoaXMta2V5LW51bSkKLQkgICAgICBuaWwKLQkJCQkJOyBNYXAgdXBw ZXItcmVnaXN0ZXIgbGl0ZXJhbHMKLQkJCQkJOyB0byBsb3dlciByZWdpc3RlcjoKLQkgICAgKGlm ICg8PSA5NiB0aGlzLWtleS1udW0pCi0JCShzZXRxIHRoaXMta2V5LW51bSAoLSB0aGlzLWtleS1u dW0gMzIpKSkKLQkJCQkJOyBDaGVjayBpZiB3ZSBoYXZlIGEgbGl0ZXJhbDoKLQkgICAgKGlmIChh bmQgKDw9IDY0IHRoaXMta2V5LW51bSkKLQkJICAgICAoPj0gOTYgdGhpcy1rZXktbnVtKSkKLQkJ KHNldHEgbWFwcGVkLWJpbmRpbmcKLQkJICAgICAgKGxvb2t1cC1rZXkgJ2FsbG91dC1tb2RlLW1h cAotCQkJCSAgKGNvbmNhdCBhbGxvdXQtY29tbWFuZC1wcmVmaXgKLQkJCQkJICAoY2hhci10by1z dHJpbmcgKC0gdGhpcy1rZXktbnVtCi0JCQkJCQkJICAgICA2NCkpKSkpKQotCSAgICAoaWYgbWFw cGVkLWJpbmRpbmcKLQkJKHNldHEgYWxsb3V0LXBvc3QtZ290by1idWxsZXQgdAotCQkgICAgICB0 aGlzLWNvbW1hbmQgbWFwcGVkLWJpbmRpbmcpKSkpKSkpCisgICAgICAgIChhbGxvdXQtaG90c3Bv dC1rZXktaGFuZGxlcikpKSkKKzs7O18gICA+IGFsbG91dC1ob3RzcG90LWtleS1oYW5kbGVyICgp CisoZGVmdW4gYWxsb3V0LWhvdHNwb3Qta2V5LWhhbmRsZXIgKCkKKyAgIkNhdGNoYWxsIGhhbmRs aW5nIG9mIGtleSBiaW5kaW5ncyBpbiBob3Qtc3BvdHMuCisKK1RyYW5zbGF0ZXMgdW5tb2RpZmll ZCBrZXlzdHJva2VzIHRvIGNvcnJlc3BvbmRpbmcgYWxsb3V0IGNvbW1hbmRzLCB3aGVuCit0aGV5 IHdvdWxkIHF1YWxpZnkgaWYgcHJlZml4ZWQgd2l0aCB0aGUgYWxsb3V0LWNvbW1hbmQtcHJlZml4 LCBhbmQgc2V0cwordGhpcy1jb21tYW5kIGFjY29yZGluZ2x5LgorCitSZXR1cm5zIHRoZSBxdWFs aWZ5aW5nIGNvbW1hbmQsIGlmIGFueSwgZWxzZSBuaWwuIgorICAoaW50ZXJhY3RpdmUpCisgIChs ZXQqICgoa2V5LW51bSAoY29uZCAoKG51bWJlcnAgbGFzdC1jb21tYW5kLWNoYXIpIGxhc3QtY29t bWFuZC1jaGFyKQorICAgICAgICAgICAgICAgICAgICAgICAgOzsgZm9yIFhFbWFjcyBjaGFyYWN0 ZXIgdHlwZToKKyAgICAgICAgICAgICAgICAgICAgICAgICgoYW5kIChmYm91bmRwICdjaGFyYWN0 ZXJwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5ICdjaGFyYWN0ZXJwIChs aXN0IGxhc3QtY29tbWFuZC1jaGFyKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5 ICdjaGFyLXRvLWludCAobGlzdCBsYXN0LWNvbW1hbmQtY2hhcikpKQorICAgICAgICAgICAgICAg ICAgICAgICAgKHQgMCkpKQorICAgICAgICAgbWFwcGVkLWJpbmRpbmcKKyAgICAgICAgIChvbi1i dWxsZXQgKGVxIChwb2ludCkgKGFsbG91dC1jdXJyZW50LWJ1bGxldC1wb3MpKSkpCisKKyAgICAo aWYgKHplcm9wIGtleS1udW0pCisgICAgICAgIG5pbAorCisgICAgICAoaWYgKGFuZCAoPD0gMzMg a2V5LW51bSkKKyAgICAgICAgICAgICAgIChzZXRxIG1hcHBlZC1iaW5kaW5nCisgICAgICAgICAg ICAgICAgICAgICAoa2V5LWJpbmRpbmcgKGNvbmNhdCBhbGxvdXQtY29tbWFuZC1wcmVmaXgKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyLXRvLXN0cmluZwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoYW5kICg8PSA5 NyBrZXktbnVtKSA7ICJhIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICg+PSAxMjIga2V5LW51bSkpIDsgInoiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtIGtleS1udW0gOTYpIGtleS1udW0pKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KSkpCisgICAgICAgICAgOzsgUXVhbGlm aWVkIHdpdGggdGhlIGFsbG91dCBwcmVmaXggLSBkbyBob3Qtc3BvdCBvcGVyYXRpb24uCisgICAg ICAgICAgKHNldHEgYWxsb3V0LXBvc3QtZ290by1idWxsZXQgdCkKKyAgICAgICAgOzsgYWNjZXB0 LWRlZmF1bHRzIG5pbCwgb3IgZWxzZSB3ZSdsbCBnZXQgYWxsb3V0LWl0ZW0taWNvbi1rZXktaGFu ZGxlci4KKyAgICAgICAgKHNldHEgbWFwcGVkLWJpbmRpbmcgKGtleS1iaW5kaW5nIChjaGFyLXRv LXN0cmluZyBrZXktbnVtKSkpKQorCisgICAgICAod2hpbGUgKGtleW1hcHAgbWFwcGVkLWJpbmRp bmcpCisgICAgICAgIChzZXRxIG1hcHBlZC1iaW5kaW5nCisgICAgICAgICAgICAgIChsb29rdXAt a2V5IG1hcHBlZC1iaW5kaW5nIChyZWFkLWtleS1zZXF1ZW5jZS12ZWN0b3IgbmlsIHQpKSkpCisK KyAgICAgIChpZiBtYXBwZWQtYmluZGluZworICAgICAgICAgIChzZXRxIGFsbG91dC1wb3N0LWdv dG8tYnVsbGV0IG9uLWJ1bGxldAorICAgICAgICAgICAgICAgIHRoaXMtY29tbWFuZCBtYXBwZWQt YmluZGluZykpKSkpCisKIDs7O18gICA+IGFsbG91dC1maW5kLWZpbGUtaG9vayAoKQogKGRlZnVu IGFsbG91dC1maW5kLWZpbGUtaG9vayAoKQogICAiQWN0aXZhdGUgYGFsbG91dC1tb2RlJyBvbiBu b24tbmlsIGBhbGxvdXQtYXV0by1hY3RpdmF0aW9uJywgYGFsbG91dC1sYXlvdXQnLgpAQCAtMzE0 NiwyMSArMzE3OSwyMyBAQAogCiBNYWludGFpbnMgb3V0bGluZSBoYW5naW5nIHRvcGljIGluZGVu dGF0aW9uIGlmCiBgYWxsb3V0LXVzZS1oYW5naW5nLWluZGVudHMnIGlzIHNldC4iCi0gIChsZXQg KChmaWxsLXByZWZpeCAoaWYgYWxsb3V0LXVzZS1oYW5naW5nLWluZGVudHMKLSAgICAgICAgICAg ICAgICAgICAgICAgICA7OyBDaGVjayBmb3IgdG9waWMgaGVhZGVyIGluZGVudGF0aW9uOgotICAg ICAgICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg KGlmIChsb29raW5nLWF0IGFsbG91dC1yZWdleHApCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOzsgLi4uIGNvbnN0cnVjdCBpbmRlbnRhdGlvbiB0byBhY2NvdW50IGZvcgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGxlbmd0aCBvZiB0b3BpYyBwcmVmaXg6Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1ha2Utc3RyaW5nIChwcm9nbiAoYWxsb3V0LWVu ZC1vZi1wcmVmaXgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoY3VycmVudC1jb2x1bW4pKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA/XCApKSkpKQotICAgICAgICAodXNlLWF1dG8tZmlsbC1mdW5jdGlvbiAo b3IgYWxsb3V0LW91dHNpZGUtbm9ybWFsLWF1dG8tZmlsbC1mdW5jdGlvbgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXV0by1maWxsLWZ1bmN0aW9uCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnZG8tYXV0by1maWxsKSkpCi0gICAgKGlmIChvciBhbGxv dXQtZm9ybWVyLWF1dG8tZmlsbGVyIGFsbG91dC11c2UtaGFuZ2luZy1pbmRlbnRzKQotICAgICAg ICAoZnVuY2FsbCB1c2UtYXV0by1maWxsLWZ1bmN0aW9uKSkpKQorCisgICh3aGVuIChub3QgYWxs b3V0LWluaGliaXQtYXV0by1maWxsKQorICAgIChsZXQgKChmaWxsLXByZWZpeCAoaWYgYWxsb3V0 LXVzZS1oYW5naW5nLWluZGVudHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IENoZWNr IGZvciB0b3BpYyBoZWFkZXIgaW5kZW50YXRpb246CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmlu Zy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGxvb2tpbmctYXQg YWxsb3V0LXJlZ2V4cCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IC4uLiBj b25zdHJ1Y3QgaW5kZW50YXRpb24gdG8gYWNjb3VudCBmb3IKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDs7IGxlbmd0aCBvZiB0b3BpYyBwcmVmaXg6CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgKHByb2duIChhbGxvdXQtZW5kLW9mLXByZWZp eCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGN1cnJlbnQtY29sdW1uKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA/XCApKSkpKQorICAgICAgICAgICh1c2UtYXV0by1maWxsLWZ1bmN0aW9uIChvciBh bGxvdXQtb3V0c2lkZS1ub3JtYWwtYXV0by1maWxsLWZ1bmN0aW9uCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGF1dG8tZmlsbC1mdW5jdGlvbgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnZG8tYXV0by1maWxsKSkpCisgICAgICAoaWYgKG9yIGFs bG91dC1mb3JtZXItYXV0by1maWxsZXIgYWxsb3V0LXVzZS1oYW5naW5nLWluZGVudHMpCisgICAg ICAgICAgKGZ1bmNhbGwgdXNlLWF1dG8tZmlsbC1mdW5jdGlvbikpKSkpCiA7OztfICAgID4gYWxs b3V0LXJlaW5kZW50LWJvZHkgKG9sZC1kZXB0aCBuZXctZGVwdGggJm9wdGlvbmFsIG51bWJlcikK IChkZWZ1biBhbGxvdXQtcmVpbmRlbnQtYm9keSAob2xkLWRlcHRoIG5ldy1kZXB0aCAmb3B0aW9u YWwgbnVtYmVyKQogICAiUmVpbmRlbnQgYm9keSBsaW5lcyB3aGljaCB3ZXJlIGluZGVudGVkIGF0 IE9MRC1ERVBUSCB0byBORVctREVQVEguCkBAIC0zNjAxLDggKzM2MzYsMTAgQEAKIAkgICAgKGZv cndhcmQtY2hhciAxKSkpCiAKICAgICAoaWYgY29sbGFwc2VkCi0gICAgICAgIChwdXQtdGV4dC1w cm9wZXJ0eSBiZWcgKDErIGJlZykgJ2FsbG91dC13YXMtY29sbGFwc2VkIHQpCi0gICAgICAocmVt b3ZlLXRleHQtcHJvcGVydGllcyBiZWcgKDErIGJlZykgJyhhbGxvdXQtd2FzLWNvbGxhcHNlZCB0 KSkpCisgICAgICAgIChhbGxvdXQtdW5wcm90ZWN0ZWQKKyAgICAgICAgIChwdXQtdGV4dC1wcm9w ZXJ0eSBiZWcgKDErIGJlZykgJ2FsbG91dC13YXMtY29sbGFwc2VkIHQpKQorICAgICAgKGFsbG91 dC11bnByb3RlY3RlZAorICAgICAgIChyZW1vdmUtdGV4dC1wcm9wZXJ0aWVzIGJlZyAoMSsgYmVn KSAnKGFsbG91dC13YXMtY29sbGFwc2VkIHQpKSkpCiAgICAgKGFsbG91dC11bnByb3RlY3RlZCAo a2lsbC1yZWdpb24gYmVnIChwb2ludCkpKQogICAgIChzaXQtZm9yIDApCiAgICAgKHNhdmUtZXhj dXJzaW9uCkBAIC0zODM0LDEyICszODcxLDEyIEBACiAKIFRleHQgaXMgc2hvd24gaWYgZmxhZyBp cyBuaWwgYW5kIGhpZGRlbiBvdGhlcndpc2UuIgogICA7OyBXZSB1c2Ugb3V0bGluZSBpbnZpc2li aWxpdHkgc3BlYy4KLSAgKHJlbW92ZS1vdmVybGF5cyBmcm9tIHRvICdjYXRlZ29yeSAnYWxsb3V0 LW92ZXJsYXktY2F0ZWdvcnkpCisgIChyZW1vdmUtb3ZlcmxheXMgZnJvbSB0byAnY2F0ZWdvcnkg J2FsbG91dC1leHBvc3VyZS1jYXRlZ29yeSkKICAgKHdoZW4gZmxhZwogICAgIChsZXQgKChvICht YWtlLW92ZXJsYXkgZnJvbSB0bykpKQotICAgICAgKG92ZXJsYXktcHV0IG8gJ2NhdGVnb3J5ICdh bGxvdXQtb3ZlcmxheS1jYXRlZ29yeSkKKyAgICAgIChvdmVybGF5LXB1dCBvICdjYXRlZ29yeSAn YWxsb3V0LWV4cG9zdXJlLWNhdGVnb3J5KQogICAgICAgKHdoZW4gKGZlYXR1cmVwICd4ZW1hY3Mp Ci0gICAgICAgIChsZXQgKChwcm9wcyAoc3ltYm9sLXBsaXN0ICdhbGxvdXQtb3ZlcmxheS1jYXRl Z29yeSkpKQorICAgICAgICAobGV0ICgocHJvcHMgKHN5bWJvbC1wbGlzdCAnYWxsb3V0LWV4cG9z dXJlLWNhdGVnb3J5KSkpCiAgICAgICAgICAgKHdoaWxlIHByb3BzCiAgICAgICAgICAgICAob3Zl cmxheS1wdXQgbyAocG9wIHByb3BzKSAocG9wIHByb3BzKSkpKSkpKQogICAocnVuLWhvb2tzICdh bGxvdXQtdmlldy1jaGFuZ2UtaG9vaykKQEAgLTM4NjAsOSArMzg5Nyw5IEBACiAgICAgICAgICAg ICAgICAgICAgICAgICBmbGFnKSkpCiAKIDs7O18gIC0gVG9waWMtc3BlY2lmaWMKLTs7O18gICA+ IGFsbG91dC1zaG93LWVudHJ5ICgmb3B0aW9uYWwgaW5jbHVzaXZlKQotKGRlZnVuIGFsbG91dC1z aG93LWVudHJ5ICgmb3B0aW9uYWwgaW5jbHVzaXZlKQotICAiTGlrZSBgYWxsb3V0LXNob3ctY3Vy cmVudC1lbnRyeScsIHJldmVhbHMgZW50cmllcyBuZXN0ZWQgaW4gaGlkZGVuIHRvcGljcy4KKzs7 O18gICA+IGFsbG91dC1zaG93LWVudHJ5ICgpCisoZGVmdW4gYWxsb3V0LXNob3ctZW50cnkgKCkK KyAgIkxpa2UgYGFsbG91dC1zaG93LWN1cnJlbnQtZW50cnknLCBidXQgcmV2ZWFscyBlbnRyaWVz IGluIGhpZGRlbiB0b3BpY3MuCiAKIFRoaXMgaXMgYSB3YXkgdG8gZ2l2ZSByZXN0cmljdGVkIHBl ZWsgYXQgYSBjb25jZWFsZWQgbG9jYWxpdHkgd2l0aG91dCB0aGUKIGV4cGVuc2Ugb2YgZXhwb3Np bmcgaXRzIGNvbnRleHQsIGJ1dCBjYW4gbGVhdmUgdGhlIG91dGxpbmUgd2l0aCBhYmVycmFudApA QCAtMzk3Nyw3ICs0MDE0LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHQpKSkKIDs7O18g ICA+IGFsbG91dC1zaG93LWN1cnJlbnQtZW50cnkgKCZvcHRpb25hbCBhcmcpCiAoZGVmdW4gYWxs b3V0LXNob3ctY3VycmVudC1lbnRyeSAoJm9wdGlvbmFsIGFyZykKLQogICAiU2hvdyBib2R5IGZv bGxvd2luZyBjdXJyZW50IGhlYWRpbmcsIG9yIGhpZGUgZW50cnkgd2l0aCB1bml2ZXJzYWwgYXJn dW1lbnQuIgogCiAgIChpbnRlcmFjdGl2ZSAiUCIpCkBAIC01OTE5LDcgKzU5NTUsMTMyIEBACiAg ICAgKGlzZWFyY2gtcmVwZWF0ICdmb3J3YXJkKQogICAgIChpc2VhcmNoLW1vZGUgdCkpKQogCi07 OztfICMxMSBQcm92aWRlCis7OztfICMxMSBVbml0IHRlc3RzCis7OztfICAlIFJ1biB1bml0IHRl c3RzIGFmdGVyIGxvYWQsIHdoZW4gYGFsbG91dC1ydW4tdW5pdC10ZXN0cy1hZnRlci1sb2FkJzoK KyhldmFsLWFmdGVyLWxvYWQgJ2FsbG91dAorICAnKGlmIGFsbG91dC1ydW4tdW5pdC10ZXN0cy1h ZnRlci1sb2FkCisgICAgIChhbGxvdXQtcnVuLXVuaXQtdGVzdHMpKSkKKzs7O18gID4gYWxsb3V0 LXJ1bi11bml0LXRlc3RzICgpCisoZGVmdW4gYWxsb3V0LXJ1bi11bml0LXRlc3RzICgpCisgICJS dW4gdGhlIHZhcmlvdXMgYWxsb3V0IHVuaXQgdGVzdHMuIgorICAobWVzc2FnZSAiUnVubmluZyBh bGxvdXQgdGVzdHMuLi4iKQorICAoYWxsb3V0LXRlc3QtcmVzdW1wdGlvbnMpCisgIChtZXNzYWdl ICJSdW5uaW5nIGFsbG91dCB0ZXN0cy4uLiAgRG9uZS4iKQorICAoc2l0LWZvciAuNSkpCis7Oztf ICA6IHRlc3QgcmVzdW1wdGlvbnM6Cis7OztfICAgPiBhbGxvdXQtdGVzdHMtb2JsaXRlcmF0ZS12 YXJpYWJsZSAobmFtZSkKKyhkZWZ1biBhbGxvdXQtdGVzdHMtb2JsaXRlcmF0ZS12YXJpYWJsZSAo bmFtZSkKKyAgIkNvbXBsZXRlbHkgdW5iaW5kIHZhcmlhYmxlIHdpdGggTkFNRS4iCisgIChpZiAo bG9jYWwtdmFyaWFibGUtcCBuYW1lKSAoa2lsbC1sb2NhbC12YXJpYWJsZSBuYW1lKSkKKyAgKHdo aWxlIChib3VuZHAgbmFtZSkgKG1ha3VuYm91bmQgbmFtZSkpKQorOzs7XyAgID4gYWxsb3V0LXRl c3QtcmVzdW1wdGlvbnMgKCkKKyhkZWZ2YXIgYWxsb3V0LXRlc3RzLWdsb2JhbGx5LXVuYm91bmQg bmlsCisgICJGb2RkZXIgZm9yIGFsbG91dCByZXN1bXB0aW9ucyB0ZXN0cyAtIGRlZnZhciBqdXN0 IGZvciBieXRlIGNvbXBpbGVyLiIpCisoZGVmdmFyIGFsbG91dC10ZXN0cy1nbG9iYWxseS10cnVl IG5pbAorICAiRm9kZGVyIGZvciBhbGxvdXQgcmVzdW1wdGlvbnMgdGVzdHMgLSBkZWZ2YXIganVz dCBqdXN0IGZvciBieXRlIGNvbXBpbGVyLiIpCisoZGVmdmFyIGFsbG91dC10ZXN0cy1sb2NhbGx5 LXRydWUgbmlsCisgICJGb2RkZXIgZm9yIGFsbG91dCByZXN1bXB0aW9ucyB0ZXN0cyAtIGRlZnZh ciBqdXN0IGZvciBieXRlIGNvbXBpbGVyLiIpCisoZGVmdW4gYWxsb3V0LXRlc3QtcmVzdW1wdGlv bnMgKCkKKyAgIkV4ZXJjaXNlIGFsbG91dCByZXN1bXB0aW9ucy4iCisgIDs7IGZvciBlYWNoIHJl c3VtcHRpb24gY2FzZSwgd2UgYWxzbyB0ZXN0IHRoYXQgdGhlIHJpZ2h0IGxvY2FsL2dsb2JhbAor ICA7OyBzY29wZXMgYXJlIGFmZmVjdGVkIGR1cmluZyByZXN1bXB0aW9uIGVmZmVjdHM6CisKKyAg OzsgZW5zdXJlIHRoYXQgcHJldmlvdXNseSB1bmJvdW5kIHZhcmlhYmxlcyByZXR1cm4gdG8gdGhl IHVuYm91bmQgc3RhdGUuCisgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgKGFsbG91dC10ZXN0cy1v YmxpdGVyYXRlLXZhcmlhYmxlICdhbGxvdXQtdGVzdHMtZ2xvYmFsbHktdW5ib3VuZCkKKyAgICAo YWxsb3V0LWFkZC1yZXN1bXB0aW9ucyAnKGFsbG91dC10ZXN0cy1nbG9iYWxseS11bmJvdW5kIHQp KQorICAgIChhc3NlcnQgKG5vdCAoZGVmYXVsdC1ib3VuZHAgJ2FsbG91dC10ZXN0cy1nbG9iYWxs eS11bmJvdW5kKSkpCisgICAgKGFzc2VydCAobG9jYWwtdmFyaWFibGUtcCAnYWxsb3V0LXRlc3Rz LWdsb2JhbGx5LXVuYm91bmQpKQorICAgIChhc3NlcnQgKGJvdW5kcCAnYWxsb3V0LXRlc3RzLWds b2JhbGx5LXVuYm91bmQpKQorICAgIChhc3NlcnQgKGVxdWFsIGFsbG91dC10ZXN0cy1nbG9iYWxs eS11bmJvdW5kIHQpKQorICAgIChhbGxvdXQtZG8tcmVzdW1wdGlvbnMpCisgICAgKGFzc2VydCAo bm90IChsb2NhbC12YXJpYWJsZS1wICdhbGxvdXQtdGVzdHMtZ2xvYmFsbHktdW5ib3VuZCkpKQor ICAgIChhc3NlcnQgKG5vdCAoYm91bmRwICdhbGxvdXQtdGVzdHMtZ2xvYmFsbHktdW5ib3VuZCkp KSkKKworICA7OyBlbnN1cmUgdGhhdCB2YXJpYWJsZSB3aXRoIHByaW9yIGdsb2JhbCB2YWx1ZSBp cyByZXN1bWVkCisgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgKGFsbG91dC10ZXN0cy1vYmxpdGVy YXRlLXZhcmlhYmxlICdhbGxvdXQtdGVzdHMtZ2xvYmFsbHktdHJ1ZSkKKyAgICAoc2V0cSBhbGxv dXQtdGVzdHMtZ2xvYmFsbHktdHJ1ZSB0KQorICAgIChhbGxvdXQtYWRkLXJlc3VtcHRpb25zICco YWxsb3V0LXRlc3RzLWdsb2JhbGx5LXRydWUgbmlsKSkKKyAgICAoYXNzZXJ0IChlcXVhbCAoZGVm YXVsdC12YWx1ZSAnYWxsb3V0LXRlc3RzLWdsb2JhbGx5LXRydWUpIHQpKQorICAgIChhc3NlcnQg KGxvY2FsLXZhcmlhYmxlLXAgJ2FsbG91dC10ZXN0cy1nbG9iYWxseS10cnVlKSkKKyAgICAoYXNz ZXJ0IChlcXVhbCBhbGxvdXQtdGVzdHMtZ2xvYmFsbHktdHJ1ZSBuaWwpKQorICAgIChhbGxvdXQt ZG8tcmVzdW1wdGlvbnMpCisgICAgKGFzc2VydCAobm90IChsb2NhbC12YXJpYWJsZS1wICdhbGxv dXQtdGVzdHMtZ2xvYmFsbHktdHJ1ZSkpKQorICAgIChhc3NlcnQgKGJvdW5kcCAnYWxsb3V0LXRl c3RzLWdsb2JhbGx5LXRydWUpKQorICAgIChhc3NlcnQgKGVxdWFsIGFsbG91dC10ZXN0cy1nbG9i YWxseS10cnVlIHQpKSkKKworICA7OyBlbnN1cmUgdGhhdCBwcmlvciBsb2NhbCB2YWx1ZSBpcyBy ZXN1bWVkCisgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgKGFsbG91dC10ZXN0cy1vYmxpdGVyYXRl LXZhcmlhYmxlICdhbGxvdXQtdGVzdHMtbG9jYWxseS10cnVlKQorICAgIChzZXQgKG1ha2UtbG9j YWwtdmFyaWFibGUgJ2FsbG91dC10ZXN0cy1sb2NhbGx5LXRydWUpIHQpCisgICAgKGFzc2VydCAo bm90IChkZWZhdWx0LWJvdW5kcCAnYWxsb3V0LXRlc3RzLWxvY2FsbHktdHJ1ZSkpCisgICAgICAg ICAgICBuaWwgKGNvbmNhdCAiVGVzdCBzZXR1cCBtaXN0YWtlIC0gdmFyaWFibGUgc3VwcG9zZWQg dG8iCisgICAgICAgICAgICAgICAgICAgICAgICAiIG5vdCBoYXZlIGdsb2JhbCBiaW5kaW5nLCBi dXQgaXQgZG9lcy4iKSkKKyAgICAoYXNzZXJ0IChsb2NhbC12YXJpYWJsZS1wICdhbGxvdXQtdGVz dHMtbG9jYWxseS10cnVlKQorICAgICAgICAgICAgbmlsIChjb25jYXQgIlRlc3Qgc2V0dXAgbWlz dGFrZSAtIHZhcmlhYmxlIHN1cHBvc2VkIHRvIGhhdmUiCisgICAgICAgICAgICAgICAgICAgICAg ICAiIGxvY2FsIGJpbmRpbmcsIGJ1dCBpdCBsYWNrcyBvbmUuIikpCisgICAgKGFsbG91dC1hZGQt cmVzdW1wdGlvbnMgJyhhbGxvdXQtdGVzdHMtbG9jYWxseS10cnVlIG5pbCkpCisgICAgKGFzc2Vy dCAobm90IChkZWZhdWx0LWJvdW5kcCAnYWxsb3V0LXRlc3RzLWxvY2FsbHktdHJ1ZSkpKQorICAg IChhc3NlcnQgKGxvY2FsLXZhcmlhYmxlLXAgJ2FsbG91dC10ZXN0cy1sb2NhbGx5LXRydWUpKQor ICAgIChhc3NlcnQgKGVxdWFsIGFsbG91dC10ZXN0cy1sb2NhbGx5LXRydWUgbmlsKSkKKyAgICAo YWxsb3V0LWRvLXJlc3VtcHRpb25zKQorICAgIChhc3NlcnQgKGJvdW5kcCAnYWxsb3V0LXRlc3Rz LWxvY2FsbHktdHJ1ZSkpCisgICAgKGFzc2VydCAobG9jYWwtdmFyaWFibGUtcCAnYWxsb3V0LXRl c3RzLWxvY2FsbHktdHJ1ZSkpCisgICAgKGFzc2VydCAoZXF1YWwgYWxsb3V0LXRlc3RzLWxvY2Fs bHktdHJ1ZSB0KSkKKyAgICAoYXNzZXJ0IChub3QgKGRlZmF1bHQtYm91bmRwICdhbGxvdXQtdGVz dHMtbG9jYWxseS10cnVlKSkpKQorCisgIDs7IGVuc3VyZSB0aGF0IGxhc3Qgb2YgbXVsdGlwbGUg cmVzdW1wdGlvbnMgaG9sZHMsIGZvciB2YXJpb3VzIHNjb3Blcy4KKyAgKHdpdGgtdGVtcC1idWZm ZXIKKyAgICAoYWxsb3V0LXRlc3RzLW9ibGl0ZXJhdGUtdmFyaWFibGUgJ2FsbG91dC10ZXN0cy1n bG9iYWxseS11bmJvdW5kKQorICAgIChhbGxvdXQtdGVzdHMtb2JsaXRlcmF0ZS12YXJpYWJsZSAn YWxsb3V0LXRlc3RzLWdsb2JhbGx5LXRydWUpCisgICAgKHNldHEgYWxsb3V0LXRlc3RzLWdsb2Jh bGx5LXRydWUgdCkKKyAgICAoYWxsb3V0LXRlc3RzLW9ibGl0ZXJhdGUtdmFyaWFibGUgJ2FsbG91 dC10ZXN0cy1sb2NhbGx5LXRydWUpCisgICAgKHNldCAobWFrZS1sb2NhbC12YXJpYWJsZSAnYWxs b3V0LXRlc3RzLWxvY2FsbHktdHJ1ZSkgdCkKKyAgICAoYWxsb3V0LWFkZC1yZXN1bXB0aW9ucyAn KGFsbG91dC10ZXN0cy1nbG9iYWxseS11bmJvdW5kIHQpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJyhhbGxvdXQtdGVzdHMtZ2xvYmFsbHktdHJ1ZSBuaWwpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJyhhbGxvdXQtdGVzdHMtbG9jYWxseS10cnVlIG5pbCkpCisgICAgKGFsbG91 dC1hZGQtcmVzdW1wdGlvbnMgJyhhbGxvdXQtdGVzdHMtZ2xvYmFsbHktdW5ib3VuZCAyKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICcoYWxsb3V0LXRlc3RzLWdsb2JhbGx5LXRydWUgMykK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKGFsbG91dC10ZXN0cy1sb2NhbGx5LXRydWUg NCkpCisgICAgOzsgcmVlc3RhYmxpc2ggbWFueSBvZiB0aGUgYmFzaWMgY29uZGl0aW9ucyBhcmUg bWFpbnRhaW5lZCBhZnRlciByZS1hZGQ6CisgICAgKGFzc2VydCAobm90IChkZWZhdWx0LWJvdW5k cCAnYWxsb3V0LXRlc3RzLWdsb2JhbGx5LXVuYm91bmQpKSkKKyAgICAoYXNzZXJ0IChsb2NhbC12 YXJpYWJsZS1wICdhbGxvdXQtdGVzdHMtZ2xvYmFsbHktdW5ib3VuZCkpCisgICAgKGFzc2VydCAo ZXF1YWwgYWxsb3V0LXRlc3RzLWdsb2JhbGx5LXVuYm91bmQgMikpCisgICAgKGFzc2VydCAoZGVm YXVsdC1ib3VuZHAgJ2FsbG91dC10ZXN0cy1nbG9iYWxseS10cnVlKSkKKyAgICAoYXNzZXJ0IChs b2NhbC12YXJpYWJsZS1wICdhbGxvdXQtdGVzdHMtZ2xvYmFsbHktdHJ1ZSkpCisgICAgKGFzc2Vy dCAoZXF1YWwgYWxsb3V0LXRlc3RzLWdsb2JhbGx5LXRydWUgMykpCisgICAgKGFzc2VydCAobm90 IChkZWZhdWx0LWJvdW5kcCAnYWxsb3V0LXRlc3RzLWxvY2FsbHktdHJ1ZSkpKQorICAgIChhc3Nl cnQgKGxvY2FsLXZhcmlhYmxlLXAgJ2FsbG91dC10ZXN0cy1sb2NhbGx5LXRydWUpKQorICAgIChh c3NlcnQgKGVxdWFsIGFsbG91dC10ZXN0cy1sb2NhbGx5LXRydWUgNCkpCisgICAgKGFsbG91dC1k by1yZXN1bXB0aW9ucykKKyAgICAoYXNzZXJ0IChub3QgKGxvY2FsLXZhcmlhYmxlLXAgJ2FsbG91 dC10ZXN0cy1nbG9iYWxseS11bmJvdW5kKSkpCisgICAgKGFzc2VydCAobm90IChib3VuZHAgJ2Fs bG91dC10ZXN0cy1nbG9iYWxseS11bmJvdW5kKSkpCisgICAgKGFzc2VydCAobm90IChsb2NhbC12 YXJpYWJsZS1wICdhbGxvdXQtdGVzdHMtZ2xvYmFsbHktdHJ1ZSkpKQorICAgIChhc3NlcnQgKGJv dW5kcCAnYWxsb3V0LXRlc3RzLWdsb2JhbGx5LXRydWUpKQorICAgIChhc3NlcnQgKGVxdWFsIGFs bG91dC10ZXN0cy1nbG9iYWxseS10cnVlIHQpKQorICAgIChhc3NlcnQgKGJvdW5kcCAnYWxsb3V0 LXRlc3RzLWxvY2FsbHktdHJ1ZSkpCisgICAgKGFzc2VydCAobG9jYWwtdmFyaWFibGUtcCAnYWxs b3V0LXRlc3RzLWxvY2FsbHktdHJ1ZSkpCisgICAgKGFzc2VydCAoZXF1YWwgYWxsb3V0LXRlc3Rz LWxvY2FsbHktdHJ1ZSB0KSkKKyAgICAoYXNzZXJ0IChub3QgKGRlZmF1bHQtYm91bmRwICdhbGxv dXQtdGVzdHMtbG9jYWxseS10cnVlKSkpKQorCisgIDs7IGVuc3VyZSB0aGF0IGRlbGliZXJhdGVs eSB1bmJpbmRpbmcgcmVnaXN0ZXJlZCB2YXJpYWJsZXMgZG9lc24ndCBmb3VsIHRoaW5ncworICAo d2l0aC10ZW1wLWJ1ZmZlcgorICAgIChhbGxvdXQtdGVzdHMtb2JsaXRlcmF0ZS12YXJpYWJsZSAn YWxsb3V0LXRlc3RzLWdsb2JhbGx5LXVuYm91bmQpCisgICAgKGFsbG91dC10ZXN0cy1vYmxpdGVy YXRlLXZhcmlhYmxlICdhbGxvdXQtdGVzdHMtZ2xvYmFsbHktdHJ1ZSkKKyAgICAoc2V0cSBhbGxv dXQtdGVzdHMtZ2xvYmFsbHktdHJ1ZSB0KQorICAgIChhbGxvdXQtdGVzdHMtb2JsaXRlcmF0ZS12 YXJpYWJsZSAnYWxsb3V0LXRlc3RzLWxvY2FsbHktdHJ1ZSkKKyAgICAoc2V0IChtYWtlLWxvY2Fs LXZhcmlhYmxlICdhbGxvdXQtdGVzdHMtbG9jYWxseS10cnVlKSB0KQorICAgIChhbGxvdXQtYWRk LXJlc3VtcHRpb25zICcoYWxsb3V0LXRlc3RzLWdsb2JhbGx5LXVuYm91bmQgdCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnKGFsbG91dC10ZXN0cy1nbG9iYWxseS10cnVlIG5pbCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnKGFsbG91dC10ZXN0cy1sb2NhbGx5LXRydWUgbmls KSkKKyAgICAoYWxsb3V0LXRlc3RzLW9ibGl0ZXJhdGUtdmFyaWFibGUgJ2FsbG91dC10ZXN0cy1n bG9iYWxseS11bmJvdW5kKQorICAgIChhbGxvdXQtdGVzdHMtb2JsaXRlcmF0ZS12YXJpYWJsZSAn YWxsb3V0LXRlc3RzLWdsb2JhbGx5LXRydWUpCisgICAgKGFsbG91dC10ZXN0cy1vYmxpdGVyYXRl LXZhcmlhYmxlICdhbGxvdXQtdGVzdHMtbG9jYWxseS10cnVlKQorICAgIChhbGxvdXQtZG8tcmVz dW1wdGlvbnMpKQorICApCisKKzs7O18gIzEyIFByb3ZpZGUKIChwcm92aWRlICdhbGxvdXQpCiAK IDs7O18qIExvY2FsIGVtYWNzIHZhcnMuCg== ------=_Part_15338_13100503.1152373733961 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ------=_Part_15338_13100503.1152373733961--