<?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>68803</bug_id>
          
          <creation_ts>2011-09-26 08:03:30 -0700</creation_ts>
          <short_desc>Make NavigationAction wrap a ResourceRequest instead of a KURL.</short_desc>
          <delta_ts>2013-04-02 14:58:24 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>473105</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-09-26 08:03:30 -0700</bug_when>
    <thetext>When asking the FrameLoaderClient to create a new page, pass along the ResourceRequest we intend to use to load that frame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473106</commentid>
    <comment_count>1</comment_count>
      <attachid>108668</attachid>
    <who name="">jochen</who>
    <bug_when>2011-09-26 08:04:42 -0700</bug_when>
    <thetext>Created attachment 108668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473208</commentid>
    <comment_count>2</comment_count>
      <attachid>108668</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-09-26 11:01:28 -0700</bug_when>
    <thetext>Comment on attachment 108668
Patch

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

&gt; Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp:860
&gt; +Frame* FrameLoaderClientImpl::dispatchCreatePage(const NavigationAction&amp; action, const ResourceRequest&amp; request)

NavigationAction has an URL.  perhaps the NavigationAction should hold a ResourceRequest instead?  maybe it should hold a FrameLoadRequest?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473214</commentid>
    <comment_count>3</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-09-26 11:08:06 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 108668 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108668&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp:860
&gt; &gt; +Frame* FrameLoaderClientImpl::dispatchCreatePage(const NavigationAction&amp; action, const ResourceRequest&amp; request)
&gt; 
&gt; NavigationAction has an URL.  perhaps the NavigationAction should hold a ResourceRequest instead?  maybe it should hold a FrameLoadRequest?

in chromium&apos;s FrameLoaderClientImpl, we create a FrameLoadRequest, so FrameLoadRequest sounds like a  viable alternative</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473664</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-26 20:36:41 -0700</bug_when>
    <thetext>Could you please provide a rationale for this change?

It seems confusing to pass arguments with overlapping data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473888</commentid>
    <comment_count>5</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-09-27 06:03:02 -0700</bug_when>
    <thetext>The issue I&apos;m trying to fix is that of you click on a link with target=_blank, ChromeClient::createWindow with a FrameLoadRequest holding a ResourceRequest is eventually called (in the chromium port at least). When you middle click on the same link, ChromeClient::createWindow is called with a FrameLoadRequest with an empty ResourceRequest, so some of the checks we&apos;ve put in createWindow don&apos;t work.

I wasn&apos;t aware that NavigationAction already holds the URL, so I guess the easiest way to fix this is to create a resource request from the navigation action&apos;s url inside the chromium port before calling createWindow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473896</commentid>
    <comment_count>6</comment_count>
      <attachid>108835</attachid>
    <who name="">jochen</who>
    <bug_when>2011-09-27 06:18:39 -0700</bug_when>
    <thetext>Created attachment 108835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483270</commentid>
    <comment_count>7</comment_count>
      <attachid>108835</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-13 10:18:32 -0700</bug_when>
    <thetext>Comment on attachment 108835
Patch

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

&gt; Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp:864
&gt; +        m_webFrame-&gt;frame(), FrameLoadRequest(m_webFrame-&gt;frame()-&gt;document()-&gt;securityOrigin(), ResourceRequest(action.url())),

what if we are opening a new page as a result of a form POST submission?  the ResourceRequest
generated here will say GET even though it is actually a POST.  maybe that won&apos;t cause you
any problems for your use case, but it might lead to bugs in the future.

it seems like it would be ideal if the NavigationAction held the actual ResourceRequest.

also, reading FrameLoader.cpp, i see that the createWindow function defined in there
calls Chrome::createWindow passing an empty NavigationAction.  the url property was
not set.  is that going to cause you a problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483384</commentid>
    <comment_count>8</comment_count>
      <attachid>110887</attachid>
    <who name="">jochen</who>
    <bug_when>2011-10-13 12:22:51 -0700</bug_when>
    <thetext>Created attachment 110887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483419</commentid>
    <comment_count>9</comment_count>
      <attachid>110887</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-13 13:03:48 -0700</bug_when>
    <thetext>Comment on attachment 110887
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:3095
&gt; +        ResourceRequest requestForOriginalURL(request);

I guess this one could be slightly lossy, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483420</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-13 13:04:30 -0700</bug_when>
    <thetext>Nate and Adam may also have opinions about this approach.  I&apos;m supportive as I think this leads to a cleaner solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483422</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-13 13:08:03 -0700</bug_when>
    <thetext>I looked at the patch briefly.  The general approach of using ResourceRequest in more places instead of KURL seems like a good idea.  Nate made a similar change to CachedResourceLoader, which has had a bunch of good effects.  I&apos;m secretly hoping Nate would be willing to review this patch.  If not, I can take a closer look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483424</commentid>
    <comment_count>12</comment_count>
      <attachid>110887</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-13 13:10:51 -0700</bug_when>
    <thetext>Comment on attachment 110887
Patch

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

&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:3095
&gt;&gt; +        ResourceRequest requestForOriginalURL(request);
&gt; 
&gt; I guess this one could be slightly lossy, right?

Nevermind.  I overlooked the fact that you are initializing requestForOriginalURL with the copy constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483440</commentid>
    <comment_count>13</comment_count>
      <attachid>110887</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-10-13 13:38:28 -0700</bug_when>
    <thetext>Comment on attachment 110887
Patch

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

This seems good in general, I just have a couple questions....

Is it possible to test this via layout test?

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:260
&gt;  Page* ChromeClientImpl::createWindow(
&gt; -    Frame* frame, const FrameLoadRequest&amp; r, const WindowFeatures&amp; features, const NavigationAction&amp;)
&gt; +    Frame* frame, const FrameLoadRequest&amp; r, const WindowFeatures&amp; features, const NavigationAction&amp; action)
&gt;  {

Is there any chance we could just remove the FrameLoadRequest parameter altogether?  It looks like chromium and webkit2 are the only ChromeClient implementations that use it, and chromium is the only one that uses it for anything other than the ResourceRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483441</commentid>
    <comment_count>14</comment_count>
      <attachid>110887</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-13 13:39:04 -0700</bug_when>
    <thetext>Comment on attachment 110887
Patch

Attachment 110887 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10068090

New failing tests:
fast/loader/scroll-position-restored-on-back-non-cached.html
http/tests/navigation/postredirect-goback1.html
fast/loader/scroll-position-restored-on-back.html
http/tests/navigation/postredirect-frames-goback1.html
fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html
fast/loader/stateobjects/document-destroyed-navigate-back.html
fast/history/history-replace-updates-current-item.html
fast/history/location-replace-hash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484108</commentid>
    <comment_count>15</comment_count>
      <attachid>111034</attachid>
    <who name="">jochen</who>
    <bug_when>2011-10-14 11:34:00 -0700</bug_when>
    <thetext>Created attachment 111034
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484113</commentid>
    <comment_count>16</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-10-14 11:35:39 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 110887 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=110887&amp;action=review
&gt; 
&gt; This seems good in general, I just have a couple questions....
&gt; 
&gt; Is it possible to test this via layout test?

done

&gt; 
&gt; &gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:260
&gt; &gt;  Page* ChromeClientImpl::createWindow(
&gt; &gt; -    Frame* frame, const FrameLoadRequest&amp; r, const WindowFeatures&amp; features, const NavigationAction&amp;)
&gt; &gt; +    Frame* frame, const FrameLoadRequest&amp; r, const WindowFeatures&amp; features, const NavigationAction&amp; action)
&gt; &gt;  {
&gt; 
&gt; Is there any chance we could just remove the FrameLoadRequest parameter altogether?  It looks like chromium and webkit2 are the only ChromeClient implementations that use it, and chromium is the only one that uses it for anything other than the ResourceRequest.

we&apos;d need a way to get the frame name to createWindow (it&apos;s sometimes set to e.g. _blank), so we&apos;d need an additional parameter if we drop the frame load request. Not sure whether that&apos;s worthwhile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484187</commentid>
    <comment_count>17</comment_count>
      <attachid>111034</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-14 12:38:14 -0700</bug_when>
    <thetext>Comment on attachment 111034
Patch

Attachment 111034 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10062593

New failing tests:
fast/loader/scroll-position-restored-on-back-non-cached.html
http/tests/navigation/postredirect-goback1.html
fast/loader/scroll-position-restored-on-back.html
http/tests/navigation/postredirect-frames-goback1.html
fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html
fast/loader/stateobjects/document-destroyed-navigate-back.html
fast/history/history-replace-updates-current-item.html
fast/history/location-replace-hash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484410</commentid>
    <comment_count>18</comment_count>
      <attachid>111109</attachid>
    <who name="">jochen</who>
    <bug_when>2011-10-14 16:55:04 -0700</bug_when>
    <thetext>Created attachment 111109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484411</commentid>
    <comment_count>19</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-10-14 16:56:02 -0700</bug_when>
    <thetext>Now without layout tests failures (I hope)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484915</commentid>
    <comment_count>20</comment_count>
      <attachid>111109</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-10-16 22:05:36 -0700</bug_when>
    <thetext>Comment on attachment 111109
Patch

Attachment 111109 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/10077816</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485256</commentid>
    <comment_count>21</comment_count>
      <attachid>111109</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-10-17 10:34:10 -0700</bug_when>
    <thetext>Comment on attachment 111109
Patch

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

&gt; Tools/DumpRenderTree/chromium/WebViewHost.cpp:246
&gt; -WebView* WebViewHost::createView(WebFrame*, const WebURLRequest&amp;, const WebWindowFeatures&amp;, const WebString&amp;)
&gt; +WebView* WebViewHost::createView(WebFrame*, const WebURLRequest&amp; request, const WebWindowFeatures&amp;, const WebString&amp;)
&gt;  {
&gt;      if (!layoutTestController()-&gt;canOpenWindows())
&gt;          return 0;
&gt; +    if (layoutTestController()-&gt;shouldDumpCreateView())
&gt; +        fprintf(stdout, &quot;createView(%s)\n&quot;, URLDescription(request.url()).c_str());
&gt;      return m_shell-&gt;createNewWindow(WebURL())-&gt;webView();

Is this test something that should be run on all platforms?  As written this is going to fail on everything but chromium, so we should either make it cross-platform or make it clear thaqt it is expected to fail for everyone else (i.e., move it to LayoutTests/platform/chromium/fast/loader/).

Sorry for not asking about this sooner :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485261</commentid>
    <comment_count>22</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-10-17 10:38:16 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 111109 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111109&amp;action=review
&gt; 
&gt; &gt; Tools/DumpRenderTree/chromium/WebViewHost.cpp:246
&gt; &gt; -WebView* WebViewHost::createView(WebFrame*, const WebURLRequest&amp;, const WebWindowFeatures&amp;, const WebString&amp;)
&gt; &gt; +WebView* WebViewHost::createView(WebFrame*, const WebURLRequest&amp; request, const WebWindowFeatures&amp;, const WebString&amp;)
&gt; &gt;  {
&gt; &gt;      if (!layoutTestController()-&gt;canOpenWindows())
&gt; &gt;          return 0;
&gt; &gt; +    if (layoutTestController()-&gt;shouldDumpCreateView())
&gt; &gt; +        fprintf(stdout, &quot;createView(%s)\n&quot;, URLDescription(request.url()).c_str());
&gt; &gt;      return m_shell-&gt;createNewWindow(WebURL())-&gt;webView();
&gt; 
&gt; Is this test something that should be run on all platforms?  As written this is going to fail on everything but chromium, so we should either make it cross-platform or make it clear thaqt it is expected to fail for everyone else (i.e., move it to LayoutTests/platform/chromium/fast/loader/).
&gt; 
&gt; Sorry for not asking about this sooner :(

I don&apos;t think that test makes sense for other platforms, as the other ports don&apos;t necessarily implement dispatchCreatePage the way chromium does.

The test is already in the platform/chromium/fast/loader directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485268</commentid>
    <comment_count>23</comment_count>
      <attachid>111109</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-10-17 10:45:26 -0700</bug_when>
    <thetext>Comment on attachment 111109
Patch

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

r+, please just verify that this isn&apos;t going to compile break mac before landing.

&gt;&gt;&gt; Tools/DumpRenderTree/chromium/WebViewHost.cpp:246

&gt;&gt; 
&gt;&gt; Is this test something that should be run on all platforms?  As written this is going to fail on everything but chromium, so we should either make it cross-platform or make it clear thaqt it is expected to fail for everyone else (i.e., move it to LayoutTests/platform/chromium/fast/loader/).
&gt;&gt; 
&gt;&gt; Sorry for not asking about this sooner :(
&gt; 
&gt; I don&apos;t think that test makes sense for other platforms, as the other ports don&apos;t necessarily implement dispatchCreatePage the way chromium does.
&gt; 
&gt; The test is already in the platform/chromium/fast/loader directory

So it is.  Sorry for my apparent blindness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485445</commentid>
    <comment_count>24</comment_count>
      <attachid>111309</attachid>
    <who name="">jochen</who>
    <bug_when>2011-10-17 13:21:47 -0700</bug_when>
    <thetext>Created attachment 111309
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485760</commentid>
    <comment_count>25</comment_count>
      <attachid>111309</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 20:21:00 -0700</bug_when>
    <thetext>Comment on attachment 111309
Patch

Rejecting attachment 111309 from commit-queue.

New failing tests:
plugins/access-after-page-destroyed.html
Full output: http://queues.webkit.org/results/10116121</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485770</commentid>
    <comment_count>26</comment_count>
      <attachid>111309</attachid>
    <who name="">jochen</who>
    <bug_when>2011-10-17 20:44:17 -0700</bug_when>
    <thetext>Comment on attachment 111309
Patch

doesn&apos;t fail locally, try again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485789</commentid>
    <comment_count>27</comment_count>
      <attachid>111309</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 21:46:15 -0700</bug_when>
    <thetext>Comment on attachment 111309
Patch

Clearing flags on attachment: 111309

Committed r97716: &lt;http://trac.webkit.org/changeset/97716&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485790</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 21:46:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485833</commentid>
    <comment_count>29</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-17 23:23:26 -0700</bug_when>
    <thetext>Follow-up change: http://trac.webkit.org/changeset/97722</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486010</commentid>
    <comment_count>30</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-10-18 06:42:45 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Follow-up change: http://trac.webkit.org/changeset/97722

doh

thx for fixing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868230</commentid>
    <comment_count>31</comment_count>
      <attachid>111309</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-02 14:00:05 -0700</bug_when>
    <thetext>Comment on attachment 111309
Patch

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

&gt; LayoutTests/ChangeLog:10
&gt; +        * platform/chromium/fast/loader/create-view-target-blank-expected.txt: Added.
&gt; +        * platform/chromium/fast/loader/create-view-target-blank.html: Added.
&gt; +        * platform/chromium/fast/loader/resources/done.html: Added.

Why is this a Chromium test? This looks like a completely cross-port thing to test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868246</commentid>
    <comment_count>32</comment_count>
    <who name="">jochen</who>
    <bug_when>2013-04-02 14:28:48 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 111309 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111309&amp;action=review
&gt; 
&gt; &gt; LayoutTests/ChangeLog:10
&gt; &gt; +        * platform/chromium/fast/loader/create-view-target-blank-expected.txt: Added.
&gt; &gt; +        * platform/chromium/fast/loader/create-view-target-blank.html: Added.
&gt; &gt; +        * platform/chromium/fast/loader/resources/done.html: Added.
&gt; 
&gt; Why is this a Chromium test? This looks like a completely cross-port thing to test.

it requires changing the plumbing of all other ports to pass through the navigation action&apos;s resource request. e.g. wk2 creates a new frame load request (with an empty resource request) to open the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868267</commentid>
    <comment_count>33</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-02 14:58:24 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; &gt; (From update of attachment 111309 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111309&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/ChangeLog:10
&gt; &gt; &gt; +        * platform/chromium/fast/loader/create-view-target-blank-expected.txt: Added.
&gt; &gt; &gt; +        * platform/chromium/fast/loader/create-view-target-blank.html: Added.
&gt; &gt; &gt; +        * platform/chromium/fast/loader/resources/done.html: Added.
&gt; &gt; 
&gt; &gt; Why is this a Chromium test? This looks like a completely cross-port thing to test.
&gt; 
&gt; it requires changing the plumbing of all other ports to pass through the navigation action&apos;s resource request. e.g. wk2 creates a new frame load request (with an empty resource request) to open the page.

I understand the patch does that. But why is the test Chromium specific?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108668</attachid>
            <date>2011-09-26 08:04:42 -0700</date>
            <delta_ts>2011-09-27 06:18:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68803-20110926170438.patch</filename>
            <type>text/plain</type>
            <size>25822</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU5NTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOWM1MTVhMDVmOGY3YzU2
OGViYTY1MDZmMTdkYTJmMzY0NTFhYWFlLi44Y2UwZDUwNjkxNTJkNGQ5NjNjMTJjYmZiODc2YTFk
MGZkYTc4MDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDktMjYgIEpvY2hl
biBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2hlbiBhc2tpbmcg
dGhlIEZyYW1lTG9hZGVyQ2xpZW50IHRvIGNyZWF0ZSBhIG5ldyBwYWdlLCBwYXNzIGFsb25nIHRo
ZSBSZXNvdXJjZVJlcXVlc3Qgd2UgaW50ZW5kIHRvIHVzZSB0byBsb2FkIHRoYXQgZnJhbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODAzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaENyZWF0ZVBhZ2UpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQ
b2xpY3kpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDExLTA5
LTI2ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVu
dXNlZCB2YXJpYWJsZSBpbiBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZE5ldHdvcmtSZXF1ZXN0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDdmOTU1NWNiOWNkNTJmNWRm
NDdmMmU3NGY3Yjc4MDI0NWNjY2Y3MjIuLmE5NDQ2YTY2MDJlMGFjOWMxOWRkNTI3MmNkMzUyMjUx
NWI1YzUzODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTI5MCw3ICsy
OTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmlyc3RMYXlvdXQo
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXQoKSB7IH0KIAotICAgIHZpcnR1YWwgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJikgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgRnJhbWUqIGRp
c3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JikgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKSB7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZy
YW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGJh
YWYyMDJhOWM1YTc4ZmM3NjA5YTZlMzQ4NTA0ZTA5YTVhMTljMjUuLjEzZjY3MGMzMDUzZGQ5ZGM1
MTRhMzkwNDExMmU2OTc3MDAzYzcwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcApAQCAtMjg4MCw3ICsyODgwLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2Fk
QWZ0ZXJOZXdXaW5kb3dQb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXMKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fZnJhbWU7Ci0gICAgUmVm
UHRyPEZyYW1lPiBtYWluRnJhbWUgPSBtX2NsaWVudC0+ZGlzcGF0Y2hDcmVhdGVQYWdlKGFjdGlv
bik7CisgICAgUmVmUHRyPEZyYW1lPiBtYWluRnJhbWUgPSBtX2NsaWVudC0+ZGlzcGF0Y2hDcmVh
dGVQYWdlKGFjdGlvbiwgcmVxdWVzdCk7CiAgICAgaWYgKCFtYWluRnJhbWUpCiAgICAgICAgIHJl
dHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBh
OWQ0ZWQxMWExMmIzNzRlZjk4YzY3NGJlMzY3ZGJjZjNkMTJhNWI0Li5kZDVkMWE0NTZjYTUzMDhi
MzY4OTQxODhmZTk0Y2RiYmYxZTg2OGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaApAQCAtMTU5LDcgKzE1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
KCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRMYXlvdXQoKSB7IH0KIAot
ICAgICAgICB2aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYpID0gMDsKKyAgICAgICAgdmlydHVhbCBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdl
KGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSA9IDA7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKSA9IDA7CiAKICAgICAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVQb2xpY3lGdW5jdGlv
biwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMzQyOWE2NWM5MTcwYWU3ZGI5OWNhOTljOWFh
ZmY5YzBiZGYzNTlkZC4uZGVkODVmODM4NzZiZTQzYzk5ZThlYzEyOTNkODk3MmY1M2YwMDRkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wOS0yNiAg
Sm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBXaGVuIGFz
a2luZyB0aGUgRnJhbWVMb2FkZXJDbGllbnQgdG8gY3JlYXRlIGEgbmV3IHBhZ2UsIHBhc3MgYWxv
bmcgdGhlIFJlc291cmNlUmVxdWVzdCB3ZSBpbnRlbmQgdG8gdXNlIHRvIGxvYWQgdGhhdCBmcmFt
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MDMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9G
cmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNs
aWVudEltcGw6OmRpc3BhdGNoQ3JlYXRlUGFnZSk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5oOgorCiAyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJD
bGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5jcHAKaW5kZXggNTdiZjU2ZjNhOTJkNzc0ZGI1MGJmYTkyNTUxYTNhOTdkM2U2ZmM0
Yi4uYjQxNDU1ZDdiYjUyYjNkOTNiYjQwZmNhMmJiNmRkMzBhOGY3ZGZmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCkBA
IC04NTcsMTEgKzg1NywxMSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlzcGF0Y2hE
aWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoKQogICAgICAgICBtX3dlYkZyYW1lLT5jbGll
bnQoKS0+ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KG1fd2ViRnJhbWUpOwogfQogCi1G
cmFtZSogRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYgYWN0aW9uKQorRnJhbWUqIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlz
cGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIHN0cnVjdCBXaW5kb3dGZWF0dXJlcyBmZWF0
dXJlczsKICAgICBQYWdlKiBuZXdQYWdlID0gbV93ZWJGcmFtZS0+ZnJhbWUoKS0+cGFnZSgpLT5j
aHJvbWUoKS0+Y3JlYXRlV2luZG93KAotICAgICAgICBtX3dlYkZyYW1lLT5mcmFtZSgpLCBGcmFt
ZUxvYWRSZXF1ZXN0KG1fd2ViRnJhbWUtPmZyYW1lKCktPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCkpLAorICAgICAgICBtX3dlYkZyYW1lLT5mcmFtZSgpLCBGcmFtZUxvYWRSZXF1ZXN0KG1f
d2ViRnJhbWUtPmZyYW1lKCktPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHJlcXVlc3Qp
LAogICAgICAgICBmZWF0dXJlcywgYWN0aW9uKTsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdl
IGhhdmUgYSB2YWxpZCBkaXNwb3NpdGlvbi4gIFRoaXMgc2hvdWxkIGhhdmUgYmVlbiBzZXQgaW4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50
SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBs
LmgKaW5kZXggMjQ4ZWRkNTcxYmFlNmMwNzk4OGE2NDAwM2ViMzdkZjJmMjgyMmVkZS4uOTM5NGEx
Yzg5OWE5ODhiNDQ2YWU5NzNiYzFiZmYzZDMxOTEwMTIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKQEAgLTEwOSw3ICsxMDks
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpcnN0TGF5b3V0KCk7CiAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KCk7Ci0gICAgdmlydHVh
bCBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmln
YXRpb25BY3Rpb24mKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0
ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24gZnVuY3Rpb24sIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mIGFjdGlv
biwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQYXNzUmVmUHRyPFdl
YkNvcmU6OkZvcm1TdGF0ZT4gZm9ybV9zdGF0ZSwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lX25h
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDY0N2IwYzBhNzhiZDQ1MmRjZmQ3NGY3NGZkYThhNGQ4
ZTJkOTZkNWIuLjQ0YTU5NzEzZjBlOTk5ZTcxNjI0YTQ3ZDM2Njg2ZGI1MGNlZmIxMmUgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wOS0yNiAgSm9jaGVuIEVpc2luZ2Vy
ICA8am9jaGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBXaGVuIGFza2luZyB0aGUgRnJhbWVM
b2FkZXJDbGllbnQgdG8gY3JlYXRlIGEgbmV3IHBhZ2UsIHBhc3MgYWxvbmcgdGhlIFJlc291cmNl
UmVxdWVzdCB3ZSBpbnRlbmQgdG8gdXNlIHRvIGxvYWQgdGhhdCBmcmFtZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpkaXNwYXRjaENyZWF0ZVBhZ2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmg6CisKIDIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggYjJjY2NhYTUwYTU0NzIzNjk3OWJlZjFl
M2M2ZDdhNDAxMjYxZWFhMy4uMDAxMjllZWE5YmMzZjUzN2I4NTMwYmRmNTQwYWI4NjFmZGU2YTM2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtODc2LDcgKzg3Niw3IEBAIGJvb2wgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmNhbkNhY2hlUGFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1GcmFtZSogRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJikKK0ZyYW1lKiBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hD
cmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KQogewogICAgIGlmICghbV92aWV3KQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCmlu
ZGV4IDVhNTZiYjEwMWM4NDk3YzgwNjk4NmNmOWQ2ODg4MDY1MDkzMGRkM2MuLmI2ZjllOWYwNjE1
OTAxYTQ0YTVkZjIzMGIyN2IwMzI4MDQ2ZDliZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaApAQCAtMTA5LDcg
KzEwOSw3IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVibGljIEZyYW1lTG9hZGVy
Q2xpZW50IHsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaXJzdExheW91dCgpOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCgpOwog
Ci0gICAgdmlydHVhbCBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb24mKTsKKyAgICB2aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2Uo
Y29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lUG9saWN5RnVuY3Rp
b24sIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwppbmRleCA3NzRmYTI2NjFiNmM2NTM4MWZmZjc2ZGNkZWEzOTE3M2ViYzc2YTE2
Li43ZjlkNzRjOGI0ODJjMjI3ZGQ0MWM1MGMwYTkxYjcwNDBhZWI4ZmUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDktMjYgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hl
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2hlbiBhc2tpbmcgdGhlIEZyYW1lTG9hZGVyQ2xp
ZW50IHRvIGNyZWF0ZSBhIG5ldyBwYWdlLCBwYXNzIGFsb25nIHRoZSBSZXNvdXJjZVJlcXVlc3Qg
d2UgaW50ZW5kIHRvIHVzZSB0byBsb2FkIHRoYXQgZnJhbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aENyZWF0ZVBhZ2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmg6CisKIDIwMTEtMDktMjYgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9y
b25oYUBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIEZpeCBkb2N1bWVudGF0aW9uIGdlbmVyYXRp
b24gYnkgc3BlY2lmeWluZyB0aGUgc291cmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IGU5ZGMx
MjI2YWJmZjVhZjM5Nzk0MDBlOWNmMzg1Y2I2ODcyZmIwZmIuLmU5NjE0MTc2MmRlZjcxM2FjN2Ex
OGY4MmRiN2JhOTRlZTY3MGFjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTExNzYsNyArMTE3
Niw3IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6OmNhbkNhY2hlUGFnZSgpIGNvbnN0CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLUZyYW1lKiBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVh
dGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQorRnJhbWUqIEZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9t
RnJhbWUobV9mcmFtZSk7CiAgICAgV2ViS2l0V2ViVmlldyogbmV3V2ViVmlldyA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuaAppbmRleCA0NDZmOGJhNjQ1NGZjNDY5NTViYjU5ZjQ2YWVhZDdkYjA5YjUyODIwLi5j
MmEwYjk3MmYwNGU5YjA1NDUyMWY0ZDExYzNjOTc1ZjYyNWZlNTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgK
QEAgLTkxLDcgKzkxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZEZpcnN0TGF5b3V0KCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aERpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCgpOwogCi0gICAgICAgIHZpcnR1YWwgV2Vi
Q29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9u
QWN0aW9uJik7CisgICAgICAgIHZpcnR1YWwgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRl
UGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKTsKIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXgg
ZWM1NDA5YTBkMzdmMmM5MmY3YWEyOGUzY2Q1ODNjZDAzNzQ4MzRkZS4uNmU3Nzk5YzgzZGE5Njkz
MmRkNWQ4Njg5MTMxN2Q2MjQwZDRjYTUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDExLTA5LTI2ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFdoZW4gYXNraW5nIHRoZSBGcmFtZUxvYWRlckNsaWVudCB0byBjcmVhdGUgYSBu
ZXcgcGFnZSwgcGFzcyBhbG9uZyB0aGUgUmVzb3VyY2VSZXF1ZXN0IHdlIGludGVuZCB0byB1c2Ug
dG8gbG9hZCB0aGF0IGZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02ODgwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2UpOgorCiAyMDExLTA5LTI1ICBN
YXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGN1
c3RvbSB2dGFibGUgc3RydWN0IHRvIENsYXNzSW5mbyBzdHJ1Y3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4
IDc5YmYyYWZkOWI2Mjg0MDExNDdmYzdhOTBiZjhlNmY2MmM2OWY1NWIuLmNkMmE3NjRmZGZjMmEz
MGE1YzJhOGFlYmRiMmI2ZGY0NjM0OTk0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTExLDcgKzEx
MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmlyc3RMYXlvdXQo
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXQoKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6RnJhbWUqIGRp
c3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCkgT1ZFUlJJREU7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uLCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggMGE5NzgwZDM5
YTUyZmNmY2MwMGE0Y2U0NTA1ODVjOTFhNDBhYWY0ZC4uNWM2NzIyMDI5ZTMzZmFiYTFmNDdhM2Yz
NzFjYTNiNmYxOGMzMzJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTczMCw3ICs3MzAsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dCgpCiAgICAgICAgIENhbGxGcmFtZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMt
PmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEluRnJhbWVGdW5jLCB3ZWJWaWV3LCBAc2Vs
ZWN0b3Iod2ViVmlldzpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRJbkZyYW1lOiksIG1f
d2ViRnJhbWUuZ2V0KCkpOwogfQogCi1GcmFtZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikKK0ZyYW1lKiBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKQogewogICAgIFdlYlZpZXcgKmN1cnJlbnRXZWJWaWV3ID0g
Z2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKICAgICBOU0RpY3Rpb25hcnkgKmZlYXR1cmVz
ID0gW1tOU0RpY3Rpb25hcnkgYWxsb2NdIGluaXRdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA3ZDlhN2Ex
ZThiZTVmMGZjODMxNTdiMDYzZWI0ZWVhOWY1MDM1N2FjLi44MDg3YWNhMWI3MmE1YjM3ZDU3ZWM1
NzFhNWY1NDMxZjA5ZjdmNjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEx
LTA5LTI2ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdoZW4gYXNraW5nIHRoZSBGcmFtZUxvYWRlckNsaWVudCB0byBjcmVhdGUgYSBuZXcgcGFnZSwg
cGFzcyBhbG9uZyB0aGUgUmVzb3VyY2VSZXF1ZXN0IHdlIGludGVuZCB0byB1c2UgdG8gbG9hZCB0
aGF0IGZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02ODgwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaENyZWF0ZVBhZ2UpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaDoKKwogMjAxMS0wOS0yNCAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIEFsd2F5cyBlbmFibGUgRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDEzNmFkMjFj
YzNiMWY3NTllM2ZkOTk5MDJiZWQ3NzQ1NDZlYTE3ZjQuLmY4NGQzOGVjNzYxNTBlZTIyZDc2NzRi
NzA3NGYyZGRmZjNkNTA3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMTE4MSw3ICsxMTgxLDcgQEAg
dm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImIGVycm8KICAgICAgICAgZW1pdExvYWRGaW5pc2hlZChmYWxzZSk7
CiB9CiAKLVdlYkNvcmU6OkZyYW1lKiBGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaENyZWF0
ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpCitXZWJDb3JlOjpGcmFtZSog
RnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKQogewogICAg
IGlmICghbV93ZWJGcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCmluZGV4IGEwZTA5
MjljYjk3NDlhM2JmN2RkMzE5YjI1NjJkYTI2ZDUwZThhODguLjhhNGIxOTVlZDg3NWQwMTYyNGJi
NzRkMWRiNjI2ZmUxZDE0ZjkxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpcnN0TGF5b3V0KCk7CiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KCk7CiAKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29y
ZTo6TmF2aWdhdGlvbkFjdGlvbiYpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RnJhbWUqIGRpc3Bh
dGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJh
bWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4
IGFhYzJlYjUxNjMxMDkyZTM5Yzg4ODg2MmMwMDVkNmY5NGI2MTU2ZWYuLmU3Zjk4ODVjMTY0NjFl
MGMxM2Y2NDZiNDMzNDZiYWYwM2Y4YzNiNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxMS0wOS0yNiAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXaGVuIGFza2luZyB0aGUgRnJhbWVMb2FkZXJDbGllbnQgdG8gY3JlYXRlIGEg
bmV3IHBhZ2UsIHBhc3MgYWxvbmcgdGhlIFJlc291cmNlUmVxdWVzdCB3ZSBpbnRlbmQgdG8gdXNl
IHRvIGxvYWQgdGhhdCBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njg4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2UpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMTEtMDktMjMg
IEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBXZWJLaXRB
UElUZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMGJiOTY0OTNlYThmMTY4MjA4YTA5YTIzYzA4
ZDUzN2Y2YTY4NjNiYS4uNWE5MjAyODcwNjk1ZTEwNmUzOWRhZGI0Y2MyYWRlNzA5ZjcwNzc4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNDMyLDcgKzQzMiw3IEBAIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KCkKICAgICAg
ICAgZnJhbWVMb2FkRGVsZWdhdGVQcml2YXRlLT5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRJbkZyYW1lKHdlYlZpZXcsIG1fd2ViRnJhbWUpOwogfQogCi1GcmFtZSogV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikKK0Zy
YW1lKiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQogewogICAgIFdlYlZpZXcqIHdl
YlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDRlYzg0
Njk3N2NmZTBlZmI2MDQyYTU4MWQwN2VhMGM1OGM3MmFhNTQuLmE3YjA1ZjgyMzhmMmU4ZDhkMGM5
Y2E5NjVlMDExYzhlOWU4ODFmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNzcsNyArNzcsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmlyc3RMYXlvdXQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoKTsKIAot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJik7CisgICAgdmlydHVhbCBXZWJDb3JlOjpGcmFtZSogZGlz
cGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRMb2FkTWFpblJlc291cmNlKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDc0NDE3MmZjMmMw
ZDI4MjUzZTBhMDg3MzczMWJiYWJiNjU2NmU1ZmUuLjhhYmJhNzIyZDFlMTk5ZWNiNDZmZjM1YzMz
NmQ0NzkwZjBiYWJmYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTEtMDktMjYgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgV2hlbiBhc2tpbmcgdGhlIEZyYW1lTG9hZGVyQ2xpZW50IHRvIGNyZWF0ZSBhIG5ldyBwYWdl
LCBwYXNzIGFsb25nIHRoZSBSZXNvdXJjZVJlcXVlc3Qgd2UgaW50ZW5kIHRvIHVzZSB0byBsb2Fk
IHRoYXQgZnJhbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6ZGlzcGF0Y2hDcmVhdGVQYWdlKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmg6CisKIDIwMTEt
MDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBBbHdheXMg
ZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3Bw
IGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdp
bkNFLmNwcAppbmRleCBjMzcyZTIxMmQyNTgyOWZmZTg1ZjYyMWM0ZDRmOWQ4ZDM2MTZhNGYyLi5m
ZTlmNTQ0MmVkMDM5ZjdiZWNiZDc3ODE4ZmRjNWI3MjUxZjNmYWNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRXaW5DRS5jcHAKQEAgLTU2NCw3ICs1NjQsNyBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50V2lu
Q0U6OmNhbkNhY2hlUGFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUZyYW1lKiBG
cmFtZUxvYWRlckNsaWVudFdpbkNFOjpkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYpCitGcmFtZSogRnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6ZGlzcGF0Y2hDcmVhdGVQ
YWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaCBiL1Nv
dXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5o
CmluZGV4IDdhNGY3ODE1YWYwZjgzMWVhODJhZGM4MzE4NGMwOGQ0ZDk4NmM0YTMuLjlhOTY0MTNj
NWJjNWFlYzE3ZGRlODlkODM3ZjJlODg4NzFlOTQ2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5o
CkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRG
aXJzdExheW91dCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dCgpOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hD
cmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKTsKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaFNob3coKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC93eC9DaGFuZ2VMb2cKaW5kZXggYzYzNjAwMTFjMWFkZTUzOWIyNzYwMjc5ZjU3MGM2NjY5OGJj
MDRlNi4uYzJkZDc2MTJkOGJjMGZkNzQyMGMzZWJlMWU1ZTcxYTNlMmFhZTM1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wOS0yNiAgSm9jaGVuIEVpc2luZ2VyICA8am9j
aGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBXaGVuIGFza2luZyB0aGUgRnJhbWVMb2FkZXJD
bGllbnQgdG8gY3JlYXRlIGEgbmV3IHBhZ2UsIHBhc3MgYWxvbmcgdGhlIFJlc291cmNlUmVxdWVz
dCB3ZSBpbnRlbmQgdG8gdXNlIHRvIGxvYWQgdGhhdCBmcmFtZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MDMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFd4OjpkaXNw
YXRjaENyZWF0ZVBhZ2UpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRXeC5oOgorCiAyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50V3guY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50V3guY3BwCmluZGV4IDIyZjU1OTVkNGZmNDg3YTQwMmJiYmU0NTRlMTVjYjgxYWNhMzU3NDYu
LjE2NmRlZTI0NTcwYjUyOGYxMGNkNzEyYjQ1MzgyMDU0YjExNjk4MDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAK
QEAgLTc2OCw3ICs3NjgsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OmRpc3BhdGNoRGlk
RmFpbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotRnJhbWUqIEZyYW1lTG9hZGVyQ2xpZW50V3g6OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJikKK0ZyYW1lKiBGcmFtZUxvYWRlckNsaWVudFd4OjpkaXNwYXRjaENy
ZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oIGIv
U291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaAppbmRl
eCA2MTE4MWE5MWJmNTc3MWJkMjY1NzdmMDIyYmFkMjI0OTM1NTc0Mjg1Li5kNTliMTJiYzA5NmVk
ODM5ODYwYjg2YmFjNWRkYmY2NGU3OGEyOGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmgKQEAgLTE5Nyw3ICsxOTcsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
RmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICAg
ICAgdmlydHVhbCBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmln
YXRpb25BY3Rpb24mKTsKKyAgICAgICAgdmlydHVhbCBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdl
KGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UoRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVQb2xpY3lGdW5jdGlvbiBm
dW5jdGlvbiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29uc3QgU3RyaW5nJik7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oRnJhbWVQb2xpY3lG
dW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2JkMzJiZTcy
OTE3YjNlMzhiYzE3YTA4ZDcyYmE4YzVlNzNmNmJlZi4uMTIyYWRmYzRhMWQ1NTdhMDMwNTkxMTk2
YmRkNmI3OGQzNGJmMmZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA5LTI2
ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdoZW4g
YXNraW5nIHRoZSBGcmFtZUxvYWRlckNsaWVudCB0byBjcmVhdGUgYSBuZXcgcGFnZSwgcGFzcyBh
bG9uZyB0aGUgUmVzb3VyY2VSZXF1ZXN0IHdlIGludGVuZCB0byB1c2UgdG8gbG9hZCB0aGF0IGZy
YW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgw
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2UpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoK
KwogMjAxMS0wOS0yNSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBjdXN0b20gdnRhYmxlIHN0cnVjdCB0byBDbGFzc0luZm8gc3RydWN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDE3NGU2N2I5NTgwMDc5ZjcxNzhl
NDM5MjU0ODIxZjhhMDJhMjk3NTcuLjY0YWZjNjMzMWE5NmVkMDA4YjY1YmU0YWI5YzY0ZDJjMGRj
NzFkY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC01NjgsNyArNTY4
LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRMYXlvdXQoKQogICAg
ICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFJlbmRlclRyZWVT
aXplKHdlYlBhZ2UtPnJlbmRlclRyZWVTaXplKCkpKTsKIH0KIAotRnJhbWUqIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2
aWdhdGlvbkFjdGlvbikKK0ZyYW1lKiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVh
dGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24sIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpCiB7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2Uo
KTsKICAgICBpZiAoIXdlYlBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
NTdlZDFmMmM1NDY5OTRiZTMzYTMzZThkZjVkOGNlZTVkMWE1Yzg4OC4uMjYzOTI0NGYzZmNlMWUy
MjExMWIzMjc1ZThiYmNmZDZjNTM0NzIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtOTUsNyArOTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZExheW91dCgpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpG
cmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24m
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBh
Z2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKSBP
VkVSUklERTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgT1ZFUlJJREU7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108835</attachid>
            <date>2011-09-27 06:18:39 -0700</date>
            <delta_ts>2011-10-13 12:22:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68803-20110927151837.patch</filename>
            <type>text/plain</type>
            <size>1661</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU5NTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
MzQyOWE2NWM5MTcwYWU3ZGI5OWNhOTljOWFhZmY5YzBiZGYzNTlkZC4uMjA0MDZhNGE0MzIxN2Fj
ZWRlNzc1ZjUzNTkzZjQ1ZTU3OTNjOWY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMS0wOS0yNyAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIHdoZW4gaW52b2tpbmcgY3JlYXRlV2luZG93
LCBhbHdheXMgcGFzcyBhIEZyYW1lTG9hZFJlcXVlc3Qgd2l0aCBhIG5vbi1lbXB0eSBSZXNvdXJj
ZVJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnRJbXBsOjpkaXNwYXRjaENyZWF0ZVBhZ2UpOgorCiAyMDExLTA5LTI0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKaW5kZXggNTdiZjU2ZjNhOTJkNzc0
ZGI1MGJmYTkyNTUxYTNhOTdkM2U2ZmM0Yi4uY2I0NDAwOGI2NWFhMjcyNDg2OTZkYTVjOWMzODc5
MjM5OTk5ODI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVM
b2FkZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFt
ZUxvYWRlckNsaWVudEltcGwuY3BwCkBAIC04NjEsNyArODYxLDcgQEAgRnJhbWUqIEZyYW1lTG9h
ZGVyQ2xpZW50SW1wbDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
IGFjdGlvbikKIHsKICAgICBzdHJ1Y3QgV2luZG93RmVhdHVyZXMgZmVhdHVyZXM7CiAgICAgUGFn
ZSogbmV3UGFnZSA9IG1fd2ViRnJhbWUtPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNyZWF0
ZVdpbmRvdygKLSAgICAgICAgbV93ZWJGcmFtZS0+ZnJhbWUoKSwgRnJhbWVMb2FkUmVxdWVzdCht
X3dlYkZyYW1lLT5mcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSwKKyAgICAg
ICAgbV93ZWJGcmFtZS0+ZnJhbWUoKSwgRnJhbWVMb2FkUmVxdWVzdChtX3dlYkZyYW1lLT5mcmFt
ZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QoYWN0aW9u
LnVybCgpKSksCiAgICAgICAgIGZlYXR1cmVzLCBhY3Rpb24pOwogCiAgICAgLy8gTWFrZSBzdXJl
IHRoYXQgd2UgaGF2ZSBhIHZhbGlkIGRpc3Bvc2l0aW9uLiAgVGhpcyBzaG91bGQgaGF2ZSBiZWVu
IHNldCBpbgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110887</attachid>
            <date>2011-10-13 12:22:51 -0700</date>
            <delta_ts>2011-10-14 11:33:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68803-20111013212248.patch</filename>
            <type>text/plain</type>
            <size>15757</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTczNzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YmYwMzZjNmQ2YWFlYTRj
OTFlYTllZDhjNGJlMjUwYmMxMThjZWM1Li5hOTQ5MTg3ZjU5ZjBhMmUyZDAyNGIzNWRiMGI2YTZm
NWUwNGQzMzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMTAtMTMgIEpvY2hl
biBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWFrZSBOYXZpZ2F0
aW9uQWN0aW9uIHdyYXAgYSBSZXNvdXJjZVJlcXVlc3QgaW5zdGVhZCBvZiBhIEtVUkwuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgwMworCisgICAg
ICAgIFdpdGggdGhpcywgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZSBrbm93
cyBhYm91dCB0aGUKKyAgICAgICAgcmVxdWVzdCB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIGlu
aXRpYWwgbmF2aWdhaW9uIG9mIHRoZSB0byBiZQorICAgICAgICBjcmVhdGVkIHBhZ2UuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRVUkwpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OnJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9h
ZFBvc3RSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb250aW51ZUxv
YWRBZnRlck5ld1dpbmRvd1BvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXaW5k
b3cpOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok5hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIGxv
YWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uOjppc0VtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb246OnVybCk6
CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uOjpyZXNvdXJjZVJlcXVlc3QpOgor
ICAgICAgICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBv
bGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeSk6CisgICAgICAgICogcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3Blbk5ld1dpbmRvdyk6
CisKIDIwMTEtMTAtMTMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTkzMgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYzVjMjA0ODFmYTVjMWFjNjBjNjVjZjU0YjU1
NWViZDY5Mjg5YTk3Yi4uMWM3NTEyMmE2MzRlNmU3NzQ2NGY1ODM5MDMyOWI2MzNlMGMzNjJiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xMTk5LDcgKzExOTksNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKGNvbnN0IEtVUkwmIG5ld1VSTCwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlciwgY29uc3QgU3RyaQogICAgIGlmIChtX3BhZ2VEaXNtaXNzYWxFdmVudEJl
aW5nRGlzcGF0Y2hlZCAhPSBOb0Rpc21pc3NhbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTmF2
aWdhdGlvbkFjdGlvbiBhY3Rpb24obmV3VVJMLCBuZXdMb2FkVHlwZSwgaXNGb3JtU3VibWlzc2lv
biwgZXZlbnQpOworICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uKHJlcXVlc3QsIG5ld0xvYWRU
eXBlLCBpc0Zvcm1TdWJtaXNzaW9uLCBldmVudCk7CiAKICAgICBpZiAoIXRhcmdldEZyYW1lICYm
ICFmcmFtZU5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIHBvbGljeUNoZWNrZXIoKS0+Y2hlY2tO
ZXdXaW5kb3dQb2xpY3koYWN0aW9uLCBGcmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVy
TmV3V2luZG93UG9saWN5LApAQCAtMTI2OCw3ICsxMjY4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6
bG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lLAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcG9saWN5Q2hlY2tlcigpLT5jaGVj
a05ld1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QudXJsKCksIE5hdmlnYXRp
b25UeXBlT3RoZXIpLCBGcmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93
UG9saWN5LCByZXF1ZXN0LCAwLCBmcmFtZU5hbWUsIHRoaXMpOworICAgIHBvbGljeUNoZWNrZXIo
KS0+Y2hlY2tOZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBOYXZpZ2F0
aW9uVHlwZU90aGVyKSwgRnJhbWVMb2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dpbmRv
d1BvbGljeSwgcmVxdWVzdCwgMCwgZnJhbWVOYW1lLCB0aGlzKTsKIH0KIAogdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBib29sIGxvY2tIaXN0b3J5LCBG
cmFtZUxvYWRUeXBlIHR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUpCkBAIC0x
MzQ2LDcgKzEzNDYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVy
KERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdAogCiAgICAgaWYgKHNob3Vs
ZFNjcm9sbFRvQW5jaG9yKGlzRm9ybVN1Ym1pc3Npb24sICBodHRwTWV0aG9kLCBwb2xpY3lDaGVj
a2VyKCktPmxvYWRUeXBlKCksIG5ld1VSTCkpIHsKICAgICAgICAgUmVmUHRyPERvY3VtZW50TG9h
ZGVyPiBvbGREb2N1bWVudExvYWRlciA9IG1fZG9jdW1lbnRMb2FkZXI7Ci0gICAgICAgIE5hdmln
YXRpb25BY3Rpb24gYWN0aW9uKG5ld1VSTCwgcG9saWN5Q2hlY2tlcigpLT5sb2FkVHlwZSgpLCBp
c0Zvcm1TdWJtaXNzaW9uKTsKKyAgICAgICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24obG9hZGVy
LT5yZXF1ZXN0KCksIHBvbGljeUNoZWNrZXIoKS0+bG9hZFR5cGUoKSwgaXNGb3JtU3VibWlzc2lv
bik7CiAKICAgICAgICAgb2xkRG9jdW1lbnRMb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oYWN0
aW9uKTsKICAgICAgICAgcG9saWN5Q2hlY2tlcigpLT5zdG9wQ2hlY2soKTsKQEAgLTEzNTksNyAr
MTM1OSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIoRG9jdW1l
bnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgICAgIHBvbGljeUNoZWNrZXIo
KS0+c3RvcENoZWNrKCk7CiAgICAgICAgIHNldFBvbGljeURvY3VtZW50TG9hZGVyKGxvYWRlcik7
CiAgICAgICAgIGlmIChsb2FkZXItPnRyaWdnZXJpbmdBY3Rpb24oKS5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICBsb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oTmF2aWdhdGlvbkFjdGlvbihuZXdV
UkwsIHBvbGljeUNoZWNrZXIoKS0+bG9hZFR5cGUoKSwgaXNGb3JtU3VibWlzc2lvbikpOworICAg
ICAgICAgICAgbG9hZGVyLT5zZXRUcmlnZ2VyaW5nQWN0aW9uKE5hdmlnYXRpb25BY3Rpb24obG9h
ZGVyLT5yZXF1ZXN0KCksIHBvbGljeUNoZWNrZXIoKS0+bG9hZFR5cGUoKSwgaXNGb3JtU3VibWlz
c2lvbikpOwogCiAgICAgICAgIGlmIChFbGVtZW50KiBvd25lckVsZW1lbnQgPSBtX2ZyYW1lLT5v
d25lckVsZW1lbnQoKSkgewogICAgICAgICAgICAgLy8gV2Ugc2tpcCBkaXNwYXRjaGluZyB0aGUg
YmVmb3JlbG9hZCBldmVudCBpZiB3ZSd2ZSBhbHJlYWR5CkBAIC0xNDc5LDcgKzE0NzksNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoYm9vbCBlbmRUb0VuZFJlbG9hZCkKIAogICAgIC8vIElm
IHdlJ3JlIGFib3V0IHRvIHJlLXBvc3QsIHNldCB1cCBhY3Rpb24gc28gdGhlIGFwcGxpY2F0aW9u
IGNhbiB3YXJuIHRoZSB1c2VyLgogICAgIGlmIChyZXF1ZXN0Lmh0dHBNZXRob2QoKSA9PSAiUE9T
VCIpCi0gICAgICAgIGxvYWRlci0+c2V0VHJpZ2dlcmluZ0FjdGlvbihOYXZpZ2F0aW9uQWN0aW9u
KHJlcXVlc3QudXJsKCksIE5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkKSk7CisgICAgICAg
IGxvYWRlci0+c2V0VHJpZ2dlcmluZ0FjdGlvbihOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5h
dmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkKSk7CiAKICAgICBsb2FkZXItPnNldE92ZXJyaWRl
RW5jb2RpbmcobV9kb2N1bWVudExvYWRlci0+b3ZlcnJpZGVFbmNvZGluZygpKTsKICAgICAKQEAg
LTI1NzcsNyArMjU3Nyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIGluUmVxdWVzdCwgY29uc3QgU3RyaW5nCiAgICAgd29ya2luZ1Jl
c291cmNlUmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoY29udGVudFR5cGUpOwogICAgIGFkZEV4
dHJhRmllbGRzVG9SZXF1ZXN0KHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QsIGxvYWRUeXBlLCB0cnVl
KTsKIAotICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uKHVybCwgbG9hZFR5cGUsIHRydWUsIGV2
ZW50KTsKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbih3b3JraW5nUmVzb3VyY2VSZXF1ZXN0
LCBsb2FkVHlwZSwgdHJ1ZSwgZXZlbnQpOwogCiAgICAgaWYgKCFmcmFtZU5hbWUuaXNFbXB0eSgp
KSB7CiAgICAgICAgIC8vIFRoZSBzZWFyY2ggZm9yIGEgdGFyZ2V0IGZyYW1lIGlzIGRvbmUgZWFy
bGllciBpbiB0aGUgY2FzZSBvZiBmb3JtIHN1Ym1pc3Npb24uCkBAIC0yODcxLDcgKzI4NzEsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlcwogICAgIG1haW5GcmFtZS0+bG9hZGVyKCktPm1fY2xp
ZW50LT5kaXNwYXRjaFNob3coKTsKICAgICBpZiAoIW1fc3VwcHJlc3NPcGVuZXJJbk5ld0ZyYW1l
KQogICAgICAgICBtYWluRnJhbWUtPmxvYWRlcigpLT5zZXRPcGVuZXIoZnJhbWUuZ2V0KCkpOwot
ICAgIG1haW5GcmFtZS0+bG9hZGVyKCktPmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0
LCBOYXZpZ2F0aW9uQWN0aW9uKCksIGZhbHNlLCBGcmFtZUxvYWRUeXBlU3RhbmRhcmQsIGZvcm1T
dGF0ZSk7CisgICAgbWFpbkZyYW1lLT5sb2FkZXIoKS0+bG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9u
KHJlcXVlc3QsIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCksIGZhbHNlLCBGcmFtZUxvYWRUeXBl
U3RhbmRhcmQsIGZvcm1TdGF0ZSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnJlcXVlc3RGcm9t
RGVsZWdhdGUoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1bnNpZ25lZCBsb25nJiBpZGVudGlm
aWVyLCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTMwMzQsNyArMzAzNCw2IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0sIEZy
YW1lTG9hZFR5cGUgbG9hCiAgICAgICAgIGN1cnJlbnRVUkwgPSBkb2N1bWVudExvYWRlcigpLT51
cmwoKTsKICAgICBSZWZQdHI8Rm9ybURhdGE+IGZvcm1EYXRhID0gaXRlbS0+Zm9ybURhdGEoKTsK
IAotICAgIGJvb2wgYWRkZWRFeHRyYUZpZWxkcyA9IGZhbHNlOwogICAgIFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KGl0ZW1VUkwpOwogCiAgICAgaWYgKCFpdGVtLT5yZWZlcnJlcigpLmlzTnVsbCgp
KQpAQCAtMzA1NCw3ICszMDUzLDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERv
Y3VtZW50SXRlbShIaXN0b3J5SXRlbSogaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2EKICAgICAgICAg
Ly8gTWFrZSBzdXJlIHRvIGFkZCBleHRyYSBmaWVsZHMgdG8gdGhlIHJlcXVlc3QgYWZ0ZXIgdGhl
IE9yaWdpbiBoZWFkZXIgaXMgYWRkZWQgZm9yIHRoZSBGb3JtRGF0YSBjYXNlLgogICAgICAgICAv
LyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTk0IGZvciBt
b3JlIGRpc2N1c3Npb24uCiAgICAgICAgIGFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KHJlcXVlc3Qs
IG1fbG9hZFR5cGUsIHRydWUpOwotICAgICAgICBhZGRlZEV4dHJhRmllbGRzID0gdHJ1ZTsKICAg
ICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiBTbGlnaHQgaGFjayB0byB0ZXN0IGlmIHRoZSBOU1VS
TCBjYWNoZSBjb250YWlucyB0aGUgcGFnZSB3ZSdyZSBnb2luZyB0by4KICAgICAgICAgLy8gV2Ug
d2FudCB0byBrbm93IHRoaXMgYmVmb3JlIHRhbGtpbmcgdG8gdGhlIHBvbGljeSBkZWxlZ2F0ZSwg
c2luY2UgaXQgYWZmZWN0cyB3aGV0aGVyIApAQCAtMzA2NSwxMCArMzA2MywxMCBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtKiBpdGVtLCBG
cmFtZUxvYWRUeXBlIGxvYQogICAgICAgICAvLyBleHRyZW1lbHkgcmFyZSwgYnV0IGluIHRoYXQg
Y2FzZSB0aGUgdXNlciB3aWxsIGdldCBhbiBlcnJvciBvbiB0aGUgbmF2aWdhdGlvbi4KICAgICAg
ICAgCiAgICAgICAgIGlmIChSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUocmVxdWVz
dCwgbV9mcmFtZSkpCi0gICAgICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9uKGl0ZW1V
UkwsIGxvYWRUeXBlLCBmYWxzZSk7CisgICAgICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0
aW9uKHJlcXVlc3QsIGxvYWRUeXBlLCBmYWxzZSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgcmVxdWVzdC5zZXRDYWNoZVBvbGljeShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7Ci0gICAg
ICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9uKGl0ZW1VUkwsIE5hdmlnYXRpb25UeXBl
Rm9ybVJlc3VibWl0dGVkKTsKKyAgICAgICAgICAgIGFjdGlvbiA9IE5hdmlnYXRpb25BY3Rpb24o
cmVxdWVzdCwgTmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQpOwogICAgICAgICB9CiAgICAg
fSBlbHNlIHsKICAgICAgICAgc3dpdGNoIChsb2FkVHlwZSkgewpAQCAtMzA5MiwxMiArMzA5MCwx
MyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJ
dGVtKiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYQogICAgICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICB9CiAKLSAgICAgICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlv
bihpdGVtT3JpZ2luYWxVUkwsIGxvYWRUeXBlLCBmYWxzZSk7Ci0gICAgfQotICAgIAotICAgIGlm
ICghYWRkZWRFeHRyYUZpZWxkcykKICAgICAgICAgYWRkRXh0cmFGaWVsZHNUb1JlcXVlc3QocmVx
dWVzdCwgbV9sb2FkVHlwZSwgdHJ1ZSk7CiAKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3RGb3JPcmlnaW5hbFVSTChyZXF1ZXN0KTsKKyAgICAgICAgcmVxdWVzdC5zZXRVUkwoaXRlbU9y
aWdpbmFsVVJMKTsKKyAgICAgICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0Rm9y
T3JpZ2luYWxVUkwsIGxvYWRUeXBlLCBmYWxzZSk7CisgICAgfQorCiAgICAgbG9hZFdpdGhOYXZp
Z2F0aW9uQWN0aW9uKHJlcXVlc3QsIGFjdGlvbiwgZmFsc2UsIGxvYWRUeXBlLCAwKTsKIH0KIApA
QCAtMzI4MSw3ICszMjgwLDcgQEAgRnJhbWUqIGNyZWF0ZVdpbmRvdyhGcmFtZSogb3BlbmVyRnJh
bWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWUKICAgICBpZiAoIW9s
ZFBhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb247
CisgICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24ocmVxdWVzdFdpdGhSZWZlcnJlci5yZXNvdXJj
ZVJlcXVlc3QoKSk7CiAgICAgUGFnZSogcGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgpLT5jcmVhdGVX
aW5kb3cob3BlbmVyRnJhbWUsIHJlcXVlc3RXaXRoUmVmZXJyZXIsIGZlYXR1cmVzLCBhY3Rpb24p
OwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKaW5kZXggZWQ2OGU0MzQxZDViZTAwMGFkZTM4MTE0MWUz
ZjdkZWQ3NGM4ZDdhNC4uZTg0MGZiMmE5MGYyZjA5YWYyYzQxZjBhOWZjZWU1NmRiZWNjZTQxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcApAQCAtNTIsMjkg
KzUyLDM1IEBAIE5hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24oKQogewogfQogCi1O
YXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IEtVUkwmIHVybCwgTmF2aWdh
dGlvblR5cGUgdHlwZSkKLSAgICA6IG1fVVJMKHVybCkKK05hdmlnYXRpb25BY3Rpb246Ok5hdmln
YXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCisgICAg
OiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgLCBtX3R5cGUoTmF2aWdh
dGlvblR5cGVPdGhlcikKK3sKK30KKworTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlv
bihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgTmF2aWdhdGlvblR5cGUg
dHlwZSkKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKICAgICAsIG1f
dHlwZSh0eXBlKQogewogfQogCi1OYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9uQWN0aW9uKGNv
bnN0IEtVUkwmIHVybCwgRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlLAorTmF2aWdhdGlvbkFj
dGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVx
dWVzdCwgRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlLAogICAgICAgICBib29sIGlzRm9ybVN1
Ym1pc3Npb24pCi0gICAgOiBtX1VSTCh1cmwpCisgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNv
dXJjZVJlcXVlc3QpCiAgICAgLCBtX3R5cGUobmF2aWdhdGlvblR5cGUoZnJhbWVMb2FkVHlwZSwg
aXNGb3JtU3VibWlzc2lvbiwgMCkpCiB7CiB9CiAKLU5hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRp
b25BY3Rpb24oY29uc3QgS1VSTCYgdXJsLCBOYXZpZ2F0aW9uVHlwZSB0eXBlLCBQYXNzUmVmUHRy
PEV2ZW50PiBldmVudCkKLSAgICA6IG1fVVJMKHVybCkKK05hdmlnYXRpb25BY3Rpb246Ok5hdmln
YXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIE5hdmln
YXRpb25UeXBlIHR5cGUsIFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQorICAgIDogbV9yZXNvdXJj
ZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX2V2
ZW50KGV2ZW50KQogewogfQogCi1OYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9uQWN0aW9uKGNv
bnN0IEtVUkwmIHVybCwgRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlLAorTmF2aWdhdGlvbkFj
dGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVx
dWVzdCwgRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlLAogICAgICAgICBib29sIGlzRm9ybVN1
Ym1pc3Npb24sIFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQotICAgIDogbV9VUkwodXJsKQorICAg
IDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQogICAgICwgbV90eXBlKG5hdmln
YXRpb25UeXBlKGZyYW1lTG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Npb24sIGV2ZW50KSkKICAgICAs
IG1fZXZlbnQoZXZlbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvbkFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24u
aAppbmRleCAwNDc3YzZlMmU4MzQwZWM0ZjRmNDkzMGU1NmUyZjYwMzA5MDVjMjIyLi5lZWVlODhj
MzBiODk3NzFlOGEwY2U0MjhiOWRjZTcwYzgwZjliNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uQWN0aW9uLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJFdmVudC5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5j
bHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksMTkgKzQwLDIyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uIHsKICAgICBwdWJsaWM6CiAgICAgICAgIE5hdmln
YXRpb25BY3Rpb24oKTsKLSAgICAgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBLVVJMJiwgTmF2
aWdhdGlvblR5cGUpOwotICAgICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IEtVUkwmLCBGcmFt
ZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1pc3Npb24pOwotICAgICAgICBOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IEtVUkwmLCBOYXZpZ2F0aW9uVHlwZSwgUGFzc1JlZlB0cjxFdmVudD4pOwotICAg
ICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IEtVUkwmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlz
Rm9ybVN1Ym1pc3Npb24sIFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAgICAgICAgTmF2aWdhdGlvbkFj
dGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICAgICAgTmF2aWdhdGlvbkFjdGlvbihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uVHlwZSk7CisgICAgICAgIE5hdmlnYXRp
b25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWVMb2FkVHlwZSwgYm9vbCBpc0Zv
cm1TdWJtaXNzaW9uKTsKKyAgICAgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBOYXZpZ2F0aW9uVHlwZSwgUGFzc1JlZlB0cjxFdmVudD4pOworICAgICAgICBOYXZp
Z2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZyYW1lTG9hZFR5cGUsIGJvb2wg
aXNGb3JtU3VibWlzc2lvbiwgUGFzc1JlZlB0cjxFdmVudD4pOwogCi0gICAgICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fVVJMLmlzRW1wdHkoKTsgfQorICAgICAgICBib29sIGlz
RW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC51cmwoKS5pc0VtcHR5KCk7
IH0KKworICAgICAgICBLVVJMIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0
LnVybCgpOyB9CisgICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0
KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KIAotICAgICAgICBLVVJMIHVy
bCgpIGNvbnN0IHsgcmV0dXJuIG1fVVJMOyB9CiAgICAgICAgIE5hdmlnYXRpb25UeXBlIHR5cGUo
KSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICAgICAgY29uc3QgRXZlbnQqIGV2ZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9ldmVudC5nZXQoKTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
S1VSTCBtX1VSTDsKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0Owog
ICAgICAgICBOYXZpZ2F0aW9uVHlwZSBtX3R5cGU7CiAgICAgICAgIFJlZlB0cjxFdmVudD4gbV9l
dmVudDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNo
ZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCmluZGV4
IGY5MjgwYWQyNWFlOGVhYjBkYzU2Y2U1ZWI2NDg2ZDg1YTc0ZDljMmMuLjk4MmI0ZWEzYzcyNWM0
ZmFiYWUxZGVmMDM3Zjc1NjRlYzkwZjE3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Qb2xpY3lDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5
Q2hlY2tlci5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05h
dmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBEb2N1bWUKIHsK
ICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiA9IGxvYWRlci0+dHJpZ2dlcmluZ0FjdGlvbigp
OwogICAgIGlmIChhY3Rpb24uaXNFbXB0eSgpKSB7Ci0gICAgICAgIGFjdGlvbiA9IE5hdmlnYXRp
b25BY3Rpb24ocmVxdWVzdC51cmwoKSwgTmF2aWdhdGlvblR5cGVPdGhlcik7CisgICAgICAgIGFj
dGlvbiA9IE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCwgTmF2aWdhdGlvblR5cGVPdGhlcik7CiAg
ICAgICAgIGxvYWRlci0+c2V0VHJpZ2dlcmluZ0FjdGlvbihhY3Rpb24pOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IGJmZGM3
YmUyNjZmMjZiNmI4MWQ2NjFkYjY2ODQ0YzZjMjFhNzc2MDQuLmQ3MTM1ODVkZDliODcxOWEyMDNl
NTQ4NGE0NmQwMTgyYjA4NTQwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgdm9pZCBvcGVuTmV3
V2luZG93KGNvbnN0IEtVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lKQogewogICAgIGlmIChQ
YWdlKiBvbGRQYWdlID0gZnJhbWUtPnBhZ2UoKSkgewogICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0
IHJlcXVlc3QoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVx
dWVzdCh1cmxUb0xvYWQsIGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKSk7Ci0g
ICAgICAgIGlmIChQYWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCktPmNyZWF0ZVdpbmRv
dyhmcmFtZSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlvbkFjdGlvbigpKSkg
eworICAgICAgICBpZiAoUGFnZSogbmV3UGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgpLT5jcmVhdGVX
aW5kb3coZnJhbWUsIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24o
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSkpKSB7CiAgICAgICAgICAgICBuZXdQYWdlLT5tYWlu
RnJhbWUoKS0+bG9hZGVyKCktPmxvYWRGcmFtZVJlcXVlc3QocmVxdWVzdCwgZmFsc2UsIGZhbHNl
LCAwLCAwLCBTZW5kUmVmZXJyZXIpOyAgIAogICAgICAgICAgICAgbmV3UGFnZS0+Y2hyb21lKCkt
PnNob3coKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBkYTU0Zjg4
MTUxOTNhNzcwNzBkNGQ4NzQ3N2U3ODU5Y2I4Y2RkZjQxLi5lNDg1MGFhODVmNDUwOGY5OTExOWFk
YThkYWM4NDNkY2ZiZTU5ODJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDExLTEwLTEzICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIE1ha2UgTmF2aWdhdGlvbkFjdGlvbiB3cmFwIGEgUmVzb3VyY2VSZXF1ZXN0
IGluc3RlYWQgb2YgYSBLVVJMLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njg4MDMKKworICAgICAgICBVc2UgdGhlIHJlcXVlc3QgaW4gdGhlIE5hdmln
YXRpb25BY3Rpb24sIGlmIHRoZSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGRvZXNuJ3QgYWxy
ZWFkeSBjb250YWluIGEgcmVxdWVzdC4KKworICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlV2luZG93KToK
KwogMjAxMS0xMC0xMyAgUGVuZyBIdWFuZyAgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgogCiAg
ICAgICAgIFtjaHJvbWl1bV0gQWRkIGEgc2VsZWN0aW9uQm91bmRzKCkgbWV0aG9kIHRvIFdlYldp
ZGdldC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAKaW5kZXggMDU5ZGU3NzI2ZGZlODNkYmY1ODNmN2NiZDJjYzRhYWUzM2MzNWM3Yi4uNzVjMmJl
ZGQ3ZmIzM2ZlYzVjMWE2MTMyMmM5ZWEyYzAyNzVhMjI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTI1Niw3ICsyNTYsNyBAQCB2
b2lkIENocm9tZUNsaWVudEltcGw6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKQogfQogCiBQ
YWdlKiBDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVXaW5kb3coCi0gICAgRnJhbWUqIGZyYW1lLCBj
b25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQorICAgIEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVM
b2FkUmVxdWVzdCYgciwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiBhY3Rpb24pCiB7CiAgICAgaWYgKCFtX3dlYlZpZXctPmNsaWVudCgpKQog
ICAgICAgICByZXR1cm4gMDsKQEAgLTI2NCw2ICsyNjQsOCBAQCBQYWdlKiBDaHJvbWVDbGllbnRJ
bXBsOjpjcmVhdGVXaW5kb3coCiAgICAgV3JhcHBlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0Owog
ICAgIGlmICghci5yZXNvdXJjZVJlcXVlc3QoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJlcXVlc3Qu
YmluZChyLnJlc291cmNlUmVxdWVzdCgpKTsKKyAgICBlbHNlIGlmICghYWN0aW9uLnJlc291cmNl
UmVxdWVzdCgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmVxdWVzdC5iaW5kKGFjdGlvbi5yZXNvdXJj
ZVJlcXVlc3QoKSk7CiAgICAgV2ViVmlld0ltcGwqIG5ld1ZpZXcgPSBzdGF0aWNfY2FzdDxXZWJW
aWV3SW1wbCo+KAogICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5jcmVhdGVWaWV3KFdlYkZy
YW1lSW1wbDo6ZnJvbUZyYW1lKGZyYW1lKSwgcmVxdWVzdCwgZmVhdHVyZXMsIHIuZnJhbWVOYW1l
KCkpKTsKICAgICBpZiAoIW5ld1ZpZXcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111034</attachid>
            <date>2011-10-14 11:34:00 -0700</date>
            <delta_ts>2011-10-14 16:54:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68803-20111014203357.patch</filename>
            <type>text/plain</type>
            <size>24443</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTczNzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2OGUyNWE0YTdjZDViNmQ1YzY2ZDEy
ZGQzYzY1NDExOGZmOThkNzFkLi4xNDNiM2U5NmQ2MDFjZjNkMDg1NzU0ZjVlZWYzNDczNTk3Zjll
ZjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTAtMTQgIEpvY2hlbiBFaXNpbmdlciAg
PGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVmVyaWZ5IHRoYXQgdGhlIFVSTCB0byBi
ZSBvcGVuZWQgaW4gdGhlIG5ldyB3aW5kb3cgaXMgcGFzc2VkIGJ5IGRpc3BhdGNoQ3JlYXRlV2lu
ZG93IGRvd24gdG8gY3JlYXRlVmlldy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2xvYWRlci9jcmVhdGUtdmll
dy10YXJnZXQtYmxhbmstZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2xvYWRlci9jcmVhdGUtdmlldy10YXJnZXQtYmxhbmsuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2RvbmUu
aHRtbDogQWRkZWQuCisKIDIwMTEtMTAtMTMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTkz
MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9sb2FkZXIv
Y3JlYXRlLXZpZXctdGFyZ2V0LWJsYW5rLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvbG9hZGVyL2NyZWF0ZS12aWV3LXRhcmdldC1ibGFuay1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjdmYTQwMTdkMDI1Mzk3ZDJkNGM2YjE3OGJlMTI4MDY4MzU4YTJi
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
bG9hZGVyL2NyZWF0ZS12aWV3LXRhcmdldC1ibGFuay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitjcmVhdGVWaWV3KGRvbmUuaHRtbCkKK1RoaXMgdGVzdCBvcGVucyBhIG5ldyB3aW5kb3cg
YnkgbWlkZGxlLWNsaWNraW5nIG9uIGEgbGluayB3aXRoIHRhcmdldD1fYmxhbmsuIEl0IHBhc3Nl
cywgaWYgdGhlIFdlYlZpZXdDbGllbnQ6OmNyZWF0ZVZpZXcgbWV0aG9kIHdhcyBpbnZva2VkIHdp
dGggdGhlIHBhcmFtZXRlciAiZG9uZS5odG1sIi4KKworbGluawpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9sb2FkZXIvY3JlYXRlLXZpZXctdGFyZ2V0LWJs
YW5rLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2xvYWRlci9jcmVh
dGUtdmlldy10YXJnZXQtYmxhbmsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjkyZWVjNmRiOWQyNWFkNmE5
ZGQ1YmJkYzlkNmMyYWEwYjM3MTQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9sb2FkZXIvY3JlYXRlLXZpZXctdGFyZ2V0LWJsYW5rLmh0bWwK
QEAgLTAsMCArMSwzMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDcmVhdGVWaWV3KCk7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKTsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGluayIpOworICAg
IHZhciBtaWRkbGVNb3VzZUJ1dHRvbiA9IDE7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
bGluay5vZmZzZXRMZWZ0ICsgMiwgbGluay5vZmZzZXRUb3AgKyAyKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZURvd24obWlkZGxlTW91c2VCdXR0b24pOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
bWlkZGxlTW91c2VCdXR0b24pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8ZGl2PgorICAgIDxwPgorICAgICAgICBUaGlzIHRlc3Qgb3BlbnMgYSBu
ZXcgd2luZG93IGJ5IG1pZGRsZS1jbGlja2luZyBvbiBhIGxpbmsgd2l0aAorICAgICAgICB0YXJn
ZXQ9X2JsYW5rLiBJdCBwYXNzZXMsIGlmIHRoZSBXZWJWaWV3Q2xpZW50OjpjcmVhdGVWaWV3IG1l
dGhvZCB3YXMKKyAgICAgICAgaW52b2tlZCB3aXRoIHRoZSBwYXJhbWV0ZXIgImRvbmUuaHRtbCIu
CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICA8YSBocmVmPSJyZXNvdXJjZXMvZG9uZS5odG1s
IiBpZD0ibGluayIgdGFyZ2V0PSJfYmxhbmsiPmxpbms8L2E+CisgICAgPC9wPgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZG9uZS5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2RvbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjhh
NmRjNDYyNDkyZTZmNmJlNGNlZTg5ZWIxZjcyM2FlNDgxMWFkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2RvbmUu
aHRtbApAQCAtMCwwICsxLDQgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDliZjAzNmM2ZDZhYWVhNGM5MWVhOWVkOGM0YmUyNTBiYzExOGNlYzUu
LjA3Y2NjODQwM2IyYTZmY2NkNzkyMWE2N2ViZTQ2NTNmZmI0NTgyODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNiBAQAorMjAxMS0xMC0xNCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBNYWtlIE5hdmlnYXRpb25BY3Rpb24gd3JhcCBhIFJlc291cmNl
UmVxdWVzdCBpbnN0ZWFkIG9mIGEgS1VSTC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY4ODAzCisKKyAgICAgICAgV2l0aCB0aGlzLCBGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlIGtub3dzIGFib3V0IHRoZQorICAgICAgICByZXF1
ZXN0IHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgaW5pdGlhbCBuYXZpZ2Fpb24gb2YgdGhlIHRv
IGJlCisgICAgICAgIGNyZWF0ZWQgcGFnZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2xvYWRlci9j
cmVhdGUtdmlldy10YXJnZXQtYmxhbmsuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkVVJMKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpyZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRQb3N0
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0
ZXJOZXdXaW5kb3dQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRE
aWZmZXJlbnREb2N1bWVudEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV2luZG93KToK
KyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBsb2FkZXIv
TmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbjo6
aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uOjp1cmwpOgorICAg
ICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbjo6cmVzb3VyY2VSZXF1ZXN0KToKKyAgICAg
ICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lD
aGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZW5OZXdXaW5kb3cpOgorCiAy
MDExLTEwLTEzICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5MzIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGM1YzIwNDgxZmE1YzFhYzYwYzY1Y2Y1NGI1NTVlYmQ2
OTI4OWE5N2IuLjFjNzUxMjJhNjM0ZTZlNzc0NjRmNTgzOTAzMjliNjMzZTBjMzYyYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTE5OSw3ICsxMTk5LDcgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChjb25zdCBLVVJMJiBuZXdVUkwsIGNvbnN0IFN0cmluZyYg
cmVmZXJyZXIsIGNvbnN0IFN0cmkKICAgICBpZiAobV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rp
c3BhdGNoZWQgIT0gTm9EaXNtaXNzYWwpCiAgICAgICAgIHJldHVybjsKIAotICAgIE5hdmlnYXRp
b25BY3Rpb24gYWN0aW9uKG5ld1VSTCwgbmV3TG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Npb24sIGV2
ZW50KTsKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbihyZXF1ZXN0LCBuZXdMb2FkVHlwZSwg
aXNGb3JtU3VibWlzc2lvbiwgZXZlbnQpOwogCiAgICAgaWYgKCF0YXJnZXRGcmFtZSAmJiAhZnJh
bWVOYW1lLmlzRW1wdHkoKSkgewogICAgICAgICBwb2xpY3lDaGVja2VyKCktPmNoZWNrTmV3V2lu
ZG93UG9saWN5KGFjdGlvbiwgRnJhbWVMb2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dp
bmRvd1BvbGljeSwKQEAgLTEyNjgsNyArMTI2OCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHBvbGljeUNoZWNrZXIoKS0+Y2hlY2tOZXdX
aW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnVybCgpLCBOYXZpZ2F0aW9uVHlw
ZU90aGVyKSwgRnJhbWVMb2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGlj
eSwgcmVxdWVzdCwgMCwgZnJhbWVOYW1lLCB0aGlzKTsKKyAgICBwb2xpY3lDaGVja2VyKCktPmNo
ZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCwgTmF2aWdhdGlvblR5
cGVPdGhlciksIEZyYW1lTG9hZGVyOjpjYWxsQ29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xp
Y3ksIHJlcXVlc3QsIDAsIGZyYW1lTmFtZSwgdGhpcyk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6
OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgYm9vbCBsb2NrSGlzdG9yeSwgRnJhbWVM
b2FkVHlwZSB0eXBlLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlKQpAQCAtMTM0Niw3
ICsxMzQ2LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihEb2N1
bWVudExvYWRlciogbG9hZGVyLCBGcmFtZUxvYWRUeXBlIHQKIAogICAgIGlmIChzaG91bGRTY3Jv
bGxUb0FuY2hvcihpc0Zvcm1TdWJtaXNzaW9uLCAgaHR0cE1ldGhvZCwgcG9saWN5Q2hlY2tlcigp
LT5sb2FkVHlwZSgpLCBuZXdVUkwpKSB7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4g
b2xkRG9jdW1lbnRMb2FkZXIgPSBtX2RvY3VtZW50TG9hZGVyOwotICAgICAgICBOYXZpZ2F0aW9u
QWN0aW9uIGFjdGlvbihuZXdVUkwsIHBvbGljeUNoZWNrZXIoKS0+bG9hZFR5cGUoKSwgaXNGb3Jt
U3VibWlzc2lvbik7CisgICAgICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uKGxvYWRlci0+cmVx
dWVzdCgpLCBwb2xpY3lDaGVja2VyKCktPmxvYWRUeXBlKCksIGlzRm9ybVN1Ym1pc3Npb24pOwog
CiAgICAgICAgIG9sZERvY3VtZW50TG9hZGVyLT5zZXRUcmlnZ2VyaW5nQWN0aW9uKGFjdGlvbik7
CiAgICAgICAgIHBvbGljeUNoZWNrZXIoKS0+c3RvcENoZWNrKCk7CkBAIC0xMzU5LDcgKzEzNTks
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKERvY3VtZW50TG9h
ZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdAogICAgICAgICBwb2xpY3lDaGVja2VyKCktPnN0
b3BDaGVjaygpOwogICAgICAgICBzZXRQb2xpY3lEb2N1bWVudExvYWRlcihsb2FkZXIpOwogICAg
ICAgICBpZiAobG9hZGVyLT50cmlnZ2VyaW5nQWN0aW9uKCkuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgbG9hZGVyLT5zZXRUcmlnZ2VyaW5nQWN0aW9uKE5hdmlnYXRpb25BY3Rpb24obmV3VVJMLCBw
b2xpY3lDaGVja2VyKCktPmxvYWRUeXBlKCksIGlzRm9ybVN1Ym1pc3Npb24pKTsKKyAgICAgICAg
ICAgIGxvYWRlci0+c2V0VHJpZ2dlcmluZ0FjdGlvbihOYXZpZ2F0aW9uQWN0aW9uKGxvYWRlci0+
cmVxdWVzdCgpLCBwb2xpY3lDaGVja2VyKCktPmxvYWRUeXBlKCksIGlzRm9ybVN1Ym1pc3Npb24p
KTsKIAogICAgICAgICBpZiAoRWxlbWVudCogb3duZXJFbGVtZW50ID0gbV9mcmFtZS0+b3duZXJF
bGVtZW50KCkpIHsKICAgICAgICAgICAgIC8vIFdlIHNraXAgZGlzcGF0Y2hpbmcgdGhlIGJlZm9y
ZWxvYWQgZXZlbnQgaWYgd2UndmUgYWxyZWFkeQpAQCAtMTQ3OSw3ICsxNDc5LDcgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6cmVsb2FkKGJvb2wgZW5kVG9FbmRSZWxvYWQpCiAKICAgICAvLyBJZiB3ZSdy
ZSBhYm91dCB0byByZS1wb3N0LCBzZXQgdXAgYWN0aW9uIHNvIHRoZSBhcHBsaWNhdGlvbiBjYW4g
d2FybiB0aGUgdXNlci4KICAgICBpZiAocmVxdWVzdC5odHRwTWV0aG9kKCkgPT0gIlBPU1QiKQot
ICAgICAgICBsb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oTmF2aWdhdGlvbkFjdGlvbihyZXF1
ZXN0LnVybCgpLCBOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZCkpOworICAgICAgICBsb2Fk
ZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBOYXZpZ2F0
aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZCkpOwogCiAgICAgbG9hZGVyLT5zZXRPdmVycmlkZUVuY29k
aW5nKG1fZG9jdW1lbnRMb2FkZXItPm92ZXJyaWRlRW5jb2RpbmcoKSk7CiAgICAgCkBAIC0yNTc3
LDcgKzI1NzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiBpblJlcXVlc3QsIGNvbnN0IFN0cmluZwogICAgIHdvcmtpbmdSZXNvdXJj
ZVJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTsKICAgICBhZGRFeHRyYUZp
ZWxkc1RvUmVxdWVzdCh3b3JraW5nUmVzb3VyY2VSZXF1ZXN0LCBsb2FkVHlwZSwgdHJ1ZSk7CiAK
LSAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbih1cmwsIGxvYWRUeXBlLCB0cnVlLCBldmVudCk7
CisgICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24od29ya2luZ1Jlc291cmNlUmVxdWVzdCwgbG9h
ZFR5cGUsIHRydWUsIGV2ZW50KTsKIAogICAgIGlmICghZnJhbWVOYW1lLmlzRW1wdHkoKSkgewog
ICAgICAgICAvLyBUaGUgc2VhcmNoIGZvciBhIHRhcmdldCBmcmFtZSBpcyBkb25lIGVhcmxpZXIg
aW4gdGhlIGNhc2Ugb2YgZm9ybSBzdWJtaXNzaW9uLgpAQCAtMjg3MSw3ICsyODcxLDcgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3koY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXMKICAgICBtYWluRnJhbWUtPmxvYWRlcigpLT5tX2NsaWVudC0+
ZGlzcGF0Y2hTaG93KCk7CiAgICAgaWYgKCFtX3N1cHByZXNzT3BlbmVySW5OZXdGcmFtZSkKICAg
ICAgICAgbWFpbkZyYW1lLT5sb2FkZXIoKS0+c2V0T3BlbmVyKGZyYW1lLmdldCgpKTsKLSAgICBt
YWluRnJhbWUtPmxvYWRlcigpLT5sb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCwgTmF2
aWdhdGlvbkFjdGlvbigpLCBmYWxzZSwgRnJhbWVMb2FkVHlwZVN0YW5kYXJkLCBmb3JtU3RhdGUp
OworICAgIG1haW5GcmFtZS0+bG9hZGVyKCktPmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihyZXF1
ZXN0LCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QpLCBmYWxzZSwgRnJhbWVMb2FkVHlwZVN0YW5k
YXJkLCBmb3JtU3RhdGUpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpyZXF1ZXN0RnJvbURlbGVn
YXRlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdW5zaWduZWQgbG9uZyYgaWRlbnRpZmllciwg
UmVzb3VyY2VFcnJvciYgZXJyb3IpCkBAIC0zMDM0LDcgKzMwMzQsNiBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtKiBpdGVtLCBGcmFtZUxv
YWRUeXBlIGxvYQogICAgICAgICBjdXJyZW50VVJMID0gZG9jdW1lbnRMb2FkZXIoKS0+dXJsKCk7
CiAgICAgUmVmUHRyPEZvcm1EYXRhPiBmb3JtRGF0YSA9IGl0ZW0tPmZvcm1EYXRhKCk7CiAKLSAg
ICBib29sIGFkZGVkRXh0cmFGaWVsZHMgPSBmYWxzZTsKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChpdGVtVVJMKTsKIAogICAgIGlmICghaXRlbS0+cmVmZXJyZXIoKS5pc051bGwoKSkKQEAg
LTMwNTQsNyArMzA1Myw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVu
dEl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9hCiAgICAgICAgIC8vIE1h
a2Ugc3VyZSB0byBhZGQgZXh0cmEgZmllbGRzIHRvIHRoZSByZXF1ZXN0IGFmdGVyIHRoZSBPcmln
aW4gaGVhZGVyIGlzIGFkZGVkIGZvciB0aGUgRm9ybURhdGEgY2FzZS4KICAgICAgICAgLy8gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE5NCBmb3IgbW9yZSBk
aXNjdXNzaW9uLgogICAgICAgICBhZGRFeHRyYUZpZWxkc1RvUmVxdWVzdChyZXF1ZXN0LCBtX2xv
YWRUeXBlLCB0cnVlKTsKLSAgICAgICAgYWRkZWRFeHRyYUZpZWxkcyA9IHRydWU7CiAgICAgICAg
IAogICAgICAgICAvLyBGSVhNRTogU2xpZ2h0IGhhY2sgdG8gdGVzdCBpZiB0aGUgTlNVUkwgY2Fj
aGUgY29udGFpbnMgdGhlIHBhZ2Ugd2UncmUgZ29pbmcgdG8uCiAgICAgICAgIC8vIFdlIHdhbnQg
dG8ga25vdyB0aGlzIGJlZm9yZSB0YWxraW5nIHRvIHRoZSBwb2xpY3kgZGVsZWdhdGUsIHNpbmNl
IGl0IGFmZmVjdHMgd2hldGhlciAKQEAgLTMwNjUsMTAgKzMwNjMsMTAgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSogaXRlbSwgRnJhbWVM
b2FkVHlwZSBsb2EKICAgICAgICAgLy8gZXh0cmVtZWx5IHJhcmUsIGJ1dCBpbiB0aGF0IGNhc2Ug
dGhlIHVzZXIgd2lsbCBnZXQgYW4gZXJyb3Igb24gdGhlIG5hdmlnYXRpb24uCiAgICAgICAgIAog
ICAgICAgICBpZiAoUmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKHJlcXVlc3QsIG1f
ZnJhbWUpKQotICAgICAgICAgICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbihpdGVtVVJMLCBs
b2FkVHlwZSwgZmFsc2UpOworICAgICAgICAgICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbihy
ZXF1ZXN0LCBsb2FkVHlwZSwgZmFsc2UpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIHJl
cXVlc3Quc2V0Q2FjaGVQb2xpY3koUmVsb2FkSWdub3JpbmdDYWNoZURhdGEpOwotICAgICAgICAg
ICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbihpdGVtVVJMLCBOYXZpZ2F0aW9uVHlwZUZvcm1S
ZXN1Ym1pdHRlZCk7CisgICAgICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVl
c3QsIE5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkKTsKICAgICAgICAgfQogICAgIH0gZWxz
ZSB7CiAgICAgICAgIHN3aXRjaCAobG9hZFR5cGUpIHsKQEAgLTMwOTIsMTIgKzMwOTAsMTMgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSog
aXRlbSwgRnJhbWVMb2FkVHlwZSBsb2EKICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgfQogCi0gICAgICAgIGFjdGlvbiA9IE5hdmlnYXRpb25BY3Rpb24oaXRl
bU9yaWdpbmFsVVJMLCBsb2FkVHlwZSwgZmFsc2UpOwotICAgIH0KLSAgICAKLSAgICBpZiAoIWFk
ZGVkRXh0cmFGaWVsZHMpCiAgICAgICAgIGFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KHJlcXVlc3Qs
IG1fbG9hZFR5cGUsIHRydWUpOwogCisgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0Rm9y
T3JpZ2luYWxVUkwocmVxdWVzdCk7CisgICAgICAgIHJlcXVlc3Quc2V0VVJMKGl0ZW1PcmlnaW5h
bFVSTCk7CisgICAgICAgIGFjdGlvbiA9IE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdEZvck9yaWdp
bmFsVVJMLCBsb2FkVHlwZSwgZmFsc2UpOworICAgIH0KKwogICAgIGxvYWRXaXRoTmF2aWdhdGlv
bkFjdGlvbihyZXF1ZXN0LCBhY3Rpb24sIGZhbHNlLCBsb2FkVHlwZSwgMCk7CiB9CiAKQEAgLTMy
ODEsNyArMzI4MCw3IEBAIEZyYW1lKiBjcmVhdGVXaW5kb3coRnJhbWUqIG9wZW5lckZyYW1lLCBG
cmFtZSogbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlCiAgICAgaWYgKCFvbGRQYWdl
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uOworICAg
IE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uKHJlcXVlc3RXaXRoUmVmZXJyZXIucmVzb3VyY2VSZXF1
ZXN0KCkpOwogICAgIFBhZ2UqIHBhZ2UgPSBvbGRQYWdlLT5jaHJvbWUoKS0+Y3JlYXRlV2luZG93
KG9wZW5lckZyYW1lLCByZXF1ZXN0V2l0aFJlZmVycmVyLCBmZWF0dXJlcywgYWN0aW9uKTsKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25BY3Rpb24uY3BwCmluZGV4IGVkNjhlNDM0MWQ1YmUwMDBhZGUzODExNDFlM2Y3ZGVk
NzRjOGQ3YTQuLmU4NDBmYjJhOTBmMmYwOWFmMmM0MWYwYTlmY2VlNTZkYmVjY2U0MWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKQEAgLTUyLDI5ICs1Miwz
NSBAQCBOYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9uQWN0aW9uKCkKIHsKIH0KIAotTmF2aWdh
dGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25zdCBLVVJMJiB1cmwsIE5hdmlnYXRpb25U
eXBlIHR5cGUpCi0gICAgOiBtX1VSTCh1cmwpCitOYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9u
QWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQorICAgIDogbV9y
ZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICwgbV90eXBlKE5hdmlnYXRpb25U
eXBlT3RoZXIpCit7Cit9CisKK05hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24oY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIE5hdmlnYXRpb25UeXBlIHR5cGUp
CisgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCiAgICAgLCBtX3R5cGUo
dHlwZSkKIHsKIH0KIAotTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25zdCBL
VVJMJiB1cmwsIEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSwKK05hdmlnYXRpb25BY3Rpb246
Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3Qs
IEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSwKICAgICAgICAgYm9vbCBpc0Zvcm1TdWJtaXNz
aW9uKQotICAgIDogbV9VUkwodXJsKQorICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VS
ZXF1ZXN0KQogICAgICwgbV90eXBlKG5hdmlnYXRpb25UeXBlKGZyYW1lTG9hZFR5cGUsIGlzRm9y
bVN1Ym1pc3Npb24sIDApKQogewogfQogCi1OYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IEtVUkwmIHVybCwgTmF2aWdhdGlvblR5cGUgdHlwZSwgUGFzc1JlZlB0cjxFdmVu
dD4gZXZlbnQpCi0gICAgOiBtX1VSTCh1cmwpCitOYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9u
QWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBOYXZpZ2F0aW9u
VHlwZSB0eXBlLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKKyAgICA6IG1fcmVzb3VyY2VSZXF1
ZXN0KHJlc291cmNlUmVxdWVzdCkKICAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9ldmVudChl
dmVudCkKIHsKIH0KIAotTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25zdCBL
VVJMJiB1cmwsIEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSwKK05hdmlnYXRpb25BY3Rpb246
Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3Qs
IEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSwKICAgICAgICAgYm9vbCBpc0Zvcm1TdWJtaXNz
aW9uLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKLSAgICA6IG1fVVJMKHVybCkKKyAgICA6IG1f
cmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKICAgICAsIG1fdHlwZShuYXZpZ2F0aW9u
VHlwZShmcmFtZUxvYWRUeXBlLCBpc0Zvcm1TdWJtaXNzaW9uLCBldmVudCkpCiAgICAgLCBtX2V2
ZW50KGV2ZW50KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25BY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKaW5k
ZXggMDQ3N2M2ZTJlODM0MGVjNGY0ZjQ5MzBlNTZlMmY2MDMwOTA1YzIyMi4uZWVlZTg4YzMwYjg5
NzcxZThhMGNlNDI4YjlkY2U3MGM4MGY5Yjc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvbkFjdGlvbi5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTM5LDE5ICs0MCwyMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgTmF2aWdhdGlvbkFjdGlvbiB7CiAgICAgcHVibGljOgogICAgICAgICBOYXZpZ2F0aW9u
QWN0aW9uKCk7Ci0gICAgICAgIE5hdmlnYXRpb25BY3Rpb24oY29uc3QgS1VSTCYsIE5hdmlnYXRp
b25UeXBlKTsKLSAgICAgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBLVVJMJiwgRnJhbWVMb2Fk
VHlwZSwgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uKTsKLSAgICAgICAgTmF2aWdhdGlvbkFjdGlvbihj
b25zdCBLVVJMJiwgTmF2aWdhdGlvblR5cGUsIFBhc3NSZWZQdHI8RXZlbnQ+KTsKLSAgICAgICAg
TmF2aWdhdGlvbkFjdGlvbihjb25zdCBLVVJMJiwgRnJhbWVMb2FkVHlwZSwgYm9vbCBpc0Zvcm1T
dWJtaXNzaW9uLCBQYXNzUmVmUHRyPEV2ZW50Pik7CisgICAgICAgIE5hdmlnYXRpb25BY3Rpb24o
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgICAgIE5hdmlnYXRpb25BY3Rpb24oY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgTmF2aWdhdGlvblR5cGUpOworICAgICAgICBOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZyYW1lTG9hZFR5cGUsIGJvb2wgaXNGb3JtU3Vi
bWlzc2lvbik7CisgICAgICAgIE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgTmF2aWdhdGlvblR5cGUsIFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAgICAgICAgTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9y
bVN1Ym1pc3Npb24sIFBhc3NSZWZQdHI8RXZlbnQ+KTsKIAotICAgICAgICBib29sIGlzRW1wdHko
KSBjb25zdCB7IHJldHVybiBtX1VSTC5pc0VtcHR5KCk7IH0KKyAgICAgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3QudXJsKCkuaXNFbXB0eSgpOyB9CisK
KyAgICAgICAgS1VSTCB1cmwoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC51cmwo
KTsgfQorICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CiAKLSAgICAgICAgS1VSTCB1cmwoKSBj
b25zdCB7IHJldHVybiBtX1VSTDsgfQogICAgICAgICBOYXZpZ2F0aW9uVHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgICAgIGNvbnN0IEV2ZW50KiBldmVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZXZlbnQuZ2V0KCk7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEtVUkwg
bV9VUkw7CisgICAgICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKICAgICAg
ICAgTmF2aWdhdGlvblR5cGUgbV90eXBlOwogICAgICAgICBSZWZQdHI8RXZlbnQ+IG1fZXZlbnQ7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAppbmRleCBmOTI4
MGFkMjVhZThlYWIwZGM1NmNlNWViNjQ4NmQ4NWE3NGQ5YzJjLi45ODJiNGVhM2M3MjVjNGZhYmFl
MWRlZjAzN2Y3NTY0ZWM5MGYxNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNr
ZXIuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0
aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG9jdW1lCiB7CiAgICAg
TmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24gPSBsb2FkZXItPnRyaWdnZXJpbmdBY3Rpb24oKTsKICAg
ICBpZiAoYWN0aW9uLmlzRW1wdHkoKSkgewotICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0
aW9uKHJlcXVlc3QudXJsKCksIE5hdmlnYXRpb25UeXBlT3RoZXIpOworICAgICAgICBhY3Rpb24g
PSBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlT3RoZXIpOwogICAgICAg
ICBsb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oYWN0aW9uKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCBiZmRjN2JlMjY2
ZjI2YjZiODFkNjYxZGI2Njg0NGM2YzIxYTc3NjA0Li5kNzEzNTg1ZGQ5Yjg3MTlhMjAzZTU0ODRh
NDZkMDE4MmIwODU0MGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgc3RhdGljIHZvaWQgb3Blbk5ld1dpbmRv
dyhjb25zdCBLVVJMJiB1cmxUb0xvYWQsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBpZiAoUGFnZSog
b2xkUGFnZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1
ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3Qo
dXJsVG9Mb2FkLCBmcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSkpOwotICAgICAg
ICBpZiAoUGFnZSogbmV3UGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgpLT5jcmVhdGVXaW5kb3coZnJh
bWUsIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24oKSkpIHsKKyAg
ICAgICAgaWYgKFBhZ2UqIG5ld1BhZ2UgPSBvbGRQYWdlLT5jaHJvbWUoKS0+Y3JlYXRlV2luZG93
KGZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCkpKSkgewogICAgICAgICAgICAgbmV3UGFnZS0+bWFpbkZyYW1l
KCktPmxvYWRlcigpLT5sb2FkRnJhbWVSZXF1ZXN0KHJlcXVlc3QsIGZhbHNlLCBmYWxzZSwgMCwg
MCwgU2VuZFJlZmVycmVyKTsgICAKICAgICAgICAgICAgIG5ld1BhZ2UtPmNocm9tZSgpLT5zaG93
KCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGE1NGY4ODE1MTkz
YTc3MDcwZDRkODc0NzdlNzg1OWNiOGNkZGY0MS4uMWYyMDc3NmVkMmZlZDMxNTA0MWUwOTM2MTZi
YTY3OWM4MjZhZDM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMS0xMC0xNCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBNYWtlIE5hdmlnYXRpb25BY3Rpb24gd3JhcCBhIFJlc291cmNlUmVxdWVzdCBpbnN0
ZWFkIG9mIGEgS1VSTC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY4ODAzCisKKyAgICAgICAgVXNlIHRoZSByZXF1ZXN0IGluIHRoZSBOYXZpZ2F0aW9u
QWN0aW9uLCBpZiB0aGUgRnJhbWVMb2FkUmVxdWVzdAorICAgICAgICBkb2Vzbid0IGFscmVhZHkg
Y29udGFpbiBhIHJlcXVlc3QuCisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNyZWF0ZVdpbmRvdyk6CisKIDIw
MTEtMTAtMTMgIFBlbmcgSHVhbmcgIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KIAogICAgICAg
ICBbY2hyb21pdW1dIEFkZCBhIHNlbGVjdGlvbkJvdW5kcygpIG1ldGhvZCB0byBXZWJXaWRnZXQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmlu
ZGV4IDA1OWRlNzcyNmRmZTgzZGJmNTgzZjdjYmQyY2M0YWFlMzNjMzVjN2IuLjc1YzJiZWRkN2Zi
MzNmZWM1YzFhNjEzMjJjOWVhMmMwMjc1YTIyNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC0yNTYsNyArMjU2LDcgQEAgdm9pZCBD
aHJvbWVDbGllbnRJbXBsOjpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKikKIH0KIAogUGFnZSog
Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlV2luZG93KAotICAgIEZyYW1lKiBmcmFtZSwgY29uc3Qg
RnJhbWVMb2FkUmVxdWVzdCYgciwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJikKKyAgICBGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmIHIsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYgYWN0aW9uKQogewogICAgIGlmICghbV93ZWJWaWV3LT5jbGllbnQoKSkKICAgICAg
ICAgcmV0dXJuIDA7CkBAIC0yNjQsNiArMjY0LDggQEAgUGFnZSogQ2hyb21lQ2xpZW50SW1wbDo6
Y3JlYXRlV2luZG93KAogICAgIFdyYXBwZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBp
ZiAoIXIucmVzb3VyY2VSZXF1ZXN0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXF1ZXN0LmJpbmQo
ci5yZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgZWxzZSBpZiAoIWFjdGlvbi5yZXNvdXJjZVJlcXVl
c3QoKS5pc0VtcHR5KCkpCisgICAgICAgIHJlcXVlc3QuYmluZChhY3Rpb24ucmVzb3VyY2VSZXF1
ZXN0KCkpOwogICAgIFdlYlZpZXdJbXBsKiBuZXdWaWV3ID0gc3RhdGljX2Nhc3Q8V2ViVmlld0lt
cGwqPigKICAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+Y3JlYXRlVmlldyhXZWJGcmFtZUlt
cGw6OmZyb21GcmFtZShmcmFtZSksIHJlcXVlc3QsIGZlYXR1cmVzLCByLmZyYW1lTmFtZSgpKSk7
CiAgICAgaWYgKCFuZXdWaWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDVjZjU2YmY5N2ZmYzAwNjhkMzU0YjZmMzliN2MwZGMwMjA2Mjc4ZDku
LmRjYzZjNzI2ZjM1MjYwODAzMTMwMWMxYWJlZmNjZTU3NzA2NjhkZTUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
MS0xMC0xNCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbY2hyb21pdW1dIGFkZCBMYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ3JlYXRlVmlldygpIHRv
IG1vbml0b3IgY2FsbHMgdG8gV2ViVmlld0NsaWVudDo6Y3JlYXRlVmlldworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6ZHVtcENyZWF0ZVZpZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hv
dWxkRHVtcENyZWF0ZVZpZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpjcmVhdGVWaWV3KToKKwogMjAx
MS0xMC0xMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0No
cm9taXVtXSBBIERSVCBmaXggZm9yIHI5NzM0OC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA3MWVjM2ExMjQz
OGVkOGE2NzU2NmNiNTI2Zjg3MWIwYjEwZTljZDBlLi42NzAyM2IzOTViOWY1Yjc5YzljZTAxMDk5
NjVmNDBmMDIxOWYyNGE2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMTIsNiArMTEyLDcgQEAgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAg
ICAgYmluZE1ldGhvZCgiZHVtcFN0YXR1c0NhbGxiYWNrcyIsICZMYXlvdXRUZXN0Q29udHJvbGxl
cjo6ZHVtcFdpbmRvd1N0YXR1c0NoYW5nZXMpOwogICAgIGJpbmRNZXRob2QoImR1bXBUaXRsZUNo
YW5nZXMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBUaXRsZUNoYW5nZXMpOwogICAgIGJp
bmRNZXRob2QoImR1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzIiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjpkdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNrcyk7CisgICAgYmluZE1ldGhvZCgi
ZHVtcENyZWF0ZVZpZXciLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBDcmVhdGVWaWV3KTsK
ICAgICBiaW5kTWV0aG9kKCJlbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQi
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVu
dFdpdGhJZCk7CiAgICAgYmluZE1ldGhvZCgiZXZhbHVhdGVJbldlYkluc3BlY3RvciIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcik7CiAgICAgYmluZE1ldGhv
ZCgiZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKTsKQEAgLTM4NCw2ICszODUsMTIgQEAgdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAordm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcENyZWF0ZVZpZXcoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIG1fZHVtcENyZWF0ZVZpZXcgPSB0cnVlOwor
ICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRBY2NlcHRzRWRpdGluZyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFy
aWFudCogcmVzdWx0KQogewogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVu
dHNbMF0uaXNCb29sKCkpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAxYmUxNTk2ZWM1MThkMDAzZDk3MjY1MWE5YWFl
MzFmNWYzN2IyOTcxLi4wMWI2ZWNjNTViYmU3MWExY2I4MGMwOGI2ZmU3YjQxNWU0NWEwNWY3IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmgKQEAgLTEzMSw2ICsxMzEsMTEgQEAgcHVibGljOgogICAgIC8vIEl0IHRha2VzIG5v
IGFyZ3VtZW50cywgYW5kIGlnbm9yZXMgYW55IHRoYXQgbWF5IGJlIHByZXNlbnQuCiAgICAgdm9p
ZCBkdW1wV2luZG93U3RhdHVzQ2hhbmdlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CiAKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIHNldHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhl
IHRlc3Rfc2hlbGwgdG8gZHVtcCBhbGwgY2FsbHMgdG8KKyAgICAvLyBXZWJWaWV3Q2xpZW50Ojpj
cmVhdGVWaWV3KCkuCisgICAgLy8gSXQgdGFrZXMgbm8gYXJndW1lbnRzLCBhbmQgaWdub3JlcyBh
bnkgdGhhdCBtYXkgYmUgcHJlc2VudC4KKyAgICB2b2lkIGR1bXBDcmVhdGVWaWV3KGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKwogICAgIC8vIFdoZW4gY2FsbGVkIHdpdGgg
YSBib29sZWFuIGFyZ3VtZW50LCB0aGlzIHNldHMgYSBmbGFnIHRoYXQgY29udHJvbHMKICAgICAv
LyB3aGV0aGVyIGNvbnRlbnQtZWRpdGFibGUgZWxlbWVudHMgYWNjZXB0IGVkaXRpbmcgZm9jdXMg
d2hlbiBhbiBlZGl0aW5nCiAgICAgLy8gYXR0ZW1wdCBpcyBtYWRlLiBJdCBpZ25vcmVzIGFueSBh
ZGRpdGlvbmFsIGFyZ3VtZW50cy4KQEAgLTQzNCw2ICs0MzksNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBzaG91bGREdW1wQ2hpbGRGcmFtZXNBc1RleHQoKSB7IHJldHVybiBtX2R1bXBDaGlsZEZyYW1l
c0FzVGV4dDsgfQogICAgIGJvb2wgc2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoKSB7IHJldHVy
biBtX2dlbmVyYXRlUGl4ZWxSZXN1bHRzOyB9CiAgICAgdm9pZCBzZXRTaG91bGRHZW5lcmF0ZVBp
eGVsUmVzdWx0cyhib29sIHZhbHVlKSB7IG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHMgPSB2YWx1ZTsg
fQorICAgIGJvb2wgc2hvdWxkRHVtcENyZWF0ZVZpZXcoKSB7IHJldHVybiBtX2R1bXBDcmVhdGVW
aWV3OyB9CiAgICAgYm9vbCBhY2NlcHRzRWRpdGluZygpIHsgcmV0dXJuIG1fYWNjZXB0c0VkaXRp
bmc7IH0KICAgICBib29sIGNhbk9wZW5XaW5kb3dzKCkgeyByZXR1cm4gbV9jYW5PcGVuV2luZG93
czsgfQogICAgIGJvb2wgc2hvdWxkQWRkRmlsZVRvUGFzdGVib2FyZCgpIHsgcmV0dXJuIG1fc2hv
dWxkQWRkRmlsZVRvUGFzdGVib2FyZDsgfQpAQCAtNTk0LDYgKzYwMCwxMCBAQCBwcml2YXRlOgog
ICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0X3NoZWxsIHdpbGwgZ2VuZXJhdGUgcGl4ZWwgcmVzdWx0
cyBpbiBkdW1wQXNUZXh0IG1vZGUKICAgICBib29sIG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHM7CiAK
KyAgICAvLyBJZiB0cnVlLCBvdXRwdXQgYSBkZXNjcmlwdGl2ZSBsaW5lIGVhY2ggdGltZSBXZWJW
aWV3Q2xpZW50OjpjcmVhdGVWaWV3CisgICAgLy8gaXMgaW52b2tlZC4KKyAgICBib29sIG1fZHVt
cENyZWF0ZVZpZXc7CisKICAgICAvLyBJZiB0cnVlLCB0aGUgZWxlbWVudCB3aWxsIGJlIHRyZWF0
ZWQgYXMgZWRpdGFibGUuIFRoaXMgdmFsdWUgaXMgcmV0dXJuZWQKICAgICAvLyBmcm9tIHZhcmlv
dXMgZWRpdGluZyBjYWxsYmFja3MgdGhhdCBhcmUgY2FsbGVkIGp1c3QgYmVmb3JlIGVkaXQgb3Bl
cmF0aW9ucwogICAgIC8vIGFyZSBhbGxvd2VkLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDM1YjczY2U3YjllOWJmYTQzMjJmYjUxZmY1YTg4
NDc0M2RkZGRmZmIuLjc2ODczYTc2MmJiZDZmZWY2ODM3ODJlNTk2YmJhZWQ4ZmM2Mjg3ZmYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTIz
NywxMCArMjM3LDEyIEBAIHN0YXRpYyBzdHJpbmcgdGV4dEFmZmluaXR5RGVzY3JpcHRpb24oV2Vi
VGV4dEFmZmluaXR5IGFmZmluaXR5KQogCiAvLyBXZWJWaWV3Q2xpZW50IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotV2ViVmll
dyogV2ViVmlld0hvc3Q6OmNyZWF0ZVZpZXcoV2ViRnJhbWUqLCBjb25zdCBXZWJVUkxSZXF1ZXN0
JiwgY29uc3QgV2ViV2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJTdHJpbmcmKQorV2ViVmlldyog
V2ViVmlld0hvc3Q6OmNyZWF0ZVZpZXcoV2ViRnJhbWUqLCBjb25zdCBXZWJVUkxSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBXZWJXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYlN0cmluZyYpCiB7CiAg
ICAgaWYgKCFsYXlvdXRUZXN0Q29udHJvbGxlcigpLT5jYW5PcGVuV2luZG93cygpKQogICAgICAg
ICByZXR1cm4gMDsKKyAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxkRHVtcENy
ZWF0ZVZpZXcoKSkKKyAgICAgICAgZnByaW50ZihzdGRvdXQsICJjcmVhdGVWaWV3KCVzKVxuIiwg
VVJMRGVzY3JpcHRpb24ocmVxdWVzdC51cmwoKSkuY19zdHIoKSk7CiAgICAgcmV0dXJuIG1fc2hl
bGwtPmNyZWF0ZU5ld1dpbmRvdyhXZWJVUkwoKSktPndlYlZpZXcoKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111109</attachid>
            <date>2011-10-14 16:55:04 -0700</date>
            <delta_ts>2011-10-17 13:21:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68803-20111015015502.patch</filename>
            <type>text/plain</type>
            <size>24457</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTczNzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2OGUyNWE0YTdjZDViNmQ1YzY2ZDEy
ZGQzYzY1NDExOGZmOThkNzFkLi4xNDNiM2U5NmQ2MDFjZjNkMDg1NzU0ZjVlZWYzNDczNTk3Zjll
ZjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTAtMTQgIEpvY2hlbiBFaXNpbmdlciAg
PGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVmVyaWZ5IHRoYXQgdGhlIFVSTCB0byBi
ZSBvcGVuZWQgaW4gdGhlIG5ldyB3aW5kb3cgaXMgcGFzc2VkIGJ5IGRpc3BhdGNoQ3JlYXRlV2lu
ZG93IGRvd24gdG8gY3JlYXRlVmlldy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2xvYWRlci9jcmVhdGUtdmll
dy10YXJnZXQtYmxhbmstZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2xvYWRlci9jcmVhdGUtdmlldy10YXJnZXQtYmxhbmsuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2RvbmUu
aHRtbDogQWRkZWQuCisKIDIwMTEtMTAtMTMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTkz
MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9sb2FkZXIv
Y3JlYXRlLXZpZXctdGFyZ2V0LWJsYW5rLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvbG9hZGVyL2NyZWF0ZS12aWV3LXRhcmdldC1ibGFuay1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjdmYTQwMTdkMDI1Mzk3ZDJkNGM2YjE3OGJlMTI4MDY4MzU4YTJi
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
bG9hZGVyL2NyZWF0ZS12aWV3LXRhcmdldC1ibGFuay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitjcmVhdGVWaWV3KGRvbmUuaHRtbCkKK1RoaXMgdGVzdCBvcGVucyBhIG5ldyB3aW5kb3cg
YnkgbWlkZGxlLWNsaWNraW5nIG9uIGEgbGluayB3aXRoIHRhcmdldD1fYmxhbmsuIEl0IHBhc3Nl
cywgaWYgdGhlIFdlYlZpZXdDbGllbnQ6OmNyZWF0ZVZpZXcgbWV0aG9kIHdhcyBpbnZva2VkIHdp
dGggdGhlIHBhcmFtZXRlciAiZG9uZS5odG1sIi4KKworbGluawpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9sb2FkZXIvY3JlYXRlLXZpZXctdGFyZ2V0LWJs
YW5rLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2xvYWRlci9jcmVh
dGUtdmlldy10YXJnZXQtYmxhbmsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjkyZWVjNmRiOWQyNWFkNmE5
ZGQ1YmJkYzlkNmMyYWEwYjM3MTQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9sb2FkZXIvY3JlYXRlLXZpZXctdGFyZ2V0LWJsYW5rLmh0bWwK
QEAgLTAsMCArMSwzMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDcmVhdGVWaWV3KCk7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKTsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGluayIpOworICAg
IHZhciBtaWRkbGVNb3VzZUJ1dHRvbiA9IDE7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
bGluay5vZmZzZXRMZWZ0ICsgMiwgbGluay5vZmZzZXRUb3AgKyAyKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZURvd24obWlkZGxlTW91c2VCdXR0b24pOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
bWlkZGxlTW91c2VCdXR0b24pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8ZGl2PgorICAgIDxwPgorICAgICAgICBUaGlzIHRlc3Qgb3BlbnMgYSBu
ZXcgd2luZG93IGJ5IG1pZGRsZS1jbGlja2luZyBvbiBhIGxpbmsgd2l0aAorICAgICAgICB0YXJn
ZXQ9X2JsYW5rLiBJdCBwYXNzZXMsIGlmIHRoZSBXZWJWaWV3Q2xpZW50OjpjcmVhdGVWaWV3IG1l
dGhvZCB3YXMKKyAgICAgICAgaW52b2tlZCB3aXRoIHRoZSBwYXJhbWV0ZXIgImRvbmUuaHRtbCIu
CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICA8YSBocmVmPSJyZXNvdXJjZXMvZG9uZS5odG1s
IiBpZD0ibGluayIgdGFyZ2V0PSJfYmxhbmsiPmxpbms8L2E+CisgICAgPC9wPgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZG9uZS5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2RvbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjhh
NmRjNDYyNDkyZTZmNmJlNGNlZTg5ZWIxZjcyM2FlNDgxMWFkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2RvbmUu
aHRtbApAQCAtMCwwICsxLDQgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDliZjAzNmM2ZDZhYWVhNGM5MWVhOWVkOGM0YmUyNTBiYzExOGNlYzUu
LjA3Y2NjODQwM2IyYTZmY2NkNzkyMWE2N2ViZTQ2NTNmZmI0NTgyODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNiBAQAorMjAxMS0xMC0xNCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBNYWtlIE5hdmlnYXRpb25BY3Rpb24gd3JhcCBhIFJlc291cmNl
UmVxdWVzdCBpbnN0ZWFkIG9mIGEgS1VSTC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY4ODAzCisKKyAgICAgICAgV2l0aCB0aGlzLCBGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlIGtub3dzIGFib3V0IHRoZQorICAgICAgICByZXF1
ZXN0IHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgaW5pdGlhbCBuYXZpZ2Fpb24gb2YgdGhlIHRv
IGJlCisgICAgICAgIGNyZWF0ZWQgcGFnZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2xvYWRlci9j
cmVhdGUtdmlldy10YXJnZXQtYmxhbmsuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkVVJMKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpyZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRQb3N0
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0
ZXJOZXdXaW5kb3dQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRE
aWZmZXJlbnREb2N1bWVudEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV2luZG93KToK
KyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBsb2FkZXIv
TmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbjo6
aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uOjp1cmwpOgorICAg
ICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbjo6cmVzb3VyY2VSZXF1ZXN0KToKKyAgICAg
ICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lD
aGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZW5OZXdXaW5kb3cpOgorCiAy
MDExLTEwLTEzICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5MzIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGM1YzIwNDgxZmE1YzFhYzYwYzY1Y2Y1NGI1NTVlYmQ2
OTI4OWE5N2IuLjYyMDBlNGY4MTgxOTUwNzdlMjI4MjUyYTQ3OWZlZjI0ZjZkNjE5MTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTE5OSw3ICsxMTk5LDcgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChjb25zdCBLVVJMJiBuZXdVUkwsIGNvbnN0IFN0cmluZyYg
cmVmZXJyZXIsIGNvbnN0IFN0cmkKICAgICBpZiAobV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rp
c3BhdGNoZWQgIT0gTm9EaXNtaXNzYWwpCiAgICAgICAgIHJldHVybjsKIAotICAgIE5hdmlnYXRp
b25BY3Rpb24gYWN0aW9uKG5ld1VSTCwgbmV3TG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Npb24sIGV2
ZW50KTsKKyAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbihyZXF1ZXN0LCBuZXdMb2FkVHlwZSwg
aXNGb3JtU3VibWlzc2lvbiwgZXZlbnQpOwogCiAgICAgaWYgKCF0YXJnZXRGcmFtZSAmJiAhZnJh
bWVOYW1lLmlzRW1wdHkoKSkgewogICAgICAgICBwb2xpY3lDaGVja2VyKCktPmNoZWNrTmV3V2lu
ZG93UG9saWN5KGFjdGlvbiwgRnJhbWVMb2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dp
bmRvd1BvbGljeSwKQEAgLTEyNjgsNyArMTI2OCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHBvbGljeUNoZWNrZXIoKS0+Y2hlY2tOZXdX
aW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnVybCgpLCBOYXZpZ2F0aW9uVHlw
ZU90aGVyKSwgRnJhbWVMb2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGlj
eSwgcmVxdWVzdCwgMCwgZnJhbWVOYW1lLCB0aGlzKTsKKyAgICBwb2xpY3lDaGVja2VyKCktPmNo
ZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCwgTmF2aWdhdGlvblR5
cGVPdGhlciksIEZyYW1lTG9hZGVyOjpjYWxsQ29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xp
Y3ksIHJlcXVlc3QsIDAsIGZyYW1lTmFtZSwgdGhpcyk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6
OmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgYm9vbCBsb2NrSGlzdG9yeSwgRnJhbWVM
b2FkVHlwZSB0eXBlLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlKQpAQCAtMTM0Niw3
ICsxMzQ2LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihEb2N1
bWVudExvYWRlciogbG9hZGVyLCBGcmFtZUxvYWRUeXBlIHQKIAogICAgIGlmIChzaG91bGRTY3Jv
bGxUb0FuY2hvcihpc0Zvcm1TdWJtaXNzaW9uLCAgaHR0cE1ldGhvZCwgcG9saWN5Q2hlY2tlcigp
LT5sb2FkVHlwZSgpLCBuZXdVUkwpKSB7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4g
b2xkRG9jdW1lbnRMb2FkZXIgPSBtX2RvY3VtZW50TG9hZGVyOwotICAgICAgICBOYXZpZ2F0aW9u
QWN0aW9uIGFjdGlvbihuZXdVUkwsIHBvbGljeUNoZWNrZXIoKS0+bG9hZFR5cGUoKSwgaXNGb3Jt
U3VibWlzc2lvbik7CisgICAgICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uKGxvYWRlci0+cmVx
dWVzdCgpLCBwb2xpY3lDaGVja2VyKCktPmxvYWRUeXBlKCksIGlzRm9ybVN1Ym1pc3Npb24pOwog
CiAgICAgICAgIG9sZERvY3VtZW50TG9hZGVyLT5zZXRUcmlnZ2VyaW5nQWN0aW9uKGFjdGlvbik7
CiAgICAgICAgIHBvbGljeUNoZWNrZXIoKS0+c3RvcENoZWNrKCk7CkBAIC0xMzU5LDcgKzEzNTks
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKERvY3VtZW50TG9h
ZGVyKiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdAogICAgICAgICBwb2xpY3lDaGVja2VyKCktPnN0
b3BDaGVjaygpOwogICAgICAgICBzZXRQb2xpY3lEb2N1bWVudExvYWRlcihsb2FkZXIpOwogICAg
ICAgICBpZiAobG9hZGVyLT50cmlnZ2VyaW5nQWN0aW9uKCkuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgbG9hZGVyLT5zZXRUcmlnZ2VyaW5nQWN0aW9uKE5hdmlnYXRpb25BY3Rpb24obmV3VVJMLCBw
b2xpY3lDaGVja2VyKCktPmxvYWRUeXBlKCksIGlzRm9ybVN1Ym1pc3Npb24pKTsKKyAgICAgICAg
ICAgIGxvYWRlci0+c2V0VHJpZ2dlcmluZ0FjdGlvbihOYXZpZ2F0aW9uQWN0aW9uKGxvYWRlci0+
cmVxdWVzdCgpLCBwb2xpY3lDaGVja2VyKCktPmxvYWRUeXBlKCksIGlzRm9ybVN1Ym1pc3Npb24p
KTsKIAogICAgICAgICBpZiAoRWxlbWVudCogb3duZXJFbGVtZW50ID0gbV9mcmFtZS0+b3duZXJF
bGVtZW50KCkpIHsKICAgICAgICAgICAgIC8vIFdlIHNraXAgZGlzcGF0Y2hpbmcgdGhlIGJlZm9y
ZWxvYWQgZXZlbnQgaWYgd2UndmUgYWxyZWFkeQpAQCAtMTQ3OSw3ICsxNDc5LDcgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6cmVsb2FkKGJvb2wgZW5kVG9FbmRSZWxvYWQpCiAKICAgICAvLyBJZiB3ZSdy
ZSBhYm91dCB0byByZS1wb3N0LCBzZXQgdXAgYWN0aW9uIHNvIHRoZSBhcHBsaWNhdGlvbiBjYW4g
d2FybiB0aGUgdXNlci4KICAgICBpZiAocmVxdWVzdC5odHRwTWV0aG9kKCkgPT0gIlBPU1QiKQot
ICAgICAgICBsb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oTmF2aWdhdGlvbkFjdGlvbihyZXF1
ZXN0LnVybCgpLCBOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZCkpOworICAgICAgICBsb2Fk
ZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBOYXZpZ2F0
aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZCkpOwogCiAgICAgbG9hZGVyLT5zZXRPdmVycmlkZUVuY29k
aW5nKG1fZG9jdW1lbnRMb2FkZXItPm92ZXJyaWRlRW5jb2RpbmcoKSk7CiAgICAgCkBAIC0yNTc3
LDcgKzI1NzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiBpblJlcXVlc3QsIGNvbnN0IFN0cmluZwogICAgIHdvcmtpbmdSZXNvdXJj
ZVJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTsKICAgICBhZGRFeHRyYUZp
ZWxkc1RvUmVxdWVzdCh3b3JraW5nUmVzb3VyY2VSZXF1ZXN0LCBsb2FkVHlwZSwgdHJ1ZSk7CiAK
LSAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbih1cmwsIGxvYWRUeXBlLCB0cnVlLCBldmVudCk7
CisgICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24od29ya2luZ1Jlc291cmNlUmVxdWVzdCwgbG9h
ZFR5cGUsIHRydWUsIGV2ZW50KTsKIAogICAgIGlmICghZnJhbWVOYW1lLmlzRW1wdHkoKSkgewog
ICAgICAgICAvLyBUaGUgc2VhcmNoIGZvciBhIHRhcmdldCBmcmFtZSBpcyBkb25lIGVhcmxpZXIg
aW4gdGhlIGNhc2Ugb2YgZm9ybSBzdWJtaXNzaW9uLgpAQCAtMjg3MSw3ICsyODcxLDcgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3koY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXMKICAgICBtYWluRnJhbWUtPmxvYWRlcigpLT5tX2NsaWVudC0+
ZGlzcGF0Y2hTaG93KCk7CiAgICAgaWYgKCFtX3N1cHByZXNzT3BlbmVySW5OZXdGcmFtZSkKICAg
ICAgICAgbWFpbkZyYW1lLT5sb2FkZXIoKS0+c2V0T3BlbmVyKGZyYW1lLmdldCgpKTsKLSAgICBt
YWluRnJhbWUtPmxvYWRlcigpLT5sb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCwgTmF2
aWdhdGlvbkFjdGlvbigpLCBmYWxzZSwgRnJhbWVMb2FkVHlwZVN0YW5kYXJkLCBmb3JtU3RhdGUp
OworICAgIG1haW5GcmFtZS0+bG9hZGVyKCktPmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihyZXF1
ZXN0LCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QpLCBmYWxzZSwgRnJhbWVMb2FkVHlwZVN0YW5k
YXJkLCBmb3JtU3RhdGUpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpyZXF1ZXN0RnJvbURlbGVn
YXRlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdW5zaWduZWQgbG9uZyYgaWRlbnRpZmllciwg
UmVzb3VyY2VFcnJvciYgZXJyb3IpCkBAIC0zMDM0LDcgKzMwMzQsNiBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtKiBpdGVtLCBGcmFtZUxv
YWRUeXBlIGxvYQogICAgICAgICBjdXJyZW50VVJMID0gZG9jdW1lbnRMb2FkZXIoKS0+dXJsKCk7
CiAgICAgUmVmUHRyPEZvcm1EYXRhPiBmb3JtRGF0YSA9IGl0ZW0tPmZvcm1EYXRhKCk7CiAKLSAg
ICBib29sIGFkZGVkRXh0cmFGaWVsZHMgPSBmYWxzZTsKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChpdGVtVVJMKTsKIAogICAgIGlmICghaXRlbS0+cmVmZXJyZXIoKS5pc051bGwoKSkKQEAg
LTMwNTQsNyArMzA1Myw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVu
dEl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9hCiAgICAgICAgIC8vIE1h
a2Ugc3VyZSB0byBhZGQgZXh0cmEgZmllbGRzIHRvIHRoZSByZXF1ZXN0IGFmdGVyIHRoZSBPcmln
aW4gaGVhZGVyIGlzIGFkZGVkIGZvciB0aGUgRm9ybURhdGEgY2FzZS4KICAgICAgICAgLy8gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE5NCBmb3IgbW9yZSBk
aXNjdXNzaW9uLgogICAgICAgICBhZGRFeHRyYUZpZWxkc1RvUmVxdWVzdChyZXF1ZXN0LCBtX2xv
YWRUeXBlLCB0cnVlKTsKLSAgICAgICAgYWRkZWRFeHRyYUZpZWxkcyA9IHRydWU7CiAgICAgICAg
IAogICAgICAgICAvLyBGSVhNRTogU2xpZ2h0IGhhY2sgdG8gdGVzdCBpZiB0aGUgTlNVUkwgY2Fj
aGUgY29udGFpbnMgdGhlIHBhZ2Ugd2UncmUgZ29pbmcgdG8uCiAgICAgICAgIC8vIFdlIHdhbnQg
dG8ga25vdyB0aGlzIGJlZm9yZSB0YWxraW5nIHRvIHRoZSBwb2xpY3kgZGVsZWdhdGUsIHNpbmNl
IGl0IGFmZmVjdHMgd2hldGhlciAKQEAgLTMwNjUsMTAgKzMwNjMsMTAgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSogaXRlbSwgRnJhbWVM
b2FkVHlwZSBsb2EKICAgICAgICAgLy8gZXh0cmVtZWx5IHJhcmUsIGJ1dCBpbiB0aGF0IGNhc2Ug
dGhlIHVzZXIgd2lsbCBnZXQgYW4gZXJyb3Igb24gdGhlIG5hdmlnYXRpb24uCiAgICAgICAgIAog
ICAgICAgICBpZiAoUmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKHJlcXVlc3QsIG1f
ZnJhbWUpKQotICAgICAgICAgICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbihpdGVtVVJMLCBs
b2FkVHlwZSwgZmFsc2UpOworICAgICAgICAgICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbihy
ZXF1ZXN0LCBsb2FkVHlwZSwgZmFsc2UpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIHJl
cXVlc3Quc2V0Q2FjaGVQb2xpY3koUmVsb2FkSWdub3JpbmdDYWNoZURhdGEpOwotICAgICAgICAg
ICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbihpdGVtVVJMLCBOYXZpZ2F0aW9uVHlwZUZvcm1S
ZXN1Ym1pdHRlZCk7CisgICAgICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVl
c3QsIE5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkKTsKICAgICAgICAgfQogICAgIH0gZWxz
ZSB7CiAgICAgICAgIHN3aXRjaCAobG9hZFR5cGUpIHsKQEAgLTMwOTIsMTIgKzMwOTAsMTMgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSog
aXRlbSwgRnJhbWVMb2FkVHlwZSBsb2EKICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgfQogCi0gICAgICAgIGFjdGlvbiA9IE5hdmlnYXRpb25BY3Rpb24oaXRl
bU9yaWdpbmFsVVJMLCBsb2FkVHlwZSwgZmFsc2UpOwotICAgIH0KLSAgICAKLSAgICBpZiAoIWFk
ZGVkRXh0cmFGaWVsZHMpCiAgICAgICAgIGFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KHJlcXVlc3Qs
IG1fbG9hZFR5cGUsIHRydWUpOwogCisgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0Rm9y
T3JpZ2luYWxVUkwocmVxdWVzdCk7CisgICAgICAgIHJlcXVlc3RGb3JPcmlnaW5hbFVSTC5zZXRV
UkwoaXRlbU9yaWdpbmFsVVJMKTsKKyAgICAgICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbihy
ZXF1ZXN0Rm9yT3JpZ2luYWxVUkwsIGxvYWRUeXBlLCBmYWxzZSk7CisgICAgfQorCiAgICAgbG9h
ZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIGFjdGlvbiwgZmFsc2UsIGxvYWRUeXBlLCAw
KTsKIH0KIApAQCAtMzI4MSw3ICszMjgwLDcgQEAgRnJhbWUqIGNyZWF0ZVdpbmRvdyhGcmFtZSog
b3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWUKICAg
ICBpZiAoIW9sZFBhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgTmF2aWdhdGlvbkFjdGlv
biBhY3Rpb247CisgICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24ocmVxdWVzdFdpdGhSZWZlcnJl
ci5yZXNvdXJjZVJlcXVlc3QoKSk7CiAgICAgUGFnZSogcGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgp
LT5jcmVhdGVXaW5kb3cob3BlbmVyRnJhbWUsIHJlcXVlc3RXaXRoUmVmZXJyZXIsIGZlYXR1cmVz
LCBhY3Rpb24pOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKaW5kZXggZWQ2OGU0MzQxZDViZTAwMGFk
ZTM4MTE0MWUzZjdkZWQ3NGM4ZDdhNC4uZTg0MGZiMmE5MGYyZjA5YWYyYzQxZjBhOWZjZWU1NmRi
ZWNjZTQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcApA
QCAtNTIsMjkgKzUyLDM1IEBAIE5hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24oKQog
ewogfQogCi1OYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IEtVUkwmIHVy
bCwgTmF2aWdhdGlvblR5cGUgdHlwZSkKLSAgICA6IG1fVVJMKHVybCkKK05hdmlnYXRpb25BY3Rp
b246Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QpCisgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgLCBtX3R5
cGUoTmF2aWdhdGlvblR5cGVPdGhlcikKK3sKK30KKworTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdh
dGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgTmF2aWdh
dGlvblR5cGUgdHlwZSkKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkK
ICAgICAsIG1fdHlwZSh0eXBlKQogewogfQogCi1OYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9u
QWN0aW9uKGNvbnN0IEtVUkwmIHVybCwgRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlLAorTmF2
aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCwgRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlLAogICAgICAgICBib29s
IGlzRm9ybVN1Ym1pc3Npb24pCi0gICAgOiBtX1VSTCh1cmwpCisgICAgOiBtX3Jlc291cmNlUmVx
dWVzdChyZXNvdXJjZVJlcXVlc3QpCiAgICAgLCBtX3R5cGUobmF2aWdhdGlvblR5cGUoZnJhbWVM
b2FkVHlwZSwgaXNGb3JtU3VibWlzc2lvbiwgMCkpCiB7CiB9CiAKLU5hdmlnYXRpb25BY3Rpb246
Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgS1VSTCYgdXJsLCBOYXZpZ2F0aW9uVHlwZSB0eXBlLCBQ
YXNzUmVmUHRyPEV2ZW50PiBldmVudCkKLSAgICA6IG1fVVJMKHVybCkKK05hdmlnYXRpb25BY3Rp
b246Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QsIE5hdmlnYXRpb25UeXBlIHR5cGUsIFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQorICAgIDog
bV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQogICAgICwgbV90eXBlKHR5cGUpCiAg
ICAgLCBtX2V2ZW50KGV2ZW50KQogewogfQogCi1OYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9u
QWN0aW9uKGNvbnN0IEtVUkwmIHVybCwgRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlLAorTmF2
aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCwgRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlLAogICAgICAgICBib29s
IGlzRm9ybVN1Ym1pc3Npb24sIFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQotICAgIDogbV9VUkwo
dXJsKQorICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQogICAgICwgbV90
eXBlKG5hdmlnYXRpb25UeXBlKGZyYW1lTG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Npb24sIGV2ZW50
KSkKICAgICAsIG1fZXZlbnQoZXZlbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25BY3Rpb24uaAppbmRleCAwNDc3YzZlMmU4MzQwZWM0ZjRmNDkzMGU1NmUyZjYwMzA5MDVjMjIy
Li5lZWVlODhjMzBiODk3NzFlOGEwY2U0MjhiOWRjZTcwYzgwZjliNzU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJFdmVudC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJLVVJM
LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksMTkgKzQwLDIyIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uIHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIE5hdmlnYXRpb25BY3Rpb24oKTsKLSAgICAgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBL
VVJMJiwgTmF2aWdhdGlvblR5cGUpOwotICAgICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IEtV
UkwmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9ybVN1Ym1pc3Npb24pOwotICAgICAgICBOYXZp
Z2F0aW9uQWN0aW9uKGNvbnN0IEtVUkwmLCBOYXZpZ2F0aW9uVHlwZSwgUGFzc1JlZlB0cjxFdmVu
dD4pOwotICAgICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IEtVUkwmLCBGcmFtZUxvYWRUeXBl
LCBib29sIGlzRm9ybVN1Ym1pc3Npb24sIFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAgICAgICAgTmF2
aWdhdGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICAgICAgTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uVHlwZSk7CisgICAgICAg
IE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWVMb2FkVHlwZSwg
Ym9vbCBpc0Zvcm1TdWJtaXNzaW9uKTsKKyAgICAgICAgTmF2aWdhdGlvbkFjdGlvbihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uVHlwZSwgUGFzc1JlZlB0cjxFdmVudD4pOworICAg
ICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZyYW1lTG9hZFR5
cGUsIGJvb2wgaXNGb3JtU3VibWlzc2lvbiwgUGFzc1JlZlB0cjxFdmVudD4pOwogCi0gICAgICAg
IGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fVVJMLmlzRW1wdHkoKTsgfQorICAgICAg
ICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC51cmwoKS5p
c0VtcHR5KCk7IH0KKworICAgICAgICBLVVJMIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3Vy
Y2VSZXF1ZXN0LnVybCgpOyB9CisgICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3Vy
Y2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KIAotICAgICAg
ICBLVVJMIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fVVJMOyB9CiAgICAgICAgIE5hdmlnYXRpb25U
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICAgICAgY29uc3QgRXZlbnQq
IGV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9ldmVudC5nZXQoKTsgfQogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgS1VSTCBtX1VSTDsKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VS
ZXF1ZXN0OwogICAgICAgICBOYXZpZ2F0aW9uVHlwZSBtX3R5cGU7CiAgICAgICAgIFJlZlB0cjxF
dmVudD4gbV9ldmVudDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BvbGljeUNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIu
Y3BwCmluZGV4IGY5MjgwYWQyNWFlOGVhYjBkYzU2Y2U1ZWI2NDg2ZDg1YTc0ZDljMmMuLjk4MmI0
ZWEzYzcyNWM0ZmFiYWUxZGVmMDM3Zjc1NjRlYzkwZjE3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUG9saWN5Q2hlY2tlci5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBQb2xpY3lDaGVja2Vy
OjpjaGVja05hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBE
b2N1bWUKIHsKICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiA9IGxvYWRlci0+dHJpZ2dlcmlu
Z0FjdGlvbigpOwogICAgIGlmIChhY3Rpb24uaXNFbXB0eSgpKSB7Ci0gICAgICAgIGFjdGlvbiA9
IE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC51cmwoKSwgTmF2aWdhdGlvblR5cGVPdGhlcik7Cisg
ICAgICAgIGFjdGlvbiA9IE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCwgTmF2aWdhdGlvblR5cGVP
dGhlcik7CiAgICAgICAgIGxvYWRlci0+c2V0VHJpZ2dlcmluZ0FjdGlvbihhY3Rpb24pOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IGJmZGM3YmUyNjZmMjZiNmI4MWQ2NjFkYjY2ODQ0YzZjMjFhNzc2MDQuLmQ3MTM1ODVkZDli
ODcxOWEyMDNlNTQ4NGE0NmQwMTgyYjA4NTQwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgdm9p
ZCBvcGVuTmV3V2luZG93KGNvbnN0IEtVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lKQogewog
ICAgIGlmIChQYWdlKiBvbGRQYWdlID0gZnJhbWUtPnBhZ2UoKSkgewogICAgICAgICBGcmFtZUxv
YWRSZXF1ZXN0IHJlcXVlc3QoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJl
c291cmNlUmVxdWVzdCh1cmxUb0xvYWQsIGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJl
cigpKSk7Ci0gICAgICAgIGlmIChQYWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCktPmNy
ZWF0ZVdpbmRvdyhmcmFtZSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlvbkFj
dGlvbigpKSkgeworICAgICAgICBpZiAoUGFnZSogbmV3UGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgp
LT5jcmVhdGVXaW5kb3coZnJhbWUsIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRp
b25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSkpKSB7CiAgICAgICAgICAgICBuZXdQ
YWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmxvYWRGcmFtZVJlcXVlc3QocmVxdWVzdCwgZmFs
c2UsIGZhbHNlLCAwLCAwLCBTZW5kUmVmZXJyZXIpOyAgIAogICAgICAgICAgICAgbmV3UGFnZS0+
Y2hyb21lKCktPnNob3coKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBkYTU0Zjg4MTUxOTNhNzcwNzBkNGQ4NzQ3N2U3ODU5Y2I4Y2RkZjQxLi4xZjIwNzc2ZWQyZmVk
MzE1MDQxZTA5MzYxNmJhNjc5YzgyNmFkMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDExLTEwLTE0ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIE1ha2UgTmF2aWdhdGlvbkFjdGlvbiB3cmFwIGEgUmVzb3Vy
Y2VSZXF1ZXN0IGluc3RlYWQgb2YgYSBLVVJMLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MDMKKworICAgICAgICBVc2UgdGhlIHJlcXVlc3QgaW4g
dGhlIE5hdmlnYXRpb25BY3Rpb24sIGlmIHRoZSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGRv
ZXNuJ3QgYWxyZWFkeSBjb250YWluIGEgcmVxdWVzdC4KKworICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRl
V2luZG93KToKKwogMjAxMS0xMC0xMyAgUGVuZyBIdWFuZyAgPHNoYXduLnAuaHVhbmdAZ21haWwu
Y29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIGEgc2VsZWN0aW9uQm91bmRzKCkgbWV0aG9k
IHRvIFdlYldpZGdldC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAKaW5kZXggMDU5ZGU3NzI2ZGZlODNkYmY1ODNmN2NiZDJjYzRhYWUzM2MzNWM3
Yi4uNzVjMmJlZGQ3ZmIzM2ZlYzVjMWE2MTMyMmM5ZWEyYzAyNzVhMjI1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTI1Niw3ICsy
NTYsNyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUq
KQogfQogCiBQYWdlKiBDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVXaW5kb3coCi0gICAgRnJhbWUq
IGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYg
ZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQorICAgIEZyYW1lKiBmcmFtZSwgY29u
c3QgRnJhbWVMb2FkUmVxdWVzdCYgciwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24pCiB7CiAgICAgaWYgKCFtX3dlYlZpZXctPmNs
aWVudCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTI2NCw2ICsyNjQsOCBAQCBQYWdlKiBDaHJv
bWVDbGllbnRJbXBsOjpjcmVhdGVXaW5kb3coCiAgICAgV3JhcHBlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0OwogICAgIGlmICghci5yZXNvdXJjZVJlcXVlc3QoKS5pc0VtcHR5KCkpCiAgICAgICAg
IHJlcXVlc3QuYmluZChyLnJlc291cmNlUmVxdWVzdCgpKTsKKyAgICBlbHNlIGlmICghYWN0aW9u
LnJlc291cmNlUmVxdWVzdCgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmVxdWVzdC5iaW5kKGFjdGlv
bi5yZXNvdXJjZVJlcXVlc3QoKSk7CiAgICAgV2ViVmlld0ltcGwqIG5ld1ZpZXcgPSBzdGF0aWNf
Y2FzdDxXZWJWaWV3SW1wbCo+KAogICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5jcmVhdGVW
aWV3KFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGZyYW1lKSwgcmVxdWVzdCwgZmVhdHVyZXMsIHIu
ZnJhbWVOYW1lKCkpKTsKICAgICBpZiAoIW5ld1ZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWNmNTZiZjk3ZmZjMDA2OGQzNTRiNmYzOWI3
YzBkYzAyMDYyNzhkOS4uZGNjNmM3MjZmMzUyNjA4MDMxMzAxYzFhYmVmY2NlNTc3MDY2OGRlNSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDExLTEwLTE0ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gYWRkIExheW91dFRlc3RDb250cm9sbGVyLmR1bXBD
cmVhdGVWaWV3KCkgdG8gbW9uaXRvciBjYWxscyB0byBXZWJWaWV3Q2xpZW50OjpjcmVhdGVWaWV3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgwMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91
dFRlc3RDb250cm9sbGVyOjpkdW1wQ3JlYXRlVmlldyk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpzaG91bGREdW1wQ3JlYXRlVmlldyk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmNyZWF0
ZVZpZXcpOgorCiAyMDExLTEwLTEzICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbQ2hyb21pdW1dIEEgRFJUIGZpeCBmb3Igcjk3MzQ4LgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDcxZWMzYTEyNDM4ZWQ4YTY3NTY2Y2I1MjZmODcxYjBiMTBlOWNkMGUuLjY3MDIzYjM5NWI5
ZjViNzljOWNlMDEwOTk2NWY0MGYwMjE5ZjI0YTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTExMiw2ICsx
MTIsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNo
ZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJkdW1wU3RhdHVzQ2FsbGJhY2tzIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpkdW1wV2luZG93U3RhdHVzQ2hhbmdlcyk7CiAgICAgYmluZE1ldGhv
ZCgiZHVtcFRpdGxlQ2hhbmdlcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcFRpdGxlQ2hh
bmdlcyk7CiAgICAgYmluZE1ldGhvZCgiZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MiLCAm
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzKTsKKyAg
ICBiaW5kTWV0aG9kKCJkdW1wQ3JlYXRlVmlldyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVt
cENyZWF0ZVZpZXcpOwogICAgIGJpbmRNZXRob2QoImVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9y
RWxlbWVudFdpdGhJZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZWxlbWVudERvZXNBdXRvQ29t
cGxldGVGb3JFbGVtZW50V2l0aElkKTsKICAgICBiaW5kTWV0aG9kKCJldmFsdWF0ZUluV2ViSW5z
cGVjdG9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKTsK
ICAgICBiaW5kTWV0aG9kKCJldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6ZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQpOwpAQCAtMzg0LDYg
KzM4NSwxMiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wUGVybWlzc2lvbkNsaWVu
dENhbGxiYWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLAogICAgIHJlc3VsdC0+c2V0TnVsbCgp
OwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wQ3JlYXRlVmlldyhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgbV9kdW1wQ3JlYXRl
VmlldyA9IHRydWU7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEFjY2VwdHNFZGl0aW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkg
PiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDFiZTE1OTZlYzUxOGQw
MDNkOTcyNjUxYTlhYWUzMWY1ZjM3YjI5NzEuLjAxYjZlY2M1NWJiZTcxYTFjYjgwYzA4YjZmZTdi
NDE1ZTQ1YTA1ZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTMxLDYgKzEzMSwxMSBAQCBwdWJsaWM6CiAgICAg
Ly8gSXQgdGFrZXMgbm8gYXJndW1lbnRzLCBhbmQgaWdub3JlcyBhbnkgdGhhdCBtYXkgYmUgcHJl
c2VudC4KICAgICB2b2lkIGR1bXBXaW5kb3dTdGF0dXNDaGFuZ2VzKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKIAorICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcg
dGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVsbCB0byBkdW1wIGFsbCBjYWxscyB0bworICAgIC8vIFdl
YlZpZXdDbGllbnQ6OmNyZWF0ZVZpZXcoKS4KKyAgICAvLyBJdCB0YWtlcyBubyBhcmd1bWVudHMs
IGFuZCBpZ25vcmVzIGFueSB0aGF0IG1heSBiZSBwcmVzZW50LgorICAgIHZvaWQgZHVtcENyZWF0
ZVZpZXcoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiAgICAgLy8gV2hl
biBjYWxsZWQgd2l0aCBhIGJvb2xlYW4gYXJndW1lbnQsIHRoaXMgc2V0cyBhIGZsYWcgdGhhdCBj
b250cm9scwogICAgIC8vIHdoZXRoZXIgY29udGVudC1lZGl0YWJsZSBlbGVtZW50cyBhY2NlcHQg
ZWRpdGluZyBmb2N1cyB3aGVuIGFuIGVkaXRpbmcKICAgICAvLyBhdHRlbXB0IGlzIG1hZGUuIEl0
IGlnbm9yZXMgYW55IGFkZGl0aW9uYWwgYXJndW1lbnRzLgpAQCAtNDM0LDYgKzQzOSw3IEBAIHB1
YmxpYzoKICAgICBib29sIHNob3VsZER1bXBDaGlsZEZyYW1lc0FzVGV4dCgpIHsgcmV0dXJuIG1f
ZHVtcENoaWxkRnJhbWVzQXNUZXh0OyB9CiAgICAgYm9vbCBzaG91bGRHZW5lcmF0ZVBpeGVsUmVz
dWx0cygpIHsgcmV0dXJuIG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHM7IH0KICAgICB2b2lkIHNldFNo
b3VsZEdlbmVyYXRlUGl4ZWxSZXN1bHRzKGJvb2wgdmFsdWUpIHsgbV9nZW5lcmF0ZVBpeGVsUmVz
dWx0cyA9IHZhbHVlOyB9CisgICAgYm9vbCBzaG91bGREdW1wQ3JlYXRlVmlldygpIHsgcmV0dXJu
IG1fZHVtcENyZWF0ZVZpZXc7IH0KICAgICBib29sIGFjY2VwdHNFZGl0aW5nKCkgeyByZXR1cm4g
bV9hY2NlcHRzRWRpdGluZzsgfQogICAgIGJvb2wgY2FuT3BlbldpbmRvd3MoKSB7IHJldHVybiBt
X2Nhbk9wZW5XaW5kb3dzOyB9CiAgICAgYm9vbCBzaG91bGRBZGRGaWxlVG9QYXN0ZWJvYXJkKCkg
eyByZXR1cm4gbV9zaG91bGRBZGRGaWxlVG9QYXN0ZWJvYXJkOyB9CkBAIC01OTQsNiArNjAwLDEw
IEBAIHByaXZhdGU6CiAgICAgLy8gSWYgdHJ1ZSwgdGhlIHRlc3Rfc2hlbGwgd2lsbCBnZW5lcmF0
ZSBwaXhlbCByZXN1bHRzIGluIGR1bXBBc1RleHQgbW9kZQogICAgIGJvb2wgbV9nZW5lcmF0ZVBp
eGVsUmVzdWx0czsKIAorICAgIC8vIElmIHRydWUsIG91dHB1dCBhIGRlc2NyaXB0aXZlIGxpbmUg
ZWFjaCB0aW1lIFdlYlZpZXdDbGllbnQ6OmNyZWF0ZVZpZXcKKyAgICAvLyBpcyBpbnZva2VkLgor
ICAgIGJvb2wgbV9kdW1wQ3JlYXRlVmlldzsKKwogICAgIC8vIElmIHRydWUsIHRoZSBlbGVtZW50
IHdpbGwgYmUgdHJlYXRlZCBhcyBlZGl0YWJsZS4gVGhpcyB2YWx1ZSBpcyByZXR1cm5lZAogICAg
IC8vIGZyb20gdmFyaW91cyBlZGl0aW5nIGNhbGxiYWNrcyB0aGF0IGFyZSBjYWxsZWQganVzdCBi
ZWZvcmUgZWRpdCBvcGVyYXRpb25zCiAgICAgLy8gYXJlIGFsbG93ZWQuCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggMzViNzNjZTdiOWU5YmZh
NDMyMmZiNTFmZjVhODg0NzQzZGRkZGZmYi4uNzY4NzNhNzYyYmJkNmZlZjY4Mzc4MmU1OTZiYmFl
ZDhmYzYyODdmZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdI
b3N0LmNwcApAQCAtMjM3LDEwICsyMzcsMTIgQEAgc3RhdGljIHN0cmluZyB0ZXh0QWZmaW5pdHlE
ZXNjcmlwdGlvbihXZWJUZXh0QWZmaW5pdHkgYWZmaW5pdHkpCiAKIC8vIFdlYlZpZXdDbGllbnQg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi1XZWJWaWV3KiBXZWJWaWV3SG9zdDo6Y3JlYXRlVmlldyhXZWJGcmFtZSosIGNvbnN0
IFdlYlVSTFJlcXVlc3QmLCBjb25zdCBXZWJXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYlN0cmlu
ZyYpCitXZWJWaWV3KiBXZWJWaWV3SG9zdDo6Y3JlYXRlVmlldyhXZWJGcmFtZSosIGNvbnN0IFdl
YlVSTFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2Vi
U3RyaW5nJikKIHsKICAgICBpZiAoIWxheW91dFRlc3RDb250cm9sbGVyKCktPmNhbk9wZW5XaW5k
b3dzKCkpCiAgICAgICAgIHJldHVybiAwOworICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlcigp
LT5zaG91bGREdW1wQ3JlYXRlVmlldygpKQorICAgICAgICBmcHJpbnRmKHN0ZG91dCwgImNyZWF0
ZVZpZXcoJXMpXG4iLCBVUkxEZXNjcmlwdGlvbihyZXF1ZXN0LnVybCgpKS5jX3N0cigpKTsKICAg
ICByZXR1cm4gbV9zaGVsbC0+Y3JlYXRlTmV3V2luZG93KFdlYlVSTCgpKS0+d2ViVmlldygpOwog
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111309</attachid>
            <date>2011-10-17 13:21:47 -0700</date>
            <delta_ts>2013-04-02 14:00:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68803-20111017222145.patch</filename>
            <type>text/plain</type>
            <size>25794</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc2MzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYWZkNGM5NDg0N2NkZmYw
ZmFhNjYwYjQxNDczNmIwNDZjODQ4MzY0Li5iZTI5Mjg3MTljNGJkZjAwYWE3M2I4OGEwZDI1OTZi
ZDI2ODFiYzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMTAtMTQgIEpvY2hl
biBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWFrZSBOYXZpZ2F0
aW9uQWN0aW9uIHdyYXAgYSBSZXNvdXJjZVJlcXVlc3QgaW5zdGVhZCBvZiBhIEtVUkwuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgwMworCisgICAg
ICAgIFdpdGggdGhpcywgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZSBrbm93
cyBhYm91dCB0aGUKKyAgICAgICAgcmVxdWVzdCB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIGlu
aXRpYWwgbmF2aWdhaW9uIG9mIHRoZSB0byBiZQorICAgICAgICBjcmVhdGVkIHBhZ2UuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTmF0ZSBDaGFwaW4uCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9sb2FkZXIvY3JlYXRlLXZpZXctdGFyZ2V0LWJsYW5rLmh0bWwKKworICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlv
bik6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5hdmlnYXRpb25BY3Rpb246OmlzRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbjo6dXJsKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb246OnJl
c291cmNlUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KToKKyAg
ICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpvcGVuTmV3V2luZG93KToKKyAgICAgICAgKiBXZWJDb3JlLmV4cDogdXBkYXRlZAorCiAyMDEx
LTEwLTE3ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzEwMjkzOTI5PiBSRUdSRVNTSU9OIChyOTc1MjUpOiBpQ2hhdCB0cmFuc2NyaXB0
IGhhcyBob3Jpem9udGFsIHNjcm9sbCBiYXIgd2hlbiB0aGUgY29udmVyc2F0aW9uIGluY2x1ZGVz
IGEgd2lkZSBpbWFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA1MGUyNWUzMjA5MDYx
Y2M5ZjQ4YWFkNGQ0NThhNzlmOWI5YmE1NDBkLi42NmU3ZDVmNGRlYzgwOWE5NDNlNzBhY2FjN2Nk
Y2I1ZTZhOTgyMTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDExLTEwLTE0ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIE1ha2UgTmF2aWdhdGlvbkFjdGlvbiB3cmFwIGEgUmVzb3VyY2VSZXF1ZXN0IGluc3Rl
YWQgb2YgYSBLVVJMLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Njg4MDMKKworICAgICAgICBVc2UgdGhlIHJlcXVlc3QgaW4gdGhlIE5hdmlnYXRpb25B
Y3Rpb24sIGlmIHRoZSBGcmFtZUxvYWRSZXF1ZXN0CisgICAgICAgIGRvZXNuJ3QgYWxyZWFkeSBj
b250YWluIGEgcmVxdWVzdC4KKworICAgICAgICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KKwor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50SW1wbDo6Y3JlYXRlV2luZG93KToKKwogMjAxMS0xMC0xNyAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFdlYiBJbnNw
ZWN0b3I6IGRvbid0IGNoZWNrIGZvciBkZWJ1Z2dlciBwYXVzZSBkZXRhaWxzIGluIGludGVyYWN0
aXZlIHVpIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDU0YjQ1MzIxYWVlNzdiYTg0Y2Fk
YTg1ZTU4MTg3YjIzMGM0ZGI1NmQuLmYwNDVkNzk5OTQ1ZTM2NmQxOTMzYzI5ZDhjZjRlMmY0Y2I4
NTA0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC00OTEsOCArNDkxLDkgQEAgX19aTjdXZWJD
b3JlMTZNSU1FVHlwZVJlZ2lzdHJ5MjdnZXRVbnN1cHBvcnRlZFRleHRNSU1FVHlwZXNFdgogX19a
TjdXZWJDb3JlMTZNSU1FVHlwZVJlZ2lzdHJ5Mjdpc1N1cHBvcnRlZE5vbkltYWdlTUlNRVR5cGVF
UktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNk1JTUVUeXBlUmVnaXN0cnkyOWdldFN1cHBv
cnRlZE5vbkltYWdlTUlNRVR5cGVzRXYKIF9fWk43V2ViQ29yZTE2TUlNRVR5cGVSZWdpc3RyeTMy
aXNTdXBwb3J0ZWRJbWFnZVJlc291cmNlTUlNRVR5cGVFUktOM1dURjZTdHJpbmdFCi1fX1pON1dl
YkNvcmUxNk5hdmlnYXRpb25BY3Rpb25DMUVSS05TXzRLVVJMRU5TXzEzRnJhbWVMb2FkVHlwZUVi
Ci1fX1pON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rpb25DMUVSS05TXzRLVVJMRU5TXzE0TmF2aWdh
dGlvblR5cGVFCitfX1pON1dlYkNvcmUxNk5hdmlnYXRpb25BY3Rpb25DMUVSS05TXzE1UmVzb3Vy
Y2VSZXF1ZXN0RQorX19aTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uQzFFUktOU18xNVJlc291
cmNlUmVxdWVzdEVOU18xM0ZyYW1lTG9hZFR5cGVFYgorX19aTjdXZWJDb3JlMTZOYXZpZ2F0aW9u
QWN0aW9uQzFFUktOU18xNVJlc291cmNlUmVxdWVzdEVOU18xNE5hdmlnYXRpb25UeXBlRQogX19a
TjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uQzFFdgogX19aTjdXZWJDb3JlMTZTY3JpcHRDb250
cm9sbGVyMTBpbml0U2NyaXB0RVBOU18xNURPTVdyYXBwZXJXb3JsZEUKIF9fWk43V2ViQ29yZTE2
U2NyaXB0Q29udHJvbGxlcjExY3JlYXRlV29ybGRFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKaW5kZXggYzVjMjA0ODFmYTVjMWFjNjBjNjVjZjU0YjU1NWViZDY5Mjg5YTk3Yi4u
NjIwMGU0ZjgxODE5NTA3N2UyMjgyNTJhNDc5ZmVmMjRmNmQ2MTkxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xMTk5LDcgKzExOTksNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpsb2FkVVJMKGNvbnN0IEtVUkwmIG5ld1VSTCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
Y29uc3QgU3RyaQogICAgIGlmIChtX3BhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCAh
PSBOb0Rpc21pc3NhbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTmF2aWdhdGlvbkFjdGlvbiBh
Y3Rpb24obmV3VVJMLCBuZXdMb2FkVHlwZSwgaXNGb3JtU3VibWlzc2lvbiwgZXZlbnQpOworICAg
IE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uKHJlcXVlc3QsIG5ld0xvYWRUeXBlLCBpc0Zvcm1TdWJt
aXNzaW9uLCBldmVudCk7CiAKICAgICBpZiAoIXRhcmdldEZyYW1lICYmICFmcmFtZU5hbWUuaXNF
bXB0eSgpKSB7CiAgICAgICAgIHBvbGljeUNoZWNrZXIoKS0+Y2hlY2tOZXdXaW5kb3dQb2xpY3ko
YWN0aW9uLCBGcmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5
LApAQCAtMTI2OCw3ICsxMjY4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLAogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgcG9saWN5Q2hlY2tlcigpLT5jaGVja05ld1dpbmRvd1BvbGlj
eShOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QudXJsKCksIE5hdmlnYXRpb25UeXBlT3RoZXIpLCBG
cmFtZUxvYWRlcjo6Y2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5LCByZXF1ZXN0
LCAwLCBmcmFtZU5hbWUsIHRoaXMpOworICAgIHBvbGljeUNoZWNrZXIoKS0+Y2hlY2tOZXdXaW5k
b3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBOYXZpZ2F0aW9uVHlwZU90aGVyKSwg
RnJhbWVMb2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSwgcmVxdWVz
dCwgMCwgZnJhbWVOYW1lLCB0aGlzKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFdpdGhO
YXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBib29sIGxvY2tIaXN0b3J5LCBGcmFtZUxvYWRUeXBlIHR5
cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUpCkBAIC0xMzQ2LDcgKzEzNDYsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVy
KiBsb2FkZXIsIEZyYW1lTG9hZFR5cGUgdAogCiAgICAgaWYgKHNob3VsZFNjcm9sbFRvQW5jaG9y
KGlzRm9ybVN1Ym1pc3Npb24sICBodHRwTWV0aG9kLCBwb2xpY3lDaGVja2VyKCktPmxvYWRUeXBl
KCksIG5ld1VSTCkpIHsKICAgICAgICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBvbGREb2N1bWVu
dExvYWRlciA9IG1fZG9jdW1lbnRMb2FkZXI7Ci0gICAgICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0
aW9uKG5ld1VSTCwgcG9saWN5Q2hlY2tlcigpLT5sb2FkVHlwZSgpLCBpc0Zvcm1TdWJtaXNzaW9u
KTsKKyAgICAgICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24obG9hZGVyLT5yZXF1ZXN0KCksIHBv
bGljeUNoZWNrZXIoKS0+bG9hZFR5cGUoKSwgaXNGb3JtU3VibWlzc2lvbik7CiAKICAgICAgICAg
b2xkRG9jdW1lbnRMb2FkZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oYWN0aW9uKTsKICAgICAgICAg
cG9saWN5Q2hlY2tlcigpLT5zdG9wQ2hlY2soKTsKQEAgLTEzNTksNyArMTM1OSw3IEBAIHZvaWQg
RnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRl
ciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgICAgIHBvbGljeUNoZWNrZXIoKS0+c3RvcENoZWNrKCk7
CiAgICAgICAgIHNldFBvbGljeURvY3VtZW50TG9hZGVyKGxvYWRlcik7CiAgICAgICAgIGlmIChs
b2FkZXItPnRyaWdnZXJpbmdBY3Rpb24oKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBsb2FkZXIt
PnNldFRyaWdnZXJpbmdBY3Rpb24oTmF2aWdhdGlvbkFjdGlvbihuZXdVUkwsIHBvbGljeUNoZWNr
ZXIoKS0+bG9hZFR5cGUoKSwgaXNGb3JtU3VibWlzc2lvbikpOworICAgICAgICAgICAgbG9hZGVy
LT5zZXRUcmlnZ2VyaW5nQWN0aW9uKE5hdmlnYXRpb25BY3Rpb24obG9hZGVyLT5yZXF1ZXN0KCks
IHBvbGljeUNoZWNrZXIoKS0+bG9hZFR5cGUoKSwgaXNGb3JtU3VibWlzc2lvbikpOwogCiAgICAg
ICAgIGlmIChFbGVtZW50KiBvd25lckVsZW1lbnQgPSBtX2ZyYW1lLT5vd25lckVsZW1lbnQoKSkg
ewogICAgICAgICAgICAgLy8gV2Ugc2tpcCBkaXNwYXRjaGluZyB0aGUgYmVmb3JlbG9hZCBldmVu
dCBpZiB3ZSd2ZSBhbHJlYWR5CkBAIC0xNDc5LDcgKzE0NzksNyBAQCB2b2lkIEZyYW1lTG9hZGVy
OjpyZWxvYWQoYm9vbCBlbmRUb0VuZFJlbG9hZCkKIAogICAgIC8vIElmIHdlJ3JlIGFib3V0IHRv
IHJlLXBvc3QsIHNldCB1cCBhY3Rpb24gc28gdGhlIGFwcGxpY2F0aW9uIGNhbiB3YXJuIHRoZSB1
c2VyLgogICAgIGlmIChyZXF1ZXN0Lmh0dHBNZXRob2QoKSA9PSAiUE9TVCIpCi0gICAgICAgIGxv
YWRlci0+c2V0VHJpZ2dlcmluZ0FjdGlvbihOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QudXJsKCks
IE5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkKSk7CisgICAgICAgIGxvYWRlci0+c2V0VHJp
Z2dlcmluZ0FjdGlvbihOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRpb25UeXBlRm9y
bVJlc3VibWl0dGVkKSk7CiAKICAgICBsb2FkZXItPnNldE92ZXJyaWRlRW5jb2RpbmcobV9kb2N1
bWVudExvYWRlci0+b3ZlcnJpZGVFbmNvZGluZygpKTsKICAgICAKQEAgLTI1NzcsNyArMjU3Nyw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIGluUmVxdWVzdCwgY29uc3QgU3RyaW5nCiAgICAgd29ya2luZ1Jlc291cmNlUmVxdWVzdC5z
ZXRIVFRQQ29udGVudFR5cGUoY29udGVudFR5cGUpOwogICAgIGFkZEV4dHJhRmllbGRzVG9SZXF1
ZXN0KHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QsIGxvYWRUeXBlLCB0cnVlKTsKIAotICAgIE5hdmln
YXRpb25BY3Rpb24gYWN0aW9uKHVybCwgbG9hZFR5cGUsIHRydWUsIGV2ZW50KTsKKyAgICBOYXZp
Z2F0aW9uQWN0aW9uIGFjdGlvbih3b3JraW5nUmVzb3VyY2VSZXF1ZXN0LCBsb2FkVHlwZSwgdHJ1
ZSwgZXZlbnQpOwogCiAgICAgaWYgKCFmcmFtZU5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8v
IFRoZSBzZWFyY2ggZm9yIGEgdGFyZ2V0IGZyYW1lIGlzIGRvbmUgZWFybGllciBpbiB0aGUgY2Fz
ZSBvZiBmb3JtIHN1Ym1pc3Npb24uCkBAIC0yODcxLDcgKzI4NzEsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlcwogICAgIG1haW5GcmFtZS0+bG9hZGVyKCktPm1fY2xpZW50LT5kaXNwYXRjaFNo
b3coKTsKICAgICBpZiAoIW1fc3VwcHJlc3NPcGVuZXJJbk5ld0ZyYW1lKQogICAgICAgICBtYWlu
RnJhbWUtPmxvYWRlcigpLT5zZXRPcGVuZXIoZnJhbWUuZ2V0KCkpOwotICAgIG1haW5GcmFtZS0+
bG9hZGVyKCktPmxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBOYXZpZ2F0aW9uQWN0
aW9uKCksIGZhbHNlLCBGcmFtZUxvYWRUeXBlU3RhbmRhcmQsIGZvcm1TdGF0ZSk7CisgICAgbWFp
bkZyYW1lLT5sb2FkZXIoKS0+bG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmln
YXRpb25BY3Rpb24ocmVxdWVzdCksIGZhbHNlLCBGcmFtZUxvYWRUeXBlU3RhbmRhcmQsIGZvcm1T
dGF0ZSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnJlcXVlc3RGcm9tRGVsZWdhdGUoUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCB1bnNpZ25lZCBsb25nJiBpZGVudGlmaWVyLCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikKQEAgLTMwMzQsNyArMzAzNCw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRE
aWZmZXJlbnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9h
CiAgICAgICAgIGN1cnJlbnRVUkwgPSBkb2N1bWVudExvYWRlcigpLT51cmwoKTsKICAgICBSZWZQ
dHI8Rm9ybURhdGE+IGZvcm1EYXRhID0gaXRlbS0+Zm9ybURhdGEoKTsKIAotICAgIGJvb2wgYWRk
ZWRFeHRyYUZpZWxkcyA9IGZhbHNlOwogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGl0ZW1V
UkwpOwogCiAgICAgaWYgKCFpdGVtLT5yZWZlcnJlcigpLmlzTnVsbCgpKQpAQCAtMzA1NCw3ICsz
MDUzLDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0
b3J5SXRlbSogaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2EKICAgICAgICAgLy8gTWFrZSBzdXJlIHRv
IGFkZCBleHRyYSBmaWVsZHMgdG8gdGhlIHJlcXVlc3QgYWZ0ZXIgdGhlIE9yaWdpbiBoZWFkZXIg
aXMgYWRkZWQgZm9yIHRoZSBGb3JtRGF0YSBjYXNlLgogICAgICAgICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTk0IGZvciBtb3JlIGRpc2N1c3Npb24u
CiAgICAgICAgIGFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KHJlcXVlc3QsIG1fbG9hZFR5cGUsIHRy
dWUpOwotICAgICAgICBhZGRlZEV4dHJhRmllbGRzID0gdHJ1ZTsKICAgICAgICAgCiAgICAgICAg
IC8vIEZJWE1FOiBTbGlnaHQgaGFjayB0byB0ZXN0IGlmIHRoZSBOU1VSTCBjYWNoZSBjb250YWlu
cyB0aGUgcGFnZSB3ZSdyZSBnb2luZyB0by4KICAgICAgICAgLy8gV2Ugd2FudCB0byBrbm93IHRo
aXMgYmVmb3JlIHRhbGtpbmcgdG8gdGhlIHBvbGljeSBkZWxlZ2F0ZSwgc2luY2UgaXQgYWZmZWN0
cyB3aGV0aGVyIApAQCAtMzA2NSwxMCArMzA2MywxMCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
RGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtKiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxv
YQogICAgICAgICAvLyBleHRyZW1lbHkgcmFyZSwgYnV0IGluIHRoYXQgY2FzZSB0aGUgdXNlciB3
aWxsIGdldCBhbiBlcnJvciBvbiB0aGUgbmF2aWdhdGlvbi4KICAgICAgICAgCiAgICAgICAgIGlm
IChSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUocmVxdWVzdCwgbV9mcmFtZSkpCi0g
ICAgICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9uKGl0ZW1VUkwsIGxvYWRUeXBlLCBm
YWxzZSk7CisgICAgICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIGxv
YWRUeXBlLCBmYWxzZSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgcmVxdWVzdC5zZXRD
YWNoZVBvbGljeShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7Ci0gICAgICAgICAgICBhY3Rpb24g
PSBOYXZpZ2F0aW9uQWN0aW9uKGl0ZW1VUkwsIE5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVk
KTsKKyAgICAgICAgICAgIGFjdGlvbiA9IE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCwgTmF2aWdh
dGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgc3dpdGNoIChsb2FkVHlwZSkgewpAQCAtMzA5MiwxMiArMzA5MCwxMyBAQCB2b2lkIEZyYW1l
TG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtKiBpdGVtLCBGcmFt
ZUxvYWRUeXBlIGxvYQogICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICB9CiAKLSAgICAgICAgYWN0aW9uID0gTmF2aWdhdGlvbkFjdGlvbihpdGVtT3JpZ2luYWxV
UkwsIGxvYWRUeXBlLCBmYWxzZSk7Ci0gICAgfQotICAgIAotICAgIGlmICghYWRkZWRFeHRyYUZp
ZWxkcykKICAgICAgICAgYWRkRXh0cmFGaWVsZHNUb1JlcXVlc3QocmVxdWVzdCwgbV9sb2FkVHlw
ZSwgdHJ1ZSk7CiAKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3RGb3JPcmlnaW5hbFVS
TChyZXF1ZXN0KTsKKyAgICAgICAgcmVxdWVzdEZvck9yaWdpbmFsVVJMLnNldFVSTChpdGVtT3Jp
Z2luYWxVUkwpOworICAgICAgICBhY3Rpb24gPSBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3RGb3JP
cmlnaW5hbFVSTCwgbG9hZFR5cGUsIGZhbHNlKTsKKyAgICB9CisKICAgICBsb2FkV2l0aE5hdmln
YXRpb25BY3Rpb24ocmVxdWVzdCwgYWN0aW9uLCBmYWxzZSwgbG9hZFR5cGUsIDApOwogfQogCkBA
IC0zMjgxLDcgKzMyODAsNyBAQCBGcmFtZSogY3JlYXRlV2luZG93KEZyYW1lKiBvcGVuZXJGcmFt
ZSwgRnJhbWUqIGxvb2t1cEZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZQogICAgIGlmICghb2xk
UGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbjsK
KyAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbihyZXF1ZXN0V2l0aFJlZmVycmVyLnJlc291cmNl
UmVxdWVzdCgpKTsKICAgICBQYWdlKiBwYWdlID0gb2xkUGFnZS0+Y2hyb21lKCktPmNyZWF0ZVdp
bmRvdyhvcGVuZXJGcmFtZSwgcmVxdWVzdFdpdGhSZWZlcnJlciwgZmVhdHVyZXMsIGFjdGlvbik7
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAppbmRleCBlZDY4ZTQzNDFkNWJlMDAwYWRlMzgxMTQxZTNm
N2RlZDc0YzhkN2E0Li5lODQwZmIyYTkwZjJmMDlhZjJjNDFmMGE5ZmNlZTU2ZGJlY2NlNDFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCkBAIC01MiwyOSAr
NTIsMzUgQEAgTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlvbkFjdGlvbigpCiB7CiB9CiAKLU5h
dmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24oY29uc3QgS1VSTCYgdXJsLCBOYXZpZ2F0
aW9uVHlwZSB0eXBlKQotICAgIDogbV9VUkwodXJsKQorTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdh
dGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKKyAgICA6
IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKKyAgICAsIG1fdHlwZShOYXZpZ2F0
aW9uVHlwZU90aGVyKQoreworfQorCitOYXZpZ2F0aW9uQWN0aW9uOjpOYXZpZ2F0aW9uQWN0aW9u
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBOYXZpZ2F0aW9uVHlwZSB0
eXBlKQorICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQogICAgICwgbV90
eXBlKHR5cGUpCiB7CiB9CiAKLU5hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24oY29u
c3QgS1VSTCYgdXJsLCBGcmFtZUxvYWRUeXBlIGZyYW1lTG9hZFR5cGUsCitOYXZpZ2F0aW9uQWN0
aW9uOjpOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1
ZXN0LCBGcmFtZUxvYWRUeXBlIGZyYW1lTG9hZFR5cGUsCiAgICAgICAgIGJvb2wgaXNGb3JtU3Vi
bWlzc2lvbikKLSAgICA6IG1fVVJMKHVybCkKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291
cmNlUmVxdWVzdCkKICAgICAsIG1fdHlwZShuYXZpZ2F0aW9uVHlwZShmcmFtZUxvYWRUeXBlLCBp
c0Zvcm1TdWJtaXNzaW9uLCAwKSkKIHsKIH0KIAotTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdhdGlv
bkFjdGlvbihjb25zdCBLVVJMJiB1cmwsIE5hdmlnYXRpb25UeXBlIHR5cGUsIFBhc3NSZWZQdHI8
RXZlbnQ+IGV2ZW50KQotICAgIDogbV9VUkwodXJsKQorTmF2aWdhdGlvbkFjdGlvbjo6TmF2aWdh
dGlvbkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgTmF2aWdh
dGlvblR5cGUgdHlwZSwgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCisgICAgOiBtX3Jlc291cmNl
UmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fZXZl
bnQoZXZlbnQpCiB7CiB9CiAKLU5hdmlnYXRpb25BY3Rpb246Ok5hdmlnYXRpb25BY3Rpb24oY29u
c3QgS1VSTCYgdXJsLCBGcmFtZUxvYWRUeXBlIGZyYW1lTG9hZFR5cGUsCitOYXZpZ2F0aW9uQWN0
aW9uOjpOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1
ZXN0LCBGcmFtZUxvYWRUeXBlIGZyYW1lTG9hZFR5cGUsCiAgICAgICAgIGJvb2wgaXNGb3JtU3Vi
bWlzc2lvbiwgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCi0gICAgOiBtX1VSTCh1cmwpCisgICAg
OiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCiAgICAgLCBtX3R5cGUobmF2aWdh
dGlvblR5cGUoZnJhbWVMb2FkVHlwZSwgaXNGb3JtU3VibWlzc2lvbiwgZXZlbnQpKQogICAgICwg
bV9ldmVudChldmVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZp
Z2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5o
CmluZGV4IDA0NzdjNmUyZTgzNDBlYzRmNGY0OTMwZTU2ZTJmNjAzMDkwNWMyMjIuLmVlZWU4OGMz
MGI4OTc3MWU4YTBjZTQyOGI5ZGNlNzBjODBmOWI3NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L05hdmlnYXRpb25BY3Rpb24uaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNs
dWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0zOSwxOSArNDAsMjIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIGNsYXNzIE5hdmlnYXRpb25BY3Rpb24gewogICAgIHB1YmxpYzoKICAgICAgICAgTmF2aWdh
dGlvbkFjdGlvbigpOwotICAgICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IEtVUkwmLCBOYXZp
Z2F0aW9uVHlwZSk7Ci0gICAgICAgIE5hdmlnYXRpb25BY3Rpb24oY29uc3QgS1VSTCYsIEZyYW1l
TG9hZFR5cGUsIGJvb2wgaXNGb3JtU3VibWlzc2lvbik7Ci0gICAgICAgIE5hdmlnYXRpb25BY3Rp
b24oY29uc3QgS1VSTCYsIE5hdmlnYXRpb25UeXBlLCBQYXNzUmVmUHRyPEV2ZW50Pik7Ci0gICAg
ICAgIE5hdmlnYXRpb25BY3Rpb24oY29uc3QgS1VSTCYsIEZyYW1lTG9hZFR5cGUsIGJvb2wgaXNG
b3JtU3VibWlzc2lvbiwgUGFzc1JlZlB0cjxFdmVudD4pOworICAgICAgICBOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworICAgICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25UeXBlKTsKKyAgICAgICAgTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGcmFtZUxvYWRUeXBlLCBib29sIGlzRm9y
bVN1Ym1pc3Npb24pOworICAgICAgICBOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIE5hdmlnYXRpb25UeXBlLCBQYXNzUmVmUHRyPEV2ZW50Pik7CisgICAgICAgIE5hdmln
YXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWVMb2FkVHlwZSwgYm9vbCBp
c0Zvcm1TdWJtaXNzaW9uLCBQYXNzUmVmUHRyPEV2ZW50Pik7CiAKLSAgICAgICAgYm9vbCBpc0Vt
cHR5KCkgY29uc3QgeyByZXR1cm4gbV9VUkwuaXNFbXB0eSgpOyB9CisgICAgICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgpLmlzRW1wdHkoKTsg
fQorCisgICAgICAgIEtVUkwgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Qu
dXJsKCk7IH0KKyAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3Qo
KSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQogCi0gICAgICAgIEtVUkwgdXJs
KCkgY29uc3QgeyByZXR1cm4gbV9VUkw7IH0KICAgICAgICAgTmF2aWdhdGlvblR5cGUgdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgICAgICBjb25zdCBFdmVudCogZXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX2V2ZW50LmdldCgpOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBL
VVJMIG1fVVJMOworICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7CiAg
ICAgICAgIE5hdmlnYXRpb25UeXBlIG1fdHlwZTsKICAgICAgICAgUmVmUHRyPEV2ZW50PiBtX2V2
ZW50OwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hl
Y2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKaW5kZXgg
ZjkyODBhZDI1YWU4ZWFiMGRjNTZjZTVlYjY0ODZkODVhNzRkOWMyYy4uOTgyYjRlYTNjNzI1YzRm
YWJhZTFkZWYwMzdmNzU2NGVjOTBmMTc1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BvbGljeUNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lD
aGVja2VyLmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2
aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvY3VtZQogewog
ICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uID0gbG9hZGVyLT50cmlnZ2VyaW5nQWN0aW9uKCk7
CiAgICAgaWYgKGFjdGlvbi5pc0VtcHR5KCkpIHsKLSAgICAgICAgYWN0aW9uID0gTmF2aWdhdGlv
bkFjdGlvbihyZXF1ZXN0LnVybCgpLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKKyAgICAgICAgYWN0
aW9uID0gTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKICAg
ICAgICAgbG9hZGVyLT5zZXRUcmlnZ2VyaW5nQWN0aW9uKGFjdGlvbik7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggYmZkYzdi
ZTI2NmYyNmI2YjgxZDY2MWRiNjY4NDRjNmMyMWE3NzYwNC4uZDcxMzU4NWRkOWI4NzE5YTIwM2U1
NDg0YTQ2ZDAxODJiMDg1NDBlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmNwcApAQCAtMTU5LDcgKzE1OSw3IEBAIHN0YXRpYyB2b2lkIG9wZW5OZXdX
aW5kb3coY29uc3QgS1VSTCYgdXJsVG9Mb2FkLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYgKFBh
Z2UqIG9sZFBhZ2UgPSBmcmFtZS0+cGFnZSgpKSB7CiAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3Qg
cmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1
ZXN0KHVybFRvTG9hZCwgZnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpKTsKLSAg
ICAgICAgaWYgKFBhZ2UqIG5ld1BhZ2UgPSBvbGRQYWdlLT5jaHJvbWUoKS0+Y3JlYXRlV2luZG93
KGZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKCkpKSB7
CisgICAgICAgIGlmIChQYWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCktPmNyZWF0ZVdp
bmRvdyhmcmFtZSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlvbkFjdGlvbihy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSkpIHsKICAgICAgICAgICAgIG5ld1BhZ2UtPm1haW5G
cmFtZSgpLT5sb2FkZXIoKS0+bG9hZEZyYW1lUmVxdWVzdChyZXF1ZXN0LCBmYWxzZSwgZmFsc2Us
IDAsIDAsIFNlbmRSZWZlcnJlcik7ICAgCiAgICAgICAgICAgICBuZXdQYWdlLT5jaHJvbWUoKS0+
c2hvdygpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCmluZGV4IDA1OWRlNzcyNmRmZTgzZGJmNTgzZjdjYmQyY2M0YWFlMzNj
MzVjN2IuLjc1YzJiZWRkN2ZiMzNmZWM1YzFhNjEzMjJjOWVhMmMwMjc1YTIyNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC0yNTYs
NyArMjU2LDcgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZy
YW1lKikKIH0KIAogUGFnZSogQ2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlV2luZG93KAotICAgIEZy
YW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgciwgY29uc3QgV2luZG93RmVhdHVy
ZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikKKyAgICBGcmFtZSogZnJhbWUs
IGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHIsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJl
cywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uKQogewogICAgIGlmICghbV93ZWJWaWV3
LT5jbGllbnQoKSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0yNjQsNiArMjY0LDggQEAgUGFnZSog
Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlV2luZG93KAogICAgIFdyYXBwZWRSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdDsKICAgICBpZiAoIXIucmVzb3VyY2VSZXF1ZXN0KCkuaXNFbXB0eSgpKQogICAg
ICAgICByZXF1ZXN0LmJpbmQoci5yZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgZWxzZSBpZiAoIWFj
dGlvbi5yZXNvdXJjZVJlcXVlc3QoKS5pc0VtcHR5KCkpCisgICAgICAgIHJlcXVlc3QuYmluZChh
Y3Rpb24ucmVzb3VyY2VSZXF1ZXN0KCkpOwogICAgIFdlYlZpZXdJbXBsKiBuZXdWaWV3ID0gc3Rh
dGljX2Nhc3Q8V2ViVmlld0ltcGwqPigKICAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+Y3Jl
YXRlVmlldyhXZWJGcmFtZUltcGw6OmZyb21GcmFtZShmcmFtZSksIHJlcXVlc3QsIGZlYXR1cmVz
LCByLmZyYW1lTmFtZSgpKSk7CiAgICAgaWYgKCFuZXdWaWV3KQpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgxZDgxZDA5ZjlkOTE0NzYwYTk3Yjg2
N2I2M2FmNGJkOWI5YmViYTMuLjg2NjcxMGEyZTYwZTEyNTMzYTc1MjE1YzNlMDYyMzFmZTI5MzRj
MzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxMS0xMC0xNCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIGFkZCBMYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQ3JlYXRlVmlldygpIHRvIG1vbml0b3IgY2FsbHMgdG8gV2ViVmlld0NsaWVudDo6Y3JlYXRl
VmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4
MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZHVtcENyZWF0ZVZpZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2hvdWxkRHVtcENyZWF0ZVZpZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpjcmVh
dGVWaWV3KToKKwogMjAxMS0xMC0xNyAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIGdhcmRlbi1vLW1hdGljIG9wZXJhdGlvbnMgZmFpbCBiZWNhdXNl
IG9mIENTUC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA2MzIyZjVmODQ5N2Y4NjYzMGM5OGQ5NjAxODFkNmRh
OTNiYTBmMTc3Li40N2YwNGM4MDA5YjI3NzlmYTYwYmYxMTg1Y2IwNDUwOGU4NDVhMmNjIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCkBAIC0xMTIsNiArMTEyLDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91
dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgiZHVtcFN0
YXR1c0NhbGxiYWNrcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcFdpbmRvd1N0YXR1c0No
YW5nZXMpOwogICAgIGJpbmRNZXRob2QoImR1bXBUaXRsZUNoYW5nZXMiLCAmTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmR1bXBUaXRsZUNoYW5nZXMpOwogICAgIGJpbmRNZXRob2QoImR1bXBQZXJtaXNz
aW9uQ2xpZW50Q2FsbGJhY2tzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkdW1wUGVybWlzc2lv
bkNsaWVudENhbGxiYWNrcyk7CisgICAgYmluZE1ldGhvZCgiZHVtcENyZWF0ZVZpZXciLCAmTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBDcmVhdGVWaWV3KTsKICAgICBiaW5kTWV0aG9kKCJlbGVt
ZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQiLCAmTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZCk7CiAgICAgYmluZE1l
dGhvZCgiZXZhbHVhdGVJbldlYkluc3BlY3RvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZXZh
bHVhdGVJbldlYkluc3BlY3Rvcik7CiAgICAgYmluZE1ldGhvZCgiZXZhbHVhdGVTY3JpcHRJbklz
b2xhdGVkV29ybGQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmV2YWx1YXRlU2NyaXB0SW5Jc29s
YXRlZFdvcmxkKTsKQEAgLTM4NCw2ICszODUsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6ZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwK
ICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
ZHVtcENyZWF0ZVZpZXcoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0
KQoreworICAgIG1fZHVtcENyZWF0ZVZpZXcgPSB0cnVlOworICAgIHJlc3VsdC0+c2V0TnVsbCgp
OworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBY2NlcHRzRWRpdGluZyhjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAg
IGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
aAppbmRleCAxYmUxNTk2ZWM1MThkMDAzZDk3MjY1MWE5YWFlMzFmNWYzN2IyOTcxLi4wMWI2ZWNj
NTViYmU3MWExY2I4MGMwOGI2ZmU3YjQxNWU0NWEwNWY3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTEzMSw2ICsx
MzEsMTEgQEAgcHVibGljOgogICAgIC8vIEl0IHRha2VzIG5vIGFyZ3VtZW50cywgYW5kIGlnbm9y
ZXMgYW55IHRoYXQgbWF5IGJlIHByZXNlbnQuCiAgICAgdm9pZCBkdW1wV2luZG93U3RhdHVzQ2hh
bmdlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKKyAgICAvLyBUaGlz
IGZ1bmN0aW9uIHNldHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gZHVtcCBh
bGwgY2FsbHMgdG8KKyAgICAvLyBXZWJWaWV3Q2xpZW50OjpjcmVhdGVWaWV3KCkuCisgICAgLy8g
SXQgdGFrZXMgbm8gYXJndW1lbnRzLCBhbmQgaWdub3JlcyBhbnkgdGhhdCBtYXkgYmUgcHJlc2Vu
dC4KKyAgICB2b2lkIGR1bXBDcmVhdGVWaWV3KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKKwogICAgIC8vIFdoZW4gY2FsbGVkIHdpdGggYSBib29sZWFuIGFyZ3VtZW50LCB0
aGlzIHNldHMgYSBmbGFnIHRoYXQgY29udHJvbHMKICAgICAvLyB3aGV0aGVyIGNvbnRlbnQtZWRp
dGFibGUgZWxlbWVudHMgYWNjZXB0IGVkaXRpbmcgZm9jdXMgd2hlbiBhbiBlZGl0aW5nCiAgICAg
Ly8gYXR0ZW1wdCBpcyBtYWRlLiBJdCBpZ25vcmVzIGFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cy4K
QEAgLTQzNCw2ICs0MzksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGREdW1wQ2hpbGRGcmFt
ZXNBc1RleHQoKSB7IHJldHVybiBtX2R1bXBDaGlsZEZyYW1lc0FzVGV4dDsgfQogICAgIGJvb2wg
c2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoKSB7IHJldHVybiBtX2dlbmVyYXRlUGl4ZWxSZXN1
bHRzOyB9CiAgICAgdm9pZCBzZXRTaG91bGRHZW5lcmF0ZVBpeGVsUmVzdWx0cyhib29sIHZhbHVl
KSB7IG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHMgPSB2YWx1ZTsgfQorICAgIGJvb2wgc2hvdWxkRHVt
cENyZWF0ZVZpZXcoKSB7IHJldHVybiBtX2R1bXBDcmVhdGVWaWV3OyB9CiAgICAgYm9vbCBhY2Nl
cHRzRWRpdGluZygpIHsgcmV0dXJuIG1fYWNjZXB0c0VkaXRpbmc7IH0KICAgICBib29sIGNhbk9w
ZW5XaW5kb3dzKCkgeyByZXR1cm4gbV9jYW5PcGVuV2luZG93czsgfQogICAgIGJvb2wgc2hvdWxk
QWRkRmlsZVRvUGFzdGVib2FyZCgpIHsgcmV0dXJuIG1fc2hvdWxkQWRkRmlsZVRvUGFzdGVib2Fy
ZDsgfQpAQCAtNTk0LDYgKzYwMCwxMCBAQCBwcml2YXRlOgogICAgIC8vIElmIHRydWUsIHRoZSB0
ZXN0X3NoZWxsIHdpbGwgZ2VuZXJhdGUgcGl4ZWwgcmVzdWx0cyBpbiBkdW1wQXNUZXh0IG1vZGUK
ICAgICBib29sIG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHM7CiAKKyAgICAvLyBJZiB0cnVlLCBvdXRw
dXQgYSBkZXNjcmlwdGl2ZSBsaW5lIGVhY2ggdGltZSBXZWJWaWV3Q2xpZW50OjpjcmVhdGVWaWV3
CisgICAgLy8gaXMgaW52b2tlZC4KKyAgICBib29sIG1fZHVtcENyZWF0ZVZpZXc7CisKICAgICAv
LyBJZiB0cnVlLCB0aGUgZWxlbWVudCB3aWxsIGJlIHRyZWF0ZWQgYXMgZWRpdGFibGUuIFRoaXMg
dmFsdWUgaXMgcmV0dXJuZWQKICAgICAvLyBmcm9tIHZhcmlvdXMgZWRpdGluZyBjYWxsYmFja3Mg
dGhhdCBhcmUgY2FsbGVkIGp1c3QgYmVmb3JlIGVkaXQgb3BlcmF0aW9ucwogICAgIC8vIGFyZSBh
bGxvd2VkLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3Bw
CmluZGV4IDM1YjczY2U3YjllOWJmYTQzMjJmYjUxZmY1YTg4NDc0M2RkZGRmZmIuLjc2ODczYTc2
MmJiZDZmZWY2ODM3ODJlNTk2YmJhZWQ4ZmM2Mjg3ZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTIzNywxMCArMjM3LDEyIEBAIHN0YXRp
YyBzdHJpbmcgdGV4dEFmZmluaXR5RGVzY3JpcHRpb24oV2ViVGV4dEFmZmluaXR5IGFmZmluaXR5
KQogCiAvLyBXZWJWaWV3Q2xpZW50IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotV2ViVmlldyogV2ViVmlld0hvc3Q6OmNyZWF0
ZVZpZXcoV2ViRnJhbWUqLCBjb25zdCBXZWJVUkxSZXF1ZXN0JiwgY29uc3QgV2ViV2luZG93RmVh
dHVyZXMmLCBjb25zdCBXZWJTdHJpbmcmKQorV2ViVmlldyogV2ViVmlld0hvc3Q6OmNyZWF0ZVZp
ZXcoV2ViRnJhbWUqLCBjb25zdCBXZWJVUkxSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJXaW5k
b3dGZWF0dXJlcyYsIGNvbnN0IFdlYlN0cmluZyYpCiB7CiAgICAgaWYgKCFsYXlvdXRUZXN0Q29u
dHJvbGxlcigpLT5jYW5PcGVuV2luZG93cygpKQogICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAo
bGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxkRHVtcENyZWF0ZVZpZXcoKSkKKyAgICAgICAg
ZnByaW50ZihzdGRvdXQsICJjcmVhdGVWaWV3KCVzKVxuIiwgVVJMRGVzY3JpcHRpb24ocmVxdWVz
dC51cmwoKSkuY19zdHIoKSk7CiAgICAgcmV0dXJuIG1fc2hlbGwtPmNyZWF0ZU5ld1dpbmRvdyhX
ZWJVUkwoKSktPndlYlZpZXcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4ODQ4ZWFhYmUwZWJiNmNkNGFlYzQy
MmQ1NTQ5Y2FmOGQzYTVmMGYuLjRhODE5OTUzNDE4MTdkYzdkZGI0YjM4NWZhNGNlMzZiMWFjOTZj
NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMC0xNCAgSm9jaGVuIEVpc2luZ2VyICA8
am9jaGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBWZXJpZnkgdGhhdCB0aGUgVVJMIHRvIGJl
IG9wZW5lZCBpbiB0aGUgbmV3IHdpbmRvdyBpcyBwYXNzZWQgYnkgZGlzcGF0Y2hDcmVhdGVXaW5k
b3cgZG93biB0byBjcmVhdGVWaWV3LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njg4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4K
KworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvbG9hZGVyL2NyZWF0ZS12aWV3LXRh
cmdldC1ibGFuay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvbG9hZGVyL2NyZWF0ZS12aWV3LXRhcmdldC1ibGFuay5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZG9uZS5odG1s
OiBBZGRlZC4KKwogMjAxMS0xMC0xNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgog
CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDI5MzkyOT4gUkVHUkVTU0lPTiAocjk3NTI1KTog
aUNoYXQgdHJhbnNjcmlwdCBoYXMgaG9yaXpvbnRhbCBzY3JvbGwgYmFyIHdoZW4gdGhlIGNvbnZl
cnNhdGlvbiBpbmNsdWRlcyBhIHdpZGUgaW1hZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvbG9hZGVyL2NyZWF0ZS12aWV3LXRhcmdldC1ibGFuay1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2xvYWRlci9jcmVh
dGUtdmlldy10YXJnZXQtYmxhbmstZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ZmE0MDE3ZDAy
NTM5N2QyZDRjNmIxNzhiZTEyODA2ODM1OGEyYmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2xvYWRlci9jcmVhdGUtdmlldy10YXJnZXQtYmxh
bmstZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorY3JlYXRlVmlldyhkb25lLmh0bWwpCitU
aGlzIHRlc3Qgb3BlbnMgYSBuZXcgd2luZG93IGJ5IG1pZGRsZS1jbGlja2luZyBvbiBhIGxpbmsg
d2l0aCB0YXJnZXQ9X2JsYW5rLiBJdCBwYXNzZXMsIGlmIHRoZSBXZWJWaWV3Q2xpZW50OjpjcmVh
dGVWaWV3IG1ldGhvZCB3YXMgaW52b2tlZCB3aXRoIHRoZSBwYXJhbWV0ZXIgImRvbmUuaHRtbCIu
CisKK2xpbmsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
bG9hZGVyL2NyZWF0ZS12aWV3LXRhcmdldC1ibGFuay5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9sb2FkZXIvY3JlYXRlLXZpZXctdGFyZ2V0LWJsYW5rLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTY5MmVlYzZkYjlkMjVhZDZhOWRkNWJiZGM5ZDZjMmFhMGIzNzE0MQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvbG9hZGVyL2Ny
ZWF0ZS12aWV3LXRhcmdldC1ibGFuay5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQ3JlYXRlVmlldygpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5X
aW5kb3dzKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5k
b3dzV2hlbkNvbXBsZXRlKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBsaW5rID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImxpbmsiKTsKKyAgICB2YXIgbWlkZGxlTW91c2VCdXR0b24gPSAxOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGxpbmsub2Zmc2V0TGVmdCArIDIsIGxpbmsub2Zm
c2V0VG9wICsgMik7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKG1pZGRsZU1vdXNlQnV0dG9u
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKG1pZGRsZU1vdXNlQnV0dG9uKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdj4KKyAgICA8cD4K
KyAgICAgICAgVGhpcyB0ZXN0IG9wZW5zIGEgbmV3IHdpbmRvdyBieSBtaWRkbGUtY2xpY2tpbmcg
b24gYSBsaW5rIHdpdGgKKyAgICAgICAgdGFyZ2V0PV9ibGFuay4gSXQgcGFzc2VzLCBpZiB0aGUg
V2ViVmlld0NsaWVudDo6Y3JlYXRlVmlldyBtZXRob2Qgd2FzCisgICAgICAgIGludm9rZWQgd2l0
aCB0aGUgcGFyYW1ldGVyICJkb25lLmh0bWwiLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgICAg
PGEgaHJlZj0icmVzb3VyY2VzL2RvbmUuaHRtbCIgaWQ9ImxpbmsiIHRhcmdldD0iX2JsYW5rIj5s
aW5rPC9hPgorICAgIDwvcD4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2RvbmUu
aHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvbG9hZGVyL3Jlc291cmNl
cy9kb25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjI4YTZkYzQ2MjQ5MmU2ZjZiZTRjZWU4OWViMWY3MjNh
ZTQ4MTFhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9kb25lLmh0bWwKQEAgLTAsMCArMSw0IEBACis8c2NyaXB0
PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>