<?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>101453</bug_id>
          
          <creation_ts>2012-11-07 05:11:09 -0800</creation_ts>
          <short_desc>Fix transformation between host and css for moveTo, resizeTo etc.</short_desc>
          <delta_ts>2012-11-13 00:43:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          
          <blocked>101222</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Kenneth Rohde Christiansen">kenneth</assigned_to>
          <cc>abarth</cc>
    
    <cc>anilsson</cc>
    
    <cc>bdakin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>efidler</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>japhet</cc>
    
    <cc>mifenton</cc>
    
    <cc>mitz</cc>
    
    <cc>peter</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>760548</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-07 05:11:09 -0800</bug_when>
    <thetext>windowRect is the physical window rect including chrome
pageRect is NOT the rect of the page (which some ports thinks) but the rect of the viewport. Current usage only uses the size, not the x,y coords.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760561</commentid>
    <comment_count>1</comment_count>
      <attachid>172766</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-07 05:24:53 -0800</bug_when>
    <thetext>Created attachment 172766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760647</commentid>
    <comment_count>2</comment_count>
      <attachid>172766</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-11-07 06:47:51 -0800</bug_when>
    <thetext>Comment on attachment 172766
Patch

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

&gt; Source/WebCore/page/ChromeClient.h:99
&gt; -        virtual void setWindowRect(const FloatRect&amp;) = 0;
&gt; -        virtual FloatRect windowRect() = 0;
&gt; -        
&gt; -        virtual FloatRect pageRect() = 0;
&gt; -        
&gt; +
&gt; +        virtual void setPhysicalWindowRect(const FloatRect&amp;) = 0;
&gt; +        virtual FloatRect physicalWindowRect() = 0;
&gt; +        virtual FloatRect physicalViewportRect() = 0;

IMHO windowRect() is fine as a name, I don&apos;t see the value that &quot;physical&quot; adds really. It&apos;s the window you see on the screen.

I agree about pageRect() though and viewportRect() should seem a lot more suitable. I&apos;m not sure what physical adds :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760649</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-07 06:50:05 -0800</bug_when>
    <thetext>Well it avoid the confusing between css units and physical units which keeps appearing. I vote for making it more obvious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760650</commentid>
    <comment_count>4</comment_count>
      <attachid>172766</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2012-11-07 06:51:52 -0800</bug_when>
    <thetext>Comment on attachment 172766
Patch

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

I&apos;m in favor of clarifying that these methods return the physical size rather than the logical/UI size. A few nits regarding the changelogs..

&gt; Source/WebKit/efl/ChangeLog:8
&gt; +        Rename the methods.

ChromeClientEfl::physicalViewportRect is now returning the physical window rect instead of what ewk_view_page_rect_get() used to return. Unless they&apos;re identical, you may want to add some background here.

&gt; Source/WebKit/qt/ChangeLog:8
&gt; +        Rename the methods.

The !m_webPage case in physicalViewportRect() now returns the window rect rather than an empty FloatRect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760661</commentid>
    <comment_count>5</comment_count>
      <attachid>172792</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-07 07:01:06 -0800</bug_when>
    <thetext>Created attachment 172792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760668</commentid>
    <comment_count>6</comment_count>
      <attachid>172792</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-11-07 07:09:36 -0800</bug_when>
    <thetext>Comment on attachment 172792
Patch

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

I agree with Simon: not sure about &apos;physical&apos;, but viewportRect is much saner than pageRect. Maybe webkit-dev has opinions?

One question:

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:126
&gt; -FloatRect WebChromeClient::pageRect()
&gt; +FloatRect WebChromeClient::physicalViewportRect()
&gt;  {
&gt; +#if USE(TILED_BACKING_STORE)
&gt; +    return FloatRect(FloatPoint(), m_page-&gt;viewportSize());
&gt; +#else
&gt;      return FloatRect(FloatPoint(), m_page-&gt;size());
&gt; +#endif
&gt;  }

here it looks there is a real difference between m_page-&gt;size x viewportSize?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760671</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-07 07:12:37 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:126
&gt; &gt; -FloatRect WebChromeClient::pageRect()
&gt; &gt; +FloatRect WebChromeClient::physicalViewportRect()
&gt; &gt;  {
&gt; &gt; +#if USE(TILED_BACKING_STORE)
&gt; &gt; +    return FloatRect(FloatPoint(), m_page-&gt;viewportSize());
&gt; &gt; +#else
&gt; &gt;      return FloatRect(FloatPoint(), m_page-&gt;size());
&gt; &gt; +#endif
&gt; &gt;  }
&gt; 
&gt; here it looks there is a real difference between m_page-&gt;size x viewportSize?

Tiled backing store resizes the FrameView to the size of the content, that is why. viewportSize is only available when tiled backing store is in use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760863</commentid>
    <comment_count>8</comment_count>
      <attachid>172792</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-07 10:46:15 -0800</bug_when>
    <thetext>Comment on attachment 172792
Patch

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

It&apos;s not clear what &quot;physical&quot; means.

&gt; Source/WebCore/ChangeLog:8
&gt; +        Rename the methods and use there of.

You need to explain your new terminology here. I don&apos;t really know what &quot;physical&quot; means. Should I get out a ruler and measure my screen?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760962</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-07 12:18:57 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 172792 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=172792&amp;action=review
&gt; 
&gt; It&apos;s not clear what &quot;physical&quot; means.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Rename the methods and use there of.
&gt; 
&gt; You need to explain your new terminology here. I don&apos;t really know what &quot;physical&quot; means. Should I get out a ruler and measure my screen?

It is &quot;native&quot; thus device pixels. Beveloo suggested that physical was better.

What do you suggest?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760997</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-07 13:07:40 -0800</bug_when>
    <thetext>I discussed this with smfr on irc. I will post the log for people to understand the background.

&lt;kenneth_&gt; smfr, you have a better suggestion that physical? it is in native device pixels. Physical was suggested to me, but maybe native? is better
&lt;smfr&gt; kenneth_: &quot;device&quot; is pretty descriptive
&lt;kenneth_&gt; ok then I will use that
&lt;smfr&gt; kenneth_: but will it be device on all platforms?
&lt;smfr&gt; kenneth_: i think not; it&apos;s not device on Mac or iOS retina screens, right?
&lt;smfr&gt; i think it&apos;s more like &quot;UI&quot; pixels
&lt;kenneth_&gt; yes, adjustment should be done elsewhere, or it will stay a mess
&lt;kenneth_&gt; people use this as well for actually resizing their native windows, so forcing an adjustment there seems confusing
&lt;kenneth_&gt; and webkit knows all about the deviceScaleFactor 
&lt;smfr&gt; ChromeWindowRect?
&lt;smfr&gt; kenneth_: since these are methods on ChromeClient I&apos;m not sure a rename is actually necessary
&lt;kenneth_&gt; yeah im wondering as well
&lt;kenneth_&gt; Maybe I should just remove the prefix, people seems to think that is the best solution
&lt;smfr&gt; kenneth_: also, how does this interact with window.moveBy etc?
&lt;smfr&gt; are web authors expecting those to be &quot;chorme&quot; pixels?
&lt;smfr&gt; &quot;chrome&quot;
&lt;kenneth_&gt; that is actually something I wondered today
&lt;kenneth_&gt; because currently they are chrome pixels
&lt;smfr&gt; does the spec say?
&lt;smfr&gt; i&apos;d epxect them to be like CSS pixels, but I&apos;m not sure
&lt;kenneth_&gt; I couldn&apos;t find this in any spec, mozilla docs says it is not specced
&lt;kenneth_&gt; I would like them to be css pixels as well
&lt;kenneth_&gt; if people want to align things with web content that makes sense
&lt;kenneth_&gt; like the google chrome music experience that created many pop up windows
&lt;smfr&gt; kenneth_: would be good to figure that out. maybe post on webkit-dev
&lt;smfr&gt; kenneth_: also, another approach here would be to use types
&lt;kenneth_&gt; in what way?
&lt;smfr&gt; typedef FloatRect  ChromeRect;
&lt;smfr&gt; then the type tells you want units its in
&lt;kenneth_&gt; yeah I wanted to tackle the moveBy in another patch
&lt;kenneth_&gt; oh yeah, I should consider that
&lt;kenneth_&gt; you prefer ChromeRect to DeviceRect ?
&lt;kenneth_&gt; so you would do this typedef in ChromeClient.h ?
&lt;smfr&gt; kenneth_: i don&apos;t think it&apos;s device on all platforms
&lt;smfr&gt; i think it&apos;s the units that the UI is described in
&lt;kenneth_&gt; yes, make sense
&lt;kenneth_&gt; so how does this fit with deviceScaleFactor then? say we wanted to use these for some web exposed values?
&lt;kenneth_&gt; say if the ChromeClient exposed the screenRect (which is currently in PlatformScreen)
&lt;smfr&gt; i don&apos;t think you can know how it relates to deviceScaleFactor across different OSes
&lt;kenneth_&gt; so really we should have some mapping methods for that
&lt;smfr&gt; sure

We then discussed the naming of the ChromeRect. UIRect was dismissed as being too generic, together with ScreenRect.

Any other reviewer has better suggestion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761633</commentid>
    <comment_count>11</comment_count>
      <attachid>173007</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-08 04:22:48 -0800</bug_when>
    <thetext>Created attachment 173007
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761636</commentid>
    <comment_count>12</comment_count>
      <attachid>173007</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-08 04:28:09 -0800</bug_when>
    <thetext>Comment on attachment 173007
Patch

Attachment 173007 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14775054</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761637</commentid>
    <comment_count>13</comment_count>
      <attachid>173007</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-08 04:28:17 -0800</bug_when>
    <thetext>Comment on attachment 173007
Patch

Attachment 173007 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14761660</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761640</commentid>
    <comment_count>14</comment_count>
      <attachid>173010</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-08 04:31:41 -0800</bug_when>
    <thetext>Created attachment 173010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761737</commentid>
    <comment_count>15</comment_count>
      <attachid>173010</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-08 06:46:22 -0800</bug_when>
    <thetext>Comment on attachment 173010
Patch

Attachment 173010 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14777010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761820</commentid>
    <comment_count>16</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-08 08:21:40 -0800</bug_when>
    <thetext>Fixed mac locally, but im waiting for the EWS to finish before uploading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761832</commentid>
    <comment_count>17</comment_count>
      <attachid>173010</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-11-08 08:41:49 -0800</bug_when>
    <thetext>Comment on attachment 173010
Patch

Attachment 173010 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14760854</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761912</commentid>
    <comment_count>18</comment_count>
      <attachid>173010</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-08 10:20:31 -0800</bug_when>
    <thetext>Comment on attachment 173010
Patch

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

I don&apos;t think we can make these changes until we know how to convert between host pixels and whatever moveBy() etc. use.

&gt; Source/WebCore/page/DOMWindow.cpp:1449
&gt; +    FloatRect windowRect = page-&gt;chrome()-&gt;windowRect();

Here you&apos;re implicitly converting between &quot;host&quot; coordinates and whatever coordinates moveBy uses (CSS pixels?), which I think is wrong.

&gt; Source/WebCore/page/DOMWindow.cpp:1453
&gt; +    adjustWindowRect(screenAvailableRect(page-&gt;mainFrame()-&gt;view()), windowRect, update);

Does screenAvailableRect() work in host pixels?

&gt; Source/WebCore/page/DOMWindow.cpp:1469
&gt; +    FloatRect windowRect = page-&gt;chrome()-&gt;windowRect();

Same here.

&gt; Source/WebCore/page/DOMWindow.cpp:1470
&gt; +    FloatRect screenRect = screenAvailableRect(page-&gt;mainFrame()-&gt;view());

Ditto.

&gt; Source/WebCore/page/DOMWindow.cpp:1495
&gt; +    FloatRect windowRect = page-&gt;chrome()-&gt;windowRect();
&gt; +    FloatSize destination = windowRect.size() + FloatSize(x, y);
&gt; +    FloatRect update(windowRect.location(), destination);
&gt; +    adjustWindowRect(screenAvailableRect(page-&gt;mainFrame()-&gt;view()), windowRect, update);
&gt; +    page-&gt;chrome()-&gt;setWindowRect(windowRect);

Ditto.

&gt; Source/WebCore/page/DOMWindow.cpp:1514
&gt; +    FloatRect windowRect = page-&gt;chrome()-&gt;windowRect();
&gt; +    FloatSize destination = FloatSize(width, height);
&gt; +    FloatRect update(windowRect.location(), destination);
&gt; +    adjustWindowRect(screenAvailableRect(page-&gt;mainFrame()-&gt;view()), windowRect, update);
&gt; +    page-&gt;chrome()-&gt;setWindowRect(windowRect);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761919</commentid>
    <comment_count>19</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-08 10:22:25 -0800</bug_when>
    <thetext>OK, I wanted to take that in another round. What do you think about reusing the screenToRootView methods in HostWindow and fixing them up?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761922</commentid>
    <comment_count>20</comment_count>
      <attachid>173062</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-08 10:23:25 -0800</bug_when>
    <thetext>Created attachment 173062
Test using the moveTo, etc methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761924</commentid>
    <comment_count>21</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-08 10:24:26 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; OK, I wanted to take that in another round. What do you think about reusing the screenToRootView methods in HostWindow and fixing them up?

If you do, you should at least add stub conversion methods in this patch.

I&apos;m not sure about using screenToRootView(). I have no idea whether those window rects are in &quot;screen&quot; coordinates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761933</commentid>
    <comment_count>22</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-08 10:27:15 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #19)
&gt; &gt; OK, I wanted to take that in another round. What do you think about reusing the screenToRootView methods in HostWindow and fixing them up?
&gt; 
&gt; If you do, you should at least add stub conversion methods in this patch.
&gt; 
&gt; I&apos;m not sure about using screenToRootView(). I have no idea whether those window rects are in &quot;screen&quot; coordinates.

I was wondering since those methods seems barely used, for instance the following gives me nothing.

git grep  &quot; screenToRootView(&quot; Source/ | grep -v virtual

We could also rename them, say to hostToRootView or convertToPage like discussed yesterday. I am open to suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761962</commentid>
    <comment_count>23</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-08 10:47:52 -0800</bug_when>
    <thetext>Following FrameView::mapFromLayoutToCSSUnits(LayoutUnit);

we could call them

FloatRect HostWindow::mapFromHostToCSSRect(HostRect rect)
HostRect  HostWindow::mapFromCSSToHostRect(FloatRect rect)

Comments?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761971</commentid>
    <comment_count>24</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-08 10:53:52 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; Following FrameView::mapFromLayoutToCSSUnits(LayoutUnit);
&gt; 
&gt; we could call them
&gt; 
&gt; FloatRect HostWindow::mapFromHostToCSSRect(HostRect rect)
&gt; HostRect  HostWindow::mapFromCSSToHostRect(FloatRect rect)

I can see how these would scale, but what&apos;s the origin for the mapping? Do they do coordinate flipping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762162</commentid>
    <comment_count>25</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-08 14:12:58 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; Following FrameView::mapFromLayoutToCSSUnits(LayoutUnit);
&gt; &gt; 
&gt; &gt; we could call them
&gt; &gt; 
&gt; &gt; FloatRect HostWindow::mapFromHostToCSSRect(HostRect rect)
&gt; &gt; HostRect  HostWindow::mapFromCSSToHostRect(FloatRect rect)
&gt; 
&gt; I can see how these would scale, but what&apos;s the origin for the mapping? Do they do coordinate flipping?

I think they should do that if that is needed by the platform. Do you agree?

On mac everything needs coordinate flipping? like are windows positioned after origin in lower left?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763070</commentid>
    <comment_count>26</comment_count>
      <attachid>173320</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-09 09:11:42 -0800</bug_when>
    <thetext>Created attachment 173320
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764216</commentid>
    <comment_count>27</comment_count>
      <attachid>173607</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-12 03:35:32 -0800</bug_when>
    <thetext>Created attachment 173607
EWS run</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764288</commentid>
    <comment_count>28</comment_count>
      <attachid>173627</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-12 05:09:22 -0800</bug_when>
    <thetext>Created attachment 173627
With manual test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764294</commentid>
    <comment_count>29</comment_count>
      <attachid>173607</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-12 05:13:52 -0800</bug_when>
    <thetext>Comment on attachment 173607
EWS run

Attachment 173607 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14796871</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764339</commentid>
    <comment_count>30</comment_count>
      <attachid>173607</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-12 06:17:12 -0800</bug_when>
    <thetext>Comment on attachment 173607
EWS run

Attachment 173607 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14821092</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764419</commentid>
    <comment_count>31</comment_count>
      <attachid>173607</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 07:44:05 -0800</bug_when>
    <thetext>Comment on attachment 173607
EWS run

Attachment 173607 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14816182</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765202</commentid>
    <comment_count>32</comment_count>
      <attachid>173627</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-12 21:28:44 -0800</bug_when>
    <thetext>Comment on attachment 173627
With manual test

Attachment 173627 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14821403</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765263</commentid>
    <comment_count>33</comment_count>
      <attachid>173627</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 22:39:18 -0800</bug_when>
    <thetext>Comment on attachment 173627
With manual test

Attachment 173627 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14821440</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765264</commentid>
    <comment_count>34</comment_count>
      <attachid>173627</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-12 22:43:16 -0800</bug_when>
    <thetext>Comment on attachment 173627
With manual test

Attachment 173627 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14813654</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765356</commentid>
    <comment_count>35</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-13 00:43:40 -0800</bug_when>
    <thetext>I am dropping this for now</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172766</attachid>
            <date>2012-11-07 05:24:53 -0800</date>
            <delta_ts>2012-11-07 07:01:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101453-20121107142302.patch</filename>
            <type>text/plain</type>
            <size>45698</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTVjZmIwYTFlODQzOGYz
ODk3ZTYyMzEwOThjYmYwZWE2ZDI0YmM3OC4uYzNhOWVkNjZlMjRhOTkyZDFhY2YzZTE3YjU4ZTY5
ZGY1N2I3ZjJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDEyLTExLTA3ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBS
ZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5l
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUg
dGhlIG1ldGhvZHMgYW5kIHVzZSB0aGVyZSBvZi4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWw6Om1vdmVXaW5kb3dCeSk6CisgICAgICAgICogbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNldFBo
eXNpY2FsV2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
cGh5c2ljYWxXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50
OjpwaHlzaWNhbFZpZXdwb3J0UmVjdCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgICogcGFnZS9DaHJv
bWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRQaHlzaWNhbFdpbmRvd1JlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpwaHlzaWNhbFdpbmRvd1JlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lOjpwaHlzaWNhbFZpZXdwb3J0UmVjdCk6CisgICAgICAgICogcGFn
ZS9DaHJvbWUuaDoKKyAgICAgICAgKENocm9tZSk6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKENocm9tZUNsaWVudCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpvdXRlckhlaWdodCk6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6Om91dGVyV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjpzY3JlZW5YKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2NyZWVuWSk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVCeSk6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlc2l6
ZUJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVzaXplVG8pOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwQ29udGFpbmVyOjpsYXlvdXRBbmRDYWxjdWxhdGVXaWRnZXRSZWN0KToKKworMjAxMi0x
MS0wNyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisK
ICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yICJkZXNrdG9wLXdpZHRoIiBpbiB0aGUgdmlld3Bv
cnQgbWV0YSB0YWcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMTIxNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyNmMzODU0Yjdh
NDg2ZDAyM2E5ZTNmNzY1ZTZmZTE5OWIyOWNkYjI1Li44MWEzOTU5MDYzMTY3ZDY3YTM1YzMyZjhm
YmY2YzgxYjI5MWU5ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsNSAr
MSwyMiBAQAogMjAxMi0xMS0wNyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRo
QHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBl
dGMgdG8gc29tZXRoaW5nIG1vcmUgc2FuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lIG1ldGhvZHMgYW5kIHJldHVybiBwaHlzaWNhbFdpbmRv
d1JlY3QgaW5zdGVhZCBvZiBhbgorICAgICAgICBlbXB0eSBGbG9hdFJlY3QgaW4gcGh5c2ljYWxW
aWV3cG9ydFJlY3QuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFj
a0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OnNl
dFBoeXNpY2FsV2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFj
a0JlcnJ5OjpwaHlzaWNhbFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50QmxhY2tCZXJyeTo6cGh5c2ljYWxWaWV3cG9ydFJlY3QpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEJs
YWNrQmVycnkpOgorCisyMDEyLTExLTA3ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtl
bm5ldGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgImRlc2t0b3At
d2lkdGgiIGluIHRoZSB2aWV3cG9ydCBtZXRhIHRhZwogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMjE3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggMGFjN2E3MDAyMWNkNThkMzY1ZjU2M2QxYTQ5ZDEyYmY4ZjQwM2MxNy4uMzJkMzY3ODk0
NjJmMDAwMGMyNmRlODc3OWQ5ZWFhZTY1NTM1ZGY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsNSArMSwyMSBAQAogMjAxMi0xMS0wNyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0
LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUgc2FuZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIHRoZSBtZXRob2RzLgorCisgICAg
ICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnRJbXBsOjpzZXRQaHlzaWNhbFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnRJbXBsOjpwaHlzaWNhbFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnRJbXBsOjpwaHlzaWNhbFZpZXdwb3J0UmVjdCk6CisgICAgICAgICogc3JjL0Nocm9t
ZUNsaWVudEltcGwuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEltcGwpOgorCisyMDEyLTExLTA3
ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwogICAg
ICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgImRlc2t0b3Atd2lkdGgiIGluIHRoZSB2aWV3cG9ydCBt
ZXRhIHRhZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAxMjE3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBiMmU4YThmZDcxYjVhNWQwYTEzMjhlMTQ2ODQ0
MmFhYmJlZTNhZjE1Li5kY2QyZWUwMDhkMjc5NjNlZmZjODMwMjlmYTc3YmI0ZDIyNjk3ZjYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMTEtMDcgIEtlbm5ldGggUm9o
ZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSB0
aGUgd2luZG93UmVjdCwgcGFnZVJlY3QgZXRjIHRvIHNvbWV0aGluZyBtb3JlIHNhbmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSB0aGUgbWV0
aG9kcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OnBoeXNpY2FsV2luZG93UmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OnNldFBoeXNpY2FsV2luZG93UmVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OnBoeXNpY2FsVmlld3BvcnRSZWN0
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKyAgICAgICAg
KENocm9tZUNsaWVudEVmbCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAg
KF9ld2tfdmlld192aWV3cG9ydF9hdHRyaWJ1dGVzX2NvbXB1dGUpOgorCiAyMDEyLTExLTAxICBT
ZW9uYWUgS2ltICA8c3VuYWVsdXYua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW0RS
VF0gU3VwcG9ydCBHZW9sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGVjMWQwZWZjMWFlZjcz
M2ZkN2FhMTUxMjZkNDk2N2E0NjcxYzA4OTYuLjI1ZTUyNzkwMTYwN2NjN2RmOTkyNTU3ZjE2ZTFj
NzM4NDVhNDBiNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0xMS0w
NyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1v
cmUgc2FuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAxNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVuYW1lIHRoZSBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpwaHlzaWNhbFdpbmRv
d1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNldFBoeXNpY2FsV2luZG93
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cGh5c2ljYWxWaWV3cG9ydFJl
Y3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNjcm9sbCk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAgICAgIChDaHJvbWVDbGllbnQp
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwOgorICAgICAg
ICAod2Via2l0Vmlld3BvcnRBdHRyaWJ1dGVzUmVjb21wdXRlKToKKwogMjAxMi0xMS0wNSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggbGF5ZXIg
Ym9yZGVycyB0byBjbGVhbmluZyBhcHBlYXIgYW5kIGRpc2FwcGVhciBvbiBzd2l0Y2hpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCA2YmExYWM3MTU5Y2I5NmI4M2ZkMjVlMGVlYjYwN2EyNzdjMjEzMDU0
Li4xNWI2ZTQ5ZDlkNjQzMWRhY2MwMTQ0NzI4MWM1MGNmN2YyMDFjMjY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTEtMDcgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFu
c2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSB0aGUgd2luZG93UmVj
dCwgcGFnZVJlY3QgZXRjIHRvIHNvbWV0aGluZyBtb3JlIHNhbmUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSB0aGUgbWV0aG9kcy4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFBoeXNpY2FsV2luZG93UmVjdCk6CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OnBoeXNpY2FsV2luZG93UmVjdCk6CisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6OnBoeXNpY2FsVmlld3BvcnRSZWN0KToKKwogMjAxMi0xMS0wNiAgQWRhbSBC
YXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYXR0ZW1wdCB0
byBmaXggdGhlIGNocm9taXVtLW1hYyBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNDNiOTliM2Qz
MmY2NjQwYjNjMWY0YmM2ZDc2N2Y1MWQ5MDc5YmMzMS4uZTU1MGVkZmQ5YmM0NDc2ODkyMmYwNzhm
ODI3MzQ5YzY3MDllMjg0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0x
MS0wNyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5n
IG1vcmUgc2FuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAxNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVuYW1lIHRoZSBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OnNldFBoeXNp
Y2FsV2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6cGh5c2lj
YWxXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpwaHlzaWNh
bFZpZXdwb3J0UmVjdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50UXQpOgorCiAyMDEy
LTExLTAxICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzMxNDMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
MjYzNTE3NDNiZDg2NTgyMGExODZmYzM5MGRmYjNjMmNkMDU0MjFmOC4uZTk3NjExNTNmYTdhMDI4
MDg4ZjdiNTM4NjQ3MjUwMzIyNDM4NDMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDEyLTExLTA3ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0
byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWUgdGhlIG1ldGhvZHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzZXRQ
aHlzaWNhbFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwaHlzaWNhbFdp
bmRvd1JlY3QpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwaHlzaWNhbFZpZXdwb3J0UmVj
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAg
IChXZWJDaHJvbWVDbGllbnQpOgorCiAyMDEyLTExLTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBsYXllciBib3JkZXJzIHRvIGNsZWFuaW5n
IGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRl
eCAyZmEzZjEzMmRlMTQzMDQyNmJhMDIwYTBiM2MyZWZlMTQ3MzEzODI4Li5hNzk4YWQyMWE0OWQz
M2Q5Y2M5ZWViNjg1ZTM0ZTdlMDI4NDFiOWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDEyLTExLTA3ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5l
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0
IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgdGhlIG1ldGhvZHMuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudFdpbkNFOjpwaHlzaWNhbFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnRXaW5DRTo6c2V0UGh5c2ljYWxXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50V2luQ0U6OnBoeXNpY2FsVmlld3BvcnRSZWN0KToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50V2lu
Q0UpOgorCiAyMDEyLTEwLTI0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgYSBzdHJhdGVneSBmb3IgbG9hZGVyIGN1c3RvbWl6YXRpb24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdl
TG9nCmluZGV4IGU5ZWFmMTMxOWUwMzI3ZWQ5Y2VjOWZiNDkyMDkzM2I3YTIyNTRjYzcuLjUzZDY0
NWFiMzcxNWI1ZWVjNzhiZjIwZDEyNmY2MmE3NjI0NjVhYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTItMTEtMDcgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2Vu
bmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSB0aGUgd2luZG93UmVjdCwgcGFnZVJl
Y3QgZXRjIHRvIHNvbWV0aGluZyBtb3JlIHNhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSB0aGUgbWV0aG9kcy4KKworICAgICAgICAqIFdl
YktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50V3g6OnNldFBoeXNpY2FsV2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRXeDo6cGh5c2ljYWxXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFd4OjpwaHlzaWNhbFZpZXdwb3J0UmVjdCk6CisgICAgICAgICogV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50V3gpOgorCiAyMDEyLTEw
LTIyICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKICAg
ICAgICAgW1F0XSBGaXggIkFTU0VSVElPTiBGQUlMRUQ6ICFkb2N1bWVudC0+aW5QYWdlQ2FjaGUo
KSIgd2hlbiBsb2FkaW5nIGEgcGFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGYwMTQzN2NkMDg4ZmY4Y2Q5YTRm
NjM3YTQ3N2RmYzcxM2I0MTRhNWQuLjE2N2QxY2I4NzNjMTM2ZjE4YjdiYjZjNDQwMzc5ZDA0MGI1
NmRmZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMS0wNyAgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1l
IHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUgc2FuZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIHRoZSBt
ZXRob2RzIGFuZCBtYWtlIHBoeXNpY2FsVmlld3BvcnRSZWN0IHJldHVybiBhCisgICAgICAgIHBy
b3BlciB2YWx1ZSB3aGVuIHRoZSB0aWxlZCBiYWNraW5nIHN0b3JlIGlzIHVzZWQuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0UGh5c2ljYWxXaW5kb3dSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpwaHlzaWNhbFdpbmRvd1JlY3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnBoeXNpY2FsVmlld3BvcnRSZWN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAg
ICAgICAoV2ViQ2hyb21lQ2xpZW50KToKKwogMjAxMi0xMS0wNiAgVml2ZWsgR2FsYXRhZ2UgIDx2
aXZla2dhbGF0YWdlQGdtYWlsLmNvbT4KIAogICAgICAgICBNb3ZlIERyYXdpbmdBcmVhSW1wbCBt
ZXRob2RzIGdyYXBoaWNzTGF5ZXJGYWN0b3J5LCBzZXRSb290Q29tcG9zaXRpbmdMYXllciAmIHNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMgdW5kZXIgQUNDRUxFUkFURURfQ09NUE9TSVRJTkcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmNwcAppbmRleCBhYmM5MTY4Yzc1ZDMwZGMyMWQ1ODViMmI5ZDJiYTgxNTli
NTE0M2Y3Li5iMWEyOTZjNDhlOTA4MzJjOTY0MGE3NmNiZDhlZjY3YjVkMTkxNjBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwuY3BwCkBAIC0yMDQsOSArMjA0LDkgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsOjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCiAKIHZvaWQgSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6bW92ZVdpbmRvd0J5KGZsb2F0IHgsIGZsb2F0IHkpCiB7
Ci0gICAgRmxvYXRSZWN0IGZyYW1lUmVjdCA9IG1fZnJvbnRlbmRQYWdlLT5jaHJvbWUoKS0+d2lu
ZG93UmVjdCgpOworICAgIEZsb2F0UmVjdCBmcmFtZVJlY3QgPSBtX2Zyb250ZW5kUGFnZS0+Y2hy
b21lKCktPnBoeXNpY2FsV2luZG93UmVjdCgpOwogICAgIGZyYW1lUmVjdC5tb3ZlKHgsIHkpOwot
ICAgIG1fZnJvbnRlbmRQYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChmcmFtZVJlY3QpOwor
ICAgIG1fZnJvbnRlbmRQYWdlLT5jaHJvbWUoKS0+c2V0UGh5c2ljYWxXaW5kb3dSZWN0KGZyYW1l
UmVjdCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0QXR0YWNo
ZWRXaW5kb3coYm9vbCBhdHRhY2hlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApp
bmRleCA2N2U4N2E3OTI2NThiY2FiYWJkMzQ4M2QyZDU0MzM0MzMyMTc5MGU0Li4wNDAwNTU5NGY3
ZDY3M2FmMGYzOWI2YjVmNDY3MDVjNGRiZjZlYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCkBAIC03MSwxMCArNzEsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBj
aHJvbWVEZXN0cm95ZWQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9h
dFJlY3QmKSB7IH0KLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgeyByZXR1cm4g
RmxvYXRSZWN0KCk7IH0KIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgeyByZXR1
cm4gRmxvYXRSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGh5c2ljYWxXaW5kb3dSZWN0
KGNvbnN0IEZsb2F0UmVjdCYpIHsgfQorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBoeXNpY2FsV2lu
ZG93UmVjdCgpIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qg
cGh5c2ljYWxWaWV3cG9ydFJlY3QoKSB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIGZvY3VzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGMxZGE0NDU0N2I4ZWYxYjJhYTFm
MjY0MzBhM2MwODE5MzYyMDliZjIuLjNmZmYyNTg0ZTllNDY3OGM1Y2IzYzYyZWMwZWNhNGFlMjlj
ZDMxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzMyMiw4ICsz
MzIyLDggQEAgRnJhbWUqIGNyZWF0ZVdpbmRvdyhGcmFtZSogb3BlbmVyRnJhbWUsIEZyYW1lKiBs
b29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWUKICAgICAvLyBzcGVjaWZ5IHRoZSBzaXpl
IG9mIHRoZSBwYWdlLiBXZSBjYW4gb25seSByZXNpemUgdGhlIHdpbmRvdywgc28KICAgICAvLyBh
ZGp1c3QgZm9yIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHdpbmRvdyBzaXplIGFuZCB0aGUg
cGFnZSBzaXplLgogCi0gICAgRmxvYXRSZWN0IHdpbmRvd1JlY3QgPSBwYWdlLT5jaHJvbWUoKS0+
d2luZG93UmVjdCgpOwotICAgIEZsb2F0U2l6ZSBwYWdlU2l6ZSA9IHBhZ2UtPmNocm9tZSgpLT5w
YWdlUmVjdCgpLnNpemUoKTsKKyAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IHBhZ2UtPmNocm9t
ZSgpLT5waHlzaWNhbFdpbmRvd1JlY3QoKTsKKyAgICBGbG9hdFNpemUgcGFnZVNpemUgPSBwYWdl
LT5jaHJvbWUoKS0+cGh5c2ljYWxWaWV3cG9ydFJlY3QoKS5zaXplKCk7CiAgICAgaWYgKGZlYXR1
cmVzLnhTZXQpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0WChmZWF0dXJlcy54KTsKICAgICBpZiAo
ZmVhdHVyZXMueVNldCkKQEAgLTMzMzIsNyArMzMzMiw3IEBAIEZyYW1lKiBjcmVhdGVXaW5kb3co
RnJhbWUqIG9wZW5lckZyYW1lLCBGcmFtZSogbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJl
cXVlCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0V2lkdGgoZmVhdHVyZXMud2lkdGggKyAod2luZG93
UmVjdC53aWR0aCgpIC0gcGFnZVNpemUud2lkdGgoKSkpOwogICAgIGlmIChmZWF0dXJlcy5oZWln
aHRTZXQpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0SGVpZ2h0KGZlYXR1cmVzLmhlaWdodCArICh3
aW5kb3dSZWN0LmhlaWdodCgpIC0gcGFnZVNpemUuaGVpZ2h0KCkpKTsKLSAgICBwYWdlLT5jaHJv
bWUoKS0+c2V0V2luZG93UmVjdCh3aW5kb3dSZWN0KTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0
UGh5c2ljYWxXaW5kb3dSZWN0KHdpbmRvd1JlY3QpOwogCiAgICAgcGFnZS0+Y2hyb21lKCktPnNo
b3coKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IGZjZTBjMTE2NjhlYmIzZWMzNWU3Yjlm
NWYxOGUzODUyOTA5MWMxZTcuLjI2OTUxOGFmMjlhM2QwODY0Yjg1ODlhM2FmZWE3ZDcyNDhkODVj
MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTE0MCwxOSArMTQwLDE5IEBAIHZvaWQgQ2hy
b21lOjpzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0CiAgICAgbV9jbGllbnQtPnNjcm9s
bGJhcnNNb2RlRGlkQ2hhbmdlKCk7CiB9CiAKLXZvaWQgQ2hyb21lOjpzZXRXaW5kb3dSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkgY29uc3QKK3ZvaWQgQ2hyb21lOjpzZXRQaHlzaWNhbFdpbmRv
d1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSBjb25zdAogewotICAgIG1fY2xpZW50LT5zZXRX
aW5kb3dSZWN0KHJlY3QpOworICAgIG1fY2xpZW50LT5zZXRQaHlzaWNhbFdpbmRvd1JlY3QocmVj
dCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWU6OndpbmRvd1JlY3QoKSBjb25zdAorRmxvYXRSZWN0
IENocm9tZTo6cGh5c2ljYWxXaW5kb3dSZWN0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jbGll
bnQtPndpbmRvd1JlY3QoKTsKKyAgICByZXR1cm4gbV9jbGllbnQtPnBoeXNpY2FsV2luZG93UmVj
dCgpOwogfQogCi1GbG9hdFJlY3QgQ2hyb21lOjpwYWdlUmVjdCgpIGNvbnN0CitGbG9hdFJlY3Qg
Q2hyb21lOjpwaHlzaWNhbFZpZXdwb3J0UmVjdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fY2xp
ZW50LT5wYWdlUmVjdCgpOworICAgIHJldHVybiBtX2NsaWVudC0+cGh5c2ljYWxWaWV3cG9ydFJl
Y3QoKTsKIH0KIAogdm9pZCBDaHJvbWU6OmZvY3VzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmlu
ZGV4IDU2MzhmM2E0OGFkZDg5NTllMzBhZWIwZDIwNWFkM2U3MGI4Y2FjMTkuLmM4MTRkNTFjZDJi
NDY3MGJhNjllMWIzZTQ5ZDQ2NzY1YmY0MjlmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtOTIs
MTEgKzkyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBjb250ZW50c1Np
emVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0OwogICAgICAgICB2b2lkIGxh
eW91dFVwZGF0ZWQoRnJhbWUqKSBjb25zdDsKIAotICAgICAgICB2b2lkIHNldFdpbmRvd1JlY3Qo
Y29uc3QgRmxvYXRSZWN0JikgY29uc3Q7Ci0gICAgICAgIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkg
Y29uc3Q7CisgICAgICAgIHZvaWQgc2V0UGh5c2ljYWxXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVj
dCYpIGNvbnN0OworICAgICAgICBGbG9hdFJlY3QgcGh5c2ljYWxXaW5kb3dSZWN0KCkgY29uc3Q7
CisgICAgICAgIEZsb2F0UmVjdCBwaHlzaWNhbFZpZXdwb3J0UmVjdCgpIGNvbnN0OwogCi0gICAg
ICAgIEZsb2F0UmVjdCBwYWdlUmVjdCgpIGNvbnN0OwotICAgICAgICAKICAgICAgICAgdm9pZCBm
b2N1cygpIGNvbnN0OwogICAgICAgICB2b2lkIHVuZm9jdXMoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggMzVjMzIzMjhjMzQzYTBmNTY5MzI5NmQ3MDU3MTE3NzMw
OGJhYWIyOS4uMDI1YmY4NDU4M2U2NWMxNmMwNjZhYzIyZDExZDBmZThjNDAxYzEyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC05MywxMiArOTMsMTEgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIENocm9tZUNsaWVudCB7CiAgICAgcHVibGljOgogICAgICAgICB2
aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgPSAwOwotICAgICAgICAKLSAgICAgICAgdmly
dHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikgPSAwOwotICAgICAgICB2
aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgPSAwOwotICAgICAgICAKLSAgICAgICAgdmly
dHVhbCBGbG9hdFJlY3QgcGFnZVJlY3QoKSA9IDA7Ci0gICAgICAgIAorCisgICAgICAgIHZpcnR1
YWwgdm9pZCBzZXRQaHlzaWNhbFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikgPSAwOworICAg
ICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwaHlzaWNhbFdpbmRvd1JlY3QoKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgRmxvYXRSZWN0IHBoeXNpY2FsVmlld3BvcnRSZWN0KCkgPSAwOworCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBmb2N1cygpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMo
KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBhODRmZWM1OWM5NWViODUx
YzRiYTM3OWRmYzE4YTI3NWUzZjJmZGIwLi5jMWI3NTA1NTVmNTU5MzM4MDU5MGM2YmY2OTVkYWFj
YTFlM2ZkZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xMTE3LDcgKzExMTcs
NyBAQCBpbnQgRE9NV2luZG93OjpvdXRlckhlaWdodCgpIGNvbnN0CiAgICAgaWYgKCFwYWdlKQog
ICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHBhZ2UtPmNo
cm9tZSgpLT53aW5kb3dSZWN0KCkuaGVpZ2h0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxp
bnQ+KHBhZ2UtPmNocm9tZSgpLT5waHlzaWNhbFdpbmRvd1JlY3QoKS5oZWlnaHQoKSk7CiB9CiAK
IGludCBET01XaW5kb3c6Om91dGVyV2lkdGgoKSBjb25zdApAQCAtMTEyOSw3ICsxMTI5LDcgQEAg
aW50IERPTVdpbmRvdzo6b3V0ZXJXaWR0aCgpIGNvbnN0CiAgICAgaWYgKCFwYWdlKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHBhZ2UtPmNocm9tZSgp
LT53aW5kb3dSZWN0KCkud2lkdGgoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4ocGFn
ZS0+Y2hyb21lKCktPnBoeXNpY2FsV2luZG93UmVjdCgpLndpZHRoKCkpOwogfQogCiBpbnQgRE9N
V2luZG93Ojppbm5lckhlaWdodCgpIGNvbnN0CkBAIC0xMTY5LDcgKzExNjksNyBAQCBpbnQgRE9N
V2luZG93OjpzY3JlZW5YKCkgY29uc3QKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4ocGFnZS0+Y2hyb21lKCktPndpbmRvd1Jl
Y3QoKS54KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHBhZ2UtPmNocm9tZSgpLT5w
aHlzaWNhbFdpbmRvd1JlY3QoKS54KCkpOwogfQogCiBpbnQgRE9NV2luZG93OjpzY3JlZW5ZKCkg
Y29uc3QKQEAgLTExODEsNyArMTE4MSw3IEBAIGludCBET01XaW5kb3c6OnNjcmVlblkoKSBjb25z
dAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50PihwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpLnkoKSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGludD4ocGFnZS0+Y2hyb21lKCktPnBoeXNpY2FsV2luZG93UmVjdCgpLnko
KSk7CiB9CiAKIGludCBET01XaW5kb3c6OnNjcm9sbFgoKSBjb25zdApAQCAtMTQ0NiwxMiArMTQ0
NiwxMiBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAg
ICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7CisgICAgRmxv
YXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCktPnBoeXNpY2FsV2luZG93UmVjdCgpOwogICAgIEZs
b2F0UmVjdCB1cGRhdGUgPSBmcjsKICAgICB1cGRhdGUubW92ZSh4LCB5KTsKICAgICAvLyBTZWN1
cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRv
IGRpc2FibGUgdGhpcyBjaGVjay4uLikKICAgICBhZGp1c3RXaW5kb3dSZWN0KHNjcmVlbkF2YWls
YWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSksIGZyLCB1cGRhdGUpOwotICAgIHBh
Z2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGZyKTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0
UGh5c2ljYWxXaW5kb3dSZWN0KGZyKTsKIH0KIAogdm9pZCBET01XaW5kb3c6Om1vdmVUbyhmbG9h
dCB4LCBmbG9hdCB5KSBjb25zdApAQCAtMTQ2NiwxNCArMTQ2NiwxNCBAQCB2b2lkIERPTVdpbmRv
dzo6bW92ZVRvKGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFn
ZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBh
Z2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7CisgICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hy
b21lKCktPnBoeXNpY2FsV2luZG93UmVjdCgpOwogICAgIEZsb2F0UmVjdCBzciA9IHNjcmVlbkF2
YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSk7CiAgICAgZnIuc2V0TG9jYXRp
b24oc3IubG9jYXRpb24oKSk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwogICAgIHVwZGF0
ZS5tb3ZlKHgsIHkpOyAgICAgCiAgICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtz
IGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4pCiAg
ICAgYWRqdXN0V2luZG93UmVjdChzciwgZnIsIHVwZGF0ZSk7Ci0gICAgcGFnZS0+Y2hyb21lKCkt
PnNldFdpbmRvd1JlY3QoZnIpOworICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRQaHlzaWNhbFdpbmRv
d1JlY3QoZnIpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxvYXQg
eSkgY29uc3QKQEAgLTE0ODgsMTEgKzE0ODgsMTEgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5
KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZy
YW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9t
ZSgpLT53aW5kb3dSZWN0KCk7CisgICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCktPnBo
eXNpY2FsV2luZG93UmVjdCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gZnIuc2l6ZSgpICsgRmxv
YXRTaXplKHgsIHkpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7
CiAgICAgYWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFt
ZSgpLT52aWV3KCkpLCBmciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93
UmVjdChmcik7CisgICAgcGFnZS0+Y2hyb21lKCktPnNldFBoeXNpY2FsV2luZG93UmVjdChmcik7
CiB9CiAKIHZvaWQgRE9NV2luZG93OjpyZXNpemVUbyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0
KSBjb25zdApAQCAtMTUwNywxMSArMTUwNywxMSBAQCB2b2lkIERPTVdpbmRvdzo6cmVzaXplVG8o
ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKICAgICBpZiAobV9mcmFtZSAhPSBwYWdl
LT5tYWluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRmxvYXRSZWN0IGZyID0gcGFn
ZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsKKyAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJv
bWUoKS0+cGh5c2ljYWxXaW5kb3dSZWN0KCk7CiAgICAgRmxvYXRTaXplIGRlc3QgPSBGbG9hdFNp
emUod2lkdGgsIGhlaWdodCk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZShmci5sb2NhdGlvbigpLCBk
ZXN0KTsKICAgICBhZGp1c3RXaW5kb3dSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFp
bkZyYW1lKCktPnZpZXcoKSksIGZyLCB1cGRhdGUpOwotICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRX
aW5kb3dSZWN0KGZyKTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0UGh5c2ljYWxXaW5kb3dSZWN0
KGZyKTsKIH0KIAogaW50IERPTVdpbmRvdzo6c2V0VGltZW91dChQYXNzT3duUHRyPFNjaGVkdWxl
ZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRhaW5lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRhaW5lci5jcHAKaW5k
ZXggM2RlYjk1YTkyOGJlYzkxYzhhYjY4MjZhZGZmNTMzZDhiN2FkZDllOS4uOTFkMTVjYzQ0NWMy
MzUyODU4ZmNjNTZmMGI5YzM2ZDAzNjZjYTcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUG9wdXBDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwQ29udGFpbmVyLmNwcApAQCAtMTk5LDcgKzE5OSw3IEBA
IEludFJlY3QgUG9wdXBDb250YWluZXI6OmxheW91dEFuZENhbGN1bGF0ZVdpZGdldFJlY3QoaW50
IHRhcmdldENvbnRyb2xIZWlnaHQsIGNvCiAgICAgICAgIC8vIElmIHdlIGhhdmUgbXVsdGlwbGUg
c2NyZWVucyBhbmQgdGhlIGJyb3dzZXIgcmVjdCBpcyBpbiBvbmUgc2NyZWVuLCB3ZSBoYXZlCiAg
ICAgICAgIC8vIHRvIGNsaXAgdGhlIHdpbmRvdyB3aWR0aCB0byB0aGUgc2NyZWVuIHdpZHRoLgog
ICAgICAgICAvLyBXaGVuIGNsaXBwaW5nLCB3ZSBhbHNvIG5lZWQgdG8gc2V0IGEgbWF4aW11bSB3
aWR0aCBmb3IgdGhlIGxpc3QgYm94LgotICAgICAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IGNo
cm9tZUNsaWVudC0+d2luZG93UmVjdCgpOworICAgICAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9
IGNocm9tZUNsaWVudC0+cGh5c2ljYWxXaW5kb3dSZWN0KCk7CiAKICAgICAgICAgYm9vbCBuZWVk
VG9SZXNpemVWaWV3ID0gZmFsc2U7CiAgICAgICAgIHdpZGdldFJlY3RJblNjcmVlbiA9IGxheW91
dEFuZENhbGN1bGF0ZVdpZGdldFJlY3RJbnRlcm5hbCh3aWRnZXRSZWN0SW5TY3JlZW4sIHRhcmdl
dENvbnRyb2xIZWlnaHQsIHdpbmRvd1JlY3QsIHNjcmVlbiwgaXNSVEwsIHJ0bE9mZnNldCwgbV9s
aXN0Qm94LmdldCgpLCBuZWVkVG9SZXNpemVWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFj
a0JlcnJ5LmNwcAppbmRleCA3OGMxMmIyYzk2ZmI4NTZjZDljMWMxOWM5ZjM1NjBmMTcxNGY2OWI3
Li43YWY1YTZlZThlYmZlMzA4ZjAxY2ZlNzAzZmUzYTZlNThhNmQ3MmZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0xNTMsMTIgKzE1MywxMiBAQCB2b2lkIENocm9t
ZUNsaWVudEJsYWNrQmVycnk6OmNocm9tZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9
CiAKLXZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6c2V0V2luZG93UmVjdChjb25zdCBGbG9h
dFJlY3QmKQordm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzZXRQaHlzaWNhbFdpbmRvd1Jl
Y3QoY29uc3QgRmxvYXRSZWN0JikKIHsKICAgICAvLyBUaGUgd2luZG93IGRpbWVuc2lvbnMgYXJl
IGZpeGVkIGluIHRoZSBSSU0gcG9ydC4KIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudEJsYWNr
QmVycnk6OndpbmRvd1JlY3QoKQorRmxvYXRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OnBo
eXNpY2FsV2luZG93UmVjdCgpCiB7CiAgICAgSW50U2l6ZSB3aW5kb3dTaXplOwogCkBAIC0xNjgs
MTAgKzE2OCwxMSBAQCBGbG9hdFJlY3QgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6d2luZG93UmVj
dCgpCiAgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCB3aW5kb3dTaXplLndpZHRoKCksIHdpbmRv
d1NpemUuaGVpZ2h0KCkpOwogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6
cGFnZVJlY3QoKQorRmxvYXRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OnBoeXNpY2FsVmll
d3BvcnRSZWN0KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBGbG9hdFJl
Y3QoKTsKKyAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhlIHdpbmRvdyByZWN0IGlzIHVzZWQgZm9y
IHdpbmRvdyByZXNpemluZy4KKyAgICByZXR1cm4gcGh5c2ljYWxXaW5kb3dSZWN0KCk7CiB9CiAK
IGZsb2F0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OnNjYWxlRmFjdG9yKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFj
a0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IGUxMjlmNDU4NDIxOTZiYTVlNjUxYzVlMGQ4NTZmOWUy
YWJiYmU4NWEuLjQyZmE5NGE0YTJjMTNmNmJkZTcxYmUwYzFkMGExMjY1MzBiM2FjYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaApAQCAtMzcsOSArMzcsOSBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCk7CiAgICAgdmlydHVhbCB2b2lkKiB3
ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gMDsgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93
UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0
KCk7Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgcGFnZVJlY3QoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0UGh5c2ljYWxXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHZpcnR1YWwgRmxv
YXRSZWN0IHBoeXNpY2FsV2luZG93UmVjdCgpOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBoeXNp
Y2FsVmlld3BvcnRSZWN0KCk7CiAgICAgdmlydHVhbCBmbG9hdCBzY2FsZUZhY3RvcigpOwogICAg
IHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IDk0
OTU5MzgwYTYwNmQ5ZDEyZTdiZjk3NTUyYWZjNGJhNmNjZDliZTYuLjJmMmY3ZWZlNWJjOTliNGJl
NWE5MjZiNzRhYzY5ODE4YzBhYTkyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC0xNTgsMTMgKzE1OCwxMyBAQCB2b2lkIENocm9t
ZUNsaWVudEltcGw6OmNocm9tZURlc3Ryb3llZCgpCiAgICAgLy8gT3VyIGxpZmV0aW1lIGlzIGJv
dW5kIHRvIHRoZSBXZWJWaWV3SW1wbC4KIH0KIAotdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpzZXRX
aW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6c2V0
UGh5c2ljYWxXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikKIHsKICAgICBpZiAobV93ZWJW
aWV3LT5jbGllbnQoKSkKICAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+c2V0V2luZG93UmVj
dChJbnRSZWN0KHIpKTsKIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudEltcGw6OndpbmRvd1Jl
Y3QoKQorRmxvYXRSZWN0IENocm9tZUNsaWVudEltcGw6OnBoeXNpY2FsV2luZG93UmVjdCgpCiB7
CiAgICAgV2ViUmVjdCByZWN0OwogICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQpAQCAtMTc5
LDEyICsxNzksMTIgQEAgRmxvYXRSZWN0IENocm9tZUNsaWVudEltcGw6OndpbmRvd1JlY3QoKQog
ICAgIHJldHVybiBGbG9hdFJlY3QocmVjdCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRJ
bXBsOjpwYWdlUmVjdCgpCitGbG9hdFJlY3QgQ2hyb21lQ2xpZW50SW1wbDo6cGh5c2ljYWxWaWV3
cG9ydFJlY3QoKQogewogICAgIC8vIFdlIGhpZGUgdGhlIGRldGFpbHMgb2YgdGhlIHdpbmRvdydz
IGJvcmRlciB0aGlja25lc3MgZnJvbSB0aGUgd2ViIHBhZ2UgYnkKICAgICAvLyBzaW1wbGUgcmUt
dXNpbmcgdGhlIHdpbmRvdyBwb3NpdGlvbiBoZXJlLiAgU28sIGZyb20gdGhlIHBvaW50LW9mLXZp
ZXcgb2YKICAgICAvLyB0aGUgd2ViIHBhZ2UsIHRoZSB3aW5kb3cgaGFzIG5vIGJvcmRlci4KLSAg
ICByZXR1cm4gd2luZG93UmVjdCgpOworICAgIHJldHVybiBwaHlzaWNhbFdpbmRvd1JlY3QoKTsK
IH0KIAogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpmb2N1cygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggNzcwODRmODAxMDJmNjIzN2I2Nzgy
ZGM4YjYwZmNjMmNlMjY2OTUyMC4uMzFjMDQ3MWM5NThmOTMzNDQzN2IyZTg1NWI3OGM5MGViYmUx
NWFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
aApAQCAtNzMsOSArNzMsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBDaHJvbWVDbGllbnQgbWV0aG9k
czoKICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCk7Ci0gICAgdmlydHVhbCB2b2lk
IHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7Ci0gICAgdmlydHVhbCBX
ZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVjdCgpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6Rmxv
YXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgdmlydHVhbCB2b2lkIHNldFBoeXNpY2FsV2luZG93UmVj
dChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0
UmVjdCBwaHlzaWNhbFdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVj
dCBwaHlzaWNhbFZpZXdwb3J0UmVjdCgpOwogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAg
IHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CiAgICAgdmlydHVhbCBib29sIGNhblRha2VGb2N1cyhX
ZWJDb3JlOjpGb2N1c0RpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCA1Mzc0MjRhOTQzZDA3ZDMzNTUx
OWExMTNjMTM5YzI4MDYxMDYwODE3Li4yYzg2ZjJlNzlhNzJiYTQ0MDEzZGM2NDFiZDg4Yzc4YmMw
YzQ5OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIENocm9tZUNsaWVudEVm
bDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopCiB7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVD
bGllbnRFZmw6OndpbmRvd1JlY3QoKQorRmxvYXRSZWN0IENocm9tZUNsaWVudEVmbDo6cGh5c2lj
YWxXaW5kb3dSZWN0KCkKIHsKICAgICBpbnQgeCwgeSwgd2lkdGgsIGhlaWdodDsKIApAQCAtMTI2
LDcgKzEyNiw3IEBAIEZsb2F0UmVjdCBDaHJvbWVDbGllbnRFZmw6OndpbmRvd1JlY3QoKQogICAg
IHJldHVybiBGbG9hdFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCk7CiB9CiAKLXZvaWQgQ2hyb21l
Q2xpZW50RWZsOjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgQ2hy
b21lQ2xpZW50RWZsOjpzZXRQaHlzaWNhbFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0
KQogewogICAgIGlmICghZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfYXV0b19yZXNpemVfd2luZG93
X2dldChtX3ZpZXcpKQogICAgICAgICByZXR1cm47CkBAIC0xMzUsOSArMTM1LDEwIEBAIHZvaWQg
Q2hyb21lQ2xpZW50RWZsOjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAg
ICBlY29yZV9ldmFzX21vdmVfcmVzaXplKGVlLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lk
dGgoKSwgcmVjdC5oZWlnaHQoKSk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRFZmw6OnBh
Z2VSZWN0KCkKK0Zsb2F0UmVjdCBDaHJvbWVDbGllbnRFZmw6OnBoeXNpY2FsVmlld3BvcnRSZWN0
KCkKIHsKLSAgICByZXR1cm4gZXdrX3ZpZXdfcGFnZV9yZWN0X2dldChtX3ZpZXcpOworICAgIC8v
IEZJWE1FOiBUaGlzIGlzIGp1c3QgYSBhcHByb3hpbWF0aW9uLgorICAgIHJldHVybiBwaHlzaWNh
bFdpbmRvd1JlY3QoKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRFZmw6OmZvY3VzKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5o
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5k
ZXggNjhkYTQ1YThhODE2ZjMwOGM1N2VjMTc5Nzg3MmY4NDNiNTE2ZjY0Ny4uNWI5NjM2NjUyZmRh
MTVlNjdjZTgwYzhiZTExZmJiZGM4Mzk3N2VjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKQEAgLTQ4LDEwICs0OCwxMCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogCiAgICAgdmlydHVh
bCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgdm9pZCBz
ZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHdp
bmRvd1JlY3QoKTsKIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgdmly
dHVhbCB2b2lkIHNldFBoeXNpY2FsV2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKKyAgICB2
aXJ0dWFsIEZsb2F0UmVjdCBwaHlzaWNhbFdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIEZsb2F0
UmVjdCBwaHlzaWNhbFZpZXdwb3J0UmVjdCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7
CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CmluZGV4IGZhYTU1YzIwMmRjOTJjYzQ3NzA3MzRmMjAzMWZiZWQyMTM0Y2I1ZDMuLmEzZDFhMjk0
MzMzZDQ3Mzg0NGFiYjllZmI0NWI5YjZiOThmODQyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcApAQCAtMTMwNSw4ICsxMzA1LDkgQEAgc3RhdGljIFdlYkNvcmU6OlZpZXdwb3J0QXR0
cmlidXRlcyBfZXdrX3ZpZXdfdmlld3BvcnRfYXR0cmlidXRlc19jb21wdXRlKEV3a19WaWUKICAg
ICBpbnQgZGV2aWNlRFBJID0gV2ViQ29yZTo6Z2V0RFBJKCk7CiAgICAgcHJpdi0+c2V0dGluZ3Mu
ZGV2aWNlUGl4ZWxSYXRpbyA9IGRldmljZURQSSAvIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRz
OjpkZXByZWNhdGVkVGFyZ2V0RFBJOwogCi0gICAgV2ViQ29yZTo6SW50UmVjdCBhdmFpbGFibGVS
ZWN0ID0gZW5jbG9zaW5nSW50UmVjdChwcml2LT5wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnBh
Z2VSZWN0KCkpOwotICAgIFdlYkNvcmU6OkludFJlY3QgZGV2aWNlUmVjdCA9IGVuY2xvc2luZ0lu
dFJlY3QocHJpdi0+cGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT53aW5kb3dSZWN0KCkpOworICAg
IFdlYkNvcmU6OkludFJlY3QgYXZhaWxhYmxlUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QocHJpdi0+
cGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5waHlzaWNhbFZpZXdwb3J0UmVjdCgpKTsKKyAgICAv
LyBGSVhNRTogVGhpcyBpcyB3cm9uZyEgWW91IHdhbnQgdGhlIHNjcmVlblJlY3QoKS4KKyAgICBX
ZWJDb3JlOjpJbnRSZWN0IGRldmljZVJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYtPnBhZ2Ut
PmNocm9tZSgpLT5jbGllbnQoKS0+cGh5c2ljYWxXaW5kb3dSZWN0KCkpOwogCiAgICAgV2ViQ29y
ZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgPSBXZWJDb3JlOjpjb21wdXRlVmlld3Bv
cnRBdHRyaWJ1dGVzKHByaXYtPnZpZXdwb3J0QXJndW1lbnRzLCBkZXNrdG9wV2lkdGgsIGRldmlj
ZVJlY3Qud2lkdGgoKSwgZGV2aWNlUmVjdC5oZWlnaHQoKSwgcHJpdi0+c2V0dGluZ3MuZGV2aWNl
UGl4ZWxSYXRpbywgYXZhaWxhYmxlUmVjdC5zaXplKCkpOwogICAgIFdlYkNvcmU6OnJlc3RyaWN0
TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoYXR0cmlidXRlcywgYXZhaWxhYmxlUmVj
dC5zaXplKCksIHByaXYtPnNldHRpbmdzLmRldmljZVBpeGVsUmF0aW8pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXgg
NjE1MmY1MDgwYmZiZGVjOWNlNDQxYzljMzkxNTAyYjIwMDE5OTk4NS4uMzM1ODE5NjNkMDE0ZTc4
NmUwMmExZWNmNzM1ZjI2OWE3ZGU0MmNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAg
dm9pZCBDaHJvbWVDbGllbnQ6OmNocm9tZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9
CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQorRmxvYXRSZWN0IENocm9t
ZUNsaWVudDo6cGh5c2ljYWxXaW5kb3dSZWN0KCkKIHsKICAgICBHdGtXaWRnZXQqIHdpbmRvdyA9
IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQobV93ZWJWaWV3KSk7CiAgICAgaWYg
KHdpZGdldElzT25zY3JlZW5Ub3BsZXZlbFdpbmRvdyh3aW5kb3cpKSB7CkBAIC0xMTYsNyArMTE2
LDcgQEAgRmxvYXRSZWN0IENocm9tZUNsaWVudDo6d2luZG93UmVjdCgpCiAgICAgcmV0dXJuIEZs
b2F0UmVjdCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudDo6c2V0V2luZG93UmVjdChjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCit2b2lkIENocm9tZUNsaWVudDo6c2V0UGh5c2ljYWxXaW5kb3dSZWN0
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBJbnRSZWN0IGludHJlY3QgPSBJbnRSZWN0
KHJlY3QpOwogICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzKiB3ZWJXaW5kb3dGZWF0dXJlcyA9
IHdlYmtpdF93ZWJfdmlld19nZXRfd2luZG93X2ZlYXR1cmVzKG1fd2ViVmlldyk7CkBAIC0xNDks
NyArMTQ5LDcgQEAgc3RhdGljIEludFJlY3QgZ2V0V2ViVmlld1JlY3QoV2ViS2l0V2ViVmlldyog
d2ViVmlldykKICAgICByZXR1cm4gSW50UmVjdChhbGxvY2F0aW9uLngsIGFsbG9jYXRpb24ueSwg
YWxsb2NhdGlvbi53aWR0aCwgYWxsb2NhdGlvbi5oZWlnaHQpOwogfQogCi1GbG9hdFJlY3QgQ2hy
b21lQ2xpZW50OjpwYWdlUmVjdCgpCitGbG9hdFJlY3QgQ2hyb21lQ2xpZW50OjpwaHlzaWNhbFZp
ZXdwb3J0UmVjdCgpCiB7CiAgICAgcmV0dXJuIGdldFdlYlZpZXdSZWN0KG1fd2ViVmlldyk7CiB9
CkBAIC02NzksNyArNjc5LDcgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJbnRT
aXplJiBkZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb24KICAgICAvLyBDb21w
dXRlIHRoZSBzY3JvbGwgcmVwYWludCByZWdpb24uIFdlIGVuc3VyZSB0aGF0IHdlIGFyZSBub3Qg
c3VidHJhY3RpbmcgYXJlYXMKICAgICAvLyB0aGF0IHdlJ3ZlIHNjcm9sbGVkIGZyb20gb3V0c2lk
ZSB0aGUgdmlld3BvcnQgZnJvbSB0aGUgcmVwYWludCByZWdpb24uCiAgICAgSW50UmVjdCBvblNj
cmVlblNjcm9sbFJlY3QgPSByZWN0VG9TY3JvbGw7Ci0gICAgb25TY3JlZW5TY3JvbGxSZWN0Lmlu
dGVyc2VjdChJbnRSZWN0KEludFBvaW50KCksIGVuY2xvc2luZ0ludFJlY3QocGFnZVJlY3QoKSku
c2l6ZSgpKSk7CisgICAgb25TY3JlZW5TY3JvbGxSZWN0LmludGVyc2VjdChJbnRSZWN0KEludFBv
aW50KCksIGVuY2xvc2luZ0ludFJlY3QocGh5c2ljYWxWaWV3cG9ydFJlY3QoKSkuc2l6ZSgpKSk7
CiAgICAgUmVnaW9uIHNjcm9sbFJlcGFpbnRSZWdpb24gPSBzdWJ0cmFjdChyZWN0VG9TY3JvbGws
IHRyYW5zbGF0ZShvblNjcmVlblNjcm9sbFJlY3QsIGRlbHRhKSk7CiAKICAgICBtX2RpcnR5UmVn
aW9uLnVuaXRlKHNjcm9sbFJlcGFpbnRSZWdpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCA0NGMyMTFhZDQ2Mjg3ZWZm
ZDc0MzA0YzAyZGNjNmRiMzBmYWY2MDNjLi41MWMxMmMxM2ZkNjZiMDNmNmQ3YTMwMWIyNGM5YjBk
MTk1YjMwMDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuaApAQCAtNDgsMTAgKzQ4LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
ICAgICAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwotICAgICAgICB2aXJ0dWFs
IEZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7Ci0KLSAgICAgICAgdmlydHVhbCBGbG9hdFJlY3QgcGFn
ZVJlY3QoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNldFBoeXNpY2FsV2luZG93UmVjdChjb25z
dCBGbG9hdFJlY3QmKTsKKyAgICAgICAgdmlydHVhbCBGbG9hdFJlY3QgcGh5c2ljYWxXaW5kb3dS
ZWN0KCk7CisgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBoeXNpY2FsVmlld3BvcnRSZWN0KCk7
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1
bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmll
d3BvcnRhdHRyaWJ1dGVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3
cG9ydGF0dHJpYnV0ZXMuY3BwCmluZGV4IGQxYTgzNzg2OTU2YTc3NWI3ZTRlMzkyOTljZjhlODc1
ZGM1YmM0NDguLjA4ZGY1MTUwYmRjNjM4ODE0ZTFmMGFiZTk4MDYwNGZiYjhhMDFiMjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0
ZXMuY3BwCkBAIC01MjEsMTEgKzUyMSwxMSBAQCB2b2lkIHdlYmtpdFZpZXdwb3J0QXR0cmlidXRl
c1JlY29tcHV0ZShXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMqIHZpZXdwb3J0QXR0cmlidQogICAg
IFdlYktpdFZpZXdwb3J0QXR0cmlidXRlc1ByaXZhdGUqIHByaXYgPSB2aWV3cG9ydEF0dHJpYnV0
ZXMtPnByaXY7CiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IHByaXYtPndlYlZpZXc7CiAK
LSAgICBJbnRSZWN0IHdpbmRvd1JlY3Qod2ViVmlldy0+cHJpdi0+Y29yZVBhZ2UtPmNocm9tZSgp
LT53aW5kb3dSZWN0KCkpOworICAgIEludFJlY3Qgd2luZG93UmVjdCh3ZWJWaWV3LT5wcml2LT5j
b3JlUGFnZS0+Y2hyb21lKCktPnBoeXNpY2FsV2luZG93UmVjdCgpKTsKICAgICBwcml2LT5kZXZp
Y2VXaWR0aCA9IHdpbmRvd1JlY3Qud2lkdGgoKTsKICAgICBwcml2LT5kZXZpY2VIZWlnaHQgPSB3
aW5kb3dSZWN0LmhlaWdodCgpOwogCi0gICAgSW50UmVjdCByZWN0KHdlYlZpZXctPnByaXYtPmNv
cmVQYWdlLT5jaHJvbWUoKS0+cGFnZVJlY3QoKSk7CisgICAgSW50UmVjdCByZWN0KHdlYlZpZXct
PnByaXYtPmNvcmVQYWdlLT5jaHJvbWUoKS0+cGh5c2ljYWxWaWV3cG9ydFJlY3QoKSk7CiAgICAg
cHJpdi0+YXZhaWxhYmxlV2lkdGggPSByZWN0LndpZHRoKCk7CiAgICAgcHJpdi0+YXZhaWxhYmxl
SGVpZ2h0ID0gcmVjdC5oZWlnaHQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3MDczNDljNWJkNjUyNWEzNTg3N2Fl
MmFiZjJlMzBlZjhkN2NmNWIxLi5kMTZkODFhMGY0ZDcyMzc3NDBiOWE0M2YwY2NhMGYzY2QwNGY1
ZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaApAQCAtNDAsMTAgKzQwLDkgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwg
dm9pZCBjaHJvbWVEZXN0cm95ZWQoKSBPVkVSUklERTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgT1ZFUlJJREU7Ci0KLSAgICB2
aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBzZXRQaHlzaWNhbFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGh5c2ljYWxXaW5kb3dS
ZWN0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGh5c2ljYWxW
aWV3cG9ydFJlY3QoKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggZjBi
Y2RhNTI5OWJiNDMyODJhY2I1MTA4ZWQzNzY2N2RlNThlMzM1ZC4uMTU3OGVmNDk2ODAzMGQ4ZGVl
NzQ4YTkwYzZkNjM4NzNjMDU4YzFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtMTQ2LDIwICsxNDYsMjAgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmNocm9tZURlc3Ryb3llZCgpCiAvLyBUaGVzZSBmdW5jdGlvbnMg
c2NhbGUgYmV0d2VlbiB3aW5kb3cgYW5kIFdlYlZpZXcgY29vcmRpbmF0ZXMgYmVjYXVzZSBKYXZh
U2NyaXB0L0RPTSBvcGVyYXRpb25zIAogLy8gYXNzdW1lIHRoYXQgdGhlIFdlYlZpZXcgYW5kIHRo
ZSB3aW5kb3cgc2hhcmUgdGhlIHNhbWUgY29vcmRpbmF0ZSBzeXN0ZW0uCiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzZXRQaHlzaWNhbFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0
KQogewogICAgIE5TUmVjdCB3aW5kb3dSZWN0ID0gdG9EZXZpY2VTcGFjZShyZWN0LCBbbV93ZWJW
aWV3IHdpbmRvd10pOwogICAgIFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJW
aWV3Om1fd2ViVmlldyBzZXRGcmFtZTp3aW5kb3dSZWN0XTsKIH0KIAotRmxvYXRSZWN0IFdlYkNo
cm9tZUNsaWVudDo6d2luZG93UmVjdCgpCitGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwaHlz
aWNhbFdpbmRvd1JlY3QoKQogewogICAgIE5TUmVjdCB3aW5kb3dSZWN0ID0gW1ttX3dlYlZpZXcg
X1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdGcmFtZTptX3dlYlZpZXddOwogICAgIHJldHVy
biB0b1VzZXJTcGFjZSh3aW5kb3dSZWN0LCBbbV93ZWJWaWV3IHdpbmRvd10pOwogfQogCiAvLyBG
SVhNRTogV2UgbmVlZCB0byBhZGQgQVBJIGZvciBzZXR0aW5nIGFuZCBnZXR0aW5nIHRoaXMuCi1G
bG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwYWdlUmVjdCgpCitGbG9hdFJlY3QgV2ViQ2hyb21l
Q2xpZW50OjpwaHlzaWNhbFZpZXdwb3J0UmVjdCgpCiB7CiAgICAgcmV0dXJuIFttX3dlYlZpZXcg
ZnJhbWVdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmNwcAppbmRleCBlYWFlYjAxMmY4NmQwYTUzMTEwYjU3OTc3M2Y2ZDViOGMwNWQ5
MzQyLi5kMTUxOTFjZDQ0MDBmODFkMTg2NDc3YWQ3ZTZkZmE5ZjNhOGFkNWQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApAQCAt
MTQ0LDcgKzE0NCw3IEBAIENocm9tZUNsaWVudFF0Ojp+Q2hyb21lQ2xpZW50UXQoKQogI2VuZGlm
CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50UXQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0KQordm9pZCBDaHJvbWVDbGllbnRRdDo6c2V0UGh5c2ljYWxXaW5kb3dSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIW1fd2ViUGFnZSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMTU3LDEzICsxNTcsMjAgQEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6c2V0V2luZG93UmVj
dChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgbGlrZSB0b29sYmFycy9zY3JvbGxiYXJzIGV0
Yy4gSXQgaXMgdXNlZCBieSB0aGUgdmlld3BvcnQgbWV0YSB0YWcgYXMgd2VsbCBhcwogICAgIGJ5
IHRoZSBET00gV2luZG93IG9iamVjdDogb3V0ZXJIZWlnaHQoKSwgb3V0ZXJXaWR0aCgpLCBzY3Jl
ZW5YKCksIHNjcmVlblkoKS4KICovCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50UXQ6OndpbmRvd1Jl
Y3QoKQorRmxvYXRSZWN0IENocm9tZUNsaWVudFF0OjpwaHlzaWNhbFdpbmRvd1JlY3QoKQogewog
ICAgIGlmICghcGxhdGZvcm1QYWdlQ2xpZW50KCkpCiAgICAgICAgIHJldHVybiBGbG9hdFJlY3Qo
KTsKICAgICByZXR1cm4gcGxhdGZvcm1QYWdlQ2xpZW50KCktPndpbmRvd1JlY3QoKTsKIH0KIAor
RmxvYXRSZWN0IENocm9tZUNsaWVudFF0OjpwaHlzaWNhbFZpZXdwb3J0UmVjdCgpCit7CisgICAg
aWYgKCFtX3dlYlBhZ2UpCisgICAgICAgIHJldHVybiBwaHlzaWNhbFdpbmRvd1JlY3QoKTsKKyAg
ICByZXR1cm4gRmxvYXRSZWN0KFFSZWN0RihRUG9pbnRGKDAsIDApLCBtX3dlYlBhZ2UtPnZpZXdw
b3J0U2l6ZSgpKSk7Cit9CisKIGJvb2wgQ2hyb21lQ2xpZW50UXQ6OmFsbG93c0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmcoKSBjb25zdAogewogICAgIGlmICghcGxhdGZvcm1QYWdlQ2xpZW50KCkpCkBA
IC0xNzEsMTMgKzE3OCw2IEBAIGJvb2wgQ2hyb21lQ2xpZW50UXQ6OmFsbG93c0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmcoKSBjb25zdAogICAgIHJldHVybiBwbGF0Zm9ybVBhZ2VDbGllbnQoKS0+YWxs
b3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpOwogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50
UXQ6OnBhZ2VSZWN0KCkKLXsKLSAgICBpZiAoIW1fd2ViUGFnZSkKLSAgICAgICAgcmV0dXJuIEZs
b2F0UmVjdCgpOwotICAgIHJldHVybiBGbG9hdFJlY3QoUVJlY3RGKFFQb2ludEYoMCwgMCksIG1f
d2ViUGFnZS0+dmlld3BvcnRTaXplKCkpKTsKLX0KLQogdm9pZCBDaHJvbWVDbGllbnRRdDo6Zm9j
dXMoKQogewogICAgIGlmICghbV93ZWJQYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IGY3MzU5ZDJlMjg3NGE3NTUxOWMyZjUz
ODc2ODEzMjk4MGFlNGI5Y2QuLjQ0YWJlNDBlYjZiODE5NGRmMDQ3OTczZGE1ZjkxYTljZTU3Mzcw
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmgKQEAgLTY0LDEwICs2NCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNocm9t
ZURlc3Ryb3llZCgpOwogCiAgICAgdmlydHVhbCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1
cm4gMDsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYp
OwotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKIAotICAgIHZpcnR1YWwgRmxv
YXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgdmlydHVhbCB2b2lkIHNldFBoeXNpY2FsV2luZG93UmVj
dChjb25zdCBGbG9hdFJlY3QmKTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwaHlzaWNhbFdpbmRv
d1JlY3QoKTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwaHlzaWNhbFZpZXdwb3J0UmVjdCgpOwog
CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCmluZGV4IDY4YmRkZWYwMzQxODRiNWQ0MDFkNWNkMGY3NGE1NjIxZjY0YjY5ZTIuLjJi
OTE1MzkzOTlhOGE0Mjg5MWI3MzIwMWY4YjRiZjk2ZGFiNjRlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODUs
NyArODUsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2hyb21lRGVzdHJveWVkKCkKICAgICBk
ZWxldGUgdGhpczsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QoY29u
c3QgRmxvYXRSZWN0JiByKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFBoeXNpY2FsV2luZG93
UmVjdChjb25zdCBGbG9hdFJlY3QmIHIpCiB7CiAgICAgSVdlYlVJRGVsZWdhdGUqIHVpRGVsZWdh
dGUgPSAwOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVn
YXRlKSkpIHsKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRv
d1JlY3QoY29uc3QgRmxvYXRSZWN0JiByKQogICAgIH0KIH0KIAotRmxvYXRSZWN0IFdlYkNocm9t
ZUNsaWVudDo6d2luZG93UmVjdCgpCitGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwaHlzaWNh
bFdpbmRvd1JlY3QoKQogewogICAgIElXZWJVSURlbGVnYXRlKiB1aURlbGVnYXRlID0gMDsKICAg
ICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CkBA
IC0xMTEsNyArMTExLDcgQEAgRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVjdCgp
CiAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogfQogCi1GbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50
OjpwYWdlUmVjdCgpCitGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwaHlzaWNhbFZpZXdwb3J0
UmVjdCgpCiB7CiAgICAgUkVDVCByZWN0OwogICAgIG1fd2ViVmlldy0+ZnJhbWVSZWN0KCZyZWN0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKaW5kZXggOWFlYzczNDZmMDI1OWZlZjA4NWRhYTdhNjc1Y2UzOGRlNWE3ZDQzNi4uN2My
ODYxMjlhMTk3Mjg0M2U2YmJhYTBmZjVlNGFhMDM1NjdjNjIwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQ0LDEwICs0
NCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gbV93ZWJWaWV3OyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7
Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVjdCgpOwotICAgIAotICAg
IHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0UGh5c2ljYWxXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOworICAg
IHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHBoeXNpY2FsV2luZG93UmVjdCgpOworICAgIHZp
cnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHBoeXNpY2FsVmlld3BvcnRSZWN0KCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZm9jdXMoKTsKICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5D
RS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdp
bkNFLmNwcAppbmRleCBkZTZiZjcxOTBmYjAyMzliNDAxNzhmYTRkZThiZWRjZjQwODViZTQxLi4y
MTA2ZjUzZGFmZTQzMzM1YWU1ZjQ3YmZiNWJhNjA4NTJmZDBmMDBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNw
cApAQCAtNTAsNyArNTAsNyBAQCB2b2lkIENocm9tZUNsaWVudFdpbkNFOjpjaHJvbWVEZXN0cm95
ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50V2luQ0U6
OndpbmRvd1JlY3QoKQorRmxvYXRSZWN0IENocm9tZUNsaWVudFdpbkNFOjpwaHlzaWNhbFdpbmRv
d1JlY3QoKQogewogICAgIGlmICghbV93ZWJWaWV3KQogICAgICAgICByZXR1cm4gRmxvYXRSZWN0
KCk7CkBAIC02MCwxNCArNjAsMTQgQEAgRmxvYXRSZWN0IENocm9tZUNsaWVudFdpbkNFOjp3aW5k
b3dSZWN0KCkKICAgICByZXR1cm4gcmVjdDsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6
c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKQordm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6
c2V0UGh5c2ljYWxXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudFdpbkNFOjpwYWdlUmVjdCgpCitG
bG9hdFJlY3QgQ2hyb21lQ2xpZW50V2luQ0U6OnBoeXNpY2FsVmlld3BvcnRSZWN0KCkKIHsKLSAg
ICByZXR1cm4gd2luZG93UmVjdCgpOworICAgIHJldHVybiBwaHlzaWNhbFdpbmRvd1JlY3QoKTsK
IH0KIAogdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6Zm9jdXMoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oIGIvU291cmNl
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCmluZGV4IDk2
Y2VhMWE2MmFiZDk4NWZhMTIyMGJjYjdmNGQ3OWVjOTY5ODcxM2YuLmFkZTVlMTZlNDIwZTAwYzA4
ZjYxYWZmNjljZDY2MTU1MTQ1NzkxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKQEAgLTM4LDEwICszOCwxMCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogCiAgICAgdmly
dHVhbCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgdm9p
ZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHZpcnR1YWwg
V2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6
RmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgdmlydHVhbCB2b2lkIHNldFBoeXNpY2FsV2luZG93
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZs
b2F0UmVjdCBwaHlzaWNhbFdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0
UmVjdCBwaHlzaWNhbFZpZXdwb3J0UmVjdCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7
CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3d4L1dl
YktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCmluZGV4IDVmMTE2N2I1NDdjZDYxYTZmMDVh
YzI4ZjE3YjNhY2RlNzZkMTZmNGMuLjlkZDBjODUwZDUzNDBiM2IzZTY2NjUxNmU2N2YwZWNmMTQz
NjlkNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVD
bGllbnRXeC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNs
aWVudFd4LmNwcApAQCAtOTAsMTggKzkwLDE4IEBAIHZvaWQgQ2hyb21lQ2xpZW50V3g6OmNocm9t
ZURlc3Ryb3llZCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGll
bnRXeDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKQordm9pZCBDaHJvbWVDbGllbnRX
eDo6c2V0UGh5c2ljYWxXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudFd4Ojp3aW5kb3dSZWN0KCkK
K0Zsb2F0UmVjdCBDaHJvbWVDbGllbnRXeDo6cGh5c2ljYWxXaW5kb3dSZWN0KCkKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBGbG9hdFJlY3QoKTsKIH0KIAotRmxvYXRSZWN0
IENocm9tZUNsaWVudFd4OjpwYWdlUmVjdCgpCitGbG9hdFJlY3QgQ2hyb21lQ2xpZW50V3g6OnBo
eXNpY2FsVmlld3BvcnRSZWN0KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVy
biBGbG9hdFJlY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5oIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9t
ZUNsaWVudFd4LmgKaW5kZXggNTA1NDBmMDk0M2U5ZDY5NjNmMTk1NGMxMWU2MmNjY2E3ZjlkOGE1
OC4uYmZhNDBhZDAzMDNkMDM1YmJhOGQ4MmFjN2VmNzdmMWU2MGExY2RjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKKysrIGIvU291
cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKQEAgLTQ1LDEwICs0
NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1
YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwotICAgIHZpcnR1YWwgRmxv
YXRSZWN0IHdpbmRvd1JlY3QoKTsKIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCk7
CisgICAgdmlydHVhbCB2b2lkIHNldFBoeXNpY2FsV2luZG93UmVjdChjb25zdCBGbG9hdFJlY3Qm
KTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwaHlzaWNhbFdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0
dWFsIEZsb2F0UmVjdCBwaHlzaWNhbFZpZXdwb3J0UmVjdCgpOwogCiAgICAgdmlydHVhbCB2b2lk
IGZvY3VzKCk7CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAppbmRleCAzZTdmZTMyOTRmYzVlY2RkYjYwYjJiOGIyNzgyOTZlM2FjNzA5YzFiLi40YzA4
ZTdjNTVlODdlMTBiYzBlYmRlN2QwNGViOTYwYzE1MDQzY2NkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCkBAIC0xMDEsMTIgKzEwMSwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2hyb21l
RGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiB3aW5kb3dGcmFtZSkKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpzZXRQaHlzaWNhbFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiB3aW5kb3dG
cmFtZSkKIHsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0V2lu
ZG93RnJhbWUod2luZG93RnJhbWUpKTsKIH0KIAotRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6
d2luZG93UmVjdCgpCitGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwaHlzaWNhbFdpbmRvd1Jl
Y3QoKQogewogICAgIEZsb2F0UmVjdCBuZXdXaW5kb3dGcmFtZTsKIApAQCAtMTE2LDkgKzExNiwx
MyBAQCBGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KCkKICAgICByZXR1cm4g
bmV3V2luZG93RnJhbWU7CiB9CiAKLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OnBhZ2VSZWN0
KCkKK0Zsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OnBoeXNpY2FsVmlld3BvcnRSZWN0KCkKIHsK
KyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICByZXR1cm4gRmxvYXRSZWN0KEZsb2F0
UG9pbnQoKSwgbV9wYWdlLT52aWV3cG9ydFNpemUoKSk7CisjZWxzZQogICAgIHJldHVybiBGbG9h
dFJlY3QoRmxvYXRQb2ludCgpLCBtX3BhZ2UtPnNpemUoKSk7CisjZW5kaWYKIH0KIAogdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmZvY3VzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDFlNjJmN2Fi
ZDRjYzJiYjg1MjllNTBmNzcxMGY3MmQ2MDhlMDFjNjMuLmM2YjU1MzQyYWI0MDM3YTZiYjdjMTBi
NTAzMjIwMjNkOGM3Mjc3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNTEsMTIgKzUxLDEx
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVk
KCkgT1ZFUlJJREU7Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9h
dFJlY3Qgd2luZG93UmVjdCgpIE9WRVJSSURFOwotICAgIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6
RmxvYXRSZWN0IHBhZ2VSZWN0KCkgT1ZFUlJJREU7Ci0gICAgCisKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0UGh5c2ljYWxXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHBoeXNpY2FsV2luZG93UmVjdCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHBoeXNpY2FsVmlld3BvcnRS
ZWN0KCkgT1ZFUlJJREU7CisKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpIE9WRVJSSURFOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172792</attachid>
            <date>2012-11-07 07:01:06 -0800</date>
            <delta_ts>2012-11-08 04:22:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101453-20121107155916.patch</filename>
            <type>text/plain</type>
            <size>45957</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjc0YzJiMDU4YzEwN2M2
ZTgyZWQ5ZjQ5NWM3NTUwYzEzNDI3ZWIzZC4uMDg5M2RhZjI0ODc4ZjI1NTdhNzIyOTBiMjI1YWRh
ZDEwN2Q0ZDFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTExLTA3ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5l
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUg
dGhlIG1ldGhvZHMgYW5kIHVzZSB0aGVyZSBvZi4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWw6Om1vdmVXaW5kb3dCeSk6CisgICAgICAgICogbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNldFBo
eXNpY2FsV2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
cGh5c2ljYWxXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50
OjpwaHlzaWNhbFZpZXdwb3J0UmVjdCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgICogcGFnZS9DaHJv
bWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRQaHlzaWNhbFdpbmRvd1JlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpwaHlzaWNhbFdpbmRvd1JlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lOjpwaHlzaWNhbFZpZXdwb3J0UmVjdCk6CisgICAgICAgICogcGFn
ZS9DaHJvbWUuaDoKKyAgICAgICAgKENocm9tZSk6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKENocm9tZUNsaWVudCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpvdXRlckhlaWdodCk6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6Om91dGVyV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjpzY3JlZW5YKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2NyZWVuWSk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVCeSk6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlc2l6
ZUJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVzaXplVG8pOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL1BvcHVwQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwQ29udGFpbmVyOjpsYXlvdXRBbmRDYWxjdWxhdGVXaWRnZXRSZWN0KToKKwogMjAxMi0x
MS0wNyAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBbQ2FudmFzXSBTYXZlIENhbnZhc0dyYWRpZW50IG9iamVjdHMgc3RhdGUg
Zm9yIGEgcmVwbGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyNjhhMDZhOThh
Y2EwODU3NWI5YzAxOTFhMGQwZjY1YjViNTlkYTVlLi4yNDNiMDdiNmJhODFhZDY2ZDU0OWJmZTcz
MDY3MmFlYmY5Mjg5MzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxMi0xMS0wNyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRo
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBl
dGMgdG8gc29tZXRoaW5nIG1vcmUgc2FuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lIG1ldGhvZHMgYW5kIHJldHVybiBwaHlzaWNhbFdpbmRv
d1JlY3QgaW5zdGVhZCBvZiBhbgorICAgICAgICBlbXB0eSBGbG9hdFJlY3QgaW4gcGh5c2ljYWxW
aWV3cG9ydFJlY3QuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFj
a0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OnNl
dFBoeXNpY2FsV2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFj
a0JlcnJ5OjpwaHlzaWNhbFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50QmxhY2tCZXJyeTo6cGh5c2ljYWxWaWV3cG9ydFJlY3QpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEJs
YWNrQmVycnkpOgorCiAyMDEyLTExLTA3ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5k
dW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgQWRkIHJlcGxhY2VXaXRoTGl0ZXJhbCgpIG1ldGhv
ZCB0byBXVEY6OlN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwYWM3YTcwMDIx
Y2Q1OGQzNjVmNTYzZDFhNDlkMTJiZjhmNDAzYzE3Li4zMmQzNjc4OTQ2MmYwMDAwYzI2ZGU4Nzc5
ZDllYWFlNjU1MzVkZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIx
IEBACiAyMDEyLTExLTA3ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Vi
a2l0Lm9yZz4KIAorICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0
byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWUgdGhlIG1ldGhvZHMuCisKKyAgICAgICAgKiBzcmMvQ2hyb21l
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNldFBo
eXNpY2FsV2luZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnBo
eXNpY2FsV2luZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnBo
eXNpY2FsVmlld3BvcnRSZWN0KToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgor
ICAgICAgICAoQ2hyb21lQ2xpZW50SW1wbCk6CisKKzIwMTItMTEtMDcgIEtlbm5ldGggUm9oZGUg
Q2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFJlbW92ZSBzdXBw
b3J0IGZvciAiZGVza3RvcC13aWR0aCIgaW4gdGhlIHZpZXdwb3J0IG1ldGEgdGFnCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEyMTcKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCmluZGV4IGIyZThhOGZkNzFiNWE1ZDBhMTMyOGUxNDY4NDQyYWFiYmVlM2FmMTUuLmEx
NTExMjIxYWE3NTAyNjYyODkxYmIwNTk3Nzk4MmY4NTMwOTcyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNiBAQAorMjAxMi0xMS0wNyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4g
IDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBw
YWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUgc2FuZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIHRoZSBtZXRob2RzLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudEVmbDo6cGh5c2ljYWxXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudEVmbDo6c2V0UGh5c2ljYWxXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudEVmbDo6cGh5c2ljYWxWaWV3cG9ydFJlY3QpOgorCisgICAgICAgICAg
ICBXaGVuIG5vIHBhZ2UgaXMgYXZhaWxhYmxlLCByZXR1cm4gYSBiZXR0ZXIKKyAgICAgICAgICAg
IGFwcHJveGltYXRpb24gdGhhbiBhbiBlbXB0eSByZWN0IGFzIHRoaXMgaXMgY29tcGFyZWQKKyAg
ICAgICAgICAgIHRvIHRoZSBwaHlzaWNhbFdpbmRvd1JlY3QgYnkgRnJhbWVMb2FkZXIuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKyAgICAgICAgKENocm9t
ZUNsaWVudEVmbCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tf
dmlld192aWV3cG9ydF9hdHRyaWJ1dGVzX2NvbXB1dGUpOgorCiAyMDEyLTExLTAxICBTZW9uYWUg
S2ltICA8c3VuYWVsdXYua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW0RSVF0gU3Vw
cG9ydCBHZW9sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGVjMWQwZWZjMWFlZjczM2ZkN2Fh
MTUxMjZkNDk2N2E0NjcxYzA4OTYuLjI1ZTUyNzkwMTYwN2NjN2RmOTkyNTU3ZjE2ZTFjNzM4NDVh
NDBiNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0xMS0wNyAgS2Vu
bmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUgc2Fu
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1l
IHRoZSBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpwaHlzaWNhbFdpbmRvd1JlY3Qp
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNldFBoeXNpY2FsV2luZG93UmVjdCk6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cGh5c2ljYWxWaWV3cG9ydFJlY3QpOgor
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNjcm9sbCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorICAg
ICAgICAqIHdlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwOgorICAgICAgICAod2Vi
a2l0Vmlld3BvcnRBdHRyaWJ1dGVzUmVjb21wdXRlKToKKwogMjAxMi0xMS0wNSAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggbGF5ZXIgYm9yZGVy
cyB0byBjbGVhbmluZyBhcHBlYXIgYW5kIGRpc2FwcGVhciBvbiBzd2l0Y2hpbmcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwppbmRleCA2YmExYWM3MTU5Y2I5NmI4M2ZkMjVlMGVlYjYwN2EyNzdjMjEzMDU0Li4xNWI2
ZTQ5ZDlkNjQzMWRhY2MwMTQ0NzI4MWM1MGNmN2YyMDFjMjY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTItMTEtMDcgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8
a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSB0aGUgd2luZG93UmVjdCwgcGFn
ZVJlY3QgZXRjIHRvIHNvbWV0aGluZyBtb3JlIHNhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSB0aGUgbWV0aG9kcy4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFBoeXNpY2FsV2luZG93UmVjdCk6CisgICAgICAgIChX
ZWJDaHJvbWVDbGllbnQ6OnBoeXNpY2FsV2luZG93UmVjdCk6CisgICAgICAgIChXZWJDaHJvbWVD
bGllbnQ6OnBoeXNpY2FsVmlld3BvcnRSZWN0KToKKwogMjAxMi0xMS0wNiAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYXR0ZW1wdCB0byBmaXgg
dGhlIGNocm9taXVtLW1hYyBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNDNiOTliM2QzMmY2NjQw
YjNjMWY0YmM2ZDc2N2Y1MWQ5MDc5YmMzMS4uNTkxMDFkYTMwMWVlZTcyMGE4NDZjYTFiODBjMGEw
M2RhNDE5YTBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0xMS0wNyAg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUg
c2FuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAx
NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVu
YW1lIHRoZSBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OnNldFBoeXNpY2FsV2lu
ZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6cGh5c2ljYWxXaW5k
b3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpwaHlzaWNhbFZpZXdw
b3J0UmVjdCk6CisKKyAgICAgICAgICAgIFdoZW4gbm8gbV93ZWJQYWdlIGlzIGF2YWlsYWJsZSwg
cmV0dXJuIGEgYmV0dGVyCisgICAgICAgICAgICBhcHByb3hpbWF0aW9uIHRoYW4gYW4gZW1wdHkg
cmVjdCBhcyB0aGlzIGlzIGNvbXBhcmVkCisgICAgICAgICAgICB0byB0aGUgcGh5c2ljYWxXaW5k
b3dSZWN0IGJ5IEZyYW1lTG9hZGVyLgorCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50UXQp
OgorCiAyMDEyLTExLTAxICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzMxNDMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKaW5kZXggMjYzNTE3NDNiZDg2NTgyMGExODZmYzM5MGRmYjNjMmNkMDU0MjFmOC4uZTk3NjEx
NTNmYTdhMDI4MDg4ZjdiNTM4NjQ3MjUwMzIyNDM4NDMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDEyLTExLTA3ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtl
bm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VS
ZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgdGhlIG1ldGhvZHMuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpzZXRQaHlzaWNhbFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpw
aHlzaWNhbFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwaHlzaWNhbFZp
ZXdwb3J0UmVjdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQpOgorCiAyMDEyLTExLTA1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBsYXllciBib3JkZXJzIHRv
IGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZwppbmRleCAyZmEzZjEzMmRlMTQzMDQyNmJhMDIwYTBiM2MyZWZlMTQ3MzEzODI4Li5hNzk4
YWQyMWE0OWQzM2Q5Y2M5ZWViNjg1ZTM0ZTdlMDI4NDFiOWE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTA3ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNl
biAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3Qs
IHBhZ2VSZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgdGhlIG1ldGhvZHMuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudFdpbkNFOjpwaHlzaWNhbFdpbmRvd1JlY3QpOgorICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6c2V0UGh5c2ljYWxXaW5kb3dSZWN0KToKKyAgICAgICAg
KFdlYktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6OnBoeXNpY2FsVmlld3BvcnRSZWN0KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgorICAgICAgICAoQ2hyb21l
Q2xpZW50V2luQ0UpOgorCiAyMDEyLTEwLTI0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgYSBzdHJhdGVneSBmb3IgbG9hZGVyIGN1c3RvbWl6YXRpb24u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d3gvQ2hhbmdlTG9nCmluZGV4IGU5ZWFmMTMxOWUwMzI3ZWQ5Y2VjOWZiNDkyMDkzM2I3YTIyNTRj
YzcuLjUzZDY0NWFiMzcxNWI1ZWVjNzhiZjIwZDEyNmY2MmE3NjI0NjVhYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTEtMDcgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFu
c2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSB0aGUgd2luZG93UmVj
dCwgcGFnZVJlY3QgZXRjIHRvIHNvbWV0aGluZyBtb3JlIHNhbmUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSB0aGUgbWV0aG9kcy4KKworICAg
ICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lQ2xpZW50V3g6OnNldFBoeXNpY2FsV2luZG93UmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRXeDo6cGh5c2ljYWxXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudFd4OjpwaHlzaWNhbFZpZXdwb3J0UmVjdCk6CisgICAgICAgICogV2Vi
S2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50V3gpOgor
CiAyMDEyLTEwLTIyICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5j
b20+CiAKICAgICAgICAgW1F0XSBGaXggIkFTU0VSVElPTiBGQUlMRUQ6ICFkb2N1bWVudC0+aW5Q
YWdlQ2FjaGUoKSIgd2hlbiBsb2FkaW5nIGEgcGFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDMyYTc1N2IwMDYx
MWYwMjM3MDcyZWQ5YWFlYjg2MmI2OGUzMjdkOTQuLjU0NjI4MDlkZWNmZDhiYzI0YzMwMjVkZTI3
YzE0YjdkMDVlMzdmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMS0wNyAg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUg
c2FuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAx
NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVu
YW1lIHRoZSBtZXRob2RzIGFuZCBtYWtlIHBoeXNpY2FsVmlld3BvcnRSZWN0IHJldHVybiBhCisg
ICAgICAgIHByb3BlciB2YWx1ZSB3aGVuIHRoZSB0aWxlZCBiYWNraW5nIHN0b3JlIGlzIHVzZWQu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0UGh5c2ljYWxXaW5kb3dS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpwaHlzaWNhbFdpbmRvd1Jl
Y3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnBoeXNpY2FsVmlld3BvcnRS
ZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50KToKKwogMjAxMi0xMS0wNyAgTWlraGFpbCBQ
b3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBbRUZM
XVtXSzJdIE1ha2UgRVdLIGNsYXNzZXMgRXdrX09iamVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAppbmRl
eCBhYmM5MTY4Yzc1ZDMwZGMyMWQ1ODViMmI5ZDJiYTgxNTliNTE0M2Y3Li5iMWEyOTZjNDhlOTA4
MzJjOTY0MGE3NmNiZDhlZjY3YjVkMTkxNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCkBAIC0yMDQs
OSArMjA0LDkgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpvcGVuSW5OZXdU
YWIoY29uc3QgU3RyaW5nJiB1cmwpCiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6bW92ZVdpbmRvd0J5KGZsb2F0IHgsIGZsb2F0IHkpCiB7Ci0gICAgRmxvYXRSZWN0IGZyYW1l
UmVjdCA9IG1fZnJvbnRlbmRQYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOworICAgIEZsb2F0
UmVjdCBmcmFtZVJlY3QgPSBtX2Zyb250ZW5kUGFnZS0+Y2hyb21lKCktPnBoeXNpY2FsV2luZG93
UmVjdCgpOwogICAgIGZyYW1lUmVjdC5tb3ZlKHgsIHkpOwotICAgIG1fZnJvbnRlbmRQYWdlLT5j
aHJvbWUoKS0+c2V0V2luZG93UmVjdChmcmFtZVJlY3QpOworICAgIG1fZnJvbnRlbmRQYWdlLT5j
aHJvbWUoKS0+c2V0UGh5c2ljYWxXaW5kb3dSZWN0KGZyYW1lUmVjdCk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0QXR0YWNoZWRXaW5kb3coYm9vbCBhdHRhY2hl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA2N2U4N2E3OTI2NThiY2Fi
YWJkMzQ4M2QyZDU0MzM0MzMyMTc5MGU0Li4wNDAwNTU5NGY3ZDY3M2FmMGYzOWI2YjVmNDY3MDVj
NGRiZjZlYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC03MSwxMCAr
NzEsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKSB7IH0KLSAgICB2aXJ0
dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgeyByZXR1cm4gRmxvYXRSZWN0KCk7IH0KIAotICAg
IHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgeyByZXR1cm4gRmxvYXRSZWN0KCk7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0UGh5c2ljYWxXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIHsg
fQorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBoeXNpY2FsV2luZG93UmVjdCgpIHsgcmV0dXJuIEZs
b2F0UmVjdCgpOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcGh5c2ljYWxWaWV3cG9ydFJlY3Qo
KSB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCmluZGV4IGMxZGE0NDU0N2I4ZWYxYjJhYTFmMjY0MzBhM2MwODE5MzYyMDliZjIu
LjNmZmYyNTg0ZTllNDY3OGM1Y2IzYzYyZWMwZWNhNGFlMjljZDMxOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzMyMiw4ICszMzIyLDggQEAgRnJhbWUqIGNyZWF0
ZVdpbmRvdyhGcmFtZSogb3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJh
bWVMb2FkUmVxdWUKICAgICAvLyBzcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBwYWdlLiBXZSBjYW4g
b25seSByZXNpemUgdGhlIHdpbmRvdywgc28KICAgICAvLyBhZGp1c3QgZm9yIHRoZSBkaWZmZXJl
bmNlIGJldHdlZW4gdGhlIHdpbmRvdyBzaXplIGFuZCB0aGUgcGFnZSBzaXplLgogCi0gICAgRmxv
YXRSZWN0IHdpbmRvd1JlY3QgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOwotICAgIEZs
b2F0U2l6ZSBwYWdlU2l6ZSA9IHBhZ2UtPmNocm9tZSgpLT5wYWdlUmVjdCgpLnNpemUoKTsKKyAg
ICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IHBhZ2UtPmNocm9tZSgpLT5waHlzaWNhbFdpbmRvd1Jl
Y3QoKTsKKyAgICBGbG9hdFNpemUgcGFnZVNpemUgPSBwYWdlLT5jaHJvbWUoKS0+cGh5c2ljYWxW
aWV3cG9ydFJlY3QoKS5zaXplKCk7CiAgICAgaWYgKGZlYXR1cmVzLnhTZXQpCiAgICAgICAgIHdp
bmRvd1JlY3Quc2V0WChmZWF0dXJlcy54KTsKICAgICBpZiAoZmVhdHVyZXMueVNldCkKQEAgLTMz
MzIsNyArMzMzMiw3IEBAIEZyYW1lKiBjcmVhdGVXaW5kb3coRnJhbWUqIG9wZW5lckZyYW1lLCBG
cmFtZSogbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlCiAgICAgICAgIHdpbmRvd1Jl
Y3Quc2V0V2lkdGgoZmVhdHVyZXMud2lkdGggKyAod2luZG93UmVjdC53aWR0aCgpIC0gcGFnZVNp
emUud2lkdGgoKSkpOwogICAgIGlmIChmZWF0dXJlcy5oZWlnaHRTZXQpCiAgICAgICAgIHdpbmRv
d1JlY3Quc2V0SGVpZ2h0KGZlYXR1cmVzLmhlaWdodCArICh3aW5kb3dSZWN0LmhlaWdodCgpIC0g
cGFnZVNpemUuaGVpZ2h0KCkpKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdCh3
aW5kb3dSZWN0KTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0UGh5c2ljYWxXaW5kb3dSZWN0KHdp
bmRvd1JlY3QpOwogCiAgICAgcGFnZS0+Y2hyb21lKCktPnNob3coKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuY3BwCmluZGV4IGZjZTBjMTE2NjhlYmIzZWMzNWU3YjlmNWYxOGUzODUyOTA5MWMxZTcuLjI2
OTUxOGFmMjlhM2QwODY0Yjg1ODlhM2FmZWE3ZDcyNDhkODVjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5jcHAKQEAgLTE0MCwxOSArMTQwLDE5IEBAIHZvaWQgQ2hyb21lOjpzY3JvbGxiYXJzTW9kZURp
ZENoYW5nZSgpIGNvbnN0CiAgICAgbV9jbGllbnQtPnNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCk7
CiB9CiAKLXZvaWQgQ2hyb21lOjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkg
Y29uc3QKK3ZvaWQgQ2hyb21lOjpzZXRQaHlzaWNhbFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0KSBjb25zdAogewotICAgIG1fY2xpZW50LT5zZXRXaW5kb3dSZWN0KHJlY3QpOworICAg
IG1fY2xpZW50LT5zZXRQaHlzaWNhbFdpbmRvd1JlY3QocmVjdCk7CiB9CiAKLUZsb2F0UmVjdCBD
aHJvbWU6OndpbmRvd1JlY3QoKSBjb25zdAorRmxvYXRSZWN0IENocm9tZTo6cGh5c2ljYWxXaW5k
b3dSZWN0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jbGllbnQtPndpbmRvd1JlY3QoKTsKKyAg
ICByZXR1cm4gbV9jbGllbnQtPnBoeXNpY2FsV2luZG93UmVjdCgpOwogfQogCi1GbG9hdFJlY3Qg
Q2hyb21lOjpwYWdlUmVjdCgpIGNvbnN0CitGbG9hdFJlY3QgQ2hyb21lOjpwaHlzaWNhbFZpZXdw
b3J0UmVjdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fY2xpZW50LT5wYWdlUmVjdCgpOworICAg
IHJldHVybiBtX2NsaWVudC0+cGh5c2ljYWxWaWV3cG9ydFJlY3QoKTsKIH0KIAogdm9pZCBDaHJv
bWU6OmZvY3VzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDU2MzhmM2E0OGFkZDg5NTll
MzBhZWIwZDIwNWFkM2U3MGI4Y2FjMTkuLmM4MTRkNTFjZDJiNDY3MGJhNjllMWIzZTQ5ZDQ2NzY1
YmY0MjlmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtOTIsMTEgKzkyLDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29u
c3QgSW50U2l6ZSYpIGNvbnN0OwogICAgICAgICB2b2lkIGxheW91dFVwZGF0ZWQoRnJhbWUqKSBj
b25zdDsKIAotICAgICAgICB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikgY29u
c3Q7Ci0gICAgICAgIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgY29uc3Q7CisgICAgICAgIHZvaWQg
c2V0UGh5c2ljYWxXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OworICAgICAgICBG
bG9hdFJlY3QgcGh5c2ljYWxXaW5kb3dSZWN0KCkgY29uc3Q7CisgICAgICAgIEZsb2F0UmVjdCBw
aHlzaWNhbFZpZXdwb3J0UmVjdCgpIGNvbnN0OwogCi0gICAgICAgIEZsb2F0UmVjdCBwYWdlUmVj
dCgpIGNvbnN0OwotICAgICAgICAKICAgICAgICAgdm9pZCBmb2N1cygpIGNvbnN0OwogICAgICAg
ICB2b2lkIHVuZm9jdXMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5k
ZXggMzVjMzIzMjhjMzQzYTBmNTY5MzI5NmQ3MDU3MTE3NzMwOGJhYWIyOS4uMDI1YmY4NDU4M2U2
NWMxNmMwNjZhYzIyZDExZDBmZThjNDAxYzEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCkBAIC05MywxMiArOTMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIENo
cm9tZUNsaWVudCB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVz
dHJveWVkKCkgPSAwOwotICAgICAgICAKLSAgICAgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1Jl
Y3QoY29uc3QgRmxvYXRSZWN0JikgPSAwOwotICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5k
b3dSZWN0KCkgPSAwOwotICAgICAgICAKLSAgICAgICAgdmlydHVhbCBGbG9hdFJlY3QgcGFnZVJl
Y3QoKSA9IDA7Ci0gICAgICAgIAorCisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRQaHlzaWNhbFdp
bmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikgPSAwOworICAgICAgICB2aXJ0dWFsIEZsb2F0UmVj
dCBwaHlzaWNhbFdpbmRvd1JlY3QoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBo
eXNpY2FsVmlld3BvcnRSZWN0KCkgPSAwOworCiAgICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1cygp
ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKSA9IDA7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAppbmRleCBhODRmZWM1OWM5NWViODUxYzRiYTM3OWRmYzE4YTI3NWUzZjJm
ZGIwLi5jMWI3NTA1NTVmNTU5MzM4MDU5MGM2YmY2OTVkYWFjYTFlM2ZkZTdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xMTE3LDcgKzExMTcsNyBAQCBpbnQgRE9NV2luZG93Ojpv
dXRlckhlaWdodCgpIGNvbnN0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gMDsKIAot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCku
aGVpZ2h0KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHBhZ2UtPmNocm9tZSgpLT5w
aHlzaWNhbFdpbmRvd1JlY3QoKS5oZWlnaHQoKSk7CiB9CiAKIGludCBET01XaW5kb3c6Om91dGVy
V2lkdGgoKSBjb25zdApAQCAtMTEyOSw3ICsxMTI5LDcgQEAgaW50IERPTVdpbmRvdzo6b3V0ZXJX
aWR0aCgpIGNvbnN0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxpbnQ+KHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCkud2lkdGgo
KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4ocGFnZS0+Y2hyb21lKCktPnBoeXNpY2Fs
V2luZG93UmVjdCgpLndpZHRoKCkpOwogfQogCiBpbnQgRE9NV2luZG93Ojppbm5lckhlaWdodCgp
IGNvbnN0CkBAIC0xMTY5LDcgKzExNjksNyBAQCBpbnQgRE9NV2luZG93OjpzY3JlZW5YKCkgY29u
c3QKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGludD4ocGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKS54KCkpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxpbnQ+KHBhZ2UtPmNocm9tZSgpLT5waHlzaWNhbFdpbmRvd1JlY3QoKS54
KCkpOwogfQogCiBpbnQgRE9NV2luZG93OjpzY3JlZW5ZKCkgY29uc3QKQEAgLTExODEsNyArMTE4
MSw3IEBAIGludCBET01XaW5kb3c6OnNjcmVlblkoKSBjb25zdAogICAgIGlmICghcGFnZSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihwYWdlLT5jaHJv
bWUoKS0+d2luZG93UmVjdCgpLnkoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4ocGFn
ZS0+Y2hyb21lKCktPnBoeXNpY2FsV2luZG93UmVjdCgpLnkoKSk7CiB9CiAKIGludCBET01XaW5k
b3c6OnNjcm9sbFgoKSBjb25zdApAQCAtMTQ0NiwxMiArMTQ0NiwxMiBAQCB2b2lkIERPTVdpbmRv
dzo6bW92ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFn
ZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBh
Z2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7CisgICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hy
b21lKCktPnBoeXNpY2FsV2luZG93UmVjdCgpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUgPSBmcjsK
ICAgICB1cGRhdGUubW92ZSh4LCB5KTsKICAgICAvLyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMg
dGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjay4u
LikKICAgICBhZGp1c3RXaW5kb3dSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZy
YW1lKCktPnZpZXcoKSksIGZyLCB1cGRhdGUpOwotICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5k
b3dSZWN0KGZyKTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0UGh5c2ljYWxXaW5kb3dSZWN0KGZy
KTsKIH0KIAogdm9pZCBET01XaW5kb3c6Om1vdmVUbyhmbG9hdCB4LCBmbG9hdCB5KSBjb25zdApA
QCAtMTQ2NiwxNCArMTQ2NiwxNCBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0IHgsIGZs
b2F0IHkpIGNvbnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dS
ZWN0KCk7CisgICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCktPnBoeXNpY2FsV2luZG93
UmVjdCgpOwogICAgIEZsb2F0UmVjdCBzciA9IHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFp
bkZyYW1lKCktPnZpZXcoKSk7CiAgICAgZnIuc2V0TG9jYXRpb24oc3IubG9jYXRpb24oKSk7CiAg
ICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwogICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOyAgICAgCiAg
ICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZlcnNhbEJyb3dz
ZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4pCiAgICAgYWRqdXN0V2luZG93UmVjdChz
ciwgZnIsIHVwZGF0ZSk7Ci0gICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoZnIpOwor
ICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRQaHlzaWNhbFdpbmRvd1JlY3QoZnIpOwogfQogCiB2b2lk
IERPTVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKQEAgLTE0ODgsMTEg
KzE0ODgsMTEgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNv
bnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7Cisg
ICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCktPnBoeXNpY2FsV2luZG93UmVjdCgpOwog
ICAgIEZsb2F0U2l6ZSBkZXN0ID0gZnIuc2l6ZSgpICsgRmxvYXRTaXplKHgsIHkpOwogICAgIEZs
b2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7CiAgICAgYWRqdXN0V2luZG93UmVj
dChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpLCBmciwgdXBk
YXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChmcik7CisgICAgcGFnZS0+
Y2hyb21lKCktPnNldFBoeXNpY2FsV2luZG93UmVjdChmcik7CiB9CiAKIHZvaWQgRE9NV2luZG93
OjpyZXNpemVUbyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBjb25zdApAQCAtMTUwNywxMSAr
MTUwNywxMSBAQCB2b2lkIERPTVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhl
aWdodCkgY29uc3QKICAgICBpZiAobV9mcmFtZSAhPSBwYWdlLT5tYWluRnJhbWUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCktPndpbmRvd1Jl
Y3QoKTsKKyAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUoKS0+cGh5c2ljYWxXaW5kb3dS
ZWN0KCk7CiAgICAgRmxvYXRTaXplIGRlc3QgPSBGbG9hdFNpemUod2lkdGgsIGhlaWdodCk7CiAg
ICAgRmxvYXRSZWN0IHVwZGF0ZShmci5sb2NhdGlvbigpLCBkZXN0KTsKICAgICBhZGp1c3RXaW5k
b3dSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSksIGZy
LCB1cGRhdGUpOwotICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGZyKTsKKyAgICBw
YWdlLT5jaHJvbWUoKS0+c2V0UGh5c2ljYWxXaW5kb3dSZWN0KGZyKTsKIH0KIAogaW50IERPTVdp
bmRvdzo6c2V0VGltZW91dChQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQg
dGltZW91dCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9Qb3B1cENvbnRhaW5lci5jcHAKaW5kZXggM2RlYjk1YTkyOGJlYzkxYzhh
YjY4MjZhZGZmNTMzZDhiN2FkZDllOS4uOTFkMTVjYzQ0NWMyMzUyODU4ZmNjNTZmMGI5YzM2ZDAz
NjZjYTcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9w
dXBDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwQ29udGFpbmVyLmNwcApAQCAtMTk5LDcgKzE5OSw3IEBAIEludFJlY3QgUG9wdXBDb250YWlu
ZXI6OmxheW91dEFuZENhbGN1bGF0ZVdpZGdldFJlY3QoaW50IHRhcmdldENvbnRyb2xIZWlnaHQs
IGNvCiAgICAgICAgIC8vIElmIHdlIGhhdmUgbXVsdGlwbGUgc2NyZWVucyBhbmQgdGhlIGJyb3dz
ZXIgcmVjdCBpcyBpbiBvbmUgc2NyZWVuLCB3ZSBoYXZlCiAgICAgICAgIC8vIHRvIGNsaXAgdGhl
IHdpbmRvdyB3aWR0aCB0byB0aGUgc2NyZWVuIHdpZHRoLgogICAgICAgICAvLyBXaGVuIGNsaXBw
aW5nLCB3ZSBhbHNvIG5lZWQgdG8gc2V0IGEgbWF4aW11bSB3aWR0aCBmb3IgdGhlIGxpc3QgYm94
LgotICAgICAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IGNocm9tZUNsaWVudC0+d2luZG93UmVj
dCgpOworICAgICAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IGNocm9tZUNsaWVudC0+cGh5c2lj
YWxXaW5kb3dSZWN0KCk7CiAKICAgICAgICAgYm9vbCBuZWVkVG9SZXNpemVWaWV3ID0gZmFsc2U7
CiAgICAgICAgIHdpZGdldFJlY3RJblNjcmVlbiA9IGxheW91dEFuZENhbGN1bGF0ZVdpZGdldFJl
Y3RJbnRlcm5hbCh3aWRnZXRSZWN0SW5TY3JlZW4sIHRhcmdldENvbnRyb2xIZWlnaHQsIHdpbmRv
d1JlY3QsIHNjcmVlbiwgaXNSVEwsIHJ0bE9mZnNldCwgbV9saXN0Qm94LmdldCgpLCBuZWVkVG9S
ZXNpemVWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCA3OGMx
MmIyYzk2ZmI4NTZjZDljMWMxOWM5ZjM1NjBmMTcxNGY2OWI3Li43YWY1YTZlZThlYmZlMzA4ZjAx
Y2ZlNzAzZmUzYTZlNThhNmQ3MmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnku
Y3BwCkBAIC0xNTMsMTIgKzE1MywxMiBAQCB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmNo
cm9tZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeTo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKQordm9pZCBDaHJvbWVD
bGllbnRCbGFja0JlcnJ5OjpzZXRQaHlzaWNhbFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikK
IHsKICAgICAvLyBUaGUgd2luZG93IGRpbWVuc2lvbnMgYXJlIGZpeGVkIGluIHRoZSBSSU0gcG9y
dC4KIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OndpbmRvd1JlY3QoKQor
RmxvYXRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OnBoeXNpY2FsV2luZG93UmVjdCgpCiB7
CiAgICAgSW50U2l6ZSB3aW5kb3dTaXplOwogCkBAIC0xNjgsMTAgKzE2OCwxMSBAQCBGbG9hdFJl
Y3QgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6d2luZG93UmVjdCgpCiAgICAgcmV0dXJuIEZsb2F0
UmVjdCgwLCAwLCB3aW5kb3dTaXplLndpZHRoKCksIHdpbmRvd1NpemUuaGVpZ2h0KCkpOwogfQog
Ci1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cGFnZVJlY3QoKQorRmxvYXRSZWN0
IENocm9tZUNsaWVudEJsYWNrQmVycnk6OnBoeXNpY2FsVmlld3BvcnRSZWN0KCkKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBGbG9hdFJlY3QoKTsKKyAgICAvLyBUaGlzIG1l
YW5zIHRoYXQgdGhlIHdpbmRvdyByZWN0IGlzIHVzZWQgZm9yIHdpbmRvdyByZXNpemluZy4KKyAg
ICByZXR1cm4gcGh5c2ljYWxXaW5kb3dSZWN0KCk7CiB9CiAKIGZsb2F0IENocm9tZUNsaWVudEJs
YWNrQmVycnk6OnNjYWxlRmFjdG9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCmlu
ZGV4IGUxMjlmNDU4NDIxOTZiYTVlNjUxYzVlMGQ4NTZmOWUyYWJiYmU4NWEuLjQyZmE5NGE0YTJj
MTNmNmJkZTcxYmUwYzFkMGExMjY1MzBiM2FjYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNr
QmVycnkuaApAQCAtMzcsOSArMzcsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hy
b21lRGVzdHJveWVkKCk7CiAgICAgdmlydHVhbCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1
cm4gMDsgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3Qm
KTsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7Ci0gICAgdmlydHVhbCBGbG9h
dFJlY3QgcGFnZVJlY3QoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGh5c2ljYWxXaW5kb3dSZWN0
KGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBoeXNpY2FsV2luZG93
UmVjdCgpOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBoeXNpY2FsVmlld3BvcnRSZWN0KCk7CiAg
ICAgdmlydHVhbCBmbG9hdCBzY2FsZUZhY3RvcigpOwogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygp
OwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IDk0OTU5MzgwYTYwNmQ5ZDEyZTdiZjk3
NTUyYWZjNGJhNmNjZDliZTYuLjJmMmY3ZWZlNWJjOTliNGJlNWE5MjZiNzRhYzY5ODE4YzBhYTky
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwCkBAIC0xNTgsMTMgKzE1OCwxMyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmNocm9tZURl
c3Ryb3llZCgpCiAgICAgLy8gT3VyIGxpZmV0aW1lIGlzIGJvdW5kIHRvIHRoZSBXZWJWaWV3SW1w
bC4KIH0KIAotdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcikKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6c2V0UGh5c2ljYWxXaW5kb3dSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcikKIHsKICAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKICAgICAg
ICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+c2V0V2luZG93UmVjdChJbnRSZWN0KHIpKTsKIH0KIAot
RmxvYXRSZWN0IENocm9tZUNsaWVudEltcGw6OndpbmRvd1JlY3QoKQorRmxvYXRSZWN0IENocm9t
ZUNsaWVudEltcGw6OnBoeXNpY2FsV2luZG93UmVjdCgpCiB7CiAgICAgV2ViUmVjdCByZWN0Owog
ICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQpAQCAtMTc5LDEyICsxNzksMTIgQEAgRmxvYXRS
ZWN0IENocm9tZUNsaWVudEltcGw6OndpbmRvd1JlY3QoKQogICAgIHJldHVybiBGbG9hdFJlY3Qo
cmVjdCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRJbXBsOjpwYWdlUmVjdCgpCitGbG9h
dFJlY3QgQ2hyb21lQ2xpZW50SW1wbDo6cGh5c2ljYWxWaWV3cG9ydFJlY3QoKQogewogICAgIC8v
IFdlIGhpZGUgdGhlIGRldGFpbHMgb2YgdGhlIHdpbmRvdydzIGJvcmRlciB0aGlja25lc3MgZnJv
bSB0aGUgd2ViIHBhZ2UgYnkKICAgICAvLyBzaW1wbGUgcmUtdXNpbmcgdGhlIHdpbmRvdyBwb3Np
dGlvbiBoZXJlLiAgU28sIGZyb20gdGhlIHBvaW50LW9mLXZpZXcgb2YKICAgICAvLyB0aGUgd2Vi
IHBhZ2UsIHRoZSB3aW5kb3cgaGFzIG5vIGJvcmRlci4KLSAgICByZXR1cm4gd2luZG93UmVjdCgp
OworICAgIHJldHVybiBwaHlzaWNhbFdpbmRvd1JlY3QoKTsKIH0KIAogdm9pZCBDaHJvbWVDbGll
bnRJbXBsOjpmb2N1cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmgKaW5kZXggNzcwODRmODAxMDJmNjIzN2I2NzgyZGM4YjYwZmNjMmNlMjY2OTUyMC4u
MzFjMDQ3MWM5NThmOTMzNDQzN2IyZTg1NWI3OGM5MGViYmUxNWFjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtNzMsOSArNzMsOSBAQCBw
dWJsaWM6CiAKICAgICAvLyBDaHJvbWVDbGllbnQgbWV0aG9kczoKICAgICB2aXJ0dWFsIHZvaWQg
Y2hyb21lRGVzdHJveWVkKCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0Jik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2lu
ZG93UmVjdCgpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHBhZ2VSZWN0KCk7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFBoeXNpY2FsV2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwaHlzaWNhbFdpbmRvd1Jl
Y3QoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwaHlzaWNhbFZpZXdwb3J0UmVj
dCgpOwogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3Vz
KCk7CiAgICAgdmlydHVhbCBib29sIGNhblRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50RWZsLmNwcAppbmRleCA1Mzc0MjRhOTQzZDA3ZDMzNTUxOWExMTNjMTM5YzI4MDYxMDYwODE3
Li4xMWE5MjU5OTFhYjk3MDBmODkwN2JhOTk2MDkzMzQxZWZkMDRhZjE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAg
LTExNiw3ICsxMTYsNyBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6Zm9jdXNlZEZyYW1lQ2hhbmdl
ZChGcmFtZSopCiB7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRFZmw6OndpbmRvd1JlY3Qo
KQorRmxvYXRSZWN0IENocm9tZUNsaWVudEVmbDo6cGh5c2ljYWxXaW5kb3dSZWN0KCkKIHsKICAg
ICBpbnQgeCwgeSwgd2lkdGgsIGhlaWdodDsKIApAQCAtMTI2LDcgKzEyNiw3IEBAIEZsb2F0UmVj
dCBDaHJvbWVDbGllbnRFZmw6OndpbmRvd1JlY3QoKQogICAgIHJldHVybiBGbG9hdFJlY3QoeCwg
eSwgd2lkdGgsIGhlaWdodCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRXaW5kb3dS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRQaHlz
aWNhbFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmICghZXdrX3Zp
ZXdfc2V0dGluZ19lbmFibGVfYXV0b19yZXNpemVfd2luZG93X2dldChtX3ZpZXcpKQogICAgICAg
ICByZXR1cm47CkBAIC0xMzUsOSArMTM1LDEzIEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRX
aW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICBlY29yZV9ldmFzX21vdmVfcmVz
aXplKGVlLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7
CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRFZmw6OnBhZ2VSZWN0KCkKK0Zsb2F0UmVjdCBD
aHJvbWVDbGllbnRFZmw6OnBoeXNpY2FsVmlld3BvcnRSZWN0KCkKIHsKLSAgICByZXR1cm4gZXdr
X3ZpZXdfcGFnZV9yZWN0X2dldChtX3ZpZXcpOworICAgIC8vIFRoaXMgcmVxdWlyZXMgRnJhbWVW
aWV3IHRvIGJlIHRoZSBzYW1lIHNpemUgYXMgdGhlIHZpZXdwb3J0LgorICAgIEZsb2F0UmVjdCBy
ZWN0ID0gZXdrX3ZpZXdfcGFnZV9yZWN0X2dldChtX3ZpZXcpOworCisgICAgaWYgKHJlY3QuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gcGh5c2ljYWxXaW5kb3dSZWN0KCk7CiB9CiAKIHZvaWQg
Q2hyb21lQ2xpZW50RWZsOjpmb2N1cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCmluZGV4IDY4ZGE0NWE4YTgxNmYzMDhjNTdlYzE3
OTc4NzJmODQzYjUxNmY2NDcuLjViOTYzNjY1MmZkYTE1ZTY3Y2U4MGM4YmUxMWZiYmRjODM5Nzdl
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEVmbC5oCkBAIC00OCwxMCArNDgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBj
aHJvbWVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJl
Y3QmKTsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7CiAKLSAgICB2aXJ0dWFs
IEZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRQaHlzaWNhbFdpbmRv
d1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcGh5c2ljYWxX
aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcGh5c2ljYWxWaWV3cG9ydFJlY3Qo
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3Vz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBmYWE1NWMyMDJkYzkyY2M0Nzcw
NzM0ZjIwMzFmYmVkMjEzNGNiNWQzLi5hM2QxYTI5NDMzM2Q0NzM4NDRhYmI5ZWZiNDViOWI2Yjk4
Zjg0Mjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTEzMDUsOCArMTMwNSw5
IEBAIHN0YXRpYyBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgX2V3a192aWV3X3ZpZXdwb3J0
X2F0dHJpYnV0ZXNfY29tcHV0ZShFd2tfVmllCiAgICAgaW50IGRldmljZURQSSA9IFdlYkNvcmU6
OmdldERQSSgpOwogICAgIHByaXYtPnNldHRpbmdzLmRldmljZVBpeGVsUmF0aW8gPSBkZXZpY2VE
UEkgLyBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdldERQSTsKIAot
ICAgIFdlYkNvcmU6OkludFJlY3QgYXZhaWxhYmxlUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QocHJp
di0+cGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5wYWdlUmVjdCgpKTsKLSAgICBXZWJDb3JlOjpJ
bnRSZWN0IGRldmljZVJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYtPnBhZ2UtPmNocm9tZSgp
LT5jbGllbnQoKS0+d2luZG93UmVjdCgpKTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGF2YWlsYWJs
ZVJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYtPnBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+
cGh5c2ljYWxWaWV3cG9ydFJlY3QoKSk7CisgICAgLy8gRklYTUU6IFRoaXMgaXMgd3JvbmchIFlv
dSB3YW50IHRoZSBzY3JlZW5SZWN0KCkuCisgICAgV2ViQ29yZTo6SW50UmVjdCBkZXZpY2VSZWN0
ID0gZW5jbG9zaW5nSW50UmVjdChwcml2LT5wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnBoeXNp
Y2FsV2luZG93UmVjdCgpKTsKIAogICAgIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyBhdHRy
aWJ1dGVzID0gV2ViQ29yZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhwcml2LT52aWV3cG9y
dEFyZ3VtZW50cywgZGVza3RvcFdpZHRoLCBkZXZpY2VSZWN0LndpZHRoKCksIGRldmljZVJlY3Qu
aGVpZ2h0KCksIHByaXYtPnNldHRpbmdzLmRldmljZVBpeGVsUmF0aW8sIGF2YWlsYWJsZVJlY3Qu
c2l6ZSgpKTsKICAgICBXZWJDb3JlOjpyZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3Bv
cnRTaXplKGF0dHJpYnV0ZXMsIGF2YWlsYWJsZVJlY3Quc2l6ZSgpLCBwcml2LT5zZXR0aW5ncy5k
ZXZpY2VQaXhlbFJhdGlvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4IDYxNTJmNTA4MGJmYmRlYzljZTQ0MWM5YzM5
MTUwMmIyMDAxOTk5ODUuLjMzNTgxOTYzZDAxNGU3ODZlMDJhMWVjZjczNWYyNjlhN2RlNDJjYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpjaHJvbWVE
ZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50
Ojp3aW5kb3dSZWN0KCkKK0Zsb2F0UmVjdCBDaHJvbWVDbGllbnQ6OnBoeXNpY2FsV2luZG93UmVj
dCgpCiB7CiAgICAgR3RrV2lkZ2V0KiB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChH
VEtfV0lER0VUKG1fd2ViVmlldykpOwogICAgIGlmICh3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxX
aW5kb3cod2luZG93KSkgewpAQCAtMTE2LDcgKzExNiw3IEBAIEZsb2F0UmVjdCBDaHJvbWVDbGll
bnQ6OndpbmRvd1JlY3QoKQogICAgIHJldHVybiBGbG9hdFJlY3QoKTsKIH0KIAotdm9pZCBDaHJv
bWVDbGllbnQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQordm9pZCBDaHJv
bWVDbGllbnQ6OnNldFBoeXNpY2FsV2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7
CiAgICAgSW50UmVjdCBpbnRyZWN0ID0gSW50UmVjdChyZWN0KTsKICAgICBXZWJLaXRXZWJXaW5k
b3dGZWF0dXJlcyogd2ViV2luZG93RmVhdHVyZXMgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dpbmRv
d19mZWF0dXJlcyhtX3dlYlZpZXcpOwpAQCAtMTQ5LDcgKzE0OSw3IEBAIHN0YXRpYyBJbnRSZWN0
IGdldFdlYlZpZXdSZWN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgcmV0dXJuIEludFJl
Y3QoYWxsb2NhdGlvbi54LCBhbGxvY2F0aW9uLnksIGFsbG9jYXRpb24ud2lkdGgsIGFsbG9jYXRp
b24uaGVpZ2h0KTsKIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudDo6cGFnZVJlY3QoKQorRmxv
YXRSZWN0IENocm9tZUNsaWVudDo6cGh5c2ljYWxWaWV3cG9ydFJlY3QoKQogewogICAgIHJldHVy
biBnZXRXZWJWaWV3UmVjdChtX3dlYlZpZXcpOwogfQpAQCAtNjc5LDcgKzY3OSw3IEBAIHZvaWQg
Q2hyb21lQ2xpZW50OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEsIGNvbnN0IEludFJlY3Qm
IHJlY3RUb1Njcm9sbCwgY29uCiAgICAgLy8gQ29tcHV0ZSB0aGUgc2Nyb2xsIHJlcGFpbnQgcmVn
aW9uLiBXZSBlbnN1cmUgdGhhdCB3ZSBhcmUgbm90IHN1YnRyYWN0aW5nIGFyZWFzCiAgICAgLy8g
dGhhdCB3ZSd2ZSBzY3JvbGxlZCBmcm9tIG91dHNpZGUgdGhlIHZpZXdwb3J0IGZyb20gdGhlIHJl
cGFpbnQgcmVnaW9uLgogICAgIEludFJlY3Qgb25TY3JlZW5TY3JvbGxSZWN0ID0gcmVjdFRvU2Ny
b2xsOwotICAgIG9uU2NyZWVuU2Nyb2xsUmVjdC5pbnRlcnNlY3QoSW50UmVjdChJbnRQb2ludCgp
LCBlbmNsb3NpbmdJbnRSZWN0KHBhZ2VSZWN0KCkpLnNpemUoKSkpOworICAgIG9uU2NyZWVuU2Ny
b2xsUmVjdC5pbnRlcnNlY3QoSW50UmVjdChJbnRQb2ludCgpLCBlbmNsb3NpbmdJbnRSZWN0KHBo
eXNpY2FsVmlld3BvcnRSZWN0KCkpLnNpemUoKSkpOwogICAgIFJlZ2lvbiBzY3JvbGxSZXBhaW50
UmVnaW9uID0gc3VidHJhY3QocmVjdFRvU2Nyb2xsLCB0cmFuc2xhdGUob25TY3JlZW5TY3JvbGxS
ZWN0LCBkZWx0YSkpOwogCiAgICAgbV9kaXJ0eVJlZ2lvbi51bml0ZShzY3JvbGxSZXBhaW50UmVn
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmgKaW5kZXggNDRjMjExYWQ0NjI4N2VmZmQ3NDMwNGMwMmRjYzZkYjMwZmFmNjAzYy4u
NTFjMTJjMTNmZDY2YjAzZjZkN2EzMDFiMjRjOWIwZDE5NWIzMDA4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKQEAgLTQ4LDEw
ICs0OCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBjaHJv
bWVEZXN0cm95ZWQoKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25z
dCBGbG9hdFJlY3QmKTsKLSAgICAgICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgpOwot
Ci0gICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBzZXRQaHlzaWNhbFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAgICAgIHZp
cnR1YWwgRmxvYXRSZWN0IHBoeXNpY2FsV2luZG93UmVjdCgpOworICAgICAgICB2aXJ0dWFsIEZs
b2F0UmVjdCBwaHlzaWNhbFZpZXdwb3J0UmVjdCgpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBm
b2N1cygpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcAppbmRleCBk
MWE4Mzc4Njk1NmE3NzViN2U0ZTM5Mjk5Y2Y4ZTg3NWRjNWJjNDQ4Li4wOGRmNTE1MGJkYzYzODgx
NGUxZjBhYmU5ODA2MDRmYmI4YTAxYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcApAQCAtNTIxLDExICs1MjEsMTEg
QEAgdm9pZCB3ZWJraXRWaWV3cG9ydEF0dHJpYnV0ZXNSZWNvbXB1dGUoV2ViS2l0Vmlld3BvcnRB
dHRyaWJ1dGVzKiB2aWV3cG9ydEF0dHJpYnUKICAgICBXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXNQ
cml2YXRlKiBwcml2ID0gdmlld3BvcnRBdHRyaWJ1dGVzLT5wcml2OwogICAgIFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcgPSBwcml2LT53ZWJWaWV3OwogCi0gICAgSW50UmVjdCB3aW5kb3dSZWN0KHdl
YlZpZXctPnByaXYtPmNvcmVQYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpKTsKKyAgICBJbnRS
ZWN0IHdpbmRvd1JlY3Qod2ViVmlldy0+cHJpdi0+Y29yZVBhZ2UtPmNocm9tZSgpLT5waHlzaWNh
bFdpbmRvd1JlY3QoKSk7CiAgICAgcHJpdi0+ZGV2aWNlV2lkdGggPSB3aW5kb3dSZWN0LndpZHRo
KCk7CiAgICAgcHJpdi0+ZGV2aWNlSGVpZ2h0ID0gd2luZG93UmVjdC5oZWlnaHQoKTsKIAotICAg
IEludFJlY3QgcmVjdCh3ZWJWaWV3LT5wcml2LT5jb3JlUGFnZS0+Y2hyb21lKCktPnBhZ2VSZWN0
KCkpOworICAgIEludFJlY3QgcmVjdCh3ZWJWaWV3LT5wcml2LT5jb3JlUGFnZS0+Y2hyb21lKCkt
PnBoeXNpY2FsVmlld3BvcnRSZWN0KCkpOwogICAgIHByaXYtPmF2YWlsYWJsZVdpZHRoID0gcmVj
dC53aWR0aCgpOwogICAgIHByaXYtPmF2YWlsYWJsZUhlaWdodCA9IHJlY3QuaGVpZ2h0KCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKaW5kZXggNzA3MzQ5YzViZDY1MjVhMzU4NzdhZTJhYmYyZTMwZWY4ZDdjZjViMS4uZDE2ZDgx
YTBmNGQ3MjM3NzQwYjlhNDNmMGNjYTBmM2NkMDRmNWVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQwLDEwICs0MCw5
IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgT1ZF
UlJJREU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qg
d2luZG93UmVjdCgpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qg
cGFnZVJlY3QoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGh5c2ljYWxXaW5kb3dS
ZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6RmxvYXRSZWN0IHBoeXNpY2FsV2luZG93UmVjdCgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHBoeXNpY2FsVmlld3BvcnRSZWN0KCkgT1ZFUlJJREU7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgdW5m
b2N1cygpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGYwYmNkYTUyOTliYjQzMjgyYWNiNTEwOGVkMzc2
NjdkZTU4ZTMzNWQuLjE1NzhlZjQ5NjgwMzBkOGRlZTc0OGE5MGM2ZDYzODczYzA1OGMxZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KQEAgLTE0NiwyMCArMTQ2LDIwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjaHJvbWVE
ZXN0cm95ZWQoKQogLy8gVGhlc2UgZnVuY3Rpb25zIHNjYWxlIGJldHdlZW4gd2luZG93IGFuZCBX
ZWJWaWV3IGNvb3JkaW5hdGVzIGJlY2F1c2UgSmF2YVNjcmlwdC9ET00gb3BlcmF0aW9ucyAKIC8v
IGFzc3VtZSB0aGF0IHRoZSBXZWJWaWV3IGFuZCB0aGUgd2luZG93IHNoYXJlIHRoZSBzYW1lIGNv
b3JkaW5hdGUgc3lzdGVtLgogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0V2luZG93UmVjdChj
b25zdCBGbG9hdFJlY3QmIHJlY3QpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0UGh5c2ljYWxX
aW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBOU1JlY3Qgd2luZG93UmVj
dCA9IHRvRGV2aWNlU3BhY2UocmVjdCwgW21fd2ViVmlldyB3aW5kb3ddKTsKICAgICBbW21fd2Vi
VmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzptX3dlYlZpZXcgc2V0RnJhbWU6d2lu
ZG93UmVjdF07CiB9CiAKLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQor
RmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6cGh5c2ljYWxXaW5kb3dSZWN0KCkKIHsKICAgICBO
U1JlY3Qgd2luZG93UmVjdCA9IFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJW
aWV3RnJhbWU6bV93ZWJWaWV3XTsKICAgICByZXR1cm4gdG9Vc2VyU3BhY2Uod2luZG93UmVjdCwg
W21fd2ViVmlldyB3aW5kb3ddKTsKIH0KIAogLy8gRklYTUU6IFdlIG5lZWQgdG8gYWRkIEFQSSBm
b3Igc2V0dGluZyBhbmQgZ2V0dGluZyB0aGlzLgotRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6
cGFnZVJlY3QoKQorRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6cGh5c2ljYWxWaWV3cG9ydFJl
Y3QoKQogewogICAgIHJldHVybiBbbV93ZWJWaWV3IGZyYW1lXTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggZWFhZWIw
MTJmODZkMGE1MzExMGI1Nzk3NzNmNmQ1YjhjMDVkOTM0Mi4uZDE1MTkxY2Q0NDAwZjgxZDE4NjQ3
N2FkN2U2ZGZhOWYzYThhZDVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTE0NCw3ICsxNDQsNyBAQCBDaHJvbWVDbGll
bnRRdDo6fkNocm9tZUNsaWVudFF0KCkKICNlbmRpZgogfQogCi12b2lkIENocm9tZUNsaWVudFF0
OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgQ2hyb21lQ2xpZW50
UXQ6OnNldFBoeXNpY2FsV2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAg
aWYgKCFtX3dlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKQEAgLTE1NywxMyArMTU3LDIwIEBAIHZv
aWQgQ2hyb21lQ2xpZW50UXQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQog
ICAgIGxpa2UgdG9vbGJhcnMvc2Nyb2xsYmFycyBldGMuIEl0IGlzIHVzZWQgYnkgdGhlIHZpZXdw
b3J0IG1ldGEgdGFnIGFzIHdlbGwgYXMKICAgICBieSB0aGUgRE9NIFdpbmRvdyBvYmplY3Q6IG91
dGVySGVpZ2h0KCksIG91dGVyV2lkdGgoKSwgc2NyZWVuWCgpLCBzY3JlZW5ZKCkuCiAqLwotRmxv
YXRSZWN0IENocm9tZUNsaWVudFF0Ojp3aW5kb3dSZWN0KCkKK0Zsb2F0UmVjdCBDaHJvbWVDbGll
bnRRdDo6cGh5c2ljYWxXaW5kb3dSZWN0KCkKIHsKICAgICBpZiAoIXBsYXRmb3JtUGFnZUNsaWVu
dCgpKQogICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiAgICAgcmV0dXJuIHBsYXRmb3JtUGFn
ZUNsaWVudCgpLT53aW5kb3dSZWN0KCk7CiB9CiAKK0Zsb2F0UmVjdCBDaHJvbWVDbGllbnRRdDo6
cGh5c2ljYWxWaWV3cG9ydFJlY3QoKQoreworICAgIGlmICghbV93ZWJQYWdlKQorICAgICAgICBy
ZXR1cm4gcGh5c2ljYWxXaW5kb3dSZWN0KCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdChRUmVjdEYo
UVBvaW50RigwLCAwKSwgbV93ZWJQYWdlLT52aWV3cG9ydFNpemUoKSkpOworfQorCiBib29sIENo
cm9tZUNsaWVudFF0OjphbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QKIHsKICAg
ICBpZiAoIXBsYXRmb3JtUGFnZUNsaWVudCgpKQpAQCAtMTcxLDEzICsxNzgsNiBAQCBib29sIENo
cm9tZUNsaWVudFF0OjphbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QKICAgICBy
ZXR1cm4gcGxhdGZvcm1QYWdlQ2xpZW50KCktPmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmco
KTsKIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudFF0OjpwYWdlUmVjdCgpCi17Ci0gICAgaWYg
KCFtX3dlYlBhZ2UpCi0gICAgICAgIHJldHVybiBGbG9hdFJlY3QoKTsKLSAgICByZXR1cm4gRmxv
YXRSZWN0KFFSZWN0RihRUG9pbnRGKDAsIDApLCBtX3dlYlBhZ2UtPnZpZXdwb3J0U2l6ZSgpKSk7
Ci19Ci0KIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmZvY3VzKCkKIHsKICAgICBpZiAoIW1fd2ViUGFn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aAppbmRleCBmNzM1OWQyZTI4NzRhNzU1MTljMmY1Mzg3NjgxMzI5ODBhZTRiOWNkLi40NGFiZTQw
ZWI2YjgxOTRkZjA0Nzk3M2RhNWY5MWE5Y2U1NzM3MDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC02NCwxMCArNjQsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1
YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3
aW5kb3dSZWN0KCk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIHZp
cnR1YWwgdm9pZCBzZXRQaHlzaWNhbFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAg
dmlydHVhbCBGbG9hdFJlY3QgcGh5c2ljYWxXaW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBGbG9h
dFJlY3QgcGh5c2ljYWxWaWV3cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygp
OwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA2OGJkZGVmMDM0MTg0
YjVkNDAxZDVjZDBmNzRhNTYyMWY2NGI2OWUyLi4yYjkxNTM5Mzk5YThhNDI4OTFiNzMyMDFmOGI0
YmY5NmRhYjY0ZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmNocm9tZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzZXRQaHlzaWNhbFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByKQog
ewogICAgIElXZWJVSURlbGVnYXRlKiB1aURlbGVnYXRlID0gMDsKICAgICBpZiAoU1VDQ0VFREVE
KG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CkBAIC05NSw3ICs5NSw3IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikK
ICAgICB9CiB9CiAKLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQorRmxv
YXRSZWN0IFdlYkNocm9tZUNsaWVudDo6cGh5c2ljYWxXaW5kb3dSZWN0KCkKIHsKICAgICBJV2Vi
VUlEZWxlZ2F0ZSogdWlEZWxlZ2F0ZSA9IDA7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXct
PnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSkgewpAQCAtMTExLDcgKzExMSw3IEBAIEZsb2F0UmVj
dCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQogICAgIHJldHVybiBGbG9hdFJlY3QoKTsK
IH0KIAotRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6cGFnZVJlY3QoKQorRmxvYXRSZWN0IFdl
YkNocm9tZUNsaWVudDo6cGh5c2ljYWxWaWV3cG9ydFJlY3QoKQogewogICAgIFJFQ1QgcmVjdDsK
ICAgICBtX3dlYlZpZXctPmZyYW1lUmVjdCgmcmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDlhZWM3MzQ2ZjAyNTlm
ZWYwODVkYWE3YTY3NWNlMzhkZTVhN2Q0MzYuLjdjMjg2MTI5YTE5NzI4NDNlNmJiYWEwZmY1ZTRh
YTAzNTY3YzYyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC00NCwxMCArNDQsMTAgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygp
IGNvbnN0IHsgcmV0dXJuIG1fd2ViVmlldzsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dS
ZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6Rmxv
YXRSZWN0IHdpbmRvd1JlY3QoKTsKLSAgICAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVj
dCBwYWdlUmVjdCgpOworCisgICAgdmlydHVhbCB2b2lkIHNldFBoeXNpY2FsV2luZG93UmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVj
dCBwaHlzaWNhbFdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBw
aHlzaWNhbFZpZXdwb3J0UmVjdCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAgICAg
dmlydHVhbCB2b2lkIHVuZm9jdXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwIGIvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKaW5kZXggZGU2YmY3MTkwZmIw
MjM5YjQwMTc4ZmE0ZGU4YmVkY2Y0MDg1YmU0MS4uMjEwNmY1M2RhZmU0MzMzNWFlNWY0N2JmYjVi
YTYwODUyZmQwZjAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBD
aHJvbWVDbGllbnRXaW5DRTo6Y2hyb21lRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsKIH0K
IAotRmxvYXRSZWN0IENocm9tZUNsaWVudFdpbkNFOjp3aW5kb3dSZWN0KCkKK0Zsb2F0UmVjdCBD
aHJvbWVDbGllbnRXaW5DRTo6cGh5c2ljYWxXaW5kb3dSZWN0KCkKIHsKICAgICBpZiAoIW1fd2Vi
VmlldykKICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwpAQCAtNjAsMTQgKzYwLDE0IEBAIEZs
b2F0UmVjdCBDaHJvbWVDbGllbnRXaW5DRTo6d2luZG93UmVjdCgpCiAgICAgcmV0dXJuIHJlY3Q7
CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRS
ZWN0JikKK3ZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OnNldFBoeXNpY2FsV2luZG93UmVjdChjb25z
dCBGbG9hdFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLUZsb2F0UmVjdCBD
aHJvbWVDbGllbnRXaW5DRTo6cGFnZVJlY3QoKQorRmxvYXRSZWN0IENocm9tZUNsaWVudFdpbkNF
OjpwaHlzaWNhbFZpZXdwb3J0UmVjdCgpCiB7Ci0gICAgcmV0dXJuIHdpbmRvd1JlY3QoKTsKKyAg
ICByZXR1cm4gcGh5c2ljYWxXaW5kb3dSZWN0KCk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50V2lu
Q0U6OmZvY3VzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuaAppbmRleCA5NmNlYTFhNjJhYmQ5ODVmYTEyMjBiY2I3ZjRk
NzllYzk2OTg3MTNmLi5hZGU1ZTE2ZTQyMGUwMGMwOGY2MWFmZjY5Y2Q2NjE1NTE0NTc5MWQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFdpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRXaW5DRS5oCkBAIC0zOCwxMCArMzgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dS
ZWN0KCk7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAg
IHZpcnR1YWwgdm9pZCBzZXRQaHlzaWNhbFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0Jik7CisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGh5c2ljYWxXaW5kb3dSZWN0
KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGh5c2ljYWxWaWV3cG9ydFJlY3Qo
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3Vz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xp
ZW50V3guY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4
LmNwcAppbmRleCA1ZjExNjdiNTQ3Y2Q2MWE2ZjA1YWMyOGYxN2IzYWNkZTc2ZDE2ZjRjLi45ZGQw
Yzg1MGQ1MzQwYjNiM2U2NjY1MTZlNjdmMGVjZjE0MzY5ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKQEAgLTkwLDE4ICs5MCwx
OCBAQCB2b2lkIENocm9tZUNsaWVudFd4OjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V3g6OnNldFdpbmRvd1JlY3QoY29uc3Qg
RmxvYXRSZWN0JikKK3ZvaWQgQ2hyb21lQ2xpZW50V3g6OnNldFBoeXNpY2FsV2luZG93UmVjdChj
b25zdCBGbG9hdFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLUZsb2F0UmVj
dCBDaHJvbWVDbGllbnRXeDo6d2luZG93UmVjdCgpCitGbG9hdFJlY3QgQ2hyb21lQ2xpZW50V3g6
OnBoeXNpY2FsV2luZG93UmVjdCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1
cm4gRmxvYXRSZWN0KCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRXeDo6cGFnZVJlY3Qo
KQorRmxvYXRSZWN0IENocm9tZUNsaWVudFd4OjpwaHlzaWNhbFZpZXdwb3J0UmVjdCgpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaCBiL1NvdXJj
ZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IDUwNTQwZjA5
NDNlOWQ2OTYzZjE5NTRjMTFlNjJjY2NhN2Y5ZDhhNTguLmJmYTQwYWQwMzAzZDAzNWJiYThkODJh
YzdlZjc3ZjFlNjBhMWNkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9DaHJvbWVDbGllbnRXeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5oCkBAIC00NSwxMCArNDUsMTAgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25z
dCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7CiAKLSAg
ICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRQaHlz
aWNhbFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAgdmlydHVhbCBGbG9hdFJlY3Qg
cGh5c2ljYWxXaW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcGh5c2ljYWxWaWV3
cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwgdm9p
ZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggM2U3ZmUzMjk0ZmM1ZWNk
ZGI2MGIyYjhiMjc4Mjk2ZTNhYzcwOWMxYi4uNGMwOGU3YzU1ZTg3ZTEwYmMwZWJkZTdkMDRlYjk2
MGMxNTA0M2NjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTAxLDEyICsxMDEsMTIg
QEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNocm9tZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRo
aXM7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgd2luZG93RnJhbWUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0UGh5c2ljYWxXaW5k
b3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgd2luZG93RnJhbWUpCiB7CiAgICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFdpbmRvd0ZyYW1lKHdpbmRvd0ZyYW1lKSk7CiB9
CiAKLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQorRmxvYXRSZWN0IFdl
YkNocm9tZUNsaWVudDo6cGh5c2ljYWxXaW5kb3dSZWN0KCkKIHsKICAgICBGbG9hdFJlY3QgbmV3
V2luZG93RnJhbWU7CiAKQEAgLTExNiw5ICsxMTYsMTMgQEAgRmxvYXRSZWN0IFdlYkNocm9tZUNs
aWVudDo6d2luZG93UmVjdCgpCiAgICAgcmV0dXJuIG5ld1dpbmRvd0ZyYW1lOwogfQogCi1GbG9h
dFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwYWdlUmVjdCgpCitGbG9hdFJlY3QgV2ViQ2hyb21lQ2xp
ZW50OjpwaHlzaWNhbFZpZXdwb3J0UmVjdCgpCiB7CisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisgICAgcmV0dXJuIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIG1fcGFnZS0+dmlld3BvcnRT
aXplKCkpOworI2Vsc2UKICAgICByZXR1cm4gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbV9wYWdl
LT5zaXplKCkpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1cygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAppbmRleCAxZTYyZjdhYmQ0Y2MyYmI4NTI5ZTUwZjc3MTBmNzJkNjA4
ZTAxYzYzLi5jNmI1NTM0MmFiNDAzN2E2YmI3YzEwYjUwMzIyMDIzZDhjNzI3N2YyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTUxLDEyICs1MSwxMSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpIE9WRVJSSURFOwotICAgIAotICAgIHZp
cnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBPVkVSUklE
RTsKLSAgICAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpIE9WRVJS
SURFOwotICAgIAorCisgICAgdmlydHVhbCB2b2lkIHNldFBoeXNpY2FsV2luZG93UmVjdChjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZs
b2F0UmVjdCBwaHlzaWNhbFdpbmRvd1JlY3QoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OkZsb2F0UmVjdCBwaHlzaWNhbFZpZXdwb3J0UmVjdCgpIE9WRVJSSURFOworCiAgICAgdmly
dHVhbCB2b2lkIGZvY3VzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKSBP
VkVSUklERTsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173007</attachid>
            <date>2012-11-08 04:22:48 -0800</date>
            <delta_ts>2012-11-08 04:31:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101453-20121108132055.patch</filename>
            <type>text/plain</type>
            <size>44664</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjc0YzJiMDU4YzEwN2M2
ZTgyZWQ5ZjQ5NWM3NTUwYzEzNDI3ZWIzZC4uZTI3Y2RjOWFlOWY1Mzk3M2I2NTc3NjNlYmYxYzUx
NGIzZTM0MjhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTA4ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5l
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUg
cGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5cGUu
IAorICAgICAgICBVcGRhdGUgYWxsIHVzZSB0aGVyZSBvZi4KKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Om1vdmVXaW5kb3dCeSk6CisgICAgICAgICogbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6
OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6Ondp
bmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnZpZXdwb3J0
UmVjdCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lOjpzZXRXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZTo6d2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnZpZXdwb3J0UmVjdCk6
CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKENocm9tZSk6CisgICAgICAgICog
cGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ2hyb21l
Q2xpZW50KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6Om1vdmVCeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlc2l6ZUJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6cmVzaXplVG8pOgorICAgICAgICAqIHBsYXRmb3JtL0hvc3RXaW5k
b3cuaDoKKyAgICAgICAgKFdlYkNvcmUpOiBBZGQgbmV3IHR5cGVkZWYgZnJvbSBGbG9hdFJlY3Qg
dG8gSG9zdFJlY3QKKwogMjAxMi0xMS0wNyAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ2FudmFzXSBTYXZlIENhbnZhc0dy
YWRpZW50IG9iamVjdHMgc3RhdGUgZm9yIGEgcmVwbGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5n
ZUxvZwppbmRleCAyNjhhMDZhOThhY2EwODU3NWI5YzAxOTFhMGQwZjY1YjViNTlkYTVlLi43YzBl
NzU3ODJhNmRiZTNiYmQ2Y2ZkMzUzYmY4NTY2ODg1NzNjZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMS0wOCAgS2VubmV0aCBSb2hkZSBD
aHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1lIHRoZSB3
aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUgc2FuZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIG1ldGhvZHMvdHlw
ZXMgYW5kIHJldHVybiB3aW5kb3dSZWN0IGluc3RlYWQgb2YgYW4KKyAgICAgICAgZW1wdHkgSG9z
dFJlY3QgaW4gdmlld3BvcnRSZWN0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFj
a0JlcnJ5OjpzZXRXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJs
YWNrQmVycnk6OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeTo6dmlld3BvcnRSZWN0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRCbGFja0JlcnJ5KToKKwog
MjAxMi0xMS0wNyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29t
PgogCiAgICAgICAgIEFkZCByZXBsYWNlV2l0aExpdGVyYWwoKSBtZXRob2QgdG8gV1RGOjpTdHJp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMGFjN2E3MDAyMWNkNThkMzY1ZjU2M2Qx
YTQ5ZDEyYmY4ZjQwM2MxNy4uZGNiNzMwODgyZDVkNDgzNTMzZDllNWRiNzkyODBmOWQ3Y2MzYTk0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0xMS0w
OCAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1v
cmUgc2FuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAxNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVuYW1lIHRoZSBtZXRob2RzIGFuZCB0eXBlcy4KKworICAgICAgICAqIHNyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6c2V0V2luZG93
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OndpbmRvd1JlY3QpOgor
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjp2aWV3cG9ydFJlY3QpOgorICAgICAg
ICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChDaHJvbWVDbGllbnRJbXBsKToK
KwogMjAxMi0xMS0wNyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yICJkZXNrdG9wLXdpZHRoIiBpbiB0
aGUgdmlld3BvcnQgbWV0YSB0YWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBiMmU4YThmZDcxYjVhNWQw
YTEzMjhlMTQ2ODQ0MmFhYmJlZTNhZjE1Li4xMTE1NzRlOTg4MDRiNmI5ZGZhZjM5ZDk0NjJlYzM5
Mjk3MDVhMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMTEtMDgg
IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAg
ICAgIFJlbmFtZSB0aGUgd2luZG93UmVjdCwgcGFnZVJlY3QgZXRjIHRvIHNvbWV0aGluZyBtb3Jl
IHNhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bmFtZSB0aGUgbWV0aG9kcy90eXBlcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OndpbmRv
d1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpzZXRXaW5kb3dSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6dmlld3BvcnRSZWN0KToKKwor
ICAgICAgICAgICAgV2hlbiBubyBwYWdlIGlzIGF2YWlsYWJsZSwgcmV0dXJuIGEgYmV0dGVyCisg
ICAgICAgICAgICBhcHByb3hpbWF0aW9uIHRoYW4gYW4gZW1wdHkgcmVjdCBhcyB0aGlzIGlzIGNv
bXBhcmVkCisgICAgICAgICAgICB0byB0aGUgd2luZG93UmVjdCBieSBGcmFtZUxvYWRlci4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgorICAgICAgICAoQ2hy
b21lQ2xpZW50RWZsKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3
a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfY29tcHV0ZSk6CisKIDIwMTItMTEtMDEgIFNlb25h
ZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bRFJUXSBT
dXBwb3J0IEdlb2xvY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZWMxZDBlZmMxYWVmNzMzZmQ3
YWExNTEyNmQ0OTY3YTQ2NzFjMDg5Ni4uYjNmZDhhNmM0MjhkNWI2MTRiNTczNTRjZjQ3ZjE0NmQx
Y2VmOGU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTExLTA4ICBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBz
YW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0
NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5h
bWUgcGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5
cGUuIAorICAgICAgICBVcGRhdGUgYWxsIHVzZSB0aGVyZSBvZi4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6d2luZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2V0V2lu
ZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6dmlld3BvcnRSZWN0KToK
KyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY3JvbGwpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50KToKKyAg
ICAgICAgKiB3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcDoKKyAgICAgICAgKHdl
YmtpdFZpZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZSk6CisKIDIwMTItMTEtMDUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGxheWVyIGJvcmRl
cnMgdG8gY2xlYW5pbmcgYXBwZWFyIGFuZCBkaXNhcHBlYXIgb24gc3dpdGNoaW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggNmJhMWFjNzE1OWNiOTZiODNmZDI1ZTBlZWI2MDdhMjc3YzIxMzA1NC4uMzQ1
NTExNGJlZmVjNTg1NThlOTMyMTRmNmQzMzA3NzY3Y2NkNWU5MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAg
PGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBh
Z2VSZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgcGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0
IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5cGUuIAorICAgICAgICBVcGRhdGUgYWxsIHVz
ZSB0aGVyZSBvZi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
OgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1Jl
Y3QpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KToKKyAgICAgICAgKFdl
YkNocm9tZUNsaWVudDo6dmlld3BvcnRSZWN0KToKKwogMjAxMi0xMS0wNiAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYXR0ZW1wdCB0byBmaXgg
dGhlIGNocm9taXVtLW1hYyBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNDNiOTliM2QzMmY2NjQw
YjNjMWY0YmM2ZDc2N2Y1MWQ5MDc5YmMzMS4uOGJkMWVmZmZiZWVhZWMyMGI4MWM3MmFmYWQyYThk
M2YwNWZkZTYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0xMS0wOCAg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUg
c2FuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAx
NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVu
YW1lIHBhZ2VSZWN0IHRvIHZpZXdwb3J0UmVjdCBhbmQgdXNlIEhvc3RSZWN0IGFzIHJldHVybiB0
eXBlLiAKKyAgICAgICAgVXBkYXRlIGFsbCB1c2UgdGhlcmUgb2YuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRRdDo6c2V0V2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6d2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6d2lld3Bv
cnRSZWN0KToKKworICAgICAgICAgICAgV2hlbiBubyBtX3dlYlBhZ2UgaXMgYXZhaWxhYmxlLCBy
ZXR1cm4gYSBiZXR0ZXIKKyAgICAgICAgICAgIGFwcHJveGltYXRpb24gdGhhbiBhbiBlbXB0eSBy
ZWN0IGFzIHRoaXMgaXMgY29tcGFyZWQKKyAgICAgICAgICAgIHRvIHRoZSB3aW5kb3dSZWN0IGJ5
IEZyYW1lTG9hZGVyLgorCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50UXQpOgorCiAyMDEy
LTExLTAxICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzMxNDMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
MjYzNTE3NDNiZDg2NTgyMGExODZmYzM5MGRmYjNjMmNkMDU0MjFmOC4uNjhhMjllMDA2YTM1MGUz
MmNiN2E4NzMxNzM2YzE1ODg5NzMyYTMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0
byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWUgcGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9z
dFJlY3QgYXMgcmV0dXJuIHR5cGUuIAorICAgICAgICBVcGRhdGUgYWxsIHVzZSB0aGVyZSBvZi4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAg
IChXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50Ojp3aW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6dmlld3BvcnRSZWN0
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudCk6CisKIDIwMTItMTEtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGxheWVyIGJvcmRlcnMgdG8gY2xlYW5pbmcg
YXBwZWFyIGFuZCBkaXNhcHBlYXIgb24gc3dpdGNoaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4
IDJmYTNmMTMyZGUxNDMwNDI2YmEwMjBhMGIzYzJlZmUxNDczMTM4MjguLmU2YjRiZjU4NmVmNjZh
MTY1NjA5NmMwNmMxYjJhNzczN2E4YzljOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTItMTEtMDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSB0aGUgd2luZG93UmVjdCwgcGFnZVJlY3Qg
ZXRjIHRvIHNvbWV0aGluZyBtb3JlIHNhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbmFtZSBwYWdlUmVjdCB0byB2aWV3cG9ydFJlY3QgYW5kIHVz
ZSBIb3N0UmVjdCBhcyByZXR1cm4gdHlwZS4gCisgICAgICAgIFVwZGF0ZSBhbGwgdXNlIHRoZXJl
IG9mLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6d2luZG93UmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpzZXRXaW5kb3dSZWN0KToKKyAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6OnZpZXdwb3J0UmVjdCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaDoKKyAgICAgICAgKENocm9tZUNsaWVudFdpbkNF
KToKKwogMjAxMi0xMC0yNCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIGEgc3RyYXRlZ3kgZm9yIGxvYWRlciBjdXN0b21pemF0aW9uLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxv
ZwppbmRleCBlOWVhZjEzMTllMDMyN2VkOWNlYzlmYjQ5MjA5MzNiN2EyMjU0Y2M3Li5iNTgwODQz
ODczYzFhMDBjMWQ5MmMxYmJkNjRmYWNjODkxYTY1MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5l
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0
IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgcGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1
c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5cGUuIAorICAgICAgICBVcGRhdGUgYWxsIHVzZSB0aGVy
ZSBvZi4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50V3g6OnZpZXdwb3J0UmVjdCk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50V3gpOgorCiAyMDEyLTEwLTIy
ICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKICAgICAg
ICAgW1F0XSBGaXggIkFTU0VSVElPTiBGQUlMRUQ6ICFkb2N1bWVudC0+aW5QYWdlQ2FjaGUoKSIg
d2hlbiBsb2FkaW5nIGEgcGFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDMyYTc1N2IwMDYxMWYwMjM3MDcyZWQ5
YWFlYjg2MmI2OGUzMjdkOTQuLmY4ZWIxMjczMThlY2VlNTMzMzY1MGYxNzE5ZDEzYTlhZTU0Nzdh
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMS0wOCAgS2VubmV0aCBSb2hk
ZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1lIHRo
ZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUgc2FuZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIHRoZSBtZXRo
b2RzL3R5cGUgYW5kIG1ha2Ugdmlld3BvcnRSZWN0IHJldHVybiBhCisgICAgICAgIHByb3BlciB2
YWx1ZSB3aGVuIHRoZSB0aWxlZCBiYWNraW5nIHN0b3JlIGlzIHVzZWQuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0V2luZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6d2luZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6dmlld3BvcnRSZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50KToKKwogMjAx
Mi0xMS0wNyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNv
bT4KIAogICAgICAgICBbRUZMXVtXSzJdIE1ha2UgRVdLIGNsYXNzZXMgRXdrX09iamVjdHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsLmNwcAppbmRleCBhYmM5MTY4Yzc1ZDMwZGMyMWQ1ODViMmI5ZDJiYTgxNTliNTE0
M2Y3Li4wN2QyZmM1NDIwZGU5YjQxNzc3NTIwZjY0ZjcwYzQ1NzZjNDA1NjNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuY3BwCkBAIC0yMDQsOSArMjA0LDkgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsOjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCiAKIHZvaWQgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6bW92ZVdpbmRvd0J5KGZsb2F0IHgsIGZsb2F0IHkpCiB7Ci0g
ICAgRmxvYXRSZWN0IGZyYW1lUmVjdCA9IG1fZnJvbnRlbmRQYWdlLT5jaHJvbWUoKS0+d2luZG93
UmVjdCgpOwotICAgIGZyYW1lUmVjdC5tb3ZlKHgsIHkpOwotICAgIG1fZnJvbnRlbmRQYWdlLT5j
aHJvbWUoKS0+c2V0V2luZG93UmVjdChmcmFtZVJlY3QpOworICAgIEhvc3RSZWN0IHdpbmRvd1Jl
Y3QgPSBtX2Zyb250ZW5kUGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsKKyAgICB3aW5kb3dS
ZWN0Lm1vdmUoeCwgeSk7CisgICAgbV9mcm9udGVuZFBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dS
ZWN0KHdpbmRvd1JlY3QpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6
OnNldEF0dGFjaGVkV2luZG93KGJvb2wgYXR0YWNoZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKaW5kZXggNjdlODdhNzkyNjU4YmNhYmFiZDM0ODNkMmQ1NDMzNDMzMjE3OTBlNC4u
YzlhZTVjZWRjOTU5ZmU5M2UxYjM5OWYxYzRjMDVhYTYwMzYyNzMzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaApAQCAtNzEsMTAgKzcxLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQqIHdlYlZp
ZXcoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3Qo
Y29uc3QgRmxvYXRSZWN0JikgeyB9Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgp
IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVj
dCgpIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1Jl
Y3QoY29uc3QgSG9zdFJlY3QmKSB7IH0KKyAgICB2aXJ0dWFsIEhvc3RSZWN0IHdpbmRvd1JlY3Qo
KSB7IHJldHVybiBIb3N0UmVjdCgpOyB9CisgICAgdmlydHVhbCBIb3N0UmVjdCB2aWV3cG9ydFJl
Y3QoKSB7IHJldHVybiBIb3N0UmVjdCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKaW5kZXggYzFkYTQ0NTQ3YjhlZjFiMmFhMWYyNjQzMGEzYzA4MTkzNjIwOWJm
Mi4uNDMyMTk5YmFkNDhjZDFmMjg0NTIyZmViMTllZmM2ZDgxOWJhOGYwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zMzIyLDE2ICszMzIyLDE2IEBAIEZyYW1lKiBj
cmVhdGVXaW5kb3coRnJhbWUqIG9wZW5lckZyYW1lLCBGcmFtZSogbG9va3VwRnJhbWUsIGNvbnN0
IEZyYW1lTG9hZFJlcXVlCiAgICAgLy8gc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgcGFnZS4gV2Ug
Y2FuIG9ubHkgcmVzaXplIHRoZSB3aW5kb3csIHNvCiAgICAgLy8gYWRqdXN0IGZvciB0aGUgZGlm
ZmVyZW5jZSBiZXR3ZWVuIHRoZSB3aW5kb3cgc2l6ZSBhbmQgdGhlIHBhZ2Ugc2l6ZS4KIAotICAg
IEZsb2F0UmVjdCB3aW5kb3dSZWN0ID0gcGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsKLSAg
ICBGbG9hdFNpemUgcGFnZVNpemUgPSBwYWdlLT5jaHJvbWUoKS0+cGFnZVJlY3QoKS5zaXplKCk7
CisgICAgSG9zdFJlY3Qgd2luZG93UmVjdCA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7
CisgICAgSG9zdFJlY3Qgdmlld3BvcnRSZWN0ID0gcGFnZS0+Y2hyb21lKCktPnZpZXdwb3J0UmVj
dCgpOwogICAgIGlmIChmZWF0dXJlcy54U2V0KQogICAgICAgICB3aW5kb3dSZWN0LnNldFgoZmVh
dHVyZXMueCk7CiAgICAgaWYgKGZlYXR1cmVzLnlTZXQpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0
WShmZWF0dXJlcy55KTsKICAgICBpZiAoZmVhdHVyZXMud2lkdGhTZXQpCi0gICAgICAgIHdpbmRv
d1JlY3Quc2V0V2lkdGgoZmVhdHVyZXMud2lkdGggKyAod2luZG93UmVjdC53aWR0aCgpIC0gcGFn
ZVNpemUud2lkdGgoKSkpOworICAgICAgICB3aW5kb3dSZWN0LnNldFdpZHRoKGZlYXR1cmVzLndp
ZHRoICsgKHdpbmRvd1JlY3Qud2lkdGgoKSAtIHZpZXdwb3J0UmVjdC53aWR0aCgpKSk7CiAgICAg
aWYgKGZlYXR1cmVzLmhlaWdodFNldCkKLSAgICAgICAgd2luZG93UmVjdC5zZXRIZWlnaHQoZmVh
dHVyZXMuaGVpZ2h0ICsgKHdpbmRvd1JlY3QuaGVpZ2h0KCkgLSBwYWdlU2l6ZS5oZWlnaHQoKSkp
OworICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdodChmZWF0dXJlcy5oZWlnaHQgKyAod2luZG93
UmVjdC5oZWlnaHQoKSAtIHZpZXdwb3J0UmVjdC5oZWlnaHQoKSkpOwogICAgIHBhZ2UtPmNocm9t
ZSgpLT5zZXRXaW5kb3dSZWN0KHdpbmRvd1JlY3QpOwogCiAgICAgcGFnZS0+Y2hyb21lKCktPnNo
b3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCBmY2UwYzExNjY4ZWJiM2VjMzVlN2I5ZjVm
MThlMzg1MjkwOTFjMWU3Li40MTFkN2MwNjA5NzUxM2JhM2U2Y2FkNTdlY2ZmMDg5MzY5OWUzZmU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0xNDAsMTkgKzE0MCwxOSBAQCB2b2lkIENocm9t
ZTo6c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdAogICAgIG1fY2xpZW50LT5zY3JvbGxi
YXJzTW9kZURpZENoYW5nZSgpOwogfQogCi12b2lkIENocm9tZTo6c2V0V2luZG93UmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0Cit2b2lkIENocm9tZTo6c2V0V2luZG93UmVjdChjb25z
dCBIb3N0UmVjdCYgcmVjdCkgY29uc3QKIHsKICAgICBtX2NsaWVudC0+c2V0V2luZG93UmVjdChy
ZWN0KTsKIH0KIAotRmxvYXRSZWN0IENocm9tZTo6d2luZG93UmVjdCgpIGNvbnN0CitIb3N0UmVj
dCBDaHJvbWU6OndpbmRvd1JlY3QoKSBjb25zdAogewogICAgIHJldHVybiBtX2NsaWVudC0+d2lu
ZG93UmVjdCgpOwogfQogCi1GbG9hdFJlY3QgQ2hyb21lOjpwYWdlUmVjdCgpIGNvbnN0CitIb3N0
UmVjdCBDaHJvbWU6OnZpZXdwb3J0UmVjdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fY2xpZW50
LT5wYWdlUmVjdCgpOworICAgIHJldHVybiBtX2NsaWVudC0+dmlld3BvcnRSZWN0KCk7CiB9CiAK
IHZvaWQgQ2hyb21lOjpmb2N1cygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA1NjM4ZjNh
NDhhZGQ4OTU5ZTMwYWViMGQyMDVhZDNlNzBiOGNhYzE5Li40ZjM5OTFjNWI0MDJlOWY2NWJjM2Qx
OGY3N2UyN2FiNjkyNTE0MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTkyLDExICs5MiwxMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChG
cmFtZSosIGNvbnN0IEludFNpemUmKSBjb25zdDsKICAgICAgICAgdm9pZCBsYXlvdXRVcGRhdGVk
KEZyYW1lKikgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0
UmVjdCYpIGNvbnN0OwotICAgICAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCgpIGNvbnN0OworICAg
ICAgICB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmKSBjb25zdDsKKyAgICAgICAg
SG9zdFJlY3Qgd2luZG93UmVjdCgpIGNvbnN0OworICAgICAgICBIb3N0UmVjdCB2aWV3cG9ydFJl
Y3QoKSBjb25zdDsKIAotICAgICAgICBGbG9hdFJlY3QgcGFnZVJlY3QoKSBjb25zdDsKLSAgICAg
ICAgCiAgICAgICAgIHZvaWQgZm9jdXMoKSBjb25zdDsKICAgICAgICAgdm9pZCB1bmZvY3VzKCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDM1YzMyMzI4YzM0M2Ew
ZjU2OTMyOTZkNzA1NzExNzczMDhiYWFiMjkuLmRmZWE3NzBmZTA3YTQyMjViMjFhNDViMjEwYTAw
ZGM5MjJiODFiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtOTMsMTIgKzkz
LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBDaHJvbWVDbGllbnQgewogICAg
IHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpID0gMDsKLSAg
ICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVj
dCYpID0gMDsKLSAgICAgICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgpID0gMDsKLSAg
ICAgICAgCi0gICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgPSAwOwotICAgICAg
ICAKKworICAgICAgICAvLyBBIEhvc3RSZWN0IGlzIGluIHRoZSBjb29yZGluYXRlIHN5c3RlbSBu
YXRpdmUgdG8gdGhlIGNocm9tZSBvciB3aW5kb3dpbmcgc3lzdGVtLgorICAgICAgICB2aXJ0dWFs
IHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYpID0gMDsKKyAgICAgICAgdmlydHVh
bCBIb3N0UmVjdCB3aW5kb3dSZWN0KCkgPSAwOworICAgICAgICB2aXJ0dWFsIEhvc3RSZWN0IHZp
ZXdwb3J0UmVjdCgpID0gMDsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSA9IDA7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKaW5kZXggYTg0ZmVjNTljOTVlYjg1MWM0YmEzNzlkZmMxOGEyNzVlM2YyZmRiMC4uNjJj
NGJjNGY0MWViN2QyN2ZhYzRkZjcxZmYzMzMwNjQxYzlhNzAwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcApAQCAtMTQ0NiwxMiArMTQ0NiwxMiBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZUJ5
KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZy
YW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9t
ZSgpLT53aW5kb3dSZWN0KCk7Ci0gICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOworICAgIEZsb2F0
UmVjdCB3aW5kb3dSZWN0ID0gcGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsKKyAgICBGbG9h
dFJlY3QgdXBkYXRlID0gd2luZG93UmVjdDsKICAgICB1cGRhdGUubW92ZSh4LCB5KTsKICAgICAv
LyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3Nlcldy
aXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikKLSAgICBhZGp1c3RXaW5kb3dSZWN0KHNjcmVl
bkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSksIGZyLCB1cGRhdGUpOwot
ICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGZyKTsKKyAgICBhZGp1c3RXaW5kb3dS
ZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSksIHdpbmRv
d1JlY3QsIHVwZGF0ZSk7CisgICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3Qod2luZG93
UmVjdCk7CiB9CiAKIHZvaWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQgeCwgZmxvYXQgeSkgY29u
c3QKQEAgLTE0NjYsMTQgKzE0NjYsMTQgQEAgdm9pZCBET01XaW5kb3c6Om1vdmVUbyhmbG9hdCB4
LCBmbG9hdCB5KSBjb25zdAogICAgIGlmIChtX2ZyYW1lICE9IHBhZ2UtPm1haW5GcmFtZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUoKS0+d2lu
ZG93UmVjdCgpOwotICAgIEZsb2F0UmVjdCBzciA9IHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+
bWFpbkZyYW1lKCktPnZpZXcoKSk7Ci0gICAgZnIuc2V0TG9jYXRpb24oc3IubG9jYXRpb24oKSk7
Ci0gICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwotICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOyAgICAg
CisgICAgRmxvYXRSZWN0IHdpbmRvd1JlY3QgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgp
OworICAgIEZsb2F0UmVjdCBzY3JlZW5SZWN0ID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5t
YWluRnJhbWUoKS0+dmlldygpKTsKKyAgICB3aW5kb3dSZWN0LnNldExvY2F0aW9uKHNjcmVlblJl
Y3QubG9jYXRpb24oKSk7CisgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IHdpbmRvd1JlY3Q7CisgICAg
dXBkYXRlLm1vdmUoeCwgeSk7CiAgICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtz
IGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4pCi0g
ICAgYWRqdXN0V2luZG93UmVjdChzciwgZnIsIHVwZGF0ZSk7Ci0gICAgcGFnZS0+Y2hyb21lKCkt
PnNldFdpbmRvd1JlY3QoZnIpOworICAgIGFkanVzdFdpbmRvd1JlY3Qoc2NyZWVuUmVjdCwgd2lu
ZG93UmVjdCwgdXBkYXRlKTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdCh3aW5k
b3dSZWN0KTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgsIGZsb2F0IHkp
IGNvbnN0CkBAIC0xNDg4LDExICsxNDg4LDExIEBAIHZvaWQgRE9NV2luZG93OjpyZXNpemVCeShm
bG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAgIGlmIChtX2ZyYW1lICE9IHBhZ2UtPm1haW5GcmFt
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUo
KS0+d2luZG93UmVjdCgpOwotICAgIEZsb2F0U2l6ZSBkZXN0ID0gZnIuc2l6ZSgpICsgRmxvYXRT
aXplKHgsIHkpOwotICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7Ci0g
ICAgYWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgp
LT52aWV3KCkpLCBmciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVj
dChmcik7CisgICAgRmxvYXRSZWN0IHdpbmRvd1JlY3QgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93
UmVjdCgpOworICAgIEZsb2F0U2l6ZSBkZXN0aW5hdGlvbiA9IHdpbmRvd1JlY3Quc2l6ZSgpICsg
RmxvYXRTaXplKHgsIHkpOworICAgIEZsb2F0UmVjdCB1cGRhdGUod2luZG93UmVjdC5sb2NhdGlv
bigpLCBkZXN0aW5hdGlvbik7CisgICAgYWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVS
ZWN0KHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpLCB3aW5kb3dSZWN0LCB1cGRhdGUpOworICAg
IHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KHdpbmRvd1JlY3QpOwogfQogCiB2b2lkIERP
TVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKQEAgLTE1
MDcsMTEgKzE1MDcsMTEgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZVRvKGZsb2F0IHdpZHRoLCBm
bG9hdCBoZWlnaHQpIGNvbnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZyYW1lKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLT53
aW5kb3dSZWN0KCk7Ci0gICAgRmxvYXRTaXplIGRlc3QgPSBGbG9hdFNpemUod2lkdGgsIGhlaWdo
dCk7Ci0gICAgRmxvYXRSZWN0IHVwZGF0ZShmci5sb2NhdGlvbigpLCBkZXN0KTsKLSAgICBhZGp1
c3RXaW5kb3dSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXco
KSksIGZyLCB1cGRhdGUpOwotICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGZyKTsK
KyAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7
CisgICAgRmxvYXRTaXplIGRlc3RpbmF0aW9uID0gRmxvYXRTaXplKHdpZHRoLCBoZWlnaHQpOwor
ICAgIEZsb2F0UmVjdCB1cGRhdGUod2luZG93UmVjdC5sb2NhdGlvbigpLCBkZXN0aW5hdGlvbik7
CisgICAgYWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFt
ZSgpLT52aWV3KCkpLCB3aW5kb3dSZWN0LCB1cGRhdGUpOworICAgIHBhZ2UtPmNocm9tZSgpLT5z
ZXRXaW5kb3dSZWN0KHdpbmRvd1JlY3QpOwogfQogCiBpbnQgRE9NV2luZG93OjpzZXRUaW1lb3V0
KFBhc3NPd25QdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0LCBFeGNlcHRp
b25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5k
b3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAppbmRleCA3YzViYjIw
MTIxZGY4NzM0NGJmOWZkMDQzYzIzZDAxODhmODhjMTQ2Li40NmVhZjJhZDZhMjRlZjczM2NiZGY4
MWExN2RhYTMyYzU4MTczMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9I
b3N0V2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oCkBA
IC0yNiwxMiArMjYsMTYgQEAKICNpZm5kZWYgSG9zdFdpbmRvd19oCiAjZGVmaW5lIEhvc3RXaW5k
b3dfaAogCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3Vyc29yOwogCisvLyBBIEhvc3RSZWN0IGlzIGlu
IHRoZSBjb29yZGluYXRlIHN5c3RlbSBuYXRpdmUgdG8gdGhlIGNocm9tZSBvciB3aW5kb3dpbmcg
c3lzdGVtLgordHlwZWRlZiBGbG9hdFJlY3QgSG9zdFJlY3Q7CisKIGNsYXNzIEhvc3RXaW5kb3cg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEhvc3RXaW5kb3cpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRl
eCA3OGMxMmIyYzk2ZmI4NTZjZDljMWMxOWM5ZjM1NjBmMTcxNGY2OWI3Li5hZGQxYTYwNmY4MmJi
ZjYzNDE0NjBjZjFmYzAyYmU1M2NlYmZlMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNr
QmVycnkuY3BwCkBAIC0xNTMsMTIgKzE1MywxMiBAQCB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVy
cnk6OmNocm9tZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeTo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKQordm9pZCBD
aHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JikKIHsK
ICAgICAvLyBUaGUgd2luZG93IGRpbWVuc2lvbnMgYXJlIGZpeGVkIGluIHRoZSBSSU0gcG9ydC4K
IH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OndpbmRvd1JlY3QoKQorSG9z
dFJlY3QgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6d2luZG93UmVjdCgpCiB7CiAgICAgSW50U2l6
ZSB3aW5kb3dTaXplOwogCkBAIC0xNjgsMTAgKzE2OCwxMSBAQCBGbG9hdFJlY3QgQ2hyb21lQ2xp
ZW50QmxhY2tCZXJyeTo6d2luZG93UmVjdCgpCiAgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCB3
aW5kb3dTaXplLndpZHRoKCksIHdpbmRvd1NpemUuaGVpZ2h0KCkpOwogfQogCi1GbG9hdFJlY3Qg
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cGFnZVJlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeTo6dmlld3BvcnRSZWN0KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBGbG9hdFJlY3QoKTsKKyAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhlIHdpbmRvdyBy
ZWN0IGlzIHVzZWQgZm9yIHdpbmRvdyByZXNpemluZy4KKyAgICByZXR1cm4gd2luZG93UmVjdCgp
OwogfQogCiBmbG9hdCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzY2FsZUZhY3RvcigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAppbmRleCBlMTI5ZjQ1ODQyMTk2YmE1ZTY1MWM1ZTBk
ODU2ZjllMmFiYmJlODVhLi42OGU2YjA4YTUzOWQ0M2EyZGE5NDMzNzQxMjE0ZmE0ODdiZTY4Y2Ji
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTM3LDkgKzM3LDkgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogICAgIHZpcnR1YWwg
dm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7IH07Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qgd2lu
ZG93UmVjdCgpOwotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgdmlydHVh
bCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmKTsKKyAgICB2aXJ0dWFsIEhvc3RS
ZWN0IHdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIEhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpOwog
ICAgIHZpcnR1YWwgZmxvYXQgc2NhbGVGYWN0b3IoKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMo
KTsKICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCA5NDk1OTM4MGE2MDZkOWQxMmU3YmY5
NzU1MmFmYzRiYTZjY2Q5YmU2Li5mYzYzMmQ0MmEwNjUwMmFmZTI0MDI0Njc2MWI3NzJlOTZlMjMw
NmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcApAQCAtMTU4LDEzICsxNTgsMTMgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjaHJvbWVE
ZXN0cm95ZWQoKQogICAgIC8vIE91ciBsaWZldGltZSBpcyBib3VuZCB0byB0aGUgV2ViVmlld0lt
cGwuCiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9h
dFJlY3QmIHIpCit2b2lkIENocm9tZUNsaWVudEltcGw6OnNldFdpbmRvd1JlY3QoY29uc3QgSG9z
dFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCi0gICAgICAgIG1f
d2ViVmlldy0+Y2xpZW50KCktPnNldFdpbmRvd1JlY3QoSW50UmVjdChyKSk7CisgICAgICAgIG1f
d2ViVmlldy0+Y2xpZW50KCktPnNldFdpbmRvd1JlY3QoSW50UmVjdChyZWN0KSk7CiB9CiAKLUZs
b2F0UmVjdCBDaHJvbWVDbGllbnRJbXBsOjp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNs
aWVudEltcGw6OndpbmRvd1JlY3QoKQogewogICAgIFdlYlJlY3QgcmVjdDsKICAgICBpZiAobV93
ZWJWaWV3LT5jbGllbnQoKSkKQEAgLTE3NiwxMCArMTc2LDEwIEBAIEZsb2F0UmVjdCBDaHJvbWVD
bGllbnRJbXBsOjp3aW5kb3dSZWN0KCkKICAgICAgICAgcmVjdC53aWR0aCA9IG1fd2ViVmlldy0+
c2l6ZSgpLndpZHRoOwogICAgICAgICByZWN0LmhlaWdodCA9IG1fd2ViVmlldy0+c2l6ZSgpLmhl
aWdodDsKICAgICB9Ci0gICAgcmV0dXJuIEZsb2F0UmVjdChyZWN0KTsKKyAgICByZXR1cm4gSG9z
dFJlY3QocmVjdCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRJbXBsOjpwYWdlUmVjdCgp
CitIb3N0UmVjdCBDaHJvbWVDbGllbnRJbXBsOjp2aWV3cG9ydFJlY3QoKQogewogICAgIC8vIFdl
IGhpZGUgdGhlIGRldGFpbHMgb2YgdGhlIHdpbmRvdydzIGJvcmRlciB0aGlja25lc3MgZnJvbSB0
aGUgd2ViIHBhZ2UgYnkKICAgICAvLyBzaW1wbGUgcmUtdXNpbmcgdGhlIHdpbmRvdyBwb3NpdGlv
biBoZXJlLiAgU28sIGZyb20gdGhlIHBvaW50LW9mLXZpZXcgb2YKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCA3NzA4NGY4MDEwMmY2MjM3YjY3
ODJkYzhiNjBmY2MyY2UyNjY5NTIwLi45ZmYwMzFkYzMwMGY5MWU4MDE4OWYzODA4MzI0YmQ4ZWRl
ZDViYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5oCkBAIC03Myw5ICs3Myw5IEBAIHB1YmxpYzoKIAogICAgIC8vIENocm9tZUNsaWVudCBtZXRo
b2RzOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFs
IFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpG
bG9hdFJlY3QgcGFnZVJlY3QoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25z
dCBXZWJDb3JlOjpIb3N0UmVjdCYpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SG9zdFJlY3Qgd2lu
ZG93UmVjdCgpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SG9zdFJlY3Qgdmlld3BvcnRSZWN0KCk7
CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsK
ICAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRF
ZmwuY3BwCmluZGV4IDUzNzQyNGE5NDNkMDdkMzM1NTE5YTExM2MxMzljMjgwNjEwNjA4MTcuLmZm
M2VkYzNiNTMxYWVkOGI0ZGM3M2ZlODZlODFiOTQ4NDAyMjJlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtMTE2
LDE3ICsxMTYsMTcgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OmZvY3VzZWRGcmFtZUNoYW5nZWQo
RnJhbWUqKQogewogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50RWZsOjp3aW5kb3dSZWN0KCkK
K0hvc3RSZWN0IENocm9tZUNsaWVudEVmbDo6d2luZG93UmVjdCgpCiB7CiAgICAgaW50IHgsIHks
IHdpZHRoLCBoZWlnaHQ7CiAKICAgICBFY29yZV9FdmFzKiBlZSA9IGVjb3JlX2V2YXNfZWNvcmVf
ZXZhc19nZXQoZXZhc19vYmplY3RfZXZhc19nZXQobV92aWV3KSk7CiAgICAgZWNvcmVfZXZhc19y
ZXF1ZXN0X2dlb21ldHJ5X2dldChlZSwgJngsICZ5LCAmd2lkdGgsICZoZWlnaHQpOwogCi0gICAg
cmV0dXJuIEZsb2F0UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICByZXR1cm4gSG9zdFJl
Y3QoeCwgeSwgd2lkdGgsIGhlaWdodCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRX
aW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjpz
ZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JiByZWN0KQogewogICAgIGlmICghZXdrX3ZpZXdf
c2V0dGluZ19lbmFibGVfYXV0b19yZXNpemVfd2luZG93X2dldChtX3ZpZXcpKQogICAgICAgICBy
ZXR1cm47CkBAIC0xMzUsOSArMTM1LDEzIEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRXaW5k
b3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICBlY29yZV9ldmFzX21vdmVfcmVzaXpl
KGVlLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiB9
CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRFZmw6OnBhZ2VSZWN0KCkKK0hvc3RSZWN0IENocm9t
ZUNsaWVudEVmbDo6dmlld3BvcnRSZWN0KCkKIHsKLSAgICByZXR1cm4gZXdrX3ZpZXdfcGFnZV9y
ZWN0X2dldChtX3ZpZXcpOworICAgIC8vIFRoaXMgcmVxdWlyZXMgRnJhbWVWaWV3IHRvIGJlIHRo
ZSBzYW1lIHNpemUgYXMgdGhlIHZpZXdwb3J0LgorICAgIEhvc3RSZWN0IHJlY3QgPSBld2tfdmll
d19wYWdlX3JlY3RfZ2V0KG1fdmlldyk7CisKKyAgICBpZiAocmVjdC5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiB3aW5kb3dSZWN0KCk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpmb2N1
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5oCmluZGV4IDY4ZGE0NWE4YTgxNmYzMDhjNTdlYzE3OTc4NzJmODQzYjUxNmY2NDcuLjU2
MTk3ZjkxZTFkYTNiMWQ2MzhkNmRmZGZmZGE2YmZmNTE1YWEzNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC00OCwxMCAr
NDgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIEZs
b2F0UmVjdCB3aW5kb3dSZWN0KCk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0Jik7CisgICAg
dmlydHVhbCBIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBIb3N0UmVjdCB2aWV3
cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwgdm9p
ZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBmYWE1NWMyMDJk
YzkyY2M0NzcwNzM0ZjIwMzFmYmVkMjEzNGNiNWQzLi4xMjA1NWIzYjczZjYwMGM2ZjZiOTJkMjNh
ZmQ2ZTZjODg4YTcxMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTEzMDUs
NyArMTMwNSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgX2V3a192aWV3
X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfY29tcHV0ZShFd2tfVmllCiAgICAgaW50IGRldmljZURQSSA9
IFdlYkNvcmU6OmdldERQSSgpOwogICAgIHByaXYtPnNldHRpbmdzLmRldmljZVBpeGVsUmF0aW8g
PSBkZXZpY2VEUEkgLyBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdl
dERQSTsKIAotICAgIFdlYkNvcmU6OkludFJlY3QgYXZhaWxhYmxlUmVjdCA9IGVuY2xvc2luZ0lu
dFJlY3QocHJpdi0+cGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5wYWdlUmVjdCgpKTsKKyAgICBX
ZWJDb3JlOjpJbnRSZWN0IGF2YWlsYWJsZVJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYtPnBh
Z2UtPmNocm9tZSgpLT5jbGllbnQoKS0+dmlld3BvcnRSZWN0KCkpOwogICAgIFdlYkNvcmU6Oklu
dFJlY3QgZGV2aWNlUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QocHJpdi0+cGFnZS0+Y2hyb21lKCkt
PmNsaWVudCgpLT53aW5kb3dSZWN0KCkpOwogCiAgICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXMgPSBXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKHByaXYt
PnZpZXdwb3J0QXJndW1lbnRzLCBkZXNrdG9wV2lkdGgsIGRldmljZVJlY3Qud2lkdGgoKSwgZGV2
aWNlUmVjdC5oZWlnaHQoKSwgcHJpdi0+c2V0dGluZ3MuZGV2aWNlUGl4ZWxSYXRpbywgYXZhaWxh
YmxlUmVjdC5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggNjE1MmY1MDgwYmZiZGVjOWNlNDQxYzljMzkx
NTAyYjIwMDE5OTk4NS4uYzIzN2RmNzZmYThhMDc5MzExN2U5ZTNiZmMyZDY3NDQ3NTEyOGFlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmNocm9tZURl
c3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnQ6
OndpbmRvd1JlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KCkKIHsKICAg
ICBHdGtXaWRnZXQqIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQo
bV93ZWJWaWV3KSk7CiAgICAgaWYgKHdpZGdldElzT25zY3JlZW5Ub3BsZXZlbFdpbmRvdyh3aW5k
b3cpKSB7CkBAIC0xMTYsNyArMTE2LDcgQEAgRmxvYXRSZWN0IENocm9tZUNsaWVudDo6d2luZG93
UmVjdCgpCiAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudDo6
c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit2b2lkIENocm9tZUNsaWVudDo6
c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkKIHsKICAgICBJbnRSZWN0IGludHJl
Y3QgPSBJbnRSZWN0KHJlY3QpOwogICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzKiB3ZWJXaW5k
b3dGZWF0dXJlcyA9IHdlYmtpdF93ZWJfdmlld19nZXRfd2luZG93X2ZlYXR1cmVzKG1fd2ViVmll
dyk7CkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIEludFJlY3QgZ2V0V2ViVmlld1JlY3QoV2Vi
S2l0V2ViVmlldyogd2ViVmlldykKICAgICByZXR1cm4gSW50UmVjdChhbGxvY2F0aW9uLngsIGFs
bG9jYXRpb24ueSwgYWxsb2NhdGlvbi53aWR0aCwgYWxsb2NhdGlvbi5oZWlnaHQpOwogfQogCi1G
bG9hdFJlY3QgQ2hyb21lQ2xpZW50OjpwYWdlUmVjdCgpCitIb3N0UmVjdCBDaHJvbWVDbGllbnQ6
OnZpZXdwb3J0UmVjdCgpCiB7CiAgICAgcmV0dXJuIGdldFdlYlZpZXdSZWN0KG1fd2ViVmlldyk7
CiB9CkBAIC02NzksNyArNjc5LDcgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJ
bnRTaXplJiBkZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb24KICAgICAvLyBD
b21wdXRlIHRoZSBzY3JvbGwgcmVwYWludCByZWdpb24uIFdlIGVuc3VyZSB0aGF0IHdlIGFyZSBu
b3Qgc3VidHJhY3RpbmcgYXJlYXMKICAgICAvLyB0aGF0IHdlJ3ZlIHNjcm9sbGVkIGZyb20gb3V0
c2lkZSB0aGUgdmlld3BvcnQgZnJvbSB0aGUgcmVwYWludCByZWdpb24uCiAgICAgSW50UmVjdCBv
blNjcmVlblNjcm9sbFJlY3QgPSByZWN0VG9TY3JvbGw7Ci0gICAgb25TY3JlZW5TY3JvbGxSZWN0
LmludGVyc2VjdChJbnRSZWN0KEludFBvaW50KCksIGVuY2xvc2luZ0ludFJlY3QocGFnZVJlY3Qo
KSkuc2l6ZSgpKSk7CisgICAgb25TY3JlZW5TY3JvbGxSZWN0LmludGVyc2VjdChJbnRSZWN0KElu
dFBvaW50KCksIGVuY2xvc2luZ0ludFJlY3Qodmlld3BvcnRSZWN0KCkpLnNpemUoKSkpOwogICAg
IFJlZ2lvbiBzY3JvbGxSZXBhaW50UmVnaW9uID0gc3VidHJhY3QocmVjdFRvU2Nyb2xsLCB0cmFu
c2xhdGUob25TY3JlZW5TY3JvbGxSZWN0LCBkZWx0YSkpOwogCiAgICAgbV9kaXJ0eVJlZ2lvbi51
bml0ZShzY3JvbGxSZXBhaW50UmVnaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKaW5kZXggNDRjMjExYWQ0NjI4N2VmZmQ3NDMw
NGMwMmRjYzZkYjMwZmFmNjAzYy4uYzgxYjQ0MTBlNzVhMmY4ODM5YWFlZDNiMTY5ZGNlOTBjODMx
YTNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmgKQEAgLTQ4LDEwICs0OCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAotICAgICAgICB2aXJ0dWFsIHZv
aWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKLSAgICAgICAgdmlydHVhbCBGbG9h
dFJlY3Qgd2luZG93UmVjdCgpOwotCi0gICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0
KCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0Jik7
CisgICAgICAgIHZpcnR1YWwgSG9zdFJlY3Qgd2luZG93UmVjdCgpOworICAgICAgICB2aXJ0dWFs
IENyaG9tZVJlY3Qgdmlld3BvcnRSZWN0KCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGZvY3Vz
KCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCmluZGV4IGQxYTgz
Nzg2OTU2YTc3NWI3ZTRlMzkyOTljZjhlODc1ZGM1YmM0NDguLmU4Mjc1YzY5MGE3MzdlNThiYTQ2
ZjVjMzhlMGM1NzcwOGNhNGFhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9p
ZCB3ZWJraXRWaWV3cG9ydEF0dHJpYnV0ZXNSZWNvbXB1dGUoV2ViS2l0Vmlld3BvcnRBdHRyaWJ1
dGVzKiB2aWV3cG9ydEF0dHJpYnUKICAgICBwcml2LT5kZXZpY2VXaWR0aCA9IHdpbmRvd1JlY3Qu
d2lkdGgoKTsKICAgICBwcml2LT5kZXZpY2VIZWlnaHQgPSB3aW5kb3dSZWN0LmhlaWdodCgpOwog
Ci0gICAgSW50UmVjdCByZWN0KHdlYlZpZXctPnByaXYtPmNvcmVQYWdlLT5jaHJvbWUoKS0+cGFn
ZVJlY3QoKSk7CisgICAgSW50UmVjdCByZWN0KHdlYlZpZXctPnByaXYtPmNvcmVQYWdlLT5jaHJv
bWUoKS0+dmlld3BvcnRSZWN0KCkpOwogICAgIHByaXYtPmF2YWlsYWJsZVdpZHRoID0gcmVjdC53
aWR0aCgpOwogICAgIHByaXYtPmF2YWlsYWJsZUhlaWdodCA9IHJlY3QuaGVpZ2h0KCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
aW5kZXggNzA3MzQ5YzViZDY1MjVhMzU4NzdhZTJhYmYyZTMwZWY4ZDdjZjViMS4uYzFhZjAwOTI0
NjVmY2ExZTQ3YWRkZTdhODcwNjY2NTliOWJiZTRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQwLDEwICs0MCw5IEBA
IHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgT1ZFUlJJ
REU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2lu
ZG93UmVjdCgpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGFn
ZVJlY3QoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBX
ZWJDb3JlOjpIb3N0UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVjdFJl
Y3Qgd2luZG93UmVjdCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVjdFJlY3Qg
dmlld3BvcnRSZWN0KCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGYw
YmNkYTUyOTliYjQzMjgyYWNiNTEwOGVkMzc2NjdkZTU4ZTMzNWQuLjUyMDZmODk1ZjI2YTAwNTRm
YjkzMGI5NGE0OGZhODRkYTU4NDkzZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTE0NiwyMCArMTQ2LDIwIEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpjaHJvbWVEZXN0cm95ZWQoKQogLy8gVGhlc2UgZnVuY3Rpb25z
IHNjYWxlIGJldHdlZW4gd2luZG93IGFuZCBXZWJWaWV3IGNvb3JkaW5hdGVzIGJlY2F1c2UgSmF2
YVNjcmlwdC9ET00gb3BlcmF0aW9ucyAKIC8vIGFzc3VtZSB0aGF0IHRoZSBXZWJWaWV3IGFuZCB0
aGUgd2luZG93IHNoYXJlIHRoZSBzYW1lIGNvb3JkaW5hdGUgc3lzdGVtLgogCi12b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkKIHsKICAg
ICBOU1JlY3Qgd2luZG93UmVjdCA9IHRvRGV2aWNlU3BhY2UocmVjdCwgW21fd2ViVmlldyB3aW5k
b3ddKTsKICAgICBbW21fd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzptX3dl
YlZpZXcgc2V0RnJhbWU6d2luZG93UmVjdF07CiB9CiAKLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGll
bnQ6OndpbmRvd1JlY3QoKQorSG9zdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KCkK
IHsKICAgICBOU1JlY3Qgd2luZG93UmVjdCA9IFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2Fy
ZGVyXSB3ZWJWaWV3RnJhbWU6bV93ZWJWaWV3XTsKICAgICByZXR1cm4gdG9Vc2VyU3BhY2Uod2lu
ZG93UmVjdCwgW21fd2ViVmlldyB3aW5kb3ddKTsKIH0KIAogLy8gRklYTUU6IFdlIG5lZWQgdG8g
YWRkIEFQSSBmb3Igc2V0dGluZyBhbmQgZ2V0dGluZyB0aGlzLgotRmxvYXRSZWN0IFdlYkNocm9t
ZUNsaWVudDo6cGFnZVJlY3QoKQorSG9zdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp2aWV3cG9ydFJl
Y3QoKQogewogICAgIHJldHVybiBbbV93ZWJWaWV3IGZyYW1lXTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggZWFhZWIw
MTJmODZkMGE1MzExMGI1Nzk3NzNmNmQ1YjhjMDVkOTM0Mi4uYjA5OWVhYTdlMjIyYmFhMDJiZmRl
NzVkMWE2YTJhNjhhNGVlMzFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTE0NCw3ICsxNDQsNyBAQCBDaHJvbWVDbGll
bnRRdDo6fkNocm9tZUNsaWVudFF0KCkKICNlbmRpZgogfQogCi12b2lkIENocm9tZUNsaWVudFF0
OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgQ2hyb21lQ2xpZW50
UXQ6OnNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFtX3dl
YlBhZ2UpCiAgICAgICAgIHJldHVybjsKQEAgLTE1NywxMyArMTU3LDIwIEBAIHZvaWQgQ2hyb21l
Q2xpZW50UXQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgIGxpa2Ug
dG9vbGJhcnMvc2Nyb2xsYmFycyBldGMuIEl0IGlzIHVzZWQgYnkgdGhlIHZpZXdwb3J0IG1ldGEg
dGFnIGFzIHdlbGwgYXMKICAgICBieSB0aGUgRE9NIFdpbmRvdyBvYmplY3Q6IG91dGVySGVpZ2h0
KCksIG91dGVyV2lkdGgoKSwgc2NyZWVuWCgpLCBzY3JlZW5ZKCkuCiAqLwotRmxvYXRSZWN0IENo
cm9tZUNsaWVudFF0Ojp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNsaWVudFF0Ojp3aW5k
b3dSZWN0KCkKIHsKICAgICBpZiAoIXBsYXRmb3JtUGFnZUNsaWVudCgpKQogICAgICAgICByZXR1
cm4gRmxvYXRSZWN0KCk7CiAgICAgcmV0dXJuIHBsYXRmb3JtUGFnZUNsaWVudCgpLT53aW5kb3dS
ZWN0KCk7CiB9CiAKK0hvc3RSZWN0IENocm9tZUNsaWVudFF0Ojp3aWV3cG9ydFJlY3QoKQorewor
ICAgIGlmICghbV93ZWJQYWdlKQorICAgICAgICByZXR1cm4gd2luZG93UmVjdCgpOworICAgIHJl
dHVybiBIb3N0UmVjdChRUmVjdEYoUVBvaW50RigwLCAwKSwgbV93ZWJQYWdlLT52aWV3cG9ydFNp
emUoKSkpOworfQorCiBib29sIENocm9tZUNsaWVudFF0OjphbGxvd3NBY2NlbGVyYXRlZENvbXBv
c2l0aW5nKCkgY29uc3QKIHsKICAgICBpZiAoIXBsYXRmb3JtUGFnZUNsaWVudCgpKQpAQCAtMTcx
LDEzICsxNzgsNiBAQCBib29sIENocm9tZUNsaWVudFF0OjphbGxvd3NBY2NlbGVyYXRlZENvbXBv
c2l0aW5nKCkgY29uc3QKICAgICByZXR1cm4gcGxhdGZvcm1QYWdlQ2xpZW50KCktPmFsbG93c0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmcoKTsKIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudFF0Ojpw
YWdlUmVjdCgpCi17Ci0gICAgaWYgKCFtX3dlYlBhZ2UpCi0gICAgICAgIHJldHVybiBGbG9hdFJl
Y3QoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KFFSZWN0RihRUG9pbnRGKDAsIDApLCBtX3dlYlBh
Z2UtPnZpZXdwb3J0U2l6ZSgpKSk7Ci19Ci0KIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmZvY3VzKCkK
IHsKICAgICBpZiAoIW1fd2ViUGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCBmNzM1OWQyZTI4NzRhNzU1MTljMmY1Mzg3Njgx
MzI5ODBhZTRiOWNkLi4zMzdjYWFhYzBkMTVkMWE1YmIxNmE2YmVhYzMyMDRiNzEwMjJmMWVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
CkBAIC02NCwxMCArNjQsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0
cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKLSAg
ICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVj
dCBwYWdlUmVjdCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RS
ZWN0Jik7CisgICAgdmlydHVhbCBIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBI
b3N0UmVjdCB2aWV3cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAg
IHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA2OGJkZGVmMDM0MTg0YjVkNDAx
ZDVjZDBmNzRhNTYyMWY2NGI2OWUyLi4xOGQ4NTAxOWJjYmE1YTc5MTk0MTZlNDQ5OTU3Mjg0ZDU4
ZTRiYThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmNocm9tZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JiByKQogewogICAgIElXZWJVSURl
bGVnYXRlKiB1aURlbGVnYXRlID0gMDsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlE
ZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikKICAgICB9CiB9CiAKLUZs
b2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQorSG9zdFJlY3QgV2ViQ2hyb21l
Q2xpZW50Ojp3aW5kb3dSZWN0KCkKIHsKICAgICBJV2ViVUlEZWxlZ2F0ZSogdWlEZWxlZ2F0ZSA9
IDA7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUp
KSkgewpAQCAtMTA4LDEwICsxMDgsMTAgQEAgRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2lu
ZG93UmVjdCgpCiAgICAgICAgICAgICByZXR1cm4gcmVjdDsKICAgICB9CiAKLSAgICByZXR1cm4g
RmxvYXRSZWN0KCk7CisgICAgcmV0dXJuIEhvc3RSZWN0KCk7CiB9CiAKLUZsb2F0UmVjdCBXZWJD
aHJvbWVDbGllbnQ6OnBhZ2VSZWN0KCkKK0hvc3RSZWN0IFdlYkNocm9tZUNsaWVudDo6dmlld3Bv
cnRSZWN0KCkKIHsKICAgICBSRUNUIHJlY3Q7CiAgICAgbV93ZWJWaWV3LT5mcmFtZVJlY3QoJnJl
Y3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAppbmRleCA5YWVjNzM0NmYwMjU5ZmVmMDg1ZGFhN2E2NzVjZTM4ZGU1YTdkNDM2Li5l
NWMzZjA0YzEzODAzZTEzMjA2YjllNWQ2ZDNjNDNmZTdkMzlmNDBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNDQsMTAg
KzQ0LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQqIHdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBtX3dlYlZpZXc7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
KTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7Ci0gICAgCi0g
ICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGFnZVJlY3QoKTsKKworICAgIHZpcnR1YWwg
dm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6Okhvc3RSZWN0Jik7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpI
b3N0UmVjdCB2aWV3cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAg
IHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCmluZGV4IGRlNmJmNzE5MGZi
MDIzOWI0MDE3OGZhNGRlOGJlZGNmNDA4NWJlNDEuLjFkZGJhNzE5YTg4ZjM3NTNhNzdlYzAyMjIz
NDFiMGM5NmI1Y2Q2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCkBAIC01MCwyMiArNTAsMjIgQEAgdm9p
ZCBDaHJvbWVDbGllbnRXaW5DRTo6Y2hyb21lRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsK
IH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudFdpbkNFOjp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0
IENocm9tZUNsaWVudFdpbkNFOjp3aW5kb3dSZWN0KCkKIHsKICAgICBpZiAoIW1fd2ViVmlldykK
LSAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOworICAgICAgICByZXR1cm4gSG9zdFJlY3QoKTsK
IAogICAgIFJFQ1QgcmVjdDsKICAgICBtX3dlYlZpZXctPmZyYW1lUmVjdCgmcmVjdCk7CiAgICAg
cmV0dXJuIHJlY3Q7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OnNldFdpbmRvd1JlY3Qo
Y29uc3QgRmxvYXRSZWN0JikKK3ZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OnNldFdpbmRvd1JlY3Qo
Y29uc3QgSG9zdFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLUZsb2F0UmVj
dCBDaHJvbWVDbGllbnRXaW5DRTo6cGFnZVJlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50V2lu
Q0U6OnZpZXdwb3J0UmVjdCgpCiB7CiAgICAgcmV0dXJuIHdpbmRvd1JlY3QoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2lu
Q0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2lu
Q0UuaAppbmRleCA5NmNlYTFhNjJhYmQ5ODVmYTEyMjBiY2I3ZjRkNzllYzk2OTg3MTNmLi4yODFl
NTE2OWEwODNiYzY3MGU5Mzk3MDc5NmE0ZTdjMzlkOTQ4N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKKysrIGIvU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCkBAIC0z
OCwxMCArMzgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQo
KTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsK
LSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7CiAKLSAgICB2aXJ0
dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRX
aW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6Okhvc3RSZWN0Jik7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0UmVjdCB2
aWV3cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwg
dm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmNwcAppbmRleCA1ZjExNjdiNTQ3Y2Q2MWE2ZjA1YWMyOGYxN2IzYWNkZTc2
ZDE2ZjRjLi42NGQ5ZmYyYTk5NWNhMTc1ZmU4ZjM1NzU2MzE5NjVkMWQ5NmMxNjI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKQEAg
LTkwLDIxICs5MCwyMSBAQCB2b2lkIENocm9tZUNsaWVudFd4OjpjaHJvbWVEZXN0cm95ZWQoKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V3g6OnNldFdpbmRv
d1JlY3QoY29uc3QgRmxvYXRSZWN0JikKK3ZvaWQgQ2hyb21lQ2xpZW50V3g6OnNldFdpbmRvd1Jl
Y3QoY29uc3QgSG9zdFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLUZsb2F0
UmVjdCBDaHJvbWVDbGllbnRXeDo6d2luZG93UmVjdCgpCitIb3N0UmVjdCBDaHJvbWVDbGllbnRX
eDo6d2luZG93UmVjdCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gRmxv
YXRSZWN0KCk7CisgICAgcmV0dXJuIEhvc3RSZWN0KCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVD
bGllbnRXeDo6cGFnZVJlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50V3g6OnZpZXdwb3J0UmVj
dCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KCk7Cisg
ICAgcmV0dXJuIEhvc3RSZWN0KCk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50V3g6OmZvY3VzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRX
eC5oIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKaW5k
ZXggNTA1NDBmMDk0M2U5ZDY5NjNmMTk1NGMxMWU2MmNjY2E3ZjlkOGE1OC4uZmUxYjk0OTNhY2Ni
ZWNhMzA2ZWZiM2NiOTU0MmM3MzU3NGVhMjU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKKysrIGIvU291cmNlL1dlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKQEAgLTQ1LDEwICs0NSwxMCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogCiAgICAgdmlydHVhbCB2b2lk
KiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5k
b3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHdpbmRvd1Jl
Y3QoKTsKIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgdmlydHVhbCB2
b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmKTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVj
dCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgdmlld3BvcnRSZWN0KCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKTsKICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDNlN2ZlMzI5NGZjNWVjZGRiNjBiMmI4YjI3ODI5
NmUzYWM3MDljMWIuLmZjODZhNDM4NzZkMmY0NjVlZWU5MGU4MmE4NjAyODAxYTdjMTQzZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEwMSwyNCArMTAxLDI4IEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHdpbmRvd0Zy
YW1lKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3Qm
IHdpbmRvd0ZyYW1lKQogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTZXRXaW5kb3dGcmFtZSh3aW5kb3dGcmFtZSkpOwogfQogCi1GbG9hdFJlY3QgV2ViQ2hyb21l
Q2xpZW50Ojp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVj
dCgpCiB7Ci0gICAgRmxvYXRSZWN0IG5ld1dpbmRvd0ZyYW1lOworICAgIEhvc3RSZWN0IG5ld1dp
bmRvd0ZyYW1lOwogCiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCkt
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFdpbmRvd0ZyYW1lKCksIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkdldFdpbmRvd0ZyYW1lOjpSZXBseShuZXdXaW5kb3dGcmFtZSks
IG1fcGFnZS0+cGFnZUlEKCkpKQotICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CisgICAgICAg
IHJldHVybiBIb3N0UmVjdCgpOwogCiAgICAgcmV0dXJuIG5ld1dpbmRvd0ZyYW1lOwogfQogCi1G
bG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwYWdlUmVjdCgpCitIb3N0UmVjdCBXZWJDaHJvbWVD
bGllbnQ6OnZpZXdwb3J0UmVjdCgpCiB7Ci0gICAgcmV0dXJuIEZsb2F0UmVjdChGbG9hdFBvaW50
KCksIG1fcGFnZS0+c2l6ZSgpKTsKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICBy
ZXR1cm4gSG9zdFJlY3QoRmxvYXRQb2ludCgpLCBtX3BhZ2UtPnZpZXdwb3J0U2l6ZSgpKTsKKyNl
bHNlCisgICAgcmV0dXJuIEhvc3RSZWN0KEZsb2F0UG9pbnQoKSwgbV9wYWdlLT5zaXplKCkpOwor
I2VuZGlmCiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1cygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCAxZTYyZjdhYmQ0Y2MyYmI4NTI5ZTUwZjc3MTBmNzJkNjA4ZTAxYzYzLi43MjFh
ZTQ3ODc0NDI0ZDEyNGI1ZWY5MzE5ZjBiNjExZmE1ODgzZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTUxLDEyICs1MSwxMSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGNocm9tZURlc3Ryb3llZCgpIE9WRVJSSURFOwotICAgIAotICAgIHZpcnR1YWwgdm9pZCBz
ZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBPVkVSUklERTsKLSAgICAKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpIE9WRVJSSURFOwotICAgIAor
CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6SG9zdFJlY3Qm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhvc3RSZWN0IHdpbmRvd1JlY3QoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpIE9W
RVJSSURFOworCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHVuZm9jdXMoKSBPVkVSUklERTsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173010</attachid>
            <date>2012-11-08 04:31:41 -0800</date>
            <delta_ts>2012-11-09 09:11:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101453-20121108132949.patch</filename>
            <type>text/plain</type>
            <size>44664</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjc0YzJiMDU4YzEwN2M2
ZTgyZWQ5ZjQ5NWM3NTUwYzEzNDI3ZWIzZC4uZTI3Y2RjOWFlOWY1Mzk3M2I2NTc3NjNlYmYxYzUx
NGIzZTM0MjhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTA4ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5l
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUg
cGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5cGUu
IAorICAgICAgICBVcGRhdGUgYWxsIHVzZSB0aGVyZSBvZi4KKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Om1vdmVXaW5kb3dCeSk6CisgICAgICAgICogbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6
OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6Ondp
bmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnZpZXdwb3J0
UmVjdCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lOjpzZXRXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZTo6d2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnZpZXdwb3J0UmVjdCk6
CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKENocm9tZSk6CisgICAgICAgICog
cGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ2hyb21l
Q2xpZW50KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6Om1vdmVCeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlc2l6ZUJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6cmVzaXplVG8pOgorICAgICAgICAqIHBsYXRmb3JtL0hvc3RXaW5k
b3cuaDoKKyAgICAgICAgKFdlYkNvcmUpOiBBZGQgbmV3IHR5cGVkZWYgZnJvbSBGbG9hdFJlY3Qg
dG8gSG9zdFJlY3QKKwogMjAxMi0xMS0wNyAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ2FudmFzXSBTYXZlIENhbnZhc0dy
YWRpZW50IG9iamVjdHMgc3RhdGUgZm9yIGEgcmVwbGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5n
ZUxvZwppbmRleCAyNjhhMDZhOThhY2EwODU3NWI5YzAxOTFhMGQwZjY1YjViNTlkYTVlLi43YzBl
NzU3ODJhNmRiZTNiYmQ2Y2ZkMzUzYmY4NTY2ODg1NzNjZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMS0wOCAgS2VubmV0aCBSb2hkZSBD
aHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1lIHRoZSB3
aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUgc2FuZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIG1ldGhvZHMvdHlw
ZXMgYW5kIHJldHVybiB3aW5kb3dSZWN0IGluc3RlYWQgb2YgYW4KKyAgICAgICAgZW1wdHkgSG9z
dFJlY3QgaW4gdmlld3BvcnRSZWN0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFj
a0JlcnJ5OjpzZXRXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJs
YWNrQmVycnk6OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeTo6dmlld3BvcnRSZWN0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRCbGFja0JlcnJ5KToKKwog
MjAxMi0xMS0wNyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29t
PgogCiAgICAgICAgIEFkZCByZXBsYWNlV2l0aExpdGVyYWwoKSBtZXRob2QgdG8gV1RGOjpTdHJp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMGFjN2E3MDAyMWNkNThkMzY1ZjU2M2Qx
YTQ5ZDEyYmY4ZjQwM2MxNy4uZGNiNzMwODgyZDVkNDgzNTMzZDllNWRiNzkyODBmOWQ3Y2MzYTk0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0xMS0w
OCAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1v
cmUgc2FuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAxNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVuYW1lIHRoZSBtZXRob2RzIGFuZCB0eXBlcy4KKworICAgICAgICAqIHNyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6c2V0V2luZG93
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OndpbmRvd1JlY3QpOgor
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjp2aWV3cG9ydFJlY3QpOgorICAgICAg
ICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChDaHJvbWVDbGllbnRJbXBsKToK
KwogMjAxMi0xMS0wNyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yICJkZXNrdG9wLXdpZHRoIiBpbiB0
aGUgdmlld3BvcnQgbWV0YSB0YWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBiMmU4YThmZDcxYjVhNWQw
YTEzMjhlMTQ2ODQ0MmFhYmJlZTNhZjE1Li4xMTE1NzRlOTg4MDRiNmI5ZGZhZjM5ZDk0NjJlYzM5
Mjk3MDVhMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMTEtMDgg
IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAg
ICAgIFJlbmFtZSB0aGUgd2luZG93UmVjdCwgcGFnZVJlY3QgZXRjIHRvIHNvbWV0aGluZyBtb3Jl
IHNhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bmFtZSB0aGUgbWV0aG9kcy90eXBlcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OndpbmRv
d1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpzZXRXaW5kb3dSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6dmlld3BvcnRSZWN0KToKKwor
ICAgICAgICAgICAgV2hlbiBubyBwYWdlIGlzIGF2YWlsYWJsZSwgcmV0dXJuIGEgYmV0dGVyCisg
ICAgICAgICAgICBhcHByb3hpbWF0aW9uIHRoYW4gYW4gZW1wdHkgcmVjdCBhcyB0aGlzIGlzIGNv
bXBhcmVkCisgICAgICAgICAgICB0byB0aGUgd2luZG93UmVjdCBieSBGcmFtZUxvYWRlci4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgorICAgICAgICAoQ2hy
b21lQ2xpZW50RWZsKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3
a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfY29tcHV0ZSk6CisKIDIwMTItMTEtMDEgIFNlb25h
ZSBLaW0gIDxzdW5hZWx1di5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bRFJUXSBT
dXBwb3J0IEdlb2xvY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZWMxZDBlZmMxYWVmNzMzZmQ3
YWExNTEyNmQ0OTY3YTQ2NzFjMDg5Ni4uYjNmZDhhNmM0MjhkNWI2MTRiNTczNTRjZjQ3ZjE0NmQx
Y2VmOGU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTExLTA4ICBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBz
YW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0
NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5h
bWUgcGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5
cGUuIAorICAgICAgICBVcGRhdGUgYWxsIHVzZSB0aGVyZSBvZi4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6d2luZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2V0V2lu
ZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6dmlld3BvcnRSZWN0KToK
KyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY3JvbGwpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50KToKKyAg
ICAgICAgKiB3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcDoKKyAgICAgICAgKHdl
YmtpdFZpZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZSk6CisKIDIwMTItMTEtMDUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGxheWVyIGJvcmRl
cnMgdG8gY2xlYW5pbmcgYXBwZWFyIGFuZCBkaXNhcHBlYXIgb24gc3dpdGNoaW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggNmJhMWFjNzE1OWNiOTZiODNmZDI1ZTBlZWI2MDdhMjc3YzIxMzA1NC4uMzQ1
NTExNGJlZmVjNTg1NThlOTMyMTRmNmQzMzA3NzY3Y2NkNWU5MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAg
PGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBh
Z2VSZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgcGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0
IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5cGUuIAorICAgICAgICBVcGRhdGUgYWxsIHVz
ZSB0aGVyZSBvZi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
OgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1Jl
Y3QpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KToKKyAgICAgICAgKFdl
YkNocm9tZUNsaWVudDo6dmlld3BvcnRSZWN0KToKKwogMjAxMi0xMS0wNiAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYXR0ZW1wdCB0byBmaXgg
dGhlIGNocm9taXVtLW1hYyBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNDNiOTliM2QzMmY2NjQw
YjNjMWY0YmM2ZDc2N2Y1MWQ5MDc5YmMzMS4uMjhmNDI5OGVjNzAyZjg1YjBiYzJhODIyMmJhNWNi
OTFjMjZjMTJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0xMS0wOCAg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUg
c2FuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAx
NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVu
YW1lIHBhZ2VSZWN0IHRvIHZpZXdwb3J0UmVjdCBhbmQgdXNlIEhvc3RSZWN0IGFzIHJldHVybiB0
eXBlLiAKKyAgICAgICAgVXBkYXRlIGFsbCB1c2UgdGhlcmUgb2YuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRRdDo6c2V0V2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6d2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6dmlld3Bv
cnRSZWN0KToKKworICAgICAgICAgICAgV2hlbiBubyBtX3dlYlBhZ2UgaXMgYXZhaWxhYmxlLCBy
ZXR1cm4gYSBiZXR0ZXIKKyAgICAgICAgICAgIGFwcHJveGltYXRpb24gdGhhbiBhbiBlbXB0eSBy
ZWN0IGFzIHRoaXMgaXMgY29tcGFyZWQKKyAgICAgICAgICAgIHRvIHRoZSB3aW5kb3dSZWN0IGJ5
IEZyYW1lTG9hZGVyLgorCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50UXQpOgorCiAyMDEy
LTExLTAxICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzMxNDMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
MjYzNTE3NDNiZDg2NTgyMGExODZmYzM5MGRmYjNjMmNkMDU0MjFmOC4uNjhhMjllMDA2YTM1MGUz
MmNiN2E4NzMxNzM2YzE1ODg5NzMyYTMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0
byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWUgcGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9z
dFJlY3QgYXMgcmV0dXJuIHR5cGUuIAorICAgICAgICBVcGRhdGUgYWxsIHVzZSB0aGVyZSBvZi4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAg
IChXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50Ojp3aW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6dmlld3BvcnRSZWN0
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudCk6CisKIDIwMTItMTEtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGxheWVyIGJvcmRlcnMgdG8gY2xlYW5pbmcg
YXBwZWFyIGFuZCBkaXNhcHBlYXIgb24gc3dpdGNoaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4
IDJmYTNmMTMyZGUxNDMwNDI2YmEwMjBhMGIzYzJlZmUxNDczMTM4MjguLmU2YjRiZjU4NmVmNjZh
MTY1NjA5NmMwNmMxYjJhNzczN2E4YzljOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTItMTEtMDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSB0aGUgd2luZG93UmVjdCwgcGFnZVJlY3Qg
ZXRjIHRvIHNvbWV0aGluZyBtb3JlIHNhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbmFtZSBwYWdlUmVjdCB0byB2aWV3cG9ydFJlY3QgYW5kIHVz
ZSBIb3N0UmVjdCBhcyByZXR1cm4gdHlwZS4gCisgICAgICAgIFVwZGF0ZSBhbGwgdXNlIHRoZXJl
IG9mLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6d2luZG93UmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpzZXRXaW5kb3dSZWN0KToKKyAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6OnZpZXdwb3J0UmVjdCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaDoKKyAgICAgICAgKENocm9tZUNsaWVudFdpbkNF
KToKKwogMjAxMi0xMC0yNCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIGEgc3RyYXRlZ3kgZm9yIGxvYWRlciBjdXN0b21pemF0aW9uLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxv
ZwppbmRleCBlOWVhZjEzMTllMDMyN2VkOWNlYzlmYjQ5MjA5MzNiN2EyMjU0Y2M3Li5iNTgwODQz
ODczYzFhMDBjMWQ5MmMxYmJkNjRmYWNjODkxYTY1MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5l
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0
IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgcGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1
c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5cGUuIAorICAgICAgICBVcGRhdGUgYWxsIHVzZSB0aGVy
ZSBvZi4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50V3g6OnZpZXdwb3J0UmVjdCk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50V3gpOgorCiAyMDEyLTEwLTIy
ICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKICAgICAg
ICAgW1F0XSBGaXggIkFTU0VSVElPTiBGQUlMRUQ6ICFkb2N1bWVudC0+aW5QYWdlQ2FjaGUoKSIg
d2hlbiBsb2FkaW5nIGEgcGFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDMyYTc1N2IwMDYxMWYwMjM3MDcyZWQ5
YWFlYjg2MmI2OGUzMjdkOTQuLmY4ZWIxMjczMThlY2VlNTMzMzY1MGYxNzE5ZDEzYTlhZTU0Nzdh
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMS0wOCAgS2VubmV0aCBSb2hk
ZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1lIHRo
ZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUgc2FuZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIHRoZSBtZXRo
b2RzL3R5cGUgYW5kIG1ha2Ugdmlld3BvcnRSZWN0IHJldHVybiBhCisgICAgICAgIHByb3BlciB2
YWx1ZSB3aGVuIHRoZSB0aWxlZCBiYWNraW5nIHN0b3JlIGlzIHVzZWQuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0V2luZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6d2luZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6dmlld3BvcnRSZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50KToKKwogMjAx
Mi0xMS0wNyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNv
bT4KIAogICAgICAgICBbRUZMXVtXSzJdIE1ha2UgRVdLIGNsYXNzZXMgRXdrX09iamVjdHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsLmNwcAppbmRleCBhYmM5MTY4Yzc1ZDMwZGMyMWQ1ODViMmI5ZDJiYTgxNTliNTE0
M2Y3Li4wN2QyZmM1NDIwZGU5YjQxNzc3NTIwZjY0ZjcwYzQ1NzZjNDA1NjNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuY3BwCkBAIC0yMDQsOSArMjA0LDkgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsOjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCiAKIHZvaWQgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbDo6bW92ZVdpbmRvd0J5KGZsb2F0IHgsIGZsb2F0IHkpCiB7Ci0g
ICAgRmxvYXRSZWN0IGZyYW1lUmVjdCA9IG1fZnJvbnRlbmRQYWdlLT5jaHJvbWUoKS0+d2luZG93
UmVjdCgpOwotICAgIGZyYW1lUmVjdC5tb3ZlKHgsIHkpOwotICAgIG1fZnJvbnRlbmRQYWdlLT5j
aHJvbWUoKS0+c2V0V2luZG93UmVjdChmcmFtZVJlY3QpOworICAgIEhvc3RSZWN0IHdpbmRvd1Jl
Y3QgPSBtX2Zyb250ZW5kUGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsKKyAgICB3aW5kb3dS
ZWN0Lm1vdmUoeCwgeSk7CisgICAgbV9mcm9udGVuZFBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dS
ZWN0KHdpbmRvd1JlY3QpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6
OnNldEF0dGFjaGVkV2luZG93KGJvb2wgYXR0YWNoZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKaW5kZXggNjdlODdhNzkyNjU4YmNhYmFiZDM0ODNkMmQ1NDMzNDMzMjE3OTBlNC4u
YzlhZTVjZWRjOTU5ZmU5M2UxYjM5OWYxYzRjMDVhYTYwMzYyNzMzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaApAQCAtNzEsMTAgKzcxLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQqIHdlYlZp
ZXcoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3Qo
Y29uc3QgRmxvYXRSZWN0JikgeyB9Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgp
IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVj
dCgpIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1Jl
Y3QoY29uc3QgSG9zdFJlY3QmKSB7IH0KKyAgICB2aXJ0dWFsIEhvc3RSZWN0IHdpbmRvd1JlY3Qo
KSB7IHJldHVybiBIb3N0UmVjdCgpOyB9CisgICAgdmlydHVhbCBIb3N0UmVjdCB2aWV3cG9ydFJl
Y3QoKSB7IHJldHVybiBIb3N0UmVjdCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKaW5kZXggYzFkYTQ0NTQ3YjhlZjFiMmFhMWYyNjQzMGEzYzA4MTkzNjIwOWJm
Mi4uNDMyMTk5YmFkNDhjZDFmMjg0NTIyZmViMTllZmM2ZDgxOWJhOGYwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zMzIyLDE2ICszMzIyLDE2IEBAIEZyYW1lKiBj
cmVhdGVXaW5kb3coRnJhbWUqIG9wZW5lckZyYW1lLCBGcmFtZSogbG9va3VwRnJhbWUsIGNvbnN0
IEZyYW1lTG9hZFJlcXVlCiAgICAgLy8gc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgcGFnZS4gV2Ug
Y2FuIG9ubHkgcmVzaXplIHRoZSB3aW5kb3csIHNvCiAgICAgLy8gYWRqdXN0IGZvciB0aGUgZGlm
ZmVyZW5jZSBiZXR3ZWVuIHRoZSB3aW5kb3cgc2l6ZSBhbmQgdGhlIHBhZ2Ugc2l6ZS4KIAotICAg
IEZsb2F0UmVjdCB3aW5kb3dSZWN0ID0gcGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsKLSAg
ICBGbG9hdFNpemUgcGFnZVNpemUgPSBwYWdlLT5jaHJvbWUoKS0+cGFnZVJlY3QoKS5zaXplKCk7
CisgICAgSG9zdFJlY3Qgd2luZG93UmVjdCA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7
CisgICAgSG9zdFJlY3Qgdmlld3BvcnRSZWN0ID0gcGFnZS0+Y2hyb21lKCktPnZpZXdwb3J0UmVj
dCgpOwogICAgIGlmIChmZWF0dXJlcy54U2V0KQogICAgICAgICB3aW5kb3dSZWN0LnNldFgoZmVh
dHVyZXMueCk7CiAgICAgaWYgKGZlYXR1cmVzLnlTZXQpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0
WShmZWF0dXJlcy55KTsKICAgICBpZiAoZmVhdHVyZXMud2lkdGhTZXQpCi0gICAgICAgIHdpbmRv
d1JlY3Quc2V0V2lkdGgoZmVhdHVyZXMud2lkdGggKyAod2luZG93UmVjdC53aWR0aCgpIC0gcGFn
ZVNpemUud2lkdGgoKSkpOworICAgICAgICB3aW5kb3dSZWN0LnNldFdpZHRoKGZlYXR1cmVzLndp
ZHRoICsgKHdpbmRvd1JlY3Qud2lkdGgoKSAtIHZpZXdwb3J0UmVjdC53aWR0aCgpKSk7CiAgICAg
aWYgKGZlYXR1cmVzLmhlaWdodFNldCkKLSAgICAgICAgd2luZG93UmVjdC5zZXRIZWlnaHQoZmVh
dHVyZXMuaGVpZ2h0ICsgKHdpbmRvd1JlY3QuaGVpZ2h0KCkgLSBwYWdlU2l6ZS5oZWlnaHQoKSkp
OworICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdodChmZWF0dXJlcy5oZWlnaHQgKyAod2luZG93
UmVjdC5oZWlnaHQoKSAtIHZpZXdwb3J0UmVjdC5oZWlnaHQoKSkpOwogICAgIHBhZ2UtPmNocm9t
ZSgpLT5zZXRXaW5kb3dSZWN0KHdpbmRvd1JlY3QpOwogCiAgICAgcGFnZS0+Y2hyb21lKCktPnNo
b3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCBmY2UwYzExNjY4ZWJiM2VjMzVlN2I5ZjVm
MThlMzg1MjkwOTFjMWU3Li40MTFkN2MwNjA5NzUxM2JhM2U2Y2FkNTdlY2ZmMDg5MzY5OWUzZmU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0xNDAsMTkgKzE0MCwxOSBAQCB2b2lkIENocm9t
ZTo6c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdAogICAgIG1fY2xpZW50LT5zY3JvbGxi
YXJzTW9kZURpZENoYW5nZSgpOwogfQogCi12b2lkIENocm9tZTo6c2V0V2luZG93UmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0Cit2b2lkIENocm9tZTo6c2V0V2luZG93UmVjdChjb25z
dCBIb3N0UmVjdCYgcmVjdCkgY29uc3QKIHsKICAgICBtX2NsaWVudC0+c2V0V2luZG93UmVjdChy
ZWN0KTsKIH0KIAotRmxvYXRSZWN0IENocm9tZTo6d2luZG93UmVjdCgpIGNvbnN0CitIb3N0UmVj
dCBDaHJvbWU6OndpbmRvd1JlY3QoKSBjb25zdAogewogICAgIHJldHVybiBtX2NsaWVudC0+d2lu
ZG93UmVjdCgpOwogfQogCi1GbG9hdFJlY3QgQ2hyb21lOjpwYWdlUmVjdCgpIGNvbnN0CitIb3N0
UmVjdCBDaHJvbWU6OnZpZXdwb3J0UmVjdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fY2xpZW50
LT5wYWdlUmVjdCgpOworICAgIHJldHVybiBtX2NsaWVudC0+dmlld3BvcnRSZWN0KCk7CiB9CiAK
IHZvaWQgQ2hyb21lOjpmb2N1cygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA1NjM4ZjNh
NDhhZGQ4OTU5ZTMwYWViMGQyMDVhZDNlNzBiOGNhYzE5Li40ZjM5OTFjNWI0MDJlOWY2NWJjM2Qx
OGY3N2UyN2FiNjkyNTE0MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTkyLDExICs5MiwxMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChG
cmFtZSosIGNvbnN0IEludFNpemUmKSBjb25zdDsKICAgICAgICAgdm9pZCBsYXlvdXRVcGRhdGVk
KEZyYW1lKikgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0
UmVjdCYpIGNvbnN0OwotICAgICAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCgpIGNvbnN0OworICAg
ICAgICB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmKSBjb25zdDsKKyAgICAgICAg
SG9zdFJlY3Qgd2luZG93UmVjdCgpIGNvbnN0OworICAgICAgICBIb3N0UmVjdCB2aWV3cG9ydFJl
Y3QoKSBjb25zdDsKIAotICAgICAgICBGbG9hdFJlY3QgcGFnZVJlY3QoKSBjb25zdDsKLSAgICAg
ICAgCiAgICAgICAgIHZvaWQgZm9jdXMoKSBjb25zdDsKICAgICAgICAgdm9pZCB1bmZvY3VzKCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDM1YzMyMzI4YzM0M2Ew
ZjU2OTMyOTZkNzA1NzExNzczMDhiYWFiMjkuLmRmZWE3NzBmZTA3YTQyMjViMjFhNDViMjEwYTAw
ZGM5MjJiODFiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtOTMsMTIgKzkz
LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBDaHJvbWVDbGllbnQgewogICAg
IHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpID0gMDsKLSAg
ICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVj
dCYpID0gMDsKLSAgICAgICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgpID0gMDsKLSAg
ICAgICAgCi0gICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgPSAwOwotICAgICAg
ICAKKworICAgICAgICAvLyBBIEhvc3RSZWN0IGlzIGluIHRoZSBjb29yZGluYXRlIHN5c3RlbSBu
YXRpdmUgdG8gdGhlIGNocm9tZSBvciB3aW5kb3dpbmcgc3lzdGVtLgorICAgICAgICB2aXJ0dWFs
IHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYpID0gMDsKKyAgICAgICAgdmlydHVh
bCBIb3N0UmVjdCB3aW5kb3dSZWN0KCkgPSAwOworICAgICAgICB2aXJ0dWFsIEhvc3RSZWN0IHZp
ZXdwb3J0UmVjdCgpID0gMDsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSA9IDA7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKaW5kZXggYTg0ZmVjNTljOTVlYjg1MWM0YmEzNzlkZmMxOGEyNzVlM2YyZmRiMC4uNjJj
NGJjNGY0MWViN2QyN2ZhYzRkZjcxZmYzMzMwNjQxYzlhNzAwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcApAQCAtMTQ0NiwxMiArMTQ0NiwxMiBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZUJ5
KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZy
YW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9t
ZSgpLT53aW5kb3dSZWN0KCk7Ci0gICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOworICAgIEZsb2F0
UmVjdCB3aW5kb3dSZWN0ID0gcGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsKKyAgICBGbG9h
dFJlY3QgdXBkYXRlID0gd2luZG93UmVjdDsKICAgICB1cGRhdGUubW92ZSh4LCB5KTsKICAgICAv
LyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3Nlcldy
aXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikKLSAgICBhZGp1c3RXaW5kb3dSZWN0KHNjcmVl
bkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSksIGZyLCB1cGRhdGUpOwot
ICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGZyKTsKKyAgICBhZGp1c3RXaW5kb3dS
ZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSksIHdpbmRv
d1JlY3QsIHVwZGF0ZSk7CisgICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3Qod2luZG93
UmVjdCk7CiB9CiAKIHZvaWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQgeCwgZmxvYXQgeSkgY29u
c3QKQEAgLTE0NjYsMTQgKzE0NjYsMTQgQEAgdm9pZCBET01XaW5kb3c6Om1vdmVUbyhmbG9hdCB4
LCBmbG9hdCB5KSBjb25zdAogICAgIGlmIChtX2ZyYW1lICE9IHBhZ2UtPm1haW5GcmFtZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUoKS0+d2lu
ZG93UmVjdCgpOwotICAgIEZsb2F0UmVjdCBzciA9IHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+
bWFpbkZyYW1lKCktPnZpZXcoKSk7Ci0gICAgZnIuc2V0TG9jYXRpb24oc3IubG9jYXRpb24oKSk7
Ci0gICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwotICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOyAgICAg
CisgICAgRmxvYXRSZWN0IHdpbmRvd1JlY3QgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgp
OworICAgIEZsb2F0UmVjdCBzY3JlZW5SZWN0ID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5t
YWluRnJhbWUoKS0+dmlldygpKTsKKyAgICB3aW5kb3dSZWN0LnNldExvY2F0aW9uKHNjcmVlblJl
Y3QubG9jYXRpb24oKSk7CisgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IHdpbmRvd1JlY3Q7CisgICAg
dXBkYXRlLm1vdmUoeCwgeSk7CiAgICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtz
IGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4pCi0g
ICAgYWRqdXN0V2luZG93UmVjdChzciwgZnIsIHVwZGF0ZSk7Ci0gICAgcGFnZS0+Y2hyb21lKCkt
PnNldFdpbmRvd1JlY3QoZnIpOworICAgIGFkanVzdFdpbmRvd1JlY3Qoc2NyZWVuUmVjdCwgd2lu
ZG93UmVjdCwgdXBkYXRlKTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdCh3aW5k
b3dSZWN0KTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgsIGZsb2F0IHkp
IGNvbnN0CkBAIC0xNDg4LDExICsxNDg4LDExIEBAIHZvaWQgRE9NV2luZG93OjpyZXNpemVCeShm
bG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAgIGlmIChtX2ZyYW1lICE9IHBhZ2UtPm1haW5GcmFt
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUo
KS0+d2luZG93UmVjdCgpOwotICAgIEZsb2F0U2l6ZSBkZXN0ID0gZnIuc2l6ZSgpICsgRmxvYXRT
aXplKHgsIHkpOwotICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7Ci0g
ICAgYWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgp
LT52aWV3KCkpLCBmciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVj
dChmcik7CisgICAgRmxvYXRSZWN0IHdpbmRvd1JlY3QgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93
UmVjdCgpOworICAgIEZsb2F0U2l6ZSBkZXN0aW5hdGlvbiA9IHdpbmRvd1JlY3Quc2l6ZSgpICsg
RmxvYXRTaXplKHgsIHkpOworICAgIEZsb2F0UmVjdCB1cGRhdGUod2luZG93UmVjdC5sb2NhdGlv
bigpLCBkZXN0aW5hdGlvbik7CisgICAgYWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVS
ZWN0KHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpLCB3aW5kb3dSZWN0LCB1cGRhdGUpOworICAg
IHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KHdpbmRvd1JlY3QpOwogfQogCiB2b2lkIERP
TVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKQEAgLTE1
MDcsMTEgKzE1MDcsMTEgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZVRvKGZsb2F0IHdpZHRoLCBm
bG9hdCBoZWlnaHQpIGNvbnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZyYW1lKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLT53
aW5kb3dSZWN0KCk7Ci0gICAgRmxvYXRTaXplIGRlc3QgPSBGbG9hdFNpemUod2lkdGgsIGhlaWdo
dCk7Ci0gICAgRmxvYXRSZWN0IHVwZGF0ZShmci5sb2NhdGlvbigpLCBkZXN0KTsKLSAgICBhZGp1
c3RXaW5kb3dSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXco
KSksIGZyLCB1cGRhdGUpOwotICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGZyKTsK
KyAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7
CisgICAgRmxvYXRTaXplIGRlc3RpbmF0aW9uID0gRmxvYXRTaXplKHdpZHRoLCBoZWlnaHQpOwor
ICAgIEZsb2F0UmVjdCB1cGRhdGUod2luZG93UmVjdC5sb2NhdGlvbigpLCBkZXN0aW5hdGlvbik7
CisgICAgYWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFt
ZSgpLT52aWV3KCkpLCB3aW5kb3dSZWN0LCB1cGRhdGUpOworICAgIHBhZ2UtPmNocm9tZSgpLT5z
ZXRXaW5kb3dSZWN0KHdpbmRvd1JlY3QpOwogfQogCiBpbnQgRE9NV2luZG93OjpzZXRUaW1lb3V0
KFBhc3NPd25QdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0LCBFeGNlcHRp
b25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5k
b3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAppbmRleCA3YzViYjIw
MTIxZGY4NzM0NGJmOWZkMDQzYzIzZDAxODhmODhjMTQ2Li40NmVhZjJhZDZhMjRlZjczM2NiZGY4
MWExN2RhYTMyYzU4MTczMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9I
b3N0V2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oCkBA
IC0yNiwxMiArMjYsMTYgQEAKICNpZm5kZWYgSG9zdFdpbmRvd19oCiAjZGVmaW5lIEhvc3RXaW5k
b3dfaAogCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3Vyc29yOwogCisvLyBBIEhvc3RSZWN0IGlzIGlu
IHRoZSBjb29yZGluYXRlIHN5c3RlbSBuYXRpdmUgdG8gdGhlIGNocm9tZSBvciB3aW5kb3dpbmcg
c3lzdGVtLgordHlwZWRlZiBGbG9hdFJlY3QgSG9zdFJlY3Q7CisKIGNsYXNzIEhvc3RXaW5kb3cg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEhvc3RXaW5kb3cpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRl
eCA3OGMxMmIyYzk2ZmI4NTZjZDljMWMxOWM5ZjM1NjBmMTcxNGY2OWI3Li5hZGQxYTYwNmY4MmJi
ZjYzNDE0NjBjZjFmYzAyYmU1M2NlYmZlMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNr
QmVycnkuY3BwCkBAIC0xNTMsMTIgKzE1MywxMiBAQCB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVy
cnk6OmNocm9tZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeTo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKQordm9pZCBD
aHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JikKIHsK
ICAgICAvLyBUaGUgd2luZG93IGRpbWVuc2lvbnMgYXJlIGZpeGVkIGluIHRoZSBSSU0gcG9ydC4K
IH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OndpbmRvd1JlY3QoKQorSG9z
dFJlY3QgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6d2luZG93UmVjdCgpCiB7CiAgICAgSW50U2l6
ZSB3aW5kb3dTaXplOwogCkBAIC0xNjgsMTAgKzE2OCwxMSBAQCBGbG9hdFJlY3QgQ2hyb21lQ2xp
ZW50QmxhY2tCZXJyeTo6d2luZG93UmVjdCgpCiAgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCB3
aW5kb3dTaXplLndpZHRoKCksIHdpbmRvd1NpemUuaGVpZ2h0KCkpOwogfQogCi1GbG9hdFJlY3Qg
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cGFnZVJlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeTo6dmlld3BvcnRSZWN0KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBGbG9hdFJlY3QoKTsKKyAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhlIHdpbmRvdyBy
ZWN0IGlzIHVzZWQgZm9yIHdpbmRvdyByZXNpemluZy4KKyAgICByZXR1cm4gd2luZG93UmVjdCgp
OwogfQogCiBmbG9hdCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzY2FsZUZhY3RvcigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAppbmRleCBlMTI5ZjQ1ODQyMTk2YmE1ZTY1MWM1ZTBk
ODU2ZjllMmFiYmJlODVhLi42OGU2YjA4YTUzOWQ0M2EyZGE5NDMzNzQxMjE0ZmE0ODdiZTY4Y2Ji
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTM3LDkgKzM3LDkgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogICAgIHZpcnR1YWwg
dm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7IH07Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qgd2lu
ZG93UmVjdCgpOwotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgdmlydHVh
bCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmKTsKKyAgICB2aXJ0dWFsIEhvc3RS
ZWN0IHdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIEhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpOwog
ICAgIHZpcnR1YWwgZmxvYXQgc2NhbGVGYWN0b3IoKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMo
KTsKICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCA5NDk1OTM4MGE2MDZkOWQxMmU3YmY5
NzU1MmFmYzRiYTZjY2Q5YmU2Li5mYzYzMmQ0MmEwNjUwMmFmZTI0MDI0Njc2MWI3NzJlOTZlMjMw
NmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcApAQCAtMTU4LDEzICsxNTgsMTMgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjaHJvbWVE
ZXN0cm95ZWQoKQogICAgIC8vIE91ciBsaWZldGltZSBpcyBib3VuZCB0byB0aGUgV2ViVmlld0lt
cGwuCiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9h
dFJlY3QmIHIpCit2b2lkIENocm9tZUNsaWVudEltcGw6OnNldFdpbmRvd1JlY3QoY29uc3QgSG9z
dFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCi0gICAgICAgIG1f
d2ViVmlldy0+Y2xpZW50KCktPnNldFdpbmRvd1JlY3QoSW50UmVjdChyKSk7CisgICAgICAgIG1f
d2ViVmlldy0+Y2xpZW50KCktPnNldFdpbmRvd1JlY3QoSW50UmVjdChyZWN0KSk7CiB9CiAKLUZs
b2F0UmVjdCBDaHJvbWVDbGllbnRJbXBsOjp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNs
aWVudEltcGw6OndpbmRvd1JlY3QoKQogewogICAgIFdlYlJlY3QgcmVjdDsKICAgICBpZiAobV93
ZWJWaWV3LT5jbGllbnQoKSkKQEAgLTE3NiwxMCArMTc2LDEwIEBAIEZsb2F0UmVjdCBDaHJvbWVD
bGllbnRJbXBsOjp3aW5kb3dSZWN0KCkKICAgICAgICAgcmVjdC53aWR0aCA9IG1fd2ViVmlldy0+
c2l6ZSgpLndpZHRoOwogICAgICAgICByZWN0LmhlaWdodCA9IG1fd2ViVmlldy0+c2l6ZSgpLmhl
aWdodDsKICAgICB9Ci0gICAgcmV0dXJuIEZsb2F0UmVjdChyZWN0KTsKKyAgICByZXR1cm4gSG9z
dFJlY3QocmVjdCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRJbXBsOjpwYWdlUmVjdCgp
CitIb3N0UmVjdCBDaHJvbWVDbGllbnRJbXBsOjp2aWV3cG9ydFJlY3QoKQogewogICAgIC8vIFdl
IGhpZGUgdGhlIGRldGFpbHMgb2YgdGhlIHdpbmRvdydzIGJvcmRlciB0aGlja25lc3MgZnJvbSB0
aGUgd2ViIHBhZ2UgYnkKICAgICAvLyBzaW1wbGUgcmUtdXNpbmcgdGhlIHdpbmRvdyBwb3NpdGlv
biBoZXJlLiAgU28sIGZyb20gdGhlIHBvaW50LW9mLXZpZXcgb2YKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCA3NzA4NGY4MDEwMmY2MjM3YjY3
ODJkYzhiNjBmY2MyY2UyNjY5NTIwLi45ZmYwMzFkYzMwMGY5MWU4MDE4OWYzODA4MzI0YmQ4ZWRl
ZDViYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5oCkBAIC03Myw5ICs3Myw5IEBAIHB1YmxpYzoKIAogICAgIC8vIENocm9tZUNsaWVudCBtZXRo
b2RzOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFs
IFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpG
bG9hdFJlY3QgcGFnZVJlY3QoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25z
dCBXZWJDb3JlOjpIb3N0UmVjdCYpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SG9zdFJlY3Qgd2lu
ZG93UmVjdCgpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SG9zdFJlY3Qgdmlld3BvcnRSZWN0KCk7
CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsK
ICAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRF
ZmwuY3BwCmluZGV4IDUzNzQyNGE5NDNkMDdkMzM1NTE5YTExM2MxMzljMjgwNjEwNjA4MTcuLmZm
M2VkYzNiNTMxYWVkOGI0ZGM3M2ZlODZlODFiOTQ4NDAyMjJlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtMTE2
LDE3ICsxMTYsMTcgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OmZvY3VzZWRGcmFtZUNoYW5nZWQo
RnJhbWUqKQogewogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50RWZsOjp3aW5kb3dSZWN0KCkK
K0hvc3RSZWN0IENocm9tZUNsaWVudEVmbDo6d2luZG93UmVjdCgpCiB7CiAgICAgaW50IHgsIHks
IHdpZHRoLCBoZWlnaHQ7CiAKICAgICBFY29yZV9FdmFzKiBlZSA9IGVjb3JlX2V2YXNfZWNvcmVf
ZXZhc19nZXQoZXZhc19vYmplY3RfZXZhc19nZXQobV92aWV3KSk7CiAgICAgZWNvcmVfZXZhc19y
ZXF1ZXN0X2dlb21ldHJ5X2dldChlZSwgJngsICZ5LCAmd2lkdGgsICZoZWlnaHQpOwogCi0gICAg
cmV0dXJuIEZsb2F0UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICByZXR1cm4gSG9zdFJl
Y3QoeCwgeSwgd2lkdGgsIGhlaWdodCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRX
aW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjpz
ZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JiByZWN0KQogewogICAgIGlmICghZXdrX3ZpZXdf
c2V0dGluZ19lbmFibGVfYXV0b19yZXNpemVfd2luZG93X2dldChtX3ZpZXcpKQogICAgICAgICBy
ZXR1cm47CkBAIC0xMzUsOSArMTM1LDEzIEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRXaW5k
b3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICBlY29yZV9ldmFzX21vdmVfcmVzaXpl
KGVlLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiB9
CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRFZmw6OnBhZ2VSZWN0KCkKK0hvc3RSZWN0IENocm9t
ZUNsaWVudEVmbDo6dmlld3BvcnRSZWN0KCkKIHsKLSAgICByZXR1cm4gZXdrX3ZpZXdfcGFnZV9y
ZWN0X2dldChtX3ZpZXcpOworICAgIC8vIFRoaXMgcmVxdWlyZXMgRnJhbWVWaWV3IHRvIGJlIHRo
ZSBzYW1lIHNpemUgYXMgdGhlIHZpZXdwb3J0LgorICAgIEhvc3RSZWN0IHJlY3QgPSBld2tfdmll
d19wYWdlX3JlY3RfZ2V0KG1fdmlldyk7CisKKyAgICBpZiAocmVjdC5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiB3aW5kb3dSZWN0KCk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpmb2N1
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5oCmluZGV4IDY4ZGE0NWE4YTgxNmYzMDhjNTdlYzE3OTc4NzJmODQzYjUxNmY2NDcuLjU2
MTk3ZjkxZTFkYTNiMWQ2MzhkNmRmZGZmZGE2YmZmNTE1YWEzNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC00OCwxMCAr
NDgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIEZs
b2F0UmVjdCB3aW5kb3dSZWN0KCk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0Jik7CisgICAg
dmlydHVhbCBIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBIb3N0UmVjdCB2aWV3
cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwgdm9p
ZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBmYWE1NWMyMDJk
YzkyY2M0NzcwNzM0ZjIwMzFmYmVkMjEzNGNiNWQzLi4xMjA1NWIzYjczZjYwMGM2ZjZiOTJkMjNh
ZmQ2ZTZjODg4YTcxMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTEzMDUs
NyArMTMwNSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgX2V3a192aWV3
X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfY29tcHV0ZShFd2tfVmllCiAgICAgaW50IGRldmljZURQSSA9
IFdlYkNvcmU6OmdldERQSSgpOwogICAgIHByaXYtPnNldHRpbmdzLmRldmljZVBpeGVsUmF0aW8g
PSBkZXZpY2VEUEkgLyBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdl
dERQSTsKIAotICAgIFdlYkNvcmU6OkludFJlY3QgYXZhaWxhYmxlUmVjdCA9IGVuY2xvc2luZ0lu
dFJlY3QocHJpdi0+cGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5wYWdlUmVjdCgpKTsKKyAgICBX
ZWJDb3JlOjpJbnRSZWN0IGF2YWlsYWJsZVJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYtPnBh
Z2UtPmNocm9tZSgpLT5jbGllbnQoKS0+dmlld3BvcnRSZWN0KCkpOwogICAgIFdlYkNvcmU6Oklu
dFJlY3QgZGV2aWNlUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QocHJpdi0+cGFnZS0+Y2hyb21lKCkt
PmNsaWVudCgpLT53aW5kb3dSZWN0KCkpOwogCiAgICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXMgPSBXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKHByaXYt
PnZpZXdwb3J0QXJndW1lbnRzLCBkZXNrdG9wV2lkdGgsIGRldmljZVJlY3Qud2lkdGgoKSwgZGV2
aWNlUmVjdC5oZWlnaHQoKSwgcHJpdi0+c2V0dGluZ3MuZGV2aWNlUGl4ZWxSYXRpbywgYXZhaWxh
YmxlUmVjdC5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggNjE1MmY1MDgwYmZiZGVjOWNlNDQxYzljMzkx
NTAyYjIwMDE5OTk4NS4uYzIzN2RmNzZmYThhMDc5MzExN2U5ZTNiZmMyZDY3NDQ3NTEyOGFlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmNocm9tZURl
c3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnQ6
OndpbmRvd1JlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KCkKIHsKICAg
ICBHdGtXaWRnZXQqIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQo
bV93ZWJWaWV3KSk7CiAgICAgaWYgKHdpZGdldElzT25zY3JlZW5Ub3BsZXZlbFdpbmRvdyh3aW5k
b3cpKSB7CkBAIC0xMTYsNyArMTE2LDcgQEAgRmxvYXRSZWN0IENocm9tZUNsaWVudDo6d2luZG93
UmVjdCgpCiAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudDo6
c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit2b2lkIENocm9tZUNsaWVudDo6
c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkKIHsKICAgICBJbnRSZWN0IGludHJl
Y3QgPSBJbnRSZWN0KHJlY3QpOwogICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzKiB3ZWJXaW5k
b3dGZWF0dXJlcyA9IHdlYmtpdF93ZWJfdmlld19nZXRfd2luZG93X2ZlYXR1cmVzKG1fd2ViVmll
dyk7CkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIEludFJlY3QgZ2V0V2ViVmlld1JlY3QoV2Vi
S2l0V2ViVmlldyogd2ViVmlldykKICAgICByZXR1cm4gSW50UmVjdChhbGxvY2F0aW9uLngsIGFs
bG9jYXRpb24ueSwgYWxsb2NhdGlvbi53aWR0aCwgYWxsb2NhdGlvbi5oZWlnaHQpOwogfQogCi1G
bG9hdFJlY3QgQ2hyb21lQ2xpZW50OjpwYWdlUmVjdCgpCitIb3N0UmVjdCBDaHJvbWVDbGllbnQ6
OnZpZXdwb3J0UmVjdCgpCiB7CiAgICAgcmV0dXJuIGdldFdlYlZpZXdSZWN0KG1fd2ViVmlldyk7
CiB9CkBAIC02NzksNyArNjc5LDcgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJ
bnRTaXplJiBkZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb24KICAgICAvLyBD
b21wdXRlIHRoZSBzY3JvbGwgcmVwYWludCByZWdpb24uIFdlIGVuc3VyZSB0aGF0IHdlIGFyZSBu
b3Qgc3VidHJhY3RpbmcgYXJlYXMKICAgICAvLyB0aGF0IHdlJ3ZlIHNjcm9sbGVkIGZyb20gb3V0
c2lkZSB0aGUgdmlld3BvcnQgZnJvbSB0aGUgcmVwYWludCByZWdpb24uCiAgICAgSW50UmVjdCBv
blNjcmVlblNjcm9sbFJlY3QgPSByZWN0VG9TY3JvbGw7Ci0gICAgb25TY3JlZW5TY3JvbGxSZWN0
LmludGVyc2VjdChJbnRSZWN0KEludFBvaW50KCksIGVuY2xvc2luZ0ludFJlY3QocGFnZVJlY3Qo
KSkuc2l6ZSgpKSk7CisgICAgb25TY3JlZW5TY3JvbGxSZWN0LmludGVyc2VjdChJbnRSZWN0KElu
dFBvaW50KCksIGVuY2xvc2luZ0ludFJlY3Qodmlld3BvcnRSZWN0KCkpLnNpemUoKSkpOwogICAg
IFJlZ2lvbiBzY3JvbGxSZXBhaW50UmVnaW9uID0gc3VidHJhY3QocmVjdFRvU2Nyb2xsLCB0cmFu
c2xhdGUob25TY3JlZW5TY3JvbGxSZWN0LCBkZWx0YSkpOwogCiAgICAgbV9kaXJ0eVJlZ2lvbi51
bml0ZShzY3JvbGxSZXBhaW50UmVnaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKaW5kZXggNDRjMjExYWQ0NjI4N2VmZmQ3NDMw
NGMwMmRjYzZkYjMwZmFmNjAzYy4uYzgxYjQ0MTBlNzVhMmY4ODM5YWFlZDNiMTY5ZGNlOTBjODMx
YTNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmgKQEAgLTQ4LDEwICs0OCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAotICAgICAgICB2aXJ0dWFsIHZv
aWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKLSAgICAgICAgdmlydHVhbCBGbG9h
dFJlY3Qgd2luZG93UmVjdCgpOwotCi0gICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0
KCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0Jik7
CisgICAgICAgIHZpcnR1YWwgSG9zdFJlY3Qgd2luZG93UmVjdCgpOworICAgICAgICB2aXJ0dWFs
IENyaG9tZVJlY3Qgdmlld3BvcnRSZWN0KCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGZvY3Vz
KCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCmluZGV4IGQxYTgz
Nzg2OTU2YTc3NWI3ZTRlMzkyOTljZjhlODc1ZGM1YmM0NDguLmU4Mjc1YzY5MGE3MzdlNThiYTQ2
ZjVjMzhlMGM1NzcwOGNhNGFhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCkBAIC01MjUsNyArNTI1LDcgQEAgdm9p
ZCB3ZWJraXRWaWV3cG9ydEF0dHJpYnV0ZXNSZWNvbXB1dGUoV2ViS2l0Vmlld3BvcnRBdHRyaWJ1
dGVzKiB2aWV3cG9ydEF0dHJpYnUKICAgICBwcml2LT5kZXZpY2VXaWR0aCA9IHdpbmRvd1JlY3Qu
d2lkdGgoKTsKICAgICBwcml2LT5kZXZpY2VIZWlnaHQgPSB3aW5kb3dSZWN0LmhlaWdodCgpOwog
Ci0gICAgSW50UmVjdCByZWN0KHdlYlZpZXctPnByaXYtPmNvcmVQYWdlLT5jaHJvbWUoKS0+cGFn
ZVJlY3QoKSk7CisgICAgSW50UmVjdCByZWN0KHdlYlZpZXctPnByaXYtPmNvcmVQYWdlLT5jaHJv
bWUoKS0+dmlld3BvcnRSZWN0KCkpOwogICAgIHByaXYtPmF2YWlsYWJsZVdpZHRoID0gcmVjdC53
aWR0aCgpOwogICAgIHByaXYtPmF2YWlsYWJsZUhlaWdodCA9IHJlY3QuaGVpZ2h0KCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
aW5kZXggNzA3MzQ5YzViZDY1MjVhMzU4NzdhZTJhYmYyZTMwZWY4ZDdjZjViMS4uYzFhZjAwOTI0
NjVmY2ExZTQ3YWRkZTdhODcwNjY2NTliOWJiZTRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQwLDEwICs0MCw5IEBA
IHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgT1ZFUlJJ
REU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2lu
ZG93UmVjdCgpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGFn
ZVJlY3QoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBX
ZWJDb3JlOjpIb3N0UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVjdFJl
Y3Qgd2luZG93UmVjdCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVjdFJlY3Qg
dmlld3BvcnRSZWN0KCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGYw
YmNkYTUyOTliYjQzMjgyYWNiNTEwOGVkMzc2NjdkZTU4ZTMzNWQuLjUyMDZmODk1ZjI2YTAwNTRm
YjkzMGI5NGE0OGZhODRkYTU4NDkzZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTE0NiwyMCArMTQ2LDIwIEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpjaHJvbWVEZXN0cm95ZWQoKQogLy8gVGhlc2UgZnVuY3Rpb25z
IHNjYWxlIGJldHdlZW4gd2luZG93IGFuZCBXZWJWaWV3IGNvb3JkaW5hdGVzIGJlY2F1c2UgSmF2
YVNjcmlwdC9ET00gb3BlcmF0aW9ucyAKIC8vIGFzc3VtZSB0aGF0IHRoZSBXZWJWaWV3IGFuZCB0
aGUgd2luZG93IHNoYXJlIHRoZSBzYW1lIGNvb3JkaW5hdGUgc3lzdGVtLgogCi12b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkKIHsKICAg
ICBOU1JlY3Qgd2luZG93UmVjdCA9IHRvRGV2aWNlU3BhY2UocmVjdCwgW21fd2ViVmlldyB3aW5k
b3ddKTsKICAgICBbW21fd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzptX3dl
YlZpZXcgc2V0RnJhbWU6d2luZG93UmVjdF07CiB9CiAKLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGll
bnQ6OndpbmRvd1JlY3QoKQorSG9zdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KCkK
IHsKICAgICBOU1JlY3Qgd2luZG93UmVjdCA9IFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2Fy
ZGVyXSB3ZWJWaWV3RnJhbWU6bV93ZWJWaWV3XTsKICAgICByZXR1cm4gdG9Vc2VyU3BhY2Uod2lu
ZG93UmVjdCwgW21fd2ViVmlldyB3aW5kb3ddKTsKIH0KIAogLy8gRklYTUU6IFdlIG5lZWQgdG8g
YWRkIEFQSSBmb3Igc2V0dGluZyBhbmQgZ2V0dGluZyB0aGlzLgotRmxvYXRSZWN0IFdlYkNocm9t
ZUNsaWVudDo6cGFnZVJlY3QoKQorSG9zdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp2aWV3cG9ydFJl
Y3QoKQogewogICAgIHJldHVybiBbbV93ZWJWaWV3IGZyYW1lXTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggZWFhZWIw
MTJmODZkMGE1MzExMGI1Nzk3NzNmNmQ1YjhjMDVkOTM0Mi4uYjQ5YWY0MTkyZTQ4Nzc0Zjc5OGI2
Y2JiMDFlN2Y0YmI2NGE0ODJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTE0NCw3ICsxNDQsNyBAQCBDaHJvbWVDbGll
bnRRdDo6fkNocm9tZUNsaWVudFF0KCkKICNlbmRpZgogfQogCi12b2lkIENocm9tZUNsaWVudFF0
OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgQ2hyb21lQ2xpZW50
UXQ6OnNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFtX3dl
YlBhZ2UpCiAgICAgICAgIHJldHVybjsKQEAgLTE1NywxMyArMTU3LDIwIEBAIHZvaWQgQ2hyb21l
Q2xpZW50UXQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgIGxpa2Ug
dG9vbGJhcnMvc2Nyb2xsYmFycyBldGMuIEl0IGlzIHVzZWQgYnkgdGhlIHZpZXdwb3J0IG1ldGEg
dGFnIGFzIHdlbGwgYXMKICAgICBieSB0aGUgRE9NIFdpbmRvdyBvYmplY3Q6IG91dGVySGVpZ2h0
KCksIG91dGVyV2lkdGgoKSwgc2NyZWVuWCgpLCBzY3JlZW5ZKCkuCiAqLwotRmxvYXRSZWN0IENo
cm9tZUNsaWVudFF0Ojp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNsaWVudFF0Ojp3aW5k
b3dSZWN0KCkKIHsKICAgICBpZiAoIXBsYXRmb3JtUGFnZUNsaWVudCgpKQogICAgICAgICByZXR1
cm4gRmxvYXRSZWN0KCk7CiAgICAgcmV0dXJuIHBsYXRmb3JtUGFnZUNsaWVudCgpLT53aW5kb3dS
ZWN0KCk7CiB9CiAKK0hvc3RSZWN0IENocm9tZUNsaWVudFF0Ojp2aWV3cG9ydFJlY3QoKQorewor
ICAgIGlmICghbV93ZWJQYWdlKQorICAgICAgICByZXR1cm4gd2luZG93UmVjdCgpOworICAgIHJl
dHVybiBIb3N0UmVjdChRUmVjdEYoUVBvaW50RigwLCAwKSwgbV93ZWJQYWdlLT52aWV3cG9ydFNp
emUoKSkpOworfQorCiBib29sIENocm9tZUNsaWVudFF0OjphbGxvd3NBY2NlbGVyYXRlZENvbXBv
c2l0aW5nKCkgY29uc3QKIHsKICAgICBpZiAoIXBsYXRmb3JtUGFnZUNsaWVudCgpKQpAQCAtMTcx
LDEzICsxNzgsNiBAQCBib29sIENocm9tZUNsaWVudFF0OjphbGxvd3NBY2NlbGVyYXRlZENvbXBv
c2l0aW5nKCkgY29uc3QKICAgICByZXR1cm4gcGxhdGZvcm1QYWdlQ2xpZW50KCktPmFsbG93c0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmcoKTsKIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudFF0Ojpw
YWdlUmVjdCgpCi17Ci0gICAgaWYgKCFtX3dlYlBhZ2UpCi0gICAgICAgIHJldHVybiBGbG9hdFJl
Y3QoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KFFSZWN0RihRUG9pbnRGKDAsIDApLCBtX3dlYlBh
Z2UtPnZpZXdwb3J0U2l6ZSgpKSk7Ci19Ci0KIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmZvY3VzKCkK
IHsKICAgICBpZiAoIW1fd2ViUGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCBmNzM1OWQyZTI4NzRhNzU1MTljMmY1Mzg3Njgx
MzI5ODBhZTRiOWNkLi4zMzdjYWFhYzBkMTVkMWE1YmIxNmE2YmVhYzMyMDRiNzEwMjJmMWVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
CkBAIC02NCwxMCArNjQsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0
cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKLSAg
ICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVj
dCBwYWdlUmVjdCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RS
ZWN0Jik7CisgICAgdmlydHVhbCBIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBI
b3N0UmVjdCB2aWV3cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAg
IHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA2OGJkZGVmMDM0MTg0YjVkNDAx
ZDVjZDBmNzRhNTYyMWY2NGI2OWUyLi4xOGQ4NTAxOWJjYmE1YTc5MTk0MTZlNDQ5OTU3Mjg0ZDU4
ZTRiYThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmNocm9tZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JiByKQogewogICAgIElXZWJVSURl
bGVnYXRlKiB1aURlbGVnYXRlID0gMDsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlE
ZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikKICAgICB9CiB9CiAKLUZs
b2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQorSG9zdFJlY3QgV2ViQ2hyb21l
Q2xpZW50Ojp3aW5kb3dSZWN0KCkKIHsKICAgICBJV2ViVUlEZWxlZ2F0ZSogdWlEZWxlZ2F0ZSA9
IDA7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUp
KSkgewpAQCAtMTA4LDEwICsxMDgsMTAgQEAgRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2lu
ZG93UmVjdCgpCiAgICAgICAgICAgICByZXR1cm4gcmVjdDsKICAgICB9CiAKLSAgICByZXR1cm4g
RmxvYXRSZWN0KCk7CisgICAgcmV0dXJuIEhvc3RSZWN0KCk7CiB9CiAKLUZsb2F0UmVjdCBXZWJD
aHJvbWVDbGllbnQ6OnBhZ2VSZWN0KCkKK0hvc3RSZWN0IFdlYkNocm9tZUNsaWVudDo6dmlld3Bv
cnRSZWN0KCkKIHsKICAgICBSRUNUIHJlY3Q7CiAgICAgbV93ZWJWaWV3LT5mcmFtZVJlY3QoJnJl
Y3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAppbmRleCA5YWVjNzM0NmYwMjU5ZmVmMDg1ZGFhN2E2NzVjZTM4ZGU1YTdkNDM2Li5l
NWMzZjA0YzEzODAzZTEzMjA2YjllNWQ2ZDNjNDNmZTdkMzlmNDBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNDQsMTAg
KzQ0LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQqIHdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBtX3dlYlZpZXc7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
KTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7Ci0gICAgCi0g
ICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGFnZVJlY3QoKTsKKworICAgIHZpcnR1YWwg
dm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6Okhvc3RSZWN0Jik7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpI
b3N0UmVjdCB2aWV3cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAg
IHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCmluZGV4IGRlNmJmNzE5MGZi
MDIzOWI0MDE3OGZhNGRlOGJlZGNmNDA4NWJlNDEuLjFkZGJhNzE5YTg4ZjM3NTNhNzdlYzAyMjIz
NDFiMGM5NmI1Y2Q2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCkBAIC01MCwyMiArNTAsMjIgQEAgdm9p
ZCBDaHJvbWVDbGllbnRXaW5DRTo6Y2hyb21lRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsK
IH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudFdpbkNFOjp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0
IENocm9tZUNsaWVudFdpbkNFOjp3aW5kb3dSZWN0KCkKIHsKICAgICBpZiAoIW1fd2ViVmlldykK
LSAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOworICAgICAgICByZXR1cm4gSG9zdFJlY3QoKTsK
IAogICAgIFJFQ1QgcmVjdDsKICAgICBtX3dlYlZpZXctPmZyYW1lUmVjdCgmcmVjdCk7CiAgICAg
cmV0dXJuIHJlY3Q7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OnNldFdpbmRvd1JlY3Qo
Y29uc3QgRmxvYXRSZWN0JikKK3ZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OnNldFdpbmRvd1JlY3Qo
Y29uc3QgSG9zdFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLUZsb2F0UmVj
dCBDaHJvbWVDbGllbnRXaW5DRTo6cGFnZVJlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50V2lu
Q0U6OnZpZXdwb3J0UmVjdCgpCiB7CiAgICAgcmV0dXJuIHdpbmRvd1JlY3QoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2lu
Q0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2lu
Q0UuaAppbmRleCA5NmNlYTFhNjJhYmQ5ODVmYTEyMjBiY2I3ZjRkNzllYzk2OTg3MTNmLi4yODFl
NTE2OWEwODNiYzY3MGU5Mzk3MDc5NmE0ZTdjMzlkOTQ4N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKKysrIGIvU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCkBAIC0z
OCwxMCArMzgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQo
KTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsK
LSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7CiAKLSAgICB2aXJ0
dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRX
aW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6Okhvc3RSZWN0Jik7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0UmVjdCB2
aWV3cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwg
dm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmNwcAppbmRleCA1ZjExNjdiNTQ3Y2Q2MWE2ZjA1YWMyOGYxN2IzYWNkZTc2
ZDE2ZjRjLi42NGQ5ZmYyYTk5NWNhMTc1ZmU4ZjM1NzU2MzE5NjVkMWQ5NmMxNjI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKQEAg
LTkwLDIxICs5MCwyMSBAQCB2b2lkIENocm9tZUNsaWVudFd4OjpjaHJvbWVEZXN0cm95ZWQoKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V3g6OnNldFdpbmRv
d1JlY3QoY29uc3QgRmxvYXRSZWN0JikKK3ZvaWQgQ2hyb21lQ2xpZW50V3g6OnNldFdpbmRvd1Jl
Y3QoY29uc3QgSG9zdFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLUZsb2F0
UmVjdCBDaHJvbWVDbGllbnRXeDo6d2luZG93UmVjdCgpCitIb3N0UmVjdCBDaHJvbWVDbGllbnRX
eDo6d2luZG93UmVjdCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gRmxv
YXRSZWN0KCk7CisgICAgcmV0dXJuIEhvc3RSZWN0KCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVD
bGllbnRXeDo6cGFnZVJlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50V3g6OnZpZXdwb3J0UmVj
dCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KCk7Cisg
ICAgcmV0dXJuIEhvc3RSZWN0KCk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50V3g6OmZvY3VzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRX
eC5oIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKaW5k
ZXggNTA1NDBmMDk0M2U5ZDY5NjNmMTk1NGMxMWU2MmNjY2E3ZjlkOGE1OC4uZmUxYjk0OTNhY2Ni
ZWNhMzA2ZWZiM2NiOTU0MmM3MzU3NGVhMjU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKKysrIGIvU291cmNlL1dlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKQEAgLTQ1LDEwICs0NSwxMCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogCiAgICAgdmlydHVhbCB2b2lk
KiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5k
b3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHdpbmRvd1Jl
Y3QoKTsKIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgdmlydHVhbCB2
b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmKTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVj
dCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgdmlld3BvcnRSZWN0KCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKTsKICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDNlN2ZlMzI5NGZjNWVjZGRiNjBiMmI4YjI3ODI5
NmUzYWM3MDljMWIuLmZjODZhNDM4NzZkMmY0NjVlZWU5MGU4MmE4NjAyODAxYTdjMTQzZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEwMSwyNCArMTAxLDI4IEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHdpbmRvd0Zy
YW1lKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3Qm
IHdpbmRvd0ZyYW1lKQogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTZXRXaW5kb3dGcmFtZSh3aW5kb3dGcmFtZSkpOwogfQogCi1GbG9hdFJlY3QgV2ViQ2hyb21l
Q2xpZW50Ojp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVj
dCgpCiB7Ci0gICAgRmxvYXRSZWN0IG5ld1dpbmRvd0ZyYW1lOworICAgIEhvc3RSZWN0IG5ld1dp
bmRvd0ZyYW1lOwogCiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCkt
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFdpbmRvd0ZyYW1lKCksIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkdldFdpbmRvd0ZyYW1lOjpSZXBseShuZXdXaW5kb3dGcmFtZSks
IG1fcGFnZS0+cGFnZUlEKCkpKQotICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CisgICAgICAg
IHJldHVybiBIb3N0UmVjdCgpOwogCiAgICAgcmV0dXJuIG5ld1dpbmRvd0ZyYW1lOwogfQogCi1G
bG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwYWdlUmVjdCgpCitIb3N0UmVjdCBXZWJDaHJvbWVD
bGllbnQ6OnZpZXdwb3J0UmVjdCgpCiB7Ci0gICAgcmV0dXJuIEZsb2F0UmVjdChGbG9hdFBvaW50
KCksIG1fcGFnZS0+c2l6ZSgpKTsKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICBy
ZXR1cm4gSG9zdFJlY3QoRmxvYXRQb2ludCgpLCBtX3BhZ2UtPnZpZXdwb3J0U2l6ZSgpKTsKKyNl
bHNlCisgICAgcmV0dXJuIEhvc3RSZWN0KEZsb2F0UG9pbnQoKSwgbV9wYWdlLT5zaXplKCkpOwor
I2VuZGlmCiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1cygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCAxZTYyZjdhYmQ0Y2MyYmI4NTI5ZTUwZjc3MTBmNzJkNjA4ZTAxYzYzLi43MjFh
ZTQ3ODc0NDI0ZDEyNGI1ZWY5MzE5ZjBiNjExZmE1ODgzZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTUxLDEyICs1MSwxMSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGNocm9tZURlc3Ryb3llZCgpIE9WRVJSSURFOwotICAgIAotICAgIHZpcnR1YWwgdm9pZCBz
ZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBPVkVSUklERTsKLSAgICAKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpIE9WRVJSSURFOwotICAgIAor
CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6SG9zdFJlY3Qm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhvc3RSZWN0IHdpbmRvd1JlY3QoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpIE9W
RVJSSURFOworCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHVuZm9jdXMoKSBPVkVSUklERTsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>173062</attachid>
            <date>2012-11-08 10:23:25 -0800</date>
            <delta_ts>2012-11-08 10:23:25 -0800</delta_ts>
            <desc>Test using the moveTo, etc methods</desc>
            <filename>moveBy.html</filename>
            <type>text/html</type>
            <size>2146</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPC9oZWFkPgo8c2NyaXB0PgoKZnVuY3Rpb24g
c2V0V2luZG93UmVjdCh3aW4sIGNsaWVudFJlY3QsIGZyb21XaW5kb3cpIHsKICAgIGlmICh3aW4p
IHsKICAgICAgICB2YXIgY2hyb21lQm9yZGVyID0gKGZyb21XaW5kb3cub3V0ZXJXaWR0aCAtIGZy
b21XaW5kb3cuaW5uZXJXaWR0aCkgLyAyOwogICAgICAgIHZhciBjaHJvbWVUb3AgPSBmcm9tV2lu
ZG93Lm91dGVySGVpZ2h0IC0gZnJvbVdpbmRvdy5pbm5lckhlaWdodCAtIGNocm9tZUJvcmRlcjsK
CiAgICAgICAgdmFyIGRlc2t0b3BMZWZ0ID0gZnJvbVdpbmRvdy5zY3JlZW5MZWZ0IC0gZnJvbVdp
bmRvdy5zY3JlZW4uYXZhaWxMZWZ0OwogICAgICAgIHZhciBkZXNrdG9wVG9wID0gZnJvbVdpbmRv
dy5zY3JlZW5Ub3AgLSBmcm9tV2luZG93LnNjcmVlbi5hdmFpbFRvcDsKCiAgICAgICAgd2luLm1v
dmVUbyhjbGllbnRSZWN0LmxlZnQgKyBkZXNrdG9wTGVmdCArIGNocm9tZUJvcmRlciwgY2xpZW50
UmVjdC50b3AgKyBkZXNrdG9wVG9wICsgY2hyb21lVG9wKTsKICAgICAgICB3aW4ucmVzaXplVG8o
Y2xpZW50UmVjdC53aWR0aCwgY2xpZW50UmVjdC5oZWlnaHQpOwogICAgfQp9CgpmdW5jdGlvbiBj
cmVhdGVFcXVhbChkaXYsIGZyb21XaW5kb3cpIHsKICAgIHdpbiA9IHdpbmRvdy5vcGVuKCJhYm91
dDpibGFuayIsICIiLCAibG9jYXRpb249bm8sIHJlc2l6YWJsZT1ubywgc2Nyb2xsYmFycz1ubywg
c3RhdHVzPW5vLCB0aXRsZWJhcj1ubywgdG9vbGJhcj1ubywgbGVmdD0wLCB0b3A9MCwgd2lkdGg9
MSwgaGVpZ2h0PTEiKTsKICAgIHdpbi5kb2N1bWVudC53cml0ZSgiPHN0eWxlPmJvZHkgeyBtYXJn
aW46IDAgfTwvc3R5bGU+PGJvZHk+PC9ib2R5PiIpOwogICAgd2luLmRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdib2R5JylbMF0uaW5uZXJIVE1MID0gZGl2Lm91dGVySFRNTDsKICAgIHNl
dFdpbmRvd1JlY3Qod2luLCBkaXYuZ2V0Q2xpZW50UmVjdHMoKVswXSwgZnJvbVdpbmRvdyk7CiAg
ICByZXR1cm4gd2luOwp9CgpmdW5jdGlvbiBydW5UZXN0cygpIHsKICAgIHZhciBkaXYxID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpWzFdOwogICAgdmFyIGRpdjIgPSBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JylbMl07CgogICAgdmFyIHdpbmRvdzEgPSBj
cmVhdGVFcXVhbChkaXYxLCB3aW5kb3cpOwogICAgdmFyIHdpbmRvdzIgPSBjcmVhdGVFcXVhbChk
aXYyLCB3aW5kb3cpOwoKICAgIHdpbmRvdy5vbnNjcm9sbCA9IGZ1bmN0aW9uKCkgewogICAgICAg
IHNldFdpbmRvd1JlY3Qod2luZG93MSwgZGl2MS5nZXRDbGllbnRSZWN0cygpWzBdLCB3aW5kb3cp
OwogICAgICAgIHNldFdpbmRvd1JlY3Qod2luZG93MiwgZGl2Mi5nZXRDbGllbnRSZWN0cygpWzBd
LCB3aW5kb3cpOwogICAgfQoKICAgIHN0YXJ0ID0gRGF0ZS5ub3coKTsKICAgIHNpZ24gPSAxOwoK
ICAgIGZ1bmN0aW9uIHN0ZXAodGltZXN0YW1wKSB7CiAgICAgICAgdmFyIHByb2dyZXNzID0gdGlt
ZXN0YW1wIC0gc3RhcnQ7CiAgICAgICAgdmFyIGJlZm9yZSA9IGRvY3VtZW50LmJvZHkuc2Nyb2xs
VG9wOwogICAgICAgIHdpbmRvdy5zY3JvbGxCeSgwLCAxMCAqIHNpZ24pOwogICAgICAgIGlmIChi
ZWZvcmUgPT0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApIHsKICAgICAgICAgICAgc2lnbiA9IHNp
Z24gKiAtMTsKICAgICAgICB9CgogICAgICAgIHdlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShz
dGVwKTsKICAgIH0KICAgIHNjcm9sbFRvKDAsIDApOwogICAgd2Via2l0UmVxdWVzdEFuaW1hdGlv
bkZyYW1lKHN0ZXApOwp9Cjwvc2NyaXB0Pgo8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgogICAg
PGRpdiBzdHlsZT0iaGVpZ2h0OiAxMDAwcHgiPjwvZGl2PgogICAgPGRpdiBzdHlsZT0iYmFja2dy
b3VuZC1jb2xvcjogcmVkOyB3aWR0aDogNDAwcHg7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KICAg
IDxicj4KICAgIDxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7IHdpZHRoOiAyMDBw
eDsgaGVpZ2h0OiAyMDBweDsgZmxvYXQ6IHJpZ2h0Ij48L2Rpdj4KICAgIDxkaXYgc3R5bGU9Imhl
aWdodDogMTAwMHB4Ij48L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173320</attachid>
            <date>2012-11-09 09:11:42 -0800</date>
            <delta_ts>2012-11-12 03:35:23 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-101453-20121109180947.patch</filename>
            <type>text/plain</type>
            <size>56778</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjk1NjFiOTFiZTkzMTBk
YTZkMDVjZDcxMWY2NTA5NTVkNmY0OTBjNC4uNzcxZTE0YjFjYTZjODE0ZGIyMGQyNmNmZjAxZWMw
ZjUxNGVhMmFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTA4ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5l
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUg
cGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5cGUu
IAorICAgICAgICBVcGRhdGUgYWxsIHVzZSB0aGVyZSBvZi4KKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Om1vdmVXaW5kb3dCeSk6CisgICAgICAgICogbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6
OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6Ondp
bmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnZpZXdwb3J0
UmVjdCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lOjpzZXRXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZTo6d2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnZpZXdwb3J0UmVjdCk6
CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKENocm9tZSk6CisgICAgICAgICog
cGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ2hyb21l
Q2xpZW50KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6Om1vdmVCeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlc2l6ZUJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6cmVzaXplVG8pOgorICAgICAgICAqIHBsYXRmb3JtL0hvc3RXaW5k
b3cuaDoKKyAgICAgICAgKFdlYkNvcmUpOiBBZGQgbmV3IHR5cGVkZWYgZnJvbSBGbG9hdFJlY3Qg
dG8gSG9zdFJlY3QKKwogMjAxMi0xMS0wOSAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0
Lm9yZz4KIAogICAgICAgICBGaXggdW5kZWZpbmVkIHZhcmlhYmxlIGluIFdlZWsgY29uc3RydWN0
b3IgZm9yIGNhbGVuZGFyIHBpY2tlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXgg
YjFhYmVmYjEzNjdjZDQ3MThlYzMxODY5NDVmZTU3NWQ5MTJjNjYwMC4uMjE1ZWFlNjM0NjcyNDcw
ZGEyMGYzNzI4ODU3YzkwYWUzNGI3ODVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTEtMDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2Vu
ICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSB0aGUgd2luZG93UmVjdCwg
cGFnZVJlY3QgZXRjIHRvIHNvbWV0aGluZyBtb3JlIHNhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBtZXRob2RzL3R5cGVzIGFuZCByZXR1
cm4gd2luZG93UmVjdCBpbnN0ZWFkIG9mIGFuCisgICAgICAgIGVtcHR5IEhvc3RSZWN0IGluIHZp
ZXdwb3J0UmVjdC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNr
QmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6c2V0
V2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojp3
aW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OnZp
ZXdwb3J0UmVjdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeS5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50QmxhY2tCZXJyeSk6CisKIDIwMTItMTEtMDgg
IENocmlzIEd1YW4gIDxjaHJpcy5ndWFuQHRvcmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBb
QmxhY2tCZXJyeV0gbmVlZCB0byBjYWxsIGNsb3NlUG9wdXAgYXQgc2V0VmFsdWVBbmRDbG9zZVBv
cHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGQ1ODZmYmE0MzIyMzkyZGVjYmI3NTNj
YzRkYzBiNGEwMDE0ODFhZGIuLjM1ZTFjMDRjOWYxNmMzZGNlNzYwYmUxNWVhMDc2NTg2NjIyZTdk
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTEt
MDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJlbmFtZSB0aGUgd2luZG93UmVjdCwgcGFnZVJlY3QgZXRjIHRvIHNvbWV0aGluZyBt
b3JlIHNhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbmFtZSB0aGUgbWV0aG9kcyBhbmQgdHlwZXMuCisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNldFdpbmRv
d1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjp3aW5kb3dSZWN0KToK
KyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6dmlld3BvcnRSZWN0KToKKyAgICAg
ICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50SW1wbCk6
CisKIDIwMTItMTEtMDggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzQwMTAuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cKaW5kZXggZjYxMTdkYTAzZGRiNTI0NmYwNjM1YmQ2ZGFjNjM0ZjI0OTFlYTg4Ny4uNmE0ZjIw
NTliNjA5MmU4NmE4Y2YwNjMyM2NmMzJiYWY2MTFmMTg2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2IEBACisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtl
bm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VS
ZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgdGhlIG1ldGhvZHMvdHlwZXMuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lQ2xpZW50RWZsOjp3aW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudEVmbDo6c2V0V2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGll
bnRFZmw6OnZpZXdwb3J0UmVjdCk6CisKKyAgICAgICAgICAgIFdoZW4gbm8gcGFnZSBpcyBhdmFp
bGFibGUsIHJldHVybiBhIGJldHRlcgorICAgICAgICAgICAgYXBwcm94aW1hdGlvbiB0aGFuIGFu
IGVtcHR5IHJlY3QgYXMgdGhpcyBpcyBjb21wYXJlZAorICAgICAgICAgICAgdG8gdGhlIHdpbmRv
d1JlY3QgYnkgRnJhbWVMb2FkZXIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEVmbCk6CisgICAgICAgICogZXdrL2V3
a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld192aWV3cG9ydF9hdHRyaWJ1dGVzX2NvbXB1
dGUpOgorCiAyMDEyLTExLTA3ICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkIEVGTCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZWMx
ZDBlZmMxYWVmNzMzZmQ3YWExNTEyNmQ0OTY3YTQ2NzFjMDg5Ni4uYjNmZDhhNmM0MjhkNWI2MTRi
NTczNTRjZjQ3ZjE0NmQxY2VmOGU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0
Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0byBz
b21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWUgcGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9zdFJl
Y3QgYXMgcmV0dXJuIHR5cGUuIAorICAgICAgICBVcGRhdGUgYWxsIHVzZSB0aGVyZSBvZi4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6d2luZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudDo6c2V0V2luZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6
dmlld3BvcnRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY3JvbGwpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorICAgICAgICAoQ2hy
b21lQ2xpZW50KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNw
cDoKKyAgICAgICAgKHdlYmtpdFZpZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZSk6CisKIDIwMTIt
MTEtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IGxheWVyIGJvcmRlcnMgdG8gY2xlYW5pbmcgYXBwZWFyIGFuZCBkaXNhcHBlYXIgb24gc3dp
dGNoaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNjM5ZDEwMjlmODEyMzBlMzU5ZTM3N2Q1ODE1ZDIy
YzhlMGNkNGUzNC4uNDkwMDI0NDQ0Yzg1YjVmZTVjYjFhYzZiOGNhZGZlNTUxMTUxNDNhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRl
IENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhl
IHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBzYW5lCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgcGFnZVJlY3Qg
dG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5cGUuIAorICAgICAg
ICBVcGRhdGUgYWxsIHVzZSB0aGVyZSBvZi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50KToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0
KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6dmlld3BvcnRSZWN0KToKKwogMjAxMi0xMS0w
OCAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgQWx3YXlz
IHVzZSBhIHRleHR1cmVkIHdpbmRvdyBmb3IgdGhlIFdlYiBJbnNwZWN0b3IuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CmluZGV4IDUyZmJjNzIzMTZjYjliOWIxNDQ4ODQ0ZmMyMDA5YjJhZDAyYTkwMzIuLmY3NzBhMWRh
NDZiYzBiZmUwZWE1NWM4YTUxZTU0MGZhZjQwYWRmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjYgQEAKKzIwMTItMTEtMDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSB0aGUgd2luZG93UmVjdCwgcGFnZVJlY3Qg
ZXRjIHRvIHNvbWV0aGluZyBtb3JlIHNhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbmFtZSBwYWdlUmVjdCB0byB2aWV3cG9ydFJlY3QgYW5kIHVz
ZSBIb3N0UmVjdCBhcyByZXR1cm4gdHlwZS4gCisgICAgICAgIFVwZGF0ZSBhbGwgdXNlIHRoZXJl
IG9mLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50UXQ6OnZpZXdwb3J0UmVjdCk6CisKKyAgICAgICAgICAgIFdoZW4gbm8gbV93
ZWJQYWdlIGlzIGF2YWlsYWJsZSwgcmV0dXJuIGEgYmV0dGVyCisgICAgICAgICAgICBhcHByb3hp
bWF0aW9uIHRoYW4gYW4gZW1wdHkgcmVjdCBhcyB0aGlzIGlzIGNvbXBhcmVkCisgICAgICAgICAg
ICB0byB0aGUgd2luZG93UmVjdCBieSBGcmFtZUxvYWRlci4KKworICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAgKENo
cm9tZUNsaWVudFF0KToKKwogMjAxMi0xMS0wNyAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxs
YW4uamVuc2VuQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdIEFQSSB0ZXN0IHRzdF9xd2ViaW5z
cGVjdG9yIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAyNjM1MTc0M2JkODY1ODIwYTE4NmZj
MzkwZGZiM2MyY2QwNTQyMWY4Li42MDQyMGQ5ZGU3OWMxMDNlMWU5YjhiODIyMDU3NGYyODNkMDg3
MGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTEtMDggIEtlbm5l
dGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJl
bmFtZSB0aGUgd2luZG93UmVjdCwgcGFnZVJlY3QgZXRjIHRvIHNvbWV0aGluZyBtb3JlIHNhbmUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBw
YWdlUmVjdCB0byB2aWV3cG9ydFJlY3QgYW5kIHVzZSBIb3N0UmVjdCBhcyByZXR1cm4gdHlwZS4K
KyAgICAgICAgVXBkYXRlIGFsbCB1c2UgdGhlcmUgb2YuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzZXRX
aW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVjdCk6CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OnZpZXdwb3J0UmVjdCk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQpOgorCiAy
MDEyLTExLTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCBsYXllciBib3JkZXJzIHRvIGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9u
IHN3aXRjaGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCAyZmEzZjEzMmRlMTQzMDQyNmJhMDIw
YTBiM2MyZWZlMTQ3MzEzODI4Li5lNmI0YmY1ODZlZjY2YTE2NTYwOTZjMDZjMWIyYTc3MzdhOGM5
YzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTA4ICBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZW5hbWUgdGhlIHdpbmRvd1JlY3QsIHBhZ2VSZWN0IGV0YyB0byBzb21ldGhpbmcgbW9yZSBz
YW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0
NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5h
bWUgcGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5
cGUuIAorICAgICAgICBVcGRhdGUgYWxsIHVzZSB0aGVyZSBvZi4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50V2luQ0U6OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRX
aW5DRTo6c2V0V2luZG93UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNF
Ojp2aWV3cG9ydFJlY3QpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdp
bkNFLmg6CisgICAgICAgIChDaHJvbWVDbGllbnRXaW5DRSk6CisKIDIwMTItMTAtMjQgIEJyYWR5
IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHN0cmF0ZWd5IGZv
ciBsb2FkZXIgY3VzdG9taXphdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggZTllYWYxMzE5ZTAzMjdl
ZDljZWM5ZmI0OTIwOTMzYjdhMjI1NGNjNy4uYjU4MDg0Mzg3M2MxYTAwYzFkOTJjMWJiZDY0ZmFj
Yzg5MWE2NTAwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMS0wOCAg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmVuYW1lIHRoZSB3aW5kb3dSZWN0LCBwYWdlUmVjdCBldGMgdG8gc29tZXRoaW5nIG1vcmUg
c2FuZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAx
NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVu
YW1lIHBhZ2VSZWN0IHRvIHZpZXdwb3J0UmVjdCBhbmQgdXNlIEhvc3RSZWN0IGFzIHJldHVybiB0
eXBlLiAKKyAgICAgICAgVXBkYXRlIGFsbCB1c2UgdGhlcmUgb2YuCisKKyAgICAgICAgKiBXZWJL
aXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNs
aWVudFd4OjpzZXRXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4
Ojp3aW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4Ojp2aWV3cG9y
dFJlY3QpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKyAgICAg
ICAgKENocm9tZUNsaWVudFd4KToKKwogMjAxMi0xMC0yMiAgSm9jZWx5biBUdXJjb3R0ZSAgPGpv
Y2VseW4udHVyY290dGVAZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4ICJBU1NFUlRJT04g
RkFJTEVEOiAhZG9jdW1lbnQtPmluUGFnZUNhY2hlKCkiIHdoZW4gbG9hZGluZyBhIHBhZ2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCBkZGY1MTFlMzE4N2Q1MzY2M2MzODYwYTA3MGY5ZTVhMzdkZDc2ZWFlLi5hZGRi
MzU1MjVhNzRkMmJlYTIzNGIwMTQ2M2Q2YjFiYjBjYzBmNjZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTItMTEtMDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbmFtZSB0aGUgd2luZG93UmVjdCwgcGFnZVJlY3Qg
ZXRjIHRvIHNvbWV0aGluZyBtb3JlIHNhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbmFtZSB0aGUgbWV0aG9kcy90eXBlIGFuZCBtYWtlIHZpZXdw
b3J0UmVjdCByZXR1cm4gYQorICAgICAgICBwcm9wZXIgdmFsdWUgd2hlbiB0aGUgdGlsZWQgYmFj
a2luZyBzdG9yZSBpcyB1c2VkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OndpbmRv
d1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnZpZXdwb3J0UmVjdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoK
KyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisKIDIwMTItMTEtMDkgIEppbndvbyBTb25nICA8
amlud29vNy5zb25nQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gTWFrZSBjbGFz
c2VzIGZvciBjbGllbnQgdXNlIFdlYkNvbnRleHQgaW5zdGVhZCBvZiBXS0NvbnRleHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmNwcAppbmRleCBhYmM5MTY4Yzc1ZDMwZGMyMWQ1ODViMmI5ZDJiYTgxNTliNTE0M2Y3
Li4wN2QyZmM1NDIwZGU5YjQxNzc3NTIwZjY0ZjcwYzQ1NzZjNDA1NjNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWwuY3BwCkBAIC0yMDQsOSArMjA0LDkgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCiAKIHZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6bW92ZVdpbmRvd0J5KGZsb2F0IHgsIGZsb2F0IHkpCiB7Ci0gICAg
RmxvYXRSZWN0IGZyYW1lUmVjdCA9IG1fZnJvbnRlbmRQYWdlLT5jaHJvbWUoKS0+d2luZG93UmVj
dCgpOwotICAgIGZyYW1lUmVjdC5tb3ZlKHgsIHkpOwotICAgIG1fZnJvbnRlbmRQYWdlLT5jaHJv
bWUoKS0+c2V0V2luZG93UmVjdChmcmFtZVJlY3QpOworICAgIEhvc3RSZWN0IHdpbmRvd1JlY3Qg
PSBtX2Zyb250ZW5kUGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsKKyAgICB3aW5kb3dSZWN0
Lm1vdmUoeCwgeSk7CisgICAgbV9mcm9udGVuZFBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0
KHdpbmRvd1JlY3QpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNl
dEF0dGFjaGVkV2luZG93KGJvb2wgYXR0YWNoZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKaW5kZXggNjdlODdhNzkyNjU4YmNhYmFiZDM0ODNkMmQ1NDMzNDMzMjE3OTBlNC4uZjM5
MDY3ODA4YmIyMDFkNzA3ZmUwZjE0ZjAxNTNkYWJmZTdkMzk5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaApAQCAtNzEsMTAgKzcxLDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgY2hyb21lRGVzdHJveWVkKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQqIHdlYlZpZXco
KSBjb25zdCB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29u
c3QgRmxvYXRSZWN0JikgeyB9Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgpIHsg
cmV0dXJuIEZsb2F0UmVjdCgpOyB9CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgp
IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3QgbWFwRnJvbUhv
c3RUb0NTU1JlY3QoY29uc3QgSG9zdFJlY3QmKSBjb25zdCB7IHJldHVybiBGbG9hdFJlY3QoKTsg
fQorICAgIHZpcnR1YWwgSG9zdFJlY3QgbWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRS
ZWN0JikgY29uc3QgeyByZXR1cm4gSG9zdFJlY3QoKTsgfQorCisgICAgdmlydHVhbCB2b2lkIHNl
dFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmKSB7IH0KKyAgICB2aXJ0dWFsIEhvc3RSZWN0IHdp
bmRvd1JlY3QoKSB7IHJldHVybiBIb3N0UmVjdCgpOyB9CisgICAgdmlydHVhbCBIb3N0UmVjdCB2
aWV3cG9ydFJlY3QoKSB7IHJldHVybiBIb3N0UmVjdCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
Zm9jdXMoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggY2M1Njk2Y2RjYzc2ZjYxN2EyYWExOWIyMjZiZjUw
NjNiYzM1MjkwNS4uMzU0YzczMDA1OGViMDc5ZWQ1NGMzMGEzZWFkMWM5NmNmYTM0MGU0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zMzE0LDI5ICszMzE0LDM4IEBA
IEZyYW1lKiBjcmVhdGVXaW5kb3coRnJhbWUqIG9wZW5lckZyYW1lLCBGcmFtZSogbG9va3VwRnJh
bWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlCiAgICAgaWYgKHJlcXVlc3QuZnJhbWVOYW1lKCkgIT0g
Il9ibGFuayIpCiAgICAgICAgIGZyYW1lLT50cmVlKCktPnNldE5hbWUocmVxdWVzdC5mcmFtZU5h
bWUoKSk7CiAKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0VG9vbGJhcnNWaXNpYmxlKGZlYXR1cmVz
LnRvb2xCYXJWaXNpYmxlIHx8IGZlYXR1cmVzLmxvY2F0aW9uQmFyVmlzaWJsZSk7Ci0gICAgcGFn
ZS0+Y2hyb21lKCktPnNldFN0YXR1c2JhclZpc2libGUoZmVhdHVyZXMuc3RhdHVzQmFyVmlzaWJs
ZSk7Ci0gICAgcGFnZS0+Y2hyb21lKCktPnNldFNjcm9sbGJhcnNWaXNpYmxlKGZlYXR1cmVzLnNj
cm9sbGJhcnNWaXNpYmxlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0TWVudWJhclZpc2libGUo
ZmVhdHVyZXMubWVudUJhclZpc2libGUpOwotICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRSZXNpemFi
bGUoZmVhdHVyZXMucmVzaXphYmxlKTsKKyAgICAvLyBBcHBseSBmZWF0dXJlcy4KKworICAgIENo
cm9tZSogY2hyb21lID0gcGFnZS0+Y2hyb21lKCk7CisKKyAgICBjaHJvbWUtPnNldFRvb2xiYXJz
VmlzaWJsZShmZWF0dXJlcy50b29sQmFyVmlzaWJsZSB8fCBmZWF0dXJlcy5sb2NhdGlvbkJhclZp
c2libGUpOworICAgIGNocm9tZS0+c2V0U3RhdHVzYmFyVmlzaWJsZShmZWF0dXJlcy5zdGF0dXNC
YXJWaXNpYmxlKTsKKyAgICBjaHJvbWUtPnNldFNjcm9sbGJhcnNWaXNpYmxlKGZlYXR1cmVzLnNj
cm9sbGJhcnNWaXNpYmxlKTsKKyAgICBjaHJvbWUtPnNldE1lbnViYXJWaXNpYmxlKGZlYXR1cmVz
Lm1lbnVCYXJWaXNpYmxlKTsKKyAgICBjaHJvbWUtPnNldFJlc2l6YWJsZShmZWF0dXJlcy5yZXNp
emFibGUpOwogCiAgICAgLy8gJ3gnIGFuZCAneScgc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgdGhl
IHdpbmRvdywgd2hpbGUgJ3dpZHRoJyBhbmQgJ2hlaWdodCcKLSAgICAvLyBzcGVjaWZ5IHRoZSBz
aXplIG9mIHRoZSBwYWdlLiBXZSBjYW4gb25seSByZXNpemUgdGhlIHdpbmRvdywgc28KLSAgICAv
LyBhZGp1c3QgZm9yIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHdpbmRvdyBzaXplIGFuZCB0
aGUgcGFnZSBzaXplLgorICAgIC8vIHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIHBhZ2UuIFdlIGNh
biBvbmx5IHJlc2l6ZSB0aGUgaG9zdCB3aW5kb3csIHNvCisgICAgLy8gYWRqdXN0IGZvciB0aGUg
ZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB3aW5kb3cgc2l6ZSBhbmQgdGhlIHZpZXdwb3J0IHNpemUu
CisKKyAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IGNocm9tZS0+bWFwRnJvbUhvc3RUb0NTU1Jl
Y3QoY2hyb21lLT53aW5kb3dSZWN0KCkpOworICAgIEZsb2F0UmVjdCB2aWV3cG9ydFJlY3QgPSBj
aHJvbWUtPm1hcEZyb21Ib3N0VG9DU1NSZWN0KGNocm9tZS0+dmlld3BvcnRSZWN0KCkpOwogCi0g
ICAgRmxvYXRSZWN0IHdpbmRvd1JlY3QgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOwot
ICAgIEZsb2F0U2l6ZSBwYWdlU2l6ZSA9IHBhZ2UtPmNocm9tZSgpLT5wYWdlUmVjdCgpLnNpemUo
KTsKICAgICBpZiAoZmVhdHVyZXMueFNldCkKICAgICAgICAgd2luZG93UmVjdC5zZXRYKGZlYXR1
cmVzLngpOwogICAgIGlmIChmZWF0dXJlcy55U2V0KQogICAgICAgICB3aW5kb3dSZWN0LnNldFko
ZmVhdHVyZXMueSk7CiAgICAgaWYgKGZlYXR1cmVzLndpZHRoU2V0KQotICAgICAgICB3aW5kb3dS
ZWN0LnNldFdpZHRoKGZlYXR1cmVzLndpZHRoICsgKHdpbmRvd1JlY3Qud2lkdGgoKSAtIHBhZ2VT
aXplLndpZHRoKCkpKTsKKyAgICAgICAgd2luZG93UmVjdC5zZXRXaWR0aChmZWF0dXJlcy53aWR0
aCArICh3aW5kb3dSZWN0LndpZHRoKCkgLSB2aWV3cG9ydFJlY3Qud2lkdGgoKSkpOwogICAgIGlm
IChmZWF0dXJlcy5oZWlnaHRTZXQpCi0gICAgICAgIHdpbmRvd1JlY3Quc2V0SGVpZ2h0KGZlYXR1
cmVzLmhlaWdodCArICh3aW5kb3dSZWN0LmhlaWdodCgpIC0gcGFnZVNpemUuaGVpZ2h0KCkpKTsK
LSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdCh3aW5kb3dSZWN0KTsKKyAgICAgICAg
d2luZG93UmVjdC5zZXRIZWlnaHQoZmVhdHVyZXMuaGVpZ2h0ICsgKHdpbmRvd1JlY3QuaGVpZ2h0
KCkgLSB2aWV3cG9ydFJlY3QuaGVpZ2h0KCkpKTsKKworICAgIEZsb2F0UmVjdCBob3N0Qm91bmRz
ID0gY2hyb21lLT5tYXBGcm9tSG9zdFRvQ1NTUmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2Ut
Pm1haW5GcmFtZSgpLT52aWV3KCkpKTsKKyAgICBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3Qo
cGFnZSwgaG9zdEJvdW5kcywgd2luZG93UmVjdCwgd2luZG93UmVjdCk7CiAKLSAgICBwYWdlLT5j
aHJvbWUoKS0+c2hvdygpOworICAgIEhvc3RSZWN0IG5ld1dpbmRvd1JlY3QgPSBjaHJvbWUtPm1h
cEZyb21DU1NUb0hvc3RSZWN0KHdpbmRvd1JlY3QpOworICAgIGNocm9tZS0+c2V0V2luZG93UmVj
dChuZXdXaW5kb3dSZWN0KTsKKyAgICBjaHJvbWUtPnNob3coKTsKIAogICAgIGNyZWF0ZWQgPSB0
cnVlOwogICAgIHJldHVybiBmcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCBmY2UwYzEx
NjY4ZWJiM2VjMzVlN2I5ZjVmMThlMzg1MjkwOTFjMWU3Li4wODc5M2FiNWU1YTA4MDhlZDJlMDlk
OGNhZmZiMjhhNmU1YzJiNGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0xNDAsMTkgKzE0
MCwyOSBAQCB2b2lkIENocm9tZTo6c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdAogICAg
IG1fY2xpZW50LT5zY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpOwogfQogCi12b2lkIENocm9tZTo6
c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0CitGbG9hdFJlY3QgQ2hy
b21lOjptYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9jbGllbnQtPm1hcEZyb21Ib3N0VG9DU1NSZWN0KHJlY3QpOworfQorCitI
b3N0UmVjdCBDaHJvbWU6Om1hcEZyb21DU1NUb0hvc3RSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPm1hcEZyb21DU1NUb0hvc3RSZWN0KHJl
Y3QpOworfQorCit2b2lkIENocm9tZTo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYgcmVj
dCkgY29uc3QKIHsKICAgICBtX2NsaWVudC0+c2V0V2luZG93UmVjdChyZWN0KTsKIH0KIAotRmxv
YXRSZWN0IENocm9tZTo6d2luZG93UmVjdCgpIGNvbnN0CitIb3N0UmVjdCBDaHJvbWU6OndpbmRv
d1JlY3QoKSBjb25zdAogewogICAgIHJldHVybiBtX2NsaWVudC0+d2luZG93UmVjdCgpOwogfQog
Ci1GbG9hdFJlY3QgQ2hyb21lOjpwYWdlUmVjdCgpIGNvbnN0CitIb3N0UmVjdCBDaHJvbWU6OnZp
ZXdwb3J0UmVjdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fY2xpZW50LT5wYWdlUmVjdCgpOwor
ICAgIHJldHVybiBtX2NsaWVudC0+dmlld3BvcnRSZWN0KCk7CiB9CiAKIHZvaWQgQ2hyb21lOjpm
b2N1cygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA1NjM4ZjNhNDhhZGQ4OTU5ZTMwYWVi
MGQyMDVhZDNlNzBiOGNhYzE5Li5lODAyNWVkZjk5MGE2ZTMxZGFjN2M2Mjk3YmEyM2NiMjE4MjBj
Y2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTkyLDExICs5MiwxMyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IElu
dFNpemUmKSBjb25zdDsKICAgICAgICAgdm9pZCBsYXlvdXRVcGRhdGVkKEZyYW1lKikgY29uc3Q7
CiAKLSAgICAgICAgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0Owot
ICAgICAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCgpIGNvbnN0OworICAgICAgICBGbG9hdFJlY3Qg
bWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgSG9zdFJlY3QmKSBjb25zdDsKKyAgICAgICAgSG9z
dFJlY3QgbWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CisKKyAg
ICAgICAgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JikgY29uc3Q7CisgICAgICAg
IEhvc3RSZWN0IHdpbmRvd1JlY3QoKSBjb25zdDsKKyAgICAgICAgSG9zdFJlY3Qgdmlld3BvcnRS
ZWN0KCkgY29uc3Q7CiAKLSAgICAgICAgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgY29uc3Q7Ci0gICAg
ICAgIAogICAgICAgICB2b2lkIGZvY3VzKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgdW5mb2N1cygp
IGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAzNWMzMjMyOGMzNDNh
MGY1NjkzMjk2ZDcwNTcxMTc3MzA4YmFhYjI5Li5lMWEwMzQ5Y2NlNmUxMTMwNTJiODZlMTRlODgy
ZGViMDJiMDI5NjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTkzLDEyICs5
MywxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ2hyb21lQ2xpZW50IHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSA9IDA7Ci0g
ICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJl
Y3QmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHdpbmRvd1JlY3QoKSA9IDA7Ci0g
ICAgICAgIAotICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpID0gMDsKLSAgICAg
ICAgCisKKyAgICAgICAgLy8gTWV0aG9kcyBmb3IgbWFwcGluZyBiZXR3ZWVuIGhvc3QgVUkgdW5p
dHMgYW5kIENTUyB1bml0cywgd2hpY2ggbWF5IGRpZmZlciBpbiBwaXhlbCBkZW5zaXR5IGFuZCBv
cmlnaW4uCisgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9DU1NSZWN0KGNv
bnN0IEhvc3RSZWN0JikgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIEhvc3RSZWN0IG1hcEZy
b21DU1NUb0hvc3RSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0ID0gMDsKKworICAgICAgICB2
aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYpID0gMDsKKyAgICAgICAg
dmlydHVhbCBIb3N0UmVjdCB3aW5kb3dSZWN0KCkgPSAwOworICAgICAgICB2aXJ0dWFsIEhvc3RS
ZWN0IHZpZXdwb3J0UmVjdCgpID0gMDsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSA9
IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCkgPSAwOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggYTg0ZmVjNTljOTVlYjg1MWM0YmEzNzlkZmMxOGEyNzVlM2YyZmRi
MC4uMDBkMDAyNzI5Y2M4YTQxNmEwNTY0NjFhNDE4YTUyNWE1NDM5MjFhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcApAQCAtMzE2LDE4ICszMTYsMTggQEAgdm9pZCBET01XaW5kb3c6OmRp
c3BhdGNoQWxsUGVuZGluZ1VubG9hZEV2ZW50cygpCiAvLyAgICBzY3JlZW4gcmVjdC4KIC8vIDUp
IFRyYW5zbGF0ZSB0aGUgd2luZG93IHJlY3QgY29vcmRpbmF0ZXMgdG8gYmUgd2l0aGluIHRoZSBj
b29yZGluYXRlIHNwYWNlIG9mCiAvLyAgICB0aGUgc2NyZWVuIHJlY3QuCi12b2lkIERPTVdpbmRv
dzo6YWRqdXN0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHNjcmVlbiwgRmxvYXRSZWN0JiB3
aW5kb3csIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZXMpIGNvbnN0Cit2b2lkIERPTVdp
bmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdlKiBwYWdlLCBjb25zdCBGbG9hdFJlY3QmIHNjcmVl
bkJvdW5kcywgRmxvYXRSZWN0JiB3aW5kb3csIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5n
ZXMpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHdlJ3JlIGluIGEgdmFsaWQgc3RhdGUgYmVmb3JlIGFk
anVzdGluZyBkaW1lbnNpb25zLgotICAgIEFTU0VSVChpc2Zpbml0ZShzY3JlZW4ueCgpKSk7Ci0g
ICAgQVNTRVJUKGlzZmluaXRlKHNjcmVlbi55KCkpKTsKLSAgICBBU1NFUlQoaXNmaW5pdGUoc2Ny
ZWVuLndpZHRoKCkpKTsKLSAgICBBU1NFUlQoaXNmaW5pdGUoc2NyZWVuLmhlaWdodCgpKSk7Cisg
ICAgQVNTRVJUKGlzZmluaXRlKHNjcmVlbkJvdW5kcy54KCkpKTsKKyAgICBBU1NFUlQoaXNmaW5p
dGUoc2NyZWVuQm91bmRzLnkoKSkpOworICAgIEFTU0VSVChpc2Zpbml0ZShzY3JlZW5Cb3VuZHMu
d2lkdGgoKSkpOworICAgIEFTU0VSVChpc2Zpbml0ZShzY3JlZW5Cb3VuZHMuaGVpZ2h0KCkpKTsK
ICAgICBBU1NFUlQoaXNmaW5pdGUod2luZG93LngoKSkpOwogICAgIEFTU0VSVChpc2Zpbml0ZSh3
aW5kb3cueSgpKSk7CiAgICAgQVNTRVJUKGlzZmluaXRlKHdpbmRvdy53aWR0aCgpKSk7CiAgICAg
QVNTRVJUKGlzZmluaXRlKHdpbmRvdy5oZWlnaHQoKSkpOwotICAgIAorCiAgICAgLy8gVXBkYXRl
IHdpbmRvdyB2YWx1ZXMgaWYgbmV3IHJlcXVlc3RlZCB2YWx1ZXMgYXJlIG5vdCBOYU4uCiAgICAg
aWYgKCFpc25hbihwZW5kaW5nQ2hhbmdlcy54KCkpKQogICAgICAgICB3aW5kb3cuc2V0WChwZW5k
aW5nQ2hhbmdlcy54KCkpOwpAQCAtMzM4LDE1ICszMzgsMTMgQEAgdm9pZCBET01XaW5kb3c6OmFk
anVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3JlZW4sIEZsb2F0UmVjdCYgd2luZG93
LCBjb24KICAgICBpZiAoIWlzbmFuKHBlbmRpbmdDaGFuZ2VzLmhlaWdodCgpKSkKICAgICAgICAg
d2luZG93LnNldEhlaWdodChwZW5kaW5nQ2hhbmdlcy5oZWlnaHQoKSk7CiAKLSAgICBBU1NFUlQo
bV9mcmFtZSk7Ci0gICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKLSAgICBGbG9hdFNp
emUgbWluaW11bVNpemUgPSBwYWdlID8gbV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50
KCktPm1pbmltdW1XaW5kb3dTaXplKCkgOiBGbG9hdFNpemUoMTAwLCAxMDApOwotICAgIHdpbmRv
dy5zZXRXaWR0aChtaW4obWF4KG1pbmltdW1TaXplLndpZHRoKCksIHdpbmRvdy53aWR0aCgpKSwg
c2NyZWVuLndpZHRoKCkpKTsKLSAgICB3aW5kb3cuc2V0SGVpZ2h0KG1pbihtYXgobWluaW11bVNp
emUuaGVpZ2h0KCksIHdpbmRvdy5oZWlnaHQoKSksIHNjcmVlbi5oZWlnaHQoKSkpOworICAgIEZs
b2F0U2l6ZSBtaW5pbXVtU2l6ZSA9IHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPm1p
bmltdW1XaW5kb3dTaXplKCkgOiBGbG9hdFNpemUoMTAwLCAxMDApOworICAgIHdpbmRvdy5zZXRX
aWR0aChtaW4obWF4KG1pbmltdW1TaXplLndpZHRoKCksIHdpbmRvdy53aWR0aCgpKSwgc2NyZWVu
Qm91bmRzLndpZHRoKCkpKTsKKyAgICB3aW5kb3cuc2V0SGVpZ2h0KG1pbihtYXgobWluaW11bVNp
emUuaGVpZ2h0KCksIHdpbmRvdy5oZWlnaHQoKSksIHNjcmVlbkJvdW5kcy5oZWlnaHQoKSkpOwog
Ci0gICAgLy8gQ29uc3RyYWluIHRoZSB3aW5kb3cgcG9zaXRpb24gdG8gdGhlIHNjcmVlbi4KLSAg
ICB3aW5kb3cuc2V0WChtYXgoc2NyZWVuLngoKSwgbWluKHdpbmRvdy54KCksIHNjcmVlbi5tYXhY
KCkgLSB3aW5kb3cud2lkdGgoKSkpKTsKLSAgICB3aW5kb3cuc2V0WShtYXgoc2NyZWVuLnkoKSwg
bWluKHdpbmRvdy55KCksIHNjcmVlbi5tYXhZKCkgLSB3aW5kb3cuaGVpZ2h0KCkpKSk7CisgICAg
Ly8gQ29uc3RyYWluIHRoZSB3aW5kb3cgcG9zaXRpb24gdG8gdGhlIGF2YWlsYWJsZSBzY3JlZW4g
YXJlYS4KKyAgICB3aW5kb3cuc2V0WChtYXgoc2NyZWVuQm91bmRzLngoKSwgbWluKHdpbmRvdy54
KCksIHNjcmVlbkJvdW5kcy5tYXhYKCkgLSB3aW5kb3cud2lkdGgoKSkpKTsKKyAgICB3aW5kb3cu
c2V0WShtYXgoc2NyZWVuQm91bmRzLnkoKSwgbWluKHdpbmRvdy55KCksIHNjcmVlbkJvdW5kcy5t
YXhZKCkgLSB3aW5kb3cuaGVpZ2h0KCkpKSk7CiB9CiAKIC8vIEZJWE1FOiBXZSBjYW4gcmVtb3Zl
IHRoaXMgZnVuY3Rpb24gb25jZSBWOCBzaG93TW9kYWxEaWFsb2cgaXMgY2hhbmdlZCB0byB1c2Ug
RE9NV2luZG93LgpAQCAtMTExNyw3ICsxMTE1LDggQEAgaW50IERPTVdpbmRvdzo6b3V0ZXJIZWln
aHQoKSBjb25zdAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8aW50PihwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpLmhlaWdodCgp
KTsKKyAgICBDaHJvbWUqIGNocm9tZSA9IHBhZ2UtPmNocm9tZSgpOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxpbnQ+KGNocm9tZS0+bWFwRnJvbUhvc3RUb0NTU1JlY3QoY2hyb21lLT53aW5kb3dS
ZWN0KCkpLmhlaWdodCgpKTsKIH0KIAogaW50IERPTVdpbmRvdzo6b3V0ZXJXaWR0aCgpIGNvbnN0
CkBAIC0xMTI5LDcgKzExMjgsOCBAQCBpbnQgRE9NV2luZG93OjpvdXRlcldpZHRoKCkgY29uc3QK
ICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGludD4ocGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKS53aWR0aCgpKTsKKyAgICBDaHJv
bWUqIGNocm9tZSA9IHBhZ2UtPmNocm9tZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+
KGNocm9tZS0+bWFwRnJvbUhvc3RUb0NTU1JlY3QoY2hyb21lLT53aW5kb3dSZWN0KCkpLndpZHRo
KCkpOwogfQogCiBpbnQgRE9NV2luZG93Ojppbm5lckhlaWdodCgpIGNvbnN0CkBAIC0xMTY5LDcg
KzExNjksOCBAQCBpbnQgRE9NV2luZG93OjpzY3JlZW5YKCkgY29uc3QKICAgICBpZiAoIXBhZ2Up
CiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4ocGFnZS0+
Y2hyb21lKCktPndpbmRvd1JlY3QoKS54KCkpOworICAgIENocm9tZSogY2hyb21lID0gcGFnZS0+
Y2hyb21lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oY2hyb21lLT5tYXBGcm9tSG9z
dFRvQ1NTUmVjdChjaHJvbWUtPndpbmRvd1JlY3QoKSkueCgpKTsKIH0KIAogaW50IERPTVdpbmRv
dzo6c2NyZWVuWSgpIGNvbnN0CkBAIC0xMTgxLDcgKzExODIsOCBAQCBpbnQgRE9NV2luZG93Ojpz
Y3JlZW5ZKCkgY29uc3QKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PGludD4ocGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKS55KCkp
OworICAgIENocm9tZSogY2hyb21lID0gcGFnZS0+Y2hyb21lKCk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGludD4oY2hyb21lLT5tYXBGcm9tSG9zdFRvQ1NTUmVjdChjaHJvbWUtPndpbmRvd1Jl
Y3QoKSkueSgpKTsKIH0KIAogaW50IERPTVdpbmRvdzo6c2Nyb2xsWCgpIGNvbnN0CkBAIC0xNDQ2
LDEyICsxNDQ4LDE4IEBAIHZvaWQgRE9NV2luZG93Ojptb3ZlQnkoZmxvYXQgeCwgZmxvYXQgeSkg
Y29uc3QKICAgICBpZiAobV9mcmFtZSAhPSBwYWdlLT5tYWluRnJhbWUoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsK
LSAgICBGbG9hdFJlY3QgdXBkYXRlID0gZnI7Ci0gICAgdXBkYXRlLm1vdmUoeCwgeSk7CisgICAg
Q2hyb21lKiBjaHJvbWUgPSBwYWdlLT5jaHJvbWUoKTsKKyAgICBGbG9hdFJlY3QgaG9zdEJvdW5k
cyA9IGNocm9tZS0+bWFwRnJvbUhvc3RUb0NTU1JlY3Qoc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdl
LT5tYWluRnJhbWUoKS0+dmlldygpKSk7CisgICAgRmxvYXRSZWN0IHdpbmRvd1JlY3QgPSBjaHJv
bWUtPm1hcEZyb21Ib3N0VG9DU1NSZWN0KGNocm9tZS0+d2luZG93UmVjdCgpKTsKKworICAgIEZs
b2F0UmVjdCByZXF1ZXN0ZWRSZWN0ID0gd2luZG93UmVjdDsKKyAgICByZXF1ZXN0ZWRSZWN0Lm1v
dmUoeCwgeSk7CisKICAgICAvLyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQg
VW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikKLSAgICBhZGp1
c3RXaW5kb3dSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXco
KSksIGZyLCB1cGRhdGUpOwotICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGZyKTsK
KyAgICBhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIGhvc3RCb3VuZHMsIHdpbmRvd1JlY3QsIHJlcXVl
c3RlZFJlY3QpOworICAgIEhvc3RSZWN0IG5ld1dpbmRvd1JlY3QgPSBjaHJvbWUtPm1hcEZyb21D
U1NUb0hvc3RSZWN0KHdpbmRvd1JlY3QpOworCisgICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRv
d1JlY3QobmV3V2luZG93UmVjdCk7CiB9CiAKIHZvaWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQg
eCwgZmxvYXQgeSkgY29uc3QKQEAgLTE0NjYsMTQgKzE0NzQsMjAgQEAgdm9pZCBET01XaW5kb3c6
Om1vdmVUbyhmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAgIGlmIChtX2ZyYW1lICE9IHBhZ2Ut
Pm1haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFJlY3QgZnIgPSBwYWdl
LT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOwotICAgIEZsb2F0UmVjdCBzciA9IHNjcmVlbkF2YWls
YWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSk7Ci0gICAgZnIuc2V0TG9jYXRpb24o
c3IubG9jYXRpb24oKSk7Ci0gICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwotICAgIHVwZGF0ZS5t
b3ZlKHgsIHkpOyAgICAgCisgICAgQ2hyb21lKiBjaHJvbWUgPSBwYWdlLT5jaHJvbWUoKTsKKyAg
ICBGbG9hdFJlY3QgaG9zdEJvdW5kcyA9IGNocm9tZS0+bWFwRnJvbUhvc3RUb0NTU1JlY3Qoc2Ny
ZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKSk7CisgICAgRmxvYXRS
ZWN0IHdpbmRvd1JlY3QgPSBjaHJvbWUtPm1hcEZyb21Ib3N0VG9DU1NSZWN0KGNocm9tZS0+d2lu
ZG93UmVjdCgpKTsKKworICAgIC8vIE9yaWdpbiBpcyBjYWxjdWxhdGVkIGZyb20gdGhlIHZhbGlk
IGJvdW5kcy4gRklYTUU6IENvbmZlciBzcGVjLgorICAgIHdpbmRvd1JlY3Quc2V0TG9jYXRpb24o
aG9zdEJvdW5kcy5sb2NhdGlvbigpKTsKKyAgICBGbG9hdFJlY3QgcmVxdWVzdGVkUmVjdCA9IHdp
bmRvd1JlY3Q7CisgICAgcmVxdWVzdGVkUmVjdC5tb3ZlKHgsIHkpOworCiAgICAgLy8gU2VjdXJp
dHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0byBk
aXNhYmxlIHRoaXMgY2hlY2suLi4pCi0gICAgYWRqdXN0V2luZG93UmVjdChzciwgZnIsIHVwZGF0
ZSk7Ci0gICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoZnIpOworICAgIGFkanVzdFdp
bmRvd1JlY3QocGFnZSwgaG9zdEJvdW5kcywgd2luZG93UmVjdCwgcmVxdWVzdGVkUmVjdCk7Cisg
ICAgSG9zdFJlY3QgbmV3V2luZG93UmVjdCA9IGNocm9tZS0+bWFwRnJvbUNTU1RvSG9zdFJlY3Qo
d2luZG93UmVjdCk7CisKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChuZXdXaW5k
b3dSZWN0KTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgsIGZsb2F0IHkp
IGNvbnN0CkBAIC0xNDg4LDExICsxNTAyLDE3IEBAIHZvaWQgRE9NV2luZG93OjpyZXNpemVCeShm
bG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAgIGlmIChtX2ZyYW1lICE9IHBhZ2UtPm1haW5GcmFt
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUo
KS0+d2luZG93UmVjdCgpOwotICAgIEZsb2F0U2l6ZSBkZXN0ID0gZnIuc2l6ZSgpICsgRmxvYXRT
aXplKHgsIHkpOwotICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7Ci0g
ICAgYWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgp
LT52aWV3KCkpLCBmciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVj
dChmcik7CisgICAgQ2hyb21lKiBjaHJvbWUgPSBwYWdlLT5jaHJvbWUoKTsKKyAgICBGbG9hdFJl
Y3QgaG9zdEJvdW5kcyA9IGNocm9tZS0+bWFwRnJvbUhvc3RUb0NTU1JlY3Qoc2NyZWVuQXZhaWxh
YmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKSk7CisgICAgRmxvYXRSZWN0IHdpbmRv
d1JlY3QgPSBjaHJvbWUtPm1hcEZyb21Ib3N0VG9DU1NSZWN0KGNocm9tZS0+d2luZG93UmVjdCgp
KTsKKworICAgIEZsb2F0UmVjdCByZXF1ZXN0ZWRSZWN0KHdpbmRvd1JlY3QubG9jYXRpb24oKSwg
d2luZG93UmVjdC5zaXplKCkgKyBGbG9hdFNpemUoeCwgeSkpOworCisgICAgLy8gU2VjdXJpdHkg
Y2hlY2sgKHRoZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0byBkaXNh
YmxlIHRoaXMgY2hlY2suLi4pCisgICAgYWRqdXN0V2luZG93UmVjdChwYWdlLCBob3N0Qm91bmRz
LCB3aW5kb3dSZWN0LCByZXF1ZXN0ZWRSZWN0KTsKKyAgICBIb3N0UmVjdCBuZXdXaW5kb3dSZWN0
ID0gY2hyb21lLT5tYXBGcm9tQ1NTVG9Ib3N0UmVjdCh3aW5kb3dSZWN0KTsKKworICAgIHBhZ2Ut
PmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KG5ld1dpbmRvd1JlY3QpOwogfQogCiB2b2lkIERPTVdp
bmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKQEAgLTE1MDcs
MTEgKzE1MjcsMTcgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZVRvKGZsb2F0IHdpZHRoLCBmbG9h
dCBoZWlnaHQpIGNvbnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZyYW1lKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLT53aW5k
b3dSZWN0KCk7Ci0gICAgRmxvYXRTaXplIGRlc3QgPSBGbG9hdFNpemUod2lkdGgsIGhlaWdodCk7
Ci0gICAgRmxvYXRSZWN0IHVwZGF0ZShmci5sb2NhdGlvbigpLCBkZXN0KTsKLSAgICBhZGp1c3RX
aW5kb3dSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSks
IGZyLCB1cGRhdGUpOwotICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGZyKTsKKyAg
ICBDaHJvbWUqIGNocm9tZSA9IHBhZ2UtPmNocm9tZSgpOworICAgIEZsb2F0UmVjdCBob3N0Qm91
bmRzID0gY2hyb21lLT5tYXBGcm9tSG9zdFRvQ1NTUmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBh
Z2UtPm1haW5GcmFtZSgpLT52aWV3KCkpKTsKKyAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IGNo
cm9tZS0+bWFwRnJvbUhvc3RUb0NTU1JlY3QoY2hyb21lLT53aW5kb3dSZWN0KCkpOworCisgICAg
RmxvYXRSZWN0IHJlcXVlc3RlZFJlY3Qod2luZG93UmVjdC5sb2NhdGlvbigpLCBGbG9hdFNpemUo
d2lkdGgsIGhlaWdodCkpOworCisgICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtz
IGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4pCisg
ICAgYWRqdXN0V2luZG93UmVjdChwYWdlLCBob3N0Qm91bmRzLCB3aW5kb3dSZWN0LCByZXF1ZXN0
ZWRSZWN0KTsKKyAgICBIb3N0UmVjdCBuZXdXaW5kb3dSZWN0ID0gY2hyb21lLT5tYXBGcm9tQ1NT
VG9Ib3N0UmVjdCh3aW5kb3dSZWN0KTsKKworICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dS
ZWN0KG5ld1dpbmRvd1JlY3QpOwogfQogCiBpbnQgRE9NV2luZG93OjpzZXRUaW1lb3V0KFBhc3NP
d25QdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0LCBFeGNlcHRpb25Db2Rl
JiBlYykKQEAgLTE5MzAsMTQgKzE5NTYsNiBAQCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gRE9NV2lu
ZG93OjpvcGVuKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbgogICAg
IH0KIAogICAgIFdpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1cmVzKHdpbmRvd0ZlYXR1cmVzU3Ry
aW5nKTsKLSAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCh3aW5kb3dGZWF0dXJlcy54U2V0ID8gd2lu
ZG93RmVhdHVyZXMueCA6IDAsIHdpbmRvd0ZlYXR1cmVzLnlTZXQgPyB3aW5kb3dGZWF0dXJlcy55
IDogMCwKLSAgICAgICAgd2luZG93RmVhdHVyZXMud2lkdGhTZXQgPyB3aW5kb3dGZWF0dXJlcy53
aWR0aCA6IDAsIHdpbmRvd0ZlYXR1cmVzLmhlaWdodFNldCA/IHdpbmRvd0ZlYXR1cmVzLmhlaWdo
dCA6IDApOwotICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7Ci0gICAgRE9NV2luZG93
OjphZGp1c3RXaW5kb3dSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZSA/IHBhZ2UtPm1haW5G
cmFtZSgpLT52aWV3KCkgOiAwKSwgd2luZG93UmVjdCwgd2luZG93UmVjdCk7Ci0gICAgd2luZG93
RmVhdHVyZXMueCA9IHdpbmRvd1JlY3QueCgpOwotICAgIHdpbmRvd0ZlYXR1cmVzLnkgPSB3aW5k
b3dSZWN0LnkoKTsKLSAgICB3aW5kb3dGZWF0dXJlcy5oZWlnaHQgPSB3aW5kb3dSZWN0LmhlaWdo
dCgpOwotICAgIHdpbmRvd0ZlYXR1cmVzLndpZHRoID0gd2luZG93UmVjdC53aWR0aCgpOwogCiAg
ICAgRnJhbWUqIHJlc3VsdCA9IGNyZWF0ZVdpbmRvdyh1cmxTdHJpbmcsIGZyYW1lTmFtZSwgd2lu
ZG93RmVhdHVyZXMsIGFjdGl2ZVdpbmRvdywgZmlyc3RGcmFtZSwgbV9mcmFtZSk7CiAgICAgcmV0
dXJuIHJlc3VsdCA/IHJlc3VsdC0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkgOiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKaW5kZXggOTVmNmVmMWVlZGVjZTkzYmNmZDFkMGM2NjNhYjY2NmFjNWZl
ZmE2NS4uMWI3YmZiODVkYTI5OTY1Mjk4OTVkYTczZTcxOTc0YWI5Y2VhNjFhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCkBAIC0xMjAsNyArMTIwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBzdGF0aWMgYm9vbCBkaXNwYXRjaEFsbFBlbmRpbmdCZWZvcmVVbmxvYWRFdmVudHMo
KTsKICAgICAgICAgc3RhdGljIHZvaWQgZGlzcGF0Y2hBbGxQZW5kaW5nVW5sb2FkRXZlbnRzKCk7
CiAKLSAgICAgICAgdm9pZCBhZGp1c3RXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgc2NyZWVu
LCBGbG9hdFJlY3QmIHdpbmRvdywgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcykgY29u
c3Q7CisgICAgICAgIHN0YXRpYyB2b2lkIGFkanVzdFdpbmRvd1JlY3QoUGFnZSosIGNvbnN0IEZs
b2F0UmVjdCYgc2NyZWVuLCBGbG9hdFJlY3QmIHdpbmRvdywgY29uc3QgRmxvYXRSZWN0JiBwZW5k
aW5nQ2hhbmdlcyk7CiAKICAgICAgICAgLy8gRklYTUU6IFdlIGNhbiByZW1vdmUgdGhpcyBmdW5j
dGlvbiBvbmNlIFY4IHNob3dNb2RhbERpYWxvZyBpcyBjaGFuZ2VkIHRvIHVzZSBET01XaW5kb3cu
CiAgICAgICAgIHN0YXRpYyB2b2lkIHBhcnNlTW9kYWxEaWFsb2dGZWF0dXJlcyhjb25zdCBTdHJp
bmcmLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdp
bmRvdy5oCmluZGV4IDdjNWJiMjAxMjFkZjg3MzQ0YmY5ZmQwNDNjMjNkMDE4OGY4OGMxNDYuLjAw
M2RjMjIxY2ZmZjVkZDk1YjA1MDg3YzM1YjhiZjk4ZWRlYjY4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Ib3N0V2luZG93LmgKQEAgLTI2LDEyICsyNiwxNiBAQAogI2lmbmRlZiBIb3N0V2luZG93
X2gKICNkZWZpbmUgSG9zdFdpbmRvd19oCiAKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNs
dWRlICJXaWRnZXQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDdXJzb3I7CiAK
Ky8vIEEgSG9zdFJlY3QgaXMgaW4gdGhlIFVJIGNvb3JkaW5hdGUgc3lzdGVtIG5hdGl2ZSB0byB0
aGUgY2hyb21lIG9yIHdpbmRvd2luZyBzeXN0ZW0uCit0eXBlZGVmIEZsb2F0UmVjdCBIb3N0UmVj
dDsKKwogY2xhc3MgSG9zdFdpbmRvdyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSG9zdFdp
bmRvdyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNTUsMTMgKzU5LDE3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNv
bnN0IEludFBvaW50JiBzY3JvbGxQb2ludCkgPSAwOwogI2VuZGlmCiAKKyAgICAvLyBNZXRob2Rz
IGZvciBtYXBwaW5nIGJldHdlZW4gaG9zdCBVSSB1bml0cyBhbmQgQ1NTIHVuaXRzLCB3aGljaCBt
YXkgZGlmZmVyIGluIHBpeGVsIGRlbnNpdHkgYW5kIG9yaWdpbi4KKyAgICB2aXJ0dWFsIEZsb2F0
UmVjdCBtYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBIb3N0UmVjdCYpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIEhvc3RSZWN0IG1hcEZyb21DU1NUb0hvc3RSZWN0KGNvbnN0IEZsb2F0UmVjdCYp
IGNvbnN0ID0gMDsKKwogICAgIC8vIE1ldGhvZHMgZm9yIGRvaW5nIGNvb3JkaW5hdGUgY29udmVy
c2lvbnMgdG8gYW5kIGZyb20gc2NyZWVuIGNvb3JkaW5hdGVzLgogICAgIHZpcnR1YWwgSW50UG9p
bnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIEludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3QgPSAwOwog
CiAgICAgLy8gTWV0aG9kIGZvciByZXRyaWV2aW5nIHRoZSBuYXRpdmUgY2xpZW50IG9mIHRoZSBw
YWdlLgogICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgp
IGNvbnN0ID0gMDsKLSAgICAKKwogICAgIC8vIFRvIG5vdGlmeSBXZWJLaXQgb2Ygc2Nyb2xsYmFy
IG1vZGUgY2hhbmdlcy4KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2Uo
KSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCA3
OGMxMmIyYzk2ZmI4NTZjZDljMWMxOWM5ZjM1NjBmMTcxNGY2OWI3Li5hZGQxYTYwNmY4MmJiZjYz
NDE0NjBjZjFmYzAyYmU1M2NlYmZlMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVy
cnkuY3BwCkBAIC0xNTMsMTIgKzE1MywxMiBAQCB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6
OmNocm9tZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgQ2hyb21lQ2xp
ZW50QmxhY2tCZXJyeTo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKQordm9pZCBDaHJv
bWVDbGllbnRCbGFja0JlcnJ5OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JikKIHsKICAg
ICAvLyBUaGUgd2luZG93IGRpbWVuc2lvbnMgYXJlIGZpeGVkIGluIHRoZSBSSU0gcG9ydC4KIH0K
IAotRmxvYXRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OndpbmRvd1JlY3QoKQorSG9zdFJl
Y3QgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6d2luZG93UmVjdCgpCiB7CiAgICAgSW50U2l6ZSB3
aW5kb3dTaXplOwogCkBAIC0xNjgsMTAgKzE2OCwxMSBAQCBGbG9hdFJlY3QgQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeTo6d2luZG93UmVjdCgpCiAgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCB3aW5k
b3dTaXplLndpZHRoKCksIHdpbmRvd1NpemUuaGVpZ2h0KCkpOwogfQogCi1GbG9hdFJlY3QgQ2hy
b21lQ2xpZW50QmxhY2tCZXJyeTo6cGFnZVJlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeTo6dmlld3BvcnRSZWN0KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiBGbG9hdFJlY3QoKTsKKyAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhlIHdpbmRvdyByZWN0
IGlzIHVzZWQgZm9yIHdpbmRvdyByZXNpemluZy4KKyAgICByZXR1cm4gd2luZG93UmVjdCgpOwog
fQogCiBmbG9hdCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzY2FsZUZhY3RvcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEJsYWNrQmVycnkuaAppbmRleCBlMTI5ZjQ1ODQyMTk2YmE1ZTY1MWM1ZTBkODU2
ZjllMmFiYmJlODVhLi42OGU2YjA4YTUzOWQ0M2EyZGE5NDMzNzQxMjE0ZmE0ODdiZTY4Y2JiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTM3LDkgKzM3LDkgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogICAgIHZpcnR1YWwgdm9p
ZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7IH07Ci0gICAgdmlydHVhbCB2b2lkIHNldFdp
bmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93
UmVjdCgpOwotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgdmlydHVhbCB2
b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmKTsKKyAgICB2aXJ0dWFsIEhvc3RSZWN0
IHdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIEhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpOwogICAg
IHZpcnR1YWwgZmxvYXQgc2NhbGVGYWN0b3IoKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCA5NDk1OTM4MGE2MDZkOWQxMmU3YmY5NzU1
MmFmYzRiYTZjY2Q5YmU2Li5mYzYzMmQ0MmEwNjUwMmFmZTI0MDI0Njc2MWI3NzJlOTZlMjMwNmY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNw
cApAQCAtMTU4LDEzICsxNTgsMTMgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjaHJvbWVEZXN0
cm95ZWQoKQogICAgIC8vIE91ciBsaWZldGltZSBpcyBib3VuZCB0byB0aGUgV2ViVmlld0ltcGwu
CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJl
Y3QmIHIpCit2b2lkIENocm9tZUNsaWVudEltcGw6OnNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJl
Y3QmIHJlY3QpCiB7CiAgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCi0gICAgICAgIG1fd2Vi
Vmlldy0+Y2xpZW50KCktPnNldFdpbmRvd1JlY3QoSW50UmVjdChyKSk7CisgICAgICAgIG1fd2Vi
Vmlldy0+Y2xpZW50KCktPnNldFdpbmRvd1JlY3QoSW50UmVjdChyZWN0KSk7CiB9CiAKLUZsb2F0
UmVjdCBDaHJvbWVDbGllbnRJbXBsOjp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNsaWVu
dEltcGw6OndpbmRvd1JlY3QoKQogewogICAgIFdlYlJlY3QgcmVjdDsKICAgICBpZiAobV93ZWJW
aWV3LT5jbGllbnQoKSkKQEAgLTE3NiwxMCArMTc2LDEwIEBAIEZsb2F0UmVjdCBDaHJvbWVDbGll
bnRJbXBsOjp3aW5kb3dSZWN0KCkKICAgICAgICAgcmVjdC53aWR0aCA9IG1fd2ViVmlldy0+c2l6
ZSgpLndpZHRoOwogICAgICAgICByZWN0LmhlaWdodCA9IG1fd2ViVmlldy0+c2l6ZSgpLmhlaWdo
dDsKICAgICB9Ci0gICAgcmV0dXJuIEZsb2F0UmVjdChyZWN0KTsKKyAgICByZXR1cm4gSG9zdFJl
Y3QocmVjdCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRJbXBsOjpwYWdlUmVjdCgpCitI
b3N0UmVjdCBDaHJvbWVDbGllbnRJbXBsOjp2aWV3cG9ydFJlY3QoKQogewogICAgIC8vIFdlIGhp
ZGUgdGhlIGRldGFpbHMgb2YgdGhlIHdpbmRvdydzIGJvcmRlciB0aGlja25lc3MgZnJvbSB0aGUg
d2ViIHBhZ2UgYnkKICAgICAvLyBzaW1wbGUgcmUtdXNpbmcgdGhlIHdpbmRvdyBwb3NpdGlvbiBo
ZXJlLiAgU28sIGZyb20gdGhlIHBvaW50LW9mLXZpZXcgb2YKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCA3NzA4NGY4MDEwMmY2MjM3YjY3ODJk
YzhiNjBmY2MyY2UyNjY5NTIwLi45ZmYwMzFkYzMwMGY5MWU4MDE4OWYzODA4MzI0YmQ4ZWRlZDVi
YWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CkBAIC03Myw5ICs3Myw5IEBAIHB1YmxpYzoKIAogICAgIC8vIENocm9tZUNsaWVudCBtZXRob2Rz
OgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIFdl
YkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9h
dFJlY3QgcGFnZVJlY3QoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBX
ZWJDb3JlOjpIb3N0UmVjdCYpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SG9zdFJlY3Qgd2luZG93
UmVjdCgpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SG9zdFJlY3Qgdmlld3BvcnRSZWN0KCk7CiAg
ICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsKICAg
ICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
Y3BwCmluZGV4IDUzNzQyNGE5NDNkMDdkMzM1NTE5YTExM2MxMzljMjgwNjEwNjA4MTcuLjM0ZGJj
MWM5ZTYzYjllYjdkZTY5ODE0MWIxMmVlYmEzYjU5ZmMxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtMTE2LDE3
ICsxMTYsMzEgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJh
bWUqKQogewogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50RWZsOjp3aW5kb3dSZWN0KCkKK0Zs
b2F0UmVjdCBDaHJvbWVDbGllbnRFZmw6Om1hcEZyb21Ib3N0VG9DU1NSZWN0KGNvbnN0IEhvc3RS
ZWN0JiByZWN0KSBjb25zdAoreworICAgIEZsb2F0UmVjdCByZXN1bHQgPSByZWN0OworICAgIHJl
c3VsdC5zY2FsZSgxIC8gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KS0+cGFnZVNjYWxlRmFj
dG9yKCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0hvc3RSZWN0IENocm9tZUNsaWVudEVm
bDo6bWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSBjb25zdAorewor
ICAgIEhvc3RSZWN0IHJlc3VsdCA9IHJlY3Q7CisgICAgcmVzdWx0LnNjYWxlKEVXS1ByaXZhdGU6
OmNvcmVQYWdlKG1fdmlldyktPnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitIb3N0UmVjdCBDaHJvbWVDbGllbnRFZmw6OndpbmRvd1JlY3QoKQogewogICAgIGlu
dCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwogCiAgICAgRWNvcmVfRXZhcyogZWUgPSBlY29yZV9ldmFz
X2Vjb3JlX2V2YXNfZ2V0KGV2YXNfb2JqZWN0X2V2YXNfZ2V0KG1fdmlldykpOwogICAgIGVjb3Jl
X2V2YXNfcmVxdWVzdF9nZW9tZXRyeV9nZXQoZWUsICZ4LCAmeSwgJndpZHRoLCAmaGVpZ2h0KTsK
IAotICAgIHJldHVybiBGbG9hdFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCk7CisgICAgcmV0dXJu
IEhvc3RSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpOwogfQogCi12b2lkIENocm9tZUNsaWVudEVm
bDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit2b2lkIENocm9tZUNsaWVu
dEVmbDo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIWV3
a192aWV3X3NldHRpbmdfZW5hYmxlX2F1dG9fcmVzaXplX3dpbmRvd19nZXQobV92aWV3KSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTM1LDkgKzE0OSwxMyBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6
c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgZWNvcmVfZXZhc19tb3Zl
X3Jlc2l6ZShlZSwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0
KCkpOwogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50RWZsOjpwYWdlUmVjdCgpCitIb3N0UmVj
dCBDaHJvbWVDbGllbnRFZmw6OnZpZXdwb3J0UmVjdCgpCiB7Ci0gICAgcmV0dXJuIGV3a192aWV3
X3BhZ2VfcmVjdF9nZXQobV92aWV3KTsKKyAgICAvLyBUaGlzIHJlcXVpcmVzIEZyYW1lVmlldyB0
byBiZSB0aGUgc2FtZSBzaXplIGFzIHRoZSB2aWV3cG9ydC4KKyAgICBIb3N0UmVjdCByZWN0ID0g
ZXdrX3ZpZXdfcGFnZV9yZWN0X2dldChtX3ZpZXcpOworCisgICAgaWYgKHJlY3QuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gd2luZG93UmVjdCgpOwogfQogCiB2b2lkIENocm9tZUNsaWVudEVm
bDo6Zm9jdXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuaAppbmRleCA2OGRhNDVhOGE4MTZmMzA4YzU3ZWMxNzk3ODcyZjg0M2I1MTZm
NjQ3Li45ZjcwZGYxZTc1MTFjZjhlMTdiZWY3Y2MwOWUxNDA0NGFjYTkwNzQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaApAQCAt
NDgsMTAgKzQ4LDE0IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVk
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQqIHdlYlZpZXcoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7Ci0gICAgdmly
dHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgpOwogCi0gICAgdmlydHVhbCBGbG9hdFJlY3QgcGFn
ZVJlY3QoKTsKKyAgICAvLyBNZXRob2RzIGZvciBtYXBwaW5nIGJldHdlZW4gaG9zdCBVSSB1bml0
cyBhbmQgQ1NTIHVuaXRzLCB3aGljaCBtYXkgZGlmZmVyIGluIHBpeGVsIGRlbnNpdHkgYW5kIG9y
aWdpbi4KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBtYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBI
b3N0UmVjdCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSG9zdFJlY3QgbWFwRnJvbUNT
U1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3QgT1ZFUlJJREU7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYpOworICAgIHZpcnR1YWwgSG9z
dFJlY3Qgd2luZG93UmVjdCgpOworICAgIHZpcnR1YWwgSG9zdFJlY3Qgdmlld3BvcnRSZWN0KCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKTsKICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggYjdhODRiMWY5MWIzODI5NmY0ZTY0
MDVkZTkzZTJkZGJjMjFkN2U4MS4uZmM5MWVkNDk3NmQxY2M1MWUwNWJhOThlNzA1MDlkOTYwODQ1
ZDMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0xMzA0LDcgKzEzMDQsNyBA
QCBzdGF0aWMgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIF9ld2tfdmlld192aWV3cG9ydF9h
dHRyaWJ1dGVzX2NvbXB1dGUoRXdrX1ZpZQogICAgIGludCBkZXZpY2VEUEkgPSBXZWJDb3JlOjpn
ZXREUEkoKTsKICAgICBwcml2LT5zZXR0aW5ncy5kZXZpY2VQaXhlbFJhdGlvID0gZGV2aWNlRFBJ
IC8gV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OmRlcHJlY2F0ZWRUYXJnZXREUEk7CiAKLSAg
ICBXZWJDb3JlOjpJbnRSZWN0IGF2YWlsYWJsZVJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYt
PnBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+cGFnZVJlY3QoKSk7CisgICAgV2ViQ29yZTo6SW50
UmVjdCBhdmFpbGFibGVSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChwcml2LT5wYWdlLT5jaHJvbWUo
KS0+Y2xpZW50KCktPnZpZXdwb3J0UmVjdCgpKTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IGRldmlj
ZVJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYtPnBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+
d2luZG93UmVjdCgpKTsKIAogICAgIFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyBhdHRyaWJ1
dGVzID0gV2ViQ29yZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhwcml2LT52aWV3cG9ydEFy
Z3VtZW50cywgZGVza3RvcFdpZHRoLCBkZXZpY2VSZWN0LndpZHRoKCksIGRldmljZVJlY3QuaGVp
Z2h0KCksIHByaXYtPnNldHRpbmdzLmRldmljZVBpeGVsUmF0aW8sIGF2YWlsYWJsZVJlY3Quc2l6
ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwCmluZGV4IDYxNTJmNTA4MGJmYmRlYzljZTQ0MWM5YzM5MTUwMmIyMDAxOTk5
ODUuLmMyMzdkZjc2ZmE4YTA3OTMxMTdlOWUzYmZjMmQ2NzQ0NzUxMjhhZTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApA
QCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpjaHJvbWVEZXN0cm95ZWQoKQog
ICAgIGRlbGV0ZSB0aGlzOwogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0
KCkKK0hvc3RSZWN0IENocm9tZUNsaWVudDo6d2luZG93UmVjdCgpCiB7CiAgICAgR3RrV2lkZ2V0
KiB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKG1fd2ViVmlldykp
OwogICAgIGlmICh3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3cod2luZG93KSkgewpAQCAt
MTE2LDcgKzExNiw3IEBAIEZsb2F0UmVjdCBDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQogICAg
IHJldHVybiBGbG9hdFJlY3QoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1Jl
Y3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQordm9pZCBDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1Jl
Y3QoY29uc3QgSG9zdFJlY3QmIHJlY3QpCiB7CiAgICAgSW50UmVjdCBpbnRyZWN0ID0gSW50UmVj
dChyZWN0KTsKICAgICBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyogd2ViV2luZG93RmVhdHVyZXMg
PSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dpbmRvd19mZWF0dXJlcyhtX3dlYlZpZXcpOwpAQCAtMTQ5
LDcgKzE0OSw3IEBAIHN0YXRpYyBJbnRSZWN0IGdldFdlYlZpZXdSZWN0KFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCiAgICAgcmV0dXJuIEludFJlY3QoYWxsb2NhdGlvbi54LCBhbGxvY2F0aW9uLnks
IGFsbG9jYXRpb24ud2lkdGgsIGFsbG9jYXRpb24uaGVpZ2h0KTsKIH0KIAotRmxvYXRSZWN0IENo
cm9tZUNsaWVudDo6cGFnZVJlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50Ojp2aWV3cG9ydFJl
Y3QoKQogewogICAgIHJldHVybiBnZXRXZWJWaWV3UmVjdChtX3dlYlZpZXcpOwogfQpAQCAtNjc5
LDcgKzY3OSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVs
dGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uCiAgICAgLy8gQ29tcHV0ZSB0aGUg
c2Nyb2xsIHJlcGFpbnQgcmVnaW9uLiBXZSBlbnN1cmUgdGhhdCB3ZSBhcmUgbm90IHN1YnRyYWN0
aW5nIGFyZWFzCiAgICAgLy8gdGhhdCB3ZSd2ZSBzY3JvbGxlZCBmcm9tIG91dHNpZGUgdGhlIHZp
ZXdwb3J0IGZyb20gdGhlIHJlcGFpbnQgcmVnaW9uLgogICAgIEludFJlY3Qgb25TY3JlZW5TY3Jv
bGxSZWN0ID0gcmVjdFRvU2Nyb2xsOwotICAgIG9uU2NyZWVuU2Nyb2xsUmVjdC5pbnRlcnNlY3Qo
SW50UmVjdChJbnRQb2ludCgpLCBlbmNsb3NpbmdJbnRSZWN0KHBhZ2VSZWN0KCkpLnNpemUoKSkp
OworICAgIG9uU2NyZWVuU2Nyb2xsUmVjdC5pbnRlcnNlY3QoSW50UmVjdChJbnRQb2ludCgpLCBl
bmNsb3NpbmdJbnRSZWN0KHZpZXdwb3J0UmVjdCgpKS5zaXplKCkpKTsKICAgICBSZWdpb24gc2Ny
b2xsUmVwYWludFJlZ2lvbiA9IHN1YnRyYWN0KHJlY3RUb1Njcm9sbCwgdHJhbnNsYXRlKG9uU2Ny
ZWVuU2Nyb2xsUmVjdCwgZGVsdGEpKTsKIAogICAgIG1fZGlydHlSZWdpb24udW5pdGUoc2Nyb2xs
UmVwYWludFJlZ2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5oCmluZGV4IDQ0YzIxMWFkNDYyODdlZmZkNzQzMDRjMDJkY2M2ZGIz
MGZhZjYwM2MuLjE3MGM5M2EwMmY4OWMyN2Q2ODFmZTI4N2MxYjU3Mzg3N2Q1YzQ4ODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
CkBAIC00OCwxMCArNDgsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgY2hyb21lRGVzdHJveWVkKCk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHNldFdpbmRv
d1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7Ci0gICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHdpbmRv
d1JlY3QoKTsKLQotICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYpOworICAgICAgICB2
aXJ0dWFsIEhvc3RSZWN0IHdpbmRvd1JlY3QoKTsKKyAgICAgICAgdmlydHVhbCBIb3N0UmVjdCB2
aWV3cG9ydFJlY3QoKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIHVuZm9jdXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAKaW5kZXggZDFhODM3ODY5NTZhNzc1Yjdl
NGUzOTI5OWNmOGU4NzVkYzViYzQ0OC4uZTgyNzVjNjkwYTczN2U1OGJhNDZmNWMzOGUwYzU3NzA4
Y2E0YWExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdw
b3J0YXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZp
ZXdwb3J0YXR0cmlidXRlcy5jcHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2b2lkIHdlYmtpdFZpZXdw
b3J0QXR0cmlidXRlc1JlY29tcHV0ZShXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMqIHZpZXdwb3J0
QXR0cmlidQogICAgIHByaXYtPmRldmljZVdpZHRoID0gd2luZG93UmVjdC53aWR0aCgpOwogICAg
IHByaXYtPmRldmljZUhlaWdodCA9IHdpbmRvd1JlY3QuaGVpZ2h0KCk7CiAKLSAgICBJbnRSZWN0
IHJlY3Qod2ViVmlldy0+cHJpdi0+Y29yZVBhZ2UtPmNocm9tZSgpLT5wYWdlUmVjdCgpKTsKKyAg
ICBJbnRSZWN0IHJlY3Qod2ViVmlldy0+cHJpdi0+Y29yZVBhZ2UtPmNocm9tZSgpLT52aWV3cG9y
dFJlY3QoKSk7CiAgICAgcHJpdi0+YXZhaWxhYmxlV2lkdGggPSByZWN0LndpZHRoKCk7CiAgICAg
cHJpdi0+YXZhaWxhYmxlSGVpZ2h0ID0gcmVjdC5oZWlnaHQoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3MDczNDlj
NWJkNjUyNWEzNTg3N2FlMmFiZjJlMzBlZjhkN2NmNWIxLi5hODM3MzJlNzMzMmMyNjAxNjI1MTY5
OTE5ODEyOWYwOWI2YmI0MzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNDAsMTAgKzQwLDkgQEAgcHVibGljOgogICAg
IAogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSBPVkVSUklERTsKICAgICAKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgT1ZF
UlJJREU7Ci0KLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6Okhvc3RS
ZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0UmVjdCB3aW5kb3dSZWN0
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0UmVjdCB2aWV3cG9ydFJlY3Qo
KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCB1bmZvY3VzKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggZjBiY2RhNTI5OWJiNDMy
ODJhY2I1MTA4ZWQzNzY2N2RlNThlMzM1ZC4uNTIwNmY4OTVmMjZhMDA1NGZiOTMwYjk0YTQ4ZmE4
NGRhNTg0OTNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtMTQ2LDIwICsxNDYsMjAgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmNocm9tZURlc3Ryb3llZCgpCiAvLyBUaGVzZSBmdW5jdGlvbnMgc2NhbGUgYmV0d2Vl
biB3aW5kb3cgYW5kIFdlYlZpZXcgY29vcmRpbmF0ZXMgYmVjYXVzZSBKYXZhU2NyaXB0L0RPTSBv
cGVyYXRpb25zIAogLy8gYXNzdW1lIHRoYXQgdGhlIFdlYlZpZXcgYW5kIHRoZSB3aW5kb3cgc2hh
cmUgdGhlIHNhbWUgY29vcmRpbmF0ZSBzeXN0ZW0uCiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpz
ZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JiByZWN0KQogewogICAgIE5TUmVjdCB3aW5k
b3dSZWN0ID0gdG9EZXZpY2VTcGFjZShyZWN0LCBbbV93ZWJWaWV3IHdpbmRvd10pOwogICAgIFtb
bV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1fd2ViVmlldyBzZXRGcmFt
ZTp3aW5kb3dSZWN0XTsKIH0KIAotRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVj
dCgpCitIb3N0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQogewogICAgIE5TUmVj
dCB3aW5kb3dSZWN0ID0gW1ttX3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdG
cmFtZTptX3dlYlZpZXddOwogICAgIHJldHVybiB0b1VzZXJTcGFjZSh3aW5kb3dSZWN0LCBbbV93
ZWJWaWV3IHdpbmRvd10pOwogfQogCiAvLyBGSVhNRTogV2UgbmVlZCB0byBhZGQgQVBJIGZvciBz
ZXR0aW5nIGFuZCBnZXR0aW5nIHRoaXMuCi1GbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwYWdl
UmVjdCgpCitIb3N0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OnZpZXdwb3J0UmVjdCgpCiB7CiAgICAg
cmV0dXJuIFttX3dlYlZpZXcgZnJhbWVdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCBlYWFlYjAxMmY4NmQwYTUzMTEw
YjU3OTc3M2Y2ZDViOGMwNWQ5MzQyLi5iNDlhZjQxOTJlNDg3NzRmNzk4YjZjYmIwMWU3ZjRiYjY0
YTQ4MmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIENocm9tZUNsaWVudFF0Ojp+Q2hyb21l
Q2xpZW50UXQoKQogI2VuZGlmCiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50UXQ6OnNldFdpbmRvd1Jl
Y3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQordm9pZCBDaHJvbWVDbGllbnRRdDo6c2V0V2luZG93
UmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIW1fd2ViUGFnZSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTU3LDEzICsxNTcsMjAgQEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6c2V0
V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgbGlrZSB0b29sYmFycy9zY3Jv
bGxiYXJzIGV0Yy4gSXQgaXMgdXNlZCBieSB0aGUgdmlld3BvcnQgbWV0YSB0YWcgYXMgd2VsbCBh
cwogICAgIGJ5IHRoZSBET00gV2luZG93IG9iamVjdDogb3V0ZXJIZWlnaHQoKSwgb3V0ZXJXaWR0
aCgpLCBzY3JlZW5YKCksIHNjcmVlblkoKS4KICovCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50UXQ6
OndpbmRvd1JlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50UXQ6OndpbmRvd1JlY3QoKQogewog
ICAgIGlmICghcGxhdGZvcm1QYWdlQ2xpZW50KCkpCiAgICAgICAgIHJldHVybiBGbG9hdFJlY3Qo
KTsKICAgICByZXR1cm4gcGxhdGZvcm1QYWdlQ2xpZW50KCktPndpbmRvd1JlY3QoKTsKIH0KIAor
SG9zdFJlY3QgQ2hyb21lQ2xpZW50UXQ6OnZpZXdwb3J0UmVjdCgpCit7CisgICAgaWYgKCFtX3dl
YlBhZ2UpCisgICAgICAgIHJldHVybiB3aW5kb3dSZWN0KCk7CisgICAgcmV0dXJuIEhvc3RSZWN0
KFFSZWN0RihRUG9pbnRGKDAsIDApLCBtX3dlYlBhZ2UtPnZpZXdwb3J0U2l6ZSgpKSk7Cit9CisK
IGJvb2wgQ2hyb21lQ2xpZW50UXQ6OmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25z
dAogewogICAgIGlmICghcGxhdGZvcm1QYWdlQ2xpZW50KCkpCkBAIC0xNzEsMTMgKzE3OCw2IEBA
IGJvb2wgQ2hyb21lQ2xpZW50UXQ6OmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25z
dAogICAgIHJldHVybiBwbGF0Zm9ybVBhZ2VDbGllbnQoKS0+YWxsb3dzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZygpOwogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50UXQ6OnBhZ2VSZWN0KCkKLXsK
LSAgICBpZiAoIW1fd2ViUGFnZSkKLSAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwotICAgIHJl
dHVybiBGbG9hdFJlY3QoUVJlY3RGKFFQb2ludEYoMCwgMCksIG1fd2ViUGFnZS0+dmlld3BvcnRT
aXplKCkpKTsKLX0KLQogdm9pZCBDaHJvbWVDbGllbnRRdDo6Zm9jdXMoKQogewogICAgIGlmICgh
bV93ZWJQYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oCmluZGV4IGY3MzU5ZDJlMjg3NGE3NTUxOWMyZjUzODc2ODEzMjk4MGFlNGI5Y2Qu
LjMzN2NhYWFjMGQxNWQxYTViYjE2YTZiZWFjMzIwNGI3MTAyMmYxZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTY0LDEwICs2
NCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1
YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwotICAgIHZpcnR1YWwgRmxv
YXRSZWN0IHdpbmRvd1JlY3QoKTsKIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCk7
CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmKTsKKyAgICB2
aXJ0dWFsIEhvc3RSZWN0IHdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIEhvc3RSZWN0IHZpZXdw
b3J0UmVjdCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAgICAgdmlydHVhbCB2b2lk
IHVuZm9jdXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDY4YmRkZWYwMzQxODRiNWQ0MDFkNWNkMGY3NGE1NjIx
ZjY0YjY5ZTIuLjE4ZDg1MDE5YmNiYTVhNzkxOTQxNmU0NDk5NTcyODRkNThlNGJhOGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtODUsNyArODUsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2hyb21lRGVzdHJv
eWVkKCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFdp
bmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFdp
bmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmIHIpCiB7CiAgICAgSVdlYlVJRGVsZWdhdGUqIHVpRGVs
ZWdhdGUgPSAwOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURl
bGVnYXRlKSkpIHsKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFdp
bmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByKQogICAgIH0KIH0KIAotRmxvYXRSZWN0IFdlYkNo
cm9tZUNsaWVudDo6d2luZG93UmVjdCgpCitIb3N0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRv
d1JlY3QoKQogewogICAgIElXZWJVSURlbGVnYXRlKiB1aURlbGVnYXRlID0gMDsKICAgICBpZiAo
U1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CkBAIC0xMDgs
MTAgKzEwOCwxMCBAQCBGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KCkKICAg
ICAgICAgICAgIHJldHVybiByZWN0OwogICAgIH0KIAotICAgIHJldHVybiBGbG9hdFJlY3QoKTsK
KyAgICByZXR1cm4gSG9zdFJlY3QoKTsKIH0KIAotRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6
cGFnZVJlY3QoKQorSG9zdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp2aWV3cG9ydFJlY3QoKQogewog
ICAgIFJFQ1QgcmVjdDsKICAgICBtX3dlYlZpZXctPmZyYW1lUmVjdCgmcmVjdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IDlhZWM3MzQ2ZjAyNTlmZWYwODVkYWE3YTY3NWNlMzhkZTVhN2Q0MzYuLmU1YzNmMDRjMTM4MDNl
MTMyMDZiOWU1ZDZkM2M0M2ZlN2QzOWY0MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC00NCwxMCArNDQsMTAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwg
dm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fd2ViVmlldzsgfQotICAgIHZpcnR1YWwg
dm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHZpcnR1
YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKLSAgICAKLSAgICB2aXJ0dWFsIFdl
YkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworCisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRv
d1JlY3QoY29uc3QgV2ViQ29yZTo6SG9zdFJlY3QmKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhv
c3RSZWN0IHdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhvc3RSZWN0IHZpZXdw
b3J0UmVjdCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAgICAgdmlydHVhbCB2b2lk
IHVuZm9jdXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKaW5kZXggZGU2YmY3MTkwZmIwMjM5YjQwMTc4ZmE0
ZGU4YmVkY2Y0MDg1YmU0MS4uMWRkYmE3MTlhODhmMzc1M2E3N2VjMDIyMjM0MWIwYzk2YjVjZDY5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRXaW5DRS5jcHAKQEAgLTUwLDIyICs1MCwyMiBAQCB2b2lkIENocm9tZUNsaWVu
dFdpbkNFOjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi1GbG9hdFJl
Y3QgQ2hyb21lQ2xpZW50V2luQ0U6OndpbmRvd1JlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50
V2luQ0U6OndpbmRvd1JlY3QoKQogewogICAgIGlmICghbV93ZWJWaWV3KQotICAgICAgICByZXR1
cm4gRmxvYXRSZWN0KCk7CisgICAgICAgIHJldHVybiBIb3N0UmVjdCgpOwogCiAgICAgUkVDVCBy
ZWN0OwogICAgIG1fd2ViVmlldy0+ZnJhbWVSZWN0KCZyZWN0KTsKICAgICByZXR1cm4gcmVjdDsK
IH0KIAotdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJl
Y3QmKQordm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVj
dCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVu
dFdpbkNFOjpwYWdlUmVjdCgpCitIb3N0UmVjdCBDaHJvbWVDbGllbnRXaW5DRTo6dmlld3BvcnRS
ZWN0KCkKIHsKICAgICByZXR1cm4gd2luZG93UmVjdCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oIGIvU291cmNl
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCmluZGV4IDk2
Y2VhMWE2MmFiZDk4NWZhMTIyMGJjYjdmNGQ3OWVjOTY5ODcxM2YuLjI4MWU1MTY5YTA4M2JjNjcw
ZTkzOTcwNzk2YTRlN2MzOWQ5NDg3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKQEAgLTM4LDEwICszOCwxMCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogCiAgICAgdmly
dHVhbCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgdm9p
ZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHZpcnR1YWwg
V2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6
RmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29u
c3QgV2ViQ29yZTo6SG9zdFJlY3QmKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhvc3RSZWN0IHdp
bmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhvc3RSZWN0IHZpZXdwb3J0UmVjdCgp
OwogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGll
bnRXeC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3gu
Y3BwCmluZGV4IDVmMTE2N2I1NDdjZDYxYTZmMDVhYzI4ZjE3YjNhY2RlNzZkMTZmNGMuLjY0ZDlm
ZjJhOTk1Y2ExNzVmZThmMzU3NTYzMTk2NWQxZDk2YzE2MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcApAQCAtOTAsMjEgKzkwLDIx
IEBAIHZvaWQgQ2hyb21lQ2xpZW50V3g6OmNocm9tZURlc3Ryb3llZCgpCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRXeDo6c2V0V2luZG93UmVjdChjb25zdCBG
bG9hdFJlY3QmKQordm9pZCBDaHJvbWVDbGllbnRXeDo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0
UmVjdCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotRmxvYXRSZWN0IENocm9tZUNs
aWVudFd4Ojp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNsaWVudFd4Ojp3aW5kb3dSZWN0
KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBGbG9hdFJlY3QoKTsKKyAg
ICByZXR1cm4gSG9zdFJlY3QoKTsKIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudFd4OjpwYWdl
UmVjdCgpCitIb3N0UmVjdCBDaHJvbWVDbGllbnRXeDo6dmlld3BvcnRSZWN0KCkKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBGbG9hdFJlY3QoKTsKKyAgICByZXR1cm4gSG9z
dFJlY3QoKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRXeDo6Zm9jdXMoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmggYi9Tb3VyY2Uv
V2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAppbmRleCA1MDU0MGYwOTQz
ZTlkNjk2M2YxOTU0YzExZTYyY2NjYTdmOWQ4YTU4Li5mZTFiOTQ5M2FjY2JlY2EzMDZlZmIzY2I5
NTQyYzczNTc0ZWEyNTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guaAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guaApAQCAtNDUsMTAgKzQ1LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgY2hyb21lRGVzdHJveWVkKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQqIHdlYlZpZXcoKSBj
b25zdCB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3Qg
RmxvYXRSZWN0Jik7Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgpOwogCi0gICAg
dmlydHVhbCBGbG9hdFJlY3QgcGFnZVJlY3QoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93
UmVjdChjb25zdCBIb3N0UmVjdCYpOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IHdpbmRvd1JlY3Qo
KTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCB2aWV3cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKaW5kZXggM2U3ZmUzMjk0ZmM1ZWNkZGI2MGIyYjhiMjc4Mjk2ZTNhYzcwOWMxYi4u
YTczODIyMGZiZmIzYTc2ZWE2NmQ5MDQ5OTJiNjAzZWI0MGVlZTc1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcApAQCAtMTAxLDI0ICsxMDEsNTAgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNo
cm9tZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgd2luZG93RnJhbWUpCitGbG9hdFJl
Y3QgV2ViQ2hyb21lQ2xpZW50OjptYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBIb3N0UmVjdCYg
cmVjdCkgY29uc3QKK3sKKyNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKQorICAgIEZs
b2F0UmVjdCByZXN1bHQgPSByZWN0OworICAgIHJlc3VsdC5zY2FsZSgxIC8gbV9wYWdlLT5wYWdl
U2NhbGVGYWN0b3IoKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyNlbHNlCisgICAgcmV0dXJuIHJl
Y3Q7CisjZW5kaWYKK30KKworSG9zdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjptYXBGcm9tQ1NTVG9I
b3N0UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oUVQp
IHx8IFBMQVRGT1JNKEVGTCkKKyAgICBIb3N0UmVjdCByZXN1bHQgPSByZWN0OworICAgIHJlc3Vs
dC5zY2FsZShtX3BhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
I2Vsc2UKKyAgICByZXR1cm4gcmVjdDsKKyNlbmRpZgorfQorCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYgd2luZG93RnJhbWUpCiB7CiAgICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFdpbmRvd0ZyYW1lKHdpbmRvd0Zy
YW1lKSk7CiB9CiAKLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQorSG9z
dFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KCkKIHsKLSAgICBGbG9hdFJlY3QgbmV3
V2luZG93RnJhbWU7CisgICAgSG9zdFJlY3QgbmV3V2luZG93RnJhbWU7CiAKICAgICBpZiAoIVdl
YlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6R2V0V2luZG93RnJhbWUoKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0V2lu
ZG93RnJhbWU6OlJlcGx5KG5ld1dpbmRvd0ZyYW1lKSwgbV9wYWdlLT5wYWdlSUQoKSkpCi0gICAg
ICAgIHJldHVybiBGbG9hdFJlY3QoKTsKKyAgICAgICAgcmV0dXJuIEhvc3RSZWN0KCk7CiAKICAg
ICByZXR1cm4gbmV3V2luZG93RnJhbWU7CiB9CiAKLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6
OnBhZ2VSZWN0KCkKK0hvc3RSZWN0IFdlYkNocm9tZUNsaWVudDo6dmlld3BvcnRSZWN0KCkKIHsK
LSAgICByZXR1cm4gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbV9wYWdlLT5zaXplKCkpOworI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgIHJldHVybiBIb3N0UmVjdChGbG9hdFBvaW50
KCksIG1fcGFnZS0+dmlld3BvcnRTaXplKCkpOworI2Vsc2UKKyAgICByZXR1cm4gSG9zdFJlY3Qo
RmxvYXRQb2ludCgpLCBtX3BhZ2UtPnNpemUoKSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmZvY3VzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDFlNjJmN2FiZDRjYzJi
Yjg1MjllNTBmNzcxMGY3MmQ2MDhlMDFjNjMuLjczMTJiMjRiMDQ5NjYxN2FiMWM5NjMxYzhhNzJm
YWE0N2YyYzE1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNDQsMTkgKzQ0LDIyIEBAIHB1
YmxpYzoKICAgICAgICAgLCBtX3BhZ2UocGFnZSkKICAgICB7CiAgICAgfQotICAgIAorCiAgICAg
V2ViUGFnZSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQogCiAgICAgdmlydHVhbCB2
b2lkKiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSBPVkVSUklERTsKLSAgICAKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgT1ZFUlJJREU7Ci0gICAg
Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGFnZVJlY3QoKSBPVkVSUklERTsKLSAg
ICAKKworICAgIC8vIE1ldGhvZHMgZm9yIG1hcHBpbmcgYmV0d2VlbiBob3N0IFVJIHVuaXRzIGFu
ZCBDU1MgdW5pdHMsIHdoaWNoIG1heSBkaWZmZXIgaW4gcGl4ZWwgZGVuc2l0eSBhbmQgb3JpZ2lu
LgorICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9DU1NSZWN0KGNv
bnN0IFdlYkNvcmU6Okhvc3RSZWN0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJD
b3JlOjpIb3N0UmVjdCBtYXBGcm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmKSBjb25zdCBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNv
bnN0IFdlYkNvcmU6Okhvc3RSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpI
b3N0UmVjdCB3aW5kb3dSZWN0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0
UmVjdCB2aWV3cG9ydFJlY3QoKSBPVkVSUklERTsKKwogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCkgT1ZFUlJJREU7CiAgICAgCmRp
ZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jIGIvVG9vbHMvTWluaUJyb3dz
ZXIvZWZsL21haW4uYwppbmRleCBlOTgyYTcxMTc0MzBmNzNiZDAxZGU2M2U5NTg1YTgzZTNhOWJm
OGI5Li5mMTM3ZjI1OWYwN2Y5ODQ3ZTY4MjY3MGRiOTU4MWM0ODFkZWQ0ZTI4IDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2Vm
bC9tYWluLmMKQEAgLTEwMzAsNiArMTAzMCw3IEBAIHN0YXRpYyBCcm93c2VyX1dpbmRvdyAqd2lu
ZG93X2NyZWF0ZShjb25zdCBjaGFyICp1cmwpCiAgICAgRXZhc19TbWFydCAqc21hcnQgPSBldmFz
X3NtYXJ0X2NsYXNzX25ldygmZXdrVmlld0NsYXNzLT5zYyk7CiAgICAgYXBwX2RhdGEtPndlYnZp
ZXcgPSBld2tfdmlld19zbWFydF9hZGQoZXZhcywgc21hcnQsIGV3a19jb250ZXh0X2RlZmF1bHRf
Z2V0KCkpOwogICAgIGV3a192aWV3X3RoZW1lX3NldChhcHBfZGF0YS0+d2VidmlldywgVEhFTUVf
RElSICIvZGVmYXVsdC5lZGoiKTsKKyAgICBld2tfdmlld19kZXZpY2VfcGl4ZWxfcmF0aW9fc2V0
KGFwcF9kYXRhLT53ZWJ2aWV3LCAyKTsKIAogICAgIEV3a19TZXR0aW5ncyAqc2V0dGluZ3MgPSBl
d2tfdmlld19zZXR0aW5nc19nZXQoYXBwX2RhdGEtPndlYnZpZXcpOwogICAgIGV3a19zZXR0aW5n
c19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19hbGxvd2VkX3NldChzZXR0aW5ncywgRUlOQV9U
UlVFKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173607</attachid>
            <date>2012-11-12 03:35:32 -0800</date>
            <delta_ts>2012-11-12 07:44:05 -0800</delta_ts>
            <desc>EWS run</desc>
            <filename>bug-101453-20121112123330.patch</filename>
            <type>text/plain</type>
            <size>62994</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRjMjEyODQ4MWNhZGU2
NGZiNTIzNTc0ZGY1ZmZkZjI0YzRkNWY2OC4uMTI1ZmJmMGFlM2U3MTE4NTc5ZTlhMjAwMWM3MTVh
OTZhYmFiODFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTExLTA4ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBG
aXggdHJhbnNmb3JtYXRpb24gYmV0d2VlbiBob3N0IGFuZCBjc3MgZm9yIG1vdmVUbywgcmVzaXpl
VG8gZXRjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZW5hbWUgcGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJu
IHR5cGUuCisgICAgICAgIFVwZGF0ZSBhbGwgdXNlIHRoZXJlIG9mLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6bW92ZVdpbmRvd0J5KToKKworICAgICAg
ICAgICAgVXNlIG5ldyBtZXRob2QgbmFtZS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjptYXBGcm9tSG9zdFRv
Q1NTUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6bWFwRnJvbUNT
U1RvSG9zdFJlY3QpOgorICAgICAgICAoRW1wdHlDaHJvbWVDbGllbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RW1w
dHlDaHJvbWVDbGllbnQ6OnZpZXdwb3J0UmVjdCk6CisKKyAgICAgICAgICAgIEFkZCBlbXB0eSBp
bXBsZW1lbnRhdGlvbnMgYW5kIGFkanVzdCBleGlzdGluZyBtZXRob2RzLgorCisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6
CisKKyAgICAgICAgICAgIFNsaWdodGx5IHJlZmFjdG9yIHRvIHVzZSBuZXcgbWFwcGluZyBtZXRo
b2RzLgorCisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lOjptYXBGcm9tSG9zdFRvQ1NTUmVjdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZTo6bWFwRnJvbUNTU1RvSG9zdFJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lOjpzZXRXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6d2lu
ZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnZpZXdwb3J0UmVjdCk6CisgICAg
ICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKENocm9tZSk6CisgICAgICAgICogcGFnZS9D
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKENocm9tZUNsaWVudCk6CisKKyAgICAgICAgICAgIEFk
ZCBtYXBwaW5nIG1ldGhvZHMgdG8vZnJvbSBob3N0IGFuZCBDU1MgdW5pdHMuCisKKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmFkanVz
dFdpbmRvd1JlY3QpOiBNYWtlIGl0IHN0YXRpYy4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRv
dzo6b3V0ZXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpvdXRlcldpZHRo
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2NyZWVuWCk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnNjcmVlblkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpt
b3ZlQnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojptb3ZlVG8pOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVCeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3c6OnJlc2l6ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6IERvIG5v
dCBhZGp1c3QgV2luZG93RmVhdHVyZXMgaGVyZSBhcworICAgICAgICBjcmVhdGVXaW5kb3cgbm93
IGRvZXMgdGhhdC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAoRE9NV2lu
ZG93KToKKworICAgICAgICAgICAgVXNlIHRoZSBuZXcgbWFwcGluZyBtZXRob2RzIGZvciB0aGUg
RE9NIGZ1bmN0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL0hvc3RXaW5kb3cuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoSG9zdFdpbmRvdyk6CisKKyAgICAgICAgICAgIEFkZCBu
ZXcgdHlwZWRlZiBmcm9tIEZsb2F0UmVjdCB0byBIb3N0UmVjdAorCiAyMDEyLTExLTA5ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE11bHRpcGxlIExheW91dCBU
ZXN0cyAoZS5nLiBmYXN0L3JlcGFpbnQvamFwYW5lc2Utcmwtc2VsZWN0aW9uLWNsZWFyLmh0bWwp
IGlzIGZhaWxpbmcgYWZ0ZXIgcjEzMzg0MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmlu
ZGV4IGY2MmMwYjAwZjdlMTQ4ZGU4MGJhMzlhZjAwNDA4ZWZjOTVhMjZlMGQuLjFkY2VlY2Q5NWRl
MTIzODA5YjdmYmVlNDQ2OGM5NDMxNWQxOWZhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBGaXggdHJhbnNmb3JtYXRpb24g
YmV0d2VlbiBob3N0IGFuZCBjc3MgZm9yIG1vdmVUbywgcmVzaXplVG8gZXRjCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgbWV0aG9kcy90eXBl
cyBhbmQgcmV0dXJuIHdpbmRvd1JlY3QgaW5zdGVhZCBvZiBhbgorICAgICAgICBlbXB0eSBIb3N0
UmVjdCBpbiB2aWV3cG9ydFJlY3QuCisKKyAgICAgICAgQWRkIG1hcHBpbmcgc3R1YiBtZXRob2Rz
IHRvL2Zyb20gaG9zdCB0byBDU1MgdW5pdHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dEJsYWNrQmVycnk6Om1hcEZyb21Ib3N0VG9DU1NSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudEJsYWNrQmVycnk6Om1hcEZyb21DU1NUb0hvc3RSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6d2luZG93UmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojp2aWV3cG9ydFJlY3QpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAgICAgKENocm9t
ZUNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTExLTExICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlr
b3NAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVGhlIFFOWCBleHRlbnNpb24g
bWV0aG9kIHNob3VsZCBub3QgYmUgZW5hYmxlZCBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGZiYjVhMjJmZjY5MGJiZjdlYzk4Y2FhODRlYTZkMGVmNDVhYzRiYTYuLjJi
NWMxNTE1YTA5YTkxYTA3OWY4ZWE3NDg2ODY2YjUyM2U5ZTJlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTEtMDggIEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEZpeCB0cmFuc2Zvcm1h
dGlvbiBiZXR3ZWVuIGhvc3QgYW5kIGNzcyBmb3IgbW92ZVRvLCByZXNpemVUbyBldGMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSB0aGUgbWV0
aG9kcyBhbmQgdHlwZXMuCisKKyAgICAgICAgQWRkIG1hcHBpbmcgc3R1YiBtZXRob2RzIHRvL2Zy
b20gaG9zdCB0byBDU1MgdW5pdHMuCisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om1hcEZyb21Ib3N0VG9DU1NS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6bWFwRnJvbUNTU1RvSG9z
dFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzZXRXaW5kb3dSZWN0
KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6d2luZG93UmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnZpZXdwb3J0UmVjdCk6CisgICAgICAgICog
c3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEltcGwpOgorCiAy
MDEyLTExLTExICBTYWRydWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbY2hyb21pdW1dIEV4cG9zZSBDdXN0b21FdmVudCB0aHJvdWdoIFdlYkRPTUN1
c3RvbUV2ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDZiOTlhNjYwZmY1NTA5NmFhM2Q0YjJmNDEx
MDI5YjE4NWMyMDg1NTcuLmY5NjY1YTdjNTMwYTQzNDExZTJjMDZiNDQwNjc1ZWMzMGMyY2ExYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0xMS0wOCAgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRml4IHRy
YW5zZm9ybWF0aW9uIGJldHdlZW4gaG9zdCBhbmQgY3NzIGZvciBtb3ZlVG8sIHJlc2l6ZVRvIGV0
YworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1l
IHRoZSBtZXRob2RzL3R5cGVzIGFuZCBhZGQgbWFwcGluZyBtZXRob2RzCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6Om1hcEZyb21Ib3N0VG9DU1NSZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6bWFwRnJvbUNTU1RvSG9zdFJlY3Qp
OgorCisgICAgICAgICAgICBJbXBsZW1lbnQgbWFwcGluZyBtZXRob2RzIHRvL2Zyb20gaG9zdCBh
bmQgQ1NTIHVuaXRzLgorCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OndpbmRv
d1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpzZXRXaW5kb3dSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6dmlld3BvcnRSZWN0KToKKwor
ICAgICAgICAgICAgV2hlbiBubyBwYWdlIGlzIGF2YWlsYWJsZSwgcmV0dXJuIGEgYmV0dGVyCisg
ICAgICAgICAgICBhcHByb3hpbWF0aW9uIHRoYW4gYW4gZW1wdHkgcmVjdCBhcyB0aGlzIGlzIGNv
bXBhcmVkCisgICAgICAgICAgICB0byB0aGUgd2luZG93UmVjdCBieSBGcmFtZUxvYWRlci4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgorICAgICAgICAoQ2hy
b21lQ2xpZW50RWZsKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3
a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfY29tcHV0ZSk6CisKIDIwMTItMTEtMDkgIFJhcGhh
ZWwgS3VibyBkYSBDb3N0YSAgPHJhcGhhZWwua3Viby5kYS5jb3N0YUBpbnRlbC5jb20+CiAKICAg
ICAgICAgW0VGTF1bRFJUXSBGb3JjZSBhIHJlcGFpbnQgYmVmb3JlIHRyYWNraW5nIHJlcGFpbnQg
cmVjdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZWMxZDBlZmMxYWVmNzMzZmQ3YWExNTEyNmQ0OTY3
YTQ2NzFjMDg5Ni4uMWUzYWVlYjcxYTU4OGIzM2UwNTA1ZjFmOGJiMzUxZTBjNTJhZmY3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRl
IENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBGaXggdHJhbnNm
b3JtYXRpb24gYmV0d2VlbiBob3N0IGFuZCBjc3MgZm9yIG1vdmVUbywgcmVzaXplVG8gZXRjCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgcGFn
ZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5cGUuCisg
ICAgICAgIFVwZGF0ZSBhbGwgdXNlIHRoZXJlIG9mLgorCisgICAgICAgIEFkZCBtYXBwaW5nIHN0
dWIgbWV0aG9kcyB0by9mcm9tIGhvc3QgdG8gQ1NTIHVuaXRzLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjptYXBGcm9tSG9zdFRvQ1NTUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVu
dDo6bWFwRnJvbUNTU1RvSG9zdFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6
OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1Jl
Y3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnZpZXdwb3J0UmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Nyb2xsKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKyAgICAgICAgKENocm9tZUNsaWVudCk6CisgICAgICAg
ICogd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHA6CisgICAgICAgICh3ZWJraXRW
aWV3cG9ydEF0dHJpYnV0ZXNSZWNvbXB1dGUpOgorCiAyMDEyLTExLTA1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBsYXllciBib3JkZXJzIHRv
IGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CmluZGV4IDYzOWQxMDI5ZjgxMjMwZTM1OWUzNzdkNTgxNWQyMmM4ZTBjZDRlMzQuLmQwZjk4YjY2
OWQwMmE4YWY1OTJmOGYzNjNiYmNjODkzNzM5NjBhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxMi0xMS0wOCAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5u
ZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRml4IHRyYW5zZm9ybWF0aW9uIGJldHdlZW4gaG9z
dCBhbmQgY3NzIGZvciBtb3ZlVG8sIHJlc2l6ZVRvIGV0YworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIHBhZ2VSZWN0IHRvIHZpZXdwb3J0UmVj
dCBhbmQgdXNlIEhvc3RSZWN0IGFzIHJldHVybiB0eXBlLgorCisgICAgICAgIFVwZGF0ZSBhbGwg
dXNlIHRoZXJlIG9mLgorCisgICAgICAgIEFkZCBtYXBwaW5nIG1ldGhvZHMgdG8vZnJvbSBob3N0
IHRvIENTUyB1bml0cyAoZmxpcHMgY29vcmRpbmF0ZXMpCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjptYXBGcm9tSG9zdFRvQ1NTUmVjdCk6CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6Om1hcEZyb21DU1NUb0hvc3RSZWN0KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2V0
V2luZG93UmVjdCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QpOgorICAg
ICAgICAoV2ViQ2hyb21lQ2xpZW50Ojp2aWV3cG9ydFJlY3QpOgorCiAyMDEyLTExLTA4ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBBbHdheXMgdXNlIGEg
dGV4dHVyZWQgd2luZG93IGZvciB0aGUgV2ViIEluc3BlY3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
ZGU2MmVjMDAwMzNmNjY2YzE0MzAxNGY5NWRhYzZiMzFiYzVlZDExZi4uNzY0M2U2ZjM5MGJhNDNm
MTRhYjY5MDRhMjcyYjI5Mjk1OTkwMTM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAxMi0xMS0wOCAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgRml4IHRyYW5zZm9ybWF0aW9uIGJldHdlZW4gaG9zdCBhbmQgY3Nz
IGZvciBtb3ZlVG8sIHJlc2l6ZVRvIGV0YworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lIHBhZ2VSZWN0IHRvIHZpZXdwb3J0UmVjdCBhbmQgdXNl
IEhvc3RSZWN0IGFzIHJldHVybiB0eXBlLiAKKyAgICAgICAgVXBkYXRlIGFsbCB1c2UgdGhlcmUg
b2YuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6bWFwRnJvbUhvc3RUb0NTU1JlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6Om1hcEZyb21DU1NUb0hvc3RSZWN0KToKKwor
ICAgICAgICAgICAgSW1wbGVtZW50IHN0dWIgbWFwcGluZyBtZXRob2RzIHRvL2Zyb20gaG9zdCBh
bmQgQ1NTIHVuaXRzLgorCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6c2V0V2lu
ZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6d2luZG93UmVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6dmlld3BvcnRSZWN0KToKKworICAg
ICAgICAgICAgV2hlbiBubyBtX3dlYlBhZ2UgaXMgYXZhaWxhYmxlLCByZXR1cm4gYSBiZXR0ZXIK
KyAgICAgICAgICAgIGFwcHJveGltYXRpb24gdGhhbiBhbiBlbXB0eSByZWN0IGFzIHRoaXMgaXMg
Y29tcGFyZWQKKyAgICAgICAgICAgIHRvIHRoZSB3aW5kb3dSZWN0IGJ5IEZyYW1lTG9hZGVyLgor
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50UXQpOgorCiAyMDEyLTExLTA5ICBKb2NlbHlu
IFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0XSBV
bm1hcmsgbm93IHBhc3NpbmcgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAyNjM1MTc0M2JkODY1
ODIwYTE4NmZjMzkwZGZiM2MyY2QwNTQyMWY4Li44YmZhYTViMjYwZWRiMzZmYWFlODZlNGNlMjhi
ZjgwYTBmNGY0ZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMTEt
MDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisg
ICAgICAgIEZpeCB0cmFuc2Zvcm1hdGlvbiBiZXR3ZWVuIGhvc3QgYW5kIGNzcyBmb3IgbW92ZVRv
LCByZXNpemVUbyBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbmFtZSBwYWdlUmVjdCB0byB2aWV3cG9ydFJlY3QgYW5kIHVzZSBIb3N0UmVjdCBh
cyByZXR1cm4gdHlwZS4KKyAgICAgICAgVXBkYXRlIGFsbCB1c2UgdGhlcmUgb2YuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjptYXBGcm9tSG9zdFRvQ1NTUmVjdCk6CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6Om1hcEZyb21DU1NUb0hvc3RSZWN0KToKKworICAgICAgICAgICAgQWRkIHN0dWIgbWFwcGlu
ZyBtZXRob2RzIHRvL2Zyb20gaG9zdCBhbmQgQ1NTIHVuaXRzLgorCisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojp3aW5k
b3dSZWN0KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6dmlld3BvcnRSZWN0KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudCk6CisKIDIwMTItMTEtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IGxheWVyIGJvcmRlcnMgdG8gY2xlYW5pbmcgYXBwZWFyIGFu
ZCBkaXNhcHBlYXIgb24gc3dpdGNoaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDJmYTNmMTMy
ZGUxNDMwNDI2YmEwMjBhMGIzYzJlZmUxNDczMTM4MjguLjkzYzExMjIzYjgxYWE0ZmQxYTk0ZmYx
YmZiMWY2NmNiNTcyZDZmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMTItMTEtMDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQu
b3JnPgorCisgICAgICAgIEZpeCB0cmFuc2Zvcm1hdGlvbiBiZXR3ZWVuIGhvc3QgYW5kIGNzcyBm
b3IgbW92ZVRvLCByZXNpemVUbyBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlbmFtZSBwYWdlUmVjdCB0byB2aWV3cG9ydFJlY3QgYW5kIHVzZSBI
b3N0UmVjdCBhcyByZXR1cm4gdHlwZS4gCisgICAgICAgIFVwZGF0ZSBhbGwgdXNlIHRoZXJlIG9m
LgorCisgICAgICAgIEFkZCBzdHViIG1hcHBpbmcgbWV0aG9kcyB0by9mcm9tIGhvc3QgYW5kIENT
UyB1bml0cy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6Om1hcEZyb21Ib3N0VG9DU1NS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6Om1hcEZyb21DU1NUb0hv
c3RSZWN0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6OndpbmRvd1JlY3Qp
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6c2V0V2luZG93UmVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjp2aWV3cG9ydFJlY3QpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmg6CisgICAgICAgIChDaHJvbWVD
bGllbnRXaW5DRSk6CisKIDIwMTItMTAtMjQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBhIHN0cmF0ZWd5IGZvciBsb2FkZXIgY3VzdG9taXphdGlvbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93
eC9DaGFuZ2VMb2cKaW5kZXggZTllYWYxMzE5ZTAzMjdlZDljZWM5ZmI0OTIwOTMzYjdhMjI1NGNj
Ny4uOWVmOGQ1MmI1OWY4NzExODA2ZDM4MDhkNWY2NmRiZDhjMmJlNTVjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMi0xMS0wOCAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRml4IHRyYW5zZm9ybWF0aW9uIGJl
dHdlZW4gaG9zdCBhbmQgY3NzIGZvciBtb3ZlVG8sIHJlc2l6ZVRvIGV0YworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIHBhZ2VSZWN0IHRvIHZp
ZXdwb3J0UmVjdCBhbmQgdXNlIEhvc3RSZWN0IGFzIHJldHVybiB0eXBlLiAKKyAgICAgICAgVXBk
YXRlIGFsbCB1c2UgdGhlcmUgb2YuCisKKyAgICAgICAgQWRkIHN0dWIgbWFwcGluZyBtZXRob2Rz
IHRvL2Zyb20gaG9zdCBhbmQgQ1NTIHVuaXRzLgorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6bWFw
RnJvbUhvc3RUb0NTU1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6Om1h
cEZyb21DU1NUb0hvc3RSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4Ojpz
ZXRXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4Ojp3aW5kb3dS
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4Ojp2aWV3cG9ydFJlY3QpOgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKyAgICAgICAgKENocm9t
ZUNsaWVudFd4KToKKwogMjAxMi0xMC0yMiAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVy
Y290dGVAZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4ICJBU1NFUlRJT04gRkFJTEVEOiAh
ZG9jdW1lbnQtPmluUGFnZUNhY2hlKCkiIHdoZW4gbG9hZGluZyBhIHBhZ2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA3ODAyMmUwNTQ0NGQ3MGFlYWUwNzUyZGYxYjBlYTJjM2IxZjkxODg0Li4zNzMzMjc3ZTZjNmRh
Y2JjZGU3YzhiZmYwNTI4NDA1M2NkOTJlZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTItMTEtMDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJlbmFtZSB0aGUgd2luZG93UmVjdCwgcGFnZVJlY3QgZXRjIHRvIHNv
bWV0aGluZyBtb3JlIHNhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbmFtZSB0aGUgbWV0aG9kcy90eXBlIGFuZCBtYWtlIHZpZXdwb3J0UmVjdCBy
ZXR1cm4gYQorICAgICAgICBwcm9wZXIgdmFsdWUgd2hlbiB0aGUgdGlsZWQgYmFja2luZyBzdG9y
ZSBpcyB1c2VkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6Om1hcEZyb21I
b3N0VG9DU1NSZWN0KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6bWFwRnJvbUNTU1RvSG9zdFJlY3QpOgorCisgICAgICAgICAgIENvbnNpZGVy
IHRoZSBkZXZpY2VTY2FsZUZhY3RvciBmb3IgdGhlIFF0IGFuZCBFRkwgcG9ydC4KKworICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OnZpZXdwb3J0UmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisK
IDIwMTItMTEtMTEgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtTaGFkb3ddIEVsZW1lbnRTaGFkb3cgc2hvdWxkIGhhdmUgUnVsZUZlYXR1cmVTZXQg
Zm9yIHNlbGVjdCBhdHRyaWJ1dGUgc2VsZWN0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCmluZGV4IGFi
YzkxNjhjNzVkMzBkYzIxZDU4NWIyYjlkMmJhODE1OWI1MTQzZjcuLjA3ZDJmYzU0MjBkZTliNDE3
Nzc1MjBmNjRmNzBjNDU3NmM0MDU2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKQEAgLTIwNCw5ICsy
MDQsOSBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Om9wZW5Jbk5ld1RhYihj
b25zdCBTdHJpbmcmIHVybCkKIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpt
b3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkKIHsKLSAgICBGbG9hdFJlY3QgZnJhbWVSZWN0
ID0gbV9mcm9udGVuZFBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7Ci0gICAgZnJhbWVSZWN0
Lm1vdmUoeCwgeSk7Ci0gICAgbV9mcm9udGVuZFBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0
KGZyYW1lUmVjdCk7CisgICAgSG9zdFJlY3Qgd2luZG93UmVjdCA9IG1fZnJvbnRlbmRQYWdlLT5j
aHJvbWUoKS0+d2luZG93UmVjdCgpOworICAgIHdpbmRvd1JlY3QubW92ZSh4LCB5KTsKKyAgICBt
X2Zyb250ZW5kUGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3Qod2luZG93UmVjdCk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0QXR0YWNoZWRXaW5kb3coYm9v
bCBhdHRhY2hlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA2N2U4N2E3
OTI2NThiY2FiYWJkMzQ4M2QyZDU0MzM0MzMyMTc5MGU0Li5mMzkwNjc4MDhiYjIwMWQ3MDdmZTBm
MTRmMDE1M2RhYmZlN2QzOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBA
IC03MSwxMCArNzEsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95
ZWQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKSB7IH0K
LSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgeyByZXR1cm4gRmxvYXRSZWN0KCk7
IH0KIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgeyByZXR1cm4gRmxvYXRSZWN0
KCk7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBtYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBI
b3N0UmVjdCYpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CisgICAgdmlydHVhbCBIb3N0
UmVjdCBtYXBGcm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdCB7IHJldHVy
biBIb3N0UmVjdCgpOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBI
b3N0UmVjdCYpIHsgfQorICAgIHZpcnR1YWwgSG9zdFJlY3Qgd2luZG93UmVjdCgpIHsgcmV0dXJu
IEhvc3RSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIEhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpIHsgcmV0
dXJuIEhvc3RSZWN0KCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCB1bmZvY3VzKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAppbmRleCBjZDdmZWFlZTdkMjgxOWYyYWY1Mzk2OTYxZmVkN2Q0Y2EwNGE2MGMwLi42NTJjMTVh
YjIxMDJkNzdlZTAxMDY3M2ViODFkMGI3ZDA2ZDE2MDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKQEAgLTMzMTQsMjkgKzMzMTQsMzggQEAgRnJhbWUqIGNyZWF0ZVdpbmRv
dyhGcmFtZSogb3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2Fk
UmVxdWUKICAgICBpZiAocmVxdWVzdC5mcmFtZU5hbWUoKSAhPSAiX2JsYW5rIikKICAgICAgICAg
ZnJhbWUtPnRyZWUoKS0+c2V0TmFtZShyZXF1ZXN0LmZyYW1lTmFtZSgpKTsKIAotICAgIHBhZ2Ut
PmNocm9tZSgpLT5zZXRUb29sYmFyc1Zpc2libGUoZmVhdHVyZXMudG9vbEJhclZpc2libGUgfHwg
ZmVhdHVyZXMubG9jYXRpb25CYXJWaXNpYmxlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0U3Rh
dHVzYmFyVmlzaWJsZShmZWF0dXJlcy5zdGF0dXNCYXJWaXNpYmxlKTsKLSAgICBwYWdlLT5jaHJv
bWUoKS0+c2V0U2Nyb2xsYmFyc1Zpc2libGUoZmVhdHVyZXMuc2Nyb2xsYmFyc1Zpc2libGUpOwot
ICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRNZW51YmFyVmlzaWJsZShmZWF0dXJlcy5tZW51QmFyVmlz
aWJsZSk7Ci0gICAgcGFnZS0+Y2hyb21lKCktPnNldFJlc2l6YWJsZShmZWF0dXJlcy5yZXNpemFi
bGUpOworICAgIC8vIEFwcGx5IGZlYXR1cmVzLgorCisgICAgQ2hyb21lKiBjaHJvbWUgPSBwYWdl
LT5jaHJvbWUoKTsKKworICAgIGNocm9tZS0+c2V0VG9vbGJhcnNWaXNpYmxlKGZlYXR1cmVzLnRv
b2xCYXJWaXNpYmxlIHx8IGZlYXR1cmVzLmxvY2F0aW9uQmFyVmlzaWJsZSk7CisgICAgY2hyb21l
LT5zZXRTdGF0dXNiYXJWaXNpYmxlKGZlYXR1cmVzLnN0YXR1c0JhclZpc2libGUpOworICAgIGNo
cm9tZS0+c2V0U2Nyb2xsYmFyc1Zpc2libGUoZmVhdHVyZXMuc2Nyb2xsYmFyc1Zpc2libGUpOwor
ICAgIGNocm9tZS0+c2V0TWVudWJhclZpc2libGUoZmVhdHVyZXMubWVudUJhclZpc2libGUpOwor
ICAgIGNocm9tZS0+c2V0UmVzaXphYmxlKGZlYXR1cmVzLnJlc2l6YWJsZSk7CiAKICAgICAvLyAn
eCcgYW5kICd5JyBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiB0aGUgd2luZG93LCB3aGlsZSAnd2lk
dGgnIGFuZCAnaGVpZ2h0JwotICAgIC8vIHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIHBhZ2UuIFdl
IGNhbiBvbmx5IHJlc2l6ZSB0aGUgd2luZG93LCBzbwotICAgIC8vIGFkanVzdCBmb3IgdGhlIGRp
ZmZlcmVuY2UgYmV0d2VlbiB0aGUgd2luZG93IHNpemUgYW5kIHRoZSBwYWdlIHNpemUuCisgICAg
Ly8gc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgcGFnZS4gV2UgY2FuIG9ubHkgcmVzaXplIHRoZSBo
b3N0IHdpbmRvdywgc28KKyAgICAvLyBhZGp1c3QgZm9yIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4g
dGhlIHdpbmRvdyBzaXplIGFuZCB0aGUgdmlld3BvcnQgc2l6ZS4KKworICAgIEZsb2F0UmVjdCB3
aW5kb3dSZWN0ID0gY2hyb21lLT5tYXBGcm9tSG9zdFRvQ1NTUmVjdChjaHJvbWUtPndpbmRvd1Jl
Y3QoKSk7CisgICAgRmxvYXRSZWN0IHZpZXdwb3J0UmVjdCA9IGNocm9tZS0+bWFwRnJvbUhvc3RU
b0NTU1JlY3QoY2hyb21lLT52aWV3cG9ydFJlY3QoKSk7CiAKLSAgICBGbG9hdFJlY3Qgd2luZG93
UmVjdCA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7Ci0gICAgRmxvYXRTaXplIHBhZ2VT
aXplID0gcGFnZS0+Y2hyb21lKCktPnBhZ2VSZWN0KCkuc2l6ZSgpOwogICAgIGlmIChmZWF0dXJl
cy54U2V0KQogICAgICAgICB3aW5kb3dSZWN0LnNldFgoZmVhdHVyZXMueCk7CiAgICAgaWYgKGZl
YXR1cmVzLnlTZXQpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0WShmZWF0dXJlcy55KTsKICAgICBp
ZiAoZmVhdHVyZXMud2lkdGhTZXQpCi0gICAgICAgIHdpbmRvd1JlY3Quc2V0V2lkdGgoZmVhdHVy
ZXMud2lkdGggKyAod2luZG93UmVjdC53aWR0aCgpIC0gcGFnZVNpemUud2lkdGgoKSkpOworICAg
ICAgICB3aW5kb3dSZWN0LnNldFdpZHRoKGZlYXR1cmVzLndpZHRoICsgKHdpbmRvd1JlY3Qud2lk
dGgoKSAtIHZpZXdwb3J0UmVjdC53aWR0aCgpKSk7CiAgICAgaWYgKGZlYXR1cmVzLmhlaWdodFNl
dCkKLSAgICAgICAgd2luZG93UmVjdC5zZXRIZWlnaHQoZmVhdHVyZXMuaGVpZ2h0ICsgKHdpbmRv
d1JlY3QuaGVpZ2h0KCkgLSBwYWdlU2l6ZS5oZWlnaHQoKSkpOwotICAgIHBhZ2UtPmNocm9tZSgp
LT5zZXRXaW5kb3dSZWN0KHdpbmRvd1JlY3QpOworICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdo
dChmZWF0dXJlcy5oZWlnaHQgKyAod2luZG93UmVjdC5oZWlnaHQoKSAtIHZpZXdwb3J0UmVjdC5o
ZWlnaHQoKSkpOworCisgICAgRmxvYXRSZWN0IGhvc3RCb3VuZHMgPSBjaHJvbWUtPm1hcEZyb21I
b3N0VG9DU1NSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXco
KSkpOworICAgIERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChwYWdlLCBob3N0Qm91bmRzLCB3
aW5kb3dSZWN0LCB3aW5kb3dSZWN0KTsKIAotICAgIHBhZ2UtPmNocm9tZSgpLT5zaG93KCk7Cisg
ICAgSG9zdFJlY3QgbmV3V2luZG93UmVjdCA9IGNocm9tZS0+bWFwRnJvbUNTU1RvSG9zdFJlY3Qo
d2luZG93UmVjdCk7CisgICAgY2hyb21lLT5zZXRXaW5kb3dSZWN0KG5ld1dpbmRvd1JlY3QpOwor
ICAgIGNocm9tZS0+c2hvdygpOwogCiAgICAgY3JlYXRlZCA9IHRydWU7CiAgICAgcmV0dXJuIGZy
YW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IGZjZTBjMTE2NjhlYmIzZWMzNWU3YjlmNWYx
OGUzODUyOTA5MWMxZTcuLjA4NzkzYWI1ZTVhMDgwOGVkMmUwOWQ4Y2FmZmIyOGE2ZTVjMmI0Y2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTE0MCwxOSArMTQwLDI5IEBAIHZvaWQgQ2hyb21l
OjpzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0CiAgICAgbV9jbGllbnQtPnNjcm9sbGJh
cnNNb2RlRGlkQ2hhbmdlKCk7CiB9CiAKLXZvaWQgQ2hyb21lOjpzZXRXaW5kb3dSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkgY29uc3QKK0Zsb2F0UmVjdCBDaHJvbWU6Om1hcEZyb21Ib3N0VG9D
U1NSZWN0KGNvbnN0IEhvc3RSZWN0JiByZWN0KSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVu
dC0+bWFwRnJvbUhvc3RUb0NTU1JlY3QocmVjdCk7Cit9CisKK0hvc3RSZWN0IENocm9tZTo6bWFw
RnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSBjb25zdAoreworICAgIHJl
dHVybiBtX2NsaWVudC0+bWFwRnJvbUNTU1RvSG9zdFJlY3QocmVjdCk7Cit9CisKK3ZvaWQgQ2hy
b21lOjpzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JiByZWN0KSBjb25zdAogewogICAgIG1f
Y2xpZW50LT5zZXRXaW5kb3dSZWN0KHJlY3QpOwogfQogCi1GbG9hdFJlY3QgQ2hyb21lOjp3aW5k
b3dSZWN0KCkgY29uc3QKK0hvc3RSZWN0IENocm9tZTo6d2luZG93UmVjdCgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fY2xpZW50LT53aW5kb3dSZWN0KCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWU6
OnBhZ2VSZWN0KCkgY29uc3QKK0hvc3RSZWN0IENocm9tZTo6dmlld3BvcnRSZWN0KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9jbGllbnQtPnBhZ2VSZWN0KCk7CisgICAgcmV0dXJuIG1fY2xpZW50
LT52aWV3cG9ydFJlY3QoKTsKIH0KIAogdm9pZCBDaHJvbWU6OmZvY3VzKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5oCmluZGV4IDU2MzhmM2E0OGFkZDg5NTllMzBhZWIwZDIwNWFkM2U3MGI4Y2FjMTku
LmU4MDI1ZWRmOTkwYTZlMzFkYWM3YzYyOTdiYTIzY2IyMTgyMGNjYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuaApAQCAtOTIsMTEgKzkyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0OwogICAg
ICAgICB2b2lkIGxheW91dFVwZGF0ZWQoRnJhbWUqKSBjb25zdDsKIAotICAgICAgICB2b2lkIHNl
dFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7Ci0gICAgICAgIEZsb2F0UmVjdCB3
aW5kb3dSZWN0KCkgY29uc3Q7CisgICAgICAgIEZsb2F0UmVjdCBtYXBGcm9tSG9zdFRvQ1NTUmVj
dChjb25zdCBIb3N0UmVjdCYpIGNvbnN0OworICAgICAgICBIb3N0UmVjdCBtYXBGcm9tQ1NTVG9I
b3N0UmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKKworICAgICAgICB2b2lkIHNldFdpbmRv
d1JlY3QoY29uc3QgSG9zdFJlY3QmKSBjb25zdDsKKyAgICAgICAgSG9zdFJlY3Qgd2luZG93UmVj
dCgpIGNvbnN0OworICAgICAgICBIb3N0UmVjdCB2aWV3cG9ydFJlY3QoKSBjb25zdDsKIAotICAg
ICAgICBGbG9hdFJlY3QgcGFnZVJlY3QoKSBjb25zdDsKLSAgICAgICAgCiAgICAgICAgIHZvaWQg
Zm9jdXMoKSBjb25zdDsKICAgICAgICAgdm9pZCB1bmZvY3VzKCkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDM1YzMyMzI4YzM0M2EwZjU2OTMyOTZkNzA1NzExNzcz
MDhiYWFiMjkuLmUxYTAzNDljY2U2ZTExMzA1MmI4NmUxNGU4ODJkZWIwMmIwMjk2MjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtOTMsMTIgKzkzLDE1IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBDaHJvbWVDbGllbnQgewogICAgIHB1YmxpYzoKICAgICAgICAg
dmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpID0gMDsKLSAgICAgICAgCi0gICAgICAgIHZp
cnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpID0gMDsKLSAgICAgICAg
dmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgpID0gMDsKLSAgICAgICAgCi0gICAgICAgIHZp
cnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgPSAwOwotICAgICAgICAKKworICAgICAgICAvLyBN
ZXRob2RzIGZvciBtYXBwaW5nIGJldHdlZW4gaG9zdCBVSSB1bml0cyBhbmQgQ1NTIHVuaXRzLCB3
aGljaCBtYXkgZGlmZmVyIGluIHBpeGVsIGRlbnNpdHkgYW5kIG9yaWdpbi4KKyAgICAgICAgdmly
dHVhbCBGbG9hdFJlY3QgbWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgSG9zdFJlY3QmKSBjb25z
dCA9IDA7CisgICAgICAgIHZpcnR1YWwgSG9zdFJlY3QgbWFwRnJvbUNTU1RvSG9zdFJlY3QoY29u
c3QgRmxvYXRSZWN0JikgY29uc3QgPSAwOworCisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5k
b3dSZWN0KGNvbnN0IEhvc3RSZWN0JikgPSAwOworICAgICAgICB2aXJ0dWFsIEhvc3RSZWN0IHdp
bmRvd1JlY3QoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgSG9zdFJlY3Qgdmlld3BvcnRSZWN0KCkg
PSAwOworCiAgICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpID0gMDsKICAgICAgICAgdmlydHVh
bCB2b2lkIHVuZm9jdXMoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBh
ODRmZWM1OWM5NWViODUxYzRiYTM3OWRmYzE4YTI3NWUzZjJmZGIwLi4wMGQwMDI3MjljYzhhNDE2
YTA1NjQ2MWE0MThhNTI1YTU0MzkyMWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBA
IC0zMTYsMTggKzMxNiwxOCBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hBbGxQZW5kaW5nVW5s
b2FkRXZlbnRzKCkKIC8vICAgIHNjcmVlbiByZWN0LgogLy8gNSkgVHJhbnNsYXRlIHRoZSB3aW5k
b3cgcmVjdCBjb29yZGluYXRlcyB0byBiZSB3aXRoaW4gdGhlIGNvb3JkaW5hdGUgc3BhY2Ugb2YK
IC8vICAgIHRoZSBzY3JlZW4gcmVjdC4KLXZvaWQgRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0
KGNvbnN0IEZsb2F0UmVjdCYgc2NyZWVuLCBGbG9hdFJlY3QmIHdpbmRvdywgY29uc3QgRmxvYXRS
ZWN0JiBwZW5kaW5nQ2hhbmdlcykgY29uc3QKK3ZvaWQgRE9NV2luZG93OjphZGp1c3RXaW5kb3dS
ZWN0KFBhZ2UqIHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgc2NyZWVuQm91bmRzLCBGbG9hdFJlY3Qm
IHdpbmRvdywgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcykKIHsKICAgICAvLyBNYWtl
IHN1cmUgd2UncmUgaW4gYSB2YWxpZCBzdGF0ZSBiZWZvcmUgYWRqdXN0aW5nIGRpbWVuc2lvbnMu
Ci0gICAgQVNTRVJUKGlzZmluaXRlKHNjcmVlbi54KCkpKTsKLSAgICBBU1NFUlQoaXNmaW5pdGUo
c2NyZWVuLnkoKSkpOwotICAgIEFTU0VSVChpc2Zpbml0ZShzY3JlZW4ud2lkdGgoKSkpOwotICAg
IEFTU0VSVChpc2Zpbml0ZShzY3JlZW4uaGVpZ2h0KCkpKTsKKyAgICBBU1NFUlQoaXNmaW5pdGUo
c2NyZWVuQm91bmRzLngoKSkpOworICAgIEFTU0VSVChpc2Zpbml0ZShzY3JlZW5Cb3VuZHMueSgp
KSk7CisgICAgQVNTRVJUKGlzZmluaXRlKHNjcmVlbkJvdW5kcy53aWR0aCgpKSk7CisgICAgQVNT
RVJUKGlzZmluaXRlKHNjcmVlbkJvdW5kcy5oZWlnaHQoKSkpOwogICAgIEFTU0VSVChpc2Zpbml0
ZSh3aW5kb3cueCgpKSk7CiAgICAgQVNTRVJUKGlzZmluaXRlKHdpbmRvdy55KCkpKTsKICAgICBB
U1NFUlQoaXNmaW5pdGUod2luZG93LndpZHRoKCkpKTsKICAgICBBU1NFUlQoaXNmaW5pdGUod2lu
ZG93LmhlaWdodCgpKSk7Ci0gICAgCisKICAgICAvLyBVcGRhdGUgd2luZG93IHZhbHVlcyBpZiBu
ZXcgcmVxdWVzdGVkIHZhbHVlcyBhcmUgbm90IE5hTi4KICAgICBpZiAoIWlzbmFuKHBlbmRpbmdD
aGFuZ2VzLngoKSkpCiAgICAgICAgIHdpbmRvdy5zZXRYKHBlbmRpbmdDaGFuZ2VzLngoKSk7CkBA
IC0zMzgsMTUgKzMzOCwxMyBAQCB2b2lkIERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChjb25z
dCBGbG9hdFJlY3QmIHNjcmVlbiwgRmxvYXRSZWN0JiB3aW5kb3csIGNvbgogICAgIGlmICghaXNu
YW4ocGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkpKQogICAgICAgICB3aW5kb3cuc2V0SGVpZ2h0KHBl
bmRpbmdDaGFuZ2VzLmhlaWdodCgpKTsKIAotICAgIEFTU0VSVChtX2ZyYW1lKTsKLSAgICBQYWdl
KiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOwotICAgIEZsb2F0U2l6ZSBtaW5pbXVtU2l6ZSA9IHBh
Z2UgPyBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+bWluaW11bVdpbmRvd1Np
emUoKSA6IEZsb2F0U2l6ZSgxMDAsIDEwMCk7Ci0gICAgd2luZG93LnNldFdpZHRoKG1pbihtYXgo
bWluaW11bVNpemUud2lkdGgoKSwgd2luZG93LndpZHRoKCkpLCBzY3JlZW4ud2lkdGgoKSkpOwot
ICAgIHdpbmRvdy5zZXRIZWlnaHQobWluKG1heChtaW5pbXVtU2l6ZS5oZWlnaHQoKSwgd2luZG93
LmhlaWdodCgpKSwgc2NyZWVuLmhlaWdodCgpKSk7CisgICAgRmxvYXRTaXplIG1pbmltdW1TaXpl
ID0gcGFnZSA/IHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+bWluaW11bVdpbmRvd1NpemUoKSA6
IEZsb2F0U2l6ZSgxMDAsIDEwMCk7CisgICAgd2luZG93LnNldFdpZHRoKG1pbihtYXgobWluaW11
bVNpemUud2lkdGgoKSwgd2luZG93LndpZHRoKCkpLCBzY3JlZW5Cb3VuZHMud2lkdGgoKSkpOwor
ICAgIHdpbmRvdy5zZXRIZWlnaHQobWluKG1heChtaW5pbXVtU2l6ZS5oZWlnaHQoKSwgd2luZG93
LmhlaWdodCgpKSwgc2NyZWVuQm91bmRzLmhlaWdodCgpKSk7CiAKLSAgICAvLyBDb25zdHJhaW4g
dGhlIHdpbmRvdyBwb3NpdGlvbiB0byB0aGUgc2NyZWVuLgotICAgIHdpbmRvdy5zZXRYKG1heChz
Y3JlZW4ueCgpLCBtaW4od2luZG93LngoKSwgc2NyZWVuLm1heFgoKSAtIHdpbmRvdy53aWR0aCgp
KSkpOwotICAgIHdpbmRvdy5zZXRZKG1heChzY3JlZW4ueSgpLCBtaW4od2luZG93LnkoKSwgc2Ny
ZWVuLm1heFkoKSAtIHdpbmRvdy5oZWlnaHQoKSkpKTsKKyAgICAvLyBDb25zdHJhaW4gdGhlIHdp
bmRvdyBwb3NpdGlvbiB0byB0aGUgYXZhaWxhYmxlIHNjcmVlbiBhcmVhLgorICAgIHdpbmRvdy5z
ZXRYKG1heChzY3JlZW5Cb3VuZHMueCgpLCBtaW4od2luZG93LngoKSwgc2NyZWVuQm91bmRzLm1h
eFgoKSAtIHdpbmRvdy53aWR0aCgpKSkpOworICAgIHdpbmRvdy5zZXRZKG1heChzY3JlZW5Cb3Vu
ZHMueSgpLCBtaW4od2luZG93LnkoKSwgc2NyZWVuQm91bmRzLm1heFkoKSAtIHdpbmRvdy5oZWln
aHQoKSkpKTsKIH0KIAogLy8gRklYTUU6IFdlIGNhbiByZW1vdmUgdGhpcyBmdW5jdGlvbiBvbmNl
IFY4IHNob3dNb2RhbERpYWxvZyBpcyBjaGFuZ2VkIHRvIHVzZSBET01XaW5kb3cuCkBAIC0xMTE3
LDcgKzExMTUsOCBAQCBpbnQgRE9NV2luZG93OjpvdXRlckhlaWdodCgpIGNvbnN0CiAgICAgaWYg
KCFwYWdlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+
KHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCkuaGVpZ2h0KCkpOworICAgIENocm9tZSogY2hy
b21lID0gcGFnZS0+Y2hyb21lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oY2hyb21l
LT5tYXBGcm9tSG9zdFRvQ1NTUmVjdChjaHJvbWUtPndpbmRvd1JlY3QoKSkuaGVpZ2h0KCkpOwog
fQogCiBpbnQgRE9NV2luZG93OjpvdXRlcldpZHRoKCkgY29uc3QKQEAgLTExMjksNyArMTEyOCw4
IEBAIGludCBET01XaW5kb3c6Om91dGVyV2lkdGgoKSBjb25zdAogICAgIGlmICghcGFnZSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihwYWdlLT5jaHJv
bWUoKS0+d2luZG93UmVjdCgpLndpZHRoKCkpOworICAgIENocm9tZSogY2hyb21lID0gcGFnZS0+
Y2hyb21lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oY2hyb21lLT5tYXBGcm9tSG9z
dFRvQ1NTUmVjdChjaHJvbWUtPndpbmRvd1JlY3QoKSkud2lkdGgoKSk7CiB9CiAKIGludCBET01X
aW5kb3c6OmlubmVySGVpZ2h0KCkgY29uc3QKQEAgLTExNjksNyArMTE2OSw4IEBAIGludCBET01X
aW5kb3c6OnNjcmVlblgoKSBjb25zdAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVj
dCgpLngoKSk7CisgICAgQ2hyb21lKiBjaHJvbWUgPSBwYWdlLT5jaHJvbWUoKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8aW50PihjaHJvbWUtPm1hcEZyb21Ib3N0VG9DU1NSZWN0KGNocm9tZS0+
d2luZG93UmVjdCgpKS54KCkpOwogfQogCiBpbnQgRE9NV2luZG93OjpzY3JlZW5ZKCkgY29uc3QK
QEAgLTExODEsNyArMTE4Miw4IEBAIGludCBET01XaW5kb3c6OnNjcmVlblkoKSBjb25zdAogICAg
IGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
aW50PihwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpLnkoKSk7CisgICAgQ2hyb21lKiBjaHJv
bWUgPSBwYWdlLT5jaHJvbWUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihjaHJvbWUt
Pm1hcEZyb21Ib3N0VG9DU1NSZWN0KGNocm9tZS0+d2luZG93UmVjdCgpKS55KCkpOwogfQogCiBp
bnQgRE9NV2luZG93OjpzY3JvbGxYKCkgY29uc3QKQEAgLTE0NDYsMTIgKzE0NDgsMTggQEAgdm9p
ZCBET01XaW5kb3c6Om1vdmVCeShmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAgIGlmIChtX2Zy
YW1lICE9IHBhZ2UtPm1haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFJl
Y3QgZnIgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOwotICAgIEZsb2F0UmVjdCB1cGRh
dGUgPSBmcjsKLSAgICB1cGRhdGUubW92ZSh4LCB5KTsKKyAgICBDaHJvbWUqIGNocm9tZSA9IHBh
Z2UtPmNocm9tZSgpOworICAgIEZsb2F0UmVjdCBob3N0Qm91bmRzID0gY2hyb21lLT5tYXBGcm9t
SG9zdFRvQ1NTUmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3
KCkpKTsKKyAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IGNocm9tZS0+bWFwRnJvbUhvc3RUb0NT
U1JlY3QoY2hyb21lLT53aW5kb3dSZWN0KCkpOworCisgICAgRmxvYXRSZWN0IHJlcXVlc3RlZFJl
Y3QgPSB3aW5kb3dSZWN0OworICAgIHJlcXVlc3RlZFJlY3QubW92ZSh4LCB5KTsKKwogICAgIC8v
IFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3Jp
dGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4uKQotICAgIGFkanVzdFdpbmRvd1JlY3Qoc2NyZWVu
QXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKSwgZnIsIHVwZGF0ZSk7Ci0g
ICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoZnIpOworICAgIGFkanVzdFdpbmRvd1Jl
Y3QocGFnZSwgaG9zdEJvdW5kcywgd2luZG93UmVjdCwgcmVxdWVzdGVkUmVjdCk7CisgICAgSG9z
dFJlY3QgbmV3V2luZG93UmVjdCA9IGNocm9tZS0+bWFwRnJvbUNTU1RvSG9zdFJlY3Qod2luZG93
UmVjdCk7CisKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChuZXdXaW5kb3dSZWN0
KTsKIH0KIAogdm9pZCBET01XaW5kb3c6Om1vdmVUbyhmbG9hdCB4LCBmbG9hdCB5KSBjb25zdApA
QCAtMTQ2NiwxNCArMTQ3NCwyMCBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0IHgsIGZs
b2F0IHkpIGNvbnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dS
ZWN0KCk7Ci0gICAgRmxvYXRSZWN0IHNyID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWlu
RnJhbWUoKS0+dmlldygpKTsKLSAgICBmci5zZXRMb2NhdGlvbihzci5sb2NhdGlvbigpKTsKLSAg
ICBGbG9hdFJlY3QgdXBkYXRlID0gZnI7Ci0gICAgdXBkYXRlLm1vdmUoeCwgeSk7ICAgICAKKyAg
ICBDaHJvbWUqIGNocm9tZSA9IHBhZ2UtPmNocm9tZSgpOworICAgIEZsb2F0UmVjdCBob3N0Qm91
bmRzID0gY2hyb21lLT5tYXBGcm9tSG9zdFRvQ1NTUmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBh
Z2UtPm1haW5GcmFtZSgpLT52aWV3KCkpKTsKKyAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IGNo
cm9tZS0+bWFwRnJvbUhvc3RUb0NTU1JlY3QoY2hyb21lLT53aW5kb3dSZWN0KCkpOworCisgICAg
Ly8gT3JpZ2luIGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgdmFsaWQgYm91bmRzLiBGSVhNRTogQ29u
ZmVyIHNwZWMuCisgICAgd2luZG93UmVjdC5zZXRMb2NhdGlvbihob3N0Qm91bmRzLmxvY2F0aW9u
KCkpOworICAgIEZsb2F0UmVjdCByZXF1ZXN0ZWRSZWN0ID0gd2luZG93UmVjdDsKKyAgICByZXF1
ZXN0ZWRSZWN0Lm1vdmUoeCwgeSk7CisKICAgICAvLyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMg
dGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjay4u
LikKLSAgICBhZGp1c3RXaW5kb3dSZWN0KHNyLCBmciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJv
bWUoKS0+c2V0V2luZG93UmVjdChmcik7CisgICAgYWRqdXN0V2luZG93UmVjdChwYWdlLCBob3N0
Qm91bmRzLCB3aW5kb3dSZWN0LCByZXF1ZXN0ZWRSZWN0KTsKKyAgICBIb3N0UmVjdCBuZXdXaW5k
b3dSZWN0ID0gY2hyb21lLT5tYXBGcm9tQ1NTVG9Ib3N0UmVjdCh3aW5kb3dSZWN0KTsKKworICAg
IHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KG5ld1dpbmRvd1JlY3QpOwogfQogCiB2b2lk
IERPTVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKQEAgLTE0ODgsMTEg
KzE1MDIsMTcgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNv
bnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7Ci0g
ICAgRmxvYXRTaXplIGRlc3QgPSBmci5zaXplKCkgKyBGbG9hdFNpemUoeCwgeSk7Ci0gICAgRmxv
YXRSZWN0IHVwZGF0ZShmci5sb2NhdGlvbigpLCBkZXN0KTsKLSAgICBhZGp1c3RXaW5kb3dSZWN0
KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSksIGZyLCB1cGRh
dGUpOwotICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGZyKTsKKyAgICBDaHJvbWUq
IGNocm9tZSA9IHBhZ2UtPmNocm9tZSgpOworICAgIEZsb2F0UmVjdCBob3N0Qm91bmRzID0gY2hy
b21lLT5tYXBGcm9tSG9zdFRvQ1NTUmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5G
cmFtZSgpLT52aWV3KCkpKTsKKyAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IGNocm9tZS0+bWFw
RnJvbUhvc3RUb0NTU1JlY3QoY2hyb21lLT53aW5kb3dSZWN0KCkpOworCisgICAgRmxvYXRSZWN0
IHJlcXVlc3RlZFJlY3Qod2luZG93UmVjdC5sb2NhdGlvbigpLCB3aW5kb3dSZWN0LnNpemUoKSAr
IEZsb2F0U2l6ZSh4LCB5KSk7CisKKyAgICAvLyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFs
a3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikK
KyAgICBhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIGhvc3RCb3VuZHMsIHdpbmRvd1JlY3QsIHJlcXVl
c3RlZFJlY3QpOworICAgIEhvc3RSZWN0IG5ld1dpbmRvd1JlY3QgPSBjaHJvbWUtPm1hcEZyb21D
U1NUb0hvc3RSZWN0KHdpbmRvd1JlY3QpOworCisgICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRv
d1JlY3QobmV3V2luZG93UmVjdCk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpyZXNpemVUbyhmbG9h
dCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBjb25zdApAQCAtMTUwNywxMSArMTUyNywxNyBAQCB2b2lk
IERPTVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKICAg
ICBpZiAobV9mcmFtZSAhPSBwYWdlLT5tYWluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsKLSAgICBGbG9h
dFNpemUgZGVzdCA9IEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKLSAgICBGbG9hdFJlY3QgdXBk
YXRlKGZyLmxvY2F0aW9uKCksIGRlc3QpOwotICAgIGFkanVzdFdpbmRvd1JlY3Qoc2NyZWVuQXZh
aWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKSwgZnIsIHVwZGF0ZSk7Ci0gICAg
cGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoZnIpOworICAgIENocm9tZSogY2hyb21lID0g
cGFnZS0+Y2hyb21lKCk7CisgICAgRmxvYXRSZWN0IGhvc3RCb3VuZHMgPSBjaHJvbWUtPm1hcEZy
b21Ib3N0VG9DU1NSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZp
ZXcoKSkpOworICAgIEZsb2F0UmVjdCB3aW5kb3dSZWN0ID0gY2hyb21lLT5tYXBGcm9tSG9zdFRv
Q1NTUmVjdChjaHJvbWUtPndpbmRvd1JlY3QoKSk7CisKKyAgICBGbG9hdFJlY3QgcmVxdWVzdGVk
UmVjdCh3aW5kb3dSZWN0LmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CisK
KyAgICAvLyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJv
d3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikKKyAgICBhZGp1c3RXaW5kb3dSZWN0
KHBhZ2UsIGhvc3RCb3VuZHMsIHdpbmRvd1JlY3QsIHJlcXVlc3RlZFJlY3QpOworICAgIEhvc3RS
ZWN0IG5ld1dpbmRvd1JlY3QgPSBjaHJvbWUtPm1hcEZyb21DU1NUb0hvc3RSZWN0KHdpbmRvd1Jl
Y3QpOworCisgICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QobmV3V2luZG93UmVjdCk7
CiB9CiAKIGludCBET01XaW5kb3c6OnNldFRpbWVvdXQoUGFzc093blB0cjxTY2hlZHVsZWRBY3Rp
b24+IGFjdGlvbiwgaW50IHRpbWVvdXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTkzMCwxNCAr
MTk1Niw2IEBAIFBhc3NSZWZQdHI8RE9NV2luZG93PiBET01XaW5kb3c6Om9wZW4oY29uc3QgU3Ry
aW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluCiAgICAgfQogCiAgICAgV2luZG93RmVh
dHVyZXMgd2luZG93RmVhdHVyZXMod2luZG93RmVhdHVyZXNTdHJpbmcpOwotICAgIEZsb2F0UmVj
dCB3aW5kb3dSZWN0KHdpbmRvd0ZlYXR1cmVzLnhTZXQgPyB3aW5kb3dGZWF0dXJlcy54IDogMCwg
d2luZG93RmVhdHVyZXMueVNldCA/IHdpbmRvd0ZlYXR1cmVzLnkgOiAwLAotICAgICAgICB3aW5k
b3dGZWF0dXJlcy53aWR0aFNldCA/IHdpbmRvd0ZlYXR1cmVzLndpZHRoIDogMCwgd2luZG93RmVh
dHVyZXMuaGVpZ2h0U2V0ID8gd2luZG93RmVhdHVyZXMuaGVpZ2h0IDogMCk7Ci0gICAgUGFnZSog
cGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKLSAgICBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3Qo
c2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlID8gcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSA6IDAp
LCB3aW5kb3dSZWN0LCB3aW5kb3dSZWN0KTsKLSAgICB3aW5kb3dGZWF0dXJlcy54ID0gd2luZG93
UmVjdC54KCk7Ci0gICAgd2luZG93RmVhdHVyZXMueSA9IHdpbmRvd1JlY3QueSgpOwotICAgIHdp
bmRvd0ZlYXR1cmVzLmhlaWdodCA9IHdpbmRvd1JlY3QuaGVpZ2h0KCk7Ci0gICAgd2luZG93RmVh
dHVyZXMud2lkdGggPSB3aW5kb3dSZWN0LndpZHRoKCk7CiAKICAgICBGcmFtZSogcmVzdWx0ID0g
Y3JlYXRlV2luZG93KHVybFN0cmluZywgZnJhbWVOYW1lLCB3aW5kb3dGZWF0dXJlcywgYWN0aXZl
V2luZG93LCBmaXJzdEZyYW1lLCBtX2ZyYW1lKTsKICAgICByZXR1cm4gcmVzdWx0ID8gcmVzdWx0
LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRl
eCA5NWY2ZWYxZWVkZWNlOTNiY2ZkMWQwYzY2M2FiNjY2YWM1ZmVmYTY1Li4xYjdiZmI4NWRhMjk5
NjUyOTg5NWRhNzNlNzE5NzRhYjljZWE2MWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAg
LTEyMCw3ICsxMjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBib29s
IGRpc3BhdGNoQWxsUGVuZGluZ0JlZm9yZVVubG9hZEV2ZW50cygpOwogICAgICAgICBzdGF0aWMg
dm9pZCBkaXNwYXRjaEFsbFBlbmRpbmdVbmxvYWRFdmVudHMoKTsKIAotICAgICAgICB2b2lkIGFk
anVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3JlZW4sIEZsb2F0UmVjdCYgd2luZG93
LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKSBjb25zdDsKKyAgICAgICAgc3RhdGlj
IHZvaWQgYWRqdXN0V2luZG93UmVjdChQYWdlKiwgY29uc3QgRmxvYXRSZWN0JiBzY3JlZW4sIEZs
b2F0UmVjdCYgd2luZG93LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKTsKIAogICAg
ICAgICAvLyBGSVhNRTogV2UgY2FuIHJlbW92ZSB0aGlzIGZ1bmN0aW9uIG9uY2UgVjggc2hvd01v
ZGFsRGlhbG9nIGlzIGNoYW5nZWQgdG8gdXNlIERPTVdpbmRvdy4KICAgICAgICAgc3RhdGljIHZv
aWQgcGFyc2VNb2RhbERpYWxvZ0ZlYXR1cmVzKGNvbnN0IFN0cmluZyYsIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2lu
ZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgKaW5kZXggN2M1YmIy
MDEyMWRmODczNDRiZjlmZDA0M2MyM2QwMTg4Zjg4YzE0Ni4uMDAzZGMyMjFjZmZmNWRkOTViMDUw
ODdjMzViOGJmOThlZGViNjg2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
SG9zdFdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaApA
QCAtMjYsMTIgKzI2LDE2IEBACiAjaWZuZGVmIEhvc3RXaW5kb3dfaAogI2RlZmluZSBIb3N0V2lu
ZG93X2gKIAorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIldpZGdldC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1cnNvcjsKIAorLy8gQSBIb3N0UmVjdCBpcyBp
biB0aGUgVUkgY29vcmRpbmF0ZSBzeXN0ZW0gbmF0aXZlIHRvIHRoZSBjaHJvbWUgb3Igd2luZG93
aW5nIHN5c3RlbS4KK3R5cGVkZWYgRmxvYXRSZWN0IEhvc3RSZWN0OworCiBjbGFzcyBIb3N0V2lu
ZG93IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShIb3N0V2luZG93KTsgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC01NSwxMyArNTksMTcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmIHNjcm9s
bFBvaW50KSA9IDA7CiAjZW5kaWYKIAorICAgIC8vIE1ldGhvZHMgZm9yIG1hcHBpbmcgYmV0d2Vl
biBob3N0IFVJIHVuaXRzIGFuZCBDU1MgdW5pdHMsIHdoaWNoIG1heSBkaWZmZXIgaW4gcGl4ZWwg
ZGVuc2l0eSBhbmQgb3JpZ2luLgorICAgIHZpcnR1YWwgRmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9D
U1NSZWN0KGNvbnN0IEhvc3RSZWN0JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgSG9zdFJlY3Qg
bWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3QgPSAwOworCiAgICAg
Ly8gTWV0aG9kcyBmb3IgZG9pbmcgY29vcmRpbmF0ZSBjb252ZXJzaW9ucyB0byBhbmQgZnJvbSBz
Y3JlZW4gY29vcmRpbmF0ZXMuCiAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3
KGNvbnN0IEludFBvaW50JikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW50UmVjdCByb290Vmll
d1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7CiAKICAgICAvLyBNZXRob2QgZm9y
IHJldHJpZXZpbmcgdGhlIG5hdGl2ZSBjbGllbnQgb2YgdGhlIHBhZ2UuCiAgICAgdmlydHVhbCBQ
bGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgPSAwOwotICAgIAor
CiAgICAgLy8gVG8gbm90aWZ5IFdlYktpdCBvZiBzY3JvbGxiYXIgbW9kZSBjaGFuZ2VzLgogICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0ID0gMDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDc4YzEyYjJjOTZmYjg1NmNkOWMx
YzE5YzlmMzU2MGYxNzE0ZjY5YjcuLjc4YjhkNjE0YmUwZjIxODQ1Njk1ZTk2YTQ1Y2JkNGQ3ODli
OTExNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTE1MywxMiAr
MTUzLDI0IEBAIHZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6Y2hyb21lRGVzdHJveWVkKCkK
ICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzZXRX
aW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpCitGbG9hdFJlY3QgQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeTo6bWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgSG9zdFJlY3QmIHJlY3QpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gcmVjdDsKK30KKworSG9zdFJlY3Qg
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6bWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRS
ZWN0JiByZWN0KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHJl
Y3Q7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6c2V0V2luZG93UmVjdChjb25z
dCBIb3N0UmVjdCYpCiB7CiAgICAgLy8gVGhlIHdpbmRvdyBkaW1lbnNpb25zIGFyZSBmaXhlZCBp
biB0aGUgUklNIHBvcnQuCiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojp3
aW5kb3dSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OndpbmRvd1JlY3Qo
KQogewogICAgIEludFNpemUgd2luZG93U2l6ZTsKIApAQCAtMTY4LDEwICsxODAsMTEgQEAgRmxv
YXRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OndpbmRvd1JlY3QoKQogICAgIHJldHVybiBG
bG9hdFJlY3QoMCwgMCwgd2luZG93U2l6ZS53aWR0aCgpLCB3aW5kb3dTaXplLmhlaWdodCgpKTsK
IH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OnBhZ2VSZWN0KCkKK0hvc3RS
ZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OnZpZXdwb3J0UmVjdCgpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KCk7CisgICAgLy8gVGhpcyBtZWFucyB0
aGF0IHRoZSB3aW5kb3cgcmVjdCBpcyB1c2VkIGZvciB3aW5kb3cgcmVzaXppbmcuCisgICAgcmV0
dXJuIHdpbmRvd1JlY3QoKTsKIH0KIAogZmxvYXQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6c2Nh
bGVGYWN0b3IoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggZTEyOWY0NTg0
MjE5NmJhNWU2NTFjNWUwZDg1NmY5ZTJhYmJiZTg1YS4uMzg3YzNmZTZiNDdjNjAyYjZhYmFlZDhi
NjdkZDA4ZmYzNTA4ZGY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0z
Nyw5ICszNywxMSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVk
KCk7CiAgICAgdmlydHVhbCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gMDsgfTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0
dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgcGFnZVJl
Y3QoKTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBtYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBI
b3N0UmVjdCYpIGNvbnN0OworICAgIHZpcnR1YWwgSG9zdFJlY3QgbWFwRnJvbUNTU1RvSG9zdFJl
Y3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1Jl
Y3QoY29uc3QgSG9zdFJlY3QmKTsKKyAgICB2aXJ0dWFsIEhvc3RSZWN0IHdpbmRvd1JlY3QoKTsK
KyAgICB2aXJ0dWFsIEhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpOwogICAgIHZpcnR1YWwgZmxvYXQg
c2NhbGVGYWN0b3IoKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKTsKICAgICB2aXJ0dWFsIHZv
aWQgdW5mb2N1cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcAppbmRleCA5NDk1OTM4MGE2MDZkOWQxMmU3YmY5NzU1MmFmYzRiYTZjY2Q5YmU2
Li41NDI0Yjc1MTM5MzE2ZWVlODQwYThiZTdmM2NjNWFkYmI0NTRkYzlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtMTU4LDEzICsx
NTgsMjUgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIC8v
IE91ciBsaWZldGltZSBpcyBib3VuZCB0byB0aGUgV2ViVmlld0ltcGwuCiB9CiAKLXZvaWQgQ2hy
b21lQ2xpZW50SW1wbDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHIpCitGbG9hdFJl
Y3QgQ2hyb21lQ2xpZW50SW1wbDo6bWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgV2ViQ29yZTo6
SG9zdFJlY3QmIHJlY3QpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gcmVjdDsKK30KKworV2ViQ29yZTo6SG9zdFJlY3QgQ2hyb21lQ2xpZW50SW1wbDo6bWFwRnJv
bUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SW1w
bDo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAobV93ZWJW
aWV3LT5jbGllbnQoKSkKLSAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+c2V0V2luZG93UmVj
dChJbnRSZWN0KHIpKTsKKyAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+c2V0V2luZG93UmVj
dChJbnRSZWN0KHJlY3QpKTsKIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudEltcGw6OndpbmRv
d1JlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50SW1wbDo6d2luZG93UmVjdCgpCiB7CiAgICAg
V2ViUmVjdCByZWN0OwogICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQpAQCAtMTc2LDEwICsx
ODgsMTAgQEAgRmxvYXRSZWN0IENocm9tZUNsaWVudEltcGw6OndpbmRvd1JlY3QoKQogICAgICAg
ICByZWN0LndpZHRoID0gbV93ZWJWaWV3LT5zaXplKCkud2lkdGg7CiAgICAgICAgIHJlY3QuaGVp
Z2h0ID0gbV93ZWJWaWV3LT5zaXplKCkuaGVpZ2h0OwogICAgIH0KLSAgICByZXR1cm4gRmxvYXRS
ZWN0KHJlY3QpOworICAgIHJldHVybiBIb3N0UmVjdChyZWN0KTsKIH0KIAotRmxvYXRSZWN0IENo
cm9tZUNsaWVudEltcGw6OnBhZ2VSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNsaWVudEltcGw6OnZp
ZXdwb3J0UmVjdCgpCiB7CiAgICAgLy8gV2UgaGlkZSB0aGUgZGV0YWlscyBvZiB0aGUgd2luZG93
J3MgYm9yZGVyIHRoaWNrbmVzcyBmcm9tIHRoZSB3ZWIgcGFnZSBieQogICAgIC8vIHNpbXBsZSBy
ZS11c2luZyB0aGUgd2luZG93IHBvc2l0aW9uIGhlcmUuICBTbywgZnJvbSB0aGUgcG9pbnQtb2Yt
dmlldyBvZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CmluZGV4IDc3MDg0ZjgwMTAyZjYyMzdiNjc4MmRjOGI2MGZjYzJjZTI2Njk1MjAuLmQxYmEzMWFh
ZTFkNTI0MmU4Y2QzYWUwZmQ5OWEyMDRkMDU0N2YyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTczLDkgKzczLDE0IEBAIHB1YmxpYzoK
IAogICAgIC8vIENocm9tZUNsaWVudCBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVE
ZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0
KCk7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGFnZVJlY3QoKTsKKworICAgIHZp
cnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9DU1NSZWN0KGNvbnN0IFdlYkNv
cmU6Okhvc3RSZWN0JikgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0UmVjdCBtYXBG
cm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBjb25zdDsKKworICAg
IHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6Okhvc3RSZWN0Jik7Cisg
ICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBX
ZWJDb3JlOjpIb3N0UmVjdCB2aWV3cG9ydFJlY3QoKTsKKwogICAgIHZpcnR1YWwgdm9pZCBmb2N1
cygpOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CiAgICAgdmlydHVhbCBib29sIGNhblRh
a2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCA1Mzc0MjRhOTQz
ZDA3ZDMzNTUxOWExMTNjMTM5YzI4MDYxMDYwODE3Li45NzkwODc5YzA4N2IxZjA0NmU5YWNkOGMy
NjBjOGIwNmJmOTg2ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTExNiwxNyArMTE2LDMxIEBAIHZvaWQgQ2hy
b21lQ2xpZW50RWZsOjpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKikKIHsKIH0KIAotRmxvYXRS
ZWN0IENocm9tZUNsaWVudEVmbDo6d2luZG93UmVjdCgpCitGbG9hdFJlY3QgQ2hyb21lQ2xpZW50
RWZsOjptYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkgY29uc3QKK3sK
KyAgICBGbG9hdFJlY3QgcmVzdWx0ID0gcmVjdDsKKyAgICByZXN1bHQuc2NhbGUoMSAvIEVXS1By
aXZhdGU6OmNvcmVQYWdlKG1fdmlldyktPmRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK0hvc3RSZWN0IENocm9tZUNsaWVudEVmbDo6bWFwRnJvbUNTU1RvSG9z
dFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSBjb25zdAoreworICAgIEhvc3RSZWN0IHJlc3Vs
dCA9IHJlY3Q7CisgICAgcmVzdWx0LnNjYWxlKEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldykt
PmRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0hvc3RSZWN0
IENocm9tZUNsaWVudEVmbDo6d2luZG93UmVjdCgpCiB7CiAgICAgaW50IHgsIHksIHdpZHRoLCBo
ZWlnaHQ7CiAKICAgICBFY29yZV9FdmFzKiBlZSA9IGVjb3JlX2V2YXNfZWNvcmVfZXZhc19nZXQo
ZXZhc19vYmplY3RfZXZhc19nZXQobV92aWV3KSk7CiAgICAgZWNvcmVfZXZhc19yZXF1ZXN0X2dl
b21ldHJ5X2dldChlZSwgJngsICZ5LCAmd2lkdGgsICZoZWlnaHQpOwogCi0gICAgcmV0dXJuIEZs
b2F0UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICByZXR1cm4gSG9zdFJlY3QoeCwgeSwg
d2lkdGgsIGhlaWdodCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRXaW5kb3dSZWN0
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRXaW5kb3dS
ZWN0KGNvbnN0IEhvc3RSZWN0JiByZWN0KQogewogICAgIGlmICghZXdrX3ZpZXdfc2V0dGluZ19l
bmFibGVfYXV0b19yZXNpemVfd2luZG93X2dldChtX3ZpZXcpKQogICAgICAgICByZXR1cm47CkBA
IC0xMzUsOSArMTQ5LDEzIEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRXaW5kb3dSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICBlY29yZV9ldmFzX21vdmVfcmVzaXplKGVlLCByZWN0
LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiB9CiAKLUZsb2F0
UmVjdCBDaHJvbWVDbGllbnRFZmw6OnBhZ2VSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNsaWVudEVm
bDo6dmlld3BvcnRSZWN0KCkKIHsKLSAgICByZXR1cm4gZXdrX3ZpZXdfcGFnZV9yZWN0X2dldCht
X3ZpZXcpOworICAgIC8vIFRoaXMgcmVxdWlyZXMgRnJhbWVWaWV3IHRvIGJlIHRoZSBzYW1lIHNp
emUgYXMgdGhlIHZpZXdwb3J0LgorICAgIEhvc3RSZWN0IHJlY3QgPSBld2tfdmlld19wYWdlX3Jl
Y3RfZ2V0KG1fdmlldyk7CisKKyAgICBpZiAocmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biB3aW5kb3dSZWN0KCk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpmb2N1cygpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCmlu
ZGV4IDY4ZGE0NWE4YTgxNmYzMDhjNTdlYzE3OTc4NzJmODQzYjUxNmY2NDcuLjlmNzBkZjFlNzUx
MWNmOGUxN2JlZjdjYzA5ZTE0MDQ0YWNhOTA3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC00OCwxMCArNDgsMTQgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1
YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3
aW5kb3dSZWN0KCk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIC8v
IE1ldGhvZHMgZm9yIG1hcHBpbmcgYmV0d2VlbiBob3N0IFVJIHVuaXRzIGFuZCBDU1MgdW5pdHMs
IHdoaWNoIG1heSBkaWZmZXIgaW4gcGl4ZWwgZGVuc2l0eSBhbmQgb3JpZ2luLgorICAgIHZpcnR1
YWwgRmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9DU1NSZWN0KGNvbnN0IEhvc3RSZWN0JikgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBIb3N0UmVjdCBtYXBGcm9tQ1NTVG9Ib3N0UmVjdChjb25z
dCBGbG9hdFJlY3QmKSBjb25zdCBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5k
b3dSZWN0KGNvbnN0IEhvc3RSZWN0Jik7CisgICAgdmlydHVhbCBIb3N0UmVjdCB3aW5kb3dSZWN0
KCk7CisgICAgdmlydHVhbCBIb3N0UmVjdCB2aWV3cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3LmNwcAppbmRleCBiN2E4NGIxZjkxYjM4Mjk2ZjRlNjQwNWRlOTNlMmRkYmMyMWQ3
ZTgxLi5mYzkxZWQ0OTc2ZDFjYzUxZTA1YmE5OGU3MDUwOWQ5NjA4NDVkMzM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTEzMDQsNyArMTMwNCw3IEBAIHN0YXRpYyBXZWJDb3Jl
OjpWaWV3cG9ydEF0dHJpYnV0ZXMgX2V3a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfY29tcHV0
ZShFd2tfVmllCiAgICAgaW50IGRldmljZURQSSA9IFdlYkNvcmU6OmdldERQSSgpOwogICAgIHBy
aXYtPnNldHRpbmdzLmRldmljZVBpeGVsUmF0aW8gPSBkZXZpY2VEUEkgLyBXZWJDb3JlOjpWaWV3
cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdldERQSTsKIAotICAgIFdlYkNvcmU6OkludFJl
Y3QgYXZhaWxhYmxlUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QocHJpdi0+cGFnZS0+Y2hyb21lKCkt
PmNsaWVudCgpLT5wYWdlUmVjdCgpKTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGF2YWlsYWJsZVJl
Y3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYtPnBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+dmll
d3BvcnRSZWN0KCkpOwogICAgIFdlYkNvcmU6OkludFJlY3QgZGV2aWNlUmVjdCA9IGVuY2xvc2lu
Z0ludFJlY3QocHJpdi0+cGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT53aW5kb3dSZWN0KCkpOwog
CiAgICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgPSBXZWJDb3JlOjpj
b21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKHByaXYtPnZpZXdwb3J0QXJndW1lbnRzLCBkZXNrdG9w
V2lkdGgsIGRldmljZVJlY3Qud2lkdGgoKSwgZGV2aWNlUmVjdC5oZWlnaHQoKSwgcHJpdi0+c2V0
dGluZ3MuZGV2aWNlUGl4ZWxSYXRpbywgYXZhaWxhYmxlUmVjdC5zaXplKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5k
ZXggNjE1MmY1MDgwYmZiZGVjOWNlNDQxYzljMzkxNTAyYjIwMDE5OTk4NS4uZDkzMGM2YjJlZDEx
ODU2YWY2YTk4ZmJmZjNmN2U3OWQyODA1ZTg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC0xMDQsNyArMTA0LDE5
IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlz
OwogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KCkKK0Zsb2F0UmVjdCBD
aHJvbWVDbGllbnQ6Om1hcEZyb21Ib3N0VG9DU1NSZWN0KGNvbnN0IEhvc3RSZWN0JiByZWN0KSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK0hv
c3RSZWN0IENocm9tZUNsaWVudDo6bWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHJlY3Q7
Cit9CisKK0hvc3RSZWN0IENocm9tZUNsaWVudDo6d2luZG93UmVjdCgpCiB7CiAgICAgR3RrV2lk
Z2V0KiB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKG1fd2ViVmll
dykpOwogICAgIGlmICh3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3cod2luZG93KSkgewpA
QCAtMTE2LDcgKzEyOCw3IEBAIEZsb2F0UmVjdCBDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQog
ICAgIHJldHVybiBGbG9hdFJlY3QoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnQ6OnNldFdpbmRv
d1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQordm9pZCBDaHJvbWVDbGllbnQ6OnNldFdpbmRv
d1JlY3QoY29uc3QgSG9zdFJlY3QmIHJlY3QpCiB7CiAgICAgSW50UmVjdCBpbnRyZWN0ID0gSW50
UmVjdChyZWN0KTsKICAgICBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyogd2ViV2luZG93RmVhdHVy
ZXMgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dpbmRvd19mZWF0dXJlcyhtX3dlYlZpZXcpOwpAQCAt
MTQ5LDcgKzE2MSw3IEBAIHN0YXRpYyBJbnRSZWN0IGdldFdlYlZpZXdSZWN0KFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcpCiAgICAgcmV0dXJuIEludFJlY3QoYWxsb2NhdGlvbi54LCBhbGxvY2F0aW9u
LnksIGFsbG9jYXRpb24ud2lkdGgsIGFsbG9jYXRpb24uaGVpZ2h0KTsKIH0KIAotRmxvYXRSZWN0
IENocm9tZUNsaWVudDo6cGFnZVJlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50Ojp2aWV3cG9y
dFJlY3QoKQogewogICAgIHJldHVybiBnZXRXZWJWaWV3UmVjdChtX3dlYlZpZXcpOwogfQpAQCAt
Njc5LDcgKzY5MSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYg
ZGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uCiAgICAgLy8gQ29tcHV0ZSB0
aGUgc2Nyb2xsIHJlcGFpbnQgcmVnaW9uLiBXZSBlbnN1cmUgdGhhdCB3ZSBhcmUgbm90IHN1YnRy
YWN0aW5nIGFyZWFzCiAgICAgLy8gdGhhdCB3ZSd2ZSBzY3JvbGxlZCBmcm9tIG91dHNpZGUgdGhl
IHZpZXdwb3J0IGZyb20gdGhlIHJlcGFpbnQgcmVnaW9uLgogICAgIEludFJlY3Qgb25TY3JlZW5T
Y3JvbGxSZWN0ID0gcmVjdFRvU2Nyb2xsOwotICAgIG9uU2NyZWVuU2Nyb2xsUmVjdC5pbnRlcnNl
Y3QoSW50UmVjdChJbnRQb2ludCgpLCBlbmNsb3NpbmdJbnRSZWN0KHBhZ2VSZWN0KCkpLnNpemUo
KSkpOworICAgIG9uU2NyZWVuU2Nyb2xsUmVjdC5pbnRlcnNlY3QoSW50UmVjdChJbnRQb2ludCgp
LCBlbmNsb3NpbmdJbnRSZWN0KHZpZXdwb3J0UmVjdCgpKS5zaXplKCkpKTsKICAgICBSZWdpb24g
c2Nyb2xsUmVwYWludFJlZ2lvbiA9IHN1YnRyYWN0KHJlY3RUb1Njcm9sbCwgdHJhbnNsYXRlKG9u
U2NyZWVuU2Nyb2xsUmVjdCwgZGVsdGEpKTsKIAogICAgIG1fZGlydHlSZWdpb24udW5pdGUoc2Ny
b2xsUmVwYWludFJlZ2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5oCmluZGV4IDQ0YzIxMWFkNDYyODdlZmZkNzQzMDRjMDJkY2M2
ZGIzMGZhZjYwM2MuLjNlNGIyMGRkMDhjYjg4MTAxZDIxNDM1ZWRmMDEyNzg5YTI3ZjNjNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5oCkBAIC00OCwxMCArNDgsMTIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRX
aW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwotICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3
aW5kb3dSZWN0KCk7CisgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9DU1NS
ZWN0KGNvbnN0IEhvc3RSZWN0JikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgSG9zdFJlY3QgbWFw
RnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAKLSAgICAgICAgdmly
dHVhbCBGbG9hdFJlY3QgcGFnZVJlY3QoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNldFdpbmRv
d1JlY3QoY29uc3QgSG9zdFJlY3QmKTsKKyAgICAgICAgdmlydHVhbCBIb3N0UmVjdCB3aW5kb3dS
ZWN0KCk7CisgICAgICAgIHZpcnR1YWwgSG9zdFJlY3Qgdmlld3BvcnRSZWN0KCk7CiAKICAgICAg
ICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRy
aWJ1dGVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJp
YnV0ZXMuY3BwCmluZGV4IGQxYTgzNzg2OTU2YTc3NWI3ZTRlMzkyOTljZjhlODc1ZGM1YmM0NDgu
LmU4Mjc1YzY5MGE3MzdlNThiYTQ2ZjVjMzhlMGM1NzcwOGNhNGFhMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCkBA
IC01MjUsNyArNTI1LDcgQEAgdm9pZCB3ZWJraXRWaWV3cG9ydEF0dHJpYnV0ZXNSZWNvbXB1dGUo
V2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzKiB2aWV3cG9ydEF0dHJpYnUKICAgICBwcml2LT5kZXZp
Y2VXaWR0aCA9IHdpbmRvd1JlY3Qud2lkdGgoKTsKICAgICBwcml2LT5kZXZpY2VIZWlnaHQgPSB3
aW5kb3dSZWN0LmhlaWdodCgpOwogCi0gICAgSW50UmVjdCByZWN0KHdlYlZpZXctPnByaXYtPmNv
cmVQYWdlLT5jaHJvbWUoKS0+cGFnZVJlY3QoKSk7CisgICAgSW50UmVjdCByZWN0KHdlYlZpZXct
PnByaXYtPmNvcmVQYWdlLT5jaHJvbWUoKS0+dmlld3BvcnRSZWN0KCkpOwogICAgIHByaXYtPmF2
YWlsYWJsZVdpZHRoID0gcmVjdC53aWR0aCgpOwogICAgIHByaXYtPmF2YWlsYWJsZUhlaWdodCA9
IHJlY3QuaGVpZ2h0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNzA3MzQ5YzViZDY1MjVhMzU4NzdhZTJhYmYyZTMw
ZWY4ZDdjZjViMS4uZGQ2YjJjNjIzYWY2MGFkYWViYmQ2MTJkZDg1YzYwNmY2NmI4MTY2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTM5LDExICszOSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkKiB3ZWJWaWV3
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dm9pZCo+KG1fd2ViVmlldyk7IH0KICAgICAK
ICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgT1ZFUlJJREU7Ci0gICAgCi0gICAg
dmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVjdCgpIE9WRVJS
SURFOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGFnZVJlY3QoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBtYXBGcm9tSG9zdFRvQ1NTUmVjdChj
b25zdCBXZWJDb3JlOjpIb3N0UmVjdCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6SG9zdFJlY3QgbWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29u
c3QgV2ViQ29yZTo6SG9zdFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhv
c3RSZWN0IHdpbmRvd1JlY3QoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhvc3RS
ZWN0IHZpZXdwb3J0UmVjdCgpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKSBPVkVSUklERTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRl
eCBmMGJjZGE1Mjk5YmI0MzI4MmFjYjUxMDhlZDM3NjY3ZGU1OGUzMzVkLi5iMzgzY2QyZmJjNmRk
NzI3YTgwNjc5ZDQ3YTYxZmJhYTJjNmZkNTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xNDMsMjMgKzE0MywzMyBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2hyb21lRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhp
czsKIH0KIAotLy8gVGhlc2UgZnVuY3Rpb25zIHNjYWxlIGJldHdlZW4gd2luZG93IGFuZCBXZWJW
aWV3IGNvb3JkaW5hdGVzIGJlY2F1c2UgSmF2YVNjcmlwdC9ET00gb3BlcmF0aW9ucyAKLS8vIGFz
c3VtZSB0aGF0IHRoZSBXZWJWaWV3IGFuZCB0aGUgd2luZG93IHNoYXJlIHRoZSBzYW1lIGNvb3Jk
aW5hdGUgc3lzdGVtLgorLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIHRvIHNjYWxlIGJldHdl
ZW4gd2luZG93IChob3N0IHVuaXRzKSBhbmQgV2ViVmlldyAoQ1NTIHVuaXQpIGNvb3JkaW5hdGVz
LgorRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6bWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3Qg
SG9zdFJlY3QmIGhvc3RSZWN0KSBjb25zdAoreworICAgIEZsb2F0UmVjdCBjc3NSZWN0ID0gaG9z
dFJlY3Q7CisgICAgY3NzUmVjdC5zZXRZKE5TTWF4WShbc2NyZWVuRm9yV2luZG93KFttX3dlYlZp
ZXcgd2luZG93XSkgZnJhbWVdKSAtIChjc3NSZWN0LnkoKSArIGNzc1JlY3QuaGVpZ2h0KCkpKTsg
Ly8gZmxpcAorICAgIHJldHVybiBjc3NSZWN0OworfQorCitIb3N0UmVjdCBXZWJDaHJvbWVDbGll
bnQ6Om1hcEZyb21DU1NUb0hvc3RSZWN0KGNvbnN0IEZsb2F0UmVjdCYgY3NzUmVjdCkgY29uc3QK
K3sKKyAgICBIb3N0UmVjdCBob3N0UmVjdCA9IGNzc1JlY3Q7CisgICAgaG9zdFJlY3Quc2V0WShO
U01heFkoW3NjcmVlbkZvcldpbmRvdyhbbV93ZWJWaWV3IHdpbmRvd10pIGZyYW1lXSkgLSAoaG9z
dFJlY3QueSgpICsgaG9zdFJlY3QuaGVpZ2h0KCkpKTsgLy8gZmxpcAorICAgIHJldHVybiBob3N0
UmVjdDsKK30KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxv
YXRSZWN0JiByZWN0KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QoY29uc3Qg
SG9zdFJlY3QmIHJlY3QpCiB7Ci0gICAgTlNSZWN0IHdpbmRvd1JlY3QgPSB0b0RldmljZVNwYWNl
KHJlY3QsIFttX3dlYlZpZXcgd2luZG93XSk7Ci0gICAgW1ttX3dlYlZpZXcgX1VJRGVsZWdhdGVG
b3J3YXJkZXJdIHdlYlZpZXc6bV93ZWJWaWV3IHNldEZyYW1lOndpbmRvd1JlY3RdOworICAgIFtb
bV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1fd2ViVmlldyBzZXRGcmFt
ZTpyZWN0XTsKIH0KIAotRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVjdCgpCitI
b3N0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQogewotICAgIE5TUmVjdCB3aW5k
b3dSZWN0ID0gW1ttX3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdGcmFtZTpt
X3dlYlZpZXddOwotICAgIHJldHVybiB0b1VzZXJTcGFjZSh3aW5kb3dSZWN0LCBbbV93ZWJWaWV3
IHdpbmRvd10pOworICAgIHJldHVybiBbW21fd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0g
d2ViVmlld0ZyYW1lOm1fd2ViVmlld107CiB9CiAKIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGFkZCBB
UEkgZm9yIHNldHRpbmcgYW5kIGdldHRpbmcgdGhpcy4KLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGll
bnQ6OnBhZ2VSZWN0KCkKK0hvc3RSZWN0IFdlYkNocm9tZUNsaWVudDo6dmlld3BvcnRSZWN0KCkK
IHsKICAgICByZXR1cm4gW21fd2ViVmlldyBmcmFtZV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCmluZGV4IGVhYWViMDEyZjg2
ZDBhNTMxMTBiNTc5NzczZjZkNWI4YzA1ZDkzNDIuLjBiZTA2ZDVkYzljY2E1NzNjNjlkNGYxNThh
ODQzZjM3ZDVmMDZkYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuY3BwCkBAIC0xNDQsNyArMTQ0LDE5IEBAIENocm9tZUNsaWVudFF0
Ojp+Q2hyb21lQ2xpZW50UXQoKQogI2VuZGlmCiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50UXQ6OnNl
dFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQorRmxvYXRSZWN0IENocm9tZUNsaWVu
dFF0OjptYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiByZWN0OworfQorCitIb3N0UmVjdCBD
aHJvbWVDbGllbnRRdDo6bWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisK
K3ZvaWQgQ2hyb21lQ2xpZW50UXQ6OnNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmIHJlY3Qp
CiB7CiAgICAgaWYgKCFtX3dlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKQEAgLTE1NywxMyArMTY5
LDIwIEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0KQogICAgIGxpa2UgdG9vbGJhcnMvc2Nyb2xsYmFycyBldGMuIEl0IGlzIHVzZWQgYnkg
dGhlIHZpZXdwb3J0IG1ldGEgdGFnIGFzIHdlbGwgYXMKICAgICBieSB0aGUgRE9NIFdpbmRvdyBv
YmplY3Q6IG91dGVySGVpZ2h0KCksIG91dGVyV2lkdGgoKSwgc2NyZWVuWCgpLCBzY3JlZW5ZKCku
CiAqLwotRmxvYXRSZWN0IENocm9tZUNsaWVudFF0Ojp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0IENo
cm9tZUNsaWVudFF0Ojp3aW5kb3dSZWN0KCkKIHsKICAgICBpZiAoIXBsYXRmb3JtUGFnZUNsaWVu
dCgpKQogICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiAgICAgcmV0dXJuIHBsYXRmb3JtUGFn
ZUNsaWVudCgpLT53aW5kb3dSZWN0KCk7CiB9CiAKK0hvc3RSZWN0IENocm9tZUNsaWVudFF0Ojp2
aWV3cG9ydFJlY3QoKQoreworICAgIGlmICghbV93ZWJQYWdlKQorICAgICAgICByZXR1cm4gd2lu
ZG93UmVjdCgpOworICAgIHJldHVybiBIb3N0UmVjdChRUmVjdEYoUVBvaW50RigwLCAwKSwgbV93
ZWJQYWdlLT52aWV3cG9ydFNpemUoKSkpOworfQorCiBib29sIENocm9tZUNsaWVudFF0OjphbGxv
d3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QKIHsKICAgICBpZiAoIXBsYXRmb3JtUGFn
ZUNsaWVudCgpKQpAQCAtMTcxLDEzICsxOTAsNiBAQCBib29sIENocm9tZUNsaWVudFF0OjphbGxv
d3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QKICAgICByZXR1cm4gcGxhdGZvcm1QYWdl
Q2xpZW50KCktPmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKTsKIH0KIAotRmxvYXRSZWN0
IENocm9tZUNsaWVudFF0OjpwYWdlUmVjdCgpCi17Ci0gICAgaWYgKCFtX3dlYlBhZ2UpCi0gICAg
ICAgIHJldHVybiBGbG9hdFJlY3QoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KFFSZWN0RihRUG9p
bnRGKDAsIDApLCBtX3dlYlBhZ2UtPnZpZXdwb3J0U2l6ZSgpKSk7Ci19Ci0KIHZvaWQgQ2hyb21l
Q2xpZW50UXQ6OmZvY3VzKCkKIHsKICAgICBpZiAoIW1fd2ViUGFnZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCBmNzM1OWQyZTI4
NzRhNzU1MTljMmY1Mzg3NjgxMzI5ODBhZTRiOWNkLi5hNjBlYmM0MTYwODU5MjhlNDk0ODdhZGFk
M2ZjN2JiMTliY2QxMTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCkBAIC02NCwxMCArNjQsMTMgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25z
dCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7CiAKLSAg
ICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IG1h
cEZyb21Ib3N0VG9DU1NSZWN0KGNvbnN0IEhvc3RSZWN0JikgY29uc3Q7CisgICAgdmlydHVhbCBI
b3N0UmVjdCBtYXBGcm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0Jik7CisgICAgdmly
dHVhbCBIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBIb3N0UmVjdCB2aWV3cG9y
dFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwgdm9pZCB1
bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAppbmRleCA2OGJkZGVmMDM0MTg0YjVkNDAxZDVjZDBmNzRhNTYyMWY2
NGI2OWUyLi4zYjA1NGI4MDBiMDliOGQ2NDg0ZTc5NTdkOGU0ZDg1ZDc4NTIwZjkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTg1LDcgKzg1LDE5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjaHJvbWVEZXN0cm95
ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0V2lu
ZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHIpCitGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojpt
YXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBIb3N0UmVjdCYgcikgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiByOworfQorCitIb3N0UmVjdCBXZWJDaHJvbWVDbGll
bnQ6Om1hcEZyb21DU1NUb0hvc3RSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiByOworfQorCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYgcikKIHsKICAgICBJV2ViVUlEZWxl
Z2F0ZSogdWlEZWxlZ2F0ZSA9IDA7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVs
ZWdhdGUoJnVpRGVsZWdhdGUpKSkgewpAQCAtOTUsNyArMTA3LDcgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByKQogICAgIH0KIH0KIAotRmxv
YXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVjdCgpCitIb3N0UmVjdCBXZWJDaHJvbWVD
bGllbnQ6OndpbmRvd1JlY3QoKQogewogICAgIElXZWJVSURlbGVnYXRlKiB1aURlbGVnYXRlID0g
MDsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkp
KSB7CkBAIC0xMDgsMTAgKzEyMCwxMCBAQCBGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5k
b3dSZWN0KCkKICAgICAgICAgICAgIHJldHVybiByZWN0OwogICAgIH0KIAotICAgIHJldHVybiBG
bG9hdFJlY3QoKTsKKyAgICByZXR1cm4gSG9zdFJlY3QoKTsKIH0KIAotRmxvYXRSZWN0IFdlYkNo
cm9tZUNsaWVudDo6cGFnZVJlY3QoKQorSG9zdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp2aWV3cG9y
dFJlY3QoKQogewogICAgIFJFQ1QgcmVjdDsKICAgICBtX3dlYlZpZXctPmZyYW1lUmVjdCgmcmVj
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCmluZGV4IDlhZWM3MzQ2ZjAyNTlmZWYwODVkYWE3YTY3NWNlMzhkZTVhN2Q0MzYuLjJh
YTA2YjJjZGZjZTcxZTU4ZmUyMjQyMjk4YzljNTA0ZWZiOWQ3YzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC00NCwxMCAr
NDQsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fd2ViVmlldzsgfQot
ICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKLSAgICAKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworCisgICAgdmlydHVhbCBX
ZWJDb3JlOjpGbG9hdFJlY3QgbWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgV2ViQ29yZTo6SG9z
dFJlY3QmKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhvc3RSZWN0IG1hcEZyb21DU1NU
b0hvc3RSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGNvbnN0OworCisgICAgdmlydHVh
bCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6SG9zdFJlY3QmKTsKKyAgICB2aXJ0
dWFsIFdlYkNvcmU6Okhvc3RSZWN0IHdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
Okhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwIGIvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKaW5kZXggZGU2YmY3MTkw
ZmIwMjM5YjQwMTc4ZmE0ZGU4YmVkY2Y0MDg1YmU0MS4uNDhmYTRjMzBjYjBjYzJmZGJhODBmNTY5
YTc4Y2RkYzk0ZDNlNTg3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKQEAgLTUwLDIyICs1MCwzNCBAQCB2
b2lkIENocm9tZUNsaWVudFdpbkNFOjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlz
OwogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50V2luQ0U6OndpbmRvd1JlY3QoKQorRmxvYXRS
ZWN0IENocm9tZUNsaWVudFdpbkNFOjptYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBIb3N0UmVj
dCYgcikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiByOworfQor
CitIb3N0UmVjdCBDaHJvbWVDbGllbnRXaW5DRTo6bWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IHI7Cit9CisKK0hvc3RSZWN0IENocm9tZUNsaWVudFdpbkNFOjp3aW5kb3dSZWN0KCkKIHsKICAg
ICBpZiAoIW1fd2ViVmlldykKLSAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOworICAgICAgICBy
ZXR1cm4gSG9zdFJlY3QoKTsKIAogICAgIFJFQ1QgcmVjdDsKICAgICBtX3dlYlZpZXctPmZyYW1l
UmVjdCgmcmVjdCk7CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V2lu
Q0U6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikKK3ZvaWQgQ2hyb21lQ2xpZW50V2lu
Q0U6OnNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRXaW5DRTo6cGFnZVJlY3QoKQorSG9zdFJl
Y3QgQ2hyb21lQ2xpZW50V2luQ0U6OnZpZXdwb3J0UmVjdCgpCiB7CiAgICAgcmV0dXJuIHdpbmRv
d1JlY3QoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuaAppbmRleCA5NmNlYTFhNjJhYmQ5ODVmYTEyMjBiY2I3ZjRk
NzllYzk2OTg3MTNmLi4zMWNmYjMzOTZjMzhiZjdhZjFiOWQ4ZDM3Y2NkMTdjYWFmMmIyMzU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFdpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRXaW5DRS5oCkBAIC0zOCwxMCArMzgsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dS
ZWN0KCk7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAg
IHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9DU1NSZWN0KGNvbnN0IFdl
YkNvcmU6Okhvc3RSZWN0JikgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0UmVjdCBt
YXBGcm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBjb25zdDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6Okhvc3RSZWN0Jik7
CisgICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpIb3N0UmVjdCB2aWV3cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBm
b2N1cygpOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwIGIvU291cmNlL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAppbmRleCA1ZjExNjdiNTQ3Y2Q2
MWE2ZjA1YWMyOGYxN2IzYWNkZTc2ZDE2ZjRjLi4xZDgwNDg3NjExZGNhZGVjY2I4NDBjNDZiZDRm
MDNkYTNlZDNiNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5jcHAKQEAgLTkwLDIxICs5MCwzMyBAQCB2b2lkIENocm9tZUNsaWVudFd4
OjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hy
b21lQ2xpZW50V3g6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikKK0Zsb2F0UmVjdCBD
aHJvbWVDbGllbnRXeDo6bWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgSG9zdFJlY3QmIHIpIGNv
bnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gcjsKIH0KIAotRmxvYXRS
ZWN0IENocm9tZUNsaWVudFd4Ojp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNsaWVudFd4
OjptYXBGcm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBGbG9hdFJlY3QmIHIpIGNvbnN0CiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KCk7CisgICAgcmV0dXJuIHI7
CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRXeDo6cGFnZVJlY3QoKQordm9pZCBDaHJvbWVD
bGllbnRXeDo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KCk7Cit9CisKK0hvc3RSZWN0IENocm9tZUNs
aWVudFd4Ojp3aW5kb3dSZWN0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBIb3N0UmVjdCgpOworfQorCitIb3N0UmVjdCBDaHJvbWVDbGllbnRXeDo6dmlld3BvcnRSZWN0
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBIb3N0UmVjdCgpOwogfQog
CiB2b2lkIENocm9tZUNsaWVudFd4Ojpmb2N1cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaCBiL1NvdXJjZS9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IDUwNTQwZjA5NDNlOWQ2OTYzZjE5NTRj
MTFlNjJjY2NhN2Y5ZDhhNTguLmU3ZmY1MWY2NjcwYTNlNzg1ZjRkNWZhYTQ0YjZiZTBhODFkNTJj
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGll
bnRXeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRX
eC5oCkBAIC00NSwxMCArNDUsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVE
ZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsK
LSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0
UmVjdCBwYWdlUmVjdCgpOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9DU1NS
ZWN0KGNvbnN0IEhvc3RSZWN0JikgY29uc3Q7CisgICAgdmlydHVhbCBIb3N0UmVjdCBtYXBGcm9t
Q1NTVG9Ib3N0UmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYpOworICAgIHZpcnR1YWwgSG9zdFJlY3Qgd2lu
ZG93UmVjdCgpOworICAgIHZpcnR1YWwgSG9zdFJlY3Qgdmlld3BvcnRSZWN0KCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZm9jdXMoKTsKICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCmluZGV4IDNlN2ZlMzI5NGZjNWVjZGRiNjBiMmI4YjI3ODI5NmUzYWM3
MDljMWIuLjJmOWI5MjFjOTdlZTViMjAyNmVmOTFiODRmYTMzNDIyMTQ4MDI0ZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKQEAgLTEwMSwyNCArMTAxLDUwIEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lKQor
RmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6bWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgSG9z
dFJlY3QmIHJlY3QpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkK
KyAgICBGbG9hdFJlY3QgcmVzdWx0ID0gcmVjdDsKKyAgICByZXN1bHQuc2NhbGUoMSAvIG1fcGFn
ZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyNlbHNlCisgICAg
cmV0dXJuIHJlY3Q7CisjZW5kaWYKK30KKworSG9zdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjptYXBG
cm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0Cit7CisjaWYgUExB
VEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKKyAgICBIb3N0UmVjdCByZXN1bHQgPSByZWN0Owor
ICAgIHJlc3VsdC5zY2FsZShtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIHJldHVy
biByZXN1bHQ7CisjZWxzZQorICAgIHJldHVybiByZWN0OworI2VuZGlmCit9CisKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JiB3aW5kb3dGcmFtZSkK
IHsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0V2luZG93RnJh
bWUod2luZG93RnJhbWUpKTsKIH0KIAotRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93
UmVjdCgpCitIb3N0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQogewotICAgIEZs
b2F0UmVjdCBuZXdXaW5kb3dGcmFtZTsKKyAgICBIb3N0UmVjdCBuZXdXaW5kb3dGcmFtZTsKIAog
ICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpHZXRXaW5kb3dGcmFtZSgpLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpHZXRXaW5kb3dGcmFtZTo6UmVwbHkobmV3V2luZG93RnJhbWUpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKSkKLSAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOworICAgICAgICByZXR1cm4gSG9zdFJl
Y3QoKTsKIAogICAgIHJldHVybiBuZXdXaW5kb3dGcmFtZTsKIH0KIAotRmxvYXRSZWN0IFdlYkNo
cm9tZUNsaWVudDo6cGFnZVJlY3QoKQorSG9zdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp2aWV3cG9y
dFJlY3QoKQogewotICAgIHJldHVybiBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBtX3BhZ2UtPnNp
emUoKSk7CisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgcmV0dXJuIEhvc3RSZWN0
KEZsb2F0UG9pbnQoKSwgbV9wYWdlLT52aWV3cG9ydFNpemUoKSk7CisjZWxzZQorICAgIHJldHVy
biBIb3N0UmVjdChGbG9hdFBvaW50KCksIG1fcGFnZS0+c2l6ZSgpKTsKKyNlbmRpZgogfQogCiB2
b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMWU2
MmY3YWJkNGNjMmJiODUyOWU1MGY3NzEwZjcyZDYwOGUwMWM2My4uNzMxMmIyNGIwNDk2NjE3YWIx
Yzk2MzFjOGE3MmZhYTQ3ZjJjMTUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC00NCwxOSAr
NDQsMjIgQEAgcHVibGljOgogICAgICAgICAsIG1fcGFnZShwYWdlKQogICAgIHsKICAgICB9Ci0g
ICAgCisKICAgICBXZWJQYWdlKiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQqIHdlYlZpZXcoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpIE9WRVJSSURFOwotICAgIAotICAg
IHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBPVkVS
UklERTsKLSAgICAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpIE9W
RVJSSURFOwotICAgIAorCisgICAgLy8gTWV0aG9kcyBmb3IgbWFwcGluZyBiZXR3ZWVuIGhvc3Qg
VUkgdW5pdHMgYW5kIENTUyB1bml0cywgd2hpY2ggbWF5IGRpZmZlciBpbiBwaXhlbCBkZW5zaXR5
IGFuZCBvcmlnaW4uCisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgbWFwRnJvbUhvc3RU
b0NTU1JlY3QoY29uc3QgV2ViQ29yZTo6SG9zdFJlY3QmKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6Okhvc3RSZWN0IG1hcEZyb21DU1NUb0hvc3RSZWN0KGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpIGNvbnN0IE9WRVJSSURFOworCisgICAgdmlydHVhbCB2b2lkIHNldFdp
bmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6SG9zdFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6Okhvc3RSZWN0IHdpbmRvd1JlY3QoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6Okhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpIE9WRVJSSURFOworCiAgICAgdmlydHVhbCB2
b2lkIGZvY3VzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKSBPVkVSUklE
RTsKICAgICAK
</data>
<flag name="commit-queue"
          id="188378"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173627</attachid>
            <date>2012-11-12 05:09:22 -0800</date>
            <delta_ts>2012-11-12 22:43:16 -0800</delta_ts>
            <desc>With manual test</desc>
            <filename>bug-101453-20121112140720.patch</filename>
            <type>text/plain</type>
            <size>66154</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRjMjEyODQ4MWNhZGU2
NGZiNTIzNTc0ZGY1ZmZkZjI0YzRkNWY2OC4uMTI1ZmJmMGFlM2U3MTE4NTc5ZTlhMjAwMWM3MTVh
OTZhYmFiODFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTExLTA4ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBG
aXggdHJhbnNmb3JtYXRpb24gYmV0d2VlbiBob3N0IGFuZCBjc3MgZm9yIG1vdmVUbywgcmVzaXpl
VG8gZXRjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDE0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZW5hbWUgcGFnZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJu
IHR5cGUuCisgICAgICAgIFVwZGF0ZSBhbGwgdXNlIHRoZXJlIG9mLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6bW92ZVdpbmRvd0J5KToKKworICAgICAg
ICAgICAgVXNlIG5ldyBtZXRob2QgbmFtZS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjptYXBGcm9tSG9zdFRv
Q1NTUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6bWFwRnJvbUNT
U1RvSG9zdFJlY3QpOgorICAgICAgICAoRW1wdHlDaHJvbWVDbGllbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RW1w
dHlDaHJvbWVDbGllbnQ6OnZpZXdwb3J0UmVjdCk6CisKKyAgICAgICAgICAgIEFkZCBlbXB0eSBp
bXBsZW1lbnRhdGlvbnMgYW5kIGFkanVzdCBleGlzdGluZyBtZXRob2RzLgorCisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6
CisKKyAgICAgICAgICAgIFNsaWdodGx5IHJlZmFjdG9yIHRvIHVzZSBuZXcgbWFwcGluZyBtZXRo
b2RzLgorCisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lOjptYXBGcm9tSG9zdFRvQ1NTUmVjdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZTo6bWFwRnJvbUNTU1RvSG9zdFJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lOjpzZXRXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6d2lu
ZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnZpZXdwb3J0UmVjdCk6CisgICAg
ICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKENocm9tZSk6CisgICAgICAgICogcGFnZS9D
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKENocm9tZUNsaWVudCk6CisKKyAgICAgICAgICAgIEFk
ZCBtYXBwaW5nIG1ldGhvZHMgdG8vZnJvbSBob3N0IGFuZCBDU1MgdW5pdHMuCisKKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmFkanVz
dFdpbmRvd1JlY3QpOiBNYWtlIGl0IHN0YXRpYy4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRv
dzo6b3V0ZXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpvdXRlcldpZHRo
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2NyZWVuWCk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnNjcmVlblkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpt
b3ZlQnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojptb3ZlVG8pOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVCeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3c6OnJlc2l6ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6IERvIG5v
dCBhZGp1c3QgV2luZG93RmVhdHVyZXMgaGVyZSBhcworICAgICAgICBjcmVhdGVXaW5kb3cgbm93
IGRvZXMgdGhhdC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAoRE9NV2lu
ZG93KToKKworICAgICAgICAgICAgVXNlIHRoZSBuZXcgbWFwcGluZyBtZXRob2RzIGZvciB0aGUg
RE9NIGZ1bmN0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL0hvc3RXaW5kb3cuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoSG9zdFdpbmRvdyk6CisKKyAgICAgICAgICAgIEFkZCBu
ZXcgdHlwZWRlZiBmcm9tIEZsb2F0UmVjdCB0byBIb3N0UmVjdAorCiAyMDEyLTExLTA5ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE11bHRpcGxlIExheW91dCBU
ZXN0cyAoZS5nLiBmYXN0L3JlcGFpbnQvamFwYW5lc2Utcmwtc2VsZWN0aW9uLWNsZWFyLmh0bWwp
IGlzIGZhaWxpbmcgYWZ0ZXIgcjEzMzg0MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmlu
ZGV4IGY2MmMwYjAwZjdlMTQ4ZGU4MGJhMzlhZjAwNDA4ZWZjOTVhMjZlMGQuLjFkY2VlY2Q5NWRl
MTIzODA5YjdmYmVlNDQ2OGM5NDMxNWQxOWZhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBGaXggdHJhbnNmb3JtYXRpb24g
YmV0d2VlbiBob3N0IGFuZCBjc3MgZm9yIG1vdmVUbywgcmVzaXplVG8gZXRjCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgbWV0aG9kcy90eXBl
cyBhbmQgcmV0dXJuIHdpbmRvd1JlY3QgaW5zdGVhZCBvZiBhbgorICAgICAgICBlbXB0eSBIb3N0
UmVjdCBpbiB2aWV3cG9ydFJlY3QuCisKKyAgICAgICAgQWRkIG1hcHBpbmcgc3R1YiBtZXRob2Rz
IHRvL2Zyb20gaG9zdCB0byBDU1MgdW5pdHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dEJsYWNrQmVycnk6Om1hcEZyb21Ib3N0VG9DU1NSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudEJsYWNrQmVycnk6Om1hcEZyb21DU1NUb0hvc3RSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6d2luZG93UmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojp2aWV3cG9ydFJlY3QpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAgICAgKENocm9t
ZUNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTExLTExICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlr
b3NAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVGhlIFFOWCBleHRlbnNpb24g
bWV0aG9kIHNob3VsZCBub3QgYmUgZW5hYmxlZCBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGZiYjVhMjJmZjY5MGJiZjdlYzk4Y2FhODRlYTZkMGVmNDVhYzRiYTYuLjJi
NWMxNTE1YTA5YTkxYTA3OWY4ZWE3NDg2ODY2YjUyM2U5ZTJlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTEtMDggIEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEZpeCB0cmFuc2Zvcm1h
dGlvbiBiZXR3ZWVuIGhvc3QgYW5kIGNzcyBmb3IgbW92ZVRvLCByZXNpemVUbyBldGMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSB0aGUgbWV0
aG9kcyBhbmQgdHlwZXMuCisKKyAgICAgICAgQWRkIG1hcHBpbmcgc3R1YiBtZXRob2RzIHRvL2Zy
b20gaG9zdCB0byBDU1MgdW5pdHMuCisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om1hcEZyb21Ib3N0VG9DU1NS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6bWFwRnJvbUNTU1RvSG9z
dFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzZXRXaW5kb3dSZWN0
KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6d2luZG93UmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnZpZXdwb3J0UmVjdCk6CisgICAgICAgICog
c3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEltcGwpOgorCiAy
MDEyLTExLTExICBTYWRydWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbY2hyb21pdW1dIEV4cG9zZSBDdXN0b21FdmVudCB0aHJvdWdoIFdlYkRPTUN1
c3RvbUV2ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDZiOTlhNjYwZmY1NTA5NmFhM2Q0YjJmNDEx
MDI5YjE4NWMyMDg1NTcuLmY5NjY1YTdjNTMwYTQzNDExZTJjMDZiNDQwNjc1ZWMzMGMyY2ExYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0xMS0wOCAgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRml4IHRy
YW5zZm9ybWF0aW9uIGJldHdlZW4gaG9zdCBhbmQgY3NzIGZvciBtb3ZlVG8sIHJlc2l6ZVRvIGV0
YworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1l
IHRoZSBtZXRob2RzL3R5cGVzIGFuZCBhZGQgbWFwcGluZyBtZXRob2RzCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6Om1hcEZyb21Ib3N0VG9DU1NSZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6bWFwRnJvbUNTU1RvSG9zdFJlY3Qp
OgorCisgICAgICAgICAgICBJbXBsZW1lbnQgbWFwcGluZyBtZXRob2RzIHRvL2Zyb20gaG9zdCBh
bmQgQ1NTIHVuaXRzLgorCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OndpbmRv
d1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpzZXRXaW5kb3dSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6dmlld3BvcnRSZWN0KToKKwor
ICAgICAgICAgICAgV2hlbiBubyBwYWdlIGlzIGF2YWlsYWJsZSwgcmV0dXJuIGEgYmV0dGVyCisg
ICAgICAgICAgICBhcHByb3hpbWF0aW9uIHRoYW4gYW4gZW1wdHkgcmVjdCBhcyB0aGlzIGlzIGNv
bXBhcmVkCisgICAgICAgICAgICB0byB0aGUgd2luZG93UmVjdCBieSBGcmFtZUxvYWRlci4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgorICAgICAgICAoQ2hy
b21lQ2xpZW50RWZsKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3
a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfY29tcHV0ZSk6CisKIDIwMTItMTEtMDkgIFJhcGhh
ZWwgS3VibyBkYSBDb3N0YSAgPHJhcGhhZWwua3Viby5kYS5jb3N0YUBpbnRlbC5jb20+CiAKICAg
ICAgICAgW0VGTF1bRFJUXSBGb3JjZSBhIHJlcGFpbnQgYmVmb3JlIHRyYWNraW5nIHJlcGFpbnQg
cmVjdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZWMxZDBlZmMxYWVmNzMzZmQ3YWExNTEyNmQ0OTY3
YTQ2NzFjMDg5Ni4uMWUzYWVlYjcxYTU4OGIzM2UwNTA1ZjFmOGJiMzUxZTBjNTJhZmY3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTExLTA4ICBLZW5uZXRoIFJvaGRl
IENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBGaXggdHJhbnNm
b3JtYXRpb24gYmV0d2VlbiBob3N0IGFuZCBjc3MgZm9yIG1vdmVUbywgcmVzaXplVG8gZXRjCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE0NTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgcGFn
ZVJlY3QgdG8gdmlld3BvcnRSZWN0IGFuZCB1c2UgSG9zdFJlY3QgYXMgcmV0dXJuIHR5cGUuCisg
ICAgICAgIFVwZGF0ZSBhbGwgdXNlIHRoZXJlIG9mLgorCisgICAgICAgIEFkZCBtYXBwaW5nIHN0
dWIgbWV0aG9kcyB0by9mcm9tIGhvc3QgdG8gQ1NTIHVuaXRzLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjptYXBGcm9tSG9zdFRvQ1NTUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVu
dDo6bWFwRnJvbUNTU1RvSG9zdFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6
OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1Jl
Y3QpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnZpZXdwb3J0UmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Nyb2xsKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKyAgICAgICAgKENocm9tZUNsaWVudCk6CisgICAgICAg
ICogd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHA6CisgICAgICAgICh3ZWJraXRW
aWV3cG9ydEF0dHJpYnV0ZXNSZWNvbXB1dGUpOgorCiAyMDEyLTExLTA1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBsYXllciBib3JkZXJzIHRv
IGNsZWFuaW5nIGFwcGVhciBhbmQgZGlzYXBwZWFyIG9uIHN3aXRjaGluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CmluZGV4IDYzOWQxMDI5ZjgxMjMwZTM1OWUzNzdkNTgxNWQyMmM4ZTBjZDRlMzQuLmQwZjk4YjY2
OWQwMmE4YWY1OTJmOGYzNjNiYmNjODkzNzM5NjBhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxMi0xMS0wOCAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5u
ZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRml4IHRyYW5zZm9ybWF0aW9uIGJldHdlZW4gaG9z
dCBhbmQgY3NzIGZvciBtb3ZlVG8sIHJlc2l6ZVRvIGV0YworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIHBhZ2VSZWN0IHRvIHZpZXdwb3J0UmVj
dCBhbmQgdXNlIEhvc3RSZWN0IGFzIHJldHVybiB0eXBlLgorCisgICAgICAgIFVwZGF0ZSBhbGwg
dXNlIHRoZXJlIG9mLgorCisgICAgICAgIEFkZCBtYXBwaW5nIG1ldGhvZHMgdG8vZnJvbSBob3N0
IHRvIENTUyB1bml0cyAoZmxpcHMgY29vcmRpbmF0ZXMpCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjptYXBGcm9tSG9zdFRvQ1NTUmVjdCk6CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6Om1hcEZyb21DU1NUb0hvc3RSZWN0KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2V0
V2luZG93UmVjdCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QpOgorICAg
ICAgICAoV2ViQ2hyb21lQ2xpZW50Ojp2aWV3cG9ydFJlY3QpOgorCiAyMDEyLTExLTA4ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBBbHdheXMgdXNlIGEg
dGV4dHVyZWQgd2luZG93IGZvciB0aGUgV2ViIEluc3BlY3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
ZGU2MmVjMDAwMzNmNjY2YzE0MzAxNGY5NWRhYzZiMzFiYzVlZDExZi4uNzY0M2U2ZjM5MGJhNDNm
MTRhYjY5MDRhMjcyYjI5Mjk1OTkwMTM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAxMi0xMS0wOCAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgRml4IHRyYW5zZm9ybWF0aW9uIGJldHdlZW4gaG9zdCBhbmQgY3Nz
IGZvciBtb3ZlVG8sIHJlc2l6ZVRvIGV0YworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lIHBhZ2VSZWN0IHRvIHZpZXdwb3J0UmVjdCBhbmQgdXNl
IEhvc3RSZWN0IGFzIHJldHVybiB0eXBlLiAKKyAgICAgICAgVXBkYXRlIGFsbCB1c2UgdGhlcmUg
b2YuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6bWFwRnJvbUhvc3RUb0NTU1JlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6Om1hcEZyb21DU1NUb0hvc3RSZWN0KToKKwor
ICAgICAgICAgICAgSW1wbGVtZW50IHN0dWIgbWFwcGluZyBtZXRob2RzIHRvL2Zyb20gaG9zdCBh
bmQgQ1NTIHVuaXRzLgorCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6c2V0V2lu
ZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6d2luZG93UmVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6dmlld3BvcnRSZWN0KToKKworICAg
ICAgICAgICAgV2hlbiBubyBtX3dlYlBhZ2UgaXMgYXZhaWxhYmxlLCByZXR1cm4gYSBiZXR0ZXIK
KyAgICAgICAgICAgIGFwcHJveGltYXRpb24gdGhhbiBhbiBlbXB0eSByZWN0IGFzIHRoaXMgaXMg
Y29tcGFyZWQKKyAgICAgICAgICAgIHRvIHRoZSB3aW5kb3dSZWN0IGJ5IEZyYW1lTG9hZGVyLgor
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50UXQpOgorCiAyMDEyLTExLTA5ICBKb2NlbHlu
IFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0XSBV
bm1hcmsgbm93IHBhc3NpbmcgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAyNjM1MTc0M2JkODY1
ODIwYTE4NmZjMzkwZGZiM2MyY2QwNTQyMWY4Li44YmZhYTViMjYwZWRiMzZmYWFlODZlNGNlMjhi
ZjgwYTBmNGY0ZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMTEt
MDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisg
ICAgICAgIEZpeCB0cmFuc2Zvcm1hdGlvbiBiZXR3ZWVuIGhvc3QgYW5kIGNzcyBmb3IgbW92ZVRv
LCByZXNpemVUbyBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbmFtZSBwYWdlUmVjdCB0byB2aWV3cG9ydFJlY3QgYW5kIHVzZSBIb3N0UmVjdCBh
cyByZXR1cm4gdHlwZS4KKyAgICAgICAgVXBkYXRlIGFsbCB1c2UgdGhlcmUgb2YuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjptYXBGcm9tSG9zdFRvQ1NTUmVjdCk6CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6Om1hcEZyb21DU1NUb0hvc3RSZWN0KToKKworICAgICAgICAgICAgQWRkIHN0dWIgbWFwcGlu
ZyBtZXRob2RzIHRvL2Zyb20gaG9zdCBhbmQgQ1NTIHVuaXRzLgorCisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojp3aW5k
b3dSZWN0KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6dmlld3BvcnRSZWN0KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudCk6CisKIDIwMTItMTEtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IGxheWVyIGJvcmRlcnMgdG8gY2xlYW5pbmcgYXBwZWFyIGFu
ZCBkaXNhcHBlYXIgb24gc3dpdGNoaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDJmYTNmMTMy
ZGUxNDMwNDI2YmEwMjBhMGIzYzJlZmUxNDczMTM4MjguLjkzYzExMjIzYjgxYWE0ZmQxYTk0ZmYx
YmZiMWY2NmNiNTcyZDZmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMTItMTEtMDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQu
b3JnPgorCisgICAgICAgIEZpeCB0cmFuc2Zvcm1hdGlvbiBiZXR3ZWVuIGhvc3QgYW5kIGNzcyBm
b3IgbW92ZVRvLCByZXNpemVUbyBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlbmFtZSBwYWdlUmVjdCB0byB2aWV3cG9ydFJlY3QgYW5kIHVzZSBI
b3N0UmVjdCBhcyByZXR1cm4gdHlwZS4gCisgICAgICAgIFVwZGF0ZSBhbGwgdXNlIHRoZXJlIG9m
LgorCisgICAgICAgIEFkZCBzdHViIG1hcHBpbmcgbWV0aG9kcyB0by9mcm9tIGhvc3QgYW5kIENT
UyB1bml0cy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6Om1hcEZyb21Ib3N0VG9DU1NS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6Om1hcEZyb21DU1NUb0hv
c3RSZWN0KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6OndpbmRvd1JlY3Qp
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6c2V0V2luZG93UmVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjp2aWV3cG9ydFJlY3QpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmg6CisgICAgICAgIChDaHJvbWVD
bGllbnRXaW5DRSk6CisKIDIwMTItMTAtMjQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBhIHN0cmF0ZWd5IGZvciBsb2FkZXIgY3VzdG9taXphdGlvbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93
eC9DaGFuZ2VMb2cKaW5kZXggZTllYWYxMzE5ZTAzMjdlZDljZWM5ZmI0OTIwOTMzYjdhMjI1NGNj
Ny4uOWVmOGQ1MmI1OWY4NzExODA2ZDM4MDhkNWY2NmRiZDhjMmJlNTVjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMi0xMS0wOCAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRml4IHRyYW5zZm9ybWF0aW9uIGJl
dHdlZW4gaG9zdCBhbmQgY3NzIGZvciBtb3ZlVG8sIHJlc2l6ZVRvIGV0YworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNDUzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIHBhZ2VSZWN0IHRvIHZp
ZXdwb3J0UmVjdCBhbmQgdXNlIEhvc3RSZWN0IGFzIHJldHVybiB0eXBlLiAKKyAgICAgICAgVXBk
YXRlIGFsbCB1c2UgdGhlcmUgb2YuCisKKyAgICAgICAgQWRkIHN0dWIgbWFwcGluZyBtZXRob2Rz
IHRvL2Zyb20gaG9zdCBhbmQgQ1NTIHVuaXRzLgorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6bWFw
RnJvbUhvc3RUb0NTU1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6Om1h
cEZyb21DU1NUb0hvc3RSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4Ojpz
ZXRXaW5kb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4Ojp3aW5kb3dS
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4Ojp2aWV3cG9ydFJlY3QpOgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKyAgICAgICAgKENocm9t
ZUNsaWVudFd4KToKKwogMjAxMi0xMC0yMiAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVy
Y290dGVAZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4ICJBU1NFUlRJT04gRkFJTEVEOiAh
ZG9jdW1lbnQtPmluUGFnZUNhY2hlKCkiIHdoZW4gbG9hZGluZyBhIHBhZ2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA3ODAyMmUwNTQ0NGQ3MGFlYWUwNzUyZGYxYjBlYTJjM2IxZjkxODg0Li4zNzMzMjc3ZTZjNmRh
Y2JjZGU3YzhiZmYwNTI4NDA1M2NkOTJlZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTItMTEtMDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJlbmFtZSB0aGUgd2luZG93UmVjdCwgcGFnZVJlY3QgZXRjIHRvIHNv
bWV0aGluZyBtb3JlIHNhbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbmFtZSB0aGUgbWV0aG9kcy90eXBlIGFuZCBtYWtlIHZpZXdwb3J0UmVjdCBy
ZXR1cm4gYQorICAgICAgICBwcm9wZXIgdmFsdWUgd2hlbiB0aGUgdGlsZWQgYmFja2luZyBzdG9y
ZSBpcyB1c2VkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6Om1hcEZyb21I
b3N0VG9DU1NSZWN0KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6bWFwRnJvbUNTU1RvSG9zdFJlY3QpOgorCisgICAgICAgICAgIENvbnNpZGVy
IHRoZSBkZXZpY2VTY2FsZUZhY3RvciBmb3IgdGhlIFF0IGFuZCBFRkwgcG9ydC4KKworICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OnZpZXdwb3J0UmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisK
IDIwMTItMTEtMTEgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtTaGFkb3ddIEVsZW1lbnRTaGFkb3cgc2hvdWxkIGhhdmUgUnVsZUZlYXR1cmVTZXQg
Zm9yIHNlbGVjdCBhdHRyaWJ1dGUgc2VsZWN0b3JzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCmluZGV4IGFi
YzkxNjhjNzVkMzBkYzIxZDU4NWIyYjlkMmJhODE1OWI1MTQzZjcuLjA3ZDJmYzU0MjBkZTliNDE3
Nzc1MjBmNjRmNzBjNDU3NmM0MDU2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKQEAgLTIwNCw5ICsy
MDQsOSBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Om9wZW5Jbk5ld1RhYihj
b25zdCBTdHJpbmcmIHVybCkKIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpt
b3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkKIHsKLSAgICBGbG9hdFJlY3QgZnJhbWVSZWN0
ID0gbV9mcm9udGVuZFBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7Ci0gICAgZnJhbWVSZWN0
Lm1vdmUoeCwgeSk7Ci0gICAgbV9mcm9udGVuZFBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0
KGZyYW1lUmVjdCk7CisgICAgSG9zdFJlY3Qgd2luZG93UmVjdCA9IG1fZnJvbnRlbmRQYWdlLT5j
aHJvbWUoKS0+d2luZG93UmVjdCgpOworICAgIHdpbmRvd1JlY3QubW92ZSh4LCB5KTsKKyAgICBt
X2Zyb250ZW5kUGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3Qod2luZG93UmVjdCk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0QXR0YWNoZWRXaW5kb3coYm9v
bCBhdHRhY2hlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA2N2U4N2E3
OTI2NThiY2FiYWJkMzQ4M2QyZDU0MzM0MzMyMTc5MGU0Li5mMzkwNjc4MDhiYjIwMWQ3MDdmZTBm
MTRmMDE1M2RhYmZlN2QzOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBA
IC03MSwxMCArNzEsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95
ZWQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKSB7IH0K
LSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgeyByZXR1cm4gRmxvYXRSZWN0KCk7
IH0KIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgeyByZXR1cm4gRmxvYXRSZWN0
KCk7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBtYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBI
b3N0UmVjdCYpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CisgICAgdmlydHVhbCBIb3N0
UmVjdCBtYXBGcm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdCB7IHJldHVy
biBIb3N0UmVjdCgpOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBI
b3N0UmVjdCYpIHsgfQorICAgIHZpcnR1YWwgSG9zdFJlY3Qgd2luZG93UmVjdCgpIHsgcmV0dXJu
IEhvc3RSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIEhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpIHsgcmV0
dXJuIEhvc3RSZWN0KCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCB1bmZvY3VzKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAppbmRleCBjZDdmZWFlZTdkMjgxOWYyYWY1Mzk2OTYxZmVkN2Q0Y2EwNGE2MGMwLi42NTJjMTVh
YjIxMDJkNzdlZTAxMDY3M2ViODFkMGI3ZDA2ZDE2MDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKQEAgLTMzMTQsMjkgKzMzMTQsMzggQEAgRnJhbWUqIGNyZWF0ZVdpbmRv
dyhGcmFtZSogb3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2Fk
UmVxdWUKICAgICBpZiAocmVxdWVzdC5mcmFtZU5hbWUoKSAhPSAiX2JsYW5rIikKICAgICAgICAg
ZnJhbWUtPnRyZWUoKS0+c2V0TmFtZShyZXF1ZXN0LmZyYW1lTmFtZSgpKTsKIAotICAgIHBhZ2Ut
PmNocm9tZSgpLT5zZXRUb29sYmFyc1Zpc2libGUoZmVhdHVyZXMudG9vbEJhclZpc2libGUgfHwg
ZmVhdHVyZXMubG9jYXRpb25CYXJWaXNpYmxlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0U3Rh
dHVzYmFyVmlzaWJsZShmZWF0dXJlcy5zdGF0dXNCYXJWaXNpYmxlKTsKLSAgICBwYWdlLT5jaHJv
bWUoKS0+c2V0U2Nyb2xsYmFyc1Zpc2libGUoZmVhdHVyZXMuc2Nyb2xsYmFyc1Zpc2libGUpOwot
ICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRNZW51YmFyVmlzaWJsZShmZWF0dXJlcy5tZW51QmFyVmlz
aWJsZSk7Ci0gICAgcGFnZS0+Y2hyb21lKCktPnNldFJlc2l6YWJsZShmZWF0dXJlcy5yZXNpemFi
bGUpOworICAgIC8vIEFwcGx5IGZlYXR1cmVzLgorCisgICAgQ2hyb21lKiBjaHJvbWUgPSBwYWdl
LT5jaHJvbWUoKTsKKworICAgIGNocm9tZS0+c2V0VG9vbGJhcnNWaXNpYmxlKGZlYXR1cmVzLnRv
b2xCYXJWaXNpYmxlIHx8IGZlYXR1cmVzLmxvY2F0aW9uQmFyVmlzaWJsZSk7CisgICAgY2hyb21l
LT5zZXRTdGF0dXNiYXJWaXNpYmxlKGZlYXR1cmVzLnN0YXR1c0JhclZpc2libGUpOworICAgIGNo
cm9tZS0+c2V0U2Nyb2xsYmFyc1Zpc2libGUoZmVhdHVyZXMuc2Nyb2xsYmFyc1Zpc2libGUpOwor
ICAgIGNocm9tZS0+c2V0TWVudWJhclZpc2libGUoZmVhdHVyZXMubWVudUJhclZpc2libGUpOwor
ICAgIGNocm9tZS0+c2V0UmVzaXphYmxlKGZlYXR1cmVzLnJlc2l6YWJsZSk7CiAKICAgICAvLyAn
eCcgYW5kICd5JyBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiB0aGUgd2luZG93LCB3aGlsZSAnd2lk
dGgnIGFuZCAnaGVpZ2h0JwotICAgIC8vIHNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIHBhZ2UuIFdl
IGNhbiBvbmx5IHJlc2l6ZSB0aGUgd2luZG93LCBzbwotICAgIC8vIGFkanVzdCBmb3IgdGhlIGRp
ZmZlcmVuY2UgYmV0d2VlbiB0aGUgd2luZG93IHNpemUgYW5kIHRoZSBwYWdlIHNpemUuCisgICAg
Ly8gc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgcGFnZS4gV2UgY2FuIG9ubHkgcmVzaXplIHRoZSBo
b3N0IHdpbmRvdywgc28KKyAgICAvLyBhZGp1c3QgZm9yIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4g
dGhlIHdpbmRvdyBzaXplIGFuZCB0aGUgdmlld3BvcnQgc2l6ZS4KKworICAgIEZsb2F0UmVjdCB3
aW5kb3dSZWN0ID0gY2hyb21lLT5tYXBGcm9tSG9zdFRvQ1NTUmVjdChjaHJvbWUtPndpbmRvd1Jl
Y3QoKSk7CisgICAgRmxvYXRSZWN0IHZpZXdwb3J0UmVjdCA9IGNocm9tZS0+bWFwRnJvbUhvc3RU
b0NTU1JlY3QoY2hyb21lLT52aWV3cG9ydFJlY3QoKSk7CiAKLSAgICBGbG9hdFJlY3Qgd2luZG93
UmVjdCA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7Ci0gICAgRmxvYXRTaXplIHBhZ2VT
aXplID0gcGFnZS0+Y2hyb21lKCktPnBhZ2VSZWN0KCkuc2l6ZSgpOwogICAgIGlmIChmZWF0dXJl
cy54U2V0KQogICAgICAgICB3aW5kb3dSZWN0LnNldFgoZmVhdHVyZXMueCk7CiAgICAgaWYgKGZl
YXR1cmVzLnlTZXQpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0WShmZWF0dXJlcy55KTsKICAgICBp
ZiAoZmVhdHVyZXMud2lkdGhTZXQpCi0gICAgICAgIHdpbmRvd1JlY3Quc2V0V2lkdGgoZmVhdHVy
ZXMud2lkdGggKyAod2luZG93UmVjdC53aWR0aCgpIC0gcGFnZVNpemUud2lkdGgoKSkpOworICAg
ICAgICB3aW5kb3dSZWN0LnNldFdpZHRoKGZlYXR1cmVzLndpZHRoICsgKHdpbmRvd1JlY3Qud2lk
dGgoKSAtIHZpZXdwb3J0UmVjdC53aWR0aCgpKSk7CiAgICAgaWYgKGZlYXR1cmVzLmhlaWdodFNl
dCkKLSAgICAgICAgd2luZG93UmVjdC5zZXRIZWlnaHQoZmVhdHVyZXMuaGVpZ2h0ICsgKHdpbmRv
d1JlY3QuaGVpZ2h0KCkgLSBwYWdlU2l6ZS5oZWlnaHQoKSkpOwotICAgIHBhZ2UtPmNocm9tZSgp
LT5zZXRXaW5kb3dSZWN0KHdpbmRvd1JlY3QpOworICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdo
dChmZWF0dXJlcy5oZWlnaHQgKyAod2luZG93UmVjdC5oZWlnaHQoKSAtIHZpZXdwb3J0UmVjdC5o
ZWlnaHQoKSkpOworCisgICAgRmxvYXRSZWN0IGhvc3RCb3VuZHMgPSBjaHJvbWUtPm1hcEZyb21I
b3N0VG9DU1NSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXco
KSkpOworICAgIERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChwYWdlLCBob3N0Qm91bmRzLCB3
aW5kb3dSZWN0LCB3aW5kb3dSZWN0KTsKIAotICAgIHBhZ2UtPmNocm9tZSgpLT5zaG93KCk7Cisg
ICAgSG9zdFJlY3QgbmV3V2luZG93UmVjdCA9IGNocm9tZS0+bWFwRnJvbUNTU1RvSG9zdFJlY3Qo
d2luZG93UmVjdCk7CisgICAgY2hyb21lLT5zZXRXaW5kb3dSZWN0KG5ld1dpbmRvd1JlY3QpOwor
ICAgIGNocm9tZS0+c2hvdygpOwogCiAgICAgY3JlYXRlZCA9IHRydWU7CiAgICAgcmV0dXJuIGZy
YW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IGZjZTBjMTE2NjhlYmIzZWMzNWU3YjlmNWYx
OGUzODUyOTA5MWMxZTcuLjA4NzkzYWI1ZTVhMDgwOGVkMmUwOWQ4Y2FmZmIyOGE2ZTVjMmI0Y2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTE0MCwxOSArMTQwLDI5IEBAIHZvaWQgQ2hyb21l
OjpzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0CiAgICAgbV9jbGllbnQtPnNjcm9sbGJh
cnNNb2RlRGlkQ2hhbmdlKCk7CiB9CiAKLXZvaWQgQ2hyb21lOjpzZXRXaW5kb3dSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkgY29uc3QKK0Zsb2F0UmVjdCBDaHJvbWU6Om1hcEZyb21Ib3N0VG9D
U1NSZWN0KGNvbnN0IEhvc3RSZWN0JiByZWN0KSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVu
dC0+bWFwRnJvbUhvc3RUb0NTU1JlY3QocmVjdCk7Cit9CisKK0hvc3RSZWN0IENocm9tZTo6bWFw
RnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSBjb25zdAoreworICAgIHJl
dHVybiBtX2NsaWVudC0+bWFwRnJvbUNTU1RvSG9zdFJlY3QocmVjdCk7Cit9CisKK3ZvaWQgQ2hy
b21lOjpzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JiByZWN0KSBjb25zdAogewogICAgIG1f
Y2xpZW50LT5zZXRXaW5kb3dSZWN0KHJlY3QpOwogfQogCi1GbG9hdFJlY3QgQ2hyb21lOjp3aW5k
b3dSZWN0KCkgY29uc3QKK0hvc3RSZWN0IENocm9tZTo6d2luZG93UmVjdCgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fY2xpZW50LT53aW5kb3dSZWN0KCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWU6
OnBhZ2VSZWN0KCkgY29uc3QKK0hvc3RSZWN0IENocm9tZTo6dmlld3BvcnRSZWN0KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9jbGllbnQtPnBhZ2VSZWN0KCk7CisgICAgcmV0dXJuIG1fY2xpZW50
LT52aWV3cG9ydFJlY3QoKTsKIH0KIAogdm9pZCBDaHJvbWU6OmZvY3VzKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5oCmluZGV4IDU2MzhmM2E0OGFkZDg5NTllMzBhZWIwZDIwNWFkM2U3MGI4Y2FjMTku
LmU4MDI1ZWRmOTkwYTZlMzFkYWM3YzYyOTdiYTIzY2IyMTgyMGNjYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuaApAQCAtOTIsMTEgKzkyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0OwogICAg
ICAgICB2b2lkIGxheW91dFVwZGF0ZWQoRnJhbWUqKSBjb25zdDsKIAotICAgICAgICB2b2lkIHNl
dFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7Ci0gICAgICAgIEZsb2F0UmVjdCB3
aW5kb3dSZWN0KCkgY29uc3Q7CisgICAgICAgIEZsb2F0UmVjdCBtYXBGcm9tSG9zdFRvQ1NTUmVj
dChjb25zdCBIb3N0UmVjdCYpIGNvbnN0OworICAgICAgICBIb3N0UmVjdCBtYXBGcm9tQ1NTVG9I
b3N0UmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKKworICAgICAgICB2b2lkIHNldFdpbmRv
d1JlY3QoY29uc3QgSG9zdFJlY3QmKSBjb25zdDsKKyAgICAgICAgSG9zdFJlY3Qgd2luZG93UmVj
dCgpIGNvbnN0OworICAgICAgICBIb3N0UmVjdCB2aWV3cG9ydFJlY3QoKSBjb25zdDsKIAotICAg
ICAgICBGbG9hdFJlY3QgcGFnZVJlY3QoKSBjb25zdDsKLSAgICAgICAgCiAgICAgICAgIHZvaWQg
Zm9jdXMoKSBjb25zdDsKICAgICAgICAgdm9pZCB1bmZvY3VzKCkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDM1YzMyMzI4YzM0M2EwZjU2OTMyOTZkNzA1NzExNzcz
MDhiYWFiMjkuLmUxYTAzNDljY2U2ZTExMzA1MmI4NmUxNGU4ODJkZWIwMmIwMjk2MjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtOTMsMTIgKzkzLDE1IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBDaHJvbWVDbGllbnQgewogICAgIHB1YmxpYzoKICAgICAgICAg
dmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpID0gMDsKLSAgICAgICAgCi0gICAgICAgIHZp
cnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpID0gMDsKLSAgICAgICAg
dmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgpID0gMDsKLSAgICAgICAgCi0gICAgICAgIHZp
cnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgPSAwOwotICAgICAgICAKKworICAgICAgICAvLyBN
ZXRob2RzIGZvciBtYXBwaW5nIGJldHdlZW4gaG9zdCBVSSB1bml0cyBhbmQgQ1NTIHVuaXRzLCB3
aGljaCBtYXkgZGlmZmVyIGluIHBpeGVsIGRlbnNpdHkgYW5kIG9yaWdpbi4KKyAgICAgICAgdmly
dHVhbCBGbG9hdFJlY3QgbWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgSG9zdFJlY3QmKSBjb25z
dCA9IDA7CisgICAgICAgIHZpcnR1YWwgSG9zdFJlY3QgbWFwRnJvbUNTU1RvSG9zdFJlY3QoY29u
c3QgRmxvYXRSZWN0JikgY29uc3QgPSAwOworCisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5k
b3dSZWN0KGNvbnN0IEhvc3RSZWN0JikgPSAwOworICAgICAgICB2aXJ0dWFsIEhvc3RSZWN0IHdp
bmRvd1JlY3QoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgSG9zdFJlY3Qgdmlld3BvcnRSZWN0KCkg
PSAwOworCiAgICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpID0gMDsKICAgICAgICAgdmlydHVh
bCB2b2lkIHVuZm9jdXMoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBh
ODRmZWM1OWM5NWViODUxYzRiYTM3OWRmYzE4YTI3NWUzZjJmZGIwLi4wMGQwMDI3MjljYzhhNDE2
YTA1NjQ2MWE0MThhNTI1YTU0MzkyMWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBA
IC0zMTYsMTggKzMxNiwxOCBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hBbGxQZW5kaW5nVW5s
b2FkRXZlbnRzKCkKIC8vICAgIHNjcmVlbiByZWN0LgogLy8gNSkgVHJhbnNsYXRlIHRoZSB3aW5k
b3cgcmVjdCBjb29yZGluYXRlcyB0byBiZSB3aXRoaW4gdGhlIGNvb3JkaW5hdGUgc3BhY2Ugb2YK
IC8vICAgIHRoZSBzY3JlZW4gcmVjdC4KLXZvaWQgRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0
KGNvbnN0IEZsb2F0UmVjdCYgc2NyZWVuLCBGbG9hdFJlY3QmIHdpbmRvdywgY29uc3QgRmxvYXRS
ZWN0JiBwZW5kaW5nQ2hhbmdlcykgY29uc3QKK3ZvaWQgRE9NV2luZG93OjphZGp1c3RXaW5kb3dS
ZWN0KFBhZ2UqIHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgc2NyZWVuQm91bmRzLCBGbG9hdFJlY3Qm
IHdpbmRvdywgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcykKIHsKICAgICAvLyBNYWtl
IHN1cmUgd2UncmUgaW4gYSB2YWxpZCBzdGF0ZSBiZWZvcmUgYWRqdXN0aW5nIGRpbWVuc2lvbnMu
Ci0gICAgQVNTRVJUKGlzZmluaXRlKHNjcmVlbi54KCkpKTsKLSAgICBBU1NFUlQoaXNmaW5pdGUo
c2NyZWVuLnkoKSkpOwotICAgIEFTU0VSVChpc2Zpbml0ZShzY3JlZW4ud2lkdGgoKSkpOwotICAg
IEFTU0VSVChpc2Zpbml0ZShzY3JlZW4uaGVpZ2h0KCkpKTsKKyAgICBBU1NFUlQoaXNmaW5pdGUo
c2NyZWVuQm91bmRzLngoKSkpOworICAgIEFTU0VSVChpc2Zpbml0ZShzY3JlZW5Cb3VuZHMueSgp
KSk7CisgICAgQVNTRVJUKGlzZmluaXRlKHNjcmVlbkJvdW5kcy53aWR0aCgpKSk7CisgICAgQVNT
RVJUKGlzZmluaXRlKHNjcmVlbkJvdW5kcy5oZWlnaHQoKSkpOwogICAgIEFTU0VSVChpc2Zpbml0
ZSh3aW5kb3cueCgpKSk7CiAgICAgQVNTRVJUKGlzZmluaXRlKHdpbmRvdy55KCkpKTsKICAgICBB
U1NFUlQoaXNmaW5pdGUod2luZG93LndpZHRoKCkpKTsKICAgICBBU1NFUlQoaXNmaW5pdGUod2lu
ZG93LmhlaWdodCgpKSk7Ci0gICAgCisKICAgICAvLyBVcGRhdGUgd2luZG93IHZhbHVlcyBpZiBu
ZXcgcmVxdWVzdGVkIHZhbHVlcyBhcmUgbm90IE5hTi4KICAgICBpZiAoIWlzbmFuKHBlbmRpbmdD
aGFuZ2VzLngoKSkpCiAgICAgICAgIHdpbmRvdy5zZXRYKHBlbmRpbmdDaGFuZ2VzLngoKSk7CkBA
IC0zMzgsMTUgKzMzOCwxMyBAQCB2b2lkIERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChjb25z
dCBGbG9hdFJlY3QmIHNjcmVlbiwgRmxvYXRSZWN0JiB3aW5kb3csIGNvbgogICAgIGlmICghaXNu
YW4ocGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkpKQogICAgICAgICB3aW5kb3cuc2V0SGVpZ2h0KHBl
bmRpbmdDaGFuZ2VzLmhlaWdodCgpKTsKIAotICAgIEFTU0VSVChtX2ZyYW1lKTsKLSAgICBQYWdl
KiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOwotICAgIEZsb2F0U2l6ZSBtaW5pbXVtU2l6ZSA9IHBh
Z2UgPyBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+bWluaW11bVdpbmRvd1Np
emUoKSA6IEZsb2F0U2l6ZSgxMDAsIDEwMCk7Ci0gICAgd2luZG93LnNldFdpZHRoKG1pbihtYXgo
bWluaW11bVNpemUud2lkdGgoKSwgd2luZG93LndpZHRoKCkpLCBzY3JlZW4ud2lkdGgoKSkpOwot
ICAgIHdpbmRvdy5zZXRIZWlnaHQobWluKG1heChtaW5pbXVtU2l6ZS5oZWlnaHQoKSwgd2luZG93
LmhlaWdodCgpKSwgc2NyZWVuLmhlaWdodCgpKSk7CisgICAgRmxvYXRTaXplIG1pbmltdW1TaXpl
ID0gcGFnZSA/IHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+bWluaW11bVdpbmRvd1NpemUoKSA6
IEZsb2F0U2l6ZSgxMDAsIDEwMCk7CisgICAgd2luZG93LnNldFdpZHRoKG1pbihtYXgobWluaW11
bVNpemUud2lkdGgoKSwgd2luZG93LndpZHRoKCkpLCBzY3JlZW5Cb3VuZHMud2lkdGgoKSkpOwor
ICAgIHdpbmRvdy5zZXRIZWlnaHQobWluKG1heChtaW5pbXVtU2l6ZS5oZWlnaHQoKSwgd2luZG93
LmhlaWdodCgpKSwgc2NyZWVuQm91bmRzLmhlaWdodCgpKSk7CiAKLSAgICAvLyBDb25zdHJhaW4g
dGhlIHdpbmRvdyBwb3NpdGlvbiB0byB0aGUgc2NyZWVuLgotICAgIHdpbmRvdy5zZXRYKG1heChz
Y3JlZW4ueCgpLCBtaW4od2luZG93LngoKSwgc2NyZWVuLm1heFgoKSAtIHdpbmRvdy53aWR0aCgp
KSkpOwotICAgIHdpbmRvdy5zZXRZKG1heChzY3JlZW4ueSgpLCBtaW4od2luZG93LnkoKSwgc2Ny
ZWVuLm1heFkoKSAtIHdpbmRvdy5oZWlnaHQoKSkpKTsKKyAgICAvLyBDb25zdHJhaW4gdGhlIHdp
bmRvdyBwb3NpdGlvbiB0byB0aGUgYXZhaWxhYmxlIHNjcmVlbiBhcmVhLgorICAgIHdpbmRvdy5z
ZXRYKG1heChzY3JlZW5Cb3VuZHMueCgpLCBtaW4od2luZG93LngoKSwgc2NyZWVuQm91bmRzLm1h
eFgoKSAtIHdpbmRvdy53aWR0aCgpKSkpOworICAgIHdpbmRvdy5zZXRZKG1heChzY3JlZW5Cb3Vu
ZHMueSgpLCBtaW4od2luZG93LnkoKSwgc2NyZWVuQm91bmRzLm1heFkoKSAtIHdpbmRvdy5oZWln
aHQoKSkpKTsKIH0KIAogLy8gRklYTUU6IFdlIGNhbiByZW1vdmUgdGhpcyBmdW5jdGlvbiBvbmNl
IFY4IHNob3dNb2RhbERpYWxvZyBpcyBjaGFuZ2VkIHRvIHVzZSBET01XaW5kb3cuCkBAIC0xMTE3
LDcgKzExMTUsOCBAQCBpbnQgRE9NV2luZG93OjpvdXRlckhlaWdodCgpIGNvbnN0CiAgICAgaWYg
KCFwYWdlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+
KHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCkuaGVpZ2h0KCkpOworICAgIENocm9tZSogY2hy
b21lID0gcGFnZS0+Y2hyb21lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oY2hyb21l
LT5tYXBGcm9tSG9zdFRvQ1NTUmVjdChjaHJvbWUtPndpbmRvd1JlY3QoKSkuaGVpZ2h0KCkpOwog
fQogCiBpbnQgRE9NV2luZG93OjpvdXRlcldpZHRoKCkgY29uc3QKQEAgLTExMjksNyArMTEyOCw4
IEBAIGludCBET01XaW5kb3c6Om91dGVyV2lkdGgoKSBjb25zdAogICAgIGlmICghcGFnZSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihwYWdlLT5jaHJv
bWUoKS0+d2luZG93UmVjdCgpLndpZHRoKCkpOworICAgIENocm9tZSogY2hyb21lID0gcGFnZS0+
Y2hyb21lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oY2hyb21lLT5tYXBGcm9tSG9z
dFRvQ1NTUmVjdChjaHJvbWUtPndpbmRvd1JlY3QoKSkud2lkdGgoKSk7CiB9CiAKIGludCBET01X
aW5kb3c6OmlubmVySGVpZ2h0KCkgY29uc3QKQEAgLTExNjksNyArMTE2OSw4IEBAIGludCBET01X
aW5kb3c6OnNjcmVlblgoKSBjb25zdAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVj
dCgpLngoKSk7CisgICAgQ2hyb21lKiBjaHJvbWUgPSBwYWdlLT5jaHJvbWUoKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8aW50PihjaHJvbWUtPm1hcEZyb21Ib3N0VG9DU1NSZWN0KGNocm9tZS0+
d2luZG93UmVjdCgpKS54KCkpOwogfQogCiBpbnQgRE9NV2luZG93OjpzY3JlZW5ZKCkgY29uc3QK
QEAgLTExODEsNyArMTE4Miw4IEBAIGludCBET01XaW5kb3c6OnNjcmVlblkoKSBjb25zdAogICAg
IGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
aW50PihwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpLnkoKSk7CisgICAgQ2hyb21lKiBjaHJv
bWUgPSBwYWdlLT5jaHJvbWUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihjaHJvbWUt
Pm1hcEZyb21Ib3N0VG9DU1NSZWN0KGNocm9tZS0+d2luZG93UmVjdCgpKS55KCkpOwogfQogCiBp
bnQgRE9NV2luZG93OjpzY3JvbGxYKCkgY29uc3QKQEAgLTE0NDYsMTIgKzE0NDgsMTggQEAgdm9p
ZCBET01XaW5kb3c6Om1vdmVCeShmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAgIGlmIChtX2Zy
YW1lICE9IHBhZ2UtPm1haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFJl
Y3QgZnIgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOwotICAgIEZsb2F0UmVjdCB1cGRh
dGUgPSBmcjsKLSAgICB1cGRhdGUubW92ZSh4LCB5KTsKKyAgICBDaHJvbWUqIGNocm9tZSA9IHBh
Z2UtPmNocm9tZSgpOworICAgIEZsb2F0UmVjdCBob3N0Qm91bmRzID0gY2hyb21lLT5tYXBGcm9t
SG9zdFRvQ1NTUmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3
KCkpKTsKKyAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IGNocm9tZS0+bWFwRnJvbUhvc3RUb0NT
U1JlY3QoY2hyb21lLT53aW5kb3dSZWN0KCkpOworCisgICAgRmxvYXRSZWN0IHJlcXVlc3RlZFJl
Y3QgPSB3aW5kb3dSZWN0OworICAgIHJlcXVlc3RlZFJlY3QubW92ZSh4LCB5KTsKKwogICAgIC8v
IFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3Jp
dGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4uKQotICAgIGFkanVzdFdpbmRvd1JlY3Qoc2NyZWVu
QXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKSwgZnIsIHVwZGF0ZSk7Ci0g
ICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoZnIpOworICAgIGFkanVzdFdpbmRvd1Jl
Y3QocGFnZSwgaG9zdEJvdW5kcywgd2luZG93UmVjdCwgcmVxdWVzdGVkUmVjdCk7CisgICAgSG9z
dFJlY3QgbmV3V2luZG93UmVjdCA9IGNocm9tZS0+bWFwRnJvbUNTU1RvSG9zdFJlY3Qod2luZG93
UmVjdCk7CisKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChuZXdXaW5kb3dSZWN0
KTsKIH0KIAogdm9pZCBET01XaW5kb3c6Om1vdmVUbyhmbG9hdCB4LCBmbG9hdCB5KSBjb25zdApA
QCAtMTQ2NiwxNCArMTQ3NCwyMCBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0IHgsIGZs
b2F0IHkpIGNvbnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dS
ZWN0KCk7Ci0gICAgRmxvYXRSZWN0IHNyID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWlu
RnJhbWUoKS0+dmlldygpKTsKLSAgICBmci5zZXRMb2NhdGlvbihzci5sb2NhdGlvbigpKTsKLSAg
ICBGbG9hdFJlY3QgdXBkYXRlID0gZnI7Ci0gICAgdXBkYXRlLm1vdmUoeCwgeSk7ICAgICAKKyAg
ICBDaHJvbWUqIGNocm9tZSA9IHBhZ2UtPmNocm9tZSgpOworICAgIEZsb2F0UmVjdCBob3N0Qm91
bmRzID0gY2hyb21lLT5tYXBGcm9tSG9zdFRvQ1NTUmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBh
Z2UtPm1haW5GcmFtZSgpLT52aWV3KCkpKTsKKyAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IGNo
cm9tZS0+bWFwRnJvbUhvc3RUb0NTU1JlY3QoY2hyb21lLT53aW5kb3dSZWN0KCkpOworCisgICAg
Ly8gT3JpZ2luIGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgdmFsaWQgYm91bmRzLiBGSVhNRTogQ29u
ZmVyIHNwZWMuCisgICAgd2luZG93UmVjdC5zZXRMb2NhdGlvbihob3N0Qm91bmRzLmxvY2F0aW9u
KCkpOworICAgIEZsb2F0UmVjdCByZXF1ZXN0ZWRSZWN0ID0gd2luZG93UmVjdDsKKyAgICByZXF1
ZXN0ZWRSZWN0Lm1vdmUoeCwgeSk7CisKICAgICAvLyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMg
dGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjay4u
LikKLSAgICBhZGp1c3RXaW5kb3dSZWN0KHNyLCBmciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJv
bWUoKS0+c2V0V2luZG93UmVjdChmcik7CisgICAgYWRqdXN0V2luZG93UmVjdChwYWdlLCBob3N0
Qm91bmRzLCB3aW5kb3dSZWN0LCByZXF1ZXN0ZWRSZWN0KTsKKyAgICBIb3N0UmVjdCBuZXdXaW5k
b3dSZWN0ID0gY2hyb21lLT5tYXBGcm9tQ1NTVG9Ib3N0UmVjdCh3aW5kb3dSZWN0KTsKKworICAg
IHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KG5ld1dpbmRvd1JlY3QpOwogfQogCiB2b2lk
IERPTVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKQEAgLTE0ODgsMTEg
KzE1MDIsMTcgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNv
bnN0CiAgICAgaWYgKG1fZnJhbWUgIT0gcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7Ci0g
ICAgRmxvYXRTaXplIGRlc3QgPSBmci5zaXplKCkgKyBGbG9hdFNpemUoeCwgeSk7Ci0gICAgRmxv
YXRSZWN0IHVwZGF0ZShmci5sb2NhdGlvbigpLCBkZXN0KTsKLSAgICBhZGp1c3RXaW5kb3dSZWN0
KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSksIGZyLCB1cGRh
dGUpOwotICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGZyKTsKKyAgICBDaHJvbWUq
IGNocm9tZSA9IHBhZ2UtPmNocm9tZSgpOworICAgIEZsb2F0UmVjdCBob3N0Qm91bmRzID0gY2hy
b21lLT5tYXBGcm9tSG9zdFRvQ1NTUmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5G
cmFtZSgpLT52aWV3KCkpKTsKKyAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IGNocm9tZS0+bWFw
RnJvbUhvc3RUb0NTU1JlY3QoY2hyb21lLT53aW5kb3dSZWN0KCkpOworCisgICAgRmxvYXRSZWN0
IHJlcXVlc3RlZFJlY3Qod2luZG93UmVjdC5sb2NhdGlvbigpLCB3aW5kb3dSZWN0LnNpemUoKSAr
IEZsb2F0U2l6ZSh4LCB5KSk7CisKKyAgICAvLyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFs
a3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikK
KyAgICBhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIGhvc3RCb3VuZHMsIHdpbmRvd1JlY3QsIHJlcXVl
c3RlZFJlY3QpOworICAgIEhvc3RSZWN0IG5ld1dpbmRvd1JlY3QgPSBjaHJvbWUtPm1hcEZyb21D
U1NUb0hvc3RSZWN0KHdpbmRvd1JlY3QpOworCisgICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRv
d1JlY3QobmV3V2luZG93UmVjdCk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpyZXNpemVUbyhmbG9h
dCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBjb25zdApAQCAtMTUwNywxMSArMTUyNywxNyBAQCB2b2lk
IERPTVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKICAg
ICBpZiAobV9mcmFtZSAhPSBwYWdlLT5tYWluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsKLSAgICBGbG9h
dFNpemUgZGVzdCA9IEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKLSAgICBGbG9hdFJlY3QgdXBk
YXRlKGZyLmxvY2F0aW9uKCksIGRlc3QpOwotICAgIGFkanVzdFdpbmRvd1JlY3Qoc2NyZWVuQXZh
aWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKSwgZnIsIHVwZGF0ZSk7Ci0gICAg
cGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoZnIpOworICAgIENocm9tZSogY2hyb21lID0g
cGFnZS0+Y2hyb21lKCk7CisgICAgRmxvYXRSZWN0IGhvc3RCb3VuZHMgPSBjaHJvbWUtPm1hcEZy
b21Ib3N0VG9DU1NSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZp
ZXcoKSkpOworICAgIEZsb2F0UmVjdCB3aW5kb3dSZWN0ID0gY2hyb21lLT5tYXBGcm9tSG9zdFRv
Q1NTUmVjdChjaHJvbWUtPndpbmRvd1JlY3QoKSk7CisKKyAgICBGbG9hdFJlY3QgcmVxdWVzdGVk
UmVjdCh3aW5kb3dSZWN0LmxvY2F0aW9uKCksIEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CisK
KyAgICAvLyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJv
d3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikKKyAgICBhZGp1c3RXaW5kb3dSZWN0
KHBhZ2UsIGhvc3RCb3VuZHMsIHdpbmRvd1JlY3QsIHJlcXVlc3RlZFJlY3QpOworICAgIEhvc3RS
ZWN0IG5ld1dpbmRvd1JlY3QgPSBjaHJvbWUtPm1hcEZyb21DU1NUb0hvc3RSZWN0KHdpbmRvd1Jl
Y3QpOworCisgICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QobmV3V2luZG93UmVjdCk7
CiB9CiAKIGludCBET01XaW5kb3c6OnNldFRpbWVvdXQoUGFzc093blB0cjxTY2hlZHVsZWRBY3Rp
b24+IGFjdGlvbiwgaW50IHRpbWVvdXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTkzMCwxNCAr
MTk1Niw2IEBAIFBhc3NSZWZQdHI8RE9NV2luZG93PiBET01XaW5kb3c6Om9wZW4oY29uc3QgU3Ry
aW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluCiAgICAgfQogCiAgICAgV2luZG93RmVh
dHVyZXMgd2luZG93RmVhdHVyZXMod2luZG93RmVhdHVyZXNTdHJpbmcpOwotICAgIEZsb2F0UmVj
dCB3aW5kb3dSZWN0KHdpbmRvd0ZlYXR1cmVzLnhTZXQgPyB3aW5kb3dGZWF0dXJlcy54IDogMCwg
d2luZG93RmVhdHVyZXMueVNldCA/IHdpbmRvd0ZlYXR1cmVzLnkgOiAwLAotICAgICAgICB3aW5k
b3dGZWF0dXJlcy53aWR0aFNldCA/IHdpbmRvd0ZlYXR1cmVzLndpZHRoIDogMCwgd2luZG93RmVh
dHVyZXMuaGVpZ2h0U2V0ID8gd2luZG93RmVhdHVyZXMuaGVpZ2h0IDogMCk7Ci0gICAgUGFnZSog
cGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKLSAgICBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3Qo
c2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlID8gcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSA6IDAp
LCB3aW5kb3dSZWN0LCB3aW5kb3dSZWN0KTsKLSAgICB3aW5kb3dGZWF0dXJlcy54ID0gd2luZG93
UmVjdC54KCk7Ci0gICAgd2luZG93RmVhdHVyZXMueSA9IHdpbmRvd1JlY3QueSgpOwotICAgIHdp
bmRvd0ZlYXR1cmVzLmhlaWdodCA9IHdpbmRvd1JlY3QuaGVpZ2h0KCk7Ci0gICAgd2luZG93RmVh
dHVyZXMud2lkdGggPSB3aW5kb3dSZWN0LndpZHRoKCk7CiAKICAgICBGcmFtZSogcmVzdWx0ID0g
Y3JlYXRlV2luZG93KHVybFN0cmluZywgZnJhbWVOYW1lLCB3aW5kb3dGZWF0dXJlcywgYWN0aXZl
V2luZG93LCBmaXJzdEZyYW1lLCBtX2ZyYW1lKTsKICAgICByZXR1cm4gcmVzdWx0ID8gcmVzdWx0
LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRl
eCA5NWY2ZWYxZWVkZWNlOTNiY2ZkMWQwYzY2M2FiNjY2YWM1ZmVmYTY1Li4xYjdiZmI4NWRhMjk5
NjUyOTg5NWRhNzNlNzE5NzRhYjljZWE2MWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAg
LTEyMCw3ICsxMjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBib29s
IGRpc3BhdGNoQWxsUGVuZGluZ0JlZm9yZVVubG9hZEV2ZW50cygpOwogICAgICAgICBzdGF0aWMg
dm9pZCBkaXNwYXRjaEFsbFBlbmRpbmdVbmxvYWRFdmVudHMoKTsKIAotICAgICAgICB2b2lkIGFk
anVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3JlZW4sIEZsb2F0UmVjdCYgd2luZG93
LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKSBjb25zdDsKKyAgICAgICAgc3RhdGlj
IHZvaWQgYWRqdXN0V2luZG93UmVjdChQYWdlKiwgY29uc3QgRmxvYXRSZWN0JiBzY3JlZW4sIEZs
b2F0UmVjdCYgd2luZG93LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKTsKIAogICAg
ICAgICAvLyBGSVhNRTogV2UgY2FuIHJlbW92ZSB0aGlzIGZ1bmN0aW9uIG9uY2UgVjggc2hvd01v
ZGFsRGlhbG9nIGlzIGNoYW5nZWQgdG8gdXNlIERPTVdpbmRvdy4KICAgICAgICAgc3RhdGljIHZv
aWQgcGFyc2VNb2RhbERpYWxvZ0ZlYXR1cmVzKGNvbnN0IFN0cmluZyYsIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2lu
ZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgKaW5kZXggN2M1YmIy
MDEyMWRmODczNDRiZjlmZDA0M2MyM2QwMTg4Zjg4YzE0Ni4uMDAzZGMyMjFjZmZmNWRkOTViMDUw
ODdjMzViOGJmOThlZGViNjg2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
SG9zdFdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaApA
QCAtMjYsMTIgKzI2LDE2IEBACiAjaWZuZGVmIEhvc3RXaW5kb3dfaAogI2RlZmluZSBIb3N0V2lu
ZG93X2gKIAorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIldpZGdldC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1cnNvcjsKIAorLy8gQSBIb3N0UmVjdCBpcyBp
biB0aGUgVUkgY29vcmRpbmF0ZSBzeXN0ZW0gbmF0aXZlIHRvIHRoZSBjaHJvbWUgb3Igd2luZG93
aW5nIHN5c3RlbS4KK3R5cGVkZWYgRmxvYXRSZWN0IEhvc3RSZWN0OworCiBjbGFzcyBIb3N0V2lu
ZG93IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShIb3N0V2luZG93KTsgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC01NSwxMyArNTksMTcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmIHNjcm9s
bFBvaW50KSA9IDA7CiAjZW5kaWYKIAorICAgIC8vIE1ldGhvZHMgZm9yIG1hcHBpbmcgYmV0d2Vl
biBob3N0IFVJIHVuaXRzIGFuZCBDU1MgdW5pdHMsIHdoaWNoIG1heSBkaWZmZXIgaW4gcGl4ZWwg
ZGVuc2l0eSBhbmQgb3JpZ2luLgorICAgIHZpcnR1YWwgRmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9D
U1NSZWN0KGNvbnN0IEhvc3RSZWN0JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgSG9zdFJlY3Qg
bWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3QgPSAwOworCiAgICAg
Ly8gTWV0aG9kcyBmb3IgZG9pbmcgY29vcmRpbmF0ZSBjb252ZXJzaW9ucyB0byBhbmQgZnJvbSBz
Y3JlZW4gY29vcmRpbmF0ZXMuCiAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3
KGNvbnN0IEludFBvaW50JikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW50UmVjdCByb290Vmll
d1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7CiAKICAgICAvLyBNZXRob2QgZm9y
IHJldHJpZXZpbmcgdGhlIG5hdGl2ZSBjbGllbnQgb2YgdGhlIHBhZ2UuCiAgICAgdmlydHVhbCBQ
bGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgPSAwOwotICAgIAor
CiAgICAgLy8gVG8gbm90aWZ5IFdlYktpdCBvZiBzY3JvbGxiYXIgbW9kZSBjaGFuZ2VzLgogICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0ID0gMDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDc4YzEyYjJjOTZmYjg1NmNkOWMx
YzE5YzlmMzU2MGYxNzE0ZjY5YjcuLjc4YjhkNjE0YmUwZjIxODQ1Njk1ZTk2YTQ1Y2JkNGQ3ODli
OTExNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTE1MywxMiAr
MTUzLDI0IEBAIHZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6Y2hyb21lRGVzdHJveWVkKCkK
ICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzZXRX
aW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpCitGbG9hdFJlY3QgQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeTo6bWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgSG9zdFJlY3QmIHJlY3QpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gcmVjdDsKK30KKworSG9zdFJlY3Qg
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6bWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRS
ZWN0JiByZWN0KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHJl
Y3Q7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6c2V0V2luZG93UmVjdChjb25z
dCBIb3N0UmVjdCYpCiB7CiAgICAgLy8gVGhlIHdpbmRvdyBkaW1lbnNpb25zIGFyZSBmaXhlZCBp
biB0aGUgUklNIHBvcnQuCiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojp3
aW5kb3dSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OndpbmRvd1JlY3Qo
KQogewogICAgIEludFNpemUgd2luZG93U2l6ZTsKIApAQCAtMTY4LDEwICsxODAsMTEgQEAgRmxv
YXRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OndpbmRvd1JlY3QoKQogICAgIHJldHVybiBG
bG9hdFJlY3QoMCwgMCwgd2luZG93U2l6ZS53aWR0aCgpLCB3aW5kb3dTaXplLmhlaWdodCgpKTsK
IH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OnBhZ2VSZWN0KCkKK0hvc3RS
ZWN0IENocm9tZUNsaWVudEJsYWNrQmVycnk6OnZpZXdwb3J0UmVjdCgpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KCk7CisgICAgLy8gVGhpcyBtZWFucyB0
aGF0IHRoZSB3aW5kb3cgcmVjdCBpcyB1c2VkIGZvciB3aW5kb3cgcmVzaXppbmcuCisgICAgcmV0
dXJuIHdpbmRvd1JlY3QoKTsKIH0KIAogZmxvYXQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6c2Nh
bGVGYWN0b3IoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggZTEyOWY0NTg0
MjE5NmJhNWU2NTFjNWUwZDg1NmY5ZTJhYmJiZTg1YS4uMzg3YzNmZTZiNDdjNjAyYjZhYmFlZDhi
NjdkZDA4ZmYzNTA4ZGY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0z
Nyw5ICszNywxMSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVk
KCk7CiAgICAgdmlydHVhbCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gMDsgfTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0
dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgcGFnZVJl
Y3QoKTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBtYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBI
b3N0UmVjdCYpIGNvbnN0OworICAgIHZpcnR1YWwgSG9zdFJlY3QgbWFwRnJvbUNTU1RvSG9zdFJl
Y3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1Jl
Y3QoY29uc3QgSG9zdFJlY3QmKTsKKyAgICB2aXJ0dWFsIEhvc3RSZWN0IHdpbmRvd1JlY3QoKTsK
KyAgICB2aXJ0dWFsIEhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpOwogICAgIHZpcnR1YWwgZmxvYXQg
c2NhbGVGYWN0b3IoKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKTsKICAgICB2aXJ0dWFsIHZv
aWQgdW5mb2N1cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcAppbmRleCA5NDk1OTM4MGE2MDZkOWQxMmU3YmY5NzU1MmFmYzRiYTZjY2Q5YmU2
Li41NDI0Yjc1MTM5MzE2ZWVlODQwYThiZTdmM2NjNWFkYmI0NTRkYzlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtMTU4LDEzICsx
NTgsMjUgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIC8v
IE91ciBsaWZldGltZSBpcyBib3VuZCB0byB0aGUgV2ViVmlld0ltcGwuCiB9CiAKLXZvaWQgQ2hy
b21lQ2xpZW50SW1wbDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHIpCitGbG9hdFJl
Y3QgQ2hyb21lQ2xpZW50SW1wbDo6bWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgV2ViQ29yZTo6
SG9zdFJlY3QmIHJlY3QpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gcmVjdDsKK30KKworV2ViQ29yZTo6SG9zdFJlY3QgQ2hyb21lQ2xpZW50SW1wbDo6bWFwRnJv
bUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SW1w
bDo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAobV93ZWJW
aWV3LT5jbGllbnQoKSkKLSAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+c2V0V2luZG93UmVj
dChJbnRSZWN0KHIpKTsKKyAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+c2V0V2luZG93UmVj
dChJbnRSZWN0KHJlY3QpKTsKIH0KIAotRmxvYXRSZWN0IENocm9tZUNsaWVudEltcGw6OndpbmRv
d1JlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50SW1wbDo6d2luZG93UmVjdCgpCiB7CiAgICAg
V2ViUmVjdCByZWN0OwogICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQpAQCAtMTc2LDEwICsx
ODgsMTAgQEAgRmxvYXRSZWN0IENocm9tZUNsaWVudEltcGw6OndpbmRvd1JlY3QoKQogICAgICAg
ICByZWN0LndpZHRoID0gbV93ZWJWaWV3LT5zaXplKCkud2lkdGg7CiAgICAgICAgIHJlY3QuaGVp
Z2h0ID0gbV93ZWJWaWV3LT5zaXplKCkuaGVpZ2h0OwogICAgIH0KLSAgICByZXR1cm4gRmxvYXRS
ZWN0KHJlY3QpOworICAgIHJldHVybiBIb3N0UmVjdChyZWN0KTsKIH0KIAotRmxvYXRSZWN0IENo
cm9tZUNsaWVudEltcGw6OnBhZ2VSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNsaWVudEltcGw6OnZp
ZXdwb3J0UmVjdCgpCiB7CiAgICAgLy8gV2UgaGlkZSB0aGUgZGV0YWlscyBvZiB0aGUgd2luZG93
J3MgYm9yZGVyIHRoaWNrbmVzcyBmcm9tIHRoZSB3ZWIgcGFnZSBieQogICAgIC8vIHNpbXBsZSBy
ZS11c2luZyB0aGUgd2luZG93IHBvc2l0aW9uIGhlcmUuICBTbywgZnJvbSB0aGUgcG9pbnQtb2Yt
dmlldyBvZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5o
CmluZGV4IDc3MDg0ZjgwMTAyZjYyMzdiNjc4MmRjOGI2MGZjYzJjZTI2Njk1MjAuLmQxYmEzMWFh
ZTFkNTI0MmU4Y2QzYWUwZmQ5OWEyMDRkMDU0N2YyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTczLDkgKzczLDE0IEBAIHB1YmxpYzoK
IAogICAgIC8vIENocm9tZUNsaWVudCBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVE
ZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0
KCk7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGFnZVJlY3QoKTsKKworICAgIHZp
cnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9DU1NSZWN0KGNvbnN0IFdlYkNv
cmU6Okhvc3RSZWN0JikgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0UmVjdCBtYXBG
cm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBjb25zdDsKKworICAg
IHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6Okhvc3RSZWN0Jik7Cisg
ICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBX
ZWJDb3JlOjpIb3N0UmVjdCB2aWV3cG9ydFJlY3QoKTsKKwogICAgIHZpcnR1YWwgdm9pZCBmb2N1
cygpOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CiAgICAgdmlydHVhbCBib29sIGNhblRh
a2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCA1Mzc0MjRhOTQz
ZDA3ZDMzNTUxOWExMTNjMTM5YzI4MDYxMDYwODE3Li45NzkwODc5YzA4N2IxZjA0NmU5YWNkOGMy
NjBjOGIwNmJmOTg2ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTExNiwxNyArMTE2LDMxIEBAIHZvaWQgQ2hy
b21lQ2xpZW50RWZsOjpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKikKIHsKIH0KIAotRmxvYXRS
ZWN0IENocm9tZUNsaWVudEVmbDo6d2luZG93UmVjdCgpCitGbG9hdFJlY3QgQ2hyb21lQ2xpZW50
RWZsOjptYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkgY29uc3QKK3sK
KyAgICBGbG9hdFJlY3QgcmVzdWx0ID0gcmVjdDsKKyAgICByZXN1bHQuc2NhbGUoMSAvIEVXS1By
aXZhdGU6OmNvcmVQYWdlKG1fdmlldyktPmRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK0hvc3RSZWN0IENocm9tZUNsaWVudEVmbDo6bWFwRnJvbUNTU1RvSG9z
dFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSBjb25zdAoreworICAgIEhvc3RSZWN0IHJlc3Vs
dCA9IHJlY3Q7CisgICAgcmVzdWx0LnNjYWxlKEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldykt
PmRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0hvc3RSZWN0
IENocm9tZUNsaWVudEVmbDo6d2luZG93UmVjdCgpCiB7CiAgICAgaW50IHgsIHksIHdpZHRoLCBo
ZWlnaHQ7CiAKICAgICBFY29yZV9FdmFzKiBlZSA9IGVjb3JlX2V2YXNfZWNvcmVfZXZhc19nZXQo
ZXZhc19vYmplY3RfZXZhc19nZXQobV92aWV3KSk7CiAgICAgZWNvcmVfZXZhc19yZXF1ZXN0X2dl
b21ldHJ5X2dldChlZSwgJngsICZ5LCAmd2lkdGgsICZoZWlnaHQpOwogCi0gICAgcmV0dXJuIEZs
b2F0UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICByZXR1cm4gSG9zdFJlY3QoeCwgeSwg
d2lkdGgsIGhlaWdodCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRXaW5kb3dSZWN0
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRXaW5kb3dS
ZWN0KGNvbnN0IEhvc3RSZWN0JiByZWN0KQogewogICAgIGlmICghZXdrX3ZpZXdfc2V0dGluZ19l
bmFibGVfYXV0b19yZXNpemVfd2luZG93X2dldChtX3ZpZXcpKQogICAgICAgICByZXR1cm47CkBA
IC0xMzUsOSArMTQ5LDEzIEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpzZXRXaW5kb3dSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICBlY29yZV9ldmFzX21vdmVfcmVzaXplKGVlLCByZWN0
LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiB9CiAKLUZsb2F0
UmVjdCBDaHJvbWVDbGllbnRFZmw6OnBhZ2VSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNsaWVudEVm
bDo6dmlld3BvcnRSZWN0KCkKIHsKLSAgICByZXR1cm4gZXdrX3ZpZXdfcGFnZV9yZWN0X2dldCht
X3ZpZXcpOworICAgIC8vIFRoaXMgcmVxdWlyZXMgRnJhbWVWaWV3IHRvIGJlIHRoZSBzYW1lIHNp
emUgYXMgdGhlIHZpZXdwb3J0LgorICAgIEhvc3RSZWN0IHJlY3QgPSBld2tfdmlld19wYWdlX3Jl
Y3RfZ2V0KG1fdmlldyk7CisKKyAgICBpZiAocmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biB3aW5kb3dSZWN0KCk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpmb2N1cygpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCmlu
ZGV4IDY4ZGE0NWE4YTgxNmYzMDhjNTdlYzE3OTc4NzJmODQzYjUxNmY2NDcuLjlmNzBkZjFlNzUx
MWNmOGUxN2JlZjdjYzA5ZTE0MDQ0YWNhOTA3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC00OCwxMCArNDgsMTQgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1
YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3
aW5kb3dSZWN0KCk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIC8v
IE1ldGhvZHMgZm9yIG1hcHBpbmcgYmV0d2VlbiBob3N0IFVJIHVuaXRzIGFuZCBDU1MgdW5pdHMs
IHdoaWNoIG1heSBkaWZmZXIgaW4gcGl4ZWwgZGVuc2l0eSBhbmQgb3JpZ2luLgorICAgIHZpcnR1
YWwgRmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9DU1NSZWN0KGNvbnN0IEhvc3RSZWN0JikgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBIb3N0UmVjdCBtYXBGcm9tQ1NTVG9Ib3N0UmVjdChjb25z
dCBGbG9hdFJlY3QmKSBjb25zdCBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5k
b3dSZWN0KGNvbnN0IEhvc3RSZWN0Jik7CisgICAgdmlydHVhbCBIb3N0UmVjdCB3aW5kb3dSZWN0
KCk7CisgICAgdmlydHVhbCBIb3N0UmVjdCB2aWV3cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3LmNwcAppbmRleCBiN2E4NGIxZjkxYjM4Mjk2ZjRlNjQwNWRlOTNlMmRkYmMyMWQ3
ZTgxLi5mYzkxZWQ0OTc2ZDFjYzUxZTA1YmE5OGU3MDUwOWQ5NjA4NDVkMzM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTEzMDQsNyArMTMwNCw3IEBAIHN0YXRpYyBXZWJDb3Jl
OjpWaWV3cG9ydEF0dHJpYnV0ZXMgX2V3a192aWV3X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfY29tcHV0
ZShFd2tfVmllCiAgICAgaW50IGRldmljZURQSSA9IFdlYkNvcmU6OmdldERQSSgpOwogICAgIHBy
aXYtPnNldHRpbmdzLmRldmljZVBpeGVsUmF0aW8gPSBkZXZpY2VEUEkgLyBXZWJDb3JlOjpWaWV3
cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdldERQSTsKIAotICAgIFdlYkNvcmU6OkludFJl
Y3QgYXZhaWxhYmxlUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QocHJpdi0+cGFnZS0+Y2hyb21lKCkt
PmNsaWVudCgpLT5wYWdlUmVjdCgpKTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGF2YWlsYWJsZVJl
Y3QgPSBlbmNsb3NpbmdJbnRSZWN0KHByaXYtPnBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+dmll
d3BvcnRSZWN0KCkpOwogICAgIFdlYkNvcmU6OkludFJlY3QgZGV2aWNlUmVjdCA9IGVuY2xvc2lu
Z0ludFJlY3QocHJpdi0+cGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT53aW5kb3dSZWN0KCkpOwog
CiAgICAgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgPSBXZWJDb3JlOjpj
b21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKHByaXYtPnZpZXdwb3J0QXJndW1lbnRzLCBkZXNrdG9w
V2lkdGgsIGRldmljZVJlY3Qud2lkdGgoKSwgZGV2aWNlUmVjdC5oZWlnaHQoKSwgcHJpdi0+c2V0
dGluZ3MuZGV2aWNlUGl4ZWxSYXRpbywgYXZhaWxhYmxlUmVjdC5zaXplKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5k
ZXggNjE1MmY1MDgwYmZiZGVjOWNlNDQxYzljMzkxNTAyYjIwMDE5OTk4NS4uZDkzMGM2YjJlZDEx
ODU2YWY2YTk4ZmJmZjNmN2U3OWQyODA1ZTg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC0xMDQsNyArMTA0LDE5
IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlz
OwogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KCkKK0Zsb2F0UmVjdCBD
aHJvbWVDbGllbnQ6Om1hcEZyb21Ib3N0VG9DU1NSZWN0KGNvbnN0IEhvc3RSZWN0JiByZWN0KSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK0hv
c3RSZWN0IENocm9tZUNsaWVudDo6bWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHJlY3Q7
Cit9CisKK0hvc3RSZWN0IENocm9tZUNsaWVudDo6d2luZG93UmVjdCgpCiB7CiAgICAgR3RrV2lk
Z2V0KiB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKG1fd2ViVmll
dykpOwogICAgIGlmICh3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3cod2luZG93KSkgewpA
QCAtMTE2LDcgKzEyOCw3IEBAIEZsb2F0UmVjdCBDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQog
ICAgIHJldHVybiBGbG9hdFJlY3QoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnQ6OnNldFdpbmRv
d1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQordm9pZCBDaHJvbWVDbGllbnQ6OnNldFdpbmRv
d1JlY3QoY29uc3QgSG9zdFJlY3QmIHJlY3QpCiB7CiAgICAgSW50UmVjdCBpbnRyZWN0ID0gSW50
UmVjdChyZWN0KTsKICAgICBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyogd2ViV2luZG93RmVhdHVy
ZXMgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dpbmRvd19mZWF0dXJlcyhtX3dlYlZpZXcpOwpAQCAt
MTQ5LDcgKzE2MSw3IEBAIHN0YXRpYyBJbnRSZWN0IGdldFdlYlZpZXdSZWN0KFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcpCiAgICAgcmV0dXJuIEludFJlY3QoYWxsb2NhdGlvbi54LCBhbGxvY2F0aW9u
LnksIGFsbG9jYXRpb24ud2lkdGgsIGFsbG9jYXRpb24uaGVpZ2h0KTsKIH0KIAotRmxvYXRSZWN0
IENocm9tZUNsaWVudDo6cGFnZVJlY3QoKQorSG9zdFJlY3QgQ2hyb21lQ2xpZW50Ojp2aWV3cG9y
dFJlY3QoKQogewogICAgIHJldHVybiBnZXRXZWJWaWV3UmVjdChtX3dlYlZpZXcpOwogfQpAQCAt
Njc5LDcgKzY5MSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYg
ZGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uCiAgICAgLy8gQ29tcHV0ZSB0
aGUgc2Nyb2xsIHJlcGFpbnQgcmVnaW9uLiBXZSBlbnN1cmUgdGhhdCB3ZSBhcmUgbm90IHN1YnRy
YWN0aW5nIGFyZWFzCiAgICAgLy8gdGhhdCB3ZSd2ZSBzY3JvbGxlZCBmcm9tIG91dHNpZGUgdGhl
IHZpZXdwb3J0IGZyb20gdGhlIHJlcGFpbnQgcmVnaW9uLgogICAgIEludFJlY3Qgb25TY3JlZW5T
Y3JvbGxSZWN0ID0gcmVjdFRvU2Nyb2xsOwotICAgIG9uU2NyZWVuU2Nyb2xsUmVjdC5pbnRlcnNl
Y3QoSW50UmVjdChJbnRQb2ludCgpLCBlbmNsb3NpbmdJbnRSZWN0KHBhZ2VSZWN0KCkpLnNpemUo
KSkpOworICAgIG9uU2NyZWVuU2Nyb2xsUmVjdC5pbnRlcnNlY3QoSW50UmVjdChJbnRQb2ludCgp
LCBlbmNsb3NpbmdJbnRSZWN0KHZpZXdwb3J0UmVjdCgpKS5zaXplKCkpKTsKICAgICBSZWdpb24g
c2Nyb2xsUmVwYWludFJlZ2lvbiA9IHN1YnRyYWN0KHJlY3RUb1Njcm9sbCwgdHJhbnNsYXRlKG9u
U2NyZWVuU2Nyb2xsUmVjdCwgZGVsdGEpKTsKIAogICAgIG1fZGlydHlSZWdpb24udW5pdGUoc2Ny
b2xsUmVwYWludFJlZ2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5oCmluZGV4IDQ0YzIxMWFkNDYyODdlZmZkNzQzMDRjMDJkY2M2
ZGIzMGZhZjYwM2MuLjNlNGIyMGRkMDhjYjg4MTAxZDIxNDM1ZWRmMDEyNzg5YTI3ZjNjNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5oCkBAIC00OCwxMCArNDgsMTIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRX
aW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwotICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3
aW5kb3dSZWN0KCk7CisgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9DU1NS
ZWN0KGNvbnN0IEhvc3RSZWN0JikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgSG9zdFJlY3QgbWFw
RnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAKLSAgICAgICAgdmly
dHVhbCBGbG9hdFJlY3QgcGFnZVJlY3QoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNldFdpbmRv
d1JlY3QoY29uc3QgSG9zdFJlY3QmKTsKKyAgICAgICAgdmlydHVhbCBIb3N0UmVjdCB3aW5kb3dS
ZWN0KCk7CisgICAgICAgIHZpcnR1YWwgSG9zdFJlY3Qgdmlld3BvcnRSZWN0KCk7CiAKICAgICAg
ICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRy
aWJ1dGVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJp
YnV0ZXMuY3BwCmluZGV4IGQxYTgzNzg2OTU2YTc3NWI3ZTRlMzkyOTljZjhlODc1ZGM1YmM0NDgu
LmU4Mjc1YzY5MGE3MzdlNThiYTQ2ZjVjMzhlMGM1NzcwOGNhNGFhMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwCkBA
IC01MjUsNyArNTI1LDcgQEAgdm9pZCB3ZWJraXRWaWV3cG9ydEF0dHJpYnV0ZXNSZWNvbXB1dGUo
V2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzKiB2aWV3cG9ydEF0dHJpYnUKICAgICBwcml2LT5kZXZp
Y2VXaWR0aCA9IHdpbmRvd1JlY3Qud2lkdGgoKTsKICAgICBwcml2LT5kZXZpY2VIZWlnaHQgPSB3
aW5kb3dSZWN0LmhlaWdodCgpOwogCi0gICAgSW50UmVjdCByZWN0KHdlYlZpZXctPnByaXYtPmNv
cmVQYWdlLT5jaHJvbWUoKS0+cGFnZVJlY3QoKSk7CisgICAgSW50UmVjdCByZWN0KHdlYlZpZXct
PnByaXYtPmNvcmVQYWdlLT5jaHJvbWUoKS0+dmlld3BvcnRSZWN0KCkpOwogICAgIHByaXYtPmF2
YWlsYWJsZVdpZHRoID0gcmVjdC53aWR0aCgpOwogICAgIHByaXYtPmF2YWlsYWJsZUhlaWdodCA9
IHJlY3QuaGVpZ2h0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNzA3MzQ5YzViZDY1MjVhMzU4NzdhZTJhYmYyZTMw
ZWY4ZDdjZjViMS4uZGQ2YjJjNjIzYWY2MGFkYWViYmQ2MTJkZDg1YzYwNmY2NmI4MTY2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTM5LDExICszOSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkKiB3ZWJWaWV3
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dm9pZCo+KG1fd2ViVmlldyk7IH0KICAgICAK
ICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgT1ZFUlJJREU7Ci0gICAgCi0gICAg
dmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVjdCgpIE9WRVJS
SURFOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGFnZVJlY3QoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBtYXBGcm9tSG9zdFRvQ1NTUmVjdChj
b25zdCBXZWJDb3JlOjpIb3N0UmVjdCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6SG9zdFJlY3QgbWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29u
c3QgV2ViQ29yZTo6SG9zdFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhv
c3RSZWN0IHdpbmRvd1JlY3QoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhvc3RS
ZWN0IHZpZXdwb3J0UmVjdCgpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKSBPVkVSUklERTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRl
eCBmMGJjZGE1Mjk5YmI0MzI4MmFjYjUxMDhlZDM3NjY3ZGU1OGUzMzVkLi5iMzgzY2QyZmJjNmRk
NzI3YTgwNjc5ZDQ3YTYxZmJhYTJjNmZkNTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xNDMsMjMgKzE0MywzMyBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2hyb21lRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhp
czsKIH0KIAotLy8gVGhlc2UgZnVuY3Rpb25zIHNjYWxlIGJldHdlZW4gd2luZG93IGFuZCBXZWJW
aWV3IGNvb3JkaW5hdGVzIGJlY2F1c2UgSmF2YVNjcmlwdC9ET00gb3BlcmF0aW9ucyAKLS8vIGFz
c3VtZSB0aGF0IHRoZSBXZWJWaWV3IGFuZCB0aGUgd2luZG93IHNoYXJlIHRoZSBzYW1lIGNvb3Jk
aW5hdGUgc3lzdGVtLgorLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIHRvIHNjYWxlIGJldHdl
ZW4gd2luZG93IChob3N0IHVuaXRzKSBhbmQgV2ViVmlldyAoQ1NTIHVuaXQpIGNvb3JkaW5hdGVz
LgorRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6bWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3Qg
SG9zdFJlY3QmIGhvc3RSZWN0KSBjb25zdAoreworICAgIEZsb2F0UmVjdCBjc3NSZWN0ID0gaG9z
dFJlY3Q7CisgICAgY3NzUmVjdC5zZXRZKE5TTWF4WShbc2NyZWVuRm9yV2luZG93KFttX3dlYlZp
ZXcgd2luZG93XSkgZnJhbWVdKSAtIChjc3NSZWN0LnkoKSArIGNzc1JlY3QuaGVpZ2h0KCkpKTsg
Ly8gZmxpcAorICAgIHJldHVybiBjc3NSZWN0OworfQorCitIb3N0UmVjdCBXZWJDaHJvbWVDbGll
bnQ6Om1hcEZyb21DU1NUb0hvc3RSZWN0KGNvbnN0IEZsb2F0UmVjdCYgY3NzUmVjdCkgY29uc3QK
K3sKKyAgICBIb3N0UmVjdCBob3N0UmVjdCA9IGNzc1JlY3Q7CisgICAgaG9zdFJlY3Quc2V0WShO
U01heFkoW3NjcmVlbkZvcldpbmRvdyhbbV93ZWJWaWV3IHdpbmRvd10pIGZyYW1lXSkgLSAoaG9z
dFJlY3QueSgpICsgaG9zdFJlY3QuaGVpZ2h0KCkpKTsgLy8gZmxpcAorICAgIHJldHVybiBob3N0
UmVjdDsKK30KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxv
YXRSZWN0JiByZWN0KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QoY29uc3Qg
SG9zdFJlY3QmIHJlY3QpCiB7Ci0gICAgTlNSZWN0IHdpbmRvd1JlY3QgPSB0b0RldmljZVNwYWNl
KHJlY3QsIFttX3dlYlZpZXcgd2luZG93XSk7Ci0gICAgW1ttX3dlYlZpZXcgX1VJRGVsZWdhdGVG
b3J3YXJkZXJdIHdlYlZpZXc6bV93ZWJWaWV3IHNldEZyYW1lOndpbmRvd1JlY3RdOworICAgIFtb
bV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1fd2ViVmlldyBzZXRGcmFt
ZTpyZWN0XTsKIH0KIAotRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVjdCgpCitI
b3N0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQogewotICAgIE5TUmVjdCB3aW5k
b3dSZWN0ID0gW1ttX3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdGcmFtZTpt
X3dlYlZpZXddOwotICAgIHJldHVybiB0b1VzZXJTcGFjZSh3aW5kb3dSZWN0LCBbbV93ZWJWaWV3
IHdpbmRvd10pOworICAgIHJldHVybiBbW21fd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0g
d2ViVmlld0ZyYW1lOm1fd2ViVmlld107CiB9CiAKIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGFkZCBB
UEkgZm9yIHNldHRpbmcgYW5kIGdldHRpbmcgdGhpcy4KLUZsb2F0UmVjdCBXZWJDaHJvbWVDbGll
bnQ6OnBhZ2VSZWN0KCkKK0hvc3RSZWN0IFdlYkNocm9tZUNsaWVudDo6dmlld3BvcnRSZWN0KCkK
IHsKICAgICByZXR1cm4gW21fd2ViVmlldyBmcmFtZV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCmluZGV4IGVhYWViMDEyZjg2
ZDBhNTMxMTBiNTc5NzczZjZkNWI4YzA1ZDkzNDIuLjBiZTA2ZDVkYzljY2E1NzNjNjlkNGYxNThh
ODQzZjM3ZDVmMDZkYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuY3BwCkBAIC0xNDQsNyArMTQ0LDE5IEBAIENocm9tZUNsaWVudFF0
Ojp+Q2hyb21lQ2xpZW50UXQoKQogI2VuZGlmCiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50UXQ6OnNl
dFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQorRmxvYXRSZWN0IENocm9tZUNsaWVu
dFF0OjptYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBIb3N0UmVjdCYgcmVjdCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiByZWN0OworfQorCitIb3N0UmVjdCBD
aHJvbWVDbGllbnRRdDo6bWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisK
K3ZvaWQgQ2hyb21lQ2xpZW50UXQ6OnNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmIHJlY3Qp
CiB7CiAgICAgaWYgKCFtX3dlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKQEAgLTE1NywxMyArMTY5
LDIwIEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0KQogICAgIGxpa2UgdG9vbGJhcnMvc2Nyb2xsYmFycyBldGMuIEl0IGlzIHVzZWQgYnkg
dGhlIHZpZXdwb3J0IG1ldGEgdGFnIGFzIHdlbGwgYXMKICAgICBieSB0aGUgRE9NIFdpbmRvdyBv
YmplY3Q6IG91dGVySGVpZ2h0KCksIG91dGVyV2lkdGgoKSwgc2NyZWVuWCgpLCBzY3JlZW5ZKCku
CiAqLwotRmxvYXRSZWN0IENocm9tZUNsaWVudFF0Ojp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0IENo
cm9tZUNsaWVudFF0Ojp3aW5kb3dSZWN0KCkKIHsKICAgICBpZiAoIXBsYXRmb3JtUGFnZUNsaWVu
dCgpKQogICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiAgICAgcmV0dXJuIHBsYXRmb3JtUGFn
ZUNsaWVudCgpLT53aW5kb3dSZWN0KCk7CiB9CiAKK0hvc3RSZWN0IENocm9tZUNsaWVudFF0Ojp2
aWV3cG9ydFJlY3QoKQoreworICAgIGlmICghbV93ZWJQYWdlKQorICAgICAgICByZXR1cm4gd2lu
ZG93UmVjdCgpOworICAgIHJldHVybiBIb3N0UmVjdChRUmVjdEYoUVBvaW50RigwLCAwKSwgbV93
ZWJQYWdlLT52aWV3cG9ydFNpemUoKSkpOworfQorCiBib29sIENocm9tZUNsaWVudFF0OjphbGxv
d3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QKIHsKICAgICBpZiAoIXBsYXRmb3JtUGFn
ZUNsaWVudCgpKQpAQCAtMTcxLDEzICsxOTAsNiBAQCBib29sIENocm9tZUNsaWVudFF0OjphbGxv
d3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QKICAgICByZXR1cm4gcGxhdGZvcm1QYWdl
Q2xpZW50KCktPmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKTsKIH0KIAotRmxvYXRSZWN0
IENocm9tZUNsaWVudFF0OjpwYWdlUmVjdCgpCi17Ci0gICAgaWYgKCFtX3dlYlBhZ2UpCi0gICAg
ICAgIHJldHVybiBGbG9hdFJlY3QoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KFFSZWN0RihRUG9p
bnRGKDAsIDApLCBtX3dlYlBhZ2UtPnZpZXdwb3J0U2l6ZSgpKSk7Ci19Ci0KIHZvaWQgQ2hyb21l
Q2xpZW50UXQ6OmZvY3VzKCkKIHsKICAgICBpZiAoIW1fd2ViUGFnZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCBmNzM1OWQyZTI4
NzRhNzU1MTljMmY1Mzg3NjgxMzI5ODBhZTRiOWNkLi5hNjBlYmM0MTYwODU5MjhlNDk0ODdhZGFk
M2ZjN2JiMTliY2QxMTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCkBAIC02NCwxMCArNjQsMTMgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25z
dCBGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7CiAKLSAg
ICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IG1h
cEZyb21Ib3N0VG9DU1NSZWN0KGNvbnN0IEhvc3RSZWN0JikgY29uc3Q7CisgICAgdmlydHVhbCBI
b3N0UmVjdCBtYXBGcm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0Jik7CisgICAgdmly
dHVhbCBIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVhbCBIb3N0UmVjdCB2aWV3cG9y
dFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwogICAgIHZpcnR1YWwgdm9pZCB1
bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAppbmRleCA2OGJkZGVmMDM0MTg0YjVkNDAxZDVjZDBmNzRhNTYyMWY2
NGI2OWUyLi4zYjA1NGI4MDBiMDliOGQ2NDg0ZTc5NTdkOGU0ZDg1ZDc4NTIwZjkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTg1LDcgKzg1LDE5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjaHJvbWVEZXN0cm95
ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0V2lu
ZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHIpCitGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojpt
YXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBIb3N0UmVjdCYgcikgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiByOworfQorCitIb3N0UmVjdCBXZWJDaHJvbWVDbGll
bnQ6Om1hcEZyb21DU1NUb0hvc3RSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiByOworfQorCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYgcikKIHsKICAgICBJV2ViVUlEZWxl
Z2F0ZSogdWlEZWxlZ2F0ZSA9IDA7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVs
ZWdhdGUoJnVpRGVsZWdhdGUpKSkgewpAQCAtOTUsNyArMTA3LDcgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByKQogICAgIH0KIH0KIAotRmxv
YXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVjdCgpCitIb3N0UmVjdCBXZWJDaHJvbWVD
bGllbnQ6OndpbmRvd1JlY3QoKQogewogICAgIElXZWJVSURlbGVnYXRlKiB1aURlbGVnYXRlID0g
MDsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkp
KSB7CkBAIC0xMDgsMTAgKzEyMCwxMCBAQCBGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5k
b3dSZWN0KCkKICAgICAgICAgICAgIHJldHVybiByZWN0OwogICAgIH0KIAotICAgIHJldHVybiBG
bG9hdFJlY3QoKTsKKyAgICByZXR1cm4gSG9zdFJlY3QoKTsKIH0KIAotRmxvYXRSZWN0IFdlYkNo
cm9tZUNsaWVudDo6cGFnZVJlY3QoKQorSG9zdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp2aWV3cG9y
dFJlY3QoKQogewogICAgIFJFQ1QgcmVjdDsKICAgICBtX3dlYlZpZXctPmZyYW1lUmVjdCgmcmVj
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCmluZGV4IDlhZWM3MzQ2ZjAyNTlmZWYwODVkYWE3YTY3NWNlMzhkZTVhN2Q0MzYuLjJh
YTA2YjJjZGZjZTcxZTU4ZmUyMjQyMjk4YzljNTA0ZWZiOWQ3YzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC00NCwxMCAr
NDQsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fd2ViVmlldzsgfQot
ICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKLSAgICAKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworCisgICAgdmlydHVhbCBX
ZWJDb3JlOjpGbG9hdFJlY3QgbWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgV2ViQ29yZTo6SG9z
dFJlY3QmKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okhvc3RSZWN0IG1hcEZyb21DU1NU
b0hvc3RSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGNvbnN0OworCisgICAgdmlydHVh
bCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6SG9zdFJlY3QmKTsKKyAgICB2aXJ0
dWFsIFdlYkNvcmU6Okhvc3RSZWN0IHdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
Okhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwIGIvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKaW5kZXggZGU2YmY3MTkw
ZmIwMjM5YjQwMTc4ZmE0ZGU4YmVkY2Y0MDg1YmU0MS4uNDhmYTRjMzBjYjBjYzJmZGJhODBmNTY5
YTc4Y2RkYzk0ZDNlNTg3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKQEAgLTUwLDIyICs1MCwzNCBAQCB2
b2lkIENocm9tZUNsaWVudFdpbkNFOjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlz
OwogfQogCi1GbG9hdFJlY3QgQ2hyb21lQ2xpZW50V2luQ0U6OndpbmRvd1JlY3QoKQorRmxvYXRS
ZWN0IENocm9tZUNsaWVudFdpbkNFOjptYXBGcm9tSG9zdFRvQ1NTUmVjdChjb25zdCBIb3N0UmVj
dCYgcikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiByOworfQor
CitIb3N0UmVjdCBDaHJvbWVDbGllbnRXaW5DRTo6bWFwRnJvbUNTU1RvSG9zdFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IHI7Cit9CisKK0hvc3RSZWN0IENocm9tZUNsaWVudFdpbkNFOjp3aW5kb3dSZWN0KCkKIHsKICAg
ICBpZiAoIW1fd2ViVmlldykKLSAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOworICAgICAgICBy
ZXR1cm4gSG9zdFJlY3QoKTsKIAogICAgIFJFQ1QgcmVjdDsKICAgICBtX3dlYlZpZXctPmZyYW1l
UmVjdCgmcmVjdCk7CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V2lu
Q0U6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikKK3ZvaWQgQ2hyb21lQ2xpZW50V2lu
Q0U6OnNldFdpbmRvd1JlY3QoY29uc3QgSG9zdFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRXaW5DRTo6cGFnZVJlY3QoKQorSG9zdFJl
Y3QgQ2hyb21lQ2xpZW50V2luQ0U6OnZpZXdwb3J0UmVjdCgpCiB7CiAgICAgcmV0dXJuIHdpbmRv
d1JlY3QoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuaAppbmRleCA5NmNlYTFhNjJhYmQ5ODVmYTEyMjBiY2I3ZjRk
NzllYzk2OTg3MTNmLi4zMWNmYjMzOTZjMzhiZjdhZjFiOWQ4ZDM3Y2NkMTdjYWFmMmIyMzU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFdpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRXaW5DRS5oCkBAIC0zOCwxMCArMzgsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBjaHJvbWVEZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dS
ZWN0KCk7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAg
IHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9DU1NSZWN0KGNvbnN0IFdl
YkNvcmU6Okhvc3RSZWN0JikgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0UmVjdCBt
YXBGcm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBjb25zdDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6Okhvc3RSZWN0Jik7
CisgICAgdmlydHVhbCBXZWJDb3JlOjpIb3N0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpIb3N0UmVjdCB2aWV3cG9ydFJlY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBm
b2N1cygpOwogICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwIGIvU291cmNlL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAppbmRleCA1ZjExNjdiNTQ3Y2Q2
MWE2ZjA1YWMyOGYxN2IzYWNkZTc2ZDE2ZjRjLi4xZDgwNDg3NjExZGNhZGVjY2I4NDBjNDZiZDRm
MDNkYTNlZDNiNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5jcHAKQEAgLTkwLDIxICs5MCwzMyBAQCB2b2lkIENocm9tZUNsaWVudFd4
OjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hy
b21lQ2xpZW50V3g6OnNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikKK0Zsb2F0UmVjdCBD
aHJvbWVDbGllbnRXeDo6bWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgSG9zdFJlY3QmIHIpIGNv
bnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gcjsKIH0KIAotRmxvYXRS
ZWN0IENocm9tZUNsaWVudFd4Ojp3aW5kb3dSZWN0KCkKK0hvc3RSZWN0IENocm9tZUNsaWVudFd4
OjptYXBGcm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBGbG9hdFJlY3QmIHIpIGNvbnN0CiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KCk7CisgICAgcmV0dXJuIHI7
CiB9CiAKLUZsb2F0UmVjdCBDaHJvbWVDbGllbnRXeDo6cGFnZVJlY3QoKQordm9pZCBDaHJvbWVD
bGllbnRXeDo6c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KCk7Cit9CisKK0hvc3RSZWN0IENocm9tZUNs
aWVudFd4Ojp3aW5kb3dSZWN0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBIb3N0UmVjdCgpOworfQorCitIb3N0UmVjdCBDaHJvbWVDbGllbnRXeDo6dmlld3BvcnRSZWN0
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBIb3N0UmVjdCgpOwogfQog
CiB2b2lkIENocm9tZUNsaWVudFd4Ojpmb2N1cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaCBiL1NvdXJjZS9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IDUwNTQwZjA5NDNlOWQ2OTYzZjE5NTRj
MTFlNjJjY2NhN2Y5ZDhhNTguLmU3ZmY1MWY2NjcwYTNlNzg1ZjRkNWZhYTQ0YjZiZTBhODFkNTJj
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGll
bnRXeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRX
eC5oCkBAIC00NSwxMCArNDUsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVE
ZXN0cm95ZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKTsK
LSAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0
UmVjdCBwYWdlUmVjdCgpOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IG1hcEZyb21Ib3N0VG9DU1NS
ZWN0KGNvbnN0IEhvc3RSZWN0JikgY29uc3Q7CisgICAgdmlydHVhbCBIb3N0UmVjdCBtYXBGcm9t
Q1NTVG9Ib3N0UmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0V2luZG93UmVjdChjb25zdCBIb3N0UmVjdCYpOworICAgIHZpcnR1YWwgSG9zdFJlY3Qgd2lu
ZG93UmVjdCgpOworICAgIHZpcnR1YWwgSG9zdFJlY3Qgdmlld3BvcnRSZWN0KCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZm9jdXMoKTsKICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCmluZGV4IDNlN2ZlMzI5NGZjNWVjZGRiNjBiMmI4YjI3ODI5NmUzYWM3
MDljMWIuLjJmOWI5MjFjOTdlZTViMjAyNmVmOTFiODRmYTMzNDIyMTQ4MDI0ZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKQEAgLTEwMSwyNCArMTAxLDUwIEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpjaHJvbWVEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lKQor
RmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6bWFwRnJvbUhvc3RUb0NTU1JlY3QoY29uc3QgSG9z
dFJlY3QmIHJlY3QpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkK
KyAgICBGbG9hdFJlY3QgcmVzdWx0ID0gcmVjdDsKKyAgICByZXN1bHQuc2NhbGUoMSAvIG1fcGFn
ZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyNlbHNlCisgICAg
cmV0dXJuIHJlY3Q7CisjZW5kaWYKK30KKworSG9zdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjptYXBG
cm9tQ1NTVG9Ib3N0UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpIGNvbnN0Cit7CisjaWYgUExB
VEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKKyAgICBIb3N0UmVjdCByZXN1bHQgPSByZWN0Owor
ICAgIHJlc3VsdC5zY2FsZShtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIHJldHVy
biByZXN1bHQ7CisjZWxzZQorICAgIHJldHVybiByZWN0OworI2VuZGlmCit9CisKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEhvc3RSZWN0JiB3aW5kb3dGcmFtZSkK
IHsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0V2luZG93RnJh
bWUod2luZG93RnJhbWUpKTsKIH0KIAotRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93
UmVjdCgpCitIb3N0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QoKQogewotICAgIEZs
b2F0UmVjdCBuZXdXaW5kb3dGcmFtZTsKKyAgICBIb3N0UmVjdCBuZXdXaW5kb3dGcmFtZTsKIAog
ICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpHZXRXaW5kb3dGcmFtZSgpLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpHZXRXaW5kb3dGcmFtZTo6UmVwbHkobmV3V2luZG93RnJhbWUpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKSkKLSAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOworICAgICAgICByZXR1cm4gSG9zdFJl
Y3QoKTsKIAogICAgIHJldHVybiBuZXdXaW5kb3dGcmFtZTsKIH0KIAotRmxvYXRSZWN0IFdlYkNo
cm9tZUNsaWVudDo6cGFnZVJlY3QoKQorSG9zdFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp2aWV3cG9y
dFJlY3QoKQogewotICAgIHJldHVybiBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBtX3BhZ2UtPnNp
emUoKSk7CisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgcmV0dXJuIEhvc3RSZWN0
KEZsb2F0UG9pbnQoKSwgbV9wYWdlLT52aWV3cG9ydFNpemUoKSk7CisjZWxzZQorICAgIHJldHVy
biBIb3N0UmVjdChGbG9hdFBvaW50KCksIG1fcGFnZS0+c2l6ZSgpKTsKKyNlbmRpZgogfQogCiB2
b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMWU2
MmY3YWJkNGNjMmJiODUyOWU1MGY3NzEwZjcyZDYwOGUwMWM2My4uNzMxMmIyNGIwNDk2NjE3YWIx
Yzk2MzFjOGE3MmZhYTQ3ZjJjMTUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC00NCwxOSAr
NDQsMjIgQEAgcHVibGljOgogICAgICAgICAsIG1fcGFnZShwYWdlKQogICAgIHsKICAgICB9Ci0g
ICAgCisKICAgICBXZWJQYWdlKiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQqIHdlYlZpZXcoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpIE9WRVJSSURFOwotICAgIAotICAg
IHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBPVkVS
UklERTsKLSAgICAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpIE9W
RVJSSURFOwotICAgIAorCisgICAgLy8gTWV0aG9kcyBmb3IgbWFwcGluZyBiZXR3ZWVuIGhvc3Qg
VUkgdW5pdHMgYW5kIENTUyB1bml0cywgd2hpY2ggbWF5IGRpZmZlciBpbiBwaXhlbCBkZW5zaXR5
IGFuZCBvcmlnaW4uCisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgbWFwRnJvbUhvc3RU
b0NTU1JlY3QoY29uc3QgV2ViQ29yZTo6SG9zdFJlY3QmKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6Okhvc3RSZWN0IG1hcEZyb21DU1NUb0hvc3RSZWN0KGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpIGNvbnN0IE9WRVJSSURFOworCisgICAgdmlydHVhbCB2b2lkIHNldFdp
bmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6SG9zdFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6Okhvc3RSZWN0IHdpbmRvd1JlY3QoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6Okhvc3RSZWN0IHZpZXdwb3J0UmVjdCgpIE9WRVJSSURFOworCiAgICAgdmlydHVhbCB2
b2lkIGZvY3VzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKSBPVkVSUklE
RTsKICAgICAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0NzViODRk
NmU1NzBjY2VlODNjZjA4ZTU0N2JkMmNlMDIxM2U1MjhjLi41M2E4ZDFiODcyZGI4ODM4NDhiNWEz
OGI2NjNmOTIzZTY4N2YwY2IzIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTEgQEAKKzIwMTItMTEtMDggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2Vu
ICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEZpeCB0cmFuc2Zvcm1hdGlvbiBiZXR3
ZWVuIGhvc3QgYW5kIGNzcyBmb3IgbW92ZVRvLCByZXNpemVUbyBldGMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ1MworCisgICAgICAgICogTWFu
dWFsVGVzdHMvd2luZG93LW1ldGhvZHMuaHRtbDogQWRkZWQgdGVzdCBmb3Igd2luZG93IG1ldGhv
ZHMgc3VjaAorICAgICAgICBhcyBtb3ZlVG8uIFRoZXNlIGFyZSBnb29kIGZvciB0ZXN0aW5nIHdo
ZXRoZXIgdGhlc2Ugd29yayB3aXRoIGRwcHggIT0gMQorCiAyMDEyLTExLTExICBTaGlueWEgS2F3
YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbU2hhZG93XSBFbGVtZW50
U2hhZG93IHNob3VsZCBoYXZlIFJ1bGVGZWF0dXJlU2V0IGZvciBzZWxlY3QgYXR0cmlidXRlIHNl
bGVjdG9ycy4KZGlmZiAtLWdpdCBhL01hbnVhbFRlc3RzL3dpbmRvdy1tZXRob2RzLmh0bWwgYi9N
YW51YWxUZXN0cy93aW5kb3ctbWV0aG9kcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZjY5ZDc4M2UxZGZm
MWJjOTNkODc3MTE5N2UzNzQ2YTZhMzg0YzcKLS0tIC9kZXYvbnVsbAorKysgYi9NYW51YWxUZXN0
cy93aW5kb3ctbWV0aG9kcy5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHNldFdpbmRvd1Jl
Y3Qod2luLCBjbGllbnRSZWN0LCBmcm9tV2luZG93KSB7CisgICAgaWYgKHdpbikgeworICAgICAg
ICB2YXIgZGVza3RvcExlZnQgPSBmcm9tV2luZG93LnNjcmVlbkxlZnQgLSBmcm9tV2luZG93LnNj
cmVlbi5hdmFpbExlZnQ7CisgICAgICAgIHZhciBkZXNrdG9wVG9wID0gZnJvbVdpbmRvdy5zY3Jl
ZW5Ub3AgLSBmcm9tV2luZG93LnNjcmVlbi5hdmFpbFRvcDsKKworICAgICAgICAvLyBUaGlzIGlz
IHN1cHBvc2VkIHRvIGFmZmVjdCB0aGUgdmlld3BvcnQgYW5kIG5vdCBkaXJlY3RseSB0aGUgd2lu
ZG93LAorICAgICAgICAvLyB0aG91Z2ggaXQgd2lsbCBhZmZlY3QgaXQgYXMgYSByZXN1bHQgb2Yg
dGhpcy4gU29tZSBicm93c2VycyB0aG91Z2gsCisgICAgICAgIC8vIHN1Y2ggYXMgQ2hyb21lLCBt
b2RpZmllcyB0aGUgd2luZG93IGRpcmVjdGx5LgorICAgICAgICB3aW4ubW92ZVRvKGNsaWVudFJl
Y3QubGVmdCArIGRlc2t0b3BMZWZ0LCBjbGllbnRSZWN0LnRvcCArIGRlc2t0b3BUb3ApOworICAg
ICAgICB3aW4ucmVzaXplVG8oY2xpZW50UmVjdC53aWR0aCwgY2xpZW50UmVjdC5oZWlnaHQpOwor
ICAgIH0KK30KKworZnVuY3Rpb24gY3JlYXRlRXF1YWwoZGl2LCBmcm9tV2luZG93KSB7CisgICAg
d2luID0gd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIiwgIiIsICJsb2NhdGlvbj1ubywgcmVzaXph
YmxlPW5vLCBzY3JvbGxiYXJzPW5vLCBzdGF0dXM9bm8sIHRpdGxlYmFyPW5vLCB0b29sYmFyPW5v
LCBsZWZ0PTAsIHRvcD0wLCB3aWR0aD0xLCBoZWlnaHQ9MSIpOworICAgIHdpbi5kb2N1bWVudC53
cml0ZSgiPHN0eWxlPmJvZHkgeyBtYXJnaW46IDAgfTwvc3R5bGU+PGJvZHk+PC9ib2R5PiIpOwor
ICAgIHdpbi5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdLmlubmVySFRN
TCA9IGRpdi5vdXRlckhUTUw7CisgICAgc2V0V2luZG93UmVjdCh3aW4sIGRpdi5nZXRDbGllbnRS
ZWN0cygpWzBdLCBmcm9tV2luZG93KTsKKyAgICByZXR1cm4gd2luOworfQorCitmdW5jdGlvbiBy
dW5UZXN0cygpIHsKKyAgICB2YXIgZGl2MSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCdkaXYnKVsxXTsKKyAgICB2YXIgZGl2MiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCdkaXYnKVsyXTsKKworICAgIHZhciB3aW5kb3cxID0gY3JlYXRlRXF1YWwoZGl2MSwgd2luZG93
KTsKKyAgICB2YXIgd2luZG93MiA9IGNyZWF0ZUVxdWFsKGRpdjIsIHdpbmRvdyk7CisKKyAgICB3
aW5kb3cub25zY3JvbGwgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgc2V0V2luZG93UmVjdCh3aW5k
b3cxLCBkaXYxLmdldENsaWVudFJlY3RzKClbMF0sIHdpbmRvdyk7CisgICAgICAgIHNldFdpbmRv
d1JlY3Qod2luZG93MiwgZGl2Mi5nZXRDbGllbnRSZWN0cygpWzBdLCB3aW5kb3cpOworICAgIH0K
KworICAgIHN0YXJ0ID0gRGF0ZS5ub3coKTsKKyAgICBzaWduID0gMTsKKworICAgIGZ1bmN0aW9u
IHN0ZXAodGltZXN0YW1wKSB7CisgICAgICAgIHZhciBwcm9ncmVzcyA9IHRpbWVzdGFtcCAtIHN0
YXJ0OworICAgICAgICB2YXIgYmVmb3JlID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CisgICAg
ICAgIHdpbmRvdy5zY3JvbGxCeSgwLCAxMCAqIHNpZ24pOworICAgICAgICBpZiAoYmVmb3JlID09
IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKSB7CisgICAgICAgICAgICBzaWduID0gc2lnbiAqIC0x
OworICAgICAgICB9CisKKyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHN0ZXApOworICAg
IH0KKyAgICBzY3JvbGxUbygwLCAwKTsKKyAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc3RlcCk7
Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgPGRpdiBzdHls
ZT0iaGVpZ2h0OiAxMDAwcHgiPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29s
b3I6IHJlZDsgd2lkdGg6IDQwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9kaXY+CisgICAgPGJyPgor
ICAgIDxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7IHdpZHRoOiAyMDBweDsgaGVp
Z2h0OiAyMDBweDsgZmxvYXQ6IHJpZ2h0Ij48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6
IDEwMDBweCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="188639"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>