From mboxrd@z Thu Jan 1 00:00:00 1970 From: davidam@es.gnu.org (David Arroyo =?utf-8?Q?Men=C3=A9ndez?=) Subject: Re: org-version.inc missing Date: Tue, 13 Nov 2012 23:15:31 +0100 Message-ID: <87390ddu9o.fsf@es.gnu.org> References: <878va5fabi.fsf@bzg.ath.cx> <878va5dv0w.fsf@es.gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([208.118.235.92]:48313) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TYOlo-00067d-3e for emacs-orgmode@gnu.org; Tue, 13 Nov 2012 17:15:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TYOlk-0005sI-VD for emacs-orgmode@gnu.org; Tue, 13 Nov 2012 17:15:48 -0500 Received: from chapters.tetaneutral.net ([91.224.149.60]:52779 helo=chapters.gnu.org) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TYOlj-0005rS-Bp for emacs-orgmode@gnu.org; Tue, 13 Nov 2012 17:15:44 -0500 In-Reply-To: <878va5dv0w.fsf@es.gnu.org> ("David Arroyo =?utf-8?Q?Men?= =?utf-8?Q?=C3=A9ndez=22's?= message of "Tue, 13 Nov 2012 22:59:11 +0100") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Bastien Cc: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable davidam@es.gnu.org (David Arroyo Men=C3=A9ndez) writes: > Thanks! > > make pdf is ok! > It's ok to transform orgguide.texi to orgguide.pdf, but I would like translate orgguide to spanish and I need a little help more to check my translations in pdf and html. I'm attaching the files that I'm using to translate it. Thanks in advance. Regards. --=-=-= Content-Disposition: inline; filename=orgguide.pot # SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2012-11-12 16:27+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. type: title #: orgguide.texi:4 orgguide.texi:69 #, no-wrap msgid "The compact Org-mode Guide" msgstr "" #. type: include #: orgguide.texi:6 #, no-wrap msgid "org-version.inc" msgstr "" #. type: b{#1} #: orgguide.texi:30 orgguide.texi:33 #, no-wrap msgid "\\text\\" msgstr "" #. type: copying #: orgguide.texi:43 msgid "Copyright @copyright{} 2010-2012 Free Software Foundation" msgstr "" #. type: quotation #: orgguide.texi:51 msgid "" "Permission is granted to copy, distribute and/or modify this document under " "the terms of the GNU Free Documentation License, Version 1.3 or any later " "version published by the Free Software Foundation; with no Invariant " "Sections, with the Front-Cover texts being ``A GNU Manual,'' and with the " "Back-Cover Texts as in (a) below. A copy of the license is included in the " "section entitled ``GNU Free Documentation License.''" msgstr "" #. type: quotation #: orgguide.texi:55 msgid "" "(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and modify " "this GNU manual. Buying copies from the FSF supports it in developing GNU " "and promoting software freedom.''" msgstr "" #. type: quotation #: orgguide.texi:60 msgid "" "This document is part of a collection distributed under the GNU Free " "Documentation License. If you want to distribute this document separately " "from the collection, you can do so by adding a copy of the license to the " "document, as described in section 6 of the license." msgstr "" #. type: dircategory #: orgguide.texi:63 #, no-wrap msgid "Emacs" msgstr "" #. type: menuentry #: orgguide.texi:66 msgid "Org Mode Guide: (orgguide)" msgstr "" #. type: menuentry #: orgguide.texi:66 msgid "Abbreviated Org-mode Manual" msgstr "" #. type: subtitle #: orgguide.texi:71 #, no-wrap msgid "Release @value{VERSION}" msgstr "" #. type: author #: orgguide.texi:72 #, no-wrap msgid "by Carsten Dominik" msgstr "" #. type: node #: orgguide.texi:84 orgguide.texi:227 orgguide.texi:227 orgguide.texi:300 orgguide.texi:569 orgguide.texi:693 orgguide.texi:834 orgguide.texi:1100 orgguide.texi:1229 orgguide.texi:1290 orgguide.texi:1514 orgguide.texi:1681 orgguide.texi:2044 orgguide.texi:2281 orgguide.texi:2436 orgguide.texi:2483 orgguide.texi:2599 #, no-wrap msgid "Top" msgstr "" #. type: node #: orgguide.texi:84 orgguide.texi:106 orgguide.texi:111 orgguide.texi:227 orgguide.texi:228 orgguide.texi:237 orgguide.texi:237 orgguide.texi:250 orgguide.texi:274 orgguide.texi:293 orgguide.texi:300 #, no-wrap msgid "Introduction" msgstr "" #. type: node #: orgguide.texi:84 orgguide.texi:84 #, no-wrap msgid "(dir)" msgstr "" #. type: top #: orgguide.texi:85 #, no-wrap msgid "Org Mode Guide" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "Getting started" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:118 orgguide.texi:227 orgguide.texi:300 orgguide.texi:301 orgguide.texi:317 orgguide.texi:317 orgguide.texi:329 orgguide.texi:352 orgguide.texi:394 orgguide.texi:411 orgguide.texi:442 orgguide.texi:468 orgguide.texi:535 orgguide.texi:569 #, no-wrap msgid "Document Structure" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "A tree works like your brain" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:300 orgguide.texi:569 orgguide.texi:570 orgguide.texi:693 #, no-wrap msgid "Tables" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "Pure magic for quick formatting" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:129 orgguide.texi:569 orgguide.texi:693 orgguide.texi:694 orgguide.texi:707 orgguide.texi:707 orgguide.texi:724 orgguide.texi:736 orgguide.texi:780 orgguide.texi:814 orgguide.texi:834 #, no-wrap msgid "Hyperlinks" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "Notes in context" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:137 orgguide.texi:693 orgguide.texi:834 orgguide.texi:835 orgguide.texi:858 orgguide.texi:858 orgguide.texi:901 orgguide.texi:951 orgguide.texi:1013 orgguide.texi:1039 orgguide.texi:1059 orgguide.texi:1100 #, no-wrap msgid "TODO Items" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "Every tree branch can be a TODO item" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:151 orgguide.texi:834 orgguide.texi:1100 orgguide.texi:1101 orgguide.texi:1119 orgguide.texi:1119 orgguide.texi:1145 orgguide.texi:1196 orgguide.texi:1229 #, no-wrap msgid "Tags" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "Tagging headlines and matching sets of tags" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:106 orgguide.texi:1100 orgguide.texi:1229 orgguide.texi:1230 orgguide.texi:1290 #, no-wrap msgid "Properties" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:157 orgguide.texi:1229 orgguide.texi:1290 orgguide.texi:1291 orgguide.texi:1305 orgguide.texi:1305 orgguide.texi:1363 orgguide.texi:1399 orgguide.texi:1462 orgguide.texi:1514 #, no-wrap msgid "Dates and Times" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "Making items useful for planning" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:164 orgguide.texi:1290 orgguide.texi:1514 orgguide.texi:1515 orgguide.texi:1530 orgguide.texi:1530 orgguide.texi:1618 orgguide.texi:1643 orgguide.texi:1681 #, no-wrap msgid "Capture - Refile - Archive" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "The ins and outs for projects" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:176 orgguide.texi:1514 orgguide.texi:1681 orgguide.texi:1682 orgguide.texi:1706 orgguide.texi:1706 orgguide.texi:1724 orgguide.texi:1745 orgguide.texi:1884 orgguide.texi:1995 orgguide.texi:2044 #, no-wrap msgid "Agenda Views" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "Collecting information into views" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:1681 orgguide.texi:2044 orgguide.texi:2061 orgguide.texi:2061 orgguide.texi:2170 orgguide.texi:2203 orgguide.texi:2240 orgguide.texi:2256 orgguide.texi:2281 #, no-wrap msgid "Markup" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "Prepare text for rich export" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:209 orgguide.texi:2044 orgguide.texi:2281 orgguide.texi:2282 orgguide.texi:2300 orgguide.texi:2300 orgguide.texi:2329 orgguide.texi:2343 orgguide.texi:2359 orgguide.texi:2382 orgguide.texi:2403 orgguide.texi:2415 orgguide.texi:2436 #, no-wrap msgid "Exporting" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "Sharing and publishing of notes" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:2281 orgguide.texi:2436 orgguide.texi:2437 orgguide.texi:2483 #, no-wrap msgid "Publishing" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "Create a web site of linked Org files" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:2436 orgguide.texi:2483 orgguide.texi:2599 #, no-wrap msgid "Working With Source Code" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "Source code snippets embedded in Org" msgstr "" #. type: node #: orgguide.texi:106 orgguide.texi:219 orgguide.texi:2483 orgguide.texi:2599 orgguide.texi:2600 orgguide.texi:2608 orgguide.texi:2608 orgguide.texi:2618 orgguide.texi:2662 #, no-wrap msgid "Miscellaneous" msgstr "" #. type: menuentry #: orgguide.texi:106 msgid "All the rest which did not fit elsewhere" msgstr "" #. type: menuentry #: orgguide.texi:109 msgid "--- The Detailed Node Listing ---" msgstr "" #. type: node #: orgguide.texi:116 orgguide.texi:235 orgguide.texi:237 orgguide.texi:238 orgguide.texi:250 #, no-wrap msgid "Preface" msgstr "" #. type: menuentry #: orgguide.texi:116 orgguide.texi:235 msgid "Welcome" msgstr "" #. type: node #: orgguide.texi:116 orgguide.texi:235 orgguide.texi:237 orgguide.texi:250 orgguide.texi:251 orgguide.texi:274 #, no-wrap msgid "Installation" msgstr "" #. type: menuentry #: orgguide.texi:116 orgguide.texi:235 msgid "How to install a downloaded version of Org" msgstr "" #. type: node #: orgguide.texi:116 orgguide.texi:235 orgguide.texi:250 orgguide.texi:274 orgguide.texi:275 orgguide.texi:293 #, no-wrap msgid "Activation" msgstr "" #. type: menuentry #: orgguide.texi:116 orgguide.texi:235 msgid "How to activate Org for certain buffers" msgstr "" #. type: section #: orgguide.texi:116 orgguide.texi:235 orgguide.texi:274 orgguide.texi:293 orgguide.texi:294 #, no-wrap msgid "Feedback" msgstr "" #. type: menuentry #: orgguide.texi:116 orgguide.texi:235 msgid "Bug reports, ideas, patches etc." msgstr "" #. type: node #: orgguide.texi:127 orgguide.texi:315 orgguide.texi:317 orgguide.texi:318 orgguide.texi:329 #, no-wrap msgid "Outlines" msgstr "" #. type: menuentry #: orgguide.texi:127 orgguide.texi:315 msgid "Org is based on Outline mode" msgstr "" #. type: node #: orgguide.texi:127 orgguide.texi:315 orgguide.texi:317 orgguide.texi:329 orgguide.texi:330 orgguide.texi:352 #, no-wrap msgid "Headlines" msgstr "" #. type: menuentry #: orgguide.texi:127 orgguide.texi:315 msgid "How to typeset Org tree headlines" msgstr "" #. type: node #: orgguide.texi:127 orgguide.texi:315 orgguide.texi:329 orgguide.texi:352 orgguide.texi:353 orgguide.texi:394 #, no-wrap msgid "Visibility cycling" msgstr "" #. type: menuentry #: orgguide.texi:127 orgguide.texi:315 msgid "Show and hide, much simplified" msgstr "" #. type: node #: orgguide.texi:127 orgguide.texi:315 orgguide.texi:352 orgguide.texi:394 orgguide.texi:395 orgguide.texi:411 #, no-wrap msgid "Motion" msgstr "" #. type: menuentry #: orgguide.texi:127 orgguide.texi:315 msgid "Jumping to other headlines" msgstr "" #. type: node #: orgguide.texi:127 orgguide.texi:315 orgguide.texi:394 orgguide.texi:411 orgguide.texi:412 orgguide.texi:442 #, no-wrap msgid "Structure editing" msgstr "" #. type: menuentry #: orgguide.texi:127 orgguide.texi:315 msgid "Changing sequence and level of headlines" msgstr "" #. type: node #: orgguide.texi:127 orgguide.texi:315 orgguide.texi:411 orgguide.texi:442 orgguide.texi:443 orgguide.texi:468 #, no-wrap msgid "Sparse trees" msgstr "" #. type: menuentry #: orgguide.texi:127 orgguide.texi:315 msgid "Matches embedded in context" msgstr "" #. type: node #: orgguide.texi:127 orgguide.texi:315 orgguide.texi:442 orgguide.texi:468 orgguide.texi:469 orgguide.texi:535 #, no-wrap msgid "Plain lists" msgstr "" #. type: menuentry #: orgguide.texi:127 orgguide.texi:315 msgid "Additional structure within an entry" msgstr "" #. type: section #: orgguide.texi:127 orgguide.texi:315 orgguide.texi:468 orgguide.texi:535 orgguide.texi:536 #, no-wrap msgid "Footnotes" msgstr "" #. type: menuentry #: orgguide.texi:127 orgguide.texi:315 msgid "How footnotes are defined in Org's syntax" msgstr "" #. type: node #: orgguide.texi:135 orgguide.texi:705 orgguide.texi:707 orgguide.texi:708 orgguide.texi:724 #, no-wrap msgid "Link format" msgstr "" #. type: menuentry #: orgguide.texi:135 orgguide.texi:705 msgid "How links in Org are formatted" msgstr "" #. type: node #: orgguide.texi:135 orgguide.texi:705 orgguide.texi:707 orgguide.texi:724 orgguide.texi:725 orgguide.texi:736 #, no-wrap msgid "Internal links" msgstr "" #. type: menuentry #: orgguide.texi:135 orgguide.texi:705 msgid "Links to other places in the current file" msgstr "" #. type: node #: orgguide.texi:135 orgguide.texi:705 orgguide.texi:724 orgguide.texi:736 orgguide.texi:737 orgguide.texi:780 #, no-wrap msgid "External links" msgstr "" #. type: menuentry #: orgguide.texi:135 orgguide.texi:705 msgid "URL-like links to the world" msgstr "" #. type: node #: orgguide.texi:135 orgguide.texi:705 orgguide.texi:736 orgguide.texi:780 orgguide.texi:781 orgguide.texi:814 #, no-wrap msgid "Handling links" msgstr "" #. type: menuentry #: orgguide.texi:135 orgguide.texi:705 msgid "Creating, inserting and following" msgstr "" #. type: section #: orgguide.texi:135 orgguide.texi:705 orgguide.texi:780 orgguide.texi:814 orgguide.texi:815 #, no-wrap msgid "Targeted links" msgstr "" #. type: menuentry #: orgguide.texi:135 orgguide.texi:705 msgid "Point at a location in a file" msgstr "" #. type: node #: orgguide.texi:144 orgguide.texi:856 orgguide.texi:858 orgguide.texi:859 orgguide.texi:901 #, no-wrap msgid "Using TODO states" msgstr "" #. type: menuentry #: orgguide.texi:144 orgguide.texi:856 msgid "Setting and switching states" msgstr "" #. type: node #: orgguide.texi:144 orgguide.texi:856 orgguide.texi:858 orgguide.texi:901 orgguide.texi:902 orgguide.texi:951 #, no-wrap msgid "Multi-state workflows" msgstr "" #. type: menuentry #: orgguide.texi:144 orgguide.texi:856 msgid "More than just on/off" msgstr "" #. type: node #: orgguide.texi:144 orgguide.texi:146 orgguide.texi:856 orgguide.texi:901 orgguide.texi:951 orgguide.texi:952 orgguide.texi:966 orgguide.texi:966 orgguide.texi:992 orgguide.texi:1013 #, no-wrap msgid "Progress logging" msgstr "" #. type: menuentry #: orgguide.texi:144 orgguide.texi:856 msgid "Dates and notes for progress" msgstr "" #. type: node #: orgguide.texi:144 orgguide.texi:856 orgguide.texi:951 orgguide.texi:1013 orgguide.texi:1014 orgguide.texi:1039 #, no-wrap msgid "Priorities" msgstr "" #. type: menuentry #: orgguide.texi:144 orgguide.texi:856 msgid "Some things are more important than others" msgstr "" #. type: node #: orgguide.texi:144 orgguide.texi:856 orgguide.texi:1013 orgguide.texi:1039 orgguide.texi:1059 #, no-wrap msgid "Breaking down tasks" msgstr "" #. type: menuentry #: orgguide.texi:144 orgguide.texi:856 msgid "Splitting a task into manageable pieces" msgstr "" #. type: section #: orgguide.texi:144 orgguide.texi:856 orgguide.texi:1039 orgguide.texi:1059 orgguide.texi:1060 #, no-wrap msgid "Checkboxes" msgstr "" #. type: menuentry #: orgguide.texi:144 orgguide.texi:856 msgid "Tick-off lists" msgstr "" #. type: node #: orgguide.texi:149 orgguide.texi:964 orgguide.texi:966 orgguide.texi:967 orgguide.texi:992 #, no-wrap msgid "Closing items" msgstr "" #. type: menuentry #: orgguide.texi:149 orgguide.texi:964 msgid "When was this entry marked DONE?" msgstr "" #. type: unnumberedsubsec #: orgguide.texi:149 orgguide.texi:964 orgguide.texi:966 orgguide.texi:992 orgguide.texi:993 #, no-wrap msgid "Tracking TODO state changes" msgstr "" #. type: menuentry #: orgguide.texi:149 orgguide.texi:964 msgid "When did the status change?" msgstr "" #. type: node #: orgguide.texi:155 orgguide.texi:1117 orgguide.texi:1119 orgguide.texi:1120 orgguide.texi:1145 #, no-wrap msgid "Tag inheritance" msgstr "" #. type: menuentry #: orgguide.texi:155 orgguide.texi:1117 msgid "Tags use the tree structure of the outline" msgstr "" #. type: node #: orgguide.texi:155 orgguide.texi:1117 orgguide.texi:1119 orgguide.texi:1145 orgguide.texi:1146 orgguide.texi:1196 #, no-wrap msgid "Setting tags" msgstr "" #. type: menuentry #: orgguide.texi:155 orgguide.texi:1117 msgid "How to assign tags to a headline" msgstr "" #. type: section #: orgguide.texi:155 orgguide.texi:1117 orgguide.texi:1145 orgguide.texi:1196 orgguide.texi:1197 #, no-wrap msgid "Tag searches" msgstr "" #. type: menuentry #: orgguide.texi:155 orgguide.texi:1117 msgid "Searching for combinations of tags" msgstr "" #. type: node #: orgguide.texi:162 orgguide.texi:1302 orgguide.texi:1305 orgguide.texi:1306 orgguide.texi:1363 #, no-wrap msgid "Timestamps" msgstr "" #. type: menuentry #: orgguide.texi:162 orgguide.texi:1302 msgid "Assigning a time to a tree entry" msgstr "" #. type: node #: orgguide.texi:162 orgguide.texi:1302 orgguide.texi:1305 orgguide.texi:1363 orgguide.texi:1364 orgguide.texi:1399 #, no-wrap msgid "Creating timestamps" msgstr "" #. type: menuentry #: orgguide.texi:162 orgguide.texi:1302 msgid "Commands which insert timestamps" msgstr "" #. type: node #: orgguide.texi:162 orgguide.texi:1302 orgguide.texi:1363 orgguide.texi:1399 orgguide.texi:1400 orgguide.texi:1462 #, no-wrap msgid "Deadlines and scheduling" msgstr "" #. type: menuentry #: orgguide.texi:162 orgguide.texi:1302 msgid "Planning your work" msgstr "" #. type: section #: orgguide.texi:162 orgguide.texi:1302 orgguide.texi:1399 orgguide.texi:1462 orgguide.texi:1463 #, no-wrap msgid "Clocking work time" msgstr "" #. type: menuentry #: orgguide.texi:162 orgguide.texi:1302 msgid "Tracking how long you spend on a task" msgstr "" #. type: node #: orgguide.texi:168 orgguide.texi:170 orgguide.texi:1528 orgguide.texi:1530 orgguide.texi:1531 orgguide.texi:1544 orgguide.texi:1544 orgguide.texi:1558 orgguide.texi:1575 orgguide.texi:1618 #, no-wrap msgid "Capture" msgstr "" #. type: node #: orgguide.texi:168 orgguide.texi:1528 orgguide.texi:1530 orgguide.texi:1618 orgguide.texi:1619 orgguide.texi:1643 #, no-wrap msgid "Refile and copy" msgstr "" #. type: menuentry #: orgguide.texi:168 orgguide.texi:1528 msgid "Moving a tree from one place to another" msgstr "" #. type: section #: orgguide.texi:168 orgguide.texi:1528 orgguide.texi:1618 orgguide.texi:1643 orgguide.texi:1644 #, no-wrap msgid "Archiving" msgstr "" #. type: menuentry #: orgguide.texi:168 orgguide.texi:1528 msgid "What to do with finished projects" msgstr "" #. type: node #: orgguide.texi:174 orgguide.texi:1542 orgguide.texi:1544 orgguide.texi:1545 orgguide.texi:1558 #, no-wrap msgid "Setting up a capture location" msgstr "" #. type: menuentry #: orgguide.texi:174 orgguide.texi:1542 msgid "Where notes will be stored" msgstr "" #. type: node #: orgguide.texi:174 orgguide.texi:1542 orgguide.texi:1544 orgguide.texi:1558 orgguide.texi:1559 orgguide.texi:1575 #, no-wrap msgid "Using capture" msgstr "" #. type: menuentry #: orgguide.texi:174 orgguide.texi:1542 msgid "Commands to invoke and terminate capture" msgstr "" #. type: unnumberedsubsec #: orgguide.texi:174 orgguide.texi:1542 orgguide.texi:1558 orgguide.texi:1575 orgguide.texi:1576 #, no-wrap msgid "Capture templates" msgstr "" #. type: menuentry #: orgguide.texi:174 orgguide.texi:1542 msgid "Define the outline of different note types" msgstr "" #. type: node #: orgguide.texi:182 orgguide.texi:1704 orgguide.texi:1706 orgguide.texi:1707 orgguide.texi:1724 #, no-wrap msgid "Agenda files" msgstr "" #. type: menuentry #: orgguide.texi:182 orgguide.texi:1704 msgid "Files being searched for agenda information" msgstr "" #. type: node #: orgguide.texi:182 orgguide.texi:1704 orgguide.texi:1706 orgguide.texi:1724 orgguide.texi:1745 #, no-wrap msgid "Agenda dispatcher" msgstr "" #. type: menuentry #: orgguide.texi:182 orgguide.texi:1704 msgid "Keyboard access to agenda views" msgstr "" #. type: node #: orgguide.texi:182 orgguide.texi:1704 orgguide.texi:1724 orgguide.texi:1745 orgguide.texi:1756 orgguide.texi:1756 orgguide.texi:1785 orgguide.texi:1801 orgguide.texi:1847 orgguide.texi:1861 orgguide.texi:1884 #, no-wrap msgid "Built-in agenda views" msgstr "" #. type: menuentry #: orgguide.texi:182 orgguide.texi:1704 msgid "What is available out of the box?" msgstr "" #. type: node #: orgguide.texi:182 orgguide.texi:1704 orgguide.texi:1745 orgguide.texi:1884 orgguide.texi:1995 #, no-wrap msgid "Agenda commands" msgstr "" #. type: menuentry #: orgguide.texi:182 orgguide.texi:1704 msgid "Remote editing of Org trees" msgstr "" #. type: section #: orgguide.texi:182 orgguide.texi:1704 orgguide.texi:1884 orgguide.texi:1995 orgguide.texi:1996 #, no-wrap msgid "Custom agenda views" msgstr "" #. type: menuentry #: orgguide.texi:182 orgguide.texi:1704 msgid "Defining special searches and views" msgstr "" #. type: section #: orgguide.texi:184 orgguide.texi:1746 #, no-wrap msgid "The built-in agenda views" msgstr "" #. type: node #: orgguide.texi:190 orgguide.texi:1754 orgguide.texi:1756 orgguide.texi:1785 #, no-wrap msgid "Weekly/daily agenda" msgstr "" #. type: menuentry #: orgguide.texi:190 orgguide.texi:1754 msgid "The calendar page with current tasks" msgstr "" #. type: node #: orgguide.texi:190 orgguide.texi:1754 orgguide.texi:1756 orgguide.texi:1785 orgguide.texi:1801 #, no-wrap msgid "Global TODO list" msgstr "" #. type: menuentry #: orgguide.texi:190 orgguide.texi:1754 msgid "All unfinished action items" msgstr "" #. type: node #: orgguide.texi:190 orgguide.texi:1754 orgguide.texi:1785 orgguide.texi:1801 orgguide.texi:1802 orgguide.texi:1847 #, no-wrap msgid "Matching tags and properties" msgstr "" #. type: menuentry #: orgguide.texi:190 orgguide.texi:1754 msgid "Structured information with fine-tuned search" msgstr "" #. type: node #: orgguide.texi:190 orgguide.texi:1754 orgguide.texi:1801 orgguide.texi:1847 orgguide.texi:1861 #, no-wrap msgid "Timeline" msgstr "" #. type: menuentry #: orgguide.texi:190 orgguide.texi:1754 msgid "Time-sorted view for single file" msgstr "" #. type: subsection #: orgguide.texi:190 orgguide.texi:1754 orgguide.texi:1847 orgguide.texi:1861 orgguide.texi:1862 #, no-wrap msgid "Search view" msgstr "" #. type: menuentry #: orgguide.texi:190 orgguide.texi:1754 msgid "Find entries by searching for text" msgstr "" #. type: chapter #: orgguide.texi:192 orgguide.texi:2045 #, no-wrap msgid "Markup for rich export" msgstr "" #. type: node #: orgguide.texi:198 orgguide.texi:200 orgguide.texi:2059 orgguide.texi:2061 orgguide.texi:2062 orgguide.texi:2073 orgguide.texi:2073 orgguide.texi:2083 orgguide.texi:2098 orgguide.texi:2109 orgguide.texi:2147 orgguide.texi:2156 orgguide.texi:2170 #, no-wrap msgid "Structural markup elements" msgstr "" #. type: menuentry #: orgguide.texi:198 orgguide.texi:2059 msgid "The basic structure as seen by the exporter" msgstr "" #. type: node #: orgguide.texi:198 orgguide.texi:2059 orgguide.texi:2061 orgguide.texi:2170 orgguide.texi:2203 #, no-wrap msgid "Images and tables" msgstr "" #. type: menuentry #: orgguide.texi:198 orgguide.texi:2059 msgid "Tables and Images will be included" msgstr "" #. type: node #: orgguide.texi:198 orgguide.texi:2059 orgguide.texi:2170 orgguide.texi:2203 orgguide.texi:2204 orgguide.texi:2240 #, no-wrap msgid "Literal examples" msgstr "" #. type: menuentry #: orgguide.texi:198 orgguide.texi:2059 msgid "Source code examples with special formatting" msgstr "" #. type: node #: orgguide.texi:198 orgguide.texi:2059 orgguide.texi:2203 orgguide.texi:2240 orgguide.texi:2241 orgguide.texi:2256 #, no-wrap msgid "Include files" msgstr "" #. type: menuentry #: orgguide.texi:198 orgguide.texi:2059 msgid "Include additional files into a document" msgstr "" #. type: section #: orgguide.texi:198 orgguide.texi:2059 orgguide.texi:2240 orgguide.texi:2256 orgguide.texi:2257 #, no-wrap msgid "Embedded @LaTeX{}" msgstr "" #. type: menuentry #: orgguide.texi:198 orgguide.texi:2059 msgid "@LaTeX{} can be freely used inside Org documents" msgstr "" #. type: node #: orgguide.texi:207 orgguide.texi:2071 orgguide.texi:2073 orgguide.texi:2074 orgguide.texi:2083 #, no-wrap msgid "Document title" msgstr "" #. type: menuentry #: orgguide.texi:207 orgguide.texi:2071 msgid "Where the title is taken from" msgstr "" #. type: node #: orgguide.texi:207 orgguide.texi:2071 orgguide.texi:2073 orgguide.texi:2083 orgguide.texi:2084 orgguide.texi:2098 #, no-wrap msgid "Headings and sections" msgstr "" #. type: menuentry #: orgguide.texi:207 orgguide.texi:2071 msgid "The document structure as seen by the exporter" msgstr "" #. type: node #: orgguide.texi:207 orgguide.texi:2071 orgguide.texi:2083 orgguide.texi:2098 orgguide.texi:2099 orgguide.texi:2109 #, no-wrap msgid "Table of contents" msgstr "" #. type: menuentry #: orgguide.texi:207 orgguide.texi:2071 msgid "The if and where of the table of contents" msgstr "" #. type: node #: orgguide.texi:207 orgguide.texi:207 orgguide.texi:2071 orgguide.texi:2071 orgguide.texi:2098 orgguide.texi:2109 orgguide.texi:2147 #, no-wrap msgid "Paragraphs" msgstr "" #. type: node #: orgguide.texi:207 orgguide.texi:2071 orgguide.texi:2109 orgguide.texi:2147 orgguide.texi:2148 orgguide.texi:2156 #, no-wrap msgid "Emphasis and monospace" msgstr "" #. type: menuentry #: orgguide.texi:207 orgguide.texi:2071 msgid "Bold, italic, etc." msgstr "" #. type: subheading #: orgguide.texi:207 orgguide.texi:2071 orgguide.texi:2147 orgguide.texi:2156 orgguide.texi:2157 #, no-wrap msgid "Comment lines" msgstr "" #. type: menuentry #: orgguide.texi:207 orgguide.texi:2071 msgid "What will *not* be exported" msgstr "" #. type: node #: orgguide.texi:217 orgguide.texi:2298 orgguide.texi:2300 orgguide.texi:2301 orgguide.texi:2329 #, no-wrap msgid "Export options" msgstr "" #. type: menuentry #: orgguide.texi:217 orgguide.texi:2298 msgid "Per-file export settings" msgstr "" #. type: node #: orgguide.texi:217 orgguide.texi:2298 orgguide.texi:2300 orgguide.texi:2329 orgguide.texi:2330 orgguide.texi:2343 #, no-wrap msgid "The export dispatcher" msgstr "" #. type: menuentry #: orgguide.texi:217 orgguide.texi:2298 msgid "How to access exporter commands" msgstr "" #. type: node #: orgguide.texi:217 orgguide.texi:2298 orgguide.texi:2329 orgguide.texi:2343 orgguide.texi:2344 orgguide.texi:2359 #, no-wrap msgid "ASCII/Latin-1/UTF-8 export" msgstr "" #. type: menuentry #: orgguide.texi:217 orgguide.texi:2298 msgid "Exporting to flat files with encoding" msgstr "" #. type: node #: orgguide.texi:217 orgguide.texi:2298 orgguide.texi:2343 orgguide.texi:2359 orgguide.texi:2360 orgguide.texi:2382 #, no-wrap msgid "HTML export" msgstr "" #. type: menuentry #: orgguide.texi:217 orgguide.texi:2298 msgid "Exporting to HTML" msgstr "" #. type: node #: orgguide.texi:217 orgguide.texi:2298 orgguide.texi:2359 orgguide.texi:2382 orgguide.texi:2383 orgguide.texi:2403 #, no-wrap msgid "@LaTeX{} and PDF export" msgstr "" #. type: menuentry #: orgguide.texi:217 orgguide.texi:2298 msgid "Exporting to @LaTeX{}, and processing to PDF" msgstr "" #. type: node #: orgguide.texi:217 orgguide.texi:2298 orgguide.texi:2382 orgguide.texi:2403 orgguide.texi:2404 orgguide.texi:2415 #, no-wrap msgid "DocBook export" msgstr "" #. type: menuentry #: orgguide.texi:217 orgguide.texi:2298 msgid "Exporting to DocBook" msgstr "" #. type: section #: orgguide.texi:217 orgguide.texi:2298 orgguide.texi:2403 orgguide.texi:2415 orgguide.texi:2416 #, no-wrap msgid "iCalendar export" msgstr "" #. type: node #: orgguide.texi:223 orgguide.texi:2606 orgguide.texi:2608 orgguide.texi:2609 orgguide.texi:2618 #, no-wrap msgid "Completion" msgstr "" #. type: menuentry #: orgguide.texi:223 orgguide.texi:2606 msgid "M-TAB knows what you need" msgstr "" #. type: node #: orgguide.texi:223 orgguide.texi:2606 orgguide.texi:2608 orgguide.texi:2618 orgguide.texi:2662 #, no-wrap msgid "Clean view" msgstr "" #. type: menuentry #: orgguide.texi:223 orgguide.texi:2606 msgid "Getting rid of leading stars in the outline" msgstr "" #. type: section #: orgguide.texi:223 orgguide.texi:2606 orgguide.texi:2618 orgguide.texi:2662 orgguide.texi:2663 #, no-wrap msgid "MobileOrg" msgstr "" #. type: menuentry #: orgguide.texi:223 orgguide.texi:2606 msgid "Org-mode on the iPhone" msgstr "" #. type: Plain text #: orgguide.texi:243 msgid "" "Org is a mode for keeping notes, maintaining TODO lists, and doing project " "planning with a fast and effective plain-text system. It is also an " "authoring and publishing system." msgstr "" #. type: i{#1} #: orgguide.texi:249 msgid "" "This document is a much compressed derivative of the " "@uref{http://orgmode.org/index.html#sec-4_1, comprehensive Org-mode " "manual}. It contains all basic features and commands, along with important " "hints for customization. It is intended for beginners who would shy back " "from a 200 page manual because of sheer size." msgstr "" #. type: Plain text #: orgguide.texi:256 msgid "" "@b{Important:} @i{If you are using a version of Org that is part of the " "Emacs distribution or an XEmacs package, please skip this section and go " "directly to @ref{Activation}.}" msgstr "" #. type: Plain text #: orgguide.texi:261 msgid "" "If you have downloaded Org from the Web, either as a distribution " "@file{.zip} or @file{.tar} file, or as a Git archive, it is best to run it " "directly from the distribution directory. You need to add the @file{lisp} " "subdirectories to the Emacs load path. To do this, add the following line " "to @file{.emacs}:" msgstr "" #. type: smallexample #: orgguide.texi:265 #, no-wrap msgid "" "(setq load-path (cons \"~/path/to/orgdir/lisp\" load-path))\n" "(setq load-path (cons \"~/path/to/orgdir/contrib/lisp\" load-path))\n" msgstr "" #. type: Plain text #: orgguide.texi:269 msgid "command:" msgstr "" #. type: smallexample #: orgguide.texi:272 #, no-wrap msgid "make\n" msgstr "" #. type: Plain text #: orgguide.texi:280 msgid "" "Add the following lines to your @file{.emacs} file. The last three lines " "define @emph{global} keys for some commands --- please choose suitable keys " "yourself." msgstr "" #. type: smalllisp #: orgguide.texi:288 #, no-wrap msgid "" ";; The following lines are always needed. Choose your own keys.\n" "(add-to-list 'auto-mode-alist '(\"\\\\.org\\\\'\" . org-mode)) ; not needed " "since Emacs 22.2\n" "(add-hook 'org-mode-hook 'turn-on-font-lock) ; not needed when " "global-font-lock-mode is on\n" "(global-set-key \"\\C-cl\" 'org-store-link)\n" "(global-set-key \"\\C-ca\" 'org-agenda)\n" "(global-set-key \"\\C-cb\" 'org-iswitchb)\n" msgstr "" #. type: Plain text #: orgguide.texi:292 msgid "" "With this setup, all files with extension @samp{.org} will be put into Org " "mode." msgstr "" #. type: Plain text #: orgguide.texi:299 msgid "" "If you find problems with Org, or if you have questions, remarks, or ideas " "about it, please mail to the Org mailing list " "@email{emacs-orgmode@@gnu.org}. For information on how to submit bug " "reports, see the main manual." msgstr "" #. type: Plain text #: orgguide.texi:305 msgid "" "Org is based on Outline mode and provides flexible commands to edit the " "structure of the document." msgstr "" #. type: Plain text #: orgguide.texi:328 msgid "" "Org is implemented on top of Outline mode. Outlines allow a document to be " "organized in a hierarchical structure, which (at least for me) is the best " "representation of notes and thoughts. An overview of this structure is " "achieved by folding (hiding) large parts of the document to show only the " "general document structure and the parts currently being worked on. Org " "greatly simplifies the use of outlines by compressing the entire show/hide " "functionality into a single command, @command{org-cycle}, which is bound to " "the @key{TAB} key." msgstr "" #. type: Plain text #: orgguide.texi:336 msgid "" "Headlines define the structure of an outline tree. The headlines in Org " "start with one or more stars, on the left margin@footnote{See the variable " "@code{org-special-ctrl-a/e} to configure special behavior of @kbd{C-a} and " "@kbd{C-e} in headlines.}. For example:" msgstr "" #. type: smallexample #: orgguide.texi:344 #, no-wrap msgid "" "* Top level headline\n" "** Second level\n" "*** 3rd level\n" " some text\n" "*** 3rd level\n" " more text\n" "\n" msgstr "" #. type: smallexample #: orgguide.texi:346 #, no-wrap msgid "* Another top level headline\n" msgstr "" #. type: Plain text #: orgguide.texi:351 msgid "" "outline that has whitespace followed by a single star as headline starters. " "@ref{Clean view}, describes a setup to realize this." msgstr "" #. type: Plain text #: orgguide.texi:358 msgid "" "Outlines make it possible to hide parts of the text in the buffer. Org uses " "just two commands, bound to @key{TAB} and @kbd{S-@key{TAB}} to change the " "visibility in the buffer." msgstr "" #. type: key{#1} #: orgguide.texi:360 orgguide.texi:511 orgguide.texi:636 orgguide.texi:1906 #, no-wrap msgid "TAB" msgstr "" #. type: table #: orgguide.texi:362 msgid "@emph{Subtree cycling}: Rotate current subtree among the states" msgstr "" #. type: smallexample #: orgguide.texi:366 #, no-wrap msgid "" ",-> FOLDED -> CHILDREN -> SUBTREE --.\n" "'-----------------------------------'\n" msgstr "" #. type: table #: orgguide.texi:370 msgid "" "When called with a prefix argument (@kbd{C-u @key{TAB}}) or with the shift " "key, global cycling is invoked." msgstr "" #. type: item #: orgguide.texi:371 #, no-wrap msgid "S-@key{TAB} @r{and} C-u @key{TAB}" msgstr "" #. type: table #: orgguide.texi:373 msgid "@emph{Global cycling}: Rotate the entire buffer among the states" msgstr "" #. type: smallexample #: orgguide.texi:377 #, no-wrap msgid "" ",-> OVERVIEW -> CONTENTS -> SHOW ALL --.\n" "'--------------------------------------'\n" msgstr "" #. type: item #: orgguide.texi:379 #, no-wrap msgid "C-u C-u C-u @key{TAB}" msgstr "" #. type: table #: orgguide.texi:381 msgid "Show all, including drawers." msgstr "" #. type: Plain text #: orgguide.texi:388 msgid "" "When Emacs first visits an Org file, the global state is set to OVERVIEW, " "i.e.@: only the top level headlines are visible. This can be configured " "through the variable @code{org-startup-folded}, or on a per-file basis by " "adding a startup keyword @code{overview}, @code{content}, @code{showall}, " "like this:" msgstr "" #. type: smallexample #: orgguide.texi:391 #, no-wrap msgid "#+STARTUP: content\n" msgstr "" #. type: Plain text #: orgguide.texi:397 msgid "The following commands jump to other headlines in the buffer." msgstr "" #. type: item #: orgguide.texi:399 #, no-wrap msgid "C-c C-n" msgstr "" #. type: table #: orgguide.texi:401 msgid "Next heading." msgstr "" #. type: item #: orgguide.texi:401 #, no-wrap msgid "C-c C-p" msgstr "" #. type: table #: orgguide.texi:403 msgid "Previous heading." msgstr "" #. type: item #: orgguide.texi:403 #, no-wrap msgid "C-c C-f" msgstr "" #. type: table #: orgguide.texi:405 msgid "Next heading same level." msgstr "" #. type: item #: orgguide.texi:405 #, no-wrap msgid "C-c C-b" msgstr "" #. type: table #: orgguide.texi:407 msgid "Previous heading same level." msgstr "" #. type: item #: orgguide.texi:407 #, no-wrap msgid "C-c C-u" msgstr "" #. type: table #: orgguide.texi:409 msgid "Backward to higher level heading." msgstr "" #. type: item #: orgguide.texi:415 orgguide.texi:513 #, no-wrap msgid "M-@key{RET}" msgstr "" #. type: table #: orgguide.texi:421 msgid "" "Insert new heading with same level as current. If the cursor is in a plain " "list item, a new item is created (@pxref{Plain lists}). When this command " "is used in the middle of a line, the line is split and the rest of the line " "becomes the new headline@footnote{If you do not want the line to be split, " "customize the variable @code{org-M-RET-may-split-line}.}." msgstr "" #. type: item #: orgguide.texi:421 orgguide.texi:516 orgguide.texi:1087 #, no-wrap msgid "M-S-@key{RET}" msgstr "" #. type: table #: orgguide.texi:423 msgid "Insert new TODO entry with same level as current heading." msgstr "" #. type: item #: orgguide.texi:423 #, no-wrap msgid "@key{TAB} @r{in new, empty entry}" msgstr "" #. type: table #: orgguide.texi:426 msgid "" "In a new entry with no text yet, @key{TAB} will cycle through reasonable " "levels." msgstr "" #. type: item #: orgguide.texi:426 #, no-wrap msgid "M-@key{left}@r{/}@key{right}" msgstr "" #. type: table #: orgguide.texi:428 msgid "Promote/demote current heading by one level." msgstr "" #. type: item #: orgguide.texi:428 orgguide.texi:524 #, no-wrap msgid "M-S-@key{left}@r{/}@key{right}" msgstr "" #. type: table #: orgguide.texi:430 msgid "Promote/demote the current subtree by one level." msgstr "" #. type: item #: orgguide.texi:430 orgguide.texi:518 #, no-wrap msgid "M-S-@key{up}@r{/}@key{down}" msgstr "" #. type: table #: orgguide.texi:433 msgid "Move subtree up/down (swap with previous/next subtree of same level)." msgstr "" #. type: item #: orgguide.texi:433 orgguide.texi:1569 orgguide.texi:1630 orgguide.texi:1966 #, no-wrap msgid "C-c C-w" msgstr "" #. type: table #: orgguide.texi:435 msgid "Refile entry or region to a different location. @xref{Refile and copy}." msgstr "" #. type: item #: orgguide.texi:435 #, no-wrap msgid "C-x n s/w" msgstr "" #. type: table #: orgguide.texi:437 msgid "Narrow buffer to current subtree / widen it again" msgstr "" #. type: Plain text #: orgguide.texi:441 msgid "" "When there is an active region (Transient Mark mode), promotion and demotion " "work on all headlines in the region." msgstr "" #. type: Plain text #: orgguide.texi:453 msgid "" "An important feature of Org mode is the ability to construct @emph{sparse " "trees} for selected information in an outline tree, so that the entire " "document is folded as much as possible, but the selected information is made " "visible along with the headline structure above it@footnote{See also the " "variables @code{org-show-hierarchy-above}, " "@code{org-show-following-heading}, @code{org-show-siblings}, and " "@code{org-show-entry-below} for detailed control on how much context is " "shown around each match.}. Just try it out and you will see immediately how " "it works." msgstr "" #. type: Plain text #: orgguide.texi:456 msgid "" "Org mode contains several commands creating such trees, all these commands " "can be accessed through a dispatcher:" msgstr "" #. type: item #: orgguide.texi:458 #, no-wrap msgid "C-c /" msgstr "" #. type: table #: orgguide.texi:460 msgid "This prompts for an extra key to select a sparse-tree creating command." msgstr "" #. type: item #: orgguide.texi:460 #, no-wrap msgid "C-c / r" msgstr "" #. type: table #: orgguide.texi:463 msgid "" "Occur. Prompts for a regexp and shows a sparse tree with all matches. Each " "match is also highlighted; the highlights disappear by pressing @kbd{C-c " "C-c}." msgstr "" #. type: Plain text #: orgguide.texi:467 msgid "" "The other sparse tree commands select headings based on TODO keywords, tags, " "or properties and will be discussed later in this manual." msgstr "" #. type: Plain text #: orgguide.texi:475 msgid "" "Within an entry of the outline tree, hand-formatted lists can provide " "additional structure. They also provide a way to create lists of checkboxes " "(@pxref{Checkboxes}). Org supports editing such lists, and the HTML " "exporter (@pxref{Exporting}) parses and formats them." msgstr "" #. type: Plain text #: orgguide.texi:477 msgid "Org knows ordered lists, unordered lists, and description lists." msgstr "" #. type: itemize #: orgguide.texi:481 msgid "" "@emph{Unordered} list items start with @samp{-}, @samp{+}, or @samp{*} as " "bullets." msgstr "" #. type: itemize #: orgguide.texi:483 msgid "@emph{Ordered} list items start with @samp{1.} or @samp{1)}." msgstr "" #. type: itemize #: orgguide.texi:486 msgid "" "@emph{Description} list use @samp{ :: } to separate the @emph{term} from the " "description." msgstr "" #. type: Plain text #: orgguide.texi:492 msgid "" "Items belonging to the same list must have the same indentation on the first " "line. An item ends before the next line that is indented like its " "bullet/number, or less. A list ends when all items are closed, or before " "two blank lines. An example:" msgstr "" #. type: group #: orgguide.texi:504 #, no-wrap msgid "" "** Lord of the Rings\n" " My favorite scenes are (in this order)\n" " 1. The attack of the Rohirrim\n" " 2. Eowyn's fight with the witch king\n" " + this was already my favorite scene in the book\n" " + I really like Miranda Otto.\n" " Important actors in this film are:\n" " - @b{Elijah Wood} :: He plays Frodo\n" " - @b{Sean Austin} :: He plays Sam, Frodo's friend.\n" msgstr "" #. type: Plain text #: orgguide.texi:509 msgid "" "The following commands act on items when the cursor is in the first line of " "an item (the line with the bullet or number)." msgstr "" #. type: table #: orgguide.texi:513 msgid "Items can be folded just like headline levels." msgstr "" #. type: table #: orgguide.texi:516 msgid "" "Insert new item at current level. With a prefix argument, force a new " "heading (@pxref{Structure editing})." msgstr "" #. type: table #: orgguide.texi:518 msgid "Insert a new item with a checkbox (@pxref{Checkboxes})." msgstr "" #. type: table #: orgguide.texi:522 msgid "" "Move the item including subitems up/down (swap with previous/next item of " "same indentation). If the list is ordered, renumbering is automatic." msgstr "" #. type: item #: orgguide.texi:522 #, no-wrap msgid "M-@key{left}@r{/}M-@key{right}" msgstr "" #. type: table #: orgguide.texi:524 msgid "Decrease/increase the indentation of an item, leaving children alone." msgstr "" #. type: table #: orgguide.texi:526 msgid "Decrease/increase the indentation of the item, including subitems." msgstr "" #. type: item #: orgguide.texi:526 orgguide.texi:558 orgguide.texi:633 orgguide.texi:1085 orgguide.texi:1160 orgguide.texi:1498 orgguide.texi:1565 #, no-wrap msgid "C-c C-c" msgstr "" #. type: table #: orgguide.texi:530 msgid "" "If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the " "state of the checkbox. Also verify bullets and indentation consistency in " "the whole list." msgstr "" #. type: item #: orgguide.texi:530 orgguide.texi:669 #, no-wrap msgid "C-c -" msgstr "" #. type: table #: orgguide.texi:533 msgid "" "Cycle the entire list level through the different itemize/enumerate bullets " "(@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)})." msgstr "" #. type: Plain text #: orgguide.texi:541 msgid "" "A footnote is defined in a paragraph that is started by a footnote marker in " "square brackets in column 0, no indentation allowed. The footnote reference " "is simply the marker in square brackets, inside text. For example:" msgstr "" #. type: smallexample #: orgguide.texi:546 #, no-wrap msgid "" "The Org homepage[fn:1] now looks a lot better than it used to.\n" "...\n" "[fn:1] The link is: http://orgmode.org\n" msgstr "" #. type: item #: orgguide.texi:551 #, no-wrap msgid "C-c C-x f" msgstr "" #. type: table #: orgguide.texi:557 msgid "" "The footnote action command. When the cursor is on a footnote reference, " "jump to the definition. When it is at a definition, jump to the (first) " "reference. Otherwise, create a new footnote. When this command is called " "with a prefix argument, a menu of additional options including renumbering " "is offered." msgstr "" #. type: table #: orgguide.texi:560 msgid "Jump between definition and reference." msgstr "" #. type: Plain text #: orgguide.texi:567 msgid "" "@seealso{ " "@uref{http://orgmode.org/manual/Document-Structure.html#Document-Structure, " "Chapter 2 of the manual}@* " "@uref{http://sachachua.com/wp/2008/01/outlining-your-notes-with-org/, Sacha " "Chua's tutorial}}" msgstr "" #. type: Plain text #: orgguide.texi:575 msgid "" "Org comes with a fast and intuitive table editor. Spreadsheet-like " "calculations are supported in connection with the Emacs @file{calc} package" msgstr "" #. type: ifinfo #: orgguide.texi:577 msgid "(@pxref{Top,Calc,,Calc,Gnu Emacs Calculator Manual})." msgstr "" #. type: ifnotinfo #: orgguide.texi:581 msgid "" "(see the Emacs Calculator manual for more information about the Emacs " "calculator)." msgstr "" #. type: Plain text #: orgguide.texi:587 msgid "" "Org makes it easy to format tables in plain ASCII. Any line with @samp{|} " "as the first non-whitespace character is considered part of a table. " "@samp{|} is also the column separator. A table might look like this:" msgstr "" #. type: smallexample #: orgguide.texi:593 #, no-wrap msgid "" "| Name | Phone | Age |\n" "|-------+-------+-----|\n" "| Peter | 1234 | 17 |\n" "| Anna | 4321 | 25 |\n" msgstr "" #. type: Plain text #: orgguide.texi:603 msgid "" "A table is re-aligned automatically each time you press @key{TAB} or " "@key{RET} or @kbd{C-c C-c} inside the table. @key{TAB} also moves to the " "next field (@key{RET} to the next row) and creates new table rows at the end " "of the table or before horizontal lines. The indentation of the table is " "set by the first line. Any line starting with @samp{|-} is considered as a " "horizontal separator line and will be expanded on the next re-align to span " "the whole table width. So, to create the above table, you would only type" msgstr "" #. type: smallexample #: orgguide.texi:607 #, no-wrap msgid "" "|Name|Phone|Age|\n" "|-\n" msgstr "" #. type: Plain text #: orgguide.texi:612 msgid "" "fields. Even faster would be to type @code{|Name|Phone|Age} followed by " "@kbd{C-c @key{RET}}." msgstr "" #. type: Plain text #: orgguide.texi:619 msgid "" "When typing text into a field, Org treats @key{DEL}, @key{Backspace}, and " "all character keys in a special way, so that inserting and deleting avoids " "shifting other fields. Also, when typing @emph{immediately after the cursor " "was moved into a new field with @kbd{@key{TAB}}, @kbd{S-@key{TAB}} or " "@kbd{@key{RET}}}, the field is automatically made blank." msgstr "" #. type: table #: orgguide.texi:622 msgid "@tsubheading{Creation and conversion}" msgstr "" #. type: item #: orgguide.texi:622 #, no-wrap msgid "C-c |" msgstr "" #. type: table #: orgguide.texi:631 msgid "" "Convert the active region to table. If every line contains at least one TAB " "character, the function assumes that the material is tab separated. If " "every line contains a comma, comma-separated values (CSV) are assumed. If " "not, lines are split at whitespace into fields. @* If there is no active " "region, this command creates an empty Org table. But it's easier just to " "start typing, like @kbd{|Name|Phone|Age C-c @key{RET}}." msgstr "" #. type: table #: orgguide.texi:633 msgid "@tsubheading{Re-aligning and field motion}" msgstr "" #. type: table #: orgguide.texi:636 msgid "Re-align the table without moving the cursor." msgstr "" #. type: table #: orgguide.texi:640 msgid "Re-align the table, move to the next field. Creates a new row if necessary." msgstr "" #. type: item #: orgguide.texi:640 #, no-wrap msgid "S-@key{TAB}" msgstr "" #. type: table #: orgguide.texi:643 msgid "Re-align, move to previous field." msgstr "" #. type: key{#1} #: orgguide.texi:643 orgguide.texi:1910 #, no-wrap msgid "RET" msgstr "" #. type: table #: orgguide.texi:646 msgid "" "Re-align the table and move down to next row. Creates a new row if " "necessary." msgstr "" #. type: table #: orgguide.texi:648 msgid "@tsubheading{Column and row editing}" msgstr "" #. type: item #: orgguide.texi:648 #, no-wrap msgid "M-@key{left}" msgstr "" #. type: itemx #: orgguide.texi:649 #, no-wrap msgid "M-@key{right}" msgstr "" #. type: table #: orgguide.texi:652 msgid "Move the current column left/right." msgstr "" #. type: item #: orgguide.texi:652 #, no-wrap msgid "M-S-@key{left}" msgstr "" #. type: table #: orgguide.texi:655 msgid "Kill the current column." msgstr "" #. type: item #: orgguide.texi:655 #, no-wrap msgid "M-S-@key{right}" msgstr "" #. type: table #: orgguide.texi:658 msgid "Insert a new column to the left of the cursor position." msgstr "" #. type: item #: orgguide.texi:658 #, no-wrap msgid "M-@key{up}" msgstr "" #. type: itemx #: orgguide.texi:659 #, no-wrap msgid "M-@key{down}" msgstr "" #. type: table #: orgguide.texi:662 msgid "Move the current row up/down." msgstr "" #. type: item #: orgguide.texi:662 #, no-wrap msgid "M-S-@key{up}" msgstr "" #. type: table #: orgguide.texi:665 msgid "Kill the current row or horizontal line." msgstr "" #. type: item #: orgguide.texi:665 #, no-wrap msgid "M-S-@key{down}" msgstr "" #. type: table #: orgguide.texi:669 msgid "" "Insert a new row above the current row. With a prefix argument, the line is " "created below the current one." msgstr "" #. type: table #: orgguide.texi:673 msgid "" "Insert a horizontal line below current row. With a prefix argument, the " "line is created above the current line." msgstr "" #. type: item #: orgguide.texi:673 #, no-wrap msgid "C-c @key{RET}" msgstr "" #. type: table #: orgguide.texi:677 msgid "" "Insert a horizontal line below current row, and move the cursor into the row " "below that line." msgstr "" #. type: item #: orgguide.texi:677 #, no-wrap msgid "C-c ^" msgstr "" #. type: table #: orgguide.texi:681 msgid "" "Sort the table lines in the region. The position of point indicates the " "column to be used for sorting, and the range of lines is the range between " "the nearest horizontal separator lines, or the entire table." msgstr "" #. type: Plain text #: orgguide.texi:692 msgid "" "@seealso{ @uref{http://orgmode.org/manual/Tables.html#Tables, Chapter 3 of " "the manual}@* @uref{http://orgmode.org/worg/org-tutorials/tables.php, " "Bastien's table tutorial}@* " "@uref{http://orgmode.org/worg/org-tutorials/org-spreadsheet-intro.php, " "Bastien's spreadsheet tutorial}@* " "@uref{http://orgmode.org/worg/org-tutorials/org-plot.php, Eric's plotting " "tutorial}}" msgstr "" #. type: Plain text #: orgguide.texi:698 msgid "" "Like HTML, Org provides links inside a file, external links to other files, " "Usenet articles, emails, and much more." msgstr "" #. type: Plain text #: orgguide.texi:712 msgid "" "Org will recognize plain URL-like links and activate them as clickable " "links. The general link format, however, looks like this:" msgstr "" #. type: smallexample #: orgguide.texi:715 #, no-wrap msgid "[[link][description]] @r{or alternatively} [[link]]\n" msgstr "" #. type: Plain text #: orgguide.texi:723 msgid "" "Once a link in the buffer is complete (all brackets present), Org will " "change the display so that @samp{description} is displayed instead of " "@samp{[[link][description]]} and @samp{link} is displayed instead of " "@samp{[[link]]}. To edit the invisible @samp{link} part, use @kbd{C-c C-l} " "with the cursor on the link." msgstr "" #. type: Plain text #: orgguide.texi:731 msgid "" "If the link does not look like a URL, it is considered to be internal in the " "current file. The most important case is a link like " "@samp{[[#my-custom-id]]} which will link to the entry with the " "@code{CUSTOM_ID} property @samp{my-custom-id}." msgstr "" #. type: Plain text #: orgguide.texi:735 msgid "" "Links such as @samp{[[My Target]]} or @samp{[[My Target][Find my target]]} " "lead to a text search in the current file for the corresponding target which " "looks like @samp{<>}." msgstr "" #. type: Plain text #: orgguide.texi:744 msgid "" "Org supports links to files, websites, Usenet and email messages, BBDB " "database entries and links to both IRC conversations and their logs. " "External links are URL-like locators. They start with a short identifying " "string followed by a colon. There can be no space after the colon. Here " "are some examples:" msgstr "" #. type: smallexample #: orgguide.texi:764 #, no-wrap msgid "" "http://www.astro.uva.nl/~dominik @r{on the web}\n" "file:/home/dominik/images/jupiter.jpg @r{file, absolute path}\n" "/home/dominik/images/jupiter.jpg @r{same as above}\n" "file:papers/last.pdf @r{file, relative path}\n" "file:projects.org @r{another Org file}\n" "docview:papers/last.pdf::NNN @r{open file in doc-view mode at " "page NNN}\n" "id:B7423F4D-2E8A-471B-8810-C40F074717E9 @r{Link to heading by ID}\n" "news:comp.emacs @r{Usenet link}\n" "mailto:adent@@galaxy.net @r{Mail link}\n" "vm:folder @r{VM folder link}\n" "vm:folder#id @r{VM message link}\n" "wl:folder#id @r{WANDERLUST message link}\n" "mhe:folder#id @r{MH-E message link}\n" "rmail:folder#id @r{RMAIL message link}\n" "gnus:group#id @r{Gnus article link}\n" "bbdb:R.*Stallman @r{BBDB link (with regexp)}\n" "irc:/irc.com/#emacs/bob @r{IRC link}\n" "info:org:External%20links @r{Info node link (with encoded " "space)}\n" msgstr "" #. type: Plain text #: orgguide.texi:769 msgid "" "A link should be enclosed in double brackets and may contain a descriptive " "text to be displayed instead of the URL (@pxref{Link format}), for example:" msgstr "" #. type: smallexample #: orgguide.texi:772 #, no-wrap msgid "[[http://www.gnu.org/software/emacs/][GNU Emacs]]\n" msgstr "" #. type: Plain text #: orgguide.texi:779 msgid "" "If the description is a file name or URL that points to an image, HTML " "export (@pxref{HTML export}) will inline the image as a clickable button. " "If there is no description at all and the link points to an image, that " "image will be inlined into the exported HTML file." msgstr "" #. type: Plain text #: orgguide.texi:785 msgid "" "Org provides methods to create a link in the correct syntax, to insert it " "into an Org file, and to follow the link." msgstr "" #. type: item #: orgguide.texi:787 #, no-wrap msgid "C-c l" msgstr "" #. type: table #: orgguide.texi:793 msgid "" "Store a link to the current location. This is a @emph{global} command (you " "must create the key binding yourself) which can be used in any buffer to " "create a link. The link will be stored for later insertion into an Org " "buffer (see below)." msgstr "" #. type: item #: orgguide.texi:793 #, no-wrap msgid "C-c C-l" msgstr "" #. type: table #: orgguide.texi:800 msgid "" "Insert a link. This prompts for a link to be inserted into the buffer. You " "can just type a link, or use history keys @key{up} and @key{down} to access " "stored links. You will be prompted for the description part of the link. " "When called with a @kbd{C-u} prefix argument, file name completion is used " "to link to a file." msgstr "" #. type: item #: orgguide.texi:800 #, no-wrap msgid "C-c C-l @r{(with cursor on existing link)}" msgstr "" #. type: table #: orgguide.texi:804 msgid "" "When the cursor is on an existing link, @kbd{C-c C-l} allows you to edit the " "link and description parts of the link." msgstr "" #. type: item #: orgguide.texi:804 #, no-wrap msgid "C-c C-o @r{or} mouse-1 @r{or} mouse-2" msgstr "" #. type: table #: orgguide.texi:806 msgid "Open link at point." msgstr "" #. type: item #: orgguide.texi:806 #, no-wrap msgid "C-c &" msgstr "" #. type: table #: orgguide.texi:812 msgid "" "Jump back to a recorded position. A position is recorded by the commands " "following internal links, and by @kbd{C-c %}. Using this command several " "times in direct succession moves through a ring of previously recorded " "positions." msgstr "" #. type: Plain text #: orgguide.texi:820 msgid "" "File links can contain additional information to make Emacs jump to a " "particular location in the file when following a link. This can be a line " "number or a search option after a double colon." msgstr "" #. type: Plain text #: orgguide.texi:823 msgid "" "Here is the syntax of the different ways to attach a search to a file link, " "together with an explanation:" msgstr "" #. type: smallexample #: orgguide.texi:828 #, no-wrap msgid "" "[[file:~/code/main.c::255]] @r{Find line 255}\n" "[[file:~/xx.org::My Target]] @r{Find @samp{<>}}\n" "[[file:~/xx.org::#my-custom-id]] @r{Find entry with custom id}\n" msgstr "" #. type: Plain text #: orgguide.texi:833 msgid "" "@seealso{ @uref{http://orgmode.org/manual/Hyperlinks.html#Hyperlinks, " "Chapter 4 of the manual}}" msgstr "" #. type: Plain text #: orgguide.texi:844 msgid "" "Org mode does not maintain TODO lists as separate documents@footnote{Of " "course, you can make a document that contains only long lists of TODO items, " "but this is not required.}. Instead, TODO items are an integral part of the " "notes file, because TODO items usually come up while taking notes! With Org " "mode, simply mark any entry in a tree as being a TODO item. In this way, " "information is not duplicated, and the entire context from which the TODO " "item emerged is always present." msgstr "" #. type: Plain text #: orgguide.texi:848 msgid "" "Of course, this technique for managing TODO items scatters them throughout " "your notes file. Org mode compensates for this by providing methods to give " "you an overview of all the things that you have to do." msgstr "" #. type: Plain text #: orgguide.texi:863 msgid "" "Any headline becomes a TODO item when it starts with the word @samp{TODO}, " "for example:" msgstr "" #. type: smallexample #: orgguide.texi:866 #, no-wrap msgid "*** TODO Write letter to Sam Fortune\n" msgstr "" #. type: Plain text #: orgguide.texi:870 msgid "The most important commands to work with TODO entries are:" msgstr "" #. type: item #: orgguide.texi:872 #, no-wrap msgid "C-c C-t" msgstr "" #. type: table #: orgguide.texi:874 msgid "Rotate the TODO state of the current item among" msgstr "" #. type: smallexample #: orgguide.texi:878 #, no-wrap msgid "" ",-> (unmarked) -> TODO -> DONE --.\n" "'--------------------------------'\n" msgstr "" #. type: table #: orgguide.texi:882 msgid "" "The same rotation can also be done ``remotely'' from the timeline and agenda " "buffers with the @kbd{t} command key (@pxref{Agenda commands})." msgstr "" #. type: item #: orgguide.texi:883 #, no-wrap msgid "S-@key{right}@r{/}@key{left}" msgstr "" #. type: table #: orgguide.texi:885 msgid "Select the following/preceding TODO state, similar to cycling." msgstr "" #. type: item #: orgguide.texi:885 #, no-wrap msgid "C-c / t" msgstr "" #. type: table #: orgguide.texi:889 msgid "" "View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds the " "buffer, but shows all TODO items and the headings hierarchy above them." msgstr "" #. type: item #: orgguide.texi:889 orgguide.texi:1794 #, no-wrap msgid "C-c a t" msgstr "" #. type: table #: orgguide.texi:893 msgid "" "Show the global TODO list. Collects the TODO items from all agenda files " "(@pxref{Agenda Views}) into a single buffer. @xref{Global TODO list}, for " "more information." msgstr "" #. type: item #: orgguide.texi:893 #, no-wrap msgid "S-M-@key{RET}" msgstr "" #. type: table #: orgguide.texi:895 msgid "Insert a new TODO entry below the current one." msgstr "" #. type: Plain text #: orgguide.texi:900 msgid "" "Changing a TODO state can also trigger tag changes. See the docstring of " "the option @code{org-todo-state-tags-triggers} for details." msgstr "" #. type: Plain text #: orgguide.texi:906 msgid "" "You can use TODO keywords to indicate different @emph{sequential} states in " "the process of working on an item, for example:" msgstr "" #. type: smalllisp #: orgguide.texi:910 #, no-wrap msgid "" "(setq org-todo-keywords\n" " '((sequence \"TODO\" \"FEEDBACK\" \"VERIFY\" \"|\" \"DONE\" " "\"DELEGATED\")))\n" msgstr "" #. type: Plain text #: orgguide.texi:918 msgid "" "The vertical bar separates the TODO keywords (states that @emph{need " "action}) from the DONE states (which need @emph{no further action}). If you " "don't provide the separator bar, the last state is used as the DONE state. " "With this setup, the command @kbd{C-c C-t} will cycle an entry from TODO to " "FEEDBACK, then to VERIFY, and finally to DONE and DELEGATED." msgstr "" #. type: Plain text #: orgguide.texi:925 msgid "" "Sometimes you may want to use different sets of TODO keywords in parallel. " "For example, you may want to have the basic @code{TODO}/@code{DONE}, but " "also a workflow for bug fixing, and a separate state indicating that an item " "has been canceled (so it is not DONE, but also does not require action). " "Your setup would then look like this:" msgstr "" #. type: smalllisp #: orgguide.texi:931 #, no-wrap msgid "" "(setq org-todo-keywords\n" " '((sequence \"TODO(t)\" \"|\" \"DONE(d)\")\n" " (sequence \"REPORT(r)\" \"BUG(b)\" \"KNOWNCAUSE(k)\" \"|\" " "\"FIXED(f)\")\n" " (sequence \"|\" \"CANCELED(c)\")))\n" msgstr "" #. type: Plain text #: orgguide.texi:938 msgid "" "The keywords should all be different, this helps Org mode to keep track of " "which subsequence should be used for a given entry. The example also shows " "how to define keys for fast access of a particular state, by adding a letter " "in parenthesis after each keyword - you will be prompted for the key after " "@kbd{C-c C-t}." msgstr "" #. type: Plain text #: orgguide.texi:941 msgid "" "To define TODO keywords that are valid only in a single file, use the " "following text anywhere in the file." msgstr "" #. type: smallexample #: orgguide.texi:946 #, no-wrap msgid "" "#+TODO: TODO(t) | DONE(d)\n" "#+TODO: REPORT(r) BUG(b) KNOWNCAUSE(k) | FIXED(f)\n" "#+TODO: | CANCELED(c)\n" msgstr "" #. type: Plain text #: orgguide.texi:950 msgid "" "After changing one of these lines, use @kbd{C-c C-c} with the cursor still " "in the line to make the changes known to Org mode." msgstr "" #. type: Plain text #: orgguide.texi:960 msgid "" "Org mode can automatically record a timestamp and possibly a note when you " "mark a TODO item as DONE, or even each time you change the state of a TODO " "item. This system is highly configurable, settings can be on a per-keyword " "basis and can be localized to a file or even a subtree. For information on " "how to clock working time for a task, see @ref{Clocking work time}." msgstr "" #. type: Plain text #: orgguide.texi:972 msgid "" "The most basic logging is to keep track of @emph{when} a certain TODO item " "was finished. This is achieved with@footnote{The corresponding in-buffer " "setting is: @code{#+STARTUP: logdone}}." msgstr "" #. type: smalllisp #: orgguide.texi:975 #, no-wrap msgid "(setq org-log-done 'time)\n" msgstr "" #. type: Plain text #: orgguide.texi:983 msgid "" "Then each time you turn an entry from a TODO (not-done) state into any of " "the DONE states, a line @samp{CLOSED: [timestamp]} will be inserted just " "after the headline. If you want to record a note along with the timestamp, " "use@footnote{The corresponding in-buffer setting is: @code{#+STARTUP: " "lognotedone}}" msgstr "" #. type: smalllisp #: orgguide.texi:986 #, no-wrap msgid "(setq org-log-done 'note)\n" msgstr "" #. type: Plain text #: orgguide.texi:991 msgid "" "You will then be prompted for a note, and that note will be stored below the " "entry with a @samp{Closing Note} heading." msgstr "" #. type: Plain text #: orgguide.texi:1000 msgid "" "You might want to keep track of TODO state changes. You can either record " "just a timestamp, or a time-stamped note for a change. These records will " "be inserted after the headline as an itemized list. When taking a lot of " "notes, you might want to get the notes out of the way into a drawer. " "Customize the variable @code{org-log-into-drawer} to get this behavior." msgstr "" #. type: Plain text #: orgguide.texi:1004 msgid "" "For state logging, Org mode expects configuration on a per-keyword basis. " "This is achieved by adding special markers @samp{!} (for a timestamp) and " "@samp{@@} (for a note) in parentheses after each keyword. For example:" msgstr "" #. type: smallexample #: orgguide.texi:1006 #, no-wrap msgid "#+TODO: TODO(t) WAIT(w@@/!) | DONE(d!) CANCELED(c@@)\n" msgstr "" #. type: Plain text #: orgguide.texi:1012 msgid "" "will define TODO keywords and fast access keys, and also request that a time " "is recorded when the entry is set to DONE, and that a note is recorded when " "switching to WAIT or CANCELED. The same syntax works also when setting " "@code{org-todo-keywords}." msgstr "" #. type: Plain text #: orgguide.texi:1019 msgid "" "If you use Org mode extensively, you may end up with enough TODO items that " "it starts to make sense to prioritize them. Prioritizing can be done by " "placing a @emph{priority cookie} into the headline of a TODO item, like this" msgstr "" #. type: smallexample #: orgguide.texi:1022 #, no-wrap msgid "*** TODO [#A] Write letter to Sam Fortune\n" msgstr "" #. type: Plain text #: orgguide.texi:1028 msgid "" "Org mode supports three priorities: @samp{A}, @samp{B}, and @samp{C}. " "@samp{A} is the highest, @samp{B} the default if none is given. Priorities " "make a difference only in the agenda." msgstr "" #. type: kbd{#1} #: orgguide.texi:1030 #, no-wrap msgid "C-c ," msgstr "" #. type: table #: orgguide.texi:1034 msgid "" "Set the priority of the current headline. Press @samp{A}, @samp{B} or " "@samp{C} to select a priority, or @key{SPC} to remove the cookie." msgstr "" #. type: item #: orgguide.texi:1034 #, no-wrap msgid "S-@key{up}" msgstr "" #. type: itemx #: orgguide.texi:1035 #, no-wrap msgid "S-@key{down}" msgstr "" #. type: table #: orgguide.texi:1037 msgid "Increase/decrease priority of current headline" msgstr "" #. type: section #: orgguide.texi:1040 #, no-wrap msgid "Breaking tasks down into subtasks" msgstr "" #. type: Plain text #: orgguide.texi:1049 msgid "" "It is often advisable to break down large tasks into smaller, manageable " "subtasks. You can do this by creating an outline tree below a TODO item, " "with detailed subtasks on the tree. To keep the overview over the fraction " "of subtasks that are already completed, insert either @samp{[/]} or " "@samp{[%]} anywhere in the headline. These cookies will be updated each " "time the TODO status of a child changes, or when pressing @kbd{C-c C-c} on " "the cookie. For example:" msgstr "" #. type: smallexample #: orgguide.texi:1057 #, no-wrap msgid "" "* Organize Party [33%]\n" "** TODO Call people [1/2]\n" "*** TODO Peter\n" "*** DONE Sarah\n" "** TODO Buy food\n" "** DONE Talk to neighbor\n" msgstr "" #. type: Plain text #: orgguide.texi:1067 msgid "" "Every item in a plain list (@pxref{Plain lists}) can be made into a checkbox " "by starting it with the string @samp{[ ]}. Checkboxes are not included into " "the global TODO list, so they are often great to split a task into a number " "of simple steps. Here is an example of a checkbox list." msgstr "" #. type: smallexample #: orgguide.texi:1075 #, no-wrap msgid "" "* TODO Organize party [1/3]\n" " - [-] call people [1/2]\n" " - [ ] Peter\n" " - [X] Sarah\n" " - [X] order food\n" " - [ ] think about what music to play\n" msgstr "" #. type: Plain text #: orgguide.texi:1081 msgid "" "Checkboxes work hierarchically, so if a checkbox item has children that are " "checkboxes, toggling one of the children checkboxes will make the parent " "checkbox reflect if none, some, or all of the children are checked." msgstr "" #. type: table #: orgguide.texi:1087 msgid "Toggle checkbox status or (with prefix arg) checkbox presence at point." msgstr "" #. type: table #: orgguide.texi:1091 msgid "" "Insert a new item with a checkbox. This works only if the cursor is already " "in a plain list item (@pxref{Plain lists})." msgstr "" #. type: Plain text #: orgguide.texi:1099 msgid "" "@seealso{ @uref{http://orgmode.org/manual/TODO-Items.html#TODO-Items, " "Chapter 5 of the manual}@* " "@uref{http://orgmode.org/worg/org-tutorials/orgtutorial_dto.php, David " "O'Toole's introductory tutorial}@* " "@uref{http://members.optusnet.com.au/~charles57/GTD/gtd_workflow.html, " "Charles Cave's GTD setup}}" msgstr "" #. type: Plain text #: orgguide.texi:1106 msgid "" "An excellent way to implement labels and contexts for cross-correlating " "information is to assign @i{tags} to headlines. Org mode has extensive " "support for tags." msgstr "" #. type: Plain text #: orgguide.texi:1112 msgid "" "Every headline can contain a list of tags; they occur at the end of the " "headline. Tags are normal words containing letters, numbers, @samp{_}, and " "@samp{@@}. Tags must be preceded and followed by a single colon, e.g., " "@samp{:work:}. Several tags can be specified, as in @samp{:work:urgent:}. " "Tags will by default be in bold face with the same color as the headline." msgstr "" #. type: Plain text #: orgguide.texi:1125 msgid "" "@i{Tags} make use of the hierarchical structure of outline trees. If a " "heading has a certain tag, all subheadings will inherit the tag as well. " "For example, in the list" msgstr "" #. type: smallexample #: orgguide.texi:1130 #, no-wrap msgid "" "* Meeting with the French group :work:\n" "** Summary by Frank :boss:notes:\n" "*** TODO Prepare slides for him :action:\n" msgstr "" #. type: Plain text #: orgguide.texi:1140 msgid "" "the final heading will have the tags @samp{:work:}, @samp{:boss:}, " "@samp{:notes:}, and @samp{:action:} even though the final heading is not " "explicitly marked with those tags. You can also set tags that all entries " "in a file should inherit just as if these tags were defined in a " "hypothetical level zero that surrounds the entire file. Use a line like " "this@footnote{As with all these in-buffer settings, pressing @kbd{C-c C-c} " "activates any changes in the line.}:" msgstr "" #. type: smallexample #: orgguide.texi:1143 #, no-wrap msgid "#+FILETAGS: :Peter:Boss:Secret:\n" msgstr "" #. type: Plain text #: orgguide.texi:1151 msgid "" "Tags can simply be typed into the buffer at the end of a headline. After a " "colon, @kbd{M-@key{TAB}} offers completion on tags. There is also a special " "command for inserting tags:" msgstr "" #. type: item #: orgguide.texi:1153 #, no-wrap msgid "C-c C-q" msgstr "" #. type: table #: orgguide.texi:1160 msgid "" "Enter new tags for the current headline. Org mode will either offer " "completion or a special single-key interface for setting tags, see below. " "After pressing @key{RET}, the tags will be inserted and aligned to " "@code{org-tags-column}. When called with a @kbd{C-u} prefix, all tags in " "the current buffer will be aligned to that column, just to make things look " "nice." msgstr "" #. type: table #: orgguide.texi:1162 msgid "When the cursor is in a headline, this does the same as @kbd{C-c C-q}." msgstr "" #. type: Plain text #: orgguide.texi:1169 msgid "" "Org will support tag insertion based on a @emph{list of tags}. By default " "this list is constructed dynamically, containing all tags currently used in " "the buffer. You may also globally specify a hard list of tags with the " "variable @code{org-tag-alist}. Finally you can set the default tags for a " "given file with lines like" msgstr "" #. type: smallexample #: orgguide.texi:1173 #, no-wrap msgid "" "#+TAGS: @@work @@home @@tennisclub\n" "#+TAGS: laptop car pc sailboat\n" msgstr "" #. type: Plain text #: orgguide.texi:1184 msgid "" "By default Org mode uses the standard minibuffer completion facilities for " "entering tags. However, it also implements another, quicker, tag selection " "method called @emph{fast tag selection}. This allows you to select and " "deselect tags with just a single key press. For this to work well you " "should assign unique letters to most of your commonly used tags. You can do " "this globally by configuring the variable @code{org-tag-alist} in your " "@file{.emacs} file. For example, you may find the need to tag many items in " "different files with @samp{:@@home:}. In this case you can set something " "like:" msgstr "" #. type: smalllisp #: orgguide.texi:1187 #, no-wrap msgid "" "(setq org-tag-alist '((\"@@work\" . ?w) (\"@@home\" . ?h) (\"laptop\" " ". ?l)))\n" msgstr "" #. type: Plain text #: orgguide.texi:1191 msgid "can instead set the TAGS option line as:" msgstr "" #. type: smallexample #: orgguide.texi:1194 #, no-wrap msgid "#+TAGS: @@work(w) @@home(h) @@tennisclub(t) laptop(l) pc(p)\n" msgstr "" #. type: Plain text #: orgguide.texi:1201 msgid "" "Once a system of tags has been set up, it can be used to collect related " "information into special lists." msgstr "" #. type: item #: orgguide.texi:1203 #, no-wrap msgid "C-c \\" msgstr "" #. type: itemx #: orgguide.texi:1204 #, no-wrap msgid "C-c / m" msgstr "" #. type: table #: orgguide.texi:1207 msgid "" "Create a sparse tree with all headlines matching a tags search. With a " "@kbd{C-u} prefix argument, ignore headlines that are not a TODO line." msgstr "" #. type: item #: orgguide.texi:1207 orgguide.texi:1812 #, no-wrap msgid "C-c a m" msgstr "" #. type: table #: orgguide.texi:1210 msgid "" "Create a global list of tag matches from all agenda files. @xref{Matching " "tags and properties}." msgstr "" #. type: item #: orgguide.texi:1210 orgguide.texi:1818 #, no-wrap msgid "C-c a M" msgstr "" #. type: table #: orgguide.texi:1214 msgid "" "Create a global list of tag matches from all agenda files, but check only " "TODO items and force checking subitems (see variable " "@code{org-tags-match-list-sublevels})." msgstr "" #. type: Plain text #: orgguide.texi:1223 msgid "" "These commands all prompt for a match string which allows basic Boolean " "logic like @samp{+boss+urgent-project1}, to find entries with tags " "@samp{boss} and @samp{urgent}, but not @samp{project1}, or " "@samp{Kathy|Sally} to find entries which are tagged, like @samp{Kathy} or " "@samp{Sally}. The full syntax of the search string is rich and allows also " "matching against TODO keywords, entry levels and properties. For a complete " "description with many examples, see @ref{Matching tags and properties}." msgstr "" #. type: Plain text #: orgguide.texi:1228 msgid "" "@seealso{ @uref{http://orgmode.org/manual/Tags.html#Tags, Chapter 6 of the " "manual}@* " "@uref{http://sachachua.com/wp/2008/01/tagging-in-org-plus-bonus-code-for-timeclocks-and-tags/, " "Sacha Chua's article about tagging in Org-mode}}" msgstr "" #. type: Plain text #: orgguide.texi:1236 msgid "" "Properties are key-value pairs associates with and entry. They live in a " "special drawer with the name @code{PROPERTIES}. Each property is specified " "on a single line, with the key (surrounded by colons) first, and the value " "after it:" msgstr "" #. type: smallexample #: orgguide.texi:1247 #, no-wrap msgid "" "* CD collection\n" "** Classic\n" "*** Goldberg Variations\n" " :PROPERTIES:\n" " :Title: Goldberg Variations\n" " :Composer: J.S. Bach\n" " :Publisher: Deutsche Grammophon\n" " :NDisks: 1\n" " :END:\n" msgstr "" #. type: Plain text #: orgguide.texi:1256 msgid "" "You may define the allowed values for a particular property @samp{:Xyz:} by " "setting a property @samp{:Xyz_ALL:}. This special property is " "@emph{inherited}, so if you set it in a level 1 entry, it will apply to the " "entire tree. When allowed values are defined, setting the corresponding " "property becomes easier and is less prone to typing errors. For the example " "with the CD collection, we can predefine publishers and the number of disks " "in a box like this:" msgstr "" #. type: smallexample #: orgguide.texi:1263 #, no-wrap msgid "" "* CD collection\n" " :PROPERTIES:\n" " :NDisks_ALL: 1 2 3 4\n" " :Publisher_ALL: \"Deutsche Grammophon\" Philips EMI\n" " :END:\n" msgstr "" #. type: Plain text #: orgguide.texi:1265 msgid "or globally using @code{org-global-properties}, or file-wide like this:" msgstr "" #. type: smallexample #: orgguide.texi:1267 #, no-wrap msgid "#+PROPERTY: NDisks_ALL 1 2 3 4\n" msgstr "" #. type: item #: orgguide.texi:1270 #, no-wrap msgid "C-c C-x p" msgstr "" #. type: table #: orgguide.texi:1272 msgid "Set a property. This prompts for a property name and a value." msgstr "" #. type: item #: orgguide.texi:1272 #, no-wrap msgid "C-c C-c d" msgstr "" #. type: table #: orgguide.texi:1274 msgid "Remove a property from the current entry." msgstr "" #. type: Plain text #: orgguide.texi:1280 msgid "" "To create sparse trees and special lists with selection based on properties, " "the same commands are used as for tag searches (@pxref{Tag searches}). The " "syntax for the search string is described in @ref{Matching tags and " "properties}." msgstr "" #. type: Plain text #: orgguide.texi:1289 msgid "" "@seealso{ " "@uref{http://orgmode.org/manual/Properties-and-Columns.html#Properties-and-Columns, " "Chapter 7 of the manual}@* " "@uref{http://orgmode.org/worg/org-tutorials/org-column-view-tutorial.php,Bastien " "Guerry's column view tutorial}}" msgstr "" #. type: Plain text #: orgguide.texi:1296 msgid "" "To assist project planning, TODO items can be labeled with a date and/or a " "time. The specially formatted string carrying the date and time information " "is called a @emph{timestamp} in Org mode." msgstr "" #. type: Plain text #: orgguide.texi:1314 msgid "" "A timestamp is a specification of a date (possibly with a time or a range of " "times) in a special format, either @samp{<2003-09-16 Tue>} or " "@samp{<2003-09-16 Tue 09:39>} or @samp{<2003-09-16 Tue 12:00-12:30>}. A " "timestamp can appear anywhere in the headline or body of an Org tree entry. " "Its presence causes entries to be shown on specific dates in the agenda " "(@pxref{Weekly/daily agenda}). We distinguish:" msgstr "" #. type: Plain text #: orgguide.texi:1318 msgid "" "A simple timestamp just assigns a date/time to an item. This is just like " "writing down an appointment or event in a paper agenda." msgstr "" #. type: smallexample #: orgguide.texi:1324 #, no-wrap msgid "" "* Meet Peter at the movies\n" " <2006-11-01 Wed 19:15>\n" "* Discussion on climate change\n" " <2006-11-02 Thu 20:00-22:00>\n" msgstr "" #. type: Plain text #: orgguide.texi:1331 msgid "" "A timestamp may contain a @emph{repeater interval}, indicating that it " "applies not only on the given date, but again and again after a certain " "interval of N days (d), weeks (w), months (m), or years (y). The following " "will show up in the agenda every Wednesday:" msgstr "" #. type: smallexample #: orgguide.texi:1334 #, no-wrap msgid "" "* Pick up Sam at school\n" " <2007-05-16 Wed 12:30 +1w>\n" msgstr "" #. type: Plain text #: orgguide.texi:1340 msgid "" "For more complex date specifications, Org mode supports using the special " "sexp diary entries implemented in the Emacs calendar/diary package. For " "example" msgstr "" #. type: smallexample #: orgguide.texi:1343 #, no-wrap msgid "" "* The nerd meeting on every 2nd Thursday of the month\n" " <%%(diary-float t 4 2)>\n" msgstr "" #. type: Plain text #: orgguide.texi:1347 msgid "Two timestamps connected by @samp{--} denote a range." msgstr "" #. type: smallexample #: orgguide.texi:1350 #, no-wrap msgid "" "** Meeting in Amsterdam\n" " <2004-08-23 Mon>--<2004-08-26 Thu>\n" msgstr "" #. type: Plain text #: orgguide.texi:1356 msgid "" "Just like a plain timestamp, but with square brackets instead of angular " "ones. These timestamps are inactive in the sense that they do @emph{not} " "trigger an entry to show up in the agenda." msgstr "" #. type: smallexample #: orgguide.texi:1360 #, no-wrap msgid "" "* Gillian comes late for the fifth time\n" " [2006-11-01 Wed]\n" msgstr "" #. type: Plain text #: orgguide.texi:1369 msgid "" "For Org mode to recognize timestamps, they need to be in the specific " "format. All commands listed below produce timestamps in the correct format." msgstr "" #. type: item #: orgguide.texi:1371 #, no-wrap msgid "C-c ." msgstr "" #. type: table #: orgguide.texi:1378 msgid "" "Prompt for a date and insert a corresponding timestamp. When the cursor is " "at an existing timestamp in the buffer, the command is used to modify this " "timestamp instead of inserting a new one. When this command is used twice " "in succession, a time range is inserted. With a prefix, also add the " "current time." msgstr "" #. type: item #: orgguide.texi:1378 #, no-wrap msgid "C-c !" msgstr "" #. type: table #: orgguide.texi:1382 msgid "" "Like @kbd{C-c .}, but insert an inactive timestamp that will not cause an " "agenda entry." msgstr "" #. type: item #: orgguide.texi:1382 #, no-wrap msgid "S-@key{left}@r{/}@key{right}" msgstr "" #. type: table #: orgguide.texi:1385 msgid "Change date at cursor by one day." msgstr "" #. type: item #: orgguide.texi:1385 #, no-wrap msgid "S-@key{up}@r{/}@key{down}" msgstr "" #. type: table #: orgguide.texi:1391 msgid "" "Change the item under the cursor in a timestamp. The cursor can be on a " "year, month, day, hour or minute. When the timestamp contains a time range " "like @samp{15:30-16:30}, modifying the first time will also shift the " "second, shifting the time block with constant length. To change the length, " "modify the second time." msgstr "" #. type: Plain text #: orgguide.texi:1398 msgid "" "When Org mode prompts for a date/time, it will accept any string containing " "some date and/or time information, and intelligently interpret the string, " "deriving defaults for unspecified information from the current date and " "time. You can also select a date in the pop-up calendar. See the manual " "for more information on how exactly the date/time prompt works." msgstr "" #. type: Plain text #: orgguide.texi:1403 msgid "A timestamp may be preceded by special keywords to facilitate planning:" msgstr "" #. type: Plain text #: orgguide.texi:1407 msgid "" "Meaning: the task (most likely a TODO item, though not necessarily) is " "supposed to be finished on that date." msgstr "" #. type: item #: orgguide.texi:1408 orgguide.texi:1979 #, no-wrap msgid "C-c C-d" msgstr "" #. type: table #: orgguide.texi:1411 msgid "" "Insert @samp{DEADLINE} keyword along with a stamp, in the line following the " "headline." msgstr "" #. type: Plain text #: orgguide.texi:1418 msgid "" "On the deadline date, the task will be listed in the agenda. In addition, " "the agenda for @emph{today} will carry a warning about the approaching or " "missed deadline, starting @code{org-deadline-warning-days} before the due " "date, and continuing until the entry is marked DONE. An example:" msgstr "" #. type: smallexample #: orgguide.texi:1423 #, no-wrap msgid "" "*** TODO write article about the Earth for the Guide\n" " The editor in charge is [[bbdb:Ford Prefect]]\n" " DEADLINE: <2004-02-29 Sun>\n" msgstr "" #. type: Plain text #: orgguide.texi:1431 msgid "" "Meaning: you are @i{planning to start working} on that task on the given " "date@footnote{This is quite different from what is normally understood by " "@i{scheduling a meeting}, which is done in Org-mode by just inserting a time " "stamp without keyword.}." msgstr "" #. type: item #: orgguide.texi:1433 orgguide.texi:1976 #, no-wrap msgid "C-c C-s" msgstr "" #. type: table #: orgguide.texi:1436 msgid "" "Insert @samp{SCHEDULED} keyword along with a stamp, in the line following " "the headline." msgstr "" #. type: Plain text #: orgguide.texi:1444 msgid "" "The headline will be listed under the given date@footnote{It will still be " "listed on that date after it has been marked DONE. If you don't like this, " "set the variable @code{org-agenda-skip-scheduled-if-done}.}. In addition, a " "reminder that the scheduled date has passed will be present in the " "compilation for @emph{today}, until the entry is marked DONE. I.e.@: the " "task will automatically be forwarded until completed." msgstr "" #. type: smallexample #: orgguide.texi:1448 #, no-wrap msgid "" "*** TODO Call Trillian for a date on New Years Eve.\n" " SCHEDULED: <2004-12-25 Sat>\n" msgstr "" #. type: Plain text #: orgguide.texi:1453 msgid "" "Some tasks need to be repeated again and again. Org mode helps to organize " "such tasks using a so-called repeater in a DEADLINE, SCHEDULED, or plain " "timestamp. In the following example" msgstr "" #. type: smallexample #: orgguide.texi:1456 #, no-wrap msgid "" "** TODO Pay the rent\n" " DEADLINE: <2005-10-01 Sat +1m>\n" msgstr "" #. type: Plain text #: orgguide.texi:1461 msgid "" "the @code{+1m} is a repeater; the intended interpretation is that the task " "has a deadline on <2005-10-01> and repeats itself every (one) month starting " "from that time." msgstr "" #. type: Plain text #: orgguide.texi:1467 msgid "" "Org mode allows you to clock the time you spend on specific tasks in a " "project." msgstr "" #. type: item #: orgguide.texi:1469 #, no-wrap msgid "C-c C-x C-i" msgstr "" #. type: table #: orgguide.texi:1474 msgid "" "Start the clock on the current item (clock-in). This inserts the CLOCK " "keyword together with a timestamp. When called with a @kbd{C-u} prefix " "argument, select the task from a list of recently clocked tasks." msgstr "" #. type: item #: orgguide.texi:1474 #, no-wrap msgid "C-c C-x C-o" msgstr "" #. type: table #: orgguide.texi:1479 msgid "" "Stop the clock (clock-out). This inserts another timestamp at the same " "location where the clock was last started. It also directly computes the " "resulting time in inserts it after the time range as @samp{=> HH:MM}." msgstr "" #. type: item #: orgguide.texi:1479 #, no-wrap msgid "C-c C-x C-e" msgstr "" #. type: table #: orgguide.texi:1481 msgid "Update the effort estimate for the current clock task." msgstr "" #. type: item #: orgguide.texi:1481 #, no-wrap msgid "C-c C-x C-x" msgstr "" #. type: table #: orgguide.texi:1484 msgid "" "Cancel the current clock. This is useful if a clock was started by mistake, " "or if you ended up working on something else." msgstr "" #. type: item #: orgguide.texi:1484 #, no-wrap msgid "C-c C-x C-j" msgstr "" #. type: table #: orgguide.texi:1488 msgid "" "Jump to the entry that contains the currently running clock. With a " "@kbd{C-u} prefix arg, select the target task from a list of recently clocked " "tasks." msgstr "" #. type: item #: orgguide.texi:1488 #, no-wrap msgid "C-c C-x C-r" msgstr "" #. type: table #: orgguide.texi:1492 msgid "" "Insert a dynamic block containing a clock report as an Org-mode table into " "the current file. When the cursor is at an existing clock table, just " "update it." msgstr "" #. type: smallexample #: orgguide.texi:1495 #, no-wrap msgid "" "#+BEGIN: clocktable :maxlevel 2 :emphasize nil :scope file\n" "#+END: clocktable\n" msgstr "" #. type: table #: orgguide.texi:1498 msgid "" "For details about how to customize this view, see " "@uref{http://orgmode.org/manual/Clocking-work-time.html#Clocking-work-time,the " "manual}." msgstr "" #. type: table #: orgguide.texi:1501 msgid "" "Update dynamic block at point. The cursor needs to be in the @code{#+BEGIN} " "line of the dynamic block." msgstr "" #. type: Plain text #: orgguide.texi:1506 msgid "" "The @kbd{l} key may be used in the timeline (@pxref{Timeline}) and in the " "agenda (@pxref{Weekly/daily agenda}) to show which tasks have been worked on " "or closed during a day." msgstr "" #. type: Plain text #: orgguide.texi:1513 msgid "" "@seealso{ " "@uref{http://orgmode.org/manual/Dates-and-Times.html#Dates-and-Times, " "Chapter 8 of the manual}@* " "@uref{http://members.optusnet.com.au/~charles57/GTD/org_dates/, Charles " "Cave's Date and Time tutorial}@* " "@uref{http://doc.norang.ca/org-mode.html#Clocking, Bernt Hansen's clocking " "workflow}}" msgstr "" #. type: Plain text #: orgguide.texi:1523 msgid "" "An important part of any organization system is the ability to quickly " "capture new ideas and tasks, and to associate reference material with them. " "Org defines a capture process to create tasks. It stores files related to a " "task (@i{attachments}) in a special directory. Once in the system, tasks " "and projects need to be moved around. Moving completed project trees to an " "archive file keeps the system compact and fast." msgstr "" #. type: Plain text #: orgguide.texi:1537 msgid "" "Org's method for capturing new items is heavily inspired by John Wiegley " "excellent remember package. It lets you store quick notes with little " "interruption of your work flow. Org lets you define templates for new " "entries and associate them with different targets for storing notes." msgstr "" #. type: Plain text #: orgguide.texi:1552 msgid "" "The following customization sets a default target@footnote{Using capture " "templates, you can define more fine-grained capture locations, see " "@ref{Capture templates}.} file for notes, and defines a global " "key@footnote{Please select your own key, @kbd{C-c c} is only a suggestion.} " "for capturing new stuff." msgstr "" #. type: example #: orgguide.texi:1556 #, no-wrap msgid "" "(setq org-default-notes-file (concat org-directory \"/notes.org\"))\n" "(define-key global-map \"\\C-cc\" 'org-capture)\n" msgstr "" #. type: item #: orgguide.texi:1562 #, no-wrap msgid "C-c c" msgstr "" #. type: table #: orgguide.texi:1565 msgid "" "Start a capture process. You will be placed into a narrowed indirect buffer " "to edit the item." msgstr "" #. type: table #: orgguide.texi:1569 msgid "" "Once you are done entering information into the capture buffer, @kbd{C-c " "C-c} will return you to the window configuration before the capture process, " "so that you can resume your work without further distraction." msgstr "" #. type: table #: orgguide.texi:1571 msgid "Finalize by moving the entry to a refile location (@pxref{Refile and copy})." msgstr "" #. type: item #: orgguide.texi:1571 #, no-wrap msgid "C-c C-k" msgstr "" #. type: table #: orgguide.texi:1573 msgid "Abort the capture process and return to the previous state." msgstr "" #. type: Plain text #: orgguide.texi:1583 msgid "" "You can use templates to generate different types of capture notes, and to " "store them in different places. For example, if you would like to store new " "tasks under a heading @samp{Tasks} in file @file{TODO.org}, and journal " "entries in a date tree in @file{journal.org} you could use:" msgstr "" #. type: smallexample #: orgguide.texi:1590 #, no-wrap msgid "" "(setq org-capture-templates\n" " '((\"t\" \"Todo\" entry (file+headline \"~/org/gtd.org\" \"Tasks\")\n" " \"* TODO %?\\n %i\\n %a\")\n" " (\"j\" \"Journal\" entry (file+datetree \"~/org/journal.org\")\n" " \"* %?\\nEntered on %U\\n %i\\n %a\")))\n" msgstr "" #. type: Plain text #: orgguide.texi:1597 msgid "" "template, the second is a short description. Then follows the type of the " "entry and a definition of the target location for storing the note. " "Finally, the template itself, a string with %-escapes to fill in information " "based on time and context." msgstr "" #. type: Plain text #: orgguide.texi:1600 msgid "" "When you call @kbd{M-x org-capture}, Org will prompt for a key to select the " "template (if you have more than one template) and then prepare the buffer " "like" msgstr "" #. type: smallexample #: orgguide.texi:1603 #, no-wrap msgid "" "* TODO\n" " [[file:@var{link to where you were when initiating capture}]]\n" msgstr "" #. type: Plain text #: orgguide.texi:1610 msgid "" "During expansion of the template, special @kbd{%}-escapes@footnote{If you " "need one of these sequences literally, escape the @kbd{%} with a backslash.} " "allow dynamic insertion of content. Here is a small selection of the " "possibilities, consult the manual for more." msgstr "" #. type: smallexample #: orgguide.texi:1616 #, no-wrap msgid "" "%a @r{annotation, normally the link created with " "@code{org-store-link}}\n" "%i @r{initial content, the region when remember is called with " "C-u.}\n" "%t @r{timestamp, date only}\n" "%T @r{timestamp with date and time}\n" "%u, %U @r{like the above, but inactive timestamps}\n" msgstr "" #. type: Plain text #: orgguide.texi:1625 msgid "" "When reviewing the captured data, you may want to refile or copy some of the " "entries into a different list, for example into a project. Cutting, finding " "the right location, and then pasting the note is cumbersome. To simplify " "this process, you can use the following special command:" msgstr "" #. type: item #: orgguide.texi:1627 #, no-wrap msgid "C-c M-x" msgstr "" #. type: table #: orgguide.texi:1630 msgid "" "Copy the entry or region at point. This command behaves like " "@code{org-refile}, except that the original note will not be deleted." msgstr "" #. type: table #: orgguide.texi:1637 msgid "" "Refile the entry or region at point. This command offers possible locations " "for refiling the entry and lets you select one with completion. The item " "(or all items in the region) is filed below the target heading as a " "subitem.@* By default, all level 1 headlines in the current buffer are " "considered to be targets, but you can have more complex definitions across a " "number of files. See the variable @code{org-refile-targets} for details." msgstr "" #. type: item #: orgguide.texi:1637 #, no-wrap msgid "C-u C-c C-w" msgstr "" #. type: table #: orgguide.texi:1639 msgid "Use the refile interface to jump to a heading." msgstr "" #. type: item #: orgguide.texi:1639 #, no-wrap msgid "C-u C-u C-c C-w" msgstr "" #. type: table #: orgguide.texi:1641 msgid "Jump to the location where @code{org-refile} last moved a tree to." msgstr "" #. type: Plain text #: orgguide.texi:1652 msgid "" "When a project represented by a (sub)tree is finished, you may want to move " "the tree out of the way and to stop it from contributing to the agenda. " "Archiving is important to keep your working files compact and global " "searches like the construction of agenda views fast. The most common " "archiving action is to move a project tree to another file, the archive " "file." msgstr "" #. type: item #: orgguide.texi:1654 #, no-wrap msgid "C-c C-x C-a" msgstr "" #. type: table #: orgguide.texi:1657 msgid "" "Archive the current entry using the command specified in the variable " "@code{org-archive-default-command}." msgstr "" #. type: item #: orgguide.texi:1657 #, no-wrap msgid "C-c C-x C-s@ @r{or short} @ C-c $" msgstr "" #. type: table #: orgguide.texi:1660 msgid "" "Archive the subtree starting at the cursor position to the location given by " "@code{org-archive-location}." msgstr "" #. type: Plain text #: orgguide.texi:1668 msgid "" "The default archive location is a file in the same directory as the current " "file, with the name derived by appending @file{_archive} to the current file " "name. For information and examples on how to change this, see the " "documentation string of the variable @code{org-archive-location}. There is " "also an in-buffer option for setting this variable, for example" msgstr "" #. type: smallexample #: orgguide.texi:1671 #, no-wrap msgid "#+ARCHIVE: %s_done::\n" msgstr "" #. type: Plain text #: orgguide.texi:1680 msgid "" "@seealso{ " "@uref{http://orgmode.org/manual/Capture-_002d-Refile-_002d-Archive.html#Capture-_002d-Refile-_002d-Archive, " "Chapter 9 of the manual}@* " "@uref{http://members.optusnet.com.au/~charles57/GTD/remember.html, Charles " "Cave's remember tutorial}@* " "@uref{http://orgmode.org/worg/org-tutorials/org-protocol-custom-handler.php, " "Sebastian Rose's tutorial for capturing from a web browser}}@uref{}@*" msgstr "" #. type: Plain text #: orgguide.texi:1689 msgid "" "Due to the way Org works, TODO items, time-stamped items, and tagged " "headlines can be scattered throughout a file or even a number of files. To " "get an overview of open action items, or of events that are important for a " "particular date, this information must be collected, sorted and displayed in " "an organized way. There are several different views, see below." msgstr "" #. type: Plain text #: orgguide.texi:1697 msgid "" "The extracted information is displayed in a special @emph{agenda buffer}. " "This buffer is read-only, but provides commands to visit the corresponding " "locations in the original Org files, and even to edit these files remotely. " "Remote editing from the agenda buffer means, for example, that you can " "change the dates of deadlines and appointments from the agenda buffer. The " "commands available in the Agenda buffer are listed in @ref{Agenda commands}." msgstr "" #. type: Plain text #: orgguide.texi:1712 msgid "" "The information to be shown is normally collected from all @emph{agenda " "files}, the files listed in the variable @code{org-agenda-files}." msgstr "" #. type: item #: orgguide.texi:1714 #, no-wrap msgid "C-c [" msgstr "" #. type: table #: orgguide.texi:1718 msgid "" "Add current file to the list of agenda files. The file is added to the " "front of the list. If it was already in the list, it is moved to the " "front. With a prefix argument, file is added/moved to the end." msgstr "" #. type: item #: orgguide.texi:1718 #, no-wrap msgid "C-c ]" msgstr "" #. type: table #: orgguide.texi:1720 msgid "Remove current file from the list of agenda files." msgstr "" #. type: item #: orgguide.texi:1720 #, no-wrap msgid "C-," msgstr "" #. type: table #: orgguide.texi:1722 msgid "Cycle through agenda file list, visiting one file after the other." msgstr "" #. type: section #: orgguide.texi:1725 #, no-wrap msgid "The agenda dispatcher" msgstr "" #. type: Plain text #: orgguide.texi:1730 msgid "" "The views are created through a dispatcher, which should be bound to a " "global key---for example @kbd{C-c a} (@pxref{Installation}). After pressing " "@kbd{C-c a}, an additional letter is required to execute a command:" msgstr "" #. type: item #: orgguide.texi:1731 #, no-wrap msgid "a" msgstr "" #. type: table #: orgguide.texi:1733 msgid "The calendar-like agenda (@pxref{Weekly/daily agenda})." msgstr "" #. type: item #: orgguide.texi:1733 #, no-wrap msgid "t @r{/} T" msgstr "" #. type: table #: orgguide.texi:1735 msgid "A list of all TODO items (@pxref{Global TODO list})." msgstr "" #. type: item #: orgguide.texi:1735 #, no-wrap msgid "m @r{/} M" msgstr "" #. type: table #: orgguide.texi:1738 msgid "" "A list of headlines matching a TAGS expression (@pxref{Matching tags and " "properties})." msgstr "" #. type: item #: orgguide.texi:1738 #, no-wrap msgid "L" msgstr "" #. type: table #: orgguide.texi:1740 msgid "The timeline view for the current buffer (@pxref{Timeline})." msgstr "" #. type: item #: orgguide.texi:1740 orgguide.texi:1940 #, no-wrap msgid "s" msgstr "" #. type: table #: orgguide.texi:1743 msgid "" "A list of entries selected by a boolean expression of keywords and/or " "regular expressions that must or must not occur in the entry." msgstr "" #. type: subsection #: orgguide.texi:1757 #, no-wrap msgid "The weekly/daily agenda" msgstr "" #. type: Plain text #: orgguide.texi:1761 msgid "" "The purpose of the weekly/daily @emph{agenda} is to act like a page of a " "paper agenda, showing all the tasks for the current week or day." msgstr "" #. type: item #: orgguide.texi:1763 #, no-wrap msgid "C-c a a" msgstr "" #. type: table #: orgguide.texi:1766 msgid "" "Compile an agenda for the current week from a list of Org files. The agenda " "shows the entries for each day." msgstr "" #. type: Plain text #: orgguide.texi:1771 msgid "" "Emacs contains the calendar and diary by Edward M. Reingold. Org-mode " "understands the syntax of the diary and allows you to use diary sexp entries " "directly in Org files:" msgstr "" #. type: smallexample #: orgguide.texi:1779 #, no-wrap msgid "" "* Birthdays and similar stuff\n" "#+CATEGORY: Holiday\n" "%%(org-calendar-holiday) ; special function for holiday names\n" "#+CATEGORY: Ann\n" "%%(diary-anniversary 5 14 1956)@footnote{Note that the order of the " "arguments (month, day, year) depends on the setting of " "@code{calendar-date-style}.} Arthur Dent is %d years old\n" "%%(diary-anniversary 10 2 1869) Mahatma Gandhi would be %d years old\n" msgstr "" #. type: Plain text #: orgguide.texi:1784 msgid "" "Org can interact with Emacs appointments notification facility. To add all " "the appointments of your agenda files, use the command " "@code{org-agenda-to-appt}. See the docstring for details." msgstr "" #. type: subsection #: orgguide.texi:1786 #, no-wrap msgid "The global TODO list" msgstr "" #. type: Plain text #: orgguide.texi:1792 msgid "" "The global TODO list contains all unfinished TODO items formatted and " "collected into a single place. Remote editing of TODO items lets you can " "change the state of a TODO entry with a single key press. The commands " "available in the TODO list are described in @ref{Agenda commands}." msgstr "" #. type: table #: orgguide.texi:1797 msgid "" "Show the global TODO list. This collects the TODO items from all agenda " "files (@pxref{Agenda Views}) into a single buffer." msgstr "" #. type: item #: orgguide.texi:1797 #, no-wrap msgid "C-c a T" msgstr "" #. type: table #: orgguide.texi:1799 msgid "Like the above, but allows selection of a specific TODO keyword." msgstr "" #. type: Plain text #: orgguide.texi:1810 msgid "" "If headlines in the agenda files are marked with @emph{tags} (@pxref{Tags}), " "or have properties (@pxref{Properties}), you can select headlines based on " "this metadata and collect them into an agenda buffer. The match syntax " "described here also applies when creating sparse trees with @kbd{C-c / m}. " "The commands available in the tags list are described in @ref{Agenda " "commands}." msgstr "" #. type: table #: orgguide.texi:1818 msgid "" "Produce a list of all headlines that match a given set of tags. The command " "prompts for a selection criterion, which is a boolean logic expression with " "tags, like @samp{+work+urgent-withboss} or @samp{work|home} (@pxref{Tags}). " "If you often need a specific search, define a custom command for it " "(@pxref{Agenda dispatcher})." msgstr "" #. type: table #: orgguide.texi:1820 msgid "Like @kbd{C-c a m}, but only select headlines that are also TODO items." msgstr "" #. type: subsubheading #: orgguide.texi:1822 #, no-wrap msgid "Match syntax" msgstr "" #. type: Plain text #: orgguide.texi:1832 msgid "" "A search string can use Boolean operators @samp{&} for AND and @samp{|} for " "OR. @samp{&} binds more strongly than @samp{|}. Parentheses are currently " "not implemented. Each element in the search is either a tag, a regular " "expression matching tags, or an expression like @code{PROPERTY OPERATOR " "VALUE} with a comparison operator, accessing a property value. Each element " "may be preceded by @samp{-}, to select against it, and @samp{+} is syntactic " "sugar for positive selection. The AND operator @samp{&} is optional when " "@samp{+} or @samp{-} is present. Here are some examples, using only tags." msgstr "" #. type: item #: orgguide.texi:1834 #, no-wrap msgid "+work-boss" msgstr "" #. type: table #: orgguide.texi:1837 msgid "" "Select headlines tagged @samp{:work:}, but discard those also tagged " "@samp{:boss:}." msgstr "" #. type: item #: orgguide.texi:1837 #, no-wrap msgid "work|laptop" msgstr "" #. type: table #: orgguide.texi:1839 msgid "Selects lines tagged @samp{:work:} or @samp{:laptop:}." msgstr "" #. type: item #: orgguide.texi:1839 #, no-wrap msgid "work|laptop+night" msgstr "" #. type: table #: orgguide.texi:1842 msgid "" "Like before, but require the @samp{:laptop:} lines to be tagged also " "@samp{:night:}." msgstr "" #. type: Plain text #: orgguide.texi:1846 msgid "" "You may also test for properties at the same time as matching tags, see the " "manual for more information." msgstr "" #. type: subsection #: orgguide.texi:1848 #, no-wrap msgid "Timeline for a single file" msgstr "" #. type: Plain text #: orgguide.texi:1853 msgid "" "The timeline summarizes all time-stamped items from a single Org mode file " "in a @emph{time-sorted view}. The main purpose of this command is to give " "an overview over events in a project." msgstr "" #. type: item #: orgguide.texi:1855 #, no-wrap msgid "C-c a L" msgstr "" #. type: table #: orgguide.texi:1859 msgid "" "Show a time-sorted view of the Org file, with all time-stamped items. When " "called with a @kbd{C-u} prefix, all unfinished TODO entries (scheduled or " "not) are also listed under the current date." msgstr "" #. type: Plain text #: orgguide.texi:1866 msgid "" "This agenda view is a general text search facility for Org mode entries. It " "is particularly useful to find notes." msgstr "" #. type: item #: orgguide.texi:1868 #, no-wrap msgid "C-c a s" msgstr "" #. type: table #: orgguide.texi:1871 msgid "" "This is a special search that lets you select entries by matching a " "substring or specific words using a boolean logic." msgstr "" #. type: Plain text #: orgguide.texi:1880 msgid "" "For example, the search string @samp{computer equipment} will find entries " "that contain @samp{computer equipment} as a substring. Search view can also " "search for specific keywords in the entry, using Boolean logic. The search " "string @samp{+computer +wifi -ethernet -@{8\\.11[bg]@}} will search for note " "entries that contain the keywords @code{computer} and @code{wifi}, but not " "the keyword @code{ethernet}, and which are also not matched by the regular " "expression @code{8\\.11[bg]}, meaning to exclude both 8.11b and 8.11g." msgstr "" #. type: Plain text #: orgguide.texi:1883 msgid "" "Note that in addition to the agenda files, this command will also search the " "files listed in @code{org-agenda-text-search-extra-files}." msgstr "" #. type: section #: orgguide.texi:1885 #, no-wrap msgid "Commands in the agenda buffer" msgstr "" #. type: Plain text #: orgguide.texi:1892 msgid "" "Entries in the agenda buffer are linked back to the Org file or diary file " "where they originate. Commands are provided to show and jump to the " "original entry location, and to edit the Org files ``remotely'' from the " "agenda buffer. This is just a selection of the many commands, explore the " "@code{Agenda} menu and the manual for a complete list." msgstr "" #. type: table #: orgguide.texi:1895 msgid "@tsubheading{Motion}" msgstr "" #. type: item #: orgguide.texi:1895 #, no-wrap msgid "n" msgstr "" #. type: table #: orgguide.texi:1897 msgid "Next line (same as @key{up} and @kbd{C-p})." msgstr "" #. type: item #: orgguide.texi:1897 #, no-wrap msgid "p" msgstr "" #. type: table #: orgguide.texi:1900 msgid "" "Previous line (same as @key{down} and @kbd{C-n}). @tsubheading{View/Go to " "Org file}" msgstr "" #. type: item #: orgguide.texi:1900 #, no-wrap msgid "mouse-3" msgstr "" #. type: key{#1} #: orgguide.texi:1901 #, no-wrap msgid "SPC" msgstr "" #. type: table #: orgguide.texi:1906 msgid "" "Display the original location of the item in another window. With prefix " "arg, make sure that the entire entry is made visible in the outline, not " "only the heading." msgstr "" #. type: table #: orgguide.texi:1910 msgid "" "Go to the original location of the item in another window. Under Emacs 22, " "@kbd{mouse-1} will also work for this." msgstr "" #. type: table #: orgguide.texi:1913 msgid "Go to the original location of the item and delete other windows." msgstr "" #. type: table #: orgguide.texi:1915 msgid "@tsubheading{Change display}" msgstr "" #. type: item #: orgguide.texi:1915 #, no-wrap msgid "o" msgstr "" #. type: table #: orgguide.texi:1918 msgid "Delete other windows." msgstr "" #. type: item #: orgguide.texi:1918 #, no-wrap msgid "d @r{/} w" msgstr "" #. type: table #: orgguide.texi:1921 msgid "Switch to day/week view." msgstr "" #. type: item #: orgguide.texi:1921 #, no-wrap msgid "f @r{and} b" msgstr "" #. type: table #: orgguide.texi:1926 msgid "" "Go forward/backward in time to display the following " "@code{org-agenda-current-span} days. For example, if the display covers a " "week, switch to the following/previous week." msgstr "" #. type: item #: orgguide.texi:1926 #, no-wrap msgid "." msgstr "" #. type: table #: orgguide.texi:1929 msgid "Go to today." msgstr "" #. type: item #: orgguide.texi:1929 #, no-wrap msgid "j" msgstr "" #. type: table #: orgguide.texi:1932 msgid "Prompt for a date and go there." msgstr "" #. type: item #: orgguide.texi:1932 #, no-wrap msgid "v l @ @r{or short} @ l" msgstr "" #. type: table #: orgguide.texi:1938 msgid "" "Toggle Logbook mode. In Logbook mode, entries that were marked DONE while " "logging was on (variable @code{org-log-done}) are shown in the agenda, as " "are entries that have been clocked on that day. When called with a " "@kbd{C-u} prefix, show all possible logbook entries, including state " "changes." msgstr "" #. type: item #: orgguide.texi:1938 #, no-wrap msgid "r @r{or} g" msgstr "" #. type: table #: orgguide.texi:1940 msgid "Recreate the agenda buffer, to reflect the changes." msgstr "" #. type: table #: orgguide.texi:1943 msgid "" "Save all Org buffers in the current Emacs session, and also the locations of " "IDs." msgstr "" #. type: table #: orgguide.texi:1945 msgid "@tsubheading{Secondary filtering and query editing}" msgstr "" #. type: item #: orgguide.texi:1946 #, no-wrap msgid "/" msgstr "" #. type: table #: orgguide.texi:1949 msgid "" "Filter the current agenda view with respect to a tag. You are prompted for " "a letter to select a tag. Press @samp{-} first to select against the tag." msgstr "" #. type: item #: orgguide.texi:1950 #, no-wrap msgid "\\" msgstr "" #. type: table #: orgguide.texi:1952 msgid "Narrow the current agenda filter by an additional condition." msgstr "" #. type: table #: orgguide.texi:1954 msgid "@tsubheading{Remote editing (see the manual for many more commands)}" msgstr "" #. type: item #: orgguide.texi:1955 #, no-wrap msgid "0-9" msgstr "" #. type: table #: orgguide.texi:1958 msgid "Digit argument." msgstr "" #. type: item #: orgguide.texi:1958 #, no-wrap msgid "t" msgstr "" #. type: table #: orgguide.texi:1962 msgid "Change the TODO state of the item, in the agenda and in the org file." msgstr "" #. type: item #: orgguide.texi:1962 #, no-wrap msgid "C-k" msgstr "" #. type: table #: orgguide.texi:1966 msgid "" "Delete the current agenda item along with the entire subtree belonging to it " "in the original Org file." msgstr "" #. type: table #: orgguide.texi:1969 msgid "Refile the entry at point." msgstr "" #. type: item #: orgguide.texi:1969 #, no-wrap msgid "C-c C-x C-a @ @r{or short} @ a" msgstr "" #. type: table #: orgguide.texi:1973 msgid "" "Archive the subtree corresponding to the entry at point using the default " "archiving command set in @code{org-archive-default-command}." msgstr "" #. type: item #: orgguide.texi:1973 #, no-wrap msgid "C-c C-x C-s @ @r{or short} @ $" msgstr "" #. type: table #: orgguide.texi:1976 msgid "Archive the subtree corresponding to the current headline." msgstr "" #. type: table #: orgguide.texi:1979 msgid "Schedule this item, with prefix arg remove the scheduling timestamp" msgstr "" #. type: table #: orgguide.texi:1982 msgid "Set a deadline for this item, with prefix arg remove the deadline." msgstr "" #. type: item #: orgguide.texi:1982 #, no-wrap msgid "S-@key{right} @r{and} S-@key{left}" msgstr "" #. type: table #: orgguide.texi:1985 msgid "Change the timestamp associated with the current line by one day." msgstr "" #. type: item #: orgguide.texi:1985 #, no-wrap msgid "I" msgstr "" #. type: table #: orgguide.texi:1988 msgid "Start the clock on the current item." msgstr "" #. type: item #: orgguide.texi:1988 #, no-wrap msgid "O / X" msgstr "" #. type: table #: orgguide.texi:1990 msgid "Stop/cancel the previously started clock." msgstr "" #. type: item #: orgguide.texi:1991 #, no-wrap msgid "J" msgstr "" #. type: table #: orgguide.texi:1993 msgid "Jump to the running clock in another window." msgstr "" #. type: Plain text #: orgguide.texi:2007 msgid "" "The main application of custom searches is the definition of keyboard " "shortcuts for frequently used searches, either creating an agenda buffer, or " "a sparse tree (the latter covering of course only the current buffer). " "Custom commands are configured in the variable " "@code{org-agenda-custom-commands}. You can customize this variable, for " "example by pressing @kbd{C-c a C}. You can also directly set it with Emacs " "Lisp in @file{.emacs}. The following example contains all valid search " "types:" msgstr "" #. type: group #: orgguide.texi:2014 #, no-wrap msgid "" "(setq org-agenda-custom-commands\n" " '((\"w\" todo \"WAITING\")\n" " (\"u\" tags \"+boss-urgent\")\n" " (\"v\" tags-todo \"+boss-urgent\")))\n" msgstr "" #. type: Plain text #: orgguide.texi:2023 msgid "" "The initial string in each entry defines the keys you have to press after " "the dispatcher command @kbd{C-c a} in order to access the command. Usually " "this will be just a single character. The second parameter is the search " "type, followed by the string or regular expression to be used for the " "matching. The example above will therefore define:" msgstr "" #. type: item #: orgguide.texi:2025 #, no-wrap msgid "C-c a w" msgstr "" #. type: table #: orgguide.texi:2028 msgid "as a global search for TODO entries with @samp{WAITING} as the TODO keyword" msgstr "" #. type: item #: orgguide.texi:2028 #, no-wrap msgid "C-c a u" msgstr "" #. type: table #: orgguide.texi:2031 msgid "" "as a global tags search for headlines marked @samp{:boss:} but not " "@samp{:urgent:}" msgstr "" #. type: item #: orgguide.texi:2031 #, no-wrap msgid "C-c a v" msgstr "" #. type: table #: orgguide.texi:2034 msgid "" "as the same search as @kbd{C-c a u}, but limiting the search to headlines " "that are also TODO items" msgstr "" #. type: Plain text #: orgguide.texi:2043 msgid "" "@seealso{ @uref{http://orgmode.org/manual/Agenda-Views.html#Agenda-Views, " "Chapter 10 of the manual}@* " "@uref{http://orgmode.org/worg/org-tutorials/org-custom-agenda-commands.php, " "Mat Lundin's tutorial about custom agenda commands}@* " "@uref{http://www.newartisans.com/2007/08/using-org-mode-as-a-day-planner.html, " "John Wiegley's setup}}" msgstr "" #. type: Plain text #: orgguide.texi:2052 msgid "" "When exporting Org-mode documents, the exporter tries to reflect the " "structure of the document as accurately as possible in the backend. Since " "export targets like HTML, @LaTeX{}, or DocBook allow much richer formatting, " "Org mode has rules on how to prepare text for rich export. This section " "summarizes the markup rules used in an Org-mode buffer." msgstr "" #. type: Plain text #: orgguide.texi:2078 msgid "The title of the exported document is taken from the special line" msgstr "" #. type: smallexample #: orgguide.texi:2081 #, no-wrap msgid "#+TITLE: This is the title of the document\n" msgstr "" #. type: Plain text #: orgguide.texi:2093 msgid "" "The outline structure of the document as described in @ref{Document " "Structure}, forms the basis for defining sections of the exported document. " "However, since the outline structure is also used for (for example) lists of " "tasks, only the first three outline levels will be used as headings. Deeper " "levels will become itemized lists. You can change the location of this " "switch globally by setting the variable @code{org-export-headline-levels}, " "or on a per-file basis with a line" msgstr "" #. type: smallexample #: orgguide.texi:2096 #, no-wrap msgid "#+OPTIONS: H:4\n" msgstr "" #. type: Plain text #: orgguide.texi:2103 msgid "" "The table of contents is normally inserted directly before the first " "headline of the file." msgstr "" #. type: smallexample #: orgguide.texi:2107 #, no-wrap msgid "" "#+OPTIONS: toc:2 (only to two levels in TOC)\n" "#+OPTIONS: toc:nil (no TOC at all)\n" msgstr "" #. type: subheading #: orgguide.texi:2110 #, no-wrap msgid "Paragraphs, line breaks, and quoting" msgstr "" #. type: Plain text #: orgguide.texi:2114 msgid "" "Paragraphs are separated by at least one empty line. If you need to enforce " "a line break within a paragraph, use @samp{\\\\} at the end of a line." msgstr "" #. type: Plain text #: orgguide.texi:2117 msgid "" "To keep the line breaks in a region, but otherwise use normal formatting, " "you can use this construct, which can also be used to format poetry." msgstr "" #. type: smallexample #: orgguide.texi:2123 #, no-wrap msgid "" "#+BEGIN_VERSE\n" " Great clouds overhead\n" " Tiny black birds rise and fall\n" " Snow covers Emacs\n" "\n" msgstr "" #. type: smallexample #: orgguide.texi:2126 #, no-wrap msgid "" " -- AlexSchroeder\n" "#+END_VERSE\n" msgstr "" #. type: Plain text #: orgguide.texi:2131 msgid "" "When quoting a passage from another document, it is customary to format this " "as a paragraph that is indented on both the left and the right margin. You " "can include quotations in Org-mode documents like this:" msgstr "" #. type: smallexample #: orgguide.texi:2137 #, no-wrap msgid "" "#+BEGIN_QUOTE\n" "Everything should be made as simple as possible,\n" "but not any simpler -- Albert Einstein\n" "#+END_QUOTE\n" msgstr "" #. type: Plain text #: orgguide.texi:2140 msgid "If you would like to center some text, do it like this:" msgstr "" #. type: smallexample #: orgguide.texi:2145 #, no-wrap msgid "" "#+BEGIN_CENTER\n" "Everything should be made as simple as possible, \\\\\n" "but not any simpler\n" "#+END_CENTER\n" msgstr "" #. type: Plain text #: orgguide.texi:2155 msgid "" "You can make words @b{*bold*}, @i{/italic/}, _underlined_, @code{=code=} and " "@code{~verbatim~}, and, if you must, @samp{+strike-through+}. Text in the " "code and verbatim string is not processed for Org-mode specific syntax, it " "is exported verbatim. To insert a horizontal rules, use a line consisting " "of only dashes, and at least 5 of them." msgstr "" #. type: Plain text #: orgguide.texi:2164 msgid "" "Lines starting with zero or more whitespace characters followed by @samp{#} " "are treated as comments and will never be exported. Also entire subtrees " "starting with the word @samp{COMMENT} will never be exported. Finally, " "regions surrounded by @samp{#+BEGIN_COMMENT} ... @samp{#+END_COMMENT} will " "not be exported." msgstr "" #. type: item #: orgguide.texi:2166 #, no-wrap msgid "C-c ;" msgstr "" #. type: table #: orgguide.texi:2168 msgid "Toggle the COMMENT keyword at the beginning of an entry." msgstr "" #. type: section #: orgguide.texi:2171 #, no-wrap msgid "Images and Tables" msgstr "" #. type: Plain text #: orgguide.texi:2177 msgid "" "For Org mode tables, the lines before the first horizontal separator line " "will become table header lines. You can use the following lines somewhere " "before the table to assign a caption and a label for cross references, and " "in the text you can refer to the object with @code{\\ref@{tab:basic-data@}}:" msgstr "" #. type: smallexample #: orgguide.texi:2183 #, no-wrap msgid "" "#+CAPTION: This is the caption for the next table (or link)\n" "#+LABEL: tbl:basic-data\n" " | ... | ...|\n" " |-----|----|\n" msgstr "" #. type: Plain text #: orgguide.texi:2191 msgid "" "Some backends (HTML, @LaTeX{}, and DocBook) allow you to directly include " "images into the exported document. Org does this, if a link to an image " "files does not have a description part, for example @code{[[./img/a.jpg]]}. " "If you wish to define a caption for the image and maybe a label for internal " "cross references, you sure that the link is on a line by itself precede it " "with:" msgstr "" #. type: smallexample #: orgguide.texi:2196 #, no-wrap msgid "" "#+CAPTION: This is the caption for the next figure link (or table)\n" "#+LABEL: fig:SED-HR4049\n" "[[./img/a.jpg]]\n" msgstr "" #. type: Plain text #: orgguide.texi:2201 msgid "" "You may also define additional attributes for the figure. As this is " "backend-specific, see the sections about the individual backends for more " "information." msgstr "" #. type: Plain text #: orgguide.texi:2209 msgid "" "You can include literal examples that should not be subjected to markup. " "Such examples will be typeset in monospace, so this is well suited for " "source code and similar examples." msgstr "" #. type: smallexample #: orgguide.texi:2214 #, no-wrap msgid "" "#+BEGIN_EXAMPLE\n" "Some example from a text file.\n" "#+END_EXAMPLE\n" msgstr "" #. type: Plain text #: orgguide.texi:2219 msgid "" "For simplicity when using small examples, you can also start the example " "lines with a colon followed by a space. There may also be additional " "whitespace before the colon:" msgstr "" #. type: smallexample #: orgguide.texi:2223 #, no-wrap msgid "" "Here is an example\n" " : Some example from a text file.\n" msgstr "" #. type: Plain text #: orgguide.texi:2228 msgid "" "For source code from a programming language, or any other text that can be " "marked up by font-lock in Emacs, you can ask for it to look like the " "fontified Emacs buffer" msgstr "" #. type: smallexample #: orgguide.texi:2235 #, no-wrap msgid "" "#+BEGIN_SRC emacs-lisp\n" "(defun org-xor (a b)\n" " \"Exclusive or.\"\n" " (if a (not b) b))\n" "#+END_SRC\n" msgstr "" #. type: Plain text #: orgguide.texi:2239 msgid "" "To edit the example in a special buffer supporting this language, use " "@kbd{C-c '} to both enter and leave the editing buffer." msgstr "" #. type: Plain text #: orgguide.texi:2245 msgid "" "During export, you can include the content of another file. For example, to " "include your @file{.emacs} file, you could use:" msgstr "" #. type: smallexample #: orgguide.texi:2248 #, no-wrap msgid "#+INCLUDE: \"~/.emacs\" src emacs-lisp\n" msgstr "" #. type: Plain text #: orgguide.texi:2255 msgid "" "The optional second and third parameter are the markup (e.g.@: @samp{quote}, " "@samp{example}, or @samp{src}), and, if the markup is @samp{src}, the " "language for formatting the contents. The markup is optional, if it is not " "given, the text will be assumed to be in Org mode format and will be " "processed normally. @kbd{C-c '} will visit the included file." msgstr "" #. type: Plain text #: orgguide.texi:2263 msgid "" "For scientific notes which need to be able to contain mathematical symbols " "and the occasional formula, Org-mode supports embedding @LaTeX{} code into " "its files. You can directly use TeX-like macros for special symbols, enter " "formulas and entire @LaTeX{} environments." msgstr "" #. type: smallexample #: orgguide.texi:2269 #, no-wrap msgid "" "Angles are written as Greek letters \\alpha, \\beta and \\gamma. The mass " "if\n" "the sun is M_sun = 1.989 x 10^30 kg. The radius of the sun is R_@{sun@} =\n" "6.96 x 10^8 m. If $a^2=b$ and $b=2$, then the solution must be either\n" "$a=+\\sqrt@{2@}$ or $a=-\\sqrt@{2@}$.\n" "\n" msgstr "" #. type: smallexample #: orgguide.texi:2273 #, no-wrap msgid "" "\\begin@{equation@}\n" "x=\\sqrt@{b@}\n" "\\end@{equation@}\n" msgstr "" #. type: Plain text #: orgguide.texi:2277 msgid "" "@uref{http://orgmode.org/manual/LaTeX-fragments.html#LaTeX-fragments,special " "setup}, @LaTeX{} snippets will be included as images when exporting to HTML." msgstr "" #. type: Plain text #: orgguide.texi:2280 msgid "" "@seealso{ @uref{http://orgmode.org/manual/Markup.html#Markup, Chapter 11 of " "the manual}}" msgstr "" #. type: Plain text #: orgguide.texi:2289 msgid "" "Org-mode documents can be exported into a variety of other formats: ASCII " "export for inclusion into emails, HTML to publish on the web, @LaTeX{}/PDF " "for beautiful printed documents and DocBook to enter the world of many other " "formats using DocBook tools. There is also export to iCalendar format so " "that planning information can be incorporated into desktop calendars." msgstr "" #. type: Plain text #: orgguide.texi:2307 msgid "" "The exporter recognizes special lines in the buffer which provide additional " "information. These lines may be put anywhere in the file. The whole set of " "lines can be inserted into the buffer with @kbd{C-c C-e t}." msgstr "" #. type: item #: orgguide.texi:2309 #, no-wrap msgid "C-c C-e t" msgstr "" #. type: table #: orgguide.texi:2311 msgid "Insert template with export options, see example below." msgstr "" #. type: smallexample #: orgguide.texi:2327 #, no-wrap msgid "" "#+TITLE: the title to be shown (default is the buffer name)\n" "#+AUTHOR: the author (default taken from @code{user-full-name})\n" "#+DATE: a date, fixed, of a format string for " "@code{format-time-string}\n" "#+EMAIL: his/her email address (default from " "@code{user-mail-address})\n" "#+DESCRIPTION: the page description, e.g.@: for the XHTML meta tag\n" "#+KEYWORDS: the page keywords, e.g.@: for the XHTML meta tag\n" "#+LANGUAGE: language for HTML, e.g.@: @samp{en} " "(@code{org-export-default-language})\n" "#+TEXT: Some descriptive text to be inserted at the beginning.\n" "#+TEXT: Several lines may be given.\n" "#+OPTIONS: H:2 num:t toc:t \\n:nil @@:t ::t |:t ^:t f:t TeX:t ...\n" "#+LINK_UP: the ``up'' link of an exported page\n" "#+LINK_HOME: the ``home'' link of an exported page\n" "#+LATEX_HEADER: extra line(s) for the @LaTeX{} header, like " "\\usepackage@{xyz@}\n" msgstr "" #. type: Plain text #: orgguide.texi:2337 msgid "" "All export commands can be reached using the export dispatcher, which is a " "prefix key that prompts for an additional key specifying the command. " "Normally the entire file is exported, but if there is an active region that " "contains one outline tree, the first heading is used as document title and " "the subtrees are exported." msgstr "" #. type: item #: orgguide.texi:2339 #, no-wrap msgid "C-c C-e" msgstr "" #. type: table #: orgguide.texi:2341 msgid "Dispatcher for export and publishing commands." msgstr "" #. type: Plain text #: orgguide.texi:2349 msgid "" "ASCII export produces a simple and very readable version of an Org-mode " "file, containing only plain ASCII. Latin-1 and UTF-8 export augment the " "file with special characters and symbols available in these encodings." msgstr "" #. type: item #: orgguide.texi:2351 #, no-wrap msgid "C-c C-e a" msgstr "" #. type: table #: orgguide.texi:2353 msgid "Export as ASCII file." msgstr "" #. type: item #: orgguide.texi:2353 #, no-wrap msgid "C-c C-e n @ @ @r{and} @ @ C-c C-e N" msgstr "" #. type: table #: orgguide.texi:2355 msgid "Like the above commands, but use Latin-1 encoding." msgstr "" #. type: item #: orgguide.texi:2355 #, no-wrap msgid "C-c C-e u @ @ @r{and} @ @ C-c C-e U" msgstr "" #. type: table #: orgguide.texi:2357 msgid "Like the above commands, but use UTF-8 encoding." msgstr "" #. type: item #: orgguide.texi:2363 #, no-wrap msgid "C-c C-e h" msgstr "" #. type: table #: orgguide.texi:2365 msgid "Export as HTML file @file{myfile.html}." msgstr "" #. type: item #: orgguide.texi:2365 #, no-wrap msgid "C-c C-e b" msgstr "" #. type: table #: orgguide.texi:2367 msgid "Export as HTML file and immediately open it with a browser." msgstr "" #. type: Plain text #: orgguide.texi:2371 msgid "" "To insert HTML that should be copied verbatim to the exported file use " "either" msgstr "" #. type: smallexample #: orgguide.texi:2374 #, no-wrap msgid "#+HTML: Literal HTML code for export\n" msgstr "" #. type: smallexample #: orgguide.texi:2380 #, no-wrap msgid "" "#+BEGIN_HTML\n" "All lines between these markers are exported literally\n" "#+END_HTML\n" msgstr "" #. type: item #: orgguide.texi:2386 #, no-wrap msgid "C-c C-e l" msgstr "" #. type: table #: orgguide.texi:2388 msgid "Export as @LaTeX{} file @file{myfile.tex}." msgstr "" #. type: item #: orgguide.texi:2388 #, no-wrap msgid "C-c C-e p" msgstr "" #. type: table #: orgguide.texi:2390 msgid "Export as @LaTeX{} and then process to PDF." msgstr "" #. type: item #: orgguide.texi:2390 #, no-wrap msgid "C-c C-e d" msgstr "" #. type: table #: orgguide.texi:2392 msgid "" "Export as @LaTeX{} and then process to PDF, then open the resulting PDF " "file." msgstr "" #. type: Plain text #: orgguide.texi:2397 msgid "" "By default, the @LaTeX{} output uses the class @code{article}. You can " "change this by adding an option like @code{#+LaTeX_CLASS: myclass} in your " "file. The class must be listed in @code{org-export-latex-classes}." msgstr "" #. type: Plain text #: orgguide.texi:2402 msgid "" "Embedded @LaTeX{} as described in @ref{Embedded @LaTeX{}}, will be correctly " "inserted into the @LaTeX{} file. Similarly to the HTML exporter, you can " "use @code{#+LaTeX:} and @code{#+BEGIN_LaTeX ... #+END_LaTeX} construct to " "add verbatim @LaTeX{} code." msgstr "" #. type: item #: orgguide.texi:2407 #, no-wrap msgid "C-c C-e D" msgstr "" #. type: table #: orgguide.texi:2409 msgid "Export as DocBook file." msgstr "" #. type: Plain text #: orgguide.texi:2414 msgid "" "Similarly to the HTML exporter, you can use @code{#+DOCBOOK:} and " "@code{#+BEGIN_DOCBOOK ... #+END_DOCBOOK} construct to add verbatim @LaTeX{} " "code." msgstr "" #. type: item #: orgguide.texi:2419 #, no-wrap msgid "C-c C-e i" msgstr "" #. type: table #: orgguide.texi:2421 msgid "Create iCalendar entries for the current file in a @file{.ics} file." msgstr "" #. type: item #: orgguide.texi:2421 #, no-wrap msgid "C-c C-e c" msgstr "" #. type: table #: orgguide.texi:2425 msgid "" "Create a single large iCalendar file from all files in " "@code{org-agenda-files} and write it to the file given by " "@code{org-combined-agenda-icalendar-file}." msgstr "" #. type: Plain text #: orgguide.texi:2435 msgid "" "@seealso{ @uref{http://orgmode.org/manual/Exporting.html#Exporting, Chapter " "12 of the manual}@* " "@uref{http://orgmode.org/worg/org-tutorials/images-and-xhtml-export.php, " "Sebastian Rose's image handling tutorial}@* " "@uref{http://orgmode.org/worg/org-tutorials/org-latex-export.php, Thomas " "Dye's LaTeX export tutorial} " "@uref{http://orgmode.org/worg/org-tutorials/org-beamer/tutorial.php, Eric " "Fraga's BEAMER presentation tutorial}}" msgstr "" #. type: Plain text #: orgguide.texi:2444 msgid "" "Org includes a publishing management system that allows you to configure " "automatic HTML conversion of @emph{projects} composed of interlinked org " "files. You can also configure Org to automatically upload your exported " "HTML pages and related attachments, such as images and source code files, to " "a web server. For detailed instructions about setup, see the manual." msgstr "" #. type: Plain text #: orgguide.texi:2446 msgid "Here is an example:" msgstr "" #. type: smalllisp #: orgguide.texi:2457 #, no-wrap msgid "" "(setq org-publish-project-alist\n" " '((\"org\"\n" " :base-directory \"~/org/\"\n" " :publishing-directory \"~/public_html\"\n" " :section-numbers nil\n" " :table-of-contents nil\n" " :style \"\")))\n" msgstr "" #. type: item #: orgguide.texi:2460 #, no-wrap msgid "C-c C-e C" msgstr "" #. type: table #: orgguide.texi:2462 msgid "Prompt for a specific project and publish all files that belong to it." msgstr "" #. type: item #: orgguide.texi:2462 #, no-wrap msgid "C-c C-e P" msgstr "" #. type: table #: orgguide.texi:2464 msgid "Publish the project containing the current file." msgstr "" #. type: item #: orgguide.texi:2464 #, no-wrap msgid "C-c C-e F" msgstr "" #. type: table #: orgguide.texi:2466 msgid "Publish only the current file." msgstr "" #. type: item #: orgguide.texi:2466 #, no-wrap msgid "C-c C-e E" msgstr "" #. type: table #: orgguide.texi:2468 msgid "Publish every project." msgstr "" #. type: Plain text #: orgguide.texi:2474 msgid "" "Org uses timestamps to track when a file has changed. The above functions " "normally only publish changed files. You can override this and force " "publishing of all files by giving a prefix argument to any of the commands " "above." msgstr "" #. type: Plain text #: orgguide.texi:2482 msgid "" "@seealso{ @uref{http://orgmode.org/manual/Publishing.html#Publishing, " "Chapter 13 of the manual}@* " "@uref{http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.php, " "Sebastian Rose's publishing tutorial}@* " "@uref{http://orgmode.org/worg/org-tutorials/org-jekyll.php, Ian Barton's " "Jekyll/blogging setup}}" msgstr "" #. type: chapter #: orgguide.texi:2484 #, no-wrap msgid "Working with source code" msgstr "" #. type: Plain text #: orgguide.texi:2489 msgid "" "Org-mode provides a number of features for working with source code, " "including editing of code blocks in their native major-mode, evaluation of " "code blocks, tangling of code blocks, and exporting code blocks and their " "results in several formats." msgstr "" #. type: subheading #: orgguide.texi:2490 #, no-wrap msgid "Structure of Code Blocks" msgstr "" #. type: Plain text #: orgguide.texi:2492 msgid "The structure of code blocks is as follows:" msgstr "" #. type: example #: orgguide.texi:2498 #, no-wrap msgid "" "#+NAME: \n" "#+BEGIN_SRC
\n" " \n" "#+END_SRC\n" msgstr "" #. type: Plain text #: orgguide.texi:2507 msgid "" "Where @code{} is a string used to name the code block, " "@code{} specifies the language of the code block (e.g.@: " "@code{emacs-lisp}, @code{shell}, @code{R}, @code{python}, etc...), " "@code{} can be used to control export of the code block, " "@code{
} can be used to control many aspects of code block " "behavior as demonstrated below, and @code{} contains the actual source " "code." msgstr "" #. type: subheading #: orgguide.texi:2508 #, no-wrap msgid "Editing source code" msgstr "" #. type: Plain text #: orgguide.texi:2513 msgid "" "Use @kbd{C-c '} to edit the current code block. This brings up a language " "major-mode edit buffer containing the body of the code block. Saving this " "buffer will write the new contents back to the Org buffer. Use @kbd{C-c '} " "again to exit the edit buffer." msgstr "" #. type: subheading #: orgguide.texi:2514 #, no-wrap msgid "Evaluating code blocks" msgstr "" #. type: Plain text #: orgguide.texi:2520 msgid "" "Use @kbd{C-c C-c} to evaluate the current code block and insert its results " "in the Org-mode buffer. By default, evaluation is only turned on for " "@code{emacs-lisp} code blocks, however support exists for evaluating blocks " "in many languages. For a complete list of supported languages see the " "manual. The following shows a code block and its results." msgstr "" #. type: example #: orgguide.texi:2525 #, no-wrap msgid "" "#+BEGIN_SRC emacs-lisp\n" " (+ 1 2 3 4)\n" "#+END_SRC\n" "\n" msgstr "" #. type: example #: orgguide.texi:2528 #, no-wrap msgid "" "#+RESULTS:\n" ": 10\n" msgstr "" #. type: subheading #: orgguide.texi:2530 #, no-wrap msgid "Extracting source code" msgstr "" #. type: Plain text #: orgguide.texi:2538 msgid "" "Use @kbd{C-c C-v t} to create pure source code files by extracting code from " "source blocks in the current buffer. This is referred to as " "``tangling''---a term adopted from the literate programming community. " "During ``tangling'' of code blocks their bodies are expanded using " "@code{org-babel-expand-src-block} which can expand both variable and " "``noweb'' style references. In order to tangle a code block it must have a " "@code{:tangle} header argument, see the manual for details." msgstr "" #. type: subheading #: orgguide.texi:2539 #, no-wrap msgid "Library of Babel" msgstr "" #. type: Plain text #: orgguide.texi:2544 msgid "" "Use @kbd{C-c C-v l} to load the code blocks from an Org-mode files into the " "``Library of Babel'', these blocks can then be evaluated from any Org-mode " "buffer. A collection of generally useful code blocks is distributed with " "Org-mode in @code{contrib/library-of-babel.org}." msgstr "" #. type: subheading #: orgguide.texi:2545 #, no-wrap msgid "Header Arguments" msgstr "" #. type: Plain text #: orgguide.texi:2550 msgid "" "Many aspects of the evaluation and export of code blocks are controlled " "through header arguments. These can be specified globally, at the file " "level, at the outline subtree level, and at the individual code block " "level. The following describes some of the header arguments." msgstr "" #. type: item #: orgguide.texi:2551 #, no-wrap msgid ":var" msgstr "" #. type: table #: orgguide.texi:2555 msgid "" "The @code{:var} header argument is used to pass arguments to code blocks. " "The values passed to arguments can be literal values, values from org-mode " "tables and literal example blocks, or the results of other named code " "blocks." msgstr "" #. type: item #: orgguide.texi:2555 #, no-wrap msgid ":results" msgstr "" #. type: table #: orgguide.texi:2566 msgid "" "The @code{:results} header argument controls the @emph{collection}, " "@emph{type}, and @emph{handling} of code block results. Values of " "@code{output} or @code{value} (the default) specify how results are " "collected from a code block's evaluation. Values of @code{vector}, " "@code{scalar} @code{file} @code{raw} @code{html} @code{latex} and " "@code{code} specify the type of the results of the code block which dictates " "how they will be incorporated into the Org-mode buffer. Values of " "@code{silent}, @code{replace}, @code{prepend}, and @code{append} specify " "handling of code block results, specifically if and how the results should " "be inserted into the Org-mode buffer." msgstr "" #. type: item #: orgguide.texi:2566 #, no-wrap msgid ":session" msgstr "" #. type: table #: orgguide.texi:2571 msgid "" "A header argument of @code{:session} will cause the code block to be " "evaluated in a persistent interactive inferior process in Emacs. This " "allows for persisting state between code block evaluations, and for manual " "inspection of the results of evaluation." msgstr "" #. type: item #: orgguide.texi:2571 #, no-wrap msgid ":exports" msgstr "" #. type: table #: orgguide.texi:2575 msgid "" "Any combination of the @emph{code} or the @emph{results} of a block can be " "retained on export, this is specified by setting the @code{:results} header " "argument to @code{code} @code{results} @code{none} or @code{both}." msgstr "" #. type: item #: orgguide.texi:2575 #, no-wrap msgid ":tangle" msgstr "" #. type: table #: orgguide.texi:2579 msgid "" "A header argument of @code{:tangle yes} will cause a code block's contents " "to be tangled to a file named after the filename of the Org-mode buffer. An " "alternate file name can be specified with @code{:tangle filename}." msgstr "" #. type: item #: orgguide.texi:2579 #, no-wrap msgid ":cache" msgstr "" #. type: table #: orgguide.texi:2583 msgid "" "A header argument of @code{:cache yes} will cause associate a hash of the " "expanded code block with the results, ensuring that code blocks are only " "re-run when their inputs have changed." msgstr "" #. type: item #: orgguide.texi:2583 #, no-wrap msgid ":noweb" msgstr "" #. type: table #: orgguide.texi:2586 msgid "" "A header argument of @code{:noweb yes} will expand ``noweb'' style " "references on evaluation and tangling." msgstr "" #. type: item #: orgguide.texi:2586 #, no-wrap msgid ":file" msgstr "" #. type: table #: orgguide.texi:2591 msgid "" "Code blocks which output results to files (e.g.@: graphs, diagrams and " "figures) can accept a @code{:file filename} header argument in which case " "the results are saved to the named file, and a link to the file is inserted " "into the Org-mode buffer." msgstr "" #. type: Plain text #: orgguide.texi:2598 msgid "" "@seealso{ " "@uref{http://orgmode.org/manual/Literal-examples.html#Literal-examples, " "Chapter 11.3 of the manual}@* " "@uref{http://orgmode.org/worg/org-contrib/babel/index.php, The Babel site on " "Worg}}" msgstr "" #. type: Plain text #: orgguide.texi:2617 msgid "" "Org supports in-buffer completion with @kbd{M-@key{TAB}}. This type of " "completion does not make use of the minibuffer. You simply type a few " "letters into the buffer and use the key to complete text right there. For " "example, this command will complete @TeX{} symbols after @samp{\\}, TODO " "keywords at the beginning of a headline, and tags after @samp{:} in a " "headline." msgstr "" #. type: section #: orgguide.texi:2619 #, no-wrap msgid "A cleaner outline view" msgstr "" #. type: Plain text #: orgguide.texi:2626 msgid "" "Some people find it noisy and distracting that the Org headlines start with " "a potentially large number of stars, and that text below the headlines is " "not indented. While this is no problem when writing a @emph{book-like} " "document where the outline headings are really section headings, in a more " "@emph{list-oriented} outline, indented structure is a lot cleaner:" msgstr "" #. type: group #: orgguide.texi:2636 #, no-wrap msgid "" "* Top level headline | * Top level headline\n" "** Second level | * Second level\n" "*** 3rd level | * 3rd level\n" "some text | some text\n" "*** 3rd level | * 3rd level\n" "more text | more text\n" "* Another top level headline | * Another top level headline\n" msgstr "" #. type: Plain text #: orgguide.texi:2646 msgid "" "If you are using at least Emacs 23.1.50.3 and version 6.29 of Org, this kind " "of view can be achieved dynamically at display time using " "@code{org-indent-mode}, which will prepend intangible space to each line. " "You can turn on @code{org-indent-mode} for all files by customizing the " "variable @code{org-startup-indented}, or you can turn it on for individual " "files using" msgstr "" #. type: smallexample #: orgguide.texi:2649 #, no-wrap msgid "#+STARTUP: indent\n" msgstr "" #. type: Plain text #: orgguide.texi:2657 msgid "" "If you want a similar effect in earlier version of Emacs and/or Org, or if " "you want the indentation to be hard space characters so that the plain text " "file looks as similar as possible to the Emacs display, Org supports you by " "helping to indent (with @key{TAB}) text below each headline, by hiding " "leading stars, and by only using levels 1, 3, etc to get two characters " "indentation for each level. To get this support in a file, use" msgstr "" #. type: smallexample #: orgguide.texi:2660 #, no-wrap msgid "#+STARTUP: hidestars odd\n" msgstr "" #. type: Plain text #: orgguide.texi:2669 msgid "" "@i{MobileOrg} is the name of the mobile companion app for Org mode, " "currently available for iOS and for Android. @i{MobileOrg} offers offline " "viewing and capture support for an Org mode system rooted on a ``real'' " "computer. It does also allow you to record changes to existing entries." msgstr "" #. type: Plain text #: orgguide.texi:2676 msgid "" "The @uref{http://mobileorg.ncogni.to/, iOS implementation} for the " "@i{iPhone/iPod Touch/iPad} series of devices, was developed by Richard " "Moreland. Android users should check out " "@uref{http://wiki.github.com/matburt/mobileorg-android/, MobileOrg Android} " "by Matt Jones. The two implementations are not identical but offer similar " "features." msgstr "" #. type: Plain text #: orgguide.texi:2683 msgid "" "@seealso{ @uref{http://orgmode.org/manual/Miscellaneous.html#Miscellaneous, " "Chapter 15 of the manual}@* " "@uref{http://orgmode.org/manual/MobileOrg.html#MobileOrg, Appendix B of the " "manual}@* @uref{http://orgmode.org/orgcard.pdf,Key reference card}}" msgstr "" --=-=-= Content-Type: application/octet-stream; charset=utf-8 Content-Disposition: attachment; filename=orgguide.es.po Content-Transfer-Encoding: base64 IyBTT01FIERFU0NSSVBUSVZFIFRJVExFCiMgQ29weXJpZ2h0IChDKSBZRUFSIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgojIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUg c2FtZSBsaWNlbnNlIGFzIHRoZSBQQUNLQUdFIHBhY2thZ2UuCiMgRklSU1QgQVVUSE9SIDxFTUFJ TEBBRERSRVNTPiwgWUVBUi4KIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lv bjogUEFDS0FHRSBWRVJTSU9OXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMi0xMS0xMiAxNjoy NyswMTAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDEyLTExLTEyIDIyOjQyKzAxMDBcbiIKIkxh c3QtVHJhbnNsYXRvcjogRlVMTCBOQU1FIDxFTUFJTEBBRERSRVNTPlxuIgoiTGFuZ3VhZ2UtVGVh bTogTEFOR1VBR0UgPExMQGxpLm9yZz5cbiIKIkxhbmd1YWdlOiBcbiIKIk1JTUUtVmVyc2lvbjog MS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcbiIKIkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKCiMuIHR5cGU6IHRpdGxlCiM6IG9yZ2d1aWRl LnRleGk6NCBvcmdndWlkZS50ZXhpOjY5CiMsIG5vLXdyYXAKbXNnaWQgIlRoZSBjb21wYWN0IE9y Zy1tb2RlIEd1aWRlIgptc2dzdHIgIkxhIEd1QCd7QGRvdGxlc3N7aX19YSBjb21wYWN0YSBkZSBP cmctbW9kZSIKCiMuIHR5cGU6IGluY2x1ZGUKIzogb3JnZ3VpZGUudGV4aTo2CiMsIG5vLXdyYXAK bXNnaWQgIm9yZy12ZXJzaW9uLmluYyIKbXNnc3RyICIiCgojLiB0eXBlOiBieyMxfQojOiBvcmdn dWlkZS50ZXhpOjMwIG9yZ2d1aWRlLnRleGk6MzMKIywgbm8td3JhcAptc2dpZCAiXFx0ZXh0XFwi Cm1zZ3N0ciAiXFx0ZXh0XFwiCgojLiB0eXBlOiBjb3B5aW5nCiM6IG9yZ2d1aWRlLnRleGk6NDMK bXNnaWQgIkNvcHlyaWdodCBAY29weXJpZ2h0e30gMjAxMC0yMDEyIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiIKbXNnc3RyICJDb3B5cmlnaHQgQGNvcHlyaWdodHt9IDIwMTAtMjAxMiBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24iCgojLiB0eXBlOiBxdW90YXRpb24KIzogb3JnZ3VpZGUudGV4aTo1 MQptc2dpZCAiIgoiUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5k L29yIG1vZGlmeSB0aGlzIGRvY3VtZW50IHVuZGVyICIKInRoZSB0ZXJtcyBvZiB0aGUgR05VIEZy ZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBWZXJzaW9uIDEuMyBvciBhbnkgbGF0ZXIgIgoidmVy c2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgd2l0aCBubyBJ bnZhcmlhbnQgIgoiU2VjdGlvbnMsIHdpdGggdGhlIEZyb250LUNvdmVyIHRleHRzIGJlaW5nIGBg QSBHTlUgTWFudWFsLCcnIGFuZCB3aXRoIHRoZSAiCiJCYWNrLUNvdmVyIFRleHRzIGFzIGluIChh KSBiZWxvdy4gIEEgY29weSBvZiB0aGUgbGljZW5zZSBpcyBpbmNsdWRlZCBpbiB0aGUgIgoic2Vj dGlvbiBlbnRpdGxlZCBgYEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4nJyIKbXNnc3Ry ICIiCiJTZSBwZXJtaXRlIGxhIGNvcGlhLCBkaXN0cmlidWNpQCdvbiB5L28gbW9kaWZpY2FjaUAn b24gZGUgZXN0ZVxuIgoiZG9jdW1lbnRvIGJham8gbG9zIHRAJ2VybWlub3MgZGUgbGEgR05VIEZy ZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLFxuIgoiVmVyc2lvbiAxLjMgbyBwb3N0ZXJpb3JlcyB2 ZXJzaW9uZXMgcHVibGljYWRhcyBwb3IgbGEgRnJlZSBTb2Z0d2FyZVxuIgoiRm91bmRhdGlvbjsg c2luIHNlY2Npb25lcyBpbnZhcmlhbnRlcywgY29uIHRleHRvIGFsIGluaWNpbyBkZSBsYVxuIgoi Y3ViaWVydGEgZGUgcG9ydGFkYSAnQSBHTlUgTWFudWFsJywgeSBjb24gZWwgdGV4dG8gZGUgY29u dHJhcG9ydGFkYVxuIgoiY29tbyBzZSBtdWVzdHJhIGFiYWpvIChhKS4gVW5hIGNvcGlhIGRlIGVz dGEgbGljZW5jaWEgZXN0QCdhIGluY2x1aWRhXG4iCiJlbiBsYSBzZWNjaUAnb24gdGl0dWxhZGEg J0dOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZScnLiIKCiMuIHR5cGU6IHF1b3RhdGlvbgoj OiBvcmdndWlkZS50ZXhpOjU1Cm1zZ2lkICIiCiIoYSkgVGhlIEZTRidzIEJhY2stQ292ZXIgVGV4 dCBpczogYGBZb3UgaGF2ZSB0aGUgZnJlZWRvbSB0byBjb3B5IGFuZCBtb2RpZnkgIgoidGhpcyBH TlUgbWFudWFsLiAgQnV5aW5nIGNvcGllcyBmcm9tIHRoZSBGU0Ygc3VwcG9ydHMgaXQgaW4gZGV2 ZWxvcGluZyBHTlUgIgoiYW5kIHByb21vdGluZyBzb2Z0d2FyZSBmcmVlZG9tLicnIgptc2dzdHIg IiIKIihhKSBFbCB0ZXh0byBkZSBjb250cmFwb3J0YWRhIGRlIGxhIEZTRiBlczogJ1R1IHRpZW5l cyBsYSBsaWJlcnRhZFxuIgoicGFyYSBjb3BpYXIgeSBtb2RpZmljYXIgZXN0ZSBtYW51YWwgR05V LCBDb21wcmFuZG8gY29waWFzIGRlc2RlIGxhIEZTRlxuIgoic2UgZmFjaWxpdGEgZWwgZGVzYXJy b2xsbyBkZSBHTlUgeSBsYSBwcm9tb2NpQCdvbiBkZWwgc29mdHdhcmVcbiIKImxpYnJlJy4iCgoj LiB0eXBlOiBxdW90YXRpb24KIzogb3JnZ3VpZGUudGV4aTo2MAptc2dpZCAiIgoiVGhpcyBkb2N1 bWVudCBpcyBwYXJ0IG9mIGEgY29sbGVjdGlvbiBkaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEZy ZWUgIgoiRG9jdW1lbnRhdGlvbiBMaWNlbnNlLiAgSWYgeW91IHdhbnQgdG8gZGlzdHJpYnV0ZSB0 aGlzIGRvY3VtZW50IHNlcGFyYXRlbHkgIgoiZnJvbSB0aGUgY29sbGVjdGlvbiwgeW91IGNhbiBk byBzbyBieSBhZGRpbmcgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIHRvIHRoZSAiCiJkb2N1bWVudCwg YXMgZGVzY3JpYmVkIGluIHNlY3Rpb24gNiBvZiB0aGUgbGljZW5zZS4iCm1zZ3N0ciAiIgoiRXN0 ZSBkb2N1bWVudG8gZm9ybWEgcGFydGUgZGUgdW5hIGNvbGVjY2lAJ29uIGRpc3RyaWJ1aWRhIGJh am8gbGEgR05VXG4iCiJGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4gU2kgZGVzZWEgZGlzdHJp YnVpciBlc3RlIGRvY3VtZW50b1xuIgoic2VwYXJhZGFtZW50ZSBkZSBsYSBjb2xlY2NpQCdvbiwg cHVlZGUgaGFjZXJsbyBhQH5uYWRpZW5kbyB1bmEgY29waWEgZGVcbiIKImxhIGxpY2VuY2lhIGFs IGRvY3VtZW50bywgY29tbyBzZSBkZXNjcmliZSBlbiBsYSBzZWNjaUAnb24gNiBkZSBsYVxuIgoi bGljZW5jaWEuIgoKIy4gdHlwZTogZGlyY2F0ZWdvcnkKIzogb3JnZ3VpZGUudGV4aTo2MwojLCBu by13cmFwCm1zZ2lkICJFbWFjcyIKbXNnc3RyICJFbWFjcyIKCiMuIHR5cGU6IG1lbnVlbnRyeQoj OiBvcmdndWlkZS50ZXhpOjY2Cm1zZ2lkICJPcmcgTW9kZSBHdWlkZTogKG9yZ2d1aWRlKSIKbXNn c3RyICJHdUAne0Bkb3RsZXNze2l9fWEgZGUgT3JnLW1vZGU6IChvcmdndWlkZSkiCgojLiB0eXBl OiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aTo2Ngptc2dpZCAiQWJicmV2aWF0ZWQgT3JnLW1v ZGUgTWFudWFsIgptc2dzdHIgIk1hbnVhbCBkZSBPcmctbW9kZSBBYnJldmlhZG8iCgojLiB0eXBl OiBzdWJ0aXRsZQojOiBvcmdndWlkZS50ZXhpOjcxCiMsIG5vLXdyYXAKbXNnaWQgIlJlbGVhc2Ug QHZhbHVle1ZFUlNJT059Igptc2dzdHIgIlZlcnNpQCdvbiBAdmFsdWV7VkVSU0lPTn0iCgojLiB0 eXBlOiBhdXRob3IKIzogb3JnZ3VpZGUudGV4aTo3MgojLCBuby13cmFwCm1zZ2lkICJieSBDYXJz dGVuIERvbWluaWsiCm1zZ3N0ciAicG9yIENhcnN0ZW4gRG9taW5payIKCiMuIHR5cGU6IG5vZGUK Izogb3JnZ3VpZGUudGV4aTo4NCBvcmdndWlkZS50ZXhpOjIyNyBvcmdndWlkZS50ZXhpOjMwMCBv cmdndWlkZS50ZXhpOjU2OQojOiBvcmdndWlkZS50ZXhpOjY5MyBvcmdndWlkZS50ZXhpOjgzNCBv cmdndWlkZS50ZXhpOjExMDAgb3JnZ3VpZGUudGV4aToxMjI5CiM6IG9yZ2d1aWRlLnRleGk6MTI5 MCBvcmdndWlkZS50ZXhpOjE1MTQgb3JnZ3VpZGUudGV4aToxNjgxIG9yZ2d1aWRlLnRleGk6MjA0 NAojOiBvcmdndWlkZS50ZXhpOjIyODEgb3JnZ3VpZGUudGV4aToyNDM2IG9yZ2d1aWRlLnRleGk6 MjQ4MyBvcmdndWlkZS50ZXhpOjI1OTkKIywgbm8td3JhcAptc2dpZCAiVG9wIgptc2dzdHIgIlRv cCIKCiMuIHR5cGU6IG5vZGUKIzogb3JnZ3VpZGUudGV4aTo4NCBvcmdndWlkZS50ZXhpOjEwNiBv cmdndWlkZS50ZXhpOjExMSBvcmdndWlkZS50ZXhpOjIyNwojOiBvcmdndWlkZS50ZXhpOjIyOCBv cmdndWlkZS50ZXhpOjIzNyBvcmdndWlkZS50ZXhpOjI1MCBvcmdndWlkZS50ZXhpOjI3NAojOiBv cmdndWlkZS50ZXhpOjI5MyBvcmdndWlkZS50ZXhpOjMwMAojLCBuby13cmFwCm1zZ2lkICJJbnRy b2R1Y3Rpb24iCm1zZ3N0ciAiSW50cm9kdWNjaUAnb24iCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1 aWRlLnRleGk6ODQKIywgbm8td3JhcAptc2dpZCAiKGRpcikiCm1zZ3N0ciAiKGRpcikiCgojLiB0 eXBlOiB0b3AKIzogb3JnZ3VpZGUudGV4aTo4NQojLCBuby13cmFwCm1zZ2lkICJPcmcgTW9kZSBH dWlkZSIKbXNnc3RyICJHdUAne0Bkb3RsZXNze2l9fWEgZGUgT3JnIE1vZGUiCgojLiB0eXBlOiBt ZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxMDYKbXNnaWQgIkdldHRpbmcgc3RhcnRlZCIKbXNn c3RyICJDb21lbnphbmRvIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjEwNiBvcmdn dWlkZS50ZXhpOjExOCBvcmdndWlkZS50ZXhpOjIyNyBvcmdndWlkZS50ZXhpOjMwMAojOiBvcmdn dWlkZS50ZXhpOjMwMSBvcmdndWlkZS50ZXhpOjMxNyBvcmdndWlkZS50ZXhpOjMyOSBvcmdndWlk ZS50ZXhpOjM1MgojOiBvcmdndWlkZS50ZXhpOjM5NCBvcmdndWlkZS50ZXhpOjQxMSBvcmdndWlk ZS50ZXhpOjQ0MiBvcmdndWlkZS50ZXhpOjQ2OAojOiBvcmdndWlkZS50ZXhpOjUzNSBvcmdndWlk ZS50ZXhpOjU2OQojLCBuby13cmFwCm1zZ2lkICJEb2N1bWVudCBTdHJ1Y3R1cmUiCm1zZ3N0ciAi RXN0cnVjdHVyYSBkZWwgZG9jdW1lbnRvIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRl LnRleGk6MTA2Cm1zZ2lkICJBIHRyZWUgd29ya3MgbGlrZSB5b3VyIGJyYWluIgptc2dzdHIgIlVu IEAnYXJib2wgZnVuY2lvbmEgY29tbyB0dSBjZXJlYnJvIgoKIy4gdHlwZTogbm9kZQojOiBvcmdn dWlkZS50ZXhpOjEwNiBvcmdndWlkZS50ZXhpOjMwMCBvcmdndWlkZS50ZXhpOjU2OSBvcmdndWlk ZS50ZXhpOjU3MAojOiBvcmdndWlkZS50ZXhpOjY5MwojLCBuby13cmFwCm1zZ2lkICJUYWJsZXMi Cm1zZ3N0ciAiVGFibGFzIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTA2 Cm1zZ2lkICJQdXJlIG1hZ2ljIGZvciBxdWljayBmb3JtYXR0aW5nIgptc2dzdHIgIlB1cmEgbWFn aWEgcGFyYSBmb3JtYXRlYXIgckAnYXBpZG8iCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRl eGk6MTA2IG9yZ2d1aWRlLnRleGk6MTI5IG9yZ2d1aWRlLnRleGk6NTY5IG9yZ2d1aWRlLnRleGk6 NjkzCiM6IG9yZ2d1aWRlLnRleGk6Njk0IG9yZ2d1aWRlLnRleGk6NzA3IG9yZ2d1aWRlLnRleGk6 NzI0IG9yZ2d1aWRlLnRleGk6NzM2CiM6IG9yZ2d1aWRlLnRleGk6NzgwIG9yZ2d1aWRlLnRleGk6 ODE0IG9yZ2d1aWRlLnRleGk6ODM0CiMsIG5vLXdyYXAKbXNnaWQgIkh5cGVybGlua3MiCm1zZ3N0 ciAiSGlwZXJlbmxhY2VzIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTA2 Cm1zZ2lkICJOb3RlcyBpbiBjb250ZXh0Igptc2dzdHIgIk5vdGFzIGVuIGNvbnRleHRvIgoKIy4g dHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjEwNiBvcmdndWlkZS50ZXhpOjEzNyBvcmdndWlk ZS50ZXhpOjY5MyBvcmdndWlkZS50ZXhpOjgzNAojOiBvcmdndWlkZS50ZXhpOjgzNSBvcmdndWlk ZS50ZXhpOjg1OCBvcmdndWlkZS50ZXhpOjkwMSBvcmdndWlkZS50ZXhpOjk1MQojOiBvcmdndWlk ZS50ZXhpOjEwMTMgb3JnZ3VpZGUudGV4aToxMDM5IG9yZ2d1aWRlLnRleGk6MTA1OSBvcmdndWlk ZS50ZXhpOjExMDAKIywgbm8td3JhcAptc2dpZCAiVE9ETyBJdGVtcyIKbXNnc3RyICJJdGVtcyBU T0RPIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTA2Cm1zZ2lkICJFdmVy eSB0cmVlIGJyYW5jaCBjYW4gYmUgYSBUT0RPIGl0ZW0iCm1zZ3N0ciAiQ2FkYSByYW1hIGRlbCBA J2FyYm9sIHB1ZWRlIHNlciB1biBAJ3tAZG90bGVzc3tpfX10ZW0gVE9ETyIKCiMuIHR5cGU6IG5v ZGUKIzogb3JnZ3VpZGUudGV4aToxMDYgb3JnZ3VpZGUudGV4aToxNTEgb3JnZ3VpZGUudGV4aTo4 MzQgb3JnZ3VpZGUudGV4aToxMTAwCiM6IG9yZ2d1aWRlLnRleGk6MTEwMSBvcmdndWlkZS50ZXhp OjExMTkgb3JnZ3VpZGUudGV4aToxMTQ1IG9yZ2d1aWRlLnRleGk6MTE5NgojOiBvcmdndWlkZS50 ZXhpOjEyMjkKIywgbm8td3JhcAptc2dpZCAiVGFncyIKbXNnc3RyICJFdGlxdWV0YXMiCgojLiB0 eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxMDYKbXNnaWQgIlRhZ2dpbmcgaGVhZGxp bmVzIGFuZCBtYXRjaGluZyBzZXRzIG9mIHRhZ3MiCm1zZ3N0ciAiRXRpcXVldGFuZG8gY2FiZWNl cmFzIHkgZW5jb250cmFuZG8gZ3J1cG9zIGRlIGV0aXF1ZXRhcyIKCiMuIHR5cGU6IG5vZGUKIzog b3JnZ3VpZGUudGV4aToxMDYgb3JnZ3VpZGUudGV4aToxMTAwIG9yZ2d1aWRlLnRleGk6MTIyOSBv cmdndWlkZS50ZXhpOjEyMzAKIzogb3JnZ3VpZGUudGV4aToxMjkwCiMsIG5vLXdyYXAKbXNnaWQg IlByb3BlcnRpZXMiCm1zZ3N0ciAiUHJvcGllZGFkZXMiCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1 aWRlLnRleGk6MTA2IG9yZ2d1aWRlLnRleGk6MTU3IG9yZ2d1aWRlLnRleGk6MTIyOSBvcmdndWlk ZS50ZXhpOjEyOTAKIzogb3JnZ3VpZGUudGV4aToxMjkxIG9yZ2d1aWRlLnRleGk6MTMwNSBvcmdn dWlkZS50ZXhpOjEzNjMgb3JnZ3VpZGUudGV4aToxMzk5CiM6IG9yZ2d1aWRlLnRleGk6MTQ2MiBv cmdndWlkZS50ZXhpOjE1MTQKIywgbm8td3JhcAptc2dpZCAiRGF0ZXMgYW5kIFRpbWVzIgptc2dz dHIgIkZlY2hhcyB5IGhvcmFzIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6 MTA2Cm1zZ2lkICJNYWtpbmcgaXRlbXMgdXNlZnVsIGZvciBwbGFubmluZyIKbXNnc3RyICJDcmVh bmRvIEAne0Bkb3RsZXNze2l9fXRlbXMgQCd1dGlsZXMgcGFyYSBwbGFuaWZpY2FyIgoKIy4gdHlw ZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjEwNiBvcmdndWlkZS50ZXhpOjE2NCBvcmdndWlkZS50 ZXhpOjEyOTAgb3JnZ3VpZGUudGV4aToxNTE0CiM6IG9yZ2d1aWRlLnRleGk6MTUxNSBvcmdndWlk ZS50ZXhpOjE1MzAgb3JnZ3VpZGUudGV4aToxNjE4IG9yZ2d1aWRlLnRleGk6MTY0MwojOiBvcmdn dWlkZS50ZXhpOjE2ODEKIywgbm8td3JhcAptc2dpZCAiQ2FwdHVyZSAtIFJlZmlsZSAtIEFyY2hp dmUiCm1zZ3N0ciAiQ2FwdHVyZSAtIFJlZmlsZSAtIEFyY2hpdmUiCgojLiB0eXBlOiBtZW51ZW50 cnkKIzogb3JnZ3VpZGUudGV4aToxMDYKbXNnaWQgIlRoZSBpbnMgYW5kIG91dHMgZm9yIHByb2pl Y3RzIgptc2dzdHIgIkxhcyBlbnRyYWRhcyB5IHNhbGlkYXMgcGFyYSBwcm95ZWN0b3MiCgojLiB0 eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6MTA2IG9yZ2d1aWRlLnRleGk6MTc2IG9yZ2d1aWRl LnRleGk6MTUxNCBvcmdndWlkZS50ZXhpOjE2ODEKIzogb3JnZ3VpZGUudGV4aToxNjgyIG9yZ2d1 aWRlLnRleGk6MTcwNiBvcmdndWlkZS50ZXhpOjE3MjQgb3JnZ3VpZGUudGV4aToxNzQ1CiM6IG9y Z2d1aWRlLnRleGk6MTg4NCBvcmdndWlkZS50ZXhpOjE5OTUgb3JnZ3VpZGUudGV4aToyMDQ0CiMs IG5vLXdyYXAKbXNnaWQgIkFnZW5kYSBWaWV3cyIKbXNnc3RyICJWaXN0YXMgZGUgbGEgQWdlbmRh IgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTA2Cm1zZ2lkICJDb2xsZWN0 aW5nIGluZm9ybWF0aW9uIGludG8gdmlld3MiCm1zZ3N0ciAiUmVjb2xlY3RhbmRvIGluZm9ybWFj aUAnb24gZW4gdmlzdGFzIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjEwNiBvcmdn dWlkZS50ZXhpOjE2ODEgb3JnZ3VpZGUudGV4aToyMDQ0IG9yZ2d1aWRlLnRleGk6MjA2MQojOiBv cmdndWlkZS50ZXhpOjIxNzAgb3JnZ3VpZGUudGV4aToyMjAzIG9yZ2d1aWRlLnRleGk6MjI0MCBv cmdndWlkZS50ZXhpOjIyNTYKIzogb3JnZ3VpZGUudGV4aToyMjgxCiMsIG5vLXdyYXAKbXNnaWQg Ik1hcmt1cCIKbXNnc3RyICJNYXJjYWRvIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRl LnRleGk6MTA2Cm1zZ2lkICJQcmVwYXJlIHRleHQgZm9yIHJpY2ggZXhwb3J0Igptc2dzdHIgIlBy ZXBhcmFyIHRleHRvIHBhcmEgZXhwb3J0YWNpQCdvbiBlbnJpcXVlY2lkYSIKCiMuIHR5cGU6IG5v ZGUKIzogb3JnZ3VpZGUudGV4aToxMDYgb3JnZ3VpZGUudGV4aToyMDkgb3JnZ3VpZGUudGV4aToy MDQ0IG9yZ2d1aWRlLnRleGk6MjI4MQojOiBvcmdndWlkZS50ZXhpOjIyODIgb3JnZ3VpZGUudGV4 aToyMzAwIG9yZ2d1aWRlLnRleGk6MjMyOSBvcmdndWlkZS50ZXhpOjIzNDMKIzogb3JnZ3VpZGUu dGV4aToyMzU5IG9yZ2d1aWRlLnRleGk6MjM4MiBvcmdndWlkZS50ZXhpOjI0MDMgb3JnZ3VpZGUu dGV4aToyNDE1CiM6IG9yZ2d1aWRlLnRleGk6MjQzNgojLCBuby13cmFwCm1zZ2lkICJFeHBvcnRp bmciCm1zZ3N0ciAiRXhwb3J0YW5kbyIKCiMuIHR5cGU6IG1lbnVlbnRyeQojOiBvcmdndWlkZS50 ZXhpOjEwNgptc2dpZCAiU2hhcmluZyBhbmQgcHVibGlzaGluZyBvZiBub3RlcyIKbXNnc3RyICJD b21wYXJ0aWNpQCdvbiB5IHB1YmxpY2FjaUAnb24gZGUgbm90YXMiCgojLiB0eXBlOiBub2RlCiM6 IG9yZ2d1aWRlLnRleGk6MTA2IG9yZ2d1aWRlLnRleGk6MjI4MSBvcmdndWlkZS50ZXhpOjI0MzYg b3JnZ3VpZGUudGV4aToyNDM3CiM6IG9yZ2d1aWRlLnRleGk6MjQ4MwojLCBuby13cmFwCm1zZ2lk ICJQdWJsaXNoaW5nIgptc2dzdHIgIlB1YmxpY2FjaUAnb24iCgojLiB0eXBlOiBtZW51ZW50cnkK Izogb3JnZ3VpZGUudGV4aToxMDYKbXNnaWQgIkNyZWF0ZSBhIHdlYiBzaXRlIG9mIGxpbmtlZCBP cmcgZmlsZXMiCm1zZ3N0ciAiQ3JlYXIgdW4gc2l0aW8gd2ViIGRlIGZpY2hlcm9zIE9yZyBlbmxh emFkb3MiCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6MTA2IG9yZ2d1aWRlLnRleGk6 MjQzNiBvcmdndWlkZS50ZXhpOjI0ODMgb3JnZ3VpZGUudGV4aToyNTk5CiMsIG5vLXdyYXAKbXNn aWQgIldvcmtpbmcgV2l0aCBTb3VyY2UgQ29kZSIKbXNnc3RyICJUcmFiYWphbmRvIGNvbiBDQCdv ZGlnbyBGdWVudGUiCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxMDYKbXNn aWQgIlNvdXJjZSBjb2RlIHNuaXBwZXRzIGVtYmVkZGVkIGluIE9yZyIKbXNnc3RyICJUcm96b3Mg ZGUgY0Anb2RpZ28gZnVlbnRlIGVtYmViaWRvcyBlbiBPcmciCgojLiB0eXBlOiBub2RlCiM6IG9y Z2d1aWRlLnRleGk6MTA2IG9yZ2d1aWRlLnRleGk6MjE5IG9yZ2d1aWRlLnRleGk6MjQ4MyBvcmdn dWlkZS50ZXhpOjI1OTkKIzogb3JnZ3VpZGUudGV4aToyNjAwIG9yZ2d1aWRlLnRleGk6MjYwOCBv cmdndWlkZS50ZXhpOjI2MTggb3JnZ3VpZGUudGV4aToyNjYyCiMsIG5vLXdyYXAKbXNnaWQgIk1p c2NlbGxhbmVvdXMiCm1zZ3N0ciAiTWlzY2VsQCdhbmVvcyIKCiMuIHR5cGU6IG1lbnVlbnRyeQoj OiBvcmdndWlkZS50ZXhpOjEwNgptc2dpZCAiQWxsIHRoZSByZXN0IHdoaWNoIGRpZCBub3QgZml0 IGVsc2V3aGVyZSIKbXNnc3RyICJFbCByZXN0byBkZSBjb3NhcyBxdWUgbm8gdGllbmVuIG90cm8g bHVnYXIiCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxMDkKbXNnaWQgIi0t LSBUaGUgRGV0YWlsZWQgTm9kZSBMaXN0aW5nIC0tLSIKbXNnc3RyICItLS0gRWwgTGlzdGFkbyBE ZXRhbGxhZG8gZGUgTm9kb3MgLS0tIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjEx NiBvcmdndWlkZS50ZXhpOjIzNSBvcmdndWlkZS50ZXhpOjIzNyBvcmdndWlkZS50ZXhpOjIzOAoj OiBvcmdndWlkZS50ZXhpOjI1MAojLCBuby13cmFwCm1zZ2lkICJQcmVmYWNlIgptc2dzdHIgIlBy ZWZhY2lvIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTE2IG9yZ2d1aWRl LnRleGk6MjM1Cm1zZ2lkICJXZWxjb21lIgptc2dzdHIgIkJpZW52ZW5pZGEiCgojLiB0eXBlOiBu b2RlCiM6IG9yZ2d1aWRlLnRleGk6MTE2IG9yZ2d1aWRlLnRleGk6MjM1IG9yZ2d1aWRlLnRleGk6 MjM3IG9yZ2d1aWRlLnRleGk6MjUwCiM6IG9yZ2d1aWRlLnRleGk6MjUxIG9yZ2d1aWRlLnRleGk6 Mjc0CiMsIG5vLXdyYXAKbXNnaWQgIkluc3RhbGxhdGlvbiIKbXNnc3RyICJJbnN0YWxhY2lAJ29u IgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTE2IG9yZ2d1aWRlLnRleGk6 MjM1Cm1zZ2lkICJIb3cgdG8gaW5zdGFsbCBhIGRvd25sb2FkZWQgdmVyc2lvbiBvZiBPcmciCm1z Z3N0ciAiQ0Anb21vIGluc3RhbGFyIHVuYSB2ZXJzaUAnb24gZGVzY2FyZ2FkYSBkZSBPcmciCgoj LiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6MTE2IG9yZ2d1aWRlLnRleGk6MjM1IG9yZ2d1 aWRlLnRleGk6MjUwIG9yZ2d1aWRlLnRleGk6Mjc0CiM6IG9yZ2d1aWRlLnRleGk6Mjc1IG9yZ2d1 aWRlLnRleGk6MjkzCiMsIG5vLXdyYXAKbXNnaWQgIkFjdGl2YXRpb24iCm1zZ3N0ciAiQWN0aXZh Y2lAJ29uIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTE2IG9yZ2d1aWRl LnRleGk6MjM1Cm1zZ2lkICJIb3cgdG8gYWN0aXZhdGUgT3JnIGZvciBjZXJ0YWluIGJ1ZmZlcnMi Cm1zZ3N0ciAiQ0Anb21vIGFjdGl2YXIgT3JnIHBhcmEgY2llcnRvcyBidWZmZXJzIgoKIy4gdHlw ZTogc2VjdGlvbgojOiBvcmdndWlkZS50ZXhpOjExNiBvcmdndWlkZS50ZXhpOjIzNSBvcmdndWlk ZS50ZXhpOjI3NCBvcmdndWlkZS50ZXhpOjI5MwojOiBvcmdndWlkZS50ZXhpOjI5NAojLCBuby13 cmFwCm1zZ2lkICJGZWVkYmFjayIKbXNnc3RyICJSZWFsaW1lbnRhY2lAJ29uIgoKIy4gdHlwZTog bWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTE2IG9yZ2d1aWRlLnRleGk6MjM1Cm1zZ2lkICJC dWcgcmVwb3J0cywgaWRlYXMsIHBhdGNoZXMgZXRjLiIKbXNnc3RyICJJbmZvcm1lcyBkZSBlcnJv ciwgaWRlYXMsIHBhcmNoZXMsIGV0Yy4iCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6 MTI3IG9yZ2d1aWRlLnRleGk6MzE1IG9yZ2d1aWRlLnRleGk6MzE3IG9yZ2d1aWRlLnRleGk6MzE4 CiM6IG9yZ2d1aWRlLnRleGk6MzI5CiMsIG5vLXdyYXAKbXNnaWQgIk91dGxpbmVzIgptc2dzdHIg Ik91dGxpbmVzIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTI3IG9yZ2d1 aWRlLnRleGk6MzE1Cm1zZ2lkICJPcmcgaXMgYmFzZWQgb24gT3V0bGluZSBtb2RlIgptc2dzdHIg Ik9yZyBlc3RAJ2EgYmFzYWRvIGVuIGVsIG1vZG8gT3V0bGluZSIKCiMuIHR5cGU6IG5vZGUKIzog b3JnZ3VpZGUudGV4aToxMjcgb3JnZ3VpZGUudGV4aTozMTUgb3JnZ3VpZGUudGV4aTozMTcgb3Jn Z3VpZGUudGV4aTozMjkKIzogb3JnZ3VpZGUudGV4aTozMzAgb3JnZ3VpZGUudGV4aTozNTIKIywg bm8td3JhcAptc2dpZCAiSGVhZGxpbmVzIgptc2dzdHIgIkNhYmVjZXJhcyIKCiMuIHR5cGU6IG1l bnVlbnRyeQojOiBvcmdndWlkZS50ZXhpOjEyNyBvcmdndWlkZS50ZXhpOjMxNQptc2dpZCAiSG93 IHRvIHR5cGVzZXQgT3JnIHRyZWUgaGVhZGxpbmVzIgptc2dzdHIgIkNAJ29tbyBlc2NyaWJpciB1 biBAJ2FyYm9sIGRlIGNhYmVjZXJhcyBPcmciCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRl eGk6MTI3IG9yZ2d1aWRlLnRleGk6MzE1IG9yZ2d1aWRlLnRleGk6MzI5IG9yZ2d1aWRlLnRleGk6 MzUyCiM6IG9yZ2d1aWRlLnRleGk6MzUzIG9yZ2d1aWRlLnRleGk6Mzk0CiMsIG5vLXdyYXAKbXNn aWQgIlZpc2liaWxpdHkgY3ljbGluZyIKbXNnc3RyICJWaXNpYmlsaWRhZCBjQCd7QGRvdGxlc3N7 aX19Y2xpY2EiCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxMjcgb3JnZ3Vp ZGUudGV4aTozMTUKbXNnaWQgIlNob3cgYW5kIGhpZGUsIG11Y2ggc2ltcGxpZmllZCIKbXNnc3Ry ICJNb3N0cmFyIHkgb2N1bHRhciwgbXV5IHNpbXBsaWZpY2FkbyIKCiMuIHR5cGU6IG5vZGUKIzog b3JnZ3VpZGUudGV4aToxMjcgb3JnZ3VpZGUudGV4aTozMTUgb3JnZ3VpZGUudGV4aTozNTIgb3Jn Z3VpZGUudGV4aTozOTQKIzogb3JnZ3VpZGUudGV4aTozOTUgb3JnZ3VpZGUudGV4aTo0MTEKIywg bm8td3JhcAptc2dpZCAiTW90aW9uIgptc2dzdHIgIk1vdmltaWVudG8iCgojLiB0eXBlOiBtZW51 ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxMjcgb3JnZ3VpZGUudGV4aTozMTUKbXNnaWQgIkp1bXBp bmcgdG8gb3RoZXIgaGVhZGxpbmVzIgptc2dzdHIgIlNhbHRhbmRvIGEgb3RyYXMgY2FiZWNlcmFz IgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjEyNyBvcmdndWlkZS50ZXhpOjMxNSBv cmdndWlkZS50ZXhpOjM5NCBvcmdndWlkZS50ZXhpOjQxMQojOiBvcmdndWlkZS50ZXhpOjQxMiBv cmdndWlkZS50ZXhpOjQ0MgojLCBuby13cmFwCm1zZ2lkICJTdHJ1Y3R1cmUgZWRpdGluZyIKbXNn c3RyICJFZGljaUAnb24gZGUgZXN0cnVjdHVyYSIKCiMuIHR5cGU6IG1lbnVlbnRyeQojOiBvcmdn dWlkZS50ZXhpOjEyNyBvcmdndWlkZS50ZXhpOjMxNQptc2dpZCAiQ2hhbmdpbmcgc2VxdWVuY2Ug YW5kIGxldmVsIG9mIGhlYWRsaW5lcyIKbXNnc3RyICJDYW1iaWFuZG8gbGEgc2VjdWVuY2lhIHkg ZWwgbml2ZWwgZGUgY2FiZWNlcmFzIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjEy NyBvcmdndWlkZS50ZXhpOjMxNSBvcmdndWlkZS50ZXhpOjQxMSBvcmdndWlkZS50ZXhpOjQ0Mgoj OiBvcmdndWlkZS50ZXhpOjQ0MyBvcmdndWlkZS50ZXhpOjQ2OAojLCBuby13cmFwCm1zZ2lkICJT cGFyc2UgdHJlZXMiCm1zZ3N0ciAiQCdBcmJvbGVzIHBvY28gZGVuc29zIgoKIy4gdHlwZTogbWVu dWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTI3IG9yZ2d1aWRlLnRleGk6MzE1Cm1zZ2lkICJNYXRj aGVzIGVtYmVkZGVkIGluIGNvbnRleHQiCm1zZ3N0ciAiQ29ycmVzcG9uZGVuY2lhcyBlbWJlYmlk YXMgZW4gY29udGV4dG8iCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6MTI3IG9yZ2d1 aWRlLnRleGk6MzE1IG9yZ2d1aWRlLnRleGk6NDQyIG9yZ2d1aWRlLnRleGk6NDY4CiM6IG9yZ2d1 aWRlLnRleGk6NDY5IG9yZ2d1aWRlLnRleGk6NTM1CiMsIG5vLXdyYXAKbXNnaWQgIlBsYWluIGxp c3RzIgptc2dzdHIgIkxpc3RhcyBwbGFuYXMiCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3Vp ZGUudGV4aToxMjcgb3JnZ3VpZGUudGV4aTozMTUKbXNnaWQgIkFkZGl0aW9uYWwgc3RydWN0dXJl IHdpdGhpbiBhbiBlbnRyeSIKbXNnc3RyICJFc3RydWN0dXJhIGFkaWNpb25hbCBjb24gdW5hIGVu dHJhZGEiCgojLiB0eXBlOiBzZWN0aW9uCiM6IG9yZ2d1aWRlLnRleGk6MTI3IG9yZ2d1aWRlLnRl eGk6MzE1IG9yZ2d1aWRlLnRleGk6NDY4IG9yZ2d1aWRlLnRleGk6NTM1CiM6IG9yZ2d1aWRlLnRl eGk6NTM2CiMsIG5vLXdyYXAKbXNnaWQgIkZvb3Rub3RlcyIKbXNnc3RyICJOb3RhcyBhbCBwaWUi CgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxMjcgb3JnZ3VpZGUudGV4aToz MTUKbXNnaWQgIkhvdyBmb290bm90ZXMgYXJlIGRlZmluZWQgaW4gT3JnJ3Mgc3ludGF4Igptc2dz dHIgIkNAJ29tbyBsYXMgbm90YXMgYWwgcGllIGVzdEAnYW4gZGVmaW5pZGFzIGVuIHNpbnRheGlz IE9yZyIKCiMuIHR5cGU6IG5vZGUKIzogb3JnZ3VpZGUudGV4aToxMzUgb3JnZ3VpZGUudGV4aTo3 MDUgb3JnZ3VpZGUudGV4aTo3MDcgb3JnZ3VpZGUudGV4aTo3MDgKIzogb3JnZ3VpZGUudGV4aTo3 MjQKIywgbm8td3JhcAptc2dpZCAiTGluayBmb3JtYXQiCm1zZ3N0ciAiRm9ybWF0byBkZSBlbmxh Y2UiCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxMzUgb3JnZ3VpZGUudGV4 aTo3MDUKbXNnaWQgIkhvdyBsaW5rcyBpbiBPcmcgYXJlIGZvcm1hdHRlZCIKbXNnc3RyICJDQCdv bW8gbG9zIGVubGFjZXMgc29uIGZvcm1hdGVhZG9zIGVuIE9yZyIKCiMuIHR5cGU6IG5vZGUKIzog b3JnZ3VpZGUudGV4aToxMzUgb3JnZ3VpZGUudGV4aTo3MDUgb3JnZ3VpZGUudGV4aTo3MDcgb3Jn Z3VpZGUudGV4aTo3MjQKIzogb3JnZ3VpZGUudGV4aTo3MjUgb3JnZ3VpZGUudGV4aTo3MzYKIywg bm8td3JhcAptc2dpZCAiSW50ZXJuYWwgbGlua3MiCm1zZ3N0ciAiRW5sYWNlcyBpbnRlcm5vcyIK CiMuIHR5cGU6IG1lbnVlbnRyeQojOiBvcmdndWlkZS50ZXhpOjEzNSBvcmdndWlkZS50ZXhpOjcw NQptc2dpZCAiTGlua3MgdG8gb3RoZXIgcGxhY2VzIGluIHRoZSBjdXJyZW50IGZpbGUiCm1zZ3N0 ciAiRW5sYWNlcyBhIG90cm9zIGx1Z2FyZXMgZW4gZWwgZmljaGVybyBhY3R1YWwiCgojLiB0eXBl OiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6MTM1IG9yZ2d1aWRlLnRleGk6NzA1IG9yZ2d1aWRlLnRl eGk6NzI0IG9yZ2d1aWRlLnRleGk6NzM2CiM6IG9yZ2d1aWRlLnRleGk6NzM3IG9yZ2d1aWRlLnRl eGk6NzgwCiMsIG5vLXdyYXAKbXNnaWQgIkV4dGVybmFsIGxpbmtzIgptc2dzdHIgIkVubGFjZXMg ZXh0ZXJub3MiCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxMzUgb3JnZ3Vp ZGUudGV4aTo3MDUKbXNnaWQgIlVSTC1saWtlIGxpbmtzIHRvIHRoZSB3b3JsZCIKbXNnc3RyICJF bmxhY2VzIHRpcG8gVVJMIHBhcmEgZWwgbXVuZG8iCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRl LnRleGk6MTM1IG9yZ2d1aWRlLnRleGk6NzA1IG9yZ2d1aWRlLnRleGk6NzM2IG9yZ2d1aWRlLnRl eGk6NzgwCiM6IG9yZ2d1aWRlLnRleGk6NzgxIG9yZ2d1aWRlLnRleGk6ODE0CiMsIG5vLXdyYXAK bXNnaWQgIkhhbmRsaW5nIGxpbmtzIgptc2dzdHIgIk1hbmVqYW5kbyBlbmxhY2VzIgoKIy4gdHlw ZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTM1IG9yZ2d1aWRlLnRleGk6NzA1Cm1zZ2lk ICJDcmVhdGluZywgaW5zZXJ0aW5nIGFuZCBmb2xsb3dpbmciCm1zZ3N0ciAiQ3JlYW5kbywgaW5z ZXJ0YW5kbyB5IHNpZ3VpZW5kbyIKCiMuIHR5cGU6IHNlY3Rpb24KIzogb3JnZ3VpZGUudGV4aTox MzUgb3JnZ3VpZGUudGV4aTo3MDUgb3JnZ3VpZGUudGV4aTo3ODAgb3JnZ3VpZGUudGV4aTo4MTQK Izogb3JnZ3VpZGUudGV4aTo4MTUKIywgbm8td3JhcAptc2dpZCAiVGFyZ2V0ZWQgbGlua3MiCm1z Z3N0ciAiRGVzdGlub3MgZW5sYXphZG9zIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRl LnRleGk6MTM1IG9yZ2d1aWRlLnRleGk6NzA1Cm1zZ2lkICJQb2ludCBhdCBhIGxvY2F0aW9uIGlu IGEgZmlsZSIKbXNnc3RyICJBcHVudGFuZG8gYSB1bmEgbG9jYWxpemFjaUAnb24gZW4gdW4gYXJj aGl2byIKCiMuIHR5cGU6IG5vZGUKIzogb3JnZ3VpZGUudGV4aToxNDQgb3JnZ3VpZGUudGV4aTo4 NTYgb3JnZ3VpZGUudGV4aTo4NTggb3JnZ3VpZGUudGV4aTo4NTkKIzogb3JnZ3VpZGUudGV4aTo5 MDEKIywgbm8td3JhcAptc2dpZCAiVXNpbmcgVE9ETyBzdGF0ZXMiCm1zZ3N0ciAiVXNhbmRvIGxv cyBlc3RhZG9zIFRPRE8iCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxNDQg b3JnZ3VpZGUudGV4aTo4NTYKbXNnaWQgIlNldHRpbmcgYW5kIHN3aXRjaGluZyBzdGF0ZXMiCm1z Z3N0ciAiUG9uaWVuZG8geSBjYW1iaWFkbyBlc3RhZG9zIgoKIy4gdHlwZTogbm9kZQojOiBvcmdn dWlkZS50ZXhpOjE0NCBvcmdndWlkZS50ZXhpOjg1NiBvcmdndWlkZS50ZXhpOjg1OCBvcmdndWlk ZS50ZXhpOjkwMQojOiBvcmdndWlkZS50ZXhpOjkwMiBvcmdndWlkZS50ZXhpOjk1MQojLCBuby13 cmFwCm1zZ2lkICJNdWx0aS1zdGF0ZSB3b3JrZmxvd3MiCm1zZ3N0ciAiRmx1am9zIGRlIHRyYWJh am8gbXVsdGktZXN0YWRvIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTQ0 IG9yZ2d1aWRlLnRleGk6ODU2Cm1zZ2lkICJNb3JlIHRoYW4ganVzdCBvbi9vZmYiCm1zZ3N0ciAi TUAnYXMgcXVlIGFob3JhIHNpL25vIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjE0 NCBvcmdndWlkZS50ZXhpOjE0NiBvcmdndWlkZS50ZXhpOjg1NiBvcmdndWlkZS50ZXhpOjkwMQoj OiBvcmdndWlkZS50ZXhpOjk1MSBvcmdndWlkZS50ZXhpOjk1MiBvcmdndWlkZS50ZXhpOjk2NiBv cmdndWlkZS50ZXhpOjk5MgojOiBvcmdndWlkZS50ZXhpOjEwMTMKIywgbm8td3JhcAptc2dpZCAi UHJvZ3Jlc3MgbG9nZ2luZyIKbXNnc3RyICJQcm9jZXNvIGRlIGFjY2VzbyIKCiMuIHR5cGU6IG1l bnVlbnRyeQojOiBvcmdndWlkZS50ZXhpOjE0NCBvcmdndWlkZS50ZXhpOjg1Ngptc2dpZCAiRGF0 ZXMgYW5kIG5vdGVzIGZvciBwcm9ncmVzcyIKbXNnc3RyICJGZWNoYXMgeSBub3RhcyBwYXJhIGVs IHByb2dyZXNvIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjE0NCBvcmdndWlkZS50 ZXhpOjg1NiBvcmdndWlkZS50ZXhpOjk1MSBvcmdndWlkZS50ZXhpOjEwMTMKIzogb3JnZ3VpZGUu dGV4aToxMDE0IG9yZ2d1aWRlLnRleGk6MTAzOQojLCBuby13cmFwCm1zZ2lkICJQcmlvcml0aWVz Igptc2dzdHIgIlByaW9yaWRhZGVzIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRl eGk6MTQ0IG9yZ2d1aWRlLnRleGk6ODU2Cm1zZ2lkICJTb21lIHRoaW5ncyBhcmUgbW9yZSBpbXBv cnRhbnQgdGhhbiBvdGhlcnMiCm1zZ3N0ciAiQWxndW5hcyBjb3NhcyBzb24gbUAnYXMgaW1wb3J0 YW50ZXMgcXVlIG90cmFzIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjE0NCBvcmdn dWlkZS50ZXhpOjg1NiBvcmdndWlkZS50ZXhpOjEwMTMgb3JnZ3VpZGUudGV4aToxMDM5CiM6IG9y Z2d1aWRlLnRleGk6MTA1OQojLCBuby13cmFwCm1zZ2lkICJCcmVha2luZyBkb3duIHRhc2tzIgpt c2dzdHIgIlJvbXBpZW5kbyB0YXJlYXMiCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUu dGV4aToxNDQgb3JnZ3VpZGUudGV4aTo4NTYKbXNnaWQgIlNwbGl0dGluZyBhIHRhc2sgaW50byBt YW5hZ2VhYmxlIHBpZWNlcyIKbXNnc3RyICJQYXJ0aWVuZG8gdW5hIHRhcmVhIGVuIHBpZXphcyBt YW5lamFibGVzIgoKIy4gdHlwZTogc2VjdGlvbgojOiBvcmdndWlkZS50ZXhpOjE0NCBvcmdndWlk ZS50ZXhpOjg1NiBvcmdndWlkZS50ZXhpOjEwMzkgb3JnZ3VpZGUudGV4aToxMDU5CiM6IG9yZ2d1 aWRlLnRleGk6MTA2MAojLCBuby13cmFwCm1zZ2lkICJDaGVja2JveGVzIgptc2dzdHIgIkNhamFz IGRlIGNoZXF1ZW8iCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxNDQgb3Jn Z3VpZGUudGV4aTo4NTYKbXNnaWQgIlRpY2stb2ZmIGxpc3RzIgptc2dzdHIgIkxpc3RhcyBkZSBt YXJjYXMiCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6MTQ5IG9yZ2d1aWRlLnRleGk6 OTY0IG9yZ2d1aWRlLnRleGk6OTY2IG9yZ2d1aWRlLnRleGk6OTY3CiM6IG9yZ2d1aWRlLnRleGk6 OTkyCiMsIG5vLXdyYXAKbXNnaWQgIkNsb3NpbmcgaXRlbXMiCm1zZ3N0ciAiQ2VycmFuZG8gaXRl bXMiCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxNDkgb3JnZ3VpZGUudGV4 aTo5NjQKbXNnaWQgIldoZW4gd2FzIHRoaXMgZW50cnkgbWFya2VkIERPTkU/Igptc2dzdHIgIsK/ Q3VhbmRvIGZ1QCdlIG1hcmNhZGEgZXN0YSBlbnRyYWRhIGEgRE9ORT8iCgojLiB0eXBlOiB1bm51 bWJlcmVkc3Vic2VjCiM6IG9yZ2d1aWRlLnRleGk6MTQ5IG9yZ2d1aWRlLnRleGk6OTY0IG9yZ2d1 aWRlLnRleGk6OTY2IG9yZ2d1aWRlLnRleGk6OTkyCiM6IG9yZ2d1aWRlLnRleGk6OTkzCiMsIG5v LXdyYXAKbXNnaWQgIlRyYWNraW5nIFRPRE8gc3RhdGUgY2hhbmdlcyIKbXNnc3RyICJUcmF6YW5k byBsb3MgZXN0YWRvcyBUT0RPIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6 MTQ5IG9yZ2d1aWRlLnRleGk6OTY0Cm1zZ2lkICJXaGVuIGRpZCB0aGUgc3RhdHVzIGNoYW5nZT8i Cm1zZ3N0ciAiwr9DdWFuZG8gY2FtYmlhIGVsIGVzdGFkbz8iCgojLiB0eXBlOiBub2RlCiM6IG9y Z2d1aWRlLnRleGk6MTU1IG9yZ2d1aWRlLnRleGk6MTExNyBvcmdndWlkZS50ZXhpOjExMTkgb3Jn Z3VpZGUudGV4aToxMTIwCiM6IG9yZ2d1aWRlLnRleGk6MTE0NQojLCBuby13cmFwCm1zZ2lkICJU YWcgaW5oZXJpdGFuY2UiCm1zZ3N0ciAiTWFyY2EgZGUgaGVyZW5jaWEiCgojLiB0eXBlOiBtZW51 ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxNTUgb3JnZ3VpZGUudGV4aToxMTE3CiMsIGZ1enp5Cm1z Z2lkICJUYWdzIHVzZSB0aGUgdHJlZSBzdHJ1Y3R1cmUgb2YgdGhlIG91dGxpbmUiCm1zZ3N0ciAi TGFzIG1hcmNhcyB1c2FuIGVsIEAnYXJib2wgZGUgZXN0cnVjdHVyYSBkZSBvdXRsaW5lIgoKIy4g dHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjE1NSBvcmdndWlkZS50ZXhpOjExMTcgb3JnZ3Vp ZGUudGV4aToxMTE5IG9yZ2d1aWRlLnRleGk6MTE0NQojOiBvcmdndWlkZS50ZXhpOjExNDYgb3Jn Z3VpZGUudGV4aToxMTk2CiMsIG5vLXdyYXAKbXNnaWQgIlNldHRpbmcgdGFncyIKbXNnc3RyICJQ b25pZW5kbyBtYXJjYXMiCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxNTUg b3JnZ3VpZGUudGV4aToxMTE3Cm1zZ2lkICJIb3cgdG8gYXNzaWduIHRhZ3MgdG8gYSBoZWFkbGlu ZSIKbXNnc3RyICJDQCdvbW8gYXNpZ25hciBldGlxdWV0YXMgYSB1bmEgY2FiZWNlcmEiCgojLiB0 eXBlOiBzZWN0aW9uCiM6IG9yZ2d1aWRlLnRleGk6MTU1IG9yZ2d1aWRlLnRleGk6MTExNyBvcmdn dWlkZS50ZXhpOjExNDUgb3JnZ3VpZGUudGV4aToxMTk2CiM6IG9yZ2d1aWRlLnRleGk6MTE5Nwoj LCBuby13cmFwCm1zZ2lkICJUYWcgc2VhcmNoZXMiCm1zZ3N0ciAiQnVzY2FuZG8gbWFyY2FzIgoK Iy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTU1IG9yZ2d1aWRlLnRleGk6MTEx Nwptc2dpZCAiU2VhcmNoaW5nIGZvciBjb21iaW5hdGlvbnMgb2YgdGFncyIKbXNnc3RyICJCdXNj YW5kbyBjb21iaW5hY2lvbmVzIGRlIGV0aXF1ZXRhcyIKCiMuIHR5cGU6IG5vZGUKIzogb3JnZ3Vp ZGUudGV4aToxNjIgb3JnZ3VpZGUudGV4aToxMzAyIG9yZ2d1aWRlLnRleGk6MTMwNSBvcmdndWlk ZS50ZXhpOjEzMDYKIzogb3JnZ3VpZGUudGV4aToxMzYzCiMsIG5vLXdyYXAKbXNnaWQgIlRpbWVz dGFtcHMiCm1zZ3N0ciAiSW5zdGFudGUgZW4gZWwgdGllbXBvIgoKIy4gdHlwZTogbWVudWVudHJ5 CiM6IG9yZ2d1aWRlLnRleGk6MTYyIG9yZ2d1aWRlLnRleGk6MTMwMgptc2dpZCAiQXNzaWduaW5n IGEgdGltZSB0byBhIHRyZWUgZW50cnkiCm1zZ3N0ciAiQXNpZ25hY2lAJ29uIGRlIHRpZW1wbyBh IHVuYSBlbnRyYWRhIGRlIEAnYXJib2wiCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6 MTYyIG9yZ2d1aWRlLnRleGk6MTMwMiBvcmdndWlkZS50ZXhpOjEzMDUgb3JnZ3VpZGUudGV4aTox MzYzCiM6IG9yZ2d1aWRlLnRleGk6MTM2NCBvcmdndWlkZS50ZXhpOjEzOTkKIywgbm8td3JhcApt c2dpZCAiQ3JlYXRpbmcgdGltZXN0YW1wcyIKbXNnc3RyICJDcmVhbmRvIGluc3RhbnRlcyBkZSB0 aWVtcG8iCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxNjIgb3JnZ3VpZGUu dGV4aToxMzAyCm1zZ2lkICJDb21tYW5kcyB3aGljaCBpbnNlcnQgdGltZXN0YW1wcyIKbXNnc3Ry ICJDb21hbmRvcyBwYXJhIGluc2VydGFyIGluc3RhbnRlcyBkZSB0aWVtcG8iCgojLiB0eXBlOiBu b2RlCiM6IG9yZ2d1aWRlLnRleGk6MTYyIG9yZ2d1aWRlLnRleGk6MTMwMiBvcmdndWlkZS50ZXhp OjEzNjMgb3JnZ3VpZGUudGV4aToxMzk5CiM6IG9yZ2d1aWRlLnRleGk6MTQwMCBvcmdndWlkZS50 ZXhpOjE0NjIKIywgbm8td3JhcAptc2dpZCAiRGVhZGxpbmVzIGFuZCBzY2hlZHVsaW5nIgptc2dz dHIgIkZlY2hhIGxAJ3tAZG90bGVzc3tpfX1taXRlIHkgcGxhbmlmaWNhY2lAJ29uIgoKIy4gdHlw ZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTYyIG9yZ2d1aWRlLnRleGk6MTMwMgptc2dp ZCAiUGxhbm5pbmcgeW91ciB3b3JrIgptc2dzdHIgIlBsYW5pZmljYW5kbyB0dSB0cmFiYWpvIgoK Iy4gdHlwZTogc2VjdGlvbgojOiBvcmdndWlkZS50ZXhpOjE2MiBvcmdndWlkZS50ZXhpOjEzMDIg b3JnZ3VpZGUudGV4aToxMzk5IG9yZ2d1aWRlLnRleGk6MTQ2MgojOiBvcmdndWlkZS50ZXhpOjE0 NjMKIywgbm8td3JhcAptc2dpZCAiQ2xvY2tpbmcgd29yayB0aW1lIgptc2dzdHIgIkVzdGFibGVj aWVuZG8gdGllbXBvIGRlIHRyYWJham8iCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUu dGV4aToxNjIgb3JnZ3VpZGUudGV4aToxMzAyCm1zZ2lkICJUcmFja2luZyBob3cgbG9uZyB5b3Ug c3BlbmQgb24gYSB0YXNrIgptc2dzdHIgIkxsZXZhbmRvIGxhIGN1ZW50YSBkZSBjdWFudG8gc2Ug Z2FzdGEgZW4gdW5hIHRhcmVhIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjE2OCBv cmdndWlkZS50ZXhpOjE3MCBvcmdndWlkZS50ZXhpOjE1Mjggb3JnZ3VpZGUudGV4aToxNTMwCiM6 IG9yZ2d1aWRlLnRleGk6MTUzMSBvcmdndWlkZS50ZXhpOjE1NDQgb3JnZ3VpZGUudGV4aToxNTU4 IG9yZ2d1aWRlLnRleGk6MTU3NQojOiBvcmdndWlkZS50ZXhpOjE2MTgKIywgbm8td3JhcAptc2dp ZCAiQ2FwdHVyZSIKbXNnc3RyICJDYXB0dXJhciIKCiMuIHR5cGU6IG5vZGUKIzogb3JnZ3VpZGUu dGV4aToxNjggb3JnZ3VpZGUudGV4aToxNTI4IG9yZ2d1aWRlLnRleGk6MTUzMCBvcmdndWlkZS50 ZXhpOjE2MTgKIzogb3JnZ3VpZGUudGV4aToxNjE5IG9yZ2d1aWRlLnRleGk6MTY0MwojLCBuby13 cmFwCm1zZ2lkICJSZWZpbGUgYW5kIGNvcHkiCm1zZ3N0ciAiIgoKIy4gdHlwZTogbWVudWVudHJ5 CiM6IG9yZ2d1aWRlLnRleGk6MTY4IG9yZ2d1aWRlLnRleGk6MTUyOAptc2dpZCAiTW92aW5nIGEg dHJlZSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIgptc2dzdHIgIk1vdmllbmRvIHVuIEAnYXJi b2wgZGUgdW4gbHVnYXIgYSBvdHJvIgoKIy4gdHlwZTogc2VjdGlvbgojOiBvcmdndWlkZS50ZXhp OjE2OCBvcmdndWlkZS50ZXhpOjE1Mjggb3JnZ3VpZGUudGV4aToxNjE4IG9yZ2d1aWRlLnRleGk6 MTY0MwojOiBvcmdndWlkZS50ZXhpOjE2NDQKIywgbm8td3JhcAptc2dpZCAiQXJjaGl2aW5nIgpt c2dzdHIgIkFyY2hpdmFuZG8iCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aTox Njggb3JnZ3VpZGUudGV4aToxNTI4Cm1zZ2lkICJXaGF0IHRvIGRvIHdpdGggZmluaXNoZWQgcHJv amVjdHMiCm1zZ3N0ciAiUXVAJ2Ugc2UgaGFjZSBjb24gbG9zIHByb3llY3RvcyB0ZXJtaW5hZG9z IgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjE3NCBvcmdndWlkZS50ZXhpOjE1NDIg b3JnZ3VpZGUudGV4aToxNTQ0IG9yZ2d1aWRlLnRleGk6MTU0NQojOiBvcmdndWlkZS50ZXhpOjE1 NTgKIywgZnV6enksIG5vLXdyYXAKbXNnaWQgIlNldHRpbmcgdXAgYSBjYXB0dXJlIGxvY2F0aW9u Igptc2dzdHIgIlBvbmllbmRvIHVuYSBwb3NpY2lAJ29uIGRlIGNhcHR1cmEiCgojLiB0eXBlOiBt ZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxNzQgb3JnZ3VpZGUudGV4aToxNTQyCm1zZ2lkICJX aGVyZSBub3RlcyB3aWxsIGJlIHN0b3JlZCIKbXNnc3RyICJEb25kZSBzZXJAJ2FuIGFsbWFjZW5h ZGFzIGxhcyBub3RhcyIKCiMuIHR5cGU6IG5vZGUKIzogb3JnZ3VpZGUudGV4aToxNzQgb3JnZ3Vp ZGUudGV4aToxNTQyIG9yZ2d1aWRlLnRleGk6MTU0NCBvcmdndWlkZS50ZXhpOjE1NTgKIzogb3Jn Z3VpZGUudGV4aToxNTU5IG9yZ2d1aWRlLnRleGk6MTU3NQojLCBuby13cmFwCm1zZ2lkICJVc2lu ZyBjYXB0dXJlIgptc2dzdHIgIlVzYW5kbyBjYXB0dXJhcyIKCiMuIHR5cGU6IG1lbnVlbnRyeQoj OiBvcmdndWlkZS50ZXhpOjE3NCBvcmdndWlkZS50ZXhpOjE1NDIKbXNnaWQgIkNvbW1hbmRzIHRv IGludm9rZSBhbmQgdGVybWluYXRlIGNhcHR1cmUiCm1zZ3N0ciAiQ29tYW5kb3MgcGFyYSBpbnZv Y2FyIHkgZmluYWxpemFyIGNhcHR1cmFzIgoKIy4gdHlwZTogdW5udW1iZXJlZHN1YnNlYwojOiBv cmdndWlkZS50ZXhpOjE3NCBvcmdndWlkZS50ZXhpOjE1NDIgb3JnZ3VpZGUudGV4aToxNTU4IG9y Z2d1aWRlLnRleGk6MTU3NQojOiBvcmdndWlkZS50ZXhpOjE1NzYKIywgbm8td3JhcAptc2dpZCAi Q2FwdHVyZSB0ZW1wbGF0ZXMiCm1zZ3N0ciAiUGxhbnRpbGxhcyBkZSBjYXB0dXJhcyIKCiMuIHR5 cGU6IG1lbnVlbnRyeQojOiBvcmdndWlkZS50ZXhpOjE3NCBvcmdndWlkZS50ZXhpOjE1NDIKIywg ZnV6enkKbXNnaWQgIkRlZmluZSB0aGUgb3V0bGluZSBvZiBkaWZmZXJlbnQgbm90ZSB0eXBlcyIK bXNnc3RyICJEZWZpbmUgZWwgb3V0bGluZSBkZSBkaWZlcmVudGVzIHRpcG9zIGRlIG5vdGFzIgoK Iy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjE4MiBvcmdndWlkZS50ZXhpOjE3MDQgb3Jn Z3VpZGUudGV4aToxNzA2IG9yZ2d1aWRlLnRleGk6MTcwNwojOiBvcmdndWlkZS50ZXhpOjE3MjQK Iywgbm8td3JhcAptc2dpZCAiQWdlbmRhIGZpbGVzIgptc2dzdHIgIkFyY2hpdm9zIGRlIGFnZW5k YSIKCiMuIHR5cGU6IG1lbnVlbnRyeQojOiBvcmdndWlkZS50ZXhpOjE4MiBvcmdndWlkZS50ZXhp OjE3MDQKbXNnaWQgIkZpbGVzIGJlaW5nIHNlYXJjaGVkIGZvciBhZ2VuZGEgaW5mb3JtYXRpb24i Cm1zZ3N0ciAiQXJjaGl2b3MgYnVzY2Fkb3MgcGFyYSBsYSBpbmZvcm1hY2lAJ29uIGRlIGxhIGFn ZW5kYSIKCiMuIHR5cGU6IG5vZGUKIzogb3JnZ3VpZGUudGV4aToxODIgb3JnZ3VpZGUudGV4aTox NzA0IG9yZ2d1aWRlLnRleGk6MTcwNiBvcmdndWlkZS50ZXhpOjE3MjQKIzogb3JnZ3VpZGUudGV4 aToxNzQ1CiMsIG5vLXdyYXAKbXNnaWQgIkFnZW5kYSBkaXNwYXRjaGVyIgptc2dzdHIgIkRlc3Bh Y2hhZG9yIGRlIGFnZW5kYSIKCiMuIHR5cGU6IG1lbnVlbnRyeQojOiBvcmdndWlkZS50ZXhpOjE4 MiBvcmdndWlkZS50ZXhpOjE3MDQKIywgZnV6enkKbXNnaWQgIktleWJvYXJkIGFjY2VzcyB0byBh Z2VuZGEgdmlld3MiCm1zZ3N0ciAiQWNjZXNvIGEgbGFzIHZpc3RhcyBkZSBsYSBhZ2VuZGEgY29u IHRlY2xhZG8iCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6MTgyIG9yZ2d1aWRlLnRl eGk6MTcwNCBvcmdndWlkZS50ZXhpOjE3MjQgb3JnZ3VpZGUudGV4aToxNzQ1CiM6IG9yZ2d1aWRl LnRleGk6MTc1NiBvcmdndWlkZS50ZXhpOjE3ODUgb3JnZ3VpZGUudGV4aToxODAxIG9yZ2d1aWRl LnRleGk6MTg0NwojOiBvcmdndWlkZS50ZXhpOjE4NjEgb3JnZ3VpZGUudGV4aToxODg0CiMsIG5v LXdyYXAKbXNnaWQgIkJ1aWx0LWluIGFnZW5kYSB2aWV3cyIKbXNnc3RyICJWaXN0YXMgZGUgYWdl bmRhIGludGVybmFzIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTgyIG9y Z2d1aWRlLnRleGk6MTcwNAojLCBmdXp6eQptc2dpZCAiV2hhdCBpcyBhdmFpbGFibGUgb3V0IG9m IHRoZSBib3g/Igptc2dzdHIgIsK/UXVAJ2UgaGF5IGZ1ZXJhIGRlIGxhIGNhamE/IgoKIy4gdHlw ZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjE4MiBvcmdndWlkZS50ZXhpOjE3MDQgb3JnZ3VpZGUu dGV4aToxNzQ1IG9yZ2d1aWRlLnRleGk6MTg4NAojOiBvcmdndWlkZS50ZXhpOjE5OTUKIywgbm8t d3JhcAptc2dpZCAiQWdlbmRhIGNvbW1hbmRzIgptc2dzdHIgIkNvbWFuZG9zIGRlIGxhIGFnZW5k YSIKCiMuIHR5cGU6IG1lbnVlbnRyeQojOiBvcmdndWlkZS50ZXhpOjE4MiBvcmdndWlkZS50ZXhp OjE3MDQKIywgZnV6enkKbXNnaWQgIlJlbW90ZSBlZGl0aW5nIG9mIE9yZyB0cmVlcyIKbXNnc3Ry ICJFZGljaUAnb24gcmVtb3RhIGRlIEAnYXJib2xlcyBPcmciCgojLiB0eXBlOiBzZWN0aW9uCiM6 IG9yZ2d1aWRlLnRleGk6MTgyIG9yZ2d1aWRlLnRleGk6MTcwNCBvcmdndWlkZS50ZXhpOjE4ODQg b3JnZ3VpZGUudGV4aToxOTk1CiM6IG9yZ2d1aWRlLnRleGk6MTk5NgojLCBuby13cmFwCm1zZ2lk ICJDdXN0b20gYWdlbmRhIHZpZXdzIgptc2dzdHIgIlZpc3RhcyBkZSBhZ2VuZGEgcGVyc29uYWxp emFkYXMiCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxODIgb3JnZ3VpZGUu dGV4aToxNzA0CiMsIGZ1enp5Cm1zZ2lkICJEZWZpbmluZyBzcGVjaWFsIHNlYXJjaGVzIGFuZCB2 aWV3cyIKbXNnc3RyICJEZWZpbmllbmRvIGJAJ3VzcXVlZGFzIHkgdmlzdGFzIGVzcGVjaWFsZXMi CgojLiB0eXBlOiBzZWN0aW9uCiM6IG9yZ2d1aWRlLnRleGk6MTg0IG9yZ2d1aWRlLnRleGk6MTc0 NgojLCBuby13cmFwCm1zZ2lkICJUaGUgYnVpbHQtaW4gYWdlbmRhIHZpZXdzIgptc2dzdHIgIkxh cyB2aXN0YXMgaW50ZXJuYXMgZGUgbGEgYWdlbmRhIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlk ZS50ZXhpOjE5MCBvcmdndWlkZS50ZXhpOjE3NTQgb3JnZ3VpZGUudGV4aToxNzU2IG9yZ2d1aWRl LnRleGk6MTc4NQojLCBuby13cmFwCm1zZ2lkICJXZWVrbHkvZGFpbHkgYWdlbmRhIgptc2dzdHIg IkFnZW5kYSBzZW1hbmFsL2RpYXJpYSIKCiMuIHR5cGU6IG1lbnVlbnRyeQojOiBvcmdndWlkZS50 ZXhpOjE5MCBvcmdndWlkZS50ZXhpOjE3NTQKIywgZnV6enkKbXNnaWQgIlRoZSBjYWxlbmRhciBw YWdlIHdpdGggY3VycmVudCB0YXNrcyIKbXNnc3RyICJMYSBwQCdhZ2luYSBkZWwgY2FsZW5kYXJp byBjb24gbGFzIHRhcmVhcyBhY3R1YWxlcyIKCiMuIHR5cGU6IG5vZGUKIzogb3JnZ3VpZGUudGV4 aToxOTAgb3JnZ3VpZGUudGV4aToxNzU0IG9yZ2d1aWRlLnRleGk6MTc1NiBvcmdndWlkZS50ZXhp OjE3ODUKIzogb3JnZ3VpZGUudGV4aToxODAxCiMsIG5vLXdyYXAKbXNnaWQgIkdsb2JhbCBUT0RP IGxpc3QiCm1zZ3N0ciAiTGlzdGEgZ2xvYmFsIFRPRE8iCgojLiB0eXBlOiBtZW51ZW50cnkKIzog b3JnZ3VpZGUudGV4aToxOTAgb3JnZ3VpZGUudGV4aToxNzU0CiMsIGZ1enp5Cm1zZ2lkICJBbGwg dW5maW5pc2hlZCBhY3Rpb24gaXRlbXMiCm1zZ3N0ciAiVG9kYXMgbGFzIGFjY2lvbmVzIGRlIGl0 ZW1zIG5vIGZpbmFsaXphZG9zIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjE5MCBv cmdndWlkZS50ZXhpOjE3NTQgb3JnZ3VpZGUudGV4aToxNzg1IG9yZ2d1aWRlLnRleGk6MTgwMQoj OiBvcmdndWlkZS50ZXhpOjE4MDIgb3JnZ3VpZGUudGV4aToxODQ3CiMsIG5vLXdyYXAKbXNnaWQg Ik1hdGNoaW5nIHRhZ3MgYW5kIHByb3BlcnRpZXMiCm1zZ3N0ciAiQ29pbmNpZGllbmRvIG1hcmNh cyB5IHByb3BpZWRhZGVzIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTkw IG9yZ2d1aWRlLnRleGk6MTc1NAojLCBmdXp6eQptc2dpZCAiU3RydWN0dXJlZCBpbmZvcm1hdGlv biB3aXRoIGZpbmUtdHVuZWQgc2VhcmNoIgptc2dzdHIgIkluZm9ybWFjaUAnb24gZXN0cnVjdHVy YWRhIGNvbiBiQCd1c3F1ZWRhcyBhZmluYWRhcyIKCiMuIHR5cGU6IG5vZGUKIzogb3JnZ3VpZGUu dGV4aToxOTAgb3JnZ3VpZGUudGV4aToxNzU0IG9yZ2d1aWRlLnRleGk6MTgwMSBvcmdndWlkZS50 ZXhpOjE4NDcKIzogb3JnZ3VpZGUudGV4aToxODYxCiMsIG5vLXdyYXAKbXNnaWQgIlRpbWVsaW5l Igptc2dzdHIgIkxAJ3tAZG90bGVzc3tpfX1uZWEgZGUgdGllbXBvIgoKIy4gdHlwZTogbWVudWVu dHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTkwIG9yZ2d1aWRlLnRleGk6MTc1NAptc2dpZCAiVGltZS1z b3J0ZWQgdmlldyBmb3Igc2luZ2xlIGZpbGUiCm1zZ3N0ciAiVmlzdGEgb3JkZW5hZGEgZW4gZWwg dGllbXBvIGRlIHVuIHNpbXBsZSBhcmNoaXZvIgoKIy4gdHlwZTogc3Vic2VjdGlvbgojOiBvcmdn dWlkZS50ZXhpOjE5MCBvcmdndWlkZS50ZXhpOjE3NTQgb3JnZ3VpZGUudGV4aToxODQ3IG9yZ2d1 aWRlLnRleGk6MTg2MQojOiBvcmdndWlkZS50ZXhpOjE4NjIKIywgbm8td3JhcAptc2dpZCAiU2Vh cmNoIHZpZXciCm1zZ3N0ciAiVmlzdGEgZGUgYkAndXNxdWVkYSIKCiMuIHR5cGU6IG1lbnVlbnRy eQojOiBvcmdndWlkZS50ZXhpOjE5MCBvcmdndWlkZS50ZXhpOjE3NTQKbXNnaWQgIkZpbmQgZW50 cmllcyBieSBzZWFyY2hpbmcgZm9yIHRleHQiCm1zZ3N0ciAiRW5jb250cmFuZG8gZW50cmFkYXMg YnVzY2FuZG8gdGV4dG8iCgojLiB0eXBlOiBjaGFwdGVyCiM6IG9yZ2d1aWRlLnRleGk6MTkyIG9y Z2d1aWRlLnRleGk6MjA0NQojLCBuby13cmFwCm1zZ2lkICJNYXJrdXAgZm9yIHJpY2ggZXhwb3J0 Igptc2dzdHIgIk1hcmNhcyBwYXJhIGVucmlxdWVjZXIgbGEgZXhwb3J0YWNpQCdvbiIKCiMuIHR5 cGU6IG5vZGUKIzogb3JnZ3VpZGUudGV4aToxOTggb3JnZ3VpZGUudGV4aToyMDAgb3JnZ3VpZGUu dGV4aToyMDU5IG9yZ2d1aWRlLnRleGk6MjA2MQojOiBvcmdndWlkZS50ZXhpOjIwNjIgb3JnZ3Vp ZGUudGV4aToyMDczIG9yZ2d1aWRlLnRleGk6MjA4MyBvcmdndWlkZS50ZXhpOjIwOTgKIzogb3Jn Z3VpZGUudGV4aToyMTA5IG9yZ2d1aWRlLnRleGk6MjE0NyBvcmdndWlkZS50ZXhpOjIxNTYgb3Jn Z3VpZGUudGV4aToyMTcwCiMsIG5vLXdyYXAKbXNnaWQgIlN0cnVjdHVyYWwgbWFya3VwIGVsZW1l bnRzIgptc2dzdHIgIkVsZW1lbnRvcyBkZWwgbWFyY2FkbyBlc3RydWN0dXJhbCIKCiMuIHR5cGU6 IG1lbnVlbnRyeQojOiBvcmdndWlkZS50ZXhpOjE5OCBvcmdndWlkZS50ZXhpOjIwNTkKIywgZnV6 enkKbXNnaWQgIlRoZSBiYXNpYyBzdHJ1Y3R1cmUgYXMgc2VlbiBieSB0aGUgZXhwb3J0ZXIiCm1z Z3N0ciAiTGEgZXN0cnVjdHVyYSBiQCdhc2ljYSBlcyB2aXN0YSBwb3IgZWwgZXhwb3J0YWRvciIK CiMuIHR5cGU6IG5vZGUKIzogb3JnZ3VpZGUudGV4aToxOTggb3JnZ3VpZGUudGV4aToyMDU5IG9y Z2d1aWRlLnRleGk6MjA2MSBvcmdndWlkZS50ZXhpOjIxNzAKIzogb3JnZ3VpZGUudGV4aToyMjAz CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJJbWFnZXMgYW5kIHRhYmxlcyIKbXNnc3RyICJJbUAn YWdlbmVzIHkgdGFibGFzIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MTk4 IG9yZ2d1aWRlLnRleGk6MjA1OQojLCBmdXp6eQptc2dpZCAiVGFibGVzIGFuZCBJbWFnZXMgd2ls bCBiZSBpbmNsdWRlZCIKbXNnc3RyICJUYWJsYXMgZSBpbUAnYWdlbmVzIHNlckAnYW4gaW5jbHVp ZGFzIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjE5OCBvcmdndWlkZS50ZXhpOjIw NTkgb3JnZ3VpZGUudGV4aToyMTcwIG9yZ2d1aWRlLnRleGk6MjIwMwojOiBvcmdndWlkZS50ZXhp OjIyMDQgb3JnZ3VpZGUudGV4aToyMjQwCiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJMaXRlcmFs IGV4YW1wbGVzIgptc2dzdHIgIkVqZW1wbG9zIGxpdGVyYWxlcyIKCiMuIHR5cGU6IG1lbnVlbnRy eQojOiBvcmdndWlkZS50ZXhpOjE5OCBvcmdndWlkZS50ZXhpOjIwNTkKIywgZnV6enkKbXNnaWQg IlNvdXJjZSBjb2RlIGV4YW1wbGVzIHdpdGggc3BlY2lhbCBmb3JtYXR0aW5nIgptc2dzdHIgIkVq ZW1wbG9zIGRlIGNAJ29kaWdvIGZ1ZW50ZSBjb24gZm9ybWF0byBlc3BlY2lhbCIKCiMuIHR5cGU6 IG5vZGUKIzogb3JnZ3VpZGUudGV4aToxOTggb3JnZ3VpZGUudGV4aToyMDU5IG9yZ2d1aWRlLnRl eGk6MjIwMyBvcmdndWlkZS50ZXhpOjIyNDAKIzogb3JnZ3VpZGUudGV4aToyMjQxIG9yZ2d1aWRl LnRleGk6MjI1NgojLCBuby13cmFwCm1zZ2lkICJJbmNsdWRlIGZpbGVzIgptc2dzdHIgIkFyY2hp dm9zIEluY2x1ZGUiCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4aToxOTggb3Jn Z3VpZGUudGV4aToyMDU5CiMsIGZ1enp5Cm1zZ2lkICJJbmNsdWRlIGFkZGl0aW9uYWwgZmlsZXMg aW50byBhIGRvY3VtZW50Igptc2dzdHIgIkFyY2hpdm9zIGFkaWNpb25hbGVzIEluY2x1ZGUgZGVu dHJvIGRlIHVuIGRvY3VtZW50byIKCiMuIHR5cGU6IHNlY3Rpb24KIzogb3JnZ3VpZGUudGV4aTox OTggb3JnZ3VpZGUudGV4aToyMDU5IG9yZ2d1aWRlLnRleGk6MjI0MCBvcmdndWlkZS50ZXhpOjIy NTYKIzogb3JnZ3VpZGUudGV4aToyMjU3CiMsIG5vLXdyYXAKbXNnaWQgIkVtYmVkZGVkIEBMYVRl WHt9Igptc2dzdHIgIkBMYVRlWHt9IGVtYmViaWRvIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9y Z2d1aWRlLnRleGk6MTk4IG9yZ2d1aWRlLnRleGk6MjA1OQojLCBmdXp6eQptc2dpZCAiQExhVGVY e30gY2FuIGJlIGZyZWVseSB1c2VkIGluc2lkZSBPcmcgZG9jdW1lbnRzIgptc2dzdHIgIkBMYVRl WHt9IHB1ZWRlIHVzYXJzZSBsaWJyZW1lbnRlIGRlbnRybyBkZSBsb3MgZG9jdW1lbnRvcyBPcmci CgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6MjA3IG9yZ2d1aWRlLnRleGk6MjA3MSBv cmdndWlkZS50ZXhpOjIwNzMgb3JnZ3VpZGUudGV4aToyMDc0CiM6IG9yZ2d1aWRlLnRleGk6MjA4 MwojLCBuby13cmFwCm1zZ2lkICJEb2N1bWVudCB0aXRsZSIKbXNnc3RyICJUQCd7QGRvdGxlc3N7 aX19dHVsbyBkZSBkb2N1bWVudG8iCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4 aToyMDcgb3JnZ3VpZGUudGV4aToyMDcxCiMsIGZ1enp5Cm1zZ2lkICJXaGVyZSB0aGUgdGl0bGUg aXMgdGFrZW4gZnJvbSIKbXNnc3RyICJEZXNkZSBkb25kZSBlbCB0QCd7QGRvdGxlc3N7aX19dHVs byBlcyB0b21hZG8iCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6MjA3IG9yZ2d1aWRl LnRleGk6MjA3MSBvcmdndWlkZS50ZXhpOjIwNzMgb3JnZ3VpZGUudGV4aToyMDgzCiM6IG9yZ2d1 aWRlLnRleGk6MjA4NCBvcmdndWlkZS50ZXhpOjIwOTgKIywgbm8td3JhcAptc2dpZCAiSGVhZGlu Z3MgYW5kIHNlY3Rpb25zIgptc2dzdHIgIkVuY2FiZXphZG9zIHkgc2VjY2lvbmVzIgoKIy4gdHlw ZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MjA3IG9yZ2d1aWRlLnRleGk6MjA3MQojLCBm dXp6eQptc2dpZCAiVGhlIGRvY3VtZW50IHN0cnVjdHVyZSBhcyBzZWVuIGJ5IHRoZSBleHBvcnRl ciIKbXNnc3RyICJMYSBlc3RydWN0dXJhIGRlbCBkb2N1bWVudG8gZXMgdmlzdGEgcG9yIGVsIGV4 cG9ydGFkb3IiCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6MjA3IG9yZ2d1aWRlLnRl eGk6MjA3MSBvcmdndWlkZS50ZXhpOjIwODMgb3JnZ3VpZGUudGV4aToyMDk4CiM6IG9yZ2d1aWRl LnRleGk6MjA5OSBvcmdndWlkZS50ZXhpOjIxMDkKIywgbm8td3JhcAptc2dpZCAiVGFibGUgb2Yg Y29udGVudHMiCm1zZ3N0ciAiVGFibGEgZGUgY29udGVuaWRvcyIKCiMuIHR5cGU6IG1lbnVlbnRy eQojOiBvcmdndWlkZS50ZXhpOjIwNyBvcmdndWlkZS50ZXhpOjIwNzEKIywgZnV6enkKbXNnaWQg IlRoZSBpZiBhbmQgd2hlcmUgb2YgdGhlIHRhYmxlIG9mIGNvbnRlbnRzIgptc2dzdHIgIkVsIHNp IHkgZWwgZG9uZGUgZGUgbGEgdGFibGEgZGUgY29udGVuaWRvcyIKCiMuIHR5cGU6IG5vZGUKIzog b3JnZ3VpZGUudGV4aToyMDcgb3JnZ3VpZGUudGV4aToyMDcxIG9yZ2d1aWRlLnRleGk6MjA5OCBv cmdndWlkZS50ZXhpOjIxMDkKIzogb3JnZ3VpZGUudGV4aToyMTQ3CiMsIG5vLXdyYXAKbXNnaWQg IlBhcmFncmFwaHMiCm1zZ3N0ciAiUEAnYXJyYWZvcyIKCiMuIHR5cGU6IG5vZGUKIzogb3JnZ3Vp ZGUudGV4aToyMDcgb3JnZ3VpZGUudGV4aToyMDcxIG9yZ2d1aWRlLnRleGk6MjEwOSBvcmdndWlk ZS50ZXhpOjIxNDcKIzogb3JnZ3VpZGUudGV4aToyMTQ4IG9yZ2d1aWRlLnRleGk6MjE1NgojLCBu by13cmFwCm1zZ2lkICJFbXBoYXNpcyBhbmQgbW9ub3NwYWNlIgptc2dzdHIgIkAnRW5mYXNpcyB5 IG1vbm9lc3BhY2lvIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MjA3IG9y Z2d1aWRlLnRleGk6MjA3MQptc2dpZCAiQm9sZCwgaXRhbGljLCBldGMuIgptc2dzdHIgIk5lZ3Jp bGxhLCBpdEAnYWxpY2EsIGV0Yy4iCgojLiB0eXBlOiBzdWJoZWFkaW5nCiM6IG9yZ2d1aWRlLnRl eGk6MjA3IG9yZ2d1aWRlLnRleGk6MjA3MSBvcmdndWlkZS50ZXhpOjIxNDcgb3JnZ3VpZGUudGV4 aToyMTU2CiM6IG9yZ2d1aWRlLnRleGk6MjE1NwojLCBuby13cmFwCm1zZ2lkICJDb21tZW50IGxp bmVzIgptc2dzdHIgIkxAJ3tAZG90bGVzc3tpfX1uZWFzIGRlIGNvbWVudGFyaW9zIgoKIy4gdHlw ZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MjA3IG9yZ2d1aWRlLnRleGk6MjA3MQptc2dp ZCAiV2hhdCB3aWxsICpub3QqIGJlIGV4cG9ydGVkIgptc2dzdHIgIlF1QCdlICpubyogc2VyQCdh IGV4cG9ydGFkbyIKCiMuIHR5cGU6IG5vZGUKIzogb3JnZ3VpZGUudGV4aToyMTcgb3JnZ3VpZGUu dGV4aToyMjk4IG9yZ2d1aWRlLnRleGk6MjMwMCBvcmdndWlkZS50ZXhpOjIzMDEKIzogb3JnZ3Vp ZGUudGV4aToyMzI5CiMsIG5vLXdyYXAKbXNnaWQgIkV4cG9ydCBvcHRpb25zIgptc2dzdHIgIk9w Y2lvbmVzIGRlIGV4cG9ydGFjaUAnb24iCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUu dGV4aToyMTcgb3JnZ3VpZGUudGV4aToyMjk4CiMsIGZ1enp5Cm1zZ2lkICJQZXItZmlsZSBleHBv cnQgc2V0dGluZ3MiCm1zZ3N0ciAiQ29uZmlndXJhY2lAJ29uIGRlbCBwZXJmQCd7QGRvdGxlc3N7 aX19bCBkZSBleHBvcnRhY2lAJ29uIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjIx NyBvcmdndWlkZS50ZXhpOjIyOTggb3JnZ3VpZGUudGV4aToyMzAwIG9yZ2d1aWRlLnRleGk6MjMy OQojOiBvcmdndWlkZS50ZXhpOjIzMzAgb3JnZ3VpZGUudGV4aToyMzQzCiMsIG5vLXdyYXAKbXNn aWQgIlRoZSBleHBvcnQgZGlzcGF0Y2hlciIKbXNnc3RyICJFbCBkaXNwZW5zYWRvciBkZSBleHBv cnRhY2lAJ29uIgoKIy4gdHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MjE3IG9yZ2d1 aWRlLnRleGk6MjI5OAojLCBmdXp6eQptc2dpZCAiSG93IHRvIGFjY2VzcyBleHBvcnRlciBjb21t YW5kcyIKbXNnc3RyICJDb21vIGFjY2VkZXIgYSBsb3MgY29tYW5kb3MgZGVsIGV4cG9ydGFkb3Ii CgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6MjE3IG9yZ2d1aWRlLnRleGk6MjI5OCBv cmdndWlkZS50ZXhpOjIzMjkgb3JnZ3VpZGUudGV4aToyMzQzCiM6IG9yZ2d1aWRlLnRleGk6MjM0 NCBvcmdndWlkZS50ZXhpOjIzNTkKIywgbm8td3JhcAptc2dpZCAiQVNDSUkvTGF0aW4tMS9VVEYt OCBleHBvcnQiCm1zZ3N0ciAiRXhwb3J0YWNpQCdvbiBBU0NJSS9MYXRpbi0xL1VURi04IgoKIy4g dHlwZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MjE3IG9yZ2d1aWRlLnRleGk6MjI5OAoj LCBmdXp6eQptc2dpZCAiRXhwb3J0aW5nIHRvIGZsYXQgZmlsZXMgd2l0aCBlbmNvZGluZyIKbXNn c3RyICJFeHBvcnRhbmRvIGEgZmljaGVyb3MgcGxhbm9zIGNvbiBjb2RpZmljYWNpQCdvbiIKCiMu IHR5cGU6IG5vZGUKIzogb3JnZ3VpZGUudGV4aToyMTcgb3JnZ3VpZGUudGV4aToyMjk4IG9yZ2d1 aWRlLnRleGk6MjM0MyBvcmdndWlkZS50ZXhpOjIzNTkKIzogb3JnZ3VpZGUudGV4aToyMzYwIG9y Z2d1aWRlLnRleGk6MjM4MgojLCBuby13cmFwCm1zZ2lkICJIVE1MIGV4cG9ydCIKbXNnc3RyICJI VE1MIGV4cG9ydCIKCiMuIHR5cGU6IG1lbnVlbnRyeQojOiBvcmdndWlkZS50ZXhpOjIxNyBvcmdn dWlkZS50ZXhpOjIyOTgKbXNnaWQgIkV4cG9ydGluZyB0byBIVE1MIgptc2dzdHIgIkV4cG9ydGFu ZG8gYSBIVE1MIgoKIy4gdHlwZTogbm9kZQojOiBvcmdndWlkZS50ZXhpOjIxNyBvcmdndWlkZS50 ZXhpOjIyOTggb3JnZ3VpZGUudGV4aToyMzU5IG9yZ2d1aWRlLnRleGk6MjM4MgojOiBvcmdndWlk ZS50ZXhpOjIzODMgb3JnZ3VpZGUudGV4aToyNDAzCiMsIG5vLXdyYXAKbXNnaWQgIkBMYVRlWHt9 IGFuZCBQREYgZXhwb3J0Igptc2dzdHIgIkV4cG9ydGFyIEBMYVRlWHt9IHkgUERGIgoKIy4gdHlw ZTogbWVudWVudHJ5CiM6IG9yZ2d1aWRlLnRleGk6MjE3IG9yZ2d1aWRlLnRleGk6MjI5OAptc2dp ZCAiRXhwb3J0aW5nIHRvIEBMYVRlWHt9LCBhbmQgcHJvY2Vzc2luZyB0byBQREYiCm1zZ3N0ciAi RXhwb3J0YW5kbyBhIEBMYVRlWHt9LCB5IHByb2Nlc2FuZG8gYSBQREYiCgojLiB0eXBlOiBub2Rl CiM6IG9yZ2d1aWRlLnRleGk6MjE3IG9yZ2d1aWRlLnRleGk6MjI5OCBvcmdndWlkZS50ZXhpOjIz ODIgb3JnZ3VpZGUudGV4aToyNDAzCiM6IG9yZ2d1aWRlLnRleGk6MjQwNCBvcmdndWlkZS50ZXhp OjI0MTUKIywgbm8td3JhcAptc2dpZCAiRG9jQm9vayBleHBvcnQiCm1zZ3N0ciAiRXhwb3J0YXIg RG9jQm9vayIKCiMuIHR5cGU6IG1lbnVlbnRyeQojOiBvcmdndWlkZS50ZXhpOjIxNyBvcmdndWlk ZS50ZXhpOjIyOTgKbXNnaWQgIkV4cG9ydGluZyB0byBEb2NCb29rIgptc2dzdHIgIkV4cG9ydGFu ZG8gYSBEb2NCb29rIgoKIy4gdHlwZTogc2VjdGlvbgojOiBvcmdndWlkZS50ZXhpOjIxNyBvcmdn dWlkZS50ZXhpOjIyOTggb3JnZ3VpZGUudGV4aToyNDAzIG9yZ2d1aWRlLnRleGk6MjQxNQojOiBv cmdndWlkZS50ZXhpOjI0MTYKIywgbm8td3JhcAptc2dpZCAiaUNhbGVuZGFyIGV4cG9ydCIKbXNn c3RyICJFeHBvcnRhciBpQ2FsZW5kYXIiCgojLiB0eXBlOiBub2RlCiM6IG9yZ2d1aWRlLnRleGk6 MjIzIG9yZ2d1aWRlLnRleGk6MjYwNiBvcmdndWlkZS50ZXhpOjI2MDggb3JnZ3VpZGUudGV4aToy NjA5CiM6IG9yZ2d1aWRlLnRleGk6MjYxOAojLCBuby13cmFwCm1zZ2lkICJDb21wbGV0aW9uIgpt c2dzdHIgIlRlcm1pbmFjaUAnb24iCgojLiB0eXBlOiBtZW51ZW50cnkKIzogb3JnZ3VpZGUudGV4 aToyMjMgb3JnZ3VpZGUudGV4aToyNjA2Cm1zZ2lkICJNLVRBQiBrbm93cyB3aGF0IHlvdSBuZWVk Igptc2dzdHIgIk0tVEFCIHNhYmUgcXVAJ2UgbmVjZXNpdGEiCgojLiB0eXBlOiBub2RlCiM6IG9y Z2d1aWRlLnRleGk6MjIzIG9yZ2d1aWRlLnRleGk6MjYwNiBvcmdndWlkZS50ZXhpOjI2MDggb3Jn Z3VpZGUudGV4aToyNjE4CiM6IG9yZ2d1aWRlLnRleGk6MjY2MgojLCBuby13cmFwCm1zZ2lkICJD bGVhbiB2aWV3Igptc2dzdHIgIlZpc3RhIGxpbXBpYSIKCiMuIHR5cGU6IG1lbnVlbnRyeQojOiBv cmdndWlkZS50ZXhpOjIyMyBvcmdndWlkZS50ZXhpOjI2MDYKbXNnaWQgIkdldHRpbmcgcmlkIG9m IGxlYWRpbmcgc3RhcnMgaW4gdGhlIG91dGxpbmUiCm1zZ3N0ciAiRWxpbWluYWNpQCdvbiBkZSBs b3MgYXN0ZXJpc2NvcyBpbmljaWFsZXMgZW4gZWwgb3V0bGluZSIKCiMuIHR5cGU6IHNlY3Rpb24K Izogb3JnZ3VpZGUudGV4aToyMjMgb3JnZ3VpZGUudGV4aToyNjA2IG9yZ2d1aWRlLnRleGk6MjYx OCBvcmdndWlkZS50ZXhpOjI2NjIKIzogb3JnZ3VpZGUudGV4aToyNjYzCiMsIG5vLXdyYXAKbXNn aWQgIk1vYmlsZU9yZyIKbXNnc3RyICJPcmcgbUAnb3ZpbCIKCiMuIHR5cGU6IG1lbnVlbnRyeQoj OiBvcmdndWlkZS50ZXhpOjIyMyBvcmdndWlkZS50ZXhpOjI2MDYKbXNnaWQgIk9yZy1tb2RlIG9u IHRoZSBpUGhvbmUiCm1zZ3N0ciAiT3JnLW1vZGUgZW4gZWwgaVBob25lIgoKIy4gdHlwZTogUGxh aW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjI0Mwptc2dpZCAiIgoiT3JnIGlzIGEgbW9kZSBmb3Ig a2VlcGluZyBub3RlcywgbWFpbnRhaW5pbmcgVE9ETyBsaXN0cywgYW5kIGRvaW5nIHByb2plY3Qg IgoicGxhbm5pbmcgd2l0aCBhIGZhc3QgYW5kIGVmZmVjdGl2ZSBwbGFpbi10ZXh0IHN5c3RlbS4g IEl0IGlzIGFsc28gYW4gIgoiYXV0aG9yaW5nIGFuZCBwdWJsaXNoaW5nIHN5c3RlbS4iCm1zZ3N0 ciAiIgoiT3JnIGVzIHVuIG1vZG8gcGFyYSBndWFyZGFyIG5vdGFzLCBtYW50ZW5pZW5kbyBsaXN0 YXMgVE9ETyAocG9yXG4iCiJoYWNlciksIHkgaGFjaWVuZG8gcGxhbmVzIGRlIHByb3llY3RvcyBj b24gdW4gckAnYXBpZG8geSBlZmVjdGl2b1xuIgoic2lzdGVtYSBkZSB0ZXh0byBwbGFuby4gRXMg YWRlbUAnYXMgdW4gc2lzdGVtYSBkZSBwdWJsaWNhY2lAJ29uIHlcbiIKImF1dG9yQCd7QGRvdGxl c3N7aX19YS4iCgojLiB0eXBlOiBpeyMxfQojOiBvcmdndWlkZS50ZXhpOjI0OQojLCBmdXp6eQpt c2dpZCAiIgoiVGhpcyBkb2N1bWVudCBpcyBhIG11Y2ggY29tcHJlc3NlZCBkZXJpdmF0aXZlIG9m IHRoZSBAdXJlZntodHRwOi8vb3JnbW9kZS4iCiJvcmcvaW5kZXguaHRtbCNzZWMtNF8xLCBjb21w cmVoZW5zaXZlIE9yZy1tb2RlIG1hbnVhbH0uICBJdCBjb250YWlucyBhbGwgIgoiYmFzaWMgZmVh dHVyZXMgYW5kIGNvbW1hbmRzLCBhbG9uZyB3aXRoIGltcG9ydGFudCBoaW50cyBmb3IgY3VzdG9t aXphdGlvbi4gICIKIkl0IGlzIGludGVuZGVkIGZvciBiZWdpbm5lcnMgd2hvIHdvdWxkIHNoeSBi YWNrIGZyb20gYSAyMDAgcGFnZSBtYW51YWwgIgoiYmVjYXVzZSBvZiBzaGVlciBzaXplLiIKbXNn c3RyICIiCiJFc3RlIGRvY3VtZW50byBlcyB1biByZXN1bWVuIGRlcml2YWRvIGRlbFxuIgoiQHVy ZWZ7aHR0cDovL29yZ21vZGUub3JnL2luZGV4Lmh0bWwjc2VjLTQtMSwgbWFudWFsIGNvbXBsZXRv IGRlXG4iCiJPcmctbW9kZX0uIENvbnRpZW5lIHRvZGFzIGxhcyBmdW5jaW9uYWxpZGFkZXMgYkAn YXNpY2FzIHkgY29tYW5kb3MsXG4iCiJqdW50byBjb24gaW1wb3J0YW50ZXMgZGV0YWxsZXMgZGUg cGVyc29uYWxpemFjaUAnb24uIFNlIHJlY29taWVuZGFcbiIKInBhcmEgcHJpbmNpcGlhbnRlcyBx dWUgc2UgYXN1c3RhbiBjb24gbWFudWFsZXMgZGUgMjAwIHBAJ2FnaW5hcyBwb3Igc3VcbiIKInB1 cm8gdGFtYUB+bm8uIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjI1Ngpt c2dpZCAiIgoiQGJ7SW1wb3J0YW50On0gQGl7SWYgeW91IGFyZSB1c2luZyBhIHZlcnNpb24gb2Yg T3JnIHRoYXQgaXMgcGFydCBvZiB0aGUgIgoiRW1hY3MgZGlzdHJpYnV0aW9uIG9yIGFuIFhFbWFj cyBwYWNrYWdlLCBwbGVhc2Ugc2tpcCB0aGlzIHNlY3Rpb24gYW5kIGdvICIKImRpcmVjdGx5IHRv IEByZWZ7QWN0aXZhdGlvbn0ufSIKbXNnc3RyICIiCiJAYntJbXBvcnRhbnRlOn0gQGl7U2kgc2Ug dXNhIHVuYSB2ZXJzaUAnb24gZGUgT3JnIHF1ZSBlcyBwYXJ0ZSBkZSB1bmFcbiIKImRpc3RyaWJ1 Y2lAJ29uIGRlIEVtYWNzIG8gdW4gcGFxdWV0ZSBkZSBYRW1hY3MsIHBvciBmYXZvciBzQCdhbHRl c2VcbiIKImVzdGEgc2VjY2lAJ29uIHkgdmF5YSBkaXJlY3RhbWVudGUgYSBAcmVme0FjdGl2YWNp QCdvbn0ufSIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyNjEKbXNnaWQg IiIKIklmIHlvdSBoYXZlIGRvd25sb2FkZWQgT3JnIGZyb20gdGhlIFdlYiwgZWl0aGVyIGFzIGEg ZGlzdHJpYnV0aW9uIEBmaWxley4iCiJ6aXB9IG9yIEBmaWxley50YXJ9IGZpbGUsIG9yIGFzIGEg R2l0IGFyY2hpdmUsIGl0IGlzIGJlc3QgdG8gcnVuIGl0IGRpcmVjdGx5ICIKImZyb20gdGhlIGRp c3RyaWJ1dGlvbiBkaXJlY3RvcnkuICBZb3UgbmVlZCB0byBhZGQgdGhlIEBmaWxle2xpc3B9ICIK InN1YmRpcmVjdG9yaWVzIHRvIHRoZSBFbWFjcyBsb2FkIHBhdGguICBUbyBkbyB0aGlzLCBhZGQg dGhlIGZvbGxvd2luZyBsaW5lICIKInRvIEBmaWxley5lbWFjc306Igptc2dzdHIgIiIKIlNpIHNl IGhhIGRlc2NhcmdhZG8gT3JnIGRlIGxhIHdlYiwgY29tbyBkaXN0cmlidWNpQCdvbiBkZSBmaWNo ZXJvc1xuIgoiYmllbiBAZmlsZXsuemlwfSwgbyBiaWVuIEBmaWxley50YXJ9LCBvIGNvbW8gdW4g YXJjaGl2byBHaXQsIGVzXG4iCiJwcmVmZXJpYmxlIGVqZWN1dGFybG8gZGlyZWN0YW1lbnRlIGRl c2RlIGVsIGRpcmVjdG9yaW8gZGUgbGFcbiIKImRpc3RyaWJ1Y2lAJ29uLiBOZWNlc2l0YXJAJ2Eg YUB+bmFkaXIgbG9zIHN1YmRpcmVjdG9yaW9zIEBmaWxle2xpc3B9XG4iCiJhbCBjYW1pbm8gZGUg Y2FyZ2EgZGUgRW1hY3MuIFBhcmEgaGFjZXIgZXN0bywgYUB+bmFkYSBsYSBzaWd1aWVudGVcbiIK ImxAJ3tAZG90bGVzc3tpfX1uZWEgYWwgYXJjaGl2byBAZmlsZXsuZW1hY3N9OiIKCiMuIHR5cGU6 IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjI2NQojLCBmdXp6eSwgbm8td3JhcAptc2dp ZCAiIgoiKHNldHEgbG9hZC1wYXRoIChjb25zIFwifi9wYXRoL3RvL29yZ2Rpci9saXNwXCIgbG9h ZC1wYXRoKSlcbiIKIihzZXRxIGxvYWQtcGF0aCAoY29ucyBcIn4vcGF0aC90by9vcmdkaXIvY29u dHJpYi9saXNwXCIgbG9hZC1wYXRoKSlcbiIKbXNnc3RyICIiCiIoc2V0cSBsb2FkLXBhdGggKGNv bnMgXCJ+L2NhbWluby9hL29yZ2Rpci9saXNwXCIgbG9hZC1wYXRoKSlcbiIKIihzZXRxIGxvYWQt cGF0aCAoY29ucyBcIn4vY2FtaW5vL2Evb3JnZGlyL2NvbnRyaWIvbGlzcFwiIGxvYWQtcGF0aCki CgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MjY5Cm1zZ2lkICJjb21tYW5k OiIKbXNnc3RyICJjb21hbmRvOiIKCiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50 ZXhpOjI3MgojLCBuby13cmFwCm1zZ2lkICJtYWtlXG4iCm1zZ3N0ciAibWFrZSIKCiMuIHR5cGU6 IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyODAKbXNnaWQgIiIKIkFkZCB0aGUgZm9sbG93 aW5nIGxpbmVzIHRvIHlvdXIgQGZpbGV7LmVtYWNzfSBmaWxlLiAgVGhlIGxhc3QgdGhyZWUgbGlu ZXMgIgoiZGVmaW5lIEBlbXBoe2dsb2JhbH0ga2V5cyBmb3Igc29tZSBjb21tYW5kcyAtLS0gcGxl YXNlIGNob29zZSBzdWl0YWJsZSBrZXlzICIKInlvdXJzZWxmLiIKbXNnc3RyICIiCiJBQH5uYWRh IGxhcyBzaWd1aWVudGVzIGxAJ3tAZG90bGVzc3tpfX1uZWFzIGEgc3UgYXJjaGl2b1xuIgoiQGZp bGV7LmVtYWNzfS4gTGFzIEAndWx0aW1hcyB0cmVzIGxAJ3tAZG90bGVzc3tpfX1uZWFzIGRlZmlu ZW4gbGFzXG4iCiJjbGF2ZXMgQGVtcGh7Z2xvYmFsfSBkZSBhbGd1bm9zIGNvbWFuZG9zIC0tLXBv ciBmYXZvciwgZWxpamEgY2xhdmVzXG4iCiJhcHJvcGlhZGFzIHBvciBzQCd7QGRvdGxlc3N7aX19 IG1pc21vLiIKCiMuIHR5cGU6IHNtYWxsbGlzcAojOiBvcmdndWlkZS50ZXhpOjI4OAojLCBmdXp6 eSwgbm8td3JhcAptc2dpZCAiIgoiOzsgVGhlIGZvbGxvd2luZyBsaW5lcyBhcmUgYWx3YXlzIG5l ZWRlZC4gIENob29zZSB5b3VyIG93biBrZXlzLlxuIgoiKGFkZC10by1saXN0ICdhdXRvLW1vZGUt YWxpc3QgJyhcIlxcXFwub3JnXFxcXCdcIiAuIG9yZy1tb2RlKSkgOyBub3QgbmVlZGVkIHNpbmNl IEVtYWNzIDIyLjJcbiIKIihhZGQtaG9vayAnb3JnLW1vZGUtaG9vayAndHVybi1vbi1mb250LWxv Y2spIDsgbm90IG5lZWRlZCB3aGVuIGdsb2JhbC1mb250LWxvY2stbW9kZSBpcyBvblxuIgoiKGds b2JhbC1zZXQta2V5IFwiXFxDLWNsXCIgJ29yZy1zdG9yZS1saW5rKVxuIgoiKGdsb2JhbC1zZXQt a2V5IFwiXFxDLWNhXCIgJ29yZy1hZ2VuZGEpXG4iCiIoZ2xvYmFsLXNldC1rZXkgXCJcXEMtY2Jc IiAnb3JnLWlzd2l0Y2hiKVxuIgptc2dzdHIgIiIKIjs7IExhcyBzaWd1aWVudGVzIGxAJ3tAZG90 bGVzc3tpfX1uZWFzIHNvbiBzaWVtcHJlIG5lY2VzYXJpYXMuXG4iCiI7OyBFbGlqYSBzdXMgcHJv cGlhcyBjbGF2ZXMuXG4iCiIoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKFwiLm9yZydc IiAuIG9yZy1tb2RlKSlcbiIKIihhZGQtaG9vayAnb3JnLW1vZGUtaG9vayAndHVybi1vbi1mb250 LWxvY2spXG4iCiI7OyBubyBlcyBuZWNlc2FyaW8gY3VhbmRvIGdsb2JhbC1mb250LWxvY2stbW9k ZSBlc3RAJ2EgYWN0aXZhZG9cbiIKIihnbG9iYWwtc2V0LWtleSBcIlxcQy1jbFwiICdvcmctc3Rv cmUtbGluaylcbiIKIihnbG9iYWwtc2V0LWtleSBcIlxcQy1jYVwiICdvcmctYWdlbmRhKVxuIgoi KGdsb2JhbC1zZXQta2V5IFwiXFxDLWNiXCIgJ29yZy1pc3dpdGNoYilcbiIKCiMuIHR5cGU6IFBs YWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyOTIKbXNnaWQgIiIKIldpdGggdGhpcyBzZXR1cCwg YWxsIGZpbGVzIHdpdGggZXh0ZW5zaW9uIEBzYW1wey5vcmd9IHdpbGwgYmUgcHV0IGludG8gT3Jn ICIKIm1vZGUuIgptc2dzdHIgIiIKIkNvbiBlc3RhIGNvbmZpZ3VyYWNpQCdvbiwgdG9kb3MgbG9z IGFyY2hpdm9zIGNvbiBleHRlbnNpQCdvblxuIgoiQHNhbXB7Lm9yZ30gc2VyQCdhbiB0cmF0YWRv cyBlbiBtb2RvIE9yZy4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6Mjk5 Cm1zZ2lkICIiCiJJZiB5b3UgZmluZCBwcm9ibGVtcyB3aXRoIE9yZywgb3IgaWYgeW91IGhhdmUg cXVlc3Rpb25zLCByZW1hcmtzLCBvciBpZGVhcyAiCiJhYm91dCBpdCwgcGxlYXNlIG1haWwgdG8g dGhlIE9yZyBtYWlsaW5nIGxpc3QgQGVtYWlse2VtYWNzLW9yZ21vZGVAQGdudS4iCiJvcmd9LiAg Rm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byBzdWJtaXQgYnVnIHJlcG9ydHMsIHNlZSB0aGUgbWFp biBtYW51YWwuIgptc2dzdHIgIiIKIlNpIGVuY3VlbnRyYSBwcm9ibGVtYXMgY29uIE9yZywgbyBz aSB0aWVuZSBwcmVndW50YXMsIGNvbWVudGFyaW9zLCB1XG4iCiJvdHJhcyBpZGVhcyBhY2VyY2Eg ZGUgQCdlbCwgcG9yIGZhdm9yIGVudmllIHVuIGNvcnJlbyBhIGxhIGxpc3RhIGRlXG4iCiJPcmcg QGVtYWlse2VtYWNzLW9yZ21vZGVAQGdudS5vcmd9LiBQYXJhIG1AJ2FzIGluZm9ybWFjaUAnb24g ZGUgY0Anb21vXG4iCiJlbnZpYXIgaW5mb3JtZXMgZGUgZXJyb3IsIGxlYSBlbCBtYW51YWwgcHJp bmNpcGFsLiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTozMDUKbXNnaWQg IiIKIk9yZyBpcyBiYXNlZCBvbiBPdXRsaW5lIG1vZGUgYW5kIHByb3ZpZGVzIGZsZXhpYmxlIGNv bW1hbmRzIHRvIGVkaXQgdGhlICIKInN0cnVjdHVyZSBvZiB0aGUgZG9jdW1lbnQuIgptc2dzdHIg IiIKIk9yZyBlc3RAJ2EgYmFzYWRvIGVuIGVsIG1vZG8gT3V0bGluZSB5IHN1bWluaXN0cmEgZmxl eGlibGVzIGNvbWFuZG9zXG4iCiJwYXJhIGVkaXRhciBsYSBlc3RydWN0dXJhIGRlIHVuIGRvY3Vt ZW50by4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MzI4Cm1zZ2lkICIi CiJPcmcgaXMgaW1wbGVtZW50ZWQgb24gdG9wIG9mIE91dGxpbmUgbW9kZS4gIE91dGxpbmVzIGFs bG93IGEgZG9jdW1lbnQgdG8gYmUgIgoib3JnYW5pemVkIGluIGEgaGllcmFyY2hpY2FsIHN0cnVj dHVyZSwgd2hpY2ggKGF0IGxlYXN0IGZvciBtZSkgaXMgdGhlIGJlc3QgIgoicmVwcmVzZW50YXRp b24gb2Ygbm90ZXMgYW5kIHRob3VnaHRzLiAgQW4gb3ZlcnZpZXcgb2YgdGhpcyBzdHJ1Y3R1cmUg aXMgIgoiYWNoaWV2ZWQgYnkgZm9sZGluZyAoaGlkaW5nKSBsYXJnZSBwYXJ0cyBvZiB0aGUgZG9j dW1lbnQgdG8gc2hvdyBvbmx5IHRoZSAiCiJnZW5lcmFsIGRvY3VtZW50IHN0cnVjdHVyZSBhbmQg dGhlIHBhcnRzIGN1cnJlbnRseSBiZWluZyB3b3JrZWQgb24uICBPcmcgIgoiZ3JlYXRseSBzaW1w bGlmaWVzIHRoZSB1c2Ugb2Ygb3V0bGluZXMgYnkgY29tcHJlc3NpbmcgdGhlIGVudGlyZSBzaG93 L2hpZGUgIgoiZnVuY3Rpb25hbGl0eSBpbnRvIGEgc2luZ2xlIGNvbW1hbmQsIEBjb21tYW5ke29y Zy1jeWNsZX0sIHdoaWNoIGlzIGJvdW5kIHRvICIKInRoZSBAa2V5e1RBQn0ga2V5LiIKbXNnc3Ry ICIiCiJPcmcgZXN0QCdhIGltcGxlbWVudGFkbyBlbiBsbyBhbHRvIGRlbCBtb2RvIG91dGxpbmUu IExvcyBvdXRsaW5lc1xuIgoiKEAne0Bkb3RsZXNze2l9fXRlbXMgZGUgY29udGVuaWRvKSBwZXJt aXRlbiBhIHVuIGRvY3VtZW50byBlc3RhclxuIgoib3JnYW5pemFkbyBlbiB1bmEgZXN0cnVjdHVy YSBqZXJAJ2FycXVpY2EsIGxvIGN1YWwgKGFsIG1lbm9zIHBhcmFcbiIKIm1AJ3tAZG90bGVzc3tp fX0pIGVzIGxhIG1lam9yIGZvcm1hIHBhcmEgcmVwcmVzZW50YXIgbm90YXMgeVxuIgoicGVuc2Ft aWVudG9zLiBVbmEgdmlzaUAnb24gcHJlbGltaW5hciBkZSBlc3RhIGVzdHJ1Y3R1cmEgZXMgbG9n cmFkYSBhbFxuIgoiZW5jb2dlciAob2N1bHRhbmRvKSBncmFuZGVzIHBhcnRlcyBkZWwgZG9jdW1l bnRvIHkgbW9zdHJhciBzQCdvbG8gbGFcbiIKImVzdHJ1Y3R1cmEgZ2VuZXJhbCBkZWwgZG9jdW1l bnRvIHkgbGFzIHBhcnRlcyBlbiBsYXMgcXVlIHNlIGVzdEAnYVxuIgoidHJhYmFqYW5kby4gT3Jn IHNpbXBsaWZpY2EgZW5vcm1lbWVudGUgZWwgdXNvIGRlIG91dGxpbmVzIHBhcmFcbiIKImNvbXBy ZW5kZXIgbGEgZnVuY2lvbmFsaWRhZCBjb21wbGV0YSBkZSBtb3N0cmFyL29jdWx0YXIgZW4gdW4g c2ltcGxlXG4iCiJjb21hbmRvLCBAY29tbWFuZHtvcmctY3ljbGV9LCBlbCBjdWFsIGVzdEAnYSBh c2lnbmFkbyBhIGxhIHRlY2xhXG4iCiJAa2V5e1RBQn0uIgoKIy4gdHlwZTogUGxhaW4gdGV4dAoj OiBvcmdndWlkZS50ZXhpOjMzNgptc2dpZCAiIgoiSGVhZGxpbmVzIGRlZmluZSB0aGUgc3RydWN0 dXJlIG9mIGFuIG91dGxpbmUgdHJlZS4gIFRoZSBoZWFkbGluZXMgaW4gT3JnICIKInN0YXJ0IHdp dGggb25lIG9yIG1vcmUgc3RhcnMsIG9uIHRoZSBsZWZ0IG1hcmdpbkBmb290bm90ZXtTZWUgdGhl IHZhcmlhYmxlICIKIkBjb2Rle29yZy1zcGVjaWFsLWN0cmwtYS9lfSB0byBjb25maWd1cmUgc3Bl Y2lhbCBiZWhhdmlvciBvZiBAa2Jke0MtYX0gYW5kICIKIkBrYmR7Qy1lfSBpbiBoZWFkbGluZXMu fS4gIEZvciBleGFtcGxlOiIKbXNnc3RyICIiCiJMb3MgY2FiZWNlcmFzQGZvb3Rub3Rle05vdGEg ZGVsIFRyYWR1Y3Rvci4gSGVhZGxpbmVzIGVzIHRyYWR1Y2lkbyBwb3JcbiIKImNhYmVjZXJhIHkg aGFjZSByZWZlcmVuY2lhIGEgdEAne0Bkb3RsZXNze2l9fXR1bG9zIHkgc3VidEAne0Bkb3RsZXNz e2l9fSIKInR1bG9zfVxuIgoiZGVmaW5lbiBsYSBlc3RydWN0dXJhIGRlbCBAJ2FyYm9sIGRlIHNh bmdyYWRvIChAJ3tAZG90bGVzc3tpfX10ZW1zIGRlXG4iCiJjb250ZW5pZG8pLiBMb3MgdEAne0Bk b3RsZXNze2l9fXR1bG9zIHkgc3VidEAne0Bkb3RsZXNze2l9fXR1bG9zIGVuXG4iCiJPcmcgY29t aWVuemFuIGNvbiB1bm8gbyBtQCdhcyBhc3RlcmlzY29zLCBlbiBlbCBtYXJnZW5cbiIKIml6cXVp ZXJkb0Bmb290bm90ZXtWZWEgbGEgdmFyaWFibGUgQGNvZGV7b3JnLXNwZWNpYWwtY3J0bC1hL2V9 IHBhcmFcbiIKImNvbmZpZ3VyYXIgZWwgY29tcG9ydGFtaWVudG8gZGUgQGtiZHtDLWF9IHkgQGti ZHtDLWV9IGVuIGxvc1xuIgoidEAne0Bkb3RsZXNze2l9fXR1bG9zLn0uIFBvciBlamVtcGxvOiIK CiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjM0NAojLCBmdXp6eSwgbm8t d3JhcAptc2dpZCAiIgoiKiBUb3AgbGV2ZWwgaGVhZGxpbmVcbiIKIioqIFNlY29uZCBsZXZlbFxu IgoiKioqIDNyZCBsZXZlbFxuIgoiICAgIHNvbWUgdGV4dFxuIgoiKioqIDNyZCBsZXZlbFxuIgoi ICAgIG1vcmUgdGV4dFxuIgoiXG4iCm1zZ3N0ciAiIgoiKiBDYWJlY2VyYSBkZSBuaXZlbCBzdXBl cmlvclxuIgoiKiogU2VndW5kbyBuaXZlbFxuIgoiKioqIFRlcmNlciBuaXZlbFxuIgoiICAgIGN1 YWxxdWllciB0ZXh0b1xuIgoiKioqIFRlcmNlciBuaXZlbFxuIgoiICAgIG1AJ2FzIHRleHRvXG4i CiJcbiIKCiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjM0NgojLCBmdXp6 eSwgbm8td3JhcAptc2dpZCAiKiBBbm90aGVyIHRvcCBsZXZlbCBoZWFkbGluZVxuIgptc2dzdHIg IiogT3RybyB0QCd7QGRvdGxlc3N7aX19dHVsbyBkZSBuaXZlbCBzdXBlcmlvclxuIgoKIy4gdHlw ZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjM1MQojLCBmdXp6eQptc2dpZCAiIgoib3V0 bGluZSB0aGF0IGhhcyB3aGl0ZXNwYWNlIGZvbGxvd2VkIGJ5IGEgc2luZ2xlIHN0YXIgYXMgaGVh ZGxpbmUgc3RhcnRlcnMuICAiCiJAcmVme0NsZWFuIHZpZXd9LCBkZXNjcmliZXMgYSBzZXR1cCB0 byByZWFsaXplIHRoaXMuIgptc2dzdHIgIiIKIkVsIG91dGxpbmUgcXVlIHRpZW5lIHVuIGVzcGFj aW8gZW4gYmxhbmNvIHNlZ3VpZG8gcG9yIHVuIGFzdGVyaXNjbyBlc1xuIgoiZWwgY29taWVuem8g ZGUgdW4gc3VidEAne0Bkb3RsZXNze2l9fXR1bG8gbyBoZWFkbGluZS4gQHJlZntWaXN0YVxuIgoi bGltcGlhfSwgZGVzY3JpYmUgdW5hIGNvbmZpZ3VyYWNpQCdvbiBwYXJhIHJlYWxpemFyIGVzdG8u IgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjM1OAptc2dpZCAiIgoiT3V0 bGluZXMgbWFrZSBpdCBwb3NzaWJsZSB0byBoaWRlIHBhcnRzIG9mIHRoZSB0ZXh0IGluIHRoZSBi dWZmZXIuICBPcmcgdXNlcyAiCiJqdXN0IHR3byBjb21tYW5kcywgYm91bmQgdG8gQGtleXtUQUJ9 IGFuZCBAa2Jke1MtQGtleXtUQUJ9fSB0byBjaGFuZ2UgdGhlICIKInZpc2liaWxpdHkgaW4gdGhl IGJ1ZmZlci4iCm1zZ3N0ciAiIgoiTG9zIG91dGxpbmVzIGhhY2VuIHBvc2libGUgb2N1bHRhciBw YXJ0ZXMgZGVsIHRleHRvIGVuIGVsIGJ1ZmZlci4gT3JnXG4iCiJ1c2Egc29sbyBkb3MgY29tYW5k b3MsIGFzaWduYWRvcyBhIEBrZXl7VEFCfSB5IEBrYmR7Uy1Aa2V5e1RBQn19LCBwYXJhXG4iCiJj YW1iaWFyIGxhIHZpc2liaWxpZGFkIGVuIGVsIGJ1ZmZlci4iCgojLiB0eXBlOiBrZXl7IzF9CiM6 IG9yZ2d1aWRlLnRleGk6MzYwIG9yZ2d1aWRlLnRleGk6NTExIG9yZ2d1aWRlLnRleGk6NjM2IG9y Z2d1aWRlLnRleGk6MTkwNgojLCBuby13cmFwCm1zZ2lkICJUQUIiCm1zZ3N0ciAiVEFCIgoKIy4g dHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aTozNjIKIywgZnV6enkKbXNnaWQgIkBlbXBoe1N1 YnRyZWUgY3ljbGluZ306IFJvdGF0ZSBjdXJyZW50IHN1YnRyZWUgYW1vbmcgdGhlIHN0YXRlcyIK bXNnc3RyICIiCiJAZW1waHtTdWJAJ2FyYm9sIGNAJ3tAZG90bGVzc3tpfX1jbGljb306IFJvdGFj aUAnb24gZW4gZWwgc3ViQCdhcmJvbFxuIgoiZW50cmUgbG9zIGVzdGFkb3MiCgojLiB0eXBlOiBz bWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUudGV4aTozNjYKIywgZnV6enksIG5vLXdyYXAKbXNnaWQg IiIKIiwtPiBGT0xERUQgLT4gQ0hJTERSRU4gLT4gU1VCVFJFRSAtLS5cbiIKIictLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSdcbiIKbXNnc3RyICIiCiIsLT4gRU5DT0dJRE8gLT4g SElKTyAtPiBTVUJAJ0FSQk9MIC0tLlxuIgoiJy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSciCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjM3MAptc2dpZCAiIgoi V2hlbiBjYWxsZWQgd2l0aCBhIHByZWZpeCBhcmd1bWVudCAoQGtiZHtDLXUgQGtleXtUQUJ9fSkg b3Igd2l0aCB0aGUgc2hpZnQgIgoia2V5LCBnbG9iYWwgY3ljbGluZyBpcyBpbnZva2VkLiIKbXNn c3RyICIiCiJDdWFuZG8gZXMgbGxhbWFkbyBjb24gZWwgYXJndW1lbnRvIHByZWZpam8gKEBrYmR7 Qy11IEBrZXl7VEFCfX0pIG8gY29uXG4iCiJsYSB0ZWNsYSBkZSBkZXNwbGF6YW1pZW50byAoQGti ZHtTaGlmdH0pLCBlcyBpbnZvY2FkbyBlbCBjaWNsbyBnbG9iYWwuIgoKIy4gdHlwZTogaXRlbQoj OiBvcmdndWlkZS50ZXhpOjM3MQojLCBuby13cmFwCm1zZ2lkICJTLUBrZXl7VEFCfSBAcnthbmR9 IEMtdSBAa2V5e1RBQn0iCm1zZ3N0ciAiUy1Aa2V5e1RBQn0gQHJ7eX0gQy11IEBrZXl7VEFCfSIK CiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MzczCiMsIGZ1enp5Cm1zZ2lkICJAZW1w aHtHbG9iYWwgY3ljbGluZ306IFJvdGF0ZSB0aGUgZW50aXJlIGJ1ZmZlciBhbW9uZyB0aGUgc3Rh dGVzIgptc2dzdHIgIkBlbXBoe0NpY2xvIGdsb2JhbH06IFJvdGFyIGVsIGJ1ZmZlciBlbnRlcm8g ZW50cmUgbG9zIGVzdGFkb3MiCgojLiB0eXBlOiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUudGV4 aTozNzcKIywgZnV6enksIG5vLXdyYXAKbXNnaWQgIiIKIiwtPiBPVkVSVklFVyAtPiBDT05URU5U UyAtPiBTSE9XIEFMTCAtLS5cbiIKIictLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSdcbiIKbXNnc3RyICIiCiIsLT4gUkVTVU1FTiAtPiBDT05URU5JRE8gLT4gTU9TVFJBUiBU T0RPIC0tLlxuIgoiJy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSci CgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6Mzc5CiMsIG5vLXdyYXAKbXNnaWQgIkMt dSBDLXUgQy11IEBrZXl7VEFCfSIKbXNnc3RyICJDLXUgQy11IEMtdSBAa2V5e1RBQn0iCgojLiB0 eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjM4MQptc2dpZCAiU2hvdyBhbGwsIGluY2x1ZGlu ZyBkcmF3ZXJzLiIKbXNnc3RyICJNb3N0cmFyIHRvZG8sIGluY2x1aWRvcyBsb3MgY2Fsem9uY2ls bG9zIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjM4OAptc2dpZCAiIgoi V2hlbiBFbWFjcyBmaXJzdCB2aXNpdHMgYW4gT3JnIGZpbGUsIHRoZSBnbG9iYWwgc3RhdGUgaXMg c2V0IHRvIE9WRVJWSUVXLCBpLiIKImUuQDogb25seSB0aGUgdG9wIGxldmVsIGhlYWRsaW5lcyBh cmUgdmlzaWJsZS4gIFRoaXMgY2FuIGJlIGNvbmZpZ3VyZWQgIgoidGhyb3VnaCB0aGUgdmFyaWFi bGUgQGNvZGV7b3JnLXN0YXJ0dXAtZm9sZGVkfSwgb3Igb24gYSBwZXItZmlsZSBiYXNpcyBieSAi CiJhZGRpbmcgYSBzdGFydHVwIGtleXdvcmQgQGNvZGV7b3ZlcnZpZXd9LCBAY29kZXtjb250ZW50 fSwgQGNvZGV7c2hvd2FsbH0sICIKImxpa2UgdGhpczoiCm1zZ3N0ciAiIgoiQ3VhbmRvIEVtYWNz IGFicmUgcG9yIHByaW1lcmEgdmV6IHVuIGFyY2hpdm8gT3JnLCBwb25lIGVsIGVzdGFkb1xuIgoi Z2xvYmFsIGEgUkVTVU1FTiAoT1ZFUlZJRVcpIHAuZS5AOiBzQCdvbG8gbGFzIGNhYmVjZXJhcyBk ZSBuaXZlbFxuIgoic3VwZXJpb3Igc29uIHZpc2libGVzLiBFc3RvIHB1ZWRlIHNlciBjb25maWd1 cmFkbyBhIHRyYXZAJ2VzIGRlIGxhXG4iCiJ2YXJpYWJsZSBAY29kZXtvcmctc3RhcnR1cC1mb2xk ZWR9LCBvIHZAJ3tAZG90bGVzc3tpfX1hIGZpY2hlcm9cbiIKImFAfm5hZGllbmRvIHVuYSBwYWxh YnJhIHJlc2VydmFkYSBAY29kZXtvdmVydmlld30sIEBjb2Rle2NvbnRlbnR9LFxuIgoiQGNvZGV7 c2hvd2FsbH0sIGNvbW8gZXN0YToiCgojLiB0eXBlOiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUu dGV4aTozOTEKIywgbm8td3JhcAptc2dpZCAiIytTVEFSVFVQOiBjb250ZW50XG4iCm1zZ3N0ciAi IytTVEFSVFVQOiBjb250ZW50XG4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRl eGk6Mzk3Cm1zZ2lkICJUaGUgZm9sbG93aW5nIGNvbW1hbmRzIGp1bXAgdG8gb3RoZXIgaGVhZGxp bmVzIGluIHRoZSBidWZmZXIuIgptc2dzdHIgIkVsIHNpZ3VpZW50ZSBjb21hbmRvIHNhbHRhIGEg bGEgc2lndWllbnRlIGNhYmVjZXJhIGVuIGVsIGJ1ZmZlci4iCgojLiB0eXBlOiBpdGVtCiM6IG9y Z2d1aWRlLnRleGk6Mzk5CiMsIG5vLXdyYXAKbXNnaWQgIkMtYyBDLW4iCm1zZ3N0ciAiQy1jIEMt biIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6NDAxCm1zZ2lkICJOZXh0IGhlYWRp bmcuIgptc2dzdHIgIlNpZ3VpZW50ZSBjYWJlY2VyYS4iCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1 aWRlLnRleGk6NDAxCiMsIG5vLXdyYXAKbXNnaWQgIkMtYyBDLXAiCm1zZ3N0ciAiQy1jIEMtcCIK CiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6NDAzCm1zZ2lkICJQcmV2aW91cyBoZWFk aW5nLiIKbXNnc3RyICJDYWJlY2VyYSBwcmV2aWEuIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlk ZS50ZXhpOjQwMwojLCBuby13cmFwCm1zZ2lkICJDLWMgQy1mIgptc2dzdHIgIkMtYyBDLWYiCgoj LiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjQwNQptc2dpZCAiTmV4dCBoZWFkaW5nIHNh bWUgbGV2ZWwuIgptc2dzdHIgIlNpZ3VpZW50ZSBjYWJlY2VyYSBkZWwgbWlzbW8gbml2ZWwuIgoK Iy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjQwNQojLCBuby13cmFwCm1zZ2lkICJDLWMg Qy1iIgptc2dzdHIgIkMtYyBDLWIiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjQw Nwptc2dpZCAiUHJldmlvdXMgaGVhZGluZyBzYW1lIGxldmVsLiIKbXNnc3RyICJDYWJlY2VyYSBw cmV2aWEgZGVsIG1pc21vIG5pdmVsLiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aTo0 MDcKIywgbm8td3JhcAptc2dpZCAiQy1jIEMtdSIKbXNnc3RyICJDLWMgQy11IgoKIy4gdHlwZTog dGFibGUKIzogb3JnZ3VpZGUudGV4aTo0MDkKbXNnaWQgIkJhY2t3YXJkIHRvIGhpZ2hlciBsZXZl bCBoZWFkaW5nLiIKbXNnc3RyICJSZXRyb2NlZGVyIGEgbGEgY2FiZWNlcmEgZGUgbml2ZWwgc3Vw ZXJpb3IuIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjQxNSBvcmdndWlkZS50ZXhp OjUxMwojLCBuby13cmFwCm1zZ2lkICJNLUBrZXl7UkVUfSIKbXNnc3RyICJNLUBrZXl7UkVUfSIK CiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6NDIxCm1zZ2lkICIiCiJJbnNlcnQgbmV3 IGhlYWRpbmcgd2l0aCBzYW1lIGxldmVsIGFzIGN1cnJlbnQuICBJZiB0aGUgY3Vyc29yIGlzIGlu IGEgcGxhaW4gIgoibGlzdCBpdGVtLCBhIG5ldyBpdGVtIGlzIGNyZWF0ZWQgKEBweHJlZntQbGFp biBsaXN0c30pLiAgV2hlbiB0aGlzIGNvbW1hbmQgIgoiaXMgdXNlZCBpbiB0aGUgbWlkZGxlIG9m IGEgbGluZSwgdGhlIGxpbmUgaXMgc3BsaXQgYW5kIHRoZSByZXN0IG9mIHRoZSBsaW5lICIKImJl Y29tZXMgdGhlIG5ldyBoZWFkbGluZUBmb290bm90ZXtJZiB5b3UgZG8gbm90IHdhbnQgdGhlIGxp bmUgdG8gYmUgc3BsaXQsICIKImN1c3RvbWl6ZSB0aGUgdmFyaWFibGUgQGNvZGV7b3JnLU0tUkVU LW1heS1zcGxpdC1saW5lfS59LiIKbXNnc3RyICIiCiJJbnNlcnRhIHVuYSBudWV2YSBjYWJlY2Vy YSBhbCBtaXNtbyBuaXZlbCBxdWUgbGEgYWN0dWFsLiBTaSBlbCBjdXJzb3JcbiIKImVzdEAnYSBl biB1biBpdGVtIGRlIHVuYSBsaXN0YSBwbGFuYSwgdW4gbnVldm8gaXRlbSBlcyBjcmVhZG9cbiIK IihAcHhyZWZ7TGlzdGFzIHBsYW5hc30pLiBDdWFuZG8gZXN0ZSBjb21hbmRvIGVzIHVzYWRvIGVu IG1lZGlvIGRlIHVuYVxuIgoibEAne0Bkb3RsZXNze2l9fW5lYSwgbGEgbEAne0Bkb3RsZXNze2l9 fW5lYSBlcyBwYXJ0aWRhIHkgZWwgcmVzdG8gZGVcbiIKImxhIGxAJ3tAZG90bGVzc3tpfX1uZWEg c2VyQCdhIHVuYSBudWV2YSBjYWJlY2VyYUBmb290bm90ZXtTaSBubyBkZXNlYVxuIgoicXVlIGxh IGxAJ3tAZG90bGVzc3tpfX1uZWEgc2VhIHBhcnRpZGEsIHBlcnNvbmFsaWNlIGxhIHZhcmlhYmxl XG4iCiJAY29kZXtvcmctTS1SRVQtbWF5LXNwbGl0LWxpbmV9Ln0uIgoKIy4gdHlwZTogaXRlbQoj OiBvcmdndWlkZS50ZXhpOjQyMSBvcmdndWlkZS50ZXhpOjUxNiBvcmdndWlkZS50ZXhpOjEwODcK Iywgbm8td3JhcAptc2dpZCAiTS1TLUBrZXl7UkVUfSIKbXNnc3RyICJNLVMtQGtleXtSRVR9IgoK Iy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aTo0MjMKbXNnaWQgIkluc2VydCBuZXcgVE9E TyBlbnRyeSB3aXRoIHNhbWUgbGV2ZWwgYXMgY3VycmVudCBoZWFkaW5nLiIKbXNnc3RyICIiCiJJ bnNlcnRhIHVuYSBudWV2YSBlbnRyYWRhIFRPRE8gY29uIGVsIG1pc21vIG5pdmVsIGRlIGxhIGNh YmVjZXJhIGFjdHVhbC4iCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6NDIzCiMsIG5v LXdyYXAKbXNnaWQgIkBrZXl7VEFCfSBAcntpbiBuZXcsIGVtcHR5IGVudHJ5fSIKbXNnc3RyICJA a2V5e1RBQn0gQHJ7ZW4gbnVldmEsIGVudHJhZGEgdmFjaWF9IgoKIy4gdHlwZTogdGFibGUKIzog b3JnZ3VpZGUudGV4aTo0MjYKbXNnaWQgIiIKIkluIGEgbmV3IGVudHJ5IHdpdGggbm8gdGV4dCB5 ZXQsIEBrZXl7VEFCfSB3aWxsIGN5Y2xlIHRocm91Z2ggcmVhc29uYWJsZSAiCiJsZXZlbHMuIgpt c2dzdHIgIiIKIkVuIHVuYSBudWV2YSBlbnRyYWRhIHNpbiB0ZXh0byBhQCd1biwgQGtleXtUQUJ9 IHJvdGFyQCdhXG4iCiJjQCd7QGRvdGxlc3N7aX19Y2xpY2FtZW50ZSBhIHRyYXZAJ2VzIGRlIG5p dmVsZXMgc2ltaWxhcmVzLiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aTo0MjYKIywg bm8td3JhcAptc2dpZCAiTS1Aa2V5e2xlZnR9QHJ7L31Aa2V5e3JpZ2h0fSIKbXNnc3RyICJNLUBr ZXl7bGVmdH1AcnsvfUBrZXl7cmlnaHR9IgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4 aTo0MjgKbXNnaWQgIlByb21vdGUvZGVtb3RlIGN1cnJlbnQgaGVhZGluZyBieSBvbmUgbGV2ZWwu Igptc2dzdHIgIlByb21vY2lvbmEvZGV2YWx1YSBsYSBjYWJlY2VyYSBhY3R1YWwgZW4gdW4gbml2 ZWwuIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjQyOCBvcmdndWlkZS50ZXhpOjUy NAojLCBuby13cmFwCm1zZ2lkICJNLVMtQGtleXtsZWZ0fUByey99QGtleXtyaWdodH0iCm1zZ3N0 ciAiTS1TLUBrZXl7bGVmdH1AcnsvfUBrZXl7cmlnaHR9IgoKIy4gdHlwZTogdGFibGUKIzogb3Jn Z3VpZGUudGV4aTo0MzAKbXNnaWQgIlByb21vdGUvZGVtb3RlIHRoZSBjdXJyZW50IHN1YnRyZWUg Ynkgb25lIGxldmVsLiIKbXNnc3RyICJQcm9tb2Npb25hL2RldmFsdWEgZWwgc3ViYXJib2wgYWN0 dWFsIGVuIHVuIG5pdmVsLiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aTo0MzAgb3Jn Z3VpZGUudGV4aTo1MTgKIywgbm8td3JhcAptc2dpZCAiTS1TLUBrZXl7dXB9QHJ7L31Aa2V5e2Rv d259Igptc2dzdHIgIk0tUy1Aa2V5e3VwfUByey99QGtleXtkb3dufSIKCiMuIHR5cGU6IHRhYmxl CiM6IG9yZ2d1aWRlLnRleGk6NDMzCm1zZ2lkICJNb3ZlIHN1YnRyZWUgdXAvZG93biAoc3dhcCB3 aXRoIHByZXZpb3VzL25leHQgc3VidHJlZSBvZiBzYW1lIGxldmVsKS4iCm1zZ3N0ciAiIgoiTXVl dmUgZWwgc3ViYXJib2wgYXJyaWJhL2FiYWpvIChpbnRlcmNhbWJpYSBlbnRyZSBhbnRlcmlvci9z aWd1aWVudGVcbiIKInN1YmFyYm9sIGRlbCBtaXNtbyBuaXZlbCkuIgoKIy4gdHlwZTogaXRlbQoj OiBvcmdndWlkZS50ZXhpOjQzMyBvcmdndWlkZS50ZXhpOjE1Njkgb3JnZ3VpZGUudGV4aToxNjMw IG9yZ2d1aWRlLnRleGk6MTk2NgojLCBuby13cmFwCm1zZ2lkICJDLWMgQy13Igptc2dzdHIgIkMt YyBDLXciCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjQzNQojLCBmdXp6eQptc2dp ZCAiIgoiUmVmaWxlIGVudHJ5IG9yIHJlZ2lvbiB0byBhIGRpZmZlcmVudCBsb2NhdGlvbi4gIEB4 cmVme1JlZmlsZSBhbmQgY29weX0uIgptc2dzdHIgIiIKIk11ZXZlIGxhIGVudHJhZGEgbyByZWdp QCdvbiBlbiB1bmEgbG96YWxpemFjaUAnb25cbiIKImRpZmVyZW50ZS4gQHhyZWZ7TW92aWVuZG8g bm90YXN9LiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aTo0MzUKIywgbm8td3JhcApt c2dpZCAiQy14IG4gcy93Igptc2dzdHIgIkMteCBuIHMvdyIKCiMuIHR5cGU6IHRhYmxlCiM6IG9y Z2d1aWRlLnRleGk6NDM3Cm1zZ2lkICJOYXJyb3cgYnVmZmVyIHRvIGN1cnJlbnQgc3VidHJlZSAv IHdpZGVuIGl0IGFnYWluIgptc2dzdHIgIkxpbWl0YXIgbGEgbWVtb3JpYSBpbnRlcm1lZGlhIGFs IEAnYXJib2wgYWN0dWFsIC8gb2N1bHRAJ2FuZG9sbyIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzog b3JnZ3VpZGUudGV4aTo0NDEKbXNnaWQgIiIKIldoZW4gdGhlcmUgaXMgYW4gYWN0aXZlIHJlZ2lv biAoVHJhbnNpZW50IE1hcmsgbW9kZSksIHByb21vdGlvbiBhbmQgZGVtb3Rpb24gIgoid29yayBv biBhbGwgaGVhZGxpbmVzIGluIHRoZSByZWdpb24uIgptc2dzdHIgIiIKIkN1YW5kbyBlc3RvIGVz IGVuIHVuYSByZWdpQCdvbiBhY3RpdmEgKFRyYW5zaWVudCBNYXJrIG1vZGUpLCBwcm9tdWV2ZVxu IgoieSBkZXZhbHVhIHRvZGFzIGxhcyBjYWJlY2VyYXMgZW4gbGEgcmVnaUAnb24uIgoKIy4gdHlw ZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjQ1Mwptc2dpZCAiIgoiQW4gaW1wb3J0YW50 IGZlYXR1cmUgb2YgT3JnIG1vZGUgaXMgdGhlIGFiaWxpdHkgdG8gY29uc3RydWN0IEBlbXBoe3Nw YXJzZSAiCiJ0cmVlc30gZm9yIHNlbGVjdGVkIGluZm9ybWF0aW9uIGluIGFuIG91dGxpbmUgdHJl ZSwgc28gdGhhdCB0aGUgZW50aXJlICIKImRvY3VtZW50IGlzIGZvbGRlZCBhcyBtdWNoIGFzIHBv c3NpYmxlLCBidXQgdGhlIHNlbGVjdGVkIGluZm9ybWF0aW9uIGlzIG1hZGUgIgoidmlzaWJsZSBh bG9uZyB3aXRoIHRoZSBoZWFkbGluZSBzdHJ1Y3R1cmUgYWJvdmUgaXRAZm9vdG5vdGV7U2VlIGFs c28gdGhlICIKInZhcmlhYmxlcyBAY29kZXtvcmctc2hvdy1oaWVyYXJjaHktYWJvdmV9LCBAY29k ZXtvcmctc2hvdy1mb2xsb3dpbmctIgoiaGVhZGluZ30sIEBjb2Rle29yZy1zaG93LXNpYmxpbmdz fSwgYW5kIEBjb2Rle29yZy1zaG93LWVudHJ5LWJlbG93fSBmb3IgIgoiZGV0YWlsZWQgY29udHJv bCBvbiBob3cgbXVjaCBjb250ZXh0IGlzIHNob3duIGFyb3VuZCBlYWNoIG1hdGNoLn0uICBKdXN0 IHRyeSAiCiJpdCBvdXQgYW5kIHlvdSB3aWxsIHNlZSBpbW1lZGlhdGVseSBob3cgaXQgd29ya3Mu Igptc2dzdHIgIiIKIlVuYSBpbXBvcnRhbnRlIGNhcmFjdGVyQCd7QGRvdGxlc3N7aX19c3RpY2Eg ZGUgT3JnLW1vZGUgZXMgc3VcbiIKInBvc2liaWxpZGFkIHBhcmEgY29uc3RydWlyIEBlbXBoe0An YXJib2xlcyBwb2NvIGRlbnNvc30gcGFyYSBsYVxuIgoiaW5mb3JtYWNpQCdvbiBzZWxlY2Npb25h ZGEgZW4gdW4gYXJib2wgZGUgb3V0bGluZSwgYXNAJ3tAZG90bGVzc3tpfX1cbiIKInF1ZSBlbCBk b2N1bWVudG8gZW50ZXJvIGVzIG1hbmVqYWRvIGNvbW8gZXMgcG9zaWJsZSwgcGVybyBsYVxuIgoi aW5mb3JtYWNpQCdvbiBzZWxlY2Npb25hZGEgZXMgaGVjaGEgdmlzaWJsZSBjb24gbGEgZXN0cnVj dHVyYSBkZVxuIgoiY2FiYWNlcmFzIGRlIGVuY2ltYUBmb290bm90ZXtWZWEgYWRlbUAnYXMgbGFz IHZhcmlhYmxlc1xuIgoiQGNvZGV7b3JnLXNob3ctaGllcmFyY2h5LWFib3ZlfSwgQGNvZGV7b3Jn LXNob3ctZm9sbG93aW5nLWhlYWRpbmd9LFxuIgoiQGNvZGV7b3JnLXNob3ctc2libGluZ3N9IHkg QGNvZGV7b3JnLXNob3ctZW50cnktYmVsb3d9IHBhcmEgY29udHJvbGFyXG4iCiJsb3MgZGV0YWxs ZXMgZGUgY0Anb21vIGVsIGNvbnRleHRvIHNlIG11ZXN0cmEgZW4gY2FkYVxuIgoiY29pbmNpZGVu Y2lhLn0uIEludEAnZW50ZWxvIGFob3JhIHkgdmVyQCdhIGlubWVkaWF0YW1lbnRlIGNvbW9cbiIK ImZ1bmNpb25hLiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTo0NTYKbXNn aWQgIiIKIk9yZyBtb2RlIGNvbnRhaW5zIHNldmVyYWwgY29tbWFuZHMgY3JlYXRpbmcgc3VjaCB0 cmVlcywgYWxsIHRoZXNlIGNvbW1hbmRzICIKImNhbiBiZSBhY2Nlc3NlZCB0aHJvdWdoIGEgZGlz cGF0Y2hlcjoiCm1zZ3N0ciAiIgoiT3JnLW1vZGUgY29udGllbmUgdmFyaW9zIGNvbWFuZG9zIHBh cmEgY3JlYXIgQCdhcmJvbGVzLCB0b2RvcyBlc3Rvc1xuIgoiY29tYW5kb3MgcHVlZGVuIHNlciBh Y2NlZGlkb3MgYSB0cmF2QCdlcyBkZWwgZGVzcGFjaGFkb3I6IgoKIy4gdHlwZTogaXRlbQojOiBv cmdndWlkZS50ZXhpOjQ1OAojLCBuby13cmFwCm1zZ2lkICJDLWMgLyIKbXNnc3RyICJDLWMgLyIK CiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6NDYwCm1zZ2lkICJUaGlzIHByb21wdHMg Zm9yIGFuIGV4dHJhIGtleSB0byBzZWxlY3QgYSBzcGFyc2UtdHJlZSBjcmVhdGluZyBjb21tYW5k LiIKbXNnc3RyICIiCiJFc3RlIHByb21wdCBlcyB1bmEgY2xhdmUgZXNwZWNpYWwgcGFyYSBzZWxl Y2Npb25hciB1biBjb21hbmRvIGRlXG4iCiJjcmVhY2lAJ29uIGRlIHVuIEAnYXJib2wgcG9jbyBk ZW5zby4iCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6NDYwCiMsIG5vLXdyYXAKbXNn aWQgIkMtYyAvIHIiCm1zZ3N0ciAiQy1jIC8gciIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRl LnRleGk6NDYzCiMsIGZ1enp5Cm1zZ2lkICIiCiJPY2N1ci4gIFByb21wdHMgZm9yIGEgcmVnZXhw IGFuZCBzaG93cyBhIHNwYXJzZSB0cmVlIHdpdGggYWxsIG1hdGNoZXMuICBFYWNoICIKIm1hdGNo IGlzIGFsc28gaGlnaGxpZ2h0ZWQ7IHRoZSBoaWdobGlnaHRzIGRpc2FwcGVhciBieSBwcmVzc2lu ZyBAa2Jke0MtYyBDLSIKImN9LiIKbXNnc3RyICIiCiJPY3VycmVuY2lhLiBQcm9tcHQgcGFyYSB1 bmEgZXhwcmVzaUAnb24gcmVndWxhciB5IG11ZXN0cmEgdW4gQCdhcmJvbFxuIgoicG9jbyBkZW5z byBjb24gdG9kYXMgc3VzIGNvaW5jaWRlbmNpYXMuIENhZGEgY29pbmNpZGVuY2lhIHNlckAnYVxu Igoic29icmVzYWx0YWRhOyBFbCBzb2JyZXNhbHRhZG8gZGVzYXBhcmVjZXJAJ2EgcHJlc2lvbmFu ZG8gQGtiZHtDLWNcbiIKIkMtY30uIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50 ZXhpOjQ2Nwptc2dpZCAiIgoiVGhlIG90aGVyIHNwYXJzZSB0cmVlIGNvbW1hbmRzIHNlbGVjdCBo ZWFkaW5ncyBiYXNlZCBvbiBUT0RPIGtleXdvcmRzLCB0YWdzLCAiCiJvciBwcm9wZXJ0aWVzIGFu ZCB3aWxsIGJlIGRpc2N1c3NlZCBsYXRlciBpbiB0aGlzIG1hbnVhbC4iCm1zZ3N0ciAiIgoiT3Ry b3MgY29tYW5kb3MgZGUgQCdhcmJvbCBwb2NvIGRlbnNvIHNlbGVjY2lvbmFuIGxhcyBjYWJlY2Vy YXMgYmFzYWRhc1xuIgoiZW4gbGEgcGFsYWJyYSByZXNlcnZhZGEgVE9ETywgZXRpcXVldGFzIG8g cHJvcGllZGFkZXMgeSBzZXJAJ2FuIGRpc2N1dGlkb3NcbiIKInBvc3Rlcmlvcm1lbnRlIGVuIGVz dGUgbWFudWFsLiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTo0NzUKbXNn aWQgIiIKIldpdGhpbiBhbiBlbnRyeSBvZiB0aGUgb3V0bGluZSB0cmVlLCBoYW5kLWZvcm1hdHRl ZCBsaXN0cyBjYW4gcHJvdmlkZSAiCiJhZGRpdGlvbmFsIHN0cnVjdHVyZS4gIFRoZXkgYWxzbyBw cm92aWRlIGEgd2F5IHRvIGNyZWF0ZSBsaXN0cyBvZiBjaGVja2JveGVzICIKIihAcHhyZWZ7Q2hl Y2tib3hlc30pLiAgT3JnIHN1cHBvcnRzIGVkaXRpbmcgc3VjaCBsaXN0cywgYW5kIHRoZSBIVE1M ICIKImV4cG9ydGVyIChAcHhyZWZ7RXhwb3J0aW5nfSkgcGFyc2VzIGFuZCBmb3JtYXRzIHRoZW0u Igptc2dzdHIgIiIKIlNpbiB1bmEgZW50cmFkYSBlbiBlbCBAJ2FyYm9sIGRlIG91dGxpbmUsIGxp c3RhcyBmb3JtYXRlYWRhcyBhIG1hbm9cbiIKInB1ZWRlbiBzdW1pbmlzdHJhciB1bmEgZXN0cnVj dHVyYSBhZGljaW9uYWwuIEVsbG8gdGFtYmlAJ2VuXG4iCiJwcm9wb3JjaW9uYSB1bmEgZm9ybWEg ZGUgY3JlYXIgbGlzdGFzIGRlIGNhamFzIGRlIGNoZXF1ZW9cbiIKIihAcHhyZWZ7Q2FqYXMgZGUg Y2hlcXVlb30pLiBPcmcgc29wb3J0YSBsYSBlZGljaUAnb24gZGUgdGFsZXMgbGlzdGFzLFxuIgoi eSBlbCBjb252ZXJzb3IgSFRNTCAoQHB4cmVme0V4cG9ydGFuZG99KSBsb3MgYW5hbGl6YSB5IGZv cm1hdGVhLiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTo0NzcKbXNnaWQg Ik9yZyBrbm93cyBvcmRlcmVkIGxpc3RzLCB1bm9yZGVyZWQgbGlzdHMsIGFuZCBkZXNjcmlwdGlv biBsaXN0cy4iCm1zZ3N0ciAiT3JnIHBlcm1pdGUgbGlzdGFzIG9yZGVuYWRhcywgZGVzb3JkZW5h ZGFzIHkgZGVzY3JpYmlybGFzLiIKCiMuIHR5cGU6IGl0ZW1pemUKIzogb3JnZ3VpZGUudGV4aTo0 ODEKbXNnaWQgIiIKIkBlbXBoe1Vub3JkZXJlZH0gbGlzdCBpdGVtcyBzdGFydCB3aXRoIEBzYW1w ey19LCBAc2FtcHsrfSwgb3IgQHNhbXB7Kn0gYXMgIgoiYnVsbGV0cy4iCm1zZ3N0ciAiIgoiQGVt cGh7RGVzb3JkZW5hZGF9IGxvcyBpdGVtcyBkZSBsYSBsaXN0YSBjb21pZW56YW4gY29uIEBzYW1w ey19LFxuIgoiQHNhbXB7K30gbyBAc2FtcHsqfSBjb21vIG1hcmNhcy4iCgojLiB0eXBlOiBpdGVt aXplCiM6IG9yZ2d1aWRlLnRleGk6NDgzCm1zZ2lkICJAZW1waHtPcmRlcmVkfSBsaXN0IGl0ZW1z IHN0YXJ0IHdpdGggQHNhbXB7MS59IG9yIEBzYW1wezEpfS4iCm1zZ3N0ciAiIgoiQGVtcGh7T3Jk ZW5hZGF9IGxvcyBpdGVtcyBkZSBsYSBsaXN0YSBjb21pZW56YW4gY29uIEBzYW1wezEufSBvXG4i CiJAc2FtcHsxKX0uIgoKIy4gdHlwZTogaXRlbWl6ZQojOiBvcmdndWlkZS50ZXhpOjQ4Ngptc2dp ZCAiIgoiQGVtcGh7RGVzY3JpcHRpb259IGxpc3QgdXNlIEBzYW1weyA6OiB9IHRvIHNlcGFyYXRl IHRoZSBAZW1waHt0ZXJtfSBmcm9tIHRoZSAiCiJkZXNjcmlwdGlvbi4iCm1zZ3N0ciAiIgoiQGVt cGh7RGVzY3JpcGNpQCdvbn0gbGEgbGlzdGEgdXNhIEBzYW1weyA6OiB9IHBhcmEgc2VwYXJhciBl bFxuIgoiQGVtcGh7dEAnZXJtaW5vfSBkZSBsYSBkZXNjcmlwY2lAJ29uLiIKCiMuIHR5cGU6IFBs YWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTo0OTIKbXNnaWQgIiIKIkl0ZW1zIGJlbG9uZ2luZyB0 byB0aGUgc2FtZSBsaXN0IG11c3QgaGF2ZSB0aGUgc2FtZSBpbmRlbnRhdGlvbiBvbiB0aGUgZmly c3QgIgoibGluZS4gIEFuIGl0ZW0gZW5kcyBiZWZvcmUgdGhlIG5leHQgbGluZSB0aGF0IGlzIGlu ZGVudGVkIGxpa2UgaXRzIGJ1bGxldC8iCiJudW1iZXIsIG9yIGxlc3MuICBBIGxpc3QgZW5kcyB3 aGVuIGFsbCBpdGVtcyBhcmUgY2xvc2VkLCBvciBiZWZvcmUgdHdvIGJsYW5rICIKImxpbmVzLiAg QW4gZXhhbXBsZToiCm1zZ3N0ciAiIgoiTG9zIGl0ZW1zIHN1YnNpZ3VpZW50ZXMgZGUgbGEgbWlz bWEgbGlzdGEgZGViZW4gdGVuZXIgZWwgbWlzbW9cbiIKInNhbmdyYWRvIGVuIGxhIHByaW1lcmEg bEAne0Bkb3RsZXNze2l9fW5lYS4gVW4gaXRlbSBxdWUgdGVybWluZSBhbnRlc1xuIgoiZGUgbGEg c2lndWllbnRlIGxAJ3tAZG90bGVzc3tpfX1uZWEgc2VyQCdhIHNhbmdyYWRvIGNvbW9cbiIKImJv bGEvbkAndW1lcm8sIG8gbm8uIFVuYSBsaXN0YSB0ZXJtaW5hIGN1YW5kbyB0b2RvcyBsb3MgaXRl bXMgZXN0QCdhblxuIgoiY2VycmFkb3MsIG8gYW50ZXMgZGUgZG9zIGxAJ3tAZG90bGVzc3tpfX1u ZWFzIGVuIGJsYW5jby4gVW4gZWplbXBsbzoiCgojLiB0eXBlOiBncm91cAojOiBvcmdndWlkZS50 ZXhpOjUwNAojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiIgoiKiogTG9yZCBvZiB0aGUgUmluZ3Nc biIKIiAgIE15IGZhdm9yaXRlIHNjZW5lcyBhcmUgKGluIHRoaXMgb3JkZXIpXG4iCiIgICAxLiBU aGUgYXR0YWNrIG9mIHRoZSBSb2hpcnJpbVxuIgoiICAgMi4gRW93eW4ncyBmaWdodCB3aXRoIHRo ZSB3aXRjaCBraW5nXG4iCiIgICAgICArIHRoaXMgd2FzIGFscmVhZHkgbXkgZmF2b3JpdGUgc2Nl bmUgaW4gdGhlIGJvb2tcbiIKIiAgICAgICsgSSByZWFsbHkgbGlrZSBNaXJhbmRhIE90dG8uXG4i CiIgICBJbXBvcnRhbnQgYWN0b3JzIGluIHRoaXMgZmlsbSBhcmU6XG4iCiIgICAtIEBie0VsaWph aCBXb29kfSA6OiBIZSBwbGF5cyBGcm9kb1xuIgoiICAgLSBAYntTZWFuIEF1c3Rpbn0gOjogSGUg cGxheXMgU2FtLCBGcm9kbydzIGZyaWVuZC5cbiIKbXNnc3RyICIiCiIqKiBFbCBzZUB+bm9yIGRl IGxvcyBBbmlsbG9zXG4iCiIgICBNaXMgZXNjZW5hcyBmYXZvcml0YXMgc29uIChlbiBlc3RlIG9y ZGVuKVxuIgoiICAgMS4gRWwgYXRhcXVlIGRlIFJvaGlycmltXG4iCiIgICAyLiBDb21iYXRlIGRl IEVvd3luIGNvbiBlbCByZXlcbiIKIiAgICAgICsgRXN0YSBlcyB0YW1iaUAnZW4gbWkgZXNjZW5h IGZhdm9yaXRhIGVuIGVsIGxpYnJvXG4iCiIgICAgICArIEVzIHJlYWxtZW50ZSBjb21vIE1pcmFu ZGEgT3R0by5cbiIKIiAgIEFjdG9yZXMgaW1wb3J0YW50ZXMgZXMgZXN0YSBwZWxAJ3tAZG90bGVz c3tpfX1jdWxhOlxuIgoiICAgLSBAYntFbGlqYWggV29vZH0gOjogRW4gZWwgcGFwZWwgZGUgRnJv ZG9cbiIKIiAgIC0gQGJ7U2VhbiBBdXN0aW59IDo6IEVuIGVsIHBhcGVsIGRlIFNhbSwgYW1pZ28g ZGUgRnJvZG8uIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjUwOQptc2dp ZCAiIgoiVGhlIGZvbGxvd2luZyBjb21tYW5kcyBhY3Qgb24gaXRlbXMgd2hlbiB0aGUgY3Vyc29y IGlzIGluIHRoZSBmaXJzdCBsaW5lIG9mICIKImFuIGl0ZW0gKHRoZSBsaW5lIHdpdGggdGhlIGJ1 bGxldCBvciBudW1iZXIpLiIKbXNnc3RyICIiCiJMb3Mgc2lndWllbnRlcyBjb21hbmRvcyBhY3R1 YW4gZW4gaXRlbXMgY3VhbmRvIGVsIGN1cnNvciBlc3RAJ2EgZW4gbGFcbiIKInByaW1lcmEgbEAn e0Bkb3RsZXNze2l9fW1lYSBkZSB1biBpdGVtIChsYSBsQCd7QGRvdGxlc3N7aX19bmVhIGNvbiBs YVxuIgoiYm9sYSBvIGVsIG5AJ3VtZXJvKS4gIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUu dGV4aTo1MTMKbXNnaWQgIkl0ZW1zIGNhbiBiZSBmb2xkZWQganVzdCBsaWtlIGhlYWRsaW5lIGxl dmVscy4iCm1zZ3N0ciAiTG9zIGl0ZW1zIHB1ZWRlbiBzZXIgbWFuZWphZG9zIGNvbW8gY2FiZWNl cmFzIGRlIG5pdmVsZXMuIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aTo1MTYKbXNn aWQgIiIKIkluc2VydCBuZXcgaXRlbSBhdCBjdXJyZW50IGxldmVsLiAgV2l0aCBhIHByZWZpeCBh cmd1bWVudCwgZm9yY2UgYSBuZXcgIgoiaGVhZGluZyAoQHB4cmVme1N0cnVjdHVyZSBlZGl0aW5n fSkuIgptc2dzdHIgIiIKIkluc2VydGEgdW4gbnVldm8gaXRlbSBhbCBuaXZlbCBhY3R1YWwuIENv biBlbCBhcmd1bWVudG8gZGUgcHJlZmlqbyxcbiIKImZ1ZXJ6YSBhIHVuYSBudWV2YSBjYWJlY2Vy YSAoQHB4cmVme0VkaWNpQCdvbiBkZSBlc3RydWN0dXJhfSkuIgoKIy4gdHlwZTogdGFibGUKIzog b3JnZ3VpZGUudGV4aTo1MTgKbXNnaWQgIkluc2VydCBhIG5ldyBpdGVtIHdpdGggYSBjaGVja2Jv eCAoQHB4cmVme0NoZWNrYm94ZXN9KS4iCm1zZ3N0ciAiIgoiSW5zZXJ0YSB1biBudWV2byBpdGVt IGNvbiB1bmEgY2FqYSBkZSBjaGVxdWVvIChAcHhyZWZ7Q2FqYXMgZGUgY2hlcXVlb30pLiIKCiMu IHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6NTIyCm1zZ2lkICIiCiJNb3ZlIHRoZSBpdGVt IGluY2x1ZGluZyBzdWJpdGVtcyB1cC9kb3duIChzd2FwIHdpdGggcHJldmlvdXMvbmV4dCBpdGVt IG9mICIKInNhbWUgaW5kZW50YXRpb24pLiAgSWYgdGhlIGxpc3QgaXMgb3JkZXJlZCwgcmVudW1i ZXJpbmcgaXMgYXV0b21hdGljLiIKbXNnc3RyICIiCiJNdWV2ZSBlbCBpdGVtIGluY2x1eWVuZG8g bG9zIHN1Yml0ZW1zIGFycmliYS9hYmFqbyAoaW50ZXJjYW1iaWEgY29uXG4iCiJlbCBpdGVtIHBy ZXZpby9zaWd1aWVudGUgZGVsIG1pc21vIHNhbmdyYWRvLiBTaSBsYSBsaXN0YSBlcyBvcmRlbmFk YSxcbiIKImxhIHJlbnVtZXJhY2lAJ29uIGVzIGF1dG9tQCdhdGljYS4iCgojLiB0eXBlOiBpdGVt CiM6IG9yZ2d1aWRlLnRleGk6NTIyCiMsIG5vLXdyYXAKbXNnaWQgIk0tQGtleXtsZWZ0fUByey99 TS1Aa2V5e3JpZ2h0fSIKbXNnc3RyICJNLUBrZXl7bGVmdH1AcnsvfU0tQGtleXtyaWdodH0iCgoj LiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjUyNAptc2dpZCAiRGVjcmVhc2UvaW5jcmVh c2UgdGhlIGluZGVudGF0aW9uIG9mIGFuIGl0ZW0sIGxlYXZpbmcgY2hpbGRyZW4gYWxvbmUuIgpt c2dzdHIgIkRlY3JlbWVudGEvaW5jcmVtZW50YSBlbCBzYW5ncmFkbyBkZWwgaXRlbSwgZGVqYW5k byBsb3MgaGlqb3Mgc3VlbHRvcy4iCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjUy Ngptc2dpZCAiRGVjcmVhc2UvaW5jcmVhc2UgdGhlIGluZGVudGF0aW9uIG9mIHRoZSBpdGVtLCBp bmNsdWRpbmcgc3ViaXRlbXMuIgptc2dzdHIgIkRlY3JlbWVudGEvaW5jcmVtZW50YSBlbCBzYW5n cmFkbyBkZWwgaXRlbS4gaW5jbHV5ZW5kbyBsb3Mgc3ViaXRlbXMuIgoKIy4gdHlwZTogaXRlbQoj OiBvcmdndWlkZS50ZXhpOjUyNiBvcmdndWlkZS50ZXhpOjU1OCBvcmdndWlkZS50ZXhpOjYzMyBv cmdndWlkZS50ZXhpOjEwODUKIzogb3JnZ3VpZGUudGV4aToxMTYwIG9yZ2d1aWRlLnRleGk6MTQ5 OCBvcmdndWlkZS50ZXhpOjE1NjUKIywgbm8td3JhcAptc2dpZCAiQy1jIEMtYyIKbXNnc3RyICJD LWMgQy1jIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aTo1MzAKbXNnaWQgIiIKIklm IHRoZXJlIGlzIGEgY2hlY2tib3ggKEBweHJlZntDaGVja2JveGVzfSkgaW4gdGhlIGl0ZW0gbGlu ZSwgdG9nZ2xlIHRoZSAiCiJzdGF0ZSBvZiB0aGUgY2hlY2tib3guICBBbHNvIHZlcmlmeSBidWxs ZXRzIGFuZCBpbmRlbnRhdGlvbiBjb25zaXN0ZW5jeSBpbiAiCiJ0aGUgd2hvbGUgbGlzdC4iCm1z Z3N0ciAiIgoiU2kgZXMgdW5hIGNhamEgZGUgY2hlcXVlbyAoQHB4cmVme0NhamFzIGRlIGNoZXF1 ZW99KSBlbiB1bmFcbiIKImxAJ3tAZG90bGVzc3tpfX1uZWEgaXRlbSwgY2FtYmlhIGVsIGVzdGFk byBkZSBsYSBjYWphIGRlXG4iCiJjaGVxdWVvLiBBZGVtQCdhcyB2ZXJpZmljYSBsYXMgYm9sYXMg eSBlbCBzYW5ncmFkbyBjb25zaXN0ZW50ZSBlbiBsYVxuIgoibGlzdGEgY29tcGxldGEuIgoKIy4g dHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjUzMCBvcmdndWlkZS50ZXhpOjY2OQojLCBuby13 cmFwCm1zZ2lkICJDLWMgLSIKbXNnc3RyICJDLWMgLSIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1 aWRlLnRleGk6NTMzCm1zZ2lkICIiCiJDeWNsZSB0aGUgZW50aXJlIGxpc3QgbGV2ZWwgdGhyb3Vn aCB0aGUgZGlmZmVyZW50IGl0ZW1pemUvZW51bWVyYXRlIGJ1bGxldHMgIgoiKEBzYW1wey19LCBA c2FtcHsrfSwgQHNhbXB7Kn0sIEBzYW1wezEufSwgQHNhbXB7MSl9KS4iCm1zZ3N0ciAiIgoiUm90 YSBsYSBsaXN0YSBlbnRlcmEgYSB0cmF2QCdlcyBkZSBkaWZlcmVudGVzIGJvbGFzIGRlXG4iCiJu dW1lcmFjaUAnb24vbWFyY2FkbyAoQHNhbXB7LX0sIEBzYW1weyt9LCBAc2FtcHsqfSwgQHNhbXB7 MS59LFxuIgoiQHNhbXB7MSl9KS4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRl eGk6NTQxCm1zZ2lkICIiCiJBIGZvb3Rub3RlIGlzIGRlZmluZWQgaW4gYSBwYXJhZ3JhcGggdGhh dCBpcyBzdGFydGVkIGJ5IGEgZm9vdG5vdGUgbWFya2VyIGluICIKInNxdWFyZSBicmFja2V0cyBp biBjb2x1bW4gMCwgbm8gaW5kZW50YXRpb24gYWxsb3dlZC4gIFRoZSBmb290bm90ZSByZWZlcmVu Y2UgIgoiaXMgc2ltcGx5IHRoZSBtYXJrZXIgaW4gc3F1YXJlIGJyYWNrZXRzLCBpbnNpZGUgdGV4 dC4gIEZvciBleGFtcGxlOiIKbXNnc3RyICIiCiJVbmEgTm90YSBhbCBwaWUgZXMgZGVmaW5pZGEg Y29tbyB1biBwQCdhcnJhZm8gcXVlIGNvbWllbnphIGNvbiB1bmFcbiIKIm5vdGEgYWwgcGllIG1h cmNhZGEgZW50cmUgY29yY2hldGVzIGVuIGxhIGNvbHVtbmEgMCwgc2luIG5pbmdAJ3VuXG4iCiJz YW5ncmFkby4gTGEgcmVmZXJlbmNpYSBhIGxhIG5vdGEgYWwgcGllIGVzIHNpbXBsZW1lbnRlIHVu YSBtYXJjaGEgZGVcbiIKImNvcmNoZXRlcywgdGV4dG8gaW5jbHVpZG8uIFBvciBlamVtcGxvOiIK CiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjU0NgojLCBmdXp6eSwgbm8t d3JhcAptc2dpZCAiIgoiVGhlIE9yZyBob21lcGFnZVtmbjoxXSBub3cgbG9va3MgYSBsb3QgYmV0 dGVyIHRoYW4gaXQgdXNlZCB0by5cbiIKIi4uLlxuIgoiW2ZuOjFdIFRoZSBsaW5rIGlzOiBodHRw Oi8vb3JnbW9kZS5vcmdcbiIKbXNnc3RyICIiCiJMYSBwQCdhZ2luYSB3ZWIgZGUgT3JnW2ZuOjFd IGFob3JhIHBhcmVjZSB1biBwb2NvIG1lam9yIHF1ZSBjdWFuZG8gbGFcbiIKInVzYWJhLlxuIgoi Li4uXG4iCiJbZm46MV0gRWwgZW5sYWNlIGVzOiBodHRwOi8vb3JnbW9kZS5vcmciCgojLiB0eXBl OiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6NTUxCiMsIG5vLXdyYXAKbXNnaWQgIkMtYyBDLXggZiIK bXNnc3RyICJDLWMgQy14IGYiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjU1Nwoj LCBmdXp6eQptc2dpZCAiIgoiVGhlIGZvb3Rub3RlIGFjdGlvbiBjb21tYW5kLiAgV2hlbiB0aGUg Y3Vyc29yIGlzIG9uIGEgZm9vdG5vdGUgcmVmZXJlbmNlLCAiCiJqdW1wIHRvIHRoZSBkZWZpbml0 aW9uLiAgV2hlbiBpdCBpcyBhdCBhIGRlZmluaXRpb24sIGp1bXAgdG8gdGhlIChmaXJzdCkgICIK InJlZmVyZW5jZS4gIE90aGVyd2lzZSwgY3JlYXRlIGEgbmV3IGZvb3Rub3RlLiAgV2hlbiB0aGlz IGNvbW1hbmQgaXMgY2FsbGVkICIKIndpdGggYSBwcmVmaXggYXJndW1lbnQsIGEgbWVudSBvZiBh ZGRpdGlvbmFsIG9wdGlvbnMgaW5jbHVkaW5nIHJlbnVtYmVyaW5nICIKImlzIG9mZmVyZWQuIgpt c2dzdHIgIiIKIkVsIGNvbWFuZG8gZGUgYWNjaUAnb24gZGUgTm90YSBhbCBwaWUuIEN1YW5kbyBl bCBjdXJzb3IgZXN0QCdhIGVuIHVuYVxuIgoicmVmZXJlbmNpYSBhIHVuIG5vdGEgYWwgcGllLCBz YWx0YSBhIHN1IGRlZmluaWNpQCdvbi4gQ3VhbmRvIGVzdEAnYSBlblxuIgoibGEgZGVmaW5pY2lA J29uLCBzYWx0YSBhIGxhIChwcmltZXJhKSByZWZlcmVuY2lhLiBFbiBvdHJvIGNhc28sIGNyZWFc biIKInVuYSBudWV2YSBub3RhIGFsIHBpZS4gQ3VhbmRvIGVzdGUgY29tYW5kbyBlcyBsbGFtYWRv IGNvbiB1blxuIgoiYXJndWltZW50byBjb21vIHByZWZpam8sIGFwYXJlY2VyQCdhIHVuIG1lbkAn dSBhZGljaW9uYWwgaW5jbHV5ZW5kb1xuIgoib3BjaW9uZXMgZGUgcmVudW1lcmFjaUAnb24uIgoK Iy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aTo1NjAKIywgZnV6enkKbXNnaWQgIkp1bXAg YmV0d2VlbiBkZWZpbml0aW9uIGFuZCByZWZlcmVuY2UuIgptc2dzdHIgIlNhbHRhIGVudHJlIGRl ZmluaWNpQCdvbiB5IHJlZmVyZW5jaWEuIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlk ZS50ZXhpOjU2Nwptc2dpZCAiIgoiQHNlZWFsc297IEB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy9t YW51YWwvRG9jdW1lbnQtU3RydWN0dXJlLmh0bWwjRG9jdW1lbnQtIgoiU3RydWN0dXJlLCBDaGFw dGVyIDIgb2YgdGhlIG1hbnVhbH1AKiBAdXJlZntodHRwOi8vc2FjaGFjaHVhLmNvbS93cC8yMDA4 LzAxLyIKIm91dGxpbmluZy15b3VyLW5vdGVzLXdpdGgtb3JnLywgU2FjaGEgQ2h1YSdzIHR1dG9y aWFsfX0iCm1zZ3N0ciAiIgoiQHNlZWFsc297QHVyZWZ7aHR0cDovL29yZ21vZGUub3JnL21hbnVh bC9Eb2N1bWVudC1TdHJ1Y3R1cmUuaHRtbCNEb2N1bWVudC0iCiJTdHJ1Y3R1cmUsXG4iCiJDYXBA J3tAZG90bGVzc3tpfX10dWxvIDIgZGVsIG1hbnVhbCBkZSBPcmctbW9kZX1AKkB1cmVme2h0dHA6 Ly9zYWNoYWNodWEuY29tLyIKIndwLzIwMDgvMDEvb3V0bGluaW5nLXlvdXItbm90ZXMtd2l0aC1v cmcvLFxuIgoiVHV0b3JpYWwgZGUgU2FjaGEgQ2h1YX19IgoKIy4gdHlwZTogUGxhaW4gdGV4dAoj OiBvcmdndWlkZS50ZXhpOjU3NQojLCBmdXp6eQptc2dpZCAiIgoiT3JnIGNvbWVzIHdpdGggYSBm YXN0IGFuZCBpbnR1aXRpdmUgdGFibGUgZWRpdG9yLiAgU3ByZWFkc2hlZXQtbGlrZSAiCiJjYWxj dWxhdGlvbnMgYXJlIHN1cHBvcnRlZCBpbiBjb25uZWN0aW9uIHdpdGggdGhlIEVtYWNzIEBmaWxl e2NhbGN9IHBhY2thZ2UiCm1zZ3N0ciAiIgoiT3JnIHZpZW5lIGNvbiB1biByQCdhcGlkbyBlIGlu dHVpdGl2byBlZGl0b3IgZGUgdGFibGFzLiBDQCdhbGN1bG9zXG4iCiJzaW1pbGFyZXMgYSBsb3Mg ZGUgdW5hIGhvamEgZGUgY0AnYWxjdWxvIHNvbiBzb3BvcnRhZG9zIGVuIGNvbmV4aUAnb25cbiIK ImNvbiBlbCBwYXF1ZXRlIEVtYWNzIEBmaWxle2NhbGN9IgoKIy4gdHlwZTogaWZpbmZvCiM6IG9y Z2d1aWRlLnRleGk6NTc3Cm1zZ2lkICIoQHB4cmVme1RvcCxDYWxjLCxDYWxjLEdudSBFbWFjcyBD YWxjdWxhdG9yIE1hbnVhbH0pLiIKbXNnc3RyICIoQHB4cmVme1RvcCxDYWxjLCxDYWxjLEdudSBF bWFjcyBDYWxjdWxhdG9yIE1hbnVhbH0pLiIKCiMuIHR5cGU6IGlmbm90aW5mbwojOiBvcmdndWlk ZS50ZXhpOjU4MQptc2dpZCAiIgoiKHNlZSB0aGUgRW1hY3MgQ2FsY3VsYXRvciBtYW51YWwgZm9y IG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEVtYWNzICIKImNhbGN1bGF0b3IpLiIKbXNnc3Ry ICIiCiIodmVhIGVsIG1hbnVhbCBkZSBFbWFjcyBDYWxjdWxhdG9yIHBhcmEgbUAnYXMgaW5mb3Jt YWNpQCdvbiBzb2JyZSBsYVxuIgoiY2FsY3VsYWRvcmEgZGUgRW1hY3MpLiIKCiMuIHR5cGU6IFBs YWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTo1ODcKbXNnaWQgIiIKIk9yZyBtYWtlcyBpdCBlYXN5 IHRvIGZvcm1hdCB0YWJsZXMgaW4gcGxhaW4gQVNDSUkuICBBbnkgbGluZSB3aXRoIEBzYW1we3x9 ICIKImFzIHRoZSBmaXJzdCBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgY29uc2lkZXJlZCBw YXJ0IG9mIGEgdGFibGUuICBAc2FtcCIKInt8fSBpcyBhbHNvIHRoZSBjb2x1bW4gc2VwYXJhdG9y LiAgQSB0YWJsZSBtaWdodCBsb29rIGxpa2UgdGhpczoiCm1zZ3N0ciAiIgoiT3JnIGhhY2UgZkAn YWNpbCBmb3JtYXRlYXIgdGFibGFzIGVuIEFTQ0lJIHBsYW5vLiBDdWFscXVpZXJcbiIKImxAJ3tA ZG90bGVzc3tpfX1uZWEgY29uIEBzYW1we3x9IGNvbW8gcHJpbWVyIGNhckAnYWN0ZXIgbm8tZXNw YWNpbyBlc1xuIgoiY29uc2lkZXJhZG8gcGFydGUgZGUgdW5hIHRhYmxhLiBAc2FtcHt8fSBlcyBh ZGVtQCdhcyBlbCBzZXBhcmFkb3IgZGVcbiIKImNvbHVtbmFzLiBVbmEgdGFibGEgcHVlZGUgcGFy ZWNlciBhbGdvIGFzQCd7QGRvdGxlc3N7aX19OiIKCiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBv cmdndWlkZS50ZXhpOjU5MwojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiIgoifCBOYW1lICB8IFBo b25lIHwgQWdlIHxcbiIKInwtLS0tLS0tKy0tLS0tLS0rLS0tLS18XG4iCiJ8IFBldGVyIHwgIDEy MzQgfCAgMTcgfFxuIgoifCBBbm5hICB8ICA0MzIxIHwgIDI1IHxcbiIKbXNnc3RyICIiCiJ8IE5v bWJyZSAgfCBUZWxAJ2Vmb25vIHwgRWRhZCB8XG4iCiJ8LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tfFxuIgoifCBQZWRybyAgIHwgMTIzNDU2NzggfCAgMTcgIHxcbiIKInwgQW5hICAgICB8IDg3 NjU0MzIxIHwgIDI1ICB8XG4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6 NjAzCm1zZ2lkICIiCiJBIHRhYmxlIGlzIHJlLWFsaWduZWQgYXV0b21hdGljYWxseSBlYWNoIHRp bWUgeW91IHByZXNzIEBrZXl7VEFCfSBvciBAa2V5Igoie1JFVH0gb3IgQGtiZHtDLWMgQy1jfSBp bnNpZGUgdGhlIHRhYmxlLiAgQGtleXtUQUJ9IGFsc28gbW92ZXMgdG8gdGhlIG5leHQgIgoiZmll bGQgKEBrZXl7UkVUfSB0byB0aGUgbmV4dCByb3cpIGFuZCBjcmVhdGVzIG5ldyB0YWJsZSByb3dz IGF0IHRoZSBlbmQgb2YgIgoidGhlIHRhYmxlIG9yIGJlZm9yZSBob3Jpem9udGFsIGxpbmVzLiAg VGhlIGluZGVudGF0aW9uIG9mIHRoZSB0YWJsZSBpcyBzZXQgIgoiYnkgdGhlIGZpcnN0IGxpbmUu ICBBbnkgbGluZSBzdGFydGluZyB3aXRoIEBzYW1we3wtfSBpcyBjb25zaWRlcmVkIGFzIGEgIgoi aG9yaXpvbnRhbCBzZXBhcmF0b3IgbGluZSBhbmQgd2lsbCBiZSBleHBhbmRlZCBvbiB0aGUgbmV4 dCByZS1hbGlnbiB0byBzcGFuICIKInRoZSB3aG9sZSB0YWJsZSB3aWR0aC4gIFNvLCB0byBjcmVh dGUgdGhlIGFib3ZlIHRhYmxlLCB5b3Ugd291bGQgb25seSB0eXBlIgptc2dzdHIgIiIKIlVuYSB0 YWJsYSBlcyByZWFsaW5lYWRhIGF1dG9tQCdhdGljYW1lbnRlIGNhZGEgdmV6IHF1ZSBzZSBwcmVz aW9uZVxuIgoiQGtleXtUQUJ9IG8gQGtleXtSRVR9IG8gQGtiZHtDLWMgQy1jfSBkZW50cm8gZGUg bGEgdGFibGEuIEBrZXl7VEFCfVxuIgoiYWRlbUAnYXMgbXVldmUgYWwgc2lndWllbnRlIGNhbXBv IChAa2V5e1JFVH0gYSBsYSBzaWd1aWVudGUgZmlsYSkgeVxuIgoiY3JlYSB1bmEgbnVldmEgdGFi bGEgZGUgZmlsYXMgYWwgZmluYWwgZGUgbGEgdGFibGEgbyBhbnRlcyBkZSBsYXNcbiIKImxAJ3tA ZG90bGVzc3tpfX1uZWFzIGhvcml6b250YWxlcy4gRWwgc2FuZ3JhZG8gZGUgbGEgdGFibGEgZXMg cHVlc3RvXG4iCiJwb3IgbGEgcHJpbWVyYSBsQCd7QGRvdGxlc3N7aX19bmVhLiBDdWFscXVpZXIg bEAne0Bkb3RsZXNze2l9fW5lYVxuIgoiY29tZW56YW5kbyBjb24gQHNhbXB7fC19IGVzIGNvbnNp ZGVyYWRhIGNvbW8gdW4gc2VwYXJhZG9yIGhvcml6b250YWxcbiIKImRlIGxAJ3tAZG90bGVzc3tp fX1uZWEgeSBzZXJAJ2EgZXhwYW5kaWRvIGVuIGxhIHNpZ3VpZW50ZVxuIgoicmVhbGluZWFjaUAn b24gcGFyYSBleHBhbmRpcnNlIGFsIGFuY2hvIGNvbXBsZXRvIGRlIGxhXG4iCiJ0YWJsYS4gQXNA J3tAZG90bGVzc3tpfX0sIHBhcmEgY3JlYXIgdW5hIHRhYmxhIGRlbnRybywgZGViZSBzQCdvbG9c biIKImludHJvZHVjaXIgIgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1aWRlLnRleGk6 NjA3CiMsIG5vLXdyYXAKbXNnaWQgIiIKInxOYW1lfFBob25lfEFnZXxcbiIKInwtXG4iCm1zZ3N0 ciAiIgoifE5vbWJyZXxUZWxAJ2Vmb25vfEVkYWR8XG4iCiJ8LVxuIgoKIy4gdHlwZTogUGxhaW4g dGV4dAojOiBvcmdndWlkZS50ZXhpOjYxMgojLCBmdXp6eQptc2dpZCAiIgoiZmllbGRzLiAgRXZl biBmYXN0ZXIgd291bGQgYmUgdG8gdHlwZSBAY29kZXt8TmFtZXxQaG9uZXxBZ2V9IGZvbGxvd2Vk IGJ5IEBrYmQiCiJ7Qy1jIEBrZXl7UkVUfX0uIgptc2dzdHIgIiIKImVudG9uY2VzIHByZXNpb25l IEBrZXl7VEFCfSBwYXJhIGFsaW5lYXIgbGEgdGFibGEgeSBjb21lbnphciBhXG4iCiJpbnRyb2R1 Y2lyIGRhdG9zLiBNQCdhcyByQCdhcGlkbyBkZWJlIHNlciBpbnRyb2R1Y2lyXG4iCiJAY29kZXt8 Tm9tYnJlfFRlbEAnZWZvbm98RWRhZH0gc2VndWlkbyBkZSBAa2Jke0MtYyBAa2V5e1JFVH19LiIK CiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTo2MTkKbXNnaWQgIiIKIldoZW4g dHlwaW5nIHRleHQgaW50byBhIGZpZWxkLCBPcmcgdHJlYXRzIEBrZXl7REVMfSwgQGtleXtCYWNr c3BhY2V9LCBhbmQgIgoiYWxsIGNoYXJhY3RlciBrZXlzIGluIGEgc3BlY2lhbCB3YXksIHNvIHRo YXQgaW5zZXJ0aW5nIGFuZCBkZWxldGluZyBhdm9pZHMgIgoic2hpZnRpbmcgb3RoZXIgZmllbGRz LiAgQWxzbywgd2hlbiB0eXBpbmcgQGVtcGh7aW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGN1cnNvciAi CiJ3YXMgbW92ZWQgaW50byBhIG5ldyBmaWVsZCB3aXRoIEBrYmR7QGtleXtUQUJ9fSwgQGtiZHtT LUBrZXl7VEFCfX0gb3IgQGtiZCIKIntAa2V5e1JFVH19fSwgdGhlIGZpZWxkIGlzIGF1dG9tYXRp Y2FsbHkgbWFkZSBibGFuay4iCm1zZ3N0ciAiIgoiQ3VhbmRvIHNlIGludHJvZHVjZSB0ZXh0byBl biB1biBjYW1wbywgT3JnIHRyYXRhIEBrZXl7REVMfSxcbiIKIkBrZXl7QmFja3NwYWNlfSB5IHRv ZGFzIGxhcyB0ZWNsYXMgZGUgZm9ybWEgZXNwZWNpYWwsIHBhcmEgcXVlIGxhXG4iCiJpbnNlcmNp QCdvbiB5IGVsIGJvcnJhZG8gZXZpdGVuIGRlc3BsYXphcnNlIGEgb3Ryb3MgY2FtcG9zLiBQb3Ig dGFudG8sXG4iCiJjdWFuZG8gc2UgaW50cm9kdWNlIEBlbXBoe2lubWVkaWF0YW1lbnRlIGRlc3B1 QCdlcyBkZSBxdWUgZWwgY3Vyc29yIHNlXG4iCiJoYXlhIG1vdmlkbyBkZW50cm8gZGUgdW4gbnVl dm8gY2FtcG8gY29uIEBrYmR7QGtleXtUQUJ9fSxcbiIKIkBrYmR7Uy1Aa2V5e1RBQn19IG8gQGti ZHtAa2V5e1JFVH19fSwgZWwgY2FtcG8gZXMgYXV0b21AJ2F0aWNhbWVudGVcbiIKInB1ZXN0byBl biBibGFuY28uIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aTo2MjIKbXNnaWQgIkB0 c3ViaGVhZGluZ3tDcmVhdGlvbiBhbmQgY29udmVyc2lvbn0iCm1zZ3N0ciAiQHRzdWJoZWFkaW5n e0NyZWFjaUAnb24geSBjb252ZXJzaUAnb259IgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50 ZXhpOjYyMgojLCBuby13cmFwCm1zZ2lkICJDLWMgfCIKbXNnc3RyICJDLWMgfCIKCiMuIHR5cGU6 IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6NjMxCiMsIGZ1enp5Cm1zZ2lkICIiCiJDb252ZXJ0IHRo ZSBhY3RpdmUgcmVnaW9uIHRvIHRhYmxlLiAgSWYgZXZlcnkgbGluZSBjb250YWlucyBhdCBsZWFz dCBvbmUgVEFCICIKImNoYXJhY3RlciwgdGhlIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgbWF0 ZXJpYWwgaXMgdGFiIHNlcGFyYXRlZC4gIElmICIKImV2ZXJ5IGxpbmUgY29udGFpbnMgYSBjb21t YSwgY29tbWEtc2VwYXJhdGVkIHZhbHVlcyAoQ1NWKSBhcmUgYXNzdW1lZC4gIElmICIKIm5vdCwg bGluZXMgYXJlIHNwbGl0IGF0IHdoaXRlc3BhY2UgaW50byBmaWVsZHMuICBAKiBJZiB0aGVyZSBp cyBubyBhY3RpdmUgIgoicmVnaW9uLCB0aGlzIGNvbW1hbmQgY3JlYXRlcyBhbiBlbXB0eSBPcmcg dGFibGUuICBCdXQgaXQncyBlYXNpZXIganVzdCB0byAiCiJzdGFydCB0eXBpbmcsIGxpa2UgQGti ZHt8TmFtZXxQaG9uZXxBZ2UgQy1jIEBrZXl7UkVUfX0uIgptc2dzdHIgIiIKIkNvbnZpZXJ0ZSBs YSByZWdpQCdvbiBhY3RpdmEgZW4gdGFibGEuIFNpIGNhZGEgbEAne0Bkb3RsZXNze2l9fW5lYVxu IgoiY29udGllbmUgYWwgbWVub3MgdW4gY2FyQCdhY3RlciBUQUIsIGxhIGZ1bmNpQCdvbiBhc3Vt ZSBxdWUgbGFcbiIKImluZm9ybWFjaUAnb24gZXN0QCdhIHNlcGFyYWRhIHBvciB0YWJ1bGFkb3Jl cy4gU2kgY2FkYVxuIgoibEAne0Bkb3RsZXNze2l9fW5lYSBjb250aWVuZSB1bmEgY29tYSwgc2Ug YXN1bWVuIHZhbG9yZXMgc2VwYXJhZG9zIHBvclxuIgoiY29tYSAoQ1NWKS4gU2kgbm8sIGxhcyBs QCd7QGRvdGxlc3N7aX19bmVhcyBzb24gcGFydGlkYXMgZW4gY2FtcG9zIHBvclxuIgoibG9zIGVz cGFjaW9zLiBAKiBTaSBubyBoYXkgcmVnaUAnb24gYWN0aXZhLCBlc3RlIGNvbWFuZG8gY3JlYSB1 bmFcbiIKInRhYmxhIE9yZyB2YWNpYS4gUGVybyBlcyBmQCdhY2lsIGp1c3RvIGFob3JhIGNvbWVu emFyIGEgaW50cm9kdWNpclxuIgoiYWxnbyBjb21vIEBrYmR7fE5vbWJyZXxUZWxAJ2Vmb25vfEVk YWQgQy1jIEBrZXl7UkVUfX0uIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aTo2MzMK bXNnaWQgIkB0c3ViaGVhZGluZ3tSZS1hbGlnbmluZyBhbmQgZmllbGQgbW90aW9ufSIKbXNnc3Ry ICJAdHN1YmhlYWRpbmd7UmVhbGluZWFjaUAnb24geSBtb3ZpbWllbnRvfSIKCiMuIHR5cGU6IHRh YmxlCiM6IG9yZ2d1aWRlLnRleGk6NjM2Cm1zZ2lkICJSZS1hbGlnbiB0aGUgdGFibGUgd2l0aG91 dCBtb3ZpbmcgdGhlIGN1cnNvci4iCm1zZ3N0ciAiUmVhbGluZWEgbGEgdGFibGEgc2luIG1vdmVy IGVsIGN1cnNvci4iCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjY0MAptc2dpZCAi IgoiUmUtYWxpZ24gdGhlIHRhYmxlLCBtb3ZlIHRvIHRoZSBuZXh0IGZpZWxkLiAgQ3JlYXRlcyBh IG5ldyByb3cgaWYgbmVjZXNzYXJ5LiIKbXNnc3RyICIiCiJSZWFsaW5lYSBsYSB0YWJsYSwgc2Ug bXVldmUgYWwgc2lndWllbnRlIGNhbXBvLiBDcmVhIHVuYSBudWV2YSBmaWxhIHNpXG4iCiJlcyBu ZWNlc2FyaW8uIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjY0MAojLCBuby13cmFw Cm1zZ2lkICJTLUBrZXl7VEFCfSIKbXNnc3RyICJTLUBrZXl7VEFCfSIKCiMuIHR5cGU6IHRhYmxl CiM6IG9yZ2d1aWRlLnRleGk6NjQzCm1zZ2lkICJSZS1hbGlnbiwgbW92ZSB0byBwcmV2aW91cyBm aWVsZC4iCm1zZ3N0ciAiUmVhbGluZWEsIG1vdmVyc2UgYWwgY2FtcG8gYW50ZXJpb3IuIgoKIy4g dHlwZToga2V5eyMxfQojOiBvcmdndWlkZS50ZXhpOjY0MyBvcmdndWlkZS50ZXhpOjE5MTAKIywg bm8td3JhcAptc2dpZCAiUkVUIgptc2dzdHIgIlJFVCIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1 aWRlLnRleGk6NjQ2Cm1zZ2lkICIiCiJSZS1hbGlnbiB0aGUgdGFibGUgYW5kIG1vdmUgZG93biB0 byBuZXh0IHJvdy4gIENyZWF0ZXMgYSBuZXcgcm93IGlmICIKIm5lY2Vzc2FyeS4iCm1zZ3N0ciAi IgoiUmVhbGluZWEgbGEgdGFibGEgeSBzZSBtdWV2ZSBhYmFqbyBhIGxhIHNpZ3VpZW50ZSBmaWxh LiBDcmVhIHVuYSBudWV2YVxuIgoiZmlsYSBzaSBlcyBuZWNlc2FyaW8uIgoKIy4gdHlwZTogdGFi bGUKIzogb3JnZ3VpZGUudGV4aTo2NDgKbXNnaWQgIkB0c3ViaGVhZGluZ3tDb2x1bW4gYW5kIHJv dyBlZGl0aW5nfSIKbXNnc3RyICJAdHN1YmhlYWRpbmd7RWRpY2lAJ29uIGRlIGZpbGFzIHkgY29s dW1uYXN9IgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjY0OAojLCBuby13cmFwCm1z Z2lkICJNLUBrZXl7bGVmdH0iCm1zZ3N0ciAiTS1Aa2V5e2xlZnR9IgoKIy4gdHlwZTogaXRlbXgK Izogb3JnZ3VpZGUudGV4aTo2NDkKIywgbm8td3JhcAptc2dpZCAiTS1Aa2V5e3JpZ2h0fSIKbXNn c3RyICJNLUBrZXl7cmlnaHR9IgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aTo2NTIK bXNnaWQgIk1vdmUgdGhlIGN1cnJlbnQgY29sdW1uIGxlZnQvcmlnaHQuIgptc2dzdHIgIk11ZXZl IGVsIGN1cnNvciBhIGxhIGNvbHVtbmEgaXpxdWllcmRhL2RlcmVjaGEuIgoKIy4gdHlwZTogaXRl bQojOiBvcmdndWlkZS50ZXhpOjY1MgojLCBuby13cmFwCm1zZ2lkICJNLVMtQGtleXtsZWZ0fSIK bXNnc3RyICJNLVMtQGtleXtsZWZ0fSIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6 NjU1Cm1zZ2lkICJLaWxsIHRoZSBjdXJyZW50IGNvbHVtbi4iCm1zZ3N0ciAiRWxpbWluYSBsYSBj b2x1bW5hIGFjdHVhbC4iCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6NjU1CiMsIG5v LXdyYXAKbXNnaWQgIk0tUy1Aa2V5e3JpZ2h0fSIKbXNnc3RyICJNLVMtQGtleXtyaWdodH0iCgoj LiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjY1OAptc2dpZCAiSW5zZXJ0IGEgbmV3IGNv bHVtbiB0byB0aGUgbGVmdCBvZiB0aGUgY3Vyc29yIHBvc2l0aW9uLiIKbXNnc3RyICJJbnNlcnRh IHVuYSBudWV2YSBjb2x1bW5hIGEgbGEgaXpxdWllcmRhIGRlIGxhIHBvc2ljaUAnb24gZGVsIGN1 cnNvci4iCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6NjU4CiMsIG5vLXdyYXAKbXNn aWQgIk0tQGtleXt1cH0iCm1zZ3N0ciAiTS1Aa2V5e3VwfSIKCiMuIHR5cGU6IGl0ZW14CiM6IG9y Z2d1aWRlLnRleGk6NjU5CiMsIG5vLXdyYXAKbXNnaWQgIk0tQGtleXtkb3dufSIKbXNnc3RyICJN LUBrZXl7ZG93bn0iCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjY2Mgptc2dpZCAi TW92ZSB0aGUgY3VycmVudCByb3cgdXAvZG93bi4iCm1zZ3N0ciAiTXVldmUgbGEgYWN0dWFsIGZp bGEgYXJyaWJhL2FiYWpvLiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aTo2NjIKIywg bm8td3JhcAptc2dpZCAiTS1TLUBrZXl7dXB9Igptc2dzdHIgIk0tUy1Aa2V5e3VwfSIKCiMuIHR5 cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6NjY1Cm1zZ2lkICJLaWxsIHRoZSBjdXJyZW50IHJv dyBvciBob3Jpem9udGFsIGxpbmUuIgptc2dzdHIgIkVsaW1pbmEgbGEgZmlsYSBvIGxAJ3tAZG90 bGVzc3tpfX1uZWEgaG9yaXpvbnRhbCBhY3R1YWwuIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlk ZS50ZXhpOjY2NQojLCBuby13cmFwCm1zZ2lkICJNLVMtQGtleXtkb3dufSIKbXNnc3RyICJNLVMt QGtleXtkb3dufSIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6NjY5Cm1zZ2lkICIi CiJJbnNlcnQgYSBuZXcgcm93IGFib3ZlIHRoZSBjdXJyZW50IHJvdy4gIFdpdGggYSBwcmVmaXgg YXJndW1lbnQsIHRoZSBsaW5lIGlzICIKImNyZWF0ZWQgYmVsb3cgdGhlIGN1cnJlbnQgb25lLiIK bXNnc3RyICIiCiJJbnNlcnRhIHVuYSBudWV2YSBmaWxhIHNvYnJlIGxhIGZpbGEgYWN0dWFsLiBD b24gcHJlZmlqbyBhcmd1bWVudG8sIGxhXG4iCiJsQCd7QGRvdGxlc3N7aX19bmVhIGVzIGNyZWFk YSBkZWJham8gZGUgbGEgYWN0dWFsLiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6 NjczCm1zZ2lkICIiCiJJbnNlcnQgYSBob3Jpem9udGFsIGxpbmUgYmVsb3cgY3VycmVudCByb3cu ICBXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCB0aGUgIgoibGluZSBpcyBjcmVhdGVkIGFib3ZlIHRo ZSBjdXJyZW50IGxpbmUuIgptc2dzdHIgIiIKIkluc2VydGEgdW5hIGxAJ3tAZG90bGVzc3tpfX1u ZWEgaG9yaXpvbnRhbCBiYWpvIGxhIGZpbGEgYWN0dWFsLiBDb25cbiIKInByZWZpam8gYXJndW1l bnRvLCBsYSBsQCd7QGRvdGxlc3N7aX19bmVhIGVzIGNyZWFkYSBzb2JyZSBsYVxuIgoibEAne0Bk b3RsZXNze2l9fW5lYSBhY3R1YWwuIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjY3 MwojLCBuby13cmFwCm1zZ2lkICJDLWMgQGtleXtSRVR9Igptc2dzdHIgIkMtYyBAa2V5e1JFVH0i CgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjY3Nwptc2dpZCAiIgoiSW5zZXJ0IGEg aG9yaXpvbnRhbCBsaW5lIGJlbG93IGN1cnJlbnQgcm93LCBhbmQgbW92ZSB0aGUgY3Vyc29yIGlu dG8gdGhlIHJvdyAiCiJiZWxvdyB0aGF0IGxpbmUuIgptc2dzdHIgIiIKIkluc2VydGEgdW5hIGxA J3tAZG90bGVzc3tpfX1uZWEgaG9yaXpvbnRhbCBiYWpvIGxhIGZpbGEgYWN0dWFsLCB5XG4iCiJt dWV2ZSBlbCBjdXJzb3IgYSBsYSBmaWxhIGJham8gbGEgbEAne0Bkb3RsZXNze2l9fW5lYS4iCgoj LiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6Njc3CiMsIG5vLXdyYXAKbXNnaWQgIkMtYyBe Igptc2dzdHIgIkMtYyBeIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aTo2ODEKbXNn aWQgIiIKIlNvcnQgdGhlIHRhYmxlIGxpbmVzIGluIHRoZSByZWdpb24uICBUaGUgcG9zaXRpb24g b2YgcG9pbnQgaW5kaWNhdGVzIHRoZSAiCiJjb2x1bW4gdG8gYmUgdXNlZCBmb3Igc29ydGluZywg YW5kIHRoZSByYW5nZSBvZiBsaW5lcyBpcyB0aGUgcmFuZ2UgYmV0d2VlbiAiCiJ0aGUgbmVhcmVz dCBob3Jpem9udGFsIHNlcGFyYXRvciBsaW5lcywgb3IgdGhlIGVudGlyZSB0YWJsZS4iCm1zZ3N0 ciAiIgoiT3JkZW5hIGxhcyBsQCd7QGRvdGxlc3N7aX19bmVhcyBkZSB1bmEgdGFibGEgZW4gdW5h IHJlZ2lAJ29uLiBMYVxuIgoicG9zaWNpQCdvbiBkZWwgcHVudG8gaW5kaWNhIGxhIGNvbHVtbmEg dXNhZGEgcGFyYSBsYSBvcmRlbmFjaUAnb24sIHlcbiIKImVsIHJhbmdvIGRlIGxAJ3tAZG90bGVz c3tpfX1uZWFzIGVzIGVsIHJhbmdvIGVudHJlIGVsIHNlcGFyYWRvciBkZVxuIgoibEAne0Bkb3Rs ZXNze2l9fW5lYXMgbUAnYXMgcHJAJ294aW1vLCBvIGxhIHRhYmxhIGNvbXBsZXRhLiIKCiMuIHR5 cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTo2OTIKbXNnaWQgIiIKIkBzZWVhbHNveyBA dXJlZntodHRwOi8vb3JnbW9kZS5vcmcvbWFudWFsL1RhYmxlcy5odG1sI1RhYmxlcywgQ2hhcHRl ciAzIG9mICIKInRoZSBtYW51YWx9QCogQHVyZWZ7aHR0cDovL29yZ21vZGUub3JnL3dvcmcvb3Jn LXR1dG9yaWFscy90YWJsZXMucGhwLCAiCiJCYXN0aWVuJ3MgdGFibGUgdHV0b3JpYWx9QCogQHVy ZWZ7aHR0cDovL29yZ21vZGUub3JnL3dvcmcvb3JnLXR1dG9yaWFscy9vcmctIgoic3ByZWFkc2hl ZXQtaW50cm8ucGhwLCBCYXN0aWVuJ3Mgc3ByZWFkc2hlZXQgdHV0b3JpYWx9QCogQHVyZWZ7aHR0 cDovLyIKIm9yZ21vZGUub3JnL3dvcmcvb3JnLXR1dG9yaWFscy9vcmctcGxvdC5waHAsIEVyaWMn cyBwbG90dGluZyB0dXRvcmlhbH19Igptc2dzdHIgIiIKIkBzZWVhbHNveyBAdXJlZntodHRwOi8v b3JnbW9kZS5vcmcvbWFudWFsL1RhYmxlcy5odG1sI1RhYmxlcyxcbiIKIkNhcEAne0Bkb3RsZXNz e2l9fXR1bG8gMyBkZWwgbWFudWFsIGRlIE9yZyB9QCpcbiIKIkB1cmVme2h0dHA6Ly9vcmdtb2Rl Lm9yZy93b3JnL29yZy10dXRvcmlhbHMvdGFibGVzLnBocCwgVHV0b3JpYWwgZGVcbiIKInRhYmxh cyBkZSBCYXN0aWVufUAqXG4iCiJAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvd29yZy9vcmctdHV0 b3JpYWxzL29yZy1zcHJlYWRzaGVldC1pbnRyby5waHAsXG4iCiJUdXRvcmlhbCBkZSBob2phcyBk ZSBjQCdhbGN1bG8gZGUgQmFzdGllbn1AKlxuIgoiQHVyZWZ7aHR0cDovL29yZ21vZGUub3JnL3dv cmcvb3JnLXR1dG9yaWFscy9vcmctcGxvdC5waHAsIFR1dG9yaWFsIGRlXG4iCiJnckAnYWZpY29z IGRlIEVyaWN9fSIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTo2OTgKbXNn aWQgIiIKIkxpa2UgSFRNTCwgT3JnIHByb3ZpZGVzIGxpbmtzIGluc2lkZSBhIGZpbGUsIGV4dGVy bmFsIGxpbmtzIHRvIG90aGVyIGZpbGVzLCAiCiJVc2VuZXQgYXJ0aWNsZXMsIGVtYWlscywgYW5k IG11Y2ggbW9yZS4iCm1zZ3N0ciAiIgoiQWwgaWd1YWwgcXVlIEhUTUwsIE9yZyBwZXJtaXRlIGVu bGFjZXMgZGVudHJvIGRlIGFyY2hpdm9zLCBlbmxhY2VzXG4iCiJleHRlcm5vcyBhIG90cm9zIGFy Y2hpdm9zLCBhcnRAJ3tAZG90bGVzc3tpfX1jdWxvcyBkZSBVc2VuZXQsIGNvcnJlb3NcbiIKImVs ZWN0ckAnb25pY29zIHkgbXVjaG8gbUAnYXMuIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdn dWlkZS50ZXhpOjcxMgptc2dpZCAiIgoiT3JnIHdpbGwgcmVjb2duaXplIHBsYWluIFVSTC1saWtl IGxpbmtzIGFuZCBhY3RpdmF0ZSB0aGVtIGFzIGNsaWNrYWJsZSAiCiJsaW5rcy4gIFRoZSBnZW5l cmFsIGxpbmsgZm9ybWF0LCBob3dldmVyLCBsb29rcyBsaWtlIHRoaXM6Igptc2dzdHIgIiIKIk9y ZyByZWNvbm9jZXJAJ2EgZW5sYWNlcyBkZSB0ZXh0byB0aXBvIFVSTCB5IGxvcyBhY3RpdmFyQCdh IGNvbW9cbiIKImVubGFjZXMgZW4gbG9zIHF1ZSBzZSBwdWVkZSBoYWNlciBjbGljay4gRWwgZm9y bWF0byBkZSBlbmxhY2UgZ2VuZXJhbCxcbiIKInNpbiBlbWJhcmdvLCBzZSB2ZSBkZSBsYSBzaWd1 aWVudGUgbWFuZXJhOiIKCiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjcx NQojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiW1tsaW5rXVtkZXNjcmlwdGlvbl1dICAgICAgIEBy e29yIGFsdGVybmF0aXZlbHl9ICAgICAgICAgICBbW2xpbmtdXVxuIgptc2dzdHIgIltbZW5sYWNl XVtkZXNjcmlwY2lvbl1dICAgQHJ7byBkZSBtYW5lcmEgYWx0ZXJuYXRpdmF9ICAgIFtbZW5sYWNl XV1cbiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTo3MjMKIywgZnV6enkK bXNnaWQgIiIKIk9uY2UgYSBsaW5rIGluIHRoZSBidWZmZXIgaXMgY29tcGxldGUgKGFsbCBicmFj a2V0cyBwcmVzZW50KSwgT3JnIHdpbGwgIgoiY2hhbmdlIHRoZSBkaXNwbGF5IHNvIHRoYXQgQHNh bXB7ZGVzY3JpcHRpb259IGlzIGRpc3BsYXllZCBpbnN0ZWFkIG9mIEBzYW1wIgoie1tbbGlua11b ZGVzY3JpcHRpb25dXX0gYW5kIEBzYW1we2xpbmt9IGlzIGRpc3BsYXllZCBpbnN0ZWFkIG9mIEBz YW1wIgoie1tbbGlua11dfS4gIFRvIGVkaXQgdGhlIGludmlzaWJsZSBAc2FtcHtsaW5rfSBwYXJ0 LCB1c2UgQGtiZHtDLWMgQy1sfSB3aXRoICIKInRoZSBjdXJzb3Igb24gdGhlIGxpbmsuIgptc2dz dHIgIiIKIlVuYSB2ZXogcXVlIHVuIGVubGFjZSBlbiBlbCBidWZmZXIgZXN0QCdhIGNvbXBsZXRv IChjb24gdG9kb3MgbG9zXG4iCiJjb3JjaGV0ZXMgcHJlc2VudGVzKSwgT3JnIGNhbWJpYXJAJ2Eg bGEgdmlzdGEgZGUgdGFsIG1hbmVyYSBxdWUgbGFcbiIKIkBzYW1we2Rlc2NyaXBjaUAnb259IHNl IG1vc3RyYXJAJ2EgZW4gdmV6IGRlXG4iCiJAc2FtcHtbW2VubGFjZV1bZGVzY3JpcGNpQCdvbl1d fSB5IEBzYW1we2VubGFjZX0gc2VyQCdhIG1vc3RyYWRvIGVuXG4iCiJ2ZXogZGUgQHNhbXB7W1tl bmxhY2VdXX0uIFBhcmEgZWRpdGFyIGxhIHBhcnRlIGludmlzaWJsZSBkZVxuIgoiQHNhbXB7ZW5s YWNlfSwgdXNlIEBrYmR7Qy1jIEMtbH0gY29uIGVsIGN1cnNvciBlbiBlbCBlbmxhY2UuIgoKIy4g dHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjczMQptc2dpZCAiIgoiSWYgdGhlIGxp bmsgZG9lcyBub3QgbG9vayBsaWtlIGEgVVJMLCBpdCBpcyBjb25zaWRlcmVkIHRvIGJlIGludGVy bmFsIGluIHRoZSAiCiJjdXJyZW50IGZpbGUuICBUaGUgbW9zdCBpbXBvcnRhbnQgY2FzZSBpcyBh IGxpbmsgbGlrZSBAc2FtcHtbWyNteS1jdXN0b20tIgoiaWRdXX0gd2hpY2ggd2lsbCBsaW5rIHRv IHRoZSBlbnRyeSB3aXRoIHRoZSBAY29kZXtDVVNUT01fSUR9IHByb3BlcnR5IEBzYW1wIgoie215 LWN1c3RvbS1pZH0uIgptc2dzdHIgIiIKIlNpIGVsIGVubGFjZSBubyBwYXJlY2UgdW5hIFVSTCwg cHVlZGUgc2VyIGRlYmlkbyBhIHF1ZSBlcyB1biBlbmxhY2VcbiIKImludGVybm8gZW4gZWwgZmlj aGVybyBhY3R1YWwuIEVsIGNhc28gbUAnYXMgaW1wb3J0YW50ZSBlbiB1biBlbmxhY2VcbiIKImNv bW8gQHNhbXB7W1sjbWktaWQtcGVyc29uYWxdXX0gcXVlIGVubGF6YXJAJ2EgYSBsYSBlbnRyYWRh IGNvbiBsYVxuIgoicHJvcGllZGFkIEBjb2Rle0NVU1RPTV9JRH0gY29tbyBAc2FtcHtbWyNtaS1p ZC1wZXJzb25hbF1dfS4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6NzM1 CiMsIGZ1enp5Cm1zZ2lkICIiCiJMaW5rcyBzdWNoIGFzIEBzYW1we1tbTXkgVGFyZ2V0XV19IG9y IEBzYW1we1tbTXkgVGFyZ2V0XVtGaW5kIG15IHRhcmdldF1dfSAiCiJsZWFkIHRvIGEgdGV4dCBz ZWFyY2ggaW4gdGhlIGN1cnJlbnQgZmlsZSBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgdGFyZ2V0IHdo aWNoICIKImxvb2tzIGxpa2UgQHNhbXB7PDxNeSBUYXJnZXQ+Pn0uIgptc2dzdHIgIiIKIkVubGFj ZXMgdGFsZXMgY29tbyBAc2FtcHtbW01pIE9iamV0aXZvXV19IG8gQHNhbXB7W1tNaVxuIgoiT2Jq ZXRpdm9dW0VuY3VlbnRyYSBtaSBvYmpldGl2b11dfSBjb25kdWNlIGEgdW5hIGJAJ3VzcXVlZGEg ZGUgdGV4dG9cbiIKImVuIGVsIGZpY2hlcm8gYWN0dWFsIHBhcmEgZWwgY29ycmVzcG9uZGllbnRl IG9iamV0aXZvIHNlIHBhcmV6Y2EgYVxuIgoiQHNhbXB7PDxNaSBvYmpldGl2bz4+fSIKCiMuIHR5 cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTo3NDQKbXNnaWQgIiIKIk9yZyBzdXBwb3J0 cyBsaW5rcyB0byBmaWxlcywgd2Vic2l0ZXMsIFVzZW5ldCBhbmQgZW1haWwgbWVzc2FnZXMsIEJC REIgIgoiZGF0YWJhc2UgZW50cmllcyBhbmQgbGlua3MgdG8gYm90aCBJUkMgY29udmVyc2F0aW9u cyBhbmQgdGhlaXIgbG9ncy4gICIKIkV4dGVybmFsIGxpbmtzIGFyZSBVUkwtbGlrZSBsb2NhdG9y cy4gIFRoZXkgc3RhcnQgd2l0aCBhIHNob3J0IGlkZW50aWZ5aW5nICIKInN0cmluZyBmb2xsb3dl ZCBieSBhIGNvbG9uLiAgVGhlcmUgY2FuIGJlIG5vIHNwYWNlIGFmdGVyIHRoZSBjb2xvbi4gIEhl cmUgIgoiYXJlIHNvbWUgZXhhbXBsZXM6Igptc2dzdHIgIiIKIk9yZyB0aWVuZSBzb3BvcnRlIHBh cmEgZW5sYWNlcyBhIGZpY2hlcm9zLCBzaXRpb3Mgd2ViLCBtZW5zYWplcyBkZVxuIgoiY29ycmVv IGVsZWN0ckAnb25pY28geSBkZSBOZXdzLCBlbnRyYWRhcyBkZSBiYXNlcyBkZSBkYXRvcyBCQkRC IHlcbiIKImVubGFjZXMgYSBjb252ZXJzYWNpb25lcyBkZSBJUkMgeSBzdXMgbG9ncy4gRW5sYWNl cyBleHRlcm5vcyBzb25cbiIKImlkZW50aWZpY2Fkb3JlcyB0aXBvIFVSTC4gRXN0b3MgZW1waWV6 YW4gY29uIHVuYSBicmV2ZSBjYWRlbmEgZGVcbiIKImlkZW50aWZpY2FjaUAnb24gc2VndWlkYSBw b3IgZG9zIHB1bnRvcy4gU2luIGVzcGFjaW8gZGVzcHVAJ2VzIGRlIGxvc1xuIgoiZG9zIHB1bnRv cy4gQXF1QCd7QGRvdGxlc3N7aX19IHNlIHByZXNlbnRhbiBhbGd1bm9zIGVqZW1wbG9zOiIKCiMu IHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjc2NAojLCBmdXp6eSwgbm8td3Jh cAptc2dpZCAiIgoiaHR0cDovL3d3dy5hc3Ryby51dmEubmwvfmRvbWluaWsgICAgICAgICAgQHJ7 b24gdGhlIHdlYn1cbiIKImZpbGU6L2hvbWUvZG9taW5pay9pbWFnZXMvanVwaXRlci5qcGcgICAg IEBye2ZpbGUsIGFic29sdXRlIHBhdGh9XG4iCiIvaG9tZS9kb21pbmlrL2ltYWdlcy9qdXBpdGVy LmpwZyAgICAgICAgICBAcntzYW1lIGFzIGFib3ZlfVxuIgoiZmlsZTpwYXBlcnMvbGFzdC5wZGYg ICAgICAgICAgICAgICAgICAgICAgQHJ7ZmlsZSwgcmVsYXRpdmUgcGF0aH1cbiIKImZpbGU6cHJv amVjdHMub3JnICAgICAgICAgICAgICAgICAgICAgICAgIEBye2Fub3RoZXIgT3JnIGZpbGV9XG4i CiJkb2N2aWV3OnBhcGVycy9sYXN0LnBkZjo6Tk5OICAgICAgICAgICAgICBAcntvcGVuIGZpbGUg aW4gZG9jLXZpZXcgbW9kZSBhdCBwYWdlIE5OTn1cbiIKImlkOkI3NDIzRjRELTJFOEEtNDcxQi04 ODEwLUM0MEYwNzQ3MTdFOSAgIEBye0xpbmsgdG8gaGVhZGluZyBieSBJRH1cbiIKIm5ld3M6Y29t cC5lbWFjcyAgICAgICAgICAgICAgICAgICAgICAgICAgIEBye1VzZW5ldCBsaW5rfVxuIgoibWFp bHRvOmFkZW50QEBnYWxheHkubmV0ICAgICAgICAgICAgICAgICAgIEBye01haWwgbGlua31cbiIK InZtOmZvbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBye1ZNIGZvbGRlciBs aW5rfVxuIgoidm06Zm9sZGVyI2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQHJ7Vk0g bWVzc2FnZSBsaW5rfVxuIgoid2w6Zm9sZGVyI2lkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQHJ7V0FOREVSTFVTVCBtZXNzYWdlIGxpbmt9XG4iCiJtaGU6Zm9sZGVyI2lkICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBAcntNSC1FIG1lc3NhZ2UgbGlua31cbiIKInJtYWlsOmZvbGRl ciNpZCAgICAgICAgICAgICAgICAgICAgICAgICAgIEBye1JNQUlMIG1lc3NhZ2UgbGlua31cbiIK ImdudXM6Z3JvdXAjaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBye0dudXMgYXJ0aWNs ZSBsaW5rfVxuIgoiYmJkYjpSLipTdGFsbG1hbiAgICAgICAgICAgICAgICAgICAgICAgICAgQHJ7 QkJEQiBsaW5rICh3aXRoIHJlZ2V4cCl9XG4iCiJpcmM6L2lyYy5jb20vI2VtYWNzL2JvYiAgICAg ICAgICAgICAgICAgICBAcntJUkMgbGlua31cbiIKImluZm86b3JnOkV4dGVybmFsJTIwbGlua3Mg ICAgICAgICAgICAgICAgIEBye0luZm8gbm9kZSBsaW5rICh3aXRoIGVuY29kZWQgc3BhY2UpfVxu Igptc2dzdHIgIiIKImh0dHA6Ly93d3cuYXN0cm8udXZhLm5sL35kb21pbmlrICAgICAgICAgIEBy e2VuIGxhIHdlYn1cbiIKImZpbGU6L2hvbWUvZG9taW5pay9pbWFnZXMvanVwaXRlci5qcGcgICAg IEBye2ZpY2hlcm8sIHJ1dGEgYWJzb2x1dGF9XG4iCiIvaG9tZS9kb21pbmlrL2ltYWdlcy9qdXBp dGVyLmpwZyAgICAgICAgICBAcntsbyBtaXNtbyBxdWUgYXJyaWJhfVxuIgoiZmlsZTpwYXBlcnMv bGFzdC5wZGYgICAgICAgICAgICAgICAgICAgICAgQHJ7ZmljaGVybywgcnV0YSByZWxhdGl2YX1c biIKImZpbGU6cHJvamVjdHMub3JnICAgICAgICAgICAgICAgICAgICAgICAgIEBye290cm8gZmlj aGVybyBvcmd9XG4iCiJkb2N2aWV3OnBhcGVycy9sYXN0LnBkZjo6Tk5OICAgICAgICAgICAgICBA cntmaWNoZXJvIGFiaWVydG8gZW4gbW9kbyBkb2MtdmlldyBlbiBsYSBwQCdhZ2luYSBOTk59XG4i CiJpZDpCNzQyM0Y0RC0yRThBLTQ3MUItODgxMC1DNDBGMDc0NzE3RTkgICBAcntFbmxhY2UgYSB1 biBpZGVudGlmaWNhZG9yfVxuIgoibmV3czpjb21wLmVtYWNzICAgICAgICAgICAgICAgICAgICAg ICAgICAgQHJ7RW5sYWNlIGEgdW4gZ3J1cG8gZGUgbmV3c31cbiIKIm1haWx0bzphZGVudEBAZ2Fs YXh5Lm5ldCAgICAgICAgICAgICAgICAgIEBye0VubGFjZSBkZSBDb3JyZW99XG4iCiJ2bTpmb2xk ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAcntFbmxhY2UgYSB1bmEgY2FycGV0 YSBkZSBWTX1cbiIKInZtOmZvbGRlciNpZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBy e0VubGFjZSBhIHVuIG1lbnNhamUgZGUgVk19XG4iCiJ3bDpmb2xkZXIjaWQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBAcntFbmxhY2UgYSB1biBtZW5zYWplIGRlIFdBTkRFUkxVU1R9XG4i CiJtaGU6Zm9sZGVyI2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAcntFbmxhY2UgYSB1 biBtZW5zYWplIGRlIE1ILUV9XG4iCiJybWFpbDpmb2xkZXIjaWQgICAgICAgICAgICAgICAgICAg ICAgICAgICBAcntFbmxhY2UgYSB1biBtZW5zYWplIGRlIFJNQUlMfVxuIgoiZ251czpncm91cCNp ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQHJ7RW5sYWNlIGEgdW4gbWVuc2FqZSBkZSBH TlVTfVxuIgoiYmJkYjpSLipTdGFsbG1hbiAgICAgICAgICAgICAgICAgICAgICAgICAgQHJ7ZW5s YWNlIGEgdW5hIGVudHJhZGEgZGUgQkJEQiAoY29uIGV4cHJlc2lAJ29uIHJlZ3VsYXIpfVxuIgoi aXJjOi9pcmMuY29tLyNlbWFjcy9ib2IgICAgICAgICAgICAgICAgICAgQHJ7ZW5sYWNlIGRlIElS Q31cbiIKImluZm86b3JnOkV4dGVybmFsJTIwbGlua3MgICAgICAgICAgICAgICAgIEBye0VubGFj ZSBhIHVuIG5vZG8gSW5mb1xuIgoiKGNvbiBlbCBlc3BhY2lvIGVuIGJsYWNvIGNvZGlmaWNhZG8p fVxuIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjc2OQptc2dpZCAiIgoi QSBsaW5rIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBkb3VibGUgYnJhY2tldHMgYW5kIG1heSBjb250 YWluIGEgZGVzY3JpcHRpdmUgIgoidGV4dCB0byBiZSBkaXNwbGF5ZWQgaW5zdGVhZCBvZiB0aGUg VVJMIChAcHhyZWZ7TGluayBmb3JtYXR9KSwgZm9yIGV4YW1wbGU6Igptc2dzdHIgIiIKIlVuIGVu bGFjZSBkZWJlIHNlciBlbmNlcnJhZG8gZW50cmUgY29yY2hldGVzIHkgcHVlZGUgdGVuZXIgdW4g dGV4dG9cbiIKImRlc2NyaXB0aXZvIHF1ZSBzZXJAJ2EgbW9zdHJhZG8gZW4gdmV6IGRlIGxhIFVS TCAoQHB4cmVme0Zvcm1hdG8gZGVcbiIKImVubGFjZX0pLCBwb3IgZWplbXBsbzoiCgojLiB0eXBl OiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUudGV4aTo3NzIKIywgZnV6enksIG5vLXdyYXAKbXNn aWQgIltbaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzL11bR05VIEVtYWNzXV1cbiIK bXNnc3RyICJbW2h0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy9dW0dOVSBFbWFjc11d XG4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6Nzc5CiMsIGZ1enp5Cm1z Z2lkICIiCiJJZiB0aGUgZGVzY3JpcHRpb24gaXMgYSBmaWxlIG5hbWUgb3IgVVJMIHRoYXQgcG9p bnRzIHRvIGFuIGltYWdlLCBIVE1MICIKImV4cG9ydCAoQHB4cmVme0hUTUwgZXhwb3J0fSkgd2ls bCBpbmxpbmUgdGhlIGltYWdlIGFzIGEgY2xpY2thYmxlIGJ1dHRvbi4gICIKIklmIHRoZXJlIGlz IG5vIGRlc2NyaXB0aW9uIGF0IGFsbCBhbmQgdGhlIGxpbmsgcG9pbnRzIHRvIGFuIGltYWdlLCB0 aGF0ICIKImltYWdlIHdpbGwgYmUgaW5saW5lZCBpbnRvIHRoZSBleHBvcnRlZCBIVE1MIGZpbGUu Igptc2dzdHIgIiIKIlNpIGxhIGRlc2NyaXBjaUAnb24gZXMgdW4gbm9tYnJlIGRlIGZpY2hlcm8g byBVUkwgcXVlIGFwdW50YSBhIHVuYVxuIgoiaW1hZ2VuLCBsYSBleHBvcnRhY2lAJ29uIEhUTUwg KEBweHJlZntIVE1MIGV4cG9ydH0pIGludHJvZHVjaXJAJ2EgbGFcbiIKImltYWdlbiBjb21vIHVu IGJvdEAnb24gYWwgcXVlIHNlIHB1ZWRlIGhhY2VyIGNsaWNrLiBTaSBubyBoYXlcbiIKImRlc2Ny aXBjaUAnb24geSBlbCBlbmxhY2UgYXB1bnRhIGEgdW5hIGltYWdlbiwgZXN0YSBpbWFnZW4gc2Vc biIKImluY3J1c3RhckAnYSBkZW50cm8gZGVsIGZpY2hlcm8gSFRNTCBleHBvcnRhZG8uIgoKIy4g dHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjc4NQptc2dpZCAiIgoiT3JnIHByb3Zp ZGVzIG1ldGhvZHMgdG8gY3JlYXRlIGEgbGluayBpbiB0aGUgY29ycmVjdCBzeW50YXgsIHRvIGlu c2VydCBpdCAiCiJpbnRvIGFuIE9yZyBmaWxlLCBhbmQgdG8gZm9sbG93IHRoZSBsaW5rLiIKbXNn c3RyICIiCiJPcmcgcHJvdmVlIG1AJ2V0b2RvcyBwYXJhIGNyZWFyIHVuIGVubGFjZSBjb24gbGEg c2ludGF4aXMgY29ycmVjdGEsXG4iCiJwYXJhIGluc2VydGFybG8gZW4gdW4gZmljaGVybyBPcmcs IHkgcG9kZXIgc2VndWlyIGVsIGVubGFjZS4iCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRl eGk6Nzg3CiMsIG5vLXdyYXAKbXNnaWQgIkMtYyBsIgptc2dzdHIgIkMtYyBsIgoKIy4gdHlwZTog dGFibGUKIzogb3JnZ3VpZGUudGV4aTo3OTMKbXNnaWQgIiIKIlN0b3JlIGEgbGluayB0byB0aGUg Y3VycmVudCBsb2NhdGlvbi4gIFRoaXMgaXMgYSBAZW1waHtnbG9iYWx9IGNvbW1hbmQgKHlvdSAi CiJtdXN0IGNyZWF0ZSB0aGUga2V5IGJpbmRpbmcgeW91cnNlbGYpIHdoaWNoIGNhbiBiZSB1c2Vk IGluIGFueSBidWZmZXIgdG8gIgoiY3JlYXRlIGEgbGluay4gIFRoZSBsaW5rIHdpbGwgYmUgc3Rv cmVkIGZvciBsYXRlciBpbnNlcnRpb24gaW50byBhbiBPcmcgIgoiYnVmZmVyIChzZWUgYmVsb3cp LiIKbXNnc3RyICIiCiJBbG1hY2VuYSB1biBlbmxhY2UgZGVzZGUgbGEgcG9zaWNpQCdvbiBhY3R1 YWwuIEAnRXN0ZSBlcyB1biBjb21hbmRvXG4iCiJAZW1waHtnbG9iYWx9IChkZWJlcyBjcmVhciBl bCBhdGFqbyBkZSB0ZWNsYWRvIHBvciB0QCd7QGRvdGxlc3N7aX19XG4iCiJtaXNtbykgZWwgY3Vh bCBwdWVkZSBzZXIgdXNhZG8gZW4gY3VhbHF1aWVyIGJ1ZmZlciBwYXJhIGNyZWFyIHVuXG4iCiJl bmxhY2UuIEVsIGVubGFjZSBzZXJAJ2EgYWxtYWNlbmFkbyBwYXJhIHBvc3RlcmlvcmVzIGluc2Vy Y2lvbmVzXG4iCiJkZW50cm8gZGUgdW4gYnVmZmVyIE9yZyAodmVyIG1AJ2FzIGFiYWpvKS4iCgoj LiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6NzkzCiMsIG5vLXdyYXAKbXNnaWQgIkMtYyBD LWwiCm1zZ3N0ciAiQy1jIEMtbCIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6ODAw Cm1zZ2lkICIiCiJJbnNlcnQgYSBsaW5rLiAgVGhpcyBwcm9tcHRzIGZvciBhIGxpbmsgdG8gYmUg aW5zZXJ0ZWQgaW50byB0aGUgYnVmZmVyLiAgWW91ICIKImNhbiBqdXN0IHR5cGUgYSBsaW5rLCBv ciB1c2UgaGlzdG9yeSBrZXlzIEBrZXl7dXB9IGFuZCBAa2V5e2Rvd259IHRvIGFjY2VzcyAiCiJz dG9yZWQgbGlua3MuICBZb3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgdGhlIGRlc2NyaXB0aW9uIHBh cnQgb2YgdGhlIGxpbmsuICAiCiJXaGVuIGNhbGxlZCB3aXRoIGEgQGtiZHtDLXV9IHByZWZpeCBh cmd1bWVudCwgZmlsZSBuYW1lIGNvbXBsZXRpb24gaXMgdXNlZCAiCiJ0byBsaW5rIHRvIGEgZmls ZS4iCm1zZ3N0ciAiIgoiSW5zZXJ0YSB1biBlbmxhY2UuIEVzdG8gc3VnaWVyZSB1biBlbmxhY2Ug cXVlIHNlckAnYSBpbnNlcnRhZG8gZGVudHJvXG4iCiJkZWwgYnVmZmVyLiBTZSBwdWVkZSBlc2Ny aWJpciB1biBlbmxhY2UsIG8gdXNhciBsYSB0ZWNsYXMgZGVsXG4iCiJoaXN0b3JpYWwgQGtleXth cnJpYmF9IHkgQGtleXthYmFqb30gcGFyYSBhY2NlZGVyIGEgbG9zIGVubGFjZXNcbiIKImFsbWFj ZW5hZG9zLiBUYW1iaUAnZW4gc2VyQCdhIGNvbnN1bHRhZG8gcG9yIGxhIHBhcnRlIGRlIGRlc2Ny aXBjaUAnb25cbiIKImRlbCBlbmxhY2UuIEN1YW5kbyBlcyBsbGFtYWRvIGNvbiBlbCBwcmVmaWpv IEBrYmR7Qy11fSwgc2UgdXNhIGVsXG4iCiJhdXRvY29tcGxldGFkbyBkZWwgbm9tYnJlIGRlbCBm aWNoZXJvIHBhcmEgZW5sYXphciBhIHVuIGZpY2hlcm8uIgoKIy4gdHlwZTogaXRlbQojOiBvcmdn dWlkZS50ZXhpOjgwMAojLCBuby13cmFwCm1zZ2lkICJDLWMgQy1sIEByeyh3aXRoIGN1cnNvciBv biBleGlzdGluZyBsaW5rKX0iCm1zZ3N0ciAiQy1jIEMtbCBAcnsoY29uIGVsIGN1cnNvciBlbiB1 biBlbmxhY2UgZXhpc3RlbnRlKX0iCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjgw NAptc2dpZCAiIgoiV2hlbiB0aGUgY3Vyc29yIGlzIG9uIGFuIGV4aXN0aW5nIGxpbmssIEBrYmR7 Qy1jIEMtbH0gYWxsb3dzIHlvdSB0byBlZGl0IHRoZSAiCiJsaW5rIGFuZCBkZXNjcmlwdGlvbiBw YXJ0cyBvZiB0aGUgbGluay4iCm1zZ3N0ciAiIgoiQ3VhbmRvIGVsIGN1cnNvciBlc3RAJ2EgZW4g ZW5sYWNlIGV4aXN0ZW50ZSwgQGtiZHtDLWMgQy1sfSBwZXJtaXRlXG4iCiJlZGl0YXIgZWwgZW5s YWNlIHkgbGFzIHBhcnRlcyBkZSBkZXNjcmlwY2lAJ29uIGRlbCBlbmxhY2UuIgoKIy4gdHlwZTog aXRlbQojOiBvcmdndWlkZS50ZXhpOjgwNAojLCBuby13cmFwCm1zZ2lkICJDLWMgQy1vIEBye29y fSBtb3VzZS0xIEBye29yfSBtb3VzZS0yIgptc2dzdHIgIkMtYyBDLW8gQHJ7b30gbW91c2UtMSBA cntvfSBtb3VzZS0yIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aTo4MDYKbXNnaWQg Ik9wZW4gbGluayBhdCBwb2ludC4iCm1zZ3N0ciAiQWJyZSBlbCBlbmxhY2UgZW4gZWwgcXVlIGVz dEAnYSBlbCBjdXJzb3IuIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjgwNgojLCBu by13cmFwCm1zZ2lkICJDLWMgJiIKbXNnc3RyICJDLWMgJiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9y Z2d1aWRlLnRleGk6ODEyCm1zZ2lkICIiCiJKdW1wIGJhY2sgdG8gYSByZWNvcmRlZCBwb3NpdGlv bi4gIEEgcG9zaXRpb24gaXMgcmVjb3JkZWQgYnkgdGhlIGNvbW1hbmRzICIKImZvbGxvd2luZyBp bnRlcm5hbCBsaW5rcywgYW5kIGJ5IEBrYmR7Qy1jICV9LiAgVXNpbmcgdGhpcyBjb21tYW5kIHNl dmVyYWwgIgoidGltZXMgaW4gZGlyZWN0IHN1Y2Nlc3Npb24gbW92ZXMgdGhyb3VnaCBhIHJpbmcg b2YgcHJldmlvdXNseSByZWNvcmRlZCAiCiJwb3NpdGlvbnMuIgptc2dzdHIgIiIKIlNhbHRhIGEg dW5hIHBvc2ljaUAnb24gZ3JhYmFkYS4gVW5hIHBvc2ljaUAnb24gZXMgZ3JhYmFkYSBwb3IgbG9z XG4iCiJzaWd1aWVudGVzIGNvbWFuZG9zIGRlIGVubGFjZXMgaW50ZXJub3MsIHkgcG9yIEBrYmR7 Qy1jICV9LiBVc2FuZG9cbiIKImVzdGUgY29tYW5kbyB2YXJpYXMgdmVjZXMgc2UgbXVldmUgYSB0 cmF2QCdlcyBkZSB1biBhbmlsbG8gZGVcbiIKInBvc2ljaW9uZXMgcHJldmlhbWVudGUgZ3JhYmFk YXMgZW4gdW5hIHN1Y2VzaUAnb24gZGlyZWN0YS4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9y Z2d1aWRlLnRleGk6ODIwCm1zZ2lkICIiCiJGaWxlIGxpbmtzIGNhbiBjb250YWluIGFkZGl0aW9u YWwgaW5mb3JtYXRpb24gdG8gbWFrZSBFbWFjcyBqdW1wIHRvIGEgIgoicGFydGljdWxhciBsb2Nh dGlvbiBpbiB0aGUgZmlsZSB3aGVuIGZvbGxvd2luZyBhIGxpbmsuICBUaGlzIGNhbiBiZSBhIGxp bmUgIgoibnVtYmVyIG9yIGEgc2VhcmNoIG9wdGlvbiBhZnRlciBhIGRvdWJsZSBjb2xvbi4iCm1z Z3N0ciAiIgoiTG9zIGVubGFjZXMgZGUgZmljaGVyb3MgcHVlZGVuIGNvbnRlbmVyIGluZm9ybWFj aUAnb24gYWRpY2lvbmFsIHBhcmFcbiIKImhhY2VyIHF1ZSBFbWFjcyBzYWx0ZSBhIHVuYSBwb3Np Y2lAJ29uIHBhcnRpY3VsYXIgZW4gZWwgZmljaGVybyBjdWFuZG9cbiIKInNlIHNpZ3VlIHVuIGVu bGFjZS4gRXN0byBwdWVkZSBzZXIgdW4gbkAndW1lcm8gZGUgbEAne0Bkb3RsZXNze2l9fW5lYVxu IgoibyB1bmEgb3BjaUAnb24gZGUgYkAndXNxdWVkYSBkZXNwdUAnZXMgZGUgZG9zIHB1bnRvcyBk b2JsZXMuIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjgyMwptc2dpZCAi IgoiSGVyZSBpcyB0aGUgc3ludGF4IG9mIHRoZSBkaWZmZXJlbnQgd2F5cyB0byBhdHRhY2ggYSBz ZWFyY2ggdG8gYSBmaWxlIGxpbmssICIKInRvZ2V0aGVyIHdpdGggYW4gZXhwbGFuYXRpb246Igpt c2dzdHIgIiIKIkFxdUAne0Bkb3RsZXNze2l9fSBlc3RAJ2EgbGEgc2ludGF4aXMgZGUgbG9zIGRp ZmVyZW50ZXMgY2FtaW5vcyBwYXJhXG4iCiJhZGp1bnRhciB1bmEgYkAndXNxdWVkYSBhIHVuIGVu bGFjZSBkZSBmaWNoZXJvLCBqdW50byBjb24gdW5hIGV4cGxpY2FjaUAnb246IgoKIy4gdHlwZTog c21hbGxleGFtcGxlCiM6IG9yZ2d1aWRlLnRleGk6ODI4CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lk ICIiCiJbW2ZpbGU6fi9jb2RlL21haW4uYzo6MjU1XV0gICAgICAgICAgICAgICAgIEBye0ZpbmQg bGluZSAyNTV9XG4iCiJbW2ZpbGU6fi94eC5vcmc6Ok15IFRhcmdldF1dICAgICAgICAgICAgICAg IEBye0ZpbmQgQHNhbXB7PDxNeSBUYXJnZXQ+Pn19XG4iCiJbW2ZpbGU6fi94eC5vcmc6OiNteS1j dXN0b20taWRdXSAgICAgICAgICAgIEBye0ZpbmQgZW50cnkgd2l0aCBjdXN0b20gaWR9XG4iCm1z Z3N0ciAiIgoiW1tmaWxlOn4vY29kZS9tYWluLmM6OjI1NV1dICAgICAgICAgICAgICAgICBAcntF bmNvbnRyYXIgbEAne0Bkb3RsZXNze2l9fW5lYSAyNTV9XG4iCiJbW2ZpbGU6fi94eC5vcmc6Ok1p IE9iamV0aXZvXV0gICAgICAgICAgICAgIEBye0VuY29udHJhciBAc2FtcHs8PE1pIE9iamV0aXZv Pj59fVxuIgoiW1tmaWxlOn4veHgub3JnOjojbWktaWQtcGVyc29uYWxdXSAgICAgICAgICBAcntF bmNvbnRyYXIgZW50cmFkYSBjb25cbiIKImlkIHBlcnNvbmFsfVxuIgoKIy4gdHlwZTogUGxhaW4g dGV4dAojOiBvcmdndWlkZS50ZXhpOjgzMwptc2dpZCAiIgoiQHNlZWFsc297IEB1cmVme2h0dHA6 Ly9vcmdtb2RlLm9yZy9tYW51YWwvSHlwZXJsaW5rcy5odG1sI0h5cGVybGlua3MsICIKIkNoYXB0 ZXIgNCBvZiB0aGUgbWFudWFsfX0iCm1zZ3N0ciAiIgoiQHNlZWFsc297IEB1cmVme2h0dHA6Ly9v cmdtb2RlLm9yZy9tYW51YWwvSHlwZXJsaW5rcy5odG1sI0h5cGVybGlua3MsXG4iCiJDYXBAJ3tA ZG90bGVzc3tpfX10dWxvIDQgZGVsIG1hbnVhbH19IgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBv cmdndWlkZS50ZXhpOjg0NAptc2dpZCAiIgoiT3JnIG1vZGUgZG9lcyBub3QgbWFpbnRhaW4gVE9E TyBsaXN0cyBhcyBzZXBhcmF0ZSBkb2N1bWVudHNAZm9vdG5vdGV7T2YgIgoiY291cnNlLCB5b3Ug Y2FuIG1ha2UgYSBkb2N1bWVudCB0aGF0IGNvbnRhaW5zIG9ubHkgbG9uZyBsaXN0cyBvZiBUT0RP IGl0ZW1zLCAiCiJidXQgdGhpcyBpcyBub3QgcmVxdWlyZWQufS4gIEluc3RlYWQsIFRPRE8gaXRl bXMgYXJlIGFuIGludGVncmFsIHBhcnQgb2YgdGhlICIKIm5vdGVzIGZpbGUsIGJlY2F1c2UgVE9E TyBpdGVtcyB1c3VhbGx5IGNvbWUgdXAgd2hpbGUgdGFraW5nIG5vdGVzISBXaXRoIE9yZyAiCiJt b2RlLCBzaW1wbHkgbWFyayBhbnkgZW50cnkgaW4gYSB0cmVlIGFzIGJlaW5nIGEgVE9ETyBpdGVt LiAgSW4gdGhpcyB3YXksICIKImluZm9ybWF0aW9uIGlzIG5vdCBkdXBsaWNhdGVkLCBhbmQgdGhl IGVudGlyZSBjb250ZXh0IGZyb20gd2hpY2ggdGhlIFRPRE8gIgoiaXRlbSBlbWVyZ2VkIGlzIGFs d2F5cyBwcmVzZW50LiIKbXNnc3RyICIiCiJFbCBtb2RvIE9yZyBubyBtYW50aWVuZSBsaXN0YXMg VE9ETyAodGFyZWFzIHBvciBoYWNlcikgY29tbyBkb2N1bWVudG9zXG4iCiJzZXBhcmFkb3NAZm9v dG5vdGV7RGUgYWN1ZXJkbywgcHVlZGUgY3JlYXIgdW4gZG9jdW1lbnRvIHF1ZSBjb250ZW5nYVxu Igoic29sbyBsYXJnYXMgbGlzdGFzIGRlIEAne0Bkb3RsZXNze2l9fXRlbXMgVE9ETywgcGVybyBl c3RvIG5vIHNlXG4iCiJyZXF1aWVyZS59LiBFbiB2ZXogZGUgZXNvLCBsb3MgQCd7QGRvdGxlc3N7 aX19dGVtcyBUT0RPIHNvbiB1bmEgcGFydGVcbiIKImludGVncmFsIGRlIGxvcyBmaWNoZXJvcyBk ZSBub3RhcywgcG9ycXVlIMKhbG9zIEAne0Bkb3RsZXNze2l9fXRlbXMgVE9ET1xuIgoibm9ybWFs bWVudGUgYXBhcmVjZW4gbWllbnRyYXMgdG9tYXMgbm90YXMhLiBEZSBlc3RlIG1vZG8sIGxhXG4i CiJpbmZvcm1hY2lAJ29uIG5vIGVzdEAnYSBkdXBsaWNhZGEsIHkgZWwgY29udGV4dG8gZW50ZXJv IGRlc2RlIGVsIHF1ZVxuIgoiZWwgQCd7QGRvdGxlc3N7aX19dGVtIFRPRE8gZW1lcmdpQCdvIGVz dEAnYSBzaWVtcHJlIHByZXNlbnRlLiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUu dGV4aTo4NDgKbXNnaWQgIiIKIk9mIGNvdXJzZSwgdGhpcyB0ZWNobmlxdWUgZm9yIG1hbmFnaW5n IFRPRE8gaXRlbXMgc2NhdHRlcnMgdGhlbSB0aHJvdWdob3V0ICIKInlvdXIgbm90ZXMgZmlsZS4g IE9yZyBtb2RlIGNvbXBlbnNhdGVzIGZvciB0aGlzIGJ5IHByb3ZpZGluZyBtZXRob2RzIHRvIGdp dmUgIgoieW91IGFuIG92ZXJ2aWV3IG9mIGFsbCB0aGUgdGhpbmdzIHRoYXQgeW91IGhhdmUgdG8g ZG8uIgptc2dzdHIgIiIKIkRlIGFjdWVyZG8sIGVzdGEgdEAnZWNuaWNhIHNpcnZlIHBhcmEgZ2Vz dGlvbmFyIEAne0Bkb3RsZXNze2l9fXRlbXNcbiIKIlRPRE8gZXNwYXJjaWRvcyBhIHRyYXZAJ2Vz IGRlIHR1IGZpY2hlcm8gZGUgbm90YXMuIE9yZyBtb2RlIGNvbXBlbnNhXG4iCiJlc3RvIHByb3Zl eWVuZG8gbUAnZXRvZG9zIHBhcmEgZGFydGUgdW5hIHZpc2lAJ29uIGRlIGFsdG8gbml2ZWwgZGVc biIKInRvZGFzIGxhcyBjb3NhcyBxdWUgdHUgdGllbmVzIHF1ZSBoYWNlci4iCgojLiB0eXBlOiBQ bGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6ODYzCm1zZ2lkICIiCiJBbnkgaGVhZGxpbmUgYmVj b21lcyBhIFRPRE8gaXRlbSB3aGVuIGl0IHN0YXJ0cyB3aXRoIHRoZSB3b3JkIEBzYW1we1RPRE99 LCAiCiJmb3IgZXhhbXBsZToiCm1zZ3N0ciAiIgoiQ3VhbHF1aWVyIHRAJ3tAZG90bGVzc3tpfX10 dWxvIG8gc3VidEAne0Bkb3RsZXNze2l9fXR1bG8gcHVlZGUgbGxlZ2FyXG4iCiJhIHNlciB1biBA J3tAZG90bGVzc3tpfX10ZW0gVE9ETyBjdWFuZG8gZW1waWV6YSBjb24gbGEgcGFsYWJyYVxuIgoi QHNhbXB7VE9ET30sIHBvciBlamVtcGxvOiIKCiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdn dWlkZS50ZXhpOjg2NgojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiKioqIFRPRE8gV3JpdGUgbGV0 dGVyIHRvIFNhbSBGb3J0dW5lXG4iCm1zZ3N0ciAiKioqIFRPRE8gRXNjcmliaXIgY2FydGEgYSBs YSBDYWJhQH5uYSBkZWwgVEAne0Bkb3RsZXNze2l9fW8gU2FtLlxuIgoKIy4gdHlwZTogUGxhaW4g dGV4dAojOiBvcmdndWlkZS50ZXhpOjg3MAojLCBmdXp6eQptc2dpZCAiVGhlIG1vc3QgaW1wb3J0 YW50IGNvbW1hbmRzIHRvIHdvcmsgd2l0aCBUT0RPIGVudHJpZXMgYXJlOiIKbXNnc3RyICJMb3Mg Y29tYW5kb3MgbUAnYXMgaW1wb3J0YW50ZXMgcGFyYSB0cmFiYWphciBjb24gZW50cmFkYXMgVE9E TyBzb246IgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjg3MgojLCBuby13cmFwCm1z Z2lkICJDLWMgQy10Igptc2dzdHIgIkMtYyBDLXQiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlk ZS50ZXhpOjg3NAojLCBmdXp6eQptc2dpZCAiUm90YXRlIHRoZSBUT0RPIHN0YXRlIG9mIHRoZSBj dXJyZW50IGl0ZW0gYW1vbmciCm1zZ3N0ciAiUm90YXIgZWwgZXN0YWRvIFRPRE8gZGVsIEAne0Bk b3RsZXNze2l9fXRlbSBhY3R1YWwiCgojLiB0eXBlOiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUu dGV4aTo4NzgKIywgZnV6enksIG5vLXdyYXAKbXNnaWQgIiIKIiwtPiAodW5tYXJrZWQpIC0+IFRP RE8gLT4gRE9ORSAtLS5cbiIKIictLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSdcbiIK bXNnc3RyICIiCiIsLT4gKG5vIG1hcmNhZG8pIC0+IFRPRE8gLT4gRE9ORSAtLS5cbiIKIictLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJ1xuIgoKIy4gdHlwZTogdGFibGUKIzogb3Jn Z3VpZGUudGV4aTo4ODIKbXNnaWQgIiIKIlRoZSBzYW1lIHJvdGF0aW9uIGNhbiBhbHNvIGJlIGRv bmUgYGByZW1vdGVseScnIGZyb20gdGhlIHRpbWVsaW5lIGFuZCBhZ2VuZGEgIgoiYnVmZmVycyB3 aXRoIHRoZSBAa2Jke3R9IGNvbW1hbmQga2V5IChAcHhyZWZ7QWdlbmRhIGNvbW1hbmRzfSkuIgpt c2dzdHIgIiIKIkxhIG1pc21hIHJvdGFjaUAnb24gcHVlZGUgdGFtYmlAJ2VuIHNlciBoZWNoYSBg YGRlIG1hbmVyYSByZW1vdGEnJ1xuIgoiZGVzZGUgbG9zIGJ1ZmZlcnMgZGUgYWdlbmRhIHkgbEAn e0Bkb3RsZXNze2l9fW5lYSBkZSB0aWVtcG8gY29uIGxhXG4iCiJ0ZWNsYSBAa2Jke3R9IChAcHhy ZWZ7Q29tYW5kb3MgZGUgbGEgYWdlbmRhfSkuIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50 ZXhpOjg4MwojLCBuby13cmFwCm1zZ2lkICJTLUBrZXl7cmlnaHR9QHJ7L31Aa2V5e2xlZnR9Igpt c2dzdHIgIlMtQGtleXtkZXJlY2hhfUByey99QGtleXtpenF1aWVyZGF9IgoKIy4gdHlwZTogdGFi bGUKIzogb3JnZ3VpZGUudGV4aTo4ODUKbXNnaWQgIlNlbGVjdCB0aGUgZm9sbG93aW5nL3ByZWNl ZGluZyBUT0RPIHN0YXRlLCBzaW1pbGFyIHRvIGN5Y2xpbmcuIgptc2dzdHIgIlNlbGVjY2lvbmFy IGVsIHNpZ3VpZW50ZS9wcmVjZWRlbnRlIGVzdGFkbyBUT0RPLCBzaW1pbGFyIGEgcm90YXIuIgoK Iy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjg4NQojLCBuby13cmFwCm1zZ2lkICJDLWMg LyB0Igptc2dzdHIgIkMtYyAvIHQiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjg4 OQptc2dpZCAiIgoiVmlldyBUT0RPIGl0ZW1zIGluIGEgQGVtcGh7c3BhcnNlIHRyZWV9IChAcHhy ZWZ7U3BhcnNlIHRyZWVzfSkuICBGb2xkcyB0aGUgIgoiYnVmZmVyLCBidXQgc2hvd3MgYWxsIFRP RE8gaXRlbXMgYW5kIHRoZSBoZWFkaW5ncyBoaWVyYXJjaHkgYWJvdmUgdGhlbS4iCm1zZ3N0ciAi IgoiVmVyIEAne0Bkb3RsZXNze2l9fXRlbXMgVE9ETyBlbiB1biBAZW1waHtAJ2FyYm9sIHBvY28g ZGVuc299XG4iCiIoQHB4cmVme0AnQXJib2xlcyBwb2NvIGRlbnNvc30pLiBFbmNvZ2UgZWwgYnVm ZmVyLCBwZXJvIG11ZXN0cmEgdG9kb3NcbiIKImxvcyBAJ3tAZG90bGVzc3tpfX10ZW1zIHkgbGEg amVyYXJxdUAne0Bkb3RsZXNze2l9fWEgZGVcbiIKInRAJ3tAZG90bGVzc3tpfX10dWxvcyB5IHN1 YnRAJ3tAZG90bGVzc3tpfX10dWxvcyBwb3IgZW5jaW1hIGRlIGVsbG9zLiIKCiMuIHR5cGU6IGl0 ZW0KIzogb3JnZ3VpZGUudGV4aTo4ODkgb3JnZ3VpZGUudGV4aToxNzk0CiMsIG5vLXdyYXAKbXNn aWQgIkMtYyBhIHQiCm1zZ3N0ciAiQy1jIGEgdCIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRl LnRleGk6ODkzCiMsIGZ1enp5Cm1zZ2lkICIiCiJTaG93IHRoZSBnbG9iYWwgVE9ETyBsaXN0LiAg Q29sbGVjdHMgdGhlIFRPRE8gaXRlbXMgZnJvbSBhbGwgYWdlbmRhIGZpbGVzICIKIihAcHhyZWZ7 QWdlbmRhIFZpZXdzfSkgaW50byBhIHNpbmdsZSBidWZmZXIuICBAeHJlZntHbG9iYWwgVE9ETyBs aXN0fSwgZm9yICIKIm1vcmUgaW5mb3JtYXRpb24uIgptc2dzdHIgIiIKIk11ZXN0cmEgbGEgbGlz dGEgZ2xvYmFsIFRPRE8uIEVzdGEgY29sZWNjaUAnb24gZGUgaXRlbXMgVE9ETyBkZSB0b2Rvc1xu IgoibG9zIGFyY2hpdm9zIGRlIGxhIGFnZW5kYSAoQHB4cmVme1Zpc3RhcyBkZSBsYSBBZ2VuZGF9 KSBlbiB1biBAJ3VuaWNvXG4iCiJidWZmZXIuIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50 ZXhpOjg5MwojLCBuby13cmFwCm1zZ2lkICJTLU0tQGtleXtSRVR9Igptc2dzdHIgIlMtTS1Aa2V5 e1JFVH0iCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjg5NQptc2dpZCAiSW5zZXJ0 IGEgbmV3IFRPRE8gZW50cnkgYmVsb3cgdGhlIGN1cnJlbnQgb25lLiIKbXNnc3RyICJJbnNlcnRh IHVuYSBudWV2YSBlbnRyYWRhIFRPRE8gZGViYWpvIGRlbCBAJ3tAZG90bGVzc3tpfX10ZW0gYWN0 dWFsLiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTo5MDAKIywgZnV6enkK bXNnaWQgIiIKIkNoYW5naW5nIGEgVE9ETyBzdGF0ZSBjYW4gYWxzbyB0cmlnZ2VyIHRhZyBjaGFu Z2VzLiAgU2VlIHRoZSBkb2NzdHJpbmcgb2YgIgoidGhlIG9wdGlvbiBAY29kZXtvcmctdG9kby1z dGF0ZS10YWdzLXRyaWdnZXJzfSBmb3IgZGV0YWlscy4iCm1zZ3N0ciAiIgoiQWwgY2FtYmlhciBl bCBlc3RhZG8gZGUgdW4gQCd7QGRvdGxlc3N7aX19dGVtIFRPRE8gc2UgcHVlZGUgdGFtYmlAJ2Vu XG4iCiJhY3RpdmFyIGNhbWJpb3MgZGUgZXRpcXVldGEuIFZlciBlbCBkb2NzdHJpbmcgZGUgbGEg b3BjaUAnb25cbiIKIkBjb2Rle29yZy10b2RvLXN0YXRlLXRhZ3MtdHJpZ2dlcnN9IHBhcmEgbUAn YXMgZGV0YWxsZXMuIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjkwNgpt c2dpZCAiIgoiWW91IGNhbiB1c2UgVE9ETyBrZXl3b3JkcyB0byBpbmRpY2F0ZSBkaWZmZXJlbnQg QGVtcGh7c2VxdWVudGlhbH0gc3RhdGVzIGluICIKInRoZSBwcm9jZXNzIG9mIHdvcmtpbmcgb24g YW4gaXRlbSwgZm9yIGV4YW1wbGU6Igptc2dzdHIgIiIKIlNlIHB1ZWRlbiB1c2FyIHBhbGFicmFz IHJlc2VydmFkYXMgVE9ETyBwYXJhIGluZGljYXIgZGlmZXJlbnRlc1xuIgoiZXN0YWRvcyBAZW1w aHtzZWN1ZW5jaWFsZXN9IGVuIGVsIHByb2Nlc28gZGUgdHJhYmFqbyBjb24gcmVzcGVjdG8gYSB1 blxuIgoiQCd7QGRvdGxlc3N7aX19dGVtLCBwb3IgZWplbXBsbzoiCgojLiB0eXBlOiBzbWFsbGxp c3AKIzogb3JnZ3VpZGUudGV4aTo5MTAKIywgZnV6enksIG5vLXdyYXAKbXNnaWQgIiIKIihzZXRx IG9yZy10b2RvLWtleXdvcmRzXG4iCiIgICcoKHNlcXVlbmNlIFwiVE9ET1wiIFwiRkVFREJBQ0tc IiBcIlZFUklGWVwiIFwifFwiIFwiRE9ORVwiIFwiREVMRUdBVEVEXCIpKSlcbiIKbXNnc3RyICIi CiIoc2V0cSBvcmctdG9kby1rZXl3b3Jkc1xuIgoiICAnKChzZXF1ZW5jZSBcIlRPRE9cIiBcIkZF RURCQUNLXCIgXCJWRVJJRllcIiBcInxcIiBcIkRPTkVcIiBcIkRFTEVHQVRFRFwiKSkpXG4iCgoj LiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6OTE4Cm1zZ2lkICIiCiJUaGUgdmVy dGljYWwgYmFyIHNlcGFyYXRlcyB0aGUgVE9ETyBrZXl3b3JkcyAoc3RhdGVzIHRoYXQgQGVtcGh7 bmVlZCAiCiJhY3Rpb259KSBmcm9tIHRoZSBET05FIHN0YXRlcyAod2hpY2ggbmVlZCBAZW1waHtu byBmdXJ0aGVyIGFjdGlvbn0pLiAgSWYgeW91ICIKImRvbid0IHByb3ZpZGUgdGhlIHNlcGFyYXRv ciBiYXIsIHRoZSBsYXN0IHN0YXRlIGlzIHVzZWQgYXMgdGhlIERPTkUgc3RhdGUuICAiCiJXaXRo IHRoaXMgc2V0dXAsIHRoZSBjb21tYW5kIEBrYmR7Qy1jIEMtdH0gd2lsbCBjeWNsZSBhbiBlbnRy eSBmcm9tIFRPRE8gdG8gIgoiRkVFREJBQ0ssIHRoZW4gdG8gVkVSSUZZLCBhbmQgZmluYWxseSB0 byBET05FIGFuZCBERUxFR0FURUQuIgptc2dzdHIgIiIKIkxhIGJhcnJhIHZlcnRpY2FsIHNlcGFy YSBsYXMgcGFsYWJyYXMgcmVzZXJ2YWRhcyBUT0RPIChlc3RhZG9zIHF1ZVxuIgoiQGVtcGh7bmVj ZXNpdGFuIGFjY2lAJ29ufSkgZGUgbG9zIGVzdGFkb3MgRE9ORSAocmVhbGl6YWRvcywgcXVlXG4i CiJAZW1waHtubyBuZWNlc2l0YW4gbUAnYXMgYWNjaUAnb259KS4gU2kgbm8gc2UgcHJvcG9yY2lv bmEgbGEgYmFycmFcbiIKInNlcGFyYWRvcmEsIGVsIEAndWx0aW1vIGVzdGFkbyBlcyB1c2FkbyBj b21vIGVzdGFkbyBET05FLiBDb24gZXN0YVxuIgoiY29uZmlndXJhY2lAJ29uLCBlbCBjb21hbmRv IEBrYmR7Qy1jIEMtdH0gcm90YXJAJ2EgdW5hIGVudHJhZGEgZGVzZGVcbiIKIlRPRE8gYSBGRUVE QkFDSywgZGVzcHVAJ2VzIGEgVkVSSUZZIHkgZmluYWxtZW50ZSBhIERPTkUgeSBERUxFR0FURUQu IgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjkyNQptc2dpZCAiIgoiU29t ZXRpbWVzIHlvdSBtYXkgd2FudCB0byB1c2UgZGlmZmVyZW50IHNldHMgb2YgVE9ETyBrZXl3b3Jk cyBpbiBwYXJhbGxlbC4gICIKIkZvciBleGFtcGxlLCB5b3UgbWF5IHdhbnQgdG8gaGF2ZSB0aGUg YmFzaWMgQGNvZGV7VE9ET30vQGNvZGV7RE9ORX0sIGJ1dCAiCiJhbHNvIGEgd29ya2Zsb3cgZm9y IGJ1ZyBmaXhpbmcsIGFuZCBhIHNlcGFyYXRlIHN0YXRlIGluZGljYXRpbmcgdGhhdCBhbiBpdGVt ICIKImhhcyBiZWVuIGNhbmNlbGVkIChzbyBpdCBpcyBub3QgRE9ORSwgYnV0IGFsc28gZG9lcyBu b3QgcmVxdWlyZSBhY3Rpb24pLiAgIgoiWW91ciBzZXR1cCB3b3VsZCB0aGVuIGxvb2sgbGlrZSB0 aGlzOiIKbXNnc3RyICIiCiJBbGd1bmFzIHZlY2VzIHNlIHB1ZWRlIHF1ZXJlciB1c2FyIGRpZmVy ZW50ZXMgY29uZmlndXJhY2lvbmVzIGRlXG4iCiJwYWxhYnJhcyByZXNlcnZhZGFzIFRPRE8gZW4g cGFyYWxlbG8uIFBvciBlamVtcGxvLCBzZSBwdWVkZSBxdWVyZXJcbiIKInRlbmVyIGVsIGJAJ2Fz aWNvIEBjb2Rle1RPRE99L0Bjb2Rle0RPTkV9LCBwZXJvIHRhbWJpQCdlbiB1biBmbHVqbyBkZVxu IgoidHJhYmFqbyBwYXJhIGxhIGNvcnJlY2NpQCdvbiBkZSBlcnJvcmVzLCB5IHVuIGVzdGFkbyBz ZXBhcmFuZG8gZWxcbiIKImVzdGFkbyBxdWUgaW5kaWNhIHF1ZSB1biBAJ3tAZG90bGVzc3tpfX10 ZW0gaGEgc2lkbyBjYW5jZWxhZG9cbiIKIihhc0Ane0Bkb3RsZXNze2l9fSBubyBlc3RAJ2EgRE9O RSwgcGVybyB0YW1wb2NvIHJlcXVpZXJlIGFjY2lAJ29uKS4gTGFcbiIKImNvbmZpZ3VyYWNpQCdv biBzZXJAJ3tAZG90bGVzc3tpfX1hIGxhIHNpZ3VpZW50ZToiCgojLiB0eXBlOiBzbWFsbGxpc3AK Izogb3JnZ3VpZGUudGV4aTo5MzEKIywgZnV6enksIG5vLXdyYXAKbXNnaWQgIiIKIihzZXRxIG9y Zy10b2RvLWtleXdvcmRzXG4iCiIgICAgICAnKChzZXF1ZW5jZSBcIlRPRE8odClcIiBcInxcIiBc IkRPTkUoZClcIilcbiIKIiAgICAgICAgKHNlcXVlbmNlIFwiUkVQT1JUKHIpXCIgXCJCVUcoYilc IiBcIktOT1dOQ0FVU0UoaylcIiBcInxcIiBcIkZJWEVEKGYpXCIpXG4iCiIgICAgICAgIChzZXF1 ZW5jZSBcInxcIiBcIkNBTkNFTEVEKGMpXCIpKSlcbiIKbXNnc3RyICIiCiIoc2V0cSBvcmctdG9k by1rZXl3b3Jkc1xuIgoiICAgICAgJygoc2VxdWVuY2UgXCJUT0RPKHQpXCIgXCJ8XCIgXCJET05F KGQpXCIpXG4iCiIgICAgICAgIChzZXF1ZW5jZSBcIlJFUE9SVChyKVwiIFwiQlVHKGIpXCIgXCJL Tk9XTkNBVVNFKGspXCIgXCJ8XCIgXCJGSVhFRChmKVwiKVxuIgoiICAgICAgICAoc2VxdWVuY2Ug XCJ8XCIgXCJDQU5DRUxFRChjKVwiKSkpXG4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1 aWRlLnRleGk6OTM4Cm1zZ2lkICIiCiJUaGUga2V5d29yZHMgc2hvdWxkIGFsbCBiZSBkaWZmZXJl bnQsIHRoaXMgaGVscHMgT3JnIG1vZGUgdG8ga2VlcCB0cmFjayBvZiAiCiJ3aGljaCBzdWJzZXF1 ZW5jZSBzaG91bGQgYmUgdXNlZCBmb3IgYSBnaXZlbiBlbnRyeS4gIFRoZSBleGFtcGxlIGFsc28g c2hvd3MgIgoiaG93IHRvIGRlZmluZSBrZXlzIGZvciBmYXN0IGFjY2VzcyBvZiBhIHBhcnRpY3Vs YXIgc3RhdGUsIGJ5IGFkZGluZyBhIGxldHRlciAiCiJpbiBwYXJlbnRoZXNpcyBhZnRlciBlYWNo IGtleXdvcmQgLSB5b3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgdGhlIGtleSBhZnRlciAiCiJAa2Jk e0MtYyBDLXR9LiIKbXNnc3RyICIiCiJMYXMgcGFsYWJyYXMgcmVzZXJ2YWRhcyBzb24gdG9kYXMg ZGlmZXJlbnRlcywgZXN0byBheXVkYSBhIE9yZyBtb2RlIGFcbiIKImd1YXJkYXIgbGEgdHJhemEg ZGUgcXVlIHN1YnNlY3VlbmNpYSBkZWJlckAne0Bkb3RsZXNze2l9fWEgc2VyIHVzYWRhXG4iCiJw YXJhIHVuYSBlbnRyYWRhIGRhZGEuIEVsIGVqZW1wbG8gdGFtYmlAJ2VuIG11ZXN0cmEgY0Anb21v IGRlZmluaXJcbiIKInRlY2xhcyBwYXJhIHVuIHJAJ2FwaWRvIGFjY2VzbyBhIHVuIGVzdGFkbyBw YXJ0aWN1bGFyLCBhQH5uYWRpZW5kbyB1bmFcbiIKImxldHJhIGVudHJlIHBhckAnZW50ZXNpcyBk ZXNwdUAnZXMgZGUgY2FkYSBwYWxhYnJhIHJlc2VydmFkYSAtIHNlXG4iCiJwcmVndW50YXJAJ2Eg cG9yIGxhIGxldHJhIGRlc3B1QCdlcyBkZSBAa2Jke0MtYyBDLXR9LiIKCiMuIHR5cGU6IFBsYWlu IHRleHQKIzogb3JnZ3VpZGUudGV4aTo5NDEKbXNnaWQgIiIKIlRvIGRlZmluZSBUT0RPIGtleXdv cmRzIHRoYXQgYXJlIHZhbGlkIG9ubHkgaW4gYSBzaW5nbGUgZmlsZSwgdXNlIHRoZSAiCiJmb2xs b3dpbmcgdGV4dCBhbnl3aGVyZSBpbiB0aGUgZmlsZS4iCm1zZ3N0ciAiIgoiUGFyYSBkZWZpbmly IHBhbGFicmFzIHJlc2VydmFkYXMgVE9ETyBxdWUgc29uIHZAJ2FsaWRhcyBAJ3VuaWNhbWVudGVc biIKImVuIHVuIHNvbG8gZmljaGVybywgdXNlIGVsIHNpZ3VpZW50ZSB0ZXh0byBlbiBjdWFscXVp ZXIgbHVnYXIgZGVsXG4iCiJmaWNoZXJvLiIKCiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdn dWlkZS50ZXhpOjk0NgojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiIgoiIytUT0RPOiBUT0RPKHQp IHwgRE9ORShkKVxuIgoiIytUT0RPOiBSRVBPUlQocikgQlVHKGIpIEtOT1dOQ0FVU0UoaykgfCBG SVhFRChmKVxuIgoiIytUT0RPOiB8IENBTkNFTEVEKGMpXG4iCm1zZ3N0ciAiIgoiIytUT0RPOiBU T0RPKHQpIHwgRE9ORShkKVxuIgoiIytUT0RPOiBSRVBPUlQocikgQlVHKGIpIEtOT1dOQ0FVU0Uo aykgfCBGSVhFRChmKVxuIgoiIytUT0RPOiB8IENBTkNFTEVEKGMpXG4iCgojLiB0eXBlOiBQbGFp biB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6OTUwCm1zZ2lkICIiCiJBZnRlciBjaGFuZ2luZyBvbmUg b2YgdGhlc2UgbGluZXMsIHVzZSBAa2Jke0MtYyBDLWN9IHdpdGggdGhlIGN1cnNvciBzdGlsbCAi CiJpbiB0aGUgbGluZSB0byBtYWtlIHRoZSBjaGFuZ2VzIGtub3duIHRvIE9yZyBtb2RlLiIKbXNn c3RyICIiCiJEZXNwdUAnZXMgZGUgY2FtYmlhciB1bmEgZGUgZXN0YXMgbEAne0Bkb3RsZXNze2l9 fW5lYXMsIHVzZSBAa2Jke0MtY1xuIgoiQy1jfSBjb24gZWwgY3Vyc29yIHRvZGF2QCd7QGRvdGxl c3N7aX19YSBlbiBsYSBsQCd7QGRvdGxlc3N7aX19bmVhXG4iCiJwYXJhIHF1ZSBPcmcgbW9kZSBy ZWNvbm96Y2EgbG9zIGNhbWJpb3MuIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50 ZXhpOjk2MAptc2dpZCAiIgoiT3JnIG1vZGUgY2FuIGF1dG9tYXRpY2FsbHkgcmVjb3JkIGEgdGlt ZXN0YW1wIGFuZCBwb3NzaWJseSBhIG5vdGUgd2hlbiB5b3UgIgoibWFyayBhIFRPRE8gaXRlbSBh cyBET05FLCBvciBldmVuIGVhY2ggdGltZSB5b3UgY2hhbmdlIHRoZSBzdGF0ZSBvZiBhIFRPRE8g IgoiaXRlbS4gIFRoaXMgc3lzdGVtIGlzIGhpZ2hseSBjb25maWd1cmFibGUsIHNldHRpbmdzIGNh biBiZSBvbiBhIHBlci1rZXl3b3JkICIKImJhc2lzIGFuZCBjYW4gYmUgbG9jYWxpemVkIHRvIGEg ZmlsZSBvciBldmVuIGEgc3VidHJlZS4gIEZvciBpbmZvcm1hdGlvbiBvbiAiCiJob3cgdG8gY2xv Y2sgd29ya2luZyB0aW1lIGZvciBhIHRhc2ssIHNlZSBAcmVme0Nsb2NraW5nIHdvcmsgdGltZX0u Igptc2dzdHIgIiIKIk9yZyBtb2RlIHB1ZWRlIGdyYWJhciBhdXRvbUAnYXRpY2FtZW50ZSB1biB0 aW1lc3RhbXAgeSBwb3NpYmxlbWVudGVcbiIKInVuYSBub3RhIGN1YW5kbyBzZSBtYXJjYSB1biBA J3tAZG90bGVzc3tpfX10ZW0gVE9ETyBjb21vIERPTkUsIEAnb1xuIgoiaW5jbHVzbyBjYWRhIHZl eiBxdWUgc2UgY2FtYmlhIGVsIGVzdGFkbyBkZSB1biBAJ3tAZG90bGVzc3tpfX10ZW1cbiIKIlRP RE8uIEVzdGUgc2lzdGVtYSBlcyBhbHRhbWVudGUgY29uZmlndXJhYmxlLCBsYXMgY29uZmlndXJh Y2lvbmVzXG4iCiJwdWVkZW4gc2VndWlyIHVuYSBsQCdvZ2ljYSBwb3IgdGVjbGEgeSBwdWVkZW4g YWZlY3RhciBhIHVuIGZpY2hlcm8gb1xuIgoiaW5jbHVzbyBhIHVuIHN1YkAnYXJib2wuIFBhcmEg bUAnYXMgaW5mb3JtYWNpQCdvbiBkZSBjQCdvbW8gZmlqYXJcbiIKImZlY2hhIHkgaG9yYSBkZSB1 bmEgdGFyZWFzLCBsZWEgQHJlZntFc3RhYmxlY2llbmRvIHRpZW1wbyBkZSB0cmFiYWpvfS4iCgoj LiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6OTcyCm1zZ2lkICIiCiJUaGUgbW9z dCBiYXNpYyBsb2dnaW5nIGlzIHRvIGtlZXAgdHJhY2sgb2YgQGVtcGh7d2hlbn0gYSBjZXJ0YWlu IFRPRE8gaXRlbSAiCiJ3YXMgZmluaXNoZWQuICBUaGlzIGlzIGFjaGlldmVkIHdpdGhAZm9vdG5v dGV7VGhlIGNvcnJlc3BvbmRpbmcgaW4tYnVmZmVyICIKInNldHRpbmcgaXM6IEBjb2RleyMrU1RB UlRVUDogbG9nZG9uZX19LiIKbXNnc3RyICIiCiJFbCByZWdpc3RybyBtQCdhcyBiQCdhc2ljbyBl cyBndWFyZGFyIEBlbXBoe2N1YW5kb30gdW5cbiIKIkAne0Bkb3RsZXNze2l9fXRlbSBUT0RPIHNl IGZpbmFsaXpAJ28uIEVzdG8gc2UgbG9ncmEgY29uQGZvb3Rub3Rle0xhXG4iCiJjb3JyZXNwb25k aWVudGUgY29uZmlndXJhY2lAJ29uIGVuIGVsIGJ1ZmZlciBlcyBAY29kZXsjK1NUQVJUVVA6XG4i CiJsb2dkb25lfX0uIgoKIy4gdHlwZTogc21hbGxsaXNwCiM6IG9yZ2d1aWRlLnRleGk6OTc1CiMs IGZ1enp5LCBuby13cmFwCm1zZ2lkICIoc2V0cSBvcmctbG9nLWRvbmUgJ3RpbWUpXG4iCm1zZ3N0 ciAiKHNldHEgb3JnLWxvZy1kb25lICd0aW1lKVxuIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBv cmdndWlkZS50ZXhpOjk4MwojLCBmdXp6eQptc2dpZCAiIgoiVGhlbiBlYWNoIHRpbWUgeW91IHR1 cm4gYW4gZW50cnkgZnJvbSBhIFRPRE8gKG5vdC1kb25lKSBzdGF0ZSBpbnRvIGFueSBvZiAiCiJ0 aGUgRE9ORSBzdGF0ZXMsIGEgbGluZSBAc2FtcHtDTE9TRUQ6IFt0aW1lc3RhbXBdfSB3aWxsIGJl IGluc2VydGVkIGp1c3QgIgoiYWZ0ZXIgdGhlIGhlYWRsaW5lLiAgSWYgeW91IHdhbnQgdG8gcmVj b3JkIGEgbm90ZSBhbG9uZyB3aXRoIHRoZSB0aW1lc3RhbXAsICIKInVzZUBmb290bm90ZXtUaGUg Y29ycmVzcG9uZGluZyBpbi1idWZmZXIgc2V0dGluZyBpczogQGNvZGV7IytTVEFSVFVQOiAiCiJs b2dub3RlZG9uZX19Igptc2dzdHIgIiIKIkFzQCd7QGRvdGxlc3N7aX19LCBjYWRhIHZleiBxdWUg c2UgY2FtYmlhIHVuYSBlbnRyYWRhIGRlc2RlIHVuIGVzdGFkb1xuIgoiVE9ETyAobm8gRE9ORSkg YSBjdWFscXVpZXJhIGRlIGxvcyBlc3RhZG9zIERPTkUsIHVuYVxuIgoibEAne0Bkb3RsZXNze2l9 fW5lYSBAc2FtcHtDTE9TRUQ6IFt0aW1lc3RhbXBdfSBzZXJAJ2EgaW5zZXJ0YWRhIGp1c3RvXG4i CiJkZXNwdUAnZXMgZGUgbGEgY2FiZWNlcmEuIFNpIHF1aWVyZXMgZ3JhYmFyIHVuYSBub3RhIGNv biB1bmEgbWFyY2EgZGVcbiIKInRpZW1wbyAodGltZXN0YW1wKSB1c2FAZm9vdG5vdGV7TGEgY29y cmVzcG9uZGllbnRlIGNvbmZpZ3VyYWNpQCdvbiBlblxuIgoiZWwgYnVmZmVyIGVzOiBAY29kZXsj K1NUQVJUVVA6IGxvZ25vdGVkb25lfX0gIgoKIy4gdHlwZTogc21hbGxsaXNwCiM6IG9yZ2d1aWRl LnRleGk6OTg2CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICIoc2V0cSBvcmctbG9nLWRvbmUgJ25v dGUpXG4iCm1zZ3N0ciAiKHNldHEgb3JnLWxvZy1kb25lICdub3RlKVxuIgoKIy4gdHlwZTogUGxh aW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjk5MQojLCBmdXp6eQptc2dpZCAiIgoiWW91IHdpbGwg dGhlbiBiZSBwcm9tcHRlZCBmb3IgYSBub3RlLCBhbmQgdGhhdCBub3RlIHdpbGwgYmUgc3RvcmVk IGJlbG93IHRoZSAiCiJlbnRyeSB3aXRoIGEgQHNhbXB7Q2xvc2luZyBOb3RlfSBoZWFkaW5nLiIK bXNnc3RyICIiCiJFbnRvbmNlcywgc2UgcHJlZ3VudGFyQCdhIHBvciBsYSBub3RhLCB5IGxhIG5v dGEgc2VyQCdhIGFsbWFjZW5hZGFcbiIKImRlYmFqbyBkZSBsYSBlbnRyYWRhIGNvbiB1bmEgY2Fi ZXJjZXJhIEBzYW1we0Nsb3NpbmcgTm90ZX0gKENlcnJhbmRvIE5vdGEpLiIKCiMuIHR5cGU6IFBs YWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxMDAwCm1zZ2lkICIiCiJZb3UgbWlnaHQgd2FudCB0 byBrZWVwIHRyYWNrIG9mIFRPRE8gc3RhdGUgY2hhbmdlcy4gIFlvdSBjYW4gZWl0aGVyIHJlY29y ZCAiCiJqdXN0IGEgdGltZXN0YW1wLCBvciBhIHRpbWUtc3RhbXBlZCBub3RlIGZvciBhIGNoYW5n ZS4gIFRoZXNlIHJlY29yZHMgd2lsbCAiCiJiZSBpbnNlcnRlZCBhZnRlciB0aGUgaGVhZGxpbmUg YXMgYW4gaXRlbWl6ZWQgbGlzdC4gIFdoZW4gdGFraW5nIGEgbG90IG9mICIKIm5vdGVzLCB5b3Ug bWlnaHQgd2FudCB0byBnZXQgdGhlIG5vdGVzIG91dCBvZiB0aGUgd2F5IGludG8gYSBkcmF3ZXIu ICAiCiJDdXN0b21pemUgdGhlIHZhcmlhYmxlIEBjb2Rle29yZy1sb2ctaW50by1kcmF3ZXJ9IHRv IGdldCB0aGlzIGJlaGF2aW9yLiIKbXNnc3RyICIiCiJTZSBwb2RyQCd7QGRvdGxlc3N7aX19YSBx dWVyZXIgZ3VhcmRhciBsYSB0cmF6YSBkZSBjYW1iaW9zIGRlIGVzdGFkb1xuIgoiVE9ETy4gU2Ug cHVlZGUgbyBiaWVuIHJlZ2lzdHJhciBzb2xvIHVuYSBtYXJjYSBkZSB0aWVtcG8gKHRpbWVzdGFt cCksXG4iCiJvIGJpZW4gdW5hIG5vdGEgY29uIHVuYSBlc3RhbXBhIGRlIHRpZW1wbyBwYXJhIHVu IGNhbWJpby4gRXN0b3NcbiIKInJlZ2lzdHJvcyBzZXJAJ2FuIGluc2VydGFkb3MgZGVzcHVAJ2Vz IGRlIGxhIGNhYmVjZXJhIGNvbW8gdW5hIGxpc3RhXG4iCiJkZSBAJ3tAZG90bGVzc3tpfX10ZW1z LiBDdWFuZG8gc2UgdG9tYW4gdW4gbW9udEAnb24gZGUgbm90YXMsIHNlXG4iCiJwb2RyQCd7QGRv dGxlc3N7aX19YSBxdWVyZXIgdGVuZXIgbGFzIG5vdGFzIGZ1ZXJhIGRlIGxhIHZpc3RhIGRlbnRy b1xuIgoiZGUgdW4gXCJAaXtjYWpAJ29ufVwiIChkcmF3ZXIpXG4iCiJAc2VlYWxzb3tAdXJlZnto dHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvbWFudWFsL2h0bWxfbm9kZS9vcmcvIgoi RHJhd2Vycy5odG1sI0RyYXdlcnMsXG4iCiJEcmF3ZXJzIGVuIGVsIENhcEAne0Bkb3RsZXNze2l9 fXR1bG8gMiBkZWwgbWFudWFsfX0iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRl eGk6MTAwNAojLCBmdXp6eQptc2dpZCAiIgoiRm9yIHN0YXRlIGxvZ2dpbmcsIE9yZyBtb2RlIGV4 cGVjdHMgY29uZmlndXJhdGlvbiBvbiBhIHBlci1rZXl3b3JkIGJhc2lzLiAgIgoiVGhpcyBpcyBh Y2hpZXZlZCBieSBhZGRpbmcgc3BlY2lhbCBtYXJrZXJzIEBzYW1weyF9IChmb3IgYSB0aW1lc3Rh bXApIGFuZCAiCiJAc2FtcHtAQH0gKGZvciBhIG5vdGUpIGluIHBhcmVudGhlc2VzIGFmdGVyIGVh Y2gga2V5d29yZC4gIEZvciBleGFtcGxlOiIKbXNnc3RyICIiCiJQYXJhIGVsIHJlZ2lzdHJvIGRl IGVzdGFkb3MsIE9yZyBtb2RlIGNvbmZAJ3tAZG90bGVzc3tpfX1hIGVuIHVuYVxuIgoiY29uZmln dXJhY2lAJ29uIGJhc2FkYSBlbiBwYWxhYnJhcyByZXNlcnZhZGFzLiBFc3RvIHNlIGxvZ3JhXG4i CiJhQH5uYWRpZW5kbyBtYXJjYXMgZXNwZWNpYWxlcyBAc2FtcHshfSAocGFyYSB1bmEgbWFyY2Eg ZGUgdGllbXBvKSB5XG4iCiJAc2FtcHtAQH0gKHBhcmEgdW5hIG5vdGEpIGVudHJlIHBhckAnZW50 ZXNpcyBkZXNwdUAnZXMgZGUgY2FkYSBwYWxhYnJhXG4iCiJyZXNlcnZhZGEuIFBvciBlamVtcGxv OiIKCiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjEwMDYKIywgbm8td3Jh cAptc2dpZCAiIytUT0RPOiBUT0RPKHQpIFdBSVQod0BALyEpIHwgRE9ORShkISkgQ0FOQ0VMRUQo Y0BAKVxuIgptc2dzdHIgIiMrVE9ETzogVE9ETyh0KSBXQUlUKHdAQC8hKSB8IERPTkUoZCEpIENB TkNFTEVEKGNAQClcbiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxMDEy CiMsIGZ1enp5Cm1zZ2lkICIiCiJ3aWxsIGRlZmluZSBUT0RPIGtleXdvcmRzIGFuZCBmYXN0IGFj Y2VzcyBrZXlzLCBhbmQgYWxzbyByZXF1ZXN0IHRoYXQgYSB0aW1lICIKImlzIHJlY29yZGVkIHdo ZW4gdGhlIGVudHJ5IGlzIHNldCB0byBET05FLCBhbmQgdGhhdCBhIG5vdGUgaXMgcmVjb3JkZWQg d2hlbiAiCiJzd2l0Y2hpbmcgdG8gV0FJVCBvciBDQU5DRUxFRC4gIFRoZSBzYW1lIHN5bnRheCB3 b3JrcyBhbHNvIHdoZW4gc2V0dGluZyBAY29kZSIKIntvcmctdG9kby1rZXl3b3Jkc30uIgptc2dz dHIgIiIKImRlZmluZSBsYXMgcGFsYWJyYXMgcmVzZXJ2YWRhcyBUT0RPIHkgZWwgYWNjZXNvIGEg bG9zIGF0YWpvcyBkZVxuIgoidGVjbGFkbywgeSB0YW1iaUAnZW4gc29saWNpdGEgcXVlIHNlIGdy YWJlIGVsIG1vbWVudG8gZW4gZWwgcXVlIGxhXG4iCiJlbnRyYWRhIHNlIGVzdGFibGVjaUAnbyBj b21vIERPTkUsIHkgcXVlIHVuYSBub3RhIGVzIGdyYWJhZGEgY3VhbmRvIHNlXG4iCiJjYW1iaWUg YSBXQUlUIG8gQ0FOQ0VMRUQuIExhIG1pc21hIHNpbnRheGlzIGZ1bmNpb25hIHRhbWJpQCdlbiBj dWFuZG9cbiIKInNlIGRlZmluZSBAY29kZXtvcmctdG9kby1rZXl3b3Jkc30uIgoKIy4gdHlwZTog UGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjEwMTkKbXNnaWQgIiIKIklmIHlvdSB1c2UgT3Jn IG1vZGUgZXh0ZW5zaXZlbHksIHlvdSBtYXkgZW5kIHVwIHdpdGggZW5vdWdoIFRPRE8gaXRlbXMg dGhhdCAiCiJpdCBzdGFydHMgdG8gbWFrZSBzZW5zZSB0byBwcmlvcml0aXplIHRoZW0uICBQcmlv cml0aXppbmcgY2FuIGJlIGRvbmUgYnkgIgoicGxhY2luZyBhIEBlbXBoe3ByaW9yaXR5IGNvb2tp ZX0gaW50byB0aGUgaGVhZGxpbmUgb2YgYSBUT0RPIGl0ZW0sIGxpa2UgdGhpcyIKbXNnc3RyICIi CiJTaSB1c2EgT3JnIG1vZGUgaW50ZW5zYW1lbnRlLCBwdWVkZSBhY2FiYXIgY29uIHN1ZmljaWVu dGVzXG4iCiJAJ3tAZG90bGVzc3tpfX10ZW1zIFRPRE8gcXVlIGVtcGllY2UgYSB0ZW5lciBzZW50 aWRvXG4iCiJwcmlvcml6YXJsb3MuIFByaW9yaXphciBwdWVkZSBzZXIgaGVjaG8gcG9uaWVuZG8g dW5hIEBlbXBoe21hcmNhIGRlXG4iCiJwcmlvcmlkYWR9IGVuIGxhIGNhYmVjZXJhIGRlIHVuIEAn e0Bkb3RsZXNze2l9fXRlbSBUT0RPLCBjb21vIGVzdGEiCgojLiB0eXBlOiBzbWFsbGV4YW1wbGUK Izogb3JnZ3VpZGUudGV4aToxMDIyCiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICIqKiogVE9ETyBb I0FdIFdyaXRlIGxldHRlciB0byBTYW0gRm9ydHVuZVxuIgptc2dzdHIgIioqKiBUT0RPIFsjQV0g RXNjcmliaXIgY2FydGEgYSBTYW50YSBGb3J0dW5hIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBv cmdndWlkZS50ZXhpOjEwMjgKIywgZnV6enkKbXNnaWQgIiIKIk9yZyBtb2RlIHN1cHBvcnRzIHRo cmVlIHByaW9yaXRpZXM6IEBzYW1we0F9LCBAc2FtcHtCfSwgYW5kIEBzYW1we0N9LiAgQHNhbXAi CiJ7QX0gaXMgdGhlIGhpZ2hlc3QsIEBzYW1we0J9IHRoZSBkZWZhdWx0IGlmIG5vbmUgaXMgZ2l2 ZW4uICBQcmlvcml0aWVzIG1ha2UgIgoiYSBkaWZmZXJlbmNlIG9ubHkgaW4gdGhlIGFnZW5kYS4i Cm1zZ3N0ciAiIgoiT3JnIG1vZGUgc29wb3J0YSB0cmVzIHByaW9yaWRhZGVzOiBAc2FtcHtBfSwg QHNhbXB7Qn0sXG4iCiJAc2FtcHtDfS4gQHNhbXB7QX0gZXMgbGEgbUAnYXMgYWx0YSwgcG9yIGRl ZmVjdG8gc2VyQCdhIEBzYW1we0J9IHNpXG4iCiJuaW5ndW5hIGVzIGRhZGEuIExhcyBwcmlvcmlk YWRlcyBtYXJjYW4gZGlmZXJlbmNpYSBzQCdvbG8gZW4gbGFcbiIKImFnZW5kYS4iCgojLiB0eXBl OiBrYmR7IzF9CiM6IG9yZ2d1aWRlLnRleGk6MTAzMAojLCBuby13cmFwCm1zZ2lkICJDLWMgLCIK bXNnc3RyICJDLWMgLCIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTAzNAojLCBm dXp6eQptc2dpZCAiIgoiU2V0IHRoZSBwcmlvcml0eSBvZiB0aGUgY3VycmVudCBoZWFkbGluZS4g IFByZXNzIEBzYW1we0F9LCBAc2FtcHtCfSBvciBAc2FtcCIKIntDfSB0byBzZWxlY3QgYSBwcmlv cml0eSwgb3IgQGtleXtTUEN9IHRvIHJlbW92ZSB0aGUgY29va2llLiIKbXNnc3RyICIiCiJQb25l IHVuYSBwcmlvcmlkYWQgYSBsYSBhY3R1YWwgY2FiZWNlcmEuIFByZXNpb25hbmRvIEBzYW1we0F9 LFxuIgoiQHNhbXB7Qn0gbyBAc2FtcHtDfSBzZSBzZWxlY2Npb25hIGxhIHByaW9yaWRhZCwgbyBA a2V5e1NQQ30gcGFyYVxuIgoiZWxpbWluYXIgbGEgbWFyY2EuIgoKIy4gdHlwZTogaXRlbQojOiBv cmdndWlkZS50ZXhpOjEwMzQKIywgbm8td3JhcAptc2dpZCAiUy1Aa2V5e3VwfSIKbXNnc3RyICJT LUBrZXl7dXB9IgoKIy4gdHlwZTogaXRlbXgKIzogb3JnZ3VpZGUudGV4aToxMDM1CiMsIG5vLXdy YXAKbXNnaWQgIlMtQGtleXtkb3dufSIKbXNnc3RyICJTLUBrZXl7ZG93bn0iCgojLiB0eXBlOiB0 YWJsZQojOiBvcmdndWlkZS50ZXhpOjEwMzcKbXNnaWQgIkluY3JlYXNlL2RlY3JlYXNlIHByaW9y aXR5IG9mIGN1cnJlbnQgaGVhZGxpbmUiCm1zZ3N0ciAiSW5jcmVtZW50ZS9kZWNyZW1lbnRhIGxh IHByaW9yaWRhZCBkZSBsYSBjYWJlY2VyYSBhY3R1YWwiCgojLiB0eXBlOiBzZWN0aW9uCiM6IG9y Z2d1aWRlLnRleGk6MTA0MAojLCBuby13cmFwCm1zZ2lkICJCcmVha2luZyB0YXNrcyBkb3duIGlu dG8gc3VidGFza3MiCm1zZ3N0ciAiUGFydGllbmRvIHRhcmVhcyBlbiBzdWJ0YXJlYXMiCgojLiB0 eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MTA0OQptc2dpZCAiIgoiSXQgaXMgb2Z0 ZW4gYWR2aXNhYmxlIHRvIGJyZWFrIGRvd24gbGFyZ2UgdGFza3MgaW50byBzbWFsbGVyLCBtYW5h Z2VhYmxlICIKInN1YnRhc2tzLiAgWW91IGNhbiBkbyB0aGlzIGJ5IGNyZWF0aW5nIGFuIG91dGxp bmUgdHJlZSBiZWxvdyBhIFRPRE8gaXRlbSwgIgoid2l0aCBkZXRhaWxlZCBzdWJ0YXNrcyBvbiB0 aGUgdHJlZS4gIFRvIGtlZXAgdGhlIG92ZXJ2aWV3IG92ZXIgdGhlIGZyYWN0aW9uICIKIm9mIHN1 YnRhc2tzIHRoYXQgYXJlIGFscmVhZHkgY29tcGxldGVkLCBpbnNlcnQgZWl0aGVyIEBzYW1we1sv XX0gb3IgQHNhbXAiCiJ7WyVdfSBhbnl3aGVyZSBpbiB0aGUgaGVhZGxpbmUuICBUaGVzZSBjb29r aWVzIHdpbGwgYmUgdXBkYXRlZCBlYWNoIHRpbWUgdGhlICIKIlRPRE8gc3RhdHVzIG9mIGEgY2hp bGQgY2hhbmdlcywgb3Igd2hlbiBwcmVzc2luZyBAa2Jke0MtYyBDLWN9IG9uIHRoZSAiCiJjb29r aWUuICBGb3IgZXhhbXBsZToiCm1zZ3N0ciAiIgoiRXMgYSBtZW51ZG8gdmVudGFqb3NvIGRpdmlk aXIgZ3JhbmRlcyB0YXJlYXMgZW4gcGVxdWVAfm5hcyB5XG4iCiJtYW5lamFibGVzIHN1YnRhcmVh cy4gUHVlZGUgcmVhbGl6YXIgZXN0byBjcmVhbmRvIHVuIEAnYXJib2wgZGVcbiIKIm91dGxpbmUg YmFqbyB1biBpdGVtIFRPRE8sIGVsIGN1YWwgZGV0YWxsYSBsYXMgc3VidGFyZWFzIGVuIGVsXG4i CiJAJ2FyYm9sLiBQYXJhIHBvbmVyIGxhIHZpc3RhIHNvYnJlIGxhIGZyYWNjaUAnb24gZGUgc3Vi dGFyZWFzIHF1ZVxuIgoiZXN0QCdhbiB5YSBjb21wbGV0YWRhcywgaW5zZXJ0ZSB1biBAc2FtcHtb L119IG8gQHNhbXB7WyVdfSBlblxuIgoiY3VhbHF1aWVyIGx1Z2FyIGRlIGxhIGNhYmVjZXJhLiBF c3RhcyBtYXJjYXMgc2VyQCdhbiBhY3R1YWxpemFkYXMgY2FkYVxuIgoidmV6IHF1ZSBlbCBlc3Rh ZG8gVE9ETyBkZSBhbGdAJ3VuIGhpam8gY2FtYmllLCBvIHByZXNpb25hbmRvIEBrYmR7Qy1jXG4i CiJDLWN9IGVuIGxhIG1hcmNhLiBQb3IgZWplbXBsbzoiCgojLiB0eXBlOiBzbWFsbGV4YW1wbGUK Izogb3JnZ3VpZGUudGV4aToxMDU3CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICIiCiIqIE9yZ2Fu aXplIFBhcnR5IFszMyVdXG4iCiIqKiBUT0RPIENhbGwgcGVvcGxlIFsxLzJdXG4iCiIqKiogVE9E TyBQZXRlclxuIgoiKioqIERPTkUgU2FyYWhcbiIKIioqIFRPRE8gQnV5IGZvb2RcbiIKIioqIERP TkUgVGFsayB0byBuZWlnaGJvclxuIgptc2dzdHIgIiIKIiogT3JnYW5pemFyIEZpZXN0YSBbMzMl XVxuIgoiKiogVE9ETyBMbGFtYXIgYSBsYSBnZW50ZSBbMS8yXVxuIgoiKioqIFRPRE8gUGVkcm9c biIKIioqKiBET05FIFNhcmFcbiIKIioqIFRPRE8gQ29tcHJhciBjb21pZGFcbiIKIioqIERPTkUg SGFibGFyIGNvbiBlbCB2ZWNpbm8iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRl eGk6MTA2Nwptc2dpZCAiIgoiRXZlcnkgaXRlbSBpbiBhIHBsYWluIGxpc3QgKEBweHJlZntQbGFp biBsaXN0c30pIGNhbiBiZSBtYWRlIGludG8gYSBjaGVja2JveCAiCiJieSBzdGFydGluZyBpdCB3 aXRoIHRoZSBzdHJpbmcgQHNhbXB7WyBdfS4gIENoZWNrYm94ZXMgYXJlIG5vdCBpbmNsdWRlZCBp bnRvICIKInRoZSBnbG9iYWwgVE9ETyBsaXN0LCBzbyB0aGV5IGFyZSBvZnRlbiBncmVhdCB0byBz cGxpdCBhIHRhc2sgaW50byBhIG51bWJlciAiCiJvZiBzaW1wbGUgc3RlcHMuICBIZXJlIGlzIGFu IGV4YW1wbGUgb2YgYSBjaGVja2JveCBsaXN0LiIKbXNnc3RyICIiCiJDYWRhIGl0ZW0gZW4gdW5h IGxpc3RhIHBsYW5hIChAcHhyZWZ7TGlzdGFzIHBsYW5hc30pIHB1ZWRlIHNlciB1blxuIgoiY3Vh ZHJvIGRlIGNoZXF1ZW8gY29tZW56YW5kbyBjb24gbGEgY2FkZW5hIEBzYW1we1tdfS4gTG9zIGN1 YWRyb3MgZGVcbiIKImNoZXF1ZW8gbm9zIGVzdEAnYW4gaW5jbHVpZG9zIGVuIGxhIGxpc3RhIFRP RE8gZ2xvYmFsLFxuIgoiYXNAJ3tAZG90bGVzc3tpfX0gYSBtZW51ZG8gZXMgcHJlZmVyaWJsZSBk aXZpZGlyIGxhIHRhcmVhIGVuIHVuXG4iCiJuQCd1bWVybyByZWR1Y2lkbyBkZSBwYXNvcy4iCgoj LiB0eXBlOiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUudGV4aToxMDc1CiMsIGZ1enp5LCBuby13 cmFwCm1zZ2lkICIiCiIqIFRPRE8gT3JnYW5pemUgcGFydHkgWzEvM11cbiIKIiAgLSBbLV0gY2Fs bCBwZW9wbGUgWzEvMl1cbiIKIiAgICAtIFsgXSBQZXRlclxuIgoiICAgIC0gW1hdIFNhcmFoXG4i CiIgIC0gW1hdIG9yZGVyIGZvb2RcbiIKIiAgLSBbIF0gdGhpbmsgYWJvdXQgd2hhdCBtdXNpYyB0 byBwbGF5XG4iCm1zZ3N0ciAiIgoiKiBUT0RPIE9yZ2FuaXphciBGaWVzdGEgWzEvM11cbiIKIiAg LSBbLV0gTGxhbWFyIGEgbGEgZ2VudGUgWzEvMl1cbiIKIiAgICAtIFsgXSBQZWRyb1xuIgoiICAg IC0gW1hdIFNhcmFcbiIKIiAgLSBbWF0gQ29tcHJhciBjb21pZGFcbiIKIiAgLSBbIF0gcGVuc2Fy IHF1QCdlIG1AJ3VzaWNhIGVzY3VjaGFyXG4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1 aWRlLnRleGk6MTA4MQptc2dpZCAiIgoiQ2hlY2tib3hlcyB3b3JrIGhpZXJhcmNoaWNhbGx5LCBz byBpZiBhIGNoZWNrYm94IGl0ZW0gaGFzIGNoaWxkcmVuIHRoYXQgYXJlICIKImNoZWNrYm94ZXMs IHRvZ2dsaW5nIG9uZSBvZiB0aGUgY2hpbGRyZW4gY2hlY2tib3hlcyB3aWxsIG1ha2UgdGhlIHBh cmVudCAiCiJjaGVja2JveCByZWZsZWN0IGlmIG5vbmUsIHNvbWUsIG9yIGFsbCBvZiB0aGUgY2hp bGRyZW4gYXJlIGNoZWNrZWQuIgptc2dzdHIgIiIKIkxhcyBjYWphcyBkZSBjaGVxdWVvIGZ1bmNp b25hbiBqZXJAJ2FycXVpY2FtZW50ZSwgc2kgdW4gaXRlbSBlcyBjYWphIGRlXG4iCiJjaGVxdWVv IHkgdGllbmUgaGlqb3MgcXVlIHNvbiBjYWphcyBkZSBjaGVxdWVvLCBtYXJjYW5kbyBsYXMgY2Fq YXMgZGVcbiIKImNoZXF1ZW8gaGlqb3Mgc2UgbWFyY2FyQCdhIGxhIGNhamEgZGUgY2hlcXVlbyBk ZWwgcGFkcmUgcGFyYSByZWZsZWphclxuIgoic2kgbmluZ3VubywgYWxndW5vIG8gdG9kb3MgbG9z IGhpam9zIGVzdEAnYW4gbWFyY2Fkb3MuIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4 aToxMDg3Cm1zZ2lkICJUb2dnbGUgY2hlY2tib3ggc3RhdHVzIG9yICh3aXRoIHByZWZpeCBhcmcp IGNoZWNrYm94IHByZXNlbmNlIGF0IHBvaW50LiIKbXNnc3RyICIiCiJDYW1iaWEgZWwgZXN0YWRv IGRlIGxhIGNhamEgZGUgY2hlcXVlbyBvIChjb24gcHJlZmlqbykgYUB+bmFkZSB1bmFcbiIKImNh amEgZGUgY2hlcXVlby4iCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjEwOTEKIywg ZnV6enkKbXNnaWQgIiIKIkluc2VydCBhIG5ldyBpdGVtIHdpdGggYSBjaGVja2JveC4gIFRoaXMg d29ya3Mgb25seSBpZiB0aGUgY3Vyc29yIGlzIGFscmVhZHkgIgoiaW4gYSBwbGFpbiBsaXN0IGl0 ZW0gKEBweHJlZntQbGFpbiBsaXN0c30pLiIKbXNnc3RyICIiCiJJbnNlcnRhIHVuIG51ZXZvIGl0 ZW0gY29uIHVuIGN1YWRybyBkZSBjaGVxdWVvLiBFc3RvIGZ1bmNpb25hIHNvbG8gc2lcbiIKImVs IGN1cnNvciBlc3RAJ2EgZW4gdW4gaXRlbSBkZSBsYSBsaXN0YSBwbGFuYSAoQHB4cmVme0xpc3Rh cyBwbGFuYXN9KS4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MTA5OQpt c2dpZCAiIgoiQHNlZWFsc297IEB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy9tYW51YWwvVE9ETy1J dGVtcy5odG1sI1RPRE8tSXRlbXMsICIKIkNoYXB0ZXIgNSBvZiB0aGUgbWFudWFsfUAqIEB1cmVm e2h0dHA6Ly9vcmdtb2RlLm9yZy93b3JnL29yZy10dXRvcmlhbHMvIgoib3JndHV0b3JpYWxfZHRv LnBocCwgRGF2aWQgTydUb29sZSdzIGludHJvZHVjdG9yeSB0dXRvcmlhbH1AKiBAdXJlZntodHRw Oi8vIgoibWVtYmVycy5vcHR1c25ldC5jb20uYXUvfmNoYXJsZXM1Ny9HVEQvZ3RkX3dvcmtmbG93 Lmh0bWwsIENoYXJsZXMgQ2F2ZSdzIEdURCAiCiJzZXR1cH19Igptc2dzdHIgIiIKIkBzZWVhbHNv eyBAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvbWFudWFsL1RPRE8tSXRlbXMuaHRtbCNUT0RPLUl0 ZW1zLCBcbiIKIkNhcEAne0Bkb3RsZXNze2l9fXR1bG8gNSBkZWwgbWFudWFsfUAqIEB1cmVme2h0 dHA6Ly9vcmdtb2RlLm9yZy93b3JnL29yZy0iCiJ0dXRvcmlhbHMvXG4iCiJvcmd0dXRvcmlhbF9k dG8ucGhwLCBUdXRvcmlhbCBkZSBpbnRyb2R1Y2NpQCdvbiBkZSBEYXZpZCBPJ1Rvb2xlfUAqIEB1 cmVmIgoie2h0dHA6Ly9cbiIKIm1lbWJlcnMub3B0dXNuZXQuY29tLmF1L35jaGFybGVzNTcvR1RE L2d0ZF93b3JrZmxvdy5odG1sLFxuIgoiQ29uZmlndXJhY2lAJ29uIGRlIEdURCBkZSBDaGFybGVz IENhdmV9fSIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxMTA2Cm1zZ2lk ICIiCiJBbiBleGNlbGxlbnQgd2F5IHRvIGltcGxlbWVudCBsYWJlbHMgYW5kIGNvbnRleHRzIGZv ciBjcm9zcy1jb3JyZWxhdGluZyAiCiJpbmZvcm1hdGlvbiBpcyB0byBhc3NpZ24gQGl7dGFnc30g dG8gaGVhZGxpbmVzLiAgT3JnIG1vZGUgaGFzIGV4dGVuc2l2ZSAiCiJzdXBwb3J0IGZvciB0YWdz LiIKbXNnc3RyICIiCiJVbmEgZXhjZWxhbnRlIGZvcm1hIGRlIG5vbWJyYXIgeSBjb250ZXh0dWFs aXphciBpbmZvcm1hY2lAJ29uXG4iCiJpbnRlcnJlbGFjaW9uYWRhIGVzIGFzaWduYXIgQGl7ZXRp cXVldGFzfSBhIGxhcyBjYWJlY2VyYXMuIE9yZyBtb2RlXG4iCiJ0aWVuZSB1biBhbXBsaW8gc29w b3J0ZSBwYXJhIGV0aXF1ZXRhcy4gQGZvb3Rub3Rle05vdGEgZGVsIFRyYWR1Y3RvcjogVGFudG9c biIKImxhYmVsIGNvbW8gdGFnIHNlIHRyYWR1Y2UgY29tbyBldGlxdWV0YS4gRW4gZ2VuZXJhbCwg bGFiZWwgc2UgdXRpbGl6YVxuIgoibcOhcyBjb21vIG5vbWJyZSBxdWUgc2UgbGUgYXNpZ25hIGEg YWxnbyB5IHRhZyBjb21vIHBhbGFicmEgY2xhdmUsIHNpXG4iCiJiaWVuIGFtYmFzIHN1ZWxlbiB0 cmFkdWNpcnNlIGNvbW8gZXRpcXVldGEuIEFzQCd7QGRvdGxlc3N7aX19LCBoZVxuIgoiZGVjaWRp ZG8gdHJhZHVjaXIgQGl7aW1wbGVtZW50IGxhYmVsfSBjb21vIG5vbWJyYXIgeSBAaXt0YWd9IGNv bW9cbiIKImV0aXF1ZXRhLn0iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6 MTExMgptc2dpZCAiIgoiRXZlcnkgaGVhZGxpbmUgY2FuIGNvbnRhaW4gYSBsaXN0IG9mIHRhZ3M7 IHRoZXkgb2NjdXIgYXQgdGhlIGVuZCBvZiB0aGUgIgoiaGVhZGxpbmUuICBUYWdzIGFyZSBub3Jt YWwgd29yZHMgY29udGFpbmluZyBsZXR0ZXJzLCBudW1iZXJzLCBAc2FtcHtffSwgYW5kICIKIkBz YW1we0BAfS4gIFRhZ3MgbXVzdCBiZSBwcmVjZWRlZCBhbmQgZm9sbG93ZWQgYnkgYSBzaW5nbGUg Y29sb24sIGUuZy4sIEBzYW1wIgoiezp3b3JrOn0uICBTZXZlcmFsIHRhZ3MgY2FuIGJlIHNwZWNp ZmllZCwgYXMgaW4gQHNhbXB7Ondvcms6dXJnZW50On0uICBUYWdzICIKIndpbGwgYnkgZGVmYXVs dCBiZSBpbiBib2xkIGZhY2Ugd2l0aCB0aGUgc2FtZSBjb2xvciBhcyB0aGUgaGVhZGxpbmUuIgpt c2dzdHIgIiIKIkNhZGEgY2FiZWNlcmEgcHVlZGUgY29udGVuZXIgdW5hIGxpc3RhIGRlIGV0aXF1 ZXRhczsgc2UgaW50cm9kdWNlbiBhbFxuIgoiZmluYWwgZGUgdW5hIGNhYmVjZXJhLiBMYXMgZXRp cXVldGFzIHNvbiBwYWxhYnJhcyBub3JtYWxlcyBjb250ZW5pZW5kb1xuIgoibGV0cmFzLCBuw7pt ZXJvcywgQHNhbXB7X30geSBAc2FtcHtAQH0uIExhcyBldGlxdWV0YXMgZGViZW4gZXN0YXJcbiIK InByZWNlZGlkYXMgeSBzZWd1aWRhcyBwb3IgZG9zIHB1bnRvcywgcG9yIGVqZW1wbG8sXG4iCiJA c2FtcHs6dHJhYmFqbzp9LiBFcyBwb3NpYmxlIGFzaWduYXIgdmFyaWFzIGV0aXF1ZXRhcywgY29t byBlblxuIgoiQHNhbXB7OnRyYWJham86dXJnZW50ZTp9LiBMYXMgZXRpcXVldGFzIHBvciBkZWZl Y3RvIGVzdGFyQCdhbiBlblxuIgoibmVncmlsbGEgY29uIGVsIG1pc21vIGNvbG9yIHF1ZSBsYSBj YWJlY2VyYS4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MTEyNQptc2dp ZCAiIgoiQGl7VGFnc30gbWFrZSB1c2Ugb2YgdGhlIGhpZXJhcmNoaWNhbCBzdHJ1Y3R1cmUgb2Yg b3V0bGluZSB0cmVlcy4gIElmIGEgIgoiaGVhZGluZyBoYXMgYSBjZXJ0YWluIHRhZywgYWxsIHN1 YmhlYWRpbmdzIHdpbGwgaW5oZXJpdCB0aGUgdGFnIGFzIHdlbGwuICAiCiJGb3IgZXhhbXBsZSwg aW4gdGhlIGxpc3QiCm1zZ3N0ciAiIgoiTGFzIEBpe2V0aXF1ZXRhc30gaGFjZW4gdXNvIGRlIGxh IGVzdHJ1Y3R1cmEgamVyQCdhcnF1aWNhIGRlIGxvc1xuIgoiQCdhcmJvbGVzIGRlIG9yZy1tb2Rl LiBTaSB1bmEgY2FiZWNlcmEgdGllbmUgdW5hIGNpZXJ0YSBldGlxdWV0YSxcbiIKInRvZGFzIGxh cyBzdWJjYWJlY2VyYXMgaGVyZWRhckAnYW4gbGEgZXRpcXVldGEgdGFtYmlAJ2VuLiBQb3IgZWpl bXBsbyxcbiIKImVuIGxhIGxpc3RhIgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1aWRl LnRleGk6MTEzMAojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiIgoiKiBNZWV0aW5nIHdpdGggdGhl IEZyZW5jaCBncm91cCAgICAgIDp3b3JrOlxuIgoiKiogU3VtbWFyeSBieSBGcmFuayAgICAgICAg ICAgICAgICAgIDpib3NzOm5vdGVzOlxuIgoiKioqIFRPRE8gUHJlcGFyZSBzbGlkZXMgZm9yIGhp bSAgICAgIDphY3Rpb246XG4iCm1zZ3N0ciAiIgoiKiBFbmN1ZW50cm8gY29uIGZyYW5jZXNlcyAg ICAgICAgICAgICAgICAgIDp0cmFiYWpvOlxuIgoiKiogUmVzdW1lbiBwYXJhIENhcm9saW5hICAg ICAgICAgICAgICAgICAgIDpqZWZhOm5vdGFzOlxuIgoiKioqIFRPRE8gUHJlcGFyYXIgcHJlc2Vu dGFjaW9uZXMgcGFyYSBlbGxhIDphY3RpdmlkYWQ6XG4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6 IG9yZ2d1aWRlLnRleGk6MTE0MAojLCBmdXp6eQptc2dpZCAiIgoidGhlIGZpbmFsIGhlYWRpbmcg d2lsbCBoYXZlIHRoZSB0YWdzIEBzYW1wezp3b3JrOn0sIEBzYW1wezpib3NzOn0sIEBzYW1wezoi CiJub3Rlczp9LCBhbmQgQHNhbXB7OmFjdGlvbjp9IGV2ZW4gdGhvdWdoIHRoZSBmaW5hbCBoZWFk aW5nIGlzIG5vdCBleHBsaWNpdGx5ICIKIm1hcmtlZCB3aXRoIHRob3NlIHRhZ3MuICBZb3UgY2Fu IGFsc28gc2V0IHRhZ3MgdGhhdCBhbGwgZW50cmllcyBpbiBhIGZpbGUgIgoic2hvdWxkIGluaGVy aXQganVzdCBhcyBpZiB0aGVzZSB0YWdzIHdlcmUgZGVmaW5lZCBpbiBhIGh5cG90aGV0aWNhbCBs ZXZlbCAiCiJ6ZXJvIHRoYXQgc3Vycm91bmRzIHRoZSBlbnRpcmUgZmlsZS4gIFVzZSBhIGxpbmUg bGlrZSB0aGlzQGZvb3Rub3Rle0FzIHdpdGggIgoiYWxsIHRoZXNlIGluLWJ1ZmZlciBzZXR0aW5n cywgcHJlc3NpbmcgQGtiZHtDLWMgQy1jfSBhY3RpdmF0ZXMgYW55IGNoYW5nZXMgIgoiaW4gdGhl IGxpbmUufToiCm1zZ3N0ciAiIgoibGEgY2FiZWNlcmEgZmluYWwgdGVuZHJAJ2EgbGFzIGV0aXF1 ZXRhcyBAc2FtcHs6dHJhYmFqbzp9LFxuIgoiQHNhbXB7OmplZmE6fSwgQHNhbXB7Om5vdGFzOn0g eSBAc2FtcHs6YWN0aXZpZGFkOn0gaW5jbHVzbyBhdW5xdWUgbGFcbiIKImNhYmVjZXJhIGZpbmFs IG5vIGVzdEAnZSBleHBsQCd7QGRvdGxlc3N7aX19Y2l0YW1lbnRlIG1hcmNhZGEgY29uXG4iCiJl c3RhcyBldGlxdWV0YXMuIFNlIHB1ZWRlIHRhbWJpQCdlbiBhc2lnbmFyIGV0aXF1ZXRhcyBwYXJh IHF1ZSB0b2Rhc1xuIgoibGFzIGVudHJhZGFzIGVuIHVuIGZpY2hlcm8gaGVyZWRlbiBzaSBlc3Rh cyBldGlxdWV0YXMgZnVlcm9uIGRlZmluaWRhc1xuIgoiZW4gdW4gaGlwb3RAJ2V0aWNvIG5pdmVs IGNlcm8gYWxyZWRlZG9yIGRlbCBmaWNoZXJvIGVudGVyby4gVXNhIHVuYVxuIgoibEAne0Bkb3Rs ZXNze2l9fW5lYSBjb21vIGVzdGFAZm9vdG5vdGV7Q29tbyBzaWVtcHJlIGVzdGFzXG4iCiJjb25m aWd1cmFjaW9uZXMgZGUgYnVmZmVyIHNlIGFjdGl2YW4gcHJlc2lvbmFuZG8gQGtiZHtDLWMgQy1j fS59OiIKCiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjExNDMKIywgbm8t d3JhcAptc2dpZCAiIytGSUxFVEFHUzogOlBldGVyOkJvc3M6U2VjcmV0OlxuIgptc2dzdHIgIiMr RklMRVRBR1M6IDpQZWRybzpKZWZlOlNlY3JldG86XG4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6 IG9yZ2d1aWRlLnRleGk6MTE1MQptc2dpZCAiIgoiVGFncyBjYW4gc2ltcGx5IGJlIHR5cGVkIGlu dG8gdGhlIGJ1ZmZlciBhdCB0aGUgZW5kIG9mIGEgaGVhZGxpbmUuICBBZnRlciBhICIKImNvbG9u LCBAa2Jke00tQGtleXtUQUJ9fSBvZmZlcnMgY29tcGxldGlvbiBvbiB0YWdzLiAgVGhlcmUgaXMg YWxzbyBhIHNwZWNpYWwgIgoiY29tbWFuZCBmb3IgaW5zZXJ0aW5nIHRhZ3M6Igptc2dzdHIgIiIK IkxhcyBldGlxdWV0YXMgcHVlZGVuIHNpbXBsZW1lbnRlIHNlciBlc2NyaXRhcyBlbiB1biBidWZl ciBhbCBmaW5hbCBkZVxuIgoidW5hIGNhYmVjZXJhLiBEZXNwdUAnZXMgZGUgbG9zIGRvcyBwdW50 b3MsIEBrYmR7TS1Aa2V5e1RBQn19XG4iCiJhdXRvY29tcGxldGEgZXRpcXVldGFzLiBIYXkgdGFt YmlAJ2VuIHVuIGNvbWFuZG8gcGFyYSBpbnNlcnRhciBldGlxdWV0YXM6IgoKIy4gdHlwZTogaXRl bQojOiBvcmdndWlkZS50ZXhpOjExNTMKIywgbm8td3JhcAptc2dpZCAiQy1jIEMtcSIKbXNnc3Ry ICJDLWMgQy1xIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxMTYwCiMsIGZ1enp5 Cm1zZ2lkICIiCiJFbnRlciBuZXcgdGFncyBmb3IgdGhlIGN1cnJlbnQgaGVhZGxpbmUuICBPcmcg bW9kZSB3aWxsIGVpdGhlciBvZmZlciAiCiJjb21wbGV0aW9uIG9yIGEgc3BlY2lhbCBzaW5nbGUt a2V5IGludGVyZmFjZSBmb3Igc2V0dGluZyB0YWdzLCBzZWUgYmVsb3cuICAiCiJBZnRlciBwcmVz c2luZyBAa2V5e1JFVH0sIHRoZSB0YWdzIHdpbGwgYmUgaW5zZXJ0ZWQgYW5kIGFsaWduZWQgdG8g QGNvZGV7b3JnLSIKInRhZ3MtY29sdW1ufS4gIFdoZW4gY2FsbGVkIHdpdGggYSBAa2Jke0MtdX0g cHJlZml4LCBhbGwgdGFncyBpbiB0aGUgY3VycmVudCAiCiJidWZmZXIgd2lsbCBiZSBhbGlnbmVk IHRvIHRoYXQgY29sdW1uLCBqdXN0IHRvIG1ha2UgdGhpbmdzIGxvb2sgbmljZS4iCm1zZ3N0ciAi IgoiSW50cm9kdWNlIG51ZXZhcyBldGlxdWV0YXMgcGFyYSBsYSBjYWJlY2VyYSBhY3R1YWwuIE9y ZyBtb2RlXG4iCiJvZnJlY2VyQCdhIGF1dG9jb21wbGV0YWRvIG8gdW5hIGludGVyZmF6IGVzcGVj aWFsIGRlIHVuYSBzb2xhIHRlY2xhXG4iCiJwYXJhIGFzaWduYXIgZXRpcXVldGFzLCB2ZXIgbUAn YXMgYWJham8uIERlc3B1QCdlcyBkZSBwcmVzaW9uYXJcbiIKIkBrZXl7UkVUfSwgbGFzIGV0aXF1 ZXRhcyBzZXJAJ2FuIGluc2VydGFkYXMgeSBhbGluZWFkYXMgcGFyYVxuIgoiQGNvZGV7b3JnLXRh Z3MtY29sdW1ufS4gQ3VhbmRvIHNlIGxsYW1hIGNvbiBlbCBwcmVmaWpvIEBrYmR7Qy11fSxcbiIK InRvZGFzIGxhcyBldGlxdWV0YXMgZW4gZWwgYnVmZmVyIGFjdHVhbCBzZXJAJ2FuIGFsaW5lYWRh cyBhIGVzdGFcbiIKImNvbHVtbmEsIHNvbG8gcGFyYSBxdWUgbGFzIGNvc2FzIHNlIHZlYW4gYmll bi4iCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjExNjIKbXNnaWQgIldoZW4gdGhl IGN1cnNvciBpcyBpbiBhIGhlYWRsaW5lLCB0aGlzIGRvZXMgdGhlIHNhbWUgYXMgQGtiZHtDLWMg Qy1xfS4iCm1zZ3N0ciAiIgoiQ3VhbmRvIGVsIGN1cnNvciBlc3RAJ2EgZW4gdW5hIGNhYmVjZXJh LCBoYWNlIGxvIG1pc21vIHF1ZSBAa2Jke0MtY1xuIgoiQy1xfS4iCgojLiB0eXBlOiBQbGFpbiB0 ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MTE2OQptc2dpZCAiIgoiT3JnIHdpbGwgc3VwcG9ydCB0YWcg aW5zZXJ0aW9uIGJhc2VkIG9uIGEgQGVtcGh7bGlzdCBvZiB0YWdzfS4gIEJ5IGRlZmF1bHQgIgoi dGhpcyBsaXN0IGlzIGNvbnN0cnVjdGVkIGR5bmFtaWNhbGx5LCBjb250YWluaW5nIGFsbCB0YWdz IGN1cnJlbnRseSB1c2VkIGluICIKInRoZSBidWZmZXIuICBZb3UgbWF5IGFsc28gZ2xvYmFsbHkg c3BlY2lmeSBhIGhhcmQgbGlzdCBvZiB0YWdzIHdpdGggdGhlICIKInZhcmlhYmxlIEBjb2Rle29y Zy10YWctYWxpc3R9LiAgRmluYWxseSB5b3UgY2FuIHNldCB0aGUgZGVmYXVsdCB0YWdzIGZvciBh ICIKImdpdmVuIGZpbGUgd2l0aCBsaW5lcyBsaWtlIgptc2dzdHIgIiIKIk9yZyBzb3BvcnRhIGlu c2VyY2lAJ29uIGRlIGV0aXF1ZXRhcyBiYXNhZG8gZW4gdW5hIEBlbXBoe2xpc3RhIGRlXG4iCiJl dGlxdWV0YXN9LiBQb3IgZGVmZWN0byBlc3RhIGxpc3RhIGVzIGNvbnN0cnVpZGEgZGluQCdhbWlj YW1lbnRlLFxuIgoiY29udGVuaWVuZG8gdG9kYXMgbGFzIGV0aXF1ZXRhcyBhY3R1YWxtZW50ZSB1 c2FkYXMgZW4gZWxcbiIKImJ1ZmZlci4gVGFtYmlAJ2VuIHNlIHB1ZWRlIGVzcGVjaWZpY2FyIGds b2JhbG1lbnRlIHVuYSBsaXN0YSBkdXJhIGRlXG4iCiJldGlxdWV0YXMgY29uIGxhIHZhcmlhYmxl IEBjb2Rle29yZy10YWctYWxpc3R9LiBGaW5hbG1lbnRlIHNlIHB1ZWRlXG4iCiJhc2lnbmFyIGxh cyBldGlxdWV0YXMgcG9yIGRlZmVjdG8gcGFyYSB1biBmaWNoZXJvIGRhZG8gY29uXG4iCiJsQCd7 QGRvdGxlc3N7aX19bmVhcyBjb21vIgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1aWRl LnRleGk6MTE3MwojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiIgoiIytUQUdTOiBAQHdvcmsgQEBo b21lIEBAdGVubmlzY2x1YlxuIgoiIytUQUdTOiBsYXB0b3AgY2FyIHBjIHNhaWxib2F0XG4iCm1z Z3N0ciAiIytUQUdTOiBAQHRyYWJham8odCkgIEBAY2FzYShjKSAgQEBmdXRib2woZikgIHNlcnZp ZG9yKHMpICBwYyhwKVxuIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjEx ODQKbXNnaWQgIiIKIkJ5IGRlZmF1bHQgT3JnIG1vZGUgdXNlcyB0aGUgc3RhbmRhcmQgbWluaWJ1 ZmZlciBjb21wbGV0aW9uIGZhY2lsaXRpZXMgZm9yICIKImVudGVyaW5nIHRhZ3MuICBIb3dldmVy LCBpdCBhbHNvIGltcGxlbWVudHMgYW5vdGhlciwgcXVpY2tlciwgdGFnIHNlbGVjdGlvbiAiCiJt ZXRob2QgY2FsbGVkIEBlbXBoe2Zhc3QgdGFnIHNlbGVjdGlvbn0uICBUaGlzIGFsbG93cyB5b3Ug dG8gc2VsZWN0IGFuZCAiCiJkZXNlbGVjdCB0YWdzIHdpdGgganVzdCBhIHNpbmdsZSBrZXkgcHJl c3MuICBGb3IgdGhpcyB0byB3b3JrIHdlbGwgeW91ICIKInNob3VsZCBhc3NpZ24gdW5pcXVlIGxl dHRlcnMgdG8gbW9zdCBvZiB5b3VyIGNvbW1vbmx5IHVzZWQgdGFncy4gIFlvdSBjYW4gZG8gIgoi dGhpcyBnbG9iYWxseSBieSBjb25maWd1cmluZyB0aGUgdmFyaWFibGUgQGNvZGV7b3JnLXRhZy1h bGlzdH0gaW4geW91ciBAZmlsZSIKInsuZW1hY3N9IGZpbGUuICBGb3IgZXhhbXBsZSwgeW91IG1h eSBmaW5kIHRoZSBuZWVkIHRvIHRhZyBtYW55IGl0ZW1zIGluICIKImRpZmZlcmVudCBmaWxlcyB3 aXRoIEBzYW1wezpAQGhvbWU6fS4gIEluIHRoaXMgY2FzZSB5b3UgY2FuIHNldCBzb21ldGhpbmcg IgoibGlrZToiCm1zZ3N0ciAiIgoiUG9yIGRlZmVjdG8sIE9yZyBtb2RlIHVzYSBsYXMgZmFjaWxp ZGFkZXMgZGUgY29tcGxlY2lAJ29uIGRlbFxuIgoibWluaWJ1ZmZlciBwYXJhIGludHJvZHVjaXIg ZXRpcXVldGFzLiBTaW4gZW1iYXJnbywgdGFtYmlAJ2VuXG4iCiJpbXBsZW1lbnRhIG90cm8gckAn YXBpZG8gbUAnZXRvZG8gZGUgc2VsZWNjaUAnb24gZGUgZXRpcXVldGFzIGxsYW1hZG9cbiIKIkBl bXBoe2Zhc3QgdGFnIHNlbGVjdGlvbn0uIEVzdGUgcGVybWl0ZSBxdWUgdHUgc2VsZWNjaW9uZXMg eVxuIgoiZGVqZXMgZGUgc2VsZWNjaW9uYXIgZXRpcXVldGFzIGNvbiBzb2xvIHByZXNpb25hciB1 bmEgc29sYSB0ZWNsYS4gUGFyYVxuIgoicXVlIGVzdG8gZnVuY2lvbmUgYmllbiBzZSBkZWJlIGFz aWduYXIgbGV0cmFzIEAndW5pY2FzIHBhcmEgbGFzXG4iCiJldGlxdWV0YXMgbUAnYXMgdXNhZGFz LiBTZSBwdWVkZSBoYWNlciBlc3RvIGRlIG1hbmVyYSBnbG9iYWxcbiIKImNvbmZpZ3VyYW5kbyBs YSB2YXJpYWJsZSBAY29kZXtvcmctdGFnLWFsaXN0fSBlbiBlbCBmaWNoZXJvXG4iCiJAZmlsZXsu ZW1hY3N9LiBQb3IgZWplbXBsbywgc2UgcHVlZGUgZW5jb250cmFyIGxhIG5lY2VzaWRhZCBkZVxu IgoiZXRpcXVldGFyIG11Y2hvcyBAJ3tAZG90bGVzc3tpfX10ZW1zIGVuIGRpZmVyZW50ZXMgZmlj aGVyb3MgY29uXG4iCiJAc2FtcHs6QEBjYXNhOn0uIEVuIGVzdGUgY2FzbyBzZSBwdWVkZSBoYWNl ciBhbGdvIGNvbW86IgoKIy4gdHlwZTogc21hbGxsaXNwCiM6IG9yZ2d1aWRlLnRleGk6MTE4Nwoj LCBmdXp6eSwgbm8td3JhcAptc2dpZCAiKHNldHEgb3JnLXRhZy1hbGlzdCAnKChcIkBAd29ya1wi IC4gP3cpIChcIkBAaG9tZVwiIC4gP2gpIChcImxhcHRvcFwiIC4gP2wpKSlcbiIKbXNnc3RyICIo c2V0cSBvcmctdGFnLWFsaXN0ICcoKFwiQEB0cmFiYWpvXCIgLiA/dCkgKFwiQEBjYXNhXCIgLiA/ YykgKFwicG9ydGF0aWxcIiAuID9wKSkpXG4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1 aWRlLnRleGk6MTE5MQptc2dpZCAiY2FuIGluc3RlYWQgc2V0IHRoZSBUQUdTIG9wdGlvbiBsaW5l IGFzOiIKbXNnc3RyICJvIGJpZW4gZXN0YWJsZWNlciBlbiBsYSBsQCd7QGRvdGxlc3N7aX19bmVh IFRBR1MgdW5hIG9wY2lAJ29uIGNvbW86IgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1 aWRlLnRleGk6MTE5NAojLCBuby13cmFwCm1zZ2lkICIjK1RBR1M6IEBAd29yayh3KSAgQEBob21l KGgpICBAQHRlbm5pc2NsdWIodCkgIGxhcHRvcChsKSAgcGMocClcbiIKbXNnc3RyICIjK1RBR1M6 IEBAdHJhYmFqbyh0KSAgQEBjYXNhKGMpICBAQGZ1dGJvbChmKSAgc2Vydmlkb3IocykgIHBjKHAp XG4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MTIwMQptc2dpZCAiIgoi T25jZSBhIHN5c3RlbSBvZiB0YWdzIGhhcyBiZWVuIHNldCB1cCwgaXQgY2FuIGJlIHVzZWQgdG8g Y29sbGVjdCByZWxhdGVkICIKImluZm9ybWF0aW9uIGludG8gc3BlY2lhbCBsaXN0cy4iCm1zZ3N0 ciAiIgoiVW5hIHZleiBxdWUgdW4gc2lzdGVtYSBkZSBldGlxdWV0YXMgaGEgc2lkbyBjb25maWd1 cmFkbywgcHVlZGUgc2VyXG4iCiJ1c2FkbyBwYXJhIHJlY29nZXIgaW5mb3JtYWNpQCdvbiBkZW50 cm8gZGUgbGlzdGFzIGVzcGVjaWFsZXMuIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhp OjEyMDMKIywgbm8td3JhcAptc2dpZCAiQy1jIFxcIgptc2dzdHIgIkMtYyBcXCIKCiMuIHR5cGU6 IGl0ZW14CiM6IG9yZ2d1aWRlLnRleGk6MTIwNAojLCBuby13cmFwCm1zZ2lkICJDLWMgLyBtIgpt c2dzdHIgIkMtYyAvIG0iCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjEyMDcKbXNn aWQgIiIKIkNyZWF0ZSBhIHNwYXJzZSB0cmVlIHdpdGggYWxsIGhlYWRsaW5lcyBtYXRjaGluZyBh IHRhZ3Mgc2VhcmNoLiAgV2l0aCBhIEBrYmQiCiJ7Qy11fSBwcmVmaXggYXJndW1lbnQsIGlnbm9y ZSBoZWFkbGluZXMgdGhhdCBhcmUgbm90IGEgVE9ETyBsaW5lLiIKbXNnc3RyICIiCiJDcmVhciB1 biBAJ2FyYm9sIGV4cGFuZGlkbyBjb24gdG9kYXMgbGFzIGNhYmVjZXJhcyBjb2luY2lkZW50ZXMg Y29uIGxhXG4iCiJldGlxdWV0YSAodGFnKSBidXNjYWRhLiBDb24gZWwgcHJlZmlqbyBAa2Jke0Mt dX0sIGlnbm9yYSBsYXMgY2FiZWNlcmFzXG4iCiJxdWUgbm8gc29uIFRPRE8uIgoKIy4gdHlwZTog aXRlbQojOiBvcmdndWlkZS50ZXhpOjEyMDcgb3JnZ3VpZGUudGV4aToxODEyCiMsIG5vLXdyYXAK bXNnaWQgIkMtYyBhIG0iCm1zZ3N0ciAiQy1jIGEgbSIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1 aWRlLnRleGk6MTIxMAptc2dpZCAiIgoiQ3JlYXRlIGEgZ2xvYmFsIGxpc3Qgb2YgdGFnIG1hdGNo ZXMgZnJvbSBhbGwgYWdlbmRhIGZpbGVzLiAgQHhyZWZ7TWF0Y2hpbmcgIgoidGFncyBhbmQgcHJv cGVydGllc30uIgptc2dzdHIgIiIKIkNyZWEgdW5hIGxpc3RhIGdsb2JhbCBkZSBtYXJjYXMgY29p bmNpZGVudGVzIGRlIHRvZG9zIGxvcyBhcmNoaXZvcyBkZSBsYSAiCiJhZ2VuZGEuIEB4cmVme0Nv aW5jaWRpZW5kbyBtYXJjYXMgeSBwcm9waWVkYWRlc30uIgoKIy4gdHlwZTogaXRlbQojOiBvcmdn dWlkZS50ZXhpOjEyMTAgb3JnZ3VpZGUudGV4aToxODE4CiMsIG5vLXdyYXAKbXNnaWQgIkMtYyBh IE0iCm1zZ3N0ciAiQy1jIGEgTSIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTIx NAojLCBmdXp6eQptc2dpZCAiIgoiQ3JlYXRlIGEgZ2xvYmFsIGxpc3Qgb2YgdGFnIG1hdGNoZXMg ZnJvbSBhbGwgYWdlbmRhIGZpbGVzLCBidXQgY2hlY2sgb25seSAiCiJUT0RPIGl0ZW1zIGFuZCBm b3JjZSBjaGVja2luZyBzdWJpdGVtcyAoc2VlIHZhcmlhYmxlIEBjb2Rle29yZy10YWdzLW1hdGNo LSIKImxpc3Qtc3VibGV2ZWxzfSkuIgptc2dzdHIgIiIKIkNyZWEgdW5hIGxpc3RhIGdsb2JhbCBk ZSBtYXJjYXMgY29pbmNpZGVudGVzIGRlIHRvZG9zIGxvcyBhcmNoaXZvcyBkZSBsYSAiCiJhZ2Vu ZGEuIEB4cmVme0NvaW5jaWRpZW5kbyBtYXJjYXMgeSBwcm9waWVkYWRlc30uIgoKIy4gdHlwZTog UGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjEyMjMKbXNnaWQgIiIKIlRoZXNlIGNvbW1hbmRz IGFsbCBwcm9tcHQgZm9yIGEgbWF0Y2ggc3RyaW5nIHdoaWNoIGFsbG93cyBiYXNpYyBCb29sZWFu ICIKImxvZ2ljIGxpa2UgQHNhbXB7K2Jvc3MrdXJnZW50LXByb2plY3QxfSwgdG8gZmluZCBlbnRy aWVzIHdpdGggdGFncyBAc2FtcCIKIntib3NzfSBhbmQgQHNhbXB7dXJnZW50fSwgYnV0IG5vdCBA c2FtcHtwcm9qZWN0MX0sIG9yIEBzYW1we0thdGh5fFNhbGx5fSB0byAiCiJmaW5kIGVudHJpZXMg d2hpY2ggYXJlIHRhZ2dlZCwgbGlrZSBAc2FtcHtLYXRoeX0gb3IgQHNhbXB7U2FsbHl9LiAgVGhl IGZ1bGwgIgoic3ludGF4IG9mIHRoZSBzZWFyY2ggc3RyaW5nIGlzIHJpY2ggYW5kIGFsbG93cyBh bHNvIG1hdGNoaW5nIGFnYWluc3QgVE9ETyAiCiJrZXl3b3JkcywgZW50cnkgbGV2ZWxzIGFuZCBw cm9wZXJ0aWVzLiAgRm9yIGEgY29tcGxldGUgZGVzY3JpcHRpb24gd2l0aCBtYW55ICIKImV4YW1w bGVzLCBzZWUgQHJlZntNYXRjaGluZyB0YWdzIGFuZCBwcm9wZXJ0aWVzfS4iCm1zZ3N0ciAiIgoi RXN0b3MgY29tYW5kb3MgYnVzY2FuIGNvaW5jaWRlbmNpYXMgZGUgY2FkZW5hcyBxdWUgcGVybWl0 ZW4gdW5hXG4iCiJsQCdvZ2ljYSBiQCdhc2ljYSBjb21vIEBzYW1weytqZWZlK3VyZ2VudGUtcHJv eWVjdG8xfSwgcGFyYSBlbmNvbnRyYXJcbiIKImVudHJhZGFzIGNvbiBtYXJjYXMgQHNhbXB7amVm ZX0geSBAc2FtcHt1cmdlbnRlfSwgcGVybyBzaW5cbiIKIkBzYW1we3Byb3llY3RvMX0sIG8gQHNh bXB7Sm9zQCdlfEp1YW59IHBhcmEgZW5jb250cmFyIGFtYmFzIGVudHJhZGFzLFxuIgoidGFudG8g QHNhbXB7Sm9zQCdlfSBjb21vIEBzYW1we0p1YW59LiBMYSBzaW50QCdheGlzIGNvbXBsZXRhIGRl IGxhc1xuIgoiY2FkZW5hcyBkZSBiQCd1c3F1ZWRhIGVzIHJpY2EgeSBwZXJtaXRlIGFkZW1AJ2Fz IGNvaW5jaWRlbmNpYXMgY29uXG4iCiJ0b2RhcyBsYXMgcGFsYWJyYXMgY2xhdmUgVE9ETywgZW50 cmFkYXMgZGUgbml2ZWwgeSBwcm9waWVkYWRlcy4gUGFyYVxuIgoidW5hIGNvbXBsZXRhIGRlc2Ny aXBjaUAnb24gY29uIG11Y2hvcyBlamVtcGxvcywgdmVhIEByZWZ7Q29pbmNpZGllbmRvIG1hcmNh cyAiCiJ5IHByb3BpZWRhZGVzfS4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRl eGk6MTIyOAptc2dpZCAiIgoiQHNlZWFsc297IEB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy9tYW51 YWwvVGFncy5odG1sI1RhZ3MsIENoYXB0ZXIgNiBvZiB0aGUgIgoibWFudWFsfUAqIEB1cmVme2h0 dHA6Ly9zYWNoYWNodWEuY29tL3dwLzIwMDgvMDEvdGFnZ2luZy1pbi1vcmctcGx1cy1ib251cy0i CiJjb2RlLWZvci10aW1lY2xvY2tzLWFuZC10YWdzLywgU2FjaGEgQ2h1YSdzIGFydGljbGUgYWJv dXQgdGFnZ2luZyBpbiBPcmctIgoibW9kZX19Igptc2dzdHIgIiIKIkBzZWVhbHNveyBAdXJlZnto dHRwOi8vb3JnbW9kZS5vcmcvbWFudWFsL1RhZ3MuaHRtbCNUYWdzLFxuIgoiQ2FwQCd7QGRvdGxl c3N7aX19dHVsbyA2IGRlbCBtYW51YWx9QCpcbiIKIkB1cmVme2h0dHA6Ly9zYWNoYWNodWEuY29t L3dwLzIwMDgvMDEvdGFnZ2luZy1pbi1vcmctcGx1cy1ib251cy1jb2RlLWZvci0iCiJ0aW1lY2xv Y2tzLWFuZC10YWdzLyxcbiIKImFydEAne0Bkb3RsZXNze2l9fWN1bG8gZGUgU2FjaGEgQ2h1YSBh Y2VyY2EgZGUgZXRpcXVldGFkbyBlbiBPcmctbW9kZX19IgoKIy4gdHlwZTogUGxhaW4gdGV4dAoj OiBvcmdndWlkZS50ZXhpOjEyMzYKbXNnaWQgIiIKIlByb3BlcnRpZXMgYXJlIGtleS12YWx1ZSBw YWlycyBhc3NvY2lhdGVzIHdpdGggYW5kIGVudHJ5LiAgVGhleSBsaXZlIGluIGEgIgoic3BlY2lh bCBkcmF3ZXIgd2l0aCB0aGUgbmFtZSBAY29kZXtQUk9QRVJUSUVTfS4gIEVhY2ggcHJvcGVydHkg aXMgc3BlY2lmaWVkICIKIm9uIGEgc2luZ2xlIGxpbmUsIHdpdGggdGhlIGtleSAoc3Vycm91bmRl ZCBieSBjb2xvbnMpICBmaXJzdCwgYW5kIHRoZSB2YWx1ZSAiCiJhZnRlciBpdDoiCm1zZ3N0ciAi IgoiTGFzIHByb3BpZWRhZGVzIHNvbiBwYXJlcyBjbGF2ZSB2YWxvciBhc29jaWFkb3MgY29uIHVu YSBlbnRyYWRhLiBFc3Rvc1xuIgoic2UgZW5jdWVudHJhbiBlbiB1biBsdWdhciBlc3BlY2lhbCBj b24gZWwgbm9tYnJlXG4iCiJAY29kZXtQUk9QRVJUSUVTfS4gQ2FkYSBwcm9waWVkYWQgc2UgZXNw ZWNpZmljYSBlbiB1bmFcbiIKImxAJ3tAZG90bGVzc3tpfX1uZWEgc2ltcGxlLCBjb24gbGEgY2xh dmUgKHJvZGVhZGEgcG9yIGRvcyBwdW50b3MpXG4iCiJwcmltZXJvLCB5IGVsIHZhbG9yIGRlc3B1 QCdlcyBkZSBAJ2VzdGEuIgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1aWRlLnRleGk6 MTI0NwojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiIgoiKiBDRCBjb2xsZWN0aW9uXG4iCiIqKiBD bGFzc2ljXG4iCiIqKiogR29sZGJlcmcgVmFyaWF0aW9uc1xuIgoiICAgIDpQUk9QRVJUSUVTOlxu IgoiICAgIDpUaXRsZTogICAgIEdvbGRiZXJnIFZhcmlhdGlvbnNcbiIKIiAgICA6Q29tcG9zZXI6 ICBKLlMuIEJhY2hcbiIKIiAgICA6UHVibGlzaGVyOiBEZXV0c2NoZSBHcmFtbW9waG9uXG4iCiIg ICAgOk5EaXNrczogICAgMVxuIgoiICAgIDpFTkQ6XG4iCm1zZ3N0ciAiIgoiKiBDb2xlY2NpQCdv biBkZSBDRHMgXG4iCiIqKiBDbEAnYXNpY2FcbiIKIioqKiBWYXJpYWNpb25lcyBkZSBHb2xkYmVy ZyBcbiIKIiAgICA6UFJPUEVSVElFUzpcbiIKIiAgICA6VEAne0Bkb3RsZXNze2l9fXR1bG86ICAg ICBHb2xkYmVyZyBWYXJpYXRpb25zXG4iCiIgICAgOkNvbXBvc2l0b3I6ICBKLlMuIEJhY2hcbiIK IiAgICA6RGlzY29nckAnYWZpY2E6IERldXRzY2hlIEdyYW1tb3Bob25cbiIKIiAgICA6RGlzY29z OiAgICAxXG4iCiIgICAgOkVORDpcbiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUu dGV4aToxMjU2Cm1zZ2lkICIiCiJZb3UgbWF5IGRlZmluZSB0aGUgYWxsb3dlZCB2YWx1ZXMgZm9y IGEgcGFydGljdWxhciBwcm9wZXJ0eSBAc2FtcHs6WHl6On0gYnkgIgoic2V0dGluZyBhIHByb3Bl cnR5IEBzYW1wezpYeXpfQUxMOn0uICBUaGlzIHNwZWNpYWwgcHJvcGVydHkgaXMgQGVtcGgiCiJ7 aW5oZXJpdGVkfSwgc28gaWYgeW91IHNldCBpdCBpbiBhIGxldmVsIDEgZW50cnksIGl0IHdpbGwg YXBwbHkgdG8gdGhlICIKImVudGlyZSB0cmVlLiAgV2hlbiBhbGxvd2VkIHZhbHVlcyBhcmUgZGVm aW5lZCwgc2V0dGluZyB0aGUgY29ycmVzcG9uZGluZyAiCiJwcm9wZXJ0eSBiZWNvbWVzIGVhc2ll ciBhbmQgaXMgbGVzcyBwcm9uZSB0byB0eXBpbmcgZXJyb3JzLiAgRm9yIHRoZSBleGFtcGxlICIK IndpdGggdGhlIENEIGNvbGxlY3Rpb24sIHdlIGNhbiBwcmVkZWZpbmUgcHVibGlzaGVycyBhbmQg dGhlIG51bWJlciBvZiBkaXNrcyAiCiJpbiBhIGJveCBsaWtlIHRoaXM6Igptc2dzdHIgIiIKIlNl IHB1ZWRlbiBkZWZpbmlyIGxvcyB2YWxvcmVzIHBlcm1pdGlkb3MgcGFyYSB1bmEgcHJvcGllZGFk IHBhcnRpY3VsYXJcbiIKIkBzYW1wezpYeXo6fSBhc2lnbmFuZG8gdW4gcHJvcGllZGFkIEBzYW1w ezpYeXpfQUxMOn0uIEVzdGEgcHJvcGllZGFkXG4iCiJlc3BlY2lhbCBlcyBAZW1waHtoZXJlZGFk YX0sIGFzQCd7QGRvdGxlc3N7aX19IHNpIHNlIGFzaWduYSBlbiB1bmFcbiIKImVudHJhZGEgZGUg bml2ZWwgMSwgc2UgYXBsaWNhckAnYSBhbCBAJ2FyYm9sIGVudGVyby4gQ3VhbmRvIGxvc1xuIgoi dmFsb3JlcyBwZXJtaXRpZG9zIGVzdEAnYW4gZGVmaW5pZG9zLCBhc2lnbmFyIGxhIHByb3BpZWRh ZFxuIgoiY29ycmVzcG9uZGllbnRlIGxsZWdhIGEgc2VyIGZAJ2FjaWwgeSBlcyBtZW5vcyBwcm9w ZW5zYSBhXG4iCiJlcnJvcmVzLiBQYXJhIGVsIGVqZW1wbG8gZGUgbGEgY29sZWNjaUAnb24gZGUg Q0RzLCBzZSBwdWVkZW5cbiIKInByZWRlZmluaXIgbGFzIGRpc2NvZ3JAJ2FmaWNhcyB5IGVsIG5A J3VtZXJvIGRlIGRpc2NvcyBlbiB1bmEgY2FqYVxuIgoiY29tbyBlc3RhOiIKCiMuIHR5cGU6IHNt YWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjEyNjMKIywgZnV6enksIG5vLXdyYXAKbXNnaWQg IiIKIiogQ0QgY29sbGVjdGlvblxuIgoiICA6UFJPUEVSVElFUzpcbiIKIiAgOk5EaXNrc19BTEw6 ICAxIDIgMyA0XG4iCiIgIDpQdWJsaXNoZXJfQUxMOiBcIkRldXRzY2hlIEdyYW1tb3Bob25cIiBQ aGlsaXBzIEVNSVxuIgoiICA6RU5EOlxuIgptc2dzdHIgIiIKIiogQ29sZWNjaUAnb24gZGUgQ0Rz XG4iCiIgICA6UFJPUEVSVElFUzpcbiIKIiAgIDpEaXNjb3NfQUxMOiAxIDIgMyA0XG4iCiIgICA6 RGlzY29nckAnYWZpY2FfQUxMOiBcIkRldXRzY2hlIEdyYW1tb3Bob25cIiBQaGlsaXBzIEVNSVxu IgoiICAgOkVORDpcbiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxMjY1 Cm1zZ2lkICJvciBnbG9iYWxseSB1c2luZyBAY29kZXtvcmctZ2xvYmFsLXByb3BlcnRpZXN9LCBv ciBmaWxlLXdpZGUgbGlrZSB0aGlzOiIKbXNnc3RyICIiCiJvIGdsb2JhbG1lbnRlIHVzYW5kbyBA Y29kZXtvcmctZ2xvYmFsLXByb3BlcnRpZXN9LCBvIHVuIGZpY2hlcm8gYW1wbGlvXG4iCiJjb21v IGVzdGU6IgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1aWRlLnRleGk6MTI2NwojLCBu by13cmFwCm1zZ2lkICIjK1BST1BFUlRZOiBORGlza3NfQUxMIDEgMiAzIDRcbiIKbXNnc3RyICIj K1BST1BFUlRZOiBEaXNjb3NfQUxMIDEgMiAzIDRcbiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3Vp ZGUudGV4aToxMjcwCiMsIG5vLXdyYXAKbXNnaWQgIkMtYyBDLXggcCIKbXNnc3RyICJDLWMgQy14 IHAiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjEyNzIKbXNnaWQgIlNldCBhIHBy b3BlcnR5LiAgVGhpcyBwcm9tcHRzIGZvciBhIHByb3BlcnR5IG5hbWUgYW5kIGEgdmFsdWUuIgpt c2dzdHIgIiIKIkFzaWduYSB1bmEgcHJvcGllZGFkLiBTZSBzb2xpY2l0YXJAJ2EgdW4gbm9tYnJl IHkgdW4gdmFsb3IgcGFyYSBsYSBwcm9waWVkYWQuIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlk ZS50ZXhpOjEyNzIKIywgbm8td3JhcAptc2dpZCAiQy1jIEMtYyBkIgptc2dzdHIgIkMtYyBDLWMg ZCIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTI3NAptc2dpZCAiUmVtb3ZlIGEg cHJvcGVydHkgZnJvbSB0aGUgY3VycmVudCBlbnRyeS4iCm1zZ3N0ciAiRWxpbWluYSB1bmEgcHJv cGllZGFkIGRlIGxhIGVudHJhZGEgYWN0dWFsLiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3Jn Z3VpZGUudGV4aToxMjgwCm1zZ2lkICIiCiJUbyBjcmVhdGUgc3BhcnNlIHRyZWVzIGFuZCBzcGVj aWFsIGxpc3RzIHdpdGggc2VsZWN0aW9uIGJhc2VkIG9uIHByb3BlcnRpZXMsICIKInRoZSBzYW1l IGNvbW1hbmRzIGFyZSB1c2VkIGFzIGZvciB0YWcgc2VhcmNoZXMgKEBweHJlZntUYWcgc2VhcmNo ZXN9KS4gIFRoZSAiCiJzeW50YXggZm9yIHRoZSBzZWFyY2ggc3RyaW5nIGlzIGRlc2NyaWJlZCBp biBAcmVme01hdGNoaW5nIHRhZ3MgYW5kICIKInByb3BlcnRpZXN9LiIKbXNnc3RyICIiCiJQYXJh IGNyZWFyIEAnYXJib2xlcyBleHBhbmRpZG9zIHkgbGlzdGFzIGVzcGVjaWFsZXMgY29uIHNlbGVj Y2lAJ29uXG4iCiJiYXNhZGEgZW4gcHJvcGllZGFkZXMsIGxvcyBtaXNtb3MgY29tYW5kb3Mgc29u IHVzYWRvcyBwYXJhIGJ1c2NhclxuIgoibWFyY2FzIChAcHhyZWZ7QnVzY2FuZG8gbWFyY2FzfSku IExhIHNpbnRheGlzIGNvbXBsZXRhIHBhcmEgbGFcbiIKImJAJ3VzcXVlZGEgZGUgY2FkZW5hcyBl cyBkZXNjcml0YSBlbiBAcmVme0NvaW5jaWRpZW5kbyBtYXJjYXMgeVxuIgoicHJvcGllZGFkZXN9 LiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxMjg5Cm1zZ2lkICIiCiJA c2VlYWxzb3sgQHVyZWZ7aHR0cDovL29yZ21vZGUub3JnL21hbnVhbC9Qcm9wZXJ0aWVzLWFuZC1D b2x1bW5zLiIKImh0bWwjUHJvcGVydGllcy1hbmQtQ29sdW1ucywgQ2hhcHRlciA3IG9mIHRoZSBt YW51YWx9QCogQHVyZWZ7aHR0cDovL29yZ21vZGUuIgoib3JnL3dvcmcvb3JnLXR1dG9yaWFscy9v cmctY29sdW1uLXZpZXctdHV0b3JpYWwucGhwLEJhc3RpZW4gR3VlcnJ5J3MgY29sdW1uICIKInZp ZXcgdHV0b3JpYWx9fSIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRl LnRleGk6MTI5Ngptc2dpZCAiIgoiVG8gYXNzaXN0IHByb2plY3QgcGxhbm5pbmcsIFRPRE8gaXRl bXMgY2FuIGJlIGxhYmVsZWQgd2l0aCBhIGRhdGUgYW5kL29yIGEgIgoidGltZS4gIFRoZSBzcGVj aWFsbHkgZm9ybWF0dGVkIHN0cmluZyBjYXJyeWluZyB0aGUgZGF0ZSBhbmQgdGltZSBpbmZvcm1h dGlvbiAiCiJpcyBjYWxsZWQgYSBAZW1waHt0aW1lc3RhbXB9IGluIE9yZyBtb2RlLiIKbXNnc3Ry ICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MTMxNAojLCBmdXp6eQpt c2dpZCAiIgoiQSB0aW1lc3RhbXAgaXMgYSBzcGVjaWZpY2F0aW9uIG9mIGEgZGF0ZSAocG9zc2li bHkgd2l0aCBhIHRpbWUgb3IgYSByYW5nZSBvZiAiCiJ0aW1lcykgaW4gYSBzcGVjaWFsIGZvcm1h dCwgZWl0aGVyIEBzYW1wezwyMDAzLTA5LTE2IFR1ZT59IG9yIEBzYW1wIgoiezwyMDAzLTA5LTE2 IFR1ZSAwOTozOT59IG9yIEBzYW1wezwyMDAzLTA5LTE2IFR1ZSAxMjowMC0xMjozMD59LiAgQSAi CiJ0aW1lc3RhbXAgY2FuIGFwcGVhciBhbnl3aGVyZSBpbiB0aGUgaGVhZGxpbmUgb3IgYm9keSBv ZiBhbiBPcmcgdHJlZSBlbnRyeS4gICIKIkl0cyBwcmVzZW5jZSBjYXVzZXMgZW50cmllcyB0byBi ZSBzaG93biBvbiBzcGVjaWZpYyBkYXRlcyBpbiB0aGUgYWdlbmRhICIKIihAcHhyZWZ7V2Vla2x5 L2RhaWx5IGFnZW5kYX0pLiAgV2UgZGlzdGluZ3Vpc2g6Igptc2dzdHIgIiIKIlVuYSBtYXJjYSBk ZSB0aWVtcG8gZXMgdW5hIGVzcGVjaWZpY2FjaUAnb24gZGUgdW5hIGZlY2hhIChwb3NpYmxlbWVu dGVcbiIKImNvbiB1biB0aWVtcG8gbyB1biByYW5nbyBkZSB0aWVtcG9zKSBlbiB1biBmb3JtYXRv IGVzcGVjaWFsLiBDb21vXG4iCiJAc2FtcHs8MjAwMy0wOS0xNiBKdWU+fSBvIEBzYW1wezwyMDAz LTA5LTE2IEp1ZSAwOTozOT59IG9cbiIKIkBzYW1wezwyMDAzLTA5LTE2IEp1ZSAxMjowMC0xMjoz MD59LiBVbmEgbWFyY2EgZGUgdGllbXBvIHB1ZWRlXG4iCiJhcGFyZWNlciBlbiBjdWFscXVpZXIg bHVnYXIsIHRpdHVsYXIgbyBjdWVycG8gZGUgdW5hIGVudHJhZGEgZGVsXG4iCiJAJ2Fib2wgT3Jn LiBTdSBwcmVzZW5jaWEgY2F1c2EgcXVlIGxhIGVudHJhZGEgc2VhIG1vc3RyYWRhIGVuIHVuYVxu IgoiZmVjaGEgZXNwZWNAJ3tAZG90bGVzc3tpfX1maWNhIGRlIGxhIGFnZW5kYSAoQHB4cmVme0Fn ZW5kYVxuIgoic2VtYW5hbC9kaWFyaWF9KS4gRGlzdGluZ3VpbW9zOiIKCiMuIHR5cGU6IFBsYWlu IHRleHQKIzogb3JnZ3VpZGUudGV4aToxMzE4Cm1zZ2lkICIiCiJBIHNpbXBsZSB0aW1lc3RhbXAg anVzdCBhc3NpZ25zIGEgZGF0ZS90aW1lIHRvIGFuIGl0ZW0uICBUaGlzIGlzIGp1c3QgbGlrZSAi CiJ3cml0aW5nIGRvd24gYW4gYXBwb2ludG1lbnQgb3IgZXZlbnQgaW4gYSBwYXBlciBhZ2VuZGEu Igptc2dzdHIgIiIKCiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjEzMjQK Iywgbm8td3JhcAptc2dpZCAiIgoiKiBNZWV0IFBldGVyIGF0IHRoZSBtb3ZpZXNcbiIKIiAgPDIw MDYtMTEtMDEgV2VkIDE5OjE1PlxuIgoiKiBEaXNjdXNzaW9uIG9uIGNsaW1hdGUgY2hhbmdlXG4i CiIgIDwyMDA2LTExLTAyIFRodSAyMDowMC0yMjowMD5cbiIKbXNnc3RyICIiCgojLiB0eXBlOiBQ bGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MTMzMQptc2dpZCAiIgoiQSB0aW1lc3RhbXAgbWF5 IGNvbnRhaW4gYSBAZW1waHtyZXBlYXRlciBpbnRlcnZhbH0sIGluZGljYXRpbmcgdGhhdCBpdCAi CiJhcHBsaWVzIG5vdCBvbmx5IG9uIHRoZSBnaXZlbiBkYXRlLCBidXQgYWdhaW4gYW5kIGFnYWlu IGFmdGVyIGEgY2VydGFpbiAiCiJpbnRlcnZhbCBvZiBOIGRheXMgKGQpLCB3ZWVrcyAodyksIG1v bnRocyAobSksIG9yIHllYXJzICh5KS4gIFRoZSBmb2xsb3dpbmcgIgoid2lsbCBzaG93IHVwIGlu IHRoZSBhZ2VuZGEgZXZlcnkgV2VkbmVzZGF5OiIKbXNnc3RyICIiCgojLiB0eXBlOiBzbWFsbGV4 YW1wbGUKIzogb3JnZ3VpZGUudGV4aToxMzM0CiMsIG5vLXdyYXAKbXNnaWQgIiIKIiogUGljayB1 cCBTYW0gYXQgc2Nob29sXG4iCiIgIDwyMDA3LTA1LTE2IFdlZCAxMjozMCArMXc+XG4iCm1zZ3N0 ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjEzNDAKbXNnaWQgIiIK IkZvciBtb3JlIGNvbXBsZXggZGF0ZSBzcGVjaWZpY2F0aW9ucywgT3JnIG1vZGUgc3VwcG9ydHMg dXNpbmcgdGhlIHNwZWNpYWwgIgoic2V4cCBkaWFyeSBlbnRyaWVzIGltcGxlbWVudGVkIGluIHRo ZSBFbWFjcyBjYWxlbmRhci9kaWFyeSBwYWNrYWdlLiAgRm9yICIKImV4YW1wbGUiCm1zZ3N0ciAi IgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1aWRlLnRleGk6MTM0MwojLCBuby13cmFw Cm1zZ2lkICIiCiIqIFRoZSBuZXJkIG1lZXRpbmcgb24gZXZlcnkgMm5kIFRodXJzZGF5IG9mIHRo ZSBtb250aFxuIgoiICA8JSUoZGlhcnktZmxvYXQgdCA0IDIpPlxuIgptc2dzdHIgIiIKCiMuIHR5 cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxMzQ3Cm1zZ2lkICJUd28gdGltZXN0YW1w cyBjb25uZWN0ZWQgYnkgQHNhbXB7LS19IGRlbm90ZSBhIHJhbmdlLiIKbXNnc3RyICIiCgojLiB0 eXBlOiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUudGV4aToxMzUwCiMsIG5vLXdyYXAKbXNnaWQg IiIKIioqIE1lZXRpbmcgaW4gQW1zdGVyZGFtXG4iCiIgICA8MjAwNC0wOC0yMyBNb24+LS08MjAw NC0wOC0yNiBUaHU+XG4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlk ZS50ZXhpOjEzNTYKbXNnaWQgIiIKIkp1c3QgbGlrZSBhIHBsYWluIHRpbWVzdGFtcCwgYnV0IHdp dGggc3F1YXJlIGJyYWNrZXRzIGluc3RlYWQgb2YgYW5ndWxhciAiCiJvbmVzLiAgVGhlc2UgdGlt ZXN0YW1wcyBhcmUgaW5hY3RpdmUgaW4gdGhlIHNlbnNlIHRoYXQgdGhleSBkbyBAZW1waHtub3R9 ICIKInRyaWdnZXIgYW4gZW50cnkgdG8gc2hvdyB1cCBpbiB0aGUgYWdlbmRhLiIKbXNnc3RyICIi CgojLiB0eXBlOiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUudGV4aToxMzYwCiMsIG5vLXdyYXAK bXNnaWQgIiIKIiogR2lsbGlhbiBjb21lcyBsYXRlIGZvciB0aGUgZmlmdGggdGltZVxuIgoiICBb MjAwNi0xMS0wMSBXZWRdXG4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdn dWlkZS50ZXhpOjEzNjkKbXNnaWQgIiIKIkZvciBPcmcgbW9kZSB0byByZWNvZ25pemUgdGltZXN0 YW1wcywgdGhleSBuZWVkIHRvIGJlIGluIHRoZSBzcGVjaWZpYyAiCiJmb3JtYXQuICBBbGwgY29t bWFuZHMgbGlzdGVkIGJlbG93IHByb2R1Y2UgdGltZXN0YW1wcyBpbiB0aGUgY29ycmVjdCBmb3Jt YXQuIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToxMzcxCiMsIGZ1 enp5LCBuby13cmFwCm1zZ2lkICJDLWMgLiIKbXNnc3RyICJDLWMgLyIKCiMuIHR5cGU6IHRhYmxl CiM6IG9yZ2d1aWRlLnRleGk6MTM3OAptc2dpZCAiIgoiUHJvbXB0IGZvciBhIGRhdGUgYW5kIGlu c2VydCBhIGNvcnJlc3BvbmRpbmcgdGltZXN0YW1wLiAgV2hlbiB0aGUgY3Vyc29yIGlzICIKImF0 IGFuIGV4aXN0aW5nIHRpbWVzdGFtcCBpbiB0aGUgYnVmZmVyLCB0aGUgY29tbWFuZCBpcyB1c2Vk IHRvIG1vZGlmeSB0aGlzICIKInRpbWVzdGFtcCBpbnN0ZWFkIG9mIGluc2VydGluZyBhIG5ldyBv bmUuICBXaGVuIHRoaXMgY29tbWFuZCBpcyB1c2VkIHR3aWNlICIKImluIHN1Y2Nlc3Npb24sIGEg dGltZSByYW5nZSBpcyBpbnNlcnRlZC4gIFdpdGggYSBwcmVmaXgsIGFsc28gYWRkIHRoZSAiCiJj dXJyZW50IHRpbWUuIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aTox Mzc4CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJDLWMgISIKbXNnc3RyICJDLWMgLyIKCiMuIHR5 cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTM4Mgptc2dpZCAiIgoiTGlrZSBAa2Jke0MtYyAu fSwgYnV0IGluc2VydCBhbiBpbmFjdGl2ZSB0aW1lc3RhbXAgdGhhdCB3aWxsIG5vdCBjYXVzZSBh biAiCiJhZ2VuZGEgZW50cnkuIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUu dGV4aToxMzgyCiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJTLUBrZXl7bGVmdH1AcnsvfUBrZXl7 cmlnaHR9Igptc2dzdHIgIk0tUy1Aa2V5e2xlZnR9QHJ7L31Aa2V5e3JpZ2h0fSIKCiMuIHR5cGU6 IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTM4NQptc2dpZCAiQ2hhbmdlIGRhdGUgYXQgY3Vyc29y IGJ5IG9uZSBkYXkuIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aTox Mzg1CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJTLUBrZXl7dXB9QHJ7L31Aa2V5e2Rvd259Igpt c2dzdHIgIk0tUy1Aa2V5e3VwfUByey99QGtleXtkb3dufSIKCiMuIHR5cGU6IHRhYmxlCiM6IG9y Z2d1aWRlLnRleGk6MTM5MQptc2dpZCAiIgoiQ2hhbmdlIHRoZSBpdGVtIHVuZGVyIHRoZSBjdXJz b3IgaW4gYSB0aW1lc3RhbXAuICBUaGUgY3Vyc29yIGNhbiBiZSBvbiBhICIKInllYXIsIG1vbnRo LCBkYXksIGhvdXIgb3IgbWludXRlLiAgV2hlbiB0aGUgdGltZXN0YW1wIGNvbnRhaW5zIGEgdGlt ZSByYW5nZSAiCiJsaWtlIEBzYW1wezE1OjMwLTE2OjMwfSwgbW9kaWZ5aW5nIHRoZSBmaXJzdCB0 aW1lIHdpbGwgYWxzbyBzaGlmdCB0aGUgIgoic2Vjb25kLCBzaGlmdGluZyB0aGUgdGltZSBibG9j ayB3aXRoIGNvbnN0YW50IGxlbmd0aC4gIFRvIGNoYW5nZSB0aGUgbGVuZ3RoLCAiCiJtb2RpZnkg dGhlIHNlY29uZCB0aW1lLiIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1 aWRlLnRleGk6MTM5OAptc2dpZCAiIgoiV2hlbiBPcmcgbW9kZSBwcm9tcHRzIGZvciBhIGRhdGUv dGltZSwgaXQgd2lsbCBhY2NlcHQgYW55IHN0cmluZyBjb250YWluaW5nICIKInNvbWUgZGF0ZSBh bmQvb3IgdGltZSBpbmZvcm1hdGlvbiwgYW5kIGludGVsbGlnZW50bHkgaW50ZXJwcmV0IHRoZSBz dHJpbmcsICIKImRlcml2aW5nIGRlZmF1bHRzIGZvciB1bnNwZWNpZmllZCBpbmZvcm1hdGlvbiBm cm9tIHRoZSBjdXJyZW50IGRhdGUgYW5kICIKInRpbWUuICBZb3UgY2FuIGFsc28gc2VsZWN0IGEg ZGF0ZSBpbiB0aGUgcG9wLXVwIGNhbGVuZGFyLiAgU2VlIHRoZSBtYW51YWwgIgoiZm9yIG1vcmUg aW5mb3JtYXRpb24gb24gaG93IGV4YWN0bHkgdGhlIGRhdGUvdGltZSBwcm9tcHQgd29ya3MuIgpt c2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxNDAzCm1zZ2lk ICJBIHRpbWVzdGFtcCBtYXkgYmUgcHJlY2VkZWQgYnkgc3BlY2lhbCBrZXl3b3JkcyB0byBmYWNp bGl0YXRlIHBsYW5uaW5nOiIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1 aWRlLnRleGk6MTQwNwptc2dpZCAiIgoiTWVhbmluZzogdGhlIHRhc2sgKG1vc3QgbGlrZWx5IGEg VE9ETyBpdGVtLCB0aG91Z2ggbm90IG5lY2Vzc2FyaWx5KSBpcyAiCiJzdXBwb3NlZCB0byBiZSBm aW5pc2hlZCBvbiB0aGF0IGRhdGUuIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3Vp ZGUudGV4aToxNDA4IG9yZ2d1aWRlLnRleGk6MTk3OQojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAi Qy1jIEMtZCIKbXNnc3RyICJDLWMgQy1jIGQiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50 ZXhpOjE0MTEKbXNnaWQgIiIKIkluc2VydCBAc2FtcHtERUFETElORX0ga2V5d29yZCBhbG9uZyB3 aXRoIGEgc3RhbXAsIGluIHRoZSBsaW5lIGZvbGxvd2luZyB0aGUgIgoiaGVhZGxpbmUuIgptc2dz dHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxNDE4Cm1zZ2lkICIi CiJPbiB0aGUgZGVhZGxpbmUgZGF0ZSwgdGhlIHRhc2sgd2lsbCBiZSBsaXN0ZWQgaW4gdGhlIGFn ZW5kYS4gIEluIGFkZGl0aW9uLCAiCiJ0aGUgYWdlbmRhIGZvciBAZW1waHt0b2RheX0gd2lsbCBj YXJyeSBhIHdhcm5pbmcgYWJvdXQgdGhlIGFwcHJvYWNoaW5nIG9yICIKIm1pc3NlZCBkZWFkbGlu ZSwgc3RhcnRpbmcgQGNvZGV7b3JnLWRlYWRsaW5lLXdhcm5pbmctZGF5c30gYmVmb3JlIHRoZSBk dWUgIgoiZGF0ZSwgYW5kIGNvbnRpbnVpbmcgdW50aWwgdGhlIGVudHJ5IGlzIG1hcmtlZCBET05F LiAgQW4gZXhhbXBsZToiCm1zZ3N0ciAiIgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1 aWRlLnRleGk6MTQyMwojLCBuby13cmFwCm1zZ2lkICIiCiIqKiogVE9ETyB3cml0ZSBhcnRpY2xl IGFib3V0IHRoZSBFYXJ0aCBmb3IgdGhlIEd1aWRlXG4iCiIgICAgVGhlIGVkaXRvciBpbiBjaGFy Z2UgaXMgW1tiYmRiOkZvcmQgUHJlZmVjdF1dXG4iCiIgICAgREVBRExJTkU6IDwyMDA0LTAyLTI5 IFN1bj5cbiIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6 MTQzMQptc2dpZCAiIgoiTWVhbmluZzogeW91IGFyZSBAaXtwbGFubmluZyB0byBzdGFydCB3b3Jr aW5nfSBvbiB0aGF0IHRhc2sgb24gdGhlIGdpdmVuICIKImRhdGVAZm9vdG5vdGV7VGhpcyBpcyBx dWl0ZSBkaWZmZXJlbnQgZnJvbSB3aGF0IGlzIG5vcm1hbGx5IHVuZGVyc3Rvb2QgYnkgQGkiCiJ7 c2NoZWR1bGluZyBhIG1lZXRpbmd9LCB3aGljaCBpcyBkb25lIGluIE9yZy1tb2RlIGJ5IGp1c3Qg aW5zZXJ0aW5nIGEgdGltZSAiCiJzdGFtcCB3aXRob3V0IGtleXdvcmQufS4iCm1zZ3N0ciAiIgoK Iy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjE0MzMgb3JnZ3VpZGUudGV4aToxOTc2CiMs IGZ1enp5LCBuby13cmFwCm1zZ2lkICJDLWMgQy1zIgptc2dzdHIgIkMtYyBDLW4iCgojLiB0eXBl OiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjE0MzYKbXNnaWQgIiIKIkluc2VydCBAc2FtcHtTQ0hF RFVMRUR9IGtleXdvcmQgYWxvbmcgd2l0aCBhIHN0YW1wLCBpbiB0aGUgbGluZSBmb2xsb3dpbmcg IgoidGhlIGhlYWRsaW5lLiIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1 aWRlLnRleGk6MTQ0NAptc2dpZCAiIgoiVGhlIGhlYWRsaW5lIHdpbGwgYmUgbGlzdGVkIHVuZGVy IHRoZSBnaXZlbiBkYXRlQGZvb3Rub3Rle0l0IHdpbGwgc3RpbGwgYmUgIgoibGlzdGVkIG9uIHRo YXQgZGF0ZSBhZnRlciBpdCBoYXMgYmVlbiBtYXJrZWQgRE9ORS4gIElmIHlvdSBkb24ndCBsaWtl IHRoaXMsICIKInNldCB0aGUgdmFyaWFibGUgQGNvZGV7b3JnLWFnZW5kYS1za2lwLXNjaGVkdWxl ZC1pZi1kb25lfS59LiAgSW4gYWRkaXRpb24sIGEgIgoicmVtaW5kZXIgdGhhdCB0aGUgc2NoZWR1 bGVkIGRhdGUgaGFzIHBhc3NlZCB3aWxsIGJlIHByZXNlbnQgaW4gdGhlICIKImNvbXBpbGF0aW9u IGZvciBAZW1waHt0b2RheX0sIHVudGlsIHRoZSBlbnRyeSBpcyBtYXJrZWQgRE9ORS4gIEkuZS5A OiB0aGUgIgoidGFzayB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgZm9yd2FyZGVkIHVudGlsIGNvbXBs ZXRlZC4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1aWRlLnRleGk6 MTQ0OAojLCBuby13cmFwCm1zZ2lkICIiCiIqKiogVE9ETyBDYWxsIFRyaWxsaWFuIGZvciBhIGRh dGUgb24gTmV3IFllYXJzIEV2ZS5cbiIKIiAgICBTQ0hFRFVMRUQ6IDwyMDA0LTEyLTI1IFNhdD5c biIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MTQ1Mwpt c2dpZCAiIgoiU29tZSB0YXNrcyBuZWVkIHRvIGJlIHJlcGVhdGVkIGFnYWluIGFuZCBhZ2Fpbi4g IE9yZyBtb2RlIGhlbHBzIHRvIG9yZ2FuaXplICIKInN1Y2ggdGFza3MgdXNpbmcgYSBzby1jYWxs ZWQgcmVwZWF0ZXIgaW4gYSBERUFETElORSwgU0NIRURVTEVELCBvciBwbGFpbiAiCiJ0aW1lc3Rh bXAuICBJbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUiCm1zZ3N0ciAiIgoKIy4gdHlwZTogc21hbGxl eGFtcGxlCiM6IG9yZ2d1aWRlLnRleGk6MTQ1NgojLCBuby13cmFwCm1zZ2lkICIiCiIqKiBUT0RP IFBheSB0aGUgcmVudFxuIgoiICAgREVBRExJTkU6IDwyMDA1LTEwLTAxIFNhdCArMW0+XG4iCm1z Z3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjE0NjEKbXNnaWQg IiIKInRoZSBAY29kZXsrMW19IGlzIGEgcmVwZWF0ZXI7IHRoZSBpbnRlbmRlZCBpbnRlcnByZXRh dGlvbiBpcyB0aGF0IHRoZSB0YXNrICIKImhhcyBhIGRlYWRsaW5lIG9uIDwyMDA1LTEwLTAxPiBh bmQgcmVwZWF0cyBpdHNlbGYgZXZlcnkgKG9uZSkgbW9udGggc3RhcnRpbmcgIgoiZnJvbSB0aGF0 IHRpbWUuIgptc2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTox NDY3Cm1zZ2lkICIiCiJPcmcgbW9kZSBhbGxvd3MgeW91IHRvIGNsb2NrIHRoZSB0aW1lIHlvdSBz cGVuZCBvbiBzcGVjaWZpYyB0YXNrcyBpbiBhICIKInByb2plY3QuIgptc2dzdHIgIiIKCiMuIHR5 cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToxNDY5CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJD LWMgQy14IEMtaSIKbXNnc3RyICJDLWMgQy14IGYiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlk ZS50ZXhpOjE0NzQKbXNnaWQgIiIKIlN0YXJ0IHRoZSBjbG9jayBvbiB0aGUgY3VycmVudCBpdGVt IChjbG9jay1pbikuICBUaGlzIGluc2VydHMgdGhlIENMT0NLICIKImtleXdvcmQgdG9nZXRoZXIg d2l0aCBhIHRpbWVzdGFtcC4gIFdoZW4gY2FsbGVkIHdpdGggYSBAa2Jke0MtdX0gcHJlZml4ICIK ImFyZ3VtZW50LCBzZWxlY3QgdGhlIHRhc2sgZnJvbSBhIGxpc3Qgb2YgcmVjZW50bHkgY2xvY2tl ZCB0YXNrcy4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjE0NzQK IywgZnV6enksIG5vLXdyYXAKbXNnaWQgIkMtYyBDLXggQy1vIgptc2dzdHIgIkMtYyBDLXggZiIK CiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTQ3OQptc2dpZCAiIgoiU3RvcCB0aGUg Y2xvY2sgKGNsb2NrLW91dCkuICBUaGlzIGluc2VydHMgYW5vdGhlciB0aW1lc3RhbXAgYXQgdGhl IHNhbWUgIgoibG9jYXRpb24gd2hlcmUgdGhlIGNsb2NrIHdhcyBsYXN0IHN0YXJ0ZWQuICBJdCBh bHNvIGRpcmVjdGx5IGNvbXB1dGVzIHRoZSAiCiJyZXN1bHRpbmcgdGltZSBpbiBpbnNlcnRzIGl0 IGFmdGVyIHRoZSB0aW1lIHJhbmdlIGFzIEBzYW1wez0+IEhIOk1NfS4iCm1zZ3N0ciAiIgoKIy4g dHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjE0NzkKIywgZnV6enksIG5vLXdyYXAKbXNnaWQg IkMtYyBDLXggQy1lIgptc2dzdHIgIkMtYyBDLXggZiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1 aWRlLnRleGk6MTQ4MQptc2dpZCAiVXBkYXRlIHRoZSBlZmZvcnQgZXN0aW1hdGUgZm9yIHRoZSBj dXJyZW50IGNsb2NrIHRhc2suIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUu dGV4aToxNDgxCiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJDLWMgQy14IEMteCIKbXNnc3RyICJD LWMgQy14IGYiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjE0ODQKbXNnaWQgIiIK IkNhbmNlbCB0aGUgY3VycmVudCBjbG9jay4gIFRoaXMgaXMgdXNlZnVsIGlmIGEgY2xvY2sgd2Fz IHN0YXJ0ZWQgYnkgbWlzdGFrZSwgIgoib3IgaWYgeW91IGVuZGVkIHVwIHdvcmtpbmcgb24gc29t ZXRoaW5nIGVsc2UuIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aTox NDg0CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJDLWMgQy14IEMtaiIKbXNnc3RyICJDLWMgQy14 IGYiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjE0ODgKbXNnaWQgIiIKIkp1bXAg dG8gdGhlIGVudHJ5IHRoYXQgY29udGFpbnMgdGhlIGN1cnJlbnRseSBydW5uaW5nIGNsb2NrLiAg V2l0aCBhIEBrYmR7Qy0iCiJ1fSBwcmVmaXggYXJnLCBzZWxlY3QgdGhlIHRhcmdldCB0YXNrIGZy b20gYSBsaXN0IG9mIHJlY2VudGx5IGNsb2NrZWQgdGFza3MuIgptc2dzdHIgIiIKCiMuIHR5cGU6 IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToxNDg4CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJDLWMg Qy14IEMtciIKbXNnc3RyICJDLWMgQy14IGYiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50 ZXhpOjE0OTIKbXNnaWQgIiIKIkluc2VydCBhIGR5bmFtaWMgYmxvY2sgY29udGFpbmluZyBhIGNs b2NrIHJlcG9ydCBhcyBhbiBPcmctbW9kZSB0YWJsZSBpbnRvICIKInRoZSBjdXJyZW50IGZpbGUu ICBXaGVuIHRoZSBjdXJzb3IgaXMgYXQgYW4gZXhpc3RpbmcgY2xvY2sgdGFibGUsIGp1c3QgIgoi dXBkYXRlIGl0LiIKbXNnc3RyICIiCgojLiB0eXBlOiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUu dGV4aToxNDk1CiMsIG5vLXdyYXAKbXNnaWQgIiIKIiMrQkVHSU46IGNsb2NrdGFibGUgOm1heGxl dmVsIDIgOmVtcGhhc2l6ZSBuaWwgOnNjb3BlIGZpbGVcbiIKIiMrRU5EOiBjbG9ja3RhYmxlXG4i Cm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxNDk4Cm1zZ2lkICIi CiJGb3IgZGV0YWlscyBhYm91dCBob3cgdG8gY3VzdG9taXplIHRoaXMgdmlldywgc2VlIEB1cmVm e2h0dHA6Ly9vcmdtb2RlLm9yZy8iCiJtYW51YWwvQ2xvY2tpbmctd29yay10aW1lLmh0bWwjQ2xv Y2tpbmctd29yay10aW1lLHRoZSBtYW51YWx9LiIKbXNnc3RyICIiCgojLiB0eXBlOiB0YWJsZQoj OiBvcmdndWlkZS50ZXhpOjE1MDEKbXNnaWQgIiIKIlVwZGF0ZSBkeW5hbWljIGJsb2NrIGF0IHBv aW50LiAgVGhlIGN1cnNvciBuZWVkcyB0byBiZSBpbiB0aGUgQGNvZGV7IytCRUdJTn0gIgoibGlu ZSBvZiB0aGUgZHluYW1pYyBibG9jay4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAoj OiBvcmdndWlkZS50ZXhpOjE1MDYKbXNnaWQgIiIKIlRoZSBAa2Jke2x9IGtleSBtYXkgYmUgdXNl ZCBpbiB0aGUgdGltZWxpbmUgKEBweHJlZntUaW1lbGluZX0pIGFuZCBpbiB0aGUgIgoiYWdlbmRh IChAcHhyZWZ7V2Vla2x5L2RhaWx5IGFnZW5kYX0pIHRvIHNob3cgd2hpY2ggdGFza3MgaGF2ZSBi ZWVuIHdvcmtlZCBvbiAiCiJvciBjbG9zZWQgZHVyaW5nIGEgZGF5LiIKbXNnc3RyICIiCiJMYSB0 ZWNsYSBAa2Jke2x9IHB1ZWRlIHNlciB1c2FkYSBlbiBsYSBsQCd7QGRvdGxlc3N7aX19bmVhIGRl IHRpZW1wb1xuIgoiKEBweHJlZntMQCd7QGRvdGxlc3N7aX19bmVhIGRlIHRpZW1wb30pIHkgZW4g bGEgYWdlbmRhIChAcHhyZWZ7QWdlbmRhXG4iCiJzZW1hbmFsL2RpYXJpYX0pIHBhcmEgbW9zdHJh ciBsYXMgdGFyZWFzIGVuIGxhcyBxdWUgc2UgdHJhYmFqYXJAJ2Egb1xuIgoiY2VycmFyQCdhbiBk dXJhbnRlIGVsIGRAJ3tAZG90bGVzc3tpfX1hLiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3Jn Z3VpZGUudGV4aToxNTEzCm1zZ2lkICIiCiJAc2VlYWxzb3sgQHVyZWZ7aHR0cDovL29yZ21vZGUu b3JnL21hbnVhbC9EYXRlcy1hbmQtVGltZXMuaHRtbCNEYXRlcy1hbmQtIgoiVGltZXMsIENoYXB0 ZXIgOCBvZiB0aGUgbWFudWFsfUAqIEB1cmVme2h0dHA6Ly9tZW1iZXJzLm9wdHVzbmV0LmNvbS5h dS8iCiJ+Y2hhcmxlczU3L0dURC9vcmdfZGF0ZXMvLCBDaGFybGVzIENhdmUncyBEYXRlIGFuZCBU aW1lIHR1dG9yaWFsfUAqIEB1cmVmIgoie2h0dHA6Ly9kb2Mubm9yYW5nLmNhL29yZy1tb2RlLmh0 bWwjQ2xvY2tpbmcsIEJlcm50IEhhbnNlbidzIGNsb2NraW5nICIKIndvcmtmbG93fX0iCm1zZ3N0 ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjE1MjMKbXNnaWQgIiIK IkFuIGltcG9ydGFudCBwYXJ0IG9mIGFueSBvcmdhbml6YXRpb24gc3lzdGVtIGlzIHRoZSBhYmls aXR5IHRvIHF1aWNrbHkgIgoiY2FwdHVyZSBuZXcgaWRlYXMgYW5kIHRhc2tzLCBhbmQgdG8gYXNz b2NpYXRlIHJlZmVyZW5jZSBtYXRlcmlhbCB3aXRoIHRoZW0uICAiCiJPcmcgZGVmaW5lcyBhIGNh cHR1cmUgcHJvY2VzcyB0byBjcmVhdGUgdGFza3MuICBJdCBzdG9yZXMgZmlsZXMgcmVsYXRlZCB0 byBhICIKInRhc2sgKEBpe2F0dGFjaG1lbnRzfSkgaW4gYSBzcGVjaWFsIGRpcmVjdG9yeS4gIE9u Y2UgaW4gdGhlIHN5c3RlbSwgdGFza3MgIgoiYW5kIHByb2plY3RzIG5lZWQgdG8gYmUgbW92ZWQg YXJvdW5kLiAgTW92aW5nIGNvbXBsZXRlZCBwcm9qZWN0IHRyZWVzIHRvIGFuICIKImFyY2hpdmUg ZmlsZSBrZWVwcyB0aGUgc3lzdGVtIGNvbXBhY3QgYW5kIGZhc3QuIgptc2dzdHIgIiIKCiMuIHR5 cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxNTM3Cm1zZ2lkICIiCiJPcmcncyBtZXRo b2QgZm9yIGNhcHR1cmluZyBuZXcgaXRlbXMgaXMgaGVhdmlseSBpbnNwaXJlZCBieSBKb2huIFdp ZWdsZXkgIgoiZXhjZWxsZW50IHJlbWVtYmVyIHBhY2thZ2UuICBJdCBsZXRzIHlvdSBzdG9yZSBx dWljayBub3RlcyB3aXRoIGxpdHRsZSAiCiJpbnRlcnJ1cHRpb24gb2YgeW91ciB3b3JrIGZsb3cu ICBPcmcgbGV0cyB5b3UgZGVmaW5lIHRlbXBsYXRlcyBmb3IgbmV3ICIKImVudHJpZXMgYW5kIGFz c29jaWF0ZSB0aGVtIHdpdGggZGlmZmVyZW50IHRhcmdldHMgZm9yIHN0b3Jpbmcgbm90ZXMuIgpt c2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxNTUyCm1zZ2lk ICIiCiJUaGUgZm9sbG93aW5nIGN1c3RvbWl6YXRpb24gc2V0cyBhIGRlZmF1bHQgdGFyZ2V0QGZv b3Rub3Rle1VzaW5nIGNhcHR1cmUgIgoidGVtcGxhdGVzLCB5b3UgY2FuIGRlZmluZSBtb3JlIGZp bmUtZ3JhaW5lZCBjYXB0dXJlIGxvY2F0aW9ucywgc2VlIEByZWYiCiJ7Q2FwdHVyZSB0ZW1wbGF0 ZXN9Ln0gZmlsZSBmb3Igbm90ZXMsIGFuZCBkZWZpbmVzIGEgZ2xvYmFsIGtleUBmb290bm90ZSIK IntQbGVhc2Ugc2VsZWN0IHlvdXIgb3duIGtleSwgQGtiZHtDLWMgY30gaXMgb25seSBhIHN1Z2dl c3Rpb24ufSBmb3IgIgoiY2FwdHVyaW5nIG5ldyBzdHVmZi4iCm1zZ3N0ciAiIgoiLi4uLi4uLi4u Li4uLi4uIEBmb290bm90ZXtVc2FuZG8gcGxhbnRpbGxhcyBkZSBjYXB0dXJhc1xuIgoiLi4uLi4u LkByZWZ7UGxhbnRpbGxhcyBkZSBjYXB0dXJhc30ufSAuLi4uLi4uLi4uLi4uIgoKIy4gdHlwZTog ZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjE1NTYKIywgbm8td3JhcAptc2dpZCAiIgoiKHNldHEg b3JnLWRlZmF1bHQtbm90ZXMtZmlsZSAoY29uY2F0IG9yZy1kaXJlY3RvcnkgXCIvbm90ZXMub3Jn XCIpKVxuIgoiKGRlZmluZS1rZXkgZ2xvYmFsLW1hcCBcIlxcQy1jY1wiICdvcmctY2FwdHVyZSlc biIKbXNnc3RyICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MTU2MgojLCBmdXp6 eSwgbm8td3JhcAptc2dpZCAiQy1jIGMiCm1zZ3N0ciAiQy1jIEMtYyIKCiMuIHR5cGU6IHRhYmxl CiM6IG9yZ2d1aWRlLnRleGk6MTU2NQptc2dpZCAiIgoiU3RhcnQgYSBjYXB0dXJlIHByb2Nlc3Mu ICBZb3Ugd2lsbCBiZSBwbGFjZWQgaW50byBhIG5hcnJvd2VkIGluZGlyZWN0IGJ1ZmZlciAiCiJ0 byBlZGl0IHRoZSBpdGVtLiIKbXNnc3RyICIiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50 ZXhpOjE1NjkKbXNnaWQgIiIKIk9uY2UgeW91IGFyZSBkb25lIGVudGVyaW5nIGluZm9ybWF0aW9u IGludG8gdGhlIGNhcHR1cmUgYnVmZmVyLCBAa2Jke0MtYyBDLSIKImN9IHdpbGwgcmV0dXJuIHlv dSB0byB0aGUgd2luZG93IGNvbmZpZ3VyYXRpb24gYmVmb3JlIHRoZSBjYXB0dXJlIHByb2Nlc3Ms ICIKInNvIHRoYXQgeW91IGNhbiByZXN1bWUgeW91ciB3b3JrIHdpdGhvdXQgZnVydGhlciBkaXN0 cmFjdGlvbi4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxNTcx CiMsIGZ1enp5Cm1zZ2lkICIiCiJGaW5hbGl6ZSBieSBtb3ZpbmcgdGhlIGVudHJ5IHRvIGEgcmVm aWxlIGxvY2F0aW9uIChAcHhyZWZ7UmVmaWxlIGFuZCBjb3B5fSkuIgptc2dzdHIgIiIKIkZpbmFs aXphIG1vdmllbmRvIGxhIGVudHJhZGEgYSB1bmEgbnVldmEgbG9jYWxpemFjaUAnb25cbiIKIihA cHhyZWZ7TW92aWVuZG8gbm90YXN9KS4gIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhp OjE1NzEKIywgZnV6enksIG5vLXdyYXAKbXNnaWQgIkMtYyBDLWsiCm1zZ3N0ciAiQy1jIEMtbiIK CiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTU3Mwptc2dpZCAiQWJvcnQgdGhlIGNh cHR1cmUgcHJvY2VzcyBhbmQgcmV0dXJuIHRvIHRoZSBwcmV2aW91cyBzdGF0ZS4iCm1zZ3N0ciAi IgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjE1ODMKbXNnaWQgIiIKIllv dSBjYW4gdXNlIHRlbXBsYXRlcyB0byBnZW5lcmF0ZSBkaWZmZXJlbnQgdHlwZXMgb2YgY2FwdHVy ZSBub3RlcywgYW5kIHRvICIKInN0b3JlIHRoZW0gaW4gZGlmZmVyZW50IHBsYWNlcy4gIEZvciBl eGFtcGxlLCBpZiB5b3Ugd291bGQgbGlrZSB0byBzdG9yZSBuZXcgIgoidGFza3MgdW5kZXIgYSBo ZWFkaW5nIEBzYW1we1Rhc2tzfSBpbiBmaWxlIEBmaWxle1RPRE8ub3JnfSwgYW5kIGpvdXJuYWwg IgoiZW50cmllcyBpbiBhIGRhdGUgdHJlZSBpbiBAZmlsZXtqb3VybmFsLm9yZ30geW91IGNvdWxk IHVzZToiCm1zZ3N0ciAiIgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1aWRlLnRleGk6 MTU5MAojLCBuby13cmFwCm1zZ2lkICIiCiIoc2V0cSBvcmctY2FwdHVyZS10ZW1wbGF0ZXNcbiIK IiAnKChcInRcIiBcIlRvZG9cIiBlbnRyeSAoZmlsZStoZWFkbGluZSBcIn4vb3JnL2d0ZC5vcmdc IiBcIlRhc2tzXCIpXG4iCiIgICAgICAgIFwiKiBUT0RPICU/XFxuICAlaVxcbiAgJWFcIilcbiIK IiAgIChcImpcIiBcIkpvdXJuYWxcIiBlbnRyeSAoZmlsZStkYXRldHJlZSBcIn4vb3JnL2pvdXJu YWwub3JnXCIpXG4iCiIgICAgICAgIFwiKiAlP1xcbkVudGVyZWQgb24gJVVcXG4gICVpXFxuICAl YVwiKSkpXG4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhp OjE1OTcKbXNnaWQgIiIKInRlbXBsYXRlLCB0aGUgc2Vjb25kIGlzIGEgc2hvcnQgZGVzY3JpcHRp b24uICBUaGVuIGZvbGxvd3MgdGhlIHR5cGUgb2YgdGhlICIKImVudHJ5IGFuZCBhIGRlZmluaXRp b24gb2YgdGhlIHRhcmdldCBsb2NhdGlvbiBmb3Igc3RvcmluZyB0aGUgbm90ZS4gICIKIkZpbmFs bHksIHRoZSB0ZW1wbGF0ZSBpdHNlbGYsIGEgc3RyaW5nIHdpdGggJS1lc2NhcGVzIHRvIGZpbGwg aW4gaW5mb3JtYXRpb24gIgoiYmFzZWQgb24gdGltZSBhbmQgY29udGV4dC4iCm1zZ3N0ciAiIgoK Iy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjE2MDAKbXNnaWQgIiIKIldoZW4g eW91IGNhbGwgQGtiZHtNLXggb3JnLWNhcHR1cmV9LCBPcmcgd2lsbCBwcm9tcHQgZm9yIGEga2V5 IHRvIHNlbGVjdCB0aGUgIgoidGVtcGxhdGUgKGlmIHlvdSBoYXZlIG1vcmUgdGhhbiBvbmUgdGVt cGxhdGUpIGFuZCB0aGVuIHByZXBhcmUgdGhlIGJ1ZmZlciAiCiJsaWtlIgptc2dzdHIgIiIKCiMu IHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjE2MDMKIywgbm8td3JhcAptc2dp ZCAiIgoiKiBUT0RPXG4iCiIgIFtbZmlsZTpAdmFye2xpbmsgdG8gd2hlcmUgeW91IHdlcmUgd2hl biBpbml0aWF0aW5nIGNhcHR1cmV9XV1cbiIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0 CiM6IG9yZ2d1aWRlLnRleGk6MTYxMAptc2dpZCAiIgoiRHVyaW5nIGV4cGFuc2lvbiBvZiB0aGUg dGVtcGxhdGUsIHNwZWNpYWwgQGtiZHslfS1lc2NhcGVzQGZvb3Rub3Rle0lmIHlvdSAiCiJuZWVk IG9uZSBvZiB0aGVzZSBzZXF1ZW5jZXMgbGl0ZXJhbGx5LCBlc2NhcGUgdGhlIEBrYmR7JX0gd2l0 aCBhIGJhY2tzbGFzaC59ICIKImFsbG93IGR5bmFtaWMgaW5zZXJ0aW9uIG9mIGNvbnRlbnQuICBI ZXJlIGlzIGEgc21hbGwgc2VsZWN0aW9uIG9mIHRoZSAiCiJwb3NzaWJpbGl0aWVzLCBjb25zdWx0 IHRoZSBtYW51YWwgZm9yIG1vcmUuIgptc2dzdHIgIiIKCiMuIHR5cGU6IHNtYWxsZXhhbXBsZQoj OiBvcmdndWlkZS50ZXhpOjE2MTYKIywgbm8td3JhcAptc2dpZCAiIgoiJWEgICAgICAgICAgQHJ7 YW5ub3RhdGlvbiwgbm9ybWFsbHkgdGhlIGxpbmsgY3JlYXRlZCB3aXRoIEBjb2Rle29yZy1zdG9y ZS1saW5rfX1cbiIKIiVpICAgICAgICAgIEBye2luaXRpYWwgY29udGVudCwgdGhlIHJlZ2lvbiB3 aGVuIHJlbWVtYmVyIGlzIGNhbGxlZCB3aXRoIEMtdS59XG4iCiIldCAgICAgICAgICBAcnt0aW1l c3RhbXAsIGRhdGUgb25seX1cbiIKIiVUICAgICAgICAgIEBye3RpbWVzdGFtcCB3aXRoIGRhdGUg YW5kIHRpbWV9XG4iCiIldSwgJVUgICAgICBAcntsaWtlIHRoZSBhYm92ZSwgYnV0IGluYWN0aXZl IHRpbWVzdGFtcHN9XG4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlk ZS50ZXhpOjE2MjUKbXNnaWQgIiIKIldoZW4gcmV2aWV3aW5nIHRoZSBjYXB0dXJlZCBkYXRhLCB5 b3UgbWF5IHdhbnQgdG8gcmVmaWxlIG9yIGNvcHkgc29tZSBvZiB0aGUgIgoiZW50cmllcyBpbnRv IGEgZGlmZmVyZW50IGxpc3QsIGZvciBleGFtcGxlIGludG8gYSBwcm9qZWN0LiAgQ3V0dGluZywg ZmluZGluZyAiCiJ0aGUgcmlnaHQgbG9jYXRpb24sIGFuZCB0aGVuIHBhc3RpbmcgdGhlIG5vdGUg aXMgY3VtYmVyc29tZS4gIFRvIHNpbXBsaWZ5ICIKInRoaXMgcHJvY2VzcywgeW91IGNhbiB1c2Ug dGhlIGZvbGxvd2luZyBzcGVjaWFsIGNvbW1hbmQ6Igptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0K Izogb3JnZ3VpZGUudGV4aToxNjI3CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJDLWMgTS14Igpt c2dzdHIgIkMtYyAtIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxNjMwCm1zZ2lk ICIiCiJDb3B5IHRoZSBlbnRyeSBvciByZWdpb24gYXQgcG9pbnQuICBUaGlzIGNvbW1hbmQgYmVo YXZlcyBsaWtlIEBjb2Rle29yZy0iCiJyZWZpbGV9LCBleGNlcHQgdGhhdCB0aGUgb3JpZ2luYWwg bm90ZSB3aWxsIG5vdCBiZSBkZWxldGVkLiIKbXNnc3RyICIiCgojLiB0eXBlOiB0YWJsZQojOiBv cmdndWlkZS50ZXhpOjE2MzcKbXNnaWQgIiIKIlJlZmlsZSB0aGUgZW50cnkgb3IgcmVnaW9uIGF0 IHBvaW50LiAgVGhpcyBjb21tYW5kIG9mZmVycyBwb3NzaWJsZSBsb2NhdGlvbnMgIgoiZm9yIHJl ZmlsaW5nIHRoZSBlbnRyeSBhbmQgbGV0cyB5b3Ugc2VsZWN0IG9uZSB3aXRoIGNvbXBsZXRpb24u ICBUaGUgaXRlbSAiCiIob3IgYWxsIGl0ZW1zIGluIHRoZSByZWdpb24pIGlzIGZpbGVkIGJlbG93 IHRoZSB0YXJnZXQgaGVhZGluZyBhcyBhIHN1Yml0ZW0uIgoiQCogQnkgZGVmYXVsdCwgYWxsIGxl dmVsIDEgaGVhZGxpbmVzIGluIHRoZSBjdXJyZW50IGJ1ZmZlciBhcmUgY29uc2lkZXJlZCB0byAi CiJiZSB0YXJnZXRzLCBidXQgeW91IGNhbiBoYXZlIG1vcmUgY29tcGxleCBkZWZpbml0aW9ucyBh Y3Jvc3MgYSBudW1iZXIgb2YgIgoiZmlsZXMuICBTZWUgdGhlIHZhcmlhYmxlIEBjb2Rle29yZy1y ZWZpbGUtdGFyZ2V0c30gZm9yIGRldGFpbHMuIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzog b3JnZ3VpZGUudGV4aToxNjM3CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJDLXUgQy1jIEMtdyIK bXNnc3RyICJDLWMgQy13IgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxNjM5Cm1z Z2lkICJVc2UgdGhlIHJlZmlsZSBpbnRlcmZhY2UgdG8ganVtcCB0byBhIGhlYWRpbmcuIgptc2dz dHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToxNjM5CiMsIGZ1enp5LCBuby13 cmFwCm1zZ2lkICJDLXUgQy11IEMtYyBDLXciCm1zZ3N0ciAiQy1jIEMtdyIKCiMuIHR5cGU6IHRh YmxlCiM6IG9yZ2d1aWRlLnRleGk6MTY0MQptc2dpZCAiSnVtcCB0byB0aGUgbG9jYXRpb24gd2hl cmUgQGNvZGV7b3JnLXJlZmlsZX0gbGFzdCBtb3ZlZCBhIHRyZWUgdG8uIgptc2dzdHIgIiIKCiMu IHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxNjUyCm1zZ2lkICIiCiJXaGVuIGEg cHJvamVjdCByZXByZXNlbnRlZCBieSBhIChzdWIpdHJlZSBpcyBmaW5pc2hlZCwgeW91IG1heSB3 YW50IHRvIG1vdmUgIgoidGhlIHRyZWUgb3V0IG9mIHRoZSB3YXkgYW5kIHRvIHN0b3AgaXQgZnJv bSBjb250cmlidXRpbmcgdG8gdGhlIGFnZW5kYS4gICIKIkFyY2hpdmluZyBpcyBpbXBvcnRhbnQg dG8ga2VlcCB5b3VyIHdvcmtpbmcgZmlsZXMgY29tcGFjdCBhbmQgZ2xvYmFsICIKInNlYXJjaGVz IGxpa2UgdGhlIGNvbnN0cnVjdGlvbiBvZiBhZ2VuZGEgdmlld3MgZmFzdC4gIFRoZSBtb3N0IGNv bW1vbiAiCiJhcmNoaXZpbmcgYWN0aW9uIGlzIHRvIG1vdmUgYSBwcm9qZWN0IHRyZWUgdG8gYW5v dGhlciBmaWxlLCB0aGUgYXJjaGl2ZSBmaWxlLiIKbXNnc3RyICIiCgojLiB0eXBlOiBpdGVtCiM6 IG9yZ2d1aWRlLnRleGk6MTY1NAojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiQy1jIEMteCBDLWEi Cm1zZ3N0ciAiQy1jIEMteCBmIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxNjU3 Cm1zZ2lkICIiCiJBcmNoaXZlIHRoZSBjdXJyZW50IGVudHJ5IHVzaW5nIHRoZSBjb21tYW5kIHNw ZWNpZmllZCBpbiB0aGUgdmFyaWFibGUgQGNvZGUiCiJ7b3JnLWFyY2hpdmUtZGVmYXVsdC1jb21t YW5kfS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjE2NTcKIywg bm8td3JhcAptc2dpZCAiQy1jIEMteCBDLXNAIEBye29yIHNob3J0fSBAIEMtYyAkIgptc2dzdHIg IiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTY2MAptc2dpZCAiIgoiQXJjaGl2 ZSB0aGUgc3VidHJlZSBzdGFydGluZyBhdCB0aGUgY3Vyc29yIHBvc2l0aW9uIHRvIHRoZSBsb2Nh dGlvbiBnaXZlbiBieSAiCiJAY29kZXtvcmctYXJjaGl2ZS1sb2NhdGlvbn0uIgptc2dzdHIgIiIK CiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxNjY4Cm1zZ2lkICIiCiJUaGUg ZGVmYXVsdCBhcmNoaXZlIGxvY2F0aW9uIGlzIGEgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3Rvcnkg YXMgdGhlIGN1cnJlbnQgIgoiZmlsZSwgd2l0aCB0aGUgbmFtZSBkZXJpdmVkIGJ5IGFwcGVuZGlu ZyBAZmlsZXtfYXJjaGl2ZX0gdG8gdGhlIGN1cnJlbnQgZmlsZSAiCiJuYW1lLiAgRm9yIGluZm9y bWF0aW9uIGFuZCBleGFtcGxlcyBvbiBob3cgdG8gY2hhbmdlIHRoaXMsIHNlZSB0aGUgIgoiZG9j dW1lbnRhdGlvbiBzdHJpbmcgb2YgdGhlIHZhcmlhYmxlIEBjb2Rle29yZy1hcmNoaXZlLWxvY2F0 aW9ufS4gIFRoZXJlIGlzICIKImFsc28gYW4gaW4tYnVmZmVyIG9wdGlvbiBmb3Igc2V0dGluZyB0 aGlzIHZhcmlhYmxlLCBmb3IgZXhhbXBsZSIKbXNnc3RyICIiCgojLiB0eXBlOiBzbWFsbGV4YW1w bGUKIzogb3JnZ3VpZGUudGV4aToxNjcxCiMsIG5vLXdyYXAKbXNnaWQgIiMrQVJDSElWRTogJXNf ZG9uZTo6XG4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhp OjE2ODAKbXNnaWQgIiIKIkBzZWVhbHNveyBAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvbWFudWFs L0NhcHR1cmUtXzAwMmQtUmVmaWxlLV8wMDJkLUFyY2hpdmUuIgoiaHRtbCNDYXB0dXJlLV8wMDJk LVJlZmlsZS1fMDAyZC1BcmNoaXZlLCBDaGFwdGVyIDkgb2YgdGhlIG1hbnVhbH1AKiBAdXJlZiIK IntodHRwOi8vbWVtYmVycy5vcHR1c25ldC5jb20uYXUvfmNoYXJsZXM1Ny9HVEQvcmVtZW1iZXIu aHRtbCwgQ2hhcmxlcyBDYXZlJ3MgIgoicmVtZW1iZXIgdHV0b3JpYWx9QCogQHVyZWZ7aHR0cDov L29yZ21vZGUub3JnL3dvcmcvb3JnLXR1dG9yaWFscy9vcmctIgoicHJvdG9jb2wtY3VzdG9tLWhh bmRsZXIucGhwLCBTZWJhc3RpYW4gUm9zZSdzIHR1dG9yaWFsIGZvciBjYXB0dXJpbmcgZnJvbSBh ICIKIndlYiBicm93c2VyfX1AdXJlZnt9QCoiCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4 dAojOiBvcmdndWlkZS50ZXhpOjE2ODkKbXNnaWQgIiIKIkR1ZSB0byB0aGUgd2F5IE9yZyB3b3Jr cywgVE9ETyBpdGVtcywgdGltZS1zdGFtcGVkIGl0ZW1zLCBhbmQgdGFnZ2VkICIKImhlYWRsaW5l cyBjYW4gYmUgc2NhdHRlcmVkIHRocm91Z2hvdXQgYSBmaWxlIG9yIGV2ZW4gYSBudW1iZXIgb2Yg ZmlsZXMuICBUbyAiCiJnZXQgYW4gb3ZlcnZpZXcgb2Ygb3BlbiBhY3Rpb24gaXRlbXMsIG9yIG9m IGV2ZW50cyB0aGF0IGFyZSBpbXBvcnRhbnQgZm9yIGEgIgoicGFydGljdWxhciBkYXRlLCB0aGlz IGluZm9ybWF0aW9uIG11c3QgYmUgY29sbGVjdGVkLCBzb3J0ZWQgYW5kIGRpc3BsYXllZCBpbiAi CiJhbiBvcmdhbml6ZWQgd2F5LiAgVGhlcmUgYXJlIHNldmVyYWwgZGlmZmVyZW50IHZpZXdzLCBz ZWUgYmVsb3cuIgptc2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4 aToxNjk3Cm1zZ2lkICIiCiJUaGUgZXh0cmFjdGVkIGluZm9ybWF0aW9uIGlzIGRpc3BsYXllZCBp biBhIHNwZWNpYWwgQGVtcGh7YWdlbmRhIGJ1ZmZlcn0uICAiCiJUaGlzIGJ1ZmZlciBpcyByZWFk LW9ubHksIGJ1dCBwcm92aWRlcyBjb21tYW5kcyB0byB2aXNpdCB0aGUgY29ycmVzcG9uZGluZyAi CiJsb2NhdGlvbnMgaW4gdGhlIG9yaWdpbmFsIE9yZyBmaWxlcywgYW5kIGV2ZW4gdG8gZWRpdCB0 aGVzZSBmaWxlcyByZW1vdGVseS4gICIKIlJlbW90ZSBlZGl0aW5nIGZyb20gdGhlIGFnZW5kYSBi dWZmZXIgbWVhbnMsIGZvciBleGFtcGxlLCB0aGF0IHlvdSBjYW4gIgoiY2hhbmdlIHRoZSBkYXRl cyBvZiBkZWFkbGluZXMgYW5kIGFwcG9pbnRtZW50cyBmcm9tIHRoZSBhZ2VuZGEgYnVmZmVyLiAg VGhlICIKImNvbW1hbmRzIGF2YWlsYWJsZSBpbiB0aGUgQWdlbmRhIGJ1ZmZlciBhcmUgbGlzdGVk IGluIEByZWZ7QWdlbmRhIGNvbW1hbmRzfS4iCm1zZ3N0ciAiLi4uLi4uLi4uLi4uLi4uLi4uLi4u LkByZWZ7Q29tYW5kb3MgZGUgbGEgYWdlbmRhfS4iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9y Z2d1aWRlLnRleGk6MTcxMgptc2dpZCAiIgoiVGhlIGluZm9ybWF0aW9uIHRvIGJlIHNob3duIGlz IG5vcm1hbGx5IGNvbGxlY3RlZCBmcm9tIGFsbCBAZW1waHthZ2VuZGEgIgoiZmlsZXN9LCB0aGUg ZmlsZXMgbGlzdGVkIGluIHRoZSB2YXJpYWJsZSBAY29kZXtvcmctYWdlbmRhLWZpbGVzfS4iCm1z Z3N0ciAiIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjE3MTQKIywgZnV6enksIG5v LXdyYXAKbXNnaWQgIkMtYyBbIgptc2dzdHIgIkMtYyAvIgoKIy4gdHlwZTogdGFibGUKIzogb3Jn Z3VpZGUudGV4aToxNzE4Cm1zZ2lkICIiCiJBZGQgY3VycmVudCBmaWxlIHRvIHRoZSBsaXN0IG9m IGFnZW5kYSBmaWxlcy4gIFRoZSBmaWxlIGlzIGFkZGVkIHRvIHRoZSAiCiJmcm9udCBvZiB0aGUg bGlzdC4gIElmIGl0IHdhcyBhbHJlYWR5IGluIHRoZSBsaXN0LCBpdCBpcyBtb3ZlZCB0byB0aGUg IgoiZnJvbnQuICBXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBmaWxlIGlzIGFkZGVkL21vdmVkIHRv IHRoZSBlbmQuIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToxNzE4 CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJDLWMgXSIKbXNnc3RyICJDLWMgLyIKCiMuIHR5cGU6 IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTcyMAptc2dpZCAiUmVtb3ZlIGN1cnJlbnQgZmlsZSBm cm9tIHRoZSBsaXN0IG9mIGFnZW5kYSBmaWxlcy4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRlbQoj OiBvcmdndWlkZS50ZXhpOjE3MjAKIywgZnV6enksIG5vLXdyYXAKbXNnaWQgIkMtLCIKbXNnc3Ry ICJDLWMgLCIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTcyMgptc2dpZCAiQ3lj bGUgdGhyb3VnaCBhZ2VuZGEgZmlsZSBsaXN0LCB2aXNpdGluZyBvbmUgZmlsZSBhZnRlciB0aGUg b3RoZXIuIgptc2dzdHIgIiIKCiMuIHR5cGU6IHNlY3Rpb24KIzogb3JnZ3VpZGUudGV4aToxNzI1 CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJUaGUgYWdlbmRhIGRpc3BhdGNoZXIiCm1zZ3N0ciAi RGVzcGFjaGFkb3IgZGUgYWdlbmRhIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50 ZXhpOjE3MzAKbXNnaWQgIiIKIlRoZSB2aWV3cyBhcmUgY3JlYXRlZCB0aHJvdWdoIGEgZGlzcGF0 Y2hlciwgd2hpY2ggc2hvdWxkIGJlIGJvdW5kIHRvIGEgIgoiZ2xvYmFsIGtleS0tLWZvciBleGFt cGxlIEBrYmR7Qy1jIGF9IChAcHhyZWZ7SW5zdGFsbGF0aW9ufSkuICBBZnRlciBwcmVzc2luZyAi CiJAa2Jke0MtYyBhfSwgYW4gYWRkaXRpb25hbCBsZXR0ZXIgaXMgcmVxdWlyZWQgdG8gZXhlY3V0 ZSBhIGNvbW1hbmQ6Igptc2dzdHIgIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIChAcHhy ZWZ7SW5zdGFsYWNpQCdvbn0pLiAuLi4uLiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4 aToxNzMxCiMsIG5vLXdyYXAKbXNnaWQgImEiCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzog b3JnZ3VpZGUudGV4aToxNzMzCm1zZ2lkICJUaGUgY2FsZW5kYXItbGlrZSBhZ2VuZGEgKEBweHJl ZntXZWVrbHkvZGFpbHkgYWdlbmRhfSkuIgptc2dzdHIgIkxhIGFnZW5kYSBjb21vIGNhbGVuZGFy aW8gKEBweHJlZntBZ2VuZGEgc2VtYW5hbC9kaWFyaWF9KS4iCgojLiB0eXBlOiBpdGVtCiM6IG9y Z2d1aWRlLnRleGk6MTczMwojLCBuby13cmFwCm1zZ2lkICJ0IEByey99IFQiCm1zZ3N0ciAiIgoK Iy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxNzM1Cm1zZ2lkICJBIGxpc3Qgb2YgYWxs IFRPRE8gaXRlbXMgKEBweHJlZntHbG9iYWwgVE9ETyBsaXN0fSkuIgptc2dzdHIgIlVuYSBsaXN0 YSBkZSB0b2RvcyBsb3MgaXRlbXMgVE9ETyAoQHB4cmVme0xpc3RhIGdsb2JhbCBUT0RPfSkuIgoK Iy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjE3MzUKIywgbm8td3JhcAptc2dpZCAibSBA cnsvfSBNIgptc2dzdHIgIiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTczOApt c2dpZCAiIgoiQSBsaXN0IG9mIGhlYWRsaW5lcyBtYXRjaGluZyBhIFRBR1MgZXhwcmVzc2lvbiAo QHB4cmVme01hdGNoaW5nIHRhZ3MgYW5kICIKInByb3BlcnRpZXN9KS4iCm1zZ3N0ciAiIgoiVW5h IGxpc3RhIGRlIHRpdHVsYXJlcyBjb2luY2lkZW50ZXMgY29uIGxhIGV4cHJlc2knb24gVEFHUyAo QHB4cmVmIgoie0NvaW5jaWRpZW5kbyBtYXJjYXMgeSBwcm9waWVkYWRlc30pLiIKCiMuIHR5cGU6 IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToxNzM4CiMsIG5vLXdyYXAKbXNnaWQgIkwiCm1zZ3N0ciAi IgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxNzQwCm1zZ2lkICJUaGUgdGltZWxp bmUgdmlldyBmb3IgdGhlIGN1cnJlbnQgYnVmZmVyIChAcHhyZWZ7VGltZWxpbmV9KS4iCm1zZ3N0 ciAiIgoiTGEgdmlzdGEgZGUgbGEgbEAne0Bkb3RsZXNze2l9fW5lYSBkZSB0aWVtcG8gcGFyYSBl bCBidWZmZXIgYWN0dWFsXG4iCiJAcHhyZWZ7TEAne0Bkb3RsZXNze2l9fW5lYSBkZSB0aWVtcG99 KS4iCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MTc0MCBvcmdndWlkZS50ZXhpOjE5 NDAKIywgbm8td3JhcAptc2dpZCAicyIKbXNnc3RyICIiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdn dWlkZS50ZXhpOjE3NDMKbXNnaWQgIiIKIkEgbGlzdCBvZiBlbnRyaWVzIHNlbGVjdGVkIGJ5IGEg Ym9vbGVhbiBleHByZXNzaW9uIG9mIGtleXdvcmRzIGFuZC9vciAiCiJyZWd1bGFyIGV4cHJlc3Np b25zIHRoYXQgbXVzdCBvciBtdXN0IG5vdCBvY2N1ciBpbiB0aGUgZW50cnkuIgptc2dzdHIgIiIK CiMuIHR5cGU6IHN1YnNlY3Rpb24KIzogb3JnZ3VpZGUudGV4aToxNzU3CiMsIGZ1enp5LCBuby13 cmFwCm1zZ2lkICJUaGUgd2Vla2x5L2RhaWx5IGFnZW5kYSIKbXNnc3RyICJBZ2VuZGEgc2VtYW5h bC9kaWFyaWEiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MTc2MQptc2dp ZCAiIgoiVGhlIHB1cnBvc2Ugb2YgdGhlIHdlZWtseS9kYWlseSBAZW1waHthZ2VuZGF9IGlzIHRv IGFjdCBsaWtlIGEgcGFnZSBvZiBhICIKInBhcGVyIGFnZW5kYSwgc2hvd2luZyBhbGwgdGhlIHRh c2tzIGZvciB0aGUgY3VycmVudCB3ZWVrIG9yIGRheS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRl bQojOiBvcmdndWlkZS50ZXhpOjE3NjMKIywgZnV6enksIG5vLXdyYXAKbXNnaWQgIkMtYyBhIGEi Cm1zZ3N0ciAiQy1jIGEgdCIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTc2Ngpt c2dpZCAiIgoiQ29tcGlsZSBhbiBhZ2VuZGEgZm9yIHRoZSBjdXJyZW50IHdlZWsgZnJvbSBhIGxp c3Qgb2YgT3JnIGZpbGVzLiAgVGhlIGFnZW5kYSAiCiJzaG93cyB0aGUgZW50cmllcyBmb3IgZWFj aCBkYXkuIgptc2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aTox NzcxCm1zZ2lkICIiCiJFbWFjcyBjb250YWlucyB0aGUgY2FsZW5kYXIgYW5kIGRpYXJ5IGJ5IEVk d2FyZCBNLiBSZWluZ29sZC4gIE9yZy1tb2RlICIKInVuZGVyc3RhbmRzIHRoZSBzeW50YXggb2Yg dGhlIGRpYXJ5IGFuZCBhbGxvd3MgeW91IHRvIHVzZSBkaWFyeSBzZXhwIGVudHJpZXMgIgoiZGly ZWN0bHkgaW4gT3JnIGZpbGVzOiIKbXNnc3RyICIiCgojLiB0eXBlOiBzbWFsbGV4YW1wbGUKIzog b3JnZ3VpZGUudGV4aToxNzc5CiMsIG5vLXdyYXAKbXNnaWQgIiIKIiogQmlydGhkYXlzIGFuZCBz aW1pbGFyIHN0dWZmXG4iCiIjK0NBVEVHT1JZOiBIb2xpZGF5XG4iCiIlJShvcmctY2FsZW5kYXIt aG9saWRheSkgICA7IHNwZWNpYWwgZnVuY3Rpb24gZm9yIGhvbGlkYXkgbmFtZXNcbiIKIiMrQ0FU RUdPUlk6IEFublxuIgoiJSUoZGlhcnktYW5uaXZlcnNhcnkgIDUgMTQgMTk1NilAZm9vdG5vdGV7 Tm90ZSB0aGF0IHRoZSBvcmRlciBvZiB0aGUgYXJndW1lbnRzIChtb250aCwgZGF5LCB5ZWFyKSBk ZXBlbmRzIG9uIHRoZSBzZXR0aW5nIG9mIEBjb2Rle2NhbGVuZGFyLWRhdGUtc3R5bGV9Ln0gQXJ0 aHVyIERlbnQgaXMgJWQgeWVhcnMgb2xkXG4iCiIlJShkaWFyeS1hbm5pdmVyc2FyeSAxMCAgMiAx ODY5KSBNYWhhdG1hIEdhbmRoaSB3b3VsZCBiZSAlZCB5ZWFycyBvbGRcbiIKbXNnc3RyICIiCgoj LiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MTc4NAptc2dpZCAiIgoiT3JnIGNh biBpbnRlcmFjdCB3aXRoIEVtYWNzIGFwcG9pbnRtZW50cyBub3RpZmljYXRpb24gZmFjaWxpdHku ICBUbyBhZGQgYWxsICIKInRoZSBhcHBvaW50bWVudHMgb2YgeW91ciBhZ2VuZGEgZmlsZXMsIHVz ZSB0aGUgY29tbWFuZCBAY29kZXtvcmctYWdlbmRhLXRvLSIKImFwcHR9LiAgU2VlIHRoZSBkb2Nz dHJpbmcgZm9yIGRldGFpbHMuIgptc2dzdHIgIiIKCiMuIHR5cGU6IHN1YnNlY3Rpb24KIzogb3Jn Z3VpZGUudGV4aToxNzg2CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJUaGUgZ2xvYmFsIFRPRE8g bGlzdCIKbXNnc3RyICJMaXN0YSBnbG9iYWwgVE9ETyIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzog b3JnZ3VpZGUudGV4aToxNzkyCm1zZ2lkICIiCiJUaGUgZ2xvYmFsIFRPRE8gbGlzdCBjb250YWlu cyBhbGwgdW5maW5pc2hlZCBUT0RPIGl0ZW1zIGZvcm1hdHRlZCBhbmQgIgoiY29sbGVjdGVkIGlu dG8gYSBzaW5nbGUgcGxhY2UuICBSZW1vdGUgZWRpdGluZyBvZiBUT0RPIGl0ZW1zIGxldHMgeW91 IGNhbiAiCiJjaGFuZ2UgdGhlIHN0YXRlIG9mIGEgVE9ETyBlbnRyeSB3aXRoIGEgc2luZ2xlIGtl eSBwcmVzcy4gIFRoZSBjb21tYW5kcyAiCiJhdmFpbGFibGUgaW4gdGhlIFRPRE8gbGlzdCBhcmUg ZGVzY3JpYmVkIGluIEByZWZ7QWdlbmRhIGNvbW1hbmRzfS4iCm1zZ3N0ciAiLi4uLi4uLi4uLi4u Li5AcmVme0NvbWFuZG9zIGRlIGxhIGFnZW5kYX0uIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3Vp ZGUudGV4aToxNzk3Cm1zZ2lkICIiCiJTaG93IHRoZSBnbG9iYWwgVE9ETyBsaXN0LiAgVGhpcyBj b2xsZWN0cyB0aGUgVE9ETyBpdGVtcyBmcm9tIGFsbCBhZ2VuZGEgIgoiZmlsZXMgKEBweHJlZntB Z2VuZGEgVmlld3N9KSBpbnRvIGEgc2luZ2xlIGJ1ZmZlci4iCm1zZ3N0ciAiIgoiTXVlc3RyYSBs YSBsaXN0YSBnbG9iYWwgVE9ETy4gRXN0YSBjb2xlY2NpQCdvbiBkZSBpdGVtcyBUT0RPIGRlIHRv ZG9zXG4iCiJsb3MgYXJjaGl2b3MgZGUgbGEgYWdlbmRhIChAcHhyZWZ7VmlzdGFzIGRlIGxhIEFn ZW5kYX0pIGVuIHVuIEAndW5pY29cbiIKImJ1ZmZlci4iCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1 aWRlLnRleGk6MTc5NwojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiQy1jIGEgVCIKbXNnc3RyICJD LWMgYSB0IgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxNzk5Cm1zZ2lkICJMaWtl IHRoZSBhYm92ZSwgYnV0IGFsbG93cyBzZWxlY3Rpb24gb2YgYSBzcGVjaWZpYyBUT0RPIGtleXdv cmQuIgptc2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxODEw Cm1zZ2lkICIiCiJJZiBoZWFkbGluZXMgaW4gdGhlIGFnZW5kYSBmaWxlcyBhcmUgbWFya2VkIHdp dGggQGVtcGh7dGFnc30gKEBweHJlZntUYWdzfSksICIKIm9yIGhhdmUgcHJvcGVydGllcyAoQHB4 cmVme1Byb3BlcnRpZXN9KSwgeW91IGNhbiBzZWxlY3QgaGVhZGxpbmVzIGJhc2VkIG9uICIKInRo aXMgbWV0YWRhdGEgYW5kIGNvbGxlY3QgdGhlbSBpbnRvIGFuIGFnZW5kYSBidWZmZXIuICBUaGUg bWF0Y2ggc3ludGF4ICIKImRlc2NyaWJlZCBoZXJlIGFsc28gYXBwbGllcyB3aGVuIGNyZWF0aW5n IHNwYXJzZSB0cmVlcyB3aXRoIEBrYmR7Qy1jIC8gbX0uICAiCiJUaGUgY29tbWFuZHMgYXZhaWxh YmxlIGluIHRoZSB0YWdzIGxpc3QgYXJlIGRlc2NyaWJlZCBpbiBAcmVme0FnZW5kYSAiCiJjb21t YW5kc30uIgptc2dzdHIgIiIKIi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIChAcHhy ZWZ7RXRpcXVldGFzfSksIC4uLi4uLi5cbiIKIi4uLi4uLi4gLi4uLiAoQHB4cmVme1Byb3BpZWRh ZGVzfSksXG4iCiIuLiwuLi4uIC4uIC4uLi4gLi4uLi4uIC4uLi4uLiBAcmVme0NvbWFuZG9zIGRl IGxhIGFnZW5kYX0uIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxODE4CiMsIGZ1 enp5Cm1zZ2lkICIiCiJQcm9kdWNlIGEgbGlzdCBvZiBhbGwgaGVhZGxpbmVzIHRoYXQgbWF0Y2gg YSBnaXZlbiBzZXQgb2YgdGFncy4gIFRoZSBjb21tYW5kICIKInByb21wdHMgZm9yIGEgc2VsZWN0 aW9uIGNyaXRlcmlvbiwgd2hpY2ggaXMgYSBib29sZWFuIGxvZ2ljIGV4cHJlc3Npb24gd2l0aCAi CiJ0YWdzLCBsaWtlIEBzYW1weyt3b3JrK3VyZ2VudC13aXRoYm9zc30gb3IgQHNhbXB7d29ya3xo b21lfSAoQHB4cmVme1RhZ3N9KS4gICIKIklmIHlvdSBvZnRlbiBuZWVkIGEgc3BlY2lmaWMgc2Vh cmNoLCBkZWZpbmUgYSBjdXN0b20gY29tbWFuZCBmb3IgaXQgKEBweHJlZiIKIntBZ2VuZGEgZGlz cGF0Y2hlcn0pLiIKbXNnc3RyICIiCiIuLi4uLi4uLi4uLi4uLiAuLi4uLi4uLi4uLi4uLi4uIC5c biIKIi4uLi4uLi4uLi4uLi4uIC4uLi4uLi4uLi4uLi4gLiAoQHB4cmVmIgoie0V0aXF1ZXRhc30p LiAuLi4uLi4uIC4uLi4gLi4uLiAuLi4uIC4uLi4gXG4iCgojLiB0eXBlOiB0YWJsZQojOiBvcmdn dWlkZS50ZXhpOjE4MjAKbXNnaWQgIkxpa2UgQGtiZHtDLWMgYSBtfSwgYnV0IG9ubHkgc2VsZWN0 IGhlYWRsaW5lcyB0aGF0IGFyZSBhbHNvIFRPRE8gaXRlbXMuIgptc2dzdHIgIiIKCiMuIHR5cGU6 IHN1YnN1YmhlYWRpbmcKIzogb3JnZ3VpZGUudGV4aToxODIyCiMsIG5vLXdyYXAKbXNnaWQgIk1h dGNoIHN5bnRheCIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRl eGk6MTgzMgptc2dpZCAiIgoiQSBzZWFyY2ggc3RyaW5nIGNhbiB1c2UgQm9vbGVhbiBvcGVyYXRv cnMgQHNhbXB7Jn0gZm9yIEFORCBhbmQgQHNhbXB7fH0gZm9yICIKIk9SLiAgQHNhbXB7Jn0gYmlu ZHMgbW9yZSBzdHJvbmdseSB0aGFuIEBzYW1we3x9LiAgUGFyZW50aGVzZXMgYXJlIGN1cnJlbnRs eSAiCiJub3QgaW1wbGVtZW50ZWQuICBFYWNoIGVsZW1lbnQgaW4gdGhlIHNlYXJjaCBpcyBlaXRo ZXIgYSB0YWcsIGEgcmVndWxhciAiCiJleHByZXNzaW9uIG1hdGNoaW5nIHRhZ3MsIG9yIGFuIGV4 cHJlc3Npb24gbGlrZSBAY29kZXtQUk9QRVJUWSBPUEVSQVRPUiAiCiJWQUxVRX0gd2l0aCBhIGNv bXBhcmlzb24gb3BlcmF0b3IsIGFjY2Vzc2luZyBhIHByb3BlcnR5IHZhbHVlLiAgRWFjaCBlbGVt ZW50ICIKIm1heSBiZSBwcmVjZWRlZCBieSBAc2FtcHstfSwgdG8gc2VsZWN0IGFnYWluc3QgaXQs IGFuZCBAc2FtcHsrfSBpcyBzeW50YWN0aWMgIgoic3VnYXIgZm9yIHBvc2l0aXZlIHNlbGVjdGlv bi4gIFRoZSBBTkQgb3BlcmF0b3IgQHNhbXB7Jn0gaXMgb3B0aW9uYWwgd2hlbiAiCiJAc2FtcHsr fSBvciBAc2FtcHstfSBpcyBwcmVzZW50LiAgSGVyZSBhcmUgc29tZSBleGFtcGxlcywgdXNpbmcg b25seSB0YWdzLiIKbXNnc3RyICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MTgz NAojLCBuby13cmFwCm1zZ2lkICIrd29yay1ib3NzIgptc2dzdHIgIiIKCiMuIHR5cGU6IHRhYmxl CiM6IG9yZ2d1aWRlLnRleGk6MTgzNwptc2dpZCAiIgoiU2VsZWN0IGhlYWRsaW5lcyB0YWdnZWQg QHNhbXB7Ondvcms6fSwgYnV0IGRpc2NhcmQgdGhvc2UgYWxzbyB0YWdnZWQgQHNhbXB7OiIKImJv c3M6fS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjE4MzcKIywg bm8td3JhcAptc2dpZCAid29ya3xsYXB0b3AiCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzog b3JnZ3VpZGUudGV4aToxODM5Cm1zZ2lkICJTZWxlY3RzIGxpbmVzIHRhZ2dlZCBAc2FtcHs6d29y azp9IG9yIEBzYW1wezpsYXB0b3A6fS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRlbQojOiBvcmdn dWlkZS50ZXhpOjE4MzkKIywgbm8td3JhcAptc2dpZCAid29ya3xsYXB0b3ArbmlnaHQiCm1zZ3N0 ciAiIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxODQyCm1zZ2lkICIiCiJMaWtl IGJlZm9yZSwgYnV0IHJlcXVpcmUgdGhlIEBzYW1wezpsYXB0b3A6fSBsaW5lcyB0byBiZSB0YWdn ZWQgYWxzbyBAc2FtcHs6IgoibmlnaHQ6fS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4 dAojOiBvcmdndWlkZS50ZXhpOjE4NDYKbXNnaWQgIiIKIllvdSBtYXkgYWxzbyB0ZXN0IGZvciBw cm9wZXJ0aWVzIGF0IHRoZSBzYW1lIHRpbWUgYXMgbWF0Y2hpbmcgdGFncywgc2VlIHRoZSAiCiJt YW51YWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgptc2dzdHIgIiIKCiMuIHR5cGU6IHN1YnNlY3Rp b24KIzogb3JnZ3VpZGUudGV4aToxODQ4CiMsIG5vLXdyYXAKbXNnaWQgIlRpbWVsaW5lIGZvciBh IHNpbmdsZSBmaWxlIgptc2dzdHIgIkxAJ3tAZG90bGVzc3tpfX1uZWEgZGUgdGllbXBvIHBhcmEg dW4gc2ltcGxlIGFyY2hpdm8iCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6 MTg1Mwptc2dpZCAiIgoiVGhlIHRpbWVsaW5lIHN1bW1hcml6ZXMgYWxsIHRpbWUtc3RhbXBlZCBp dGVtcyBmcm9tIGEgc2luZ2xlIE9yZyBtb2RlIGZpbGUgIgoiaW4gYSBAZW1waHt0aW1lLXNvcnRl ZCB2aWV3fS4gIFRoZSBtYWluIHB1cnBvc2Ugb2YgdGhpcyBjb21tYW5kIGlzIHRvIGdpdmUgIgoi YW4gb3ZlcnZpZXcgb3ZlciBldmVudHMgaW4gYSBwcm9qZWN0LiIKbXNnc3RyICIiCgojLiB0eXBl OiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MTg1NQojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiQy1j IGEgTCIKbXNnc3RyICJDLWMgYSB0IgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aTox ODU5Cm1zZ2lkICIiCiJTaG93IGEgdGltZS1zb3J0ZWQgdmlldyBvZiB0aGUgT3JnIGZpbGUsIHdp dGggYWxsIHRpbWUtc3RhbXBlZCBpdGVtcy4gIFdoZW4gIgoiY2FsbGVkIHdpdGggYSBAa2Jke0Mt dX0gcHJlZml4LCBhbGwgdW5maW5pc2hlZCBUT0RPIGVudHJpZXMgKHNjaGVkdWxlZCBvciAiCiJu b3QpIGFyZSBhbHNvIGxpc3RlZCB1bmRlciB0aGUgY3VycmVudCBkYXRlLiIKbXNnc3RyICIiCgoj LiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MTg2Ngptc2dpZCAiIgoiVGhpcyBh Z2VuZGEgdmlldyBpcyBhIGdlbmVyYWwgdGV4dCBzZWFyY2ggZmFjaWxpdHkgZm9yIE9yZyBtb2Rl IGVudHJpZXMuICBJdCAiCiJpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIHRvIGZpbmQgbm90ZXMuIgpt c2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToxODY4CiMsIGZ1enp5LCBu by13cmFwCm1zZ2lkICJDLWMgYSBzIgptc2dzdHIgIkMtYyBhIHQiCgojLiB0eXBlOiB0YWJsZQoj OiBvcmdndWlkZS50ZXhpOjE4NzEKbXNnaWQgIiIKIlRoaXMgaXMgYSBzcGVjaWFsIHNlYXJjaCB0 aGF0IGxldHMgeW91IHNlbGVjdCBlbnRyaWVzIGJ5IG1hdGNoaW5nIGEgIgoic3Vic3RyaW5nIG9y IHNwZWNpZmljIHdvcmRzIHVzaW5nIGEgYm9vbGVhbiBsb2dpYy4iCm1zZ3N0ciAiIgoKIy4gdHlw ZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjE4ODAKbXNnaWQgIiIKIkZvciBleGFtcGxl LCB0aGUgc2VhcmNoIHN0cmluZyBAc2FtcHtjb21wdXRlciBlcXVpcG1lbnR9IHdpbGwgZmluZCBl bnRyaWVzICIKInRoYXQgY29udGFpbiBAc2FtcHtjb21wdXRlciBlcXVpcG1lbnR9IGFzIGEgc3Vi c3RyaW5nLiAgU2VhcmNoIHZpZXcgY2FuIGFsc28gIgoic2VhcmNoIGZvciBzcGVjaWZpYyBrZXl3 b3JkcyBpbiB0aGUgZW50cnksIHVzaW5nIEJvb2xlYW4gbG9naWMuICBUaGUgc2VhcmNoICIKInN0 cmluZyBAc2FtcHsrY29tcHV0ZXIgK3dpZmkgLWV0aGVybmV0IC1AezhcXC4xMVtiZ11AfX0gd2ls bCBzZWFyY2ggZm9yIG5vdGUgIgoiZW50cmllcyB0aGF0IGNvbnRhaW4gdGhlIGtleXdvcmRzIEBj b2Rle2NvbXB1dGVyfSBhbmQgQGNvZGV7d2lmaX0sIGJ1dCBub3QgIgoidGhlIGtleXdvcmQgQGNv ZGV7ZXRoZXJuZXR9LCBhbmQgd2hpY2ggYXJlIGFsc28gbm90IG1hdGNoZWQgYnkgdGhlIHJlZ3Vs YXIgIgoiZXhwcmVzc2lvbiBAY29kZXs4XFwuMTFbYmddfSwgbWVhbmluZyB0byBleGNsdWRlIGJv dGggOC4xMWIgYW5kIDguMTFnLiIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9y Z2d1aWRlLnRleGk6MTg4Mwptc2dpZCAiIgoiTm90ZSB0aGF0IGluIGFkZGl0aW9uIHRvIHRoZSBh Z2VuZGEgZmlsZXMsIHRoaXMgY29tbWFuZCB3aWxsIGFsc28gc2VhcmNoIHRoZSAiCiJmaWxlcyBs aXN0ZWQgaW4gQGNvZGV7b3JnLWFnZW5kYS10ZXh0LXNlYXJjaC1leHRyYS1maWxlc30uIgptc2dz dHIgIiIKCiMuIHR5cGU6IHNlY3Rpb24KIzogb3JnZ3VpZGUudGV4aToxODg1CiMsIG5vLXdyYXAK bXNnaWQgIkNvbW1hbmRzIGluIHRoZSBhZ2VuZGEgYnVmZmVyIgptc2dzdHIgIiIKCiMuIHR5cGU6 IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToxODkyCm1zZ2lkICIiCiJFbnRyaWVzIGluIHRo ZSBhZ2VuZGEgYnVmZmVyIGFyZSBsaW5rZWQgYmFjayB0byB0aGUgT3JnIGZpbGUgb3IgZGlhcnkg ZmlsZSAiCiJ3aGVyZSB0aGV5IG9yaWdpbmF0ZS4gIENvbW1hbmRzIGFyZSBwcm92aWRlZCB0byBz aG93IGFuZCBqdW1wIHRvIHRoZSAiCiJvcmlnaW5hbCBlbnRyeSBsb2NhdGlvbiwgYW5kIHRvIGVk aXQgdGhlIE9yZyBmaWxlcyBgYHJlbW90ZWx5JycgZnJvbSB0aGUgIgoiYWdlbmRhIGJ1ZmZlci4g IFRoaXMgaXMganVzdCBhIHNlbGVjdGlvbiBvZiB0aGUgbWFueSBjb21tYW5kcywgZXhwbG9yZSB0 aGUgIgoiQGNvZGV7QWdlbmRhfSBtZW51IGFuZCB0aGUgbWFudWFsIGZvciBhIGNvbXBsZXRlIGxp c3QuIgptc2dzdHIgIiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTg5NQojLCBm dXp6eQptc2dpZCAiQHRzdWJoZWFkaW5ne01vdGlvbn0iCm1zZ3N0ciAiQHRzdWJoZWFkaW5ne0Vk aWNpQCdvbiBkZSBmaWxhcyB5IGNvbHVtbmFzfSIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUu dGV4aToxODk1CiMsIG5vLXdyYXAKbXNnaWQgIm4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUK Izogb3JnZ3VpZGUudGV4aToxODk3Cm1zZ2lkICJOZXh0IGxpbmUgKHNhbWUgYXMgQGtleXt1cH0g YW5kIEBrYmR7Qy1wfSkuIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4 aToxODk3CiMsIG5vLXdyYXAKbXNnaWQgInAiCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzog b3JnZ3VpZGUudGV4aToxOTAwCm1zZ2lkICIiCiJQcmV2aW91cyBsaW5lIChzYW1lIGFzIEBrZXl7 ZG93bn0gYW5kIEBrYmR7Qy1ufSkuICBAdHN1YmhlYWRpbmd7Vmlldy9HbyB0byAiCiJPcmcgZmls ZX0iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjE5MDAKIywgbm8t d3JhcAptc2dpZCAibW91c2UtMyIKbXNnc3RyICIiCgojLiB0eXBlOiBrZXl7IzF9CiM6IG9yZ2d1 aWRlLnRleGk6MTkwMQojLCBuby13cmFwCm1zZ2lkICJTUEMiCm1zZ3N0ciAiIgoKIy4gdHlwZTog dGFibGUKIzogb3JnZ3VpZGUudGV4aToxOTA2Cm1zZ2lkICIiCiJEaXNwbGF5IHRoZSBvcmlnaW5h bCBsb2NhdGlvbiBvZiB0aGUgaXRlbSBpbiBhbm90aGVyIHdpbmRvdy4gIFdpdGggcHJlZml4ICIK ImFyZywgbWFrZSBzdXJlIHRoYXQgdGhlIGVudGlyZSBlbnRyeSBpcyBtYWRlIHZpc2libGUgaW4g dGhlIG91dGxpbmUsIG5vdCAiCiJvbmx5IHRoZSBoZWFkaW5nLiIKbXNnc3RyICIiCgojLiB0eXBl OiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjE5MTAKbXNnaWQgIiIKIkdvIHRvIHRoZSBvcmlnaW5h bCBsb2NhdGlvbiBvZiB0aGUgaXRlbSBpbiBhbm90aGVyIHdpbmRvdy4gIFVuZGVyIEVtYWNzIDIy LCAiCiJAa2Jke21vdXNlLTF9IHdpbGwgYWxzbyB3b3JrIGZvciB0aGlzLiIKbXNnc3RyICIiCgoj LiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjE5MTMKbXNnaWQgIkdvIHRvIHRoZSBvcmln aW5hbCBsb2NhdGlvbiBvZiB0aGUgaXRlbSBhbmQgZGVsZXRlIG90aGVyIHdpbmRvd3MuIgptc2dz dHIgIiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTkxNQojLCBmdXp6eQptc2dp ZCAiQHRzdWJoZWFkaW5ne0NoYW5nZSBkaXNwbGF5fSIKbXNnc3RyICJAdHN1YmhlYWRpbmd7RWRp Y2lAJ29uIGRlIGZpbGFzIHkgY29sdW1uYXN9IgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50 ZXhpOjE5MTUKIywgbm8td3JhcAptc2dpZCAibyIKbXNnc3RyICIiCgojLiB0eXBlOiB0YWJsZQoj OiBvcmdndWlkZS50ZXhpOjE5MTgKbXNnaWQgIkRlbGV0ZSBvdGhlciB3aW5kb3dzLiIKbXNnc3Ry ICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MTkxOAojLCBuby13cmFwCm1zZ2lk ICJkIEByey99IHciCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aTox OTIxCm1zZ2lkICJTd2l0Y2ggdG8gZGF5L3dlZWsgdmlldy4iCm1zZ3N0ciAiIgoKIy4gdHlwZTog aXRlbQojOiBvcmdndWlkZS50ZXhpOjE5MjEKIywgbm8td3JhcAptc2dpZCAiZiBAcnthbmR9IGIi Cm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxOTI2Cm1zZ2lkICIi CiJHbyBmb3J3YXJkL2JhY2t3YXJkIGluIHRpbWUgdG8gZGlzcGxheSB0aGUgZm9sbG93aW5nIEBj b2Rle29yZy1hZ2VuZGEtIgoiY3VycmVudC1zcGFufSBkYXlzLiAgRm9yIGV4YW1wbGUsIGlmIHRo ZSBkaXNwbGF5IGNvdmVycyBhIHdlZWssIHN3aXRjaCB0byAiCiJ0aGUgZm9sbG93aW5nL3ByZXZp b3VzIHdlZWsuIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToxOTI2 CiMsIG5vLXdyYXAKbXNnaWQgIi4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3Vp ZGUudGV4aToxOTI5Cm1zZ2lkICJHbyB0byB0b2RheS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRl bQojOiBvcmdndWlkZS50ZXhpOjE5MjkKIywgbm8td3JhcAptc2dpZCAiaiIKbXNnc3RyICIiCgoj LiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjE5MzIKbXNnaWQgIlByb21wdCBmb3IgYSBk YXRlIGFuZCBnbyB0aGVyZS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50 ZXhpOjE5MzIKIywgbm8td3JhcAptc2dpZCAidiBsIEAgQHJ7b3Igc2hvcnR9IEAgbCIKbXNnc3Ry ICIiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjE5MzgKbXNnaWQgIiIKIlRvZ2ds ZSBMb2dib29rIG1vZGUuICBJbiBMb2dib29rIG1vZGUsIGVudHJpZXMgdGhhdCB3ZXJlIG1hcmtl ZCBET05FIHdoaWxlICIKImxvZ2dpbmcgd2FzIG9uICh2YXJpYWJsZSBAY29kZXtvcmctbG9nLWRv bmV9KSBhcmUgc2hvd24gaW4gdGhlIGFnZW5kYSwgYXMgIgoiYXJlIGVudHJpZXMgdGhhdCBoYXZl IGJlZW4gY2xvY2tlZCBvbiB0aGF0IGRheS4gIFdoZW4gY2FsbGVkIHdpdGggYSBAa2Jke0MtIgoi dX0gcHJlZml4LCBzaG93IGFsbCBwb3NzaWJsZSBsb2dib29rIGVudHJpZXMsIGluY2x1ZGluZyBz dGF0ZSBjaGFuZ2VzLiIKbXNnc3RyICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6 MTkzOAojLCBuby13cmFwCm1zZ2lkICJyIEBye29yfSBnIgptc2dzdHIgIiIKCiMuIHR5cGU6IHRh YmxlCiM6IG9yZ2d1aWRlLnRleGk6MTk0MAptc2dpZCAiUmVjcmVhdGUgdGhlIGFnZW5kYSBidWZm ZXIsIHRvIHJlZmxlY3QgdGhlIGNoYW5nZXMuIgptc2dzdHIgIiIKCiMuIHR5cGU6IHRhYmxlCiM6 IG9yZ2d1aWRlLnRleGk6MTk0Mwptc2dpZCAiIgoiU2F2ZSBhbGwgT3JnIGJ1ZmZlcnMgaW4gdGhl IGN1cnJlbnQgRW1hY3Mgc2Vzc2lvbiwgYW5kIGFsc28gdGhlIGxvY2F0aW9ucyBvZiAiCiJJRHMu Igptc2dzdHIgIiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTk0NQptc2dpZCAi QHRzdWJoZWFkaW5ne1NlY29uZGFyeSBmaWx0ZXJpbmcgYW5kIHF1ZXJ5IGVkaXRpbmd9Igptc2dz dHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToxOTQ2CiMsIG5vLXdyYXAKbXNn aWQgIi8iCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxOTQ5Cm1z Z2lkICIiCiJGaWx0ZXIgdGhlIGN1cnJlbnQgYWdlbmRhIHZpZXcgd2l0aCByZXNwZWN0IHRvIGEg dGFnLiAgWW91IGFyZSBwcm9tcHRlZCBmb3IgIgoiYSBsZXR0ZXIgdG8gc2VsZWN0IGEgdGFnLiAg UHJlc3MgQHNhbXB7LX0gZmlyc3QgdG8gc2VsZWN0IGFnYWluc3QgdGhlIHRhZy4iCm1zZ3N0ciAi IgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjE5NTAKIywgbm8td3JhcAptc2dpZCAi XFwiCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxOTUyCm1zZ2lk ICJOYXJyb3cgdGhlIGN1cnJlbnQgYWdlbmRhIGZpbHRlciBieSBhbiBhZGRpdGlvbmFsIGNvbmRp dGlvbi4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToxOTU0Cm1z Z2lkICJAdHN1YmhlYWRpbmd7UmVtb3RlIGVkaXRpbmcgKHNlZSB0aGUgbWFudWFsIGZvciBtYW55 IG1vcmUgY29tbWFuZHMpfSIKbXNnc3RyICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRl eGk6MTk1NQojLCBuby13cmFwCm1zZ2lkICIwLTkiCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUK Izogb3JnZ3VpZGUudGV4aToxOTU4Cm1zZ2lkICJEaWdpdCBhcmd1bWVudC4iCm1zZ3N0ciAiIgoK Iy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjE5NTgKIywgbm8td3JhcAptc2dpZCAidCIK bXNnc3RyICIiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjE5NjIKbXNnaWQgIkNo YW5nZSB0aGUgVE9ETyBzdGF0ZSBvZiB0aGUgaXRlbSwgaW4gdGhlIGFnZW5kYSBhbmQgaW4gdGhl IG9yZyBmaWxlLiIKbXNnc3RyICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MTk2 MgojLCBuby13cmFwCm1zZ2lkICJDLWsiCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzogb3Jn Z3VpZGUudGV4aToxOTY2Cm1zZ2lkICIiCiJEZWxldGUgdGhlIGN1cnJlbnQgYWdlbmRhIGl0ZW0g YWxvbmcgd2l0aCB0aGUgZW50aXJlIHN1YnRyZWUgYmVsb25naW5nIHRvIGl0ICIKImluIHRoZSBv cmlnaW5hbCBPcmcgZmlsZS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUu dGV4aToxOTY5Cm1zZ2lkICJSZWZpbGUgdGhlIGVudHJ5IGF0IHBvaW50LiIKbXNnc3RyICIiCgoj LiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MTk2OQojLCBuby13cmFwCm1zZ2lkICJDLWMg Qy14IEMtYSBAIEBye29yIHNob3J0fSBAIGEiCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzog b3JnZ3VpZGUudGV4aToxOTczCm1zZ2lkICIiCiJBcmNoaXZlIHRoZSBzdWJ0cmVlIGNvcnJlc3Bv bmRpbmcgdG8gdGhlIGVudHJ5IGF0IHBvaW50IHVzaW5nIHRoZSBkZWZhdWx0ICIKImFyY2hpdmlu ZyBjb21tYW5kIHNldCBpbiBAY29kZXtvcmctYXJjaGl2ZS1kZWZhdWx0LWNvbW1hbmR9LiIKbXNn c3RyICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MTk3MwojLCBuby13cmFwCm1z Z2lkICJDLWMgQy14IEMtcyBAIEBye29yIHNob3J0fSBAICQiCm1zZ3N0ciAiIgoKIy4gdHlwZTog dGFibGUKIzogb3JnZ3VpZGUudGV4aToxOTc2Cm1zZ2lkICJBcmNoaXZlIHRoZSBzdWJ0cmVlIGNv cnJlc3BvbmRpbmcgdG8gdGhlIGN1cnJlbnQgaGVhZGxpbmUuIgptc2dzdHIgIiIKCiMuIHR5cGU6 IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTk3OQptc2dpZCAiU2NoZWR1bGUgdGhpcyBpdGVtLCB3 aXRoIHByZWZpeCBhcmcgcmVtb3ZlIHRoZSBzY2hlZHVsaW5nIHRpbWVzdGFtcCIKbXNnc3RyICIi CgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjE5ODIKbXNnaWQgIlNldCBhIGRlYWRs aW5lIGZvciB0aGlzIGl0ZW0sIHdpdGggcHJlZml4IGFyZyByZW1vdmUgdGhlIGRlYWRsaW5lLiIK bXNnc3RyICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MTk4MgojLCBmdXp6eSwg bm8td3JhcAptc2dpZCAiUy1Aa2V5e3JpZ2h0fSBAcnthbmR9IFMtQGtleXtsZWZ0fSIKbXNnc3Ry ICJTLUBrZXl7ZGVyZWNoYX1AcnsvfUBrZXl7aXpxdWllcmRhfSIKCiMuIHR5cGU6IHRhYmxlCiM6 IG9yZ2d1aWRlLnRleGk6MTk4NQptc2dpZCAiQ2hhbmdlIHRoZSB0aW1lc3RhbXAgYXNzb2NpYXRl ZCB3aXRoIHRoZSBjdXJyZW50IGxpbmUgYnkgb25lIGRheS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTog aXRlbQojOiBvcmdndWlkZS50ZXhpOjE5ODUKIywgbm8td3JhcAptc2dpZCAiSSIKbXNnc3RyICIi CgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjE5ODgKIywgZnV6enkKbXNnaWQgIlN0 YXJ0IHRoZSBjbG9jayBvbiB0aGUgY3VycmVudCBpdGVtLiIKbXNnc3RyICJFbmxhY2VzIGEgb3Ry b3MgbHVnYXJlcyBlbiBlbCBmaWNoZXJvIGFjdHVhbCIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3Vp ZGUudGV4aToxOTg4CiMsIG5vLXdyYXAKbXNnaWQgIk8gLyBYIgptc2dzdHIgIiIKCiMuIHR5cGU6 IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MTk5MAptc2dpZCAiU3RvcC9jYW5jZWwgdGhlIHByZXZp b3VzbHkgc3RhcnRlZCBjbG9jay4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlk ZS50ZXhpOjE5OTEKIywgbm8td3JhcAptc2dpZCAiSiIKbXNnc3RyICIiCgojLiB0eXBlOiB0YWJs ZQojOiBvcmdndWlkZS50ZXhpOjE5OTMKbXNnaWQgIkp1bXAgdG8gdGhlIHJ1bm5pbmcgY2xvY2sg aW4gYW5vdGhlciB3aW5kb3cuIgptc2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3Jn Z3VpZGUudGV4aToyMDA3Cm1zZ2lkICIiCiJUaGUgbWFpbiBhcHBsaWNhdGlvbiBvZiBjdXN0b20g c2VhcmNoZXMgaXMgdGhlIGRlZmluaXRpb24gb2Yga2V5Ym9hcmQgIgoic2hvcnRjdXRzIGZvciBm cmVxdWVudGx5IHVzZWQgc2VhcmNoZXMsIGVpdGhlciBjcmVhdGluZyBhbiBhZ2VuZGEgYnVmZmVy LCBvciAiCiJhIHNwYXJzZSB0cmVlICh0aGUgbGF0dGVyIGNvdmVyaW5nIG9mIGNvdXJzZSBvbmx5 IHRoZSBjdXJyZW50IGJ1ZmZlcikuICAiCiJDdXN0b20gY29tbWFuZHMgYXJlIGNvbmZpZ3VyZWQg aW4gdGhlIHZhcmlhYmxlIEBjb2Rle29yZy1hZ2VuZGEtY3VzdG9tLSIKImNvbW1hbmRzfS4gIFlv dSBjYW4gY3VzdG9taXplIHRoaXMgdmFyaWFibGUsIGZvciBleGFtcGxlIGJ5IHByZXNzaW5nIEBr YmR7Qy0iCiJjIGEgQ30uICBZb3UgY2FuIGFsc28gZGlyZWN0bHkgc2V0IGl0IHdpdGggRW1hY3Mg TGlzcCBpbiBAZmlsZXsuZW1hY3N9LiAgVGhlICIKImZvbGxvd2luZyBleGFtcGxlIGNvbnRhaW5z IGFsbCB2YWxpZCBzZWFyY2ggdHlwZXM6Igptc2dzdHIgIiIKCiMuIHR5cGU6IGdyb3VwCiM6IG9y Z2d1aWRlLnRleGk6MjAxNAojLCBuby13cmFwCm1zZ2lkICIiCiIoc2V0cSBvcmctYWdlbmRhLWN1 c3RvbS1jb21tYW5kc1xuIgoiICAgICAgJygoXCJ3XCIgdG9kbyBcIldBSVRJTkdcIilcbiIKIiAg ICAgICAgKFwidVwiIHRhZ3MgXCIrYm9zcy11cmdlbnRcIilcbiIKIiAgICAgICAgKFwidlwiIHRh Z3MtdG9kbyBcIitib3NzLXVyZ2VudFwiKSkpXG4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4g dGV4dAojOiBvcmdndWlkZS50ZXhpOjIwMjMKbXNnaWQgIiIKIlRoZSBpbml0aWFsIHN0cmluZyBp biBlYWNoIGVudHJ5IGRlZmluZXMgdGhlIGtleXMgeW91IGhhdmUgdG8gcHJlc3MgYWZ0ZXIgIgoi dGhlIGRpc3BhdGNoZXIgY29tbWFuZCBAa2Jke0MtYyBhfSBpbiBvcmRlciB0byBhY2Nlc3MgdGhl IGNvbW1hbmQuICBVc3VhbGx5ICIKInRoaXMgd2lsbCBiZSBqdXN0IGEgc2luZ2xlIGNoYXJhY3Rl ci4gIFRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzIHRoZSBzZWFyY2ggIgoidHlwZSwgZm9sbG93ZWQg YnkgdGhlIHN0cmluZyBvciByZWd1bGFyIGV4cHJlc3Npb24gdG8gYmUgdXNlZCBmb3IgdGhlICIK Im1hdGNoaW5nLiAgVGhlIGV4YW1wbGUgYWJvdmUgd2lsbCB0aGVyZWZvcmUgZGVmaW5lOiIKbXNn c3RyICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MjAyNQojLCBmdXp6eSwgbm8t d3JhcAptc2dpZCAiQy1jIGEgdyIKbXNnc3RyICJDLWMgYSB0IgoKIy4gdHlwZTogdGFibGUKIzog b3JnZ3VpZGUudGV4aToyMDI4Cm1zZ2lkICIiCiJhcyBhIGdsb2JhbCBzZWFyY2ggZm9yIFRPRE8g ZW50cmllcyB3aXRoIEBzYW1we1dBSVRJTkd9IGFzIHRoZSBUT0RPIGtleXdvcmQiCm1zZ3N0ciAi IgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjIwMjgKIywgZnV6enksIG5vLXdyYXAK bXNnaWQgIkMtYyBhIHUiCm1zZ3N0ciAiQy1jIGEgdCIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1 aWRlLnRleGk6MjAzMQptc2dpZCAiIgoiYXMgYSBnbG9iYWwgdGFncyBzZWFyY2ggZm9yIGhlYWRs aW5lcyBtYXJrZWQgQHNhbXB7OmJvc3M6fSBidXQgbm90IEBzYW1wezoiCiJ1cmdlbnQ6fSIKbXNn c3RyICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MjAzMQojLCBmdXp6eSwgbm8t d3JhcAptc2dpZCAiQy1jIGEgdiIKbXNnc3RyICJDLWMgYSB0IgoKIy4gdHlwZTogdGFibGUKIzog b3JnZ3VpZGUudGV4aToyMDM0Cm1zZ2lkICIiCiJhcyB0aGUgc2FtZSBzZWFyY2ggYXMgQGtiZHtD LWMgYSB1fSwgYnV0IGxpbWl0aW5nIHRoZSBzZWFyY2ggdG8gaGVhZGxpbmVzICIKInRoYXQgYXJl IGFsc28gVE9ETyBpdGVtcyIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1 aWRlLnRleGk6MjA0Mwptc2dpZCAiIgoiQHNlZWFsc297IEB1cmVme2h0dHA6Ly9vcmdtb2RlLm9y Zy9tYW51YWwvQWdlbmRhLVZpZXdzLmh0bWwjQWdlbmRhLVZpZXdzLCAiCiJDaGFwdGVyIDEwIG9m IHRoZSBtYW51YWx9QCogQHVyZWZ7aHR0cDovL29yZ21vZGUub3JnL3dvcmcvb3JnLXR1dG9yaWFs cy9vcmctIgoiY3VzdG9tLWFnZW5kYS1jb21tYW5kcy5waHAsIE1hdCBMdW5kaW4ncyB0dXRvcmlh bCBhYm91dCBjdXN0b20gYWdlbmRhICIKImNvbW1hbmRzfUAqIEB1cmVme2h0dHA6Ly93d3cubmV3 YXJ0aXNhbnMuY29tLzIwMDcvMDgvdXNpbmctb3JnLW1vZGUtYXMtYS1kYXktIgoicGxhbm5lci5o dG1sLCBKb2huIFdpZWdsZXkncyBzZXR1cH19Igptc2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRl eHQKIzogb3JnZ3VpZGUudGV4aToyMDUyCm1zZ2lkICIiCiJXaGVuIGV4cG9ydGluZyBPcmctbW9k ZSBkb2N1bWVudHMsIHRoZSBleHBvcnRlciB0cmllcyB0byByZWZsZWN0IHRoZSAiCiJzdHJ1Y3R1 cmUgb2YgdGhlIGRvY3VtZW50IGFzIGFjY3VyYXRlbHkgYXMgcG9zc2libGUgaW4gdGhlIGJhY2tl bmQuICBTaW5jZSAiCiJleHBvcnQgdGFyZ2V0cyBsaWtlIEhUTUwsIEBMYVRlWHt9LCBvciBEb2NC b29rIGFsbG93IG11Y2ggcmljaGVyIGZvcm1hdHRpbmcsICIKIk9yZyBtb2RlIGhhcyBydWxlcyBv biBob3cgdG8gcHJlcGFyZSB0ZXh0IGZvciByaWNoIGV4cG9ydC4gIFRoaXMgc2VjdGlvbiAiCiJz dW1tYXJpemVzIHRoZSBtYXJrdXAgcnVsZXMgdXNlZCBpbiBhbiBPcmctbW9kZSBidWZmZXIuIgpt c2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyMDc4Cm1zZ2lk ICJUaGUgdGl0bGUgb2YgdGhlIGV4cG9ydGVkIGRvY3VtZW50IGlzIHRha2VuIGZyb20gdGhlIHNw ZWNpYWwgbGluZSIKbXNnc3RyICIiCgojLiB0eXBlOiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUu dGV4aToyMDgxCiMsIG5vLXdyYXAKbXNnaWQgIiMrVElUTEU6IFRoaXMgaXMgdGhlIHRpdGxlIG9m IHRoZSBkb2N1bWVudFxuIgptc2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3Vp ZGUudGV4aToyMDkzCm1zZ2lkICIiCiJUaGUgb3V0bGluZSBzdHJ1Y3R1cmUgb2YgdGhlIGRvY3Vt ZW50IGFzIGRlc2NyaWJlZCBpbiBAcmVme0RvY3VtZW50ICIKIlN0cnVjdHVyZX0sIGZvcm1zIHRo ZSBiYXNpcyBmb3IgZGVmaW5pbmcgc2VjdGlvbnMgb2YgdGhlIGV4cG9ydGVkIGRvY3VtZW50LiAg IgoiSG93ZXZlciwgc2luY2UgdGhlIG91dGxpbmUgc3RydWN0dXJlIGlzIGFsc28gdXNlZCBmb3Ig KGZvciBleGFtcGxlKSBsaXN0cyBvZiAiCiJ0YXNrcywgb25seSB0aGUgZmlyc3QgdGhyZWUgb3V0 bGluZSBsZXZlbHMgd2lsbCBiZSB1c2VkIGFzIGhlYWRpbmdzLiAgRGVlcGVyICIKImxldmVscyB3 aWxsIGJlY29tZSBpdGVtaXplZCBsaXN0cy4gIFlvdSBjYW4gY2hhbmdlIHRoZSBsb2NhdGlvbiBv ZiB0aGlzICIKInN3aXRjaCBnbG9iYWxseSBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZSBAY29kZXtv cmctZXhwb3J0LWhlYWRsaW5lLWxldmVsc30sICIKIm9yIG9uIGEgcGVyLWZpbGUgYmFzaXMgd2l0 aCBhIGxpbmUiCm1zZ3N0ciAiIgoiIC4uLi4uLi4uLi4uLi4uLi4gLi4uLi4uLi4uLi4gQHJlZntF c3RydWN0dXJhIGRlbCBkb2N1bWVudG99LCAuLi4uLi4uIC4uLiIKCiMuIHR5cGU6IHNtYWxsZXhh bXBsZQojOiBvcmdndWlkZS50ZXhpOjIwOTYKIywgbm8td3JhcAptc2dpZCAiIytPUFRJT05TOiBI OjRcbiIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MjEw Mwptc2dpZCAiIgoiVGhlIHRhYmxlIG9mIGNvbnRlbnRzIGlzIG5vcm1hbGx5IGluc2VydGVkIGRp cmVjdGx5IGJlZm9yZSB0aGUgZmlyc3QgIgoiaGVhZGxpbmUgb2YgdGhlIGZpbGUuIgptc2dzdHIg IiIKCiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjIxMDcKIywgbm8td3Jh cAptc2dpZCAiIgoiIytPUFRJT05TOiB0b2M6MiAgICAgICAgICAob25seSB0byB0d28gbGV2ZWxz IGluIFRPQylcbiIKIiMrT1BUSU9OUzogdG9jOm5pbCAgICAgICAgKG5vIFRPQyBhdCBhbGwpXG4i Cm1zZ3N0ciAiIgoKIy4gdHlwZTogc3ViaGVhZGluZwojOiBvcmdndWlkZS50ZXhpOjIxMTAKIywg bm8td3JhcAptc2dpZCAiUGFyYWdyYXBocywgbGluZSBicmVha3MsIGFuZCBxdW90aW5nIgptc2dz dHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyMTE0Cm1zZ2lkICIi CiJQYXJhZ3JhcGhzIGFyZSBzZXBhcmF0ZWQgYnkgYXQgbGVhc3Qgb25lIGVtcHR5IGxpbmUuICBJ ZiB5b3UgbmVlZCB0byBlbmZvcmNlICIKImEgbGluZSBicmVhayB3aXRoaW4gYSBwYXJhZ3JhcGgs IHVzZSBAc2FtcHtcXFxcfSBhdCB0aGUgZW5kIG9mIGEgbGluZS4iCm1zZ3N0ciAiIgoKIy4gdHlw ZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjIxMTcKbXNnaWQgIiIKIlRvIGtlZXAgdGhl IGxpbmUgYnJlYWtzIGluIGEgcmVnaW9uLCBidXQgb3RoZXJ3aXNlIHVzZSBub3JtYWwgZm9ybWF0 dGluZywgIgoieW91IGNhbiB1c2UgdGhpcyBjb25zdHJ1Y3QsIHdoaWNoIGNhbiBhbHNvIGJlIHVz ZWQgdG8gZm9ybWF0IHBvZXRyeS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6 IG9yZ2d1aWRlLnRleGk6MjEyMwojLCBuby13cmFwCm1zZ2lkICIiCiIjK0JFR0lOX1ZFUlNFXG4i CiIgR3JlYXQgY2xvdWRzIG92ZXJoZWFkXG4iCiIgVGlueSBibGFjayBiaXJkcyByaXNlIGFuZCBm YWxsXG4iCiIgU25vdyBjb3ZlcnMgRW1hY3NcbiIKIlxuIgptc2dzdHIgIiIKCiMuIHR5cGU6IHNt YWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjIxMjYKIywgbm8td3JhcAptc2dpZCAiIgoiICAg ICAtLSBBbGV4U2Nocm9lZGVyXG4iCiIjK0VORF9WRVJTRVxuIgptc2dzdHIgIiIKCiMuIHR5cGU6 IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyMTMxCm1zZ2lkICIiCiJXaGVuIHF1b3Rpbmcg YSBwYXNzYWdlIGZyb20gYW5vdGhlciBkb2N1bWVudCwgaXQgaXMgY3VzdG9tYXJ5IHRvIGZvcm1h dCB0aGlzICIKImFzIGEgcGFyYWdyYXBoIHRoYXQgaXMgaW5kZW50ZWQgb24gYm90aCB0aGUgbGVm dCBhbmQgdGhlIHJpZ2h0IG1hcmdpbi4gIFlvdSAiCiJjYW4gaW5jbHVkZSBxdW90YXRpb25zIGlu IE9yZy1tb2RlIGRvY3VtZW50cyBsaWtlIHRoaXM6Igptc2dzdHIgIiIKCiMuIHR5cGU6IHNtYWxs ZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjIxMzcKIywgbm8td3JhcAptc2dpZCAiIgoiIytCRUdJ Tl9RVU9URVxuIgoiRXZlcnl0aGluZyBzaG91bGQgYmUgbWFkZSBhcyBzaW1wbGUgYXMgcG9zc2li bGUsXG4iCiJidXQgbm90IGFueSBzaW1wbGVyIC0tIEFsYmVydCBFaW5zdGVpblxuIgoiIytFTkRf UVVPVEVcbiIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6 MjE0MAptc2dpZCAiSWYgeW91IHdvdWxkIGxpa2UgdG8gY2VudGVyIHNvbWUgdGV4dCwgZG8gaXQg bGlrZSB0aGlzOiIKbXNnc3RyICIiCgojLiB0eXBlOiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUu dGV4aToyMTQ1CiMsIG5vLXdyYXAKbXNnaWQgIiIKIiMrQkVHSU5fQ0VOVEVSXG4iCiJFdmVyeXRo aW5nIHNob3VsZCBiZSBtYWRlIGFzIHNpbXBsZSBhcyBwb3NzaWJsZSwgXFxcXFxuIgoiYnV0IG5v dCBhbnkgc2ltcGxlclxuIgoiIytFTkRfQ0VOVEVSXG4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxh aW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjIxNTUKbXNnaWQgIiIKIllvdSBjYW4gbWFrZSB3b3Jk cyBAYnsqYm9sZCp9LCBAaXsvaXRhbGljL30sIF91bmRlcmxpbmVkXywgQGNvZGV7PWNvZGU9fSBh bmQgIgoiQGNvZGV7fnZlcmJhdGltfn0sIGFuZCwgaWYgeW91IG11c3QsIEBzYW1weytzdHJpa2Ut dGhyb3VnaCt9LiAgVGV4dCBpbiB0aGUgIgoiY29kZSBhbmQgdmVyYmF0aW0gc3RyaW5nIGlzIG5v dCBwcm9jZXNzZWQgZm9yIE9yZy1tb2RlIHNwZWNpZmljIHN5bnRheCwgaXQgIgoiaXMgZXhwb3J0 ZWQgdmVyYmF0aW0uICBUbyBpbnNlcnQgYSBob3Jpem9udGFsIHJ1bGVzLCB1c2UgYSBsaW5lIGNv bnNpc3RpbmcgIgoib2Ygb25seSBkYXNoZXMsIGFuZCBhdCBsZWFzdCA1IG9mIHRoZW0uIgptc2dz dHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyMTY0Cm1zZ2lkICIi CiJMaW5lcyBzdGFydGluZyB3aXRoIHplcm8gb3IgbW9yZSB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMg Zm9sbG93ZWQgYnkgQHNhbXB7I30gIgoiYXJlIHRyZWF0ZWQgYXMgY29tbWVudHMgYW5kIHdpbGwg bmV2ZXIgYmUgZXhwb3J0ZWQuICBBbHNvIGVudGlyZSBzdWJ0cmVlcyAiCiJzdGFydGluZyB3aXRo IHRoZSB3b3JkIEBzYW1we0NPTU1FTlR9IHdpbGwgbmV2ZXIgYmUgZXhwb3J0ZWQuICBGaW5hbGx5 LCAiCiJyZWdpb25zIHN1cnJvdW5kZWQgYnkgQHNhbXB7IytCRUdJTl9DT01NRU5UfSAuLi4gQHNh bXB7IytFTkRfQ09NTUVOVH0gd2lsbCAiCiJub3QgYmUgZXhwb3J0ZWQuIgptc2dzdHIgIiIKCiMu IHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToyMTY2CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lk ICJDLWMgOyIKbXNnc3RyICJDLWMgLyIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6 MjE2OAptc2dpZCAiVG9nZ2xlIHRoZSBDT01NRU5UIGtleXdvcmQgYXQgdGhlIGJlZ2lubmluZyBv ZiBhbiBlbnRyeS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogc2VjdGlvbgojOiBvcmdndWlkZS50ZXhp OjIxNzEKIywgZnV6enksIG5vLXdyYXAKbXNnaWQgIkltYWdlcyBhbmQgVGFibGVzIgptc2dzdHIg IkZlY2hhcyB5IGhvcmFzIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjIx NzcKbXNnaWQgIiIKIkZvciBPcmcgbW9kZSB0YWJsZXMsIHRoZSBsaW5lcyBiZWZvcmUgdGhlIGZp cnN0IGhvcml6b250YWwgc2VwYXJhdG9yIGxpbmUgIgoid2lsbCBiZWNvbWUgdGFibGUgaGVhZGVy IGxpbmVzLiAgWW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBsaW5lcyBzb21ld2hlcmUgIgoiYmVm b3JlIHRoZSB0YWJsZSB0byBhc3NpZ24gYSBjYXB0aW9uIGFuZCBhIGxhYmVsIGZvciBjcm9zcyBy ZWZlcmVuY2VzLCBhbmQgIgoiaW4gdGhlIHRleHQgeW91IGNhbiByZWZlciB0byB0aGUgb2JqZWN0 IHdpdGggQGNvZGV7XFxyZWZAe3RhYjpiYXNpYy1kYXRhQH19OiIKbXNnc3RyICIiCgojLiB0eXBl OiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUudGV4aToyMTgzCiMsIG5vLXdyYXAKbXNnaWQgIiIK IiMrQ0FQVElPTjogVGhpcyBpcyB0aGUgY2FwdGlvbiBmb3IgdGhlIG5leHQgdGFibGUgKG9yIGxp bmspXG4iCiIjK0xBQkVMOiAgIHRibDpiYXNpYy1kYXRhXG4iCiIgICB8IC4uLiB8IC4uLnxcbiIK IiAgIHwtLS0tLXwtLS0tfFxuIgptc2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3Jn Z3VpZGUudGV4aToyMTkxCm1zZ2lkICIiCiJTb21lIGJhY2tlbmRzIChIVE1MLCBATGFUZVh7fSwg YW5kIERvY0Jvb2spIGFsbG93IHlvdSB0byBkaXJlY3RseSBpbmNsdWRlICIKImltYWdlcyBpbnRv IHRoZSBleHBvcnRlZCBkb2N1bWVudC4gIE9yZyBkb2VzIHRoaXMsIGlmIGEgbGluayB0byBhbiBp bWFnZSAiCiJmaWxlcyBkb2VzIG5vdCBoYXZlIGEgZGVzY3JpcHRpb24gcGFydCwgZm9yIGV4YW1w bGUgQGNvZGV7W1suL2ltZy9hLmpwZ11dfS4gICIKIklmIHlvdSB3aXNoIHRvIGRlZmluZSBhIGNh cHRpb24gZm9yIHRoZSBpbWFnZSBhbmQgbWF5YmUgYSBsYWJlbCBmb3IgaW50ZXJuYWwgIgoiY3Jv c3MgcmVmZXJlbmNlcywgeW91IHN1cmUgdGhhdCB0aGUgbGluayBpcyBvbiBhIGxpbmUgYnkgaXRz ZWxmIHByZWNlZGUgaXQgIgoid2l0aDoiCm1zZ3N0ciAiIgoKIy4gdHlwZTogc21hbGxleGFtcGxl CiM6IG9yZ2d1aWRlLnRleGk6MjE5NgojLCBuby13cmFwCm1zZ2lkICIiCiIjK0NBUFRJT046IFRo aXMgaXMgdGhlIGNhcHRpb24gZm9yIHRoZSBuZXh0IGZpZ3VyZSBsaW5rIChvciB0YWJsZSlcbiIK IiMrTEFCRUw6ICAgZmlnOlNFRC1IUjQwNDlcbiIKIltbLi9pbWcvYS5qcGddXVxuIgptc2dzdHIg IiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyMjAxCm1zZ2lkICIiCiJZ b3UgbWF5IGFsc28gZGVmaW5lIGFkZGl0aW9uYWwgYXR0cmlidXRlcyBmb3IgdGhlIGZpZ3VyZS4g IEFzIHRoaXMgaXMgIgoiYmFja2VuZC1zcGVjaWZpYywgc2VlIHRoZSBzZWN0aW9ucyBhYm91dCB0 aGUgaW5kaXZpZHVhbCBiYWNrZW5kcyBmb3IgbW9yZSAiCiJpbmZvcm1hdGlvbi4iCm1zZ3N0ciAi IgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjIyMDkKbXNnaWQgIiIKIllv dSBjYW4gaW5jbHVkZSBsaXRlcmFsIGV4YW1wbGVzIHRoYXQgc2hvdWxkIG5vdCBiZSBzdWJqZWN0 ZWQgdG8gbWFya3VwLiAgIgoiU3VjaCBleGFtcGxlcyB3aWxsIGJlIHR5cGVzZXQgaW4gbW9ub3Nw YWNlLCBzbyB0aGlzIGlzIHdlbGwgc3VpdGVkIGZvciAiCiJzb3VyY2UgY29kZSBhbmQgc2ltaWxh ciBleGFtcGxlcy4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1aWRl LnRleGk6MjIxNAojLCBuby13cmFwCm1zZ2lkICIiCiIjK0JFR0lOX0VYQU1QTEVcbiIKIlNvbWUg ZXhhbXBsZSBmcm9tIGEgdGV4dCBmaWxlLlxuIgoiIytFTkRfRVhBTVBMRVxuIgptc2dzdHIgIiIK CiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyMjE5Cm1zZ2lkICIiCiJGb3Ig c2ltcGxpY2l0eSB3aGVuIHVzaW5nIHNtYWxsIGV4YW1wbGVzLCB5b3UgY2FuIGFsc28gc3RhcnQg dGhlIGV4YW1wbGUgIgoibGluZXMgd2l0aCBhIGNvbG9uIGZvbGxvd2VkIGJ5IGEgc3BhY2UuICBU aGVyZSBtYXkgYWxzbyBiZSBhZGRpdGlvbmFsICIKIndoaXRlc3BhY2UgYmVmb3JlIHRoZSBjb2xv bjoiCm1zZ3N0ciAiIgoKIy4gdHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1aWRlLnRleGk6MjIy MwojLCBuby13cmFwCm1zZ2lkICIiCiJIZXJlIGlzIGFuIGV4YW1wbGVcbiIKIiAgIDogU29tZSBl eGFtcGxlIGZyb20gYSB0ZXh0IGZpbGUuXG4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4 dAojOiBvcmdndWlkZS50ZXhpOjIyMjgKbXNnaWQgIiIKIkZvciBzb3VyY2UgY29kZSBmcm9tIGEg cHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIG9yIGFueSBvdGhlciB0ZXh0IHRoYXQgY2FuIGJlICIKIm1h cmtlZCB1cCBieSBmb250LWxvY2sgaW4gRW1hY3MsIHlvdSBjYW4gYXNrIGZvciBpdCB0byBsb29r IGxpa2UgdGhlICIKImZvbnRpZmllZCBFbWFjcyBidWZmZXIiCm1zZ3N0ciAiIgoKIy4gdHlwZTog c21hbGxleGFtcGxlCiM6IG9yZ2d1aWRlLnRleGk6MjIzNQojLCBuby13cmFwCm1zZ2lkICIiCiIj K0JFR0lOX1NSQyBlbWFjcy1saXNwXG4iCiIoZGVmdW4gb3JnLXhvciAoYSBiKVxuIgoiICAgXCJF eGNsdXNpdmUgb3IuXCJcbiIKIiAgIChpZiBhIChub3QgYikgYikpXG4iCiIjK0VORF9TUkNcbiIK bXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MjIzOQptc2dp ZCAiIgoiVG8gZWRpdCB0aGUgZXhhbXBsZSBpbiBhIHNwZWNpYWwgYnVmZmVyIHN1cHBvcnRpbmcg dGhpcyBsYW5ndWFnZSwgdXNlIEBrYmR7Qy0iCiJjICd9IHRvIGJvdGggZW50ZXIgYW5kIGxlYXZl IHRoZSBlZGl0aW5nIGJ1ZmZlci4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBv cmdndWlkZS50ZXhpOjIyNDUKbXNnaWQgIiIKIkR1cmluZyBleHBvcnQsIHlvdSBjYW4gaW5jbHVk ZSB0aGUgY29udGVudCBvZiBhbm90aGVyIGZpbGUuICBGb3IgZXhhbXBsZSwgdG8gIgoiaW5jbHVk ZSB5b3VyIEBmaWxley5lbWFjc30gZmlsZSwgeW91IGNvdWxkIHVzZToiCm1zZ3N0ciAiIgoKIy4g dHlwZTogc21hbGxleGFtcGxlCiM6IG9yZ2d1aWRlLnRleGk6MjI0OAojLCBuby13cmFwCm1zZ2lk ICIjK0lOQ0xVREU6IFwifi8uZW1hY3NcIiBzcmMgZW1hY3MtbGlzcFxuIgptc2dzdHIgIiIKCiMu IHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyMjU1Cm1zZ2lkICIiCiJUaGUgb3B0 aW9uYWwgc2Vjb25kIGFuZCB0aGlyZCBwYXJhbWV0ZXIgYXJlIHRoZSBtYXJrdXAgKGUuZy5AOiBA c2FtcHtxdW90ZX0sICIKIkBzYW1we2V4YW1wbGV9LCBvciBAc2FtcHtzcmN9KSwgYW5kLCBpZiB0 aGUgbWFya3VwIGlzIEBzYW1we3NyY30sIHRoZSAiCiJsYW5ndWFnZSBmb3IgZm9ybWF0dGluZyB0 aGUgY29udGVudHMuICBUaGUgbWFya3VwIGlzIG9wdGlvbmFsLCBpZiBpdCBpcyBub3QgIgoiZ2l2 ZW4sIHRoZSB0ZXh0IHdpbGwgYmUgYXNzdW1lZCB0byBiZSBpbiBPcmcgbW9kZSBmb3JtYXQgYW5k IHdpbGwgYmUgIgoicHJvY2Vzc2VkIG5vcm1hbGx5LiBAa2Jke0MtYyAnfSB3aWxsIHZpc2l0IHRo ZSBpbmNsdWRlZCBmaWxlLiIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1 aWRlLnRleGk6MjI2Mwptc2dpZCAiIgoiRm9yIHNjaWVudGlmaWMgbm90ZXMgd2hpY2ggbmVlZCB0 byBiZSBhYmxlIHRvIGNvbnRhaW4gbWF0aGVtYXRpY2FsIHN5bWJvbHMgIgoiYW5kIHRoZSBvY2Nh c2lvbmFsIGZvcm11bGEsIE9yZy1tb2RlIHN1cHBvcnRzIGVtYmVkZGluZyBATGFUZVh7fSBjb2Rl IGludG8gIgoiaXRzIGZpbGVzLiAgWW91IGNhbiBkaXJlY3RseSB1c2UgVGVYLWxpa2UgbWFjcm9z IGZvciBzcGVjaWFsIHN5bWJvbHMsIGVudGVyICIKImZvcm11bGFzIGFuZCBlbnRpcmUgQExhVGVY e30gZW52aXJvbm1lbnRzLiIKbXNnc3RyICIiCgojLiB0eXBlOiBzbWFsbGV4YW1wbGUKIzogb3Jn Z3VpZGUudGV4aToyMjY5CiMsIG5vLXdyYXAKbXNnaWQgIiIKIkFuZ2xlcyBhcmUgd3JpdHRlbiBh cyBHcmVlayBsZXR0ZXJzIFxcYWxwaGEsIFxcYmV0YSBhbmQgXFxnYW1tYS4gIFRoZSBtYXNzIGlm XG4iCiJ0aGUgc3VuIGlzIE1fc3VuID0gMS45ODkgeCAxMF4zMCBrZy4gIFRoZSByYWRpdXMgb2Yg dGhlIHN1biBpcyBSX0B7c3VuQH0gPVxuIgoiNi45NiB4IDEwXjggbS4gIElmICRhXjI9YiQgYW5k ICRiPTIkLCB0aGVuIHRoZSBzb2x1dGlvbiBtdXN0IGJlIGVpdGhlclxuIgoiJGE9K1xcc3FydEB7 MkB9JCBvciAkYT0tXFxzcXJ0QHsyQH0kLlxuIgoiXG4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogc21h bGxleGFtcGxlCiM6IG9yZ2d1aWRlLnRleGk6MjI3MwojLCBuby13cmFwCm1zZ2lkICIiCiJcXGJl Z2luQHtlcXVhdGlvbkB9XG4iCiJ4PVxcc3FydEB7YkB9XG4iCiJcXGVuZEB7ZXF1YXRpb25AfVxu Igptc2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyMjc3Cm1z Z2lkICIiCiJAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvbWFudWFsL0xhVGVYLWZyYWdtZW50cy5o dG1sI0xhVGVYLWZyYWdtZW50cyxzcGVjaWFsICIKInNldHVwfSwgQExhVGVYe30gc25pcHBldHMg d2lsbCBiZSBpbmNsdWRlZCBhcyBpbWFnZXMgd2hlbiBleHBvcnRpbmcgdG8gSFRNTC4iCm1zZ3N0 ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjIyODAKbXNnaWQgIiIK IkBzZWVhbHNveyBAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvbWFudWFsL01hcmt1cC5odG1sI01h cmt1cCwgQ2hhcHRlciAxMSBvZiAiCiJ0aGUgbWFudWFsfX0iCm1zZ3N0ciAiIgoKIy4gdHlwZTog UGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjIyODkKbXNnaWQgIiIKIk9yZy1tb2RlIGRvY3Vt ZW50cyBjYW4gYmUgZXhwb3J0ZWQgaW50byBhIHZhcmlldHkgb2Ygb3RoZXIgZm9ybWF0czogQVND SUkgIgoiZXhwb3J0IGZvciBpbmNsdXNpb24gaW50byBlbWFpbHMsIEhUTUwgdG8gcHVibGlzaCBv biB0aGUgd2ViLCBATGFUZVh7fS9QREYgIgoiZm9yIGJlYXV0aWZ1bCBwcmludGVkIGRvY3VtZW50 cyBhbmQgRG9jQm9vayB0byBlbnRlciB0aGUgd29ybGQgb2YgbWFueSBvdGhlciAiCiJmb3JtYXRz IHVzaW5nIERvY0Jvb2sgdG9vbHMuICBUaGVyZSBpcyBhbHNvIGV4cG9ydCB0byBpQ2FsZW5kYXIg Zm9ybWF0IHNvICIKInRoYXQgcGxhbm5pbmcgaW5mb3JtYXRpb24gY2FuIGJlIGluY29ycG9yYXRl ZCBpbnRvIGRlc2t0b3AgY2FsZW5kYXJzLiIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0 CiM6IG9yZ2d1aWRlLnRleGk6MjMwNwptc2dpZCAiIgoiVGhlIGV4cG9ydGVyIHJlY29nbml6ZXMg c3BlY2lhbCBsaW5lcyBpbiB0aGUgYnVmZmVyIHdoaWNoIHByb3ZpZGUgYWRkaXRpb25hbCAiCiJp bmZvcm1hdGlvbi4gIFRoZXNlIGxpbmVzIG1heSBiZSBwdXQgYW55d2hlcmUgaW4gdGhlIGZpbGUu ICBUaGUgd2hvbGUgc2V0IG9mICIKImxpbmVzIGNhbiBiZSBpbnNlcnRlZCBpbnRvIHRoZSBidWZm ZXIgd2l0aCBAa2Jke0MtYyBDLWUgdH0uIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3Jn Z3VpZGUudGV4aToyMzA5CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJDLWMgQy1lIHQiCm1zZ3N0 ciAiQy1jIEMtdCIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MjMxMQptc2dpZCAi SW5zZXJ0IHRlbXBsYXRlIHdpdGggZXhwb3J0IG9wdGlvbnMsIHNlZSBleGFtcGxlIGJlbG93LiIK bXNnc3RyICIiCgojLiB0eXBlOiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUudGV4aToyMzI3CiMs IG5vLXdyYXAKbXNnaWQgIiIKIiMrVElUTEU6ICAgICAgIHRoZSB0aXRsZSB0byBiZSBzaG93biAo ZGVmYXVsdCBpcyB0aGUgYnVmZmVyIG5hbWUpXG4iCiIjK0FVVEhPUjogICAgICB0aGUgYXV0aG9y IChkZWZhdWx0IHRha2VuIGZyb20gQGNvZGV7dXNlci1mdWxsLW5hbWV9KVxuIgoiIytEQVRFOiAg ICAgICAgYSBkYXRlLCBmaXhlZCwgb2YgYSBmb3JtYXQgc3RyaW5nIGZvciBAY29kZXtmb3JtYXQt dGltZS1zdHJpbmd9XG4iCiIjK0VNQUlMOiAgICAgICBoaXMvaGVyIGVtYWlsIGFkZHJlc3MgKGRl ZmF1bHQgZnJvbSBAY29kZXt1c2VyLW1haWwtYWRkcmVzc30pXG4iCiIjK0RFU0NSSVBUSU9OOiB0 aGUgcGFnZSBkZXNjcmlwdGlvbiwgZS5nLkA6IGZvciB0aGUgWEhUTUwgbWV0YSB0YWdcbiIKIiMr S0VZV09SRFM6ICAgIHRoZSBwYWdlIGtleXdvcmRzLCBlLmcuQDogZm9yIHRoZSBYSFRNTCBtZXRh IHRhZ1xuIgoiIytMQU5HVUFHRTogICAgbGFuZ3VhZ2UgZm9yIEhUTUwsIGUuZy5AOiBAc2FtcHtl bn0gKEBjb2Rle29yZy1leHBvcnQtZGVmYXVsdC1sYW5ndWFnZX0pXG4iCiIjK1RFWFQ6ICAgICAg ICBTb21lIGRlc2NyaXB0aXZlIHRleHQgdG8gYmUgaW5zZXJ0ZWQgYXQgdGhlIGJlZ2lubmluZy5c biIKIiMrVEVYVDogICAgICAgIFNldmVyYWwgbGluZXMgbWF5IGJlIGdpdmVuLlxuIgoiIytPUFRJ T05TOiAgICAgSDoyIG51bTp0IHRvYzp0IFxcbjpuaWwgQEA6dCA6OnQgfDp0IF46dCBmOnQgVGVY OnQgLi4uXG4iCiIjK0xJTktfVVA6ICAgICB0aGUgYGB1cCcnIGxpbmsgb2YgYW4gZXhwb3J0ZWQg cGFnZVxuIgoiIytMSU5LX0hPTUU6ICAgdGhlIGBgaG9tZScnIGxpbmsgb2YgYW4gZXhwb3J0ZWQg cGFnZVxuIgoiIytMQVRFWF9IRUFERVI6IGV4dHJhIGxpbmUocykgZm9yIHRoZSBATGFUZVh7fSBo ZWFkZXIsIGxpa2UgXFx1c2VwYWNrYWdlQHt4eXpAfVxuIgptc2dzdHIgIiIKCiMuIHR5cGU6IFBs YWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyMzM3Cm1zZ2lkICIiCiJBbGwgZXhwb3J0IGNvbW1h bmRzIGNhbiBiZSByZWFjaGVkIHVzaW5nIHRoZSBleHBvcnQgZGlzcGF0Y2hlciwgd2hpY2ggaXMg YSAiCiJwcmVmaXgga2V5IHRoYXQgcHJvbXB0cyBmb3IgYW4gYWRkaXRpb25hbCBrZXkgc3BlY2lm eWluZyB0aGUgY29tbWFuZC4gICIKIk5vcm1hbGx5IHRoZSBlbnRpcmUgZmlsZSBpcyBleHBvcnRl ZCwgYnV0IGlmIHRoZXJlIGlzIGFuIGFjdGl2ZSByZWdpb24gdGhhdCAiCiJjb250YWlucyBvbmUg b3V0bGluZSB0cmVlLCB0aGUgZmlyc3QgaGVhZGluZyBpcyB1c2VkIGFzIGRvY3VtZW50IHRpdGxl IGFuZCAiCiJ0aGUgc3VidHJlZXMgYXJlIGV4cG9ydGVkLiIKbXNnc3RyICIiCgojLiB0eXBlOiBp dGVtCiM6IG9yZ2d1aWRlLnRleGk6MjMzOQojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiQy1jIEMt ZSIKbXNnc3RyICJDLWMgQy1uIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToyMzQx Cm1zZ2lkICJEaXNwYXRjaGVyIGZvciBleHBvcnQgYW5kIHB1Ymxpc2hpbmcgY29tbWFuZHMuIgpt c2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyMzQ5Cm1zZ2lk ICIiCiJBU0NJSSBleHBvcnQgcHJvZHVjZXMgYSBzaW1wbGUgYW5kIHZlcnkgcmVhZGFibGUgdmVy c2lvbiBvZiBhbiBPcmctbW9kZSAiCiJmaWxlLCBjb250YWluaW5nIG9ubHkgcGxhaW4gQVNDSUku ICBMYXRpbi0xIGFuZCBVVEYtOCBleHBvcnQgYXVnbWVudCB0aGUgIgoiZmlsZSB3aXRoIHNwZWNp YWwgY2hhcmFjdGVycyBhbmQgc3ltYm9scyBhdmFpbGFibGUgaW4gdGhlc2UgZW5jb2RpbmdzLiIK bXNnc3RyICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MjM1MQojLCBmdXp6eSwg bm8td3JhcAptc2dpZCAiQy1jIEMtZSBhIgptc2dzdHIgIkMtYyBDLXggZiIKCiMuIHR5cGU6IHRh YmxlCiM6IG9yZ2d1aWRlLnRleGk6MjM1Mwptc2dpZCAiRXhwb3J0IGFzIEFTQ0lJIGZpbGUuIgpt c2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToyMzUzCiMsIG5vLXdyYXAK bXNnaWQgIkMtYyBDLWUgbiBAIEAgQHJ7YW5kfSBAIEAgQy1jIEMtZSBOIgptc2dzdHIgIiIKCiMu IHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MjM1NQptc2dpZCAiTGlrZSB0aGUgYWJvdmUg Y29tbWFuZHMsIGJ1dCB1c2UgTGF0aW4tMSBlbmNvZGluZy4iCm1zZ3N0ciAiIgoKIy4gdHlwZTog aXRlbQojOiBvcmdndWlkZS50ZXhpOjIzNTUKIywgbm8td3JhcAptc2dpZCAiQy1jIEMtZSB1IEAg QCBAcnthbmR9IEAgQCBDLWMgQy1lIFUiCm1zZ3N0ciAiIgoKIy4gdHlwZTogdGFibGUKIzogb3Jn Z3VpZGUudGV4aToyMzU3Cm1zZ2lkICJMaWtlIHRoZSBhYm92ZSBjb21tYW5kcywgYnV0IHVzZSBV VEYtOCBlbmNvZGluZy4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhp OjIzNjMKIywgZnV6enksIG5vLXdyYXAKbXNnaWQgIkMtYyBDLWUgaCIKbXNnc3RyICJDLWMgQy14 IGYiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjIzNjUKbXNnaWQgIkV4cG9ydCBh cyBIVE1MIGZpbGUgQGZpbGV7bXlmaWxlLmh0bWx9LiIKbXNnc3RyICIiCgojLiB0eXBlOiBpdGVt CiM6IG9yZ2d1aWRlLnRleGk6MjM2NQojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiQy1jIEMtZSBi Igptc2dzdHIgIkMtYyBDLWIiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjIzNjcK bXNnaWQgIkV4cG9ydCBhcyBIVE1MIGZpbGUgYW5kIGltbWVkaWF0ZWx5IG9wZW4gaXQgd2l0aCBh IGJyb3dzZXIuIgptc2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4 aToyMzcxCm1zZ2lkICIiCiJUbyBpbnNlcnQgSFRNTCB0aGF0IHNob3VsZCBiZSBjb3BpZWQgdmVy YmF0aW0gdG8gdGhlIGV4cG9ydGVkIGZpbGUgdXNlIGVpdGhlciIKbXNnc3RyICIiCgojLiB0eXBl OiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUudGV4aToyMzc0CiMsIG5vLXdyYXAKbXNnaWQgIiMr SFRNTDogTGl0ZXJhbCBIVE1MIGNvZGUgZm9yIGV4cG9ydFxuIgptc2dzdHIgIiIKCiMuIHR5cGU6 IHNtYWxsZXhhbXBsZQojOiBvcmdndWlkZS50ZXhpOjIzODAKIywgbm8td3JhcAptc2dpZCAiIgoi IytCRUdJTl9IVE1MXG4iCiJBbGwgbGluZXMgYmV0d2VlbiB0aGVzZSBtYXJrZXJzIGFyZSBleHBv cnRlZCBsaXRlcmFsbHlcbiIKIiMrRU5EX0hUTUxcbiIKbXNnc3RyICIiCgojLiB0eXBlOiBpdGVt CiM6IG9yZ2d1aWRlLnRleGk6MjM4NgojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAiQy1jIEMtZSBs Igptc2dzdHIgIkMtYyBDLWwiCgojLiB0eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjIzODgK bXNnaWQgIkV4cG9ydCBhcyBATGFUZVh7fSBmaWxlIEBmaWxle215ZmlsZS50ZXh9LiIKbXNnc3Ry ICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MjM4OAojLCBmdXp6eSwgbm8td3Jh cAptc2dpZCAiQy1jIEMtZSBwIgptc2dzdHIgIkMtYyBDLXggcCIKCiMuIHR5cGU6IHRhYmxlCiM6 IG9yZ2d1aWRlLnRleGk6MjM5MAptc2dpZCAiRXhwb3J0IGFzIEBMYVRlWHt9IGFuZCB0aGVuIHBy b2Nlc3MgdG8gUERGLiIKbXNnc3RyICJFeHBvcnRhbmRvIGEgQExhVGVYe30geSBwcm9jZXNhbmRv IGEgUERGIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjIzOTAKIywgZnV6enksIG5v LXdyYXAKbXNnaWQgIkMtYyBDLWUgZCIKbXNnc3RyICJDLWMgQy1jIGQiCgojLiB0eXBlOiB0YWJs ZQojOiBvcmdndWlkZS50ZXhpOjIzOTIKIywgZnV6enkKbXNnaWQgIiIKIkV4cG9ydCBhcyBATGFU ZVh7fSBhbmQgdGhlbiBwcm9jZXNzIHRvIFBERiwgdGhlbiBvcGVuIHRoZSByZXN1bHRpbmcgUERG IGZpbGUuIgptc2dzdHIgIkV4cG9ydGFuZG8gYSBATGFUZVh7fSB5IHByb2Nlc2FuZG8gYSBQREYi CgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MjM5Nwptc2dpZCAiIgoiQnkg ZGVmYXVsdCwgdGhlIEBMYVRlWHt9IG91dHB1dCB1c2VzIHRoZSBjbGFzcyBAY29kZXthcnRpY2xl fS4gIFlvdSBjYW4gIgoiY2hhbmdlIHRoaXMgYnkgYWRkaW5nIGFuIG9wdGlvbiBsaWtlIEBjb2Rl eyMrTGFUZVhfQ0xBU1M6IG15Y2xhc3N9IGluIHlvdXIgIgoiZmlsZS4gIFRoZSBjbGFzcyBtdXN0 IGJlIGxpc3RlZCBpbiBAY29kZXtvcmctZXhwb3J0LWxhdGV4LWNsYXNzZXN9LiIKbXNnc3RyICIi CgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MjQwMgptc2dpZCAiIgoiRW1i ZWRkZWQgQExhVGVYe30gYXMgZGVzY3JpYmVkIGluIEByZWZ7RW1iZWRkZWQgQExhVGVYe319LCB3 aWxsIGJlIGNvcnJlY3RseSAiCiJpbnNlcnRlZCBpbnRvIHRoZSBATGFUZVh7fSBmaWxlLiAgU2lt aWxhcmx5IHRvIHRoZSBIVE1MIGV4cG9ydGVyLCB5b3UgY2FuICIKInVzZSBAY29kZXsjK0xhVGVY On0gYW5kIEBjb2RleyMrQkVHSU5fTGFUZVggLi4uICMrRU5EX0xhVGVYfSBjb25zdHJ1Y3QgdG8g IgoiYWRkIHZlcmJhdGltIEBMYVRlWHt9IGNvZGUuIgptc2dzdHIgIi4uLi4uLi4uIEByZWZ7QExh VGVYe30gZW1iZWJpZG99LCAuLi4uLiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToy NDA3CiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICJDLWMgQy1lIEQiCm1zZ3N0ciAiQy1jIEMteCBm IgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToyNDA5CiMsIGZ1enp5Cm1zZ2lkICJF eHBvcnQgYXMgRG9jQm9vayBmaWxlLiIKbXNnc3RyICJFeHBvcnRhbmRvIGEgRG9jQm9vayIKCiMu IHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyNDE0CiMsIGZ1enp5Cm1zZ2lkICIi CiJTaW1pbGFybHkgdG8gdGhlIEhUTUwgZXhwb3J0ZXIsIHlvdSBjYW4gdXNlIEBjb2RleyMrRE9D Qk9PSzp9IGFuZCBAY29kZXsjIgoiK0JFR0lOX0RPQ0JPT0sgLi4uICMrRU5EX0RPQ0JPT0t9IGNv bnN0cnVjdCB0byBhZGQgdmVyYmF0aW0gQExhVGVYe30gY29kZS4iCm1zZ3N0ciAiIgoiRGUgZm9y bWEgc2ltaWxhciBhbCBleHBvcnRhZG9yIEhUTUwsIHB1ZWRlIGVtcGxlYXIgbG9zIGNvbnN0cnVj dG9yZXNcbiIKIkBjb2RleyMrRG9jQm9vazp9IHkgQGNvZGV7IytCRUdJTl9Eb2NCb29rIC4uLiAj K0VORF9Eb2NCb29rfSBwYXJhXG4iCiJhQH5uYWRpciBjQCdvZGlnbyBATGFUZVh7fS4iCgojLiB0 eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MjQxOQojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAi Qy1jIEMtZSBpIgptc2dzdHIgIkMtYyBDLXggZiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRl LnRleGk6MjQyMQptc2dpZCAiQ3JlYXRlIGlDYWxlbmRhciBlbnRyaWVzIGZvciB0aGUgY3VycmVu dCBmaWxlIGluIGEgQGZpbGV7Lmljc30gZmlsZS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRlbQoj OiBvcmdndWlkZS50ZXhpOjI0MjEKIywgZnV6enksIG5vLXdyYXAKbXNnaWQgIkMtYyBDLWUgYyIK bXNnc3RyICJDLWMgQy1jIgoKIy4gdHlwZTogdGFibGUKIzogb3JnZ3VpZGUudGV4aToyNDI1Cm1z Z2lkICIiCiJDcmVhdGUgYSBzaW5nbGUgbGFyZ2UgaUNhbGVuZGFyIGZpbGUgZnJvbSBhbGwgZmls ZXMgaW4gQGNvZGV7b3JnLWFnZW5kYS0iCiJmaWxlc30gYW5kIHdyaXRlIGl0IHRvIHRoZSBmaWxl IGdpdmVuIGJ5IEBjb2Rle29yZy1jb21iaW5lZC1hZ2VuZGEtaWNhbGVuZGFyLSIKImZpbGV9LiIK bXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MjQzNQptc2dp ZCAiIgoiQHNlZWFsc297IEB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy9tYW51YWwvRXhwb3J0aW5n Lmh0bWwjRXhwb3J0aW5nLCBDaGFwdGVyICIKIjEyIG9mIHRoZSBtYW51YWx9QCogQHVyZWZ7aHR0 cDovL29yZ21vZGUub3JnL3dvcmcvb3JnLXR1dG9yaWFscy9pbWFnZXMtYW5kLSIKInhodG1sLWV4 cG9ydC5waHAsIFNlYmFzdGlhbiBSb3NlJ3MgaW1hZ2UgaGFuZGxpbmcgdHV0b3JpYWx9QCogQHVy ZWZ7aHR0cDovLyIKIm9yZ21vZGUub3JnL3dvcmcvb3JnLXR1dG9yaWFscy9vcmctbGF0ZXgtZXhw b3J0LnBocCwgVGhvbWFzIER5ZSdzIExhVGVYICIKImV4cG9ydCB0dXRvcmlhbH0gQHVyZWZ7aHR0 cDovL29yZ21vZGUub3JnL3dvcmcvb3JnLXR1dG9yaWFscy9vcmctYmVhbWVyLyIKInR1dG9yaWFs LnBocCwgRXJpYyBGcmFnYSdzIEJFQU1FUiBwcmVzZW50YXRpb24gdHV0b3JpYWx9fSIKbXNnc3Ry ICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MjQ0NAptc2dpZCAiIgoi T3JnIGluY2x1ZGVzIGEgcHVibGlzaGluZyBtYW5hZ2VtZW50IHN5c3RlbSB0aGF0IGFsbG93cyB5 b3UgdG8gY29uZmlndXJlICIKImF1dG9tYXRpYyBIVE1MIGNvbnZlcnNpb24gb2YgQGVtcGh7cHJv amVjdHN9IGNvbXBvc2VkIG9mIGludGVybGlua2VkIG9yZyAiCiJmaWxlcy4gIFlvdSBjYW4gYWxz byBjb25maWd1cmUgT3JnIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHlvdXIgZXhwb3J0ZWQgIgoi SFRNTCBwYWdlcyBhbmQgcmVsYXRlZCBhdHRhY2htZW50cywgc3VjaCBhcyBpbWFnZXMgYW5kIHNv dXJjZSBjb2RlIGZpbGVzLCB0byAiCiJhIHdlYiBzZXJ2ZXIuICBGb3IgZGV0YWlsZWQgaW5zdHJ1 Y3Rpb25zIGFib3V0IHNldHVwLCBzZWUgdGhlIG1hbnVhbC4iCm1zZ3N0ciAiIgoKIy4gdHlwZTog UGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjI0NDYKbXNnaWQgIkhlcmUgaXMgYW4gZXhhbXBs ZToiCm1zZ3N0ciAiIgoKIy4gdHlwZTogc21hbGxsaXNwCiM6IG9yZ2d1aWRlLnRleGk6MjQ1Nwoj LCBuby13cmFwCm1zZ2lkICIiCiIoc2V0cSBvcmctcHVibGlzaC1wcm9qZWN0LWFsaXN0XG4iCiIg ICAgICAnKChcIm9yZ1wiXG4iCiIgICAgICAgICA6YmFzZS1kaXJlY3RvcnkgXCJ+L29yZy9cIlxu IgoiICAgICAgICAgOnB1Ymxpc2hpbmctZGlyZWN0b3J5IFwifi9wdWJsaWNfaHRtbFwiXG4iCiIg ICAgICAgICA6c2VjdGlvbi1udW1iZXJzIG5pbFxuIgoiICAgICAgICAgOnRhYmxlLW9mLWNvbnRl bnRzIG5pbFxuIgoiICAgICAgICAgOnN0eWxlIFwiPGxpbmsgcmVsPVxcXCJzdHlsZXNoZWV0XFxc IlxuIgoiICAgICAgICAgICAgICAgIGhyZWY9XFxcIi4uL290aGVyL215c3R5bGUuY3NzXFxcIlxu IgoiICAgICAgICAgICAgICAgIHR5cGU9XFxcInRleHQvY3NzXFxcIi8+XCIpKSlcbiIKbXNnc3Ry ICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MjQ2MAojLCBmdXp6eSwgbm8td3Jh cAptc2dpZCAiQy1jIEMtZSBDIgptc2dzdHIgIkMtYyBDLXggZiIKCiMuIHR5cGU6IHRhYmxlCiM6 IG9yZ2d1aWRlLnRleGk6MjQ2Mgptc2dpZCAiUHJvbXB0IGZvciBhIHNwZWNpZmljIHByb2plY3Qg YW5kIHB1Ymxpc2ggYWxsIGZpbGVzIHRoYXQgYmVsb25nIHRvIGl0LiIKbXNnc3RyICIiCgojLiB0 eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MjQ2MgojLCBmdXp6eSwgbm8td3JhcAptc2dpZCAi Qy1jIEMtZSBQIgptc2dzdHIgIkMtYyBDLXggZiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRl LnRleGk6MjQ2NAojLCBmdXp6eQptc2dpZCAiUHVibGlzaCB0aGUgcHJvamVjdCBjb250YWluaW5n IHRoZSBjdXJyZW50IGZpbGUuIgptc2dzdHIgIkVubGFjZXMgYSBvdHJvcyBsdWdhcmVzIGVuIGVs IGZpY2hlcm8gYWN0dWFsIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjI0NjQKIywg ZnV6enksIG5vLXdyYXAKbXNnaWQgIkMtYyBDLWUgRiIKbXNnc3RyICJDLWMgQy14IGYiCgojLiB0 eXBlOiB0YWJsZQojOiBvcmdndWlkZS50ZXhpOjI0NjYKIywgZnV6enkKbXNnaWQgIlB1Ymxpc2gg b25seSB0aGUgY3VycmVudCBmaWxlLiIKbXNnc3RyICJFbGltaW5hIGxhIGNvbHVtbmEgYWN0dWFs LiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToyNDY2CiMsIGZ1enp5LCBuby13cmFw Cm1zZ2lkICJDLWMgQy1lIEUiCm1zZ3N0ciAiQy1jIEMteCBmIgoKIy4gdHlwZTogdGFibGUKIzog b3JnZ3VpZGUudGV4aToyNDY4Cm1zZ2lkICJQdWJsaXNoIGV2ZXJ5IHByb2plY3QuIgptc2dzdHIg IiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyNDc0Cm1zZ2lkICIiCiJP cmcgdXNlcyB0aW1lc3RhbXBzIHRvIHRyYWNrIHdoZW4gYSBmaWxlIGhhcyBjaGFuZ2VkLiAgVGhl IGFib3ZlIGZ1bmN0aW9ucyAiCiJub3JtYWxseSBvbmx5IHB1Ymxpc2ggY2hhbmdlZCBmaWxlcy4g IFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBhbmQgZm9yY2UgIgoicHVibGlzaGluZyBvZiBhbGwgZmls ZXMgYnkgZ2l2aW5nIGEgcHJlZml4IGFyZ3VtZW50IHRvIGFueSBvZiB0aGUgY29tbWFuZHMgIgoi YWJvdmUuIgptc2dzdHIgIiIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToy NDgyCm1zZ2lkICIiCiJAc2VlYWxzb3sgQHVyZWZ7aHR0cDovL29yZ21vZGUub3JnL21hbnVhbC9Q dWJsaXNoaW5nLmh0bWwjUHVibGlzaGluZywgIgoiQ2hhcHRlciAxMyBvZiB0aGUgbWFudWFsfUAq IEB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy93b3JnL29yZy10dXRvcmlhbHMvb3JnLSIKInB1Ymxp c2gtaHRtbC10dXRvcmlhbC5waHAsIFNlYmFzdGlhbiBSb3NlJ3MgcHVibGlzaGluZyB0dXRvcmlh bH1AKiBAdXJlZiIKIntodHRwOi8vb3JnbW9kZS5vcmcvd29yZy9vcmctdHV0b3JpYWxzL29yZy1q ZWt5bGwucGhwLCBJYW4gQmFydG9uJ3MgSmVreWxsLyIKImJsb2dnaW5nIHNldHVwfX0iCm1zZ3N0 ciAiIgoKIy4gdHlwZTogY2hhcHRlcgojOiBvcmdndWlkZS50ZXhpOjI0ODQKIywgbm8td3JhcApt c2dpZCAiV29ya2luZyB3aXRoIHNvdXJjZSBjb2RlIgptc2dzdHIgIlRyYWJhamFuZG8gY29uIGNA J29kaWdvIGZ1ZW50ZSIKCiMuIHR5cGU6IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyNDg5 Cm1zZ2lkICIiCiJPcmctbW9kZSBwcm92aWRlcyBhIG51bWJlciBvZiBmZWF0dXJlcyBmb3Igd29y a2luZyB3aXRoIHNvdXJjZSBjb2RlLCAiCiJpbmNsdWRpbmcgZWRpdGluZyBvZiBjb2RlIGJsb2Nr cyBpbiB0aGVpciBuYXRpdmUgbWFqb3ItbW9kZSwgZXZhbHVhdGlvbiBvZiAiCiJjb2RlIGJsb2Nr cywgdGFuZ2xpbmcgb2YgY29kZSBibG9ja3MsIGFuZCBleHBvcnRpbmcgY29kZSBibG9ja3MgYW5k IHRoZWlyICIKInJlc3VsdHMgaW4gc2V2ZXJhbCBmb3JtYXRzLiIKbXNnc3RyICIiCgojLiB0eXBl OiBzdWJoZWFkaW5nCiM6IG9yZ2d1aWRlLnRleGk6MjQ5MAojLCBuby13cmFwCm1zZ2lkICJTdHJ1 Y3R1cmUgb2YgQ29kZSBCbG9ja3MiCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBv cmdndWlkZS50ZXhpOjI0OTIKbXNnaWQgIlRoZSBzdHJ1Y3R1cmUgb2YgY29kZSBibG9ja3MgaXMg YXMgZm9sbG93czoiCm1zZ3N0ciAiIgoKIy4gdHlwZTogZXhhbXBsZQojOiBvcmdndWlkZS50ZXhp OjI0OTgKIywgbm8td3JhcAptc2dpZCAiIgoiIytOQU1FOiA8bmFtZT5cbiIKIiMrQkVHSU5fU1JD IDxsYW5ndWFnZT4gPHN3aXRjaGVzPiA8aGVhZGVyIGFyZ3VtZW50cz5cbiIKIiAgPGJvZHk+XG4i CiIjK0VORF9TUkNcbiIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRl LnRleGk6MjUwNwptc2dpZCAiIgoiV2hlcmUgQGNvZGV7PG5hbWU+fSBpcyBhIHN0cmluZyB1c2Vk IHRvIG5hbWUgdGhlIGNvZGUgYmxvY2ssIEBjb2RlIgoiezxsYW5ndWFnZT59IHNwZWNpZmllcyB0 aGUgbGFuZ3VhZ2Ugb2YgdGhlIGNvZGUgYmxvY2sgKGUuZy5AOiBAY29kZXtlbWFjcy0iCiJsaXNw fSwgQGNvZGV7c2hlbGx9LCBAY29kZXtSfSwgQGNvZGV7cHl0aG9ufSwgZXRjLi4uKSwgQGNvZGV7 PHN3aXRjaGVzPn0gY2FuICIKImJlIHVzZWQgdG8gY29udHJvbCBleHBvcnQgb2YgdGhlIGNvZGUg YmxvY2ssIEBjb2RlezxoZWFkZXIgYXJndW1lbnRzPn0gY2FuICIKImJlIHVzZWQgdG8gY29udHJv bCBtYW55IGFzcGVjdHMgb2YgY29kZSBibG9jayBiZWhhdmlvciBhcyBkZW1vbnN0cmF0ZWQgIgoi YmVsb3csIGFuZCBAY29kZXs8Ym9keT59IGNvbnRhaW5zIHRoZSBhY3R1YWwgc291cmNlIGNvZGUu Igptc2dzdHIgIiIKCiMuIHR5cGU6IHN1YmhlYWRpbmcKIzogb3JnZ3VpZGUudGV4aToyNTA4CiMs IG5vLXdyYXAKbXNnaWQgIkVkaXRpbmcgc291cmNlIGNvZGUiCm1zZ3N0ciAiRWRpdGFuZG8gY0An b2RpZ28gZnVlbnRlIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjI1MTMK bXNnaWQgIiIKIlVzZSBAa2Jke0MtYyAnfSB0byBlZGl0IHRoZSBjdXJyZW50IGNvZGUgYmxvY2su ICBUaGlzIGJyaW5ncyB1cCBhIGxhbmd1YWdlICIKIm1ham9yLW1vZGUgZWRpdCBidWZmZXIgY29u dGFpbmluZyB0aGUgYm9keSBvZiB0aGUgY29kZSBibG9jay4gIFNhdmluZyB0aGlzICIKImJ1ZmZl ciB3aWxsIHdyaXRlIHRoZSBuZXcgY29udGVudHMgYmFjayB0byB0aGUgT3JnIGJ1ZmZlci4gIFVz ZSBAa2Jke0MtYyAnfSAiCiJhZ2FpbiB0byBleGl0IHRoZSBlZGl0IGJ1ZmZlci4iCm1zZ3N0ciAi IgoKIy4gdHlwZTogc3ViaGVhZGluZwojOiBvcmdndWlkZS50ZXhpOjI1MTQKIywgbm8td3JhcApt c2dpZCAiRXZhbHVhdGluZyBjb2RlIGJsb2NrcyIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0 ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MjUyMAptc2dpZCAiIgoiVXNlIEBrYmR7Qy1jIEMtY30gdG8g ZXZhbHVhdGUgdGhlIGN1cnJlbnQgY29kZSBibG9jayBhbmQgaW5zZXJ0IGl0cyByZXN1bHRzICIK ImluIHRoZSBPcmctbW9kZSBidWZmZXIuICBCeSBkZWZhdWx0LCBldmFsdWF0aW9uIGlzIG9ubHkg dHVybmVkIG9uIGZvciBAY29kZSIKIntlbWFjcy1saXNwfSBjb2RlIGJsb2NrcywgaG93ZXZlciBz dXBwb3J0IGV4aXN0cyBmb3IgZXZhbHVhdGluZyBibG9ja3MgaW4gIgoibWFueSBsYW5ndWFnZXMu ICBGb3IgYSBjb21wbGV0ZSBsaXN0IG9mIHN1cHBvcnRlZCBsYW5ndWFnZXMgc2VlIHRoZSBtYW51 YWwuICAiCiJUaGUgZm9sbG93aW5nIHNob3dzIGEgY29kZSBibG9jayBhbmQgaXRzIHJlc3VsdHMu Igptc2dzdHIgIiIKCiMuIHR5cGU6IGV4YW1wbGUKIzogb3JnZ3VpZGUudGV4aToyNTI1CiMsIG5v LXdyYXAKbXNnaWQgIiIKIiMrQkVHSU5fU1JDIGVtYWNzLWxpc3BcbiIKIiAgKCsgMSAyIDMgNClc biIKIiMrRU5EX1NSQ1xuIgoiXG4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogZXhhbXBsZQojOiBvcmdn dWlkZS50ZXhpOjI1MjgKIywgbm8td3JhcAptc2dpZCAiIgoiIytSRVNVTFRTOlxuIgoiOiAxMFxu Igptc2dzdHIgIiIKCiMuIHR5cGU6IHN1YmhlYWRpbmcKIzogb3JnZ3VpZGUudGV4aToyNTMwCiMs IG5vLXdyYXAKbXNnaWQgIkV4dHJhY3Rpbmcgc291cmNlIGNvZGUiCm1zZ3N0ciAiRXh0cmF5ZW5k byBjQCdvZGlnbyBmdWVudGUiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6 MjUzOAptc2dpZCAiIgoiVXNlIEBrYmR7Qy1jIEMtdiB0fSB0byBjcmVhdGUgcHVyZSBzb3VyY2Ug Y29kZSBmaWxlcyBieSBleHRyYWN0aW5nIGNvZGUgZnJvbSAiCiJzb3VyY2UgYmxvY2tzIGluIHRo ZSBjdXJyZW50IGJ1ZmZlci4gIFRoaXMgaXMgcmVmZXJyZWQgdG8gYXMgYGB0YW5nbGluZycnLS0t IgoiYSB0ZXJtIGFkb3B0ZWQgZnJvbSB0aGUgbGl0ZXJhdGUgcHJvZ3JhbW1pbmcgY29tbXVuaXR5 LiAgRHVyaW5nIGBgdGFuZ2xpbmcnJyAiCiJvZiBjb2RlIGJsb2NrcyB0aGVpciBib2RpZXMgYXJl IGV4cGFuZGVkIHVzaW5nIEBjb2Rle29yZy1iYWJlbC1leHBhbmQtc3JjLSIKImJsb2NrfSB3aGlj aCBjYW4gZXhwYW5kIGJvdGggdmFyaWFibGUgYW5kIGBgbm93ZWInJyBzdHlsZSByZWZlcmVuY2Vz LiAgSW4gIgoib3JkZXIgdG8gdGFuZ2xlIGEgY29kZSBibG9jayBpdCBtdXN0IGhhdmUgYSBAY29k ZXs6dGFuZ2xlfSBoZWFkZXIgYXJndW1lbnQsICIKInNlZSB0aGUgbWFudWFsIGZvciBkZXRhaWxz LiIKbXNnc3RyICIiCgojLiB0eXBlOiBzdWJoZWFkaW5nCiM6IG9yZ2d1aWRlLnRleGk6MjUzOQoj LCBuby13cmFwCm1zZ2lkICJMaWJyYXJ5IG9mIEJhYmVsIgptc2dzdHIgIiIKCiMuIHR5cGU6IFBs YWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyNTQ0Cm1zZ2lkICIiCiJVc2UgQGtiZHtDLWMgQy12 IGx9IHRvIGxvYWQgdGhlIGNvZGUgYmxvY2tzIGZyb20gYW4gT3JnLW1vZGUgZmlsZXMgaW50byB0 aGUgIgoiYGBMaWJyYXJ5IG9mIEJhYmVsJycsIHRoZXNlIGJsb2NrcyBjYW4gdGhlbiBiZSBldmFs dWF0ZWQgZnJvbSBhbnkgT3JnLW1vZGUgIgoiYnVmZmVyLiAgQSBjb2xsZWN0aW9uIG9mIGdlbmVy YWxseSB1c2VmdWwgY29kZSBibG9ja3MgaXMgZGlzdHJpYnV0ZWQgd2l0aCAiCiJPcmctbW9kZSBp biBAY29kZXtjb250cmliL2xpYnJhcnktb2YtYmFiZWwub3JnfS4iCm1zZ3N0ciAiIgoKIy4gdHlw ZTogc3ViaGVhZGluZwojOiBvcmdndWlkZS50ZXhpOjI1NDUKIywgbm8td3JhcAptc2dpZCAiSGVh ZGVyIEFyZ3VtZW50cyIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRl LnRleGk6MjU1MAptc2dpZCAiIgoiTWFueSBhc3BlY3RzIG9mIHRoZSBldmFsdWF0aW9uIGFuZCBl eHBvcnQgb2YgY29kZSBibG9ja3MgYXJlIGNvbnRyb2xsZWQgIgoidGhyb3VnaCBoZWFkZXIgYXJn dW1lbnRzLiAgVGhlc2UgY2FuIGJlIHNwZWNpZmllZCBnbG9iYWxseSwgYXQgdGhlIGZpbGUgIgoi bGV2ZWwsIGF0IHRoZSBvdXRsaW5lIHN1YnRyZWUgbGV2ZWwsIGFuZCBhdCB0aGUgaW5kaXZpZHVh bCBjb2RlIGJsb2NrICIKImxldmVsLiAgVGhlIGZvbGxvd2luZyBkZXNjcmliZXMgc29tZSBvZiB0 aGUgaGVhZGVyIGFyZ3VtZW50cy4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlk ZS50ZXhpOjI1NTEKIywgbm8td3JhcAptc2dpZCAiOnZhciIKbXNnc3RyICIiCgojLiB0eXBlOiB0 YWJsZQojOiBvcmdndWlkZS50ZXhpOjI1NTUKbXNnaWQgIiIKIlRoZSBAY29kZXs6dmFyfSBoZWFk ZXIgYXJndW1lbnQgaXMgdXNlZCB0byBwYXNzIGFyZ3VtZW50cyB0byBjb2RlIGJsb2Nrcy4gICIK IlRoZSB2YWx1ZXMgcGFzc2VkIHRvIGFyZ3VtZW50cyBjYW4gYmUgbGl0ZXJhbCB2YWx1ZXMsIHZh bHVlcyBmcm9tIG9yZy1tb2RlICIKInRhYmxlcyBhbmQgbGl0ZXJhbCBleGFtcGxlIGJsb2Nrcywg b3IgdGhlIHJlc3VsdHMgb2Ygb3RoZXIgbmFtZWQgY29kZSBibG9ja3MuIgptc2dzdHIgIiIKCiMu IHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToyNTU1CiMsIG5vLXdyYXAKbXNnaWQgIjpyZXN1 bHRzIgptc2dzdHIgIiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MjU2Ngptc2dp ZCAiIgoiVGhlIEBjb2RlezpyZXN1bHRzfSBoZWFkZXIgYXJndW1lbnQgY29udHJvbHMgdGhlIEBl bXBoe2NvbGxlY3Rpb259LCBAZW1waCIKInt0eXBlfSwgYW5kIEBlbXBoe2hhbmRsaW5nfSBvZiBj b2RlIGJsb2NrIHJlc3VsdHMuICBWYWx1ZXMgb2YgQGNvZGV7b3V0cHV0fSAiCiJvciBAY29kZXt2 YWx1ZX0gKHRoZSBkZWZhdWx0KSBzcGVjaWZ5IGhvdyByZXN1bHRzIGFyZSBjb2xsZWN0ZWQgZnJv bSBhIGNvZGUgIgoiYmxvY2sncyBldmFsdWF0aW9uLiAgVmFsdWVzIG9mIEBjb2Rle3ZlY3Rvcn0s IEBjb2Rle3NjYWxhcn0gQGNvZGV7ZmlsZX0gQGNvZGUiCiJ7cmF3fSBAY29kZXtodG1sfSBAY29k ZXtsYXRleH0gYW5kIEBjb2Rle2NvZGV9IHNwZWNpZnkgdGhlIHR5cGUgb2YgdGhlICIKInJlc3Vs dHMgb2YgdGhlIGNvZGUgYmxvY2sgd2hpY2ggZGljdGF0ZXMgaG93IHRoZXkgd2lsbCBiZSBpbmNv cnBvcmF0ZWQgaW50byAiCiJ0aGUgT3JnLW1vZGUgYnVmZmVyLiAgVmFsdWVzIG9mIEBjb2Rle3Np bGVudH0sIEBjb2Rle3JlcGxhY2V9LCBAY29kZSIKIntwcmVwZW5kfSwgYW5kIEBjb2Rle2FwcGVu ZH0gc3BlY2lmeSBoYW5kbGluZyBvZiBjb2RlIGJsb2NrIHJlc3VsdHMsICIKInNwZWNpZmljYWxs eSBpZiBhbmQgaG93IHRoZSByZXN1bHRzIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIHRoZSBPcmct bW9kZSAiCiJidWZmZXIuIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4 aToyNTY2CiMsIG5vLXdyYXAKbXNnaWQgIjpzZXNzaW9uIgptc2dzdHIgIiIKCiMuIHR5cGU6IHRh YmxlCiM6IG9yZ2d1aWRlLnRleGk6MjU3MQptc2dpZCAiIgoiQSBoZWFkZXIgYXJndW1lbnQgb2Yg QGNvZGV7OnNlc3Npb259IHdpbGwgY2F1c2UgdGhlIGNvZGUgYmxvY2sgdG8gYmUgIgoiZXZhbHVh dGVkIGluIGEgcGVyc2lzdGVudCBpbnRlcmFjdGl2ZSBpbmZlcmlvciBwcm9jZXNzIGluIEVtYWNz LiAgVGhpcyAiCiJhbGxvd3MgZm9yIHBlcnNpc3Rpbmcgc3RhdGUgYmV0d2VlbiBjb2RlIGJsb2Nr IGV2YWx1YXRpb25zLCBhbmQgZm9yIG1hbnVhbCAiCiJpbnNwZWN0aW9uIG9mIHRoZSByZXN1bHRz IG9mIGV2YWx1YXRpb24uIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4 aToyNTcxCiMsIGZ1enp5LCBuby13cmFwCm1zZ2lkICI6ZXhwb3J0cyIKbXNnc3RyICJIVE1MIGV4 cG9ydCIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MjU3NQptc2dpZCAiIgoiQW55 IGNvbWJpbmF0aW9uIG9mIHRoZSBAZW1waHtjb2RlfSBvciB0aGUgQGVtcGh7cmVzdWx0c30gb2Yg YSBibG9jayBjYW4gYmUgIgoicmV0YWluZWQgb24gZXhwb3J0LCB0aGlzIGlzIHNwZWNpZmllZCBi eSBzZXR0aW5nIHRoZSBAY29kZXs6cmVzdWx0c30gaGVhZGVyICIKImFyZ3VtZW50IHRvIEBjb2Rl e2NvZGV9IEBjb2Rle3Jlc3VsdHN9IEBjb2Rle25vbmV9IG9yIEBjb2Rle2JvdGh9LiIKbXNnc3Ry ICIiCgojLiB0eXBlOiBpdGVtCiM6IG9yZ2d1aWRlLnRleGk6MjU3NQojLCBuby13cmFwCm1zZ2lk ICI6dGFuZ2xlIgptc2dzdHIgIiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MjU3 OQptc2dpZCAiIgoiQSBoZWFkZXIgYXJndW1lbnQgb2YgQGNvZGV7OnRhbmdsZSB5ZXN9IHdpbGwg Y2F1c2UgYSBjb2RlIGJsb2NrJ3MgY29udGVudHMgIgoidG8gYmUgdGFuZ2xlZCB0byBhIGZpbGUg bmFtZWQgYWZ0ZXIgdGhlIGZpbGVuYW1lIG9mIHRoZSBPcmctbW9kZSBidWZmZXIuICBBbiAiCiJh bHRlcm5hdGUgZmlsZSBuYW1lIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCBAY29kZXs6dGFuZ2xlIGZp bGVuYW1lfS4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjI1NzkK Iywgbm8td3JhcAptc2dpZCAiOmNhY2hlIgptc2dzdHIgIiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9y Z2d1aWRlLnRleGk6MjU4Mwptc2dpZCAiIgoiQSBoZWFkZXIgYXJndW1lbnQgb2YgQGNvZGV7OmNh Y2hlIHllc30gd2lsbCBjYXVzZSBhc3NvY2lhdGUgYSBoYXNoIG9mIHRoZSAiCiJleHBhbmRlZCBj b2RlIGJsb2NrIHdpdGggdGhlIHJlc3VsdHMsIGVuc3VyaW5nIHRoYXQgY29kZSBibG9ja3MgYXJl IG9ubHkgcmUtIgoicnVuIHdoZW4gdGhlaXIgaW5wdXRzIGhhdmUgY2hhbmdlZC4iCm1zZ3N0ciAi IgoKIy4gdHlwZTogaXRlbQojOiBvcmdndWlkZS50ZXhpOjI1ODMKIywgbm8td3JhcAptc2dpZCAi Om5vd2ViIgptc2dzdHIgIiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRlLnRleGk6MjU4Ngpt c2dpZCAiIgoiQSBoZWFkZXIgYXJndW1lbnQgb2YgQGNvZGV7Om5vd2ViIHllc30gd2lsbCBleHBh bmQgYGBub3dlYicnIHN0eWxlICIKInJlZmVyZW5jZXMgb24gZXZhbHVhdGlvbiBhbmQgdGFuZ2xp bmcuIgptc2dzdHIgIiIKCiMuIHR5cGU6IGl0ZW0KIzogb3JnZ3VpZGUudGV4aToyNTg2CiMsIG5v LXdyYXAKbXNnaWQgIjpmaWxlIgptc2dzdHIgIiIKCiMuIHR5cGU6IHRhYmxlCiM6IG9yZ2d1aWRl LnRleGk6MjU5MQptc2dpZCAiIgoiQ29kZSBibG9ja3Mgd2hpY2ggb3V0cHV0IHJlc3VsdHMgdG8g ZmlsZXMgKGUuZy5AOiBncmFwaHMsIGRpYWdyYW1zIGFuZCAiCiJmaWd1cmVzKSAgY2FuIGFjY2Vw dCBhIEBjb2RlezpmaWxlIGZpbGVuYW1lfSBoZWFkZXIgYXJndW1lbnQgaW4gd2hpY2ggY2FzZSAi CiJ0aGUgcmVzdWx0cyBhcmUgc2F2ZWQgdG8gdGhlIG5hbWVkIGZpbGUsIGFuZCBhIGxpbmsgdG8g dGhlIGZpbGUgaXMgaW5zZXJ0ZWQgIgoiaW50byB0aGUgT3JnLW1vZGUgYnVmZmVyLiIKbXNnc3Ry ICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MjU5OAptc2dpZCAiIgoi QHNlZWFsc297IEB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy9tYW51YWwvTGl0ZXJhbC1leGFtcGxl cy5odG1sI0xpdGVyYWwtIgoiZXhhbXBsZXMsIENoYXB0ZXIgMTEuMyBvZiB0aGUgbWFudWFsfUAq IEB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy93b3JnL29yZy0iCiJjb250cmliL2JhYmVsL2luZGV4 LnBocCwgVGhlIEJhYmVsIHNpdGUgb24gV29yZ319Igptc2dzdHIgIiIKCiMuIHR5cGU6IFBsYWlu IHRleHQKIzogb3JnZ3VpZGUudGV4aToyNjE3Cm1zZ2lkICIiCiJPcmcgc3VwcG9ydHMgaW4tYnVm ZmVyIGNvbXBsZXRpb24gd2l0aCBAa2Jke00tQGtleXtUQUJ9fS4gIFRoaXMgdHlwZSBvZiAiCiJj b21wbGV0aW9uIGRvZXMgbm90IG1ha2UgdXNlIG9mIHRoZSBtaW5pYnVmZmVyLiAgWW91IHNpbXBs eSB0eXBlIGEgZmV3ICIKImxldHRlcnMgaW50byB0aGUgYnVmZmVyIGFuZCB1c2UgdGhlIGtleSB0 byBjb21wbGV0ZSB0ZXh0IHJpZ2h0IHRoZXJlLiAgRm9yICIKImV4YW1wbGUsIHRoaXMgY29tbWFu ZCB3aWxsIGNvbXBsZXRlIEBUZVh7fSBzeW1ib2xzIGFmdGVyIEBzYW1we1xcfSwgVE9ETyAiCiJr ZXl3b3JkcyBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgaGVhZGxpbmUsIGFuZCB0YWdzIGFmdGVyIEBz YW1wezp9IGluIGEgIgoiaGVhZGxpbmUuIgptc2dzdHIgIiIKCiMuIHR5cGU6IHNlY3Rpb24KIzog b3JnZ3VpZGUudGV4aToyNjE5CiMsIG5vLXdyYXAKbXNnaWQgIkEgY2xlYW5lciBvdXRsaW5lIHZp ZXciCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAojOiBvcmdndWlkZS50ZXhpOjI2MjYK bXNnaWQgIiIKIlNvbWUgcGVvcGxlIGZpbmQgaXQgbm9pc3kgYW5kIGRpc3RyYWN0aW5nIHRoYXQg dGhlIE9yZyBoZWFkbGluZXMgc3RhcnQgd2l0aCAiCiJhIHBvdGVudGlhbGx5IGxhcmdlIG51bWJl ciBvZiBzdGFycywgYW5kIHRoYXQgdGV4dCBiZWxvdyB0aGUgaGVhZGxpbmVzIGlzICIKIm5vdCBp bmRlbnRlZC4gIFdoaWxlIHRoaXMgaXMgbm8gcHJvYmxlbSB3aGVuIHdyaXRpbmcgYSBAZW1waHti b29rLWxpa2V9ICIKImRvY3VtZW50IHdoZXJlIHRoZSBvdXRsaW5lIGhlYWRpbmdzIGFyZSByZWFs bHkgc2VjdGlvbiBoZWFkaW5ncywgaW4gYSBtb3JlICIKIkBlbXBoe2xpc3Qtb3JpZW50ZWR9IG91 dGxpbmUsIGluZGVudGVkIHN0cnVjdHVyZSBpcyBhIGxvdCBjbGVhbmVyOiIKbXNnc3RyICIiCgoj LiB0eXBlOiBncm91cAojOiBvcmdndWlkZS50ZXhpOjI2MzYKIywgbm8td3JhcAptc2dpZCAiIgoi KiBUb3AgbGV2ZWwgaGVhZGxpbmUgICAgICAgICAgICAgfCAgICAqIFRvcCBsZXZlbCBoZWFkbGlu ZVxuIgoiKiogU2Vjb25kIGxldmVsICAgICAgICAgICAgICAgICAgfCAgICAgICogU2Vjb25kIGxl dmVsXG4iCiIqKiogM3JkIGxldmVsICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAqIDNyZCBs ZXZlbFxuIgoic29tZSB0ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICBzb21l IHRleHRcbiIKIioqKiAzcmQgbGV2ZWwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICogM3Jk IGxldmVsXG4iCiJtb3JlIHRleHQgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIG1v cmUgdGV4dFxuIgoiKiBBbm90aGVyIHRvcCBsZXZlbCBoZWFkbGluZSAgICAgfCAgICAqIEFub3Ro ZXIgdG9wIGxldmVsIGhlYWRsaW5lXG4iCm1zZ3N0ciAiIgoKIy4gdHlwZTogUGxhaW4gdGV4dAoj OiBvcmdndWlkZS50ZXhpOjI2NDYKbXNnaWQgIiIKIklmIHlvdSBhcmUgdXNpbmcgYXQgbGVhc3Qg RW1hY3MgMjMuMS41MC4zIGFuZCB2ZXJzaW9uIDYuMjkgb2YgT3JnLCB0aGlzIGtpbmQgIgoib2Yg dmlldyBjYW4gYmUgYWNoaWV2ZWQgZHluYW1pY2FsbHkgYXQgZGlzcGxheSB0aW1lIHVzaW5nIEBj b2Rle29yZy1pbmRlbnQtIgoibW9kZX0sIHdoaWNoIHdpbGwgcHJlcGVuZCBpbnRhbmdpYmxlIHNw YWNlIHRvIGVhY2ggbGluZS4gIFlvdSBjYW4gdHVybiBvbiAiCiJAY29kZXtvcmctaW5kZW50LW1v ZGV9IGZvciBhbGwgZmlsZXMgYnkgY3VzdG9taXppbmcgdGhlIHZhcmlhYmxlIEBjb2Rle29yZy0i CiJzdGFydHVwLWluZGVudGVkfSwgb3IgeW91IGNhbiB0dXJuIGl0IG9uIGZvciBpbmRpdmlkdWFs IGZpbGVzIHVzaW5nIgptc2dzdHIgIiIKCiMuIHR5cGU6IHNtYWxsZXhhbXBsZQojOiBvcmdndWlk ZS50ZXhpOjI2NDkKIywgbm8td3JhcAptc2dpZCAiIytTVEFSVFVQOiBpbmRlbnRcbiIKbXNnc3Ry ICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MjY1Nwptc2dpZCAiIgoi SWYgeW91IHdhbnQgYSBzaW1pbGFyIGVmZmVjdCBpbiBlYXJsaWVyIHZlcnNpb24gb2YgRW1hY3Mg YW5kL29yIE9yZywgb3IgaWYgIgoieW91IHdhbnQgdGhlIGluZGVudGF0aW9uIHRvIGJlIGhhcmQg c3BhY2UgY2hhcmFjdGVycyBzbyB0aGF0IHRoZSBwbGFpbiB0ZXh0ICIKImZpbGUgbG9va3MgYXMg c2ltaWxhciBhcyBwb3NzaWJsZSB0byB0aGUgRW1hY3MgZGlzcGxheSwgT3JnIHN1cHBvcnRzIHlv dSBieSAiCiJoZWxwaW5nIHRvIGluZGVudCAod2l0aCBAa2V5e1RBQn0pIHRleHQgYmVsb3cgZWFj aCBoZWFkbGluZSwgYnkgaGlkaW5nICIKImxlYWRpbmcgc3RhcnMsIGFuZCBieSBvbmx5IHVzaW5n IGxldmVscyAxLCAzLCBldGMgdG8gZ2V0IHR3byBjaGFyYWN0ZXJzICIKImluZGVudGF0aW9uIGZv ciBlYWNoIGxldmVsLiAgVG8gZ2V0IHRoaXMgc3VwcG9ydCBpbiBhIGZpbGUsIHVzZSIKbXNnc3Ry ICIiCgojLiB0eXBlOiBzbWFsbGV4YW1wbGUKIzogb3JnZ3VpZGUudGV4aToyNjYwCiMsIG5vLXdy YXAKbXNnaWQgIiMrU1RBUlRVUDogaGlkZXN0YXJzIG9kZFxuIgptc2dzdHIgIiIKCiMuIHR5cGU6 IFBsYWluIHRleHQKIzogb3JnZ3VpZGUudGV4aToyNjY5Cm1zZ2lkICIiCiJAaXtNb2JpbGVPcmd9 IGlzIHRoZSBuYW1lIG9mIHRoZSBtb2JpbGUgY29tcGFuaW9uIGFwcCBmb3IgT3JnIG1vZGUsICIK ImN1cnJlbnRseSBhdmFpbGFibGUgZm9yIGlPUyBhbmQgZm9yIEFuZHJvaWQuICBAaXtNb2JpbGVP cmd9IG9mZmVycyBvZmZsaW5lICIKInZpZXdpbmcgYW5kIGNhcHR1cmUgc3VwcG9ydCBmb3IgYW4g T3JnIG1vZGUgc3lzdGVtIHJvb3RlZCBvbiBhIGBgcmVhbCcnICIKImNvbXB1dGVyLiAgSXQgZG9l cyBhbHNvIGFsbG93IHlvdSB0byByZWNvcmQgY2hhbmdlcyB0byBleGlzdGluZyBlbnRyaWVzLiIK bXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1aWRlLnRleGk6MjY3Ngptc2dp ZCAiIgoiVGhlIEB1cmVme2h0dHA6Ly9tb2JpbGVvcmcubmNvZ25pLnRvLywgaU9TIGltcGxlbWVu dGF0aW9ufSBmb3IgdGhlIEBpe2lQaG9uZS8iCiJpUG9kIFRvdWNoL2lQYWR9IHNlcmllcyBvZiBk ZXZpY2VzLCB3YXMgZGV2ZWxvcGVkIGJ5IFJpY2hhcmQgTW9yZWxhbmQuICIKIkFuZHJvaWQgdXNl cnMgc2hvdWxkIGNoZWNrIG91dCBAdXJlZntodHRwOi8vd2lraS5naXRodWIuY29tL21hdGJ1cnQv IgoibW9iaWxlb3JnLWFuZHJvaWQvLCBNb2JpbGVPcmcgQW5kcm9pZH0gYnkgTWF0dCBKb25lcy4g IFRoZSB0d28gIgoiaW1wbGVtZW50YXRpb25zIGFyZSBub3QgaWRlbnRpY2FsIGJ1dCBvZmZlciBz aW1pbGFyIGZlYXR1cmVzLiIKbXNnc3RyICIiCgojLiB0eXBlOiBQbGFpbiB0ZXh0CiM6IG9yZ2d1 aWRlLnRleGk6MjY4Mwptc2dpZCAiIgoiQHNlZWFsc297IEB1cmVme2h0dHA6Ly9vcmdtb2RlLm9y Zy9tYW51YWwvTWlzY2VsbGFuZW91cy5odG1sI01pc2NlbGxhbmVvdXMsICIKIkNoYXB0ZXIgMTUg b2YgdGhlIG1hbnVhbH1AKiBAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvbWFudWFsL01vYmlsZU9y Zy4iCiJodG1sI01vYmlsZU9yZywgQXBwZW5kaXggQiBvZiB0aGUgbWFudWFsfUAqIEB1cmVme2h0 dHA6Ly9vcmdtb2RlLm9yZy9vcmdjYXJkLiIKInBkZixLZXkgcmVmZXJlbmNlIGNhcmR9fSIKbXNn c3RyICIiCgojfiBtc2dpZCAiIgojfiAiXFxpbnB1dCB0ZXhpbmZvIEBjICUqKnN0YXJ0IG9mIGhl YWRlciBAc2V0ZmlsZW5hbWUgLi4vLi4vaW5mby9vcmdndWlkZSAiCiN+ICJAc2V0dGl0bGUgVGhl IGNvbXBhY3QgT3JnLW1vZGUgR3VpZGUiCiN+IG1zZ3N0ciAiIgojfiAiXFxpbnB1dCB0ZXhpbmZv IEBjICUqKnN0YXJ0IG9mIGhlYWRlciBAc2V0ZmlsZW5hbWUgLi4vLi4vaW5mby9vcmdndWlkZVxu IgojfiAiQHNldHRpdGxlIExhIEd1aWEgY29tcGFjdGEgZGUgT3JnLW1vZGUiCgojfiBtc2dpZCAi QHNldCBWRVJTSU9OIDcuOC4wMyBAc2V0IERBVEUgSmFudWFyeSAyMDEyIgojfiBtc2dzdHIgIkBz ZXQgVkVSU0lPTiA3LjguMDMgQHNldCBEQVRFIEphbnVhcnkgMjAxMiIKCiN+IG1zZ2lkICIiCiN+ ICJAYyBVc2UgcHJvcGVyIHF1b3RlIGFuZCBiYWNrdGljayBmb3IgY29kZSBzZWN0aW9ucyBpbiBQ REYgb3V0cHV0IEBjIENmLiAiCiN+ICJUZXhpbmZvIG1hbnVhbCAxNC4yIEBzZXQgdHhpY29kZXF1 b3RldW5kaXJlY3RlZCBAc2V0IHR4aWNvZGVxdW90ZWJhY2t0aWNrIgojfiBtc2dzdHIgIiIKI34g IkBjIFVzZSBwcm9wZXIgcXVvdGUgYW5kIGJhY2t0aWNrIGZvciBjb2RlIHNlY3Rpb25zIGluIFBE RiBvdXRwdXQgQGMgQ2YuICIKI34gIlRleGluZm8gbWFudWFsIDE0LjIgQHNldCB0eGljb2RlcXVv dGV1bmRpcmVjdGVkIEBzZXQgdHhpY29kZXF1b3RlYmFja3RpY2siCgojfiBtc2dpZCAiIgojfiAi QGMgVmVyc2lvbiBhbmQgQ29udGFjdCBJbmZvIEBzZXQgTUFJTlRBSU5FUlNJVEUgQHVyZWZ7aHR0 cDovL29yZ21vZGUub3JnLCIKI34gIm1haW50YWluZXJzIHdlYnBhZ2V9IEBzZXQgQVVUSE9SIENh cnN0ZW4gRG9taW5payBAc2V0IE1BSU5UQUlORVIgQ2Fyc3RlbiAiCiN+ICJEb21pbmlrIEBzZXQg TUFJTlRBSU5FUkVNQUlMIEBlbWFpbHtjYXJzdGVuIGF0IG9yZ21vZGUgZG90IG9yZ30gQHNldCAi CiN+ICJNQUlOVEFJTkVSQ09OVEFDVCBAdXJlZnttYWlsdG86Y2Fyc3RlbiBhdCBvcmdtb2RlIGRv dCBvcmcsY29udGFjdCB0aGUgIgojfiAibWFpbnRhaW5lcn0gQGMgJSoqZW5kIG9mIGhlYWRlciBA ZmluYWxvdXQiCiN+IG1zZ3N0ciAiIgojfiAiQGMgVmVyc2lvbiBhbmQgQ29udGFjdCBJbmZvIEBz ZXQgTUFJTlRBSU5FUlNJVEUgQHVyZWZ7aHR0cDovL29yZ21vZGUub3JnLCIKI34gIm1haW50YWlu ZXJzIHdlYnBhZ2V9IEBzZXQgQVVUSE9SIENhcnN0ZW4gRG9taW5payBAc2V0IE1BSU5UQUlORVIg Q2Fyc3RlbiAiCiN+ICJEb21pbmlrIEBzZXQgTUFJTlRBSU5FUkVNQUlMIEBlbWFpbHtjYXJzdGVu IGF0IG9yZ21vZGUgZG90IG9yZ30gQHNldCAiCiN+ICJNQUlOVEFJTkVSQ09OVEFDVCBAdXJlZntt YWlsdG86Y2Fyc3RlbiBhdCBvcmdtb2RlIGRvdCBvcmcsY29udGFjdCB0aGUgIgojfiAibWFpbnRh aW5lcn0gQGMgJSoqZW5kIG9mIGhlYWRlciBAZmluYWxvdXQiCgojfiBtc2dpZCAiIgojfiAiQGMg TWFjcm8gZGVmaW5pdGlvbnMgQGlmdGV4IEBjIEBoeXBoZW5hdGlvbnt0aW1lLXN0YW1wIHRpbWUt c3RhbXBzIHRpbWUtIgojfiAic3RhbXAtaW5nIHRpbWUtc3RhbXAtZWR9IEBlbmQgaWZ0ZXgiCiN+ IG1zZ3N0ciAiIgojfiAiQGMgTWFjcm8gZGVmaW5pdGlvbnMgQGlmdGV4IEBjIEBoeXBoZW5hdGlv bnt0aW1lLXN0YW1wIHRpbWUtc3RhbXBzIHRpbWUtIgojfiAic3RhbXAtaW5nIHRpbWUtc3RhbXAt ZWR9IEBlbmQgaWZ0ZXgiCgojfiBtc2dpZCAiIgojfiAiQGMgU3ViaGVhZGluZ3MgaW5zaWRlIGEg dGFibGUuICBAbWFjcm8gdHN1YmhlYWRpbmd7dGV4dH0gQGlmaW5mbyAiCiN+ICJAc3Vic3ViaGVh ZGluZyBcXHRleHRcXCBAZW5kIGlmaW5mbyBAaWZub3RpbmZvIEBpdGVtIEBie1xcdGV4dFxcfSBA ZW5kICIKI34gImlmbm90aW5mbyBAZW5kIG1hY3JvIgojfiBtc2dzdHIgIiIKI34gIkBjIFN1Ymhl YWRpbmdzIGluc2lkZSBhIHRhYmxlLiAgQG1hY3JvIHRzdWJoZWFkaW5ne3RleHR9IEBpZmluZm8g IgojfiAiQHN1YnN1YmhlYWRpbmcgXFx0ZXh0XFwgQGVuZCBpZmluZm8gQGlmbm90aW5mbyBAaXRl bSBAYntcXHRleHRcXH0gQGVuZCAiCiN+ICJpZm5vdGluZm8gQGVuZCBtYWNybyIKCiN+IG1zZ2lk ICIiCiN+ICJAbWFjcm8gc2VlYWxzb3t0ZXh0fSBAbm9pbmRlbnQgQGJ7RnVydGhlciByZWFkaW5n fUAqQG5vaW5kZW50IFxcdGV4dFxcICIKI34gIkBlbmQgbWFjcm8gQGNvcHlpbmciCiN+IG1zZ3N0 ciAiIgojfiAiQG1hY3JvIHNlZWFsc297dGV4dH0gQG5vaW5kZW50IEBie0Z1cnRoZXIgcmVhZGlu Z31AKkBub2luZGVudCBcXHRleHRcXCAiCiN+ICJAZW5kIG1hY3JvIEBjb3B5aW5nIgoKI34gbXNn aWQgIiIKI34gIkBkaXJjYXRlZ29yeSBFbWFjcyBAZGlyZW50cnkgKiBPcmcgTW9kZSBHdWlkZTog KG9yZ2d1aWRlKS4gIEFiYnJldmlhdGVkICIKI34gIk9yZy1tb2RlIE1hbnVhbCBAZW5kIGRpcmVu dHJ5IgojfiBtc2dzdHIgIiIKI34gIkBkaXJjYXRlZ29yeSBFbWFjcyBAZGlyZW50cnkgKiBHdWlh IGRlIE9yZzogKG9yZ2d1aWRlKS4gTWFudWFsXG4iCiN+ICJBYnJldmlhZG8gZGUgT3JnLW1vZGUg QGVuZCBkaXJlbnRyeSIKCiN+IG1zZ2lkICJAc3VidGl0bGUgUmVsZWFzZSBAdmFsdWV7VkVSU0lP Tn0gQGF1dGhvciBieSBDYXJzdGVuIERvbWluaWsiCiN+IG1zZ3N0ciAiQHN1YnRpdGxlIEVudHJl Z2EgQHZhbHVle1ZFUlNJT059IEBhdXRob3IgcG9yIENhcnN0ZW4gRG9taW5payIKCiN+IG1zZ2lk ICIiCiN+ICJAYyBUaGUgZm9sbG93aW5nIHR3byBjb21tYW5kcyBzdGFydCB0aGUgY29weXJpZ2h0 IHBhZ2UuICBAcGFnZSBAdnNraXAgMHB0ICIKI34gInBsdXMgMWZpbGxsIEBpbnNlcnRjb3B5aW5n IEBlbmQgdGl0bGVwYWdlIgojfiBtc2dzdHIgIiIKI34gIkBjIFRoZSBmb2xsb3dpbmcgdHdvIGNv bW1hbmRzIHN0YXJ0IHRoZSBjb3B5cmlnaHQgcGFnZS4gIEBwYWdlIEB2c2tpcCAwcHQgIgojfiAi cGx1cyAxZmlsbGwgQGluc2VydGNvcHlpbmcgQGVuZCB0aXRsZXBhZ2UiCgojfiBtc2dpZCAiQGMg T3V0cHV0IHRoZSB0YWJsZSBvZiBjb250ZW50cyBhdCB0aGUgYmVnaW5uaW5nLiAgQHNob3J0Y29u dGVudHMiCiN+IG1zZ3N0ciAiQGMgT3V0cHV0IHRoZSB0YWJsZSBvZiBjb250ZW50cyBhdCB0aGUg YmVnaW5uaW5nLiAgQHNob3J0Y29udGVudHMiCgojfiBtc2dpZCAiQGlmbm90dGV4IEBub2RlIFRv cCwgSW50cm9kdWN0aW9uLCAoZGlyKSwgKGRpcikgIEB0b3AgT3JnIE1vZGUgR3VpZGUiCiN+IG1z Z3N0ciAiIgojfiAiQGlmbm90dGV4IEBub2RlIFRvcCwgSW50cm9kdWNjaUAnb24sIChkaXIpLCAo ZGlyKSAgQHRvcCBHdUAne0Bkb3RsZXNze2l9fSIKI34gImEgZGUgT3JnIE1vZGUiCgojfiBtc2dp ZCAiQGluc2VydGNvcHlpbmcgQGVuZCBpZm5vdHRleCIKI34gbXNnc3RyICJAaW5zZXJ0Y29weWlu ZyBAZW5kIGlmbm90dGV4IgoKIywgZnV6enkKI34gbXNnaWQgIiIKI34gIkBtZW51XG4iCiN+ICIq IEludHJvZHVjdGlvbjo6XHRcdEdldHRpbmcgc3RhcnRlZFxuIgojfiAiKiBEb2N1bWVudCBTdHJ1 Y3R1cmU6Olx0XHRBIHRyZWUgd29ya3MgbGlrZSB5b3VyIGJyYWluXG4iCiN+ICIqIFRhYmxlczo6 XHRcdFx0UHVyZSBtYWdpYyBmb3IgcXVpY2sgZm9ybWF0dGluZ1xuIgojfiAiKiBIeXBlcmxpbmtz OjpcdFx0XHROb3RlcyBpbiBjb250ZXh0XG4iCiN+ICIqIFRPRE8gSXRlbXM6Olx0XHRcdEV2ZXJ5 IHRyZWUgYnJhbmNoIGNhbiBiZSBhIFRPRE8gaXRlbVxuIgojfiAiKiBUYWdzOjpcdFx0XHRUYWdn aW5nIGhlYWRsaW5lcyBhbmQgbWF0Y2hpbmcgc2V0cyBvZiB0YWdzXG4iCiN+ICIqIFByb3BlcnRp ZXM6Olx0XHRcdFByb3BlcnRpZXNcbiIKI34gIiogRGF0ZXMgYW5kIFRpbWVzOjpcdFx0TWFraW5n IGl0ZW1zIHVzZWZ1bCBmb3IgcGxhbm5pbmdcbiIKI34gIiogQ2FwdHVyZSAtIFJlZmlsZSAtIEFy Y2hpdmU6Olx0VGhlIGlucyBhbmQgb3V0cyBmb3IgcHJvamVjdHNcbiIKI34gIiogQWdlbmRhIFZp ZXdzOjpcdFx0Q29sbGVjdGluZyBpbmZvcm1hdGlvbiBpbnRvIHZpZXdzXG4iCiN+ICIqIE1hcmt1 cDo6XHRcdFx0UHJlcGFyZSB0ZXh0IGZvciByaWNoIGV4cG9ydFxuIgojfiAiKiBFeHBvcnRpbmc6 Olx0XHRcdFNoYXJpbmcgYW5kIHB1Ymxpc2hpbmcgb2Ygbm90ZXNcbiIKI34gIiogUHVibGlzaGlu Zzo6XHRcdFx0Q3JlYXRlIGEgd2ViIHNpdGUgb2YgbGlua2VkIE9yZyBmaWxlc1xuIgojfiAiKiBX b3JraW5nIFdpdGggU291cmNlIENvZGU6Olx0U291cmNlIGNvZGUgc25pcHBldHMgZW1iZWRkZWQg aW4gT3JnXG4iCiN+ICIqIE1pc2NlbGxhbmVvdXM6Olx0XHRBbGwgdGhlIHJlc3Qgd2hpY2ggZGlk IG5vdCBmaXQgZWxzZXdoZXJlXG4iCiN+IG1zZ3N0ciAiIgojfiAiQG1lbnVcbiIKI34gIiogSW50 cm9kdWNjaUAnb246Olx0XHQgIEVtcGV6YW5kb1xuIgojfiAiKiBFc3RydWN0dXJhIGRlIGxvcyBE b2N1bWVudG9zOjogIFVuIEAnYXJib2wgZnVuY2lvbmEgY29tbyB0dSBjZXJlYnJvXG4iCiN+ICIq IFRhYmxhczo6XHRcdFx0ICBNYWdpYSBwdXJhIHBhcmEgdW4gZm9ybWF0ZW8gckAnYXBpZG9cbiIK I34gIiogSHlwZXJlbmxhY2VzOjpcdFx0ICBOb3RhcyBlbiBjb250ZXh0b1xuIgojfiAiKiBJdGVt cyBUT0RPOjpcdCAgQ2FkYSByYW1hIGRlbCBAJ2FyYm9sIHB1ZWRlIHNlciB1biBpdGVtIFRPRE9c biIKI34gIiogRXRpcXVldGFzOjpcdFx0XHQgIEV0aXF1ZXRhbmRvIGNhYmVjZXJhcyB5IGFzaWdu YW5kb1xuIgojfiAiY29uanVudG9zIGRlIGV0aXF1ZXRhc1xuIgojfiAiKiBQcm9waWVkYWRlczo6 XHRcdFx0ICBQcm9waWVkYWRlc1xuIgojfiAiKiBGZWNoYXMgeSBIb3Jhczo6XHRcdCAgSGFjaWVu ZG8gaXRlbXNcbiIKI34gIkAndXRpbGVzIHBhcmEgcGxhbmlmaWNhclxuIgojfiAiKiBDYXB0dXJh ciAtIFJlbGxlbmFyIC0gQXJjaGl2YXI6OiBMYXMgZW50cmFkYXMgeSBzYWxpZGFzIGRlIGxvcyBw cm95ZWN0b3NcbiIKI34gIiogVmlzdGFzIGRlIEFnZW5kYTo6XHRcdENvbGVjY2lvbmFuZG8gaW5m b3JtYWNpQCdvbiBlbiB2aXN0YXNcbiIKI34gIiogTWFyY2Fkbzo6XHRcdFx0UHJlcGFyYXIgdGV4 dG8gcGFyYSBleHBvcnRhciBkZSBtYW5lcmFcbiIKI34gImVucmlxdWVjaWRhXG4iCiN+ICIqIEV4 cG9ydGFuZG86Olx0XHRcdENvbXBhcnRpZW5kbyB5IHB1YmxpY2FuZG8gbm90YXNcbiIKI34gIiog UHVibGljYW5kbzo6XHRcdFx0Q3JlYXIgdW4gc2l0aW8gd2ViIGRlIGZpY2hlcm9zIE9yZyBlbmxh emFkb3NcbiIKI34gIiogVHJhYmFqYW5kbyBjb24gQ0Anb2RpZ28gRnVlbnRlOjogRnVlbnRlcyBk ZSB0cm96b3MgZGUgY0Anb2RpZ29cbiIKI34gImVtYmViaWRvcyBlbiBPcmdcbiIKI34gIiogTWlz Y2VsQCdhbmVhOjpcdFx0RWwgcmVzdG8gZGUgY29zYXMgcXVlIG5vIHNlIGFqdXN0YW4gZGVcbiIK I34gIm90cm8gbW9kb1xuIgoKIywgZnV6enkKI358IG1zZ2lkICJUcmFja2luZyBUT0RPIHN0YXRl IGNoYW5nZXMiCiN+IG1zZ2lkICJUcmFja2luZyBUT0RPIHN0YXRlIGNoYW5nZXM6Olx0IFdoZW4g ZGlkIHRoZSBzdGF0dXMgY2hhbmdlPyIKI34gbXNnc3RyICJTZWd1aW1pZW50byBkZSBsb3MgY2Ft YmlvcyBkZSBlc3RhZG9zIFRPRE8iCgojLCBmdXp6eQojfnwgbXNnaWQgIkNhcHR1cmUiCiN+IG1z Z2lkICJDYXB0dXJlOjpcdFx0XHQiCiN+IG1zZ3N0ciAiQ2FwdHVyYXIiCgojLCBmdXp6eQojfnwg bXNnaWQgIiIKI358ICJUaGVuIGFkZCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gQGZpbGV7LmVtYWNz fS4gIEl0IGlzIG5lZWRlZCBzbyB0aGF0ICIKI358ICJFbWFjcyBjYW4gYXV0b2xvYWQgZnVuY3Rp b25zIHRoYXQgYXJlIGxvY2F0ZWQgaW4gZmlsZXMgbm90IGltbWVkaWF0ZWx5ICIKI358ICJsb2Fk ZWQgd2hlbiBPcmctbW9kZSBzdGFydHMuIgojfiBtc2dpZCAiIgojfiAiVGhlbiBhZGQgdGhlIGZv bGxvd2luZyBsaW5lIHRvIEBmaWxley5lbWFjc30uICBJdCBpcyBuZWVkZWQgc28gdGhhdCBFbWFj cyAiCiN+ICJjYW4gYXV0b2xvYWQgZnVuY3Rpb25zIHRoYXQgYXJlIGxvY2F0ZWQgaW4gZmlsZXMg bm90IGltbWVkaWF0ZWx5IGxvYWRlZCAiCiN+ICJ3aGVuIE9yZy1tb2RlIHN0YXJ0cy4gIEBzbWFs bGxpc3AgKHJlcXVpcmUgJ29yZy1pbnN0YWxsKSAgQGVuZCBzbWFsbGxpc3AiCiN+IG1zZ3N0ciAi IgojfiAiRW50b25jZXMgYUB+bmFkYSBsYSBzaWd1aWVudGUgbEAne0Bkb3RsZXNze2l9fW5lYXMg YWwgYXJjaGl2b1xuIgojfiAiQGZpbGV7LmVtYWNzfS4gRXN0byBlcyBuZWNlc2FyaW8gcGFyYSBx dWUgRW1hY3MgcHVlZGEgY2FyZ2FyIGxhc1xuIgojfiAiZnVuY2lvbmVzIHF1ZSBlc3RAJ2FuIGxv Y2FsaXphZGFzIGVuIGxvcyBhcmNoaXZvcyBubyBpbm1lZGlhdGFtZW50ZVxuIgojfiAiY2FyZ2Fk b3MgY3VhbmRvIGVsIE9yZy1tb2RlIHNlIGluaWNpYS4iCgojLCBmdXp6eQojfnwgbXNnaWQgIkxp dGVyYWwgZXhhbXBsZXMiCiN+IG1zZ2lkICJAc21hbGxleGFtcGxlIgojfiBtc2dzdHIgIkVqZW1w bG9zIGxpdGVyYWxlcyIKCiMsIGZ1enp5CiN+fCBtc2dpZCAiTGl0ZXJhbCBleGFtcGxlcyIKI34g bXNnaWQgIkBlbmQgc21hbGxleGFtcGxlIgojfiBtc2dzdHIgIkVqZW1wbG9zIGxpdGVyYWxlcyIK CiMsIGZ1enp5CiN+fCBtc2dpZCAiIytUT0RPOiBUT0RPKHQpIFdBSVQod0BALyEpIHwgRE9ORShk ISkgQ0FOQ0VMRUQoY0BAKVxuIgojfiBtc2dpZCAiIytUT0RPOiBUT0RPKHQpIHwgRE9ORShkKVxu IgojfiBtc2dzdHIgIiMrVE9ETzogVE9ETyh0KSBXQUlUKHdAQC8hKSB8IERPTkUoZCEpIENBTkNF TEVEKGNAQClcbiIKCiMsIGZ1enp5CiN+fCBtc2dpZCAiIytUQUdTOiBAQHdvcmsodykgIEBAaG9t ZShoKSAgQEB0ZW5uaXNjbHViKHQpICBsYXB0b3AobCkgIHBjKHApXG4iCiN+IG1zZ2lkICIjK1RB R1M6IEBAd29yayBAQGhvbWUgQEB0ZW5uaXNjbHViXG4iCiN+IG1zZ3N0ciAiIytUQUdTOiBAQHRy YWJham8odCkgIEBAY2FzYShjKSAgQEBmdXRib2woZikgIHNlcnZpZG9yKHMpICBwYyhwKVxuIgoK IywgZnV6enkKI358IG1zZ2lkICIiCiN+fCAiIytUQUdTOiBAQHdvcmsgQEBob21lIEBAdGVubmlz Y2x1YlxuIgojfnwgIiMrVEFHUzogbGFwdG9wIGNhciBwYyBzYWlsYm9hdFxuIgojfiBtc2dpZCAi IytUQUdTOiBsYXB0b3AgY2FyIHBjIHNhaWxib2F0XG4iCiN+IG1zZ3N0ciAiIgojfiAiIytUQUdT OiBAQHRyYWJham8gQEBjYXNhIEBAdGVuaXNcbiIKI34gIiMrVEFHUzogcG9ydMOhdGlsIGNvY2hl IHBjIHZlbGVyb1xuIgoKIywgZnV6enkKI358IG1zZ2lkICIiCiN+fCAiU2hvdyB0aGUgZ2xvYmFs IFRPRE8gbGlzdC4gIENvbGxlY3RzIHRoZSBUT0RPIGl0ZW1zIGZyb20gYWxsIGFnZW5kYSAiCiN+ fCAiZmlsZXMgKEBweHJlZntBZ2VuZGEgVmlld3N9KSBpbnRvIGEgc2luZ2xlIGJ1ZmZlci4gIEB4 cmVme0dsb2JhbCBUT0RPICIKI358ICJsaXN0fSwgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgojfiBt c2dpZCAiIgojfiAiQHRhYmxlIEBrYmQgQGl0ZW0gQy1jIGEgdCBTaG93IHRoZSBnbG9iYWwgVE9E TyBsaXN0LiAgVGhpcyBjb2xsZWN0cyB0aGUgIgojfiAiVE9ETyBpdGVtcyBmcm9tIGFsbCBhZ2Vu ZGEgZmlsZXMgKEBweHJlZntBZ2VuZGEgVmlld3N9KSBpbnRvIGEgc2luZ2xlICIKI34gImJ1ZmZl ci4gIEBpdGVtIEMtYyBhIFQgTGlrZSB0aGUgYWJvdmUsIGJ1dCBhbGxvd3Mgc2VsZWN0aW9uIG9m IGEgc3BlY2lmaWMgIgojfiAiVE9ETyBrZXl3b3JkLiAgQGVuZCB0YWJsZSIKI34gbXNnc3RyICIi CiN+ICJNdWVzdHJhIGxhIGxpc3RhIGdsb2JhbCBkZSBUT0RPcy4gUmVjb2xlY3RhIGxvcyBAJ3tA ZG90bGVzc3tpfX10ZW1zXG4iCiN+ICJkZXNkZSB0b2RvcyBsb3MgZmljaGVyb3MgZGUgYWdlbmRh IChAcHhyZWZ7VmlzdGFzIGRlIGxhIEFnZW5kYX0pIGVuIHVuXG4iCiN+ICJzb2xvIGJ1ZmZlci4g QHhyZWZ7TGlzdGEgZ2xvYmFsIFRPRE99LCBwYXJhIG1AJ2FzIGluZm9ybWFjaUAnb24uIgoKI34g bXNnaWQgIlJlZmlsaW5nIG5vdGVzIgojfiBtc2dzdHIgIk1vdmllbmRvIG5vdGFzIgoKI34gbXNn aWQgIihyZXF1aXJlICdvcmctaW5zdGFsbClcbiIKI34gbXNnc3RyICIocmVxdWlyZSAnb3JnLWlu c3RhbGwpXG4iCg== --=-=-= Content-Type: application/x-texinfo Content-Disposition: attachment; filename=orgguide.es.texi Content-Transfer-Encoding: base64 XGlucHV0IHRleGluZm8KQGMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBjCkBjIFRoaXMgZmlsZSB3YXMg Z2VuZXJhdGVkIHdpdGggcG80YS4gVHJhbnNsYXRlIHRoZSBzb3VyY2UgZmlsZS4KQGMKQGMgPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CkBjICUqKnN0YXJ0IG9mIGhlYWRlcgpAc2V0ZmlsZW5hbWUgLi4vLi4v aW5mby9vcmdndWlkZQpAc2V0dGl0bGUgTGEgR3VAJ3tAZG90bGVzc3tpfX1hIGNvbXBhY3RhIGRl IE9yZy1tb2RlCgpAaW5jbHVkZSBvcmctdmVyc2lvbi5pbmMKCkBjIFVzZSBwcm9wZXIgcXVvdGUg YW5kIGJhY2t0aWNrIGZvciBjb2RlIHNlY3Rpb25zIGluIFBERiBvdXRwdXQKQGMgQ2YuIFRleGlu Zm8gbWFudWFsIDE0LjIKQHNldCB0eGljb2RlcXVvdGV1bmRpcmVjdGVkCkBzZXQgdHhpY29kZXF1 b3RlYmFja3RpY2sKCkBjIFZlcnNpb24gYW5kIENvbnRhY3QgSW5mbwpAc2V0IE1BSU5UQUlORVJT SVRFIEB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZyxtYWludGFpbmVycyB3ZWJwYWdlfQpAc2V0IEFV VEhPUiBDYXJzdGVuIERvbWluaWsKQHNldCBNQUlOVEFJTkVSIENhcnN0ZW4gRG9taW5pawpAc2V0 IE1BSU5UQUlORVJFTUFJTCBAZW1haWx7Y2Fyc3RlbiBhdCBvcmdtb2RlIGRvdCBvcmd9CkBzZXQg TUFJTlRBSU5FUkNPTlRBQ1QgQHVyZWZ7bWFpbHRvOmNhcnN0ZW4gYXQgb3JnbW9kZSBkb3Qgb3Jn LGNvbnRhY3QgdGhlIG1haW50YWluZXJ9CkBjICUqKmVuZCBvZiBoZWFkZXIKQGZpbmFsb3V0CgpA YyBNYWNybyBkZWZpbml0aW9ucwpAaWZ0ZXgKQGMgQGh5cGhlbmF0aW9ue3RpbWUtc3RhbXAgdGlt ZS1zdGFtcHMgdGltZS1zdGFtcC1pbmcgdGltZS1zdGFtcC1lZH0KQGVuZCBpZnRleAoKQGMgU3Vi aGVhZGluZ3MgaW5zaWRlIGEgdGFibGUuCkBtYWNybyB0c3ViaGVhZGluZ3t0ZXh0fQpAaWZpbmZv CkBzdWJzdWJoZWFkaW5nIFx0ZXh0XApAZW5kIGlmaW5mbwpAaWZub3RpbmZvCkBpdGVtIEBie1x0 ZXh0XH0KQGVuZCBpZm5vdGluZm8KQGVuZCBtYWNybwoKQG1hY3JvIHNlZWFsc297dGV4dH0KQG5v aW5kZW50IEBie0Z1cnRoZXIgcmVhZGluZ31AKkBub2luZGVudCBcdGV4dFwKQGVuZCBtYWNybwpA Y29weWluZwoKQ29weXJpZ2h0IEBjb3B5cmlnaHR7fSAyMDEwLTIwMTIgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uCgpAcXVvdGF0aW9uClNlIHBlcm1pdGUgbGEgY29waWEsIGRpc3RyaWJ1Y2lAJ29u IHkvbyBtb2RpZmljYWNpQCdvbiBkZSBlc3RlCmRvY3VtZW50byBiYWpvIGxvcyB0QCdlcm1pbm9z IGRlIGxhIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwKVmVyc2lvbiAxLjMgbyBwb3N0 ZXJpb3JlcyB2ZXJzaW9uZXMgcHVibGljYWRhcyBwb3IgbGEgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0 aW9uOyBzaW4gc2VjY2lvbmVzIGludmFyaWFudGVzLCBjb24gdGV4dG8gYWwgaW5pY2lvIGRlIGxh CmN1YmllcnRhIGRlIHBvcnRhZGEgJ0EgR05VIE1hbnVhbCcsIHkgY29uIGVsIHRleHRvIGRlIGNv bnRyYXBvcnRhZGEKY29tbyBzZSBtdWVzdHJhIGFiYWpvIChhKS4gVW5hIGNvcGlhIGRlIGVzdGEg bGljZW5jaWEgZXN0QCdhIGluY2x1aWRhCmVuIGxhIHNlY2NpQCdvbiB0aXR1bGFkYSAnR05VIEZy ZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlJycuCgooYSkgRWwgdGV4dG8gZGUgY29udHJhcG9ydGFk YSBkZSBsYSBGU0YgZXM6ICdUdSB0aWVuZXMgbGEgbGliZXJ0YWQKcGFyYSBjb3BpYXIgeSBtb2Rp ZmljYXIgZXN0ZSBtYW51YWwgR05VLCBDb21wcmFuZG8gY29waWFzIGRlc2RlIGxhIEZTRgpzZSBm YWNpbGl0YSBlbCBkZXNhcnJvbGxvIGRlIEdOVSB5IGxhIHByb21vY2lAJ29uIGRlbCBzb2Z0d2Fy ZQpsaWJyZScuCgpFc3RlIGRvY3VtZW50byBmb3JtYSBwYXJ0ZSBkZSB1bmEgY29sZWNjaUAnb24g ZGlzdHJpYnVpZGEgYmFqbyBsYSBHTlUKRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuIFNpIGRl c2VhIGRpc3RyaWJ1aXIgZXN0ZSBkb2N1bWVudG8Kc2VwYXJhZGFtZW50ZSBkZSBsYSBjb2xlY2Np QCdvbiwgcHVlZGUgaGFjZXJsbyBhQH5uYWRpZW5kbyB1bmEgY29waWEgZGUKbGEgbGljZW5jaWEg YWwgZG9jdW1lbnRvLCBjb21vIHNlIGRlc2NyaWJlIGVuIGxhIHNlY2NpQCdvbiA2IGRlIGxhCmxp Y2VuY2lhLgpAZW5kIHF1b3RhdGlvbgpAZW5kIGNvcHlpbmcKCkBkaXJjYXRlZ29yeSBFbWFjcwpA ZGlyZW50cnkKKiBHdUAne0Bkb3RsZXNze2l9fWEgZGUgT3JnLW1vZGU6IChvcmdndWlkZSkuICBN YW51YWwgZGUgT3JnLW1vZGUgQWJyZXZpYWRvCkBlbmQgZGlyZW50cnkKCkB0aXRsZXBhZ2UKQHRp dGxlIExhIEd1QCd7QGRvdGxlc3N7aX19YSBjb21wYWN0YSBkZSBPcmctbW9kZQoKQHN1YnRpdGxl IFZlcnNpQCdvbiBAdmFsdWV7VkVSU0lPTn0KQGF1dGhvciBwb3IgQ2Fyc3RlbiBEb21pbmlrCgpA YyBUaGUgZm9sbG93aW5nIHR3byBjb21tYW5kcyBzdGFydCB0aGUgY29weXJpZ2h0IHBhZ2UuCkBw YWdlCkB2c2tpcCAwcHQgcGx1cyAxZmlsbGwKQGluc2VydGNvcHlpbmcKQGVuZCB0aXRsZXBhZ2UK CkBjIE91dHB1dCB0aGUgdGFibGUgb2YgY29udGVudHMgYXQgdGhlIGJlZ2lubmluZy4KQHNob3J0 Y29udGVudHMKCkBpZm5vdHRleApAbm9kZSBUb3AsIEludHJvZHVjY2lAJ29uLCAoZGlyKSwgKGRp cikKQHRvcCBHdUAne0Bkb3RsZXNze2l9fWEgZGUgT3JnIE1vZGUKCkBpbnNlcnRjb3B5aW5nCkBl bmQgaWZub3R0ZXgKCkBtZW51CiogSW50cm9kdWNjaUAnb246OiAgICAgICAgICAgQ29tZW56YW5k bwoqIEVzdHJ1Y3R1cmEgZGVsIGRvY3VtZW50bzo6ICBVbiBAJ2FyYm9sIGZ1bmNpb25hIGNvbW8g dHUgY2VyZWJybwoqIFRhYmxhczo6ICAgICAgICAgICAgICAgICAgIFB1cmEgbWFnaWEgcGFyYSBm b3JtYXRlYXIgckAnYXBpZG8KKiBIaXBlcmVubGFjZXM6OiAgICAgICAgICAgICBOb3RhcyBlbiBj b250ZXh0bwoqIEl0ZW1zIFRPRE86OiAgICAgICAgICAgICAgIENhZGEgcmFtYSBkZWwgQCdhcmJv bCBwdWVkZSBzZXIgdW4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAJ3tAZG90bGVz c3tpfX10ZW0gVE9ETwoqIEV0aXF1ZXRhczo6ICAgICAgICAgICAgICAgIEV0aXF1ZXRhbmRvIGNh YmVjZXJhcyB5IGVuY29udHJhbmRvIGdydXBvcyBkZSAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGV0aXF1ZXRhcwoqIFByb3BpZWRhZGVzOjogICAgICAgICAgICAgIFByb3BpZWRhZGVz CiogRmVjaGFzIHkgaG9yYXM6OiAgICAgICAgICAgQ3JlYW5kbyBAJ3tAZG90bGVzc3tpfX10ZW1z IEAndXRpbGVzIHBhcmEgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFuaWZpY2Fy CiogQ2FwdHVyZSAtIFJlZmlsZSAtIEFyY2hpdmU6OiAgTGFzIGVudHJhZGFzIHkgc2FsaWRhcyBw YXJhIHByb3llY3RvcwoqIFZpc3RhcyBkZSBsYSBBZ2VuZGE6OiAgICAgIFJlY29sZWN0YW5kbyBp bmZvcm1hY2lAJ29uIGVuIHZpc3RhcwoqIE1hcmNhZG86OiAgICAgICAgICAgICAgICAgIFByZXBh cmFyIHRleHRvIHBhcmEgZXhwb3J0YWNpQCdvbiBlbnJpcXVlY2lkYQoqIEV4cG9ydGFuZG86OiAg ICAgICAgICAgICAgIENvbXBhcnRpY2lAJ29uIHkgcHVibGljYWNpQCdvbiBkZSBub3RhcwoqIFB1 YmxpY2FjaUAnb246OiAgICAgICAgICAgIENyZWFyIHVuIHNpdGlvIHdlYiBkZSBmaWNoZXJvcyBP cmcgZW5sYXphZG9zCiogVHJhYmFqYW5kbyBjb24gQ0Anb2RpZ28gRnVlbnRlOjogIFRyb3pvcyBk ZSBjQCdvZGlnbyBmdWVudGUgZW1iZWJpZG9zIGVuIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE9yZwoqIE1pc2NlbEAnYW5lb3M6OiAgICAgICAgICAgIEVsIHJlc3RvIGRl IGNvc2FzIHF1ZSBubyB0aWVuZW4gb3RybyBsdWdhcgoKQGRldGFpbG1lbnUKIC0tLSBFbCBMaXN0 YWRvIERldGFsbGFkbyBkZSBOb2RvcyAtLS0KCgoKSW50cm9kdWNjaUAnb24KCgoKKiBQcmVmYWNp bzo6ICAgICAgICAgICAgICAgICBCaWVudmVuaWRhCiogSW5zdGFsYWNpQCdvbjo6ICAgICAgICAg ICAgQ0Anb21vIGluc3RhbGFyIHVuYSB2ZXJzaUAnb24gZGVzY2FyZ2FkYSBkZSBPcmcKKiBBY3Rp dmFjaUAnb246OiAgICAgICAgICAgICBDQCdvbW8gYWN0aXZhciBPcmcgcGFyYSBjaWVydG9zIGJ1 ZmZlcnMKKiBSZWFsaW1lbnRhY2lAJ29uOjogICAgICAgICBJbmZvcm1lcyBkZSBlcnJvciwgaWRl YXMsIHBhcmNoZXMsIGV0Yy4KCkVzdHJ1Y3R1cmEgZGVsIGRvY3VtZW50bwoKCgoqIE91dGxpbmVz OjogICAgICAgICAgICAgICAgIE9yZyBlc3RAJ2EgYmFzYWRvIGVuIGVsIG1vZG8gT3V0bGluZQoq IENhYmVjZXJhczo6ICAgICAgICAgICAgICAgIENAJ29tbyBlc2NyaWJpciB1biBAJ2FyYm9sIGRl IGNhYmVjZXJhcyBPcmcKKiBWaXNpYmlsaWRhZCBjQCd7QGRvdGxlc3N7aX19Y2xpY2E6OiAgTW9z dHJhciB5IG9jdWx0YXIsIG11eSBzaW1wbGlmaWNhZG8KKiBNb3ZpbWllbnRvOjogICAgICAgICAg ICAgICBTYWx0YW5kbyBhIG90cmFzIGNhYmVjZXJhcwoqIEVkaWNpQCdvbiBkZSBlc3RydWN0dXJh OjogIENhbWJpYW5kbyBsYSBzZWN1ZW5jaWEgeSBlbCBuaXZlbCBkZSBjYWJlY2VyYXMKKiBAJ0Fy Ym9sZXMgcG9jbyBkZW5zb3M6OiAgICBDb3JyZXNwb25kZW5jaWFzIGVtYmViaWRhcyBlbiBjb250 ZXh0bwoqIExpc3RhcyBwbGFuYXM6OiAgICAgICAgICAgIEVzdHJ1Y3R1cmEgYWRpY2lvbmFsIGNv biB1bmEgZW50cmFkYQoqIE5vdGFzIGFsIHBpZTo6ICAgICAgICAgICAgIENAJ29tbyBsYXMgbm90 YXMgYWwgcGllIGVzdEAnYW4gZGVmaW5pZGFzIGVuIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2ludGF4aXMgT3JnCgpIaXBlcmVubGFjZXMKCgoKKiBGb3JtYXRvIGRlIGVubGFjZTo6 ICAgICAgICBDQCdvbW8gbG9zIGVubGFjZXMgc29uIGZvcm1hdGVhZG9zIGVuIE9yZwoqIEVubGFj ZXMgaW50ZXJub3M6OiAgICAgICAgIEVubGFjZXMgYSBvdHJvcyBsdWdhcmVzIGVuIGVsIGZpY2hl cm8gYWN0dWFsCiogRW5sYWNlcyBleHRlcm5vczo6ICAgICAgICAgRW5sYWNlcyB0aXBvIFVSTCBw YXJhIGVsIG11bmRvCiogTWFuZWphbmRvIGVubGFjZXM6OiAgICAgICAgQ3JlYW5kbywgaW5zZXJ0 YW5kbyB5IHNpZ3VpZW5kbwoqIERlc3Rpbm9zIGVubGF6YWRvczo6ICAgICAgIEFwdW50YW5kbyBh IHVuYSBsb2NhbGl6YWNpQCdvbiBlbiB1biBhcmNoaXZvCgpJdGVtcyBUT0RPCgoKCiogVXNhbmRv IGxvcyBlc3RhZG9zIFRPRE86OiAgUG9uaWVuZG8geSBjYW1iaWFkbyBlc3RhZG9zCiogRmx1am9z IGRlIHRyYWJham8gbXVsdGktZXN0YWRvOjogIE1AJ2FzIHF1ZSBhaG9yYSBzaS9ubwoqIFByb2Nl c28gZGUgYWNjZXNvOjogICAgICAgIEZlY2hhcyB5IG5vdGFzIHBhcmEgZWwgcHJvZ3Jlc28KKiBQ cmlvcmlkYWRlczo6ICAgICAgICAgICAgICBBbGd1bmFzIGNvc2FzIHNvbiBtQCdhcyBpbXBvcnRh bnRlcyBxdWUgb3RyYXMKKiBSb21waWVuZG8gdGFyZWFzOjogICAgICAgICBQYXJ0aWVuZG8gdW5h IHRhcmVhIGVuIHBpZXphcyBtYW5lamFibGVzCiogQ2FqYXMgZGUgY2hlcXVlbzo6ICAgICAgICAg TGlzdGFzIGRlIG1hcmNhcwoKUHJvY2VzbyBkZSBhY2Nlc28KCgoKKiBDZXJyYW5kbyBpdGVtczo6 ICAgICAgICAgICDCv0N1YW5kbyBmdUAnZSBtYXJjYWRhIGVzdGEgZW50cmFkYSBhIERPTkU/Ciog VHJhemFuZG8gbG9zIGVzdGFkb3MgVE9ETzo6ICDCv0N1YW5kbyBjYW1iaWEgZWwgZXN0YWRvPwoK RXRpcXVldGFzCgoKCiogTWFyY2EgZGUgaGVyZW5jaWE6OiAgICAgICAgVGFncyB1c2UgdGhlIHRy ZWUgc3RydWN0dXJlIG9mIHRoZSBvdXRsaW5lCiogUG9uaWVuZG8gbWFyY2FzOjogICAgICAgICAg Q0Anb21vIGFzaWduYXIgZXRpcXVldGFzIGEgdW5hIGNhYmVjZXJhCiogQnVzY2FuZG8gbWFyY2Fz OjogICAgICAgICAgQnVzY2FuZG8gY29tYmluYWNpb25lcyBkZSBldGlxdWV0YXMKCkZlY2hhcyB5 IGhvcmFzCgoKCiogSW5zdGFudGUgZW4gZWwgdGllbXBvOjogICAgQXNpZ25hY2lAJ29uIGRlIHRp ZW1wbyBhIHVuYSBlbnRyYWRhIGRlIEAnYXJib2wKKiBDcmVhbmRvIGluc3RhbnRlcyBkZSB0aWVt cG86OiAgQ29tYW5kb3MgcGFyYSBpbnNlcnRhciBpbnN0YW50ZXMgZGUgdGllbXBvCiogRmVjaGEg bEAne0Bkb3RsZXNze2l9fW1pdGUgeSBwbGFuaWZpY2FjaUAnb246OiAgUGxhbmlmaWNhbmRvIHR1 IHRyYWJham8KKiBFc3RhYmxlY2llbmRvIHRpZW1wbyBkZSB0cmFiYWpvOjogIExsZXZhbmRvIGxh IGN1ZW50YSBkZSBjdWFudG8gc2UgZ2FzdGEgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVuIHVuYSB0YXJlYQoKQ2FwdHVyZSAtIFJlZmlsZSAtIEFyY2hpdmUKCgoKKiBD YXB0dXJhcjo6ICAgICAgICAgICAgICAgICAKKiBSZWZpbGUgYW5kIGNvcHk6OiAgICAgICAgICBN b3ZpZW5kbyB1biBAJ2FyYm9sIGRlIHVuIGx1Z2FyIGEgb3RybwoqIEFyY2hpdmFuZG86OiAgICAg ICAgICAgICAgIFF1QCdlIHNlIGhhY2UgY29uIGxvcyBwcm95ZWN0b3MgdGVybWluYWRvcwoKQ2Fw dHVyYXIKCgoKKiBTZXR0aW5nIHVwIGEgY2FwdHVyZSBsb2NhdGlvbjo6ICBEb25kZSBzZXJAJ2Fu IGFsbWFjZW5hZGFzIGxhcyBub3RhcwoqIFVzYW5kbyBjYXB0dXJhczo6ICAgICAgICAgIENvbWFu ZG9zIHBhcmEgaW52b2NhciB5IGZpbmFsaXphciBjYXB0dXJhcwoqIFBsYW50aWxsYXMgZGUgY2Fw dHVyYXM6OiAgIERlZmluZSB0aGUgb3V0bGluZSBvZiBkaWZmZXJlbnQgbm90ZSB0eXBlcwoKVmlz dGFzIGRlIGxhIEFnZW5kYQoKCgoqIEFyY2hpdm9zIGRlIGFnZW5kYTo6ICAgICAgIEFyY2hpdm9z IGJ1c2NhZG9zIHBhcmEgbGEgaW5mb3JtYWNpQCdvbiBkZSBsYSAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFnZW5kYQoqIERlc3BhY2hhZG9yIGRlIGFnZW5kYTo6ICAgIEtleWJvYXJk IGFjY2VzcyB0byBhZ2VuZGEgdmlld3MKKiBWaXN0YXMgZGUgYWdlbmRhIGludGVybmFzOjogIFdo YXQgaXMgYXZhaWxhYmxlIG91dCBvZiB0aGUgYm94PwoqIENvbWFuZG9zIGRlIGxhIGFnZW5kYTo6 ICAgIFJlbW90ZSBlZGl0aW5nIG9mIE9yZyB0cmVlcwoqIFZpc3RhcyBkZSBhZ2VuZGEgcGVyc29u YWxpemFkYXM6OiAgRGVmaW5pbmcgc3BlY2lhbCBzZWFyY2hlcyBhbmQgdmlld3MKCkxhcyB2aXN0 YXMgaW50ZXJuYXMgZGUgbGEgYWdlbmRhCgoKCiogQWdlbmRhIHNlbWFuYWwvZGlhcmlhOjogICAg VGhlIGNhbGVuZGFyIHBhZ2Ugd2l0aCBjdXJyZW50IHRhc2tzCiogTGlzdGEgZ2xvYmFsIFRPRE86 OiAgICAgICAgQWxsIHVuZmluaXNoZWQgYWN0aW9uIGl0ZW1zCiogQ29pbmNpZGllbmRvIG1hcmNh cyB5IHByb3BpZWRhZGVzOjogIFN0cnVjdHVyZWQgaW5mb3JtYXRpb24gd2l0aCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5lLXR1bmVkIHNlYXJjaAoqIExAJ3tA ZG90bGVzc3tpfX1uZWEgZGUgdGllbXBvOjogIFZpc3RhIG9yZGVuYWRhIGVuIGVsIHRpZW1wbyBk ZSB1biBzaW1wbGUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmNoaXZv CiogVmlzdGEgZGUgYkAndXNxdWVkYTo6ICAgICAgRW5jb250cmFuZG8gZW50cmFkYXMgYnVzY2Fu ZG8gdGV4dG8KCk1hcmNhcyBwYXJhIGVucmlxdWVjZXIgbGEgZXhwb3J0YWNpQCdvbgoKCgoqIEVs ZW1lbnRvcyBkZWwgbWFyY2FkbyBlc3RydWN0dXJhbDo6ICBUaGUgYmFzaWMgc3RydWN0dXJlIGFz IHNlZW4gYnkgdGhlIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4 cG9ydGVyCiogSW1hZ2VzIGFuZCB0YWJsZXM6OiAgICAgICAgVGFibGVzIGFuZCBJbWFnZXMgd2ls bCBiZSBpbmNsdWRlZAoqIExpdGVyYWwgZXhhbXBsZXM6OiAgICAgICAgIFNvdXJjZSBjb2RlIGV4 YW1wbGVzIHdpdGggc3BlY2lhbCBmb3JtYXR0aW5nCiogQXJjaGl2b3MgSW5jbHVkZTo6ICAgICAg ICAgSW5jbHVkZSBhZGRpdGlvbmFsIGZpbGVzIGludG8gYSBkb2N1bWVudAoqIEBMYVRlWHt9IGVt YmViaWRvOjogICAgICAgIEBMYVRlWHt9IGNhbiBiZSBmcmVlbHkgdXNlZCBpbnNpZGUgT3JnIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRzCgpFbGVtZW50b3MgZGVsIG1h cmNhZG8gZXN0cnVjdHVyYWwKCgoKKiBUQCd7QGRvdGxlc3N7aX19dHVsbyBkZSBkb2N1bWVudG86 OiAgV2hlcmUgdGhlIHRpdGxlIGlzIHRha2VuIGZyb20KKiBFbmNhYmV6YWRvcyB5IHNlY2Npb25l czo6ICBUaGUgZG9jdW1lbnQgc3RydWN0dXJlIGFzIHNlZW4gYnkgdGhlIGV4cG9ydGVyCiogVGFi bGEgZGUgY29udGVuaWRvczo6ICAgICAgVGhlIGlmIGFuZCB3aGVyZSBvZiB0aGUgdGFibGUgb2Yg Y29udGVudHMKKiBQQCdhcnJhZm9zOjogICAgICAgICAgICAgICBQQCdhcnJhZm9zCiogQCdFbmZh c2lzIHkgbW9ub2VzcGFjaW86OiAgTmVncmlsbGEsIGl0QCdhbGljYSwgZXRjLgoqIExAJ3tAZG90 bGVzc3tpfX1uZWFzIGRlIGNvbWVudGFyaW9zOjogIFF1QCdlICpubyogc2VyQCdhIGV4cG9ydGFk bwoKRXhwb3J0YW5kbwoKCgoqIE9wY2lvbmVzIGRlIGV4cG9ydGFjaUAnb246OiAgUGVyLWZpbGUg ZXhwb3J0IHNldHRpbmdzCiogRWwgZGlzcGVuc2Fkb3IgZGUgZXhwb3J0YWNpQCdvbjo6ICBIb3cg dG8gYWNjZXNzIGV4cG9ydGVyIGNvbW1hbmRzCiogRXhwb3J0YWNpQCdvbiBBU0NJSS9MYXRpbi0x L1VURi04OjogIEV4cG9ydGluZyB0byBmbGF0IGZpbGVzIHdpdGggZW5jb2RpbmcKKiBIVE1MIGV4 cG9ydDo6ICAgICAgICAgICAgICBFeHBvcnRhbmRvIGEgSFRNTAoqIEV4cG9ydGFyIEBMYVRlWHt9 IHkgUERGOjogIEV4cG9ydGFuZG8gYSBATGFUZVh7fSwgeSBwcm9jZXNhbmRvIGEgUERGCiogRXhw b3J0YXIgRG9jQm9vazo6ICAgICAgICAgRXhwb3J0YW5kbyBhIERvY0Jvb2sKKiBFeHBvcnRhciBp Q2FsZW5kYXI6OiAgICAgICAJCQoKTWlzY2VsQCdhbmVvcwoKCgoqIFRlcm1pbmFjaUAnb246OiAg ICAgICAgICAgIE0tVEFCIHNhYmUgcXVAJ2UgbmVjZXNpdGEKKiBWaXN0YSBsaW1waWE6OiAgICAg ICAgICAgICBFbGltaW5hY2lAJ29uIGRlIGxvcyBhc3RlcmlzY29zIGluaWNpYWxlcyBlbiBlbCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmUKKiBPcmcgbUAnb3ZpbDo6ICAg ICAgICAgICAgICBPcmctbW9kZSBlbiBlbCBpUGhvbmUKCkBlbmQgZGV0YWlsbWVudQpAZW5kIG1l bnUKCkBub2RlIEludHJvZHVjY2lAJ29uLCBFc3RydWN0dXJhIGRlbCBkb2N1bWVudG8sIFRvcCwg VG9wCkBjaGFwdGVyIEludHJvZHVjY2lAJ29uCgpAbWVudQoqIFByZWZhY2lvOjogICAgICAgICAg ICAgICAgIEJpZW52ZW5pZGEKKiBJbnN0YWxhY2lAJ29uOjogICAgICAgICAgICBDQCdvbW8gaW5z dGFsYXIgdW5hIHZlcnNpQCdvbiBkZXNjYXJnYWRhIGRlIE9yZwoqIEFjdGl2YWNpQCdvbjo6ICAg ICAgICAgICAgIENAJ29tbyBhY3RpdmFyIE9yZyBwYXJhIGNpZXJ0b3MgYnVmZmVycwoqIFJlYWxp bWVudGFjaUAnb246OiAgICAgICAgIEluZm9ybWVzIGRlIGVycm9yLCBpZGVhcywgcGFyY2hlcywg ZXRjLgpAZW5kIG1lbnUKCkBub2RlIFByZWZhY2lvLCBJbnN0YWxhY2lAJ29uLCBJbnRyb2R1Y2Np QCdvbiwgSW50cm9kdWNjaUAnb24KQHNlY3Rpb24gUHJlZmFjaW8KCk9yZyBlcyB1biBtb2RvIHBh cmEgZ3VhcmRhciBub3RhcywgbWFudGVuaWVuZG8gbGlzdGFzIFRPRE8gKHBvcgpoYWNlciksIHkg aGFjaWVuZG8gcGxhbmVzIGRlIHByb3llY3RvcyBjb24gdW4gckAnYXBpZG8geSBlZmVjdGl2bwpz aXN0ZW1hIGRlIHRleHRvIHBsYW5vLiBFcyBhZGVtQCdhcyB1biBzaXN0ZW1hIGRlIHB1YmxpY2Fj aUAnb24geQphdXRvckAne0Bkb3RsZXNze2l9fWEuCgpAaXtUaGlzIGRvY3VtZW50IGlzIGEgbXVj aCBjb21wcmVzc2VkIGRlcml2YXRpdmUgb2YgdGhlCkB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy9p bmRleC5odG1sI3NlYy00XzEsIGNvbXByZWhlbnNpdmUgT3JnLW1vZGUKbWFudWFsfS4gIEl0IGNv bnRhaW5zIGFsbCBiYXNpYyBmZWF0dXJlcyBhbmQgY29tbWFuZHMsIGFsb25nIHdpdGggaW1wb3J0 YW50CmhpbnRzIGZvciBjdXN0b21pemF0aW9uLiAgSXQgaXMgaW50ZW5kZWQgZm9yIGJlZ2lubmVy cyB3aG8gd291bGQgc2h5IGJhY2sKZnJvbSBhIDIwMCBwYWdlIG1hbnVhbCBiZWNhdXNlIG9mIHNo ZWVyIHNpemUufQoKQG5vZGUgSW5zdGFsYWNpQCdvbiwgQWN0aXZhY2lAJ29uLCBQcmVmYWNpbywg SW50cm9kdWNjaUAnb24KQHNlY3Rpb24gSW5zdGFsYWNpQCdvbgoKQGJ7SW1wb3J0YW50ZTp9IEBp e1NpIHNlIHVzYSB1bmEgdmVyc2lAJ29uIGRlIE9yZyBxdWUgZXMgcGFydGUgZGUgdW5hCmRpc3Ry aWJ1Y2lAJ29uIGRlIEVtYWNzIG8gdW4gcGFxdWV0ZSBkZSBYRW1hY3MsIHBvciBmYXZvciBzQCdh bHRlc2UKZXN0YSBzZWNjaUAnb24geSB2YXlhIGRpcmVjdGFtZW50ZSBhIEByZWZ7QWN0aXZhY2lA J29ufS59CgpTaSBzZSBoYSBkZXNjYXJnYWRvIE9yZyBkZSBsYSB3ZWIsIGNvbW8gZGlzdHJpYnVj aUAnb24gZGUgZmljaGVyb3MKYmllbiBAZmlsZXsuemlwfSwgbyBiaWVuIEBmaWxley50YXJ9LCBv IGNvbW8gdW4gYXJjaGl2byBHaXQsIGVzCnByZWZlcmlibGUgZWplY3V0YXJsbyBkaXJlY3RhbWVu dGUgZGVzZGUgZWwgZGlyZWN0b3JpbyBkZSBsYQpkaXN0cmlidWNpQCdvbi4gTmVjZXNpdGFyQCdh IGFAfm5hZGlyIGxvcyBzdWJkaXJlY3RvcmlvcyBAZmlsZXtsaXNwfQphbCBjYW1pbm8gZGUgY2Fy Z2EgZGUgRW1hY3MuIFBhcmEgaGFjZXIgZXN0bywgYUB+bmFkYSBsYSBzaWd1aWVudGUKbEAne0Bk b3RsZXNze2l9fW5lYSBhbCBhcmNoaXZvIEBmaWxley5lbWFjc306CgpAc21hbGxleGFtcGxlCihz ZXRxIGxvYWQtcGF0aCAoY29ucyAifi9wYXRoL3RvL29yZ2Rpci9saXNwIiBsb2FkLXBhdGgpKQoo c2V0cSBsb2FkLXBhdGggKGNvbnMgIn4vcGF0aC90by9vcmdkaXIvY29udHJpYi9saXNwIiBsb2Fk LXBhdGgpKQpAZW5kIHNtYWxsZXhhbXBsZQoKQG5vaW5kZW50IEZvciBzcGVlZCB5b3Ugc2hvdWxk IGJ5dGUtY29tcGlsZSB0aGUgTGlzcCBmaWxlcyB3aXRoIHRoZSBzaGVsbApjb21hbmRvOgoKQHNt YWxsZXhhbXBsZQptYWtlQGVuZCBzbWFsbGV4YW1wbGUKCkBub2RlIEFjdGl2YWNpQCdvbiwgUmVh bGltZW50YWNpQCdvbiwgSW5zdGFsYWNpQCdvbiwgSW50cm9kdWNjaUAnb24KQHNlY3Rpb24gQWN0 aXZhY2lAJ29uCgpBQH5uYWRhIGxhcyBzaWd1aWVudGVzIGxAJ3tAZG90bGVzc3tpfX1uZWFzIGEg c3UgYXJjaGl2bwpAZmlsZXsuZW1hY3N9LiBMYXMgQCd1bHRpbWFzIHRyZXMgbEAne0Bkb3RsZXNz e2l9fW5lYXMgZGVmaW5lbiBsYXMKY2xhdmVzIEBlbXBoe2dsb2JhbH0gZGUgYWxndW5vcyBjb21h bmRvcyAtLS1wb3IgZmF2b3IsIGVsaWphIGNsYXZlcwphcHJvcGlhZGFzIHBvciBzQCd7QGRvdGxl c3N7aX19IG1pc21vLgoKQHNtYWxsbGlzcAo7OyBUaGUgZm9sbG93aW5nIGxpbmVzIGFyZSBhbHdh eXMgbmVlZGVkLiAgQ2hvb3NlIHlvdXIgb3duIGtleXMuCihhZGQtdG8tbGlzdCAnYXV0by1tb2Rl LWFsaXN0ICcoIlxcLm9yZ1xcJyIgLiBvcmctbW9kZSkpIDsgbm90IG5lZWRlZCBzaW5jZSBFbWFj cyAyMi4yCihhZGQtaG9vayAnb3JnLW1vZGUtaG9vayAndHVybi1vbi1mb250LWxvY2spIDsgbm90 IG5lZWRlZCB3aGVuIGdsb2JhbC1mb250LWxvY2stbW9kZSBpcyBvbgooZ2xvYmFsLXNldC1rZXkg IlxDLWNsIiAnb3JnLXN0b3JlLWxpbmspCihnbG9iYWwtc2V0LWtleSAiXEMtY2EiICdvcmctYWdl bmRhKQooZ2xvYmFsLXNldC1rZXkgIlxDLWNiIiAnb3JnLWlzd2l0Y2hiKQpAZW5kIHNtYWxsbGlz cAoKQ29uIGVzdGEgY29uZmlndXJhY2lAJ29uLCB0b2RvcyBsb3MgYXJjaGl2b3MgY29uIGV4dGVu c2lAJ29uCkBzYW1wey5vcmd9IHNlckAnYW4gdHJhdGFkb3MgZW4gbW9kbyBPcmcuIAoKQG5vZGUg UmVhbGltZW50YWNpQCdvbiwgLCBBY3RpdmFjaUAnb24sIEludHJvZHVjY2lAJ29uCkBzZWN0aW9u IFJlYWxpbWVudGFjaUAnb24KClNpIGVuY3VlbnRyYSBwcm9ibGVtYXMgY29uIE9yZywgbyBzaSB0 aWVuZSBwcmVndW50YXMsIGNvbWVudGFyaW9zLCB1Cm90cmFzIGlkZWFzIGFjZXJjYSBkZSBAJ2Vs LCBwb3IgZmF2b3IgZW52aWUgdW4gY29ycmVvIGEgbGEgbGlzdGEgZGUKT3JnIEBlbWFpbHtlbWFj cy1vcmdtb2RlQEBnbnUub3JnfS4gUGFyYSBtQCdhcyBpbmZvcm1hY2lAJ29uIGRlIGNAJ29tbwpl bnZpYXIgaW5mb3JtZXMgZGUgZXJyb3IsIGxlYSBlbCBtYW51YWwgcHJpbmNpcGFsLgoKQG5vZGUg RXN0cnVjdHVyYSBkZWwgZG9jdW1lbnRvLCBUYWJsYXMsIEludHJvZHVjY2lAJ29uLCBUb3AKQGNo YXB0ZXIgRXN0cnVjdHVyYSBkZWwgZG9jdW1lbnRvCgpPcmcgZXN0QCdhIGJhc2FkbyBlbiBlbCBt b2RvIE91dGxpbmUgeSBzdW1pbmlzdHJhIGZsZXhpYmxlcyBjb21hbmRvcwpwYXJhIGVkaXRhciBs YSBlc3RydWN0dXJhIGRlIHVuIGRvY3VtZW50by4KCkBtZW51CiogT3V0bGluZXM6OiAgICAgICAg ICAgICAgICAgT3JnIGVzdEAnYSBiYXNhZG8gZW4gZWwgbW9kbyBPdXRsaW5lCiogQ2FiZWNlcmFz OjogICAgICAgICAgICAgICAgQ0Anb21vIGVzY3JpYmlyIHVuIEAnYXJib2wgZGUgY2FiZWNlcmFz IE9yZwoqIFZpc2liaWxpZGFkIGNAJ3tAZG90bGVzc3tpfX1jbGljYTo6ICBNb3N0cmFyIHkgb2N1 bHRhciwgbXV5IHNpbXBsaWZpY2FkbwoqIE1vdmltaWVudG86OiAgICAgICAgICAgICAgIFNhbHRh bmRvIGEgb3RyYXMgY2FiZWNlcmFzCiogRWRpY2lAJ29uIGRlIGVzdHJ1Y3R1cmE6OiAgQ2FtYmlh bmRvIGxhIHNlY3VlbmNpYSB5IGVsIG5pdmVsIGRlIGNhYmVjZXJhcwoqIEAnQXJib2xlcyBwb2Nv IGRlbnNvczo6ICAgIENvcnJlc3BvbmRlbmNpYXMgZW1iZWJpZGFzIGVuIGNvbnRleHRvCiogTGlz dGFzIHBsYW5hczo6ICAgICAgICAgICAgRXN0cnVjdHVyYSBhZGljaW9uYWwgY29uIHVuYSBlbnRy YWRhCiogTm90YXMgYWwgcGllOjogICAgICAgICAgICAgQ0Anb21vIGxhcyBub3RhcyBhbCBwaWUg ZXN0QCdhbiBkZWZpbmlkYXMgZW4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaW50 YXhpcyBPcmcKQGVuZCBtZW51CgpAbm9kZSBPdXRsaW5lcywgQ2FiZWNlcmFzLCBFc3RydWN0dXJh IGRlbCBkb2N1bWVudG8sIEVzdHJ1Y3R1cmEgZGVsIGRvY3VtZW50bwpAc2VjdGlvbiBPdXRsaW5l cwoKT3JnIGVzdEAnYSBpbXBsZW1lbnRhZG8gZW4gbG8gYWx0byBkZWwgbW9kbyBvdXRsaW5lLiBM b3Mgb3V0bGluZXMKKEAne0Bkb3RsZXNze2l9fXRlbXMgZGUgY29udGVuaWRvKSBwZXJtaXRlbiBh IHVuIGRvY3VtZW50byBlc3Rhcgpvcmdhbml6YWRvIGVuIHVuYSBlc3RydWN0dXJhIGplckAnYXJx dWljYSwgbG8gY3VhbCAoYWwgbWVub3MgcGFyYQptQCd7QGRvdGxlc3N7aX19KSBlcyBsYSBtZWpv ciBmb3JtYSBwYXJhIHJlcHJlc2VudGFyIG5vdGFzIHkKcGVuc2FtaWVudG9zLiBVbmEgdmlzaUAn b24gcHJlbGltaW5hciBkZSBlc3RhIGVzdHJ1Y3R1cmEgZXMgbG9ncmFkYSBhbAplbmNvZ2VyIChv Y3VsdGFuZG8pIGdyYW5kZXMgcGFydGVzIGRlbCBkb2N1bWVudG8geSBtb3N0cmFyIHNAJ29sbyBs YQplc3RydWN0dXJhIGdlbmVyYWwgZGVsIGRvY3VtZW50byB5IGxhcyBwYXJ0ZXMgZW4gbGFzIHF1 ZSBzZSBlc3RAJ2EKdHJhYmFqYW5kby4gT3JnIHNpbXBsaWZpY2EgZW5vcm1lbWVudGUgZWwgdXNv IGRlIG91dGxpbmVzIHBhcmEKY29tcHJlbmRlciBsYSBmdW5jaW9uYWxpZGFkIGNvbXBsZXRhIGRl IG1vc3RyYXIvb2N1bHRhciBlbiB1biBzaW1wbGUKY29tYW5kbywgQGNvbW1hbmR7b3JnLWN5Y2xl fSwgZWwgY3VhbCBlc3RAJ2EgYXNpZ25hZG8gYSBsYSB0ZWNsYQpAa2V5e1RBQn0uCgpAbm9kZSBD YWJlY2VyYXMsIFZpc2liaWxpZGFkIGNAJ3tAZG90bGVzc3tpfX1jbGljYSwgT3V0bGluZXMsIEVz dHJ1Y3R1cmEgZGVsIGRvY3VtZW50bwpAc2VjdGlvbiBDYWJlY2VyYXMKCkxvcyBjYWJlY2VyYXNA Zm9vdG5vdGV7Tm90YSBkZWwgVHJhZHVjdG9yLiBIZWFkbGluZXMgZXMgdHJhZHVjaWRvIHBvcgpj YWJlY2VyYSB5IGhhY2UgcmVmZXJlbmNpYSBhIHRAJ3tAZG90bGVzc3tpfX10dWxvcyB5CnN1YnRA J3tAZG90bGVzc3tpfX10dWxvc30KZGVmaW5lbiBsYSBlc3RydWN0dXJhIGRlbCBAJ2FyYm9sIGRl IHNhbmdyYWRvIChAJ3tAZG90bGVzc3tpfX10ZW1zIGRlCmNvbnRlbmlkbykuIExvcyB0QCd7QGRv dGxlc3N7aX19dHVsb3MgeSBzdWJ0QCd7QGRvdGxlc3N7aX19dHVsb3MgZW4KT3JnIGNvbWllbnph biBjb24gdW5vIG8gbUAnYXMgYXN0ZXJpc2NvcywgZW4gZWwgbWFyZ2VuCml6cXVpZXJkb0Bmb290 bm90ZXtWZWEgbGEgdmFyaWFibGUgQGNvZGV7b3JnLXNwZWNpYWwtY3J0bC1hL2V9IHBhcmEKY29u ZmlndXJhciBlbCBjb21wb3J0YW1pZW50byBkZSBAa2Jke0MtYX0geSBAa2Jke0MtZX0gZW4gbG9z CnRAJ3tAZG90bGVzc3tpfX10dWxvcy59LiBQb3IgZWplbXBsbzoKCkBzbWFsbGV4YW1wbGUKKiBU b3AgbGV2ZWwgaGVhZGxpbmUKKiogU2Vjb25kIGxldmVsCioqKiAzcmQgbGV2ZWwKICAgIHNvbWUg dGV4dAoqKiogM3JkIGxldmVsCiAgICBtb3JlIHRleHQKCiogQW5vdGhlciB0b3AgbGV2ZWwgaGVh ZGxpbmUKQGVuZCBzbWFsbGV4YW1wbGUKCkBub2luZGVudCBTb21lIHBlb3BsZSBmaW5kIHRoZSBt YW55IHN0YXJzIHRvbyBub2lzeSBhbmQgd291bGQgcHJlZmVyIGFuCm91dGxpbmUgdGhhdCBoYXMg d2hpdGVzcGFjZSBmb2xsb3dlZCBieSBhIHNpbmdsZSBzdGFyIGFzIGhlYWRsaW5lIHN0YXJ0ZXJz LgpAcmVme0NsZWFuIHZpZXd9LCBkZXNjcmliZXMgYSBzZXR1cCB0byByZWFsaXplIHRoaXMuCgpA bm9kZSBWaXNpYmlsaWRhZCBjQCd7QGRvdGxlc3N7aX19Y2xpY2EsIE1vdmltaWVudG8sIENhYmVj ZXJhcywgRXN0cnVjdHVyYSBkZWwgZG9jdW1lbnRvCkBzZWN0aW9uIFZpc2liaWxpZGFkIGNAJ3tA ZG90bGVzc3tpfX1jbGljYQoKTG9zIG91dGxpbmVzIGhhY2VuIHBvc2libGUgb2N1bHRhciBwYXJ0 ZXMgZGVsIHRleHRvIGVuIGVsIGJ1ZmZlci4gT3JnCnVzYSBzb2xvIGRvcyBjb21hbmRvcywgYXNp Z25hZG9zIGEgQGtleXtUQUJ9IHkgQGtiZHtTLUBrZXl7VEFCfX0sIHBhcmEKY2FtYmlhciBsYSB2 aXNpYmlsaWRhZCBlbiBlbCBidWZmZXIuCgpAdGFibGUgQGtiZApAaXRlbSBAa2V5e1RBQn0KQGVt cGh7U3VidHJlZSBjeWNsaW5nfTogUm90YXRlIGN1cnJlbnQgc3VidHJlZSBhbW9uZyB0aGUgc3Rh dGVzCgpAc21hbGxleGFtcGxlCiwtPiBGT0xERUQgLT4gQ0hJTERSRU4gLT4gU1VCVFJFRSAtLS4K Jy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJwpAZW5kIHNtYWxsZXhhbXBsZQoK Q3VhbmRvIGVzIGxsYW1hZG8gY29uIGVsIGFyZ3VtZW50byBwcmVmaWpvIChAa2Jke0MtdSBAa2V5 e1RBQn19KSBvIGNvbgpsYSB0ZWNsYSBkZSBkZXNwbGF6YW1pZW50byAoQGtiZHtTaGlmdH0pLCBl cyBpbnZvY2FkbyBlbCBjaWNsbyBnbG9iYWwuCgpAaXRlbSBTLUBrZXl7VEFCfSBAcnt5fSBDLXUg QGtleXtUQUJ9CkBlbXBoe0dsb2JhbCBjeWNsaW5nfTogUm90YXRlIHRoZSBlbnRpcmUgYnVmZmVy IGFtb25nIHRoZSBzdGF0ZXMKCkBzbWFsbGV4YW1wbGUKLC0+IE9WRVJWSUVXIC0+IENPTlRFTlRT IC0+IFNIT1cgQUxMIC0tLgonLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0n CkBlbmQgc21hbGxleGFtcGxlCgpAaXRlbSBDLXUgQy11IEMtdSBAa2V5e1RBQn0KTW9zdHJhciB0 b2RvLCBpbmNsdWlkb3MgbG9zIGNhbHpvbmNpbGxvcwpAZW5kIHRhYmxlCgpDdWFuZG8gRW1hY3Mg YWJyZSBwb3IgcHJpbWVyYSB2ZXogdW4gYXJjaGl2byBPcmcsIHBvbmUgZWwgZXN0YWRvCmdsb2Jh bCBhIFJFU1VNRU4gKE9WRVJWSUVXKSBwLmUuQDogc0Anb2xvIGxhcyBjYWJlY2VyYXMgZGUgbml2 ZWwKc3VwZXJpb3Igc29uIHZpc2libGVzLiBFc3RvIHB1ZWRlIHNlciBjb25maWd1cmFkbyBhIHRy YXZAJ2VzIGRlIGxhCnZhcmlhYmxlIEBjb2Rle29yZy1zdGFydHVwLWZvbGRlZH0sIG8gdkAne0Bk b3RsZXNze2l9fWEgZmljaGVybwphQH5uYWRpZW5kbyB1bmEgcGFsYWJyYSByZXNlcnZhZGEgQGNv ZGV7b3ZlcnZpZXd9LCBAY29kZXtjb250ZW50fSwKQGNvZGV7c2hvd2FsbH0sIGNvbW8gZXN0YToK CkBzbWFsbGV4YW1wbGUKIytTVEFSVFVQOiBjb250ZW50CkBlbmQgc21hbGxleGFtcGxlCgoKQG5v ZGUgTW92aW1pZW50bywgRWRpY2lAJ29uIGRlIGVzdHJ1Y3R1cmEsIFZpc2liaWxpZGFkIGNAJ3tA ZG90bGVzc3tpfX1jbGljYSwgRXN0cnVjdHVyYSBkZWwgZG9jdW1lbnRvCkBzZWN0aW9uIE1vdmlt aWVudG8KRWwgc2lndWllbnRlIGNvbWFuZG8gc2FsdGEgYSBsYSBzaWd1aWVudGUgY2FiZWNlcmEg ZW4gZWwgYnVmZmVyLgoKQHRhYmxlIEBrYmQKQGl0ZW0gQy1jIEMtbgpTaWd1aWVudGUgY2FiZWNl cmEuCkBpdGVtIEMtYyBDLXAKQ2FiZWNlcmEgcHJldmlhLgpAaXRlbSBDLWMgQy1mClNpZ3VpZW50 ZSBjYWJlY2VyYSBkZWwgbWlzbW8gbml2ZWwuCkBpdGVtIEMtYyBDLWIKQ2FiZWNlcmEgcHJldmlh IGRlbCBtaXNtbyBuaXZlbC4KQGl0ZW0gQy1jIEMtdQpSZXRyb2NlZGVyIGEgbGEgY2FiZWNlcmEg ZGUgbml2ZWwgc3VwZXJpb3IuCkBlbmQgdGFibGUKCkBub2RlIEVkaWNpQCdvbiBkZSBlc3RydWN0 dXJhLCBAJ0FyYm9sZXMgcG9jbyBkZW5zb3MsIE1vdmltaWVudG8sIEVzdHJ1Y3R1cmEgZGVsIGRv Y3VtZW50bwpAc2VjdGlvbiBFZGljaUAnb24gZGUgZXN0cnVjdHVyYQoKQHRhYmxlIEBrYmQKQGl0 ZW0gTS1Aa2V5e1JFVH0KSW5zZXJ0YSB1bmEgbnVldmEgY2FiZWNlcmEgYWwgbWlzbW8gbml2ZWwg cXVlIGxhIGFjdHVhbC4gU2kgZWwgY3Vyc29yCmVzdEAnYSBlbiB1biBpdGVtIGRlIHVuYSBsaXN0 YSBwbGFuYSwgdW4gbnVldm8gaXRlbSBlcyBjcmVhZG8KKEBweHJlZntMaXN0YXMgcGxhbmFzfSku IEN1YW5kbyBlc3RlIGNvbWFuZG8gZXMgdXNhZG8gZW4gbWVkaW8gZGUgdW5hCmxAJ3tAZG90bGVz c3tpfX1uZWEsIGxhIGxAJ3tAZG90bGVzc3tpfX1uZWEgZXMgcGFydGlkYSB5IGVsIHJlc3RvIGRl CmxhIGxAJ3tAZG90bGVzc3tpfX1uZWEgc2VyQCdhIHVuYSBudWV2YSBjYWJlY2VyYUBmb290bm90 ZXtTaSBubyBkZXNlYQpxdWUgbGEgbEAne0Bkb3RsZXNze2l9fW5lYSBzZWEgcGFydGlkYSwgcGVy c29uYWxpY2UgbGEgdmFyaWFibGUKQGNvZGV7b3JnLU0tUkVULW1heS1zcGxpdC1saW5lfS59LgpA aXRlbSBNLVMtQGtleXtSRVR9Ckluc2VydGEgdW5hIG51ZXZhIGVudHJhZGEgVE9ETyBjb24gZWwg bWlzbW8gbml2ZWwgZGUgbGEgY2FiZWNlcmEgYWN0dWFsLgpAaXRlbSBAa2V5e1RBQn0gQHJ7ZW4g bnVldmEsIGVudHJhZGEgdmFjaWF9CkVuIHVuYSBudWV2YSBlbnRyYWRhIHNpbiB0ZXh0byBhQCd1 biwgQGtleXtUQUJ9IHJvdGFyQCdhCmNAJ3tAZG90bGVzc3tpfX1jbGljYW1lbnRlIGEgdHJhdkAn ZXMgZGUgbml2ZWxlcyBzaW1pbGFyZXMuCkBpdGVtIE0tQGtleXtsZWZ0fUByey99QGtleXtyaWdo dH0KUHJvbW9jaW9uYS9kZXZhbHVhIGxhIGNhYmVjZXJhIGFjdHVhbCBlbiB1biBuaXZlbC4KQGl0 ZW0gTS1TLUBrZXl7bGVmdH1AcnsvfUBrZXl7cmlnaHR9ClByb21vY2lvbmEvZGV2YWx1YSBlbCBz dWJhcmJvbCBhY3R1YWwgZW4gdW4gbml2ZWwuCkBpdGVtIE0tUy1Aa2V5e3VwfUByey99QGtleXtk b3dufQpNdWV2ZSBlbCBzdWJhcmJvbCBhcnJpYmEvYWJham8gKGludGVyY2FtYmlhIGVudHJlIGFu dGVyaW9yL3NpZ3VpZW50ZQpzdWJhcmJvbCBkZWwgbWlzbW8gbml2ZWwpLgpAaXRlbSBDLWMgQy13 ClJlZmlsZSBlbnRyeSBvciByZWdpb24gdG8gYSBkaWZmZXJlbnQgbG9jYXRpb24uICBAeHJlZntS ZWZpbGUgYW5kIGNvcHl9LgpAaXRlbSBDLXggbiBzL3cKTGltaXRhciBsYSBtZW1vcmlhIGludGVy bWVkaWEgYWwgQCdhcmJvbCBhY3R1YWwgLyBvY3VsdEAnYW5kb2xvCkBlbmQgdGFibGUKCkN1YW5k byBlc3RvIGVzIGVuIHVuYSByZWdpQCdvbiBhY3RpdmEgKFRyYW5zaWVudCBNYXJrIG1vZGUpLCBw cm9tdWV2ZQp5IGRldmFsdWEgdG9kYXMgbGFzIGNhYmVjZXJhcyBlbiBsYSByZWdpQCdvbi4KCkBu b2RlIEAnQXJib2xlcyBwb2NvIGRlbnNvcywgTGlzdGFzIHBsYW5hcywgRWRpY2lAJ29uIGRlIGVz dHJ1Y3R1cmEsIEVzdHJ1Y3R1cmEgZGVsIGRvY3VtZW50bwpAc2VjdGlvbiBAJ0FyYm9sZXMgcG9j byBkZW5zb3MKClVuYSBpbXBvcnRhbnRlIGNhcmFjdGVyQCd7QGRvdGxlc3N7aX19c3RpY2EgZGUg T3JnLW1vZGUgZXMgc3UKcG9zaWJpbGlkYWQgcGFyYSBjb25zdHJ1aXIgQGVtcGh7QCdhcmJvbGVz IHBvY28gZGVuc29zfSBwYXJhIGxhCmluZm9ybWFjaUAnb24gc2VsZWNjaW9uYWRhIGVuIHVuIGFy Ym9sIGRlIG91dGxpbmUsIGFzQCd7QGRvdGxlc3N7aX19CnF1ZSBlbCBkb2N1bWVudG8gZW50ZXJv IGVzIG1hbmVqYWRvIGNvbW8gZXMgcG9zaWJsZSwgcGVybyBsYQppbmZvcm1hY2lAJ29uIHNlbGVj Y2lvbmFkYSBlcyBoZWNoYSB2aXNpYmxlIGNvbiBsYSBlc3RydWN0dXJhIGRlCmNhYmFjZXJhcyBk ZSBlbmNpbWFAZm9vdG5vdGV7VmVhIGFkZW1AJ2FzIGxhcyB2YXJpYWJsZXMKQGNvZGV7b3JnLXNo b3ctaGllcmFyY2h5LWFib3ZlfSwgQGNvZGV7b3JnLXNob3ctZm9sbG93aW5nLWhlYWRpbmd9LApA Y29kZXtvcmctc2hvdy1zaWJsaW5nc30geSBAY29kZXtvcmctc2hvdy1lbnRyeS1iZWxvd30gcGFy YSBjb250cm9sYXIKbG9zIGRldGFsbGVzIGRlIGNAJ29tbyBlbCBjb250ZXh0byBzZSBtdWVzdHJh IGVuIGNhZGEKY29pbmNpZGVuY2lhLn0uIEludEAnZW50ZWxvIGFob3JhIHkgdmVyQCdhIGlubWVk aWF0YW1lbnRlIGNvbW8KZnVuY2lvbmEuCgpPcmctbW9kZSBjb250aWVuZSB2YXJpb3MgY29tYW5k b3MgcGFyYSBjcmVhciBAJ2FyYm9sZXMsIHRvZG9zIGVzdG9zCmNvbWFuZG9zIHB1ZWRlbiBzZXIg YWNjZWRpZG9zIGEgdHJhdkAnZXMgZGVsIGRlc3BhY2hhZG9yOgoKQHRhYmxlIEBrYmQKQGl0ZW0g Qy1jIC8KRXN0ZSBwcm9tcHQgZXMgdW5hIGNsYXZlIGVzcGVjaWFsIHBhcmEgc2VsZWNjaW9uYXIg dW4gY29tYW5kbyBkZQpjcmVhY2lAJ29uIGRlIHVuIEAnYXJib2wgcG9jbyBkZW5zby4KQGl0ZW0g Qy1jIC8gcgpPY2N1ci4gIFByb21wdHMgZm9yIGEgcmVnZXhwIGFuZCBzaG93cyBhIHNwYXJzZSB0 cmVlIHdpdGggYWxsIG1hdGNoZXMuICBFYWNoCm1hdGNoIGlzIGFsc28gaGlnaGxpZ2h0ZWQ7IHRo ZSBoaWdobGlnaHRzIGRpc2FwcGVhciBieSBwcmVzc2luZyBAa2Jke0MtYwpDLWN9LgpAZW5kIHRh YmxlCgpPdHJvcyBjb21hbmRvcyBkZSBAJ2FyYm9sIHBvY28gZGVuc28gc2VsZWNjaW9uYW4gbGFz IGNhYmVjZXJhcyBiYXNhZGFzCmVuIGxhIHBhbGFicmEgcmVzZXJ2YWRhIFRPRE8sIGV0aXF1ZXRh cyBvIHByb3BpZWRhZGVzIHkgc2VyQCdhbiBkaXNjdXRpZG9zCnBvc3Rlcmlvcm1lbnRlIGVuIGVz dGUgbWFudWFsLgoKQG5vZGUgTGlzdGFzIHBsYW5hcywgTm90YXMgYWwgcGllLCBAJ0FyYm9sZXMg cG9jbyBkZW5zb3MsIEVzdHJ1Y3R1cmEgZGVsIGRvY3VtZW50bwpAc2VjdGlvbiBMaXN0YXMgcGxh bmFzCgpTaW4gdW5hIGVudHJhZGEgZW4gZWwgQCdhcmJvbCBkZSBvdXRsaW5lLCBsaXN0YXMgZm9y bWF0ZWFkYXMgYSBtYW5vCnB1ZWRlbiBzdW1pbmlzdHJhciB1bmEgZXN0cnVjdHVyYSBhZGljaW9u YWwuIEVsbG8gdGFtYmlAJ2VuCnByb3BvcmNpb25hIHVuYSBmb3JtYSBkZSBjcmVhciBsaXN0YXMg ZGUgY2FqYXMgZGUgY2hlcXVlbwooQHB4cmVme0NhamFzIGRlIGNoZXF1ZW99KS4gT3JnIHNvcG9y dGEgbGEgZWRpY2lAJ29uIGRlIHRhbGVzIGxpc3RhcywKeSBlbCBjb252ZXJzb3IgSFRNTCAoQHB4 cmVme0V4cG9ydGFuZG99KSBsb3MgYW5hbGl6YSB5IGZvcm1hdGVhLgoKT3JnIHBlcm1pdGUgbGlz dGFzIG9yZGVuYWRhcywgZGVzb3JkZW5hZGFzIHkgZGVzY3JpYmlybGFzLgpAaXRlbWl6ZSBAYnVs bGV0CkBpdGVtCkBlbXBoe0Rlc29yZGVuYWRhfSBsb3MgaXRlbXMgZGUgbGEgbGlzdGEgY29taWVu emFuIGNvbiBAc2FtcHstfSwKQHNhbXB7K30gbyBAc2FtcHsqfSBjb21vIG1hcmNhcy4KQGl0ZW0K QGVtcGh7T3JkZW5hZGF9IGxvcyBpdGVtcyBkZSBsYSBsaXN0YSBjb21pZW56YW4gY29uIEBzYW1w ezEufSBvCkBzYW1wezEpfS4KQGl0ZW0KQGVtcGh7RGVzY3JpcGNpQCdvbn0gbGEgbGlzdGEgdXNh IEBzYW1weyA6OiB9IHBhcmEgc2VwYXJhciBlbApAZW1waHt0QCdlcm1pbm99IGRlIGxhIGRlc2Ny aXBjaUAnb24uCkBlbmQgaXRlbWl6ZQoKTG9zIGl0ZW1zIHN1YnNpZ3VpZW50ZXMgZGUgbGEgbWlz bWEgbGlzdGEgZGViZW4gdGVuZXIgZWwgbWlzbW8Kc2FuZ3JhZG8gZW4gbGEgcHJpbWVyYSBsQCd7 QGRvdGxlc3N7aX19bmVhLiBVbiBpdGVtIHF1ZSB0ZXJtaW5lIGFudGVzCmRlIGxhIHNpZ3VpZW50 ZSBsQCd7QGRvdGxlc3N7aX19bmVhIHNlckAnYSBzYW5ncmFkbyBjb21vCmJvbGEvbkAndW1lcm8s IG8gbm8uIFVuYSBsaXN0YSB0ZXJtaW5hIGN1YW5kbyB0b2RvcyBsb3MgaXRlbXMgZXN0QCdhbgpj ZXJyYWRvcywgbyBhbnRlcyBkZSBkb3MgbEAne0Bkb3RsZXNze2l9fW5lYXMgZW4gYmxhbmNvLiBV biBlamVtcGxvOgoKQHNtYWxsZXhhbXBsZQpAZ3JvdXAKKiogTG9yZCBvZiB0aGUgUmluZ3MKICAg TXkgZmF2b3JpdGUgc2NlbmVzIGFyZSAoaW4gdGhpcyBvcmRlcikKICAgMS4gVGhlIGF0dGFjayBv ZiB0aGUgUm9oaXJyaW0KICAgMi4gRW93eW4ncyBmaWdodCB3aXRoIHRoZSB3aXRjaCBraW5nCiAg ICAgICsgdGhpcyB3YXMgYWxyZWFkeSBteSBmYXZvcml0ZSBzY2VuZSBpbiB0aGUgYm9vawogICAg ICArIEkgcmVhbGx5IGxpa2UgTWlyYW5kYSBPdHRvLgogICBJbXBvcnRhbnQgYWN0b3JzIGluIHRo aXMgZmlsbSBhcmU6CiAgIC0gQGJ7RWxpamFoIFdvb2R9IDo6IEhlIHBsYXlzIEZyb2RvCiAgIC0g QGJ7U2VhbiBBdXN0aW59IDo6IEhlIHBsYXlzIFNhbSwgRnJvZG8ncyBmcmllbmQuCkBlbmQgZ3Jv dXAKQGVuZCBzbWFsbGV4YW1wbGUKCkxvcyBzaWd1aWVudGVzIGNvbWFuZG9zIGFjdHVhbiBlbiBp dGVtcyBjdWFuZG8gZWwgY3Vyc29yIGVzdEAnYSBlbiBsYQpwcmltZXJhIGxAJ3tAZG90bGVzc3tp fX1tZWEgZGUgdW4gaXRlbSAobGEgbEAne0Bkb3RsZXNze2l9fW5lYSBjb24gbGEKYm9sYSBvIGVs IG5AJ3VtZXJvKS4gCgpAdGFibGUgQGtiZApAaXRlbSBAa2V5e1RBQn0KTG9zIGl0ZW1zIHB1ZWRl biBzZXIgbWFuZWphZG9zIGNvbW8gY2FiZWNlcmFzIGRlIG5pdmVsZXMuCkBpdGVtIE0tQGtleXtS RVR9Ckluc2VydGEgdW4gbnVldm8gaXRlbSBhbCBuaXZlbCBhY3R1YWwuIENvbiBlbCBhcmd1bWVu dG8gZGUgcHJlZmlqbywKZnVlcnphIGEgdW5hIG51ZXZhIGNhYmVjZXJhIChAcHhyZWZ7RWRpY2lA J29uIGRlIGVzdHJ1Y3R1cmF9KS4KQGl0ZW0gTS1TLUBrZXl7UkVUfQpJbnNlcnRhIHVuIG51ZXZv IGl0ZW0gY29uIHVuYSBjYWphIGRlIGNoZXF1ZW8gKEBweHJlZntDYWphcyBkZSBjaGVxdWVvfSku CkBpdGVtIE0tUy1Aa2V5e3VwfUByey99QGtleXtkb3dufQpNdWV2ZSBlbCBpdGVtIGluY2x1eWVu ZG8gbG9zIHN1Yml0ZW1zIGFycmliYS9hYmFqbyAoaW50ZXJjYW1iaWEgY29uCmVsIGl0ZW0gcHJl dmlvL3NpZ3VpZW50ZSBkZWwgbWlzbW8gc2FuZ3JhZG8uIFNpIGxhIGxpc3RhIGVzIG9yZGVuYWRh LApsYSByZW51bWVyYWNpQCdvbiBlcyBhdXRvbUAnYXRpY2EuCkBpdGVtIE0tQGtleXtsZWZ0fUBy ey99TS1Aa2V5e3JpZ2h0fQpEZWNyZW1lbnRhL2luY3JlbWVudGEgZWwgc2FuZ3JhZG8gZGVsIGl0 ZW0sIGRlamFuZG8gbG9zIGhpam9zIHN1ZWx0b3MuCkBpdGVtIE0tUy1Aa2V5e2xlZnR9QHJ7L31A a2V5e3JpZ2h0fQpEZWNyZW1lbnRhL2luY3JlbWVudGEgZWwgc2FuZ3JhZG8gZGVsIGl0ZW0uIGlu Y2x1eWVuZG8gbG9zIHN1Yml0ZW1zLgpAaXRlbSBDLWMgQy1jClNpIGVzIHVuYSBjYWphIGRlIGNo ZXF1ZW8gKEBweHJlZntDYWphcyBkZSBjaGVxdWVvfSkgZW4gdW5hCmxAJ3tAZG90bGVzc3tpfX1u ZWEgaXRlbSwgY2FtYmlhIGVsIGVzdGFkbyBkZSBsYSBjYWphIGRlCmNoZXF1ZW8uIEFkZW1AJ2Fz IHZlcmlmaWNhIGxhcyBib2xhcyB5IGVsIHNhbmdyYWRvIGNvbnNpc3RlbnRlIGVuIGxhCmxpc3Rh IGNvbXBsZXRhLgpAaXRlbSBDLWMgLQpSb3RhIGxhIGxpc3RhIGVudGVyYSBhIHRyYXZAJ2VzIGRl IGRpZmVyZW50ZXMgYm9sYXMgZGUKbnVtZXJhY2lAJ29uL21hcmNhZG8gKEBzYW1wey19LCBAc2Ft cHsrfSwgQHNhbXB7Kn0sIEBzYW1wezEufSwKQHNhbXB7MSl9KS4KQGVuZCB0YWJsZQoKQG5vZGUg Tm90YXMgYWwgcGllLCAsIExpc3RhcyBwbGFuYXMsIEVzdHJ1Y3R1cmEgZGVsIGRvY3VtZW50bwpA c2VjdGlvbiBOb3RhcyBhbCBwaWUKClVuYSBOb3RhIGFsIHBpZSBlcyBkZWZpbmlkYSBjb21vIHVu IHBAJ2FycmFmbyBxdWUgY29taWVuemEgY29uIHVuYQpub3RhIGFsIHBpZSBtYXJjYWRhIGVudHJl IGNvcmNoZXRlcyBlbiBsYSBjb2x1bW5hIDAsIHNpbiBuaW5nQCd1bgpzYW5ncmFkby4gTGEgcmVm ZXJlbmNpYSBhIGxhIG5vdGEgYWwgcGllIGVzIHNpbXBsZW1lbnRlIHVuYSBtYXJjaGEgZGUKY29y Y2hldGVzLCB0ZXh0byBpbmNsdWlkby4gUG9yIGVqZW1wbG86CgpAc21hbGxleGFtcGxlClRoZSBP cmcgaG9tZXBhZ2VbZm46MV0gbm93IGxvb2tzIGEgbG90IGJldHRlciB0aGFuIGl0IHVzZWQgdG8u Ci4uLgpbZm46MV0gVGhlIGxpbmsgaXM6IGh0dHA6Ly9vcmdtb2RlLm9yZwpAZW5kIHNtYWxsZXhh bXBsZQoKQG5vaW5kZW50IFRoZSBmb2xsb3dpbmcgY29tbWFuZHMgaGFuZGxlIGZvb3Rub3RlczoK CkB0YWJsZSBAa2JkCkBpdGVtIEMtYyBDLXggZgpUaGUgZm9vdG5vdGUgYWN0aW9uIGNvbW1hbmQu ICBXaGVuIHRoZSBjdXJzb3IgaXMgb24gYSBmb290bm90ZSByZWZlcmVuY2UsCmp1bXAgdG8gdGhl IGRlZmluaXRpb24uICBXaGVuIGl0IGlzIGF0IGEgZGVmaW5pdGlvbiwganVtcCB0byB0aGUgKGZp cnN0KQpyZWZlcmVuY2UuICBPdGhlcndpc2UsIGNyZWF0ZSBhIG5ldyBmb290bm90ZS4gIFdoZW4g dGhpcyBjb21tYW5kIGlzIGNhbGxlZAp3aXRoIGEgcHJlZml4IGFyZ3VtZW50LCBhIG1lbnUgb2Yg YWRkaXRpb25hbCBvcHRpb25zIGluY2x1ZGluZyByZW51bWJlcmluZwppcyBvZmZlcmVkLgoKQGl0 ZW0gQy1jIEMtYwpKdW1wIGJldHdlZW4gZGVmaW5pdGlvbiBhbmQgcmVmZXJlbmNlLgpAZW5kIHRh YmxlCgpAc2VlYWxzb3tAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvbWFudWFsL0RvY3VtZW50LVN0 cnVjdHVyZS5odG1sI0RvY3VtZW50LVN0cnVjdHVyZSwKQ2FwQCd7QGRvdGxlc3N7aX19dHVsbyAy IGRlbCBtYW51YWwgZGUKT3JnLW1vZGV9QCpAdXJlZntodHRwOi8vc2FjaGFjaHVhLmNvbS93cC8y MDA4LzAxL291dGxpbmluZy15b3VyLW5vdGVzLXdpdGgtb3JnLywKVHV0b3JpYWwgZGUgU2FjaGEg Q2h1YX19CgoKQG5vZGUgVGFibGFzLCBIaXBlcmVubGFjZXMsIEVzdHJ1Y3R1cmEgZGVsIGRvY3Vt ZW50bywgVG9wCkBjaGFwdGVyIFRhYmxhcwoKT3JnIGNvbWVzIHdpdGggYSBmYXN0IGFuZCBpbnR1 aXRpdmUgdGFibGUgZWRpdG9yLiAgU3ByZWFkc2hlZXQtbGlrZQpjYWxjdWxhdGlvbnMgYXJlIHN1 cHBvcnRlZCBpbiBjb25uZWN0aW9uIHdpdGggdGhlIEVtYWNzIEBmaWxle2NhbGN9IHBhY2thZ2UK QGlmaW5mbwooQHB4cmVme1RvcCxDYWxjLCxDYWxjLEdudSBFbWFjcyBDYWxjdWxhdG9yIE1hbnVh bH0pLgpAZW5kIGlmaW5mbwpAaWZub3RpbmZvCih2ZWEgZWwgbWFudWFsIGRlIEVtYWNzIENhbGN1 bGF0b3IgcGFyYSBtQCdhcyBpbmZvcm1hY2lAJ29uIHNvYnJlIGxhCmNhbGN1bGFkb3JhIGRlIEVt YWNzKS4KQGVuZCBpZm5vdGluZm8KCk9yZyBoYWNlIGZAJ2FjaWwgZm9ybWF0ZWFyIHRhYmxhcyBl biBBU0NJSSBwbGFuby4gQ3VhbHF1aWVyCmxAJ3tAZG90bGVzc3tpfX1uZWEgY29uIEBzYW1we3x9 IGNvbW8gcHJpbWVyIGNhckAnYWN0ZXIgbm8tZXNwYWNpbyBlcwpjb25zaWRlcmFkbyBwYXJ0ZSBk ZSB1bmEgdGFibGEuIEBzYW1we3x9IGVzIGFkZW1AJ2FzIGVsIHNlcGFyYWRvciBkZQpjb2x1bW5h cy4gVW5hIHRhYmxhIHB1ZWRlIHBhcmVjZXIgYWxnbyBhc0Ane0Bkb3RsZXNze2l9fToKCkBzbWFs bGV4YW1wbGUKfCBOYW1lICB8IFBob25lIHwgQWdlIHwKfC0tLS0tLS0rLS0tLS0tLSstLS0tLXwK fCBQZXRlciB8ICAxMjM0IHwgIDE3IHwKfCBBbm5hICB8ICA0MzIxIHwgIDI1IHwKQGVuZCBzbWFs bGV4YW1wbGUKClVuYSB0YWJsYSBlcyByZWFsaW5lYWRhIGF1dG9tQCdhdGljYW1lbnRlIGNhZGEg dmV6IHF1ZSBzZSBwcmVzaW9uZQpAa2V5e1RBQn0gbyBAa2V5e1JFVH0gbyBAa2Jke0MtYyBDLWN9 IGRlbnRybyBkZSBsYSB0YWJsYS4gQGtleXtUQUJ9CmFkZW1AJ2FzIG11ZXZlIGFsIHNpZ3VpZW50 ZSBjYW1wbyAoQGtleXtSRVR9IGEgbGEgc2lndWllbnRlIGZpbGEpIHkKY3JlYSB1bmEgbnVldmEg dGFibGEgZGUgZmlsYXMgYWwgZmluYWwgZGUgbGEgdGFibGEgbyBhbnRlcyBkZSBsYXMKbEAne0Bk b3RsZXNze2l9fW5lYXMgaG9yaXpvbnRhbGVzLiBFbCBzYW5ncmFkbyBkZSBsYSB0YWJsYSBlcyBw dWVzdG8KcG9yIGxhIHByaW1lcmEgbEAne0Bkb3RsZXNze2l9fW5lYS4gQ3VhbHF1aWVyIGxAJ3tA ZG90bGVzc3tpfX1uZWEKY29tZW56YW5kbyBjb24gQHNhbXB7fC19IGVzIGNvbnNpZGVyYWRhIGNv bW8gdW4gc2VwYXJhZG9yIGhvcml6b250YWwKZGUgbEAne0Bkb3RsZXNze2l9fW5lYSB5IHNlckAn YSBleHBhbmRpZG8gZW4gbGEgc2lndWllbnRlCnJlYWxpbmVhY2lAJ29uIHBhcmEgZXhwYW5kaXJz ZSBhbCBhbmNobyBjb21wbGV0byBkZSBsYQp0YWJsYS4gQXNAJ3tAZG90bGVzc3tpfX0sIHBhcmEg Y3JlYXIgdW5hIHRhYmxhIGRlbnRybywgZGViZSBzQCdvbG8KaW50cm9kdWNpciAKCkBzbWFsbGV4 YW1wbGUKfE5vbWJyZXxUZWxAJ2Vmb25vfEVkYWR8CnwtCkBlbmQgc21hbGxleGFtcGxlCgpAbm9p bmRlbnQgYW5kIHRoZW4gcHJlc3MgQGtleXtUQUJ9IHRvIGFsaWduIHRoZSB0YWJsZSBhbmQgc3Rh cnQgZmlsbGluZyBpbgpmaWVsZHMuICBFdmVuIGZhc3RlciB3b3VsZCBiZSB0byB0eXBlIEBjb2Rl e3xOYW1lfFBob25lfEFnZX0gZm9sbG93ZWQgYnkKQGtiZHtDLWMgQGtleXtSRVR9fS4KCkN1YW5k byBzZSBpbnRyb2R1Y2UgdGV4dG8gZW4gdW4gY2FtcG8sIE9yZyB0cmF0YSBAa2V5e0RFTH0sCkBr ZXl7QmFja3NwYWNlfSB5IHRvZGFzIGxhcyB0ZWNsYXMgZGUgZm9ybWEgZXNwZWNpYWwsIHBhcmEg cXVlIGxhCmluc2VyY2lAJ29uIHkgZWwgYm9ycmFkbyBldml0ZW4gZGVzcGxhemFyc2UgYSBvdHJv cyBjYW1wb3MuIFBvciB0YW50bywKY3VhbmRvIHNlIGludHJvZHVjZSBAZW1waHtpbm1lZGlhdGFt ZW50ZSBkZXNwdUAnZXMgZGUgcXVlIGVsIGN1cnNvciBzZQpoYXlhIG1vdmlkbyBkZW50cm8gZGUg dW4gbnVldm8gY2FtcG8gY29uIEBrYmR7QGtleXtUQUJ9fSwKQGtiZHtTLUBrZXl7VEFCfX0gbyBA a2Jke0BrZXl7UkVUfX19LCBlbCBjYW1wbyBlcyBhdXRvbUAnYXRpY2FtZW50ZQpwdWVzdG8gZW4g YmxhbmNvLgoKQHRhYmxlIEBrYmQKQHRzdWJoZWFkaW5ne0NyZWFjaUAnb24geSBjb252ZXJzaUAn b259CkBpdGVtIEMtYyB8CkNvbnZlcnQgdGhlIGFjdGl2ZSByZWdpb24gdG8gdGFibGUuICBJZiBl dmVyeSBsaW5lIGNvbnRhaW5zIGF0IGxlYXN0IG9uZSBUQUIKY2hhcmFjdGVyLCB0aGUgZnVuY3Rp b24gYXNzdW1lcyB0aGF0IHRoZSBtYXRlcmlhbCBpcyB0YWIgc2VwYXJhdGVkLiAgSWYKZXZlcnkg bGluZSBjb250YWlucyBhIGNvbW1hLCBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzIChDU1YpIGFyZSBh c3N1bWVkLiAgSWYKbm90LCBsaW5lcyBhcmUgc3BsaXQgYXQgd2hpdGVzcGFjZSBpbnRvIGZpZWxk cy4gIEAqIElmIHRoZXJlIGlzIG5vIGFjdGl2ZQpyZWdpb24sIHRoaXMgY29tbWFuZCBjcmVhdGVz IGFuIGVtcHR5IE9yZyB0YWJsZS4gIEJ1dCBpdCdzIGVhc2llciBqdXN0IHRvCnN0YXJ0IHR5cGlu ZywgbGlrZSBAa2Jke3xOYW1lfFBob25lfEFnZSBDLWMgQGtleXtSRVR9fS4KCkB0c3ViaGVhZGlu Z3tSZWFsaW5lYWNpQCdvbiB5IG1vdmltaWVudG99CkBpdGVtIEMtYyBDLWMKQGMKUmVhbGluZWEg bGEgdGFibGEgc2luIG1vdmVyIGVsIGN1cnNvci4KQGl0ZW0gQGtleXtUQUJ9CkBjClJlYWxpbmVh IGxhIHRhYmxhLCBzZSBtdWV2ZSBhbCBzaWd1aWVudGUgY2FtcG8uIENyZWEgdW5hIG51ZXZhIGZp bGEgc2kKZXMgbmVjZXNhcmlvLgpAaXRlbSBTLUBrZXl7VEFCfQpAYwpSZWFsaW5lYSwgbW92ZXJz ZSBhbCBjYW1wbyBhbnRlcmlvci4KQGl0ZW0gQGtleXtSRVR9ClJlYWxpbmVhIGxhIHRhYmxhIHkg c2UgbXVldmUgYWJham8gYSBsYSBzaWd1aWVudGUgZmlsYS4gQ3JlYSB1bmEgbnVldmEKZmlsYSBz aSBlcyBuZWNlc2FyaW8uCgpAdHN1YmhlYWRpbmd7RWRpY2lAJ29uIGRlIGZpbGFzIHkgY29sdW1u YXN9CkBpdGVtIE0tQGtleXtsZWZ0fQpAaXRlbXggTS1Aa2V5e3JpZ2h0fQpAYwpNdWV2ZSBlbCBj dXJzb3IgYSBsYSBjb2x1bW5hIGl6cXVpZXJkYS9kZXJlY2hhLgpAaXRlbSBNLVMtQGtleXtsZWZ0 fQpAYwpFbGltaW5hIGxhIGNvbHVtbmEgYWN0dWFsLgpAaXRlbSBNLVMtQGtleXtyaWdodH0KQGMK SW5zZXJ0YSB1bmEgbnVldmEgY29sdW1uYSBhIGxhIGl6cXVpZXJkYSBkZSBsYSBwb3NpY2lAJ29u IGRlbCBjdXJzb3IuCkBpdGVtIE0tQGtleXt1cH0KQGl0ZW14IE0tQGtleXtkb3dufQpAYwpNdWV2 ZSBsYSBhY3R1YWwgZmlsYSBhcnJpYmEvYWJham8uCkBpdGVtIE0tUy1Aa2V5e3VwfQpAYwpFbGlt aW5hIGxhIGZpbGEgbyBsQCd7QGRvdGxlc3N7aX19bmVhIGhvcml6b250YWwgYWN0dWFsLgpAaXRl bSBNLVMtQGtleXtkb3dufQpAYwpJbnNlcnRhIHVuYSBudWV2YSBmaWxhIHNvYnJlIGxhIGZpbGEg YWN0dWFsLiBDb24gcHJlZmlqbyBhcmd1bWVudG8sIGxhCmxAJ3tAZG90bGVzc3tpfX1uZWEgZXMg Y3JlYWRhIGRlYmFqbyBkZSBsYSBhY3R1YWwuCkBpdGVtIEMtYyAtCkBjCkluc2VydGEgdW5hIGxA J3tAZG90bGVzc3tpfX1uZWEgaG9yaXpvbnRhbCBiYWpvIGxhIGZpbGEgYWN0dWFsLiBDb24KcHJl ZmlqbyBhcmd1bWVudG8sIGxhIGxAJ3tAZG90bGVzc3tpfX1uZWEgZXMgY3JlYWRhIHNvYnJlIGxh CmxAJ3tAZG90bGVzc3tpfX1uZWEgYWN0dWFsLgpAaXRlbSBDLWMgQGtleXtSRVR9CkBjCkluc2Vy dGEgdW5hIGxAJ3tAZG90bGVzc3tpfX1uZWEgaG9yaXpvbnRhbCBiYWpvIGxhIGZpbGEgYWN0dWFs LCB5Cm11ZXZlIGVsIGN1cnNvciBhIGxhIGZpbGEgYmFqbyBsYSBsQCd7QGRvdGxlc3N7aX19bmVh LgpAaXRlbSBDLWMgXgpPcmRlbmEgbGFzIGxAJ3tAZG90bGVzc3tpfX1uZWFzIGRlIHVuYSB0YWJs YSBlbiB1bmEgcmVnaUAnb24uIExhCnBvc2ljaUAnb24gZGVsIHB1bnRvIGluZGljYSBsYSBjb2x1 bW5hIHVzYWRhIHBhcmEgbGEgb3JkZW5hY2lAJ29uLCB5CmVsIHJhbmdvIGRlIGxAJ3tAZG90bGVz c3tpfX1uZWFzIGVzIGVsIHJhbmdvIGVudHJlIGVsIHNlcGFyYWRvciBkZQpsQCd7QGRvdGxlc3N7 aX19bmVhcyBtQCdhcyBwckAnb3hpbW8sIG8gbGEgdGFibGEgY29tcGxldGEuCgpAZW5kIHRhYmxl CgpAc2VlYWxzb3sgQHVyZWZ7aHR0cDovL29yZ21vZGUub3JnL21hbnVhbC9UYWJsZXMuaHRtbCNU YWJsZXMsCkNhcEAne0Bkb3RsZXNze2l9fXR1bG8gMyBkZWwgbWFudWFsIGRlIE9yZyB9QCoKQHVy ZWZ7aHR0cDovL29yZ21vZGUub3JnL3dvcmcvb3JnLXR1dG9yaWFscy90YWJsZXMucGhwLCBUdXRv cmlhbCBkZQp0YWJsYXMgZGUgQmFzdGllbn1AKgpAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvd29y Zy9vcmctdHV0b3JpYWxzL29yZy1zcHJlYWRzaGVldC1pbnRyby5waHAsClR1dG9yaWFsIGRlIGhv amFzIGRlIGNAJ2FsY3VsbyBkZSBCYXN0aWVufUAqCkB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy93 b3JnL29yZy10dXRvcmlhbHMvb3JnLXBsb3QucGhwLCBUdXRvcmlhbCBkZQpnckAnYWZpY29zIGRl IEVyaWN9fQoKQG5vZGUgSGlwZXJlbmxhY2VzLCBJdGVtcyBUT0RPLCBUYWJsYXMsIFRvcApAY2hh cHRlciBIaXBlcmVubGFjZXMKCkFsIGlndWFsIHF1ZSBIVE1MLCBPcmcgcGVybWl0ZSBlbmxhY2Vz IGRlbnRybyBkZSBhcmNoaXZvcywgZW5sYWNlcwpleHRlcm5vcyBhIG90cm9zIGFyY2hpdm9zLCBh cnRAJ3tAZG90bGVzc3tpfX1jdWxvcyBkZSBVc2VuZXQsIGNvcnJlb3MKZWxlY3RyQCdvbmljb3Mg eSBtdWNobyBtQCdhcy4KCkBtZW51CiogRm9ybWF0byBkZSBlbmxhY2U6OiAgICAgICAgQ0Anb21v IGxvcyBlbmxhY2VzIHNvbiBmb3JtYXRlYWRvcyBlbiBPcmcKKiBFbmxhY2VzIGludGVybm9zOjog ICAgICAgICBFbmxhY2VzIGEgb3Ryb3MgbHVnYXJlcyBlbiBlbCBmaWNoZXJvIGFjdHVhbAoqIEVu bGFjZXMgZXh0ZXJub3M6OiAgICAgICAgIEVubGFjZXMgdGlwbyBVUkwgcGFyYSBlbCBtdW5kbwoq IE1hbmVqYW5kbyBlbmxhY2VzOjogICAgICAgIENyZWFuZG8sIGluc2VydGFuZG8geSBzaWd1aWVu ZG8KKiBEZXN0aW5vcyBlbmxhemFkb3M6OiAgICAgICBBcHVudGFuZG8gYSB1bmEgbG9jYWxpemFj aUAnb24gZW4gdW4gYXJjaGl2bwpAZW5kIG1lbnUKCkBub2RlIEZvcm1hdG8gZGUgZW5sYWNlLCBF bmxhY2VzIGludGVybm9zLCBIaXBlcmVubGFjZXMsIEhpcGVyZW5sYWNlcwpAc2VjdGlvbiBGb3Jt YXRvIGRlIGVubGFjZQoKT3JnIHJlY29ub2NlckAnYSBlbmxhY2VzIGRlIHRleHRvIHRpcG8gVVJM IHkgbG9zIGFjdGl2YXJAJ2EgY29tbwplbmxhY2VzIGVuIGxvcyBxdWUgc2UgcHVlZGUgaGFjZXIg Y2xpY2suIEVsIGZvcm1hdG8gZGUgZW5sYWNlIGdlbmVyYWwsCnNpbiBlbWJhcmdvLCBzZSB2ZSBk ZSBsYSBzaWd1aWVudGUgbWFuZXJhOgoKQHNtYWxsZXhhbXBsZQpbW2xpbmtdW2Rlc2NyaXB0aW9u XV0gICAgICAgQHJ7b3IgYWx0ZXJuYXRpdmVseX0gICAgICAgICAgIFtbbGlua11dCkBlbmQgc21h bGxleGFtcGxlCgpAbm9pbmRlbnQKT25jZSBhIGxpbmsgaW4gdGhlIGJ1ZmZlciBpcyBjb21wbGV0 ZSAoYWxsIGJyYWNrZXRzIHByZXNlbnQpLCBPcmcgd2lsbApjaGFuZ2UgdGhlIGRpc3BsYXkgc28g dGhhdCBAc2FtcHtkZXNjcmlwdGlvbn0gaXMgZGlzcGxheWVkIGluc3RlYWQgb2YKQHNhbXB7W1ts aW5rXVtkZXNjcmlwdGlvbl1dfSBhbmQgQHNhbXB7bGlua30gaXMgZGlzcGxheWVkIGluc3RlYWQg b2YKQHNhbXB7W1tsaW5rXV19LiAgVG8gZWRpdCB0aGUgaW52aXNpYmxlIEBzYW1we2xpbmt9IHBh cnQsIHVzZSBAa2Jke0MtYyBDLWx9CndpdGggdGhlIGN1cnNvciBvbiB0aGUgbGluay4KCkBub2Rl IEVubGFjZXMgaW50ZXJub3MsIEVubGFjZXMgZXh0ZXJub3MsIEZvcm1hdG8gZGUgZW5sYWNlLCBI aXBlcmVubGFjZXMKQHNlY3Rpb24gRW5sYWNlcyBpbnRlcm5vcwoKU2kgZWwgZW5sYWNlIG5vIHBh cmVjZSB1bmEgVVJMLCBwdWVkZSBzZXIgZGViaWRvIGEgcXVlIGVzIHVuIGVubGFjZQppbnRlcm5v IGVuIGVsIGZpY2hlcm8gYWN0dWFsLiBFbCBjYXNvIG1AJ2FzIGltcG9ydGFudGUgZW4gdW4gZW5s YWNlCmNvbW8gQHNhbXB7W1sjbWktaWQtcGVyc29uYWxdXX0gcXVlIGVubGF6YXJAJ2EgYSBsYSBl bnRyYWRhIGNvbiBsYQpwcm9waWVkYWQgQGNvZGV7Q1VTVE9NX0lEfSBjb21vIEBzYW1we1tbI21p LWlkLXBlcnNvbmFsXV19LgoKTGlua3Mgc3VjaCBhcyBAc2FtcHtbW015IFRhcmdldF1dfSBvciBA c2FtcHtbW015IFRhcmdldF1bRmluZCBteSB0YXJnZXRdXX0KbGVhZCB0byBhIHRleHQgc2VhcmNo IGluIHRoZSBjdXJyZW50IGZpbGUgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHRhcmdldCB3aGljaAps b29rcyBsaWtlIEBzYW1wezw8TXkgVGFyZ2V0Pj59LgoKQG5vZGUgRW5sYWNlcyBleHRlcm5vcywg TWFuZWphbmRvIGVubGFjZXMsIEVubGFjZXMgaW50ZXJub3MsIEhpcGVyZW5sYWNlcwpAc2VjdGlv biBFbmxhY2VzIGV4dGVybm9zCgpPcmcgdGllbmUgc29wb3J0ZSBwYXJhIGVubGFjZXMgYSBmaWNo ZXJvcywgc2l0aW9zIHdlYiwgbWVuc2FqZXMgZGUKY29ycmVvIGVsZWN0ckAnb25pY28geSBkZSBO ZXdzLCBlbnRyYWRhcyBkZSBiYXNlcyBkZSBkYXRvcyBCQkRCIHkKZW5sYWNlcyBhIGNvbnZlcnNh Y2lvbmVzIGRlIElSQyB5IHN1cyBsb2dzLiBFbmxhY2VzIGV4dGVybm9zIHNvbgppZGVudGlmaWNh ZG9yZXMgdGlwbyBVUkwuIEVzdG9zIGVtcGllemFuIGNvbiB1bmEgYnJldmUgY2FkZW5hIGRlCmlk ZW50aWZpY2FjaUAnb24gc2VndWlkYSBwb3IgZG9zIHB1bnRvcy4gU2luIGVzcGFjaW8gZGVzcHVA J2VzIGRlIGxvcwpkb3MgcHVudG9zLiBBcXVAJ3tAZG90bGVzc3tpfX0gc2UgcHJlc2VudGFuIGFs Z3Vub3MgZWplbXBsb3M6CgpAc21hbGxleGFtcGxlCmh0dHA6Ly93d3cuYXN0cm8udXZhLm5sL35k b21pbmlrICAgICAgICAgIEBye29uIHRoZSB3ZWJ9CmZpbGU6L2hvbWUvZG9taW5pay9pbWFnZXMv anVwaXRlci5qcGcgICAgIEBye2ZpbGUsIGFic29sdXRlIHBhdGh9Ci9ob21lL2RvbWluaWsvaW1h Z2VzL2p1cGl0ZXIuanBnICAgICAgICAgIEBye3NhbWUgYXMgYWJvdmV9CmZpbGU6cGFwZXJzL2xh c3QucGRmICAgICAgICAgICAgICAgICAgICAgIEBye2ZpbGUsIHJlbGF0aXZlIHBhdGh9CmZpbGU6 cHJvamVjdHMub3JnICAgICAgICAgICAgICAgICAgICAgICAgIEBye2Fub3RoZXIgT3JnIGZpbGV9 CmRvY3ZpZXc6cGFwZXJzL2xhc3QucGRmOjpOTk4gICAgICAgICAgICAgIEBye29wZW4gZmlsZSBp biBkb2MtdmlldyBtb2RlIGF0IHBhZ2UgTk5OfQppZDpCNzQyM0Y0RC0yRThBLTQ3MUItODgxMC1D NDBGMDc0NzE3RTkgICBAcntMaW5rIHRvIGhlYWRpbmcgYnkgSUR9Cm5ld3M6Y29tcC5lbWFjcyAg ICAgICAgICAgICAgICAgICAgICAgICAgIEBye1VzZW5ldCBsaW5rfQptYWlsdG86YWRlbnRAQGdh bGF4eS5uZXQgICAgICAgICAgICAgICAgICAgQHJ7TWFpbCBsaW5rfQp2bTpmb2xkZXIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBAcntWTSBmb2xkZXIgbGlua30Kdm06Zm9sZGVyI2lk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQHJ7Vk0gbWVzc2FnZSBsaW5rfQp3bDpmb2xk ZXIjaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAcntXQU5ERVJMVVNUIG1lc3NhZ2Ug bGlua30KbWhlOmZvbGRlciNpZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQHJ7TUgtRSBt ZXNzYWdlIGxpbmt9CnJtYWlsOmZvbGRlciNpZCAgICAgICAgICAgICAgICAgICAgICAgICAgIEBy e1JNQUlMIG1lc3NhZ2UgbGlua30KZ251czpncm91cCNpZCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQHJ7R251cyBhcnRpY2xlIGxpbmt9CmJiZGI6Ui4qU3RhbGxtYW4gICAgICAgICAgICAg ICAgICAgICAgICAgIEBye0JCREIgbGluayAod2l0aCByZWdleHApfQppcmM6L2lyYy5jb20vI2Vt YWNzL2JvYiAgICAgICAgICAgICAgICAgICBAcntJUkMgbGlua30KaW5mbzpvcmc6RXh0ZXJuYWwl MjBsaW5rcyAgICAgICAgICAgICAgICAgQHJ7SW5mbyBub2RlIGxpbmsgKHdpdGggZW5jb2RlZCBz cGFjZSl9CkBlbmQgc21hbGxleGFtcGxlCgpVbiBlbmxhY2UgZGViZSBzZXIgZW5jZXJyYWRvIGVu dHJlIGNvcmNoZXRlcyB5IHB1ZWRlIHRlbmVyIHVuIHRleHRvCmRlc2NyaXB0aXZvIHF1ZSBzZXJA J2EgbW9zdHJhZG8gZW4gdmV6IGRlIGxhIFVSTCAoQHB4cmVme0Zvcm1hdG8gZGUKZW5sYWNlfSks IHBvciBlamVtcGxvOgoKQHNtYWxsZXhhbXBsZQpbW2h0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9lbWFjcy9dW0dOVSBFbWFjc11dCkBlbmQgc21hbGxleGFtcGxlCgpAbm9pbmRlbnQKSWYgdGhl IGRlc2NyaXB0aW9uIGlzIGEgZmlsZSBuYW1lIG9yIFVSTCB0aGF0IHBvaW50cyB0byBhbiBpbWFn ZSwgSFRNTApleHBvcnQgKEBweHJlZntIVE1MIGV4cG9ydH0pIHdpbGwgaW5saW5lIHRoZSBpbWFn ZSBhcyBhIGNsaWNrYWJsZSBidXR0b24uCklmIHRoZXJlIGlzIG5vIGRlc2NyaXB0aW9uIGF0IGFs bCBhbmQgdGhlIGxpbmsgcG9pbnRzIHRvIGFuIGltYWdlLCB0aGF0CmltYWdlIHdpbGwgYmUgaW5s aW5lZCBpbnRvIHRoZSBleHBvcnRlZCBIVE1MIGZpbGUuCgpAbm9kZSBNYW5lamFuZG8gZW5sYWNl cywgRGVzdGlub3MgZW5sYXphZG9zLCBFbmxhY2VzIGV4dGVybm9zLCBIaXBlcmVubGFjZXMKQHNl Y3Rpb24gTWFuZWphbmRvIGVubGFjZXMKCk9yZyBwcm92ZWUgbUAnZXRvZG9zIHBhcmEgY3JlYXIg dW4gZW5sYWNlIGNvbiBsYSBzaW50YXhpcyBjb3JyZWN0YSwKcGFyYSBpbnNlcnRhcmxvIGVuIHVu IGZpY2hlcm8gT3JnLCB5IHBvZGVyIHNlZ3VpciBlbCBlbmxhY2UuCgpAdGFibGUgQGtiZApAaXRl bSBDLWMgbApAYwpBbG1hY2VuYSB1biBlbmxhY2UgZGVzZGUgbGEgcG9zaWNpQCdvbiBhY3R1YWwu IEAnRXN0ZSBlcyB1biBjb21hbmRvCkBlbXBoe2dsb2JhbH0gKGRlYmVzIGNyZWFyIGVsIGF0YWpv IGRlIHRlY2xhZG8gcG9yIHRAJ3tAZG90bGVzc3tpfX0KbWlzbW8pIGVsIGN1YWwgcHVlZGUgc2Vy IHVzYWRvIGVuIGN1YWxxdWllciBidWZmZXIgcGFyYSBjcmVhciB1bgplbmxhY2UuIEVsIGVubGFj ZSBzZXJAJ2EgYWxtYWNlbmFkbyBwYXJhIHBvc3RlcmlvcmVzIGluc2VyY2lvbmVzCmRlbnRybyBk ZSB1biBidWZmZXIgT3JnICh2ZXIgbUAnYXMgYWJham8pLgpAaXRlbSBDLWMgQy1sCkBjCkluc2Vy dGEgdW4gZW5sYWNlLiBFc3RvIHN1Z2llcmUgdW4gZW5sYWNlIHF1ZSBzZXJAJ2EgaW5zZXJ0YWRv IGRlbnRybwpkZWwgYnVmZmVyLiBTZSBwdWVkZSBlc2NyaWJpciB1biBlbmxhY2UsIG8gdXNhciBs YSB0ZWNsYXMgZGVsCmhpc3RvcmlhbCBAa2V5e2FycmliYX0geSBAa2V5e2FiYWpvfSBwYXJhIGFj Y2VkZXIgYSBsb3MgZW5sYWNlcwphbG1hY2VuYWRvcy4gVGFtYmlAJ2VuIHNlckAnYSBjb25zdWx0 YWRvIHBvciBsYSBwYXJ0ZSBkZSBkZXNjcmlwY2lAJ29uCmRlbCBlbmxhY2UuIEN1YW5kbyBlcyBs bGFtYWRvIGNvbiBlbCBwcmVmaWpvIEBrYmR7Qy11fSwgc2UgdXNhIGVsCmF1dG9jb21wbGV0YWRv IGRlbCBub21icmUgZGVsIGZpY2hlcm8gcGFyYSBlbmxhemFyIGEgdW4gZmljaGVyby4KQGl0ZW0g Qy1jIEMtbCBAcnsoY29uIGVsIGN1cnNvciBlbiB1biBlbmxhY2UgZXhpc3RlbnRlKX0KQGMKQ3Vh bmRvIGVsIGN1cnNvciBlc3RAJ2EgZW4gZW5sYWNlIGV4aXN0ZW50ZSwgQGtiZHtDLWMgQy1sfSBw ZXJtaXRlCmVkaXRhciBlbCBlbmxhY2UgeSBsYXMgcGFydGVzIGRlIGRlc2NyaXBjaUAnb24gZGVs IGVubGFjZS4KQGl0ZW0gQy1jIEMtbyBAcntvfSBtb3VzZS0xIEBye299IG1vdXNlLTIKQWJyZSBl bCBlbmxhY2UgZW4gZWwgcXVlIGVzdEAnYSBlbCBjdXJzb3IuCkBpdGVtIEMtYyAmCkBjClNhbHRh IGEgdW5hIHBvc2ljaUAnb24gZ3JhYmFkYS4gVW5hIHBvc2ljaUAnb24gZXMgZ3JhYmFkYSBwb3Ig bG9zCnNpZ3VpZW50ZXMgY29tYW5kb3MgZGUgZW5sYWNlcyBpbnRlcm5vcywgeSBwb3IgQGtiZHtD LWMgJX0uIFVzYW5kbwplc3RlIGNvbWFuZG8gdmFyaWFzIHZlY2VzIHNlIG11ZXZlIGEgdHJhdkAn ZXMgZGUgdW4gYW5pbGxvIGRlCnBvc2ljaW9uZXMgcHJldmlhbWVudGUgZ3JhYmFkYXMgZW4gdW5h IHN1Y2VzaUAnb24gZGlyZWN0YS4KQGVuZCB0YWJsZQoKQG5vZGUgRGVzdGlub3MgZW5sYXphZG9z LCAsIE1hbmVqYW5kbyBlbmxhY2VzLCBIaXBlcmVubGFjZXMKQHNlY3Rpb24gRGVzdGlub3MgZW5s YXphZG9zCgpMb3MgZW5sYWNlcyBkZSBmaWNoZXJvcyBwdWVkZW4gY29udGVuZXIgaW5mb3JtYWNp QCdvbiBhZGljaW9uYWwgcGFyYQpoYWNlciBxdWUgRW1hY3Mgc2FsdGUgYSB1bmEgcG9zaWNpQCdv biBwYXJ0aWN1bGFyIGVuIGVsIGZpY2hlcm8gY3VhbmRvCnNlIHNpZ3VlIHVuIGVubGFjZS4gRXN0 byBwdWVkZSBzZXIgdW4gbkAndW1lcm8gZGUgbEAne0Bkb3RsZXNze2l9fW5lYQpvIHVuYSBvcGNp QCdvbiBkZSBiQCd1c3F1ZWRhIGRlc3B1QCdlcyBkZSBkb3MgcHVudG9zIGRvYmxlcy4KCkFxdUAn e0Bkb3RsZXNze2l9fSBlc3RAJ2EgbGEgc2ludGF4aXMgZGUgbG9zIGRpZmVyZW50ZXMgY2FtaW5v cyBwYXJhCmFkanVudGFyIHVuYSBiQCd1c3F1ZWRhIGEgdW4gZW5sYWNlIGRlIGZpY2hlcm8sIGp1 bnRvIGNvbiB1bmEgZXhwbGljYWNpQCdvbjoKCkBzbWFsbGV4YW1wbGUKW1tmaWxlOn4vY29kZS9t YWluLmM6OjI1NV1dICAgICAgICAgICAgICAgICBAcntGaW5kIGxpbmUgMjU1fQpbW2ZpbGU6fi94 eC5vcmc6Ok15IFRhcmdldF1dICAgICAgICAgICAgICAgIEBye0ZpbmQgQHNhbXB7PDxNeSBUYXJn ZXQ+Pn19CltbZmlsZTp+L3h4Lm9yZzo6I215LWN1c3RvbS1pZF1dICAgICAgICAgICAgQHJ7Rmlu ZCBlbnRyeSB3aXRoIGN1c3RvbSBpZH0KQGVuZCBzbWFsbGV4YW1wbGUKCkBzZWVhbHNveyBAdXJl ZntodHRwOi8vb3JnbW9kZS5vcmcvbWFudWFsL0h5cGVybGlua3MuaHRtbCNIeXBlcmxpbmtzLApD YXBAJ3tAZG90bGVzc3tpfX10dWxvIDQgZGVsIG1hbnVhbH19CgpAbm9kZSBJdGVtcyBUT0RPLCBF dGlxdWV0YXMsIEhpcGVyZW5sYWNlcywgVG9wCkBjaGFwdGVyIEl0ZW1zIFRPRE8KCkVsIG1vZG8g T3JnIG5vIG1hbnRpZW5lIGxpc3RhcyBUT0RPICh0YXJlYXMgcG9yIGhhY2VyKSBjb21vIGRvY3Vt ZW50b3MKc2VwYXJhZG9zQGZvb3Rub3Rle0RlIGFjdWVyZG8sIHB1ZWRlIGNyZWFyIHVuIGRvY3Vt ZW50byBxdWUgY29udGVuZ2EKc29sbyBsYXJnYXMgbGlzdGFzIGRlIEAne0Bkb3RsZXNze2l9fXRl bXMgVE9ETywgcGVybyBlc3RvIG5vIHNlCnJlcXVpZXJlLn0uIEVuIHZleiBkZSBlc28sIGxvcyBA J3tAZG90bGVzc3tpfX10ZW1zIFRPRE8gc29uIHVuYSBwYXJ0ZQppbnRlZ3JhbCBkZSBsb3MgZmlj aGVyb3MgZGUgbm90YXMsIHBvcnF1ZSDCoWxvcyBAJ3tAZG90bGVzc3tpfX10ZW1zIFRPRE8Kbm9y bWFsbWVudGUgYXBhcmVjZW4gbWllbnRyYXMgdG9tYXMgbm90YXMhLiBEZSBlc3RlIG1vZG8sIGxh CmluZm9ybWFjaUAnb24gbm8gZXN0QCdhIGR1cGxpY2FkYSwgeSBlbCBjb250ZXh0byBlbnRlcm8g ZGVzZGUgZWwgcXVlCmVsIEAne0Bkb3RsZXNze2l9fXRlbSBUT0RPIGVtZXJnaUAnbyBlc3RAJ2Eg c2llbXByZSBwcmVzZW50ZS4KCkRlIGFjdWVyZG8sIGVzdGEgdEAnZWNuaWNhIHNpcnZlIHBhcmEg Z2VzdGlvbmFyIEAne0Bkb3RsZXNze2l9fXRlbXMKVE9ETyBlc3BhcmNpZG9zIGEgdHJhdkAnZXMg ZGUgdHUgZmljaGVybyBkZSBub3Rhcy4gT3JnIG1vZGUgY29tcGVuc2EKZXN0byBwcm92ZXllbmRv IG1AJ2V0b2RvcyBwYXJhIGRhcnRlIHVuYSB2aXNpQCdvbiBkZSBhbHRvIG5pdmVsIGRlCnRvZGFz IGxhcyBjb3NhcyBxdWUgdHUgdGllbmVzIHF1ZSBoYWNlci4KCkBtZW51CiogVXNhbmRvIGxvcyBl c3RhZG9zIFRPRE86OiAgUG9uaWVuZG8geSBjYW1iaWFkbyBlc3RhZG9zCiogRmx1am9zIGRlIHRy YWJham8gbXVsdGktZXN0YWRvOjogIE1AJ2FzIHF1ZSBhaG9yYSBzaS9ubwoqIFByb2Nlc28gZGUg YWNjZXNvOjogICAgICAgIEZlY2hhcyB5IG5vdGFzIHBhcmEgZWwgcHJvZ3Jlc28KKiBQcmlvcmlk YWRlczo6ICAgICAgICAgICAgICBBbGd1bmFzIGNvc2FzIHNvbiBtQCdhcyBpbXBvcnRhbnRlcyBx dWUgb3RyYXMKKiBSb21waWVuZG8gdGFyZWFzOjogICAgICAgICBQYXJ0aWVuZG8gdW5hIHRhcmVh IGVuIHBpZXphcyBtYW5lamFibGVzCiogQ2FqYXMgZGUgY2hlcXVlbzo6ICAgICAgICAgTGlzdGFz IGRlIG1hcmNhcwpAZW5kIG1lbnUKCkBub2RlIFVzYW5kbyBsb3MgZXN0YWRvcyBUT0RPLCBGbHVq b3MgZGUgdHJhYmFqbyBtdWx0aS1lc3RhZG8sIEl0ZW1zIFRPRE8sIEl0ZW1zIFRPRE8KQHNlY3Rp b24gVXNhbmRvIGxvcyBlc3RhZG9zIFRPRE8KCkN1YWxxdWllciB0QCd7QGRvdGxlc3N7aX19dHVs byBvIHN1YnRAJ3tAZG90bGVzc3tpfX10dWxvIHB1ZWRlIGxsZWdhcgphIHNlciB1biBAJ3tAZG90 bGVzc3tpfX10ZW0gVE9ETyBjdWFuZG8gZW1waWV6YSBjb24gbGEgcGFsYWJyYQpAc2FtcHtUT0RP fSwgcG9yIGVqZW1wbG86CgpAc21hbGxleGFtcGxlCioqKiBUT0RPIFdyaXRlIGxldHRlciB0byBT YW0gRm9ydHVuZQpAZW5kIHNtYWxsZXhhbXBsZQoKQG5vaW5kZW50ClRoZSBtb3N0IGltcG9ydGFu dCBjb21tYW5kcyB0byB3b3JrIHdpdGggVE9ETyBlbnRyaWVzIGFyZToKCkB0YWJsZSBAa2JkCkBp dGVtIEMtYyBDLXQKUm90YXRlIHRoZSBUT0RPIHN0YXRlIG9mIHRoZSBjdXJyZW50IGl0ZW0gYW1v bmcKCkBzbWFsbGV4YW1wbGUKLC0+ICh1bm1hcmtlZCkgLT4gVE9ETyAtPiBET05FIC0tLgonLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0nCkBlbmQgc21hbGxleGFtcGxlCgpMYSBtaXNt YSByb3RhY2lAJ29uIHB1ZWRlIHRhbWJpQCdlbiBzZXIgaGVjaGEgYGBkZSBtYW5lcmEgcmVtb3Rh JycKZGVzZGUgbG9zIGJ1ZmZlcnMgZGUgYWdlbmRhIHkgbEAne0Bkb3RsZXNze2l9fW5lYSBkZSB0 aWVtcG8gY29uIGxhCnRlY2xhIEBrYmR7dH0gKEBweHJlZntDb21hbmRvcyBkZSBsYSBhZ2VuZGF9 KS4KCkBpdGVtIFMtQGtleXtkZXJlY2hhfUByey99QGtleXtpenF1aWVyZGF9ClNlbGVjY2lvbmFy IGVsIHNpZ3VpZW50ZS9wcmVjZWRlbnRlIGVzdGFkbyBUT0RPLCBzaW1pbGFyIGEgcm90YXIuCkBp dGVtIEMtYyAvIHQKVmVyIEAne0Bkb3RsZXNze2l9fXRlbXMgVE9ETyBlbiB1biBAZW1waHtAJ2Fy Ym9sIHBvY28gZGVuc299CihAcHhyZWZ7QCdBcmJvbGVzIHBvY28gZGVuc29zfSkuIEVuY29nZSBl bCBidWZmZXIsIHBlcm8gbXVlc3RyYSB0b2Rvcwpsb3MgQCd7QGRvdGxlc3N7aX19dGVtcyB5IGxh IGplcmFycXVAJ3tAZG90bGVzc3tpfX1hIGRlCnRAJ3tAZG90bGVzc3tpfX10dWxvcyB5IHN1YnRA J3tAZG90bGVzc3tpfX10dWxvcyBwb3IgZW5jaW1hIGRlIGVsbG9zLgpAaXRlbSBDLWMgYSB0ClNo b3cgdGhlIGdsb2JhbCBUT0RPIGxpc3QuICBDb2xsZWN0cyB0aGUgVE9ETyBpdGVtcyBmcm9tIGFs bCBhZ2VuZGEgZmlsZXMKKEBweHJlZntBZ2VuZGEgVmlld3N9KSBpbnRvIGEgc2luZ2xlIGJ1ZmZl ci4gIEB4cmVme0dsb2JhbCBUT0RPIGxpc3R9LCBmb3IKbW9yZSBpbmZvcm1hdGlvbi4KQGl0ZW0g Uy1NLUBrZXl7UkVUfQpJbnNlcnRhIHVuYSBudWV2YSBlbnRyYWRhIFRPRE8gZGViYWpvIGRlbCBA J3tAZG90bGVzc3tpfX10ZW0gYWN0dWFsLgpAZW5kIHRhYmxlCgpAbm9pbmRlbnQKQ2hhbmdpbmcg YSBUT0RPIHN0YXRlIGNhbiBhbHNvIHRyaWdnZXIgdGFnIGNoYW5nZXMuICBTZWUgdGhlIGRvY3N0 cmluZyBvZgp0aGUgb3B0aW9uIEBjb2Rle29yZy10b2RvLXN0YXRlLXRhZ3MtdHJpZ2dlcnN9IGZv ciBkZXRhaWxzLgoKQG5vZGUgRmx1am9zIGRlIHRyYWJham8gbXVsdGktZXN0YWRvLCBQcm9jZXNv IGRlIGFjY2VzbywgVXNhbmRvIGxvcyBlc3RhZG9zIFRPRE8sIEl0ZW1zIFRPRE8KQHNlY3Rpb24g Rmx1am9zIGRlIHRyYWJham8gbXVsdGktZXN0YWRvCgpTZSBwdWVkZW4gdXNhciBwYWxhYnJhcyBy ZXNlcnZhZGFzIFRPRE8gcGFyYSBpbmRpY2FyIGRpZmVyZW50ZXMKZXN0YWRvcyBAZW1waHtzZWN1 ZW5jaWFsZXN9IGVuIGVsIHByb2Nlc28gZGUgdHJhYmFqbyBjb24gcmVzcGVjdG8gYSB1bgpAJ3tA ZG90bGVzc3tpfX10ZW0sIHBvciBlamVtcGxvOgoKQHNtYWxsbGlzcAooc2V0cSBvcmctdG9kby1r ZXl3b3JkcwogICcoKHNlcXVlbmNlICJUT0RPIiAiRkVFREJBQ0siICJWRVJJRlkiICJ8IiAiRE9O RSIgIkRFTEVHQVRFRCIpKSkKQGVuZCBzbWFsbGxpc3AKCkxhIGJhcnJhIHZlcnRpY2FsIHNlcGFy YSBsYXMgcGFsYWJyYXMgcmVzZXJ2YWRhcyBUT0RPIChlc3RhZG9zIHF1ZQpAZW1waHtuZWNlc2l0 YW4gYWNjaUAnb259KSBkZSBsb3MgZXN0YWRvcyBET05FIChyZWFsaXphZG9zLCBxdWUKQGVtcGh7 bm8gbmVjZXNpdGFuIG1AJ2FzIGFjY2lAJ29ufSkuIFNpIG5vIHNlIHByb3BvcmNpb25hIGxhIGJh cnJhCnNlcGFyYWRvcmEsIGVsIEAndWx0aW1vIGVzdGFkbyBlcyB1c2FkbyBjb21vIGVzdGFkbyBE T05FLiBDb24gZXN0YQpjb25maWd1cmFjaUAnb24sIGVsIGNvbWFuZG8gQGtiZHtDLWMgQy10fSBy b3RhckAnYSB1bmEgZW50cmFkYSBkZXNkZQpUT0RPIGEgRkVFREJBQ0ssIGRlc3B1QCdlcyBhIFZF UklGWSB5IGZpbmFsbWVudGUgYSBET05FIHkgREVMRUdBVEVELiAgCgpBbGd1bmFzIHZlY2VzIHNl IHB1ZWRlIHF1ZXJlciB1c2FyIGRpZmVyZW50ZXMgY29uZmlndXJhY2lvbmVzIGRlCnBhbGFicmFz IHJlc2VydmFkYXMgVE9ETyBlbiBwYXJhbGVsby4gUG9yIGVqZW1wbG8sIHNlIHB1ZWRlIHF1ZXJl cgp0ZW5lciBlbCBiQCdhc2ljbyBAY29kZXtUT0RPfS9AY29kZXtET05FfSwgcGVybyB0YW1iaUAn ZW4gdW4gZmx1am8gZGUKdHJhYmFqbyBwYXJhIGxhIGNvcnJlY2NpQCdvbiBkZSBlcnJvcmVzLCB5 IHVuIGVzdGFkbyBzZXBhcmFuZG8gZWwKZXN0YWRvIHF1ZSBpbmRpY2EgcXVlIHVuIEAne0Bkb3Rs ZXNze2l9fXRlbSBoYSBzaWRvIGNhbmNlbGFkbwooYXNAJ3tAZG90bGVzc3tpfX0gbm8gZXN0QCdh IERPTkUsIHBlcm8gdGFtcG9jbyByZXF1aWVyZSBhY2NpQCdvbikuIExhCmNvbmZpZ3VyYWNpQCdv biBzZXJAJ3tAZG90bGVzc3tpfX1hIGxhIHNpZ3VpZW50ZToKCkBzbWFsbGxpc3AKKHNldHEgb3Jn LXRvZG8ta2V5d29yZHMKICAgICAgJygoc2VxdWVuY2UgIlRPRE8odCkiICJ8IiAiRE9ORShkKSIp CiAgICAgICAgKHNlcXVlbmNlICJSRVBPUlQocikiICJCVUcoYikiICJLTk9XTkNBVVNFKGspIiAi fCIgIkZJWEVEKGYpIikKICAgICAgICAoc2VxdWVuY2UgInwiICJDQU5DRUxFRChjKSIpKSkKQGVu ZCBzbWFsbGxpc3AKCkxhcyBwYWxhYnJhcyByZXNlcnZhZGFzIHNvbiB0b2RhcyBkaWZlcmVudGVz LCBlc3RvIGF5dWRhIGEgT3JnIG1vZGUgYQpndWFyZGFyIGxhIHRyYXphIGRlIHF1ZSBzdWJzZWN1 ZW5jaWEgZGViZXJAJ3tAZG90bGVzc3tpfX1hIHNlciB1c2FkYQpwYXJhIHVuYSBlbnRyYWRhIGRh ZGEuIEVsIGVqZW1wbG8gdGFtYmlAJ2VuIG11ZXN0cmEgY0Anb21vIGRlZmluaXIKdGVjbGFzIHBh cmEgdW4gckAnYXBpZG8gYWNjZXNvIGEgdW4gZXN0YWRvIHBhcnRpY3VsYXIsIGFAfm5hZGllbmRv IHVuYQpsZXRyYSBlbnRyZSBwYXJAJ2VudGVzaXMgZGVzcHVAJ2VzIGRlIGNhZGEgcGFsYWJyYSBy ZXNlcnZhZGEgLSBzZQpwcmVndW50YXJAJ2EgcG9yIGxhIGxldHJhIGRlc3B1QCdlcyBkZSBAa2Jk e0MtYyBDLXR9LgoKUGFyYSBkZWZpbmlyIHBhbGFicmFzIHJlc2VydmFkYXMgVE9ETyBxdWUgc29u IHZAJ2FsaWRhcyBAJ3VuaWNhbWVudGUKZW4gdW4gc29sbyBmaWNoZXJvLCB1c2UgZWwgc2lndWll bnRlIHRleHRvIGVuIGN1YWxxdWllciBsdWdhciBkZWwKZmljaGVyby4KCkBzbWFsbGV4YW1wbGUK IytUT0RPOiBUT0RPKHQpIHwgRE9ORShkKQojK1RPRE86IFJFUE9SVChyKSBCVUcoYikgS05PV05D QVVTRShrKSB8IEZJWEVEKGYpCiMrVE9ETzogfCBDQU5DRUxFRChjKQpAZW5kIHNtYWxsZXhhbXBs ZQoKRGVzcHVAJ2VzIGRlIGNhbWJpYXIgdW5hIGRlIGVzdGFzIGxAJ3tAZG90bGVzc3tpfX1uZWFz LCB1c2UgQGtiZHtDLWMKQy1jfSBjb24gZWwgY3Vyc29yIHRvZGF2QCd7QGRvdGxlc3N7aX19YSBl biBsYSBsQCd7QGRvdGxlc3N7aX19bmVhCnBhcmEgcXVlIE9yZyBtb2RlIHJlY29ub3pjYSBsb3Mg Y2FtYmlvcy4KCkBub2RlIFByb2Nlc28gZGUgYWNjZXNvLCBQcmlvcmlkYWRlcywgRmx1am9zIGRl IHRyYWJham8gbXVsdGktZXN0YWRvLCBJdGVtcyBUT0RPCkBzZWN0aW9uIFByb2Nlc28gZGUgYWNj ZXNvCgpPcmcgbW9kZSBwdWVkZSBncmFiYXIgYXV0b21AJ2F0aWNhbWVudGUgdW4gdGltZXN0YW1w IHkgcG9zaWJsZW1lbnRlCnVuYSBub3RhIGN1YW5kbyBzZSBtYXJjYSB1biBAJ3tAZG90bGVzc3tp fX10ZW0gVE9ETyBjb21vIERPTkUsIEAnbwppbmNsdXNvIGNhZGEgdmV6IHF1ZSBzZSBjYW1iaWEg ZWwgZXN0YWRvIGRlIHVuIEAne0Bkb3RsZXNze2l9fXRlbQpUT0RPLiBFc3RlIHNpc3RlbWEgZXMg YWx0YW1lbnRlIGNvbmZpZ3VyYWJsZSwgbGFzIGNvbmZpZ3VyYWNpb25lcwpwdWVkZW4gc2VndWly IHVuYSBsQCdvZ2ljYSBwb3IgdGVjbGEgeSBwdWVkZW4gYWZlY3RhciBhIHVuIGZpY2hlcm8gbwpp bmNsdXNvIGEgdW4gc3ViQCdhcmJvbC4gUGFyYSBtQCdhcyBpbmZvcm1hY2lAJ29uIGRlIGNAJ29t byBmaWphcgpmZWNoYSB5IGhvcmEgZGUgdW5hIHRhcmVhcywgbGVhIEByZWZ7RXN0YWJsZWNpZW5k byB0aWVtcG8gZGUgdHJhYmFqb30uCgpAbWVudQoqIENlcnJhbmRvIGl0ZW1zOjogICAgICAgICAg IMK/Q3VhbmRvIGZ1QCdlIG1hcmNhZGEgZXN0YSBlbnRyYWRhIGEgRE9ORT8KKiBUcmF6YW5kbyBs b3MgZXN0YWRvcyBUT0RPOjogIMK/Q3VhbmRvIGNhbWJpYSBlbCBlc3RhZG8/CkBlbmQgbWVudQoK QG5vZGUgQ2VycmFuZG8gaXRlbXMsIFRyYXphbmRvIGxvcyBlc3RhZG9zIFRPRE8sIFByb2Nlc28g ZGUgYWNjZXNvLCBQcm9jZXNvIGRlIGFjY2VzbwpAdW5udW1iZXJlZHN1YnNlYyBDZXJyYW5kbyBp dGVtcwoKRWwgcmVnaXN0cm8gbUAnYXMgYkAnYXNpY28gZXMgZ3VhcmRhciBAZW1waHtjdWFuZG99 IHVuCkAne0Bkb3RsZXNze2l9fXRlbSBUT0RPIHNlIGZpbmFsaXpAJ28uIEVzdG8gc2UgbG9ncmEg Y29uQGZvb3Rub3Rle0xhCmNvcnJlc3BvbmRpZW50ZSBjb25maWd1cmFjaUAnb24gZW4gZWwgYnVm ZmVyIGVzIEBjb2RleyMrU1RBUlRVUDoKbG9nZG9uZX19LgoKQHNtYWxsbGlzcAooc2V0cSBvcmct bG9nLWRvbmUgJ3RpbWUpCkBlbmQgc21hbGxsaXNwCgpAbm9pbmRlbnQKVGhlbiBlYWNoIHRpbWUg eW91IHR1cm4gYW4gZW50cnkgZnJvbSBhIFRPRE8gKG5vdC1kb25lKSBzdGF0ZSBpbnRvIGFueSBv Zgp0aGUgRE9ORSBzdGF0ZXMsIGEgbGluZSBAc2FtcHtDTE9TRUQ6IFt0aW1lc3RhbXBdfSB3aWxs IGJlIGluc2VydGVkIGp1c3QKYWZ0ZXIgdGhlIGhlYWRsaW5lLiAgSWYgeW91IHdhbnQgdG8gcmVj b3JkIGEgbm90ZSBhbG9uZyB3aXRoIHRoZSB0aW1lc3RhbXAsCnVzZUBmb290bm90ZXtUaGUgY29y cmVzcG9uZGluZyBpbi1idWZmZXIgc2V0dGluZyBpczogQGNvZGV7IytTVEFSVFVQOgpsb2dub3Rl ZG9uZX19CgpAc21hbGxsaXNwCihzZXRxIG9yZy1sb2ctZG9uZSAnbm90ZSkKQGVuZCBzbWFsbGxp c3AKCkBub2luZGVudApZb3Ugd2lsbCB0aGVuIGJlIHByb21wdGVkIGZvciBhIG5vdGUsIGFuZCB0 aGF0IG5vdGUgd2lsbCBiZSBzdG9yZWQgYmVsb3cgdGhlCmVudHJ5IHdpdGggYSBAc2FtcHtDbG9z aW5nIE5vdGV9IGhlYWRpbmcuCgpAbm9kZSBUcmF6YW5kbyBsb3MgZXN0YWRvcyBUT0RPLCAsIENl cnJhbmRvIGl0ZW1zLCBQcm9jZXNvIGRlIGFjY2VzbwpAdW5udW1iZXJlZHN1YnNlYyBUcmF6YW5k byBsb3MgZXN0YWRvcyBUT0RPCgpTZSBwb2RyQCd7QGRvdGxlc3N7aX19YSBxdWVyZXIgZ3VhcmRh ciBsYSB0cmF6YSBkZSBjYW1iaW9zIGRlIGVzdGFkbwpUT0RPLiBTZSBwdWVkZSBvIGJpZW4gcmVn aXN0cmFyIHNvbG8gdW5hIG1hcmNhIGRlIHRpZW1wbyAodGltZXN0YW1wKSwKbyBiaWVuIHVuYSBu b3RhIGNvbiB1bmEgZXN0YW1wYSBkZSB0aWVtcG8gcGFyYSB1biBjYW1iaW8uIEVzdG9zCnJlZ2lz dHJvcyBzZXJAJ2FuIGluc2VydGFkb3MgZGVzcHVAJ2VzIGRlIGxhIGNhYmVjZXJhIGNvbW8gdW5h IGxpc3RhCmRlIEAne0Bkb3RsZXNze2l9fXRlbXMuIEN1YW5kbyBzZSB0b21hbiB1biBtb250QCdv biBkZSBub3Rhcywgc2UKcG9kckAne0Bkb3RsZXNze2l9fWEgcXVlcmVyIHRlbmVyIGxhcyBub3Rh cyBmdWVyYSBkZSBsYSB2aXN0YSBkZW50cm8KZGUgdW4gIkBpe2NhakAnb259IiAoZHJhd2VyKQpA c2VlYWxzb3tAdXJlZntodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvbWFudWFsL2h0 bWxfbm9kZS9vcmcvRHJhd2Vycy5odG1sI0RyYXdlcnMsCkRyYXdlcnMgZW4gZWwgQ2FwQCd7QGRv dGxlc3N7aX19dHVsbyAyIGRlbCBtYW51YWx9fQoKRm9yIHN0YXRlIGxvZ2dpbmcsIE9yZyBtb2Rl IGV4cGVjdHMgY29uZmlndXJhdGlvbiBvbiBhIHBlci1rZXl3b3JkIGJhc2lzLgpUaGlzIGlzIGFj aGlldmVkIGJ5IGFkZGluZyBzcGVjaWFsIG1hcmtlcnMgQHNhbXB7IX0gKGZvciBhIHRpbWVzdGFt cCkgYW5kCkBzYW1we0BAfSAoZm9yIGEgbm90ZSkgaW4gcGFyZW50aGVzZXMgYWZ0ZXIgZWFjaCBr ZXl3b3JkLiAgRm9yIGV4YW1wbGU6CkBzbWFsbGV4YW1wbGUKIytUT0RPOiBUT0RPKHQpIFdBSVQo d0BALyEpIHwgRE9ORShkISkgQ0FOQ0VMRUQoY0BAKQpAZW5kIHNtYWxsZXhhbXBsZQpAbm9pbmRl bnQKd2lsbCBkZWZpbmUgVE9ETyBrZXl3b3JkcyBhbmQgZmFzdCBhY2Nlc3Mga2V5cywgYW5kIGFs c28gcmVxdWVzdCB0aGF0IGEgdGltZQppcyByZWNvcmRlZCB3aGVuIHRoZSBlbnRyeSBpcyBzZXQg dG8gRE9ORSwgYW5kIHRoYXQgYSBub3RlIGlzIHJlY29yZGVkIHdoZW4Kc3dpdGNoaW5nIHRvIFdB SVQgb3IgQ0FOQ0VMRUQuICBUaGUgc2FtZSBzeW50YXggd29ya3MgYWxzbyB3aGVuIHNldHRpbmcK QGNvZGV7b3JnLXRvZG8ta2V5d29yZHN9LgoKQG5vZGUgUHJpb3JpZGFkZXMsIFJvbXBpZW5kbyB0 YXJlYXMsIFByb2Nlc28gZGUgYWNjZXNvLCBJdGVtcyBUT0RPCkBzZWN0aW9uIFByaW9yaWRhZGVz CgpTaSB1c2EgT3JnIG1vZGUgaW50ZW5zYW1lbnRlLCBwdWVkZSBhY2FiYXIgY29uIHN1ZmljaWVu dGVzCkAne0Bkb3RsZXNze2l9fXRlbXMgVE9ETyBxdWUgZW1waWVjZSBhIHRlbmVyIHNlbnRpZG8K cHJpb3JpemFybG9zLiBQcmlvcml6YXIgcHVlZGUgc2VyIGhlY2hvIHBvbmllbmRvIHVuYSBAZW1w aHttYXJjYSBkZQpwcmlvcmlkYWR9IGVuIGxhIGNhYmVjZXJhIGRlIHVuIEAne0Bkb3RsZXNze2l9 fXRlbSBUT0RPLCBjb21vIGVzdGEKCkBzbWFsbGV4YW1wbGUKKioqIFRPRE8gWyNBXSBXcml0ZSBs ZXR0ZXIgdG8gU2FtIEZvcnR1bmUKQGVuZCBzbWFsbGV4YW1wbGUKCkBub2luZGVudApPcmcgbW9k ZSBzdXBwb3J0cyB0aHJlZSBwcmlvcml0aWVzOiBAc2FtcHtBfSwgQHNhbXB7Qn0sIGFuZCBAc2Ft cHtDfS4KQHNhbXB7QX0gaXMgdGhlIGhpZ2hlc3QsIEBzYW1we0J9IHRoZSBkZWZhdWx0IGlmIG5v bmUgaXMgZ2l2ZW4uICBQcmlvcml0aWVzCm1ha2UgYSBkaWZmZXJlbmNlIG9ubHkgaW4gdGhlIGFn ZW5kYS4KCkB0YWJsZSBAa2JkCkBpdGVtIEBrYmR7Qy1jICx9CkBjClNldCB0aGUgcHJpb3JpdHkg b2YgdGhlIGN1cnJlbnQgaGVhZGxpbmUuICBQcmVzcyBAc2FtcHtBfSwgQHNhbXB7Qn0gb3IKQHNh bXB7Q30gdG8gc2VsZWN0IGEgcHJpb3JpdHksIG9yIEBrZXl7U1BDfSB0byByZW1vdmUgdGhlIGNv b2tpZS4KQGl0ZW0gUy1Aa2V5e3VwfQpAaXRlbXggUy1Aa2V5e2Rvd259CkluY3JlbWVudGUvZGVj cmVtZW50YSBsYSBwcmlvcmlkYWQgZGUgbGEgY2FiZWNlcmEgYWN0dWFsCkBlbmQgdGFibGUKCkBu b2RlIFJvbXBpZW5kbyB0YXJlYXMsIENhamFzIGRlIGNoZXF1ZW8sIFByaW9yaWRhZGVzLCBJdGVt cyBUT0RPCkBzZWN0aW9uIFBhcnRpZW5kbyB0YXJlYXMgZW4gc3VidGFyZWFzCgpFcyBhIG1lbnVk byB2ZW50YWpvc28gZGl2aWRpciBncmFuZGVzIHRhcmVhcyBlbiBwZXF1ZUB+bmFzIHkKbWFuZWph YmxlcyBzdWJ0YXJlYXMuIFB1ZWRlIHJlYWxpemFyIGVzdG8gY3JlYW5kbyB1biBAJ2FyYm9sIGRl Cm91dGxpbmUgYmFqbyB1biBpdGVtIFRPRE8sIGVsIGN1YWwgZGV0YWxsYSBsYXMgc3VidGFyZWFz IGVuIGVsCkAnYXJib2wuIFBhcmEgcG9uZXIgbGEgdmlzdGEgc29icmUgbGEgZnJhY2NpQCdvbiBk ZSBzdWJ0YXJlYXMgcXVlCmVzdEAnYW4geWEgY29tcGxldGFkYXMsIGluc2VydGUgdW4gQHNhbXB7 Wy9dfSBvIEBzYW1we1slXX0gZW4KY3VhbHF1aWVyIGx1Z2FyIGRlIGxhIGNhYmVjZXJhLiBFc3Rh cyBtYXJjYXMgc2VyQCdhbiBhY3R1YWxpemFkYXMgY2FkYQp2ZXogcXVlIGVsIGVzdGFkbyBUT0RP IGRlIGFsZ0AndW4gaGlqbyBjYW1iaWUsIG8gcHJlc2lvbmFuZG8gQGtiZHtDLWMKQy1jfSBlbiBs YSBtYXJjYS4gUG9yIGVqZW1wbG86CgpAc21hbGxleGFtcGxlCiogT3JnYW5pemUgUGFydHkgWzMz JV0KKiogVE9ETyBDYWxsIHBlb3BsZSBbMS8yXQoqKiogVE9ETyBQZXRlcgoqKiogRE9ORSBTYXJh aAoqKiBUT0RPIEJ1eSBmb29kCioqIERPTkUgVGFsayB0byBuZWlnaGJvcgpAZW5kIHNtYWxsZXhh bXBsZQoKQG5vZGUgQ2FqYXMgZGUgY2hlcXVlbywgLCBSb21waWVuZG8gdGFyZWFzLCBJdGVtcyBU T0RPCkBzZWN0aW9uIENhamFzIGRlIGNoZXF1ZW8KCkNhZGEgaXRlbSBlbiB1bmEgbGlzdGEgcGxh bmEgKEBweHJlZntMaXN0YXMgcGxhbmFzfSkgcHVlZGUgc2VyIHVuCmN1YWRybyBkZSBjaGVxdWVv IGNvbWVuemFuZG8gY29uIGxhIGNhZGVuYSBAc2FtcHtbXX0uIExvcyBjdWFkcm9zIGRlCmNoZXF1 ZW8gbm9zIGVzdEAnYW4gaW5jbHVpZG9zIGVuIGxhIGxpc3RhIFRPRE8gZ2xvYmFsLAphc0Ane0Bk b3RsZXNze2l9fSBhIG1lbnVkbyBlcyBwcmVmZXJpYmxlIGRpdmlkaXIgbGEgdGFyZWEgZW4gdW4K bkAndW1lcm8gcmVkdWNpZG8gZGUgcGFzb3MuCgpAc21hbGxleGFtcGxlCiogVE9ETyBPcmdhbml6 ZSBwYXJ0eSBbMS8zXQogIC0gWy1dIGNhbGwgcGVvcGxlIFsxLzJdCiAgICAtIFsgXSBQZXRlcgog ICAgLSBbWF0gU2FyYWgKICAtIFtYXSBvcmRlciBmb29kCiAgLSBbIF0gdGhpbmsgYWJvdXQgd2hh dCBtdXNpYyB0byBwbGF5CkBlbmQgc21hbGxleGFtcGxlCgpMYXMgY2FqYXMgZGUgY2hlcXVlbyBm dW5jaW9uYW4gamVyQCdhcnF1aWNhbWVudGUsIHNpIHVuIGl0ZW0gZXMgY2FqYSBkZQpjaGVxdWVv IHkgdGllbmUgaGlqb3MgcXVlIHNvbiBjYWphcyBkZSBjaGVxdWVvLCBtYXJjYW5kbyBsYXMgY2Fq YXMgZGUKY2hlcXVlbyBoaWpvcyBzZSBtYXJjYXJAJ2EgbGEgY2FqYSBkZSBjaGVxdWVvIGRlbCBw YWRyZSBwYXJhIHJlZmxlamFyCnNpIG5pbmd1bm8sIGFsZ3VubyBvIHRvZG9zIGxvcyBoaWpvcyBl c3RAJ2FuIG1hcmNhZG9zLgoKQG5vaW5kZW50IFRoZSBmb2xsb3dpbmcgY29tbWFuZHMgd29yayB3 aXRoIGNoZWNrYm94ZXM6CgpAdGFibGUgQGtiZApAaXRlbSBDLWMgQy1jCkNhbWJpYSBlbCBlc3Rh ZG8gZGUgbGEgY2FqYSBkZSBjaGVxdWVvIG8gKGNvbiBwcmVmaWpvKSBhQH5uYWRlIHVuYQpjYWph IGRlIGNoZXF1ZW8uCkBpdGVtIE0tUy1Aa2V5e1JFVH0KSW5zZXJ0IGEgbmV3IGl0ZW0gd2l0aCBh IGNoZWNrYm94LiAgVGhpcyB3b3JrcyBvbmx5IGlmIHRoZSBjdXJzb3IgaXMgYWxyZWFkeQppbiBh IHBsYWluIGxpc3QgaXRlbSAoQHB4cmVme1BsYWluIGxpc3RzfSkuCkBlbmQgdGFibGUKCkBzZWVh bHNveyBAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvbWFudWFsL1RPRE8tSXRlbXMuaHRtbCNUT0RP LUl0ZW1zLApDYXBAJ3tAZG90bGVzc3tpfX10dWxvIDUgZGVsIG1hbnVhbH1AKgpAdXJlZntodHRw Oi8vb3JnbW9kZS5vcmcvd29yZy9vcmctdHV0b3JpYWxzLwpvcmd0dXRvcmlhbF9kdG8ucGhwLCBU dXRvcmlhbCBkZSBpbnRyb2R1Y2NpQCdvbiBkZSBEYXZpZCBPJ1Rvb2xlfUAqCkB1cmVme2h0dHA6 Ly8KbWVtYmVycy5vcHR1c25ldC5jb20uYXUvfmNoYXJsZXM1Ny9HVEQvZ3RkX3dvcmtmbG93Lmh0 bWwsCkNvbmZpZ3VyYWNpQCdvbiBkZSBHVEQgZGUgQ2hhcmxlcyBDYXZlfX0KCkBub2RlIEV0aXF1 ZXRhcywgUHJvcGllZGFkZXMsIEl0ZW1zIFRPRE8sIFRvcApAY2hhcHRlciBFdGlxdWV0YXMKClVu YSBleGNlbGFudGUgZm9ybWEgZGUgbm9tYnJhciB5IGNvbnRleHR1YWxpemFyIGluZm9ybWFjaUAn b24KaW50ZXJyZWxhY2lvbmFkYSBlcyBhc2lnbmFyIEBpe2V0aXF1ZXRhc30gYSBsYXMgY2FiZWNl cmFzLiBPcmcgbW9kZQp0aWVuZSB1biBhbXBsaW8gc29wb3J0ZSBwYXJhIGV0aXF1ZXRhcy4gQGZv b3Rub3Rle05vdGEgZGVsIFRyYWR1Y3RvcjogVGFudG8KbGFiZWwgY29tbyB0YWcgc2UgdHJhZHVj ZSBjb21vIGV0aXF1ZXRhLiBFbiBnZW5lcmFsLCBsYWJlbCBzZSB1dGlsaXphCm3DoXMgY29tbyBu b21icmUgcXVlIHNlIGxlIGFzaWduYSBhIGFsZ28geSB0YWcgY29tbyBwYWxhYnJhIGNsYXZlLCBz aQpiaWVuIGFtYmFzIHN1ZWxlbiB0cmFkdWNpcnNlIGNvbW8gZXRpcXVldGEuIEFzQCd7QGRvdGxl c3N7aX19LCBoZQpkZWNpZGlkbyB0cmFkdWNpciBAaXtpbXBsZW1lbnQgbGFiZWx9IGNvbW8gbm9t YnJhciB5IEBpe3RhZ30gY29tbwpldGlxdWV0YS59CgpDYWRhIGNhYmVjZXJhIHB1ZWRlIGNvbnRl bmVyIHVuYSBsaXN0YSBkZSBldGlxdWV0YXM7IHNlIGludHJvZHVjZW4gYWwKZmluYWwgZGUgdW5h IGNhYmVjZXJhLiBMYXMgZXRpcXVldGFzIHNvbiBwYWxhYnJhcyBub3JtYWxlcyBjb250ZW5pZW5k bwpsZXRyYXMsIG7Dum1lcm9zLCBAc2FtcHtffSB5IEBzYW1we0BAfS4gTGFzIGV0aXF1ZXRhcyBk ZWJlbiBlc3RhcgpwcmVjZWRpZGFzIHkgc2VndWlkYXMgcG9yIGRvcyBwdW50b3MsIHBvciBlamVt cGxvLApAc2FtcHs6dHJhYmFqbzp9LiBFcyBwb3NpYmxlIGFzaWduYXIgdmFyaWFzIGV0aXF1ZXRh cywgY29tbyBlbgpAc2FtcHs6dHJhYmFqbzp1cmdlbnRlOn0uIExhcyBldGlxdWV0YXMgcG9yIGRl ZmVjdG8gZXN0YXJAJ2FuIGVuCm5lZ3JpbGxhIGNvbiBlbCBtaXNtbyBjb2xvciBxdWUgbGEgY2Fi ZWNlcmEuCgpAbWVudQoqIE1hcmNhIGRlIGhlcmVuY2lhOjogICAgICAgIFRhZ3MgdXNlIHRoZSB0 cmVlIHN0cnVjdHVyZSBvZiB0aGUgb3V0bGluZQoqIFBvbmllbmRvIG1hcmNhczo6ICAgICAgICAg IENAJ29tbyBhc2lnbmFyIGV0aXF1ZXRhcyBhIHVuYSBjYWJlY2VyYQoqIEJ1c2NhbmRvIG1hcmNh czo6ICAgICAgICAgIEJ1c2NhbmRvIGNvbWJpbmFjaW9uZXMgZGUgZXRpcXVldGFzCkBlbmQgbWVu dQoKQG5vZGUgTWFyY2EgZGUgaGVyZW5jaWEsIFBvbmllbmRvIG1hcmNhcywgRXRpcXVldGFzLCBF dGlxdWV0YXMKQHNlY3Rpb24gTWFyY2EgZGUgaGVyZW5jaWEKCkxhcyBAaXtldGlxdWV0YXN9IGhh Y2VuIHVzbyBkZSBsYSBlc3RydWN0dXJhIGplckAnYXJxdWljYSBkZSBsb3MKQCdhcmJvbGVzIGRl IG9yZy1tb2RlLiBTaSB1bmEgY2FiZWNlcmEgdGllbmUgdW5hIGNpZXJ0YSBldGlxdWV0YSwKdG9k YXMgbGFzIHN1YmNhYmVjZXJhcyBoZXJlZGFyQCdhbiBsYSBldGlxdWV0YSB0YW1iaUAnZW4uIFBv ciBlamVtcGxvLAplbiBsYSBsaXN0YQoKQHNtYWxsZXhhbXBsZQoqIE1lZXRpbmcgd2l0aCB0aGUg RnJlbmNoIGdyb3VwICAgICAgOndvcms6CioqIFN1bW1hcnkgYnkgRnJhbmsgICAgICAgICAgICAg ICAgICA6Ym9zczpub3RlczoKKioqIFRPRE8gUHJlcGFyZSBzbGlkZXMgZm9yIGhpbSAgICAgIDph Y3Rpb246CkBlbmQgc21hbGxleGFtcGxlCgpAbm9pbmRlbnQKdGhlIGZpbmFsIGhlYWRpbmcgd2ls bCBoYXZlIHRoZSB0YWdzIEBzYW1wezp3b3JrOn0sIEBzYW1wezpib3NzOn0sCkBzYW1wezpub3Rl czp9LCBhbmQgQHNhbXB7OmFjdGlvbjp9IGV2ZW4gdGhvdWdoIHRoZSBmaW5hbCBoZWFkaW5nIGlz IG5vdApleHBsaWNpdGx5IG1hcmtlZCB3aXRoIHRob3NlIHRhZ3MuICBZb3UgY2FuIGFsc28gc2V0 IHRhZ3MgdGhhdCBhbGwgZW50cmllcwppbiBhIGZpbGUgc2hvdWxkIGluaGVyaXQganVzdCBhcyBp ZiB0aGVzZSB0YWdzIHdlcmUgZGVmaW5lZCBpbiBhCmh5cG90aGV0aWNhbCBsZXZlbCB6ZXJvIHRo YXQgc3Vycm91bmRzIHRoZSBlbnRpcmUgZmlsZS4gIFVzZSBhIGxpbmUgbGlrZQp0aGlzQGZvb3Ru b3Rle0FzIHdpdGggYWxsIHRoZXNlIGluLWJ1ZmZlciBzZXR0aW5ncywgcHJlc3NpbmcgQGtiZHtD LWMgQy1jfQphY3RpdmF0ZXMgYW55IGNoYW5nZXMgaW4gdGhlIGxpbmUufToKCkBzbWFsbGV4YW1w bGUKIytGSUxFVEFHUzogOlBlZHJvOkplZmU6U2VjcmV0bzoKQGVuZCBzbWFsbGV4YW1wbGUKCkBu b2RlIFBvbmllbmRvIG1hcmNhcywgQnVzY2FuZG8gbWFyY2FzLCBNYXJjYSBkZSBoZXJlbmNpYSwg RXRpcXVldGFzCkBzZWN0aW9uIFBvbmllbmRvIG1hcmNhcwoKTGFzIGV0aXF1ZXRhcyBwdWVkZW4g c2ltcGxlbWVudGUgc2VyIGVzY3JpdGFzIGVuIHVuIGJ1ZmVyIGFsIGZpbmFsIGRlCnVuYSBjYWJl Y2VyYS4gRGVzcHVAJ2VzIGRlIGxvcyBkb3MgcHVudG9zLCBAa2Jke00tQGtleXtUQUJ9fQphdXRv Y29tcGxldGEgZXRpcXVldGFzLiBIYXkgdGFtYmlAJ2VuIHVuIGNvbWFuZG8gcGFyYSBpbnNlcnRh ciBldGlxdWV0YXM6CgpAdGFibGUgQGtiZApAaXRlbSBDLWMgQy1xCkVudGVyIG5ldyB0YWdzIGZv ciB0aGUgY3VycmVudCBoZWFkbGluZS4gIE9yZyBtb2RlIHdpbGwgZWl0aGVyIG9mZmVyCmNvbXBs ZXRpb24gb3IgYSBzcGVjaWFsIHNpbmdsZS1rZXkgaW50ZXJmYWNlIGZvciBzZXR0aW5nIHRhZ3Ms IHNlZSBiZWxvdy4KQWZ0ZXIgcHJlc3NpbmcgQGtleXtSRVR9LCB0aGUgdGFncyB3aWxsIGJlIGlu c2VydGVkIGFuZCBhbGlnbmVkIHRvCkBjb2Rle29yZy10YWdzLWNvbHVtbn0uICBXaGVuIGNhbGxl ZCB3aXRoIGEgQGtiZHtDLXV9IHByZWZpeCwgYWxsIHRhZ3MgaW4KdGhlIGN1cnJlbnQgYnVmZmVy IHdpbGwgYmUgYWxpZ25lZCB0byB0aGF0IGNvbHVtbiwganVzdCB0byBtYWtlIHRoaW5ncyBsb29r Cm5pY2UuCkBpdGVtIEMtYyBDLWMKQ3VhbmRvIGVsIGN1cnNvciBlc3RAJ2EgZW4gdW5hIGNhYmVj ZXJhLCBoYWNlIGxvIG1pc21vIHF1ZSBAa2Jke0MtYwpDLXF9LgpAZW5kIHRhYmxlCgpPcmcgc29w b3J0YSBpbnNlcmNpQCdvbiBkZSBldGlxdWV0YXMgYmFzYWRvIGVuIHVuYSBAZW1waHtsaXN0YSBk ZQpldGlxdWV0YXN9LiBQb3IgZGVmZWN0byBlc3RhIGxpc3RhIGVzIGNvbnN0cnVpZGEgZGluQCdh bWljYW1lbnRlLApjb250ZW5pZW5kbyB0b2RhcyBsYXMgZXRpcXVldGFzIGFjdHVhbG1lbnRlIHVz YWRhcyBlbiBlbApidWZmZXIuIFRhbWJpQCdlbiBzZSBwdWVkZSBlc3BlY2lmaWNhciBnbG9iYWxt ZW50ZSB1bmEgbGlzdGEgZHVyYSBkZQpldGlxdWV0YXMgY29uIGxhIHZhcmlhYmxlIEBjb2Rle29y Zy10YWctYWxpc3R9LiBGaW5hbG1lbnRlIHNlIHB1ZWRlCmFzaWduYXIgbGFzIGV0aXF1ZXRhcyBw b3IgZGVmZWN0byBwYXJhIHVuIGZpY2hlcm8gZGFkbyBjb24KbEAne0Bkb3RsZXNze2l9fW5lYXMg Y29tbwoKQHNtYWxsZXhhbXBsZQojK1RBR1M6IEBAd29yayBAQGhvbWUgQEB0ZW5uaXNjbHViCiMr VEFHUzogbGFwdG9wIGNhciBwYyBzYWlsYm9hdApAZW5kIHNtYWxsZXhhbXBsZQoKUG9yIGRlZmVj dG8sIE9yZyBtb2RlIHVzYSBsYXMgZmFjaWxpZGFkZXMgZGUgY29tcGxlY2lAJ29uIGRlbAptaW5p YnVmZmVyIHBhcmEgaW50cm9kdWNpciBldGlxdWV0YXMuIFNpbiBlbWJhcmdvLCB0YW1iaUAnZW4K aW1wbGVtZW50YSBvdHJvIHJAJ2FwaWRvIG1AJ2V0b2RvIGRlIHNlbGVjY2lAJ29uIGRlIGV0aXF1 ZXRhcyBsbGFtYWRvCkBlbXBoe2Zhc3QgdGFnIHNlbGVjdGlvbn0uIEVzdGUgcGVybWl0ZSBxdWUg dHUgc2VsZWNjaW9uZXMgeQpkZWplcyBkZSBzZWxlY2Npb25hciBldGlxdWV0YXMgY29uIHNvbG8g cHJlc2lvbmFyIHVuYSBzb2xhIHRlY2xhLiBQYXJhCnF1ZSBlc3RvIGZ1bmNpb25lIGJpZW4gc2Ug ZGViZSBhc2lnbmFyIGxldHJhcyBAJ3VuaWNhcyBwYXJhIGxhcwpldGlxdWV0YXMgbUAnYXMgdXNh ZGFzLiBTZSBwdWVkZSBoYWNlciBlc3RvIGRlIG1hbmVyYSBnbG9iYWwKY29uZmlndXJhbmRvIGxh IHZhcmlhYmxlIEBjb2Rle29yZy10YWctYWxpc3R9IGVuIGVsIGZpY2hlcm8KQGZpbGV7LmVtYWNz fS4gUG9yIGVqZW1wbG8sIHNlIHB1ZWRlIGVuY29udHJhciBsYSBuZWNlc2lkYWQgZGUKZXRpcXVl dGFyIG11Y2hvcyBAJ3tAZG90bGVzc3tpfX10ZW1zIGVuIGRpZmVyZW50ZXMgZmljaGVyb3MgY29u CkBzYW1wezpAQGNhc2E6fS4gRW4gZXN0ZSBjYXNvIHNlIHB1ZWRlIGhhY2VyIGFsZ28gY29tbzoK CkBzbWFsbGxpc3AKKHNldHEgb3JnLXRhZy1hbGlzdCAnKCgiQEB3b3JrIiAuID93KSAoIkBAaG9t ZSIgLiA/aCkgKCJsYXB0b3AiIC4gP2wpKSkKQGVuZCBzbWFsbGxpc3AKCkBub2luZGVudCBJZiB0 aGUgdGFnIGlzIG9ubHkgcmVsZXZhbnQgdG8gdGhlIGZpbGUgeW91IGFyZSB3b3JraW5nIG9uLCB0 aGVuIHlvdQpvIGJpZW4gZXN0YWJsZWNlciBlbiBsYSBsQCd7QGRvdGxlc3N7aX19bmVhIFRBR1Mg dW5hIG9wY2lAJ29uIGNvbW86CgpAc21hbGxleGFtcGxlCiMrVEFHUzogQEB0cmFiYWpvKHQpICBA QGNhc2EoYykgIEBAZnV0Ym9sKGYpICBzZXJ2aWRvcihzKSAgcGMocCkKQGVuZCBzbWFsbGV4YW1w bGUKCkBub2RlIEJ1c2NhbmRvIG1hcmNhcywgLCBQb25pZW5kbyBtYXJjYXMsIEV0aXF1ZXRhcwpA c2VjdGlvbiBCdXNjYW5kbyBtYXJjYXMKClVuYSB2ZXogcXVlIHVuIHNpc3RlbWEgZGUgZXRpcXVl dGFzIGhhIHNpZG8gY29uZmlndXJhZG8sIHB1ZWRlIHNlcgp1c2FkbyBwYXJhIHJlY29nZXIgaW5m b3JtYWNpQCdvbiBkZW50cm8gZGUgbGlzdGFzIGVzcGVjaWFsZXMuCgpAdGFibGUgQGtiZApAaXRl bSBDLWMgXApAaXRlbXggQy1jIC8gbQpDcmVhciB1biBAJ2FyYm9sIGV4cGFuZGlkbyBjb24gdG9k YXMgbGFzIGNhYmVjZXJhcyBjb2luY2lkZW50ZXMgY29uIGxhCmV0aXF1ZXRhICh0YWcpIGJ1c2Nh ZGEuIENvbiBlbCBwcmVmaWpvIEBrYmR7Qy11fSwgaWdub3JhIGxhcyBjYWJlY2VyYXMKcXVlIG5v IHNvbiBUT0RPLgpAaXRlbSBDLWMgYSBtCkNyZWEgdW5hIGxpc3RhIGdsb2JhbCBkZSBtYXJjYXMg Y29pbmNpZGVudGVzIGRlIHRvZG9zIGxvcyBhcmNoaXZvcyBkZSBsYQphZ2VuZGEuIEB4cmVme0Nv aW5jaWRpZW5kbyBtYXJjYXMgeSBwcm9waWVkYWRlc30uCkBpdGVtIEMtYyBhIE0KQ3JlYXRlIGEg Z2xvYmFsIGxpc3Qgb2YgdGFnIG1hdGNoZXMgZnJvbSBhbGwgYWdlbmRhIGZpbGVzLCBidXQgY2hl Y2sgb25seQpUT0RPIGl0ZW1zIGFuZCBmb3JjZSBjaGVja2luZyBzdWJpdGVtcyAoc2VlIHZhcmlh YmxlCkBjb2Rle29yZy10YWdzLW1hdGNoLWxpc3Qtc3VibGV2ZWxzfSkuCkBlbmQgdGFibGUKCkVz dG9zIGNvbWFuZG9zIGJ1c2NhbiBjb2luY2lkZW5jaWFzIGRlIGNhZGVuYXMgcXVlIHBlcm1pdGVu IHVuYQpsQCdvZ2ljYSBiQCdhc2ljYSBjb21vIEBzYW1weytqZWZlK3VyZ2VudGUtcHJveWVjdG8x fSwgcGFyYSBlbmNvbnRyYXIKZW50cmFkYXMgY29uIG1hcmNhcyBAc2FtcHtqZWZlfSB5IEBzYW1w e3VyZ2VudGV9LCBwZXJvIHNpbgpAc2FtcHtwcm95ZWN0bzF9LCBvIEBzYW1we0pvc0AnZXxKdWFu fSBwYXJhIGVuY29udHJhciBhbWJhcyBlbnRyYWRhcywKdGFudG8gQHNhbXB7Sm9zQCdlfSBjb21v IEBzYW1we0p1YW59LiBMYSBzaW50QCdheGlzIGNvbXBsZXRhIGRlIGxhcwpjYWRlbmFzIGRlIGJA J3VzcXVlZGEgZXMgcmljYSB5IHBlcm1pdGUgYWRlbUAnYXMgY29pbmNpZGVuY2lhcyBjb24KdG9k YXMgbGFzIHBhbGFicmFzIGNsYXZlIFRPRE8sIGVudHJhZGFzIGRlIG5pdmVsIHkgcHJvcGllZGFk ZXMuIFBhcmEKdW5hIGNvbXBsZXRhIGRlc2NyaXBjaUAnb24gY29uIG11Y2hvcyBlamVtcGxvcywg dmVhIEByZWZ7Q29pbmNpZGllbmRvIG1hcmNhcwp5IHByb3BpZWRhZGVzfS4KCkBzZWVhbHNveyBA dXJlZntodHRwOi8vb3JnbW9kZS5vcmcvbWFudWFsL1RhZ3MuaHRtbCNUYWdzLApDYXBAJ3tAZG90 bGVzc3tpfX10dWxvIDYgZGVsIG1hbnVhbH1AKgpAdXJlZntodHRwOi8vc2FjaGFjaHVhLmNvbS93 cC8yMDA4LzAxL3RhZ2dpbmctaW4tb3JnLXBsdXMtYm9udXMtY29kZS1mb3ItdGltZWNsb2Nrcy1h bmQtdGFncy8sCmFydEAne0Bkb3RsZXNze2l9fWN1bG8gZGUgU2FjaGEgQ2h1YSBhY2VyY2EgZGUg ZXRpcXVldGFkbyBlbiBPcmctbW9kZX19CgpAbm9kZSBQcm9waWVkYWRlcywgRmVjaGFzIHkgaG9y YXMsIEV0aXF1ZXRhcywgVG9wCkBjaGFwdGVyIFByb3BpZWRhZGVzCgpMYXMgcHJvcGllZGFkZXMg c29uIHBhcmVzIGNsYXZlIHZhbG9yIGFzb2NpYWRvcyBjb24gdW5hIGVudHJhZGEuIEVzdG9zCnNl IGVuY3VlbnRyYW4gZW4gdW4gbHVnYXIgZXNwZWNpYWwgY29uIGVsIG5vbWJyZQpAY29kZXtQUk9Q RVJUSUVTfS4gQ2FkYSBwcm9waWVkYWQgc2UgZXNwZWNpZmljYSBlbiB1bmEKbEAne0Bkb3RsZXNz e2l9fW5lYSBzaW1wbGUsIGNvbiBsYSBjbGF2ZSAocm9kZWFkYSBwb3IgZG9zIHB1bnRvcykKcHJp bWVybywgeSBlbCB2YWxvciBkZXNwdUAnZXMgZGUgQCdlc3RhLgoKQHNtYWxsZXhhbXBsZQoqIENE IGNvbGxlY3Rpb24KKiogQ2xhc3NpYwoqKiogR29sZGJlcmcgVmFyaWF0aW9ucwogICAgOlBST1BF UlRJRVM6CiAgICA6VGl0bGU6ICAgICBHb2xkYmVyZyBWYXJpYXRpb25zCiAgICA6Q29tcG9zZXI6 ICBKLlMuIEJhY2gKICAgIDpQdWJsaXNoZXI6IERldXRzY2hlIEdyYW1tb3Bob24KICAgIDpORGlz a3M6ICAgIDEKICAgIDpFTkQ6CkBlbmQgc21hbGxleGFtcGxlCgpTZSBwdWVkZW4gZGVmaW5pciBs b3MgdmFsb3JlcyBwZXJtaXRpZG9zIHBhcmEgdW5hIHByb3BpZWRhZCBwYXJ0aWN1bGFyCkBzYW1w ezpYeXo6fSBhc2lnbmFuZG8gdW4gcHJvcGllZGFkIEBzYW1wezpYeXpfQUxMOn0uIEVzdGEgcHJv cGllZGFkCmVzcGVjaWFsIGVzIEBlbXBoe2hlcmVkYWRhfSwgYXNAJ3tAZG90bGVzc3tpfX0gc2kg c2UgYXNpZ25hIGVuIHVuYQplbnRyYWRhIGRlIG5pdmVsIDEsIHNlIGFwbGljYXJAJ2EgYWwgQCdh cmJvbCBlbnRlcm8uIEN1YW5kbyBsb3MKdmFsb3JlcyBwZXJtaXRpZG9zIGVzdEAnYW4gZGVmaW5p ZG9zLCBhc2lnbmFyIGxhIHByb3BpZWRhZApjb3JyZXNwb25kaWVudGUgbGxlZ2EgYSBzZXIgZkAn YWNpbCB5IGVzIG1lbm9zIHByb3BlbnNhIGEKZXJyb3Jlcy4gUGFyYSBlbCBlamVtcGxvIGRlIGxh IGNvbGVjY2lAJ29uIGRlIENEcywgc2UgcHVlZGVuCnByZWRlZmluaXIgbGFzIGRpc2NvZ3JAJ2Fm aWNhcyB5IGVsIG5AJ3VtZXJvIGRlIGRpc2NvcyBlbiB1bmEgY2FqYQpjb21vIGVzdGE6CgpAc21h bGxleGFtcGxlCiogQ0QgY29sbGVjdGlvbgogIDpQUk9QRVJUSUVTOgogIDpORGlza3NfQUxMOiAg MSAyIDMgNAogIDpQdWJsaXNoZXJfQUxMOiAiRGV1dHNjaGUgR3JhbW1vcGhvbiIgUGhpbGlwcyBF TUkKICA6RU5EOgpAZW5kIHNtYWxsZXhhbXBsZQpvIGdsb2JhbG1lbnRlIHVzYW5kbyBAY29kZXtv cmctZ2xvYmFsLXByb3BlcnRpZXN9LCBvIHVuIGZpY2hlcm8gYW1wbGlvCmNvbW8gZXN0ZToKQHNt YWxsZXhhbXBsZQojK1BST1BFUlRZOiBEaXNjb3NfQUxMIDEgMiAzIDQKQGVuZCBzbWFsbGV4YW1w bGUKCkB0YWJsZSBAa2JkCkBpdGVtIEMtYyBDLXggcApBc2lnbmEgdW5hIHByb3BpZWRhZC4gU2Ug c29saWNpdGFyQCdhIHVuIG5vbWJyZSB5IHVuIHZhbG9yIHBhcmEgbGEKcHJvcGllZGFkLgpAaXRl bSBDLWMgQy1jIGQKRWxpbWluYSB1bmEgcHJvcGllZGFkIGRlIGxhIGVudHJhZGEgYWN0dWFsLgpA ZW5kIHRhYmxlCgpQYXJhIGNyZWFyIEAnYXJib2xlcyBleHBhbmRpZG9zIHkgbGlzdGFzIGVzcGVj aWFsZXMgY29uIHNlbGVjY2lAJ29uCmJhc2FkYSBlbiBwcm9waWVkYWRlcywgbG9zIG1pc21vcyBj b21hbmRvcyBzb24gdXNhZG9zIHBhcmEgYnVzY2FyCm1hcmNhcyAoQHB4cmVme0J1c2NhbmRvIG1h cmNhc30pLiBMYSBzaW50YXhpcyBjb21wbGV0YSBwYXJhIGxhCmJAJ3VzcXVlZGEgZGUgY2FkZW5h cyBlcyBkZXNjcml0YSBlbiBAcmVme0NvaW5jaWRpZW5kbyBtYXJjYXMgeQpwcm9waWVkYWRlc30u CgpAdGFibGUgQGtiZApAZW5kIHRhYmxlCgpAc2VlYWxzb3sKQHVyZWZ7aHR0cDovL29yZ21vZGUu b3JnL21hbnVhbC9Qcm9wZXJ0aWVzLWFuZC1Db2x1bW5zLmh0bWwjUHJvcGVydGllcy1hbmQtQ29s dW1ucywKQ2hhcHRlciA3IG9mIHRoZSBtYW51YWx9QCoKQHVyZWZ7aHR0cDovL29yZ21vZGUub3Jn L3dvcmcvb3JnLXR1dG9yaWFscy9vcmctY29sdW1uLXZpZXctdHV0b3JpYWwucGhwLEJhc3RpZW4K R3VlcnJ5J3MgY29sdW1uIHZpZXcgdHV0b3JpYWx9fQoKQG5vZGUgRmVjaGFzIHkgaG9yYXMsIENh cHR1cmUgLSBSZWZpbGUgLSBBcmNoaXZlLCBQcm9waWVkYWRlcywgVG9wCkBjaGFwdGVyIEZlY2hh cyB5IGhvcmFzCgpUbyBhc3Npc3QgcHJvamVjdCBwbGFubmluZywgVE9ETyBpdGVtcyBjYW4gYmUg bGFiZWxlZCB3aXRoIGEgZGF0ZSBhbmQvb3IgYQp0aW1lLiAgVGhlIHNwZWNpYWxseSBmb3JtYXR0 ZWQgc3RyaW5nIGNhcnJ5aW5nIHRoZSBkYXRlIGFuZCB0aW1lIGluZm9ybWF0aW9uCmlzIGNhbGxl ZCBhIEBlbXBoe3RpbWVzdGFtcH0gaW4gT3JnIG1vZGUuCgpAbWVudQoqIEluc3RhbnRlIGVuIGVs IHRpZW1wbzo6ICAgIEFzaWduYWNpQCdvbiBkZSB0aWVtcG8gYSB1bmEgZW50cmFkYSBkZSBAJ2Fy Ym9sCiogQ3JlYW5kbyBpbnN0YW50ZXMgZGUgdGllbXBvOjogIENvbWFuZG9zIHBhcmEgaW5zZXJ0 YXIgaW5zdGFudGVzIGRlIHRpZW1wbwoqIEZlY2hhIGxAJ3tAZG90bGVzc3tpfX1taXRlIHkgcGxh bmlmaWNhY2lAJ29uOjogIFBsYW5pZmljYW5kbyB0dSB0cmFiYWpvCiogRXN0YWJsZWNpZW5kbyB0 aWVtcG8gZGUgdHJhYmFqbzo6ICBMbGV2YW5kbyBsYSBjdWVudGEgZGUgY3VhbnRvIHNlIGdhc3Rh IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbiB1bmEgdGFyZWEKQGVu ZCBtZW51CgoKQG5vZGUgSW5zdGFudGUgZW4gZWwgdGllbXBvLCBDcmVhbmRvIGluc3RhbnRlcyBk ZSB0aWVtcG8sIEZlY2hhcyB5IGhvcmFzLCBGZWNoYXMgeSBob3JhcwpAc2VjdGlvbiBJbnN0YW50 ZSBlbiBlbCB0aWVtcG8KCkEgdGltZXN0YW1wIGlzIGEgc3BlY2lmaWNhdGlvbiBvZiBhIGRhdGUg KHBvc3NpYmx5IHdpdGggYSB0aW1lIG9yIGEgcmFuZ2Ugb2YKdGltZXMpIGluIGEgc3BlY2lhbCBm b3JtYXQsIGVpdGhlciBAc2FtcHs8MjAwMy0wOS0xNiBUdWU+fSBvcgpAc2FtcHs8MjAwMy0wOS0x NiBUdWUgMDk6Mzk+fSBvciBAc2FtcHs8MjAwMy0wOS0xNiBUdWUgMTI6MDAtMTI6MzA+fS4gIEEK dGltZXN0YW1wIGNhbiBhcHBlYXIgYW55d2hlcmUgaW4gdGhlIGhlYWRsaW5lIG9yIGJvZHkgb2Yg YW4gT3JnIHRyZWUgZW50cnkuCkl0cyBwcmVzZW5jZSBjYXVzZXMgZW50cmllcyB0byBiZSBzaG93 biBvbiBzcGVjaWZpYyBkYXRlcyBpbiB0aGUgYWdlbmRhCihAcHhyZWZ7V2Vla2x5L2RhaWx5IGFn ZW5kYX0pLiAgV2UgZGlzdGluZ3Vpc2g6CgpAbm9pbmRlbnQgQGJ7UGxhaW4gdGltZXN0YW1wOyBF dmVudDsgQXBwb2ludG1lbnR9QCoKQSBzaW1wbGUgdGltZXN0YW1wIGp1c3QgYXNzaWducyBhIGRh dGUvdGltZSB0byBhbiBpdGVtLiAgVGhpcyBpcyBqdXN0IGxpa2UKd3JpdGluZyBkb3duIGFuIGFw cG9pbnRtZW50IG9yIGV2ZW50IGluIGEgcGFwZXIgYWdlbmRhLgoKQHNtYWxsZXhhbXBsZQoqIE1l ZXQgUGV0ZXIgYXQgdGhlIG1vdmllcwogIDwyMDA2LTExLTAxIFdlZCAxOToxNT4KKiBEaXNjdXNz aW9uIG9uIGNsaW1hdGUgY2hhbmdlCiAgPDIwMDYtMTEtMDIgVGh1IDIwOjAwLTIyOjAwPgpAZW5k IHNtYWxsZXhhbXBsZQoKQG5vaW5kZW50IEBie1RpbWVzdGFtcCB3aXRoIHJlcGVhdGVyIGludGVy dmFsfUAqCkEgdGltZXN0YW1wIG1heSBjb250YWluIGEgQGVtcGh7cmVwZWF0ZXIgaW50ZXJ2YWx9 LCBpbmRpY2F0aW5nIHRoYXQgaXQKYXBwbGllcyBub3Qgb25seSBvbiB0aGUgZ2l2ZW4gZGF0ZSwg YnV0IGFnYWluIGFuZCBhZ2FpbiBhZnRlciBhIGNlcnRhaW4KaW50ZXJ2YWwgb2YgTiBkYXlzIChk KSwgd2Vla3MgKHcpLCBtb250aHMgKG0pLCBvciB5ZWFycyAoeSkuICBUaGUgZm9sbG93aW5nCndp bGwgc2hvdyB1cCBpbiB0aGUgYWdlbmRhIGV2ZXJ5IFdlZG5lc2RheToKQHNtYWxsZXhhbXBsZQoq IFBpY2sgdXAgU2FtIGF0IHNjaG9vbAogIDwyMDA3LTA1LTE2IFdlZCAxMjozMCArMXc+CkBlbmQg c21hbGxleGFtcGxlCgpAbm9pbmRlbnQgQGJ7RGlhcnktc3R5bGUgc2V4cCBlbnRyaWVzfUAqCkZv ciBtb3JlIGNvbXBsZXggZGF0ZSBzcGVjaWZpY2F0aW9ucywgT3JnIG1vZGUgc3VwcG9ydHMgdXNp bmcgdGhlIHNwZWNpYWwKc2V4cCBkaWFyeSBlbnRyaWVzIGltcGxlbWVudGVkIGluIHRoZSBFbWFj cyBjYWxlbmRhci9kaWFyeSBwYWNrYWdlLiAgRm9yCmV4YW1wbGUKQHNtYWxsZXhhbXBsZQoqIFRo ZSBuZXJkIG1lZXRpbmcgb24gZXZlcnkgMm5kIFRodXJzZGF5IG9mIHRoZSBtb250aAogIDwlJShk aWFyeS1mbG9hdCB0IDQgMik+CkBlbmQgc21hbGxleGFtcGxlCgpAbm9pbmRlbnQgQGJ7VGltZS9E YXRlIHJhbmdlfUAqClR3byB0aW1lc3RhbXBzIGNvbm5lY3RlZCBieSBAc2FtcHstLX0gZGVub3Rl IGEgcmFuZ2UuCkBzbWFsbGV4YW1wbGUKKiogTWVldGluZyBpbiBBbXN0ZXJkYW0KICAgPDIwMDQt MDgtMjMgTW9uPi0tPDIwMDQtMDgtMjYgVGh1PgpAZW5kIHNtYWxsZXhhbXBsZQoKQG5vaW5kZW50 IEBie0luYWN0aXZlIHRpbWVzdGFtcH1AKgpKdXN0IGxpa2UgYSBwbGFpbiB0aW1lc3RhbXAsIGJ1 dCB3aXRoIHNxdWFyZSBicmFja2V0cyBpbnN0ZWFkIG9mIGFuZ3VsYXIKb25lcy4gIFRoZXNlIHRp bWVzdGFtcHMgYXJlIGluYWN0aXZlIGluIHRoZSBzZW5zZSB0aGF0IHRoZXkgZG8gQGVtcGh7bm90 fQp0cmlnZ2VyIGFuIGVudHJ5IHRvIHNob3cgdXAgaW4gdGhlIGFnZW5kYS4KCkBzbWFsbGV4YW1w bGUKKiBHaWxsaWFuIGNvbWVzIGxhdGUgZm9yIHRoZSBmaWZ0aCB0aW1lCiAgWzIwMDYtMTEtMDEg V2VkXQpAZW5kIHNtYWxsZXhhbXBsZQoKCkBub2RlIENyZWFuZG8gaW5zdGFudGVzIGRlIHRpZW1w bywgRmVjaGEgbEAne0Bkb3RsZXNze2l9fW1pdGUgeSBwbGFuaWZpY2FjaUAnb24sIEluc3RhbnRl IGVuIGVsIHRpZW1wbywgRmVjaGFzIHkgaG9yYXMKQHNlY3Rpb24gQ3JlYW5kbyBpbnN0YW50ZXMg ZGUgdGllbXBvCgpGb3IgT3JnIG1vZGUgdG8gcmVjb2duaXplIHRpbWVzdGFtcHMsIHRoZXkgbmVl ZCB0byBiZSBpbiB0aGUgc3BlY2lmaWMKZm9ybWF0LiAgQWxsIGNvbW1hbmRzIGxpc3RlZCBiZWxv dyBwcm9kdWNlIHRpbWVzdGFtcHMgaW4gdGhlIGNvcnJlY3QgZm9ybWF0LgoKQHRhYmxlIEBrYmQK QGl0ZW0gQy1jIC4KQGMKUHJvbXB0IGZvciBhIGRhdGUgYW5kIGluc2VydCBhIGNvcnJlc3BvbmRp bmcgdGltZXN0YW1wLiAgV2hlbiB0aGUgY3Vyc29yIGlzCmF0IGFuIGV4aXN0aW5nIHRpbWVzdGFt cCBpbiB0aGUgYnVmZmVyLCB0aGUgY29tbWFuZCBpcyB1c2VkIHRvIG1vZGlmeSB0aGlzCnRpbWVz dGFtcCBpbnN0ZWFkIG9mIGluc2VydGluZyBhIG5ldyBvbmUuICBXaGVuIHRoaXMgY29tbWFuZCBp cyB1c2VkIHR3aWNlCmluIHN1Y2Nlc3Npb24sIGEgdGltZSByYW5nZSBpcyBpbnNlcnRlZC4gIFdp dGggYSBwcmVmaXgsIGFsc28gYWRkIHRoZQpjdXJyZW50IHRpbWUuIApAaXRlbSBDLWMgIQpAYwpM aWtlIEBrYmR7Qy1jIC59LCBidXQgaW5zZXJ0IGFuIGluYWN0aXZlIHRpbWVzdGFtcCB0aGF0IHdp bGwgbm90IGNhdXNlIGFuCmFnZW5kYSBlbnRyeS4KQGl0ZW0gUy1Aa2V5e2xlZnR9QHJ7L31Aa2V5 e3JpZ2h0fQpAYwpDaGFuZ2UgZGF0ZSBhdCBjdXJzb3IgYnkgb25lIGRheS4KQGl0ZW0gUy1Aa2V5 e3VwfUByey99QGtleXtkb3dufQpDaGFuZ2UgdGhlIGl0ZW0gdW5kZXIgdGhlIGN1cnNvciBpbiBh IHRpbWVzdGFtcC4gIFRoZSBjdXJzb3IgY2FuIGJlIG9uIGEKeWVhciwgbW9udGgsIGRheSwgaG91 ciBvciBtaW51dGUuICBXaGVuIHRoZSB0aW1lc3RhbXAgY29udGFpbnMgYSB0aW1lIHJhbmdlCmxp a2UgQHNhbXB7MTU6MzAtMTY6MzB9LCBtb2RpZnlpbmcgdGhlIGZpcnN0IHRpbWUgd2lsbCBhbHNv IHNoaWZ0IHRoZQpzZWNvbmQsIHNoaWZ0aW5nIHRoZSB0aW1lIGJsb2NrIHdpdGggY29uc3RhbnQg bGVuZ3RoLiAgVG8gY2hhbmdlIHRoZSBsZW5ndGgsCm1vZGlmeSB0aGUgc2Vjb25kIHRpbWUuCkBl bmQgdGFibGUKCldoZW4gT3JnIG1vZGUgcHJvbXB0cyBmb3IgYSBkYXRlL3RpbWUsIGl0IHdpbGwg YWNjZXB0IGFueSBzdHJpbmcgY29udGFpbmluZwpzb21lIGRhdGUgYW5kL29yIHRpbWUgaW5mb3Jt YXRpb24sIGFuZCBpbnRlbGxpZ2VudGx5IGludGVycHJldCB0aGUgc3RyaW5nLApkZXJpdmluZyBk ZWZhdWx0cyBmb3IgdW5zcGVjaWZpZWQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY3VycmVudCBkYXRl IGFuZAp0aW1lLiAgWW91IGNhbiBhbHNvIHNlbGVjdCBhIGRhdGUgaW4gdGhlIHBvcC11cCBjYWxl bmRhci4gIFNlZSB0aGUgbWFudWFsCmZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvdyBleGFjdGx5 IHRoZSBkYXRlL3RpbWUgcHJvbXB0IHdvcmtzLgoKQG5vZGUgRmVjaGEgbEAne0Bkb3RsZXNze2l9 fW1pdGUgeSBwbGFuaWZpY2FjaUAnb24sIEVzdGFibGVjaWVuZG8gdGllbXBvIGRlIHRyYWJham8s IENyZWFuZG8gaW5zdGFudGVzIGRlIHRpZW1wbywgRmVjaGFzIHkgaG9yYXMKQHNlY3Rpb24gRmVj aGEgbEAne0Bkb3RsZXNze2l9fW1pdGUgeSBwbGFuaWZpY2FjaUAnb24KCkEgdGltZXN0YW1wIG1h eSBiZSBwcmVjZWRlZCBieSBzcGVjaWFsIGtleXdvcmRzIHRvIGZhY2lsaXRhdGUgcGxhbm5pbmc6 CgpAbm9pbmRlbnQgQGJ7REVBRExJTkV9QCoKTWVhbmluZzogdGhlIHRhc2sgKG1vc3QgbGlrZWx5 IGEgVE9ETyBpdGVtLCB0aG91Z2ggbm90IG5lY2Vzc2FyaWx5KSBpcwpzdXBwb3NlZCB0byBiZSBm aW5pc2hlZCBvbiB0aGF0IGRhdGUuCkB0YWJsZSBAa2JkCkBpdGVtIEMtYyBDLWQKSW5zZXJ0IEBz YW1we0RFQURMSU5FfSBrZXl3b3JkIGFsb25nIHdpdGggYSBzdGFtcCwgaW4gdGhlIGxpbmUgZm9s bG93aW5nIHRoZQpoZWFkbGluZS4KQGVuZCB0YWJsZQoKT24gdGhlIGRlYWRsaW5lIGRhdGUsIHRo ZSB0YXNrIHdpbGwgYmUgbGlzdGVkIGluIHRoZSBhZ2VuZGEuICBJbiBhZGRpdGlvbiwKdGhlIGFn ZW5kYSBmb3IgQGVtcGh7dG9kYXl9IHdpbGwgY2FycnkgYSB3YXJuaW5nIGFib3V0IHRoZSBhcHBy b2FjaGluZyBvcgptaXNzZWQgZGVhZGxpbmUsIHN0YXJ0aW5nIEBjb2Rle29yZy1kZWFkbGluZS13 YXJuaW5nLWRheXN9IGJlZm9yZSB0aGUgZHVlCmRhdGUsIGFuZCBjb250aW51aW5nIHVudGlsIHRo ZSBlbnRyeSBpcyBtYXJrZWQgRE9ORS4gIEFuIGV4YW1wbGU6CgpAc21hbGxleGFtcGxlCioqKiBU T0RPIHdyaXRlIGFydGljbGUgYWJvdXQgdGhlIEVhcnRoIGZvciB0aGUgR3VpZGUKICAgIFRoZSBl ZGl0b3IgaW4gY2hhcmdlIGlzIFtbYmJkYjpGb3JkIFByZWZlY3RdXQogICAgREVBRExJTkU6IDwy MDA0LTAyLTI5IFN1bj4KQGVuZCBzbWFsbGV4YW1wbGUKCgpAbm9pbmRlbnQgQGJ7U0NIRURVTEVE fUAqCk1lYW5pbmc6IHlvdSBhcmUgQGl7cGxhbm5pbmcgdG8gc3RhcnQgd29ya2luZ30gb24gdGhh dCB0YXNrIG9uIHRoZSBnaXZlbgpkYXRlQGZvb3Rub3Rle1RoaXMgaXMgcXVpdGUgZGlmZmVyZW50 IGZyb20gd2hhdCBpcyBub3JtYWxseSB1bmRlcnN0b29kIGJ5CkBpe3NjaGVkdWxpbmcgYSBtZWV0 aW5nfSwgd2hpY2ggaXMgZG9uZSBpbiBPcmctbW9kZSBieSBqdXN0IGluc2VydGluZyBhIHRpbWUK c3RhbXAgd2l0aG91dCBrZXl3b3JkLn0uCgpAdGFibGUgQGtiZApAaXRlbSBDLWMgQy1zCkluc2Vy dCBAc2FtcHtTQ0hFRFVMRUR9IGtleXdvcmQgYWxvbmcgd2l0aCBhIHN0YW1wLCBpbiB0aGUgbGlu ZSBmb2xsb3dpbmcKdGhlIGhlYWRsaW5lLgpAZW5kIHRhYmxlCgpUaGUgaGVhZGxpbmUgd2lsbCBi ZSBsaXN0ZWQgdW5kZXIgdGhlIGdpdmVuIGRhdGVAZm9vdG5vdGV7SXQgd2lsbCBzdGlsbCBiZQps aXN0ZWQgb24gdGhhdCBkYXRlIGFmdGVyIGl0IGhhcyBiZWVuIG1hcmtlZCBET05FLiAgSWYgeW91 IGRvbid0IGxpa2UgdGhpcywKc2V0IHRoZSB2YXJpYWJsZSBAY29kZXtvcmctYWdlbmRhLXNraXAt c2NoZWR1bGVkLWlmLWRvbmV9Ln0uICBJbiBhZGRpdGlvbiwgYQpyZW1pbmRlciB0aGF0IHRoZSBz Y2hlZHVsZWQgZGF0ZSBoYXMgcGFzc2VkIHdpbGwgYmUgcHJlc2VudCBpbiB0aGUKY29tcGlsYXRp b24gZm9yIEBlbXBoe3RvZGF5fSwgdW50aWwgdGhlIGVudHJ5IGlzIG1hcmtlZCBET05FLiAgSS5l LkA6IHRoZQp0YXNrIHdpbGwgYXV0b21hdGljYWxseSBiZSBmb3J3YXJkZWQgdW50aWwgY29tcGxl dGVkLgoKQHNtYWxsZXhhbXBsZQoqKiogVE9ETyBDYWxsIFRyaWxsaWFuIGZvciBhIGRhdGUgb24g TmV3IFllYXJzIEV2ZS4KICAgIFNDSEVEVUxFRDogPDIwMDQtMTItMjUgU2F0PgpAZW5kIHNtYWxs ZXhhbXBsZQoKU29tZSB0YXNrcyBuZWVkIHRvIGJlIHJlcGVhdGVkIGFnYWluIGFuZCBhZ2Fpbi4g IE9yZyBtb2RlIGhlbHBzIHRvIG9yZ2FuaXplCnN1Y2ggdGFza3MgdXNpbmcgYSBzby1jYWxsZWQg cmVwZWF0ZXIgaW4gYSBERUFETElORSwgU0NIRURVTEVELCBvciBwbGFpbgp0aW1lc3RhbXAuICBJ biB0aGUgZm9sbG93aW5nIGV4YW1wbGUKQHNtYWxsZXhhbXBsZQoqKiBUT0RPIFBheSB0aGUgcmVu dAogICBERUFETElORTogPDIwMDUtMTAtMDEgU2F0ICsxbT4KQGVuZCBzbWFsbGV4YW1wbGUKQG5v aW5kZW50CnRoZSBAY29kZXsrMW19IGlzIGEgcmVwZWF0ZXI7IHRoZSBpbnRlbmRlZCBpbnRlcnBy ZXRhdGlvbiBpcyB0aGF0IHRoZSB0YXNrCmhhcyBhIGRlYWRsaW5lIG9uIDwyMDA1LTEwLTAxPiBh bmQgcmVwZWF0cyBpdHNlbGYgZXZlcnkgKG9uZSkgbW9udGggc3RhcnRpbmcKZnJvbSB0aGF0IHRp bWUuCgpAbm9kZSBFc3RhYmxlY2llbmRvIHRpZW1wbyBkZSB0cmFiYWpvLCAsIEZlY2hhIGxAJ3tA ZG90bGVzc3tpfX1taXRlIHkgcGxhbmlmaWNhY2lAJ29uLCBGZWNoYXMgeSBob3JhcwpAc2VjdGlv biBFc3RhYmxlY2llbmRvIHRpZW1wbyBkZSB0cmFiYWpvCgpPcmcgbW9kZSBhbGxvd3MgeW91IHRv IGNsb2NrIHRoZSB0aW1lIHlvdSBzcGVuZCBvbiBzcGVjaWZpYyB0YXNrcyBpbiBhCnByb2plY3Qu CgpAdGFibGUgQGtiZApAaXRlbSBDLWMgQy14IEMtaQpAYwpTdGFydCB0aGUgY2xvY2sgb24gdGhl IGN1cnJlbnQgaXRlbSAoY2xvY2staW4pLiAgVGhpcyBpbnNlcnRzIHRoZSBDTE9DSwprZXl3b3Jk IHRvZ2V0aGVyIHdpdGggYSB0aW1lc3RhbXAuICBXaGVuIGNhbGxlZCB3aXRoIGEgQGtiZHtDLXV9 IHByZWZpeAphcmd1bWVudCwgc2VsZWN0IHRoZSB0YXNrIGZyb20gYSBsaXN0IG9mIHJlY2VudGx5 IGNsb2NrZWQgdGFza3MuCkBpdGVtIEMtYyBDLXggQy1vClN0b3AgdGhlIGNsb2NrIChjbG9jay1v dXQpLiAgVGhpcyBpbnNlcnRzIGFub3RoZXIgdGltZXN0YW1wIGF0IHRoZSBzYW1lCmxvY2F0aW9u IHdoZXJlIHRoZSBjbG9jayB3YXMgbGFzdCBzdGFydGVkLiAgSXQgYWxzbyBkaXJlY3RseSBjb21w dXRlcyB0aGUKcmVzdWx0aW5nIHRpbWUgaW4gaW5zZXJ0cyBpdCBhZnRlciB0aGUgdGltZSByYW5n ZSBhcyBAc2FtcHs9PiBISDpNTX0uCkBpdGVtIEMtYyBDLXggQy1lClVwZGF0ZSB0aGUgZWZmb3J0 IGVzdGltYXRlIGZvciB0aGUgY3VycmVudCBjbG9jayB0YXNrLgpAaXRlbSBDLWMgQy14IEMteApD YW5jZWwgdGhlIGN1cnJlbnQgY2xvY2suICBUaGlzIGlzIHVzZWZ1bCBpZiBhIGNsb2NrIHdhcyBz dGFydGVkIGJ5IG1pc3Rha2UsCm9yIGlmIHlvdSBlbmRlZCB1cCB3b3JraW5nIG9uIHNvbWV0aGlu ZyBlbHNlLgpAaXRlbSBDLWMgQy14IEMtagpKdW1wIHRvIHRoZSBlbnRyeSB0aGF0IGNvbnRhaW5z IHRoZSBjdXJyZW50bHkgcnVubmluZyBjbG9jay4gIFdpdGggYQpAa2Jke0MtdX0gcHJlZml4IGFy Zywgc2VsZWN0IHRoZSB0YXJnZXQgdGFzayBmcm9tIGEgbGlzdCBvZiByZWNlbnRseSBjbG9ja2Vk CnRhc2tzLgpAaXRlbSBDLWMgQy14IEMtcgpJbnNlcnQgYSBkeW5hbWljIGJsb2NrIGNvbnRhaW5p bmcgYSBjbG9jayByZXBvcnQgYXMgYW4gT3JnLW1vZGUgdGFibGUgaW50bwp0aGUgY3VycmVudCBm aWxlLiAgV2hlbiB0aGUgY3Vyc29yIGlzIGF0IGFuIGV4aXN0aW5nIGNsb2NrIHRhYmxlLCBqdXN0 CnVwZGF0ZSBpdC4KQHNtYWxsZXhhbXBsZQojK0JFR0lOOiBjbG9ja3RhYmxlIDptYXhsZXZlbCAy IDplbXBoYXNpemUgbmlsIDpzY29wZSBmaWxlCiMrRU5EOiBjbG9ja3RhYmxlCkBlbmQgc21hbGxl eGFtcGxlCkBub2luZGVudApGb3IgZGV0YWlscyBhYm91dCBob3cgdG8gY3VzdG9taXplIHRoaXMg dmlldywgc2VlCkB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy9tYW51YWwvQ2xvY2tpbmctd29yay10 aW1lLmh0bWwjQ2xvY2tpbmctd29yay10aW1lLHRoZQptYW51YWx9LgpAaXRlbSBDLWMgQy1jClVw ZGF0ZSBkeW5hbWljIGJsb2NrIGF0IHBvaW50LiAgVGhlIGN1cnNvciBuZWVkcyB0byBiZSBpbiB0 aGUgQGNvZGV7IytCRUdJTn0KbGluZSBvZiB0aGUgZHluYW1pYyBibG9jay4KQGVuZCB0YWJsZQoK TGEgdGVjbGEgQGtiZHtsfSBwdWVkZSBzZXIgdXNhZGEgZW4gbGEgbEAne0Bkb3RsZXNze2l9fW5l YSBkZSB0aWVtcG8KKEBweHJlZntMQCd7QGRvdGxlc3N7aX19bmVhIGRlIHRpZW1wb30pIHkgZW4g bGEgYWdlbmRhIChAcHhyZWZ7QWdlbmRhCnNlbWFuYWwvZGlhcmlhfSkgcGFyYSBtb3N0cmFyIGxh cyB0YXJlYXMgZW4gbGFzIHF1ZSBzZSB0cmFiYWphckAnYSBvCmNlcnJhckAnYW4gZHVyYW50ZSBl bCBkQCd7QGRvdGxlc3N7aX19YS4KCkBzZWVhbHNvewpAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcv bWFudWFsL0RhdGVzLWFuZC1UaW1lcy5odG1sI0RhdGVzLWFuZC1UaW1lcywKQ2hhcHRlciA4IG9m IHRoZSBtYW51YWx9QCoKQHVyZWZ7aHR0cDovL21lbWJlcnMub3B0dXNuZXQuY29tLmF1L35jaGFy bGVzNTcvR1REL29yZ19kYXRlcy8sIENoYXJsZXMKQ2F2ZSdzIERhdGUgYW5kIFRpbWUgdHV0b3Jp YWx9QCoKQHVyZWZ7aHR0cDovL2RvYy5ub3JhbmcuY2Evb3JnLW1vZGUuaHRtbCNDbG9ja2luZywg QmVybnQgSGFuc2VuJ3MgY2xvY2tpbmcKd29ya2Zsb3d9fQoKQG5vZGUgQ2FwdHVyZSAtIFJlZmls ZSAtIEFyY2hpdmUsIFZpc3RhcyBkZSBsYSBBZ2VuZGEsIEZlY2hhcyB5IGhvcmFzLCBUb3AKQGNo YXB0ZXIgQ2FwdHVyZSAtIFJlZmlsZSAtIEFyY2hpdmUKCkFuIGltcG9ydGFudCBwYXJ0IG9mIGFu eSBvcmdhbml6YXRpb24gc3lzdGVtIGlzIHRoZSBhYmlsaXR5IHRvIHF1aWNrbHkKY2FwdHVyZSBu ZXcgaWRlYXMgYW5kIHRhc2tzLCBhbmQgdG8gYXNzb2NpYXRlIHJlZmVyZW5jZSBtYXRlcmlhbCB3 aXRoIHRoZW0uCk9yZyBkZWZpbmVzIGEgY2FwdHVyZSBwcm9jZXNzIHRvIGNyZWF0ZSB0YXNrcy4g IEl0IHN0b3JlcyBmaWxlcyByZWxhdGVkIHRvIGEKdGFzayAoQGl7YXR0YWNobWVudHN9KSBpbiBh IHNwZWNpYWwgZGlyZWN0b3J5LiAgT25jZSBpbiB0aGUgc3lzdGVtLCB0YXNrcwphbmQgcHJvamVj dHMgbmVlZCB0byBiZSBtb3ZlZCBhcm91bmQuICBNb3ZpbmcgY29tcGxldGVkIHByb2plY3QgdHJl ZXMgdG8gYW4KYXJjaGl2ZSBmaWxlIGtlZXBzIHRoZSBzeXN0ZW0gY29tcGFjdCBhbmQgZmFzdC4K CkBtZW51CiogQ2FwdHVyYXI6OiAgICAgICAgICAgICAgICAgCiogUmVmaWxlIGFuZCBjb3B5Ojog ICAgICAgICAgTW92aWVuZG8gdW4gQCdhcmJvbCBkZSB1biBsdWdhciBhIG90cm8KKiBBcmNoaXZh bmRvOjogICAgICAgICAgICAgICBRdUAnZSBzZSBoYWNlIGNvbiBsb3MgcHJveWVjdG9zIHRlcm1p bmFkb3MKQGVuZCBtZW51CgpAbm9kZSBDYXB0dXJhciwgUmVmaWxlIGFuZCBjb3B5LCBDYXB0dXJl IC0gUmVmaWxlIC0gQXJjaGl2ZSwgQ2FwdHVyZSAtIFJlZmlsZSAtIEFyY2hpdmUKQHNlY3Rpb24g Q2FwdHVyYXIKCk9yZydzIG1ldGhvZCBmb3IgY2FwdHVyaW5nIG5ldyBpdGVtcyBpcyBoZWF2aWx5 IGluc3BpcmVkIGJ5IEpvaG4gV2llZ2xleQpleGNlbGxlbnQgcmVtZW1iZXIgcGFja2FnZS4gIEl0 IGxldHMgeW91IHN0b3JlIHF1aWNrIG5vdGVzIHdpdGggbGl0dGxlCmludGVycnVwdGlvbiBvZiB5 b3VyIHdvcmsgZmxvdy4gIE9yZyBsZXRzIHlvdSBkZWZpbmUgdGVtcGxhdGVzIGZvciBuZXcKZW50 cmllcyBhbmQgYXNzb2NpYXRlIHRoZW0gd2l0aCBkaWZmZXJlbnQgdGFyZ2V0cyBmb3Igc3Rvcmlu ZyBub3Rlcy4KCkBtZW51CiogU2V0dGluZyB1cCBhIGNhcHR1cmUgbG9jYXRpb246OiAgRG9uZGUg c2VyQCdhbiBhbG1hY2VuYWRhcyBsYXMgbm90YXMKKiBVc2FuZG8gY2FwdHVyYXM6OiAgICAgICAg ICBDb21hbmRvcyBwYXJhIGludm9jYXIgeSBmaW5hbGl6YXIgY2FwdHVyYXMKKiBQbGFudGlsbGFz IGRlIGNhcHR1cmFzOjogICBEZWZpbmUgdGhlIG91dGxpbmUgb2YgZGlmZmVyZW50IG5vdGUgdHlw ZXMKQGVuZCBtZW51CgpAbm9kZSBTZXR0aW5nIHVwIGEgY2FwdHVyZSBsb2NhdGlvbiwgVXNhbmRv IGNhcHR1cmFzLCBDYXB0dXJhciwgQ2FwdHVyYXIKQHVubnVtYmVyZWRzdWJzZWMgU2V0dGluZyB1 cCBhIGNhcHR1cmUgbG9jYXRpb24KCi4uLi4uLi4uLi4uLi4uLiBAZm9vdG5vdGV7VXNhbmRvIHBs YW50aWxsYXMgZGUgY2FwdHVyYXMKLi4uLi4uLkByZWZ7UGxhbnRpbGxhcyBkZSBjYXB0dXJhc30u fSAuLi4uLi4uLi4uLi4uCgpAZXhhbXBsZQooc2V0cSBvcmctZGVmYXVsdC1ub3Rlcy1maWxlIChj b25jYXQgb3JnLWRpcmVjdG9yeSAiL25vdGVzLm9yZyIpKQooZGVmaW5lLWtleSBnbG9iYWwtbWFw ICJcQy1jYyIgJ29yZy1jYXB0dXJlKQpAZW5kIGV4YW1wbGUKCkBub2RlIFVzYW5kbyBjYXB0dXJh cywgUGxhbnRpbGxhcyBkZSBjYXB0dXJhcywgU2V0dGluZyB1cCBhIGNhcHR1cmUgbG9jYXRpb24s IENhcHR1cmFyCkB1bm51bWJlcmVkc3Vic2VjIFVzYW5kbyBjYXB0dXJhcwoKQHRhYmxlIEBrYmQK QGl0ZW0gQy1jIGMKU3RhcnQgYSBjYXB0dXJlIHByb2Nlc3MuICBZb3Ugd2lsbCBiZSBwbGFjZWQg aW50byBhIG5hcnJvd2VkIGluZGlyZWN0IGJ1ZmZlcgp0byBlZGl0IHRoZSBpdGVtLgpAaXRlbSBD LWMgQy1jCk9uY2UgeW91IGFyZSBkb25lIGVudGVyaW5nIGluZm9ybWF0aW9uIGludG8gdGhlIGNh cHR1cmUgYnVmZmVyLCBAa2Jke0MtYwpDLWN9IHdpbGwgcmV0dXJuIHlvdSB0byB0aGUgd2luZG93 IGNvbmZpZ3VyYXRpb24gYmVmb3JlIHRoZSBjYXB0dXJlIHByb2Nlc3MsCnNvIHRoYXQgeW91IGNh biByZXN1bWUgeW91ciB3b3JrIHdpdGhvdXQgZnVydGhlciBkaXN0cmFjdGlvbi4KQGl0ZW0gQy1j IEMtdwpGaW5hbGl6ZSBieSBtb3ZpbmcgdGhlIGVudHJ5IHRvIGEgcmVmaWxlIGxvY2F0aW9uIChA cHhyZWZ7UmVmaWxlIGFuZCBjb3B5fSkuCkBpdGVtIEMtYyBDLWsKQWJvcnQgdGhlIGNhcHR1cmUg cHJvY2VzcyBhbmQgcmV0dXJuIHRvIHRoZSBwcmV2aW91cyBzdGF0ZS4KQGVuZCB0YWJsZQoKQG5v ZGUgUGxhbnRpbGxhcyBkZSBjYXB0dXJhcywgLCBVc2FuZG8gY2FwdHVyYXMsIENhcHR1cmFyCkB1 bm51bWJlcmVkc3Vic2VjIFBsYW50aWxsYXMgZGUgY2FwdHVyYXMKCllvdSBjYW4gdXNlIHRlbXBs YXRlcyB0byBnZW5lcmF0ZSBkaWZmZXJlbnQgdHlwZXMgb2YgY2FwdHVyZSBub3RlcywgYW5kIHRv CnN0b3JlIHRoZW0gaW4gZGlmZmVyZW50IHBsYWNlcy4gIEZvciBleGFtcGxlLCBpZiB5b3Ugd291 bGQgbGlrZSB0byBzdG9yZSBuZXcKdGFza3MgdW5kZXIgYSBoZWFkaW5nIEBzYW1we1Rhc2tzfSBp biBmaWxlIEBmaWxle1RPRE8ub3JnfSwgYW5kIGpvdXJuYWwKZW50cmllcyBpbiBhIGRhdGUgdHJl ZSBpbiBAZmlsZXtqb3VybmFsLm9yZ30geW91IGNvdWxkIHVzZToKCkBzbWFsbGV4YW1wbGUKKHNl dHEgb3JnLWNhcHR1cmUtdGVtcGxhdGVzCiAnKCgidCIgIlRvZG8iIGVudHJ5IChmaWxlK2hlYWRs aW5lICJ+L29yZy9ndGQub3JnIiAiVGFza3MiKQogICAgICAgICIqIFRPRE8gJT9cbiAgJWlcbiAg JWEiKQogICAoImoiICJKb3VybmFsIiBlbnRyeSAoZmlsZStkYXRldHJlZSAifi9vcmcvam91cm5h bC5vcmciKQogICAgICAgICIqICU/XG5FbnRlcmVkIG9uICVVXG4gICVpXG4gICVhIikpKQpAZW5k IHNtYWxsZXhhbXBsZQoKQG5vaW5kZW50IEluIHRoZXNlIGVudHJpZXMsIHRoZSBmaXJzdCBzdHJp bmcgaXMgdGhlIGtleSB0byByZWFjaCB0aGUKdGVtcGxhdGUsIHRoZSBzZWNvbmQgaXMgYSBzaG9y dCBkZXNjcmlwdGlvbi4gIFRoZW4gZm9sbG93cyB0aGUgdHlwZSBvZiB0aGUKZW50cnkgYW5kIGEg ZGVmaW5pdGlvbiBvZiB0aGUgdGFyZ2V0IGxvY2F0aW9uIGZvciBzdG9yaW5nIHRoZSBub3RlLgpG aW5hbGx5LCB0aGUgdGVtcGxhdGUgaXRzZWxmLCBhIHN0cmluZyB3aXRoICUtZXNjYXBlcyB0byBm aWxsIGluIGluZm9ybWF0aW9uCmJhc2VkIG9uIHRpbWUgYW5kIGNvbnRleHQuCgpXaGVuIHlvdSBj YWxsIEBrYmR7TS14IG9yZy1jYXB0dXJlfSwgT3JnIHdpbGwgcHJvbXB0IGZvciBhIGtleSB0byBz ZWxlY3QgdGhlCnRlbXBsYXRlIChpZiB5b3UgaGF2ZSBtb3JlIHRoYW4gb25lIHRlbXBsYXRlKSBh bmQgdGhlbiBwcmVwYXJlIHRoZSBidWZmZXIKbGlrZQpAc21hbGxleGFtcGxlCiogVE9ETwogIFtb ZmlsZTpAdmFye2xpbmsgdG8gd2hlcmUgeW91IHdlcmUgd2hlbiBpbml0aWF0aW5nIGNhcHR1cmV9 XV0KQGVuZCBzbWFsbGV4YW1wbGUKCkBub2luZGVudApEdXJpbmcgZXhwYW5zaW9uIG9mIHRoZSB0 ZW1wbGF0ZSwgc3BlY2lhbCBAa2JkeyV9LWVzY2FwZXNAZm9vdG5vdGV7SWYgeW91Cm5lZWQgb25l IG9mIHRoZXNlIHNlcXVlbmNlcyBsaXRlcmFsbHksIGVzY2FwZSB0aGUgQGtiZHslfSB3aXRoIGEg YmFja3NsYXNoLn0KYWxsb3cgZHluYW1pYyBpbnNlcnRpb24gb2YgY29udGVudC4gIEhlcmUgaXMg YSBzbWFsbCBzZWxlY3Rpb24gb2YgdGhlCnBvc3NpYmlsaXRpZXMsIGNvbnN1bHQgdGhlIG1hbnVh bCBmb3IgbW9yZS4KQHNtYWxsZXhhbXBsZQolYSAgICAgICAgICBAcnthbm5vdGF0aW9uLCBub3Jt YWxseSB0aGUgbGluayBjcmVhdGVkIHdpdGggQGNvZGV7b3JnLXN0b3JlLWxpbmt9fQolaSAgICAg ICAgICBAcntpbml0aWFsIGNvbnRlbnQsIHRoZSByZWdpb24gd2hlbiByZW1lbWJlciBpcyBjYWxs ZWQgd2l0aCBDLXUufQoldCAgICAgICAgICBAcnt0aW1lc3RhbXAsIGRhdGUgb25seX0KJVQgICAg ICAgICAgQHJ7dGltZXN0YW1wIHdpdGggZGF0ZSBhbmQgdGltZX0KJXUsICVVICAgICAgQHJ7bGlr ZSB0aGUgYWJvdmUsIGJ1dCBpbmFjdGl2ZSB0aW1lc3RhbXBzfQpAZW5kIHNtYWxsZXhhbXBsZQoK QG5vZGUgUmVmaWxlIGFuZCBjb3B5LCBBcmNoaXZhbmRvLCBDYXB0dXJhciwgQ2FwdHVyZSAtIFJl ZmlsZSAtIEFyY2hpdmUKQHNlY3Rpb24gUmVmaWxlIGFuZCBjb3B5CgpXaGVuIHJldmlld2luZyB0 aGUgY2FwdHVyZWQgZGF0YSwgeW91IG1heSB3YW50IHRvIHJlZmlsZSBvciBjb3B5IHNvbWUgb2Yg dGhlCmVudHJpZXMgaW50byBhIGRpZmZlcmVudCBsaXN0LCBmb3IgZXhhbXBsZSBpbnRvIGEgcHJv amVjdC4gIEN1dHRpbmcsIGZpbmRpbmcKdGhlIHJpZ2h0IGxvY2F0aW9uLCBhbmQgdGhlbiBwYXN0 aW5nIHRoZSBub3RlIGlzIGN1bWJlcnNvbWUuICBUbyBzaW1wbGlmeQp0aGlzIHByb2Nlc3MsIHlv dSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgc3BlY2lhbCBjb21tYW5kOgoKQHRhYmxlIEBrYmQKQGl0 ZW0gQy1jIE0teApDb3B5IHRoZSBlbnRyeSBvciByZWdpb24gYXQgcG9pbnQuICBUaGlzIGNvbW1h bmQgYmVoYXZlcyBsaWtlCkBjb2Rle29yZy1yZWZpbGV9LCBleGNlcHQgdGhhdCB0aGUgb3JpZ2lu YWwgbm90ZSB3aWxsIG5vdCBiZSBkZWxldGVkLgpAaXRlbSBDLWMgQy13ClJlZmlsZSB0aGUgZW50 cnkgb3IgcmVnaW9uIGF0IHBvaW50LiAgVGhpcyBjb21tYW5kIG9mZmVycyBwb3NzaWJsZSBsb2Nh dGlvbnMKZm9yIHJlZmlsaW5nIHRoZSBlbnRyeSBhbmQgbGV0cyB5b3Ugc2VsZWN0IG9uZSB3aXRo IGNvbXBsZXRpb24uICBUaGUgaXRlbQoob3IgYWxsIGl0ZW1zIGluIHRoZSByZWdpb24pIGlzIGZp bGVkIGJlbG93IHRoZSB0YXJnZXQgaGVhZGluZyBhcyBhCnN1Yml0ZW0uQCogQnkgZGVmYXVsdCwg YWxsIGxldmVsIDEgaGVhZGxpbmVzIGluIHRoZSBjdXJyZW50IGJ1ZmZlciBhcmUKY29uc2lkZXJl ZCB0byBiZSB0YXJnZXRzLCBidXQgeW91IGNhbiBoYXZlIG1vcmUgY29tcGxleCBkZWZpbml0aW9u cyBhY3Jvc3MgYQpudW1iZXIgb2YgZmlsZXMuICBTZWUgdGhlIHZhcmlhYmxlIEBjb2Rle29yZy1y ZWZpbGUtdGFyZ2V0c30gZm9yIGRldGFpbHMuCkBpdGVtIEMtdSBDLWMgQy13ClVzZSB0aGUgcmVm aWxlIGludGVyZmFjZSB0byBqdW1wIHRvIGEgaGVhZGluZy4KQGl0ZW0gQy11IEMtdSBDLWMgQy13 Ckp1bXAgdG8gdGhlIGxvY2F0aW9uIHdoZXJlIEBjb2Rle29yZy1yZWZpbGV9IGxhc3QgbW92ZWQg YSB0cmVlIHRvLgpAZW5kIHRhYmxlCgpAbm9kZSBBcmNoaXZhbmRvLCAsIFJlZmlsZSBhbmQgY29w eSwgQ2FwdHVyZSAtIFJlZmlsZSAtIEFyY2hpdmUKQHNlY3Rpb24gQXJjaGl2YW5kbwoKV2hlbiBh IHByb2plY3QgcmVwcmVzZW50ZWQgYnkgYSAoc3ViKXRyZWUgaXMgZmluaXNoZWQsIHlvdSBtYXkg d2FudCB0byBtb3ZlCnRoZSB0cmVlIG91dCBvZiB0aGUgd2F5IGFuZCB0byBzdG9wIGl0IGZyb20g Y29udHJpYnV0aW5nIHRvIHRoZSBhZ2VuZGEuCkFyY2hpdmluZyBpcyBpbXBvcnRhbnQgdG8ga2Vl cCB5b3VyIHdvcmtpbmcgZmlsZXMgY29tcGFjdCBhbmQgZ2xvYmFsCnNlYXJjaGVzIGxpa2UgdGhl IGNvbnN0cnVjdGlvbiBvZiBhZ2VuZGEgdmlld3MgZmFzdC4gIFRoZSBtb3N0IGNvbW1vbgphcmNo aXZpbmcgYWN0aW9uIGlzIHRvIG1vdmUgYSBwcm9qZWN0IHRyZWUgdG8gYW5vdGhlciBmaWxlLCB0 aGUgYXJjaGl2ZQpmaWxlLgoKQHRhYmxlIEBrYmQKQGl0ZW0gQy1jIEMteCBDLWEKQXJjaGl2ZSB0 aGUgY3VycmVudCBlbnRyeSB1c2luZyB0aGUgY29tbWFuZCBzcGVjaWZpZWQgaW4gdGhlIHZhcmlh YmxlCkBjb2Rle29yZy1hcmNoaXZlLWRlZmF1bHQtY29tbWFuZH0uCkBpdGVtIEMtYyBDLXggQy1z QCBAcntvciBzaG9ydH0gQCBDLWMgJApBcmNoaXZlIHRoZSBzdWJ0cmVlIHN0YXJ0aW5nIGF0IHRo ZSBjdXJzb3IgcG9zaXRpb24gdG8gdGhlIGxvY2F0aW9uIGdpdmVuIGJ5CkBjb2Rle29yZy1hcmNo aXZlLWxvY2F0aW9ufS4KQGVuZCB0YWJsZQoKVGhlIGRlZmF1bHQgYXJjaGl2ZSBsb2NhdGlvbiBp cyBhIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZSBjdXJyZW50CmZpbGUsIHdpdGgg dGhlIG5hbWUgZGVyaXZlZCBieSBhcHBlbmRpbmcgQGZpbGV7X2FyY2hpdmV9IHRvIHRoZSBjdXJy ZW50IGZpbGUKbmFtZS4gIEZvciBpbmZvcm1hdGlvbiBhbmQgZXhhbXBsZXMgb24gaG93IHRvIGNo YW5nZSB0aGlzLCBzZWUgdGhlCmRvY3VtZW50YXRpb24gc3RyaW5nIG9mIHRoZSB2YXJpYWJsZSBA Y29kZXtvcmctYXJjaGl2ZS1sb2NhdGlvbn0uICBUaGVyZSBpcwphbHNvIGFuIGluLWJ1ZmZlciBv cHRpb24gZm9yIHNldHRpbmcgdGhpcyB2YXJpYWJsZSwgZm9yIGV4YW1wbGUKCkBzbWFsbGV4YW1w bGUKIytBUkNISVZFOiAlc19kb25lOjoKQGVuZCBzbWFsbGV4YW1wbGUKCkBzZWVhbHNvewpAdXJl ZntodHRwOi8vb3JnbW9kZS5vcmcvbWFudWFsL0NhcHR1cmUtXzAwMmQtUmVmaWxlLV8wMDJkLUFy Y2hpdmUuaHRtbCNDYXB0dXJlLV8wMDJkLVJlZmlsZS1fMDAyZC1BcmNoaXZlLApDaGFwdGVyIDkg b2YgdGhlIG1hbnVhbH1AKgpAdXJlZntodHRwOi8vbWVtYmVycy5vcHR1c25ldC5jb20uYXUvfmNo YXJsZXM1Ny9HVEQvcmVtZW1iZXIuaHRtbCwgQ2hhcmxlcwpDYXZlJ3MgcmVtZW1iZXIgdHV0b3Jp YWx9QCoKQHVyZWZ7aHR0cDovL29yZ21vZGUub3JnL3dvcmcvb3JnLXR1dG9yaWFscy9vcmctcHJv dG9jb2wtY3VzdG9tLWhhbmRsZXIucGhwLApTZWJhc3RpYW4gUm9zZSdzIHR1dG9yaWFsIGZvciBj YXB0dXJpbmcgZnJvbSBhIHdlYiBicm93c2VyfX1AdXJlZnt9QCoKCkBub2RlIFZpc3RhcyBkZSBs YSBBZ2VuZGEsIE1hcmNhZG8sIENhcHR1cmUgLSBSZWZpbGUgLSBBcmNoaXZlLCBUb3AKQGNoYXB0 ZXIgVmlzdGFzIGRlIGxhIEFnZW5kYQoKRHVlIHRvIHRoZSB3YXkgT3JnIHdvcmtzLCBUT0RPIGl0 ZW1zLCB0aW1lLXN0YW1wZWQgaXRlbXMsIGFuZCB0YWdnZWQKaGVhZGxpbmVzIGNhbiBiZSBzY2F0 dGVyZWQgdGhyb3VnaG91dCBhIGZpbGUgb3IgZXZlbiBhIG51bWJlciBvZiBmaWxlcy4gIFRvCmdl dCBhbiBvdmVydmlldyBvZiBvcGVuIGFjdGlvbiBpdGVtcywgb3Igb2YgZXZlbnRzIHRoYXQgYXJl IGltcG9ydGFudCBmb3IgYQpwYXJ0aWN1bGFyIGRhdGUsIHRoaXMgaW5mb3JtYXRpb24gbXVzdCBi ZSBjb2xsZWN0ZWQsIHNvcnRlZCBhbmQgZGlzcGxheWVkIGluCmFuIG9yZ2FuaXplZCB3YXkuICBU aGVyZSBhcmUgc2V2ZXJhbCBkaWZmZXJlbnQgdmlld3MsIHNlZSBiZWxvdy4KCi4uLi4uLi4uLi4u Li4uLi4uLi4uLi5AcmVme0NvbWFuZG9zIGRlIGxhIGFnZW5kYX0uCgpAbWVudQoqIEFyY2hpdm9z IGRlIGFnZW5kYTo6ICAgICAgIEFyY2hpdm9zIGJ1c2NhZG9zIHBhcmEgbGEgaW5mb3JtYWNpQCdv biBkZSBsYSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZW5kYQoqIERlc3BhY2hh ZG9yIGRlIGFnZW5kYTo6ICAgIEtleWJvYXJkIGFjY2VzcyB0byBhZ2VuZGEgdmlld3MKKiBWaXN0 YXMgZGUgYWdlbmRhIGludGVybmFzOjogIFdoYXQgaXMgYXZhaWxhYmxlIG91dCBvZiB0aGUgYm94 PwoqIENvbWFuZG9zIGRlIGxhIGFnZW5kYTo6ICAgIFJlbW90ZSBlZGl0aW5nIG9mIE9yZyB0cmVl cwoqIFZpc3RhcyBkZSBhZ2VuZGEgcGVyc29uYWxpemFkYXM6OiAgRGVmaW5pbmcgc3BlY2lhbCBz ZWFyY2hlcyBhbmQgdmlld3MKQGVuZCBtZW51CgpAbm9kZSBBcmNoaXZvcyBkZSBhZ2VuZGEsIERl c3BhY2hhZG9yIGRlIGFnZW5kYSwgVmlzdGFzIGRlIGxhIEFnZW5kYSwgVmlzdGFzIGRlIGxhIEFn ZW5kYQpAc2VjdGlvbiBBcmNoaXZvcyBkZSBhZ2VuZGEKClRoZSBpbmZvcm1hdGlvbiB0byBiZSBz aG93biBpcyBub3JtYWxseSBjb2xsZWN0ZWQgZnJvbSBhbGwgQGVtcGh7YWdlbmRhCmZpbGVzfSwg dGhlIGZpbGVzIGxpc3RlZCBpbiB0aGUgdmFyaWFibGUgQGNvZGV7b3JnLWFnZW5kYS1maWxlc30u CgpAdGFibGUgQGtiZApAaXRlbSBDLWMgWwpBZGQgY3VycmVudCBmaWxlIHRvIHRoZSBsaXN0IG9m IGFnZW5kYSBmaWxlcy4gIFRoZSBmaWxlIGlzIGFkZGVkIHRvIHRoZQpmcm9udCBvZiB0aGUgbGlz dC4gIElmIGl0IHdhcyBhbHJlYWR5IGluIHRoZSBsaXN0LCBpdCBpcyBtb3ZlZCB0byB0aGUKZnJv bnQuICBXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBmaWxlIGlzIGFkZGVkL21vdmVkIHRvIHRoZSBl bmQuCkBpdGVtIEMtYyBdClJlbW92ZSBjdXJyZW50IGZpbGUgZnJvbSB0aGUgbGlzdCBvZiBhZ2Vu ZGEgZmlsZXMuCkBpdGVtIEMtLApDeWNsZSB0aHJvdWdoIGFnZW5kYSBmaWxlIGxpc3QsIHZpc2l0 aW5nIG9uZSBmaWxlIGFmdGVyIHRoZSBvdGhlci4KQGVuZCB0YWJsZQoKQG5vZGUgRGVzcGFjaGFk b3IgZGUgYWdlbmRhLCBWaXN0YXMgZGUgYWdlbmRhIGludGVybmFzLCBBcmNoaXZvcyBkZSBhZ2Vu ZGEsIFZpc3RhcyBkZSBsYSBBZ2VuZGEKQHNlY3Rpb24gVGhlIGFnZW5kYSBkaXNwYXRjaGVyCi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIChAcHhyZWZ7SW5zdGFsYWNpQCdvbn0pLiAuLi4u LgpAdGFibGUgQGtiZApAaXRlbSBhCkxhIGFnZW5kYSBjb21vIGNhbGVuZGFyaW8gKEBweHJlZntB Z2VuZGEgc2VtYW5hbC9kaWFyaWF9KS4KQGl0ZW0gdCBAcnsvfSBUClVuYSBsaXN0YSBkZSB0b2Rv cyBsb3MgaXRlbXMgVE9ETyAoQHB4cmVme0xpc3RhIGdsb2JhbCBUT0RPfSkuCkBpdGVtIG0gQHJ7 L30gTQpVbmEgbGlzdGEgZGUgdGl0dWxhcmVzIGNvaW5jaWRlbnRlcyBjb24gbGEgZXhwcmVzaSdv biBUQUdTCihAcHhyZWZ7Q29pbmNpZGllbmRvIG1hcmNhcyB5IHByb3BpZWRhZGVzfSkuCkBpdGVt IEwKTGEgdmlzdGEgZGUgbGEgbEAne0Bkb3RsZXNze2l9fW5lYSBkZSB0aWVtcG8gcGFyYSBlbCBi dWZmZXIgYWN0dWFsCkBweHJlZntMQCd7QGRvdGxlc3N7aX19bmVhIGRlIHRpZW1wb30pLgpAaXRl bSBzCkEgbGlzdCBvZiBlbnRyaWVzIHNlbGVjdGVkIGJ5IGEgYm9vbGVhbiBleHByZXNzaW9uIG9m IGtleXdvcmRzIGFuZC9vcgpyZWd1bGFyIGV4cHJlc3Npb25zIHRoYXQgbXVzdCBvciBtdXN0IG5v dCBvY2N1ciBpbiB0aGUgZW50cnkuCkBlbmQgdGFibGUKCkBub2RlIFZpc3RhcyBkZSBhZ2VuZGEg aW50ZXJuYXMsIENvbWFuZG9zIGRlIGxhIGFnZW5kYSwgRGVzcGFjaGFkb3IgZGUgYWdlbmRhLCBW aXN0YXMgZGUgbGEgQWdlbmRhCkBzZWN0aW9uIExhcyB2aXN0YXMgaW50ZXJuYXMgZGUgbGEgYWdl bmRhCgpAbWVudQoqIEFnZW5kYSBzZW1hbmFsL2RpYXJpYTo6ICAgIFRoZSBjYWxlbmRhciBwYWdl IHdpdGggY3VycmVudCB0YXNrcwoqIExpc3RhIGdsb2JhbCBUT0RPOjogICAgICAgIEFsbCB1bmZp bmlzaGVkIGFjdGlvbiBpdGVtcwoqIENvaW5jaWRpZW5kbyBtYXJjYXMgeSBwcm9waWVkYWRlczo6 ICBTdHJ1Y3R1cmVkIGluZm9ybWF0aW9uIHdpdGggCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmluZS10dW5lZCBzZWFyY2gKKiBMQCd7QGRvdGxlc3N7aX19bmVhIGRl IHRpZW1wbzo6ICBWaXN0YSBvcmRlbmFkYSBlbiBlbCB0aWVtcG8gZGUgdW4gc2ltcGxlIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJjaGl2bwoqIFZpc3RhIGRlIGJAJ3Vz cXVlZGE6OiAgICAgIEVuY29udHJhbmRvIGVudHJhZGFzIGJ1c2NhbmRvIHRleHRvCkBlbmQgbWVu dQoKQG5vZGUgQWdlbmRhIHNlbWFuYWwvZGlhcmlhLCBMaXN0YSBnbG9iYWwgVE9ETywgVmlzdGFz IGRlIGFnZW5kYSBpbnRlcm5hcywgVmlzdGFzIGRlIGFnZW5kYSBpbnRlcm5hcwpAc3Vic2VjdGlv biBUaGUgd2Vla2x5L2RhaWx5IGFnZW5kYQoKVGhlIHB1cnBvc2Ugb2YgdGhlIHdlZWtseS9kYWls eSBAZW1waHthZ2VuZGF9IGlzIHRvIGFjdCBsaWtlIGEgcGFnZSBvZiBhCnBhcGVyIGFnZW5kYSwg c2hvd2luZyBhbGwgdGhlIHRhc2tzIGZvciB0aGUgY3VycmVudCB3ZWVrIG9yIGRheS4KCkB0YWJs ZSBAa2JkCkBpdGVtIEMtYyBhIGEKQ29tcGlsZSBhbiBhZ2VuZGEgZm9yIHRoZSBjdXJyZW50IHdl ZWsgZnJvbSBhIGxpc3Qgb2YgT3JnIGZpbGVzLiAgVGhlIGFnZW5kYQpzaG93cyB0aGUgZW50cmll cyBmb3IgZWFjaCBkYXkuCkBlbmQgdGFibGUKCkVtYWNzIGNvbnRhaW5zIHRoZSBjYWxlbmRhciBh bmQgZGlhcnkgYnkgRWR3YXJkIE0uIFJlaW5nb2xkLiAgT3JnLW1vZGUKdW5kZXJzdGFuZHMgdGhl IHN5bnRheCBvZiB0aGUgZGlhcnkgYW5kIGFsbG93cyB5b3UgdG8gdXNlIGRpYXJ5IHNleHAgZW50 cmllcwpkaXJlY3RseSBpbiBPcmcgZmlsZXM6CgpAc21hbGxleGFtcGxlCiogQmlydGhkYXlzIGFu ZCBzaW1pbGFyIHN0dWZmCiMrQ0FURUdPUlk6IEhvbGlkYXkKJSUob3JnLWNhbGVuZGFyLWhvbGlk YXkpICAgOyBzcGVjaWFsIGZ1bmN0aW9uIGZvciBob2xpZGF5IG5hbWVzCiMrQ0FURUdPUlk6IEFu bgolJShkaWFyeS1hbm5pdmVyc2FyeSAgNSAxNCAxOTU2KUBmb290bm90ZXtOb3RlIHRoYXQgdGhl IG9yZGVyIG9mIHRoZSBhcmd1bWVudHMgKG1vbnRoLCBkYXksIHllYXIpIGRlcGVuZHMgb24gdGhl IHNldHRpbmcgb2YgQGNvZGV7Y2FsZW5kYXItZGF0ZS1zdHlsZX0ufSBBcnRodXIgRGVudCBpcyAl ZCB5ZWFycyBvbGQKJSUoZGlhcnktYW5uaXZlcnNhcnkgMTAgIDIgMTg2OSkgTWFoYXRtYSBHYW5k aGkgd291bGQgYmUgJWQgeWVhcnMgb2xkCkBlbmQgc21hbGxleGFtcGxlCgpPcmcgY2FuIGludGVy YWN0IHdpdGggRW1hY3MgYXBwb2ludG1lbnRzIG5vdGlmaWNhdGlvbiBmYWNpbGl0eS4gIFRvIGFk ZCBhbGwKdGhlIGFwcG9pbnRtZW50cyBvZiB5b3VyIGFnZW5kYSBmaWxlcywgdXNlIHRoZSBjb21t YW5kCkBjb2Rle29yZy1hZ2VuZGEtdG8tYXBwdH0uICBTZWUgdGhlIGRvY3N0cmluZyBmb3IgZGV0 YWlscy4KCkBub2RlIExpc3RhIGdsb2JhbCBUT0RPLCBDb2luY2lkaWVuZG8gbWFyY2FzIHkgcHJv cGllZGFkZXMsIEFnZW5kYSBzZW1hbmFsL2RpYXJpYSwgVmlzdGFzIGRlIGFnZW5kYSBpbnRlcm5h cwpAc3Vic2VjdGlvbiBUaGUgZ2xvYmFsIFRPRE8gbGlzdAoKLi4uLi4uLi4uLi4uLi5AcmVme0Nv bWFuZG9zIGRlIGxhIGFnZW5kYX0uCgpAdGFibGUgQGtiZApAaXRlbSBDLWMgYSB0Ck11ZXN0cmEg bGEgbGlzdGEgZ2xvYmFsIFRPRE8uIEVzdGEgY29sZWNjaUAnb24gZGUgaXRlbXMgVE9ETyBkZSB0 b2Rvcwpsb3MgYXJjaGl2b3MgZGUgbGEgYWdlbmRhIChAcHhyZWZ7VmlzdGFzIGRlIGxhIEFnZW5k YX0pIGVuIHVuIEAndW5pY28KYnVmZmVyLgpAaXRlbSBDLWMgYSBUCkxpa2UgdGhlIGFib3ZlLCBi dXQgYWxsb3dzIHNlbGVjdGlvbiBvZiBhIHNwZWNpZmljIFRPRE8ga2V5d29yZC4gCkBlbmQgdGFi bGUKCkBub2RlIENvaW5jaWRpZW5kbyBtYXJjYXMgeSBwcm9waWVkYWRlcywgTEAne0Bkb3RsZXNz e2l9fW5lYSBkZSB0aWVtcG8sIExpc3RhIGdsb2JhbCBUT0RPLCBWaXN0YXMgZGUgYWdlbmRhIGlu dGVybmFzCkBzdWJzZWN0aW9uIENvaW5jaWRpZW5kbyBtYXJjYXMgeSBwcm9waWVkYWRlcwoKLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gKEBweHJlZntFdGlxdWV0YXN9KSwgLi4uLi4u LgouLi4uLi4uIC4uLi4gKEBweHJlZntQcm9waWVkYWRlc30pLAouLiwuLi4uIC4uIC4uLi4gLi4u Li4uIC4uLi4uLiBAcmVme0NvbWFuZG9zIGRlIGxhIGFnZW5kYX0uCgpAdGFibGUgQGtiZApAaXRl bSBDLWMgYSBtClByb2R1Y2UgYSBsaXN0IG9mIGFsbCBoZWFkbGluZXMgdGhhdCBtYXRjaCBhIGdp dmVuIHNldCBvZiB0YWdzLiAgVGhlIGNvbW1hbmQKcHJvbXB0cyBmb3IgYSBzZWxlY3Rpb24gY3Jp dGVyaW9uLCB3aGljaCBpcyBhIGJvb2xlYW4gbG9naWMgZXhwcmVzc2lvbiB3aXRoCnRhZ3MsIGxp a2UgQHNhbXB7K3dvcmsrdXJnZW50LXdpdGhib3NzfSBvciBAc2FtcHt3b3JrfGhvbWV9IChAcHhy ZWZ7VGFnc30pLgpJZiB5b3Ugb2Z0ZW4gbmVlZCBhIHNwZWNpZmljIHNlYXJjaCwgZGVmaW5lIGEg Y3VzdG9tIGNvbW1hbmQgZm9yIGl0CihAcHhyZWZ7QWdlbmRhIGRpc3BhdGNoZXJ9KS4KQGl0ZW0g Qy1jIGEgTQpMaWtlIEBrYmR7Qy1jIGEgbX0sIGJ1dCBvbmx5IHNlbGVjdCBoZWFkbGluZXMgdGhh dCBhcmUgYWxzbyBUT0RPIGl0ZW1zLgpAZW5kIHRhYmxlCgpAc3Vic3ViaGVhZGluZyBNYXRjaCBz eW50YXgKCkEgc2VhcmNoIHN0cmluZyBjYW4gdXNlIEJvb2xlYW4gb3BlcmF0b3JzIEBzYW1weyZ9 IGZvciBBTkQgYW5kIEBzYW1we3x9IGZvcgpPUi4gIEBzYW1weyZ9IGJpbmRzIG1vcmUgc3Ryb25n bHkgdGhhbiBAc2FtcHt8fS4gIFBhcmVudGhlc2VzIGFyZSBjdXJyZW50bHkKbm90IGltcGxlbWVu dGVkLiAgRWFjaCBlbGVtZW50IGluIHRoZSBzZWFyY2ggaXMgZWl0aGVyIGEgdGFnLCBhIHJlZ3Vs YXIKZXhwcmVzc2lvbiBtYXRjaGluZyB0YWdzLCBvciBhbiBleHByZXNzaW9uIGxpa2UgQGNvZGV7 UFJPUEVSVFkgT1BFUkFUT1IKVkFMVUV9IHdpdGggYSBjb21wYXJpc29uIG9wZXJhdG9yLCBhY2Nl c3NpbmcgYSBwcm9wZXJ0eSB2YWx1ZS4gIEVhY2ggZWxlbWVudAptYXkgYmUgcHJlY2VkZWQgYnkg QHNhbXB7LX0sIHRvIHNlbGVjdCBhZ2FpbnN0IGl0LCBhbmQgQHNhbXB7K30gaXMgc3ludGFjdGlj CnN1Z2FyIGZvciBwb3NpdGl2ZSBzZWxlY3Rpb24uICBUaGUgQU5EIG9wZXJhdG9yIEBzYW1weyZ9 IGlzIG9wdGlvbmFsIHdoZW4KQHNhbXB7K30gb3IgQHNhbXB7LX0gaXMgcHJlc2VudC4gIEhlcmUg YXJlIHNvbWUgZXhhbXBsZXMsIHVzaW5nIG9ubHkgdGFncy4KCkB0YWJsZSBAc2FtcApAaXRlbSAr d29yay1ib3NzClNlbGVjdCBoZWFkbGluZXMgdGFnZ2VkIEBzYW1wezp3b3JrOn0sIGJ1dCBkaXNj YXJkIHRob3NlIGFsc28gdGFnZ2VkCkBzYW1wezpib3NzOn0uCkBpdGVtIHdvcmt8bGFwdG9wClNl bGVjdHMgbGluZXMgdGFnZ2VkIEBzYW1wezp3b3JrOn0gb3IgQHNhbXB7OmxhcHRvcDp9LgpAaXRl bSB3b3JrfGxhcHRvcCtuaWdodApMaWtlIGJlZm9yZSwgYnV0IHJlcXVpcmUgdGhlIEBzYW1wezps YXB0b3A6fSBsaW5lcyB0byBiZSB0YWdnZWQgYWxzbwpAc2FtcHs6bmlnaHQ6fS4KQGVuZCB0YWJs ZQoKWW91IG1heSBhbHNvIHRlc3QgZm9yIHByb3BlcnRpZXMgYXQgdGhlIHNhbWUgdGltZSBhcyBt YXRjaGluZyB0YWdzLCBzZWUgdGhlCm1hbnVhbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCkBub2Rl IExAJ3tAZG90bGVzc3tpfX1uZWEgZGUgdGllbXBvLCBWaXN0YSBkZSBiQCd1c3F1ZWRhLCBDb2lu Y2lkaWVuZG8gbWFyY2FzIHkgcHJvcGllZGFkZXMsIFZpc3RhcyBkZSBhZ2VuZGEgaW50ZXJuYXMK QHN1YnNlY3Rpb24gTEAne0Bkb3RsZXNze2l9fW5lYSBkZSB0aWVtcG8gcGFyYSB1biBzaW1wbGUg YXJjaGl2bwoKVGhlIHRpbWVsaW5lIHN1bW1hcml6ZXMgYWxsIHRpbWUtc3RhbXBlZCBpdGVtcyBm cm9tIGEgc2luZ2xlIE9yZyBtb2RlIGZpbGUKaW4gYSBAZW1waHt0aW1lLXNvcnRlZCB2aWV3fS4g IFRoZSBtYWluIHB1cnBvc2Ugb2YgdGhpcyBjb21tYW5kIGlzIHRvIGdpdmUKYW4gb3ZlcnZpZXcg b3ZlciBldmVudHMgaW4gYSBwcm9qZWN0LgoKQHRhYmxlIEBrYmQKQGl0ZW0gQy1jIGEgTApTaG93 IGEgdGltZS1zb3J0ZWQgdmlldyBvZiB0aGUgT3JnIGZpbGUsIHdpdGggYWxsIHRpbWUtc3RhbXBl ZCBpdGVtcy4gIFdoZW4KY2FsbGVkIHdpdGggYSBAa2Jke0MtdX0gcHJlZml4LCBhbGwgdW5maW5p c2hlZCBUT0RPIGVudHJpZXMgKHNjaGVkdWxlZCBvcgpub3QpIGFyZSBhbHNvIGxpc3RlZCB1bmRl ciB0aGUgY3VycmVudCBkYXRlLgpAZW5kIHRhYmxlCgpAbm9kZSBWaXN0YSBkZSBiQCd1c3F1ZWRh LCAsIExAJ3tAZG90bGVzc3tpfX1uZWEgZGUgdGllbXBvLCBWaXN0YXMgZGUgYWdlbmRhIGludGVy bmFzCkBzdWJzZWN0aW9uIFZpc3RhIGRlIGJAJ3VzcXVlZGEKClRoaXMgYWdlbmRhIHZpZXcgaXMg YSBnZW5lcmFsIHRleHQgc2VhcmNoIGZhY2lsaXR5IGZvciBPcmcgbW9kZSBlbnRyaWVzLiAgSXQK aXMgcGFydGljdWxhcmx5IHVzZWZ1bCB0byBmaW5kIG5vdGVzLgoKQHRhYmxlIEBrYmQKQGl0ZW0g Qy1jIGEgcwpUaGlzIGlzIGEgc3BlY2lhbCBzZWFyY2ggdGhhdCBsZXRzIHlvdSBzZWxlY3QgZW50 cmllcyBieSBtYXRjaGluZyBhCnN1YnN0cmluZyBvciBzcGVjaWZpYyB3b3JkcyB1c2luZyBhIGJv b2xlYW4gbG9naWMuCkBlbmQgdGFibGUKRm9yIGV4YW1wbGUsIHRoZSBzZWFyY2ggc3RyaW5nIEBz YW1we2NvbXB1dGVyIGVxdWlwbWVudH0gd2lsbCBmaW5kIGVudHJpZXMKdGhhdCBjb250YWluIEBz YW1we2NvbXB1dGVyIGVxdWlwbWVudH0gYXMgYSBzdWJzdHJpbmcuICBTZWFyY2ggdmlldyBjYW4g YWxzbwpzZWFyY2ggZm9yIHNwZWNpZmljIGtleXdvcmRzIGluIHRoZSBlbnRyeSwgdXNpbmcgQm9v bGVhbiBsb2dpYy4gIFRoZSBzZWFyY2gKc3RyaW5nIEBzYW1weytjb21wdXRlciArd2lmaSAtZXRo ZXJuZXQgLUB7OFwuMTFbYmddQH19IHdpbGwgc2VhcmNoIGZvciBub3RlCmVudHJpZXMgdGhhdCBj b250YWluIHRoZSBrZXl3b3JkcyBAY29kZXtjb21wdXRlcn0gYW5kIEBjb2Rle3dpZml9LCBidXQg bm90CnRoZSBrZXl3b3JkIEBjb2Rle2V0aGVybmV0fSwgYW5kIHdoaWNoIGFyZSBhbHNvIG5vdCBt YXRjaGVkIGJ5IHRoZSByZWd1bGFyCmV4cHJlc3Npb24gQGNvZGV7OFwuMTFbYmddfSwgbWVhbmlu ZyB0byBleGNsdWRlIGJvdGggOC4xMWIgYW5kIDguMTFnLiAKCk5vdGUgdGhhdCBpbiBhZGRpdGlv biB0byB0aGUgYWdlbmRhIGZpbGVzLCB0aGlzIGNvbW1hbmQgd2lsbCBhbHNvIHNlYXJjaCB0aGUK ZmlsZXMgbGlzdGVkIGluIEBjb2Rle29yZy1hZ2VuZGEtdGV4dC1zZWFyY2gtZXh0cmEtZmlsZXN9 LgoKQG5vZGUgQ29tYW5kb3MgZGUgbGEgYWdlbmRhLCBWaXN0YXMgZGUgYWdlbmRhIHBlcnNvbmFs aXphZGFzLCBWaXN0YXMgZGUgYWdlbmRhIGludGVybmFzLCBWaXN0YXMgZGUgbGEgQWdlbmRhCkBz ZWN0aW9uIENvbW1hbmRzIGluIHRoZSBhZ2VuZGEgYnVmZmVyCgpFbnRyaWVzIGluIHRoZSBhZ2Vu ZGEgYnVmZmVyIGFyZSBsaW5rZWQgYmFjayB0byB0aGUgT3JnIGZpbGUgb3IgZGlhcnkgZmlsZQp3 aGVyZSB0aGV5IG9yaWdpbmF0ZS4gIENvbW1hbmRzIGFyZSBwcm92aWRlZCB0byBzaG93IGFuZCBq dW1wIHRvIHRoZQpvcmlnaW5hbCBlbnRyeSBsb2NhdGlvbiwgYW5kIHRvIGVkaXQgdGhlIE9yZyBm aWxlcyBgYHJlbW90ZWx5JycgZnJvbSB0aGUKYWdlbmRhIGJ1ZmZlci4gIFRoaXMgaXMganVzdCBh IHNlbGVjdGlvbiBvZiB0aGUgbWFueSBjb21tYW5kcywgZXhwbG9yZSB0aGUKQGNvZGV7QWdlbmRh fSBtZW51IGFuZCB0aGUgbWFudWFsIGZvciBhIGNvbXBsZXRlIGxpc3QuCgpAdGFibGUgQGtiZApA dHN1YmhlYWRpbmd7TW90aW9ufQpAaXRlbSBuCk5leHQgbGluZSAoc2FtZSBhcyBAa2V5e3VwfSBh bmQgQGtiZHtDLXB9KS4KQGl0ZW0gcApQcmV2aW91cyBsaW5lIChzYW1lIGFzIEBrZXl7ZG93bn0g YW5kIEBrYmR7Qy1ufSkuICBAdHN1YmhlYWRpbmd7Vmlldy9HbyB0bwpPcmcgZmlsZX0KQGl0ZW0g bW91c2UtMwpAaXRlbXggQGtleXtTUEN9CkBjCkRpc3BsYXkgdGhlIG9yaWdpbmFsIGxvY2F0aW9u IG9mIHRoZSBpdGVtIGluIGFub3RoZXIgd2luZG93LiAgV2l0aCBwcmVmaXgKYXJnLCBtYWtlIHN1 cmUgdGhhdCB0aGUgZW50aXJlIGVudHJ5IGlzIG1hZGUgdmlzaWJsZSBpbiB0aGUgb3V0bGluZSwg bm90Cm9ubHkgdGhlIGhlYWRpbmcuCkBpdGVteCBAa2V5e1RBQn0KQGMKR28gdG8gdGhlIG9yaWdp bmFsIGxvY2F0aW9uIG9mIHRoZSBpdGVtIGluIGFub3RoZXIgd2luZG93LiAgVW5kZXIgRW1hY3Mg MjIsCkBrYmR7bW91c2UtMX0gd2lsbCBhbHNvIHdvcmsgZm9yIHRoaXMuCkBpdGVteCBAa2V5e1JF VH0KQGMKR28gdG8gdGhlIG9yaWdpbmFsIGxvY2F0aW9uIG9mIHRoZSBpdGVtIGFuZCBkZWxldGUg b3RoZXIgd2luZG93cy4KCkB0c3ViaGVhZGluZ3tDaGFuZ2UgZGlzcGxheX0KQGl0ZW0gbwpAYwpE ZWxldGUgb3RoZXIgd2luZG93cy4KQGl0ZW0gZCBAcnsvfSB3CkBjClN3aXRjaCB0byBkYXkvd2Vl ayB2aWV3LiAKQGl0ZW0gZiBAcnthbmR9IGIKQGMKR28gZm9yd2FyZC9iYWNrd2FyZCBpbiB0aW1l IHRvIGRpc3BsYXkgdGhlIGZvbGxvd2luZwpAY29kZXtvcmctYWdlbmRhLWN1cnJlbnQtc3Bhbn0g ZGF5cy4gIEZvciBleGFtcGxlLCBpZiB0aGUgZGlzcGxheSBjb3ZlcnMgYQp3ZWVrLCBzd2l0Y2gg dG8gdGhlIGZvbGxvd2luZy9wcmV2aW91cyB3ZWVrLgpAaXRlbSAuCkBjCkdvIHRvIHRvZGF5LgpA aXRlbSBqCkBjClByb21wdCBmb3IgYSBkYXRlIGFuZCBnbyB0aGVyZS4KQGl0ZW0gdiBsIEAgQHJ7 b3Igc2hvcnR9IEAgbApAYwpUb2dnbGUgTG9nYm9vayBtb2RlLiAgSW4gTG9nYm9vayBtb2RlLCBl bnRyaWVzIHRoYXQgd2VyZSBtYXJrZWQgRE9ORSB3aGlsZQpsb2dnaW5nIHdhcyBvbiAodmFyaWFi bGUgQGNvZGV7b3JnLWxvZy1kb25lfSkgYXJlIHNob3duIGluIHRoZSBhZ2VuZGEsIGFzCmFyZSBl bnRyaWVzIHRoYXQgaGF2ZSBiZWVuIGNsb2NrZWQgb24gdGhhdCBkYXkuICBXaGVuIGNhbGxlZCB3 aXRoIGEKQGtiZHtDLXV9IHByZWZpeCwgc2hvdyBhbGwgcG9zc2libGUgbG9nYm9vayBlbnRyaWVz LCBpbmNsdWRpbmcgc3RhdGUKY2hhbmdlcy4KQGl0ZW0gciBAcntvcn0gZwpSZWNyZWF0ZSB0aGUg YWdlbmRhIGJ1ZmZlciwgdG8gcmVmbGVjdCB0aGUgY2hhbmdlcy4KQGl0ZW0gcwpTYXZlIGFsbCBP cmcgYnVmZmVycyBpbiB0aGUgY3VycmVudCBFbWFjcyBzZXNzaW9uLCBhbmQgYWxzbyB0aGUgbG9j YXRpb25zIG9mCklEcy4KCkB0c3ViaGVhZGluZ3tTZWNvbmRhcnkgZmlsdGVyaW5nIGFuZCBxdWVy eSBlZGl0aW5nfQoKQGl0ZW0gLwpGaWx0ZXIgdGhlIGN1cnJlbnQgYWdlbmRhIHZpZXcgd2l0aCBy ZXNwZWN0IHRvIGEgdGFnLiAgWW91IGFyZSBwcm9tcHRlZCBmb3IKYSBsZXR0ZXIgdG8gc2VsZWN0 IGEgdGFnLiAgUHJlc3MgQHNhbXB7LX0gZmlyc3QgdG8gc2VsZWN0IGFnYWluc3QgdGhlIHRhZy4K CkBpdGVtIFwKTmFycm93IHRoZSBjdXJyZW50IGFnZW5kYSBmaWx0ZXIgYnkgYW4gYWRkaXRpb25h bCBjb25kaXRpb24uCgpAdHN1YmhlYWRpbmd7UmVtb3RlIGVkaXRpbmcgKHNlZSB0aGUgbWFudWFs IGZvciBtYW55IG1vcmUgY29tbWFuZHMpfQoKQGl0ZW0gMC05CkBjCkRpZ2l0IGFyZ3VtZW50LgpA aXRlbSB0CkBjCkNoYW5nZSB0aGUgVE9ETyBzdGF0ZSBvZiB0aGUgaXRlbSwgaW4gdGhlIGFnZW5k YSBhbmQgaW4gdGhlIG9yZyBmaWxlLgpAaXRlbSBDLWsKQGMKRGVsZXRlIHRoZSBjdXJyZW50IGFn ZW5kYSBpdGVtIGFsb25nIHdpdGggdGhlIGVudGlyZSBzdWJ0cmVlIGJlbG9uZ2luZyB0byBpdApp biB0aGUgb3JpZ2luYWwgT3JnIGZpbGUuCkBpdGVtIEMtYyBDLXcKQGMKUmVmaWxlIHRoZSBlbnRy eSBhdCBwb2ludC4KQGl0ZW0gQy1jIEMteCBDLWEgQCBAcntvciBzaG9ydH0gQCBhCkBjCkFyY2hp dmUgdGhlIHN1YnRyZWUgY29ycmVzcG9uZGluZyB0byB0aGUgZW50cnkgYXQgcG9pbnQgdXNpbmcg dGhlIGRlZmF1bHQKYXJjaGl2aW5nIGNvbW1hbmQgc2V0IGluIEBjb2Rle29yZy1hcmNoaXZlLWRl ZmF1bHQtY29tbWFuZH0uCkBpdGVtIEMtYyBDLXggQy1zIEAgQHJ7b3Igc2hvcnR9IEAgJApAYwpB cmNoaXZlIHRoZSBzdWJ0cmVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGN1cnJlbnQgaGVhZGxpbmUu CkBpdGVtIEMtYyBDLXMKQGMKU2NoZWR1bGUgdGhpcyBpdGVtLCB3aXRoIHByZWZpeCBhcmcgcmVt b3ZlIHRoZSBzY2hlZHVsaW5nIHRpbWVzdGFtcApAaXRlbSBDLWMgQy1kCkBjClNldCBhIGRlYWRs aW5lIGZvciB0aGlzIGl0ZW0sIHdpdGggcHJlZml4IGFyZyByZW1vdmUgdGhlIGRlYWRsaW5lLgpA aXRlbSBTLUBrZXl7cmlnaHR9IEBye2FuZH0gUy1Aa2V5e2xlZnR9CkBjCkNoYW5nZSB0aGUgdGlt ZXN0YW1wIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBsaW5lIGJ5IG9uZSBkYXkuCkBpdGVt IEkKQGMKU3RhcnQgdGhlIGNsb2NrIG9uIHRoZSBjdXJyZW50IGl0ZW0uCkBpdGVtIE8gLyBYClN0 b3AvY2FuY2VsIHRoZSBwcmV2aW91c2x5IHN0YXJ0ZWQgY2xvY2suCgpAaXRlbSBKCkp1bXAgdG8g dGhlIHJ1bm5pbmcgY2xvY2sgaW4gYW5vdGhlciB3aW5kb3cuCkBlbmQgdGFibGUKCkBub2RlIFZp c3RhcyBkZSBhZ2VuZGEgcGVyc29uYWxpemFkYXMsICwgQ29tYW5kb3MgZGUgbGEgYWdlbmRhLCBW aXN0YXMgZGUgbGEgQWdlbmRhCkBzZWN0aW9uIFZpc3RhcyBkZSBhZ2VuZGEgcGVyc29uYWxpemFk YXMKClRoZSBtYWluIGFwcGxpY2F0aW9uIG9mIGN1c3RvbSBzZWFyY2hlcyBpcyB0aGUgZGVmaW5p dGlvbiBvZiBrZXlib2FyZApzaG9ydGN1dHMgZm9yIGZyZXF1ZW50bHkgdXNlZCBzZWFyY2hlcywg ZWl0aGVyIGNyZWF0aW5nIGFuIGFnZW5kYSBidWZmZXIsIG9yCmEgc3BhcnNlIHRyZWUgKHRoZSBs YXR0ZXIgY292ZXJpbmcgb2YgY291cnNlIG9ubHkgdGhlIGN1cnJlbnQgYnVmZmVyKS4KQ3VzdG9t IGNvbW1hbmRzIGFyZSBjb25maWd1cmVkIGluIHRoZSB2YXJpYWJsZQpAY29kZXtvcmctYWdlbmRh LWN1c3RvbS1jb21tYW5kc30uICBZb3UgY2FuIGN1c3RvbWl6ZSB0aGlzIHZhcmlhYmxlLCBmb3IK ZXhhbXBsZSBieSBwcmVzc2luZyBAa2Jke0MtYyBhIEN9LiAgWW91IGNhbiBhbHNvIGRpcmVjdGx5 IHNldCBpdCB3aXRoIEVtYWNzCkxpc3AgaW4gQGZpbGV7LmVtYWNzfS4gIFRoZSBmb2xsb3dpbmcg ZXhhbXBsZSBjb250YWlucyBhbGwgdmFsaWQgc2VhcmNoCnR5cGVzOgoKQHNtYWxsbGlzcApAZ3Jv dXAKKHNldHEgb3JnLWFnZW5kYS1jdXN0b20tY29tbWFuZHMKICAgICAgJygoInciIHRvZG8gIldB SVRJTkciKQogICAgICAgICgidSIgdGFncyAiK2Jvc3MtdXJnZW50IikKICAgICAgICAoInYiIHRh Z3MtdG9kbyAiK2Jvc3MtdXJnZW50IikpKQpAZW5kIGdyb3VwCkBlbmQgc21hbGxsaXNwCgpAbm9p bmRlbnQKVGhlIGluaXRpYWwgc3RyaW5nIGluIGVhY2ggZW50cnkgZGVmaW5lcyB0aGUga2V5cyB5 b3UgaGF2ZSB0byBwcmVzcyBhZnRlcgp0aGUgZGlzcGF0Y2hlciBjb21tYW5kIEBrYmR7Qy1jIGF9 IGluIG9yZGVyIHRvIGFjY2VzcyB0aGUgY29tbWFuZC4gIFVzdWFsbHkKdGhpcyB3aWxsIGJlIGp1 c3QgYSBzaW5nbGUgY2hhcmFjdGVyLiAgVGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgdGhlIHNlYXJj aAp0eXBlLCBmb2xsb3dlZCBieSB0aGUgc3RyaW5nIG9yIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBi ZSB1c2VkIGZvciB0aGUKbWF0Y2hpbmcuICBUaGUgZXhhbXBsZSBhYm92ZSB3aWxsIHRoZXJlZm9y ZSBkZWZpbmU6CgpAdGFibGUgQGtiZApAaXRlbSBDLWMgYSB3CmFzIGEgZ2xvYmFsIHNlYXJjaCBm b3IgVE9ETyBlbnRyaWVzIHdpdGggQHNhbXB7V0FJVElOR30gYXMgdGhlIFRPRE8ga2V5d29yZApA aXRlbSBDLWMgYSB1CmFzIGEgZ2xvYmFsIHRhZ3Mgc2VhcmNoIGZvciBoZWFkbGluZXMgbWFya2Vk IEBzYW1wezpib3NzOn0gYnV0IG5vdApAc2FtcHs6dXJnZW50On0KQGl0ZW0gQy1jIGEgdgphcyB0 aGUgc2FtZSBzZWFyY2ggYXMgQGtiZHtDLWMgYSB1fSwgYnV0IGxpbWl0aW5nIHRoZSBzZWFyY2gg dG8gaGVhZGxpbmVzCnRoYXQgYXJlIGFsc28gVE9ETyBpdGVtcwpAZW5kIHRhYmxlCgpAc2VlYWxz b3sgQHVyZWZ7aHR0cDovL29yZ21vZGUub3JnL21hbnVhbC9BZ2VuZGEtVmlld3MuaHRtbCNBZ2Vu ZGEtVmlld3MsCkNoYXB0ZXIgMTAgb2YgdGhlIG1hbnVhbH1AKgpAdXJlZntodHRwOi8vb3JnbW9k ZS5vcmcvd29yZy9vcmctdHV0b3JpYWxzL29yZy1jdXN0b20tYWdlbmRhLWNvbW1hbmRzLnBocCwK TWF0IEx1bmRpbidzIHR1dG9yaWFsIGFib3V0IGN1c3RvbSBhZ2VuZGEgY29tbWFuZHN9QCoKQHVy ZWZ7aHR0cDovL3d3dy5uZXdhcnRpc2Fucy5jb20vMjAwNy8wOC91c2luZy1vcmctbW9kZS1hcy1h LWRheS1wbGFubmVyLmh0bWwsCkpvaG4gV2llZ2xleSdzIHNldHVwfX0KCkBub2RlIE1hcmNhZG8s IEV4cG9ydGFuZG8sIFZpc3RhcyBkZSBsYSBBZ2VuZGEsIFRvcApAY2hhcHRlciBNYXJjYXMgcGFy YSBlbnJpcXVlY2VyIGxhIGV4cG9ydGFjaUAnb24KCldoZW4gZXhwb3J0aW5nIE9yZy1tb2RlIGRv Y3VtZW50cywgdGhlIGV4cG9ydGVyIHRyaWVzIHRvIHJlZmxlY3QgdGhlCnN0cnVjdHVyZSBvZiB0 aGUgZG9jdW1lbnQgYXMgYWNjdXJhdGVseSBhcyBwb3NzaWJsZSBpbiB0aGUgYmFja2VuZC4gIFNp bmNlCmV4cG9ydCB0YXJnZXRzIGxpa2UgSFRNTCwgQExhVGVYe30sIG9yIERvY0Jvb2sgYWxsb3cg bXVjaCByaWNoZXIgZm9ybWF0dGluZywKT3JnIG1vZGUgaGFzIHJ1bGVzIG9uIGhvdyB0byBwcmVw YXJlIHRleHQgZm9yIHJpY2ggZXhwb3J0LiAgVGhpcyBzZWN0aW9uCnN1bW1hcml6ZXMgdGhlIG1h cmt1cCBydWxlcyB1c2VkIGluIGFuIE9yZy1tb2RlIGJ1ZmZlci4KCkBtZW51CiogRWxlbWVudG9z IGRlbCBtYXJjYWRvIGVzdHJ1Y3R1cmFsOjogIFRoZSBiYXNpYyBzdHJ1Y3R1cmUgYXMgc2VlbiBi eSB0aGUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0ZXIK KiBJbWFnZXMgYW5kIHRhYmxlczo6ICAgICAgICBUYWJsZXMgYW5kIEltYWdlcyB3aWxsIGJlIGlu Y2x1ZGVkCiogTGl0ZXJhbCBleGFtcGxlczo6ICAgICAgICAgU291cmNlIGNvZGUgZXhhbXBsZXMg d2l0aCBzcGVjaWFsIGZvcm1hdHRpbmcKKiBBcmNoaXZvcyBJbmNsdWRlOjogICAgICAgICBJbmNs dWRlIGFkZGl0aW9uYWwgZmlsZXMgaW50byBhIGRvY3VtZW50CiogQExhVGVYe30gZW1iZWJpZG86 OiAgICAgICAgQExhVGVYe30gY2FuIGJlIGZyZWVseSB1c2VkIGluc2lkZSBPcmcgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudHMKQGVuZCBtZW51CgpAbm9kZSBFbGVtZW50 b3MgZGVsIG1hcmNhZG8gZXN0cnVjdHVyYWwsIEltYWdlcyBhbmQgdGFibGVzLCBNYXJjYWRvLCBN YXJjYWRvCkBzZWN0aW9uIEVsZW1lbnRvcyBkZWwgbWFyY2FkbyBlc3RydWN0dXJhbAoKQG1lbnUK KiBUQCd7QGRvdGxlc3N7aX19dHVsbyBkZSBkb2N1bWVudG86OiAgV2hlcmUgdGhlIHRpdGxlIGlz IHRha2VuIGZyb20KKiBFbmNhYmV6YWRvcyB5IHNlY2Npb25lczo6ICBUaGUgZG9jdW1lbnQgc3Ry dWN0dXJlIGFzIHNlZW4gYnkgdGhlIGV4cG9ydGVyCiogVGFibGEgZGUgY29udGVuaWRvczo6ICAg ICAgVGhlIGlmIGFuZCB3aGVyZSBvZiB0aGUgdGFibGUgb2YgY29udGVudHMKKiBQQCdhcnJhZm9z OjogICAgICAgICAgICAgICBQQCdhcnJhZm9zCiogQCdFbmZhc2lzIHkgbW9ub2VzcGFjaW86OiAg TmVncmlsbGEsIGl0QCdhbGljYSwgZXRjLgoqIExAJ3tAZG90bGVzc3tpfX1uZWFzIGRlIGNvbWVu dGFyaW9zOjogIFF1QCdlICpubyogc2VyQCdhIGV4cG9ydGFkbwpAZW5kIG1lbnUKCkBub2RlIFRA J3tAZG90bGVzc3tpfX10dWxvIGRlIGRvY3VtZW50bywgRW5jYWJlemFkb3MgeSBzZWNjaW9uZXMs IEVsZW1lbnRvcyBkZWwgbWFyY2FkbyBlc3RydWN0dXJhbCwgRWxlbWVudG9zIGRlbCBtYXJjYWRv IGVzdHJ1Y3R1cmFsCkBzdWJoZWFkaW5nIFRAJ3tAZG90bGVzc3tpfX10dWxvIGRlIGRvY3VtZW50 bwoKQG5vaW5kZW50ClRoZSB0aXRsZSBvZiB0aGUgZXhwb3J0ZWQgZG9jdW1lbnQgaXMgdGFrZW4g ZnJvbSB0aGUgc3BlY2lhbCBsaW5lCgpAc21hbGxleGFtcGxlCiMrVElUTEU6IFRoaXMgaXMgdGhl IHRpdGxlIG9mIHRoZSBkb2N1bWVudApAZW5kIHNtYWxsZXhhbXBsZQoKQG5vZGUgRW5jYWJlemFk b3MgeSBzZWNjaW9uZXMsIFRhYmxhIGRlIGNvbnRlbmlkb3MsIFRAJ3tAZG90bGVzc3tpfX10dWxv IGRlIGRvY3VtZW50bywgRWxlbWVudG9zIGRlbCBtYXJjYWRvIGVzdHJ1Y3R1cmFsCkBzdWJoZWFk aW5nIEVuY2FiZXphZG9zIHkgc2VjY2lvbmVzCgogLi4uLi4uLi4uLi4uLi4uLiAuLi4uLi4uLi4u LiBAcmVme0VzdHJ1Y3R1cmEgZGVsIGRvY3VtZW50b30sIC4uLi4uLi4gLi4uCgpAc21hbGxleGFt cGxlCiMrT1BUSU9OUzogSDo0CkBlbmQgc21hbGxleGFtcGxlCgpAbm9kZSBUYWJsYSBkZSBjb250 ZW5pZG9zLCBQQCdhcnJhZm9zLCBFbmNhYmV6YWRvcyB5IHNlY2Npb25lcywgRWxlbWVudG9zIGRl bCBtYXJjYWRvIGVzdHJ1Y3R1cmFsCkBzdWJoZWFkaW5nIFRhYmxhIGRlIGNvbnRlbmlkb3MKClRo ZSB0YWJsZSBvZiBjb250ZW50cyBpcyBub3JtYWxseSBpbnNlcnRlZCBkaXJlY3RseSBiZWZvcmUg dGhlIGZpcnN0CmhlYWRsaW5lIG9mIHRoZSBmaWxlLgoKQHNtYWxsZXhhbXBsZQojK09QVElPTlM6 IHRvYzoyICAgICAgICAgIChvbmx5IHRvIHR3byBsZXZlbHMgaW4gVE9DKQojK09QVElPTlM6IHRv YzpuaWwgICAgICAgIChubyBUT0MgYXQgYWxsKQpAZW5kIHNtYWxsZXhhbXBsZQoKQG5vZGUgUEAn YXJyYWZvcywgQCdFbmZhc2lzIHkgbW9ub2VzcGFjaW8sIFRhYmxhIGRlIGNvbnRlbmlkb3MsIEVs ZW1lbnRvcyBkZWwgbWFyY2FkbyBlc3RydWN0dXJhbApAc3ViaGVhZGluZyBQYXJhZ3JhcGhzLCBs aW5lIGJyZWFrcywgYW5kIHF1b3RpbmcKClBhcmFncmFwaHMgYXJlIHNlcGFyYXRlZCBieSBhdCBs ZWFzdCBvbmUgZW1wdHkgbGluZS4gIElmIHlvdSBuZWVkIHRvIGVuZm9yY2UKYSBsaW5lIGJyZWFr IHdpdGhpbiBhIHBhcmFncmFwaCwgdXNlIEBzYW1we1xcfSBhdCB0aGUgZW5kIG9mIGEgbGluZS4K ClRvIGtlZXAgdGhlIGxpbmUgYnJlYWtzIGluIGEgcmVnaW9uLCBidXQgb3RoZXJ3aXNlIHVzZSBu b3JtYWwgZm9ybWF0dGluZywKeW91IGNhbiB1c2UgdGhpcyBjb25zdHJ1Y3QsIHdoaWNoIGNhbiBh bHNvIGJlIHVzZWQgdG8gZm9ybWF0IHBvZXRyeS4KCkBzbWFsbGV4YW1wbGUKIytCRUdJTl9WRVJT RQogR3JlYXQgY2xvdWRzIG92ZXJoZWFkCiBUaW55IGJsYWNrIGJpcmRzIHJpc2UgYW5kIGZhbGwK IFNub3cgY292ZXJzIEVtYWNzCgogICAgIC0tIEFsZXhTY2hyb2VkZXIKIytFTkRfVkVSU0UKQGVu ZCBzbWFsbGV4YW1wbGUKCldoZW4gcXVvdGluZyBhIHBhc3NhZ2UgZnJvbSBhbm90aGVyIGRvY3Vt ZW50LCBpdCBpcyBjdXN0b21hcnkgdG8gZm9ybWF0IHRoaXMKYXMgYSBwYXJhZ3JhcGggdGhhdCBp cyBpbmRlbnRlZCBvbiBib3RoIHRoZSBsZWZ0IGFuZCB0aGUgcmlnaHQgbWFyZ2luLiAgWW91CmNh biBpbmNsdWRlIHF1b3RhdGlvbnMgaW4gT3JnLW1vZGUgZG9jdW1lbnRzIGxpa2UgdGhpczoKCkBz bWFsbGV4YW1wbGUKIytCRUdJTl9RVU9URQpFdmVyeXRoaW5nIHNob3VsZCBiZSBtYWRlIGFzIHNp bXBsZSBhcyBwb3NzaWJsZSwKYnV0IG5vdCBhbnkgc2ltcGxlciAtLSBBbGJlcnQgRWluc3RlaW4K IytFTkRfUVVPVEUKQGVuZCBzbWFsbGV4YW1wbGUKCklmIHlvdSB3b3VsZCBsaWtlIHRvIGNlbnRl ciBzb21lIHRleHQsIGRvIGl0IGxpa2UgdGhpczoKQHNtYWxsZXhhbXBsZQojK0JFR0lOX0NFTlRF UgpFdmVyeXRoaW5nIHNob3VsZCBiZSBtYWRlIGFzIHNpbXBsZSBhcyBwb3NzaWJsZSwgXFwKYnV0 IG5vdCBhbnkgc2ltcGxlcgojK0VORF9DRU5URVIKQGVuZCBzbWFsbGV4YW1wbGUKCkBub2RlIEAn RW5mYXNpcyB5IG1vbm9lc3BhY2lvLCBMQCd7QGRvdGxlc3N7aX19bmVhcyBkZSBjb21lbnRhcmlv cywgUEAnYXJyYWZvcywgRWxlbWVudG9zIGRlbCBtYXJjYWRvIGVzdHJ1Y3R1cmFsCkBzdWJoZWFk aW5nIEAnRW5mYXNpcyB5IG1vbm9lc3BhY2lvCgpZb3UgY2FuIG1ha2Ugd29yZHMgQGJ7KmJvbGQq fSwgQGl7L2l0YWxpYy99LCBfdW5kZXJsaW5lZF8sIEBjb2Rlez1jb2RlPX0gYW5kCkBjb2Rle352 ZXJiYXRpbX59LCBhbmQsIGlmIHlvdSBtdXN0LCBAc2FtcHsrc3RyaWtlLXRocm91Z2grfS4gIFRl eHQgaW4gdGhlCmNvZGUgYW5kIHZlcmJhdGltIHN0cmluZyBpcyBub3QgcHJvY2Vzc2VkIGZvciBP cmctbW9kZSBzcGVjaWZpYyBzeW50YXgsIGl0CmlzIGV4cG9ydGVkIHZlcmJhdGltLiAgVG8gaW5z ZXJ0IGEgaG9yaXpvbnRhbCBydWxlcywgdXNlIGEgbGluZSBjb25zaXN0aW5nCm9mIG9ubHkgZGFz aGVzLCBhbmQgYXQgbGVhc3QgNSBvZiB0aGVtLgoKQG5vZGUgTEAne0Bkb3RsZXNze2l9fW5lYXMg ZGUgY29tZW50YXJpb3MsICwgQCdFbmZhc2lzIHkgbW9ub2VzcGFjaW8sIEVsZW1lbnRvcyBkZWwg bWFyY2FkbyBlc3RydWN0dXJhbApAc3ViaGVhZGluZyBMQCd7QGRvdGxlc3N7aX19bmVhcyBkZSBj b21lbnRhcmlvcwoKTGluZXMgc3RhcnRpbmcgd2l0aCB6ZXJvIG9yIG1vcmUgd2hpdGVzcGFjZSBj aGFyYWN0ZXJzIGZvbGxvd2VkIGJ5IEBzYW1weyN9CmFyZSB0cmVhdGVkIGFzIGNvbW1lbnRzIGFu ZCB3aWxsIG5ldmVyIGJlIGV4cG9ydGVkLiAgQWxzbyBlbnRpcmUgc3VidHJlZXMKc3RhcnRpbmcg d2l0aCB0aGUgd29yZCBAc2FtcHtDT01NRU5UfSB3aWxsIG5ldmVyIGJlIGV4cG9ydGVkLiAgRmlu YWxseSwKcmVnaW9ucyBzdXJyb3VuZGVkIGJ5IEBzYW1weyMrQkVHSU5fQ09NTUVOVH0gLi4uIEBz YW1weyMrRU5EX0NPTU1FTlR9IHdpbGwKbm90IGJlIGV4cG9ydGVkLgoKQHRhYmxlIEBrYmQKQGl0 ZW0gQy1jIDsKVG9nZ2xlIHRoZSBDT01NRU5UIGtleXdvcmQgYXQgdGhlIGJlZ2lubmluZyBvZiBh biBlbnRyeS4KQGVuZCB0YWJsZQoKQG5vZGUgSW1hZ2VzIGFuZCB0YWJsZXMsIExpdGVyYWwgZXhh bXBsZXMsIEVsZW1lbnRvcyBkZWwgbWFyY2FkbyBlc3RydWN0dXJhbCwgTWFyY2FkbwpAc2VjdGlv biBJbWFnZXMgYW5kIFRhYmxlcwoKRm9yIE9yZyBtb2RlIHRhYmxlcywgdGhlIGxpbmVzIGJlZm9y ZSB0aGUgZmlyc3QgaG9yaXpvbnRhbCBzZXBhcmF0b3IgbGluZQp3aWxsIGJlY29tZSB0YWJsZSBo ZWFkZXIgbGluZXMuICBZb3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGxpbmVzIHNvbWV3aGVyZQpi ZWZvcmUgdGhlIHRhYmxlIHRvIGFzc2lnbiBhIGNhcHRpb24gYW5kIGEgbGFiZWwgZm9yIGNyb3Nz IHJlZmVyZW5jZXMsIGFuZAppbiB0aGUgdGV4dCB5b3UgY2FuIHJlZmVyIHRvIHRoZSBvYmplY3Qg d2l0aCBAY29kZXtccmVmQHt0YWI6YmFzaWMtZGF0YUB9fToKCkBzbWFsbGV4YW1wbGUKIytDQVBU SU9OOiBUaGlzIGlzIHRoZSBjYXB0aW9uIGZvciB0aGUgbmV4dCB0YWJsZSAob3IgbGluaykKIytM QUJFTDogICB0Ymw6YmFzaWMtZGF0YQogICB8IC4uLiB8IC4uLnwKICAgfC0tLS0tfC0tLS18CkBl bmQgc21hbGxleGFtcGxlCgpTb21lIGJhY2tlbmRzIChIVE1MLCBATGFUZVh7fSwgYW5kIERvY0Jv b2spIGFsbG93IHlvdSB0byBkaXJlY3RseSBpbmNsdWRlCmltYWdlcyBpbnRvIHRoZSBleHBvcnRl ZCBkb2N1bWVudC4gIE9yZyBkb2VzIHRoaXMsIGlmIGEgbGluayB0byBhbiBpbWFnZQpmaWxlcyBk b2VzIG5vdCBoYXZlIGEgZGVzY3JpcHRpb24gcGFydCwgZm9yIGV4YW1wbGUgQGNvZGV7W1suL2lt Zy9hLmpwZ11dfS4KSWYgeW91IHdpc2ggdG8gZGVmaW5lIGEgY2FwdGlvbiBmb3IgdGhlIGltYWdl IGFuZCBtYXliZSBhIGxhYmVsIGZvciBpbnRlcm5hbApjcm9zcyByZWZlcmVuY2VzLCB5b3Ugc3Vy ZSB0aGF0IHRoZSBsaW5rIGlzIG9uIGEgbGluZSBieSBpdHNlbGYgcHJlY2VkZSBpdAp3aXRoOgoK QHNtYWxsZXhhbXBsZQojK0NBUFRJT046IFRoaXMgaXMgdGhlIGNhcHRpb24gZm9yIHRoZSBuZXh0 IGZpZ3VyZSBsaW5rIChvciB0YWJsZSkKIytMQUJFTDogICBmaWc6U0VELUhSNDA0OQpbWy4vaW1n L2EuanBnXV0KQGVuZCBzbWFsbGV4YW1wbGUKCllvdSBtYXkgYWxzbyBkZWZpbmUgYWRkaXRpb25h bCBhdHRyaWJ1dGVzIGZvciB0aGUgZmlndXJlLiAgQXMgdGhpcyBpcwpiYWNrZW5kLXNwZWNpZmlj LCBzZWUgdGhlIHNlY3Rpb25zIGFib3V0IHRoZSBpbmRpdmlkdWFsIGJhY2tlbmRzIGZvciBtb3Jl CmluZm9ybWF0aW9uLgoKCkBub2RlIExpdGVyYWwgZXhhbXBsZXMsIEFyY2hpdm9zIEluY2x1ZGUs IEltYWdlcyBhbmQgdGFibGVzLCBNYXJjYWRvCkBzZWN0aW9uIExpdGVyYWwgZXhhbXBsZXMKCllv dSBjYW4gaW5jbHVkZSBsaXRlcmFsIGV4YW1wbGVzIHRoYXQgc2hvdWxkIG5vdCBiZSBzdWJqZWN0 ZWQgdG8gbWFya3VwLgpTdWNoIGV4YW1wbGVzIHdpbGwgYmUgdHlwZXNldCBpbiBtb25vc3BhY2Us IHNvIHRoaXMgaXMgd2VsbCBzdWl0ZWQgZm9yCnNvdXJjZSBjb2RlIGFuZCBzaW1pbGFyIGV4YW1w bGVzLgoKQHNtYWxsZXhhbXBsZQojK0JFR0lOX0VYQU1QTEUKU29tZSBleGFtcGxlIGZyb20gYSB0 ZXh0IGZpbGUuCiMrRU5EX0VYQU1QTEUKQGVuZCBzbWFsbGV4YW1wbGUKCkZvciBzaW1wbGljaXR5 IHdoZW4gdXNpbmcgc21hbGwgZXhhbXBsZXMsIHlvdSBjYW4gYWxzbyBzdGFydCB0aGUgZXhhbXBs ZQpsaW5lcyB3aXRoIGEgY29sb24gZm9sbG93ZWQgYnkgYSBzcGFjZS4gIFRoZXJlIG1heSBhbHNv IGJlIGFkZGl0aW9uYWwKd2hpdGVzcGFjZSBiZWZvcmUgdGhlIGNvbG9uOgoKQHNtYWxsZXhhbXBs ZQpIZXJlIGlzIGFuIGV4YW1wbGUKICAgOiBTb21lIGV4YW1wbGUgZnJvbSBhIHRleHQgZmlsZS4K QGVuZCBzbWFsbGV4YW1wbGUKCkZvciBzb3VyY2UgY29kZSBmcm9tIGEgcHJvZ3JhbW1pbmcgbGFu Z3VhZ2UsIG9yIGFueSBvdGhlciB0ZXh0IHRoYXQgY2FuIGJlCm1hcmtlZCB1cCBieSBmb250LWxv Y2sgaW4gRW1hY3MsIHlvdSBjYW4gYXNrIGZvciBpdCB0byBsb29rIGxpa2UgdGhlCmZvbnRpZmll ZCBFbWFjcyBidWZmZXIKCkBzbWFsbGV4YW1wbGUKIytCRUdJTl9TUkMgZW1hY3MtbGlzcAooZGVm dW4gb3JnLXhvciAoYSBiKQogICAiRXhjbHVzaXZlIG9yLiIKICAgKGlmIGEgKG5vdCBiKSBiKSkK IytFTkRfU1JDCkBlbmQgc21hbGxleGFtcGxlCgpUbyBlZGl0IHRoZSBleGFtcGxlIGluIGEgc3Bl Y2lhbCBidWZmZXIgc3VwcG9ydGluZyB0aGlzIGxhbmd1YWdlLCB1c2UKQGtiZHtDLWMgJ30gdG8g Ym90aCBlbnRlciBhbmQgbGVhdmUgdGhlIGVkaXRpbmcgYnVmZmVyLgoKQG5vZGUgQXJjaGl2b3Mg SW5jbHVkZSwgQExhVGVYe30gZW1iZWJpZG8sIExpdGVyYWwgZXhhbXBsZXMsIE1hcmNhZG8KQHNl Y3Rpb24gQXJjaGl2b3MgSW5jbHVkZQoKRHVyaW5nIGV4cG9ydCwgeW91IGNhbiBpbmNsdWRlIHRo ZSBjb250ZW50IG9mIGFub3RoZXIgZmlsZS4gIEZvciBleGFtcGxlLCB0bwppbmNsdWRlIHlvdXIg QGZpbGV7LmVtYWNzfSBmaWxlLCB5b3UgY291bGQgdXNlOgoKQHNtYWxsZXhhbXBsZQojK0lOQ0xV REU6ICJ+Ly5lbWFjcyIgc3JjIGVtYWNzLWxpc3AKQGVuZCBzbWFsbGV4YW1wbGUKQG5vaW5kZW50 ClRoZSBvcHRpb25hbCBzZWNvbmQgYW5kIHRoaXJkIHBhcmFtZXRlciBhcmUgdGhlIG1hcmt1cCAo ZS5nLkA6IEBzYW1we3F1b3RlfSwKQHNhbXB7ZXhhbXBsZX0sIG9yIEBzYW1we3NyY30pLCBhbmQs IGlmIHRoZSBtYXJrdXAgaXMgQHNhbXB7c3JjfSwgdGhlCmxhbmd1YWdlIGZvciBmb3JtYXR0aW5n IHRoZSBjb250ZW50cy4gIFRoZSBtYXJrdXAgaXMgb3B0aW9uYWwsIGlmIGl0IGlzIG5vdApnaXZl biwgdGhlIHRleHQgd2lsbCBiZSBhc3N1bWVkIHRvIGJlIGluIE9yZyBtb2RlIGZvcm1hdCBhbmQg d2lsbCBiZQpwcm9jZXNzZWQgbm9ybWFsbHkuIEBrYmR7Qy1jICd9IHdpbGwgdmlzaXQgdGhlIGlu Y2x1ZGVkIGZpbGUuCgpAbm9kZSBATGFUZVh7fSBlbWJlYmlkbywgLCBBcmNoaXZvcyBJbmNsdWRl LCBNYXJjYWRvCkBzZWN0aW9uIEBMYVRlWHt9IGVtYmViaWRvCgpGb3Igc2NpZW50aWZpYyBub3Rl cyB3aGljaCBuZWVkIHRvIGJlIGFibGUgdG8gY29udGFpbiBtYXRoZW1hdGljYWwgc3ltYm9scwph bmQgdGhlIG9jY2FzaW9uYWwgZm9ybXVsYSwgT3JnLW1vZGUgc3VwcG9ydHMgZW1iZWRkaW5nIEBM YVRlWHt9IGNvZGUgaW50bwppdHMgZmlsZXMuICBZb3UgY2FuIGRpcmVjdGx5IHVzZSBUZVgtbGlr ZSBtYWNyb3MgZm9yIHNwZWNpYWwgc3ltYm9scywgZW50ZXIKZm9ybXVsYXMgYW5kIGVudGlyZSBA TGFUZVh7fSBlbnZpcm9ubWVudHMuCgpAc21hbGxleGFtcGxlCkFuZ2xlcyBhcmUgd3JpdHRlbiBh cyBHcmVlayBsZXR0ZXJzIFxhbHBoYSwgXGJldGEgYW5kIFxnYW1tYS4gIFRoZSBtYXNzIGlmCnRo ZSBzdW4gaXMgTV9zdW4gPSAxLjk4OSB4IDEwXjMwIGtnLiAgVGhlIHJhZGl1cyBvZiB0aGUgc3Vu IGlzIFJfQHtzdW5AfSA9CjYuOTYgeCAxMF44IG0uICBJZiAkYV4yPWIkIGFuZCAkYj0yJCwgdGhl biB0aGUgc29sdXRpb24gbXVzdCBiZSBlaXRoZXIKJGE9K1xzcXJ0QHsyQH0kIG9yICRhPS1cc3Fy dEB7MkB9JC4KClxiZWdpbkB7ZXF1YXRpb25AfQp4PVxzcXJ0QHtiQH0KXGVuZEB7ZXF1YXRpb25A fQpAZW5kIHNtYWxsZXhhbXBsZQpAbm9pbmRlbnQgV2l0aApAdXJlZntodHRwOi8vb3JnbW9kZS5v cmcvbWFudWFsL0xhVGVYLWZyYWdtZW50cy5odG1sI0xhVGVYLWZyYWdtZW50cyxzcGVjaWFsCnNl dHVwfSwgQExhVGVYe30gc25pcHBldHMgd2lsbCBiZSBpbmNsdWRlZCBhcyBpbWFnZXMgd2hlbiBl eHBvcnRpbmcgdG8gSFRNTC4KCkBzZWVhbHNveyBAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvbWFu dWFsL01hcmt1cC5odG1sI01hcmt1cCwgQ2hhcHRlciAxMSBvZgp0aGUgbWFudWFsfX0KCkBub2Rl IEV4cG9ydGFuZG8sIFB1YmxpY2FjaUAnb24sIE1hcmNhZG8sIFRvcApAY2hhcHRlciBFeHBvcnRh bmRvCgpPcmctbW9kZSBkb2N1bWVudHMgY2FuIGJlIGV4cG9ydGVkIGludG8gYSB2YXJpZXR5IG9m IG90aGVyIGZvcm1hdHM6IEFTQ0lJCmV4cG9ydCBmb3IgaW5jbHVzaW9uIGludG8gZW1haWxzLCBI VE1MIHRvIHB1Ymxpc2ggb24gdGhlIHdlYiwgQExhVGVYe30vUERGCmZvciBiZWF1dGlmdWwgcHJp bnRlZCBkb2N1bWVudHMgYW5kIERvY0Jvb2sgdG8gZW50ZXIgdGhlIHdvcmxkIG9mIG1hbnkgb3Ro ZXIKZm9ybWF0cyB1c2luZyBEb2NCb29rIHRvb2xzLiAgVGhlcmUgaXMgYWxzbyBleHBvcnQgdG8g aUNhbGVuZGFyIGZvcm1hdCBzbwp0aGF0IHBsYW5uaW5nIGluZm9ybWF0aW9uIGNhbiBiZSBpbmNv cnBvcmF0ZWQgaW50byBkZXNrdG9wIGNhbGVuZGFycy4KCkBtZW51CiogT3BjaW9uZXMgZGUgZXhw b3J0YWNpQCdvbjo6ICBQZXItZmlsZSBleHBvcnQgc2V0dGluZ3MKKiBFbCBkaXNwZW5zYWRvciBk ZSBleHBvcnRhY2lAJ29uOjogIEhvdyB0byBhY2Nlc3MgZXhwb3J0ZXIgY29tbWFuZHMKKiBFeHBv cnRhY2lAJ29uIEFTQ0lJL0xhdGluLTEvVVRGLTg6OiAgRXhwb3J0aW5nIHRvIGZsYXQgZmlsZXMg d2l0aCBlbmNvZGluZwoqIEhUTUwgZXhwb3J0OjogICAgICAgICAgICAgIEV4cG9ydGFuZG8gYSBI VE1MCiogRXhwb3J0YXIgQExhVGVYe30geSBQREY6OiAgRXhwb3J0YW5kbyBhIEBMYVRlWHt9LCB5 IHByb2Nlc2FuZG8gYSBQREYKKiBFeHBvcnRhciBEb2NCb29rOjogICAgICAgICBFeHBvcnRhbmRv IGEgRG9jQm9vawoqIEV4cG9ydGFyIGlDYWxlbmRhcjo6ICAgICAgIAkJCkBlbmQgbWVudQoKQG5v ZGUgT3BjaW9uZXMgZGUgZXhwb3J0YWNpQCdvbiwgRWwgZGlzcGVuc2Fkb3IgZGUgZXhwb3J0YWNp QCdvbiwgRXhwb3J0YW5kbywgRXhwb3J0YW5kbwpAc2VjdGlvbiBPcGNpb25lcyBkZSBleHBvcnRh Y2lAJ29uCgpUaGUgZXhwb3J0ZXIgcmVjb2duaXplcyBzcGVjaWFsIGxpbmVzIGluIHRoZSBidWZm ZXIgd2hpY2ggcHJvdmlkZSBhZGRpdGlvbmFsCmluZm9ybWF0aW9uLiAgVGhlc2UgbGluZXMgbWF5 IGJlIHB1dCBhbnl3aGVyZSBpbiB0aGUgZmlsZS4gIFRoZSB3aG9sZSBzZXQgb2YKbGluZXMgY2Fu IGJlIGluc2VydGVkIGludG8gdGhlIGJ1ZmZlciB3aXRoIEBrYmR7Qy1jIEMtZSB0fS4KCkB0YWJs ZSBAa2JkCkBpdGVtIEMtYyBDLWUgdApJbnNlcnQgdGVtcGxhdGUgd2l0aCBleHBvcnQgb3B0aW9u cywgc2VlIGV4YW1wbGUgYmVsb3cuCkBlbmQgdGFibGUKCkBzbWFsbGV4YW1wbGUKIytUSVRMRTog ICAgICAgdGhlIHRpdGxlIHRvIGJlIHNob3duIChkZWZhdWx0IGlzIHRoZSBidWZmZXIgbmFtZSkK IytBVVRIT1I6ICAgICAgdGhlIGF1dGhvciAoZGVmYXVsdCB0YWtlbiBmcm9tIEBjb2Rle3VzZXIt ZnVsbC1uYW1lfSkKIytEQVRFOiAgICAgICAgYSBkYXRlLCBmaXhlZCwgb2YgYSBmb3JtYXQgc3Ry aW5nIGZvciBAY29kZXtmb3JtYXQtdGltZS1zdHJpbmd9CiMrRU1BSUw6ICAgICAgIGhpcy9oZXIg ZW1haWwgYWRkcmVzcyAoZGVmYXVsdCBmcm9tIEBjb2Rle3VzZXItbWFpbC1hZGRyZXNzfSkKIytE RVNDUklQVElPTjogdGhlIHBhZ2UgZGVzY3JpcHRpb24sIGUuZy5AOiBmb3IgdGhlIFhIVE1MIG1l dGEgdGFnCiMrS0VZV09SRFM6ICAgIHRoZSBwYWdlIGtleXdvcmRzLCBlLmcuQDogZm9yIHRoZSBY SFRNTCBtZXRhIHRhZwojK0xBTkdVQUdFOiAgICBsYW5ndWFnZSBmb3IgSFRNTCwgZS5nLkA6IEBz YW1we2VufSAoQGNvZGV7b3JnLWV4cG9ydC1kZWZhdWx0LWxhbmd1YWdlfSkKIytURVhUOiAgICAg ICAgU29tZSBkZXNjcmlwdGl2ZSB0ZXh0IHRvIGJlIGluc2VydGVkIGF0IHRoZSBiZWdpbm5pbmcu CiMrVEVYVDogICAgICAgIFNldmVyYWwgbGluZXMgbWF5IGJlIGdpdmVuLgojK09QVElPTlM6ICAg ICBIOjIgbnVtOnQgdG9jOnQgXG46bmlsIEBAOnQgOjp0IHw6dCBeOnQgZjp0IFRlWDp0IC4uLgoj K0xJTktfVVA6ICAgICB0aGUgYGB1cCcnIGxpbmsgb2YgYW4gZXhwb3J0ZWQgcGFnZQojK0xJTktf SE9NRTogICB0aGUgYGBob21lJycgbGluayBvZiBhbiBleHBvcnRlZCBwYWdlCiMrTEFURVhfSEVB REVSOiBleHRyYSBsaW5lKHMpIGZvciB0aGUgQExhVGVYe30gaGVhZGVyLCBsaWtlIFx1c2VwYWNr YWdlQHt4eXpAfQpAZW5kIHNtYWxsZXhhbXBsZQoKQG5vZGUgRWwgZGlzcGVuc2Fkb3IgZGUgZXhw b3J0YWNpQCdvbiwgRXhwb3J0YWNpQCdvbiBBU0NJSS9MYXRpbi0xL1VURi04LCBPcGNpb25lcyBk ZSBleHBvcnRhY2lAJ29uLCBFeHBvcnRhbmRvCkBzZWN0aW9uIEVsIGRpc3BlbnNhZG9yIGRlIGV4 cG9ydGFjaUAnb24KCkFsbCBleHBvcnQgY29tbWFuZHMgY2FuIGJlIHJlYWNoZWQgdXNpbmcgdGhl IGV4cG9ydCBkaXNwYXRjaGVyLCB3aGljaCBpcyBhCnByZWZpeCBrZXkgdGhhdCBwcm9tcHRzIGZv ciBhbiBhZGRpdGlvbmFsIGtleSBzcGVjaWZ5aW5nIHRoZSBjb21tYW5kLgpOb3JtYWxseSB0aGUg ZW50aXJlIGZpbGUgaXMgZXhwb3J0ZWQsIGJ1dCBpZiB0aGVyZSBpcyBhbiBhY3RpdmUgcmVnaW9u IHRoYXQKY29udGFpbnMgb25lIG91dGxpbmUgdHJlZSwgdGhlIGZpcnN0IGhlYWRpbmcgaXMgdXNl ZCBhcyBkb2N1bWVudCB0aXRsZSBhbmQKdGhlIHN1YnRyZWVzIGFyZSBleHBvcnRlZC4KCkB0YWJs ZSBAa2JkCkBpdGVtIEMtYyBDLWUKRGlzcGF0Y2hlciBmb3IgZXhwb3J0IGFuZCBwdWJsaXNoaW5n IGNvbW1hbmRzLgpAZW5kIHRhYmxlCgpAbm9kZSBFeHBvcnRhY2lAJ29uIEFTQ0lJL0xhdGluLTEv VVRGLTgsIEhUTUwgZXhwb3J0LCBFbCBkaXNwZW5zYWRvciBkZSBleHBvcnRhY2lAJ29uLCBFeHBv cnRhbmRvCkBzZWN0aW9uIEV4cG9ydGFjaUAnb24gQVNDSUkvTGF0aW4tMS9VVEYtOAoKQVNDSUkg ZXhwb3J0IHByb2R1Y2VzIGEgc2ltcGxlIGFuZCB2ZXJ5IHJlYWRhYmxlIHZlcnNpb24gb2YgYW4g T3JnLW1vZGUKZmlsZSwgY29udGFpbmluZyBvbmx5IHBsYWluIEFTQ0lJLiAgTGF0aW4tMSBhbmQg VVRGLTggZXhwb3J0IGF1Z21lbnQgdGhlCmZpbGUgd2l0aCBzcGVjaWFsIGNoYXJhY3RlcnMgYW5k IHN5bWJvbHMgYXZhaWxhYmxlIGluIHRoZXNlIGVuY29kaW5ncy4KCkB0YWJsZSBAa2JkCkBpdGVt IEMtYyBDLWUgYQpFeHBvcnQgYXMgQVNDSUkgZmlsZS4KQGl0ZW0gQy1jIEMtZSBuIEAgQCBAcnth bmR9IEAgQCBDLWMgQy1lIE4KTGlrZSB0aGUgYWJvdmUgY29tbWFuZHMsIGJ1dCB1c2UgTGF0aW4t MSBlbmNvZGluZy4KQGl0ZW0gQy1jIEMtZSB1IEAgQCBAcnthbmR9IEAgQCBDLWMgQy1lIFUKTGlr ZSB0aGUgYWJvdmUgY29tbWFuZHMsIGJ1dCB1c2UgVVRGLTggZW5jb2RpbmcuCkBlbmQgdGFibGUK CkBub2RlIEhUTUwgZXhwb3J0LCBFeHBvcnRhciBATGFUZVh7fSB5IFBERiwgRXhwb3J0YWNpQCdv biBBU0NJSS9MYXRpbi0xL1VURi04LCBFeHBvcnRhbmRvCkBzZWN0aW9uIEhUTUwgZXhwb3J0CgpA dGFibGUgQGtiZApAaXRlbSBDLWMgQy1lIGgKRXhwb3J0IGFzIEhUTUwgZmlsZSBAZmlsZXtteWZp bGUuaHRtbH0uCkBpdGVtIEMtYyBDLWUgYgpFeHBvcnQgYXMgSFRNTCBmaWxlIGFuZCBpbW1lZGlh dGVseSBvcGVuIGl0IHdpdGggYSBicm93c2VyLgpAZW5kIHRhYmxlCgpUbyBpbnNlcnQgSFRNTCB0 aGF0IHNob3VsZCBiZSBjb3BpZWQgdmVyYmF0aW0gdG8gdGhlIGV4cG9ydGVkIGZpbGUgdXNlCmVp dGhlcgoKQHNtYWxsZXhhbXBsZQojK0hUTUw6IExpdGVyYWwgSFRNTCBjb2RlIGZvciBleHBvcnQK QGVuZCBzbWFsbGV4YW1wbGUKQG5vaW5kZW50IG9yCkBzbWFsbGV4YW1wbGUKIytCRUdJTl9IVE1M CkFsbCBsaW5lcyBiZXR3ZWVuIHRoZXNlIG1hcmtlcnMgYXJlIGV4cG9ydGVkIGxpdGVyYWxseQoj K0VORF9IVE1MCkBlbmQgc21hbGxleGFtcGxlCgpAbm9kZSBFeHBvcnRhciBATGFUZVh7fSB5IFBE RiwgRXhwb3J0YXIgRG9jQm9vaywgSFRNTCBleHBvcnQsIEV4cG9ydGFuZG8KQHNlY3Rpb24gRXhw b3J0YXIgQExhVGVYe30geSBQREYKCkB0YWJsZSBAa2JkCkBpdGVtIEMtYyBDLWUgbApFeHBvcnQg YXMgQExhVGVYe30gZmlsZSBAZmlsZXtteWZpbGUudGV4fS4KQGl0ZW0gQy1jIEMtZSBwCkV4cG9y dGFuZG8gYSBATGFUZVh7fSB5IHByb2Nlc2FuZG8gYSBQREYKQGl0ZW0gQy1jIEMtZSBkCkV4cG9y dCBhcyBATGFUZVh7fSBhbmQgdGhlbiBwcm9jZXNzIHRvIFBERiwgdGhlbiBvcGVuIHRoZSByZXN1 bHRpbmcgUERGCmZpbGUuCkBlbmQgdGFibGUKCkJ5IGRlZmF1bHQsIHRoZSBATGFUZVh7fSBvdXRw dXQgdXNlcyB0aGUgY2xhc3MgQGNvZGV7YXJ0aWNsZX0uICBZb3UgY2FuCmNoYW5nZSB0aGlzIGJ5 IGFkZGluZyBhbiBvcHRpb24gbGlrZSBAY29kZXsjK0xhVGVYX0NMQVNTOiBteWNsYXNzfSBpbiB5 b3VyCmZpbGUuICBUaGUgY2xhc3MgbXVzdCBiZSBsaXN0ZWQgaW4gQGNvZGV7b3JnLWV4cG9ydC1s YXRleC1jbGFzc2VzfS4KCi4uLi4uLi4uIEByZWZ7QExhVGVYe30gZW1iZWJpZG99LCAuLi4uLgoK QG5vZGUgRXhwb3J0YXIgRG9jQm9vaywgRXhwb3J0YXIgaUNhbGVuZGFyLCBFeHBvcnRhciBATGFU ZVh7fSB5IFBERiwgRXhwb3J0YW5kbwpAc2VjdGlvbiBFeHBvcnRhciBEb2NCb29rCgpAdGFibGUg QGtiZApAaXRlbSBDLWMgQy1lIEQKRXhwb3J0IGFzIERvY0Jvb2sgZmlsZS4KQGVuZCB0YWJsZQoK U2ltaWxhcmx5IHRvIHRoZSBIVE1MIGV4cG9ydGVyLCB5b3UgY2FuIHVzZSBAY29kZXsjK0RPQ0JP T0s6fSBhbmQKQGNvZGV7IytCRUdJTl9ET0NCT09LIC4uLiAjK0VORF9ET0NCT09LfSBjb25zdHJ1 Y3QgdG8gYWRkIHZlcmJhdGltIEBMYVRlWHt9CmNvZGUuCgpAbm9kZSBFeHBvcnRhciBpQ2FsZW5k YXIsICwgRXhwb3J0YXIgRG9jQm9vaywgRXhwb3J0YW5kbwpAc2VjdGlvbiBFeHBvcnRhciBpQ2Fs ZW5kYXIKCkB0YWJsZSBAa2JkCkBpdGVtIEMtYyBDLWUgaQpDcmVhdGUgaUNhbGVuZGFyIGVudHJp ZXMgZm9yIHRoZSBjdXJyZW50IGZpbGUgaW4gYSBAZmlsZXsuaWNzfSBmaWxlLgpAaXRlbSBDLWMg Qy1lIGMKQ3JlYXRlIGEgc2luZ2xlIGxhcmdlIGlDYWxlbmRhciBmaWxlIGZyb20gYWxsIGZpbGVz IGluCkBjb2Rle29yZy1hZ2VuZGEtZmlsZXN9IGFuZCB3cml0ZSBpdCB0byB0aGUgZmlsZSBnaXZl biBieQpAY29kZXtvcmctY29tYmluZWQtYWdlbmRhLWljYWxlbmRhci1maWxlfS4KQGVuZCB0YWJs ZQoKQHNlZWFsc297IEB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy9tYW51YWwvRXhwb3J0aW5nLmh0 bWwjRXhwb3J0aW5nLCBDaGFwdGVyCjEyIG9mIHRoZSBtYW51YWx9QCoKQHVyZWZ7aHR0cDovL29y Z21vZGUub3JnL3dvcmcvb3JnLXR1dG9yaWFscy9pbWFnZXMtYW5kLXhodG1sLWV4cG9ydC5waHAs ClNlYmFzdGlhbiBSb3NlJ3MgaW1hZ2UgaGFuZGxpbmcgdHV0b3JpYWx9QCoKQHVyZWZ7aHR0cDov L29yZ21vZGUub3JnL3dvcmcvb3JnLXR1dG9yaWFscy9vcmctbGF0ZXgtZXhwb3J0LnBocCwgVGhv bWFzCkR5ZSdzIExhVGVYIGV4cG9ydCB0dXRvcmlhbH0KQHVyZWZ7aHR0cDovL29yZ21vZGUub3Jn L3dvcmcvb3JnLXR1dG9yaWFscy9vcmctYmVhbWVyL3R1dG9yaWFsLnBocCwgRXJpYwpGcmFnYSdz IEJFQU1FUiBwcmVzZW50YXRpb24gdHV0b3JpYWx9fQoKQG5vZGUgUHVibGljYWNpQCdvbiwgVHJh YmFqYW5kbyBjb24gQ0Anb2RpZ28gRnVlbnRlLCBFeHBvcnRhbmRvLCBUb3AKQGNoYXB0ZXIgUHVi bGljYWNpQCdvbgoKT3JnIGluY2x1ZGVzIGEgcHVibGlzaGluZyBtYW5hZ2VtZW50IHN5c3RlbSB0 aGF0IGFsbG93cyB5b3UgdG8gY29uZmlndXJlCmF1dG9tYXRpYyBIVE1MIGNvbnZlcnNpb24gb2Yg QGVtcGh7cHJvamVjdHN9IGNvbXBvc2VkIG9mIGludGVybGlua2VkIG9yZwpmaWxlcy4gIFlvdSBj YW4gYWxzbyBjb25maWd1cmUgT3JnIHRvIGF1dG9tYXRpY2FsbHkgdXBsb2FkIHlvdXIgZXhwb3J0 ZWQKSFRNTCBwYWdlcyBhbmQgcmVsYXRlZCBhdHRhY2htZW50cywgc3VjaCBhcyBpbWFnZXMgYW5k IHNvdXJjZSBjb2RlIGZpbGVzLCB0bwphIHdlYiBzZXJ2ZXIuICBGb3IgZGV0YWlsZWQgaW5zdHJ1 Y3Rpb25zIGFib3V0IHNldHVwLCBzZWUgdGhlIG1hbnVhbC4KCkhlcmUgaXMgYW4gZXhhbXBsZToK CkBzbWFsbGxpc3AKKHNldHEgb3JnLXB1Ymxpc2gtcHJvamVjdC1hbGlzdAogICAgICAnKCgib3Jn IgogICAgICAgICA6YmFzZS1kaXJlY3RvcnkgIn4vb3JnLyIKICAgICAgICAgOnB1Ymxpc2hpbmct ZGlyZWN0b3J5ICJ+L3B1YmxpY19odG1sIgogICAgICAgICA6c2VjdGlvbi1udW1iZXJzIG5pbAog ICAgICAgICA6dGFibGUtb2YtY29udGVudHMgbmlsCiAgICAgICAgIDpzdHlsZSAiPGxpbmsgcmVs PVwic3R5bGVzaGVldFwiCiAgICAgICAgICAgICAgICBocmVmPVwiLi4vb3RoZXIvbXlzdHlsZS5j c3NcIgogICAgICAgICAgICAgICAgdHlwZT1cInRleHQvY3NzXCIvPiIpKSkKQGVuZCBzbWFsbGxp c3AKCkB0YWJsZSBAa2JkCkBpdGVtIEMtYyBDLWUgQwpQcm9tcHQgZm9yIGEgc3BlY2lmaWMgcHJv amVjdCBhbmQgcHVibGlzaCBhbGwgZmlsZXMgdGhhdCBiZWxvbmcgdG8gaXQuCkBpdGVtIEMtYyBD LWUgUApQdWJsaXNoIHRoZSBwcm9qZWN0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgZmlsZS4KQGl0 ZW0gQy1jIEMtZSBGClB1Ymxpc2ggb25seSB0aGUgY3VycmVudCBmaWxlLgpAaXRlbSBDLWMgQy1l IEUKUHVibGlzaCBldmVyeSBwcm9qZWN0LgpAZW5kIHRhYmxlCgpPcmcgdXNlcyB0aW1lc3RhbXBz IHRvIHRyYWNrIHdoZW4gYSBmaWxlIGhhcyBjaGFuZ2VkLiAgVGhlIGFib3ZlIGZ1bmN0aW9ucwpu b3JtYWxseSBvbmx5IHB1Ymxpc2ggY2hhbmdlZCBmaWxlcy4gIFlvdSBjYW4gb3ZlcnJpZGUgdGhp cyBhbmQgZm9yY2UKcHVibGlzaGluZyBvZiBhbGwgZmlsZXMgYnkgZ2l2aW5nIGEgcHJlZml4IGFy Z3VtZW50IHRvIGFueSBvZiB0aGUgY29tbWFuZHMKYWJvdmUuCgpAc2VlYWxzb3sgQHVyZWZ7aHR0 cDovL29yZ21vZGUub3JnL21hbnVhbC9QdWJsaXNoaW5nLmh0bWwjUHVibGlzaGluZywKQ2hhcHRl ciAxMyBvZiB0aGUgbWFudWFsfUAqCkB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy93b3JnL29yZy10 dXRvcmlhbHMvb3JnLXB1Ymxpc2gtaHRtbC10dXRvcmlhbC5waHAsClNlYmFzdGlhbiBSb3NlJ3Mg cHVibGlzaGluZyB0dXRvcmlhbH1AKgpAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvd29yZy9vcmct dHV0b3JpYWxzL29yZy1qZWt5bGwucGhwLCBJYW4gQmFydG9uJ3MKSmVreWxsL2Jsb2dnaW5nIHNl dHVwfX0KCkBub2RlIFRyYWJhamFuZG8gY29uIENAJ29kaWdvIEZ1ZW50ZSwgTWlzY2VsQCdhbmVv cywgUHVibGljYWNpQCdvbiwgVG9wCkBjaGFwdGVyIFRyYWJhamFuZG8gY29uIGNAJ29kaWdvIGZ1 ZW50ZQpPcmctbW9kZSBwcm92aWRlcyBhIG51bWJlciBvZiBmZWF0dXJlcyBmb3Igd29ya2luZyB3 aXRoIHNvdXJjZSBjb2RlLAppbmNsdWRpbmcgZWRpdGluZyBvZiBjb2RlIGJsb2NrcyBpbiB0aGVp ciBuYXRpdmUgbWFqb3ItbW9kZSwgZXZhbHVhdGlvbiBvZgpjb2RlIGJsb2NrcywgdGFuZ2xpbmcg b2YgY29kZSBibG9ja3MsIGFuZCBleHBvcnRpbmcgY29kZSBibG9ja3MgYW5kIHRoZWlyCnJlc3Vs dHMgaW4gc2V2ZXJhbCBmb3JtYXRzLgoKQHN1YmhlYWRpbmcgU3RydWN0dXJlIG9mIENvZGUgQmxv Y2tzClRoZSBzdHJ1Y3R1cmUgb2YgY29kZSBibG9ja3MgaXMgYXMgZm9sbG93czoKCkBleGFtcGxl CiMrTkFNRTogPG5hbWU+CiMrQkVHSU5fU1JDIDxsYW5ndWFnZT4gPHN3aXRjaGVzPiA8aGVhZGVy IGFyZ3VtZW50cz4KICA8Ym9keT4KIytFTkRfU1JDCkBlbmQgZXhhbXBsZQoKV2hlcmUgQGNvZGV7 PG5hbWU+fSBpcyBhIHN0cmluZyB1c2VkIHRvIG5hbWUgdGhlIGNvZGUgYmxvY2ssCkBjb2Rlezxs YW5ndWFnZT59IHNwZWNpZmllcyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGNvZGUgYmxvY2sgKGUuZy5A OgpAY29kZXtlbWFjcy1saXNwfSwgQGNvZGV7c2hlbGx9LCBAY29kZXtSfSwgQGNvZGV7cHl0aG9u fSwgZXRjLi4uKSwKQGNvZGV7PHN3aXRjaGVzPn0gY2FuIGJlIHVzZWQgdG8gY29udHJvbCBleHBv cnQgb2YgdGhlIGNvZGUgYmxvY2ssCkBjb2RlezxoZWFkZXIgYXJndW1lbnRzPn0gY2FuIGJlIHVz ZWQgdG8gY29udHJvbCBtYW55IGFzcGVjdHMgb2YgY29kZSBibG9jawpiZWhhdmlvciBhcyBkZW1v bnN0cmF0ZWQgYmVsb3csIGFuZCBAY29kZXs8Ym9keT59IGNvbnRhaW5zIHRoZSBhY3R1YWwgc291 cmNlCmNvZGUuCgpAc3ViaGVhZGluZyBFZGl0YW5kbyBjQCdvZGlnbyBmdWVudGUKVXNlIEBrYmR7 Qy1jICd9IHRvIGVkaXQgdGhlIGN1cnJlbnQgY29kZSBibG9jay4gIFRoaXMgYnJpbmdzIHVwIGEg bGFuZ3VhZ2UKbWFqb3ItbW9kZSBlZGl0IGJ1ZmZlciBjb250YWluaW5nIHRoZSBib2R5IG9mIHRo ZSBjb2RlIGJsb2NrLiAgU2F2aW5nIHRoaXMKYnVmZmVyIHdpbGwgd3JpdGUgdGhlIG5ldyBjb250 ZW50cyBiYWNrIHRvIHRoZSBPcmcgYnVmZmVyLiAgVXNlIEBrYmR7Qy1jICd9CmFnYWluIHRvIGV4 aXQgdGhlIGVkaXQgYnVmZmVyLgoKQHN1YmhlYWRpbmcgRXZhbHVhdGluZyBjb2RlIGJsb2NrcwpV c2UgQGtiZHtDLWMgQy1jfSB0byBldmFsdWF0ZSB0aGUgY3VycmVudCBjb2RlIGJsb2NrIGFuZCBp bnNlcnQgaXRzIHJlc3VsdHMKaW4gdGhlIE9yZy1tb2RlIGJ1ZmZlci4gIEJ5IGRlZmF1bHQsIGV2 YWx1YXRpb24gaXMgb25seSB0dXJuZWQgb24gZm9yCkBjb2Rle2VtYWNzLWxpc3B9IGNvZGUgYmxv Y2tzLCBob3dldmVyIHN1cHBvcnQgZXhpc3RzIGZvciBldmFsdWF0aW5nIGJsb2NrcwppbiBtYW55 IGxhbmd1YWdlcy4gIEZvciBhIGNvbXBsZXRlIGxpc3Qgb2Ygc3VwcG9ydGVkIGxhbmd1YWdlcyBz ZWUgdGhlCm1hbnVhbC4gIFRoZSBmb2xsb3dpbmcgc2hvd3MgYSBjb2RlIGJsb2NrIGFuZCBpdHMg cmVzdWx0cy4KCkBleGFtcGxlCiMrQkVHSU5fU1JDIGVtYWNzLWxpc3AKICAoKyAxIDIgMyA0KQoj K0VORF9TUkMKCiMrUkVTVUxUUzoKOiAxMApAZW5kIGV4YW1wbGUKCkBzdWJoZWFkaW5nIEV4dHJh eWVuZG8gY0Anb2RpZ28gZnVlbnRlClVzZSBAa2Jke0MtYyBDLXYgdH0gdG8gY3JlYXRlIHB1cmUg c291cmNlIGNvZGUgZmlsZXMgYnkgZXh0cmFjdGluZyBjb2RlIGZyb20Kc291cmNlIGJsb2NrcyBp biB0aGUgY3VycmVudCBidWZmZXIuICBUaGlzIGlzIHJlZmVycmVkIHRvIGFzCmBgdGFuZ2xpbmcn Jy0tLWEgdGVybSBhZG9wdGVkIGZyb20gdGhlIGxpdGVyYXRlIHByb2dyYW1taW5nIGNvbW11bml0 eS4KRHVyaW5nIGBgdGFuZ2xpbmcnJyBvZiBjb2RlIGJsb2NrcyB0aGVpciBib2RpZXMgYXJlIGV4 cGFuZGVkIHVzaW5nCkBjb2Rle29yZy1iYWJlbC1leHBhbmQtc3JjLWJsb2NrfSB3aGljaCBjYW4g ZXhwYW5kIGJvdGggdmFyaWFibGUgYW5kCmBgbm93ZWInJyBzdHlsZSByZWZlcmVuY2VzLiAgSW4g b3JkZXIgdG8gdGFuZ2xlIGEgY29kZSBibG9jayBpdCBtdXN0IGhhdmUgYQpAY29kZXs6dGFuZ2xl fSBoZWFkZXIgYXJndW1lbnQsIHNlZSB0aGUgbWFudWFsIGZvciBkZXRhaWxzLgoKQHN1YmhlYWRp bmcgTGlicmFyeSBvZiBCYWJlbApVc2UgQGtiZHtDLWMgQy12IGx9IHRvIGxvYWQgdGhlIGNvZGUg YmxvY2tzIGZyb20gYW4gT3JnLW1vZGUgZmlsZXMgaW50byB0aGUKYGBMaWJyYXJ5IG9mIEJhYmVs JycsIHRoZXNlIGJsb2NrcyBjYW4gdGhlbiBiZSBldmFsdWF0ZWQgZnJvbSBhbnkgT3JnLW1vZGUK YnVmZmVyLiAgQSBjb2xsZWN0aW9uIG9mIGdlbmVyYWxseSB1c2VmdWwgY29kZSBibG9ja3MgaXMg ZGlzdHJpYnV0ZWQgd2l0aApPcmctbW9kZSBpbiBAY29kZXtjb250cmliL2xpYnJhcnktb2YtYmFi ZWwub3JnfS4KCkBzdWJoZWFkaW5nIEhlYWRlciBBcmd1bWVudHMKTWFueSBhc3BlY3RzIG9mIHRo ZSBldmFsdWF0aW9uIGFuZCBleHBvcnQgb2YgY29kZSBibG9ja3MgYXJlIGNvbnRyb2xsZWQKdGhy b3VnaCBoZWFkZXIgYXJndW1lbnRzLiAgVGhlc2UgY2FuIGJlIHNwZWNpZmllZCBnbG9iYWxseSwg YXQgdGhlIGZpbGUKbGV2ZWwsIGF0IHRoZSBvdXRsaW5lIHN1YnRyZWUgbGV2ZWwsIGFuZCBhdCB0 aGUgaW5kaXZpZHVhbCBjb2RlIGJsb2NrCmxldmVsLiAgVGhlIGZvbGxvd2luZyBkZXNjcmliZXMg c29tZSBvZiB0aGUgaGVhZGVyIGFyZ3VtZW50cy4KQHRhYmxlIEBjb2RlCkBpdGVtIDp2YXIKVGhl IEBjb2Rlezp2YXJ9IGhlYWRlciBhcmd1bWVudCBpcyB1c2VkIHRvIHBhc3MgYXJndW1lbnRzIHRv IGNvZGUgYmxvY2tzLgpUaGUgdmFsdWVzIHBhc3NlZCB0byBhcmd1bWVudHMgY2FuIGJlIGxpdGVy YWwgdmFsdWVzLCB2YWx1ZXMgZnJvbSBvcmctbW9kZQp0YWJsZXMgYW5kIGxpdGVyYWwgZXhhbXBs ZSBibG9ja3MsIG9yIHRoZSByZXN1bHRzIG9mIG90aGVyIG5hbWVkIGNvZGUKYmxvY2tzLgpAaXRl bSA6cmVzdWx0cwpUaGUgQGNvZGV7OnJlc3VsdHN9IGhlYWRlciBhcmd1bWVudCBjb250cm9scyB0 aGUgQGVtcGh7Y29sbGVjdGlvbn0sCkBlbXBoe3R5cGV9LCBhbmQgQGVtcGh7aGFuZGxpbmd9IG9m IGNvZGUgYmxvY2sgcmVzdWx0cy4gIFZhbHVlcyBvZgpAY29kZXtvdXRwdXR9IG9yIEBjb2Rle3Zh bHVlfSAodGhlIGRlZmF1bHQpIHNwZWNpZnkgaG93IHJlc3VsdHMgYXJlCmNvbGxlY3RlZCBmcm9t IGEgY29kZSBibG9jaydzIGV2YWx1YXRpb24uICBWYWx1ZXMgb2YgQGNvZGV7dmVjdG9yfSwKQGNv ZGV7c2NhbGFyfSBAY29kZXtmaWxlfSBAY29kZXtyYXd9IEBjb2Rle2h0bWx9IEBjb2Rle2xhdGV4 fSBhbmQKQGNvZGV7Y29kZX0gc3BlY2lmeSB0aGUgdHlwZSBvZiB0aGUgcmVzdWx0cyBvZiB0aGUg Y29kZSBibG9jayB3aGljaCBkaWN0YXRlcwpob3cgdGhleSB3aWxsIGJlIGluY29ycG9yYXRlZCBp bnRvIHRoZSBPcmctbW9kZSBidWZmZXIuICBWYWx1ZXMgb2YKQGNvZGV7c2lsZW50fSwgQGNvZGV7 cmVwbGFjZX0sIEBjb2Rle3ByZXBlbmR9LCBhbmQgQGNvZGV7YXBwZW5kfSBzcGVjaWZ5CmhhbmRs aW5nIG9mIGNvZGUgYmxvY2sgcmVzdWx0cywgc3BlY2lmaWNhbGx5IGlmIGFuZCBob3cgdGhlIHJl c3VsdHMgc2hvdWxkCmJlIGluc2VydGVkIGludG8gdGhlIE9yZy1tb2RlIGJ1ZmZlci4KQGl0ZW0g OnNlc3Npb24KQSBoZWFkZXIgYXJndW1lbnQgb2YgQGNvZGV7OnNlc3Npb259IHdpbGwgY2F1c2Ug dGhlIGNvZGUgYmxvY2sgdG8gYmUKZXZhbHVhdGVkIGluIGEgcGVyc2lzdGVudCBpbnRlcmFjdGl2 ZSBpbmZlcmlvciBwcm9jZXNzIGluIEVtYWNzLiAgVGhpcwphbGxvd3MgZm9yIHBlcnNpc3Rpbmcg c3RhdGUgYmV0d2VlbiBjb2RlIGJsb2NrIGV2YWx1YXRpb25zLCBhbmQgZm9yIG1hbnVhbAppbnNw ZWN0aW9uIG9mIHRoZSByZXN1bHRzIG9mIGV2YWx1YXRpb24uCkBpdGVtIDpleHBvcnRzCkFueSBj b21iaW5hdGlvbiBvZiB0aGUgQGVtcGh7Y29kZX0gb3IgdGhlIEBlbXBoe3Jlc3VsdHN9IG9mIGEg YmxvY2sgY2FuIGJlCnJldGFpbmVkIG9uIGV4cG9ydCwgdGhpcyBpcyBzcGVjaWZpZWQgYnkgc2V0 dGluZyB0aGUgQGNvZGV7OnJlc3VsdHN9IGhlYWRlcgphcmd1bWVudCB0byBAY29kZXtjb2RlfSBA Y29kZXtyZXN1bHRzfSBAY29kZXtub25lfSBvciBAY29kZXtib3RofS4KQGl0ZW0gOnRhbmdsZQpB IGhlYWRlciBhcmd1bWVudCBvZiBAY29kZXs6dGFuZ2xlIHllc30gd2lsbCBjYXVzZSBhIGNvZGUg YmxvY2sncyBjb250ZW50cwp0byBiZSB0YW5nbGVkIHRvIGEgZmlsZSBuYW1lZCBhZnRlciB0aGUg ZmlsZW5hbWUgb2YgdGhlIE9yZy1tb2RlIGJ1ZmZlci4gIEFuCmFsdGVybmF0ZSBmaWxlIG5hbWUg Y2FuIGJlIHNwZWNpZmllZCB3aXRoIEBjb2Rlezp0YW5nbGUgZmlsZW5hbWV9LgpAaXRlbSA6Y2Fj aGUKQSBoZWFkZXIgYXJndW1lbnQgb2YgQGNvZGV7OmNhY2hlIHllc30gd2lsbCBjYXVzZSBhc3Nv Y2lhdGUgYSBoYXNoIG9mIHRoZQpleHBhbmRlZCBjb2RlIGJsb2NrIHdpdGggdGhlIHJlc3VsdHMs IGVuc3VyaW5nIHRoYXQgY29kZSBibG9ja3MgYXJlIG9ubHkKcmUtcnVuIHdoZW4gdGhlaXIgaW5w dXRzIGhhdmUgY2hhbmdlZC4KQGl0ZW0gOm5vd2ViCkEgaGVhZGVyIGFyZ3VtZW50IG9mIEBjb2Rl ezpub3dlYiB5ZXN9IHdpbGwgZXhwYW5kIGBgbm93ZWInJyBzdHlsZQpyZWZlcmVuY2VzIG9uIGV2 YWx1YXRpb24gYW5kIHRhbmdsaW5nLgpAaXRlbSA6ZmlsZQpDb2RlIGJsb2NrcyB3aGljaCBvdXRw dXQgcmVzdWx0cyB0byBmaWxlcyAoZS5nLkA6IGdyYXBocywgZGlhZ3JhbXMgYW5kCmZpZ3VyZXMp ICBjYW4gYWNjZXB0IGEgQGNvZGV7OmZpbGUgZmlsZW5hbWV9IGhlYWRlciBhcmd1bWVudCBpbiB3 aGljaCBjYXNlCnRoZSByZXN1bHRzIGFyZSBzYXZlZCB0byB0aGUgbmFtZWQgZmlsZSwgYW5kIGEg bGluayB0byB0aGUgZmlsZSBpcyBpbnNlcnRlZAppbnRvIHRoZSBPcmctbW9kZSBidWZmZXIuCkBl bmQgdGFibGUKCkBzZWVhbHNvewpAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvbWFudWFsL0xpdGVy YWwtZXhhbXBsZXMuaHRtbCNMaXRlcmFsLWV4YW1wbGVzLApDaGFwdGVyIDExLjMgb2YgdGhlIG1h bnVhbH1AKgpAdXJlZntodHRwOi8vb3JnbW9kZS5vcmcvd29yZy9vcmctY29udHJpYi9iYWJlbC9p bmRleC5waHAsIFRoZSBCYWJlbCBzaXRlIG9uCldvcmd9fQoKQG5vZGUgTWlzY2VsQCdhbmVvcywg LCBUcmFiYWphbmRvIGNvbiBDQCdvZGlnbyBGdWVudGUsIFRvcApAY2hhcHRlciBNaXNjZWxAJ2Fu ZW9zCgpAbWVudQoqIFRlcm1pbmFjaUAnb246OiAgICAgICAgICAgIE0tVEFCIHNhYmUgcXVAJ2Ug bmVjZXNpdGEKKiBWaXN0YSBsaW1waWE6OiAgICAgICAgICAgICBFbGltaW5hY2lAJ29uIGRlIGxv cyBhc3RlcmlzY29zIGluaWNpYWxlcyBlbiBlbCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG91dGxpbmUKKiBPcmcgbUAnb3ZpbDo6ICAgICAgICAgICAgICBPcmctbW9kZSBlbiBlbCBp UGhvbmUKQGVuZCBtZW51CgpAbm9kZSBUZXJtaW5hY2lAJ29uLCBWaXN0YSBsaW1waWEsIE1pc2Nl bEAnYW5lb3MsIE1pc2NlbEAnYW5lb3MKQHNlY3Rpb24gVGVybWluYWNpQCdvbgoKT3JnIHN1cHBv cnRzIGluLWJ1ZmZlciBjb21wbGV0aW9uIHdpdGggQGtiZHtNLUBrZXl7VEFCfX0uICBUaGlzIHR5 cGUgb2YKY29tcGxldGlvbiBkb2VzIG5vdCBtYWtlIHVzZSBvZiB0aGUgbWluaWJ1ZmZlci4gIFlv dSBzaW1wbHkgdHlwZSBhIGZldwpsZXR0ZXJzIGludG8gdGhlIGJ1ZmZlciBhbmQgdXNlIHRoZSBr ZXkgdG8gY29tcGxldGUgdGV4dCByaWdodCB0aGVyZS4gIEZvcgpleGFtcGxlLCB0aGlzIGNvbW1h bmQgd2lsbCBjb21wbGV0ZSBAVGVYe30gc3ltYm9scyBhZnRlciBAc2FtcHtcfSwgVE9ETwprZXl3 b3JkcyBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgaGVhZGxpbmUsIGFuZCB0YWdzIGFmdGVyIEBzYW1w ezp9IGluIGEKaGVhZGxpbmUuCgpAbm9kZSBWaXN0YSBsaW1waWEsIE9yZyBtQCdvdmlsLCBUZXJt aW5hY2lAJ29uLCBNaXNjZWxAJ2FuZW9zCkBzZWN0aW9uIEEgY2xlYW5lciBvdXRsaW5lIHZpZXcK ClNvbWUgcGVvcGxlIGZpbmQgaXQgbm9pc3kgYW5kIGRpc3RyYWN0aW5nIHRoYXQgdGhlIE9yZyBo ZWFkbGluZXMgc3RhcnQgd2l0aAphIHBvdGVudGlhbGx5IGxhcmdlIG51bWJlciBvZiBzdGFycywg YW5kIHRoYXQgdGV4dCBiZWxvdyB0aGUgaGVhZGxpbmVzIGlzCm5vdCBpbmRlbnRlZC4gIFdoaWxl IHRoaXMgaXMgbm8gcHJvYmxlbSB3aGVuIHdyaXRpbmcgYSBAZW1waHtib29rLWxpa2V9CmRvY3Vt ZW50IHdoZXJlIHRoZSBvdXRsaW5lIGhlYWRpbmdzIGFyZSByZWFsbHkgc2VjdGlvbiBoZWFkaW5n cywgaW4gYSBtb3JlCkBlbXBoe2xpc3Qtb3JpZW50ZWR9IG91dGxpbmUsIGluZGVudGVkIHN0cnVj dHVyZSBpcyBhIGxvdCBjbGVhbmVyOgoKQHNtYWxsZXhhbXBsZQpAZ3JvdXAKKiBUb3AgbGV2ZWwg aGVhZGxpbmUgICAgICAgICAgICAgfCAgICAqIFRvcCBsZXZlbCBoZWFkbGluZQoqKiBTZWNvbmQg bGV2ZWwgICAgICAgICAgICAgICAgICB8ICAgICAgKiBTZWNvbmQgbGV2ZWwKKioqIDNyZCBsZXZl bCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgKiAzcmQgbGV2ZWwKc29tZSB0ZXh0ICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICBzb21lIHRleHQKKioqIDNyZCBsZXZlbCAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgKiAzcmQgbGV2ZWwKbW9yZSB0ZXh0ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICBtb3JlIHRleHQKKiBBbm90aGVyIHRvcCBsZXZlbCBoZWFk bGluZSAgICAgfCAgICAqIEFub3RoZXIgdG9wIGxldmVsIGhlYWRsaW5lCkBlbmQgZ3JvdXAKQGVu ZCBzbWFsbGV4YW1wbGUKCkBub2luZGVudApJZiB5b3UgYXJlIHVzaW5nIGF0IGxlYXN0IEVtYWNz IDIzLjEuNTAuMyBhbmQgdmVyc2lvbiA2LjI5IG9mIE9yZywgdGhpcyBraW5kCm9mIHZpZXcgY2Fu IGJlIGFjaGlldmVkIGR5bmFtaWNhbGx5IGF0IGRpc3BsYXkgdGltZSB1c2luZwpAY29kZXtvcmct aW5kZW50LW1vZGV9LCB3aGljaCB3aWxsIHByZXBlbmQgaW50YW5naWJsZSBzcGFjZSB0byBlYWNo IGxpbmUuCllvdSBjYW4gdHVybiBvbiBAY29kZXtvcmctaW5kZW50LW1vZGV9IGZvciBhbGwgZmls ZXMgYnkgY3VzdG9taXppbmcgdGhlCnZhcmlhYmxlIEBjb2Rle29yZy1zdGFydHVwLWluZGVudGVk fSwgb3IgeW91IGNhbiB0dXJuIGl0IG9uIGZvciBpbmRpdmlkdWFsCmZpbGVzIHVzaW5nCgpAc21h bGxleGFtcGxlCiMrU1RBUlRVUDogaW5kZW50CkBlbmQgc21hbGxleGFtcGxlCgpJZiB5b3Ugd2Fu dCBhIHNpbWlsYXIgZWZmZWN0IGluIGVhcmxpZXIgdmVyc2lvbiBvZiBFbWFjcyBhbmQvb3IgT3Jn LCBvciBpZgp5b3Ugd2FudCB0aGUgaW5kZW50YXRpb24gdG8gYmUgaGFyZCBzcGFjZSBjaGFyYWN0 ZXJzIHNvIHRoYXQgdGhlIHBsYWluIHRleHQKZmlsZSBsb29rcyBhcyBzaW1pbGFyIGFzIHBvc3Np YmxlIHRvIHRoZSBFbWFjcyBkaXNwbGF5LCBPcmcgc3VwcG9ydHMgeW91IGJ5CmhlbHBpbmcgdG8g aW5kZW50ICh3aXRoIEBrZXl7VEFCfSkgdGV4dCBiZWxvdyBlYWNoIGhlYWRsaW5lLCBieSBoaWRp bmcKbGVhZGluZyBzdGFycywgYW5kIGJ5IG9ubHkgdXNpbmcgbGV2ZWxzIDEsIDMsIGV0YyB0byBn ZXQgdHdvIGNoYXJhY3RlcnMKaW5kZW50YXRpb24gZm9yIGVhY2ggbGV2ZWwuICBUbyBnZXQgdGhp cyBzdXBwb3J0IGluIGEgZmlsZSwgdXNlCgpAc21hbGxleGFtcGxlCiMrU1RBUlRVUDogaGlkZXN0 YXJzIG9kZApAZW5kIHNtYWxsZXhhbXBsZQoKQG5vZGUgT3JnIG1AJ292aWwsICwgVmlzdGEgbGlt cGlhLCBNaXNjZWxAJ2FuZW9zCkBzZWN0aW9uIE9yZyBtQCdvdmlsCgpAaXtNb2JpbGVPcmd9IGlz IHRoZSBuYW1lIG9mIHRoZSBtb2JpbGUgY29tcGFuaW9uIGFwcCBmb3IgT3JnIG1vZGUsCmN1cnJl bnRseSBhdmFpbGFibGUgZm9yIGlPUyBhbmQgZm9yIEFuZHJvaWQuICBAaXtNb2JpbGVPcmd9IG9m ZmVycyBvZmZsaW5lCnZpZXdpbmcgYW5kIGNhcHR1cmUgc3VwcG9ydCBmb3IgYW4gT3JnIG1vZGUg c3lzdGVtIHJvb3RlZCBvbiBhIGBgcmVhbCcnCmNvbXB1dGVyLiAgSXQgZG9lcyBhbHNvIGFsbG93 IHlvdSB0byByZWNvcmQgY2hhbmdlcyB0byBleGlzdGluZyBlbnRyaWVzLgoKVGhlIEB1cmVme2h0 dHA6Ly9tb2JpbGVvcmcubmNvZ25pLnRvLywgaU9TIGltcGxlbWVudGF0aW9ufSBmb3IgdGhlCkBp e2lQaG9uZS9pUG9kIFRvdWNoL2lQYWR9IHNlcmllcyBvZiBkZXZpY2VzLCB3YXMgZGV2ZWxvcGVk IGJ5IFJpY2hhcmQKTW9yZWxhbmQuIEFuZHJvaWQgdXNlcnMgc2hvdWxkIGNoZWNrIG91dApAdXJl ZntodHRwOi8vd2lraS5naXRodWIuY29tL21hdGJ1cnQvbW9iaWxlb3JnLWFuZHJvaWQvLCBNb2Jp bGVPcmcgQW5kcm9pZH0KYnkgTWF0dCBKb25lcy4gIFRoZSB0d28gaW1wbGVtZW50YXRpb25zIGFy ZSBub3QgaWRlbnRpY2FsIGJ1dCBvZmZlciBzaW1pbGFyCmZlYXR1cmVzLgoKQHNlZWFsc297IEB1 cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy9tYW51YWwvTWlzY2VsbGFuZW91cy5odG1sI01pc2NlbGxh bmVvdXMsCkNoYXB0ZXIgMTUgb2YgdGhlIG1hbnVhbH1AKgpAdXJlZntodHRwOi8vb3JnbW9kZS5v cmcvbWFudWFsL01vYmlsZU9yZy5odG1sI01vYmlsZU9yZywgQXBwZW5kaXggQiBvZiB0aGUKbWFu dWFsfUAqIEB1cmVme2h0dHA6Ly9vcmdtb2RlLm9yZy9vcmdjYXJkLnBkZixLZXkgcmVmZXJlbmNl IGNhcmR9fQoKQGJ5ZQoKQGMgTG9jYWwgdmFyaWFibGVzOgpAYyBmaWxsLWNvbHVtbjogNzcKQGMg RW5kOgoKCkBjICBMb2NhbFdvcmRzOiAgd2ViZGF2aG9zdCBwcmUK --=-=-=--