<?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>112483</bug_id>
          
          <creation_ts>2013-03-15 17:30:16 -0700</creation_ts>
          <short_desc>[chromium] Remove the WebVideoFrame, WebVideoFrameProvider, WebStreamTextureClient, and WebVideoLayer classes.</short_desc>
          <delta_ts>2013-04-08 16:58:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>112971</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>abarth</cc>
    
    <cc>backer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kbr</cc>
    
    <cc>peter+ews</cc>
    
    <cc>piman</cc>
    
    <cc>qinmin</cc>
    
    <cc>schenney</cc>
    
    <cc>scherkus</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>856429</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-15 17:30:16 -0700</bug_when>
    <thetext>[wip] [chromium] Remove the WebVideoFrame, WebVideoFrameProvider, and WebVideoLayer classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856430</commentid>
    <comment_count>1</comment_count>
      <attachid>193405</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-15 17:30:38 -0700</bug_when>
    <thetext>Created attachment 193405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856431</commentid>
    <comment_count>2</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-15 17:31:43 -0700</bug_when>
    <thetext>This isn&apos;t for landing. This will have to land in pieces. But I&apos;d like to do review on the final appearance before I split it up, to make sure I&apos;m on the right page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856437</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 17:43:07 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856438</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 17:43:21 -0700</bug_when>
    <thetext>Attachment 193405 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platform/Platform.gypi&apos;, u&apos;Source/Platform/chromium/public/WebCompositorSupport.h&apos;, u&apos;Source/Platform/chromium/public/WebLayer.h&apos;, u&apos;Source/Platform/chromium/public/WebVideoFrame.h&apos;, u&apos;Source/Platform/chromium/public/WebVideoFrameProvider.h&apos;, u&apos;Source/Platform/chromium/public/WebVideoLayer.h&apos;, u&apos;Source/WebKit/chromium/ChangeLog&apos;, u&apos;Source/WebKit/chromium/WebKit.gypi&apos;, u&apos;Source/WebKit/chromium/public/WebMediaPlayer.h&apos;, u&apos;Source/WebKit/chromium/public/WebStreamTextureClient.h&apos;, u&apos;Source/WebKit/chromium/public/WebVideoFrame.h&apos;, u&apos;Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp&apos;, u&apos;Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h&apos;, u&apos;Source/WebKit/chromium/tests/WebMediaPlayerClientImplTest.cpp&apos;]&quot; exit_code: 1
Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h:55:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856441</commentid>
    <comment_count>5</comment_count>
      <attachid>193405</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 17:45:51 -0700</bug_when>
    <thetext>Comment on attachment 193405
Patch

Attachment 193405 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17200298</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856444</commentid>
    <comment_count>6</comment_count>
      <attachid>193405</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 17:49:59 -0700</bug_when>
    <thetext>Comment on attachment 193405
Patch

Attachment 193405 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17189580</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856446</commentid>
    <comment_count>7</comment_count>
      <attachid>193405</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-15 17:55:43 -0700</bug_when>
    <thetext>Comment on attachment 193405
Patch

Attachment 193405 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17234034</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856789</commentid>
    <comment_count>8</comment_count>
      <attachid>193405</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-17 18:51:23 -0700</bug_when>
    <thetext>Comment on attachment 193405
Patch

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

&gt; Source/Platform/chromium/public/WebLayer.h:206
&gt; +    // True if the layer is not attached to a LayerTreeHost.

There&apos;s no LayerTreeHost in the WebKit API and there&apos;s no real notion of &apos;attached&apos;.  There is a WebLayerTreeView which has a WebLayer that&apos;s set as the root layer, so I think you could define this function in terms of that

&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:100
&gt; -#if USE(ACCELERATED_COMPOSITING)
&gt; -    if (m_videoFrameProviderClient)
&gt; -        m_videoFrameProviderClient-&gt;stopUsingProvider();
&gt;      // No need for a lock here, as getCurrentFrame/putCurrentFrame can&apos;t be
&gt;      // called now that the client is no longer using this provider. Also, load()
&gt;      // and this destructor are called from the same thread.
&gt;      if (m_webMediaPlayer)
&gt;          m_webMediaPlayer-&gt;setStreamTextureClient(0);

How does the teardown path work in this new world?  We&apos;ve had a lot of deadlocks/crashes around this logic in the past.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857397</commentid>
    <comment_count>9</comment_count>
      <attachid>193625</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-18 12:09:42 -0700</bug_when>
    <thetext>Created attachment 193625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857399</commentid>
    <comment_count>10</comment_count>
      <attachid>193405</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-18 12:11:13 -0700</bug_when>
    <thetext>Comment on attachment 193405
Patch

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

&gt;&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:100
&gt;&gt;          m_webMediaPlayer-&gt;setStreamTextureClient(0);
&gt; 
&gt; How does the teardown path work in this new world?  We&apos;ve had a lot of deadlocks/crashes around this logic in the past.

Thanks for this great question. I went through before/after of the teardown paths, and found some problems and missing mutexes and have cleaned this up. Here&apos;s the state of the world with patchset #2 (also updated the chromium side patch).

BEFORE - If the video layer is destroyed:

~VideoLayerImpl()
=&gt; VideoFPClientImpl::Stop()
  =&gt; WebMediaPlayerClientImpl::setVideoFrameProviderClient(NULL)
    locks access to ~WebMediaPlayerImpl, setVFPClient, getCurrentFrame, putCurrentFrame.
    =&gt; VideoFPClientImpl::StopUsingProvider()
      sets provider_ = NULL; with provider_ lock.
    sets m_videoFrameProviderClient = NULL
  =&gt; WebMediaPlayerImpl::setStreamTextureClient(NULL)

AFTER - If the video layer is destroyed:

~VideoLayerImpl()
=&gt; VideoFPClientImpl::Stop()
  =&gt; WebMediaPlayerImpl::SetVideoFrameProviderClient(NULL)
    locks access to ~WebMediaPlayerImpl, SetVideoFrameProviderClient
    =&gt; VideoFPClientImpl::StopUsingProvider()
    sets provider_ = NULL; with provider_lock.
  sets video_frame_provider_client_ = NULL
  =&gt; WebMediaPlayerImpl::setStreamTextureClient(NULL)

Then, when WebMediaPlayImpl later shuts down, it has no pointer to the video layer. And the layer has no pointer to the media player.

=================

BEFORE - If the WebMediaPlayerClientImpl is destroyed:

~WebMediaPlayerClientImpl()
=&gt;VideoFPClientImpl::StopUsingProvider()
  sets provider_ = NULL; with provider_ lock.
=&gt;WebMediaPlayImpl::SetStreamTextuerClient(NULL)
=&gt;~WebMediaPlayerImpl()

AFTER - If the WebMediaPlayerClientImpl is destroyed, then

~WebMediaPlayerClientImpl()
=&gt;~WebMediaPlayerImpl()
  =&gt;SetVideoFrameProviderClient(NULL)
    locks access to ~WebMediaPlayerImpl, SetVideoFrameProviderClient
    =&gt; VideoFPClientImpl::StopUsingProvider()
    sets provider_ = NULL; with provider_lock.
  =&gt; WebMediaPlayerImpl::setStreamTextureClient(NULL)

========================

BEFORE - If the WebMediaPlayerClientImpl::loadRequested() destoys the media player.

WebMediaPlayerClientImpl::loadRequested()
  locks access to setVideoFrameProviderClient, getCurrentFrame, putCurrentFrame
  =&gt;~WebMediaPlayerImpl()
  =&gt;replace WebMediaPlayerImpl*

no need to replace VFProvider pointer.

AFTER - If the WebMediaPlayerClientImpl::loadRequested() destoys the media player.

WebMediaPlayerClientImpl::loadRequested()
=&gt;~WebMediaPlayerImpl()
  =&gt;SetVideoFrameProviderClient(NULL)
    locks access to ~WebMediaPlayerImpl, SetVideoFrameProviderClient
    =&gt; VideoFPClientImpl::StopUsingProvider()
    sets provider_ = NULL; with provider_lock.
  =&gt; WebMediaPlayerImpl::setStreamTextureClient(NULL)
&gt;&gt;&gt;&gt;&gt;The video layer needs to be recreated with the new provider&lt;&lt;&lt;&lt;&lt;
=&gt;unRegister the video layer and destroy it.
=&gt;replace WebMediaPlayerImpl*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857400</commentid>
    <comment_count>11</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-18 12:12:16 -0700</bug_when>
    <thetext>I&apos;d like to verify the WedMediaPlayerClientImpl::loadRequested() path that recreates a new WebMediaPlayer works correctly, but I&apos;m not exactly sure how to invoke it. Any test cases would be appreciated. @scherkus?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857421</commentid>
    <comment_count>12</comment_count>
      <attachid>193625</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-18 12:31:21 -0700</bug_when>
    <thetext>Comment on attachment 193625
Patch

Attachment 193625 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17235073</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857424</commentid>
    <comment_count>13</comment_count>
      <attachid>193625</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-18 12:35:59 -0700</bug_when>
    <thetext>Comment on attachment 193625
Patch

Attachment 193625 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17114990</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857444</commentid>
    <comment_count>14</comment_count>
      <attachid>193625</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-18 12:53:32 -0700</bug_when>
    <thetext>Comment on attachment 193625
Patch

Attachment 193625 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17172328</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857445</commentid>
    <comment_count>15</comment_count>
      <attachid>193633</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-18 12:54:38 -0700</bug_when>
    <thetext>Created attachment 193633
Patch

isOrphan =&gt; True if the layer is not part of a tree attached to a WebLayerTreeView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857461</commentid>
    <comment_count>16</comment_count>
      <attachid>193633</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-18 13:15:50 -0700</bug_when>
    <thetext>Comment on attachment 193633
Patch

Attachment 193633 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17116669</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857474</commentid>
    <comment_count>17</comment_count>
      <attachid>193633</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-18 13:28:20 -0700</bug_when>
    <thetext>Comment on attachment 193633
Patch

Attachment 193633 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17184358</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857502</commentid>
    <comment_count>18</comment_count>
      <attachid>193633</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-18 13:51:49 -0700</bug_when>
    <thetext>Comment on attachment 193633
Patch

Attachment 193633 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17130616</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857574</commentid>
    <comment_count>19</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2013-03-18 14:43:35 -0700</bug_when>
    <thetext>I&apos;m not a WK pro by any means, but this combined with the Chromium CL looks good (in other words, I can&apos;t spot anything horribly wrong)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857784</commentid>
    <comment_count>20</comment_count>
      <attachid>193701</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-18 17:29:03 -0700</bug_when>
    <thetext>Created attachment 193701
Patch

Remove WebStreamTextureClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857805</commentid>
    <comment_count>21</comment_count>
      <attachid>193701</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-18 17:45:43 -0700</bug_when>
    <thetext>Comment on attachment 193701
Patch

Attachment 193701 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17197481</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857812</commentid>
    <comment_count>22</comment_count>
      <attachid>193701</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-18 17:47:50 -0700</bug_when>
    <thetext>Comment on attachment 193701
Patch

Attachment 193701 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17231194</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857817</commentid>
    <comment_count>23</comment_count>
      <attachid>193701</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-18 17:51:52 -0700</bug_when>
    <thetext>Comment on attachment 193701
Patch

Attachment 193701 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17197480</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857863</commentid>
    <comment_count>24</comment_count>
    <who name="Min Qin">qinmin</who>
    <bug_when>2013-03-18 19:45:42 -0700</bug_when>
    <thetext>if webStreamTextureClient is removed, we need a replacement strategy for streamTextureProxy to communicate with videolayerimpl when a video frame arrives.

(In reply to comment #20)
&gt; Created an attachment (id=193701) [details]
&gt; Patch
&gt; 
&gt; Remove WebStreamTextureClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857866</commentid>
    <comment_count>25</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-18 19:54:56 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; if webStreamTextureClient is removed, we need a replacement strategy for streamTextureProxy to communicate with videolayerimpl when a video frame arrives.

Please take a look at https://codereview.chromium.org/12902002/. I have StreamTextureProxy going directly to cc::VideoFrameProvider::Client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857890</commentid>
    <comment_count>26</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-18 20:48:35 -0700</bug_when>
    <thetext>here&apos;s an updated look at where we&apos;re at now that I have a better grasp of what&apos;s going on with stream texture and locking and whatnot:

BEFORE - If the video layer is destroyed:

~VideoLayerImpl()
=&gt; VideoFPClientImpl::Stop()
  =&gt; WebMediaPlayerClientImpl::setVideoFrameProviderClient(NULL)
    locks m_videoFrameProviderClient
    =&gt; VideoFPClientImpl::StopUsingProvider()
      sets provider_ = NULL
    sets m_videoFrameProviderClient = NULL

AFTER - If the video layer is destroyed:

~VideoLayerImpl()
=&gt; VideoFPClientImpl::Stop()
  =&gt; WebMediaPlayerImpl::SetVideoFrameProviderClient(NULL)
    locks video_frame_provider_client_
    =&gt; VideoFPClientImpl::StopUsingProvider()
    sets provider_ = NULL
  sets video_frame_provider_client_ = NULL

Then, when WebMediaPlayImpl later shuts down, it has no pointer to the video layer. And the layer has no pointer to the media player.

After the video layer is destroyed the compositor will not use the VFProvider that was attached to the layer anymore, so we don&apos;t need to worry about GetCurrentFrame() being called on the WMPImpl anymore.

The VideoLayerImpl ensures the main thread is blocked if it sets the VFPClient to NULL, so the lock in SetVideoFrameProviderClient is only there to ensure the value changed on the compositor thread is updated correctly on the main thread - not for blocking the main thread.

=================

BEFORE - If the WebMediaPlayerClientImpl is destroyed:

~WebMediaPlayerClientImpl()
=&gt;VideoFPClientImpl::StopUsingProvider()
  sets provider_ = NULL
=&gt;~WebMediaPlayerImpl()

AFTER - If the WebMediaPlayerClientImpl is destroyed, then

~WebMediaPlayerClientImpl()
=&gt;~WebMediaPlayerImpl()
  =&gt;SetVideoFrameProviderClient(NULL)
    locks video_frame_provider_client_
    =&gt; VideoFPClientImpl::StopUsingProvider()
    sets provider_ = NULL

This is as safe as before. Previously, access to the m_videoFrameProviderClient was not guarded by the m_webMediaPlayerMutex, which could cause a crash. But this was safe-guarded by compositor only setting the VideoFrameProviderClient to NULL when the main thread was blocked.

The video layer impl&apos;s connection to its VFProvider is broken still.

The VideoLayerImpl ensures the main thread is blocked if it sets the VFPClient to NULL, so the lock in SetVideoFrameProviderClient is only there to ensure the value changed on the main thread is updated correctly on the compositor thread - not for blocking the compositor thread.

========================

BEFORE - If the WebMediaPlayerClientImpl::loadRequested() destroys the media player.

WebMediaPlayerClientImpl::loadRequested()
  locks access to m_webMediaPlayer
  =&gt;~WebMediaPlayerImpl()
  =&gt;replace WebMediaPlayerImpl*

No need to replace VFProviderClient pointer since it points to the WMPClientImpl. Ensures that getCurrentFrame() does not happen while the WMPImpl is destroyed with the m_webMediaPlayerMutex.

AFTER - If the WebMediaPlayerClientImpl::loadRequested() destroys the media player.

WebMediaPlayerClientImpl::loadRequested()
=&gt;~WebMediaPlayerImpl()
  =&gt;SetVideoFrameProviderClient(NULL)
    locks video_frame_provider_client_
    =&gt; VideoFPClientImpl::StopUsingProvider()
    sets provider_ = NULL
&gt;&gt;&gt;&gt;&gt;The video layer needs to be recreated with the new provider&lt;&lt;&lt;&lt;&lt;
=&gt;unRegister the video layer and destroy it.
=&gt;replace WebMediaPlayerImpl*
&gt;&gt;&gt;&gt;&gt;Later, the video layer will be recreated and pointed at the WMPImpl as its VFProviderClient&lt;&lt;&lt;&lt;&lt;

The video layer impl&apos;s connection to its VFProvider (the WMPImpl) is broken before destroying the WMPImpl. If the compositor tries to GetCurrentFrame() afterward it will fail in VFPClientImpl. On the next commit the VideoLayerImpl will be destroyed.

Later, when the ready state changes, a new video layer is added to the compositing tree and pointed at the new WMPImpl which was created here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858859</commentid>
    <comment_count>27</comment_count>
      <attachid>193701</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-19 16:28:29 -0700</bug_when>
    <thetext>Comment on attachment 193701
Patch

I really like the direction this is going on. One small change I&apos;d like to see as we discussed on IRC is moving the ownership of the WebLayer exclusively to the WebMediaPlayer and exposing only a non-owning pointer to WebMediaPlayerClientImpl.  It looks like the way that would be most consistent with how plugins work would be to add

  virtual void setWebLayer(WebLayer*)

to WebMediaPlayerClient and in the implementation figure out whether that means to register/unregister the layer and then store a (raw, weak) pointer in a member on WebMediaPlayerClientImpl.

(r- for now to get out of the queue, but otherwise this looks super nice)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859814</commentid>
    <comment_count>28</comment_count>
      <attachid>194137</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-20 15:42:24 -0700</bug_when>
    <thetext>Created attachment 194137
Patch

moved ownership</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859830</commentid>
    <comment_count>29</comment_count>
      <attachid>194137</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 15:55:17 -0700</bug_when>
    <thetext>Comment on attachment 194137
Patch

Attachment 194137 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17246139</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859840</commentid>
    <comment_count>30</comment_count>
      <attachid>194137</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-20 16:08:21 -0700</bug_when>
    <thetext>Comment on attachment 194137
Patch

Attachment 194137 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17224207</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859877</commentid>
    <comment_count>31</comment_count>
      <attachid>194137</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 17:14:54 -0700</bug_when>
    <thetext>Comment on attachment 194137
Patch

Attachment 194137 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17145760</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859909</commentid>
    <comment_count>32</comment_count>
      <attachid>194137</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-20 18:11:07 -0700</bug_when>
    <thetext>Comment on attachment 194137
Patch

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

This looks great.  How do we stage this for landing?

&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:283
&gt; +void WebMediaPlayerClientImpl::setWebLayer(WebLayer* layer)

I think you need to kick a synthetic style recalc too so the video layer gets added to the compositing tree.  See WebPluginContainerImpl::setWebLayer().  is this happening somewhere else currently?

&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:289
&gt; +        m_videoLayer-&gt;setOpaque(m_opaque);

I think this would be better set on the chromium side of the world - in fact m_opaque doesn&apos;t need to exist in the WebKit side at all.  but you don&apos;t have to do that in the first patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859972</commentid>
    <comment_count>33</comment_count>
      <attachid>194137</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-20 20:22:32 -0700</bug_when>
    <thetext>Comment on attachment 194137
Patch

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

I&apos;m thinking that tomorrow morning I will basically put #ifndef NEW_MEDIA_OWNERSHIP around all the - lines in the chromium diff, and #ifdef NEW_MEDIA_OWNERSHIP around all the + lines in the chromium diff, and go for landing that first.

Then, once it&apos;s landed, stick a #define NEW_MEDIA_OWNERSHIP in WebMediaPlayer.h or something, and land this patch as is.

Finally, after a webkit roll, go back and remove all the #ifndefs, as well as the #ifdefs and all unused code inside them.

&gt;&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:283
&gt;&gt; +void WebMediaPlayerClientImpl::setWebLayer(WebLayer* layer)
&gt; 
&gt; I think you need to kick a synthetic style recalc too so the video layer gets added to the compositing tree.  See WebPluginContainerImpl::setWebLayer().  is this happening somewhere else currently?

I don&apos;t think anything has been doing that before, and I believe it&apos;s because we just don&apos;t make a webLayer if we&apos;re not going to use compositing (see supportsAcceleratedRendering()).

Going a step at a time I&apos;ve cleaned up the whole &quot;are we going to composite this?&quot; mess, now it looks like this:

WMPI asks WMPCI if needsWebLayer() which is true if we&apos;re using compositing.
WMPI only makes a WebLayer if ^ is true, and calls setWebLayer() with it.
WMPCI only reports supportsAcceleratedRendering() if it has a WebLayer.


Previously, WMPI would change supportsAcceleratedRendering()&apos;s value from true to false if the content has no video in it. Now it just doesn&apos;t make a weblayer, so you get the same result. There is a subtle change, but I tested things and they seem to be working - both with and without --disable-accelerated-video. The change is that before getting the video metadata, this function would have reported &quot;true&quot; before even though it did not know yet. Now it reports false. But this seems to do the right thing, as RLCompositor gets the right answer once we have a video layer.

&gt;&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:289
&gt;&gt; +        m_videoLayer-&gt;setOpaque(m_opaque);
&gt; 
&gt; I think this would be better set on the chromium side of the world - in fact m_opaque doesn&apos;t need to exist in the WebKit side at all.  but you don&apos;t have to do that in the first patch.

Agree. It should be easy after this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859973</commentid>
    <comment_count>34</comment_count>
      <attachid>194171</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-20 20:27:16 -0700</bug_when>
    <thetext>Created attachment 194171
Patch

Cleaned up decision to create weblayer with ownership of the layer in WMPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859997</commentid>
    <comment_count>35</comment_count>
      <attachid>194171</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-20 21:27:15 -0700</bug_when>
    <thetext>Comment on attachment 194171
Patch

Attachment 194171 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17290034</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860054</commentid>
    <comment_count>36</comment_count>
      <attachid>194171</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 23:12:19 -0700</bug_when>
    <thetext>Comment on attachment 194171
Patch

Attachment 194171 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17251106</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860142</commentid>
    <comment_count>37</comment_count>
      <attachid>194171</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-21 01:56:04 -0700</bug_when>
    <thetext>Comment on attachment 194171
Patch

Attachment 194171 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17255013</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860766</commentid>
    <comment_count>38</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-21 15:05:26 -0700</bug_when>
    <thetext>Review for landing moving to https://bugs.webkit.org/show_bug.cgi?id=112971. This CL will be a followup to remove the then-unneeded WebVideo* classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863215</commentid>
    <comment_count>39</comment_count>
      <attachid>194962</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-25 17:31:18 -0700</bug_when>
    <thetext>Created attachment 194962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863218</commentid>
    <comment_count>40</comment_count>
      <attachid>194963</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-25 17:32:13 -0700</bug_when>
    <thetext>Created attachment 194963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863219</commentid>
    <comment_count>41</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-25 17:32:52 -0700</bug_when>
    <thetext>Latest patch just removes code that won&apos;t be used once https://codereview.chromium.org/12902002/ lands/rolls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864136</commentid>
    <comment_count>42</comment_count>
      <attachid>195195</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-26 17:23:08 -0700</bug_when>
    <thetext>Created attachment 195195
Patch

Chromium side has rolled into webkit. Updating for EWS and review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864144</commentid>
    <comment_count>43</comment_count>
      <attachid>195195</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-26 17:32:47 -0700</bug_when>
    <thetext>Comment on attachment 195195
Patch

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

R+ for awesome, CQ- for doubled changelogs

&gt; Source/Platform/ChangeLog:18
&gt; +2013-03-21  Dana Jansens  &lt;danakj@chromium.org&gt;

double changelog all the way

&gt; Source/WebKit/chromium/ChangeLog:17
&gt; +2013-03-21  Dana Jansens  &lt;danakj@chromium.org&gt;

ditto here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864146</commentid>
    <comment_count>44</comment_count>
      <attachid>195199</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2013-03-26 17:36:58 -0700</bug_when>
    <thetext>Created attachment 195199
Patch

Single changelogs!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864170</commentid>
    <comment_count>45</comment_count>
      <attachid>195199</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-26 18:23:34 -0700</bug_when>
    <thetext>Comment on attachment 195199
Patch

Clearing flags on attachment: 195199

Committed r146957: &lt;http://trac.webkit.org/changeset/146957&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193405</attachid>
            <date>2013-03-15 17:30:38 -0700</date>
            <delta_ts>2013-03-18 12:11:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112483-20130315202632.patch</filename>
            <type>text/plain</type>
            <size>32283</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1ODMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA0MmZiMTYxMTMzNjg0
YTdkM2NkYTdkZTMxMTc3OTliNTJiMGQ2ZWRmLi4yNWNkYTE4ZDk0N2E5NGRmOGQ5NzE2YTg3MWM1
ZGQ3NGRjMjc1ZjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMy0xNSAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbd2lwXSBbY2hy
b21pdW1dIFJlbW92ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBh
bmQgV2ViVmlkZW9MYXllciBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS5neXBpOgorICAgICAgICAqIGNocm9taXVtL3B1
YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaDoKKyAgICAgICAgKFdlYkxheWVyKToKKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IGNocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9MYXllci5oOiBSZW1vdmVkLgorCiAyMDEzLTAz
LTEzICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtj
aHJvbWl1bV0gTWVkaWFTdHJlYW0gQVBJOiBDbGVhbmluZyBhd2F5IGRlcHJlY2F0ZWQgYW5kIHVu
dXNlZCBzdGF0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZGY0Zjc0N2E4YjgwM2Fm
MDUxMmZlNjU5ZWY0YjBjODVjNjRmODViZS4uYmEwNjYzYTg4NDE5M2RkNmY3ZTIzZGI2YzRkZDY1
MTVlN2Y0Yjc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAor
MjAxMy0wMy0xNSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbd2lwXSBbY2hyb21pdW1dIFJlbW92ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFt
ZVByb3ZpZGVyLCBhbmQgV2ViVmlkZW9MYXllciBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiBw
dWJsaWMvV2ViTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJN
ZWRpYVBsYXllcik6CisgICAgICAgICogcHVibGljL1dlYlN0cmVhbVRleHR1cmVDbGllbnQuaDoK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogcHVibGljL1dlYlZpZGVvRnJhbWUuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp+V2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpyZWFk
eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bDo6cmVwYWludCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6
c2V0T3BhcXVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpw
bGF0Zm9ybUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
OjpwYWludCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBs
YXllckNsaWVudEltcGw6OmFjY2VsZXJhdGVkUmVuZGVyaW5nSW5Vc2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICog
c3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCk6CisgICAgICAgICogdGVzdHMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsVGVzdC5jcHA6IFJlbW92ZWQuCisKIDIwMTMtMDMtMTQgIEphbWVzIFJv
Ymluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCB0
b29scy9wcm90b2Nfd3JhcHBlciB0byBkaXJlY3RvcmllcyBwdWxsZWQgaW4gQ2hyb21pdW0taW4t
V2ViS2l0IGNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9y
bS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKaW5kZXggNjBhYzFiODc1YzRj
NjllZWE3YTYyMjZiNzhhNzk2MjM1N2Q2N2UyOC4uZDU1N2JjY2Y4ZDk2YjU2MGNkMzc4NDM4YzA1
ZjdhYjNlNGFlMzBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkK
KysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKQEAgLTE0Niw5ICsxNDYsNiBAQAog
ICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmgnLAogICAgICAgICAg
ICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNwb25zZS5oJywKICAgICAgICAgICAgICdjaHJv
bWl1bS9wdWJsaWMvV2ViVmVjdG9yLmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWRlb0xheWVyLmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0Zy
YW1lLmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlk
ZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYldvcmtlclJ1bkxvb3AuaCcs
CiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViU2FuZGJveFN1cHBvcnQu
aCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViVGhlbWVFbmdpbmUu
aCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBv
c2l0b3JTdXBwb3J0LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBv
c2l0b3JTdXBwb3J0LmgKaW5kZXggZDZkNThiYjhhN2Y4OWU0YjMxOTc1MGJlMWYzMjc2OGQ3MjFj
NWZmZC4uNmI2MGE5ZTkxZmY0ZWI4ZDlmMDIzNzEzYTYyZmIyMTcxYTMwOWFhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5o
CisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBv
cnQuaApAQCAtNTAsOCArNTAsNiBAQCBjbGFzcyBXZWJTb2xpZENvbG9yTGF5ZXI7CiBjbGFzcyBX
ZWJUaHJlYWQ7CiBjbGFzcyBXZWJUcmFuc2Zvcm1BbmltYXRpb25DdXJ2ZTsKIGNsYXNzIFdlYlRy
YW5zZm9ybU9wZXJhdGlvbnM7Ci1jbGFzcyBXZWJWaWRlb0ZyYW1lUHJvdmlkZXI7Ci1jbGFzcyBX
ZWJWaWRlb0xheWVyOwogCiBjbGFzcyBXZWJDb21wb3NpdG9yU3VwcG9ydCB7CiBwdWJsaWM6CkBA
IC04Myw4ICs4MSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgV2ViU29saWRDb2xvckxheWVy
KiBjcmVhdGVTb2xpZENvbG9yTGF5ZXIoKSB7IHJldHVybiAwOyB9CiAKLSAgICB2aXJ0dWFsIFdl
YlZpZGVvTGF5ZXIqIGNyZWF0ZVZpZGVvTGF5ZXIoV2ViVmlkZW9GcmFtZVByb3ZpZGVyKikgeyBy
ZXR1cm4gMDsgfQotCiAgICAgdmlydHVhbCBXZWJTY3JvbGxiYXJMYXllciogY3JlYXRlU2Nyb2xs
YmFyTGF5ZXIoV2ViU2Nyb2xsYmFyKiwgV2ViU2Nyb2xsYmFyVGhlbWVQYWludGVyLCBXZWJTY3Jv
bGxiYXJUaGVtZUdlb21ldHJ5KikgeyByZXR1cm4gMDsgfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaCBiL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaAppbmRleCAwMTM0YzMwYzZkYjc2OTI4NWY5NmY2ODI2
YTZkMWEyODA5NGM1MWEyLi44YWJmZjYxOGU3NDE3YzcxZGI1NTk1MGRmMzI4NDdjOGZjY2I0Zjdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyLmgK
KysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllci5oCkBAIC0yMDIs
NiArMjAyLDkgQEAgcHVibGljOgogICAgIC8vIEZvcmNlcyB0aGlzIGxheWVyIHRvIHVzZSBhIHJl
bmRlciBzdXJmYWNlLiBUaGVyZSBpcyBubyBiZW5lZml0IGluIGRvaW5nCiAgICAgLy8gc28sIGJ1
dCB0aGlzIGlzIHRvIGZhY2lsaXRhdGUgYmVuY2htYXJrcyBhbmQgdGVzdHMuCiAgICAgdmlydHVh
bCB2b2lkIHNldEZvcmNlUmVuZGVyU3VyZmFjZShib29sKSA9IDA7CisKKyAgICAvLyBUcnVlIGlm
IHRoZSBsYXllciBpcyBub3QgYXR0YWNoZWQgdG8gYSBMYXllclRyZWVIb3N0LgorICAgIHZpcnR1
YWwgYm9vbCBpc09ycGhhbigpIGNvbnN0ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0Zy
YW1lLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNmM2U3Y2ViMDEzZmE3Y2ZmOGM2ZDc0N2Fi
ZTU2MzFlOGQ0ZDAzNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaAorKysg
L2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlZpZGVvRnJhbWVfaAotI2RlZmlu
ZSBXZWJWaWRlb0ZyYW1lX2gKLQotI2luY2x1ZGUgIldlYlJlY3QuaCIKLSNpbmNsdWRlICJXZWJT
aXplLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi0vLyBBIGJhc2UgY2xhc3MgZm9yIHRoZSBj
b250YWluZXIgd2hpY2ggaG9sZHMgYSBtZWRpYTo6VmlkZW9GcmFtZS4KLWNsYXNzIFdlYlZpZGVv
RnJhbWUgewotcHVibGljOgotICAgIHZpcnR1YWwgfldlYlZpZGVvRnJhbWUoKSB7IH0KLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZVByb3ZpZGVyLmggYi9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWVQcm92aWRlci5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyNDU1MmU4MDIwYzg0YWQ2ZTgzOWNmY2QwMDA1MTg1Zjc2ZTA4
ZWMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZVByb3ZpZGVyLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJWaWRlb0ZyYW1lUHJvdmlkZXJfaAot
I2RlZmluZSBXZWJWaWRlb0ZyYW1lUHJvdmlkZXJfaAotCi0jaW5jbHVkZSAiV2ViQ29tbW9uLmgi
Ci0jaW5jbHVkZSAiV2ViVmlkZW9GcmFtZS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8g
VGhyZWFkaW5nIG5vdGVzOiBUaGlzIGNsYXNzIG1heSBiZSB1c2VkIGluIGEgbXVsdGkgdGhyZWFk
ZWQgbWFubmVyLiBTcGVjaWZpY2FsbHksIHRoZSBpbXBsZW1lbnRhdGlvbgotLy8gbWF5IGNhbGwg
Z2V0Q3VycmVudEZyYW1lKCkgLyBwdXRDdXJyZW50RnJhbWUoKSBmcm9tIGEgbm9uLW1haW4gdGhy
ZWFkLiBJZiBzbywgdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZQotLy8gZm9yIG1ha2luZyBzdXJl
IENsaWVudDo6ZGlkUmVjZWl2ZUZyYW1lIGFuZCBDbGllbnQ6OmRpZFVwZGF0ZU1hdHJpeCBhcmUg
b25seSBjYWxsZWQgZnJvbSB0aGlzIHRocmVhZC4KLWNsYXNzIFdlYlZpZGVvRnJhbWVQcm92aWRl
ciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViVmlkZW9GcmFtZVByb3ZpZGVyKCkgeyB9Ci0K
LSAgICBjbGFzcyBDbGllbnQgewotICAgIHB1YmxpYzoKLSAgICAgICAgLy8gUHJvdmlkZXIgd2ls
bCBjYWxsIHRoaXMgbWV0aG9kIHRvIHRlbGwgdGhlIGNsaWVudCB0byBzdG9wIHVzaW5nIGl0Lgot
ICAgICAgICAvLyBzdG9wVXNpbmdQcm92aWRlcigpIG1heSBiZSBjYWxsZWQgZnJvbSBhbnkgdGhy
ZWFkLiBUaGUgY2xpZW50IHNob3VsZAotICAgICAgICAvLyBibG9jayB1bnRpbCBpdCBoYXMgcHV0
Q3VycmVudEZyYW1lIGFueSBvdXRzdGFuZGluZyBmcmFtZXMuCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBzdG9wVXNpbmdQcm92aWRlcigpID0gMDsKLQotICAgICAgICAvLyBOb3RpZmllcyB0aGUgcHJv
dmlkZXIncyBjbGllbnQgdGhhdCBhIGNhbGwgdG8gZ2V0Q3VycmVudEZyYW1lKCkgd2lsbCByZXR1
cm4gbmV3IGRhdGEuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRnJhbWUoKSA9IDA7
Ci0KLSAgICAgICAgLy8gTm90aWZpZXMgdGhlIHByb3ZpZGVyJ3MgY2xpZW50IG9mIGEgbmV3IFVW
IHRyYW5zZm9ybSBtYXRyaXggdG8gYmUgdXNlZCB3aGVuIGRyYXdpbmcgZnJhbWVzCi0gICAgICAg
IC8vIG9mIHR5cGUgV2ViVmlkZW9GcmFtZTo6Rm9ybWF0U3RyZWFtVGV4dHVyZS4KLSAgICAgICAg
dmlydHVhbCB2b2lkIGRpZFVwZGF0ZU1hdHJpeChjb25zdCBmbG9hdCopID0gMDsKLSAgICB9Owot
Ci0gICAgLy8gTWF5IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQsIGJ1dCB0aGVyZSBtdXN0IGJl
IHNvbWUgZXh0ZXJuYWwgZ3VhcmFudGVlCi0gICAgLy8gdGhhdCB0aGUgcHJvdmlkZXIgaXMgbm90
IGRlc3Ryb3llZCBiZWZvcmUgdGhpcyBjYWxsIHJldHVybnMuCi0gICAgdmlydHVhbCB2b2lkIHNl
dFZpZGVvRnJhbWVQcm92aWRlckNsaWVudChDbGllbnQqKSA9IDA7Ci0KLSAgICAvLyBUaGlzIGZ1
bmN0aW9uIHBsYWNlcyBhIGxvY2sgb24gdGhlIGN1cnJlbnQgZnJhbWUgYW5kIHJldHVybnMgYSBw
b2ludGVyIHRvIGl0LgotICAgIC8vIENhbGxzIHRvIHRoaXMgbWV0aG9kIHNob3VsZCBhbHdheXMg
YmUgZm9sbG93ZWQgd2l0aCBhIGNhbGwgdG8gcHV0Q3VycmVudEZyYW1lKCkuCi0gICAgLy8gVGhl
IG93bmVyc2hpcCBvZiB0aGUgb2JqZWN0IGlzIG5vdCB0cmFuc2ZlcnJlZCB0byB0aGUgY2FsbGVy
IGFuZAotICAgIC8vIHRoZSBjYWxsZXIgc2hvdWxkIG5vdCBmcmVlIHRoZSByZXR1cm5lZCBvYmpl
Y3QuIE9ubHkgdGhlIGN1cnJlbnQgcHJvdmlkZXIKLSAgICAvLyBjbGllbnQgc2hvdWxkIGNhbGwg
dGhpcyBmdW5jdGlvbi4KLSAgICB2aXJ0dWFsIFdlYlZpZGVvRnJhbWUqIGdldEN1cnJlbnRGcmFt
ZSgpID0gMDsKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIHRoZSBsb2NrIG9uIHRoZSB2
aWRlbyBmcmFtZSBpbiBjaHJvbWl1bS4gSXQgc2hvdWxkCi0gICAgLy8gYWx3YXlzIGJlIGNhbGxl
ZCBhZnRlciBnZXRDdXJyZW50RnJhbWUoKS4gRnJhbWVzIHBhc3NlZCBpbnRvIHRoaXMgbWV0aG9k
Ci0gICAgLy8gc2hvdWxkIG5vIGxvbmdlciBiZSByZWZlcmVuY2VkIGFmdGVyIHRoZSBjYWxsIGlz
IG1hZGUuIE9ubHkgdGhlIGN1cnJlbnQKLSAgICAvLyBwcm92aWRlciBjbGllbnQgc2hvdWxkIGNh
bGwgdGhpcyBmdW5jdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgcHV0Q3VycmVudEZyYW1lKFdlYlZp
ZGVvRnJhbWUqKSA9IDA7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvTGF5ZXIu
aCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9MYXllci5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjdkNjllMTBhMGRmYjk3OGM5MDAwNGVmZmU3Mjhj
YTE2NjlhM2I2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9MYXllci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViVmlkZW9MYXllcl9oCi0j
ZGVmaW5lIFdlYlZpZGVvTGF5ZXJfaAotCi0jaW5jbHVkZSAiV2ViQ29tbW9uLmgiCi0jaW5jbHVk
ZSAiV2ViTGF5ZXIuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlZpZGVvRnJh
bWVQcm92aWRlcjsKLQotY2xhc3MgV2ViVmlkZW9MYXllciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+V2ViVmlkZW9MYXllcigpIHsgfQotCi0gICAgdmlydHVhbCBXZWJMYXllciogbGF5ZXIoKSA9
IDA7Ci0KLSAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBsYXllciBpcyBhY3RpdmVseSByZW5k
ZXJpbmcgKGUuZy4gY3VycmVudGx5IGF0dGFjaGVkIHRvIGEgV2ViTGF5ZXJUcmVlVmlldykuCi0g
ICAgdmlydHVhbCBib29sIGFjdGl2ZSgpIGNvbnN0ID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYktpdAotCi0jZW5kaWYgLy8gV2ViVmlkZW9MYXllcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwaQppbmRleCA4OWM4MjU5M2ZjYWExMDgwMDFmM2YzYTY5NDVmZDNkMzlkZDBmMjkyLi42
ZTRhNGQ4NjAwNzViNTRlNGI1NDc2NzcwMWVkYWQ0OWNhY2IxNDYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cGkKQEAgLTExOCw3ICsxMTgsNiBAQAogICAgICAgICAgICAgJ3Rlc3RzL1dl
YkltYWdlVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYklucHV0RXZlbnRDb252ZXJz
aW9uVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYklucHV0RXZlbnRGYWN0b3J5VGVz
dE1hYy5tbScsCi0gICAgICAgICAgICAndGVzdHMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVz
dC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBhZ2VOZXdTZXJpYWxpemVyVGVzdC5jcHAn
LAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBhZ2VTZXJpYWxpemVyVGVzdC5jcHAnLAogICAgICAg
ICAgICAgJ3Rlc3RzL1dlYlBsdWdpbkNvbnRhaW5lclRlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCmluZGV4IGFkNTZjMWJjYmExYzMx
YWMyZTFiYzI3NTgwYWExZTY2NjM3YTZiOTAuLjQzODE2M2EyY2JjYjg1Y2FmOTdhZDg2MjRkNGI3
YmIzZjc4NTc4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
Yk1lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVk
aWFQbGF5ZXIuaApAQCAtMzMsMTMgKzMzLDEzIEBACiAKICNpbmNsdWRlICIuLi8uLi8uLi9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ2FudmFzLmgiCiAjaW5jbHVkZSAiLi4vLi4vLi4vUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlN0cmluZy5oIgotI2luY2x1ZGUgIi4uLy4uLy4uL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViVGlt
ZVJhbmdlLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyOwogY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudDsKK2NsYXNzIFdlYkxh
eWVyOwogY2xhc3MgV2ViTWVkaWFQbGF5ZXJDbGllbnQ7CiBjbGFzcyBXZWJNZWRpYVNvdXJjZTsK
IGNsYXNzIFdlYlN0cmVhbVRleHR1cmVDbGllbnQ7CkBAIC0xNTUsMTcgKzE1NSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGF1ZGlvRGVjb2RlZEJ5dGVDb3VudCgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHZpZGVvRGVjb2RlZEJ5dGVDb3VudCgpIGNvbnN0ID0g
MDsKIAotICAgIC8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIHBvaW50ZXIgdG8gYSBXZWJWaWRl
b0ZyYW1lLCB3aGljaCBpcwotICAgIC8vIGEgV2ViS2l0IHdyYXBwZXIgZm9yIGEgdmlkZW8gZnJh
bWUgaW4gY2hyb21pdW0uIFRoaXMgcGxhY2VzIGEgbG9jawotICAgIC8vIG9uIHRoZSBmcmFtZSBp
biBjaHJvbWl1bSwgYW5kIGNhbGxzIHRvIHRoaXMgbWV0aG9kIHNob3VsZCBhbHdheXMgYmUKLSAg
ICAvLyBmb2xsb3dlZCB3aXRoIGEgY2FsbCB0byBwdXRDdXJyZW50RnJhbWUoKS4gVGhlIG93bmVy
c2hpcCBvZiB0aGlzIG9iamVjdAotICAgIC8vIGlzIG5vdCB0cmFuc2ZlcnJlZCB0byB0aGUgY2Fs
bGVyLCBhbmQgdGhlIGNhbGxlciBzaG91bGQgbm90IGZyZWUgdGhlCi0gICAgLy8gcmV0dXJuZWQg
b2JqZWN0LgotICAgIHZpcnR1YWwgV2ViVmlkZW9GcmFtZSogZ2V0Q3VycmVudEZyYW1lKCkgeyBy
ZXR1cm4gMDsgfQotICAgIC8vIFRoaXMgZnVuY3Rpb24gcmVsZWFzZXMgdGhlIGxvY2sgb24gdGhl
IGN1cnJlbnQgdmlkZW8gZnJhbWUgaW4gQ2hyb21pdW0uCi0gICAgLy8gSXQgc2hvdWxkIGFsd2F5
cyBiZSBjYWxsZWQgYWZ0ZXIgZ2V0Q3VycmVudEZyYW1lKCkuIEZyYW1lIHBhc3NlZCB0byB0aGlz
Ci0gICAgLy8gbWV0aG9kIHNob3VsZCBubyBsb25nZXIgYmUgcmVmZXJlbmNlZCBhZnRlciB0aGUg
Y2FsbCBpcyBtYWRlLgotICAgIHZpcnR1YWwgdm9pZCBwdXRDdXJyZW50RnJhbWUoV2ViVmlkZW9G
cmFtZSopIHsgfQorICAgIHZpcnR1YWwgV2ViTGF5ZXIqIGNyZWF0ZUNvbXBvc2l0aW5nTGF5ZXIo
KSA9IDA7CiAKICAgICAvLyBEbyBhIEdQVS1HUFUgdGV4dHVyZXMgY29weSBpZiBwb3NzaWJsZS4K
ICAgICB2aXJ0dWFsIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkdy
YXBoaWNzQ29udGV4dDNEKiwgdW5zaWduZWQgdGV4dHVyZSwgdW5zaWduZWQgbGV2ZWwsIHVuc2ln
bmVkIGludGVybmFsRm9ybWF0LCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIHsg
cmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmgKaW5kZXggODEwMDJmYjI2YWQ3OTNkYTZkNmE0Njg4
NjBjMGYwYWRlZTczNGU2YS4uY2QwYWE2NTU2ZTYzOTAxNTRiZWFiMjRmNTFhMWQwODFhYWEyODEx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyZWFtVGV4
dHVyZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0cmVh
bVRleHR1cmVDbGllbnQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAorLy8gRklYTUU6IE1vdmUgdGhpcyBjbGFzcyB0byBjaHJvbWl1bS4KIGNsYXNzIFdlYlN0cmVh
bVRleHR1cmVDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRnJh
bWUoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1l
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0OGE3YTQ0NDBiZmQyNmJiZDQ1NTM5
OWMyMWY3MTU4MWRjNjYyOWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oCisr
KyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0g
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICIuLi8uLi8uLi9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKaW5k
ZXggYWFiNzRlMjJmOGU0ZmI2MDUyNjUxZDFmOTAwOGJkMGM3NzE3OTZkZC4uMTRhNzg0YzIyY2Rl
NDEwYzgwZDM3MThhZjg3MjY4MzNkNTU0NWZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCkBAIC0zOSw3ICsz
OSw2IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlNpemUuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2Vi
U3RyaW5nLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlVSTC5oPgotI2luY2x1ZGUgPHB1YmxpYy9X
ZWJWaWRlb0xheWVyLmg+CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW5j
bHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCkBAIC05NCwyMCArOTMsMTQgQEAgV2ViTWVk
aWFQbGF5ZXIqIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bWVkaWFQbGF5ZXIoKSBjb25zdAog
CiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6On5XZWJNZWRpYVBsYXllckNsaWVudEltcGwoKQog
ewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAobV92aWRlb0ZyYW1l
UHJvdmlkZXJDbGllbnQpCi0gICAgICAgIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50LT5zdG9w
VXNpbmdQcm92aWRlcigpOwogICAgIC8vIE5vIG5lZWQgZm9yIGEgbG9jayBoZXJlLCBhcyBnZXRD
dXJyZW50RnJhbWUvcHV0Q3VycmVudEZyYW1lIGNhbid0IGJlCiAgICAgLy8gY2FsbGVkIG5vdyB0
aGF0IHRoZSBjbGllbnQgaXMgbm8gbG9uZ2VyIHVzaW5nIHRoaXMgcHJvdmlkZXIuIEFsc28sIGxv
YWQoKQogICAgIC8vIGFuZCB0aGlzIGRlc3RydWN0b3IgYXJlIGNhbGxlZCBmcm9tIHRoZSBzYW1l
IHRocmVhZC4KICAgICBpZiAobV93ZWJNZWRpYVBsYXllcikKICAgICAgICAgbV93ZWJNZWRpYVBs
YXllci0+c2V0U3RyZWFtVGV4dHVyZUNsaWVudCgwKTsKLSNlbmRpZgogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX3ZpZGVvTGF5ZXIpCi0gICAgICAgIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6dW5yZWdpc3RlckNvbnRlbnRzTGF5ZXIobV92aWRlb0xheWVyLT5s
YXllcigpKTsKLSNlbmRpZgorICAgICAgICBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVucmVnaXN0
ZXJDb250ZW50c0xheWVyKG1fdmlkZW9MYXllci5nZXQoKSk7CiAKICAgICAvLyBFeHBsaWNpdGx5
IGRlc3Ryb3kgdGhlIFdlYk1lZGlhUGxheWVyIHRvIGFsbG93IHZlcmlmaWNhdGlvbiBvZiB0ZWFy
IGRvd24uCiAgICAgbV93ZWJNZWRpYVBsYXllci5jbGVhcigpOwpAQCAtMTMyLDEwICsxMjUsOSBA
QCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cmVhZHlTdGF0ZUNoYW5nZWQoKQogICAg
IG1fbWVkaWFQbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIGlmIChoYXNWaWRlbygpICYmIHN1cHBvcnRzQWNjZWxlcmF0ZWRS
ZW5kZXJpbmcoKSAmJiAhbV92aWRlb0xheWVyKSB7Ci0gICAgICAgIG1fdmlkZW9MYXllciA9IGFk
b3B0UHRyKFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZVZp
ZGVvTGF5ZXIodGhpcykpOwotCi0gICAgICAgIG1fdmlkZW9MYXllci0+bGF5ZXIoKS0+c2V0T3Bh
cXVlKG1fb3BhcXVlKTsKLSAgICAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjpyZWdpc3RlckNv
bnRlbnRzTGF5ZXIobV92aWRlb0xheWVyLT5sYXllcigpKTsKKyAgICAgICAgbV92aWRlb0xheWVy
ID0gYWRvcHRQdHIobV93ZWJNZWRpYVBsYXllci0+Y3JlYXRlQ29tcG9zaXRpbmdMYXllcigpKTsK
KyAgICAgICAgbV92aWRlb0xheWVyLT5zZXRPcGFxdWUobV9vcGFxdWUpOworICAgICAgICBHcmFw
aGljc0xheWVyQ2hyb21pdW06OnJlZ2lzdGVyQ29udGVudHNMYXllcihtX3ZpZGVvTGF5ZXIuZ2V0
KCkpOwogICAgIH0KICNlbmRpZgogfQpAQCAtMTYzLDcgKzE1NSw3IEBAIHZvaWQgV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsOjpyZXBhaW50KCkKICAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7CiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX3ZpZGVvTGF5ZXIgJiYg
c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpKQotICAgICAgICBtX3ZpZGVvTGF5ZXItPmxh
eWVyKCktPmludmFsaWRhdGUoKTsKKyAgICAgICAgbV92aWRlb0xheWVyLT5pbnZhbGlkYXRlKCk7
CiAjZW5kaWYKICAgICBtX21lZGlhUGxheWVyLT5yZXBhaW50KCk7CiB9CkBAIC0xOTEsNyArMTgz
LDcgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnNldE9wYXF1ZShib29sIG9wYXF1
ZSkKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbV9vcGFxdWUgPSBvcGFx
dWU7CiAgICAgaWYgKG1fdmlkZW9MYXllcikKLSAgICAgICAgbV92aWRlb0xheWVyLT5sYXllcigp
LT5zZXRPcGFxdWUobV9vcGFxdWUpOworICAgICAgICBtX3ZpZGVvTGF5ZXItPnNldE9wYXF1ZSht
X29wYXF1ZSk7CiAjZW5kaWYKIH0KIApAQCAtMzcyLDcgKzM2NCw3IEBAIHZvaWQgV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsOjpjYW5jZWxMb2FkKCkKIFdlYkxheWVyKiBXZWJNZWRpYVBsYXllckNs
aWVudEltcGw6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIEFTU0VSVChtX3N1cHBvcnRz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZyk7Ci0gICAgcmV0dXJuIG1fdmlkZW9MYXllciA/IG1fdmlk
ZW9MYXllci0+bGF5ZXIoKSA6IDA7CisgICAgcmV0dXJuIG1fdmlkZW9MYXllciA/IG1fdmlkZW9M
YXllci5nZXQoKSA6IDA7CiB9CiAjZW5kaWYKIApAQCAtNjEyLDEyICs2MDQsMTAgQEAgdm9pZCBX
ZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIAog
dm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgLy8gSWYgd2UgYXJlIHVzaW5nIEdQVSB0byByZW5kZXIgdmlkZW8sIGlnbm9y
ZSByZXF1ZXN0cyB0byBwYWludCBmcmFtZXMgaW50bwotICAgIC8vIGNhbnZhcyBiZWNhdXNlIGl0
IHdpbGwgYmUgdGFrZW4gY2FyZSBvZiBieSBXZWJWaWRlb0xheWVyLgorICAgIC8vIGNhbnZhcyBi
ZWNhdXNlIGl0IHdpbGwgYmUgdGFrZW4gY2FyZSBvZiBieSB0aGUgVmlkZW9MYXllci4KICAgICBp
ZiAoYWNjZWxlcmF0ZWRSZW5kZXJpbmdJblVzZSgpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYK
ICAgICBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKIH0KIApAQCAt
NzE5LDcgKzcwOSw2IEBAIEF1ZGlvU291cmNlUHJvdmlkZXIqIFdlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbDo6YXVkaW9Tb3VyY2VQcm92aWRlcigpCiB9CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKIGJvb2wgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0
c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zdXBwb3J0c0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmc7CkBAIC03MjcsNDQgKzcxNiw5IEBAIGJvb2wgV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKIAog
Ym9vbCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmFjY2VsZXJhdGVkUmVuZGVyaW5nSW5Vc2Uo
KQogewotICAgIHJldHVybiBtX3ZpZGVvTGF5ZXIgJiYgbV92aWRlb0xheWVyLT5hY3RpdmUoKTsK
KyAgICByZXR1cm4gbV92aWRlb0xheWVyICYmICFtX3ZpZGVvTGF5ZXItPmlzT3JwaGFuKCk7CiB9
CiAKLXZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzZXRWaWRlb0ZyYW1lUHJvdmlkZXJD
bGllbnQoV2ViVmlkZW9GcmFtZVByb3ZpZGVyOjpDbGllbnQqIGNsaWVudCkKLXsKLSAgICBNdXRl
eExvY2tlciBsb2NrZXIobV93ZWJNZWRpYVBsYXllck11dGV4KTsKLSAgICBpZiAobV92aWRlb0Zy
YW1lUHJvdmlkZXJDbGllbnQpCi0gICAgICAgIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50LT5z
dG9wVXNpbmdQcm92aWRlcigpOwotICAgIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50ID0gY2xp
ZW50OwotICAgIGlmIChtX3dlYk1lZGlhUGxheWVyKQotICAgICAgICBtX3dlYk1lZGlhUGxheWVy
LT5zZXRTdHJlYW1UZXh0dXJlQ2xpZW50KGNsaWVudCA/IHRoaXMgOiAwKTsKLX0KLQotV2ViVmlk
ZW9GcmFtZSogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpnZXRDdXJyZW50RnJhbWUoKQotewot
ICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9ubHkgYnkgdGhlIGNsaWVudC4KLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV93ZWJNZWRpYVBsYXllck11dGV4KTsKLSAgICBBU1NFUlQoIW1f
Y3VycmVudFZpZGVvRnJhbWUpOwotICAgIEFTU0VSVChtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVu
dCk7Ci0gICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpCi0gICAgICAgIG1fY3VycmVudFZpZGVvRnJh
bWUgPSBtX3dlYk1lZGlhUGxheWVyLT5nZXRDdXJyZW50RnJhbWUoKTsKLSAgICByZXR1cm4gbV9j
dXJyZW50VmlkZW9GcmFtZTsKLX0KLQotdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnB1
dEN1cnJlbnRGcmFtZShXZWJWaWRlb0ZyYW1lKiB2aWRlb0ZyYW1lKQotewotICAgIC8vIFRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkIG9ubHkgYnkgdGhlIGNsaWVudC4KLSAgICBNdXRleExvY2tlciBs
b2NrZXIobV93ZWJNZWRpYVBsYXllck11dGV4KTsKLSAgICBBU1NFUlQodmlkZW9GcmFtZSA9PSBt
X2N1cnJlbnRWaWRlb0ZyYW1lKTsKLSAgICBBU1NFUlQobV92aWRlb0ZyYW1lUHJvdmlkZXJDbGll
bnQpOwotICAgIGlmICghdmlkZW9GcmFtZSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChtX3dl
Yk1lZGlhUGxheWVyKQotICAgICAgICBtX3dlYk1lZGlhUGxheWVyLT5wdXRDdXJyZW50RnJhbWUo
dmlkZW9GcmFtZSk7Ci0gICAgbV9jdXJyZW50VmlkZW9GcmFtZSA9IDA7Ci19Ci0jZW5kaWYKLQog
UGFzc093blB0cjxNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiB7CiAgICAgT3duUHRyPFdlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbD4gY2xpZW50ID0gYWRvcHRQdHIobmV3IFdlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbCgpKTsKQEAgLTgyOSwyOCArNzgzLDEyIEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjpzdGFydERlbGF5ZWRMb2FkKCkKICAgICBsb2FkSW50ZXJuYWwoKTsKIH0KIAot
dm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmRpZFJlY2VpdmVGcmFtZSgpCi17Ci0gICAg
Ly8gTm8gbG9jayBzaW5jZSB0aGlzIGdldHMgY2FsbGVkIG9uIHRoZSBjbGllbnQncyB0aHJlYWQu
Ci0gICAgbV92aWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQtPmRpZFJlY2VpdmVGcmFtZSgpOwotfQot
Ci12b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6ZGlkVXBkYXRlTWF0cml4KGNvbnN0IGZs
b2F0KiBtYXRyaXgpCi17Ci0gICAgLy8gTm8gbG9jayBzaW5jZSB0aGlzIGdldHMgY2FsbGVkIG9u
IHRoZSBjbGllbnQncyB0aHJlYWQuCi0gICAgbV92aWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQtPmRp
ZFVwZGF0ZU1hdHJpeChtYXRyaXgpOwotfQotCiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Oldl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbCgpCiAgICAgOiBtX21lZGlhUGxheWVyKDApCi0gICAgLCBt
X2N1cnJlbnRWaWRlb0ZyYW1lKDApCiAgICAgLCBtX2RlbGF5aW5nTG9hZChmYWxzZSkKICAgICAs
IG1fcHJlbG9hZChNZWRpYVBsYXllcjo6TWV0YURhdGEpCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgICwgbV9zdXBwb3J0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoZmFsc2Up
CiAgICAgLCBtX29wYXF1ZShmYWxzZSkKLSAgICAsIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50
KDApCi0jZW5kaWYKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAppbmRleCA4MmQ4ZjI3ZTk5ZjEwMWZiYzRkYWFm
NjM1ODJlZjczYzUxZGI3OTgxLi41Mzk1OWJiYzFlZmZhNWFlZWM5MDNiOGNkZjUwOTg1YWZmMzI3
OGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXll
ckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBs
YXllckNsaWVudEltcGwuaApAQCAtMzcsOCArMzcsNiBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWVy
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJNZWRpYVBsYXllckNsaWVudC5oIgotI2luY2x1ZGUgIldlYlN0cmVhbVRleHR1
cmVDbGllbnQuaCIKLSNpbmNsdWRlIDxwdWJsaWMvV2ViVmlkZW9GcmFtZVByb3ZpZGVyLmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAg
LTQ5LDE2ICs0NywxMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkhlbHBlclBsdWdp
bkltcGw7CiBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyOwogY2xhc3MgV2ViTWVkaWFQbGF5
ZXI7Ci1jbGFzcyBXZWJWaWRlb0xheWVyOworY2xhc3MgV2ViTGF5ZXI7CiAKIC8vIFRoaXMgY2xh
c3Mgc2VydmVzIGFzIGEgYnJpZGdlIGJldHdlZW4gV2ViQ29yZTo6TWVkaWFQbGF5ZXIgYW5kCiAv
LyBXZWJLaXQ6OldlYk1lZGlhUGxheWVyLgogY2xhc3MgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
IDogcHVibGljIFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAs
IHB1YmxpYyBXZWJWaWRlb0ZyYW1lUHJvdmlkZXIKLSNlbmRpZgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICwgcHVibGljIFdlYk1lZGlhUGxheWVyQ2xpZW50Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgV2ViU3RyZWFtVGV4dHVyZUNsaWVudCB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgV2ViTWVkaWFQbGF5ZXJDbGllbnQg
ewogCiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNFbmFibGVkKCk7CkBAIC0xNTAsMjUgKzE0
NCwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVy
KiBhdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmlu
ZygpIGNvbnN0OwogCi0gICAgLy8gV2ViVmlkZW9GcmFtZVByb3ZpZGVyIG1ldGhvZHM6Ci0gICAg
dmlydHVhbCB2b2lkIHNldFZpZGVvRnJhbWVQcm92aWRlckNsaWVudChXZWJWaWRlb0ZyYW1lUHJv
dmlkZXI6OkNsaWVudCopOwotICAgIHZpcnR1YWwgV2ViVmlkZW9GcmFtZSogZ2V0Q3VycmVudEZy
YW1lKCk7Ci0gICAgdmlydHVhbCB2b2lkIHB1dEN1cnJlbnRGcmFtZShXZWJWaWRlb0ZyYW1lKik7
Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgdmlydHVhbCBXZWJD
b3JlOjpNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbml0RGF0YSwgdW5z
aWduZWQgaW5pdERhdGFMZW5ndGgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6TWVk
aWFQbGF5ZXI6Ok1lZGlhS2V5RXhjZXB0aW9uIGFkZEtleShjb25zdCBTdHJpbmcmIGtleVN5c3Rl
bSwgY29uc3QgdW5zaWduZWQgY2hhcioga2V5LCB1bnNpZ25lZCBrZXlMZW5ndGgsIGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGluaXREYXRhLCB1bnNpZ25lZCBpbml0RGF0YUxlbmd0aCwgY29uc3QgU3Ry
aW5nJiBzZXNzaW9uSWQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXI6Ok1lZGlhS2V5RXhjZXB0aW9uIGNhbmNlbEtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKSBPVkVSUklERTsKICNlbmRpZgogCi0gICAg
Ly8gV2ViU3RyZWFtVGV4dHVyZUNsaWVudCBtZXRob2RzOgotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRnJhbWUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTWF0cml4KGNvbnN0IGZs
b2F0Kik7Ci0KIHByb3RlY3RlZDoKICAgICBXZWJNZWRpYVBsYXllckNsaWVudEltcGwoKTsKIHBy
aXZhdGU6CkBAIC0xOTIsMTYgKzE3NSwxNCBAQCBwcml2YXRlOgogICAgIE11dGV4IG1fd2ViTWVk
aWFQbGF5ZXJNdXRleDsgLy8gR3VhcmRzIHRoZSBtX3dlYk1lZGlhUGxheWVyCiAgICAgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXIqIG1fbWVkaWFQbGF5ZXI7CiAgICAgT3duUHRyPFdlYk1lZGlhUGxheWVy
PiBtX3dlYk1lZGlhUGxheWVyOwotICAgIFdlYlZpZGVvRnJhbWUqIG1fY3VycmVudFZpZGVvRnJh
bWU7CiAgICAgV2ViQ29yZTo6S1VSTCBtX3VybDsKICAgICBib29sIG1fZGVsYXlpbmdMb2FkOwog
ICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsKICAgICBSZWZQdHI8
V2ViSGVscGVyUGx1Z2luSW1wbD4gbV9oZWxwZXJQbHVnaW47CiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotICAgIE93blB0cjxXZWJWaWRlb0xheWVyPiBtX3ZpZGVvTGF5ZXI7Cisg
ICAgT3duUHRyPFdlYkxheWVyPiBtX3ZpZGVvTGF5ZXI7CiAgICAgYm9vbCBtX3N1cHBvcnRzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZzsKICAgICBib29sIG1fb3BhcXVlOwotICAgIFdlYlZpZGVvRnJh
bWVQcm92aWRlcjo6Q2xpZW50KiBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudDsKICNlbmRpZgog
ICAgIHN0YXRpYyBib29sIG1faXNFbmFibGVkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbFRlc3QuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJNZWRpYVBsYXllckNsaWVudEltcGxUZXN0LmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZhMWE2ZTIyYWIyOTg4MzdjOWIyYzhlNWQ3
MWY1YTZlYzZlNmRiZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bFRlc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0g
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIldlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bC5oIgotCi0jaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1uYW1lc3BhY2UgewotCi1jbGFzcyBG
YWtlV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsIDogcHVibGljIFdlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RmFrZVdlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IEZha2VXZWJNZWRpYVBs
YXllckNsaWVudEltcGwoKSk7IH0KLQotcHJpdmF0ZToKLSAgICBGYWtlV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsKCkgeyB9Ci19OwotCi1jbGFzcyBGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50
IDogcHVibGljIFdlYlZpZGVvRnJhbWVQcm92aWRlcjo6Q2xpZW50IHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50PiBjcmVhdGUoV2Vi
VmlkZW9GcmFtZVByb3ZpZGVyKiBwcm92aWRlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgRmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudChwcm92aWRlcikpOwotICAgIH0K
LQotICAgIHZpcnR1YWwgfkZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoKQotICAgIHsKLSAg
ICAgICAgaWYgKG1fcHJvdmlkZXIpCi0gICAgICAgICAgICBtX3Byb3ZpZGVyLT5zZXRWaWRlb0Zy
YW1lUHJvdmlkZXJDbGllbnQoMCk7Ci0gICAgfQotCi0gICAgLy8gV2ViS2l0OjpXZWJWaWRlb0Zy
YW1lUHJvdmlkZXI6OkNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZUZyYW1lKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZU1hdHJpeChjb25z
dCBmbG9hdCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXNpbmdQcm92aWRlcigpCi0gICAg
ewotICAgICAgICBtX3Byb3ZpZGVyID0gMDsKLSAgICB9Ci0KLSAgICBXZWJWaWRlb0ZyYW1lUHJv
dmlkZXIqIHByb3ZpZGVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRlcjsgfQotCi1wcml2YXRl
OgotICAgIEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoV2ViVmlkZW9GcmFtZVByb3ZpZGVy
KiBwcm92aWRlcikKLSAgICAgICAgOiBtX3Byb3ZpZGVyKHByb3ZpZGVyKQotICAgIHsKLSAgICAg
ICAgbV9wcm92aWRlci0+c2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KHRoaXMpOwotICAgIH0K
LQotICAgIFdlYlZpZGVvRnJhbWVQcm92aWRlciogbV9wcm92aWRlcjsKLX07Ci0KLVRFU1QoV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdCwgSW5pdGlhbE51bGxWaWRlb0NsaWVudCkKLXsKLSAg
ICAvLyBObyBleHBsaWN0IGNoZWNrcyBpbiB0aGlzIHRlc3Q7IGp1c3QgbWFrZSBzdXJlIGl0IGRv
ZXNuJ3QgY3Jhc2guCi0gICAgT3duUHRyPFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbD4gcHJvdmlk
ZXIoRmFrZVdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y3JlYXRlKCkpOwotICAgIHByb3ZpZGVy
LT5zZXRWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoMCk7Ci19Ci0KLVRFU1QoV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsVGVzdCwgU2V0QW5kVW5zZXRWaWRlb0NsaWVudCkKLXsKLSAgICBPd25QdHI8
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsPiBwcm92aWRlcihGYWtlV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsOjpjcmVhdGUoKSk7Ci0gICAgT3duUHRyPEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGll
bnQ+IGNsaWVudChGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50OjpjcmVhdGUocHJvdmlkZXIu
Z2V0KCkpKTsKLQotICAgIEVYUEVDVF9FUShjbGllbnQtPnByb3ZpZGVyKCksIHByb3ZpZGVyLmdl
dCgpKTsKLQotICAgIHByb3ZpZGVyLT5zZXRWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoMCk7Ci0g
ICAgQVNTRVJUX0ZBTFNFKGNsaWVudC0+cHJvdmlkZXIoKSk7Ci19Ci0KLVRFU1QoV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsVGVzdCwgRGVzdHJveVByb3ZpZGVyKQotewotICAgIE93blB0cjxXZWJN
ZWRpYVBsYXllckNsaWVudEltcGw+IHByb3ZpZGVyKEZha2VXZWJNZWRpYVBsYXllckNsaWVudElt
cGw6OmNyZWF0ZSgpKTsKLSAgICBPd25QdHI8RmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudD4g
Y2xpZW50KEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ6OmNyZWF0ZShwcm92aWRlci5nZXQo
KSkpOwotCi0gICAgRVhQRUNUX0VRKGNsaWVudC0+cHJvdmlkZXIoKSwgcHJvdmlkZXIpOwotICAg
IHByb3ZpZGVyLmNsZWFyKCk7Ci0gICAgQVNTRVJUX0ZBTFNFKGNsaWVudC0+cHJvdmlkZXIoKSk7
Ci19Ci0KLVRFU1QoV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdCwgU2V0TXVsdGlwbGVWaWRl
b0NsaWVudHMpCi17Ci0gICAgT3duUHRyPFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbD4gcHJvdmlk
ZXIoRmFrZVdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y3JlYXRlKCkpOwotICAgIE93blB0cjxG
YWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50PiBmaXJzdENsaWVudChGYWtlVmlkZW9GcmFtZVBy
b3ZpZGVyQ2xpZW50OjpjcmVhdGUocHJvdmlkZXIuZ2V0KCkpKTsKLSAgICBFWFBFQ1RfRVEoZmly
c3RDbGllbnQtPnByb3ZpZGVyKCksIHByb3ZpZGVyKTsKLQotICAgIE93blB0cjxGYWtlVmlkZW9G
cmFtZVByb3ZpZGVyQ2xpZW50PiBzZWNvbmRDbGllbnQoRmFrZVZpZGVvRnJhbWVQcm92aWRlckNs
aWVudDo6Y3JlYXRlKHByb3ZpZGVyLmdldCgpKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGZpcnN0Q2xp
ZW50LT5wcm92aWRlcigpKTsKLSAgICBFWFBFQ1RfRVEoc2Vjb25kQ2xpZW50LT5wcm92aWRlcigp
LCBwcm92aWRlcik7Ci0KLSAgICBwcm92aWRlci5jbGVhcigpOwotICAgIEFTU0VSVF9GQUxTRShm
aXJzdENsaWVudC0+cHJvdmlkZXIoKSk7Ci0gICAgQVNTRVJUX0ZBTFNFKHNlY29uZENsaWVudC0+
cHJvdmlkZXIoKSk7Ci19Ci0KLX0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193625</attachid>
            <date>2013-03-18 12:09:42 -0700</date>
            <delta_ts>2013-03-18 12:54:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112483-20130318150533.patch</filename>
            <type>text/plain</type>
            <size>33695</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzMWRiMDc0NDAwOTdh
ZDNhZDQ1MmEyYTQ3ZjM3NzRkOGVhZGExNmYxLi5lMmNmMTVlNmJmYjVlOGQxOTU0YjhiNDczOWU2
OWY5NGYyYzFmZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMy0xNSAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbd2lwXSBbY2hy
b21pdW1dIFJlbW92ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBh
bmQgV2ViVmlkZW9MYXllciBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS5neXBpOgorICAgICAgICAqIGNocm9taXVtL3B1
YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaDoKKyAgICAgICAgKFdlYkxheWVyKToKKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IGNocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9MYXllci5oOiBSZW1vdmVkLgorCiAyMDEzLTAz
LTE3ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gUmVtb3ZlIHRoZSB6b29tIGZpbHRlciBvcGVyYXRpb24gaWZkZWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggOTUzY2I1OGM3Yjg5NjI5YTVjMDU0YWE3YjczNzI3MDg0ZjE1ZDY1
OS4uNzllNTlkM2E0OWFhNTI0ODg0ZjBhOWEwMzIxOTFmOGNiOTg3ZTdmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMy0wMy0xNSAgRGFuYSBKYW5zZW5z
ICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbd2lwXSBbY2hyb21pdW1dIFJlbW92
ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBhbmQgV2ViVmlkZW9M
YXllciBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiBwdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaDoK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJNZWRpYVBsYXllcik6CisgICAgICAgICog
cHVibGljL1dlYlN0cmVhbVRleHR1cmVDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogcHVibGljL1dlYlZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsOjp+V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpyZWFkeVN0YXRlQ2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cmVwYWludCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c2V0T3BhcXVlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF0Zm9ybUxheWVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwYWludCk6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmFjY2VsZXJh
dGVkUmVuZGVyaW5nSW5Vc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVu
dEltcGw6OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbCk6CisgICAgICAgICogdGVzdHMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdC5jcHA6
IFJlbW92ZWQuCisKIDIwMTMtMDMtMTggIFRhbyBCYWkgIDxtaWNoYWVsYmFpQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBBY2Nlc3Mgc2V0dGluZ3MuZGVmYXVsdFZpZGVvUG9zdGVyVVJMCmRpZmYg
LS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaSBiL1NvdXJjZS9QbGF0Zm9ybS9Q
bGF0Zm9ybS5neXBpCmluZGV4IDYwYWMxYjg3NWM0YzY5ZWVhN2E2MjI2Yjc4YTc5NjIzNTdkNjdl
MjguLmQ1NTdiY2NmOGQ5NmI1NjBjZDM3ODQzOGMwNWY3YWIzZTRhZTMwZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0
Zm9ybS5neXBpCkBAIC0xNDYsOSArMTQ2LDYgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJs
aWMvV2ViVVJMUmVxdWVzdC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVVJM
UmVzcG9uc2UuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlZlY3Rvci5oJywK
LSAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9MYXllci5oJywKLSAgICAgICAg
ICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oJywKLSAgICAgICAgICAgICdjaHJv
bWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZVByb3ZpZGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL3B1YmxpYy9XZWJXb3JrZXJSdW5Mb29wLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVt
L3B1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oIGIvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oCmluZGV4IGQ2ZDU4
YmI4YTdmODllNGIzMTk3NTBiZTFmMzI3NjhkNzIxYzVmZmQuLjZiNjBhOWU5MWZmNGViOGQ5ZjAy
MzcxM2E2MmZiMjE3MWEzMDlhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0LmgKQEAgLTUwLDggKzUwLDYgQEAgY2xh
c3MgV2ViU29saWRDb2xvckxheWVyOwogY2xhc3MgV2ViVGhyZWFkOwogY2xhc3MgV2ViVHJhbnNm
b3JtQW5pbWF0aW9uQ3VydmU7CiBjbGFzcyBXZWJUcmFuc2Zvcm1PcGVyYXRpb25zOwotY2xhc3Mg
V2ViVmlkZW9GcmFtZVByb3ZpZGVyOwotY2xhc3MgV2ViVmlkZW9MYXllcjsKIAogY2xhc3MgV2Vi
Q29tcG9zaXRvclN1cHBvcnQgewogcHVibGljOgpAQCAtODMsOCArODEsNiBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIFdlYlNvbGlkQ29sb3JMYXllciogY3JlYXRlU29saWRDb2xvckxheWVyKCkg
eyByZXR1cm4gMDsgfQogCi0gICAgdmlydHVhbCBXZWJWaWRlb0xheWVyKiBjcmVhdGVWaWRlb0xh
eWVyKFdlYlZpZGVvRnJhbWVQcm92aWRlciopIHsgcmV0dXJuIDA7IH0KLQogICAgIHZpcnR1YWwg
V2ViU2Nyb2xsYmFyTGF5ZXIqIGNyZWF0ZVNjcm9sbGJhckxheWVyKFdlYlNjcm9sbGJhciosIFdl
YlNjcm9sbGJhclRoZW1lUGFpbnRlciwgV2ViU2Nyb2xsYmFyVGhlbWVHZW9tZXRyeSopIHsgcmV0
dXJuIDA7IH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYkxheWVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyLmgK
aW5kZXggMDEzNGMzMGM2ZGI3NjkyODVmOTZmNjgyNmE2ZDFhMjgwOTRjNTFhMi4uOGFiZmY2MThl
NzQxN2M3MWRiNTU5NTBkZjMyODQ3YzhmY2NiNGY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllci5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViTGF5ZXIuaApAQCAtMjAyLDYgKzIwMiw5IEBAIHB1YmxpYzoKICAgICAv
LyBGb3JjZXMgdGhpcyBsYXllciB0byB1c2UgYSByZW5kZXIgc3VyZmFjZS4gVGhlcmUgaXMgbm8g
YmVuZWZpdCBpbiBkb2luZwogICAgIC8vIHNvLCBidXQgdGhpcyBpcyB0byBmYWNpbGl0YXRlIGJl
bmNobWFya3MgYW5kIHRlc3RzLgogICAgIHZpcnR1YWwgdm9pZCBzZXRGb3JjZVJlbmRlclN1cmZh
Y2UoYm9vbCkgPSAwOworCisgICAgLy8gVHJ1ZSBpZiB0aGUgbGF5ZXIgaXMgbm90IGF0dGFjaGVk
IHRvIGEgTGF5ZXJUcmVlSG9zdC4KKyAgICB2aXJ0dWFsIGJvb2wgaXNPcnBoYW4oKSBjb25zdCA9
IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIGIvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDBjZjNlN2NlYjAxM2ZhN2NmZjhjNmQ3NDdhYmU1NjMxZThkNGQwMzYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBXZWJWaWRlb0ZyYW1lX2gKLSNkZWZpbmUgV2ViVmlkZW9GcmFtZV9oCi0KLSNpbmNs
dWRlICJXZWJSZWN0LmgiCi0jaW5jbHVkZSAiV2ViU2l6ZS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotLy8gQSBiYXNlIGNsYXNzIGZvciB0aGUgY29udGFpbmVyIHdoaWNoIGhvbGRzIGEgbWVk
aWE6OlZpZGVvRnJhbWUuCi1jbGFzcyBXZWJWaWRlb0ZyYW1lIHsKLXB1YmxpYzoKLSAgICB2aXJ0
dWFsIH5XZWJWaWRlb0ZyYW1lKCkgeyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZp
ZGVvRnJhbWVQcm92aWRlci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJW
aWRlb0ZyYW1lUHJvdmlkZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ1NTJl
ODAyMGM4NGFkNmU4MzljZmNkMDAwNTE4NWY3NmUwOGVjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYlZpZGVvRnJhbWVQcm92aWRlci5oCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0g
KiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgV2ViVmlkZW9GcmFtZVByb3ZpZGVyX2gKLSNkZWZpbmUgV2ViVmlkZW9GcmFtZVByb3Zp
ZGVyX2gKLQotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgotI2luY2x1ZGUgIldlYlZpZGVvRnJhbWUu
aCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLS8vIFRocmVhZGluZyBub3RlczogVGhpcyBjbGFz
cyBtYXkgYmUgdXNlZCBpbiBhIG11bHRpIHRocmVhZGVkIG1hbm5lci4gU3BlY2lmaWNhbGx5LCB0
aGUgaW1wbGVtZW50YXRpb24KLS8vIG1heSBjYWxsIGdldEN1cnJlbnRGcmFtZSgpIC8gcHV0Q3Vy
cmVudEZyYW1lKCkgZnJvbSBhIG5vbi1tYWluIHRocmVhZC4gSWYgc28sIHRoZSBjYWxsZXIgaXMg
cmVzcG9uc2libGUKLS8vIGZvciBtYWtpbmcgc3VyZSBDbGllbnQ6OmRpZFJlY2VpdmVGcmFtZSBh
bmQgQ2xpZW50OjpkaWRVcGRhdGVNYXRyaXggYXJlIG9ubHkgY2FsbGVkIGZyb20gdGhpcyB0aHJl
YWQuCi1jbGFzcyBXZWJWaWRlb0ZyYW1lUHJvdmlkZXIgewotcHVibGljOgotICAgIHZpcnR1YWwg
fldlYlZpZGVvRnJhbWVQcm92aWRlcigpIHsgfQotCi0gICAgY2xhc3MgQ2xpZW50IHsKLSAgICBw
dWJsaWM6Ci0gICAgICAgIC8vIFByb3ZpZGVyIHdpbGwgY2FsbCB0aGlzIG1ldGhvZCB0byB0ZWxs
IHRoZSBjbGllbnQgdG8gc3RvcCB1c2luZyBpdC4KLSAgICAgICAgLy8gc3RvcFVzaW5nUHJvdmlk
ZXIoKSBtYXkgYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZC4gVGhlIGNsaWVudCBzaG91bGQKLSAg
ICAgICAgLy8gYmxvY2sgdW50aWwgaXQgaGFzIHB1dEN1cnJlbnRGcmFtZSBhbnkgb3V0c3RhbmRp
bmcgZnJhbWVzLgotICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcFVzaW5nUHJvdmlkZXIoKSA9IDA7
Ci0KLSAgICAgICAgLy8gTm90aWZpZXMgdGhlIHByb3ZpZGVyJ3MgY2xpZW50IHRoYXQgYSBjYWxs
IHRvIGdldEN1cnJlbnRGcmFtZSgpIHdpbGwgcmV0dXJuIG5ldyBkYXRhLgotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZUZyYW1lKCkgPSAwOwotCi0gICAgICAgIC8vIE5vdGlmaWVzIHRo
ZSBwcm92aWRlcidzIGNsaWVudCBvZiBhIG5ldyBVViB0cmFuc2Zvcm0gbWF0cml4IHRvIGJlIHVz
ZWQgd2hlbiBkcmF3aW5nIGZyYW1lcwotICAgICAgICAvLyBvZiB0eXBlIFdlYlZpZGVvRnJhbWU6
OkZvcm1hdFN0cmVhbVRleHR1cmUuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVNYXRy
aXgoY29uc3QgZmxvYXQqKSA9IDA7Ci0gICAgfTsKLQotICAgIC8vIE1heSBiZSBjYWxsZWQgZnJv
bSBhbnkgdGhyZWFkLCBidXQgdGhlcmUgbXVzdCBiZSBzb21lIGV4dGVybmFsIGd1YXJhbnRlZQot
ICAgIC8vIHRoYXQgdGhlIHByb3ZpZGVyIGlzIG5vdCBkZXN0cm95ZWQgYmVmb3JlIHRoaXMgY2Fs
bCByZXR1cm5zLgotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQo
Q2xpZW50KikgPSAwOwotCi0gICAgLy8gVGhpcyBmdW5jdGlvbiBwbGFjZXMgYSBsb2NrIG9uIHRo
ZSBjdXJyZW50IGZyYW1lIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byBpdC4KLSAgICAvLyBDYWxs
cyB0byB0aGlzIG1ldGhvZCBzaG91bGQgYWx3YXlzIGJlIGZvbGxvd2VkIHdpdGggYSBjYWxsIHRv
IHB1dEN1cnJlbnRGcmFtZSgpLgotICAgIC8vIFRoZSBvd25lcnNoaXAgb2YgdGhlIG9iamVjdCBp
cyBub3QgdHJhbnNmZXJyZWQgdG8gdGhlIGNhbGxlciBhbmQKLSAgICAvLyB0aGUgY2FsbGVyIHNo
b3VsZCBub3QgZnJlZSB0aGUgcmV0dXJuZWQgb2JqZWN0LiBPbmx5IHRoZSBjdXJyZW50IHByb3Zp
ZGVyCi0gICAgLy8gY2xpZW50IHNob3VsZCBjYWxsIHRoaXMgZnVuY3Rpb24uCi0gICAgdmlydHVh
bCBXZWJWaWRlb0ZyYW1lKiBnZXRDdXJyZW50RnJhbWUoKSA9IDA7Ci0gICAgLy8gVGhpcyBmdW5j
dGlvbiByZWxlYXNlcyB0aGUgbG9jayBvbiB0aGUgdmlkZW8gZnJhbWUgaW4gY2hyb21pdW0uIEl0
IHNob3VsZAotICAgIC8vIGFsd2F5cyBiZSBjYWxsZWQgYWZ0ZXIgZ2V0Q3VycmVudEZyYW1lKCku
IEZyYW1lcyBwYXNzZWQgaW50byB0aGlzIG1ldGhvZAotICAgIC8vIHNob3VsZCBubyBsb25nZXIg
YmUgcmVmZXJlbmNlZCBhZnRlciB0aGUgY2FsbCBpcyBtYWRlLiBPbmx5IHRoZSBjdXJyZW50Ci0g
ICAgLy8gcHJvdmlkZXIgY2xpZW50IHNob3VsZCBjYWxsIHRoaXMgZnVuY3Rpb24uCi0gICAgdmly
dHVhbCB2b2lkIHB1dEN1cnJlbnRGcmFtZShXZWJWaWRlb0ZyYW1lKikgPSAwOwotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0xheWVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYlZpZGVvTGF5ZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjI3ZDY5ZTEwYTBkZmI5NzhjOTAwMDRlZmZlNzI4Y2ExNjY5YTNiNi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYlZpZGVvTGF5ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAot
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIFdlYlZpZGVvTGF5ZXJfaAotI2RlZmluZSBXZWJWaWRlb0xheWVyX2gKLQot
I2luY2x1ZGUgIldlYkNvbW1vbi5oIgotI2luY2x1ZGUgIldlYkxheWVyLmgiCi0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1jbGFzcyBXZWJWaWRlb0ZyYW1lUHJvdmlkZXI7Ci0KLWNsYXNzIFdlYlZp
ZGVvTGF5ZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgfldlYlZpZGVvTGF5ZXIoKSB7IH0KLQot
ICAgIHZpcnR1YWwgV2ViTGF5ZXIqIGxheWVyKCkgPSAwOwotCi0gICAgLy8gUmV0dXJucyB0cnVl
IGlmIHRoaXMgbGF5ZXIgaXMgYWN0aXZlbHkgcmVuZGVyaW5nIChlLmcuIGN1cnJlbnRseSBhdHRh
Y2hlZCB0byBhIFdlYkxheWVyVHJlZVZpZXcpLgotICAgIHZpcnR1YWwgYm9vbCBhY3RpdmUoKSBj
b25zdCA9IDA7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYlZp
ZGVvTGF5ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
aSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggODljODI1OTNmY2Fh
MTA4MDAxZjNmM2E2OTQ1ZmQzZDM5ZGQwZjI5Mi4uNmU0YTRkODYwMDc1YjU0ZTRiNTQ3Njc3MDFl
ZGFkNDljYWNiMTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBAIC0xMTgsNyAr
MTE4LDYgQEAKICAgICAgICAgICAgICd0ZXN0cy9XZWJJbWFnZVRlc3QuY3BwJywKICAgICAgICAg
ICAgICd0ZXN0cy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvblRlc3QuY3BwJywKICAgICAgICAgICAg
ICd0ZXN0cy9XZWJJbnB1dEV2ZW50RmFjdG9yeVRlc3RNYWMubW0nLAotICAgICAgICAgICAgJ3Rl
c3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0
cy9XZWJQYWdlTmV3U2VyaWFsaXplclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJQ
YWdlU2VyaWFsaXplclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJQbHVnaW5Db250
YWluZXJUZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJNZWRpYVBsYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVk
aWFQbGF5ZXIuaAppbmRleCBhZDU2YzFiY2JhMWMzMWFjMmUxYmMyNzU4MGFhMWU2NjYzN2E2Yjkw
Li40MzgxNjNhMmNiY2I4NWNhZjk3YWQ4NjI0ZDRiN2JiM2Y3ODU3OGVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKQEAgLTMzLDEzICszMywx
MyBAQAogCiAjaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNh
bnZhcy5oIgogI2luY2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJT
dHJpbmcuaCIKLSNpbmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
VmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIldlYlRpbWVSYW5nZS5oIgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92aWRlcjsKIGNsYXNzIFdlYkF1ZGlvU291
cmNlUHJvdmlkZXJDbGllbnQ7CitjbGFzcyBXZWJMYXllcjsKIGNsYXNzIFdlYk1lZGlhUGxheWVy
Q2xpZW50OwogY2xhc3MgV2ViTWVkaWFTb3VyY2U7CiBjbGFzcyBXZWJTdHJlYW1UZXh0dXJlQ2xp
ZW50OwpAQCAtMTU1LDE3ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBh
dWRpb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB1bnNpZ25lZCB2
aWRlb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdCA9IDA7CiAKLSAgICAvLyBUaGlzIGZ1bmN0aW9u
IHJldHVybnMgYSBwb2ludGVyIHRvIGEgV2ViVmlkZW9GcmFtZSwgd2hpY2ggaXMKLSAgICAvLyBh
IFdlYktpdCB3cmFwcGVyIGZvciBhIHZpZGVvIGZyYW1lIGluIGNocm9taXVtLiBUaGlzIHBsYWNl
cyBhIGxvY2sKLSAgICAvLyBvbiB0aGUgZnJhbWUgaW4gY2hyb21pdW0sIGFuZCBjYWxscyB0byB0
aGlzIG1ldGhvZCBzaG91bGQgYWx3YXlzIGJlCi0gICAgLy8gZm9sbG93ZWQgd2l0aCBhIGNhbGwg
dG8gcHV0Q3VycmVudEZyYW1lKCkuIFRoZSBvd25lcnNoaXAgb2YgdGhpcyBvYmplY3QKLSAgICAv
LyBpcyBub3QgdHJhbnNmZXJyZWQgdG8gdGhlIGNhbGxlciwgYW5kIHRoZSBjYWxsZXIgc2hvdWxk
IG5vdCBmcmVlIHRoZQotICAgIC8vIHJldHVybmVkIG9iamVjdC4KLSAgICB2aXJ0dWFsIFdlYlZp
ZGVvRnJhbWUqIGdldEN1cnJlbnRGcmFtZSgpIHsgcmV0dXJuIDA7IH0KLSAgICAvLyBUaGlzIGZ1
bmN0aW9uIHJlbGVhc2VzIHRoZSBsb2NrIG9uIHRoZSBjdXJyZW50IHZpZGVvIGZyYW1lIGluIENo
cm9taXVtLgotICAgIC8vIEl0IHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIGFmdGVyIGdldEN1cnJl
bnRGcmFtZSgpLiBGcmFtZSBwYXNzZWQgdG8gdGhpcwotICAgIC8vIG1ldGhvZCBzaG91bGQgbm8g
bG9uZ2VyIGJlIHJlZmVyZW5jZWQgYWZ0ZXIgdGhlIGNhbGwgaXMgbWFkZS4KLSAgICB2aXJ0dWFs
IHZvaWQgcHV0Q3VycmVudEZyYW1lKFdlYlZpZGVvRnJhbWUqKSB7IH0KKyAgICB2aXJ0dWFsIFdl
YkxheWVyKiBjcmVhdGVDb21wb3NpdGluZ0xheWVyKCkgPSAwOwogCiAgICAgLy8gRG8gYSBHUFUt
R1BVIHRleHR1cmVzIGNvcHkgaWYgcG9zc2libGUuCiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRl
b1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJHcmFwaGljc0NvbnRleHQzRCosIHVuc2lnbmVk
IHRleHR1cmUsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCBpbnRlcm5hbEZvcm1hdCwgYm9vbCBw
cmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKSB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5o
CmluZGV4IDgxMDAyZmIyNmFkNzkzZGE2ZDZhNDY4ODYwYzBmMGFkZWU3MzRlNmEuLmNkMGFhNjU1
NmU2MzkwMTU0YmVhYjI0ZjUxYTFkMDgxYWFhMjgxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlN0cmVhbVRleHR1cmVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmgKQEAgLTMzLDYg
KzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKy8vIEZJWE1FOiBNb3ZlIHRoaXMgY2xh
c3MgdG8gY2hyb21pdW0uCiBjbGFzcyBXZWJTdHJlYW1UZXh0dXJlQ2xpZW50IHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUZyYW1lKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5NDhhN2E0NDQwYmZkMjZiYmQ0NTUzOTljMjFmNzE1ODFkYzY2MjllLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0g
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YlZpZGVvRnJhbWUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IGFhYjc0ZTIyZjhlNGZiNjA1MjY1MWQx
ZjkwMDhiZDBjNzcxNzk2ZGQuLmE1NWQyZTQzNzQ0YmExNTBjYzlhNzNlMWRjYmU1YzU1Y2I4NWFl
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsLmNwcApAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgPHB1YmxpYy9X
ZWJTaXplLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJVUkwuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViVmlkZW9MYXllci5oPgogCiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRv
ci5oIgpAQCAtOTQsMjAgKzkzLDcgQEAgV2ViTWVkaWFQbGF5ZXIqIFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6bWVkaWFQbGF5ZXIoKSBjb25zdAogCiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6
On5XZWJNZWRpYVBsYXllckNsaWVudEltcGwoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLSAgICBpZiAobV92aWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQpCi0gICAgICAgIG1f
dmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50LT5zdG9wVXNpbmdQcm92aWRlcigpOwotICAgIC8vIE5v
IG5lZWQgZm9yIGEgbG9jayBoZXJlLCBhcyBnZXRDdXJyZW50RnJhbWUvcHV0Q3VycmVudEZyYW1l
IGNhbid0IGJlCi0gICAgLy8gY2FsbGVkIG5vdyB0aGF0IHRoZSBjbGllbnQgaXMgbm8gbG9uZ2Vy
IHVzaW5nIHRoaXMgcHJvdmlkZXIuIEFsc28sIGxvYWQoKQotICAgIC8vIGFuZCB0aGlzIGRlc3Ry
dWN0b3IgYXJlIGNhbGxlZCBmcm9tIHRoZSBzYW1lIHRocmVhZC4KLSAgICBpZiAobV93ZWJNZWRp
YVBsYXllcikKLSAgICAgICAgbV93ZWJNZWRpYVBsYXllci0+c2V0U3RyZWFtVGV4dHVyZUNsaWVu
dCgwKTsKLSNlbmRpZgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlm
IChtX3ZpZGVvTGF5ZXIpCi0gICAgICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dW5yZWdpc3Rl
ckNvbnRlbnRzTGF5ZXIobV92aWRlb0xheWVyLT5sYXllcigpKTsKLSNlbmRpZgorICAgIGRlc3Ry
b3lWaWRlb0xheWVyKCk7CiAKICAgICAvLyBFeHBsaWNpdGx5IGRlc3Ryb3kgdGhlIFdlYk1lZGlh
UGxheWVyIHRvIGFsbG93IHZlcmlmaWNhdGlvbiBvZiB0ZWFyIGRvd24uCiAgICAgbV93ZWJNZWRp
YVBsYXllci5jbGVhcigpOwpAQCAtMTMyLDEwICsxMTgsOSBAQCB2b2lkIFdlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbDo6cmVhZHlTdGF0ZUNoYW5nZWQoKQogICAgIG1fbWVkaWFQbGF5ZXItPnJlYWR5
U3RhdGVDaGFuZ2VkKCk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlm
IChoYXNWaWRlbygpICYmIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiAhbV92aWRl
b0xheWVyKSB7Ci0gICAgICAgIG1fdmlkZW9MYXllciA9IGFkb3B0UHRyKFBsYXRmb3JtOjpjdXJy
ZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZVZpZGVvTGF5ZXIodGhpcykpOwotCi0g
ICAgICAgIG1fdmlkZW9MYXllci0+bGF5ZXIoKS0+c2V0T3BhcXVlKG1fb3BhcXVlKTsKLSAgICAg
ICAgR3JhcGhpY3NMYXllckNocm9taXVtOjpyZWdpc3RlckNvbnRlbnRzTGF5ZXIobV92aWRlb0xh
eWVyLT5sYXllcigpKTsKKyAgICAgICAgbV92aWRlb0xheWVyID0gYWRvcHRQdHIobV93ZWJNZWRp
YVBsYXllci0+Y3JlYXRlQ29tcG9zaXRpbmdMYXllcigpKTsKKyAgICAgICAgbV92aWRlb0xheWVy
LT5zZXRPcGFxdWUobV9vcGFxdWUpOworICAgICAgICBHcmFwaGljc0xheWVyQ2hyb21pdW06OnJl
Z2lzdGVyQ29udGVudHNMYXllcihtX3ZpZGVvTGF5ZXIuZ2V0KCkpOwogICAgIH0KICNlbmRpZgog
fQpAQCAtMTYzLDcgKzE0OCw3IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpyZXBh
aW50KCkKICAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmIChtX3ZpZGVvTGF5ZXIgJiYgc3VwcG9ydHNBY2NlbGVyYXRlZFJl
bmRlcmluZygpKQotICAgICAgICBtX3ZpZGVvTGF5ZXItPmxheWVyKCktPmludmFsaWRhdGUoKTsK
KyAgICAgICAgbV92aWRlb0xheWVyLT5pbnZhbGlkYXRlKCk7CiAjZW5kaWYKICAgICBtX21lZGlh
UGxheWVyLT5yZXBhaW50KCk7CiB9CkBAIC0xOTEsNyArMTc2LDcgQEAgdm9pZCBXZWJNZWRpYVBs
YXllckNsaWVudEltcGw6OnNldE9wYXF1ZShib29sIG9wYXF1ZSkKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgbV9vcGFxdWUgPSBvcGFxdWU7CiAgICAgaWYgKG1fdmlkZW9M
YXllcikKLSAgICAgICAgbV92aWRlb0xheWVyLT5sYXllcigpLT5zZXRPcGFxdWUobV9vcGFxdWUp
OworICAgICAgICBtX3ZpZGVvTGF5ZXItPnNldE9wYXF1ZShtX29wYXF1ZSk7CiAjZW5kaWYKIH0K
IApAQCAtMzI2LDExICszMTEsMTEgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Omxv
YWQoY29uc3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQdHI8V2ViQ29yZTo6TWVkaWEKIAogdm9pZCBX
ZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRSZXF1ZXN0ZWQoKQogewotICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX3dlYk1lZGlhUGxheWVyTXV0ZXgpOwogICAgIGlmIChtX3ByZWxvYWQgPT0g
TWVkaWFQbGF5ZXI6Ok5vbmUpIHsKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgICAgICBtX2F1
ZGlvU291cmNlUHJvdmlkZXIud3JhcCgwKTsgLy8gQ2xlYXIgd2VhayByZWZlcmVuY2UgdG8gbV93
ZWJNZWRpYVBsYXllcidzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIuCiAjZW5kaWYKKyAgICAgICAg
ZGVzdHJveVZpZGVvTGF5ZXIoKTsKICAgICAgICAgbV93ZWJNZWRpYVBsYXllci5jbGVhcigpOwog
ICAgICAgICBtX2RlbGF5aW5nTG9hZCA9IHRydWU7CiAgICAgfSBlbHNlCkBAIC0zNDQsNiArMzI5
LDcgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCgpCiAjZW5k
aWYKIAogICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPiht
X21lZGlhUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsK
KyAgICBkZXN0cm95VmlkZW9MYXllcigpOwogICAgIG1fd2ViTWVkaWFQbGF5ZXIgPSBjcmVhdGVX
ZWJNZWRpYVBsYXllcih0aGlzLCBtX3VybCwgZnJhbWUpOwogICAgIGlmIChtX3dlYk1lZGlhUGxh
eWVyKSB7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKQEAgLTM2Miw2ICszNDgsMTQgQEAgdm9pZCBX
ZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCgpCiAgICAgfQogfQogCit2b2lk
IFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6ZGVzdHJveVZpZGVvTGF5ZXIoKQoreworICAgIGlm
ICghbV92aWRlb0xheWVyKQorICAgICAgICByZXR1cm47CisgICAgR3JhcGhpY3NMYXllckNocm9t
aXVtOjp1bnJlZ2lzdGVyQ29udGVudHNMYXllcihtX3ZpZGVvTGF5ZXIuZ2V0KCkpOworICAgIG1f
dmlkZW9MYXllci5jbGVhcigpOworfQorCiB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6
Y2FuY2VsTG9hZCgpCiB7CiAgICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpCkBAIC0zNzIsNyArMzY2
LDcgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmNhbmNlbExvYWQoKQogV2ViTGF5
ZXIqIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKG1fc3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKTsKLSAgICByZXR1cm4g
bV92aWRlb0xheWVyID8gbV92aWRlb0xheWVyLT5sYXllcigpIDogMDsKKyAgICByZXR1cm4gbV92
aWRlb0xheWVyID8gbV92aWRlb0xheWVyLmdldCgpIDogMDsKIH0KICNlbmRpZgogCkBAIC02MTIs
MTIgKzYwNiwxMCBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c2V0U2l6ZShjb25z
dCBJbnRTaXplJiBzaXplKQogCiB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBJZiB3ZSBhcmUgdXNpbmcgR1BVIHRv
IHJlbmRlciB2aWRlbywgaWdub3JlIHJlcXVlc3RzIHRvIHBhaW50IGZyYW1lcyBpbnRvCi0gICAg
Ly8gY2FudmFzIGJlY2F1c2UgaXQgd2lsbCBiZSB0YWtlbiBjYXJlIG9mIGJ5IFdlYlZpZGVvTGF5
ZXIuCisgICAgLy8gY2FudmFzIGJlY2F1c2UgaXQgd2lsbCBiZSB0YWtlbiBjYXJlIG9mIGJ5IHRo
ZSBWaWRlb0xheWVyLgogICAgIGlmIChhY2NlbGVyYXRlZFJlbmRlcmluZ0luVXNlKCkpCiAgICAg
ICAgIHJldHVybjsKLSNlbmRpZgogICAgIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNvbnRl
eHQsIHJlY3QpOwogfQogCkBAIC03MTksNyArNzExLDYgQEAgQXVkaW9Tb3VyY2VQcm92aWRlciog
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjphdWRpb1NvdXJjZVByb3ZpZGVyKCkKIH0KICNlbmRp
ZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogewogICAg
IHJldHVybiBtX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsKQEAgLTcyNyw0NCArNzE4
LDkgQEAgYm9vbCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1cHBvcnRzQWNjZWxlcmF0ZWRS
ZW5kZXJpbmcoKSBjb25zdAogCiBib29sIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6YWNjZWxl
cmF0ZWRSZW5kZXJpbmdJblVzZSgpCiB7Ci0gICAgcmV0dXJuIG1fdmlkZW9MYXllciAmJiBtX3Zp
ZGVvTGF5ZXItPmFjdGl2ZSgpOwotfQotCi12b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6
c2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KFdlYlZpZGVvRnJhbWVQcm92aWRlcjo6Q2xpZW50
KiBjbGllbnQpCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fd2ViTWVkaWFQbGF5ZXJNdXRl
eCk7Ci0gICAgaWYgKG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KQotICAgICAgICBtX3ZpZGVv
RnJhbWVQcm92aWRlckNsaWVudC0+c3RvcFVzaW5nUHJvdmlkZXIoKTsKLSAgICBtX3ZpZGVvRnJh
bWVQcm92aWRlckNsaWVudCA9IGNsaWVudDsKLSAgICBpZiAobV93ZWJNZWRpYVBsYXllcikKLSAg
ICAgICAgbV93ZWJNZWRpYVBsYXllci0+c2V0U3RyZWFtVGV4dHVyZUNsaWVudChjbGllbnQgPyB0
aGlzIDogMCk7CisgICAgcmV0dXJuIG1fdmlkZW9MYXllciAmJiAhbV92aWRlb0xheWVyLT5pc09y
cGhhbigpOwogfQogCi1XZWJWaWRlb0ZyYW1lKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Omdl
dEN1cnJlbnRGcmFtZSgpCi17Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb25seSBi
eSB0aGUgY2xpZW50LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dlYk1lZGlhUGxheWVyTXV0
ZXgpOwotICAgIEFTU0VSVCghbV9jdXJyZW50VmlkZW9GcmFtZSk7Ci0gICAgQVNTRVJUKG1fdmlk
ZW9GcmFtZVByb3ZpZGVyQ2xpZW50KTsKLSAgICBpZiAobV93ZWJNZWRpYVBsYXllcikKLSAgICAg
ICAgbV9jdXJyZW50VmlkZW9GcmFtZSA9IG1fd2ViTWVkaWFQbGF5ZXItPmdldEN1cnJlbnRGcmFt
ZSgpOwotICAgIHJldHVybiBtX2N1cnJlbnRWaWRlb0ZyYW1lOwotfQotCi12b2lkIFdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbDo6cHV0Q3VycmVudEZyYW1lKFdlYlZpZGVvRnJhbWUqIHZpZGVvRnJh
bWUpCi17Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb25seSBieSB0aGUgY2xpZW50
LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dlYk1lZGlhUGxheWVyTXV0ZXgpOwotICAgIEFT
U0VSVCh2aWRlb0ZyYW1lID09IG1fY3VycmVudFZpZGVvRnJhbWUpOwotICAgIEFTU0VSVChtX3Zp
ZGVvRnJhbWVQcm92aWRlckNsaWVudCk7Ci0gICAgaWYgKCF2aWRlb0ZyYW1lKQotICAgICAgICBy
ZXR1cm47Ci0gICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpCi0gICAgICAgIG1fd2ViTWVkaWFQbGF5
ZXItPnB1dEN1cnJlbnRGcmFtZSh2aWRlb0ZyYW1lKTsKLSAgICBtX2N1cnJlbnRWaWRlb0ZyYW1l
ID0gMDsKLX0KLSNlbmRpZgotCiBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikK
IHsKICAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsPiBjbGllbnQgPSBhZG9wdFB0
cihuZXcgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKCkpOwpAQCAtODI5LDI4ICs3ODUsMTIgQEAg
dm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN0YXJ0RGVsYXllZExvYWQoKQogICAgIGxv
YWRJbnRlcm5hbCgpOwogfQogCi12b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6ZGlkUmVj
ZWl2ZUZyYW1lKCkKLXsKLSAgICAvLyBObyBsb2NrIHNpbmNlIHRoaXMgZ2V0cyBjYWxsZWQgb24g
dGhlIGNsaWVudCdzIHRocmVhZC4KLSAgICBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudC0+ZGlk
UmVjZWl2ZUZyYW1lKCk7Ci19Ci0KLXZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpkaWRV
cGRhdGVNYXRyaXgoY29uc3QgZmxvYXQqIG1hdHJpeCkKLXsKLSAgICAvLyBObyBsb2NrIHNpbmNl
IHRoaXMgZ2V0cyBjYWxsZWQgb24gdGhlIGNsaWVudCdzIHRocmVhZC4KLSAgICBtX3ZpZGVvRnJh
bWVQcm92aWRlckNsaWVudC0+ZGlkVXBkYXRlTWF0cml4KG1hdHJpeCk7Ci19Ci0KIFdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKCkKICAgICA6IG1fbWVk
aWFQbGF5ZXIoMCkKLSAgICAsIG1fY3VycmVudFZpZGVvRnJhbWUoMCkKICAgICAsIG1fZGVsYXlp
bmdMb2FkKGZhbHNlKQogICAgICwgbV9wcmVsb2FkKE1lZGlhUGxheWVyOjpNZXRhRGF0YSkKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBtX3N1cHBvcnRzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZyhmYWxzZSkKICAgICAsIG1fb3BhcXVlKGZhbHNlKQotICAgICwgbV92aWRl
b0ZyYW1lUHJvdmlkZXJDbGllbnQoMCkKLSNlbmRpZgogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCmluZGV4IDgy
ZDhmMjdlOTlmMTAxZmJjNGRhYWY2MzU4MmVmNzNjNTFkYjc5ODEuLjgyMGIyZjgyODA5ZjE5ODA5
Njk3NjRmODdkYmViOWZjOGVmMDlhYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCkBAIC0zNyw4ICszNyw2IEBACiAj
aW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYk1lZGlhUGxheWVyQ2xpZW50LmgiCi0jaW5j
bHVkZSAiV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5oIgotI2luY2x1ZGUgPHB1YmxpYy9XZWJWaWRl
b0ZyYW1lUHJvdmlkZXIuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIApAQCAtNDksMTYgKzQ3LDExIEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
Y2xhc3MgV2ViSGVscGVyUGx1Z2luSW1wbDsKIGNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXI7
CiBjbGFzcyBXZWJNZWRpYVBsYXllcjsKLWNsYXNzIFdlYlZpZGVvTGF5ZXI7CitjbGFzcyBXZWJM
YXllcjsKIAogLy8gVGhpcyBjbGFzcyBzZXJ2ZXMgYXMgYSBicmlkZ2UgYmV0d2VlbiBXZWJDb3Jl
OjpNZWRpYVBsYXllciBhbmQKIC8vIFdlYktpdDo6V2ViTWVkaWFQbGF5ZXIuCi1jbGFzcyBXZWJN
ZWRpYVBsYXllckNsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICwgcHVibGljIFdlYlZpZGVvRnJhbWVQcm92aWRlcgotI2VuZGlm
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgV2ViTWVkaWFQbGF5ZXJD
bGllbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBXZWJTdHJlYW1U
ZXh0dXJlQ2xpZW50IHsKK2NsYXNzIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCA6IHB1YmxpYyBX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBXZWJNZWRpYVBsYXll
ckNsaWVudCB7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0VuYWJsZWQoKTsKQEAgLTE1
MCwzMSArMTQzLDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkF1ZGlvU291cmNl
UHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKTsKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVk
UmVuZGVyaW5nKCkgY29uc3Q7CiAKLSAgICAvLyBXZWJWaWRlb0ZyYW1lUHJvdmlkZXIgbWV0aG9k
czoKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KFdlYlZpZGVv
RnJhbWVQcm92aWRlcjo6Q2xpZW50Kik7Ci0gICAgdmlydHVhbCBXZWJWaWRlb0ZyYW1lKiBnZXRD
dXJyZW50RnJhbWUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0Q3VycmVudEZyYW1lKFdlYlZpZGVv
RnJhbWUqKTsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICB2aXJ0
dWFsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpNZWRpYUtleUV4Y2VwdGlvbiBnZW5lcmF0ZUtleVJl
cXVlc3QoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluaXRE
YXRhLCB1bnNpZ25lZCBpbml0RGF0YUxlbmd0aCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBXZWJD
b3JlOjpNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gYWRkS2V5KGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBrZXksIHVuc2lnbmVkIGtleUxlbmd0aCwg
Y29uc3QgdW5zaWduZWQgY2hhciogaW5pdERhdGEsIHVuc2lnbmVkIGluaXREYXRhTGVuZ3RoLCBj
b25zdCBTdHJpbmcmIHNlc3Npb25JZCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gY2FuY2VsS2V5UmVxdWVzdChjb25zdCBTdHJp
bmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQpIE9WRVJSSURFOwogI2VuZGlm
CiAKLSAgICAvLyBXZWJTdHJlYW1UZXh0dXJlQ2xpZW50IG1ldGhvZHM6Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVGcmFtZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVNYXRyaXgo
Y29uc3QgZmxvYXQqKTsKLQogcHJvdGVjdGVkOgogICAgIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bCgpOwogcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0RGVsYXllZExvYWQoKTsKICAgICB2b2lkIGxv
YWRSZXF1ZXN0ZWQoKTsKICAgICB2b2lkIGxvYWRJbnRlcm5hbCgpOworICAgIHZvaWQgZGVzdHJv
eVZpZGVvTGF5ZXIoKTsKIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKik7CiAgICAg
c3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoV1RGOjpIYXNoU2V0PFdURjo6U3RyaW5nPiYp
OwpAQCAtMTg5LDE5ICsxNzIsMTYgQEAgcHJpdmF0ZToKICAgICBib29sIGFjY2VsZXJhdGVkUmVu
ZGVyaW5nSW5Vc2UoKTsKICNlbmRpZgogCi0gICAgTXV0ZXggbV93ZWJNZWRpYVBsYXllck11dGV4
OyAvLyBHdWFyZHMgdGhlIG1fd2ViTWVkaWFQbGF5ZXIKICAgICBXZWJDb3JlOjpNZWRpYVBsYXll
ciogbV9tZWRpYVBsYXllcjsKICAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXI+IG1fd2ViTWVkaWFQ
bGF5ZXI7Ci0gICAgV2ViVmlkZW9GcmFtZSogbV9jdXJyZW50VmlkZW9GcmFtZTsKICAgICBXZWJD
b3JlOjpLVVJMIG1fdXJsOwogICAgIGJvb2wgbV9kZWxheWluZ0xvYWQ7CiAgICAgV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOwogICAgIFJlZlB0cjxXZWJIZWxwZXJQbHVn
aW5JbXBsPiBtX2hlbHBlclBsdWdpbjsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0gICAgT3duUHRyPFdlYlZpZGVvTGF5ZXI+IG1fdmlkZW9MYXllcjsKKyAgICBPd25QdHI8V2Vi
TGF5ZXI+IG1fdmlkZW9MYXllcjsKICAgICBib29sIG1fc3VwcG9ydHNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nOwogICAgIGJvb2wgbV9vcGFxdWU7Ci0gICAgV2ViVmlkZW9GcmFtZVByb3ZpZGVyOjpD
bGllbnQqIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50OwogI2VuZGlmCiAgICAgc3RhdGljIGJv
b2wgbV9pc0VuYWJsZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbFRlc3QuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1NmExYTZlMjJhYjI5ODgzN2M5YjJjOGU1ZDcxZjVhNmVjNmU2ZGJk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdC5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSwxMjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
Ci0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotCi0jaW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgiCi0KLSNpbmNs
dWRlIDxndGVzdC9ndGVzdC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLXVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLW5hbWVzcGFjZSB7Ci0KLWNsYXNzIEZha2VXZWJNZWRpYVBs
YXllckNsaWVudEltcGwgOiBwdWJsaWMgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsIHsKLXB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxGYWtlV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgRmFrZVdlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bCgpKTsgfQotCi1wcml2YXRlOgotICAgIEZha2VXZWJNZWRpYVBsYXllckNsaWVudEltcGwoKSB7
IH0KLX07Ci0KLWNsYXNzIEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQgOiBwdWJsaWMgV2Vi
VmlkZW9GcmFtZVByb3ZpZGVyOjpDbGllbnQgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3du
UHRyPEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ+IGNyZWF0ZShXZWJWaWRlb0ZyYW1lUHJv
dmlkZXIqIHByb3ZpZGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGYWtl
VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KHByb3ZpZGVyKSk7Ci0gICAgfQotCi0gICAgdmlydHVh
bCB+RmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudCgpCi0gICAgewotICAgICAgICBpZiAobV9w
cm92aWRlcikKLSAgICAgICAgICAgIG1fcHJvdmlkZXItPnNldFZpZGVvRnJhbWVQcm92aWRlckNs
aWVudCgwKTsKLSAgICB9Ci0KLSAgICAvLyBXZWJLaXQ6OldlYlZpZGVvRnJhbWVQcm92aWRlcjo6
Q2xpZW50IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRnJhbWUo
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTWF0cml4KGNvbnN0IGZsb2F0KikgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVc2luZ1Byb3ZpZGVyKCkKLSAgICB7Ci0gICAgICAgIG1f
cHJvdmlkZXIgPSAwOwotICAgIH0KLQotICAgIFdlYlZpZGVvRnJhbWVQcm92aWRlciogcHJvdmlk
ZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3ZpZGVyOyB9Ci0KLXByaXZhdGU6Ci0gICAgRmFrZVZp
ZGVvRnJhbWVQcm92aWRlckNsaWVudChXZWJWaWRlb0ZyYW1lUHJvdmlkZXIqIHByb3ZpZGVyKQot
ICAgICAgICA6IG1fcHJvdmlkZXIocHJvdmlkZXIpCi0gICAgewotICAgICAgICBtX3Byb3ZpZGVy
LT5zZXRWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQodGhpcyk7Ci0gICAgfQotCi0gICAgV2ViVmlk
ZW9GcmFtZVByb3ZpZGVyKiBtX3Byb3ZpZGVyOwotfTsKLQotVEVTVChXZWJNZWRpYVBsYXllckNs
aWVudEltcGxUZXN0LCBJbml0aWFsTnVsbFZpZGVvQ2xpZW50KQotewotICAgIC8vIE5vIGV4cGxp
Y3QgY2hlY2tzIGluIHRoaXMgdGVzdDsganVzdCBtYWtlIHN1cmUgaXQgZG9lc24ndCBjcmFzaC4K
LSAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsPiBwcm92aWRlcihGYWtlV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUoKSk7Ci0gICAgcHJvdmlkZXItPnNldFZpZGVvRnJh
bWVQcm92aWRlckNsaWVudCgwKTsKLX0KLQotVEVTVChXZWJNZWRpYVBsYXllckNsaWVudEltcGxU
ZXN0LCBTZXRBbmRVbnNldFZpZGVvQ2xpZW50KQotewotICAgIE93blB0cjxXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw+IHByb3ZpZGVyKEZha2VXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmNyZWF0
ZSgpKTsKLSAgICBPd25QdHI8RmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudD4gY2xpZW50KEZh
a2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ6OmNyZWF0ZShwcm92aWRlci5nZXQoKSkpOwotCi0g
ICAgRVhQRUNUX0VRKGNsaWVudC0+cHJvdmlkZXIoKSwgcHJvdmlkZXIuZ2V0KCkpOwotCi0gICAg
cHJvdmlkZXItPnNldFZpZGVvRnJhbWVQcm92aWRlckNsaWVudCgwKTsKLSAgICBBU1NFUlRfRkFM
U0UoY2xpZW50LT5wcm92aWRlcigpKTsKLX0KLQotVEVTVChXZWJNZWRpYVBsYXllckNsaWVudElt
cGxUZXN0LCBEZXN0cm95UHJvdmlkZXIpCi17Ci0gICAgT3duUHRyPFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbD4gcHJvdmlkZXIoRmFrZVdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y3JlYXRlKCkp
OwotICAgIE93blB0cjxGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50PiBjbGllbnQoRmFrZVZp
ZGVvRnJhbWVQcm92aWRlckNsaWVudDo6Y3JlYXRlKHByb3ZpZGVyLmdldCgpKSk7Ci0KLSAgICBF
WFBFQ1RfRVEoY2xpZW50LT5wcm92aWRlcigpLCBwcm92aWRlcik7Ci0gICAgcHJvdmlkZXIuY2xl
YXIoKTsKLSAgICBBU1NFUlRfRkFMU0UoY2xpZW50LT5wcm92aWRlcigpKTsKLX0KLQotVEVTVChX
ZWJNZWRpYVBsYXllckNsaWVudEltcGxUZXN0LCBTZXRNdWx0aXBsZVZpZGVvQ2xpZW50cykKLXsK
LSAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsPiBwcm92aWRlcihGYWtlV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUoKSk7Ci0gICAgT3duUHRyPEZha2VWaWRlb0ZyYW1l
UHJvdmlkZXJDbGllbnQ+IGZpcnN0Q2xpZW50KEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ6
OmNyZWF0ZShwcm92aWRlci5nZXQoKSkpOwotICAgIEVYUEVDVF9FUShmaXJzdENsaWVudC0+cHJv
dmlkZXIoKSwgcHJvdmlkZXIpOwotCi0gICAgT3duUHRyPEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJD
bGllbnQ+IHNlY29uZENsaWVudChGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50OjpjcmVhdGUo
cHJvdmlkZXIuZ2V0KCkpKTsKLSAgICBFWFBFQ1RfRkFMU0UoZmlyc3RDbGllbnQtPnByb3ZpZGVy
KCkpOwotICAgIEVYUEVDVF9FUShzZWNvbmRDbGllbnQtPnByb3ZpZGVyKCksIHByb3ZpZGVyKTsK
LQotICAgIHByb3ZpZGVyLmNsZWFyKCk7Ci0gICAgQVNTRVJUX0ZBTFNFKGZpcnN0Q2xpZW50LT5w
cm92aWRlcigpKTsKLSAgICBBU1NFUlRfRkFMU0Uoc2Vjb25kQ2xpZW50LT5wcm92aWRlcigpKTsK
LX0KLQotfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193633</attachid>
            <date>2013-03-18 12:54:38 -0700</date>
            <delta_ts>2013-03-18 17:28:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112483-20130318155029.patch</filename>
            <type>text/plain</type>
            <size>33713</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzMWRiMDc0NDAwOTdh
ZDNhZDQ1MmEyYTQ3ZjM3NzRkOGVhZGExNmYxLi5lMmNmMTVlNmJmYjVlOGQxOTU0YjhiNDczOWU2
OWY5NGYyYzFmZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMy0xNSAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbd2lwXSBbY2hy
b21pdW1dIFJlbW92ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBh
bmQgV2ViVmlkZW9MYXllciBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS5neXBpOgorICAgICAgICAqIGNocm9taXVtL3B1
YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaDoKKyAgICAgICAgKFdlYkxheWVyKToKKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IGNocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9MYXllci5oOiBSZW1vdmVkLgorCiAyMDEzLTAz
LTE3ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gUmVtb3ZlIHRoZSB6b29tIGZpbHRlciBvcGVyYXRpb24gaWZkZWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggOTUzY2I1OGM3Yjg5NjI5YTVjMDU0YWE3YjczNzI3MDg0ZjE1ZDY1
OS4uNzllNTlkM2E0OWFhNTI0ODg0ZjBhOWEwMzIxOTFmOGNiOTg3ZTdmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMy0wMy0xNSAgRGFuYSBKYW5zZW5z
ICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbd2lwXSBbY2hyb21pdW1dIFJlbW92
ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBhbmQgV2ViVmlkZW9M
YXllciBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiBwdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaDoK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJNZWRpYVBsYXllcik6CisgICAgICAgICog
cHVibGljL1dlYlN0cmVhbVRleHR1cmVDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogcHVibGljL1dlYlZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsOjp+V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpyZWFkeVN0YXRlQ2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cmVwYWludCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c2V0T3BhcXVlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF0Zm9ybUxheWVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwYWludCk6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmFjY2VsZXJh
dGVkUmVuZGVyaW5nSW5Vc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVu
dEltcGw6OnN1cHBvcnRzVHlwZSk6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbCk6CisgICAgICAgICogdGVzdHMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdC5jcHA6
IFJlbW92ZWQuCisKIDIwMTMtMDMtMTggIFRhbyBCYWkgIDxtaWNoYWVsYmFpQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBBY2Nlc3Mgc2V0dGluZ3MuZGVmYXVsdFZpZGVvUG9zdGVyVVJMCmRpZmYg
LS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaSBiL1NvdXJjZS9QbGF0Zm9ybS9Q
bGF0Zm9ybS5neXBpCmluZGV4IDYwYWMxYjg3NWM0YzY5ZWVhN2E2MjI2Yjc4YTc5NjIzNTdkNjdl
MjguLmQ1NTdiY2NmOGQ5NmI1NjBjZDM3ODQzOGMwNWY3YWIzZTRhZTMwZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0
Zm9ybS5neXBpCkBAIC0xNDYsOSArMTQ2LDYgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJs
aWMvV2ViVVJMUmVxdWVzdC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVVJM
UmVzcG9uc2UuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlZlY3Rvci5oJywK
LSAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9MYXllci5oJywKLSAgICAgICAg
ICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oJywKLSAgICAgICAgICAgICdjaHJv
bWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZVByb3ZpZGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL3B1YmxpYy9XZWJXb3JrZXJSdW5Mb29wLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVt
L3B1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oIGIvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oCmluZGV4IGQ2ZDU4
YmI4YTdmODllNGIzMTk3NTBiZTFmMzI3NjhkNzIxYzVmZmQuLjZiNjBhOWU5MWZmNGViOGQ5ZjAy
MzcxM2E2MmZiMjE3MWEzMDlhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0LmgKQEAgLTUwLDggKzUwLDYgQEAgY2xh
c3MgV2ViU29saWRDb2xvckxheWVyOwogY2xhc3MgV2ViVGhyZWFkOwogY2xhc3MgV2ViVHJhbnNm
b3JtQW5pbWF0aW9uQ3VydmU7CiBjbGFzcyBXZWJUcmFuc2Zvcm1PcGVyYXRpb25zOwotY2xhc3Mg
V2ViVmlkZW9GcmFtZVByb3ZpZGVyOwotY2xhc3MgV2ViVmlkZW9MYXllcjsKIAogY2xhc3MgV2Vi
Q29tcG9zaXRvclN1cHBvcnQgewogcHVibGljOgpAQCAtODMsOCArODEsNiBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIFdlYlNvbGlkQ29sb3JMYXllciogY3JlYXRlU29saWRDb2xvckxheWVyKCkg
eyByZXR1cm4gMDsgfQogCi0gICAgdmlydHVhbCBXZWJWaWRlb0xheWVyKiBjcmVhdGVWaWRlb0xh
eWVyKFdlYlZpZGVvRnJhbWVQcm92aWRlciopIHsgcmV0dXJuIDA7IH0KLQogICAgIHZpcnR1YWwg
V2ViU2Nyb2xsYmFyTGF5ZXIqIGNyZWF0ZVNjcm9sbGJhckxheWVyKFdlYlNjcm9sbGJhciosIFdl
YlNjcm9sbGJhclRoZW1lUGFpbnRlciwgV2ViU2Nyb2xsYmFyVGhlbWVHZW9tZXRyeSopIHsgcmV0
dXJuIDA7IH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYkxheWVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyLmgK
aW5kZXggMDEzNGMzMGM2ZGI3NjkyODVmOTZmNjgyNmE2ZDFhMjgwOTRjNTFhMi4uNTJjODE2YTE5
N2QyYjMwMjk1MWYwNzIyZjRkMzAzZTIzY2Q4NGYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllci5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViTGF5ZXIuaApAQCAtMjAyLDYgKzIwMiw5IEBAIHB1YmxpYzoKICAgICAv
LyBGb3JjZXMgdGhpcyBsYXllciB0byB1c2UgYSByZW5kZXIgc3VyZmFjZS4gVGhlcmUgaXMgbm8g
YmVuZWZpdCBpbiBkb2luZwogICAgIC8vIHNvLCBidXQgdGhpcyBpcyB0byBmYWNpbGl0YXRlIGJl
bmNobWFya3MgYW5kIHRlc3RzLgogICAgIHZpcnR1YWwgdm9pZCBzZXRGb3JjZVJlbmRlclN1cmZh
Y2UoYm9vbCkgPSAwOworCisgICAgLy8gVHJ1ZSBpZiB0aGUgbGF5ZXIgaXMgbm90IHBhcnQgb2Yg
YSB0cmVlIGF0dGFjaGVkIHRvIGEgV2ViTGF5ZXJUcmVlVmlldy4KKyAgICB2aXJ0dWFsIGJvb2wg
aXNPcnBoYW4oKSBjb25zdCA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIGIv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjZjNlN2NlYjAxM2ZhN2NmZjhjNmQ3NDdhYmU1NjMxZThk
NGQwMzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJWaWRlb0ZyYW1lX2gKLSNkZWZpbmUgV2ViVmlk
ZW9GcmFtZV9oCi0KLSNpbmNsdWRlICJXZWJSZWN0LmgiCi0jaW5jbHVkZSAiV2ViU2l6ZS5oIgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gQSBiYXNlIGNsYXNzIGZvciB0aGUgY29udGFpbmVy
IHdoaWNoIGhvbGRzIGEgbWVkaWE6OlZpZGVvRnJhbWUuCi1jbGFzcyBXZWJWaWRlb0ZyYW1lIHsK
LXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJWaWRlb0ZyYW1lKCkgeyB9Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWVQcm92aWRlci5oIGIvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMjQ1NTJlODAyMGM4NGFkNmU4MzljZmNkMDAwNTE4NWY3NmUwOGVjMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWVQcm92aWRlci5oCisrKyAvZGV2L251bGwK
QEAgLTEsODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViVmlkZW9GcmFtZVByb3ZpZGVyX2gKLSNkZWZpbmUg
V2ViVmlkZW9GcmFtZVByb3ZpZGVyX2gKLQotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgotI2luY2x1
ZGUgIldlYlZpZGVvRnJhbWUuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLS8vIFRocmVhZGlu
ZyBub3RlczogVGhpcyBjbGFzcyBtYXkgYmUgdXNlZCBpbiBhIG11bHRpIHRocmVhZGVkIG1hbm5l
ci4gU3BlY2lmaWNhbGx5LCB0aGUgaW1wbGVtZW50YXRpb24KLS8vIG1heSBjYWxsIGdldEN1cnJl
bnRGcmFtZSgpIC8gcHV0Q3VycmVudEZyYW1lKCkgZnJvbSBhIG5vbi1tYWluIHRocmVhZC4gSWYg
c28sIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUKLS8vIGZvciBtYWtpbmcgc3VyZSBDbGllbnQ6
OmRpZFJlY2VpdmVGcmFtZSBhbmQgQ2xpZW50OjpkaWRVcGRhdGVNYXRyaXggYXJlIG9ubHkgY2Fs
bGVkIGZyb20gdGhpcyB0aHJlYWQuCi1jbGFzcyBXZWJWaWRlb0ZyYW1lUHJvdmlkZXIgewotcHVi
bGljOgotICAgIHZpcnR1YWwgfldlYlZpZGVvRnJhbWVQcm92aWRlcigpIHsgfQotCi0gICAgY2xh
c3MgQ2xpZW50IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIC8vIFByb3ZpZGVyIHdpbGwgY2FsbCB0
aGlzIG1ldGhvZCB0byB0ZWxsIHRoZSBjbGllbnQgdG8gc3RvcCB1c2luZyBpdC4KLSAgICAgICAg
Ly8gc3RvcFVzaW5nUHJvdmlkZXIoKSBtYXkgYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZC4gVGhl
IGNsaWVudCBzaG91bGQKLSAgICAgICAgLy8gYmxvY2sgdW50aWwgaXQgaGFzIHB1dEN1cnJlbnRG
cmFtZSBhbnkgb3V0c3RhbmRpbmcgZnJhbWVzLgotICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcFVz
aW5nUHJvdmlkZXIoKSA9IDA7Ci0KLSAgICAgICAgLy8gTm90aWZpZXMgdGhlIHByb3ZpZGVyJ3Mg
Y2xpZW50IHRoYXQgYSBjYWxsIHRvIGdldEN1cnJlbnRGcmFtZSgpIHdpbGwgcmV0dXJuIG5ldyBk
YXRhLgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUZyYW1lKCkgPSAwOwotCi0gICAg
ICAgIC8vIE5vdGlmaWVzIHRoZSBwcm92aWRlcidzIGNsaWVudCBvZiBhIG5ldyBVViB0cmFuc2Zv
cm0gbWF0cml4IHRvIGJlIHVzZWQgd2hlbiBkcmF3aW5nIGZyYW1lcwotICAgICAgICAvLyBvZiB0
eXBlIFdlYlZpZGVvRnJhbWU6OkZvcm1hdFN0cmVhbVRleHR1cmUuCi0gICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRVcGRhdGVNYXRyaXgoY29uc3QgZmxvYXQqKSA9IDA7Ci0gICAgfTsKLQotICAgIC8v
IE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLCBidXQgdGhlcmUgbXVzdCBiZSBzb21lIGV4
dGVybmFsIGd1YXJhbnRlZQotICAgIC8vIHRoYXQgdGhlIHByb3ZpZGVyIGlzIG5vdCBkZXN0cm95
ZWQgYmVmb3JlIHRoaXMgY2FsbCByZXR1cm5zLgotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0Zy
YW1lUHJvdmlkZXJDbGllbnQoQ2xpZW50KikgPSAwOwotCi0gICAgLy8gVGhpcyBmdW5jdGlvbiBw
bGFjZXMgYSBsb2NrIG9uIHRoZSBjdXJyZW50IGZyYW1lIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0
byBpdC4KLSAgICAvLyBDYWxscyB0byB0aGlzIG1ldGhvZCBzaG91bGQgYWx3YXlzIGJlIGZvbGxv
d2VkIHdpdGggYSBjYWxsIHRvIHB1dEN1cnJlbnRGcmFtZSgpLgotICAgIC8vIFRoZSBvd25lcnNo
aXAgb2YgdGhlIG9iamVjdCBpcyBub3QgdHJhbnNmZXJyZWQgdG8gdGhlIGNhbGxlciBhbmQKLSAg
ICAvLyB0aGUgY2FsbGVyIHNob3VsZCBub3QgZnJlZSB0aGUgcmV0dXJuZWQgb2JqZWN0LiBPbmx5
IHRoZSBjdXJyZW50IHByb3ZpZGVyCi0gICAgLy8gY2xpZW50IHNob3VsZCBjYWxsIHRoaXMgZnVu
Y3Rpb24uCi0gICAgdmlydHVhbCBXZWJWaWRlb0ZyYW1lKiBnZXRDdXJyZW50RnJhbWUoKSA9IDA7
Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiByZWxlYXNlcyB0aGUgbG9jayBvbiB0aGUgdmlkZW8gZnJh
bWUgaW4gY2hyb21pdW0uIEl0IHNob3VsZAotICAgIC8vIGFsd2F5cyBiZSBjYWxsZWQgYWZ0ZXIg
Z2V0Q3VycmVudEZyYW1lKCkuIEZyYW1lcyBwYXNzZWQgaW50byB0aGlzIG1ldGhvZAotICAgIC8v
IHNob3VsZCBubyBsb25nZXIgYmUgcmVmZXJlbmNlZCBhZnRlciB0aGUgY2FsbCBpcyBtYWRlLiBP
bmx5IHRoZSBjdXJyZW50Ci0gICAgLy8gcHJvdmlkZXIgY2xpZW50IHNob3VsZCBjYWxsIHRoaXMg
ZnVuY3Rpb24uCi0gICAgdmlydHVhbCB2b2lkIHB1dEN1cnJlbnRGcmFtZShXZWJWaWRlb0ZyYW1l
KikgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0xheWVyLmggYi9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvTGF5ZXIuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMjI3ZDY5ZTEwYTBkZmI5NzhjOTAwMDRlZmZlNzI4Y2ExNjY5YTNi
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvTGF5ZXIuaAorKysgL2Rldi9udWxsCkBA
IC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlZpZGVvTGF5ZXJfaAotI2RlZmluZSBX
ZWJWaWRlb0xheWVyX2gKLQotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgotI2luY2x1ZGUgIldlYkxh
eWVyLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJWaWRlb0ZyYW1lUHJvdmlk
ZXI7Ci0KLWNsYXNzIFdlYlZpZGVvTGF5ZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgfldlYlZp
ZGVvTGF5ZXIoKSB7IH0KLQotICAgIHZpcnR1YWwgV2ViTGF5ZXIqIGxheWVyKCkgPSAwOwotCi0g
ICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgbGF5ZXIgaXMgYWN0aXZlbHkgcmVuZGVyaW5nIChl
LmcuIGN1cnJlbnRseSBhdHRhY2hlZCB0byBhIFdlYkxheWVyVHJlZVZpZXcpLgotICAgIHZpcnR1
YWwgYm9vbCBhY3RpdmUoKSBjb25zdCA9IDA7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LQotI2VuZGlmIC8vIFdlYlZpZGVvTGF5ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkK
aW5kZXggODljODI1OTNmY2FhMTA4MDAxZjNmM2E2OTQ1ZmQzZDM5ZGQwZjI5Mi4uNmU0YTRkODYw
MDc1YjU0ZTRiNTQ3Njc3MDFlZGFkNDljYWNiMTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXBpCkBAIC0xMTgsNyArMTE4LDYgQEAKICAgICAgICAgICAgICd0ZXN0cy9XZWJJbWFnZVRl
c3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvblRlc3Qu
Y3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJJbnB1dEV2ZW50RmFjdG9yeVRlc3RNYWMubW0n
LAotICAgICAgICAgICAgJ3Rlc3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbFRlc3QuY3BwJywK
ICAgICAgICAgICAgICd0ZXN0cy9XZWJQYWdlTmV3U2VyaWFsaXplclRlc3QuY3BwJywKICAgICAg
ICAgICAgICd0ZXN0cy9XZWJQYWdlU2VyaWFsaXplclRlc3QuY3BwJywKICAgICAgICAgICAgICd0
ZXN0cy9XZWJQbHVnaW5Db250YWluZXJUZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAppbmRleCBhZDU2YzFiY2JhMWMzMWFjMmUxYmMy
NzU4MGFhMWU2NjYzN2E2YjkwLi40MzgxNjNhMmNiY2I4NWNhZjk3YWQ4NjI0ZDRiN2JiM2Y3ODU3
OGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBs
YXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVy
LmgKQEAgLTMzLDEzICszMywxMyBAQAogCiAjaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYkNhbnZhcy5oIgogI2luY2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJTdHJpbmcuaCIKLSNpbmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIldlYlRpbWVSYW5nZS5o
IgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92aWRlcjsK
IGNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQ7CitjbGFzcyBXZWJMYXllcjsKIGNs
YXNzIFdlYk1lZGlhUGxheWVyQ2xpZW50OwogY2xhc3MgV2ViTWVkaWFTb3VyY2U7CiBjbGFzcyBX
ZWJTdHJlYW1UZXh0dXJlQ2xpZW50OwpAQCAtMTU1LDE3ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB1bnNpZ25lZCBhdWRpb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCB1bnNpZ25lZCB2aWRlb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdCA9IDA7CiAKLSAg
ICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBwb2ludGVyIHRvIGEgV2ViVmlkZW9GcmFtZSwg
d2hpY2ggaXMKLSAgICAvLyBhIFdlYktpdCB3cmFwcGVyIGZvciBhIHZpZGVvIGZyYW1lIGluIGNo
cm9taXVtLiBUaGlzIHBsYWNlcyBhIGxvY2sKLSAgICAvLyBvbiB0aGUgZnJhbWUgaW4gY2hyb21p
dW0sIGFuZCBjYWxscyB0byB0aGlzIG1ldGhvZCBzaG91bGQgYWx3YXlzIGJlCi0gICAgLy8gZm9s
bG93ZWQgd2l0aCBhIGNhbGwgdG8gcHV0Q3VycmVudEZyYW1lKCkuIFRoZSBvd25lcnNoaXAgb2Yg
dGhpcyBvYmplY3QKLSAgICAvLyBpcyBub3QgdHJhbnNmZXJyZWQgdG8gdGhlIGNhbGxlciwgYW5k
IHRoZSBjYWxsZXIgc2hvdWxkIG5vdCBmcmVlIHRoZQotICAgIC8vIHJldHVybmVkIG9iamVjdC4K
LSAgICB2aXJ0dWFsIFdlYlZpZGVvRnJhbWUqIGdldEN1cnJlbnRGcmFtZSgpIHsgcmV0dXJuIDA7
IH0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIHRoZSBsb2NrIG9uIHRoZSBjdXJyZW50
IHZpZGVvIGZyYW1lIGluIENocm9taXVtLgotICAgIC8vIEl0IHNob3VsZCBhbHdheXMgYmUgY2Fs
bGVkIGFmdGVyIGdldEN1cnJlbnRGcmFtZSgpLiBGcmFtZSBwYXNzZWQgdG8gdGhpcwotICAgIC8v
IG1ldGhvZCBzaG91bGQgbm8gbG9uZ2VyIGJlIHJlZmVyZW5jZWQgYWZ0ZXIgdGhlIGNhbGwgaXMg
bWFkZS4KLSAgICB2aXJ0dWFsIHZvaWQgcHV0Q3VycmVudEZyYW1lKFdlYlZpZGVvRnJhbWUqKSB7
IH0KKyAgICB2aXJ0dWFsIFdlYkxheWVyKiBjcmVhdGVDb21wb3NpdGluZ0xheWVyKCkgPSAwOwog
CiAgICAgLy8gRG8gYSBHUFUtR1BVIHRleHR1cmVzIGNvcHkgaWYgcG9zc2libGUuCiAgICAgdmly
dHVhbCBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJHcmFwaGljc0Nv
bnRleHQzRCosIHVuc2lnbmVkIHRleHR1cmUsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCBpbnRl
cm5hbEZvcm1hdCwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKSB7IHJldHVybiBm
YWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3Ry
ZWFtVGV4dHVyZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3Ry
ZWFtVGV4dHVyZUNsaWVudC5oCmluZGV4IDgxMDAyZmIyNmFkNzkzZGE2ZDZhNDY4ODYwYzBmMGFk
ZWU3MzRlNmEuLmNkMGFhNjU1NmU2MzkwMTU0YmVhYjI0ZjUxYTFkMDgxYWFhMjgxMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0cmVhbVRleHR1cmVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdHJlYW1UZXh0dXJl
Q2xpZW50LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKy8vIEZJ
WE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8gY2hyb21pdW0uCiBjbGFzcyBXZWJTdHJlYW1UZXh0dXJl
Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUZyYW1lKCkgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFt
ZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NDhhN2E0NDQwYmZkMjZiYmQ0NTUzOTljMjFmNzE1
ODFkYzY2MjllLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IGFhYjc0
ZTIyZjhlNGZiNjA1MjY1MWQxZjkwMDhiZDBjNzcxNzk2ZGQuLmE1NWQyZTQzNzQ0YmExNTBjYzlh
NzNlMWRjYmU1YzU1Y2I4NWFlOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcApAQCAtMzksNyArMzksNiBAQAog
I2luY2x1ZGUgPHB1YmxpYy9XZWJTaXplLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5o
PgogI2luY2x1ZGUgPHB1YmxpYy9XZWJVUkwuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViVmlkZW9M
YXllci5oPgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIlJl
bmRlckxheWVyQ29tcG9zaXRvci5oIgpAQCAtOTQsMjAgKzkzLDcgQEAgV2ViTWVkaWFQbGF5ZXIq
IFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bWVkaWFQbGF5ZXIoKSBjb25zdAogCiBXZWJNZWRp
YVBsYXllckNsaWVudEltcGw6On5XZWJNZWRpYVBsYXllckNsaWVudEltcGwoKQogewotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAobV92aWRlb0ZyYW1lUHJvdmlkZXJD
bGllbnQpCi0gICAgICAgIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50LT5zdG9wVXNpbmdQcm92
aWRlcigpOwotICAgIC8vIE5vIG5lZWQgZm9yIGEgbG9jayBoZXJlLCBhcyBnZXRDdXJyZW50RnJh
bWUvcHV0Q3VycmVudEZyYW1lIGNhbid0IGJlCi0gICAgLy8gY2FsbGVkIG5vdyB0aGF0IHRoZSBj
bGllbnQgaXMgbm8gbG9uZ2VyIHVzaW5nIHRoaXMgcHJvdmlkZXIuIEFsc28sIGxvYWQoKQotICAg
IC8vIGFuZCB0aGlzIGRlc3RydWN0b3IgYXJlIGNhbGxlZCBmcm9tIHRoZSBzYW1lIHRocmVhZC4K
LSAgICBpZiAobV93ZWJNZWRpYVBsYXllcikKLSAgICAgICAgbV93ZWJNZWRpYVBsYXllci0+c2V0
U3RyZWFtVGV4dHVyZUNsaWVudCgwKTsKLSNlbmRpZgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotICAgIGlmIChtX3ZpZGVvTGF5ZXIpCi0gICAgICAgIEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6dW5yZWdpc3RlckNvbnRlbnRzTGF5ZXIobV92aWRlb0xheWVyLT5sYXllcigpKTsK
LSNlbmRpZgorICAgIGRlc3Ryb3lWaWRlb0xheWVyKCk7CiAKICAgICAvLyBFeHBsaWNpdGx5IGRl
c3Ryb3kgdGhlIFdlYk1lZGlhUGxheWVyIHRvIGFsbG93IHZlcmlmaWNhdGlvbiBvZiB0ZWFyIGRv
d24uCiAgICAgbV93ZWJNZWRpYVBsYXllci5jbGVhcigpOwpAQCAtMTMyLDEwICsxMTgsOSBAQCB2
b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cmVhZHlTdGF0ZUNoYW5nZWQoKQogICAgIG1f
bWVkaWFQbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmIChoYXNWaWRlbygpICYmIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5k
ZXJpbmcoKSAmJiAhbV92aWRlb0xheWVyKSB7Ci0gICAgICAgIG1fdmlkZW9MYXllciA9IGFkb3B0
UHRyKFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZVZpZGVv
TGF5ZXIodGhpcykpOwotCi0gICAgICAgIG1fdmlkZW9MYXllci0+bGF5ZXIoKS0+c2V0T3BhcXVl
KG1fb3BhcXVlKTsKLSAgICAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjpyZWdpc3RlckNvbnRl
bnRzTGF5ZXIobV92aWRlb0xheWVyLT5sYXllcigpKTsKKyAgICAgICAgbV92aWRlb0xheWVyID0g
YWRvcHRQdHIobV93ZWJNZWRpYVBsYXllci0+Y3JlYXRlQ29tcG9zaXRpbmdMYXllcigpKTsKKyAg
ICAgICAgbV92aWRlb0xheWVyLT5zZXRPcGFxdWUobV9vcGFxdWUpOworICAgICAgICBHcmFwaGlj
c0xheWVyQ2hyb21pdW06OnJlZ2lzdGVyQ29udGVudHNMYXllcihtX3ZpZGVvTGF5ZXIuZ2V0KCkp
OwogICAgIH0KICNlbmRpZgogfQpAQCAtMTYzLDcgKzE0OCw3IEBAIHZvaWQgV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsOjpyZXBhaW50KCkKICAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7CiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX3ZpZGVvTGF5ZXIgJiYgc3Vw
cG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpKQotICAgICAgICBtX3ZpZGVvTGF5ZXItPmxheWVy
KCktPmludmFsaWRhdGUoKTsKKyAgICAgICAgbV92aWRlb0xheWVyLT5pbnZhbGlkYXRlKCk7CiAj
ZW5kaWYKICAgICBtX21lZGlhUGxheWVyLT5yZXBhaW50KCk7CiB9CkBAIC0xOTEsNyArMTc2LDcg
QEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnNldE9wYXF1ZShib29sIG9wYXF1ZSkK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbV9vcGFxdWUgPSBvcGFxdWU7
CiAgICAgaWYgKG1fdmlkZW9MYXllcikKLSAgICAgICAgbV92aWRlb0xheWVyLT5sYXllcigpLT5z
ZXRPcGFxdWUobV9vcGFxdWUpOworICAgICAgICBtX3ZpZGVvTGF5ZXItPnNldE9wYXF1ZShtX29w
YXF1ZSk7CiAjZW5kaWYKIH0KIApAQCAtMzI2LDExICszMTEsMTEgQEAgdm9pZCBXZWJNZWRpYVBs
YXllckNsaWVudEltcGw6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6TWVkaWEKIAogdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRSZXF1ZXN0ZWQo
KQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dlYk1lZGlhUGxheWVyTXV0ZXgpOwogICAg
IGlmIChtX3ByZWxvYWQgPT0gTWVkaWFQbGF5ZXI6Ok5vbmUpIHsKICNpZiBFTkFCTEUoV0VCX0FV
RElPKQogICAgICAgICBtX2F1ZGlvU291cmNlUHJvdmlkZXIud3JhcCgwKTsgLy8gQ2xlYXIgd2Vh
ayByZWZlcmVuY2UgdG8gbV93ZWJNZWRpYVBsYXllcidzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIu
CiAjZW5kaWYKKyAgICAgICAgZGVzdHJveVZpZGVvTGF5ZXIoKTsKICAgICAgICAgbV93ZWJNZWRp
YVBsYXllci5jbGVhcigpOwogICAgICAgICBtX2RlbGF5aW5nTG9hZCA9IHRydWU7CiAgICAgfSBl
bHNlCkBAIC0zNDQsNiArMzI5LDcgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Omxv
YWRJbnRlcm5hbCgpCiAjZW5kaWYKIAogICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEhU
TUxNZWRpYUVsZW1lbnQqPihtX21lZGlhUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpKS0+ZG9j
dW1lbnQoKS0+ZnJhbWUoKTsKKyAgICBkZXN0cm95VmlkZW9MYXllcigpOwogICAgIG1fd2ViTWVk
aWFQbGF5ZXIgPSBjcmVhdGVXZWJNZWRpYVBsYXllcih0aGlzLCBtX3VybCwgZnJhbWUpOwogICAg
IGlmIChtX3dlYk1lZGlhUGxheWVyKSB7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKQEAgLTM2Miw2
ICszNDgsMTQgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCgp
CiAgICAgfQogfQogCit2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6ZGVzdHJveVZpZGVv
TGF5ZXIoKQoreworICAgIGlmICghbV92aWRlb0xheWVyKQorICAgICAgICByZXR1cm47CisgICAg
R3JhcGhpY3NMYXllckNocm9taXVtOjp1bnJlZ2lzdGVyQ29udGVudHNMYXllcihtX3ZpZGVvTGF5
ZXIuZ2V0KCkpOworICAgIG1fdmlkZW9MYXllci5jbGVhcigpOworfQorCiB2b2lkIFdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbDo6Y2FuY2VsTG9hZCgpCiB7CiAgICAgaWYgKG1fd2ViTWVkaWFQbGF5
ZXIpCkBAIC0zNzIsNyArMzY2LDcgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmNh
bmNlbExvYWQoKQogV2ViTGF5ZXIqIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cGxhdGZvcm1M
YXllcigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fc3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nKTsKLSAgICByZXR1cm4gbV92aWRlb0xheWVyID8gbV92aWRlb0xheWVyLT5sYXllcigpIDog
MDsKKyAgICByZXR1cm4gbV92aWRlb0xheWVyID8gbV92aWRlb0xheWVyLmdldCgpIDogMDsKIH0K
ICNlbmRpZgogCkBAIC02MTIsMTIgKzYwNiwxMCBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbDo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogCiB2b2lkIFdlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0
JiByZWN0KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBJZiB3
ZSBhcmUgdXNpbmcgR1BVIHRvIHJlbmRlciB2aWRlbywgaWdub3JlIHJlcXVlc3RzIHRvIHBhaW50
IGZyYW1lcyBpbnRvCi0gICAgLy8gY2FudmFzIGJlY2F1c2UgaXQgd2lsbCBiZSB0YWtlbiBjYXJl
IG9mIGJ5IFdlYlZpZGVvTGF5ZXIuCisgICAgLy8gY2FudmFzIGJlY2F1c2UgaXQgd2lsbCBiZSB0
YWtlbiBjYXJlIG9mIGJ5IHRoZSBWaWRlb0xheWVyLgogICAgIGlmIChhY2NlbGVyYXRlZFJlbmRl
cmluZ0luVXNlKCkpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogICAgIHBhaW50Q3VycmVudEZy
YW1lSW5Db250ZXh0KGNvbnRleHQsIHJlY3QpOwogfQogCkBAIC03MTksNyArNzExLDYgQEAgQXVk
aW9Tb3VyY2VQcm92aWRlciogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjphdWRpb1NvdXJjZVBy
b3ZpZGVyKCkKIH0KICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
Ym9vbCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJp
bmcoKSBjb25zdAogewogICAgIHJldHVybiBtX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
ZzsKQEAgLTcyNyw0NCArNzE4LDkgQEAgYm9vbCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1
cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogCiBib29sIFdlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbDo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdJblVzZSgpCiB7Ci0gICAgcmV0dXJuIG1f
dmlkZW9MYXllciAmJiBtX3ZpZGVvTGF5ZXItPmFjdGl2ZSgpOwotfQotCi12b2lkIFdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbDo6c2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KFdlYlZpZGVvRnJh
bWVQcm92aWRlcjo6Q2xpZW50KiBjbGllbnQpCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
d2ViTWVkaWFQbGF5ZXJNdXRleCk7Ci0gICAgaWYgKG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50
KQotICAgICAgICBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudC0+c3RvcFVzaW5nUHJvdmlkZXIo
KTsKLSAgICBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudCA9IGNsaWVudDsKLSAgICBpZiAobV93
ZWJNZWRpYVBsYXllcikKLSAgICAgICAgbV93ZWJNZWRpYVBsYXllci0+c2V0U3RyZWFtVGV4dHVy
ZUNsaWVudChjbGllbnQgPyB0aGlzIDogMCk7CisgICAgcmV0dXJuIG1fdmlkZW9MYXllciAmJiAh
bV92aWRlb0xheWVyLT5pc09ycGhhbigpOwogfQogCi1XZWJWaWRlb0ZyYW1lKiBXZWJNZWRpYVBs
YXllckNsaWVudEltcGw6OmdldEN1cnJlbnRGcmFtZSgpCi17Ci0gICAgLy8gVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgb25seSBieSB0aGUgY2xpZW50LgotICAgIE11dGV4TG9ja2VyIGxvY2tlciht
X3dlYk1lZGlhUGxheWVyTXV0ZXgpOwotICAgIEFTU0VSVCghbV9jdXJyZW50VmlkZW9GcmFtZSk7
Ci0gICAgQVNTRVJUKG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KTsKLSAgICBpZiAobV93ZWJN
ZWRpYVBsYXllcikKLSAgICAgICAgbV9jdXJyZW50VmlkZW9GcmFtZSA9IG1fd2ViTWVkaWFQbGF5
ZXItPmdldEN1cnJlbnRGcmFtZSgpOwotICAgIHJldHVybiBtX2N1cnJlbnRWaWRlb0ZyYW1lOwot
fQotCi12b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cHV0Q3VycmVudEZyYW1lKFdlYlZp
ZGVvRnJhbWUqIHZpZGVvRnJhbWUpCi17Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
b25seSBieSB0aGUgY2xpZW50LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dlYk1lZGlhUGxh
eWVyTXV0ZXgpOwotICAgIEFTU0VSVCh2aWRlb0ZyYW1lID09IG1fY3VycmVudFZpZGVvRnJhbWUp
OwotICAgIEFTU0VSVChtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudCk7Ci0gICAgaWYgKCF2aWRl
b0ZyYW1lKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpCi0gICAg
ICAgIG1fd2ViTWVkaWFQbGF5ZXItPnB1dEN1cnJlbnRGcmFtZSh2aWRlb0ZyYW1lKTsKLSAgICBt
X2N1cnJlbnRWaWRlb0ZyYW1lID0gMDsKLX0KLSNlbmRpZgotCiBQYXNzT3duUHRyPE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZT4gV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUoTWVk
aWFQbGF5ZXIqIHBsYXllcikKIHsKICAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
PiBjbGllbnQgPSBhZG9wdFB0cihuZXcgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKCkpOwpAQCAt
ODI5LDI4ICs3ODUsMTIgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN0YXJ0RGVs
YXllZExvYWQoKQogICAgIGxvYWRJbnRlcm5hbCgpOwogfQogCi12b2lkIFdlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbDo6ZGlkUmVjZWl2ZUZyYW1lKCkKLXsKLSAgICAvLyBObyBsb2NrIHNpbmNlIHRo
aXMgZ2V0cyBjYWxsZWQgb24gdGhlIGNsaWVudCdzIHRocmVhZC4KLSAgICBtX3ZpZGVvRnJhbWVQ
cm92aWRlckNsaWVudC0+ZGlkUmVjZWl2ZUZyYW1lKCk7Ci19Ci0KLXZvaWQgV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsOjpkaWRVcGRhdGVNYXRyaXgoY29uc3QgZmxvYXQqIG1hdHJpeCkKLXsKLSAg
ICAvLyBObyBsb2NrIHNpbmNlIHRoaXMgZ2V0cyBjYWxsZWQgb24gdGhlIGNsaWVudCdzIHRocmVh
ZC4KLSAgICBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudC0+ZGlkVXBkYXRlTWF0cml4KG1hdHJp
eCk7Ci19Ci0KIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsKCkKICAgICA6IG1fbWVkaWFQbGF5ZXIoMCkKLSAgICAsIG1fY3VycmVudFZpZGVvRnJhbWUo
MCkKICAgICAsIG1fZGVsYXlpbmdMb2FkKGZhbHNlKQogICAgICwgbV9wcmVsb2FkKE1lZGlhUGxh
eWVyOjpNZXRhRGF0YSkKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBt
X3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhmYWxzZSkKICAgICAsIG1fb3BhcXVlKGZh
bHNlKQotICAgICwgbV92aWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoMCkKLSNlbmRpZgogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNs
aWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5oCmluZGV4IDgyZDhmMjdlOTlmMTAxZmJjNGRhYWY2MzU4MmVmNzNjNTFkYjc5ODEu
LjgyMGIyZjgyODA5ZjE5ODA5Njk3NjRmODdkYmViOWZjOGVmMDlhYzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCkBA
IC0zNyw4ICszNyw2IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYk1lZGlhUGxh
eWVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5oIgotI2luY2x1
ZGUgPHB1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApAQCAtNDksMTYgKzQ3LDExIEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViSGVscGVyUGx1Z2luSW1wbDsKIGNsYXNzIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXI7CiBjbGFzcyBXZWJNZWRpYVBsYXllcjsKLWNsYXNzIFdlYlZpZGVv
TGF5ZXI7CitjbGFzcyBXZWJMYXllcjsKIAogLy8gVGhpcyBjbGFzcyBzZXJ2ZXMgYXMgYSBicmlk
Z2UgYmV0d2VlbiBXZWJDb3JlOjpNZWRpYVBsYXllciBhbmQKIC8vIFdlYktpdDo6V2ViTWVkaWFQ
bGF5ZXIuCi1jbGFzcyBXZWJNZWRpYVBsYXllckNsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFdlYlZpZGVvRnJh
bWVQcm92aWRlcgotI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJs
aWMgV2ViTWVkaWFQbGF5ZXJDbGllbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAs
IHB1YmxpYyBXZWJTdHJlYW1UZXh0dXJlQ2xpZW50IHsKK2NsYXNzIFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHB1
YmxpYyBXZWJNZWRpYVBsYXllckNsaWVudCB7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBp
c0VuYWJsZWQoKTsKQEAgLTE1MCwzMSArMTQzLDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdl
YkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKTsKICNlbmRp
ZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Q7CiAKLSAgICAvLyBXZWJWaWRlb0Zy
YW1lUHJvdmlkZXIgbWV0aG9kczoKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GcmFtZVByb3Zp
ZGVyQ2xpZW50KFdlYlZpZGVvRnJhbWVQcm92aWRlcjo6Q2xpZW50Kik7Ci0gICAgdmlydHVhbCBX
ZWJWaWRlb0ZyYW1lKiBnZXRDdXJyZW50RnJhbWUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0Q3Vy
cmVudEZyYW1lKFdlYlZpZGVvRnJhbWUqKTsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKICAgICB2aXJ0dWFsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpNZWRpYUtleUV4Y2Vw
dGlvbiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGluaXREYXRhLCB1bnNpZ25lZCBpbml0RGF0YUxlbmd0aCkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gYWRk
S2V5KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBrZXksIHVu
c2lnbmVkIGtleUxlbmd0aCwgY29uc3QgdW5zaWduZWQgY2hhciogaW5pdERhdGEsIHVuc2lnbmVk
IGluaXREYXRhTGVuZ3RoLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gY2FuY2VsS2V5
UmVxdWVzdChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQp
IE9WRVJSSURFOwogI2VuZGlmCiAKLSAgICAvLyBXZWJTdHJlYW1UZXh0dXJlQ2xpZW50IG1ldGhv
ZHM6Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVGcmFtZSgpOwotICAgIHZpcnR1YWwgdm9p
ZCBkaWRVcGRhdGVNYXRyaXgoY29uc3QgZmxvYXQqKTsKLQogcHJvdGVjdGVkOgogICAgIFdlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbCgpOwogcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0RGVsYXllZExv
YWQoKTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0ZWQoKTsKICAgICB2b2lkIGxvYWRJbnRlcm5hbCgp
OworICAgIHZvaWQgZGVzdHJveVZpZGVvTGF5ZXIoKTsKIAogICAgIHN0YXRpYyBQYXNzT3duUHRy
PFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoV1RGOjpIYXNo
U2V0PFdURjo6U3RyaW5nPiYpOwpAQCAtMTg5LDE5ICsxNzIsMTYgQEAgcHJpdmF0ZToKICAgICBi
b29sIGFjY2VsZXJhdGVkUmVuZGVyaW5nSW5Vc2UoKTsKICNlbmRpZgogCi0gICAgTXV0ZXggbV93
ZWJNZWRpYVBsYXllck11dGV4OyAvLyBHdWFyZHMgdGhlIG1fd2ViTWVkaWFQbGF5ZXIKICAgICBX
ZWJDb3JlOjpNZWRpYVBsYXllciogbV9tZWRpYVBsYXllcjsKICAgICBPd25QdHI8V2ViTWVkaWFQ
bGF5ZXI+IG1fd2ViTWVkaWFQbGF5ZXI7Ci0gICAgV2ViVmlkZW9GcmFtZSogbV9jdXJyZW50Vmlk
ZW9GcmFtZTsKICAgICBXZWJDb3JlOjpLVVJMIG1fdXJsOwogICAgIGJvb2wgbV9kZWxheWluZ0xv
YWQ7CiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOwogICAgIFJl
ZlB0cjxXZWJIZWxwZXJQbHVnaW5JbXBsPiBtX2hlbHBlclBsdWdpbjsKICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0gICAgT3duUHRyPFdlYlZpZGVvTGF5ZXI+IG1fdmlkZW9MYXll
cjsKKyAgICBPd25QdHI8V2ViTGF5ZXI+IG1fdmlkZW9MYXllcjsKICAgICBib29sIG1fc3VwcG9y
dHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOwogICAgIGJvb2wgbV9vcGFxdWU7Ci0gICAgV2ViVmlk
ZW9GcmFtZVByb3ZpZGVyOjpDbGllbnQqIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50OwogI2Vu
ZGlmCiAgICAgc3RhdGljIGJvb2wgbV9pc0VuYWJsZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbFRlc3Qu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NmExYTZlMjJhYjI5ODgzN2M5YjJj
OGU1ZDcxZjVhNmVjNmU2ZGJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsVGVzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjAgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsLmgiCi0KLSNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLW5hbWVzcGFjZSB7Ci0KLWNs
YXNzIEZha2VXZWJNZWRpYVBsYXllckNsaWVudEltcGwgOiBwdWJsaWMgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxGYWtlV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgRmFrZVdlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbCgpKTsgfQotCi1wcml2YXRlOgotICAgIEZha2VXZWJNZWRpYVBs
YXllckNsaWVudEltcGwoKSB7IH0KLX07Ci0KLWNsYXNzIEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJD
bGllbnQgOiBwdWJsaWMgV2ViVmlkZW9GcmFtZVByb3ZpZGVyOjpDbGllbnQgewotcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ+IGNyZWF0
ZShXZWJWaWRlb0ZyYW1lUHJvdmlkZXIqIHByb3ZpZGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KHByb3ZpZGVyKSk7Ci0g
ICAgfQotCi0gICAgdmlydHVhbCB+RmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudCgpCi0gICAg
ewotICAgICAgICBpZiAobV9wcm92aWRlcikKLSAgICAgICAgICAgIG1fcHJvdmlkZXItPnNldFZp
ZGVvRnJhbWVQcm92aWRlckNsaWVudCgwKTsKLSAgICB9Ci0KLSAgICAvLyBXZWJLaXQ6OldlYlZp
ZGVvRnJhbWVQcm92aWRlcjo6Q2xpZW50IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlRnJhbWUoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTWF0cml4
KGNvbnN0IGZsb2F0KikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVc2luZ1Byb3ZpZGVyKCkK
LSAgICB7Ci0gICAgICAgIG1fcHJvdmlkZXIgPSAwOwotICAgIH0KLQotICAgIFdlYlZpZGVvRnJh
bWVQcm92aWRlciogcHJvdmlkZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3ZpZGVyOyB9Ci0KLXBy
aXZhdGU6Ci0gICAgRmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudChXZWJWaWRlb0ZyYW1lUHJv
dmlkZXIqIHByb3ZpZGVyKQotICAgICAgICA6IG1fcHJvdmlkZXIocHJvdmlkZXIpCi0gICAgewot
ICAgICAgICBtX3Byb3ZpZGVyLT5zZXRWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQodGhpcyk7Ci0g
ICAgfQotCi0gICAgV2ViVmlkZW9GcmFtZVByb3ZpZGVyKiBtX3Byb3ZpZGVyOwotfTsKLQotVEVT
VChXZWJNZWRpYVBsYXllckNsaWVudEltcGxUZXN0LCBJbml0aWFsTnVsbFZpZGVvQ2xpZW50KQot
ewotICAgIC8vIE5vIGV4cGxpY3QgY2hlY2tzIGluIHRoaXMgdGVzdDsganVzdCBtYWtlIHN1cmUg
aXQgZG9lc24ndCBjcmFzaC4KLSAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsPiBw
cm92aWRlcihGYWtlV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUoKSk7Ci0gICAgcHJv
dmlkZXItPnNldFZpZGVvRnJhbWVQcm92aWRlckNsaWVudCgwKTsKLX0KLQotVEVTVChXZWJNZWRp
YVBsYXllckNsaWVudEltcGxUZXN0LCBTZXRBbmRVbnNldFZpZGVvQ2xpZW50KQotewotICAgIE93
blB0cjxXZWJNZWRpYVBsYXllckNsaWVudEltcGw+IHByb3ZpZGVyKEZha2VXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw6OmNyZWF0ZSgpKTsKLSAgICBPd25QdHI8RmFrZVZpZGVvRnJhbWVQcm92aWRl
ckNsaWVudD4gY2xpZW50KEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ6OmNyZWF0ZShwcm92
aWRlci5nZXQoKSkpOwotCi0gICAgRVhQRUNUX0VRKGNsaWVudC0+cHJvdmlkZXIoKSwgcHJvdmlk
ZXIuZ2V0KCkpOwotCi0gICAgcHJvdmlkZXItPnNldFZpZGVvRnJhbWVQcm92aWRlckNsaWVudCgw
KTsKLSAgICBBU1NFUlRfRkFMU0UoY2xpZW50LT5wcm92aWRlcigpKTsKLX0KLQotVEVTVChXZWJN
ZWRpYVBsYXllckNsaWVudEltcGxUZXN0LCBEZXN0cm95UHJvdmlkZXIpCi17Ci0gICAgT3duUHRy
PFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbD4gcHJvdmlkZXIoRmFrZVdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6Y3JlYXRlKCkpOwotICAgIE93blB0cjxGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xp
ZW50PiBjbGllbnQoRmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudDo6Y3JlYXRlKHByb3ZpZGVy
LmdldCgpKSk7Ci0KLSAgICBFWFBFQ1RfRVEoY2xpZW50LT5wcm92aWRlcigpLCBwcm92aWRlcik7
Ci0gICAgcHJvdmlkZXIuY2xlYXIoKTsKLSAgICBBU1NFUlRfRkFMU0UoY2xpZW50LT5wcm92aWRl
cigpKTsKLX0KLQotVEVTVChXZWJNZWRpYVBsYXllckNsaWVudEltcGxUZXN0LCBTZXRNdWx0aXBs
ZVZpZGVvQ2xpZW50cykKLXsKLSAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsPiBw
cm92aWRlcihGYWtlV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUoKSk7Ci0gICAgT3du
UHRyPEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ+IGZpcnN0Q2xpZW50KEZha2VWaWRlb0Zy
YW1lUHJvdmlkZXJDbGllbnQ6OmNyZWF0ZShwcm92aWRlci5nZXQoKSkpOwotICAgIEVYUEVDVF9F
UShmaXJzdENsaWVudC0+cHJvdmlkZXIoKSwgcHJvdmlkZXIpOwotCi0gICAgT3duUHRyPEZha2VW
aWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ+IHNlY29uZENsaWVudChGYWtlVmlkZW9GcmFtZVByb3Zp
ZGVyQ2xpZW50OjpjcmVhdGUocHJvdmlkZXIuZ2V0KCkpKTsKLSAgICBFWFBFQ1RfRkFMU0UoZmly
c3RDbGllbnQtPnByb3ZpZGVyKCkpOwotICAgIEVYUEVDVF9FUShzZWNvbmRDbGllbnQtPnByb3Zp
ZGVyKCksIHByb3ZpZGVyKTsKLQotICAgIHByb3ZpZGVyLmNsZWFyKCk7Ci0gICAgQVNTRVJUX0ZB
TFNFKGZpcnN0Q2xpZW50LT5wcm92aWRlcigpKTsKLSAgICBBU1NFUlRfRkFMU0Uoc2Vjb25kQ2xp
ZW50LT5wcm92aWRlcigpKTsKLX0KLQotfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193701</attachid>
            <date>2013-03-18 17:29:03 -0700</date>
            <delta_ts>2013-03-20 15:42:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112483-20130318202455.patch</filename>
            <type>text/plain</type>
            <size>36560</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzMWRiMDc0NDAwOTdh
ZDNhZDQ1MmEyYTQ3ZjM3NzRkOGVhZGExNmYxLi41YjMwOTdmYWJkNTgwNDVmNjBkYzZmN2ZmZDY3
YjZiZDEwNGVmZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMy0xOCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbd2lwXSBbY2hy
b21pdW1dIFJlbW92ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBh
bmQgV2ViVmlkZW9MYXllciBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS5neXBpOgorICAgICAgICAqIGNocm9taXVtL3B1
YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaDoKKyAgICAgICAgKFdlYkxheWVyKToKKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IGNocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9MYXllci5oOiBSZW1vdmVkLgorCiAyMDEzLTAz
LTE3ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gUmVtb3ZlIHRoZSB6b29tIGZpbHRlciBvcGVyYXRpb24gaWZkZWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggOTUzY2I1OGM3Yjg5NjI5YTVjMDU0YWE3YjczNzI3MDg0ZjE1ZDY1
OS4uNzVmNmU2YmM4ZTJmZDc0NWJkOWI0Njc2NTljY2IyY2YxMTdhMzkwMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMy0wMy0xOCAgRGFuYSBKYW5zZW5z
ICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbd2lwXSBbY2hyb21pdW1dIFJlbW92
ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBhbmQgV2ViVmlkZW9M
YXllciBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIFdlYktpdC5neXBpOgorICAgICAgICAqIHB1
YmxpYy9XZWJNZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYk1l
ZGlhUGxheWVyKToKKyAgICAgICAgKiBwdWJsaWMvV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5oOiBS
ZW1vdmVkLgorICAgICAgICAqIHB1YmxpYy9XZWJWaWRlb0ZyYW1lLmg6IFJlbW92ZWQuCisgICAg
ICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6fldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cmVhZHlTdGF0ZUNoYW5n
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnJlcGFpbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnNldE9wYXF1ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bG9hZFJlcXVlc3Rl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bG9hZEludGVy
bmFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpkZXN0cm95
VmlkZW9MYXllcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRp
YVBsYXllckNsaWVudEltcGw6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJN
ZWRpYVBsYXllckNsaWVudEltcGw6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsOjphY2NlbGVyYXRlZFJlbmRlcmluZ0luVXNlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAq
IHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJNZWRpYVBsYXllckNsaWVudEltcGwpOgorICAgICAgICAqIHRlc3RzL1dlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbFRlc3QuY3BwOiBSZW1vdmVkLgorCiAyMDEzLTAzLTE4ICBUYW8gQmFp
ICA8bWljaGFlbGJhaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWNjZXNzIHNldHRpbmdzLmRl
ZmF1bHRWaWRlb1Bvc3RlclVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3Jt
Lmd5cGkgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQppbmRleCA2MGFjMWI4NzVjNGM2
OWVlYTdhNjIyNmI3OGE3OTYyMzU3ZDY3ZTI4Li5kNTU3YmNjZjhkOTZiNTYwY2QzNzg0MzhjMDVm
N2FiM2U0YWUzMGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQor
KysgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQpAQCAtMTQ2LDkgKzE0Niw2IEBACiAg
ICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaCcsCiAgICAgICAgICAg
ICAnY2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3BvbnNlLmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL3B1YmxpYy9XZWJWZWN0b3IuaCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dl
YlZpZGVvTGF5ZXIuaCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJh
bWUuaCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWVQcm92aWRl
ci5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyUnVuTG9vcC5oJywK
ICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJTYW5kYm94U3VwcG9ydC5o
JywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJUaGVtZUVuZ2luZS5o
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9z
aXRvclN1cHBvcnQuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9z
aXRvclN1cHBvcnQuaAppbmRleCBkNmQ1OGJiOGE3Zjg5ZTRiMzE5NzUwYmUxZjMyNzY4ZDcyMWM1
ZmZkLi42YjYwYTllOTFmZjRlYjhkOWYwMjM3MTNhNjJmYjIxNzFhMzA5YWFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0LmgK
KysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9y
dC5oCkBAIC01MCw4ICs1MCw2IEBAIGNsYXNzIFdlYlNvbGlkQ29sb3JMYXllcjsKIGNsYXNzIFdl
YlRocmVhZDsKIGNsYXNzIFdlYlRyYW5zZm9ybUFuaW1hdGlvbkN1cnZlOwogY2xhc3MgV2ViVHJh
bnNmb3JtT3BlcmF0aW9uczsKLWNsYXNzIFdlYlZpZGVvRnJhbWVQcm92aWRlcjsKLWNsYXNzIFdl
YlZpZGVvTGF5ZXI7CiAKIGNsYXNzIFdlYkNvbXBvc2l0b3JTdXBwb3J0IHsKIHB1YmxpYzoKQEAg
LTgzLDggKzgxLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBXZWJTb2xpZENvbG9yTGF5ZXIq
IGNyZWF0ZVNvbGlkQ29sb3JMYXllcigpIHsgcmV0dXJuIDA7IH0KIAotICAgIHZpcnR1YWwgV2Vi
VmlkZW9MYXllciogY3JlYXRlVmlkZW9MYXllcihXZWJWaWRlb0ZyYW1lUHJvdmlkZXIqKSB7IHJl
dHVybiAwOyB9Ci0KICAgICB2aXJ0dWFsIFdlYlNjcm9sbGJhckxheWVyKiBjcmVhdGVTY3JvbGxi
YXJMYXllcihXZWJTY3JvbGxiYXIqLCBXZWJTY3JvbGxiYXJUaGVtZVBhaW50ZXIsIFdlYlNjcm9s
bGJhclRoZW1lR2VvbWV0cnkqKSB7IHJldHVybiAwOyB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllci5oIGIvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJMYXllci5oCmluZGV4IDAxMzRjMzBjNmRiNzY5Mjg1Zjk2ZjY4MjZh
NmQxYTI4MDk0YzUxYTIuLjUyYzgxNmExOTdkMmIzMDI5NTFmMDcyMmY0ZDMwM2UyM2NkODRmMzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaAor
KysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyLmgKQEAgLTIwMiw2
ICsyMDIsOSBAQCBwdWJsaWM6CiAgICAgLy8gRm9yY2VzIHRoaXMgbGF5ZXIgdG8gdXNlIGEgcmVu
ZGVyIHN1cmZhY2UuIFRoZXJlIGlzIG5vIGJlbmVmaXQgaW4gZG9pbmcKICAgICAvLyBzbywgYnV0
IHRoaXMgaXMgdG8gZmFjaWxpdGF0ZSBiZW5jaG1hcmtzIGFuZCB0ZXN0cy4KICAgICB2aXJ0dWFs
IHZvaWQgc2V0Rm9yY2VSZW5kZXJTdXJmYWNlKGJvb2wpID0gMDsKKworICAgIC8vIFRydWUgaWYg
dGhlIGxheWVyIGlzIG5vdCBwYXJ0IG9mIGEgdHJlZSBhdHRhY2hlZCB0byBhIFdlYkxheWVyVHJl
ZVZpZXcuCisgICAgdmlydHVhbCBib29sIGlzT3JwaGFuKCkgY29uc3QgPSAwOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYlZpZGVvRnJhbWUuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlkZW9GcmFtZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwY2YzZTdjZWIw
MTNmYTdjZmY4YzZkNzQ3YWJlNTYzMWU4ZDRkMDM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
VmlkZW9GcmFtZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRp
b24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0g
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViVmlk
ZW9GcmFtZV9oCi0jZGVmaW5lIFdlYlZpZGVvRnJhbWVfaAotCi0jaW5jbHVkZSAiV2ViUmVjdC5o
IgotI2luY2x1ZGUgIldlYlNpemUuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLS8vIEEgYmFz
ZSBjbGFzcyBmb3IgdGhlIGNvbnRhaW5lciB3aGljaCBob2xkcyBhIG1lZGlhOjpWaWRlb0ZyYW1l
LgotY2xhc3MgV2ViVmlkZW9GcmFtZSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViVmlkZW9G
cmFtZSgpIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlk
ZXIuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZVByb3Zp
ZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0NTUyZTgwMjBjODRhZDZlODM5
Y2ZjZDAwMDUxODVmNzZlMDhlYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1l
UHJvdmlkZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlZpZGVv
RnJhbWVQcm92aWRlcl9oCi0jZGVmaW5lIFdlYlZpZGVvRnJhbWVQcm92aWRlcl9oCi0KLSNpbmNs
dWRlICJXZWJDb21tb24uaCIKLSNpbmNsdWRlICJXZWJWaWRlb0ZyYW1lLmgiCi0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi0vLyBUaHJlYWRpbmcgbm90ZXM6IFRoaXMgY2xhc3MgbWF5IGJlIHVzZWQg
aW4gYSBtdWx0aSB0aHJlYWRlZCBtYW5uZXIuIFNwZWNpZmljYWxseSwgdGhlIGltcGxlbWVudGF0
aW9uCi0vLyBtYXkgY2FsbCBnZXRDdXJyZW50RnJhbWUoKSAvIHB1dEN1cnJlbnRGcmFtZSgpIGZy
b20gYSBub24tbWFpbiB0aHJlYWQuIElmIHNvLCB0aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlCi0v
LyBmb3IgbWFraW5nIHN1cmUgQ2xpZW50OjpkaWRSZWNlaXZlRnJhbWUgYW5kIENsaWVudDo6ZGlk
VXBkYXRlTWF0cml4IGFyZSBvbmx5IGNhbGxlZCBmcm9tIHRoaXMgdGhyZWFkLgotY2xhc3MgV2Vi
VmlkZW9GcmFtZVByb3ZpZGVyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJWaWRlb0ZyYW1l
UHJvdmlkZXIoKSB7IH0KLQotICAgIGNsYXNzIENsaWVudCB7Ci0gICAgcHVibGljOgotICAgICAg
ICAvLyBQcm92aWRlciB3aWxsIGNhbGwgdGhpcyBtZXRob2QgdG8gdGVsbCB0aGUgY2xpZW50IHRv
IHN0b3AgdXNpbmcgaXQuCi0gICAgICAgIC8vIHN0b3BVc2luZ1Byb3ZpZGVyKCkgbWF5IGJlIGNh
bGxlZCBmcm9tIGFueSB0aHJlYWQuIFRoZSBjbGllbnQgc2hvdWxkCi0gICAgICAgIC8vIGJsb2Nr
IHVudGlsIGl0IGhhcyBwdXRDdXJyZW50RnJhbWUgYW55IG91dHN0YW5kaW5nIGZyYW1lcy4KLSAg
ICAgICAgdmlydHVhbCB2b2lkIHN0b3BVc2luZ1Byb3ZpZGVyKCkgPSAwOwotCi0gICAgICAgIC8v
IE5vdGlmaWVzIHRoZSBwcm92aWRlcidzIGNsaWVudCB0aGF0IGEgY2FsbCB0byBnZXRDdXJyZW50
RnJhbWUoKSB3aWxsIHJldHVybiBuZXcgZGF0YS4KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVGcmFtZSgpID0gMDsKLQotICAgICAgICAvLyBOb3RpZmllcyB0aGUgcHJvdmlkZXIncyBj
bGllbnQgb2YgYSBuZXcgVVYgdHJhbnNmb3JtIG1hdHJpeCB0byBiZSB1c2VkIHdoZW4gZHJhd2lu
ZyBmcmFtZXMKLSAgICAgICAgLy8gb2YgdHlwZSBXZWJWaWRlb0ZyYW1lOjpGb3JtYXRTdHJlYW1U
ZXh0dXJlLgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTWF0cml4KGNvbnN0IGZsb2F0
KikgPSAwOwotICAgIH07Ci0KLSAgICAvLyBNYXkgYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZCwg
YnV0IHRoZXJlIG11c3QgYmUgc29tZSBleHRlcm5hbCBndWFyYW50ZWUKLSAgICAvLyB0aGF0IHRo
ZSBwcm92aWRlciBpcyBub3QgZGVzdHJveWVkIGJlZm9yZSB0aGlzIGNhbGwgcmV0dXJucy4KLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KENsaWVudCopID0gMDsK
LQotICAgIC8vIFRoaXMgZnVuY3Rpb24gcGxhY2VzIGEgbG9jayBvbiB0aGUgY3VycmVudCBmcmFt
ZSBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8gaXQuCi0gICAgLy8gQ2FsbHMgdG8gdGhpcyBtZXRo
b2Qgc2hvdWxkIGFsd2F5cyBiZSBmb2xsb3dlZCB3aXRoIGEgY2FsbCB0byBwdXRDdXJyZW50RnJh
bWUoKS4KLSAgICAvLyBUaGUgb3duZXJzaGlwIG9mIHRoZSBvYmplY3QgaXMgbm90IHRyYW5zZmVy
cmVkIHRvIHRoZSBjYWxsZXIgYW5kCi0gICAgLy8gdGhlIGNhbGxlciBzaG91bGQgbm90IGZyZWUg
dGhlIHJldHVybmVkIG9iamVjdC4gT25seSB0aGUgY3VycmVudCBwcm92aWRlcgotICAgIC8vIGNs
aWVudCBzaG91bGQgY2FsbCB0aGlzIGZ1bmN0aW9uLgotICAgIHZpcnR1YWwgV2ViVmlkZW9GcmFt
ZSogZ2V0Q3VycmVudEZyYW1lKCkgPSAwOwotICAgIC8vIFRoaXMgZnVuY3Rpb24gcmVsZWFzZXMg
dGhlIGxvY2sgb24gdGhlIHZpZGVvIGZyYW1lIGluIGNocm9taXVtLiBJdCBzaG91bGQKLSAgICAv
LyBhbHdheXMgYmUgY2FsbGVkIGFmdGVyIGdldEN1cnJlbnRGcmFtZSgpLiBGcmFtZXMgcGFzc2Vk
IGludG8gdGhpcyBtZXRob2QKLSAgICAvLyBzaG91bGQgbm8gbG9uZ2VyIGJlIHJlZmVyZW5jZWQg
YWZ0ZXIgdGhlIGNhbGwgaXMgbWFkZS4gT25seSB0aGUgY3VycmVudAotICAgIC8vIHByb3ZpZGVy
IGNsaWVudCBzaG91bGQgY2FsbCB0aGlzIGZ1bmN0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBwdXRD
dXJyZW50RnJhbWUoV2ViVmlkZW9GcmFtZSopID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlkZW9MYXllci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJW
aWRlb0xheWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyN2Q2OWUxMGEwZGZi
OTc4YzkwMDA0ZWZmZTcyOGNhMTY2OWEzYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRl
b0xheWVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBX
ZWJWaWRlb0xheWVyX2gKLSNkZWZpbmUgV2ViVmlkZW9MYXllcl9oCi0KLSNpbmNsdWRlICJXZWJD
b21tb24uaCIKLSNpbmNsdWRlICJXZWJMYXllci5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
Y2xhc3MgV2ViVmlkZW9GcmFtZVByb3ZpZGVyOwotCi1jbGFzcyBXZWJWaWRlb0xheWVyIHsKLXB1
YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJWaWRlb0xheWVyKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIFdl
YkxheWVyKiBsYXllcigpID0gMDsKLQotICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGxheWVy
IGlzIGFjdGl2ZWx5IHJlbmRlcmluZyAoZS5nLiBjdXJyZW50bHkgYXR0YWNoZWQgdG8gYSBXZWJM
YXllclRyZWVWaWV3KS4KLSAgICB2aXJ0dWFsIGJvb2wgYWN0aXZlKCkgY29uc3QgPSAwOwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJWaWRlb0xheWVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCAxYTIwYThkYzI4NjhhM2YwMjg0ODFkYjlmYzhh
MDEyNWE3MWUxNDJlLi4xOTg4ZGExYzY5MmM4N2I0ZTRiZjBjOWUwNDg4NjVjYjBjY2FjZmMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yNjEsNyArMjYxLDYgQEAKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYlN0b3JhZ2VRdW90YUNhbGxiYWNrcy5oJywKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYlN0b3JhZ2VRdW90YVR5cGUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1
YmxpYy9XZWJTdXJyb3VuZGluZ1RleHQuaCcsCi0gICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJT
dHJlYW1UZXh0dXJlQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVGV4dEFm
ZmluaXR5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVGV4dENhc2VTZW5zaXRpdml0
eS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlRleHRDaGVja2luZ0NvbXBsZXRpb24u
aCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCA4OWM4MjU5M2ZjYWExMDgwMDFm
M2YzYTY5NDVmZDNkMzlkZDBmMjkyLi42ZTRhNGQ4NjAwNzViNTRlNGI1NDc2NzcwMWVkYWQ0OWNh
Y2IxNDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTExOCw3ICsxMTgsNiBA
QAogICAgICAgICAgICAgJ3Rlc3RzL1dlYkltYWdlVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rl
c3RzL1dlYklucHV0RXZlbnRDb252ZXJzaW9uVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3Rz
L1dlYklucHV0RXZlbnRGYWN0b3J5VGVzdE1hYy5tbScsCi0gICAgICAgICAgICAndGVzdHMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBh
Z2VOZXdTZXJpYWxpemVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBhZ2VTZXJp
YWxpemVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBsdWdpbkNvbnRhaW5lclRl
c3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1l
ZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXll
ci5oCmluZGV4IGFkNTZjMWJjYmExYzMxYWMyZTFiYzI3NTgwYWExZTY2NjM3YTZiOTAuLmI0ODAx
ODYzYzU0Y2NjY2U0N2NmOGY0MDFiZWY3ZWVlOWEyZDU4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaApAQCAtMzMsMTYgKzMzLDE1IEBACiAK
ICNpbmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ2FudmFzLmgi
CiAjaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlN0cmluZy5o
IgotI2luY2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0Zy
YW1lLmgiCiAjaW5jbHVkZSAiV2ViVGltZVJhbmdlLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyOwogY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckNsaWVudDsKK2NsYXNzIFdlYkxheWVyOwogY2xhc3MgV2ViTWVkaWFQbGF5ZXJDbGllbnQ7
CiBjbGFzcyBXZWJNZWRpYVNvdXJjZTsKLWNsYXNzIFdlYlN0cmVhbVRleHR1cmVDbGllbnQ7CiBj
bGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJVUkw7CiBzdHJ1Y3QgV2ViUmVjdDsKQEAgLTE1NSwy
MyArMTU0LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGF1ZGlvRGVjb2RlZEJ5
dGVDb3VudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHZpZGVvRGVjb2RlZEJ5
dGVDb3VudCgpIGNvbnN0ID0gMDsKIAotICAgIC8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIHBv
aW50ZXIgdG8gYSBXZWJWaWRlb0ZyYW1lLCB3aGljaCBpcwotICAgIC8vIGEgV2ViS2l0IHdyYXBw
ZXIgZm9yIGEgdmlkZW8gZnJhbWUgaW4gY2hyb21pdW0uIFRoaXMgcGxhY2VzIGEgbG9jawotICAg
IC8vIG9uIHRoZSBmcmFtZSBpbiBjaHJvbWl1bSwgYW5kIGNhbGxzIHRvIHRoaXMgbWV0aG9kIHNo
b3VsZCBhbHdheXMgYmUKLSAgICAvLyBmb2xsb3dlZCB3aXRoIGEgY2FsbCB0byBwdXRDdXJyZW50
RnJhbWUoKS4gVGhlIG93bmVyc2hpcCBvZiB0aGlzIG9iamVjdAotICAgIC8vIGlzIG5vdCB0cmFu
c2ZlcnJlZCB0byB0aGUgY2FsbGVyLCBhbmQgdGhlIGNhbGxlciBzaG91bGQgbm90IGZyZWUgdGhl
Ci0gICAgLy8gcmV0dXJuZWQgb2JqZWN0LgotICAgIHZpcnR1YWwgV2ViVmlkZW9GcmFtZSogZ2V0
Q3VycmVudEZyYW1lKCkgeyByZXR1cm4gMDsgfQotICAgIC8vIFRoaXMgZnVuY3Rpb24gcmVsZWFz
ZXMgdGhlIGxvY2sgb24gdGhlIGN1cnJlbnQgdmlkZW8gZnJhbWUgaW4gQ2hyb21pdW0uCi0gICAg
Ly8gSXQgc2hvdWxkIGFsd2F5cyBiZSBjYWxsZWQgYWZ0ZXIgZ2V0Q3VycmVudEZyYW1lKCkuIEZy
YW1lIHBhc3NlZCB0byB0aGlzCi0gICAgLy8gbWV0aG9kIHNob3VsZCBubyBsb25nZXIgYmUgcmVm
ZXJlbmNlZCBhZnRlciB0aGUgY2FsbCBpcyBtYWRlLgotICAgIHZpcnR1YWwgdm9pZCBwdXRDdXJy
ZW50RnJhbWUoV2ViVmlkZW9GcmFtZSopIHsgfQorICAgIHZpcnR1YWwgV2ViTGF5ZXIqIGNyZWF0
ZUNvbXBvc2l0aW5nTGF5ZXIoKSA9IDA7CiAKICAgICAvLyBEbyBhIEdQVS1HUFUgdGV4dHVyZXMg
Y29weSBpZiBwb3NzaWJsZS4KICAgICB2aXJ0dWFsIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxh
dGZvcm1UZXh0dXJlKFdlYkdyYXBoaWNzQ29udGV4dDNEKiwgdW5zaWduZWQgdGV4dHVyZSwgdW5z
aWduZWQgbGV2ZWwsIHVuc2lnbmVkIGludGVybmFsRm9ybWF0LCBib29sIHByZW11bHRpcGx5QWxw
aGEsIGJvb2wgZmxpcFkpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
U3RyZWFtVGV4dHVyZUNsaWVudChXZWJTdHJlYW1UZXh0dXJlQ2xpZW50KikgeyB9Ci0KICAgICB2
aXJ0dWFsIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSB7IHJl
dHVybiAwOyB9CiAKICAgICAvLyBSZXR1cm5zIHdoZXRoZXIga2V5U3lzdGVtIGlzIHN1cHBvcnRl
ZC4gSWYgdHJ1ZSwgdGhlIHJlc3VsdCB3aWxsIGJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDgxMDAyZmIyNmFkNzkzZGE2ZDZhNDY4ODYwYzBmMGFkZWU3MzRlNmEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5oCisrKyAvZGV2L251
bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0g
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViU3RyZWFtVGV4dHVyZUNsaWVudF9oCi0jZGVm
aW5lIFdlYlN0cmVhbVRleHR1cmVDbGllbnRfaAotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xh
c3MgV2ViU3RyZWFtVGV4dHVyZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVGcmFtZSgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTWF0cml4KGNv
bnN0IGZsb2F0KikgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+V2ViU3RyZWFtVGV4
dHVyZUNsaWVudCgpIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NDhhN2E0NDQwYmZkMjZiYmQ0NTUzOTljMjFmNzE1ODFk
YzY2MjllLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaAorKysgL2Rldi9udWxs
CkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IGFhYjc0ZTIy
ZjhlNGZiNjA1MjY1MWQxZjkwMDhiZDBjNzcxNzk2ZGQuLmE1NWQyZTQzNzQ0YmExNTBjYzlhNzNl
MWRjYmU1YzU1Y2I4NWFlOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcApAQCAtMzksNyArMzksNiBAQAogI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJTaXplLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgog
I2luY2x1ZGUgPHB1YmxpYy9XZWJVUkwuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViVmlkZW9MYXll
ci5oPgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIlJlbmRl
ckxheWVyQ29tcG9zaXRvci5oIgpAQCAtOTQsMjAgKzkzLDcgQEAgV2ViTWVkaWFQbGF5ZXIqIFdl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bWVkaWFQbGF5ZXIoKSBjb25zdAogCiBXZWJNZWRpYVBs
YXllckNsaWVudEltcGw6On5XZWJNZWRpYVBsYXllckNsaWVudEltcGwoKQogewotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAobV92aWRlb0ZyYW1lUHJvdmlkZXJDbGll
bnQpCi0gICAgICAgIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50LT5zdG9wVXNpbmdQcm92aWRl
cigpOwotICAgIC8vIE5vIG5lZWQgZm9yIGEgbG9jayBoZXJlLCBhcyBnZXRDdXJyZW50RnJhbWUv
cHV0Q3VycmVudEZyYW1lIGNhbid0IGJlCi0gICAgLy8gY2FsbGVkIG5vdyB0aGF0IHRoZSBjbGll
bnQgaXMgbm8gbG9uZ2VyIHVzaW5nIHRoaXMgcHJvdmlkZXIuIEFsc28sIGxvYWQoKQotICAgIC8v
IGFuZCB0aGlzIGRlc3RydWN0b3IgYXJlIGNhbGxlZCBmcm9tIHRoZSBzYW1lIHRocmVhZC4KLSAg
ICBpZiAobV93ZWJNZWRpYVBsYXllcikKLSAgICAgICAgbV93ZWJNZWRpYVBsYXllci0+c2V0U3Ry
ZWFtVGV4dHVyZUNsaWVudCgwKTsKLSNlbmRpZgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotICAgIGlmIChtX3ZpZGVvTGF5ZXIpCi0gICAgICAgIEdyYXBoaWNzTGF5ZXJDaHJv
bWl1bTo6dW5yZWdpc3RlckNvbnRlbnRzTGF5ZXIobV92aWRlb0xheWVyLT5sYXllcigpKTsKLSNl
bmRpZgorICAgIGRlc3Ryb3lWaWRlb0xheWVyKCk7CiAKICAgICAvLyBFeHBsaWNpdGx5IGRlc3Ry
b3kgdGhlIFdlYk1lZGlhUGxheWVyIHRvIGFsbG93IHZlcmlmaWNhdGlvbiBvZiB0ZWFyIGRvd24u
CiAgICAgbV93ZWJNZWRpYVBsYXllci5jbGVhcigpOwpAQCAtMTMyLDEwICsxMTgsOSBAQCB2b2lk
IFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cmVhZHlTdGF0ZUNoYW5nZWQoKQogICAgIG1fbWVk
aWFQbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIGlmIChoYXNWaWRlbygpICYmIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJp
bmcoKSAmJiAhbV92aWRlb0xheWVyKSB7Ci0gICAgICAgIG1fdmlkZW9MYXllciA9IGFkb3B0UHRy
KFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZVZpZGVvTGF5
ZXIodGhpcykpOwotCi0gICAgICAgIG1fdmlkZW9MYXllci0+bGF5ZXIoKS0+c2V0T3BhcXVlKG1f
b3BhcXVlKTsKLSAgICAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjpyZWdpc3RlckNvbnRlbnRz
TGF5ZXIobV92aWRlb0xheWVyLT5sYXllcigpKTsKKyAgICAgICAgbV92aWRlb0xheWVyID0gYWRv
cHRQdHIobV93ZWJNZWRpYVBsYXllci0+Y3JlYXRlQ29tcG9zaXRpbmdMYXllcigpKTsKKyAgICAg
ICAgbV92aWRlb0xheWVyLT5zZXRPcGFxdWUobV9vcGFxdWUpOworICAgICAgICBHcmFwaGljc0xh
eWVyQ2hyb21pdW06OnJlZ2lzdGVyQ29udGVudHNMYXllcihtX3ZpZGVvTGF5ZXIuZ2V0KCkpOwog
ICAgIH0KICNlbmRpZgogfQpAQCAtMTYzLDcgKzE0OCw3IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjpyZXBhaW50KCkKICAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7CiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX3ZpZGVvTGF5ZXIgJiYgc3VwcG9y
dHNBY2NlbGVyYXRlZFJlbmRlcmluZygpKQotICAgICAgICBtX3ZpZGVvTGF5ZXItPmxheWVyKCkt
PmludmFsaWRhdGUoKTsKKyAgICAgICAgbV92aWRlb0xheWVyLT5pbnZhbGlkYXRlKCk7CiAjZW5k
aWYKICAgICBtX21lZGlhUGxheWVyLT5yZXBhaW50KCk7CiB9CkBAIC0xOTEsNyArMTc2LDcgQEAg
dm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnNldE9wYXF1ZShib29sIG9wYXF1ZSkKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbV9vcGFxdWUgPSBvcGFxdWU7CiAg
ICAgaWYgKG1fdmlkZW9MYXllcikKLSAgICAgICAgbV92aWRlb0xheWVyLT5sYXllcigpLT5zZXRP
cGFxdWUobV9vcGFxdWUpOworICAgICAgICBtX3ZpZGVvTGF5ZXItPnNldE9wYXF1ZShtX29wYXF1
ZSk7CiAjZW5kaWYKIH0KIApAQCAtMzI2LDExICszMTEsMTEgQEAgdm9pZCBXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
TWVkaWEKIAogdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRSZXF1ZXN0ZWQoKQog
ewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dlYk1lZGlhUGxheWVyTXV0ZXgpOwogICAgIGlm
IChtX3ByZWxvYWQgPT0gTWVkaWFQbGF5ZXI6Ok5vbmUpIHsKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQogICAgICAgICBtX2F1ZGlvU291cmNlUHJvdmlkZXIud3JhcCgwKTsgLy8gQ2xlYXIgd2VhayBy
ZWZlcmVuY2UgdG8gbV93ZWJNZWRpYVBsYXllcidzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIuCiAj
ZW5kaWYKKyAgICAgICAgZGVzdHJveVZpZGVvTGF5ZXIoKTsKICAgICAgICAgbV93ZWJNZWRpYVBs
YXllci5jbGVhcigpOwogICAgICAgICBtX2RlbGF5aW5nTG9hZCA9IHRydWU7CiAgICAgfSBlbHNl
CkBAIC0zNDQsNiArMzI5LDcgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJ
bnRlcm5hbCgpCiAjZW5kaWYKIAogICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEhUTUxN
ZWRpYUVsZW1lbnQqPihtX21lZGlhUGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpKS0+ZG9jdW1l
bnQoKS0+ZnJhbWUoKTsKKyAgICBkZXN0cm95VmlkZW9MYXllcigpOwogICAgIG1fd2ViTWVkaWFQ
bGF5ZXIgPSBjcmVhdGVXZWJNZWRpYVBsYXllcih0aGlzLCBtX3VybCwgZnJhbWUpOwogICAgIGlm
IChtX3dlYk1lZGlhUGxheWVyKSB7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKQEAgLTM2Miw2ICsz
NDgsMTQgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWRJbnRlcm5hbCgpCiAg
ICAgfQogfQogCit2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6ZGVzdHJveVZpZGVvTGF5
ZXIoKQoreworICAgIGlmICghbV92aWRlb0xheWVyKQorICAgICAgICByZXR1cm47CisgICAgR3Jh
cGhpY3NMYXllckNocm9taXVtOjp1bnJlZ2lzdGVyQ29udGVudHNMYXllcihtX3ZpZGVvTGF5ZXIu
Z2V0KCkpOworICAgIG1fdmlkZW9MYXllci5jbGVhcigpOworfQorCiB2b2lkIFdlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbDo6Y2FuY2VsTG9hZCgpCiB7CiAgICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIp
CkBAIC0zNzIsNyArMzY2LDcgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmNhbmNl
bExvYWQoKQogV2ViTGF5ZXIqIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cGxhdGZvcm1MYXll
cigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fc3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5n
KTsKLSAgICByZXR1cm4gbV92aWRlb0xheWVyID8gbV92aWRlb0xheWVyLT5sYXllcigpIDogMDsK
KyAgICByZXR1cm4gbV92aWRlb0xheWVyID8gbV92aWRlb0xheWVyLmdldCgpIDogMDsKIH0KICNl
bmRpZgogCkBAIC02MTIsMTIgKzYwNiwxMCBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bDo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogCiB2b2lkIFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBJZiB3ZSBh
cmUgdXNpbmcgR1BVIHRvIHJlbmRlciB2aWRlbywgaWdub3JlIHJlcXVlc3RzIHRvIHBhaW50IGZy
YW1lcyBpbnRvCi0gICAgLy8gY2FudmFzIGJlY2F1c2UgaXQgd2lsbCBiZSB0YWtlbiBjYXJlIG9m
IGJ5IFdlYlZpZGVvTGF5ZXIuCisgICAgLy8gY2FudmFzIGJlY2F1c2UgaXQgd2lsbCBiZSB0YWtl
biBjYXJlIG9mIGJ5IHRoZSBWaWRlb0xheWVyLgogICAgIGlmIChhY2NlbGVyYXRlZFJlbmRlcmlu
Z0luVXNlKCkpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogICAgIHBhaW50Q3VycmVudEZyYW1l
SW5Db250ZXh0KGNvbnRleHQsIHJlY3QpOwogfQogCkBAIC03MTksNyArNzExLDYgQEAgQXVkaW9T
b3VyY2VQcm92aWRlciogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjphdWRpb1NvdXJjZVByb3Zp
ZGVyKCkKIH0KICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9v
bCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmco
KSBjb25zdAogewogICAgIHJldHVybiBtX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsK
QEAgLTcyNyw0NCArNzE4LDkgQEAgYm9vbCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1cHBv
cnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogCiBib29sIFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdJblVzZSgpCiB7Ci0gICAgcmV0dXJuIG1fdmlk
ZW9MYXllciAmJiBtX3ZpZGVvTGF5ZXItPmFjdGl2ZSgpOwotfQotCi12b2lkIFdlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbDo6c2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KFdlYlZpZGVvRnJhbWVQ
cm92aWRlcjo6Q2xpZW50KiBjbGllbnQpCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fd2Vi
TWVkaWFQbGF5ZXJNdXRleCk7Ci0gICAgaWYgKG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KQot
ICAgICAgICBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudC0+c3RvcFVzaW5nUHJvdmlkZXIoKTsK
LSAgICBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudCA9IGNsaWVudDsKLSAgICBpZiAobV93ZWJN
ZWRpYVBsYXllcikKLSAgICAgICAgbV93ZWJNZWRpYVBsYXllci0+c2V0U3RyZWFtVGV4dHVyZUNs
aWVudChjbGllbnQgPyB0aGlzIDogMCk7CisgICAgcmV0dXJuIG1fdmlkZW9MYXllciAmJiAhbV92
aWRlb0xheWVyLT5pc09ycGhhbigpOwogfQogCi1XZWJWaWRlb0ZyYW1lKiBXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw6OmdldEN1cnJlbnRGcmFtZSgpCi17Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBp
cyBjYWxsZWQgb25seSBieSB0aGUgY2xpZW50LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dl
Yk1lZGlhUGxheWVyTXV0ZXgpOwotICAgIEFTU0VSVCghbV9jdXJyZW50VmlkZW9GcmFtZSk7Ci0g
ICAgQVNTRVJUKG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KTsKLSAgICBpZiAobV93ZWJNZWRp
YVBsYXllcikKLSAgICAgICAgbV9jdXJyZW50VmlkZW9GcmFtZSA9IG1fd2ViTWVkaWFQbGF5ZXIt
PmdldEN1cnJlbnRGcmFtZSgpOwotICAgIHJldHVybiBtX2N1cnJlbnRWaWRlb0ZyYW1lOwotfQot
Ci12b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cHV0Q3VycmVudEZyYW1lKFdlYlZpZGVv
RnJhbWUqIHZpZGVvRnJhbWUpCi17Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb25s
eSBieSB0aGUgY2xpZW50LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dlYk1lZGlhUGxheWVy
TXV0ZXgpOwotICAgIEFTU0VSVCh2aWRlb0ZyYW1lID09IG1fY3VycmVudFZpZGVvRnJhbWUpOwot
ICAgIEFTU0VSVChtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudCk7Ci0gICAgaWYgKCF2aWRlb0Zy
YW1lKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpCi0gICAgICAg
IG1fd2ViTWVkaWFQbGF5ZXItPnB1dEN1cnJlbnRGcmFtZSh2aWRlb0ZyYW1lKTsKLSAgICBtX2N1
cnJlbnRWaWRlb0ZyYW1lID0gMDsKLX0KLSNlbmRpZgotCiBQYXNzT3duUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4gV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUoTWVkaWFQ
bGF5ZXIqIHBsYXllcikKIHsKICAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsPiBj
bGllbnQgPSBhZG9wdFB0cihuZXcgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKCkpOwpAQCAtODI5
LDI4ICs3ODUsMTIgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN0YXJ0RGVsYXll
ZExvYWQoKQogICAgIGxvYWRJbnRlcm5hbCgpOwogfQogCi12b2lkIFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6ZGlkUmVjZWl2ZUZyYW1lKCkKLXsKLSAgICAvLyBObyBsb2NrIHNpbmNlIHRoaXMg
Z2V0cyBjYWxsZWQgb24gdGhlIGNsaWVudCdzIHRocmVhZC4KLSAgICBtX3ZpZGVvRnJhbWVQcm92
aWRlckNsaWVudC0+ZGlkUmVjZWl2ZUZyYW1lKCk7Ci19Ci0KLXZvaWQgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjpkaWRVcGRhdGVNYXRyaXgoY29uc3QgZmxvYXQqIG1hdHJpeCkKLXsKLSAgICAv
LyBObyBsb2NrIHNpbmNlIHRoaXMgZ2V0cyBjYWxsZWQgb24gdGhlIGNsaWVudCdzIHRocmVhZC4K
LSAgICBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudC0+ZGlkVXBkYXRlTWF0cml4KG1hdHJpeCk7
Ci19Ci0KIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
KCkKICAgICA6IG1fbWVkaWFQbGF5ZXIoMCkKLSAgICAsIG1fY3VycmVudFZpZGVvRnJhbWUoMCkK
ICAgICAsIG1fZGVsYXlpbmdMb2FkKGZhbHNlKQogICAgICwgbV9wcmVsb2FkKE1lZGlhUGxheWVy
OjpNZXRhRGF0YSkKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBtX3N1
cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhmYWxzZSkKICAgICAsIG1fb3BhcXVlKGZhbHNl
KQotICAgICwgbV92aWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoMCkKLSNlbmRpZgogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbC5oCmluZGV4IDgyZDhmMjdlOTlmMTAxZmJjNGRhYWY2MzU4MmVmNzNjNTFkYjc5ODEuLjgy
MGIyZjgyODA5ZjE5ODA5Njk3NjRmODdkYmViOWZjOGVmMDlhYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCkBAIC0z
Nyw4ICszNyw2IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYk1lZGlhUGxheWVy
Q2xpZW50LmgiCi0jaW5jbHVkZSAiV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5oIgotI2luY2x1ZGUg
PHB1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApAQCAtNDksMTYgKzQ3LDExIEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogY2xhc3MgV2ViSGVscGVyUGx1Z2luSW1wbDsKIGNsYXNzIFdlYkF1ZGlv
U291cmNlUHJvdmlkZXI7CiBjbGFzcyBXZWJNZWRpYVBsYXllcjsKLWNsYXNzIFdlYlZpZGVvTGF5
ZXI7CitjbGFzcyBXZWJMYXllcjsKIAogLy8gVGhpcyBjbGFzcyBzZXJ2ZXMgYXMgYSBicmlkZ2Ug
YmV0d2VlbiBXZWJDb3JlOjpNZWRpYVBsYXllciBhbmQKIC8vIFdlYktpdDo6V2ViTWVkaWFQbGF5
ZXIuCi1jbGFzcyBXZWJNZWRpYVBsYXllckNsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFdlYlZpZGVvRnJhbWVQ
cm92aWRlcgotI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMg
V2ViTWVkaWFQbGF5ZXJDbGllbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1
YmxpYyBXZWJTdHJlYW1UZXh0dXJlQ2xpZW50IHsKK2NsYXNzIFdlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHB1Ymxp
YyBXZWJNZWRpYVBsYXllckNsaWVudCB7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0Vu
YWJsZWQoKTsKQEAgLTE1MCwzMSArMTQzLDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNv
cmU6OkF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKTsKICNlbmRpZgog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Q7CiAKLSAgICAvLyBXZWJWaWRlb0ZyYW1l
UHJvdmlkZXIgbWV0aG9kczoKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GcmFtZVByb3ZpZGVy
Q2xpZW50KFdlYlZpZGVvRnJhbWVQcm92aWRlcjo6Q2xpZW50Kik7Ci0gICAgdmlydHVhbCBXZWJW
aWRlb0ZyYW1lKiBnZXRDdXJyZW50RnJhbWUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0Q3VycmVu
dEZyYW1lKFdlYlZpZGVvRnJhbWUqKTsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKICAgICB2aXJ0dWFsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpNZWRpYUtleUV4Y2VwdGlv
biBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IHVuc2ln
bmVkIGNoYXIqIGluaXREYXRhLCB1bnNpZ25lZCBpbml0RGF0YUxlbmd0aCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gYWRkS2V5
KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBrZXksIHVuc2ln
bmVkIGtleUxlbmd0aCwgY29uc3QgdW5zaWduZWQgY2hhciogaW5pdERhdGEsIHVuc2lnbmVkIGlu
aXREYXRhTGVuZ3RoLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gY2FuY2VsS2V5UmVx
dWVzdChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQpIE9W
RVJSSURFOwogI2VuZGlmCiAKLSAgICAvLyBXZWJTdHJlYW1UZXh0dXJlQ2xpZW50IG1ldGhvZHM6
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVGcmFtZSgpOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRVcGRhdGVNYXRyaXgoY29uc3QgZmxvYXQqKTsKLQogcHJvdGVjdGVkOgogICAgIFdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbCgpOwogcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0RGVsYXllZExvYWQo
KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0ZWQoKTsKICAgICB2b2lkIGxvYWRJbnRlcm5hbCgpOwor
ICAgIHZvaWQgZGVzdHJveVZpZGVvTGF5ZXIoKTsKIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlh
UGxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoV1RGOjpIYXNoU2V0
PFdURjo6U3RyaW5nPiYpOwpAQCAtMTg5LDE5ICsxNzIsMTYgQEAgcHJpdmF0ZToKICAgICBib29s
IGFjY2VsZXJhdGVkUmVuZGVyaW5nSW5Vc2UoKTsKICNlbmRpZgogCi0gICAgTXV0ZXggbV93ZWJN
ZWRpYVBsYXllck11dGV4OyAvLyBHdWFyZHMgdGhlIG1fd2ViTWVkaWFQbGF5ZXIKICAgICBXZWJD
b3JlOjpNZWRpYVBsYXllciogbV9tZWRpYVBsYXllcjsKICAgICBPd25QdHI8V2ViTWVkaWFQbGF5
ZXI+IG1fd2ViTWVkaWFQbGF5ZXI7Ci0gICAgV2ViVmlkZW9GcmFtZSogbV9jdXJyZW50VmlkZW9G
cmFtZTsKICAgICBXZWJDb3JlOjpLVVJMIG1fdXJsOwogICAgIGJvb2wgbV9kZWxheWluZ0xvYWQ7
CiAgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOwogICAgIFJlZlB0
cjxXZWJIZWxwZXJQbHVnaW5JbXBsPiBtX2hlbHBlclBsdWdpbjsKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCi0gICAgT3duUHRyPFdlYlZpZGVvTGF5ZXI+IG1fdmlkZW9MYXllcjsK
KyAgICBPd25QdHI8V2ViTGF5ZXI+IG1fdmlkZW9MYXllcjsKICAgICBib29sIG1fc3VwcG9ydHNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nOwogICAgIGJvb2wgbV9vcGFxdWU7Ci0gICAgV2ViVmlkZW9G
cmFtZVByb3ZpZGVyOjpDbGllbnQqIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50OwogI2VuZGlm
CiAgICAgc3RhdGljIGJvb2wgbV9pc0VuYWJsZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbFRlc3QuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NmExYTZlMjJhYjI5ODgzN2M5YjJjOGU1
ZDcxZjVhNmVjNmU2ZGJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsVGVzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjAgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
LSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsLmgiCi0KLSNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLW5hbWVzcGFjZSB7Ci0KLWNsYXNz
IEZha2VXZWJNZWRpYVBsYXllckNsaWVudEltcGwgOiBwdWJsaWMgV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxGYWtlV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgRmFrZVdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbCgpKTsgfQotCi1wcml2YXRlOgotICAgIEZha2VXZWJNZWRpYVBsYXll
ckNsaWVudEltcGwoKSB7IH0KLX07Ci0KLWNsYXNzIEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGll
bnQgOiBwdWJsaWMgV2ViVmlkZW9GcmFtZVByb3ZpZGVyOjpDbGllbnQgewotcHVibGljOgotICAg
IHN0YXRpYyBQYXNzT3duUHRyPEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ+IGNyZWF0ZShX
ZWJWaWRlb0ZyYW1lUHJvdmlkZXIqIHByb3ZpZGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KHByb3ZpZGVyKSk7Ci0gICAg
fQotCi0gICAgdmlydHVhbCB+RmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudCgpCi0gICAgewot
ICAgICAgICBpZiAobV9wcm92aWRlcikKLSAgICAgICAgICAgIG1fcHJvdmlkZXItPnNldFZpZGVv
RnJhbWVQcm92aWRlckNsaWVudCgwKTsKLSAgICB9Ci0KLSAgICAvLyBXZWJLaXQ6OldlYlZpZGVv
RnJhbWVQcm92aWRlcjo6Q2xpZW50IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlRnJhbWUoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTWF0cml4KGNv
bnN0IGZsb2F0KikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVc2luZ1Byb3ZpZGVyKCkKLSAg
ICB7Ci0gICAgICAgIG1fcHJvdmlkZXIgPSAwOwotICAgIH0KLQotICAgIFdlYlZpZGVvRnJhbWVQ
cm92aWRlciogcHJvdmlkZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3ZpZGVyOyB9Ci0KLXByaXZh
dGU6Ci0gICAgRmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudChXZWJWaWRlb0ZyYW1lUHJvdmlk
ZXIqIHByb3ZpZGVyKQotICAgICAgICA6IG1fcHJvdmlkZXIocHJvdmlkZXIpCi0gICAgewotICAg
ICAgICBtX3Byb3ZpZGVyLT5zZXRWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQodGhpcyk7Ci0gICAg
fQotCi0gICAgV2ViVmlkZW9GcmFtZVByb3ZpZGVyKiBtX3Byb3ZpZGVyOwotfTsKLQotVEVTVChX
ZWJNZWRpYVBsYXllckNsaWVudEltcGxUZXN0LCBJbml0aWFsTnVsbFZpZGVvQ2xpZW50KQotewot
ICAgIC8vIE5vIGV4cGxpY3QgY2hlY2tzIGluIHRoaXMgdGVzdDsganVzdCBtYWtlIHN1cmUgaXQg
ZG9lc24ndCBjcmFzaC4KLSAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsPiBwcm92
aWRlcihGYWtlV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUoKSk7Ci0gICAgcHJvdmlk
ZXItPnNldFZpZGVvRnJhbWVQcm92aWRlckNsaWVudCgwKTsKLX0KLQotVEVTVChXZWJNZWRpYVBs
YXllckNsaWVudEltcGxUZXN0LCBTZXRBbmRVbnNldFZpZGVvQ2xpZW50KQotewotICAgIE93blB0
cjxXZWJNZWRpYVBsYXllckNsaWVudEltcGw+IHByb3ZpZGVyKEZha2VXZWJNZWRpYVBsYXllckNs
aWVudEltcGw6OmNyZWF0ZSgpKTsKLSAgICBPd25QdHI8RmFrZVZpZGVvRnJhbWVQcm92aWRlckNs
aWVudD4gY2xpZW50KEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ6OmNyZWF0ZShwcm92aWRl
ci5nZXQoKSkpOwotCi0gICAgRVhQRUNUX0VRKGNsaWVudC0+cHJvdmlkZXIoKSwgcHJvdmlkZXIu
Z2V0KCkpOwotCi0gICAgcHJvdmlkZXItPnNldFZpZGVvRnJhbWVQcm92aWRlckNsaWVudCgwKTsK
LSAgICBBU1NFUlRfRkFMU0UoY2xpZW50LT5wcm92aWRlcigpKTsKLX0KLQotVEVTVChXZWJNZWRp
YVBsYXllckNsaWVudEltcGxUZXN0LCBEZXN0cm95UHJvdmlkZXIpCi17Ci0gICAgT3duUHRyPFdl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbD4gcHJvdmlkZXIoRmFrZVdlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbDo6Y3JlYXRlKCkpOwotICAgIE93blB0cjxGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50
PiBjbGllbnQoRmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudDo6Y3JlYXRlKHByb3ZpZGVyLmdl
dCgpKSk7Ci0KLSAgICBFWFBFQ1RfRVEoY2xpZW50LT5wcm92aWRlcigpLCBwcm92aWRlcik7Ci0g
ICAgcHJvdmlkZXIuY2xlYXIoKTsKLSAgICBBU1NFUlRfRkFMU0UoY2xpZW50LT5wcm92aWRlcigp
KTsKLX0KLQotVEVTVChXZWJNZWRpYVBsYXllckNsaWVudEltcGxUZXN0LCBTZXRNdWx0aXBsZVZp
ZGVvQ2xpZW50cykKLXsKLSAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsPiBwcm92
aWRlcihGYWtlV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUoKSk7Ci0gICAgT3duUHRy
PEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ+IGZpcnN0Q2xpZW50KEZha2VWaWRlb0ZyYW1l
UHJvdmlkZXJDbGllbnQ6OmNyZWF0ZShwcm92aWRlci5nZXQoKSkpOwotICAgIEVYUEVDVF9FUShm
aXJzdENsaWVudC0+cHJvdmlkZXIoKSwgcHJvdmlkZXIpOwotCi0gICAgT3duUHRyPEZha2VWaWRl
b0ZyYW1lUHJvdmlkZXJDbGllbnQ+IHNlY29uZENsaWVudChGYWtlVmlkZW9GcmFtZVByb3ZpZGVy
Q2xpZW50OjpjcmVhdGUocHJvdmlkZXIuZ2V0KCkpKTsKLSAgICBFWFBFQ1RfRkFMU0UoZmlyc3RD
bGllbnQtPnByb3ZpZGVyKCkpOwotICAgIEVYUEVDVF9FUShzZWNvbmRDbGllbnQtPnByb3ZpZGVy
KCksIHByb3ZpZGVyKTsKLQotICAgIHByb3ZpZGVyLmNsZWFyKCk7Ci0gICAgQVNTRVJUX0ZBTFNF
KGZpcnN0Q2xpZW50LT5wcm92aWRlcigpKTsKLSAgICBBU1NFUlRfRkFMU0Uoc2Vjb25kQ2xpZW50
LT5wcm92aWRlcigpKTsKLX0KLQotfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194137</attachid>
            <date>2013-03-20 15:42:24 -0700</date>
            <delta_ts>2013-03-20 20:27:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112483-20130320183813.patch</filename>
            <type>text/plain</type>
            <size>37002</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhMDY3MGNjOWFiMmYx
YmI4ZmE2MzM5NGQ2NWZhMjdmOGFhODM1Y2MxLi5iMGNkYmU0NzMwMmYwYjM4NzZiOWFkYzdmOGZi
MDYzNmNlMGRhNDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMy0yMCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbd2lwXSBbY2hy
b21pdW1dIFJlbW92ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBh
bmQgV2ViVmlkZW9MYXllciBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS5neXBpOgorICAgICAgICAqIGNocm9taXVtL3B1
YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaDoKKyAgICAgICAgKFdlYkxheWVyKToKKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IGNocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9MYXllci5oOiBSZW1vdmVkLgorCiAyMDEzLTAz
LTIwICBIYXJhbGQgQWx2ZXN0cmFuZCAgPGh0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFJlbW92
ZSBMb2NhbC9SZW1vdGUgYW5kIFJUQ1N0YXRzRWxlbWVudCBmcm9tIFdlYlJUQ1N0YXRzIEFQSQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlMTA2MmQwOTllYWFjYzRlMTA1Nzc1Yjk4NmY5
NTQ3ZWFjZTNmZTc2Li5hNTUyOGUyY2ZlZjE0N2M3NThmMjc1MzIxMGU1YTVjNjc4MzhhM2EyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAzLTIwICBE
YW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFt3aXBdIFtjaHJv
bWl1bV0gUmVtb3ZlIHRoZSBXZWJWaWRlb0ZyYW1lLCBXZWJWaWRlb0ZyYW1lUHJvdmlkZXIsIGFu
ZCBXZWJWaWRlb0xheWVyIGNsYXNzZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTI0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogV2ViS2l0Lmd5cGk6Cisg
ICAgICAgICogcHVibGljL1dlYk1lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYVBsYXllckNs
aWVudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50Lmg6IFJlbW92
ZWQuCisgICAgICAgICogcHVibGljL1dlYlZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp+V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpyZWFkeVN0YXRlQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cmVwYWludCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c2V0T3BhcXVlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzZXRXZWJMYXllcik6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudElt
cGw6OmxvYWRSZXF1ZXN0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVu
dEltcGw6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNs
aWVudEltcGw6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsOjphY2NlbGVyYXRlZFJlbmRlcmluZ0luVXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0c1R5cGUpOgorICAgICAgICAqIHNyYy9XZWJNZWRp
YVBsYXllckNsaWVudEltcGwuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJNZWRp
YVBsYXllckNsaWVudEltcGwpOgorICAgICAgICAqIHRlc3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50
SW1wbFRlc3QuY3BwOiBSZW1vdmVkLgorCiAyMDEzLTAzLTIwICBZdWZlbmcgU2hlbiAgPG1pbGV0
dXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJl
RG91YmxlVGFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaSBiL1Nv
dXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCmluZGV4IDhmNzA4MGUwYjBjZGI1YzNjNWVkOWJl
NmZkOGViNjBjNjRkMDE0OTEuLjUxM2Q3OTczYTk1Y2YxZTdjYmYxYzJhNTc3MmI3OWEwZDUyZTk2
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisrKyBiL1NvdXJj
ZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCkBAIC0xNDYsOSArMTQ2LDYgQEAKICAgICAgICAgICAg
ICdjaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oJywKICAgICAgICAgICAgICdjaHJvbWl1
bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2UuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGlj
L1dlYlZlY3Rvci5oJywKLSAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9MYXll
ci5oJywKLSAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oJywKLSAg
ICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZVByb3ZpZGVyLmgnLAogICAg
ICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJXb3JrZXJSdW5Mb29wLmgnLAogICAgICAgICAg
ICAgJ2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBwb3J0LmgnLAogICAgICAg
ICAgICAgJ2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmgnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9y
dC5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9y
dC5oCmluZGV4IGQ2ZDU4YmI4YTdmODllNGIzMTk3NTBiZTFmMzI3NjhkNzIxYzVmZmQuLjZiNjBh
OWU5MWZmNGViOGQ5ZjAyMzcxM2E2MmZiMjE3MWEzMDlhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaAorKysgYi9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0LmgKQEAgLTUw
LDggKzUwLDYgQEAgY2xhc3MgV2ViU29saWRDb2xvckxheWVyOwogY2xhc3MgV2ViVGhyZWFkOwog
Y2xhc3MgV2ViVHJhbnNmb3JtQW5pbWF0aW9uQ3VydmU7CiBjbGFzcyBXZWJUcmFuc2Zvcm1PcGVy
YXRpb25zOwotY2xhc3MgV2ViVmlkZW9GcmFtZVByb3ZpZGVyOwotY2xhc3MgV2ViVmlkZW9MYXll
cjsKIAogY2xhc3MgV2ViQ29tcG9zaXRvclN1cHBvcnQgewogcHVibGljOgpAQCAtODMsOCArODEs
NiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFdlYlNvbGlkQ29sb3JMYXllciogY3JlYXRlU29s
aWRDb2xvckxheWVyKCkgeyByZXR1cm4gMDsgfQogCi0gICAgdmlydHVhbCBXZWJWaWRlb0xheWVy
KiBjcmVhdGVWaWRlb0xheWVyKFdlYlZpZGVvRnJhbWVQcm92aWRlciopIHsgcmV0dXJuIDA7IH0K
LQogICAgIHZpcnR1YWwgV2ViU2Nyb2xsYmFyTGF5ZXIqIGNyZWF0ZVNjcm9sbGJhckxheWVyKFdl
YlNjcm9sbGJhciosIFdlYlNjcm9sbGJhclRoZW1lUGFpbnRlciwgV2ViU2Nyb2xsYmFyVGhlbWVH
ZW9tZXRyeSopIHsgcmV0dXJuIDA7IH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYkxheWVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYkxheWVyLmgKaW5kZXggMDEzNGMzMGM2ZGI3NjkyODVmOTZmNjgyNmE2ZDFhMjgwOTRj
NTFhMi4uNTJjODE2YTE5N2QyYjMwMjk1MWYwNzIyZjRkMzAzZTIzY2Q4NGYzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllci5oCisrKyBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaApAQCAtMjAyLDYgKzIwMiw5IEBA
IHB1YmxpYzoKICAgICAvLyBGb3JjZXMgdGhpcyBsYXllciB0byB1c2UgYSByZW5kZXIgc3VyZmFj
ZS4gVGhlcmUgaXMgbm8gYmVuZWZpdCBpbiBkb2luZwogICAgIC8vIHNvLCBidXQgdGhpcyBpcyB0
byBmYWNpbGl0YXRlIGJlbmNobWFya3MgYW5kIHRlc3RzLgogICAgIHZpcnR1YWwgdm9pZCBzZXRG
b3JjZVJlbmRlclN1cmZhY2UoYm9vbCkgPSAwOworCisgICAgLy8gVHJ1ZSBpZiB0aGUgbGF5ZXIg
aXMgbm90IHBhcnQgb2YgYSB0cmVlIGF0dGFjaGVkIHRvIGEgV2ViTGF5ZXJUcmVlVmlldy4KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNPcnBoYW4oKSBjb25zdCA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
VmlkZW9GcmFtZS5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0Zy
YW1lLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjZjNlN2NlYjAxM2ZhN2NmZjhj
NmQ3NDdhYmU1NjMxZThkNGQwMzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1l
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJWaWRlb0ZyYW1lX2gK
LSNkZWZpbmUgV2ViVmlkZW9GcmFtZV9oCi0KLSNpbmNsdWRlICJXZWJSZWN0LmgiCi0jaW5jbHVk
ZSAiV2ViU2l6ZS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gQSBiYXNlIGNsYXNzIGZv
ciB0aGUgY29udGFpbmVyIHdoaWNoIGhvbGRzIGEgbWVkaWE6OlZpZGVvRnJhbWUuCi1jbGFzcyBX
ZWJWaWRlb0ZyYW1lIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJWaWRlb0ZyYW1lKCkgeyB9
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWVQcm92aWRlci5oIGIvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ1NTJlODAyMGM4NGFkNmU4MzljZmNkMDAwNTE4
NWY3NmUwOGVjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWVQcm92aWRlci5o
CisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViVmlkZW9GcmFtZVByb3Zp
ZGVyX2gKLSNkZWZpbmUgV2ViVmlkZW9GcmFtZVByb3ZpZGVyX2gKLQotI2luY2x1ZGUgIldlYkNv
bW1vbi5oIgotI2luY2x1ZGUgIldlYlZpZGVvRnJhbWUuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLS8vIFRocmVhZGluZyBub3RlczogVGhpcyBjbGFzcyBtYXkgYmUgdXNlZCBpbiBhIG11bHRp
IHRocmVhZGVkIG1hbm5lci4gU3BlY2lmaWNhbGx5LCB0aGUgaW1wbGVtZW50YXRpb24KLS8vIG1h
eSBjYWxsIGdldEN1cnJlbnRGcmFtZSgpIC8gcHV0Q3VycmVudEZyYW1lKCkgZnJvbSBhIG5vbi1t
YWluIHRocmVhZC4gSWYgc28sIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUKLS8vIGZvciBtYWtp
bmcgc3VyZSBDbGllbnQ6OmRpZFJlY2VpdmVGcmFtZSBhbmQgQ2xpZW50OjpkaWRVcGRhdGVNYXRy
aXggYXJlIG9ubHkgY2FsbGVkIGZyb20gdGhpcyB0aHJlYWQuCi1jbGFzcyBXZWJWaWRlb0ZyYW1l
UHJvdmlkZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgfldlYlZpZGVvRnJhbWVQcm92aWRlcigp
IHsgfQotCi0gICAgY2xhc3MgQ2xpZW50IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIC8vIFByb3Zp
ZGVyIHdpbGwgY2FsbCB0aGlzIG1ldGhvZCB0byB0ZWxsIHRoZSBjbGllbnQgdG8gc3RvcCB1c2lu
ZyBpdC4KLSAgICAgICAgLy8gc3RvcFVzaW5nUHJvdmlkZXIoKSBtYXkgYmUgY2FsbGVkIGZyb20g
YW55IHRocmVhZC4gVGhlIGNsaWVudCBzaG91bGQKLSAgICAgICAgLy8gYmxvY2sgdW50aWwgaXQg
aGFzIHB1dEN1cnJlbnRGcmFtZSBhbnkgb3V0c3RhbmRpbmcgZnJhbWVzLgotICAgICAgICB2aXJ0
dWFsIHZvaWQgc3RvcFVzaW5nUHJvdmlkZXIoKSA9IDA7Ci0KLSAgICAgICAgLy8gTm90aWZpZXMg
dGhlIHByb3ZpZGVyJ3MgY2xpZW50IHRoYXQgYSBjYWxsIHRvIGdldEN1cnJlbnRGcmFtZSgpIHdp
bGwgcmV0dXJuIG5ldyBkYXRhLgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUZyYW1l
KCkgPSAwOwotCi0gICAgICAgIC8vIE5vdGlmaWVzIHRoZSBwcm92aWRlcidzIGNsaWVudCBvZiBh
IG5ldyBVViB0cmFuc2Zvcm0gbWF0cml4IHRvIGJlIHVzZWQgd2hlbiBkcmF3aW5nIGZyYW1lcwot
ICAgICAgICAvLyBvZiB0eXBlIFdlYlZpZGVvRnJhbWU6OkZvcm1hdFN0cmVhbVRleHR1cmUuCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVNYXRyaXgoY29uc3QgZmxvYXQqKSA9IDA7Ci0g
ICAgfTsKLQotICAgIC8vIE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLCBidXQgdGhlcmUg
bXVzdCBiZSBzb21lIGV4dGVybmFsIGd1YXJhbnRlZQotICAgIC8vIHRoYXQgdGhlIHByb3ZpZGVy
IGlzIG5vdCBkZXN0cm95ZWQgYmVmb3JlIHRoaXMgY2FsbCByZXR1cm5zLgotICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoQ2xpZW50KikgPSAwOwotCi0gICAgLy8g
VGhpcyBmdW5jdGlvbiBwbGFjZXMgYSBsb2NrIG9uIHRoZSBjdXJyZW50IGZyYW1lIGFuZCByZXR1
cm5zIGEgcG9pbnRlciB0byBpdC4KLSAgICAvLyBDYWxscyB0byB0aGlzIG1ldGhvZCBzaG91bGQg
YWx3YXlzIGJlIGZvbGxvd2VkIHdpdGggYSBjYWxsIHRvIHB1dEN1cnJlbnRGcmFtZSgpLgotICAg
IC8vIFRoZSBvd25lcnNoaXAgb2YgdGhlIG9iamVjdCBpcyBub3QgdHJhbnNmZXJyZWQgdG8gdGhl
IGNhbGxlciBhbmQKLSAgICAvLyB0aGUgY2FsbGVyIHNob3VsZCBub3QgZnJlZSB0aGUgcmV0dXJu
ZWQgb2JqZWN0LiBPbmx5IHRoZSBjdXJyZW50IHByb3ZpZGVyCi0gICAgLy8gY2xpZW50IHNob3Vs
ZCBjYWxsIHRoaXMgZnVuY3Rpb24uCi0gICAgdmlydHVhbCBXZWJWaWRlb0ZyYW1lKiBnZXRDdXJy
ZW50RnJhbWUoKSA9IDA7Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiByZWxlYXNlcyB0aGUgbG9jayBv
biB0aGUgdmlkZW8gZnJhbWUgaW4gY2hyb21pdW0uIEl0IHNob3VsZAotICAgIC8vIGFsd2F5cyBi
ZSBjYWxsZWQgYWZ0ZXIgZ2V0Q3VycmVudEZyYW1lKCkuIEZyYW1lcyBwYXNzZWQgaW50byB0aGlz
IG1ldGhvZAotICAgIC8vIHNob3VsZCBubyBsb25nZXIgYmUgcmVmZXJlbmNlZCBhZnRlciB0aGUg
Y2FsbCBpcyBtYWRlLiBPbmx5IHRoZSBjdXJyZW50Ci0gICAgLy8gcHJvdmlkZXIgY2xpZW50IHNo
b3VsZCBjYWxsIHRoaXMgZnVuY3Rpb24uCi0gICAgdmlydHVhbCB2b2lkIHB1dEN1cnJlbnRGcmFt
ZShXZWJWaWRlb0ZyYW1lKikgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRl
b0xheWVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvTGF5ZXIu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI3ZDY5ZTEwYTBkZmI5NzhjOTAwMDRl
ZmZlNzI4Y2ExNjY5YTNiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvTGF5ZXIuaAor
KysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlZpZGVvTGF5
ZXJfaAotI2RlZmluZSBXZWJWaWRlb0xheWVyX2gKLQotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgot
I2luY2x1ZGUgIldlYkxheWVyLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJW
aWRlb0ZyYW1lUHJvdmlkZXI7Ci0KLWNsYXNzIFdlYlZpZGVvTGF5ZXIgewotcHVibGljOgotICAg
IHZpcnR1YWwgfldlYlZpZGVvTGF5ZXIoKSB7IH0KLQotICAgIHZpcnR1YWwgV2ViTGF5ZXIqIGxh
eWVyKCkgPSAwOwotCi0gICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgbGF5ZXIgaXMgYWN0aXZl
bHkgcmVuZGVyaW5nIChlLmcuIGN1cnJlbnRseSBhdHRhY2hlZCB0byBhIFdlYkxheWVyVHJlZVZp
ZXcpLgotICAgIHZpcnR1YWwgYm9vbCBhY3RpdmUoKSBjb25zdCA9IDA7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYlZpZGVvTGF5ZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCmluZGV4IDFhMjBhOGRjMjg2OGEzZjAyODQ4MWRiOWZjOGEwMTI1YTcxZTE0
MmUuLjE5ODhkYTFjNjkyYzg3YjRlNGJmMGM5ZTA0ODg2NWNiMGNjYWNmYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXAKQEAgLTI2MSw3ICsyNjEsNiBAQAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViU3RvcmFnZVF1b3RhVHlwZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlN1
cnJvdW5kaW5nVGV4dC5oJywKLSAgICAgICAgICAgICAgICAncHVibGljL1dlYlN0cmVhbVRleHR1
cmVDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJUZXh0QWZmaW5pdHkuaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJUZXh0Q2FzZVNlbnNpdGl2aXR5LmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbi5oJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXBpCmluZGV4IDg5YzgyNTkzZmNhYTEwODAwMWYzZjNhNjk0NWZk
M2QzOWRkMGYyOTIuLjZlNGE0ZDg2MDA3NWI1NGU0YjU0NzY3NzAxZWRhZDQ5Y2FjYjE0NjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpAQCAtMTE4LDcgKzExOCw2IEBACiAgICAgICAg
ICAgICAndGVzdHMvV2ViSW1hZ2VUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViSW5w
dXRFdmVudENvbnZlcnNpb25UZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViSW5wdXRF
dmVudEZhY3RvcnlUZXN0TWFjLm1tJywKLSAgICAgICAgICAgICd0ZXN0cy9XZWJNZWRpYVBsYXll
ckNsaWVudEltcGxUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViUGFnZU5ld1Nlcmlh
bGl6ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViUGFnZVNlcmlhbGl6ZXJUZXN0
LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViUGx1Z2luQ29udGFpbmVyVGVzdC5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKaW5kZXgg
YWQ1NmMxYmNiYTFjMzFhYzJlMWJjMjc1ODBhYTFlNjY2MzdhNmI5MC4uZjgyY2QwNDBiNWQzZjg0
NjM2NDI1ZmFhMWM5NWM4Y2YzYmY1ODQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCkBAIC0zMywxNiArMzMsMTUgQEAKIAogI2luY2x1ZGUg
Ii4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDYW52YXMuaCIKICNpbmNsdWRl
ICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyaW5nLmgiCi0jaW5jbHVk
ZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaCIKICNp
bmNsdWRlICJXZWJUaW1lUmFuZ2UuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdl
YkF1ZGlvU291cmNlUHJvdmlkZXI7CiBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50
OworY2xhc3MgV2ViTGF5ZXI7CiBjbGFzcyBXZWJNZWRpYVBsYXllckNsaWVudDsKIGNsYXNzIFdl
Yk1lZGlhU291cmNlOwotY2xhc3MgV2ViU3RyZWFtVGV4dHVyZUNsaWVudDsKIGNsYXNzIFdlYlN0
cmluZzsKIGNsYXNzIFdlYlVSTDsKIHN0cnVjdCBXZWJSZWN0OwpAQCAtMTU1LDIzICsxNTQsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBhdWRpb0RlY29kZWRCeXRlQ291bnQoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCB1bnNpZ25lZCB2aWRlb0RlY29kZWRCeXRlQ291bnQoKSBj
b25zdCA9IDA7CiAKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBwb2ludGVyIHRvIGEg
V2ViVmlkZW9GcmFtZSwgd2hpY2ggaXMKLSAgICAvLyBhIFdlYktpdCB3cmFwcGVyIGZvciBhIHZp
ZGVvIGZyYW1lIGluIGNocm9taXVtLiBUaGlzIHBsYWNlcyBhIGxvY2sKLSAgICAvLyBvbiB0aGUg
ZnJhbWUgaW4gY2hyb21pdW0sIGFuZCBjYWxscyB0byB0aGlzIG1ldGhvZCBzaG91bGQgYWx3YXlz
IGJlCi0gICAgLy8gZm9sbG93ZWQgd2l0aCBhIGNhbGwgdG8gcHV0Q3VycmVudEZyYW1lKCkuIFRo
ZSBvd25lcnNoaXAgb2YgdGhpcyBvYmplY3QKLSAgICAvLyBpcyBub3QgdHJhbnNmZXJyZWQgdG8g
dGhlIGNhbGxlciwgYW5kIHRoZSBjYWxsZXIgc2hvdWxkIG5vdCBmcmVlIHRoZQotICAgIC8vIHJl
dHVybmVkIG9iamVjdC4KLSAgICB2aXJ0dWFsIFdlYlZpZGVvRnJhbWUqIGdldEN1cnJlbnRGcmFt
ZSgpIHsgcmV0dXJuIDA7IH0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIHRoZSBsb2Nr
IG9uIHRoZSBjdXJyZW50IHZpZGVvIGZyYW1lIGluIENocm9taXVtLgotICAgIC8vIEl0IHNob3Vs
ZCBhbHdheXMgYmUgY2FsbGVkIGFmdGVyIGdldEN1cnJlbnRGcmFtZSgpLiBGcmFtZSBwYXNzZWQg
dG8gdGhpcwotICAgIC8vIG1ldGhvZCBzaG91bGQgbm8gbG9uZ2VyIGJlIHJlZmVyZW5jZWQgYWZ0
ZXIgdGhlIGNhbGwgaXMgbWFkZS4KLSAgICB2aXJ0dWFsIHZvaWQgcHV0Q3VycmVudEZyYW1lKFdl
YlZpZGVvRnJhbWUqKSB7IH0KLQogICAgIC8vIERvIGEgR1BVLUdQVSB0ZXh0dXJlcyBjb3B5IGlm
IHBvc3NpYmxlLgogICAgIHZpcnR1YWwgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRl
eHR1cmUoV2ViR3JhcGhpY3NDb250ZXh0M0QqLCB1bnNpZ25lZCB0ZXh0dXJlLCB1bnNpZ25lZCBs
ZXZlbCwgdW5zaWduZWQgaW50ZXJuYWxGb3JtYXQsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9v
bCBmbGlwWSkgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTdHJlYW1U
ZXh0dXJlQ2xpZW50KFdlYlN0cmVhbVRleHR1cmVDbGllbnQqKSB7IH0KLQogICAgIHZpcnR1YWwg
V2ViQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIHsgcmV0dXJuIDA7
IH0KIAogICAgIC8vIFJldHVybnMgd2hldGhlciBrZXlTeXN0ZW0gaXMgc3VwcG9ydGVkLiBJZiB0
cnVlLCB0aGUgcmVzdWx0IHdpbGwgYmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oCmluZGV4IDA4OTkzN2MyNGFlYjZjNTViOTM2
YzAyOGZmZDM3ZDJhNTg2YzhlODMuLmU0Yjc0YzFkYTUxMWM5OGUxMDFlZTdhNDYyYzRmNjdmZTBk
ZjQyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlh
UGxheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVk
aWFQbGF5ZXJDbGllbnQuaApAQCAtODEsNiArODEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBX
ZWJQbHVnaW4qIGNyZWF0ZUhlbHBlclBsdWdpbihjb25zdCBXZWJTdHJpbmcmIHBsdWdpblR5cGUs
IFdlYkZyYW1lKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZUhlbHBlclBsdWdpbigpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNldFdlYkxheWVyKFdlYkxheWVyKikgPSAwOwogcHJvdGVjdGVk
OgogICAgIH5XZWJNZWRpYVBsYXllckNsaWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0cmVhbVRleHR1cmVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0cmVhbVRleHR1cmVDbGllbnQuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODEwMDJmYjI2YWQ3OTNkYTZkNmE0Njg4NjBjMGYwYWRl
ZTczNGU2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmgKKysr
IC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJTdHJlYW1UZXh0dXJlQ2xpZW50
X2gKLSNkZWZpbmUgV2ViU3RyZWFtVGV4dHVyZUNsaWVudF9oCi0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1jbGFzcyBXZWJTdHJlYW1UZXh0dXJlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZUZyYW1lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVN
YXRyaXgoY29uc3QgZmxvYXQqKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5XZWJT
dHJlYW1UZXh0dXJlQ2xpZW50KCkgeyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWRl
b0ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0OGE3YTQ0NDBiZmQyNmJiZDQ1NTM5OWMy
MWY3MTU4MWRjNjYyOWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oCisrKyAv
ZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICIuLi8uLi8uLi9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKaW5kZXgg
YWFiNzRlMjJmOGU0ZmI2MDUyNjUxZDFmOTAwOGJkMGM3NzE3OTZkZC4uMWM3N2ViYTQ3MTNkOWI4
YTE3MDRlYjlhMTU3NmNmODYxOWI4MDFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCkBAIC0zOSw3ICszOSw2
IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYlNpemUuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlVSTC5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJW
aWRlb0xheWVyLmg+CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCkBAIC05NCwyMSArOTMsNiBAQCBXZWJNZWRpYVBs
YXllciogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjptZWRpYVBsYXllcigpIGNvbnN0CiAKIFdl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6fldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCgpCiB7Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmIChtX3ZpZGVvRnJhbWVQcm92
aWRlckNsaWVudCkKLSAgICAgICAgbV92aWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQtPnN0b3BVc2lu
Z1Byb3ZpZGVyKCk7Ci0gICAgLy8gTm8gbmVlZCBmb3IgYSBsb2NrIGhlcmUsIGFzIGdldEN1cnJl
bnRGcmFtZS9wdXRDdXJyZW50RnJhbWUgY2FuJ3QgYmUKLSAgICAvLyBjYWxsZWQgbm93IHRoYXQg
dGhlIGNsaWVudCBpcyBubyBsb25nZXIgdXNpbmcgdGhpcyBwcm92aWRlci4gQWxzbywgbG9hZCgp
Ci0gICAgLy8gYW5kIHRoaXMgZGVzdHJ1Y3RvciBhcmUgY2FsbGVkIGZyb20gdGhlIHNhbWUgdGhy
ZWFkLgotICAgIGlmIChtX3dlYk1lZGlhUGxheWVyKQotICAgICAgICBtX3dlYk1lZGlhUGxheWVy
LT5zZXRTdHJlYW1UZXh0dXJlQ2xpZW50KDApOwotI2VuZGlmCi0KLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKG1fdmlkZW9MYXllcikKLSAgICAgICAgR3JhcGhpY3NM
YXllckNocm9taXVtOjp1bnJlZ2lzdGVyQ29udGVudHNMYXllcihtX3ZpZGVvTGF5ZXItPmxheWVy
KCkpOwotI2VuZGlmCi0KICAgICAvLyBFeHBsaWNpdGx5IGRlc3Ryb3kgdGhlIFdlYk1lZGlhUGxh
eWVyIHRvIGFsbG93IHZlcmlmaWNhdGlvbiBvZiB0ZWFyIGRvd24uCiAgICAgbV93ZWJNZWRpYVBs
YXllci5jbGVhcigpOwogCkBAIC0xMzAsMTQgKzExNCw2IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjpyZWFkeVN0YXRlQ2hhbmdlZCgpCiB7CiAgICAgQVNTRVJUKG1fbWVkaWFQbGF5
ZXIpOwogICAgIG1fbWVkaWFQbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmIChoYXNWaWRlbygpICYmIHN1cHBvcnRzQWNj
ZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiAhbV92aWRlb0xheWVyKSB7Ci0gICAgICAgIG1fdmlkZW9M
YXllciA9IGFkb3B0UHRyKFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCkt
PmNyZWF0ZVZpZGVvTGF5ZXIodGhpcykpOwotCi0gICAgICAgIG1fdmlkZW9MYXllci0+bGF5ZXIo
KS0+c2V0T3BhcXVlKG1fb3BhcXVlKTsKLSAgICAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjpy
ZWdpc3RlckNvbnRlbnRzTGF5ZXIobV92aWRlb0xheWVyLT5sYXllcigpKTsKLSAgICB9Ci0jZW5k
aWYKIH0KIAogdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnZvbHVtZUNoYW5nZWQoZmxv
YXQgbmV3Vm9sdW1lKQpAQCAtMTYzLDcgKzEzOSw3IEBAIHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsOjpyZXBhaW50KCkKICAgICBBU1NFUlQobV9tZWRpYVBsYXllcik7CiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX3ZpZGVvTGF5ZXIgJiYgc3VwcG9ydHNB
Y2NlbGVyYXRlZFJlbmRlcmluZygpKQotICAgICAgICBtX3ZpZGVvTGF5ZXItPmxheWVyKCktPmlu
dmFsaWRhdGUoKTsKKyAgICAgICAgbV92aWRlb0xheWVyLT5pbnZhbGlkYXRlKCk7CiAjZW5kaWYK
ICAgICBtX21lZGlhUGxheWVyLT5yZXBhaW50KCk7CiB9CkBAIC0xOTEsNyArMTY3LDcgQEAgdm9p
ZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnNldE9wYXF1ZShib29sIG9wYXF1ZSkKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbV9vcGFxdWUgPSBvcGFxdWU7CiAgICAg
aWYgKG1fdmlkZW9MYXllcikKLSAgICAgICAgbV92aWRlb0xheWVyLT5sYXllcigpLT5zZXRPcGFx
dWUobV9vcGFxdWUpOworICAgICAgICBtX3ZpZGVvTGF5ZXItPnNldE9wYXF1ZShtX29wYXF1ZSk7
CiAjZW5kaWYKIH0KIApAQCAtMzA0LDYgKzI4MCwxNyBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6ZGlzYWJsZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKQogICAgIG1fc3VwcG9ydHNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nID0gZmFsc2U7CiB9CiAKK3ZvaWQgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjpzZXRXZWJMYXllcihXZWJMYXllciogbGF5ZXIpCit7CisgICAgaWYgKG1fdmlk
ZW9MYXllcikKKyAgICAgICAgR3JhcGhpY3NMYXllckNocm9taXVtOjp1bnJlZ2lzdGVyQ29udGVu
dHNMYXllcihtX3ZpZGVvTGF5ZXIpOworICAgIG1fdmlkZW9MYXllciA9IGxheWVyOworICAgIGlm
IChtX3ZpZGVvTGF5ZXIpIHsKKyAgICAgICAgbV92aWRlb0xheWVyLT5zZXRPcGFxdWUobV9vcGFx
dWUpOworICAgICAgICBHcmFwaGljc0xheWVyQ2hyb21pdW06OnJlZ2lzdGVyQ29udGVudHNMYXll
cihtX3ZpZGVvTGF5ZXIpOworICAgIH0KK30KKwogLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAog
dm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCkBA
IC0zMjYsNyArMzEzLDYgQEAgdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWQoY29u
c3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQdHI8V2ViQ29yZTo6TWVkaWEKIAogdm9pZCBXZWJNZWRp
YVBsYXllckNsaWVudEltcGw6OmxvYWRSZXF1ZXN0ZWQoKQogewotICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX3dlYk1lZGlhUGxheWVyTXV0ZXgpOwogICAgIGlmIChtX3ByZWxvYWQgPT0gTWVkaWFQ
bGF5ZXI6Ok5vbmUpIHsKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgICAgICBtX2F1ZGlvU291
cmNlUHJvdmlkZXIud3JhcCgwKTsgLy8gQ2xlYXIgd2VhayByZWZlcmVuY2UgdG8gbV93ZWJNZWRp
YVBsYXllcidzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIuCkBAIC0zNjgsMTMgKzM1NCwxMSBAQCB2
b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y2FuY2VsTG9hZCgpCiAgICAgICAgIG1fd2Vi
TWVkaWFQbGF5ZXItPmNhbmNlbExvYWQoKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKIFdlYkxheWVyKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBsYXRmb3JtTGF5
ZXIoKSBjb25zdAogewogICAgIEFTU0VSVChtX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Zyk7Ci0gICAgcmV0dXJuIG1fdmlkZW9MYXllciA/IG1fdmlkZW9MYXllci0+bGF5ZXIoKSA6IDA7
CisgICAgcmV0dXJuIG1fdmlkZW9MYXllcjsKIH0KLSNlbmRpZgogCiBQbGF0Zm9ybU1lZGlhIFdl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0CiB7CkBAIC02MTIs
MTIgKzU5NiwxMCBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c2V0U2l6ZShjb25z
dCBJbnRTaXplJiBzaXplKQogCiB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBJZiB3ZSBhcmUgdXNpbmcgR1BVIHRv
IHJlbmRlciB2aWRlbywgaWdub3JlIHJlcXVlc3RzIHRvIHBhaW50IGZyYW1lcyBpbnRvCi0gICAg
Ly8gY2FudmFzIGJlY2F1c2UgaXQgd2lsbCBiZSB0YWtlbiBjYXJlIG9mIGJ5IFdlYlZpZGVvTGF5
ZXIuCisgICAgLy8gY2FudmFzIGJlY2F1c2UgaXQgd2lsbCBiZSB0YWtlbiBjYXJlIG9mIGJ5IHRo
ZSBWaWRlb0xheWVyLgogICAgIGlmIChhY2NlbGVyYXRlZFJlbmRlcmluZ0luVXNlKCkpCiAgICAg
ICAgIHJldHVybjsKLSNlbmRpZgogICAgIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNvbnRl
eHQsIHJlY3QpOwogfQogCkBAIC03MTksNyArNzAxLDYgQEAgQXVkaW9Tb3VyY2VQcm92aWRlciog
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjphdWRpb1NvdXJjZVByb3ZpZGVyKCkKIH0KICNlbmRp
ZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogewogICAg
IHJldHVybiBtX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsKQEAgLTcyNyw0NCArNzA4
LDkgQEAgYm9vbCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1cHBvcnRzQWNjZWxlcmF0ZWRS
ZW5kZXJpbmcoKSBjb25zdAogCiBib29sIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6YWNjZWxl
cmF0ZWRSZW5kZXJpbmdJblVzZSgpCiB7Ci0gICAgcmV0dXJuIG1fdmlkZW9MYXllciAmJiBtX3Zp
ZGVvTGF5ZXItPmFjdGl2ZSgpOworICAgIHJldHVybiBtX3ZpZGVvTGF5ZXIgJiYgIW1fdmlkZW9M
YXllci0+aXNPcnBoYW4oKTsKIH0KIAotdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnNl
dFZpZGVvRnJhbWVQcm92aWRlckNsaWVudChXZWJWaWRlb0ZyYW1lUHJvdmlkZXI6OkNsaWVudCog
Y2xpZW50KQotewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dlYk1lZGlhUGxheWVyTXV0ZXgp
OwotICAgIGlmIChtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudCkKLSAgICAgICAgbV92aWRlb0Zy
YW1lUHJvdmlkZXJDbGllbnQtPnN0b3BVc2luZ1Byb3ZpZGVyKCk7Ci0gICAgbV92aWRlb0ZyYW1l
UHJvdmlkZXJDbGllbnQgPSBjbGllbnQ7Ci0gICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpCi0gICAg
ICAgIG1fd2ViTWVkaWFQbGF5ZXItPnNldFN0cmVhbVRleHR1cmVDbGllbnQoY2xpZW50ID8gdGhp
cyA6IDApOwotfQotCi1XZWJWaWRlb0ZyYW1lKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Omdl
dEN1cnJlbnRGcmFtZSgpCi17Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb25seSBi
eSB0aGUgY2xpZW50LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dlYk1lZGlhUGxheWVyTXV0
ZXgpOwotICAgIEFTU0VSVCghbV9jdXJyZW50VmlkZW9GcmFtZSk7Ci0gICAgQVNTRVJUKG1fdmlk
ZW9GcmFtZVByb3ZpZGVyQ2xpZW50KTsKLSAgICBpZiAobV93ZWJNZWRpYVBsYXllcikKLSAgICAg
ICAgbV9jdXJyZW50VmlkZW9GcmFtZSA9IG1fd2ViTWVkaWFQbGF5ZXItPmdldEN1cnJlbnRGcmFt
ZSgpOwotICAgIHJldHVybiBtX2N1cnJlbnRWaWRlb0ZyYW1lOwotfQotCi12b2lkIFdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbDo6cHV0Q3VycmVudEZyYW1lKFdlYlZpZGVvRnJhbWUqIHZpZGVvRnJh
bWUpCi17Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb25seSBieSB0aGUgY2xpZW50
LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dlYk1lZGlhUGxheWVyTXV0ZXgpOwotICAgIEFT
U0VSVCh2aWRlb0ZyYW1lID09IG1fY3VycmVudFZpZGVvRnJhbWUpOwotICAgIEFTU0VSVChtX3Zp
ZGVvRnJhbWVQcm92aWRlckNsaWVudCk7Ci0gICAgaWYgKCF2aWRlb0ZyYW1lKQotICAgICAgICBy
ZXR1cm47Ci0gICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpCi0gICAgICAgIG1fd2ViTWVkaWFQbGF5
ZXItPnB1dEN1cnJlbnRGcmFtZSh2aWRlb0ZyYW1lKTsKLSAgICBtX2N1cnJlbnRWaWRlb0ZyYW1l
ID0gMDsKLX0KLSNlbmRpZgotCiBQYXNzT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFj
ZT4gV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikK
IHsKICAgICBPd25QdHI8V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsPiBjbGllbnQgPSBhZG9wdFB0
cihuZXcgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKCkpOwpAQCAtODI5LDI4ICs3NzUsMTIgQEAg
dm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN0YXJ0RGVsYXllZExvYWQoKQogICAgIGxv
YWRJbnRlcm5hbCgpOwogfQogCi12b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6ZGlkUmVj
ZWl2ZUZyYW1lKCkKLXsKLSAgICAvLyBObyBsb2NrIHNpbmNlIHRoaXMgZ2V0cyBjYWxsZWQgb24g
dGhlIGNsaWVudCdzIHRocmVhZC4KLSAgICBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudC0+ZGlk
UmVjZWl2ZUZyYW1lKCk7Ci19Ci0KLXZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpkaWRV
cGRhdGVNYXRyaXgoY29uc3QgZmxvYXQqIG1hdHJpeCkKLXsKLSAgICAvLyBObyBsb2NrIHNpbmNl
IHRoaXMgZ2V0cyBjYWxsZWQgb24gdGhlIGNsaWVudCdzIHRocmVhZC4KLSAgICBtX3ZpZGVvRnJh
bWVQcm92aWRlckNsaWVudC0+ZGlkVXBkYXRlTWF0cml4KG1hdHJpeCk7Ci19Ci0KIFdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKCkKICAgICA6IG1fbWVk
aWFQbGF5ZXIoMCkKLSAgICAsIG1fY3VycmVudFZpZGVvRnJhbWUoMCkKICAgICAsIG1fZGVsYXlp
bmdMb2FkKGZhbHNlKQogICAgICwgbV9wcmVsb2FkKE1lZGlhUGxheWVyOjpNZXRhRGF0YSkKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBtX3N1cHBvcnRzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZyhmYWxzZSkKICAgICAsIG1fb3BhcXVlKGZhbHNlKQotICAgICwgbV92aWRl
b0ZyYW1lUHJvdmlkZXJDbGllbnQoMCkKLSNlbmRpZgogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCmluZGV4IDgy
ZDhmMjdlOTlmMTAxZmJjNGRhYWY2MzU4MmVmNzNjNTFkYjc5ODEuLjk3NDA0YTc1MmM4ZTUwM2Fl
ZjNhNWJiMTBlMWUwZDQwNDA3MTZiMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oCkBAIC0zNyw4ICszNyw2IEBACiAj
aW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYk1lZGlhUGxheWVyQ2xpZW50LmgiCi0jaW5j
bHVkZSAiV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5oIgotI2luY2x1ZGUgPHB1YmxpYy9XZWJWaWRl
b0ZyYW1lUHJvdmlkZXIuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIApAQCAtNDksMTYgKzQ3LDExIEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
Y2xhc3MgV2ViSGVscGVyUGx1Z2luSW1wbDsKIGNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXI7
CiBjbGFzcyBXZWJNZWRpYVBsYXllcjsKLWNsYXNzIFdlYlZpZGVvTGF5ZXI7CitjbGFzcyBXZWJM
YXllcjsKIAogLy8gVGhpcyBjbGFzcyBzZXJ2ZXMgYXMgYSBicmlkZ2UgYmV0d2VlbiBXZWJDb3Jl
OjpNZWRpYVBsYXllciBhbmQKIC8vIFdlYktpdDo6V2ViTWVkaWFQbGF5ZXIuCi1jbGFzcyBXZWJN
ZWRpYVBsYXllckNsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICwgcHVibGljIFdlYlZpZGVvRnJhbWVQcm92aWRlcgotI2VuZGlm
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgV2ViTWVkaWFQbGF5ZXJD
bGllbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBXZWJTdHJlYW1U
ZXh0dXJlQ2xpZW50IHsKK2NsYXNzIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCA6IHB1YmxpYyBX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBXZWJNZWRpYVBsYXll
ckNsaWVudCB7CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0VuYWJsZWQoKTsKQEAgLTkx
LDYgKzg0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViUGx1Z2luKiBjcmVhdGVIZWxwZXJQ
bHVnaW4oY29uc3QgV2ViU3RyaW5nJiBwbHVnaW5UeXBlLCBXZWJGcmFtZSopOwogICAgIHZpcnR1
YWwgdm9pZCBjbG9zZUhlbHBlclBsdWdpbigpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZygpOworICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJMYXllcihXZWJM
YXllciopOwogCiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIG1ldGhvZHM6CiAg
ICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgV1RGOjpTdHJpbmcmIHVybCk7CkBAIC0xNTAsMjUg
KzE0NCwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRl
cmluZygpIGNvbnN0OwogCi0gICAgLy8gV2ViVmlkZW9GcmFtZVByb3ZpZGVyIG1ldGhvZHM6Ci0g
ICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnJhbWVQcm92aWRlckNsaWVudChXZWJWaWRlb0ZyYW1l
UHJvdmlkZXI6OkNsaWVudCopOwotICAgIHZpcnR1YWwgV2ViVmlkZW9GcmFtZSogZ2V0Q3VycmVu
dEZyYW1lKCk7Ci0gICAgdmlydHVhbCB2b2lkIHB1dEN1cnJlbnRGcmFtZShXZWJWaWRlb0ZyYW1l
Kik7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gZ2VuZXJhdGVLZXlSZXF1ZXN0
KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbml0RGF0YSwg
dW5zaWduZWQgaW5pdERhdGFMZW5ndGgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6Ok1lZGlhS2V5RXhjZXB0aW9uIGFkZEtleShjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSwgY29uc3QgdW5zaWduZWQgY2hhcioga2V5LCB1bnNpZ25lZCBrZXlMZW5ndGgsIGNvbnN0
IHVuc2lnbmVkIGNoYXIqIGluaXREYXRhLCB1bnNpZ25lZCBpbml0RGF0YUxlbmd0aCwgY29uc3Qg
U3RyaW5nJiBzZXNzaW9uSWQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXI6Ok1lZGlhS2V5RXhjZXB0aW9uIGNhbmNlbEtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKSBPVkVSUklERTsKICNlbmRpZgogCi0g
ICAgLy8gV2ViU3RyZWFtVGV4dHVyZUNsaWVudCBtZXRob2RzOgotICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlRnJhbWUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTWF0cml4KGNvbnN0
IGZsb2F0Kik7Ci0KIHByb3RlY3RlZDoKICAgICBXZWJNZWRpYVBsYXllckNsaWVudEltcGwoKTsK
IHByaXZhdGU6CkBAIC0xODksMTkgKzE3MiwxNiBAQCBwcml2YXRlOgogICAgIGJvb2wgYWNjZWxl
cmF0ZWRSZW5kZXJpbmdJblVzZSgpOwogI2VuZGlmCiAKLSAgICBNdXRleCBtX3dlYk1lZGlhUGxh
eWVyTXV0ZXg7IC8vIEd1YXJkcyB0aGUgbV93ZWJNZWRpYVBsYXllcgogICAgIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyKiBtX21lZGlhUGxheWVyOwogICAgIE93blB0cjxXZWJNZWRpYVBsYXllcj4gbV93
ZWJNZWRpYVBsYXllcjsKLSAgICBXZWJWaWRlb0ZyYW1lKiBtX2N1cnJlbnRWaWRlb0ZyYW1lOwog
ICAgIFdlYkNvcmU6OktVUkwgbV91cmw7CiAgICAgYm9vbCBtX2RlbGF5aW5nTG9hZDsKICAgICBX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6UHJlbG9hZCBtX3ByZWxvYWQ7CiAgICAgUmVmUHRyPFdlYkhl
bHBlclBsdWdpbkltcGw+IG1faGVscGVyUGx1Z2luOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLSAgICBPd25QdHI8V2ViVmlkZW9MYXllcj4gbV92aWRlb0xheWVyOworICAgIFdl
YkxheWVyKiBtX3ZpZGVvTGF5ZXI7CiAgICAgYm9vbCBtX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZzsKICAgICBib29sIG1fb3BhcXVlOwotICAgIFdlYlZpZGVvRnJhbWVQcm92aWRlcjo6
Q2xpZW50KiBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudDsKICNlbmRpZgogICAgIHN0YXRpYyBi
b29sIG1faXNFbmFibGVkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9XZWJNZWRpYVBsYXllckNsaWVudEltcGxUZXN0LmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNTZhMWE2ZTIyYWIyOTg4MzdjOWIyYzhlNWQ3MWY1YTZlYzZlNmRi
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbFRlc3QuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTIwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLQotI2luY2x1ZGUgIldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oIgotCi0jaW5j
bHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotCi11c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1uYW1lc3BhY2UgewotCi1jbGFzcyBGYWtlV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsIDogcHVibGljIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RmFrZVdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbD4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IEZha2VXZWJNZWRpYVBsYXllckNsaWVudElt
cGwoKSk7IH0KLQotcHJpdmF0ZToKLSAgICBGYWtlV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKCkg
eyB9Ci19OwotCi1jbGFzcyBGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50IDogcHVibGljIFdl
YlZpZGVvRnJhbWVQcm92aWRlcjo6Q2xpZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093
blB0cjxGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50PiBjcmVhdGUoV2ViVmlkZW9GcmFtZVBy
b3ZpZGVyKiBwcm92aWRlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmFr
ZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudChwcm92aWRlcikpOwotICAgIH0KLQotICAgIHZpcnR1
YWwgfkZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoKQotICAgIHsKLSAgICAgICAgaWYgKG1f
cHJvdmlkZXIpCi0gICAgICAgICAgICBtX3Byb3ZpZGVyLT5zZXRWaWRlb0ZyYW1lUHJvdmlkZXJD
bGllbnQoMCk7Ci0gICAgfQotCi0gICAgLy8gV2ViS2l0OjpXZWJWaWRlb0ZyYW1lUHJvdmlkZXI6
OkNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUZyYW1l
KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZU1hdHJpeChjb25zdCBmbG9hdCopIHsg
fQotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXNpbmdQcm92aWRlcigpCi0gICAgewotICAgICAgICBt
X3Byb3ZpZGVyID0gMDsKLSAgICB9Ci0KLSAgICBXZWJWaWRlb0ZyYW1lUHJvdmlkZXIqIHByb3Zp
ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRlcjsgfQotCi1wcml2YXRlOgotICAgIEZha2VW
aWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoV2ViVmlkZW9GcmFtZVByb3ZpZGVyKiBwcm92aWRlcikK
LSAgICAgICAgOiBtX3Byb3ZpZGVyKHByb3ZpZGVyKQotICAgIHsKLSAgICAgICAgbV9wcm92aWRl
ci0+c2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KHRoaXMpOwotICAgIH0KLQotICAgIFdlYlZp
ZGVvRnJhbWVQcm92aWRlciogbV9wcm92aWRlcjsKLX07Ci0KLVRFU1QoV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsVGVzdCwgSW5pdGlhbE51bGxWaWRlb0NsaWVudCkKLXsKLSAgICAvLyBObyBleHBs
aWN0IGNoZWNrcyBpbiB0aGlzIHRlc3Q7IGp1c3QgbWFrZSBzdXJlIGl0IGRvZXNuJ3QgY3Jhc2gu
Ci0gICAgT3duUHRyPFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbD4gcHJvdmlkZXIoRmFrZVdlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbDo6Y3JlYXRlKCkpOwotICAgIHByb3ZpZGVyLT5zZXRWaWRlb0Zy
YW1lUHJvdmlkZXJDbGllbnQoMCk7Ci19Ci0KLVRFU1QoV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
VGVzdCwgU2V0QW5kVW5zZXRWaWRlb0NsaWVudCkKLXsKLSAgICBPd25QdHI8V2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsPiBwcm92aWRlcihGYWtlV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjcmVh
dGUoKSk7Ci0gICAgT3duUHRyPEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ+IGNsaWVudChG
YWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50OjpjcmVhdGUocHJvdmlkZXIuZ2V0KCkpKTsKLQot
ICAgIEVYUEVDVF9FUShjbGllbnQtPnByb3ZpZGVyKCksIHByb3ZpZGVyLmdldCgpKTsKLQotICAg
IHByb3ZpZGVyLT5zZXRWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoMCk7Ci0gICAgQVNTRVJUX0ZB
TFNFKGNsaWVudC0+cHJvdmlkZXIoKSk7Ci19Ci0KLVRFU1QoV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsVGVzdCwgRGVzdHJveVByb3ZpZGVyKQotewotICAgIE93blB0cjxXZWJNZWRpYVBsYXllckNs
aWVudEltcGw+IHByb3ZpZGVyKEZha2VXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmNyZWF0ZSgp
KTsKLSAgICBPd25QdHI8RmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudD4gY2xpZW50KEZha2VW
aWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ6OmNyZWF0ZShwcm92aWRlci5nZXQoKSkpOwotCi0gICAg
RVhQRUNUX0VRKGNsaWVudC0+cHJvdmlkZXIoKSwgcHJvdmlkZXIpOwotICAgIHByb3ZpZGVyLmNs
ZWFyKCk7Ci0gICAgQVNTRVJUX0ZBTFNFKGNsaWVudC0+cHJvdmlkZXIoKSk7Ci19Ci0KLVRFU1Qo
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdCwgU2V0TXVsdGlwbGVWaWRlb0NsaWVudHMpCi17
Ci0gICAgT3duUHRyPFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbD4gcHJvdmlkZXIoRmFrZVdlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbDo6Y3JlYXRlKCkpOwotICAgIE93blB0cjxGYWtlVmlkZW9GcmFt
ZVByb3ZpZGVyQ2xpZW50PiBmaXJzdENsaWVudChGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50
OjpjcmVhdGUocHJvdmlkZXIuZ2V0KCkpKTsKLSAgICBFWFBFQ1RfRVEoZmlyc3RDbGllbnQtPnBy
b3ZpZGVyKCksIHByb3ZpZGVyKTsKLQotICAgIE93blB0cjxGYWtlVmlkZW9GcmFtZVByb3ZpZGVy
Q2xpZW50PiBzZWNvbmRDbGllbnQoRmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudDo6Y3JlYXRl
KHByb3ZpZGVyLmdldCgpKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGZpcnN0Q2xpZW50LT5wcm92aWRl
cigpKTsKLSAgICBFWFBFQ1RfRVEoc2Vjb25kQ2xpZW50LT5wcm92aWRlcigpLCBwcm92aWRlcik7
Ci0KLSAgICBwcm92aWRlci5jbGVhcigpOwotICAgIEFTU0VSVF9GQUxTRShmaXJzdENsaWVudC0+
cHJvdmlkZXIoKSk7Ci0gICAgQVNTRVJUX0ZBTFNFKHNlY29uZENsaWVudC0+cHJvdmlkZXIoKSk7
Ci19Ci0KLX0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194171</attachid>
            <date>2013-03-20 20:27:16 -0700</date>
            <delta_ts>2013-03-25 17:31:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112483-20130320232305.patch</filename>
            <type>text/plain</type>
            <size>39243</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhMDY3MGNjOWFiMmYx
YmI4ZmE2MzM5NGQ2NWZhMjdmOGFhODM1Y2MxLi42NGNmMTQwMzA0NjM1ZTVmZmYxMGIyNDEyNTc5
YzA3ZWU5YTc1M2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMy0wMy0yMCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbd2lwXSBbY2hy
b21pdW1dIFJlbW92ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBh
bmQgV2ViVmlkZW9MYXllciBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVtb3ZlIG5vdy11bnVzZWQgV2ViS2l0IEFQSXMuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybS5neXBpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJDb21wb3Np
dG9yU3VwcG9ydC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJs
aWMvV2ViTGF5ZXIuaDoKKyAgICAgICAgKFdlYkxheWVyKToKKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViVmlkZW9GcmFtZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGNocm9taXVtL3B1Ymxp
Yy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViVmlkZW9MYXllci5oOiBSZW1vdmVkLgorCiAyMDEzLTAzLTIwICBIYXJhbGQgQWx2
ZXN0cmFuZCAgPGh0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBMb2NhbC9SZW1vdGUg
YW5kIFJUQ1N0YXRzRWxlbWVudCBmcm9tIFdlYlJUQ1N0YXRzIEFQSQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCBlMTA2MmQwOTllYWFjYzRlMTA1Nzc1Yjk4NmY5NTQ3ZWFjZTNmZTc2Li45
ZDVhYmRhOGY4ZjRhOThiNzkzNDg1MzUyMWM5MTg2ZWJjNjMyMDUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAzLTIwICBEYW5hIEphbnNlbnMgIDxk
YW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFt3aXBdIFtjaHJvbWl1bV0gUmVtb3ZlIHRo
ZSBXZWJWaWRlb0ZyYW1lLCBXZWJWaWRlb0ZyYW1lUHJvdmlkZXIsIGFuZCBXZWJWaWRlb0xheWVy
IGNsYXNzZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTI0ODMKKworICAgICAgICBUaGlzIG1vdmVzIG93bmVyc2hpcCBvZiB0aGUgY29tcG9zaXRv
cidzIHZpZGVvIGxheWVyIG92ZXIgdG8gdGhlCisgICAgICAgIGltcGxlbWVudGF0aW9uIG9mIFdl
Yk1lZGlhUGxheWVyLCBhcyB3ZWxsIGFzIGFsbCBpbnRlcmFjdGlvbgorICAgICAgICBiZXR3ZWVu
IHRoZSBtZWRpYSBwbGF5ZXIgc3lzdGVtIGFuZCB0aGUgY29tcG9zaXRvciBsYXllciBvciBpdHMK
KyAgICAgICAgaW50ZXJmYWNlcyBzdWNoIGFzIGNjOjpWaWRlb0ZyYW1lUHJvdmlkZXIuCisKKyAg
ICAgICAgTm93LCB0aGUgV2ViTWVkaWFQbGF5ZXIgaW1wbGVtZW50YXRpb24gY2FsbHMgc2V0V2Vi
TGF5ZXIoKSB0bworICAgICAgICBwcm92aWRlIHRoZSBXZWJMYXllciogdG8gdGhlIFdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbCBzbyB0aGF0CisgICAgICAgIGl0IGNhbiBiZSBpbnNlcnRlZCBpbnRv
IHRoZSBHcmFwaGljc0xheWVyIHRyZWUgYXBwcm9wcmlhdGVseS4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICog
V2ViS2l0Lmd5cGk6CisgICAgICAgICogcHVibGljL1dlYk1lZGlhUGxheWVyLmg6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViTWVkaWFQbGF5ZXIpOgorICAgICAgICAqIHB1YmxpYy9X
ZWJNZWRpYVBsYXllckNsaWVudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJTdHJlYW1UZXh0dXJl
Q2xpZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcHVibGljL1dlYlZpZGVvRnJhbWUuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp+V2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpyZWFk
eVN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bDo6cmVwYWludCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6
c2V0T3BhcXVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpz
ZXRXZWJMYXllcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRp
YVBsYXllckNsaWVudEltcGw6OmxvYWRSZXF1ZXN0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJN
ZWRpYVBsYXllckNsaWVudEltcGw6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBhaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjphY2NlbGVyYXRlZFJlbmRlcmluZ0luVXNlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBwb3J0c1R5cGUpOgorICAgICAg
ICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJNZWRpYVBsYXllckNsaWVudEltcGwpOgorICAgICAgICAqIHRlc3RzL1dlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbFRlc3QuY3BwOiBSZW1vdmVkLgorCiAyMDEzLTAzLTIwICBZdWZl
bmcgU2hlbiAgPG1pbGV0dXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBQbGF0Zm9y
bUV2ZW50OjpHZXN0dXJlRG91YmxlVGFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxh
dGZvcm0uZ3lwaSBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCmluZGV4IDhmNzA4MGUw
YjBjZGI1YzNjNWVkOWJlNmZkOGViNjBjNjRkMDE0OTEuLjUxM2Q3OTczYTk1Y2YxZTdjYmYxYzJh
NTc3MmI3OWEwZDUyZTk2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5n
eXBpCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCkBAIC0xNDYsOSArMTQ2LDYg
QEAKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2UuaCcsCiAgICAgICAgICAgICAn
Y2hyb21pdW0vcHVibGljL1dlYlZlY3Rvci5oJywKLSAgICAgICAgICAgICdjaHJvbWl1bS9wdWJs
aWMvV2ViVmlkZW9MYXllci5oJywKLSAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVmlk
ZW9GcmFtZS5oJywKLSAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZVBy
b3ZpZGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJXb3JrZXJSdW5Mb29w
LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dlYlNhbmRib3hTdXBw
b3J0LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5n
aW5lLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJD
b21wb3NpdG9yU3VwcG9ydC5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJD
b21wb3NpdG9yU3VwcG9ydC5oCmluZGV4IGQ2ZDU4YmI4YTdmODllNGIzMTk3NTBiZTFmMzI3Njhk
NzIxYzVmZmQuLjZiNjBhOWU5MWZmNGViOGQ5ZjAyMzcxM2E2MmZiMjE3MWEzMDlhYWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBv
cnQuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JT
dXBwb3J0LmgKQEAgLTUwLDggKzUwLDYgQEAgY2xhc3MgV2ViU29saWRDb2xvckxheWVyOwogY2xh
c3MgV2ViVGhyZWFkOwogY2xhc3MgV2ViVHJhbnNmb3JtQW5pbWF0aW9uQ3VydmU7CiBjbGFzcyBX
ZWJUcmFuc2Zvcm1PcGVyYXRpb25zOwotY2xhc3MgV2ViVmlkZW9GcmFtZVByb3ZpZGVyOwotY2xh
c3MgV2ViVmlkZW9MYXllcjsKIAogY2xhc3MgV2ViQ29tcG9zaXRvclN1cHBvcnQgewogcHVibGlj
OgpAQCAtODMsOCArODEsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFdlYlNvbGlkQ29sb3JM
YXllciogY3JlYXRlU29saWRDb2xvckxheWVyKCkgeyByZXR1cm4gMDsgfQogCi0gICAgdmlydHVh
bCBXZWJWaWRlb0xheWVyKiBjcmVhdGVWaWRlb0xheWVyKFdlYlZpZGVvRnJhbWVQcm92aWRlciop
IHsgcmV0dXJuIDA7IH0KLQogICAgIHZpcnR1YWwgV2ViU2Nyb2xsYmFyTGF5ZXIqIGNyZWF0ZVNj
cm9sbGJhckxheWVyKFdlYlNjcm9sbGJhciosIFdlYlNjcm9sbGJhclRoZW1lUGFpbnRlciwgV2Vi
U2Nyb2xsYmFyVGhlbWVHZW9tZXRyeSopIHsgcmV0dXJuIDA7IH0KIAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyLmggYi9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyLmgKaW5kZXggMDEzNGMzMGM2ZGI3NjkyODVmOTZm
NjgyNmE2ZDFhMjgwOTRjNTFhMi4uNTJjODE2YTE5N2QyYjMwMjk1MWYwNzIyZjRkMzAzZTIzY2Q4
NGYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXll
ci5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaApAQCAt
MjAyLDYgKzIwMiw5IEBAIHB1YmxpYzoKICAgICAvLyBGb3JjZXMgdGhpcyBsYXllciB0byB1c2Ug
YSByZW5kZXIgc3VyZmFjZS4gVGhlcmUgaXMgbm8gYmVuZWZpdCBpbiBkb2luZwogICAgIC8vIHNv
LCBidXQgdGhpcyBpcyB0byBmYWNpbGl0YXRlIGJlbmNobWFya3MgYW5kIHRlc3RzLgogICAgIHZp
cnR1YWwgdm9pZCBzZXRGb3JjZVJlbmRlclN1cmZhY2UoYm9vbCkgPSAwOworCisgICAgLy8gVHJ1
ZSBpZiB0aGUgbGF5ZXIgaXMgbm90IHBhcnQgb2YgYSB0cmVlIGF0dGFjaGVkIHRvIGEgV2ViTGF5
ZXJUcmVlVmlldy4KKyAgICB2aXJ0dWFsIGJvb2wgaXNPcnBoYW4oKSBjb25zdCA9IDA7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9XZWJWaWRlb0ZyYW1lLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjZjNl
N2NlYjAxM2ZhN2NmZjhjNmQ3NDdhYmU1NjMxZThkNGQwMzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWRlb0ZyYW1lLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3Ry
aWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBX
ZWJWaWRlb0ZyYW1lX2gKLSNkZWZpbmUgV2ViVmlkZW9GcmFtZV9oCi0KLSNpbmNsdWRlICJXZWJS
ZWN0LmgiCi0jaW5jbHVkZSAiV2ViU2l6ZS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8g
QSBiYXNlIGNsYXNzIGZvciB0aGUgY29udGFpbmVyIHdoaWNoIGhvbGRzIGEgbWVkaWE6OlZpZGVv
RnJhbWUuCi1jbGFzcyBXZWJWaWRlb0ZyYW1lIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJW
aWRlb0ZyYW1lKCkgeyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWVQ
cm92aWRlci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1l
UHJvdmlkZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ1NTJlODAyMGM4NGFk
NmU4MzljZmNkMDAwNTE4NWY3NmUwOGVjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVv
RnJhbWVQcm92aWRlci5oCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2Vi
VmlkZW9GcmFtZVByb3ZpZGVyX2gKLSNkZWZpbmUgV2ViVmlkZW9GcmFtZVByb3ZpZGVyX2gKLQot
I2luY2x1ZGUgIldlYkNvbW1vbi5oIgotI2luY2x1ZGUgIldlYlZpZGVvRnJhbWUuaCIKLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLS8vIFRocmVhZGluZyBub3RlczogVGhpcyBjbGFzcyBtYXkgYmUg
dXNlZCBpbiBhIG11bHRpIHRocmVhZGVkIG1hbm5lci4gU3BlY2lmaWNhbGx5LCB0aGUgaW1wbGVt
ZW50YXRpb24KLS8vIG1heSBjYWxsIGdldEN1cnJlbnRGcmFtZSgpIC8gcHV0Q3VycmVudEZyYW1l
KCkgZnJvbSBhIG5vbi1tYWluIHRocmVhZC4gSWYgc28sIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2li
bGUKLS8vIGZvciBtYWtpbmcgc3VyZSBDbGllbnQ6OmRpZFJlY2VpdmVGcmFtZSBhbmQgQ2xpZW50
OjpkaWRVcGRhdGVNYXRyaXggYXJlIG9ubHkgY2FsbGVkIGZyb20gdGhpcyB0aHJlYWQuCi1jbGFz
cyBXZWJWaWRlb0ZyYW1lUHJvdmlkZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgfldlYlZpZGVv
RnJhbWVQcm92aWRlcigpIHsgfQotCi0gICAgY2xhc3MgQ2xpZW50IHsKLSAgICBwdWJsaWM6Ci0g
ICAgICAgIC8vIFByb3ZpZGVyIHdpbGwgY2FsbCB0aGlzIG1ldGhvZCB0byB0ZWxsIHRoZSBjbGll
bnQgdG8gc3RvcCB1c2luZyBpdC4KLSAgICAgICAgLy8gc3RvcFVzaW5nUHJvdmlkZXIoKSBtYXkg
YmUgY2FsbGVkIGZyb20gYW55IHRocmVhZC4gVGhlIGNsaWVudCBzaG91bGQKLSAgICAgICAgLy8g
YmxvY2sgdW50aWwgaXQgaGFzIHB1dEN1cnJlbnRGcmFtZSBhbnkgb3V0c3RhbmRpbmcgZnJhbWVz
LgotICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcFVzaW5nUHJvdmlkZXIoKSA9IDA7Ci0KLSAgICAg
ICAgLy8gTm90aWZpZXMgdGhlIHByb3ZpZGVyJ3MgY2xpZW50IHRoYXQgYSBjYWxsIHRvIGdldEN1
cnJlbnRGcmFtZSgpIHdpbGwgcmV0dXJuIG5ldyBkYXRhLgotICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUZyYW1lKCkgPSAwOwotCi0gICAgICAgIC8vIE5vdGlmaWVzIHRoZSBwcm92aWRl
cidzIGNsaWVudCBvZiBhIG5ldyBVViB0cmFuc2Zvcm0gbWF0cml4IHRvIGJlIHVzZWQgd2hlbiBk
cmF3aW5nIGZyYW1lcwotICAgICAgICAvLyBvZiB0eXBlIFdlYlZpZGVvRnJhbWU6OkZvcm1hdFN0
cmVhbVRleHR1cmUuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVNYXRyaXgoY29uc3Qg
ZmxvYXQqKSA9IDA7Ci0gICAgfTsKLQotICAgIC8vIE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgdGhy
ZWFkLCBidXQgdGhlcmUgbXVzdCBiZSBzb21lIGV4dGVybmFsIGd1YXJhbnRlZQotICAgIC8vIHRo
YXQgdGhlIHByb3ZpZGVyIGlzIG5vdCBkZXN0cm95ZWQgYmVmb3JlIHRoaXMgY2FsbCByZXR1cm5z
LgotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoQ2xpZW50Kikg
PSAwOwotCi0gICAgLy8gVGhpcyBmdW5jdGlvbiBwbGFjZXMgYSBsb2NrIG9uIHRoZSBjdXJyZW50
IGZyYW1lIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byBpdC4KLSAgICAvLyBDYWxscyB0byB0aGlz
IG1ldGhvZCBzaG91bGQgYWx3YXlzIGJlIGZvbGxvd2VkIHdpdGggYSBjYWxsIHRvIHB1dEN1cnJl
bnRGcmFtZSgpLgotICAgIC8vIFRoZSBvd25lcnNoaXAgb2YgdGhlIG9iamVjdCBpcyBub3QgdHJh
bnNmZXJyZWQgdG8gdGhlIGNhbGxlciBhbmQKLSAgICAvLyB0aGUgY2FsbGVyIHNob3VsZCBub3Qg
ZnJlZSB0aGUgcmV0dXJuZWQgb2JqZWN0LiBPbmx5IHRoZSBjdXJyZW50IHByb3ZpZGVyCi0gICAg
Ly8gY2xpZW50IHNob3VsZCBjYWxsIHRoaXMgZnVuY3Rpb24uCi0gICAgdmlydHVhbCBXZWJWaWRl
b0ZyYW1lKiBnZXRDdXJyZW50RnJhbWUoKSA9IDA7Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiByZWxl
YXNlcyB0aGUgbG9jayBvbiB0aGUgdmlkZW8gZnJhbWUgaW4gY2hyb21pdW0uIEl0IHNob3VsZAot
ICAgIC8vIGFsd2F5cyBiZSBjYWxsZWQgYWZ0ZXIgZ2V0Q3VycmVudEZyYW1lKCkuIEZyYW1lcyBw
YXNzZWQgaW50byB0aGlzIG1ldGhvZAotICAgIC8vIHNob3VsZCBubyBsb25nZXIgYmUgcmVmZXJl
bmNlZCBhZnRlciB0aGUgY2FsbCBpcyBtYWRlLiBPbmx5IHRoZSBjdXJyZW50Ci0gICAgLy8gcHJv
dmlkZXIgY2xpZW50IHNob3VsZCBjYWxsIHRoaXMgZnVuY3Rpb24uCi0gICAgdmlydHVhbCB2b2lk
IHB1dEN1cnJlbnRGcmFtZShXZWJWaWRlb0ZyYW1lKikgPSAwOwotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJWaWRlb0xheWVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYlZpZGVvTGF5ZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI3ZDY5ZTEw
YTBkZmI5NzhjOTAwMDRlZmZlNzI4Y2ExNjY5YTNiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YlZpZGVvTGF5ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFdlYlZpZGVvTGF5ZXJfaAotI2RlZmluZSBXZWJWaWRlb0xheWVyX2gKLQotI2luY2x1ZGUg
IldlYkNvbW1vbi5oIgotI2luY2x1ZGUgIldlYkxheWVyLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1jbGFzcyBXZWJWaWRlb0ZyYW1lUHJvdmlkZXI7Ci0KLWNsYXNzIFdlYlZpZGVvTGF5ZXIg
ewotcHVibGljOgotICAgIHZpcnR1YWwgfldlYlZpZGVvTGF5ZXIoKSB7IH0KLQotICAgIHZpcnR1
YWwgV2ViTGF5ZXIqIGxheWVyKCkgPSAwOwotCi0gICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMg
bGF5ZXIgaXMgYWN0aXZlbHkgcmVuZGVyaW5nIChlLmcuIGN1cnJlbnRseSBhdHRhY2hlZCB0byBh
IFdlYkxheWVyVHJlZVZpZXcpLgotICAgIHZpcnR1YWwgYm9vbCBhY3RpdmUoKSBjb25zdCA9IDA7
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYlZpZGVvTGF5ZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDFhMjBhOGRjMjg2OGEzZjAyODQ4MWRi
OWZjOGEwMTI1YTcxZTE0MmUuLjE5ODhkYTFjNjkyYzg3YjRlNGJmMGM5ZTA0ODg2NWNiMGNjYWNm
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTI2MSw3ICsyNjEsNiBAQAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZVF1b3RhQ2FsbGJhY2tzLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZVF1b3RhVHlwZS5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlN1cnJvdW5kaW5nVGV4dC5oJywKLSAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlN0cmVhbVRleHR1cmVDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJU
ZXh0QWZmaW5pdHkuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJUZXh0Q2FzZVNlbnNp
dGl2aXR5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVGV4dENoZWNraW5nQ29tcGxl
dGlvbi5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmluZGV4IDg5YzgyNTkzZmNhYTEw
ODAwMWYzZjNhNjk0NWZkM2QzOWRkMGYyOTIuLjZlNGE0ZDg2MDA3NWI1NGU0YjU0NzY3NzAxZWRh
ZDQ5Y2FjYjE0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpAQCAtMTE4LDcgKzEx
OCw2IEBACiAgICAgICAgICAgICAndGVzdHMvV2ViSW1hZ2VUZXN0LmNwcCcsCiAgICAgICAgICAg
ICAndGVzdHMvV2ViSW5wdXRFdmVudENvbnZlcnNpb25UZXN0LmNwcCcsCiAgICAgICAgICAgICAn
dGVzdHMvV2ViSW5wdXRFdmVudEZhY3RvcnlUZXN0TWFjLm1tJywKLSAgICAgICAgICAgICd0ZXN0
cy9XZWJNZWRpYVBsYXllckNsaWVudEltcGxUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMv
V2ViUGFnZU5ld1NlcmlhbGl6ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViUGFn
ZVNlcmlhbGl6ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViUGx1Z2luQ29udGFp
bmVyVGVzdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlh
UGxheWVyLmgKaW5kZXggYWQ1NmMxYmNiYTFjMzFhYzJlMWJjMjc1ODBhYTFlNjY2MzdhNmI5MC4u
ZjgyY2QwNDBiNWQzZjg0NjM2NDI1ZmFhMWM5NWM4Y2YzYmY1ODQ5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCkBAIC0zMywxNiArMzMsMTUg
QEAKIAogI2luY2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDYW52
YXMuaCIKICNpbmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU3Ry
aW5nLmgiCi0jaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZp
ZGVvRnJhbWUuaCIKICNpbmNsdWRlICJXZWJUaW1lUmFuZ2UuaCIKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXI7CiBjbGFzcyBXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQ2xpZW50OworY2xhc3MgV2ViTGF5ZXI7CiBjbGFzcyBXZWJNZWRpYVBsYXllckNs
aWVudDsKIGNsYXNzIFdlYk1lZGlhU291cmNlOwotY2xhc3MgV2ViU3RyZWFtVGV4dHVyZUNsaWVu
dDsKIGNsYXNzIFdlYlN0cmluZzsKIGNsYXNzIFdlYlVSTDsKIHN0cnVjdCBXZWJSZWN0OwpAQCAt
MTU1LDIzICsxNTQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBhdWRpb0RlY29k
ZWRCeXRlQ291bnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB1bnNpZ25lZCB2aWRlb0RlY29k
ZWRCeXRlQ291bnQoKSBjb25zdCA9IDA7CiAKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMg
YSBwb2ludGVyIHRvIGEgV2ViVmlkZW9GcmFtZSwgd2hpY2ggaXMKLSAgICAvLyBhIFdlYktpdCB3
cmFwcGVyIGZvciBhIHZpZGVvIGZyYW1lIGluIGNocm9taXVtLiBUaGlzIHBsYWNlcyBhIGxvY2sK
LSAgICAvLyBvbiB0aGUgZnJhbWUgaW4gY2hyb21pdW0sIGFuZCBjYWxscyB0byB0aGlzIG1ldGhv
ZCBzaG91bGQgYWx3YXlzIGJlCi0gICAgLy8gZm9sbG93ZWQgd2l0aCBhIGNhbGwgdG8gcHV0Q3Vy
cmVudEZyYW1lKCkuIFRoZSBvd25lcnNoaXAgb2YgdGhpcyBvYmplY3QKLSAgICAvLyBpcyBub3Qg
dHJhbnNmZXJyZWQgdG8gdGhlIGNhbGxlciwgYW5kIHRoZSBjYWxsZXIgc2hvdWxkIG5vdCBmcmVl
IHRoZQotICAgIC8vIHJldHVybmVkIG9iamVjdC4KLSAgICB2aXJ0dWFsIFdlYlZpZGVvRnJhbWUq
IGdldEN1cnJlbnRGcmFtZSgpIHsgcmV0dXJuIDA7IH0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHJl
bGVhc2VzIHRoZSBsb2NrIG9uIHRoZSBjdXJyZW50IHZpZGVvIGZyYW1lIGluIENocm9taXVtLgot
ICAgIC8vIEl0IHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIGFmdGVyIGdldEN1cnJlbnRGcmFtZSgp
LiBGcmFtZSBwYXNzZWQgdG8gdGhpcwotICAgIC8vIG1ldGhvZCBzaG91bGQgbm8gbG9uZ2VyIGJl
IHJlZmVyZW5jZWQgYWZ0ZXIgdGhlIGNhbGwgaXMgbWFkZS4KLSAgICB2aXJ0dWFsIHZvaWQgcHV0
Q3VycmVudEZyYW1lKFdlYlZpZGVvRnJhbWUqKSB7IH0KLQogICAgIC8vIERvIGEgR1BVLUdQVSB0
ZXh0dXJlcyBjb3B5IGlmIHBvc3NpYmxlLgogICAgIHZpcnR1YWwgYm9vbCBjb3B5VmlkZW9UZXh0
dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViR3JhcGhpY3NDb250ZXh0M0QqLCB1bnNpZ25lZCB0ZXh0
dXJlLCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgaW50ZXJuYWxGb3JtYXQsIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSwgYm9vbCBmbGlwWSkgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwg
dm9pZCBzZXRTdHJlYW1UZXh0dXJlQ2xpZW50KFdlYlN0cmVhbVRleHR1cmVDbGllbnQqKSB7IH0K
LQogICAgIHZpcnR1YWwgV2ViQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRl
cigpIHsgcmV0dXJuIDA7IH0KIAogICAgIC8vIFJldHVybnMgd2hldGhlciBrZXlTeXN0ZW0gaXMg
c3VwcG9ydGVkLiBJZiB0cnVlLCB0aGUgcmVzdWx0IHdpbGwgYmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllckNsaWVudC5oCmluZGV4IDA4OTkz
N2MyNGFlYjZjNTViOTM2YzAyOGZmZDM3ZDJhNTg2YzhlODMuLjQ3ZmU2YTUwN2M2ZjZmYjEwOTM2
ZTE4MTgwZTg1OTNiZmRjYWQxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYk1lZGlhUGxheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaApAQCAtODAsNyArODAsOCBAQCBwdWJsaWM6
CiAgICAgLy8gUmV0dXJucyAwIGlmIHRoZSBwbHVnaW4gY291bGQgbm90IGJlIGluc3RhbnRpYXRl
ZC4KICAgICB2aXJ0dWFsIFdlYlBsdWdpbiogY3JlYXRlSGVscGVyUGx1Z2luKGNvbnN0IFdlYlN0
cmluZyYgcGx1Z2luVHlwZSwgV2ViRnJhbWUqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3Nl
SGVscGVyUGx1Z2luKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZygpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNXZWJMYXllcigpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2ViTGF5ZXIoV2ViTGF5ZXIqKSA9IDA7CiBwcm90
ZWN0ZWQ6CiAgICAgfldlYk1lZGlhUGxheWVyQ2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MTAwMmZiMjZhZDc5M2RhNmQ2YTQ2ODg2MGMw
ZjBhZGVlNzM0ZTZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0cmVhbVRleHR1cmVDbGllbnQu
aAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlN0cmVhbVRleHR1cmVD
bGllbnRfaAotI2RlZmluZSBXZWJTdHJlYW1UZXh0dXJlQ2xpZW50X2gKLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLWNsYXNzIFdlYlN0cmVhbVRleHR1cmVDbGllbnQgewotcHVibGljOgotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlRnJhbWUoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFVw
ZGF0ZU1hdHJpeChjb25zdCBmbG9hdCopID0gMDsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwg
fldlYlN0cmVhbVRleHR1cmVDbGllbnQoKSB7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlZpZGVvRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJh
bWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTQ4YTdhNDQ0MGJmZDI2YmJkNDU1
Mzk5YzIxZjcxNTgxZGM2NjI5ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgK
KysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIi4uLy4uLy4u
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcApp
bmRleCBhYWI3NGUyMmY4ZTRmYjYwNTI2NTFkMWY5MDA4YmQwYzc3MTc5NmRkLi42MzRmODRjYmY4
MjY3Mzc2N2E2NzQyNGUzNDM4NGQ4NjkyYjA1YjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTM5LDcg
KzM5LDYgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViU2l6ZS5oPgogI2luY2x1ZGUgPHB1YmxpYy9X
ZWJTdHJpbmcuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViVVJMLmg+Ci0jaW5jbHVkZSA8cHVibGlj
L1dlYlZpZGVvTGF5ZXIuaD4KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNp
bmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKQEAgLTk0LDIxICs5Myw2IEBAIFdlYk1l
ZGlhUGxheWVyKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Om1lZGlhUGxheWVyKCkgY29uc3QK
IAogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp+V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsKCkK
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKG1fdmlkZW9GcmFt
ZVByb3ZpZGVyQ2xpZW50KQotICAgICAgICBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudC0+c3Rv
cFVzaW5nUHJvdmlkZXIoKTsKLSAgICAvLyBObyBuZWVkIGZvciBhIGxvY2sgaGVyZSwgYXMgZ2V0
Q3VycmVudEZyYW1lL3B1dEN1cnJlbnRGcmFtZSBjYW4ndCBiZQotICAgIC8vIGNhbGxlZCBub3cg
dGhhdCB0aGUgY2xpZW50IGlzIG5vIGxvbmdlciB1c2luZyB0aGlzIHByb3ZpZGVyLiBBbHNvLCBs
b2FkKCkKLSAgICAvLyBhbmQgdGhpcyBkZXN0cnVjdG9yIGFyZSBjYWxsZWQgZnJvbSB0aGUgc2Ft
ZSB0aHJlYWQuCi0gICAgaWYgKG1fd2ViTWVkaWFQbGF5ZXIpCi0gICAgICAgIG1fd2ViTWVkaWFQ
bGF5ZXItPnNldFN0cmVhbVRleHR1cmVDbGllbnQoMCk7Ci0jZW5kaWYKLQotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAobV92aWRlb0xheWVyKQotICAgICAgICBHcmFw
aGljc0xheWVyQ2hyb21pdW06OnVucmVnaXN0ZXJDb250ZW50c0xheWVyKG1fdmlkZW9MYXllci0+
bGF5ZXIoKSk7Ci0jZW5kaWYKLQogICAgIC8vIEV4cGxpY2l0bHkgZGVzdHJveSB0aGUgV2ViTWVk
aWFQbGF5ZXIgdG8gYWxsb3cgdmVyaWZpY2F0aW9uIG9mIHRlYXIgZG93bi4KICAgICBtX3dlYk1l
ZGlhUGxheWVyLmNsZWFyKCk7CiAKQEAgLTEzMCwxNCArMTE0LDYgQEAgdm9pZCBXZWJNZWRpYVBs
YXllckNsaWVudEltcGw6OnJlYWR5U3RhdGVDaGFuZ2VkKCkKIHsKICAgICBBU1NFUlQobV9tZWRp
YVBsYXllcik7CiAgICAgbV9tZWRpYVBsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKGhhc1ZpZGVvKCkgJiYgc3VwcG9y
dHNBY2NlbGVyYXRlZFJlbmRlcmluZygpICYmICFtX3ZpZGVvTGF5ZXIpIHsKLSAgICAgICAgbV92
aWRlb0xheWVyID0gYWRvcHRQdHIoUGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBv
cnQoKS0+Y3JlYXRlVmlkZW9MYXllcih0aGlzKSk7Ci0KLSAgICAgICAgbV92aWRlb0xheWVyLT5s
YXllcigpLT5zZXRPcGFxdWUobV9vcGFxdWUpOwotICAgICAgICBHcmFwaGljc0xheWVyQ2hyb21p
dW06OnJlZ2lzdGVyQ29udGVudHNMYXllcihtX3ZpZGVvTGF5ZXItPmxheWVyKCkpOwotICAgIH0K
LSNlbmRpZgogfQogCiB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6dm9sdW1lQ2hhbmdl
ZChmbG9hdCBuZXdWb2x1bWUpCkBAIC0xNjEsMTAgKzEzNyw4IEBAIHZvaWQgV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsOjp0aW1lQ2hhbmdlZCgpCiB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bDo6cmVwYWludCgpCiB7CiAgICAgQVNTRVJUKG1fbWVkaWFQbGF5ZXIpOwotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAobV92aWRlb0xheWVyICYmIHN1cHBvcnRzQWNj
ZWxlcmF0ZWRSZW5kZXJpbmcoKSkKLSAgICAgICAgbV92aWRlb0xheWVyLT5sYXllcigpLT5pbnZh
bGlkYXRlKCk7Ci0jZW5kaWYKKyAgICBpZiAobV92aWRlb0xheWVyKQorICAgICAgICBtX3ZpZGVv
TGF5ZXItPmludmFsaWRhdGUoKTsKICAgICBtX21lZGlhUGxheWVyLT5yZXBhaW50KCk7CiB9CiAK
QEAgLTE5MSw3ICsxNjUsNyBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c2V0T3Bh
cXVlKGJvb2wgb3BhcXVlKQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBt
X29wYXF1ZSA9IG9wYXF1ZTsKICAgICBpZiAobV92aWRlb0xheWVyKQotICAgICAgICBtX3ZpZGVv
TGF5ZXItPmxheWVyKCktPnNldE9wYXF1ZShtX29wYXF1ZSk7CisgICAgICAgIG1fdmlkZW9MYXll
ci0+c2V0T3BhcXVlKG1fb3BhcXVlKTsKICNlbmRpZgogfQogCkBAIC0yOTksOSArMjczLDE4IEBA
IHZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpjbG9zZUhlbHBlclBsdWdpbigpCiAgICAg
bV9oZWxwZXJQbHVnaW4gPSAwOwogfQogCi12b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6
ZGlzYWJsZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKQordm9pZCBXZWJNZWRpYVBsYXllckNsaWVu
dEltcGw6OnNldFdlYkxheWVyKFdlYkxheWVyKiBsYXllcikKIHsKLSAgICBtX3N1cHBvcnRzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZyA9IGZhbHNlOworICAgIGlmIChsYXllciA9PSBtX3ZpZGVvTGF5
ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3ZpZGVvTGF5ZXIpCisgICAgICAgIEdy
YXBoaWNzTGF5ZXJDaHJvbWl1bTo6dW5yZWdpc3RlckNvbnRlbnRzTGF5ZXIobV92aWRlb0xheWVy
KTsKKyAgICBtX3ZpZGVvTGF5ZXIgPSBsYXllcjsKKyAgICBpZiAobV92aWRlb0xheWVyKSB7Cisg
ICAgICAgIG1fdmlkZW9MYXllci0+c2V0T3BhcXVlKG1fb3BhcXVlKTsKKyAgICAgICAgR3JhcGhp
Y3NMYXllckNocm9taXVtOjpyZWdpc3RlckNvbnRlbnRzTGF5ZXIobV92aWRlb0xheWVyKTsKKyAg
ICB9CiB9CiAKIC8vIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMjYsNyArMzA5LDYgQEAgdm9p
ZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6TWVkaWEKIAogdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Omxv
YWRSZXF1ZXN0ZWQoKQogewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dlYk1lZGlhUGxheWVy
TXV0ZXgpOwogICAgIGlmIChtX3ByZWxvYWQgPT0gTWVkaWFQbGF5ZXI6Ok5vbmUpIHsKICNpZiBF
TkFCTEUoV0VCX0FVRElPKQogICAgICAgICBtX2F1ZGlvU291cmNlUHJvdmlkZXIud3JhcCgwKTsg
Ly8gQ2xlYXIgd2VhayByZWZlcmVuY2UgdG8gbV93ZWJNZWRpYVBsYXllcidzIFdlYkF1ZGlvU291
cmNlUHJvdmlkZXIuCkBAIC0zNjgsMTMgKzM1MCwxMSBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbDo6Y2FuY2VsTG9hZCgpCiAgICAgICAgIG1fd2ViTWVkaWFQbGF5ZXItPmNhbmNlbExv
YWQoKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIFdlYkxheWVyKiBX
ZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIEFT
U0VSVChtX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyk7Ci0gICAgcmV0dXJuIG1fdmlk
ZW9MYXllciA/IG1fdmlkZW9MYXllci0+bGF5ZXIoKSA6IDA7CisgICAgQVNTRVJUKG1fdmlkZW9M
YXllcik7CisgICAgcmV0dXJuIG1fdmlkZW9MYXllcjsKIH0KLSNlbmRpZgogCiBQbGF0Zm9ybU1l
ZGlhIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0CiB7CkBA
IC02MTIsMTIgKzU5MiwxMCBAQCB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c2V0U2l6
ZShjb25zdCBJbnRTaXplJiBzaXplKQogCiB2b2lkIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6
cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBJZiB3ZSBhcmUgdXNpbmcg
R1BVIHRvIHJlbmRlciB2aWRlbywgaWdub3JlIHJlcXVlc3RzIHRvIHBhaW50IGZyYW1lcyBpbnRv
Ci0gICAgLy8gY2FudmFzIGJlY2F1c2UgaXQgd2lsbCBiZSB0YWtlbiBjYXJlIG9mIGJ5IFdlYlZp
ZGVvTGF5ZXIuCisgICAgLy8gY2FudmFzIGJlY2F1c2UgaXQgd2lsbCBiZSB0YWtlbiBjYXJlIG9m
IGJ5IHRoZSBWaWRlb0xheWVyLgogICAgIGlmIChhY2NlbGVyYXRlZFJlbmRlcmluZ0luVXNlKCkp
CiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogICAgIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0
KGNvbnRleHQsIHJlY3QpOwogfQogCkBAIC03MTksNjkgKzY5NywzMiBAQCBBdWRpb1NvdXJjZVBy
b3ZpZGVyKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmF1ZGlvU291cmNlUHJvdmlkZXIoKQog
fQogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi1ib29sIFdlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0
Citib29sIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6bmVlZHNXZWJMYXllcigpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fc3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOwotfQotCi1ib29s
IFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdJblVzZSgpCi17
Ci0gICAgcmV0dXJuIG1fdmlkZW9MYXllciAmJiBtX3ZpZGVvTGF5ZXItPmFjdGl2ZSgpOwotfQor
ICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPigKKyAgICAg
ICAgbV9tZWRpYVBsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKSktPmRvY3VtZW50KCktPmZyYW1l
KCk7CiAKLXZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzZXRWaWRlb0ZyYW1lUHJvdmlk
ZXJDbGllbnQoV2ViVmlkZW9GcmFtZVByb3ZpZGVyOjpDbGllbnQqIGNsaWVudCkKLXsKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV93ZWJNZWRpYVBsYXllck11dGV4KTsKLSAgICBpZiAobV92aWRl
b0ZyYW1lUHJvdmlkZXJDbGllbnQpCi0gICAgICAgIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50
LT5zdG9wVXNpbmdQcm92aWRlcigpOwotICAgIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50ID0g
Y2xpZW50OwotICAgIGlmIChtX3dlYk1lZGlhUGxheWVyKQotICAgICAgICBtX3dlYk1lZGlhUGxh
eWVyLT5zZXRTdHJlYW1UZXh0dXJlQ2xpZW50KGNsaWVudCA/IHRoaXMgOiAwKTsKKyAgICAvLyBU
aGlzIGRvZXMgbm90IGFjdHVhbGx5IGNoZWNrIHdoZXRoZXIgdGhlIGhhcmR3YXJlIGNhbiBzdXBw
b3J0IGFjY2VsZXJhdGVkCisgICAgLy8gY29tcG9zaXRpbmcsIGJ1dCBvbmx5IGlmIHRoZSBmbGFn
IGlzIHNldC4gSG93ZXZlciwgdGhpcyBpcyBjaGVja2VkIGxhemlseQorICAgIC8vIGluIFdlYlZp
ZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSBhbmQgd2lsbCBmYWls
IHRoZXJlCisgICAgLy8gaWYgbmVjZXNzYXJ5LgorICAgIHJldHVybiBmcmFtZS0+Y29udGVudFJl
bmRlcmVyKCktPmNvbXBvc2l0b3IoKS0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpOwogfQog
Ci1XZWJWaWRlb0ZyYW1lKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmdldEN1cnJlbnRGcmFt
ZSgpCitib29sIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJl
bmRlcmluZygpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb25seSBi
eSB0aGUgY2xpZW50LgotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3dlYk1lZGlhUGxheWVyTXV0
ZXgpOwotICAgIEFTU0VSVCghbV9jdXJyZW50VmlkZW9GcmFtZSk7Ci0gICAgQVNTRVJUKG1fdmlk
ZW9GcmFtZVByb3ZpZGVyQ2xpZW50KTsKLSAgICBpZiAobV93ZWJNZWRpYVBsYXllcikKLSAgICAg
ICAgbV9jdXJyZW50VmlkZW9GcmFtZSA9IG1fd2ViTWVkaWFQbGF5ZXItPmdldEN1cnJlbnRGcmFt
ZSgpOwotICAgIHJldHVybiBtX2N1cnJlbnRWaWRlb0ZyYW1lOworICAgIHJldHVybiAhIW1fdmlk
ZW9MYXllcjsKIH0KIAotdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnB1dEN1cnJlbnRG
cmFtZShXZWJWaWRlb0ZyYW1lKiB2aWRlb0ZyYW1lKQorYm9vbCBXZWJNZWRpYVBsYXllckNsaWVu
dEltcGw6OmFjY2VsZXJhdGVkUmVuZGVyaW5nSW5Vc2UoKQogewotICAgIC8vIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIG9ubHkgYnkgdGhlIGNsaWVudC4KLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV93ZWJNZWRpYVBsYXllck11dGV4KTsKLSAgICBBU1NFUlQodmlkZW9GcmFtZSA9PSBtX2N1cnJl
bnRWaWRlb0ZyYW1lKTsKLSAgICBBU1NFUlQobV92aWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQpOwot
ICAgIGlmICghdmlkZW9GcmFtZSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChtX3dlYk1lZGlh
UGxheWVyKQotICAgICAgICBtX3dlYk1lZGlhUGxheWVyLT5wdXRDdXJyZW50RnJhbWUodmlkZW9G
cmFtZSk7Ci0gICAgbV9jdXJyZW50VmlkZW9GcmFtZSA9IDA7CisgICAgcmV0dXJuIG1fdmlkZW9M
YXllciAmJiAhbV92aWRlb0xheWVyLT5pc09ycGhhbigpOwogfQotI2VuZGlmCiAKIFBhc3NPd25Q
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6
OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQogewogICAgIE93blB0cjxXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw+IGNsaWVudCA9IGFkb3B0UHRyKG5ldyBXZWJNZWRpYVBsYXllckNsaWVudElt
cGwoKSk7CiAgICAgY2xpZW50LT5tX21lZGlhUGxheWVyID0gcGxheWVyOwotCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEhU
TUxNZWRpYUVsZW1lbnQqPigKLSAgICAgICAgY2xpZW50LT5tX21lZGlhUGxheWVyLT5tZWRpYVBs
YXllckNsaWVudCgpKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKLQotICAgIC8vIFRoaXMgZG9lcyBu
b3QgYWN0dWFsbHkgY2hlY2sgd2hldGhlciB0aGUgaGFyZHdhcmUgY2FuIHN1cHBvcnQgYWNjZWxl
cmF0ZWQKLSAgICAvLyBjb21wb3NpdGluZywgYnV0IG9ubHkgaWYgdGhlIGZsYWcgaXMgc2V0LiBI
b3dldmVyLCB0aGlzIGlzIGNoZWNrZWQgbGF6aWx5Ci0gICAgLy8gaW4gV2ViVmlld0ltcGw6OnNl
dElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGFuZCB3aWxsIGZhaWwgdGhlcmUKLSAg
ICAvLyBpZiBuZWNlc3NhcnkuCi0gICAgY2xpZW50LT5tX3N1cHBvcnRzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZyA9Ci0gICAgICAgIGZyYW1lLT5jb250ZW50UmVuZGVyZXIoKS0+Y29tcG9zaXRvcigp
LT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCk7Ci0jZW5kaWYKLQogICAgIHJldHVybiBjbGll
bnQucmVsZWFzZSgpOwogfQogCkBAIC04MjksMjggKzc3MCwxMiBAQCB2b2lkIFdlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbDo6c3RhcnREZWxheWVkTG9hZCgpCiAgICAgbG9hZEludGVybmFsKCk7CiB9
CiAKLXZvaWQgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpkaWRSZWNlaXZlRnJhbWUoKQotewot
ICAgIC8vIE5vIGxvY2sgc2luY2UgdGhpcyBnZXRzIGNhbGxlZCBvbiB0aGUgY2xpZW50J3MgdGhy
ZWFkLgotICAgIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50LT5kaWRSZWNlaXZlRnJhbWUoKTsK
LX0KLQotdm9pZCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmRpZFVwZGF0ZU1hdHJpeChjb25z
dCBmbG9hdCogbWF0cml4KQotewotICAgIC8vIE5vIGxvY2sgc2luY2UgdGhpcyBnZXRzIGNhbGxl
ZCBvbiB0aGUgY2xpZW50J3MgdGhyZWFkLgotICAgIG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50
LT5kaWRVcGRhdGVNYXRyaXgobWF0cml4KTsKLX0KLQogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGwoKQogICAgIDogbV9tZWRpYVBsYXllcigwKQotICAg
ICwgbV9jdXJyZW50VmlkZW9GcmFtZSgwKQogICAgICwgbV9kZWxheWluZ0xvYWQoZmFsc2UpCiAg
ICAgLCBtX3ByZWxvYWQoTWVkaWFQbGF5ZXI6Ok1ldGFEYXRhKQotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLSAgICAsIG1fc3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGZh
bHNlKQorICAgICwgbV92aWRlb0xheWVyKDApCiAgICAgLCBtX29wYXF1ZShmYWxzZSkKLSAgICAs
IG1fdmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KDApCi0jZW5kaWYKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApp
bmRleCA4MmQ4ZjI3ZTk5ZjEwMWZiYzRkYWFmNjM1ODJlZjczYzUxZGI3OTgxLi5jYzAyMjljOWE2
OTRlM2M0ODI5M2I5MDAxOTc5ZDI5NWYwMTQxODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaApAQCAtMzcsOCArMzcs
NiBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkF1ZGlv
U291cmNlUHJvdmlkZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJNZWRpYVBsYXllckNsaWVudC5o
IgotI2luY2x1ZGUgIldlYlN0cmVhbVRleHR1cmVDbGllbnQuaCIKLSNpbmNsdWRlIDxwdWJsaWMv
V2ViVmlkZW9GcmFtZVByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTQ5LDE2ICs0NywxMSBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIGNsYXNzIFdlYkhlbHBlclBsdWdpbkltcGw7CiBjbGFzcyBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyOwogY2xhc3MgV2ViTWVkaWFQbGF5ZXI7Ci1jbGFzcyBXZWJWaWRlb0xheWVyOworY2xh
c3MgV2ViTGF5ZXI7CiAKIC8vIFRoaXMgY2xhc3Mgc2VydmVzIGFzIGEgYnJpZGdlIGJldHdlZW4g
V2ViQ29yZTo6TWVkaWFQbGF5ZXIgYW5kCiAvLyBXZWJLaXQ6OldlYk1lZGlhUGxheWVyLgotY2xh
c3MgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsIDogcHVibGljIFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBXZWJWaWRlb0ZyYW1lUHJvdmlkZXIK
LSNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFdlYk1lZGlh
UGxheWVyQ2xpZW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgV2Vi
U3RyZWFtVGV4dHVyZUNsaWVudCB7CitjbGFzcyBXZWJNZWRpYVBsYXllckNsaWVudEltcGwgOiBw
dWJsaWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlLCBwdWJsaWMgV2ViTWVk
aWFQbGF5ZXJDbGllbnQgewogCiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNFbmFibGVkKCk7
CkBAIC05MCw3ICs4Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQga2V5TmVlZGVkKGNv
bnN0IFdlYlN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBXZWJTdHJpbmcmIHNlc3Npb25JZCwgY29u
c3QgdW5zaWduZWQgY2hhciogaW5pdERhdGEsIHVuc2lnbmVkIGluaXREYXRhTGVuZ3RoKTsKICAg
ICB2aXJ0dWFsIFdlYlBsdWdpbiogY3JlYXRlSGVscGVyUGx1Z2luKGNvbnN0IFdlYlN0cmluZyYg
cGx1Z2luVHlwZSwgV2ViRnJhbWUqKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VIZWxwZXJQbHVn
aW4oKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKTsK
KyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNXZWJMYXllcigpIGNvbnN0OworICAgIHZpcnR1YWwgdm9p
ZCBzZXRXZWJMYXllcihXZWJMYXllciopOwogCiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlIG1ldGhvZHM6CiAgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgV1RGOjpTdHJpbmcm
IHVybCk7CkBAIC0xNTAsMjUgKzE0NCwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCk7CiAjZW5kaWYKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0OwogCi0gICAgLy8gV2ViVmlkZW9GcmFtZVBy
b3ZpZGVyIG1ldGhvZHM6Ci0gICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnJhbWVQcm92aWRlckNs
aWVudChXZWJWaWRlb0ZyYW1lUHJvdmlkZXI6OkNsaWVudCopOwotICAgIHZpcnR1YWwgV2ViVmlk
ZW9GcmFtZSogZ2V0Q3VycmVudEZyYW1lKCk7Ci0gICAgdmlydHVhbCB2b2lkIHB1dEN1cnJlbnRG
cmFtZShXZWJWaWRlb0ZyYW1lKik7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCiAgICAgdmlydHVhbCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24g
Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCB1bnNpZ25l
ZCBjaGFyKiBpbml0RGF0YSwgdW5zaWduZWQgaW5pdERhdGFMZW5ndGgpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhS2V5RXhjZXB0aW9uIGFkZEtleShj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgdW5zaWduZWQgY2hhcioga2V5LCB1bnNpZ25l
ZCBrZXlMZW5ndGgsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluaXREYXRhLCB1bnNpZ25lZCBpbml0
RGF0YUxlbmd0aCwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhS2V5RXhjZXB0aW9uIGNhbmNlbEtleVJlcXVl
c3QoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKSBPVkVS
UklERTsKICNlbmRpZgogCi0gICAgLy8gV2ViU3RyZWFtVGV4dHVyZUNsaWVudCBtZXRob2RzOgot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRnJhbWUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
VXBkYXRlTWF0cml4KGNvbnN0IGZsb2F0Kik7Ci0KIHByb3RlY3RlZDoKICAgICBXZWJNZWRpYVBs
YXllckNsaWVudEltcGwoKTsKIHByaXZhdGU6CkBAIC0xODksMTkgKzE3MiwxNSBAQCBwcml2YXRl
OgogICAgIGJvb2wgYWNjZWxlcmF0ZWRSZW5kZXJpbmdJblVzZSgpOwogI2VuZGlmCiAKLSAgICBN
dXRleCBtX3dlYk1lZGlhUGxheWVyTXV0ZXg7IC8vIEd1YXJkcyB0aGUgbV93ZWJNZWRpYVBsYXll
cgogICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBtX21lZGlhUGxheWVyOwogICAgIE93blB0cjxX
ZWJNZWRpYVBsYXllcj4gbV93ZWJNZWRpYVBsYXllcjsKLSAgICBXZWJWaWRlb0ZyYW1lKiBtX2N1
cnJlbnRWaWRlb0ZyYW1lOwogICAgIFdlYkNvcmU6OktVUkwgbV91cmw7CiAgICAgYm9vbCBtX2Rl
bGF5aW5nTG9hZDsKICAgICBXZWJDb3JlOjpNZWRpYVBsYXllcjo6UHJlbG9hZCBtX3ByZWxvYWQ7
CiAgICAgUmVmUHRyPFdlYkhlbHBlclBsdWdpbkltcGw+IG1faGVscGVyUGx1Z2luOwogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBPd25QdHI8V2ViVmlkZW9MYXllcj4gbV92
aWRlb0xheWVyOwotICAgIGJvb2wgbV9zdXBwb3J0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7Cisg
ICAgV2ViTGF5ZXIqIG1fdmlkZW9MYXllcjsKICAgICBib29sIG1fb3BhcXVlOwotICAgIFdlYlZp
ZGVvRnJhbWVQcm92aWRlcjo6Q2xpZW50KiBtX3ZpZGVvRnJhbWVQcm92aWRlckNsaWVudDsKICNl
bmRpZgogICAgIHN0YXRpYyBib29sIG1faXNFbmFibGVkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbFRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJNZWRpYVBsYXllckNsaWVudEltcGxUZXN0
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZhMWE2ZTIyYWIyOTg4MzdjOWIy
YzhlNWQ3MWY1YTZlYzZlNmRiZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbFRlc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIwICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIldlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5oIgotCi0jaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1uYW1lc3BhY2UgewotCi1j
bGFzcyBGYWtlV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsIDogcHVibGljIFdlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RmFrZVdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IEZha2VXZWJN
ZWRpYVBsYXllckNsaWVudEltcGwoKSk7IH0KLQotcHJpdmF0ZToKLSAgICBGYWtlV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsKCkgeyB9Ci19OwotCi1jbGFzcyBGYWtlVmlkZW9GcmFtZVByb3ZpZGVy
Q2xpZW50IDogcHVibGljIFdlYlZpZGVvRnJhbWVQcm92aWRlcjo6Q2xpZW50IHsKLXB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc093blB0cjxGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50PiBjcmVh
dGUoV2ViVmlkZW9GcmFtZVByb3ZpZGVyKiBwcm92aWRlcikKLSAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgRmFrZVZpZGVvRnJhbWVQcm92aWRlckNsaWVudChwcm92aWRlcikpOwot
ICAgIH0KLQotICAgIHZpcnR1YWwgfkZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoKQotICAg
IHsKLSAgICAgICAgaWYgKG1fcHJvdmlkZXIpCi0gICAgICAgICAgICBtX3Byb3ZpZGVyLT5zZXRW
aWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoMCk7Ci0gICAgfQotCi0gICAgLy8gV2ViS2l0OjpXZWJW
aWRlb0ZyYW1lUHJvdmlkZXI6OkNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZUZyYW1lKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZU1hdHJp
eChjb25zdCBmbG9hdCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXNpbmdQcm92aWRlcigp
Ci0gICAgewotICAgICAgICBtX3Byb3ZpZGVyID0gMDsKLSAgICB9Ci0KLSAgICBXZWJWaWRlb0Zy
YW1lUHJvdmlkZXIqIHByb3ZpZGVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRlcjsgfQotCi1w
cml2YXRlOgotICAgIEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoV2ViVmlkZW9GcmFtZVBy
b3ZpZGVyKiBwcm92aWRlcikKLSAgICAgICAgOiBtX3Byb3ZpZGVyKHByb3ZpZGVyKQotICAgIHsK
LSAgICAgICAgbV9wcm92aWRlci0+c2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KHRoaXMpOwot
ICAgIH0KLQotICAgIFdlYlZpZGVvRnJhbWVQcm92aWRlciogbV9wcm92aWRlcjsKLX07Ci0KLVRF
U1QoV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdCwgSW5pdGlhbE51bGxWaWRlb0NsaWVudCkK
LXsKLSAgICAvLyBObyBleHBsaWN0IGNoZWNrcyBpbiB0aGlzIHRlc3Q7IGp1c3QgbWFrZSBzdXJl
IGl0IGRvZXNuJ3QgY3Jhc2guCi0gICAgT3duUHRyPFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbD4g
cHJvdmlkZXIoRmFrZVdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y3JlYXRlKCkpOwotICAgIHBy
b3ZpZGVyLT5zZXRWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoMCk7Ci19Ci0KLVRFU1QoV2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsVGVzdCwgU2V0QW5kVW5zZXRWaWRlb0NsaWVudCkKLXsKLSAgICBP
d25QdHI8V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsPiBwcm92aWRlcihGYWtlV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsOjpjcmVhdGUoKSk7Ci0gICAgT3duUHRyPEZha2VWaWRlb0ZyYW1lUHJvdmlk
ZXJDbGllbnQ+IGNsaWVudChGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50OjpjcmVhdGUocHJv
dmlkZXIuZ2V0KCkpKTsKLQotICAgIEVYUEVDVF9FUShjbGllbnQtPnByb3ZpZGVyKCksIHByb3Zp
ZGVyLmdldCgpKTsKLQotICAgIHByb3ZpZGVyLT5zZXRWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQo
MCk7Ci0gICAgQVNTRVJUX0ZBTFNFKGNsaWVudC0+cHJvdmlkZXIoKSk7Ci19Ci0KLVRFU1QoV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdCwgRGVzdHJveVByb3ZpZGVyKQotewotICAgIE93blB0
cjxXZWJNZWRpYVBsYXllckNsaWVudEltcGw+IHByb3ZpZGVyKEZha2VXZWJNZWRpYVBsYXllckNs
aWVudEltcGw6OmNyZWF0ZSgpKTsKLSAgICBPd25QdHI8RmFrZVZpZGVvRnJhbWVQcm92aWRlckNs
aWVudD4gY2xpZW50KEZha2VWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQ6OmNyZWF0ZShwcm92aWRl
ci5nZXQoKSkpOwotCi0gICAgRVhQRUNUX0VRKGNsaWVudC0+cHJvdmlkZXIoKSwgcHJvdmlkZXIp
OwotICAgIHByb3ZpZGVyLmNsZWFyKCk7Ci0gICAgQVNTRVJUX0ZBTFNFKGNsaWVudC0+cHJvdmlk
ZXIoKSk7Ci19Ci0KLVRFU1QoV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdCwgU2V0TXVsdGlw
bGVWaWRlb0NsaWVudHMpCi17Ci0gICAgT3duUHRyPFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbD4g
cHJvdmlkZXIoRmFrZVdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6Y3JlYXRlKCkpOwotICAgIE93
blB0cjxGYWtlVmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50PiBmaXJzdENsaWVudChGYWtlVmlkZW9G
cmFtZVByb3ZpZGVyQ2xpZW50OjpjcmVhdGUocHJvdmlkZXIuZ2V0KCkpKTsKLSAgICBFWFBFQ1Rf
RVEoZmlyc3RDbGllbnQtPnByb3ZpZGVyKCksIHByb3ZpZGVyKTsKLQotICAgIE93blB0cjxGYWtl
VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50PiBzZWNvbmRDbGllbnQoRmFrZVZpZGVvRnJhbWVQcm92
aWRlckNsaWVudDo6Y3JlYXRlKHByb3ZpZGVyLmdldCgpKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGZp
cnN0Q2xpZW50LT5wcm92aWRlcigpKTsKLSAgICBFWFBFQ1RfRVEoc2Vjb25kQ2xpZW50LT5wcm92
aWRlcigpLCBwcm92aWRlcik7Ci0KLSAgICBwcm92aWRlci5jbGVhcigpOwotICAgIEFTU0VSVF9G
QUxTRShmaXJzdENsaWVudC0+cHJvdmlkZXIoKSk7Ci0gICAgQVNTRVJUX0ZBTFNFKHNlY29uZENs
aWVudC0+cHJvdmlkZXIoKSk7Ci19Ci0KLX0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194962</attachid>
            <date>2013-03-25 17:31:18 -0700</date>
            <delta_ts>2013-03-25 17:32:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112483-20130325202701.patch</filename>
            <type>text/plain</type>
            <size>18906</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzZjlkNzY0N2QzMzFh
NDZhODcyMzMwNmM1OWU4ZjBmY2FkNWE4OWE3Li41ZTA1MjdmMjQ1Nzg2NjAwNzliYTQ5M2I3OWZh
MjA0YTk3OWNlNTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0wMy0yNSAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbd2lwXSBbY2hy
b21pdW1dIFJlbW92ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBX
ZWJTdHJlYW1UZXh0dXJlQ2xpZW50LCBhbmQgV2ViVmlkZW9MYXllciBjbGFzc2VzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDgzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgY2xhc3NlcyBh
cmUgbm8gbG9uZ2VyIHVzZWQsIHNvIHJlbW92ZSB0aGVtLiBBbmQgcmVtb3ZlIEFQSXMKKyAgICAg
ICAgdG8gcHJvdmlkZSB0aGVtLgorCisgICAgICAgICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAg
KiBjaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaDoKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZVByb3ZpZGVyLmg6IFJlbW92
ZWQuCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlZpZGVvTGF5ZXIuaDogUmVtb3ZlZC4K
KwogMjAxMy0wMy0yMSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbY2hyb21pdW1dIE1vdmUgb3duZXJzaGlwIG9mIGNvbXBvc2l0b3IgVmlkZW9MYXllciB0
byBXZWJNZWRpYVBsYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3ZGY1ZjJlNzg5
ODEzOWI2Mjg1NjcxYzBkOWE3ZGUxYjA0NTM3YmMyLi44OTAzNDYwMzU1ZWRjOTQ0NzE0Y2NjMjU3
NTg5NTA4YjA3M2IzYTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDEzLTAzLTI1ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFt3aXBdIFtjaHJvbWl1bV0gUmVtb3ZlIHRoZSBXZWJWaWRlb0ZyYW1lLCBXZWJWaWRl
b0ZyYW1lUHJvdmlkZXIsIFdlYlN0cmVhbVRleHR1cmVDbGllbnQsIGFuZCBXZWJWaWRlb0xheWVy
IGNsYXNzZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTI0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGVzZSBjbGFzc2VzIGFyZSBubyBsb25nZXIgdXNlZCwgc28gcmVtb3ZlIHRoZW0uCisKKyAg
ICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYk1lZGlhUGxheWVyKToKKyAgICAgICAgKiBw
dWJsaWMvV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1Ymxp
Yy9XZWJWaWRlb0ZyYW1lLmg6IFJlbW92ZWQuCisKIDIwMTMtMDMtMjEgIERhbmEgSmFuc2VucyAg
PGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBNb3ZlIG93bmVyc2hp
cCBvZiBjb21wb3NpdG9yIFZpZGVvTGF5ZXIgdG8gV2ViTWVkaWFQbGF5ZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3Jt
Lmd5cGkKaW5kZXggNGU4MzkzZGQxYWVhYThiNzU5M2EzNzMwMmYyZTI2NTk2MjVmOTY4NS4uMTMx
YTBjMTYyNDUwOTQ2OTJlNzFkZmY3NmU4MDg3OWY0MzM3NDc5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5
cGkKQEAgLTE1MCw5ICsxNTAsNiBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJV
UkxSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNwb25z
ZS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVmVjdG9yLmgnLAotICAgICAg
ICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0xheWVyLmgnLAotICAgICAgICAgICAgJ2No
cm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVi
bGljL1dlYldvcmtlclJ1bkxvb3AuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL2Fu
ZHJvaWQvV2ViU2FuZGJveFN1cHBvcnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGlj
L2FuZHJvaWQvV2ViVGhlbWVFbmdpbmUuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0LmggYi9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0LmgKaW5kZXggZDZkNThiYjhhN2Y4
OWU0YjMxOTc1MGJlMWYzMjc2OGQ3MjFjNWZmZC4uNmI2MGE5ZTkxZmY0ZWI4ZDlmMDIzNzEzYTYy
ZmIyMTcxYTMwOWFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaApAQCAtNTAsOCArNTAsNiBAQCBjbGFzcyBXZWJT
b2xpZENvbG9yTGF5ZXI7CiBjbGFzcyBXZWJUaHJlYWQ7CiBjbGFzcyBXZWJUcmFuc2Zvcm1Bbmlt
YXRpb25DdXJ2ZTsKIGNsYXNzIFdlYlRyYW5zZm9ybU9wZXJhdGlvbnM7Ci1jbGFzcyBXZWJWaWRl
b0ZyYW1lUHJvdmlkZXI7Ci1jbGFzcyBXZWJWaWRlb0xheWVyOwogCiBjbGFzcyBXZWJDb21wb3Np
dG9yU3VwcG9ydCB7CiBwdWJsaWM6CkBAIC04Myw4ICs4MSw2IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgV2ViU29saWRDb2xvckxheWVyKiBjcmVhdGVTb2xpZENvbG9yTGF5ZXIoKSB7IHJldHVy
biAwOyB9CiAKLSAgICB2aXJ0dWFsIFdlYlZpZGVvTGF5ZXIqIGNyZWF0ZVZpZGVvTGF5ZXIoV2Vi
VmlkZW9GcmFtZVByb3ZpZGVyKikgeyByZXR1cm4gMDsgfQotCiAgICAgdmlydHVhbCBXZWJTY3Jv
bGxiYXJMYXllciogY3JlYXRlU2Nyb2xsYmFyTGF5ZXIoV2ViU2Nyb2xsYmFyKiwgV2ViU2Nyb2xs
YmFyVGhlbWVQYWludGVyLCBXZWJTY3JvbGxiYXJUaGVtZUdlb21ldHJ5KikgeyByZXR1cm4gMDsg
fQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlk
ZW9GcmFtZS5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1l
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2ZGMyZTQyMGM4NTE1ZjhiZTc2NTMy
OWI3Zjc2M2U4ZDNkMmI5OTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJWaWRlb0ZyYW1lX2gKLSNk
ZWZpbmUgV2ViVmlkZW9GcmFtZV9oCi0KLSNkZWZpbmUgUkVNT1ZFX1dFQlZJREVPRlJBTUUKLQot
I2luY2x1ZGUgIldlYlJlY3QuaCIKLSNpbmNsdWRlICJXZWJTaXplLmgiCi0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi0vLyBBIGJhc2UgY2xhc3MgZm9yIHRoZSBjb250YWluZXIgd2hpY2ggaG9sZHMg
YSBtZWRpYTo6VmlkZW9GcmFtZS4KLWNsYXNzIFdlYlZpZGVvRnJhbWUgewotcHVibGljOgotICAg
IHZpcnR1YWwgfldlYlZpZGVvRnJhbWUoKSB7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlkZW9GcmFtZVByb3ZpZGVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYlZpZGVvRnJhbWVQcm92aWRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
NDU1MmU4MDIwYzg0YWQ2ZTgzOWNmY2QwMDA1MTg1Zjc2ZTA4ZWMxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlkZW9GcmFtZVByb3ZpZGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgot
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0g
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBXZWJWaWRlb0ZyYW1lUHJvdmlkZXJfaAotI2RlZmluZSBXZWJWaWRlb0ZyYW1l
UHJvdmlkZXJfaAotCi0jaW5jbHVkZSAiV2ViQ29tbW9uLmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9G
cmFtZS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gVGhyZWFkaW5nIG5vdGVzOiBUaGlz
IGNsYXNzIG1heSBiZSB1c2VkIGluIGEgbXVsdGkgdGhyZWFkZWQgbWFubmVyLiBTcGVjaWZpY2Fs
bHksIHRoZSBpbXBsZW1lbnRhdGlvbgotLy8gbWF5IGNhbGwgZ2V0Q3VycmVudEZyYW1lKCkgLyBw
dXRDdXJyZW50RnJhbWUoKSBmcm9tIGEgbm9uLW1haW4gdGhyZWFkLiBJZiBzbywgdGhlIGNhbGxl
ciBpcyByZXNwb25zaWJsZQotLy8gZm9yIG1ha2luZyBzdXJlIENsaWVudDo6ZGlkUmVjZWl2ZUZy
YW1lIGFuZCBDbGllbnQ6OmRpZFVwZGF0ZU1hdHJpeCBhcmUgb25seSBjYWxsZWQgZnJvbSB0aGlz
IHRocmVhZC4KLWNsYXNzIFdlYlZpZGVvRnJhbWVQcm92aWRlciB7Ci1wdWJsaWM6Ci0gICAgdmly
dHVhbCB+V2ViVmlkZW9GcmFtZVByb3ZpZGVyKCkgeyB9Ci0KLSAgICBjbGFzcyBDbGllbnQgewot
ICAgIHB1YmxpYzoKLSAgICAgICAgLy8gUHJvdmlkZXIgd2lsbCBjYWxsIHRoaXMgbWV0aG9kIHRv
IHRlbGwgdGhlIGNsaWVudCB0byBzdG9wIHVzaW5nIGl0LgotICAgICAgICAvLyBzdG9wVXNpbmdQ
cm92aWRlcigpIG1heSBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLiBUaGUgY2xpZW50IHNob3Vs
ZAotICAgICAgICAvLyBibG9jayB1bnRpbCBpdCBoYXMgcHV0Q3VycmVudEZyYW1lIGFueSBvdXRz
dGFuZGluZyBmcmFtZXMuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzdG9wVXNpbmdQcm92aWRlcigp
ID0gMDsKLQotICAgICAgICAvLyBOb3RpZmllcyB0aGUgcHJvdmlkZXIncyBjbGllbnQgdGhhdCBh
IGNhbGwgdG8gZ2V0Q3VycmVudEZyYW1lKCkgd2lsbCByZXR1cm4gbmV3IGRhdGEuCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRnJhbWUoKSA9IDA7Ci0KLSAgICAgICAgLy8gTm90aWZp
ZXMgdGhlIHByb3ZpZGVyJ3MgY2xpZW50IG9mIGEgbmV3IFVWIHRyYW5zZm9ybSBtYXRyaXggdG8g
YmUgdXNlZCB3aGVuIGRyYXdpbmcgZnJhbWVzCi0gICAgICAgIC8vIG9mIHR5cGUgV2ViVmlkZW9G
cmFtZTo6Rm9ybWF0U3RyZWFtVGV4dHVyZS4KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0
ZU1hdHJpeChjb25zdCBmbG9hdCopID0gMDsKLSAgICB9OwotCi0gICAgLy8gTWF5IGJlIGNhbGxl
ZCBmcm9tIGFueSB0aHJlYWQsIGJ1dCB0aGVyZSBtdXN0IGJlIHNvbWUgZXh0ZXJuYWwgZ3VhcmFu
dGVlCi0gICAgLy8gdGhhdCB0aGUgcHJvdmlkZXIgaXMgbm90IGRlc3Ryb3llZCBiZWZvcmUgdGhp
cyBjYWxsIHJldHVybnMuCi0gICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnJhbWVQcm92aWRlckNs
aWVudChDbGllbnQqKSA9IDA7Ci0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHBsYWNlcyBhIGxvY2sg
b24gdGhlIGN1cnJlbnQgZnJhbWUgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIGl0LgotICAgIC8v
IENhbGxzIHRvIHRoaXMgbWV0aG9kIHNob3VsZCBhbHdheXMgYmUgZm9sbG93ZWQgd2l0aCBhIGNh
bGwgdG8gcHV0Q3VycmVudEZyYW1lKCkuCi0gICAgLy8gVGhlIG93bmVyc2hpcCBvZiB0aGUgb2Jq
ZWN0IGlzIG5vdCB0cmFuc2ZlcnJlZCB0byB0aGUgY2FsbGVyIGFuZAotICAgIC8vIHRoZSBjYWxs
ZXIgc2hvdWxkIG5vdCBmcmVlIHRoZSByZXR1cm5lZCBvYmplY3QuIE9ubHkgdGhlIGN1cnJlbnQg
cHJvdmlkZXIKLSAgICAvLyBjbGllbnQgc2hvdWxkIGNhbGwgdGhpcyBmdW5jdGlvbi4KLSAgICB2
aXJ0dWFsIFdlYlZpZGVvRnJhbWUqIGdldEN1cnJlbnRGcmFtZSgpID0gMDsKLSAgICAvLyBUaGlz
IGZ1bmN0aW9uIHJlbGVhc2VzIHRoZSBsb2NrIG9uIHRoZSB2aWRlbyBmcmFtZSBpbiBjaHJvbWl1
bS4gSXQgc2hvdWxkCi0gICAgLy8gYWx3YXlzIGJlIGNhbGxlZCBhZnRlciBnZXRDdXJyZW50RnJh
bWUoKS4gRnJhbWVzIHBhc3NlZCBpbnRvIHRoaXMgbWV0aG9kCi0gICAgLy8gc2hvdWxkIG5vIGxv
bmdlciBiZSByZWZlcmVuY2VkIGFmdGVyIHRoZSBjYWxsIGlzIG1hZGUuIE9ubHkgdGhlIGN1cnJl
bnQKLSAgICAvLyBwcm92aWRlciBjbGllbnQgc2hvdWxkIGNhbGwgdGhpcyBmdW5jdGlvbi4KLSAg
ICB2aXJ0dWFsIHZvaWQgcHV0Q3VycmVudEZyYW1lKFdlYlZpZGVvRnJhbWUqKSA9IDA7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvTGF5ZXIuaCBiL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9MYXllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyMjdkNjllMTBhMGRmYjk3OGM5MDAwNGVmZmU3MjhjYTE2NjlhM2I2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlkZW9MYXllci5oCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgV2ViVmlkZW9MYXllcl9oCi0jZGVmaW5lIFdlYlZpZGVvTGF5ZXJf
aAotCi0jaW5jbHVkZSAiV2ViQ29tbW9uLmgiCi0jaW5jbHVkZSAiV2ViTGF5ZXIuaCIKLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlZpZGVvRnJhbWVQcm92aWRlcjsKLQotY2xhc3Mg
V2ViVmlkZW9MYXllciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViVmlkZW9MYXllcigpIHsg
fQotCi0gICAgdmlydHVhbCBXZWJMYXllciogbGF5ZXIoKSA9IDA7Ci0KLSAgICAvLyBSZXR1cm5z
IHRydWUgaWYgdGhpcyBsYXllciBpcyBhY3RpdmVseSByZW5kZXJpbmcgKGUuZy4gY3VycmVudGx5
IGF0dGFjaGVkIHRvIGEgV2ViTGF5ZXJUcmVlVmlldykuCi0gICAgdmlydHVhbCBib29sIGFjdGl2
ZSgpIGNvbnN0ID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8g
V2ViVmlkZW9MYXllcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggZTYzMzU3ZDU5
NmQ5NzhjODBiOWRkMTE3MjEwOTBkMTAzZDkxOWEzOC4uOTVkOTMwZGQ1ZTFjOTg5MjcyNTM5NTNm
YmZhNzc4NGRmYmE1YjlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMjYyLDcg
KzI2Miw2IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFUeXBlLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZVF1b3RhRXJyb3IuaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJTdXJyb3VuZGluZ1RleHQuaCcsCi0gICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViVGV4dEFmZmluaXR5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVGV4
dENhc2VTZW5zaXRpdml0eS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlRleHRDaGVj
a2luZ0NvbXBsZXRpb24uaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJNZWRpYVBsYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
TWVkaWFQbGF5ZXIuaAppbmRleCBhZDU2YzFiY2JhMWMzMWFjMmUxYmMyNzU4MGFhMWU2NjYzN2E2
YjkwLi43NDlmMDM4NjBjNzc5ZDgxMjBhOThjNTI3ZTI2MzAyY2IwYjNmMGI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKQEAgLTMzLDcgKzMz
LDYgQEAKIAogI2luY2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJD
YW52YXMuaCIKICNpbmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
U3RyaW5nLmgiCi0jaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YlZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJXZWJUaW1lUmFuZ2UuaCIKIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC00Miw3ICs0MSw2IEBAIGNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXI7CiBj
bGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50OwogY2xhc3MgV2ViTWVkaWFQbGF5ZXJD
bGllbnQ7CiBjbGFzcyBXZWJNZWRpYVNvdXJjZTsKLWNsYXNzIFdlYlN0cmVhbVRleHR1cmVDbGll
bnQ7CiBjbGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJVUkw7CiBzdHJ1Y3QgV2ViUmVjdDsKQEAg
LTE1NSwyMyArMTUzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgYXVkaW9EZWNv
ZGVkQnl0ZUNvdW50KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdW5zaWduZWQgdmlkZW9EZWNv
ZGVkQnl0ZUNvdW50KCkgY29uc3QgPSAwOwogCi0gICAgLy8gVGhpcyBmdW5jdGlvbiByZXR1cm5z
IGEgcG9pbnRlciB0byBhIFdlYlZpZGVvRnJhbWUsIHdoaWNoIGlzCi0gICAgLy8gYSBXZWJLaXQg
d3JhcHBlciBmb3IgYSB2aWRlbyBmcmFtZSBpbiBjaHJvbWl1bS4gVGhpcyBwbGFjZXMgYSBsb2Nr
Ci0gICAgLy8gb24gdGhlIGZyYW1lIGluIGNocm9taXVtLCBhbmQgY2FsbHMgdG8gdGhpcyBtZXRo
b2Qgc2hvdWxkIGFsd2F5cyBiZQotICAgIC8vIGZvbGxvd2VkIHdpdGggYSBjYWxsIHRvIHB1dEN1
cnJlbnRGcmFtZSgpLiBUaGUgb3duZXJzaGlwIG9mIHRoaXMgb2JqZWN0Ci0gICAgLy8gaXMgbm90
IHRyYW5zZmVycmVkIHRvIHRoZSBjYWxsZXIsIGFuZCB0aGUgY2FsbGVyIHNob3VsZCBub3QgZnJl
ZSB0aGUKLSAgICAvLyByZXR1cm5lZCBvYmplY3QuCi0gICAgdmlydHVhbCBXZWJWaWRlb0ZyYW1l
KiBnZXRDdXJyZW50RnJhbWUoKSB7IHJldHVybiAwOyB9Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBy
ZWxlYXNlcyB0aGUgbG9jayBvbiB0aGUgY3VycmVudCB2aWRlbyBmcmFtZSBpbiBDaHJvbWl1bS4K
LSAgICAvLyBJdCBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBhZnRlciBnZXRDdXJyZW50RnJhbWUo
KS4gRnJhbWUgcGFzc2VkIHRvIHRoaXMKLSAgICAvLyBtZXRob2Qgc2hvdWxkIG5vIGxvbmdlciBi
ZSByZWZlcmVuY2VkIGFmdGVyIHRoZSBjYWxsIGlzIG1hZGUuCi0gICAgdmlydHVhbCB2b2lkIHB1
dEN1cnJlbnRGcmFtZShXZWJWaWRlb0ZyYW1lKikgeyB9Ci0KICAgICAvLyBEbyBhIEdQVS1HUFUg
dGV4dHVyZXMgY29weSBpZiBwb3NzaWJsZS4KICAgICB2aXJ0dWFsIGJvb2wgY29weVZpZGVvVGV4
dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkdyYXBoaWNzQ29udGV4dDNEKiwgdW5zaWduZWQgdGV4
dHVyZSwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIGludGVybmFsRm9ybWF0LCBib29sIHByZW11
bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0U3RyZWFtVGV4dHVyZUNsaWVudChXZWJTdHJlYW1UZXh0dXJlQ2xpZW50KikgeyB9
Ci0KICAgICB2aXJ0dWFsIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlk
ZXIoKSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBSZXR1cm5zIHdoZXRoZXIga2V5U3lzdGVtIGlz
IHN1cHBvcnRlZC4gSWYgdHJ1ZSwgdGhlIHJlc3VsdCB3aWxsIGJlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxMDAyZmIyNmFkNzkzZGE2ZDZhNDY4ODYwYzBmMGFk
ZWU3MzRlNmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5oCisr
KyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViU3RyZWFtVGV4dHVyZUNsaWVu
dF9oCi0jZGVmaW5lIFdlYlN0cmVhbVRleHR1cmVDbGllbnRfaAotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotY2xhc3MgV2ViU3RyZWFtVGV4dHVyZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVGcmFtZSgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRl
TWF0cml4KGNvbnN0IGZsb2F0KikgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+V2Vi
U3RyZWFtVGV4dHVyZUNsaWVudCgpIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlk
ZW9GcmFtZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NDhhN2E0NDQwYmZkMjZiYmQ0NTUzOTlj
MjFmNzE1ODFkYzY2MjllLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaAorKysg
L2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiLi4vLi4vLi4vUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194963</attachid>
            <date>2013-03-25 17:32:13 -0700</date>
            <delta_ts>2013-03-26 17:23:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112483-20130325202756.patch</filename>
            <type>text/plain</type>
            <size>18894</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzZjlkNzY0N2QzMzFh
NDZhODcyMzMwNmM1OWU4ZjBmY2FkNWE4OWE3Li43MmIyMmYxOTM2NzBiNjJlNmYzNDczZTE3YWJl
NWM4N2NmNmQ0MDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0wMy0yNSAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IFJlbW92ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBXZWJTdHJl
YW1UZXh0dXJlQ2xpZW50LCBhbmQgV2ViVmlkZW9MYXllciBjbGFzc2VzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgY2xhc3NlcyBhcmUgbm8g
bG9uZ2VyIHVzZWQsIHNvIHJlbW92ZSB0aGVtLiBBbmQgcmVtb3ZlIEFQSXMKKyAgICAgICAgdG8g
cHJvdmlkZSB0aGVtLgorCisgICAgICAgICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJv
bWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZVByb3ZpZGVyLmg6IFJlbW92ZWQuCisg
ICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlZpZGVvTGF5ZXIuaDogUmVtb3ZlZC4KKwogMjAx
My0wMy0yMSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
Y2hyb21pdW1dIE1vdmUgb3duZXJzaGlwIG9mIGNvbXBvc2l0b3IgVmlkZW9MYXllciB0byBXZWJN
ZWRpYVBsYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3ZGY1ZjJlNzg5ODEzOWI2
Mjg1NjcxYzBkOWE3ZGUxYjA0NTM3YmMyLi4wNmE1MWNiNzIzMGU1YTBhOWJhOTBmOTI3OTA5ZDBh
ZjcwMjE1ZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDEzLTAzLTI1ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFtjaHJvbWl1bV0gUmVtb3ZlIHRoZSBXZWJWaWRlb0ZyYW1lLCBXZWJWaWRlb0ZyYW1lUHJvdmlk
ZXIsIFdlYlN0cmVhbVRleHR1cmVDbGllbnQsIGFuZCBXZWJWaWRlb0xheWVyIGNsYXNzZXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0ODMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVzZSBjbGFz
c2VzIGFyZSBubyBsb25nZXIgdXNlZCwgc28gcmVtb3ZlIHRoZW0uCisKKyAgICAgICAgKiBXZWJL
aXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYk1lZGlhUGxheWVyKToKKyAgICAgICAgKiBwdWJsaWMvV2ViU3Ry
ZWFtVGV4dHVyZUNsaWVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1YmxpYy9XZWJWaWRlb0Zy
YW1lLmg6IFJlbW92ZWQuCisKIDIwMTMtMDMtMjEgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBNb3ZlIG93bmVyc2hpcCBvZiBjb21wb3Np
dG9yIFZpZGVvTGF5ZXIgdG8gV2ViTWVkaWFQbGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0
Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKaW5kZXgg
NGU4MzkzZGQxYWVhYThiNzU5M2EzNzMwMmYyZTI2NTk2MjVmOTY4NS4uMTMxYTBjMTYyNDUwOTQ2
OTJlNzFkZmY3NmU4MDg3OWY0MzM3NDc5YiAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL1Bs
YXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKQEAgLTE1MCw5
ICsxNTAsNiBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0Lmgn
LAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNwb25zZS5oJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViVmVjdG9yLmgnLAotICAgICAgICAgICAgJ2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWRlb0xheWVyLmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWRlb0ZyYW1lLmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJWaWRl
b0ZyYW1lUHJvdmlkZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYldvcmtl
clJ1bkxvb3AuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViU2Fu
ZGJveFN1cHBvcnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2Vi
VGhlbWVFbmdpbmUuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0LmgKaW5kZXggZDZkNThiYjhhN2Y4OWU0YjMxOTc1MGJl
MWYzMjc2OGQ3MjFjNWZmZC4uNmI2MGE5ZTkxZmY0ZWI4ZDlmMDIzNzEzYTYyZmIyMTcxYTMwOWFh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3Np
dG9yU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29t
cG9zaXRvclN1cHBvcnQuaApAQCAtNTAsOCArNTAsNiBAQCBjbGFzcyBXZWJTb2xpZENvbG9yTGF5
ZXI7CiBjbGFzcyBXZWJUaHJlYWQ7CiBjbGFzcyBXZWJUcmFuc2Zvcm1BbmltYXRpb25DdXJ2ZTsK
IGNsYXNzIFdlYlRyYW5zZm9ybU9wZXJhdGlvbnM7Ci1jbGFzcyBXZWJWaWRlb0ZyYW1lUHJvdmlk
ZXI7Ci1jbGFzcyBXZWJWaWRlb0xheWVyOwogCiBjbGFzcyBXZWJDb21wb3NpdG9yU3VwcG9ydCB7
CiBwdWJsaWM6CkBAIC04Myw4ICs4MSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgV2ViU29s
aWRDb2xvckxheWVyKiBjcmVhdGVTb2xpZENvbG9yTGF5ZXIoKSB7IHJldHVybiAwOyB9CiAKLSAg
ICB2aXJ0dWFsIFdlYlZpZGVvTGF5ZXIqIGNyZWF0ZVZpZGVvTGF5ZXIoV2ViVmlkZW9GcmFtZVBy
b3ZpZGVyKikgeyByZXR1cm4gMDsgfQotCiAgICAgdmlydHVhbCBXZWJTY3JvbGxiYXJMYXllciog
Y3JlYXRlU2Nyb2xsYmFyTGF5ZXIoV2ViU2Nyb2xsYmFyKiwgV2ViU2Nyb2xsYmFyVGhlbWVQYWlu
dGVyLCBXZWJTY3JvbGxiYXJUaGVtZUdlb21ldHJ5KikgeyByZXR1cm4gMDsgfQogCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIGIv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2ZGMyZTQyMGM4NTE1ZjhiZTc2NTMyOWI3Zjc2M2U4ZDNk
MmI5OTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJWaWRlb0ZyYW1lX2gKLSNkZWZpbmUgV2ViVmlk
ZW9GcmFtZV9oCi0KLSNkZWZpbmUgUkVNT1ZFX1dFQlZJREVPRlJBTUUKLQotI2luY2x1ZGUgIldl
YlJlY3QuaCIKLSNpbmNsdWRlICJXZWJTaXplLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi0v
LyBBIGJhc2UgY2xhc3MgZm9yIHRoZSBjb250YWluZXIgd2hpY2ggaG9sZHMgYSBtZWRpYTo6Vmlk
ZW9GcmFtZS4KLWNsYXNzIFdlYlZpZGVvRnJhbWUgewotcHVibGljOgotICAgIHZpcnR1YWwgfldl
YlZpZGVvRnJhbWUoKSB7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFt
ZVByb3ZpZGVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJh
bWVQcm92aWRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNDU1MmU4MDIwYzg0
YWQ2ZTgzOWNmY2QwMDA1MTg1Zjc2ZTA4ZWMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlk
ZW9GcmFtZVByb3ZpZGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3Ry
aWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBX
ZWJWaWRlb0ZyYW1lUHJvdmlkZXJfaAotI2RlZmluZSBXZWJWaWRlb0ZyYW1lUHJvdmlkZXJfaAot
Ci0jaW5jbHVkZSAiV2ViQ29tbW9uLmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9GcmFtZS5oIgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gVGhyZWFkaW5nIG5vdGVzOiBUaGlzIGNsYXNzIG1heSBi
ZSB1c2VkIGluIGEgbXVsdGkgdGhyZWFkZWQgbWFubmVyLiBTcGVjaWZpY2FsbHksIHRoZSBpbXBs
ZW1lbnRhdGlvbgotLy8gbWF5IGNhbGwgZ2V0Q3VycmVudEZyYW1lKCkgLyBwdXRDdXJyZW50RnJh
bWUoKSBmcm9tIGEgbm9uLW1haW4gdGhyZWFkLiBJZiBzbywgdGhlIGNhbGxlciBpcyByZXNwb25z
aWJsZQotLy8gZm9yIG1ha2luZyBzdXJlIENsaWVudDo6ZGlkUmVjZWl2ZUZyYW1lIGFuZCBDbGll
bnQ6OmRpZFVwZGF0ZU1hdHJpeCBhcmUgb25seSBjYWxsZWQgZnJvbSB0aGlzIHRocmVhZC4KLWNs
YXNzIFdlYlZpZGVvRnJhbWVQcm92aWRlciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViVmlk
ZW9GcmFtZVByb3ZpZGVyKCkgeyB9Ci0KLSAgICBjbGFzcyBDbGllbnQgewotICAgIHB1YmxpYzoK
LSAgICAgICAgLy8gUHJvdmlkZXIgd2lsbCBjYWxsIHRoaXMgbWV0aG9kIHRvIHRlbGwgdGhlIGNs
aWVudCB0byBzdG9wIHVzaW5nIGl0LgotICAgICAgICAvLyBzdG9wVXNpbmdQcm92aWRlcigpIG1h
eSBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLiBUaGUgY2xpZW50IHNob3VsZAotICAgICAgICAv
LyBibG9jayB1bnRpbCBpdCBoYXMgcHV0Q3VycmVudEZyYW1lIGFueSBvdXRzdGFuZGluZyBmcmFt
ZXMuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzdG9wVXNpbmdQcm92aWRlcigpID0gMDsKLQotICAg
ICAgICAvLyBOb3RpZmllcyB0aGUgcHJvdmlkZXIncyBjbGllbnQgdGhhdCBhIGNhbGwgdG8gZ2V0
Q3VycmVudEZyYW1lKCkgd2lsbCByZXR1cm4gbmV3IGRhdGEuCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlRnJhbWUoKSA9IDA7Ci0KLSAgICAgICAgLy8gTm90aWZpZXMgdGhlIHByb3Zp
ZGVyJ3MgY2xpZW50IG9mIGEgbmV3IFVWIHRyYW5zZm9ybSBtYXRyaXggdG8gYmUgdXNlZCB3aGVu
IGRyYXdpbmcgZnJhbWVzCi0gICAgICAgIC8vIG9mIHR5cGUgV2ViVmlkZW9GcmFtZTo6Rm9ybWF0
U3RyZWFtVGV4dHVyZS4KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZU1hdHJpeChjb25z
dCBmbG9hdCopID0gMDsKLSAgICB9OwotCi0gICAgLy8gTWF5IGJlIGNhbGxlZCBmcm9tIGFueSB0
aHJlYWQsIGJ1dCB0aGVyZSBtdXN0IGJlIHNvbWUgZXh0ZXJuYWwgZ3VhcmFudGVlCi0gICAgLy8g
dGhhdCB0aGUgcHJvdmlkZXIgaXMgbm90IGRlc3Ryb3llZCBiZWZvcmUgdGhpcyBjYWxsIHJldHVy
bnMuCi0gICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnJhbWVQcm92aWRlckNsaWVudChDbGllbnQq
KSA9IDA7Ci0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHBsYWNlcyBhIGxvY2sgb24gdGhlIGN1cnJl
bnQgZnJhbWUgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIGl0LgotICAgIC8vIENhbGxzIHRvIHRo
aXMgbWV0aG9kIHNob3VsZCBhbHdheXMgYmUgZm9sbG93ZWQgd2l0aCBhIGNhbGwgdG8gcHV0Q3Vy
cmVudEZyYW1lKCkuCi0gICAgLy8gVGhlIG93bmVyc2hpcCBvZiB0aGUgb2JqZWN0IGlzIG5vdCB0
cmFuc2ZlcnJlZCB0byB0aGUgY2FsbGVyIGFuZAotICAgIC8vIHRoZSBjYWxsZXIgc2hvdWxkIG5v
dCBmcmVlIHRoZSByZXR1cm5lZCBvYmplY3QuIE9ubHkgdGhlIGN1cnJlbnQgcHJvdmlkZXIKLSAg
ICAvLyBjbGllbnQgc2hvdWxkIGNhbGwgdGhpcyBmdW5jdGlvbi4KLSAgICB2aXJ0dWFsIFdlYlZp
ZGVvRnJhbWUqIGdldEN1cnJlbnRGcmFtZSgpID0gMDsKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHJl
bGVhc2VzIHRoZSBsb2NrIG9uIHRoZSB2aWRlbyBmcmFtZSBpbiBjaHJvbWl1bS4gSXQgc2hvdWxk
Ci0gICAgLy8gYWx3YXlzIGJlIGNhbGxlZCBhZnRlciBnZXRDdXJyZW50RnJhbWUoKS4gRnJhbWVz
IHBhc3NlZCBpbnRvIHRoaXMgbWV0aG9kCi0gICAgLy8gc2hvdWxkIG5vIGxvbmdlciBiZSByZWZl
cmVuY2VkIGFmdGVyIHRoZSBjYWxsIGlzIG1hZGUuIE9ubHkgdGhlIGN1cnJlbnQKLSAgICAvLyBw
cm92aWRlciBjbGllbnQgc2hvdWxkIGNhbGwgdGhpcyBmdW5jdGlvbi4KLSAgICB2aXJ0dWFsIHZv
aWQgcHV0Q3VycmVudEZyYW1lKFdlYlZpZGVvRnJhbWUqKSA9IDA7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYlZpZGVvTGF5ZXIuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlkZW9MYXllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjdkNjll
MTBhMGRmYjk3OGM5MDAwNGVmZmU3MjhjYTE2NjlhM2I2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlkZW9MYXllci5oCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgV2ViVmlkZW9MYXllcl9oCi0jZGVmaW5lIFdlYlZpZGVvTGF5ZXJfaAotCi0jaW5jbHVk
ZSAiV2ViQ29tbW9uLmgiCi0jaW5jbHVkZSAiV2ViTGF5ZXIuaCIKLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLWNsYXNzIFdlYlZpZGVvRnJhbWVQcm92aWRlcjsKLQotY2xhc3MgV2ViVmlkZW9MYXll
ciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViVmlkZW9MYXllcigpIHsgfQotCi0gICAgdmly
dHVhbCBXZWJMYXllciogbGF5ZXIoKSA9IDA7Ci0KLSAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhp
cyBsYXllciBpcyBhY3RpdmVseSByZW5kZXJpbmcgKGUuZy4gY3VycmVudGx5IGF0dGFjaGVkIHRv
IGEgV2ViTGF5ZXJUcmVlVmlldykuCi0gICAgdmlydHVhbCBib29sIGFjdGl2ZSgpIGNvbnN0ID0g
MDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViVmlkZW9MYXll
cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggZTYzMzU3ZDU5NmQ5NzhjODBiOWRk
MTE3MjEwOTBkMTAzZDkxOWEzOC4uOTVkOTMwZGQ1ZTFjOTg5MjcyNTM5NTNmYmZhNzc4NGRmYmE1
YjlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMjYyLDcgKzI2Miw2IEBACiAg
ICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFUeXBlLmgnLAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZVF1b3RhRXJyb3IuaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJTdXJyb3VuZGluZ1RleHQuaCcsCi0gICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVGV4
dEFmZmluaXR5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVGV4dENhc2VTZW5zaXRp
dml0eS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlRleHRDaGVja2luZ0NvbXBsZXRp
b24uaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRp
YVBsYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIu
aAppbmRleCBhZDU2YzFiY2JhMWMzMWFjMmUxYmMyNzU4MGFhMWU2NjYzN2E2YjkwLi43NDlmMDM4
NjBjNzc5ZDgxMjBhOThjNTI3ZTI2MzAyY2IwYjNmMGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKQEAgLTMzLDcgKzMzLDYgQEAKIAogI2lu
Y2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDYW52YXMuaCIKICNp
bmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyaW5nLmgiCi0j
aW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUu
aCIKICNpbmNsdWRlICJXZWJUaW1lUmFuZ2UuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00
Miw3ICs0MSw2IEBAIGNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXI7CiBjbGFzcyBXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQ2xpZW50OwogY2xhc3MgV2ViTWVkaWFQbGF5ZXJDbGllbnQ7CiBjbGFz
cyBXZWJNZWRpYVNvdXJjZTsKLWNsYXNzIFdlYlN0cmVhbVRleHR1cmVDbGllbnQ7CiBjbGFzcyBX
ZWJTdHJpbmc7CiBjbGFzcyBXZWJVUkw7CiBzdHJ1Y3QgV2ViUmVjdDsKQEAgLTE1NSwyMyArMTUz
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgYXVkaW9EZWNvZGVkQnl0ZUNvdW50
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdW5zaWduZWQgdmlkZW9EZWNvZGVkQnl0ZUNvdW50
KCkgY29uc3QgPSAwOwogCi0gICAgLy8gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgcG9pbnRlciB0
byBhIFdlYlZpZGVvRnJhbWUsIHdoaWNoIGlzCi0gICAgLy8gYSBXZWJLaXQgd3JhcHBlciBmb3Ig
YSB2aWRlbyBmcmFtZSBpbiBjaHJvbWl1bS4gVGhpcyBwbGFjZXMgYSBsb2NrCi0gICAgLy8gb24g
dGhlIGZyYW1lIGluIGNocm9taXVtLCBhbmQgY2FsbHMgdG8gdGhpcyBtZXRob2Qgc2hvdWxkIGFs
d2F5cyBiZQotICAgIC8vIGZvbGxvd2VkIHdpdGggYSBjYWxsIHRvIHB1dEN1cnJlbnRGcmFtZSgp
LiBUaGUgb3duZXJzaGlwIG9mIHRoaXMgb2JqZWN0Ci0gICAgLy8gaXMgbm90IHRyYW5zZmVycmVk
IHRvIHRoZSBjYWxsZXIsIGFuZCB0aGUgY2FsbGVyIHNob3VsZCBub3QgZnJlZSB0aGUKLSAgICAv
LyByZXR1cm5lZCBvYmplY3QuCi0gICAgdmlydHVhbCBXZWJWaWRlb0ZyYW1lKiBnZXRDdXJyZW50
RnJhbWUoKSB7IHJldHVybiAwOyB9Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiByZWxlYXNlcyB0aGUg
bG9jayBvbiB0aGUgY3VycmVudCB2aWRlbyBmcmFtZSBpbiBDaHJvbWl1bS4KLSAgICAvLyBJdCBz
aG91bGQgYWx3YXlzIGJlIGNhbGxlZCBhZnRlciBnZXRDdXJyZW50RnJhbWUoKS4gRnJhbWUgcGFz
c2VkIHRvIHRoaXMKLSAgICAvLyBtZXRob2Qgc2hvdWxkIG5vIGxvbmdlciBiZSByZWZlcmVuY2Vk
IGFmdGVyIHRoZSBjYWxsIGlzIG1hZGUuCi0gICAgdmlydHVhbCB2b2lkIHB1dEN1cnJlbnRGcmFt
ZShXZWJWaWRlb0ZyYW1lKikgeyB9Ci0KICAgICAvLyBEbyBhIEdQVS1HUFUgdGV4dHVyZXMgY29w
eSBpZiBwb3NzaWJsZS4KICAgICB2aXJ0dWFsIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZv
cm1UZXh0dXJlKFdlYkdyYXBoaWNzQ29udGV4dDNEKiwgdW5zaWduZWQgdGV4dHVyZSwgdW5zaWdu
ZWQgbGV2ZWwsIHVuc2lnbmVkIGludGVybmFsRm9ybWF0LCBib29sIHByZW11bHRpcGx5QWxwaGEs
IGJvb2wgZmxpcFkpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3Ry
ZWFtVGV4dHVyZUNsaWVudChXZWJTdHJlYW1UZXh0dXJlQ2xpZW50KikgeyB9Ci0KICAgICB2aXJ0
dWFsIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSB7IHJldHVy
biAwOyB9CiAKICAgICAvLyBSZXR1cm5zIHdoZXRoZXIga2V5U3lzdGVtIGlzIHN1cHBvcnRlZC4g
SWYgdHJ1ZSwgdGhlIHJlc3VsdCB3aWxsIGJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDgxMDAyZmIyNmFkNzkzZGE2ZDZhNDY4ODYwYzBmMGFkZWU3MzRlNmEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyZWFtVGV4dHVyZUNsaWVudC5oCisrKyAvZGV2L251bGwK
QEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViU3RyZWFtVGV4dHVyZUNsaWVudF9oCi0jZGVmaW5l
IFdlYlN0cmVhbVRleHR1cmVDbGllbnRfaAotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3Mg
V2ViU3RyZWFtVGV4dHVyZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVGcmFtZSgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTWF0cml4KGNvbnN0
IGZsb2F0KikgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+V2ViU3RyZWFtVGV4dHVy
ZUNsaWVudCgpIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5NDhhN2E0NDQwYmZkMjZiYmQ0NTUzOTljMjFmNzE1ODFkYzY2
MjllLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaAorKysgL2Rldi9udWxsCkBA
IC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195195</attachid>
            <date>2013-03-26 17:23:08 -0700</date>
            <delta_ts>2013-03-26 17:32:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112483-20130326201851.patch</filename>
            <type>text/plain</type>
            <size>21497</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2OTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA1ODIyMzQyOWE5OWYw
ODMzNjQ1YzBjYWNjZGJiYzNmNTE0NTUxYWM1Li4wYmM5NjE0MWQ1OTEzODg5ZDdlNWM5NzNmZTU2
ZGQ4ZWYwMjViOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNSBAQAogMjAxMy0wMy0yNSAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbY2hyb21pdW1d
IFJlbW92ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBXZWJTdHJl
YW1UZXh0dXJlQ2xpZW50LCBhbmQgV2ViVmlkZW9MYXllciBjbGFzc2VzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgY2xhc3NlcyBhcmUgbm8g
bG9uZ2VyIHVzZWQsIHNvIHJlbW92ZSB0aGVtLiBBbmQgcmVtb3ZlIEFQSXMKKyAgICAgICAgdG8g
cHJvdmlkZSB0aGVtLgorCisgICAgICAgICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJv
bWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZVByb3ZpZGVyLmg6IFJlbW92ZWQuCisg
ICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlZpZGVvTGF5ZXIuaDogUmVtb3ZlZC4KKworMjAx
My0wMy0yMSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBb
Y2hyb21pdW1dIE1vdmUgb3duZXJzaGlwIG9mIGNvbXBvc2l0b3IgVmlkZW9MYXllciB0byBXZWJN
ZWRpYVBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEyOTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAg
ICAgRGVmaW5lcyBSRU1PVkVfV0VCVklERU9GUkFNRSBpbiByZWxhdGVkIGhlYWRlcnMgdG8gZW5h
YmxlIHRoaXMgY29kZQorICAgICAgICBwYXRoIGluIGNocm9taXVtLgorCisgICAgICAgICogY2hy
b21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaDoKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMv
V2ViVmlkZW9GcmFtZVByb3ZpZGVyLmg6CisKKzIwMTMtMDMtMjUgIERhbmEgSmFuc2VucyAgPGRh
bmFrakBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9taXVtXSBNb3ZlIG93bmVyc2hpcCBv
ZiBjb21wb3NpdG9yIFZpZGVvTGF5ZXIgdG8gV2ViTWVkaWFQbGF5ZXIKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjk3MQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDYzMTEzNTFlZDg0YTliYTRiMWJhZTgxMjEyYzYyYTI4MDlkNjU5MDcu
LmRkMzllMzQwY2QxYmFmYzY3NTk2Mzg4Y2JiNTQzZmIxMDRmM2E4MGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMTMtMDMtMjUgIERhbmEgSmFuc2VucyAg
PGRhbmFrakBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgdGhlIFdl
YlZpZGVvRnJhbWUsIFdlYlZpZGVvRnJhbWVQcm92aWRlciwgV2ViU3RyZWFtVGV4dHVyZUNsaWVu
dCwgYW5kIFdlYlZpZGVvTGF5ZXIgY2xhc3Nlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNsYXNzZXMgYXJlIG5vIGxvbmdlciB1c2VkLCBz
byByZW1vdmUgdGhlbS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGlj
L1dlYk1lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViTWVkaWFQ
bGF5ZXIpOgorICAgICAgICAqIHB1YmxpYy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50Lmg6IFJlbW92
ZWQuCisgICAgICAgICogcHVibGljL1dlYlZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKworMjAxMy0w
My0yMSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hy
b21pdW1dIE1vdmUgb3duZXJzaGlwIG9mIGNvbXBvc2l0b3IgVmlkZW9MYXllciB0byBXZWJNZWRp
YVBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEyOTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAg
VGhpcyBtb3ZlcyBvd25lcnNoaXAgb2YgdGhlIGNvbXBvc2l0b3IncyB2aWRlbyBsYXllciBvdmVy
IHRvIHRoZQorICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiBXZWJNZWRpYVBsYXllciwgYXMgd2Vs
bCBhcyBhbGwgaW50ZXJhY3Rpb24KKyAgICAgICAgYmV0d2VlbiB0aGUgbWVkaWEgcGxheWVyIHN5
c3RlbSBhbmQgdGhlIGNvbXBvc2l0b3IgbGF5ZXIgb3IgaXRzCisgICAgICAgIGludGVyZmFjZXMg
c3VjaCBhcyBjYzo6VmlkZW9GcmFtZVByb3ZpZGVyLgorCisgICAgICAgIE5vdywgdGhlIFdlYk1l
ZGlhUGxheWVyIGltcGxlbWVudGF0aW9uIGNhbGxzIHNldFdlYkxheWVyKCkgdG8KKyAgICAgICAg
cHJvdmlkZSB0aGUgV2ViTGF5ZXIqIHRvIHRoZSBXZWJNZWRpYVBsYXllckNsaWVudEltcGwgc28g
dGhhdAorICAgICAgICBpdCBjYW4gYmUgaW5zZXJ0ZWQgaW50byB0aGUgR3JhcGhpY3NMYXllciB0
cmVlIGFwcHJvcHJpYXRlbHkuCisKKyAgICAgICAgRGVmaW5lcyBSRU1PVkVfV0VCVklERU9GUkFN
RSBpbiByZWxhdGVkIGhlYWRlcnMgdG8gZW5hYmxlIHRoaXMgY29kZQorICAgICAgICBwYXRoIGlu
IGNocm9taXVtLgorCisgICAgICAgIE9uY2UgY2hyb21pdW0gcmVtb3ZlcyBpdHMgdXNlIG9mIFdl
YlZpZGVvRnJhbWUgYW5kIGl0cyByZWxhdGVkCisgICAgICAgIGNsYXNzZXMsIHdlIGNhbiByZW1v
dmUgdGhlbSBmcm9tIFdlYktpdCBlbnRpcmVseS4KKworICAgICAgICAqIFdlYktpdC5neXBpOgor
ICAgICAgICAqIHB1YmxpYy9XZWJNZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKiBwdWJsaWMvV2ViTWVkaWFQbGF5ZXJDbGllbnQuaDoKKyAgICAgICAgKiBwdWJsaWMv
V2ViU3RyZWFtVGV4dHVyZUNsaWVudC5oOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6
On5XZWJNZWRpYVBsYXllckNsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBs
YXllckNsaWVudEltcGw6OnJlYWR5U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpyZXBhaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjpzZXRPcGFxdWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRp
YVBsYXllckNsaWVudEltcGw6OnNldFdlYkxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFQbGF5ZXJDbGllbnRJbXBsOjpsb2FkUmVxdWVzdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwbGF0Zm9ybUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpwYWludCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbDo6bmVlZHNXZWJMYXllcik6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6YWNjZWxlcmF0ZWRSZW5k
ZXJpbmdJblVzZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpzdXBw
b3J0c1R5cGUpOgorICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuaDoKKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJNZWRpYVBsYXllckNsaWVudEltcGwpOgorICAg
ICAgICAqIHRlc3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbFRlc3QuY3BwOiBSZW1vdmVkLgor
CiAyMDEzLTAzLTI2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiAgUm9sbGVkIENocm9taXVtIERFUFMgdG8gcjE5MDcwNi4g
IFJlcXVlc3RlZCBieQpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkg
Yi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQppbmRleCA0ZTgzOTNkZDFhZWFhOGI3NTkz
YTM3MzAyZjJlMjY1OTYyNWY5Njg1Li4xMzFhMGMxNjI0NTA5NDY5MmU3MWRmZjc2ZTgwODc5ZjQz
Mzc0NzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQorKysgYi9T
b3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQpAQCAtMTUwLDkgKzE1MCw2IEBACiAgICAgICAg
ICAgICAnY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vcHVibGljL1dlYlVSTFJlc3BvbnNlLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9XZWJWZWN0b3IuaCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlZpZGVv
TGF5ZXIuaCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaCcs
Ci0gICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWVQcm92aWRlci5oJywK
ICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViV29ya2VyUnVuTG9vcC5oJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJTYW5kYm94U3VwcG9ydC5oJywKICAg
ICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJUaGVtZUVuZ2luZS5oJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclN1
cHBvcnQuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclN1
cHBvcnQuaAppbmRleCBkNmQ1OGJiOGE3Zjg5ZTRiMzE5NzUwYmUxZjMyNzY4ZDcyMWM1ZmZkLi42
YjYwYTllOTFmZjRlYjhkOWYwMjM3MTNhNjJmYjIxNzFhMzA5YWFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0LmgKKysrIGIv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oCkBA
IC01MCw4ICs1MCw2IEBAIGNsYXNzIFdlYlNvbGlkQ29sb3JMYXllcjsKIGNsYXNzIFdlYlRocmVh
ZDsKIGNsYXNzIFdlYlRyYW5zZm9ybUFuaW1hdGlvbkN1cnZlOwogY2xhc3MgV2ViVHJhbnNmb3Jt
T3BlcmF0aW9uczsKLWNsYXNzIFdlYlZpZGVvRnJhbWVQcm92aWRlcjsKLWNsYXNzIFdlYlZpZGVv
TGF5ZXI7CiAKIGNsYXNzIFdlYkNvbXBvc2l0b3JTdXBwb3J0IHsKIHB1YmxpYzoKQEAgLTgzLDgg
KzgxLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBXZWJTb2xpZENvbG9yTGF5ZXIqIGNyZWF0
ZVNvbGlkQ29sb3JMYXllcigpIHsgcmV0dXJuIDA7IH0KIAotICAgIHZpcnR1YWwgV2ViVmlkZW9M
YXllciogY3JlYXRlVmlkZW9MYXllcihXZWJWaWRlb0ZyYW1lUHJvdmlkZXIqKSB7IHJldHVybiAw
OyB9Ci0KICAgICB2aXJ0dWFsIFdlYlNjcm9sbGJhckxheWVyKiBjcmVhdGVTY3JvbGxiYXJMYXll
cihXZWJTY3JvbGxiYXIqLCBXZWJTY3JvbGxiYXJUaGVtZVBhaW50ZXIsIFdlYlNjcm9sbGJhclRo
ZW1lR2VvbWV0cnkqKSB7IHJldHVybiAwOyB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzZkYzJlNDIwYzg1MTVmOGJlNzY1MzI5YjdmNzYzZThkM2QyYjk5Mi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
ICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIFdlYlZpZGVvRnJhbWVfaAotI2RlZmluZSBXZWJWaWRlb0ZyYW1lX2gKLQotI2RlZmlu
ZSBSRU1PVkVfV0VCVklERU9GUkFNRQotCi0jaW5jbHVkZSAiV2ViUmVjdC5oIgotI2luY2x1ZGUg
IldlYlNpemUuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLS8vIEEgYmFzZSBjbGFzcyBmb3Ig
dGhlIGNvbnRhaW5lciB3aGljaCBob2xkcyBhIG1lZGlhOjpWaWRlb0ZyYW1lLgotY2xhc3MgV2Vi
VmlkZW9GcmFtZSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViVmlkZW9GcmFtZSgpIHsgfQot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaCBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZVByb3ZpZGVyLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0NTUyZTgwMjBjODRhZDZlODM5Y2ZjZDAwMDUxODVm
NzZlMDhlYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaAor
KysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlZpZGVvRnJhbWVQcm92aWRl
cl9oCi0jZGVmaW5lIFdlYlZpZGVvRnJhbWVQcm92aWRlcl9oCi0KLSNpbmNsdWRlICJXZWJDb21t
b24uaCIKLSNpbmNsdWRlICJXZWJWaWRlb0ZyYW1lLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci0vLyBUaHJlYWRpbmcgbm90ZXM6IFRoaXMgY2xhc3MgbWF5IGJlIHVzZWQgaW4gYSBtdWx0aSB0
aHJlYWRlZCBtYW5uZXIuIFNwZWNpZmljYWxseSwgdGhlIGltcGxlbWVudGF0aW9uCi0vLyBtYXkg
Y2FsbCBnZXRDdXJyZW50RnJhbWUoKSAvIHB1dEN1cnJlbnRGcmFtZSgpIGZyb20gYSBub24tbWFp
biB0aHJlYWQuIElmIHNvLCB0aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlCi0vLyBmb3IgbWFraW5n
IHN1cmUgQ2xpZW50OjpkaWRSZWNlaXZlRnJhbWUgYW5kIENsaWVudDo6ZGlkVXBkYXRlTWF0cml4
IGFyZSBvbmx5IGNhbGxlZCBmcm9tIHRoaXMgdGhyZWFkLgotY2xhc3MgV2ViVmlkZW9GcmFtZVBy
b3ZpZGVyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJWaWRlb0ZyYW1lUHJvdmlkZXIoKSB7
IH0KLQotICAgIGNsYXNzIENsaWVudCB7Ci0gICAgcHVibGljOgotICAgICAgICAvLyBQcm92aWRl
ciB3aWxsIGNhbGwgdGhpcyBtZXRob2QgdG8gdGVsbCB0aGUgY2xpZW50IHRvIHN0b3AgdXNpbmcg
aXQuCi0gICAgICAgIC8vIHN0b3BVc2luZ1Byb3ZpZGVyKCkgbWF5IGJlIGNhbGxlZCBmcm9tIGFu
eSB0aHJlYWQuIFRoZSBjbGllbnQgc2hvdWxkCi0gICAgICAgIC8vIGJsb2NrIHVudGlsIGl0IGhh
cyBwdXRDdXJyZW50RnJhbWUgYW55IG91dHN0YW5kaW5nIGZyYW1lcy4KLSAgICAgICAgdmlydHVh
bCB2b2lkIHN0b3BVc2luZ1Byb3ZpZGVyKCkgPSAwOwotCi0gICAgICAgIC8vIE5vdGlmaWVzIHRo
ZSBwcm92aWRlcidzIGNsaWVudCB0aGF0IGEgY2FsbCB0byBnZXRDdXJyZW50RnJhbWUoKSB3aWxs
IHJldHVybiBuZXcgZGF0YS4KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVGcmFtZSgp
ID0gMDsKLQotICAgICAgICAvLyBOb3RpZmllcyB0aGUgcHJvdmlkZXIncyBjbGllbnQgb2YgYSBu
ZXcgVVYgdHJhbnNmb3JtIG1hdHJpeCB0byBiZSB1c2VkIHdoZW4gZHJhd2luZyBmcmFtZXMKLSAg
ICAgICAgLy8gb2YgdHlwZSBXZWJWaWRlb0ZyYW1lOjpGb3JtYXRTdHJlYW1UZXh0dXJlLgotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTWF0cml4KGNvbnN0IGZsb2F0KikgPSAwOwotICAg
IH07Ci0KLSAgICAvLyBNYXkgYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZCwgYnV0IHRoZXJlIG11
c3QgYmUgc29tZSBleHRlcm5hbCBndWFyYW50ZWUKLSAgICAvLyB0aGF0IHRoZSBwcm92aWRlciBp
cyBub3QgZGVzdHJveWVkIGJlZm9yZSB0aGlzIGNhbGwgcmV0dXJucy4KLSAgICB2aXJ0dWFsIHZv
aWQgc2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KENsaWVudCopID0gMDsKLQotICAgIC8vIFRo
aXMgZnVuY3Rpb24gcGxhY2VzIGEgbG9jayBvbiB0aGUgY3VycmVudCBmcmFtZSBhbmQgcmV0dXJu
cyBhIHBvaW50ZXIgdG8gaXQuCi0gICAgLy8gQ2FsbHMgdG8gdGhpcyBtZXRob2Qgc2hvdWxkIGFs
d2F5cyBiZSBmb2xsb3dlZCB3aXRoIGEgY2FsbCB0byBwdXRDdXJyZW50RnJhbWUoKS4KLSAgICAv
LyBUaGUgb3duZXJzaGlwIG9mIHRoZSBvYmplY3QgaXMgbm90IHRyYW5zZmVycmVkIHRvIHRoZSBj
YWxsZXIgYW5kCi0gICAgLy8gdGhlIGNhbGxlciBzaG91bGQgbm90IGZyZWUgdGhlIHJldHVybmVk
IG9iamVjdC4gT25seSB0aGUgY3VycmVudCBwcm92aWRlcgotICAgIC8vIGNsaWVudCBzaG91bGQg
Y2FsbCB0aGlzIGZ1bmN0aW9uLgotICAgIHZpcnR1YWwgV2ViVmlkZW9GcmFtZSogZ2V0Q3VycmVu
dEZyYW1lKCkgPSAwOwotICAgIC8vIFRoaXMgZnVuY3Rpb24gcmVsZWFzZXMgdGhlIGxvY2sgb24g
dGhlIHZpZGVvIGZyYW1lIGluIGNocm9taXVtLiBJdCBzaG91bGQKLSAgICAvLyBhbHdheXMgYmUg
Y2FsbGVkIGFmdGVyIGdldEN1cnJlbnRGcmFtZSgpLiBGcmFtZXMgcGFzc2VkIGludG8gdGhpcyBt
ZXRob2QKLSAgICAvLyBzaG91bGQgbm8gbG9uZ2VyIGJlIHJlZmVyZW5jZWQgYWZ0ZXIgdGhlIGNh
bGwgaXMgbWFkZS4gT25seSB0aGUgY3VycmVudAotICAgIC8vIHByb3ZpZGVyIGNsaWVudCBzaG91
bGQgY2FsbCB0aGlzIGZ1bmN0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBwdXRDdXJyZW50RnJhbWUo
V2ViVmlkZW9GcmFtZSopID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9M
YXllci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0xheWVyLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyN2Q2OWUxMGEwZGZiOTc4YzkwMDA0ZWZm
ZTcyOGNhMTY2OWEzYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0xheWVyLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJWaWRlb0xheWVy
X2gKLSNkZWZpbmUgV2ViVmlkZW9MYXllcl9oCi0KLSNpbmNsdWRlICJXZWJDb21tb24uaCIKLSNp
bmNsdWRlICJXZWJMYXllci5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViVmlk
ZW9GcmFtZVByb3ZpZGVyOwotCi1jbGFzcyBXZWJWaWRlb0xheWVyIHsKLXB1YmxpYzoKLSAgICB2
aXJ0dWFsIH5XZWJWaWRlb0xheWVyKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIFdlYkxheWVyKiBsYXll
cigpID0gMDsKLQotICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGxheWVyIGlzIGFjdGl2ZWx5
IHJlbmRlcmluZyAoZS5nLiBjdXJyZW50bHkgYXR0YWNoZWQgdG8gYSBXZWJMYXllclRyZWVWaWV3
KS4KLSAgICB2aXJ0dWFsIGJvb2wgYWN0aXZlKCkgY29uc3QgPSAwOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJWaWRlb0xheWVyX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cAppbmRleCBlNjMzNTdkNTk2ZDk3OGM4MGI5ZGQxMTcyMTA5MGQxMDNkOTE5YTM4
Li45NWQ5MzBkZDVlMWM5ODkyNzI1Mzk1M2ZiZmE3Nzg0ZGZiYTViOWRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCkBAIC0yNjIsNyArMjYyLDYgQEAKICAgICAgICAgICAgICAgICAncHVi
bGljL1dlYlN0b3JhZ2VRdW90YVR5cGUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJT
dG9yYWdlUXVvdGFFcnJvci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlN1cnJvdW5k
aW5nVGV4dC5oJywKLSAgICAgICAgICAgICAgICAncHVibGljL1dlYlN0cmVhbVRleHR1cmVDbGll
bnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJUZXh0QWZmaW5pdHkuaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJUZXh0Q2FzZVNlbnNpdGl2aXR5LmgnLAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbi5oJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCmluZGV4IGFkNTZjMWJjYmEx
YzMxYWMyZTFiYzI3NTgwYWExZTY2NjM3YTZiOTAuLjc0OWYwMzg2MGM3NzlkODEyMGE5OGM1Mjdl
MjYzMDJjYjBiM2YwYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYk1lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
TWVkaWFQbGF5ZXIuaApAQCAtMzMsNyArMzMsNiBAQAogCiAjaW5jbHVkZSAiLi4vLi4vLi4vUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNhbnZhcy5oIgogI2luY2x1ZGUgIi4uLy4uLy4uL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTdHJpbmcuaCIKLSNpbmNsdWRlICIuLi8uLi8uLi9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIldlYlRp
bWVSYW5nZS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQyLDcgKzQxLDYgQEAgY2xhc3Mg
V2ViQXVkaW9Tb3VyY2VQcm92aWRlcjsKIGNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDbGll
bnQ7CiBjbGFzcyBXZWJNZWRpYVBsYXllckNsaWVudDsKIGNsYXNzIFdlYk1lZGlhU291cmNlOwot
Y2xhc3MgV2ViU3RyZWFtVGV4dHVyZUNsaWVudDsKIGNsYXNzIFdlYlN0cmluZzsKIGNsYXNzIFdl
YlVSTDsKIHN0cnVjdCBXZWJSZWN0OwpAQCAtMTU1LDIzICsxNTMsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB1bnNpZ25lZCBhdWRpb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCB1bnNpZ25lZCB2aWRlb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdCA9IDA7CiAKLSAg
ICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBwb2ludGVyIHRvIGEgV2ViVmlkZW9GcmFtZSwg
d2hpY2ggaXMKLSAgICAvLyBhIFdlYktpdCB3cmFwcGVyIGZvciBhIHZpZGVvIGZyYW1lIGluIGNo
cm9taXVtLiBUaGlzIHBsYWNlcyBhIGxvY2sKLSAgICAvLyBvbiB0aGUgZnJhbWUgaW4gY2hyb21p
dW0sIGFuZCBjYWxscyB0byB0aGlzIG1ldGhvZCBzaG91bGQgYWx3YXlzIGJlCi0gICAgLy8gZm9s
bG93ZWQgd2l0aCBhIGNhbGwgdG8gcHV0Q3VycmVudEZyYW1lKCkuIFRoZSBvd25lcnNoaXAgb2Yg
dGhpcyBvYmplY3QKLSAgICAvLyBpcyBub3QgdHJhbnNmZXJyZWQgdG8gdGhlIGNhbGxlciwgYW5k
IHRoZSBjYWxsZXIgc2hvdWxkIG5vdCBmcmVlIHRoZQotICAgIC8vIHJldHVybmVkIG9iamVjdC4K
LSAgICB2aXJ0dWFsIFdlYlZpZGVvRnJhbWUqIGdldEN1cnJlbnRGcmFtZSgpIHsgcmV0dXJuIDA7
IH0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIHRoZSBsb2NrIG9uIHRoZSBjdXJyZW50
IHZpZGVvIGZyYW1lIGluIENocm9taXVtLgotICAgIC8vIEl0IHNob3VsZCBhbHdheXMgYmUgY2Fs
bGVkIGFmdGVyIGdldEN1cnJlbnRGcmFtZSgpLiBGcmFtZSBwYXNzZWQgdG8gdGhpcwotICAgIC8v
IG1ldGhvZCBzaG91bGQgbm8gbG9uZ2VyIGJlIHJlZmVyZW5jZWQgYWZ0ZXIgdGhlIGNhbGwgaXMg
bWFkZS4KLSAgICB2aXJ0dWFsIHZvaWQgcHV0Q3VycmVudEZyYW1lKFdlYlZpZGVvRnJhbWUqKSB7
IH0KLQogICAgIC8vIERvIGEgR1BVLUdQVSB0ZXh0dXJlcyBjb3B5IGlmIHBvc3NpYmxlLgogICAg
IHZpcnR1YWwgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViR3JhcGhp
Y3NDb250ZXh0M0QqLCB1bnNpZ25lZCB0ZXh0dXJlLCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQg
aW50ZXJuYWxGb3JtYXQsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSkgeyByZXR1
cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTdHJlYW1UZXh0dXJlQ2xpZW50KFdl
YlN0cmVhbVRleHR1cmVDbGllbnQqKSB7IH0KLQogICAgIHZpcnR1YWwgV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIHsgcmV0dXJuIDA7IH0KIAogICAgIC8vIFJl
dHVybnMgd2hldGhlciBrZXlTeXN0ZW0gaXMgc3VwcG9ydGVkLiBJZiB0cnVlLCB0aGUgcmVzdWx0
IHdpbGwgYmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0
cmVhbVRleHR1cmVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlN0
cmVhbVRleHR1cmVDbGllbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODEwMDJm
YjI2YWQ3OTNkYTZkNmE0Njg4NjBjMGYwYWRlZTczNGU2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAq
IGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBXZWJTdHJlYW1UZXh0dXJlQ2xpZW50X2gKLSNkZWZpbmUgV2ViU3RyZWFtVGV4dHVyZUNs
aWVudF9oCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJTdHJlYW1UZXh0dXJlQ2xp
ZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUZyYW1lKCkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVNYXRyaXgoY29uc3QgZmxvYXQqKSA9IDA7Ci0KLXBy
b3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5XZWJTdHJlYW1UZXh0dXJlQ2xpZW50KCkgeyB9Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDk0OGE3YTQ0NDBiZmQyNmJiZDQ1NTM5OWMyMWY3MTU4MWRjNjYyOWUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlkZW9GcmFtZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0g
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9G
cmFtZS5oIgo=
</data>
<flag name="review"
          id="217041"
          type_id="1"
          status="+"
          setter="jamesr"
    />
    <flag name="commit-queue"
          id="217044"
          type_id="3"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195199</attachid>
            <date>2013-03-26 17:36:58 -0700</date>
            <delta_ts>2013-03-26 18:23:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112483-20130326203240.patch</filename>
            <type>text/plain</type>
            <size>18950</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2OTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA1ODIyMzQyOWE5OWYw
ODMzNjQ1YzBjYWNjZGJiYzNmNTE0NTUxYWM1Li43NWQ2ZGNkZjE3YTU4NWZjNTExNGNlMTdmYWIz
NTUxMTYzYTBlYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMiBAQAogMjAxMy0wMy0yNSAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbY2hyb21pdW1d
IFJlbW92ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3ZpZGVyLCBXZWJTdHJl
YW1UZXh0dXJlQ2xpZW50LCBhbmQgV2ViVmlkZW9MYXllciBjbGFzc2VzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDgzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgVGhlc2UgY2xhc3NlcyBhcmUgbm8g
bG9uZ2VyIHVzZWQsIHNvIHJlbW92ZSB0aGVtLiBBbmQgcmVtb3ZlIEFQSXMKKyAgICAgICAgdG8g
cHJvdmlkZSB0aGVtLgorCisgICAgICAgICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJv
bWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZVByb3ZpZGVyLmg6IFJlbW92ZWQuCisg
ICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlZpZGVvTGF5ZXIuaDogUmVtb3ZlZC4KKworMjAx
My0wMy0yNSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKwogICAgICAgICBb
Y2hyb21pdW1dIE1vdmUgb3duZXJzaGlwIG9mIGNvbXBvc2l0b3IgVmlkZW9MYXllciB0byBXZWJN
ZWRpYVBsYXllcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEyOTcxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNjMxMTM1MWVkODRhOWJh
NGIxYmFlODEyMTJjNjJhMjgwOWQ2NTkwNy4uZmQ1ODE1ZjI1NjBiNGIxY2RjM2QwNjMyMDMwMThm
ZTRmOTAyNzE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxMy0wMy0yNSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbY2hyb21pdW1dIFJlbW92ZSB0aGUgV2ViVmlkZW9GcmFtZSwgV2ViVmlkZW9GcmFtZVByb3Zp
ZGVyLCBXZWJTdHJlYW1UZXh0dXJlQ2xpZW50LCBhbmQgV2ViVmlkZW9MYXllciBjbGFzc2VzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgVGhlc2UgY2xh
c3NlcyBhcmUgbm8gbG9uZ2VyIHVzZWQsIHNvIHJlbW92ZSB0aGVtLgorCisgICAgICAgICogV2Vi
S2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJNZWRpYVBsYXllcik6CisgICAgICAgICogcHVibGljL1dlYlN0
cmVhbVRleHR1cmVDbGllbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViVmlkZW9G
cmFtZS5oOiBSZW1vdmVkLgorCiAyMDEzLTAzLTI2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiAgUm9sbGVkIENocm9taXVt
IERFUFMgdG8gcjE5MDcwNi4gIFJlcXVlc3RlZCBieQpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRm
b3JtL1BsYXRmb3JtLmd5cGkgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQppbmRleCA0
ZTgzOTNkZDFhZWFhOGI3NTkzYTM3MzAyZjJlMjY1OTYyNWY5Njg1Li4xMzFhMGMxNjI0NTA5NDY5
MmU3MWRmZjc2ZTgwODc5ZjQzMzc0NzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vUGxh
dGZvcm0uZ3lwaQorKysgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQpAQCAtMTUwLDkg
KzE1MCw2IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaCcs
CiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3BvbnNlLmgnLAogICAgICAg
ICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJWZWN0b3IuaCcsCi0gICAgICAgICAgICAnY2hyb21p
dW0vcHVibGljL1dlYlZpZGVvTGF5ZXIuaCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vcHVibGlj
L1dlYlZpZGVvRnJhbWUuaCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlZpZGVv
RnJhbWVQcm92aWRlci5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViV29ya2Vy
UnVuTG9vcC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJTYW5k
Ym94U3VwcG9ydC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJU
aGVtZUVuZ2luZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaAppbmRleCBkNmQ1OGJiOGE3Zjg5ZTRiMzE5NzUwYmUx
ZjMyNzY4ZDcyMWM1ZmZkLi42YjYwYTllOTFmZjRlYjhkOWYwMjM3MTNhNjJmYjIxNzFhMzA5YWFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0
b3JTdXBwb3J0LmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21w
b3NpdG9yU3VwcG9ydC5oCkBAIC01MCw4ICs1MCw2IEBAIGNsYXNzIFdlYlNvbGlkQ29sb3JMYXll
cjsKIGNsYXNzIFdlYlRocmVhZDsKIGNsYXNzIFdlYlRyYW5zZm9ybUFuaW1hdGlvbkN1cnZlOwog
Y2xhc3MgV2ViVHJhbnNmb3JtT3BlcmF0aW9uczsKLWNsYXNzIFdlYlZpZGVvRnJhbWVQcm92aWRl
cjsKLWNsYXNzIFdlYlZpZGVvTGF5ZXI7CiAKIGNsYXNzIFdlYkNvbXBvc2l0b3JTdXBwb3J0IHsK
IHB1YmxpYzoKQEAgLTgzLDggKzgxLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBXZWJTb2xp
ZENvbG9yTGF5ZXIqIGNyZWF0ZVNvbGlkQ29sb3JMYXllcigpIHsgcmV0dXJuIDA7IH0KIAotICAg
IHZpcnR1YWwgV2ViVmlkZW9MYXllciogY3JlYXRlVmlkZW9MYXllcihXZWJWaWRlb0ZyYW1lUHJv
dmlkZXIqKSB7IHJldHVybiAwOyB9Ci0KICAgICB2aXJ0dWFsIFdlYlNjcm9sbGJhckxheWVyKiBj
cmVhdGVTY3JvbGxiYXJMYXllcihXZWJTY3JvbGxiYXIqLCBXZWJTY3JvbGxiYXJUaGVtZVBhaW50
ZXIsIFdlYlNjcm9sbGJhclRoZW1lR2VvbWV0cnkqKSB7IHJldHVybiAwOyB9CiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmggYi9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMzZkYzJlNDIwYzg1MTVmOGJlNzY1MzI5YjdmNzYzZThkM2Qy
Yjk5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaAorKysgL2Rldi9udWxs
CkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlZpZGVvRnJhbWVfaAotI2RlZmluZSBXZWJWaWRl
b0ZyYW1lX2gKLQotI2RlZmluZSBSRU1PVkVfV0VCVklERU9GUkFNRQotCi0jaW5jbHVkZSAiV2Vi
UmVjdC5oIgotI2luY2x1ZGUgIldlYlNpemUuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLS8v
IEEgYmFzZSBjbGFzcyBmb3IgdGhlIGNvbnRhaW5lciB3aGljaCBob2xkcyBhIG1lZGlhOjpWaWRl
b0ZyYW1lLgotY2xhc3MgV2ViVmlkZW9GcmFtZSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2Vi
VmlkZW9GcmFtZSgpIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1l
UHJvdmlkZXIuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFt
ZVByb3ZpZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0NTUyZTgwMjBjODRh
ZDZlODM5Y2ZjZDAwMDUxODVmNzZlMDhlYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJWaWRl
b0ZyYW1lUHJvdmlkZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJp
YnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdl
YlZpZGVvRnJhbWVQcm92aWRlcl9oCi0jZGVmaW5lIFdlYlZpZGVvRnJhbWVQcm92aWRlcl9oCi0K
LSNpbmNsdWRlICJXZWJDb21tb24uaCIKLSNpbmNsdWRlICJXZWJWaWRlb0ZyYW1lLmgiCi0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi0vLyBUaHJlYWRpbmcgbm90ZXM6IFRoaXMgY2xhc3MgbWF5IGJl
IHVzZWQgaW4gYSBtdWx0aSB0aHJlYWRlZCBtYW5uZXIuIFNwZWNpZmljYWxseSwgdGhlIGltcGxl
bWVudGF0aW9uCi0vLyBtYXkgY2FsbCBnZXRDdXJyZW50RnJhbWUoKSAvIHB1dEN1cnJlbnRGcmFt
ZSgpIGZyb20gYSBub24tbWFpbiB0aHJlYWQuIElmIHNvLCB0aGUgY2FsbGVyIGlzIHJlc3BvbnNp
YmxlCi0vLyBmb3IgbWFraW5nIHN1cmUgQ2xpZW50OjpkaWRSZWNlaXZlRnJhbWUgYW5kIENsaWVu
dDo6ZGlkVXBkYXRlTWF0cml4IGFyZSBvbmx5IGNhbGxlZCBmcm9tIHRoaXMgdGhyZWFkLgotY2xh
c3MgV2ViVmlkZW9GcmFtZVByb3ZpZGVyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJWaWRl
b0ZyYW1lUHJvdmlkZXIoKSB7IH0KLQotICAgIGNsYXNzIENsaWVudCB7Ci0gICAgcHVibGljOgot
ICAgICAgICAvLyBQcm92aWRlciB3aWxsIGNhbGwgdGhpcyBtZXRob2QgdG8gdGVsbCB0aGUgY2xp
ZW50IHRvIHN0b3AgdXNpbmcgaXQuCi0gICAgICAgIC8vIHN0b3BVc2luZ1Byb3ZpZGVyKCkgbWF5
IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQuIFRoZSBjbGllbnQgc2hvdWxkCi0gICAgICAgIC8v
IGJsb2NrIHVudGlsIGl0IGhhcyBwdXRDdXJyZW50RnJhbWUgYW55IG91dHN0YW5kaW5nIGZyYW1l
cy4KLSAgICAgICAgdmlydHVhbCB2b2lkIHN0b3BVc2luZ1Byb3ZpZGVyKCkgPSAwOwotCi0gICAg
ICAgIC8vIE5vdGlmaWVzIHRoZSBwcm92aWRlcidzIGNsaWVudCB0aGF0IGEgY2FsbCB0byBnZXRD
dXJyZW50RnJhbWUoKSB3aWxsIHJldHVybiBuZXcgZGF0YS4KLSAgICAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVGcmFtZSgpID0gMDsKLQotICAgICAgICAvLyBOb3RpZmllcyB0aGUgcHJvdmlk
ZXIncyBjbGllbnQgb2YgYSBuZXcgVVYgdHJhbnNmb3JtIG1hdHJpeCB0byBiZSB1c2VkIHdoZW4g
ZHJhd2luZyBmcmFtZXMKLSAgICAgICAgLy8gb2YgdHlwZSBXZWJWaWRlb0ZyYW1lOjpGb3JtYXRT
dHJlYW1UZXh0dXJlLgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTWF0cml4KGNvbnN0
IGZsb2F0KikgPSAwOwotICAgIH07Ci0KLSAgICAvLyBNYXkgYmUgY2FsbGVkIGZyb20gYW55IHRo
cmVhZCwgYnV0IHRoZXJlIG11c3QgYmUgc29tZSBleHRlcm5hbCBndWFyYW50ZWUKLSAgICAvLyB0
aGF0IHRoZSBwcm92aWRlciBpcyBub3QgZGVzdHJveWVkIGJlZm9yZSB0aGlzIGNhbGwgcmV0dXJu
cy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KENsaWVudCop
ID0gMDsKLQotICAgIC8vIFRoaXMgZnVuY3Rpb24gcGxhY2VzIGEgbG9jayBvbiB0aGUgY3VycmVu
dCBmcmFtZSBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8gaXQuCi0gICAgLy8gQ2FsbHMgdG8gdGhp
cyBtZXRob2Qgc2hvdWxkIGFsd2F5cyBiZSBmb2xsb3dlZCB3aXRoIGEgY2FsbCB0byBwdXRDdXJy
ZW50RnJhbWUoKS4KLSAgICAvLyBUaGUgb3duZXJzaGlwIG9mIHRoZSBvYmplY3QgaXMgbm90IHRy
YW5zZmVycmVkIHRvIHRoZSBjYWxsZXIgYW5kCi0gICAgLy8gdGhlIGNhbGxlciBzaG91bGQgbm90
IGZyZWUgdGhlIHJldHVybmVkIG9iamVjdC4gT25seSB0aGUgY3VycmVudCBwcm92aWRlcgotICAg
IC8vIGNsaWVudCBzaG91bGQgY2FsbCB0aGlzIGZ1bmN0aW9uLgotICAgIHZpcnR1YWwgV2ViVmlk
ZW9GcmFtZSogZ2V0Q3VycmVudEZyYW1lKCkgPSAwOwotICAgIC8vIFRoaXMgZnVuY3Rpb24gcmVs
ZWFzZXMgdGhlIGxvY2sgb24gdGhlIHZpZGVvIGZyYW1lIGluIGNocm9taXVtLiBJdCBzaG91bGQK
LSAgICAvLyBhbHdheXMgYmUgY2FsbGVkIGFmdGVyIGdldEN1cnJlbnRGcmFtZSgpLiBGcmFtZXMg
cGFzc2VkIGludG8gdGhpcyBtZXRob2QKLSAgICAvLyBzaG91bGQgbm8gbG9uZ2VyIGJlIHJlZmVy
ZW5jZWQgYWZ0ZXIgdGhlIGNhbGwgaXMgbWFkZS4gT25seSB0aGUgY3VycmVudAotICAgIC8vIHBy
b3ZpZGVyIGNsaWVudCBzaG91bGQgY2FsbCB0aGlzIGZ1bmN0aW9uLgotICAgIHZpcnR1YWwgdm9p
ZCBwdXRDdXJyZW50RnJhbWUoV2ViVmlkZW9GcmFtZSopID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlkZW9MYXllci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWRlb0xheWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyN2Q2OWUx
MGEwZGZiOTc4YzkwMDA0ZWZmZTcyOGNhMTY2OWEzYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWRlb0xheWVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBXZWJWaWRlb0xheWVyX2gKLSNkZWZpbmUgV2ViVmlkZW9MYXllcl9oCi0KLSNpbmNsdWRl
ICJXZWJDb21tb24uaCIKLSNpbmNsdWRlICJXZWJMYXllci5oIgotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotY2xhc3MgV2ViVmlkZW9GcmFtZVByb3ZpZGVyOwotCi1jbGFzcyBXZWJWaWRlb0xheWVy
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJWaWRlb0xheWVyKCkgeyB9Ci0KLSAgICB2aXJ0
dWFsIFdlYkxheWVyKiBsYXllcigpID0gMDsKLQotICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlz
IGxheWVyIGlzIGFjdGl2ZWx5IHJlbmRlcmluZyAoZS5nLiBjdXJyZW50bHkgYXR0YWNoZWQgdG8g
YSBXZWJMYXllclRyZWVWaWV3KS4KLSAgICB2aXJ0dWFsIGJvb2wgYWN0aXZlKCkgY29uc3QgPSAw
OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJWaWRlb0xheWVy
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCBlNjMzNTdkNTk2ZDk3OGM4MGI5ZGQx
MTcyMTA5MGQxMDNkOTE5YTM4Li45NWQ5MzBkZDVlMWM5ODkyNzI1Mzk1M2ZiZmE3Nzg0ZGZiYTVi
OWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yNjIsNyArMjYyLDYgQEAKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYlN0b3JhZ2VRdW90YVR5cGUuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJTdG9yYWdlUXVvdGFFcnJvci5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYlN1cnJvdW5kaW5nVGV4dC5oJywKLSAgICAgICAgICAgICAgICAncHVibGljL1dl
YlN0cmVhbVRleHR1cmVDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJUZXh0
QWZmaW5pdHkuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJUZXh0Q2FzZVNlbnNpdGl2
aXR5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVGV4dENoZWNraW5nQ29tcGxldGlv
bi5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlh
UGxheWVyLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5o
CmluZGV4IGFkNTZjMWJjYmExYzMxYWMyZTFiYzI3NTgwYWExZTY2NjM3YTZiOTAuLjc0OWYwMzg2
MGM3NzlkODEyMGE5OGM1MjdlMjYzMDJjYjBiM2YwYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaApAQCAtMzMsNyArMzMsNiBAQAogCiAjaW5j
bHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNhbnZhcy5oIgogI2lu
Y2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTdHJpbmcuaCIKLSNp
bmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5o
IgogI2luY2x1ZGUgIldlYlRpbWVSYW5nZS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQy
LDcgKzQxLDYgQEAgY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92aWRlcjsKIGNsYXNzIFdlYkF1ZGlv
U291cmNlUHJvdmlkZXJDbGllbnQ7CiBjbGFzcyBXZWJNZWRpYVBsYXllckNsaWVudDsKIGNsYXNz
IFdlYk1lZGlhU291cmNlOwotY2xhc3MgV2ViU3RyZWFtVGV4dHVyZUNsaWVudDsKIGNsYXNzIFdl
YlN0cmluZzsKIGNsYXNzIFdlYlVSTDsKIHN0cnVjdCBXZWJSZWN0OwpAQCAtMTU1LDIzICsxNTMs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBhdWRpb0RlY29kZWRCeXRlQ291bnQo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB1bnNpZ25lZCB2aWRlb0RlY29kZWRCeXRlQ291bnQo
KSBjb25zdCA9IDA7CiAKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBwb2ludGVyIHRv
IGEgV2ViVmlkZW9GcmFtZSwgd2hpY2ggaXMKLSAgICAvLyBhIFdlYktpdCB3cmFwcGVyIGZvciBh
IHZpZGVvIGZyYW1lIGluIGNocm9taXVtLiBUaGlzIHBsYWNlcyBhIGxvY2sKLSAgICAvLyBvbiB0
aGUgZnJhbWUgaW4gY2hyb21pdW0sIGFuZCBjYWxscyB0byB0aGlzIG1ldGhvZCBzaG91bGQgYWx3
YXlzIGJlCi0gICAgLy8gZm9sbG93ZWQgd2l0aCBhIGNhbGwgdG8gcHV0Q3VycmVudEZyYW1lKCku
IFRoZSBvd25lcnNoaXAgb2YgdGhpcyBvYmplY3QKLSAgICAvLyBpcyBub3QgdHJhbnNmZXJyZWQg
dG8gdGhlIGNhbGxlciwgYW5kIHRoZSBjYWxsZXIgc2hvdWxkIG5vdCBmcmVlIHRoZQotICAgIC8v
IHJldHVybmVkIG9iamVjdC4KLSAgICB2aXJ0dWFsIFdlYlZpZGVvRnJhbWUqIGdldEN1cnJlbnRG
cmFtZSgpIHsgcmV0dXJuIDA7IH0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIHRoZSBs
b2NrIG9uIHRoZSBjdXJyZW50IHZpZGVvIGZyYW1lIGluIENocm9taXVtLgotICAgIC8vIEl0IHNo
b3VsZCBhbHdheXMgYmUgY2FsbGVkIGFmdGVyIGdldEN1cnJlbnRGcmFtZSgpLiBGcmFtZSBwYXNz
ZWQgdG8gdGhpcwotICAgIC8vIG1ldGhvZCBzaG91bGQgbm8gbG9uZ2VyIGJlIHJlZmVyZW5jZWQg
YWZ0ZXIgdGhlIGNhbGwgaXMgbWFkZS4KLSAgICB2aXJ0dWFsIHZvaWQgcHV0Q3VycmVudEZyYW1l
KFdlYlZpZGVvRnJhbWUqKSB7IH0KLQogICAgIC8vIERvIGEgR1BVLUdQVSB0ZXh0dXJlcyBjb3B5
IGlmIHBvc3NpYmxlLgogICAgIHZpcnR1YWwgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9y
bVRleHR1cmUoV2ViR3JhcGhpY3NDb250ZXh0M0QqLCB1bnNpZ25lZCB0ZXh0dXJlLCB1bnNpZ25l
ZCBsZXZlbCwgdW5zaWduZWQgaW50ZXJuYWxGb3JtYXQsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwg
Ym9vbCBmbGlwWSkgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTdHJl
YW1UZXh0dXJlQ2xpZW50KFdlYlN0cmVhbVRleHR1cmVDbGllbnQqKSB7IH0KLQogICAgIHZpcnR1
YWwgV2ViQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIHsgcmV0dXJu
IDA7IH0KIAogICAgIC8vIFJldHVybnMgd2hldGhlciBrZXlTeXN0ZW0gaXMgc3VwcG9ydGVkLiBJ
ZiB0cnVlLCB0aGUgcmVzdWx0IHdpbGwgYmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlN0cmVhbVRleHR1cmVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlN0cmVhbVRleHR1cmVDbGllbnQuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODEwMDJmYjI2YWQ3OTNkYTZkNmE0Njg4NjBjMGYwYWRlZTczNGU2YS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJTdHJlYW1UZXh0dXJlQ2xpZW50LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0g
KiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0g
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJTdHJlYW1UZXh0dXJlQ2xpZW50X2gKLSNkZWZpbmUg
V2ViU3RyZWFtVGV4dHVyZUNsaWVudF9oCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBX
ZWJTdHJlYW1UZXh0dXJlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZUZyYW1lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVNYXRyaXgoY29uc3Qg
ZmxvYXQqKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5XZWJTdHJlYW1UZXh0dXJl
Q2xpZW50KCkgeyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDk0OGE3YTQ0NDBiZmQyNmJiZDQ1NTM5OWMyMWY3MTU4MWRjNjYy
OWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oCisrKyAvZGV2L251bGwKQEAg
LTEsMjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
Ci0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlkZW9GcmFtZS5oIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>