<?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>200747</bug_id>
          
          <creation_ts>2019-08-14 18:16:28 -0700</creation_ts>
          <short_desc>Web Inspector: have more aggressive checks for dataURLs provided to `console.screenshot`</short_desc>
          <delta_ts>2019-08-19 21:42:09 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>199307</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1561407</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-14 18:16:28 -0700</bug_when>
    <thetext>Attempting to load an image from a base64 dataURL is async, so we aren&apos;t able to do that in the `PageConsoleClient`, but we can at least synchronously try to decode the base64 string to see if that&apos;s even valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561410</commentid>
    <comment_count>1</comment_count>
      <attachid>376338</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-14 18:18:02 -0700</bug_when>
    <thetext>Created attachment 376338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561683</commentid>
    <comment_count>2</comment_count>
      <attachid>376338</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-15 12:19:22 -0700</bug_when>
    <thetext>Comment on attachment 376338
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=376338&amp;action=review

&gt; LayoutTests/inspector/console/console-screenshot.html:142
&gt; +    addTest({
&gt; +        name: &quot;console.screenshot.String.Base64.InvalidContent&quot;,
&gt; +        expression: `console.screenshot(&quot;data:image/png;base64,&lt;INVALID&gt;&quot;)`,
&gt; +        shouldCaptureViewport: true,
&gt; +    });

r-, I wonder not expect if the user explicitly provides a dataURL for it to capture the viewport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561684</commentid>
    <comment_count>3</comment_count>
      <attachid>376338</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-15 12:19:44 -0700</bug_when>
    <thetext>Comment on attachment 376338
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=376338&amp;action=review

&gt;&gt; LayoutTests/inspector/console/console-screenshot.html:142
&gt;&gt; +    });
&gt; 
&gt; r-, I wonder not expect if the user explicitly provides a dataURL for it to capture the viewport.

Typo: &quot;I would not expect&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561718</commentid>
    <comment_count>4</comment_count>
      <attachid>376338</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-15 13:28:52 -0700</bug_when>
    <thetext>Comment on attachment 376338
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=376338&amp;action=review

&gt;&gt;&gt; LayoutTests/inspector/console/console-screenshot.html:142
&gt;&gt;&gt; +    });
&gt;&gt; 
&gt;&gt; r-, I wonder not expect if the user explicitly provides a dataURL for it to capture the viewport.
&gt; 
&gt; Typo: &quot;I would not expect&quot;

In this case, the dataURL isn&apos;t valid, so I&apos;m treating it like a regular string that&apos;s being logged (e.g. `console.screenshot(&quot;foo&quot;);`).  I suppose if the given string matches a dataURL pattern (`/^data:image\/(?:[^;]+;)+base64,`), that should be treated as an error if it&apos;s not decodable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561744</commentid>
    <comment_count>5</comment_count>
      <attachid>376422</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-15 14:14:12 -0700</bug_when>
    <thetext>Created attachment 376422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561784</commentid>
    <comment_count>6</comment_count>
      <attachid>376422</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-15 15:18:48 -0700</bug_when>
    <thetext>Comment on attachment 376422
Patch

Why aren&apos;t these just showing a broken image?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561802</commentid>
    <comment_count>7</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-15 16:04:56 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #6)
&gt; Why aren&apos;t these just showing a broken image?
I suppose we could do that, but I&apos;d like to avoid sending dataURLs to the frontend as much as possible, as they&apos;re likely to be quite large.  For every other `possibleTarget` type (e.g. `Node`, `ImageBitmap`, etc.), we _only_ send the screenshot to the frontend (as a dataURL) once we know that the screenshot is valid.  For consistency, we probably could _always_ try to load an image with the dataURL and _always_ show broken images in the case that they&apos;re not valid, but I think a message is clearer in saying &quot;this dataURL can&apos;t be loaded&quot; than a broken image.

I also want to make sure that developers can still `console.screenshot(&quot;a&quot;, &quot;b&quot;, 1, 2)` and get a screenshot of the viewport with some extra data logged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561973</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-16 01:14:31 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #7)
&gt; (In reply to Joseph Pecoraro from comment #6)
&gt; &gt; Why aren&apos;t these just showing a broken image?
&gt; I suppose we could do that, but I&apos;d like to avoid sending dataURLs to the
&gt; frontend as much as possible, as they&apos;re likely to be quite large.

Isn&apos;t the developer requesting this by calling `console.log(...)` or `console.screenshot(...)`? I&apos;d rather we do what the developer requested then try to apply smarts.

&gt; For every other `possibleTarget` type (e.g. `Node`, `ImageBitmap`, etc.), we
&gt; _only_ send the screenshot to the frontend (as a dataURL) once we know that
&gt; the screenshot is valid.  For consistency, we probably could _always_ try to
&gt; load an image with the dataURL and _always_ show broken images in the case
&gt; that they&apos;re not valid, but I think a message is clearer in saying &quot;this
&gt; dataURL can&apos;t be loaded&quot; than a broken image.

Even with the patch as written we can&apos;t know if the dataURL can be loaded or not and might still get a broken image in some cases?

&gt; I also want to make sure that developers can still `console.screenshot(&quot;a&quot;,
&gt; &quot;b&quot;, 1, 2)` and get a screenshot of the viewport with some extra data logged.

That sounds good. I&apos;m not sure how that conflicts with this though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562083</commentid>
    <comment_count>9</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-16 10:27:52 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #8)
&gt; (In reply to Devin Rousso from comment #7)
&gt; &gt; (In reply to Joseph Pecoraro from comment #6)
&gt; &gt; &gt; Why aren&apos;t these just showing a broken image?
&gt; &gt; I suppose we could do that, but I&apos;d like to avoid sending dataURLs to the frontend as much as possible, as they&apos;re likely to be quite large.
&gt; 
&gt; Isn&apos;t the developer requesting this by calling `console.log(...)` or `console.screenshot(...)`? I&apos;d rather we do what the developer requested then try to apply smarts.
I don&apos;t see how this is &quot;smarts&quot;.  Given our functionality for every other type of target (e.g. `Node`, `ImageBitmap`, etc.), we _never_ show a broken image, so to suddenly have a broken image for dataURL-like strings would be the thing I wouldn&apos;t expect.  All other target types will only show an image if we know the image is valid, so why shouldn&apos;t we try to do as much of that same &quot;pre-processing/pre-testing&quot; as possible for dataURL-like strings too?

&gt; &gt; For every other `possibleTarget` type (e.g. `Node`, `ImageBitmap`, etc.), we _only_ send the screenshot to the frontend (as a dataURL) once we know that the screenshot is valid.  For consistency, we probably could _always_ try to load an image with the dataURL and _always_ show broken images in the case that they&apos;re not valid, but I think a message is clearer in saying &quot;this dataURL can&apos;t be loaded&quot; than a broken image.
&gt; 
&gt; Even with the patch as written we can&apos;t know if the dataURL can be loaded or
&gt; not and might still get a broken image in some cases?
Right, that&apos;s why I&apos;d said &quot;as much as possible&quot;.  Just to be clear, I&apos;m not against the idea of always sending dataURL-like strings (see below) to the frontend to be shown as an image, I just don&apos;t want us to send _all_ strings (regardless of their dataURL-ness) to be treated this way (see below for reason why).

&gt; &gt; I also want to make sure that developers can still `console.screenshot(&quot;a&quot;, &quot;b&quot;, 1, 2)` and get a screenshot of the viewport with some extra data logged.
&gt; 
&gt; That sounds good. I&apos;m not sure how that conflicts with this though.
Are you suggesting that we treat _all_ strings as dataURLs, or only those that match `/^data:image\/(?:[^;]+;)+base64,`?

If the former, how would `console.screenshot(&quot;test&quot;)` work?  Right now, `console.screenshot(myObject)` would log `myObject` and then take a screenshot of the viewport.  I want developers to be able to do the same thing with non-dataURL strings (e.g. `console.screenshot(&quot;taking screenshot of viewport&quot;)`), meaning that the string target is instead used as an extra log.

If the latter, I don&apos;t have a strong argument against that, so I&apos;m fine with us not testing the validity of dataURLs at all (other than the pattern match above) in the backend and just always sending the dataURL to the frontend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562113</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-16 11:57:42 -0700</bug_when>
    <thetext>&gt; I don&apos;t see how this is &quot;smarts&quot;.  Given our functionality for every other
&gt; type of target (e.g. `Node`, `ImageBitmap`, etc.), we _never_ show a broken
&gt; image, so to suddenly have a broken image for dataURL-like strings would be
&gt; the thing I wouldn&apos;t expect.  All other target types will only show an image
&gt; if we know the image is valid, so why shouldn&apos;t we try to do as much of that
&gt; same &quot;pre-processing/pre-testing&quot; as possible for dataURL-like strings too?

That doesn&apos;t seem to be true. We show broken images for nodes that contain broken images. So this matches existing behavior.

Example:

    &lt;img id=&quot;img&quot; src=&quot;foo.txt&quot;&gt;

Then:

    js&gt; console.screenshot(document.getElementById(&quot;img&quot;));
    [ broken image ]

Unless you&apos;ve changed that?


&gt; Are you suggesting that we treat _all_ strings as dataURLs, or only those
&gt; that match `/^data:image\/(?:[^;]+;)+base64,`?

Not all strings. I&apos;d say only special case strings that start with &quot;data:&quot;, aka data URLs. Maybe &quot;data:image/&quot; if you want to be more specific, but I&apos;m not sure the regex really gains us anything. You could imagine that if the user input a string that is a URL (http even) we could attempt to load it, but I think loading over a network would be ridiculous.


&gt; If the former, how would `console.screenshot(&quot;test&quot;)` work?  Right now,
&gt; `console.screenshot(myObject)` would log `myObject` and then take a
&gt; screenshot of the viewport.  I want developers to be able to do the same
&gt; thing with non-dataURL strings (e.g. `console.screenshot(&quot;taking screenshot
&gt; of viewport&quot;)`), meaning that the string target is instead used as an extra
&gt; log.
&gt; 
&gt; If the latter, I don&apos;t have a strong argument against that, so I&apos;m fine with
&gt; us not testing the validity of dataURLs at all (other than the pattern match
&gt; above) in the backend and just always sending the dataURL to the frontend.

The latter is the simplest and would get developers useful functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562385</commentid>
    <comment_count>11</comment_count>
      <attachid>376422</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-16 20:21:48 -0700</bug_when>
    <thetext>Comment on attachment 376422
Patch

I what we ended up agreeing on was:

  • Special case &quot;data:&quot; to send as an image
  • If rendering the dataURL fails (onerror) in the frontend, output an error message without a broken image icon

Frontend could avoid flashes but given this (errors) is such an unlikely case I&apos;m not sure it matters much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562460</commentid>
    <comment_count>12</comment_count>
      <attachid>376602</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-17 02:04:29 -0700</bug_when>
    <thetext>Created attachment 376602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562461</commentid>
    <comment_count>13</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-17 02:08:08 -0700</bug_when>
    <thetext>Attachment 376602 did not pass style-queue:


ERROR: Source/WebInspectorUI/ChangeLog:9:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: spoof  [changelog/unwantedsecurityterms] [3]
ERROR: Source/WebCore/ChangeLog:9:  Please consider whether the use of security-sensitive phrasing could help someone exploit WebKit: spoof  [changelog/unwantedsecurityterms] [3]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562924</commentid>
    <comment_count>14</comment_count>
      <attachid>376602</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-19 21:17:10 -0700</bug_when>
    <thetext>Comment on attachment 376602
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=376602&amp;action=review

Awesome! r=me

&gt; Source/WebCore/page/PageConsoleClient.cpp:389
&gt; +            if (possibleTarget.getString(state, base64) &amp;&amp; base64.startsWithIgnoringASCIICase(&quot;data:&quot;_s) &amp;&amp; base64.length() &gt; 5) {

Is the `length() &gt; 5` check needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562925</commentid>
    <comment_count>15</comment_count>
      <attachid>376602</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-19 21:22:09 -0700</bug_when>
    <thetext>Comment on attachment 376602
Patch

Clearing flags on attachment: 376602

Committed r248890: &lt;https://trac.webkit.org/changeset/248890&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562926</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-19 21:22:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562927</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-19 21:23:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/54497945&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562934</commentid>
    <comment_count>18</comment_count>
      <attachid>376602</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-08-19 21:35:13 -0700</bug_when>
    <thetext>Comment on attachment 376602
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=376602&amp;action=review

&gt;&gt; Source/WebCore/page/PageConsoleClient.cpp:389
&gt;&gt; +            if (possibleTarget.getString(state, base64) &amp;&amp; base64.startsWithIgnoringASCIICase(&quot;data:&quot;_s) &amp;&amp; base64.length() &gt; 5) {
&gt; 
&gt; Is the `length() &gt; 5` check needed?

This was mainly to check that the `base64` string is more than just &quot;data:&quot;, as I could imagine that &quot;data:&quot; is used as a logging prefix (e.g. `console.log(&quot;data:&quot;, object1, object2);`).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562936</commentid>
    <comment_count>19</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-19 21:42:09 -0700</bug_when>
    <thetext>&gt; This was mainly to check that the `base64` string is more than just &quot;data:&quot;,
&gt; as I could imagine that &quot;data:&quot; is used as a logging prefix (e.g.
&gt; `console.log(&quot;data:&quot;, object1, object2);`).

Good idea!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376338</attachid>
            <date>2019-08-14 18:18:02 -0700</date>
            <delta_ts>2019-08-15 14:14:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200747-20190814181802.patch</filename>
            <type>text/plain</type>
            <size>5058</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwODc1ZjFmYzJmYzFjODA0YWI2N2RiNjAxZjBhMDg4OTdmZDdjNjg4Li5h
OTRjMzEzNmEwYjZkOWJhYmQ1YTMwODNmMmIxZDQ5YjEzZTgyNDk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTktMDgtMTQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGhhdmUgbW9yZSBhZ2dyZXNzaXZlIGNoZWNrcyBm
b3IgZGF0YVVSTHMgcHJvdmlkZWQgdG8gYGNvbnNvbGUuc2NyZWVuc2hvdGAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDc0NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF0dGVtcHRpbmcgdG8gbG9hZCBh
biBpbWFnZSBmcm9tIGEgYmFzZTY0IGRhdGFVUkwgaXMgYXN5bmMsIHNvIHdlIGFyZW4ndCBhYmxl
IHRvIGRvIHRoYXQgaW4KKyAgICAgICAgdGhlIGBQYWdlQ29uc29sZUNsaWVudGAsIGJ1dCB3ZSBj
YW4gYXQgbGVhc3Qgc3luY2hyb25vdXNseSB0cnkgdG8gZGVjb2RlIHRoZSBiYXNlNjQgc3RyaW5n
CisgICAgICAgIHRvIHNlZSBpZiBpdCdzIGV2ZW4gdmFsaWQgYmVmb3JlIHNlbmRpbmcgaXQgdG8g
dGhlIGZyb250ZW5kIHRvIGJlIHJlbmRlcmVkLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtc2NyZWVuc2hvdC5odG1sCisKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25z
b2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjpzY3Jl
ZW5zaG90KToKKwogMjAxOS0wOC0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc3VwcG9ydCBgY29uc29sZS5zY3JlZW5zaG90YCB3
aXRoIGRhdGFVUkwgc3RyaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50
LmNwcAppbmRleCAxODkxZTk1OWIzNzhhMzgzMmQ0Y2MxZjhmNDhhOGNmZDY4ZDk3ODI5Li43OWZh
NmQ1MTA5NjI5MjcyODE4ZmJjOGUyZGVlMzU0YmE5ODMwMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcApAQCAtNjgsNiArNjgsNyBAQAogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1NjcmlwdEFyZ3VtZW50cy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxT
dGFja0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShXRUJHTCkKQEAgLTM3MSw4ICszNzIs
MTAgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6c2NyZWVuc2hvdChKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIFJlZjxTY3JpcHRBcmd1bWVudHM+JiYKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgIFN0cmluZyBiYXNlNjQ7CiAgICAgICAgICAgICBpZiAocG9zc2libGVUYXJnZXQuZ2V0U3Ry
aW5nKHN0YXRlLCBiYXNlNjQpKSB7Ci0gICAgICAgICAgICAgICAgSlNDOjpZYXJyOjpSZWd1bGFy
RXhwcmVzc2lvbiByZWdleCgiXmRhdGE6aW1hZ2UvKD86W147XSs7KStiYXNlNjQsLiskIl9zLCBK
U0M6OllhcnI6OlRleHRDYXNlU2Vuc2l0aXZpdHk6OlRleHRDYXNlSW5zZW5zaXRpdmUpOwotICAg
ICAgICAgICAgICAgIGlmIChyZWdleC5tYXRjaChiYXNlNjQpICE9IC0xKSB7CisgICAgICAgICAg
ICAgICAgYXV0byBjb3B5ID0gYmFzZTY0Lmlzb2xhdGVkQ29weSgpOworICAgICAgICAgICAgICAg
IEpTQzo6WWFycjo6cmVwbGFjZShjb3B5LCBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uKCJe
ZGF0YTppbWFnZS8oPzpbXjtdKzspK2Jhc2U2NCwiX3MsIEpTQzo6WWFycjo6VGV4dENhc2VTZW5z
aXRpdml0eTo6VGV4dENhc2VJbnNlbnNpdGl2ZSksIGVtcHR5U3RyaW5nKCkpOworICAgICAgICAg
ICAgICAgIFZlY3RvcjxjaGFyPiBiYXNlNjREYXRhOworICAgICAgICAgICAgICAgIGlmICghY29w
eS5pc0VtcHR5KCkgJiYgY29weSAhPSBiYXNlNjQgJiYgYmFzZTY0RGVjb2RlKGNvcHksIGJhc2U2
NERhdGEpKSB7CiAgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IHBvc3NpYmxlVGFyZ2V0Owog
ICAgICAgICAgICAgICAgICAgICBkYXRhVVJMID0gYmFzZTY0OwogICAgICAgICAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NjI1YTg0YmIyYzlmMTUxZWJlNmUxZjAwMWEwZjgwZTU0OTIxMjE5Li4xNzU5Zjc0
MmIzNzliOWM3NTBjYTEwNDU2OWQzMjcxMDI1ZjJmMWEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTktMDgtMTQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IGhhdmUgbW9yZSBhZ2dyZXNzaXZlIGNoZWNrcyBmb3IgZGF0YVVSTHMg
cHJvdmlkZWQgdG8gYGNvbnNvbGUuc2NyZWVuc2hvdGAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDc0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1zY3Jl
ZW5zaG90Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1zY3JlZW5z
aG90LWV4cGVjdGVkLnR4dDoKKwogMjAxOS0wOC0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc3VwcG9ydCBgY29uc29sZS5zY3Jl
ZW5zaG90YCB3aXRoIGRhdGFVUkwgc3RyaW5ncwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1zY3JlZW5zaG90LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtc2NyZWVuc2hvdC1leHBlY3RlZC50eHQKaW5k
ZXggYWY4YWNmNzY0NWU3NzY3NDk1MzEzMDY4MWIyYWE2ZDk3MTBjNjBjMi4uOTRlNGIwNTQ0NGQ0
MGMwNDQ4ODUzN2M3NzQ4ZGRlNzgzZjJkZTU1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1zY3JlZW5zaG90LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXNjcmVlbnNob3QtZXhwZWN0ZWQudHh0
CkBAIC0xMSw2ICsxMSw3IEBAIENPTlNPTEUgTUVTU0FHRTogVmlld3BvcnQKIENPTlNPTEUgTUVT
U0FHRTogVmlld3BvcnQKIENPTlNPTEUgTUVTU0FHRTogVmlld3BvcnQKIENPTlNPTEUgTUVTU0FH
RTogVmlld3BvcnQKK0NPTlNPTEUgTUVTU0FHRTogVmlld3BvcnQKIFRlc3RzIGZvciB0aGUgY29u
c29sZS5zY3JlZW5zaG90IEFQSS4KIAogCkBAIC03Miw2ICs3MywxMiBAQCBQQVNTOiBUaGUgaW1h
Z2Ugc2hvdWxkIG5vdCBiZSBlbXB0eS4KIFBBU1M6IFRoZSBpbWFnZSB3aWR0aCBzaG91bGQgYmUg
Z3JlYXRlciB0aGFuIDJweC4KIFBBU1M6IFRoZSBpbWFnZSBoZWlnaHQgc2hvdWxkIGJlIGdyZWF0
ZXIgdGhhbiAycHguCiAKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBjb25zb2xlLnNjcmVlbnNob3Qu
U3RyaW5nLkJhc2U2NC5JbnZhbGlkQ29udGVudAorUEFTUzogVGhlIGFkZGVkIG1lc3NhZ2Ugc2hv
dWxkIGJlIGFuIGltYWdlLgorUEFTUzogVGhlIGltYWdlIHNob3VsZCBub3QgYmUgZW1wdHkuCitQ
QVNTOiBUaGUgaW1hZ2Ugd2lkdGggc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAycHguCitQQVNTOiBU
aGUgaW1hZ2UgaGVpZ2h0IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMnB4LgorCiAtLSBSdW5uaW5n
IHRlc3QgY2FzZTogY29uc29sZS5zY3JlZW5zaG90LlN0cmluZy5CYXNlNjQuSW52YWxpZAogUEFT
UzogVGhlIGFkZGVkIG1lc3NhZ2Ugc2hvdWxkIGJlIGFuIGltYWdlLgogUEFTUzogVGhlIGltYWdl
IHNob3VsZCBub3QgYmUgZW1wdHkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLXNjcmVlbnNob3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtc2NyZWVuc2hvdC5odG1sCmluZGV4IGI2NGZjYzdhMmIwMzJhYTExODA3
ZDU2YmQ4MjM0YTllYmJjMGNhMzIuLjM5MjNiOWE2OWNhNTExMTI0YTEzNWVjZjMzMzU5MzE2NGVm
MDlmMjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
c2NyZWVuc2hvdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtc2NyZWVuc2hvdC5odG1sCkBAIC0xMzUsNiArMTM1LDEyIEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICBzaG91bGRDYXB0dXJlVmlld3BvcnQ6IHRydWUsCiAgICAgfSk7CiAKKyAgICBhZGRU
ZXN0KHsKKyAgICAgICAgbmFtZTogImNvbnNvbGUuc2NyZWVuc2hvdC5TdHJpbmcuQmFzZTY0Lklu
dmFsaWRDb250ZW50IiwKKyAgICAgICAgZXhwcmVzc2lvbjogYGNvbnNvbGUuc2NyZWVuc2hvdCgi
ZGF0YTppbWFnZS9wbmc7YmFzZTY0LDxJTlZBTElEPiIpYCwKKyAgICAgICAgc2hvdWxkQ2FwdHVy
ZVZpZXdwb3J0OiB0cnVlLAorICAgIH0pOworCiAgICAgYWRkVGVzdCh7CiAgICAgICAgIG5hbWU6
ICJjb25zb2xlLnNjcmVlbnNob3QuU3RyaW5nLkJhc2U2NC5JbnZhbGlkIiwKICAgICAgICAgZXhw
cmVzc2lvbjogYGNvbnNvbGUuc2NyZWVuc2hvdCgiaW52YWxpZCIpYCwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376422</attachid>
            <date>2019-08-15 14:14:12 -0700</date>
            <delta_ts>2019-08-17 02:04:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200747-20190815141411.patch</filename>
            <type>text/plain</type>
            <size>7308</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlODdmZGI1ZDAxNTljODkxYjMyZGU1N2JlYWM2OTQ4MDAzMzYwMzM3Li43
OTNhYTdkNjQ1YzRmMDFkZGY4ZmIxZWExNTJmMGFkODYxMjE5ZWQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTktMDgtMTQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGhhdmUgbW9yZSBhZ2dyZXNzaXZlIGNoZWNrcyBm
b3IgZGF0YVVSTHMgcHJvdmlkZWQgdG8gYGNvbnNvbGUuc2NyZWVuc2hvdGAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDc0NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF0dGVtcHRpbmcgdG8gbG9hZCBh
biBpbWFnZSBmcm9tIGEgYmFzZTY0IGRhdGFVUkwgaXMgYXN5bmMsIHNvIHdlIGFyZW4ndCBhYmxl
IHRvIGRvIHRoYXQgaW4KKyAgICAgICAgdGhlIGBQYWdlQ29uc29sZUNsaWVudGAsIGJ1dCB3ZSBj
YW4gYXQgbGVhc3Qgc3luY2hyb25vdXNseSB0cnkgdG8gZGVjb2RlIHRoZSBiYXNlNjQgc3RyaW5n
CisgICAgICAgIHRvIHNlZSBpZiBpdCdzIGV2ZW4gdmFsaWQgYmVmb3JlIHNlbmRpbmcgaXQgdG8g
dGhlIGZyb250ZW5kIHRvIGJlIHJlbmRlcmVkLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtc2NyZWVuc2hvdC5odG1sCisKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25z
b2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjpzY3Jl
ZW5zaG90KToKKwogMjAxOS0wOC0xNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiBEZWJ1ZyBidWlsZCBmaXggYWZ0ZXIgcjI0ODczMC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKaW5kZXggODI0NmFkYzFhMTgw
YjEzOGE4MDJjNTY0NTU0M2ZmYjJhM2VlMjg0YS4uMGZiNjFjZDg1NWM2OGU0OGE2YzViMjNkNTc3
Nzc5MDBkNmNjN2VhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29s
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5j
cHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRBcmd1
bWVudHMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvQmFzZTY0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
ICNpZiBFTkFCTEUoV0VCR0wpCkBAIC0zODgsMTAgKzM4OSwxMyBAQCB2b2lkIFBhZ2VDb25zb2xl
Q2xpZW50OjpzY3JlZW5zaG90KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgUmVmPFNjcmlwdEFyZ3Vt
ZW50cz4mJgogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgU3RyaW5nIGJhc2U2NDsKICAg
ICAgICAgICAgIGlmIChwb3NzaWJsZVRhcmdldC5nZXRTdHJpbmcoc3RhdGUsIGJhc2U2NCkpIHsK
LSAgICAgICAgICAgICAgICBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uIHJlZ2V4KCJeZGF0
YTppbWFnZS8oPzpbXjtdKzspK2Jhc2U2NCwuKyQiX3MsIEpTQzo6WWFycjo6VGV4dENhc2VTZW5z
aXRpdml0eTo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlZ2V4
Lm1hdGNoKGJhc2U2NCkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGNvcHkgPSBiYXNl
NjQuaXNvbGF0ZWRDb3B5KCk7CisgICAgICAgICAgICAgICAgSlNDOjpZYXJyOjpyZXBsYWNlKGNv
cHksIEpTQzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24oIl5kYXRhOmltYWdlLyg/OlteO10rOykr
YmFzZTY0LCJfcywgSlNDOjpZYXJyOjpUZXh0Q2FzZVNlbnNpdGl2aXR5OjpUZXh0Q2FzZUluc2Vu
c2l0aXZlKSwgZW1wdHlTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGNvcHkgIT0gYmFz
ZTY0KSB7CiAgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IHBvc3NpYmxlVGFyZ2V0OwotICAg
ICAgICAgICAgICAgICAgICBkYXRhVVJMID0gYmFzZTY0OworICAgICAgICAgICAgICAgICAgICBW
ZWN0b3I8Y2hhcj4gYmFzZTY0RGF0YTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb3B5Lmlz
RW1wdHkoKSAmJiBiYXNlNjREZWNvZGUoY29weSwgYmFzZTY0RGF0YSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICBkYXRhVVJMID0gYmFzZTY0OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIxODg0ZWIwM2M4NTcyNjA5ODM0NWZmNzJhYjVhNTll
ZTI3NWMxYzcuLmMyOTQyY2IxMmUwMmFjZjU5ZjEyYzY3OWY4YThjNDVkZGM0OTUwZTEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxOS0wOC0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBs
ZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogaGF2ZSBtb3JlIGFnZ3Jlc3NpdmUgY2hl
Y2tzIGZvciBkYXRhVVJMcyBwcm92aWRlZCB0byBgY29uc29sZS5zY3JlZW5zaG90YAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNzQ3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLXNjcmVlbnNob3QuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLXNjcmVlbnNob3QtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTA4LTE1ICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBzdXBw
b3J0IGBjb25zb2xlLnNjcmVlbnNob3RgIHdpdGggZGV0YWNoZWQgPGNhbnZhcz4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtc2NyZWVuc2hvdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXNjcmVlbnNo
b3QtZXhwZWN0ZWQudHh0CmluZGV4IGU5ZGE0ZDg2Y2Q1ODYwNWEyMzcwZGMyY2ZkMTVhYWVkMWJj
OTMxNjIuLjUzNzEwMDA5YzQ1ODE3NDUyYzU3Nzk2MjkwMjg2ODViZDlmOTAzODkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtc2NyZWVuc2hvdC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1zY3Jl
ZW5zaG90LWV4cGVjdGVkLnR4dApAQCAtNyw5ICs3LDEwIEBAIENPTlNPTEUgTUVTU0FHRTogW29i
amVjdCBIVE1MRGl2RWxlbWVudF0KIENPTlNPTEUgTUVTU0FHRTogW29iamVjdCBJbWFnZURhdGFd
CiBDT05TT0xFIE1FU1NBR0U6IFtvYmplY3QgSW1hZ2VCaXRtYXBdCiBDT05TT0xFIE1FU1NBR0U6
IFtvYmplY3QgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEXQorQ09OU09MRSBNRVNTQUdFOiBWaWV3
cG9ydAogQ09OU09MRSBNRVNTQUdFOiBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29B
QUFBTlNVaEVVZ0FBQUFJQUFBQUNDQVlBQUFCeXRnMGtBQUFBQVhOU1IwSUFyczRjNlFBQUFCTkpS
RUZVQ0Ixai9NL0FBRVFNREV3Z0FnUUFIeGNDQW10QW0vc0FBQUFBU1VWT1JLNUNZSUk9Ci1DT05T
T0xFIE1FU1NBR0U6IFZpZXdwb3J0Ci1DT05TT0xFIE1FU1NBR0U6IFZpZXdwb3J0CitDT05TT0xF
IE1FU1NBR0U6IGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8SU5WQUxJRD4KK0NPTlNPTEUgTUVTU0FH
RTogZGF0YTppbWFnZS9wbmc7YTE9YjI7YmFzZTY0LAogQ09OU09MRSBNRVNTQUdFOiBWaWV3cG9y
dAogQ09OU09MRSBNRVNTQUdFOiBWaWV3cG9ydAogVGVzdHMgZm9yIHRoZSBjb25zb2xlLnNjcmVl
bnNob3QgQVBJLgpAQCAtNjcsMjMgKzY4LDIzIEBAIFBBU1M6IFRoZSBpbWFnZSBzaG91bGQgbm90
IGJlIGVtcHR5LgogUEFTUzogVGhlIGltYWdlIHdpZHRoIHNob3VsZCBiZSAycHguCiBQQVNTOiBU
aGUgaW1hZ2UgaGVpZ2h0IHNob3VsZCBiZSAycHguCiAKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBj
b25zb2xlLnNjcmVlbnNob3QuU3RyaW5nLlZhbGlkCitQQVNTOiBUaGUgYWRkZWQgbWVzc2FnZSBz
aG91bGQgYmUgYW4gaW1hZ2UuCitQQVNTOiBUaGUgaW1hZ2Ugc2hvdWxkIG5vdCBiZSBlbXB0eS4K
K1BBU1M6IFRoZSBpbWFnZSB3aWR0aCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDJweC4KK1BBU1M6
IFRoZSBpbWFnZSBoZWlnaHQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAycHguCisKIC0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBjb25zb2xlLnNjcmVlbnNob3QuU3RyaW5nLkJhc2U2NC5WYWxpZAogUEFT
UzogVGhlIGFkZGVkIG1lc3NhZ2Ugc2hvdWxkIGJlIGFuIGltYWdlLgogUEFTUzogVGhlIGltYWdl
IHNob3VsZCBub3QgYmUgZW1wdHkuCiBQQVNTOiBUaGUgaW1hZ2Ugd2lkdGggc2hvdWxkIGJlIDJw
eC4KIFBBU1M6IFRoZSBpbWFnZSBoZWlnaHQgc2hvdWxkIGJlIDJweC4KIAotLS0gUnVubmluZyB0
ZXN0IGNhc2U6IGNvbnNvbGUuc2NyZWVuc2hvdC5TdHJpbmcuQmFzZTY0Lk5vQ29udGVudAotUEFT
UzogVGhlIGFkZGVkIG1lc3NhZ2Ugc2hvdWxkIGJlIGFuIGltYWdlLgotUEFTUzogVGhlIGltYWdl
IHNob3VsZCBub3QgYmUgZW1wdHkuCi1QQVNTOiBUaGUgaW1hZ2Ugd2lkdGggc2hvdWxkIGJlIGdy
ZWF0ZXIgdGhhbiAycHguCi1QQVNTOiBUaGUgaW1hZ2UgaGVpZ2h0IHNob3VsZCBiZSBncmVhdGVy
IHRoYW4gMnB4LgorLS0gUnVubmluZyB0ZXN0IGNhc2U6IGNvbnNvbGUuc2NyZWVuc2hvdC5TdHJp
bmcuQmFzZTY0LkludmFsaWRDb250ZW50CitQQVNTOiBDb3VsZCBub3QgY2FwdHVyZSBzY3JlZW5z
aG90CiAKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBjb25zb2xlLnNjcmVlbnNob3QuU3RyaW5nLkJh
c2U2NC5JbnZhbGlkCi1QQVNTOiBUaGUgYWRkZWQgbWVzc2FnZSBzaG91bGQgYmUgYW4gaW1hZ2Uu
Ci1QQVNTOiBUaGUgaW1hZ2Ugc2hvdWxkIG5vdCBiZSBlbXB0eS4KLVBBU1M6IFRoZSBpbWFnZSB3
aWR0aCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDJweC4KLVBBU1M6IFRoZSBpbWFnZSBoZWlnaHQg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAycHguCistLSBSdW5uaW5nIHRlc3QgY2FzZTogY29uc29s
ZS5zY3JlZW5zaG90LlN0cmluZy5CYXNlNjQuSW52YWxpZE5vQ29udGVudAorUEFTUzogQ291bGQg
bm90IGNhcHR1cmUgc2NyZWVuc2hvdAogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogY29uc29sZS5z
Y3JlZW5zaG90Lk5vblNjcmVlbnNob3RhYmxlVGFyZ2V0CiBQQVNTOiBUaGUgYWRkZWQgbWVzc2Fn
ZSBzaG91bGQgYmUgYW4gaW1hZ2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS9jb25zb2xlLXNjcmVlbnNob3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtc2NyZWVuc2hvdC5odG1sCmluZGV4IGM5MDgxOGJjMjc5OWNhZWMwZTk4
YWI0ZGVhYmFiZDIyM2RhZDNiY2QuLjM2NzA5OGRlM2IxMDBhOGY5OGMyZTg1ZWM4NzRjMGEzZWJh
NTY3ZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
c2NyZWVuc2hvdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNv
bGUtc2NyZWVuc2hvdC5odG1sCkBAIC0xNDgsMjEgKzE0OCwyNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgZXhwcmVzc2lvbjogYGNvbnNvbGUuc2NyZWVuc2hvdChjcmVhdGVDYW52YXMyRFRl
c3QoKSlgLAogICAgIH0pOwogCisgICAgYWRkVGVzdCh7CisgICAgICAgIG5hbWU6ICJjb25zb2xl
LnNjcmVlbnNob3QuU3RyaW5nLlZhbGlkIiwKKyAgICAgICAgZXhwcmVzc2lvbjogYGNvbnNvbGUu
c2NyZWVuc2hvdCgidGVzdCIpYCwKKyAgICAgICAgc2hvdWxkQ2FwdHVyZVZpZXdwb3J0OiB0cnVl
LAorICAgIH0pOworCiAgICAgYWRkVGVzdCh7CiAgICAgICAgIG5hbWU6ICJjb25zb2xlLnNjcmVl
bnNob3QuU3RyaW5nLkJhc2U2NC5WYWxpZCIsCiAgICAgICAgIGV4cHJlc3Npb246IGBjb25zb2xl
LnNjcmVlbnNob3QoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVn
QUFBQUlBQUFBQ0NBWUFBQUJ5dGcwa0FBQUFBWE5TUjBJQXJzNGM2UUFBQUJOSlJFRlVDQjFqL00v
QUFFUU1ERXdnQWdRQUh4Y0NBbXRBbS9zQUFBQUFTVVZPUks1Q1lJST0iKWAsIC8vIDJ4MiByZWQg
c3F1YXJlCiAgICAgfSk7CiAKICAgICBhZGRUZXN0KHsKLSAgICAgICAgbmFtZTogImNvbnNvbGUu
c2NyZWVuc2hvdC5TdHJpbmcuQmFzZTY0Lk5vQ29udGVudCIsCi0gICAgICAgIGV4cHJlc3Npb246
IGBjb25zb2xlLnNjcmVlbnNob3QoImRhdGE6aW1hZ2UvcG5nO2ExPWIyO2Jhc2U2NCwiKWAsCi0g
ICAgICAgIHNob3VsZENhcHR1cmVWaWV3cG9ydDogdHJ1ZSwKKyAgICAgICAgbmFtZTogImNvbnNv
bGUuc2NyZWVuc2hvdC5TdHJpbmcuQmFzZTY0LkludmFsaWRDb250ZW50IiwKKyAgICAgICAgZXhw
cmVzc2lvbjogYGNvbnNvbGUuc2NyZWVuc2hvdCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LDxJTlZB
TElEPiIpYCwKKyAgICAgICAgc2hvdWxkRXJyb3I6IHRydWUsCiAgICAgfSk7CiAKICAgICBhZGRU
ZXN0KHsKLSAgICAgICAgbmFtZTogImNvbnNvbGUuc2NyZWVuc2hvdC5TdHJpbmcuQmFzZTY0Lklu
dmFsaWQiLAotICAgICAgICBleHByZXNzaW9uOiBgY29uc29sZS5zY3JlZW5zaG90KCJpbnZhbGlk
IilgLAotICAgICAgICBzaG91bGRDYXB0dXJlVmlld3BvcnQ6IHRydWUsCisgICAgICAgIG5hbWU6
ICJjb25zb2xlLnNjcmVlbnNob3QuU3RyaW5nLkJhc2U2NC5JbnZhbGlkTm9Db250ZW50IiwKKyAg
ICAgICAgZXhwcmVzc2lvbjogYGNvbnNvbGUuc2NyZWVuc2hvdCgiZGF0YTppbWFnZS9wbmc7YTE9
YjI7YmFzZTY0LCIpYCwKKyAgICAgICAgc2hvdWxkRXJyb3I6IHRydWUsCiAgICAgfSk7CiAKICAg
ICBhZGRUZXN0KHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376602</attachid>
            <date>2019-08-17 02:04:29 -0700</date>
            <delta_ts>2019-08-19 21:22:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200747-20190817020428.patch</filename>
            <type>text/plain</type>
            <size>16289</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMWY5MWRjNWZhNDM5MWE0ZGY1Y2Q5ZGQwNDViOTkyYjAxN2RhYmFhLi4z
ODkzN2M4ZjgxMWQ3OWEyMjVjM2MwM2ZmY2QxMWVlYjIzMjlmY2JjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTktMDgtMTcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGhhdmUgbW9yZSBhZ2dyZXNzaXZlIGNoZWNrcyBm
b3IgZGF0YVVSTHMgcHJvdmlkZWQgdG8gYGNvbnNvbGUuc2NyZWVuc2hvdGAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDc0NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsd2F5cyBzZW5kIGFueSAvZGF0
YToqKy8gc3RyaW5ncyB0byB0aGUgZnJvbnRlbmQgYW5kIGhhdmUgaXQgcmVuZGVyIHRoZXJlLiBJ
ZiB0aGF0IGRvZXNuJ3QKKyAgICAgICAgd29yaywgaGF2ZSB0aGUgZnJvbnRlbmQgInNwb29mIiBh
biBlcnJvciBtZXNzYWdlIGxvb2sgYW5kIGZlZWwuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS1zY3JlZW5zaG90Lmh0bWwKKworICAgICAgICAqIHBhZ2UvUGFnZUNv
bnNvbGVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVDbGllbnQ6OnNj
cmVlbnNob3QpOgorCiAyMDE5LTA4LTE2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ4NzcyLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggZTFiNDc4MjU2NDljY2I2YjI1YmEwMTViZGM4NGM2ZmM1
MTZjMDY3OC4uOGQzYzA2OThlZjllZGE0MmNiNWQzMmMxNmU0NzAxOGNhYmUwODA0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMDgtMTcgIERldmluIFJv
dXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGhhdmUg
bW9yZSBhZ2dyZXNzaXZlIGNoZWNrcyBmb3IgZGF0YVVSTHMgcHJvdmlkZWQgdG8gYGNvbnNvbGUu
c2NyZWVuc2hvdGAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMDc0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFsd2F5cyBzZW5kIGFueSAvZGF0YToqKy8gc3RyaW5ncyB0byB0aGUgZnJvbnRlbmQgYW5k
IGhhdmUgaXQgcmVuZGVyIHRoZXJlLiBJZiB0aGF0IGRvZXNuJ3QKKyAgICAgICAgd29yaywgaGF2
ZSB0aGUgZnJvbnRlbmQgInNwb29mIiBhbiBlcnJvciBtZXNzYWdlIGxvb2sgYW5kIGZlZWwuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVNZXNzYWdlVmlldy5qczoKKyAg
ICAgICAgKFdJLkNvbnNvbGVNZXNzYWdlVmlldy5wcm90b3R5cGUuX2FwcGVuZE1lc3NhZ2VUZXh0
QW5kQXJndW1lbnRzKToKKworICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qczoKKwogMjAxOS0wOC0xNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFN5bnRheCBIaWdobGlnaHQgbW9y
ZSBDU1MgbWVkaWEgcXVlcmllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50
LmNwcAppbmRleCA4MjQ2YWRjMWExODBiMTM4YTgwMmM1NjQ1NTQzZmZiMmEzZWUyODRhLi45NGQz
NWIzM2JkZDU4M2QzMTgyMDA1NjQ4NDdlYzIxOGQ4ZmY1YmYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcApAQCAtNjQsNyArNjQsNiBAQAogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29sZU1lc3NhZ2UuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvUmVndWxhckV4cHJlc3Npb24uaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3Jp
cHRBcmd1bWVudHMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2su
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CkBA
IC0zODcsMTIgKzM4Niw5IEBAIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OnNjcmVlbnNob3QoSlND
OjpFeGVjU3RhdGUqIHN0YXRlLCBSZWY8U2NyaXB0QXJndW1lbnRzPiYmCiAgICAgICAgICAgICAv
LyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE4MDgzMz4gV2ViIEluc3BlY3Rvcjogc3Vw
cG9ydCBPZmZzY3JlZW5DYW52YXMgZm9yIENhbnZhcyByZWxhdGVkIG9wZXJhdGlvbnMKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIFN0cmluZyBiYXNlNjQ7Ci0gICAgICAgICAgICBpZiAo
cG9zc2libGVUYXJnZXQuZ2V0U3RyaW5nKHN0YXRlLCBiYXNlNjQpKSB7Ci0gICAgICAgICAgICAg
ICAgSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbiByZWdleCgiXmRhdGE6aW1hZ2UvKD86W147
XSs7KStiYXNlNjQsLiskIl9zLCBKU0M6OllhcnI6OlRleHRDYXNlU2Vuc2l0aXZpdHk6OlRleHRD
YXNlSW5zZW5zaXRpdmUpOwotICAgICAgICAgICAgICAgIGlmIChyZWdleC5tYXRjaChiYXNlNjQp
ICE9IC0xKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IHBvc3NpYmxlVGFyZ2V0Owot
ICAgICAgICAgICAgICAgICAgICBkYXRhVVJMID0gYmFzZTY0OwotICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGlmIChwb3NzaWJsZVRhcmdldC5nZXRTdHJpbmcoc3RhdGUsIGJhc2U2NCkg
JiYgYmFzZTY0LnN0YXJ0c1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiZGF0YToiX3MpICYmIGJhc2U2
NC5sZW5ndGgoKSA+IDUpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQgPSBwb3NzaWJsZVRhcmdl
dDsKKyAgICAgICAgICAgICAgICBkYXRhVVJMID0gYmFzZTY0OwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXph
dGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNzExOWY1
MzZiYjBjOThkNWNhYjMwOTFhYzY4N2I4Mzg5MWJhY2NjNC4uM2MyYjY4MWI4MGI3ZmIyZGZlZjBi
YTI3NWUzOWRlNzhlNmU5Yjc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xv
Y2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBA
IC0yOTYsNiArMjk2LDcgQEAgbG9jYWxpemVkU3RyaW5nc1siQ29weSBSdWxlIl0gPSAiQ29weSBS
dWxlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvcHkgU2VsZWN0ZWQiXSA9ICJDb3B5IFNlbGVjdGVk
IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNvcHkgVGFibGUiXSA9ICJDb3B5IFRhYmxlIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkNvcHkgYXMgY1VSTCJdID0gIkNvcHkgYXMgY1VSTCI7Citsb2NhbGl6ZWRT
dHJpbmdzWyJDb3VsZCBub3QgY2FwdHVyZSBzY3JlZW5zaG90Il0gPSAiQ291bGQgbm90IGNhcHR1
cmUgc2NyZWVuc2hvdCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb3VsZCBub3QgZmV0Y2ggcHJvcGVy
dGllcy4gT2JqZWN0IG1heSBubyBsb25nZXIgZXhpc3QuIl0gPSAiQ291bGQgbm90IGZldGNoIHBy
b3BlcnRpZXMuIE9iamVjdCBtYXkgbm8gbG9uZ2VyIGV4aXN0LiI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDb3VudCJdID0gIkNvdW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIkNyZWF0ZSAlcyBSdWxlIl0g
PSAiQ3JlYXRlICVzIFJ1bGUiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VWaWV3LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29uc29sZU1lc3NhZ2VWaWV3LmpzCmluZGV4IGY1
YjA3NDYzNmNlYmE3YjhmZmJmMTIyZGE3ZjI0YTUzYjJlZWRmNWEuLjAzODkwNzJhZGMwYTY3MzRk
ZjBiMzc3MzU2ZjU1ZDZiNjhkMzY4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnNvbGVNZXNzYWdlVmlldy5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db25zb2xlTWVzc2FnZVZpZXcuanMK
QEAgLTMwNSwxMCArMzA1LDEyIEBAIFdJLkNvbnNvbGVNZXNzYWdlVmlldyA9IGNsYXNzIENvbnNv
bGVNZXNzYWdlVmlldyBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgICAgICAgICBjYXNlIFdJLkNv
bnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkltYWdlOiB7CiAgICAgICAgICAgICAgICAgaWYgKHRo
aXMuX21lc3NhZ2UubGV2ZWwgPT09IFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5Mb2cp
IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGRpdmlkZXIgPSBudWxsOworCiAgICAgICAgICAg
ICAgICAgICAgIGlmICh0aGlzLl9tZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoID4gMSkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwZW5kRm9ybWF0dGVkQXJndW1lbnRzKGVsZW1l
bnQsIHRoaXMuX21lc3NhZ2UucGFyYW1ldGVycy5zbGljZSgxKSk7CiAKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIi
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkaXZpZGVyID0gZWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJociIpKTsKICAgICAgICAgICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXQgPSB0aGlzLl9tZXNzYWdlLnBhcmFtZXRl
cnNbMF07CkBAIC0zMTcsNyArMzE5LDcgQEAgV0kuQ29uc29sZU1lc3NhZ2VWaWV3ID0gY2xhc3Mg
Q29uc29sZU1lc3NhZ2VWaWV3IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgICAg
IHRoaXMuX2FwcGVuZEZvcm1hdHRlZEFyZ3VtZW50cyhlbGVtZW50LCBbdGFyZ2V0XSk7CiAKICAg
ICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX21lc3NhZ2UubWVzc2FnZVRleHQpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBpbWcgPSBlbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImltZyIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbWcg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IGltZy5jbGFzc0xpc3QuYWRkKCJzaG93LWdyaWQiKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IGltZy5zcmMgPSB0aGlzLl9tZXNzYWdlLm1lc3NhZ2VUZXh0OwogICAgICAgICAgICAgICAgICAg
ICAgICAgaW1nLnNldEF0dHJpYnV0ZSgiZmlsZW5hbWUiLCBXSS5GaWxlVXRpbGl0aWVzLnNjcmVl
bnNob3RTdHJpbmcoKSArICIucG5nIik7CkBAIC0zMjYsMTMgKzMyOCwzNCBAQCBXSS5Db25zb2xl
TWVzc2FnZVZpZXcgPSBjbGFzcyBDb25zb2xlTWVzc2FnZVZpZXcgZXh0ZW5kcyBXSS5PYmplY3QK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nLndpZHRoID0gaW1nLndpZHRoIC8g
d2luZG93LmRldmljZVBpeGVsUmF0aW87CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWcuaGVpZ2h0ID0gaW1nLmhlaWdo
dCAvIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVsZW1lbnQuYXBwZW5kQ2hpbGQoaW1nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgKGV2
ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5zZXRB
dHRyaWJ1dGUoImRhdGEtbGFiZWxwcmVmaXgiLCBXSS5VSVN0cmluZygiRXJyb3I6ICIpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoImNv
bnNvbGUtZXJyb3ItbGV2ZWwiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9l
bGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImNvbnNvbGUtbG9nLWxldmVsIik7CisKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoZGl2aWRlcikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aGlsZSAoZGl2aWRlci5uZXh0U2libGluZykKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpdmlkZXIubmV4dFNpYmxpbmcucmVtb3ZlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxldCBhcmdzID0gW1dJLlVJU3RyaW5nKCJDb3VsZCBub3QgY2FwdHVyZSBzY3JlZW5zaG90
IiksIHRoaXMuX21lc3NhZ2UubWVzc2FnZVRleHRdOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICh0aGlzLl9leHRyYVBhcmFtZXRlcnMpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFyZ3MgPSBhcmdzLmNvbmNhdCh0aGlzLl9leHRyYVBhcmFtZXRlcnMpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGVuZEZvcm1hdHRlZEFyZ3VtZW50cyhlbGVt
ZW50LCBhcmdzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgICAgICBpZiAodGhpcy5fbWVzc2FnZS5sZXZlbCA9PT0gV0kuQ29uc29sZU1l
c3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBhcmdz
ID0gW3RoaXMuX21lc3NhZ2UubWVzc2FnZVRleHRdOworICAgICAgICAgICAgICAgICAgICBsZXQg
YXJncyA9IFtdOworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fbWVzc2FnZS5tZXNzYWdl
VGV4dCA9PT0gIkNvdWxkIG5vdCBjYXB0dXJlIHNjcmVlbnNob3QiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgYXJncy5wdXNoKFdJLlVJU3RyaW5nKCJDb3VsZCBub3QgY2FwdHVyZSBzY3JlZW5z
aG90IikpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAg
ICBhcmdzLnB1c2godGhpcy5fbWVzc2FnZS5tZXNzYWdlVGV4dCk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmICh0aGlzLl9leHRyYVBhcmFtZXRlcnMpCiAgICAgICAgICAgICAgICAgICAgICAgICBh
cmdzID0gYXJncy5jb25jYXQodGhpcy5fZXh0cmFQYXJhbWV0ZXJzKTsKICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fYXBwZW5kRm9ybWF0dGVkQXJndW1lbnRzKGVsZW1lbnQsIGFyZ3MpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGM5ZDZlZGZkYjczODE4MDQ5YThhNWIxYzZkNjRjMTQ3NWY4ZWY1Y2IuLjdhMDU3NDNkMGRj
NzVjZTBhZDliOGFlZDcwOTNlNGFhMzEyMDhlZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
OS0wOC0xNyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogaGF2ZSBtb3JlIGFnZ3Jlc3NpdmUgY2hlY2tzIGZvciBkYXRhVVJMcyBwcm92
aWRlZCB0byBgY29uc29sZS5zY3JlZW5zaG90YAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXNjcmVlbnNo
b3QuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXNjcmVlbnNob3Qt
ZXhwZWN0ZWQudHh0OgorCiAyMDE5LTA4LTE2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ4NzcyLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1zY3JlZW5z
aG90LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
c2NyZWVuc2hvdC1leHBlY3RlZC50eHQKaW5kZXggZTlkYTRkODZjZDU4NjA1YTIzNzBkYzJjZmQx
NWFhZWQxYmM5MzE2Mi4uZmJkYWQ3NjgzOTBkYjU5NTdiYTA3YmQ2NTI5ZTE4OGY2ZDA5ZTAxNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1zY3JlZW5z
aG90LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLXNjcmVlbnNob3QtZXhwZWN0ZWQudHh0CkBAIC03LDggKzcsMTEgQEAgQ09OU09MRSBNRVNT
QUdFOiBbb2JqZWN0IEhUTUxEaXZFbGVtZW50XQogQ09OU09MRSBNRVNTQUdFOiBbb2JqZWN0IElt
YWdlRGF0YV0KIENPTlNPTEUgTUVTU0FHRTogW29iamVjdCBJbWFnZUJpdG1hcF0KIENPTlNPTEUg
TUVTU0FHRTogW29iamVjdCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRdCi1DT05TT0xFIE1FU1NB
R0U6IGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUlBQUFB
Q0NBWUFBQUJ5dGcwa0FBQUFBWE5TUjBJQXJzNGM2UUFBQUJOSlJFRlVDQjFqL00vQUFFUU1ERXdn
QWdRQUh4Y0NBbXRBbS9zQUFBQUFTVVZPUks1Q1lJST0KIENPTlNPTEUgTUVTU0FHRTogVmlld3Bv
cnQKK0NPTlNPTEUgTUVTU0FHRTogZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFB
QU5TVWhFVWdBQUFBSUFBQUFDQ0FZQUFBQnl0ZzBrQUFBQUFYTlNSMElBcnM0YzZRQUFBQk5KUkVG
VUNCMWovTS9BQUVRTURFd2dBZ1FBSHhjQ0FtdEFtL3NBQUFBQVNVVk9SSzVDWUlJPQorQ09OU09M
RSBNRVNTQUdFOiBkYXRhOmZha2UvbWltZQorQ09OU09MRSBNRVNTQUdFOiBkYXRhOmltYWdlL3Bu
ZztiYXNlNjQsPElOVkFMSUQ+CitDT05TT0xFIE1FU1NBR0U6IGRhdGE6aW1hZ2UvcG5nO2ExPWIy
O2Jhc2U2NCwKIENPTlNPTEUgTUVTU0FHRTogVmlld3BvcnQKIENPTlNPTEUgTUVTU0FHRTogVmll
d3BvcnQKIENPTlNPTEUgTUVTU0FHRTogVmlld3BvcnQKQEAgLTQ3LDcgKzUwLDcgQEAgUEFTUzog
VGhlIGltYWdlIHdpZHRoIHNob3VsZCBiZSAycHguCiBQQVNTOiBUaGUgaW1hZ2UgaGVpZ2h0IHNo
b3VsZCBiZSAycHguCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBjb25zb2xlLnNjcmVlbnNob3Qu
Tm9kZS5EZXRhY2hlZE5vblNjcmVlbnNob3RhYmxlCi1QQVNTOiBDb3VsZCBub3QgY2FwdHVyZSBz
Y3JlZW5zaG90CitQQVNTOiBFcnJvcjogQ291bGQgbm90IGNhcHR1cmUgc2NyZWVuc2hvdAogCiAt
LSBSdW5uaW5nIHRlc3QgY2FzZTogY29uc29sZS5zY3JlZW5zaG90LkltYWdlRGF0YQogUEFTUzog
VGhlIGFkZGVkIG1lc3NhZ2Ugc2hvdWxkIGJlIGFuIGltYWdlLgpAQCAtNjcsMTkgKzcwLDM0IEBA
IFBBU1M6IFRoZSBpbWFnZSBzaG91bGQgbm90IGJlIGVtcHR5LgogUEFTUzogVGhlIGltYWdlIHdp
ZHRoIHNob3VsZCBiZSAycHguCiBQQVNTOiBUaGUgaW1hZ2UgaGVpZ2h0IHNob3VsZCBiZSAycHgu
CiAKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBjb25zb2xlLnNjcmVlbnNob3QuU3RyaW5nLkJhc2U2
NC5WYWxpZAotUEFTUzogVGhlIGFkZGVkIG1lc3NhZ2Ugc2hvdWxkIGJlIGFuIGltYWdlLgotUEFT
UzogVGhlIGltYWdlIHNob3VsZCBub3QgYmUgZW1wdHkuCi1QQVNTOiBUaGUgaW1hZ2Ugd2lkdGgg
c2hvdWxkIGJlIDJweC4KLVBBU1M6IFRoZSBpbWFnZSBoZWlnaHQgc2hvdWxkIGJlIDJweC4KLQot
LS0gUnVubmluZyB0ZXN0IGNhc2U6IGNvbnNvbGUuc2NyZWVuc2hvdC5TdHJpbmcuQmFzZTY0Lk5v
Q29udGVudAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IGNvbnNvbGUuc2NyZWVuc2hvdC5TdHJpbmcu
VmFsaWQKIFBBU1M6IFRoZSBhZGRlZCBtZXNzYWdlIHNob3VsZCBiZSBhbiBpbWFnZS4KIFBBU1M6
IFRoZSBpbWFnZSBzaG91bGQgbm90IGJlIGVtcHR5LgogUEFTUzogVGhlIGltYWdlIHdpZHRoIHNo
b3VsZCBiZSBncmVhdGVyIHRoYW4gMnB4LgogUEFTUzogVGhlIGltYWdlIGhlaWdodCBzaG91bGQg
YmUgZ3JlYXRlciB0aGFuIDJweC4KIAotLS0gUnVubmluZyB0ZXN0IGNhc2U6IGNvbnNvbGUuc2Ny
ZWVuc2hvdC5TdHJpbmcuQmFzZTY0LkludmFsaWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBjb25z
b2xlLnNjcmVlbnNob3QuU3RyaW5nLmRhdGFVUkwuVmFsaWQKK1BBU1M6IFRoZSBhZGRlZCBtZXNz
YWdlIHNob3VsZCBiZSBhbiBpbWFnZS4KK1BBU1M6IFRoZSBpbWFnZSBzaG91bGQgbm90IGJlIGVt
cHR5LgorUEFTUzogVGhlIGltYWdlIHdpZHRoIHNob3VsZCBiZSAycHguCitQQVNTOiBUaGUgaW1h
Z2UgaGVpZ2h0IHNob3VsZCBiZSAycHguCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBjb25zb2xl
LnNjcmVlbnNob3QuU3RyaW5nLmRhdGFVUkwuSW52YWxpZE1JTUUKK1BBU1M6IFRoZSBhZGRlZCBt
ZXNzYWdlIHNob3VsZCBiZSBhbiBpbWFnZS4KK1BBU1M6IFRoZSBpbWFnZSBzaG91bGQgbm90IGJl
IGVtcHR5LgorUEFTUzogVGhlIGltYWdlIHNob3VsZCBub3QgbG9hZC4KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IGNvbnNvbGUuc2NyZWVuc2hvdC5TdHJpbmcuZGF0YVVSTC5JbnZhbGlkQ29udGVu
dAorUEFTUzogVGhlIGFkZGVkIG1lc3NhZ2Ugc2hvdWxkIGJlIGFuIGltYWdlLgorUEFTUzogVGhl
IGltYWdlIHNob3VsZCBub3QgYmUgZW1wdHkuCitQQVNTOiBUaGUgaW1hZ2Ugc2hvdWxkIG5vdCBs
b2FkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogY29uc29sZS5zY3JlZW5zaG90LlN0cmluZy5k
YXRhVVJMLkludmFsaWROb0NvbnRlbnQKK1BBU1M6IFRoZSBhZGRlZCBtZXNzYWdlIHNob3VsZCBi
ZSBhbiBpbWFnZS4KK1BBU1M6IFRoZSBpbWFnZSBzaG91bGQgbm90IGJlIGVtcHR5LgorUEFTUzog
VGhlIGltYWdlIHNob3VsZCBub3QgbG9hZC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IGNvbnNv
bGUuc2NyZWVuc2hvdC5TdHJpbmcuZGF0YVVSTC5WYWxpZE5vQ29udGVudAogUEFTUzogVGhlIGFk
ZGVkIG1lc3NhZ2Ugc2hvdWxkIGJlIGFuIGltYWdlLgogUEFTUzogVGhlIGltYWdlIHNob3VsZCBu
b3QgYmUgZW1wdHkuCiBQQVNTOiBUaGUgaW1hZ2Ugd2lkdGggc2hvdWxkIGJlIGdyZWF0ZXIgdGhh
biAycHguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LXNjcmVlbnNob3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
c2NyZWVuc2hvdC5odG1sCmluZGV4IGM5MDgxOGJjMjc5OWNhZWMwZTk4YWI0ZGVhYmFiZDIyM2Rh
ZDNiY2QuLjZkZjdkNGI2YjFhYmM3YTkyYzEwOGQ1MTMzYzhlOGE5ODJhNTM4OGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtc2NyZWVuc2hvdC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtc2NyZWVuc2hvdC5o
dG1sCkBAIC03NiwyMCArNzYsMzAgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAg
bGV0IHttZXNzYWdlfSA9IGV2ZW50LmRhdGE7CiAKICAgICAgICAgICAgICAgICBpZiAobWVzc2Fn
ZS5sZXZlbCA9PT0gV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChzaG91bGRFcnJvciwgbWVz
c2FnZS5tZXNzYWdlVGV4dCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChzaG91bGRFcnJvciwgIkVycm9yOiAiICsgbWVzc2FnZS5tZXNzYWdlVGV4dCk7CiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG1lc3NhZ2UudHlwZSwgV0kuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZVR5cGUuSW1hZ2UsICJUaGUgYWRkZWQgbWVzc2FnZSBzaG91bGQgYmUg
YW4gaW1hZ2UuIik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFcXVh
bChtZXNzYWdlLm1lc3NhZ2VUZXh0LCAiZGF0YToiLCAiVGhlIGltYWdlIHNob3VsZCBub3QgYmUg
ZW1wdHkuIik7CiAKLSAgICAgICAgICAgICAgICBsZXQgaW1nID0gYXdhaXQgV0kuSW1hZ2VVdGls
aXRpZXMucHJvbWlzaWZ5TG9hZChtZXNzYWdlLm1lc3NhZ2VUZXh0KTsKLSAgICAgICAgICAgICAg
ICBpZiAoc2hvdWxkQ2FwdHVyZVZpZXdwb3J0KSB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0R3JlYXRlclRoYW4oaW1nLndpZHRoLCAyLCAiVGhlIGltYWdlIHdpZHRo
IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMnB4LiIpOwotICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEdyZWF0ZXJUaGFuKGltZy5oZWlnaHQsIDIsICJUaGUgaW1hZ2UgaGVp
Z2h0IHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMnB4LiIpOwotICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoaW1nLndp
ZHRoLCAyLCAiVGhlIGltYWdlIHdpZHRoIHNob3VsZCBiZSAycHguIik7Ci0gICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoaW1nLmhlaWdodCwgMiwgIlRoZSBpbWFn
ZSBoZWlnaHQgc2hvdWxkIGJlIDJweC4iKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAg
ICAgICAgICAgICAgICBsZXQgaW1hZ2UgPSBuZXcgSW1hZ2U7CisgICAgICAgICAgICAgICAgICAg
IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCByZXNvbHZlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgcmVqZWN0
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlLnNyYyA9IG1lc3NhZ2UubWVzc2FnZVRl
eHQ7CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgICAgIGlmIChz
aG91bGRDYXB0dXJlVmlld3BvcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0R3JlYXRlclRoYW4oaW1hZ2Uud2lkdGgsIDIsICJUaGUgaW1hZ2Ugd2lkdGgg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAycHguIik7CisgICAgICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEdyZWF0ZXJUaGFuKGltYWdlLmhlaWdodCwgMiwgIlRoZSBpbWFn
ZSBoZWlnaHQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAycHguIik7CisgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKGltYWdlLndpZHRoLCAyLCAiVGhlIGltYWdlIHdpZHRoIHNob3VsZCBiZSAycHguIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGltYWdl
LmhlaWdodCwgMiwgIlRoZSBpbWFnZSBoZWlnaHQgc2hvdWxkIGJlIDJweC4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggeworICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoc2hvdWxkRXJyb3IsICJUaGUgaW1hZ2Ugc2hv
dWxkIG5vdCBsb2FkLiIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sCiAgICAg
ICAgIH0pOwpAQCAtMTQ5LDE5ICsxNTksMzcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfSk7CiAK
ICAgICBhZGRUZXN0KHsKLSAgICAgICAgbmFtZTogImNvbnNvbGUuc2NyZWVuc2hvdC5TdHJpbmcu
QmFzZTY0LlZhbGlkIiwKLSAgICAgICAgZXhwcmVzc2lvbjogYGNvbnNvbGUuc2NyZWVuc2hvdCgi
ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBSUFBQUFDQ0FZ
QUFBQnl0ZzBrQUFBQUFYTlNSMElBcnM0YzZRQUFBQk5KUkVGVUNCMWovTS9BQUVRTURFd2dBZ1FB
SHhjQ0FtdEFtL3NBQUFBQVNVVk9SSzVDWUlJPSIpYCwgLy8gMngyIHJlZCBzcXVhcmUKLSAgICB9
KTsKLQotICAgIGFkZFRlc3QoewotICAgICAgICBuYW1lOiAiY29uc29sZS5zY3JlZW5zaG90LlN0
cmluZy5CYXNlNjQuTm9Db250ZW50IiwKLSAgICAgICAgZXhwcmVzc2lvbjogYGNvbnNvbGUuc2Ny
ZWVuc2hvdCgiZGF0YTppbWFnZS9wbmc7YTE9YjI7YmFzZTY0LCIpYCwKKyAgICAgICAgbmFtZTog
ImNvbnNvbGUuc2NyZWVuc2hvdC5TdHJpbmcuVmFsaWQiLAorICAgICAgICBleHByZXNzaW9uOiBg
Y29uc29sZS5zY3JlZW5zaG90KCJ0ZXN0IilgLAogICAgICAgICBzaG91bGRDYXB0dXJlVmlld3Bv
cnQ6IHRydWUsCiAgICAgfSk7CiAKICAgICBhZGRUZXN0KHsKLSAgICAgICAgbmFtZTogImNvbnNv
bGUuc2NyZWVuc2hvdC5TdHJpbmcuQmFzZTY0LkludmFsaWQiLAotICAgICAgICBleHByZXNzaW9u
OiBgY29uc29sZS5zY3JlZW5zaG90KCJpbnZhbGlkIilgLAorICAgICAgICBuYW1lOiAiY29uc29s
ZS5zY3JlZW5zaG90LlN0cmluZy5kYXRhVVJMLlZhbGlkIiwKKyAgICAgICAgZXhwcmVzc2lvbjog
YGNvbnNvbGUuc2NyZWVuc2hvdCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFB
QU5TVWhFVWdBQUFBSUFBQUFDQ0FZQUFBQnl0ZzBrQUFBQUFYTlNSMElBcnM0YzZRQUFBQk5KUkVG
VUNCMWovTS9BQUVRTURFd2dBZ1FBSHhjQ0FtdEFtL3NBQUFBQVNVVk9SSzVDWUlJPSIpYCwgLy8g
MngyIHJlZCBzcXVhcmUKKyAgICB9KTsKKworICAgIGFkZFRlc3QoeworICAgICAgICBuYW1lOiAi
Y29uc29sZS5zY3JlZW5zaG90LlN0cmluZy5kYXRhVVJMLkludmFsaWRNSU1FIiwKKyAgICAgICAg
ZXhwcmVzc2lvbjogYGNvbnNvbGUuc2NyZWVuc2hvdCgiZGF0YTpmYWtlL21pbWUiKWAsCisgICAg
ICAgIHNob3VsZEVycm9yOiB0cnVlLAorICAgIH0pOworCisgICAgYWRkVGVzdCh7CisgICAgICAg
IG5hbWU6ICJjb25zb2xlLnNjcmVlbnNob3QuU3RyaW5nLmRhdGFVUkwuSW52YWxpZENvbnRlbnQi
LAorICAgICAgICBleHByZXNzaW9uOiBgY29uc29sZS5zY3JlZW5zaG90KCJkYXRhOmltYWdlL3Bu
ZztiYXNlNjQsPElOVkFMSUQ+IilgLAorICAgICAgICBzaG91bGRFcnJvcjogdHJ1ZSwKKyAgICB9
KTsKKworICAgIGFkZFRlc3QoeworICAgICAgICBuYW1lOiAiY29uc29sZS5zY3JlZW5zaG90LlN0
cmluZy5kYXRhVVJMLkludmFsaWROb0NvbnRlbnQiLAorICAgICAgICBleHByZXNzaW9uOiBgY29u
c29sZS5zY3JlZW5zaG90KCJkYXRhOmltYWdlL3BuZzthMT1iMjtiYXNlNjQsIilgLAorICAgICAg
ICBzaG91bGRFcnJvcjogdHJ1ZSwKKyAgICB9KTsKKworICAgIGFkZFRlc3QoeworICAgICAgICBu
YW1lOiAiY29uc29sZS5zY3JlZW5zaG90LlN0cmluZy5kYXRhVVJMLlZhbGlkTm9Db250ZW50IiwK
KyAgICAgICAgZXhwcmVzc2lvbjogYGNvbnNvbGUuc2NyZWVuc2hvdCgiZGF0YToiKWAsCiAgICAg
ICAgIHNob3VsZENhcHR1cmVWaWV3cG9ydDogdHJ1ZSwKICAgICB9KTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>