From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/60810 Path: news.gmane.org!not-for-mail From: Simon Josefsson Newsgroups: gmane.emacs.gnus.general Subject: Re: 'cvs log' for Gnus CVS doesn't work Date: Mon, 22 Aug 2005 22:19:28 +0200 Message-ID: References: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: sea.gmane.org 1124757741 21738 80.91.229.2 (23 Aug 2005 00:42:21 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 23 Aug 2005 00:42:21 +0000 (UTC) Cc: ding@gnus.org Original-X-From: ding-owner+M9342=ding+2Daccount=gmane.org@lists.math.uh.edu Tue Aug 23 02:39:19 2005 Return-path: Original-Received: from malifon.math.uh.edu ([129.7.128.13]) by ciao.gmane.org with esmtp (Exim 4.43) id 1E7Mny-0001jj-Tx for ding-account@gmane.org; Tue, 23 Aug 2005 02:38:21 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu ident=lists) by malifon.math.uh.edu with smtp (Exim 3.20 #1) id 1E7Mnu-0006QE-00 for ding-account@gmane.org; Mon, 22 Aug 2005 19:38:14 -0500 Original-Received: from util2.math.uh.edu ([129.7.128.23]) by malifon.math.uh.edu with esmtp (Exim 3.20 #1) id 1E7Imj-0005rB-00 for ding@lists.math.uh.edu; Mon, 22 Aug 2005 15:20:45 -0500 Original-Received: from quimby.gnus.org ([80.91.224.244]) by util2.math.uh.edu with esmtp (Exim 4.30) id 1E7ImF-0003QZ-C1 for ding@lists.math.uh.edu; Mon, 22 Aug 2005 15:20:15 -0500 Original-Received: from 178.230.13.217.in-addr.dgcsystems.net ([217.13.230.178] helo=yxa.extundo.com) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1E7Hq2-0002FR-00; Mon, 22 Aug 2005 21:20:06 +0200 Original-Received: from latte.josefsson.org (c494102a.s-bi.bostream.se [217.215.27.65]) (authenticated bits=0) by yxa.extundo.com (8.13.4/8.13.4/Debian-3) with ESMTP id j7MKJV3D013022 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 22 Aug 2005 22:19:41 +0200 Original-To: Lars Magne Ingebrigtsen OpenPGP: id=B565716F; url=http://josefsson.org/key.txt X-Hashcash: 1:21:050822:larsi@gnus.org::5QBVMldir5jc+UzX:A2RX X-Hashcash: 1:21:050822:ding@gnus.org::X3sbf78PYA/2rAjp:ErRJ In-Reply-To: (Lars Magne Ingebrigtsen's message of "Wed, 17 Aug 2005 06:55:17 +0200") User-Agent: Gnus/5.110004 (No Gnus v0.4) Emacs/22.0.50 (gnu/linux) X-Virus-Scanned: ClamAV version 0.84, clamav-milter version 0.84e on yxa.extundo.com X-Virus-Status: Clean X-Spam-Score: -4.9 (----) Precedence: bulk Original-Sender: ding-owner@lists.math.uh.edu Xref: news.gmane.org gmane.emacs.gnus.general:60810 X-Report-Spam: http://spam.gmane.org/gmane.emacs.gnus.general:60810 --=-=-= I'm Cc:ing ding to possibly reach CVS master... this is about 'cvs log' not working because of a corrupt gnus-uu.el in repository, and how to salvage the broken *,v file. Lars Magne Ingebrigtsen writes: > Simon Josefsson writes: > >> I think the problem is data corruption. Is there a spurious \x9 byte >> in the gnus-uu.el file? Could you manually remove it? > > I've tried looking at the file to find out what's wrong, but I've > been unsuccessful. > > I've included it below -- do you see what's wrong? I had to build my own CVS binary that printed more debug information, but eventually I found the problems... The file is corrupt. The detailed patches for 21 revisions are lost: 2.29-2.45, which is the end of the 2.x branch, and then renamed to 3.x, where 3.1-3.5 are missing. Below I fixed the end points so *,v file is possible parse. FYI, this revision refer to code in about 1997 or something like that. Further, the patch for revision 1.2 is corrupt too, but I was able to salvage it from the (corrupt!) 1.1.1.1 patch. The patch for 1.1.1.1 was also corrupt. I removed the leading offending part, but it appears as if a substantial part of the patch is missing. Finally, the entire 1.1 entry was duplicated, and there was a dummy 1.1.1.1 entry. Please apply the following patch to gnus-uu.el,v in the CVS repository. I'm attaching a complete gnus-uu.el replacement too. I checked that there hasn't been any commits to that file since you sent me the gnus-uu.el,v file. I really hope that no other file is broken, and that 'cvs log' will finally work now. --- orig,v 2005-08-22 22:04:00.606366568 +0200 +++ gnus-uu.el,v 2005-08-22 22:07:07.819905784 +0200 @@ -6657,45 +6657,6 @@ @ text @d273 31 -a303 32 -(gnus-define-keys - (gnus-uu-mark-map "P" gnus-summary-mark-map) - "p" gnus-summary-mark-as-processable - "u" gnus-summary-unmark-as-processable - "U" gnus-summary-unmark-all-processable - "v" gnus-uu-mark-over - "s" gnus-uu-mark-series - "r" gnus-uu-mark-region - "R" gnus-uu-mark-by-regexp - "t" gnus-uu-mark-thread - "T" gnus-uu-unmark-thread - "a" gnus-uu-mark-all - "b" gnus-uu-mark-buffer - "S" gnus-uu-mark-sparse - "k" gnus-summary-kill-process-mark - "y" gnus-summary-yank-process-mark - "w" gnus-summary-save-process-mark) - -(gnus-define-keys - (gnus-uu-extract-map "X" gnus-summary-mode-map) - ;;"x" gnus-uu-extract-any - ;;"m" gnus-uu-extract-mime - "u" gnus-uu-decode-uu - "U" gnus-uu-decode-uu-and-save - "s" gnus-uu-decode-unshar - "S" gnus-uu-decode-unshar-and-save - "o" gnus-uu-decode-save - "O" gnus-uu-decode-save - "b" gnus-uu-decode-binhex - "B" gnus-uu-decode-binhex - "p" gnus-uu-decode-postscript - - (beginning-of-line) - (setq beg (point)) - (end-of-line) - (if (not (= length (- (point) beg))) - (insert (make-string (- length (- (point) beg)) ? )))) - (forward-line 1)))))) @ @@ -9649,7 +9610,69 @@ (gnus-uu-reginize-string (gnus-summary-subject-string)) (if only-unread "[- ]" ".")))) - (ifor occurred + (if reg-subject + (progn + +; Collect all subjects matching reg-subject. + + (let ((case-fold-search t)) + (goto-char 1) + (while (re-search-forward reg-subject nil t) + (progn + (goto-char (match-beginning 0)) + (setq list-of-subjects + (cons (cons (gnus-summary-subject-string) + (gnus-summary-article-number)) + list-of-subjects)) + (forward-line 1)))) +a680 27 +; Expand all numbers in all the subjects: (hi9 -> hi0009, etc). + + (setq list-of-subjects + (gnus-uu-expand-numbers list-of-subjects + (not do-not-translate))) + +; Sort the subjects. + + (setq list-of-subjects (sort list-of-subjects 'gnus-uu-string<)) + +; Get the article numbers from the sorted list of subjects. + + (while list-of-subjects + (setq art-num (cdr (car list-of-subjects))) + (if mark-articles (gnus-summary-mark-as-read art-num ?#)) + (setq list-of-numbers (cons art-num list-of-numbers)) + (setq list-of-subjects (cdr list-of-subjects))) + + (setq list-of-numbers (nreverse list-of-numbers)))) + + list-of-numbers))) + +; Takes a list of strings and "expands" all numbers in all the +; strings. That is, this function makes all numbers equal length by +; prepending lots of zeroes before each number. This is to ease later +; sorting to find out what sequence the articles are supposed to be +; decoded in. Returns the list of expanded strings. +d682 5 +d717 23 +a739 25 +;; gnus-uu-grab-article +; +; This is the general multi-article treatment function. It takes a +; list of articles to be grabbed and a function to apply to each +; article. +; +; The function to be called should take two parameters. The first +; parameter is the article buffer. The function should leave the +; result, if any, in this buffer. Most treatment functions will just +; generate files... +; +; The second parameter is the state of the list of articles, and can +; have four values: `first', `middle', `last' and `first-and-last'. +; +; The function should return a list. The list may contain the +; following symbols: +; `error' if an error occurred ; `begin' if the beginning of an encoded file has been received ; If the list returned contains a `begin', the first element of ; the list *must* be a string with the file name of the decoded @@ -10670,42 +10693,7 @@ @ @ text -@@ -(defun toggle-any-variable () - "This function ask what variable the user wants to toggle." - (interactive) - (let (rep) - (message "(a)sync, (q)uery, (p)ask, (k)ill CR, (i)nteract, (u)nmark, (c)orrect, (m)eta") - (setq rep (read-char)) - (if (= rep ?a) - (gnus-uu-toggle-asynchronous)) - (if (= rep ?q) - (gnus-uu-toggle-query)) - (if (= rep ?p) - (gnus-uu-toggle-always-ask)) - (if (= rep ?k) - (gnus-uu-toggle-kill-carriage-return)) - (if (= rep ?u) - (gnus-uu-toggle-unmark-undecoded)) - (if (= rep ?c) - (gnus-uu-toggle-correct-stripped-uucode)) - (if (= rep ?m) - (gnus-uu-toggle-view-with-metamail)) - (if (= rep ?i) - (gnus-uu-toggle-interactive-view)))) - - -;; Misc interactive functions - -(defun gnus-uu-decode-and-show-in-buffer () - "Uudecodes the current article and displays the result in a buffer. -Might be useful if someone has, for instance, some text uuencoded in -their sigs. (Stranger things have happened.)" - (interactive) - (gnus-uu-initialize) - (let ((uu-buffer (get-buffer-create gnus-uu-output-buffer-name)) - file-name) -d349 15 +@d349 15 a363 204 (and (gnus-summary-select-article) @@ -11960,372 +11948,3 @@ ; Posts the article and all of the encoded file. @ - -1.1 -log -@Initial revision -@ -text -@d1 2 -a2 3 -;;; gnus-uu.el --- extract, view or save (uu)encoded files from gnus - -;; Copyright (C) 1985, 1986, 1987, 1993, 1994 Free Software Foundation, Inc. -d189 2 -a190 338 - "gnus-uu is a package for uudecoding and viewing articles. - - -Keymap overview: - -By default, all gnus-uu keystrokes begin with `C-c C-v'. - -There four decoding commands categories: -All commands for viewing are `C-c C-v C-LETTER'. -All commands for saving are `C-c C-v LETTER'. -All commands for marked viewing are `C-c C-v C-M-LETTER'. -All commands for marked saving are `C-c C-v M-LETTER'. - -\\\\[gnus-uu-decode-and-view]\tDecode and view articles -\\[gnus-uu-decode-and-save]\tDecode and save articles -\\[gnus-uu-shar-and-view]\tUnshar and view articles -\\[gnus-uu-shar-and-save]\tUnshar and save articles -\\[gnus-uu-multi-decode-and-view]\tChoose a decoding method, decode and view articles -\\[gnus-uu-multi-decode-and-save]\tChoose a decoding method, decode and save articles - -\\[gnus-uu-threaded-multi-decode-and-view]\tDecode a thread and view -\\[gnus-uu-threaded-multi-decode-and-save]\tDecode a thread and save - -\\[gnus-uu-decode-and-show-in-buffer]\tDecode the current article and view the result in a buffer -\\[gnus-uu-edit-begin-line]\tEdit the 'begin' line of an uuencoded article - -\\[gnus-uu-decode-and-save-all-unread-articles]\tDecode and save all unread articles -\\[gnus-uu-decode-and-save-all-articles]\tDecode and save all articles -\\[gnus-uu-decode-and-view-all-unread-articles]\tDecode and view all unread articles -\\[gnus-uu-decode-and-view-all-articles]\tDecode and view all articles -\\[gnus-uu-decode-and-view-all-marked-files]\tDecode and view all files that have had some articles marked -\\[gnus-uu-decode-and-save-all-marked-files]\tDecode and save all files that have had some articles marked - -\\[gnus-uu-digest-and-forward]\tDigest and forward a series of articles -\\[gnus-uu-marked-digest-and-forward]\tDigest and forward all marked articles - -\\[gnus-uu-mark-by-regexp]\tMark articles for decoding by regexp -\\[gnus-uu-mark-thread]\tMark articles in this thread -\\[gnus-uu-mark-region]\tMark articles all articles between point and mark -\\[gnus-uu-marked-decode-and-view]\tDecode and view marked articles -\\[gnus-uu-marked-decode-and-save]\tDecode and save marked articles -\\[gnus-uu-marked-shar-and-view]\tUnshar and view marked articles -\\[gnus-uu-marked-shar-and-save]\tUnshar and save marked articles -\\[gnus-uu-marked-multi-decode-and-view]\tChoose decoding method, decode and view marked articles -\\[gnus-uu-marked-multi-decode-and-save]\tChoose decoding method, decode and save marked articles - -\\[gnus-uu-marked-universal-argument]\tPerform any opration on all marked articles - -\\[gnus-uu-toggle-asynchronous]\tToggle asynchronous viewing mode -\\[gnus-uu-toggle-query]\tToggle whether to ask before viewing a file -\\[gnus-uu-toggle-always-ask]\tToggle whether to ask to save a file after viewing -\\[gnus-uu-toggle-kill-carriage-return]\tToggle whether to strip trailing carriage returns -\\[gnus-uu-toggle-interactive-view]\tToggle whether to use interactive viewing mode -\\[gnus-uu-toggle-correct-stripped-articles]\tToggle whether to 'correct' articles -\\[gnus-uu-toggle-view-with-metamail]\tToggle whether to use metamail for viewing -\\[gnus-uu-toggle-any-variable]\tToggle any of the things above - -\\[gnus-uu-post-news]\tPost an uuencoded article - -Function description: - -`gnus-uu-decode-and-view' will try to find all articles in the same -series, uudecode them and view the resulting file(s). - -gnus-uu guesses what articles are in the series according to the -following simplish rule: The subjects must be (nearly) identical, -except for the last two numbers of the line. (Spaces are largely -ignored, however.) - -For example: If you choose a subject called - \"cat.gif (2/3)\" -gnus-uu will find all the articles that matches - \"^cat.gif ([0-9]+/[0-9]+).*$\". - -Subjects that are nonstandard, like - \"cat.gif (2/3) Part 6 of a series\", -will not be properly recognized by any of the automatic viewing -commands, and you have to mark the articles manually with '#'. - -`gnus-uu-decode-and-save' will do the same as -`gnus-uu-decode-and-view', except that it will not display the -resulting file, but save it instead. - -`gnus-uu-shar-and-view' and `gnus-uu-shar-and-save' are the \"shar\" -equivalents to the uudecode functions. Instead of feeding the articles -to uudecode, they are run through /bin/sh. Most shar files can be -viewed and/or saved with the normal uudecode commands, which is much -safer, as no foreign code is run. - -Instead of having windows popping up automatically, it can be handy to -view files interactivly, especially when viewing archives. Use -`gnus-uu-toggle-interactive-mode' to toggle interactive mode. - -`gnus-uu-mark-article' marks an article for later -decoding/unsharing/saving/viewing. The files will be decoded in the -sequence they were marked. To decode the files after you've marked the -articles you are interested in, type the corresponding key strokes as -the normal decoding commands, but put a `M-' in the last -keystroke. For instance, to perform a standard uudecode and view, you -would type `C-c C-v C-v'. To perform a marked uudecode and view, say -`C-v C-v M-C-v'. All the other view and save commands are handled the -same way; marked uudecode and save is then `C-c C-v M-v'. - -`gnus-uu-unmark-article' will remove the mark from a previosly marked -article. - -`gnus-uu-unmark-all-articles' will remove the mark from all marked -articles. - -`gnus-uu-mark-by-regexp' will prompt for a regular expression and mark -all articles matching that regular expression. - -`gnus-uu-mark-thread' will mark all articles downward in the current -thread. - -`gnus-uu-marked-universal-argument' will perform any operation on all -marked articles. - -There's an additional way to reach the decoding functions to make -future expansions easier: `gnus-uu-multi-decode-and-view' and the -corresponding save, marked view and marked save functions. You will be -prompted for a decoding method, like uudecode, shar, binhex or plain -save. Note that methods like binhex and save doesn't have view modes; -even if you issue a view command (`C-c C-v C-m' and \"binhex\"), -gnus-uu will just save the resulting binhex file. - -`gnus-uu-decode-and-show-in-buffer' will decode the current article -and display the results in an emacs buffer. This might be useful if -there's jsut some text in the current article that has been uuencoded -by some perverse poster. - -`gnus-uu-decode-and-save-all-articles' looks at all the articles in -the current newsgroup and tries to uudecode everything it can -find. The user will be prompted for a directory where the resulting -files (if any) will be -saved. `gnus-uu-decode-and-save-unread-articles' does only checks -unread articles. - -`gnus-uu-decode-and-view-all-articles' does the same as the function -above, only viewing files instead of saving them. - -`gnus-uu-edit-begin-line' lets you edit the begin line of an uuencoded -file in the current article. Useful to change a corrupted begin line. - - -When using the view commands, `gnus-uu-decode-and-view' for instance, -gnus-uu will (normally, see below) try to view the file according to -the rules given in `gnus-uu-default-view-rules' and -`gnus-uu-user-view-rules'. If it recognizes the file, it will display -it immediately. If the file is some sort of archive, gnus-uu will -attempt to unpack the archive and see if any of the files in the -archive can be viewed. For instance, if you have a gzipped tar file -\"pics.tar.gz\" containing the files \"pic1.jpg\" and \"pic2.gif\", -gnus-uu will uncompress and detar the main file, and then view the two -pictures. This unpacking process is recursive, so if the archive -contains archives of archives, it'll all be unpacked. - -If the view command doesn't recognise the file type, or can't view it -because you don't have the viewer, or can't view *any* of the files in -the archive, the user will be asked if she wishes to have the file -saved somewhere. Note that if the decoded file is an archive, and -gnus-uu manages to view some of the files in the archive, it won't -tell the user that there were some files that were unviewable. Try -interactive view for a different approach. - - -Note that gnus-uu adds a function to `gnus-exit-group-hook' to clear -the list of marked articles and check for any generated files that -might have escaped deletion if the user typed `C-g' during viewing. - - -`gnus-uu-toggle-asynchronous' toggles the `gnus-uu-asynchronous' -variable. - -`gnus-uu-toggle-query' toggles the `gnus-uu-ask-before-view' -variable. - -`gnus-uu-toggle-always-ask' toggles the `gnus-uu-view-and-save' -variable. - -`gnus-uu-toggle-kill-carriage-return' toggles the -`gnus-uu-kill-carriage-return' variable. - -`gnus-uu-toggle-interactive-view' toggles interactive mode. If it is -turned on, gnus-uu won't view files immediately, but will give you a -buffer with the default commands and files and let you edit the -commands and execute them at leisure. - -`gnus-uu-toggle-correct-stripped-articles' toggles whether to check -and correct uuencoded articles that may have had trailing spaces -stripped by mailers. - -`gnus-uu-toggle-view-with-metamail' toggles whether to skip the -gnus-uu viewing methods and just guess at an content-type based on the -file name suffix and feed it to metamail. - -`gnus-uu-toggle-any-variable' is an interface to the toggle commands -listed above. - - -Customization - - Rule Variables - - gnus-uu uses \"rule\" variables to decide how to view a file. All - these variables are of the form - - (list '(regexp1 command2) - '(regexp2 command2) - ...) - - `gnus-uu-user-view-rules' - This variable is consulted first when viewing files. If you wish - to use, for instance, sox to convert an .au sound file, you could - say something like: - - (setq gnus-uu-user-view-rules - (list '(\"\\\\.au$\" \"sox %s -t .aiff > /dev/audio\"))) - - `gnus-uu-user-view-rules-end' - This variable is consulted if gnus-uu couldn't make any matches - from the user and default view rules. - - `gnus-uu-user-interactive-view-rules' - This is the variable used instead of `gnus-uu-user-view-rules' - when in interactive mode. - - `gnus-uu-user-interactive-view-rules-end' - This variable is used instead of `gnus-uu-user-view-rules-end' - when in interactive mode. - - `gnus-uu-user-archive-rules` - This variable can be used to say what comamnds should be used to - unpack archives. - - - Other Variables - - `gnus-uu-ignore-files-by-name' - Files with name matching this regular expression won't be viewed. - - `gnus-uu-ignore-files-by-type' - Files with a MIME type matching this variable won't be viewed. - Note that gnus-uu tries to guess what type the file is based on - the name. gnus-uu is not a MIME package, so this is slightly - kludgy. - - `gnus-uu-tmp-dir' - Where gnus-uu does its work. - - `gnus-uu-do-not-unpack-archives' - Non-nil means that gnus-uu won't peek inside archives looking for - files to dispay. - - `gnus-uu-view-and-save' - Non-nil means that the user will always be asked to save a file - after viewing it. - - `gnus-uu-asynchronous' - Non-nil means that files will be viewed asynchronously. This can - be useful if you're viewing long .mod files, for instance, which - often takes several minutes. Note, however, that since gnus-uu - doesn't ask, and if you are viewing an archive with lots of - viewable files, you'll get them all up more or less at once, - which can be confusing, to say the least. To get gnus-uu to ask - you before viewing a file, set the `gnus-uu-ask-before-view' - variable. - - `gnus-uu-ask-before-view' - Non-nil means that gnus-uu will ask you before viewing each file - - `gnus-uu-ignore-default-view-rules' - Non-nil means that gnus-uu will ignore the default viewing rules. - - `gnus-uu-ignore-default-archive-rules' - Non-nil means that gnus-uu will ignore the default archive - unpacking commands. - - `gnus-uu-kill-carriage-return' - Non-nil means that gnus-uu will strip all carriage returns from - articles. - - `gnus-uu-unmark-articles-not-decoded' - Non-nil means that gnus-uu will mark articles that were - unsuccessfully decoded as unread. - - `gnus-uu-output-window-height' - This variable says how tall the output buffer window is to be - when using interactive view mode. - - `gnus-uu-correct-stripped-uucode' - Non-nil means that gnus-uu will *try* to fix uuencoded files that - have had traling spaces deleted. - - `gnus-uu-use-interactive-view' - Non-nil means that gnus-uu will use interactive viewing mode. - - `gnus-uu-view-with-metamail' - Non-nil means that gnus-uu will ignore the viewing commands - defined by the rule variables and just fudge a MIME content type - based on the file name. The result will be fed to metamail for - viewing. - - `gnus-uu-save-in-digest' - Non-nil means that gnus-uu, when asked to save without decoding, - will save in digests. If this variable is nil, gnus-uu will just - save everything in a file without any embellishments. The - digesting almost conforms to RFC1153 - no easy way to specify any - meaningful volume and issue numbers were found, so I simply - dropped them. - - `gnus-uu-post-include-before-composing' - Non-nil means that gnus-uu will ask for a file to encode before - you compose the article. If this variable is t, you can either - include an encoded file with \\\\[gnus-uu-post-insert-binary-in-article] or have one included for you when you - post the article. - - `gnus-uu-post-length' - Maximum length of an article. The encoded file will be split - into how many articles it takes to post the entire file. - - `gnus-uu-post-threaded' - Non-nil means that gnus-uu will post the encoded file in a - thread. This may not be smart, as no other decoder I have seen - are able to follow threads when collecting uuencoded - articles. (Well, I have seen one package that does that - - gnus-uu, but somehow, I don't think that counts...) Default is - nil. - - `gnus-uu-post-separate-description' - Non-nil means that the description will be posted in a separate - article. The first article will typically be numbered (0/x). If - this variable is nil, the description the user enters will be - included at the beginning of the first article, which will be - numbered (1/x). Default is t. -" - (interactive) - ) -d1371 1 -a1371 1 - (format "%s %s [0-9]+ [0-9]+[\n\r]" -d1384 1 -a1384 1 - (forward-line -1) -d1536 2 -a1537 1 - (gnus-request-article article gnus-newsgroup-name) -@ - - -1.1.1.1 -log -@ -@ -text -@@ --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename*=us-ascii''gnus-uu.el%2cv Content-Transfer-Encoding: base64 aGVhZAk3LjE2OwphY2Nlc3M7CnN5bWJvbHMKCW4wLTM6Ny4xMgoJZW1hY3My MV80LWdudXMtNV8xMC1icmFuY2hwb2ludDo2LjI4LjIuMQoJbjAtMjo3LjgK CXY1LTEwOjYuMjguMC4yCgluMC0xOjcuMQoJbjAtMDo2LjI4Cgl2NS0xMC02 OjYuMjgKCXY1LTEwLTU6Ni4yOAoJdjUtMTAtNDo2LjI4Cgl2NS0xMC0zOjYu MjgKCXY1LTEwLTI6Ni4yNQoJdjUtMTAtMTo2LjI1Cgl2NS0xMC0wOjYuMjUK CW8wLTI0OjYuMjUKCW8wLTIzOjYuMjQKCW8wLTIyOjYuMjQKCW8wLTIxOjYu MjQKCW8wLTIwOjYuMjQKCW8wLTE5OjYuMjQKCW8wLTE4OjYuMjQKCW8wLTE3 OjYuMjQKCW8wLTE2OjYuMjIKCW8wLTE1OjYuMjEKCW8wLTE0OjYuMjEKCW8w LTEzOjYuMjEKCW8wLTEyOjYuMjEKCW8wLTExOjYuMjEKCW8wLTEwOjYuMjEK CW8wLTA5OjYuMjEKCW8wLTA3OjYuMTYKCW8wLTA2OjYuMTYKCW8wLTA1OjYu MTEKCW8wLTA0OjYuMTEKCW8wLTAzOjYuNgoJbzAtMDI6Ni42Cgl2OjYuNgoJ bzAtMDE6Ni42CglvTy0wMTo2LjYKCXY1LTgtODo1LjI5LjIuMQoJcG9zdC1t ZXJnZS1lbWFjczIxLTE6Ni4xCglwcmUtbWVyZ2UtZW1hY3MyMS0xOjYuMQoJ VjUtODo1LjI5LjAuMgoJcHJlLW9nbnVzLXBvaW50OjUuMjkKCWVtYWNzMjEt YnJhbmNoOjUuMjguMC4yCgllbWFjczIxLWJyYW5jaC1wb2ludDo1LjI4Cgl2 NS04LTc6NS4yOAoJdjUtOC02OjUuMjMKCXY1LTgtNTo1LjIzCgl2NS04LTQ6 NS4yMQoJdjUtOC0zOjUuMjAKCXY1LTgtMjo1LjE3Cgl2NS04LTE6NS4xNwoJ cDAtOTk6NS4xNgoJcDAtOTg6NS4xNQoJcDAtOTc6NS4xNQoJcDAtOTY6NS4x NQoJcDAtOTU6NS4xNAoJcDAtOTQ6NS4xNAoJcDAtOTM6NS4xNAoJcDAtOTI6 NS4xNAoJcDAtOTE6NS4xNAoJcDAtOTA6NS4xNAoJcDAtODk6NS4xNAoJcDAt ODg6NS4xNAoJcDAtODc6NS4xNAoJcDAtODY6NS4xNAoJcDAtODU6NS4xMwoJ cDAtODQ6NS4xMgoJcDAtODM6NS4xMgoJcDAtODI6NS4xMQoJcDAtODE6NS4x MQoJcDAtODA6NS4xMQoJcDAtNzk6NS4xMQoJcDAtNzg6NS4xMQoJcDAtNzc6 NS4xMQoJcDAtNzY6NS4xMAoJcDAtNzU6NS4xMAoJcDAtNzQ6NS4xMAoJcDAt NzM6NS4xMAoJcDAtNzI6NS45CglwMC03MTo1LjkKCXAwLTcwOjUuOAoJcDAt Njk6NS43CglwMC02ODo1LjYKCXAwLTY3OjUuNgoJcDAtNjY6NS42CglwMC02 NTo1LjYKCXAwLTY0OjUuNgoJcDAtNjM6NS42CglwMC02Mjo1LjYKCXAwLTYx OjUuNgoJcDAtNjA6NS42CglwMC01OTo1LjYKCXAwLTU4OjUuNgoJcDAtNTc6 NS42CglwMC01Njo1LjYKCXAwLTU1OjUuNgoJcDAtNTQ6NS42CglwMC01Mzo1 LjYKCXAwLTUyOjUuNgoJcDAtNTE6NS42CglwMC01MDo1LjYKCXAwLTQ5OjUu NgoJcDAtNDg6NS42CglwMC00Nzo1LjYKCXAwLTQ2OjUuNgoJcDAtNDU6NS42 CglwMC00NDo1LjYKCXAwLTQzOjUuNgoJcDAtNDI6NS42CglwMC00MTo1LjYK CXAwLTQwOjUuNgoJcDAtMzk6NS42CglwMC0zODo1LjYKCXAwLTM3OjUuNgoJ cDAtMzY6NS42CglwMC0zNTo1LjYKCXAwLTM0OjUuNQoJcDAtMzM6NS40Cglw MC0zMjo1LjQKCXAwLTMxOjUuMwoJcDAtMzA6NS4zCglwMC0yOTo1LjMKCXAw LTI4OjUuMwoJcDAtMjc6NS4zCglwMC0yNjo1LjMKCXAwLTI1OjUuMwoJcDAt MjQ6NS4yCglwMC0yMzo1LjIKCXAwLTIyOjUuMgoJcDAtMjE6NS4yCglwMC0y MDo1LjIKCXAwLTE5OjUuMgoJcDAtMTg6NS4yCglwMC0xNzo1LjIKCXAwLTE2 OjUuMgoJcDAtMTU6NS4yCglwMC0xNDo1LjIKCXAwLTEzOjUuMgoJcDAtMTI6 NS4yCglwMC0xMTo1LjIKCXAwLTEwOjUuMgoJcDAtOTo1LjIKCXAwLTg6NS4y CglwMC03OjUuMgoJcDAtNjo1LjIKCXAwLTU6NS4yCglwMC00OjUuMgoJcDAt Mzo1LjIKCXAwLTI6NC4yMAoJdjAtMjo0LjIwCgl2NS02LTQyOjQuMjAKCXY1 LTYtNDE6NC4yMAoJdjUtNi00MDo0LjE5Cgl2NS02LTM5OjQuMTgKCXY1LTYt Mzg6NC4xNwoJdjUtNi0zNzo0LjE3Cgl2NS02LTM2OjQuMTcKCXY1LTYtMzU6 NC4xNwoJdjUtNi0zNDo0LjE2Cgl2NS02LTMzOjQuMTYKCXY1LTYtMzI6NC4x NgoJdjUtNi0zMTo0LjE2Cgl2NS02LTMwOjQuMTYKCXY1LTYtMjk6NC4xNQoJ djUtNi0yODo0LjE1Cgl2NS02LTI3OjQuMTQKCXY1LTYtMjY6NC4xMwoJdjUt Ni0yNTo0LjEzCgl2NS02LTI0OjQuMTMKCXY1LTYtMjM6NC4xMwoJdjUtNi0y Mjo0LjEzCgl2NS02LTIxOjQuMTMKCXY1LTYtMjA6NC4xMwoJdjUtNi0xOTo0 LjEzCgl2NS02LTE4OjQuMTMKCXY1LTYtMTY6NC4xMwoJdjUtNi0xNTo0LjEz Cgl2NS02LTE0OjQuMTMKCXY1LTYtMTM6NC4xMwoJdjUtNi0xMjo0LjEzCgl2 NS02LTExOjQuMTIKCXY1LTYtMTA6NC4xMQoJdjUtNi05OjQuMTAKCXY1LTYt ODo0LjEwCgl2NS02LTc6NC4xMAoJdjUtNi02OjQuOQoJdjUtNi01OjQuOAoJ djUtNi00OjQuOAoJdjUtNi0zOjQuOAoJdjUtNi0yOjQuNwoJdjUtNi0xOjQu NwoJcTUtNi0xOjQuNwoJcTAtMzc6NC43CglxMC0zNjo0LjcKCXEwLTM1OjQu NwoJcTAtMzI6NC43CglxMC0zMTo0LjcKCXEwLTMwOjQuNgoJcTAtMjk6NC42 CglxMC0yODo0LjYKCXEwLTI3OjQuNgoJcTAtMjY6NC42CglxMC0yNTo0LjUK CXEwLTI0OjQuNQoJcTAtMjM6NC40CglxMC0yMjo0LjQKCXEwLTIxOjQuNAoJ cTAtMjA6NC40CglxMC0xOTo0LjQKCXEwLTE4OjQuMwoJcTAtMTc6NC4zCglx MC0xNjo0LjMKCXEwLTE1OjQuMwoJcTAtMTQ6NC4yCglxMC0xMzo0LjIKCXEw LTEyOjQuMgoJcTAtMTE6NC4xCglxMC0xMDo0LjEKCXEwLTk6NC4xCglxMC04 OjQuMQoJcTAtNzo0LjEKCXEwLTY6NC4xCglxMC01OjQuMQoJcTAtNDo0LjEK CXEwLTM6NC4xCglxMC0yOjQuMQoJcTAtMTo0LjEKCXY1LTQtNjc6My4yNQoJ djUtNC02NjozLjI0Cgl2NS00LTY1OjMuMjQKCXY1LTQtNjQ6My4yNAoJdjUt NC02MzozLjI0Cgl2NS00LTYyOjMuMjMKCXY1LTQtNjE6My4yMwoJdjUtNC02 MDozLjIzCgl2NS00LTU5OjMuMjIKCXY1LTQtNTg6My4yMgoJdjUtNC01Nzoz LjIyCgl2NS00LTU2OjMuMjIKCXY1LTQtNTU6My4yMgoJdjUtNC01NDozLjIy Cgl2NS00LTUzOjMuMjIKCXY1LTQtNTI6My4yMgoJdjUtNC01MTozLjIyCgl2 NS00LTUwOjMuMjIKCXY1LTQtNDk6My4yMgoJdjUtNC00ODozLjIyCgl2NS00 LTQ3OjMuMjIKCXY1LTQtNDY6My4yMgoJdjUtNC00NTozLjIyCgl2NS00LTQ0 OjMuMjIKCXY1LTQtNDM6My4yMgoJdjUtNC00MjozLjIyCgl2NS00LTQxOjMu MjIKCXY1LTQtNDA6My4yMgoJdjUtNC0zOTozLjIyCgl2NS00LTM4OjMuMjIK CXY1LTQtMzc6My4yMgoJdjUtNC0zNjozLjIyCgl2NS00LTM1OjMuMjIKCXY1 LTQtMzQ6My4yMgoJdjUtNC0zMzozLjIyCgl2NS00LTMyOjMuMjIKCXY1LTQt MzE6My4yMgoJdjUtNC0zMDozLjIyCgl2NS00LTI5OjMuMjIKCXY1LTQtMjg6 My4yMgoJdjUtNC0yNzozLjIyCgl2NS00LTI2OjMuMjIKCXY1LTQtMjU6My4y MgoJdjUtNC0yNDozLjIyCgl2NS00LTIzOjMuMjIKCXY1LTQtMjI6My4yMgoJ djUtNC0yMTozLjIxCgl2NS00LTIwOjMuMjEKCXY1LTQtMTk6My4yMQoJdjUt NC0xODozLjIxCgl2NS00LTE3OjMuMjEKCXY1LTQtMTY6My4yMAoJdjUtNC0x NTozLjIwCgl2NS00LTE0OjMuMjAKCXY1LTQtMTM6My4yMAoJdjUtNC0xMjoz LjIwCgl2NS00LTExOjMuMTkKCXY1LTQtMTA6My4xOQoJdjUtNC05OjMuMTkK CXY1LTQtODozLjE5Cgl2NS00LTc6My4xOQoJdjUtNC02OjMuMTkKCXY1LTQt NTozLjE5Cgl2NS00LTQ6My4xOQoJdjUtNC0zOjMuMTkKCXY1LTQtMTozLjE5 CglyMC04NDozLjE5CglyMC04MzozLjE4CglyMC04MjozLjE3CglyMC04MToz LjE3CglyMC04MDozLjE3CglyMC03OTozLjE2CglyMC03ODozLjE2CglyMC03 NzozLjE2CglyMC03NjozLjE2CglyMC03NTozLjE2CglyMC03NDozLjE2Cgly MC03MzozLjE2CglyMC03MjozLjE2CglyMC03MTozLjE2CglyMC03MDozLjE2 CglyMC02OTozLjE2CglyMC02ODozLjE2CglyMC02NzozLjE2CglyMC02Njoz LjE2CglyMC02NTozLjE2CglyMC02NDozLjE2CglyMC02MzozLjE2CglyMC02 MjozLjE1CglyMC02MTozLjE1CglyMC02MDozLjE1CglyMC01NzozLjE1Cgly MC01NjozLjE0CglyMC01NTozLjE0CglyMC01NDozLjEzCglyMC01MzozLjEy CglyMC01MjozLjEyCglyMC01MTozLjEyCglyMC01MDozLjEyCglyMC00OToz LjExCglyMC00ODozLjEwCglyMC00NzozLjEwCglyMC00NjozLjEwCglyMC00 NTozLjkKCXIwLTQ0OjMuOQoJcjAtNDM6My45CglyMC00MjozLjkKCXIwLTQx OjMuOQoJcjAtNDA6My45CglyMC0zOTozLjkKCXIwLTM4OjMuOQoJcjAtMzc6 My44CglyMC0zNjozLjgKCXIwLTM1OjMuOAoJcjAtMzQ6My44CglyMC0zMjoz LjgKCXIwLTMxOjMuOAoJcjAtMzA6My43CglyMC0yOTozLjcKCXIwLTI4OjMu NgoJcjAtMjc6My41CglyMC0yNjozLjQKCXIwLTI1OjMuNAoJcjAtMjQ6My40 CglyMC0yMzozLjQKCXIwLTIyOjMuNAoJcjAtMjE6My40CglyMC0yMDozLjMK CXIwLTE5OjMuMwoJcjAtMTg6My4zCglyMC0xNzozLjMKCXIwLTE2OjMuMwoJ cjAtMTU6My4zCglyMC0xNDozLjMKCXIwLTEzOjMuMwoJcjAtMTI6My4zCgly MC0xMTozLjIKCXIwLTEwOjMuMgoJcjAtOTozLjIKCXIwLTg6My4yCglyMC02 OjMuMgoJcjAtNTozLjIKCXIwLTQ6My4yCglyMC0zOjMuMQoJcjAtMjozLjEK CXIwLTE6My4xCgl2NS0yLTM4OjIuNDYKCXY1LTItMzc6Mi40NgoJdjUtMi0z NjoyLjQ1Cgl2NS0yLTM1OjIuNDUKCXY1LTItMzQ6Mi40NAoJdjUtMi0zMzoy LjQ0Cgl2NS0yLTMyOjIuNDQKCXY1LTItMzE6Mi40NAoJdjUtMi0zMDoyLjQ0 Cgl2NS0yLTI5OjIuNDQKCXY1LTItMjg6Mi40NAoJdjUtMi0yNzoyLjQ0Cgl2 NS0yLTI2OjIuNDQKCXY1LTItMjU6Mi40NAoJdjUtMi0yNDoyLjQ0Cgl2NS0y LTIzOjIuNDQKCXY1LTItMjI6Mi40NAoJdjUtMi0yMToyLjQ0Cgl2NS0yLTIw OjIuNDQKCXY1LTItMTk6Mi40MwoJdjUtMi0xNzoyLjQzCgl2NS0yLTE2OjIu NDMKCXY1LTItMTU6Mi40MwoJdjUtMi0xNDoyLjQyCgl2NS0yLTEzOjIuNDIK CXY1LTItMTI6Mi40MQoJdjUtMi0xMToyLjQxCgl2NS0yLTEwOjIuNDEKCXY1 LTItOToyLjQxCgl2NS0yLTg6Mi40MQoJdjUtMi03OjIuNDEKCXY1LTItNjoy LjQxCgl2NS0yLTU6Mi40MAoJdjUtMi00OjIuNDAKCXY1LTItMzoyLjQwCgl2 NS0yLTI6Mi40MAoJdjUtMi0xOjIuNDAKCXMwLTk3OjIuNDAKCXMwLTk2OjIu NDAKCXMwLTk1OjIuNDAKCXMwLTk0OjIuNDAKCXMwLTkzOjIuNDAKCXMwLTky OjIuNDAKCXMwLTkxOjIuMzkKCXMwLTkwOjIuMzkKCXMwLTg5OjIuMzgKCXMw LTg4OjIuMzgKCXMwLTg3OjIuMzgKCXMwLTg2OjIuMzcKCXMwLTg1OjIuMzcK CXMwLTg0OjIuMzcKCXMwLTgzOjIuMzYKCXMwLTgyOjIuMzYKCXMwLTgxOjIu MzYKCXMwLTgwOjIuMzYKCXMwLTc5OjIuMzUKCXMwLTc4OjIuMzUKCXMwLTc3 OjIuMzQKCXMwLTc2OjIuMzQKCXMwLTc1OjIuMzQKCXMwLTczOjIuMzMKCXMw LTY5OjIuMzMKCXMwLTY4OjIuMzMKCXMwLTY3OjIuMzMKCXMwLTY2OjIuMzMK CXMwLTY1OjIuMzMKCXMwLTY0OjIuMzMKCXMwLTYzOjIuMzIKCXMwLTYyOjIu MzEKCXMwLTYxOjIuMzEKCXMwLTYwOjIuMzEKCXMwLTU5OjIuMzEKCXMwLTU4 OjIuMzEKCXMwLTU3OjIuMzEKCXMwLTU2OjIuMzEKCXMwLTU1OjIuMzAKCXMw LTU0OjIuMjkKCXMwLTUzOjIuMjkKCXMwLTUyOjIuMjkKCXMwLTUxOjIuMjkK CXMwLTUwOjIuMjgKCXMwLTQ5OjIuMjcKCXMwLTQ4OjIuMjcKCXMwLTQ3OjIu MjcKCXMwLTQ2OjIuMjYKCXMwLTQ1OjIuMjUKCXMwLTQ0OjIuMjUKCXMwLTQz OjIuMjUKCXMwLTQyOjIuMjQKCXMwLTQxOjIuMjQKCXMwLTQwOjIuMjMKCXMw LTM5OjIuMjIKCXMwLTM4OjIuMjIKCXMwLTM3OjIuMjIKCXMwLTM2OjIuMjEK CXMwLTM1OjIuMjAKCXMwLTMyOjIuMTcKCXMwLTMxOjIuMTcKCXMwLTMwOjIu MTcKCXMwLTI5OjIuMTYKCXMwLTI4OjIuMTYKCXMwLTI3OjIuMTUKCXMwLTI2 OjIuMTQKCXMwLTI1OjIuMTQKCXMwLTI0OjIuMTQKCXMwLTIzOjIuMTMKCXMw LTIyOjIuMTIKCXMwLTIxOjIuMTEKCXMwLTIwOjIuMTAKCXMwLTE4OjIuOQoJ czAtMTc6Mi44CglzMC0xNjoyLjgKCXMwLTE1OjIuOAoJczAtMTQ6Mi43Cglz MC0xMzoyLjcKCXMwLTEyOjIuNgoJczAtMTE6Mi42CglzMC0xMDoyLjUKCXMw LTk6Mi40CglzMC04OjIuNAoJczAtNzoyLjQKCXMwLTY6Mi40CglzMC01OjIu NAoJczAtNDoyLjMKCXMwLTM6Mi4zCglzMC0wMjoyLjIKCXMwLTEtMToyLjEK CXMwLTE6Mi4xCgl2NS0wLTE1LWZpbmFsOjEuMzcKCXY1LTAtMTU6MS4zNwoJ djUtMC0xNDoxLjM3Cgl2NS0wLTEzOjEuMzcKCXY1LTAtMTI6MS4zNwoJdjUt MC0xMToxLjM3Cgl2NS0wLTEwOjEuMzcKCXY1LTAtOToxLjM3Cgl2NS0wLTg6 MS4zNwoJdjUtMC03OjEuMzcKCXY1LTAtNjoxLjM3Cgl2NS0wLTU6MS4zNwoJ djUtMC00OjEuMzcKCXY1LTAtMzoxLjM2Cgl2NS0wLTI6MS4zNgoJdjUtMC0x OjEuMzYKCXY1LTAtMDoxLjM1CglkNS0wOjEuMzUKCWQwLTk5LTI4OjEuMzUK CWQwLTk5LTI3OjEuMzQKCWQwLTk5LTI2OjEuMzQKCWQwLTk5LTI1OjEuMzQK CWQwLTk5LTI0OjEuMzQKCWQwLTk5LTIzOjEuMzMKCWQwLTk5LTIyOjEuMzIK CWQwLTk5LTIxOjEuMzIKCWQwLTk5LTIwOjEuMzIKCWQwLTk5LTE5OjEuMzIK CWQwLTk5LTE4OjEuMzIKCWQwLTk5LTE3OjEuMzIKCWQwLTk5LTE2OjEuMzIK CWQwLTk5LTE1OjEuMzEKCWQwLTk5LTE0OjEuMzEKCWQwLTk5LTEzOjEuMzEK CWQwLTk5LTEyOjEuMzEKCWQwLTk5LTExOjEuMzEKCWQwLTk5LTEwOjEuMzEK CWQwLTk5LTk6MS4zMAoJZDAtOTktODoxLjMwCglkMC05OS03OjEuMzAKCWQw LTk5LTY6MS4yOQoJZDAtOTktNToxLjI5CglkMC05OS00OjEuMjkKCWQwLTk5 LTM6MS4yOQoJZDAtOTktMjoxLjI5CglkMC05OS0xOjEuMjkKCXYwLTk5OjEu MjkKCWQwLTk4LTM6MS4yOAoJZDAtOTgtMjoxLjI4CglkMC05OC0xOjEuMjgK CWQwLTk4OjEuMjcKCWQwLTk3LTI6MS4yNwoJZDAtOTctMToxLjI3CglkMC05 NzoxLjI3CglkMC05NjoxLjI2CglkMC05NToxLjI2CglkMC05NDoxLjI1Cglk MC05MzoxLjI0CglkMC05MjoxLjIzCglkMC05MS0xOjEuMjMKCWQwLTkxOjEu MjMKCXYwLTkwOjEuMjIKCWQwLTg5OjEuMjIKCWQwLTg4OjEuMjEKCWQwLTg3 OjEuMjEKCWQwLTg2OjEuMjAKCWQwLTg1OjEuMTkKCWQwLTg0OjEuMTgKCWQw LTgzOjEuMTcKCWQwLTgyOjEuMTcKCWQwLTgxOjEuMTcKCXYwLTgwOjEuMTcK CWQwLTc5OjEuMTcKCWQwLTc4OjEuMTcKCWQwLTc3OjEuMTcKCWQwLTc2LTE6 MS4xNwoJZDAtNzY6MS4xNwoJZDAtNzU6MS4xNgoJZDAtNzQ6MS4xNQoJZDAt NzM6MS4xNQoJZDAtNzI6MS4xNAoJZDAtNzE6MS4xNAoJdjAtNzA6MS4xMwoJ ZDAtNjY6MS4xMgoJZDAtNjU6MS4xMgoJZDAtNjQ6MS4xMgoJZDAtNjM6MS4x MgoJZDAtNjI6MS4xMQoJZDAtNjE6MS4xMQoJdjAtNjA6MS4xMAoJZDAtNTU6 MS45CglkMC01NDoxLjkKCWQwLTUzOjEuOQoJZDAtNTI6MS44CglkMC01MTox LjcKCXYwLTUwOjEuNgoJZDAtNDU6MS41CglkMC00NDoxLjUKCWQwLTQzOjEu NQoJZDAtNDI6MS41CglkMC00MToxLjUKCXYwLTQwOjEuNQoJdjAtMzA6MS40 Cgl2MC0yMDoxLjMKCXYwLTEwOjEuMgoJdjAtNToxLjEuMS4xCglsYXJzaTox LjEuMTsKbG9ja3M7IHN0cmljdDsKY29tbWVudAlAOyBAOwoKCjcuMTYKZGF0 ZQkyMDA1LjA4LjAxLjA4LjM3LjE0OwlhdXRob3IgeWFtYW9rYTsJc3RhdGUg RXhwOwpicmFuY2hlczsKbmV4dAk3LjE1OwoKNy4xNQpkYXRlCTIwMDUuMDcu MTYuMDkuMzMuMTk7CWF1dGhvciByZnJhbmNvaXNlOwlzdGF0ZSBFeHA7CmJy YW5jaGVzOwpuZXh0CTcuMTQ7Cgo3LjE0CmRhdGUJMjAwNS4wNy4wNS4yMi4z NC40OTsJYXV0aG9yIG1pbGVzOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0 CTcuMTM7Cgo3LjEzCmRhdGUJMjAwNS4wNS4zMC4xNC40NS4xMTsJYXV0aG9y IHJzdGVpYjsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk3LjEyOwoKNy4x MgpkYXRlCTIwMDQuMDkuMjQuMDkuNTEuNDI7CWF1dGhvciB5YW1hb2thOwlz dGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTcuMTE7Cgo3LjExCmRhdGUJMjAw NC4wOC4zMC4wOC4yMC41MzsJYXV0aG9yIHlhbWFva2E7CXN0YXRlIEV4cDsK YnJhbmNoZXM7Cm5leHQJNy4xMDsKCjcuMTAKZGF0ZQkyMDA0LjA1LjIyLjIz LjI5LjEwOwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5l eHQJNy45OwoKNy45CmRhdGUJMjAwNC4wNS4yMC4wOC4wMi4zOTsJYXV0aG9y IG1pbGVzOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTcuODsKCjcuOApk YXRlCTIwMDQuMDQuMjUuMTguMDEuMzM7CWF1dGhvciBoYXJkZXI7CXN0YXRl IEV4cDsKYnJhbmNoZXM7Cm5leHQJNy43OwoKNy43CmRhdGUJMjAwNC4wMi4w NC4wMi4yNC40NDsJYXV0aG9yIGhhcmRlcjsJc3RhdGUgRXhwOwpicmFuY2hl czsKbmV4dAk3LjY7Cgo3LjYKZGF0ZQkyMDA0LjAxLjA4LjIzLjUyLjA3Owlh dXRob3IgeWFtYW9rYTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk3LjU7 Cgo3LjUKZGF0ZQkyMDA0LjAxLjA2LjA2LjIwLjMzOwlhdXRob3IgbGFyc2k7 CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJNy40OwoKNy40CmRhdGUJMjAw NC4wMS4wNS4yMy4wMS4xNjsJYXV0aG9yIGhhcmRlcjsJc3RhdGUgRXhwOwpi cmFuY2hlczsKbmV4dAk3LjM7Cgo3LjMKZGF0ZQkyMDA0LjAxLjA1LjIyLjE2 LjU4OwlhdXRob3IgaGFyZGVyOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0 CTcuMjsKCjcuMgpkYXRlCTIwMDQuMDEuMDUuMTYuMzAuMTU7CWF1dGhvciBo YXJkZXI7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJNy4xOwoKNy4xCmRh dGUJMjAwNC4wMS4wNC4yMS41MS4wMTsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBF eHA7CmJyYW5jaGVzOwpuZXh0CTYuMjg7Cgo2LjI4CmRhdGUJMjAwMy4xMi4w Ny4xNS4zMy40ODsJYXV0aG9yIGhhcmRlcjsJc3RhdGUgRXhwOwpicmFuY2hl cwoJNi4yOC4yLjE7Cm5leHQJNi4yNzsKCjYuMjcKZGF0ZQkyMDAzLjEwLjE4 LjIzLjI0LjUyOwlhdXRob3IgaGFyZGVyOwlzdGF0ZSBFeHA7CmJyYW5jaGVz OwpuZXh0CTYuMjY7Cgo2LjI2CmRhdGUJMjAwMy4xMC4xMi4wMi4zNi4zODsJ YXV0aG9yIGhhcmRlcjsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk2LjI1 OwoKNi4yNQpkYXRlCTIwMDMuMDUuMDEuMTQuMjMuMTU7CWF1dGhvciBsYXJz aTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk2LjI0OwoKNi4yNApkYXRl CTIwMDMuMDMuMjEuMDcuMzAuNDU7CWF1dGhvciBrZ3JlaW5lcjsJc3RhdGUg RXhwOwpicmFuY2hlczsKbmV4dAk2LjIzOwoKNi4yMwpkYXRlCTIwMDMuMDMu MjEuMDcuMTguMTg7CWF1dGhvciBrZ3JlaW5lcjsJc3RhdGUgRXhwOwpicmFu Y2hlczsKbmV4dAk2LjIyOwoKNi4yMgpkYXRlCTIwMDMuMDMuMDMuMTcuNTIu MzI7CWF1dGhvciBoYXJkZXI7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJ Ni4yMTsKCjYuMjEKZGF0ZQkyMDAyLjEyLjE0LjIzLjA5LjA1OwlhdXRob3Ig aGFyZGVyOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTYuMjA7Cgo2LjIw CmRhdGUJMjAwMi4xMS4yMS4xNi4xMS4wMjsJYXV0aG9yIGxhcnNpOwlzdGF0 ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTYuMTk7Cgo2LjE5CmRhdGUJMjAwMi4x MS4yMS4xNi4xMC40ODsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5j aGVzOwpuZXh0CTYuMTg7Cgo2LjE4CmRhdGUJMjAwMi4xMS4yMS4xNi4wMS40 NzsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTYu MTc7Cgo2LjE3CmRhdGUJMjAwMi4xMS4yMS4xNi4wMS40MDsJYXV0aG9yIGxh cnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTYuMTY7Cgo2LjE2CmRh dGUJMjAwMi4wNC4xMi4xMS41MS4wMTsJYXV0aG9yIHpzaDsJc3RhdGUgRXhw OwpicmFuY2hlczsKbmV4dAk2LjE1OwoKNi4xNQpkYXRlCTIwMDIuMDMuMDUu MTMuMTUuMDA7CWF1dGhvciB6c2g7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5l eHQJNi4xNDsKCjYuMTQKZGF0ZQkyMDAyLjAyLjIxLjIzLjE3LjU2OwlhdXRo b3IgenNoOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTYuMTM7Cgo2LjEz CmRhdGUJMjAwMi4wMS4yOS4xMy4xOS41MDsJYXV0aG9yIGthcmw7CXN0YXRl IEV4cDsKYnJhbmNoZXM7Cm5leHQJNi4xMjsKCjYuMTIKZGF0ZQkyMDAyLjAx LjI5LjA1LjMyLjEzOwlhdXRob3IgenNoOwlzdGF0ZSBFeHA7CmJyYW5jaGVz OwpuZXh0CTYuMTE7Cgo2LjExCmRhdGUJMjAwMS4xMi4xNC4wMy4xNC4zODsJ YXV0aG9yIHpzaDsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk2LjEwOwoK Ni4xMApkYXRlCTIwMDEuMTEuMjguMjEuMjUuNDc7CWF1dGhvciB6c2g7CXN0 YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJNi45OwoKNi45CmRhdGUJMjAwMS4w Ny4yNS4wMC4xNy4wOTsJYXV0aG9yIHpzaDsJc3RhdGUgRXhwOwpicmFuY2hl czsKbmV4dAk2Ljg7Cgo2LjgKZGF0ZQkyMDAxLjA3LjEzLjE5LjMwLjQ3Owlh dXRob3IgenNoOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTYuNzsKCjYu NwpkYXRlCTIwMDEuMDYuMTEuMTcuMTUuNTE7CWF1dGhvciB6c2g7CXN0YXRl IEV4cDsKYnJhbmNoZXM7Cm5leHQJNi42OwoKNi42CmRhdGUJMjAwMS4wMy4z MC4yMi40MS40MzsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVz OwpuZXh0CTYuNTsKCjYuNQpkYXRlCTIwMDEuMDMuMTUuMTIuNTcuMjI7CWF1 dGhvciB6c2g7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJNi40OwoKNi40 CmRhdGUJMjAwMS4wMi4wNy4xNy4wMy4zMDsJYXV0aG9yIHpzaDsJc3RhdGUg RXhwOwpicmFuY2hlczsKbmV4dAk2LjM7Cgo2LjMKZGF0ZQkyMDAxLjAyLjA2 LjIzLjE1LjI2OwlhdXRob3IgYWJyYWhhbTsJc3RhdGUgRXhwOwpicmFuY2hl czsKbmV4dAk2LjI7Cgo2LjIKZGF0ZQkyMDAwLjEyLjI4LjE3LjQ0LjIwOwlh dXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJNi4xOwoK Ni4xCmRhdGUJMjAwMC4xMS4wMi4xNy41Mi4xMDsJYXV0aG9yIHpzaDsJc3Rh dGUgRXhwOwpicmFuY2hlczsKbmV4dAk2LjA7Cgo2LjAKZGF0ZQkyMDAwLjEw LjI3LjIzLjExLjQ3OwlhdXRob3IgenNoOwlzdGF0ZSBFeHA7CmJyYW5jaGVz OwpuZXh0CTUuMjk7Cgo1LjI5CmRhdGUJMjAwMC4xMC4xNy4yMC4zNC40MjsJ YXV0aG9yIGphczsJc3RhdGUgRXhwOwpicmFuY2hlcwoJNS4yOS4yLjE7Cm5l eHQJNS4yODsKCjUuMjgKZGF0ZQkyMDAwLjA2LjA1LjAyLjQyLjM1OwlhdXRo b3IgenNoOwlzdGF0ZSBFeHA7CmJyYW5jaGVzCgk1LjI4LjIuMTsKbmV4dAk1 LjI3OwoKNS4yNwpkYXRlCTIwMDAuMDUuMTMuMDIuMjkuMjg7CWF1dGhvciB6 c2g7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJNS4yNjsKCjUuMjYKZGF0 ZQkyMDAwLjA1LjEzLjAxLjAwLjQ5OwlhdXRob3IgenNoOwlzdGF0ZSBFeHA7 CmJyYW5jaGVzOwpuZXh0CTUuMjU7Cgo1LjI1CmRhdGUJMjAwMC4wNS4xMi4x OS4yNC40ODsJYXV0aG9yIHpzaDsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4 dAk1LjI0OwoKNS4yNApkYXRlCTIwMDAuMDUuMDYuMTkuMTAuMDQ7CWF1dGhv ciBmdzsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk1LjIzOwoKNS4yMwpk YXRlCTIwMDAuMDQuMjMuMTkuMTguMjY7CWF1dGhvciBsYXJzaTsJc3RhdGUg RXhwOwpicmFuY2hlczsKbmV4dAk1LjIyOwoKNS4yMgpkYXRlCTIwMDAuMDQu MjEuMTMuNTcuMzM7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hl czsKbmV4dAk1LjIxOwoKNS4yMQpkYXRlCTIwMDAuMDMuMTMuMTkuNDMuMTM7 CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk1LjIw OwoKNS4yMApkYXRlCTIwMDAuMDEuMDUuMTYuMDEuMTQ7CWF1dGhvciBsYXJz aTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk1LjE5OwoKNS4xOQpkYXRl CTk5LjEyLjA0LjA2LjM4LjUxOwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsK YnJhbmNoZXM7Cm5leHQJNS4xODsKCjUuMTgKZGF0ZQk5OS4xMi4wNC4wMS4x MC41NzsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0 CTUuMTc7Cgo1LjE3CmRhdGUJOTkuMTIuMDIuMDQuMDEuMDM7CWF1dGhvciBs YXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk1LjE2OwoKNS4xNgpk YXRlCTk5LjExLjA2LjIwLjQzLjI5OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4 cDsKYnJhbmNoZXM7Cm5leHQJNS4xNTsKCjUuMTUKZGF0ZQk5OS4wOC4yNy4x My4xOC4xMjsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpu ZXh0CTUuMTQ7Cgo1LjE0CmRhdGUJOTkuMDYuMTMuMDcuMzEuMDM7CWF1dGhv ciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk1LjEzOwoKNS4x MwpkYXRlCTk5LjA2LjEyLjAwLjIwLjIwOwlhdXRob3IgbGFyc2k7CXN0YXRl IEV4cDsKYnJhbmNoZXM7Cm5leHQJNS4xMjsKCjUuMTIKZGF0ZQk5OS4wNC4x OC4xMi40MC4yMjsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVz OwpuZXh0CTUuMTE7Cgo1LjExCmRhdGUJOTkuMDIuMjAuMjEuMzUuMTU7CWF1 dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk1LjEwOwoK NS4xMApkYXRlCTk5LjAxLjIzLjE0LjI0LjAwOwlhdXRob3IgbGFyc2k7CXN0 YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJNS45OwoKNS45CmRhdGUJOTkuMDEu MTYuMDMuMTYuMjQ7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hl czsKbmV4dAk1Ljg7Cgo1LjgKZGF0ZQk5OS4wMS4xNS4yMC41MS4wNjsJYXV0 aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTUuNzsKCjUu NwpkYXRlCTk5LjAxLjAzLjEzLjMyLjIwOwlhdXRob3IgbGFyc2k7CXN0YXRl IEV4cDsKYnJhbmNoZXM7Cm5leHQJNS42OwoKNS42CmRhdGUJOTguMTAuMTku MjIuMjQuNTU7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsK bmV4dAk1LjU7Cgo1LjUKZGF0ZQk5OC4xMC4xMS4wMC4zMC4yMjsJYXV0aG9y IGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTUuNDsKCjUuNApk YXRlCTk4LjA5LjI0LjAwLjMwLjUxOwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4 cDsKYnJhbmNoZXM7Cm5leHQJNS4zOwoKNS4zCmRhdGUJOTguMDkuMTEuMDYu MTAuMDU7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4 dAk1LjI7Cgo1LjIKZGF0ZQk5OC4wOC4yOS4xNy40Ny41MDsJYXV0aG9yIGxh cnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTUuMTsKCjUuMQpkYXRl CTk4LjA4LjI5LjE3LjQzLjEzOwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsK YnJhbmNoZXM7Cm5leHQJNC4yMDsKCjQuMjAKZGF0ZQk5OC4wOC4yNy4wOS4w NC40MDsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0 CTQuMTk7Cgo0LjE5CmRhdGUJOTguMDguMjcuMDcuMzAuMjE7CWF1dGhvciBs YXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk0LjE4OwoKNC4xOApk YXRlCTk4LjA4LjIyLjA4LjI4LjQ3OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4 cDsKYnJhbmNoZXM7Cm5leHQJNC4xNzsKCjQuMTcKZGF0ZQk5OC4wOC4xNC4x OS40Mi4zOTsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpu ZXh0CTQuMTY7Cgo0LjE2CmRhdGUJOTguMDguMDkuMTMuNDYuNDQ7CWF1dGhv ciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk0LjE1OwoKNC4x NQpkYXRlCTk4LjA4LjA0LjAzLjI1LjI4OwlhdXRob3IgbGFyc2k7CXN0YXRl IEV4cDsKYnJhbmNoZXM7Cm5leHQJNC4xNDsKCjQuMTQKZGF0ZQk5OC4wNy4y Ny4wMS4yNy4yODsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVz OwpuZXh0CTQuMTM7Cgo0LjEzCmRhdGUJOTguMDYuMjQuMDEuMjkuMDM7CWF1 dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk0LjEyOwoK NC4xMgpkYXRlCTk4LjA2LjAzLjAyLjA0LjAyOwlhdXRob3IgbGFyc2k7CXN0 YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJNC4xMTsKCjQuMTEKZGF0ZQk5OC4w Ni4wMS4wMi4zMS41MjsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5j aGVzOwpuZXh0CTQuMTA7Cgo0LjEwCmRhdGUJOTguMDQuMjkuMjAuNDguNTY7 CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk0Ljk7 Cgo0LjkKZGF0ZQk5OC4wNC4yNi4yMi4yNi4zMjsJYXV0aG9yIGxhcnNpOwlz dGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTQuODsKCjQuOApkYXRlCTk4LjAz LjE5LjE0LjE4LjI1OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNo ZXM7Cm5leHQJNC43OwoKNC43CmRhdGUJOTguMDIuMjIuMDMuMjEuNDg7CWF1 dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk0LjY7Cgo0 LjYKZGF0ZQk5OC4wMi4xNC4xOC4yOC4zODsJYXV0aG9yIGxhcnNpOwlzdGF0 ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTQuNTsKCjQuNQpkYXRlCTk4LjAyLjEx LjE0LjA1LjI0OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7 Cm5leHQJNC40OwoKNC40CmRhdGUJOTguMDEuMDQuMTAuMzIuMDI7CWF1dGhv ciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk0LjM7Cgo0LjMK ZGF0ZQk5Ny4xMS4yNC4xNy40OC4yMzsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBF eHA7CmJyYW5jaGVzOwpuZXh0CTQuMjsKCjQuMgpkYXRlCTk3LjEwLjAzLjIz LjEwLjIyOwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5l eHQJNC4xOwoKNC4xCmRhdGUJOTcuMDkuMTMuMTkuMzUuMTk7CWF1dGhvciBs YXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkzLjI1OwoKMy4yNQpk YXRlCTk3LjA5LjEzLjE3LjUxLjIzOwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4 cDsKYnJhbmNoZXM7Cm5leHQJMy4yNDsKCjMuMjQKZGF0ZQk5Ny4wNy4xMi4x Ny40OC40NTsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpu ZXh0CTMuMjM7CgozLjIzCmRhdGUJOTcuMDYuMjkuMTkuMzUuMDU7CWF1dGhv ciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkzLjIyOwoKMy4y MgpkYXRlCTk3LjAzLjA3LjIyLjM3LjI2OwlhdXRob3IgbGFyc2k7CXN0YXRl IEV4cDsKYnJhbmNoZXM7Cm5leHQJMy4yMTsKCjMuMjEKZGF0ZQk5Ny4wMy4w NS4wNi4xMy4yMzsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVz OwpuZXh0CTMuMjA7CgozLjIwCmRhdGUJOTcuMDMuMDUuMDUuNDcuMzk7CWF1 dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkzLjE5OwoK My4xOQpkYXRlCTk3LjAzLjA1LjAyLjAwLjU4OwlhdXRob3IgbGFyc2k7CXN0 YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMy4xODsKCjMuMTgKZGF0ZQk5Ny4w My4wNS4wMS41Ni41NDsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5j aGVzOwpuZXh0CTMuMTc7CgozLjE3CmRhdGUJOTcuMDMuMDUuMDEuNDQuMDc7 CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkzLjE2 OwoKMy4xNgpkYXRlCTk3LjAzLjA1LjAwLjI2LjExOwlhdXRob3IgbGFyc2k7 CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMy4xNTsKCjMuMTUKZGF0ZQk5 Ny4wMy4wNS4wMC4xMC41MzsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJy YW5jaGVzOwpuZXh0CTMuMTQ7CgozLjE0CmRhdGUJOTcuMDMuMDUuMDAuMDMu MTg7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkz LjEzOwoKMy4xMwpkYXRlCTk3LjAzLjA0LjIzLjU5LjM2OwlhdXRob3IgbGFy c2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMy4xMjsKCjMuMTIKZGF0 ZQk5Ny4wMy4wNC4yMy40NC40OTsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7 CmJyYW5jaGVzOwpuZXh0CTMuMTE7CgozLjExCmRhdGUJOTcuMDMuMDQuMjMu NDEuMTE7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4 dAkzLjEwOwoKMy4xMApkYXRlCTk3LjAzLjA0LjIzLjI5LjM5OwlhdXRob3Ig bGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMy45OwoKMy45CmRh dGUJOTcuMDMuMDQuMjMuMDEuMDA7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhw OwpicmFuY2hlczsKbmV4dAkzLjg7CgozLjgKZGF0ZQk5Ny4wMy4wNC4yMi40 MS4wMjsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0 CTMuNzsKCjMuNwpkYXRlCTk3LjAzLjA0LjIyLjM0LjAyOwlhdXRob3IgbGFy c2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMy42OwoKMy42CmRhdGUJ OTcuMDMuMDQuMjIuMjkuNDc7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpi cmFuY2hlczsKbmV4dAkzLjU7CgozLjUKZGF0ZQk5Ny4wMy4wNC4yMi4yNi4w NzsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTMu NDsKCjMuNApkYXRlCTk3LjAzLjA0LjIyLjAxLjQwOwlhdXRob3IgbGFyc2k7 CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMy4zOwoKMy4zCmRhdGUJOTcu MDMuMDQuMjEuMjQuMDU7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFu Y2hlczsKbmV4dAkzLjI7CgozLjIKZGF0ZQk5Ny4wMy4wNC4yMS4wMS4yMzsJ YXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTMuMTsK CjMuMQpkYXRlCTk3LjAzLjA0LjIwLjQ0LjM1OwlhdXRob3IgbGFyc2k7CXN0 YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMi40NjsKCjIuNDYKZGF0ZQk5Ny4w My4wNC4yMC4xOC4xMTsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5j aGVzOwpuZXh0CTIuNDU7CgoyLjQ1CmRhdGUJOTcuMDMuMDQuMjAuMTMuMTc7 CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkyLjQ0 OwoKMi40NApkYXRlCTk3LjAzLjA0LjE5LjM2LjM0OwlhdXRob3IgbGFyc2k7 CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMi40MzsKCjIuNDMKZGF0ZQk5 Ny4wMy4wNC4xOS4yNS4yNDsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJy YW5jaGVzOwpuZXh0CTIuNDI7CgoyLjQyCmRhdGUJOTcuMDMuMDQuMTkuMTku NTg7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAky LjQxOwoKMi40MQpkYXRlCTk3LjAzLjA0LjE5LjAyLjQ0OwlhdXRob3IgbGFy c2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMi40MDsKCjIuNDAKZGF0 ZQk5Ny4wMy4wNC4xMC4xMC4xNzsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7 CmJyYW5jaGVzOwpuZXh0CTIuMzk7CgoyLjM5CmRhdGUJOTcuMDMuMDQuMDku NDEuNDQ7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4 dAkyLjM4OwoKMi4zOApkYXRlCTk3LjAzLjA0LjA5LjMzLjA0OwlhdXRob3Ig bGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMi4zNzsKCjIuMzcK ZGF0ZQk5Ny4wMy4wNC4wOS4yNC40MDsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBF eHA7CmJyYW5jaGVzOwpuZXh0CTIuMzY7CgoyLjM2CmRhdGUJOTcuMDMuMDQu MDkuMTIuMTU7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsK bmV4dAkyLjM1OwoKMi4zNQpkYXRlCTk3LjAzLjA0LjA5LjA2LjM4OwlhdXRo b3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMi4zNDsKCjIu MzQKZGF0ZQk5Ny4wMy4wNC4wOC41OS4wMDsJYXV0aG9yIGxhcnNpOwlzdGF0 ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTIuMzM7CgoyLjMzCmRhdGUJOTcuMDMu MDQuMDguNDIuMTk7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hl czsKbmV4dAkyLjMyOwoKMi4zMgpkYXRlCTk3LjAzLjA0LjA4LjM5LjU0Owlh dXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMi4zMTsK CjIuMzEKZGF0ZQk5Ny4wMy4wNC4wOC4yMy40NTsJYXV0aG9yIGxhcnNpOwlz dGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTIuMzA7CgoyLjMwCmRhdGUJOTcu MDMuMDQuMDguMjEuMTA7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFu Y2hlczsKbmV4dAkyLjI5OwoKMi4yOQpkYXRlCTk3LjAzLjA0LjA4LjA4LjQw OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMi4y ODsKCjIuMjgKZGF0ZQk5Ny4wMy4wNC4wOC4wNS40MTsJYXV0aG9yIGxhcnNp OwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTIuMjc7CgoyLjI3CmRhdGUJ OTcuMDMuMDQuMDcuNTguMzg7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpi cmFuY2hlczsKbmV4dAkyLjI2OwoKMi4yNgpkYXRlCTk3LjAzLjA0LjA3LjU2 LjAzOwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJ Mi4yNTsKCjIuMjUKZGF0ZQk5Ny4wMy4wNC4wNy40OS4wMTsJYXV0aG9yIGxh cnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTIuMjQ7CgoyLjI0CmRh dGUJOTcuMDMuMDQuMDcuNDQuMjc7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhw OwpicmFuY2hlczsKbmV4dAkyLjIzOwoKMi4yMwpkYXRlCTk3LjAzLjA0LjA3 LjQyLjA1OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5l eHQJMi4yMjsKCjIuMjIKZGF0ZQk5Ny4wMy4wNC4wNy4zMy4wMjsJYXV0aG9y IGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTIuMjE7CgoyLjIx CmRhdGUJOTcuMDMuMDQuMDcuMjkuNTY7CWF1dGhvciBsYXJzaTsJc3RhdGUg RXhwOwpicmFuY2hlczsKbmV4dAkyLjIwOwoKMi4yMApkYXRlCTk3LjAzLjA0 LjA3LjI2LjQ1OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7 Cm5leHQJMi4xOTsKCjIuMTkKZGF0ZQk5Ny4wMy4wNC4wNy4yMi41NjsJYXV0 aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTIuMTg7Cgoy LjE4CmRhdGUJOTcuMDMuMDQuMDcuMDYuMjY7CWF1dGhvciBsYXJzaTsJc3Rh dGUgRXhwOwpicmFuY2hlczsKbmV4dAkyLjE3OwoKMi4xNwpkYXRlCTk3LjAz LjA0LjA2LjU5LjE1OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNo ZXM7Cm5leHQJMi4xNjsKCjIuMTYKZGF0ZQk5Ny4wMy4wNC4wNi41Mi40OTsJ YXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTIuMTU7 CgoyLjE1CmRhdGUJOTcuMDMuMDQuMDYuNDguMTk7CWF1dGhvciBsYXJzaTsJ c3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkyLjE0OwoKMi4xNApkYXRlCTk3 LjAzLjA0LjA2LjM3LjQ1OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJh bmNoZXM7Cm5leHQJMi4xMzsKCjIuMTMKZGF0ZQk5Ny4wMy4wNC4wNi4zNS4w NjsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTIu MTI7CgoyLjEyCmRhdGUJOTcuMDMuMDQuMDYuMzEuNDM7CWF1dGhvciBsYXJz aTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkyLjExOwoKMi4xMQpkYXRl CTk3LjAzLjA0LjA2LjI4LjM5OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsK YnJhbmNoZXM7Cm5leHQJMi4xMDsKCjIuMTAKZGF0ZQk5Ny4wMy4wNC4wNS4x Ni4yNTsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0 CTIuOTsKCjIuOQpkYXRlCTk3LjAzLjA0LjA1LjE0LjI2OwlhdXRob3IgbGFy c2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMi44OwoKMi44CmRhdGUJ OTcuMDMuMDQuMDUuMDYuMTA7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpi cmFuY2hlczsKbmV4dAkyLjc7CgoyLjcKZGF0ZQk5Ny4wMy4wNC4wNC40MS40 MTsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTIu NjsKCjIuNgpkYXRlCTk3LjAzLjA0LjA0LjM4LjU0OwlhdXRob3IgbGFyc2k7 CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMi41OwoKMi41CmRhdGUJOTcu MDMuMDQuMDQuMzcuMzI7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFu Y2hlczsKbmV4dAkyLjQ7CgoyLjQKZGF0ZQk5Ny4wMy4wNC4wNC4zMC4zNzsJ YXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTIuMzsK CjIuMwpkYXRlCTk3LjAzLjA0LjA0LjI3LjIxOwlhdXRob3IgbGFyc2k7CXN0 YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMi4yOwoKMi4yCmRhdGUJOTcuMDMu MDQuMDQuMjUuNDI7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hl czsKbmV4dAkyLjE7CgoyLjEKZGF0ZQk5Ny4wMy4wNC4wNC4xNy40ODsJYXV0 aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTEuMzc7Cgox LjM3CmRhdGUJOTcuMDMuMDQuMDMuNTUuMDg7CWF1dGhvciBsYXJzaTsJc3Rh dGUgRXhwOwpicmFuY2hlczsKbmV4dAkxLjM2OwoKMS4zNgpkYXRlCTk3LjAz LjA0LjAzLjQwLjE5OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNo ZXM7Cm5leHQJMS4zNTsKCjEuMzUKZGF0ZQk5Ny4wMy4wNC4wMy4zMC41OTsJ YXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTEuMzQ7 CgoxLjM0CmRhdGUJOTcuMDMuMDQuMDMuMjYuNDA7CWF1dGhvciBsYXJzaTsJ c3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkxLjMzOwoKMS4zMwpkYXRlCTk3 LjAzLjA0LjAzLjI1LjM1OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJh bmNoZXM7Cm5leHQJMS4zMjsKCjEuMzIKZGF0ZQk5Ny4wMy4wNC4wMy4xOS4w ODsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTEu MzE7CgoxLjMxCmRhdGUJOTcuMDMuMDQuMDMuMTIuNTY7CWF1dGhvciBsYXJz aTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkxLjMwOwoKMS4zMApkYXRl CTk3LjAzLjA0LjAzLjA5LjMxOwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsK YnJhbmNoZXM7Cm5leHQJMS4yOTsKCjEuMjkKZGF0ZQk5Ny4wMy4wNC4wMy4w MC40NzsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0 CTEuMjg7CgoxLjI4CmRhdGUJOTcuMDMuMDQuMDIuNTQuMDg7CWF1dGhvciBs YXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkxLjI3OwoKMS4yNwpk YXRlCTk3LjAzLjA0LjAyLjQ5LjEzOwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4 cDsKYnJhbmNoZXM7Cm5leHQJMS4yNjsKCjEuMjYKZGF0ZQk5Ny4wMy4wNC4w Mi40Ni4wOTsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpu ZXh0CTEuMjU7CgoxLjI1CmRhdGUJOTcuMDMuMDQuMDIuNDQuNDY7CWF1dGhv ciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkxLjI0OwoKMS4y NApkYXRlCTk3LjAzLjA0LjAyLjQzLjE4OwlhdXRob3IgbGFyc2k7CXN0YXRl IEV4cDsKYnJhbmNoZXM7Cm5leHQJMS4yMzsKCjEuMjMKZGF0ZQk5Ny4wMy4w NC4wMi4zOS40MzsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVz OwpuZXh0CTEuMjI7CgoxLjIyCmRhdGUJOTcuMDMuMDQuMDIuMzUuMzc7CWF1 dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkxLjIxOwoK MS4yMQpkYXRlCTk3LjAzLjA0LjAyLjMzLjI1OwlhdXRob3IgbGFyc2k7CXN0 YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMS4yMDsKCjEuMjAKZGF0ZQk5Ny4w My4wNC4wMi4zMi4wNjsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5j aGVzOwpuZXh0CTEuMTk7CgoxLjE5CmRhdGUJOTcuMDMuMDQuMDIuMzAuNDc7 CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkxLjE4 OwoKMS4xOApkYXRlCTk3LjAzLjA0LjAyLjI5LjE0OwlhdXRob3IgbGFyc2k7 CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMS4xNzsKCjEuMTcKZGF0ZQk5 Ny4wMy4wNC4wMi4xNS4yNzsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7CmJy YW5jaGVzOwpuZXh0CTEuMTY7CgoxLjE2CmRhdGUJOTcuMDMuMDQuMDIuMTQu MTA7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkx LjE1OwoKMS4xNQpkYXRlCTk3LjAzLjA0LjAyLjEyLjA4OwlhdXRob3IgbGFy c2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMS4xNDsKCjEuMTQKZGF0 ZQk5Ny4wMy4wNC4wMi4wOS4wODsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBFeHA7 CmJyYW5jaGVzOwpuZXh0CTEuMTM7CgoxLjEzCmRhdGUJOTcuMDMuMDQuMDIu MDcuMTE7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4 dAkxLjEyOwoKMS4xMgpkYXRlCTk3LjAzLjA0LjAyLjAyLjUxOwlhdXRob3Ig bGFyc2k7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJMS4xMTsKCjEuMTEK ZGF0ZQk5Ny4wMy4wNC4wMS41OS40ODsJYXV0aG9yIGxhcnNpOwlzdGF0ZSBF eHA7CmJyYW5jaGVzOwpuZXh0CTEuMTA7CgoxLjEwCmRhdGUJOTcuMDMuMDQu MDEuNTcuNDE7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsK bmV4dAkxLjk7CgoxLjkKZGF0ZQk5Ny4wMy4wNC4wMS41Mi41NTsJYXV0aG9y IGxhcnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTEuODsKCjEuOApk YXRlCTk3LjAzLjA0LjAxLjUxLjUyOwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4 cDsKYnJhbmNoZXM7Cm5leHQJMS43OwoKMS43CmRhdGUJOTcuMDMuMDQuMDEu NTAuNTY7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4 dAkxLjY7CgoxLjYKZGF0ZQk5Ny4wMy4wNC4wMS40OS41MTsJYXV0aG9yIGxh cnNpOwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTEuNTsKCjEuNQpkYXRl CTk3LjAzLjA0LjAxLjM1LjQ5OwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsK YnJhbmNoZXM7Cm5leHQJMS40OwoKMS40CmRhdGUJOTcuMDMuMDQuMDEuMzMu NDA7CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAkx LjM7CgoxLjMKZGF0ZQk5Ny4wMy4wNC4wMS4zMS40NTsJYXV0aG9yIGxhcnNp OwlzdGF0ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTEuMjsKCjEuMgpkYXRlCTk3 LjAzLjA0LjAxLjMwLjAyOwlhdXRob3IgbGFyc2k7CXN0YXRlIEV4cDsKYnJh bmNoZXM7Cm5leHQJMS4xOwoKMS4xCmRhdGUJOTcuMDMuMDQuMDEuMjYuMzU7 CWF1dGhvciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlcwoJMS4xLjEuMTsK bmV4dAk7CgoxLjEuMS4xCmRhdGUJOTcuMDMuMDQuMDEuMjYuMzU7CWF1dGhv ciBsYXJzaTsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk7Cgo1LjI4LjIu MQpkYXRlCTIwMDAuMTEuMjIuMTUuMzYuMDI7CWF1dGhvciBmeDsJc3RhdGUg RXhwOwpicmFuY2hlczsKbmV4dAk7Cgo1LjI5LjIuMQpkYXRlCTIwMDAuMTIu MzEuMTUuMzQuMjU7CWF1dGhvciB6c2g7CXN0YXRlIEV4cDsKYnJhbmNoZXM7 Cm5leHQJNS4yOS4yLjI7Cgo1LjI5LjIuMgpkYXRlCTIwMDEuMDIuMDguMjMu NTkuNDY7CWF1dGhvciB6c2g7CXN0YXRlIEV4cDsKYnJhbmNoZXM7Cm5leHQJ NS4yOS4yLjM7Cgo1LjI5LjIuMwpkYXRlCTIwMDQuMDUuMjAuMDQuMDIuMTI7 CWF1dGhvciBtaWxlczsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk7Cgo2 LjI4LjIuMQpkYXRlCTIwMDQuMDUuMjAuMDYuMTMuMTM7CWF1dGhvciBtaWxl czsJc3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk2LjI4LjIuMjsKCjYuMjgu Mi4yCmRhdGUJMjAwNS4wNS4zMC4xNC40Mi4yNzsJYXV0aG9yIHJzdGVpYjsJ c3RhdGUgRXhwOwpicmFuY2hlczsKbmV4dAk2LjI4LjIuMzsKCjYuMjguMi4z CmRhdGUJMjAwNS4wNy4wNS4yMi4zNi4wNjsJYXV0aG9yIG1pbGVzOwlzdGF0 ZSBFeHA7CmJyYW5jaGVzOwpuZXh0CTYuMjguMi40OwoKNi4yOC4yLjQKZGF0 ZQkyMDA1LjA4LjAxLjA4LjM3LjA2OwlhdXRob3IgeWFtYW9rYTsJc3RhdGUg RXhwOwpicmFuY2hlczsKbmV4dAk2LjI4LjIuNTsKCjYuMjguMi41CmRhdGUJ MjAwNS4wOC4wNi4xNi4yMi40MjsJYXV0aG9yIHJmcmFuY29pc2U7CXN0YXRl IEV4cDsKYnJhbmNoZXM7Cm5leHQJOwoKCmRlc2MKQEAKCgo3LjE2CmxvZwpA KiBnbnVzLXV1LmVsIChnbnVzLXV1LXNhdmUtYXJ0aWNsZSk6IFVzZSBpbnNl cnQtYnVmZmVyLXN1YnN0cmluZyBpbnN0ZWFkIG9mCiBpbnNlcnQtYnVmZmVy LgoKKiBtZXNzYWdlLmVsIChtZXNzYWdlLXlhbmstb3JpZ2luYWwpOiBEaXR0 by4KQAp0ZXh0CkA7OzsgZ251cy11dS5lbCAtLS0gZXh0cmFjdCAodXUpZW5j b2RlZCBmaWxlcyBpbiBHbnVzCjs7IENvcHlyaWdodCAoQykgMTk4NSwgMTk4 NiwgMTk4NywgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwg MjAwMCwKOzsgICAgICAgIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCgo7OyBBdXRob3I6IExh cnMgTWFnbmUgSW5nZWJyaWd0c2VuIDxsYXJzaUBAZ251cy5vcmc+Cjs7IENy ZWF0ZWQ6IDIgT2N0IDE5OTMKOzsgS2V5d29yZDogbmV3cwoKOzsgVGhpcyBm aWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgoKOzsgR05VIEVtYWNzIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKOzsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0 IHlvdXIgb3B0aW9uKQo7OyBhbnkgbGF0ZXIgdmVyc2lvbi4KCjs7IEdOVSBF bWFjcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAo7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7OyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCjs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCgo7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo7OyBhbG9uZyB3 aXRoIEdOVSBFbWFjczsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3Qs IHdyaXRlIHRvIHRoZQo7OyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCjs7IEJvc3Rv biwgTUEgMDIxMTAtMTMwMSwgVVNBLgoKOzs7IENvbW1lbnRhcnk6Cgo7Ozsg Q29kZToKCihldmFsLXdoZW4tY29tcGlsZSAocmVxdWlyZSAnY2wpKQoKKHJl cXVpcmUgJ2dudXMpCihyZXF1aXJlICdnbnVzLWFydCkKKHJlcXVpcmUgJ21l c3NhZ2UpCihyZXF1aXJlICdnbnVzLW1zZykKKHJlcXVpcmUgJ21tLWRlY29k ZSkKCihkZWZncm91cCBnbnVzLWV4dHJhY3QgbmlsCiAgIkV4dHJhY3Rpbmcg ZW5jb2RlZCBmaWxlcy4iCiAgOnByZWZpeCAiZ251cy11dS0iCiAgOmdyb3Vw ICdnbnVzKQoKKGRlZmdyb3VwIGdudXMtZXh0cmFjdC12aWV3IG5pbAogICJW aWV3d2luZyBleHRyYWN0ZWQgZmlsZXMuIgogIDpncm91cCAnZ251cy1leHRy YWN0KQoKKGRlZmdyb3VwIGdudXMtZXh0cmFjdC1hcmNoaXZlIG5pbAogICJF eHRyYWN0aW5nIGVuY29kZWQgYXJjaGl2ZXMuIgogIDpncm91cCAnZ251cy1l eHRyYWN0KQoKKGRlZmdyb3VwIGdudXMtZXh0cmFjdC1wb3N0IG5pbAogICJF eHRyYWN0aW5nIGVuY29kZWQgYXJjaGl2ZXMuIgogIDpwcmVmaXggImdudXMt dXUtcG9zdCIKICA6Z3JvdXAgJ2dudXMtZXh0cmFjdCkKCjs7IERlZmF1bHQg dmlld2luZyBhY3Rpb24gcnVsZXMKCihkZWZjdXN0b20gZ251cy11dS1kZWZh dWx0LXZpZXctcnVsZXMKICAnKCgiXFwudGU/eHQkXFx8XFwuZG9jJFxcfHJl YWQuKm1lXFx8XFwuYz8kXFx8XFwuaCRcXHxcXC5iYXQkXFx8XFwuYXNtJFxc fG1ha2VmaWxlIiAiY2F0ICVzIHwgc2VkICdzL1xyJC8vJyIpCiAgICAoIlxc LnBhcyQiICJjYXQgJXMgfCBzZWQgJ3MvXHIkLy8nIikKICAgICgiXFwuWzEt OV0kIiAiZ3JvZmYgLW1hbmRvYyAtVGFzY2lpICVzIHwgc2VkIHMvXGIuLy9n IikKICAgICgiXFwuXFwoanBlP2dcXHxnaWZcXHx0aWZmP1xcfHBbcGdiXW1c XHx4d2RcXHx4Ym1cXHxwY3hcXCkkIiAiZGlzcGxheSIpCiAgICAoIlxcLnRn YSQiICJ0Z2F0b3BwbSAlcyB8IGVlIC0iKQogICAgKCJcXC5cXCh3YXZcXHxh aWZmXFx8aGNvbVxcfHVbYmx3XVxcfHNbYmZ3XVxcfHZvY1xcfHNtcFxcKSQi CiAgICAgInNveCAtdiAuNSAlcyAtdCAuYXUgLXUgLSA+IC9kZXYvYXVkaW8i KQogICAgKCJcXC5hdSQiICJjYXQgJXMgPiAvZGV2L2F1ZGlvIikKICAgICgi XFwubWlkaT8kIiAicGxheW1pZGkgLWYiKQogICAgKCJcXC5tb2QkIiAic3Ry MzIiKQogICAgKCJcXC5wcyQiICJnaG9zdHZpZXciKQogICAgKCJcXC5kdmkk IiAieGR2aSIpCiAgICAoIlxcLmh0bWwkIiAieG1vc2FpYyIpCiAgICAoIlxc Lm1wZT9nJCIgIm1wZWdfcGxheSIpCiAgICAoIlxcLlxcKGZsY1xcfGZsaVxc fHJsZVxcfGlmZlxcfHBmeFxcfGF2aVxcfHNtZVxcfHJwemFcXHxkbFxcfHF0 XFx8cnNyY1xcfG1vdlxcKSQiICJ4YW5pbSIpCiAgICAoIlxcLlxcKHRhclxc fGFyalxcfHppcFxcfHpvb1xcfGFyY1xcfGd6XFx8WlxcfGx6aFxcfGFyXFx8 bGhhXFwpJCIKICAgICAiZ251cy11dS1hcmNoaXZlIikpCiAgIipEZWZhdWx0 IGFjdGlvbnMgdG8gYmUgdGFrZW4gd2hlbiB0aGUgdXNlciBhc2tzIHRvIHZp ZXcgYSBmaWxlLgpUbyBjaGFuZ2UgdGhlIGJlaGF2aW91ciwgeW91IGNhbiBl aXRoZXIgZWRpdCB0aGlzIHZhcmlhYmxlIG9yIHNldApgZ251cy11dS11c2Vy LXZpZXctcnVsZXMnIHRvIHNvbWV0aGluZyB1c2VmdWwuCgpGb3IgZXhhbXBs ZToKClRvIG1ha2UgZ251cy11dSB1c2UgJ3hsaScgdG8gZGlzcGxheSBKUEVH IGFuZCBHSUYgZmlsZXMsIHB1dCB0aGUKZm9sbG93aW5nIGluIHlvdXIgLmVt YWNzIGZpbGU6CgogIChzZXRxIGdudXMtdXUtdXNlci12aWV3LXJ1bGVzICco KFwianBnJFxcXFx8Z2lmJFwiIFwieGxpXCIpKSkKCkJvdGggdGhlc2UgdmFy aWFibGVzIGFyZSBsaXN0cyBvZiBsaXN0cyB3aXRoIHR3byBzdHJpbmcgZWxl bWVudHMuICBUaGUKZmlyc3Qgc3RyaW5nIGlzIGEgcmVndWxhciBleHByZXNz aW9uLiAgSWYgdGhlIGZpbGUgbmFtZSBtYXRjaGVzIHRoaXMKcmVndWxhciBl eHByZXNzaW9uLCB0aGUgY29tbWFuZCBpbiB0aGUgc2Vjb25kIHN0cmluZyBp cyBleGVjdXRlZCB3aXRoCnRoZSBmaWxlIGFzIGFuIGFyZ3VtZW50LgoKSWYg dGhlIGNvbW1hbmQgc3RyaW5nIGNvbnRhaW5zIFwiJXNcIiwgdGhlIGZpbGUg bmFtZSB3aWxsIGJlIGluc2VydGVkCmF0IHRoYXQgcG9pbnQgaW4gdGhlIGNv bW1hbmQgc3RyaW5nLiAgSWYgdGhlcmUncyBubyBcIiVzXCIgaW4gdGhlCmNv bW1hbmQgc3RyaW5nLCB0aGUgZmlsZSBuYW1lIHdpbGwgYmUgYXBwZW5kZWQg dG8gdGhlIGNvbW1hbmQgc3RyaW5nCmJlZm9yZSBleGVjdXRpbmcuCgpUaGVy ZSBhcmUgc2V2ZXJhbCB1c2VyIHZhcmlhYmxlcyB0byB0YWlsb3IgdGhlIGJl aGF2aW91ciBvZiBnbnVzLXV1IHRvCnlvdXIgbmVlZHMuICBGaXJzdCB3ZSBo YXZlIGBnbnVzLXV1LXVzZXItdmlldy1ydWxlcycsIHdoaWNoIGlzIHRoZQp2 YXJpYWJsZSBnbnVzLXV1IGZpcnN0IGNvbnN1bHRzIHdoZW4gdHJ5aW5nIHRv IGRlY2lkZSBob3cgdG8gdmlldyBhCmZpbGUuICBJZiB0aGlzIHZhcmlhYmxl IGNvbnRhaW5zIG5vIG1hdGNoZXMsIGdudXMtdXUgZXhhbWluZXMgdGhlCmRl ZmF1bHQgcnVsZSB2YXJpYWJsZSBwcm92aWRlZCBpbiB0aGlzIHBhY2thZ2Uu ICBJZiBnbnVzLXV1IGZpbmRzIG5vCm1hdGNoIGhlcmUsIGl0IHVzZXMgYGdu dXMtdXUtdXNlci12aWV3LXJ1bGVzLWVuZCcgdG8gdHJ5IHRvIG1ha2UgYQpt YXRjaC4iCiAgOmdyb3VwICdnbnVzLWV4dHJhY3QtdmlldwogIDp0eXBlICco cmVwZWF0IChncm91cCByZWdleHAgKHN0cmluZyA6dGFnICJDb21tYW5kIikp KSkKCihkZWZjdXN0b20gZ251cy11dS11c2VyLXZpZXctcnVsZXMgbmlsCiAg IldoYXQgYWN0aW9ucyBhcmUgdG8gYmUgdGFrZW4gdG8gdmlldyBhIGZpbGUu ClNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvbiB0aGUgYGdudXMtdXUtZGVmYXVs dC12aWV3LXJ1bGVzJyB2YXJpYWJsZSBmb3IKZGV0YWlscy4iCiAgOmdyb3Vw ICdnbnVzLWV4dHJhY3QtdmlldwogIDp0eXBlICcocmVwZWF0IChncm91cCBy ZWdleHAgKHN0cmluZyA6dGFnICJDb21tYW5kIikpKSkKCihkZWZjdXN0b20g Z251cy11dS11c2VyLXZpZXctcnVsZXMtZW5kCiAgJygoIiIgImZpbGUiKSkK ICAiKldoYXQgYWN0aW9ucyBhcmUgdG8gYmUgdGFrZW4gaWYgbm8gcnVsZSBt YXRjaGVkIHRoZSBmaWxlIG5hbWUuClNlZSB0aGUgZG9jdW1lbnRhdGlvbiBv biB0aGUgYGdudXMtdXUtZGVmYXVsdC12aWV3LXJ1bGVzJyB2YXJpYWJsZSBm b3IKZGV0YWlscy4iCiAgOmdyb3VwICdnbnVzLWV4dHJhY3QtdmlldwogIDp0 eXBlICcocmVwZWF0IChncm91cCByZWdleHAgKHN0cmluZyA6dGFnICJDb21t YW5kIikpKSkKCjs7IERlZmF1bHQgdW5wYWNraW5nIGNvbW1hbmRzCgooZGVm Y3VzdG9tIGdudXMtdXUtZGVmYXVsdC1hcmNoaXZlLXJ1bGVzCiAgJygoIlxc LnRhciQiICJ0YXIgeGYiKQogICAgKCJcXC56aXAkIiAidW56aXAgLW8iKQog ICAgKCJcXC5hciQiICJhciB4IikKICAgICgiXFwuYXJqJCIgInVuYXJqIHgi KQogICAgKCJcXC56b28kIiAiem9vIC1lIikKICAgICgiXFwuXFwobHpoXFx8 bGhhXFwpJCIgImxoYSB4IikKICAgICgiXFwuWiQiICJ1bmNvbXByZXNzIikK ICAgICgiXFwuZ3okIiAiZ3VuemlwIikKICAgICgiXFwuYXJjJCIgImFyYyAt eCIpKQogICIqU2VlIGBnbnVzLXV1LXVzZXItYXJjaGl2ZS1ydWxlcycuIgog IDpncm91cCAnZ251cy1leHRyYWN0LWFyY2hpdmUKICA6dHlwZSAnKHJlcGVh dCAoZ3JvdXAgcmVnZXhwIChzdHJpbmcgOnRhZyAiQ29tbWFuZCIpKSkpCgoo ZGVmdmFyIGdudXMtdXUtZGVzdHJ1Y3RpdmUtYXJjaGl2ZXJzCiAgKGxpc3Qg InVuY29tcHJlc3MiICJndW56aXAiKSkKCihkZWZjdXN0b20gZ251cy11dS11 c2VyLWFyY2hpdmUtcnVsZXMgbmlsCiAgIkEgbGlzdCB0aGF0IGNhbiBiZSBz ZXQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYXJjaGl2ZSB1bnBhY2tpbmcg Y29tbWFuZHMuClRvIHVzZSwgZm9yIGluc3RhbmNlLCAndW50YXInIHRvIHVu cGFjayB0YXIgZmlsZXMgYW5kICd6aXAgLXgnIHRvCnVucGFjayB6aXAgZmls ZXMsIHNheSB0aGUgZm9sbG93aW5nOgogIChzZXRxIGdudXMtdXUtdXNlci1h cmNoaXZlLXJ1bGVzCiAgICAnKChcIlxcXFwudGFyJFwiIFwidW50YXJcIikK ICAgICAgKFwiXFxcXC56aXAkXCIgXCJ6aXAgLXhcIikpKSIKICA6Z3JvdXAg J2dudXMtZXh0cmFjdC1hcmNoaXZlCiAgOnR5cGUgJyhyZXBlYXQgKGdyb3Vw IHJlZ2V4cCAoc3RyaW5nIDp0YWcgIkNvbW1hbmQiKSkpKQoKKGRlZmN1c3Rv bSBnbnVzLXV1LWlnbm9yZS1maWxlcy1ieS1uYW1lIG5pbAogICIqQSByZWd1 bGFyIGV4cHJlc3Npb24gc2F5aW5nIHdoYXQgZmlsZXMgc2hvdWxkIG5vdCBi ZSB2aWV3ZWQgYmFzZWQgb24gbmFtZS4KSWYsIGZvciBpbnN0YW5jZSwgeW91 IHdhbnQgZ251cy11dSB0byBpZ25vcmUgYWxsIC5hdSBhbmQgLndhdiBmaWxl cywKeW91IGNvdWxkIHNheSBzb21ldGhpbmcgbGlrZQoKICAoc2V0cSBnbnVz LXV1LWlnbm9yZS1maWxlcy1ieS1uYW1lIFwiXFxcXC5hdSRcXFxcfFxcXFwu d2F2JFwiKQoKTm90ZSB0aGF0IHRoaXMgdmFyaWFibGUgY2FuIGJlIHVzZWQg aW4gY29uanVuY3Rpb24gd2l0aCB0aGUKYGdudXMtdXUtaWdub3JlLWZpbGVz LWJ5LXR5cGUnIHZhcmlhYmxlLiIKICA6Z3JvdXAgJ2dudXMtZXh0cmFjdAog IDp0eXBlICcoY2hvaWNlIChjb25zdCA6dGFnICJvZmYiIG5pbCkKCQkgKHJl Z2V4cCA6Zm9ybWF0ICIldiIpKSkKCihkZWZjdXN0b20gZ251cy11dS1pZ25v cmUtZmlsZXMtYnktdHlwZSBuaWwKICAiKkEgcmVndWxhciBleHByZXNzaW9u IHNheWluZyB3aGF0IGZpbGVzIHRoYXQgc2hvdWxkbid0IGJlIHZpZXdlZCwg YmFzZWQgb24gTUlNRSBmaWxlIHR5cGUuCklmLCBmb3IgaW5zdGFuY2UsIHlv dSB3YW50IGdudXMtdXUgdG8gaWdub3JlIGFsbCBhdWRpbyBmaWxlcyBhbmQg YWxsIG1wZWdzLAp5b3UgY291bGQgc2F5IHNvbWV0aGluZyBsaWtlCgogIChz ZXRxIGdudXMtdXUtaWdub3JlLWZpbGVzLWJ5LXR5cGUgXCJhdWRpby9cXFxc fHZpZGVvL21wZWdcIikKCk5vdGUgdGhhdCB0aGlzIHZhcmlhYmxlIGNhbiBi ZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlCmBnbnVzLXV1LWlnbm9y ZS1maWxlcy1ieS1uYW1lJyB2YXJpYWJsZS4iCiAgOmdyb3VwICdnbnVzLWV4 dHJhY3QKICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAib2ZmIiBuaWwp CgkJIChyZWdleHAgOmZvcm1hdCAiJXYiKSkpCgo7OyBQc2V1ZG8tTUlNRSBz dXBwb3J0CgooZGVmY29uc3QgZ251cy11dS1leHQtdG8tbWltZS1saXN0CiAg JygoIlxcLmdpZiQiICJpbWFnZS9naWYiKQogICAgKCJcXC5qcGU/ZyQiICJp bWFnZS9qcGVnIikKICAgICgiXFwudGlmZj8kIiAiaW1hZ2UvdGlmZiIpCiAg ICAoIlxcLnh3ZCQiICJpbWFnZS94d2QiKQogICAgKCJcXC5wYm0kIiAiaW1h Z2UvcGJtIikKICAgICgiXFwucGdtJCIgImltYWdlL3BnbSIpCiAgICAoIlxc LnBwbSQiICJpbWFnZS9wcG0iKQogICAgKCJcXC54Ym0kIiAiaW1hZ2UveGJt IikKICAgICgiXFwucGN4JCIgImltYWdlL3BjeCIpCiAgICAoIlxcLnRnYSQi ICJpbWFnZS90Z2EiKQogICAgKCJcXC5wcyQiICJpbWFnZS9wb3N0c2NyaXB0 IikKICAgICgiXFwuZmxpJCIgInZpZGVvL2ZsaSIpCiAgICAoIlxcLndhdiQi ICJhdWRpby93YXYiKQogICAgKCJcXC5haWZmJCIgImF1ZGlvL2FpZmYiKQog ICAgKCJcXC5oY29tJCIgImF1ZGlvL2hjb20iKQogICAgKCJcXC52b2MkIiAi YXVkaW8vdm9jIikKICAgICgiXFwuc21wJCIgImF1ZGlvL3NtcCIpCiAgICAo IlxcLm1vZCQiICJhdWRpby9tb2QiKQogICAgKCJcXC5kdmkkIiAiaW1hZ2Uv ZHZpIikKICAgICgiXFwubXBlP2ckIiAidmlkZW8vbXBlZyIpCiAgICAoIlxc LmF1JCIgImF1ZGlvL2Jhc2ljIikKICAgICgiXFwuXFwodGU/eHRcXHxkb2Nc XHxjXFx8aFxcKSQiICJ0ZXh0L3BsYWluIikKICAgICgiXFwuXFwoY1xcfGhc XCkkIiAidGV4dC9zb3VyY2UiKQogICAgKCJyZWFkLiptZSIgInRleHQvcGxh aW4iKQogICAgKCJcXC5odG1sJCIgInRleHQvaHRtbCIpCiAgICAoIlxcLmJh dCQiICJ0ZXh0L2JhdCIpCiAgICAoIlxcLlsxLTZdJCIgInRleHQvbWFuIikK ICAgICgiXFwuZmxjJCIgInZpZGVvL2ZsYyIpCiAgICAoIlxcLnJsZSQiICJ2 aWRlby9ybGUiKQogICAgKCJcXC5wZngkIiAidmlkZW8vcGZ4IikKICAgICgi XFwuYXZpJCIgInZpZGVvL2F2aSIpCiAgICAoIlxcLnNtZSQiICJ2aWRlby9z bWUiKQogICAgKCJcXC5ycHphJCIgInZpZGVvL3ByemEiKQogICAgKCJcXC5k bCQiICJ2aWRlby9kbCIpCiAgICAoIlxcLnF0JCIgInZpZGVvL3F0IikKICAg ICgiXFwucnNyYyQiICJ2aWRlby9yc3JjIikKICAgICgiXFwuLiokIiAidW5r bm93bi91bmtub3duIikpKQoKOzsgVmFyaW91cyB2YXJpYWJsZXMgdXNlcnMg bWF5IHNldAoKKGRlZmN1c3RvbSBnbnVzLXV1LXRtcC1kaXIKICAoY29uZCAo KGZib3VuZHAgJ3RlbXAtZGlyZWN0b3J5KSAodGVtcC1kaXJlY3RvcnkpKQoJ KChib3VuZHAgJ3RlbXBvcmFyeS1maWxlLWRpcmVjdG9yeSkgdGVtcG9yYXJ5 LWZpbGUtZGlyZWN0b3J5KQoJKCIvdG1wLyIpKQogICIqVmFyaWFibGUgc2F5 aW5nIHdoZXJlIGdudXMtdXUgaXMgdG8gZG8gaXRzIHdvcmsuCkRlZmF1bHQg aXMgXCIvdG1wL1wiLiIKICA6Z3JvdXAgJ2dudXMtZXh0cmFjdAogIDp0eXBl ICdkaXJlY3RvcnkpCgooZGVmY3VzdG9tIGdudXMtdXUtZG8tbm90LXVucGFj ay1hcmNoaXZlcyBuaWwKICAiKk5vbi1uaWwgbWVhbnMgdGhhdCBnbnVzLXV1 IHdvbid0IHBlZWsgaW5zaWRlIGFyY2hpdmVzIGxvb2tpbmcgZm9yIGZpbGVz IHRvIGRpc3BsYXkuCkRlZmF1bHQgaXMgbmlsLiIKICA6Z3JvdXAgJ2dudXMt ZXh0cmFjdC1hcmNoaXZlCiAgOnR5cGUgJ2Jvb2xlYW4pCgooZGVmY3VzdG9t IGdudXMtdXUtaWdub3JlLWRlZmF1bHQtdmlldy1ydWxlcyBuaWwKICAiKk5v bi1uaWwgbWVhbnMgdGhhdCBnbnVzLXV1IHdpbGwgaWdub3JlIHRoZSBkZWZh dWx0IHZpZXdpbmcgcnVsZXMuCk9ubHkgdGhlIHVzZXIgdmlld2luZyBydWxl cyB3aWxsIGJlIGNvbnN1bHRlZC4gIERlZmF1bHQgaXMgbmlsLiIKICA6Z3Jv dXAgJ2dudXMtZXh0cmFjdC12aWV3CiAgOnR5cGUgJ2Jvb2xlYW4pCgooZGVm Y3VzdG9tIGdudXMtdXUtZ3JhYmJlZC1maWxlLWZ1bmN0aW9ucyBuaWwKICAi RnVuY3Rpb25zIHJ1biBvbiBlYWNoIGZpbGUgYWZ0ZXIgc3VjY2Vzc2Z1bCBk ZWNvZGluZy4KVGhleSB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSBuYW1lIG9m IHRoZSBmaWxlIGFzIHRoZSBhcmd1bWVudC4KTGlrZWx5IGZ1bmN0aW9ucyB5 b3UgY2FuIHVzZSBpbiB0aGlzIGxpc3QgYXJlIGBnbnVzLXV1LWdyYWItdmll dycKYW5kIGBnbnVzLXV1LWdyYWItbW92ZScuIgogIDpncm91cCAnZ251cy1l eHRyYWN0CiAgOm9wdGlvbnMgJyhnbnVzLXV1LWdyYWItdmlldyBnbnVzLXV1 LWdyYWItbW92ZSkKICA6dHlwZSAnaG9vaykKCihkZWZjdXN0b20gZ251cy11 dS1pZ25vcmUtZGVmYXVsdC1hcmNoaXZlLXJ1bGVzIG5pbAogICIqTm9uLW5p bCBtZWFucyB0aGF0IGdudXMtdXUgd2lsbCBpZ25vcmUgdGhlIGRlZmF1bHQg YXJjaGl2ZSB1bnBhY2tpbmcgY29tbWFuZHMuCk9ubHkgdGhlIHVzZXIgdW5w YWNraW5nIGNvbW1hbmRzIHdpbGwgYmUgY29uc3VsdGVkLiAgRGVmYXVsdCBp cyBuaWwuIgogIDpncm91cCAnZ251cy1leHRyYWN0LWFyY2hpdmUKICA6dHlw ZSAnYm9vbGVhbikKCihkZWZjdXN0b20gZ251cy11dS1raWxsLWNhcnJpYWdl LXJldHVybiB0CiAgIipOb24tbmlsIG1lYW5zIHRoYXQgZ251cy11dSB3aWxs IHN0cmlwIGFsbCBjYXJyaWFnZSByZXR1cm5zIGZyb20gYXJ0aWNsZXMuCkRl ZmF1bHQgaXMgdC4iCiAgOmdyb3VwICdnbnVzLWV4dHJhY3QKICA6dHlwZSAn Ym9vbGVhbikKCihkZWZjdXN0b20gZ251cy11dS12aWV3LXdpdGgtbWV0YW1h aWwgbmlsCiAgIipOb24tbmlsIG1lYW5zIHRoYXQgZmlsZXMgd2lsbCBiZSB2 aWV3ZWQgd2l0aCBtZXRhbWFpbC4KVGhlIGdudXMtdXUgdmlld2luZyBmdW5j dGlvbnMgd2lsbCBiZSBpZ25vcmVkIGFuZCBnbnVzLXV1IHdpbGwgdHJ5CnRv IGd1ZXNzIGF0IGEgY29udGVudC10eXBlIGJhc2VkIG9uIGZpbGUgbmFtZSBz dWZmaXhlcy4gIERlZmF1bHQKaXQgbmlsLiIKICA6Z3JvdXAgJ2dudXMtZXh0 cmFjdAogIDp0eXBlICdib29sZWFuKQoKKGRlZmN1c3RvbSBnbnVzLXV1LXVu bWFyay1hcnRpY2xlcy1ub3QtZGVjb2RlZCBuaWwKICAiKk5vbi1uaWwgbWVh bnMgdGhhdCBnbnVzLXV1IHdpbGwgbWFyayBhcnRpY2xlcyB0aGF0IHdlcmUg dW5zdWNjZXNzZnVsbHkgZGVjb2RlZCBhcyB1bnJlYWQuCkRlZmF1bHQgaXMg bmlsLiIKICA6Z3JvdXAgJ2dudXMtZXh0cmFjdAogIDp0eXBlICdib29sZWFu KQoKKGRlZmN1c3RvbSBnbnVzLXV1LWNvcnJlY3Qtc3RyaXBwZWQtdXVjb2Rl IG5pbAogICIqTm9uLW5pbCBtZWFucyB0aGF0IGdudXMtdXUgd2lsbCAqdHJ5 KiB0byBmaXggdXVlbmNvZGVkIGZpbGVzIHRoYXQgaGF2ZSBoYWQgdHJhaWxp bmcgc3BhY2VzIGRlbGV0ZWQuCkRlZmF1bHQgaXMgbmlsLiIKICA6Z3JvdXAg J2dudXMtZXh0cmFjdAogIDp0eXBlICdib29sZWFuKQoKKGRlZmN1c3RvbSBn bnVzLXV1LXNhdmUtaW4tZGlnZXN0IG5pbAogICIqTm9uLW5pbCBtZWFucyB0 aGF0IGdudXMtdXUsIHdoZW4gYXNrZWQgdG8gc2F2ZSB3aXRob3V0IGRlY29k aW5nLCB3aWxsIHNhdmUgaW4gZGlnZXN0cy4KSWYgdGhpcyB2YXJpYWJsZSBp cyBuaWwsIGdudXMtdXUgd2lsbCBqdXN0IHNhdmUgZXZlcnl0aGluZyBpbiBh CmZpbGUgd2l0aG91dCBhbnkgZW1iZWxsaXNobWVudHMuICBUaGUgZGlnZXN0 aW5nIGFsbW9zdCBjb25mb3JtcyB0byBSRkMxMTUzIC0Kbm8gZWFzeSB3YXkg dG8gc3BlY2lmeSBhbnkgbWVhbmluZ2Z1bCB2b2x1bWUgYW5kIGlzc3VlIG51 bWJlcnMgd2VyZSBmb3VuZCwKc28gSSBzaW1wbHkgZHJvcHBlZCB0aGVtLiIK ICA6Z3JvdXAgJ2dudXMtZXh0cmFjdAogIDp0eXBlICdib29sZWFuKQoKKGRl ZmN1c3RvbSBnbnVzLXV1LXByZS11dWRlY29kZS1ob29rIG5pbAogICJIb29r IHJ1biBiZWZvcmUgc2VuZGluZyBhIG1lc3NhZ2UgdG8gdXVkZWNvZGUuIgog IDpncm91cCAnZ251cy1leHRyYWN0CiAgOnR5cGUgJ2hvb2spCgooZGVmY3Vz dG9tIGdudXMtdXUtZGlnZXN0LWhlYWRlcnMKICAnKCJeRGF0ZToiICJeRnJv bToiICJeVG86IiAiXkNjOiIgIl5TdWJqZWN0OiIgIl5NZXNzYWdlLUlEOiIg Il5LZXl3b3JkczoiCiAgICAiXlN1bW1hcnk6IiAiXlJlZmVyZW5jZXM6IiAi XkNvbnRlbnQtVHlwZToiICJeQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzoi CiAgICAiXk1JTUUtVmVyc2lvbjoiICJeQ29udGVudC1EaXNwb3NpdGlvbjoi ICJeQ29udGVudC1EZXNjcmlwdGlvbjoiCiAgICAiXkNvbnRlbnQtSUQ6IikK ICAiKkxpc3Qgb2YgcmVnZXhwcyB0byBtYXRjaCBoZWFkZXJzIGluY2x1ZGVk IGluIGRpZ2VzdGVkIG1lc3NhZ2VzLgpUaGUgaGVhZGVycyB3aWxsIGJlIGlu Y2x1ZGVkIGluIHRoZSBzZXF1ZW5jZSB0aGV5IGFyZSBtYXRjaGVkLiAgSWYg bmlsCmluY2x1ZGUgYWxsIGhlYWRlcnMuIgogIDpncm91cCAnZ251cy1leHRy YWN0CiAgOnR5cGUgJyhyZXBlYXQgcmVnZXhwKSkKCihkZWZjdXN0b20gZ251 cy11dS1zYXZlLXNlcGFyYXRlLWFydGljbGVzIG5pbAogICIqTm9uLW5pbCBt ZWFucyB0aGF0IGdudXMtdXUgd2lsbCBzYXZlIGFydGljbGVzIGluIHNlcGFy YXRlIGZpbGVzLiIKICA6Z3JvdXAgJ2dudXMtZXh0cmFjdAogIDp0eXBlICdi b29sZWFuKQoKKGRlZmN1c3RvbSBnbnVzLXV1LWJlLWRhbmdlcm91cyAnYXNr CiAgIipTcGVjaWZpZXMgd2hhdCB0byBkbyBpZiB1bnVzdWFsIHNpdHVhdGlv bnMgYXJpc2UgZHVyaW5nIGRlY29kaW5nLgpJZiBuaWwsIGJlIGFzIGNvbnNl cnZhdGl2ZSBhcyBwb3NzaWJsZS4gIElmIHQsIGlnbm9yZSB0aGluZ3MgdGhh dApkaWRuJ3Qgd29yaywgYW5kIG92ZXJ3cml0ZSBleGlzdGluZyBmaWxlcy4g IE90aGVyd2lzZSwgYXNrIGVhY2ggdGltZS4iCiAgOmdyb3VwICdnbnVzLWV4 dHJhY3QKICA6dHlwZSAnKGNob2ljZSAoY29uc3QgOnRhZyAiY29uc2VydmF0 aXZlIiBuaWwpCgkJIChjb25zdCA6dGFnICJhc2siIGFzaykKCQkgKGNvbnN0 IDp0YWcgImxpYmVyYWwiIHQpKSkKCjs7IEludGVybmFsIHZhcmlhYmxlcwoK KGRlZnZhciBnbnVzLXV1LXNhdmVkLWFydGljbGUtbmFtZSBuaWwpCgooZGVm dmFyIGdudXMtdXUtYmVnaW4tc3RyaW5nICJeYmVnaW5bIFx0XSswP1swLTdd WzAtN11bMC03XVsgXHRdK1xcKC4qXFwpJCIpCihkZWZ2YXIgZ251cy11dS1l bmQtc3RyaW5nICJeZW5kWyBcdF0qJCIpCgooZGVmdmFyIGdudXMtdXUtYm9k eS1saW5lICJeTSIpCihsZXQgKChpIDYxKSkKICAod2hpbGUgKD4gKHNldHEg aSAoMS0gaSkpIDApCiAgICAoc2V0cSBnbnVzLXV1LWJvZHktbGluZSAoY29u Y2F0IGdudXMtdXUtYm9keS1saW5lICJbXmEtel0iKSkpCiAgKHNldHEgZ251 cy11dS1ib2R5LWxpbmUgKGNvbmNhdCBnbnVzLXV1LWJvZHktbGluZSAiLj8k IikpKQoKOyJeTS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4/JCIKCihkZWZ2YXIgZ251cy11 dS1zaGFyLWJlZ2luLXN0cmluZyAiXiMhICovYmluL3NoIikKCihkZWZ2YXIg Z251cy11dS1zaGFyLWZpbGUtbmFtZSBuaWwpCihkZWZ2YXIgZ251cy11dS1z aGFyLW5hbWUtbWFya2VyCiAgImJlZ2luIDA/WzAtN11bMC03XVswLTddWyBc dF0rXFwoXFwoXFx3XFx8Wy5cXDpdXFwpKlxcYlxcKSIpCgooZGVmdmFyIGdu dXMtdXUtcG9zdHNjcmlwdC1iZWdpbi1zdHJpbmcgIl4lIVBTLSIpCihkZWZ2 YXIgZ251cy11dS1wb3N0c2NyaXB0LWVuZC1zdHJpbmcgIl4lJUVPRiQiKQoK KGRlZnZhciBnbnVzLXV1LWZpbGUtbmFtZSBuaWwpCihkZWZ2YXIgZ251cy11 dS11dWRlY29kZS1wcm9jZXNzIG5pbCkKKGRlZnZhciBnbnVzLXV1LWJpbmhl eC1hcnRpY2xlLW5hbWUgbmlsKQoKKGRlZnZhciBnbnVzLXV1LXdvcmstZGly IG5pbCkKCihkZWZ2YXIgZ251cy11dS1vdXRwdXQtYnVmZmVyLW5hbWUgIiAq R251cyBVVSBPdXRwdXQqIikKCihkZWZ2YXIgZ251cy11dS1kZWZhdWx0LWRp ciBnbnVzLWFydGljbGUtc2F2ZS1kaXJlY3RvcnkpCihkZWZ2YXIgZ251cy11 dS1kaWdlc3QtZnJvbS1zdWJqZWN0IG5pbCkKKGRlZnZhciBnbnVzLXV1LWRp Z2VzdC1idWZmZXIgbmlsKQoKOzsgQ29tbWFuZHMuCgooZGVmdW4gZ251cy11 dS1kZWNvZGUtdXUgKCZvcHRpb25hbCBuKQogICJVdWRlY29kZXMgdGhlIGN1 cnJlbnQgYXJ0aWNsZS4iCiAgKGludGVyYWN0aXZlICJQIikKICAoZ251cy11 dS1kZWNvZGUtd2l0aC1tZXRob2QgJ2dudXMtdXUtdXVzdHJpcC1hcnRpY2xl IG4pKQoKKGRlZnVuIGdudXMtdXUtZGVjb2RlLXV1LWFuZC1zYXZlIChuIGRp cikKICAiRGVjb2RlcyBhbmQgc2F2ZXMgdGhlIHJlc3VsdGluZyBmaWxlLiIK ICAoaW50ZXJhY3RpdmUKICAgKGxpc3QgY3VycmVudC1wcmVmaXgtYXJnCgkg KGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkKCSAgKHJlYWQtZmlsZS1uYW1lICJV dWRlY29kZSBhbmQgc2F2ZSBpbiBkaXI6ICIKCQkJICBnbnVzLXV1LWRlZmF1 bHQtZGlyCgkJCSAgZ251cy11dS1kZWZhdWx0LWRpciB0KSkpKQogIChnbnVz LXV1LWRlY29kZS13aXRoLW1ldGhvZCAnZ251cy11dS11dXN0cmlwLWFydGlj bGUgbiBkaXIgbmlsIG5pbCB0KSkKCihkZWZ1biBnbnVzLXV1LWRlY29kZS11 bnNoYXIgKCZvcHRpb25hbCBuKQogICJVbnNoYXJzIHRoZSBjdXJyZW50IGFy dGljbGUuIgogIChpbnRlcmFjdGl2ZSAiUCIpCiAgKGdudXMtdXUtZGVjb2Rl LXdpdGgtbWV0aG9kICdnbnVzLXV1LXVuc2hhci1hcnRpY2xlIG4gbmlsIG5p bCAnc2NhbiB0KSkKCihkZWZ1biBnbnVzLXV1LWRlY29kZS11bnNoYXItYW5k LXNhdmUgKG4gZGlyKQogICJVbnNoYXJzIGFuZCBzYXZlcyB0aGUgY3VycmVu dCBhcnRpY2xlLiIKICAoaW50ZXJhY3RpdmUKICAgKGxpc3QgY3VycmVudC1w cmVmaXgtYXJnCgkgKGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkKCSAgKHJlYWQt ZmlsZS1uYW1lICJVbnNoYXIgYW5kIHNhdmUgaW4gZGlyOiAiCgkJCSAgZ251 cy11dS1kZWZhdWx0LWRpcgoJCQkgIGdudXMtdXUtZGVmYXVsdC1kaXIgdCkp KSkKICAoZ251cy11dS1kZWNvZGUtd2l0aC1tZXRob2QgJ2dudXMtdXUtdW5z aGFyLWFydGljbGUgbiBkaXIgbmlsICdzY2FuIHQpKQoKKGRlZnVuIGdudXMt dXUtZGVjb2RlLXNhdmUgKG4gZmlsZSkKICAiU2F2ZXMgdGhlIGN1cnJlbnQg YXJ0aWNsZS4iCiAgKGludGVyYWN0aXZlCiAgIChsaXN0IGN1cnJlbnQtcHJl Zml4LWFyZwoJIChyZWFkLWZpbGUtbmFtZQoJICAoaWYgZ251cy11dS1zYXZl LXNlcGFyYXRlLWFydGljbGVzCgkgICAgICAiU2F2ZSBhcnRpY2xlcyBpcyBk aXI6ICIKCSAgICAiU2F2ZSBhcnRpY2xlcyBpbiBmaWxlOiAiKQoJICBnbnVz LXV1LWRlZmF1bHQtZGlyCgkgIGdudXMtdXUtZGVmYXVsdC1kaXIpKSkKICAo c2V0cSBnbnVzLXV1LXNhdmVkLWFydGljbGUtbmFtZSBmaWxlKQogIChnbnVz LXV1LWRlY29kZS13aXRoLW1ldGhvZCAnZ251cy11dS1zYXZlLWFydGljbGUg biBuaWwgdCkpCgooZGVmdW4gZ251cy11dS1kZWNvZGUtYmluaGV4IChuIGRp cikKICAiVW5iaW5oZXhlcyB0aGUgY3VycmVudCBhcnRpY2xlLiIKICAoaW50 ZXJhY3RpdmUKICAgKGxpc3QgY3VycmVudC1wcmVmaXgtYXJnCgkgKGZpbGUt bmFtZS1hcy1kaXJlY3RvcnkKCSAgKHJlYWQtZmlsZS1uYW1lICJVbmJpbmhl eCBhbmQgc2F2ZSBpbiBkaXI6ICIKCQkJICBnbnVzLXV1LWRlZmF1bHQtZGly CgkJCSAgZ251cy11dS1kZWZhdWx0LWRpcikpKSkKICAoc2V0cSBnbnVzLXV1 LWJpbmhleC1hcnRpY2xlLW5hbWUKCShtbS1tYWtlLXRlbXAtZmlsZSAoZXhw YW5kLWZpbGUtbmFtZSAiYmluaGV4IiBnbnVzLXV1LXdvcmstZGlyKSkpCiAg KGdudXMtdXUtZGVjb2RlLXdpdGgtbWV0aG9kICdnbnVzLXV1LWJpbmhleC1h cnRpY2xlIG4gZGlyKSkKCihkZWZ1biBnbnVzLXV1LWRlY29kZS11dS12aWV3 ICgmb3B0aW9uYWwgbikKICAiVXVkZWNvZGVzIGFuZCB2aWV3cyB0aGUgY3Vy cmVudCBhcnRpY2xlLiIKICAoaW50ZXJhY3RpdmUgIlAiKQogIChsZXQgKChn bnVzLXZpZXctcHNldWRvcyAob3IgZ251cy12aWV3LXBzZXVkb3MgJ2F1dG9t YXRpYykpKQogICAgKGdudXMtdXUtZGVjb2RlLXV1IG4pKSkKCihkZWZ1biBn bnVzLXV1LWRlY29kZS11dS1hbmQtc2F2ZS12aWV3IChuIGRpcikKICAiRGVj b2Rlcywgdmlld3MgYW5kIHNhdmVzIHRoZSByZXN1bHRpbmcgZmlsZS4iCiAg KGludGVyYWN0aXZlCiAgIChsaXN0IGN1cnJlbnQtcHJlZml4LWFyZwoJIChy ZWFkLWZpbGUtbmFtZSAiVXVkZWNvZGUsIHZpZXcgYW5kIHNhdmUgaW4gZGly OiAiCgkJCSBnbnVzLXV1LWRlZmF1bHQtZGlyCgkJCSBnbnVzLXV1LWRlZmF1 bHQtZGlyIHQpKSkKICAobGV0ICgoZ251cy12aWV3LXBzZXVkb3MgKG9yIGdu dXMtdmlldy1wc2V1ZG9zICdhdXRvbWF0aWMpKSkKICAgIChnbnVzLXV1LWRl Y29kZS11dS1hbmQtc2F2ZSBuIGRpcikpKQoKKGRlZnVuIGdudXMtdXUtZGVj b2RlLXVuc2hhci12aWV3ICgmb3B0aW9uYWwgbikKICAiVW5zaGFycyBhbmQg dmlld3MgdGhlIGN1cnJlbnQgYXJ0aWNsZS4iCiAgKGludGVyYWN0aXZlICJQ IikKICAobGV0ICgoZ251cy12aWV3LXBzZXVkb3MgKG9yIGdudXMtdmlldy1w c2V1ZG9zICdhdXRvbWF0aWMpKSkKICAgIChnbnVzLXV1LWRlY29kZS11bnNo YXIgbikpKQoKKGRlZnVuIGdudXMtdXUtZGVjb2RlLXVuc2hhci1hbmQtc2F2 ZS12aWV3IChuIGRpcikKICAiVW5zaGFycyBhbmQgc2F2ZXMgdGhlIGN1cnJl bnQgYXJ0aWNsZS4iCiAgKGludGVyYWN0aXZlCiAgIChsaXN0IGN1cnJlbnQt cHJlZml4LWFyZwoJIChyZWFkLWZpbGUtbmFtZSAiVW5zaGFyLCB2aWV3IGFu ZCBzYXZlIGluIGRpcjogIgoJCQkgZ251cy11dS1kZWZhdWx0LWRpcgoJCQkg Z251cy11dS1kZWZhdWx0LWRpciB0KSkpCiAgKGxldCAoKGdudXMtdmlldy1w c2V1ZG9zIChvciBnbnVzLXZpZXctcHNldWRvcyAnYXV0b21hdGljKSkpCiAg ICAoZ251cy11dS1kZWNvZGUtdW5zaGFyLWFuZC1zYXZlIG4gZGlyKSkpCgoo ZGVmdW4gZ251cy11dS1kZWNvZGUtc2F2ZS12aWV3IChuIGZpbGUpCiAgIlNh dmVzIGFuZCB2aWV3cyB0aGUgY3VycmVudCBhcnRpY2xlLiIKICAoaW50ZXJh Y3RpdmUKICAgKGxpc3QgY3VycmVudC1wcmVmaXgtYXJnCgkgKHJlYWQtZmls ZS1uYW1lICAoaWYgZ251cy11dS1zYXZlLXNlcGFyYXRlLWFydGljbGVzCgkJ CSAgICAgICJTYXZlIGFydGljbGVzIGlzIGRpcjogIgoJCQkgICAgIlNhdmUg YXJ0aWNsZXMgaW4gZmlsZTogIikKCQkJICBnbnVzLXV1LWRlZmF1bHQtZGly IGdudXMtdXUtZGVmYXVsdC1kaXIpKSkKICAobGV0ICgoZ251cy12aWV3LXBz ZXVkb3MgKG9yIGdudXMtdmlldy1wc2V1ZG9zICdhdXRvbWF0aWMpKSkKICAg IChnbnVzLXV1LWRlY29kZS1zYXZlIG4gZmlsZSkpKQoKKGRlZnVuIGdudXMt dXUtZGVjb2RlLWJpbmhleC12aWV3IChuIGZpbGUpCiAgIlVuYmluaGV4ZXMg YW5kIHZpZXdzIHRoZSBjdXJyZW50IGFydGljbGUuIgogIChpbnRlcmFjdGl2 ZQogICAobGlzdCBjdXJyZW50LXByZWZpeC1hcmcKCSAocmVhZC1maWxlLW5h bWUgIlVuYmluaGV4LCB2aWV3IGFuZCBzYXZlIGluIGRpcjogIgoJCQkgZ251 cy11dS1kZWZhdWx0LWRpciBnbnVzLXV1LWRlZmF1bHQtZGlyKSkpCiAgKHNl dHEgZ251cy11dS1iaW5oZXgtYXJ0aWNsZS1uYW1lCgkobW0tbWFrZS10ZW1w LWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgImJpbmhleCIgZ251cy11dS13b3Jr LWRpcikpKQogIChsZXQgKChnbnVzLXZpZXctcHNldWRvcyAob3IgZ251cy12 aWV3LXBzZXVkb3MgJ2F1dG9tYXRpYykpKQogICAgKGdudXMtdXUtZGVjb2Rl LWJpbmhleCBuIGZpbGUpKSkKCgo7OyBEaWdlc3QgYW5kIGZvcndhcmQgYXJ0 aWNsZXMKCihkZWZ1biBnbnVzLXV1LWRpZ2VzdC1tYWlsLWZvcndhcmQgKCZv cHRpb25hbCBuIHBvc3QpCiAgIkRpZ2VzdHMgYW5kIGZvcndhcmRzIGFsbCBh cnRpY2xlcyBpbiB0aGlzIHNlcmllcy4iCiAgKGludGVyYWN0aXZlICJQIikK ICAobGV0ICgoZ251cy11dS1zYXZlLWluLWRpZ2VzdCB0KQoJKGZpbGUgKG1t LW1ha2UtdGVtcC1maWxlIChubmhlYWRlci1jb25jYXQgZ251cy11dS10bXAt ZGlyICJmb3J3YXJkIikpKQoJKG1lc3NhZ2UtZm9yd2FyZC1hcy1taW1lIG1l c3NhZ2UtZm9yd2FyZC1hcy1taW1lKQoJKG1haWwtcGFyc2UtY2hhcnNldCBn bnVzLW5ld3Nncm91cC1jaGFyc2V0KQoJKG1haWwtcGFyc2UtaWdub3JlZC1j aGFyc2V0cyBnbnVzLW5ld3Nncm91cC1pZ25vcmVkLWNoYXJzZXRzKQoJZ251 cy11dS1kaWdlc3QtYnVmZmVyIHN1YmplY3QgZnJvbSkKICAgIChpZiAoYW5k IG4gKG5vdCAobnVtYmVycCBuKSkpCgkoc2V0cSBtZXNzYWdlLWZvcndhcmQt YXMtbWltZSAobm90IG1lc3NhZ2UtZm9yd2FyZC1hcy1taW1lKQoJICAgICAg biBuaWwpKQogICAgKGxldCAoKGdudXMtYXJ0aWNsZS1yZXBseSAoZ251cy1z dW1tYXJ5LXdvcmstYXJ0aWNsZXMgbikpCgkgIGdudXMtbmV3c2dyb3VwLXBy b2Nlc3NhYmxlKQogICAgICAod2hlbiAoYW5kIChub3QgbikKCQkgKD0gKGxl bmd0aCBnbnVzLWFydGljbGUtcmVwbHkpIDEpKQoJOzsgVGhlIGNhc2Ugd2hl cmUgbmVpdGhlciBhIG51bWJlciBvZiBhcnRpY2xlcyBub3IgYSByZWdpb24g aXMKCTs7IHNwZWNpZmllZC4KCShnbnVzLXN1bW1hcnktdG9wLXRocmVhZCkK CShzZXRxIGdudXMtYXJ0aWNsZS1yZXBseSAoZ251cy11dS1nZXQtbGlzdC1v Zi1hcnRpY2xlcyBuaWwpKSkKICAgICAgOzsgU3BlY2lmeSBhcnRpY2xlcyB0 byBiZSBmb3J3YXJkZWQuCiAgICAgIChzZXRxIGdudXMtbmV3c2dyb3VwLXBy b2Nlc3NhYmxlIChjb3B5LXNlcXVlbmNlIGdudXMtYXJ0aWNsZS1yZXBseSkp CiAgICAgIChnbnVzLXNldHVwLW1lc3NhZ2UgJ2ZvcndhcmQKCShzZXRxIGdu dXMtdXUtZGlnZXN0LWZyb20tc3ViamVjdCBuaWwpCgkoc2V0cSBnbnVzLXV1 LWRpZ2VzdC1idWZmZXIKCSAgICAgIChnbnVzLWdldC1idWZmZXItY3JlYXRl ICIgKmdudXMtdXUtZm9yd2FyZCoiKSkKCShnbnVzLXV1LWRlY29kZS1zYXZl IG4gZmlsZSkKCShzd2l0Y2gtdG8tYnVmZmVyIGdudXMtdXUtZGlnZXN0LWJ1 ZmZlcikKCShsZXQgKChmcyBnbnVzLXV1LWRpZ2VzdC1mcm9tLXN1YmplY3Qp KQoJICAod2hlbiBmcwoJICAgIChzZXRxIGZyb20gKGNhYXIgZnMpCgkJICBz dWJqZWN0IChnbnVzLXNpbXBsaWZ5LXN1YmplY3QtZnV6enkgKGNkYXIgZnMp KQoJCSAgZnMgKGNkciBmcykpCgkgICAgKHdoaWxlIChhbmQgZnMgKG9yIGZy b20gc3ViamVjdCkpCgkgICAgICAod2hlbiBmcm9tCgkJKHVubGVzcyAoc3Ry aW5nPSBmcm9tIChjYWFyIGZzKSkKCQkgIChzZXRxIGZyb20gbmlsKSkpCgkg ICAgICAod2hlbiBzdWJqZWN0CgkJKHVubGVzcyAoc3RyaW5nPSAoZ251cy1z aW1wbGlmeS1zdWJqZWN0LWZ1enp5IChjZGFyIGZzKSkKCQkJCSBzdWJqZWN0 KQoJCSAgKHNldHEgc3ViamVjdCBuaWwpKSkKCSAgICAgIChzZXRxIGZzIChj ZHIgZnMpKSkpCgkgICh1bmxlc3Mgc3ViamVjdAoJICAgIChzZXRxIHN1Ympl Y3QgIkRpZ2VzdGVkIEFydGljbGVzIikpCgkgICh1bmxlc3MgZnJvbQoJICAg IChzZXRxIGZyb20KCQkgIChpZiAoZ251cy1uZXdzLWdyb3VwLXAgZ251cy1u ZXdzZ3JvdXAtbmFtZSkKCQkgICAgICBnbnVzLW5ld3Nncm91cC1uYW1lCgkJ ICAgICJWYXJpb3VzIikpKSkKCShnb3RvLWNoYXIgKHBvaW50LW1pbikpCgko d2hlbiAocmUtc2VhcmNoLWZvcndhcmQgIl5TdWJqZWN0OiAiKQoJICAoZGVs ZXRlLXJlZ2lvbiAocG9pbnQpIChwb2ludC1hdC1lb2wpKQoJICAoaW5zZXJ0 IHN1YmplY3QpKQoJKGdvdG8tY2hhciAocG9pbnQtbWluKSkKCSh3aGVuIChy ZS1zZWFyY2gtZm9yd2FyZCAiXkZyb206IikKCSAgKGRlbGV0ZS1yZWdpb24g KHBvaW50KSAocG9pbnQtYXQtZW9sKSkKCSAgKGluc2VydCAiICIgZnJvbSkp CgkobGV0ICgobWVzc2FnZS1mb3J3YXJkLWRlY29kZWQtcCB0KSkKCSAgKG1l c3NhZ2UtZm9yd2FyZCBwb3N0IHQpKSkpCiAgICAoc2V0cSBnbnVzLXV1LWRp Z2VzdC1mcm9tLXN1YmplY3QgbmlsKSkpCgooZGVmdW4gZ251cy11dS1kaWdl c3QtcG9zdC1mb3J3YXJkICgmb3B0aW9uYWwgbikKICAiRGlnZXN0IGFuZCBm b3J3YXJkIHRvIGEgbmV3c2dyb3VwLiIKICAoaW50ZXJhY3RpdmUgIlAiKQog IChnbnVzLXV1LWRpZ2VzdC1tYWlsLWZvcndhcmQgbiB0KSkKCjs7IFByb2Nl c3MgbWFya2luZy4KCihkZWZ1biBnbnVzLW1lc3NhZ2UtcHJvY2Vzcy1tYXJr ICh1bm1hcmtwIG5ldy1tYXJrZWQpCiAgKGxldCAoKG9sZCAoLSAobGVuZ3Ro IGdudXMtbmV3c2dyb3VwLXByb2Nlc3NhYmxlKSAobGVuZ3RoIG5ldy1tYXJr ZWQpKSkpCiAgICAobWVzc2FnZSAiJWQgbWFyayVzICVzJXMiCgkgICAgIChs ZW5ndGggbmV3LW1hcmtlZCkKCSAgICAgKGlmICg9IChsZW5ndGggbmV3LW1h cmtlZCkgMSkgIiIgInMiKQoJICAgICAoaWYgdW5tYXJrcCAicmVtb3ZlZCIg ImFkZGVkIikKCSAgICAgKGNvbmQKCSAgICAgICgoYW5kICh6ZXJvcCBvbGQp CgkJICAgIChub3QgdW5tYXJrcCkpCgkgICAgICAgIiIpCgkgICAgICAodW5t YXJrcAoJICAgICAgIChmb3JtYXQgIiwgJWQgcmVtYWluIG1hcmtlZCIKCQkg ICAgICAgKGxlbmd0aCBnbnVzLW5ld3Nncm91cC1wcm9jZXNzYWJsZSkpKQoJ ICAgICAgKHQKCSAgICAgICAoZm9ybWF0ICIsICVkIGFscmVhZHkgbWFya2Vk IiBvbGQpKSkpKSkKCihkZWZ1biBnbnVzLW5ldy1wcm9jZXNzYWJsZSAodW5t YXJrcCBhcnRpY2xlcykKICAoaWYgdW5tYXJrcAogICAgICAoZ251cy1pbnRl cnNlY3Rpb24gZ251cy1uZXdzZ3JvdXAtcHJvY2Vzc2FibGUgYXJ0aWNsZXMp CiAgICAoZ251cy1zZXQtZGlmZmVyZW5jZSBhcnRpY2xlcyBnbnVzLW5ld3Nn cm91cC1wcm9jZXNzYWJsZSkpKQoKKGRlZnVuIGdudXMtdXUtbWFyay1ieS1y ZWdleHAgKHJlZ2V4cCAmb3B0aW9uYWwgdW5tYXJrKQogICJTZXQgdGhlIHBy b2Nlc3MgbWFyayBvbiBhcnRpY2xlcyB3aG9zZSBzdWJqZWN0cyBtYXRjaCBS RUdFWFAuCldoZW4gY2FsbGVkIGludGVyYWN0aXZlbHksIHByb21wdCBmb3Ig UkVHRVhQLgpPcHRpb25hbCBVTk1BUksgbm9uLW5pbCBtZWFucyB1bm1hcmsg aW5zdGVhZCBvZiBtYXJrLiIKICAoaW50ZXJhY3RpdmUgInNNYXJrIChyZWdl eHApOiBcblAiKQogIChzYXZlLWV4Y3Vyc2lvbgogICAgKGxldCogKChhcnRp Y2xlcyAoZ251cy11dS1maW5kLWFydGljbGVzLW1hdGNoaW5nIHJlZ2V4cCkp CgkgICAobmV3LW1hcmtlZCAoZ251cy1uZXctcHJvY2Vzc2FibGUgdW5tYXJr IGFydGljbGVzKSkpCiAgICAgICh3aGlsZSBhcnRpY2xlcwoJKGlmIHVubWFy awoJICAgIChnbnVzLXN1bW1hcnktcmVtb3ZlLXByb2Nlc3MtbWFyayAocG9w IGFydGljbGVzKSkKCSAgKGdudXMtc3VtbWFyeS1zZXQtcHJvY2Vzcy1tYXJr IChwb3AgYXJ0aWNsZXMpKSkpCiAgICAgIChnbnVzLW1lc3NhZ2UtcHJvY2Vz cy1tYXJrIHVubWFyayBuZXctbWFya2VkKSkpCiAgKGdudXMtc3VtbWFyeS1w b3NpdGlvbi1wb2ludCkpCgooZGVmdW4gZ251cy11dS11bm1hcmstYnktcmVn ZXhwIChyZWdleHApCiAgIlJlbW92ZSB0aGUgcHJvY2VzcyBtYXJrIGZyb20g YXJ0aWNsZXMgd2hvc2Ugc3ViamVjdHMgbWF0Y2ggUkVHRVhQLgpXaGVuIGNh bGxlZCBpbnRlcmFjdGl2ZWx5LCBwcm9tcHQgZm9yIFJFR0VYUC4iCiAgKGlu dGVyYWN0aXZlICJzVW5tYXJrIChyZWdleHApOiAiKQogIChnbnVzLXV1LW1h cmstYnktcmVnZXhwIHJlZ2V4cCB0KSkKCihkZWZ1biBnbnVzLXV1LW1hcmst c2VyaWVzICgpCiAgIk1hcmsgdGhlIGN1cnJlbnQgc2VyaWVzIHdpdGggdGhl IHByb2Nlc3MgbWFyay4iCiAgKGludGVyYWN0aXZlKQogIChsZXQqICgoYXJ0 aWNsZXMgKGdudXMtdXUtZmluZC1hcnRpY2xlcy1tYXRjaGluZykpCiAgICAg ICAgIChsIChsZW5ndGggYXJ0aWNsZXMpKSkKICAgICh3aGlsZSBhcnRpY2xl cwogICAgICAoZ251cy1zdW1tYXJ5LXNldC1wcm9jZXNzLW1hcmsgKGNhciBh cnRpY2xlcykpCiAgICAgIChzZXRxIGFydGljbGVzIChjZHIgYXJ0aWNsZXMp KSkKICAgIChtZXNzYWdlICJNYXJrZWQgJWQgYXJ0aWNsZXMiIGwpKQogIChn bnVzLXN1bW1hcnktcG9zaXRpb24tcG9pbnQpKQoKKGRlZnVuIGdudXMtdXUt bWFyay1yZWdpb24gKGJlZyBlbmQgJm9wdGlvbmFsIHVubWFyaykKICAiU2V0 IHRoZSBwcm9jZXNzIG1hcmsgb24gYWxsIGFydGljbGVzIGJldHdlZW4gcG9p bnQgYW5kIG1hcmsuIgogIChpbnRlcmFjdGl2ZSAiciIpCiAgKHNhdmUtZXhj dXJzaW9uCiAgICAoZ290by1jaGFyIGJlZykKICAgICh3aGlsZSAoPCAocG9p bnQpIGVuZCkKICAgICAgKGlmIHVubWFyawoJICAoZ251cy1zdW1tYXJ5LXJl bW92ZS1wcm9jZXNzLW1hcmsgKGdudXMtc3VtbWFyeS1hcnRpY2xlLW51bWJl cikpCgkoZ251cy1zdW1tYXJ5LXNldC1wcm9jZXNzLW1hcmsgKGdudXMtc3Vt bWFyeS1hcnRpY2xlLW51bWJlcikpKQogICAgICAoZm9yd2FyZC1saW5lIDEp KSkKICAoZ251cy1zdW1tYXJ5LXBvc2l0aW9uLXBvaW50KSkKCihkZWZ1biBn bnVzLXV1LXVubWFyay1yZWdpb24gKGJlZyBlbmQpCiAgIlJlbW92ZSB0aGUg cHJvY2VzcyBtYXJrIGZyb20gYWxsIGFydGljbGVzIGJldHdlZW4gcG9pbnQg YW5kIG1hcmsuIgogIChpbnRlcmFjdGl2ZSAiciIpCiAgKGdudXMtdXUtbWFy ay1yZWdpb24gYmVnIGVuZCB0KSkKCihkZWZ1biBnbnVzLXV1LW1hcmstYnVm ZmVyICgpCiAgIlNldCB0aGUgcHJvY2VzcyBtYXJrIG9uIGFsbCBhcnRpY2xl cyBpbiB0aGUgYnVmZmVyLiIKICAoaW50ZXJhY3RpdmUpCiAgKGdudXMtdXUt bWFyay1yZWdpb24gKHBvaW50LW1pbikgKHBvaW50LW1heCkpKQoKKGRlZnVu IGdudXMtdXUtdW5tYXJrLWJ1ZmZlciAoKQogICJSZW1vdmUgdGhlIHByb2Nl c3MgbWFyayBvbiBhbGwgYXJ0aWNsZXMgaW4gdGhlIGJ1ZmZlci4iCiAgKGlu dGVyYWN0aXZlKQogIChnbnVzLXV1LW1hcmstcmVnaW9uIChwb2ludC1taW4p IChwb2ludC1tYXgpIHQpKQoKKGRlZnVuIGdudXMtdXUtbWFyay10aHJlYWQg KCkKICAiTWFya3MgYWxsIGFydGljbGVzIGRvd253YXJkcyBpbiB0aGlzIHRo cmVhZC4iCiAgKGludGVyYWN0aXZlKQogIChnbnVzLXNhdmUtaGlkZGVuLXRo cmVhZHMKICAgIChsZXQgKChsZXZlbCAoZ251cy1zdW1tYXJ5LXRocmVhZC1s ZXZlbCkpKQogICAgICAod2hpbGUgKGFuZCAoZ251cy1zdW1tYXJ5LXNldC1w cm9jZXNzLW1hcmsKCQkgICAoZ251cy1zdW1tYXJ5LWFydGljbGUtbnVtYmVy KSkKCQkgICh6ZXJvcCAoZ251cy1zdW1tYXJ5LW5leHQtc3ViamVjdCAxIG5p bCB0KSkKCQkgICg+IChnbnVzLXN1bW1hcnktdGhyZWFkLWxldmVsKSBsZXZl bCkpKSkpCiAgKGdudXMtc3VtbWFyeS1wb3NpdGlvbi1wb2ludCkpCgooZGVm dW4gZ251cy11dS11bm1hcmstdGhyZWFkICgpCiAgIlVubWFya3MgYWxsIGFy dGljbGVzIGRvd253YXJkcyBpbiB0aGlzIHRocmVhZC4iCiAgKGludGVyYWN0 aXZlKQogIChsZXQgKChsZXZlbCAoZ251cy1zdW1tYXJ5LXRocmVhZC1sZXZl bCkpKQogICAgKHdoaWxlIChhbmQgKGdudXMtc3VtbWFyeS1yZW1vdmUtcHJv Y2Vzcy1tYXJrCgkJIChnbnVzLXN1bW1hcnktYXJ0aWNsZS1udW1iZXIpKQoJ CSh6ZXJvcCAoZ251cy1zdW1tYXJ5LW5leHQtc3ViamVjdCAxKSkKCQkoPiAo Z251cy1zdW1tYXJ5LXRocmVhZC1sZXZlbCkgbGV2ZWwpKSkpCiAgKGdudXMt c3VtbWFyeS1wb3NpdGlvbi1wb2ludCkpCgooZGVmdW4gZ251cy11dS1pbnZl cnQtcHJvY2Vzc2FibGUgKCkKICAiSW52ZXJ0IHRoZSBsaXN0IG9mIHByb2Nl c3MtbWFya2VkIGFydGljbGVzLiIKICAoaW50ZXJhY3RpdmUpCiAgKGxldCAo KGRhdGEgZ251cy1uZXdzZ3JvdXAtZGF0YSkKCW51bWJlcikKICAgIChzYXZl LWV4Y3Vyc2lvbgogICAgICAod2hpbGUgZGF0YQoJKGlmIChtZW1xIChzZXRx IG51bWJlciAoZ251cy1kYXRhLW51bWJlciAocG9wIGRhdGEpKSkKCQkgIGdu dXMtbmV3c2dyb3VwLXByb2Nlc3NhYmxlKQoJICAgIChnbnVzLXN1bW1hcnkt cmVtb3ZlLXByb2Nlc3MtbWFyayBudW1iZXIpCgkgIChnbnVzLXN1bW1hcnkt c2V0LXByb2Nlc3MtbWFyayBudW1iZXIpKSkpKQogIChnbnVzLXN1bW1hcnkt cG9zaXRpb24tcG9pbnQpKQoKKGRlZnVuIGdudXMtdXUtbWFyay1vdmVyICgm b3B0aW9uYWwgc2NvcmUpCiAgIk1hcmsgYWxsIGFydGljbGVzIHdpdGggYSBz Y29yZSBvdmVyIFNDT1JFICh0aGUgcHJlZml4KS4iCiAgKGludGVyYWN0aXZl ICJQIikKICAobGV0ICgoc2NvcmUgKG9yIHNjb3JlIGdudXMtc3VtbWFyeS1k ZWZhdWx0LXNjb3JlIDApKQoJKGRhdGEgZ251cy1uZXdzZ3JvdXAtZGF0YSkp CiAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgKHdoaWxlIGRhdGEKCSh3aGVu ICg+IChvciAoY2RyIChhc3NxIChnbnVzLWRhdGEtbnVtYmVyIChjYXIgZGF0 YSkpCgkJCQlnbnVzLW5ld3Nncm91cC1zY29yZWQpKQoJCSAgICAgZ251cy1z dW1tYXJ5LWRlZmF1bHQtc2NvcmUgMCkKCQkgc2NvcmUpCgkgIChnbnVzLXN1 bW1hcnktc2V0LXByb2Nlc3MtbWFyayAoY2FhciBkYXRhKSkpCgkoc2V0cSBk YXRhIChjZHIgZGF0YSkpKSkKICAgIChnbnVzLXN1bW1hcnktcG9zaXRpb24t cG9pbnQpKSkKCihkZWZ1biBnbnVzLXV1LW1hcmstc3BhcnNlICgpCiAgIk1h cmsgYWxsIHNlcmllcyB0aGF0IGhhdmUgc29tZSBhcnRpY2xlcyBtYXJrZWQu IgogIChpbnRlcmFjdGl2ZSkKICAobGV0ICgobWFya2VkIChucmV2ZXJzZSBn bnVzLW5ld3Nncm91cC1wcm9jZXNzYWJsZSkpCglzdWJqZWN0IGFydGljbGVz IHRvdGFsIGhlYWRlcnMpCiAgICAodW5sZXNzIG1hcmtlZAogICAgICAoZXJy b3IgIk5vIGFydGljbGVzIG1hcmtlZCB3aXRoIHRoZSBwcm9jZXNzIG1hcmsi KSkKICAgIChzZXRxIGdudXMtbmV3c2dyb3VwLXByb2Nlc3NhYmxlIG5pbCkK ICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAod2hpbGUgbWFya2VkCgkoYW5k ICh2ZWN0b3JwIChzZXRxIGhlYWRlcnMKCQkJICAgIChnbnVzLXN1bW1hcnkt YXJ0aWNsZS1oZWFkZXIgKGNhciBtYXJrZWQpKSkpCgkgICAgIChzZXRxIHN1 YmplY3QgKG1haWwtaGVhZGVyLXN1YmplY3QgaGVhZGVycykKCQkgICBhcnRp Y2xlcyAoZ251cy11dS1maW5kLWFydGljbGVzLW1hdGNoaW5nCgkJCSAgICAg KGdudXMtdXUtcmVnaW5pemUtc3RyaW5nIHN1YmplY3QpKQoJCSAgIHRvdGFs IChuY29uYyB0b3RhbCBhcnRpY2xlcykpKQoJKHdoaWxlIGFydGljbGVzCgkg IChnbnVzLXN1bW1hcnktc2V0LXByb2Nlc3MtbWFyayAoY2FyIGFydGljbGVz KSkKCSAgKHNldGNkciBtYXJrZWQgKGRlbHEgKGNhciBhcnRpY2xlcykgKGNk ciBtYXJrZWQpKSkKCSAgKHNldHEgYXJ0aWNsZXMgKGNkciBhcnRpY2xlcykp KQoJKHNldHEgbWFya2VkIChjZHIgbWFya2VkKSkpCiAgICAgIChzZXRxIGdu dXMtbmV3c2dyb3VwLXByb2Nlc3NhYmxlIChucmV2ZXJzZSB0b3RhbCkpKQog ICAgKGdudXMtc3VtbWFyeS1wb3NpdGlvbi1wb2ludCkpKQoKKGRlZnVuIGdu dXMtdXUtbWFyay1hbGwgKCkKICAiTWFyayBhbGwgYXJ0aWNsZXMgaW4gXCJz ZXJpZXNcIiBvcmRlci4iCiAgKGludGVyYWN0aXZlKQogIChzZXRxIGdudXMt bmV3c2dyb3VwLXByb2Nlc3NhYmxlIG5pbCkKICAoc2F2ZS1leGN1cnNpb24K ICAgIChsZXQgKChkYXRhIGdudXMtbmV3c2dyb3VwLWRhdGEpCgkgIG51bWJl cikKICAgICAgKHdoaWxlIGRhdGEKCSh3aGVuIChhbmQgKG5vdCAobWVtcSAo c2V0cSBudW1iZXIgKGdudXMtZGF0YS1udW1iZXIgKGNhciBkYXRhKSkpCgkJ CSAgICAgIGdudXMtbmV3c2dyb3VwLXByb2Nlc3NhYmxlKSkKCQkgICAodmVj dG9ycCAoZ251cy1kYXRhLWhlYWRlciAoY2FyIGRhdGEpKSkpCgkgIChnbnVz LXN1bW1hcnktZ290by1zdWJqZWN0IG51bWJlcikKCSAgKGdudXMtdXUtbWFy ay1zZXJpZXMpKQoJKHNldHEgZGF0YSAoY2RyIGRhdGEpKSkpKQogIChnbnVz LXN1bW1hcnktcG9zaXRpb24tcG9pbnQpKQoKOzsgQWxsIFBvc3RTY3JpcHQg ZnVuY3Rpb25zIHdyaXR0ZW4gYnkgRXJpayBTZWxiZXJnIDxzcGVlZEBAY3Mu d2FzaGluZ3Rvbi5lZHU+LgoKKGRlZnVuIGdudXMtdXUtZGVjb2RlLXBvc3Rz Y3JpcHQgKCZvcHRpb25hbCBuKQogICJHZXRzIHBvc3RzY3JpcHQgb2YgdGhl IGN1cnJlbnQgYXJ0aWNsZS4iCiAgKGludGVyYWN0aXZlICJQIikKICAoZ251 cy11dS1kZWNvZGUtd2l0aC1tZXRob2QgJ2dudXMtdXUtZGVjb2RlLXBvc3Rz Y3JpcHQtYXJ0aWNsZSBuKSkKCihkZWZ1biBnbnVzLXV1LWRlY29kZS1wb3N0 c2NyaXB0LXZpZXcgKCZvcHRpb25hbCBuKQogICJHZXRzIGFuZCB2aWV3cyB0 aGUgY3VycmVudCBhcnRpY2xlLiIKICAoaW50ZXJhY3RpdmUgIlAiKQogIChs ZXQgKChnbnVzLXZpZXctcHNldWRvcyAob3IgZ251cy12aWV3LXBzZXVkb3Mg J2F1dG9tYXRpYykpKQogICAgKGdudXMtdXUtZGVjb2RlLXBvc3RzY3JpcHQg bikpKQoKKGRlZnVuIGdudXMtdXUtZGVjb2RlLXBvc3RzY3JpcHQtYW5kLXNh dmUgKG4gZGlyKQogICJFeHRyYWN0cyBwb3N0c2NyaXB0IGFuZCBzYXZlcyB0 aGUgY3VycmVudCBhcnRpY2xlLiIKICAoaW50ZXJhY3RpdmUKICAgKGxpc3Qg Y3VycmVudC1wcmVmaXgtYXJnCgkgKGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkK CSAgKHJlYWQtZmlsZS1uYW1lICJTYXZlIGluIGRpcjogIgoJCQkgIGdudXMt dXUtZGVmYXVsdC1kaXIKCQkJICBnbnVzLXV1LWRlZmF1bHQtZGlyIHQpKSkp CiAgKGdudXMtdXUtZGVjb2RlLXdpdGgtbWV0aG9kICdnbnVzLXV1LWRlY29k ZS1wb3N0c2NyaXB0LWFydGljbGUKCQkJICAgICAgbiBkaXIgbmlsIG5pbCB0 KSkKCihkZWZ1biBnbnVzLXV1LWRlY29kZS1wb3N0c2NyaXB0LWFuZC1zYXZl LXZpZXcgKG4gZGlyKQogICJEZWNvZGVzLCB2aWV3cyBhbmQgc2F2ZXMgdGhl IHJlc3VsdGluZyBmaWxlLiIKICAoaW50ZXJhY3RpdmUKICAgKGxpc3QgY3Vy cmVudC1wcmVmaXgtYXJnCgkgKHJlYWQtZmlsZS1uYW1lICJXaGVyZSBkbyB5 b3Ugd2FudCB0byBzYXZlIHRoZSBmaWxlKHMpPyAiCgkJCSBnbnVzLXV1LWRl ZmF1bHQtZGlyCgkJCSBnbnVzLXV1LWRlZmF1bHQtZGlyIHQpKSkKICAobGV0 ICgoZ251cy12aWV3LXBzZXVkb3MgKG9yIGdudXMtdmlldy1wc2V1ZG9zICdh dXRvbWF0aWMpKSkKICAgIChnbnVzLXV1LWRlY29kZS1wb3N0c2NyaXB0LWFu ZC1zYXZlIG4gZGlyKSkpCgoKOzsgSW50ZXJuYWwgZnVuY3Rpb25zLgoKKGRl ZnVuIGdudXMtdXUtZGVjb2RlLXdpdGgtbWV0aG9kIChtZXRob2QgbiAmb3B0 aW9uYWwgc2F2ZSBub3QtaW5zZXJ0CgkJCQkJICBzY2FuIGNkaXIpCiAgKGdu dXMtdXUtaW5pdGlhbGl6ZSBzY2FuKQogICh3aGVuIHNhdmUKICAgIChzZXRx IGdudXMtdXUtZGVmYXVsdC1kaXIgc2F2ZSkpCiAgOzsgQ3JlYXRlIHRoZSBk aXJlY3Rvcnkgd2Ugc2F2ZSB0by4KICAod2hlbiAoYW5kIHNjYW4gY2RpciBz YXZlCgkgICAgIChub3QgKGZpbGUtZXhpc3RzLXAgc2F2ZSkpKQogICAgKG1h a2UtZGlyZWN0b3J5IHNhdmUgdCkpCiAgKGxldCAoKGFydGljbGVzIChnbnVz LXV1LWdldC1saXN0LW9mLWFydGljbGVzIG4pKQoJZmlsZXMpCiAgICAoc2V0 cSBmaWxlcyAoZ251cy11dS1ncmFiLWFydGljbGVzIGFydGljbGVzIG1ldGhv ZCB0KSkKICAgIChsZXQgKChnbnVzLWN1cnJlbnQtYXJ0aWNsZSAoY2FyIGFy dGljbGVzKSkpCiAgICAgICh3aGVuIHNjYW4KCShzZXRxIGZpbGVzIChnbnVz LXV1LXNjYW4tZGlyZWN0b3J5IGdudXMtdXUtd29yay1kaXIpKSkpCiAgICAo d2hlbiBzYXZlCiAgICAgIChnbnVzLXV1LXNhdmUtZmlsZXMgZmlsZXMgc2F2 ZSkpCiAgICAod2hlbiAoZXEgZ251cy11dS1kby1ub3QtdW5wYWNrLWFyY2hp dmVzIG5pbCkKICAgICAgKHNldHEgZmlsZXMgKGdudXMtdXUtdW5wYWNrLWZp bGVzIGZpbGVzKSkpCiAgICAoc2V0cSBmaWxlcyAobnJldmVyc2UgKGdudXMt dXUtZ2V0LWFjdGlvbnMgZmlsZXMpKSkKICAgIChvciBub3QtaW5zZXJ0IChu b3QgZ251cy1pbnNlcnQtcHNldWRvLWFydGljbGVzKQoJKGdudXMtc3VtbWFy eS1pbnNlcnQtcHNldWRvcyBmaWxlcyBzYXZlKSkpKQoKKGRlZnVuIGdudXMt dXUtc2Nhbi1kaXJlY3RvcnkgKGRpciAmb3B0aW9uYWwgcmVjKQogICJSZXR1 cm4gYSBsaXN0IG9mIGFsbCBmaWxlcyB1bmRlciBESVIuIgogIChsZXQgKChm aWxlcyAoZGlyZWN0b3J5LWZpbGVzIGRpciB0KSkKCW91dCBmaWxlKQogICAg KHdoaWxlIChzZXRxIGZpbGUgKHBvcCBmaWxlcykpCiAgICAgICh1bmxlc3Mg KG1lbWJlciAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBmaWxlKSAnKCIuIiAi Li4iKSkKCShwdXNoIChsaXN0IChjb25zICduYW1lIGZpbGUpCgkJICAgIChj b25zICdhcnRpY2xlIGdudXMtY3VycmVudC1hcnRpY2xlKSkKCSAgICAgIG91 dCkKCSh3aGVuIChmaWxlLWRpcmVjdG9yeS1wIGZpbGUpCgkgIChzZXRxIG91 dCAobmNvbmMgKGdudXMtdXUtc2Nhbi1kaXJlY3RvcnkgZmlsZSB0KSBvdXQp KSkpKQogICAgKGlmIHJlYwoJb3V0CiAgICAgIChucmV2ZXJzZSBvdXQpKSkp CgooZGVmdW4gZ251cy11dS1zYXZlLWZpbGVzIChmaWxlcyBkaXIpCiAgIlNh dmUgRklMRVMgaW4gRElSLiIKICAobGV0ICgobGVuIChsZW5ndGggZmlsZXMp KQoJKHJlZyAoY29uY2F0ICJeIiAocmVnZXhwLXF1b3RlIGdudXMtdXUtd29y ay1kaXIpKSkKCXRvLWZpbGUgZmlsZSBmcm9tZGlyKQogICAgKHdoaWxlIChz ZXRxIGZpbGUgKGNkciAoYXNzcSAnbmFtZSAocG9wIGZpbGVzKSkpKQogICAg ICAod2hlbiAoZmlsZS1leGlzdHMtcCBmaWxlKQoJKHN0cmluZy1tYXRjaCBy ZWcgZmlsZSkKCShzZXRxIGZyb21kaXIgKHN1YnN0cmluZyBmaWxlIChtYXRj aC1lbmQgMCkpKQoJKGlmIChmaWxlLWRpcmVjdG9yeS1wIGZpbGUpCgkgICAg KGdudXMtbWFrZS1kaXJlY3RvcnkgKGNvbmNhdCBkaXIgZnJvbWRpcikpCgkg IChzZXRxIHRvLWZpbGUgKGNvbmNhdCBkaXIgZnJvbWRpcikpCgkgICh3aGVu IChvciAobm90IChmaWxlLWV4aXN0cy1wIHRvLWZpbGUpKQoJCSAgICAoZXEg Z251cy11dS1iZS1kYW5nZXJvdXMgdCkKCQkgICAgKGFuZCBnbnVzLXV1LWJl LWRhbmdlcm91cwoJCQkgKGdudXMteS1vci1uLXAgKGZvcm1hdCAiJXMgZXhp c3RzOyBvdmVyd3JpdGU/ICIKCQkJCQkJdG8tZmlsZSkpKSkKCSAgICAoY29w eS1maWxlIGZpbGUgdG8tZmlsZSB0IHQpKSkpKQogICAgKGdudXMtbWVzc2Fn ZSA1ICJTYXZlZCAlZCBmaWxlJXMiIGxlbiAoaWYgKD0gbGVuIDEpICIiICJz IikpKSkKCjs7IEZ1bmN0aW9ucyBmb3Igc2F2aW5nIGFuZCBwb3NzaWJseSBk aWdlc3RpbmcgYXJ0aWNsZXMgd2l0aG91dAo7OyBhbnkgZGVjb2RpbmcuCgo7 OyBGdW5jdGlvbiBjYWxsZWQgYnkgZ251cy11dS1ncmFiLWFydGljbGVzIHRv IHRyZWF0IGVhY2ggYXJ0aWNsZS4KKGRlZnVuIGdudXMtdXUtc2F2ZS1hcnRp Y2xlIChidWZmZXIgaW4tc3RhdGUpCiAgKGNvbmQKICAgKGdudXMtdXUtc2F2 ZS1zZXBhcmF0ZS1hcnRpY2xlcwogICAgKHNhdmUtZXhjdXJzaW9uCiAgICAg IChzZXQtYnVmZmVyIGJ1ZmZlcikKICAgICAgKGxldCAoKGNvZGluZy1zeXN0 ZW0tZm9yLXdyaXRlIG1tLXRleHQtY29kaW5nLXN5c3RlbSkpCgkoZ251cy13 cml0ZS1idWZmZXIKCSAoY29uY2F0IGdudXMtdXUtc2F2ZWQtYXJ0aWNsZS1u YW1lIGdudXMtY3VycmVudC1hcnRpY2xlKSkpCiAgICAgIChjb25kICgoZXEg aW4tc3RhdGUgJ2ZpcnN0KSAobGlzdCBnbnVzLXV1LXNhdmVkLWFydGljbGUt bmFtZSAnYmVnaW4pKQoJICAgICgoZXEgaW4tc3RhdGUgJ2ZpcnN0LWFuZC1s YXN0KSAobGlzdCBnbnVzLXV1LXNhdmVkLWFydGljbGUtbmFtZQoJCQkJCQkg J2JlZ2luICdlbmQpKQoJICAgICgoZXEgaW4tc3RhdGUgJ2xhc3QpIChsaXN0 ICdlbmQpKQoJICAgICh0IChsaXN0ICdtaWRkbGUpKSkpKQogICAoKG5vdCBn bnVzLXV1LXNhdmUtaW4tZGlnZXN0KQogICAgKHNhdmUtZXhjdXJzaW9uCiAg ICAgIChzZXQtYnVmZmVyIGJ1ZmZlcikKICAgICAgKHdyaXRlLXJlZ2lvbiAo cG9pbnQtbWluKSAocG9pbnQtbWF4KSBnbnVzLXV1LXNhdmVkLWFydGljbGUt bmFtZSB0KQogICAgICAoY29uZCAoKGVxIGluLXN0YXRlICdmaXJzdCkgKGxp c3QgZ251cy11dS1zYXZlZC1hcnRpY2xlLW5hbWUgJ2JlZ2luKSkKCSAgICAo KGVxIGluLXN0YXRlICdmaXJzdC1hbmQtbGFzdCkgKGxpc3QgZ251cy11dS1z YXZlZC1hcnRpY2xlLW5hbWUKCQkJCQkJICdiZWdpbiAnZW5kKSkKCSAgICAo KGVxIGluLXN0YXRlICdsYXN0KSAobGlzdCAnZW5kKSkKCSAgICAodCAobGlz dCAnbWlkZGxlKSkpKSkKICAgKHQKICAgIChsZXQgKChoZWFkZXIgKGdudXMt c3VtbWFyeS1hcnRpY2xlLWhlYWRlcikpKQogICAgICAocHVzaCAoY29ucyAo bWFpbC1oZWFkZXItZnJvbSBoZWFkZXIpCgkJICAobWFpbC1oZWFkZXItc3Vi amVjdCBoZWFkZXIpKQoJICAgIGdudXMtdXUtZGlnZXN0LWZyb20tc3ViamVj dCkpCiAgICAobGV0ICgobmFtZSAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBn bnVzLXV1LXNhdmVkLWFydGljbGUtbmFtZSkpCgkgIGJlZyBzdWJqIGhlYWRl cnMgaGVhZGxpbmUgc29ydGhlYWQgYm9keSBlbmQtc3RyaW5nIHN0YXRlKQog ICAgICAoaWYgKG9yIChlcSBpbi1zdGF0ZSAnZmlyc3QpCgkgICAgICAoZXEg aW4tc3RhdGUgJ2ZpcnN0LWFuZC1sYXN0KSkKCSAgKHByb2duCgkgICAgKHNl dHEgc3RhdGUgKGxpc3QgJ2JlZ2luKSkKCSAgICAoc2F2ZS1leGN1cnNpb24K CSAgICAgIChzZXQtYnVmZmVyIChnbnVzLWdldC1idWZmZXItY3JlYXRlICIq Z251cy11dS1ib2R5KiIpKQoJICAgICAgKGVyYXNlLWJ1ZmZlcikpCgkgICAg KHNhdmUtZXhjdXJzaW9uCgkgICAgICAoc2V0LWJ1ZmZlciAoZ251cy1nZXQt YnVmZmVyLWNyZWF0ZSAiKmdudXMtdXUtcHJlKiIpKQoJICAgICAgKGVyYXNl LWJ1ZmZlcikKCSAgICAgIChpbnNlcnQgKGZvcm1hdAoJCSAgICAgICAiRGF0 ZTogJXNcbkZyb206ICVzXG5TdWJqZWN0OiAlcyBEaWdlc3RcblxuIgoJCSAg ICAgICAobWVzc2FnZS1tYWtlLWRhdGUpIG5hbWUgbmFtZSkpCgkgICAgICAo d2hlbiAoYW5kIG1lc3NhZ2UtZm9yd2FyZC1hcy1taW1lIGdudXMtdXUtZGln ZXN0LWJ1ZmZlcikKCQkoaW5zZXJ0ICI8I3BhcnQgdHlwZT1tZXNzYWdlL3Jm YzgyMj5cblN1YmplY3Q6IFRvcGljc1xuXG4iKSkKCSAgICAgIChpbnNlcnQg IlRvcGljczpcbiIpKSkKCSh3aGVuIChub3QgKGVxIGluLXN0YXRlICdlbmQp KQoJICAoc2V0cSBzdGF0ZSAobGlzdCAnbWlkZGxlKSkpKQogICAgICAoc2F2 ZS1leGN1cnNpb24KCShzZXQtYnVmZmVyICIqZ251cy11dS1ib2R5KiIpCgko Z290by1jaGFyIChzZXRxIGJlZyAocG9pbnQtbWF4KSkpCgkoc2F2ZS1leGN1 cnNpb24KCSAgKHNhdmUtcmVzdHJpY3Rpb24KCSAgICAoc2V0LWJ1ZmZlciBi dWZmZXIpCgkgICAgKGxldCAoYnVmZmVyLXJlYWQtb25seSkKCSAgICAgIChz ZXQtdGV4dC1wcm9wZXJ0aWVzIChwb2ludC1taW4pIChwb2ludC1tYXgpIG5p bCkKCSAgICAgIDs7IFRoZXNlIHR3byBhcmUgbmVjZXNzYXJ5IGZvciBYRW1h Y3MgMTkuMTIgZmFzY2lzbS4KCSAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAo cG9pbnQtbWluKSAocG9pbnQtbWF4KSAnaW52aXNpYmxlIG5pbCkKCSAgICAg IChwdXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQtbWluKSAocG9pbnQtbWF4KSAn aW50YW5naWJsZSBuaWwpKQoJICAgICh3aGVuIChhbmQgbWVzc2FnZS1mb3J3 YXJkLWFzLW1pbWUKCQkgICAgICAgbWVzc2FnZS1mb3J3YXJkLXNob3ctbW1s CgkJICAgICAgIGdudXMtdXUtZGlnZXN0LWJ1ZmZlcikKCSAgICAgIChtbS1l bmFibGUtbXVsdGlieXRlKQoJICAgICAgKG1pbWUtdG8tbW1sKSkKCSAgICAo Z290by1jaGFyIChwb2ludC1taW4pKQoJICAgIChzZWFyY2gtZm9yd2FyZCAi XG5cbiIpCgkgICAgKHVubGVzcyAoYW5kIG1lc3NhZ2UtZm9yd2FyZC1hcy1t aW1lIGdudXMtdXUtZGlnZXN0LWJ1ZmZlcikKCSAgICAgIDs7IFF1b3RlIGFs bCAzMC1kYXNoIGxpbmVzLgoJICAgICAgKHNhdmUtZXhjdXJzaW9uCgkJKHdo aWxlIChyZS1zZWFyY2gtZm9yd2FyZCAiXi0iIG5pbCB0KQoJCSAgKGJlZ2lu bmluZy1vZi1saW5lKQoJCSAgKGRlbGV0ZS1jaGFyIDEpCgkJICAoaW5zZXJ0 ICItICIpKSkpCgkgICAgKHNldHEgYm9keSAoYnVmZmVyLXN1YnN0cmluZyAo MS0gKHBvaW50KSkgKHBvaW50LW1heCkpKQoJICAgIChuYXJyb3ctdG8tcmVn aW9uIChwb2ludC1taW4pIChwb2ludCkpCgkgICAgKGlmIChub3QgKHNldHEg aGVhZGVycyBnbnVzLXV1LWRpZ2VzdC1oZWFkZXJzKSkKCQkoc2V0cSBzb3J0 aGVhZCAoYnVmZmVyLXN0cmluZykpCgkgICAgICAod2hpbGUgaGVhZGVycwoJ CShzZXRxIGhlYWRsaW5lIChjYXIgaGVhZGVycykpCgkJKHNldHEgaGVhZGVy cyAoY2RyIGhlYWRlcnMpKQoJCShnb3RvLWNoYXIgKHBvaW50LW1pbikpCgkJ KHdoaWxlIChyZS1zZWFyY2gtZm9yd2FyZCBoZWFkbGluZSBuaWwgdCkKCQkg IChzZXRxIHNvcnRoZWFkCgkJCShjb25jYXQgc29ydGhlYWQKCQkJCShidWZm ZXItc3Vic3RyaW5nCgkJCQkgKG1hdGNoLWJlZ2lubmluZyAwKQoJCQkJIChv ciAoYW5kIChyZS1zZWFyY2gtZm9yd2FyZCAiXlteIFx0XSIgbmlsIHQpCgkJ CQkJICAoMS0gKHBvaW50KSkpCgkJCQkgICAgIChwcm9nbiAoZm9yd2FyZC1s aW5lIDEpIChwb2ludCkpKSkpKSkpKQoJICAgICh3aWRlbikpKQoJKGlmIChh bmQgbWVzc2FnZS1mb3J3YXJkLWFzLW1pbWUgZ251cy11dS1kaWdlc3QtYnVm ZmVyKQoJICAoaWYgbWVzc2FnZS1mb3J3YXJkLXNob3ctbW1sCgkgICAgICAo cHJvZ24KCQkoaW5zZXJ0ICJcbjwjbW1sIHR5cGU9bWVzc2FnZS9yZmM4MjI+ XG4iKQoJCShpbnNlcnQgc29ydGhlYWQpIChnb3RvLWNoYXIgKHBvaW50LW1h eCkpCgkJKGluc2VydCBib2R5KSAoZ290by1jaGFyIChwb2ludC1tYXgpKQoJ CShpbnNlcnQgIlxuPCMvbW1sPlxuIikpCgkgICAgKGxldCAoKGJ1ZiAobW1s LWdlbmVyYXRlLW5ldy1idWZmZXIgIiAqbW1sKiIpKSkKCSAgICAgICh3aXRo LWN1cnJlbnQtYnVmZmVyIGJ1ZgoJCShpbnNlcnQgc29ydGhlYWQpCgkJKGdv dG8tY2hhciAocG9pbnQtbWluKSkKCQkod2hlbiAocmUtc2VhcmNoLWZvcndh cmQgIl5TdWJqZWN0OiBcXCguKlxcKSQiIG5pbCB0KQoJCSAgKHNldHEgc3Vi aiAoYnVmZmVyLXN1YnN0cmluZyAobWF0Y2gtYmVnaW5uaW5nIDEpCgkJCQkJ ICAgICAgIChtYXRjaC1lbmQgMSkpKSkKCQkoZ290by1jaGFyIChwb2ludC1t YXgpKQoJCShpbnNlcnQgYm9keSkpCgkgICAgICAoaW5zZXJ0ICJcbjwjcGFy dCB0eXBlPW1lc3NhZ2UvcmZjODIyIgoJCSAgICAgICIgYnVmZmVyPVwiIiAo YnVmZmVyLW5hbWUgYnVmKSAiXCI+XG4iKSkpCgkgIChpbnNlcnQgc29ydGhl YWQpIChnb3RvLWNoYXIgKHBvaW50LW1heCkpCgkgIChpbnNlcnQgYm9keSkg KGdvdG8tY2hhciAocG9pbnQtbWF4KSkKCSAgKGluc2VydCAoY29uY2F0ICJc biIgKG1ha2Utc3RyaW5nIDMwID8tKSAiXG5cbiIpKSkKCShnb3RvLWNoYXIg YmVnKQoJKHdoZW4gKHJlLXNlYXJjaC1mb3J3YXJkICJeU3ViamVjdDogXFwo LipcXCkkIiBuaWwgdCkKCSAgKHNldHEgc3ViaiAoYnVmZmVyLXN1YnN0cmlu ZyAobWF0Y2gtYmVnaW5uaW5nIDEpIChtYXRjaC1lbmQgMSkpKSkKCSh3aGVu IHN1YmoKCSAgKHNhdmUtZXhjdXJzaW9uCgkgICAgKHNldC1idWZmZXIgIipn bnVzLXV1LXByZSoiKQoJICAgIChpbnNlcnQgKGZvcm1hdCAiICAgJXNcbiIg c3ViaikpKSkpCiAgICAgICh3aGVuIChvciAoZXEgaW4tc3RhdGUgJ2xhc3Qp CgkJKGVxIGluLXN0YXRlICdmaXJzdC1hbmQtbGFzdCkpCgkoaWYgKGFuZCBt ZXNzYWdlLWZvcndhcmQtYXMtbWltZSBnbnVzLXV1LWRpZ2VzdC1idWZmZXIp CgkgICAgKHdpdGgtY3VycmVudC1idWZmZXIgZ251cy11dS1kaWdlc3QtYnVm ZmVyCgkgICAgICAoZXJhc2UtYnVmZmVyKQoJICAgICAgKGluc2VydC1idWZm ZXItc3Vic3RyaW5nICIqZ251cy11dS1wcmUqIikKCSAgICAgIChnb3RvLWNo YXIgKHBvaW50LW1heCkpCgkgICAgICAoaW5zZXJ0LWJ1ZmZlci1zdWJzdHJp bmcgIipnbnVzLXV1LWJvZHkqIikpCgkgIChzYXZlLWV4Y3Vyc2lvbgoJICAg IChzZXQtYnVmZmVyICIqZ251cy11dS1wcmUqIikKCSAgICAoaW5zZXJ0IChm b3JtYXQgIlxuXG4lc1xuXG4iIChtYWtlLXN0cmluZyA3MCA/LSkpKQoJICAg IChpZiBnbnVzLXV1LWRpZ2VzdC1idWZmZXIKCQkod2l0aC1jdXJyZW50LWJ1 ZmZlciBnbnVzLXV1LWRpZ2VzdC1idWZmZXIKCQkgIChlcmFzZS1idWZmZXIp CgkJICAoaW5zZXJ0LWJ1ZmZlci1zdWJzdHJpbmcgIipnbnVzLXV1LXByZSoi KSkKCSAgICAgIChsZXQgKChjb2Rpbmctc3lzdGVtLWZvci13cml0ZSBtbS10 ZXh0LWNvZGluZy1zeXN0ZW0pKQoJCShnbnVzLXdyaXRlLWJ1ZmZlciBnbnVz LXV1LXNhdmVkLWFydGljbGUtbmFtZSkpKSkKCSAgKHNhdmUtZXhjdXJzaW9u CgkgICAgKHNldC1idWZmZXIgIipnbnVzLXV1LWJvZHkqIikKCSAgICAoZ290 by1jaGFyIChwb2ludC1tYXgpKQoJICAgIChpbnNlcnQKCSAgICAgKGNvbmNh dCAoc2V0cSBlbmQtc3RyaW5nIChmb3JtYXQgIkVuZCBvZiAlcyBEaWdlc3Qi IG5hbWUpKQoJCSAgICAgIlxuIikpCgkgICAgKGluc2VydCAoY29uY2F0ICht YWtlLXN0cmluZyAobGVuZ3RoIGVuZC1zdHJpbmcpID8qKSAiXG4iKSkKCSAg ICAoaWYgZ251cy11dS1kaWdlc3QtYnVmZmVyCgkJKHdpdGgtY3VycmVudC1i dWZmZXIgZ251cy11dS1kaWdlc3QtYnVmZmVyCgkJICAoZ290by1jaGFyIChw b2ludC1tYXgpKQoJCSAgKGluc2VydC1idWZmZXItc3Vic3RyaW5nICIqZ251 cy11dS1ib2R5KiIpKQoJICAgICAgKGxldCAoKGNvZGluZy1zeXN0ZW0tZm9y LXdyaXRlIG1tLXRleHQtY29kaW5nLXN5c3RlbSkKCQkgICAgKGZpbGUtbmFt ZS1jb2Rpbmctc3lzdGVtIG5ubWFpbC1wYXRobmFtZS1jb2Rpbmctc3lzdGVt KSkKCQkod3JpdGUtcmVnaW9uCgkJIChwb2ludC1taW4pIChwb2ludC1tYXgp IGdudXMtdXUtc2F2ZWQtYXJ0aWNsZS1uYW1lIHQpKSkpKQoJKGdudXMta2ls bC1idWZmZXIgIipnbnVzLXV1LXByZSoiKQoJKGdudXMta2lsbC1idWZmZXIg IipnbnVzLXV1LWJvZHkqIikKCShwdXNoICdlbmQgc3RhdGUpKQogICAgICAo aWYgKG1lbXEgJ2JlZ2luIHN0YXRlKQoJICAoY29ucyBnbnVzLXV1LXNhdmVk LWFydGljbGUtbmFtZSBzdGF0ZSkKCXN0YXRlKSkpKSkKCjs7IEJpbmhleCB0 cmVhdG1lbnQgLSBub3QgdmVyeSBhZHZhbmNlZC4KCihkZWZ2YXIgZ251cy11 dS1iaW5oZXgtYm9keS1saW5lCiAgIl5bXjpdLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u JCIpCihkZWZ2YXIgZ251cy11dS1iaW5oZXgtYmVnaW4tbGluZQogICJeOi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLiQiKQooZGVmdmFyIGdudXMtdXUtYmluaGV4LWVu ZC1saW5lCiAgIjokIikKCihkZWZ1biBnbnVzLXV1LWJpbmhleC1hcnRpY2xl IChidWZmZXIgaW4tc3RhdGUpCiAgKGxldCAoc3RhdGUgc3RhcnQtY2hhcikK ICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAoc2V0LWJ1ZmZlciBidWZmZXIp CiAgICAgICh3aWRlbikKICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkK ICAgICAgKHdoZW4gKG5vdCAocmUtc2VhcmNoLWZvcndhcmQgZ251cy11dS1i aW5oZXgtYmVnaW4tbGluZSBuaWwgdCkpCgkod2hlbiAobm90IChyZS1zZWFy Y2gtZm9yd2FyZCBnbnVzLXV1LWJpbmhleC1ib2R5LWxpbmUgbmlsIHQpKQoJ ICAoc2V0cSBzdGF0ZSAobGlzdCAnd3JvbmctdHlwZSkpKSkKCiAgICAgIChp ZiAobWVtcSAnd3JvbmctdHlwZSBzdGF0ZSkKCSAgKCkKCShiZWdpbm5pbmct b2YtbGluZSkKCShzZXRxIHN0YXJ0LWNoYXIgKHBvaW50KSkKCShpZiAobG9v a2luZy1hdCBnbnVzLXV1LWJpbmhleC1iZWdpbi1saW5lKQoJICAgIChwcm9n bgoJICAgICAgKHNldHEgc3RhdGUgKGxpc3QgJ2JlZ2luKSkKCSAgICAgICh3 cml0ZS1yZWdpb24gKHBvaW50LW1pbikgKHBvaW50LW1pbikKCQkJICAgIGdu dXMtdXUtYmluaGV4LWFydGljbGUtbmFtZSkpCgkgIChzZXRxIHN0YXRlIChs aXN0ICdtaWRkbGUpKSkKCShnb3RvLWNoYXIgKHBvaW50LW1heCkpCgkocmUt c2VhcmNoLWJhY2t3YXJkIChjb25jYXQgZ251cy11dS1iaW5oZXgtYm9keS1s aW5lICJcXHwiCgkJCQkgICAgZ251cy11dS1iaW5oZXgtZW5kLWxpbmUpCgkJ CSAgICBuaWwgdCkKCSh3aGVuIChsb29raW5nLWF0IGdudXMtdXUtYmluaGV4 LWVuZC1saW5lKQoJICAoc2V0cSBzdGF0ZSAoaWYgKG1lbXEgJ2JlZ2luIHN0 YXRlKQoJCQkgIChjb25zICdlbmQgc3RhdGUpCgkJCShsaXN0ICdlbmQpKSkp CgkoYmVnaW5uaW5nLW9mLWxpbmUpCgkoZm9yd2FyZC1saW5lIDEpCgkod2hl biAoZmlsZS1leGlzdHMtcCBnbnVzLXV1LWJpbmhleC1hcnRpY2xlLW5hbWUp CgkgIChtbS1hcHBlbmQtdG8tZmlsZSBzdGFydC1jaGFyIChwb2ludCkgZ251 cy11dS1iaW5oZXgtYXJ0aWNsZS1uYW1lKSkpKQogICAgKGlmIChtZW1xICdi ZWdpbiBzdGF0ZSkKCShjb25zIGdudXMtdXUtYmluaGV4LWFydGljbGUtbmFt ZSBzdGF0ZSkKICAgICAgc3RhdGUpKSkKCjs7IFBvc3RTY3JpcHQKCihkZWZ1 biBnbnVzLXV1LWRlY29kZS1wb3N0c2NyaXB0LWFydGljbGUgKHByb2Nlc3Mt YnVmZmVyIGluLXN0YXRlKQogIChsZXQgKChzdGF0ZSAobGlzdCAnb2spKQoJ c3RhcnQtY2hhciBlbmQtY2hhciBmaWxlLW5hbWUpCiAgICAoc2F2ZS1leGN1 cnNpb24KICAgICAgKHNldC1idWZmZXIgcHJvY2Vzcy1idWZmZXIpCiAgICAg IChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAgIChpZiAobm90IChyZS1z ZWFyY2gtZm9yd2FyZCBnbnVzLXV1LXBvc3RzY3JpcHQtYmVnaW4tc3RyaW5n IG5pbCB0KSkKCSAgKHNldHEgc3RhdGUgKGxpc3QgJ3dyb25nLXR5cGUpKQoJ KGJlZ2lubmluZy1vZi1saW5lKQoJKHNldHEgc3RhcnQtY2hhciAocG9pbnQp KQoJKGlmIChub3QgKHJlLXNlYXJjaC1mb3J3YXJkIGdudXMtdXUtcG9zdHNj cmlwdC1lbmQtc3RyaW5nIG5pbCB0KSkKCSAgICAoc2V0cSBzdGF0ZSAobGlz dCAnd3JvbmctdHlwZSkpCgkgIChzZXRxIGVuZC1jaGFyIChwb2ludCkpCgkg IChzZXQtYnVmZmVyIChnbnVzLWdldC1idWZmZXItY3JlYXRlIGdudXMtdXUt b3V0cHV0LWJ1ZmZlci1uYW1lKSkKCSAgKGluc2VydC1idWZmZXItc3Vic3Ry aW5nIHByb2Nlc3MtYnVmZmVyIHN0YXJ0LWNoYXIgZW5kLWNoYXIpCgkgIChz ZXRxIGZpbGUtbmFtZSAoY29uY2F0IGdudXMtdXUtd29yay1kaXIKCQkJCSAg KGNkciBnbnVzLWFydGljbGUtY3VycmVudCkgIi5wcyIpKQoJICAod3JpdGUt cmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgpIGZpbGUtbmFtZSkKCSAg KHNldHEgc3RhdGUgKGxpc3QgZmlsZS1uYW1lICdiZWdpbiAnZW5kKSkpKSkK ICAgIHN0YXRlKSkKCgo7OyBGaW5kIGFjdGlvbnMuCgooZGVmdW4gZ251cy11 dS1nZXQtYWN0aW9ucyAoZmlsZXMpCiAgKGxldCAoKG9maWxlcyBmaWxlcykK CWFjdGlvbiBuYW1lKQogICAgKHdoaWxlIGZpbGVzCiAgICAgIChzZXRxIG5h bWUgKGNkciAoYXNzcSAnbmFtZSAoY2FyIGZpbGVzKSkpKQogICAgICAoYW5k CiAgICAgICAoc2V0cSBhY3Rpb24gKGdudXMtdXUtZ2V0LWFjdGlvbiBuYW1l KSkKICAgICAgIChzZXRjYXIgZmlsZXMgKG5jb25jIChsaXN0IChpZiAoc3Ry aW5nPSBhY3Rpb24gImdudXMtdXUtYXJjaGl2ZSIpCgkJCQkgICAgICAoY29u cyAnYWN0aW9uICJmaWxlIikKCQkJCSAgICAoY29ucyAnYWN0aW9uIGFjdGlv bikpCgkJCQkgIChjb25zICdleGVjdXRlIChnbnVzLXV1LWNvbW1hbmQKCQkJ CQkJICBhY3Rpb24gbmFtZSkpKQoJCQkgICAgKGNhciBmaWxlcykpKSkKICAg ICAgKHNldHEgZmlsZXMgKGNkciBmaWxlcykpKQogICAgb2ZpbGVzKSkKCihk ZWZ1biBnbnVzLXV1LWdldC1hY3Rpb24gKGZpbGUtbmFtZSkKICAobGV0IChh Y3Rpb24pCiAgICAoc2V0cSBhY3Rpb24KCSAgKGdudXMtdXUtY2hvb3NlLWFj dGlvbgoJICAgZmlsZS1uYW1lCgkgICAoYXBwZW5kCgkgICAgZ251cy11dS11 c2VyLXZpZXctcnVsZXMKCSAgICAoaWYgZ251cy11dS1pZ25vcmUtZGVmYXVs dC12aWV3LXJ1bGVzCgkJbmlsCgkgICAgICBnbnVzLXV1LWRlZmF1bHQtdmll dy1ydWxlcykKCSAgICBnbnVzLXV1LXVzZXItdmlldy1ydWxlcy1lbmQpKSkK ICAgICh3aGVuIChhbmQgKG5vdCAoc3RyaW5nPSAob3IgYWN0aW9uICIiKSAi Z251cy11dS1hcmNoaXZlIikpCgkgICAgICAgZ251cy11dS12aWV3LXdpdGgt bWV0YW1haWwpCiAgICAgICh3aGVuIChzZXRxIGFjdGlvbgoJCSAgKGdudXMt dXUtY2hvb3NlLWFjdGlvbiBmaWxlLW5hbWUgZ251cy11dS1leHQtdG8tbWlt ZS1saXN0KSkKCShzZXRxIGFjdGlvbiAoZm9ybWF0ICJtZXRhbWFpbCAtZCAt YiAtYyBcIiVzXCIiIGFjdGlvbikpKSkKICAgIGFjdGlvbikpCgoKOzsgRnVu Y3Rpb25zIGZvciB0cmVhdGluZyBzdWJqZWN0cyBhbmQgY29sbGVjdGluZyBz ZXJpZXMuCgooZGVmdW4gZ251cy11dS1yZWdpbml6ZS1zdHJpbmcgKHN0cmlu ZykKICA7OyBUYWtlcyBhIHN0cmluZyBhbmQgcHV0cyBhIFwgaW4gZnJvbnQg b2YgZXZlcnkgc3BlY2lhbCBjaGFyYWN0ZXI7CiAgOzsgcmVwbGFjZXMgdGhl IGxhc3QgdGhpbmcgdGhhdCBsb29rcyBsaWtlICIyLzMiIHdpdGggIlswLTld Ky8zIgogIDs7IG9yLCBpZiBpdCBjYW4ndCBmaW5kIHNvbWV0aGluZyBsaWtl IHRoYXQsIHRyaWVzICIyIG9mIDMiLCB0aGVuCiAgOzsgZmluYWxseSBqdXN0 IHJlcGxhY2VzIHRoZSBuZXh0IHRvIGxhc3QgbnVtYmVyIHdpdGggIlswLTld KyIuCiAgKHNhdmUtZXhjdXJzaW9uCiAgICAoc2V0LWJ1ZmZlciAoZ251cy1n ZXQtYnVmZmVyLWNyZWF0ZSBnbnVzLXV1LW91dHB1dC1idWZmZXItbmFtZSkp CiAgICAoYnVmZmVyLWRpc2FibGUtdW5kbykKICAgIChlcmFzZS1idWZmZXIp CiAgICAoaW5zZXJ0IChyZWdleHAtcXVvdGUgc3RyaW5nKSkKCiAgICAoc2V0 cSBjYXNlLWZvbGQtc2VhcmNoIG5pbCkKCiAgICAoZW5kLW9mLWxpbmUpCiAg ICAoaWYgKHJlLXNlYXJjaC1iYWNrd2FyZCAiXFwoW14wLTldXFwpWzAtOV0r L1xcKFswLTldK1xcKSIgbmlsIHQpCgkocmVwbGFjZS1tYXRjaCAiXFwxWzAt OV0rL1xcMiIpCgogICAgICAoZW5kLW9mLWxpbmUpCiAgICAgIChpZiAocmUt c2VhcmNoLWJhY2t3YXJkICJcXChbXjAtOV1cXClbMC05XStbIFx0XSpvZlsg XHRdKlxcKFswLTldK1xcKSIKCQkJICAgICAgbmlsIHQpCgkgIChyZXBsYWNl LW1hdGNoICJcXDFbMC05XSsgb2YgXFwyIikKCgkoZW5kLW9mLWxpbmUpCgko aWYgKHJlLXNlYXJjaC1iYWNrd2FyZCAiXFwoW14wLTldXFwpWzAtOV0rXFwo W14wLTldK1xcKVswLTldKyIKCQkJCW5pbCB0KQoJICAgIChyZXBsYWNlLW1h dGNoICJcXDFbMC05XStcXDJbMC05XSsiIHQgbmlsIG5pbCBuaWwpKSkpCgog ICAgKGdvdG8tY2hhciAxKQogICAgKHdoaWxlIChyZS1zZWFyY2gtZm9yd2Fy ZCAiWyBcdF0rIiBuaWwgdCkKICAgICAgKHJlcGxhY2UtbWF0Y2ggIlsgXHRd KyIgdCB0KSkKCiAgICAoYnVmZmVyLXN0cmluZykpKQoKKGRlZnVuIGdudXMt dXUtZ2V0LWxpc3Qtb2YtYXJ0aWNsZXMgKG4pCiAgOzsgSWYgTiBpcyBub24t bmlsLCB0aGUgYXJ0aWNsZSBudW1iZXJzIG9mIHRoZSBOIG5leHQgYXJ0aWNs ZXMKICA7OyB3aWxsIGJlIHJldHVybmVkLgogIDs7IElmIGFueSBhcnRpY2xl cyBoYXZlIGJlZW4gbWFya2VkIGFzIHByb2Nlc3NhYmxlLCB0aGV5IHdpbGwg YmUKICA7OyByZXR1cm5lZC4KICA7OyBGYWlsaW5nIHRoYXQsIGFydGljbGVz IHRoYXQgaGF2ZSBzdWJqZWN0cyB0aGF0IGFyZSBwYXJ0IG9mIHRoZQogIDs7 IHNhbWUgInNlcmllcyIgYXMgdGhlIGN1cnJlbnQgd2lsbCBiZSByZXR1cm5l ZC4KICAobGV0IChhcnRpY2xlcykKICAgIChjb25kCiAgICAgKG4KICAgICAg KHNldHEgbiAocHJlZml4LW51bWVyaWMtdmFsdWUgbikpCiAgICAgIChsZXQg KChiYWNrd2FyZCAoPCBuIDApKQoJICAgIChuIChhYnMgbikpKQoJKHNhdmUt ZXhjdXJzaW9uCgkgICh3aGlsZSAoYW5kICg+IG4gMCkKCQkgICAgICAocHVz aCAoZ251cy1zdW1tYXJ5LWFydGljbGUtbnVtYmVyKQoJCQkgICAgYXJ0aWNs ZXMpCgkJICAgICAgKGdudXMtc3VtbWFyeS1zZWFyY2gtZm9yd2FyZCBuaWwg bmlsIGJhY2t3YXJkKSkKCSAgICAoc2V0cSBuICgxLSBuKSkpKQoJKG5yZXZl cnNlIGFydGljbGVzKSkpCiAgICAgKGdudXMtbmV3c2dyb3VwLXByb2Nlc3Nh YmxlCiAgICAgIChyZXZlcnNlIGdudXMtbmV3c2dyb3VwLXByb2Nlc3NhYmxl KSkKICAgICAodAogICAgICAoZ251cy11dS1maW5kLWFydGljbGVzLW1hdGNo aW5nKSkpKSkKCihkZWZ1biBnbnVzLXV1LXN0cmluZzwgKGwxIGwyKQogIChz dHJpbmc8IChjYXIgbDEpIChjYXIgbDIpKSkKCihkZWZ1biBnbnVzLXV1LWZp bmQtYXJ0aWNsZXMtbWF0Y2hpbmcKICAoJm9wdGlvbmFsIHN1YmplY3Qgb25s eS11bnJlYWQgZG8tbm90LXRyYW5zbGF0ZSkKICA7OyBGaW5kcyBhbGwgYXJ0 aWNsZXMgdGhhdCBtYXRjaGVzIHRoZSByZWdleHAgU1VCSkVDVC4gIElmIGl0 IGlzCiAgOzsgbmlsLCB0aGUgY3VycmVudCBhcnRpY2xlIG5hbWUgd2lsbCBi ZSB1c2VkLiAgSWYgT05MWS1VTlJFQUQgaXMKICA7OyBub24tbmlsLCBvbmx5 IHVucmVhZCBhcnRpY2xlcyBhcmUgY2hvc2VuLiAgSWYgRE8tTk9ULVRSQU5T TEFURSBpcwogIDs7IG5vbi1uaWwsIGFydGljbGUgbmFtZXMgYXJlIG5vdCBl cXVhbGl6ZWQgYmVmb3JlIHNvcnRpbmcuCiAgKGxldCAoKHN1YmplY3QgKG9y IHN1YmplY3QKCQkgICAgIChnbnVzLXV1LXJlZ2luaXplLXN0cmluZyAoZ251 cy1zdW1tYXJ5LWFydGljbGUtc3ViamVjdCkpKSkKCWxpc3Qtb2Ytc3ViamVj dHMpCiAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgKHdoZW4gc3ViamVjdAoJ OzsgQ29sbGVjdCBhbGwgc3ViamVjdHMgbWF0Y2hpbmcgc3ViamVjdC4KCShs ZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpCgkgICAgICAoZGF0YSBnbnVzLW5l d3Nncm91cC1kYXRhKQoJICAgICAgc3ViaiBtYXJrIGQpCgkgICh3aGlsZSBk YXRhCgkgICAgKHNldHEgZCAocG9wIGRhdGEpKQoJICAgIChhbmQgKG5vdCAo Z251cy1kYXRhLXBzZXVkby1wIGQpKQoJCSAob3IgKG5vdCBvbmx5LXVucmVh ZCkKCQkgICAgICg9IChzZXRxIG1hcmsgKGdudXMtZGF0YS1tYXJrIGQpKQoJ CQlnbnVzLXVucmVhZC1tYXJrKQoJCSAgICAgKD0gbWFyayBnbnVzLXRpY2tl ZC1tYXJrKQoJCSAgICAgKD0gbWFyayBnbnVzLWRvcm1hbnQtbWFyaykpCgkJ IChzZXRxIHN1YmogKG1haWwtaGVhZGVyLXN1YmplY3QgKGdudXMtZGF0YS1o ZWFkZXIgZCkpKQoJCSAoc3RyaW5nLW1hdGNoIHN1YmplY3Qgc3ViaikKCQkg KHB1c2ggKGNvbnMgc3ViaiAoZ251cy1kYXRhLW51bWJlciBkKSkKCQkgICAg ICAgbGlzdC1vZi1zdWJqZWN0cykpKSkKCgk7OyBFeHBhbmQgbnVtYmVycywg c29ydCwgYW5kIHJldHVybiB0aGUgbGlzdCBvZiBhcnRpY2xlCgk7OyBudW1i ZXJzLgoJKG1hcGNhciAnY2RyCgkJKHNvcnQgKGdudXMtdXUtZXhwYW5kLW51 bWJlcnMKCQkgICAgICAgbGlzdC1vZi1zdWJqZWN0cwoJCSAgICAgICAobm90 IGRvLW5vdC10cmFuc2xhdGUpKQoJCSAgICAgICdnbnVzLXV1LXN0cmluZzwp KSkpKSkKCihkZWZ1biBnbnVzLXV1LWV4cGFuZC1udW1iZXJzIChzdHJpbmct bGlzdCAmb3B0aW9uYWwgdHJhbnNsYXRlKQogIDs7IFRha2VzIGEgbGlzdCBv ZiBzdHJpbmdzIGFuZCAiZXhwYW5kcyIgYWxsIG51bWJlcnMgaW4gYWxsIHRo ZQogIDs7IHN0cmluZ3MuICBUaGF0IGlzLCB0aGlzIGZ1bmN0aW9uIG1ha2Vz IGFsbCBudW1iZXJzIGVxdWFsIGxlbmd0aCBieQogIDs7IHByZXBlbmRpbmcg bG90cyBvZiB6ZXJvZXMgYmVmb3JlIGVhY2ggbnVtYmVyLiAgVGhpcyBpcyB0 byBlYXNlIGxhdGVyCiAgOzsgc29ydGluZyB0byBmaW5kIG91dCB3aGF0IHNl cXVlbmNlIHRoZSBhcnRpY2xlcyBhcmUgc3VwcG9zZWQgdG8gYmUKICA7OyBk ZWNvZGVkIGluLiAgUmV0dXJucyB0aGUgbGlzdCBvZiBleHBhbmRlZCBzdHJp bmdzLgogIChsZXQgKChvdXQtbGlzdCBzdHJpbmctbGlzdCkKCXN0cmluZykK ICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAoc2V0LWJ1ZmZlciAoZ251cy1n ZXQtYnVmZmVyLWNyZWF0ZSBnbnVzLXV1LW91dHB1dC1idWZmZXItbmFtZSkp CiAgICAgIChidWZmZXItZGlzYWJsZS11bmRvKQogICAgICAod2hpbGUgc3Ry aW5nLWxpc3QKCShlcmFzZS1idWZmZXIpCgkoaW5zZXJ0IChjYWFyIHN0cmlu Zy1saXN0KSkKCTs7IFRyYW5zbGF0ZSBtdWx0aXBsZSBzcGFjZXMgdG8gb25l IHNwYWNlLgoJKGdvdG8tY2hhciAocG9pbnQtbWluKSkKCSh3aGlsZSAocmUt c2VhcmNoLWZvcndhcmQgIlsgXHRdKyIgbmlsIHQpCgkgIChyZXBsYWNlLW1h dGNoICIgIikpCgk7OyBUcmFuc2xhdGUgYWxsIGNoYXJhY3RlcnMgdG8gImEi LgoJKGdvdG8tY2hhciAocG9pbnQtbWluKSkKCSh3aGVuIHRyYW5zbGF0ZQoJ ICAod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkICJbQS1aYS16XSIgbmlsIHQp CgkgICAgKHJlcGxhY2UtbWF0Y2ggImEiIHQgdCkpKQoJOzsgRXhwYW5kIG51 bWJlcnMuCgkoZ290by1jaGFyIChwb2ludC1taW4pKQoJKHdoaWxlIChyZS1z ZWFyY2gtZm9yd2FyZCAiWzAtOV0rIiBuaWwgdCkKCSAgKGlnbm9yZS1lcnJv cnMKCSAgICAocmVwbGFjZS1tYXRjaAoJICAgICAoZm9ybWF0ICIlMDZkIgoJ CSAgICAgKHN0cmluZy10by1udW1iZXIgKGJ1ZmZlci1zdWJzdHJpbmcKCQkJ CSAgICAgKG1hdGNoLWJlZ2lubmluZyAwKSAobWF0Y2gtZW5kIDApKSkpKSkp Cgkoc2V0cSBzdHJpbmcgKGJ1ZmZlci1zdWJzdHJpbmcgMSAocG9pbnQtbWF4 KSkpCgkoc2V0Y2FyIChjYXIgc3RyaW5nLWxpc3QpIHN0cmluZykKCShzZXRx IHN0cmluZy1saXN0IChjZHIgc3RyaW5nLWxpc3QpKSkpCiAgICBvdXQtbGlz dCkpCgoKOzsgYGdudXMtdXUtZ3JhYi1hcnRpY2xlcycgaXMgdGhlIGdlbmVy YWwgbXVsdGktYXJ0aWNsZSB0cmVhdG1lbnQKOzsgZnVuY3Rpb24uICBJdCB0 YWtlcyBhIGxpc3Qgb2YgYXJ0aWNsZXMgdG8gYmUgZ3JhYmJlZCBhbmQgYSBm dW5jdGlvbgo7OyB0byBhcHBseSB0byBlYWNoIGFydGljbGUuCjs7Cjs7IFRo ZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgc2hvdWxkIHRha2UgdHdvIHBhcmFt ZXRlcnMuICBUaGUgZmlyc3QKOzsgcGFyYW1ldGVyIGlzIHRoZSBhcnRpY2xl IGJ1ZmZlci4gIFRoZSBmdW5jdGlvbiBzaG91bGQgbGVhdmUgdGhlCjs7IHJl c3VsdCwgaWYgYW55LCBpbiB0aGlzIGJ1ZmZlci4gIE1vc3QgdHJlYXRtZW50 IGZ1bmN0aW9ucyB3aWxsIGp1c3QKOzsgZ2VuZXJhdGUgZmlsZXMuLi4KOzsK OzsgVGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgdGhlIHN0YXRlIG9mIHRoZSBs aXN0IG9mIGFydGljbGVzLCBhbmQgY2FuCjs7IGhhdmUgZm91ciB2YWx1ZXM6 IGBmaXJzdCcsIGBtaWRkbGUnLCBgbGFzdCcgYW5kIGBmaXJzdC1hbmQtbGFz dCcuCjs7Cjs7IFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgbGlzdC4g IFRoZSBsaXN0IG1heSBjb250YWluIHRoZQo7OyBmb2xsb3dpbmcgc3ltYm9s czoKOzsgYGVycm9yJyBpZiBhbiBlcnJvciBvY2N1cnJlZAo7OyBgYmVnaW4n IGlmIHRoZSBiZWdpbm5pbmcgb2YgYW4gZW5jb2RlZCBmaWxlIGhhcyBiZWVu IHJlY2VpdmVkCjs7ICAgSWYgdGhlIGxpc3QgcmV0dXJuZWQgY29udGFpbnMg YSBgYmVnaW4nLCB0aGUgZmlyc3QgZWxlbWVudCBvZgo7OyAgIHRoZSBsaXN0 ICptdXN0KiBiZSBhIHN0cmluZyB3aXRoIHRoZSBmaWxlIG5hbWUgb2YgdGhl IGRlY29kZWQKOzsgICBmaWxlLgo7OyBgZW5kJyBpZiB0aGUgZW5kIG9mIGFu IGVuY29kZWQgZmlsZSBoYXMgYmVlbiByZWNlaXZlZAo7OyBgbWlkZGxlJyBp ZiB0aGUgYXJ0aWNsZSB3YXMgYSBib2R5IHBhcnQgb2YgYW4gZW5jb2RlZCBm aWxlCjs7IGB3cm9uZy10eXBlJyBpZiB0aGUgYXJ0aWNsZSB3YXMgbm90IGEg cGFydCBvZiBhbiBlbmNvZGVkIGZpbGUKOzsgYG9rJywgd2hpY2ggY2FuIGJl IHVzZWQgZXZlcnl0aGluZyBpcyBvawoKKGRlZnZhciBnbnVzLXV1LWhhcy1i ZWVuLWdyYWJiZWQgbmlsKQoKKGRlZnVuIGdudXMtdXUtdW5tYXJrLWxpc3Qt b2YtZ3JhYmJlZCAoJm9wdGlvbmFsIGRvbnQtdW5tYXJrLWxhc3QtYXJ0aWNs ZSkKICAobGV0IChhcnQpCiAgICAoaWYgKG5vdCAoYW5kIGdudXMtdXUtaGFz LWJlZW4tZ3JhYmJlZAoJCSAgZ251cy11dS11bm1hcmstYXJ0aWNsZXMtbm90 LWRlY29kZWQpKQoJKCkKICAgICAgKHdoZW4gZG9udC11bm1hcmstbGFzdC1h cnRpY2xlCgkoc2V0cSBhcnQgKGNhciBnbnVzLXV1LWhhcy1iZWVuLWdyYWJi ZWQpKQoJKHNldHEgZ251cy11dS1oYXMtYmVlbi1ncmFiYmVkIChjZHIgZ251 cy11dS1oYXMtYmVlbi1ncmFiYmVkKSkpCiAgICAgICh3aGlsZSBnbnVzLXV1 LWhhcy1iZWVuLWdyYWJiZWQKCShnbnVzLXN1bW1hcnktdGljay1hcnRpY2xl IChjYXIgZ251cy11dS1oYXMtYmVlbi1ncmFiYmVkKSB0KQoJKHNldHEgZ251 cy11dS1oYXMtYmVlbi1ncmFiYmVkIChjZHIgZ251cy11dS1oYXMtYmVlbi1n cmFiYmVkKSkpCiAgICAgICh3aGVuIGRvbnQtdW5tYXJrLWxhc3QtYXJ0aWNs ZQoJKHNldHEgZ251cy11dS1oYXMtYmVlbi1ncmFiYmVkIChsaXN0IGFydCkp KSkpKQoKOzsgVGhpcyBmdW5jdGlvbiB0YWtlcyBhIGxpc3Qgb2YgYXJ0aWNs ZXMgYW5kIGEgZnVuY3Rpb24gdG8gYXBwbHkgdG8KOzsgZWFjaCBhcnRpY2xl IGdyYWJiZWQuCjs7Cjs7IFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIGxpc3Qg b2YgZmlsZXMgZGVjb2RlZCBpZiB0aGUgZ3JhYmJpbmcgYW5kCjs7IHRoZSBw cm9jZXNzLWZ1bmN0aW9uIGhhcyBiZWVuIHN1Y2Nlc3NmdWwgYW5kIG5pbCBv dGhlcndpc2UuCihkZWZ1biBnbnVzLXV1LWdyYWItYXJ0aWNsZXMgKGFydGlj bGVzIHByb2Nlc3MtZnVuY3Rpb24KCQkJCSAgICAgICAmb3B0aW9uYWwgc2xv cHB5IGxpbWl0IG5vLWVycm9ycykKICAobGV0ICgoc3RhdGUgJ2ZpcnN0KQoJ KGdudXMtYXN5bmNocm9ub3VzIG5pbCkKCShnbnVzLWluaGliaXQtdHJlYXRt ZW50IHQpCgloYXMtYmVlbi1iZWdpbiBhcnRpY2xlIHJlc3VsdC1maWxlIHJl c3VsdC1maWxlcyBwcm9jZXNzLXN0YXRlCglnbnVzLXN1bW1hcnktZGlzcGxh eS1hcnRpY2xlLWZ1bmN0aW9uCglnbnVzLWFydGljbGUtcHJlcGFyZS1ob29r IGdudXMtZGlzcGxheS1taW1lLWZ1bmN0aW9uCglhcnRpY2xlLXNlcmllcyBm aWxlcykKCiAgICAod2hpbGUgKGFuZCBhcnRpY2xlcwoJCShub3QgKG1lbXEg J2Vycm9yIHByb2Nlc3Mtc3RhdGUpKQoJCShvciBzbG9wcHkKCQkgICAgKG5v dCAobWVtcSAnZW5kIHByb2Nlc3Mtc3RhdGUpKSkpCgogICAgICAoc2V0cSBh cnRpY2xlIChwb3AgYXJ0aWNsZXMpKQogICAgICAod2hlbiAodmVjdG9ycCAo Z251cy1zdW1tYXJ5LWFydGljbGUtaGVhZGVyIGFydGljbGUpKQoJKHB1c2gg YXJ0aWNsZSBhcnRpY2xlLXNlcmllcykKCgkodW5sZXNzIGFydGljbGVzCgkg IChpZiAoZXEgc3RhdGUgJ2ZpcnN0KQoJICAgICAgKHNldHEgc3RhdGUgJ2Zp cnN0LWFuZC1sYXN0KQoJICAgIChzZXRxIHN0YXRlICdsYXN0KSkpCgoJKGxl dCAoKHBhcnQgKGdudXMtdXUtcGFydC1udW1iZXIgYXJ0aWNsZSkpKQoJICAo Z251cy1tZXNzYWdlIDYgIkdldHRpbmcgYXJ0aWNsZSAlZCVzLi4uIgoJCQlh cnRpY2xlIChpZiAoc3RyaW5nPSBwYXJ0ICIiKSAiIiAoY29uY2F0ICIsICIg cGFydCkpKSkKCShnbnVzLXN1bW1hcnktZGlzcGxheS1hcnRpY2xlIGFydGlj bGUpCgoJOzsgUHVzaCB0aGUgYXJ0aWNsZSB0byB0aGUgcHJvY2Vzc2luZyBm dW5jdGlvbi4KCShzYXZlLWV4Y3Vyc2lvbgoJICAoc2V0LWJ1ZmZlciBnbnVz LW9yaWdpbmFsLWFydGljbGUtYnVmZmVyKQoJICAobGV0ICgoYnVmZmVyLXJl YWQtb25seSBuaWwpKQoJICAgIChzYXZlLWV4Y3Vyc2lvbgoJICAgICAgKHNl dC1idWZmZXIgZ251cy1zdW1tYXJ5LWJ1ZmZlcikKCSAgICAgIChzZXRxIHBy b2Nlc3Mtc3RhdGUKCQkgICAgKGZ1bmNhbGwgcHJvY2Vzcy1mdW5jdGlvbgoJ CQkgICAgIGdudXMtb3JpZ2luYWwtYXJ0aWNsZS1idWZmZXIgc3RhdGUpKSkp KQoKCShnbnVzLXN1bW1hcnktcmVtb3ZlLXByb2Nlc3MtbWFyayBhcnRpY2xl KQoKCTs7IElmIHRoaXMgaXMgdGhlIGJlZ2lubmluZyBvZiBhIGRlY29kZWQg ZmlsZSwgd2UgcHVzaCBpdAoJOzsgb24gdG8gYSBsaXN0LgoJKHdoZW4gKG9y IChtZW1xICdiZWdpbiBwcm9jZXNzLXN0YXRlKQoJCSAgKGFuZCAob3IgKGVx IHN0YXRlICdmaXJzdCkKCQkJICAgKGVxIHN0YXRlICdmaXJzdC1hbmQtbGFz dCkpCgkJICAgICAgIChtZW1xICdvayBwcm9jZXNzLXN0YXRlKSkpCgkgICh3 aGVuIGhhcy1iZWVuLWJlZ2luCgkgICAgOzsgSWYgdGhlcmUgaXMgYSBgcmVz dWx0LWZpbGUnIGhlcmUsIHRoYXQgbWVhbnMgdGhhdCB0aGUKCSAgICA7OyBm aWxlIHdhcyB1bnN1Y2Nlc3NmdWxseSBkZWNvZGVkLCBzbyB3ZSBkZWxldGUg aXQuCgkgICAgKHdoZW4gKGFuZCByZXN1bHQtZmlsZQoJCSAgICAgICAoZmls ZS1leGlzdHMtcCByZXN1bHQtZmlsZSkKCQkgICAgICAgKG5vdCBnbnVzLXV1 LWJlLWRhbmdlcm91cykKCQkgICAgICAgKG9yIChlcSBnbnVzLXV1LWJlLWRh bmdlcm91cyB0KQoJCQkgICAoZ251cy15LW9yLW4tcAoJCQkgICAgKGZvcm1h dCAiRGVsZXRlIHVuc3VjY2Vzc2Z1bGx5IGRlY29kZWQgZmlsZSAlcyIKCQkJ CSAgICByZXN1bHQtZmlsZSkpKSkKCSAgICAgIChkZWxldGUtZmlsZSByZXN1 bHQtZmlsZSkpKQoJICAod2hlbiAobWVtcSAnYmVnaW4gcHJvY2Vzcy1zdGF0 ZSkKCSAgICAoc2V0cSByZXN1bHQtZmlsZSAoY2FyIHByb2Nlc3Mtc3RhdGUp KSkKCSAgKHNldHEgaGFzLWJlZW4tYmVnaW4gdCkpCgoJOzsgQ2hlY2sgd2hl dGhlciB3ZSBoYXZlIGRlY29kZWQgb25lIGNvbXBsZXRlIGZpbGUuCgkod2hl biAobWVtcSAnZW5kIHByb2Nlc3Mtc3RhdGUpCgkgIChzZXRxIGFydGljbGUt c2VyaWVzIG5pbCkKCSAgKHNldHEgaGFzLWJlZW4tYmVnaW4gbmlsKQoJICAo aWYgKHN0cmluZ3AgcmVzdWx0LWZpbGUpCgkgICAgICAoc2V0cSBmaWxlcyAo bGlzdCByZXN1bHQtZmlsZSkpCgkgICAgKHNldHEgZmlsZXMgcmVzdWx0LWZp bGUpKQoJICAoc2V0cSByZXN1bHQtZmlsZSAoY2FyIGZpbGVzKSkKCSAgKHdo aWxlIGZpbGVzCgkgICAgKHB1c2ggKGxpc3QgKGNvbnMgJ25hbWUgKHBvcCBm aWxlcykpCgkJCShjb25zICdhcnRpY2xlIGFydGljbGUpKQoJCSAgcmVzdWx0 LWZpbGVzKSkKCSAgOzsgQWxsb3cgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyB0 byBiZSBydW4gb24gdGhpcyBmaWxlLgoJICAod2hlbiBnbnVzLXV1LWdyYWJi ZWQtZmlsZS1mdW5jdGlvbnMKCSAgICAobGV0ICgoZnVuY3MgZ251cy11dS1n cmFiYmVkLWZpbGUtZnVuY3Rpb25zKSkKCSAgICAgICh1bmxlc3MgKGxpc3Rw IGZ1bmNzKQoJCShzZXRxIGZ1bmNzIChsaXN0IGZ1bmNzKSkpCgkgICAgICAo d2hpbGUgZnVuY3MKCQkoZnVuY2FsbCAocG9wIGZ1bmNzKSByZXN1bHQtZmls ZSkpKSkKCSAgKHNldHEgcmVzdWx0LWZpbGUgbmlsKQoJICA7OyBDaGVjayB3 aGV0aGVyIHdlIGhhdmUgZGVjb2RlZCBlbm91Z2ggYXJ0aWNsZXMuCgkgIChh bmQgbGltaXQgKD0gKGxlbmd0aCByZXN1bHQtZmlsZXMpIGxpbWl0KQoJICAg ICAgIChzZXRxIGFydGljbGVzIG5pbCkpKQoKCTs7IElmIHRoaXMgaXMgdGhl IGxhc3QgYXJ0aWNsZSB0byBiZSBkZWNvZGVkLCBhbmQKCTs7IHdlIHN0aWxs IGhhdmVuJ3QgcmVhY2hlZCB0aGUgZW5kLCB0aGVuIHdlIGRlbGV0ZQoJOzsg dGhlIHBhcnRpYWxseSBkZWNvZGVkIGZpbGUuCgkoYW5kIChvciAoZXEgc3Rh dGUgJ2xhc3QpIChlcSBzdGF0ZSAnZmlyc3QtYW5kLWxhc3QpKQoJICAgICAo bm90IChtZW1xICdlbmQgcHJvY2Vzcy1zdGF0ZSkpCgkgICAgIHJlc3VsdC1m aWxlCgkgICAgIChmaWxlLWV4aXN0cy1wIHJlc3VsdC1maWxlKQoJICAgICAo bm90IGdudXMtdXUtYmUtZGFuZ2Vyb3VzKQoJICAgICAob3IgKGVxIGdudXMt dXUtYmUtZGFuZ2Vyb3VzIHQpCgkJIChnbnVzLXktb3Itbi1wCgkJICAoZm9y bWF0ICJEZWxldGUgaW5jb21wbGV0ZSBmaWxlICVzPyAiIHJlc3VsdC1maWxl KSkpCgkgICAgIChkZWxldGUtZmlsZSByZXN1bHQtZmlsZSkpCgoJOzsgSWYg dGhpcyB3YXMgYSBmaWxlIG9mIHRoZSB3cm9uZyBzb3J0LCB0aGVuCgkod2hl biAoYW5kIChvciAobWVtcSAnd3JvbmctdHlwZSBwcm9jZXNzLXN0YXRlKQoJ CSAgICAgICAobWVtcSAnZXJyb3IgcHJvY2Vzcy1zdGF0ZSkpCgkJICAgZ251 cy11dS11bm1hcmstYXJ0aWNsZXMtbm90LWRlY29kZWQpCgkgIChnbnVzLXN1 bW1hcnktdGljay1hcnRpY2xlIGFydGljbGUgdCkpCgoJOzsgU2V0IHRoZSBu ZXcgc2VyaWVzIHN0YXRlLgoJKGlmIChhbmQgKG5vdCBoYXMtYmVlbi1iZWdp bikKCQkgKG5vdCBzbG9wcHkpCgkJIChvciAobWVtcSAnZW5kIHByb2Nlc3Mt c3RhdGUpCgkJICAgICAobWVtcSAnbWlkZGxlIHByb2Nlc3Mtc3RhdGUpKSkK CSAgICAocHJvZ24KCSAgICAgIChzZXRxIHByb2Nlc3Mtc3RhdGUgKGxpc3Qg J2Vycm9yKSkKCSAgICAgIChnbnVzLW1lc3NhZ2UgMiAiTm8gYmVnaW4gcGFy dCBhdCB0aGUgYmVnaW5uaW5nIikKCSAgICAgIChzbGVlcC1mb3IgMikpCgkg IChzZXRxIHN0YXRlICdtaWRkbGUpKSkpCiAgICAKICAgICAgOzsgV2hlbiB0 aGVyZSBhcmUgbm8gcmVzdWx0LWZpbGVzLCB0aGVuIHNvbWV0aGluZyBtdXN0 IGJlIHdyb25nLgogICAgKGlmIHJlc3VsdC1maWxlcwoJKG1lc3NhZ2UgIiIp CiAgICAgIChjb25kCiAgICAgICAoKG5vdCBoYXMtYmVlbi1iZWdpbikKCShn bnVzLW1lc3NhZ2UgMiAiV3JvbmcgdHlwZSBmaWxlIikpCiAgICAgICAoKG1l bXEgJ2Vycm9yIHByb2Nlc3Mtc3RhdGUpCgkoZ251cy1tZXNzYWdlIDIgIkFu IGVycm9yIG9jY3VycmVkIGR1cmluZyBkZWNvZGluZyIpKQogICAgICAgKChu b3QgKG9yIChtZW1xICdvayBwcm9jZXNzLXN0YXRlKQoJCSAobWVtcSAnZW5k IHByb2Nlc3Mtc3RhdGUpKSkKCShnbnVzLW1lc3NhZ2UgMiAiRW5kIG9mIGFy dGljbGVzIHJlYWNoZWQgYmVmb3JlIGVuZCBvZiBmaWxlIikpKQogICAgICA7 OyBNYWtlIHVuc3VjY2Vzc2Z1bGx5IGRlY29kZWQgYXJ0aWNsZXMgdW5yZWFk LgogICAgICAod2hlbiBnbnVzLXV1LXVubWFyay1hcnRpY2xlcy1ub3QtZGVj b2RlZAoJKHdoaWxlIGFydGljbGUtc2VyaWVzCgkgIChnbnVzLXN1bW1hcnkt dGljay1hcnRpY2xlIChwb3AgYXJ0aWNsZS1zZXJpZXMpIHQpKSkpCgogICAg OzsgVGhlIG9yaWdpbmFsIGFydGljbGUgYnVmZmVyIGlzIGhvc2VkLCBzaG9v dCBpdCBkb3duLgogICAgKGdudXMta2lsbC1idWZmZXIgZ251cy1vcmlnaW5h bC1hcnRpY2xlLWJ1ZmZlcikKICAgIChzZXRxIGdudXMtY3VycmVudC1hcnRp Y2xlIG5pbCkKICAgIHJlc3VsdC1maWxlcykpCgooZGVmdW4gZ251cy11dS1n cmFiLXZpZXcgKGZpbGUpCiAgIlZpZXcgRklMRSB1c2luZyB0aGUgZ251cy11 dSBtZXRob2RzLiIKICAobGV0ICgoYWN0aW9uIChnbnVzLXV1LWdldC1hY3Rp b24gZmlsZSkpKQogICAgKGdudXMtZXhlY3V0ZS1jb21tYW5kCiAgICAgKGlm IChzdHJpbmctbWF0Y2ggIiUiIGFjdGlvbikKCSAoZm9ybWF0IGFjdGlvbiBm aWxlKQogICAgICAgKGNvbmNhdCBhY3Rpb24gIiAiIGZpbGUpKQogICAgIChl cSBnbnVzLXZpZXctcHNldWRvcyAnbm90LWNvbmZpcm0pKSkpCgooZGVmdW4g Z251cy11dS1ncmFiLW1vdmUgKGZpbGUpCiAgIk1vdmUgRklMRSB0byBzb21l d2hlcmUuIgogICh3aGVuIGdudXMtdXUtZGVmYXVsdC1kaXIKICAgIChsZXQg KCh0by1maWxlIChjb25jYXQgKGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkgZ251 cy11dS1kZWZhdWx0LWRpcikKCQkJICAgKGZpbGUtbmFtZS1ub25kaXJlY3Rv cnkgZmlsZSkpKSkKICAgICAgKHJlbmFtZS1maWxlIGZpbGUgdG8tZmlsZSkK ICAgICAgKHVubGVzcyAoZmlsZS1leGlzdHMtcCBmaWxlKQoJKG1ha2Utc3lt Ym9saWMtbGluayB0by1maWxlIGZpbGUpKSkpKQoKKGRlZnVuIGdudXMtdXUt cGFydC1udW1iZXIgKGFydGljbGUpCiAgKGxldCogKChoZWFkZXIgKGdudXMt c3VtbWFyeS1hcnRpY2xlLWhlYWRlciBhcnRpY2xlKSkKCSAoc3ViamVjdCAo YW5kIGhlYWRlciAobWFpbC1oZWFkZXItc3ViamVjdCBoZWFkZXIpKSkKCSAo cGFydCBuaWwpKQogICAgKGlmIHN1YmplY3QKCSh3aGlsZSAoc3RyaW5nLW1h dGNoICJbMC05XSsvWzAtOV0rXFx8WzAtOV0rWyBcdF0rb2ZbIFx0XStbMC05 XSsiCgkJCSAgICAgc3ViamVjdCkKCSAgKHNldHEgcGFydCAobWF0Y2gtc3Ry aW5nIDAgc3ViamVjdCkpCgkgIChzZXRxIHN1YmplY3QgKHN1YnN0cmluZyBz dWJqZWN0IChtYXRjaC1lbmQgMCkpKSkpCiAgICAob3IgcGFydAoJKHdoaWxl IChzdHJpbmctbWF0Y2ggIlswLTldK1teMC05XStbMC05XSsiIHN1YmplY3Qp CgkgIChzZXRxIHBhcnQgKG1hdGNoLXN0cmluZyAwIHN1YmplY3QpKQoJICAo c2V0cSBzdWJqZWN0IChzdWJzdHJpbmcgc3ViamVjdCAobWF0Y2gtZW5kIDAp KSkpKQogICAgKG9yIHBhcnQgIiIpKSkKCihkZWZ1biBnbnVzLXV1LXV1ZGVj b2RlLXNlbnRpbmVsIChwcm9jZXNzIGV2ZW50KQogIChkZWxldGUtcHJvY2Vz cyAoZ2V0LXByb2Nlc3MgcHJvY2VzcykpKQoKKGRlZnVuIGdudXMtdXUtdXVz dHJpcC1hcnRpY2xlIChwcm9jZXNzLWJ1ZmZlciBpbi1zdGF0ZSkKICA7OyBV dWRlY29kZXMgYSBmaWxlIGFzeW5jaHJvbm91c2x5LgogIChzYXZlLWV4Y3Vy c2lvbgogICAgKHNldC1idWZmZXIgcHJvY2Vzcy1idWZmZXIpCiAgICAobGV0 ICgoc3RhdGUgKGxpc3QgJ3dyb25nLXR5cGUpKQoJICBwcm9jZXNzLWNvbm5l Y3Rpb24tdHlwZSBjYXNlLWZvbGQtc2VhcmNoIGJ1ZmZlci1yZWFkLW9ubHkK CSAgZmlsZXMgc3RhcnQtY2hhcikKICAgICAgKGdvdG8tY2hhciAocG9pbnQt bWluKSkKCiAgICAgIDs7IERlYWwgd2l0aCBeTSBhdCB0aGUgZW5kIG9mIHRo ZSBsaW5lcy4KICAgICAgKHdoZW4gZ251cy11dS1raWxsLWNhcnJpYWdlLXJl dHVybgoJKHNhdmUtZXhjdXJzaW9uCgkgICh3aGlsZSAoc2VhcmNoLWZvcndh cmQgIlxyIiBuaWwgdCkKCSAgICAoZGVsZXRlLWJhY2t3YXJkLWNoYXIgMSkp KSkKCiAgICAgICh3aGlsZSAob3IgKHJlLXNlYXJjaC1mb3J3YXJkIGdudXMt dXUtYmVnaW4tc3RyaW5nIG5pbCB0KQoJCSAocmUtc2VhcmNoLWZvcndhcmQg Z251cy11dS1ib2R5LWxpbmUgbmlsIHQpKQoJKHNldHEgc3RhdGUgKGxpc3Qg J29rKSkKCTs7IE9rLCB3ZSBhcmUgYXQgdGhlIGZpcnN0IHV1Y29kZWQgbGlu ZS4KCShiZWdpbm5pbmctb2YtbGluZSkKCShzZXRxIHN0YXJ0LWNoYXIgKHBv aW50KSkKCgkoaWYgKG5vdCAobG9va2luZy1hdCBnbnVzLXV1LWJlZ2luLXN0 cmluZykpCgkgICAgKHNldHEgc3RhdGUgKGxpc3QgJ21pZGRsZSkpCgkgIDs7 IFRoaXMgaXMgdGhlIGJlZ2lubmluZyBvZiBhIHV1ZW5jb2RlZCBhcnRpY2xl LgoJICA7OyBXZSByZXBsYWNlIGNlcnRhaW4gY2hhcmFjdGVycyB0aGF0IGNv dWxkIG1ha2UgdGhpbmdzIG1lc3N5LgoJICAoc2V0cSBnbnVzLXV1LWZpbGUt bmFtZQoJCShnbnVzLW1hcC1mdW5jdGlvbgoJCSBtbS1maWxlLW5hbWUtcmV3 cml0ZS1mdW5jdGlvbnMgCgkJIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5ICht YXRjaC1zdHJpbmcgMSkpKSkKCSAgKHJlcGxhY2UtbWF0Y2ggKGNvbmNhdCAi YmVnaW4gNjQ0ICIgZ251cy11dS1maWxlLW5hbWUpIHQgdCkKCgkgIDs7IFJl bW92ZSBhbnkgbm9uIGdudXMtdXUtYm9keS1saW5lIHJpZ2h0IGFmdGVyIHN0 YXJ0LgoJICAoZm9yd2FyZC1saW5lIDEpCgkgICh3aGlsZSAoYW5kIChub3Qg KGVvYnApKQoJCSAgICAgIChub3QgKGxvb2tpbmctYXQgZ251cy11dS1ib2R5 LWxpbmUpKSkKCSAgICAoZ251cy1kZWxldGUtbGluZSkpCgoJICA7OyBJZiBh IHByb2Nlc3MgaXMgcnVubmluZywgd2Uga2lsbCBpdC4KCSAgKHdoZW4gKGFu ZCBnbnVzLXV1LXV1ZGVjb2RlLXByb2Nlc3MKCQkgICAgIChtZW1xIChwcm9j ZXNzLXN0YXR1cyBnbnVzLXV1LXV1ZGVjb2RlLXByb2Nlc3MpCgkJCSAgICco cnVuIHN0b3ApKSkKCSAgICAoZGVsZXRlLXByb2Nlc3MgZ251cy11dS11dWRl Y29kZS1wcm9jZXNzKQoJICAgIChnbnVzLXV1LXVubWFyay1saXN0LW9mLWdy YWJiZWQgdCkpCgoJICA7OyBTdGFydCBhIG5ldyB1dWRlY29kaW5nIHByb2Nl c3MuCgkgIChsZXQgKChjZGlyIGRlZmF1bHQtZGlyZWN0b3J5KSkKCSAgICAo dW53aW5kLXByb3RlY3QKCQkocHJvZ24KCQkgIChjZCBnbnVzLXV1LXdvcmst ZGlyKQoJCSAgKHNldHEgZ251cy11dS11dWRlY29kZS1wcm9jZXNzCgkJCShz dGFydC1wcm9jZXNzCgkJCSAiKnV1ZGVjb2RlKiIKCQkJIChnbnVzLWdldC1i dWZmZXItY3JlYXRlIGdudXMtdXUtb3V0cHV0LWJ1ZmZlci1uYW1lKQoJCQkg c2hlbGwtZmlsZS1uYW1lIHNoZWxsLWNvbW1hbmQtc3dpdGNoCgkJCSAoZm9y bWF0ICJjZCAlcyAlcyB1dWRlY29kZSIgZ251cy11dS13b3JrLWRpcgoJCQkJ IGdudXMtc2hlbGwtY29tbWFuZC1zZXBhcmF0b3IpKSkpCgkgICAgICAoY2Qg Y2RpcikpKQoJICAoc2V0LXByb2Nlc3Mtc2VudGluZWwKCSAgIGdudXMtdXUt dXVkZWNvZGUtcHJvY2VzcyAnZ251cy11dS11dWRlY29kZS1zZW50aW5lbCkK CSAgKHNldHEgc3RhdGUgKGxpc3QgJ2JlZ2luKSkKCSAgKHB1c2ggKGNvbmNh dCBnbnVzLXV1LXdvcmstZGlyIGdudXMtdXUtZmlsZS1uYW1lKSBmaWxlcykp CgoJOzsgV2UgbG9vayBmb3IgdGhlIGVuZCBvZiB0aGUgdGhpbmcgdG8gYmUg ZGVjb2RlZC4KCShpZiAocmUtc2VhcmNoLWZvcndhcmQgZ251cy11dS1lbmQt c3RyaW5nIG5pbCB0KQoJICAgIChwdXNoICdlbmQgc3RhdGUpCgkgIChnb3Rv LWNoYXIgKHBvaW50LW1heCkpCgkgIChyZS1zZWFyY2gtYmFja3dhcmQgZ251 cy11dS1ib2R5LWxpbmUgbmlsIHQpKQoKCShmb3J3YXJkLWxpbmUgMSkKCgko d2hlbiBnbnVzLXV1LXV1ZGVjb2RlLXByb2Nlc3MKCSAgKHdoZW4gKG1lbXEg KHByb2Nlc3Mtc3RhdHVzIGdudXMtdXUtdXVkZWNvZGUtcHJvY2VzcykgJyhy dW4gc3RvcCkpCgkgICAgOzsgVHJ5IHRvIGNvcnJlY3QgbWlzaGFuZGxlZCB1 dWNvZGUuCgkgICAgKHdoZW4gZ251cy11dS1jb3JyZWN0LXN0cmlwcGVkLXV1 Y29kZQoJICAgICAgKGdudXMtdXUtY2hlY2stY29ycmVjdC1zdHJpcHBlZC11 dWNvZGUgc3RhcnQtY2hhciAocG9pbnQpKSkKCSAgICAoZ251cy1ydW4taG9v a3MgJ2dudXMtdXUtcHJlLXV1ZGVjb2RlLWhvb2spCgoJICAgIDs7IFNlbmQg dGhlIHRleHQgdG8gdGhlIHByb2Nlc3MuCgkgICAgKGNvbmRpdGlvbi1jYXNl IG5pbAoJCShwcm9jZXNzLXNlbmQtcmVnaW9uCgkJIGdudXMtdXUtdXVkZWNv ZGUtcHJvY2VzcyBzdGFydC1jaGFyIChwb2ludCkpCgkgICAgICAoZXJyb3IK CSAgICAgICAocHJvZ24KCQkgKGRlbGV0ZS1wcm9jZXNzIGdudXMtdXUtdXVk ZWNvZGUtcHJvY2VzcykKCQkgKGdudXMtbWVzc2FnZSAyICJnbnVzLXV1OiBD b3VsZG4ndCB1dWRlY29kZSIpCgkJIChzZXRxIHN0YXRlIChsaXN0ICd3cm9u Zy10eXBlKSkpKSkKCgkgICAgKGlmIChtZW1xICdlbmQgc3RhdGUpCgkJKHBy b2duCgkJICA7OyBTZW5kIGFuIEVPRiwganVzdCBpbiBjYXNlLgoJCSAgKGln bm9yZS1lcnJvcnMKCQkgICAgKHByb2Nlc3Mtc2VuZC1lb2YgZ251cy11dS11 dWRlY29kZS1wcm9jZXNzKSkKCQkgICh3aGlsZSAobWVtcSAocHJvY2Vzcy1z dGF0dXMgZ251cy11dS11dWRlY29kZS1wcm9jZXNzKQoJCQkgICAgICAgJyhv cGVuIHJ1bikpCgkJICAgIChhY2NlcHQtcHJvY2Vzcy1vdXRwdXQgZ251cy11 dS11dWRlY29kZS1wcm9jZXNzIDEpKSkKCSAgICAgICh3aGVuIChvciAobm90 IGdudXMtdXUtdXVkZWNvZGUtcHJvY2VzcykKCQkJKG5vdCAobWVtcSAocHJv Y2Vzcy1zdGF0dXMgZ251cy11dS11dWRlY29kZS1wcm9jZXNzKQoJCQkJICAg JyhydW4gc3RvcCkpKSkKCQkoc2V0cSBzdGF0ZSAobGlzdCAnd3JvbmctdHlw ZSkpKSkpKSkKCiAgICAgIChpZiAobWVtcSAnYmVnaW4gc3RhdGUpCgkgIChj b25zIChpZiAoPSAobGVuZ3RoIGZpbGVzKSAxKSAoY2FyIGZpbGVzKSBmaWxl cykgc3RhdGUpCglzdGF0ZSkpKSkKCihkZWZ2YXIgZ251cy11dS11bnNoYXIt d2FybmluZwogICIqKiogV0FSTklORyAqKioKClNoZWxsIGFyY2hpdmVzIGFy ZSBhbiBhcmNoYWljIG1ldGhvZCBvZiBidW5kbGluZyBmaWxlcyBmb3IgZGlz dHJpYnV0aW9uCmFjcm9zcyBjb21wdXRlciBuZXR3b3Jrcy4gIER1cmluZyB0 aGUgdW5wYWNraW5nIHByb2Nlc3MsIGFyYml0cmFyeSBjb21tYW5kcwphcmUg ZXhlY3V0ZWQgb24geW91ciBzeXN0ZW0sIGFuZCBhbGwga2luZHMgb2YgbmFz dHkgdGhpbmdzIGNhbiBoYXBwZW4uClBsZWFzZSBleGFtaW5lIHRoZSBhcmNo aXZlIHZlcnkgY2FyZWZ1bGx5IGJlZm9yZSB5b3UgaW5zdHJ1Y3QgRW1hY3Mg dG8KdW5wYWNrIGl0LiAgWW91IGNhbiBicm93c2UgdGhlIGFyY2hpdmUgYnVm ZmVyIHVzaW5nIFxcW3Njcm9sbC1vdGhlci13aW5kb3ddLgoKSWYgeW91IGFy ZSB1bnN1cmUgd2hhdCB0byBkbywgcGxlYXNlIGFuc3dlciBcIm5vXCIuIgog ICJUZXh0IG9mIHdhcm5pbmcgbWVzc2FnZSBkaXNwbGF5ZWQgYnkgYGdudXMt dXUtdW5zaGFyLWFydGljbGUnLgpNYWtlIHN1cmUgdGhhdCB0aGlzIHRleHQg Y29uc2lzdHMgb25seSBvZiBmZXcgdGV4dCBsaW5lcy4gIE90aGVyd2lzZSwK R251cyBtaWdodCBmYWlsIHRvIGRpc3BsYXkgYWxsIG9mIGl0LiIpCgoKOzsg VGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJ5IGBnbnVzLXV1LWdyYWItYXJ0aWNs ZXMnIHRvIHRyZWF0Cjs7IGEgc2hhcmVkIGFydGljbGUuCihkZWZ1biBnbnVz LXV1LXVuc2hhci1hcnRpY2xlIChwcm9jZXNzLWJ1ZmZlciBpbi1zdGF0ZSkK ICAobGV0ICgoc3RhdGUgKGxpc3QgJ29rKSkKCXN0YXJ0LWNoYXIpCiAgICAo c2F2ZS1leGN1cnNpb24KICAgICAgKHNldC1idWZmZXIgcHJvY2Vzcy1idWZm ZXIpCiAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAgIChpZiAo bm90IChyZS1zZWFyY2gtZm9yd2FyZCBnbnVzLXV1LXNoYXItYmVnaW4tc3Ry aW5nIG5pbCB0KSkKCSAgKHNldHEgc3RhdGUgKGxpc3QgJ3dyb25nLXR5cGUp KQoJKHNhdmUtd2luZG93LWV4Y3Vyc2lvbgoJICAoc2F2ZS1leGN1cnNpb24K CSAgICAoc3dpdGNoLXRvLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKQoJICAg IChkZWxldGUtb3RoZXItd2luZG93cykKCSAgICAobGV0ICgoYnVmZmVyIChn ZXQtYnVmZmVyLWNyZWF0ZSAoZ2VuZXJhdGUtbmV3LWJ1ZmZlci1uYW1lCgkJ CQkJICAgICAgIipXYXJuaW5nKiIpKSkpCgkgICAgICAodW5sZXNzCgkJICAo dW53aW5kLXByb3RlY3QKCQkgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBi dWZmZXIKCQkJKGluc2VydCAoc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMKCQkJ CSBnbnVzLXV1LXVuc2hhci13YXJuaW5nKSkKCQkJKGdvdG8tY2hhciAocG9p bnQtbWluKSkKCQkJKGRpc3BsYXktYnVmZmVyIGJ1ZmZlcikKCQkJKHllcy1v ci1uby1wICJUaGlzIGlzIGEgc2hlbGwgYXJjaGl2ZSwgdW5zaGFyIGl0PyAi KSkKCQkgICAgKGtpbGwtYnVmZmVyIGJ1ZmZlcikpCgkJKHNldHEgc3RhdGUg KGxpc3QgJ2Vycm9yKSkpKSkpCgkodW5sZXNzIChtZW1xICdlcnJvciBzdGF0 ZSkKCSAgKGJlZ2lubmluZy1vZi1saW5lKQoJICAoc2V0cSBzdGFydC1jaGFy IChwb2ludCkpCgkgIChjYWxsLXByb2Nlc3MtcmVnaW9uCgkgICBzdGFydC1j aGFyIChwb2ludC1tYXgpIHNoZWxsLWZpbGUtbmFtZSBuaWwKCSAgIChnbnVz LWdldC1idWZmZXItY3JlYXRlIGdudXMtdXUtb3V0cHV0LWJ1ZmZlci1uYW1l KSBuaWwKCSAgIHNoZWxsLWNvbW1hbmQtc3dpdGNoCgkgICAoY29uY2F0ICJj ZCAiIGdudXMtdXUtd29yay1kaXIgIiAiCgkJICAgZ251cy1zaGVsbC1jb21t YW5kLXNlcGFyYXRvciAgIiBzaCIpKSkpKQogICAgc3RhdGUpKQoKOzsgUmV0 dXJucyB0aGUgbmFtZSBvZiB3aGF0IHRoZSBzaGFyIGZpbGUgaXMgZ29pbmcg dG8gdW5wYWNrLgooZGVmdW4gZ251cy11dS1maW5kLW5hbWUtaW4tc2hhciAo KQogIChsZXQgKChvbGRwb2ludCAocG9pbnQpKQoJcmVzKQogICAgKGdvdG8t Y2hhciAocG9pbnQtbWluKSkKICAgICh3aGVuIChyZS1zZWFyY2gtZm9yd2Fy ZCBnbnVzLXV1LXNoYXItbmFtZS1tYXJrZXIgbmlsIHQpCiAgICAgIChzZXRx IHJlcyAoYnVmZmVyLXN1YnN0cmluZyAobWF0Y2gtYmVnaW5uaW5nIDEpICht YXRjaC1lbmQgMSkpKSkKICAgIChnb3RvLWNoYXIgb2xkcG9pbnQpCiAgICBy ZXMpKQoKOzsgYGdudXMtdXUtY2hvb3NlLWFjdGlvbicgY2hvb3NlcyB3aGF0 IGFjdGlvbiB0byBwZXJmb3JtIGdpdmVuIHRoZSBuYW1lCjs7IGFuZCBgZ251 cy11dS1maWxlLWFjdGlvbi1saXN0Jy4gIFJldHVybnMgZWl0aGVyIG5pbCBp ZiBubyBhY3Rpb24gaXMKOzsgZm91bmQsIG9yIHRoZSBuYW1lIG9mIHRoZSBj b21tYW5kIHRvIHJ1biBpZiBzdWNoIGEgcnVsZSBpcyBmb3VuZC4KKGRlZnVu IGdudXMtdXUtY2hvb3NlLWFjdGlvbiAoZmlsZS1uYW1lIGZpbGUtYWN0aW9u LWxpc3QgJm9wdGlvbmFsIG5vLWlnbm9yZSkKICAobGV0ICgoYWN0aW9uLWxp c3QgKGNvcHktc2VxdWVuY2UgZmlsZS1hY3Rpb24tbGlzdCkpCgkoY2FzZS1m b2xkLXNlYXJjaCB0KQoJcnVsZSBhY3Rpb24pCiAgICAoYW5kCiAgICAgKHVu bGVzcyBuby1pZ25vcmUKICAgICAgIChhbmQgKG5vdAoJICAgICAoYW5kIGdu dXMtdXUtaWdub3JlLWZpbGVzLWJ5LW5hbWUKCQkgIChzdHJpbmctbWF0Y2gg Z251cy11dS1pZ25vcmUtZmlsZXMtYnktbmFtZSBmaWxlLW5hbWUpKSkKCSAg ICAobm90CgkgICAgIChhbmQgZ251cy11dS1pZ25vcmUtZmlsZXMtYnktdHlw ZQoJCSAgKHN0cmluZy1tYXRjaCBnbnVzLXV1LWlnbm9yZS1maWxlcy1ieS10 eXBlCgkJCQkob3IgKGdudXMtdXUtY2hvb3NlLWFjdGlvbgoJCQkJICAgICBm aWxlLW5hbWUgZ251cy11dS1leHQtdG8tbWltZS1saXN0IHQpCgkJCQkgICAg IiIpKSkpKSkKICAgICAod2hpbGUgKG5vdCAob3IgKGVxIGFjdGlvbi1saXN0 ICgpKSBhY3Rpb24pKQogICAgICAgKHNldHEgcnVsZSAoY2FyIGFjdGlvbi1s aXN0KSkKICAgICAgIChzZXRxIGFjdGlvbi1saXN0IChjZHIgYWN0aW9uLWxp c3QpKQogICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaCAoY2FyIHJ1bGUpIGZp bGUtbmFtZSkKCSAoc2V0cSBhY3Rpb24gKGNhZHIgcnVsZSkpKSkpCiAgICBh Y3Rpb24pKQoKKGRlZnVuIGdudXMtdXUtdHJlYXQtYXJjaGl2ZSAoZmlsZS1w YXRoKQogIDs7IFVucGFja3MgYW4gYXJjaGl2ZS4gIFJldHVybnMgdCBpZiB1 bnBhY2tpbmcgaXMgc3VjY2Vzc2Z1bC4KICAobGV0ICgoZGlkLXVucGFjayB0 KQoJYWN0aW9uIGNvbW1hbmQgZGlyKQogICAgKHNldHEgYWN0aW9uIChnbnVz LXV1LWNob29zZS1hY3Rpb24KCQkgIGZpbGUtcGF0aCAoYXBwZW5kIGdudXMt dXUtdXNlci1hcmNoaXZlLXJ1bGVzCgkJCQkgICAgKGlmIGdudXMtdXUtaWdu b3JlLWRlZmF1bHQtYXJjaGl2ZS1ydWxlcwoJCQkJCW5pbAoJCQkJICAgICAg Z251cy11dS1kZWZhdWx0LWFyY2hpdmUtcnVsZXMpKSkpCgogICAgKHdoZW4g KG5vdCBhY3Rpb24pCiAgICAgIChlcnJvciAiTm8gdW5wYWNrZXJzIGZvciB0 aGUgZmlsZSAlcyIgZmlsZS1wYXRoKSkKCiAgICAoc3RyaW5nLW1hdGNoICIv W14vXSokIiBmaWxlLXBhdGgpCiAgICAoc2V0cSBkaXIgKHN1YnN0cmluZyBm aWxlLXBhdGggMCAobWF0Y2gtYmVnaW5uaW5nIDApKSkKCiAgICAod2hlbiAo bWVtYmVyIGFjdGlvbiBnbnVzLXV1LWRlc3RydWN0aXZlLWFyY2hpdmVycykK ICAgICAgKGNvcHktZmlsZSBmaWxlLXBhdGggKGNvbmNhdCBmaWxlLXBhdGgg In4iKSB0KSkKCiAgICAoc2V0cSBjb21tYW5kIChmb3JtYXQgImNkICVzIDsg JXMiIGRpciAoZ251cy11dS1jb21tYW5kIGFjdGlvbiBmaWxlLXBhdGgpKSkK CiAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgKHNldC1idWZmZXIgKGdudXMt Z2V0LWJ1ZmZlci1jcmVhdGUgZ251cy11dS1vdXRwdXQtYnVmZmVyLW5hbWUp KQogICAgICAoZXJhc2UtYnVmZmVyKSkKCiAgICAoZ251cy1tZXNzYWdlIDUg IlVucGFja2luZzogJXMuLi4iIChnbnVzLXV1LWNvbW1hbmQgYWN0aW9uIGZp bGUtcGF0aCkpCgogICAgKGlmIChlcSAwIChjYWxsLXByb2Nlc3Mgc2hlbGwt ZmlsZS1uYW1lIG5pbAoJCQkgICAoZ251cy1nZXQtYnVmZmVyLWNyZWF0ZSBn bnVzLXV1LW91dHB1dC1idWZmZXItbmFtZSkKCQkJICAgbmlsIHNoZWxsLWNv bW1hbmQtc3dpdGNoIGNvbW1hbmQpKQoJKG1lc3NhZ2UgIiIpCiAgICAgIChn bnVzLW1lc3NhZ2UgMiAiRXJyb3IgZHVyaW5nIHVucGFja2luZyBvZiBhcmNo aXZlIikKICAgICAgKHNldHEgZGlkLXVucGFjayBuaWwpKQoKICAgICh3aGVu IChtZW1iZXIgYWN0aW9uIGdudXMtdXUtZGVzdHJ1Y3RpdmUtYXJjaGl2ZXJz KQogICAgICAocmVuYW1lLWZpbGUgKGNvbmNhdCBmaWxlLXBhdGggIn4iKSBm aWxlLXBhdGggdCkpCgogICAgZGlkLXVucGFjaykpCgooZGVmdW4gZ251cy11 dS1kaXItZmlsZXMgKGRpcikKICAobGV0ICgoZGlycyAoZGlyZWN0b3J5LWZp bGVzIGRpciB0ICJbXi9dW15cXC5dW15cXC5dPyQiKSkKCWZpbGVzIGZpbGUp CiAgICAod2hpbGUgZGlycwogICAgICAoaWYgKGZpbGUtZGlyZWN0b3J5LXAg KHNldHEgZmlsZSAoY2FyIGRpcnMpKSkKCSAgKHNldHEgZmlsZXMgKGFwcGVu ZCBmaWxlcyAoZ251cy11dS1kaXItZmlsZXMgZmlsZSkpKQoJKHB1c2ggZmls ZSBmaWxlcykpCiAgICAgIChzZXRxIGRpcnMgKGNkciBkaXJzKSkpCiAgICBm aWxlcykpCgooZGVmdW4gZ251cy11dS11bnBhY2stZmlsZXMgKGZpbGVzICZv cHRpb25hbCBpZ25vcmUpCiAgOzsgR28gdGhyb3VnaCBGSUxFUyBhbmQgbG9v ayBmb3IgZmlsZXMgdG8gdW5wYWNrLgogIChsZXQqICgodG90ZmlsZXMgKGdu dXMtdXUtbHMtciBnbnVzLXV1LXdvcmstZGlyKSkKCSAob2ZpbGVzIGZpbGVz KQoJIGZpbGUgZGlkLXVucGFjaykKICAgICh3aGlsZSBmaWxlcwogICAgICAo c2V0cSBmaWxlIChjZHIgKGFzc3EgJ25hbWUgKGNhciBmaWxlcykpKSkKICAg ICAgKHdoZW4gKGFuZCAobm90IChtZW1iZXIgZmlsZSBpZ25vcmUpKQoJCSAo ZXF1YWwgKGdudXMtdXUtZ2V0LWFjdGlvbiAoZmlsZS1uYW1lLW5vbmRpcmVj dG9yeSBmaWxlKSkKCQkJImdudXMtdXUtYXJjaGl2ZSIpKQoJKHB1c2ggZmls ZSBkaWQtdW5wYWNrKQoJKHVubGVzcyAoZ251cy11dS10cmVhdC1hcmNoaXZl IGZpbGUpCgkgIChnbnVzLW1lc3NhZ2UgMiAiRXJyb3IgZHVyaW5nIHVucGFj a2luZyBvZiAlcyIgZmlsZSkpCgkobGV0KiAoKG5ld2ZpbGVzIChnbnVzLXV1 LWxzLXIgZ251cy11dS13b3JrLWRpcikpCgkgICAgICAgKG5maWxlcyBuZXdm aWxlcykpCgkgICh3aGlsZSBuZmlsZXMKCSAgICAodW5sZXNzIChtZW1iZXIg KGNhciBuZmlsZXMpIHRvdGZpbGVzKQoJICAgICAgKHB1c2ggKGxpc3QgKGNv bnMgJ25hbWUgKGNhciBuZmlsZXMpKQoJCQkgIChjb25zICdvcmlnaW5hbCBm aWxlKSkKCQkgICAgb2ZpbGVzKSkKCSAgICAoc2V0cSBuZmlsZXMgKGNkciBu ZmlsZXMpKSkKCSAgKHNldHEgdG90ZmlsZXMgbmV3ZmlsZXMpKSkKICAgICAg KHNldHEgZmlsZXMgKGNkciBmaWxlcykpKQogICAgKGlmIGRpZC11bnBhY2sK CShnbnVzLXV1LXVucGFjay1maWxlcyBvZmlsZXMgKGFwcGVuZCBkaWQtdW5w YWNrIGlnbm9yZSkpCiAgICAgIG9maWxlcykpKQoKKGRlZnVuIGdudXMtdXUt bHMtciAoZGlyKQogIChsZXQqICgoZmlsZXMgKGdudXMtdXUtZGlyZWN0b3J5 LWZpbGVzIGRpciB0KSkKCSAob2ZpbGVzIGZpbGVzKSkKICAgICh3aGlsZSBm aWxlcwogICAgICAod2hlbiAoZmlsZS1kaXJlY3RvcnktcCAoY2FyIGZpbGVz KSkKCShzZXRxIG9maWxlcyAoZGVsZXRlIChjYXIgZmlsZXMpIG9maWxlcykp Cgkoc2V0cSBvZmlsZXMgKGFwcGVuZCBvZmlsZXMgKGdudXMtdXUtbHMtciAo Y2FyIGZpbGVzKSkpKSkKICAgICAgKHNldHEgZmlsZXMgKGNkciBmaWxlcykp KQogICAgb2ZpbGVzKSkKCjs7IFZhcmlvdXMgc3R1ZmYKCihkZWZ1biBnbnVz LXV1LWRpcmVjdG9yeS1maWxlcyAoZGlyICZvcHRpb25hbCBmdWxsKQogIChs ZXQgKGZpbGVzIG91dCBmaWxlKQogICAgKHNldHEgZmlsZXMgKGRpcmVjdG9y eS1maWxlcyBkaXIgZnVsbCkpCiAgICAod2hpbGUgZmlsZXMKICAgICAgKHNl dHEgZmlsZSAoY2FyIGZpbGVzKSkKICAgICAgKHNldHEgZmlsZXMgKGNkciBm aWxlcykpCiAgICAgICh1bmxlc3MgKG1lbWJlciAoZmlsZS1uYW1lLW5vbmRp cmVjdG9yeSBmaWxlKSAnKCIuIiAiLi4iKSkKCShwdXNoIGZpbGUgb3V0KSkp CiAgICAoc2V0cSBvdXQgKG5yZXZlcnNlIG91dCkpCiAgICBvdXQpKQoKKGRl ZnVuIGdudXMtdXUtY2hlY2stY29ycmVjdC1zdHJpcHBlZC11dWNvZGUgKHN0 YXJ0IGVuZCkKICAoc2F2ZS1leGN1cnNpb24KICAgIChsZXQgKGZvdW5kIGJl ZyBsZW5ndGgpCiAgICAgICh1bmxlc3MgZ251cy11dS1jb3JyZWN0LXN0cmlw cGVkLXV1Y29kZQoJKGdvdG8tY2hhciBzdGFydCkKCgkoaWYgKHJlLXNlYXJj aC1mb3J3YXJkICIgXFx8YCIgZW5kIHQpCgkgICAgKHByb2duCgkgICAgICAo Z290by1jaGFyIHN0YXJ0KQoJICAgICAgKHdoaWxlIChub3QgKGVvYnApKQoJ CShwcm9nbgoJCSAgKHdoZW4gKGxvb2tpbmctYXQgIlxuIikKCQkgICAgKHJl cGxhY2UtbWF0Y2ggIiIpKQoJCSAgKGZvcndhcmQtbGluZSAxKSkpKQoKCSAg KHdoaWxlIChub3QgKGVvYnApKQoJICAgICh1bmxlc3MgKGxvb2tpbmctYXQg KGNvbmNhdCBnbnVzLXV1LWJlZ2luLXN0cmluZyAiXFx8IgoJCQkJCWdudXMt dXUtZW5kLXN0cmluZykpCgkgICAgICAod2hlbiAobm90IGZvdW5kKQoJCShz ZXRxIGxlbmd0aCAoLSAocG9pbnQtYXQtZW9sKSAocG9pbnQtYXQtYm9sKSkp KQoJICAgICAgKHNldHEgZm91bmQgdCkKCSAgICAgIChiZWdpbm5pbmctb2Yt bGluZSkKCSAgICAgIChzZXRxIGJlZyAocG9pbnQpKQoJICAgICAgKGVuZC1v Zi1saW5lKQoJICAgICAgKHVubGVzcyAoPSBsZW5ndGggKC0gKHBvaW50KSBi ZWcpKQoJCShpbnNlcnQgKG1ha2Utc3RyaW5nICgtIGxlbmd0aCAoLSAocG9p bnQpIGJlZykpID8gKSkpKQoJICAgIChmb3J3YXJkLWxpbmUgMSkpKSkpKSkK CihkZWZ2YXIgZ251cy11dS10bXAtYWxpc3QgbmlsKQoKKGRlZnVuIGdudXMt dXUtaW5pdGlhbGl6ZSAoJm9wdGlvbmFsIHNjYW4pCiAgKGxldCAoZW50cnkp CiAgICAoaWYgKGFuZCAobm90IHNjYW4pCgkgICAgICh3aGVuIChzZXRxIGVu dHJ5IChhc3NvYyBnbnVzLW5ld3Nncm91cC1uYW1lIGdudXMtdXUtdG1wLWFs aXN0KSkKCSAgICAgICAoaWYgKGZpbGUtZXhpc3RzLXAgKGNkciBlbnRyeSkp CgkJICAgKHNldHEgZ251cy11dS13b3JrLWRpciAoY2RyIGVudHJ5KSkKCQkg KHNldHEgZ251cy11dS10bXAtYWxpc3QgKGRlbHEgZW50cnkgZ251cy11dS10 bXAtYWxpc3QpKQoJCSBuaWwpKSkKCXQKICAgICAgKHNldHEgZ251cy11dS10 bXAtZGlyIChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5CgkJCSAgICAgKGV4cGFu ZC1maWxlLW5hbWUgZ251cy11dS10bXAtZGlyKSkpCiAgICAgIChpZiAobm90 IChmaWxlLWRpcmVjdG9yeS1wIGdudXMtdXUtdG1wLWRpcikpCgkgIChlcnJv ciAiVGVtcCBkaXJlY3RvcnkgJXMgZG9lc24ndCBleGlzdCIgZ251cy11dS10 bXAtZGlyKQoJKHdoZW4gKG5vdCAoZmlsZS13cml0YWJsZS1wIGdudXMtdXUt dG1wLWRpcikpCgkgIChlcnJvciAiVGVtcCBkaXJlY3RvcnkgJXMgY2FuJ3Qg YmUgd3JpdHRlbiB0byIKCQkgZ251cy11dS10bXAtZGlyKSkpCgogICAgICAo c2V0cSBnbnVzLXV1LXdvcmstZGlyCgkgICAgKG1tLW1ha2UtdGVtcC1maWxl IChjb25jYXQgZ251cy11dS10bXAtZGlyICJnbnVzIikgJ2RpcikpCiAgICAg IChnbnVzLXNldC1maWxlLW1vZGVzIGdudXMtdXUtd29yay1kaXIgNDQ4KQog ICAgICAoc2V0cSBnbnVzLXV1LXdvcmstZGlyIChmaWxlLW5hbWUtYXMtZGly ZWN0b3J5IGdudXMtdXUtd29yay1kaXIpKQogICAgICAocHVzaCAoY29ucyBn bnVzLW5ld3Nncm91cC1uYW1lIGdudXMtdXUtd29yay1kaXIpCgkgICAgZ251 cy11dS10bXAtYWxpc3QpKSkpCgoKOzsgS2lsbHMgdGhlIHRlbXBvcmFyeSB1 dSBidWZmZXJzLCBraWxscyBhbnkgcHJvY2Vzc2VzLCBldGMuCihkZWZ1biBn bnVzLXV1LWNsZWFuLXVwICgpCiAgKGxldCAoYnVmKQogICAgKGFuZCBnbnVz LXV1LXV1ZGVjb2RlLXByb2Nlc3MKCSAobWVtcSAocHJvY2Vzcy1zdGF0dXMg KG9yIGdudXMtdXUtdXVkZWNvZGUtcHJvY2VzcyAibmV2YWlyIikpCgkgICAg ICAgJyhzdG9wIHJ1bikpCgkgKGRlbGV0ZS1wcm9jZXNzIGdudXMtdXUtdXVk ZWNvZGUtcHJvY2VzcykpCiAgICAod2hlbiAoc2V0cSBidWYgKGdldC1idWZm ZXIgZ251cy11dS1vdXRwdXQtYnVmZmVyLW5hbWUpKQogICAgICAoa2lsbC1i dWZmZXIgYnVmKSkpKQoKOzsgSW5wdXRzIGFuIGFjdGlvbiBhbmQgYSBmaWxl bmFtZSBhbmQgcmV0dXJucyBhIGZ1bGwgY29tbWFuZCwgbWFraW5nIHN1cmUK OzsgdGhhdCB0aGUgZmlsZW5hbWUgd2lsbCBiZSB0cmVhdGVkIGFzIGEgc2lu Z2xlIGFyZ3VtZW50IHdoZW4gdGhlIHNoZWxsCjs7IGV4ZWN1dGVzIHRoZSBj b21tYW5kLgooZGVmdW4gZ251cy11dS1jb21tYW5kIChhY3Rpb24gZmlsZSkK ICAobGV0ICgocXVvdGVkLWZpbGUgKHNoZWxsLXF1b3RlLWFyZ3VtZW50IGZp bGUpKSkKICAgIChpZiAoc3RyaW5nLW1hdGNoICIlcyIgYWN0aW9uKQoJKGZv cm1hdCBhY3Rpb24gcXVvdGVkLWZpbGUpCiAgICAgIChjb25jYXQgYWN0aW9u ICIgIiBxdW90ZWQtZmlsZSkpKSkKCihkZWZ1biBnbnVzLXV1LWRlbGV0ZS13 b3JrLWRpciAoJm9wdGlvbmFsIGRpcikKICAiRGVsZXRlIHJlY3Vyc2l2ZWx5 IGFsbCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdW5kZXIgYGdudXMtdXUtd29y ay1kaXInLiIKICAoaWYgZGlyCiAgICAgIChnbnVzLW1lc3NhZ2UgNyAiRGVs ZXRpbmcgZGlyZWN0b3J5ICVzLi4uIiBkaXIpCiAgICAoc2V0cSBkaXIgZ251 cy11dS13b3JrLWRpcikpCiAgKHdoZW4gKGFuZCBkaXIKCSAgICAgKGZpbGUt ZXhpc3RzLXAgZGlyKSkKICAgIChsZXQgKChmaWxlcyAoZGlyZWN0b3J5LWZp bGVzIGRpciB0IG5pbCB0KSkKCSAgZmlsZSkKICAgICAgKHdoaWxlIChzZXRx IGZpbGUgKHBvcCBmaWxlcykpCgkodW5sZXNzIChtZW1iZXIgKGZpbGUtbmFt ZS1ub25kaXJlY3RvcnkgZmlsZSkgJygiLiIgIi4uIikpCgkgIChpZiAoZmls ZS1kaXJlY3RvcnktcCBmaWxlKQoJICAgICAgKGdudXMtdXUtZGVsZXRlLXdv cmstZGlyIGZpbGUpCgkgICAgKGdudXMtbWVzc2FnZSA5ICJEZWxldGluZyBm aWxlICVzLi4uIiBmaWxlKQogICAgICAgICAgICAoY29uZGl0aW9uLWNhc2Ug ZXJyCiAgICAgICAgICAgICAgICAoZGVsZXRlLWZpbGUgZmlsZSkKICAgICAg ICAgICAgICAoZXJyb3IgKGdudXMtbWVzc2FnZSAzICJEZWxldGluZyBmaWxl ICVzIGZhaWxlZC4uLiAlcyIgZmlsZSBlcnIpKSkpKSkKICAgICAgKGNvbmRp dGlvbi1jYXNlIGVycgogICAgICAgICAgKGRlbGV0ZS1kaXJlY3RvcnkgZGly KQogICAgICAgIChlcnJvciAoZ251cy1tZXNzYWdlIDMgIkRlbGV0aW5nIGRp cmVjdG9yeSAlcyBmYWlsZWQuLi4gJXMiIGZpbGUgZXJyKSkpKQogICAgKGdu dXMtbWVzc2FnZSA3ICIiKSkpCgo7OyBJbml0aWFsaXppbmcKCihhZGQtaG9v ayAnZ251cy1leGl0LWdyb3VwLWhvb2sgJ2dudXMtdXUtY2xlYW4tdXApCihh ZGQtaG9vayAnZ251cy1leGl0LWdyb3VwLWhvb2sJJ2dudXMtdXUtZGVsZXRl LXdvcmstZGlyKQoKDAoKOzs7Cjs7OyB1dWVuY29kZWQgcG9zdGluZwo7OzsK Cjs7IEFueSBmdW5jdGlvbiB0aGF0IGlzIHRvIGJlIHVzZWQgYXMgYW5kIGVu Y29kaW5nIG1ldGhvZCB3aWxsIHRha2UgdHdvCjs7IHBhcmFtZXRlcnM6IFBB VEgtTkFNRSBhbmQgRklMRS1OQU1FLiAgKEUuZy4gIi9ob21lL2dhZ2Evc3Bp cmFsLmpwZyIKOzsgYW5kICJzcGlyYWwuanBnIiwgcmVzcGVjdGl2ZWx5Likg VGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gbmlsIGlmCjs7IHRoZSBlbmNv ZGluZyB3YXNuJ3Qgc3VjY2Vzc2Z1bC4KKGRlZmN1c3RvbSBnbnVzLXV1LXBv c3QtZW5jb2RlLW1ldGhvZCAnZ251cy11dS1wb3N0LWVuY29kZS11dWVuY29k ZQogICJGdW5jdGlvbiB1c2VkIGZvciBlbmNvZGluZyBiaW5hcnkgZmlsZXMu ClRoZXJlIGFyZSB0aHJlZSBmdW5jdGlvbnMgc3VwcGxpZWQgd2l0aCBnbnVz LXV1IGZvciBlbmNvZGluZyBmaWxlczoKYGdudXMtdXUtcG9zdC1lbmNvZGUt dXVlbmNvZGUnLCB3aGljaCBkb2VzIHN0cmFpZ2h0IHV1ZW5jb2Rpbmc7CmBn bnVzLXV1LXBvc3QtZW5jb2RlLW1pbWUnLCB3aGljaCBlbmNvZGVzIHdpdGgg YmFzZTY0IGFuZCBhZGRzIE1JTUUKaGVhZGVyczsgYW5kIGBnbnVzLXV1LXBv c3QtZW5jb2RlLW1pbWUtdXVlbmNvZGUnLCB3aGljaCBlbmNvZGVzIHdpdGgK dXVlbmNvZGUgYW5kIGFkZHMgTUlNRSBoZWFkZXJzLiIKICA6Z3JvdXAgJ2du dXMtZXh0cmFjdC1wb3N0CiAgOnR5cGUgJyhyYWRpbyAoZnVuY3Rpb24taXRl bSBnbnVzLXV1LXBvc3QtZW5jb2RlLXV1ZW5jb2RlKQoJCShmdW5jdGlvbi1p dGVtIGdudXMtdXUtcG9zdC1lbmNvZGUtbWltZSkKCQkoZnVuY3Rpb24taXRl bSBnbnVzLXV1LXBvc3QtZW5jb2RlLW1pbWUtdXVlbmNvZGUpCgkJKGZ1bmN0 aW9uIDp0YWcgIk90aGVyIikpKQoKKGRlZmN1c3RvbSBnbnVzLXV1LXBvc3Qt aW5jbHVkZS1iZWZvcmUtY29tcG9zaW5nIG5pbAogICJOb24tbmlsIG1lYW5z IHRoYXQgZ251cy11dSB3aWxsIGFzayBmb3IgYSBmaWxlIHRvIGVuY29kZSBi ZWZvcmUgeW91IGNvbXBvc2UgdGhlIGFydGljbGUuCklmIHRoaXMgdmFyaWFi bGUgaXMgdCwgeW91IGNhbiBlaXRoZXIgaW5jbHVkZSBhbiBlbmNvZGVkIGZp bGUgd2l0aApcXFtnbnVzLXV1LXBvc3QtaW5zZXJ0LWJpbmFyeS1pbi1hcnRp Y2xlXSBvciBoYXZlIG9uZSBpbmNsdWRlZCBmb3IgeW91IHdoZW4geW91IHBv c3QgdGhlIGFydGljbGUuIgogIDpncm91cCAnZ251cy1leHRyYWN0LXBvc3QK ICA6dHlwZSAnYm9vbGVhbikKCihkZWZjdXN0b20gZ251cy11dS1wb3N0LWxl bmd0aCA5OTAKICAiTWF4aW11bSBsZW5ndGggb2YgYW4gYXJ0aWNsZS4KVGhl IGVuY29kZWQgZmlsZSB3aWxsIGJlIHNwbGl0IGludG8gaG93IG1hbnkgYXJ0 aWNsZXMgaXQgdGFrZXMgdG8KcG9zdCB0aGUgZW50aXJlIGZpbGUuIgogIDpn cm91cCAnZ251cy1leHRyYWN0LXBvc3QKICA6dHlwZSAnaW50ZWdlcikKCihk ZWZjdXN0b20gZ251cy11dS1wb3N0LXRocmVhZGVkIG5pbAogICJOb24tbmls IG1lYW5zIHRoYXQgZ251cy11dSB3aWxsIHBvc3QgdGhlIGVuY29kZWQgZmls ZSBpbiBhIHRocmVhZC4KVGhpcyBtYXkgbm90IGJlIHNtYXJ0LCBhcyBubyBv dGhlciBkZWNvZGVyIEkgaGF2ZSBzZWVuIGFyZSBhYmxlIHRvCmZvbGxvdyB0 aHJlYWRzIHdoZW4gY29sbGVjdGluZyB1dWVuY29kZWQgYXJ0aWNsZXMuICAo V2VsbCwgSSBoYXZlIHNlZW4Kb25lIHBhY2thZ2UgdGhhdCBkb2VzIHRoYXQg LSBnbnVzLXV1LCBidXQgc29tZWhvdywgSSBkb24ndCB0aGluayB0aGF0CmNv dW50cy4uLikgIFRoZSBkZWZhdWx0IGlzIG5pbC4iCiAgOmdyb3VwICdnbnVz LWV4dHJhY3QtcG9zdAogIDp0eXBlICdib29sZWFuKQoKKGRlZmN1c3RvbSBn bnVzLXV1LXBvc3Qtc2VwYXJhdGUtZGVzY3JpcHRpb24gdAogICJOb24tbmls IG1lYW5zIHRoYXQgdGhlIGRlc2NyaXB0aW9uIHdpbGwgYmUgcG9zdGVkIGlu IGEgc2VwYXJhdGUgYXJ0aWNsZS4KVGhlIGZpcnN0IGFydGljbGUgd2lsbCB0 eXBpY2FsbHkgYmUgbnVtYmVyZWQgKDAveCkuICBJZiB0aGlzIHZhcmlhYmxl CmlzIG5pbCwgdGhlIGRlc2NyaXB0aW9uIHRoZSB1c2VyIGVudGVycyB3aWxs IGJlIGluY2x1ZGVkIGF0IHRoZQpiZWdpbm5pbmcgb2YgdGhlIGZpcnN0IGFy dGljbGUsIHdoaWNoIHdpbGwgYmUgbnVtYmVyZWQgKDEveCkuICBEZWZhdWx0 CmlzIHQuIgogIDpncm91cCAnZ251cy1leHRyYWN0LXBvc3QKICA6dHlwZSAn Ym9vbGVhbikKCihkZWZ2YXIgZ251cy11dS1wb3N0LWJpbmFyeS1zZXBhcmF0 b3IgIi0tYmluYXJ5IGZvbGxvd3MgdGhpcyBsaW5lLS0iKQooZGVmdmFyIGdu dXMtdXUtcG9zdC1tZXNzYWdlLWlkIG5pbCkKKGRlZnZhciBnbnVzLXV1LXBv c3QtaW5zZXJ0ZWQtZmlsZS1uYW1lIG5pbCkKKGRlZnZhciBnbnVzLXV1LXdp bmNvbmYtcG9zdC1uZXdzIG5pbCkKCihkZWZ1biBnbnVzLXV1LXBvc3QtbmV3 cyAoKQogICJDb21wb3NlIGFuIGFydGljbGUgYW5kIHBvc3QgYW4gZW5jb2Rl ZCBmaWxlLiIKICAoaW50ZXJhY3RpdmUpCiAgKHNldHEgZ251cy11dS1wb3N0 LWluc2VydGVkLWZpbGUtbmFtZSBuaWwpCiAgKHNldHEgZ251cy11dS13aW5j b25mLXBvc3QtbmV3cyAoY3VycmVudC13aW5kb3ctY29uZmlndXJhdGlvbikp CgogIChnbnVzLXN1bW1hcnktcG9zdC1uZXdzKQoKICAobGV0ICgobWFwICht YWtlLXNwYXJzZS1rZXltYXApKSkKICAgIChzZXQta2V5bWFwLXBhcmVudCBt YXAgKGN1cnJlbnQtbG9jYWwtbWFwKSkKICAgICh1c2UtbG9jYWwtbWFwIG1h cCkpCiAgOzsobG9jYWwtc2V0LWtleSAiXEMtY1xDLWMiICdnbnVzLXN1bW1h cnktZWRpdC1hcnRpY2xlLWRvbmUpCiAgKGxvY2FsLXNldC1rZXkgIlxDLWNc Qy1jIiAnZ251cy11dS1wb3N0LW5ld3MtaW5ld3MpCiAgKGxvY2FsLXNldC1r ZXkgIlxDLWNcQy1zIiAnZ251cy11dS1wb3N0LW5ld3MtaW5ld3MpCiAgKGxv Y2FsLXNldC1rZXkgIlxDLWNcQy1pIiAnZ251cy11dS1wb3N0LWluc2VydC1i aW5hcnktaW4tYXJ0aWNsZSkKCiAgKHdoZW4gZ251cy11dS1wb3N0LWluY2x1 ZGUtYmVmb3JlLWNvbXBvc2luZwogICAgKHNhdmUtZXhjdXJzaW9uIChzZXRx IGdudXMtdXUtcG9zdC1pbnNlcnRlZC1maWxlLW5hbWUKCQkJICAoZ251cy11 dS1wb3N0LWluc2VydC1iaW5hcnkpKSkpKQoKKGRlZnVuIGdudXMtdXUtcG9z dC1pbnNlcnQtYmluYXJ5LWluLWFydGljbGUgKCkKICAiSW5zZXJ0cyBhbiBl bmNvZGVkIGZpbGUgaW4gdGhlIGJ1ZmZlci4KVGhlIHVzZXIgd2lsbCBiZSBh c2tlZCBmb3IgYSBmaWxlIG5hbWUuIgogIChpbnRlcmFjdGl2ZSkKICAoc2F2 ZS1leGN1cnNpb24KICAgIChzZXRxIGdudXMtdXUtcG9zdC1pbnNlcnRlZC1m aWxlLW5hbWUgKGdudXMtdXUtcG9zdC1pbnNlcnQtYmluYXJ5KSkpKQoKOzsg RW5jb2RlcyB3aXRoIHV1ZW5jb2RlIGFuZCBzdWJzdGl0dXRlcyBhbGwgc3Bh Y2VzIHdpdGggYmFja3RpY2tzLgooZGVmdW4gZ251cy11dS1wb3N0LWVuY29k ZS11dWVuY29kZSAocGF0aCBmaWxlLW5hbWUpCiAgKHdoZW4gKGdudXMtdXUt cG9zdC1lbmNvZGUtZmlsZSAidXVlbmNvZGUiIHBhdGggZmlsZS1uYW1lKQog ICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKICAgIChmb3J3YXJkLWxpbmUg MSkKICAgICh3aGlsZSAoc2VhcmNoLWZvcndhcmQgIiAiIG5pbCB0KQogICAg ICAocmVwbGFjZS1tYXRjaCAiYCIpKQogICAgdCkpCgo7OyBFbmNvZGVzIHdp dGggdXVlbmNvZGUgYW5kIGFkZHMgTUlNRSBoZWFkZXJzLgooZGVmdW4gZ251 cy11dS1wb3N0LWVuY29kZS1taW1lLXV1ZW5jb2RlIChwYXRoIGZpbGUtbmFt ZSkKICAod2hlbiAoZ251cy11dS1wb3N0LWVuY29kZS11dWVuY29kZSBwYXRo IGZpbGUtbmFtZSkKICAgIChnbnVzLXV1LXBvc3QtbWFrZS1taW1lIGZpbGUt bmFtZSAieC11dWUiKQogICAgdCkpCgo7OyBFbmNvZGVzIHdpdGggYmFzZTY0 IGFuZCBhZGRzIE1JTUUgaGVhZGVycwooZGVmdW4gZ251cy11dS1wb3N0LWVu Y29kZS1taW1lIChwYXRoIGZpbGUtbmFtZSkKICAod2hlbiAoZXEgMCAoY2Fs bC1wcm9jZXNzIHNoZWxsLWZpbGUtbmFtZSBuaWwgdCBuaWwgc2hlbGwtY29t bWFuZC1zd2l0Y2gKCQkJICAgIChmb3JtYXQgIiVzICVzIC1vICVzIiAibW1l bmNvZGUiIHBhdGggZmlsZS1uYW1lKSkpCiAgICAoZ251cy11dS1wb3N0LW1h a2UtbWltZSBmaWxlLW5hbWUgImJhc2U2NCIpCiAgICB0KSkKCjs7IEFkZHMg TUlNRSBoZWFkZXJzLgooZGVmdW4gZ251cy11dS1wb3N0LW1ha2UtbWltZSAo ZmlsZS1uYW1lIGVuY29kaW5nKQogIChnb3RvLWNoYXIgKHBvaW50LW1pbikp CiAgKGluc2VydCAoZm9ybWF0ICJDb250ZW50LVR5cGU6ICVzOyBuYW1lPVwi JXNcIlxuIgoJCSAgKGdudXMtdXUtY2hvb3NlLWFjdGlvbiBmaWxlLW5hbWUg Z251cy11dS1leHQtdG8tbWltZS1saXN0KQoJCSAgZmlsZS1uYW1lKSkKICAo aW5zZXJ0IChmb3JtYXQgIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6ICVz XG5cbiIgZW5jb2RpbmcpKQogIChzYXZlLXJlc3RyaWN0aW9uCiAgICAoc2V0 LWJ1ZmZlciBnbnVzLW1lc3NhZ2UtYnVmZmVyKQogICAgKGdvdG8tY2hhciAo cG9pbnQtbWluKSkKICAgIChyZS1zZWFyY2gtZm9yd2FyZCAoY29uY2F0ICJe IiAocmVnZXhwLXF1b3RlIG1haWwtaGVhZGVyLXNlcGFyYXRvcikgIiQiKSkK ICAgIChmb3J3YXJkLWxpbmUgLTEpCiAgICAobmFycm93LXRvLXJlZ2lvbiAo cG9pbnQtbWluKSAocG9pbnQpKQogICAgKHVubGVzcyAobWFpbC1mZXRjaC1m aWVsZCAibWltZS12ZXJzaW9uIikKICAgICAgKHdpZGVuKQogICAgICAoaW5z ZXJ0ICJNSU1FLVZlcnNpb246IDEuMFxuIikpCiAgICAod2lkZW4pKSkKCjs7 IEVuY29kZXMgYSBmaWxlIFBBVEggd2l0aCBDT01NQU5ELCBsZWF2aW5nIHRo ZSByZXN1bHQgaW4gdGhlCjs7IGN1cnJlbnQgYnVmZmVyLgooZGVmdW4gZ251 cy11dS1wb3N0LWVuY29kZS1maWxlIChjb21tYW5kIHBhdGggZmlsZS1uYW1l KQogIChlcSAwIChjYWxsLXByb2Nlc3Mgc2hlbGwtZmlsZS1uYW1lIG5pbCB0 IG5pbCBzaGVsbC1jb21tYW5kLXN3aXRjaAoJCSAgICAgIChmb3JtYXQgIiVz ICVzICVzIiBjb21tYW5kIHBhdGggZmlsZS1uYW1lKSkpKQoKKGRlZnVuIGdu dXMtdXUtcG9zdC1uZXdzLWluZXdzICgpCiAgIlBvc3RzIHRoZSBjb21wb3Nl ZCBuZXdzIGFydGljbGUgYW5kIGVuY29kZWQgZmlsZS4KSWYgbm8gZmlsZSBo YXMgYmVlbiBpbmNsdWRlZCwgdGhlIHVzZXIgd2lsbCBiZSBhc2tlZCBmb3Ig YSBmaWxlLiIKICAoaW50ZXJhY3RpdmUpCgogIChsZXQgKGZpbGUtbmFtZSkK CiAgICAoaWYgZ251cy11dS1wb3N0LWluc2VydGVkLWZpbGUtbmFtZQoJKHNl dHEgZmlsZS1uYW1lIGdudXMtdXUtcG9zdC1pbnNlcnRlZC1maWxlLW5hbWUp CiAgICAgIChzZXRxIGZpbGUtbmFtZSAoZ251cy11dS1wb3N0LWluc2VydC1i aW5hcnkpKSkKCiAgICAoZ251cy11dS1wb3N0LWVuY29kZWQgZmlsZS1uYW1l IGdudXMtdXUtcG9zdC10aHJlYWRlZCkpCiAgKHNldHEgZ251cy11dS1wb3N0 LWluc2VydGVkLWZpbGUtbmFtZSBuaWwpCiAgKHdoZW4gZ251cy11dS13aW5j b25mLXBvc3QtbmV3cwogICAgKHNldC13aW5kb3ctY29uZmlndXJhdGlvbiBn bnVzLXV1LXdpbmNvbmYtcG9zdC1uZXdzKSkpCgo7OyBBc2tzIGZvciBhIGZp bGUgdG8gZW5jb2RlLCBlbmNvZGVzIGl0IGFuZCBpbnNlcnRzIHRoZSByZXN1 bHQgaW4KOzsgdGhlIGN1cnJlbnQgYnVmZmVyLiAgUmV0dXJucyB0aGUgZmls ZSBuYW1lIHRoZSB1c2VyIGdhdmUuCihkZWZ1biBnbnVzLXV1LXBvc3QtaW5z ZXJ0LWJpbmFyeSAoKQogIChsZXQgKCh1dWVuY29kZS1idWZmZXItbmFtZSAi KnV1ZW5jb2RlIGJ1ZmZlcioiKQoJZmlsZS1wYXRoIHV1YnVmIGZpbGUtbmFt ZSkKCiAgICAoc2V0cSBmaWxlLXBhdGggKHJlYWQtZmlsZS1uYW1lCgkJICAg ICAiV2hhdCBmaWxlIGRvIHlvdSB3YW50IHRvIGVuY29kZT8gIikpCiAgICAo d2hlbiAobm90IChmaWxlLWV4aXN0cy1wIGZpbGUtcGF0aCkpCiAgICAgIChl cnJvciAiJXM6IE5vIHN1Y2ggZmlsZSIgZmlsZS1wYXRoKSkKCiAgICAoZ290 by1jaGFyIChwb2ludC1tYXgpKQogICAgKGluc2VydCAoZm9ybWF0ICJcbiVz XG4iIGdudXMtdXUtcG9zdC1iaW5hcnktc2VwYXJhdG9yKSkKCiAgICA7OyAj IyMjIFVuaXgtc3BlY2lmaWM/CiAgICAod2hlbiAoc3RyaW5nLW1hdGNoICJe fi8iIGZpbGUtcGF0aCkKICAgICAgKHNldHEgZmlsZS1wYXRoIChjb25jYXQg IiRIT01FIiAoc3Vic3RyaW5nIGZpbGUtcGF0aCAxKSkpKQogICAgOzsgIyMj IyBVbml4LXNwZWNpZmljPwogICAgKGlmIChzdHJpbmctbWF0Y2ggIi9bXi9d KiQiIGZpbGUtcGF0aCkKCShzZXRxIGZpbGUtbmFtZSAoc3Vic3RyaW5nIGZp bGUtcGF0aCAoMSsgKG1hdGNoLWJlZ2lubmluZyAwKSkpKQogICAgICAoc2V0 cSBmaWxlLW5hbWUgZmlsZS1wYXRoKSkKCiAgICAodW53aW5kLXByb3RlY3QK CShpZiAoc2F2ZS1leGN1cnNpb24KCSAgICAgIChzZXQtYnVmZmVyIChzZXRx IHV1YnVmCgkJCQkoZ251cy1nZXQtYnVmZmVyLWNyZWF0ZSB1dWVuY29kZS1i dWZmZXItbmFtZSkpKQoJICAgICAgKGVyYXNlLWJ1ZmZlcikKCSAgICAgIChm dW5jYWxsIGdudXMtdXUtcG9zdC1lbmNvZGUtbWV0aG9kIGZpbGUtcGF0aCBm aWxlLW5hbWUpKQoJICAgIChpbnNlcnQtYnVmZmVyLXN1YnN0cmluZyB1dWJ1 ZikKCSAgKGVycm9yICJFbmNvZGluZyB1bnN1Y2Nlc3NmdWwiKSkKICAgICAg KGtpbGwtYnVmZmVyIHV1YnVmKSkKICAgIGZpbGUtbmFtZSkpCgo7OyBQb3N0 cyB0aGUgYXJ0aWNsZSBhbmQgYWxsIG9mIHRoZSBlbmNvZGVkIGZpbGUuCihk ZWZ1biBnbnVzLXV1LXBvc3QtZW5jb2RlZCAoZmlsZS1uYW1lICZvcHRpb25h bCB0aHJlYWRlZCkKICAobGV0ICgoc2VuZC1idWZmZXItbmFtZSAiKnV1ZW5j b2RlIHNlbmQgYnVmZmVyKiIpCgkoZW5jb2RlZC1idWZmZXItbmFtZSAiKmVu Y29kZWQgYnVmZmVyKiIpCgkodG9wLXN0cmluZyAiWyBjdXQgaGVyZSAlcyAo JXMgJWQvJWQpICVzIGdudXMtdXUgXSIpCgkoc2VwYXJhdG9yIChjb25jYXQg bWFpbC1oZWFkZXItc2VwYXJhdG9yICJcblxuIikpCgl1dWJ1ZiBsZW5ndGgg cGFydHMgaGVhZGVyIGkgZW5kIGJlZwoJYmVnLWxpbmUgbWlubGVuIHBvc3Qt YnVmIHdob2xlLWxlbiBiZWctYmluYXJ5IGVuZC1iaW5hcnkpCgogICAgKHNl dHEgcG9zdC1idWYgKGN1cnJlbnQtYnVmZmVyKSkKCiAgICAoZ290by1jaGFy IChwb2ludC1taW4pKQogICAgKHdoZW4gKG5vdCAocmUtc2VhcmNoLWZvcndh cmQKCQkoaWYgZ251cy11dS1wb3N0LXNlcGFyYXRlLWRlc2NyaXB0aW9uCgkJ ICAgIChjb25jYXQgIl4iIChyZWdleHAtcXVvdGUgZ251cy11dS1wb3N0LWJp bmFyeS1zZXBhcmF0b3IpCgkJCSAgICAiJCIpCgkJICAoY29uY2F0ICJeIiAo cmVnZXhwLXF1b3RlIG1haWwtaGVhZGVyLXNlcGFyYXRvcikgIiQiKSkKCQlu aWwgdCkpCiAgICAgIChlcnJvciAiSW50ZXJuYWwgZXJyb3I6IE5vIGJpbmFy eS9oZWFkZXIgc2VwYXJhdG9yIikpCiAgICAoYmVnaW5uaW5nLW9mLWxpbmUp CiAgICAoZm9yd2FyZC1saW5lIDEpCiAgICAoc2V0cSBiZWctYmluYXJ5IChw b2ludCkpCiAgICAoc2V0cSBlbmQtYmluYXJ5IChwb2ludC1tYXgpKQoKICAg IChzYXZlLWV4Y3Vyc2lvbgogICAgICAoc2V0LWJ1ZmZlciAoc2V0cSB1dWJ1 ZiAoZ251cy1nZXQtYnVmZmVyLWNyZWF0ZSBlbmNvZGVkLWJ1ZmZlci1uYW1l KSkpCiAgICAgIChlcmFzZS1idWZmZXIpCiAgICAgIChpbnNlcnQtYnVmZmVy LXN1YnN0cmluZyBwb3N0LWJ1ZiBiZWctYmluYXJ5IGVuZC1iaW5hcnkpCiAg ICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAgIChzZXRxIGxlbmd0 aCAoY291bnQtbGluZXMgKHBvaW50LW1pbikgKHBvaW50LW1heCkpKQogICAg ICAoc2V0cSBwYXJ0cyAoLyBsZW5ndGggZ251cy11dS1wb3N0LWxlbmd0aCkp CiAgICAgICh1bmxlc3MgKDwgKCUgbGVuZ3RoIGdudXMtdXUtcG9zdC1sZW5n dGgpIDQpCgkoaW5jZiBwYXJ0cykpKQoKICAgICh3aGVuIGdudXMtdXUtcG9z dC1zZXBhcmF0ZS1kZXNjcmlwdGlvbgogICAgICAoZm9yd2FyZC1saW5lIC0x KSkKICAgIChkZWxldGUtcmVnaW9uIChwb2ludCkgKHBvaW50LW1heCkpCgog ICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKICAgIChyZS1zZWFyY2gtZm9y d2FyZAogICAgIChjb25jYXQgIl4iIChyZWdleHAtcXVvdGUgbWFpbC1oZWFk ZXItc2VwYXJhdG9yKSAiJCIpIG5pbCB0KQogICAgKHNldHEgaGVhZGVyIChi dWZmZXItc3Vic3RyaW5nIChwb2ludC1taW4pIChwb2ludC1hdC1ib2wpKSkK CiAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQogICAgKHdoZW4gZ251cy11 dS1wb3N0LXNlcGFyYXRlLWRlc2NyaXB0aW9uCiAgICAgICh3aGVuIChyZS1z ZWFyY2gtZm9yd2FyZCAiXlN1YmplY3Q6ICIgbmlsIHQpCgkoZW5kLW9mLWxp bmUpCgkoaW5zZXJ0IChmb3JtYXQgIiAoMC8lZCkiIHBhcnRzKSkpCiAgICAg IChzYXZlLWV4Y3Vyc2lvbgoJKG1lc3NhZ2Utc2VuZCkpCiAgICAgIChzZXRx IGdudXMtdXUtcG9zdC1tZXNzYWdlLWlkIChtZXNzYWdlLWZldGNoLWZpZWxk ICJtZXNzYWdlLWlkIikpKQoKICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAo c2V0cSBpIDEpCiAgICAgIChzZXRxIGJlZyAxKQogICAgICAod2hpbGUgKG5v dCAoPiBpIHBhcnRzKSkKCShzZXQtYnVmZmVyIChnbnVzLWdldC1idWZmZXIt Y3JlYXRlIHNlbmQtYnVmZmVyLW5hbWUpKQoJKGVyYXNlLWJ1ZmZlcikKCShp bnNlcnQgaGVhZGVyKQoJKHdoZW4gKGFuZCB0aHJlYWRlZCBnbnVzLXV1LXBv c3QtbWVzc2FnZS1pZCkKCSAgKGluc2VydCAiUmVmZXJlbmNlczogIiBnbnVz LXV1LXBvc3QtbWVzc2FnZS1pZCAiXG4iKSkKCShpbnNlcnQgc2VwYXJhdG9y KQoJKHNldHEgd2hvbGUtbGVuCgkgICAgICAoLSA2MiAobGVuZ3RoIChmb3Jt YXQgdG9wLXN0cmluZyAiIiBmaWxlLW5hbWUgaSBwYXJ0cyAiIikpKSkKCSh3 aGVuICg+IDEgKHNldHEgbWlubGVuICgvIHdob2xlLWxlbiAyKSkpCgkgIChz ZXRxIG1pbmxlbiAxKSkKCShzZXRxCgkgYmVnLWxpbmUKCSAoZm9ybWF0IHRv cC1zdHJpbmcKCQkgKG1ha2Utc3RyaW5nIG1pbmxlbiA/LSkKCQkgZmlsZS1u YW1lIGkgcGFydHMKCQkgKG1ha2Utc3RyaW5nCgkJICAoaWYgKD0gMCAoJSB3 aG9sZS1sZW4gMikpICgxLSBtaW5sZW4pIG1pbmxlbikgPy0pKSkKCgkoZ290 by1jaGFyIChwb2ludC1taW4pKQoJKHdoZW4gKHJlLXNlYXJjaC1mb3J3YXJk ICJeU3ViamVjdDogIiBuaWwgdCkKCSAgKGVuZC1vZi1saW5lKQoJICAoaW5z ZXJ0IChmb3JtYXQgIiAoJWQvJWQpIiBpIHBhcnRzKSkpCgoJKGdvdG8tY2hh ciAocG9pbnQtbWF4KSkKCShzYXZlLWV4Y3Vyc2lvbgoJICAoc2V0LWJ1ZmZl ciB1dWJ1ZikKCSAgKGdvdG8tY2hhciBiZWcpCgkgIChpZiAoPSBpIHBhcnRz KQoJICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKCSAgICAoZm9yd2Fy ZC1saW5lIGdudXMtdXUtcG9zdC1sZW5ndGgpKQoJICAod2hlbiAoYW5kICg9 ICgxKyBpKSBwYXJ0cykgKDwgKGNvdW50LWxpbmVzIChwb2ludCkgKHBvaW50 LW1heCkpIDQpKQoJICAgIChmb3J3YXJkLWxpbmUgLTQpKQoJICAoc2V0cSBl bmQgKHBvaW50KSkpCgkoaW5zZXJ0LWJ1ZmZlci1zdWJzdHJpbmcgdXVidWYg YmVnIGVuZCkKCShpbnNlcnQgYmVnLWxpbmUgIlxuIikKCShzZXRxIGJlZyBl bmQpCgkoaW5jZiBpKQoJKGdvdG8tY2hhciAocG9pbnQtbWluKSkKCShyZS1z ZWFyY2gtZm9yd2FyZAoJIChjb25jYXQgIl4iIChyZWdleHAtcXVvdGUgbWFp bC1oZWFkZXItc2VwYXJhdG9yKSAiJCIpIG5pbCB0KQoJKGJlZ2lubmluZy1v Zi1saW5lKQoJKGZvcndhcmQtbGluZSAyKQoJKHdoZW4gKHJlLXNlYXJjaC1m b3J3YXJkCgkgICAgICAgKGNvbmNhdCAiXiIgKHJlZ2V4cC1xdW90ZSBnbnVz LXV1LXBvc3QtYmluYXJ5LXNlcGFyYXRvcikgIiQiKQoJICAgICAgIG5pbCB0 KQoJICAocmVwbGFjZS1tYXRjaCAiIikKCSAgKGZvcndhcmQtbGluZSAxKSkK CShpbnNlcnQgYmVnLWxpbmUpCgkoaW5zZXJ0ICJcbiIpCgkobGV0IChtZXNz YWdlLXNlbnQtbWVzc2FnZS12aWEpCgkgIChzYXZlLWV4Y3Vyc2lvbgoJICAg IChtZXNzYWdlLXNlbmQpKQoJICAoc2V0cSBnbnVzLXV1LXBvc3QtbWVzc2Fn ZS1pZAoJCShjb25jYXQgKG1lc3NhZ2UtZmV0Y2gtZmllbGQgInJlZmVyZW5j ZXMiKSAiICIKCQkJKG1lc3NhZ2UtZmV0Y2gtZmllbGQgIm1lc3NhZ2UtaWQi KSkpKSkpCgogICAgKGdudXMta2lsbC1idWZmZXIgc2VuZC1idWZmZXItbmFt ZSkKICAgIChnbnVzLWtpbGwtYnVmZmVyIGVuY29kZWQtYnVmZmVyLW5hbWUp CgogICAgKHdoZW4gKG5vdCBnbnVzLXV1LXBvc3Qtc2VwYXJhdGUtZGVzY3Jp cHRpb24pCiAgICAgIChzZXQtYnVmZmVyLW1vZGlmaWVkLXAgbmlsKQogICAg ICAoYnVyeS1idWZmZXIpKSkpCgoocHJvdmlkZSAnZ251cy11dSkKCjs7OyBh cmNoLXRhZzogMDUzMTIzODQtMGE4My00NzIwLTlhNTgtYjMxNjBiODg4ODUz Cjs7OyBnbnVzLXV1LmVsIGVuZHMgaGVyZQpACgoKNy4xNQpsb2cKQChnbnVz LXV1LXNhdmUtYXJ0aWNsZSk6IFVzZSBgbWVzc2FnZS1tYWtlLWRhdGUnCmlu c3RlYWQgb2YgYGN1cnJlbnQtdGltZS1zdHJpbmcnIGFzIHRoZSBsYXR0ZXIg Y3JlYXRlcyBhIHRpbWUKc3RyaW5nIHRoYXQgaXMgbm90IFJGQyAyODIyIGNv bXBsaWFudCAoaXQgbGFja3MgdGhlIHpvbmUpLgpVcGRhdGUgY29weXJpZ2h0 IG5vdGljZS4KQAp0ZXh0CkBkOTI5IDEKYTkyOSAxCgkgICAgICAoaW5zZXJ0 LWJ1ZmZlciAiKmdudXMtdXUtcHJlKiIpCmQ5MzEgMQphOTMxIDEKCSAgICAg IChpbnNlcnQtYnVmZmVyICIqZ251cy11dS1ib2R5KiIpKQpkOTM4IDEKYTkz OCAxCgkJICAoaW5zZXJ0LWJ1ZmZlciAiKmdudXMtdXUtcHJlKiIpKQpkOTUx IDEKYTk1MSAxCgkJICAoaW5zZXJ0LWJ1ZmZlciAiKmdudXMtdXUtYm9keSoi KSkKQAoKCjcuMTQKbG9nCkBSZXZpc2lvbjogbWlsZXNAQGdudS5vcmctLWdu dS0yMDA1L2dudXMtLWRldm8tLTAtLXBhdGNoLTE1MQoKTWVyZ2UgZnJvbSBn bnVzLS1yZWwtLTUuMTA6ICAgIFVwZGF0ZSBGU0YncyBhZGRyZXNzIGluIEdQ TCBub3RpY2VzLgoKUGF0Y2hlcyBhcHBsaWVkOgoKICogZW1hY3MtLWN2cy10 cnVuay0tMCAgKHBhdGNoIDQ2OS00NzApCgogICAtIFVwZGF0ZSBmcm9tIENW UwoKICogZ251cy0tcmVsLS01LjEwICAocGF0Y2ggODkpCgogICAtIE1lcmdl IGZyb20gZW1hY3MtLWN2cy10cnVuay0tMAoKMjAwNS0wNy0wNCAgTHV0ZSBL YW1zdHJhICA8bHV0ZUBAZ251Lm9yZz4KCiAgIFVwZGF0ZSBGU0YncyBhZGRy ZXNzIGluIEdQTCBub3RpY2VzLgpACnRleHQKQGQzIDEKYTMgMQo7OyAgICAg ICAgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KZDg0OCAxCmE4NDggMQoJCSAgICAgICAoY3VycmVudC10 aW1lLXN0cmluZykgbmFtZSBuYW1lKSkKQAoKCjcuMTMKbG9nCkAqIGVuY3J5 cHQuZWwgKGVuY3J5cHQteG9yLXByb2Nlc3MtYnVmZmVyKTogUmVwbGFjZSBg c3RyaW5nLXRvLWludCcKYnkgYHN0cmluZy10by1udW1iZXInLgoqIGdudXMt YWdlbnQuZWwgKGdudXMtYWdlbnQtcmVnZW5lcmF0ZS1ncm91cCkKKGdudXMt YWdlbnQtZmV0Y2gtYXJ0aWNsZXMpOiBEaXR0by4KKiBnbnVzLWFydC5lbCAo Z251cy1idXR0b24tZmV0Y2gtZ3JvdXApOiBEaXR0by4KKiBnbnVzLWNhY2hl LmVsIChnbnVzLWNhY2hlLWdlbmVyYXRlLWFjdGl2ZSkKKGdudXMtY2FjaGUt YXJ0aWNsZXMtaW4tZ3JvdXApOiBEaXR0by4KKiBnbnVzLWdyb3VwLmVsIChn bnVzLWdyb3VwLXNldC1jdXJyZW50LWxldmVsKQooZ251cy1ncm91cC1pbnNl cnQtZ3JvdXAtbGluZSk6IERpdHRvLgoqIGdudXMtc2NvcmUuZWwgKGdudXMt c2NvcmUtc2V0LWV4cHVuZ2UtYmVsb3cpCihnbnVzLXNjb3JlLXNldC1tYXJr LWJlbG93LCBnbnVzLXN1bW1hcnktc2NvcmUtZWZmZWN0KQooZ251cy1zdW1t YXJ5LXNjb3JlLWVudHJ5KTogRGl0dG8uCiogZ251cy1zb3VwLmVsIChnbnVz LXNvdXAtc2VuZC1wYWNrZXQsIGdudXMtc291cC1wYXJzZS1hcmVhcykKKGdu dXMtc291cC1wYWNrKTogRGl0dG8uCiogZ251cy1zcGVjLmVsIChnbnVzLXht YXMtZm9ybWF0KTogRGl0dG8uCiogZ251cy1zdGFydC5lbCAoZ251cy1uZXdz cmMtdG8tZ251cy1mb3JtYXQpOiBEaXR0by4KKiBnbnVzLXN1bS5lbCAoZ251 cy1jcmVhdGUteHJlZi1oYXNodGIpOiBEaXR0by4KKiBnbnVzLXV1LmVsIChn bnVzLXV1LWV4cGFuZC1udW1iZXJzKTogRGl0dG8uCiogbm5iYWJ5bC5lbCAo bm5iYWJ5bC1hcnRpY2xlLWdyb3VwLW51bWJlcik6IERpdHRvLgoqIG5uZGIu ZWwgKG5uZGItZ2V0LXJlbW90ZS1leHBpcmUtcmVzcG9uc2UpOiBEaXR0by4K KiBubmRpYXJ5LmVsIChubmRpYXJ5LXBhcnNlLXNjaGVkdWxlLXZhbHVlKQoo bm5kaWFyeS1zdHJpbmctdG8tbnVtYmVyLCBubmRpYXJ5LXJlcXVlc3QtcmVw bGFjZS1hcnRpY2xlKQoobm5kaWFyeS1yZXF1ZXN0LWFydGljbGUpOiBEaXR0 by4KKiBubmRvYy5lbCAobm5kb2Mtcm5ld3MtYm9keS1lbmQsIG5uZG9jLW1i b3gtYm9keS1lbmQpOiBEaXR0by4KKiBubmRyYWZ0LmVsIChubmRyYWZ0LWFy dGljbGVzLCBubmRyYWZ0LXJlcXVlc3QtZ3JvdXApOiBEaXR0by4KKiBubmVl dGhpbmcuZWwgKG5uZWV0aGluZy1tYWtlLWhlYWQpOiBEaXR0by4KKiBubmZv bGRlci5lbCAobm5mb2xkZXItcmVxdWVzdC1hcnRpY2xlKQoobm5mb2xkZXIt cmV0cmlldmUtaGVhZGVycyk6IERpdHRvLgoqIG5uaGVhZGVyLmVsIChubmhl YWRlci1maWxlLXRvLW51bWJlcik6IERpdHRvLgoqIG5ua2lib3plLmVsIChu bmtpYm96ZS1yZXF1ZXN0LWFydGljbGUpOiBEaXR0by4KKiBubm1haWwuZWwg KG5ubWFpbC1wcm9jZXNzLXVuaXgtbWFpbC1mb3JtYXQpCihubm1haWwtcHJv Y2Vzcy1iYWJ5bC1tYWlsLWZvcm1hdCk6IERpdHRvLgoqIG5ubWJveC5lbCAo bm5tYm94LXJlYWQtbWJveCwgbm5tYm94LWFydGljbGUtZ3JvdXAtbnVtYmVy KTogRGl0dG8uCiogbm5taC5lbCAobm5taC11cGRhdGUtZ251cy11bnJlYWRz LCBubm1oLWFjdGl2ZS1udW1iZXIpCihubm1oLXJlcXVlc3QtY3JlYXRlLWdy b3VwLCBubm1oLXJlcXVlc3QtbGlzdC0xKQoobm5taC1yZXF1ZXN0LWdyb3Vw LCBubm1oLXJlcXVlc3QtYXJ0aWNsZSk6IERpdHRvLgoqIG5ubWwuZWwgKG5u bWwtcmVxdWVzdC1yZXBsYWNlLWFydGljbGUsIG5ubWwtcmVxdWVzdC1hcnRp Y2xlKTogRGl0dG8uCiogbm5yc3MuZWwgKG5ucnNzLWZpbmQtcnNzLXZpYS1z eW5kaWM4KTogRGl0dG8uCiogbm5zb3VwLmVsIChubnNvdXAtbWFrZS1hY3Rp dmUpOiBEaXR0by4KKiBubnNwb29sLmVsIChubnNwb29sLWZpbmQtaWQsIG5u c3Bvb2wtcmVxdWVzdC1ncm91cCk6IERpdHRvLgoqIG5udHAuZWwgKG5udHAt ZmluZC1ncm91cC1hbmQtbnVtYmVyKQoobm50cC1yZXRyaWV2ZS1oZWFkZXJz LXdpdGgteG92ZXIpOiBEaXR0by4KKiBwZ2ctZ3BnLmVsIChwZ2ctZ3BnLXNu YXJmLWtleXMtcmVnaW9uKTogRGl0dG8uCiogcGdnLXBhcnNlLmVsIChwZ2ct cmVhZC1ib2R5LCBwZ2ctcmVhZC1ieXRlcykKKHBnZy1mb3JtYXQta2V5LWlk ZW50aWZpZXIpOiBEaXR0by4KKiBwb3AzLmVsIChwb3AzLWxhc3QsIHBvcDMt c3RhdCk6IERpdHRvLgoqIHFwLmVsIChxdW90ZWQtcHJpbnRhYmxlLWRlY29k ZS1yZWdpb24pOiBEaXR0by4KQAp0ZXh0CkBkMjMgMgphMjQgMgo7OyBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAt IFN1aXRlIDMzMCwKOzsgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCkAK Cgo3LjEyCmxvZwpAKGdudXMtdXUtZGlnZXN0LW1haWwtZm9yd2FyZCk6IE9i ZXkgdGhlIHByb2Nlc3MvcHJlZml4IGNvbnZlbnRpb24gZnVsbHk7CiBkb24n dCBtaXNzIHRoZSByb290IGFydGljbGUgb2YgYSB0aHJlYWQ7IG1ha2UgdGhl IFgtRHJhZnQtRnJvbSBoZWFkZXIgd2l0aAogY29ycmVjdCBhcnRpY2xlIG51 bWJlcnMuCkAKdGV4dApAZDExOTcgMQphMTE5NyAxCgkJICAgICAoc3RyaW5n LXRvLWludCAoYnVmZmVyLXN1YnN0cmluZwpACgoKNy4xMQpsb2cKQCogZ251 cy1hZ2VudC5lbCAoZ251cy1hZ2VudC1yZXN0b3JlLWdjYyk6IFVzZSBeIGFu ZCByZWdleHAtcXVvdGUuCgoqIGdudXMtc3VtLmVsIChnbnVzLXN1bW1hcnkt bW9yc2UtbWVzc2FnZSk6IFVzZSBzZWFyY2gtZm9yd2FyZCBpbnN0ZWFkIG9m CiByZS1zZWFyY2gtZm9yd2FyZC4KCiogZ251cy11dS5lbCAoZ251cy11dS1z YXZlLWFydGljbGUpOiBEaXR0by4KKGdudXMtdXUtcG9zdC1lbmNvZGUtdXVl bmNvZGUpOiBEaXR0by4KCiogaHRtbDJ0ZXh0LmVsIChodG1sMnRleHQtY2xl YW4tbGlzdC1pdGVtcyk6IERpdHRvLgooaHRtbDJ0ZXh0LWNsZWFuLWR0ZGQp OiBEaXR0by4KKGh0bWwydGV4dC1mb3JtYXQtdGFncyk6IERpdHRvLgoKKiBt ZXNzYWdlLmVsIChtZXNzYWdlLXNlbmQtbWFpbC13aXRoLXNlbmRtYWlsKTog Rml4IHJlZ2V4cC4KKG1lc3NhZ2UtZmlsbC1maWVsZC1nZW5lcmFsKTogVXNl IHNlYXJjaC1mb3J3YXJkIGluc3RlYWQgb2YgcmUtc2VhcmNoLWZvcndhcmQu Cih1bmJvbGQtcmVnaW9uKTogRGl0dG8uCgoqIG5ucnNzLmVsIChubnJzcy1y ZXF1ZXN0LWFydGljbGUpOiBEaXR0by4KCiogbm5zbGFzaGRvdC5lbCAobm5z bGFzaGRvdC1yZXF1ZXN0LWFydGljbGUpOiBEaXR0by4KCiogbm53ZWIuZWwg KG5ud2ViLWdtYW5lLXdhc2gtYXJ0aWNsZSk6IERpdHRvLgpACnRleHQKQGQ0 ODMgMTAKYTQ5MiAxCiAgICAobGV0ICgoZ251cy1hcnRpY2xlLXJlcGx5IChn bnVzLXN1bW1hcnktd29yay1hcnRpY2xlcyBuKSkpCkAKCgo3LjEwCmxvZwpA MjAwNC0wNS0yMyAgUGF1bCBTdG9kZ2hpbGwgIDxzdG9kZ2hpbEBAY3MuY29y bmVsbC5lZHU+CgoJKiBnbnVzLXV0aWwuZWwgKGdudXMtc2V0LWZpbGUtbW9k ZXMpOiBOZXcgZnVuY3Rpb24uICAoc21hbGwKCXBhdGNoKS4KQAp0ZXh0CkBk MyAxCmEzIDEKOzsgICAgICAgIDIwMDEsIDIwMDIsIDIwMDMgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCmQ4NjIgMQphODYyIDEKCSAgICAocmUt c2VhcmNoLWZvcndhcmQgIlxuXG4iKQpkMTg5OCAxCmExODk4IDEKICAgICh3 aGlsZSAocmUtc2VhcmNoLWZvcndhcmQgIiAiIG5pbCB0KQpACgoKNy45Cmxv ZwpAQWRkIGFyY2ggdGFnbGluZXMKQAp0ZXh0CkBkMTc1NCAxCmExNzU0IDEK ICAgICAgKHNldC1maWxlLW1vZGVzIGdudXMtdXUtd29yay1kaXIgNDQ4KQpA CgoKNy44CmxvZwpAKiBzcGFtLXN0YXQuZWwgKHNwYW0tc3RhdC1zY29yZS1i dWZmZXIpOiBTaW1wbGlmeSBtYXBjYXIgdXNhZ2UuClVzZSBtYXBjIHdoZW4g YXBwcm9wcmlhdGUuCgoqIHNpZXZlLW1hbmFnZS5lbCAoc2lldmUtbWFuYWdl LW9wZW4pOiBkby4KCiogbm53ZWIuZWwgKG5ud2ViLWluc2VydC1odG1sKTog ZG8uCgoqIG5udmlydHVhbC5lbCAobm52aXJ0dWFsLWNhdGNodXAtZ3JvdXAs IG5udmlydHVhbC1wYXJ0aXRpb24tc2VxdWVuY2UpCihubnZpcnR1YWwtcGFy dGl0aW9uLXNlcXVlbmNlLCBubnZpcnR1YWwtY3JlYXRlLW1hcHBpbmcpOiBk by4KCiogbm5zcG9vbC5lbCAobm5zcG9vbC1yZXF1ZXN0LWdyb3VwKTogZG8u CgoqIG5ucnNzLmVsIChubnJzcy1vcG1sLWV4cG9ydCwgbm5yc3MtZmluZC1l bCwgbm5yc3Mtb3JkZXItaHJlZnMpOgpkby4KCiogbm5tbC5lbCAobm5tbC1y ZXF1ZXN0LXVwZGF0ZS1pbmZvKTogZG8uCgoqIG5ubWguZWwgKG5ubWgtcmVx dWVzdC1ncm91cCwgbm5taC1yZXF1ZXN0LWxpc3QtMSwgbm5taC1hY3RpdmUt bnVtYmVyKQoobm5taC1yZXF1ZXN0LWNyZWF0ZS1ncm91cCwgbm5taC11cGRh dGUtZ251cy11bnJlYWRzKTogZG8uCgoqIG5uaW1hcC5lbCAobm5pbWFwLXJl cXVlc3QtY2xvc2UsIG5uaW1hcC1hY2wtZWRpdCkKKG5uaW1hcC1yZXF1ZXN0 LXNldC1tYXJrKTogZG8uCgoqIG5uZm9sZGVyLmVsIChubmZvbGRlci1yZXF1 ZXN0LXVwZGF0ZS1pbmZvKTogZG8uCgoqIG1tLXZpZXcuZWwgKG1tLXBrY3M3 LXNpZ25lZC1tYWdpYywgbW0tcGtjczctZW52ZWxvcGVkLW1hZ2ljKToKZG8u CgoqIG1tbC5lbCAobW1sLWRlc3Ryb3ktYnVmZmVycywgbW1sLWNvbXB1dGUt Ym91bmRhcnktMSk6IGRvLgoKKiBnbnVzLXV1LmVsIChnbnVzLXV1LWZpbmQt YXJ0aWNsZXMtbWF0Y2hpbmcpOiBkby4KCiogZ251cy10b3BpYy5lbCAoZ251 cy10b3BpYy1jaGVjay10b3BvbG9neSwgZ251cy10b3BpYy1yZW1vdmUtZ3Jv dXApOgpkby4KCiogZ251cy1zdW0uZWwgKGdudXMtc3VtbWFyeS1mZXRjaC1m YXEsIGdudXMtcmVhZC1tb3ZlLWdyb3VwLW5hbWUpOgpkby4KCiogZ251cy1z Y29yZS5lbCAoZ251cy1zY29yZS1sb2FkLWZpbGUsIGdudXMtc29ydC1zY29y ZS1maWxlcyk6IGRvLgoKKiBnbnVzLW5vY2VtLmVsIChnbnVzLW5vY2VtLXNj YW4tZ3JvdXBzKTogZG8uCgoqIGdudXMtaW50LmVsIChnbnVzLXN0YXJ0LW5l d3Mtc2VydmVyKTogZG8uCgoqIGdudXMtZ3JvdXAuZWwgKGdudXMtZ3JvdXAt bWFrZS1raWJvemUtZ3JvdXApCihnbnVzLWdyb3VwLWJyb3dzZS1mb3JlaWdu LXNlcnZlcik6IGRvLgpACnRleHQKQGQyMTA5IDEKQAoKCjcuNwpsb2cKQCog Z251cy11dS5lbCAoZ251cy11dS1jaGVjay1jb3JyZWN0LXN0cmlwcGVkLXV1 Y29kZSk6IFNpbXBsaWZ5LgooZ251cy11dS1wb3N0LWVuY29kZWQpOiBVc2Ug cG9pbnQtYXQtYm9sLgoKKiBnbnVzLXRvcGljLmVsIChnbnVzLWdyb3VwLWFj dGl2ZS10b3BpYy1wKTogZG8uCgoqIGdudXMtc3RhcnQuZWwgKGdudXMtbmV3 c3JjLXRvLWdudXMtZm9ybWF0KTogZG8uCgoqIGdudXMtZ3JvdXAuZWwgKGdu dXMtZ3JvdXAta2lsbC1yZWdpb24pOiBkby4KCiogZ251cy1hcnQuZWwgKGFy dGljbGUtZGF0ZS11dCk6IGRvLgpACnRleHQKQGQxMTUzIDEKYTExNTMgMQoJ KG1hcGNhciAobGFtYmRhIChzdWIpIChjZHIgc3ViKSkKQAoKCjcuNgpsb2cK QCogY2FubG9jay5lbCAoY2FubG9jay1pbnNlcnQtaGVhZGVyKTogUmVtb3Zl IGV4Y2Vzc2l2ZSBncm91cGluZyBpbiByZWdleHAuCiogZ251cy1zdW0uZWwg KGdudXMtc3VtbWFyeS1yZWFkLWRvY3VtZW50KTogRGl0dG8uCiogZ251cy11 dS5lbCAoZ251cy11dS1wYXJ0LW51bWJlcik6IERpdHRvLgoqIGh0bWwydGV4 dC5lbCAoaHRtbDJ0ZXh0LXJlbW92ZS10YWdzKTogRGl0dG8uCihodG1sMnRl eHQtZm9ybWF0LXRhZ3MpOiBEaXR0by4KKGh0bWwydGV4dC1mb3JtYXQtc2lu Z2xlLWVsZW1lbnRzKTogRGl0dG8uCiogbW1sLmVsIChtbWwtcGFyc2UtMSk6 IERpdHRvLgpACnRleHQKQGQxNzA4IDEKYTE3MDggMgogICAgICAoaWYgKG5v dCBnbnVzLXV1LWNvcnJlY3Qtc3RyaXBwZWQtdXVjb2RlKQoJICAoKQpkMTcy MSAyCmExNzIyIDMKCSAgICAoaWYgKGxvb2tpbmctYXQgKGNvbmNhdCBnbnVz LXV1LWJlZ2luLXN0cmluZyAiXFx8IgoJCQkJICAgIGdudXMtdXUtZW5kLXN0 cmluZykpCgkJKCkKZDE3MjQgMQphMTcyNCA0CgkJKGJlZ2lubmluZy1vZi1s aW5lKQoJCShzZXRxIGJlZyAocG9pbnQpKQoJCShlbmQtb2YtbGluZSkKCQko c2V0cSBsZW5ndGggKC0gKHBvaW50KSBiZWcpKSkKZDE3MjkgMQphMTcyOSAx CgkgICAgICAod2hlbiAobm90ICg9IGxlbmd0aCAoLSAocG9pbnQpIGJlZykp KQpkMjAyOSAxCmEyMDI5IDIKICAgIChiZWdpbm5pbmctb2YtbGluZSkKICAg IChzZXRxIGhlYWRlciAoYnVmZmVyLXN1YnN0cmluZyAocG9pbnQtbWluKSAo cG9pbnQpKSkKQAoKCjcuNQpsb2cKQCogZGdudXNoYWNrLmVsIChkZ251c2hh Y2stY29tcGlsZSk6IERvbid0IGNvbXBpbGUgcnVuLWF0LXRpbWUKdW5kZXIg RW1hY3MuCgoqIGdudXMuZWwgKChmYm91bmRwICdnbnVzLXNldC10ZXh0LXBy b3BlcnRpZXMpKTogUmVtb3ZlIGRlZmluaXRpb24Kb2YgZ251cy1zZXQtdGV4 dC1wcm9wZXJ0aWVzLgoKKiBnbnVzLXV1LmVsIChnbnVzLXV1LXNhdmUtYXJ0 aWNsZSk6IERpdHRvLgoKKiBnbnVzLXNhbHQuZWwgKGdudXMtY2FycGFsLXNl dHVwLWJ1ZmZlcik6IERpdHRvLgoKKiBnbnVzLWNpdGUuZWwgKGdudXMtY2l0 ZS1wYXJzZSk6IERpdHRvLgoKKiBnbnVzLWFydC5lbCAoZ251cy1idXR0b24t cHVzaCk6IFVzZSBzZXQtdGV4dC1wcm9wZXJ0aWVzIGluc3RlYWQKb2YgZ251 cy0uCgoqIGdudXMteG1hcy5lbCAocnVuLWF0LXRpbWUpOiBSZXF1aXJlIHJ1 bi1hdC10aW1lLgoKKiBnbnVzLmVsOiBDaGFuZ2VkIGNhbGxzIHRvIG5uaGVh ZGVyLXJ1bi1hdC10aW1lIGFuZApwYXNzd29yZC1ydW4tYXQtdGltZSB0aHJv dWdob3V0IHRvIHVzZSBydW4tYXQtdGltZSBkaXJlY3RseS4KCiogcGFzc3dv cmQuZWw6IFJlbW92ZWQgZGVmaW5pdGlvbiBvZiBydW4tYXQtdGltZS4KCiog bm5oZWFkZXJ4bS5lbDogUmVtb3ZlIGRlZmluaXRpb24gb2YgcnVuLWF0LXRp bWUuCkAKdGV4dApAZDE0MDYgMQphMTQwNiAxCgkod2hpbGUgKHN0cmluZy1t YXRjaCAiXFwoWzAtOV0rXFwpW14wLTldK1xcKFswLTldK1xcKSIgc3ViamVj dCkKQAoKCjcuNApsb2cKQCogZ251cy1yZWdpc3RyeS5lbDogUmVtb3ZlIEVt YWNzIDIwIGhhc2ggdGFibGUgY29tcGF0aWJpbGl0eSBjb2RlLgoKKiBnbnVz LXV1LmVsIChnbnVzLXV1LXBvc3QtZW5jb2RlZCk6IGJ1cnktYnVmZmVyIGlz IGFsd2F5cyBmYm91bmQuCkAKdGV4dApAZDg1MiAxCmE4NTIgMQoJICAgICAg KGdudXMtc2V0LXRleHQtcHJvcGVydGllcyAocG9pbnQtbWluKSAocG9pbnQt bWF4KSBuaWwpCkAKCgo3LjMKbG9nCkAqIG1tLXV0aWwuZWwgKG1tLXF1b3Rl LWFyZyk6IFJlbW92ZS4KCiogbW0tZGVjb2RlLmVsIChtbS1tYWlsY2FwLWNv bW1hbmQpOiBSZXBsYWNlIG1tLXF1b3RlLWFyZyB3aXRoCnNoZWxsLXF1b3Rl LWFyZ3VtZW50LgoKKiBnbnVzLXV1LmVsIChnbnVzLXV1LWNvbW1hbmQpOiBk by4KCiogZ251cy1zdW0uZWwgKGdudXMtc3VtbWFyeS1pbnNlcnQtcHNldWRv cyk6IGRvLgoKKiBpZXRmLWRydW1zLmVsIChpZXRmLWRydW1zLXRva2VuLXRv LWxpc3QpOiBSZXBsYWNlIG1tLW1ha2UtY2hhcgp3aXRoIG1ha2UtY2hhci4K CiogbW0tdXRpbC5lbCAobW0tbWFrZS1jaGFyKTogUmVtb3ZlLgoKKiBnbnVz LXN1bS5lbCAoZ251cy1kZWFkLXN1bW1hcnktbW9kZSk6IGRvLgpACnRleHQK QGQyMTExIDEKYTIxMTEgMgogICAgICAod2hlbiAoZmJvdW5kcCAnYnVyeS1i dWZmZXIpCgkoYnVyeS1idWZmZXIpKSkpKQpACgoKNy4yCmxvZwpAKGdudXMt cG9pbnQtYXQtYm9sLCBnbnVzLXBvaW50LWF0LWVvbCk6IFJlbW92ZS4KUmVw bGFjZSB3aXRoIHBvaW50LWF0LXtlb2wsYm9sfSB0aHJvdWdob3V0IGFsbCBm aWxlcy4KQAp0ZXh0CkBkMTc3OSAxCmExNzc5IDEKICAobGV0ICgocXVvdGVk LWZpbGUgKG1tLXF1b3RlLWFyZyBmaWxlKSkpCkAKCgo3LjEKbG9nCkBOZXcg dGFnLgpACnRleHQKQGQ1MTMgMQphNTEzIDEKCSAgKGRlbGV0ZS1yZWdpb24g KHBvaW50KSAoZ251cy1wb2ludC1hdC1lb2wpKQpkNTE3IDEKYTUxNyAxCgkg IChkZWxldGUtcmVnaW9uIChwb2ludCkgKGdudXMtcG9pbnQtYXQtZW9sKSkK QAoKCjYuMjgKbG9nCkAqIHNwYW0uZWwgKHNwYW0tY2hlY2stc3BhbW9yYWNs ZSwgc3BhbS1zcGFtb3JhY2xlLWxlYXJuKTogRG9uJ3QKdXNlID0gb3IgemVy b3AgdG8gdGVzdCB0aGUgcmV0dXJuIHZhbHVlIG9mIGNhbGwtcHJvY2Vzcywg YmVjYXVzZQppdCBjYW4gYmUgYSBzdHJpbmcuCgoqIG1haWwtc291cmNlLmVs IChtYWlsLXNvdXJjZS1mZXRjaC13aXRoLXByb2dyYW0pOiBkby4KCiogbWFp bGNhcC5lbCAobWFpbGNhcC12aWV3ZXItcGFzc2VzLXRlc3QpOiBkby4KCiog Z251cy11dS5lbCAoZ251cy11dS10cmVhdC1hcmNoaXZlLCBnbnVzLXV1LXBv c3QtZW5jb2RlLW1pbWUpCihnbnVzLXV1LXBvc3QtZW5jb2RlLWZpbGUpOiBk by4KCiogZ251cy1zb3VwLmVsIChnbnVzLXNvdXAtcGFjaywgZ251cy1zb3Vw LXVucGFjay1wYWNrZXQpOiBkby4KQAp0ZXh0CkBACgoKNi4yOC4yLjEKbG9n CkBBZGQgYXJjaCB0YWdsaW5lcwpACnRleHQKQGEyMTE1IDEKOzs7IGFyY2gt dGFnOiAwNTMxMjM4NC0wYTgzLTQ3MjAtOWE1OC1iMzE2MGI4ODg4NTMKQAoK CjYuMjguMi4yCmxvZwpAKiBnbnVzLWFnZW50LmVsIChnbnVzLWFnZW50LXJl Z2VuZXJhdGUtZ3JvdXApCihnbnVzLWFnZW50LWZldGNoLWFydGljbGVzKTog UmVwbGFjZSBgc3RyaW5nLXRvLWludCcgYnkKYHN0cmluZy10by1udW1iZXIn LgoqIGdudXMtYXJ0LmVsIChnbnVzLWJ1dHRvbi1mZXRjaC1ncm91cCk6IERp dHRvLgoqIGdudXMtY2FjaGUuZWwgKGdudXMtY2FjaGUtZ2VuZXJhdGUtYWN0 aXZlKQooZ251cy1jYWNoZS1hcnRpY2xlcy1pbi1ncm91cCk6IERpdHRvLgoq IGdudXMtZ3JvdXAuZWwgKGdudXMtZ3JvdXAtc2V0LWN1cnJlbnQtbGV2ZWwp CihnbnVzLWdyb3VwLWluc2VydC1ncm91cC1saW5lKTogRGl0dG8uCiogZ251 cy1zY29yZS5lbCAoZ251cy1zY29yZS1zZXQtZXhwdW5nZS1iZWxvdykKKGdu dXMtc2NvcmUtc2V0LW1hcmstYmVsb3csIGdudXMtc3VtbWFyeS1zY29yZS1l ZmZlY3QpCihnbnVzLXN1bW1hcnktc2NvcmUtZW50cnkpOiBEaXR0by4KKiBn bnVzLXNvdXAuZWwgKGdudXMtc291cC1zZW5kLXBhY2tldCwgZ251cy1zb3Vw LXBhcnNlLWFyZWFzKQooZ251cy1zb3VwLXBhY2spOiBEaXR0by4KKiBnbnVz LXNwZWMuZWwgKGdudXMteG1hcy1mb3JtYXQpOiBEaXR0by4KKiBnbnVzLXN0 YXJ0LmVsIChnbnVzLW5ld3NyYy10by1nbnVzLWZvcm1hdCk6IERpdHRvLgoq IGdudXMtc3VtLmVsIChnbnVzLWNyZWF0ZS14cmVmLWhhc2h0Yik6IERpdHRv LgoqIGdudXMtdXUuZWwgKGdudXMtdXUtZXhwYW5kLW51bWJlcnMpOiBEaXR0 by4KKiBubmJhYnlsLmVsIChubmJhYnlsLWFydGljbGUtZ3JvdXAtbnVtYmVy KTogRGl0dG8uCiogbm5kYi5lbCAobm5kYi1nZXQtcmVtb3RlLWV4cGlyZS1y ZXNwb25zZSk6IERpdHRvLgoqIG5uZGlhcnkuZWwgKG5uZGlhcnktcGFyc2Ut c2NoZWR1bGUtdmFsdWUpCihubmRpYXJ5LXN0cmluZy10by1udW1iZXIsIG5u ZGlhcnktcmVxdWVzdC1yZXBsYWNlLWFydGljbGUpCihubmRpYXJ5LXJlcXVl c3QtYXJ0aWNsZSk6IERpdHRvLgoqIG5uZG9jLmVsIChubmRvYy1ybmV3cy1i b2R5LWVuZCwgbm5kb2MtbWJveC1ib2R5LWVuZCk6IERpdHRvLgoqIG5uZHJh ZnQuZWwgKG5uZHJhZnQtYXJ0aWNsZXMsIG5uZHJhZnQtcmVxdWVzdC1ncm91 cCk6IERpdHRvLgoqIG5uZWV0aGluZy5lbCAobm5lZXRoaW5nLW1ha2UtaGVh ZCk6IERpdHRvLgoqIG5uZm9sZGVyLmVsIChubmZvbGRlci1yZXF1ZXN0LWFy dGljbGUpCihubmZvbGRlci1yZXRyaWV2ZS1oZWFkZXJzKTogRGl0dG8uCiog bm5oZWFkZXIuZWwgKG5uaGVhZGVyLWZpbGUtdG8tbnVtYmVyKTogRGl0dG8u Ciogbm5raWJvemUuZWwgKG5ua2lib3plLXJlcXVlc3QtYXJ0aWNsZSk6IERp dHRvLgoqIG5ubWFpbC5lbCAobm5tYWlsLXByb2Nlc3MtdW5peC1tYWlsLWZv cm1hdCkKKG5ubWFpbC1wcm9jZXNzLWJhYnlsLW1haWwtZm9ybWF0KTogRGl0 dG8uCiogbm5tYm94LmVsIChubm1ib3gtcmVhZC1tYm94LCBubm1ib3gtYXJ0 aWNsZS1ncm91cC1udW1iZXIpOiBEaXR0by4KKiBubm1oLmVsIChubm1oLXVw ZGF0ZS1nbnVzLXVucmVhZHMsIG5ubWgtYWN0aXZlLW51bWJlcikKKG5ubWgt cmVxdWVzdC1jcmVhdGUtZ3JvdXAsIG5ubWgtcmVxdWVzdC1saXN0LTEpCihu bm1oLXJlcXVlc3QtZ3JvdXAsIG5ubWgtcmVxdWVzdC1hcnRpY2xlKTogRGl0 dG8uCiogbm5tbC5lbCAobm5tbC1yZXF1ZXN0LXJlcGxhY2UtYXJ0aWNsZSwg bm5tbC1yZXF1ZXN0LWFydGljbGUpOiBEaXR0by4KKiBubnJzcy5lbCAobm5y c3MtZmluZC1yc3MtdmlhLXN5bmRpYzgpOiBEaXR0by4KKiBubnNvdXAuZWwg KG5uc291cC1tYWtlLWFjdGl2ZSk6IERpdHRvLgoqIG5uc3Bvb2wuZWwgKG5u c3Bvb2wtZmluZC1pZCwgbm5zcG9vbC1yZXF1ZXN0LWdyb3VwKTogRGl0dG8u Ciogbm50cC5lbCAobm50cC1maW5kLWdyb3VwLWFuZC1udW1iZXIpCihubnRw LXJldHJpZXZlLWhlYWRlcnMtd2l0aC14b3Zlcik6IERpdHRvLgoqIHBnZy1n cGcuZWwgKHBnZy1ncGctc25hcmYta2V5cy1yZWdpb24pOiBEaXR0by4KKiBw Z2ctcGFyc2UuZWwgKHBnZy1yZWFkLWJvZHksIHBnZy1yZWFkLWJ5dGVzKQoo cGdnLWZvcm1hdC1rZXktaWRlbnRpZmllcik6IERpdHRvLgoqIHBvcDMuZWwg KHBvcDMtbGFzdCwgcG9wMy1zdGF0KTogRGl0dG8uCiogcXAuZWwgKHF1b3Rl ZC1wcmludGFibGUtZGVjb2RlLXJlZ2lvbik6CkAKdGV4dApAZDExODggMQph MTE4OCAxCgkJICAgICAoc3RyaW5nLXRvLW51bWJlciAoYnVmZmVyLXN1YnN0 cmluZwpACgoKNi4yOC4yLjMKbG9nCkBSZXZpc2lvbjogbWlsZXNAQGdudS5v cmctLWdudS0yMDA1L2dudXMtLXJlbC0tNS4xMC0tcGF0Y2gtODkKCk1lcmdl IGZyb20gZW1hY3MtLWN2cy10cnVuay0tMAoKUGF0Y2hlcyBhcHBsaWVkOgoK ICogZW1hY3MtLWN2cy10cnVuay0tMCAgKHBhdGNoIDQ2OS00NzApCgogICAt IFVwZGF0ZSBmcm9tIENWUwoKMjAwNS0wNy0wNCAgTHV0ZSBLYW1zdHJhICA8 bHV0ZUBAZ251Lm9yZz4KCiAgIFVwZGF0ZSBGU0YncyBhZGRyZXNzIGluIEdQ TCBub3RpY2VzLgpACnRleHQKQGQyMyAyCmEyNCAyCjs7IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0 aCBGbG9vciwKOzsgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCkAKCgo2 LjI4LjIuNApsb2cKQCogZ251cy11dS5lbCAoZ251cy11dS1zYXZlLWFydGlj bGUpOiBVc2UgaW5zZXJ0LWJ1ZmZlci1zdWJzdHJpbmcgaW5zdGVhZCBvZgog aW5zZXJ0LWJ1ZmZlci4KCiogbWVzc2FnZS5lbCAobWVzc2FnZS15YW5rLW9y aWdpbmFsKTogRGl0dG8uCkAKdGV4dApAZDkyMCAxCmE5MjAgMQoJICAgICAg KGluc2VydC1idWZmZXItc3Vic3RyaW5nICIqZ251cy11dS1wcmUqIikKZDky MiAxCmE5MjIgMQoJICAgICAgKGluc2VydC1idWZmZXItc3Vic3RyaW5nICIq Z251cy11dS1ib2R5KiIpKQpkOTI5IDEKYTkyOSAxCgkJICAoaW5zZXJ0LWJ1 ZmZlci1zdWJzdHJpbmcgIipnbnVzLXV1LXByZSoiKSkKZDk0MiAxCmE5NDIg MQoJCSAgKGluc2VydC1idWZmZXItc3Vic3RyaW5nICIqZ251cy11dS1ib2R5 KiIpKQpACgoKNi4yOC4yLjUKbG9nCkAoZ251cy11dS1zYXZlLWFydGljbGUp OiBVc2UgYG1lc3NhZ2UtbWFrZS1kYXRlJwppbnN0ZWFkIG9mIGBjdXJyZW50 LXRpbWUtc3RyaW5nJyBhcyB0aGUgbGF0dGVyIGNyZWF0ZXMgYSB0aW1lCnN0 cmluZyB0aGF0IGlzIG5vdCBSRkMgMjgyMiBjb21wbGlhbnQgKGl0IGxhY2tz IHRoZSB6b25lKS4KQAp0ZXh0CkBkODM5IDEKYTgzOSAxCgkJICAgICAgICht ZXNzYWdlLW1ha2UtZGF0ZSkgbmFtZSBuYW1lKSkKQAoKCjYuMjcKbG9nCkAo Z251cy11dS11dXN0cmlwLWFydGljbGUpOiBSZWFsbHkgc3RyaXAgZGlyZWN0 b3J5CmZyb20gZmlsZSBuYW1lLgpACnRleHQKQGQxNjMzIDEKYTE2MzMgMQog ICAgKGlmICg9IDAgKGNhbGwtcHJvY2VzcyBzaGVsbC1maWxlLW5hbWUgbmls CmQxOTE1IDIKYTE5MTYgMgogICh3aGVuICh6ZXJvcCAoY2FsbC1wcm9jZXNz IHNoZWxsLWZpbGUtbmFtZSBuaWwgdCBuaWwgc2hlbGwtY29tbWFuZC1zd2l0 Y2gKCQkJICAgICAoZm9ybWF0ICIlcyAlcyAtbyAlcyIgIm1tZW5jb2RlIiBw YXRoIGZpbGUtbmFtZSkpKQpkMTk0MSAyCmExOTQyIDIKICAoPSAwIChjYWxs LXByb2Nlc3Mgc2hlbGwtZmlsZS1uYW1lIG5pbCB0IG5pbCBzaGVsbC1jb21t YW5kLXN3aXRjaAoJCSAgICAgKGZvcm1hdCAiJXMgJXMgJXMiIGNvbW1hbmQg cGF0aCBmaWxlLW5hbWUpKSkpCkAKCgo2LjI2CmxvZwpAKGdudXMtdXUtZ3Jh Yi1hcnRpY2xlcyk6IEZpeCBtaXNwbGFjZWQgcGFyZW5zLgpGcm9tIE1hcmsg SG9vZCA8bWFya2hvb2RAQHNwZWFrZWFzeS5uZXQ+ICh0aW55IGNoYW5nZSkK QAp0ZXh0CkBkMTQ0MSAzCmExNDQzIDMKCQkobGV0ICgobm5oZWFkZXItZmls ZS1uYW1lLXRyYW5zbGF0aW9uLWFsaXN0CgkJICAgICAgICcoKD8vIC4gPywp ICg/ICAuID9fKSAoPyogLiA/XykgKD8kIC4gP18pKSkpCgkJICAobm5oZWFk ZXItdHJhbnNsYXRlLWZpbGUtY2hhcnMgKG1hdGNoLXN0cmluZyAxKSkpKQpA CgoKNi4yNQpsb2cKQFVwZGF0ZSBjb3B5cmlnaHQgZm9yIHNldmVyYWwgZmls ZXMuCkAKdGV4dApAZDEzNTUgMgphMTM1NiAyCgkgIChzZXRxIHN0YXRlICdt aWRkbGUpKSkKCmQxMzU4IDE0CmExMzcxIDE0CiAgICAgIChpZiByZXN1bHQt ZmlsZXMKCSAgKG1lc3NhZ2UgIiIpCgkoY29uZAoJICgobm90IGhhcy1iZWVu LWJlZ2luKQoJICAoZ251cy1tZXNzYWdlIDIgIldyb25nIHR5cGUgZmlsZSIp KQoJICgobWVtcSAnZXJyb3IgcHJvY2Vzcy1zdGF0ZSkKCSAgKGdudXMtbWVz c2FnZSAyICJBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgZGVjb2RpbmciKSkK CSAoKG5vdCAob3IgKG1lbXEgJ29rIHByb2Nlc3Mtc3RhdGUpCgkJICAgKG1l bXEgJ2VuZCBwcm9jZXNzLXN0YXRlKSkpCgkgIChnbnVzLW1lc3NhZ2UgMiAi RW5kIG9mIGFydGljbGVzIHJlYWNoZWQgYmVmb3JlIGVuZCBvZiBmaWxlIikp KQoJOzsgTWFrZSB1bnN1Y2Nlc3NmdWxseSBkZWNvZGVkIGFydGljbGVzIHVu cmVhZC4KCSh3aGVuIGdudXMtdXUtdW5tYXJrLWFydGljbGVzLW5vdC1kZWNv ZGVkCgkgICh3aGlsZSBhcnRpY2xlLXNlcmllcwoJICAgIChnbnVzLXN1bW1h cnktdGljay1hcnRpY2xlIChwb3AgYXJ0aWNsZS1zZXJpZXMpIHQpKSkpKQpA CgoKNi4yNApsb2cKQAkqIGdudXMtdXUuZWwgKGdudXMtdXUtZGVsZXRlLXdv cmstZGlyKTogQXZvaWQgaGFuZ2luZyB3aGVuIE8vUwogICAgICAgICAgICAg ICAgZm9yYmlkcyBkZWxldGlvbiBvZiB0ZW1wIGZpbGUgKFdpbi1YUCBtYXkg bGVhdmUgdGhlIHRlbXAgZmlsZSBsb2NrZWQKICAgICAgICAgICAgICAgIHdo ZW4gdGhlIHV1ZGVjb2RlIHByb2Nlc3MgZmFpbHMpLgpACnRleHQKQGQzIDEK YTMgMQo7OyAgICAgICAgMjAwMSwgMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KQAoKCjYuMjMKbG9nCkAJKiBnbnVzLXV1LmVsIChnbnVz LXV1LW1hcmstc2VyaWVzKTogQWRkZWQgaW5mb3JtYXRpdmUgbXNnLgoJUmVw b3J0cyBsZW5ndGggb2Ygc2VyaWVzIHNvIHRoYXQgdGhlIHVzZXIgY2FuIGNv bXBhcmUgTiB3aXRoIGEKCXN1YmplY3QgdGhhdCBzaG91bGQsIGlmIHRoZSBl bnRpcmUgc2VyaWVzIGlzIHByZXNlbnQsIGNvbnRhaW4KCScoLi4uL04pJy4K QAp0ZXh0CkBkMTQ2OSAxCmExNDY5IDIKCQkJIDs7Oyhmb3JtYXQgImNkICVz ICVzIHV1ZGVjb2RlIiBnbnVzLXV1LXdvcmstZGlyCgkJCSAoZm9ybWF0ICJj ZCAlcyAlcyBqYXZhIGNvbS5jb21wc29sLlV1IC1kIiBnbnVzLXV1LXdvcmst ZGlyCkAKCgo2LjIyCmxvZwpAKiBubnJzcy5lbCAobm5yc3MtZGVjb2RlLWVu dGl0aWVzLXVuaWJ5dGUtc3RyaW5nKTogVXNlIGBidWZmZXItc3RyaW5nJy4K KiBubmRvYy5lbCAobm5kb2MtZGlzc2VjdC1taW1lLXBhcnRzLXN1Yik6IGRv LgoqIG5uZGIuZWwgKG5uZGItcmVxdWVzdC1hY2NlcHQtYXJ0aWNsZSwgbm5k Yi1zdGF0dXMtbWVzc2FnZSk6IGRvLgoqIG1tLXVybC5lbCAobW0tdXJsLWRl Y29kZS1lbnRpdGllcy1zdHJpbmcpOiBkby4KKiBtbWwxOTkxLmVsIChtbWwx OTkxLW1haWxjcnlwdC1zaWduLCBtbWwxOTkxLWdwZy1zaWduKTogZG8uCiog bW0tZGVjb2RlLmVsIChtbS1maW5kLXJhdy1wYXJ0LWJ5LXR5cGUpOiBkby4K KiBtZXNzYWdlLmVsIChtZXNzYWdlLXNlbmQtbWFpbC1wYXJ0aWFsbHkpCiht ZXNzYWdlLXNlbmQtbWFpbC13aXRoLXNlbmRtYWlsKTogZG8uCiogZ251cy11 dS5lbCAoZ251cy11dS1zYXZlLWFydGljbGUsIGdudXMtdXUtcmVnaW5pemUt c3RyaW5nKTogZG8uCiogZ251cy1raWxsLmVsIChnbnVzLXBwLWdudXMta2ls bCk6IGRvLgoqIGdudXMtYXJ0LmVsIChnbnVzLWFydGljbGUtdHJlYXQtdW5m b2xkLWhlYWRlcnMpCihnbnVzLWFydGljbGUtZW5jcnlwdC1ib2R5KTogZG8u CkAKdGV4dApAZDU3NSAyCmE1NzYgMQogIChsZXQgKChhcnRpY2xlcyAoZ251 cy11dS1maW5kLWFydGljbGVzLW1hdGNoaW5nKSkpCmQ1ODAgMQphNTgwIDEK ICAgIChtZXNzYWdlICIiKSkKZDE0NjkgMgphMTQ3MCAxCgkJCSAoZm9ybWF0 ICJjZCAlcyAlcyB1dWRlY29kZSIgZ251cy11dS13b3JrLWRpcgpkMTc5OSA3 CmExODA1IDMKCSAgICAoZGVsZXRlLWZpbGUgZmlsZSkpKSkKICAgICAgKGRl bGV0ZS1kaXJlY3RvcnkgZGlyKSkpCiAgKGdudXMtbWVzc2FnZSA3ICIiKSkK QAoKCjYuMjEKbG9nCkAqIGdudXMtdXUuZWwgKGdudXMtdXUtZGlnZXN0LWhl YWRlcnMpOiBNZW50aW9uIG5pbCB2YWx1ZSBpbiBkb2NzdHJpbmcuCgoqIGdu dXMudGV4aSAoTWFpbCk6IEV4cGxhaW4gbmlsIHZhbHVlIG9mIGdudXMtdXUt ZGlnZXN0LWhlYWRlcnMuCkAKdGV4dApAZDg3MiAxCmE4NzIgMQoJCShzZXRx IHNvcnRoZWFkIChidWZmZXItc3Vic3RyaW5nIChwb2ludC1taW4pIChwb2lu dC1tYXgpKSkKZDEwOTIgMQphMTA5MiAxCiAgICAoYnVmZmVyLXN1YnN0cmlu ZyAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKQpACgoKNi4yMApsb2cKQCoq KiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMzAyIDIKYTMwMyAx ClRoZSBoZWFkZXJzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIHNlcXVlbmNl IHRoZXkgYXJlIG1hdGNoZWQuIgpACgoKNi4xOQpsb2cKQCoqKiBlbXB0eSBs b2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBhMCAxCgpACgoKNi4xOApsb2cKQCoq KiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMSAxCkAKCgo2LjE3 CmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGEwIDEK CkAKCgo2LjE2CmxvZwpAMjAwMi0wNC0xMSAgU3RlZmFuIE1vbm5pZXIgIDxt b25uaWVyQEBjcy55YWxlLmVkdT4KCgkqIGdudXMtc3VtLmVsIChnbnVzLXVw ZGF0ZS1zdW1tYXJ5LW1hcmstcG9zaXRpb25zKQoJKGdudXMtc3VtbWFyeS10 b2dnbGUtaGVhZGVyKToKCSogZ251cy11dS5lbCAoZ251cy11dS1iaW5oZXgt YXJ0aWNsZSwgZ251cy11dS1yZWdpbml6ZS1zdHJpbmcpCgkoZ251cy11dS1l eHBhbmQtbnVtYmVycywgZ251cy11dS1wb3N0LW1ha2UtbWltZSkKCShnbnVz LXV1LXBvc3QtZW5jb2RlZCk6CgkqIG5uZm9sZGVyLmVsIChubmZvbGRlci1w b3NzaWJseS1jaGFuZ2UtZ3JvdXApOgoJKiBubmltYXAuZWwgKG5uaW1hcC1y ZXRyaWV2ZS1oZWFkZXJzKToKCSogbm5tYm94LmVsIChubm1ib3gtY3JlYXRl LW1ib3gpOiBEb24ndCBhc3N1bWUgcG9pbnQtbWluID09IDEuCgoyMDAyLTA0 LTA4ICBTdGVmYW4gTW9ubmllciAgPG1vbm5pZXJAQGNzLnlhbGUuZWR1PgoK CSogbm5tbC5lbCAobm5tbC1zYXZlLW5vdiwgbm5tbC1nZW5lcmF0ZS1ub3Yt ZmlsZSk6CgkqIHBvcDMuZWwgKHBvcDMtbWQ1KTogRG9uJ3QgaGFyZGNvZGUg cG9pbnQtbWluID09IDEuCkAKdGV4dApAZDEgMQpACgoKNi4xNQpsb2cKQAkq IG1haWwtc291cmNlLmVsIChtYWtlLXNvdXJjZS1tYWtlLWNvbXBsZXgtdGVt cC1uYW1lKTogVXNlCgltYWtlLXRlbXAtZmlsZS4KCgkqIG1tLXV0aWwuZWwg KG1tLW1ha2UtdGVtcC1maWxlKTogTmV3IGZ1bmN0aW9uLgoJKiBubmVldGhp bmcuZWwgKG5uZWV0aGluZy1maWxlLW5hbWUpOiBVc2UgaXQuCgkqIG1tbC1z bWltZS5lbCAobW1sLXNtaW1lLWVuY3J5cHQpOiBEaXR0by4KCSogbW0tdmll dy5lbCAobW0taW5saW5lLXdhc2gtd2l0aC1maWxlKTogRGl0dG8uCgkqIG1t LWRlY29kZS5lbCAobW0tZGlzcGxheS1leHRlcm5hbCwgbW0tY3JlYXRlLWlt YWdlLXhlbWFjcyk6IERpdHRvLgoJKiBnbnVzLXV1LmVsIChnbnVzLXV1LWRl Y29kZS1iaW5oZXgsIGdudXMtdXUtZGVjb2RlLWJpbmhleC12aWV3KQoJKGdu dXMtdXUtZGlnZXN0LW1haWwtZm9yd2FyZCwgZ251cy11dS1pbml0aWFsaXpl KTogRGl0dG8uCgkqIGdudXMtc3RhcnQuZWwgKGdudXMtc2xhdmUtc2F2ZS1u ZXdzcmMpOiBEaXR0by4KCSogZ251cy1mdW4uZWwgKGdudXMtY29udmVydC1p bWFnZS10by1ncmF5LXgtZmFjZSk6IERpdHRvLgoJKiBnbnVzLWFydC5lbCAo Z251cy1taW1lLXByaW50LXBhcnQpOiBEaXR0by4KQAp0ZXh0CkBkOTc4IDIK YTk3OSAxCgkgICAgICAod3JpdGUtcmVnaW9uIDEgMSBnbnVzLXV1LWJpbmhl eC1hcnRpY2xlLW5hbWUpKQpkMTA5MSAxCmExMDkxIDEKICAgIChidWZmZXIt c3Vic3RyaW5nIDEgKHBvaW50LW1heCkpKSkKZDE5MjYgMQphMTkyNiAxCiAg ICAobmFycm93LXRvLXJlZ2lvbiAxIChwb2ludCkpCmQyMDE2IDEKYTIwMTYg MQogICAgICAoc2V0cSBsZW5ndGggKGNvdW50LWxpbmVzIDEgKHBvaW50LW1h eCkpKQpkMjAyOSAxCmEyMDI5IDEKICAgIChzZXRxIGhlYWRlciAoYnVmZmVy LXN1YnN0cmluZyAxIChwb2ludCkpKQpACgoKNi4xNApsb2cKQAkqIGdudXMt c3VtLmVsOiBNb3ZlIHV1IGtleSBtYXAgaGVyZS4KCShnbnVzLXN1bW1hcnkt bWFrZS1tZW51LWJhcik6IEFkZCBnbnVzLXN1bW1hcnktc2F2ZS1wYXJ0cy4K QAp0ZXh0CkBkNDEwIDEKYTQxMCAxCgkobWFrZS10ZW1wLW5hbWUgKGNvbmNh dCBnbnVzLXV1LXdvcmstZGlyICJiaW5oZXgiKSkpCmQ0NjMgMQphNDYzIDEK CShtYWtlLXRlbXAtbmFtZSAoY29uY2F0IGdudXMtdXUtd29yay1kaXIgImJp bmhleCIpKSkKZDQ3NCAxCmE0NzQgMQoJKGZpbGUgKG1ha2UtdGVtcC1uYW1l IChubmhlYWRlci1jb25jYXQgZ251cy11dS10bXAtZGlyICJmb3J3YXJkIikp KQpkMTc1NSAxCmExNzU1IDIKCSAgICAobWFrZS10ZW1wLW5hbWUgKGNvbmNh dCBnbnVzLXV1LXRtcC1kaXIgImdudXMiKSkpCiAgICAgIChnbnVzLW1ha2Ut ZGlyZWN0b3J5IGdudXMtdXUtd29yay1kaXIpCkAKCgo2LjEzCmxvZwpACjIw MDItMDEtMjkgIEthcmwgS2xlaW5wYXN0ZSAgPGthcmxAQGNoYXJjb2FsLmNv bT4KCgkqIG1tLXV1LmVsIChtbS11dS10eXBlLWFsaXN0KTogQWRkIG9wdGlv bmFsIGxlYWRpbmcgYDAnLgoKCSogZ251cy11dS5lbCAoZ251cy11dS1zaGFy LW5hbWUtbWFya2VyKTogQWRkIG9wdGlvbmFsIGxlYWRpbmcgYDAnCglhbmQg cGVybWl0IGA6JyBhbmQgYFwnIGluIG9yZGVyIHRvIGhhbmRsZSBmdWxsIFdp bmRvd3MgcGF0aG5hbWVzLgoJKGdudXMtdXUtYmVnaW4tc3RyaW5nKTogQWRk IG9wdGlvbmFsIGxlYWRpbmcgYDAnLiAgTGVhZGluZyBgMCcgaXMKCXRlY2hu aWNhbGx5IG5vdCBjb3JyZWN0IHBlciBzdGFuZGFyZCwgYnV0IHNlZW1zIHRv IGhhdmUgY29tbW9uIHVzZS4KQAp0ZXh0CkBhMzU1IDUwCjs7IEtleW1hcHMK CihnbnVzLWRlZmluZS1rZXlzIChnbnVzLXV1LW1hcmstbWFwICJQIiBnbnVz LXN1bW1hcnktbWFyay1tYXApCiAgInAiIGdudXMtc3VtbWFyeS1tYXJrLWFz LXByb2Nlc3NhYmxlCiAgInUiIGdudXMtc3VtbWFyeS11bm1hcmstYXMtcHJv Y2Vzc2FibGUKICAiVSIgZ251cy1zdW1tYXJ5LXVubWFyay1hbGwtcHJvY2Vz c2FibGUKICAidiIgZ251cy11dS1tYXJrLW92ZXIKICAicyIgZ251cy11dS1t YXJrLXNlcmllcwogICJyIiBnbnVzLXV1LW1hcmstcmVnaW9uCiAgImciIGdu dXMtdXUtdW5tYXJrLXJlZ2lvbgogICJSIiBnbnVzLXV1LW1hcmstYnktcmVn ZXhwCiAgIkciIGdudXMtdXUtdW5tYXJrLWJ5LXJlZ2V4cAogICJ0IiBnbnVz LXV1LW1hcmstdGhyZWFkCiAgIlQiIGdudXMtdXUtdW5tYXJrLXRocmVhZAog ICJhIiBnbnVzLXV1LW1hcmstYWxsCiAgImIiIGdudXMtdXUtbWFyay1idWZm ZXIKICAiUyIgZ251cy11dS1tYXJrLXNwYXJzZQogICJrIiBnbnVzLXN1bW1h cnkta2lsbC1wcm9jZXNzLW1hcmsKICAieSIgZ251cy1zdW1tYXJ5LXlhbmst cHJvY2Vzcy1tYXJrCiAgInciIGdudXMtc3VtbWFyeS1zYXZlLXByb2Nlc3Mt bWFyawogICJpIiBnbnVzLXV1LWludmVydC1wcm9jZXNzYWJsZSkKCihnbnVz LWRlZmluZS1rZXlzIChnbnVzLXV1LWV4dHJhY3QtbWFwICJYIiBnbnVzLXN1 bW1hcnktbW9kZS1tYXApCiAgOzsieCIgZ251cy11dS1leHRyYWN0LWFueQog ICJtIiBnbnVzLXN1bW1hcnktc2F2ZS1wYXJ0cwogICJ1IiBnbnVzLXV1LWRl Y29kZS11dQogICJVIiBnbnVzLXV1LWRlY29kZS11dS1hbmQtc2F2ZQogICJz IiBnbnVzLXV1LWRlY29kZS11bnNoYXIKICAiUyIgZ251cy11dS1kZWNvZGUt dW5zaGFyLWFuZC1zYXZlCiAgIm8iIGdudXMtdXUtZGVjb2RlLXNhdmUKICAi TyIgZ251cy11dS1kZWNvZGUtc2F2ZQogICJiIiBnbnVzLXV1LWRlY29kZS1i aW5oZXgKICAiQiIgZ251cy11dS1kZWNvZGUtYmluaGV4CiAgInAiIGdudXMt dXUtZGVjb2RlLXBvc3RzY3JpcHQKICAiUCIgZ251cy11dS1kZWNvZGUtcG9z dHNjcmlwdC1hbmQtc2F2ZSkKCihnbnVzLWRlZmluZS1rZXlzCiAgICAoZ251 cy11dS1leHRyYWN0LXZpZXctbWFwICJ2IiBnbnVzLXV1LWV4dHJhY3QtbWFw KQogICJ1IiBnbnVzLXV1LWRlY29kZS11dS12aWV3CiAgIlUiIGdudXMtdXUt ZGVjb2RlLXV1LWFuZC1zYXZlLXZpZXcKICAicyIgZ251cy11dS1kZWNvZGUt dW5zaGFyLXZpZXcKICAiUyIgZ251cy11dS1kZWNvZGUtdW5zaGFyLWFuZC1z YXZlLXZpZXcKICAibyIgZ251cy11dS1kZWNvZGUtc2F2ZS12aWV3CiAgIk8i IGdudXMtdXUtZGVjb2RlLXNhdmUtdmlldwogICJiIiBnbnVzLXV1LWRlY29k ZS1iaW5oZXgtdmlldwogICJCIiBnbnVzLXV1LWRlY29kZS1iaW5oZXgtdmll dwogICJwIiBnbnVzLXV1LWRlY29kZS1wb3N0c2NyaXB0LXZpZXcKICAiUCIg Z251cy11dS1kZWNvZGUtcG9zdHNjcmlwdC1hbmQtc2F2ZS12aWV3KQoKCkAK Cgo2LjEyCmxvZwpACSogZ251cy11dS5lbCAoZ251cy11dS1leHBhbmQtbnVt YmVycyk6IElnbm9yZSBlcnJvcnMgd2hlbgoJcmVwbGFjaW5nIG51bWJlcnMu CkAKdGV4dApAZDMyNCAxCmEzMjQgMQooZGVmdmFyIGdudXMtdXUtYmVnaW4t c3RyaW5nICJeYmVnaW5bIFx0XStbMC03XVswLTddWzAtN11bIFx0XStcXCgu KlxcKSQiKQpkMzM5IDEKYTMzOSAxCiAgImJlZ2luIFswLTddWzAtN11bMC03 XVsgXHRdK1xcKFxcKFxcd1xcfFxcLlxcKSpcXGJcXCkiKQpACgoKNi4xMQps b2cKQDIwMDEtMTItMTMgMjI6MDA6MDAgIFNoZW5nSHVvIFpIVSAgPHpzaEBA Y3Mucm9jaGVzdGVyLmVkdT4KCgkqIGdudXMtbXNnLmVsIChnbnVzLXN1bW1h cnktbWFpbC1mb3J3YXJkKTogRm9yd2FyZCBhbGwgbWFya2VkCgltZXNzYWdl cy4gKEEgc21hbGwgcGF0Y2ggd2l0aCBpbmRlbnRhdGlvbikKCUZyb20gU2Vh biBOZWFrdW1zIDxzbmVha3Vtc0BAem9yay5uZXQ+LgoKCSogZ251cy11dS5l bCAoZ251cy11dS1ncmFiLWFydGljbGVzKTogU2V0IGdudXMtY3VycmVudC1h cnRpY2xlIHRvCgluaWwgYWZ0ZXIgc2hvb3RpbmcgZG93biB0aGUgZ251cy1v cmlnaW5hbC1hcnRpY2xlLWJ1ZmZlci4KQAp0ZXh0CkBkMyAxCmEzIDEKOzsg ICAgICAgIDIwMDEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCmQx MjMyIDUKYTEyMzYgNAoJICAocmVwbGFjZS1tYXRjaAoJICAgKGZvcm1hdCAi JTA2ZCIKCQkgICAoc3RyaW5nLXRvLWludCAoYnVmZmVyLXN1YnN0cmluZwoJ CQkJICAgKG1hdGNoLWJlZ2lubmluZyAwKSAobWF0Y2gtZW5kIDApKSkpKSkK QAoKCjYuMTAKbG9nCkAyMDAxLTExLTI4IDE2OjAwOjAwICBTaGVuZ0h1byBa SFUgIDx6c2hAQGNzLnJvY2hlc3Rlci5lZHU+CgoJKiBnbnVzLXV1LmVsIChn bnVzLXV1LXNhdmUtYXJ0aWNsZSk6IFVzZSAjcGFydCBpbnN0ZWFkIG9mICNt bWwuCkAKdGV4dApAZDE0MjEgMQphMTQyMSAxCgpACgoKNi45CmxvZwpAQ2xl YW5pbmcgdXAgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzLgpACnRleHQK QGQ4ODkgMQphODg5IDEKCQkoaW5zZXJ0ICI8I21tbCB0eXBlPW1lc3NhZ2Uv cmZjODIyPlxuU3ViamVjdDogVG9waWNzXG5cbiIpKQpACgoKNi44CmxvZwpA MjAwMS0wNy0xMyAxMjowMDowMCAgU2hlbmdIdW8gWkhVICA8enNoQEBjcy5y b2NoZXN0ZXIuZWR1PgoKCSogZ251cy1zZXR1cC5lbCAoZ251cy11c2UtaW5z dGFsbGVkLWdudXMpOiBUeXBvLgoJKiBDbGVhbnVwIGZpbGVzLgoJRnJvbSBQ YXZlbEBASmFuaWsuY3ogKFBhdmVsIEphbhssQm0bKEJrKS4KQAp0ZXh0CkBk MTQ5MCAxCmExNDkwIDEKICAgICAgICAgIChyZXBsYWNlLW1hdGNoIChjb25j YXQgImJlZ2luIDY0NCAiIGdudXMtdXUtZmlsZS1uYW1lKSB0IHQpCkAKCgo2 LjcKbG9nCkAyMDAxLTA2LTExIDEwOjAwOjAwICBTaGVuZ0h1byBaSFUgIDx6 c2hAQGNzLnJvY2hlc3Rlci5lZHU+CgoJKiBnbnVzLXV1LmVsIChnbnVzLXV1 LXNhdmUtYXJ0aWNsZSk6IFVzZSBtbWwgdGFnIGluc3RlYWQgb2YKCXBhcnQu IEZyb20gS2F0c3VtaSBZYW1hb2thIDx5YW1hb2thQEBqcGwub3JnPi4KCgkq IG5ucnNzLmVsIChubnJzcy1ncm91cC1hbGlzdCk6IE1vcmUgaXRlbXMuCgoy MDAxLTA2LTA5IDIzOjAwOjAwICBTaGVuZ0h1byBaSFUgIDx6c2hAQGNzLnJv Y2hlc3Rlci5lZHU+CgoJKiBubnJzcy5lbCAobm5yc3Mtbm9kZS10ZXh0KTog VXNlIGNkZHIgaW5zdGVhZCB4bWwtbm9kZS1jaGlsZHJlbi4KQAp0ZXh0CkBk MjE1OSAxCmEyMTU5IDEKOzsgZ251cy11dS5lbCBlbmRzIGhlcmUKQAoKCjYu Ngpsb2cKQCogZ251cy11dS5lbCAoZ251cy11dS1kaWdlc3QtbWFpbC1mb3J3 YXJkKTogTWFyayBhcyBmb3J3YXJkZWQuCgoqIGdudXMtbXNnLmVsIChnbnVz LXB1dC1tZXNzYWdlKTogQ2xlYW4gdXAuCihnbnVzLXN1bW1hcnktcmVwbHkp OiBNYXJrIGFsbCByZXBsaWVkLXRvIGFydGljbGVzIGFzIHJlcGxpZWQgdG8u CihnbnVzLWluZXdzLWFkZC1zZW5kLWFjdGlvbnMpOiBBbHNvIG1hcmsgYXMg Zm9yd2FyZGVkLgooZ251cy1zdW1tYXJ5LW1haWwtZm9yd2FyZCk6IE1hcmsg YXMgZm9yd2FyZGVkLgoKKiBnbnVzLXN1bS5lbCAoZ251cy1zdW1tYXJ5LW1h cmstYXJ0aWNsZS1hcy1yZXBsaWVkKTogVGFrZSBhIGxpc3QKb2YgYXJ0aWNs ZXMuCihnbnVzLXN1bW1hcnktbWFyay1hcnRpY2xlLWFzLWZvcndhcmRlZCk6 IERpdHRvLgoKKiBnbnVzLW1zZy5lbCAoZ251cy1zdW1tYXJ5LXJlc2VuZC1t ZXNzYWdlKTogTWFyayBhcnRpY2xlIGFzCmZvcndhcmRlZC4KKGdudXMtc3Vt bWFyeS1tYWlsLWZvcndhcmQpOiBDbGVhbiB1cC4KCiogZ251cy5lbCAoZ251 cy1hcnRpY2xlLW1hcmstbGlzdHMpOiBBZGRlZCBmb3J3YXJkLgoKKiBnbnVz LXN1bS5lbCAoZ251cy1mb3J3YXJkZWQtbWFyayk6IE5ldyB2YXJpYWJsZS4K KGdudXMtc3VtbWFyeS1wcmVwYXJlLXRocmVhZHMpOiBVc2UgaXQuCihnbnVz LXN1bW1hcnktdXBkYXRlLXNlY29uZGFyeS1tYXJrKTogRGl0dG8uCihnbnVz LW5ld3Nncm91cC1mb3J3YXJkZWQpOiBOZXcgdmFyaWFibGUuCkAKdGV4dApA ZDg4OSAxCmE4ODkgMwoJCTs7IFRoZSBkZWZhdWx0IHBhcnQgaW4gbXVsdGlw YXJ0L2RpZ2VzdCBpcyBtZXNzYWdlL3JmYzgyMi4KCQk7OyBTdWJqZWN0IGlz IGEgZmFrZSBoZWFkLgoJCShpbnNlcnQgIjwjcGFydCB0eXBlPW1lc3NhZ2Uv cmZjODIyPlxuU3ViamVjdDogVG9waWNzXG5cbiIpKQpACgoKNi41CmxvZwpA MjAwMS0wMy0xNCAyMDowMDowMCAgU2hlbmdIdW8gWkhVICA8enNoQEBjcy5y b2NoZXN0ZXIuZWR1PgoJRnJvbSBDaHJpc3RvcGggQ29ucmFkIDxjaHJpc3Rv cGguY29ucmFkQEBnbXguZGU+CgoJKiBnbnVzLXNjb3JlLmVsIChnbnVzLXN1 bW1hcnktbG93ZXItdGhyZWFkKTogVHlwby4KCjIwMDEtMDMtMTQgMTk6MDA6 MDAgIFNoZW5nSHVvIFpIVSAgPHpzaEBAY3Mucm9jaGVzdGVyLmVkdT4KCgkq IG1lc3NhZ2UuZWwgKG1lc3NhZ2UtZm9yd2FyZC1kZWNvZGVkLXApOiBOZXcg dmFyaWFibGUuCgkobWVzc2FnZS1mb3J3YXJkLXN1YmplY3QtYXV0aG9yLXN1 YmplY3QpOiBVc2UgaXQuCgkobWVzc2FnZS1tYWtlLWZvcndhcmQtc3ViamVj dCk6IFVzZSBpdC4KCShtZXNzYWdlLWZvcndhcmQpOiBVc2UgaXQuCgoJKiBn bnVzLXV1LmVsIChnbnVzLXV1LWRpZ2VzdC1tYWlsLWZvcndhcmQpOiBVc2Ug aXQuCgoJKiBtbS11dGlsLmVsLCBtZXNzYWdlLmVsLCByZmMyMDQ3LmVsLCBn bnVzLXN1bS5lbCwgZ251cy1zY29yZS5lbDoKCVN5bmMgd2l0aCBFbWFjcyAy MSAodGFnIEVNQUNTX1BSRVRFU1RfMjFfMF8xMDApLgoKOztIYXMgYmVlbiBm aXhlZCAtLSB6c2guCjs7MjAwMS0wMy0wNSAgRGF2ZSBMb3ZlICA8ZnhAQGdu dS5vcmc+Cjs7Cjs7CSogbW0tdXRpbC5lbCAobW0tbWltZS1tdWxlLWNoYXJz ZXQtYWxpc3QpOiBGaXggdXRmLTggY2FzZS4KOzsJTW92ZSBpdCBhZnRlciBk ZWZpbml0aW9uIG9mIG1tLWNvZGluZy1zeXN0ZW0tcC4KOzsKMjAwMS0wMy0w MSAgRGF2ZSBMb3ZlICA8ZnhAQGdudS5vcmc+CgoJKiBtbS11dGlsLmVsICht bS1pbmhpYml0LWZpbGUtbmFtZS1oYW5kbGVycyk6IEFkZAoJaW1hZ2UtZmls ZS1oYW5kbGVyLgoKMjAwMS0wMi0xMSAgRGF2ZSBMb3ZlICA8ZnhAQGdudS5v cmc+CgoJKiBtZXNzYWdlLmVsIChtZXNzYWdlLXNpZ25hdHVyZS1maWxlKTog Rml4IGRvYywgOnR5cGUuCgoyMDAxLTAyLTA4ICBEYXZlIExvdmUgIDxmeEBA Z251Lm9yZz4KCgkqIHJmYzIwNDcuZWwgKHJmYzIwNDctZm9sZC1yZWdpb24p OiBEb24ndCBmb3J3YXJkLWNoYXIgYXQgRU9CLgoJKG1lc3NhZ2UtcG9zdGlu Zy1jaGFyc2V0KTogRGVmdmFyIHdoZW4gY29tcGlsaW5nIGFnYWluLgoJKHJm YzIwNDctZW5jb2RhYmxlLXApOiBSZXF1aXJlIG1lc3NhZ2UuCgoJKiBnbnVz LXN1bS5lbCAoZ251cy1hbHRlci1hcnRpY2xlcy10by1yZWFkLWZ1bmN0aW9u KToKCSogZ251cy1zY29yZS5lbCAoZ251cy1zY29yZS1hZnRlci13cml0ZS1m aWxlLWZ1bmN0aW9uKTogRml4IDp0eXBlLgpACnRleHQKQGQ1MzIgMzgKYTU2 OSAzNwogICAgKGdudXMtc2V0dXAtbWVzc2FnZSAnZm9yd2FyZAogICAgICAo c2V0cSBnbnVzLXV1LWRpZ2VzdC1mcm9tLXN1YmplY3QgbmlsKQogICAgICAo c2V0cSBnbnVzLXV1LWRpZ2VzdC1idWZmZXIKCSAgICAoZ251cy1nZXQtYnVm ZmVyLWNyZWF0ZSAiICpnbnVzLXV1LWZvcndhcmQqIikpCiAgICAgIChnbnVz LXV1LWRlY29kZS1zYXZlIG4gZmlsZSkKICAgICAgKHN3aXRjaC10by1idWZm ZXIgZ251cy11dS1kaWdlc3QtYnVmZmVyKQogICAgICAobGV0ICgoZnMgZ251 cy11dS1kaWdlc3QtZnJvbS1zdWJqZWN0KSkKCSh3aGVuIGZzCgkgIChzZXRx IGZyb20gKGNhYXIgZnMpCgkJc3ViamVjdCAoZ251cy1zaW1wbGlmeS1zdWJq ZWN0LWZ1enp5IChjZGFyIGZzKSkKCQlmcyAoY2RyIGZzKSkKCSAgKHdoaWxl IChhbmQgZnMgKG9yIGZyb20gc3ViamVjdCkpCgkgICAgKHdoZW4gZnJvbQoJ ICAgICAgKHVubGVzcyAoc3RyaW5nPSBmcm9tIChjYWFyIGZzKSkKCQkoc2V0 cSBmcm9tIG5pbCkpKQoJICAgICh3aGVuIHN1YmplY3QKCSAgICAgICh1bmxl c3MgKHN0cmluZz0gKGdudXMtc2ltcGxpZnktc3ViamVjdC1mdXp6eSAoY2Rh ciBmcykpCgkJCSAgICAgICBzdWJqZWN0KQoJCShzZXRxIHN1YmplY3Qgbmls KSkpCgkgICAgKHNldHEgZnMgKGNkciBmcykpKSkKCSh1bmxlc3Mgc3ViamVj dAoJICAoc2V0cSBzdWJqZWN0ICJEaWdlc3RlZCBBcnRpY2xlcyIpKQoJKHVu bGVzcyBmcm9tCgkgIChzZXRxIGZyb20KCQkoaWYgKGdudXMtbmV3cy1ncm91 cC1wIGdudXMtbmV3c2dyb3VwLW5hbWUpCgkJICAgIGdudXMtbmV3c2dyb3Vw LW5hbWUKCQkgICJWYXJpb3VzIikpKSkKICAgICAgKGdvdG8tY2hhciAocG9p bnQtbWluKSkKICAgICAgKHdoZW4gKHJlLXNlYXJjaC1mb3J3YXJkICJeU3Vi amVjdDogIikKCShkZWxldGUtcmVnaW9uIChwb2ludCkgKGdudXMtcG9pbnQt YXQtZW9sKSkKCShpbnNlcnQgc3ViamVjdCkpCiAgICAgIChnb3RvLWNoYXIg KHBvaW50LW1pbikpCiAgICAgICh3aGVuIChyZS1zZWFyY2gtZm9yd2FyZCAi XkZyb206IikKCShkZWxldGUtcmVnaW9uIChwb2ludCkgKGdudXMtcG9pbnQt YXQtZW9sKSkKCShpbnNlcnQgIiAiIGZyb20pKQogICAgICAobGV0ICgobWVz c2FnZS1mb3J3YXJkLWRlY29kZWQtcCB0KSkKCShtZXNzYWdlLWZvcndhcmQg cG9zdCB0KSkpCkAKCgo2LjQKbG9nCkAyMDAxLTAyLTA3IDExOjAwOjAwICBT aGVuZ0h1byBaSFUgIDx6c2hAQGNzLnJvY2hlc3Rlci5lZHU+CgoJKiBtZXNz YWdlLmVsIChtZXNzYWdlLW1ha2UtZm9yd2FyZC1zdWJqZWN0KTogQXJndW1l bnQgZGVjb2RlZC4KCShtZXNzYWdlLWZvcndhcmQpOiBVc2UgaXQgd2hlbiBk aWdlc3QuCgoJKiBnbnVzLXV1LmVsIChnbnVzLXV1LWdyYWItYXJ0aWNsZXMp OiBTaG9vdCBkb3duIG9yaWdpbmFsIGFydGljbGUKCWJ1ZmZlci4KQAp0ZXh0 CkBkNTY3IDIKYTU2OCAxCiAgICAgIChtZXNzYWdlLWZvcndhcmQgcG9zdCB0 KSkKQAoKCjYuMwpsb2cKQEZpeCBNSU1FIGRpZ2VzdCB0b3BpYwpACnRleHQK QGQyIDIKYTMgMgo7OyBDb3B5cmlnaHQgKEMpIDE5ODUsIDE5ODYsIDE5ODcs IDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDIwMDAKOzsg ICAgICAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpkNTM0IDEK YTUzNCAxCiAgICAgIChzZXRxIGdudXMtdXUtZGlnZXN0LWJ1ZmZlciAKZDkw NCAxCmE5MDQgMQoJICAgICh3aGVuIChhbmQgbWVzc2FnZS1mb3J3YXJkLWFz LW1pbWUgCmQ5NDcgMQphOTQ3IDEKCQkgIChzZXRxIHN1YmogKGJ1ZmZlci1z dWJzdHJpbmcgKG1hdGNoLWJlZ2lubmluZyAxKSAKZDk5MSAxCmE5OTEgMQoJ ICAgICAgKGxldCAoKGNvZGluZy1zeXN0ZW0tZm9yLXdyaXRlIG1tLXRleHQt Y29kaW5nLXN5c3RlbSkgCmQxNDE5IDMKZDE1OTkgMQphMTU5OSAxCgkJCShp bnNlcnQgKHN1YnN0aXR1dGUtY29tbWFuZC1rZXlzIApACgoKNi4yCmxvZwpA KiBnbnVzLXV1LmVsIChnbnVzLW1lc3NhZ2UtcHJvY2Vzcy1tYXJrKTogTmV3 IGZ1bmN0aW9uLgooZ251cy11dS1tYXJrLWJ5LXJlZ2V4cCk6IFVzZSBpdC4K KGdudXMtbmV3LXByb2Nlc3NhYmxlKTogTmV3IGZ1bmN0aW9uLgpACnRleHQK QGQ4ODkgMQphODg5IDEKCQkoaW5zZXJ0ICI8I3BhcnQgdHlwZT10ZXh0L3Bs YWluPlxuU3ViamVjdDogVG9waWNzXG5cbiIpKQpACgoKNi4xCmxvZwpAMjAw MC0xMS0wMiAxMzoyNzo1NiAgU2hlbmdIdW8gWkhVICA8enNoQEBjcy5yb2No ZXN0ZXIuZWR1PgoKCSogZ251cy11dS5lbCAoZ251cy11dS1wb3N0LW5ld3Mp OiBDb21tZW50IG91dCB0aGUgcmVkdW5kYW5jeS4KCSogZ251cy1hcnQuZWwg KGdudXMtYXJ0aWNsZS1lZGl0LWRvbmUpOgoJKiBnbnVzLXN1bS5lbCAoZ251 cy1zdW1tYXJ5LWVkaXQtYXJ0aWNsZS1kb25lKTogTW92ZSBsaW5lCgljb3Vu dGluZyBjb2RlIGhlcmUuCgkqIGdudXMtbXNnLmVsIChnbnVzLXNldHVwLW1l c3NhZ2UpOiBSZW1vdmUgYSBoYWNrLgpACnRleHQKQGQ1NzcgMjEKZDYwMyA4 CmE2MTAgNgogIChsZXQgKChhcnRpY2xlcyAoZ251cy11dS1maW5kLWFydGlj bGVzLW1hdGNoaW5nIHJlZ2V4cCkpKQogICAgKHdoaWxlIGFydGljbGVzCiAg ICAgIChpZiB1bm1hcmsKCSAgKGdudXMtc3VtbWFyeS1yZW1vdmUtcHJvY2Vz cy1tYXJrIChwb3AgYXJ0aWNsZXMpKQoJKGdudXMtc3VtbWFyeS1zZXQtcHJv Y2Vzcy1tYXJrIChwb3AgYXJ0aWNsZXMpKSkpCiAgICAobWVzc2FnZSAiIikp CkAKCgo2LjAKbG9nCkBOZXcgcmV2aXNpb24uCgoyMDAwLTEwLTI3IDE5OjQ1 OjU4ICBTaGVuZ0h1byBaSFUgIDx6c2hAQGNzLnJvY2hlc3Rlci5lZHU+CgoJ KiBtbWwyMDE1LmVsOiBOZXcgZmlsZS4KCSogc21pbWUuZWw6IE5ldyBmaWxl LgoJKiBtbWwtc21pbWUuZWw6IE5ldyBmaWxlLgoKMjAwMC0xMC0yNyAxOTo0 MjoxMiAgU2hlbmdIdW8gWkhVICA8enNoQEBjcy5yb2NoZXN0ZXIuZWR1PgoK CSogQ2hhbmdlTG9nOiBNb3ZlZCB0byBDaGFuZ2VMb2cuMS4KQAp0ZXh0CkBk MTg5OSAxCmExODk5IDEKICAobG9jYWwtc2V0LWtleSAiXEMtY1xDLWMiICdn bnVzLXN1bW1hcnktZWRpdC1hcnRpY2xlLWRvbmUpCkAKCgo1LjI5CmxvZwpA CSogZ251cy1zdW0uZWwgKGdudXMtZ2V0LW5ld3Nncm91cC1oZWFkZXJzKTog U2VhcmNoIGZvciAiZnJvbToiCglpbnN0ZWFkIG9mICJmcm9tOiAiIGZvciBy ZmM4MjIgY29tcGxpYW5jZS4KCgkqIGdudXMtdXUuZWwgKGdudXMtdXUtZGln ZXN0LW1haWwtZm9yd2FyZCk6IERpdHRvLiBJbnNlcnQgU1BDLgoKCSogbm5o ZWFkZXIuZWwgKG5uaGVhZGVyLXBhcnNlLWhlYWQpOiBEaXR0by4KQAp0ZXh0 CkBACgoKNS4yOS4yLjEKbG9nCkBTeW5jIHdpdGggdGhlIG1haW4gYnJhbmNo LgpACnRleHQKQGQxODk5IDEKYTE4OTkgMQogIDs7KGxvY2FsLXNldC1rZXkg IlxDLWNcQy1jIiAnZ251cy1zdW1tYXJ5LWVkaXQtYXJ0aWNsZS1kb25lKQpA CgoKNS4yOS4yLjIKbG9nCkAyMDAxLTAyLTA4IDE4OjAwOjAwICBTaGVuZ0h1 byBaSFUgIDx6c2hAQGNzLnJvY2hlc3Rlci5lZHU+CgoJKiBnbnVzLXhtYXMu ZWwgKGdudXMteG1hcy1hcnRpY2xlLWRpc3BsYXkteGZhY2UpOiBVc2UgYmlu YXJ5Cgljb2Rpbmcgc3lzdGVtLgoKMjAwMS0wMi0wNyAxMTowMDowMCAgU2hl bmdIdW8gWkhVICA8enNoQEBjcy5yb2NoZXN0ZXIuZWR1PgoKCSogZ251cy11 dS5lbCAoZ251cy11dS1ncmFiLWFydGljbGVzKTogU2hvb3QgZG93biBvcmln aW5hbCBhcnRpY2xlCglidWZmZXIuCkAKdGV4dApAZDIgMgphMyAyCjs7IENv cHlyaWdodCAoQykgMTk4NSwgMTk4NiwgMTk4NywgMTk5MywgMTk5NCwgMTk5 NSwgMTk5NiwgMTk5NywgMTk5OCwgMjAwMCwKOzsgICAgICAgIDIwMDEgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCmQ1MzQgMQphNTM0IDEKICAg ICAgKHNldHEgZ251cy11dS1kaWdlc3QtYnVmZmVyCmQ4ODEgMQphODgxIDEK CSAgICAod2hlbiAoYW5kIG1lc3NhZ2UtZm9yd2FyZC1hcy1taW1lCmQ5MjQg MQphOTI0IDEKCQkgIChzZXRxIHN1YmogKGJ1ZmZlci1zdWJzdHJpbmcgKG1h dGNoLWJlZ2lubmluZyAxKQpkOTY4IDEKYTk2OCAxCgkgICAgICAobGV0ICgo Y29kaW5nLXN5c3RlbS1mb3Itd3JpdGUgbW0tdGV4dC1jb2Rpbmctc3lzdGVt KQphMTM5NSAzCiAgICA7OyBUaGUgb3JpZ2luYWwgYXJ0aWNsZSBidWZmZXIg aXMgaG9zZWQsIHNob290IGl0IGRvd24uCiAgICAoZ251cy1raWxsLWJ1ZmZl ciBnbnVzLW9yaWdpbmFsLWFydGljbGUtYnVmZmVyKQoKZDE1NzMgMQphMTU3 MyAxCgkJCShpbnNlcnQgKHN1YnN0aXR1dGUtY29tbWFuZC1rZXlzCkAKCgo1 LjI5LjIuMwpsb2cKQEFkZCBhcmNoIHRhZ2xpbmVzCkAKdGV4dApAZDIxMzYg MQphMjEzNiAyCjs7OyBhcmNoLXRhZzogMDUzMTIzODQtMGE4My00NzIwLTlh NTgtYjMxNjBiODg4ODUzCjs7OyBnbnVzLXV1LmVsIGVuZHMgaGVyZQpACgoK NS4yOApsb2cKQEJpbmRpbmcgY29kaW5nIHN5c3RlbS4KQAp0ZXh0CkBkNTY0 IDEKYTU2NCAxCiAgICAgICh3aGVuIChyZS1zZWFyY2gtZm9yd2FyZCAiXkZy b206ICIpCmQ1NjYgMQphNTY2IDEKCShpbnNlcnQgZnJvbSkpCkAKCgo1LjI4 LjIuMQpsb2cKQHN5bmMKQAp0ZXh0CkBkNTY0IDEKYTU2NCAxCiAgICAgICh3 aGVuIChyZS1zZWFyY2gtZm9yd2FyZCAiXkZyb206IikKZDU2NiAxCmE1NjYg MQoJKGluc2VydCAiICIgZnJvbSkpCkAKCgo1LjI3CmxvZwpAKiBnbnVzLXV1 LmVsIChnbnVzLXV1LWRpZ2VzdC1tYWlsLWZvcndhcmQpOiBCaW5kCm1haWwt cGFyc2V0LWNoYXJzZXQgYW5kIHVzZSBub24tbnVtZXJpYyBhcmd1bWVudC4K QAp0ZXh0CkBkODI2IDMKYTgyOCAyCiAgICAgIChnbnVzLXdyaXRlLWJ1ZmZl cgogICAgICAgKGNvbmNhdCBnbnVzLXV1LXNhdmVkLWFydGljbGUtbmFtZSBn bnVzLWN1cnJlbnQtYXJ0aWNsZSkpCmQ5NTUgMgphOTU2IDEKCSAgICAgIChn bnVzLXdyaXRlLWJ1ZmZlciBnbnVzLXV1LXNhdmVkLWFydGljbGUtbmFtZSkp KQpkOTY4IDQKYTk3MSAyCgkgICAgICAod3JpdGUtcmVnaW9uCgkgICAgICAg KHBvaW50LW1pbikgKHBvaW50LW1heCkgZ251cy11dS1zYXZlZC1hcnRpY2xl LW5hbWUgdCkpKSkKQAoKCjUuMjYKbG9nCkBNTUwgYnVmZmVyIGxlYWtzLgpG b3J3YXJkIHN1cHBvcnRzIHNob3ctbW1sLgpACnRleHQKQGQ1MjUgMwpkNTI5 IDMKQAoKCjUuMjUKbG9nCkBTdXBwb3J0IG11bHRpcGFydC9kaWdlc3QuCkAK dGV4dApAZDI5OCAzCmEzMDAgMQogICAgIl5TdW1tYXJ5OiIgIl5SZWZlcmVu Y2VzOiIgIl5Db250ZW50LVR5cGU6IiAiXkNvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IikKZDg1OCAxCmE4NTggMQoJCTs7IFRoaXMgaXMgYSBmYWtlIGhl YWQuCmQ4NzQgMwphODc2IDIKCSAgICAod2hlbiAoYW5kIG1lc3NhZ2UtZm9y d2FyZC1hcy1taW1lIGdudXMtdXUtZGlnZXN0LWJ1ZmZlcikKCSAgICAgIDs7 IEZJWCBNRTo6IHdoZW4gbWVzc2FnZS1mb3J3YXJkLXNob3ctbW1sIGlzIG5p bC4KYTkwNCA0Cgkod2hlbiAoYW5kIG1lc3NhZ2UtZm9yd2FyZC1hcy1taW1l IGdudXMtdXUtZGlnZXN0LWJ1ZmZlcikKCSAgKGluc2VydCAiXG48I21tbCB0 eXBlPW1lc3NhZ2UvcmZjODIyPlxuIikpCgkoaW5zZXJ0IHNvcnRoZWFkKSAo Z290by1jaGFyIChwb2ludC1tYXgpKQoJKGluc2VydCBib2R5KSAoZ290by1j aGFyIChwb2ludC1tYXgpKQpkOTA2IDE5CmE5MjQgMQoJICAgIChpbnNlcnQg IlxuPCMvbW1sPlxuIikKZDkyOCAyCmE5MjkgMQoJICAoc2V0cSBzdWJqIChi dWZmZXItc3Vic3RyaW5nIChtYXRjaC1iZWdpbm5pbmcgMSkgKG1hdGNoLWVu ZCAxKSkpCkAKCgo1LjI0CmxvZwpAMjAwMC0wNS0wNiAgRmxvcmlhbiBXZWlt ZXIgIDxmd0BAZGVuZWIuY3lnbnVzLmFyZ2gub3JnPgoKCSogZ251cy11dS5l bCAoZ251cy11dS11bnNoYXItd2FybmluZyk6IE5ldyB2YXJpYWJsZS4KCShn bnVzLXV1LXVuc2hhci1hcnRpY2xlKTogVXNlIGl0LgoKCSogbWFpbGNhcC5l bCAobWFpbGNhcC1tYXliZS1ldmFsLXdhcm5pbmcpOiBOZXcgdmFyaWFibGUu CgkobWFpbGNhcC1tYXliZS1ldmFsKTogVXNlIGl0LgoKCSogZ251cy1tc2cu ZWwgKGdudXMtZ3JvdXAtcG9zdGluZy1jaGFyc2V0LWFsaXN0KTogU3BlbGlu ZyBtaXN0YWtlCglpbiBkb2NzdHJpbmcuCgoJKiBtbWwuZWwgKG1tbC1nZW5l cmF0ZS1taW1lLTEpOiBTbWFsbCBjb21tZW50LgpACnRleHQKQGQzNTIgMQpk NTIzIDEKYTUyMyAxCglidWYgc3ViamVjdCBmcm9tKQpkNTI2IDIKZDUyOSAx CmE1MjkgNQogICAgICAoc2V0cSBidWYgKHN3aXRjaC10by1idWZmZXIKCQkg KGdudXMtZ2V0LWJ1ZmZlci1jcmVhdGUgIiAqZ251cy11dS1mb3J3YXJkKiIp KSkKICAgICAgKGVyYXNlLWJ1ZmZlcikKICAgICAgKGluc2VydC1maWxlIGZp bGUpCiAgICAgIChkZWxldGUtZmlsZSBmaWxlKQpkNTU5IDEKYTU1OSAxCiAg ICAgIChtZXNzYWdlLWZvcndhcmQgcG9zdCkpCmQ4NTIgNwphODU4IDIKCQkg ICAgICAgIkRhdGU6ICVzXG5Gcm9tOiAlc1xuU3ViamVjdDogJXMgRGlnZXN0 XG5cblRvcGljczpcbiIKCQkgICAgICAgKGN1cnJlbnQtdGltZS1zdHJpbmcp IG5hbWUgbmFtZSkpKSkKZDg3MiA0CmQ4NzggNwphODg0IDYKCSAgICA7OyBR dW90ZSBhbGwgMzAtZGFzaCBsaW5lcy4KCSAgICAoc2F2ZS1leGN1cnNpb24K CSAgICAgICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQgIl4tIiBuaWwgdCkK CQkoYmVnaW5uaW5nLW9mLWxpbmUpCgkJKGRlbGV0ZS1jaGFyIDEpCgkJKGlu c2VydCAiLSAiKSkpCmQ5MDIgMgpkOTA2IDMKYTkwOCAxCgkoaW5zZXJ0IChj b25jYXQgIlxuIiAobWFrZS1zdHJpbmcgMzAgPy0pICJcblxuIikpCmQ5MTcg MjcKYTk0MyAxMwoJKHNhdmUtZXhjdXJzaW9uCgkgIChzZXQtYnVmZmVyICIq Z251cy11dS1wcmUqIikKCSAgKGluc2VydCAoZm9ybWF0ICJcblxuJXNcblxu IiAobWFrZS1zdHJpbmcgNzAgPy0pKSkKCSAgKGdudXMtd3JpdGUtYnVmZmVy IGdudXMtdXUtc2F2ZWQtYXJ0aWNsZS1uYW1lKSkKCShzYXZlLWV4Y3Vyc2lv bgoJICAoc2V0LWJ1ZmZlciAiKmdudXMtdXUtYm9keSoiKQoJICAoZ290by1j aGFyIChwb2ludC1tYXgpKQoJICAoaW5zZXJ0CgkgICAoY29uY2F0IChzZXRx IGVuZC1zdHJpbmcgKGZvcm1hdCAiRW5kIG9mICVzIERpZ2VzdCIgbmFtZSkp CgkJICAgIlxuIikpCgkgIChpbnNlcnQgKGNvbmNhdCAobWFrZS1zdHJpbmcg KGxlbmd0aCBlbmQtc3RyaW5nKSA/KikgIlxuIikpCgkgICh3cml0ZS1yZWdp b24KCSAgIChwb2ludC1taW4pIChwb2ludC1tYXgpIGdudXMtdXUtc2F2ZWQt YXJ0aWNsZS1uYW1lIHQpKQpACgoKNS4yMwpsb2cKQCogZ251cy5lbDogRml4 IGNvcHlyaWdodCBzdGF0ZW1lbnRzLgoKKiBnbnVzLXN1bS5lbCAoZ251cy1h bHRlci1hcnRpY2xlcy10by1yZWFkLWZ1bmN0aW9uKTogTmV3CnZhcmlhYmxl LgooZ251cy1hcnRpY2xlcy10by1yZWFkKTogVXNlIGl0LgoKKiBtZXNzYWdl LmVsIChtZXNzYWdlLWdldC1yZXBseS1oZWFkZXJzKTogQmluZCBmcmVlIHZh cmlhYmxlLgpACnRleHQKQGQxNDg0IDE1CmQxNTA5IDI1CmExNTMzIDgKCShi ZWdpbm5pbmctb2YtbGluZSkKCShzZXRxIHN0YXJ0LWNoYXIgKHBvaW50KSkK CShjYWxsLXByb2Nlc3MtcmVnaW9uCgkgc3RhcnQtY2hhciAocG9pbnQtbWF4 KSBzaGVsbC1maWxlLW5hbWUgbmlsCgkgKGdudXMtZ2V0LWJ1ZmZlci1jcmVh dGUgZ251cy11dS1vdXRwdXQtYnVmZmVyLW5hbWUpIG5pbAoJIHNoZWxsLWNv bW1hbmQtc3dpdGNoCgkgKGNvbmNhdCAiY2QgIiBnbnVzLXV1LXdvcmstZGly ICIgIgoJCSBnbnVzLXNoZWxsLWNvbW1hbmQtc2VwYXJhdG9yICAiIHNoIikp KSkKQAoKCjUuMjIKbG9nCkAqIGdudXMuZWw6IFVwZGF0ZSBhbGwgdGhlIGNv cHlyaWdodCBub3RpY2VzLgpACnRleHQKQGQyIDIKYTMgMQo7OyBDb3B5cmln aHQgKEMpIDE5ODUtMTk4NywxOTkzLTE5OTgsMjAwMCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KQAoKCjUuMjEKbG9nCkAqIGdudXMtc3J2ci5l bCAoZ251cy1zZXJ2ZXIta2lsbC1zZXJ2ZXIpOiBPZmZlciB0byBraWxsIGFs bCB0aGUKZ3JvdXBzIGZyb20gdGhlIHNlcnZlci4KCiogZ251cy1zdW0uZWwg KGdudXMtc3VtbWFyeS1zYXZlLXBhcnRzKTogRml4IGludGVyYWN0aXZlIHNw ZWMuCihnbnVzLXN1bW1hcnktdG9nZ2xlLWhlYWRlcik6IFVwZGF0ZSB0aGUg d2FzaCBzdGF0dXMuCgoqIGdudXMtdXUuZWwgKChnbnVzLXV1LWV4dHJhY3Qt bWFwICJYIiBnbnVzLXN1bW1hcnktbW9kZS1tYXApKToKTW92ZWQgaGVyZS4K CiogZ251cy1hZ2VudC5lbCAoZ251cy1hZ2VudC1zYXZlLWdyb3VwLWluZm8p OiBSZXNwZWN0IG9sZApzZXR0aW5nLgoKKiBubm1haWwuZWwgKG5ubWFpbC1n ZXQtYWN0aXZlKTogVXNlIGl0Lgoobm5tYWlsLXBhcnNlLWFjdGl2ZSk6IE5l dyBmdW5jdGlvbi4KCiogbW0tdmlldy5lbCAobW0taW5saW5lLXRleHQpOiBT dXBwb3J0IHRoZSBuZXcgdmVyc2lvbiBvZgp2Y2FyZC5lbC4KCiogZ251cy1z dW0uZWwgKGdudXMtc3VtbWFyeS1tb3ZlLWFydGljbGUpOiBPbmx5IGRlbGV0 ZSBhcnRpY2xlCndoZW4gbW92aW5nIGp1bmsuCihnbnVzLWRlYWRlbi1zdW1t YXJ5KTogQnVyeSB0aGUgYnVmZmVyLgoKKiBubm1haWwuZWwgKG5ubWFpbC1n cm91cC1wYXRobmFtZSk6IERpdHRvLgpACnRleHQKQGQyIDEKYTIgMQo7OyBD b3B5cmlnaHQgKEMpIDE5OCw5OTUsODYsODcsOTMsOTQsOTUsOTYsOTcsOTgg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkAKCgo1LjIwCmxvZwpA KiBnbnVzLXN1bS5lbCAoZ251cy1wcmVzZXJ2ZS1tYXJrcyk6IE5ldyB2YXJp YWJsZS4KKGdudXMtc3VtbWFyeS1tb3ZlLWFydGljbGUpOiBVc2UgaXQuCihn bnVzLWdyb3VwLWNoYXJzZXQtYWxpc3QpOiBBZGRlZCBtb3JlIGVudHJpZXMu CkAKdGV4dApAZDM3MiAxCmEzNzIgMgogICJpIiBnbnVzLXV1LWludmVydC1w cm9jZXNzYWJsZQogICJtIiBnbnVzLXN1bW1hcnktc2F2ZS1wYXJ0cykKZDM3 NiAxCmEzNzYgMQogIDs7Im0iIGdudXMtdXUtZXh0cmFjdC1taW1lCkAKCgo1 LjE5CmxvZwpACSogZ251cy1tc2cuZWwgKGdudXMtc2V0dXAtbWVzc2FnZSk6 IEFsbG93IHRoZSBjaGFyc2V0IHNldHRpbmcgdG8KCWRvIHRoZWlyIHJlYWwg dGhpbmcuCgoJKiBubm1oLmVsIChubm1oLWJlLXNhZmUpOiBEb2MgZml4LgoK CSogZ251cy1zdW0uZWwgKGdudXMtc3VtbWFyeS1leGl0KTogV3JpdGUgY2Fj aGUgYWN0aXZlIGZpbGUuCkAKdGV4dApAZDY2MyAxCmE2NjMgMQogIChsZXQg KChzY29yZSAoZ251cy1zY29yZS1kZWZhdWx0IHNjb3JlKSkKQAoKCjUuMTgK bG9nCkAqIGdudXMuZWw6IEZpeGVkIGFsbCB0aGUgZG9jIHN0cmluZ3MgdG8g bWF0Y2ggdGhlIEZTRiBjb252ZXRpb25zLgpJbmRlbnQgYWxsIGZ1bmN0aW9u cy4gIEZpeCBhbGwgY29tbWVudHMgdG8gbWF0Y2ggdGhlIGNvbW1lbnQKY29u dmVudGlvbnMuICBEb3VibGUtc3BhY2UgYWZ0ZXIgZnVsbCBzdG9wLgpACnRl eHQKQGQ1NzEgNAphNTc0IDIKICAiQXNrIGZvciBhIHJlZ3VsYXIgZXhwcmVz c2lvbiBhbmQgc2V0IHRoZSBwcm9jZXNzIG1hcmsgb24gYWxsIGFydGljbGVz IHRoYXQgbWF0Y2guIgogIChpbnRlcmFjdGl2ZSAobGlzdCAocmVhZC1mcm9t LW1pbmlidWZmZXIgIk1hcmsgKHJlZ2V4cCk6ICIpKSkKZDU4MyA0CmE1ODYg MwooZGVmdW4gZ251cy11dS11bm1hcmstYnktcmVnZXhwIChyZWdleHAgJm9w dGlvbmFsIHVubWFyaykKICAiQXNrIGZvciBhIHJlZ3VsYXIgZXhwcmVzc2lv biBhbmQgcmVtb3ZlIHRoZSBwcm9jZXNzIG1hcmsgb24gYWxsIGFydGljbGVz IHRoYXQgbWF0Y2guIgogIChpbnRlcmFjdGl2ZSAobGlzdCAocmVhZC1mcm9t LW1pbmlidWZmZXIgIk1hcmsgKHJlZ2V4cCk6ICIpKSkKQAoKCjUuMTcKbG9n CkAqIG5uc2xhc2hkb3QuZWwgKG5uc2xhc2hkb3QtcmVhZC1ncm91cHMpOiBV bmlieXRlLgoKKiBubnVsdGltYXRlLmVsIChubnVsdGltYXRlLXJlcXVlc3Qt bGlzdCk6IFVzZSB1bmlieXRlLgoKKiBnbnVzLXV1LmVsIChnbnVzLXV1LWdy YWItYXJ0aWNsZXMpOiBCaW5kCmdudXMtZGlzcGxheS1taW1lLWZ1bmN0aW9u IHRvIG5pbC4KQAp0ZXh0CkBkMzkwIDExCmE0MDAgMTEKIChnbnVzLXV1LWV4 dHJhY3Qtdmlldy1tYXAgInYiIGdudXMtdXUtZXh0cmFjdC1tYXApCiAidSIg Z251cy11dS1kZWNvZGUtdXUtdmlldwogIlUiIGdudXMtdXUtZGVjb2RlLXV1 LWFuZC1zYXZlLXZpZXcKICJzIiBnbnVzLXV1LWRlY29kZS11bnNoYXItdmll dwogIlMiIGdudXMtdXUtZGVjb2RlLXVuc2hhci1hbmQtc2F2ZS12aWV3CiAi byIgZ251cy11dS1kZWNvZGUtc2F2ZS12aWV3CiAiTyIgZ251cy11dS1kZWNv ZGUtc2F2ZS12aWV3CiAiYiIgZ251cy11dS1kZWNvZGUtYmluaGV4LXZpZXcK ICJCIiBnbnVzLXV1LWRlY29kZS1iaW5oZXgtdmlldwogInAiIGdudXMtdXUt ZGVjb2RlLXBvc3RzY3JpcHQtdmlldwogIlAiIGdudXMtdXUtZGVjb2RlLXBv c3RzY3JpcHQtYW5kLXNhdmUtdmlldykKQAoKCjUuMTYKbG9nCkAqKiogZW1w dHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4dApAZDEyMTMgMQphMTIxMyAxCgln bnVzLWFydGljbGUtcHJlcGFyZS1ob29rCkAKCgo1LjE1CmxvZwpAKioqIGVt cHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQ2MjggMwphNjMwIDIKICAg ICAgKHdoaWxlIChhbmQgKGdudXMtc3VtbWFyeS1zZXQtcHJvY2Vzcy1tYXJr IChnbnVzLXN1bW1hcnktYXJ0aWNsZS1udW1iZXIpKQoJCSAgKHplcm9wIChn bnVzLXN1bW1hcnktbmV4dC1zdWJqZWN0IDEpKQpACgoKNS4xNApsb2cKQCoq KiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkNTMwIDEKZDk1OSAx CmE5NTkgMQoJICAoYXBwZW5kLXRvLWZpbGUgc3RhcnQtY2hhciAocG9pbnQp IGdudXMtdXUtYmluaGV4LWFydGljbGUtbmFtZSkpKSkKQAoKCjUuMTMKbG9n CkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4dApAZDYxIDEKYTYx IDEKICAgICgiXFwuXFwoanBlP2dcXHxnaWZcXHx0aWZmP1xcfHBbcGdiXW1c XHx4d2RcXHx4Ym1cXHxwY3hcXCkkIiAiZWUiKQpACgoKNS4xMgpsb2cKQCoq KiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkNjEgMgphNjIgMgog ICAgKCJcXC5cXChqcGU/Z1xcfGdpZlxcfHRpZmY/XFx8cFtwZ2JdbVxcfHh3 ZFxcfHhibVxcfHBjeFxcKSQiICJ4diIpCiAgICAoIlxcLnRnYSQiICJ0Z2F0 b3BwbSAlcyB8IHh2IC0iKQpkMzcyIDIKYTM3MyAxCiAgImkiIGdudXMtdXUt aW52ZXJ0LXByb2Nlc3NhYmxlKQpkMTQwMiAxCmExNDAyIDEKCQkgICAgICAg JygoPy8gLiA/LCkgKD8gLiA/XykgKD8qIC4gP18pICg/JCAuID9fKSkpKQpA CgoKNS4xMQpsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0 CkBkNjI0IDUKYTYyOCA0CiAgKGxldCAoKGxldmVsIChnbnVzLXN1bW1hcnkt dGhyZWFkLWxldmVsKSkpCiAgICAod2hpbGUgKGFuZCAoZ251cy1zdW1tYXJ5 LXNldC1wcm9jZXNzLW1hcmsgKGdudXMtc3VtbWFyeS1hcnRpY2xlLW51bWJl cikpCgkJKHplcm9wIChnbnVzLXN1bW1hcnktbmV4dC1zdWJqZWN0IDEpKQoJ CSg+IChnbnVzLXN1bW1hcnktdGhyZWFkLWxldmVsKSBsZXZlbCkpKSkKQAoK CjUuMTAKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4dApA YTU1OCAyCiAgICAoZGVsZXRlLWZpbGUgZmlsZSkKICAgIChraWxsLWJ1ZmZl ciBidWYpCkAKCgo1LjkKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioq CkAKdGV4dApAZDMzNSAyCmEzMzYgMQooZGVmdmFyIGdudXMtdXUtc2hhci1u YW1lLW1hcmtlciAiYmVnaW4gWzAtN11bMC03XVswLTddWyBcdF0rXFwoXFwo XFx3XFx8XFwuXFwpKlxcYlxcKSIpCkAKCgo1LjgKbG9nCkAqKiogZW1wdHkg bG9nIG1lc3NhZ2UgKioqCkAKdGV4dApAZDEyMDcgMQpkMTIxMCAxCmExMjEw IDEKCWdudXMtYXJ0aWNsZS1kaXNwbGF5LWhvb2sgZ251cy1hcnRpY2xlLXBy ZXBhcmUtaG9vawpACgoKNS43CmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdl ICoqKgpACnRleHQKQGQyIDEKYTIgMQo7OyBDb3B5cmlnaHQgKEMpIDE5ODUs ODYsODcsOTMsOTQsOTUsOTYsOTcsOTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCkAKCgo1LjYKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2Ug KioqCkAKdGV4dApAZDIxOSA0CmEyMjIgMQooZGVmY3VzdG9tIGdudXMtdXUt dG1wLWRpciAiL3RtcC8iCkAKCgo1LjUKbG9nCkAqKiogZW1wdHkgbG9nIG1l c3NhZ2UgKioqCkAKdGV4dApAZDE3OTkgMwphMTgwMSAxCiAgKHVzZS1sb2Nh bC1tYXAgKGNvcHkta2V5bWFwIChjdXJyZW50LWxvY2FsLW1hcCkpKQpACgoK NS40CmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQ4 MzcgMwphODM5IDIKCSAgICAoc2F2ZS1leGN1cnNpb24gKHNldC1idWZmZXIg KGdudXMtZ2V0LWJ1ZmZlci1jcmVhdGUgIipnbnVzLXV1LWJvZHkqIikpCgkJ CSAgICAoZXJhc2UtYnVmZmVyKSkKQAoKCjUuMwpsb2cKQCoqKiBlbXB0eSBs b2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMTAyOCAxCmExMDI4IDEKICAgIChi dWZmZXItZGlzYWJsZS11bmRvIChjdXJyZW50LWJ1ZmZlcikpCmQxMTI4IDEK YTExMjggMQogICAgICAoYnVmZmVyLWRpc2FibGUtdW5kbyAoY3VycmVudC1i dWZmZXIpKQpACgoKNS4yCmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoq KgpACnRleHQKQGQzNSAxCmExNjk3IDEyCihkZWZ1biBnbnVzLXF1b3RlLWFy Zy1mb3Itc2gtb3ItY3NoIChhcmcpCiAgKGxldCAoKHBvcyAwKSBuZXctcG9z IGFjY3VtKQogICAgOzsgKioqIGJ1Zzogd2UgZG9uJ3QgaGFuZGxlIG5ld2xp bmUgY2hhcmFjdGVycyBwcm9wZXJseQogICAgKHdoaWxlIChzZXRxIG5ldy1w b3MgKHN0cmluZy1tYXRjaCAiWyFgXCIkXFwmIFx0e31dIiBhcmcgcG9zKSkK ICAgICAgKHB1c2ggKHN1YnN0cmluZyBhcmcgcG9zIG5ldy1wb3MpIGFjY3Vt KQogICAgICAocHVzaCAiXFwiIGFjY3VtKQogICAgICAocHVzaCAobGlzdCAo YXJlZiBhcmcgbmV3LXBvcykpIGFjY3VtKQogICAgICAoc2V0cSBwb3MgKDEr IG5ldy1wb3MpKSkKICAgIChpZiAoPSBwb3MgMCkKICAgICAgICBhcmcKICAg ICAgKGFwcGx5ICdjb25jYXQgKG5jb25jIChucmV2ZXJzZSBhY2N1bSkgKGxp c3QgKHN1YnN0cmluZyBhcmcgcG9zKSkpKSkpKQoKZDE3MDIgMQphMTcwMiAx CiAgKGxldCAoKHF1b3RlZC1maWxlIChnbnVzLXF1b3RlLWFyZy1mb3Itc2gt b3ItY3NoIGZpbGUpKSkKQAoKCjUuMQpsb2cKQCoqKiBlbXB0eSBsb2cgbWVz c2FnZSAqKioKQAp0ZXh0CkBkMTI5MCAzNTkKYTE2NDggMTUKCSAgICAgZXNj cmlwdGlvbikKCSgpCiAgICAgICh3aGVuIChhbmQgKG5vdCB0aHJlYWRlZCkg KHJlLXNlYXJjaC1mb3J3YXJkICJeU3ViamVjdDogIiBuaWwgdCkpCmQxOTY1 IDMKYTE5NjcgMQogICAgICAobWVzc2FnZS1zZW5kKSkKZDE5NzcgMQphMTk3 NyAxCgkgIChpbnNlcnQgKGZvcm1hdCAiUmVmZXJlbmNlczogJXNcbiIgZ251 cy11dS1wb3N0LW1lc3NhZ2UtaWQpKSkKZDE5OTIgMwphMTk5NCA5CgkoaWYg KG5vdCAocmUtc2VhcmNoLWZvcndhcmQgIl5TdWJqZWN0OiAiIG5pbCB0KSkK CSAgICAoKQoJICAoaWYgKG5vdCB0aHJlYWRlZCkKCSAgICAgIChwcm9nbgpk MTY1MCAzNzUKYTIwMjQgNgoJCShpbnNlcnQgKGZvcm1hdCAiICglZC8lZCki IGkgcGFydHMpKSkKCSAgICAod2hlbiAob3IgKGFuZCAoPSBpIDIpIGdudXMt dXUtcG9zdC1zZXBhcmF0ZS1kZXNjcmlwdGlvbikKCQkgICAgICAoYW5kICg9 IGkgMSkgKG5vdCBnbnVzLXV1LXBvc3Qtc2VwYXJhdGUtZGVzY3JpcHRpb24p KSkKCSAgICAgIChyZXBsYWVtcSAnbWlkZGxlIHByb2Nlc3Mtc3RhdGUpKSkK CTIwMDcgMQphMjAwNyAyCmQyMDI3IDE4CmEyMDQ0IDEyCmQyMDA5IDEKYTIw MDkgMQoJKHNldHEgaSAoMSsgaSkpCmQyMDIzIDUKYTIwMjcgMQoJICAobWVz c2FnZS1zZW5kKSkpKQpkMjAyOSAyCmEyMDMwIDQKICAgICh3aGVuIChzZXRx IGJ1ZiAoZ2V0LWJ1ZmZlciBzZW5kLWJ1ZmZlci1uYW1lKSkKICAgICAgKGtp bGwtYnVmZmVyIGJ1ZikpCiAgICAod2hlbiAoc2V0cSBidWYgKGdldC1idWZm ZXIgZW5jb2RlZC1idWZmZXItbmFtZSkpCiAgICAgIChraWxsLWJ1ZmZlciBi dWYpKQpACgoKNC4yMApsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioK QAp0ZXh0CkBACgoKMy4yMQpsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAq KioKQAp0ZXh0CkBkMjcgMQphMjcgMQo7OzsgQ29kZTogCmQ1NCAxCmE1NCAx CihkZWZjdXN0b20gZ251cy11dS1kZWZhdWx0LXZpZXctcnVsZXMgCmQ2MCAx CmE2MCAxCiAgICAoIlxcLlxcKHdhdlxcfGFpZmZcXHxoY29tXFx8dVtibHdd XFx8c1tiZnddXFx8dm9jXFx8c21wXFwpJCIgCmQ3MCAxCmE3MCAxCiAgICAo IlxcLlxcKHRhclxcfGFyalxcfHppcFxcfHpvb1xcfGFyY1xcfGd6XFx8Wlxc fGx6aFxcfGFyXFx8bGhhXFwpJCIgCmQ3MiAxCmE3MiAxCiAgIkRlZmF1bHQg YWN0aW9ucyB0byBiZSB0YWtlbiB3aGVuIHRoZSB1c2VyIGFza3MgdG8gdmll dyBhIGZpbGUuICAKZDEwMyAxCmExMDMgMQooZGVmY3VzdG9tIGdudXMtdXUt dXNlci12aWV3LXJ1bGVzIG5pbCAKZDEwNSAxCmExMDUgMQpTZWUgdGhlIGRv Y3VtZW50YXRpb24gb24gdGhlIGBnbnVzLXV1LWRlZmF1bHQtdmlldy1ydWxl cycgdmFyaWFibGUgZm9yIApkMTEwIDEKYTExMCAxCihkZWZjdXN0b20gZ251 cy11dS11c2VyLXZpZXctcnVsZXMtZW5kIApkMTEzIDEKYTExMyAxClNlZSB0 aGUgZG9jdW1lbnRhdGlvbiBvbiB0aGUgYGdudXMtdXUtZGVmYXVsdC12aWV3 LXJ1bGVzJyB2YXJpYWJsZSBmb3IgCmQxMjAgMQphMTIwIDEKKGRlZmN1c3Rv bSBnbnVzLXV1LWRlZmF1bHQtYXJjaGl2ZS1ydWxlcyAKZDEzNCAxCmExMzQg MQooZGVmdmFyIGdudXMtdXUtZGVzdHJ1Y3RpdmUtYXJjaGl2ZXJzIApkMTQx IDEKYTE0MSAxCiAgKHNldHEgZ251cy11dS11c2VyLWFyY2hpdmUtcnVsZXMg CmQxNDkgMQphMTQ5IDEKSWYsIGZvciBpbnN0YW5jZSwgeW91IHdhbnQgZ251 cy11dSB0byBpZ25vcmUgYWxsIC5hdSBhbmQgLndhdiBmaWxlcywgCmQxNjIg MQphMTYyIDEKSWYsIGZvciBpbnN0YW5jZSwgeW91IHdhbnQgZ251cy11dSB0 byBpZ25vcmUgYWxsIGF1ZGlvIGZpbGVzIGFuZCBhbGwgbXBlZ3MsIApkMjE0 IDEKYTIxNCAxCjs7IFZhcmlvdXMgdmFyaWFibGVzIHVzZXJzIG1heSBzZXQg CmQyMTYgMQphMjE2IDEKKGRlZmN1c3RvbSBnbnVzLXV1LXRtcC1kaXIgIi90 bXAvIiAKZDIyMiAyCmEyMjMgMgooZGVmY3VzdG9tIGdudXMtdXUtZG8tbm90 LXVucGFjay1hcmNoaXZlcyBuaWwgCiAgIipOb24tbmlsIG1lYW5zIHRoYXQg Z251cy11dSB3b24ndCBwZWVrIGluc2lkZSBhcmNoaXZlcyBsb29raW5nIGZv ciBmaWxlcyB0byBkaXNwbGF5LiAKZDIzNyAxCmEyMzcgMQpMaWtlbHkgZnVu Y3Rpb25zIHlvdSBjYW4gdXNlIGluIHRoaXMgbGlzdCBhcmUgYGdudXMtdXUt Z3JhYi12aWV3JyAKZDI0MyAyCmEyNDQgMgooZGVmY3VzdG9tIGdudXMtdXUt aWdub3JlLWRlZmF1bHQtYXJjaGl2ZS1ydWxlcyBuaWwgCiAgIipOb24tbmls IG1lYW5zIHRoYXQgZ251cy11dSB3aWxsIGlnbm9yZSB0aGUgZGVmYXVsdCBh cmNoaXZlIHVucGFja2luZyBjb21tYW5kcy4gIApkMjY0IDEKYTI2NCAxCiAg IipOb24tbmlsIG1lYW5zIHRoYXQgZ251cy11dSB3aWxsIG1hcmsgYXJ0aWNs ZXMgdGhhdCB3ZXJlIHVuc3VjY2Vzc2Z1bGx5IGRlY29kZWQgYXMgdW5yZWFk LiAKZDI3MCAxCmEyNzAgMQogICIqTm9uLW5pbCBtZWFucyB0aGF0IGdudXMt dXUgd2lsbCAqdHJ5KiB0byBmaXggdXVlbmNvZGVkIGZpbGVzIHRoYXQgaGF2 ZSBoYWQgdHJhaWxpbmcgc3BhY2VzIGRlbGV0ZWQuIApkMjc3IDEKYTI3NyAx CklmIHRoaXMgdmFyaWFibGUgaXMgbmlsLCBnbnVzLXV1IHdpbGwganVzdCBz YXZlIGV2ZXJ5dGhpbmcgaW4gYSAKZDI3OSAxCmEyNzkgMQpubyBlYXN5IHdh eSB0byBzcGVjaWZ5IGFueSBtZWFuaW5nZnVsIHZvbHVtZSBhbmQgaXNzdWUg bnVtYmVycyB3ZXJlIGZvdW5kLCAKZDI4NCAxCmEyODQgMQooZGVmY3VzdG9t IGdudXMtdXUtZGlnZXN0LWhlYWRlcnMgCmQzNzQgMQphMzc0IDEKKGdudXMt ZGVmaW5lLWtleXMgCmQ0MjQgMQphNDI0IDEKCSAocmVhZC1maWxlLW5hbWUg CmQ0NDEgMQphNDQxIDEKICAoc2V0cSBnbnVzLXV1LWJpbmhleC1hcnRpY2xl LW5hbWUgCmQ0NDYgMQphNDQ2IDEKICAiVXVkZWNvZGVzIGFuZCB2aWV3cyB0 aGUgY3VycmVudCBhcnRpY2xlLiIgICAgCmQ0OTQgMQphNDk0IDEKICAoc2V0 cSBnbnVzLXV1LWJpbmhleC1hcnRpY2xlLW5hbWUgCmQ1MzEgMQphNTMxIDEK CSh1bmxlc3MgZnJvbSAKZDYwNiAxCmE2MDYgMQogICAgICAKZDYxMSAxCmE2 MTEgMQogICAgICAKZDY3MSAxCmE2NzEgMQoJKGFuZCAodmVjdG9ycCAoc2V0 cSBoZWFkZXJzIApkNjc0IDEKYTY3NCAxCgkJICAgYXJ0aWNsZXMgKGdudXMt dXUtZmluZC1hcnRpY2xlcy1tYXRjaGluZyAKZDcwMiAxCmE3MDIgMQo7OyBB bGwgUG9zdFNjcmlwdCBmdW5jdGlvbnMgd3JpdHRlbiBieSBFcmlrIFNlbGJl cmcgPHNwZWVkQEBjcy53YXNoaW5ndG9uLmVkdT4uIApkNzIzIDEKYTcyMyAx CiAgKGdudXMtdXUtZGVjb2RlLXdpdGgtbWV0aG9kICdnbnVzLXV1LWRlY29k ZS1wb3N0c2NyaXB0LWFydGljbGUgCmQ3MzkgMQphNzM5IDEKKGRlZnVuIGdu dXMtdXUtZGVjb2RlLXdpdGgtbWV0aG9kIChtZXRob2QgbiAmb3B0aW9uYWwg c2F2ZSBub3QtaW5zZXJ0IApkNzczIDEKYTc3MyAxCiAgICAoaWYgcmVjIApk ODAyIDEKYTgwMiAxCiAgKGNvbmQgCmQ4MDkgMQphODA5IDEKCSAgICAoKGVx IGluLXN0YXRlICdmaXJzdC1hbmQtbGFzdCkgKGxpc3QgZ251cy11dS1zYXZl ZC1hcnRpY2xlLW5hbWUgCmQ4MTggMQphODE4IDEKCSAgICAoKGVxIGluLXN0 YXRlICdmaXJzdC1hbmQtbGFzdCkgKGxpc3QgZ251cy11dS1zYXZlZC1hcnRp Y2xlLW5hbWUgCmQ4MzIgMQphODMyIDEKCSAgKHByb2duIApkODM2IDEKYTgz NiAxCgkgICAgKHNhdmUtZXhjdXJzaW9uIApkODM5IDEKYTgzOSAxCgkgICAg ICAoaW5zZXJ0IChmb3JtYXQgCmQ4NzIgMQphODcyIDEKCQkgIChzZXRxIHNv cnRoZWFkIApkODc0IDEKYTg3NCAxCgkJCQkoYnVmZmVyLXN1YnN0cmluZyAK ZDg4NiAxCmE4ODYgMQoJICAoc2F2ZS1leGN1cnNpb24gCmQ4OTggMQphODk4 IDEKCSAgKGluc2VydCAKZDkxMSAxCmE5MTEgMQo7OyBCaW5oZXggdHJlYXRt ZW50IC0gbm90IHZlcnkgYWR2YW5jZWQuIApkOTEzIDEKYTkxMyAxCihkZWZj b25zdCBnbnVzLXV1LWJpbmhleC1ib2R5LWxpbmUgCmQ5MTUgMQphOTE1IDEK KGRlZmNvbnN0IGdudXMtdXUtYmluaGV4LWJlZ2luLWxpbmUgCmQ5NDAgMQph OTQwIDEKCShyZS1zZWFyY2gtYmFja3dhcmQgKGNvbmNhdCBnbnVzLXV1LWJp bmhleC1ib2R5LWxpbmUgIlxcfCIgCmQ5NzcgMQphOTc3IDEKICAgICAgCmQ5 ODYgMQphOTg2IDEKICAgICAgKGFuZCAKZDk5OSAyCmExMDAwIDIKICAgIChz ZXRxIGFjdGlvbiAKCSAgKGdudXMtdXUtY2hvb3NlLWFjdGlvbiAKZDEwMDIg MQphMTAwMiAxCgkgICAoYXBwZW5kIApkMTAwNCAyCmExMDA1IDIKCSAgICAo aWYgZ251cy11dS1pZ25vcmUtZGVmYXVsdC12aWV3LXJ1bGVzIAoJCW5pbCAK ZDEwMTAgMQphMTAxMCAxCiAgICAgICh3aGVuIChzZXRxIGFjdGlvbiAKZDEw NTMgMQphMTA1MyAxCiAgICAgIApkMTA2NCAxCmExMDY0IDEKICA7OyByZXR1 cm5lZC4gCmQxMDY4IDEKYTEwNjggMQogICAgKGNvbmQgCmQxMDg4IDEKYTEw ODggMQooZGVmdW4gZ251cy11dS1maW5kLWFydGljbGVzLW1hdGNoaW5nIApk MTA5NCAxCmExMDk0IDEKICAobGV0ICgoc3ViamVjdCAob3Igc3ViamVjdCAK ZDExMjAgMQphMTEyMCAxCgkJKHNvcnQgKGdudXMtdXUtZXhwYW5kLW51bWJl cnMgCmQxMTQ1IDEKYTExNDUgMQoJKHdoZW4gdHJhbnNsYXRlIApkMTE1MSAz CmExMTUzIDMKCSAgKHJlcGxhY2UtbWF0Y2ggIAoJICAgKGZvcm1hdCAiJTA2 ZCIgCgkJICAgKHN0cmluZy10by1pbnQgKGJ1ZmZlci1zdWJzdHJpbmcgCmQx MjAyIDIKYTEyMDMgMgo7OyBlYWNoIGFydGljbGUgZ3JhYmJlZC4gCjs7IApk MTIwNiAxCmExMjA2IDEKKGRlZnVuIGdudXMtdXUtZ3JhYi1hcnRpY2xlcyAo YXJ0aWNsZXMgcHJvY2Vzcy1mdW5jdGlvbiAKZDEyMTQgMgphMTIxNSAyCiAK ICAgICh3aGlsZSAoYW5kIGFydGljbGVzIApkMTIyMyAxCmExMjIzIDEKICAg ICAgKHVubGVzcyBhcnRpY2xlcyAKZDEyMjkgMQphMTIyOSAxCgkoZ251cy1t ZXNzYWdlIDYgIkdldHRpbmcgYXJ0aWNsZSAlZCVzLi4uIiAKZDEyMzIgMQph MTIzMiAxCiAgICAgIApkMTIzOSAxCmExMjM5IDEKCSAgICAoc2V0cSBwcm9j ZXNzLXN0YXRlIApkMTI0NSAxCmExMjQ1IDEKICAgICAgOzsgSWYgdGhpcyBp cyB0aGUgYmVnaW5uaW5nIG9mIGEgZGVjb2RlZCBmaWxlLCB3ZSBwdXNoIGl0 IApkMTI1NCAxCmExMjU0IDEKCSAgKHdoZW4gKGFuZCByZXN1bHQtZmlsZSAK ZDEyOTUgMQphMTI5NSAxCgkgICByZXN1bHQtZmlsZSAKZDEzMDIgMQphMTMw MiAxCiAgICAgIDs7IElmIHRoaXMgd2FzIGEgZmlsZSBvZiB0aGUgd3Jvbmcg c29ydCwgdGhlbiAKZDEzNTggMQphMTM1OCAxCiAgICAoaWYgKGFuZCBzdWJq ZWN0IApkMTM3MSAxCmExMzcxIDEKCSAgcHJvY2Vzcy1jb25uZWN0aW9uLXR5 cGUgY2FzZS1mb2xkLXNlYXJjaCBidWZmZXItcmVhZC1vbmx5IApkMTM5MiAx CmExMzkyIDEKCSAgKHNldHEgZ251cy11dS1maWxlLW5hbWUgCmQxNDE3IDIK YTE0MTggMgoJCQkoc3RhcnQtcHJvY2VzcyAKCQkJICIqdXVkZWNvZGUqIiAK ZDE0MjQgMQphMTQyNCAxCgkgIChzZXQtcHJvY2Vzcy1zZW50aW5lbCAKZDE0 MjggMQphMTQyOCAxCgkKZDE0MzQgMQphMTQzNCAxCgkgCmQxNDQ3IDIKYTE0 NDggMgoJICAgICAgKGVycm9yIAoJICAgICAgIChwcm9nbiAKZDE0ODIgNQph MTQ4NiA1CgkoY2FsbC1wcm9jZXNzLXJlZ2lvbiAKCSBzdGFydC1jaGFyIChw b2ludC1tYXgpIHNoZWxsLWZpbGUtbmFtZSBuaWwgCgkgKGdldC1idWZmZXIt Y3JlYXRlIGdudXMtdXUtb3V0cHV0LWJ1ZmZlci1uYW1lKSBuaWwgCgkgc2hl bGwtY29tbWFuZC1zd2l0Y2ggCgkgKGNvbmNhdCAiY2QgIiBnbnVzLXV1LXdv cmstZGlyICIgIiAKZDE1MDcgMwphMTUwOSAzCiAgICAoYW5kIAogICAgICh1 bmxlc3Mgbm8taWdub3JlIAogICAgICAgKGFuZCAobm90IApkMTUxMiAxCmEx NTEyIDEKCSAgICAobm90IApkMTUxNCAyCmExNTE1IDIKCQkgIChzdHJpbmct bWF0Y2ggZ251cy11dS1pZ25vcmUtZmlsZXMtYnktdHlwZSAKCQkJCShvciAo Z251cy11dS1jaG9vc2UtYWN0aW9uIApkMTUyOSAxCmExNTI5IDEKICAgIChz ZXRxIGFjdGlvbiAoZ251cy11dS1jaG9vc2UtYWN0aW9uIApkMTU1MiAxCmEx NTUyIDEKICAgIChpZiAoPSAwIChjYWxsLXByb2Nlc3Mgc2hlbGwtZmlsZS1u YW1lIG5pbCAKZDE1NzUgMQphMTU3NSAxCiAgOzsgR28gdGhyb3VnaCBGSUxF UyBhbmQgbG9vayBmb3IgZmlsZXMgdG8gdW5wYWNrLiAKZDE1OTcgMQphMTU5 NyAxCiAgICAoaWYgZGlkLXVucGFjayAKZDE2MzkgMQphMTYzOSAxCgkgICAg CmQxNjQxIDEKYTE2NDEgMQoJICAgIChpZiAobG9va2luZy1hdCAoY29uY2F0 IGdudXMtdXUtYmVnaW4tc3RyaW5nICJcXHwiIApkMTY2OCAxCmExNjY4IDEK ICAgICAgKHNldHEgZ251cy11dS10bXAtZGlyIChmaWxlLW5hbWUtYXMtZGly ZWN0b3J5IApkMTY3MyAxCmExNjczIDEKCSAgKGVycm9yICJUZW1wIGRpcmVj dG9yeSAlcyBjYW4ndCBiZSB3cml0dGVuIHRvIiAKZDE2NzYgMQphMTY3NiAx CiAgICAgIChzZXRxIGdudXMtdXUtd29yay1kaXIgCmQxNzUzIDIKYTE3NTQg MgpgZ251cy11dS1wb3N0LWVuY29kZS1taW1lJywgd2hpY2ggZW5jb2RlcyB3 aXRoIGJhc2U2NCBhbmQgYWRkcyBNSU1FIApoZWFkZXJzOyBhbmQgYGdudXMt dXUtcG9zdC1lbmNvZGUtbWltZS11dWVuY29kZScsIHdoaWNoIGVuY29kZXMg d2l0aCAKZDE3ODAgMQphMTc4MCAxCm9uZSBwYWNrYWdlIHRoYXQgZG9lcyB0 aGF0IC0gZ251cy11dSwgYnV0IHNvbWVob3csIEkgZG9uJ3QgdGhpbmsgdGhh dCAKZDE3ODggMgphMTc4OSAyCmlzIG5pbCwgdGhlIGRlc2NyaXB0aW9uIHRo ZSB1c2VyIGVudGVycyB3aWxsIGJlIGluY2x1ZGVkIGF0IHRoZSAKYmVnaW5u aW5nIG9mIHRoZSBmaXJzdCBhcnRpY2xlLCB3aGljaCB3aWxsIGJlIG51bWJl cmVkICgxL3gpLiAgRGVmYXVsdCAKZDE4MTIgMQphMTgxMiAxCiAgICAgIApk MTgxNCAxCmExODE0IDEKICAgIChzYXZlLWV4Y3Vyc2lvbiAoc2V0cSBnbnVz LXV1LXBvc3QtaW5zZXJ0ZWQtZmlsZS1uYW1lIApkMTgyMSAxCmExODIxIDEK ICAoc2F2ZS1leGN1cnNpb24gCmQxODQ4IDEKYTE4NDggMQogIChpbnNlcnQg KGZvcm1hdCAiQ29udGVudC1UeXBlOiAlczsgbmFtZT1cIiVzXCJcbiIgCmQx ODY2IDEKYTE4NjYgMQogICg9IDAgKGNhbGwtcHJvY2VzcyBzaGVsbC1maWxl LW5hbWUgbmlsIHQgbmlsIHNoZWxsLWNvbW1hbmQtc3dpdGNoIApkMTg3OSAx CmExODc5IDEKICAKZDE4ODEgMQphMTg4MSAxCgkobGV0ICgobWVzc2FnZS1y ZXF1aXJlZC1uZXdzLWhlYWRlcnMgCmQxODk1IDIKYTE4OTYgMgoJCSAgICAo c2V0cSBnbnVzLXV1LXBvc3QtbWVzc2FnZS1pZCAKCQkJICAoYnVmZmVyLXN1 YnN0cmluZyAKZDE5MDUgMQphMTkwNSAxCiAgICAgIApkMTkxMiAxCmExOTEy IDEKICAgIChzZXRxIGZpbGUtcGF0aCAocmVhZC1maWxlLW5hbWUgCmQxOTE5 IDEKYTE5MTkgMQogICAgCmQxOTI4IDEKYTE5MjggMQoJICAgICAgKHNldC1i dWZmZXIgKHNldHEgdXVidWYgCmQxOTQ5IDIKYTE5NTAgMgogICAgKHdoZW4g KG5vdCAocmUtc2VhcmNoLWZvcndhcmQgCgkJKGlmIGdudXMtdXUtcG9zdC1z ZXBhcmF0ZS1kZXNjcmlwdGlvbiAKZDE5NjEgMQphMTk2MSAxCiAgICAoc2F2 ZS1leGN1cnNpb24gCmQxOTc2IDEKYTE5NzYgMQogICAgKHJlLXNlYXJjaC1m b3J3YXJkIApkMjAwMyAyCmEyMDA0IDIKCShzZXRxIAoJIGJlZy1saW5lIApk MjAwOCAxCmEyMDA4IDEKCQkgKG1ha2Utc3RyaW5nIApkMjAyMSAxCmEyMDIx IDEKCQkgIApkMjA0MiAxCmEyMDQyIDEKCSh3aGVuIChyZS1zZWFyY2gtZm9y d2FyZCAKQAoKCjMuMjAKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioq CkAKdGV4dApAZDE2OTggMQphMTY5OCAxCiAgICAod2hpbGUgKHNldHEgbmV3 LXBvcyAoc3RyaW5nLW1hdGNoICJbIWBcIiRcXCYgXHRdIiBhcmcgcG9zKSkK QAoKCjMuMTkKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4 dApAZDUwOCAzNwphNTQ0IDM3CiAgICAoc2V0cSBnbnVzLXV1LWRpZ2VzdC1m cm9tLXN1YmplY3QgbmlsKQogICAgKGdudXMtdXUtZGVjb2RlLXNhdmUgbiBm aWxlKQogICAgKHNldHEgYnVmIChzd2l0Y2gtdG8tYnVmZmVyIChnZXQtYnVm ZmVyLWNyZWF0ZSAiICpnbnVzLXV1LWZvcndhcmQqIikpKQogICAgKGdudXMt YWRkLWN1cnJlbnQtdG8tYnVmZmVyLWxpc3QpCiAgICAoZXJhc2UtYnVmZmVy KQogICAgKGRlbGV0ZS1vdGhlci13aW5kb3dzKQogICAgKGluc2VydC1maWxl IGZpbGUpCiAgICAobGV0ICgoZnMgZ251cy11dS1kaWdlc3QtZnJvbS1zdWJq ZWN0KSkKICAgICAgKHdoZW4gZnMKCShzZXRxIGZyb20gKGNhYXIgZnMpCgkg ICAgICBzdWJqZWN0IChnbnVzLXNpbXBsaWZ5LXN1YmplY3QtZnV6enkgKGNk YXIgZnMpKQoJICAgICAgZnMgKGNkciBmcykpCgkod2hpbGUgKGFuZCBmcyAo b3IgZnJvbSBzdWJqZWN0KSkKCSAgKHdoZW4gZnJvbQoJICAgICh1bmxlc3Mg KHN0cmluZz0gZnJvbSAoY2FhciBmcykpCgkgICAgICAoc2V0cSBmcm9tIG5p bCkpKQoJICAod2hlbiBzdWJqZWN0CgkgICAgKHVubGVzcyAoc3RyaW5nPSAo Z251cy1zaW1wbGlmeS1zdWJqZWN0LWZ1enp5IChjZGFyIGZzKSkKCQkJICAg ICBzdWJqZWN0KQoJICAgICAgKHNldHEgc3ViamVjdCBuaWwpKSkKCSAgKHNl dHEgZnMgKGNkciBmcykpKSkKICAgICAgKHVubGVzcyBzdWJqZWN0Cgkoc2V0 cSBzdWJqZWN0ICJEaWdlc3RlZCBBcnRpY2xlcyIpKQogICAgICAodW5sZXNz IGZyb20gCgkoc2V0cSBmcm9tCgkgICAgICAoaWYgKGdudXMtbmV3cy1ncm91 cC1wIGdudXMtbmV3c2dyb3VwLW5hbWUpCgkJICBnbnVzLW5ld3Nncm91cC1u YW1lCgkJIlZhcmlvdXMiKSkpKQogICAgKGdvdG8tY2hhciAocG9pbnQtbWlu KSkKICAgICh3aGVuIChyZS1zZWFyY2gtZm9yd2FyZCAiXlN1YmplY3Q6ICIp CiAgICAgIChkZWxldGUtcmVnaW9uIChwb2ludCkgKGdudXMtcG9pbnQtYXQt ZW9sKSkKICAgICAgKGluc2VydCBzdWJqZWN0KSkKICAgIChnb3RvLWNoYXIg KHBvaW50LW1pbikpCiAgICAod2hlbiAocmUtc2VhcmNoLWZvcndhcmQgIl5G cm9tOiAiKQogICAgICAoZGVsZXRlLXJlZ2lvbiAocG9pbnQpIChnbnVzLXBv aW50LWF0LWVvbCkpCiAgICAgIChpbnNlcnQgZnJvbSkpCiAgICAobWVzc2Fn ZS1mb3J3YXJkIHBvc3QpCkAKCgozLjE4CmxvZwpAKioqIGVtcHR5IGxvZyBt ZXNzYWdlICoqKgpACnRleHQKQGQzNiAxCmQzOSAxMwpkMTAwIDEKYTEwMCAx CiAgOmdyb3VwICdnbnVzLWV4dHJhY3QKZDEwNyAxCmExMDcgMQogIDpncm91 cCAnZ251cy1leHRyYWN0CmQxMTUgMQphMTE1IDEKICA6Z3JvdXAgJ2dudXMt ZXh0cmFjdApkMTMxIDEKYTEzMSAxCiAgOmdyb3VwICdnbnVzLWV4dHJhY3QK ZDE0NCAxCmExNDQgMQogIDpncm91cCAnZ251cy1leHRyYWN0CmQyMjUgMQph MjI1IDEKICA6Z3JvdXAgJ2dudXMtZXh0cmFjdApkMjMxIDEKYTIzMSAxCiAg Omdyb3VwICdnbnVzLWV4dHJhY3QKZDI0NiAxCmEyNDYgMQogIDpncm91cCAn Z251cy1leHRyYWN0CmQxNzU2IDEKYTE3NTYgMQogIDpncm91cCAnZ251cy1l eHRyYWN0CmQxNzY2IDEKYTE3NjYgMQogIDpncm91cCAnZ251cy1leHRyYWN0 CmQxNzczIDEKYTE3NzMgMQogIDpncm91cCAnZ251cy1leHRyYWN0CmQxNzgy IDEKYTE3ODIgMQogIDpncm91cCAnZ251cy1leHRyYWN0CmQxNzkxIDEKYTE3 OTEgMQogIDpncm91cCAnZ251cy1leHRyYWN0CkAKCgozLjE3CmxvZwpAKioq IGVtcHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQxNjgxIDE1CmExNjk1 IDIKOzsgSW5wdXRzIGFuIGFjdGlvbiBhbmQgYSBmaWxlIGFuZCByZXR1cm5z IGEgZnVsbCBjb21tYW5kLCBwdXR0aW5nCjs7IHF1b3RlcyByb3VuZCB0aGUg ZmlsZSBuYW1lIGFuZCBlc2NhcGluZyBhbnkgcXVvdGVzIGluIHRoZSBmaWxl IG5hbWUuCmQxNjk3IDEKYTE2OTcgOAogIChsZXQgKChvZmlsZSAiIikpCiAg ICAod2hpbGUgKHN0cmluZy1tYXRjaCAiIVxcfGBcXHxcIlxcfFxcJFxcfFxc XFxcXHwmIiBmaWxlKQogICAgICAocHJvZ24KCShzZXRxIG9maWxlCgkgICAg ICAoY29uY2F0IG9maWxlIChzdWJzdHJpbmcgZmlsZSAwIChtYXRjaC1iZWdp bm5pbmcgMCkpICJcXCIKCQkgICAgICAoc3Vic3RyaW5nIGZpbGUgKG1hdGNo LWJlZ2lubmluZyAwKSAobWF0Y2gtZW5kIDApKSkpCgkoc2V0cSBmaWxlIChz dWJzdHJpbmcgZmlsZSAoMSsgKG1hdGNoLWJlZ2lubmluZyAwKSkpKSkpCiAg ICAoc2V0cSBvZmlsZSAoY29uY2F0ICJcIiIgb2ZpbGUgZmlsZSAiXCIiKSkK ZDE2OTkgMgphMTcwMCAyCgkoZm9ybWF0IGFjdGlvbiBvZmlsZSkKICAgICAg KGNvbmNhdCBhY3Rpb24gIiAiIG9maWxlKSkpKQpACgoKMy4xNgpsb2cKQCoq KiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMiAxCmEyIDEKOzsg Q29weXJpZ2h0IChDKSAxOTg1LDg2LDg3LDkzLDk0LDk1LDk2IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgpACgoKMy4xNQpsb2cKQCoqKiBlbXB0 eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMzQgNApkNDAgMQphNDAgMQoo ZGVmdmFyIGdudXMtdXUtZGVmYXVsdC12aWV3LXJ1bGVzIApkNTggMQphNTgg MQogICIqRGVmYXVsdCBhY3Rpb25zIHRvIGJlIHRha2VuIHdoZW4gdGhlIHVz ZXIgYXNrcyB0byB2aWV3IGEgZmlsZS4gIApkODUgMwphODcgMQptYXRjaC4i KQpkODkgMgphOTAgMgooZGVmdmFyIGdudXMtdXUtdXNlci12aWV3LXJ1bGVz IG5pbCAKICAiKlZhcmlhYmxlIGRldGFpbGluZyB3aGF0IGFjdGlvbnMgYXJl IHRvIGJlIHRha2VuIHRvIHZpZXcgYSBmaWxlLgpkOTIgMwphOTQgMQpkZXRh aWxzLiIpCmQ5NiAxCmE5NiAxCihkZWZ2YXIgZ251cy11dS11c2VyLXZpZXct cnVsZXMtZW5kIApkOTggMQphOTggMQogICIqVmFyaWFibGUgc2F5aW5nIHdo YXQgYWN0aW9ucyBhcmUgdG8gYmUgdGFrZW4gaWYgbm8gcnVsZSBtYXRjaGVk IHRoZSBmaWxlIG5hbWUuCmQxMDAgMwphMTAyIDEKZGV0YWlscy4iKQpkMTA2 IDEKYTEwNiAxCihkZWZ2YXIgZ251cy11dS1kZWZhdWx0LWFyY2hpdmUtcnVs ZXMgCmQxMTUgNAphMTE4IDEKICAgICgiXFwuYXJjJCIgImFyYyAteCIpKSkK ZDEyMyAyCmExMjQgMgooZGVmdmFyIGdudXMtdXUtdXNlci1hcmNoaXZlLXJ1 bGVzIG5pbAogICIqQSBsaXN0IHRoYXQgY2FuIGJlIHNldCB0byBvdmVycmlk ZSB0aGUgZGVmYXVsdCBhcmNoaXZlIHVucGFja2luZyBjb21tYW5kcy4KZDEy OSAzCmExMzEgMQogICAgICAoXCJcXFxcLnppcCRcIiBcInppcCAteFwiKSkp IikKZDEzMyAxCmExMzMgMQooZGVmdmFyIGdudXMtdXUtaWdub3JlLWZpbGVz LWJ5LW5hbWUgbmlsCmQxNDEgNAphMTQ0IDEKYGdudXMtdXUtaWdub3JlLWZp bGVzLWJ5LXR5cGUnIHZhcmlhYmxlLiIpCmQxNDYgMQphMTQ2IDEKKGRlZnZh ciBnbnVzLXV1LWlnbm9yZS1maWxlcy1ieS10eXBlIG5pbApkMTU0IDQKYTE1 NyAxCmBnbnVzLXV1LWlnbm9yZS1maWxlcy1ieS1uYW1lJyB2YXJpYWJsZS4i KQpkMjAyIDEKYTIwMiAxCihkZWZ2YXIgZ251cy11dS10bXAtZGlyICIvdG1w LyIgCmQyMDQgMwphMjA2IDEKRGVmYXVsdCBpcyBcIi90bXAvXCIuIikKZDIw OCAxCmEyMDggMQooZGVmdmFyIGdudXMtdXUtZG8tbm90LXVucGFjay1hcmNo aXZlcyBuaWwgCmQyMTAgMwphMjEyIDEKRGVmYXVsdCBpcyBuaWwuIikKZDIx NCAxCmEyMTQgMQooZGVmdmFyIGdudXMtdXUtaWdub3JlLWRlZmF1bHQtdmll dy1ydWxlcyBuaWwKZDIxNiAzCmEyMTggMQpPbmx5IHRoZSB1c2VyIHZpZXdp bmcgcnVsZXMgd2lsbCBiZSBjb25zdWx0ZWQuICBEZWZhdWx0IGlzIG5pbC4i KQpkMjIwIDIKYTIyMSAyCihkZWZ2YXIgZ251cy11dS1ncmFiYmVkLWZpbGUt ZnVuY3Rpb25zIG5pbAogICIqRnVuY3Rpb25zIHJ1biBvbiBlYWNoIGZpbGUg YWZ0ZXIgc3VjY2Vzc2Z1bCBkZWNvZGluZy4KZDIyNCA0CmEyMjcgMQphbmQg YGdudXMtdXUtZ3JhYi1tb3ZlJy4iKQpkMjI5IDEKYTIyOSAxCihkZWZ2YXIg Z251cy11dS1pZ25vcmUtZGVmYXVsdC1hcmNoaXZlLXJ1bGVzIG5pbCAKZDIz MSAzCmEyMzMgMQpPbmx5IHRoZSB1c2VyIHVucGFja2luZyBjb21tYW5kcyB3 aWxsIGJlIGNvbnN1bHRlZC4gIERlZmF1bHQgaXMgbmlsLiIpCmQyMzUgMQph MjM1IDEKKGRlZnZhciBnbnVzLXV1LWtpbGwtY2FycmlhZ2UtcmV0dXJuIHQK ZDIzNyAzCmEyMzkgMQpEZWZhdWx0IGlzIHQuIikKZDI0MSAxCmEyNDEgMQoo ZGVmdmFyIGdudXMtdXUtdmlldy13aXRoLW1ldGFtYWlsIG5pbApkMjQ1IDMK YTI0NyAxCml0IG5pbC4iKQpkMjQ5IDEKYTI0OSAxCihkZWZ2YXIgZ251cy11 dS11bm1hcmstYXJ0aWNsZXMtbm90LWRlY29kZWQgbmlsCmQyNTEgMwphMjUz IDEKRGVmYXVsdCBpcyBuaWwuIikKZDI1NSAxCmEyNTUgMQooZGVmdmFyIGdu dXMtdXUtY29ycmVjdC1zdHJpcHBlZC11dWNvZGUgbmlsCmQyNTcgMwphMjU5 IDEKRGVmYXVsdCBpcyBuaWwuIikKZDI2MSAxCmEyNjEgMQooZGVmdmFyIGdu dXMtdXUtc2F2ZS1pbi1kaWdlc3QgbmlsCmQyNjYgMwphMjY4IDEKc28gSSBz aW1wbHkgZHJvcHBlZCB0aGVtLiIpCmQyNzAgMQphMjcwIDEKKGRlZnZhciBn bnVzLXV1LWRpZ2VzdC1oZWFkZXJzIApkMjczIDkKYTI4MSA1CiAgIipMaXN0 IG9mIHJlZ2V4cHMgdG8gbWF0Y2ggaGVhZGVycyBpbmNsdWRlZCBpbiBkaWdl c3RlZCBtZXNzYWdlcy4KVGhlIGhlYWRlcnMgd2lsbCBiZSBpbmNsdWRlZCBp biB0aGUgc2VxdWVuY2UgdGhleSBhcmUgbWF0Y2hlZC4iKQoKKGRlZnZhciBn bnVzLXV1LXNhdmUtc2VwYXJhdGUtYXJ0aWNsZXMgbmlsCiAgIipOb24tbmls IG1lYW5zIHRoYXQgZ251cy11dSB3aWxsIHNhdmUgYXJ0aWNsZXMgaW4gc2Vw YXJhdGUgZmlsZXMuIikKZDI4MyAxCmEyODMgMQooZGVmdmFyIGdudXMtdXUt YmUtZGFuZ2Vyb3VzICdhc2sKZDI4NiA1CmEyOTAgMQpkaWRuJ3Qgd29yaywg YW5kIG92ZXJ3cml0ZSBleGlzdGluZyBmaWxlcy4gIE90aGVyd2lzZSwgYXNr IGVhY2ggdGltZS4iKQpkMTcyOSAxCmExNzI5IDEKKGRlZnZhciBnbnVzLXV1 LXBvc3QtZW5jb2RlLW1ldGhvZCAnZ251cy11dS1wb3N0LWVuY29kZS11dWVu Y29kZQpkMTczNSA2CmExNzQwIDEKdXVlbmNvZGUgYW5kIGFkZHMgTUlNRSBo ZWFkZXJzLiIpCmQxNzQyIDEKYTE3NDIgMQooZGVmdmFyIGdudXMtdXUtcG9z dC1pbmNsdWRlLWJlZm9yZS1jb21wb3NpbmcgbmlsCmQxNzQ1IDMKYTE3NDcg MQpcXFtnbnVzLXV1LXBvc3QtaW5zZXJ0LWJpbmFyeS1pbi1hcnRpY2xlXSBv ciBoYXZlIG9uZSBpbmNsdWRlZCBmb3IgeW91IHdoZW4geW91IHBvc3QgdGhl IGFydGljbGUuIikKZDE3NDkgMQphMTc0OSAxCihkZWZ2YXIgZ251cy11dS1w b3N0LWxlbmd0aCA5OTAKZDE3NTIgMwphMTc1NCAxCnBvc3QgdGhlIGVudGly ZSBmaWxlLiIpCmQxNzU2IDEKYTE3NTYgMQooZGVmdmFyIGdudXMtdXUtcG9z dC10aHJlYWRlZCBuaWwKZDE3NjEgMwphMTc2MyAxCmNvdW50cy4uLikgRGVm YXVsdCBpcyBuaWwuIikKZDE3NjUgMQphMTc2NSAxCihkZWZ2YXIgZ251cy11 dS1wb3N0LXNlcGFyYXRlLWRlc2NyaXB0aW9uIHQKZDE3NzAgMwphMTc3MiAx CmlzIHQuIikKQAoKCjMuMTQKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2Ug KioqCkAKdGV4dApAZDEzOTIgMgphMTM5MyAzCgkJICAoY29uZGl0aW9uLWNh c2UgKCkKCQkgICAgICAocHJvY2Vzcy1zZW5kLWVvZiBnbnVzLXV1LXV1ZGVj b2RlLXByb2Nlc3MpCgkJICAgIChlcnJvciBuaWwpKQpACgoKMy4xMwpsb2cK QCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkOTg2IDQKYTk4 OSA5CgkgICh3aGlsZSAoYW5kIChyZS1zZWFyY2gtYmFja3dhcmQgIlswLTld IiBuaWwgdCkgKD4gY291bnQgMCkpCiAgICAgICAgICAgICh3aGlsZSAoYW5k IAoJCSAgICAobG9va2luZy1hdCAiWzAtOV0iKQoJCSAgICAoPCAxIChnb3Rv LWNoYXIgKDEtIChwb2ludCkpKSkpKQogICAgICAgICAgICAocmUtc2VhcmNo LWZvcndhcmQgIlswLTldKyIgbmlsIHQpCgkgICAgKHJlcGxhY2UtbWF0Y2gg IlswLTldKyIpCgkgICAgKGJhY2t3YXJkLWNoYXIgNSkKCSAgICAoc2V0cSBj b3VudCAoMS0gY291bnQpKSkpKQoKZDEzMzIgMQpACgoKMy4xMgpsb2cKQCoq KiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMjM3IDUKZDcyNiA0 CmE3MjkgMQoJCSAgICAoZ251cy15LW9yLW4tcCAoZm9ybWF0ICIlcyBleGlz dHM7IG92ZXJ3cml0ZT8gIiB0by1maWxlKSkpCmQxMDExIDEKZDExOTcgNQph MTIwMSAzCgkJICAgICAoZ251cy15LW9yLW4tcAoJCSAgICAgIChmb3JtYXQg IkRlbGV0ZSB1bnN1Y2Nlc3NmdWxseSBkZWNvZGVkIGZpbGUgJXMiCgkJCSAg ICAgIHJlc3VsdC1maWxlKSkpCmQxMjM4IDMKYTEyNDAgMQoJICAgKGdudXMt eS1vci1uLXAgKGZvcm1hdCAiRGVsZXRlIGluY29tcGxldGUgZmlsZSAlcz8g IiByZXN1bHQtZmlsZSkpCkAKCgozLjExCmxvZwpAKioqIGVtcHR5IGxvZyBt ZXNzYWdlICoqKgpACnRleHQKQGQ0MzcgMQphNDM3IDEKCShmaWxlIChtYWtl LXRlbXAtbmFtZSAoY29uY2F0IGdudXMtdXUtdG1wLWRpciAiZm9yd2FyZCIp KSkKQAoKCjMuMTAKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAK dGV4dApAZDI5IDEKYTI5IDEKKHJlcXVpcmUgJ2dudXMtbG9hZCkKQAoKCjMu OQpsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMzIz IDEKYTMyMyAxCiAgKGludGVyYWN0aXZlICJQIikgCmQ0NTMgMgphNDU0IDIK CSAgICAob3IgKHN0cmluZz0gZnJvbSAoY2FhciBmcykpCgkJKHNldHEgZnJv bSBuaWwpKSkKZDQ1NiAzCmE0NTggMwoJICAgIChvciAoc3RyaW5nPSAoZ251 cy1zaW1wbGlmeS1zdWJqZWN0LWZ1enp5IChjZGFyIGZzKSkKCQkJIHN1Ympl Y3QpCgkJKHNldHEgc3ViamVjdCBuaWwpKSkKZDU5NyAyCmE1OTggMQogICAg KG9yIG1hcmtlZCAoZXJyb3IgIk5vIGFydGljbGVzIG1hcmtlZCB3aXRoIHRo ZSBwcm9jZXNzIG1hcmsiKSkKZDY3MyAyCmE2NzQgMQogIChpZiBzYXZlIChz ZXRxIGdudXMtdXUtZGVmYXVsdC1kaXIgc2F2ZSkpCmQ2ODMgNgphNjg4IDQK ICAgICAgKGFuZCBzY2FuIChzZXRxIGZpbGVzIChnbnVzLXV1LXNjYW4tZGly ZWN0b3J5IGdudXMtdXUtd29yay1kaXIpKSkpCiAgICAoYW5kIHNhdmUgKGdu dXMtdXUtc2F2ZS1maWxlcyBmaWxlcyBzYXZlKSkKICAgIChpZiAoZXEgZ251 cy11dS1kby1ub3QtdW5wYWNrLWFyY2hpdmVzIG5pbCkKCShzZXRxIGZpbGVz IChnbnVzLXV1LXVucGFjay1maWxlcyBmaWxlcykpKQpkNzM0IDIKYTczNSAy CiAgICAgICh3cml0ZS1yZWdpb24gMSAocG9pbnQtbWF4KSAoY29uY2F0IGdu dXMtdXUtc2F2ZWQtYXJ0aWNsZS1uYW1lIAoJCQkJCSAgZ251cy1jdXJyZW50 LWFydGljbGUpKQpkNzQ0IDEKYTc0NCAxCiAgICAgICh3cml0ZS1yZWdpb24g MSAocG9pbnQtbWF4KSBnbnVzLXV1LXNhdmVkLWFydGljbGUtbmFtZSB0KQpk NzUyIDMKYTc1NCA0CiAgICAgIChzZXRxIGdudXMtdXUtZGlnZXN0LWZyb20t c3ViamVjdAoJICAgIChjb25zIChjb25zIChtYWlsLWhlYWRlci1mcm9tIGhl YWRlcikKCQkJKG1haWwtaGVhZGVyLXN1YmplY3QgaGVhZGVyKSkKCQkgIGdu dXMtdXUtZGlnZXN0LWZyb20tc3ViamVjdCkpKQpkNzU4IDEKYTc1OCAxCiAg ICAgIChpZiAob3IgKGVxIGluLXN0YXRlICdmaXJzdCkgCmQ3NzAgMgphNzcx IDIKCShpZiAobm90IChlcSBpbi1zdGF0ZSAnZW5kKSkKCSAgICAoc2V0cSBz dGF0ZSAobGlzdCAnbWlkZGxlKSkpKQpkODEyIDIzCmE4MzQgMjQKCShpZiAo cmUtc2VhcmNoLWZvcndhcmQgIl5TdWJqZWN0OiBcXCguKlxcKSQiIG5pbCB0 KQoJICAgIChwcm9nbgoJICAgICAgKHNldHEgc3ViaiAoYnVmZmVyLXN1YnN0 cmluZyAobWF0Y2gtYmVnaW5uaW5nIDEpIChtYXRjaC1lbmQgMSkpKQoJICAg ICAgKHNhdmUtZXhjdXJzaW9uIAoJCShzZXQtYnVmZmVyIChnZXQtYnVmZmVy ICIqZ251cy11dS1wcmUqIikpCgkJKGluc2VydCAoZm9ybWF0ICIgICAlc1xu IiBzdWJqKSkpKSkpCiAgICAgIChpZiAob3IgKGVxIGluLXN0YXRlICdsYXN0 KQoJICAgICAgKGVxIGluLXN0YXRlICdmaXJzdC1hbmQtbGFzdCkpCgkgIChw cm9nbgoJICAgIChzYXZlLWV4Y3Vyc2lvbgoJICAgICAgKHNldC1idWZmZXIg KGdldC1idWZmZXIgIipnbnVzLXV1LXByZSoiKSkKCSAgICAgIChpbnNlcnQg KGZvcm1hdCAiXG5cbiVzXG5cbiIgKG1ha2Utc3RyaW5nIDcwID8tKSkpCgkg ICAgICAod3JpdGUtcmVnaW9uIDEgKHBvaW50LW1heCkgZ251cy11dS1zYXZl ZC1hcnRpY2xlLW5hbWUpKQoJICAgIChzYXZlLWV4Y3Vyc2lvbgoJICAgICAg KHNldC1idWZmZXIgKGdldC1idWZmZXIgIipnbnVzLXV1LWJvZHkqIikpCgkg ICAgICAoZ290by1jaGFyIChwb2ludC1tYXgpKQoJICAgICAgKGluc2VydCAK CSAgICAgICAoY29uY2F0IChzZXRxIGVuZC1zdHJpbmcgKGYlIGxlbmd0aCBn bnVzLXV1LXBvc3QtbGVuZ3RoKSA0KSkKCSAgKHNldHEgcGFydHMgKDErIHBh cnRzKSkpKQpkMTg4MCAyCmExODgxIDIKICAgIChpZiBnbnVzLXV1LXBvc3Qt c2VwYXJhdGUtZGVzY3JpcHRpb24KCShmb3J3YXJkLWxpbmUgLTEpKQpkMTg5 MyAzCmExODk1IDQKICAgICAgKGlmIChhbmQgKG5vdCB0aHJlYWRlZCkgKHJl LXNlYXJjaC1mb3J3YXJkICJeU3ViamVjdDogIiBuaWwgdCkpCgkgIChwcm9n bgoJICAgIChlbmQtb2YtbGluZSkKCSAgICAoaW5zZXJ0IChmb3JtYXQgIiAo MC8lZCkiIHBhcnRzKSkpKQpkMTkwNSAyCmExOTA2IDIKCShpZiAoYW5kIHRo cmVhZGVkIGdudXMtdXUtcG9zdC1tZXNzYWdlLWlkKQoJICAgIChpbnNlcnQg KGZvcm1hdCAiUmVmZXJlbmNlczogJXNcbiIgZ251cy11dS1wb3N0LW1lc3Nh Z2UtaWQpKSkKZDE5MTAgMgphMTkxMSAyCgkoaWYgKD4gMSAoc2V0cSBtaW5s ZW4gKC8gd2hvbGUtbGVuIDIpKSkKCSAgICAoc2V0cSBtaW5sZW4gMSkpCmQx OTE1IDEKYTE5MTUgMQoJCSAobWFrZS1zdHJpbmcgbWlubGVuID8tKSAKZDE5 MjcgMwphMTkyOSAzCgkgICAgKGlmIChvciAoYW5kICg9IGkgMikgZ251cy11 dS1wb3N0LXNlcGFyYXRlLWRlc2NyaXB0aW9uKQoJCSAgICAoYW5kICg9IGkg MSkgKG5vdCBnbnVzLXV1LXBvc3Qtc2VwYXJhdGUtZGVzY3JpcHRpb24pKSkK CQkocmVwbGFjZS1tYXRjaCAiU3ViamVjdDogUmU6ICIpKSkpCmQxOTM4IDIK YTE5MzkgMgoJICAoaWYgKGFuZCAoPSAoMSsgaSkgcGFydHMpICg8IChjb3Vu dC1saW5lcyAocG9pbnQpIChwb2ludC1tYXgpKSA0KSkKCSAgICAgIChmb3J3 YXJkLWxpbmUgLTQpKQpkMTk1MSA1CmExOTU1IDYKCShpZiAocmUtc2VhcmNo LWZvcndhcmQgCgkgICAgIChjb25jYXQgIl4iIChyZWdleHAtcXVvdGUgZ251 cy11dS1wb3N0LWJpbmFyeS1zZXBhcmF0b3IpICIkIikKCSAgICAgbmlsIHQp CgkgICAgKHByb2duIAoJICAgICAgKHJlcGxhY2UtbWF0Y2ggIiIpCgkgICAg ICAoZm9yd2FyZC1saW5lIDEpKSkKZDE5NjEgOQphMTk2OSA5CiAgICAoYW5k IChzZXRxIGJ1ZiAoZ2V0LWJ1ZmZlciBzZW5kLWJ1ZmZlci1uYW1lKSkKCSAo a2lsbC1idWZmZXIgYnVmKSkKICAgIChhbmQgKHNldHEgYnVmIChnZXQtYnVm ZmVyIGVuY29kZWQtYnVmZmVyLW5hbWUpKQoJIChraWxsLWJ1ZmZlciBidWYp KQoKICAgIChpZiAobm90IGdudXMtdXUtcG9zdC1zZXBhcmF0ZS1kZXNjcmlw dGlvbikKCShwcm9nbgoJICAoc2V0LWJ1ZmZlci1tb2RpZmllZC1wIG5pbCkK CSAgKGFuZCAoZmJvdW5kcCAnYnVyeS1idWZmZXIpIChidXJ5LWJ1ZmZlcikp KSkpKQpACgoKMy44CmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgpA CnRleHQKQGQxMTQxIDEKZDExODcgNAphMTE5MCAxCgkJICAgICAgIChmaWxl LWV4aXN0cy1wIHJlc3VsdC1maWxlKSkgCmQxMjE1IDEKZDEyMjcgMQpACgoK My43CmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQ0 MzggMQphNDM4IDEKCWJ1ZiBzdWJqZWN0IGZyb20pCmQ0NDcgMQphNDQ3IDIK ICAgICAgKGlmIChub3QgZnMpCgkgICgpCmQ0NTIgNwphNDU4IDcKCSAgKGFu ZCBmcm9tCgkgICAgICAgKG9yIChzdHJpbmc9IGZyb20gKGNhYXIgZnMpKQoJ CSAgIChzZXRxIGZyb20gbmlsKSkpCgkgIChhbmQgc3ViamVjdAoJICAgICAg IChvciAoc3RyaW5nPSAoZ251cy1zaW1wbGlmeS1zdWJqZWN0LWZ1enp5IChj ZGFyIGZzKSkKCQkJICAgIHN1YmplY3QpCgkJICAgKHNldHEgc3ViamVjdCBu aWwpKSkKZDQ2MCA3CmE0NjYgMgogICAgICAob3Igc3ViamVjdCAoc2V0cSBz dWJqZWN0ICJEaWdlc3RlZCBBcnRpY2xlcyIpKQogICAgICAob3IgZnJvbSAo c2V0cSBmcm9tICJWYXJpb3VzIikpKQpkNDY4IDMKYTQ3MCA0CiAgICAoYW5k IChyZS1zZWFyY2gtZm9yd2FyZCAiXlN1YmplY3Q6ICIpCgkgKHByb2duCgkg ICAoZGVsZXRlLXJlZ2lvbiAocG9pbnQpIChnbnVzLXBvaW50LWF0LWVvbCkp CgkgICAoaW5zZXJ0IHN1YmplY3QpKSkKZDQ3MiAzCmE0NzQgNAogICAgKGFu ZCAocmUtc2VhcmNoLWZvcndhcmQgIl5Gcm9tOiAiKQoJIChwcm9nbgoJICAg KGRlbGV0ZS1yZWdpb24gKHBvaW50KSAoZ251cy1wb2ludC1hdC1lb2wpKQoJ ICAgKGluc2VydCBmcm9tKSkpCkAKCgozLjYKbG9nCkAqKiogZW1wdHkgbG9n IG1lc3NhZ2UgKioqCkAKdGV4dApAZDY1IDIKYTY2IDIKQm90aCB0aGVzZSB2 YXJpYWJsZXMgYXJlIGxpc3RzIG9mIGxpc3RzIHdpdGggdHdvIHN0cmluZyBl bGVtZW50cy4gVGhlCmZpcnN0IHN0cmluZyBpcyBhIHJlZ3VsYXIgZXhwcmVz c2lvbi4gSWYgdGhlIGZpbGUgbmFtZSBtYXRjaGVzIHRoaXMKZDcxIDEKYTcx IDEKYXQgdGhhdCBwb2ludCBpbiB0aGUgY29tbWFuZCBzdHJpbmcuIElmIHRo ZXJlJ3Mgbm8gXCIlc1wiIGluIHRoZQpkNzYgMQphNzYgMQp5b3VyIG5lZWRz LiBGaXJzdCB3ZSBoYXZlIGBnbnVzLXV1LXVzZXItdmlldy1ydWxlcycsIHdo aWNoIGlzIHRoZQpkNzggMgphNzkgMgpmaWxlLiBJZiB0aGlzIHZhcmlhYmxl IGNvbnRhaW5zIG5vIG1hdGNoZXMsIGdudXMtdXUgZXhhbWluZXMgdGhlCmRl ZmF1bHQgcnVsZSB2YXJpYWJsZSBwcm92aWRlZCBpbiB0aGlzIHBhY2thZ2Uu IElmIGdudXMtdXUgZmluZHMgbm8KZDE5MSAxCmExOTEgMQpPbmx5IHRoZSB1 c2VyIHZpZXdpbmcgcnVsZXMgd2lsbCBiZSBjb25zdWx0ZWQuIERlZmF1bHQg aXMgbmlsLiIpCmQyMDEgMQphMjAxIDEKT25seSB0aGUgdXNlciB1bnBhY2tp bmcgY29tbWFuZHMgd2lsbCBiZSBjb25zdWx0ZWQuIERlZmF1bHQgaXMgbmls LiIpCmQyMTAgMQphMjEwIDEKdG8gZ3Vlc3MgYXQgYSBjb250ZW50LXR5cGUg YmFzZWQgb24gZmlsZSBuYW1lIHN1ZmZpeGVzLiBEZWZhdWx0CmQyMjQgMQph MjI0IDEKZmlsZSB3aXRob3V0IGFueSBlbWJlbGxpc2htZW50cy4gVGhlIGRp Z2VzdGluZyBhbG1vc3QgY29uZm9ybXMgdG8gUkZDMTE1MyAtCmQ2ODIgMQph NjgyIDEKICAgICAgKHNldHEgZmlsZXMgKGdudXMtdXUtdW5wYWNrLWZpbGVz IGZpbGVzKSkpCmQ5NDYgMQphOTQ2IDEKICA7OyBsaWtlIHRoYXQsIHJlcGxh Y2VzIHRoZSBsYXN0IHR3byBudW1iZXJzIHdpdGggIlswLTldKyIuIFRoaXMs IGluCmQxMDE5IDIKYTEwMjAgMgogIDs7IG5pbCwgdGhlIGN1cnJlbnQgYXJ0 aWNsZSBuYW1lIHdpbGwgYmUgdXNlZC4gSWYgT05MWS1VTlJFQUQgaXMKICA7 OyBub24tbmlsLCBvbmx5IHVucmVhZCBhcnRpY2xlcyBhcmUgY2hvc2VuLiBJ ZiBETy1OT1QtVFJBTlNMQVRFIGlzCmQxMDU3IDEKYTEwNTcgMQogIDs7IHBy ZXBlbmRpbmcgbG90cyBvZiB6ZXJvZXMgYmVmb3JlIGVhY2ggbnVtYmVyLiBU aGlzIGlzIHRvIGVhc2UgbGF0ZXIKZDEwNTkgMQphMTA1OSAxCiAgOzsgZGVj b2RlZCBpbi4gUmV0dXJucyB0aGUgbGlzdCBvZiBleHBhbmRlZCBzdHJpbmdz LgpkMTA5NSAyCmExMDk2IDIKOzsgcGFyYW1ldGVyIGlzIHRoZSBhcnRpY2xl IGJ1ZmZlci4gVGhlIGZ1bmN0aW9uIHNob3VsZCBsZWF2ZSB0aGUKOzsgcmVz dWx0LCBpZiBhbnksIGluIHRoaXMgYnVmZmVyLiBNb3N0IHRyZWF0bWVudCBm dW5jdGlvbnMgd2lsbCBqdXN0CmQxMTAyIDEKYTExMDIgMQo7OyBUaGUgZnVu Y3Rpb24gc2hvdWxkIHJldHVybiBhIGxpc3QuIFRoZSBsaXN0IG1heSBjb250 YWluIHRoZQpkMTQ0NiAxCmExNDQ2IDEKICA7OyBVbnBhY2tzIGFuIGFyY2hp dmUuIFJldHVybnMgdCBpZiB1bnBhY2tpbmcgaXMgc3VjY2Vzc2Z1bC4KZDE2 NjEgMQphMTY2MSAxCjs7IHBhcmFtZXRlcnM6IFBBVEgtTkFNRSBhbmQgRklM RS1OQU1FLiAoRS5nLiAiL2hvbWUvZ2FnYS9zcGlyYWwuanBnIgpkMTY4NSAx CmExNjg1IDEKZm9sbG93IHRocmVhZHMgd2hlbiBjb2xsZWN0aW5nIHV1ZW5j b2RlZCBhcnRpY2xlcy4gKFdlbGwsIEkgaGF2ZSBzZWVuCmQxNjkxIDEKYTE2 OTEgMQpUaGUgZmlyc3QgYXJ0aWNsZSB3aWxsIHR5cGljYWxseSBiZSBudW1i ZXJlZCAoMC94KS4gSWYgdGhpcyB2YXJpYWJsZQpkMTY5MyAxCmExNjkzIDEK YmVnaW5uaW5nIG9mIHRoZSBmaXJzdCBhcnRpY2xlLCB3aGljaCB3aWxsIGJl IG51bWJlcmVkICgxL3gpLiBEZWZhdWx0IApkMTgxNCAxCmExODE0IDEKOzsg dGhlIGN1cnJlbnQgYnVmZmVyLiBSZXR1cm5zIHRoZSBmaWxlIG5hbWUgdGhl IHVzZXIgZ2F2ZS4KQAoKCjMuNQpsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2Fn ZSAqKioKQAp0ZXh0CkBkMjczIDMxCkAKCgoyLjI5CmxvZwpAKioqIGVtcHR5 IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGE0NDMgMgogICAgKHNldHEgZ251 cy1uZXdzZ3JvdXAtcHJvY2Vzc2FibGUKCSAgKGdudXMtc3VtbWFyeS13b3Jr LWFydGljbGVzIG4pKQpkNDQ1IDEKYTQ0NSAxCiAgICAoZ251cy11dS1kZWNv ZGUtc2F2ZSBuaWwgZmlsZSkKZDc5MCA4CmE3OTcgOAoJCShpZiAocmUtc2Vh cmNoLWZvcndhcmQgaGVhZGxpbmUgbmlsIHQpCgkJICAgIChzZXRxIHNvcnRo ZWFkIAoJCQkgIChjb25jYXQgc29ydGhlYWQKCQkJCSAgKGJ1ZmZlci1zdWJz dHJpbmcgCgkJCQkgICAobWF0Y2gtYmVnaW5uaW5nIDApCgkJCQkgICAob3Ig KGFuZCAocmUtc2VhcmNoLWZvcndhcmQgIl5bXiBcdF0iIG5pbCB0KQoJCQkJ CSAgICAoMS0gKHBvaW50KSkpCgkJCQkgICAgICAgKHByb2duIChmb3J3YXJk LWxpbmUgMSkgKHBvaW50KSkpKSkpKSkpCkAKCgoyLjI4CmxvZwpAKioqIGVt cHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQxNDk4IDEKYTE0OTggMQoJ IGZpbGUgZGlkLXVucGFjayBmaWxlLWVudHJ5KQpkMTUwMSAxCmExNTAxIDEK ICAgICAgKHNldHEgZmlsZSAoY2RyIChzZXRxIGZpbGUtZW50cnkgKGFzc3Eg J25hbWUgKGNhciBmaWxlcykpKSkpCkAKCgoyLjI3CmxvZwpAKioqIGVtcHR5 IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQ2NjggMQphNjY4IDEKICAod2hl biAoYW5kIHNjYW4gY2RpcgpACgoKMi4yNgpsb2cKQCoqKiBlbXB0eSBsb2cg bWVzc2FnZSAqKioKQAp0ZXh0CkBkNDQ0IDIKZDQ0NyAxCmE0NDcgMQogICAg KGdudXMtdXUtZGVjb2RlLXNhdmUgbiBmaWxlKQpACgoKMi4yNQpsb2cKQCoq KiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkNDU1IDIKYTQ1NiAy Cgkoc2V0cSBmcm9tIChjYXIgKGNhciBmcykpCgkgICAgICBzdWJqZWN0IChn bnVzLXNpbXBsaWZ5LXN1YmplY3QtZnV6enkgKGNkciAoY2FyIGZzKSkpCmQ0 NjAgMQphNDYwIDEKCSAgICAgICAob3IgKHN0cmluZz0gZnJvbSAoY2FyIChj YXIgZnMpKSkKZDQ2MyAxCmE0NjMgMQoJICAgICAgIChvciAoc3RyaW5nPSAo Z251cy1zaW1wbGlmeS1zdWJqZWN0LWZ1enp5IChjZHIgKGNhciBmcykpKQpk MTA2MyAxCmExMDYzIDEKCShpbnNlcnQgKGNhciAoY2FyIHN0cmluZy1saXN0 KSkpCmQxMzc5IDQKYTEzODIgMgoJCSAgICAgKGlmIChtZW1xICdlbmQgc3Rh dGUpCgkJCSAoYWNjZXB0LXByb2Nlc3Mtb3V0cHV0IGdudXMtdXUtdXVkZWNv ZGUtcHJvY2VzcykpKQpkMTQ0MSAxCmExNDQxIDEKCSAgIChzZXRxIGFjdGlv biAoY2FyIChjZHIgcnVsZSkpKSkpKQpACgoKMi4yNApsb2cKQCoqKiBlbXB0 eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMjczIDEKYTI3MyAxCihkZWZ2 YXIgZ251cy11dS1kZWZhdWx0LWRpciBkZWZhdWx0LWRpcmVjdG9yeSkKZDMz NyAxCmEzMzcgMQogIChnbnVzLXV1LWRlY29kZS13aXRoLW1ldGhvZCAnZ251 cy11dS11dXN0cmlwLWFydGljbGUgbiBkaXIpKQpkMzQyIDEKYTM0MiAxCiAg KGdudXMtdXUtZGVjb2RlLXdpdGgtbWV0aG9kICdnbnVzLXV1LXVuc2hhci1h cnRpY2xlIG4gbmlsIG5pbCAnc2NhbikpCmQzNTIgMQphMzUyIDEKICAoZ251 cy11dS1kZWNvZGUtd2l0aC1tZXRob2QgJ2dudXMtdXUtdW5zaGFyLWFydGlj bGUgbiBkaXIgbmlsICdzY2FuKSkKZDY0NSAyCmE2NDYgMgogIChnbnVzLXV1 LWRlY29kZS13aXRoLW1ldGhvZCAnZ251cy11dS1kZWNvZGUtcG9zdHNjcmlw dC1hcnRpY2xlIG4gZGlyKSkKCmQ2NjEgMgphNjYyIDEKKGRlZnVuIGdudXMt dXUtZGVjb2RlLXdpdGgtbWV0aG9kIChtZXRob2QgbiAmb3B0aW9uYWwgc2F2 ZSBub3QtaW5zZXJ0IHNjYW4pCmQ2NjUgNApACgoKMi4yMwpsb2cKQCoqKiBl bXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkNjc3IDIKYTY3OCAyCjs7 IFJldHVybiBhIGxpc3Qgb2YgZmlsZXMgaW4gZGlyLgooZGVmdW4gZ251cy11 dS1zY2FuLWRpcmVjdG9yeSAoZGlyKQpkNjgwIDExCmE2OTAgMTEKCWRpcnMg b3V0KQogICAgKHdoaWxlIGZpbGVzCiAgICAgIChjb25kICgoc3RyaW5nLW1h dGNoICIvXFwuXFwuPyQiIChjYXIgZmlsZXMpKSkKCSAgICAoKGZpbGUtZGly ZWN0b3J5LXAgKGNhciBmaWxlcykpCgkgICAgIChzZXRxIGRpcnMgKGNvbnMg KGNhciBmaWxlcykgZGlycykpKQoJICAgICh0IChzZXRxIG91dCAoY29ucyAo bGlzdCAoY29ucyAnbmFtZSAoY2FyIGZpbGVzKSkKCQkJCSAgICAgKGNvbnMg J2FydGljbGUgZ251cy1jdXJyZW50LWFydGljbGUpKQoJCQkgICAgICAgb3V0 KSkpKQogICAgICAoc2V0cSBmaWxlcyAoY2RyIGZpbGVzKSkpCiAgICAoYXBw bHkgJ25jb25jIG91dCAobWFwY2FyIChsYW1iZGEgKGQpIChnbnVzLXV1LXNj YW4tZGlyZWN0b3J5IGQpKQoJCQkgICAgICBkaXJzKSkpKQpkNjkzIDEKZDY5 NSAxMwphNzA3IDE0Cgl0by1maWxlIGZpbGUpCiAgICAod2hpbGUgZmlsZXMK ICAgICAgKGFuZCAKICAgICAgIChzZXRxIGZpbGUgKGNkciAoYXNzcSAnbmFt ZSAoY2FyIGZpbGVzKSkpKQogICAgICAgKGZpbGUtZXhpc3RzLXAgZmlsZSkK ICAgICAgIChwcm9nbgoJIChzZXRxIHRvLWZpbGUgKGlmIChmaWxlLWRpcmVj dG9yeS1wIGRpcikKCQkJICAgKGNvbmNhdCBkaXIgKGZpbGUtbmFtZS1ub25k aXJlY3RvcnkgZmlsZSkpCgkJCSBkaXIpKQoJIChhbmQgKG9yIChub3QgKGZp bGUtZXhpc3RzLXAgdG8tZmlsZSkpCgkJICAoZ251cy15LW9yLW4tcCAoZm9y bWF0ICIlcyBleGlzdHM7IG92ZXJ3cml0ZT8gIgoJCQkJCSB0by1maWxlKSkp CgkgICAgICAoY29weS1maWxlIGZpbGUgdG8tZmlsZSB0IHQpKSkpCiAgICAg IChzZXRxIGZpbGVzIChjZHIgZmlsZXMpKSkKZDE2MTYgOAphMTYyMyA5CiAg ICAod2hpbGUgZ251cy11dS1nZW5lcmF0ZWQtZmlsZS1saXN0CiAgICAgIChz ZXRxIGZpbGUgKGNhciBnbnVzLXV1LWdlbmVyYXRlZC1maWxlLWxpc3QpKQog ICAgICAoc2V0cSBnbnVzLXV1LWdlbmVyYXRlZC1maWxlLWxpc3QgKGNkciBn bnVzLXV1LWdlbmVyYXRlZC1maWxlLWxpc3QpKQogICAgICAoaWYgKG5vdCAo c3RyaW5nLW1hdGNoICIvXFwuW1xcLl0/JCIgZmlsZSkpCgkgIChwcm9nbgoJ ICAgIChpZiAoZmlsZS1kaXJlY3RvcnktcCBmaWxlKQoJCShzZXRxIGRpcnMg KGNvbnMgZmlsZSBkaXJzKSkKCSAgICAgIChpZiAoZmlsZS1leGlzdHMtcCBm aWxlKQoJCSAgKGRlbGV0ZS1maWxlIGZpbGUpKSkpKSkKZDE2MjUgMgphMTYy NiA3CiAgICAod2hpbGUgZGlycwogICAgICAoc2V0cSBmaWxlIChjYXIgZGly cykpCiAgICAgIChzZXRxIGRpcnMgKGNkciBkaXJzKSkKICAgICAgKGlmIChm aWxlLWRpcmVjdG9yeS1wIGZpbGUpCgkgIChpZiAoc3RyaW5nLW1hdGNoICIv JCIgZmlsZSkKCSAgICAgIChkZWxldGUtZGlyZWN0b3J5IChzdWJzdHJpbmcg ZmlsZSAwIChtYXRjaC1iZWdpbm5pbmcgMCkpKQoJICAgIChkZWxldGUtZGly ZWN0b3J5IGZpbGUpKSkpKSkKQAoKCjIuMjIKbG9nCkAqKiogZW1wdHkgbG9n IG1lc3NhZ2UgKioqCkAKdGV4dApAZDc2NSAxCmE3NjUgMQoJICAgICAgKHNl dC10ZXh0LXByb3BlcnRpZXMgKHBvaW50LW1pbikgKHBvaW50LW1heCkgbmls KQpACgoKMi4yMQpsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0 ZXh0CkBkNDQgMQphNDQgMQogICAgKCJcXC5taWQ/aSQiICJwbGF5bWlkaSAt ZiIpCkAKCgoyLjIwCmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgpA CnRleHQKQGQ0NCAxCkAKCgoyLjE5CmxvZwpAKioqIGVtcHR5IGxvZyBtZXNz YWdlICoqKgpACnRleHQKQGQyMSAzCmEyMyAyCjs7IGFsb25nIHdpdGggR05V IEVtYWNzOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUg dG8KOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgNjc1IE1hc3Mg QXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCmQ5MDQgMgphOTA1IDMK CQkJCSAgKGNvbnMgJ2V4ZWN1dGUgKGlmIChzdHJpbmctbWF0Y2ggIiUiIGFj dGlvbikKCQkJCQkJICAgICAoZm9ybWF0IGFjdGlvbiBuYW1lKQoJCQkJCQkg ICAoY29uY2F0IGFjdGlvbiAiICIgbmFtZSkpKSkKQAoKCjIuMTgKbG9nCkAq KiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4dApAZDEyMjMgMgphMTIy NCAxCiAgICAodW5sZXNzIHJlc3VsdC1maWxlcwpkMTMwNCAxCmExMzA0IDEK CQkJCQk7IFJlcGxhY2UgYW55IHNsYXNoZXMgYW5kIHNwYWNlcyBpbiBmaWxl IG5hbWVzIGJlZm9yZSBkZWNvZGluZwpACgoKMi4xNwpsb2cKQCoqKiBlbXB0 eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBACgoKMi4xNgpsb2cKQCoqKiBl bXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMTE0NSAzCmExMTQ3IDEK ICAgICAgKG1lc3NhZ2UgIkdldHRpbmcgYXJ0aWNsZSAlZCwgJXMiIGFydGlj bGUgKGdudXMtdXUtcGFydC1udW1iZXIgYXJ0aWNsZSkpCkAKCgoyLjE1Cmxv ZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQxODMgMQph MTgzIDEKICAiKk5vbi1uaWwgbWVhbnMgdGhhdCBnbnVzLXV1IHdvbid0IHBl ZWsgaW5zaWRlIGFyY2hpdmVzIGxvb2tpbmcgZm9yIGZpbGVzIHRvIGRpc3Bh eS4gCmQyODEgMQpkNTY3IDE1CkAKCgoyLjE0CmxvZwpAKioqIGVtcHR5IGxv ZyBtZXNzYWdlICoqKgpACnRleHQKQGQyIDEKYTIgMQo7OyBDb3B5cmlnaHQg KEMpIDE5ODUsODYsODcsOTMsOTQsOTUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCmQyNzYgNDEKYTMxNiA0NgooZGVmdmFyIGdudXMtdXUtZXh0 cmFjdC1tYXAgbmlsKQooZGVmdmFyIGdudXMtdXUtZXh0cmFjdC12aWV3LW1h cCBuaWwpCihkZWZ2YXIgZ251cy11dS1tYXJrLW1hcCBuaWwpCgooZGVmaW5l LXByZWZpeC1jb21tYW5kICdnbnVzLXV1LW1hcmstbWFwKQooZGVmaW5lLWtl eSBnbnVzLXN1bW1hcnktbWFyay1tYXAgIlAiICdnbnVzLXV1LW1hcmstbWFw KQooZGVmaW5lLWtleSBnbnVzLXV1LW1hcmstbWFwICJwIiAnZ251cy1zdW1t YXJ5LW1hcmstYXMtcHJvY2Vzc2FibGUpCihkZWZpbmUta2V5IGdudXMtdXUt bWFyay1tYXAgInUiICdnbnVzLXN1bW1hcnktdW5tYXJrLWFzLXByb2Nlc3Nh YmxlKQooZGVmaW5lLWtleSBnbnVzLXV1LW1hcmstbWFwICJVIiAnZ251cy1z dW1tYXJ5LXVubWFyay1hbGwtcHJvY2Vzc2FibGUpCihkZWZpbmUta2V5IGdu dXMtdXUtbWFyay1tYXAgInMiICdnbnVzLXV1LW1hcmstc2VyaWVzKQooZGVm aW5lLWtleSBnbnVzLXV1LW1hcmstbWFwICJyIiAnZ251cy11dS1tYXJrLXJl Z2lvbikKKGRlZmluZS1rZXkgZ251cy11dS1tYXJrLW1hcCAiUiIgJ2dudXMt dXUtbWFyay1ieS1yZWdleHApCihkZWZpbmUta2V5IGdudXMtdXUtbWFyay1t YXAgInQiICdnbnVzLXV1LW1hcmstdGhyZWFkKQooZGVmaW5lLWtleSBnbnVz LXV1LW1hcmstbWFwICJUIiAnZ251cy11dS11bm1hcmstdGhyZWFkKQooZGVm aW5lLWtleSBnbnVzLXV1LW1hcmstbWFwICJhIiAnZ251cy11dS1tYXJrLWFs bCkKKGRlZmluZS1rZXkgZ251cy11dS1tYXJrLW1hcCAiYiIgJ2dudXMtdXUt bWFyay1idWZmZXIpCihkZWZpbmUta2V5IGdudXMtdXUtbWFyay1tYXAgIlMi ICdnbnVzLXV1LW1hcmstc3BhcnNlKQoKKGRlZmluZS1wcmVmaXgtY29tbWFu ZCAnZ251cy11dS1leHRyYWN0LW1hcCkKKGRlZmluZS1rZXkgZ251cy1zdW1t YXJ5LW1vZGUtbWFwICJYIiAnZ251cy11dS1leHRyYWN0LW1hcCkKOzsoZGVm aW5lLWtleSBnbnVzLXV1LWV4dHJhY3QtbWFwICJ4IiAnZ251cy11dS1leHRy YWN0LWFueSkKOzsoZGVmaW5lLWtleSBnbnVzLXV1LWV4dHJhY3QtbWFwICJt IiAnZ251cy11dS1leHRyYWN0LW1pbWUpCihkZWZpbmUta2V5IGdudXMtdXUt ZXh0cmFjdC1tYXAgInUiICdnbnVzLXV1LWRlY29kZS11dSkKKGRlZmluZS1r ZXkgZ251cy11dS1leHRyYWN0LW1hcCAiVSIgJ2dudXMtdXUtZGVjb2RlLXV1 LWFuZC1zYXZlKQooZGVmaW5lLWtleSBnbnVzLXV1LWV4dHJhY3QtbWFwICJz IiAnZ251cy11dS1kZWNvZGUtdW5zaGFyKQooZGVmaW5lLWtleSBnbnVzLXV1 LWV4dHJhY3QtbWFwICJTIiAnZ251cy11dS1kZWNvZGUtdW5zaGFyLWFuZC1z YXZlKQooZGVmaW5lLWtleSBnbnVzLXV1LWV4dHJhY3QtbWFwICJvIiAnZ251 cy11dS1kZWNvZGUtc2F2ZSkKKGRlZmluZS1rZXkgZ251cy11dS1leHRyYWN0 LW1hcCAiTyIgJ2dudXMtdXUtZGVjb2RlLXNhdmUpCihkZWZpbmUta2V5IGdu dXMtdXUtZXh0cmFjdC1tYXAgImIiICdnbnVzLXV1LWRlY29kZS1iaW5oZXgp CihkZWZpbmUta2V5IGdudXMtdXUtZXh0cmFjdC1tYXAgIkIiICdnbnVzLXV1 LWRlY29kZS1iaW5oZXgpCihkZWZpbmUta2V5IGdudXMtdXUtZXh0cmFjdC1t YXAgInAiICdnbnVzLXV1LWRlY29kZS1wb3N0c2NyaXB0KQooZGVmaW5lLWtl eSBnbnVzLXV1LWV4dHJhY3QtbWFwICJQIiAnZ251cy11dS1kZWNvZGUtcG9z dHNjcmlwdC1hbmQtc2F2ZSkKCihkZWZpbmUtcHJlZml4LWNvbW1hbmQgJ2du dXMtdXUtZXh0cmFjdC12aWV3LW1hcCkKKGRlZmluZS1rZXkgZ251cy11dS1l eHRyYWN0LW1hcCAidiIgJ2dudXMtdXUtZXh0cmFjdC12aWV3LW1hcCkKKGRl ZmluZS1rZXkgZ251cy11dS1leHRyYWN0LXZpZXctbWFwICJ1IiAnZ251cy11 dS1kZWNvZGUtdXUtdmlldykKKGRlZmluZS1rZXkgZ251cy11dS1leHRyYWN0 LXZpZXctbWFwICJVIiAnZ251cy11dS1kZWNvZGUtdXUtYW5kLXNhdmUtdmll dykKKGRlZmluZS1rZXkgZ251cy11dS1leHRyYWN0LXZpZXctbWFwICJzIiAn Z251cy11dS1kZWNvZGUtdW5zaGFyLXZpZXcpCihkZWZpbmUta2V5IGdudXMt dXUtZXh0cmFjdC12aWV3LW1hcCAiUyIgJ2dudXMtdXUtZGVjb2RlLXVuc2hh ci1hbmQtc2F2ZS12aWV3KQooZGVmaW5lLWtleSBnbnVzLXV1LWV4dHJhY3Qt dmlldy1tYXAgIm8iICdnbnVzLXV1LWRlY29kZS1zYXZlLXZpZXcpCihkZWZp bmUta2V5IGdudXMtdXUtZXh0cmFjdC12aWV3LW1hcCAiTyIgJ2dudXMtdXUt ZGVjb2RlLXNhdmUtdmlldykKKGRlZmluZS1rZXkgZ251cy11dS1leHRyYWN0 LXZpZXctbWFwICJiIiAnZ251cy11dS1kZWNvZGUtYmluaGV4LXZpZXcpCihk ZWZpbmUta2V5IGdudXMtdXUtZXh0cmFjdC12aWV3LW1hcCAiQiIgJ2dudXMt dXUtZGVjb2RlLWJpbmhleC12aWV3KQooZGVmaW5lLWtleSBnbnVzLXV1LWV4 dHJhY3Qtdmlldy1tYXAgInAiICdnbnVzLXV1LWRlY29kZS1wb3N0c2NyaXB0 LXZpZXcpCihkZWZpbmUta2V5IGdudXMtdXUtZXh0cmFjdC12aWV3LW1hcCAi UCIgJ2dudXMtdXUtZGVjb2RlLXBvc3RzY3JpcHQtYW5kLXNhdmUtdmlldykK CmQ0OTAgMQphNDkwIDEKKGRlZnVuIGdudXMtdXUtbWFyay1ieS1yZWdleHAg KHJlZ2V4cCkKZDQ5NiAzCmE0OTggMgogICAgICAoZ251cy1zdW1tYXJ5LXNl dC1wcm9jZXNzLW1hcmsgKGNhciBhcnRpY2xlcykpCiAgICAgIChzZXRxIGFy dGljbGVzIChjZHIgYXJ0aWNsZXMpKSkKZDUwMiA1CmQ1MTggMQphNTE4IDEK KGRlZnVuIGdudXMtdXUtbWFyay1yZWdpb24gKGJlZyBlbmQpCmQ1MjUgMwph NTI3IDEKICAgICAgKGdudXMtc3VtbWFyeS1zZXQtcHJvY2Vzcy1tYXJrIChn bnVzLXN1bW1hcnktYXJ0aWNsZS1udW1iZXIpKQpkNTMxIDUKZDU0MSA1CmQ1 OTYgOAphNjAzIDcKICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAo bGV0IChudW1iZXIpCiAgICAgICh3aGlsZSAoYW5kIChub3QgKGVvYnApKSAK CQkgIChzZXRxIG51bWJlciAoZ251cy1zdW1tYXJ5LWFydGljbGUtbnVtYmVy KSkpCgkoaWYgKG5vdCAobWVtcSBudW1iZXIgZ251cy1uZXdzZ3JvdXAtcHJv Y2Vzc2FibGUpKQoJICAgIChzYXZlLWV4Y3Vyc2lvbiAoZ251cy11dS1tYXJr LXNlcmllcykpKQoJKGZvcndhcmQtbGluZSAxKSkpKQpACgoKMi4xMwpsb2cK QCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMTE2NyAyCmEx MTY4IDIKICAgICAgKGFuZCAob3IgKGVxIHN0YXRlICdsYXN0KSAoZXEgc3Rh dGUgJ2ZpcnN0LWFuZC1sYXN0KQoJICAgICAgIChub3QgKG1lbXEgJ2VuZCBw cm9jZXNzLXN0YXRlKSkpCkAKCgoyLjEyCmxvZwpAKioqIGVtcHR5IGxvZyBt ZXNzYWdlICoqKgpACnRleHQKQGQxOTUgNgpkODU0IDIKYTg1NSAxCgkgIChz ZXRxIGZpbGUtbmFtZSAoY29uY2F0IGdudXMtdXUtd29yay1kaXIgKGNkciBn bnVzLWFydGljbGUtY3VycmVudCkgIi5wcyIpKQpkODU3IDEKYTg1NyA0Cgkg IChzZXRxIHN0YXRlIChsaXN0IGZpbGUtbmFtZSdiZWdpbiAnZW5kKSkKCgkg ICkpCiAgICAgICkKZDEwOTkgMgphMTEwMCAxCgloYXMtYmVlbi1iZWdpbiBh cnRpY2xlIHJlc3VsdC1maWxlIHJlc3VsdC1maWxlcyBwcm9jZXNzLXN0YXRl KQphMTEwMSA3CiAgICAoaWYgKG5vdCAoZ251cy1zZXJ2ZXItb3BlbmVkIGdu dXMtY3VycmVudC1zZWxlY3QtbWV0aG9kKSkKCShwcm9nbgoJICAoZ251cy1z dGFydC1uZXdzLXNlcnZlcikKCSAgKGdudXMtcmVxdWVzdC1ncm91cCBnbnVz LW5ld3Nncm91cC1uYW1lKSkpCgogICAgKHNldHEgZ251cy11dS1oYXMtYmVl bi1ncmFiYmVkIG5pbCkKCmQxMTA3IDcKYTExMTMgOAogICAgICAoc2V0cSBh cnRpY2xlIChjYXIgYXJ0aWNsZXMpKQogICAgICAoc2V0cSBhcnRpY2xlcyAo Y2RyIGFydGljbGVzKSkKICAgICAgKHNldHEgZ251cy11dS1oYXMtYmVlbi1n cmFiYmVkIChjb25zIGFydGljbGUgZ251cy11dS1oYXMtYmVlbi1ncmFiYmVk KSkKCiAgICAgIChpZiAoZXEgYXJ0aWNsZXMgKCkpIAoJICAoaWYgKGVxIHN0 YXRlICdmaXJzdCkKCSAgICAgIChzZXRxIHN0YXRlICdmaXJzdC1hbmQtbGFz dCkKCSAgICAoc2V0cSBzdGF0ZSAnbGFzdCkpKQpkMTExNyAyCmQxMTI3IDEK ZDExMzAgMzgKYTExNjcgMjIKICAgICAgKGlmIChvciAobWVtcSAnYmVnaW4g cHJvY2Vzcy1zdGF0ZSkKCSAgICAgIChhbmQgKG9yIChlcSBzdGF0ZSAnZmly c3QpIChlcSBzdGF0ZSAnZmlyc3QtYW5kLWxhc3QpKQoJCSAgIChtZW1xICdv ayBwcm9jZXNzLXN0YXRlKSkpCgkgIChwcm9nbgoJICAgIChpZiBoYXMtYmVl bi1iZWdpbgoJCShpZiAoYW5kIHJlc3VsdC1maWxlIChmaWxlLWV4aXN0cy1w IHJlc3VsdC1maWxlKSkgCgkJICAgIChkZWxldGUtZmlsZSByZXN1bHQtZmls ZSkpKQoJICAgIChpZiAobWVtcSAnYmVnaW4gcHJvY2Vzcy1zdGF0ZSkKCQko c2V0cSByZXN1bHQtZmlsZSAoY2FyIHByb2Nlc3Mtc3RhdGUpKSkKCSAgICAo c2V0cSBoYXMtYmVlbi1iZWdpbiB0KSkpCgogICAgICAoaWYgKG1lbXEgJ2Vu ZCBwcm9jZXNzLXN0YXRlKQoJICAocHJvZ24KCSAgICAoc2V0cSBnbnVzLXV1 LWhhcy1iZWVuLWdyYWJiZWQgbmlsKQoJICAgIChzZXRxIHJlc3VsdC1maWxl cyAoY29ucyAobGlzdCAoY29ucyAnbmFtZSByZXN1bHQtZmlsZSkKCQkJCQkg ICAoY29ucyAnYXJ0aWNsZSBhcnRpY2xlKSkKCQkJCSAgICAgcmVzdWx0LWZp bGVzKSkKCSAgICAoc2V0cSBoYXMtYmVlbi1iZWdpbiBuaWwpCgkgICAgKGFu ZCBsaW1pdCAoPSAobGVuZ3RoIHJlc3VsdC1maWxlcykgbGltaXQpCgkJIChz ZXRxIGFydGljbGVzIG5pbCkpKSkKCiAgICAgIChpZiAoYW5kIChvciAoZXEg c3RhdGUgJ2xhc3QpIChlcSBzdGF0ZSAnZmlyc3QtYW5kLWxhc3QpKQpkMTE2 OSA5CmExMTc3IDcKCSAgKGlmIChhbmQgcmVzdWx0LWZpbGUgKGZpbGUtZXhp c3RzLXAgcmVzdWx0LWZpbGUpKQoJICAgICAgKGRlbGV0ZS1maWxlIHJlc3Vs dC1maWxlKSkpCgogICAgICAoaWYgKG5vdCAobWVtcSAnd3JvbmctdHlwZSBw cm9jZXNzLXN0YXRlKSkKCSAgKCkKCShpZiBnbnVzLXV1LXVubWFyay1hcnRp Y2xlcy1ub3QtZGVjb2RlZAoJICAgIChnbnVzLXN1bW1hcnktdGljay1hcnRp Y2xlIGFydGljbGUgdCkpKQpkMTE3OSAxCmQxMTkwIDE0CmExMjAzIDIKICAg IDs7IE1ha2Ugc3VyZSB0aGUgbGFzdCBhcnRpY2xlIGlzIHB1dCBpbiB0aGUg YXJ0aWNsZSBidWZmZXIgJiBmaXgKICAgIDs7IHdpbmRvd3MgZXRjLgphMTIw NCAxMwogICAgKGlmIHJlc3VsdC1maWxlcwoJKCkKICAgICAgKGlmIChub3Qg aGFzLWJlZW4tYmVnaW4pCgkgIChpZiAobm90IG5vLWVycm9ycykgKG1lc3Nh Z2UgIldyb25nIHR5cGUgZmlsZSIpKQoJKGlmIChtZW1xICdlcnJvciBwcm9j ZXNzLXN0YXRlKQoJICAgIChzZXRxIHJlc3VsdC1maWxlcyBuaWwpCgkgIChp ZiAobm90IChvciAobWVtcSAnb2sgcHJvY2Vzcy1zdGF0ZSkgCgkJICAgICAg IChtZW1xICdlbmQgcHJvY2Vzcy1zdGF0ZSkpKQoJICAgICAgKHByb2duCgkJ KGlmIChub3Qgbm8tZXJyb3JzKQoJCSAgICAobWVzc2FnZSAiRW5kIG9mIGFy dGljbGVzIHJlYWNoZWQgYmVmb3JlIGVuZCBvZiBmaWxlIikpCgkJKHNldHEg cmVzdWx0LWZpbGVzIG5pbCkpCgkgICAgKGdudXMtdXUtdW5tYXJrLWxpc3Qt b2YtZ3JhYmJlZCkpKSkpCmQxMjA2IDE4CkAKCgoyLjExCmxvZwpAKioqIGVt cHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQ2MzYgMgphNjM3IDEKICAg IChvciBub3QtaW5zZXJ0IChnbnVzLXN1bW1hcnktaW5zZXJ0LXBzZXVkb3Mg ZmlsZXMgc2F2ZSkpKSkKQAoKCjIuMTAKbG9nCkAqKiogZW1wdHkgbG9nIG1l c3NhZ2UgKioqCkAKdGV4dApAZDcwMyAxCmQ3MzIgMQphNzMyIDEKCSAgICA7 OyBRdW90ZSBhbGwgbGluZXMgdGhhdCBiZWdpbiB3aXRoIGEgZGFzaC4KZDcz NCA0CmE3MzcgMgoJICAgICAgKHdoaWxlIChyZS1zZWFyY2gtZm9yd2FyZCAi Xi0iIG5pbCB0KQoJCShyZXBsYWNlLW1hdGNoICItIC0iKSkpCkAKCgoyLjkK bG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4dApAQAoKCjIu OApsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkNjMy IDIKYTYzMyAxCiAgICAoc2V0cSBmaWxlcyAoZ251cy11dS11bnBhY2stZmls ZXMgZmlsZXMpKQpACgoKMi43CmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdl ICoqKgpACnRleHQKQGQxMDkwIDEKYTEwOTAgMgoJaGFzLWJlZW4tYmVnaW4g YXJ0aWNsZSByZXN1bHQtZmlsZSByZXN1bHQtZmlsZXMgcHJvY2Vzcy1zdGF0 ZSAKCWFydGljbGUtYnVmZmVyKQpkMTExNCAxMAphMTEyMyAyMgoKICAgICAg KGlmIChub3QgKD0gKG9yIGdudXMtY3VycmVudC1hcnRpY2xlIDApIGFydGlj bGUpKQoJICAobGV0ICgobm50cC1hc3luYy1udW1iZXIgbmlsKSkKCSAgICAo c2F2ZS1leGN1cnNpb24KCSAgICAgIChzZXQtYnVmZmVyIG5udHAtc2VydmVy LWJ1ZmZlcikKCSAgICAgIChnbnVzLXJlcXVlc3QtYXJ0aWNsZS10aGlzLWJ1 ZmZlciBhcnRpY2xlIGdudXMtbmV3c2dyb3VwLW5hbWUpKQoJICAgIChzZXRx IGdudXMtbGFzdC1hcnRpY2xlIGdudXMtY3VycmVudC1hcnRpY2xlKQoJICAg IChzZXRxIGdudXMtY3VycmVudC1hcnRpY2xlIGFydGljbGUpCgkgICAgKHNl dHEgZ251cy1hcnRpY2xlLWN1cnJlbnQgKGNvbnMgZ251cy1uZXdzZ3JvdXAt bmFtZSBhcnRpY2xlKSkKCSAgICAoaWYgKHN0cmluZ3Agbm50cC1zZXJ2ZXIt YnVmZmVyKQoJCShzZXRxIGFydGljbGUtYnVmZmVyIG5udHAtc2VydmVyLWJ1 ZmZlcikKCSAgICAgIChzZXRxIGFydGljbGUtYnVmZmVyIChidWZmZXItbmFt ZSBubnRwLXNlcnZlci1idWZmZXIpKSkpCgkoZ251cy1zdW1tYXJ5LXN0b3At cGFnZS1icmVha2luZykKCShzZXRxIGFydGljbGUtYnVmZmVyIGdudXMtYXJ0 aWNsZS1idWZmZXIpKQoKICAgICAgKGJ1ZmZlci1kaXNhYmxlLXVuZG8gYXJ0 aWNsZS1idWZmZXIpCiAgICAgIDs7IE1hcmsgYXJ0aWNsZSBhcyByZWFkLgog ICAgICAoYW5kIChtZW1xIGFydGljbGUgZ251cy1uZXdzZ3JvdXAtcHJvY2Vz c2FibGUpCgkgICAoZ251cy1zdW1tYXJ5LXJlbW92ZS1wcm9jZXNzLW1hcmsg YXJ0aWNsZSkpCiAgICAgIChydW4taG9va3MgJ2dudXMtbWFyay1hcnRpY2xl LWhvb2spCgogICAgICAoc2V0cSBwcm9jZXNzLXN0YXRlIChmdW5jYWxsIHBy b2Nlc3MtZnVuY3Rpb24gYXJ0aWNsZS1idWZmZXIgc3RhdGUpKQphMTE2NyAx MgoKICAgIChpZiAobm90IChzdHJpbmc9IGFydGljbGUtYnVmZmVyIGdudXMt YXJ0aWNsZS1idWZmZXIpKQoJKHNhdmUtZXhjdXJzaW9uCgkgIChzZXQtYnVm ZmVyIChnZXQtYnVmZmVyLWNyZWF0ZSBnbnVzLWFydGljbGUtYnVmZmVyKSkK CSAgKGxldCAoKGJ1ZmZlci1yZWFkLW9ubHkgbmlsKSkKCSAgICAod2lkZW4p CgkgICAgKGVyYXNlLWJ1ZmZlcikKCSAgICAoaW5zZXJ0LWJ1ZmZlci1zdWJz dHJpbmcgYXJ0aWNsZS1idWZmZXIpCgkgICAgKGdudXMtc2V0LW1vZGUtbGlu ZSAnYXJ0aWNsZSkKCSAgICAoZ290by1jaGFyIChwb2ludC1taW4pKSkpKQoK ICAgIChnbnVzLXNldC1tb2RlLWxpbmUgJ3N1bW1hcnkpCkAKCgoyLjYKbG9n CkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4dApAZDczMCA0CmQ3 MzUgMQphNzM1IDEKCSAgICAobmFycm93LXRvLXJlZ2lvbiAxIChwb2ludCkp CkAKCgoyLjUKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4 dApAZDk4MSAyCmE5ODIgMQoJICAgIChhbmQgKG9yIChub3Qgb25seS11bnJl YWQpCmQ5OTAgMQphOTkwIDEKCQkgICAgICAgKGNvbnMgKGNvbnMgc3ViaiAo Z251cy1zdW1tYXJ5LWFydGljbGUtbnVtYmVyKSkKQAoKCjIuNApsb2cKQCoq KiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMzAgMQpkOTc3IDYK YTk4MiA3CgkgICAgICBzdWJqIG1hcmspCgkgIChnb3RvLWNoYXIgKHBvaW50 LW1pbikpCgkgICh3aGlsZSAobm90IChlb2JwKSkKCSAgICAoYW5kIChzZXRx IHN1YmogKGdudXMtc3VtbWFyeS1hcnRpY2xlLXN1YmplY3QpKQoJCSAoc3Ry aW5nLW1hdGNoIHN1YmplY3Qgc3ViaikKCQkgKG9yIChub3Qgb25seS11bnJl YWQpCgkJICAgICAoPSAoc2V0cSBtYXJrIChnbnVzLXN1bW1hcnktYXJ0aWNs ZS1tYXJrKSkgCmQ5ODYgMgpkOTkwIDEKYTk5MCAyCgkJCSAgICAgbGlzdC1v Zi1zdWJqZWN0cykpKQoJICAgIChmb3J3YXJkLWxpbmUgMSkpKQpkMTExMyAz CmExMTE1IDIKCSAgICAoZ251cy1yZXF1ZXN0LWFydGljbGUgYXJ0aWNsZSBn bnVzLW5ld3Nncm91cC1uYW1lCgkJCQkgIG5udHAtc2VydmVyLWJ1ZmZlcikK QAoKCjIuMwpsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0 CkBhNSAxCjs7IFZlcnNpb246IHYzLjAKZDE3OTkgMQphMTc5OSAxCgkgICAg KGluc2VydC1idWZmZXIgdXVidWYpCkAKCgoyLjIKbG9nCkAqKiogZW1wdHkg bG9nIG1lc3NhZ2UgKioqCkAKdGV4dApAZDQ3NyAxCmE0NzcgMQogICAgICAo ZnVuY2FsbCBnbnVzLW1haWwtZm9yd2FyZC1tZXRob2QpKQpACgoKMi4xCmxv ZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQyNjYgMQpk NDM5IDIKYTQ0MCAxCglidWYpCmQ0NDggMTcKZDQ2OSAxCmE0NjkgMQoJICAg KGluc2VydCAiRGlnZXN0ZWQgQXJ0aWNsZXMiKSkpCmQ0NzQgMQphNDc0IDEK CSAgIChpbnNlcnQgIlZhcmlvdXMiKSkpCmQ0NzkgMgphNDgwIDEKICAgIChr aWxsLWJ1ZmZlciBidWYpKSkKZDY5NiA1CmQ3NDcgMgphNzQ4IDIKCShpbnNl cnQgc29ydGhlYWQpKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKCShpbnNlcnQg Ym9keSkoZ290by1jaGFyIChwb2ludC1tYXgpKQpACgoKMS4zNwpsb2cKQCoq KiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMjgyIDEKZDI4NCAx CmQ0NzggMQphNDc4IDEKICAoZ251cy1zdW1tYXJ5LXBvc2l0aW9uLWN1cnNv cikpCmQ0ODkgMQphNDg5IDEKICAoZ251cy1zdW1tYXJ5LXBvc2l0aW9uLWN1 cnNvcikpCmQ0OTIgMQphNDkyIDEKICAiTWFya3MgYWxsIGFydGljbGVzIGJl dHdlZW4gcG9pbnQgYW5kIG1hcmsuIgpkNTAwIDYKYTUwNSAxCiAgKGdudXMt c3VtbWFyeS1wb3NpdGlvbi1jdXJzb3IpKQpkNTE1IDEyCmE1MjYgMQogIChn bnVzLXN1bW1hcnktcG9zaXRpb24tY3Vyc29yKSkKZDUzOCAxCmE1MzggMQoJ KGFuZCAoc2V0cSBoZWFkZXJzIChnbnVzLWdldC1oZWFkZXItYnktbnVtYmVy IChjYXIgbWFya2VkKSkpCmQ1NDkgMQphNTQ5IDEKICAgIChnbnVzLXN1bW1h cnktcG9zaXRpb24tY3Vyc29yKSkpCmQ1NjQgMQphNTY0IDEKICAoZ251cy1z dW1tYXJ5LXBvc2l0aW9uLWN1cnNvcikpCmQ5NDUgMQphOTQ1IDEKCQkgICAg IChnbnVzLXV1LXJlZ2luaXplLXN0cmluZyAoZ251cy1zdW1tYXJ5LXN1Ympl Y3Qtc3RyaW5nKSkpKQpkOTU1IDEKYTk1NSAxCgkgICAgKGFuZCAoc2V0cSBz dWJqIChnbnVzLXN1bW1hcnktc3ViamVjdC1zdHJpbmcpKQpkMTE3OSAxCmEx MTc5IDEKICAobGV0ICgoc3ViamVjdCAobWFpbC1oZWFkZXItc3ViamVjdCAo Z251cy1nZXQtaGVhZGVyLWJ5LW51bWJlciBhcnRpY2xlKSkpKQpACgoKMS4z Ngpsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkNjgw IDUKYTY4NCA0CgkgICAgKHNldC10ZXh0LXByb3BlcnRpZXMgKHBvaW50LW1p bikgKHBvaW50LW1heCkgbmlsKQoJICAgIDs7IFRoZXNlIHR3byBhcmUgbmVj ZXNzYXJ5IGZvciBYRW1hY3MgMTkuMTIgZmFzY2lzbS4KCSAgICAocHV0LXRl eHQtcHJvcGVydHkgKHBvaW50LW1pbikgKHBvaW50LW1heCkgJ2ludmlzaWJs ZSBuaWwpCgkgICAgKHB1dC10ZXh0LXByb3BlcnR5IChwb2ludC1taW4pIChw b2ludC1tYXgpICdpbnRhbmdpYmxlIG5pbCkKZDEwNzggMQpACgoKMS4zNQps b2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkNjgwIDQK QAoKCjEuMzQKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4 dApAZDUyMSAxCmE1MjEgMQoJICAgICAoc2V0cSBzdWJqZWN0IChoZWFkZXIt c3ViamVjdCBoZWFkZXJzKQpkNjU3IDUwCmE3MDYgNTAKICAgICh0CiAgICAg KGxldCAoKG5hbWUgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgZ251cy11dS1z YXZlZC1hcnRpY2xlLW5hbWUpKQoJICAgYmVnIHN1YmogaGVhZGVycyBoZWFk bGluZSBzb3J0aGVhZCBib2R5IGVuZC1zdHJpbmcgc3RhdGUpCiAgICAgICAo aWYgKG9yIChlcSBpbi1zdGF0ZSAnZmlyc3QpIAoJICAgICAgIChlcSBpbi1z dGF0ZSAnZmlyc3QtYW5kLWxhc3QpKQoJICAgKHByb2duIAoJICAgICAoc2V0 cSBzdGF0ZSAobGlzdCAnYmVnaW4pKQoJICAgICAoc2F2ZS1leGN1cnNpb24g KHNldC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlICIqZ251cy11dS1ib2R5 KiIpKQoJCQkgICAgIChlcmFzZS1idWZmZXIpKQoJICAgICAoc2F2ZS1leGN1 cnNpb24gCgkgICAgICAgKHNldC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRl ICIqZ251cy11dS1wcmUqIikpCgkgICAgICAgKGVyYXNlLWJ1ZmZlcikKCSAg ICAgICAoaW5zZXJ0IChmb3JtYXQgCgkJCSJEYXRlOiAlc1xuRnJvbTogJXNc blN1YmplY3Q6ICVzIERpZ2VzdFxuXG5Ub3BpY3M6XG4iCgkJCShjdXJyZW50 LXRpbWUtc3RyaW5nKSBuYW1lIG5hbWUpKSkpCgkgKGlmIChub3QgKGVxIGlu LXN0YXRlICdlbmQpKQoJICAgICAoc2V0cSBzdGF0ZSAobGlzdCAnbWlkZGxl KSkpKQogICAgICAgKHNhdmUtZXhjdXJzaW9uCgkgKHNldC1idWZmZXIgKGdl dC1idWZmZXIgIipnbnVzLXV1LWJvZHkqIikpCgkgKGdvdG8tY2hhciAoc2V0 cSBiZWcgKHBvaW50LW1heCkpKQoJIChzYXZlLWV4Y3Vyc2lvbgoJICAgKHNh dmUtcmVzdHJpY3Rpb24KCSAgICAgKHNldC1idWZmZXIgYnVmZmVyKQoJICAg ICAoZ290by1jaGFyIChwb2ludC1taW4pKQoJICAgICAocmUtc2VhcmNoLWZv cndhcmQgIlxuXG4iKQoJICAgICAoc2V0cSBib2R5IChidWZmZXItc3Vic3Ry aW5nICgxLSAocG9pbnQpKSAocG9pbnQtbWF4KSkpCgkgICAgIChuYXJyb3ct dG8tcmVnaW9uIDEgKHBvaW50KSkKCSAgICAgKGlmIChub3QgKHNldHEgaGVh ZGVycyBnbnVzLXV1LWRpZ2VzdC1oZWFkZXJzKSkKCQkgKHNldHEgc29ydGhl YWQgKGJ1ZmZlci1zdWJzdHJpbmcgKHBvaW50LW1pbikgKHBvaW50LW1heCkp KQoJICAgICAgICh3aGlsZSBoZWFkZXJzCgkJIChzZXRxIGhlYWRsaW5lIChj YXIgaGVhZGVycykpCgkJIChzZXRxIGhlYWRlcnMgKGNkciBoZWFkZXJzKSkK CQkgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKCQkgKGlmIChyZS1zZWFyY2gt Zm9yd2FyZCBoZWFkbGluZSBuaWwgdCkKCQkgICAgIChzZXRxIHNvcnRoZWFk IAoJCQkgICAoY29uY2F0IHNvcnRoZWFkCgkJCQkgICAoYnVmZmVyLXN1YnN0 cmluZyAKCQkJCSAgICAobWF0Y2gtYmVnaW5uaW5nIDApCgkJCQkgICAgKG9y IChhbmQgKHJlLXNlYXJjaC1mb3J3YXJkICJeW14gXHRdIiBuaWwgdCkKCQkJ CQkgICAgICgxLSAocG9pbnQpKSkKCQkJCQkocHJvZ24gKGZvcndhcmQtbGlu ZSAxKSAocG9pbnQpKSkpKSkpKSkKCSAgICAgKHdpZGVuKSkpCgkgKGluc2Vy dCBzb3J0aGVhZCkoZ290by1jaGFyIChwb2ludC1tYXgpKQoJIChpbnNlcnQg Ym9keSkoZ290by1jaGFyIChwb2ludC1tYXgpKQoJIChpbnNlcnQgKGNvbmNh dCAiXG4iIChtYWtlLXN0cmluZyAzMCA/LSkgIlxuXG4iKSkKCSAoZ290by1j aGFyIGJlZykKCSAoaWYgKHJlLXNlYXJjaC1mb3J3YXJkICJeU3ViamVjdDog XFwoLipcXCkkIiBuaWwgdCkKCSAgICAgKHByb2duCgkgICAgICAgKHNldHEg c3ViaiAoYnVmZmVyLXN1YnN0cmluZyAobWF0Y2gtYmVnaW5uaW5nIDEpICht YXRjaC1lbmQgMSkpKQoJICAgICAgIChzYXZlLWV4Y3Vyc2lvbiAKZDc4MCAx NAphNzkzIDE0CiAgICAgKHNldC1idWZmZXIgcHJvY2Vzcy1idWZmZXIpCiAg ICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKICAgICAoaWYgKG5vdCAocmUt c2VhcmNoLWZvcndhcmQgZ251cy11dS1wb3N0c2NyaXB0LWJlZ2luLXN0cmlu ZyBuaWwgdCkpCgkgKHNldHEgc3RhdGUgKGxpc3QgJ3dyb25nLXR5cGUpKQog ICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQogICAgICAgKHNldHEgc3RhcnQt Y2hhciAocG9pbnQpKQogICAgICAgKGlmIChub3QgKHJlLXNlYXJjaC1mb3J3 YXJkIGdudXMtdXUtcG9zdHNjcmlwdC1lbmQtc3RyaW5nIG5pbCB0KSkKCSAg IChzZXRxIHN0YXRlIChsaXN0ICd3cm9uZy10eXBlKSkKCSAoc2V0cSBlbmQt Y2hhciAocG9pbnQpKQoJIChzZXQtYnVmZmVyIChnZXQtYnVmZmVyLWNyZWF0 ZSBnbnVzLXV1LW91dHB1dC1idWZmZXItbmFtZSkpCgkgKGluc2VydC1idWZm ZXItc3Vic3RyaW5nIHByb2Nlc3MtYnVmZmVyIHN0YXJ0LWNoYXIgZW5kLWNo YXIpCgkgKHNldHEgZmlsZS1uYW1lIChjb25jYXQgZ251cy11dS13b3JrLWRp ciAoY2RyIGdudXMtYXJ0aWNsZS1jdXJyZW50KSAiLnBzIikpCgkgKHdyaXRl LXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSBmaWxlLW5hbWUpCgkg KHNldHEgc3RhdGUgKGxpc3QgZmlsZS1uYW1lJ2JlZ2luICdlbmQpKQpkNzk1 IDIKYTc5NiAyCgkgKSkKICAgICApCmQ4OTYgMTUKYTkxMCAxNQogIChjb25k IAogICAobgogICAgKGxldCAoKGJhY2t3YXJkICg8IG4gMCkpCgkgIChuIChh YnMgbikpKQogICAgICAoc2F2ZS1leGN1cnNpb24KCSh3aGlsZSAoYW5kICg+ IG4gMCkKCQkgICAgKHNldHEgYXJ0aWNsZXMgKGNvbnMgKGdudXMtc3VtbWFy eS1hcnRpY2xlLW51bWJlcikgCgkJCQkJIGFydGljbGVzKSkKCQkgICAgKGdu dXMtc3VtbWFyeS1zZWFyY2gtZm9yd2FyZCBuaWwgbmlsIGJhY2t3YXJkKSkK CSAgKHNldHEgbiAoMS0gbikpKSkKICAgICAgKG5yZXZlcnNlIGFydGljbGVz KSkpCiAgIChnbnVzLW5ld3Nncm91cC1wcm9jZXNzYWJsZQogICAgKHJldmVy c2UgZ251cy1uZXdzZ3JvdXAtcHJvY2Vzc2FibGUpKQogICAodAogICAgKGdu dXMtdXUtZmluZC1hcnRpY2xlcy1tYXRjaGluZykpKSkpCmQxMTA2IDIKYTEx MDcgMgoJCShpZiAoYW5kIHJlc3VsdC1maWxlIChmaWxlLWV4aXN0cy1wIHJl c3VsdC1maWxlKSkKCQkgICAgKGRlbGV0ZS1maWxlIHJlc3VsdC1maWxlKSkp CmQxMTU1IDEKYTExNTUgMQogIChsZXQgKChzdWJqZWN0IChoZWFkZXItc3Vi amVjdCAoZ251cy1nZXQtaGVhZGVyLWJ5LW51bWJlciBhcnRpY2xlKSkpKQpk MTIwMCAxCmExMjAwIDEKCQk7IFJlcGxhY2UgYW55IHNsYXNoZXMgYW5kIHNw YWNlcyBpbiBmaWxlIG5hbWVzIGJlZm9yZSBkZWNvZGluZwpkMTIwOSAxCmEx MjA5IDEKCQkgIChyZXBsYWNlLW1hdGNoICIiKSkKZDEyNjYgMQphMTI2NiAx CjsJCQkgIChzbGVlcC1mb3IgMikKZDEyODUgMTAKYTEyOTQgMTAKICAgICAo c2V0LWJ1ZmZlciBwcm9jZXNzLWJ1ZmZlcikKICAgICAoZ290by1jaGFyIChw b2ludC1taW4pKQogICAgIChpZiAobm90IChyZS1zZWFyY2gtZm9yd2FyZCBn bnVzLXV1LXNoYXItYmVnaW4tc3RyaW5nIG5pbCB0KSkKCSAoc2V0cSBzdGF0 ZSAobGlzdCAnd3JvbmctdHlwZSkpCiAgICAgICAoYmVnaW5uaW5nLW9mLWxp bmUpCiAgICAgICAoc2V0cSBzdGFydC1jaGFyIChwb2ludCkpCiAgICAgICAo Y2FsbC1wcm9jZXNzLXJlZ2lvbiAKCXN0YXJ0LWNoYXIgKHBvaW50LW1heCkg InNoIiBuaWwgCgkoZ2V0LWJ1ZmZlci1jcmVhdGUgZ251cy11dS1vdXRwdXQt YnVmZmVyLW5hbWUpIG5pbCAKCSItYyIgKGNvbmNhdCAiY2QgIiBnbnVzLXV1 LXdvcmstZGlyICIgOyBzaCIpKSkpCkAKCgoxLjMzCmxvZwpAKioqIGVtcHR5 IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQxNjA0IDEKYTE2MDQgMQooZGVm Y29uc3QgZ251cy11dS1wb3N0LWJpbmFyeS1zZXBhcmF0b3IgIi0tYmluYXJ5 IGZvbGxvd3MgdGhpcyBsaW5lLS0iKQpACgoKMS4zMgpsb2cKQCoqKiBlbXB0 eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkNjg0IDE0CmE2OTcgMTMKCSAg ICAgKHNldHEgaGVhZGVycyBnbnVzLXV1LWRpZ2VzdC1oZWFkZXJzKQoJICAg ICAod2hpbGUgaGVhZGVycwoJICAgICAgIChzZXRxIGhlYWRsaW5lIChjYXIg aGVhZGVycykpCgkgICAgICAgKHNldHEgaGVhZGVycyAoY2RyIGhlYWRlcnMp KQoJICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCgkgICAgICAgKGlm IChyZS1zZWFyY2gtZm9yd2FyZCBoZWFkbGluZSBuaWwgdCkKCQkgICAoc2V0 cSBzb3J0aGVhZCAKCQkJIChjb25jYXQgc29ydGhlYWQKCQkJCSAoYnVmZmVy LXN1YnN0cmluZyAKCQkJCSAgKG1hdGNoLWJlZ2lubmluZyAwKQoJCQkJICAo b3IgKGFuZCAocmUtc2VhcmNoLWZvcndhcmQgIl5bXiBcdF0iIG5pbCB0KQoJ CQkJCSAgICgxLSAocG9pbnQpKSkKCQkJCSAgICAgIChwcm9nbiAoZm9yd2Fy ZC1saW5lIDEpIChwb2ludCkpKSkpKSkpCmQxMTM0IDEKZDExMzYgMgpACgoK MS4zMQpsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBk Mjc0IDEKYTI3NCAxCihkZWZpbmUta2V5IGdudXMtc3VtbWFyeS1tYXJrLW1h cCAicCIgJ2dudXMtdXUtbWFyay1tYXApCkAKCgoxLjMwCmxvZwpAKioqIGVt cHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGEyNjQgMQooZGVmY29uc3Qg Z251cy11dS1oaWdoZXN0LWFydGljbGUtbnVtYmVyIDEpCmQ1ODYgMQphNTg2 IDEKICAoZ251cy11dS1pbml0aWFsaXplKQpkNjE4IDExCmE2MjggMTAKICAg ICAgKHNldHEgZmlsZSAoY2RyIChhc3NxICduYW1lIChjYXIgZmlsZXMpKSkp CiAgICAgIChhbmQgKGZpbGUtZXhpc3RzLXAgZmlsZSkKCSAgIChwcm9nbgoJ ICAgICAoc2V0cSB0by1maWxlIChpZiAoZmlsZS1kaXJlY3RvcnktcCBkaXIp CgkJCSAgICAgICAoY29uY2F0IGRpciAoZmlsZS1uYW1lLW5vbmRpcmVjdG9y eSBmaWxlKSkKCQkJICAgICBkaXIpKQoJICAgICAoYW5kIChvciAobm90IChm aWxlLWV4aXN0cy1wIHRvLWZpbGUpKQoJCSAgICAgIChnbnVzLXktb3Itbi1w IChmb3JtYXQgIiVzIGV4aXN0czsgb3ZlcndyaXRlPyAiCgkJCQkJICAgICB0 by1maWxlKSkpCgkJICAoY29weS1maWxlIGZpbGUgdG8tZmlsZSB0IHQpKSkp CmExMDU0IDMKICAgICAgKGlmICg+IGFydGljbGUgZ251cy11dS1oaWdoZXN0 LWFydGljbGUtbnVtYmVyKSAKCSAgKHNldHEgZ251cy11dS1oaWdoZXN0LWFy dGljbGUtbnVtYmVyIGFydGljbGUpKQoKZDEzMDggMQpkMTQ2NCAxCmExNDY0 IDEKKGRlZnVuIGdudXMtdXUtaW5pdGlhbGl6ZSAoKQpkMTQ2NiA2CmExNDcx IDUKICAgIChpZiAoaWYgKHNldHEgZW50cnkgKGFzc29jIGdudXMtbmV3c2dy b3VwLW5hbWUgZ251cy11dS10bXAtYWxpc3QpKQoJICAgIChpZiAoZmlsZS1l eGlzdHMtcCAoY2RyIGVudHJ5KSkKCQkoc2V0cSBnbnVzLXV1LXdvcmstZGly IChjZHIgZW50cnkpKQoJICAgICAgKHNldHEgZ251cy11dS10bXAtYWxpc3Qg KGRlbHEgZW50cnkgZ251cy11dS10bXAtYWxpc3QpKQoJICAgICAgbmlsKSkK YTE0NzIgMQogICAgICAoc2V0cSBnbnVzLXV1LWhpZ2hlc3QtYXJ0aWNsZS1u dW1iZXIgMSkKQAoKCjEuMjkKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2Ug KioqCkAKdGV4dApAZDUwNSAxCmE1MDUgMgogIChzYXZlLWV4Y3Vyc2lvbgog ICAgKGxldCAoKGxldmVsIChnbnVzLXN1bW1hcnktdGhyZWFkLWxldmVsKSkp CmQ1MDggMQphNTA4IDEKCQkoPiAoZ251cy1zdW1tYXJ5LXRocmVhZC1sZXZl bCkgbGV2ZWwpKSkpKQpACgoKMS4yOApsb2cKQCoqKiBlbXB0eSBsb2cgbWVz c2FnZSAqKioKQAp0ZXh0CkBkMjU4IDEKZDM3MCAzCmEzNzIgMQoJCQkgIGdu dXMtdXUtZGVmYXVsdC1kaXIgdCkpKSkKZDQyNCAyCmQ2MjkgMQphNjI5IDEK CQkgIChjb3B5LWZpbGUgZmlsZSB0by1maWxlIDEgdCkpKSkKYTczOCAxCihk ZWZ2YXIgZ251cy11dS1iaW5oZXgtYXJ0aWNsZS1uYW1lIG5pbCkKYTEwNzkg MQogICAgICAocnVuLWhvb2tzICdnbnVzLW1hcmstYXJ0aWNsZS1ob29rKQpk MTA4MiAxCkAKCgoxLjI3CmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoq KgpACnRleHQKQGQxMDYzIDEKYTEwNjMgMQoJICAocHJvZ24KQAoKCjEuMjYK bG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4dApAZDE1Mzcg MQphMTUzNyAxCiAgICAod2hpbGUgKHN0cmluZy1tYXRjaCAiIVxcfGBcXHxc IlxcfFxcJFxcfFxcXFwiIGZpbGUpCkAKCgoxLjI1CmxvZwpAKioqIGVtcHR5 IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQyNjIgMQphMjYyIDEKKGRlZmNv bnN0IGdudXMtdXUtb3V0cHV0LWJ1ZmZlci1uYW1lICIqR251cyBVVSBPdXRw dXQqIikKZDE0NjEgMgpkMTQ2NCAyNgphMTQ4OSAxNwogIChzZXRxIGdudXMt dXUtaGlnaGVzdC1hcnRpY2xlLW51bWJlciAxKQogIChnbnVzLXV1LWNoZWNr LWZvci1nZW5lcmF0ZWQtZmlsZXMpCiAgKHNldHEgZ251cy11dS10bXAtZGly IChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5IAoJCQkgKGV4cGFuZC1maWxlLW5h bWUgZ251cy11dS10bXAtZGlyKSkpCgogIChpZiAobm90IChmaWxlLWRpcmVj dG9yeS1wIGdudXMtdXUtdG1wLWRpcikpCiAgICAgIChlcnJvciAiVGVtcCBk aXJlY3RvcnkgJXMgZG9lc24ndCBleGlzdCIgZ251cy11dS10bXAtZGlyKQog ICAgKGlmIChub3QgKGZpbGUtd3JpdGFibGUtcCBnbnVzLXV1LXRtcC1kaXIp KQoJKGVycm9yICJUZW1wIGRpcmVjdG9yeSAlcyBjYW4ndCBiZSB3cml0dGVu IHRvIiBnbnVzLXV1LXRtcC1kaXIpKSkKCiAgKHNldHEgZ251cy11dS13b3Jr LWRpciAKCShtYWtlLXRlbXAtbmFtZSAoY29uY2F0IGdudXMtdXUtdG1wLWRp ciAiZ251cyIpKSkKICAoZ251cy11dS1hZGQtZmlsZSBnbnVzLXV1LXdvcmst ZGlyKQogIChpZiAobm90IChmaWxlLWRpcmVjdG9yeS1wIGdudXMtdXUtd29y ay1kaXIpKSAKICAgICAgKGdudXMtbWFrZS1kaXJlY3RvcnkgZ251cy11dS13 b3JrLWRpcikpCiAgKHNldC1maWxlLW1vZGVzIGdudXMtdXUtd29yay1kaXIg NDQ4KQogIChzZXRxIGdudXMtdXUtd29yay1kaXIgKGZpbGUtbmFtZS1hcy1k aXJlY3RvcnkgZ251cy11dS13b3JrLWRpcikpKQpACgoKMS4yNApsb2cKQCoq KiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkMTUyMyAxCmExNTIz IDEKOzsgdGlja3Mgcm91bmQgdGhlIGZpbGUgbmFtZSBhbmQgZXNjYXBpbmcg YW55IHRpY2tzIGluIHRoZSBmaWxlIG5hbWUuCmQxNTI2IDEKYTE1MjYgMQog ICAgKHdoaWxlIChzdHJpbmctbWF0Y2ggImBcXHxcIlxcfFxcJFxcfFxcXFwi IGZpbGUpCkAKCgoxLjIzCmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoq KgpACnRleHQKQGQ4MDUgMwphODA3IDEKICAgICAgIChzZXRjYXIgZmlsZXMg KG5jb25jIChsaXN0IChjb25zICdhY3Rpb24gYWN0aW9uKQpkMTE4OSA3CmEx MTk1IDIKCQkoc2V0cSBuYW1lLWVuZCAobWF0Y2gtZW5kIDEpKQoKZDExOTcg MQphMTE5NyAxCgkJKGdvdG8tY2hhciAoc2V0cSBuYW1lLWJlZyAobWF0Y2gt YmVnaW5uaW5nIDEpKSkKZDEzNzkgMgphMTM4MCAyCgkgZmlsZSBkaWQtdW5w YWNrKQogICAgKGdudXMtdXUtYWRkLWZpbGUgdG90ZmlsZXMpCmQxMzgyIDEK YTEzODIgMQogICAgICAoc2V0cSBmaWxlIChjZHIgKGFzc3EgJ25hbWUgKGNh ciBmaWxlcykpKSkKQAoKCjEuMjIKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3Nh Z2UgKioqCkAKdGV4dApAYTQzMSAxCgkod2luY29uZiAoY3VycmVudC13aW5k b3ctY29uZmlndXJhdGlvbikpCmQ4NDMgMQphODQzIDEKCXJlZyBiZWcpCmQ4 ODkgMQphODg5IDEKICAobGV0IChhcnRpY2xlcyBwcm9jZXNzKQpkOTE3IDEK YTkxNyAxCgliZWcgZW5kIGxpc3Qtb2Ytc3ViamVjdHMpCmQ5NTMgMQphOTUz IDEKCXN0cmluZyBwb3MgbnVtKQpkMTAzMSAyCmExMDMyIDQKCSh3cm9uZy10 eXBlIHQpCgloYXMtYmVlbi1iZWdpbiBoYXMtYmVlbi1lbmQgCglhcnRpY2xl IHJlc3VsdC1maWxlIHJlc3VsdC1maWxlcyBwcm9jZXNzLXN0YXRlIGFydGlj bGUtYnVmZmVyCgliZWdpbi1hcnRpY2xlKQpkMTA4OSAxCmExMDg5IDMKCSAg ICAoc2V0cSBiZWdpbi1hcnRpY2xlIGFydGljbGUpCgkgICAgKHNldHEgaGFz LWJlZW4tYmVnaW4gdCkKCSAgICAoc2V0cSBoYXMtYmVlbi1lbmQgbmlsKSkp CmExMDk2IDEKCSAgICAoc2V0cSBoYXMtYmVlbi1lbmQgdCkKZDExMDcgMQph MTEwNyAxCgkgIChzZXRxIHdyb25nLXR5cGUgbmlsKQphMTExMCAyCiAgICAg IChpZiBzbG9wcHkgKHNldHEgd3JvbmctdHlwZSBuaWwpKQoKZDEyNDggMQph MTI0OCAxCgkJICAgICAoY29uZGl0aW9uLWNhc2UgZXJyCmQxMzIzIDEKYTEz MjMgMQoJYWN0aW9uIGNvbW1hbmQgZmlsZXMgZmlsZSBmaWxlLW5hbWUgZGly KQphMTMzMiAxCiAgICAoc2V0cSBmaWxlLW5hbWUgKHN1YnN0cmluZyBmaWxl LXBhdGggKDErIChtYXRjaC1iZWdpbm5pbmcgMCkpKSkKZDE0MjMgMQphMTQy MyAxCiAgKGxldCAoZm91bmQgYmVnIGxlbmd0aCBzaG9ydCkKZDE2ODAgMQph MTY4MCAxCgkgICAgICBnbnVzLWluZXdzLWFydGljbGUtaG9vayBlbGVtKQpk MTcwNiAxCmExNzA2IDEKCWZpbGUtcGF0aCBwb3N0LWJ1ZiB1dWJ1ZiBmaWxl LW5hbWUpCmQxNzM5IDEKYTE3MzkgMQoJZmlsZSB1dWJ1ZiBsZW5ndGggcGFy dHMgaGVhZGVyIGkgZW5kIGJlZwpACgoKMS4yMQpsb2cKQCoqKiBlbXB0eSBs b2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkNTk1IDEKYTU5NSAxCiAgICAob3Ig bm90LWluc2VydCAoZ251cy1zdW1tYXJ5LWluc2VydC1wc2V1ZG9zIGZpbGVz KSkpKQpACgoKMS4yMApsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioK QAp0ZXh0CkBkMzI2IDQKYTMyOSAzCgkgKHJlYWQtZmlsZS1uYW1lICJVdWRl Y29kZSBhbmQgc2F2ZSBpbiBkaXI6ICIKCQkJIGdudXMtdXUtZGVmYXVsdC1k aXIKCQkJIGdudXMtdXUtZGVmYXVsdC1kaXIgdCkpKQpkMzQxIDQKYTM0NCAz CgkgKHJlYWQtZmlsZS1uYW1lICJVbnNoYXIgYW5kIHNhdmUgaW4gZGlyOiAi CgkJCSBnbnVzLXV1LWRlZmF1bHQtZGlyCgkJCSBnbnVzLXV1LWRlZmF1bHQt ZGlyIHQpKSkKZDM2NiA0CmEzNjkgMwoJIChyZWFkLWZpbGUtbmFtZSAiVW5i aW5oZXggYW5kIHNhdmUgaW4gZGlyOiAiCgkJCSBnbnVzLXV1LWRlZmF1bHQt ZGlyCgkJCSBnbnVzLXV1LWRlZmF1bHQtZGlyIHQpKSkKZDU2MyA0CmE1NjYg MwoJIChyZWFkLWZpbGUtbmFtZSAiV2hlcmUgZG8geW91IHdhbnQgdG8gc2F2 ZSB0aGUgZmlsZShzKT8gIgoJCQkgZ251cy11dS1kZWZhdWx0LWRpcgoJCQkg Z251cy11dS1kZWZhdWx0LWRpciB0KSkpCkAKCgoxLjE5CmxvZwpAKioqIGVt cHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGE0MjYgMQogIChnbnVzLXV1 LWluaXRpYWxpemUpCmQ0MjggMQphNDI4IDEKCShmaWxlIChjb25jYXQgZ251 cy11dS13b3JrLWRpciAobWFrZS10ZW1wLW5hbWUgImZvcndhcmQiKSkpCmQ0 NTEgMQpACgoKMS4xOApsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioK QAp0ZXh0CkBkMTQ3NCAxCmExNDc0IDEKICAgICAgKG1ha2UtZGlyZWN0b3J5 IGdudXMtdXUtd29yay1kaXIpKQpACgoKMS4xNwpsb2cKQCoqKiBlbXB0eSBs b2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkNzYgMQphNzYgMQpkZWZhdWx0IHJ1 bGUgdmFpYWJsZSBwcm92aWRlZCBpbiB0aGlzIHBhY2thZ2UuIElmIGdudXMt dXUgZmluZHMgbm8KZDE4OCAxCmExODggMQpJZiB0aGUgdmFyaWFibGUgaXMg bmlsLCB0aGUgc3VlciB3aWxsIG9ubHkgYmUgYXNrZWQgdG8gc2F2ZSBpZiB0 aGUKZDIxNCAxCmEyMTQgMQogICIqTm9uLW5pbCBtZWFucyB0aGF0IGdudXMt dXUgd2lsbCAqdHJ5KiB0byBmaXggdXVlbmNvZGVkIGZpbGVzIHRoYXQgaGF2 ZSBoYWQgdHJhbGluZyBzcGFjZXMgZGVsZXRlZC4gCmQzMzQgMQphMzM0IDEK ICAoZ251cy11dS1kZWNvZGUtd2l0aC1tZXRob2QgJ2dudXMtdXUtdW5zaGFy LWFydGljbGUgbikpCmQzNDMgMQphMzQzIDEKICAoZ251cy11dS1kZWNvZGUt d2l0aC1tZXRob2QgJ2dudXMtdXUtdW5zaGFyLWFydGljbGUgbiBkaXIpKQpk NTc5IDEKYTU3OSAxCihkZWZ1biBnbnVzLXV1LWRlY29kZS13aXRoLW1ldGhv ZCAobWV0aG9kIG4gJm9wdGlvbmFsIHNhdmUgbm90LWluc2VydCkKZDU4NSAy CmQ1OTMgMTUKZDYxOSAyCmE2MjAgMQoJCSAgICAgIChnbnVzLXktb3Itbi1w IChmb3JtYXQgIiVzIGV4aXN0czsgb3ZlcndyaXRlPyAiIHRvLWZpbGUpKSkK ZDE0NjIgMwphMTQ2NCAzCiAgKHNldHEgZ251cy11dS10bXAtZGlyIChleHBh bmQtZmlsZS1uYW1lIGdudXMtdXUtdG1wLWRpcikpCiAgKGlmIChzdHJpbmct bWF0Y2ggIlteL10kIiBnbnVzLXV1LXRtcC1kaXIpIAogICAgICAoc2V0cSBn bnVzLXV1LXRtcC1kaXIgKGNvbmNhdCBnbnVzLXV1LXRtcC1kaXIgIi8iKSkp CmQxNDY5IDEKZDE0NzEgMQphMTQ3MSAxCgkoY29uY2F0IGdudXMtdXUtdG1w LWRpciAobWFrZS10ZW1wLW5hbWUgImdudXMiKSkpCmQxNDc2IDEKYTE0NzYg MQogIChzZXRxIGdudXMtdXUtd29yay1kaXIgKGNvbmNhdCBnbnVzLXV1LXdv cmstZGlyICIvIikpKQpACgoKMS4xNgpsb2cKQCoqKiBlbXB0eSBsb2cgbWVz c2FnZSAqKioKQAp0ZXh0CkBkMTM2MCAxCmQxMzcyIDEKZDE1NDYgMQphMTU0 NiAxClxcPGdudXMtdXUtcG9zdC1yZXBseS1tb2RlLW1hcD5cXFtnbnVzLXV1 LXBvc3QtaW5zZXJ0LWJpbmFyeS1pbi1hcnRpY2xlXSBvciBoYXZlIG9uZSBp bmNsdWRlZCBmb3IgeW91IHdoZW4geW91IHBvc3QgdGhlIGFydGljbGUuIikK YTE1ODEgMQogIChsb2NhbC1zZXQta2V5ICJcQy1jXEMtZlxDLWEiICdnbnVz LXV1LXBvc3QtcmVwbHktc3VtbWFyeSkKQAoKCjEuMTUKbG9nCkAqKiogZW1w dHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4dApAZDMyNiAxCmEzMjYgMQoJIChy ZWFkLWZpbGUtbmFtZSAiV2hlcmUgZG8geW91IHdhbnQgdG8gc2F2ZSB0aGUg ZmlsZShzKT8gIgpkMzQwIDEKYTM0MCAxCgkgKHJlYWQtZmlsZS1uYW1lICJX aGVyZSBkbyB5b3Ugd2FudCB0byBzYXZlIHRoZSBmaWxlKHMpPyAiCmQzNDkg NgphMzU0IDMKCSAocmVhZC1maWxlLW5hbWUgIldoZXJlIGRvIHlvdSB3YW50 IHRvIHNhdmUgdGhlIGZpbGU/ICIKCQkJIGdudXMtdXUtZGVmYXVsdC1kaXIK CQkJIGdudXMtdXUtZGVmYXVsdC1kaXIpKSkKZDM2NCAxCmEzNjQgMQoJIChy ZWFkLWZpbGUtbmFtZSAiV2hlcmUgZG8geW91IHdhbnQgdG8gc2F2ZSB0aGUg ZmlsZShzKT8gIgpkMzc5IDEKYTM3OSAxCgkgKHJlYWQtZmlsZS1uYW1lICJX aGVyZSBkbyB5b3Ugd2FudCB0byBzYXZlIHRoZSBmaWxlKHMpPyAiCmQzOTUg MQphMzk1IDEKCSAocmVhZC1maWxlLW5hbWUgIldoZXJlIGRvIHlvdSB3YW50 IHRvIHNhdmUgdGhlIGZpbGUocyk/ICIKZDQwNSA0CmE0MDggMgoJIChyZWFk LWZpbGUtbmFtZSAiV2hlcmUgZG8geW91IHdhbnQgdG8gc2F2ZSB0aGUgZmls ZT8gIgoJCQkgZ251cy11dS1kZWZhdWx0LWRpciBnbnVzLXV1LWRlZmF1bHQt ZGlyKSkpCmQ0MTYgMQphNDE2IDEKCSAocmVhZC1maWxlLW5hbWUgIldoZXJl IGRvIHlvdSB3YW50IHRvIHNhdmUgdGhlIGZpbGUocyk/ICIKQAoKCjEuMTQK bG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4dApAZDY2NCAy CmE2NjUgMQoJCQkJICAob3IgKHJlLXNlYXJjaC1mb3J3YXJkICJeW14gXHRd IiBuaWwgdCkKQAoKCjEuMTMKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2Ug KioqCkAKdGV4dApAZDU4IDEKYTU4IDEKZm9sbG93aW5nIGluIHlvdXIgLmVt YWNzIGZpbGUKZDI3MyA0MAphMzEyIDQwCiAgKGRlZmluZS1wcmVmaXgtY29t bWFuZCAnZ251cy11dS1tYXJrLW1hcCkKICAoZGVmaW5lLWtleSBnbnVzLXN1 bW1hcnktbWFyay1tYXAgInAiICdnbnVzLXV1LW1hcmstbWFwKQogIChkZWZp bmUta2V5IGdudXMtdXUtbWFyay1tYXAgInAiICdnbnVzLXN1bW1hcnktbWFy ay1hcy1wcm9jZXNzYWJsZSkKICAoZGVmaW5lLWtleSBnbnVzLXV1LW1hcmst bWFwICJ1IiAnZ251cy1zdW1tYXJ5LXVubWFyay1hcy1wcm9jZXNzYWJsZSkK ICAoZGVmaW5lLWtleSBnbnVzLXV1LW1hcmstbWFwICJVIiAnZ251cy1zdW1t YXJ5LXVubWFyay1hbGwtcHJvY2Vzc2FibGUpCiAgKGRlZmluZS1rZXkgZ251 cy11dS1tYXJrLW1hcCAicyIgJ2dudXMtdXUtbWFyay1zZXJpZXMpCiAgKGRl ZmluZS1rZXkgZ251cy11dS1tYXJrLW1hcCAiciIgJ2dudXMtdXUtbWFyay1y ZWdpb24pCiAgKGRlZmluZS1rZXkgZ251cy11dS1tYXJrLW1hcCAiUiIgJ2du dXMtdXUtbWFyay1ieS1yZWdleHApCiAgKGRlZmluZS1rZXkgZ251cy11dS1t YXJrLW1hcCAidCIgJ2dudXMtdXUtbWFyay10aHJlYWQpCiAgKGRlZmluZS1r ZXkgZ251cy11dS1tYXJrLW1hcCAiYSIgJ2dudXMtdXUtbWFyay1hbGwpCiAg KGRlZmluZS1rZXkgZ251cy11dS1tYXJrLW1hcCAiUyIgJ2dudXMtdXUtbWFy ay1zcGFyc2UpCgogIChkZWZpbmUtcHJlZml4LWNvbW1hbmQgJ2dudXMtdXUt ZXh0cmFjdC1tYXApCiAgKGRlZmluZS1rZXkgZ251cy1zdW1tYXJ5LW1vZGUt bWFwICJYIiAnZ251cy11dS1leHRyYWN0LW1hcCkKOyAgKGRlZmluZS1rZXkg Z251cy11dS1leHRyYWN0LW1hcCAieCIgJ2dudXMtdXUtZXh0cmFjdC1hbnkp CjsgIChkZWZpbmUta2V5IGdudXMtdXUtZXh0cmFjdC1tYXAgIm0iICdnbnVz LXV1LWV4dHJhY3QtbWltZSkKICAoZGVmaW5lLWtleSBnbnVzLXV1LWV4dHJh Y3QtbWFwICJ1IiAnZ251cy11dS1kZWNvZGUtdXUpCiAgKGRlZmluZS1rZXkg Z251cy11dS1leHRyYWN0LW1hcCAiVSIgJ2dudXMtdXUtZGVjb2RlLXV1LWFu ZC1zYXZlKQogIChkZWZpbmUta2V5IGdudXMtdXUtZXh0cmFjdC1tYXAgInMi ICdnbnVzLXV1LWRlY29kZS11bnNoYXIpCiAgKGRlZmluZS1rZXkgZ251cy11 dS1leHRyYWN0LW1hcCAiUyIgJ2dudXMtdXUtZGVjb2RlLXVuc2hhci1hbmQt c2F2ZSkKICAoZGVmaW5lLWtleSBnbnVzLXV1LWV4dHJhY3QtbWFwICJvIiAn Z251cy11dS1kZWNvZGUtc2F2ZSkKICAoZGVmaW5lLWtleSBnbnVzLXV1LWV4 dHJhY3QtbWFwICJPIiAnZ251cy11dS1kZWNvZGUtc2F2ZSkKICAoZGVmaW5l LWtleSBnbnVzLXV1LWV4dHJhY3QtbWFwICJiIiAnZ251cy11dS1kZWNvZGUt YmluaGV4KQogIChkZWZpbmUta2V5IGdudXMtdXUtZXh0cmFjdC1tYXAgIkIi ICdnbnVzLXV1LWRlY29kZS1iaW5oZXgpCiAgKGRlZmluZS1rZXkgZ251cy11 dS1leHRyYWN0LW1hcCAicCIgJ2dudXMtdXUtZGVjb2RlLXBvc3RzY3JpcHQp CiAgKGRlZmluZS1rZXkgZ251cy11dS1leHRyYWN0LW1hcCAiUCIgJ2dudXMt dXUtZGVjb2RlLXBvc3RzY3JpcHQtYW5kLXNhdmUpCgogIChkZWZpbmUtcHJl Zml4LWNvbW1hbmQgJ2dudXMtdXUtZXh0cmFjdC12aWV3LW1hcCkKICAoZGVm aW5lLWtleSBnbnVzLXV1LWV4dHJhY3QtbWFwICJ2IiAnZ251cy11dS1leHRy YWN0LXZpZXctbWFwKQogIChkZWZpbmUta2V5IGdudXMtdXUtZXh0cmFjdC12 aWV3LW1hcCAidSIgJ2dudXMtdXUtZGVjb2RlLXV1LXZpZXcpCiAgKGRlZmlu ZS1rZXkgZ251cy11dS1leHRyYWN0LXZpZXctbWFwICJVIiAnZ251cy11dS1k ZWNvZGUtdXUtYW5kLXNhdmUtdmlldykKICAoZGVmaW5lLWtleSBnbnVzLXV1 LWV4dHJhY3Qtdmlldy1tYXAgInMiICdnbnVzLXV1LWRlY29kZS11bnNoYXIt dmlldykKICAoZGVmaW5lLWtleSBnbnVzLXV1LWV4dHJhY3Qtdmlldy1tYXAg IlMiICdnbnVzLXV1LWRlY29kZS11bnNoYXItYW5kLXNhdmUtdmlldykKICAo ZGVmaW5lLWtleSBnbnVzLXV1LWV4dHJhY3Qtdmlldy1tYXAgIm8iICdnbnVz LXV1LWRlY29kZS1zYXZlLXZpZXcpCiAgKGRlZmluZS1rZXkgZ251cy11dS1l eHRyYWN0LXZpZXctbWFwICJPIiAnZ251cy11dS1kZWNvZGUtc2F2ZS12aWV3 KQogIChkZWZpbmUta2V5IGdudXMtdXUtZXh0cmFjdC12aWV3LW1hcCAiYiIg J2dudXMtdXUtZGVjb2RlLWJpbmhleC12aWV3KQogIChkZWZpbmUta2V5IGdu dXMtdXUtZXh0cmFjdC12aWV3LW1hcCAiQiIgJ2dudXMtdXUtZGVjb2RlLWJp bmhleC12aWV3KQogIChkZWZpbmUta2V5IGdudXMtdXUtZXh0cmFjdC12aWV3 LW1hcCAicCIgJ2dudXMtdXUtZGVjb2RlLXBvc3RzY3JpcHQtdmlldykKICAo ZGVmaW5lLWtleSBnbnVzLXV1LWV4dHJhY3Qtdmlldy1tYXAgIlAiICdnbnVz LXV1LWRlY29kZS1wb3N0c2NyaXB0LWFuZC1zYXZlLXZpZXcpCiAgCmQ2Mjgg MgphNjI5IDQKICAgICAobGV0IChiZWcgc3ViaiBuYW1lIGhlYWRlcnMgaGVh ZGxpbmUgc29ydGhlYWQgYm9keSBlbmQtc3RyaW5nIHN0YXRlKQogICAgICAg KHN0cmluZy1tYXRjaCAiL1xcKFteL10qXFwpJCIgZ251cy11dS1zYXZlZC1h cnRpY2xlLW5hbWUpCiAgICAgICAoc2V0cSBuYW1lIChzdWJzdHJpbmcgZ251 cy11dS1zYXZlZC1hcnRpY2xlLW5hbWUgKG1hdGNoLWJlZ2lubmluZyAxKQoJ CQkgICAgIChtYXRjaC1lbmQgMSkpKQpkNjU5IDEKYTY1OSAxCgkgICAgICAg KGlmIChyZS1zZWFyY2gtZm9yd2FyZCAoY29uY2F0IGhlYWRsaW5lICIuKiQi KSBuaWwgdCkKZDY2MSA1CmE2NjUgMwoJCQkgKGNvbmNhdCBzb3J0aGVhZCAo YnVmZmVyLXN1YnN0cmluZyAKCQkJCQkgICAobWF0Y2gtYmVnaW5uaW5nIDAp CgkJCQkJICAgKG1hdGNoLWVuZCAwKSkgIlxuIikpKSkKQAoKCjEuMTIKbG9n CkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4dApAZDIyNCA2CmQy NjcgNDgKZDQyNSAxCmE0MjYgMQogICAgKHNldHEgZ251cy13aW5jb25mLXBv c3QtbmV3cyAoY3VycmVudC13aW5kb3ctY29uZmlndXJhdGlvbikpCmQ2NTIg MQphNjUyIDEKCSAgICAgKGdvdG8tY2hhciAxKQpkNjU2IDEKYTY1NiAyCgkg ICAgIChzZXRxIGhlYWRlcnMgKGxpc3QgIkRhdGU6IiAiRnJvbToiICJUbzoi ICJDYzoiICJTdWJqZWN0OiIKCQkJCSAiTWVzc2FnZS1JRDoiICJLZXl3b3Jk czoiICJTdW1tYXJ5OiIpKQpkNjYwIDIKYTY2MSAyCgkgICAgICAgKGdvdG8t Y2hhciAxKQoJICAgICAgIChpZiAocmUtc2VhcmNoLWZvcndhcmQgKGNvbmNh dCAiXiIgaGVhZGxpbmUgIi4qJCIpIG5pbCB0KQpkNzE0IDEKYTcxNCAxCiAg ICAgIChnb3RvLWNoYXIgMSkKZDc1MCAxCmE3NTAgMQogICAgIChnb3RvLWNo YXIgMSkKZDgyNSAxCmE4MjUgMQogICAgICAoZ290by1jaGFyIDEpCmQ5MzQg MQphOTM0IDEKCShnb3RvLWNoYXIgMSkKZDkzOCAxCmE5MzggMQoJKGdvdG8t Y2hhciAxKQpkOTQzIDEKYTk0MyAxCgkoZ290by1jaGFyIDEpCmQxMTExIDEK YTExMTEgMQoJICAgIChnb3RvLWNoYXIgMSkpKSkKZDExNDggMQphMTE0OCAx CgkoZ290by1jaGFyIDEpCmQxMTU0IDEKYTExNTQgMQoJICAgICAgKGdvdG8t Y2hhciAxKSkpCmQxMjU1IDEKYTEyNTUgMQogICAgIChnb3RvLWNoYXIgMSkK ZDEyNzAgMQphMTI3MCAxCiAgICAoZ290by1jaGFyIDEpCmQxNDQ4IDEKZDE1 OTYgMQphMTU5NiAxCgkoZ290by1jaGFyIDEpCmQxNjE4IDEKYTE2MTggMQog IChnb3RvLWNoYXIgMSkKZDE2MjUgMgphMTYyNiAzCiAgICAoZ290by1jaGFy IDEpCiAgICAocmUtc2VhcmNoLWZvcndhcmQgKHJlZ2V4cC1xdW90ZSBtYWls LWhlYWRlci1zZXBhcmF0b3IpKQogICAgKGJlZ2lubmluZy1vZi1saW5lKQpk MTY2OCAxCmExNjY4IDEKCQkgICAgICAoZ290by1jaGFyIDEpCmQxNzIzIDEK YTE3MjMgMQogICAgKGdvdG8tY2hhciAxKQpkMTcyNiAyCmExNzI3IDEKCQkg IGdudXMtdXUtcG9zdC1iaW5hcnktc2VwYXJhdG9yIApkMTczOSAxCmExNzM5 IDEKICAgICAgKGdvdG8tY2hhciAxKQpkMTc0OSAxCmExNzQ5IDEKICAgIChn b3RvLWNoYXIgMSkKZDE3NTUgMQphMTc1NSAxCiAgICAoZ290by1jaGFyIDEp CmQxNzg2IDEKYTE3ODYgMQoJKGdvdG8tY2hhciAxKQpkMTgxMiAxCmExODEy IDEKCShnb3RvLWNoYXIgMSkKZDE4MTcgMwphMTgxOSAxCgkoaWYgKHJlLXNl YXJjaC1mb3J3YXJkIGdudXMtdXUtcG9zdC1iaW5hcnktc2VwYXJhdG9yIG5p bCB0KQpACgoKMS4xMQpsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioK QAp0ZXh0CkBkMTQ2MCAxCmQxNDYyIDMKYTE0NjQgMQo7OyBNYWpvciBtb2Rl IGZvciBwb3N0aW5nIGVuY29kZWQgYXJ0aWNsZXMuCmExNTA5IDExMgo7OyBU aGUgZm9sbG93aW5nIG1hcCBhbmQgbW9kZSB3YXMgdGFrZW4gZnJvbSBybmV3 c3Bvc3QuZWwgYW5kIGVkaXRlZAo7OyBzb21ld2hhdC4KKGRlZnZhciBnbnVz LXV1LXBvc3QtcmVwbHktbW9kZS1tYXAgbmlsKQooaWYgZ251cy11dS1wb3N0 LXJlcGx5LW1vZGUtbWFwCiAgICAoKQogIChzZXRxIGdudXMtdXUtcG9zdC1y ZXBseS1tb2RlLW1hcCAobWFrZS1rZXltYXApKQogIChkZWZpbmUta2V5IGdu dXMtdXUtcG9zdC1yZXBseS1tb2RlLW1hcCAiXEMtYz8iICdkZXNjcmliZS1t b2RlKQogIChkZWZpbmUta2V5IGdudXMtdXUtcG9zdC1yZXBseS1tb2RlLW1h cCAiXEMtY1xDLWZcQy1kIiAKICAgICduZXdzLXJlcGx5LWRpc3RyaWJ1dGlv bikKICAoZGVmaW5lLWtleSBnbnVzLXV1LXBvc3QtcmVwbHktbW9kZS1tYXAg IlxDLWNcQy1mXEMtayIgCiAgICAnbmV3cy1yZXBseS1rZXl3b3JkcykKICAo ZGVmaW5lLWtleSBnbnVzLXV1LXBvc3QtcmVwbHktbW9kZS1tYXAgIlxDLWNc Qy1mXEMtbiIgCiAgICAnbmV3cy1yZXBseS1uZXdzZ3JvdXBzKQogICAgICAK ICAoZGVmaW5lLWtleSBnbnVzLXV1LXBvc3QtcmVwbHktbW9kZS1tYXAgIlxD LWNcQy1mXEMtZiIgCiAgICAnbmV3cy1yZXBseS1mb2xsb3d1cC10bykKICAo ZGVmaW5lLWtleSBnbnVzLXV1LXBvc3QtcmVwbHktbW9kZS1tYXAgIlxDLWNc Qy1mXEMtcyIgJ21haWwtc3ViamVjdCkKICAoZGVmaW5lLWtleSBnbnVzLXV1 LXBvc3QtcmVwbHktbW9kZS1tYXAgIlxDLWNcQy1mXEMtYSIgCiAgICAnZ251 cy11dS1wb3N0LXJlcGx5LXN1bW1hcnkpCiAgKGRlZmluZS1rZXkgZ251cy11 dS1wb3N0LXJlcGx5LW1vZGUtbWFwICJcQy1jXEMtciIgCiAgICAnbmV3cy1j YWVzYXItYnVmZmVyLWJvZHkpCiAgKGRlZmluZS1rZXkgZ251cy11dS1wb3N0 LXJlcGx5LW1vZGUtbWFwICJcQy1jXEMtdyIgJ25ld3MtcmVwbHktc2lnbmF0 dXJlKQogIChkZWZpbmUta2V5IGdudXMtdXUtcG9zdC1yZXBseS1tb2RlLW1h cCAiXEMtY1xDLXkiIAogICAgJ25ld3MtcmVwbHkteWFuay1vcmlnaW5hbCkK ICAoZGVmaW5lLWtleSBnbnVzLXV1LXBvc3QtcmVwbHktbW9kZS1tYXAgIlxD LWNcQy1xIiAKICAgICdtYWlsLWZpbGwteWFua2VkLW1lc3NhZ2UpCiAgKGRl ZmluZS1rZXkgZ251cy11dS1wb3N0LXJlcGx5LW1vZGUtbWFwICJcQy1jXEMt YyIgCiAgICAnZ251cy11dS1wb3N0LW5ld3MtaW5ld3MpCiAgKGRlZmluZS1r ZXkgZ251cy11dS1wb3N0LXJlcGx5LW1vZGUtbWFwICJcQy1jXEMtcyIgCiAg ICAnZ251cy11dS1wb3N0LW5ld3MtaW5ld3MpCiAgKGRlZmluZS1rZXkgZ251 cy11dS1wb3N0LXJlcGx5LW1vZGUtbWFwICJcQy1jXEMtaSIgCiAgICAnZ251 cy11dS1wb3N0LWluc2VydC1iaW5hcnktaW4tYXJ0aWNsZSkKICApCgo7OyBU aGlzIG1vZGUgd2FzIHRha2VuIGZyb20gcm5ld3Nwb3N0LmVsIGFuZCBtb2Rp ZmllZCBzbGlnaHRseS4KKGRlZnVuIGdudXMtdXUtcG9zdC1yZXBseS1tb2Rl ICgpCiAgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgYmluYXJ5IG5ld3MgdG8g YmUgcG9zdGVkIG9uIFVTRU5FVC4KRmlyc3QtdGltZSBwb3N0ZXJzIGFyZSBh c2tlZCB0byBwbGVhc2UgcmVhZCB0aGUgYXJ0aWNsZXMgaW4gbmV3c2dyb3Vw OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG5ld3MuYW5ub3VuY2UubmV3dXNlcnMgLgoKTGlrZSBuZXdz LXJlcGx5LW1vZGUsIHdoaWNoIGlzIGxpa2UgVGV4dCBNb2RlLCBidXQgd2l0 aCB0aGVzZQphZGRpdGlvbmFsIGNvbW1hbmRzOgoKXFw8Z251cy11dS1wb3N0 LXJlcGx5LW1vZGUtbWFwPlxcW2dudXMtdXUtcG9zdC1uZXdzLWluZXdzXSAg cG9zdCB0aGUgbWVzc2FnZS4KQy1jIEMtZgkgbW92ZSB0byBhIGhlYWRlciBm aWVsZCAoYW5kIGNyZWF0ZSBpdCBpZiB0aGVyZSBpc24ndCk6CgkgQy1jIEMt ZiBDLW4gIG1vdmUgdG8gTmV3c2dyb3VwczoJQy1jIEMtZiBDLXMgIG1vdmUg dG8gU3ViajoKCSBDLWMgQy1mIEMtZiAgbW92ZSB0byBGb2xsb3d1cC1Ubzog ICAgICBDLWMgQy1mIEMtayAgbW92ZSB0byBLZXl3b3JkczoKCSBDLWMgQy1m IEMtZCAgbW92ZSB0byBEaXN0cmlidXRpb246CUMtYyBDLWYgQy1hICBtb3Zl IHRvIFN1bW1hcnk6CkMtYyBDLXkgIG5ld3MtcmVwbHkteWFuay1vcmlnaW5h bCAoaW5zZXJ0IGN1cnJlbnQgbWVzc2FnZSwgaW4gTkVXUykuCkMtYyBDLXEg IG1haWwtZmlsbC15YW5rZWQtbWVzc2FnZSAoZmlsbCB3aGF0IHdhcyB5YW5r ZWQpLgpDLWMgQy1yICBjYWVzYXIgcm90YXRlIGFsbCBsZXR0ZXJzIGJ5IDEz IHBsYWNlcyBpbiB0aGUgYXJ0aWNsZSdzIGJvZHkgKHJvdDEzKS4KXFxbZ251 cy11dS1wb3N0LWluc2VydC1iaW5hcnktaW4tYXJ0aWNsZV0gIGVuY29kZSBh bmQgaW5jbHVkZSBhIGZpbGUgaW4gdGhpcyBhcnRpY2xlLgoKVGhpcyBtb2Rl IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gbmV3cy1yZXBseS1tb2RlLCBidXQg aGFzIHNvbWUKYWRkaXRpb25hbCBjb21tYW5kcyBmb3IgdHJlYXRpbmcgZW5j b2RlZCBiaW5hcnkgYXJ0aWNsZXMuIEluCnBhcnRpY3VsYXIsIFxcW2dudXMt dXUtcG9zdC1uZXdzLWluZXdzXSB3aWxsIGFzayBmb3IgYSBmaWxlIHRvIGlu Y2x1ZGUsIGlmCm9uZSBoYXNuJ3QgYmVlbiBpbmNsdWRlZCBhbHJlYWR5LiBJ dCB3aWxsIHBvc3QsIGZpcnN0LCB0aGUgbWVzc2FnZQpjb21wb3NlZCwgYW5k IHRoZW4gaXQgd2lsbCBwb3N0IGFzIG1hbnkgYWRkaXRpb25hbCBhcnRpY2xl cyBpdCB0YWtlcwp0byBwb3N0IHRoZSBlbnRpcmUgZW5jb2RlZCBmaWxlcy4K CiAgIFJlbGV2YW50IFZhcmlhYmxlcwoKICAgYGdudXMtdXUtcG9zdC1lbmNv ZGUtbWV0aG9kJyAKICAgVGhlcmUgYXJlIHRocmVlIGZ1bmN0aW9ucyBzdXBw bGllZCB3aXRoIGdudXMtdXUgZm9yIGVuY29kaW5nIGZpbGVzOgogICBgZ251 cy11dS1wb3N0LWVuY29kZS11dWVuY29kZScsIHdoaWNoIGRvZXMgc3RyYWln aHQgdXVlbmNvZGluZzsKICAgYGdudXMtdXUtcG9zdC1lbmNvZGUtbWltZScs IHdoaWNoIGVuY29kZXMgd2l0aCBiYXNlNjQgYW5kIGFkZHMgTUlNRSAKICAg aGVhZGVyczsgYW5kIGBnbnVzLXV1LXBvc3QtZW5jb2RlLW1pbWUtdXVlbmNv ZGUnLCB3aGljaCBlbmNvZGVzIHdpdGggCiAgIHV1ZW5jb2RlIGFuZCBhZGRz IE1JTUUgaGVhZGVycy4KIAogICBgZ251cy11dS1wb3N0LWluY2x1ZGUtYmVm b3JlLWNvbXBvc2luZycKICAgTm9uLW5pbCBtZWFucyB0aGF0IGdudXMtdXUg d2lsbCBhc2sgZm9yIGEgZmlsZSB0byBlbmNvZGUgYmVmb3JlIHlvdQogICBj b21wb3NlIHRoZSBhcnRpY2xlLiAgSWYgdGhpcyB2YXJpYWJsZSBpcyB0LCB5 b3UgY2FuIGVpdGhlciBpbmNsdWRlCiAgIGFuIGVuY29kZWQgZmlsZSB3aXRo IGBDLWMgQy1pJyBvciBoYXZlIG9uZSBpbmNsdWRlZCBmb3IgeW91IHdoZW4g eW91IAogICBwb3N0IHRoZSBhcnRpY2xlLgoKICAgYGdudXMtdXUtcG9zdC1s ZW5ndGgnCiAgIE1heGltdW0gbGVuZ3RoIG9mIGFuIGFydGljbGUuIFRoZSBl bmNvZGVkIGZpbGUgd2lsbCBiZSBzcGxpdCBpbnRvIGhvdyAKICAgbWFueSBh cnRpY2xlcyBpdCB0YWtlcyB0byBwb3N0IHRoZSBlbnRpcmUgZmlsZS4KCiAg IGBnbnVzLXV1LXBvc3Qtc2VwYXJhdGUtZGVzY3JpcHRpb24nCiAgIE5vbi1u aWwgbWVhbnMgdGhhdCB0aGUgZGVzY3JpcHRpb24gd2lsbCBiZSBwb3N0ZWQg aW4gYSBzZXBhcmF0ZSAKICAgYXJ0aWNsZS4gVGhlIGZpcnN0IGFydGljbGUg d2lsbCB0eXBpY2FsbHkgYmUgbnVtYmVyZWQgKDAveCkuIElmIAogICB0aGlz IHZhcmlhYmxlIGlzIG5pbCwgdGhlIGRlc2NyaXB0aW9uIHRoZSB1c2VyIGVu dGVycyB3aWxsIGJlIAogICBpbmNsdWRlZCBhdCB0aGUgYmVnaW5uaW5nIG9m IHRoZSBmaXJzdCBhcnRpY2xlLCB3aGljaCB3aWxsIGJlIAogICBudW1iZXJl ZCAoMS94KS4gRGVmYXVsdCBpcyB0LgoKICAgYGdudXMtdXUtcG9zdC10aHJl YWRlZCcKICAgTm9uLW5pbCBtZWFucyB0aGF0IGdudXMtdXUgd2lsbCBwb3N0 IHRoZSBlbmNvZGVkIGZpbGUgaW4gYSB0aHJlYWQuCiAgIFRoaXMgbWF5IG5v dCBiZSBzbWFydCwgYXMgbm8gb3RoZXIgZGVjb2RlciBJIGhhdmUgc2VlbiBh cmUgYWJsZSB0bwogICBmb2xsb3cgdGhyZWFkcyB3aGVuIGNvbGxlY3Rpbmcg dXVlbmNvZGVkIGFydGljbGVzLiAoV2VsbCwgSSBoYXZlIHNlZW4KICAgb25l IHBhY2thZ2UgdGhhdCBkb2VzIHRoYXQgLSBnbnVzLXV1LCBidXQgc29tZWhv dywgSSBkb24ndCB0aGluayB0aGF0IAogICBjb3VudHMuLi4pIERlZmF1bHQg aXMgbmlsLgoiCiAgKGludGVyYWN0aXZlKQogIDs7IHJlcXVpcmUuLi4KICAo b3IgKGZib3VuZHAgJ21haWwtc2V0dXApIChsb2FkICJzZW5kbWFpbCIpKQog IChraWxsLWFsbC1sb2NhbC12YXJpYWJsZXMpCiAgKG1ha2UtbG9jYWwtdmFy aWFibGUgJ21haWwtcmVwbHktYnVmZmVyKQogIChzZXRxIG1haWwtcmVwbHkt YnVmZmVyIG5pbCkKICAoc2V0LXN5bnRheC10YWJsZSB0ZXh0LW1vZGUtc3lu dGF4LXRhYmxlKQogICh1c2UtbG9jYWwtbWFwIGdudXMtdXUtcG9zdC1yZXBs eS1tb2RlLW1hcCkKICAoc2V0cSBsb2NhbC1hYmJyZXYtdGFibGUgdGV4dC1t b2RlLWFiYnJldi10YWJsZSkKICAoc2V0cSBtYWpvci1tb2RlICdnbnVzLXV1 LXBvc3QtcmVwbHktbW9kZSkKICAoc2V0cSBtb2RlLW5hbWUgIkdudXMgVVUg TmV3cyIpCiAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ3BhcmFncmFwaC1zZXBh cmF0ZSkKICAobWFrZS1sb2NhbC12YXJpYWJsZSAncGFyYWdyYXBoLXN0YXJ0 KQogIChzZXRxIHBhcmFncmFwaC1zdGFydCAoY29uY2F0ICJeIiAocmVnZXhw LXF1b3RlIG1haWwtaGVhZGVyLXNlcGFyYXRvcikKCQkJCSIkXFx8IiBwYXJh Z3JhcGgtc3RhcnQpKQogIChzZXRxIHBhcmFncmFwaC1zZXBhcmF0ZSAoY29u Y2F0ICJeIiAocmVnZXhwLXF1b3RlIG1haWwtaGVhZGVyLXNlcGFyYXRvcikK CQkJCSAgICIkXFx8IiBwYXJhZ3JhcGgtc2VwYXJhdGUpKQogIChydW4taG9v a3MgJ3RleHQtbW9kZS1ob29rICdnbnVzLXV1LXBvc3QtcmVwbHktbW9kZS1o b29rKSkKCmQxNTE1IDEzCmExNTI3IDYKICAobGV0IChuZXdzLXJlcGx5LW1v ZGUpCiAgICAoZnNldCAnbmV3cy1yZXBseS1tb2RlICdnbnVzLXV1LXBvc3Qt cmVwbHktbW9kZSkKICAgIChnbnVzLXN1bW1hcnktcG9zdC1uZXdzKQogICAg KGlmIGdudXMtdXUtcG9zdC1pbmNsdWRlLWJlZm9yZS1jb21wb3NpbmcKCShz YXZlLWV4Y3Vyc2lvbiAoc2V0cSBnbnVzLXV1LXBvc3QtaW5zZXJ0ZWQtZmls ZS1uYW1lIAoJCQkgICAgICAoZ251cy11dS1wb3N0LWluc2VydC1iaW5hcnkp KSkpKSkKQAoKCjEuMTAKbG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioq CkAKdGV4dApAZDMwIDEKYTMwIDEKKHJlcXVpcmUgJ2dudXMtbWVzc2FnZSkK ZDEwNzcgMQphMTA3NyAxCiAgICAoaWYgKHN0cmluZy1tYXRjaCAiKFswLTld KyAqL1swLTldKylcXHwoWzAtOV0rICogb2YgKlswLTldKykiCkAKCgoxLjkK bG9nCkAqKiogZW1wdHkgbG9nIG1lc3NhZ2UgKioqCkAKdGV4dApAZDMwIDEK ZDI5OSAxCmEyOTkgMQogIChnbnVzLXV1LWRlY29kZS13aXRoLW1ldGhvZCAn Z251cy11dS1zYXZlLWFydGljbGUgbiBuaWwpCmQzNjUgMQphMzY1IDEKKGRl ZnVuIGdudXMtdXUtZGlnZXN0LWFuZC1mb3J3YXJkIChuKQpkMzcwIDMKYTM3 MiAxCgkoZmlsZSAoY29uY2F0IGdudXMtdXUtd29yay1kaXIgKG1ha2UtdGVt cC1uYW1lICJmb3J3YXJkIikpKSkKZDM3NCAzCmEzNzYgMQogICAgKHN3aXRj aC10by1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlICIqZ251cy11dS1mb3J3 YXJkKiIpKQpkMzgxIDE4CmEzOTggMQogICAgKGZ1bmNhbGwgZ251cy1tYWls LWZvcndhcmQtbWV0aG9kKSkpCmQ0MDUgMQpkNDE2IDEKZDQyNyAxCmQ0Mzgg MQpkNDQ5IDEKZDQ1MSAxCmE0NTEgMQoJc3ViamVjdCBhcnRpY2xlcyB0b3Rh bCkKZDQ1NiA1CmE0NjAgNAoJKHNldHEgc3ViamVjdCAoaGVhZGVyLXN1Ympl Y3QgKGdudXMtZ2V0LWhlYWRlci1ieS1udW1iZXIgKGNhciBtYXJrZWQpKSkK CSAgICAgIGFydGljbGVzIChnbnVzLXV1LWZpbmQtYXJ0aWNsZXMtbWF0Y2hp bmcgCgkJCShnbnVzLXV1LXJlZ2luaXplLXN0cmluZyBzdWJqZWN0KSkKCSAg ICAgIHRvdGFsIChuY29uYyB0b3RhbCBhcnRpY2xlcykpCmQ0NzIgMQpkNTIw IDEKYTUyMCAxCihkZWZ1biBnbnVzLXV1LWRlY29kZS13aXRoLW1ldGhvZCAo bWV0aG9kIG4gJm9wdGlvbmFsIHNhdmUpCmQ1MzAgMQphNTMwIDEKICAgIChn bnVzLXN1bW1hcnktaW5zZXJ0LXBzZXVkb3MgZmlsZXMpKSkKZDcyNSA1CmE3 MjkgNAogICAgICAgKHNldGNhciBmaWxlcyAoY29ucyAoY29ucyAnZXhlY3V0 ZSAoaWYgKHN0cmluZy1tYXRjaCAiJSIgYWN0aW9uKQoJCQkJCSAgICAgIChm b3JtYXQgYWN0aW9uIG5hbWUpCgkJCQkJICAgIChjb25jYXQgYWN0aW9uICIg IiBuYW1lKSkpCgkJCSAgIChjYXIgZmlsZXMpKSkpCmQ5ODggMQpACgoKMS44 CmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQ1MTQg MQphNTE0IDEKCQkgICAgICAoZ251cy15LW9yLW4tcCAoZm9ybWF0ICIlcyBl eGlzdHM7IG92ZXJ3cml0ZT8gIikpKQpkOTUwIDEKYTk1MCAxCiAgICAgICht ZXNzYWdlICJHZXR0aW5nIGFydGljbGUgJWQiIGFydGljbGUpCmQxMDQzIDcK QAoKCjEuNwpsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0 CkBkMjQ2IDMKZDQ1NSAzNApkNTA1IDEKYTUwNSAxCglmaWxlKQpkNTA5IDcK YTUxNSAzCgkgICAoY29weS1maWxlIGZpbGUgKGlmIChmaWxlLWRpcmVjdG9y eS1wIGRpcikKCQkJICAgICAgIChjb25jYXQgZGlyIChmaWxlLW5hbWUtbm9u ZGlyZWN0b3J5IGZpbGUpKSBkaXIpCgkJICAgICAgMSB0KSkKZDY2MCAyNQpA CgoKMS42CmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQK QGQ1MCAxCmE1MCAyCgogICJEZWZhdWx0IGFjdGlvbnMgdG8gYmUgdGFrZW4g d2hlbiB0aGUgdXNlciBhc2tzIHRvIHZpZXcgYSBmaWxlLiAgCmQ4MCAxCmE4 MCAxCiAgIlZhcmlhYmxlIGRldGFpbGluZyB3aGF0IGFjdGlvbnMgYXJlIHRv IGJlIHRha2VuIHRvIHZpZXcgYSBmaWxlLgpkODYgMQphODYgMQogICJWYXJp YWJsZSBzYXlpbmcgd2hhdCBhY3Rpb25zIGFyZSB0byBiZSB0YWtlbiBpZiBu byBydWxlIG1hdGNoZWQgdGhlIGZpbGUgbmFtZS4KZDEwNyAxCmExMDcgMQog ICJBIGxpc3QgdGhhdCBjYW4gYmUgc2V0IHRvIG92ZXJyaWRlIHRoZSBkZWZh dWx0IGFyY2hpdmUgdW5wYWNraW5nIGNvbW1hbmRzLgpkMTE1IDEKYTExNSAx CiAgIkEgcmVndWxhciBleHByZXNzaW9uIHNheWluZyB3aGF0IGZpbGVzIHNo b3VsZCBub3QgYmUgdmlld2VkIGJhc2VkIG9uIG5hbWUuCmQxMjUgMQphMTI1 IDEKICAiQSByZWd1bGFyIGV4cHJlc3Npb24gc2F5aW5nIHdoYXQgZmlsZXMg dGhhdCBzaG91bGRuJ3QgYmUgdmlld2VkLCBiYXNlZCBvbiBNSU1FIGZpbGUg dHlwZS4KZDE3OCAxCmExNzggMQogICJWYXJpYWJsZSBzYXlpbmcgd2hlcmUg Z251cy11dSBpcyB0byBkbyBpdHMgd29yay4KZDE4MiAxCmExODIgMQogICJO b24tbmlsIG1lYW5zIHRoYXQgZ251cy11dSB3b24ndCBwZWVrIGluc2lkZSBh cmNoaXZlcyBsb29raW5nIGZvciBmaWxlcyB0byBkaXNwYXkuIApkMTg2IDEK YTE4NiAxCiAgIk5vbi1uaWwgbWVhbnMgdGhhdCB0aGUgdXNlciB3aWxsIGFs d2F5cyBiZSBhc2tlZCB0byBzYXZlIGEgZmlsZSBhZnRlciB2aWV3aW5nIGl0 LgpkMTkxIDEKYTE5MSAxCiAgIk5vbi1uaWwgbWVhbnMgdGhhdCBnbnVzLXV1 IHdpbGwgaWdub3JlIHRoZSBkZWZhdWx0IHZpZXdpbmcgcnVsZXMuCmQxOTUg MQphMTk1IDEKICAiTm9uLW5pbCBtZWFucyB0aGF0IGdudXMtdXUgd2lsbCBp Z25vcmUgdGhlIGRlZmF1bHQgYXJjaGl2ZSB1bnBhY2tpbmcgY29tbWFuZHMu ICAKZDE5OSAxCmExOTkgMQogICJOb24tbmlsIG1lYW5zIHRoYXQgZ251cy11 dSB3aWxsIHN0cmlwIGFsbCBjYXJyaWFnZSByZXR1cm5zIGZyb20gYXJ0aWNs ZXMuCmQyMDMgMQphMjAzIDEKICAiTm9uLW5pbCBtZWFucyB0aGF0IGZpbGVz IHdpbGwgYmUgdmlld2VkIHdpdGggbWV0YW1haWwuCmQyMDkgMQphMjA5IDEK ICAiTm9uLW5pbCBtZWFucyB0aGF0IGdudXMtdXUgd2lsbCBtYXJrIGFydGlj bGVzIHRoYXQgd2VyZSB1bnN1Y2Nlc3NmdWxseSBkZWNvZGVkIGFzIHVucmVh ZC4gCmQyMTMgMQphMjEzIDEKICAiTm9uLW5pbCBtZWFucyB0aGF0IGdudXMt dXUgd2lsbCAqdHJ5KiB0byBmaXggdXVlbmNvZGVkIGZpbGVzIHRoYXQgaGF2 ZSBoYWQgdHJhbGluZyBzcGFjZXMgZGVsZXRlZC4gCmQyMTcgMQphMjE3IDEK ICAiTm9uLW5pbCBtZWFucyB0aGF0IGdudXMtdXUsIHdoZW4gYXNrZWQgdG8g c2F2ZSB3aXRob3V0IGRlY29kaW5nLCB3aWxsIHNhdmUgaW4gZGlnZXN0cy4K ZDIyNCAxCmEyMjQgMQogICJOb24tbmlsIG1lYW5zIHRoYXQgZ251cy11dSB3 aWxsIHNhdmUgYXJ0aWNsZXMgaW4gc2VwYXJhdGUgZmlsZXMuIikKQAoKCjEu NQpsb2cKQCoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkNDI3 IDQKYTQzMCA3Cgkoc2V0cSBzdWJqZWN0IChoZWFkZXItc3ViamVjdCAKCQkg ICAgICAgKGdudXMtZ2V0aGFzaCAKCQkJKGludC10by1zdHJpbmcgKGNhciBt YXJrZWQpKQoJCQlnbnVzLW5ld3Nncm91cC1oZWFkZXJzLWhhc2h0Yi1ieS1u dW1iZXIpKSkKCShzZXRxIGFydGljbGVzIChnbnVzLXV1LWZpbmQtYXJ0aWNs ZXMtbWF0Y2hpbmcgCgkJCShnbnVzLXV1LXJlZ2luaXplLXN0cmluZyBzdWJq ZWN0KSkpCgkoc2V0cSB0b3RhbCAobmNvbmMgdG90YWwgYXJ0aWNsZXMpKQpk NDcyIDQKYTQ3NSA0CiAgICAgIChjb3B5LWZpbGUgZmlsZSAoaWYgKGZpbGUt ZGlyZWN0b3J5LXAgZGlyKQoJCQkgIChjb25jYXQgZGlyIChmaWxlLW5hbWUt bm9uZGlyZWN0b3J5IGZpbGUpKQoJCQlkaXIpCgkJIHQpCmQxNTEwIDQKYTE1 MTMgNAogIChzZXRxIHBhcmFncmFwaC1zdGFydCAoY29uY2F0ICJeIiBtYWls LWhlYWRlci1zZXBhcmF0b3IgIiRcXHwiCgkJCQlwYXJhZ3JhcGgtc3RhcnQp KQogIChzZXRxIHBhcmFncmFwaC1zZXBhcmF0ZSAoY29uY2F0ICJeIiBtYWls LWhlYWRlci1zZXBhcmF0b3IgIiRcXHwiCgkJCQkgICBwYXJhZ3JhcGgtc2Vw YXJhdGUpKQpkMTU3MSAxCmExNTcxIDEKICAgIChyZS1zZWFyY2gtZm9yd2Fy ZCBtYWlsLWhlYWRlci1zZXBhcmF0b3IpCmQxNjczIDEKYTE2NzMgMQoJCW1h aWwtaGVhZGVyLXNlcGFyYXRvcikgbmlsIHQpKQpkMTY5NSAyCmExNjk2IDEK ICAgIChzZWFyY2gtZm9yd2FyZCBtYWlsLWhlYWRlci1zZXBhcmF0b3Igbmls IHQpCmQxNzU4IDIKYTE3NTkgMQoJKHJlLXNlYXJjaC1mb3J3YXJkIG1haWwt aGVhZGVyLXNlcGFyYXRvciBuaWwgdCkKQAoKCjEuNApsb2cKQCoqKiBlbXB0 eSBsb2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBkNCAxCmE0IDEKOzsgQXV0aG9y OiBMYXJzIEluZ2VicmlndHNlbiA8bGFyc2lAQGlmaS51aW8ubm8+CmQyNTYg MQpkMjY3IDUKYTI3MSAxCiAgKGludGVyYWN0aXZlICJQXG5EV2hlcmUgZG8g eW91IHdhbnQgdG8gc2F2ZSB0aGUgZmlsZShzKT8gIikKZDI4MSA1CmEyODUg MQogIChpbnRlcmFjdGl2ZSAiUFxuRFdoZXJlIGRvIHlvdSB3YW50IHRvIHNh dmUgdGhlIGZpbGUocyk/ICIpCmQyOTAgNQphMjk0IDEKICAoaW50ZXJhY3Rp dmUgIlBcbkRXaGVyZSBkbyB5b3Ugd2FudCB0byBzYXZlIHRoZSBmaWxlKHMp PyAiKQpkMzAyIDUKYTMwNiAxCiAgKGludGVyYWN0aXZlICJQXG5EV2hlcmUg ZG8geW91IHdhbnQgdG8gc2F2ZSB0aGUgZmlsZShzKT8gIikKZDMxMiAxCmEz MTIgMQogIChsZXQgKChnbnVzLXZpZXctcHNldWRvcyAnYXV0b21hdGljKSkK ZDMxNyA2CmEzMjIgMgogIChpbnRlcmFjdGl2ZSAiUFxuRFdoZXJlIGRvIHlv dSB3YW50IHRvIHNhdmUgdGhlIGZpbGUocyk/ICIpCiAgKGxldCAoKGdudXMt dmlldy1wc2V1ZG9zICdhdXRvbWF0aWMpKQpkMzI4IDEKYTMyOCAxCiAgKGxl dCAoKGdudXMtdmlldy1wc2V1ZG9zICdhdXRvbWF0aWMpKQpkMzMzIDYKYTMz OCAyCiAgKGludGVyYWN0aXZlICJQXG5EV2hlcmUgZG8geW91IHdhbnQgdG8g c2F2ZSB0aGUgZmlsZShzKT8gIikKICAobGV0ICgoZ251cy12aWV3LXBzZXVk b3MgJ2F1dG9tYXRpYykpCmQzNDMgNQphMzQ3IDIKICAoaW50ZXJhY3RpdmUg IlBcbkRXaGVyZSBkbyB5b3Ugd2FudCB0byBzYXZlIHRoZSBmaWxlKHMpPyAi KQogIChsZXQgKChnbnVzLXZpZXctcHNldWRvcyAnYXV0b21hdGljKSkKZDM1 MiA1CmEzNTYgMgogIChpbnRlcmFjdGl2ZSAiUFxuRFdoZXJlIGRvIHlvdSB3 YW50IHRvIHNhdmUgdGhlIGZpbGUocyk/ICIpCiAgKGxldCAoKGdudXMtdmll dy1wc2V1ZG9zICdhdXRvbWF0aWMpKQpkNDYwIDEKZDQ3NyAyCmE0NzggMQoJ CQlkaXIpKQpkOTAyIDIKYTkwMyAxCiAgICAgIChnbnVzLXN1bW1hcnktbWFy ay1hcy1yZWFkIGFydGljbGUpCmE5NjUgMQogICAgKHJ1bi1ob29rcyAnZ251 cy1tYXJrLWFydGljbGUtaG9vaykKQAoKCjEuMwpsb2cKQCoqKiBlbXB0eSBs b2cgbWVzc2FnZSAqKioKQAp0ZXh0CkBhMjQ3IDEKKGRlZnZhciBnbnVzLXV1 LWxpc3Qtb2YtZmlsZXMtZGVjb2RlZCBuaWwpCmQyOTIgMzcKZDM1NyAxMApk NDExIDE1CmE0MjUgMQo7OyBXb3JrIGZ1bmN0aW9ucwpkNDM1IDEKYTQzNSAx CiAgICAoc2V0cSBmaWxlcyAoZ251cy11dS1nZXQtYWN0aW9ucyBmaWxlcykp CmQ4MjggMgphODI5IDEKCWFydGljbGUgcmVzdWx0LWZpbGUgcmVzdWx0LWZp bGVzIHByb2Nlc3Mtc3RhdGUgYXJ0aWNsZS1idWZmZXIpCmQ4ODQgMQpkODkx IDMKYTg5MyAxCgkgICAgKHNldHEgcmVzdWx0LWZpbGVzIChjb25zIHJlc3Vs dC1maWxlIHJlc3VsdC1maWxlcykpCmE5MDMgMgo7ICAgICAgKHNldHEgcmVz dWx0LWZpbGUgbmlsKQoKZDk0NyAxCmE5NDcgMwogICAgKHNldHEgZ251cy11 dS1saXN0LW9mLWZpbGVzLWRlY29kZWQgcmVzdWx0LWZpbGVzKQogICAgKGFu ZCByZXN1bHQtZmlsZXMKCSAobWFwY2FyIChsYW1iZGEgKGZpbGUpIChsaXN0 IChjb25zICduYW1lIGZpbGUpKSkgcmVzdWx0LWZpbGVzKSkpKQpACgoKMS4y CmxvZwpAKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgpACnRleHQKQGQxIDEK YTEgMQo7OzsgZ251cy11dS5lbCAtLS0gZXh0cmFjdCwgdmlldyBvciBzYXZl ICh1dSllbmNvZGVkIGZpbGVzIGZyb20gR251cwpkNiAxCmE2IDIKOzsgVmVy c2lvbjogdjIuOS40Cjs7IExhc3QgTW9kaWZpZWQ6IDE5OTQvMTAvMDMKYTI2 IDEwNQo7OyBBbGwgZ251cy11dSBjb21tYW5kcyBzdGFydCB3aXRoIGBDLWMg Qy12Jy4KOzsKOzsgU2hvcnQgdXNlciBtYW51YWwgZm9yIHRoaXMgcGFja2Fn ZToKOzsKOzsgVHlwZSBgQy1jIEMtdiBDLXYnIHRvIGRlY29kZSBhbmQgdmll dyBhbGwgYXJ0aWNsZXMgb2YgdGhlIGN1cnJlbnQKOzsgc2VyaWVzLiBUaGUg ZGVmYXVsdHMgc2hvdWxkIGJlIHJlYXNvbmFibGUgZm9yIG1vc3Qgc3lzdGVt cy4KOzsKOzsgVHlwZSBgQy1jIEMtdiBDLWknIHRvIHRvZ2dsZSBpbnRlcmFj dGl2ZSBtb2RlLiBXaGVuIHVzaW5nCjs7IGludGVyYWN0aXZlIG1vZGUsIGdu dXMtdXUgd2lsbCB3aGljaCBkaXNwbGF5IGEgYnVmZmVyIHRoYXQgd2lsbCBs ZXQKOzsgeW91IHNlZSB0aGUgc3VnZ2VzdGVkIGNvbW1hbmRzIHRvIGJlIGV4 ZWN1dGVkLgo7Owo7OyBUbyBwb3N0IGFuIHV1ZW5jb2RlZCBmaWxlLCB0eXBl IGBDLWMgQy12IHAnLCB3aGljaCB3aWxsIGVudGVyIHlvdQo7OyBpbnRvIGEg YnVmZmVyIGFuYWxvZ291cyB0byB0aGUgb25lIHlvdSB3aWxsIGdldCB3aGVu IHR5cGluZyBgYScuIERvCjs7IGFuIGBNLXggZGVzY3JpYmUtbW9kZScgaW4g dGhpcyBidWZmZXIgdG8gZ2V0IGEgZGVzY3JpcHRpb24gb2Ygd2hhdAo7OyB0 aGlzIGJ1ZmZlciBsZXRzIHlvdSBkby4KOzsKOzsgUmVhZCB0aGUgZG9jdW1l bnRhdGlvbiBvZiB0aGUgYGdudXMtdXUnIGR1bW15IGZ1bmN0aW9uIGZvciBh IG1vcmUKOzsgY29tcGxldGUgZGVzY3JpcHRpb24gb2Ygd2hhdCB0aGlzIHBh Y2thZ2UgZG9lcyBhbmQgaG93IHlvdSBjYW4KOzsgY3VzdG9taXplIGl0IHRv IGZpdCB5b3VyIG5lZWRzLgo7OyAKOzsKOzsKOzsgSGlzdG9yeQo7Owo7OyB2 MS4wOiBGaXJzdCB2ZXJzaW9uIHJlbGVhc2VkIE9jdCAyIDE5OTIuCjs7Cjs7 IHYxLjE6IENoYW5nZWQgYEMtYyBDLXInIHRvIGBDLWMgQy1lJyBhbmQgYEMt YyBDLXAnIHRvIGBDLWMgQy1rJy4KOzsgQ2hhbmdlZCAoc2V0cSBnbnVzLWV4 aXQtZ3JvdXAtaG9vaykgdG8gKGFkZC1ob29rKS4gIFJlbW92ZWQKOzsgY2hl Y2tpbmcgZm9yICJSZToiIGZvciBmaW5kaW5nIHBhcnRzLgo7Owo7OyB2Mi4y OiBGaXhlZCBoYW5kbGluZyBvZiBjdXJydXB0ZWQgYXJjaGl2ZXMuIENoYW5n ZWQgdXVkZWNvZGluZyB0bwo7OyBhbiBhc3luY2hyb25vdXMgcHJvY2VzcyB0 byBhdm9pZCBsb2FkaW5nIHRvbnMgb2YgZGF0YSBpbnRvIGVtYWNzCjs7IGJ1 ZmZlcnMuIE5vIGxvbmdlciByZWFkcyBhcnRpY2xlcyBlbWFjcyBhbHJlYWR5 IGhhdmUgYWJvYXJkLiAgRml4ZWQKOzsgYSBmaXJtZXIgc3VwcG9ydCBmb3Ig c2hhciBmaWxlcy4gTWFkZSByZWdleHAgc2VhcmNoZXMgZm9yIGZpbGVzCjs7 IG1vcmUgY29udmVuaWVudC4gQWRkZWQgYEMtYyBDLWwnIGZvciBlZGl0aW5n IHV1Y29kZSBiZWdpbgo7OyBsaW5lcy4gQWRkZWQgbXVsdGktc3lzdGVtIGRl Y29kZXIgZW50cnkgcG9pbnQuIEFkZGVkIGludGVyYWN0aXZlCjs7IHZpZXcg bW9kZS4gQWRkZWQgZnVuY3Rpb24gZm9yIGRlY29kaW5nIGFuZCBzYXZpbmcg YWxsIHV1ZW5jb2RlZAo7OyBhcnRpY2xlcyBpbiB0aGUgY3VycmVudCBuZXdz Z3JvdXAuCjs7Cjs7IHYyLjM6IEFmdGVyIHN1Z2dlc3Rpb25zIEkgaGF2ZSBj aGFuZ2VkIGFsbCB0aGUgZ251cy11dSBrZXkgYmluZGluZ3MKOzsgdG8gYXZv aWQgaG9nZ2luZyBhbGwgdGhlIHVzZXIga2V5cyAoQy1jIExFVFRFUikuIEFs c28gYWRkZWQKOzsgKHByb3ZpZGUpIGFuZCBmaXhlZCBzb21lIHNhdmluZyBz dHVmZi4gRmlyc3QgcG9zdGVkIHZlcnNpb24gdG8KOzsgZ251LmVtYWNzLnNv dXJjZXMuCjs7Cjs7IHYyLjQ6IEZpeGVkIHNvbWUgbW9yZSBpbiB0aGUgc2F2 ZS1hbGwgY2F0ZWdvcnkuIEF1dG9tYXRpYyBmaXhpbmcgb2YKOzsgdXVjb2Rl ICJiZWdpbiIgbGluZXM6IG5hbWVzIG9uIHRoZSBmb3JtIG9mICJkaXIvZmls ZSIgYXJlCjs7IHRyYW5zbGF0ZWQgaW50byAiZGlyLWZpbGUiLiBBZGRlZCBh IGZ1bmN0aW9uIGZvciBmaXhpbmcgc3RyaXBwZWQKOzsgdXVjb2RlIGFydGlj bGVzLiBBZGRlZCBiaW5oZXggc2F2ZS4KOzsKOzsgdjIuNTogRmlyc3QgdmVy c2lvbiBjb3B5cmlnaHRlZCBieSBGU0YuIENoYW5nZWQgbG90cyBvZgo7OyBk b2N1bWVudGF0aW9uIHN0cmluZ3MuCjs7Cjs7IHYyLjUuMTogQWRkZWQgdXVl bmNvZGUvcG9zdGluZyBjb2RlIHRvIHBvc3QgYmluYXJ5IGZpbGVzLiAKOzsK OzsgdjIuNjogVGhyZWFkIHN1cHBvcnQuIGdudXMtdXUgaXMgbm93IGFibGUg dG8gZGVjb2RlIHV1ZW5jb2RlZCBmaWxlcwo7OyBwb3N0ZWQgaW4gdGhyZWFk cy4gZ251cy11dSBjYW4gYWxzbyBwb3N0IGluIHRocmVhZHMuIEkgZG9uJ3Qg a25vdwo7OyBpZiB0aGlzIGFiaWxpdHkgaXMgb2YgbXVjaCB1c2UgLSBJJ3Zl IG5ldmVyIHNlZW4gYW55b25lIHBvc3QKOzsgdXVlbmNvZGVkIGZpbGVzIGlu IHRocmVhZHMuCjs7Cjs7IHYyLjc6IGdudXMtdXUgaXMgbm93IGFibGUgdG8g ZGVjb2RlIChhbmQgdmlldy9zYXZlKSBtdWx0aXBsZQo7OyBlbmNvZGVkIGZp bGVzIGluIG9uZSBiaWcgZ3VscC4gQWxzbyBhZGRlZCBwc2V1ZG8tbWltZSBz dXBwb3J0Cjs7ICh1c2VycyBjYW4gdXNlIG1ldGFtYWlsIHRvIHZpZXcgZmls ZXMpLCBwb3N0aW5nIHV1ZW5jb2RlZC9taW1lCjs7IGZpbGVzIGFuZCB2YXJp b3VzIG90aGVyIGJpdHMgYW5kIHBpZWNlcy4KOzsKOzsgdjIuNy4xOiBOZXcg ZnVuY3Rpb25zIGZvciBkZWNvZGluZy9zYXZpbmcgdGhyZWFkcyBib3VuZCB0 byBgQy1jCjs7IEMtdiBDLWonLiBIYW5keSB0byBzYXZlIGVudGlyZSB0aHJl YWRzLCBub3QgdmVyeSB1c2VmdWwgZm9yCjs7IGRlY29kaW5nLCBhcyBub2Jv ZHkgcG9zdHMgZW5jb2RlZCBmaWxlcyBpbiB0aHJlYWRzLi4uCjs7Cjs7IHYy LjcuMjogTmV3IGZ1bmN0aW9ucyBmb3IgZGlnZXN0aW5nIGFuZCBmb3J3YXJk aW5nIGFydGljbGVzIGFkZGVkCjs7IG9uIHRoZSBzdWdnZXN0aW9uIG9mIFBl ciBBYnJhaGFtc2VuLiBBbHNvIGFkZGVkIGEgZnVuY3Rpb24gZm9yCjs7IG1h cmtpbmcgdGhyZWFkcy4gCjs7Cjs7IHYyLjg6IEZpeGVkIHNhdmluZyBvcmln aW5hbCBmaWxlcyBpbiBpbnRlcmFjdGl2ZSBtb2RlLiBGaXhlZCBhc2sKOzsg YmVmb3JlL3NhdmUgYWZ0ZXIgdmlldy4gRml4ZWQgc2V0dGluZyB1cCBpbnRl cmFjdGl2ZSBidWZmZXJzLiBBZGRlZAo7OyBzY2FubmluZyBhbmQgcmVzY2Fu bmluZyBmcm9tIGludGVyYWN0aXZlIG1vZGUuIEFkZGVkIHRoZQo7OyBgZ251 cy11dS1pZ25vcmUtZmlsZS1ieS1uYW1lJyBhbmQgYC4uLi1ieS10eXBlJyB2 YXJpYWJsZXMgdG8gYWxsb3cKOzsgdXNlcnMgdG8gc2lmdCBmaWxlcyB0aGV5 IGRvbid0IHdhbnQgdG8gdmlldy4gQXQgdGhlIHN1Z2dlc3Rpb24gb2YKOzsg Ym9yaXNAQGNzLnJvY2hlc3Rlci5lZHUsIGBDLWMgQy12IEMtaCcgaGFzIGJl ZW4gdW5kZWZpbmVkIHRvIGFsbG93Cjs7IHVzZXJzIHRvIHZpZXcgbGlzdCBv ZiBiaW5kaW5nIGJlZ2lubmluZyB3aXRoIGBDLWMgQy12Jy4gRml4ZWQKOzsg dmlld2luZyB3aXRoIGBnbnVzLXV1LWFzeW5jaHJvbm91cycgc2V0LiBUaGUK OzsgImRlY29kZS1hbmQtc2F2ZS92aWV3LWFsbC1hcnRpY2xlcyIgZnVuY3Rp b25zIG5vdyBhY2NlcHRzIHRoZQo7OyBudW1lcmljIHByZWZpeCB0byBkZWxp bWl0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBmaWxlcyB0byBiZQo7OyBkZWNv ZGVkLgo7Owo7OyB2Mi45OiBTcGVlZGVkIHVwIGZldGNoaW5nIG9mIGFydGlj bGVzIGJ5IGJ5cGFzc2luZyB0aGUgZ251cwo7OyBmdW5jdGlvbiBhbmQgZ29p bmcgZGlyZWN0bHkgdG8gYGdudXMtcmVxdWVzdC1hcnRpY2xlJwo7OyBpbnN0 ZWFkLiBTaWduaWZpY2FudCBzcGVlZCBpbmNyZWFzZSwgZXNwZWNpYWxseSB3 aGVuIHVzaW5nIGEgbG9jYWwKOzsgc3Bvb2wuIEFkZGVkIHRoZSBgZ251cy11 dS11bml2ZXJzYWwtcHJlZml4JyBjb21tYW5kIChgQy1jIEMtdiBDLXUnKQo7 OyB0byBhbGxvdyB1c2VycyB0byBwZXJmb3JtIGFueSBqb2Igb24gYWxsIG1h cmtlZCBhcnRpY2xlcy4KOzsKOzsgdjIuOS4xOiBEaXNhYmxlZCBidWZmZXIt dW5kbywgd2hpY2ggc3RvcHBlZCBnbnVzLXV1IGZyb20gbWFraW5nCjs7IGVt YWNzICp2ZXJ5KiBsYXJnZSBpbiBiaWcgbmV3c2dyb3Vwcy4KOzsKOzsgdjIu OS4yOiBBIGZldyBtaW5vciBidWctZml4ZXMuCjs7Cjs7IHYyLjkuMzogRmlu YWxseSBtYW5hZ2VkIHRvIGZpeCB0aGUgYnVnIHRoYXQgbWFkZSBnbnVzLXV1 IGNvcmUgZHVtcAo7OyBlbWFjcyBpbiBodWdlIG5ld3Nncm91cHMuIFRoZSBl cnJvciB3YXMgYSByZXN1bHQgb2Ygbm90IGRlbGV0aW5nIGEKOzsgcHJvY2Vz cyB0aGF0IGhhZCB0ZXJtaW5hdGVkIHdpdGggYW4gZXJyb3IsIHdoaWNoIGxl ZCB0bwo7OyBzZWxlY3QoKSBmYWlsaW5nIG1pc2VyYWJseSBsYXRlci4gQWRk ZWQgdGhlIGBDLWMgQy12IE0tQy13JyBhbmQKOzsgYEMtYyBDLXYgTS13JyBr ZXlzdHJva2VzIGFuZCB0aGUgYC4uLi1tYXJrZWQtZmlsZXMnIGZ1bmN0aW9u cyB0bwo7OyBhbGxvdyB1c2VycyB0byB3YWxrIGFyb3VuZCB0aGUgbmV3c2dy b3VwIGFuZCBtYXJrIHNvbWUgYXJ0aWNsZXMKOzsgaGVyZSBhbmQgdGhlcmUs IHdpdGhvdXQgaGF2aW5nIHRvIHdvcnJ5IGFib3V0IG1hcmtpbmcgZXhhY3Rs eQo7OyByaWdodCwgYW5kIHRoZW4gZGVjb2RpbmcgYWxsIGZpbGVzIHRoYXQg aGFkIGhhZCBzb21lIGFydGljbGVzCjs7IG1hcmtlZC4gCgphMzAgNTUKOzsg QmluZGluZyBvZiBrZXlzIHRvIHRoZSBnbnVzLXV1IGZ1bmN0aW9ucy4KCihk ZWZ2YXIgZ251cy11dS1jdGwtbWFwIG5pbCkKKGRlZmluZS1wcmVmaXgtY29t bWFuZCAnZ251cy11dS1jdGwtbWFwKQooZGVmaW5lLWtleSBnbnVzLXN1bW1h cnktbW9kZS1tYXAgIlxDLWNcQy12IiBnbnVzLXV1LWN0bC1tYXApCgooZGVm aW5lLWtleSBnbnVzLXV1LWN0bC1tYXAgIlxDLXYiICdnbnVzLXV1LWRlY29k ZS1hbmQtdmlldykKKGRlZmluZS1rZXkgZ251cy11dS1jdGwtbWFwICJ2IiAn Z251cy11dS1kZWNvZGUtYW5kLXNhdmUpCihkZWZpbmUta2V5IGdudXMtdXUt Y3RsLW1hcCAiXEMtcyIgJ2dudXMtdXUtc2hhci1hbmQtdmlldykKKGRlZmlu ZS1rZXkgZ251cy11dS1jdGwtbWFwICJzIiAnZ251cy11dS1zaGFyLWFuZC1z YXZlKQooZGVmaW5lLWtleSBnbnVzLXV1LWN0bC1tYXAgIlxDLW0iICdnbnVz LXV1LW11bHRpLWRlY29kZS1hbmQtdmlldykKKGRlZmluZS1rZXkgZ251cy11 dS1jdGwtbWFwICJtIiAnZ251cy11dS1tdWx0aS1kZWNvZGUtYW5kLXNhdmUp CgooZGVmaW5lLWtleSBnbnVzLXV1LWN0bC1tYXAgIlxDLWIiICdnbnVzLXV1 LWRlY29kZS1hbmQtc2hvdy1pbi1idWZmZXIpCgooZGVmaW5lLWtleSBnbnVz LXV1LWN0bC1tYXAgInUiICdnbnVzLXN1bW1hcnktdW5tYXJrLWFsbC1wcm9j ZXNzYWJsZSkKKGRlZmluZS1rZXkgZ251cy11dS1jdGwtbWFwICJcQy1yIiAn Z251cy11dS1tYXJrLWJ5LXJlZ2V4cCkKKGRlZmluZS1rZXkgZ251cy11dS1j dGwtbWFwICJyIiAnZ251cy11dS1tYXJrLXJlZ2lvbikKKGRlZmluZS1rZXkg Z251cy11dS1jdGwtbWFwICJ0IiAnZ251cy11dS1tYXJrLXRocmVhZCkKCihk ZWZpbmUta2V5IGdudXMtdXUtY3RsLW1hcCAiXEMtdSIgJ2dudXMtdXUtbWFy a2VkLXVuaXZlcnNhbC1hcmd1bWVudCkKCihkZWZpbmUta2V5IGdudXMtdXUt Y3RsLW1hcCAiXE0tXEMtdiIgJ2dudXMtdXUtbWFya2VkLWRlY29kZS1hbmQt dmlldykKKGRlZmluZS1rZXkgZ251cy11dS1jdGwtbWFwICJcTS12IiAnZ251 cy11dS1tYXJrZWQtZGVjb2RlLWFuZC1zYXZlKQooZGVmaW5lLWtleSBnbnVz LXV1LWN0bC1tYXAgIlxNLVxDLXMiICdnbnVzLXV1LW1hcmtlZC1zaGFyLWFu ZC12aWV3KQooZGVmaW5lLWtleSBnbnVzLXV1LWN0bC1tYXAgIlxNLXMiICdn bnVzLXV1LW1hcmtlZC1zaGFyLWFuZC1zYXZlKQooZGVmaW5lLWtleSBnbnVz LXV1LWN0bC1tYXAgIlxNLVxDLW0iICdnbnVzLXV1LW1hcmtlZC1tdWx0aS1k ZWNvZGUtYW5kLXZpZXcpCihkZWZpbmUta2V5IGdudXMtdXUtY3RsLW1hcCAi XE0tbSIgJ2dudXMtdXUtbWFya2VkLW11bHRpLWRlY29kZS1hbmQtc2F2ZSkK CihkZWZpbmUta2V5IGdudXMtdXUtY3RsLW1hcCAiZiIgJ2dudXMtdXUtZGln ZXN0LWFuZC1mb3J3YXJkKQooZGVmaW5lLWtleSBnbnVzLXV1LWN0bC1tYXAg IlxNLWYiICdnbnVzLXV1LW1hcmtlZC1kaWdlc3QtYW5kLWZvcndhcmQpCgoo ZGVmaW5lLWtleSBnbnVzLXV1LWN0bC1tYXAgIlxDLWkiICdnbnVzLXV1LXRv Z2dsZS1pbnRlcmFjdGl2ZS12aWV3KQooZGVmaW5lLWtleSBnbnVzLXV1LWN0 bC1tYXAgIlxDLXQiICdnbnVzLXV1LXRvZ2dsZS1hbnktdmFyaWFibGUpCgoo ZGVmaW5lLWtleSBnbnVzLXV1LWN0bC1tYXAgIlxDLWwiICdnbnVzLXV1LWVk aXQtYmVnaW4tbGluZSkKCihkZWZpbmUta2V5IGdudXMtdXUtY3RsLW1hcCAi YSIgJ2dudXMtdXUtZGVjb2RlLWFuZC1zYXZlLWFsbC11bnJlYWQtYXJ0aWNs ZXMpCihkZWZpbmUta2V5IGdudXMtdXUtY3RsLW1hcCAidyIgJ2dudXMtdXUt ZGVjb2RlLWFuZC1zYXZlLWFsbC1hcnRpY2xlcykKKGRlZmluZS1rZXkgZ251 cy11dS1jdGwtbWFwICJcQy1hIiAnZ251cy11dS1kZWNvZGUtYW5kLXZpZXct YWxsLXVucmVhZC1hcnRpY2xlcykKKGRlZmluZS1rZXkgZ251cy11dS1jdGwt bWFwICJcQy13IiAnZ251cy11dS1kZWNvZGUtYW5kLXZpZXctYWxsLWFydGlj bGVzKQooZGVmaW5lLWtleSBnbnVzLXV1LWN0bC1tYXAgIlxNLVxDLXciICdn bnVzLXV1LWRlY29kZS1hbmQtdmlldy1hbGwtbWFya2VkLWZpbGVzKQooZGVm aW5lLWtleSBnbnVzLXV1LWN0bC1tYXAgIlxNLXciICdnbnVzLXV1LWRlY29k ZS1hbmQtc2F2ZS1hbGwtbWFya2VkLWZpbGVzKQoKKGRlZmluZS1rZXkgZ251 cy11dS1jdGwtbWFwICJcQy1qIiAnZ251cy11dS10aHJlYWRlZC1tdWx0aS1k ZWNvZGUtYW5kLXZpZXcpCihkZWZpbmUta2V5IGdudXMtdXUtY3RsLW1hcCAi aiIgJ2dudXMtdXUtdGhyZWFkZWQtbXVsdGktZGVjb2RlLWFuZC1zYXZlKQoK KGRlZmluZS1rZXkgZ251cy11dS1jdGwtbWFwICJwIiAnZ251cy11dS1wb3N0 LW5ld3MpCgo7OyBEdW1teSBmdW5jdGlvbiBnbnVzLXV1CgooZGVmdW4gZ251 cy11dSAoKQogICJnbnVzLXV1IGlzIGEgcGFja2FnZSBmb3IgdXVkZWNvZGlu ZyBhbmQgdmlld2luZyBhcnRpY2xlcy4iCiAgKGludGVyYWN0aXZlKSkKCmQz NCA2CmEzOSA1CiAgKGxpc3QgCiAgICcoIlxcLlxcKGpwZT9nXFx8Z2lmXFx8 dGlmZj9cXHxwW3BnYl1tXFx8eHdkXFx8eGJtXFx8cGN4XFwpJCIgInh2IikK ICAgJygiXFwudGdhJCIgInRnYXRvcHBtICVzIHwgeHYgLSIpCiAgICcoIlxc LnRlP3h0JFxcfFxcLmRvYyRcXHxyZWFkLiptZSIgInh0ZXJtIC1lIGxlc3Mi KQogICAnKCJcXC5cXCh3YXZcXHxhaWZmXFx8aGNvbVxcfHVbYmx3XVxcfHNb YmZ3XVxcfHZvY1xcfHNtcFxcKSQiIApkNDEgOAphNDggOQogICAnKCJcXC5h dSQiICJjYXQgJXMgPiAvZGV2L2F1ZGlvIikKICAgJygiXFwubW9kJCIgInN0 cjMyIikKICAgJygiXFwucHMkIiAiZ2hvc3R2aWV3IikKICAgJygiXFwuZHZp JCIgInhkdmkiKQogICAnKCJcXC5bMS02XSQiICJ4dGVybSAtZSBncm9mZiAt bWFuZG9jIC1UYXNjaWkiKQogICAnKCJcXC5odG1sJCIgInhtb3NhaWMiKQog ICAnKCJcXC5tcGU/ZyQiICJtcGVnX3BsYXkiKQogICAnKCJcXC5cXChmbGNc XHxmbGlcXHxybGVcXHxpZmZcXHxwZnhcXHxhdmlcXHxzbWVcXHxycHphXFx8 ZGxcXHxxdFxcfHJzcmNcXHxtb3ZcXCkkIiAieGFuaW0iKQogICAnKCJcXC5c XCh0YXJcXHxhcmpcXHx6aXBcXHx6b29cXHxhcmNcXHxnelxcfFpcXHxsemhc XHxhclxcfGxoYVxcKSQiIApkNjAgMQphNjAgMQogIChzZXRxIGdudXMtdXUt dXNlci12aWV3LXJ1bGVzIChsaXN0ICcoXCJqcGckXFxcXHxnaWYkXCIgXCJ4 bGlcIikpKQpkNzggMQphNzggNQptYXRjaC4KClVubGVzcywgb2YgY291cnNl LCB5b3UgYXJlIHVzaW5nIHRoZSBpbnRlcmFjdGl2ZSB2aWV3IG1vZGUuIFRo ZW4KYGdudXMtdXUtdXNlci1pbnRlcmFjdGl2ZS12aWV3LXJ1bGVzJyBhbmQK YGdudXMtdXUtdXNlci1pbnRlcmFjdGl2ZS12aWV3LXJ1bGVzLWVuZCcgd2ls bCBiZSB1c2VkIGluc3RlYWQuIikKZDg1IDIKYTg2IDEKKGRlZnZhciBnbnVz LXV1LXVzZXItdmlldy1ydWxlcy1lbmQgbmlsCmE5MCAyMQooZGVmdmFyIGdu dXMtdXUtdXNlci1pbnRlcmFjdGl2ZS12aWV3LXJ1bGVzIG5pbAogICJWYXJp YWJsZSBkZXRhaWxpbmcgd2hhdCBhY3Rpb25zIGFyZSB0byBiZSB0YWtlbiB0 byB2aWV3IGEgZmlsZSB3aGVuIHVzaW5nIGludGVyYWN0aXZlIG1vZGUuClNl ZSB0aGUgZG9jdW1lbnRhdGlvbiBvbiB0aGUgYGdudXMtdXUtZGVmYXVsdC12 aWV3LXJ1bGVzJyB2YXJpYWJsZSBmb3IgCmRldGFpbHMuIikKCihkZWZ2YXIg Z251cy11dS11c2VyLWludGVyYWN0aXZlLXZpZXctcnVsZXMtZW5kIG5pbAog ICJWYXJpYWJsZSBzYXlpbmcgd2hhdCBhY3Rpb25zIGFyZSB0byBiZSB0YWtl biBpZiBubyBydWxlIG1hdGNoZWQgdGhlIGZpbGUgbmFtZSB3aGVuIHVzaW5n IGludGVyYWN0aXZlIG1vZGUuClNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvbiB0 aGUgYGdudXMtdXUtZGVmYXVsdC12aWV3LXJ1bGVzJyB2YXJpYWJsZSBmb3Ig CmRldGFpbHMuIikKCihkZWZ2YXIgZ251cy11dS1kZWZhdWx0LWludGVyYWN0 aXZlLXZpZXctcnVsZXMtYmVnaW4KICAobGlzdAogICAnKCJcXC50ZT94dCRc XHxcXC5kb2MkXFx8cmVhZC4qbWVcXHxcXC5jPyRcXHxcXC5oJFxcfFxcLmJh dCRcXHxcXC5hc20kXFx8bWFrZWZpbGUiICJjYXQgJXMgfCBzZWQgcy9cci8v ZyIpCiAgICcoIlxcLnBhcyQiICJjYXQgJXMgfCBzZWQgcy9cci8vZyIpCiAg ICcoIlxcLlsxLTldJCIgImdyb2ZmIC1tYW5kb2MgLVRhc2NpaSAlcyB8IHNl ZCBzL1xiLi8vZyIpCiAgICkpCgooZGVmdmFyIGdudXMtdXUtZGVmYXVsdC1p bnRlcmFjdGl2ZS12aWV3LXJ1bGVzLWVuZAogIChsaXN0CiAgICcoIi4qIiAi ZmlsZSIpKSkKCmQ5NCA5CmExMDIgMTAKICAobGlzdCAnKCJcXC50YXIkIiAi dGFyIHhmIikKCScoIlxcLnppcCQiICJ1bnppcCAtbyIpCgknKCJcXC5hciQi ICJhciB4IikKCScoIlxcLmFyaiQiICJ1bmFyaiB4IikKCScoIlxcLnpvbyQi ICJ6b28gLWUiKQoJJygiXFwuXFwobHpoXFx8bGhhXFwpJCIgImxoYSB4IikK CScoIlxcLlokIiAidW5jb21wcmVzcyIpCgknKCJcXC5neiQiICJndW56aXAi KQoJJygiXFwuYXJjJCIgImFyYyAteCIpKQogICkKZDExMiAyCmExMTMgMgog ICAgKGxpc3QgJyhcIlxcXFwudGFyJFwiIFwidW50YXJcIikKICAgICAgICAg ICcoXCJcXFxcLnppcCRcIiBcInppcCAteFwiKSkpIikKZDEzOCAzNwphMTc0 IDM3CiAgKGxpc3QgJygiXFwuZ2lmJCIgImltYWdlL2dpZiIpCgknKCJcXC5q cGU/ZyQiICJpbWFnZS9qcGVnIikKCScoIlxcLnRpZmY/JCIgImltYWdlL3Rp ZmYiKQoJJygiXFwueHdkJCIgImltYWdlL3h3ZCIpCgknKCJcXC5wYm0kIiAi aW1hZ2UvcGJtIikKCScoIlxcLnBnbSQiICJpbWFnZS9wZ20iKQoJJygiXFwu cHBtJCIgImltYWdlL3BwbSIpCgknKCJcXC54Ym0kIiAiaW1hZ2UveGJtIikK CScoIlxcLnBjeCQiICJpbWFnZS9wY3giKQoJJygiXFwudGdhJCIgImltYWdl L3RnYSIpCgknKCJcXC5wcyQiICJpbWFnZS9wb3N0c2NyaXB0IikKCScoIlxc LmZsaSQiICJ2aWRlby9mbGkiKQoJJygiXFwud2F2JCIgImF1ZGlvL3dhdiIp CgknKCJcXC5haWZmJCIgImF1ZGlvL2FpZmYiKQoJJygiXFwuaGNvbSQiICJh dWRpby9oY29tIikKCScoIlxcLnZvYyQiICJhdWRpby92b2MiKQoJJygiXFwu c21wJCIgImF1ZGlvL3NtcCIpCgknKCJcXC5tb2QkIiAiYXVkaW8vbW9kIikK CScoIlxcLmR2aSQiICJpbWFnZS9kdmkiKQoJJygiXFwubXBlP2ckIiAidmlk ZW8vbXBlZyIpCgknKCJcXC5hdSQiICJhdWRpby9iYXNpYyIpCgknKCJcXC5c XCh0ZT94dFxcfGRvY1xcfGNcXHxoXFwpJCIgInRleHQvcGxhaW4iKQoJJygi XFwuXFwoY1xcfGhcXCkkIiAidGV4dC9zb3VyY2UiKQoJJygicmVhZC4qbWUi ICJ0ZXh0L3BsYWluIikKCScoIlxcLmh0bWwkIiAidGV4dC9odG1sIikKCSco IlxcLmJhdCQiICJ0ZXh0L2JhdCIpCgknKCJcXC5bMS02XSQiICJ0ZXh0L21h biIpCgknKCJcXC5mbGMkIiAidmlkZW8vZmxjIikKCScoIlxcLnJsZSQiICJ2 aWRlby9ybGUiKQoJJygiXFwucGZ4JCIgInZpZGVvL3BmeCIpCgknKCJcXC5h dmkkIiAidmlkZW8vYXZpIikKCScoIlxcLnNtZSQiICJ2aWRlby9zbWUiKQoJ JygiXFwucnB6YSQiICJ2aWRlby9wcnphIikKCScoIlxcLmRsJCIgInZpZGVv L2RsIikKCScoIlxcLnF0JCIgInZpZGVvL3F0IikKCScoIlxcLnJzcmMkIiAi dmlkZW8vcnNyYyIpCgknKCJcXC4uKiQiICJ1bmtub3duL3Vua25vd24iKSkp CmExOTAgOQooZGVmdmFyIGdudXMtdXUtYXN5bmNocm9ub3VzIG5pbAogICJO b24tbmlsIG1lYW5zIHRoYXQgZmlsZXMgd2lsbCBiZSB2aWV3ZWQgYXN5bmNo cm9ub3VzbHkuCkRlZmF1bHQgaXMgbmlsLiIpCgooZGVmdmFyIGdudXMtdXUt YXNrLWJlZm9yZS12aWV3IG5pbAogICJOb24tbmlsIG1lYW5zIHRoYXQgZ251 cy11dSB3aWxsIGFzayB5b3UgYmVmb3JlIHZpZXdpbmcgZWFjaCBmaWxlLiAK RXNwZWNpYWxseSB1c2VmdWwgd2hlbiBgZ251cy11dS1hc3luY2hyb25vdXMn IGlzIHNldC4gRGVmYXVsdCBpcwpuaWwuIikKCmEyMTIgNAooZGVmdmFyIGdu dXMtdXUtb3V0cHV0LXdpbmRvdy1oZWlnaHQgMjAgCiAgIlRoaXMgdmFyaWFi bGUgc2F5cyBob3cgdGFsbCB0aGUgb3V0cHV0IGJ1ZmZlciB3aW5kb3cgaXMg dG8gYmUgd2hlbiB1c2luZyBpbnRlcmFjdGl2ZSB2aWV3IG1vZGUuIApDaGFu Z2UgaXQgYXQgeW91ciBjb252ZW5pZW5jZS4gRGVmYXVsdCBpcyAyMC4iKQoK YTIxNiA1CihkZWZ2YXIgZ251cy11dS11c2UtaW50ZXJhY3RpdmUtdmlldyBu aWwKICAiTm9uLW5pbCBtZWFucyB0aGF0IGdudXMtdXUgd2lsbCB1c2UgaW50 ZXJhY3RpdmUgdmlld2luZyBtb2RlLgpHbnVzLXV1IHdpbGwgY3JlYXRlIGEg c3BlY2lhbCBidWZmZXIgd2hlcmUgdGhlIHVzZXIgbWF5IGNob29zZQppbnRl cmFjdGl2ZWx5IHdoaWNoIGZpbGVzIHRvIHZpZXcgYW5kIGhvdy4gRGVmYXVs dCBpcyBuaWwuIikKCmQyMjUgMQphMjI1IDEKICAiTm9uLW5pbCBtZWFucyB0 aGF0IGdudXMtdXUgd2lsbCBzYXZlIGFydGlsY2VzIGluIHNlcGFyYXRlIGZp bGVzLiIpCmQyMjcgMQpkMjI5IDEKYTIyOSAxCjs7IEludGVybmFsIHZhcmlh YmxlcwphMjUwIDEKKGRlZnZhciBnbnVzLXV1LWludGVyYWN0aXZlLWZpbGUt bGlzdCBuaWwpCmEyNTMgMQooZGVmY29uc3QgZ251cy11dS1pbnRlcmFjdGl2 ZS1idWZmZXItbmFtZSAiKmdudXMtdXUgaW50ZXJhY3RpdmUqIikKZDI1OCAx CmEyNTggMQo7OyBJbnRlcmFjdGl2ZSBmdW5jdGlvbnMKZDI2MCA0CmEyNjMg MQo7OyBVVWRlY29kZSBhbmQgdmlldwpkMjY1IDEKYTI2NSAxMAooZGVmdW4g Z251cy11dS1kZWNvZGUtYW5kLXZpZXcgKCkKICAiVVVkZWNvZGVzIGFuZCAn dmlld3MnIChpZiBwb3NzaWJsZSkgdGhlIHJlc3VsdGluZyBmaWxlLgonVmll d2luZycgY2FuIGJlIGFueSBhY3Rpb24gYXQgYWxsLCBhcyBkZWZpbmVkIGlu IHRoZQpgZ251cy11dS1maWxlLWFjdGlvbi1saXN0JyB2YXJpYWJsZS4gUnVu bmluZyAneHYnIG9uIGdpZnMgYW5kICdjYXQKPi9kZXYvYXVkaW8nIG9uIGF1 IGZpbGVzIGFyZSBwb3B1bGFyIGFjdGlvbnMuIElmIHRoZSBmaWxlIGNhbid0 IGJlCnZpZXdlZCwgdGhlIHVzZXIgaXMgYXNrZWQgaWYgc2hlIHdvdWxkIGxp a2UgdG8gc2F2ZSB0aGUgZmlsZSBpbnN0ZWFkLiIKICAoaW50ZXJhY3RpdmUp IAogIChnbnVzLXV1LWRlY29kZS1hbmQtdmlldy1vci1zYXZlIHQgbmlsKSkK CihkZWZ1biBnbnVzLXV1LWRlY29kZS1hbmQtc2F2ZSAoKQpkMjY3IDIKYTI2 OCAyCiAgKGludGVyYWN0aXZlKQogIChnbnVzLXV1LWRlY29kZS1hbmQtdmll dy1vci1zYXZlIG5pbCBuaWwpKQpkMjcwIDIyCmEyOTEgNQooZGVmdW4gZ251 cy11dS1tYXJrZWQtZGVjb2RlLWFuZC12aWV3ICgpCiAgIkRlY29kZXMgYW5k IHZpZXdzIGFydGljbGVzIG1hcmtlZC4KVGhlIG1hcmtlZCBlcXVpdmFsZW50 IHRvIGBnbnVzLXV1LWRlY29kZS1hbmQtdmlldycuIgogIChpbnRlcmFjdGl2 ZSkKICAoZ251cy11dS1kZWNvZGUtYW5kLXZpZXctb3Itc2F2ZSB0IHQpKQpk MjkzIDEKYTI5MyA2CihkZWZ1biBnbnVzLXV1LW1hcmtlZC1kZWNvZGUtYW5k LXNhdmUgKCkKICAiRGVjb2RlcyBhbmQgc2F2ZXMgYXJ0aWNsZXMgbWFya2Vk LgpUaGUgbWFya2VkIGVxdWl2YWxlbnQgdG8gYGdudXMtdXUtZGVjb2RlLWFu ZC1zYXZlJy4iCiAgKGludGVyYWN0aXZlKQogIChnbnVzLXV1LWRlY29kZS1h bmQtdmlldy1vci1zYXZlIG5pbCB0KSkKICAgICAgCmQyOTUgMTMKYTMwNyAx Cjs7IFVuc2hhciBhbmQgdmlldwpkMzA5IDEKYTMwOSA1CihkZWZ1biBnbnVz LXV1LXNoYXItYW5kLXZpZXcgKCkKICAiVW5zaGFycyBhbmQgdmlld3MgYXJ0 aWNsZXMuClRoZSBzaGFyIGVxdWl2YWxlbnQgb2YgYGdudXMtdXUtZGVjb2Rl LWFuZC12aWV3Jy4iCiAgKGludGVyYWN0aXZlKQogIChnbnVzLXV1LXVuc2hh ci1hbmQtdmlldy1vci1zYXZlIHQgbmlsKSkKZDMxMSA5CmEzMTkgNQooZGVm dW4gZ251cy11dS1zaGFyLWFuZC1zYXZlICgpCiAgIlVuc2hhcnMgYW5kIHNh dmVzIGZpbGVzLgpUaGUgc2hhciBlcXVpdmFsZW50IHRvIGBnbnVzLXV1LWRl Y29kZS1hbmQtc2F2ZScuIgogIChpbnRlcmFjdGl2ZSkKICAoZ251cy11dS11 bnNoYXItYW5kLXZpZXctb3Itc2F2ZSBuaWwgbmlsKSkKZDMyMSAxMgphMzMy IDMKKGRlZnVuIGdudXMtdXUtbWFya2VkLXNoYXItYW5kLXZpZXcgKCkKICAi VW5zaGFycyBhbmQgdmlld3MgYXJ0aWNsZXMgbWFya2VkLgpUaGUgbWFya2Vk IGVxdWl2YWxlbnQgdG8gYGdudXMtdXUtc2hhci1hbmQtdmlldycuIgpkMzM0 IDE0CmEzNDcgMTQ3CiAgKGdudXMtdXUtdW5zaGFyLWFuZC12aWV3LW9yLXNh dmUgdCB0KSkKCihkZWZ1biBnbnVzLXV1LW1hcmtlZC1zaGFyLWFuZC1zYXZl ICgpCiAgIlVuc2hhcnMgYW5kIHNhdmVzIGFydGljbGVzIG1hcmtlZC4KVGhl IG1hcmtlZCBlcXVpdmFsZW50IHRvIGBnbnVzLXV1LXNoYXItYW5kLXNhdmUn LiIKICAoaW50ZXJhY3RpdmUpCiAgKGdudXMtdXUtdW5zaGFyLWFuZC12aWV3 LW9yLXNhdmUgbmlsIHQpKQoKOzsgVGhyZWFkZWQgZGVjb2RlCgooZGVmdW4g Z251cy11dS10aHJlYWRlZC1kZWNvZGUtYW5kLXZpZXcgKCkKICAiRGVjb2Rl cyBhbmQgc2F2ZXMgdGhlIHJlc3VsdGluZyBmaWxlLiIKICAoaW50ZXJhY3Rp dmUpCiAgKGdudXMtdXUtdGhyZWFkZWQtZGVjb2RlLWFuZC12aWV3LW9yLXNh dmUgdCkpCgooZGVmdW4gZ251cy11dS10aHJlYWRlZC1kZWNvZGUtYW5kLXNh dmUgKCkKICAiRGVjb2RlcyBhbmQgc2F2ZXMgdGhlIHJlc3VsdGluZyBmaWxl LiIKICAoaW50ZXJhY3RpdmUpCiAgKGdudXMtdXUtdGhyZWFkZWQtZGVjb2Rl LWFuZC12aWV3LW9yLXNhdmUgbmlsKSkKCihkZWZ1biBnbnVzLXV1LXRocmVh ZGVkLW11bHRpLWRlY29kZS1hbmQtdmlldyAoKQogICJEZWNvZGVzIGFuZCBz YXZlcyB0aGUgcmVzdWx0aW5nIGZpbGUuIgogIChpbnRlcmFjdGl2ZSkKICAo Z251cy11dS10aHJlYWRlZC1tdWx0aS1kZWNvZGUtYW5kLXZpZXctb3Itc2F2 ZSB0KSkKCihkZWZ1biBnbnVzLXV1LXRocmVhZGVkLW11bHRpLWRlY29kZS1h bmQtc2F2ZSAoKQogICJEZWNvZGVzIGFuZCBzYXZlcyB0aGUgcmVzdWx0aW5n IGZpbGUuIgogIChpbnRlcmFjdGl2ZSkKICAoZ251cy11dS10aHJlYWRlZC1t dWx0aS1kZWNvZGUtYW5kLXZpZXctb3Itc2F2ZSBuaWwpKQoKKGRlZnVuIGdu dXMtdXUtdGhyZWFkZWQtZGVjb2RlLWFuZC12aWV3LW9yLXNhdmUgKCZvcHRp b25hbCB2aWV3KQogIChnbnVzLXN1bW1hcnktdW5tYXJrLWFsbC1wcm9jZXNz YWJsZSkKICAoZ251cy11dS1tYXJrLXRocmVhZCkKICAoZ251cy11dS1kZWNv ZGUtYW5kLXZpZXctb3Itc2F2ZSB2aWV3IHQpKQoKKGRlZnVuIGdudXMtdXUt dGhyZWFkZWQtbXVsdGktZGVjb2RlLWFuZC12aWV3LW9yLXNhdmUgKHZpZXcp CiAgKGxldCAodHlwZSkKICAgIChtZXNzYWdlICJEZWNvZGUgdHlwZTogW3Vd dWRlY29kZSwgKHMpaGFyLCBzKGEpdmUsIChiKWluaGV4OiAiKQogICAgKHNl dHEgdHlwZSAocmVhZC1jaGFyKSkKICAgIChpZiAobm90IChvciAoPSB0eXBl ID91KSAoPSB0eXBlID9zKSAoPSB0eXBlID9iKSAoPSB0eXBlID9hKSkpCgko ZXJyb3IgIk5vIHN1Y2ggZGVjb2RpbmcgbWV0aG9kICclYyciIHR5cGUpKQog ICAgCiAgICAoZ251cy1zdW1tYXJ5LXVubWFyay1hbGwtcHJvY2Vzc2FibGUp CiAgICAoZ251cy11dS1tYXJrLXRocmVhZCkKCiAgICAoaWYgKD0gdHlwZSA/ XHIpIChzZXRxIHR5cGUgP3UpKQogICAgKGNvbmQgKCg9IHR5cGUgP3UpIChn bnVzLXV1LWRlY29kZS1hbmQtdmlldy1vci1zYXZlIHZpZXcgdCkpCgkgICgo PSB0eXBlID9zKSAoZ251cy11dS11bnNoYXItYW5kLXZpZXctb3Itc2F2ZSB2 aWV3IHQpKQoJICAoKD0gdHlwZSA/YikgKGdudXMtdXUtYmluaGV4LWFuZC1z YXZlIHZpZXcgdCkpCgkgICgoPSB0eXBlID9hKSAoZ251cy11dS1zYXZlLWFy dGljbGVzIHZpZXcgdCkpCgkgICh0IChlcnJvciAiTm8gc3VjaCBkZWNvZGlu ZyBtZXRob2Q6ICVzIiB0eXBlKSkpKSkKICAgIAoKOzsgVG9nZ2xlIGNvbW1h bmRzICAgICAgCgooZGVmdW4gZ251cy11dS10b2dnbGUtYXN5bmNocm9ub3Vz ICgpCiAgIlRoaXMgZnVuY3Rpb24gdG9nZ2xlcyBhc3luY2hyb25vdXMgdmll d2luZy4iCiAgKGludGVyYWN0aXZlKQogIChpZiAoc2V0cSBnbnVzLXV1LWFz eW5jaHJvbm91cyAobm90IGdudXMtdXUtYXN5bmNocm9ub3VzKSkKICAgICAg KG1lc3NhZ2UgImdudXMtdXUgd2lsbCBub3cgdmlldyBmaWxlcyBhc3luY2hy b25vdXNseSIpCiAgICAobWVzc2FnZSAiZ251cy11dSB3aWxsIG5vdyB2aWV3 IGZpbGVzIHN5bmNocm9ub3VzbHkiKSkpCgooZGVmdW4gZ251cy11dS10b2dn bGUtcXVlcnkgKCkKICAiVGhpcyBmdW5jdGlvbiB0b2dnbGVzIHdoZXRoZXIg dG8gYXNrIGJlZm9yZSB2aWV3aW5nIG9yIG5vdC4iCiAgKGludGVyYWN0aXZl KQogIChpZiAoc2V0cSBnbnVzLXV1LWFzay1iZWZvcmUtdmlldyAobm90IGdu dXMtdXUtYXNrLWJlZm9yZS12aWV3KSkKICAgICAgKG1lc3NhZ2UgImdudXMt dXUgd2lsbCBub3cgYXNrIGJlZm9yZSB2aWV3aW5nIikKICAgIChtZXNzYWdl ICJnbnVzLXV1IHdpbGwgbm93IHZpZXcgd2l0aG91dCBhc2tpbmcgZmlyc3Qi KSkpCgooZGVmdW4gZ251cy11dS10b2dnbGUtYWx3YXlzLWFzayAoKQogICJU aGlzIGZ1bmN0aW9uIHRvZ2dsZXMgd2hldGhlciB0byBhbHdheXMgYXNrIHRv IHNhdmUgYSBmaWxlIGFmdGVyIHZpZXdpbmcuIgogIChpbnRlcmFjdGl2ZSkK ICAoaWYgKHNldHEgZ251cy11dS12aWV3LWFuZC1zYXZlIChub3QgZ251cy11 dS12aWV3LWFuZC1zYXZlKSkKICAgICAgKG1lc3NhZ2UgImdudXMtdXUgd2ls bCBub3cgYXNrIHRvIHNhdmUgdGhlIGZpbGUgYWZ0ZXIgdmlld2luZyIpCiAg ICAobWVzc2FnZSAiZ251cy11dSB3aWxsIG5vdyBub3QgYXNrIHRvIHNhdmUg YWZ0ZXIgc3VjY2Vzc2Z1bCB2aWV3aW5nIikpKQoKKGRlZnVuIGdudXMtdXUt dG9nZ2xlLWludGVyYWN0aXZlLXZpZXcgKCkKICAiVGhpcyBmdW5jdGlvbiB0 b2dnbGVzIHdoZXRoZXIgdG8gdXNlIGludGVyYWN0aXZlIHZpZXcuIgogIChp bnRlcmFjdGl2ZSkKICAoaWYgKHNldHEgZ251cy11dS11c2UtaW50ZXJhY3Rp dmUtdmlldyAobm90IGdudXMtdXUtdXNlLWludGVyYWN0aXZlLXZpZXcpKQog ICAgICAobWVzc2FnZSAiZ251cy11dSB3aWxsIG5vdyB1c2UgaW50ZXJhY3Rp dmUgdmlldyIpCiAgICAobWVzc2FnZSAiZ251cy11dSB3aWxsIG5vdyB1c2Ug bm9uLWludGVyYWN0aXZlIHZpZXciKSkpCgooZGVmdW4gZ251cy11dS10b2dn bGUtdW5tYXJrLXVuZGVjb2RlZCAoKQogICJUaGlzIGZ1bmN0aW9uIHRvZ2ds ZXMgd2hldGhlciB0byB1bm1hcmsgYXJ0aWNsZXMgbm90IGRlY29kZWQuIgog IChpbnRlcmFjdGl2ZSkKICAoaWYgKHNldHEgZ251cy11dS11bm1hcmstYXJ0 aWNsZXMtbm90LWRlY29kZWQgCgkgICAgKG5vdCBnbnVzLXV1LXVubWFyay1h cnRpY2xlcy1ub3QtZGVjb2RlZCkpCiAgICAgIChtZXNzYWdlICJnbnVzLXV1 IHdpbGwgbm93IHVubWFyayBhcnRpY2xlcyBub3QgZGVjb2RlZCIpCiAgICAo bWVzc2FnZSAiZ251cy11dSB3aWxsIG5vdyBub3QgdW5tYXJrIGFydGljbGVz IG5vdCBkZWNvZGVkIikpKQoKKGRlZnVuIGdudXMtdXUtdG9nZ2xlLWtpbGwt Y2FycmlhZ2UtcmV0dXJuICgpCiAgIlRoaXMgZnVuY3Rpb24gdG9nZ2xlcyB0 aGUgc3RyaXBwaW5nIG9mIGNhcnJpYWdlIHJldHVybnMgZnJvbSB0aGUgYXJ0 aWNsZXMuIgogIChpbnRlcmFjdGl2ZSkKICAoaWYgKHNldHEgZ251cy11dS1r aWxsLWNhcnJpYWdlLXJldHVybiAobm90IGdudXMtdXUta2lsbC1jYXJyaWFn ZS1yZXR1cm4pKQogICAgICAobWVzc2FnZSAiZ251cy11dSB3aWxsIG5vdyBz dHJpcCBjYXJyaWFnZSByZXR1cm5zIikKICAgIChtZXNzYWdlICJnbnVzLXV1 IHdvbid0IHN0cmlwIGNhcnJpYWdlIHJldHVybnMiKSkpCgooZGVmdW4gZ251 cy11dS10b2dnbGUtdmlldy13aXRoLW1ldGFtYWlsICgpCiAgIlRoaXMgZnVu Y3Rpb24gdG9nZ2xlcyB3aGV0aGVyIHRvIHZpZXcgZmlsZXMgd2l0aCBtZXRh bWFpbC4iCiAgKGludGVyYWN0aXZlKQogIChpZiAoc2V0cSBnbnVzLXV1LXZp ZXctd2l0aC1tZXRhbWFpbCAobm90IGdudXMtdXUtdmlldy13aXRoLW1ldGFt YWlsKSkKICAgICAgKG1lc3NhZ2UgImdudXMtdXUgd2lsbCBub3cgdmlldyB3 aXRoIG1ldGFtYWlsIikKICAgIChtZXNzYWdlICJnbnVzLXV1IHdpbGwgbm93 IHZpZXcgd2l0aCB0aGUgZ251cy11dSB2aWV3aW5nIGZ1bmN0aW9ucyIpKSkK CihkZWZ1biBnbnVzLXV1LXRvZ2dsZS1jb3JyZWN0LXN0cmlwcGVkLXV1Y29k ZSAoKQogICJUaGlzIGZ1bmN0aW9uIHRvZ2dsZXMgd2hldGhlciB0byBjb3Jy ZWN0IHN0cmlwcGVkIHV1Y29kZS4iCiAgKGludGVyYWN0aXZlKQogIChpZiAo c2V0cSBnbnVzLXV1LWNvcnJlY3Qtc3RyaXBwZWQtdXVjb2RlIAoJICAgIChu b3QgZ251cy11dS1jb3JyZWN0LXN0cmlwcGVkLXV1Y29kZSkpCiAgICAgICht ZXNzYWdlICJnbnVzLXV1IHdpbGwgbm93IGNvcnJlY3Qgc3RyaXBwZWQgdXVj b2RlIikKICAgIChtZXNzYWdlICJnbnVzLXV1IHdvbid0IGNoZWNrIGFuZCBj b3JyZWN0IHN0cmlwcGVkIHV1Y29kZSIpKSkKCihkZWZ1biBnbnVzLXV1LXRv Z2dsZS1hbnktdmFyaWFibGUgKCkKICAiVGhpcyBmdW5jdGlvbiBhc2sgd2hh dCB2YXJpYWJsZSB0aGUgdXNlciB3YW50cyB0byB0b2dnbGUuIgogIChpbnRl cmFjdGl2ZSkKICAobGV0IChyZXApCiAgICAobWVzc2FnZSAiKGEpc3luYywg KHEpdWVyeSwgKHApYXNrLCAoaylpbGwgQ1IsIChpKW50ZXJhY3QsICh1KW5t YXJrLCAoYylvcnJlY3QsIChtKWV0YSIpCiAgICAoc2V0cSByZXAgKHJlYWQt Y2hhcikpCiAgICAoaWYgKD0gcmVwID9hKQoJKGdudXMtdXUtdG9nZ2xlLWFz eW5jaHJvbm91cykpCiAgICAoaWYgKD0gcmVwID9xKQoJKGdudXMtdXUtdG9n Z2xlLXF1ZXJ5KSkKICAgIChpZiAoPSByZXAgP3ApCgkoZ251cy11dS10b2dn bGUtYWx3YXlzLWFzaykpCiAgICAoaWYgKD0gcmVwID9rKQoJKGdudXMtdXUt dG9nZ2xlLWtpbGwtY2FycmlhZ2UtcmV0dXJuKSkKICAgIChpZiAoPSByZXAg P3UpCgkoZ251cy11dS10b2dnbGUtdW5tYXJrLXVuZGVjb2RlZCkpCiAgICAo aWYgKD0gcmVwID9jKQoJKGdudXMtdXUtdG9nZ2xlLWNvcnJlY3Qtc3RyaXBw ZWQtdXVjb2RlKSkKICAgIChpZiAoPSByZXAgP20pCgkoZ251cy11dS10b2dn bGUtdmlldy13aXRoLW1ldGFtYWlsKSkKICAgIChpZiAoPSByZXAgP2kpCgko Z251cy11dS10b2dnbGUtaW50ZXJhY3RpdmUtdmlldykpKSkKCgo7OyBNaXNj IGludGVyYWN0aXZlIGZ1bmN0aW9ucwoKKGRlZnVuIGdudXMtdXUtZGVjb2Rl LWFuZC1zaG93LWluLWJ1ZmZlciAoKQogICJVdWRlY29kZXMgdGhlIGN1cnJl bnQgYXJ0aWNsZSBhbmQgZGlzcGxheXMgdGhlIHJlc3VsdCBpbiBhIGJ1ZmZl ci4KTWlnaHQgYmUgdXNlZnVsIGlmIHNvbWVvbmUgaGFzLCBmb3IgaW5zdGFu Y2UsIHNvbWUgdGV4dCB1dWVuY29kZWQgaW4KdGhlaXIgc2lncy4gKFN0cmFu Z2VyIHRoaW5ncyBoYXZlIGhhcHBlbmVkLikiCiAgKGludGVyYWN0aXZlKQog IChnbnVzLXV1LWluaXRpYWxpemUpCiAgKGxldCAoKHV1LWJ1ZmZlciAoZ2V0 LWJ1ZmZlci1jcmVhdGUgZ251cy11dS1vdXRwdXQtYnVmZmVyLW5hbWUpKQoJ ZmlsZS1uYW1lKQpkMzQ5IDE1CmEzNjMgMjA0CiAgICAgIChhbmQgCiAgICAg ICAoZ251cy1zdW1tYXJ5LXNlbGVjdC1hcnRpY2xlKQogICAgICAgKGdudXMt dXUtZ3JhYi1hcnRpY2xlcyAobGlzdCBnbnVzLWN1cnJlbnQtYXJ0aWNsZSkg CgkJCSAgICAgICdnbnVzLXV1LXV1c3RyaXAtYXJ0aWNsZS1hcykKICAgICAg IChzZXRxIGZpbGUtbmFtZSAoY29uY2F0IGdudXMtdXUtd29yay1kaXIgZ251 cy11dS1maWxlLW5hbWUpKQogICAgICAgKHByb2duCgkgKHNhdmUtZXhjdXJz aW9uCgkgICAoc2V0LWJ1ZmZlciB1dS1idWZmZXIpCgkgICAoZXJhc2UtYnVm ZmVyKQoJICAgKGluc2VydC1maWxlLWNvbnRlbnRzIGZpbGUtbmFtZSkpCgkg KHNldC13aW5kb3ctYnVmZmVyIChnZXQtYnVmZmVyLXdpbmRvdyBnbnVzLWFy dGljbGUtYnVmZmVyKSAKCQkJICAgIHV1LWJ1ZmZlcikKCSAobWVzc2FnZSAi U2hvd2luZyBmaWxlICVzIGluIGJ1ZmZlciIgZmlsZS1uYW1lKQoJIChkZWxl dGUtZmlsZSBmaWxlLW5hbWUpKSkpKSkKCihkZWZ1biBnbnVzLXV1LWVkaXQt YmVnaW4tbGluZSAoKQogICJFZGl0IHRoZSBiZWdpbiBsaW5lIG9mIHRoZSBj dXJyZW50IGFydGljbGUuIgogIChpbnRlcmFjdGl2ZSkKICAobGV0ICgoYnVm ZmVyLXJlYWQtb25seSBuaWwpCgliZWdpbiBiKQogICAgKHNhdmUtZXhjdXJz aW9uCiAgICAgIChnbnVzLXN1bW1hcnktc2VsZWN0LWFydGljbGUpCiAgICAg IChzZXQtYnVmZmVyIGdudXMtYXJ0aWNsZS1idWZmZXIpCiAgICAgIChnb3Rv LWxpbmUgMSkKICAgICAgKGlmIChub3QgKHJlLXNlYXJjaC1mb3J3YXJkICJi ZWdpbiAiIG5pbCB0KSkKCSAgKGVycm9yICJObyBiZWdpbiBsaW5lIGluIHRo ZSBjdXJyZW50IGFydGljbGUiKQoJKGJlZ2lubmluZy1vZi1saW5lKQoJKHNl dHEgYiAocG9pbnQpKQoJKGVuZC1vZi1saW5lKQoJKHNldHEgYmVnaW4gKGJ1 ZmZlci1zdWJzdHJpbmcgYiAocG9pbnQpKSkKCShzZXRxIGJlZ2luIChyZWFk LXN0cmluZyAiIiBiZWdpbikpCgkoc2V0cSBidWZmZXItcmVhZC1vbmx5IG5p bCkKCShkZWxldGUtcmVnaW9uIGIgKHBvaW50KSkKCShpbnNlcnQtc3RyaW5n IGJlZ2luKSkpKSkKCgo7OyBNdWx0aSBmdW5jdGlvbnMKCihkZWZ1biBnbnVz LXV1LW11bHRpLWRlY29kZS1hbmQtdmlldyAoKQogICJDaG9vc2UgYSBtZXRo b2Qgb2YgZGVjb2RpbmcgYW5kIHRoZW4gZGVjb2RlIGFuZCB2aWV3LgpUaGlz IGZ1bmN0aW9uIGxldHMgdGhlIHVzZXIgZGVjaWRlIHdoYXQgbWV0aG9kIHRv IHVzZSBmb3IgZGVjb2RpbmcuCk90aGVyIHRoYW4gdGhhdCwgaXQncyBlcXVp dmFsZW50IHRvIHRoZSBvdGhlciBkZWNvZGUtYW5kLXZpZXcKZnVuY3Rpb25z LiIKICAoaW50ZXJhY3RpdmUpCiAgKGdudXMtdXUtbXVsdGktZGVjb2RlLWFu ZC12aWV3LW9yLXNhdmUgdCBuaWwpKQoKKGRlZnVuIGdudXMtdXUtbXVsdGkt ZGVjb2RlLWFuZC1zYXZlICgpCiAgIkNob29zZSBhIG1ldGhvZCBvZiBkZWNv ZGluZyBhbmQgdGhlbiBkZWNvZGUgYW5kIHNhdmUuClRoaXMgZnVuY3Rpb24g bGV0cyB0aGUgdXNlciBkZWNpZGUgd2hhdCBtZXRob2QgdG8gdXNlIGZvciBk ZWNvZGluZy4KT3RoZXIgdGhhbiB0aGF0LCBpdCdzIGVxdWl2YWxlbnQgdG8g dGhlIG90aGVyIGRlY29kZS1hbmQtc2F2ZSAKZnVuY3Rpb25zLiIKICAoaW50 ZXJhY3RpdmUpCiAgKGdudXMtdXUtbXVsdGktZGVjb2RlLWFuZC12aWV3LW9y LXNhdmUgbmlsIG5pbCkpCgooZGVmdW4gZ251cy11dS1tYXJrZWQtbXVsdGkt ZGVjb2RlLWFuZC12aWV3ICgpCiAgIkNob29zZSBhIG1ldGhvZCBvZiBkZWNv ZGluZyBhbmQgdGhlbiBkZWNvZGUgYW5kIHZpZXcgdGhlIG1hcmtlZCBhcnRp Y2xlcy4KVGhpcyBmdW5jdGlvbiBsZXRzIHRoZSB1c2VyIGRlY2lkZSB3aGF0 IG1ldGhvZCB0byB1c2UgZm9yIGRlY29kaW5nLgpPdGhlciB0aGFuIHRoYXQs IGl0J3MgZXF1aXZhbGVudCB0byB0aGUgb3RoZXIgbWFya2VkIGRlY29kZS1h bmQtdmlldyAKZnVuY3Rpb25zLiIKICAoaW50ZXJhY3RpdmUpCiAgKGdudXMt dXUtbXVsdGktZGVjb2RlLWFuZC12aWV3LW9yLXNhdmUgdCB0KSkKCihkZWZ1 biBnbnVzLXV1LW1hcmtlZC1tdWx0aS1kZWNvZGUtYW5kLXNhdmUgKCkKICAi Q2hvb3NlIGEgbWV0aG9kIG9mIGRlY29kaW5nIGFuZCB0aGVuIGRlY29kZSBh bmQgc2F2ZSB0aGUgbWFya2VkIGFydGljbGVzLgpUaGlzIGZ1bmN0aW9uIGxl dHMgdGhlIHVzZXIgZGVjaWRlIHdoYXQgbWV0aG9kIHRvIHVzZSBmb3IgZGVj b2RpbmcuCk90aGVyIHRoYW4gdGhhdCwgaXQncyBlcXVpdmFsZW50IHRvIHRo ZSBvdGhlciBtYXJrZWQgZGVjb2RlLWFuZC1zYXZlIApmdW5jdGlvbnMuIgog IChpbnRlcmFjdGl2ZSkKICAoZ251cy11dS1tdWx0aS1kZWNvZGUtYW5kLXZp ZXctb3Itc2F2ZSBuaWwgdCkpCgooZGVmdW4gZ251cy11dS1tdWx0aS1kZWNv ZGUtYW5kLXZpZXctb3Itc2F2ZSAodmlldyBtYXJrZWQpCiAgKGxldCAodHlw ZSkKICAgIChtZXNzYWdlICJbdV11ZGVjb2RlLCAocyloYXIsIHMoYSl2ZSwg KGIpaW5oZXg6ICIpCiAgICAoc2V0cSB0eXBlIChyZWFkLWNoYXIpKQogICAg KGlmICg9IHR5cGUgP1xyKSAoc2V0cSB0eXBlID91KSkKICAgIChjb25kICgo PSB0eXBlID91KSAoZ251cy11dS1kZWNvZGUtYW5kLXZpZXctb3Itc2F2ZSB2 aWV3IG1hcmtlZCkpCgkgICgoPSB0eXBlID9zKSAoZ251cy11dS11bnNoYXIt YW5kLXZpZXctb3Itc2F2ZSB2aWV3IG1hcmtlZCkpCgkgICgoPSB0eXBlID9i KSAoZ251cy11dS1iaW5oZXgtYW5kLXNhdmUgdmlldyBtYXJrZWQpKQoJICAo KD0gdHlwZSA/YSkgKGdudXMtdXUtc2F2ZS1hcnRpY2xlcyB2aWV3IG1hcmtl ZCkpCgkgICh0IChlcnJvciAiVW5rbm93biBkZWNvZGUgbWV0aG9kICclYycu IiB0eXBlKSkpKSkKCgo7OyAiQWxsIGFydGljbGVzIiBjb21tYW5kcwoKKGRl ZmNvbnN0IGdudXMtdXUtcmVzdC1vZi1hcnRpY2xlcyBuaWwpCihkZWZ2YXIg Z251cy11dS1jdXJyZW50LXNhdmUtZGlyIG5pbCkKCihkZWZ1biBnbnVzLXV1 LWRlY29kZS1hbmQtdmlldy1hbGwtYXJ0aWNsZXMgKGFyZykKICAiVHJ5IHRv IGRlY29kZSBhbGwgYXJ0aWNsZXMgYW5kIHZpZXcgdGhlIHJlc3VsdC4KQVJH IGRlbGltaXRzIHRoZSBudW1iZXIgb2YgZmlsZXMgdG8gYmUgZGVjb2RlZC4i CiAgKGludGVyYWN0aXZlICJwIikKICAoZ251cy11dS1kZWNvZGUtYW5kLXZp ZXctb3Itc2F2ZS1hbGwtYXJ0aWNsZXMgYXJnIG5pbCB0KSkKCihkZWZ1biBn bnVzLXV1LWRlY29kZS1hbmQtdmlldy1hbGwtdW5yZWFkLWFydGljbGVzIChh cmcpCiAgIlRyeSB0byBkZWNvZGUgYWxsIHVucmVhZCBhcnRpY2xlcyBhbmQg dmlldyB0aGUgcmVzdWx0LgpBUkcgZGVsaW1pdHMgdGhlIG51bWJlciBvZiBm aWxlcyB0byBiZSBkZWNvZGVkLiIKICAoaW50ZXJhY3RpdmUgInAiKQogIChn bnVzLXV1LWRlY29kZS1hbmQtdmlldy1vci1zYXZlLWFsbC1hcnRpY2xlcyBh cmcgdCB0KSkKCihkZWZ1biBnbnVzLXV1LWRlY29kZS1hbmQtc2F2ZS1hbGwt dW5yZWFkLWFydGljbGVzIChhcmcpCiAgIlRyeSB0byBkZWNvZGUgYWxsIHVu cmVhZCBhcnRpY2xlcyBhbmQgc2F2ZXMgdGhlIHJlc3VsdC4KVGhpcyBmdW5j dGlvbiByZWFkcyBhbGwgdW5yZWFkIGFydGljbGVzIGluIHRoZSBjdXJyZW50 IGdyb3VwIGFuZCBzZWVzCndoZXRoZXIgaXQgY2FuIHV1ZGVjb2RlIHRoZSBh cnRpY2xlcy4gVGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCBmb3IgYW4KZGly ZWN0b3J5IHRvIHB1dCB0aGUgcmVzdWx0aW5nIChpZiBhbnkpIGZpbGVzLgpB UkcgZGVsaW1pdHMgdGhlIG51bWJlciBvZiBmaWxlcyB0byBiZSBkZWNvZGVk LiIKICAoaW50ZXJhY3RpdmUgInAiKQogIChnbnVzLXV1LWRlY29kZS1hbmQt dmlldy1vci1zYXZlLWFsbC1hcnRpY2xlcyBhcmcgdCBuaWwpKQoKKGRlZnVu IGdudXMtdXUtZGVjb2RlLWFuZC1zYXZlLWFsbC1hcnRpY2xlcyAoYXJnKQog ICJUcnkgdG8gZGVjb2RlIGFsbCBhcnRpY2xlcyBhbmQgc2F2ZXMgdGhlIHJl c3VsdC4KRG9lcyB0aGUgc2FtZSBhcyBgZ251cy11dS1kZWNvZGUtYW5kLXNh dmUtYWxsLXVucmVhZC1hcnRpY2xlcycsIGV4Y2VwdAp0aGF0IGl0IGdyYWJz IGFsbCBhcnRpY2xlcyB2aXNpYmxlLCB1bnJlYWQgb3Igbm90LgpBUkcgZGVs aW1pdHMgdGhlIG51bWJlciBvZiBmaWxlcyB0byBiZSBkZWNvZGVkLiIKICAo aW50ZXJhY3RpdmUgInAiKQogIChnbnVzLXV1LWRlY29kZS1hbmQtdmlldy1v ci1zYXZlLWFsbC1hcnRpY2xlcyBhcmcgbmlsIG5pbCkpCgooZGVmdW4gZ251 cy11dS1kZWNvZGUtYW5kLXZpZXctb3Itc2F2ZS1hbGwtYXJ0aWNsZXMgCiAg KGxpbWl0ICZvcHRpb25hbCB1bnJlYWQgdmlldyBhcnRpY2xlLWxpc3QpCiAg KGdudXMtdXUtaW5pdGlhbGl6ZSkKICAobGV0ICgoYXJ0cmVnIChpZiB1bnJl YWQgIl5bIC1dIiAiXi4iKSkKCWRpciBsaXN0LWZvci1maWxlIHJlc3VsdC1m aWxlcykKCiAgICAoaWYgYXJ0aWNsZS1saXN0CgkoKQogICAgICAoZ251cy1z dW1tYXJ5LW1hcmstYXMtcmVhZCBnbnVzLWN1cnJlbnQtYXJ0aWNsZSA/ICkK ICAgICAgKGdvdG8tY2hhciAxKQogICAgICAod2hpbGUgKHJlLXNlYXJjaC1m b3J3YXJkIGFydHJlZyBuaWwgdCkKCShzZXRxIGFydGljbGUtbGlzdCAKCSAg ICAgIChjb25zIChnbnVzLXN1bW1hcnktYXJ0aWNsZS1udW1iZXIpIGFydGlj bGUtbGlzdCkpKQogICAgICAoc2V0cSBhcnRpY2xlLWxpc3QgKG5yZXZlcnNl IGFydGljbGUtbGlzdCkpCiAgICAgIChnbnVzLXN1bW1hcnktbWFyay1hcy1y ZWFkIGdudXMtY3VycmVudC1hcnRpY2xlID9EKSkKCiAgICAoaWYgKG5vdCBh cnRpY2xlLWxpc3QpCgkoZXJyb3IgIk5vICVzYXJ0aWNsZXMgaW4gdGhpcyBu ZXdzZ3JvdXAiIChpZiB1bnJlYWQgInVucmVhZCAiICIiKSkpCiAgICAoaWYg KG5vdCB2aWV3KQoJKHNldHEgZGlyIChnbnVzLXV1LXJlYWQtZGlyZWN0b3J5 ICJXaGVyZSBkbyB5b3Ugd2FudCB0aGUgZmlsZXM/ICIpKSkKCiAgICAoaWYg KD0gMSBsaW1pdCkgKHNldHEgbGltaXQgKDErIChsZW5ndGggYXJ0aWNsZS1s aXN0KSkpKQoKICAgICh3aGlsZSAoYW5kIGFydGljbGUtbGlzdCAoPiBsaW1p dCAwKSkKICAgICAgKHNldHEgbGltaXQgKDEtIGxpbWl0KSkKICAgICAgKGdu dXMtc3VtbWFyeS1nb3RvLWFydGljbGUgKGNhciBhcnRpY2xlLWxpc3QpKQog ICAgICAoc2V0cSBsaXN0LWZvci1maWxlIChnbnVzLXV1LWdldC1saXN0LW9m LWFydGljbGVzKSkKICAgICAgKGxldCAoKGxmdCBsaXN0LWZvci1maWxlKSkK CSh3aGlsZSBsZnQKCSAgKHNldHEgYXJ0aWNsZS1saXN0IChkZWxxIChjYXIg bGZ0KSBhcnRpY2xlLWxpc3QpKQoJICAoc2V0cSBnbnVzLW5ld3Nncm91cC1w cm9jZXNzYWJsZSAoZGVscSAoY2FyIGxmdCkgCgkJCQkJCSBnbnVzLW5ld3Nn cm91cC1wcm9jZXNzYWJsZSkpCgkgIChzZXRxIGxmdCAoY2RyIGxmdCkpKSkK ICAgICAgKHNldHEgcmVzdWx0LWZpbGVzIAoJICAgIChhcHBlbmQgCgkgICAg IChnbnVzLXV1LWdyYWItYXJ0aWNsZXMgbGlzdC1mb3ItZmlsZSAKCQkJCSAg ICAnZ251cy11dS11dXN0cmlwLWFydGljbGUtYXMgdCBuaWwgdCkKCSAgICAg cmVzdWx0LWZpbGVzKSkpCgogICAgKHNldHEgZ251cy11dS1saXN0LW9mLWZp bGVzLWRlY29kZWQgcmVzdWx0LWZpbGVzKQoKICAgIChpZiAobm90IHJlc3Vs dC1maWxlcykKCShlcnJvciAiTm8gZmlsZXMgYWZ0ZXIgZGVjb2RpbmciKSkK CiAgICAoaWYgdmlldwoJKGdudXMtdXUtdmlldy1kaXJlY3RvcnkgZ251cy11 dS13b3JrLWRpciBnbnVzLXV1LXVzZS1pbnRlcmFjdGl2ZS12aWV3KQogICAg ICAoZ251cy11dS1zYXZlLWRpcmVjdG9yeSBnbnVzLXV1LXdvcmstZGlyIGRp ciBkaXIpCiAgICAgIChtZXNzYWdlICJTYXZlZC4iKQogICAgICAoZ251cy11 dS1jaGVjay1mb3ItZ2VuZXJhdGVkLWZpbGVzKSkKCiAgICAoZ251cy11dS1z dW1tYXJ5LW5leHQtc3ViamVjdCkKCiAgICAoaWYgKGFuZCBnbnVzLXV1LXVz ZS1pbnRlcmFjdGl2ZS12aWV3IHZpZXcpCgkoZ251cy11dS1kby1pbnRlcmFj dGl2ZSkpCgogICAgKGlmIChvciAobm90IHZpZXcpIChub3QgZ251cy11dS11 c2UtaW50ZXJhY3RpdmUtdmlldykpCgkoZ251cy11dS1jbGVhbi11cCkpKSkK CihkZWZ1biBnbnVzLXV1LWRlY29kZS1hbmQtdmlldy1hbGwtbWFya2VkLWZp bGVzICgpCiAgIlRoaXMgZnVuY3Rpb24gd2lsbCBkZWNvZGUgYW5kIHZpZXcg YWxsIGZpbGVzIHRoYXQgaGF2ZSBoYWQgb25lIG9yIG1vcmUgYXJ0aWNsZXMg aW4gaXRzIHNlcmllcyBtYXJrZWQuCkZvciBpbnN0YW5jZSwgaWYgeW91IGhh dmUgbWFya2VkIHBhcnQgMiBvZiBvbmUgc2VyaWVzLCBhbmQgcGFydCA5IG9m CmFub3RoZXIsIHRoaXMgZnVuY3Rpb24gd2lsbCBkZWNvZGUgYm90aCBzZXJp ZXMgb2YgYXJ0aWNsZXMuIEluIG90aGVyCndvcmRzLCB5b3UgY2FuIHdhbGsg YXJvdW5kIHRoZSBzdW1tYXJ5IGJ1ZmZlciBhbmQgbWFyayB3aGF0IHNlcmll cyB5b3UKd2FudCB0byBzZWUsIGFuZCB0aGVuIHVzaW5nIHRoaXMgZnVuY3Rp b24gdG8gZGVjb2RlIGFsbCB0aGUgZmlsZXMgeW91CmFyZSBpbnRlcmVzdGVk IGluLCB3aXRob3V0IHdvcnJ5aW5nIGV4YWN0bHkgd2hhdCBhcnRpY2xlcyBi ZWxvbmcgdG8Kd2hhdCBmaWxlcy4iCiAgKGludGVyYWN0aXZlKQogIChpZiAo bm90IGdudXMtbmV3c2dyb3VwLXByb2Nlc3NhYmxlKQogICAgICAoZXJyb3Ig Ik5vIGFydGljbGVzIG1hcmtlZCBmb3IgZGVjb2RpbmciKSkKICAoZ251cy11 dS1kZWNvZGUtYW5kLXZpZXctb3Itc2F2ZS1hbGwtYXJ0aWNsZXMgCiAgIDEg bmlsIHQgKHNldHEgZ251cy1uZXdzZ3JvdXAtcHJvY2Vzc2FibGUgCgkJIChu cmV2ZXJzZSBnbnVzLW5ld3Nncm91cC1wcm9jZXNzYWJsZSkpKSkKCihkZWZ1 biBnbnVzLXV1LWRlY29kZS1hbmQtc2F2ZS1hbGwtbWFya2VkLWZpbGVzICgp CiAgIlRoaXMgZnVuY3Rpb24gd2lsbCBkZWNvZGUgYW5kIHNhdmUgYWxsIGZp bGVzIHRoYXQgaGF2ZSBoYWQgb25lIG9yIG1vcmUgYXJ0aWNsZXMgaW4gaXRz IHNlcmllcyBtYXJrZWQuCkZvciBpbnN0YW5jZSwgaWYgeW91IGhhdmUgbWFy a2VkIHBhcnQgMiBvZiBvbmUgc2VyaWVzLCBhbmQgcGFydCA5IG9mCmFub3Ro ZXIsIHRoaXMgZnVuY3Rpb24gd2lsbCBkZWNvZGUgYm90aCBzZXJpZXMgb2Yg YXJ0aWNsZXMuIEluIG90aGVyCndvcmRzLCB5b3UgY2FuIHdhbGsgYXJvdW5k IHRoZSBzdW1tYXJ5IGJ1ZmZlciBhbmQgbWFyayB3aGF0IHNlcmllcyB5b3UK d2FudCB0byBzYXZlLCBhbmQgdGhlbiB1c2luZyB0aGlzIGZ1bmN0aW9uIHRv IGRlY29kZSBhbGwgdGhlIGZpbGVzIHlvdQphcmUgaW50ZXJlc3RlZCBpbiwg d2l0aG91dCB3b3JyeWluZyBleGFjdGx5IHdoYXQgYXJ0aWNsZXMgYmVsb25n IHRvCndoYXQgZmlsZXMuIgogIChpbnRlcmFjdGl2ZSkKICAoaWYgKG5vdCBn bnVzLW5ld3Nncm91cC1wcm9jZXNzYWJsZSkKICAgICAgKGVycm9yICJObyBh cnRpY2xlcyBtYXJrZWQgZm9yIGRlY29kaW5nIikpCiAgKGdudXMtdXUtZGVj b2RlLWFuZC12aWV3LW9yLXNhdmUtYWxsLWFydGljbGVzIAogICAxIG5pbCBu aWwgKHNldHEgZ251cy1uZXdzZ3JvdXAtcHJvY2Vzc2FibGUgCgkJICAgKG5y ZXZlcnNlIGdudXMtbmV3c2dyb3VwLXByb2Nlc3NhYmxlKSkpKQoKZDM2NyAx CmEzNjcgMwo7IEFsbCB0aGUgaW50ZXJhY3RpdmUgdXVkZWNvZGUvdmlldy9z YXZlL21hcmtlZCBmdW5jdGlvbnMgYXJlIGludGVyZmFjZXMKOyB0byB0aGlz IGZ1bmN0aW9uLCB3aGljaCBkb2VzIHRoZSByZXN0LgooZGVmdW4gZ251cy11 dS1kZWNvZGUtYW5kLXZpZXctb3Itc2F2ZSAodmlldyBtYXJrZWQgJm9wdGlv bmFsIHNhdmUtZGlyIGxpbWl0KQpkMzY5IDE5CmEzODcgNDEKICAoc2F2ZS1l eGN1cnNpb24KICAgIChpZiAoZ251cy11dS1kZWNvZGUtYW5kLXN0cmlwIG5p bCBtYXJrZWQgbGltaXQpCgkocHJvZ24KCSAgKGlmIHZpZXcgCgkgICAgICAo Z251cy11dS12aWV3LWRpcmVjdG9yeSBnbnVzLXV1LXdvcmstZGlyIAoJCQkJ ICAgICAgZ251cy11dS11c2UtaW50ZXJhY3RpdmUtdmlldykKCSAgICAoZ251 cy11dS1zYXZlLWRpcmVjdG9yeSBnbnVzLXV1LXdvcmstZGlyIHNhdmUtZGly IHNhdmUtZGlyKQoJICAgIChnbnVzLXV1LWNoZWNrLWZvci1nZW5lcmF0ZWQt ZmlsZXMpKSkpKQoKICAoZ251cy11dS1zdW1tYXJ5LW5leHQtc3ViamVjdCkK CiAgKGlmIChhbmQgZ251cy11dS11c2UtaW50ZXJhY3RpdmUtdmlldyB2aWV3 KQogICAgICAoZ251cy11dS1kby1pbnRlcmFjdGl2ZSkpCgogIChpZiAob3Ig KG5vdCB2aWV3KSAobm90IGdudXMtdXUtdXNlLWludGVyYWN0aXZlLXZpZXcp KQogICAgICAoZ251cy11dS1jbGVhbi11cCkpKQoKOyBVbnNoYXJzIGFuZCB2 aWV3cy9zYXZlcyBtYXJrZWQvdW5tYXJrZWQgYXJ0aWNsZXMuCihkZWZ1biBn bnVzLXV1LXVuc2hhci1hbmQtdmlldy1vci1zYXZlICh2aWV3IG1hcmtlZCAm b3B0aW9uYWwgc2F2ZS1kaXIpCiAgKGdudXMtdXUtaW5pdGlhbGl6ZSkKICAo bGV0ICh0YXItZmlsZSBmaWxlcykKICAgIChzYXZlLWV4Y3Vyc2lvbgogICAg ICAoZ251cy11dS1kZWNvZGUtYW5kLXN0cmlwIHQgbWFya2VkKQogICAgICAo aWYgKHNldHEgZ251cy11dS1saXN0LW9mLWZpbGVzLWRlY29kZWQgCgkgICAg ICAgKGdudXMtdXUtZGlyZWN0b3J5LWZpbGVzIGdudXMtdXUtd29yay1kaXIg dCkpCgkgIChwcm9nbgoJICAgIChnbnVzLXV1LWFkZC1maWxlIGdudXMtdXUt bGlzdC1vZi1maWxlcy1kZWNvZGVkKQoJICAgIChpZiB2aWV3IAoJCShnbnVz LXV1LXZpZXctZGlyZWN0b3J5IGdudXMtdXUtd29yay1kaXIgCgkJCQkJZ251 cy11dS11c2UtaW50ZXJhY3RpdmUtdmlldykKCSAgICAgIChnbnVzLXV1LXNh dmUtZGlyZWN0b3J5IGdudXMtdXUtd29yay1kaXIgc2F2ZS1kaXIgc2F2ZS1k aXIpCgkgICAgICAoZ251cy11dS1jaGVjay1mb3ItZ2VuZXJhdGVkLWZpbGVz KSkpKSkKCiAgICAoZ251cy11dS1zdW1tYXJ5LW5leHQtc3ViamVjdCkKCiAg ICAoaWYgKGFuZCBnbnVzLXV1LXVzZS1pbnRlcmFjdGl2ZS12aWV3IHZpZXcp CgkoZ251cy11dS1kby1pbnRlcmFjdGl2ZSkpCgogICAgKGlmIChvciAobm90 IHZpZXcpIChub3QgZ251cy11dS11c2UtaW50ZXJhY3RpdmUtdmlldykpCgko Z251cy11dS1jbGVhbi11cCkpKSkKCmQzOTIgMQphMzkyIDQwCihkZWZjb25z dCBnbnVzLXV1LXNhdmVkLWFydGljbGUtbmFtZSBuaWwpCgo7IFZJRVcgaXNu J3QgdXNlZCwgYnV0IGlzIGhlcmUgYW55d2F5LCB0byBwcm92aWRlIHNpbWls YXIgaW50ZXJmYWNlIHRvCjsgdGhlIG90aGVyIHJlbGF0ZWQgZnVuY3Rpb25z LiAgSWYgTUFSS0VEIGlzIG5vbi1uaWwsIHRoZSBsaXN0IG9mCjsgbWFya2Vk IGFydGljbGVzIGlzIHVzZWQuICBJZiBOTy1TQVZFIGlzIG5vbi1uaWwsIHRo ZSBhcnRpY2xlcyBhcmVuJ3QKOyBhY3R1YWxseSBzYXZlZCBpbiBhIHBlcm1h bmVudCBsb2NhdGlvbiwgYnV0IHRoZSBjb2xsZWN0aW5nIGlzIGRvbmUKOyBh bmQgYSB0ZW1wb3JhcnkgZmlsZSB3aXRoIHRoZSByZXN1bHQgaXMgcmV0dXJu ZWQuCihkZWZ1biBnbnVzLXV1LXNhdmUtYXJ0aWNsZXMgKHZpZXcgbWFya2Vk ICZvcHRpb25hbCBuby1zYXZlKQogIChsZXQgKGxpc3Qtb2YtYXJ0aWNsZXMp CiAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgKGdudXMtdXUtaW5pdGlhbGl6 ZSkKICAgICAgKGlmIChub3QgbWFya2VkKQoJICAoc2V0cSBsaXN0LW9mLWFy dGljbGVzIChnbnVzLXV1LWdldC1saXN0LW9mLWFydGljbGVzKSkKCShzZXRx IGxpc3Qtb2YtYXJ0aWNsZXMgKHNldHEgZ251cy1uZXdzZ3JvdXAtcHJvY2Vz c2FibGUgCgkJCQkgICAgIChucmV2ZXJzZSBnbnVzLW5ld3Nncm91cC1wcm9j ZXNzYWJsZSkpKQoJKGdudXMtc3VtbWFyeS11bm1hcmstYWxsLXByb2Nlc3Nh YmxlKSkKCiAgICAgIChpZiAobm90IGxpc3Qtb2YtYXJ0aWNsZXMpCgkgIChl cnJvciAiTm8gbGlzdCBvZiBhcnRpY2xlcyIpKQoKICAgICAgKGlmIGdudXMt dXUtc2F2ZS1zZXBhcmF0ZS1hcnRpY2xlcwoJICAocHJvZ24KCSAgICAoc2V0 cSBnbnVzLXV1LXNhdmVkLWFydGljbGUtbmFtZSAKCQkgIChnbnVzLXV1LXJl YWQtZGlyZWN0b3J5IAoJCSAgIChjb25jYXQgIldoZXJlIGRvIHlvdSB3YW50 IHRoZSBmaWxlcz8gIikpKSkKCgkoc2V0cSBnbnVzLXV1LXNhdmVkLWFydGlj bGUtbmFtZSAKCSAgICAgIChjb25jYXQgZ251cy11dS13b3JrLWRpciAKCQkg ICAgICAoaWYgbm8tc2F2ZQoJCQkgIGdudXMtbmV3c2dyb3VwLW5hbWUKCQkJ KHJlYWQtZmlsZS1uYW1lICJFbnRlciBmaWxlIG5hbWU6ICIgZ251cy1uZXdz Z3JvdXAtbmFtZQoJCQkJCWdudXMtbmV3c2dyb3VwLW5hbWUpKSkpCgkoZ251 cy11dS1hZGQtZmlsZSBnbnVzLXV1LXNhdmVkLWFydGljbGUtbmFtZSkpCgog ICAgICAoaWYgKGFuZCAoZ251cy11dS1ncmFiLWFydGljbGVzIGxpc3Qtb2Yt YXJ0aWNsZXMgJ2dudXMtdXUtc2F2ZS1hcnRpY2xlIHQpCgkgICAgICAgKG5v dCBuby1zYXZlKSAobm90IGdudXMtdXUtc2F2ZS1zZXBhcmF0ZS1hcnRpY2xl cykpCgkgIChnbnVzLXV1LXNhdmUtZmlsZSBnbnVzLXV1LXNhdmVkLWFydGlj bGUtbmFtZSkKCWdudXMtdXUtc2F2ZWQtYXJ0aWNsZS1uYW1lKSkpKQoKOyBG dW5jdGlvbiBjYWxsZWQgYnkgZ251cy11dS1ncmFiLWFydGljbGVzIHRvIHRy ZWF0IGVhY2ggYXJ0aWNsZS4KZDQwMSAyCmE0MDIgMQoJICAgICgoZXEgaW4t c3RhdGUgJ2ZpcnN0LWFuZC1sYXN0KSAobGlzdCBnbnVzLXV1LXNhdmVkLWFy dGljbGUtbmFtZSAnYmVnaW4gJ2VuZCkpCmQ0MTAgMgphNDExIDEKCSAgICAo KGVxIGluLXN0YXRlICdmaXJzdC1hbmQtbGFzdCkgKGxpc3QgZ251cy11dS1z YXZlZC1hcnRpY2xlLW5hbWUgJ2JlZ2luICdlbmQpKQphNDg2IDIzCjs7IERp Z2VzdCBhbmQgZm9yd2FyZCBhcnRpY2xlcwoKKGRlZnVuIGdudXMtdXUtZGln ZXN0LWFuZC1mb3J3YXJkICgmb3B0aW9uYWwgbWFya2VkKQogICJEaWdlc3Rz IGFuZCBmb3J3YXJkcyBhbGwgYXJ0aWNsZXMgaW4gdGhpcyBzZXJpZXMuIgog IChpbnRlcmFjdGl2ZSkKICAobGV0ICgoZ251cy11dS1zYXZlLWluLWRpZ2Vz dCB0KQoJZmlsZSBidWYpCiAgICAoc2V0cSBmaWxlIChnbnVzLXV1LXNhdmUt YXJ0aWNsZXMgbmlsIG1hcmtlZCB0KSkKICAgIChzd2l0Y2gtdG8tYnVmZmVy IChzZXRxIGJ1ZiAoZ2V0LWJ1ZmZlci1jcmVhdGUgIipnbnVzLXV1LWZvcndh cmQqIikpKQogICAgKGVyYXNlLWJ1ZmZlcikKICAgIChkZWxldGUtb3RoZXIt d2luZG93cykKICAgIChlcmFzZS1idWZmZXIpCiAgICAoaW5zZXJ0LWZpbGUg ZmlsZSkKICAgIChnb3RvLWNoYXIgMSkKICAgIChidXJ5LWJ1ZmZlciBidWYp CiAgICAoZnVuY2FsbCBnbnVzLW1haWwtZm9yd2FyZC1tZXRob2QpKSkKCihk ZWZ1biBnbnVzLXV1LW1hcmtlZC1kaWdlc3QtYW5kLWZvcndhcmQgKCZvcHRp b25hbCBtYXJrZWQpCiAgIkRpZ2VzdHMgYW5kIGZvcndhcmRzIGFsbCBtYXJr ZWQgYXJ0aWNsZXMuIgogIChpbnRlcmFjdGl2ZSkKICAoZ251cy11dS1kaWdl c3QtYW5kLWZvcndhcmQgdCkpCgoKYTQ5NiAyNgo7IFRoaXMganVzdCBjb25j YXRlbmF0ZXMgYW5kIHN0cmlwcyBzdHVmZiBmcm9tIGJpbmhleGVkIGFydGlj bGVzLgo7IE5vIGFjdHVhbCB1bmJpbmhleGluZyB0YWtlcyBwbGFjZS4gVklF VyBpcyBpZ25vcmVkLgooZGVmdW4gZ251cy11dS1iaW5oZXgtYW5kLXNhdmUg KHZpZXcgbWFya2VkKQogIChnbnVzLXV1LWluaXRpYWxpemUpCiAgKGxldCAo bGlzdC1vZi1hcnRpY2xlcykKICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAo aWYgKG5vdCBtYXJrZWQpCgkgIChzZXRxIGxpc3Qtb2YtYXJ0aWNsZXMgKGdu dXMtdXUtZ2V0LWxpc3Qtb2YtYXJ0aWNsZXMpKQoJKHNldHEgbGlzdC1vZi1h cnRpY2xlcyAKCSAgICAgIChzZXRxIGdudXMtbmV3c2dyb3VwLXByb2Nlc3Nh YmxlIAoJCSAgICAobnJldmVyc2UgZ251cy1uZXdzZ3JvdXAtcHJvY2Vzc2Fi bGUpKSkKCShnbnVzLXN1bW1hcnktdW5tYXJrLWFsbC1wcm9jZXNzYWJsZSkp CiAgICAgIChpZiAobm90IGxpc3Qtb2YtYXJ0aWNsZXMpCgkgIChlcnJvciAi Tm8gbGlzdCBvZiBhcnRpY2xlcyIpKQoKICAgICAgKHNldHEgZ251cy11dS1i aW5oZXgtYXJ0aWNsZS1uYW1lIAoJICAgIChjb25jYXQgZ251cy11dS13b3Jr LWRpciAKCQkgICAgKHJlYWQtZmlsZS1uYW1lICJFbnRlciBiaW5oZXggZmls ZSBuYW1lOiAiIAoJCQkJICAgIGdudXMtbmV3c2dyb3VwLW5hbWUKCQkJCSAg ICBnbnVzLW5ld3Nncm91cC1uYW1lKSkpCiAgICAgIChnbnVzLXV1LWFkZC1m aWxlIGdudXMtdXUtYmluaGV4LWFydGljbGUtbmFtZSkKICAgICAgKGlmIChn bnVzLXV1LWdyYWItYXJ0aWNsZXMgbGlzdC1vZi1hcnRpY2xlcyAnZ251cy11 dS1iaW5oZXgtYXJ0aWNsZSB0KQoJICAoZ251cy11dS1zYXZlLWZpbGUgZ251 cy11dS1iaW5oZXgtYXJ0aWNsZS1uYW1lKSkpKQogIChnbnVzLXV1LWNoZWNr LWZvci1nZW5lcmF0ZWQtZmlsZXMpCiAgKGdudXMtdXUtc3VtbWFyeS1uZXh0 LXN1YmplY3QpKQoKZDUzMiAxCmE1MzIgMQo7OyBJbnRlcm5hbCB2aWV3IGNv bW1hbmRzCmQ1MzQgMTMKYTU0NiA2MAo7IFRoaXMgZnVuY3Rpb24gdGFrZXMg dHdvIHBhcmFtZXRlcnMuIFRoZSBmaXJzdCBpcyBuYW1lIG9mIHRoZSBmaWxl IHRvCjsgYmUgdmlld2VkLiBgZ251cy11dS12aWV3LWZpbGUnIHdpbGwgbG9v ayBmb3IgYW4gYWN0aW9uIGFzc29jaWF0ZWQKOyB3aXRoIHRoZSBmaWxlIHR5 cGUgb2YgdGhlIGZpbGUuIElmIGl0IGZpbmRzIGFuIGFwcHJvcHJpYXRlIGFj dGlvbiwKOyB0aGUgZmlsZSB3aWxsIGJlIGF0dGVtcHRlZCBkaXNwbGF5ZWQu CjsgCjsgVGhlIHNlY29uZCBwYXJhbWV0ZXIgc3BlY2lmaWVzIGlmIHRoZSB1 c2VyIGlzIHRvIGJlIGFza2VkIHdoZXRoZXIgdG8KOyBzYXZlIHRoZSBmaWxl IGlmIHZpZXdpbmcgaXMgdW5zdWNjZXNzZnVsLiB0IG1lYW5zICJkbyBub3Qg YXNrLiIKOwo7IE5vdGUgdGhhdCB0aGUgZmlsZSBnaXZlbiB3aWxsIGJlIGRl bGV0ZWQgYnkgdGhpcyBmdW5jdGlvbiwgb25lIHdheQo7IG9yIGFub3RoZXIu IElmIGBnbnVzLXV1LWFzeW5jaHJvbm91cycgaXMgc2V0LCBpdCB3b24ndCBi ZSBkZWxldGVkCjsgcmlnaHQgYXdheSwgYnV0IHNvbWV0aW1lIGxhdGVyLiBJ ZiB0aGUgdXNlciBpcyBvZmZlcmVkIHRvIHNhdmUgdGhlCjsgZmlsZSwgaXQn bGwgYmUgbW92ZWQgdG8gd2hlcmV2ZXIgdGhlIHVzZXIgd2FudHMgaXQuCgo7 IGBnbnVzLXV1LXZpZXctZmlsZScgcmV0dXJucyB0IGlmIHZpZXdpbmcgaXMg c3VjY2Vzc2Z1bC4KCihkZWZ1biBnbnVzLXV1LXZpZXctZmlsZSAoZmlsZSAm b3B0aW9uYWwgc2lsZW50KQogIChsZXQgKGFjdGlvbiBkaWQtdmlldykKICAg IChjb25kIAogICAgICgobm90IChzZXRxIGFjdGlvbiAoZ251cy11dS1nZXQt YWN0aW9uIGZpbGUpKSkKICAgICAgKGlmIChhbmQgKG5vdCBzaWxlbnQpIChu b3QgZ251cy11dS11c2UtaW50ZXJhY3RpdmUtdmlldykpCgkgIChwcm9nbgoJ ICAgIChtZXNzYWdlICJDb3VsZG4ndCBmaW5kIGFueSBydWxlIGZvciBmaWxl ICclcyciIGZpbGUpCgkgICAgKHNsZWVwLWZvciAyKQoJICAgIChnbnVzLXV1 LWFzay10by1zYXZlLWZpbGUgZmlsZSkpKSkKICAgICAKICAgICAoKGFuZCBn bnVzLXV1LXVzZS1pbnRlcmFjdGl2ZS12aWV3IAoJICAgKG5vdCAoc3RyaW5n PSAob3IgYWN0aW9uICIiKSAiZ251cy11dS1hcmNoaXZlIikpKQogICAgICAo Z251cy11dS1lbnRlci1pbnRlcmFjdGl2ZS1maWxlIChvciBhY3Rpb24gIiIp IGZpbGUpKQoKICAgICAoZ251cy11dS1hc2stYmVmb3JlLXZpZXcKICAgICAg KGlmICh5LW9yLW4tcCAoZm9ybWF0ICJEbyB5b3Ugd2FudCB0byB2aWV3ICVz PyAiIGZpbGUpKQoJICAoc2V0cSBkaWQtdmlldyAoZ251cy11dS1jYWxsLWZp bGUtYWN0aW9uIGZpbGUgYWN0aW9uKSkpCiAgICAgIChtZXNzYWdlICIiKSkK ICAgICAKICAgICAoKHNldHEgZGlkLXZpZXcgKGdudXMtdXUtY2FsbC1maWxl LWFjdGlvbiBmaWxlIGFjdGlvbikpKQoKICAgICAoKG5vdCBzaWxlbnQpCiAg ICAgIChnbnVzLXV1LWFzay10by1zYXZlLWZpbGUgZmlsZSkpKQoKICAgIChp ZiAoYW5kIChmaWxlLWV4aXN0cy1wIGZpbGUpIAoJICAgICAobm90IGdudXMt dXUtdXNlLWludGVyYWN0aXZlLXZpZXcpCgkgICAgIChvciAKCSAgICAgIChu b3QgKGFuZCBnbnVzLXV1LWFzeW5jaHJvbm91cyBkaWQtdmlldykpCgkgICAg ICAoc3RyaW5nPSAob3IgYWN0aW9uICAiIikgImdudXMtdXUtYXJjaGl2ZSIp KSkKCShkZWxldGUtZmlsZSBmaWxlKSkKCiAgZGlkLXZpZXcpKQoKKGRlZnVu IGdudXMtdXUtY2FsbC1maWxlLWFjdGlvbiAoZmlsZSBhY3Rpb24pCiAgKHBy b2cxCiAgICAgIChpZiBnbnVzLXV1LWFzeW5jaHJvbm91cwoJICAoZ251cy11 dS1jYWxsLWFzeW5jaHJvbm91cyBmaWxlIGFjdGlvbikKCShnbnVzLXV1LWNh bGwtc3luY2hyb25vdXMgZmlsZSBhY3Rpb24pKQogICAgKGlmIGdudXMtdXUt dmlldy1hbmQtc2F2ZQoJKGdudXMtdXUtYXNrLXRvLXNhdmUtZmlsZSBmaWxl KSkpKQoKKGRlZnVuIGdudXMtdXUtYXNrLXRvLXNhdmUtZmlsZSAoZmlsZSkK ICAoaWYgKHktb3Itbi1wIChmb3JtYXQgIkRvIHlvdSB3YW50IHRvIHNhdmUg dGhlIGZpbGUgJXM/ICIgZmlsZSkpCiAgICAgIChnbnVzLXV1LXNhdmUtZmls ZSBmaWxlKSkKICAobWVzc2FnZSAiIikpCmQ1NTQgMQphNTU0IDgKCSAgICAo aWYgKGFuZCBnbnVzLXV1LXVzZS1pbnRlcmFjdGl2ZS12aWV3IAoJCSAgICAg Z251cy11dS11c2VyLWludGVyYWN0aXZlLXZpZXctcnVsZXMpCgkJZ251cy11 dS11c2VyLWludGVyYWN0aXZlLXZpZXctcnVsZXMKCSAgICAgIGdudXMtdXUt dXNlci12aWV3LXJ1bGVzKQoJICAgIChpZiAob3IgZ251cy11dS1pZ25vcmUt ZGVmYXVsdC12aWV3LXJ1bGVzIAoJCSAgICAobm90IGdudXMtdXUtdXNlLWlu dGVyYWN0aXZlLXZpZXcpKQoJCSgpCgkgICAgICBnbnVzLXV1LWRlZmF1bHQt aW50ZXJhY3RpdmUtdmlldy1ydWxlcy1iZWdpbikKZDU1OCAxCmE1NTggNgoJ ICAgIChpZiBnbnVzLXV1LXVzZS1pbnRlcmFjdGl2ZS12aWV3CgkJKGFwcGVu ZCBnbnVzLXV1LXVzZXItaW50ZXJhY3RpdmUtdmlldy1ydWxlcy1lbmQKCQkJ KGlmIGdudXMtdXUtaWdub3JlLWRlZmF1bHQtdmlldy1ydWxlcwoJCQkgICAg KCkKCQkJICBnbnVzLXV1LWRlZmF1bHQtaW50ZXJhY3RpdmUtdmlldy1ydWxl cy1lbmQpKQoJICAgICAgZ251cy11dS11c2VyLXZpZXctcnVsZXMtZW5kKSkp KQphNTY1IDM3CjsgYGdudXMtdXUtY2FsbC1zeW5jaHJvbm91cycgdGFrZXMg dHdvIHBhcmFtZXRlcnM6IFRoZSBuYW1lIG9mIHRoZQo7IGZpbGUgdG8gYmUg ZGlzcGxheWVkIGFuZCB0aGUgY29tbWFuZCB0byBkaXNwbGF5IGl0IHdpdGgu IFJldHVybnMgdAo7IG9uIHN1Y2Nlc3MgYW5kIG5pbCBpZiB0aGUgZmlsZSBj b3VsZG4ndCBiZSBkaXNwbGF5ZWQuCihkZWZ1biBnbnVzLXV1LWNhbGwtc3lu Y2hyb25vdXMgKGZpbGUtbmFtZSBhY3Rpb24pCiAgKGxldCAoZGlkLXZpZXcg Y29tbWFuZCkKICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAoc2V0LWJ1ZmZl ciAoZ2V0LWJ1ZmZlci1jcmVhdGUgZ251cy11dS1vdXRwdXQtYnVmZmVyLW5h bWUpKQogICAgICAoZXJhc2UtYnVmZmVyKQogICAgICAoc2V0cSBjb21tYW5k IChnbnVzLXV1LWNvbW1hbmQgYWN0aW9uIGZpbGUtbmFtZSkpCiAgICAgICht ZXNzYWdlICJWaWV3aW5nIHdpdGggJyVzJyIgY29tbWFuZCkKICAgICAgKGlm IChub3QgKD0gMCAoY2FsbC1wcm9jZXNzICJzaCIgbmlsIHQgbmlsICItYyIg Y29tbWFuZCkpKQoJICAocHJvZ24KCSAgICAoZ290by1jaGFyIDEpCgkgICAg KHdoaWxlIChyZS1zZWFyY2gtZm9yd2FyZCAiXG4iIG5pbCB0KQoJICAgICAg KHJlcGxhY2UtbWF0Y2ggIiAiKSkKCSAgICAobWVzc2FnZSAoY29uY2F0ICJF cnJvcjogIiAoYnVmZmVyLXN1YnN0cmluZyAxIChwb2ludC1tYXgpKSkpCgkg ICAgKHNpdC1mb3IgMikpCgkobWVzc2FnZSAiIikKCShzZXRxIGRpZC12aWV3 IHQpKSkKICAgIGRpZC12aWV3KSkKCjsgYGdudXMtdXUtY2FsbC1hc3luY3Jv bm91cycgdGFrZXMgdHdvIHBhcmFtZXRlcnM6IFRoZSBuYW1lIG9mIHRoZQo7 IGZpbGUgdG8gYmUgZGlzcGxheWVkIGFuZCB0aGUgY29tbWFuZCB0byBkaXNw bGF5IGl0IHdpdGguIFNpbmNlIHRoZQo7IHZpZXcgY29tbWFuZCBpcyBleGVj dXRlZCBhc3luY2hyb25vdXNseSwgaXQncyBraW5kYSBoYXJkIHRvIGRlY2lk ZQo7IHdoZXRoZXIgdGhlIGNvbW1hbmQgc3VjY2VkZWQgb3Igbm90LCBzbyB0 aGlzIGZ1bmN0aW9uIGFsd2F5cyByZXR1cm5zCjsgdC4gSXQgYWxzbyBhZGRz ICI7IHJtIC1mIGZpbGUtbmFtZSIgdG8gdGhlIGVuZCBvZiB0aGUgZXhlY3V0 aW9uCjsgc3RyaW5nLCBzbyB0aGUgZmlsZSB3aWxsIGJlIHJlbW92ZWQgYWZ0 ZXIgdmlld2luZyBoYXMgZW5kZWQuCihkZWZ1biBnbnVzLXV1LWNhbGwtYXN5 bmNocm9ub3VzIChmaWxlLW5hbWUgYWN0aW9uKQogIChsZXQgKGNvbW1hbmQg ZmlsZSB0bXAtZmlsZSBzdGFydCkKICAgICh3aGlsZSAoc3RyaW5nLW1hdGNo ICIvIiBmaWxlLW5hbWUgc3RhcnQpCiAgICAgIChzZXRxIHN0YXJ0ICgxKyAo bWF0Y2gtYmVnaW5uaW5nIDApKSkpCiAgICAoc2V0cSBmaWxlIChzdWJzdHJp bmcgZmlsZS1uYW1lIHN0YXJ0KSkKICAgIChzZXRxIHRtcC1maWxlIChjb25j YXQgZ251cy11dS13b3JrLWRpciBmaWxlKSkKICAgIChpZiAoc3RyaW5nPSB0 bXAtZmlsZSBmaWxlLW5hbWUpCgkoKQogICAgICAocmVuYW1lLWZpbGUgZmls ZS1uYW1lIHRtcC1maWxlIHQpCiAgICAgIChzZXRxIGZpbGUtbmFtZSB0bXAt ZmlsZSkpCmQ1NjcgMQphNTY3IDE1CiAgICAoc2V0cSBjb21tYW5kIChnbnVz LXV1LWNvbW1hbmQgYWN0aW9uIGZpbGUtbmFtZSkpCiAgICAoc2V0cSBjb21t YW5kIChmb3JtYXQgIiVzIDsgcm0gLWYgJXMiIGNvbW1hbmQgZmlsZS1uYW1l KSkKICAgIChtZXNzYWdlICJWaWV3aW5nIHdpdGggJXMiIGNvbW1hbmQpCiAg ICAoc3RhcnQtcHJvY2VzcyAiZ251cy11dS12aWV3IiBuaWwgInNoIiAiLWMi IGNvbW1hbmQpCiAgICB0KSkKCjsgYGdudXMtdXUtZGVjb2RlLWFuZC1zdHJp cCcgZG9lcyBhbGwgdGhlIG1haW4gd29yay4gSXQgZmluZHMgb3V0IHdoYXQK OyBhcnRpY2xlcyB0byBncmFiLCBncmFicyB0aGVtLCBzdHJpcHMgdGhlIHJl c3VsdCBhbmQgZGVjb2Rlcy4gSWYgYW55Cjsgb2YgdGhlc2Ugb3BlcmF0aW9u cyBmYWlsLCBpdCByZXR1cm5zIG5pbCwgdCBvdGhlcndpc2UuICBJZiBzaGFy IGlzCjsgdCwgaXQgd2lsbCBwYXNzIHRoaXMgb24gdG8gYGdudXMtdXUtZ3Jh Yi1hcnRpY2xlcycsIHdoaWNoIHdpbGwKOyAocHJvYmFibHkpIHVuc2hhciB0 aGUgYXJ0aWNsZXMuIElmIHVzZS1tYXJrZWQgaXMgbm9uLW5pbCwgaXQgd29u J3QKOyB0cnkgdG8gZmluZCBhcnRpY2xlcywgYnV0IHVzZSB0aGUgbWFya2Vk IGxpc3QuCihkZWZ1biBnbnVzLXV1LWRlY29kZS1hbmQtc3RyaXAgKCZvcHRp b25hbCBzaGFyIHVzZS1tYXJrZWQgbGltaXQpCiAgKGxldCAobGlzdC1vZi1h cnRpY2xlcykKICAgIChzYXZlLWV4Y3Vyc2lvbgphNTY4IDIxCiAgICAgIChp ZiB1c2UtbWFya2VkCgkgIChpZiAobm90IGdudXMtbmV3c2dyb3VwLXByb2Nl c3NhYmxlKQoJICAgICAgKG1lc3NhZ2UgIk5vIGFydGljbGVzIG1hcmtlZCIp CgkgICAgKHNldHEgbGlzdC1vZi1hcnRpY2xlcyAKCQkgIChzZXRxIGdudXMt bmV3c2dyb3VwLXByb2Nlc3NhYmxlIAoJCQkobnJldmVyc2UgZ251cy1uZXdz Z3JvdXAtcHJvY2Vzc2FibGUpKSkKCSAgICAoZ251cy1zdW1tYXJ5LXVubWFy ay1hbGwtcHJvY2Vzc2FibGUpKQoJKHNldHEgbGlzdC1vZi1hcnRpY2xlcyAo Z251cy11dS1nZXQtbGlzdC1vZi1hcnRpY2xlcykpKQogICAgICAKICAgICAg KGFuZCBsaXN0LW9mLWFydGljbGVzCgkgICAoZ251cy11dS1ncmFiLWFydGlj bGVzIAoJICAgIGxpc3Qtb2YtYXJ0aWNsZXMgCgkgICAgKGlmIHNoYXIgJ2du dXMtdXUtdW5zaGFyLWFydGljbGUgJ2dudXMtdXUtdXVzdHJpcC1hcnRpY2xl LWFzKQoJICAgIHQgbGltaXQpKSkpKQoKOyBUYWtlcyBhIHN0cmluZyBhbmQg cHV0cyBhIFwgaW4gZnJvbnQgb2YgZXZlcnkgc3BlY2lhbCBjaGFyYWN0ZXI7 CjsgaWdub3JlcyBhbnkgbGVhZGluZyAidmVyc2lvbiBudW1iZXJzIiB0aGlu Z2llcyB0aGF0IHRoZXkgdXNlIGluIHRoZQo7IGNvbXAuYmluYXJpZXMgZ3Jv dXBzLCBhbmQgZWl0aGVyIHJlcGxhY2VzIGFueXRoaW5nIHRoYXQgbG9va3Mg bGlrZQo7ICIyLzMiIHdpdGggIlswLTldKy9bMC05XSsiIG9yLCBpZiBpdCBj YW4ndCBmaW5kIHNvbWV0aGluZyBsaWtlIHRoYXQsCjsgcmVwbGFjZXMgdGhl IGxhc3QgdHdvIG51bWJlcnMgd2l0aCAiWzAtOV0rIi4gVGhpcywgaW4gbXkg ZXhwZXJpZW5jZSwKOyBzaG91bGQgZ2V0IG1vc3QgcG9zdGluZ3Mgb2YgYSBz ZXJpZXMuCmQ1NzAgNgpkNjE3IDI1CmE2NDEgMQooZGVmc3Vic3QgZ251cy11 dS1zdHJpbmc8IChsMSBsMikKZDY0NCA5CmE2NTIgOAo7IEZpbmRzIGFsbCBh cnRpY2xlcyB0aGF0IG1hdGNoZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBn aXZlbi4KOyBSZXR1cm5zIHRoZSByZXN1bHRpbmcgbGlzdC4gU1VCSkVDVCBp cyB0aGUgcmVndWxhciBleHByZXNzaW9uIHRvIGJlCjsgbWF0Y2hlZC4gSWYg aXQgaXMgbmlsLCB0aGUgY3VycmVudCBhcnRpY2xlIG5hbWUgd2lsbCBiZSB1 c2VkLiBJZgo7IE1BUkstQVJUSUNMRVMgaXMgbm9uLW5pbCwgYXJ0aWNsZXMg Zm91bmQgYXJlIG1hcmtlZC4gSWYgT05MWS1VTlJFQUQKOyBpcyBub24tbmls LCBvbmx5IHVucmVhZCBhcnRpY2xlcyBhcmUgY2hvc2UuIElmIERPLU5PVC1U UkFOU0xBVEUgaXMKOyBub24tbmlsLCBhcnRpY2xlIG5hbWVzIGFyZSBub3Qg ZXF1aWFsaXplZCBiZWZvcmUgc29ydGluZy4KKGRlZnVuIGdudXMtdXUtZ2V0 LWxpc3Qtb2YtYXJ0aWNsZXMgKCZvcHRpb25hbCBzdWJqZWN0IG1hcmstYXJ0 aWNsZXMgb25seS11bnJlYWQgZG8tbm90LXRyYW5zbGF0ZSkKICAobGV0IChi ZWcgZW5kIHJlZy1zdWJqZWN0IGxpc3Qtb2Ytc3ViamVjdHMgbGlzdC1vZi1u dW1iZXJzIGFydC1udW0pCmQ2NTQgMjYKYTY3OSAyNgogICAgICAKOyBJZiB0 aGUgc3ViamVjdCBpcyBub3QgZ2l2ZW4sIHRoaXMgZnVuY3Rpb24gbG9va3Mg YXQgdGhlIGN1cnJlbnQgc3ViamVjdAo7IGFuZCB0YWtlcyB0aGF0LgoKICAg ICAgKGlmIHN1YmplY3QKCSAgKHNldHEgcmVnLXN1YmplY3Qgc3ViamVjdCkK CShzZXRxIHJlZy1zdWJqZWN0IAoJICAgICAgKGZvcm1hdCAiJXMgWy0wLTld KyAlcyBbLTAtOV0rIFstMC05XStbXG5ccl0iCgkgICAgICAgKGdudXMtdXUt cmVnaW5pemUtc3RyaW5nIChnbnVzLXN1bW1hcnktc3ViamVjdC1zdHJpbmcp KQoJICAgICAgIChpZiBvbmx5LXVucmVhZCAiWy0gXSIgIi4iKSkpKQoKICAg ICAgKGlmIHJlZy1zdWJqZWN0CgkgIChwcm9nbgoKOyBDb2xsZWN0IGFsbCBz dWJqZWN0cyBtYXRjaGluZyByZWctc3ViamVjdC4KCgkgICAgKGxldCAoKGNh c2UtZm9sZC1zZWFyY2ggdCkpCgkgICAgICAoZ290by1jaGFyIDEpCgkgICAg ICAod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkIHJlZy1zdWJqZWN0IG5pbCB0 KQoJCShwcm9nbgoJCSAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDAp KQoJCSAgKHNldHEgbGlzdC1vZi1zdWJqZWN0cyAKCQkJKGNvbnMgKGNvbnMg KGdudXMtc3VtbWFyeS1zdWJqZWN0LXN0cmluZykKCQkJCSAgICAoZ251cy1z dW1tYXJ5LWFydGljbGUtbnVtYmVyKSkKCQkJICAgICAgbGlzdC1vZi1zdWJq ZWN0cykpCgkJICAoZm9yd2FyZC1saW5lIDEpKSkpCmE2ODAgMjcKOyBFeHBh bmQgYWxsIG51bWJlcnMgaW4gYWxsIHRoZSBzdWJqZWN0czogKGhpOSAtPiBo aTAwMDksIGV0YykuCgoJICAgIChzZXRxIGxpc3Qtb2Ytc3ViamVjdHMgCgkJ ICAoZ251cy11dS1leHBhbmQtbnVtYmVycyBsaXN0LW9mLXN1YmplY3RzCgkJ CQkJICAobm90IGRvLW5vdC10cmFuc2xhdGUpKSkKCjsgU29ydCB0aGUgc3Vi amVjdHMuCgoJICAgIChzZXRxIGxpc3Qtb2Ytc3ViamVjdHMgKHNvcnQgbGlz dC1vZi1zdWJqZWN0cyAnZ251cy11dS1zdHJpbmc8KSkKCjsgR2V0IHRoZSBh cnRpY2xlIG51bWJlcnMgZnJvbSB0aGUgc29ydGVkIGxpc3Qgb2Ygc3ViamVj dHMuCgoJICAgICh3aGlsZSBsaXN0LW9mLXN1YmplY3RzIAoJICAgICAgKHNl dHEgYXJ0LW51bSAoY2RyIChjYXIgbGlzdC1vZi1zdWJqZWN0cykpKQoJICAg ICAgKGlmIG1hcmstYXJ0aWNsZXMgKGdudXMtc3VtbWFyeS1tYXJrLWFzLXJl YWQgYXJ0LW51bSA/IykpCgkgICAgICAoc2V0cSBsaXN0LW9mLW51bWJlcnMg KGNvbnMgYXJ0LW51bSBsaXN0LW9mLW51bWJlcnMpKQoJICAgICAgKHNldHEg bGlzdC1vZi1zdWJqZWN0cyAoY2RyIGxpc3Qtb2Ytc3ViamVjdHMpKSkKCgkg ICAgKHNldHEgbGlzdC1vZi1udW1iZXJzIChucmV2ZXJzZSBsaXN0LW9mLW51 bWJlcnMpKSkpCgogICAgICBsaXN0LW9mLW51bWJlcnMpKSkKCjsgVGFrZXMg YSBsaXN0IG9mIHN0cmluZ3MgYW5kICJleHBhbmRzIiBhbGwgbnVtYmVycyBp biBhbGwgdGhlCjsgc3RyaW5ncy4gIFRoYXQgaXMsIHRoaXMgZnVuY3Rpb24g bWFrZXMgYWxsIG51bWJlcnMgZXF1YWwgbGVuZ3RoIGJ5CjsgcHJlcGVuZGlu ZyBsb3RzIG9mIHplcm9lcyBiZWZvcmUgZWFjaCBudW1iZXIuIFRoaXMgaXMg dG8gZWFzZSBsYXRlcgo7IHNvcnRpbmcgdG8gZmluZCBvdXQgd2hhdCBzZXF1 ZW5jZSB0aGUgYXJ0aWNsZXMgYXJlIHN1cHBvc2VkIHRvIGJlCjsgZGVjb2Rl ZCBpbi4gUmV0dXJucyB0aGUgbGlzdCBvZiBleHBhbmRlZCBzdHJpbmdzLgpk NjgyIDUKZDcxNyAyMwphNzM5IDI1Cjs7IGdudXMtdXUtZ3JhYi1hcnRpY2xl CjsKOyBUaGlzIGlzIHRoZSBnZW5lcmFsIG11bHRpLWFydGljbGUgdHJlYXRt ZW50IGZ1bmN0aW9uLiAgSXQgdGFrZXMgYQo7IGxpc3Qgb2YgYXJ0aWNsZXMg dG8gYmUgZ3JhYmJlZCBhbmQgYSBmdW5jdGlvbiB0byBhcHBseSB0byBlYWNo CjsgYXJ0aWNsZS4gCjsKOyBUaGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHNo b3VsZCB0YWtlIHR3byBwYXJhbWV0ZXJzLiAgVGhlIGZpcnN0CjsgcGFyYW1l dGVyIGlzIHRoZSBhcnRpY2xlIGJ1ZmZlci4gVGhlIGZ1bmN0aW9uIHNob3Vs ZCBsZWF2ZSB0aGUKOyByZXN1bHQsIGlmIGFueSwgaW4gdGhpcyBidWZmZXIu IE1vc3QgdHJlYXRtZW50IGZ1bmN0aW9ucyB3aWxsIGp1c3QKOyBnZW5lcmF0 ZSBmaWxlcy4uLgo7CjsgVGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgdGhlIHN0 YXRlIG9mIHRoZSBsaXN0IG9mIGFydGljbGVzLCBhbmQgY2FuCjsgaGF2ZSBm b3VyIHZhbHVlczogYGZpcnN0JywgYG1pZGRsZScsIGBsYXN0JyBhbmQgYGZp cnN0LWFuZC1sYXN0Jy4KOwo7IFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJu IGEgbGlzdC4gVGhlIGxpc3QgbWF5IGNvbnRhaW4gdGhlCjsgZm9sbG93aW5n IHN5bWJvbHM6CjsgYGVycm9yJyBpZiBhbiBlcnJvciBvY2N1cnJlZAo7IGBi ZWdpbicgaWYgdGhlIGJlZ2lubmluZyBvZiBhbiBlbmNvZGVkIGZpbGUgaGFz IGJlZW4gcmVjZWl2ZWQKOyAgIElmIHRoZSBsaXN0IHJldHVybmVkIGNvbnRh aW5zIGEgYGJlZ2luJywgdGhlIGZpcnN0IGVsZW1lbnQgb2YKOyAgIHRoZSBs aXN0ICptdXN0KiBiZSBhIHN0cmluZyB3aXRoIHRoZSBmaWxlIG5hbWUgb2Yg dGhlIGRlY29kZWQKOyAgIGZpbGUuCjsgYGVuZCcgaWYgdGhlIHRoZSBlbmQg b2YgYW4gZW5jb2RlZCBmaWxlIGhhcyBiZWVuIHJlY2VpdmVkCjsgYG1pZGRs ZScgaWYgdGhlIGFydGljbGUgd2FzIGEgYm9keSBwYXJ0IG9mIGFuIGVuY29k ZWQgZmlsZQo7IGB3cm9uZy10eXBlJyBpZiB0aGUgYXJ0aWNsZSB3YXMgbm90 IGEgcGFydCBvZiBhbiBlbmNvZGVkIGZpbGUKOyBgb2snLCB3aGljaCBjYW4g YmUgdXNlZCBldmVyeXRoaW5nIGlzIG9rCmQ3NTggNwphNzY0IDYKOyBUaGlz IGZ1bmN0aW9uIHRha2VzIGEgbGlzdCBvZiBhcnRpY2xlcyBhbmQgYSBmdW5j dGlvbiB0byBhcHBseSB0bwo7IGVhY2ggYXJ0aWNsZSBncmFiYmVkLiAKOyAK OyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBsaXN0IG9mIGZpbGVzIGRlY29k ZWQgaWYgdGhlIGdyYWJiaW5nIGFuZAo7IHRoZSBwcm9jZXNzLWZ1bmN0aW9u IGhhcyBiZWVuIHN1Y2Nlc3NmdWwgYW5kIG5pbCBvdGhlcndpc2UuCihkZWZ1 biBnbnVzLXV1LWdyYWItYXJ0aWNsZXMgKGxpc3Qtb2YtYXJ0aWNsZXMgcHJv Y2Vzcy1mdW5jdGlvbiAmb3B0aW9uYWwgc2xvcHB5IGxpbWl0IG5vLWVycm9y cykKZDc3NyAxCmE3NzcgMQogICAgKHdoaWxlIChhbmQgbGlzdC1vZi1hcnRp Y2xlcyAKZDc4MiAyCmE3ODMgMgogICAgICAoc2V0cSBhcnRpY2xlIChjYXIg bGlzdC1vZi1hcnRpY2xlcykpCiAgICAgIChzZXRxIGxpc3Qtb2YtYXJ0aWNs ZXMgKGNkciBsaXN0LW9mLWFydGljbGVzKSkKZDc4OSAxCmE3ODkgMQogICAg ICAoaWYgKGVxIGxpc3Qtb2YtYXJ0aWNsZXMgKCkpIAphNzk1IDUKICAgICAg KGlmIChub3QgKGdudXMtc2VydmVyLW9wZW5lZCBnbnVzLWN1cnJlbnQtc2Vs ZWN0LW1ldGhvZCkpCgkgIChwcm9nbgoJICAgIChnbnVzLXN0YXJ0LW5ld3Mt c2VydmVyKQoJICAgIChnbnVzLXJlcXVlc3QtZ3JvdXAgZ251cy1uZXdzZ3Jv dXAtbmFtZSkpKQoKZDgwOSAyCmQ4MzIgMgphODMzIDQKCSAgICAoaWYgKGFu ZCBsaW1pdCAoPSAobGVuZ3RoIHJlc3VsdC1maWxlcykgbGltaXQpKQoJCShw cm9nbgoJCSAgKHNldHEgbGlzdC1vZi1hcnRpY2xlcyBuaWwpCgkJICAoc2V0 cSBnbnVzLW5ld3Nncm91cC1wcm9jZXNzYWJsZSBuaWwpKSkpKQpkODQwIDEK YTg0MCAxCiAgICAgIChzZXRxIHJlc3VsdC1maWxlIG5pbCkKZDg1OSAyCmE4 NjAgMgogICAgOyBNYWtlIHN1cmUgdGhlIGxhc3QgYXJ0aWNsZSBpcyBwdXQg aW4gdGhlIGFydGljbGUgYnVmZmVyCiAgICA7ICYgZml4IHdpbmRvd3MgZXRj LgpkODg2IDIKYTg4NyAxCiAgICByZXN1bHQtZmlsZXMpKQpkODkyIDIKYTg5 MyAyCjsgVXVkZWNvZGVzIGEgZmlsZSBhc3luY2hyb25vdXNseS4KKGRlZnVu IGdudXMtdXUtdXVzdHJpcC1hcnRpY2xlLWFzIChwcm9jZXNzLWJ1ZmZlciBp bi1zdGF0ZSkKZDEwMDIgMgphMTAwMyAyCjsgVGhpcyBmdW5jdGlvbiBpcyB1 c2VkIGJ5IGBnbnVzLXV1LWdyYWItYXJ0aWNsZXMnIHRvIHRyZWF0CjsgYSBz aGFyZWQgYXJ0aWNsZS4KZDEwMjAgMQphMTAyMCAxCjsgUmV0dXJucyB0aGUg bmFtZSBvZiB3aGF0IHRoZSBzaGFyIGZpbGUgaXMgZ29pbmcgdG8gdW5wYWNr LgpkMTAzMCAzCmExMDMyIDExCjsgUmV0dXJucyB0aGUgYXJ0aWNsZSBudW1i ZXIgb2YgdGhlIGdpdmVuIHN1YmplY3QuCihkZWZ1biBnbnVzLXV1LWFydGlj bGUtbnVtYmVyIChzdWJqZWN0KQogIChsZXQgKGVuZCkKICAgIChzdHJpbmct bWF0Y2ggIlswLTldK1teMC05XSIgc3ViamVjdCAxKQogICAgKHNldHEgZW5k IChtYXRjaC1lbmQgMCkpCiAgICAoc3RyaW5nLXRvLWludCAKICAgICAoc3Vi c3RyaW5nIHN1YmplY3QgKHN0cmluZy1tYXRjaCAiWzAtOV0iIHN1YmplY3Qg MSkgZW5kKSkpKSAKCSAgICAgIAo7IGBnbnVzLXV1LWNob29zZS1hY3Rpb24n IGNob29zZXMgd2hhdCBhY3Rpb24gdG8gcGVyZm9ybSBnaXZlbiB0aGUgbmFt ZQo7IGFuZCBgZ251cy11dS1maWxlLWFjdGlvbi1saXN0Jy4gIFJldHVybnMg ZWl0aGVyIG5pbCBpZiBubyBhY3Rpb24gaXMKOyBmb3VuZCwgb3IgdGhlIG5h bWUgb2YgdGhlIGNvbW1hbmQgdG8gcnVuIGlmIHN1Y2ggYSBydWxlIGlzIGZv dW5kLgphMTA1MyA2MwooZGVmdW4gZ251cy11dS1zYXZlLWRpcmVjdG9yeSAo ZnJvbS1kaXIgJm9wdGlvbmFsIGRlZmF1bHQtZGlyIGlnbm9yZS1leGlzdGlu ZykKICAobGV0IChkaXIgZmlsZS1uYW1lIGNvbW1hbmQgZmlsZXMgZmlsZSkK ICAgIChzZXRxIGZpbGVzIChkaXJlY3RvcnktZmlsZXMgZnJvbS1kaXIgdCkp CiAgICAoaWYgZGVmYXVsdC1kaXIKCShzZXRxIGRpciBkZWZhdWx0LWRpcikK ICAgICAgKHNldHEgZGlyIChnbnVzLXV1LXJlYWQtZGlyZWN0b3J5IAoJCSAo Y29uY2F0ICJXaGVyZSBkbyB5b3Ugd2FudCB0aGUgZmlsZSIgCgkJCSAoaWYg KDwgMyAobGVuZ3RoIGZpbGVzKSkgInMiICIiKSAiPyAiKSkpKQoKICAgICh3 aGlsZSBmaWxlcwogICAgICAoc2V0cSBmaWxlIChjYXIgZmlsZXMpKQogICAg ICAoc2V0cSBmaWxlcyAoY2RyIGZpbGVzKSkKICAgICAgKHN0cmluZy1tYXRj aCAiL1teL10qJCIgZmlsZSkKICAgICAgKHNldHEgZmlsZS1uYW1lIChzdWJz dHJpbmcgZmlsZSAoMSsgKG1hdGNoLWJlZ2lubmluZyAwKSkpKQogICAgICAo aWYgKHN0cmluZy1tYXRjaCAiXlxcLlxcLj8kIiBmaWxlLW5hbWUpCgkgICgp CgkoaWYgKGFuZCAobm90IGlnbm9yZS1leGlzdGluZykgKGZpbGUtZXhpc3Rz LXAgKGNvbmNhdCBkaXIgZmlsZS1uYW1lKSkpCgkgICAgKHNldHEgZmlsZS1u YW1lCgkJICAocmVhZC1maWxlLW5hbWUgIkZpbGUgZXhpc3RzLiBFbnRlciBh IG5ldyBuYW1lOiAiIGRpciAKCQkJCSAgKGNvbmNhdCBkaXIgZmlsZS1uYW1l KSBuaWwgZmlsZS1uYW1lKSkKCSAgKHNldHEgZmlsZS1uYW1lIChjb25jYXQg ZGlyIGZpbGUtbmFtZSkpKQoJKHJlbmFtZS1maWxlIGZpbGUgZmlsZS1uYW1l IHQpKSkpKQoKOyBNb3ZlcyB0aGUgZmlsZSBmcm9tIHRoZSB0bXAgZGlyZWN0 b3J5IHRvIHdoZXJlIHRoZSB1c2VyIHdhbnRzIGl0LgooZGVmdW4gZ251cy11 dS1zYXZlLWZpbGUgKGZyb20tZmlsZS1uYW1lICZvcHRpb25hbCBkZWZhdWx0 LWRpciBpZ25vcmUtZXhpc3RpbmcpCiAgKGxldCAoZGlyIGZpbGUtbmFtZSBj b21tYW5kKQogICAgKHN0cmluZy1tYXRjaCAiL1teL10qJCIgZnJvbS1maWxl LW5hbWUpCiAgICAoc2V0cSBmaWxlLW5hbWUgKHN1YnN0cmluZyBmcm9tLWZp bGUtbmFtZSAoMSsgKG1hdGNoLWJlZ2lubmluZyAwKSkpKQogICAgKGlmIGRl ZmF1bHQtZGlyCgkoc2V0cSBkaXIgZGVmYXVsdC1kaXIpCiAgICAgIChzZXRx IGRpciAoZ251cy11dS1yZWFkLWRpcmVjdG9yeSAiV2hlcmUgZG8geW91IHdh bnQgdGhlIGZpbGU/ICIpKSkKICAgIChpZiAoYW5kIChub3QgaWdub3JlLWV4 aXN0aW5nKSAoZmlsZS1leGlzdHMtcCAoY29uY2F0IGRpciBmaWxlLW5hbWUp KSkKCShzZXRxIGZpbGUtbmFtZQoJICAgICAgKHJlYWQtZmlsZS1uYW1lICJG aWxlIGV4aXN0LiBFbnRlciBhIG5ldyBuYW1lOiAiIGRpciAKCQkJICAgICAg KGNvbmNhdCBkaXIgZmlsZS1uYW1lKSBuaWwgZmlsZS1uYW1lKSkKICAgICAg KHNldHEgZmlsZS1uYW1lIChjb25jYXQgZGlyIGZpbGUtbmFtZSkpKQogICAg KHJlbmFtZS1maWxlIGZyb20tZmlsZS1uYW1lIGZpbGUtbmFtZSB0KSkpCiAg ICAKKGRlZnVuIGdudXMtdXUtcmVhZC1kaXJlY3RvcnkgKHByb21wdCAmb3B0 aW9uYWwgZGVmYXVsdCkKICAobGV0IChkaXIgb2sgY3JlYXRlKQogICAgKHdo aWxlIChub3Qgb2spCiAgICAgIChzZXRxIG9rIHQpCiAgICAgIChzZXRxIGRp ciAoaWYgZGVmYXVsdCBkZWZhdWx0CgkJICAocmVhZC1maWxlLW5hbWUgcHJv bXB0IGdudXMtdXUtY3VycmVudC1zYXZlLWRpciAKCQkJCSAgZ251cy11dS1j dXJyZW50LXNhdmUtZGlyKSkpCiAgICAgICh3aGlsZSAoc3RyaW5nLW1hdGNo ICIvJCIgZGlyKQoJKHNldHEgZGlyIChzdWJzdHJpbmcgZGlyIDAgKG1hdGNo LWJlZ2lubmluZyAwKSkpKQogICAgICAoaWYgKGZpbGUtZXhpc3RzLXAgZGly KQoJICAoaWYgKG5vdCAoZmlsZS1kaXJlY3RvcnktcCBkaXIpKQoJICAgICAg KHByb2duCgkJKHNldHEgb2sgbmlsKQoJCShtZXNzYWdlICIlcyBpcyBhIGZp bGUiIGRpcikKCQkoc2l0LWZvciAyKSkpCgkoc2V0cSBjcmVhdGUgP28pCgko d2hpbGUgKG5vdCAob3IgKD0gY3JlYXRlID95KSAoPSBjcmVhdGUgP24pKSkK CSAgKG1lc3NhZ2UgIiVzOiBObyBzdWNoIGRpcmVjdG9yeS4gRG8geW91IHdh bnQgdG8gY3JlYXRlIGl0PyAoeS9uKSIgCgkJICAgZGlyKQoJICAoc2V0cSBj cmVhdGUgKHJlYWQtY2hhcikpKQoJKGlmICg9IGNyZWF0ZSA/eSkgKG1ha2Ut ZGlyZWN0b3J5IGRpcikpKSkKICAgIChzZXRxIGdudXMtdXUtY3VycmVudC1z YXZlLWRpciAoY29uY2F0IGRpciAiLyIpKSkpCgo7IFVucGFja3MgYW4gYXJj aGl2ZSBhbmQgdmlld3MgYWxsIHRoZSBmaWxlcyBpbiBpdC4gUmV0dXJucyB0 IGlmCjsgdmlld2luZyBvbmUgb3IgbW9yZSBmaWxlcyBpcyBzdWNjZXNzZnVs LgpkMTA1NSAxCmQxMDcwIDEKYTEwNzAgMQogICAgKGlmIChnbnVzLXV1LXN0 cmluZy1pbi1saXN0IGFjdGlvbiBnbnVzLXV1LWRlc3RydWN0aXZlLWFyY2hp dmVycykKZDEwODUgMQphMTA4NSA0CiAgICAgIChpZiAobm90IGdudXMtdXUt dXNlLWludGVyYWN0aXZlLXZpZXcpCgkgIChwcm9nbgoJICAgIChtZXNzYWdl ICJFcnJvciBkdXJpbmcgdW5wYWNraW5nIG9mIGFyY2hpdmUiKQoJICAgIChz bGVlcC1mb3IgMikpKQpkMTA4OCAxCmExMDg4IDEKICAgIChpZiAoZ251cy11 dS1zdHJpbmctaW4tbGlzdCBhY3Rpb24gZ251cy11dS1kZXN0cnVjdGl2ZS1h cmNoaXZlcnMpCmExMDkyIDQwCjsgVHJpZXMgdG8gdmlldyBhbGwgdGhlIGZp bGVzIGluIHRoZSBnaXZlbiBkaXJlY3RvcnkuIFJldHVybnMgdCBpZgo7IHZp ZXdpbmcgb25lIG9yIG1vcmUgZmlsZXMgaXMgc3VjY2Vzc2Z1bC4KKGRlZnVu IGdudXMtdXUtdmlldy1kaXJlY3RvcnkgKGRpciAmb3B0aW9uYWwgZG9udC1k ZWxldGUtZmlsZXMgbm90LXRvcCkKICAobGV0ICgoZmlyc3QgdCkKCWZpbGVz IGZpbGUgZGlkLXZpZXcgaWdub3JlLWZpbGVzKQogICAgKHNldHEgZmlsZXMg KGdudXMtdXUtZGlyZWN0b3J5LWZpbGVzIGRpciB0KSkKICAgIChnbnVzLXV1 LWFkZC1maWxlIGZpbGVzKQogICAgKHNldHEgaWdub3JlLWZpbGVzIGZpbGVz KQogICAgCiAgICAod2hpbGUgKGdudXMtdXUtdW5wYWNrLWFyY2hpdmVzIAoJ ICAgIGZpbGVzIChpZiBub3QtdG9wIChsaXN0ICIuIikKCQkgICAgKGlmIGZp cnN0ICgpIGlnbm9yZS1maWxlcykpKQogICAgICAoc2V0cSBmaXJzdCBuaWwp CiAgICAgIChnbnVzLXV1LWFkZC1maWxlIAogICAgICAgKHNldHEgZmlsZXMg KGdudXMtdXUtZGlyZWN0b3J5LWZpbGVzIGRpciB0KSkpKQoKICAgIChnbnVz LXV1LWFkZC1maWxlIChnbnVzLXV1LWRpcmVjdG9yeS1maWxlcyBkaXIgdCkp CiAgICAgIAogICAgKHdoaWxlIGZpbGVzCiAgICAgIChzZXRxIGZpbGUgKGNh ciBmaWxlcykpCiAgICAgIChzZXRxIGZpbGVzIChjZHIgZmlsZXMpKQogICAg ICAoaWYgKG5vdCAoc3RyaW5nPSAob3IgKGdudXMtdXUtZ2V0LWFjdGlvbiBm aWxlKSAiIikgImdudXMtdXUtYXJjaGl2ZSIpKQoJICAocHJvZ24KCSAgICAo c2V0LWZpbGUtbW9kZXMgZmlsZSA0NDgpCgkgICAgKGlmIChmaWxlLWRpcmVj dG9yeS1wIGZpbGUpCgkJKHNldHEgZGlkLXZpZXcgKG9yIChnbnVzLXV1LXZp ZXctZGlyZWN0b3J5IGZpbGUgCgkJCQkJCQkgICBkb250LWRlbGV0ZS1maWxl cyAKCQkJCQkJCSAgIHQpIAoJCQkJICAgZGlkLXZpZXcpKQoJICAgICAgKHNl dHEgZGlkLXZpZXcgKG9yIChnbnVzLXV1LXZpZXctZmlsZSBmaWxlIHQpIGRp ZC12aWV3KSkpKSkKICAgICAgKGlmIChhbmQgKG5vdCBkb250LWRlbGV0ZS1m aWxlcykgKG5vdCBnbnVzLXV1LWFzeW5jaHJvbm91cykgCgkgICAgICAgKGZp bGUtZXhpc3RzLXAgZmlsZSkpCgkgIChkZWxldGUtZmlsZSBmaWxlKSkpCgog ICAgKGlmIChhbmQgKG5vdCBnbnVzLXV1LWFzeW5jaHJvbm91cykgKG5vdCBk b250LWRlbGV0ZS1maWxlcykpCgkoaWYgKHN0cmluZy1tYXRjaCAiLyQiIGRp cikKCSAgICAoZGVsZXRlLWRpcmVjdG9yeSAoc3Vic3RyaW5nIGRpciAwICht YXRjaC1iZWdpbm5pbmcgMCkpKQoJICAoZGVsZXRlLWRpcmVjdG9yeSBkaXIp KSkKICAgIGRpZC12aWV3KSkKCmQxMTAzIDMxCmExMTMzIDEyCihkZWZ1biBn bnVzLXV1LWRpcmVjdG9yeS1maWxlcy1vbGQgKGRpcikKICAobGV0ICgoZmls ZXMgKGRpcmVjdG9yeS1maWxlcyBkaXIgdCkpIGYpCiAgICAoc2V0cSBmIGZp bGVzKQogICAgKHdoaWxlIChjZHIgZikKICAgICAgKGlmIChzdHJpbmctbWF0 Y2ggIi9cXC5cXC4/JCIgKGNhciAoY2RyIGYpKSkKCSAgKHNldGNkciBmIChj ZHIgKGNkciBmKSkpCgkoc2V0cSBmIChjZHIgZikpKSkKICAgIChpZiAoc3Ry aW5nLW1hdGNoICIvXFwuXFwuPyQiIChjYXIgZmlsZXMpKSAoY2RyIGZpbGVz KQogICAgICBmaWxlcykpKQoKKGRlZnVuIGdudXMtdXUtdW5wYWNrLWFyY2hp dmVzIChmaWxlcyAmb3B0aW9uYWwgaWdub3JlKQogIChsZXQgKHBhdGggZGlk LXVucGFjaykKZDExMzUgNgphMTE0MCA4MwogICAgICAoc2V0cSBwYXRoIChj YXIgZmlsZXMpKQogICAgICAoc2V0cSBmaWxlcyAoY2RyIGZpbGVzKSkKICAg ICAgKGlmIChub3QgKGdudXMtdXUtc3RyaW5nLWluLWxpc3QgcGF0aCBpZ25v cmUpKQoJICAoaWYgKHN0cmluZz0gKG9yIChnbnVzLXV1LWdldC1hY3Rpb24g CgkJCSAgICAoZ251cy11dS1uYW1lLWZyb20tcGF0aCBwYXRoKSkgIiIpIAoJ CSAgICAgICAiZ251cy11dS1hcmNoaXZlIikKCSAgICAgIChwcm9nbgoJCShp ZiAoYW5kIChub3QgKHNldHEgZGlkLXVucGFjayAoZ251cy11dS10cmVhdC1h cmNoaXZlIHBhdGgpKSkKCQkJIGdudXMtdXUtdXNlLWludGVyYWN0aXZlLXZp ZXcpCgkJICAgIChnbnVzLXV1LWVudGVyLWludGVyYWN0aXZlLWZpbGUgCgkJ ICAgICAiIyBlcnJvciBkdXJpbmcgdW5wYWNraW5nIG9mIiBwYXRoKSkKCQko aWYgaWdub3JlIChkZWxldGUtZmlsZSBwYXRoKSkpKSkpCiAgICBkaWQtdW5w YWNrKSkKCgo7OyBNYW51YWwgbWFya2luZwoKKGRlZnVuIGdudXMtdXUtbWFy ay1ieS1yZWdleHAgKCkKICAiQXNrcyBmb3IgYSByZWd1bGFyIGV4cHJlc3Np b24gYW5kIG1hcmtzIGFsbCBhcnRpY2xlcyB0aGF0IG1hdGNoLiIKICAoaW50 ZXJhY3RpdmUpCiAgKGxldCAoZXhwKQogICAgKHNldHEgZXhwIChyZWFkLWZy b20tbWluaWJ1ZmZlciAiTWFyayAocmVnZXhwKTogIikpCiAgICAoc2V0cSBn bnVzLW5ld3Nncm91cC1wcm9jZXNzYWJsZSAKCSAgKG5jb25jIGdudXMtbmV3 c2dyb3VwLXByb2Nlc3NhYmxlCgkJICAobnJldmVyc2UgKGdudXMtdXUtZ2V0 LWxpc3Qtb2YtYXJ0aWNsZXMgZXhwIHQpKSkpCiAgICAobWVzc2FnZSAiIikp KQoKKGRlZnVuIGdudXMtdXUtbWFyay1yZWdpb24gKGJlZyBlbmQpCiAgIk1h cmtzIGFsbCBhcnRpY2xlcyBiZXR3ZWVuIHBvaW50IGFuZCBtYXJrLiIKICAo aW50ZXJhY3RpdmUgInIiKQogIChsZXQgKChtYXJrLWV2ZW4taWYtaW5hY3Rp dmUgdCkKCShvcG9pbnQgMCkKCXRtcCkKICAgIChzYXZlLWV4Y3Vyc2lvbgog ICAgICAoY29uZCAKICAgICAgICgoPSBiZWcgZW5kKQoJKGVycm9yICJFbXB0 eSByZWdpb24uIikpCiAgICAgICAodAoJKGlmICg8IGVuZCBiZWcpCgkgICAg KHByb2duIAoJICAgICAgKHNldHEgdG1wIGJlZykKCSAgICAgIChzZXRxIGJl ZyBlbmQpCgkgICAgICAoc2V0cSBlbmQgdG1wKSkpCgkoZ290by1jaGFyIGJl ZykKCSh3aGlsZSAoYW5kICg8IChwb2ludCkgZW5kKQoJCSAgICAobm90ICg9 IChwb2ludCkgb3BvaW50KSkpCgkgIChzZXRxIG9wb2ludCAocG9pbnQpKQoJ ICAoZ251cy1zdW1tYXJ5LXNldC1wcm9jZXNzLW1hcmsgKGdudXMtc3VtbWFy eS1hcnRpY2xlLW51bWJlcikpKSkpKSkpCiAgICAgIAooZGVmdW4gZ251cy11 dS1tYXJrLXRocmVhZCAoKQogICJNYXJrcyBhbGwgYXJ0aWNsZXMgZG93bndh cmRzIGluIHRoaXMgdGhyZWFkLiIKICAoaW50ZXJhY3RpdmUpCiAgKGJlZ2lu bmluZy1vZi1saW5lKQogIChsZXQgKGxldmVsKQogICAgKGlmIChub3QgKHNl YXJjaC1mb3J3YXJkICI6IiBuaWwgdCkpCgkoKQogICAgICAoc2V0cSBsZXZl bCAoY3VycmVudC1jb2x1bW4pKQogICAgICAoZ251cy1zdW1tYXJ5LXNldC1w cm9jZXNzLW1hcmsgKGdudXMtc3VtbWFyeS1hcnRpY2xlLW51bWJlcikpCiAg ICAgIChnbnVzLXN1bW1hcnktc2VhcmNoLWZvcndhcmQpCiAgICAgICh3aGls ZSAoPCBsZXZlbCAoY3VycmVudC1jb2x1bW4pKQoJKGdudXMtc3VtbWFyeS1z ZXQtcHJvY2Vzcy1tYXJrIChnbnVzLXN1bW1hcnktYXJ0aWNsZS1udW1iZXIp KQoJKGdudXMtc3VtbWFyeS1zZWFyY2gtZm9yd2FyZCkpCiAgICAgIChnbnVz LXN1bW1hcnktc2VhcmNoLWJhY2t3YXJkKSkpKQoKKGRlZnVuIGdudXMtdXUt bWFya2VkLXVuaXZlcnNhbC1hcmd1bWVudCAoKQogICJQZXJmb3JtIGFueSBv cGVyYXRpb24gb24gYWxsIG1hcmtlZCBhcnRpY2xlcy4KSWYgeW91IHR5cGUg YFxcPGdudXMtc3VtbWFyeS1tb2RlLW1hcD5cXFtnbnVzLXV1LWRlY29kZS1h bmQtdmlld10nIGFuZCB0aGVuLCBmb3IgaW5zdGFuY2UsIGB1JywgCmdudXMt dXUgd2lsbCBwZXJmb3JtIHRoZSBvcGVyYXRpb24gYm91bmQgdG8gYHUnIG9u IGFsbCAKbWFya2VkIGFydGljbGVzLiIKICAoaW50ZXJhY3RpdmUpCiAgKGxl dCAoKGFydGljbGVzIChzZXRxIGdudXMtbmV3c2dyb3VwLXByb2Nlc3NhYmxl IAoJCQkobnJldmVyc2UgZ251cy1uZXdzZ3JvdXAtcHJvY2Vzc2FibGUpKSkK CWtleSBmdW5jKQogICAgKGdudXMtc3VtbWFyeS11bm1hcmstYWxsLXByb2Nl c3NhYmxlKQogICAgKGlmIChub3QgYXJ0aWNsZXMpCgkoZXJyb3IgIk5vIGFy dGljbGVzIG1hcmtlZCIpKQogICAgKGlmIChub3QgKHNldHEgZnVuYyAoa2V5 LWJpbmRpbmcgKHJlYWQta2V5LXNlcXVlbmNlICJDLWMgQy12IEMtdSIpKSkp CgkoZXJyb3IgIlVuZGVmaW5lZCBrZXkiKSkKICAgICh3aGlsZSBhcnRpY2xl cwogICAgICAoZ251cy1zdW1tYXJ5LWdvdG8tc3ViamVjdCAoY2FyIGFydGlj bGVzKSkKICAgICAgKGNvbW1hbmQtZXhlY3V0ZSBmdW5jKQogICAgICAoc2V0 cSBhcnRpY2xlcyAoY2RyIGFydGljbGVzKSkpKSkKICAKYTExNDMgMTAKKGRl ZnVuIGdudXMtdXUtc3RyaW5nLWluLWxpc3QgKHN0cmluZyBsaXN0KQogICh3 aGlsZSAoYW5kIGxpc3QKCSAgICAgIChub3QgKHN0cmluZz0gKGNhciBsaXN0 KSBzdHJpbmcpKQoJICAgICAgKHNldHEgbGlzdCAoY2RyIGxpc3QpKSkpCiAg bGlzdCkKCihkZWZ1biBnbnVzLXV1LW5hbWUtZnJvbS1wYXRoIChwYXRoKQog IChzdHJpbmctbWF0Y2ggIi9bXi9dKiQiIHBhdGgpCiAgKHN1YnN0cmluZyBw YXRoICgxKyAobWF0Y2gtYmVnaW5uaW5nIDApKSkpCgpkMTE1MCAxCmExMTUw IDEKICAgICAgKGlmIChub3QgKHN0cmluZy1tYXRjaCAiL1xcLlxcLj8kIiBm aWxlKSkKZDExNTIgMQphMTE1MiAxCiAgICAoc2V0cSBvdXQgKHJldmVyc2Ug b3V0KSkKZDEyMDIgMQphMTIwMiAyCiAgKHNldHEgZ251cy11dS13b3JrLWRp ciAoY29uY2F0IGdudXMtdXUtd29yay1kaXIgIi8iKSkKICAoc2V0cSBnbnVz LXV1LWludGVyYWN0aXZlLWZpbGUtbGlzdCBuaWwpKQpkMTIwNCAxCmExMjA0 IDEKOyBLaWxscyB0aGUgdGVtcG9yYXJ5IHV1IGJ1ZmZlcnMsIGtpbGxzIGFu eSBwcm9jZXNzZXMsIGV0Yy4KZDEyMTEgMQphMTIxMSAyCiAgICAoYW5kIChu b3QgZ251cy11dS1hc3luY2hyb25vdXMpIAoJIChzZXRxIGJ1ZiAoZ2V0LWJ1 ZmZlciBnbnVzLXV1LW91dHB1dC1idWZmZXItbmFtZSkpCmQxMjE0IDMKYTEy MTYgMwo7IGBnbnVzLXV1LWNoZWNrLWZvci1nZW5lcmF0ZWQtZmlsZXMnIGRl bGV0ZXMgYW55IGdlbmVyYXRlZCBmaWxlcyB0aGF0CjsgaGFzbid0IGJlZW4g ZGVsZXRlZCwgaWYsIGZvciBpbnN0YW5jZSwgdGhlIHVzZXIgdGVybWluYXRl ZCBkZWNvZGluZwo7IHdpdGggYEMtZycuCmQxMjM3IDIKYTEyMzggMgo7IEFk ZCBhIGZpbGUgKG9yIGEgbGlzdCBvZiBmaWxlcykgdG8gYmUgY2hlY2tlZCAo YW5kIGRlbGV0ZWQgaWYgaXQvdGhleQo7IHN0aWxsIGV4aXN0cyB1cG9uIGV4 aXRpbmcgdGhlIG5ld3Nncm91cCkuCmQxMjQ2IDIKYTEyNDcgMjEKOyBHbyB0 byB0aGUgbmV4dCB1bnJlYWQgc3ViamVjdC4gSWYgdGhlcmUgaXMgbm8gZnVy dGhlciB1bnJlYWQKOyBzdWJqZWN0cywgZ28gdG8gdGhlIGxhc3Qgc3ViamVj dCBpbiB0aGUgYnVmZmVyLgooZGVmdW4gZ251cy11dS1zdW1tYXJ5LW5leHQt c3ViamVjdCAoKQogIChsZXQgKG9waSkKICAgIChpZiAobm90IChnbnVzLXN1 bW1hcnktc2VhcmNoLWZvcndhcmQgdCkpCgkocHJvZ24KCSAgKGdvdG8tY2hh ciAxKQoJICAoc2l0LWZvciAwKQoJICAoZ251cy1zdW1tYXJ5LWdvdG8tc3Vi amVjdCBnbnVzLXV1LWhpZ2hlc3QtYXJ0aWNsZS1udW1iZXIpKSkKCiAgICA7 IFlvdSBtYXkgd2VsbCBmaW5kIGFsbCB0aGlzIGEgYml0IHB1enpsaW5nIC0g c28gZG8gSSwgYnV0IEkgc2VlbQogICAgOyB0byBoYXZlIHRvIGRvIHNvbWV0 aGluZyBsaWtlIHRoaXMgdG8gbW92ZSB0byB0aGUgbmV4dCB1bnJlYWQgYXJ0 aWNsZSwKICAgIDsgYXMgYHNpdC1mb3InIHNlZW1zIHRvIGRvIHNvbWUgcmF0 aGVyIHN0cmFuZ2UgdGhpbmdzIGhlcmUuIE1pZ2h0CiAgICA7IGJlIGEgYnVn IGluIG15IGhlYWQsIHByb2JhYmx5LgogICAgKHNldHEgb3BpIChwb2ludCkp CiAgICAoc2l0LWZvciAwKQogICAgKGdvdG8tY2hhciBvcGkpCiAgICAoZ251 cy1zdW1tYXJ5LXJlY2VudGVyKSkpCgo7IElucHV0cyBhbiBhY3Rpb24gYW5k IGEgZmlsZSBhbmQgcmV0dXJucyBhIGZ1bGwgY29tbWFuZCwgcHV0dGluZwo7 IHRpY2tzIHJvdW5kIHRoZSBmaWxlIG5hbWUgYW5kIGVzY2FwaW5nIGFueSB0 aWNrcyBpbiB0aGUgZmlsZSBuYW1lLgphMTI2MiAxODcKKGFkZC1ob29rICdn bnVzLWV4aXQtZ3JvdXAtaG9vawogICAgICAnKGxhbWJkYSAoKQoJIChnbnVz LXV1LWNsZWFuLXVwKQoJIChnbnVzLXV1LWNoZWNrLWZvci1nZW5lcmF0ZWQt ZmlsZXMpKSkKCgo7OyBJbnRlcmFjdGl2ZSBleGVjIG1vZGUKCihkZWZ2YXIg Z251cy11dS1vdXRwdXQtd2luZG93IG5pbCkKKGRlZnZhciBnbnVzLXV1LW1v ZGUtaG9vayBuaWwpCgooZGVmdmFyIGdudXMtdXUtbW9kZS1tYXAgbmlsKQoo aWYgZ251cy11dS1tb2RlLW1hcAogICAgKCkKICAoc2V0cSBnbnVzLXV1LW1v ZGUtbWFwIChtYWtlLXNwYXJzZS1rZXltYXApKQogIChkZWZpbmUta2V5IGdu dXMtdXUtbW9kZS1tYXAgIlxDLWNcQy14IiAnZ251cy11dS1pbnRlcmFjdGl2 ZS1leGVjdXRlKQogIChkZWZpbmUta2V5IGdudXMtdXUtbW9kZS1tYXAgIlxD LWNcQy12IiAnZ251cy11dS1pbnRlcmFjdGl2ZS1leGVjdXRlKQogIChkZWZp bmUta2V5IGdudXMtdXUtbW9kZS1tYXAgIlxDLW0iICdnbnVzLXV1LWludGVy YWN0aXZlLWV4ZWN1dGUpCiAgKGRlZmluZS1rZXkgZ251cy11dS1tb2RlLW1h cCAiXEMtY1xDLWMiICdnbnVzLXV1LWludGVyYWN0aXZlLWVuZCkKICAoZGVm aW5lLWtleSBnbnVzLXV1LW1vZGUtbWFwICJcQy1jcyIgCiAgICAnZ251cy11 dS1pbnRlcmFjdGl2ZS1zYXZlLWN1cnJlbnQtZmlsZSkKICAoZGVmaW5lLWtl eSBnbnVzLXV1LW1vZGUtbWFwICJcQy1jXEMtcyIKICAgICdnbnVzLXV1LWlu dGVyYWN0aXZlLXNhdmUtY3VycmVudC1maWxlLXNpbGVudCkKICAoZGVmaW5l LWtleSBnbnVzLXV1LW1vZGUtbWFwICJcQy1jXEMtdyIgJ2dudXMtdXUtaW50 ZXJhY3RpdmUtc2F2ZS1hbGwtZmlsZXMpCiAgKGRlZmluZS1rZXkgZ251cy11 dS1tb2RlLW1hcCAiXEMtY1xDLW8iICdnbnVzLXV1LWludGVyYWN0aXZlLXNh dmUtb3JpZ2luYWwtZmlsZSkKICAoZGVmaW5lLWtleSBnbnVzLXV1LW1vZGUt bWFwICJcQy1jXEMtciIgJ2dudXMtdXUtaW50ZXJhY3RpdmUtcmVzY2FuLWRp cmVjdG9yeSkKICAoZGVmaW5lLWtleSBnbnVzLXV1LW1vZGUtbWFwICJcQy1j ciIgJ2dudXMtdXUtaW50ZXJhY3RpdmUtc2Nhbi1kaXJlY3RvcnkpCiAgKQoK KGRlZnVuIGdudXMtdXUtaW50ZXJhY3RpdmUtc2V0LXVwLXdpbmRvd3MgKCkK ICAobGV0IChpbnQtYnVmIG91dC1idWYgaGVpZ2h0KQogICAgKGdudXMtY29u ZmlndXJlLXdpbmRvd3MgJ2FydGljbGUpCiAgICAoc2V0LWJ1ZmZlciAKICAg ICAoc2V0cSBpbnQtYnVmIChnZXQtYnVmZmVyLWNyZWF0ZSBnbnVzLXV1LWlu dGVyYWN0aXZlLWJ1ZmZlci1uYW1lKSkpCiAgICAoaWYgKG5vdCAoZ2V0LWJ1 ZmZlci13aW5kb3cgaW50LWJ1ZikpCgkocHJvZ24KCSAgKHNlbGVjdC13aW5k b3cgKGdldC1idWZmZXItd2luZG93IGdudXMtYXJ0aWNsZS1idWZmZXIpKQoJ ICAoc3dpdGNoLXRvLWJ1ZmZlciBpbnQtYnVmKSkpCiAgICAoc2V0cSBvdXQt YnVmIChnZXQtYnVmZmVyLWNyZWF0ZSBnbnVzLXV1LW91dHB1dC1idWZmZXIt bmFtZSkpCiAgICAoaWYgKG5vdCAoZ2V0LWJ1ZmZlci13aW5kb3cgb3V0LWJ1 ZikpCgkocHJvZ24KCSAgKGlmICg+IDIgKHNldHEgaGVpZ2h0ICgtICh3aW5k b3ctaGVpZ2h0KSAKCQkJCSAgIGdudXMtdXUtb3V0cHV0LXdpbmRvdy1oZWln aHQpKSkKCSAgICAgIChzZXRxIGhlaWdodCAoLyAod2luZG93LWhlaWdodCkg MikpKQoJICAoaWYgKD4gaGVpZ2h0IDIpCgkgICAgICAocHJvZ24KCQkoc2V0 cSBnbnVzLXV1LW91dHB1dC13aW5kb3cgKHNwbGl0LXdpbmRvdyBuaWwgaGVp Z2h0KSkKCQkoc2V0LXdpbmRvdy1idWZmZXIgZ251cy11dS1vdXRwdXQtd2lu ZG93IG91dC1idWYpKSkpKSkpCgooZGVmdW4gZ251cy11dS1kby1pbnRlcmFj dGl2ZSAoJm9wdGlvbmFsIGRvbnQtZG8td2luZG93cykKICAoaWYgKG5vdCBn bnVzLXV1LWludGVyYWN0aXZlLWZpbGUtbGlzdCkgCiAgICAgIChnbnVzLXV1 LWVudGVyLWludGVyYWN0aXZlLWZpbGUgIiMiICIiKSkKICAoaWYgKG5vdCBk b250LWRvLXdpbmRvd3MpIChnbnVzLXV1LWludGVyYWN0aXZlLXNldC11cC13 aW5kb3dzKSkKICAoc2F2ZS1leGN1cnNpb24gCiAgICAoc2V0LWJ1ZmZlciAo Z2V0LWJ1ZmZlci1jcmVhdGUgZ251cy11dS1vdXRwdXQtYnVmZmVyLW5hbWUp KSAKICAgIChlcmFzZS1idWZmZXIpKQogIChzZXQtYnVmZmVyIChnZXQtYnVm ZmVyLWNyZWF0ZSBnbnVzLXV1LWludGVyYWN0aXZlLWJ1ZmZlci1uYW1lKSkK ICAoZ290by1jaGFyIDEpCiAgKGZvcndhcmQtbGluZSAzKQogIChydW4taG9v a3MgJ2dudXMtdXUtbW9kZS1ob29rKSkKCihkZWZ1biBnbnVzLXV1LWVudGVy LWludGVyYWN0aXZlLWZpbGUgKGFjdGlvbiBmaWxlKQogIChsZXQgKGNvbW1h bmQpCiAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgKHNldC1idWZmZXIgKGdl dC1idWZmZXItY3JlYXRlIGdudXMtdXUtaW50ZXJhY3RpdmUtYnVmZmVyLW5h bWUpKQogICAgICAoaWYgKG5vdCBnbnVzLXV1LWludGVyYWN0aXZlLWZpbGUt bGlzdCkKCSAgKHByb2duCgkgICAgKGVyYXNlLWJ1ZmZlcikKCSAgICAoZ251 cy11dS1tb2RlKQoJICAgIChpbnNlcnQgCgkgICAgICIjIFByZXNzIHJldHVy biB0byBleGVjdXRlIGEgY29tbWFuZC4KIyBQcmVzcyBgQy1jIEMtYycgdG8g ZXhpdCBpbnRlcmFjdGl2ZSB2aWV3LgoKIikpKSAgIAogICAgICAoc2V0cSBn bnVzLXV1LWludGVyYWN0aXZlLWZpbGUtbGlzdAoJICAgIChjb25zIGZpbGUg Z251cy11dS1pbnRlcmFjdGl2ZS1maWxlLWxpc3QpKQo7ICAgICAgKGlmIChz dHJpbmctbWF0Y2ggKGNvbmNhdCAiXiIgZ251cy11dS13b3JrLWRpcikgZmls ZSkKOwkgIChzZXRxIGZpbGUgKHN1YnN0cmluZyBmaWxlIChtYXRjaC1lbmQg MCkpKSkKICAgICAgKHNldHEgY29tbWFuZCAoZ251cy11dS1jb21tYW5kIGFj dGlvbiBmaWxlKSkKICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKICAg ICAgKGluc2VydCAoZm9ybWF0ICIlc1xuIiBjb21tYW5kKSkpKSkKCihkZWZ1 biBnbnVzLXV1LWludGVyYWN0aXZlLWV4ZWN1dGUgKCkKICAiRXhlY3V0ZXMg dGhlIGNvbW1hbmQgb24gdGhlIGN1cnJlbnQgbGluZSBpbiBpbnRlcmFjdGl2 ZSBtb2RlLiIKICAoaW50ZXJhY3RpdmUpCiAgKGxldCAoYmVnIG91dC1idWYg Y29tbWFuZCkKICAgIChiZWdpbm5pbmctb2YtbGluZSkKICAgIChzZXRxIGJl ZyAocG9pbnQpKQogICAgKGVuZC1vZi1saW5lKQogICAgKHNldHEgY29tbWFu ZCAoYnVmZmVyLXN1YnN0cmluZyBiZWcgKHBvaW50KSkpCiAgICAoc2V0cSBv dXQtYnVmIChnZXQtYnVmZmVyLWNyZWF0ZSBnbnVzLXV1LW91dHB1dC1idWZm ZXItbmFtZSkpCiAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgKHNldC1idWZm ZXIgb3V0LWJ1ZikKICAgICAgKGVyYXNlLWJ1ZmZlcikKICAgICAgKGluc2Vy dCAoZm9ybWF0ICIkICVzIFxuXG4iIGNvbW1hbmQpKSkKICAgIChzZXRxIGNv bW1hbmQgKGZvcm1hdCAiY2QgJXMgOyAlcyIgZ251cy11dS13b3JrLWRpciBj b21tYW5kKSkKICAgIChtZXNzYWdlICJFeGVjdXRpbmcuLi4iKQogICAgKGlm IGdudXMtdXUtYXN5bmNocm9ub3VzCgkoc3RhcnQtcHJvY2VzcyAiZ251cy11 dS12aWV3IiBvdXQtYnVmICJzaCIgIi1jIiBjb21tYW5kKQogICAgICAoY2Fs bC1wcm9jZXNzICJzaCIgbmlsIG91dC1idWYgbmlsICItYyIgY29tbWFuZCkK ICAgICAgKG1lc3NhZ2UgIiIpKQogICAgKGVuZC1vZi1saW5lKQogICAgKGlm ICg9IChmb3J3YXJkLWxpbmUgMSkgMSkKCShwcm9nbgoJICAoZW5kLW9mLWxp bmUpCgkgIChpbnNlcnQgIlxuIikpKQogICAgKGJlZ2lubmluZy1vZi1saW5l KSkpCgooZGVmdW4gZ251cy11dS1pbnRlcmFjdGl2ZS1lbmQgKCkKICAiVGhp cyBmdW5jdGlvbiBleGl0cyBpbnRlcmFjdGl2ZSB2aWV3IG1vZGUgYW5kIHJl dHVybnMgdG8gc3VtbWFyeSBtb2RlLiIKICAoaW50ZXJhY3RpdmUpCiAgKGxl dCAoYnVmKQogICAgKGlmICh3aW5kb3dwIGdudXMtdXUtb3V0cHV0LXdpbmRv dykgKGRlbGV0ZS13aW5kb3cgZ251cy11dS1vdXRwdXQtd2luZG93KSkKICAg IChnbnVzLWNvbmZpZ3VyZS13aW5kb3dzICdhcnRpY2xlKQogICAgKGdudXMt dXUtY2xlYW4tdXApCiAgICAoaWYgKG5vdCBnbnVzLXV1LWFzeW5jaHJvbm91 cykgKGdudXMtdXUtY2hlY2stZm9yLWdlbmVyYXRlZC1maWxlcykpCiAgICAo c2V0cSBidWYgKGdldC1idWZmZXIgZ251cy11dS1pbnRlcmFjdGl2ZS1idWZm ZXItbmFtZSkpCiAgICAoaWYgZ251cy1hcnRpY2xlLWJ1ZmZlciAoc3dpdGNo LXRvLWJ1ZmZlciBnbnVzLWFydGljbGUtYnVmZmVyKSkKICAgIChpZiBidWYg KGtpbGwtYnVmZmVyIGJ1ZikpCiAgICAocG9wLXRvLWJ1ZmZlciBnbnVzLXN1 bW1hcnktYnVmZmVyKSkpCgoKKGRlZnVuIGdudXMtdXUtaW50ZXJhY3RpdmUt c2Nhbi1kaXJlY3RvcnkgKGRpcikKICAiUmVhZCBhbnkgZGlyZWN0b3J5IGFu ZCB2aWV3IHRoZSBmaWxlcy4KV2hlbiB1c2VkIGluIGludGVyYWN0aXZlIG1v ZGUsIHRoZSBmaWxlcyBhbmQgY29tbWFuZHMgd2lsbCBiZSBkaXNwbGF5ZWQs CmFzIHVzdWFsLCBpbiB0aGUgaW50ZXJhY3RpdmUgbW9kZSBidWZmZXIuIgog IChpbnRlcmFjdGl2ZSAiRERpcmVjdG9yeTogIikKICAoc2V0cSBnbnVzLXV1 LWludGVyYWN0aXZlLWZpbGUtbGlzdCBuaWwpCiAgKGdudXMtdXUtdmlldy1k aXJlY3RvcnkgZGlyIGdudXMtdXUtdXNlLWludGVyYWN0aXZlLXZpZXcpCiAg KGdudXMtdXUtZG8taW50ZXJhY3RpdmUgdCkpCiAgCihkZWZ1biBnbnVzLXV1 LWludGVyYWN0aXZlLXJlc2Nhbi1kaXJlY3RvcnkgKCkKICAiUmVyZWFkIHRo ZSBkaXJlY3RvcnkgYW5kIHZpZXcgdGhlIGZpbGVzLgpXaGVuIHVzZWQgaW4g aW50ZXJhY3RpdmUgbW9kZSwgdGhlIGZpbGVzIGFuZCBjb21tYW5kcyB3aWxs IGJlIGRpc3BsYXllZCwKYXMgdXN1YWwsIGluIHRoZSBpbnRlcmFjdGl2ZSBt b2RlIGJ1ZmZlci4iCiAgKGludGVyYWN0aXZlKQogIChnbnVzLXV1LWludGVy YWN0aXZlLXNjYW4tZGlyZWN0b3J5IGdudXMtdXUtd29yay1kaXIpKQoKKGRl ZnVuIGdudXMtdXUtaW50ZXJhY3RpdmUtc2F2ZS1vcmlnaW5hbC1maWxlICgp CiAgIlNhdmVzIHRoZSBmaWxlIGZyb20gd2hlbmNlIHRoZSBmaWxlIG9uIHRo ZSBjdXJyZW50IGxpbmUgY2FtZSBmcm9tLiIKICAoaW50ZXJhY3RpdmUpCiAg KGxldCAoKGZpbGVzIGdudXMtdXUtbGlzdC1vZi1maWxlcy1kZWNvZGVkKQoJ KGZpbGVzdHIgIiIpCglmaWxlIGRpZCBkaXIpCiAgICAod2hpbGUgZmlsZXMK ICAgICAgKHNldHEgZmlsZSAoY2FyIGZpbGVzKSkKICAgICAgKHNldHEgZmls ZXMgKGNkciBmaWxlcykpCiAgICAgIChpZiAoZmlsZS1leGlzdHMtcCBmaWxl KQoJICAocHJvZ24KCSAgICAoaWYgKG5vdCBkaWQpCgkJKHByb2duCgkJICAo c2V0cSBkaXIgKGdudXMtdXUtcmVhZC1kaXJlY3RvcnkgCgkJCSAgICAgKGZv cm1hdCAiV2hlcmUgZG8geW91IHdhbnQgdGhlIGZpbGUlcz8gIiAKCQkJCSAg ICAgKGlmICg+IChsZW5ndGggZmlsZXMpIDEpICJzIiAiIikpKSkKCQkgIChz ZXRxIGRpZCB0KSkpCgkgICAgKHNldHEgZmlsZXN0ciAoY29uY2F0IGZpbGVz dHIgKGdudXMtdXUtbmFtZS1mcm9tLXBhdGggZmlsZSkgIiAiKSkKCSAgICAo Z251cy11dS1zYXZlLWZpbGUgZmlsZSBkaXIgdCkpKQogICAgICAoaWYgZGlk IAoJICAobWVzc2FnZSAiU2F2ZWQgJXMiIGZpbGVzdHIpCgkobWVzc2FnZSAi QWxyZWFkeSBzYXZlZC4iKSkpKSkKCihkZWZ1biBnbnVzLXV1LWludGVyYWN0 aXZlLXNhdmUtY3VycmVudC1maWxlLXNpbGVudCAoKQogICJTYXZlcyB0aGUg ZmlsZSByZWZlcnJlZCB0byBvbiB0aGUgY3VycmVudCBsaW5lIGluIHRoZSBj dXJyZW50IGRpcmVjdG9yeS4iCiAgKGludGVyYWN0aXZlKQogIChnbnVzLXV1 LWludGVyYWN0aXZlLXNhdmUtY3VycmVudC1maWxlIHQpKQoKKGRlZnVuIGdu dXMtdXUtaW50ZXJhY3RpdmUtc2F2ZS1jdXJyZW50LWZpbGUgKCZvcHRpb25h bCBkb250LWFzayBzaWxlbnQpCiAgIlNhdmVzIHRoZSBmaWxlIHJlZmVycmVk IHRvIG9uIHRoZSBjdXJyZW50IGxpbmUuIgogIChpbnRlcmFjdGl2ZSkKICAo bGV0IChmaWxlcyBiZWcgbGluZSBmaWxlKQogICAgKHNldHEgZmlsZXMgKGNv cHktc2VxdWVuY2UgZ251cy11dS1pbnRlcmFjdGl2ZS1maWxlLWxpc3QpKQog ICAgKGJlZ2lubmluZy1vZi1saW5lKQogICAgKHNldHEgYmVnIChwb2ludCkp CiAgICAoZW5kLW9mLWxpbmUpCiAgICAoc2V0cSBsaW5lIChidWZmZXItc3Vi c3RyaW5nIGJlZyAocG9pbnQpKSkKICAgICh3aGlsZSAoYW5kIGZpbGVzCgkJ KG5vdCAoc3RyaW5nLW1hdGNoIAoJCSAgICAgIChjb25jYXQgIiIgKHJlZ2V4 cC1xdW90ZSAoc2V0cSBmaWxlIChjYXIgZmlsZXMpKSkgIiIpCgkJICAgICAg bGluZSkpKQogICAgICAoc2V0cSBmaWxlcyAoY2RyIGZpbGVzKSkpCiAgICAo YmVnaW5uaW5nLW9mLWxpbmUpCiAgICAoZm9yd2FyZC1saW5lIDEpCiAgICAo aWYgKG5vdCBmaWxlcykKCShpZiAobm90IHNpbGVudCkKCSAgICAocHJvZ24g KG1lc3NhZ2UgIkNvdWxkIG5vdCBmaW5kIGZpbGUiKSAoc2l0LWZvciAyKSkp CiAgICAgIChnbnVzLXV1LXNhdmUtZmlsZSBmaWxlIChpZiBkb250LWFzayBn bnVzLXV1LWN1cnJlbnQtc2F2ZS1kaXIgbmlsKSBzaWxlbnQpCiAgICAgIChk ZWxldGUtcmVnaW9uIGJlZyAocG9pbnQpKSkpKQpkMTI2NCAyCmExMjY1IDQy CihkZWZ1biBnbnVzLXV1LWludGVyYWN0aXZlLXNhdmUtYWxsLWZpbGVzICgp CiAgIlNhdmVzIGFsbCBmaWxlcyByZWZlcnJlZCB0byBpbiB0aGUgaW50ZXJh Y3RpdmUgYnVmZmVyLiIKICAoaW50ZXJhY3RpdmUpCiAgKGxldCAoZGlyKQog ICAgKGdvdG8tY2hhciAxKQogICAgKHNldHEgZGlyIChnbnVzLXV1LXJlYWQt ZGlyZWN0b3J5ICJXaGVyZSBkbyB5b3Ugd2FudCB0aGUgZmlsZXM/ICIpKQog ICAgKHdoaWxlIChub3QgKGVvYnApKQogICAgICAoZ251cy11dS1pbnRlcmFj dGl2ZS1zYXZlLWN1cnJlbnQtZmlsZSB0IHQpKSkpCgooZGVmdW4gZ251cy11 dS1tb2RlICgpCiAgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgdmlldyBjb21t YW5kcyBpbiBnbnVzLXV1LgoKQ29tbWFuZHM6ClxcPGdudXMtdXUtbW9kZS1t YXA+UmV0dXJuLCBDLWMgQy12LCBDLWMgQy14ICAgICAgICBFeGVjdXRlIHRo ZSBjdXJyZW50IGNvbW1hbmQKXFxbZ251cy11dS1pbnRlcmFjdGl2ZS1lbmRd XHRFbmQgaW50ZXJhY3RpdmUgbW9kZQpcXFtnbnVzLXV1LWludGVyYWN0aXZl LXNhdmUtY3VycmVudC1maWxlXVx0U2F2ZSB0aGUgY3VycmVudCBmaWxlClxc W2dudXMtdXUtaW50ZXJhY3RpdmUtc2F2ZS1jdXJyZW50LWZpbGUtc2lsZW50 XVx0U2F2ZSB0aGUgY3VycmVudCBmaWxlIHdpdGhvdXQgYXNraW5nIApcdHdo ZXJlIHRvIHB1dCBpdApcXFtnbnVzLXV1LWludGVyYWN0aXZlLXNhdmUtYWxs LWZpbGVzXVx0U2F2ZSBhbGwgZmlsZXMKXFxbZ251cy11dS1pbnRlcmFjdGl2 ZS1zYXZlLW9yaWdpbmFsLWZpbGVdXHRTYXZlIHRoZSBvcmlnaW5hbCBmaWxl OiBJZiB0aGUgZmlsZXMKXHRvcmlnaW5hdGVkIGluIGFuIGFyY2hpdmUsIHRo ZSBhcmNoaXZlIApcdGZpbGUgaXMgc2F2ZWQuClxcW2dudXMtdXUtaW50ZXJh Y3RpdmUtcmVzY2FuLWRpcmVjdG9yeV1cdFJlc2NhbiB0aGUgZGlyZWN0b3J5 ClxcW2dudXMtdXUtaW50ZXJhY3RpdmUtc2Nhbi1kaXJlY3RvcnldXHRTY2Fu IGFueSBkaXJlY3RvcnkKIgogIChpbnRlcmFjdGl2ZSkKICAoa2lsbC1hbGwt bG9jYWwtdmFyaWFibGVzKQogICh1c2UtbG9jYWwtbWFwIGdudXMtdXUtbW9k ZS1tYXApICAgCiAgKHNldHEgbW9kZS1uYW1lICJnbnVzLXV1IikgICAgICAg ICAKICAoc2V0cSBtYWpvci1tb2RlICdnbnVzLXV1LW1vZGUpICAgIAopCgog IChkZWZpbmUta2V5IGdudXMtdXUtbW9kZS1tYXAgIlxDLWNcQy14IiAnZ251 cy11dS1pbnRlcmFjdGl2ZS1leGVjdXRlKQogIChkZWZpbmUta2V5IGdudXMt dXUtbW9kZS1tYXAgIlxDLWNcQy12IiAnZ251cy11dS1pbnRlcmFjdGl2ZS1l eGVjdXRlKQogIChkZWZpbmUta2V5IGdudXMtdXUtbW9kZS1tYXAgIlxDLW0i ICdnbnVzLXV1LWludGVyYWN0aXZlLWV4ZWN1dGUpCiAgKGRlZmluZS1rZXkg Z251cy11dS1tb2RlLW1hcCAiXEMtY1xDLWMiICdnbnVzLXV1LWludGVyYWN0 aXZlLWVuZCkKICAoZGVmaW5lLWtleSBnbnVzLXV1LW1vZGUtbWFwICJcQy1j cyIgCiAgICAnZ251cy11dS1pbnRlcmFjdGl2ZS1zYXZlLWN1cnJlbnQtZmls ZSkKICAoZGVmaW5lLWtleSBnbnVzLXV1LW1vZGUtbWFwICJcQy1jXEMtcyIK ICAgICdnbnVzLXV1LWludGVyYWN0aXZlLXNhdmUtY3VycmVudC1maWxlLXNp bGVudCkKICAoZGVmaW5lLWtleSBnbnVzLXV1LW1vZGUtbWFwICJcQy1jXEMt YSIgJ2dudXMtdXUtaW50ZXJhY3RpdmUtc2F2ZS1hbGwtZmlsZXMpCiAgKGRl ZmluZS1rZXkgZ251cy11dS1tb2RlLW1hcCAiXEMtY1xDLW8iICdnbnVzLXV1 LWludGVyYWN0aXZlLXNhdmUtb3JpZ2luYWwtZmlsZSkKZDEyNzMgNAphMTI3 NiA0CjsgQW55IGZ1bmN0aW9uIHRoYXQgaXMgdG8gYmUgdXNlZCBhcyBhbmQg ZW5jb2RpbmcgbWV0aG9kIHdpbGwgdGFrZSB0d28KOyBwYXJhbWV0ZXJzOiBQ QVRILU5BTUUgYW5kIEZJTEUtTkFNRS4gKEUuZy4gIi9ob21lL2dhZ2Evc3Bp cmFsLmpwZyIKOyBhbmQgInNwaXJhbC5qcGciLCByZXNwZWN0aXZlbHkuKSBU aGUgZnVuY3Rpb24gc2hvdWxkIHJldHVybiBuaWwgaWYKOyB0aGUgZW5jb2Rp bmcgd2Fzbid0IHN1Y2Nlc3NmdWwuCmQxMzE0IDEzCmExMzI2IDEzCjsgVGhl IGZvbGxvd2luZyBtYXAgYW5kIG1vZGUgd2FzIHRha2VuIGZyb20gcm5ld3Nw b3N0LmVsIGFuZCBlZGl0ZWQKOyBzb21ld2hhdC4KKGRlZnZhciBnbnVzLXV1 LXBvc3QtcmVwbHktbW9kZS1tYXAgKCkgIk1vZGUgbWFwIHVzZWQgYnkgZ251 cy11dS1wb3N0LXJlcGx5LiIpCihvciBnbnVzLXV1LXBvc3QtcmVwbHktbW9k ZS1tYXAKICAgIChwcm9nbgogICAgICAoc2V0cSBnbnVzLXV1LXBvc3QtcmVw bHktbW9kZS1tYXAgKG1ha2Uta2V5bWFwKSkKICAgICAgKGRlZmluZS1rZXkg Z251cy11dS1wb3N0LXJlcGx5LW1vZGUtbWFwICJcQy1jPyIgJ2Rlc2NyaWJl LW1vZGUpCiAgICAgIChkZWZpbmUta2V5IGdudXMtdXUtcG9zdC1yZXBseS1t b2RlLW1hcCAiXEMtY1xDLWZcQy1kIiAKCSduZXdzLXJlcGx5LWRpc3RyaWJ1 dGlvbikKICAgICAgKGRlZmluZS1rZXkgZ251cy11dS1wb3N0LXJlcGx5LW1v ZGUtbWFwICJcQy1jXEMtZlxDLWsiIAoJJ25ld3MtcmVwbHkta2V5d29yZHMp CiAgICAgIChkZWZpbmUta2V5IGdudXMtdXUtcG9zdC1yZXBseS1tb2RlLW1h cCAiXEMtY1xDLWZcQy1uIiAKCSduZXdzLXJlcGx5LW5ld3Nncm91cHMpCmQx MzI4IDE5CmExMzQ2IDE5CiAgICAgIChkZWZpbmUta2V5IGdudXMtdXUtcG9z dC1yZXBseS1tb2RlLW1hcCAiXEMtY1xDLWZcQy1mIiAKCSduZXdzLXJlcGx5 LWZvbGxvd3VwLXRvKQogICAgICAoZGVmaW5lLWtleSBnbnVzLXV1LXBvc3Qt cmVwbHktbW9kZS1tYXAgIlxDLWNcQy1mXEMtcyIgJ21haWwtc3ViamVjdCkK ICAgICAgKGRlZmluZS1rZXkgZ251cy11dS1wb3N0LXJlcGx5LW1vZGUtbWFw ICJcQy1jXEMtZlxDLWEiIAoJJ2dudXMtdXUtcG9zdC1yZXBseS1zdW1tYXJ5 KQogICAgICAoZGVmaW5lLWtleSBnbnVzLXV1LXBvc3QtcmVwbHktbW9kZS1t YXAgIlxDLWNcQy1yIiAKCSduZXdzLWNhZXNhci1idWZmZXItYm9keSkKICAg ICAgKGRlZmluZS1rZXkgZ251cy11dS1wb3N0LXJlcGx5LW1vZGUtbWFwICJc Qy1jXEMtdyIgJ25ld3MtcmVwbHktc2lnbmF0dXJlKQogICAgICAoZGVmaW5l LWtleSBnbnVzLXV1LXBvc3QtcmVwbHktbW9kZS1tYXAgIlxDLWNcQy15IiAK CSduZXdzLXJlcGx5LXlhbmstb3JpZ2luYWwpCiAgICAgIChkZWZpbmUta2V5 IGdudXMtdXUtcG9zdC1yZXBseS1tb2RlLW1hcCAiXEMtY1xDLXEiIAoJJ21h aWwtZmlsbC15YW5rZWQtbWVzc2FnZSkKICAgICAgKGRlZmluZS1rZXkgZ251 cy11dS1wb3N0LXJlcGx5LW1vZGUtbWFwICJcQy1jXEMtYyIgCgknZ251cy11 dS1wb3N0LW5ld3MtaW5ld3MpCiAgICAgIChkZWZpbmUta2V5IGdudXMtdXUt cG9zdC1yZXBseS1tb2RlLW1hcCAiXEMtY1xDLXMiIAoJJ2dudXMtdXUtcG9z dC1uZXdzLWluZXdzKQogICAgICAoZGVmaW5lLWtleSBnbnVzLXV1LXBvc3Qt cmVwbHktbW9kZS1tYXAgIlxDLWNcQy1pIiAKCSdnbnVzLXV1LXBvc3QtaW5z ZXJ0LWJpbmFyeS1pbi1hcnRpY2xlKQogICAgICApKQpkMTM0OCAxCmExMzQ4 IDEKOyBUaGlzIG1vZGUgd2FzIHRha2VuIGZyb20gcm5ld3Nwb3N0LmVsIGFu ZCBtb2RpZmllZCBzbGlnaHRseS4KZDE0NDcgMQphMTQ0NyAxCjsgRW5jb2Rl cyB3aXRoIHV1ZW5jb2RlIGFuZCBzdWJzdGl0dXRlcyBhbGwgc3BhY2VzIHdp dGggYmFja3RpY2tzLgpkMTQ1NyAxCmExNDU3IDEKOyBFbmNvZGVzIHdpdGgg dXVlbmNvZGUgYW5kIGFkZHMgTUlNRSBoZWFkZXJzLgpkMTQ2NCAxCmExNDY0 IDEKOyBFbmNvZGVzIHdpdGggYmFzZTY0IGFuZCBhZGRzIE1JTUUgaGVhZGVy cwpkMTQ3MSAxCmExNDcxIDEKOyBBZGRzIE1JTUUgaGVhZGVycy4KZDE0OTEg MgphMTQ5MiAyCjsgRW5jb2RlcyBhIGZpbGUgUEFUSCB3aXRoIENPTU1BTkQs IGxlYXZpbmcgdGhlIHJlc3VsdCBpbiB0aGUKOyBjdXJyZW50IGJ1ZmZlci4K ZDE1MzcgMgphMTUzOCAyCjsgQXNrcyBmb3IgYSBmaWxlIHRvIGVuY29kZSwg ZW5jb2RlcyBpdCBhbmQgaW5zZXJ0cyB0aGUgcmVzdWx0IGluCjsgdGhlIGN1 cnJlbnQgYnVmZmVyLiBSZXR1cm5zIHRoZSBmaWxlIG5hbWUgdGhlIHVzZXIg Z2F2ZS4KZDE1NjggMQphMTU2OCAxCjsgUG9zdHMgdGhlIGFydGljbGUgYW5k IGFsbCBvZiB0aGUgZW5jb2RlZCBmaWxlLgpACgoKMS4xCmxvZwpASW5pdGlh bCByZXZpc2lvbgpACnRleHQKQGQxIDIKYTIgMwo7OzsgZ251cy11dS5lbCAt LS0gZXh0cmFjdCwgdmlldyBvciBzYXZlICh1dSllbmNvZGVkIGZpbGVzIGZy b20gZ251cwoKOzsgQ29weXJpZ2h0IChDKSAxOTg1LCAxOTg2LCAxOTg3LCAx OTkzLCAxOTk0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpkMTg5 IDIKYTE5MCAzMzgKICAiZ251cy11dSBpcyBhIHBhY2thZ2UgZm9yIHV1ZGVj b2RpbmcgYW5kIHZpZXdpbmcgYXJ0aWNsZXMuCgoKS2V5bWFwIG92ZXJ2aWV3 OgoKQnkgZGVmYXVsdCwgYWxsIGdudXMtdXUga2V5c3Ryb2tlcyBiZWdpbiB3 aXRoIGBDLWMgQy12Jy4gCgpUaGVyZSBmb3VyIGRlY29kaW5nIGNvbW1hbmRz IGNhdGVnb3JpZXM6CkFsbCBjb21tYW5kcyBmb3Igdmlld2luZyBhcmUgYEMt YyBDLXYgQy1MRVRURVInLgpBbGwgY29tbWFuZHMgZm9yIHNhdmluZyBhcmUg YEMtYyBDLXYgTEVUVEVSJy4KQWxsIGNvbW1hbmRzIGZvciBtYXJrZWQgdmll d2luZyBhcmUgYEMtYyBDLXYgQy1NLUxFVFRFUicuCkFsbCBjb21tYW5kcyBm b3IgbWFya2VkIHNhdmluZyBhcmUgYEMtYyBDLXYgTS1MRVRURVInLgoKXFw8 Z251cy1zdW1tYXJ5LW1vZGUtbWFwPlxcW2dudXMtdXUtZGVjb2RlLWFuZC12 aWV3XVx0RGVjb2RlIGFuZCB2aWV3IGFydGljbGVzClxcW2dudXMtdXUtZGVj b2RlLWFuZC1zYXZlXVx0RGVjb2RlIGFuZCBzYXZlIGFydGljbGVzClxcW2du dXMtdXUtc2hhci1hbmQtdmlld11cdFVuc2hhciBhbmQgdmlldyBhcnRpY2xl cwpcXFtnbnVzLXV1LXNoYXItYW5kLXNhdmVdXHRVbnNoYXIgYW5kIHNhdmUg YXJ0aWNsZXMKXFxbZ251cy11dS1tdWx0aS1kZWNvZGUtYW5kLXZpZXddXHRD aG9vc2UgYSBkZWNvZGluZyBtZXRob2QsIGRlY29kZSBhbmQgdmlldyBhcnRp Y2xlcwpcXFtnbnVzLXV1LW11bHRpLWRlY29kZS1hbmQtc2F2ZV1cdENob29z ZSBhIGRlY29kaW5nIG1ldGhvZCwgZGVjb2RlIGFuZCBzYXZlIGFydGljbGVz CgpcXFtnbnVzLXV1LXRocmVhZGVkLW11bHRpLWRlY29kZS1hbmQtdmlld11c dERlY29kZSBhIHRocmVhZCBhbmQgdmlldwpcXFtnbnVzLXV1LXRocmVhZGVk LW11bHRpLWRlY29kZS1hbmQtc2F2ZV1cdERlY29kZSBhIHRocmVhZCBhbmQg c2F2ZQoKXFxbZ251cy11dS1kZWNvZGUtYW5kLXNob3ctaW4tYnVmZmVyXVx0 RGVjb2RlIHRoZSBjdXJyZW50IGFydGljbGUgYW5kIHZpZXcgdGhlIHJlc3Vs dCBpbiBhIGJ1ZmZlcgpcXFtnbnVzLXV1LWVkaXQtYmVnaW4tbGluZV1cdEVk aXQgdGhlICdiZWdpbicgbGluZSBvZiBhbiB1dWVuY29kZWQgYXJ0aWNsZQoK XFxbZ251cy11dS1kZWNvZGUtYW5kLXNhdmUtYWxsLXVucmVhZC1hcnRpY2xl c11cdERlY29kZSBhbmQgc2F2ZSBhbGwgdW5yZWFkIGFydGljbGVzClxcW2du dXMtdXUtZGVjb2RlLWFuZC1zYXZlLWFsbC1hcnRpY2xlc11cdERlY29kZSBh bmQgc2F2ZSBhbGwgYXJ0aWNsZXMKXFxbZ251cy11dS1kZWNvZGUtYW5kLXZp ZXctYWxsLXVucmVhZC1hcnRpY2xlc11cdERlY29kZSBhbmQgdmlldyBhbGwg dW5yZWFkIGFydGljbGVzClxcW2dudXMtdXUtZGVjb2RlLWFuZC12aWV3LWFs bC1hcnRpY2xlc11cdERlY29kZSBhbmQgdmlldyBhbGwgYXJ0aWNsZXMKXFxb Z251cy11dS1kZWNvZGUtYW5kLXZpZXctYWxsLW1hcmtlZC1maWxlc11cdERl Y29kZSBhbmQgdmlldyBhbGwgZmlsZXMgdGhhdCBoYXZlIGhhZCBzb21lIGFy dGljbGVzIG1hcmtlZApcXFtnbnVzLXV1LWRlY29kZS1hbmQtc2F2ZS1hbGwt bWFya2VkLWZpbGVzXVx0RGVjb2RlIGFuZCBzYXZlIGFsbCBmaWxlcyB0aGF0 IGhhdmUgaGFkIHNvbWUgYXJ0aWNsZXMgbWFya2VkCgpcXFtnbnVzLXV1LWRp Z2VzdC1hbmQtZm9yd2FyZF1cdERpZ2VzdCBhbmQgZm9yd2FyZCBhIHNlcmll cyBvZiBhcnRpY2xlcwpcXFtnbnVzLXV1LW1hcmtlZC1kaWdlc3QtYW5kLWZv cndhcmRdXHREaWdlc3QgYW5kIGZvcndhcmQgYWxsIG1hcmtlZCBhcnRpY2xl cwoKXFxbZ251cy11dS1tYXJrLWJ5LXJlZ2V4cF1cdE1hcmsgYXJ0aWNsZXMg Zm9yIGRlY29kaW5nIGJ5IHJlZ2V4cApcXFtnbnVzLXV1LW1hcmstdGhyZWFk XVx0TWFyayBhcnRpY2xlcyBpbiB0aGlzIHRocmVhZApcXFtnbnVzLXV1LW1h cmstcmVnaW9uXVx0TWFyayBhcnRpY2xlcyBhbGwgYXJ0aWNsZXMgYmV0d2Vl biBwb2ludCBhbmQgbWFyawpcXFtnbnVzLXV1LW1hcmtlZC1kZWNvZGUtYW5k LXZpZXddXHREZWNvZGUgYW5kIHZpZXcgbWFya2VkIGFydGljbGVzClxcW2du dXMtdXUtbWFya2VkLWRlY29kZS1hbmQtc2F2ZV1cdERlY29kZSBhbmQgc2F2 ZSBtYXJrZWQgYXJ0aWNsZXMKXFxbZ251cy11dS1tYXJrZWQtc2hhci1hbmQt dmlld11cdFVuc2hhciBhbmQgdmlldyBtYXJrZWQgYXJ0aWNsZXMKXFxbZ251 cy11dS1tYXJrZWQtc2hhci1hbmQtc2F2ZV1cdFVuc2hhciBhbmQgc2F2ZSBt YXJrZWQgYXJ0aWNsZXMKXFxbZ251cy11dS1tYXJrZWQtbXVsdGktZGVjb2Rl LWFuZC12aWV3XVx0Q2hvb3NlIGRlY29kaW5nIG1ldGhvZCwgZGVjb2RlIGFu ZCB2aWV3IG1hcmtlZCBhcnRpY2xlcwpcXFtnbnVzLXV1LW1hcmtlZC1tdWx0 aS1kZWNvZGUtYW5kLXNhdmVdXHRDaG9vc2UgZGVjb2RpbmcgbWV0aG9kLCBk ZWNvZGUgYW5kIHNhdmUgbWFya2VkIGFydGljbGVzCgpcXFtnbnVzLXV1LW1h cmtlZC11bml2ZXJzYWwtYXJndW1lbnRdXHRQZXJmb3JtIGFueSBvcHJhdGlv biBvbiBhbGwgbWFya2VkIGFydGljbGVzCgpcXFtnbnVzLXV1LXRvZ2dsZS1h c3luY2hyb25vdXNdXHRUb2dnbGUgYXN5bmNocm9ub3VzIHZpZXdpbmcgbW9k ZQpcXFtnbnVzLXV1LXRvZ2dsZS1xdWVyeV1cdFRvZ2dsZSB3aGV0aGVyIHRv IGFzayBiZWZvcmUgdmlld2luZyBhIGZpbGUKXFxbZ251cy11dS10b2dnbGUt YWx3YXlzLWFza11cdFRvZ2dsZSB3aGV0aGVyIHRvIGFzayB0byBzYXZlIGEg ZmlsZSBhZnRlciB2aWV3aW5nClxcW2dudXMtdXUtdG9nZ2xlLWtpbGwtY2Fy cmlhZ2UtcmV0dXJuXVx0VG9nZ2xlIHdoZXRoZXIgdG8gc3RyaXAgdHJhaWxp bmcgY2FycmlhZ2UgcmV0dXJucwpcXFtnbnVzLXV1LXRvZ2dsZS1pbnRlcmFj dGl2ZS12aWV3XVx0VG9nZ2xlIHdoZXRoZXIgdG8gdXNlIGludGVyYWN0aXZl IHZpZXdpbmcgbW9kZQpcXFtnbnVzLXV1LXRvZ2dsZS1jb3JyZWN0LXN0cmlw cGVkLWFydGljbGVzXVx0VG9nZ2xlIHdoZXRoZXIgdG8gJ2NvcnJlY3QnIGFy dGljbGVzClxcW2dudXMtdXUtdG9nZ2xlLXZpZXctd2l0aC1tZXRhbWFpbF1c dFRvZ2dsZSB3aGV0aGVyIHRvIHVzZSBtZXRhbWFpbCBmb3Igdmlld2luZyAK XFxbZ251cy11dS10b2dnbGUtYW55LXZhcmlhYmxlXVx0VG9nZ2xlIGFueSBv ZiB0aGUgdGhpbmdzIGFib3ZlCgpcXFtnbnVzLXV1LXBvc3QtbmV3c11cdFBv c3QgYW4gdXVlbmNvZGVkIGFydGljbGUKCkZ1bmN0aW9uIGRlc2NyaXB0aW9u OgoKYGdudXMtdXUtZGVjb2RlLWFuZC12aWV3JyB3aWxsIHRyeSB0byBmaW5k IGFsbCBhcnRpY2xlcyBpbiB0aGUgc2FtZQpzZXJpZXMsIHV1ZGVjb2RlIHRo ZW0gYW5kIHZpZXcgdGhlIHJlc3VsdGluZyBmaWxlKHMpLgoKZ251cy11dSBn dWVzc2VzIHdoYXQgYXJ0aWNsZXMgYXJlIGluIHRoZSBzZXJpZXMgYWNjb3Jk aW5nIHRvIHRoZQpmb2xsb3dpbmcgc2ltcGxpc2ggcnVsZTogVGhlIHN1Ympl Y3RzIG11c3QgYmUgKG5lYXJseSkgaWRlbnRpY2FsLApleGNlcHQgZm9yIHRo ZSBsYXN0IHR3byBudW1iZXJzIG9mIHRoZSBsaW5lLiAoU3BhY2VzIGFyZSBs YXJnZWx5Cmlnbm9yZWQsIGhvd2V2ZXIuKQoKRm9yIGV4YW1wbGU6IElmIHlv dSBjaG9vc2UgYSBzdWJqZWN0IGNhbGxlZCAKICBcImNhdC5naWYgKDIvMylc IgpnbnVzLXV1IHdpbGwgZmluZCBhbGwgdGhlIGFydGljbGVzIHRoYXQgbWF0 Y2hlcwogIFwiXmNhdC5naWYgKFswLTldKy9bMC05XSspLiokXCIuICAKClN1 YmplY3RzIHRoYXQgYXJlIG5vbnN0YW5kYXJkLCBsaWtlIAogIFwiY2F0Lmdp ZiAoMi8zKSBQYXJ0IDYgb2YgYSBzZXJpZXNcIiwgCndpbGwgbm90IGJlIHBy b3Blcmx5IHJlY29nbml6ZWQgYnkgYW55IG9mIHRoZSBhdXRvbWF0aWMgdmll d2luZwpjb21tYW5kcywgYW5kIHlvdSBoYXZlIHRvIG1hcmsgdGhlIGFydGlj bGVzIG1hbnVhbGx5IHdpdGggJyMnLgoKYGdudXMtdXUtZGVjb2RlLWFuZC1z YXZlJyB3aWxsIGRvIHRoZSBzYW1lIGFzCmBnbnVzLXV1LWRlY29kZS1hbmQt dmlldycsIGV4Y2VwdCB0aGF0IGl0IHdpbGwgbm90IGRpc3BsYXkgdGhlCnJl c3VsdGluZyBmaWxlLCBidXQgc2F2ZSBpdCBpbnN0ZWFkLgoKYGdudXMtdXUt c2hhci1hbmQtdmlldycgYW5kIGBnbnVzLXV1LXNoYXItYW5kLXNhdmUnIGFy ZSB0aGUgXCJzaGFyXCIKZXF1aXZhbGVudHMgdG8gdGhlIHV1ZGVjb2RlIGZ1 bmN0aW9ucy4gSW5zdGVhZCBvZiBmZWVkaW5nIHRoZSBhcnRpY2xlcwp0byB1 dWRlY29kZSwgdGhleSBhcmUgcnVuIHRocm91Z2ggL2Jpbi9zaC4gTW9zdCBz aGFyIGZpbGVzIGNhbiBiZQp2aWV3ZWQgYW5kL29yIHNhdmVkIHdpdGggdGhl IG5vcm1hbCB1dWRlY29kZSBjb21tYW5kcywgd2hpY2ggaXMgbXVjaApzYWZl ciwgYXMgbm8gZm9yZWlnbiBjb2RlIGlzIHJ1bi4KCkluc3RlYWQgb2YgaGF2 aW5nIHdpbmRvd3MgcG9wcGluZyB1cCBhdXRvbWF0aWNhbGx5LCBpdCBjYW4g YmUgaGFuZHkgdG8KdmlldyBmaWxlcyBpbnRlcmFjdGl2bHksIGVzcGVjaWFs bHkgd2hlbiB2aWV3aW5nIGFyY2hpdmVzLiBVc2UKYGdudXMtdXUtdG9nZ2xl LWludGVyYWN0aXZlLW1vZGUnIHRvIHRvZ2dsZSBpbnRlcmFjdGl2ZSBtb2Rl LgoKYGdudXMtdXUtbWFyay1hcnRpY2xlJyBtYXJrcyBhbiBhcnRpY2xlIGZv ciBsYXRlcgpkZWNvZGluZy91bnNoYXJpbmcvc2F2aW5nL3ZpZXdpbmcuIFRo ZSBmaWxlcyB3aWxsIGJlIGRlY29kZWQgaW4gdGhlCnNlcXVlbmNlIHRoZXkg d2VyZSBtYXJrZWQuIFRvIGRlY29kZSB0aGUgZmlsZXMgYWZ0ZXIgeW91J3Zl IG1hcmtlZCB0aGUKYXJ0aWNsZXMgeW91IGFyZSBpbnRlcmVzdGVkIGluLCB0 eXBlIHRoZSBjb3JyZXNwb25kaW5nIGtleSBzdHJva2VzIGFzCnRoZSBub3Jt YWwgZGVjb2RpbmcgY29tbWFuZHMsIGJ1dCBwdXQgYSBgTS0nIGluIHRoZSBs YXN0CmtleXN0cm9rZS4gRm9yIGluc3RhbmNlLCB0byBwZXJmb3JtIGEgc3Rh bmRhcmQgdXVkZWNvZGUgYW5kIHZpZXcsIHlvdQp3b3VsZCB0eXBlIGBDLWMg Qy12IEMtdicuIFRvIHBlcmZvcm0gYSBtYXJrZWQgdXVkZWNvZGUgYW5kIHZp ZXcsIHNheQpgQy12IEMtdiBNLUMtdicuIEFsbCB0aGUgb3RoZXIgdmlldyBh bmQgc2F2ZSBjb21tYW5kcyBhcmUgaGFuZGxlZCB0aGUKc2FtZSB3YXk7IG1h cmtlZCB1dWRlY29kZSBhbmQgc2F2ZSBpcyB0aGVuIGBDLWMgQy12IE0tdicu CgpgZ251cy11dS11bm1hcmstYXJ0aWNsZScgd2lsbCByZW1vdmUgdGhlIG1h cmsgZnJvbSBhIHByZXZpb3NseSBtYXJrZWQKYXJ0aWNsZS4KCmBnbnVzLXV1 LXVubWFyay1hbGwtYXJ0aWNsZXMnIHdpbGwgcmVtb3ZlIHRoZSBtYXJrIGZy b20gYWxsIG1hcmtlZAphcnRpY2xlcy4KCmBnbnVzLXV1LW1hcmstYnktcmVn ZXhwJyB3aWxsIHByb21wdCBmb3IgYSByZWd1bGFyIGV4cHJlc3Npb24gYW5k IG1hcmsKYWxsIGFydGljbGVzIG1hdGNoaW5nIHRoYXQgcmVndWxhciBleHBy ZXNzaW9uLgoKYGdudXMtdXUtbWFyay10aHJlYWQnIHdpbGwgbWFyayBhbGwg YXJ0aWNsZXMgZG93bndhcmQgaW4gdGhlIGN1cnJlbnQKdGhyZWFkLgoKYGdu dXMtdXUtbWFya2VkLXVuaXZlcnNhbC1hcmd1bWVudCcgd2lsbCBwZXJmb3Jt IGFueSBvcGVyYXRpb24gb24gYWxsCm1hcmtlZCBhcnRpY2xlcy4gCgpUaGVy ZSdzIGFuIGFkZGl0aW9uYWwgd2F5IHRvIHJlYWNoIHRoZSBkZWNvZGluZyBm dW5jdGlvbnMgdG8gbWFrZQpmdXR1cmUgZXhwYW5zaW9ucyBlYXNpZXI6IGBn bnVzLXV1LW11bHRpLWRlY29kZS1hbmQtdmlldycgYW5kIHRoZQpjb3JyZXNw b25kaW5nIHNhdmUsIG1hcmtlZCB2aWV3IGFuZCBtYXJrZWQgc2F2ZSBmdW5j dGlvbnMuIFlvdSB3aWxsIGJlCnByb21wdGVkIGZvciBhIGRlY29kaW5nIG1l dGhvZCwgbGlrZSB1dWRlY29kZSwgc2hhciwgYmluaGV4IG9yIHBsYWluCnNh dmUuIE5vdGUgdGhhdCBtZXRob2RzIGxpa2UgYmluaGV4IGFuZCBzYXZlIGRv ZXNuJ3QgaGF2ZSB2aWV3IG1vZGVzOwpldmVuIGlmIHlvdSBpc3N1ZSBhIHZp ZXcgY29tbWFuZCAoYEMtYyBDLXYgQy1tJyBhbmQgXCJiaW5oZXhcIiksCmdu dXMtdXUgd2lsbCBqdXN0IHNhdmUgdGhlIHJlc3VsdGluZyBiaW5oZXggZmls ZS4KCmBnbnVzLXV1LWRlY29kZS1hbmQtc2hvdy1pbi1idWZmZXInIHdpbGwg ZGVjb2RlIHRoZSBjdXJyZW50IGFydGljbGUKYW5kIGRpc3BsYXkgdGhlIHJl c3VsdHMgaW4gYW4gZW1hY3MgYnVmZmVyLiBUaGlzIG1pZ2h0IGJlIHVzZWZ1 bCBpZgp0aGVyZSdzIGpzdXQgc29tZSB0ZXh0IGluIHRoZSBjdXJyZW50IGFy dGljbGUgdGhhdCBoYXMgYmVlbiB1dWVuY29kZWQKYnkgc29tZSBwZXJ2ZXJz ZSBwb3N0ZXIuCgpgZ251cy11dS1kZWNvZGUtYW5kLXNhdmUtYWxsLWFydGlj bGVzJyBsb29rcyBhdCBhbGwgdGhlIGFydGljbGVzIGluCnRoZSBjdXJyZW50 IG5ld3Nncm91cCBhbmQgdHJpZXMgdG8gdXVkZWNvZGUgZXZlcnl0aGluZyBp dCBjYW4KZmluZC4gVGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCBmb3IgYSBk aXJlY3Rvcnkgd2hlcmUgdGhlIHJlc3VsdGluZwpmaWxlcyAoaWYgYW55KSB3 aWxsIGJlCnNhdmVkLiBgZ251cy11dS1kZWNvZGUtYW5kLXNhdmUtdW5yZWFk LWFydGljbGVzJyBkb2VzIG9ubHkgY2hlY2tzCnVucmVhZCBhcnRpY2xlcy4g CgpgZ251cy11dS1kZWNvZGUtYW5kLXZpZXctYWxsLWFydGljbGVzJyBkb2Vz IHRoZSBzYW1lIGFzIHRoZSBmdW5jdGlvbgphYm92ZSwgb25seSB2aWV3aW5n IGZpbGVzIGluc3RlYWQgb2Ygc2F2aW5nIHRoZW0uIAoKYGdudXMtdXUtZWRp dC1iZWdpbi1saW5lJyBsZXRzIHlvdSBlZGl0IHRoZSBiZWdpbiBsaW5lIG9m IGFuIHV1ZW5jb2RlZApmaWxlIGluIHRoZSBjdXJyZW50IGFydGljbGUuIFVz ZWZ1bCB0byBjaGFuZ2UgYSBjb3JydXB0ZWQgYmVnaW4gbGluZS4KCgpXaGVu IHVzaW5nIHRoZSB2aWV3IGNvbW1hbmRzLCBgZ251cy11dS1kZWNvZGUtYW5k LXZpZXcnIGZvciBpbnN0YW5jZSwKZ251cy11dSB3aWxsIChub3JtYWxseSwg c2VlIGJlbG93KSB0cnkgdG8gdmlldyB0aGUgZmlsZSBhY2NvcmRpbmcgdG8K dGhlIHJ1bGVzIGdpdmVuIGluIGBnbnVzLXV1LWRlZmF1bHQtdmlldy1ydWxl cycgYW5kCmBnbnVzLXV1LXVzZXItdmlldy1ydWxlcycuIElmIGl0IHJlY29n bml6ZXMgdGhlIGZpbGUsIGl0IHdpbGwgZGlzcGxheQppdCBpbW1lZGlhdGVs eS4gSWYgdGhlIGZpbGUgaXMgc29tZSBzb3J0IG9mIGFyY2hpdmUsIGdudXMt dXUgd2lsbAphdHRlbXB0IHRvIHVucGFjayB0aGUgYXJjaGl2ZSBhbmQgc2Vl IGlmIGFueSBvZiB0aGUgZmlsZXMgaW4gdGhlCmFyY2hpdmUgY2FuIGJlIHZp ZXdlZC4gRm9yIGluc3RhbmNlLCBpZiB5b3UgaGF2ZSBhIGd6aXBwZWQgdGFy IGZpbGUKXCJwaWNzLnRhci5nelwiIGNvbnRhaW5pbmcgdGhlIGZpbGVzIFwi cGljMS5qcGdcIiBhbmQgXCJwaWMyLmdpZlwiLApnbnVzLXV1IHdpbGwgdW5j b21wcmVzcyBhbmQgZGV0YXIgdGhlIG1haW4gZmlsZSwgYW5kIHRoZW4gdmll dyB0aGUgdHdvCnBpY3R1cmVzLiBUaGlzIHVucGFja2luZyBwcm9jZXNzIGlz IHJlY3Vyc2l2ZSwgc28gaWYgdGhlIGFyY2hpdmUKY29udGFpbnMgYXJjaGl2 ZXMgb2YgYXJjaGl2ZXMsIGl0J2xsIGFsbCBiZSB1bnBhY2tlZC4KCklmIHRo ZSB2aWV3IGNvbW1hbmQgZG9lc24ndCByZWNvZ25pc2UgdGhlIGZpbGUgdHlw ZSwgb3IgY2FuJ3QgdmlldyBpdApiZWNhdXNlIHlvdSBkb24ndCBoYXZlIHRo ZSB2aWV3ZXIsIG9yIGNhbid0IHZpZXcgKmFueSogb2YgdGhlIGZpbGVzIGlu CnRoZSBhcmNoaXZlLCB0aGUgdXNlciB3aWxsIGJlIGFza2VkIGlmIHNoZSB3 aXNoZXMgdG8gaGF2ZSB0aGUgZmlsZQpzYXZlZCBzb21ld2hlcmUuIE5vdGUg dGhhdCBpZiB0aGUgZGVjb2RlZCBmaWxlIGlzIGFuIGFyY2hpdmUsIGFuZApn bnVzLXV1IG1hbmFnZXMgdG8gdmlldyBzb21lIG9mIHRoZSBmaWxlcyBpbiB0 aGUgYXJjaGl2ZSwgaXQgd29uJ3QKdGVsbCB0aGUgdXNlciB0aGF0IHRoZXJl IHdlcmUgc29tZSBmaWxlcyB0aGF0IHdlcmUgdW52aWV3YWJsZS4gVHJ5Cmlu dGVyYWN0aXZlIHZpZXcgZm9yIGEgZGlmZmVyZW50IGFwcHJvYWNoLgoKCk5v dGUgdGhhdCBnbnVzLXV1IGFkZHMgYSBmdW5jdGlvbiB0byBgZ251cy1leGl0 LWdyb3VwLWhvb2snIHRvIGNsZWFyCnRoZSBsaXN0IG9mIG1hcmtlZCBhcnRp Y2xlcyBhbmQgY2hlY2sgZm9yIGFueSBnZW5lcmF0ZWQgZmlsZXMgdGhhdApt aWdodCBoYXZlIGVzY2FwZWQgZGVsZXRpb24gaWYgdGhlIHVzZXIgdHlwZWQg YEMtZycgZHVyaW5nIHZpZXdpbmcuCgoKYGdudXMtdXUtdG9nZ2xlLWFzeW5j aHJvbm91cycgdG9nZ2xlcyB0aGUgYGdudXMtdXUtYXN5bmNocm9ub3VzJwp2 YXJpYWJsZS4KCmBnbnVzLXV1LXRvZ2dsZS1xdWVyeScgdG9nZ2xlcyB0aGUg YGdudXMtdXUtYXNrLWJlZm9yZS12aWV3Jwp2YXJpYWJsZS4KCmBnbnVzLXV1 LXRvZ2dsZS1hbHdheXMtYXNrJyB0b2dnbGVzIHRoZSBgZ251cy11dS12aWV3 LWFuZC1zYXZlJwp2YXJpYWJsZS4KCmBnbnVzLXV1LXRvZ2dsZS1raWxsLWNh cnJpYWdlLXJldHVybicgdG9nZ2xlcyB0aGUKYGdudXMtdXUta2lsbC1jYXJy aWFnZS1yZXR1cm4nIHZhcmlhYmxlLgoKYGdudXMtdXUtdG9nZ2xlLWludGVy YWN0aXZlLXZpZXcnIHRvZ2dsZXMgaW50ZXJhY3RpdmUgbW9kZS4gSWYgaXQg aXMKdHVybmVkIG9uLCBnbnVzLXV1IHdvbid0IHZpZXcgZmlsZXMgaW1tZWRp YXRlbHksIGJ1dCB3aWxsIGdpdmUgeW91IGEKYnVmZmVyIHdpdGggdGhlIGRl ZmF1bHQgY29tbWFuZHMgYW5kIGZpbGVzIGFuZCBsZXQgeW91IGVkaXQgdGhl CmNvbW1hbmRzIGFuZCBleGVjdXRlIHRoZW0gYXQgbGVpc3VyZS4KCmBnbnVz LXV1LXRvZ2dsZS1jb3JyZWN0LXN0cmlwcGVkLWFydGljbGVzJyB0b2dnbGVz IHdoZXRoZXIgdG8gY2hlY2sKYW5kIGNvcnJlY3QgdXVlbmNvZGVkIGFydGlj bGVzIHRoYXQgbWF5IGhhdmUgaGFkIHRyYWlsaW5nIHNwYWNlcwpzdHJpcHBl ZCBieSBtYWlsZXJzLgoKYGdudXMtdXUtdG9nZ2xlLXZpZXctd2l0aC1tZXRh bWFpbCcgdG9nZ2xlcyB3aGV0aGVyIHRvIHNraXAgdGhlCmdudXMtdXUgdmll d2luZyBtZXRob2RzIGFuZCBqdXN0IGd1ZXNzIGF0IGFuIGNvbnRlbnQtdHlw ZSBiYXNlZCBvbiB0aGUKZmlsZSBuYW1lIHN1ZmZpeCBhbmQgZmVlZCBpdCB0 byBtZXRhbWFpbC4KCmBnbnVzLXV1LXRvZ2dsZS1hbnktdmFyaWFibGUnIGlz IGFuIGludGVyZmFjZSB0byB0aGUgdG9nZ2xlIGNvbW1hbmRzCmxpc3RlZCBh Ym92ZS4KCgpDdXN0b21pemF0aW9uCgogICBSdWxlIFZhcmlhYmxlcwoKICAg Z251cy11dSB1c2VzIFwicnVsZVwiIHZhcmlhYmxlcyB0byBkZWNpZGUgaG93 IHRvIHZpZXcgYSBmaWxlLiBBbGwKICAgdGhlc2UgdmFyaWFibGVzIGFyZSBv ZiB0aGUgZm9ybQogIAogICAgICAobGlzdCAnKHJlZ2V4cDEgY29tbWFuZDIp CiAgICAgICAgICAgICcocmVnZXhwMiBjb21tYW5kMikKICAgICAgICAgICAg Li4uKQoKICAgYGdudXMtdXUtdXNlci12aWV3LXJ1bGVzJwogICAgIFRoaXMg dmFyaWFibGUgaXMgY29uc3VsdGVkIGZpcnN0IHdoZW4gdmlld2luZyBmaWxl cy4gSWYgeW91IHdpc2gKICAgICB0byB1c2UsIGZvciBpbnN0YW5jZSwgc294 IHRvIGNvbnZlcnQgYW4gLmF1IHNvdW5kIGZpbGUsIHlvdSBjb3VsZAogICAg IHNheSBzb21ldGhpbmcgbGlrZToKCiAgICAgICAoc2V0cSBnbnVzLXV1LXVz ZXItdmlldy1ydWxlcwogICAgICAgICAobGlzdCAnKFwiXFxcXC5hdSRcIiBc InNveCAlcyAtdCAuYWlmZiA+IC9kZXYvYXVkaW9cIikpKQoKICAgYGdudXMt dXUtdXNlci12aWV3LXJ1bGVzLWVuZCcKICAgICBUaGlzIHZhcmlhYmxlIGlz IGNvbnN1bHRlZCBpZiBnbnVzLXV1IGNvdWxkbid0IG1ha2UgYW55IG1hdGNo ZXMKICAgICBmcm9tIHRoZSB1c2VyIGFuZCBkZWZhdWx0IHZpZXcgcnVsZXMu CgogICBgZ251cy11dS11c2VyLWludGVyYWN0aXZlLXZpZXctcnVsZXMnCiAg ICAgVGhpcyBpcyB0aGUgdmFyaWFibGUgdXNlZCBpbnN0ZWFkIG9mIGBnbnVz LXV1LXVzZXItdmlldy1ydWxlcycKICAgICB3aGVuIGluIGludGVyYWN0aXZl IG1vZGUuCgogICBgZ251cy11dS11c2VyLWludGVyYWN0aXZlLXZpZXctcnVs ZXMtZW5kJwogICAgIFRoaXMgdmFyaWFibGUgaXMgdXNlZCBpbnN0ZWFkIG9m IGBnbnVzLXV1LXVzZXItdmlldy1ydWxlcy1lbmQnCiAgICAgd2hlbiBpbiBp bnRlcmFjdGl2ZSBtb2RlLgoKICAgYGdudXMtdXUtdXNlci1hcmNoaXZlLXJ1 bGVzYAogICAgIFRoaXMgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gc2F5IHdo YXQgY29tYW1uZHMgc2hvdWxkIGJlIHVzZWQgdG8KICAgICB1bnBhY2sgYXJj aGl2ZXMuCgogICAKICAgT3RoZXIgVmFyaWFibGVzCgogICBgZ251cy11dS1p Z25vcmUtZmlsZXMtYnktbmFtZScKICAgICBGaWxlcyB3aXRoIG5hbWUgbWF0 Y2hpbmcgdGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd29uJ3QgYmUgdmlld2Vk LgoKICAgYGdudXMtdXUtaWdub3JlLWZpbGVzLWJ5LXR5cGUnCiAgICAgRmls ZXMgd2l0aCBhIE1JTUUgdHlwZSBtYXRjaGluZyB0aGlzIHZhcmlhYmxlIHdv bid0IGJlIHZpZXdlZC4KICAgICBOb3RlIHRoYXQgZ251cy11dSB0cmllcyB0 byBndWVzcyB3aGF0IHR5cGUgdGhlIGZpbGUgaXMgYmFzZWQgb24KICAgICB0 aGUgbmFtZS4gZ251cy11dSBpcyBub3QgYSBNSU1FIHBhY2thZ2UsIHNvIHRo aXMgaXMgc2xpZ2h0bHkKICAgICBrbHVkZ3kuCgogICBgZ251cy11dS10bXAt ZGlyJwogICAgIFdoZXJlIGdudXMtdXUgZG9lcyBpdHMgd29yay4KCiAgIGBn bnVzLXV1LWRvLW5vdC11bnBhY2stYXJjaGl2ZXMnCiAgICAgTm9uLW5pbCBt ZWFucyB0aGF0IGdudXMtdXUgd29uJ3QgcGVlayBpbnNpZGUgYXJjaGl2ZXMg bG9va2luZyBmb3IKICAgICBmaWxlcyB0byBkaXNwYXkuCgogICBgZ251cy11 dS12aWV3LWFuZC1zYXZlJwogICAgIE5vbi1uaWwgbWVhbnMgdGhhdCB0aGUg dXNlciB3aWxsIGFsd2F5cyBiZSBhc2tlZCB0byBzYXZlIGEgZmlsZQogICAg IGFmdGVyIHZpZXdpbmcgaXQuCgogICBgZ251cy11dS1hc3luY2hyb25vdXMn IAogICAgIE5vbi1uaWwgbWVhbnMgdGhhdCBmaWxlcyB3aWxsIGJlIHZpZXdl ZCBhc3luY2hyb25vdXNseS4gIFRoaXMgY2FuCiAgICAgYmUgdXNlZnVsIGlm IHlvdSdyZSB2aWV3aW5nIGxvbmcgLm1vZCBmaWxlcywgZm9yIGluc3RhbmNl LCB3aGljaAogICAgIG9mdGVuIHRha2VzIHNldmVyYWwgbWludXRlcy4gTm90 ZSwgaG93ZXZlciwgdGhhdCBzaW5jZSBnbnVzLXV1CiAgICAgZG9lc24ndCBh c2ssIGFuZCBpZiB5b3UgYXJlIHZpZXdpbmcgYW4gYXJjaGl2ZSB3aXRoIGxv dHMgb2YKICAgICB2aWV3YWJsZSBmaWxlcywgeW91J2xsIGdldCB0aGVtIGFs bCB1cCBtb3JlIG9yIGxlc3MgYXQgb25jZSwKICAgICB3aGljaCBjYW4gYmUg Y29uZnVzaW5nLCB0byBzYXkgdGhlIGxlYXN0LiBUbyBnZXQgZ251cy11dSB0 byBhc2sKICAgICB5b3UgYmVmb3JlIHZpZXdpbmcgYSBmaWxlLCBzZXQgdGhl IGBnbnVzLXV1LWFzay1iZWZvcmUtdmlldycgCiAgICAgdmFyaWFibGUuCgog ICBgZ251cy11dS1hc2stYmVmb3JlLXZpZXcnCiAgICAgTm9uLW5pbCBtZWFu cyB0aGF0IGdudXMtdXUgd2lsbCBhc2sgeW91IGJlZm9yZSB2aWV3aW5nIGVh Y2ggZmlsZQoKICAgYGdudXMtdXUtaWdub3JlLWRlZmF1bHQtdmlldy1ydWxl cycKICAgICBOb24tbmlsIG1lYW5zIHRoYXQgZ251cy11dSB3aWxsIGlnbm9y ZSB0aGUgZGVmYXVsdCB2aWV3aW5nIHJ1bGVzLgoKICAgYGdudXMtdXUtaWdu b3JlLWRlZmF1bHQtYXJjaGl2ZS1ydWxlcycKICAgICBOb24tbmlsIG1lYW5z IHRoYXQgZ251cy11dSB3aWxsIGlnbm9yZSB0aGUgZGVmYXVsdCBhcmNoaXZl CiAgICAgdW5wYWNraW5nIGNvbW1hbmRzLgoKICAgYGdudXMtdXUta2lsbC1j YXJyaWFnZS1yZXR1cm4nCiAgICAgTm9uLW5pbCBtZWFucyB0aGF0IGdudXMt dXUgd2lsbCBzdHJpcCBhbGwgY2FycmlhZ2UgcmV0dXJucyBmcm9tCiAgICAg YXJ0aWNsZXMuCgogICBgZ251cy11dS11bm1hcmstYXJ0aWNsZXMtbm90LWRl Y29kZWQnCiAgICAgTm9uLW5pbCBtZWFucyB0aGF0IGdudXMtdXUgd2lsbCBt YXJrIGFydGljbGVzIHRoYXQgd2VyZQogICAgIHVuc3VjY2Vzc2Z1bGx5IGRl Y29kZWQgYXMgdW5yZWFkLgoKICAgYGdudXMtdXUtb3V0cHV0LXdpbmRvdy1o ZWlnaHQnCiAgICAgVGhpcyB2YXJpYWJsZSBzYXlzIGhvdyB0YWxsIHRoZSBv dXRwdXQgYnVmZmVyIHdpbmRvdyBpcyB0byBiZQogICAgIHdoZW4gdXNpbmcg aW50ZXJhY3RpdmUgdmlldyBtb2RlLgoKICAgYGdudXMtdXUtY29ycmVjdC1z dHJpcHBlZC11dWNvZGUnCiAgICAgTm9uLW5pbCBtZWFucyB0aGF0IGdudXMt dXUgd2lsbCAqdHJ5KiB0byBmaXggdXVlbmNvZGVkIGZpbGVzIHRoYXQKICAg ICBoYXZlIGhhZCB0cmFsaW5nIHNwYWNlcyBkZWxldGVkLgoKICAgYGdudXMt dXUtdXNlLWludGVyYWN0aXZlLXZpZXcnCiAgICAgTm9uLW5pbCBtZWFucyB0 aGF0IGdudXMtdXUgd2lsbCB1c2UgaW50ZXJhY3RpdmUgdmlld2luZyBtb2Rl LgoKICAgYGdudXMtdXUtdmlldy13aXRoLW1ldGFtYWlsJwogICAgIE5vbi1u aWwgbWVhbnMgdGhhdCBnbnVzLXV1IHdpbGwgaWdub3JlIHRoZSB2aWV3aW5n IGNvbW1hbmRzCiAgICAgZGVmaW5lZCBieSB0aGUgcnVsZSB2YXJpYWJsZXMg YW5kIGp1c3QgZnVkZ2UgYSBNSU1FIGNvbnRlbnQgdHlwZQogICAgIGJhc2Vk IG9uIHRoZSBmaWxlIG5hbWUuIFRoZSByZXN1bHQgd2lsbCBiZSBmZWQgdG8g bWV0YW1haWwgZm9yCiAgICAgdmlld2luZy4KCiAgIGBnbnVzLXV1LXNhdmUt aW4tZGlnZXN0JwogICAgIE5vbi1uaWwgbWVhbnMgdGhhdCBnbnVzLXV1LCB3 aGVuIGFza2VkIHRvIHNhdmUgd2l0aG91dCBkZWNvZGluZywKICAgICB3aWxs IHNhdmUgaW4gZGlnZXN0cy4gIElmIHRoaXMgdmFyaWFibGUgaXMgbmlsLCBn bnVzLXV1IHdpbGwganVzdAogICAgIHNhdmUgZXZlcnl0aGluZyBpbiBhIGZp bGUgd2l0aG91dCBhbnkgZW1iZWxsaXNobWVudHMuIFRoZQogICAgIGRpZ2Vz dGluZyBhbG1vc3QgY29uZm9ybXMgdG8gUkZDMTE1MyAtIG5vIGVhc3kgd2F5 IHRvIHNwZWNpZnkgYW55CiAgICAgbWVhbmluZ2Z1bCB2b2x1bWUgYW5kIGlz c3VlIG51bWJlcnMgd2VyZSBmb3VuZCwgc28gSSBzaW1wbHkKICAgICBkcm9w cGVkIHRoZW0uCgogICBgZ251cy11dS1wb3N0LWluY2x1ZGUtYmVmb3JlLWNv bXBvc2luZycKICAgICBOb24tbmlsIG1lYW5zIHRoYXQgZ251cy11dSB3aWxs IGFzayBmb3IgYSBmaWxlIHRvIGVuY29kZSBiZWZvcmUKICAgICB5b3UgY29t cG9zZSB0aGUgYXJ0aWNsZS4gIElmIHRoaXMgdmFyaWFibGUgaXMgdCwgeW91 IGNhbiBlaXRoZXIKICAgICBpbmNsdWRlIGFuIGVuY29kZWQgZmlsZSB3aXRo IFxcPGdudXMtdXUtcG9zdC1yZXBseS1tb2RlLW1hcD5cXFtnbnVzLXV1LXBv c3QtaW5zZXJ0LWJpbmFyeS1pbi1hcnRpY2xlXSBvciBoYXZlIG9uZSBpbmNs dWRlZCBmb3IgeW91IHdoZW4geW91IAogICAgIHBvc3QgdGhlIGFydGljbGUu CgogICBgZ251cy11dS1wb3N0LWxlbmd0aCcKICAgICBNYXhpbXVtIGxlbmd0 aCBvZiBhbiBhcnRpY2xlLiAgVGhlIGVuY29kZWQgZmlsZSB3aWxsIGJlIHNw bGl0CiAgICAgaW50byBob3cgbWFueSBhcnRpY2xlcyBpdCB0YWtlcyB0byBw b3N0IHRoZSBlbnRpcmUgZmlsZS4KCiAgIGBnbnVzLXV1LXBvc3QtdGhyZWFk ZWQnCiAgICAgTm9uLW5pbCBtZWFucyB0aGF0IGdudXMtdXUgd2lsbCBwb3N0 IHRoZSBlbmNvZGVkIGZpbGUgaW4gYQogICAgIHRocmVhZC4gIFRoaXMgbWF5 IG5vdCBiZSBzbWFydCwgYXMgbm8gb3RoZXIgZGVjb2RlciBJIGhhdmUgc2Vl bgogICAgIGFyZSBhYmxlIHRvIGZvbGxvdyB0aHJlYWRzIHdoZW4gY29sbGVj dGluZyB1dWVuY29kZWQKICAgICBhcnRpY2xlcy4gKFdlbGwsIEkgaGF2ZSBz ZWVuIG9uZSBwYWNrYWdlIHRoYXQgZG9lcyB0aGF0IC0KICAgICBnbnVzLXV1 LCBidXQgc29tZWhvdywgSSBkb24ndCB0aGluayB0aGF0IGNvdW50cy4uLikg RGVmYXVsdCBpcwogICAgIG5pbC4KCiAgIGBnbnVzLXV1LXBvc3Qtc2VwYXJh dGUtZGVzY3JpcHRpb24nCiAgICAgTm9uLW5pbCBtZWFucyB0aGF0IHRoZSBk ZXNjcmlwdGlvbiB3aWxsIGJlIHBvc3RlZCBpbiBhIHNlcGFyYXRlCiAgICAg YXJ0aWNsZS4gIFRoZSBmaXJzdCBhcnRpY2xlIHdpbGwgdHlwaWNhbGx5IGJl IG51bWJlcmVkICgwL3gpLiBJZgogICAgIHRoaXMgdmFyaWFibGUgaXMgbmls LCB0aGUgZGVzY3JpcHRpb24gdGhlIHVzZXIgZW50ZXJzIHdpbGwgYmUKICAg ICBpbmNsdWRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaXJzdCBhcnRp Y2xlLCB3aGljaCB3aWxsIGJlCiAgICAgbnVtYmVyZWQgKDEveCkuIERlZmF1 bHQgaXMgdC4KIgogIChpbnRlcmFjdGl2ZSkKICApCmQxMzcxIDEKYTEzNzEg MQoJICAgICAgKGZvcm1hdCAiJXMgJXMgWzAtOV0rIFswLTldK1tcblxyXSIK ZDEzODQgMQphMTM4NCAxCgkJICAoZm9yd2FyZC1saW5lIC0xKQpkMTUzNiAy CmExNTM3IDEKCSAgICAoZ251cy1yZXF1ZXN0LWFydGljbGUgYXJ0aWNsZSBn bnVzLW5ld3Nncm91cC1uYW1lKQpACgoKMS4xLjEuMQpsb2cKQApACnRleHQK QGQzNDkgMTUKYTM2MyAyMDQKICAgICAgKGFuZCAKICAgICAgIChnbnVzLXN1 bW1hcnktc2VsZWN0LWFydGljbGUpCiAgICAgICAoZ251cy11dS1ncmFiLWFy dGljbGVzIChsaXN0IGdudXMtY3VycmVudC1hcnRpY2xlKSAKCQkJICAgICAg J2dudXMtdXUtdXVzdHJpcC1hcnRpY2xlLWFzKQogICAgICAgKHNldHEgZmls ZS1uYW1lIChjb25jYXQgZ251cy11dS13b3JrLWRpciBnbnVzLXV1LWZpbGUt bmFtZSkpCiAgICAgICAocHJvZ24KCSAoc2F2ZS1leGN1cnNpb24KCSAgIChz ZXQtYnVmZmVyIHV1LWJ1ZmZlcikKCSAgIChlcmFzZS1idWZmZXIpCgkgICAo aW5zZXJ0LWZpbGUtY29udGVudHMgZmlsZS1uYW1lKSkKCSAoc2V0LXdpbmRv dy1idWZmZXIgKGdldC1idWZmZXItd2luZG93IGdudXMtYXJ0aWNsZS1idWZm ZXIpIAoJCQkgICAgdXUtYnVmZmVyKQoJIChtZXNzYWdlICJTaG93aW5nIGZp bGUgJXMgaW4gYnVmZmVyIiBmaWxlLW5hbWUpCgkgKGRlbGV0ZS1maWxlIGZp bGUtbmFtZSkpKSkpKQoKKGRlZnVuIGdudXMtdXUtZWRpdC1iZWdpbi1saW5l ICgpCiAgIkVkaXQgdGhlIGJlZ2luIGxpbmUgb2YgdGhlIGN1cnJlbnQgYXJ0 aWNsZS4iCiAgKGludGVyYWN0aXZlKQogIChsZXQgKChidWZmZXItcmVhZC1v bmx5IG5pbCkKCWJlZ2luIGIpCiAgICAoc2F2ZS1leGN1cnNpb24KICAgICAg KGdudXMtc3VtbWFyeS1zZWxlY3QtYXJ0aWNsZSkKICAgICAgKHNldC1idWZm ZXIgZ251cy1hcnRpY2xlLWJ1ZmZlcikKICAgICAgKGdvdG8tbGluZSAxKQog ICAgICAoaWYgKG5vdCAocmUtc2VhcmNoLWZvcndhcmQgImJlZ2luICIgbmls IHQpKQoJICAoZXJyb3IgIk5vIGJlZ2luIGxpbmUgaW4gdGhlIGN1cnJlbnQg YXJ0aWNsZSIpCgkoYmVnaW5uaW5nLW9mLWxpbmUpCgkoc2V0cSBiIChwb2lu dCkpCgkoZW5kLW9mLWxpbmUpCgkoc2V0cSBiZWdpbiAoYnVmZmVyLXN1YnN0 cmluZyBiIChwb2ludCkpKQoJKHNldHEgYmVnaW4gKHJlYWQtc3RyaW5nICIi IGJlZ2luKSkKCShzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgbmlsKQoJKGRlbGV0 ZS1yZWdpb24gYiAocG9pbnQpKQoJKGluc2VydC1zdHJpbmcgYmVnaW4pKSkp KQoKCjs7IE11bHRpIGZ1bmN0aW9ucwoKKGRlZnVuIGdudXMtdXUtbXVsdGkt ZGVjb2RlLWFuZC12aWV3ICgpCiAgIkNob29zZSBhIG1ldGhvZCBvZiBkZWNv ZGluZyBhbmQgdGhlbiBkZWNvZGUgYW5kIHZpZXcuClRoaXMgZnVuY3Rpb24g bGV0cyB0aGUgdXNlciBkZWNpZGUgd2hhdCBtZXRob2QgdG8gdXNlIGZvciBk ZWNvZGluZy4KT3RoZXIgdGhhbiB0aGF0LCBpdCdzIGVxdWl2YWxlbnQgdG8g dGhlIG90aGVyIGRlY29kZS1hbmQtdmlldwpmdW5jdGlvbnMuIgogIChpbnRl cmFjdGl2ZSkKICAoZ251cy11dS1tdWx0aS1kZWNvZGUtYW5kLXZpZXctb3It c2F2ZSB0IG5pbCkpCgooZGVmdW4gZ251cy11dS1tdWx0aS1kZWNvZGUtYW5k LXNhdmUgKCkKICAiQ2hvb3NlIGEgbWV0aG9kIG9mIGRlY29kaW5nIGFuZCB0 aGVuIGRlY29kZSBhbmQgc2F2ZS4KVGhpcyBmdW5jdGlvbiBsZXRzIHRoZSB1 c2VyIGRlY2lkZSB3aGF0IG1ldGhvZCB0byB1c2UgZm9yIGRlY29kaW5nLgpP dGhlciB0aGFuIHRoYXQsIGl0J3MgZXF1aXZhbGVudCB0byB0aGUgb3RoZXIg ZGVjb2RlLWFuZC1zYXZlIApmdW5jdGlvbnMuIgogIChpbnRlcmFjdGl2ZSkK ICAoZ251cy11dS1tdWx0aS1kZWNvZGUtYW5kLXZpZXctb3Itc2F2ZSBuaWwg bmlsKSkKCihkZWZ1biBnbnVzLXV1LW1hcmtlZC1tdWx0aS1kZWNvZGUtYW5k LXZpZXcgKCkKICAiQ2hvb3NlIGEgbWV0aG9kIG9mIGRlY29kaW5nIGFuZCB0 aGVuIGRlY29kZSBhbmQgdmlldyB0aGUgbWFya2VkIGFydGljbGVzLgpUaGlz IGZ1bmN0aW9uIGxldHMgdGhlIHVzZXIgZGVjaWRlIHdoYXQgbWV0aG9kIHRv IHVzZSBmb3IgZGVjb2RpbmcuCk90aGVyIHRoYW4gdGhhdCwgaXQncyBlcXVp dmFsZW50IHRvIHRoZSBvdGhlciBtYXJrZWQgZGVjb2RlLWFuZC12aWV3IApm dW5jdGlvbnMuIgogIChpbnRlcmFjdGl2ZSkKICAoZ251cy11dS1tdWx0aS1k ZWNvZGUtYW5kLXZpZXctb3Itc2F2ZSB0IHQpKQoKKGRlZnVuIGdudXMtdXUt bWFya2VkLW11bHRpLWRlY29kZS1hbmQtc2F2ZSAoKQogICJDaG9vc2UgYSBt ZXRob2Qgb2YgZGVjb2RpbmcgYW5kIHRoZW4gZGVjb2RlIGFuZCBzYXZlIHRo ZSBtYXJrZWQgYXJ0aWNsZXMuClRoaXMgZnVuY3Rpb24gbGV0cyB0aGUgdXNl ciBkZWNpZGUgd2hhdCBtZXRob2QgdG8gdXNlIGZvciBkZWNvZGluZy4KT3Ro ZXIgdGhhbiB0aGF0LCBpdCdzIGVxdWl2YWxlbnQgdG8gdGhlIG90aGVyIG1h cmtlZCBkZWNvZGUtYW5kLXNhdmUgCmZ1bmN0aW9ucy4iCiAgKGludGVyYWN0 aXZlKQogIChnbnVzLXV1LW11bHRpLWRlY29kZS1hbmQtdmlldy1vci1zYXZl IG5pbCB0KSkKCihkZWZ1biBnbnVzLXV1LW11bHRpLWRlY29kZS1hbmQtdmll dy1vci1zYXZlICh2aWV3IG1hcmtlZCkKICAobGV0ICh0eXBlKQogICAgKG1l c3NhZ2UgIlt1XXVkZWNvZGUsIChzKWhhciwgcyhhKXZlLCAoYilpbmhleDog IikKICAgIChzZXRxIHR5cGUgKHJlYWQtY2hhcikpCiAgICAoaWYgKD0gdHlw ZSA/XHIpIChzZXRxIHR5cGUgP3UpKQogICAgKGNvbmQgKCg9IHR5cGUgP3Up IChnbnVzLXV1LWRlY29kZS1hbmQtdmlldy1vci1zYXZlIHZpZXcgbWFya2Vk KSkKCSAgKCg9IHR5cGUgP3MpIChnbnVzLXV1LXVuc2hhci1hbmQtdmlldy1v ci1zYXZlIHZpZXcgbWFya2VkKSkKCSAgKCg9IHR5cGUgP2IpIChnbnVzLXV1 LWJpbmhleC1hbmQtc2F2ZSB2aWV3IG1hcmtlZCkpCgkgICgoPSB0eXBlID9h KSAoZ251cy11dS1zYXZlLWFydGljbGVzIHZpZXcgbWFya2VkKSkKCSAgKHQg KGVycm9yICJVbmtub3duIGRlY29kZSBtZXRob2QgJyVjJy4iIHR5cGUpKSkp KQoKCjs7ICJBbGwgYXJ0aWNsZXMiIGNvbW1hbmRzCgooZGVmY29uc3QgZ251 cy11dS1yZXN0LW9mLWFydGljbGVzIG5pbCkKKGRlZnZhciBnbnVzLXV1LWN1 cnJlbnQtc2F2ZS1kaXIgbmlsKQoKKGRlZnVuIGdudXMtdXUtZGVjb2RlLWFu ZC12aWV3LWFsbC1hcnRpY2xlcyAoYXJnKQogICJUcnkgdG8gZGVjb2RlIGFs bCBhcnRpY2xlcyBhbmQgdmlldyB0aGUgcmVzdWx0LgpBUkcgZGVsaW1pdHMg dGhlIG51bWJlciBvZiBmaWxlcyB0byBiZSBkZWNvZGVkLiIKICAoaW50ZXJh Y3RpdmUgInAiKQogIChnbnVzLXV1LWRlY29kZS1hbmQtdmlldy1vci1zYXZl LWFsbC1hcnRpY2xlcyBhcmcgbmlsIHQpKQoKKGRlZnVuIGdudXMtdXUtZGVj b2RlLWFuZC12aWV3LWFsbC11bnJlYWQtYXJ0aWNsZXMgKGFyZykKICAiVHJ5 IHRvIGRlY29kZSBhbGwgdW5yZWFkIGFydGljbGVzIGFuZCB2aWV3IHRoZSBy ZXN1bHQuCkFSRyBkZWxpbWl0cyB0aGUgbnVtYmVyIG9mIGZpbGVzIHRvIGJl IGRlY29kZWQuIgogIChpbnRlcmFjdGl2ZSAicCIpCiAgKGdudXMtdXUtZGVj b2RlLWFuZC12aWV3LW9yLXNhdmUtYWxsLWFydGljbGVzIGFyZyB0IHQpKQoK KGRlZnVuIGdudXMtdXUtZGVjb2RlLWFuZC1zYXZlLWFsbC11bnJlYWQtYXJ0 aWNsZXMgKGFyZykKICAiVHJ5IHRvIGRlY29kZSBhbGwgdW5yZWFkIGFydGlj bGVzIGFuZCBzYXZlcyB0aGUgcmVzdWx0LgpUaGlzIGZ1bmN0aW9uIHJlYWRz IGFsbCB1bnJlYWQgYXJ0aWNsZXMgaW4gdGhlIGN1cnJlbnQgZ3JvdXAgYW5k IHNlZXMKd2hldGhlciBpdCBjYW4gdXVkZWNvZGUgdGhlIGFydGljbGVzLiBU aGUgdXNlciB3aWxsIGJlIHByb21wdGVkIGZvciBhbgpkaXJlY3RvcnkgdG8g cHV0IHRoZSByZXN1bHRpbmcgKGlmIGFueSkgZmlsZXMuCkFSRyBkZWxpbWl0 cyB0aGUgbnVtYmVyIG9mIGZpbGVzIHRvIGJlIGRlY29kZWQuIgogIChpbnRl cmFjdGl2ZSAicCIpCiAgKGdudXMtdXUtZGVjb2RlLWFuZC12aWV3LW9yLXNh dmUtYWxsLWFydGljbGVzIGFyZyB0IG5pbCkpCgooZGVmdW4gZ251cy11dS1k ZWNvZGUtYW5kLXNhdmUtYWxsLWFydGljbGVzIChhcmcpCiAgIlRyeSB0byBk ZWNvZGUgYWxsIGFydGljbGVzIGFuZCBzYXZlcyB0aGUgcmVzdWx0LgpEb2Vz IHRoZSBzYW1lIGFzIGBnbnVzLXV1LWRlY29kZS1hbmQtc2F2ZS1hbGwtdW5y ZWFkLWFydGljbGVzJywgZXhjZXB0CnRoYXQgaXQgZ3JhYnMgYWxsIGFydGlj bGVzIHZpc2libGUsIHVucmVhZCBvciBub3QuCkFSRyBkZWxpbWl0cyB0aGUg bnVtYmVyIG9mIGZpbGVzIHRvIGJlIGRlY29kZWQuIgogIChpbnRlcmFjdGl2 ZSAicCIpCiAgKGdudXMtdXUtZGVjb2RlLWFuZC12aWV3LW9yLXNhdmUtYWxs LWFydGljbGVzIGFyZyBuaWwgbmlsKSkKCihkZWZ1biBnbnVzLXV1LWRlY29k ZS1hbmQtdmlldy1vci1zYXZlLWFsbC1hcnRpY2xlcyAKICAobGltaXQgJm9w dGlvbmFsIHVucmVhZCB2aWV3IGFydGljbGUtbGlzdCkKICAoZ251cy11dS1p bml0aWFsaXplKQogIChsZXQgKChhcnRyZWcgKGlmIHVucmVhZCAiXlsgLV0i ICJeLiIpKQoJZGlyIGxpc3QtZm9yLWZpbGUgcmVzdWx0LWZpbGVzKQoKICAg IChpZiBhcnRpY2xlLWxpc3QKCSgpCiAgICAgIChnbnVzLXN1bW1hcnktbWFy ay1hcy1yZWFkIGdudXMtY3VycmVudC1hcnRpY2xlID8gKQogICAgICAoZ290 by1jaGFyIDEpCiAgICAgICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQgYXJ0 cmVnIG5pbCB0KQoJKHNldHEgYXJ0aWNsZS1saXN0IAoJICAgICAgKGNvbnMg KGdudXMtc3VtbWFyeS1hcnRpY2xlLW51bWJlcikgYXJ0aWNsZS1saXN0KSkp CiAgICAgIChzZXRxIGFydGljbGUtbGlzdCAobnJldmVyc2UgYXJ0aWNsZS1s aXN0KSkKICAgICAgKGdudXMtc3VtbWFyeS1tYXJrLWFzLXJlYWQgZ251cy1j dXJyZW50LWFydGljbGUgP0QpKQoKICAgIChpZiAobm90IGFydGljbGUtbGlz dCkKCShlcnJvciAiTm8gJXNhcnRpY2xlcyBpbiB0aGlzIG5ld3Nncm91cCIg KGlmIHVucmVhZCAidW5yZWFkICIgIiIpKSkKICAgIChpZiAobm90IHZpZXcp Cgkoc2V0cSBkaXIgKGdudXMtdXUtcmVhZC1kaXJlY3RvcnkgIldoZXJlIGRv IHlvdSB3YW50IHRoZSBmaWxlcz8gIikpKQoKICAgIChpZiAoPSAxIGxpbWl0 KSAoc2V0cSBsaW1pdCAoMSsgKGxlbmd0aCBhcnRpY2xlLWxpc3QpKSkpCgog ICAgKHdoaWxlIChhbmQgYXJ0aWNsZS1saXN0ICg+IGxpbWl0IDApKQogICAg ICAoc2V0cSBsaW1pdCAoMS0gbGltaXQpKQogICAgICAoZ251cy1zdW1tYXJ5 LWdvdG8tYXJ0aWNsZSAoY2FyIGFydGljbGUtbGlzdCkpCiAgICAgIChzZXRx IGxpc3QtZm9yLWZpbGUgKGdudXMtdXUtZ2V0LWxpc3Qtb2YtYXJ0aWNsZXMp KQogICAgICAobGV0ICgobGZ0IGxpc3QtZm9yLWZpbGUpKQoJKHdoaWxlIGxm dAoJICAoc2V0cSBhcnRpY2xlLWxpc3QgKGRlbHEgKGNhciBsZnQpIGFydGlj bGUtbGlzdCkpCgkgIChzZXRxIGdudXMtbmV3c2dyb3VwLXByb2Nlc3NhYmxl IChkZWxxIChjYXIgbGZ0KSAKCQkJCQkJIGdudXMtbmV3c2dyb3VwLXByb2Nl c3NhYmxlKSkKCSAgKHNldHEgbGZ0IChjZHIgbGZ0KSkpKQogICAgICAoc2V0 cSByZXN1bHQtZmlsZXMgCgkgICAgKGFwcGVuZCAKCSAgICAgKGdudXMtdXUt Z3JhYi1hcnRpY2xlcyBsaXN0LWZvci1maWxlIAoJCQkJICAgICdnbnVzLXV1 LXV1c3RyaXAtYXJ0aWNsZS1hcyB0IG5pbCB0KQoJICAgICByZXN1bHQtZmls ZXMpKSkKCiAgICAoc2V0cSBnbnVzLXV1LWxpc3Qtb2YtZmlsZXMtZGVjb2Rl ZCByZXN1bHQtZmlsZXMpCgogICAgKGlmIChub3QgcmVzdWx0LWZpbGVzKQoJ KGVycm9yICJObyBmaWxlcyBhZnRlciBkZWNvZGluZyIpKQoKICAgIChpZiB2 aWV3CgkoZ251cy11dS12aWV3LWRpcmVjdG9yeSBnbnVzLXV1LXdvcmstZGly IGdudXMtdXUtdXNlLWludGVyYWN0aXZlLXZpZXcpCiAgICAgIChnbnVzLXV1 LXNhdmUtZGlyZWN0b3J5IGdudXMtdXUtd29yay1kaXIgZGlyIGRpcikKICAg ICAgKG1lc3NhZ2UgIlNhdmVkLiIpCiAgICAgIChnbnVzLXV1LWNoZWNrLWZv ci1nZW5lcmF0ZWQtZmlsZXMpKQoKICAgIChnbnVzLXV1LXN1bW1hcnktbmV4 dC1zdWJqZWN0KQoKICAgIChpZiAoYW5kIGdudXMtdXUtdXNlLWludGVyYWN0 aXZlLXZpZXcgdmlldykKCShnbnVzLXV1LWRvLWludGVyYWN0aXZlKSkKCiAg ICAoaWYgKG9yIChub3QgdmlldykgKG5vdCBnbnVzLXV1LXVzZS1pbnRlcmFj dGl2ZS12aWV3KSkKCShnbnVzLXV1LWNsZWFuLXVwKSkpKQoKKGRlZnVuIGdu dXMtdXUtZGVjb2RlLWFuZC12aWV3LWFsbC1tYXJrZWQtZmlsZXMgKCkKICAi VGhpcyBmdW5jdGlvbiB3aWxsIGRlY29kZSBhbmQgdmlldyBhbGwgZmlsZXMg dGhhdCBoYXZlIGhhZCBvbmUgb3IgbW9yZSBhcnRpY2xlcyBpbiBpdHMgc2Vy aWVzIG1hcmtlZC4KRm9yIGluc3RhbmNlLCBpZiB5b3UgaGF2ZSBtYXJrZWQg cGFydCAyIG9mIG9uZSBzZXJpZXMsIGFuZCBwYXJ0IDkgb2YKYW5vdGhlciwg dGhpcyBmdW5jdGlvbiB3aWxsIGRlY29kZSBib3RoIHNlcmllcyBvZiBhcnRp Y2xlcy4gSW4gb3RoZXIKd29yZHMsIHlvdSBjYW4gd2FsayBhcm91bmQgdGhl IHN1bW1hcnkgYnVmZmVyIGFuZCBtYXJrIHdoYXQgc2VyaWVzIHlvdQp3YW50 IHRvIHNlZSwgYW5kIHRoZW4gdXNpbmcgdGhpcyBmdW5jdGlvbiB0byBkZWNv ZGUgYWxsIHRoZSBmaWxlcyB5b3UKYXJlIGludGVyZXN0ZWQgaW4sIHdpdGhv dXQgd29ycnlpbmcgZXhhY3RseSB3aGF0IGFydGljbGVzIGJlbG9uZyB0bwp3 aGF0IGZpbGVzLiIKICAoaW50ZXJhY3RpdmUpCiAgKGlmIChub3QgZ251cy1u ZXdzZ3JvdXAtcHJvY2Vzc2FibGUpCiAgICAgIChlcnJvciAiTm8gYXJ0aWNs ZXMgbWFya2VkIGZvciBkZWNvZGluZyIpKQogIChnbnVzLXV1LWRlY29kZS1h bmQtdmlldy1vci1zYXZlLWFsbC1hcnRpY2xlcyAKICAgMSBuaWwgdCAoc2V0 cSBnbnVzLW5ld3Nncm91cC1wcm9jZXNzYWJsZSAKCQkgKG5yZXZlcnNlIGdu dXMtbmV3c2dyb3VwLXByb2Nlc3NhYmxlKSkpKQoKKGRlZnVuIGdudXMtdXUt ZGVjb2RlLWFuZC1zYXZlLWFsbC1tYXJrZWQtZmlsZXMgKCkKICAiVGhpcyBm dW5jdGlvbiB3aWxsIGRlY29kZSBhbmQgc2F2ZSBhbGwgZmlsZXMgdGhhdCBo YXZlIGhhZCBvbmUgb3IgbW9yZSBhcnRpY2xlcyBpbiBpdHMgc2VyaWVzIG1h cmtlZC4KRm9yIGluc3RhbmNlLCBpZiB5b3UgaGF2ZSBtYXJrZWQgcGFydCAy IG9mIG9uZSBzZXJpZXMsIGFuZCBwYXJ0IDkgb2YKYW5vdGhlciwgdGhpcyBm dW5jdGlvbiB3aWxsIGRlY29kZSBib3RoIHNlcmllcyBvZiBhcnRpY2xlcy4g SW4gb3RoZXIKd29yZHMsIHlvdSBjYW4gd2FsayBhcm91bmQgdGhlIHN1bW1h cnkgYnVmZmVyIGFuZCBtYXJrIHdoYXQgc2VyaWVzIHlvdQp3YW50IHRvIHNh dmUsIGFuZCB0aGVuIHVzaW5nIHRoaXMgZnVuY3Rpb24gdG8gZGVjb2RlIGFs bCB0aGUgZmlsZXMgeW91CmFyZSBpbnRlcmVzdGVkIGluLCB3aXRob3V0IHdv cnJ5aW5nIGV4YWN0bHkgd2hhdCBhcnRpY2xlcyBiZWxvbmcgdG8Kd2hhdCBm aWxlcy4iCiAgKGludGVyYWN0aXZlKQogIChpZiAobm90IGdudXMtbmV3c2dy b3VwLXByb2Nlc3NhYmxlKQogICAgICAoZXJyb3IgIk5vIGFydGljbGVzIG1h cmtlZCBmb3IgZGVjb2RpbmciKSkKICAoZ251cy11dS1kZWNvZGUtYW5kLXZp ZXctb3Itc2F2ZS1hbGwtYXJ0aWNsZXMgCiAgIDEgbmlsIG5pbCAoc2V0cSBn bnVzLW5ld3Nncm91cC1wcm9jZXNzYWJsZSAKCQkgICAobnJldmVyc2UgZ251 cy1uZXdzZ3JvdXAtcHJvY2Vzc2FibGUpKSkpCgpkMzY3IDEKYTM2NyAzCjsg QWxsIHRoZSBpbnRlcmFjdGl2ZSB1dWRlY29kZS92aWV3L3NhdmUvbWFya2Vk IGZ1bmN0aW9ucyBhcmUgaW50ZXJmYWNlcwo7IHRvIHRoaXMgZnVuY3Rpb24s IHdoaWNoIGRvZXMgdGhlIHJlc3QuCihkZWZ1biBnbnVzLXV1LWRlY29kZS1h bmQtdmlldy1vci1zYXZlICh2aWV3IG1hcmtlZCAmb3B0aW9uYWwgc2F2ZS1k aXIgbGltaXQpCmQzNjkgMTkKYTM4NyA0MQogIChzYXZlLWV4Y3Vyc2lvbgog ICAgKGlmIChnbnVzLXV1LWRlY29kZS1hbmQtc3RyaXAgbmlsIG1hcmtlZCBs aW1pdCkKCShwcm9nbgoJICAoaWYgdmlldyAKCSAgICAgIChnbnVzLXV1LXZp ZXctZGlyZWN0b3J5IGdudXMtdXUtd29yay1kaXIgCgkJCQkgICAgICBnbnVz LXV1LXVzZS1pbnRlcmFjdGl2ZS12aWV3KQoJICAgIChnbnVzLXV1LXNhdmUt ZGlyZWN0b3J5IGdudXMtdXUtd29yay1kaXIgc2F2ZS1kaXIgc2F2ZS1kaXIp CgkgICAgKGdudXMtdXUtY2hlY2stZm9yLWdlbmVyYXRlZC1maWxlcykpKSkp CgogIChnbnVzLXV1LXN1bW1hcnktbmV4dC1zdWJqZWN0KQoKICAoaWYgKGFu ZCBnbnVzLXV1LXVzZS1pbnRlcmFjdGl2ZS12aWV3IHZpZXcpCiAgICAgIChn bnVzLXV1LWRvLWludGVyYWN0aXZlKSkKCiAgKGlmIChvciAobm90IHZpZXcp IChub3QgZ251cy11dS11c2UtaW50ZXJhY3RpdmUtdmlldykpCiAgICAgIChn bnVzLXV1LWNsZWFuLXVwKSkpCgo7IFVuc2hhcnMgYW5kIHZpZXdzL3NhdmVz IG1hcmtlZC91bm1hcmtlZCBhcnRpY2xlcy4KKGRlZnVuIGdudXMtdXUtdW5z aGFyLWFuZC12aWV3LW9yLXNhdmUgKHZpZXcgbWFya2VkICZvcHRpb25hbCBz YXZlLWRpcikKICAoZ251cy11dS1pbml0aWFsaXplKQogIChsZXQgKHRhci1m aWxlIGZpbGVzKQogICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgIChnbnVzLXV1 LWRlY29kZS1hbmQtc3RyaXAgdCBtYXJrZWQpCiAgICAgIChpZiAoc2V0cSBn bnVzLXV1LWxpc3Qtb2YtZmlsZXMtZGVjb2RlZCAKCSAgICAgICAoZ251cy11 dS1kaXJlY3RvcnktZmlsZXMgZ251cy11dS13b3JrLWRpciB0KSkKCSAgKHBy b2duCgkgICAgKGdudXMtdXUtYWRkLWZpbGUgZ251cy11dS1saXN0LW9mLWZp bGVzLWRlY29kZWQpCgkgICAgKGlmIHZpZXcgCgkJKGdudXMtdXUtdmlldy1k aXJlY3RvcnkgZ251cy11dS13b3JrLWRpciAKCQkJCQlnbnVzLXV1LXVzZS1p bnRlcmFjdGl2ZS12aWV3KQoJICAgICAgKGdudXMtdXUtc2F2ZS1kaXJlY3Rv cnkgZ251cy11dS13b3JrLWRpciBzYXZlLWRpciBzYXZlLWRpcikKCSAgICAg IChnbnVzLXV1LWNoZWNrLWZvci1nZW5lcmF0ZWQtZmlsZXMpKSkpKQoKICAg IChnbnVzLXV1LXN1bW1hcnktbmV4dC1zdWJqZWN0KQoKICAgIChpZiAoYW5k IGdudXMtdXUtdXNlLWludGVyYWN0aXZlLXZpZXcgdmlldykKCShnbnVzLXV1 LWRvLWludGVyYWN0aXZlKSkKCiAgICAoaWYgKG9yIChub3QgdmlldykgKG5v dCBnbnVzLXV1LXVzZS1pbnRlcmFjdGl2ZS12aWV3KSkKCShnbnVzLXV1LWNs ZWFuLXVwKSkpKQoKZDM5MiAxCmEzOTIgNDAKKGRlZmNvbnN0IGdudXMtdXUt c2F2ZWQtYXJ0aWNsZS1uYW1lIG5pbCkKCjsgVklFVyBpc24ndCB1c2VkLCBi dXQgaXMgaGVyZSBhbnl3YXksIHRvIHByb3ZpZGUgc2ltaWxhciBpbnRlcmZh Y2UgdG8KOyB0aGUgb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMuICBJZiBNQVJL RUQgaXMgbm9uLW5pbCwgdGhlIGxpc3Qgb2YKOyBtYXJrZWQgYXJ0aWNsZXMg aXMgdXNlZC4gIElmIE5PLVNBVkUgaXMgbm9uLW5pbCwgdGhlIGFydGljbGVz IGFyZW4ndAo7IGFjdHVhbGx5IHNhdmVkIGluIGEgcGVybWFuZW50IGxvY2F0 aW9uLCBidXQgdGhlIGNvbGxlY3RpbmcgaXMgZG9uZQo7IGFuZCBhIHRlbXBv cmFyeSBmaWxlIHdpdGggdGhlIHJlc3VsdCBpcyByZXR1cm5lZC4KKGRlZnVu IGdudXMtdXUtc2F2ZS1hcnRpY2xlcyAodmlldyBtYXJrZWQgJm9wdGlvbmFs IG5vLXNhdmUpCiAgKGxldCAobGlzdC1vZi1hcnRpY2xlcykKICAgIChzYXZl LWV4Y3Vyc2lvbgogICAgICAoZ251cy11dS1pbml0aWFsaXplKQogICAgICAo aWYgKG5vdCBtYXJrZWQpCgkgIChzZXRxIGxpc3Qtb2YtYXJ0aWNsZXMgKGdu dXMtdXUtZ2V0LWxpc3Qtb2YtYXJ0aWNsZXMpKQoJKHNldHEgbGlzdC1vZi1h cnRpY2xlcyAoc2V0cSBnbnVzLW5ld3Nncm91cC1wcm9jZXNzYWJsZSAKCQkJ CSAgICAgKG5yZXZlcnNlIGdudXMtbmV3c2dyb3VwLXByb2Nlc3NhYmxlKSkp CgkoZ251cy1zdW1tYXJ5LXVubWFyay1hbGwtcHJvY2Vzc2FibGUpKQoKICAg ICAgKGlmIChub3QgbGlzdC1vZi1hcnRpY2xlcykKCSAgKGVycm9yICJObyBs aXN0IG9mIGFydGljbGVzIikpCgogICAgICAoaWYgZ251cy11dS1zYXZlLXNl cGFyYXRlLWFydGljbGVzCgkgIChwcm9nbgoJICAgIChzZXRxIGdudXMtdXUt c2F2ZWQtYXJ0aWNsZS1uYW1lIAoJCSAgKGdudXMtdXUtcmVhZC1kaXJlY3Rv cnkgCgkJICAgKGNvbmNhdCAiV2hlcmUgZG8geW91IHdhbnQgdGhlIGZpbGVz PyAiKSkpKQoKCShzZXRxIGdudXMtdXUtc2F2ZWQtYXJ0aWNsZS1uYW1lIAoJ ICAgICAgKGNvbmNhdCBnbnVzLXV1LXdvcmstZGlyIAoJCSAgICAgIChpZiBu by1zYXZlCgkJCSAgZ251cy1uZXdzZ3JvdXAtbmFtZQoJCQkocmVhZC1maWxl LW5hbWUgIkVudGVyIGZpbGUgbmFtZTogIiBnbnVzLW5ld3Nncm91cC1uYW1l CgkJCQkJZ251cy1uZXdzZ3JvdXAtbmFtZSkpKSkKCShnbnVzLXV1LWFkZC1m aWxlIGdudXMtdXUtc2F2ZWQtYXJ0aWNsZS1uYW1lKSkKCiAgICAgIChpZiAo YW5kIChnbnVzLXV1LWdyYWItYXJ0aWNsZXMgbGlzdC1vZi1hcnRpY2xlcyAn Z251cy11dS1zYXZlLWFydGljbGUgdCkKCSAgICAgICAobm90IG5vLXNhdmUp IChub3QgZ251cy11dS1zYXZlLXNlcGFyYXRlLWFydGljbGVzKSkKCSAgKGdu dXMtdXUtc2F2ZS1maWxlIGdudXMtdXUtc2F2ZWQtYXJ0aWNsZS1uYW1lKQoJ Z251cy11dS1zYXZlZC1hcnRpY2xlLW5hbWUpKSkpCgo7IEZ1bmN0aW9uIGNh bGxlZCBieSBnbnVzLXV1LWdyYWItYXJ0aWNsZXMgdG8gdHJlYXQgZWFjaCBh cnRpY2xlLgpkNDAxIDIKYTQwMiAxCgkgICAgKChlcSBpbi1zdGF0ZSAnZmly c3QtYW5kLWxhc3QpIChsaXN0IGdudXMtdXUtc2F2ZWQtYXJ0aWNsZS1uYW1l ICdiZWdpbiAnZW5kKSkKZDQxMCAyCmE0MTEgMQoJICAgICgoZXEgaW4tc3Rh dGUgJ2ZpcnN0LWFuZC1sYXN0KSAobGlzdCBnbnVzLXV1LXNhdmVkLWFydGlj bGUtbmFtZSAnYmVnaW4gJ2VuZCkpCmE0ODYgMjMKOzsgRGlnZXN0IGFuZCBm b3J3YXJkIGFydGljbGVzCgooZGVmdW4gZ251cy11dS1kaWdlc3QtYW5kLWZv cndhcmQgKCZvcHRpb25hbCBtYXJrZWQpCiAgIkRpZ2VzdHMgYW5kIGZvcndh cmRzIGFsbCBhcnRpY2xlcyBpbiB0aGlzIHNlcmllcy4iCiAgKGludGVyYWN0 aXZlKQogIChsZXQgKChnbnVzLXV1LXNhdmUtaW4tZGlnZXN0IHQpCglmaWxl IGJ1ZikKICAgIChzZXRxIGZpbGUgKGdudXMtdXUtc2F2ZS1hcnRpY2xlcyBu aWwgbWFya2VkIHQpKQogICAgKHN3aXRjaC10by1idWZmZXIgKHNldHEgYnVm IChnZXQtYnVmZmVyLWNyZWF0ZSAiKmdudXMtdXUtZm9yd2FyZCoiKSkpCiAg ICAoZXJhc2UtYnVmZmVyKQogICAgKGRlbGV0ZS1vdGhlci13aW5kb3dzKQog ICAgKGVyYXNlLWJ1ZmZlcikKICAgIChpbnNlcnQtZmlsZSBmaWxlKQogICAg KGdvdG8tY2hhciAxKQogICAgKGJ1cnktYnVmZmVyIGJ1ZikKICAgIChmdW5j YWxsIGdudXMtbWFpbC1mb3J3YXJkLW1ldGhvZCkpKQoKKGRlZnVuIGdudXMt dXUtbWFya2VkLWRpZ2VzdC1hbmQtZm9yd2FyZCAoJm9wdGlvbmFsIG1hcmtl ZCkKICAiRGlnZXN0cyBhbmQgZm9yd2FyZHMgYWxsIG1hcmtlZCBhcnRpY2xl cy4iCiAgKGludGVyYWN0aXZlKQogIChnbnVzLXV1LWRpZ2VzdC1hbmQtZm9y d2FyZCB0KSkKCgphNDk2IDI2CjsgVGhpcyBqdXN0IGNvbmNhdGVuYXRlcyBh bmQgc3RyaXBzIHN0dWZmIGZyb20gYmluaGV4ZWQgYXJ0aWNsZXMuCjsgTm8g YWN0dWFsIHVuYmluaGV4aW5nIHRha2VzIHBsYWNlLiBWSUVXIGlzIGlnbm9y ZWQuCihkZWZ1biBnbnVzLXV1LWJpbmhleC1hbmQtc2F2ZSAodmlldyBtYXJr ZWQpCiAgKGdudXMtdXUtaW5pdGlhbGl6ZSkKICAobGV0IChsaXN0LW9mLWFy dGljbGVzKQogICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgIChpZiAobm90IG1h cmtlZCkKCSAgKHNldHEgbGlzdC1vZi1hcnRpY2xlcyAoZ251cy11dS1nZXQt bGlzdC1vZi1hcnRpY2xlcykpCgkoc2V0cSBsaXN0LW9mLWFydGljbGVzIAoJ ICAgICAgKHNldHEgZ251cy1uZXdzZ3JvdXAtcHJvY2Vzc2FibGUgCgkJICAg IChucmV2ZXJzZSBnbnVzLW5ld3Nncm91cC1wcm9jZXNzYWJsZSkpKQoJKGdu dXMtc3VtbWFyeS11bm1hcmstYWxsLXByb2Nlc3NhYmxlKSkKICAgICAgKGlm IChub3QgbGlzdC1vZi1hcnRpY2xlcykKCSAgKGVycm9yICJObyBsaXN0IG9m IGFydGljbGVzIikpCgogICAgICAoc2V0cSBnbnVzLXV1LWJpbmhleC1hcnRp Y2xlLW5hbWUgCgkgICAgKGNvbmNhdCBnbnVzLXV1LXdvcmstZGlyIAoJCSAg ICAocmVhZC1maWxlLW5hbWUgIkVudGVyIGJpbmhleCBmaWxlIG5hbWU6ICIg CgkJCQkgICAgZ251cy1uZXdzZ3JvdXAtbmFtZQoJCQkJICAgIGdudXMtbmV3 c2dyb3VwLW5hbWUpKSkKICAgICAgKGdudXMtdXUtYWRkLWZpbGUgZ251cy11 dS1iaW5oZXgtYXJ0aWNsZS1uYW1lKQogICAgICAoaWYgKGdudXMtdXUtZ3Jh Yi1hcnRpY2xlcyBsaXN0LW9mLWFydGljbGVzICdnbnVzLXV1LWJpbmhleC1h cnRpY2xlIHQpCgkgIChnbnVzLXV1LXNhdmUtZmlsZSBnbnVzLXV1LWJpbmhl eC1hcnRpY2xlLW5hbWUpKSkpCiAgKGdudXMtdXUtY2hlY2stZm9yLWdlbmVy YXRlZC1maWxlcykKICAoZ251cy11dS1zdW1tYXJ5LW5leHQtc3ViamVjdCkp CgpkNTMyIDEKYTUzMiAxCjs7IEludGVybmFsIHZpZXcgY29tbWFuZHMKZDUz NCAxMwphNTQ2IDYwCjsgVGhpcyBmdW5jdGlvbiB0YWtlcyB0d28gcGFyYW1l dGVycy4gVGhlIGZpcnN0IGlzIG5hbWUgb2YgdGhlIGZpbGUgdG8KOyBiZSB2 aWV3ZWQuIGBnbnVzLXV1LXZpZXctZmlsZScgd2lsbCBsb29rIGZvciBhbiBh Y3Rpb24gYXNzb2NpYXRlZAo7IHdpdGggdGhlIGZpbGUgdHlwZSBvZiB0aGUg ZmlsZS4gSWYgaXQgZmluZHMgYW4gYXBwcm9wcmlhdGUgYWN0aW9uLAo7IHRo ZSBmaWxlIHdpbGwgYmUgYXR0ZW1wdGVkIGRpc3BsYXllZC4KOyAKOyBUaGUg c2Vjb25kIHBhcmFtZXRlciBzcGVjaWZpZXMgaWYgdGhlIHVzZXIgaXMgdG8g YmUgYXNrZWQgd2hldGhlciB0bwo7IHNhdmUgdGhlIGZpbGUgaWYgdmlld2lu ZyBpcyB1bnN1Y2Nlc3NmdWwuIHQgbWVhbnMgImRvIG5vdCBhc2suIgo7Cjsg Tm90ZSB0aGF0IHRoZSBmaWxlIGdpdmVuIHdpbGwgYmUgZGVsZXRlZCBieSB0 aGlzIGZ1bmN0aW9uLCBvbmUgd2F5Cjsgb3IgYW5vdGhlci4gSWYgYGdudXMt dXUtYXN5bmNocm9ub3VzJyBpcyBzZXQsIGl0IHdvbid0IGJlIGRlbGV0ZWQK OyByaWdodCBhd2F5LCBidXQgc29tZXRpbWUgbGF0ZXIuIElmIHRoZSB1c2Vy IGlzIG9mZmVyZWQgdG8gc2F2ZSB0aGUKOyBmaWxlLCBpdCdsbCBiZSBtb3Zl ZCB0byB3aGVyZXZlciB0aGUgdXNlciB3YW50cyBpdC4KCjsgYGdudXMtdXUt dmlldy1maWxlJyByZXR1cm5zIHQgaWYgdmlld2luZyBpcyBzdWNjZXNzZnVs LgoKKGRlZnVuIGdudXMtdXUtdmlldy1maWxlIChmaWxlICZvcHRpb25hbCBz aWxlbnQpCiAgKGxldCAoYWN0aW9uIGRpZC12aWV3KQogICAgKGNvbmQgCiAg ICAgKChub3QgKHNldHEgYWN0aW9uIChnbnVzLXV1LWdldC1hY3Rpb24gZmls ZSkpKQogICAgICAoaWYgKGFuZCAobm90IHNpbGVudCkgKG5vdCBnbnVzLXV1 LXVzZS1pbnRlcmFjdGl2ZS12aWV3KSkKCSAgKHByb2duCgkgICAgKG1lc3Nh Z2UgIkNvdWxkbid0IGZpbmQgYW55IHJ1bGUgZm9yIGZpbGUgJyVzJyIgZmls ZSkKCSAgICAoc2xlZXAtZm9yIDIpCgkgICAgKGdudXMtdXUtYXNrLXRvLXNh dmUtZmlsZSBmaWxlKSkpKQogICAgIAogICAgICgoYW5kIGdudXMtdXUtdXNl LWludGVyYWN0aXZlLXZpZXcgCgkgICAobm90IChzdHJpbmc9IChvciBhY3Rp b24gIiIpICJnbnVzLXV1LWFyY2hpdmUiKSkpCiAgICAgIChnbnVzLXV1LWVu dGVyLWludGVyYWN0aXZlLWZpbGUgKG9yIGFjdGlvbiAiIikgZmlsZSkpCgog ICAgIChnbnVzLXV1LWFzay1iZWZvcmUtdmlldwogICAgICAoaWYgKHktb3It bi1wIChmb3JtYXQgIkRvIHlvdSB3YW50IHRvIHZpZXcgJXM/ICIgZmlsZSkp CgkgIChzZXRxIGRpZC12aWV3IChnbnVzLXV1LWNhbGwtZmlsZS1hY3Rpb24g ZmlsZSBhY3Rpb24pKSkKICAgICAgKG1lc3NhZ2UgIiIpKQogICAgIAogICAg ICgoc2V0cSBkaWQtdmlldyAoZ251cy11dS1jYWxsLWZpbGUtYWN0aW9uIGZp bGUgYWN0aW9uKSkpCgogICAgICgobm90IHNpbGVudCkKICAgICAgKGdudXMt dXUtYXNrLXRvLXNhdmUtZmlsZSBmaWxlKSkpCgogICAgKGlmIChhbmQgKGZp bGUtZXhpc3RzLXAgZmlsZSkgCgkgICAgIChub3QgZ251cy11dS11c2UtaW50 ZXJhY3RpdmUtdmlldykKCSAgICAgKG9yIAoJICAgICAgKG5vdCAoYW5kIGdu dXMtdXUtYXN5bmNocm9ub3VzIGRpZC12aWV3KSkKCSAgICAgIChzdHJpbmc9 IChvciBhY3Rpb24gICIiKSAiZ251cy11dS1hcmNoaXZlIikpKQoJKGRlbGV0 ZS1maWxlIGZpbGUpKQoKICBkaWQtdmlldykpCgooZGVmdW4gZ251cy11dS1j YWxsLWZpbGUtYWN0aW9uIChmaWxlIGFjdGlvbikKICAocHJvZzEKICAgICAg KGlmIGdudXMtdXUtYXN5bmNocm9ub3VzCgkgIChnbnVzLXV1LWNhbGwtYXN5 bmNocm9ub3VzIGZpbGUgYWN0aW9uKQoJKGdudXMtdXUtY2FsbC1zeW5jaHJv bm91cyBmaWxlIGFjdGlvbikpCiAgICAoaWYgZ251cy11dS12aWV3LWFuZC1z YXZlCgkoZ251cy11dS1hc2stdG8tc2F2ZS1maWxlIGZpbGUpKSkpCgooZGVm dW4gZ251cy11dS1hc2stdG8tc2F2ZS1maWxlIChmaWxlKQogIChpZiAoeS1v ci1uLXAgKGZvcm1hdCAiRG8geW91IHdhbnQgdG8gc2F2ZSB0aGUgZmlsZSAl cz8gIiBmaWxlKSkKICAgICAgKGdudXMtdXUtc2F2ZS1maWxlIGZpbGUpKQog IChtZXNzYWdlICIiKSkKZDU1NCAxCmE1NTQgOAoJICAgIChpZiAoYW5kIGdu dXMtdXUtdXNlLWludGVyYWN0aXZlLXZpZXcgCgkJICAgICBnbnVzLXV1LXVz ZXItaW50ZXJhY3RpdmUtdmlldy1ydWxlcykKCQlnbnVzLXV1LXVzZXItaW50 ZXJhY3RpdmUtdmlldy1ydWxlcwoJICAgICAgZ251cy11dS11c2VyLXZpZXct cnVsZXMpCgkgICAgKGlmIChvciBnbnVzLXV1LWlnbm9yZS1kZWZhdWx0LXZp ZXctcnVsZXMgCgkJICAgIChub3QgZ251cy11dS11c2UtaW50ZXJhY3RpdmUt dmlldykpCgkJKCkKCSAgICAgIGdudXMtdXUtZGVmYXVsdC1pbnRlcmFjdGl2 ZS12aWV3LXJ1bGVzLWJlZ2luKQpkNTU4IDEKYTU1OCA2CgkgICAgKGlmIGdu dXMtdXUtdXNlLWludGVyYWN0aXZlLXZpZXcKCQkoYXBwZW5kIGdudXMtdXUt dXNlci1pbnRlcmFjdGl2ZS12aWV3LXJ1bGVzLWVuZAoJCQkoaWYgZ251cy11 dS1pZ25vcmUtZGVmYXVsdC12aWV3LXJ1bGVzCgkJCSAgICAoKQoJCQkgIGdu dXMtdXUtZGVmYXVsdC1pbnRlcmFjdGl2ZS12aWV3LXJ1bGVzLWVuZCkpCgkg ICAgICBnbnVzLXV1LXVzZXItdmlldy1ydWxlcy1lbmQpKSkpCmE1NjUgMzcK OyBgZ251cy11dS1jYWxsLXN5bmNocm9ub3VzJyB0YWtlcyB0d28gcGFyYW1l dGVyczogVGhlIG5hbWUgb2YgdGhlCjsgZmlsZSB0byBiZSBkaXNwbGF5ZWQg YW5kIHRoZSBjb21tYW5kIHRvIGRpc3BsYXkgaXQgd2l0aC4gUmV0dXJucyB0 Cjsgb24gc3VjY2VzcyBhbmQgbmlsIGlmIHRoZSBmaWxlIGNvdWxkbid0IGJl IGRpc3BsYXllZC4KKGRlZnVuIGdudXMtdXUtY2FsbC1zeW5jaHJvbm91cyAo ZmlsZS1uYW1lIGFjdGlvbikKICAobGV0IChkaWQtdmlldyBjb21tYW5kKQog ICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgIChzZXQtYnVmZmVyIChnZXQtYnVm ZmVyLWNyZWF0ZSBnbnVzLXV1LW91dHB1dC1idWZmZXItbmFtZSkpCiAgICAg IChlcmFzZS1idWZmZXIpCiAgICAgIChzZXRxIGNvbW1hbmQgKGdudXMtdXUt Y29tbWFuZCBhY3Rpb24gZmlsZS1uYW1lKSkKICAgICAgKG1lc3NhZ2UgIlZp ZXdpbmcgd2l0aCAnJXMnIiBjb21tYW5kKQogICAgICAoaWYgKG5vdCAoPSAw IChjYWxsLXByb2Nlc3MgInNoIiBuaWwgdCBuaWwgIi1jIiBjb21tYW5kKSkp CgkgIChwcm9nbgoJICAgIChnb3RvLWNoYXIgMSkKCSAgICAod2hpbGUgKHJl LXNlYXJjaC1mb3J3YXJkICJcbiIgbmlsIHQpCgkgICAgICAocmVwbGFjZS1t YXRjaCAiICIpKQoJICAgIChtZXNzYWdlIChjb25jYXQgIkVycm9yOiAiIChi dWZmZXItc3Vic3RyaW5nIDEgKHBvaW50LW1heCkpKSkKCSAgICAoc2l0LWZv ciAyKSkKCShtZXNzYWdlICIiKQoJKHNldHEgZGlkLXZpZXcgdCkpKQogICAg ZGlkLXZpZXcpKQoKOyBgZ251cy11dS1jYWxsLWFzeW5jcm9ub3VzJyB0YWtl cyB0d28gcGFyYW1ldGVyczogVGhlIG5hbWUgb2YgdGhlCjsgZmlsZSB0byBi ZSBkaXNwbGF5ZWQgYW5kIHRoZSBjb21tYW5kIHRvIGRpc3BsYXkgaXQgd2l0 aC4gU2luY2UgdGhlCjsgdmlldyBjb21tYW5kIGlzIGV4ZWN1dGVkIGFzeW5j aHJvbm91c2x5LCBpdCdzIGtpbmRhIGhhcmQgdG8gZGVjaWRlCjsgd2hldGhl ciB0aGUgY29tbWFuZCBzdWNjZWRlZCBvciBub3QsIHNvIHRoaXMgZnVuY3Rp b24gYWx3YXlzIHJldHVybnMKOyB0LiBJdCBhbHNvIGFkZHMgIjsgcm0gLWYg ZmlsZS1uYW1lIiB0byB0aGUgZW5kIG9mIHRoZSBleGVjdXRpb24KOyBzdHJp bmcsIHNvIHRoZSBmaWxlIHdpbGwgYmUgcmVtb3ZlZCBhZnRlciB2aWV3aW5n IGhhcyBlbmRlZC4KKGRlZnVuIGdudXMtdXUtY2FsbC1hc3luY2hyb25vdXMg KGZpbGUtbmFtZSBhY3Rpb24pCiAgKGxldCAoY29tbWFuZCBmaWxlIHRtcC1m aWxlIHN0YXJ0KQogICAgKHdoaWxlIChzdHJpbmctbWF0Y2ggIi8iIGZpbGUt bmFtZSBzdGFydCkKICAgICAgKHNldHEgc3RhcnQgKDErIChtYXRjaC1iZWdp bm5pbmcgMCkpKSkKICAgIChzZXRxIGZpbGUgKHN1YnN0cmluZyBmaWxlLW5h bWUgc3RhcnQpKQogICAgKHNldHEgdG1wLWZpbGUgKGNvbmNhdCBnbnVzLXV1 LXdvcmstZGlyIGZpbGUpKQogICAgKGlmIChzdHJpbmc9IHRtcC1maWxlIGZp bGUtbmFtZSkKCSgpCiAgICAgIChyZW5hbWUtZmlsZSBmaWxlLW5hbWUgdG1w LWZpbGUgdCkKICAgICAgKHNldHEgZmlsZS1uYW1lIHRtcC1maWxlKSkKZDU2 NyAxCmE1NjcgMTUKICAgIChzZXRxIGNvbW1hbmQgKGdudXMtdXUtY29tbWFu ZCBhY3Rpb24gZmlsZS1uYW1lKSkKICAgIChzZXRxIGNvbW1hbmQgKGZvcm1h dCAiJXMgOyBybSAtZiAlcyIgY29tbWFuZCBmaWxlLW5hbWUpKQogICAgKG1l c3NhZ2UgIlZpZXdpbmcgd2l0aCAlcyIgY29tbWFuZCkKICAgIChzdGFydC1w cm9jZXNzICJnbnVzLXV1LXZpZXciIG5pbCAic2giICItYyIgY29tbWFuZCkK ICAgIHQpKQoKOyBgZ251cy11dS1kZWNvZGUtYW5kLXN0cmlwJyBkb2VzIGFs bCB0aGUgbWFpbiB3b3JrLiBJdCBmaW5kcyBvdXQgd2hhdAo7IGFydGljbGVz IHRvIGdyYWIsIGdyYWJzIHRoZW0sIHN0cmlwcyB0aGUgcmVzdWx0IGFuZCBk ZWNvZGVzLiBJZiBhbnkKOyBvZiB0aGVzZSBvcGVyYXRpb25zIGZhaWwsIGl0 IHJldHVybnMgbmlsLCB0IG90aGVyd2lzZS4gIElmIHNoYXIgaXMKOyB0LCBp dCB3aWxsIHBhc3MgdGhpcyBvbiB0byBgZ251cy11dS1ncmFiLWFydGljbGVz Jywgd2hpY2ggd2lsbAo7IChwcm9iYWJseSkgdW5zaGFyIHRoZSBhcnRpY2xl cy4gSWYgdXNlLW1hcmtlZCBpcyBub24tbmlsLCBpdCB3b24ndAo7IHRyeSB0 byBmaW5kIGFydGljbGVzLCBidXQgdXNlIHRoZSBtYXJrZWQgbGlzdC4KKGRl ZnVuIGdudXMtdXUtZGVjb2RlLWFuZC1zdHJpcCAoJm9wdGlvbmFsIHNoYXIg dXNlLW1hcmtlZCBsaW1pdCkKICAobGV0IChsaXN0LW9mLWFydGljbGVzKQog ICAgKHNhdmUtZXhjdXJzaW9uCmE1NjggMjEKICAgICAgKGlmIHVzZS1tYXJr ZWQKCSAgKGlmIChub3QgZ251cy1uZXdzZ3JvdXAtcHJvY2Vzc2FibGUpCgkg ICAgICAobWVzc2FnZSAiTm8gYXJ0aWNsZXMgbWFya2VkIikKCSAgICAoc2V0 cSBsaXN0LW9mLWFydGljbGVzIAoJCSAgKHNldHEgZ251cy1uZXdzZ3JvdXAt cHJvY2Vzc2FibGUgCgkJCShucmV2ZXJzZSBnbnVzLW5ld3Nncm91cC1wcm9j ZXNzYWJsZSkpKQoJICAgIChnbnVzLXN1bW1hcnktdW5tYXJrLWFsbC1wcm9j ZXNzYWJsZSkpCgkoc2V0cSBsaXN0LW9mLWFydGljbGVzIChnbnVzLXV1LWdl dC1saXN0LW9mLWFydGljbGVzKSkpCiAgICAgIAogICAgICAoYW5kIGxpc3Qt b2YtYXJ0aWNsZXMKCSAgIChnbnVzLXV1LWdyYWItYXJ0aWNsZXMgCgkgICAg bGlzdC1vZi1hcnRpY2xlcyAKCSAgICAoaWYgc2hhciAnZ251cy11dS11bnNo YXItYXJ0aWNsZSAnZ251cy11dS11dXN0cmlwLWFydGljbGUtYXMpCgkgICAg dCBsaW1pdCkpKSkpCgo7IFRha2VzIGEgc3RyaW5nIGFuZCBwdXRzIGEgXCBp biBmcm9udCBvZiBldmVyeSBzcGVjaWFsIGNoYXJhY3RlcjsKOyBpZ25vcmVz IGFueSBsZWFkaW5nICJ2ZXJzaW9uIG51bWJlcnMiIHRoaW5naWVzIHRoYXQg dGhleSB1c2UgaW4gdGhlCjsgY29tcC5iaW5hcmllcyBncm91cHMsIGFuZCBl aXRoZXIgcmVwbGFjZXMgYW55dGhpbmcgdGhhdCBsb29rcyBsaWtlCjsgIjIv MyIgd2l0aCAiWzAtOV0rL1swLTldKyIgb3IsIGlmIGl0IGNhbid0IGZpbmQg c29tZXRoaW5nIGxpa2UgdGhhdCwKOyByZXBsYWNlcyB0aGUgbGFzdCB0d28g bnVtYmVycyB3aXRoICJbMC05XSsiLiBUaGlzLCBpbiBteSBleHBlcmllbmNl LAo7IHNob3VsZCBnZXQgbW9zdCBwb3N0aW5ncyBvZiBhIHNlcmllcy4KZDU3 MCA2CmQ2MTcgMjUKYTY0MSAxCihkZWZzdWJzdCBnbnVzLXV1LXN0cmluZzwg KGwxIGwyKQpkNjQ0IDkKYTY1MiA4CjsgRmluZHMgYWxsIGFydGljbGVzIHRo YXQgbWF0Y2hlcyB0aGUgcmVndWxhciBleHByZXNzaW9uIGdpdmVuLgo7IFJl dHVybnMgdGhlIHJlc3VsdGluZyBsaXN0LiBTVUJKRUNUIGlzIHRoZSByZWd1 bGFyIGV4cHJlc3Npb24gdG8gYmUKOyBtYXRjaGVkLiBJZiBpdCBpcyBuaWws IHRoZSBjdXJyZW50IGFydGljbGUgbmFtZSB3aWxsIGJlIHVzZWQuIElmCjsg TUFSSy1BUlRJQ0xFUyBpcyBub24tbmlsLCBhcnRpY2xlcyBmb3VuZCBhcmUg bWFya2VkLiBJZiBPTkxZLVVOUkVBRAo7IGlzIG5vbi1uaWwsIG9ubHkgdW5y ZWFkIGFydGljbGVzIGFyZSBjaG9zZS4gSWYgRE8tTk9ULVRSQU5TTEFURSBp cwo7IG5vbi1uaWwsIGFydGljbGUgbmFtZXMgYXJlIG5vdCBlcXVpYWxpemVk IGJlZm9yZSBzb3J0aW5nLgooZGVmdW4gZ251cy11dS1nZXQtbGlzdC1vZi1h cnRpY2xlcyAoJm9wdGlvbmFsIHN1YmplY3QgbWFyay1hcnRpY2xlcyBvbmx5 LXVucmVhZCBkby1ub3QtdHJhbnNsYXRlKQogIChsZXQgKGJlZyBlbmQgcmVn LXN1YmplY3QgbGlzdC1vZi1zdWJqZWN0cyBsaXN0LW9mLW51bWJlcnMgYXJ0 LW51bSkKZDY1NCAyNgphNjc5IDI2CiAgICAgIAo7IElmIHRoZSBzdWJqZWN0 IGlzIG5vdCBnaXZlbiwgdGhpcyBmdW5jdGlvbiBsb29rcyBhdCB0aGUgY3Vy cmVudCBzdWJqZWN0CjsgYW5kIHRha2VzIHRoYXQuCgogICAgICAoaWYgc3Vi amVjdAoJICAoc2V0cSByZWctc3ViamVjdCBzdWJqZWN0KQoJKHNldHEgcmVn LXN1YmplY3QgCgkgICAgICAoZm9ybWF0ICIlcyBbLTAtOV0rICVzIFstMC05 XSsgWy0wLTldK1tcblxyXSIKCSAgICAgICAoZ251cy11dS1yZWdpbml6ZS1z dHJpbmcgKGdudXMtc3VtbWFyeS1zdWJqZWN0LXN0cmluZykpCgkgICAgICAg KGlmIG9ubHktdW5yZWFkICJbLSBdIiAiLiIpKSkpCgogICAgICAoaWYgcmVn LXN1YmplY3QKCSAgKHByb2duCgo7IENvbGxlY3QgYWxsIHN1YmplY3RzIG1h dGNoaW5nIHJlZy1zdWJqZWN0LgoKCSAgICAobGV0ICgoY2FzZS1mb2xkLXNl YXJjaCB0KSkKCSAgICAgIChnb3RvLWNoYXIgMSkKCSAgICAgICh3aGlsZSAo cmUtc2VhcmNoLWZvcndhcmQgcmVnLXN1YmplY3QgbmlsIHQpCgkJKHByb2du CgkJICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCgkJICAoc2V0 cSBsaXN0LW9mLXN1YmplY3RzIAoJCQkoY29ucyAoY29ucyAoZ251cy1zdW1t YXJ5LXN1YmplY3Qtc3RyaW5nKQoJCQkJICAgIChnbnVzLXN1bW1hcnktYXJ0 aWNsZS1udW1iZXIpKQoJCQkgICAgICBsaXN0LW9mLXN1YmplY3RzKSkKCQkg IChmb3J3YXJkLWxpbmUgMSkpKSkKYTY4MCAyNwo7IEV4cGFuZCBhbGwgbnVt YmVycyBpbiBhbGwgdGhlIHN1YmplY3RzOiAoaGk5IC0+IGhpMDAwOSwgZXRj KS4KCgkgICAgKHNldHEgbGlzdC1vZi1zdWJqZWN0cyAKCQkgIChnbnVzLXV1 LWV4cGFuZC1udW1iZXJzIGxpc3Qtb2Ytc3ViamVjdHMKCQkJCQkgIChub3Qg ZG8tbm90LXRyYW5zbGF0ZSkpKQoKOyBTb3J0IHRoZSBzdWJqZWN0cy4KCgkg ICAgKHNldHEgbGlzdC1vZi1zdWJqZWN0cyAoc29ydCBsaXN0LW9mLXN1Ympl Y3RzICdnbnVzLXV1LXN0cmluZzwpKQoKOyBHZXQgdGhlIGFydGljbGUgbnVt YmVycyBmcm9tIHRoZSBzb3J0ZWQgbGlzdCBvZiBzdWJqZWN0cy4KCgkgICAg KHdoaWxlIGxpc3Qtb2Ytc3ViamVjdHMgCgkgICAgICAoc2V0cSBhcnQtbnVt IChjZHIgKGNhciBsaXN0LW9mLXN1YmplY3RzKSkpCgkgICAgICAoaWYgbWFy ay1hcnRpY2xlcyAoZ251cy1zdW1tYXJ5LW1hcmstYXMtcmVhZCBhcnQtbnVt ID8jKSkKCSAgICAgIChzZXRxIGxpc3Qtb2YtbnVtYmVycyAoY29ucyBhcnQt bnVtIGxpc3Qtb2YtbnVtYmVycykpCgkgICAgICAoc2V0cSBsaXN0LW9mLXN1 YmplY3RzIChjZHIgbGlzdC1vZi1zdWJqZWN0cykpKQoKCSAgICAoc2V0cSBs aXN0LW9mLW51bWJlcnMgKG5yZXZlcnNlIGxpc3Qtb2YtbnVtYmVycykpKSkK CiAgICAgIGxpc3Qtb2YtbnVtYmVycykpKQoKOyBUYWtlcyBhIGxpc3Qgb2Yg c3RyaW5ncyBhbmQgImV4cGFuZHMiIGFsbCBudW1iZXJzIGluIGFsbCB0aGUK OyBzdHJpbmdzLiAgVGhhdCBpcywgdGhpcyBmdW5jdGlvbiBtYWtlcyBhbGwg bnVtYmVycyBlcXVhbCBsZW5ndGggYnkKOyBwcmVwZW5kaW5nIGxvdHMgb2Yg emVyb2VzIGJlZm9yZSBlYWNoIG51bWJlci4gVGhpcyBpcyB0byBlYXNlIGxh dGVyCjsgc29ydGluZyB0byBmaW5kIG91dCB3aGF0IHNlcXVlbmNlIHRoZSBh cnRpY2xlcyBhcmUgc3VwcG9zZWQgdG8gYmUKOyBkZWNvZGVkIGluLiBSZXR1 cm5zIHRoZSBsaXN0IG9mIGV4cGFuZGVkIHN0cmluZ3MuCmQ2ODIgNQpkNzE3 IDIzCmE3MzkgMjUKOzsgZ251cy11dS1ncmFiLWFydGljbGUKOwo7IFRoaXMg aXMgdGhlIGdlbmVyYWwgbXVsdGktYXJ0aWNsZSB0cmVhdG1lbnQgZnVuY3Rp b24uICBJdCB0YWtlcyBhCjsgbGlzdCBvZiBhcnRpY2xlcyB0byBiZSBncmFi YmVkIGFuZCBhIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2gKOyBhcnRpY2xl LiAKOwo7IFRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgc2hvdWxkIHRha2Ug dHdvIHBhcmFtZXRlcnMuICBUaGUgZmlyc3QKOyBwYXJhbWV0ZXIgaXMgdGhl IGFydGljbGUgYnVmZmVyLiBUaGUgZnVuY3Rpb24gc2hvdWxkIGxlYXZlIHRo ZQo7IHJlc3VsdCwgaWYgYW55LCBpbiB0aGlzIGJ1ZmZlci4gTW9zdCB0cmVh dG1lbnQgZnVuY3Rpb25zIHdpbGwganVzdAo7IGdlbmVyYXRlIGZpbGVzLi4u CjsKOyBUaGUgc2Vjb25kIHBhcmFtZXRlciBpcyB0aGUgc3RhdGUgb2YgdGhl IGxpc3Qgb2YgYXJ0aWNsZXMsIGFuZCBjYW4KOyBoYXZlIGZvdXIgdmFsdWVz OiBgZmlyc3QnLCBgbWlkZGxlJywgYGxhc3QnIGFuZCBgZmlyc3QtYW5kLWxh c3QnLgo7CjsgVGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYSBsaXN0LiBU aGUgbGlzdCBtYXkgY29udGFpbiB0aGUKOyBmb2xsb3dpbmcgc3ltYm9sczoK OyBgZXJyb3InIGlmIGFuIGVycm9yIG9jY3VycmVkCjsgYGJlZ2luJyBpZiB0 aGUgYmVnaW5uaW5nIG9mIGFuIGVuY29kZWQgZmlsZSBoYXMgYmVlbiByZWNl aXZlZAo7ICAgSWYgdGhlIGxpc3QgcmV0dXJuZWQgY29udGFpbnMgYSBgYmVn aW4nLCB0aGUgZmlyc3QgZWxlbWVudCBvZgo7ICAgdGhlIGxpc3QgKm11c3Qq IGJlIGEgc3RyaW5nIHdpdGggdGhlIGZpbGUgbmFtZSBvZiB0aGUgZGVjb2Rl ZAo7ICAgZmlsZS4KOyBgZW5kJyBpZiB0aGUgdGhlIGVuZCBvZiBhbiBlbmNv ZGVkIGZpbGUgaGFzIGJlZW4gcmVjZWl2ZWQKOyBgbWlkZGxlJyBpZiB0aGUg YXJ0aWNsZSB3YXMgYSBib2R5IHBhcnQgb2YgYW4gZW5jb2RlZCBmaWxlCjsg YHdyb25nLXR5cGUnIGlmIHRoZSBhcnRpY2xlIHdhcyBub3QgYSBwYXJ0IG9m IGFuIGVuY29kZWQgZmlsZQo7IGBvaycsIHdoaWNoIGNhbiBiZSB1c2VkIGV2 ZXJ5dGhpbmcgaXMgb2sKZDc1OCA3CmE3NjQgNgo7IFRoaXMgZnVuY3Rpb24g dGFrZXMgYSBsaXN0IG9mIGFydGljbGVzIGFuZCBhIGZ1bmN0aW9uIHRvIGFw cGx5IHRvCjsgZWFjaCBhcnRpY2xlIGdyYWJiZWQuIAo7IAo7IFRoaXMgZnVu Y3Rpb24gcmV0dXJucyBhIGxpc3Qgb2YgZmlsZXMgZGVjb2RlZCBpZiB0aGUg Z3JhYmJpbmcgYW5kCjsgdGhlIHByb2Nlc3MtZnVuY3Rpb24gaGFzIGJlZW4g c3VjY2Vzc2Z1bCBhbmQgbmlsIG90aGVyd2lzZS4KKGRlZnVuIGdudXMtdXUt Z3JhYi1hcnRpY2xlcyAobGlzdC1vZi1hcnRpY2xlcyBwcm9jZXNzLWZ1bmN0 aW9uICZvcHRpb25hbCBzbG9wcHkgbGltaXQgbm8tZXJyb3JzKQpkNzc3IDEK YTc3NyAxCiAgICAod2hpbGUgKGFuZCBsaXN0LW9mLWFydGljbGVzIApkNzgy IDIKYTc4MyAyCiAgICAgIChzZXRxIGFydGljbGUgKGNhciBsaXN0LW9mLWFy dGljbGVzKSkKICAgICAgKHNldHEgbGlzdC1vZi1hcnRpY2xlcyAoY2RyIGxp c3Qtb2YtYXJ0aWNsZXMpKQpkNzg5IDEKYTc4OSAxCiAgICAgIChpZiAoZXEg bGlzdC1vZi1hcnRpY2xlcyAoKSkgCmE3OTUgNQogICAgICAoaWYgKG5vdCAo Z251cy1zZXJ2ZXItb3BlbmVkIGdudXMtY3VycmVudC1zZWxlY3QtbWV0aG9k KSkKCSAgKHByb2duCgkgICAgKGdudXMtc3RhcnQtbmV3cy1zZXJ2ZXIpCgkg ICAgKGdudXMtcmVxdWVzdC1ncm91cCBnbnVzLW5ld3Nncm91cC1uYW1lKSkp CgpkODA5IDIKZDgzMiAyCmE4MzMgNAoJICAgIChpZiAoYW5kIGxpbWl0ICg9 IChsZW5ndGggcmVzdWx0LWZpbGVzKSBsaW1pdCkpCgkJKHByb2duCgkJICAo c2V0cSBsaXN0LW9mLWFydGljbGVzIG5pbCkKCQkgIChzZXRxIGdudXMtbmV3 c2dyb3VwLXByb2Nlc3NhYmxlIG5pbCkpKSkpCmQ4NDAgMQphODQwIDEKICAg ICAgKHNldHEgcmVzdWx0LWZpbGUgbmlsKQpkODU5IDIKYTg2MCAyCiAgICA7 IE1ha2Ugc3VyZSB0aGUgbGFzdCBhcnRpY2xlIGlzIHB1dCBpbiB0aGUgYXJ0 aWNsZSBidWZmZXIKICAgIDsgJiBmaXggd2luZG93cyBldGMuCmQ4ODYgMgph ODg3IDEKICAgIHJlc3VsdC1maWxlcykpCmQ4OTIgMgphODkzIDIKOyBVdWRl Y29kZXMgYSBmaWxlIGFzeW5jaHJvbm91c2x5LgooZGVmdW4gZ251cy11dS11 dXN0cmlwLWFydGljbGUtYXMgKHByb2Nlc3MtYnVmZmVyIGluLXN0YXRlKQpk MTAwMiAyCmExMDAzIDIKOyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkgYGdu dXMtdXUtZ3JhYi1hcnRpY2xlcycgdG8gdHJlYXQKOyBhIHNoYXJlZCBhcnRp Y2xlLgpkMTAyMCAxCmExMDIwIDEKOyBSZXR1cm5zIHRoZSBuYW1lIG9mIHdo YXQgdGhlIHNoYXIgZmlsZSBpcyBnb2luZyB0byB1bnBhY2suCmQxMDMwIDMK YTEwMzIgMTEKOyBSZXR1cm5zIHRoZSBhcnRpY2xlIG51bWJlciBvZiB0aGUg Z2l2ZW4gc3ViamVjdC4KKGRlZnVuIGdudXMtdXUtYXJ0aWNsZS1udW1iZXIg KHN1YmplY3QpCiAgKGxldCAoZW5kKQogICAgKHN0cmluZy1tYXRjaCAiWzAt OV0rW14wLTldIiBzdWJqZWN0IDEpCiAgICAoc2V0cSBlbmQgKG1hdGNoLWVu ZCAwKSkKICAgIChzdHJpbmctdG8taW50IAogICAgIChzdWJzdHJpbmcgc3Vi amVjdCAoc3RyaW5nLW1hdGNoICJbMC05XSIgc3ViamVjdCAxKSBlbmQpKSkp IAoJICAgICAgCjsgYGdudXMtdXUtY2hvb3NlLWFjdGlvbicgY2hvb3NlcyB3 aGF0IGFjdGlvbiB0byBwZXJmb3JtIGdpdmVuIHRoZSBuYW1lCjsgYW5kIGBn bnVzLXV1LWZpbGUtYWN0aW9uLWxpc3QnLiAgUmV0dXJucyBlaXRoZXIgbmls IGlmIG5vIGFjdGlvbiBpcwo7IGZvdW5kLCBvciB0aGUgbmFtZSBvZiB0aGUg Y29tbWFuZCB0byBydW4gaWYgc3VjaCBhIHJ1bGUgaXMgZm91bmQuCmExMDUz IDYzCihkZWZ1biBnbnVzLXV1LXNhdmUtZGlyZWN0b3J5IChmcm9tLWRpciAm b3B0aW9uYWwgZGVmYXVsdC1kaXIgaWdub3JlLWV4aXN0aW5nKQogIChsZXQg KGRpciBmaWxlLW5hbWUgY29tbWFuZCBmaWxlcyBmaWxlKQogICAgKHNldHEg ZmlsZXMgKGRpcmVjdG9yeS1maWxlcyBmcm9tLWRpciB0KSkKICAgIChpZiBk ZWZhdWx0LWRpcgoJKHNldHEgZGlyIGRlZmF1bHQtZGlyKQogICAgICAoc2V0 cSBkaXIgKGdudXMtdXUtcmVhZC1kaXJlY3RvcnkgCgkJIChjb25jYXQgIldo ZXJlIGRvIHlvdSB3YW50IHRoZSBmaWxlIiAKCQkJIChpZiAoPCAzIChsZW5n dGggZmlsZXMpKSAicyIgIiIpICI/ICIpKSkpCgogICAgKHdoaWxlIGZpbGVz CiAgICAgIChzZXRxIGZpbGUgKGNhciBmaWxlcykpCiAgICAgIChzZXRxIGZp bGVzIChjZHIgZmlsZXMpKQogICAgICAoc3RyaW5nLW1hdGNoICIvW14vXSok IiBmaWxlKQogICAgICAoc2V0cSBmaWxlLW5hbWUgKHN1YnN0cmluZyBmaWxl ICgxKyAobWF0Y2gtYmVnaW5uaW5nIDApKSkpCiAgICAgIChpZiAoc3RyaW5n LW1hdGNoICJeXFwuXFwuPyQiIGZpbGUtbmFtZSkKCSAgKCkKCShpZiAoYW5k IChub3QgaWdub3JlLWV4aXN0aW5nKSAoZmlsZS1leGlzdHMtcCAoY29uY2F0 IGRpciBmaWxlLW5hbWUpKSkKCSAgICAoc2V0cSBmaWxlLW5hbWUKCQkgIChy ZWFkLWZpbGUtbmFtZSAiRmlsZSBleGlzdHMuIEVudGVyIGEgbmV3IG5hbWU6 ICIgZGlyIAoJCQkJICAoY29uY2F0IGRpciBmaWxlLW5hbWUpIG5pbCBmaWxl LW5hbWUpKQoJICAoc2V0cSBmaWxlLW5hbWUgKGNvbmNhdCBkaXIgZmlsZS1u YW1lKSkpCgkocmVuYW1lLWZpbGUgZmlsZSBmaWxlLW5hbWUgdCkpKSkpCgo7 IE1vdmVzIHRoZSBmaWxlIGZyb20gdGhlIHRtcCBkaXJlY3RvcnkgdG8gd2hl cmUgdGhlIHVzZXIgd2FudHMgaXQuCihkZWZ1biBnbnVzLXV1LXNhdmUtZmls ZSAoZnJvbS1maWxlLW5hbWUgJm9wdGlvbmFsIGRlZmF1bHQtZGlyIGlnbm9y ZS1leGlzdGluZykKICAobGV0IChkaXIgZmlsZS1uYW1lIGNvbW1hbmQpCiAg ICAoc3RyaW5nLW1hdGNoICIvW14vXSokIiBmcm9tLWZpbGUtbmFtZSkKICAg IChzZXRxIGZpbGUtbmFtZSAoc3Vic3RyaW5nIGZyb20tZmlsZS1uYW1lICgx KyAobWF0Y2gtYmVnaW5uaW5nIDApKSkpCiAgICAoaWYgZGVmYXVsdC1kaXIK CShzZXRxIGRpciBkZWZhdWx0LWRpcikKICAgICAgKHNldHEgZGlyIChnbnVz LXV1LXJlYWQtZGlyZWN0b3J5ICJXaGVyZSBkbyB5b3Ugd2FudCB0aGUgZmls ZT8gIikpKQogICAgKGlmIChhbmQgKG5vdCBpZ25vcmUtZXhpc3RpbmcpIChm aWxlLWV4aXN0cy1wIChjb25jYXQgZGlyIGZpbGUtbmFtZSkpKQoJKHNldHEg ZmlsZS1uYW1lCgkgICAgICAocmVhZC1maWxlLW5hbWUgIkZpbGUgZXhpc3Qu IEVudGVyIGEgbmV3IG5hbWU6ICIgZGlyIAoJCQkgICAgICAoY29uY2F0IGRp ciBmaWxlLW5hbWUpIG5pbCBmaWxlLW5hbWUpKQogICAgICAoc2V0cSBmaWxl LW5hbWUgKGNvbmNhdCBkaXIgZmlsZS1uYW1lKSkpCiAgICAocmVuYW1lLWZp bGUgZnJvbS1maWxlLW5hbWUgZmlsZS1uYW1lIHQpKSkKICAgIAooZGVmdW4g Z251cy11dS1yZWFkLWRpcmVjdG9yeSAocHJvbXB0ICZvcHRpb25hbCBkZWZh dWx0KQogIChsZXQgKGRpciBvayBjcmVhdGUpCiAgICAod2hpbGUgKG5vdCBv aykKICAgICAgKHNldHEgb2sgdCkKICAgICAgKHNldHEgZGlyIChpZiBkZWZh dWx0IGRlZmF1bHQKCQkgIChyZWFkLWZpbGUtbmFtZSBwcm9tcHQgZ251cy11 dS1jdXJyZW50LXNhdmUtZGlyIAoJCQkJICBnbnVzLXV1LWN1cnJlbnQtc2F2 ZS1kaXIpKSkKICAgICAgKHdoaWxlIChzdHJpbmctbWF0Y2ggIi8kIiBkaXIp Cgkoc2V0cSBkaXIgKHN1YnN0cmluZyBkaXIgMCAobWF0Y2gtYmVnaW5uaW5n IDApKSkpCiAgICAgIChpZiAoZmlsZS1leGlzdHMtcCBkaXIpCgkgIChpZiAo bm90IChmaWxlLWRpcmVjdG9yeS1wIGRpcikpCgkgICAgICAocHJvZ24KCQko c2V0cSBvayBuaWwpCgkJKG1lc3NhZ2UgIiVzIGlzIGEgZmlsZSIgZGlyKQoJ CShzaXQtZm9yIDIpKSkKCShzZXRxIGNyZWF0ZSA/bykKCSh3aGlsZSAobm90 IChvciAoPSBjcmVhdGUgP3kpICg9IGNyZWF0ZSA/bikpKQoJICAobWVzc2Fn ZSAiJXM6IE5vIHN1Y2ggZGlyZWN0b3J5LiBEbyB5b3Ugd2FudCB0byBjcmVh dGUgaXQ/ICh5L24pIiAKCQkgICBkaXIpCgkgIChzZXRxIGNyZWF0ZSAocmVh ZC1jaGFyKSkpCgkoaWYgKD0gY3JlYXRlID95KSAobWFrZS1kaXJlY3Rvcnkg ZGlyKSkpKQogICAgKHNldHEgZ251cy11dS1jdXJyZW50LXNhdmUtZGlyIChj b25jYXQgZGlyICIvIikpKSkKCjsgVW5wYWNrcyBhbiBhcmNoaXZlIGFuZCB2 aWV3cyBhbGwgdGhlIGZpbGVzIGluIGl0LiBSZXR1cm5zIHQgaWYKOyB2aWV3 aW5nIG9uZSBvciBtb3JlIGZpbGVzIGlzIHN1Y2Nlc3NmdWwuCmQxMDU1IDEK ZDEwNzAgMQphMTA3MCAxCiAgICAoaWYgKGdudXMtdXUtc3RyaW5nLWluLWxp c3QgYWN0aW9uIGdudXMtdXUtZGVzdHJ1Y3RpdmUtYXJjaGl2ZXJzKQpkMTA4 NSAxCmExMDg1IDQKICAgICAgKGlmIChub3QgZ251cy11dS11c2UtaW50ZXJh Y3RpdmUtdmlldykKCSAgKHByb2duCgkgICAgKG1lc3NhZ2UgIkVycm9yIGR1 cmluZyB1bnBhY2tpbmcgb2YgYXJjaGl2ZSIpCgkgICAgKHNsZWVwLWZvciAy KSkpCmQxMDg4IDEKYTEwODggMQogICAgKGlmIChnbnVzLXV1LXN0cmluZy1p bi1saXN0IGFjdGlvbiBnbnVzLXV1LWRlc3RydWN0aXZlLWFyY2hpdmVycykK YTEwOTIgNDAKOyBUcmllcyB0byB2aWV3IGFsbCB0aGUgZmlsZXMgaW4gdGhl IGdpdmVuIGRpcmVjdG9yeS4gUmV0dXJucyB0IGlmCjsgdmlld2luZyBvbmUg b3IgbW9yZSBmaWxlcyBpcyBzdWNjZXNzZnVsLgooZGVmdW4gZ251cy11dS12 aWV3LWRpcmVjdG9yeSAoZGlyICZvcHRpb25hbCBkb250LWRlbGV0ZS1maWxl cyBub3QtdG9wKQogIChsZXQgKChmaXJzdCB0KQoJZmlsZXMgZmlsZSBkaWQt dmlldyBpZ25vcmUtZmlsZXMpCiAgICAoc2V0cSBmaWxlcyAoZ251cy11dS1k aXJlY3RvcnktZmlsZXMgZGlyIHQpKQogICAgKGdudXMtdXUtYWRkLWZpbGUg ZmlsZXMpCiAgICAoc2V0cSBpZ25vcmUtZmlsZXMgZmlsZXMpCiAgICAKICAg ICh3aGlsZSAoZ251cy11dS11bnBhY2stYXJjaGl2ZXMgCgkgICAgZmlsZXMg KGlmIG5vdC10b3AgKGxpc3QgIi4iKQoJCSAgICAoaWYgZmlyc3QgKCkgaWdu b3JlLWZpbGVzKSkpCiAgICAgIChzZXRxIGZpcnN0IG5pbCkKICAgICAgKGdu dXMtdXUtYWRkLWZpbGUgCiAgICAgICAoc2V0cSBmaWxlcyAoZ251cy11dS1k aXJlY3RvcnktZmlsZXMgZGlyIHQpKSkpCgogICAgKGdudXMtdXUtYWRkLWZp bGUgKGdudXMtdXUtZGlyZWN0b3J5LWZpbGVzIGRpciB0KSkKICAgICAgCiAg ICAod2hpbGUgZmlsZXMKICAgICAgKHNldHEgZmlsZSAoY2FyIGZpbGVzKSkK ICAgICAgKHNldHEgZmlsZXMgKGNkciBmaWxlcykpCiAgICAgIChpZiAobm90 IChzdHJpbmc9IChvciAoZ251cy11dS1nZXQtYWN0aW9uIGZpbGUpICIiKSAi Z251cy11dS1hcmNoaXZlIikpCgkgIChwcm9nbgoJICAgIChzZXQtZmlsZS1t b2RlcyBmaWxlIDQ0OCkKCSAgICAoaWYgKGZpbGUtZGlyZWN0b3J5LXAgZmls ZSkKCQkoc2V0cSBkaWQtdmlldyAob3IgKGdudXMtdXUtdmlldy1kaXJlY3Rv cnkgZmlsZSAKCQkJCQkJCSAgIGRvbnQtZGVsZXRlLWZpbGVzIAoJCQkJCQkJ ICAgdCkgCgkJCQkgICBkaWQtdmlldykpCgkgICAgICAoc2V0cSBkaWQtdmll dyAob3IgKGdudXMtdXUtdmlldy1maWxlIGZpbGUgdCkgZGlkLXZpZXcpKSkp KQogICAgICAoaWYgKGFuZCAobm90IGRvbnQtZGVsZXRlLWZpbGVzKSAobm90 IGdudXMtdXUtYXN5bmNocm9ub3VzKSAKCSAgICAgICAoZmlsZS1leGlzdHMt cCBmaWxlKSkKCSAgKGRlbGV0ZS1maWxlIGZpbGUpKSkKCiAgICAoaWYgKGFu ZCAobm90IGdudXMtdXUtYXN5bmNocm9ub3VzKSAobm90IGRvbnQtZGVsZXRl LWZpbGVzKSkKCShpZiAoc3RyaW5nLW1hdGNoICIvJCIgZGlyKQoJICAgIChk ZWxldGUtZGlyZWN0b3J5IChzdWJzdHJpbmcgZGlyIDAgKG1hdGNoLWJlZ2lu bmluZyAwKSkpCgkgIChkZWxldGUtZGlyZWN0b3J5IGRpcikpKQogICAgZGlk LXZpZXcpKQoKZDExMDMgMzEKYTExMzMgMTIKKGRlZnVuIGdudXMtdXUtZGly ZWN0b3J5LWZpbGVzLW9sZCAoZGlyKQogIChsZXQgKChmaWxlcyAoZGlyZWN0 b3J5LWZpbGVzIGRpciB0KSkgZikKICAgIChzZXRxIGYgZmlsZXMpCiAgICAo d2hpbGUgKGNkciBmKQogICAgICAoaWYgKHN0cmluZy1tYXRjaCAiL1xcLlxc Lj8kIiAoY2FyIChjZHIgZikpKQoJICAoc2V0Y2RyIGYgKGNkciAoY2RyIGYp KSkKCShzZXRxIGYgKGNkciBmKSkpKQogICAgKGlmIChzdHJpbmctbWF0Y2gg Ii9cXC5cXC4/JCIgKGNhciBmaWxlcykpIChjZHIgZmlsZXMpCiAgICAgIGZp bGVzKSkpCgooZGVmdW4gZ251cy11dS11bnBhY2stYXJjaGl2ZXMgKGZpbGVz ICZvcHRpb25hbCBpZ25vcmUpCiAgKGxldCAocGF0aCBkaWQtdW5wYWNrKQpk MTEzNSA2CmExMTQwIDgzCiAgICAgIChzZXRxIHBhdGggKGNhciBmaWxlcykp CiAgICAgIChzZXRxIGZpbGVzIChjZHIgZmlsZXMpKQogICAgICAoaWYgKG5v dCAoZ251cy11dS1zdHJpbmctaW4tbGlzdCBwYXRoIGlnbm9yZSkpCgkgIChp ZiAoc3RyaW5nPSAob3IgKGdudXMtdXUtZ2V0LWFjdGlvbiAKCQkJICAgIChn bnVzLXV1LW5hbWUtZnJvbS1wYXRoIHBhdGgpKSAiIikgCgkJICAgICAgICJn bnVzLXV1LWFyY2hpdmUiKQoJICAgICAgKHByb2duCgkJKGlmIChhbmQgKG5v dCAoc2V0cSBkaWQtdW5wYWNrIChnbnVzLXV1LXRyZWF0LWFyY2hpdmUgcGF0 aCkpKQoJCQkgZ251cy11dS11c2UtaW50ZXJhY3RpdmUtdmlldykKCQkgICAg KGdudXMtdXUtZW50ZXItaW50ZXJhY3RpdmUtZmlsZSAKCQkgICAgICIjIGVy cm9yIGR1cmluZyB1bnBhY2tpbmcgb2YiIHBhdGgpKQoJCShpZiBpZ25vcmUg KGRlbGV0ZS1maWxlIHBhdGgpKSkpKSkKICAgIGRpZC11bnBhY2spKQoKCjs7 IE1hbnVhbCBtYXJraW5nCgooZGVmdW4gZ251cy11dS1tYXJrLWJ5LXJlZ2V4 cCAoKQogICJBc2tzIGZvciBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBhbmQgbWFy a3MgYWxsIGFydGljbGVzIHRoYXQgbWF0Y2guIgogIChpbnRlcmFjdGl2ZSkK ICAobGV0IChleHApCiAgICAoc2V0cSBleHAgKHJlYWQtZnJvbS1taW5pYnVm ZmVyICJNYXJrIChyZWdleHApOiAiKSkKICAgIChzZXRxIGdudXMtbmV3c2dy b3VwLXByb2Nlc3NhYmxlIAoJICAobmNvbmMgZ251cy1uZXdzZ3JvdXAtcHJv Y2Vzc2FibGUKCQkgIChucmV2ZXJzZSAoZ251cy11dS1nZXQtbGlzdC1vZi1h cnRpY2xlcyBleHAgdCkpKSkKICAgIChtZXNzYWdlICIiKSkpCgooZGVmdW4g Z251cy11dS1tYXJrLXJlZ2lvbiAoYmVnIGVuZCkKICAiTWFya3MgYWxsIGFy dGljbGVzIGJldHdlZW4gcG9pbnQgYW5kIG1hcmsuIgogIChpbnRlcmFjdGl2 ZSAiciIpCiAgKGxldCAoKG1hcmstZXZlbi1pZi1pbmFjdGl2ZSB0KQoJKG9w b2ludCAwKQoJdG1wKQogICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgIChjb25k IAogICAgICAgKCg9IGJlZyBlbmQpCgkoZXJyb3IgIkVtcHR5IHJlZ2lvbi4i KSkKICAgICAgICh0CgkoaWYgKDwgZW5kIGJlZykKCSAgICAocHJvZ24gCgkg ICAgICAoc2V0cSB0bXAgYmVnKQoJICAgICAgKHNldHEgYmVnIGVuZCkKCSAg ICAgIChzZXRxIGVuZCB0bXApKSkKCShnb3RvLWNoYXIgYmVnKQoJKHdoaWxl IChhbmQgKDwgKHBvaW50KSBlbmQpCgkJICAgIChub3QgKD0gKHBvaW50KSBv cG9pbnQpKSkKCSAgKHNldHEgb3BvaW50IChwb2ludCkpCgkgIChnbnVzLXN1 bW1hcnktc2V0LXByb2Nlc3MtbWFyayAoZ251cy1zdW1tYXJ5LWFydGljbGUt bnVtYmVyKSkpKSkpKSkKICAgICAgCihkZWZ1biBnbnVzLXV1LW1hcmstdGhy ZWFkICgpCiAgIk1hcmtzIGFsbCBhcnRpY2xlcyBkb3dud2FyZHMgaW4gdGhp cyB0aHJlYWQuIgogIChpbnRlcmFjdGl2ZSkKICAoYmVnaW5uaW5nLW9mLWxp bmUpCiAgKGxldCAobGV2ZWwpCiAgICAoaWYgKG5vdCAoc2VhcmNoLWZvcndh cmQgIjoiIG5pbCB0KSkKCSgpCiAgICAgIChzZXRxIGxldmVsIChjdXJyZW50 LWNvbHVtbikpCiAgICAgIChnbnVzLXN1bW1hcnktc2V0LXByb2Nlc3MtbWFy ayAoZ251cy1zdW1tYXJ5LWFydGljbGUtbnVtYmVyKSkKICAgICAgKGdudXMt c3VtbWFyeS1zZWFyY2gtZm9yd2FyZCkKICAgICAgKHdoaWxlICg8IGxldmVs IChjdXJyZW50LWNvbHVtbikpCgkoZ251cy1zdW1tYXJ5LXNldC1wcm9jZXNz LW1hcmsgKGdudXMtc3VtbWFyeS1hcnRpY2xlLW51bWJlcikpCgkoZ251cy1z dW1tYXJ5LXNlYXJjaC1mb3J3YXJkKSkKICAgICAgKGdudXMtc3VtbWFyeS1z ZWFyY2gtYmFja3dhcmQpKSkpCgooZGVmdW4gZ251cy11dS1tYXJrZWQtdW5p dmVyc2FsLWFyZ3VtZW50ICgpCiAgIlBlcmZvcm0gYW55IG9wZXJhdGlvbiBv biBhbGwgbWFya2VkIGFydGljbGVzLgpJZiB5b3UgdHlwZSBgXFw8Z251cy1z dW1tYXJ5LW1vZGUtbWFwPlxcW2dudXMtdXUtZGVjb2RlLWFuZC12aWV3XScg YW5kIHRoZW4sIGZvciBpbnN0YW5jZSwgYHUnLCAKZ251cy11dSB3aWxsIHBl cmZvcm0gdGhlIG9wZXJhdGlvbiBib3VuZCB0byBgdScgb24gYWxsIAptYXJr ZWQgYXJ0aWNsZXMuIgogIChpbnRlcmFjdGl2ZSkKICAobGV0ICgoYXJ0aWNs ZXMgKHNldHEgZ251cy1uZXdzZ3JvdXAtcHJvY2Vzc2FibGUgCgkJCShucmV2 ZXJzZSBnbnVzLW5ld3Nncm91cC1wcm9jZXNzYWJsZSkpKQoJa2V5IGZ1bmMp CiAgICAoZ251cy1zdW1tYXJ5LXVubWFyay1hbGwtcHJvY2Vzc2FibGUpCiAg ICAoaWYgKG5vdCBhcnRpY2xlcykKCShlcnJvciAiTm8gYXJ0aWNsZXMgbWFy a2VkIikpCiAgICAoaWYgKG5vdCAoc2V0cSBmdW5jIChrZXktYmluZGluZyAo cmVhZC1rZXktc2VxdWVuY2UgIkMtYyBDLXYgQy11IikpKSkKCShlcnJvciAi VW5kZWZpbmVkIGtleSIpKQogICAgKHdoaWxlIGFydGljbGVzCiAgICAgIChn bnVzLXN1bW1hcnktZ290by1zdWJqZWN0IChjYXIgYXJ0aWNsZXMpKQogICAg ICAoY29tbWFuZC1leGVjdXRlIGZ1bmMpCiAgICAgIChzZXRxIGFydGljbGVz IChjZHIgYXJ0aWNsZXMpKSkpKQogIAphMTE0MyAxMAooZGVmdW4gZ251cy11 dS1zdHJpbmctaW4tbGlzdCAoc3RyaW5nIGxpc3QpCiAgKHdoaWxlIChhbmQg bGlzdAoJICAgICAgKG5vdCAoc3RyaW5nPSAoY2FyIGxpc3QpIHN0cmluZykp CgkgICAgICAoc2V0cSBsaXN0IChjZHIgbGlzdCkpKSkKICBsaXN0KQoKKGRl ZnVuIGdudXMtdXUtbmFtZS1mcm9tLXBhdGggKHBhdGgpCiAgKHN0cmluZy1t YXRjaCAiL1teL10qJCIgcGF0aCkKICAoc3Vic3RyaW5nIHBhdGggKDErICht YXRjaC1iZWdpbm5pbmcgMCkpKSkKCmQxMTUwIDEKYTExNTAgMQogICAgICAo aWYgKG5vdCAoc3RyaW5nLW1hdGNoICIvXFwuXFwuPyQiIGZpbGUpKQpkMTE1 MiAxCmExMTUyIDEKICAgIChzZXRxIG91dCAocmV2ZXJzZSBvdXQpKQpkMTIw MiAxCmExMjAyIDIKICAoc2V0cSBnbnVzLXV1LXdvcmstZGlyIChjb25jYXQg Z251cy11dS13b3JrLWRpciAiLyIpKQogIChzZXRxIGdudXMtdXUtaW50ZXJh Y3RpdmUtZmlsZS1saXN0IG5pbCkpCmQxMjA0IDEKYTEyMDQgMQo7IEtpbGxz IHRoZSB0ZW1wb3JhcnkgdXUgYnVmZmVycywga2lsbHMgYW55IHByb2Nlc3Nl cywgZXRjLgpkMTIxMSAxCmExMjExIDIKICAgIChhbmQgKG5vdCBnbnVzLXV1 LWFzeW5jaHJvbm91cykgCgkgKHNldHEgYnVmIChnZXQtYnVmZmVyIGdudXMt dXUtb3V0cHV0LWJ1ZmZlci1uYW1lKSkKZDEyMTQgMwphMTIxNiAzCjsgYGdu dXMtdXUtY2hlY2stZm9yLWdlbmVyYXRlZC1maWxlcycgZGVsZXRlcyBhbnkg Z2VuZXJhdGVkIGZpbGVzIHRoYXQKOyBoYXNuJ3QgYmVlbiBkZWxldGVkLCBp ZiwgZm9yIGluc3RhbmNlLCB0aGUgdXNlciB0ZXJtaW5hdGVkIGRlY29kaW5n Cjsgd2l0aCBgQy1nJy4KZDEyMzcgMgphMTIzOCAyCjsgQWRkIGEgZmlsZSAo b3IgYSBsaXN0IG9mIGZpbGVzKSB0byBiZSBjaGVja2VkIChhbmQgZGVsZXRl ZCBpZiBpdC90aGV5Cjsgc3RpbGwgZXhpc3RzIHVwb24gZXhpdGluZyB0aGUg bmV3c2dyb3VwKS4KZDEyNDYgMgphMTI0NyAyMQo7IEdvIHRvIHRoZSBuZXh0 IHVucmVhZCBzdWJqZWN0LiBJZiB0aGVyZSBpcyBubyBmdXJ0aGVyIHVucmVh ZAo7IHN1YmplY3RzLCBnbyB0byB0aGUgbGFzdCBzdWJqZWN0IGluIHRoZSBi dWZmZXIuCihkZWZ1biBnbnVzLXV1LXN1bW1hcnktbmV4dC1zdWJqZWN0ICgp CiAgKGxldCAob3BpKQogICAgKGlmIChub3QgKGdudXMtc3VtbWFyeS1zZWFy Y2gtZm9yd2FyZCB0KSkKCShwcm9nbgoJICAoZ290by1jaGFyIDEpCgkgIChz aXQtZm9yIDApCgkgIChnbnVzLXN1bW1hcnktZ290by1zdWJqZWN0IGdudXMt dXUtaGlnaGVzdC1hcnRpY2xlLW51bWJlcikpKQoKICAgIDsgWW91IG1heSB3 ZWxsIGZpbmQgYWxsIHRoaXMgYSBiaXQgcHV6emxpbmcgLSBzbyBkbyBJLCBi dXQgSSBzZWVtCiAgICA7IHRvIGhhdmUgdG8gZG8gc29tZXRoaW5nIGxpa2Ug dGhpcyB0byBtb3ZlIHRvIHRoZSBuZXh0IHVucmVhZCBhcnRpY2xlLAogICAg OyBhcyBgc2l0LWZvcicgc2VlbXMgdG8gZG8gc29tZSByYXRoZXIgc3RyYW5n ZSB0aGluZ3MgaGVyZS4gTWlnaHQKICAgIDsgYmUgYSBidWcgaW4gbXkgaGVh ZCwgcHJvYmFibHkuCiAgICAoc2V0cSBvcGkgKHBvaW50KSkKICAgIChzaXQt Zm9yIDApCiAgICAoZ290by1jaGFyIG9waSkKICAgIChnbnVzLXN1bW1hcnkt cmVjZW50ZXIpKSkKCjsgSW5wdXRzIGFuIGFjdGlvbiBhbmQgYSBmaWxlIGFu ZCByZXR1cm5zIGEgZnVsbCBjb21tYW5kLCBwdXR0aW5nCjsgdGlja3Mgcm91 bmQgdGhlIGZpbGUgbmFtZSBhbmQgZXNjYXBpbmcgYW55IHRpY2tzIGluIHRo ZSBmaWxlIG5hbWUuCmExMjYyIDE4NwooYWRkLWhvb2sgJ2dudXMtZXhpdC1n cm91cC1ob29rCiAgICAgICcobGFtYmRhICgpCgkgKGdudXMtdXUtY2xlYW4t dXApCgkgKGdudXMtdXUtY2hlY2stZm9yLWdlbmVyYXRlZC1maWxlcykpKQoK Cjs7IEludGVyYWN0aXZlIGV4ZWMgbW9kZQoKKGRlZnZhciBnbnVzLXV1LW91 dHB1dC13aW5kb3cgbmlsKQooZGVmdmFyIGdudXMtdXUtbW9kZS1ob29rIG5p bCkKCihkZWZ2YXIgZ251cy11dS1tb2RlLW1hcCBuaWwpCihpZiBnbnVzLXV1 LW1vZGUtbWFwCiAgICAoKQogIChzZXRxIGdudXMtdXUtbW9kZS1tYXAgKG1h a2Utc3BhcnNlLWtleW1hcCkpCiAgKGRlZmluZS1rZXkgZ251cy11dS1tb2Rl LW1hcCAiXEMtY1xDLXgiICdnbnVzLXV1LWludGVyYWN0aXZlLWV4ZWN1dGUp CiAgKGRlZmluZS1rZXkgZ251cy11dS1tb2RlLW1hcCAiXEMtY1xDLXYiICdn bnVzLXV1LWludGVyYWN0aXZlLWV4ZWN1dGUpCiAgKGRlZmluZS1rZXkgZ251 cy11dS1tb2RlLW1hcCAiXEMtbSIgJ2dudXMtdXUtaW50ZXJhY3RpdmUtZXhl Y3V0ZSkKICAoZGVmaW5lLWtleSBnbnVzLXV1LW1vZGUtbWFwICJcQy1jXEMt YyIgJ2dudXMtdXUtaW50ZXJhY3RpdmUtZW5kKQogIChkZWZpbmUta2V5IGdu dXMtdXUtbW9kZS1tYXAgIlxDLWNzIiAKICAgICdnbnVzLXV1LWludGVyYWN0 aXZlLXNhdmUtY3VycmVudC1maWxlKQogIChkZWZpbmUta2V5IGdudXMtdXUt bW9kZS1tYXAgIlxDLWNcQy1zIgogICAgJ2dudXMtdXUtaW50ZXJhY3RpdmUt c2F2ZS1jdXJyZW50LWZpbGUtc2lsZW50KQogIChkZWZpbmUta2V5IGdudXMt dXUtbW9kZS1tYXAgIlxDLWNcQy13IiAnZ251cy11dS1pbnRlcmFjdGl2ZS1z YXZlLWFsbC1maWxlcykKICAoZGVmaW5lLWtleSBnbnVzLXV1LW1vZGUtbWFw ICJcQy1jXEMtbyIgJ2dudXMtdXUtaW50ZXJhY3RpdmUtc2F2ZS1vcmlnaW5h bC1maWxlKQogIChkZWZpbmUta2V5IGdudXMtdXUtbW9kZS1tYXAgIlxDLWNc Qy1yIiAnZ251cy11dS1pbnRlcmFjdGl2ZS1yZXNjYW4tZGlyZWN0b3J5KQog IChkZWZpbmUta2V5IGdudXMtdXUtbW9kZS1tYXAgIlxDLWNyIiAnZ251cy11 dS1pbnRlcmFjdGl2ZS1zY2FuLWRpcmVjdG9yeSkKICApCgooZGVmdW4gZ251 cy11dS1pbnRlcmFjdGl2ZS1zZXQtdXAtd2luZG93cyAoKQogIChsZXQgKGlu dC1idWYgb3V0LWJ1ZiBoZWlnaHQpCiAgICAoZ251cy1jb25maWd1cmUtd2lu ZG93cyAnYXJ0aWNsZSkKICAgIChzZXQtYnVmZmVyIAogICAgIChzZXRxIGlu dC1idWYgKGdldC1idWZmZXItY3JlYXRlIGdudXMtdXUtaW50ZXJhY3RpdmUt YnVmZmVyLW5hbWUpKSkKICAgIChpZiAobm90IChnZXQtYnVmZmVyLXdpbmRv dyBpbnQtYnVmKSkKCShwcm9nbgoJICAoc2VsZWN0LXdpbmRvdyAoZ2V0LWJ1 ZmZlci13aW5kb3cgZ251cy1hcnRpY2xlLWJ1ZmZlcikpCgkgIChzd2l0Y2gt dG8tYnVmZmVyIGludC1idWYpKSkKICAgIChzZXRxIG91dC1idWYgKGdldC1i dWZmZXItY3JlYXRlIGdudXMtdXUtb3V0cHV0LWJ1ZmZlci1uYW1lKSkKICAg IChpZiAobm90IChnZXQtYnVmZmVyLXdpbmRvdyBvdXQtYnVmKSkKCShwcm9n bgoJICAoaWYgKD4gMiAoc2V0cSBoZWlnaHQgKC0gKHdpbmRvdy1oZWlnaHQp IAoJCQkJICAgZ251cy11dS1vdXRwdXQtd2luZG93LWhlaWdodCkpKQoJICAg ICAgKHNldHEgaGVpZ2h0ICgvICh3aW5kb3ctaGVpZ2h0KSAyKSkpCgkgIChp ZiAoPiBoZWlnaHQgMikKCSAgICAgIChwcm9nbgoJCShzZXRxIGdudXMtdXUt b3V0cHV0LXdpbmRvdyAoc3BsaXQtd2luZG93IG5pbCBoZWlnaHQpKQoJCShz ZXQtd2luZG93LWJ1ZmZlciBnbnVzLXV1LW91dHB1dC13aW5kb3cgb3V0LWJ1 ZikpKSkpKSkKCihkZWZ1biBnbnVzLXV1LWRvLWludGVyYWN0aXZlICgmb3B0 aW9uYWwgZG9udC1kby13aW5kb3dzKQogIChpZiAobm90IGdudXMtdXUtaW50 ZXJhY3RpdmUtZmlsZS1saXN0KSAKICAgICAgKGdudXMtdXUtZW50ZXItaW50 ZXJhY3RpdmUtZmlsZSAiIyIgIiIpKQogIChpZiAobm90IGRvbnQtZG8td2lu ZG93cykgKGdudXMtdXUtaW50ZXJhY3RpdmUtc2V0LXVwLXdpbmRvd3MpKQog IChzYXZlLWV4Y3Vyc2lvbiAKICAgIChzZXQtYnVmZmVyIChnZXQtYnVmZmVy LWNyZWF0ZSBnbnVzLXV1LW91dHB1dC1idWZmZXItbmFtZSkpIAogICAgKGVy YXNlLWJ1ZmZlcikpCiAgKHNldC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRl IGdudXMtdXUtaW50ZXJhY3RpdmUtYnVmZmVyLW5hbWUpKQogIChnb3RvLWNo YXIgMSkKICAoZm9yd2FyZC1saW5lIDMpCiAgKHJ1bi1ob29rcyAnZ251cy11 dS1tb2RlLWhvb2spKQoKKGRlZnVuIGdudXMtdXUtZW50ZXItaW50ZXJhY3Rp dmUtZmlsZSAoYWN0aW9uIGZpbGUpCiAgKGxldCAoY29tbWFuZCkKICAgIChz YXZlLWV4Y3Vyc2lvbgogICAgICAoc2V0LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1j cmVhdGUgZ251cy11dS1pbnRlcmFjdGl2ZS1idWZmZXItbmFtZSkpCiAgICAg IChpZiAobm90IGdudXMtdXUtaW50ZXJhY3RpdmUtZmlsZS1saXN0KQoJICAo cHJvZ24KCSAgICAoZXJhc2UtYnVmZmVyKQoJICAgIChnbnVzLXV1LW1vZGUp CgkgICAgKGluc2VydCAKCSAgICAgIiMgUHJlc3MgcmV0dXJuIHRvIGV4ZWN1 dGUgYSBjb21tYW5kLgojIFByZXNzIGBDLWMgQy1jJyB0byBleGl0IGludGVy YWN0aXZlIHZpZXcuCgoiKSkpICAgCiAgICAgIChzZXRxIGdudXMtdXUtaW50 ZXJhY3RpdmUtZmlsZS1saXN0CgkgICAgKGNvbnMgZmlsZSBnbnVzLXV1LWlu dGVyYWN0aXZlLWZpbGUtbGlzdCkpCjsgICAgICAoaWYgKHN0cmluZy1tYXRj aCAoY29uY2F0ICJeIiBnbnVzLXV1LXdvcmstZGlyKSBmaWxlKQo7CSAgKHNl dHEgZmlsZSAoc3Vic3RyaW5nIGZpbGUgKG1hdGNoLWVuZCAwKSkpKQogICAg ICAoc2V0cSBjb21tYW5kIChnbnVzLXV1LWNvbW1hbmQgYWN0aW9uIGZpbGUp KQogICAgICAoZ290by1jaGFyIChwb2ludC1tYXgpKQogICAgICAoaW5zZXJ0 IChmb3JtYXQgIiVzXG4iIGNvbW1hbmQpKSkpKQoKKGRlZnVuIGdudXMtdXUt aW50ZXJhY3RpdmUtZXhlY3V0ZSAoKQogICJFeGVjdXRlcyB0aGUgY29tbWFu ZCBvbiB0aGUgY3VycmVudCBsaW5lIGluIGludGVyYWN0aXZlIG1vZGUuIgog IChpbnRlcmFjdGl2ZSkKICAobGV0IChiZWcgb3V0LWJ1ZiBjb21tYW5kKQog ICAgKGJlZ2lubmluZy1vZi1saW5lKQogICAgKHNldHEgYmVnIChwb2ludCkp CiAgICAoZW5kLW9mLWxpbmUpCiAgICAoc2V0cSBjb21tYW5kIChidWZmZXIt c3Vic3RyaW5nIGJlZyAocG9pbnQpKSkKICAgIChzZXRxIG91dC1idWYgKGdl dC1idWZmZXItY3JlYXRlIGdudXMtdXUtb3V0cHV0LWJ1ZmZlci1uYW1lKSkK ICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAoc2V0LWJ1ZmZlciBvdXQtYnVm KQogICAgICAoZXJhc2UtYnVmZmVyKQogICAgICAoaW5zZXJ0IChmb3JtYXQg IiQgJXMgXG5cbiIgY29tbWFuZCkpKQogICAgKHNldHEgY29tbWFuZCAoZm9y bWF0ICJjZCAlcyA7ICVzIiBnbnVzLXV1LXdvcmstZGlyIGNvbW1hbmQpKQog ICAgKG1lc3NhZ2UgIkV4ZWN1dGluZy4uLiIpCiAgICAoaWYgZ251cy11dS1h c3luY2hyb25vdXMKCShzdGFydC1wcm9jZXNzICJnbnVzLXV1LXZpZXciIG91 dC1idWYgInNoIiAiLWMiIGNvbW1hbmQpCiAgICAgIChjYWxsLXByb2Nlc3Mg InNoIiBuaWwgb3V0LWJ1ZiBuaWwgIi1jIiBjb21tYW5kKQogICAgICAobWVz c2FnZSAiIikpCiAgICAoZW5kLW9mLWxpbmUpCiAgICAoaWYgKD0gKGZvcndh cmQtbGluZSAxKSAxKQoJKHByb2duCgkgIChlbmQtb2YtbGluZSkKCSAgKGlu c2VydCAiXG4iKSkpCiAgICAoYmVnaW5uaW5nLW9mLWxpbmUpKSkKCihkZWZ1 biBnbnVzLXV1LWludGVyYWN0aXZlLWVuZCAoKQogICJUaGlzIGZ1bmN0aW9u IGV4aXRzIGludGVyYWN0aXZlIHZpZXcgbW9kZSBhbmQgcmV0dXJucyB0byBz dW1tYXJ5IG1vZGUuIgogIChpbnRlcmFjdGl2ZSkKICAobGV0IChidWYpCiAg ICAoaWYgKHdpbmRvd3AgZ251cy11dS1vdXRwdXQtd2luZG93KSAoZGVsZXRl LXdpbmRvdyBnbnVzLXV1LW91dHB1dC13aW5kb3cpKQogICAgKGdudXMtY29u ZmlndXJlLXdpbmRvd3MgJ2FydGljbGUpCiAgICAoZ251cy11dS1jbGVhbi11 cCkKICAgIChpZiAobm90IGdudXMtdXUtYXN5bmNocm9ub3VzKSAoZ251cy11 dS1jaGVjay1mb3ItZ2VuZXJhdGVkLWZpbGVzKSkKICAgIChzZXRxIGJ1ZiAo Z2V0LWJ1ZmZlciBnbnVzLXV1LWludGVyYWN0aXZlLWJ1ZmZlci1uYW1lKSkK ICAgIChpZiBnbnVzLWFydGljbGUtYnVmZmVyIChzd2l0Y2gtdG8tYnVmZmVy IGdudXMtYXJ0aWNsZS1idWZmZXIpKQogICAgKGlmIGJ1ZiAoa2lsbC1idWZm ZXIgYnVmKSkKICAgIChwb3AtdG8tYnVmZmVyIGdudXMtc3VtbWFyeS1idWZm ZXIpKSkKCgooZGVmdW4gZ251cy11dS1pbnRlcmFjdGl2ZS1zY2FuLWRpcmVj dG9yeSAoZGlyKQogICJSZWFkIGFueSBkaXJlY3RvcnkgYW5kIHZpZXcgdGhl IGZpbGVzLgpXaGVuIHVzZWQgaW4gaW50ZXJhY3RpdmUgbW9kZSwgdGhlIGZp bGVzIGFuZCBjb21tYW5kcyB3aWxsIGJlIGRpc3BsYXllZCwKYXMgdXN1YWws IGluIHRoZSBpbnRlcmFjdGl2ZSBtb2RlIGJ1ZmZlci4iCiAgKGludGVyYWN0 aXZlICJERGlyZWN0b3J5OiAiKQogIChzZXRxIGdudXMtdXUtaW50ZXJhY3Rp dmUtZmlsZS1saXN0IG5pbCkKICAoZ251cy11dS12aWV3LWRpcmVjdG9yeSBk aXIgZ251cy11dS11c2UtaW50ZXJhY3RpdmUtdmlldykKICAoZ251cy11dS1k by1pbnRlcmFjdGl2ZSB0KSkKICAKKGRlZnVuIGdudXMtdXUtaW50ZXJhY3Rp dmUtcmVzY2FuLWRpcmVjdG9yeSAoKQogICJSZXJlYWQgdGhlIGRpcmVjdG9y eSBhbmQgdmlldyB0aGUgZmlsZXMuCldoZW4gdXNlZCBpbiBpbnRlcmFjdGl2 ZSBtb2RlLCB0aGUgZmlsZXMgYW5kIGNvbW1hbmRzIHdpbGwgYmUgZGlzcGxh eWVkLAphcyB1c3VhbCwgaW4gdGhlIGludGVyYWN0aXZlIG1vZGUgYnVmZmVy LiIKICAoaW50ZXJhY3RpdmUpCiAgKGdudXMtdXUtaW50ZXJhY3RpdmUtc2Nh bi1kaXJlY3RvcnkgZ251cy11dS13b3JrLWRpcikpCgooZGVmdW4gZ251cy11 dS1pbnRlcmFjdGl2ZS1zYXZlLW9yaWdpbmFsLWZpbGUgKCkKICAiU2F2ZXMg dGhlIGZpbGUgZnJvbSB3aGVuY2UgdGhlIGZpbGUgb24gdGhlIGN1cnJlbnQg bGluZSBjYW1lIGZyb20uIgogIChpbnRlcmFjdGl2ZSkKICAobGV0ICgoZmls ZXMgZ251cy11dS1saXN0LW9mLWZpbGVzLWRlY29kZWQpCgkoZmlsZXN0ciAi IikKCWZpbGUgZGlkIGRpcikKICAgICh3aGlsZSBmaWxlcwogICAgICAoc2V0 cSBmaWxlIChjYXIgZmlsZXMpKQogICAgICAoc2V0cSBmaWxlcyAoY2RyIGZp bGVzKSkKICAgICAgKGlmIChmaWxlLWV4aXN0cy1wIGZpbGUpCgkgIChwcm9n bgoJICAgIChpZiAobm90IGRpZCkKCQkocHJvZ24KCQkgIChzZXRxIGRpciAo Z251cy11dS1yZWFkLWRpcmVjdG9yeSAKCQkJICAgICAoZm9ybWF0ICJXaGVy ZSBkbyB5b3Ugd2FudCB0aGUgZmlsZSVzPyAiIAoJCQkJICAgICAoaWYgKD4g KGxlbmd0aCBmaWxlcykgMSkgInMiICIiKSkpKQoJCSAgKHNldHEgZGlkIHQp KSkKCSAgICAoc2V0cSBmaWxlc3RyIChjb25jYXQgZmlsZXN0ciAoZ251cy11 dS1uYW1lLWZyb20tcGF0aCBmaWxlKSAiICIpKQoJICAgIChnbnVzLXV1LXNh dmUtZmlsZSBmaWxlIGRpciB0KSkpCiAgICAgIChpZiBkaWQgCgkgIChtZXNz YWdlICJTYXZlZCAlcyIgZmlsZXN0cikKCShtZXNzYWdlICJBbHJlYWR5IHNh dmVkLiIpKSkpKQoKKGRlZnVuIGdudXMtdXUtaW50ZXJhY3RpdmUtc2F2ZS1j dXJyZW50LWZpbGUtc2lsZW50ICgpCiAgIlNhdmVzIHRoZSBmaWxlIHJlZmVy cmVkIHRvIG9uIHRoZSBjdXJyZW50IGxpbmUgaW4gdGhlIGN1cnJlbnQgZGly ZWN0b3J5LiIKICAoaW50ZXJhY3RpdmUpCiAgKGdudXMtdXUtaW50ZXJhY3Rp dmUtc2F2ZS1jdXJyZW50LWZpbGUgdCkpCgooZGVmdW4gZ251cy11dS1pbnRl cmFjdGl2ZS1zYXZlLWN1cnJlbnQtZmlsZSAoJm9wdGlvbmFsIGRvbnQtYXNr IHNpbGVudCkKICAiU2F2ZXMgdGhlIGZpbGUgcmVmZXJyZWQgdG8gb24gdGhl IGN1cnJlbnQgbGluZS4iCiAgKGludGVyYWN0aXZlKQogIChsZXQgKGZpbGVz IGJlZyBsaW5lIGZpbGUpCiAgICAoc2V0cSBmaWxlcyAoY29weS1zZXF1ZW5j ZSBnbnVzLXV1LWludGVyYWN0aXZlLWZpbGUtbGlzdCkpCiAgICAoYmVnaW5u aW5nLW9mLWxpbmUpCiAgICAoc2V0cSBiZWcgKHBvaW50KSkKICAgIChlbmQt b2YtbGluZSkKICAgIChzZXRxIGxpbmUgKGJ1ZmZlci1zdWJzdHJpbmcgYmVn IChwb2ludCkpKQogICAgKHdoaWxlIChhbmQgZmlsZXMKCQkobm90IChzdHJp bmctbWF0Y2ggCgkJICAgICAgKGNvbmNhdCAiIiAocmVnZXhwLXF1b3RlIChz ZXRxIGZpbGUgKGNhciBmaWxlcykpKSAiIikKCQkgICAgICBsaW5lKSkpCiAg ICAgIChzZXRxIGZpbGVzIChjZHIgZmlsZXMpKSkKICAgIChiZWdpbm5pbmct b2YtbGluZSkKICAgIChmb3J3YXJkLWxpbmUgMSkKICAgIChpZiAobm90IGZp bGVzKQoJKGlmIChub3Qgc2lsZW50KQoJICAgIChwcm9nbiAobWVzc2FnZSAi Q291bGQgbm90IGZpbmQgZmlsZSIpIChzaXQtZm9yIDIpKSkKICAgICAgKGdu dXMtdXUtc2F2ZS1maWxlIGZpbGUgKGlmIGRvbnQtYXNrIGdudXMtdXUtY3Vy cmVudC1zYXZlLWRpciBuaWwpIHNpbGVudCkKICAgICAgKGRlbGV0ZS1yZWdp b24gYmVnIChwb2ludCkpKSkpCmQxMjY0IDIKYTEyNjUgNDIKKGRlZnVuIGdu dXMtdXUtaW50ZXJhY3RpdmUtc2F2ZS1hbGwtZmlsZXMgKCkKICAiU2F2ZXMg YWxsIGZpbGVzIHJlZmVycmVkIHRvIGluIHRoZSBpbnRlcmFjdGl2ZSBidWZm ZXIuIgogIChpbnRlcmFjdGl2ZSkKICAobGV0IChkaXIpCiAgICAoZ290by1j aGFyIDEpCiAgICAoc2V0cSBkaXIgKGdudXMtdXUtcmVhZC1kaXJlY3Rvcnkg IldoZXJlIGRvIHlvdSB3YW50IHRoZSBmaWxlcz8gIikpCiAgICAod2hpbGUg KG5vdCAoZW9icCkpCiAgICAgIChnbnVzLXV1LWludGVyYWN0aXZlLXNhdmUt Y3VycmVudC1maWxlIHQgdCkpKSkKCihkZWZ1biBnbnVzLXV1LW1vZGUgKCkK ICAiTWFqb3IgbW9kZSBmb3IgZWRpdGluZyB2aWV3IGNvbW1hbmRzIGluIGdu dXMtdXUuCgpDb21tYW5kczoKXFw8Z251cy11dS1tb2RlLW1hcD5SZXR1cm4s IEMtYyBDLXYsIEMtYyBDLXggICAgICAgIEV4ZWN1dGUgdGhlIGN1cnJlbnQg Y29tbWFuZApcXFtnbnVzLXV1LWludGVyYWN0aXZlLWVuZF1cdEVuZCBpbnRl cmFjdGl2ZSBtb2RlClxcW2dudXMtdXUtaW50ZXJhY3RpdmUtc2F2ZS1jdXJy ZW50LWZpbGVdXHRTYXZlIHRoZSBjdXJyZW50IGZpbGUKXFxbZ251cy11dS1p bnRlcmFjdGl2ZS1zYXZlLWN1cnJlbnQtZmlsZS1zaWxlbnRdXHRTYXZlIHRo ZSBjdXJyZW50IGZpbGUgd2l0aG91dCBhc2tpbmcgClx0d2hlcmUgdG8gcHV0 IGl0ClxcW2dudXMtdXUtaW50ZXJhY3RpdmUtc2F2ZS1hbGwtZmlsZXNdXHRT YXZlIGFsbCBmaWxlcwpcXFtnbnVzLXV1LWludGVyYWN0aXZlLXNhdmUtb3Jp Z2luYWwtZmlsZV1cdFNhdmUgdGhlIG9yaWdpbmFsIGZpbGU6IElmIHRoZSBm aWxlcwpcdG9yaWdpbmF0ZWQgaW4gYW4gYXJjaGl2ZSwgdGhlIGFyY2hpdmUg Clx0ZmlsZSBpcyBzYXZlZC4KXFxbZ251cy11dS1pbnRlcmFjdGl2ZS1yZXNj YW4tZGlyZWN0b3J5XVx0UmVzY2FuIHRoZSBkaXJlY3RvcnkKXFxbZ251cy11 dS1pbnRlcmFjdGl2ZS1zY2FuLWRpcmVjdG9yeV1cdFNjYW4gYW55IGRpcmVj dG9yeQoiCiAgKGludGVyYWN0aXZlKQogIChraWxsLWFsbC1sb2NhbC12YXJp YWJsZXMpCiAgKHVzZS1sb2NhbC1tYXAgZ251cy11dS1tb2RlLW1hcCkgICAK ICAoc2V0cSBtb2RlLW5hbWUgImdudXMtdXUiKSAgICAgICAgIAogIChzZXRx IG1ham9yLW1vZGUgJ2dudXMtdXUtbW9kZSkgICAgCikKCiAgKGRlZmluZS1r ZXkgZ251cy11dS1tb2RlLW1hcCAiXEMtY1xDLXgiICdnbnVzLXV1LWludGVy YWN0aXZlLWV4ZWN1dGUpCiAgKGRlZmluZS1rZXkgZ251cy11dS1tb2RlLW1h cCAiXEMtY1xDLXYiICdnbnVzLXV1LWludGVyYWN0aXZlLWV4ZWN1dGUpCiAg KGRlZmluZS1rZXkgZ251cy11dS1tb2RlLW1hcCAiXEMtbSIgJ2dudXMtdXUt aW50ZXJhY3RpdmUtZXhlY3V0ZSkKICAoZGVmaW5lLWtleSBnbnVzLXV1LW1v ZGUtbWFwICJcQy1jXEMtYyIgJ2dudXMtdXUtaW50ZXJhY3RpdmUtZW5kKQog IChkZWZpbmUta2V5IGdudXMtdXUtbW9kZS1tYXAgIlxDLWNzIiAKICAgICdn bnVzLXV1LWludGVyYWN0aXZlLXNhdmUtY3VycmVudC1maWxlKQogIChkZWZp bmUta2V5IGdudXMtdXUtbW9kZS1tYXAgIlxDLWNcQy1zIgogICAgJ2dudXMt dXUtaW50ZXJhY3RpdmUtc2F2ZS1jdXJyZW50LWZpbGUtc2lsZW50KQogIChk ZWZpbmUta2V5IGdudXMtdXUtbW9kZS1tYXAgIlxDLWNcQy1hIiAnZ251cy11 dS1pbnRlcmFjdGl2ZS1zYXZlLWFsbC1maWxlcykKICAoZGVmaW5lLWtleSBn bnVzLXV1LW1vZGUtbWFwICJcQy1jXEMtbyIgJ2dudXMtdXUtaW50ZXJhY3Rp dmUtc2F2ZS1vcmlnaW5hbC1maWxlKQpkMTI3MyA0CmExMjc2IDQKOyBBbnkg ZnVuY3Rpb24gdGhhdCBpcyB0byBiZSB1c2VkIGFzIGFuZCBlbmNvZGluZyBt ZXRob2Qgd2lsbCB0YWtlIHR3bwo7IHBhcmFtZXRlcnM6IFBBVEgtTkFNRSBh bmQgRklMRS1OQU1FLiAoRS5nLiAiL2hvbWUvZ2FnYS9zcGlyYWwuanBnIgo7 IGFuZCAic3BpcmFsLmpwZyIsIHJlc3BlY3RpdmVseS4pIFRoZSBmdW5jdGlv biBzaG91bGQgcmV0dXJuIG5pbCBpZgo7IHRoZSBlbmNvZGluZyB3YXNuJ3Qg c3VjY2Vzc2Z1bC4KZDEzMTQgMTMKYTEzMjYgMTMKOyBUaGUgZm9sbG93aW5n IG1hcCBhbmQgbW9kZSB3YXMgdGFrZW4gZnJvbSBybmV3c3Bvc3QuZWwgYW5k IGVkaXRlZAo7IHNvbWV3aGF0LgooZGVmdmFyIGdudXMtdXUtcG9zdC1yZXBs eS1tb2RlLW1hcCAoKSAiTW9kZSBtYXAgdXNlZCBieSBnbnVzLXV1LXBvc3Qt cmVwbHkuIikKKG9yIGdudXMtdXUtcG9zdC1yZXBseS1tb2RlLW1hcAogICAg KHByb2duCiAgICAgIChzZXRxIGdudXMtdXUtcG9zdC1yZXBseS1tb2RlLW1h cCAobWFrZS1rZXltYXApKQogICAgICAoZGVmaW5lLWtleSBnbnVzLXV1LXBv c3QtcmVwbHktbW9kZS1tYXAgIlxDLWM/IiAnZGVzY3JpYmUtbW9kZSkKICAg ICAgKGRlZmluZS1rZXkgZ251cy11dS1wb3N0LXJlcGx5LW1vZGUtbWFwICJc Qy1jXEMtZlxDLWQiIAoJJ25ld3MtcmVwbHktZGlzdHJpYnV0aW9uKQogICAg ICAoZGVmaW5lLWtleSBnbnVzLXV1LXBvc3QtcmVwbHktbW9kZS1tYXAgIlxD LWNcQy1mXEMtayIgCgknbmV3cy1yZXBseS1rZXl3b3JkcykKICAgICAgKGRl ZmluZS1rZXkgZ251cy11dS1wb3N0LXJlcGx5LW1vZGUtbWFwICJcQy1jXEMt ZlxDLW4iIAoJJ25ld3MtcmVwbHktbmV3c2dyb3VwcykKZDEzMjggMTkKYTEz NDYgMTkKICAgICAgKGRlZmluZS1rZXkgZ251cy11dS1wb3N0LXJlcGx5LW1v ZGUtbWFwICJcQy1jXEMtZlxDLWYiIAoJJ25ld3MtcmVwbHktZm9sbG93dXAt dG8pCiAgICAgIChkZWZpbmUta2V5IGdudXMtdXUtcG9zdC1yZXBseS1tb2Rl LW1hcCAiXEMtY1xDLWZcQy1zIiAnbWFpbC1zdWJqZWN0KQogICAgICAoZGVm aW5lLWtleSBnbnVzLXV1LXBvc3QtcmVwbHktbW9kZS1tYXAgIlxDLWNcQy1m XEMtYSIgCgknZ251cy11dS1wb3N0LXJlcGx5LXN1bW1hcnkpCiAgICAgIChk ZWZpbmUta2V5IGdudXMtdXUtcG9zdC1yZXBseS1tb2RlLW1hcCAiXEMtY1xD LXIiIAoJJ25ld3MtY2Flc2FyLWJ1ZmZlci1ib2R5KQogICAgICAoZGVmaW5l LWtleSBnbnVzLXV1LXBvc3QtcmVwbHktbW9kZS1tYXAgIlxDLWNcQy13IiAn bmV3cy1yZXBseS1zaWduYXR1cmUpCiAgICAgIChkZWZpbmUta2V5IGdudXMt dXUtcG9zdC1yZXBseS1tb2RlLW1hcCAiXEMtY1xDLXkiIAoJJ25ld3MtcmVw bHkteWFuay1vcmlnaW5hbCkKICAgICAgKGRlZmluZS1rZXkgZ251cy11dS1w b3N0LXJlcGx5LW1vZGUtbWFwICJcQy1jXEMtcSIgCgknbWFpbC1maWxsLXlh bmtlZC1tZXNzYWdlKQogICAgICAoZGVmaW5lLWtleSBnbnVzLXV1LXBvc3Qt cmVwbHktbW9kZS1tYXAgIlxDLWNcQy1jIiAKCSdnbnVzLXV1LXBvc3QtbmV3 cy1pbmV3cykKICAgICAgKGRlZmluZS1rZXkgZ251cy11dS1wb3N0LXJlcGx5 LW1vZGUtbWFwICJcQy1jXEMtcyIgCgknZ251cy11dS1wb3N0LW5ld3MtaW5l d3MpCiAgICAgIChkZWZpbmUta2V5IGdudXMtdXUtcG9zdC1yZXBseS1tb2Rl LW1hcCAiXEMtY1xDLWkiIAoJJ2dudXMtdXUtcG9zdC1pbnNlcnQtYmluYXJ5 LWluLWFydGljbGUpCiAgICAgICkpCmQxMzQ4IDEKYTEzNDggMQo7IFRoaXMg bW9kZSB3YXMgdGFrZW4gZnJvbSBybmV3c3Bvc3QuZWwgYW5kIG1vZGlmaWVk IHNsaWdodGx5LgpkMTQ0NyAxCmExNDQ3IDEKOyBFbmNvZGVzIHdpdGggdXVl bmNvZGUgYW5kIHN1YnN0aXR1dGVzIGFsbCBzcGFjZXMgd2l0aCBiYWNrdGlj a3MuCmQxNDU3IDEKYTE0NTcgMQo7IEVuY29kZXMgd2l0aCB1dWVuY29kZSBh bmQgYWRkcyBNSU1FIGhlYWRlcnMuCmQxNDY0IDEKYTE0NjQgMQo7IEVuY29k ZXMgd2l0aCBiYXNlNjQgYW5kIGFkZHMgTUlNRSBoZWFkZXJzCmQxNDcxIDEK YTE0NzEgMQo7IEFkZHMgTUlNRSBoZWFkZXJzLgpkMTQ5MSAyCmExNDkyIDIK OyBFbmNvZGVzIGEgZmlsZSBQQVRIIHdpdGggQ09NTUFORCwgbGVhdmluZyB0 aGUgcmVzdWx0IGluIHRoZQo7IGN1cnJlbnQgYnVmZmVyLgpkMTUzNyAyCmEx NTM4IDIKOyBBc2tzIGZvciBhIGZpbGUgdG8gZW5jb2RlLCBlbmNvZGVzIGl0 IGFuZCBpbnNlcnRzIHRoZSByZXN1bHQgaW4KOyB0aGUgY3VycmVudCBidWZm ZXIuIFJldHVybnMgdGhlIGZpbGUgbmFtZSB0aGUgdXNlciBnYXZlLgpkMTU2 OCAxCmExNTY4IDEKOyBQb3N0cyB0aGUgYXJ0aWNsZSBhbmQgYWxsIG9mIHRo ZSBlbmNvZGVkIGZpbGUuCkAKCg== --=-=-=--