<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>215026</bug_id>
          
          <creation_ts>2020-07-31 11:26:21 -0700</creation_ts>
          <short_desc>check-webkit-style: better algorithm to check for acronym capitalization in an identifier</short_desc>
          <delta_ts>2020-08-06 13:07:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=214756</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>214954</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1676884</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-07-31 11:26:21 -0700</bug_when>
    <thetext>After fixing Bug 214954, I thought of a better algorithm to check for acronym capitalization in an identifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676940</commentid>
    <comment_count>1</comment_count>
      <attachid>405729</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-07-31 13:08:11 -0700</bug_when>
    <thetext>Created attachment 405729
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676948</commentid>
    <comment_count>2</comment_count>
      <attachid>405729</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-07-31 13:21:25 -0700</bug_when>
    <thetext>Comment on attachment 405729
Patch v1

Oops, need to fix a test outside of the ones I was working on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676950</commentid>
    <comment_count>3</comment_count>
      <attachid>405733</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-07-31 13:31:05 -0700</bug_when>
    <thetext>Created attachment 405733
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676951</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-07-31 13:31:51 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #2)
&gt; Comment on attachment 405729 [details]
&gt; Patch v1
&gt; 
&gt; Oops, need to fix a test outside of the ones I was working on.

LOL!  These changes found a typo in an unrelated test!

         self.assert_multi_line_lint(
-            &apos;auto Foo:bar() -&gt; Baz\n&apos;
+            &apos;auto Foo::bar() -&gt; Baz\n&apos;
             &apos;{\n&apos;
             &apos;}\n&apos;,
             &apos;&apos;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676963</commentid>
    <comment_count>5</comment_count>
      <attachid>405733</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-31 14:05:43 -0700</bug_when>
    <thetext>Comment on attachment 405733
Patch v2

How well do &quot;possible error&quot;/&quot;maybe&quot; messages fit into how we use check-webkit-style?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676972</commentid>
    <comment_count>6</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-07-31 14:31:14 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Comment on attachment 405733 [details]
&gt; Patch v2
&gt; 
&gt; How well do &quot;possible error&quot;/&quot;maybe&quot; messages fit into how we use
&gt; check-webkit-style?

We might want an allow-list so that we can optionally override common ones, but it&apos;s relatively common to ignore check-webkit-style errors if the engineers knows better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676987</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-07-31 15:07:39 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #3)
&gt; Created attachment 405733 [details]
&gt; Patch v2

I can&apos;t reproduce webkitpy test failures:

$ ./Tools/Scripts/test-webkitpy webkitpy.style.checkers.cpp_unittest
Suppressing most webkitpy logging while running unit tests.
Ran 209 tests in 0.585s                                                                                                                

OK
$</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676989</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-07-31 15:08:51 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #7)
&gt; (In reply to David Kilzer (:ddkilzer) from comment #3)
&gt; &gt; Created attachment 405733 [details]
&gt; &gt; Patch v2
&gt; 
&gt; I can&apos;t reproduce webkitpy test failures:
&gt; 
&gt; $ ./Tools/Scripts/test-webkitpy webkitpy.style.checkers.cpp_unittest
&gt; Suppressing most webkitpy logging while running unit tests.
&gt; Ran 209 tests in 0.585s                                                     
&gt; 
&gt; 
&gt; OK
&gt; $

Oh!  All of the failures are on Python3?!

&gt; 1:03 Passed webkitpy python2 tests, Found 94 webkitpy python3 test failures:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676996</commentid>
    <comment_count>9</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-07-31 15:17:50 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #8)
&gt; (In reply to David Kilzer (:ddkilzer) from comment #7)
&gt; &gt; (In reply to David Kilzer (:ddkilzer) from comment #3)
&gt; &gt; &gt; Created attachment 405733 [details]
&gt; &gt; &gt; Patch v2
&gt; &gt; 
&gt; &gt; I can&apos;t reproduce webkitpy test failures:
&gt; &gt; 
&gt; &gt; $ ./Tools/Scripts/test-webkitpy webkitpy.style.checkers.cpp_unittest
&gt; &gt; Suppressing most webkitpy logging while running unit tests.
&gt; &gt; Ran 209 tests in 0.585s                                                     
&gt; &gt; 
&gt; &gt; 
&gt; &gt; OK
&gt; &gt; $
&gt; 
&gt; Oh!  All of the failures are on Python3?!
&gt; 
&gt; &gt; 1:03 Passed webkitpy python2 tests, Found 94 webkitpy python3 test failures:

xrange() failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677034</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-07-31 16:30:19 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #9)
&gt; (In reply to David Kilzer (:ddkilzer) from comment #8)
&gt; &gt; (In reply to David Kilzer (:ddkilzer) from comment #7)
&gt; &gt; &gt; (In reply to David Kilzer (:ddkilzer) from comment #3)
&gt; &gt; &gt; &gt; Created attachment 405733 [details]
&gt; &gt; &gt; &gt; Patch v2
&gt; &gt; &gt; 
&gt; &gt; &gt; I can&apos;t reproduce webkitpy test failures:
&gt; &gt; &gt; 
&gt; &gt; &gt; $ ./Tools/Scripts/test-webkitpy webkitpy.style.checkers.cpp_unittest
&gt; &gt; &gt; Suppressing most webkitpy logging while running unit tests.
&gt; &gt; &gt; Ran 209 tests in 0.585s                                                     
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; OK
&gt; &gt; &gt; $
&gt; &gt; 
&gt; &gt; Oh!  All of the failures are on Python3?!
&gt; &gt; 
&gt; &gt; &gt; 1:03 Passed webkitpy python2 tests, Found 94 webkitpy python3 test failures:
&gt; 
&gt; xrange() failure.

You can just use range(...)

Small efficiency hit on Python 2, but that doesn&apos;t really matter with lists as short as the ones we&apos;re dealing with here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677074</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-07-31 21:15:57 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #6)
&gt; (In reply to Darin Adler from comment #5)
&gt; &gt; Comment on attachment 405733 [details]
&gt; &gt; Patch v2
&gt; &gt; 
&gt; &gt; How well do &quot;possible error&quot;/&quot;maybe&quot; messages fit into how we use
&gt; &gt; check-webkit-style?
&gt; 
&gt; We might want an allow-list so that we can optionally override common ones,
&gt; but it&apos;s relatively common to ignore check-webkit-style errors if the
&gt; engineers knows better.

Here are the lower-confidence &apos;[3]&apos; issues found in Source/WebKit:

ERROR: Source/WebKit/UIProcess/API/C/WKDownload.cpp:71:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:630:  The identifier name &quot;urlsCount&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]

And in Source/WebCore (excluding Source/WebCore/plugins/npfunctions.h):

ERROR: Source/WebCore/svg/SVGURIReference.cpp:72:  The identifier name &quot;kurl&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/svg/SVGScriptElement.cpp:82:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/svg/SVGFEImageElement.cpp:192:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/svg/SVGCursorElement.cpp:99:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/svg/SVGImageElement.cpp:163:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/inspector/agents/InspectorPageAgent.cpp:721:  The identifier name &quot;kurl&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/plugins/PluginData.h:67:  The identifier name &quot;mimes&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/platform/win/PasteboardWin.cpp:617:  The identifier name &quot;kurl&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/platform/win/PasteboardWin.cpp:691:  The identifier name &quot;kurl&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/platform/mediastream/MediaEndpointConfiguration.cpp:49:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/platform/mediastream/MediaEndpointConfiguration.h:48:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:393:  The identifier name &quot;urlsToDelete&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/html/HTMLParamElement.cpp:71:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/html/HTMLImageElement.cpp:728:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/html/HTMLBodyElement.cpp:222:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/html/HTMLInputElement.cpp:1596:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/html/HTMLTableElement.cpp:578:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/html/HTMLScriptElement.cpp:118:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/html/HTMLStyleElement.cpp:146:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/html/HTMLTableCellElement.cpp:195:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/html/HTMLLinkElement.cpp:617:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/html/HTMLEmbedElement.cpp:221:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]
ERROR: Source/WebCore/html/HTMLObjectElement.cpp:458:  The identifier name &quot;urls&quot; _may_ contain an acronym that is not all uppercase.  [readability/naming/acronym] [3]

I could even add &apos;urls&apos; to the exception list if that seems okay.

That would leave one &apos;mimes&apos; variable and four &apos;kurl&apos; variables (from a by-gone era when we used to have a KURL class).

There are no [3] issues in Source/WebKitLegacy or Source/JavaScriptCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677075</commentid>
    <comment_count>12</comment_count>
      <attachid>405766</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-07-31 21:25:13 -0700</bug_when>
    <thetext>Created attachment 405766
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677137</commentid>
    <comment_count>13</comment_count>
      <attachid>405766</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-01 12:16:41 -0700</bug_when>
    <thetext>Comment on attachment 405766
Patch v3

Looks OK. We should stay on the lookout for false positives in the wild as people write new code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678348</commentid>
    <comment_count>14</comment_count>
      <attachid>406100</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-08-06 12:32:06 -0700</bug_when>
    <thetext>Created attachment 406100
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678349</commentid>
    <comment_count>15</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-08-06 12:32:33 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #14)
&gt; Created attachment 406100 [details]
&gt; Patch for landing

Added &apos;urls&apos; to the acronym_exception list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678351</commentid>
    <comment_count>16</comment_count>
      <attachid>406100</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-08-06 12:33:34 -0700</bug_when>
    <thetext>Comment on attachment 406100
Patch for landing

Marking cq+ since this is a Tools-only change and webkitpy tests passed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678367</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-06 13:06:24 -0700</bug_when>
    <thetext>Committed r265343: &lt;https://trac.webkit.org/changeset/265343&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406100.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678369</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-06 13:07:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/66641418&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405729</attachid>
            <date>2020-07-31 13:08:11 -0700</date>
            <delta_ts>2020-07-31 13:31:04 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-215026-20200731130835.patch</filename>
            <type>text/plain</type>
            <size>17743</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTU2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmYyMWEzZTcyZDNhNjNhZTVkNDQ3OTVjZjUwZDJmNWUx
ZDhkNjViZi4uYTc3ZDIyZDZlYjljNGI4YmZjYWE4ODk0NDVjMGUzMDRkM2NkMWMwNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDIwLTA3LTMxICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAg
ICAgICAgY2hlY2std2Via2l0LXN0eWxlOiBiZXR0ZXIgYWxnb3JpdGhtIHRvIGNoZWNrIGZvciBh
Y3JvbnltIGNhcGl0YWxpemF0aW9uIGluIGFuIGlkZW50aWZpZXIKKyAgICAgICAgPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzIxNTAyNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5Ogor
ICAgICAgICAoX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3Jkcyk6IEFkZC4KKyAgICAgICAgLSBU
aGlzIG1ldGhvZCBzcGxpdHMgYSBpZGVudGlmaWVyIGludG8gaW5kaXZpZHVhbCB3b3Jkcy4KKyAg
ICAgICAgKF9jaGVja19pZGVudGlmaWVyX25hbWVfZm9yX2Fjcm9ueW1zKToKKyAgICAgICAgLSBV
cGRhdGUgdG8gdXNlIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoKSwgd2hpY2ggbWFrZXMg
aXQKKyAgICAgICAgICBwb3NzaWJsZSB0byBjaGVjayBmb3IgaW1wcm9wZXJseSBjYXBpdGFsaXpl
ZCBhY3JvbnltcyBpbiB0aGUKKyAgICAgICAgICBtaWRkbGUgb2YgaWRlbnRpZmllcnMuCisgICAg
ICAgIC0gQWxzbyBhZGQgc3VwcG9ydCBmb3IgZXhjZXB0aW9ucywgd2hpY2ggYXJlIHZhbGlkIHdv
cmRzIHRoYXQKKyAgICAgICAgICBpbmNsdWRlIGFjcm9ueW1zIChsaWtlICJDdXJsIikuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHk6Cisg
ICAgICAgIChXZWJLaXRTdHlsZVRlc3QudGVzdF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMp
OiBBZGQuCisgICAgICAgIC0gQWRkIHRlc3RzIGZvciBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dv
cmRzKCkuCisgICAgICAgIChXZWJLaXRTdHlsZVRlc3QudGVzdF9pZGVudGlmaWVyX25hbWVzX3dp
dGhfYWNyb255bXMpOgorICAgICAgICAtIEFkZCB0ZXN0cyBmb3IgY2FzZXMgdGhhdCB3ZXJlbid0
IHBvc3NpYmxlIHdpdGggdGhlIHByZXZpb3VzCisgICAgICAgICAgYWxnb3JpdGhtLgorCiAyMDIw
LTA3LTI5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgV1RG
OjptYWtlU3RyaW5nKCkgc2hvdWxkIGhhbmRsZSBlbnVtIHZhbHVlcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQppbmRleCAwMDZmMGUzMDI2NTJjZGVkZjZm
YjYzNjg3NGFlZWIwNDYxMTkyNjc2Li45ODM3MzdkODU2MzU0NDVjNTQ0OTA1M2IzZDRiNDY4YmRj
YWI5NDI0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJz
L2NwcC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5w
eQpAQCAtMTc5Niw2ICsxNzk2LDk4IEBAIGRlZiBfY2hlY2tfcGFyYW1ldGVyX25hbWVfYWdhaW5z
dF90ZXh0KHBhcmFtZXRlciwgdGV4dCwgZXJyb3IpOgogICAgIHJldHVybiBUcnVlCiAKIAorZGVm
IF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoaWRlbnRpZmllcik6CisgICAgd29yZHMgPSBb
XQorICAgIGlmIG5vdCBpZGVudGlmaWVyOgorICAgICAgICByZXR1cm4gd29yZHMKKworICAgICMg
UmVtb3ZlIHByZWZpeGVzIHRoYXQgYXJlbid0IHBhcnQgb2YgdGhlIGlkZW50aWZpZXIgbmFtZS4K
KyAgICBpZGVudGlmaWVyID0gcmUuc3ViKHInXltnbXNdP18nLCAnJywgaWRlbnRpZmllcikKKyAg
ICBpZGVudGlmaWVyX2xlbmd0aCA9IGxlbihpZGVudGlmaWVyKQorCisgICAgbWF0Y2hfdXBwZXJf
cmUgPSByZS5jb21waWxlKHInXltBLVpdKycpCisgICAgbWF0Y2hfdXBwZXJfbG93ZXJfcmUgPSBy
ZS5jb21waWxlKHInXltBLVpdW2Etel0rJykKKyAgICBtYXRjaF9sb3dlcl9yZSA9IHJlLmNvbXBp
bGUocideW2Etel0rJykKKworICAgIG1hdGNoX2xvd2VyID0gbWF0Y2hfbG93ZXJfcmUuc2VhcmNo
KGlkZW50aWZpZXIpCisgICAgbWF0Y2hfdXBwZXJfbG93ZXIgPSBtYXRjaF91cHBlcl9sb3dlcl9y
ZS5zZWFyY2goaWRlbnRpZmllcikKKyAgICBtYXRjaF91cHBlciA9IG1hdGNoX3VwcGVyX3JlLnNl
YXJjaChpZGVudGlmaWVyKQorICAgIGlmIG1hdGNoX2xvd2VyOgorICAgICAgICB3b3JkID0gbWF0
Y2hfbG93ZXIuZ3JvdXAoMCkKKyAgICAgICAgd29yZHMuYXBwZW5kKHdvcmQpCisgICAgICAgIGlm
IGxlbih3b3JkKSA9PSBpZGVudGlmaWVyX2xlbmd0aDoKKyAgICAgICAgICAgIHJldHVybiB3b3Jk
cworICAgICAgICBpZGVudGlmaWVyID0gaWRlbnRpZmllcltsZW4od29yZCk6XQorICAgIGVsaWYg
bWF0Y2hfdXBwZXJfbG93ZXI6CisgICAgICAgIHdvcmQgPSBtYXRjaF91cHBlcl9sb3dlci5ncm91
cCgwKQorICAgICAgICB3b3Jkcy5hcHBlbmQod29yZCkKKyAgICAgICAgaWYgbGVuKHdvcmQpID09
IGlkZW50aWZpZXJfbGVuZ3RoOgorICAgICAgICAgICAgcmV0dXJuIHdvcmRzCisgICAgICAgIGlk
ZW50aWZpZXIgPSBpZGVudGlmaWVyW2xlbih3b3JkKTpdCisgICAgZWxpZiBtYXRjaF91cHBlcjoK
KyAgICAgICAgd29yZCA9IG1hdGNoX3VwcGVyLmdyb3VwKDApCisgICAgICAgIGlmIGxlbih3b3Jk
KSA9PSBpZGVudGlmaWVyX2xlbmd0aDoKKyAgICAgICAgICAgIHdvcmRzLmFwcGVuZCh3b3JkKQor
ICAgICAgICAgICAgcmV0dXJuIHdvcmRzCisgICAgICAgIGlmIGlkZW50aWZpZXJbbGVuKHdvcmQp
XS5pc2xvd2VyKCk6CisgICAgICAgICAgICB3b3JkID0gd29yZFs6LTFdCisgICAgICAgIHdvcmRz
LmFwcGVuZCh3b3JkKQorICAgICAgICBpZGVudGlmaWVyID0gaWRlbnRpZmllcltsZW4od29yZCk6
XQorCisgICAgbWF0Y2hfbnVtYmVyX3JlID0gcmUuY29tcGlsZShyJ15bMC05XSsnKQorICAgIHdo
aWxlIGlkZW50aWZpZXI6CisgICAgICAgIGlkZW50aWZpZXJfbGVuZ3RoID0gbGVuKGlkZW50aWZp
ZXIpCisgICAgICAgIGlmIGlkZW50aWZpZXIuc3RhcnRzd2l0aCgnXycpOgorICAgICAgICAgICAg
aWYgbGVuKGlkZW50aWZpZXIpID09IDE6CisgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmRzCisg
ICAgICAgICAgICBpZGVudGlmaWVyID0gaWRlbnRpZmllclsxOl0KKyAgICAgICAgICAgIGNvbnRp
bnVlCisgICAgICAgIGlmIGlkZW50aWZpZXIuc3RhcnRzd2l0aCgnOjonKToKKyAgICAgICAgICAg
IHdvcmRzLmFwcGVuZCgnOjonKQorICAgICAgICAgICAgaWYgbGVuKGlkZW50aWZpZXIpID09IDI6
CisgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmRzCisgICAgICAgICAgICBpZGVudGlmaWVyID0g
aWRlbnRpZmllclsyOl0KKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIG1hdGNoX3VwcGVy
X2xvd2VyID0gbWF0Y2hfdXBwZXJfbG93ZXJfcmUuc2VhcmNoKGlkZW50aWZpZXIpCisgICAgICAg
IGlmIG1hdGNoX3VwcGVyX2xvd2VyOgorICAgICAgICAgICAgd29yZCA9IG1hdGNoX3VwcGVyX2xv
d2VyLmdyb3VwKDApCisgICAgICAgICAgICB3b3Jkcy5hcHBlbmQod29yZCkKKyAgICAgICAgICAg
IGlmIGxlbih3b3JkKSA9PSBpZGVudGlmaWVyX2xlbmd0aDoKKyAgICAgICAgICAgICAgICByZXR1
cm4gd29yZHMKKyAgICAgICAgICAgIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyW2xlbih3b3JkKTpd
CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBtYXRjaF91cHBlciA9IG1hdGNoX3VwcGVy
X3JlLnNlYXJjaChpZGVudGlmaWVyKQorICAgICAgICBpZiBtYXRjaF91cHBlcjoKKyAgICAgICAg
ICAgIHdvcmQgPSBtYXRjaF91cHBlci5ncm91cCgwKQorICAgICAgICAgICAgaWYgbGVuKHdvcmQp
ID09IGxlbihpZGVudGlmaWVyKToKKyAgICAgICAgICAgICAgICB3b3Jkcy5hcHBlbmQod29yZCkK
KyAgICAgICAgICAgICAgICByZXR1cm4gd29yZHMKKyAgICAgICAgICAgIGlmIGlkZW50aWZpZXJb
bGVuKHdvcmQpXS5pc2xvd2VyKCk6CisgICAgICAgICAgICAgICAgd29yZCA9IHdvcmRbOi0xXQor
ICAgICAgICAgICAgd29yZHMuYXBwZW5kKHdvcmQpCisgICAgICAgICAgICBpZGVudGlmaWVyID0g
aWRlbnRpZmllcltsZW4od29yZCk6XQorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgbWF0
Y2hfbnVtYmVyID0gbWF0Y2hfbnVtYmVyX3JlLnNlYXJjaChpZGVudGlmaWVyKQorICAgICAgICBp
ZiBtYXRjaF9udW1iZXI6CisgICAgICAgICAgICB3b3JkID0gbWF0Y2hfbnVtYmVyLmdyb3VwKDAp
CisgICAgICAgICAgICB3b3Jkcy5hcHBlbmQod29yZCkKKyAgICAgICAgICAgIGlmIGxlbih3b3Jk
KSA9PSBpZGVudGlmaWVyX2xlbmd0aDoKKyAgICAgICAgICAgICAgICByZXR1cm4gd29yZHMKKyAg
ICAgICAgICAgIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyW2xlbih3b3JkKTpdCisgICAgICAgICAg
ICBjb250aW51ZQorICAgICAgICBtYXRjaF9sb3dlciA9IG1hdGNoX2xvd2VyX3JlLnNlYXJjaChp
ZGVudGlmaWVyKQorICAgICAgICBpZiBtYXRjaF9sb3dlcjoKKyAgICAgICAgICAgIHdvcmQgPSBt
YXRjaF9sb3dlci5ncm91cCgwKQorICAgICAgICAgICAgd29yZHMuYXBwZW5kKHdvcmQpCisgICAg
ICAgICAgICBpZiBsZW4od29yZCkgPT0gaWRlbnRpZmllcl9sZW5ndGg6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHdvcmRzCisgICAgICAgICAgICBpZGVudGlmaWVyID0gaWRlbnRpZmllcltsZW4o
d29yZCk6XQorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgYXNzZXJ0IEZhbHNlLCAnQ291
bGQgbm90IG1hdGNoICIlcyInICUgaWRlbnRpZmllcgorCisgICAgcmV0dXJuIHdvcmRzCisKKwog
ZGVmIF9jaGVja19pZGVudGlmaWVyX25hbWVfZm9yX2Fjcm9ueW1zKGlkZW50aWZpZXIsIGxpbmVf
bnVtYmVyLCBpc19jbGFzc19vcl9uYW1lc3BhY2Vfb3Jfc3RydWN0X25hbWUsIGVycm9yKToKICAg
ICAiIiJDaGVja3MgdG8gc2VlIGlmIHRoZSBpZGVudGlmaWVyIG5hbWUgY29udGFpbnMgYW4gYWNy
b255bSB3aXRoIGltcHJvcGVyIGNhc2UuCiAKQEAgLTE4MDMsMjkgKzE4OTUsNTcgQEAgZGVmIF9j
aGVja19pZGVudGlmaWVyX25hbWVfZm9yX2Fjcm9ueW1zKGlkZW50aWZpZXIsIGxpbmVfbnVtYmVy
LCBpc19jbGFzc19vcl9uYW0KICAgICBtaWRkbGUgb3IgYXQgdGhlIGVuZCBvZiBhbiBpZGVudGlm
aWVyIG5hbWUsIGJ1dCAiVXJsIiBpcyBuZXZlciBva2F5LgogICAgICIiIgogICAgIGFjcm9ueW1z
ID0gJ3wnLmpvaW4oWydNSU1FJywgJ1VSTCddKQorICAgIGFjcm9ueW1fZXhjZXB0aW9ucyA9ICd8
Jy5qb2luKFsnQ3VybCddKQogCi0gICAgc3RhcnRfcmUgPSByZS5jb21waWxlKCdeKCVzKSh8JCkn
ICUgYWNyb255bXMsIHJlLklHTk9SRUNBU0UpCi0gICAgc3RhcnRfZXhwZWN0ZWRfcmUgPSByZS5j
b21waWxlKCdeKCVzKShbXjpdfCQpJyAlIGFjcm9ueW1zLmxvd2VyKCkpCi0gICAgIyBJZGVudGlm
aWVycyB0aGF0IHN0YXJ0IHdpdGggYW4gYWNyb255bSBtdXN0IGJlIGFsbCBsb3dlcmNhc2UsIGV4
Y2VwdCBmb3IgY2xhc3MvbmFtZXNwYWNlL3N0cnVjdCBuYW1lcy4KLSAgICBpZiBzdGFydF9yZS5z
ZWFyY2goaWRlbnRpZmllcikgYW5kIG5vdCBzdGFydF9leHBlY3RlZF9yZS5zZWFyY2goaWRlbnRp
Zmllcik6Ci0gICAgICAgIHN0YXJ0X3VwcGVyY2FzZV9yZSA9IHJlLmNvbXBpbGUoJ14oJXMpJyAl
IGFjcm9ueW1zKQotICAgICAgICAjIElnbm9yZSBjbGFzcy9uYW1lc3BhY2Uvc3RydWN0IG5hbWVz
IHRoYXQgc3RhcnQgd2l0aCBhbGwtdXBwZXJjYXNlIGFjcm9ueW1zLgotICAgICAgICBpZiBzdGFy
dF91cHBlcmNhc2VfcmUuc2VhcmNoKGlkZW50aWZpZXIpIGFuZCBcCi0gICAgICAgICAgICAgICAg
KGlzX2NsYXNzX29yX25hbWVzcGFjZV9vcl9zdHJ1Y3RfbmFtZSBvciBpZGVudGlmaWVyLmZpbmQo
Jzo6JykgIT0gLTEpOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgZXJyb3IobGlu
ZV9udW1iZXIsICdyZWFkYWJpbGl0eS9uYW1pbmcvYWNyb255bScsIDUsCi0gICAgICAgICAgICAg
ICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIgc3RhcnRzIHdpdGggYSBhY3JvbnltIHRoYXQgaXMg
bm90IGFsbCBsb3dlcmNhc2UuJyAlIGlkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBGYWxzZQor
ICAgIGlkZW50aWZpZXJfd29yZHMgPSBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKGlkZW50
aWZpZXIpCiAKLSAgICAjIEZJWE1FOiBIYXJkIHRvIGNoZWNrIG1pZGRsZSB3b3JkcyB3aXRob3V0
IGtub3dpbmcgdGhhdCB0aGUgd29yZCB0byB0aGUgbGVmdCBkb2Vzbid0IGVuZCB3aXRoIGFuIGFj
cm9ueW0uCisgICAgaXNfY29uc3RydWN0b3IgPSBGYWxzZQorICAgIGlmIGlkZW50aWZpZXJfd29y
ZHMuY291bnQoJzo6JykgPT0gMToKKyAgICAgICAgbmFtZXMgPSBpZGVudGlmaWVyLnNwbGl0KCc6
OicpCisgICAgICAgIGlmIG5hbWVzWzBdID09IG5hbWVzWzFdOgorICAgICAgICAgICAgaXNfY29u
c3RydWN0b3IgPSBUcnVlCiAKLSAgICAjIElkZW50aWZpZXJzIHRoYXQgZW5kIHdpdGggYW4gYWNy
b255bSBtdXN0IGJlIGFsbCB1cHBlcmNhc2UsIGV4Y2VwdCBmb3IgdmFyaWFibGVzIGxpa2UgJ21f
dXJsJyBhbmQgJ0NsYXNzOjp1cmwoKScuCi0gICAgZW5kX3JlID0gcmUuY29tcGlsZSgnW15fOl0o
JXMpJCcgJSBhY3JvbnltcywgcmUuSUdOT1JFQ0FTRSkKLSAgICBlbmRfZXhwZWN0ZWRfcmUgPSBy
ZS5jb21waWxlKCdbXl86XSglcykkJyAlIGFjcm9ueW1zKQotICAgIGlmIGVuZF9yZS5zZWFyY2go
aWRlbnRpZmllcikgYW5kIG5vdCBlbmRfZXhwZWN0ZWRfcmUuc2VhcmNoKGlkZW50aWZpZXIpOgot
ICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3JlYWRhYmlsaXR5L25hbWluZy9hY3JvbnltJywg
NSwKLSAgICAgICAgICAgICAgJ1RoZSBpZGVudGlmaWVyIG5hbWUgIiVzIiBlbmRzIHdpdGggYSBh
Y3JvbnltIHRoYXQgaXMgbm90IGFsbCB1cHBlcmNhc2UuJyAlIGlkZW50aWZpZXIpCi0gICAgICAg
IHJldHVybiBGYWxzZQorICAgIGNvbnRhaW5zX2Fjcm9ueW1fbG93ZXJjYXNlX3JlID0gcmUuY29t
cGlsZSgnKCVzKScgJSBhY3Jvbnltcy5sb3dlcigpKQorICAgIGlzX2Fjcm9ueW1fYW55X2Nhc2Vf
cmUgPSByZS5jb21waWxlKCdeKCVzKSQnICUgYWNyb255bXMsIHJlLklHTk9SRUNBU0UpCisgICAg
aXNfYWNyb255bV9sb3dlcmNhc2VfcmUgPSByZS5jb21waWxlKCdeKCVzKSQnICUgYWNyb255bXMu
bG93ZXIoKSkKKyAgICBpc19hY3JvbnltX3VwcGVyY2FzZV9yZSA9IHJlLmNvbXBpbGUoJ14oJXMp
JCcgJSBhY3Jvbnltcy51cHBlcigpKQorICAgIGlzX2Fjcm9ueW1fZXhjZXB0aW9uX2FueV9jYXNl
X3JlID0gcmUuY29tcGlsZSgnXiglcykkJyAlIGFjcm9ueW1fZXhjZXB0aW9ucywgcmUuSUdOT1JF
Q0FTRSkKKworICAgIHN0YXJ0X29mX3ZhcmlhYmxlID0gVHJ1ZQorICAgIGZvciBpIGluIHhyYW5n
ZSgwLCBsZW4oaWRlbnRpZmllcl93b3JkcykpOgorICAgICAgICB3b3JkID0gaWRlbnRpZmllcl93
b3Jkc1tpXQorCisgICAgICAgIGlmIHdvcmQgPT0gJzo6JzoKKyAgICAgICAgICAgIHN0YXJ0X29m
X3ZhcmlhYmxlID0gVHJ1ZQorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICBpZiBzdGFy
dF9vZl92YXJpYWJsZToKKyAgICAgICAgICAgIHN0YXJ0X29mX3ZhcmlhYmxlID0gRmFsc2UKKyAg
ICAgICAgICAgICMgSWRlbnRpZmllcnMgdGhhdCBzdGFydCB3aXRoIGFuIGFjcm9ueW0gbXVzdCBi
ZSBhbGwgbG93ZXJjYXNlLCBleGNlcHQgZm9yIGNsYXNzL25hbWVzcGFjZS9zdHJ1Y3QgbmFtZXMu
CisgICAgICAgICAgICBpZiBpc19hY3JvbnltX2FueV9jYXNlX3JlLnNlYXJjaCh3b3JkKToKKyAg
ICAgICAgICAgICAgICBpZiBpc19hY3JvbnltX2xvd2VyY2FzZV9yZS5zZWFyY2god29yZCk6Cisg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgZWxpZiBpc19hY3Jv
bnltX3VwcGVyY2FzZV9yZS5zZWFyY2god29yZCkgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIChpc19jbGFzc19vcl9uYW1lc3BhY2Vfb3Jfc3RydWN0X25hbWUgb3IgJzo6JyBpbiBpZGVu
dGlmaWVyX3dvcmRzW2k6XSBvciBpc19jb25zdHJ1Y3Rvcik6CisgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZXJy
b3IobGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9uYW1pbmcvYWNyb255bScsIDUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIgc3RhcnRzIHdpdGgg
YW4gYWNyb255bSB0aGF0IGlzIG5vdCBhbGwgbG93ZXJjYXNlLicgJSBpZGVudGlmaWVyKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICMgSWRlbnRpZmllcnMgdGhhdCBjb250YWluIG9yIGVuZCB3aXRoIGFuIGFjcm9ueW0gbXVzdCBi
ZSBhbGwgdXBwZXJjYXNlLgorICAgICAgICAgICAgaWYgaXNfYWNyb255bV9hbnlfY2FzZV9yZS5z
ZWFyY2god29yZCk6CisgICAgICAgICAgICAgICAgaWYgaXNfYWNyb255bV91cHBlcmNhc2VfcmUu
c2VhcmNoKHdvcmQpOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAncmVhZGFi
aWxpdHkvbmFtaW5nL2Fjcm9ueW0nLCA1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAnVGhl
IGlkZW50aWZpZXIgbmFtZSAiJXMiIGNvbnRhaW5zIGFuIGFjcm9ueW0gdGhhdCBpcyBub3QgYWxs
IHVwcGVyY2FzZS4nICUgaWRlbnRpZmllcikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisKKyAgICAgICAgaWYgY29udGFpbnNfYWNyb255bV9sb3dlcmNhc2VfcmUuc2VhcmNoKHdv
cmQpIGFuZCBub3QgaXNfYWNyb255bV9leGNlcHRpb25fYW55X2Nhc2VfcmUuc2VhcmNoKHdvcmQp
OgorICAgICAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9uYW1pbmcvYWNy
b255bScsIDMsCisgICAgICAgICAgICAgICAgICAnVGhlIGlkZW50aWZpZXIgbmFtZSAiJXMiIF9t
YXlfIGNvbnRhaW4gYW4gYWNyb255bSB0aGF0IGlzIG5vdCBhbGwgdXBwZXJjYXNlLicgJSBpZGVu
dGlmaWVyKQorICAgICAgICAgICAgY29udGludWUKIAogICAgIHJldHVybiBUcnVlCiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3Qu
cHkKaW5kZXggMTljZGU0OTM2MzYzNzY1ZTA5MjM5MzA0NzYxOGNiYjY3YTAzNzRmNi4uZDFmMjBh
Y2E4MTAwMmYwNDU1OGUwZmQzM2MxNDI4YmEwZjIxNWM4YSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkKQEAgLTQ1LDcg
KzQ1LDcgQEAgaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgc3RyaW5n
X3V0aWxzCiAKIGZyb20gd2Via2l0cHkuc3R5bGUuY2hlY2tlcnMgaW1wb3J0IGNwcCBhcyBjcHBf
c3R5bGUKLWZyb20gd2Via2l0cHkuc3R5bGUuY2hlY2tlcnMuY3BwIGltcG9ydCBDcHBDaGVja2Vy
Citmcm9tIHdlYmtpdHB5LnN0eWxlLmNoZWNrZXJzLmNwcCBpbXBvcnQgQ3BwQ2hlY2tlciwgX3Nw
bGl0X2lkZW50aWZpZXJfaW50b193b3JkcwogZnJvbSB3ZWJraXRweS5zdHlsZS5maWx0ZXIgaW1w
b3J0IEZpbHRlckNvbmZpZ3VyYXRpb24KIAogCkBAIC01OTQ5LDEyICs1OTQ5LDUzIEBAIGNsYXNz
IFdlYktpdFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3tcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ31cbicsICd0ZXN0LmNwcCcsIHBhcmFtZXRlcl9lcnJvcl9ydWxl
cykpCiAKKyAgICBkZWYgdGVzdF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoc2VsZik6Cisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMo
JycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnYSddLCBfc3BsaXRfaWRlbnRpZmllcl9p
bnRvX3dvcmRzKCdhJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydBJ10sIF9zcGxpdF9p
ZGVudGlmaWVyX2ludG9fd29yZHMoJ0EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ2En
LCAnQiddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdhQicpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFsnQWInXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnQWInKSkK
KworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsndXJsJ10sIF9zcGxpdF9pZGVudGlmaWVyX2lu
dG9fd29yZHMoJ3VybCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVXJsJ10sIF9zcGxp
dF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VybCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFsnVVJMJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VSTCcpKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFsndXJsJywgJ1N0cmluZyddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRv
X3dvcmRzKCd1cmxTdHJpbmcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICdT
dHJpbmcnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMU3RyaW5nJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyd0ZXN0JywgJ1BhdGgnLCAnT3InLCAnVXJsJ10sIF9zcGxp
dF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ3Rlc3RQYXRoT3JVcmwnKSkKKworICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFsnVVJMJywgJzo6JywgJ2ludmFsaWRhdGUnXSwgX3NwbGl0X2lkZW50aWZp
ZXJfaW50b193b3JkcygnVVJMOjppbnZhbGlkYXRlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoWydVUkwnLCAnOjonLCAnaW52YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dv
cmRzKCdVUkxfOjppbnZhbGlkYXRlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydVUkwn
LCAnOjonLCAnaW52YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdVUkxf
OjpfaW52YWxpZGF0ZScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVVJMJywgJzo6Jywg
J2ludmFsaWRhdGUnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMXzo6aW52YWxp
ZGF0ZScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVVJMJywgJzgnLCAnOjonLCAnaW52
YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdVUkw4OjppbnZhbGlkYXRl
JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydVUkwnLCAnOCcsICc6OicsICdpbnZhbGlk
YXRlJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VSTDhfOjpfaW52YWxpZGF0ZV8n
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4JywgJzo6JywgJ2ludmFsaWRh
dGUnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMOF86Ol9pbnZhbGlkYXRlJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydVUkwnLCAnOCcsICc6OicsICdpbnZhbGlkYXRl
J10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VSTDhfOjpfaW52YWxpZGF0ZV8nKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4JywgJzo6JywgJ2ludmFsaWRhdGUn
XSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMOF86OmludmFsaWRhdGUnKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4JywgJzo6JywgJ2ludmFsaWRhdGUnXSwg
X3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMOF86Ol9pbnZhbGlkYXRlJykpCisKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ2xvYWR1cmwnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50
b193b3JkcygnbG9hZHVybCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnbG9hZCcsICdV
cmwnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnbG9hZFVybCcpKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFsnbG9hZCcsICdVUkwnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193
b3JkcygnbG9hZFVSTCcpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyd1cmwnXSwgX3Nw
bGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnX3VybCcpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFsndXJsJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ2dfdXJsJykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyd1cmwnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3Jk
cygnbV91cmwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3VybCddLCBfc3BsaXRfaWRl
bnRpZmllcl9pbnRvX3dvcmRzKCdzX3VybCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsn
REMnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnbV9EQycpKQorCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoWydpJywgJzEnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3Jkcygn
aTEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3VybCcsICc4J10sIF9zcGxpdF9pZGVu
dGlmaWVyX2ludG9fd29yZHMoJ3VybDgnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1Vy
bCcsICc4J10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VybDgnKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4J10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29y
ZHMoJ1VSTDgnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ25vbicsICdVVEYnLCAnOCcs
ICdRdWVyeScsICdFbmNvZGluZyddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdub25V
VEY4UXVlcnlFbmNvZGluZycpKQorCiAgICAgZGVmIHRlc3RfaWRlbnRpZmllcl9uYW1lc193aXRo
X2Fjcm9ueW1zKHNlbGYpOgogICAgICAgICBpZGVudGlmaWVyX2Vycm9yX3J1bGVzID0gKCctJywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnK3JlYWRhYmlsaXR5L25hbWluZy9h
Y3JvbnltJykKIAotICAgICAgICAjIFN0YXJ0IG9mIHBhcmFtZXRlciBuYW1lLgotICAgICAgICBl
cnJvcl9zdGFydCA9ICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIgc3RhcnRzIHdpdGggYSBhY3Jv
bnltIHRoYXQgaXMgbm90IGFsbCBsb3dlcmNhc2UuJ1wKKyAgICAgICAgIyBUZXN0IHRoYXQgYW4g
aWRlbnRpZmllciBzdGFydHMgd2l0aCBhbiBhY3JvbnltLgorICAgICAgICBlcnJvcl9zdGFydCA9
ICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIgc3RhcnRzIHdpdGggYW4gYWNyb255bSB0aGF0IGlz
IG5vdCBhbGwgbG93ZXJjYXNlLidcCiAgICAgICAgICAgICAgICAgICAgICAgJyAgW3JlYWRhYmls
aXR5L25hbWluZy9hY3JvbnltXSBbNV0nCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywK
QEAgLTU5OTEsNiArNjAzMiw4IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBTdHlsZVRlc3RC
YXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgnVVJMUGFy
c2VyOjpVUkxQYXJzZXIoY29uc3QgU3RyaW5nJiBpbnB1dCwgY29uc3QgVVJMJiBiYXNlLCBjb25z
dCBVUkxUZXh0RW5jb2RpbmcqIG5vblVURjhRdWVyeUVuY29kaW5nKScsICd0ZXN0LmNwcCcsIGlk
ZW50aWZpZXJfZXJyb3JfcnVsZXMpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLAogICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCdib29sIFVSTFBhcnNlcjo6
aW50ZXJuYWxWYWx1ZXNDb25zaXN0ZW50KGNvbnN0IFVSTCYgdXJsKScsICd0ZXN0LmNwcCcsIGlk
ZW50aWZpZXJfZXJyb3JfcnVsZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9yX3N0
YXJ0ICUgJ1VSTDo6VVJMTm90Q29uc3RydWN0b3InLAorICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYucGVyZm9ybV9saW50KCdib29sIFVSTDo6VVJMTm90Q29uc3RydWN0b3IoKScsICd0ZXN0
LmNwcCcsIGlkZW50aWZpZXJfZXJyb3JfcnVsZXMpKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ1N0cmlu
ZyBtX3VybDsnLCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkKQEAgLTYwMDIs
MjYgKzYwNDUsMzggQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9yX3N0YXJ0ICUgJ1VybFBhcnNlOjpVcmxQYXJz
ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ3ZvaWQgVXJs
UGFyc2U6OlVybFBhcnNlKCknLCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkK
IAotICAgICAgICAjIEZJWE1FOiBIYXJkIHRvIGNoZWNrIG1pZGRsZSB3b3JkcyB3aXRob3V0IGtu
b3dpbmcgdGhhdCB0aGUgd29yZCB0byB0aGUgbGVmdCBkb2Vzbid0IGVuZCB3aXRoIGFuIGFjcm9u
eW0uCi0KLSAgICAgICAgZXJyb3JfZW5kID0gJ1RoZSBpZGVudGlmaWVyIG5hbWUgIiVzIiBlbmRz
IHdpdGggYSBhY3JvbnltIHRoYXQgaXMgbm90IGFsbCB1cHBlcmNhc2UuJ1wKLSAgICAgICAgICAg
ICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L25hbWluZy9hY3JvbnltXSBbNV0nCisgICAgICAgICMg
VGVzdCB0aGF0IGlkZW50aWZpZXIgY29udGFpbnMgYW4gYWNyb255bS4KKyAgICAgICAgZXJyb3Jf
Y29udGFpbiA9ICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIgY29udGFpbnMgYW4gYWNyb255bSB0
aGF0IGlzIG5vdCBhbGwgdXBwZXJjYXNlLidcCisgICAgICAgICAgICAgICAgICAgICAgICAnICBb
cmVhZGFiaWxpdHkvbmFtaW5nL2Fjcm9ueW1dIFs1XScKIAotICAgICAgICAjIEVuZCBvZiBwYXJh
bWV0ZXIgbmFtZS4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvcl9lbmQgJSAnbG9hZHVy
bCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ3ZvaWQgbG9h
ZChVUkwgbG9hZHVybCk7JywgJ3Rlc3QuY3BwJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyb3JfZW5kICUgJ2xvYWRVcmwnLAorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGVycm9yX2NvbnRhaW4gJSAnbG9hZFVybCcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ3ZvaWQgbG9hZChVUkwgbG9hZFVybCk7Jywg
J3Rlc3QuY3BwJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ3Zv
aWQgbG9hZChVUkwgbG9hZFVSTCk7JywgJ3Rlc3QuY3BwJywgaWRlbnRpZmllcl9lcnJvcl9ydWxl
cykpCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywKICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLnBlcmZvcm1fbGludCgndm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6Omluc3Bl
Y3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiBuZXdVUkwpJywgJ3Rlc3QuY3BwJywgaWRlbnRp
Zmllcl9lcnJvcl9ydWxlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyb3JfZW5kICUg
J3Rlc3RQYXRoT3JVcmwnLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9yX2NvbnRhaW4g
JSAndGVzdFBhdGhPclVybCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3Jt
X2xpbnQoJ3N0YXRpYyB2b2lkIGNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQoY29uc3QgY2hhciog
dGVzdFBhdGhPclVybCknLCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvcl9lbmQgJSAnbG9jYWxQYXRoT3JVcmwnLAorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9yX2NvbnRhaW4gJSAnbG9jYWxQYXRoT3JVcmwnLAog
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCdhdXRvIGxvY2FsUGF0
aE9yVXJsID0gU3RyaW5nKHRlc3RQYXRoT3JVUkwpOycsICd0ZXN0LmNwcCcsIGlkZW50aWZpZXJf
ZXJyb3JfcnVsZXMpKQogCisgICAgICAgICMgVGVzdCB0aGF0IGFuIGlkZW50aWZpZXIgX21pZ2h0
XyBjb250YWluIGFuIGFjcm9ueW0uCisgICAgICAgIGVycm9yX21heV9jb250YWluID0gJ1RoZSBp
ZGVudGlmaWVyIG5hbWUgIiVzIiBfbWF5XyBjb250YWluIGFuIGFjcm9ueW0gdGhhdCBpcyBub3Qg
YWxsIHVwcGVyY2FzZS4nXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIFtyZWFkYWJp
bGl0eS9uYW1pbmcvYWNyb255bV0gWzNdJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9y
X21heV9jb250YWluICUgJ2xvYWR1cmwnLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
cGVyZm9ybV9saW50KCd2b2lkIGxvYWQoVVJMIGxvYWR1cmwpOycsICd0ZXN0LmNwcCcsIGlkZW50
aWZpZXJfZXJyb3JfcnVsZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9yX21heV9j
b250YWluICUgJ2NhbkxvYWR1cmwnLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGVy
Zm9ybV9saW50KCd2b2lkIGxvYWQoVVJMIHVybCwgYm9vbCBjYW5Mb2FkdXJsKTsnLCAndGVzdC5j
cHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkKKworICAgICAgICAjIFRlc3Qgc3BlY2lhbCBl
eGNlcHRpb25zLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBzZWxmLnBlcmZvcm1fbGlu
dCgKKyAgICAgICAgICAgICd2b2lkIGN1cmxEaWRTZW5kRGF0YShXZWJDb3JlOjpDdXJsUmVxdWVz
dCYsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nKSBvdmVycmlkZTsnLAor
ICAgICAgICAgICAgJ05ldHdvcmtEYXRhVGFza0N1cmwuaCcsIGlkZW50aWZpZXJfZXJyb3JfcnVs
ZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBzZWxmLnBlcmZvcm1fbGludCgKKyAg
ICAgICAgICAgICd2b2lkIE5ldHdvcmtEYXRhVGFza0N1cmw6OmNhbmNlbCgpJywKKyAgICAgICAg
ICAgICdOZXR3b3JrRGF0YVRhc2tDdXJsLmNwcCcsIGlkZW50aWZpZXJfZXJyb3JfcnVsZXMpKQor
CiAgICAgZGVmIHRlc3RfY29tbWVudHMoc2VsZik6CiAgICAgICAgICMgQSBjb21tZW50IGF0IHRo
ZSBiZWdpbm5pbmcgb2YgYSBsaW5lIGlzIG9rLgogICAgICAgICBzZWxmLmFzc2VydF9saW50KCcv
LyBjb21tZW50JywgJycpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405733</attachid>
            <date>2020-07-31 13:31:05 -0700</date>
            <delta_ts>2020-07-31 21:25:11 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-215026-20200731133131.patch</filename>
            <type>text/plain</type>
            <size>18094</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTU2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmYyMWEzZTcyZDNhNjNhZTVkNDQ3OTVjZjUwZDJmNWUx
ZDhkNjViZi4uYWE4MmNkMmQyMzA0Zjc0MTBmMDMyZmU1YWViZGQyZGE4MDZlZDhmZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDIwLTA3LTMxICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAg
ICAgICAgY2hlY2std2Via2l0LXN0eWxlOiBiZXR0ZXIgYWxnb3JpdGhtIHRvIGNoZWNrIGZvciBh
Y3JvbnltIGNhcGl0YWxpemF0aW9uIGluIGFuIGlkZW50aWZpZXIKKyAgICAgICAgPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzIxNTAyNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5Ogor
ICAgICAgICAoX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3Jkcyk6IEFkZC4KKyAgICAgICAgLSBU
aGlzIG1ldGhvZCBzcGxpdHMgYSBpZGVudGlmaWVyIGludG8gaW5kaXZpZHVhbCB3b3Jkcy4KKyAg
ICAgICAgKF9jaGVja19pZGVudGlmaWVyX25hbWVfZm9yX2Fjcm9ueW1zKToKKyAgICAgICAgLSBV
cGRhdGUgdG8gdXNlIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoKSwgd2hpY2ggbWFrZXMg
aXQKKyAgICAgICAgICBwb3NzaWJsZSB0byBjaGVjayBmb3IgaW1wcm9wZXJseSBjYXBpdGFsaXpl
ZCBhY3JvbnltcyBpbiB0aGUKKyAgICAgICAgICBtaWRkbGUgb2YgaWRlbnRpZmllcnMuCisgICAg
ICAgIC0gQWxzbyBhZGQgc3VwcG9ydCBmb3IgZXhjZXB0aW9ucywgd2hpY2ggYXJlIHZhbGlkIHdv
cmRzIHRoYXQKKyAgICAgICAgICBpbmNsdWRlIGFjcm9ueW1zIChsaWtlICJDdXJsIikuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHk6Cisg
ICAgICAgIChDcHBTdHlsZVRlc3QpOgorICAgICAgICAtIEZpeCBhIHR5cG8gaW4gYSBtZXRob2Qg
bmFtZSBpbiBhbm90aGVyIHRlc3QuCisgICAgICAgIChXZWJLaXRTdHlsZVRlc3QudGVzdF9zcGxp
dF9pZGVudGlmaWVyX2ludG9fd29yZHMpOiBBZGQuCisgICAgICAgIC0gQWRkIHRlc3RzIGZvciBf
c3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCkuCisgICAgICAgIChXZWJLaXRTdHlsZVRlc3Qu
dGVzdF9pZGVudGlmaWVyX25hbWVzX3dpdGhfYWNyb255bXMpOgorICAgICAgICAtIEFkZCB0ZXN0
cyBmb3IgY2FzZXMgdGhhdCB3ZXJlbid0IHBvc3NpYmxlIHdpdGggdGhlIHByZXZpb3VzCisgICAg
ICAgICAgYWxnb3JpdGhtLgorCiAyMDIwLTA3LTI5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CiAKICAgICAgICAgV1RGOjptYWtlU3RyaW5nKCkgc2hvdWxkIGhhbmRsZSBlbnVt
IHZhbHVlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
cy9jcHAucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQpp
bmRleCAwMDZmMGUzMDI2NTJjZGVkZjZmYjYzNjg3NGFlZWIwNDYxMTkyNjc2Li45ODM3MzdkODU2
MzU0NDVjNTQ0OTA1M2IzZDRiNDY4YmRjYWI5NDI0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQpAQCAtMTc5Niw2ICsxNzk2LDk4IEBAIGRlZiBfY2hl
Y2tfcGFyYW1ldGVyX25hbWVfYWdhaW5zdF90ZXh0KHBhcmFtZXRlciwgdGV4dCwgZXJyb3IpOgog
ICAgIHJldHVybiBUcnVlCiAKIAorZGVmIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoaWRl
bnRpZmllcik6CisgICAgd29yZHMgPSBbXQorICAgIGlmIG5vdCBpZGVudGlmaWVyOgorICAgICAg
ICByZXR1cm4gd29yZHMKKworICAgICMgUmVtb3ZlIHByZWZpeGVzIHRoYXQgYXJlbid0IHBhcnQg
b2YgdGhlIGlkZW50aWZpZXIgbmFtZS4KKyAgICBpZGVudGlmaWVyID0gcmUuc3ViKHInXltnbXNd
P18nLCAnJywgaWRlbnRpZmllcikKKyAgICBpZGVudGlmaWVyX2xlbmd0aCA9IGxlbihpZGVudGlm
aWVyKQorCisgICAgbWF0Y2hfdXBwZXJfcmUgPSByZS5jb21waWxlKHInXltBLVpdKycpCisgICAg
bWF0Y2hfdXBwZXJfbG93ZXJfcmUgPSByZS5jb21waWxlKHInXltBLVpdW2Etel0rJykKKyAgICBt
YXRjaF9sb3dlcl9yZSA9IHJlLmNvbXBpbGUocideW2Etel0rJykKKworICAgIG1hdGNoX2xvd2Vy
ID0gbWF0Y2hfbG93ZXJfcmUuc2VhcmNoKGlkZW50aWZpZXIpCisgICAgbWF0Y2hfdXBwZXJfbG93
ZXIgPSBtYXRjaF91cHBlcl9sb3dlcl9yZS5zZWFyY2goaWRlbnRpZmllcikKKyAgICBtYXRjaF91
cHBlciA9IG1hdGNoX3VwcGVyX3JlLnNlYXJjaChpZGVudGlmaWVyKQorICAgIGlmIG1hdGNoX2xv
d2VyOgorICAgICAgICB3b3JkID0gbWF0Y2hfbG93ZXIuZ3JvdXAoMCkKKyAgICAgICAgd29yZHMu
YXBwZW5kKHdvcmQpCisgICAgICAgIGlmIGxlbih3b3JkKSA9PSBpZGVudGlmaWVyX2xlbmd0aDoK
KyAgICAgICAgICAgIHJldHVybiB3b3JkcworICAgICAgICBpZGVudGlmaWVyID0gaWRlbnRpZmll
cltsZW4od29yZCk6XQorICAgIGVsaWYgbWF0Y2hfdXBwZXJfbG93ZXI6CisgICAgICAgIHdvcmQg
PSBtYXRjaF91cHBlcl9sb3dlci5ncm91cCgwKQorICAgICAgICB3b3Jkcy5hcHBlbmQod29yZCkK
KyAgICAgICAgaWYgbGVuKHdvcmQpID09IGlkZW50aWZpZXJfbGVuZ3RoOgorICAgICAgICAgICAg
cmV0dXJuIHdvcmRzCisgICAgICAgIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyW2xlbih3b3JkKTpd
CisgICAgZWxpZiBtYXRjaF91cHBlcjoKKyAgICAgICAgd29yZCA9IG1hdGNoX3VwcGVyLmdyb3Vw
KDApCisgICAgICAgIGlmIGxlbih3b3JkKSA9PSBpZGVudGlmaWVyX2xlbmd0aDoKKyAgICAgICAg
ICAgIHdvcmRzLmFwcGVuZCh3b3JkKQorICAgICAgICAgICAgcmV0dXJuIHdvcmRzCisgICAgICAg
IGlmIGlkZW50aWZpZXJbbGVuKHdvcmQpXS5pc2xvd2VyKCk6CisgICAgICAgICAgICB3b3JkID0g
d29yZFs6LTFdCisgICAgICAgIHdvcmRzLmFwcGVuZCh3b3JkKQorICAgICAgICBpZGVudGlmaWVy
ID0gaWRlbnRpZmllcltsZW4od29yZCk6XQorCisgICAgbWF0Y2hfbnVtYmVyX3JlID0gcmUuY29t
cGlsZShyJ15bMC05XSsnKQorICAgIHdoaWxlIGlkZW50aWZpZXI6CisgICAgICAgIGlkZW50aWZp
ZXJfbGVuZ3RoID0gbGVuKGlkZW50aWZpZXIpCisgICAgICAgIGlmIGlkZW50aWZpZXIuc3RhcnRz
d2l0aCgnXycpOgorICAgICAgICAgICAgaWYgbGVuKGlkZW50aWZpZXIpID09IDE6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHdvcmRzCisgICAgICAgICAgICBpZGVudGlmaWVyID0gaWRlbnRpZmll
clsxOl0KKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIGlkZW50aWZpZXIuc3RhcnRz
d2l0aCgnOjonKToKKyAgICAgICAgICAgIHdvcmRzLmFwcGVuZCgnOjonKQorICAgICAgICAgICAg
aWYgbGVuKGlkZW50aWZpZXIpID09IDI6CisgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmRzCisg
ICAgICAgICAgICBpZGVudGlmaWVyID0gaWRlbnRpZmllclsyOl0KKyAgICAgICAgICAgIGNvbnRp
bnVlCisgICAgICAgIG1hdGNoX3VwcGVyX2xvd2VyID0gbWF0Y2hfdXBwZXJfbG93ZXJfcmUuc2Vh
cmNoKGlkZW50aWZpZXIpCisgICAgICAgIGlmIG1hdGNoX3VwcGVyX2xvd2VyOgorICAgICAgICAg
ICAgd29yZCA9IG1hdGNoX3VwcGVyX2xvd2VyLmdyb3VwKDApCisgICAgICAgICAgICB3b3Jkcy5h
cHBlbmQod29yZCkKKyAgICAgICAgICAgIGlmIGxlbih3b3JkKSA9PSBpZGVudGlmaWVyX2xlbmd0
aDoKKyAgICAgICAgICAgICAgICByZXR1cm4gd29yZHMKKyAgICAgICAgICAgIGlkZW50aWZpZXIg
PSBpZGVudGlmaWVyW2xlbih3b3JkKTpdCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBt
YXRjaF91cHBlciA9IG1hdGNoX3VwcGVyX3JlLnNlYXJjaChpZGVudGlmaWVyKQorICAgICAgICBp
ZiBtYXRjaF91cHBlcjoKKyAgICAgICAgICAgIHdvcmQgPSBtYXRjaF91cHBlci5ncm91cCgwKQor
ICAgICAgICAgICAgaWYgbGVuKHdvcmQpID09IGxlbihpZGVudGlmaWVyKToKKyAgICAgICAgICAg
ICAgICB3b3Jkcy5hcHBlbmQod29yZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gd29yZHMKKyAg
ICAgICAgICAgIGlmIGlkZW50aWZpZXJbbGVuKHdvcmQpXS5pc2xvd2VyKCk6CisgICAgICAgICAg
ICAgICAgd29yZCA9IHdvcmRbOi0xXQorICAgICAgICAgICAgd29yZHMuYXBwZW5kKHdvcmQpCisg
ICAgICAgICAgICBpZGVudGlmaWVyID0gaWRlbnRpZmllcltsZW4od29yZCk6XQorICAgICAgICAg
ICAgY29udGludWUKKyAgICAgICAgbWF0Y2hfbnVtYmVyID0gbWF0Y2hfbnVtYmVyX3JlLnNlYXJj
aChpZGVudGlmaWVyKQorICAgICAgICBpZiBtYXRjaF9udW1iZXI6CisgICAgICAgICAgICB3b3Jk
ID0gbWF0Y2hfbnVtYmVyLmdyb3VwKDApCisgICAgICAgICAgICB3b3Jkcy5hcHBlbmQod29yZCkK
KyAgICAgICAgICAgIGlmIGxlbih3b3JkKSA9PSBpZGVudGlmaWVyX2xlbmd0aDoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gd29yZHMKKyAgICAgICAgICAgIGlkZW50aWZpZXIgPSBpZGVudGlmaWVy
W2xlbih3b3JkKTpdCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBtYXRjaF9sb3dlciA9
IG1hdGNoX2xvd2VyX3JlLnNlYXJjaChpZGVudGlmaWVyKQorICAgICAgICBpZiBtYXRjaF9sb3dl
cjoKKyAgICAgICAgICAgIHdvcmQgPSBtYXRjaF9sb3dlci5ncm91cCgwKQorICAgICAgICAgICAg
d29yZHMuYXBwZW5kKHdvcmQpCisgICAgICAgICAgICBpZiBsZW4od29yZCkgPT0gaWRlbnRpZmll
cl9sZW5ndGg6CisgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmRzCisgICAgICAgICAgICBpZGVu
dGlmaWVyID0gaWRlbnRpZmllcltsZW4od29yZCk6XQorICAgICAgICAgICAgY29udGludWUKKyAg
ICAgICAgYXNzZXJ0IEZhbHNlLCAnQ291bGQgbm90IG1hdGNoICIlcyInICUgaWRlbnRpZmllcgor
CisgICAgcmV0dXJuIHdvcmRzCisKKwogZGVmIF9jaGVja19pZGVudGlmaWVyX25hbWVfZm9yX2Fj
cm9ueW1zKGlkZW50aWZpZXIsIGxpbmVfbnVtYmVyLCBpc19jbGFzc19vcl9uYW1lc3BhY2Vfb3Jf
c3RydWN0X25hbWUsIGVycm9yKToKICAgICAiIiJDaGVja3MgdG8gc2VlIGlmIHRoZSBpZGVudGlm
aWVyIG5hbWUgY29udGFpbnMgYW4gYWNyb255bSB3aXRoIGltcHJvcGVyIGNhc2UuCiAKQEAgLTE4
MDMsMjkgKzE4OTUsNTcgQEAgZGVmIF9jaGVja19pZGVudGlmaWVyX25hbWVfZm9yX2Fjcm9ueW1z
KGlkZW50aWZpZXIsIGxpbmVfbnVtYmVyLCBpc19jbGFzc19vcl9uYW0KICAgICBtaWRkbGUgb3Ig
YXQgdGhlIGVuZCBvZiBhbiBpZGVudGlmaWVyIG5hbWUsIGJ1dCAiVXJsIiBpcyBuZXZlciBva2F5
LgogICAgICIiIgogICAgIGFjcm9ueW1zID0gJ3wnLmpvaW4oWydNSU1FJywgJ1VSTCddKQorICAg
IGFjcm9ueW1fZXhjZXB0aW9ucyA9ICd8Jy5qb2luKFsnQ3VybCddKQogCi0gICAgc3RhcnRfcmUg
PSByZS5jb21waWxlKCdeKCVzKSh8JCknICUgYWNyb255bXMsIHJlLklHTk9SRUNBU0UpCi0gICAg
c3RhcnRfZXhwZWN0ZWRfcmUgPSByZS5jb21waWxlKCdeKCVzKShbXjpdfCQpJyAlIGFjcm9ueW1z
Lmxvd2VyKCkpCi0gICAgIyBJZGVudGlmaWVycyB0aGF0IHN0YXJ0IHdpdGggYW4gYWNyb255bSBt
dXN0IGJlIGFsbCBsb3dlcmNhc2UsIGV4Y2VwdCBmb3IgY2xhc3MvbmFtZXNwYWNlL3N0cnVjdCBu
YW1lcy4KLSAgICBpZiBzdGFydF9yZS5zZWFyY2goaWRlbnRpZmllcikgYW5kIG5vdCBzdGFydF9l
eHBlY3RlZF9yZS5zZWFyY2goaWRlbnRpZmllcik6Ci0gICAgICAgIHN0YXJ0X3VwcGVyY2FzZV9y
ZSA9IHJlLmNvbXBpbGUoJ14oJXMpJyAlIGFjcm9ueW1zKQotICAgICAgICAjIElnbm9yZSBjbGFz
cy9uYW1lc3BhY2Uvc3RydWN0IG5hbWVzIHRoYXQgc3RhcnQgd2l0aCBhbGwtdXBwZXJjYXNlIGFj
cm9ueW1zLgotICAgICAgICBpZiBzdGFydF91cHBlcmNhc2VfcmUuc2VhcmNoKGlkZW50aWZpZXIp
IGFuZCBcCi0gICAgICAgICAgICAgICAgKGlzX2NsYXNzX29yX25hbWVzcGFjZV9vcl9zdHJ1Y3Rf
bmFtZSBvciBpZGVudGlmaWVyLmZpbmQoJzo6JykgIT0gLTEpOgotICAgICAgICAgICAgcmV0dXJu
IFRydWUKLSAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9uYW1pbmcvYWNy
b255bScsIDUsCi0gICAgICAgICAgICAgICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIgc3RhcnRz
IHdpdGggYSBhY3JvbnltIHRoYXQgaXMgbm90IGFsbCBsb3dlcmNhc2UuJyAlIGlkZW50aWZpZXIp
Ci0gICAgICAgIHJldHVybiBGYWxzZQorICAgIGlkZW50aWZpZXJfd29yZHMgPSBfc3BsaXRfaWRl
bnRpZmllcl9pbnRvX3dvcmRzKGlkZW50aWZpZXIpCiAKLSAgICAjIEZJWE1FOiBIYXJkIHRvIGNo
ZWNrIG1pZGRsZSB3b3JkcyB3aXRob3V0IGtub3dpbmcgdGhhdCB0aGUgd29yZCB0byB0aGUgbGVm
dCBkb2Vzbid0IGVuZCB3aXRoIGFuIGFjcm9ueW0uCisgICAgaXNfY29uc3RydWN0b3IgPSBGYWxz
ZQorICAgIGlmIGlkZW50aWZpZXJfd29yZHMuY291bnQoJzo6JykgPT0gMToKKyAgICAgICAgbmFt
ZXMgPSBpZGVudGlmaWVyLnNwbGl0KCc6OicpCisgICAgICAgIGlmIG5hbWVzWzBdID09IG5hbWVz
WzFdOgorICAgICAgICAgICAgaXNfY29uc3RydWN0b3IgPSBUcnVlCiAKLSAgICAjIElkZW50aWZp
ZXJzIHRoYXQgZW5kIHdpdGggYW4gYWNyb255bSBtdXN0IGJlIGFsbCB1cHBlcmNhc2UsIGV4Y2Vw
dCBmb3IgdmFyaWFibGVzIGxpa2UgJ21fdXJsJyBhbmQgJ0NsYXNzOjp1cmwoKScuCi0gICAgZW5k
X3JlID0gcmUuY29tcGlsZSgnW15fOl0oJXMpJCcgJSBhY3JvbnltcywgcmUuSUdOT1JFQ0FTRSkK
LSAgICBlbmRfZXhwZWN0ZWRfcmUgPSByZS5jb21waWxlKCdbXl86XSglcykkJyAlIGFjcm9ueW1z
KQotICAgIGlmIGVuZF9yZS5zZWFyY2goaWRlbnRpZmllcikgYW5kIG5vdCBlbmRfZXhwZWN0ZWRf
cmUuc2VhcmNoKGlkZW50aWZpZXIpOgotICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3JlYWRh
YmlsaXR5L25hbWluZy9hY3JvbnltJywgNSwKLSAgICAgICAgICAgICAgJ1RoZSBpZGVudGlmaWVy
IG5hbWUgIiVzIiBlbmRzIHdpdGggYSBhY3JvbnltIHRoYXQgaXMgbm90IGFsbCB1cHBlcmNhc2Uu
JyAlIGlkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBGYWxzZQorICAgIGNvbnRhaW5zX2Fjcm9u
eW1fbG93ZXJjYXNlX3JlID0gcmUuY29tcGlsZSgnKCVzKScgJSBhY3Jvbnltcy5sb3dlcigpKQor
ICAgIGlzX2Fjcm9ueW1fYW55X2Nhc2VfcmUgPSByZS5jb21waWxlKCdeKCVzKSQnICUgYWNyb255
bXMsIHJlLklHTk9SRUNBU0UpCisgICAgaXNfYWNyb255bV9sb3dlcmNhc2VfcmUgPSByZS5jb21w
aWxlKCdeKCVzKSQnICUgYWNyb255bXMubG93ZXIoKSkKKyAgICBpc19hY3JvbnltX3VwcGVyY2Fz
ZV9yZSA9IHJlLmNvbXBpbGUoJ14oJXMpJCcgJSBhY3Jvbnltcy51cHBlcigpKQorICAgIGlzX2Fj
cm9ueW1fZXhjZXB0aW9uX2FueV9jYXNlX3JlID0gcmUuY29tcGlsZSgnXiglcykkJyAlIGFjcm9u
eW1fZXhjZXB0aW9ucywgcmUuSUdOT1JFQ0FTRSkKKworICAgIHN0YXJ0X29mX3ZhcmlhYmxlID0g
VHJ1ZQorICAgIGZvciBpIGluIHhyYW5nZSgwLCBsZW4oaWRlbnRpZmllcl93b3JkcykpOgorICAg
ICAgICB3b3JkID0gaWRlbnRpZmllcl93b3Jkc1tpXQorCisgICAgICAgIGlmIHdvcmQgPT0gJzo6
JzoKKyAgICAgICAgICAgIHN0YXJ0X29mX3ZhcmlhYmxlID0gVHJ1ZQorICAgICAgICAgICAgY29u
dGludWUKKworICAgICAgICBpZiBzdGFydF9vZl92YXJpYWJsZToKKyAgICAgICAgICAgIHN0YXJ0
X29mX3ZhcmlhYmxlID0gRmFsc2UKKyAgICAgICAgICAgICMgSWRlbnRpZmllcnMgdGhhdCBzdGFy
dCB3aXRoIGFuIGFjcm9ueW0gbXVzdCBiZSBhbGwgbG93ZXJjYXNlLCBleGNlcHQgZm9yIGNsYXNz
L25hbWVzcGFjZS9zdHJ1Y3QgbmFtZXMuCisgICAgICAgICAgICBpZiBpc19hY3JvbnltX2FueV9j
YXNlX3JlLnNlYXJjaCh3b3JkKToKKyAgICAgICAgICAgICAgICBpZiBpc19hY3JvbnltX2xvd2Vy
Y2FzZV9yZS5zZWFyY2god29yZCk6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAg
ICAgICAgICAgICAgZWxpZiBpc19hY3JvbnltX3VwcGVyY2FzZV9yZS5zZWFyY2god29yZCkgYW5k
IFwKKyAgICAgICAgICAgICAgICAgICAgICAgIChpc19jbGFzc19vcl9uYW1lc3BhY2Vfb3Jfc3Ry
dWN0X25hbWUgb3IgJzo6JyBpbiBpZGVudGlmaWVyX3dvcmRzW2k6XSBvciBpc19jb25zdHJ1Y3Rv
cik6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9uYW1p
bmcvYWNyb255bScsIDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdUaGUgaWRlbnRpZmll
ciBuYW1lICIlcyIgc3RhcnRzIHdpdGggYW4gYWNyb255bSB0aGF0IGlzIG5vdCBhbGwgbG93ZXJj
YXNlLicgJSBpZGVudGlmaWVyKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICMgSWRlbnRpZmllcnMgdGhhdCBjb250YWluIG9yIGVu
ZCB3aXRoIGFuIGFjcm9ueW0gbXVzdCBiZSBhbGwgdXBwZXJjYXNlLgorICAgICAgICAgICAgaWYg
aXNfYWNyb255bV9hbnlfY2FzZV9yZS5zZWFyY2god29yZCk6CisgICAgICAgICAgICAgICAgaWYg
aXNfYWNyb255bV91cHBlcmNhc2VfcmUuc2VhcmNoKHdvcmQpOgorICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGVy
cm9yKGxpbmVfbnVtYmVyLCAncmVhZGFiaWxpdHkvbmFtaW5nL2Fjcm9ueW0nLCA1LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAnVGhlIGlkZW50aWZpZXIgbmFtZSAiJXMiIGNvbnRhaW5zIGFu
IGFjcm9ueW0gdGhhdCBpcyBub3QgYWxsIHVwcGVyY2FzZS4nICUgaWRlbnRpZmllcikKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgaWYgY29udGFpbnNfYWNyb255
bV9sb3dlcmNhc2VfcmUuc2VhcmNoKHdvcmQpIGFuZCBub3QgaXNfYWNyb255bV9leGNlcHRpb25f
YW55X2Nhc2VfcmUuc2VhcmNoKHdvcmQpOgorICAgICAgICAgICAgZXJyb3IobGluZV9udW1iZXIs
ICdyZWFkYWJpbGl0eS9uYW1pbmcvYWNyb255bScsIDMsCisgICAgICAgICAgICAgICAgICAnVGhl
IGlkZW50aWZpZXIgbmFtZSAiJXMiIF9tYXlfIGNvbnRhaW4gYW4gYWNyb255bSB0aGF0IGlzIG5v
dCBhbGwgdXBwZXJjYXNlLicgJSBpZGVudGlmaWVyKQorICAgICAgICAgICAgY29udGludWUKIAog
ICAgIHJldHVybiBUcnVlCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkKaW5kZXggMTljZGU0OTM2MzYzNzY1ZTA5MjM5MzA0
NzYxOGNiYjY3YTAzNzRmNi4uOWIwNmM3YWI1NTBlMjE4NWY5YWExOWMzMjYxYjYwMzNiZTVkY2Y1
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9j
cHBfdW5pdHRlc3QucHkKQEAgLTQ1LDcgKzQ1LDcgQEAgaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHdl
YmtpdGNvcmVweSBpbXBvcnQgc3RyaW5nX3V0aWxzCiAKIGZyb20gd2Via2l0cHkuc3R5bGUuY2hl
Y2tlcnMgaW1wb3J0IGNwcCBhcyBjcHBfc3R5bGUKLWZyb20gd2Via2l0cHkuc3R5bGUuY2hlY2tl
cnMuY3BwIGltcG9ydCBDcHBDaGVja2VyCitmcm9tIHdlYmtpdHB5LnN0eWxlLmNoZWNrZXJzLmNw
cCBpbXBvcnQgQ3BwQ2hlY2tlciwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcwogZnJvbSB3
ZWJraXRweS5zdHlsZS5maWx0ZXIgaW1wb3J0IEZpbHRlckNvbmZpZ3VyYXRpb24KIAogCkBAIC0y
MDQzLDcgKzIwNDMsNyBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAg
ICAgICAgICAgICAnfVxuJywKICAgICAgICAgICAgICcnKQogICAgICAgICBzZWxmLmFzc2VydF9t
dWx0aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnYXV0byBGb286YmFyKCkgLT4gQmF6XG4nCisg
ICAgICAgICAgICAnYXV0byBGb286OmJhcigpIC0+IEJhelxuJwogICAgICAgICAgICAgJ3tcbicK
ICAgICAgICAgICAgICd9XG4nLAogICAgICAgICAgICAgJycpCkBAIC01OTQ5LDEyICs1OTQ5LDUz
IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3tcbicKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicsICd0ZXN0LmNwcCcsIHBhcmFtZXRlcl9l
cnJvcl9ydWxlcykpCiAKKyAgICBkZWYgdGVzdF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMo
c2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIF9zcGxpdF9pZGVudGlmaWVyX2lu
dG9fd29yZHMoJycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnYSddLCBfc3BsaXRfaWRl
bnRpZmllcl9pbnRvX3dvcmRzKCdhJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydBJ10s
IF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ0EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChbJ2EnLCAnQiddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdhQicpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFsnQWInXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3Jk
cygnQWInKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsndXJsJ10sIF9zcGxpdF9pZGVu
dGlmaWVyX2ludG9fd29yZHMoJ3VybCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVXJs
J10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VybCcpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFsnVVJMJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VSTCcpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsndXJsJywgJ1N0cmluZyddLCBfc3BsaXRfaWRlbnRp
Zmllcl9pbnRvX3dvcmRzKCd1cmxTdHJpbmcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChb
J1VSTCcsICdTdHJpbmcnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMU3RyaW5n
JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyd0ZXN0JywgJ1BhdGgnLCAnT3InLCAnVXJs
J10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ3Rlc3RQYXRoT3JVcmwnKSkKKworICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVVJMJywgJzo6JywgJ2ludmFsaWRhdGUnXSwgX3NwbGl0
X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMOjppbnZhbGlkYXRlJykpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWydVUkwnLCAnOjonLCAnaW52YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmll
cl9pbnRvX3dvcmRzKCdVUkxfOjppbnZhbGlkYXRlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoWydVUkwnLCAnOjonLCAnaW52YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dv
cmRzKCdVUkxfOjpfaW52YWxpZGF0ZScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVVJM
JywgJzo6JywgJ2ludmFsaWRhdGUnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJM
Xzo6aW52YWxpZGF0ZScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVVJMJywgJzgnLCAn
OjonLCAnaW52YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdVUkw4Ojpp
bnZhbGlkYXRlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydVUkwnLCAnOCcsICc6Oics
ICdpbnZhbGlkYXRlJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VSTDhfOjpfaW52
YWxpZGF0ZV8nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4JywgJzo6Jywg
J2ludmFsaWRhdGUnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMOF86Ol9pbnZh
bGlkYXRlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydVUkwnLCAnOCcsICc6OicsICdp
bnZhbGlkYXRlJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VSTDhfOjpfaW52YWxp
ZGF0ZV8nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4JywgJzo6JywgJ2lu
dmFsaWRhdGUnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMOF86OmludmFsaWRh
dGUnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4JywgJzo6JywgJ2ludmFs
aWRhdGUnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMOF86Ol9pbnZhbGlkYXRl
JykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ2xvYWR1cmwnXSwgX3NwbGl0X2lkZW50
aWZpZXJfaW50b193b3JkcygnbG9hZHVybCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsn
bG9hZCcsICdVcmwnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnbG9hZFVybCcpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnbG9hZCcsICdVUkwnXSwgX3NwbGl0X2lkZW50aWZp
ZXJfaW50b193b3JkcygnbG9hZFVSTCcpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyd1
cmwnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnX3VybCcpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFsndXJsJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ2dfdXJs
JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyd1cmwnXSwgX3NwbGl0X2lkZW50aWZpZXJf
aW50b193b3JkcygnbV91cmwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3VybCddLCBf
c3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdzX3VybCcpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsnREMnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnbV9EQycpKQorCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydpJywgJzEnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50
b193b3JkcygnaTEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3VybCcsICc4J10sIF9z
cGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ3VybDgnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChbJ1VybCcsICc4J10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VybDgnKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4J10sIF9zcGxpdF9pZGVudGlmaWVy
X2ludG9fd29yZHMoJ1VSTDgnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ25vbicsICdV
VEYnLCAnOCcsICdRdWVyeScsICdFbmNvZGluZyddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dv
cmRzKCdub25VVEY4UXVlcnlFbmNvZGluZycpKQorCiAgICAgZGVmIHRlc3RfaWRlbnRpZmllcl9u
YW1lc193aXRoX2Fjcm9ueW1zKHNlbGYpOgogICAgICAgICBpZGVudGlmaWVyX2Vycm9yX3J1bGVz
ID0gKCctJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnK3JlYWRhYmlsaXR5
L25hbWluZy9hY3JvbnltJykKIAotICAgICAgICAjIFN0YXJ0IG9mIHBhcmFtZXRlciBuYW1lLgot
ICAgICAgICBlcnJvcl9zdGFydCA9ICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIgc3RhcnRzIHdp
dGggYSBhY3JvbnltIHRoYXQgaXMgbm90IGFsbCBsb3dlcmNhc2UuJ1wKKyAgICAgICAgIyBUZXN0
IHRoYXQgYW4gaWRlbnRpZmllciBzdGFydHMgd2l0aCBhbiBhY3JvbnltLgorICAgICAgICBlcnJv
cl9zdGFydCA9ICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIgc3RhcnRzIHdpdGggYW4gYWNyb255
bSB0aGF0IGlzIG5vdCBhbGwgbG93ZXJjYXNlLidcCiAgICAgICAgICAgICAgICAgICAgICAgJyAg
W3JlYWRhYmlsaXR5L25hbWluZy9hY3JvbnltXSBbNV0nCiAKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnJywKQEAgLTU5OTEsNiArNjAzMiw4IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBT
dHlsZVRlc3RCYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGlu
dCgnVVJMUGFyc2VyOjpVUkxQYXJzZXIoY29uc3QgU3RyaW5nJiBpbnB1dCwgY29uc3QgVVJMJiBi
YXNlLCBjb25zdCBVUkxUZXh0RW5jb2RpbmcqIG5vblVURjhRdWVyeUVuY29kaW5nKScsICd0ZXN0
LmNwcCcsIGlkZW50aWZpZXJfZXJyb3JfcnVsZXMpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCcnLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCdib29sIFVS
TFBhcnNlcjo6aW50ZXJuYWxWYWx1ZXNDb25zaXN0ZW50KGNvbnN0IFVSTCYgdXJsKScsICd0ZXN0
LmNwcCcsIGlkZW50aWZpZXJfZXJyb3JfcnVsZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGVycm9yX3N0YXJ0ICUgJ1VSTDo6VVJMTm90Q29uc3RydWN0b3InLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCdib29sIFVSTDo6VVJMTm90Q29uc3RydWN0b3Io
KScsICd0ZXN0LmNwcCcsIGlkZW50aWZpZXJfZXJyb3JfcnVsZXMpKQogCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xp
bnQoJ1N0cmluZyBtX3VybDsnLCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkK
QEAgLTYwMDIsMjYgKzYwNDUsMzggQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVz
dEJhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9yX3N0YXJ0ICUgJ1VybFBhcnNl
OjpVcmxQYXJzZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQo
J3ZvaWQgVXJsUGFyc2U6OlVybFBhcnNlKCknLCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9y
X3J1bGVzKSkKIAotICAgICAgICAjIEZJWE1FOiBIYXJkIHRvIGNoZWNrIG1pZGRsZSB3b3JkcyB3
aXRob3V0IGtub3dpbmcgdGhhdCB0aGUgd29yZCB0byB0aGUgbGVmdCBkb2Vzbid0IGVuZCB3aXRo
IGFuIGFjcm9ueW0uCi0KLSAgICAgICAgZXJyb3JfZW5kID0gJ1RoZSBpZGVudGlmaWVyIG5hbWUg
IiVzIiBlbmRzIHdpdGggYSBhY3JvbnltIHRoYXQgaXMgbm90IGFsbCB1cHBlcmNhc2UuJ1wKLSAg
ICAgICAgICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L25hbWluZy9hY3JvbnltXSBbNV0nCisg
ICAgICAgICMgVGVzdCB0aGF0IGlkZW50aWZpZXIgY29udGFpbnMgYW4gYWNyb255bS4KKyAgICAg
ICAgZXJyb3JfY29udGFpbiA9ICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIgY29udGFpbnMgYW4g
YWNyb255bSB0aGF0IGlzIG5vdCBhbGwgdXBwZXJjYXNlLidcCisgICAgICAgICAgICAgICAgICAg
ICAgICAnICBbcmVhZGFiaWxpdHkvbmFtaW5nL2Fjcm9ueW1dIFs1XScKIAotICAgICAgICAjIEVu
ZCBvZiBwYXJhbWV0ZXIgbmFtZS4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvcl9lbmQg
JSAnbG9hZHVybCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQo
J3ZvaWQgbG9hZChVUkwgbG9hZHVybCk7JywgJ3Rlc3QuY3BwJywgaWRlbnRpZmllcl9lcnJvcl9y
dWxlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyb3JfZW5kICUgJ2xvYWRVcmwnLAor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9yX2NvbnRhaW4gJSAnbG9hZFVybCcsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ3ZvaWQgbG9hZChVUkwgbG9h
ZFVybCk7JywgJ3Rlc3QuY3BwJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3Jt
X2xpbnQoJ3ZvaWQgbG9hZChVUkwgbG9hZFVSTCk7JywgJ3Rlc3QuY3BwJywgaWRlbnRpZmllcl9l
cnJvcl9ydWxlcykpCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgndm9pZCBJbnNwZWN0b3JGcm9udGVuZEhv
c3Q6Omluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiBuZXdVUkwpJywgJ3Rlc3QuY3Bw
JywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJy
b3JfZW5kICUgJ3Rlc3RQYXRoT3JVcmwnLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9y
X2NvbnRhaW4gJSAndGVzdFBhdGhPclVybCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5wZXJmb3JtX2xpbnQoJ3N0YXRpYyB2b2lkIGNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQoY29u
c3QgY2hhciogdGVzdFBhdGhPclVybCknLCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1
bGVzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvcl9lbmQgJSAnbG9jYWxQYXRoT3JV
cmwnLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9yX2NvbnRhaW4gJSAnbG9jYWxQYXRo
T3JVcmwnLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCdhdXRv
IGxvY2FsUGF0aE9yVXJsID0gU3RyaW5nKHRlc3RQYXRoT3JVUkwpOycsICd0ZXN0LmNwcCcsIGlk
ZW50aWZpZXJfZXJyb3JfcnVsZXMpKQogCisgICAgICAgICMgVGVzdCB0aGF0IGFuIGlkZW50aWZp
ZXIgX21pZ2h0XyBjb250YWluIGFuIGFjcm9ueW0uCisgICAgICAgIGVycm9yX21heV9jb250YWlu
ID0gJ1RoZSBpZGVudGlmaWVyIG5hbWUgIiVzIiBfbWF5XyBjb250YWluIGFuIGFjcm9ueW0gdGhh
dCBpcyBub3QgYWxsIHVwcGVyY2FzZS4nXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICcg
IFtyZWFkYWJpbGl0eS9uYW1pbmcvYWNyb255bV0gWzNdJworICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGVycm9yX21heV9jb250YWluICUgJ2xvYWR1cmwnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYucGVyZm9ybV9saW50KCd2b2lkIGxvYWQoVVJMIGxvYWR1cmwpOycsICd0ZXN0LmNw
cCcsIGlkZW50aWZpZXJfZXJyb3JfcnVsZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVy
cm9yX21heV9jb250YWluICUgJ2NhbkxvYWR1cmwnLAorICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYucGVyZm9ybV9saW50KCd2b2lkIGxvYWQoVVJMIHVybCwgYm9vbCBjYW5Mb2FkdXJsKTsn
LCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkKKworICAgICAgICAjIFRlc3Qg
c3BlY2lhbCBleGNlcHRpb25zLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBzZWxmLnBl
cmZvcm1fbGludCgKKyAgICAgICAgICAgICd2b2lkIGN1cmxEaWRTZW5kRGF0YShXZWJDb3JlOjpD
dXJsUmVxdWVzdCYsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nKSBvdmVy
cmlkZTsnLAorICAgICAgICAgICAgJ05ldHdvcmtEYXRhVGFza0N1cmwuaCcsIGlkZW50aWZpZXJf
ZXJyb3JfcnVsZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBzZWxmLnBlcmZvcm1f
bGludCgKKyAgICAgICAgICAgICd2b2lkIE5ldHdvcmtEYXRhVGFza0N1cmw6OmNhbmNlbCgpJywK
KyAgICAgICAgICAgICdOZXR3b3JrRGF0YVRhc2tDdXJsLmNwcCcsIGlkZW50aWZpZXJfZXJyb3Jf
cnVsZXMpKQorCiAgICAgZGVmIHRlc3RfY29tbWVudHMoc2VsZik6CiAgICAgICAgICMgQSBjb21t
ZW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lIGlzIG9rLgogICAgICAgICBzZWxmLmFzc2Vy
dF9saW50KCcvLyBjb21tZW50JywgJycpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405766</attachid>
            <date>2020-07-31 21:25:13 -0700</date>
            <delta_ts>2020-08-01 12:16:41 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-215026-20200731212540.patch</filename>
            <type>text/plain</type>
            <size>19585</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTU2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmYyMWEzZTcyZDNhNjNhZTVkNDQ3OTVjZjUwZDJmNWUx
ZDhkNjViZi4uYWE4MmNkMmQyMzA0Zjc0MTBmMDMyZmU1YWViZGQyZGE4MDZlZDhmZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDIwLTA3LTMxICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAg
ICAgICAgY2hlY2std2Via2l0LXN0eWxlOiBiZXR0ZXIgYWxnb3JpdGhtIHRvIGNoZWNrIGZvciBh
Y3JvbnltIGNhcGl0YWxpemF0aW9uIGluIGFuIGlkZW50aWZpZXIKKyAgICAgICAgPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzIxNTAyNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5Ogor
ICAgICAgICAoX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3Jkcyk6IEFkZC4KKyAgICAgICAgLSBU
aGlzIG1ldGhvZCBzcGxpdHMgYSBpZGVudGlmaWVyIGludG8gaW5kaXZpZHVhbCB3b3Jkcy4KKyAg
ICAgICAgKF9jaGVja19pZGVudGlmaWVyX25hbWVfZm9yX2Fjcm9ueW1zKToKKyAgICAgICAgLSBV
cGRhdGUgdG8gdXNlIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoKSwgd2hpY2ggbWFrZXMg
aXQKKyAgICAgICAgICBwb3NzaWJsZSB0byBjaGVjayBmb3IgaW1wcm9wZXJseSBjYXBpdGFsaXpl
ZCBhY3JvbnltcyBpbiB0aGUKKyAgICAgICAgICBtaWRkbGUgb2YgaWRlbnRpZmllcnMuCisgICAg
ICAgIC0gQWxzbyBhZGQgc3VwcG9ydCBmb3IgZXhjZXB0aW9ucywgd2hpY2ggYXJlIHZhbGlkIHdv
cmRzIHRoYXQKKyAgICAgICAgICBpbmNsdWRlIGFjcm9ueW1zIChsaWtlICJDdXJsIikuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHk6Cisg
ICAgICAgIChDcHBTdHlsZVRlc3QpOgorICAgICAgICAtIEZpeCBhIHR5cG8gaW4gYSBtZXRob2Qg
bmFtZSBpbiBhbm90aGVyIHRlc3QuCisgICAgICAgIChXZWJLaXRTdHlsZVRlc3QudGVzdF9zcGxp
dF9pZGVudGlmaWVyX2ludG9fd29yZHMpOiBBZGQuCisgICAgICAgIC0gQWRkIHRlc3RzIGZvciBf
c3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCkuCisgICAgICAgIChXZWJLaXRTdHlsZVRlc3Qu
dGVzdF9pZGVudGlmaWVyX25hbWVzX3dpdGhfYWNyb255bXMpOgorICAgICAgICAtIEFkZCB0ZXN0
cyBmb3IgY2FzZXMgdGhhdCB3ZXJlbid0IHBvc3NpYmxlIHdpdGggdGhlIHByZXZpb3VzCisgICAg
ICAgICAgYWxnb3JpdGhtLgorCiAyMDIwLTA3LTI5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CiAKICAgICAgICAgV1RGOjptYWtlU3RyaW5nKCkgc2hvdWxkIGhhbmRsZSBlbnVt
IHZhbHVlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
cy9jcHAucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQpp
bmRleCAwMDZmMGUzMDI2NTJjZGVkZjZmYjYzNjg3NGFlZWIwNDYxMTkyNjc2Li42NGRhMzVkYjcy
YTg0NjU2YzNiYzU2Yjg1NzExM2VkODg0MTIwZDMwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQpAQCAtMTc5Niw2ICsxNzk2LDEwMSBAQCBkZWYgX2No
ZWNrX3BhcmFtZXRlcl9uYW1lX2FnYWluc3RfdGV4dChwYXJhbWV0ZXIsIHRleHQsIGVycm9yKToK
ICAgICByZXR1cm4gVHJ1ZQogCiAKK2RlZiBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKGlk
ZW50aWZpZXIpOgorICAgIHdvcmRzID0gW10KKyAgICBpZiBub3QgaWRlbnRpZmllcjoKKyAgICAg
ICAgcmV0dXJuIHdvcmRzCisKKyAgICAjIFJlbW92ZSBwcmVmaXhlcyB0aGF0IGFyZW4ndCBwYXJ0
IG9mIHRoZSBpZGVudGlmaWVyIG5hbWUuCisgICAgaWRlbnRpZmllciA9IHJlLnN1YihyJ15bZ21z
XT9fJywgJycsIGlkZW50aWZpZXIpCisgICAgIyBSZW1vdmUgYml0ZmllbGQgbGVuZ3Rocy4KKyAg
ICBpZGVudGlmaWVyID0gcmUuc3ViKHInOlswLTldKyQnLCAnJywgaWRlbnRpZmllcikKKworICAg
IGlkZW50aWZpZXJfbGVuZ3RoID0gbGVuKGlkZW50aWZpZXIpCisKKyAgICBtYXRjaF91cHBlcl9y
ZSA9IHJlLmNvbXBpbGUocideW0EtWl0rJykKKyAgICBtYXRjaF91cHBlcl9sb3dlcl9yZSA9IHJl
LmNvbXBpbGUocideW0EtWl1bYS16XSsnKQorICAgIG1hdGNoX2xvd2VyX3JlID0gcmUuY29tcGls
ZShyJ15bYS16XSsnKQorCisgICAgbWF0Y2hfbG93ZXIgPSBtYXRjaF9sb3dlcl9yZS5zZWFyY2go
aWRlbnRpZmllcikKKyAgICBtYXRjaF91cHBlcl9sb3dlciA9IG1hdGNoX3VwcGVyX2xvd2VyX3Jl
LnNlYXJjaChpZGVudGlmaWVyKQorICAgIG1hdGNoX3VwcGVyID0gbWF0Y2hfdXBwZXJfcmUuc2Vh
cmNoKGlkZW50aWZpZXIpCisgICAgaWYgbWF0Y2hfbG93ZXI6CisgICAgICAgIHdvcmQgPSBtYXRj
aF9sb3dlci5ncm91cCgwKQorICAgICAgICB3b3Jkcy5hcHBlbmQod29yZCkKKyAgICAgICAgaWYg
bGVuKHdvcmQpID09IGlkZW50aWZpZXJfbGVuZ3RoOgorICAgICAgICAgICAgcmV0dXJuIHdvcmRz
CisgICAgICAgIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyW2xlbih3b3JkKTpdCisgICAgZWxpZiBt
YXRjaF91cHBlcl9sb3dlcjoKKyAgICAgICAgd29yZCA9IG1hdGNoX3VwcGVyX2xvd2VyLmdyb3Vw
KDApCisgICAgICAgIHdvcmRzLmFwcGVuZCh3b3JkKQorICAgICAgICBpZiBsZW4od29yZCkgPT0g
aWRlbnRpZmllcl9sZW5ndGg6CisgICAgICAgICAgICByZXR1cm4gd29yZHMKKyAgICAgICAgaWRl
bnRpZmllciA9IGlkZW50aWZpZXJbbGVuKHdvcmQpOl0KKyAgICBlbGlmIG1hdGNoX3VwcGVyOgor
ICAgICAgICB3b3JkID0gbWF0Y2hfdXBwZXIuZ3JvdXAoMCkKKyAgICAgICAgaWYgbGVuKHdvcmQp
ID09IGlkZW50aWZpZXJfbGVuZ3RoOgorICAgICAgICAgICAgd29yZHMuYXBwZW5kKHdvcmQpCisg
ICAgICAgICAgICByZXR1cm4gd29yZHMKKyAgICAgICAgaWYgaWRlbnRpZmllcltsZW4od29yZCld
LmlzbG93ZXIoKToKKyAgICAgICAgICAgIHdvcmQgPSB3b3JkWzotMV0KKyAgICAgICAgd29yZHMu
YXBwZW5kKHdvcmQpCisgICAgICAgIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyW2xlbih3b3JkKTpd
CisKKyAgICBtYXRjaF9udW1iZXJfcmUgPSByZS5jb21waWxlKHInXlswLTldKycpCisgICAgd2hp
bGUgaWRlbnRpZmllcjoKKyAgICAgICAgaWRlbnRpZmllcl9sZW5ndGggPSBsZW4oaWRlbnRpZmll
cikKKyAgICAgICAgaWYgaWRlbnRpZmllci5zdGFydHN3aXRoKCdfJyk6CisgICAgICAgICAgICBp
ZiBsZW4oaWRlbnRpZmllcikgPT0gMToKKyAgICAgICAgICAgICAgICByZXR1cm4gd29yZHMKKyAg
ICAgICAgICAgIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyWzE6XQorICAgICAgICAgICAgY29udGlu
dWUKKyAgICAgICAgaWYgaWRlbnRpZmllci5zdGFydHN3aXRoKCc6OicpOgorICAgICAgICAgICAg
d29yZHMuYXBwZW5kKCc6OicpCisgICAgICAgICAgICBpZiBsZW4oaWRlbnRpZmllcikgPT0gMjoK
KyAgICAgICAgICAgICAgICByZXR1cm4gd29yZHMKKyAgICAgICAgICAgIGlkZW50aWZpZXIgPSBp
ZGVudGlmaWVyWzI6XQorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgbWF0Y2hfdXBwZXJf
bG93ZXIgPSBtYXRjaF91cHBlcl9sb3dlcl9yZS5zZWFyY2goaWRlbnRpZmllcikKKyAgICAgICAg
aWYgbWF0Y2hfdXBwZXJfbG93ZXI6CisgICAgICAgICAgICB3b3JkID0gbWF0Y2hfdXBwZXJfbG93
ZXIuZ3JvdXAoMCkKKyAgICAgICAgICAgIHdvcmRzLmFwcGVuZCh3b3JkKQorICAgICAgICAgICAg
aWYgbGVuKHdvcmQpID09IGlkZW50aWZpZXJfbGVuZ3RoOgorICAgICAgICAgICAgICAgIHJldHVy
biB3b3JkcworICAgICAgICAgICAgaWRlbnRpZmllciA9IGlkZW50aWZpZXJbbGVuKHdvcmQpOl0K
KyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIG1hdGNoX3VwcGVyID0gbWF0Y2hfdXBwZXJf
cmUuc2VhcmNoKGlkZW50aWZpZXIpCisgICAgICAgIGlmIG1hdGNoX3VwcGVyOgorICAgICAgICAg
ICAgd29yZCA9IG1hdGNoX3VwcGVyLmdyb3VwKDApCisgICAgICAgICAgICBpZiBsZW4od29yZCkg
PT0gbGVuKGlkZW50aWZpZXIpOgorICAgICAgICAgICAgICAgIHdvcmRzLmFwcGVuZCh3b3JkKQor
ICAgICAgICAgICAgICAgIHJldHVybiB3b3JkcworICAgICAgICAgICAgaWYgaWRlbnRpZmllclts
ZW4od29yZCldLmlzbG93ZXIoKToKKyAgICAgICAgICAgICAgICB3b3JkID0gd29yZFs6LTFdCisg
ICAgICAgICAgICB3b3Jkcy5hcHBlbmQod29yZCkKKyAgICAgICAgICAgIGlkZW50aWZpZXIgPSBp
ZGVudGlmaWVyW2xlbih3b3JkKTpdCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBtYXRj
aF9udW1iZXIgPSBtYXRjaF9udW1iZXJfcmUuc2VhcmNoKGlkZW50aWZpZXIpCisgICAgICAgIGlm
IG1hdGNoX251bWJlcjoKKyAgICAgICAgICAgIHdvcmQgPSBtYXRjaF9udW1iZXIuZ3JvdXAoMCkK
KyAgICAgICAgICAgIHdvcmRzLmFwcGVuZCh3b3JkKQorICAgICAgICAgICAgaWYgbGVuKHdvcmQp
ID09IGlkZW50aWZpZXJfbGVuZ3RoOgorICAgICAgICAgICAgICAgIHJldHVybiB3b3JkcworICAg
ICAgICAgICAgaWRlbnRpZmllciA9IGlkZW50aWZpZXJbbGVuKHdvcmQpOl0KKyAgICAgICAgICAg
IGNvbnRpbnVlCisgICAgICAgIG1hdGNoX2xvd2VyID0gbWF0Y2hfbG93ZXJfcmUuc2VhcmNoKGlk
ZW50aWZpZXIpCisgICAgICAgIGlmIG1hdGNoX2xvd2VyOgorICAgICAgICAgICAgd29yZCA9IG1h
dGNoX2xvd2VyLmdyb3VwKDApCisgICAgICAgICAgICB3b3Jkcy5hcHBlbmQod29yZCkKKyAgICAg
ICAgICAgIGlmIGxlbih3b3JkKSA9PSBpZGVudGlmaWVyX2xlbmd0aDoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gd29yZHMKKyAgICAgICAgICAgIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyW2xlbih3
b3JkKTpdCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBhc3NlcnQgRmFsc2UsICdDb3Vs
ZCBub3QgbWF0Y2ggIiVzIicgJSBpZGVudGlmaWVyCisKKyAgICByZXR1cm4gd29yZHMKKworCiBk
ZWYgX2NoZWNrX2lkZW50aWZpZXJfbmFtZV9mb3JfYWNyb255bXMoaWRlbnRpZmllciwgbGluZV9u
dW1iZXIsIGlzX2NsYXNzX29yX25hbWVzcGFjZV9vcl9zdHJ1Y3RfbmFtZSwgZXJyb3IpOgogICAg
ICIiIkNoZWNrcyB0byBzZWUgaWYgdGhlIGlkZW50aWZpZXIgbmFtZSBjb250YWlucyBhbiBhY3Jv
bnltIHdpdGggaW1wcm9wZXIgY2FzZS4KIApAQCAtMTgwMywyOSArMTg5OCw1NyBAQCBkZWYgX2No
ZWNrX2lkZW50aWZpZXJfbmFtZV9mb3JfYWNyb255bXMoaWRlbnRpZmllciwgbGluZV9udW1iZXIs
IGlzX2NsYXNzX29yX25hbQogICAgIG1pZGRsZSBvciBhdCB0aGUgZW5kIG9mIGFuIGlkZW50aWZp
ZXIgbmFtZSwgYnV0ICJVcmwiIGlzIG5ldmVyIG9rYXkuCiAgICAgIiIiCiAgICAgYWNyb255bXMg
PSAnfCcuam9pbihbJ01JTUUnLCAnVVJMJ10pCisgICAgYWNyb255bV9leGNlcHRpb25zID0gJ3wn
LmpvaW4oWydjZnVybCcsICdjdXJsJywgJ0N1cmwnLCAnbnN1cmwnXSkKIAotICAgIHN0YXJ0X3Jl
ID0gcmUuY29tcGlsZSgnXiglcykofCQpJyAlIGFjcm9ueW1zLCByZS5JR05PUkVDQVNFKQotICAg
IHN0YXJ0X2V4cGVjdGVkX3JlID0gcmUuY29tcGlsZSgnXiglcykoW146XXwkKScgJSBhY3Jvbnlt
cy5sb3dlcigpKQotICAgICMgSWRlbnRpZmllcnMgdGhhdCBzdGFydCB3aXRoIGFuIGFjcm9ueW0g
bXVzdCBiZSBhbGwgbG93ZXJjYXNlLCBleGNlcHQgZm9yIGNsYXNzL25hbWVzcGFjZS9zdHJ1Y3Qg
bmFtZXMuCi0gICAgaWYgc3RhcnRfcmUuc2VhcmNoKGlkZW50aWZpZXIpIGFuZCBub3Qgc3RhcnRf
ZXhwZWN0ZWRfcmUuc2VhcmNoKGlkZW50aWZpZXIpOgotICAgICAgICBzdGFydF91cHBlcmNhc2Vf
cmUgPSByZS5jb21waWxlKCdeKCVzKScgJSBhY3JvbnltcykKLSAgICAgICAgIyBJZ25vcmUgY2xh
c3MvbmFtZXNwYWNlL3N0cnVjdCBuYW1lcyB0aGF0IHN0YXJ0IHdpdGggYWxsLXVwcGVyY2FzZSBh
Y3Jvbnltcy4KLSAgICAgICAgaWYgc3RhcnRfdXBwZXJjYXNlX3JlLnNlYXJjaChpZGVudGlmaWVy
KSBhbmQgXAotICAgICAgICAgICAgICAgIChpc19jbGFzc19vcl9uYW1lc3BhY2Vfb3Jfc3RydWN0
X25hbWUgb3IgaWRlbnRpZmllci5maW5kKCc6OicpICE9IC0xKToKLSAgICAgICAgICAgIHJldHVy
biBUcnVlCi0gICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAncmVhZGFiaWxpdHkvbmFtaW5nL2Fj
cm9ueW0nLCA1LAotICAgICAgICAgICAgICAnVGhlIGlkZW50aWZpZXIgbmFtZSAiJXMiIHN0YXJ0
cyB3aXRoIGEgYWNyb255bSB0aGF0IGlzIG5vdCBhbGwgbG93ZXJjYXNlLicgJSBpZGVudGlmaWVy
KQotICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBpZGVudGlmaWVyX3dvcmRzID0gX3NwbGl0X2lk
ZW50aWZpZXJfaW50b193b3JkcyhpZGVudGlmaWVyKQogCi0gICAgIyBGSVhNRTogSGFyZCB0byBj
aGVjayBtaWRkbGUgd29yZHMgd2l0aG91dCBrbm93aW5nIHRoYXQgdGhlIHdvcmQgdG8gdGhlIGxl
ZnQgZG9lc24ndCBlbmQgd2l0aCBhbiBhY3JvbnltLgorICAgIGlzX2NvbnN0cnVjdG9yID0gRmFs
c2UKKyAgICBpZiBpZGVudGlmaWVyX3dvcmRzLmNvdW50KCc6OicpID09IDE6CisgICAgICAgIG5h
bWVzID0gaWRlbnRpZmllci5zcGxpdCgnOjonKQorICAgICAgICBpZiBuYW1lc1swXSA9PSBuYW1l
c1sxXToKKyAgICAgICAgICAgIGlzX2NvbnN0cnVjdG9yID0gVHJ1ZQogCi0gICAgIyBJZGVudGlm
aWVycyB0aGF0IGVuZCB3aXRoIGFuIGFjcm9ueW0gbXVzdCBiZSBhbGwgdXBwZXJjYXNlLCBleGNl
cHQgZm9yIHZhcmlhYmxlcyBsaWtlICdtX3VybCcgYW5kICdDbGFzczo6dXJsKCknLgotICAgIGVu
ZF9yZSA9IHJlLmNvbXBpbGUoJ1teXzpdKCVzKSQnICUgYWNyb255bXMsIHJlLklHTk9SRUNBU0Up
Ci0gICAgZW5kX2V4cGVjdGVkX3JlID0gcmUuY29tcGlsZSgnW15fOl0oJXMpJCcgJSBhY3Jvbnlt
cykKLSAgICBpZiBlbmRfcmUuc2VhcmNoKGlkZW50aWZpZXIpIGFuZCBub3QgZW5kX2V4cGVjdGVk
X3JlLnNlYXJjaChpZGVudGlmaWVyKToKLSAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdyZWFk
YWJpbGl0eS9uYW1pbmcvYWNyb255bScsIDUsCi0gICAgICAgICAgICAgICdUaGUgaWRlbnRpZmll
ciBuYW1lICIlcyIgZW5kcyB3aXRoIGEgYWNyb255bSB0aGF0IGlzIG5vdCBhbGwgdXBwZXJjYXNl
LicgJSBpZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBjb250YWluc19hY3Jv
bnltX2xvd2VyY2FzZV9yZSA9IHJlLmNvbXBpbGUoJyglcyknICUgYWNyb255bXMubG93ZXIoKSkK
KyAgICBpc19hY3JvbnltX2FueV9jYXNlX3JlID0gcmUuY29tcGlsZSgnXiglcykkJyAlIGFjcm9u
eW1zLCByZS5JR05PUkVDQVNFKQorICAgIGlzX2Fjcm9ueW1fbG93ZXJjYXNlX3JlID0gcmUuY29t
cGlsZSgnXiglcykkJyAlIGFjcm9ueW1zLmxvd2VyKCkpCisgICAgaXNfYWNyb255bV91cHBlcmNh
c2VfcmUgPSByZS5jb21waWxlKCdeKCVzKSQnICUgYWNyb255bXMudXBwZXIoKSkKKyAgICBpc19h
Y3JvbnltX2V4Y2VwdGlvbl9hbnlfY2FzZV9yZSA9IHJlLmNvbXBpbGUoJ14oJXMpJCcgJSBhY3Jv
bnltX2V4Y2VwdGlvbnMpCisKKyAgICBzdGFydF9vZl92YXJpYWJsZSA9IFRydWUKKyAgICBmb3Ig
aSBpbiByYW5nZSgwLCBsZW4oaWRlbnRpZmllcl93b3JkcykpOgorICAgICAgICB3b3JkID0gaWRl
bnRpZmllcl93b3Jkc1tpXQorCisgICAgICAgIGlmIHdvcmQgPT0gJzo6JzoKKyAgICAgICAgICAg
IHN0YXJ0X29mX3ZhcmlhYmxlID0gVHJ1ZQorICAgICAgICAgICAgY29udGludWUKKworICAgICAg
ICBpZiBzdGFydF9vZl92YXJpYWJsZToKKyAgICAgICAgICAgIHN0YXJ0X29mX3ZhcmlhYmxlID0g
RmFsc2UKKyAgICAgICAgICAgICMgSWRlbnRpZmllcnMgdGhhdCBzdGFydCB3aXRoIGFuIGFjcm9u
eW0gbXVzdCBiZSBhbGwgbG93ZXJjYXNlLCBleGNlcHQgZm9yIGNsYXNzL25hbWVzcGFjZS9zdHJ1
Y3QgbmFtZXMuCisgICAgICAgICAgICBpZiBpc19hY3JvbnltX2FueV9jYXNlX3JlLnNlYXJjaCh3
b3JkKToKKyAgICAgICAgICAgICAgICBpZiBpc19hY3JvbnltX2xvd2VyY2FzZV9yZS5zZWFyY2go
d29yZCk6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgZWxp
ZiBpc19hY3JvbnltX3VwcGVyY2FzZV9yZS5zZWFyY2god29yZCkgYW5kIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIChpc19jbGFzc19vcl9uYW1lc3BhY2Vfb3Jfc3RydWN0X25hbWUgb3IgJzo6
JyBpbiBpZGVudGlmaWVyX3dvcmRzW2k6XSBvciBpc19jb25zdHJ1Y3Rvcik6CisgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICAgICAgZXJyb3IobGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9uYW1pbmcvYWNyb255bScsIDUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIgc3Rh
cnRzIHdpdGggYW4gYWNyb255bSB0aGF0IGlzIG5vdCBhbGwgbG93ZXJjYXNlLicgJSBpZGVudGlm
aWVyKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICMgSWRlbnRpZmllcnMgdGhhdCBjb250YWluIG9yIGVuZCB3aXRoIGFuIGFjcm9u
eW0gbXVzdCBiZSBhbGwgdXBwZXJjYXNlLgorICAgICAgICAgICAgaWYgaXNfYWNyb255bV9hbnlf
Y2FzZV9yZS5zZWFyY2god29yZCk6CisgICAgICAgICAgICAgICAgaWYgaXNfYWNyb255bV91cHBl
cmNhc2VfcmUuc2VhcmNoKHdvcmQpOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAg
ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVy
LCAncmVhZGFiaWxpdHkvbmFtaW5nL2Fjcm9ueW0nLCA1LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAnVGhlIGlkZW50aWZpZXIgbmFtZSAiJXMiIGNvbnRhaW5zIGFuIGFjcm9ueW0gdGhhdCBp
cyBub3QgYWxsIHVwcGVyY2FzZS4nICUgaWRlbnRpZmllcikKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisKKyAgICAgICAgaWYgY29udGFpbnNfYWNyb255bV9sb3dlcmNhc2VfcmUu
c2VhcmNoKHdvcmQpIGFuZCBub3QgaXNfYWNyb255bV9leGNlcHRpb25fYW55X2Nhc2VfcmUuc2Vh
cmNoKHdvcmQpOgorICAgICAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9u
YW1pbmcvYWNyb255bScsIDMsCisgICAgICAgICAgICAgICAgICAnVGhlIGlkZW50aWZpZXIgbmFt
ZSAiJXMiIF9tYXlfIGNvbnRhaW4gYW4gYWNyb255bSB0aGF0IGlzIG5vdCBhbGwgdXBwZXJjYXNl
LicgJSBpZGVudGlmaWVyKQorICAgICAgICAgICAgY29udGludWUKIAogICAgIHJldHVybiBUcnVl
CiAKQEAgLTM4NDEsNiArMzk2NCwxMSBAQCBkZWYgY2hlY2tfaWRlbnRpZmllcl9uYW1lX2luX2Rl
Y2xhcmF0aW9uKGZpbGVuYW1lLCBsaW5lX251bWJlciwgbGluZSwgZmlsZV9zdGF0ZQogICAgICAg
ICBpZGVudGlmaWVyID0gbWF0Y2hlZC5ncm91cCgnaWRlbnRpZmllcicpCiAgICAgICAgIGNoYXJh
Y3Rlcl9hZnRlcl9pZGVudGlmaWVyID0gbWF0Y2hlZC5ncm91cCgnY2hhcmFjdGVyX2FmdGVyX2lk
ZW50aWZpZXInKQogCisgICAgICAgICMgSXQncyBwb3NzaWJsZSBmb3IgdGhlIHJlZ3VsYXIgZXhw
cmVzc2lvbiB0byBtYXRjaCAnOicgaW4gbW9kZXJuIE9iamVjdGl2ZS1DIGZvciBsb29wcworICAg
ICAgICAjIG9yIE5TRGljdGlvbmFyeSBpbml0aWFsaXphdGlvbiBsaXN0cy4KKyAgICAgICAgaWYg
aWRlbnRpZmllciA9PSAnOic6CisgICAgICAgICAgICByZXR1cm4KKwogICAgICAgICAjIElmIHdl
IHJlbW92ZWQgYSBub24tZm9yLWNvbnRyb2wgc3RhdGVtZW50LCB0aGUgY2hhcmFjdGVyIGFmdGVy
CiAgICAgICAgICMgdGhlIGlkZW50aWZpZXIgc2hvdWxkIGJlICc9Jy4gV2l0aCB0aGlzIHJ1bGUs
IHdlIGNhbiBhdm9pZAogICAgICAgICAjIHdhcm5pbmcgZm9yIGNhc2VzIGxpa2UgImlmICh2YWwg
JiBJTlRfTUFYKSB7Ii4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy9jcHBfdW5pdHRlc3QucHkKaW5kZXggMTljZGU0OTM2MzYzNzY1ZTA5MjM5MzA0NzYx
OGNiYjY3YTAzNzRmNi4uYjAwNWNiZDE2ZjczNmQzNDlkZmVhNDEyMzhhOTM4MzUzZTcyZmRlMiAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5p
dHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBf
dW5pdHRlc3QucHkKQEAgLTQ1LDcgKzQ1LDcgQEAgaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHdlYmtp
dGNvcmVweSBpbXBvcnQgc3RyaW5nX3V0aWxzCiAKIGZyb20gd2Via2l0cHkuc3R5bGUuY2hlY2tl
cnMgaW1wb3J0IGNwcCBhcyBjcHBfc3R5bGUKLWZyb20gd2Via2l0cHkuc3R5bGUuY2hlY2tlcnMu
Y3BwIGltcG9ydCBDcHBDaGVja2VyCitmcm9tIHdlYmtpdHB5LnN0eWxlLmNoZWNrZXJzLmNwcCBp
bXBvcnQgQ3BwQ2hlY2tlciwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcwogZnJvbSB3ZWJr
aXRweS5zdHlsZS5maWx0ZXIgaW1wb3J0IEZpbHRlckNvbmZpZ3VyYXRpb24KIAogCkBAIC0yMDQz
LDcgKzIwNDMsNyBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAg
ICAgICAgICAnfVxuJywKICAgICAgICAgICAgICcnKQogICAgICAgICBzZWxmLmFzc2VydF9tdWx0
aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnYXV0byBGb286YmFyKCkgLT4gQmF6XG4nCisgICAg
ICAgICAgICAnYXV0byBGb286OmJhcigpIC0+IEJhelxuJwogICAgICAgICAgICAgJ3tcbicKICAg
ICAgICAgICAgICd9XG4nLAogICAgICAgICAgICAgJycpCkBAIC01OTQ5LDEyICs1OTQ5LDU1IEBA
IGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3tcbicKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicsICd0ZXN0LmNwcCcsIHBhcmFtZXRlcl9lcnJv
cl9ydWxlcykpCiAKKyAgICBkZWYgdGVzdF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoc2Vs
Zik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9f
d29yZHMoJycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnYSddLCBfc3BsaXRfaWRlbnRp
Zmllcl9pbnRvX3dvcmRzKCdhJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydBJ10sIF9z
cGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ0EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChbJ2EnLCAnQiddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdhQicpKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFsnQWInXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3Jkcygn
QWInKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsndXJsJ10sIF9zcGxpdF9pZGVudGlm
aWVyX2ludG9fd29yZHMoJ3VybCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVXJsJ10s
IF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VybCcpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsnVVJMJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VSTCcpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFsndXJsJywgJ1N0cmluZyddLCBfc3BsaXRfaWRlbnRpZmll
cl9pbnRvX3dvcmRzKCd1cmxTdHJpbmcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VS
TCcsICdTdHJpbmcnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMU3RyaW5nJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyd0ZXN0JywgJ1BhdGgnLCAnT3InLCAnVXJsJ10s
IF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ3Rlc3RQYXRoT3JVcmwnKSkKKworICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFsnVVJMJywgJzo6JywgJ2ludmFsaWRhdGUnXSwgX3NwbGl0X2lk
ZW50aWZpZXJfaW50b193b3JkcygnVVJMOjppbnZhbGlkYXRlJykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWydVUkwnLCAnOjonLCAnaW52YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmllcl9p
bnRvX3dvcmRzKCdVUkxfOjppbnZhbGlkYXRlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
WydVUkwnLCAnOjonLCAnaW52YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRz
KCdVUkxfOjpfaW52YWxpZGF0ZScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVVJMJywg
Jzo6JywgJ2ludmFsaWRhdGUnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMXzo6
aW52YWxpZGF0ZScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVVJMJywgJzgnLCAnOjon
LCAnaW52YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdVUkw4OjppbnZh
bGlkYXRlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydVUkwnLCAnOCcsICc6OicsICdp
bnZhbGlkYXRlJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VSTDhfOjpfaW52YWxp
ZGF0ZV8nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4JywgJzo6JywgJ2lu
dmFsaWRhdGUnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMOF86Ol9pbnZhbGlk
YXRlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydVUkwnLCAnOCcsICc6OicsICdpbnZh
bGlkYXRlJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VSTDhfOjpfaW52YWxpZGF0
ZV8nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4JywgJzo6JywgJ2ludmFs
aWRhdGUnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMOF86OmludmFsaWRhdGUn
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4JywgJzo6JywgJ2ludmFsaWRh
dGUnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMOF86Ol9pbnZhbGlkYXRlJykp
CisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ2xvYWR1cmwnXSwgX3NwbGl0X2lkZW50aWZp
ZXJfaW50b193b3JkcygnbG9hZHVybCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnbG9h
ZCcsICdVcmwnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnbG9hZFVybCcpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFsnbG9hZCcsICdVUkwnXSwgX3NwbGl0X2lkZW50aWZpZXJf
aW50b193b3JkcygnbG9hZFVSTCcpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyd1cmwn
XSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnX3VybCcpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFsndXJsJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ2dfdXJsJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyd1cmwnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50
b193b3JkcygnbV91cmwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3VybCddLCBfc3Bs
aXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdzX3VybCcpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFsnREMnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnbV9EQycpKQorCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydpJywgJzEnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193
b3JkcygnaTEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3VybCcsICc4J10sIF9zcGxp
dF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ3VybDgnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChbJ1VybCcsICc4J10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VybDgnKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4J10sIF9zcGxpdF9pZGVudGlmaWVyX2lu
dG9fd29yZHMoJ1VSTDgnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ25vbicsICdVVEYn
LCAnOCcsICdRdWVyeScsICdFbmNvZGluZyddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRz
KCdub25VVEY4UXVlcnlFbmNvZGluZycpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydp
cycsICdTb2Z0J10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ2lzU29mdDoxJykpCisK
ICAgICBkZWYgdGVzdF9pZGVudGlmaWVyX25hbWVzX3dpdGhfYWNyb255bXMoc2VsZik6CiAgICAg
ICAgIGlkZW50aWZpZXJfZXJyb3JfcnVsZXMgPSAoJy0nLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICcrcmVhZGFiaWxpdHkvbmFtaW5nL2Fjcm9ueW0nKQogCi0gICAgICAgICMg
U3RhcnQgb2YgcGFyYW1ldGVyIG5hbWUuCi0gICAgICAgIGVycm9yX3N0YXJ0ID0gJ1RoZSBpZGVu
dGlmaWVyIG5hbWUgIiVzIiBzdGFydHMgd2l0aCBhIGFjcm9ueW0gdGhhdCBpcyBub3QgYWxsIGxv
d2VyY2FzZS4nXAorICAgICAgICAjIFRlc3QgdGhhdCBhbiBpZGVudGlmaWVyIHN0YXJ0cyB3aXRo
IGFuIGFjcm9ueW0uCisgICAgICAgIGVycm9yX3N0YXJ0ID0gJ1RoZSBpZGVudGlmaWVyIG5hbWUg
IiVzIiBzdGFydHMgd2l0aCBhbiBhY3JvbnltIHRoYXQgaXMgbm90IGFsbCBsb3dlcmNhc2UuJ1wK
ICAgICAgICAgICAgICAgICAgICAgICAnICBbcmVhZGFiaWxpdHkvbmFtaW5nL2Fjcm9ueW1dIFs1
XScKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLApAQCAtNTk5MSw2ICs2MDM0LDggQEAg
Y2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCdVUkxQYXJzZXI6OlVSTFBhcnNlcihjb25zdCBT
dHJpbmcmIGlucHV0LCBjb25zdCBVUkwmIGJhc2UsIGNvbnN0IFVSTFRleHRFbmNvZGluZyogbm9u
VVRGOFF1ZXJ5RW5jb2RpbmcpJywgJ3Rlc3QuY3BwJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5wZXJmb3JtX2xpbnQoJ2Jvb2wgVVJMUGFyc2VyOjppbnRlcm5hbFZhbHVlc0NvbnNpc3Rl
bnQoY29uc3QgVVJMJiB1cmwpJywgJ3Rlc3QuY3BwJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyb3Jfc3RhcnQgJSAnVVJMOjpVUkxOb3RDb25z
dHJ1Y3RvcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ2Jv
b2wgVVJMOjpVUkxOb3RDb25zdHJ1Y3RvcigpJywgJ3Rlc3QuY3BwJywgaWRlbnRpZmllcl9lcnJv
cl9ydWxlcykpCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywKICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgnU3RyaW5nIG1fdXJsOycsICd0ZXN0LmNwcCcs
IGlkZW50aWZpZXJfZXJyb3JfcnVsZXMpKQpAQCAtNjAwMiwyNiArNjA0Nyw1MCBAQCBjbGFzcyBX
ZWJLaXRTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoZXJyb3Jfc3RhcnQgJSAnVXJsUGFyc2U6OlVybFBhcnNlJywKICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgndm9pZCBVcmxQYXJzZTo6VXJsUGFyc2UoKScsICd0
ZXN0LmNwcCcsIGlkZW50aWZpZXJfZXJyb3JfcnVsZXMpKQogCi0gICAgICAgICMgRklYTUU6IEhh
cmQgdG8gY2hlY2sgbWlkZGxlIHdvcmRzIHdpdGhvdXQga25vd2luZyB0aGF0IHRoZSB3b3JkIHRv
IHRoZSBsZWZ0IGRvZXNuJ3QgZW5kIHdpdGggYW4gYWNyb255bS4KLQotICAgICAgICBlcnJvcl9l
bmQgPSAnVGhlIGlkZW50aWZpZXIgbmFtZSAiJXMiIGVuZHMgd2l0aCBhIGFjcm9ueW0gdGhhdCBp
cyBub3QgYWxsIHVwcGVyY2FzZS4nXAotICAgICAgICAgICAgICAgICAgICAnICBbcmVhZGFiaWxp
dHkvbmFtaW5nL2Fjcm9ueW1dIFs1XScKKyAgICAgICAgIyBUZXN0IHRoYXQgaWRlbnRpZmllciBj
b250YWlucyBhbiBhY3JvbnltLgorICAgICAgICBlcnJvcl9jb250YWluID0gJ1RoZSBpZGVudGlm
aWVyIG5hbWUgIiVzIiBjb250YWlucyBhbiBhY3JvbnltIHRoYXQgaXMgbm90IGFsbCB1cHBlcmNh
c2UuJ1wKKyAgICAgICAgICAgICAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9uYW1pbmcvYWNy
b255bV0gWzVdJwogCi0gICAgICAgICMgRW5kIG9mIHBhcmFtZXRlciBuYW1lLgotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGVycm9yX2VuZCAlICdsb2FkdXJsJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgndm9pZCBsb2FkKFVSTCBsb2FkdXJsKTsnLCAndGVz
dC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChlcnJvcl9lbmQgJSAnbG9hZFVybCcsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyb3Jf
Y29udGFpbiAlICdsb2FkVXJsJywKICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZv
cm1fbGludCgndm9pZCBsb2FkKFVSTCBsb2FkVXJsKTsnLCAndGVzdC5jcHAnLCBpZGVudGlmaWVy
X2Vycm9yX3J1bGVzKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgndm9pZCBsb2FkKFVSTCBsb2FkVVJMKTsn
LCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkKIAogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCcnLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50
KCd2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6aW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBT
dHJpbmcmIG5ld1VSTCknLCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvcl9lbmQgJSAndGVzdFBhdGhPclVybCcsCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyb3JfY29udGFpbiAlICd0ZXN0UGF0aE9yVXJsJywKICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgnc3RhdGljIHZvaWQgY2hh
bmdlV2luZG93U2NhbGVJZk5lZWRlZChjb25zdCBjaGFyKiB0ZXN0UGF0aE9yVXJsKScsICd0ZXN0
LmNwcCcsIGlkZW50aWZpZXJfZXJyb3JfcnVsZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGVycm9yX2VuZCAlICdsb2NhbFBhdGhPclVybCcsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZXJyb3JfY29udGFpbiAlICdsb2NhbFBhdGhPclVybCcsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5wZXJmb3JtX2xpbnQoJ2F1dG8gbG9jYWxQYXRoT3JVcmwgPSBTdHJpbmcodGVzdFBh
dGhPclVSTCk7JywgJ3Rlc3QuY3BwJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykpCiAKKyAgICAg
ICAgIyBUZXN0IHRoYXQgYW4gaWRlbnRpZmllciBfbWlnaHRfIGNvbnRhaW4gYW4gYWNyb255bS4K
KyAgICAgICAgZXJyb3JfbWF5X2NvbnRhaW4gPSAnVGhlIGlkZW50aWZpZXIgbmFtZSAiJXMiIF9t
YXlfIGNvbnRhaW4gYW4gYWNyb255bSB0aGF0IGlzIG5vdCBhbGwgdXBwZXJjYXNlLidcCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L25hbWluZy9hY3JvbnltXSBb
M10nCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyb3JfbWF5X2NvbnRhaW4gJSAnbG9hZHVy
bCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ3ZvaWQgbG9h
ZChVUkwgbG9hZHVybCk7JywgJ3Rlc3QuY3BwJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyb3JfbWF5X2NvbnRhaW4gJSAnY2FuTG9hZHVybCcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ3ZvaWQgbG9hZChV
UkwgdXJsLCBib29sIGNhbkxvYWR1cmwpOycsICd0ZXN0LmNwcCcsIGlkZW50aWZpZXJfZXJyb3Jf
cnVsZXMpKQorCisgICAgICAgICMgVGVzdCBzcGVjaWFsIGV4Y2VwdGlvbnMuCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJycsIHNlbGYucGVyZm9ybV9saW50KAorICAgICAgICAgICAgJ3ZvaWQg
Y3VybERpZFNlbmREYXRhKFdlYkNvcmU6OkN1cmxSZXF1ZXN0JiwgdW5zaWduZWQgbG9uZyBsb25n
LCB1bnNpZ25lZCBsb25nIGxvbmcpIG92ZXJyaWRlOycsCisgICAgICAgICAgICAnTmV0d29ya0Rh
dGFUYXNrQ3VybC5oJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJycsIHNlbGYucGVyZm9ybV9saW50KAorICAgICAgICAgICAgJ3ZvaWQgTmV0d29y
a0RhdGFUYXNrQ3VybDo6Y2FuY2VsKCknLAorICAgICAgICAgICAgJ05ldHdvcmtEYXRhVGFza0N1
cmwuY3BwJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJycsIHNlbGYucGVyZm9ybV9saW50KAorICAgICAgICAgICAgJ1N0cmluZyBtX25zdXJsQ2Fj
aGVEaXJlY3Rvcnk7JywKKyAgICAgICAgICAgICdQbHVnaW5Qcm9jZXNzLmgnLCBpZGVudGlmaWVy
X2Vycm9yX3J1bGVzKSkKKworICAgICAgICAjIFNvbWV0aW1lcyBjaGVja19pZGVudGlmaWVyX25h
bWVfaW5fZGVjbGFyYXRpb24oKSBnZXRzIGNvbmZ1c2VkCisgICAgICAgICMgYW5kIHRoaW5rcyAn
OicgaXMgYW4gaWRlbnRpZmllci4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgc2VsZi5w
ZXJmb3JtX2xpbnQoCisgICAgICAgICAgICAnTlNGaWxlUG9zaXhQZXJtaXNzaW9ucyA6IFtOU051
bWJlciBudW1iZXJXaXRoSW50ZWdlcjooV0VCX1VSRUFEIHwgV0VCX1VXUklURSldLCcsCisgICAg
ICAgICAgICAnUXVpY2tMb29rLm1tJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJycsIHNlbGYucGVyZm9ybV9saW50KAorICAgICAgICAgICAgJ2Zv
ciAoQ0FMYXllciAqY3VyckxheWVyIDogW2xheWVyIHN1YmxheWVyc10pIHsnLAorICAgICAgICAg
ICAgJ1JlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YS5tbScsIGlkZW50aWZp
ZXJfZXJyb3JfcnVsZXMpKQorCiAgICAgZGVmIHRlc3RfY29tbWVudHMoc2VsZik6CiAgICAgICAg
ICMgQSBjb21tZW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lIGlzIG9rLgogICAgICAgICBz
ZWxmLmFzc2VydF9saW50KCcvLyBjb21tZW50JywgJycpCg==
</data>
<flag name="review"
          id="421166"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406100</attachid>
            <date>2020-08-06 12:32:06 -0700</date>
            <delta_ts>2020-08-06 13:06:24 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215026-20200806123308.patch</filename>
            <type>text/plain</type>
            <size>19590</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTU2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmYyMWEzZTcyZDNhNjNhZTVkNDQ3OTVjZjUwZDJmNWUx
ZDhkNjViZi4uYjJiMDE4NGFhMGI4NzMyMDk3NmZlZWM0NmU4YWE3NGVjNTk0Mzk1YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDIwLTA4LTA2ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAg
ICAgICAgY2hlY2std2Via2l0LXN0eWxlOiBiZXR0ZXIgYWxnb3JpdGhtIHRvIGNoZWNrIGZvciBh
Y3JvbnltIGNhcGl0YWxpemF0aW9uIGluIGFuIGlkZW50aWZpZXIKKyAgICAgICAgPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzIxNTAyNj4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5OgorICAg
ICAgICAoX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3Jkcyk6IEFkZC4KKyAgICAgICAgLSBUaGlz
IG1ldGhvZCBzcGxpdHMgYSBpZGVudGlmaWVyIGludG8gaW5kaXZpZHVhbCB3b3Jkcy4KKyAgICAg
ICAgKF9jaGVja19pZGVudGlmaWVyX25hbWVfZm9yX2Fjcm9ueW1zKToKKyAgICAgICAgLSBVcGRh
dGUgdG8gdXNlIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoKSwgd2hpY2ggbWFrZXMgaXQK
KyAgICAgICAgICBwb3NzaWJsZSB0byBjaGVjayBmb3IgaW1wcm9wZXJseSBjYXBpdGFsaXplZCBh
Y3JvbnltcyBpbiB0aGUKKyAgICAgICAgICBtaWRkbGUgb2YgaWRlbnRpZmllcnMuCisgICAgICAg
IC0gQWxzbyBhZGQgc3VwcG9ydCBmb3IgZXhjZXB0aW9ucywgd2hpY2ggYXJlIHZhbGlkIHdvcmRz
IHRoYXQKKyAgICAgICAgICBpbmNsdWRlIGFjcm9ueW1zIChsaWtlICJDdXJsIikuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHk6CisgICAg
ICAgIChDcHBTdHlsZVRlc3QpOgorICAgICAgICAtIEZpeCBhIHR5cG8gaW4gYSBtZXRob2QgbmFt
ZSBpbiBhbm90aGVyIHRlc3QuCisgICAgICAgIChXZWJLaXRTdHlsZVRlc3QudGVzdF9zcGxpdF9p
ZGVudGlmaWVyX2ludG9fd29yZHMpOiBBZGQuCisgICAgICAgIC0gQWRkIHRlc3RzIGZvciBfc3Bs
aXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCkuCisgICAgICAgIChXZWJLaXRTdHlsZVRlc3QudGVz
dF9pZGVudGlmaWVyX25hbWVzX3dpdGhfYWNyb255bXMpOgorICAgICAgICAtIEFkZCB0ZXN0cyBm
b3IgY2FzZXMgdGhhdCB3ZXJlbid0IHBvc3NpYmxlIHdpdGggdGhlIHByZXZpb3VzCisgICAgICAg
ICAgYWxnb3JpdGhtLgorCiAyMDIwLTA3LTI5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBs
ZS5jb20+CiAKICAgICAgICAgV1RGOjptYWtlU3RyaW5nKCkgc2hvdWxkIGhhbmRsZSBlbnVtIHZh
bHVlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9j
cHAucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQppbmRl
eCAwMDZmMGUzMDI2NTJjZGVkZjZmYjYzNjg3NGFlZWIwNDYxMTkyNjc2Li40MzYzMjNmMGFlY2Uw
ZTcwZmMyMzA2ZTNhYmIyMTU2YTQxNjc1ODJmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL2NwcC5weQpAQCAtMTc5Niw2ICsxNzk2LDEwMSBAQCBkZWYgX2NoZWNr
X3BhcmFtZXRlcl9uYW1lX2FnYWluc3RfdGV4dChwYXJhbWV0ZXIsIHRleHQsIGVycm9yKToKICAg
ICByZXR1cm4gVHJ1ZQogCiAKK2RlZiBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKGlkZW50
aWZpZXIpOgorICAgIHdvcmRzID0gW10KKyAgICBpZiBub3QgaWRlbnRpZmllcjoKKyAgICAgICAg
cmV0dXJuIHdvcmRzCisKKyAgICAjIFJlbW92ZSBwcmVmaXhlcyB0aGF0IGFyZW4ndCBwYXJ0IG9m
IHRoZSBpZGVudGlmaWVyIG5hbWUuCisgICAgaWRlbnRpZmllciA9IHJlLnN1YihyJ15bZ21zXT9f
JywgJycsIGlkZW50aWZpZXIpCisgICAgIyBSZW1vdmUgYml0ZmllbGQgbGVuZ3Rocy4KKyAgICBp
ZGVudGlmaWVyID0gcmUuc3ViKHInOlswLTldKyQnLCAnJywgaWRlbnRpZmllcikKKworICAgIGlk
ZW50aWZpZXJfbGVuZ3RoID0gbGVuKGlkZW50aWZpZXIpCisKKyAgICBtYXRjaF91cHBlcl9yZSA9
IHJlLmNvbXBpbGUocideW0EtWl0rJykKKyAgICBtYXRjaF91cHBlcl9sb3dlcl9yZSA9IHJlLmNv
bXBpbGUocideW0EtWl1bYS16XSsnKQorICAgIG1hdGNoX2xvd2VyX3JlID0gcmUuY29tcGlsZShy
J15bYS16XSsnKQorCisgICAgbWF0Y2hfbG93ZXIgPSBtYXRjaF9sb3dlcl9yZS5zZWFyY2goaWRl
bnRpZmllcikKKyAgICBtYXRjaF91cHBlcl9sb3dlciA9IG1hdGNoX3VwcGVyX2xvd2VyX3JlLnNl
YXJjaChpZGVudGlmaWVyKQorICAgIG1hdGNoX3VwcGVyID0gbWF0Y2hfdXBwZXJfcmUuc2VhcmNo
KGlkZW50aWZpZXIpCisgICAgaWYgbWF0Y2hfbG93ZXI6CisgICAgICAgIHdvcmQgPSBtYXRjaF9s
b3dlci5ncm91cCgwKQorICAgICAgICB3b3Jkcy5hcHBlbmQod29yZCkKKyAgICAgICAgaWYgbGVu
KHdvcmQpID09IGlkZW50aWZpZXJfbGVuZ3RoOgorICAgICAgICAgICAgcmV0dXJuIHdvcmRzCisg
ICAgICAgIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyW2xlbih3b3JkKTpdCisgICAgZWxpZiBtYXRj
aF91cHBlcl9sb3dlcjoKKyAgICAgICAgd29yZCA9IG1hdGNoX3VwcGVyX2xvd2VyLmdyb3VwKDAp
CisgICAgICAgIHdvcmRzLmFwcGVuZCh3b3JkKQorICAgICAgICBpZiBsZW4od29yZCkgPT0gaWRl
bnRpZmllcl9sZW5ndGg6CisgICAgICAgICAgICByZXR1cm4gd29yZHMKKyAgICAgICAgaWRlbnRp
ZmllciA9IGlkZW50aWZpZXJbbGVuKHdvcmQpOl0KKyAgICBlbGlmIG1hdGNoX3VwcGVyOgorICAg
ICAgICB3b3JkID0gbWF0Y2hfdXBwZXIuZ3JvdXAoMCkKKyAgICAgICAgaWYgbGVuKHdvcmQpID09
IGlkZW50aWZpZXJfbGVuZ3RoOgorICAgICAgICAgICAgd29yZHMuYXBwZW5kKHdvcmQpCisgICAg
ICAgICAgICByZXR1cm4gd29yZHMKKyAgICAgICAgaWYgaWRlbnRpZmllcltsZW4od29yZCldLmlz
bG93ZXIoKToKKyAgICAgICAgICAgIHdvcmQgPSB3b3JkWzotMV0KKyAgICAgICAgd29yZHMuYXBw
ZW5kKHdvcmQpCisgICAgICAgIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyW2xlbih3b3JkKTpdCisK
KyAgICBtYXRjaF9udW1iZXJfcmUgPSByZS5jb21waWxlKHInXlswLTldKycpCisgICAgd2hpbGUg
aWRlbnRpZmllcjoKKyAgICAgICAgaWRlbnRpZmllcl9sZW5ndGggPSBsZW4oaWRlbnRpZmllcikK
KyAgICAgICAgaWYgaWRlbnRpZmllci5zdGFydHN3aXRoKCdfJyk6CisgICAgICAgICAgICBpZiBs
ZW4oaWRlbnRpZmllcikgPT0gMToKKyAgICAgICAgICAgICAgICByZXR1cm4gd29yZHMKKyAgICAg
ICAgICAgIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyWzE6XQorICAgICAgICAgICAgY29udGludWUK
KyAgICAgICAgaWYgaWRlbnRpZmllci5zdGFydHN3aXRoKCc6OicpOgorICAgICAgICAgICAgd29y
ZHMuYXBwZW5kKCc6OicpCisgICAgICAgICAgICBpZiBsZW4oaWRlbnRpZmllcikgPT0gMjoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gd29yZHMKKyAgICAgICAgICAgIGlkZW50aWZpZXIgPSBpZGVu
dGlmaWVyWzI6XQorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgbWF0Y2hfdXBwZXJfbG93
ZXIgPSBtYXRjaF91cHBlcl9sb3dlcl9yZS5zZWFyY2goaWRlbnRpZmllcikKKyAgICAgICAgaWYg
bWF0Y2hfdXBwZXJfbG93ZXI6CisgICAgICAgICAgICB3b3JkID0gbWF0Y2hfdXBwZXJfbG93ZXIu
Z3JvdXAoMCkKKyAgICAgICAgICAgIHdvcmRzLmFwcGVuZCh3b3JkKQorICAgICAgICAgICAgaWYg
bGVuKHdvcmQpID09IGlkZW50aWZpZXJfbGVuZ3RoOgorICAgICAgICAgICAgICAgIHJldHVybiB3
b3JkcworICAgICAgICAgICAgaWRlbnRpZmllciA9IGlkZW50aWZpZXJbbGVuKHdvcmQpOl0KKyAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIG1hdGNoX3VwcGVyID0gbWF0Y2hfdXBwZXJfcmUu
c2VhcmNoKGlkZW50aWZpZXIpCisgICAgICAgIGlmIG1hdGNoX3VwcGVyOgorICAgICAgICAgICAg
d29yZCA9IG1hdGNoX3VwcGVyLmdyb3VwKDApCisgICAgICAgICAgICBpZiBsZW4od29yZCkgPT0g
bGVuKGlkZW50aWZpZXIpOgorICAgICAgICAgICAgICAgIHdvcmRzLmFwcGVuZCh3b3JkKQorICAg
ICAgICAgICAgICAgIHJldHVybiB3b3JkcworICAgICAgICAgICAgaWYgaWRlbnRpZmllcltsZW4o
d29yZCldLmlzbG93ZXIoKToKKyAgICAgICAgICAgICAgICB3b3JkID0gd29yZFs6LTFdCisgICAg
ICAgICAgICB3b3Jkcy5hcHBlbmQod29yZCkKKyAgICAgICAgICAgIGlkZW50aWZpZXIgPSBpZGVu
dGlmaWVyW2xlbih3b3JkKTpdCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBtYXRjaF9u
dW1iZXIgPSBtYXRjaF9udW1iZXJfcmUuc2VhcmNoKGlkZW50aWZpZXIpCisgICAgICAgIGlmIG1h
dGNoX251bWJlcjoKKyAgICAgICAgICAgIHdvcmQgPSBtYXRjaF9udW1iZXIuZ3JvdXAoMCkKKyAg
ICAgICAgICAgIHdvcmRzLmFwcGVuZCh3b3JkKQorICAgICAgICAgICAgaWYgbGVuKHdvcmQpID09
IGlkZW50aWZpZXJfbGVuZ3RoOgorICAgICAgICAgICAgICAgIHJldHVybiB3b3JkcworICAgICAg
ICAgICAgaWRlbnRpZmllciA9IGlkZW50aWZpZXJbbGVuKHdvcmQpOl0KKyAgICAgICAgICAgIGNv
bnRpbnVlCisgICAgICAgIG1hdGNoX2xvd2VyID0gbWF0Y2hfbG93ZXJfcmUuc2VhcmNoKGlkZW50
aWZpZXIpCisgICAgICAgIGlmIG1hdGNoX2xvd2VyOgorICAgICAgICAgICAgd29yZCA9IG1hdGNo
X2xvd2VyLmdyb3VwKDApCisgICAgICAgICAgICB3b3Jkcy5hcHBlbmQod29yZCkKKyAgICAgICAg
ICAgIGlmIGxlbih3b3JkKSA9PSBpZGVudGlmaWVyX2xlbmd0aDoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gd29yZHMKKyAgICAgICAgICAgIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyW2xlbih3b3Jk
KTpdCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBhc3NlcnQgRmFsc2UsICdDb3VsZCBu
b3QgbWF0Y2ggIiVzIicgJSBpZGVudGlmaWVyCisKKyAgICByZXR1cm4gd29yZHMKKworCiBkZWYg
X2NoZWNrX2lkZW50aWZpZXJfbmFtZV9mb3JfYWNyb255bXMoaWRlbnRpZmllciwgbGluZV9udW1i
ZXIsIGlzX2NsYXNzX29yX25hbWVzcGFjZV9vcl9zdHJ1Y3RfbmFtZSwgZXJyb3IpOgogICAgICIi
IkNoZWNrcyB0byBzZWUgaWYgdGhlIGlkZW50aWZpZXIgbmFtZSBjb250YWlucyBhbiBhY3Jvbnlt
IHdpdGggaW1wcm9wZXIgY2FzZS4KIApAQCAtMTgwMywyOSArMTg5OCw1NyBAQCBkZWYgX2NoZWNr
X2lkZW50aWZpZXJfbmFtZV9mb3JfYWNyb255bXMoaWRlbnRpZmllciwgbGluZV9udW1iZXIsIGlz
X2NsYXNzX29yX25hbQogICAgIG1pZGRsZSBvciBhdCB0aGUgZW5kIG9mIGFuIGlkZW50aWZpZXIg
bmFtZSwgYnV0ICJVcmwiIGlzIG5ldmVyIG9rYXkuCiAgICAgIiIiCiAgICAgYWNyb255bXMgPSAn
fCcuam9pbihbJ01JTUUnLCAnVVJMJ10pCisgICAgYWNyb255bV9leGNlcHRpb25zID0gJ3wnLmpv
aW4oWydjZnVybCcsICdjdXJsJywgJ0N1cmwnLCAnbnN1cmwnLCAndXJscyddKQogCi0gICAgc3Rh
cnRfcmUgPSByZS5jb21waWxlKCdeKCVzKSh8JCknICUgYWNyb255bXMsIHJlLklHTk9SRUNBU0Up
Ci0gICAgc3RhcnRfZXhwZWN0ZWRfcmUgPSByZS5jb21waWxlKCdeKCVzKShbXjpdfCQpJyAlIGFj
cm9ueW1zLmxvd2VyKCkpCi0gICAgIyBJZGVudGlmaWVycyB0aGF0IHN0YXJ0IHdpdGggYW4gYWNy
b255bSBtdXN0IGJlIGFsbCBsb3dlcmNhc2UsIGV4Y2VwdCBmb3IgY2xhc3MvbmFtZXNwYWNlL3N0
cnVjdCBuYW1lcy4KLSAgICBpZiBzdGFydF9yZS5zZWFyY2goaWRlbnRpZmllcikgYW5kIG5vdCBz
dGFydF9leHBlY3RlZF9yZS5zZWFyY2goaWRlbnRpZmllcik6Ci0gICAgICAgIHN0YXJ0X3VwcGVy
Y2FzZV9yZSA9IHJlLmNvbXBpbGUoJ14oJXMpJyAlIGFjcm9ueW1zKQotICAgICAgICAjIElnbm9y
ZSBjbGFzcy9uYW1lc3BhY2Uvc3RydWN0IG5hbWVzIHRoYXQgc3RhcnQgd2l0aCBhbGwtdXBwZXJj
YXNlIGFjcm9ueW1zLgotICAgICAgICBpZiBzdGFydF91cHBlcmNhc2VfcmUuc2VhcmNoKGlkZW50
aWZpZXIpIGFuZCBcCi0gICAgICAgICAgICAgICAgKGlzX2NsYXNzX29yX25hbWVzcGFjZV9vcl9z
dHJ1Y3RfbmFtZSBvciBpZGVudGlmaWVyLmZpbmQoJzo6JykgIT0gLTEpOgotICAgICAgICAgICAg
cmV0dXJuIFRydWUKLSAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9uYW1p
bmcvYWNyb255bScsIDUsCi0gICAgICAgICAgICAgICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIg
c3RhcnRzIHdpdGggYSBhY3JvbnltIHRoYXQgaXMgbm90IGFsbCBsb3dlcmNhc2UuJyAlIGlkZW50
aWZpZXIpCi0gICAgICAgIHJldHVybiBGYWxzZQorICAgIGlkZW50aWZpZXJfd29yZHMgPSBfc3Bs
aXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKGlkZW50aWZpZXIpCiAKLSAgICAjIEZJWE1FOiBIYXJk
IHRvIGNoZWNrIG1pZGRsZSB3b3JkcyB3aXRob3V0IGtub3dpbmcgdGhhdCB0aGUgd29yZCB0byB0
aGUgbGVmdCBkb2Vzbid0IGVuZCB3aXRoIGFuIGFjcm9ueW0uCisgICAgaXNfY29uc3RydWN0b3Ig
PSBGYWxzZQorICAgIGlmIGlkZW50aWZpZXJfd29yZHMuY291bnQoJzo6JykgPT0gMToKKyAgICAg
ICAgbmFtZXMgPSBpZGVudGlmaWVyLnNwbGl0KCc6OicpCisgICAgICAgIGlmIG5hbWVzWzBdID09
IG5hbWVzWzFdOgorICAgICAgICAgICAgaXNfY29uc3RydWN0b3IgPSBUcnVlCiAKLSAgICAjIElk
ZW50aWZpZXJzIHRoYXQgZW5kIHdpdGggYW4gYWNyb255bSBtdXN0IGJlIGFsbCB1cHBlcmNhc2Us
IGV4Y2VwdCBmb3IgdmFyaWFibGVzIGxpa2UgJ21fdXJsJyBhbmQgJ0NsYXNzOjp1cmwoKScuCi0g
ICAgZW5kX3JlID0gcmUuY29tcGlsZSgnW15fOl0oJXMpJCcgJSBhY3JvbnltcywgcmUuSUdOT1JF
Q0FTRSkKLSAgICBlbmRfZXhwZWN0ZWRfcmUgPSByZS5jb21waWxlKCdbXl86XSglcykkJyAlIGFj
cm9ueW1zKQotICAgIGlmIGVuZF9yZS5zZWFyY2goaWRlbnRpZmllcikgYW5kIG5vdCBlbmRfZXhw
ZWN0ZWRfcmUuc2VhcmNoKGlkZW50aWZpZXIpOgotICAgICAgICBlcnJvcihsaW5lX251bWJlciwg
J3JlYWRhYmlsaXR5L25hbWluZy9hY3JvbnltJywgNSwKLSAgICAgICAgICAgICAgJ1RoZSBpZGVu
dGlmaWVyIG5hbWUgIiVzIiBlbmRzIHdpdGggYSBhY3JvbnltIHRoYXQgaXMgbm90IGFsbCB1cHBl
cmNhc2UuJyAlIGlkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBGYWxzZQorICAgIGNvbnRhaW5z
X2Fjcm9ueW1fbG93ZXJjYXNlX3JlID0gcmUuY29tcGlsZSgnKCVzKScgJSBhY3Jvbnltcy5sb3dl
cigpKQorICAgIGlzX2Fjcm9ueW1fYW55X2Nhc2VfcmUgPSByZS5jb21waWxlKCdeKCVzKSQnICUg
YWNyb255bXMsIHJlLklHTk9SRUNBU0UpCisgICAgaXNfYWNyb255bV9sb3dlcmNhc2VfcmUgPSBy
ZS5jb21waWxlKCdeKCVzKSQnICUgYWNyb255bXMubG93ZXIoKSkKKyAgICBpc19hY3JvbnltX3Vw
cGVyY2FzZV9yZSA9IHJlLmNvbXBpbGUoJ14oJXMpJCcgJSBhY3Jvbnltcy51cHBlcigpKQorICAg
IGlzX2Fjcm9ueW1fZXhjZXB0aW9uX2FueV9jYXNlX3JlID0gcmUuY29tcGlsZSgnXiglcykkJyAl
IGFjcm9ueW1fZXhjZXB0aW9ucykKKworICAgIHN0YXJ0X29mX3ZhcmlhYmxlID0gVHJ1ZQorICAg
IGZvciBpIGluIHJhbmdlKDAsIGxlbihpZGVudGlmaWVyX3dvcmRzKSk6CisgICAgICAgIHdvcmQg
PSBpZGVudGlmaWVyX3dvcmRzW2ldCisKKyAgICAgICAgaWYgd29yZCA9PSAnOjonOgorICAgICAg
ICAgICAgc3RhcnRfb2ZfdmFyaWFibGUgPSBUcnVlCisgICAgICAgICAgICBjb250aW51ZQorCisg
ICAgICAgIGlmIHN0YXJ0X29mX3ZhcmlhYmxlOgorICAgICAgICAgICAgc3RhcnRfb2ZfdmFyaWFi
bGUgPSBGYWxzZQorICAgICAgICAgICAgIyBJZGVudGlmaWVycyB0aGF0IHN0YXJ0IHdpdGggYW4g
YWNyb255bSBtdXN0IGJlIGFsbCBsb3dlcmNhc2UsIGV4Y2VwdCBmb3IgY2xhc3MvbmFtZXNwYWNl
L3N0cnVjdCBuYW1lcy4KKyAgICAgICAgICAgIGlmIGlzX2Fjcm9ueW1fYW55X2Nhc2VfcmUuc2Vh
cmNoKHdvcmQpOgorICAgICAgICAgICAgICAgIGlmIGlzX2Fjcm9ueW1fbG93ZXJjYXNlX3JlLnNl
YXJjaCh3b3JkKToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAg
ICBlbGlmIGlzX2Fjcm9ueW1fdXBwZXJjYXNlX3JlLnNlYXJjaCh3b3JkKSBhbmQgXAorICAgICAg
ICAgICAgICAgICAgICAgICAgKGlzX2NsYXNzX29yX25hbWVzcGFjZV9vcl9zdHJ1Y3RfbmFtZSBv
ciAnOjonIGluIGlkZW50aWZpZXJfd29yZHNbaTpdIG9yIGlzX2NvbnN0cnVjdG9yKToKKyAgICAg
ICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3JlYWRhYmlsaXR5L25hbWluZy9hY3Jvbnlt
JywgNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZSBpZGVudGlmaWVyIG5hbWUgIiVz
IiBzdGFydHMgd2l0aCBhbiBhY3JvbnltIHRoYXQgaXMgbm90IGFsbCBsb3dlcmNhc2UuJyAlIGlk
ZW50aWZpZXIpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgIyBJZGVudGlmaWVycyB0aGF0IGNvbnRhaW4gb3IgZW5kIHdpdGggYW4g
YWNyb255bSBtdXN0IGJlIGFsbCB1cHBlcmNhc2UuCisgICAgICAgICAgICBpZiBpc19hY3Jvbnlt
X2FueV9jYXNlX3JlLnNlYXJjaCh3b3JkKToKKyAgICAgICAgICAgICAgICBpZiBpc19hY3Jvbnlt
X3VwcGVyY2FzZV9yZS5zZWFyY2god29yZCk6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IobGluZV9u
dW1iZXIsICdyZWFkYWJpbGl0eS9uYW1pbmcvYWNyb255bScsIDUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIgY29udGFpbnMgYW4gYWNyb255bSB0
aGF0IGlzIG5vdCBhbGwgdXBwZXJjYXNlLicgJSBpZGVudGlmaWVyKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBpZiBjb250YWluc19hY3JvbnltX2xvd2VyY2Fz
ZV9yZS5zZWFyY2god29yZCkgYW5kIG5vdCBpc19hY3JvbnltX2V4Y2VwdGlvbl9hbnlfY2FzZV9y
ZS5zZWFyY2god29yZCk6CisgICAgICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3JlYWRhYmls
aXR5L25hbWluZy9hY3JvbnltJywgMywKKyAgICAgICAgICAgICAgICAgICdUaGUgaWRlbnRpZmll
ciBuYW1lICIlcyIgX21heV8gY29udGFpbiBhbiBhY3JvbnltIHRoYXQgaXMgbm90IGFsbCB1cHBl
cmNhc2UuJyAlIGlkZW50aWZpZXIpCisgICAgICAgICAgICBjb250aW51ZQogCiAgICAgcmV0dXJu
IFRydWUKIApAQCAtMzg0MSw2ICszOTY0LDExIEBAIGRlZiBjaGVja19pZGVudGlmaWVyX25hbWVf
aW5fZGVjbGFyYXRpb24oZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCBsaW5lLCBmaWxlX3N0YXRlCiAg
ICAgICAgIGlkZW50aWZpZXIgPSBtYXRjaGVkLmdyb3VwKCdpZGVudGlmaWVyJykKICAgICAgICAg
Y2hhcmFjdGVyX2FmdGVyX2lkZW50aWZpZXIgPSBtYXRjaGVkLmdyb3VwKCdjaGFyYWN0ZXJfYWZ0
ZXJfaWRlbnRpZmllcicpCiAKKyAgICAgICAgIyBJdCdzIHBvc3NpYmxlIGZvciB0aGUgcmVndWxh
ciBleHByZXNzaW9uIHRvIG1hdGNoICc6JyBpbiBtb2Rlcm4gT2JqZWN0aXZlLUMgZm9yIGxvb3Bz
CisgICAgICAgICMgb3IgTlNEaWN0aW9uYXJ5IGluaXRpYWxpemF0aW9uIGxpc3RzLgorICAgICAg
ICBpZiBpZGVudGlmaWVyID09ICc6JzoKKyAgICAgICAgICAgIHJldHVybgorCiAgICAgICAgICMg
SWYgd2UgcmVtb3ZlZCBhIG5vbi1mb3ItY29udHJvbCBzdGF0ZW1lbnQsIHRoZSBjaGFyYWN0ZXIg
YWZ0ZXIKICAgICAgICAgIyB0aGUgaWRlbnRpZmllciBzaG91bGQgYmUgJz0nLiBXaXRoIHRoaXMg
cnVsZSwgd2UgY2FuIGF2b2lkCiAgICAgICAgICMgd2FybmluZyBmb3IgY2FzZXMgbGlrZSAiaWYg
KHZhbCAmIElOVF9NQVgpIHsiLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQppbmRleCAxOWNkZTQ5MzYzNjM3NjVlMDkyMzkz
MDQ3NjE4Y2JiNjdhMDM3NGY2Li5iMDA1Y2JkMTZmNzM2ZDM0OWRmZWE0MTIzOGE5MzgzNTNlNzJm
ZGUyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2Nw
cF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJz
L2NwcF91bml0dGVzdC5weQpAQCAtNDUsNyArNDUsNyBAQCBpbXBvcnQgdW5pdHRlc3QKIGZyb20g
d2Via2l0Y29yZXB5IGltcG9ydCBzdHJpbmdfdXRpbHMKIAogZnJvbSB3ZWJraXRweS5zdHlsZS5j
aGVja2VycyBpbXBvcnQgY3BwIGFzIGNwcF9zdHlsZQotZnJvbSB3ZWJraXRweS5zdHlsZS5jaGVj
a2Vycy5jcHAgaW1wb3J0IENwcENoZWNrZXIKK2Zyb20gd2Via2l0cHkuc3R5bGUuY2hlY2tlcnMu
Y3BwIGltcG9ydCBDcHBDaGVja2VyLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzCiBmcm9t
IHdlYmtpdHB5LnN0eWxlLmZpbHRlciBpbXBvcnQgRmlsdGVyQ29uZmlndXJhdGlvbgogCiAKQEAg
LTIwNDMsNyArMjA0Myw3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToK
ICAgICAgICAgICAgICd9XG4nLAogICAgICAgICAgICAgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0
X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICdhdXRvIEZvbzpiYXIoKSAtPiBCYXpcbicK
KyAgICAgICAgICAgICdhdXRvIEZvbzo6YmFyKCkgLT4gQmF6XG4nCiAgICAgICAgICAgICAne1xu
JwogICAgICAgICAgICAgJ31cbicsCiAgICAgICAgICAgICAnJykKQEAgLTU5NDksMTIgKzU5NDks
NTUgQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAne1xuJwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxuJywgJ3Rlc3QuY3BwJywgcGFyYW1ldGVy
X2Vycm9yX3J1bGVzKSkKIAorICAgIGRlZiB0ZXN0X3NwbGl0X2lkZW50aWZpZXJfaW50b193b3Jk
cyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgX3NwbGl0X2lkZW50aWZpZXJf
aW50b193b3JkcygnJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydhJ10sIF9zcGxpdF9p
ZGVudGlmaWVyX2ludG9fd29yZHMoJ2EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0En
XSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnQScpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsnYScsICdCJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ2FCJykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydBYiddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dv
cmRzKCdBYicpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyd1cmwnXSwgX3NwbGl0X2lk
ZW50aWZpZXJfaW50b193b3JkcygndXJsJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydV
cmwnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVXJsJykpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWydVUkwnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyd1cmwnLCAnU3RyaW5nJ10sIF9zcGxpdF9pZGVu
dGlmaWVyX2ludG9fd29yZHMoJ3VybFN0cmluZycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFsnVVJMJywgJ1N0cmluZyddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdVUkxTdHJp
bmcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3Rlc3QnLCAnUGF0aCcsICdPcicsICdV
cmwnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygndGVzdFBhdGhPclVybCcpKQorCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydVUkwnLCAnOjonLCAnaW52YWxpZGF0ZSddLCBfc3Bs
aXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdVUkw6OmludmFsaWRhdGUnKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbJ1VSTCcsICc6OicsICdpbnZhbGlkYXRlJ10sIF9zcGxpdF9pZGVudGlm
aWVyX2ludG9fd29yZHMoJ1VSTF86OmludmFsaWRhdGUnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChbJ1VSTCcsICc6OicsICdpbnZhbGlkYXRlJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9f
d29yZHMoJ1VSTF86Ol9pbnZhbGlkYXRlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydV
UkwnLCAnOjonLCAnaW52YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdV
UkxfOjppbnZhbGlkYXRlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydVUkwnLCAnOCcs
ICc6OicsICdpbnZhbGlkYXRlJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ1VSTDg6
OmludmFsaWRhdGUnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4JywgJzo6
JywgJ2ludmFsaWRhdGUnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMOF86Ol9p
bnZhbGlkYXRlXycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVVJMJywgJzgnLCAnOjon
LCAnaW52YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdVUkw4Xzo6X2lu
dmFsaWRhdGUnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1VSTCcsICc4JywgJzo6Jywg
J2ludmFsaWRhdGUnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVVJMOF86Ol9pbnZh
bGlkYXRlXycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVVJMJywgJzgnLCAnOjonLCAn
aW52YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdVUkw4Xzo6aW52YWxp
ZGF0ZScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVVJMJywgJzgnLCAnOjonLCAnaW52
YWxpZGF0ZSddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdVUkw4Xzo6X2ludmFsaWRh
dGUnKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnbG9hZHVybCddLCBfc3BsaXRfaWRl
bnRpZmllcl9pbnRvX3dvcmRzKCdsb2FkdXJsJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Wydsb2FkJywgJ1VybCddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdsb2FkVXJsJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydsb2FkJywgJ1VSTCddLCBfc3BsaXRfaWRlbnRp
Zmllcl9pbnRvX3dvcmRzKCdsb2FkVVJMJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChb
J3VybCddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdfdXJsJykpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoWyd1cmwnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnZ191
cmwnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ3VybCddLCBfc3BsaXRfaWRlbnRpZmll
cl9pbnRvX3dvcmRzKCdtX3VybCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsndXJsJ10s
IF9zcGxpdF9pZGVudGlmaWVyX2ludG9fd29yZHMoJ3NfdXJsJykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWydEQyddLCBfc3BsaXRfaWRlbnRpZmllcl9pbnRvX3dvcmRzKCdtX0RDJykpCisK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ2knLCAnMSddLCBfc3BsaXRfaWRlbnRpZmllcl9p
bnRvX3dvcmRzKCdpMScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsndXJsJywgJzgnXSwg
X3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygndXJsOCcpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsnVXJsJywgJzgnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnVXJsOCcp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnVVJMJywgJzgnXSwgX3NwbGl0X2lkZW50aWZp
ZXJfaW50b193b3JkcygnVVJMOCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnbm9uJywg
J1VURicsICc4JywgJ1F1ZXJ5JywgJ0VuY29kaW5nJ10sIF9zcGxpdF9pZGVudGlmaWVyX2ludG9f
d29yZHMoJ25vblVURjhRdWVyeUVuY29kaW5nJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChbJ2lzJywgJ1NvZnQnXSwgX3NwbGl0X2lkZW50aWZpZXJfaW50b193b3JkcygnaXNTb2Z0OjEn
KSkKKwogICAgIGRlZiB0ZXN0X2lkZW50aWZpZXJfbmFtZXNfd2l0aF9hY3JvbnltcyhzZWxmKToK
ICAgICAgICAgaWRlbnRpZmllcl9lcnJvcl9ydWxlcyA9ICgnLScsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJytyZWFkYWJpbGl0eS9uYW1pbmcvYWNyb255bScpCiAKLSAgICAg
ICAgIyBTdGFydCBvZiBwYXJhbWV0ZXIgbmFtZS4KLSAgICAgICAgZXJyb3Jfc3RhcnQgPSAnVGhl
IGlkZW50aWZpZXIgbmFtZSAiJXMiIHN0YXJ0cyB3aXRoIGEgYWNyb255bSB0aGF0IGlzIG5vdCBh
bGwgbG93ZXJjYXNlLidcCisgICAgICAgICMgVGVzdCB0aGF0IGFuIGlkZW50aWZpZXIgc3RhcnRz
IHdpdGggYW4gYWNyb255bS4KKyAgICAgICAgZXJyb3Jfc3RhcnQgPSAnVGhlIGlkZW50aWZpZXIg
bmFtZSAiJXMiIHN0YXJ0cyB3aXRoIGFuIGFjcm9ueW0gdGhhdCBpcyBub3QgYWxsIGxvd2VyY2Fz
ZS4nXAogICAgICAgICAgICAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9uYW1pbmcvYWNyb255
bV0gWzVdJwogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsCkBAIC01OTkxLDYgKzYwMzQs
OCBAQCBjbGFzcyBXZWJLaXRTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5wZXJmb3JtX2xpbnQoJ1VSTFBhcnNlcjo6VVJMUGFyc2VyKGNv
bnN0IFN0cmluZyYgaW5wdXQsIGNvbnN0IFVSTCYgYmFzZSwgY29uc3QgVVJMVGV4dEVuY29kaW5n
KiBub25VVEY4UXVlcnlFbmNvZGluZyknLCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1
bGVzKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywKICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLnBlcmZvcm1fbGludCgnYm9vbCBVUkxQYXJzZXI6OmludGVybmFsVmFsdWVzQ29u
c2lzdGVudChjb25zdCBVUkwmIHVybCknLCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1
bGVzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvcl9zdGFydCAlICdVUkw6OlVSTE5v
dENvbnN0cnVjdG9yJywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGlu
dCgnYm9vbCBVUkw6OlVSTE5vdENvbnN0cnVjdG9yKCknLCAndGVzdC5jcHAnLCBpZGVudGlmaWVy
X2Vycm9yX3J1bGVzKSkKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCdTdHJpbmcgbV91cmw7JywgJ3Rlc3Qu
Y3BwJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykpCkBAIC02MDAyLDI2ICs2MDQ3LDUwIEBAIGNs
YXNzIFdlYktpdFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChlcnJvcl9zdGFydCAlICdVcmxQYXJzZTo6VXJsUGFyc2UnLAogICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCd2b2lkIFVybFBhcnNlOjpVcmxQYXJzZSgp
JywgJ3Rlc3QuY3BwJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykpCiAKLSAgICAgICAgIyBGSVhN
RTogSGFyZCB0byBjaGVjayBtaWRkbGUgd29yZHMgd2l0aG91dCBrbm93aW5nIHRoYXQgdGhlIHdv
cmQgdG8gdGhlIGxlZnQgZG9lc24ndCBlbmQgd2l0aCBhbiBhY3JvbnltLgotCi0gICAgICAgIGVy
cm9yX2VuZCA9ICdUaGUgaWRlbnRpZmllciBuYW1lICIlcyIgZW5kcyB3aXRoIGEgYWNyb255bSB0
aGF0IGlzIG5vdCBhbGwgdXBwZXJjYXNlLidcCi0gICAgICAgICAgICAgICAgICAgICcgIFtyZWFk
YWJpbGl0eS9uYW1pbmcvYWNyb255bV0gWzVdJworICAgICAgICAjIFRlc3QgdGhhdCBpZGVudGlm
aWVyIGNvbnRhaW5zIGFuIGFjcm9ueW0uCisgICAgICAgIGVycm9yX2NvbnRhaW4gPSAnVGhlIGlk
ZW50aWZpZXIgbmFtZSAiJXMiIGNvbnRhaW5zIGFuIGFjcm9ueW0gdGhhdCBpcyBub3QgYWxsIHVw
cGVyY2FzZS4nXAorICAgICAgICAgICAgICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L25hbWlu
Zy9hY3JvbnltXSBbNV0nCiAKLSAgICAgICAgIyBFbmQgb2YgcGFyYW1ldGVyIG5hbWUuCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyb3JfZW5kICUgJ2xvYWR1cmwnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCd2b2lkIGxvYWQoVVJMIGxvYWR1cmwpOycs
ICd0ZXN0LmNwcCcsIGlkZW50aWZpZXJfZXJyb3JfcnVsZXMpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGVycm9yX2VuZCAlICdsb2FkVXJsJywKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
cnJvcl9jb250YWluICUgJ2xvYWRVcmwnLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
cGVyZm9ybV9saW50KCd2b2lkIGxvYWQoVVJMIGxvYWRVcmwpOycsICd0ZXN0LmNwcCcsIGlkZW50
aWZpZXJfZXJyb3JfcnVsZXMpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCd2b2lkIGxvYWQoVVJMIGxvYWRV
UkwpOycsICd0ZXN0LmNwcCcsIGlkZW50aWZpZXJfZXJyb3JfcnVsZXMpKQogCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wZXJmb3Jt
X2xpbnQoJ3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjppbnNwZWN0ZWRVUkxDaGFuZ2VkKGNv
bnN0IFN0cmluZyYgbmV3VVJMKScsICd0ZXN0LmNwcCcsIGlkZW50aWZpZXJfZXJyb3JfcnVsZXMp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9yX2VuZCAlICd0ZXN0UGF0aE9yVXJsJywK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvcl9jb250YWluICUgJ3Rlc3RQYXRoT3JVcmwn
LAogICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9saW50KCdzdGF0aWMgdm9p
ZCBjaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKGNvbnN0IGNoYXIqIHRlc3RQYXRoT3JVcmwpJywg
J3Rlc3QuY3BwJywgaWRlbnRpZmllcl9lcnJvcl9ydWxlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZXJyb3JfZW5kICUgJ2xvY2FsUGF0aE9yVXJsJywKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChlcnJvcl9jb250YWluICUgJ2xvY2FsUGF0aE9yVXJsJywKICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgnYXV0byBsb2NhbFBhdGhPclVybCA9IFN0cmluZyh0
ZXN0UGF0aE9yVVJMKTsnLCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkKIAor
ICAgICAgICAjIFRlc3QgdGhhdCBhbiBpZGVudGlmaWVyIF9taWdodF8gY29udGFpbiBhbiBhY3Jv
bnltLgorICAgICAgICBlcnJvcl9tYXlfY29udGFpbiA9ICdUaGUgaWRlbnRpZmllciBuYW1lICIl
cyIgX21heV8gY29udGFpbiBhbiBhY3JvbnltIHRoYXQgaXMgbm90IGFsbCB1cHBlcmNhc2UuJ1wK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBbcmVhZGFiaWxpdHkvbmFtaW5nL2Fjcm9u
eW1dIFszXScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvcl9tYXlfY29udGFpbiAlICds
b2FkdXJsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgndm9p
ZCBsb2FkKFVSTCBsb2FkdXJsKTsnLCAndGVzdC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVz
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvcl9tYXlfY29udGFpbiAlICdjYW5Mb2Fk
dXJsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGludCgndm9pZCBs
b2FkKFVSTCB1cmwsIGJvb2wgY2FuTG9hZHVybCk7JywgJ3Rlc3QuY3BwJywgaWRlbnRpZmllcl9l
cnJvcl9ydWxlcykpCisKKyAgICAgICAgIyBUZXN0IHNwZWNpYWwgZXhjZXB0aW9ucy4KKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgc2VsZi5wZXJmb3JtX2xpbnQoCisgICAgICAgICAgICAn
dm9pZCBjdXJsRGlkU2VuZERhdGEoV2ViQ29yZTo6Q3VybFJlcXVlc3QmLCB1bnNpZ25lZCBsb25n
IGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgb3ZlcnJpZGU7JywKKyAgICAgICAgICAgICdOZXR3
b3JrRGF0YVRhc2tDdXJsLmgnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnJywgc2VsZi5wZXJmb3JtX2xpbnQoCisgICAgICAgICAgICAndm9pZCBO
ZXR3b3JrRGF0YVRhc2tDdXJsOjpjYW5jZWwoKScsCisgICAgICAgICAgICAnTmV0d29ya0RhdGFU
YXNrQ3VybC5jcHAnLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnJywgc2VsZi5wZXJmb3JtX2xpbnQoCisgICAgICAgICAgICAnU3RyaW5nIG1fbnN1
cmxDYWNoZURpcmVjdG9yeTsnLAorICAgICAgICAgICAgJ1BsdWdpblByb2Nlc3MuaCcsIGlkZW50
aWZpZXJfZXJyb3JfcnVsZXMpKQorCisgICAgICAgICMgU29tZXRpbWVzIGNoZWNrX2lkZW50aWZp
ZXJfbmFtZV9pbl9kZWNsYXJhdGlvbigpIGdldHMgY29uZnVzZWQKKyAgICAgICAgIyBhbmQgdGhp
bmtzICc6JyBpcyBhbiBpZGVudGlmaWVyLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBz
ZWxmLnBlcmZvcm1fbGludCgKKyAgICAgICAgICAgICdOU0ZpbGVQb3NpeFBlcm1pc3Npb25zIDog
W05TTnVtYmVyIG51bWJlcldpdGhJbnRlZ2VyOihXRUJfVVJFQUQgfCBXRUJfVVdSSVRFKV0sJywK
KyAgICAgICAgICAgICdRdWlja0xvb2subW0nLCBpZGVudGlmaWVyX2Vycm9yX3J1bGVzKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgc2VsZi5wZXJmb3JtX2xpbnQoCisgICAgICAgICAg
ICAnZm9yIChDQUxheWVyICpjdXJyTGF5ZXIgOiBbbGF5ZXIgc3VibGF5ZXJzXSkgeycsCisgICAg
ICAgICAgICAnUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhLm1tJywgaWRl
bnRpZmllcl9lcnJvcl9ydWxlcykpCisKICAgICBkZWYgdGVzdF9jb21tZW50cyhzZWxmKToKICAg
ICAgICAgIyBBIGNvbW1lbnQgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUgaXMgb2suCiAgICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJy8vIGNvbW1lbnQnLCAnJykK
</data>

          </attachment>
      

    </bug>

</bugzilla>