<?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>109125</bug_id>
          
          <creation_ts>2013-02-06 18:41:37 -0800</creation_ts>
          <short_desc>[chromium] Clean up WebWidget / WebLayerTreeView interactions</short_desc>
          <delta_ts>2013-03-05 11:09:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>111240</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>caseq</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>fishd</cc>
    
    <cc>peter+ews</cc>
    
    <cc>pfeldman</cc>
    
    <cc>piman</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826971</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-06 18:41:37 -0800</bug_when>
    <thetext>[chromium] Clean up WebWidget / WebLayerTreeView interactions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826975</commentid>
    <comment_count>1</comment_count>
      <attachid>186975</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-06 18:42:03 -0800</bug_when>
    <thetext>Created attachment 186975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826989</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-06 18:51:17 -0800</bug_when>
    <thetext>This probably doesn&apos;t even compile by itself.  In conjunction with https://codereview.chromium.org/12226051, chrome itself seems to work fine but some WebKit-side tests don&apos;t.  The goals of this patch are in the chromium-side codereview&apos;s description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826995</commentid>
    <comment_count>3</comment_count>
      <attachid>186975</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-06 18:54:19 -0800</bug_when>
    <thetext>Comment on attachment 186975
Patch

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

&gt; Source/WebKit/chromium/public/WebWidget.h:256
&gt; +    // Instrumentation method that marks beginning of frame update that includes
&gt; +    // things like animate()/layout()/paint().
&gt; +    virtual void instrumentBeginFrame() { instrumentWillBeginFrame(); }
&gt; +
&gt; +    // instrumentWillBeginFrame will be followed by either
&gt; +    // instrumentDidBeginFrame or instrumentDidCancelFrame.
&gt; +    virtual void instrumentWillBeginFrame() { }
&gt; +    virtual void instrumentDidCancelFrame() { }
&gt; +    virtual void instrumentDidBeginFrame() { }
&gt; +    virtual void instrumentWillComposite() { }

caseq/pfeldman:  I&apos;m not super happy about these calls being on WebWidget, but I&apos;m not sure exactly what to do.  The basic issue here is that the inspector instrumentation wants to know about steps in the compositing process, but other than these calls WebKit doesn&apos;t have any involvement with these steps.  InspectorInstrumentation doesn&apos;t appear to be exposed directly.  I could add add these calls to WebWidget as this patch does but it&apos;s fairly ugly.  I could also add another tear-off interface, or perhaps put these on WebDevToolsAgent which hangs off of WebView.  Logically these steps can apply to any WebWidget but I think WebViews are the only sorts of Widgets that the inspector can collect timeline data for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827000</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 19:14:23 -0800</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>827014</commentid>
    <comment_count>5</comment_count>
      <attachid>186975</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-02-06 19:49:33 -0800</bug_when>
    <thetext>Comment on attachment 186975
Patch

Attachment 186975 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/16408029</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827017</commentid>
    <comment_count>6</comment_count>
      <attachid>186975</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 19:54:58 -0800</bug_when>
    <thetext>Comment on attachment 186975
Patch

Attachment 186975 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16404050</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827419</commentid>
    <comment_count>7</comment_count>
      <attachid>186975</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 06:11:50 -0800</bug_when>
    <thetext>Comment on attachment 186975
Patch

Attachment 186975 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16435152</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827518</commentid>
    <comment_count>8</comment_count>
      <attachid>186975</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-02-07 07:56:01 -0800</bug_when>
    <thetext>Comment on attachment 186975
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebWidget.h:256
&gt;&gt; +    virtual void instrumentWillComposite() { }
&gt; 
&gt; caseq/pfeldman:  I&apos;m not super happy about these calls being on WebWidget, but I&apos;m not sure exactly what to do.  The basic issue here is that the inspector instrumentation wants to know about steps in the compositing process, but other than these calls WebKit doesn&apos;t have any involvement with these steps.  InspectorInstrumentation doesn&apos;t appear to be exposed directly.  I could add add these calls to WebWidget as this patch does but it&apos;s fairly ugly.  I could also add another tear-off interface, or perhaps put these on WebDevToolsAgent which hangs off of WebView.  Logically these steps can apply to any WebWidget but I think WebViews are the only sorts of Widgets that the inspector can collect timeline data for.

We discussed it with Pavel and the consensus was that for the time being the best place for the methods would be on WebDevToolsAgent -- I can help with that if you like. Another idea that Nat proposed would be to use our emerging trace event based instrumentation, which would allow to cut down on plumbing quite a bit, but we thought it would perhaps be too early for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838930</commentid>
    <comment_count>9</comment_count>
      <attachid>189620</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-21 15:39:41 -0800</bug_when>
    <thetext>Created attachment 189620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838934</commentid>
    <comment_count>10</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-21 15:41:17 -0800</bug_when>
    <thetext>This patch passes layout and unit tests, but doesn&apos;t work entirely correctly (i.e. devtools instrumentation does not work as expected) without some chromium-side changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844639</commentid>
    <comment_count>11</comment_count>
      <attachid>190850</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-28 17:11:15 -0800</bug_when>
    <thetext>Created attachment 190850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844641</commentid>
    <comment_count>12</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-28 17:14:04 -0800</bug_when>
    <thetext>It&apos;s alive!  This patch works.  What it does is move the rest of the compositor-interaction responsibilies to WebWidget / WebWidgetClient and leaves WebLayerTreeViewClient as just a shell.  Once this lands and the chromium side that moves calls over to the new interfaces, WebLayerTreeViewClient will go away completely.  WebViewImpl (or other WebWidget implementations) will use WebWidgetClient for widget-specific compositor communication and use WebLayerTreeView to talk directly to the compositor implementation for things that aren&apos;t widget-specific.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844642</commentid>
    <comment_count>13</comment_count>
      <attachid>190852</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-28 17:15:16 -0800</bug_when>
    <thetext>Created attachment 190852
more fixups to ScrollingCoordinatorChromiumTest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844668</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-28 17:50:58 -0800</bug_when>
    <thetext>Oh - this also depends on https://codereview.chromium.org/12377029/ landing + rolling in to Source/WebKit/chromium/DEPS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844677</commentid>
    <comment_count>15</comment_count>
      <attachid>190852</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-28 17:55:22 -0800</bug_when>
    <thetext>Comment on attachment 190852
more fixups to ScrollingCoordinatorChromiumTest

Attachment 190852 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16822361</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844681</commentid>
    <comment_count>16</comment_count>
      <attachid>190852</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-28 17:56:43 -0800</bug_when>
    <thetext>Comment on attachment 190852
more fixups to ScrollingCoordinatorChromiumTest

Attachment 190852 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16863126</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844848</commentid>
    <comment_count>17</comment_count>
      <attachid>190852</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-02-28 22:51:50 -0800</bug_when>
    <thetext>Comment on attachment 190852
more fixups to ScrollingCoordinatorChromiumTest

Attachment 190852 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/16778589</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845479</commentid>
    <comment_count>18</comment_count>
      <attachid>190852</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-01 14:02:04 -0800</bug_when>
    <thetext>Comment on attachment 190852
more fixups to ScrollingCoordinatorChromiumTest

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

&gt; Source/Platform/chromium/public/WebLayerTreeViewClient.h:-76
&gt; -    virtual void scheduleComposite() = 0;

I&apos;ll have to muck about with content shell a bit before deleting this virtual.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845703</commentid>
    <comment_count>19</comment_count>
      <attachid>191089</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-01 18:49:25 -0800</bug_when>
    <thetext>Created attachment 191089
fix WebTestProxy compilation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845704</commentid>
    <comment_count>20</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-01 18:49:55 -0800</bug_when>
    <thetext>This fixes the WebTestProxy compile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845706</commentid>
    <comment_count>21</comment_count>
      <attachid>191089</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-01 18:58:22 -0800</bug_when>
    <thetext>Comment on attachment 191089
fix WebTestProxy compilation

Attachment 191089 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16885043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845707</commentid>
    <comment_count>22</comment_count>
      <attachid>191089</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-01 19:03:49 -0800</bug_when>
    <thetext>Comment on attachment 191089
fix WebTestProxy compilation

Attachment 191089 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16668335</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846871</commentid>
    <comment_count>23</comment_count>
      <attachid>191315</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-04 14:42:04 -0800</bug_when>
    <thetext>Created attachment 191315
rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846872</commentid>
    <comment_count>24</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-04 14:42:45 -0800</bug_when>
    <thetext>This should build and work fine against current chromium.  It deprecates the WebLayerTreeViewClient implementations in WebKit, but leaves them in place so the callers can be removed on the chromium side.  Mind having a look, Enne?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846932</commentid>
    <comment_count>25</comment_count>
      <attachid>191315</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2013-03-04 15:37:53 -0800</bug_when>
    <thetext>Comment on attachment 191315
rebased

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

R=me.

&gt; Source/WebKit/chromium/src/WebViewImpl.h:156
&gt; +    virtual WebInputHandler* createInputHandler() OVERRIDE;
&gt; +    virtual void applyScrollAndScale(const WebSize&amp;, float);

Just a drive-by comment, but what&apos;s with the inconsistent use of OVERRIDE in this block if these are all WebWidget methods?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846944</commentid>
    <comment_count>26</comment_count>
      <attachid>191315</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-04 15:45:05 -0800</bug_when>
    <thetext>Comment on attachment 191315
rebased

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

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.h:156
&gt;&gt; +    virtual void applyScrollAndScale(const WebSize&amp;, float);
&gt; 
&gt; Just a drive-by comment, but what&apos;s with the inconsistent use of OVERRIDE in this block if these are all WebWidget methods?

No reason. I&apos;ll add OVERRIDES to the rest of this file as a style follow-up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847214</commentid>
    <comment_count>27</comment_count>
      <attachid>191315</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-04 20:06:59 -0800</bug_when>
    <thetext>Comment on attachment 191315
rebased

Attachment 191315 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16986028

New failing tests:
inspector/debugger/pause-in-internal-script.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847831</commentid>
    <comment_count>28</comment_count>
      <attachid>191315</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 11:09:04 -0800</bug_when>
    <thetext>Comment on attachment 191315
rebased

Clearing flags on attachment: 191315

Committed r144784: &lt;http://trac.webkit.org/changeset/144784&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847832</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 11:09:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186975</attachid>
            <date>2013-02-06 18:42:03 -0800</date>
            <delta_ts>2013-02-21 15:39:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109125-20130206183839.patch</filename>
            <type>text/plain</type>
            <size>26710</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3M2FiODgxMGNmYjcy
NTFmYWZlMGIwMWQ3YWZhMWVhZTYxMWY5OGJlLi5iYTQ3Njg3NTU0N2M5ZDE3NjE3ZGNhOTVlOTJi
YTM5ZGU2NmI2YTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wMi0wNiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gQ2xlYW4gdXAgV2ViV2lkZ2V0IC8gV2ViTGF5ZXJUcmVlVmlldyBpbnRlcmFjdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTEyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0v
cHVibGljL1dlYkxheWVyVHJlZVZpZXcuaDoKKyAgICAgICAgKFdlYkxheWVyVHJlZVZpZXcpOgor
ICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50Lmg6CisgICAg
ICAgIChXZWJMYXllclRyZWVWaWV3Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJU
cmVlVmlld0NsaWVudDo6d2lsbEJlZ2luRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXll
clRyZWVWaWV3Q2xpZW50OjpkaWRCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5
ZXJUcmVlVmlld0NsaWVudDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmxheW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxh
eWVyVHJlZVZpZXdDbGllbnQ6OmRpZFJlY3JlYXRlT3V0cHV0U3VyZmFjZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmNyZWF0ZUlucHV0SGFuZGxlcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmNyZWF0ZU91dHB1dFN1cmZhY2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50Ojp3aWxsQ29tbWl0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0NsaWVudDo6ZGlkQ29tbWl0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0NsaWVudDo6ZGlkQ29tbWl0QW5kRHJhd0Zy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0NsaWVudDo6ZGlkQ29tcGxl
dGVTd2FwQnVmZmVycyk6CisKIDIwMTMtMDItMDYgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3
QGdvb2dsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBJbXBsZW1lbnQgRFRNRiBz
dXBwb3J0IGluIFJUQ1BlZXJDb25uZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDFhYTExNzdlMGZhZDg2MTNiYmMxOWJhZTcxNzdiNWUyYjIzMGNiODUuLjNjYThhZWMyNGQ4Y2Ew
N2NiNjQxMzI4N2Y5ZTk5NjRkZWUyMjk4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDQgQEAKKzIwMTMtMDItMDYgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIENsZWFuIHVwIFdlYldpZGdldCAvIFdlYkxh
eWVyVHJlZVZpZXcgaW50ZXJhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDkxMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgICogcHVi
bGljL1dlYldpZGdldC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
V2lkZ2V0OjphbmltYXRlKToKKyAgICAgICAgKFdlYldpZGdldCk6CisgICAgICAgIChXZWJLaXQ6
OldlYldpZGdldDo6ZGlkRXhpdENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YldpZGdldDo6Y3JlYXRlSW5wdXRIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0
OjphcHBseVNjcm9sbEFuZFNjYWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0OjppbnN0
cnVtZW50QmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aW5zdHJ1bWVu
dFdpbGxCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0OjppbnN0cnVtZW50
RGlkQ2FuY2VsRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6Omluc3RydW1lbnRE
aWRCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0OjppbnN0cnVtZW50V2ls
bENvbXBvc2l0ZSk6CisgICAgICAgICogc3JjL1dlYkhlbHBlclBsdWdpbkltcGwuY3BwOgorICAg
ICAgICAqIHNyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmg6CisgICAgICAgIChXZWJIZWxwZXJQbHVn
aW5JbXBsKToKKyAgICAgICAgKiBzcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHA6CisgICAgICAgICog
c3JjL1dlYlBhZ2VQb3B1cEltcGwuaDoKKyAgICAgICAgKFdlYlBhZ2VQb3B1cEltcGwpOgorICAg
ICAgICAqIHNyYy9XZWJQb3B1cE1lbnVJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViUG9wdXBN
ZW51SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjppbnN0cnVtZW50V2lsbEJlZ2luRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6aW5zdHJ1bWVudERpZEJlZ2luRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6aW5zdHJ1bWVudERpZENhbmNlbEZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6Omluc3RydW1lbnRXaWxsQ29tcG9zaXRlKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVCYXR0ZXJ5U3RhdHVz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFuaW1hdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZGlkRXhpdENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgICogc3Jj
L1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogdGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21t
b24uaDoKKyAgICAgICAgKE1vY2tXZWJMYXllclRyZWVWaWV3Q2xpZW50KToKKwogMjAxMy0wMi0w
NiAgQ2hyaXMgSG9wbWFuICA8Y2pob3BtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJv
bWl1bV0gV2ViV2lkZ2V0IHNob3VsZCBleHBvc2UgYSB3YXkgdG8gZGV0ZXJtaW5lIHRoZSBzdGFy
dC9lbmQgb2YgdGhlIHNlbGVjdGlvbiBib3VuZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oIGIvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKaW5kZXggZjM1YWJiMjYxZTE0MmJlMDBh
YTU4ZTM4OTYxNDJiMGM3OTdkMDE2OC4uNWEyYzFhNmVkMWNhOGZkMGY2M2NmMjdiYjZkMmNiY2Q3
ZmMzZDQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJM
YXllclRyZWVWaWV3LmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJM
YXllclRyZWVWaWV3LmgKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGbG93
IGNvbnRyb2wgYW5kIHNjaGVkdWxpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKLSAgICAvLyBSZXF1ZXN0cyBhbiB1cGRhdGVBbmltYXRpb25zKCkgY2FsbC4KKyAg
ICAvLyBJbmRpY2F0ZXMgdGhhdCBhbiBhbmltYXRpb24gbmVlZHMgdG8gYmUgdXBkYXRlZC4KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNBbmltYXRlKCkgPSAwOwogCiAgICAgLy8gSW5kaWNhdGVz
IHRoYXQgdGhlIHZpZXcgbmVlZHMgdG8gYmUgcmVkcmF3bi4gVGhpcyBpcyB0eXBpY2FsbHkgdXNl
ZCB3aGVuIHRoZSBmcm9udGJ1ZmZlciBpcyBkYW1hZ2VkLgpAQCAtMTQwLDIwICsxNDAsNiBAQCBw
dWJsaWM6CiAgICAgLy8gSW5kaWNhdGVzIHdoZXRoZXIgYSBjb21taXQgaXMgcGVuZGluZy4KICAg
ICB2aXJ0dWFsIGJvb2wgY29tbWl0UmVxdWVzdGVkKCkgY29uc3QgPSAwOwogCi0gICAgLy8gVHJp
Z2dlcnMgYSBjb21wb3NpdGluZyBwYXNzLiBJZiB0aGUgY29tcG9zaXRvciB0aHJlYWQgd2FzIG5v
dAotICAgIC8vIGVuYWJsZWQgdmlhIFdlYkNvbXBvc2l0b3JTdXBwb3J0Ojppbml0aWFsaXplLCB0
aGUgY29tcG9zaXRpbmcgcGFzcyBoYXBwZW5zCi0gICAgLy8gaW1tZWRpYXRlbHkuIElmIGl0IGlz
IGVuYWJsZWQsIHRoZSBjb21wb3NpdGluZyBwYXNzIHdpbGwgaGFwcGVuIGF0IGEKLSAgICAvLyBs
YXRlciB0aW1lLiBCZWZvcmUgdGhlIGNvbXBvc2l0aW5nIHBhc3MgaGFwcGVucyAoaS5lLiBiZWZv
cmUgY29tcG9zaXRlKCkKLSAgICAvLyByZXR1cm5zIHdoZW4gdGhlIGNvbXBvc2l0b3IgdGhyZWFk
IGlzIGRpc2FibGVkKSwgV2ViQ29udGVudExheWVycyB3aWxsIGJlCi0gICAgLy8gYXNrZWQgdG8g
cGFpbnQgdGhlaXIgZGlydHkgcmVnaW9uLCB0aHJvdWdoCi0gICAgLy8gV2ViQ29udGVudExheWVy
Q2xpZW50OjpwYWludENvbnRlbnRzLgotICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoKSA9IDA7
Ci0KLSAgICAvLyBJbW1lZGlhdGVseSB1cGRhdGUgYW5pbWF0aW9ucy4gVGhpcyBzaG91bGQgb25s
eSBiZSB1c2VkIHdoZW4gZnJhbWUgc2NoZWR1bGluZyBpcyBoYW5kbGVkIGJ5Ci0gICAgLy8gdGhl
IFdlYkxheWVyVHJlZVZpZXcgdXNlciBhbmQgbm90IGludGVybmFsbHkgYnkgdGhlIGNvbXBvc2l0
b3IsIG1lYW5pbmcgb25seSBpbiBzaW5nbGUtdGhyZWFkZWQKLSAgICAvLyBtb2RlLgotICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgPSAwOwot
CiAgICAgLy8gUmVsYXlzIHRoZSBlbmQgb2YgYSBmbGluZyBhbmltYXRpb24uCiAgICAgdmlydHVh
bCB2b2lkIGRpZFN0b3BGbGluZ2luZygpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaCBiL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCmluZGV4IDJjYTZi
MGE1MWVkY2IyZmY0NzdmOGM5MDRhNjRhNTJmODAzZmZmZWEuLjhkNjQ4Nzc2NjhmYmJhZGExNmFm
NWRkN2IyYmI4OGJlNTUyMDQ0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCkBAIC0zNyw1NiArMzcsNiBA
QCBzdHJ1Y3QgV2ViU2l6ZTsKIAogY2xhc3MgV2ViTGF5ZXJUcmVlVmlld0NsaWVudCB7CiBwdWJs
aWM6Ci0gICAgLy8gSW5kaWNhdGVzIHRvIHRoZSBlbWJlZGRlciB0aGF0IHRoZSBjb21wb3NpdG9y
IGlzIGFib3V0IHRvIGJlZ2luIGEKLSAgICAvLyBmcmFtZS4gVGhpcyBpcyBpcyBhIHNpZ25hbCB0
byBmbG93IGNvbnRyb2wgbWVjaGFuaXNtcyB0aGF0IGEgZnJhbWUgaXMKLSAgICAvLyBiZWdpbm5p
bmcuIFRoaXMgY2FsbCB3aWxsIGJlIGZvbGxvd2VkIGJ5IHVwZGF0ZUFuaW1hdGlvbnMgYW5kIHRo
ZW4KLSAgICAvLyBsYXlvdXQsIHdoaWNoIHNob3VsZCBiZSB1c2VkIGZvciBhY3R1YWwgYW5pbWF0
aW9uIG9yIHRyZWUgbWFuaXB1bGF0aW9uCi0gICAgLy8gdGFza3MuICBGSVhNRTogbWFrZSBwdXJl
IHZpcnR1YWwgb25jZSB1cHN0cmVhbSBkZXBzIGFyZSBzYXRpc2ZpZWQuCi0gICAgdmlydHVhbCB2
b2lkIHdpbGxCZWdpbkZyYW1lKCkgeyB9Ci0KLSAgICAvLyBJbmRpY2F0ZXMgdGhhdCBtYWluIHRo
cmVhZCB0YXNrcyBhc3NvY2lhdGVkIHdpdGggZnJhbWUgcmVuZGVyaW5nIGhhdmUgY29tcGxldGVk
LgotICAgIC8vIElzc3VlZCB1bmNvbmRpdGlvbmFsbHksIGV2ZW4gaWYgdGhlIGNvbnRleHQgd2Fz
IGxvc3QgaW4gdGhlIHByb2Nlc3MuCi0gICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRnJhbWUoKSB7
IH0KLQotICAgIC8vIFVwZGF0ZXMgYW5pbWF0aW9uIGFuZCBsYXlvdXQuIFRoZXNlIGFyZSBjYWxs
ZWQgYmVmb3JlIHRoZSBjb21wb3NpdGluZwotICAgIC8vIHBhc3Mgc28gdGhhdCBsYXllcnMgY2Fu
IGJlIHVwZGF0ZWQgYXQgdGhlIGdpdmVuIGZyYW1lIHRpbWUuCi0gICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGxheW91dCgpID0gMDsKLQotICAgIC8vIEFwcGxpZXMgYSBzY3JvbGwgZGVs
dGEgdG8gdGhlIHJvb3QgbGF5ZXIsIHdoaWNoIGlzIGJ1bmRsZWQgd2l0aCBhIHBhZ2UKLSAgICAv
LyBzY2FsZSBmYWN0b3IgdGhhdCBtYXkgYXBwbHkgYSBDU1MgdHJhbnNmb3JtIG9uIHRoZSB3aG9s
ZSBkb2N1bWVudCAodXNlZAotICAgIC8vIGZvciBtb2JpbGUtZGV2aWNlIHBpbmNoIHpvb21pbmcp
LiBUaGlzIGlzIHRyaWdnZXJlZCBieSBldmVudHMgc2VudCB0byB0aGUKLSAgICAvLyBjb21wb3Np
dG9yIHRocmVhZCB0aHJvdWdoIHRoZSBXZWJDb21wb3NpdG9yIGludGVyZmFjZS4KLSAgICB2aXJ0
dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiBzY3JvbGxEZWx0YSwg
ZmxvYXQgc2NhbGVGYWN0b3IpID0gMDsKLQotICAgIC8vIENyZWF0ZXMgdGhlIG91dHB1dCBzdXJm
YWNlLiBUaGlzIG1heSBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2UKLSAgICAvLyBpZiB0aGUgY29u
dGV4dCBnZXRzIGxvc3QuCi0gICAgdmlydHVhbCBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSog
Y3JlYXRlT3V0cHV0U3VyZmFjZSgpIHsgcmV0dXJuIDA7IH0KLQotICAgIC8vIFNpZ25hbHMgYSBz
dWNjZXNzZnVsIHJlY3JlYXRpb24gb2YgdGhlIG91dHB1dCBzdXJmYWNlIChlLmcuIGFmdGVyIGEg
bG9zdAotICAgIC8vIDNEIGNvbnRleHQgZXZlbnQpLgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNy
ZWF0ZU91dHB1dFN1cmZhY2UoYm9vbCBzdWNjZXNzKSB7IH0KLQotICAgIHZpcnR1YWwgV2ViSW5w
dXRIYW5kbGVyKiBjcmVhdGVJbnB1dEhhbmRsZXIoKSB7IHJldHVybiAwOyB9Ci0KLSAgICAvLyBJ
bmRpY2F0ZXMgdGhhdCBhIGZyYW1lIHdpbGwgYmUgY29tbWl0dGVkIHRvIHRoZSBpbXBsIHNpZGUg
b2YgdGhlIGNvbXBvc2l0b3IKLSAgICAvLyBmb3IgcmVuZGVyaW5nLgotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQ29tbWl0KCkgeyB9Ci0KLSAgICAvLyBJbmRpY2F0ZXMgdGhhdCBhIGZyYW1lIHdhcyBj
b21taXR0ZWQgdG8gdGhlIGltcGwgc2lkZSBvZiB0aGUgY29tcG9zaXRvcgotICAgIC8vIGZvciBy
ZW5kZXJpbmcuCi0gICAgLy8KLSAgICAvLyBGSVhNRTogbWFrZSB0aGlzIG5vbi12aXJ0dWFsIHdo
ZW4gdWkvY29tcG9zaXRvciBERVAgaXMgcmVzb2x2ZWQuCi0gICAgdmlydHVhbCB2b2lkIGRpZENv
bW1pdCgpIHsgfQotCi0gICAgLy8gSW5kaWNhdGVzIHRoYXQgYSBmcmFtZSB3YXMgY29tbWl0dGVk
IHRvIHRoZSBpbXBsIHNpZGUgYW5kIGRyYXdpbmcKLSAgICAvLyBjb21tYW5kcyBmb3IgaXQgd2Vy
ZSBpc3N1ZWQgdG8gdGhlIEdQVS4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0Zy
YW1lKCkgPSAwOwotCi0gICAgLy8gSW5kaWNhdGVzIHRoYXQgYSBmcmFtZSBwcmV2aW91c2x5IGlz
c3VlZCB0byB0aGUgR1BVIGhhcyBjb21wbGV0ZWQKLSAgICAvLyByZW5kZXJpbmcuCi0gICAgdmly
dHVhbCB2b2lkIGRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKSA9IDA7Ci0KICAgICAvLyBTY2hlZHVs
ZXMgYSBjb21wb3NpdGluZyBwYXNzLCBtZWFuaW5nIHRoZSBjbGllbnQgc2hvdWxkIGNhbGwKICAg
ICAvLyBXZWJMYXllclRyZWVWaWV3Ojpjb21wb3NpdGUgYXQgYSBsYXRlciB0aW1lLiBUaGlzIGlz
IG9ubHkgY2FsbGVkIGlmIHRoZQogICAgIC8vIGNvbXBvc2l0b3IgdGhyZWFkIGlzIGRpc2FibGVk
OyB3aGVuIGVuYWJsZWQsIHRoZSBjb21wb3NpdG9yIHdpbGwKQEAgLTk4LDYgKzQ4LDE5IEBAIHB1
YmxpYzoKICAgICAvLyBvZiB0aGUgYXRsYXMgcmVwcmVzZW50aW5nIHRoZSBjb3JyZXNwb25kaW5n
IGdseXBoLCBhbmQgdGhlIGdseXBoIGhlaWdodC4KICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlRm9u
dEF0bGFzKFNrQml0bWFwJiwgV2ViUmVjdCBhc2NpaVRvUmVjdFRhYmxlWzEyOF0sIGludCYgZm9u
dEhlaWdodCkgeyB9CiAKKyAgICAvLyBERVBSRUNBVEVEIC0gV0lMTCBCRSBSRU1PVkVEIFNPT04K
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQmVnaW5GcmFtZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxl
KGNvbnN0IFdlYlNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZUZhY3RvcikgeyB9CisgICAg
dmlydHVhbCB2b2lkIGxheW91dCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZU91
dHB1dFN1cmZhY2UoYm9vbCBzdWNjZXNzKSB7IH0KKyAgICB2aXJ0dWFsIFdlYklucHV0SGFuZGxl
ciogY3JlYXRlSW5wdXRIYW5kbGVyKCkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgV2ViQ29t
cG9zaXRvck91dHB1dFN1cmZhY2UqIGNyZWF0ZU91dHB1dFN1cmZhY2UoKSB7IHJldHVybiAwOyB9
CisgICAgdmlydHVhbCB2b2lkIHdpbGxDb21taXQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
Q29tbWl0KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZSgpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCkgeyB9CisKIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIH5XZWJMYXllclRyZWVWaWV3Q2xpZW50KCkgeyB9CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDM4YzY2
ZGZlODlmOTNmYTg4ZTE4ZDUwNjgwODQ1NjE2NmMwMjY3MzMuLmU0NDZlMmE2OTNmOTFhMTcxYzVl
MmM5M2YzMDE4NjQwZDhkNTVlMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3Q2xpZW50LmgKQEAgLTEyMywxMSArMTIzLDYgQEAgcHVibGljOgogICAgIC8vIENy
ZWF0ZSBhIHNlc3Npb24gc3RvcmFnZSBuYW1lc3BhY2Ugb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0
aGlzIFdlYlZpZXcuCiAgICAgdmlydHVhbCBXZWJTdG9yYWdlTmFtZXNwYWNlKiBjcmVhdGVTZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSkgeyByZXR1cm4gMDsgfQogCi0gICAg
Ly8gREVQUkVDQVRFRDogQ3JlYXRlcyBhIGdyYXBoaWNzIGNvbnRleHQgdGhhdCByZW5kZXJzIHRv
IHRoZSBjbGllbnQncyBXZWJWaWV3LgotICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0Qq
IGNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKGNvbnN0IFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRy
aWJ1dGVzJikgeyByZXR1cm4gMDsgfQotCi0gICAgLy8gQ3JlYXRlcyB0aGUgb3V0cHV0IHN1cmZh
Y2UgdGhhdCByZW5kZXJzIHRvIHRoZSBjbGllbnQncyBXZWJWaWV3LgotICAgIHZpcnR1YWwgV2Vi
Q29tcG9zaXRvck91dHB1dFN1cmZhY2UqIGNyZWF0ZU91dHB1dFN1cmZhY2UoKSB7IHJldHVybiAw
OyB9CiAKICAgICAvLyBNaXNjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJXaWRnZXQuaAppbmRleCAxZDVmNWYxMmQ3NmE3ZWMxOGM4NWZlNjk3MTVjMTY3N2E5Yzgz
NzE0Li40NGU3NGFkMjIwNDJjNmI0OTMzNmMxMDYxNjJlN2YwMDllZjY2ZWI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaApAQCAtNDIsNiArNDIsNyBAQAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYklucHV0RXZlbnQ7CitjbGFzcyBXZWJJbnB1dEhh
bmRsZXI7CiBjbGFzcyBXZWJMYXllclRyZWVWaWV3OwogY2xhc3MgV2ViTW91c2VFdmVudDsKIGNs
YXNzIFdlYlN0cmluZzsKQEAgLTgwLDcgKzgxLDcgQEAgcHVibGljOgogCiAgICAgLy8gQ2FsbGVk
IHRvIHVwZGF0ZSBpbXBlcmF0aXZlIGFuaW1hdGlvbiBzdGF0ZS4gVGhpcyBzaG91bGQgYmUgY2Fs
bGVkIGJlZm9yZQogICAgIC8vIHBhaW50LCBhbHRob3VnaCB0aGUgY2xpZW50IGNhbiByYXRlLWxp
bWl0IHRoZXNlIGNhbGxzLgotICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSBpZ25vcmVk
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdp
blRpbWUpIHsgfQogCiAgICAgLy8gQ2FsbGVkIHRvIGxheW91dCB0aGUgV2ViV2lkZ2V0LiBUaGlz
IE1VU1QgYmUgY2FsbGVkIGJlZm9yZSBQYWludCwKICAgICAvLyBhbmQgaXQgbWF5IHJlc3VsdCBp
biBjYWxscyB0byBXZWJXaWRnZXRDbGllbnQ6OmRpZEludmFsaWRhdGVSZWN0LgpAQCAtOTAsNiAr
OTEsMTAgQEAgcHVibGljOgogICAgIC8vIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIHBhaW50Lgog
ICAgIHZpcnR1YWwgdm9pZCBlbnRlckZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW50ZXIpIHsg
fQogCisgICAgLy8gQ2FsbGVkIHRvIG5vdGlmeSB0aGUgV2ViV2lkZ2V0IHRoYXQgdGhlIHdpZGdl
dCBoYXMgZXhpdGVkIGNvbXBvc2l0aW5nCisgICAgLy8gbW9kZSBhbmQgY2Fubm90IHJlZW50ZXIu
CisgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRDb21wb3NpdGluZ01vZGUoKSB7IH0KKyAgICAKICAg
ICBlbnVtIFBhaW50T3B0aW9ucyB7CiAgICAgICAgIC8vIEF0dGVtcHQgdG8gZnVsZmlsbCB0aGUg
cGFpbnRpbmcgcmVxdWVzdCBieSByZWFkaW5nIGJhY2sgZnJvbSB0aGUKICAgICAgICAgLy8gY29t
cG9zaXRvciwgYXNzdW1pbmcgd2UncmUgdXNpbmcgYSBjb21wb3NpdG9yIHRvIHJlbmRlci4KQEAg
LTExNCwxNiArMTE5LDYgQEAgcHVibGljOgogICAgIC8vIHdhcnJhbnRlZCBiZWZvcmUgcGFpbnRp
bmcgYWdhaW4pLgogICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMqLCBjb25zdCBXZWJS
ZWN0JiB2aWV3UG9ydCwgUGFpbnRPcHRpb25zID0gUmVhZGJhY2tGcm9tQ29tcG9zaXRvcklmQXZh
aWxhYmxlKSB7IH0KIAotICAgIC8vIEluIG5vbi10aHJlYWRlZCBjb21wb3NpdGluZyBtb2RlLCB0
cmlnZ2VycyBjb21wb3NpdGluZyBvZiB0aGUgY3VycmVudAotICAgIC8vIGxheWVycyBvbnRvIHRo
ZSBzY3JlZW4uIFlvdSBNVVNUIGNhbGwgTGF5b3V0IGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9k
LAotICAgIC8vIGZvciB0aGUgc2FtZSByZWFzb25zIGRlc2NyaWJlZCBpbiB0aGUgcGFpbnQgbWV0
aG9kIGFib3ZlCi0gICAgLy8KLSAgICAvLyBJbiB0aHJlYWRlZCBjb21wb3NpdGluZyBtb2RlLCBp
bmRpY2F0ZXMgdGhhdCB0aGUgd2lkZ2V0IHNob3VsZCB1cGRhdGUKLSAgICAvLyBpdHNlbGYsIGZv
ciBleGFtcGxlIGR1ZSB0byB3aW5kb3cgZGFtYWdlLiBUaGUgcmVkcmF3IHdpbGwgYmVnaW4KLSAg
ICAvLyBhc3luY2hyb25vdXNseSBhbmQgcGVyZm9ybSBsYXlvdXQgYW5kIGFuaW1hdGlvbiBpbnRl
cm5hbGx5LiBEbyBub3QgY2FsbAotICAgIC8vIGFuaW1hdGUgb3IgbGF5b3V0IGluIHRoaXMgY2Fz
ZS4KLSAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wgZmluaXNoKSA9IDA7Ci0KICAgICAv
LyBSZXR1cm5zIHRydWUgaWYgd2UndmUgc3RhcnRlZCB0cmFja2luZyByZXBhaW50IHJlY3Rhbmds
ZXMuCiAgICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAKQEAgLTE0OCw2ICsxNDMsMTYgQEAgcHVibGljOgogICAgIC8vIENoZWNrIHdo
ZXRoZXIgdGhlIGdpdmVuIHBvaW50IGhpdHMgYW55IHJlZ2lzdGVyZWQgdG91Y2ggZXZlbnQgaGFu
ZGxlcnMuCiAgICAgdmlydHVhbCBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVyc0F0KGNvbnN0IFdl
YlBvaW50JikgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgLy8gUmVxdWVzdCB0aGF0IHRoZSBXZWJX
aWRnZXQgY3JlYXRlIGFuIGlucHV0IGhhbmRsZXIgZm9yIHByb2Nlc3NpbmcgaW5wdXQKKyAgICAv
LyBldmVudHMgaW50ZW5kZWQgZm9yIHRoaXMgd2lkZ2V0IG9mZiBvZiB0aGUgbWFpbiB0aHJlYWQu
CisgICAgdmlydHVhbCBXZWJJbnB1dEhhbmRsZXIqIGNyZWF0ZUlucHV0SGFuZGxlcigpIHsgcmV0
dXJuIDA7IH0KKworICAgIC8vIEFwcGxpZXMgYSBzY3JvbGwgZGVsdGEgdG8gdGhlIHJvb3QgbGF5
ZXIsIHdoaWNoIGlzIGJ1bmRsZWQgd2l0aCBhIHBhZ2UKKyAgICAvLyBzY2FsZSBmYWN0b3IgdGhh
dCBtYXkgYXBwbHkgYSBDU1MgdHJhbnNmb3JtIG9uIHRoZSB3aG9sZSBkb2N1bWVudCAodXNlZAor
ICAgIC8vIGZvciBtb2JpbGUtZGV2aWNlIHBpbmNoIHpvb21pbmcpLiBUaGlzIGlzIHRyaWdnZXJl
ZCBieSBldmVudHMgc2VudCB0byB0aGUKKyAgICAvLyBjb21wb3NpdG9yIHRocmVhZCB0aHJvdWdo
IHRoZSBXZWJJbnB1dEhhbmRsZXIgaW50ZXJmYWNlLgorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNj
cm9sbEFuZFNjYWxlKGNvbnN0IFdlYlNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZUZhY3Rv
cikgeyB9CisKICAgICAvLyBDYWxsZWQgdG8gaW5mb3JtIHRoZSBXZWJXaWRnZXQgdGhhdCBtb3Vz
ZSBjYXB0dXJlIHdhcyBsb3N0LgogICAgIHZpcnR1YWwgdm9pZCBtb3VzZUNhcHR1cmVMb3N0KCkg
eyB9CiAKQEAgLTIzNSwxNyArMjQwLDIxIEBAIHB1YmxpYzoKICAgICAvLyByZWN0LikKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlV2luZG93UmVzaXplclJlY3QoKSB7IH0KIAotICAgIC8vIElu
c3RydW1lbnRhdGlvbiBtZXRob2QgdGhhdCBtYXJrcyBiZWdpbm5pbmcgb2YgZnJhbWUgdXBkYXRl
IHRoYXQgaW5jbHVkZXMKLSAgICAvLyB0aGluZ3MgbGlrZSBhbmltYXRlKCkvbGF5b3V0KCkvcGFp
bnQoKS9jb21wb3NpdGUoKS4KLSAgICB2aXJ0dWFsIHZvaWQgaW5zdHJ1bWVudEJlZ2luRnJhbWUo
KSB7IH0KLSAgICAvLyBDYW5jZWxzIHRoZSBlZmZlY3Qgb2YgaW5zdHJ1bWVudEJlZ2luRnJhbWUo
KSBpbiBjYXNlIHRoZXJlIHdlcmUgbm8gZXZlbnRzCi0gICAgLy8gZm9sbG93aW5nIHRoZSBjYWxs
IHRvIGluc3RydW1lbnRCZWdpbkZyYW1lKCkuCi0gICAgdmlydHVhbCB2b2lkIGluc3RydW1lbnRD
YW5jZWxGcmFtZSgpIHsgfQotCiAgICAgLy8gVGhlIHBhZ2UgYmFja2dyb3VuZCBjb2xvci4gQ2Fu
IGJlIHVzZWQgZm9yIGZpbGxpbmcgaW4gYXJlYXMgd2l0aG91dAogICAgIC8vIGNvbnRlbnQuCiAg
ICAgdmlydHVhbCBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCB7IHJldHVybiAweEZG
RkZGRkZGOyAvKiBTS19Db2xvcldISVRFICovIH0KIAorICAgIC8vIEluc3RydW1lbnRhdGlvbiBt
ZXRob2QgdGhhdCBtYXJrcyBiZWdpbm5pbmcgb2YgZnJhbWUgdXBkYXRlIHRoYXQgaW5jbHVkZXMK
KyAgICAvLyB0aGluZ3MgbGlrZSBhbmltYXRlKCkvbGF5b3V0KCkvcGFpbnQoKS4KKyAgICB2aXJ0
dWFsIHZvaWQgaW5zdHJ1bWVudEJlZ2luRnJhbWUoKSB7IGluc3RydW1lbnRXaWxsQmVnaW5GcmFt
ZSgpOyB9CisKKyAgICAvLyBpbnN0cnVtZW50V2lsbEJlZ2luRnJhbWUgd2lsbCBiZSBmb2xsb3dl
ZCBieSBlaXRoZXIKKyAgICAvLyBpbnN0cnVtZW50RGlkQmVnaW5GcmFtZSBvciBpbnN0cnVtZW50
RGlkQ2FuY2VsRnJhbWUuCisgICAgdmlydHVhbCB2b2lkIGluc3RydW1lbnRXaWxsQmVnaW5GcmFt
ZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbnN0cnVtZW50RGlkQ2FuY2VsRnJhbWUoKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgaW5zdHJ1bWVudERpZEJlZ2luRnJhbWUoKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgaW5zdHJ1bWVudFdpbGxDb21wb3NpdGUoKSB7IH0KKwogcHJvdGVjdGVkOgogICAg
IH5XZWJXaWRnZXQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkhlbHBlclBsdWdpbkltcGwuY3BwCmluZGV4IGIyNDJmOGZmMTVmODlhYjI4NjU0MzllY2Ri
ODZlY2M2Mjk2YmM2OWQuLmY0MmFkODBkNjBlNWQxNjNmY2I4ZmIwYWNjNzE4NWQ5NjkyNjIwZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhlbHBlclBsdWdpbklt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhlbHBlclBsdWdpbklt
cGwuY3BwCkBAIC0yMTUsMTQgKzIxNSw2IEBAIHZvaWQgV2ViSGVscGVyUGx1Z2luSW1wbDo6ZGVz
dG9yeVBhZ2UoKQogICAgIG1fcGFnZS5jbGVhcigpOwogfQogCi12b2lkIFdlYkhlbHBlclBsdWdp
bkltcGw6OnNldENvbXBvc2l0b3JTdXJmYWNlUmVhZHkoKQotewotfQotCi12b2lkIFdlYkhlbHBl
clBsdWdpbkltcGw6OmNvbXBvc2l0ZShib29sKQotewotfQotCiB2b2lkIFdlYkhlbHBlclBsdWdp
bkltcGw6OmxheW91dCgpCiB7CiAgICAgUGFnZVdpZGdldERlbGVnYXRlOjpsYXlvdXQobV9wYWdl
LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhlbHBl
clBsdWdpbkltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhlbHBlclBsdWdp
bkltcGwuaAppbmRleCBjNmE3MjFjNzQwYjE2ZGExODg0ZDBjM2Y5OTcxODdiM2I5YzAyYTExLi41
ZTE2NTJiNTkyYWEwYzc4ZjQ0MzVkMThkY2RlNjdlYjgwYTRjNzJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSGVscGVyUGx1Z2luSW1wbC5oCkBAIC02Nyw4ICs2Nyw2
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXN0b3J5UGFnZSgpOwogCiAgICAgLy8gV2ViV2lkZ2V0
IG1ldGhvZHM6Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbXBvc2l0b3JTdXJmYWNlUmVhZHkoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9j
dXMoYm9vbCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgT1ZFUlJJREU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCmluZGV4
IGVjYmRhMzc5OGNhOGUwOWE0ZDdkY2RmMzQ1NzQ1YmEwOTc3NjE1N2UuLjVhNjdmNDFiOGZkNDAy
MDU5ZDYxZDE0YmYwNTg2Njg3YjQ3MWYwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCkBAIC0yNDYsMTQgKzI0Niw2IEBAIHZvaWQgV2Vi
UGFnZVBvcHVwSW1wbDo6YW5pbWF0ZShkb3VibGUpCiAgICAgUGFnZVdpZGdldERlbGVnYXRlOjph
bmltYXRlKG1fcGFnZS5nZXQoKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogfQog
Ci12b2lkIFdlYlBhZ2VQb3B1cEltcGw6OnNldENvbXBvc2l0b3JTdXJmYWNlUmVhZHkoKQotewot
fQotCi12b2lkIFdlYlBhZ2VQb3B1cEltcGw6OmNvbXBvc2l0ZShib29sKQotewotfQotCiB2b2lk
IFdlYlBhZ2VQb3B1cEltcGw6OmxheW91dCgpCiB7CiAgICAgUGFnZVdpZGdldERlbGVnYXRlOjps
YXlvdXQobV9wYWdlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlBhZ2VQb3B1cEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBh
Z2VQb3B1cEltcGwuaAppbmRleCBmYjk3YzdkMDFlNTNmYWZjYzZhZjZjZDQ2NWM5NTc3ZjFiMjVh
ZDM4Li44Yzg3NjcyM2EwZmExMmMxOTc5ZDE2Y2VlMWQxMDA2YjFkOGIwMDFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5oCkBAIC02OSw4ICs2OSw2
IEBAIHByaXZhdGU6CiAgICAgLy8gV2ViV2lkZ2V0IGZ1bmN0aW9ucwogICAgIHZpcnR1YWwgV2Vi
U2l6ZSBzaXplKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoZG91YmxlKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcG9zaXRvclN1cmZhY2VSZWFkeSgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChX
ZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0JiwgUGFpbnRPcHRpb25zID0gUmVhZGJhY2tGcm9tQ29t
cG9zaXRvcklmQXZhaWxhYmxlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzaXplKGNv
bnN0IFdlYlNpemUmKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViUG9wdXBNZW51SW1wbC5jcHAKaW5kZXggMTA4MjA0ZjAyMjU4NTVmZTEyNGE5NzQ5NTc5ZmYz
NjBhN2M3MGM3ZS4uNTFhYjIyNTQ5YTFiNjQ0ODViMjIyNjNlNTg2NGM5ZTVlMmM3NDE5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKQEAg
LTIxMSwxNiArMjExLDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjp0aGVtZUNoYW5nZWQoKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViUG9wdXBNZW51SW1wbDo6c2V0Q29t
cG9zaXRvclN1cmZhY2VSZWFkeSgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9p
ZCBXZWJQb3B1cE1lbnVJbXBsOjpjb21wb3NpdGUoYm9vbCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotfQotCiBib29sIFdlYlBvcHVwTWVudUltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3Qg
V2ViSW5wdXRFdmVudCYgaW5wdXRFdmVudCkKIHsKICAgICBpZiAoIW1fd2lkZ2V0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5oCmluZGV4IGM5ZjA4YzRi
MjNiZDAzOTgzYThkZjBjMzU4ZTkxNjBlOTI4YjkyMDguLjU5MjA4NTU5NGYzOGYxNWI2NmQ2Y2E0
OTgzZDIwMGEyNDlhMGMwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlBvcHVwTWVudUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
b3B1cE1lbnVJbXBsLmgKQEAgLTc1LDggKzc1LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBsYXlvdXQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiwg
Y29uc3QgV2ViUmVjdCYsIFBhaW50T3B0aW9ucyA9IFJlYWRiYWNrRnJvbUNvbXBvc2l0b3JJZkF2
YWlsYWJsZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHRoZW1lQ2hhbmdlZCgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wb3NpdG9yU3VyZmFjZVJlYWR5KCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0ZShib29sIGZpbmlzaCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtb3VzZUNhcHR1cmVMb3N0KCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wgZW5hYmxlKSBPVkVSUklERTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAyZDg4NTE2MGE2ZDgyMTE1
Nzc2MjE2Mzk5NzAwNzg5Y2Y0ZThlMjI0Li5lMWY2ZDk3MjhjNTU1ZGE0Nzk2MjAyMGNjYTFmOTQ0
YTFhMzVmYjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CkBAIC0xNzY0LDU3ICsxNzY0LDM5IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpZEV4aXRGdWxsU2Ny
ZWVuKCkKICNlbmRpZgogfQogCi12b2lkIFdlYlZpZXdJbXBsOjppbnN0cnVtZW50QmVnaW5GcmFt
ZSgpCit2b2lkIFdlYlZpZXdJbXBsOjppbnN0cnVtZW50V2lsbEJlZ2luRnJhbWUoKQogewogICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQmVnaW5GcmFtZShtX3BhZ2UuZ2V0KCkpOwog
fQogCi12b2lkIFdlYlZpZXdJbXBsOjppbnN0cnVtZW50Q2FuY2VsRnJhbWUoKQordm9pZCBXZWJW
aWV3SW1wbDo6aW5zdHJ1bWVudERpZEJlZ2luRnJhbWUoKQogewotICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ2FuY2VsRnJhbWUobV9wYWdlLmdldCgpKTsKLX0KKyAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENvbXBvc2l0ZShtX3BhZ2UuZ2V0KCkpOwogCi0jaWYgRU5B
QkxFKEJBVFRFUllfU1RBVFVTKQotdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlQmF0dGVyeVN0YXR1
cyhjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzJiBzdGF0dXMpCi17Ci0gICAgbV9iYXR0ZXJ5Q2xpZW50
LT51cGRhdGVCYXR0ZXJ5U3RhdHVzKHN0YXR1cyk7CisgICAgaWYgKG1fY29udGludW91c1BhaW50
aW5nRW5hYmxlZCkKKyAgICAgICAgQ29udGludW91c1BhaW50ZXI6OnNldE5lZWRzRGlzcGxheVJl
Y3Vyc2l2ZShtX3Jvb3RHcmFwaGljc0xheWVyLCBtX3BhZ2VPdmVybGF5cy5nZXQoKSk7CiB9Ci0j
ZW5kaWYKIAotdm9pZCBXZWJWaWV3SW1wbDo6YW5pbWF0ZShkb3VibGUpCit2b2lkIFdlYlZpZXdJ
bXBsOjppbnN0cnVtZW50RGlkQ2FuY2VsRnJhbWUoKQogewotI2lmIEVOQUJMRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSkKLSAgICBkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUgPSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLSAgICAvLyBJbiBjb21wb3NpdGVkIG1vZGUsIHdlIGFsd2F5cyBnbyB0aHJvdWdoIHRo
ZSBjb21wb3NpdG9yIHNvIGl0IGNhbiBhcHBseQotICAgIC8vIGFwcHJvcHJpYXRlIGZsb3ctY29u
dHJvbCBtZWNoYW5pc21zLgotICAgIGlmIChpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUo
KSkKLSAgICAgICAgbV9sYXllclRyZWVWaWV3LT51cGRhdGVBbmltYXRpb25zKG1vbm90b25pY0Zy
YW1lQmVnaW5UaW1lKTsKLSAgICBlbHNlCi0jZW5kaWYKLSAgICAgICAgdXBkYXRlQW5pbWF0aW9u
cyhtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7Ci0jZW5kaWYKKyAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENhbmNlbEZyYW1lKG1fcGFnZS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViVmll
d0ltcGw6OndpbGxCZWdpbkZyYW1lKCkKK3ZvaWQgV2ViVmlld0ltcGw6Omluc3RydW1lbnRXaWxs
Q29tcG9zaXRlKCkKIHsKLSAgICBpbnN0cnVtZW50QmVnaW5GcmFtZSgpOwotICAgIG1fY2xpZW50
LT53aWxsQmVnaW5Db21wb3NpdG9yRnJhbWUoKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxDb21wb3NpdGUobV9wYWdlLmdldCgpKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6
ZGlkQmVnaW5GcmFtZSgpCisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQordm9pZCBXZWJWaWV3
SW1wbDo6dXBkYXRlQmF0dGVyeVN0YXR1cyhjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzJiBzdGF0dXMp
CiB7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21wb3NpdGUobV9wYWdlLmdl
dCgpKTsKLQotICAgIGlmIChtX2NvbnRpbnVvdXNQYWludGluZ0VuYWJsZWQpCi0gICAgICAgIENv
bnRpbnVvdXNQYWludGVyOjpzZXROZWVkc0Rpc3BsYXlSZWN1cnNpdmUobV9yb290R3JhcGhpY3NM
YXllciwgbV9wYWdlT3ZlcmxheXMuZ2V0KCkpOworICAgIG1fYmF0dGVyeUNsaWVudC0+dXBkYXRl
QmF0dGVyeVN0YXR1cyhzdGF0dXMpOwogfQorI2VuZGlmCiAKLXZvaWQgV2ViVmlld0ltcGw6OnVw
ZGF0ZUFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKQordm9pZCBXZWJW
aWV3SW1wbDo6YW5pbWF0ZShkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpCiB7Ci0jaWYg
RU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQotICAgIFRSQUNFX0VWRU5UMCgid2Via2l0
IiwgIldlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zIik7CisgICAgVFJBQ0VfRVZFTlQwKCJ3
ZWJraXQiLCAiV2ViVmlld0ltcGw6OmFuaW1hdGUiKTsKIAogICAgIC8vIENyZWF0ZSBzeW50aGV0
aWMgd2hlZWwgZXZlbnRzIGFzIG5lY2Vzc2FyeSBmb3IgZmxpbmcuCiAgICAgaWYgKG1fZ2VzdHVy
ZUFuaW1hdGlvbikgewpAQCAtMTgzMSw3ICsxODEzLDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBk
YXRlQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6YW5pbWF0ZShtX3BhZ2UuZ2V0KCksIG1v
bm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjps
YXlvdXQoKQpAQCAtNDE2NCwxMSArNDE0NSw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldElzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKIAogI2VuZGlmCiAKLVdlYkNv
bXBvc2l0b3JPdXRwdXRTdXJmYWNlKiBXZWJWaWV3SW1wbDo6Y3JlYXRlT3V0cHV0U3VyZmFjZSgp
Ci17Ci0gICAgcmV0dXJuIG1fY2xpZW50LT5jcmVhdGVPdXRwdXRTdXJmYWNlKCk7Ci19Ci0KIFdl
YklucHV0SGFuZGxlciogV2ViVmlld0ltcGw6OmNyZWF0ZUlucHV0SGFuZGxlcigpCiB7CiAgICAg
V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwqIGhhbmRsZXIgPSBuZXcgV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwoKTsKQEAgLTQyMDUsNDcgKzQxODEsMTUgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiBzY3JvbGxEZWx0YSwgZmxv
YXQgcGFnZVNjYWwKICAgICB9CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OndpbGxDb21taXQoKQot
ewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENvbXBvc2l0ZShtX3BhZ2UuZ2V0
KCkpOwotfQotCi12b2lkIFdlYlZpZXdJbXBsOjpkaWRDb21taXQoKQotewotICAgIGlmIChtX2Ns
aWVudCkgewotICAgICAgICBtX2NsaWVudC0+ZGlkQ29tbWl0Q29tcG9zaXRvckZyYW1lKCk7Ci0g
ICAgICAgIG1fY2xpZW50LT5kaWRCZWNvbWVSZWFkeUZvckFkZGl0aW9uYWxJbnB1dCgpOwotICAg
IH0KLX0KLQotdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCkKK3ZvaWQg
V2ViVmlld0ltcGw6OmRpZEV4aXRDb21wb3NpdGluZ01vZGUoKQogewotICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgbV9jbGllbnQtPmRpZENvbW1pdEFuZERyYXdDb21wb3NpdG9yRnJhbWUoKTsK
LX0KLQotdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ29tcGxldGVTd2FwQnVmZmVycygpCi17Ci0gICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcGxldGVTd2FwQnVmZmVycygp
OwotfQotCi12b2lkIFdlYlZpZXdJbXBsOjpkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UoYm9vbCBz
dWNjZXNzKQotewotICAgIC8vIFN3aXRjaCBiYWNrIHRvIHNvZnR3YXJlIHJlbmRlcmluZyBtb2Rl
LCBpZiBuZWNlc3NhcnkKLSAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgQVNTRVJUKG1faXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKTsKLSAgICAgICAgc2V0SXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nQWN0aXZlKGZhbHNlKTsKLSAgICAgICAgbV9jb21wb3NpdG9yQ3JlYXRpb25GYWls
ZWQgPSB0cnVlOwotICAgICAgICBtX2NsaWVudC0+ZGlkSW52YWxpZGF0ZVJlY3QoSW50UmVjdCgw
LCAwLCBtX3NpemUud2lkdGgsIG1fc2l6ZS5oZWlnaHQpKTsKLQotICAgICAgICAvLyBGb3JjZSBh
IHN0eWxlIHJlY2FsYyB0byByZW1vdmUgYWxsIHRoZSBjb21wb3NpdGVkIGxheWVycy4KLSAgICAg
ICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2NoZWR1bGVGb3JjZWRTdHlsZVJl
Y2FsYygpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIEFTU0VSVChtX2lzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0FjdGl2ZSk7CisgICAgc2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0
aXZlKGZhbHNlKTsKKyAgICBtX2NvbXBvc2l0b3JDcmVhdGlvbkZhaWxlZCA9IHRydWU7CisgICAg
bV9jbGllbnQtPmRpZEludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgbV9zaXplLndpZHRoLCBt
X3NpemUuaGVpZ2h0KSk7CiAKLSAgICBpZiAobV9wYWdlT3ZlcmxheXMpCi0gICAgICAgIG1fcGFn
ZU92ZXJsYXlzLT51cGRhdGUoKTsKKyAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2FsYyB0byByZW1v
dmUgYWxsIHRoZSBjb21wb3NpdGVkIGxheWVycy4KKyAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5k
b2N1bWVudCgpLT5zY2hlZHVsZUZvcmNlZFN0eWxlUmVjYWxjKCk7CiB9CiAKIHZvaWQgV2ViVmll
d0ltcGw6OnNjaGVkdWxlQ29tcG9zaXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oCmluZGV4IDQ1MWU2YzU0NTg2ODU5OTAxYTJhMmQwNTRiNGE2OGVkMjVmZGZjODUu
LjY5YWYxMTFlM2VmZDA3Y2IyNzBmZWQzM2E1MTBmZWM4Y2ExNzIzMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTUzLDYgKzE1Myw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXcoKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFu
ZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7CiAgICAgdmlydHVhbCBib29sIGhh
c1RvdWNoRXZlbnRIYW5kbGVyc0F0KGNvbnN0IFdlYlBvaW50Jik7CisgICAgdmlydHVhbCBXZWJJ
bnB1dEhhbmRsZXIqIGNyZWF0ZUlucHV0SGFuZGxlcigpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYlNpemUmLCBmbG9hdCk7CiAgICAgdmly
dHVhbCB2b2lkIG1vdXNlQ2FwdHVyZUxvc3QoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMo
Ym9vbCBlbmFibGUpOwogICAgIHZpcnR1YWwgYm9vbCBzZXRDb21wb3NpdGlvbigKQEAgLTE4MSw4
ICsxODMsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBY3F1aXJlUG9pbnRl
ckxvY2soKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKCk7CiAgICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZVdpbmRvd1Jlc2l6ZXJSZWN0KCk7Ci0gICAgdmlydHVhbCB2b2lk
IGluc3RydW1lbnRCZWdpbkZyYW1lKCk7Ci0gICAgdmlydHVhbCB2b2lkIGluc3RydW1lbnRDYW5j
ZWxGcmFtZSgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0Q29tcG9zaXRpbmdNb2RlKCk7Cisg
ICAgdmlydHVhbCB2b2lkIGluc3RydW1lbnRXaWxsQmVnaW5GcmFtZSgpOworICAgIHZpcnR1YWwg
dm9pZCBpbnN0cnVtZW50RGlkQ2FuY2VsRnJhbWUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5zdHJ1
bWVudERpZEJlZ2luRnJhbWUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5zdHJ1bWVudFdpbGxDb21w
b3NpdGUoKTsKIAogICAgIC8vIFdlYlZpZXcgbWV0aG9kczoKICAgICB2aXJ0dWFsIHZvaWQgaW5p
dGlhbGl6ZU1haW5GcmFtZShXZWJGcmFtZUNsaWVudCopOwpAQCAtMzE1LDE3ICszMjAsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRpbnVvdXNQYWludGluZ0VuYWJsZWQoYm9v
bCk7CiAKICAgICAvLyBXZWJMYXllclRyZWVWaWV3Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIHdp
bGxCZWdpbkZyYW1lKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRnJhbWUoKTsKLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRp
bWUpOwotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYlNpemUm
LCBmbG9hdCk7Ci0gICAgdmlydHVhbCBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSogY3JlYXRl
T3V0cHV0U3VyZmFjZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZU91
dHB1dFN1cmZhY2UoYm9vbCBzdWNjZXNzKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYklucHV0
SGFuZGxlciogY3JlYXRlSW5wdXRIYW5kbGVyKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHdpbGxDb21taXQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0KCk7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDb21w
bGV0ZVN3YXBCdWZmZXJzKCk7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRlKCk7
CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUZvbnRBdGxhcyhTa0JpdG1hcCYsIFdlYlJlY3RbMTI4
XSwgaW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2Vi
TGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
V2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaAppbmRleCA0NDY2M2ExYjQ1MDUyOTQ5Y2U0NmYy
YmJiNzQ5MDM3MWU3ZjA2MmUzLi5iNDk1Y2Q1MTIwZjMwNzhhYzc3MTNmZTA2MDJmNTkzMzViYTNm
ZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVHJl
ZVZpZXdUZXN0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJM
YXllclRyZWVWaWV3VGVzdENvbW1vbi5oCkBAIC0zNiwyMiArMzYsOSBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIGNsYXNzIE1vY2tXZWJMYXllclRyZWVWaWV3Q2xpZW50IDogcHVibGljIFdlYkxheWVy
VHJlZVZpZXdDbGllbnQgewogcHVibGljOgogICAgIE1PQ0tfTUVUSE9EMChzY2hlZHVsZUNvbXBv
c2l0ZSwgdm9pZCgpKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUg
ZnJhbWVCZWdpblRpbWUpIE9WRVJSSURFIHsgfQogICAgIE1PQ0tfTUVUSE9EMCh3aWxsQmVnaW5G
cmFtZSwgdm9pZCgpKTsKICAgICBNT0NLX01FVEhPRDAoZGlkQmVnaW5GcmFtZSwgdm9pZCgpKTsK
ICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNj
YWxlRmFjdG9yKSBPVkVSUklERSB7IH0KLQotICAgIHZpcnR1YWwgV2ViQ29tcG9zaXRvck91dHB1
dFN1cmZhY2UqIGNyZWF0ZU91dHB1dFN1cmZhY2UoKSBPVkVSUklERQotICAgIHsKLSAgICAgICAg
cmV0dXJuIFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZU91
dHB1dFN1cmZhY2VGb3IzRChDb21wb3NpdG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpjcmVh
dGUoV2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMoKSkubGVha1B0cigpKTsKLSAgICB9
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY3JlYXRlT3V0cHV0U3VyZmFjZShib29sKSBPVkVSUklE
RSB7IH0KLQotICAgIE1PQ0tfTUVUSE9EMCh3aWxsQ29tbWl0LCB2b2lkKCkpOwotICAgIE1PQ0tf
TUVUSE9EMChkaWRDb21taXQsIHZvaWQoKSk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFu
ZERyYXdGcmFtZSgpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3
YXBCdWZmZXJzKCkgT1ZFUlJJREUgeyB9CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189620</attachid>
            <date>2013-02-21 15:39:41 -0800</date>
            <delta_ts>2013-02-28 17:11:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109125-20130221153601.patch</filename>
            <type>text/plain</type>
            <size>27584</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3MTVjNTRiZTc2MDJi
MWRhYzQzMTU3MTQzYzIyZmI2NjNhYjQ0ZjQ1Li42MjMwYjlhNjUzYjM2Nzg5Mzk3ZjM0NDgyNGYy
MmJkMzY2OTg2ZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0wNiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gQ2xlYW4gdXAgV2ViV2lkZ2V0IC8gV2ViTGF5ZXJUcmVlVmlldyBpbnRlcmFjdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTEyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZGVwcmVj
YXRlcyBtb3N0IG9mIHRoZSBjYWxscyBvbiBXZWJMYXllclRyZWVWaWV3Q2xpZW50IHNpbmNlIHRo
ZXNlIGludGVyYWN0aW9ucyBhcmUgaGFuZGxlZAorICAgICAgICBlbnRpcmVseSBvbiB0aGUgZW1i
ZWRkZXIgc2lkZSBvZiB0aGUgaW50ZXJmYWNlIG5vdy4KKworICAgICAgICAqIGNocm9taXVtL3B1
YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg6CisgICAgICAgIChXZWJMYXllclRyZWVWaWV3KToKKyAg
ICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oOgorICAgICAg
ICAoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJl
ZVZpZXdDbGllbnQ6OndpbGxCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJU
cmVlVmlld0NsaWVudDo6ZGlkQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVy
VHJlZVZpZXdDbGllbnQ6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMYXllclRyZWVWaWV3Q2xpZW50OjpsYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXll
clRyZWVWaWV3Q2xpZW50OjpkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50OjpjcmVhdGVJbnB1dEhhbmRsZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50OjpjcmVhdGVPdXRwdXRTdXJmYWNlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0NsaWVudDo6d2lsbENvbW1pdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbW1pdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbW1pdEFuZERyYXdGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbXBsZXRl
U3dhcEJ1ZmZlcnMpOgorCiAyMDEzLTAyLTE0ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZXF1ZXN0IFdlYkxheWVyVHJlZVZpZXcg
Zm9yIER1bXBSZW5kZXJUcmVlIHZpYSBleHBsaWNpdCB0ZXN0aW5nIHBhdGgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggY2ExYWQ5NzUyYmQ4OTZmNWIwMWRhMjFlOGMyMjA0MjhjYTJjMjA0
Ny4uMmZjYTEyNDczODk2MGZmNWQ3ZGYwYjRlNTFmOGQ2N2FhZTM2OWNiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMy0wMi0wNiAgSmFtZXMgUm9iaW5z
b24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQ2xlYW4gdXAg
V2ViV2lkZ2V0IC8gV2ViTGF5ZXJUcmVlVmlldyBpbnRlcmFjdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTEyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcmVtb3ZlcyBtb3N0IG9mIHRo
ZSBjb21wb3NpdGluZyBjb250cm9sIGZsb3cgbG9naWMgZnJvbSBXZWJWaWV3SW1wbCBzaW5jZQor
ICAgICAgICBpdCBpcyBub3cgaGFuZGxlZCBpbiB0aGUgZW1iZWRkaW5nIGxheWVyIChieSB0aGUg
aW1wbGVtZW50YXRpb24gb2YgV2ViVmlld0NsaWVudC9XZWJXaWRnZXRDbGllbnQpLgorCisgICAg
ICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0
Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6OmFuaW1h
dGUpOgorICAgICAgICAoV2ViV2lkZ2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Ojpk
aWRFeGl0Q29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0OjpjcmVh
dGVJbnB1dEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6OmFwcGx5U2Nyb2xs
QW5kU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6Omluc3RydW1lbnRCZWdpbkZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0OjppbnN0cnVtZW50V2lsbEJlZ2luRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6Omluc3RydW1lbnREaWRDYW5jZWxGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aW5zdHJ1bWVudERpZEJlZ2luRnJhbWUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6Omluc3RydW1lbnRXaWxsQ29tcG9zaXRlKToK
KyAgICAgICAgKiBzcmMvV2ViSGVscGVyUGx1Z2luSW1wbC5jcHA6CisgICAgICAgICogc3JjL1dl
YkhlbHBlclBsdWdpbkltcGwuaDoKKyAgICAgICAgKFdlYkhlbHBlclBsdWdpbkltcGwpOgorICAg
ICAgICAqIHNyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViUGFnZVBv
cHVwSW1wbC5oOgorICAgICAgICAoV2ViUGFnZVBvcHVwSW1wbCk6CisgICAgICAgICogc3JjL1dl
YlBvcHVwTWVudUltcGwuY3BwOgorICAgICAgICAqIHNyYy9XZWJQb3B1cE1lbnVJbXBsLmg6Cisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6Omluc3RydW1lbnRXaWxsQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjppbnN0cnVtZW50RGlkQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjppbnN0cnVtZW50RGlkQ2FuY2VsRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6aW5zdHJ1bWVudFdpbGxDb21wb3NpdGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUJhdHRlcnlTdGF0dXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6YW5pbWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpkaWRFeGl0Q29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
aDoKKyAgICAgICAgKiB0ZXN0cy9XZWJMYXllclRyZWVWaWV3VGVzdENvbW1vbi5oOgorICAgICAg
ICAoTW9ja1dlYkxheWVyVHJlZVZpZXdDbGllbnQpOgorCiAyMDEzLTAyLTIxICBWc2V2b2xvZCBW
bGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEdl
dCByaWQgb2YgcGFyc2VkVVJMIGluIHVpU291cmNlQ29kZSwgdXNlIG5hbWUgYW5kIHBhdGggZm9y
IGRpc3BsYXlOYW1lIGluc3RlYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCmluZGV4IDAzODk2MDQ1ZDZjMDkyZjUwMzQ2MDMxZmYx
MDJjNTViODA0YmU5N2QuLjI5MTU4MjAwMTFhZDM2MWNmYWFlMzllMWMxZWE4ZGJjODU1MjBkM2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVl
Vmlldy5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVl
Vmlldy5oCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVibGljOgogCiAgICAgLy8gRmxvdyBjb250cm9s
IGFuZCBzY2hlZHVsaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
Ci0gICAgLy8gUmVxdWVzdHMgYW4gdXBkYXRlQW5pbWF0aW9ucygpIGNhbGwuCisgICAgLy8gSW5k
aWNhdGVzIHRoYXQgYW4gYW5pbWF0aW9uIG5lZWRzIHRvIGJlIHVwZGF0ZWQuCiAgICAgdmlydHVh
bCB2b2lkIHNldE5lZWRzQW5pbWF0ZSgpID0gMDsKIAogICAgIC8vIEluZGljYXRlcyB0aGF0IHRo
ZSB2aWV3IG5lZWRzIHRvIGJlIHJlZHJhd24uIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQgd2hlbiB0
aGUgZnJvbnRidWZmZXIgaXMgZGFtYWdlZC4KQEAgLTE0MCwyMCArMTQwLDYgQEAgcHVibGljOgog
ICAgIC8vIEluZGljYXRlcyB3aGV0aGVyIGEgY29tbWl0IGlzIHBlbmRpbmcuCiAgICAgdmlydHVh
bCBib29sIGNvbW1pdFJlcXVlc3RlZCgpIGNvbnN0ID0gMDsKIAotICAgIC8vIFRyaWdnZXJzIGEg
Y29tcG9zaXRpbmcgcGFzcy4gSWYgdGhlIGNvbXBvc2l0b3IgdGhyZWFkIHdhcyBub3QKLSAgICAv
LyBlbmFibGVkIHZpYSBXZWJDb21wb3NpdG9yU3VwcG9ydDo6aW5pdGlhbGl6ZSwgdGhlIGNvbXBv
c2l0aW5nIHBhc3MgaGFwcGVucwotICAgIC8vIGltbWVkaWF0ZWx5LiBJZiBpdCBpcyBlbmFibGVk
LCB0aGUgY29tcG9zaXRpbmcgcGFzcyB3aWxsIGhhcHBlbiBhdCBhCi0gICAgLy8gbGF0ZXIgdGlt
ZS4gQmVmb3JlIHRoZSBjb21wb3NpdGluZyBwYXNzIGhhcHBlbnMgKGkuZS4gYmVmb3JlIGNvbXBv
c2l0ZSgpCi0gICAgLy8gcmV0dXJucyB3aGVuIHRoZSBjb21wb3NpdG9yIHRocmVhZCBpcyBkaXNh
YmxlZCksIFdlYkNvbnRlbnRMYXllcnMgd2lsbCBiZQotICAgIC8vIGFza2VkIHRvIHBhaW50IHRo
ZWlyIGRpcnR5IHJlZ2lvbiwgdGhyb3VnaAotICAgIC8vIFdlYkNvbnRlbnRMYXllckNsaWVudDo6
cGFpbnRDb250ZW50cy4KLSAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKCkgPSAwOwotCi0gICAg
Ly8gSW1tZWRpYXRlbHkgdXBkYXRlIGFuaW1hdGlvbnMuIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNl
ZCB3aGVuIGZyYW1lIHNjaGVkdWxpbmcgaXMgaGFuZGxlZCBieQotICAgIC8vIHRoZSBXZWJMYXll
clRyZWVWaWV3IHVzZXIgYW5kIG5vdCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21wb3NpdG9yLCBtZWFu
aW5nIG9ubHkgaW4gc2luZ2xlLXRocmVhZGVkCi0gICAgLy8gbW9kZS4KLSAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVCZWdpblRpbWUpID0gMDsKLQogICAgIC8v
IFJlbGF5cyB0aGUgZW5kIG9mIGEgZmxpbmcgYW5pbWF0aW9uLgogICAgIHZpcnR1YWwgdm9pZCBk
aWRTdG9wRmxpbmdpbmcoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAppbmRleCA5NGM1ODAyYmRjOGM0
NTQ5NDI0ZmNkYzFmZWQ2ZTQwZTQ3MjE4ZjE3Li4yNzgyNjIwMGU1NjUwZmEyYTcyOGQ4M2QxYjll
Yzg3ZDMwMmY0M2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaApAQCAtMzcsNjEgKzM3LDI1IEBAIHN0cnVj
dCBXZWJTaXplOwogCiBjbGFzcyBXZWJMYXllclRyZWVWaWV3Q2xpZW50IHsKIHB1YmxpYzoKLSAg
ICAvLyBJbmRpY2F0ZXMgdG8gdGhlIGVtYmVkZGVyIHRoYXQgdGhlIGNvbXBvc2l0b3IgaXMgYWJv
dXQgdG8gYmVnaW4gYQotICAgIC8vIGZyYW1lLiBUaGlzIGlzIGlzIGEgc2lnbmFsIHRvIGZsb3cg
Y29udHJvbCBtZWNoYW5pc21zIHRoYXQgYSBmcmFtZSBpcwotICAgIC8vIGJlZ2lubmluZy4gVGhp
cyBjYWxsIHdpbGwgYmUgZm9sbG93ZWQgYnkgdXBkYXRlQW5pbWF0aW9ucyBhbmQgdGhlbgotICAg
IC8vIGxheW91dCwgd2hpY2ggc2hvdWxkIGJlIHVzZWQgZm9yIGFjdHVhbCBhbmltYXRpb24gb3Ig
dHJlZSBtYW5pcHVsYXRpb24KLSAgICAvLyB0YXNrcy4gIEZJWE1FOiBtYWtlIHB1cmUgdmlydHVh
bCBvbmNlIHVwc3RyZWFtIGRlcHMgYXJlIHNhdGlzZmllZC4KLSAgICB2aXJ0dWFsIHZvaWQgd2ls
bEJlZ2luRnJhbWUoKSB7IH0KKyAgICAvLyBTY2hlZHVsZXMgYSBjb21wb3NpdGluZyBwYXNzLCBt
ZWFuaW5nIHRoZSBjbGllbnQgc2hvdWxkIGNhbGwKKyAgICAvLyBXZWJMYXllclRyZWVWaWV3Ojpj
b21wb3NpdGUgYXQgYSBsYXRlciB0aW1lLiBUaGlzIGlzIG9ubHkgY2FsbGVkIGlmIHRoZQorICAg
IC8vIGNvbXBvc2l0b3IgdGhyZWFkIGlzIGRpc2FibGVkOyB3aGVuIGVuYWJsZWQsIHRoZSBjb21w
b3NpdG9yIHdpbGwKKyAgICAvLyBpbnRlcm5hbGx5IHNjaGVkdWxlIGEgY29tcG9zaXRpbmcgcGFz
cyB3aGVuIG5lZWRlZC4KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGUoKSA9IDA7
CiAKLSAgICAvLyBJbmRpY2F0ZXMgdGhhdCBtYWluIHRocmVhZCB0YXNrcyBhc3NvY2lhdGVkIHdp
dGggZnJhbWUgcmVuZGVyaW5nIGhhdmUgY29tcGxldGVkLgotICAgIC8vIElzc3VlZCB1bmNvbmRp
dGlvbmFsbHksIGV2ZW4gaWYgdGhlIGNvbnRleHQgd2FzIGxvc3QgaW4gdGhlIHByb2Nlc3MuCisg
ICAgLy8gREVQUkVDQVRFRCAtIFdJTEwgQkUgUkVNT1ZFRCBTT09OCisgICAgdmlydHVhbCB2b2lk
IHdpbGxCZWdpbkZyYW1lKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRnJhbWUoKSB7
IH0KLQotICAgIC8vIFVwZGF0ZXMgYW5pbWF0aW9uIGFuZCBsYXlvdXQuIFRoZXNlIGFyZSBjYWxs
ZWQgYmVmb3JlIHRoZSBjb21wb3NpdGluZwotICAgIC8vIHBhc3Mgc28gdGhhdCBsYXllcnMgY2Fu
IGJlIHVwZGF0ZWQgYXQgdGhlIGdpdmVuIGZyYW1lIHRpbWUuCi0gICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGxheW91dCgpID0gMDsKLQotICAgIC8vIEFwcGxpZXMgYSBzY3JvbGwgZGVs
dGEgdG8gdGhlIHJvb3QgbGF5ZXIsIHdoaWNoIGlzIGJ1bmRsZWQgd2l0aCBhIHBhZ2UKLSAgICAv
LyBzY2FsZSBmYWN0b3IgdGhhdCBtYXkgYXBwbHkgYSBDU1MgdHJhbnNmb3JtIG9uIHRoZSB3aG9s
ZSBkb2N1bWVudCAodXNlZAotICAgIC8vIGZvciBtb2JpbGUtZGV2aWNlIHBpbmNoIHpvb21pbmcp
LiBUaGlzIGlzIHRyaWdnZXJlZCBieSBldmVudHMgc2VudCB0byB0aGUKLSAgICAvLyBjb21wb3Np
dG9yIHRocmVhZCB0aHJvdWdoIHRoZSBXZWJDb21wb3NpdG9yIGludGVyZmFjZS4KLSAgICB2aXJ0
dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiBzY3JvbGxEZWx0YSwg
ZmxvYXQgc2NhbGVGYWN0b3IpID0gMDsKLQotICAgIC8vIENyZWF0ZXMgdGhlIG91dHB1dCBzdXJm
YWNlLiBUaGlzIG1heSBiZSBjYWxsZWQgbW9yZSB0aGFuIG9uY2UKLSAgICAvLyBpZiB0aGUgY29u
dGV4dCBnZXRzIGxvc3QuCi0gICAgdmlydHVhbCBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSog
Y3JlYXRlT3V0cHV0U3VyZmFjZSgpIHsgcmV0dXJuIDA7IH0KLQotICAgIC8vIFNpZ25hbHMgYSBz
dWNjZXNzZnVsIHJlY3JlYXRpb24gb2YgdGhlIG91dHB1dCBzdXJmYWNlIChlLmcuIGFmdGVyIGEg
bG9zdAotICAgIC8vIDNEIGNvbnRleHQgZXZlbnQpLgorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNj
cm9sbEFuZFNjYWxlKGNvbnN0IFdlYlNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZUZhY3Rv
cikgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVn
aW5UaW1lKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY3JlYXRlT3V0cHV0U3VyZmFjZShib29sIHN1Y2Nlc3MpIHsgfQotCiAgICAgdmly
dHVhbCBXZWJJbnB1dEhhbmRsZXIqIGNyZWF0ZUlucHV0SGFuZGxlcigpIHsgcmV0dXJuIDA7IH0K
LQotICAgIC8vIEluZGljYXRlcyB0aGF0IGEgZnJhbWUgd2lsbCBiZSBjb21taXR0ZWQgdG8gdGhl
IGltcGwgc2lkZSBvZiB0aGUgY29tcG9zaXRvcgotICAgIC8vIGZvciByZW5kZXJpbmcuCisgICAg
dmlydHVhbCBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSogY3JlYXRlT3V0cHV0U3VyZmFjZSgp
IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbENvbW1pdCgpIHsgfQotCi0gICAg
Ly8gSW5kaWNhdGVzIHRoYXQgYSBmcmFtZSB3YXMgY29tbWl0dGVkIHRvIHRoZSBpbXBsIHNpZGUg
b2YgdGhlIGNvbXBvc2l0b3IKLSAgICAvLyBmb3IgcmVuZGVyaW5nLgotICAgIC8vCi0gICAgLy8g
RklYTUU6IG1ha2UgdGhpcyBub24tdmlydHVhbCB3aGVuIHVpL2NvbXBvc2l0b3IgREVQIGlzIHJl
c29sdmVkLgogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXQoKSB7IH0KLQotICAgIC8vIEluZGlj
YXRlcyB0aGF0IGEgZnJhbWUgd2FzIGNvbW1pdHRlZCB0byB0aGUgaW1wbCBzaWRlIGFuZCBkcmF3
aW5nCi0gICAgLy8gY29tbWFuZHMgZm9yIGl0IHdlcmUgaXNzdWVkIHRvIHRoZSBHUFUuCi0gICAg
dmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZSgpID0gMDsKLQotICAgIC8vIEluZGlj
YXRlcyB0aGF0IGEgZnJhbWUgcHJldmlvdXNseSBpc3N1ZWQgdG8gdGhlIEdQVSBoYXMgY29tcGxl
dGVkCi0gICAgLy8gcmVuZGVyaW5nLgotICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBC
dWZmZXJzKCkgPSAwOwotCi0gICAgLy8gU2NoZWR1bGVzIGEgY29tcG9zaXRpbmcgcGFzcywgbWVh
bmluZyB0aGUgY2xpZW50IHNob3VsZCBjYWxsCi0gICAgLy8gV2ViTGF5ZXJUcmVlVmlldzo6Y29t
cG9zaXRlIGF0IGEgbGF0ZXIgdGltZS4gVGhpcyBpcyBvbmx5IGNhbGxlZCBpZiB0aGUKLSAgICAv
LyBjb21wb3NpdG9yIHRocmVhZCBpcyBkaXNhYmxlZDsgd2hlbiBlbmFibGVkLCB0aGUgY29tcG9z
aXRvciB3aWxsCi0gICAgLy8gaW50ZXJuYWxseSBzY2hlZHVsZSBhIGNvbXBvc2l0aW5nIHBhc3Mg
d2hlbiBuZWVkZWQuCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRlKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkQ29tcGxldGVTd2FwQnVmZmVycygpIHsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgdmly
dHVhbCB+V2ViTGF5ZXJUcmVlVmlld0NsaWVudCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDM4YzY2ZGZlODlmOTNmYTg4ZTE4ZDUw
NjgwODQ1NjE2NmMwMjY3MzMuLmU0NDZlMmE2OTNmOTFhMTcxYzVlMmM5M2YzMDE4NjQwZDhkNTVl
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgK
QEAgLTEyMywxMSArMTIzLDYgQEAgcHVibGljOgogICAgIC8vIENyZWF0ZSBhIHNlc3Npb24gc3Rv
cmFnZSBuYW1lc3BhY2Ugb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIFdlYlZpZXcuCiAgICAg
dmlydHVhbCBXZWJTdG9yYWdlTmFtZXNwYWNlKiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZSh1bnNpZ25lZCBxdW90YSkgeyByZXR1cm4gMDsgfQogCi0gICAgLy8gREVQUkVDQVRFRDogQ3Jl
YXRlcyBhIGdyYXBoaWNzIGNvbnRleHQgdGhhdCByZW5kZXJzIHRvIHRoZSBjbGllbnQncyBXZWJW
aWV3LgotICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0ZUdyYXBoaWNzQ29u
dGV4dDNEKGNvbnN0IFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzJikgeyByZXR1cm4g
MDsgfQotCi0gICAgLy8gQ3JlYXRlcyB0aGUgb3V0cHV0IHN1cmZhY2UgdGhhdCByZW5kZXJzIHRv
IHRoZSBjbGllbnQncyBXZWJWaWV3LgotICAgIHZpcnR1YWwgV2ViQ29tcG9zaXRvck91dHB1dFN1
cmZhY2UqIGNyZWF0ZU91dHB1dFN1cmZhY2UoKSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBNaXNj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
V2lkZ2V0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAppbmRl
eCAxZDVmNWYxMmQ3NmE3ZWMxOGM4NWZlNjk3MTVjMTY3N2E5YzgzNzE0Li5mN2ZhYmMzOWNkZGU2
MjFkNzdhNTZhZGJmZTNjNWIwODRiMjY0NDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJXaWRnZXQuaApAQCAtNDIsNiArNDIsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIFdlYklucHV0RXZlbnQ7CitjbGFzcyBXZWJJbnB1dEhhbmRsZXI7CiBjbGFzcyBXZWJM
YXllclRyZWVWaWV3OwogY2xhc3MgV2ViTW91c2VFdmVudDsKIGNsYXNzIFdlYlN0cmluZzsKQEAg
LTgwLDcgKzgxLDcgQEAgcHVibGljOgogCiAgICAgLy8gQ2FsbGVkIHRvIHVwZGF0ZSBpbXBlcmF0
aXZlIGFuaW1hdGlvbiBzdGF0ZS4gVGhpcyBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZQogICAgIC8v
IHBhaW50LCBhbHRob3VnaCB0aGUgY2xpZW50IGNhbiByYXRlLWxpbWl0IHRoZXNlIGNhbGxzLgot
ICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSBpZ25vcmVkKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgYW5pbWF0ZShkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpIHsgfQogCiAgICAg
Ly8gQ2FsbGVkIHRvIGxheW91dCB0aGUgV2ViV2lkZ2V0LiBUaGlzIE1VU1QgYmUgY2FsbGVkIGJl
Zm9yZSBQYWludCwKICAgICAvLyBhbmQgaXQgbWF5IHJlc3VsdCBpbiBjYWxscyB0byBXZWJXaWRn
ZXRDbGllbnQ6OmRpZEludmFsaWRhdGVSZWN0LgpAQCAtOTAsNiArOTEsMTAgQEAgcHVibGljOgog
ICAgIC8vIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIHBhaW50LgogICAgIHZpcnR1YWwgdm9pZCBl
bnRlckZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW50ZXIpIHsgfQogCisgICAgLy8gQ2FsbGVk
IHRvIG5vdGlmeSB0aGUgV2ViV2lkZ2V0IHRoYXQgdGhlIHdpZGdldCBoYXMgZXhpdGVkIGNvbXBv
c2l0aW5nCisgICAgLy8gbW9kZSBhbmQgY2Fubm90IHJlZW50ZXIuCisgICAgdmlydHVhbCB2b2lk
IGRpZEV4aXRDb21wb3NpdGluZ01vZGUoKSB7IH0KKyAgICAKICAgICBlbnVtIFBhaW50T3B0aW9u
cyB7CiAgICAgICAgIC8vIEF0dGVtcHQgdG8gZnVsZmlsbCB0aGUgcGFpbnRpbmcgcmVxdWVzdCBi
eSByZWFkaW5nIGJhY2sgZnJvbSB0aGUKICAgICAgICAgLy8gY29tcG9zaXRvciwgYXNzdW1pbmcg
d2UncmUgdXNpbmcgYSBjb21wb3NpdG9yIHRvIHJlbmRlci4KQEAgLTExNCwxNiArMTE5LDYgQEAg
cHVibGljOgogICAgIC8vIHdhcnJhbnRlZCBiZWZvcmUgcGFpbnRpbmcgYWdhaW4pLgogICAgIHZp
cnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0JiB2aWV3UG9ydCwgUGFp
bnRPcHRpb25zID0gUmVhZGJhY2tGcm9tQ29tcG9zaXRvcklmQXZhaWxhYmxlKSB7IH0KIAotICAg
IC8vIEluIG5vbi10aHJlYWRlZCBjb21wb3NpdGluZyBtb2RlLCB0cmlnZ2VycyBjb21wb3NpdGlu
ZyBvZiB0aGUgY3VycmVudAotICAgIC8vIGxheWVycyBvbnRvIHRoZSBzY3JlZW4uIFlvdSBNVVNU
IGNhbGwgTGF5b3V0IGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kLAotICAgIC8vIGZvciB0aGUg
c2FtZSByZWFzb25zIGRlc2NyaWJlZCBpbiB0aGUgcGFpbnQgbWV0aG9kIGFib3ZlCi0gICAgLy8K
LSAgICAvLyBJbiB0aHJlYWRlZCBjb21wb3NpdGluZyBtb2RlLCBpbmRpY2F0ZXMgdGhhdCB0aGUg
d2lkZ2V0IHNob3VsZCB1cGRhdGUKLSAgICAvLyBpdHNlbGYsIGZvciBleGFtcGxlIGR1ZSB0byB3
aW5kb3cgZGFtYWdlLiBUaGUgcmVkcmF3IHdpbGwgYmVnaW4KLSAgICAvLyBhc3luY2hyb25vdXNs
eSBhbmQgcGVyZm9ybSBsYXlvdXQgYW5kIGFuaW1hdGlvbiBpbnRlcm5hbGx5LiBEbyBub3QgY2Fs
bAotICAgIC8vIGFuaW1hdGUgb3IgbGF5b3V0IGluIHRoaXMgY2FzZS4KLSAgICB2aXJ0dWFsIHZv
aWQgY29tcG9zaXRlKGJvb2wgZmluaXNoKSA9IDA7Ci0KICAgICAvLyBSZXR1cm5zIHRydWUgaWYg
d2UndmUgc3RhcnRlZCB0cmFja2luZyByZXBhaW50IHJlY3RhbmdsZXMuCiAgICAgdmlydHVhbCBi
b29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTE0
OCw2ICsxNDMsMTYgQEAgcHVibGljOgogICAgIC8vIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIHBv
aW50IGhpdHMgYW55IHJlZ2lzdGVyZWQgdG91Y2ggZXZlbnQgaGFuZGxlcnMuCiAgICAgdmlydHVh
bCBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVyc0F0KGNvbnN0IFdlYlBvaW50JikgeyByZXR1cm4g
dHJ1ZTsgfQogCisgICAgLy8gUmVxdWVzdCB0aGF0IHRoZSBXZWJXaWRnZXQgY3JlYXRlIGFuIGlu
cHV0IGhhbmRsZXIgZm9yIHByb2Nlc3NpbmcgaW5wdXQKKyAgICAvLyBldmVudHMgaW50ZW5kZWQg
Zm9yIHRoaXMgd2lkZ2V0IG9mZiBvZiB0aGUgbWFpbiB0aHJlYWQuCisgICAgdmlydHVhbCBXZWJJ
bnB1dEhhbmRsZXIqIGNyZWF0ZUlucHV0SGFuZGxlcigpIHsgcmV0dXJuIDA7IH0KKworICAgIC8v
IEFwcGxpZXMgYSBzY3JvbGwgZGVsdGEgdG8gdGhlIHJvb3QgbGF5ZXIsIHdoaWNoIGlzIGJ1bmRs
ZWQgd2l0aCBhIHBhZ2UKKyAgICAvLyBzY2FsZSBmYWN0b3IgdGhhdCBtYXkgYXBwbHkgYSBDU1Mg
dHJhbnNmb3JtIG9uIHRoZSB3aG9sZSBkb2N1bWVudCAodXNlZAorICAgIC8vIGZvciBtb2JpbGUt
ZGV2aWNlIHBpbmNoIHpvb21pbmcpLiBUaGlzIGlzIHRyaWdnZXJlZCBieSBldmVudHMgc2VudCB0
byB0aGUKKyAgICAvLyBjb21wb3NpdG9yIHRocmVhZCB0aHJvdWdoIHRoZSBXZWJJbnB1dEhhbmRs
ZXIgaW50ZXJmYWNlLgorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0
IFdlYlNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZUZhY3RvcikgeyB9CisKICAgICAvLyBD
YWxsZWQgdG8gaW5mb3JtIHRoZSBXZWJXaWRnZXQgdGhhdCBtb3VzZSBjYXB0dXJlIHdhcyBsb3N0
LgogICAgIHZpcnR1YWwgdm9pZCBtb3VzZUNhcHR1cmVMb3N0KCkgeyB9CiAKQEAgLTIzNSwxMyAr
MjQwLDYgQEAgcHVibGljOgogICAgIC8vIHJlY3QuKQogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFu
Z2VXaW5kb3dSZXNpemVyUmVjdCgpIHsgfQogCi0gICAgLy8gSW5zdHJ1bWVudGF0aW9uIG1ldGhv
ZCB0aGF0IG1hcmtzIGJlZ2lubmluZyBvZiBmcmFtZSB1cGRhdGUgdGhhdCBpbmNsdWRlcwotICAg
IC8vIHRoaW5ncyBsaWtlIGFuaW1hdGUoKS9sYXlvdXQoKS9wYWludCgpL2NvbXBvc2l0ZSgpLgot
ICAgIHZpcnR1YWwgdm9pZCBpbnN0cnVtZW50QmVnaW5GcmFtZSgpIHsgfQotICAgIC8vIENhbmNl
bHMgdGhlIGVmZmVjdCBvZiBpbnN0cnVtZW50QmVnaW5GcmFtZSgpIGluIGNhc2UgdGhlcmUgd2Vy
ZSBubyBldmVudHMKLSAgICAvLyBmb2xsb3dpbmcgdGhlIGNhbGwgdG8gaW5zdHJ1bWVudEJlZ2lu
RnJhbWUoKS4KLSAgICB2aXJ0dWFsIHZvaWQgaW5zdHJ1bWVudENhbmNlbEZyYW1lKCkgeyB9Ci0K
ICAgICAvLyBUaGUgcGFnZSBiYWNrZ3JvdW5kIGNvbG9yLiBDYW4gYmUgdXNlZCBmb3IgZmlsbGlu
ZyBpbiBhcmVhcyB3aXRob3V0CiAgICAgLy8gY29udGVudC4KICAgICB2aXJ0dWFsIFdlYkNvbG9y
IGJhY2tncm91bmRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIDB4RkZGRkZGRkY7IC8qIFNLX0NvbG9y
V0hJVEUgKi8gfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSGVs
cGVyUGx1Z2luSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQ
bHVnaW5JbXBsLmNwcAppbmRleCBiMjQyZjhmZjE1Zjg5YWIyODY1NDM5ZWNkYjg2ZWNjNjI5NmJj
NjlkLi5mNDJhZDgwZDYwZTVkMTYzZmNiOGZiMGFjYzcxODVkOTY5MjYyMGVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcApAQCAt
MjE1LDE0ICsyMTUsNiBAQCB2b2lkIFdlYkhlbHBlclBsdWdpbkltcGw6OmRlc3RvcnlQYWdlKCkK
ICAgICBtX3BhZ2UuY2xlYXIoKTsKIH0KIAotdm9pZCBXZWJIZWxwZXJQbHVnaW5JbXBsOjpzZXRD
b21wb3NpdG9yU3VyZmFjZVJlYWR5KCkKLXsKLX0KLQotdm9pZCBXZWJIZWxwZXJQbHVnaW5JbXBs
Ojpjb21wb3NpdGUoYm9vbCkKLXsKLX0KLQogdm9pZCBXZWJIZWxwZXJQbHVnaW5JbXBsOjpsYXlv
dXQoKQogewogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6bGF5b3V0KG1fcGFnZS5nZXQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmgKaW5k
ZXggYzZhNzIxYzc0MGIxNmRhMTg4NGQwYzNmOTk3MTg3YjNiOWMwMmExMS4uNWUxNjUyYjU5MmFh
MGM3OGY0NDM1ZDE4ZGNkZTY3ZWI4MGE0YzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSGVscGVyUGx1Z2luSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkhlbHBlclBsdWdpbkltcGwuaApAQCAtNjcsOCArNjcsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGVzdG9yeVBhZ2UoKTsKIAogICAgIC8vIFdlYldpZGdldCBtZXRob2RzOgot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wb3NpdG9yU3VyZmFjZVJlYWR5KCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0ZShib29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgbGF5b3V0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcAppbmRleCBlY2JkYTM3OThj
YThlMDlhNGQ3ZGNkZjM0NTc0NWJhMDk3NzYxNTdlLi41YTY3ZjQxYjhmZDQwMjA1OWQ2MWQxNGJm
MDU4NjY4N2I0NzFmMDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJQYWdlUG9wdXBJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
YWdlUG9wdXBJbXBsLmNwcApAQCAtMjQ2LDE0ICsyNDYsNiBAQCB2b2lkIFdlYlBhZ2VQb3B1cElt
cGw6OmFuaW1hdGUoZG91YmxlKQogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6YW5pbWF0ZShtX3Bh
Z2UuZ2V0KCksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUG9wdXBJbXBsOjpzZXRDb21wb3NpdG9yU3VyZmFjZVJlYWR5KCkKLXsKLX0KLQotdm9pZCBX
ZWJQYWdlUG9wdXBJbXBsOjpjb21wb3NpdGUoYm9vbCkKLXsKLX0KLQogdm9pZCBXZWJQYWdlUG9w
dXBJbXBsOjpsYXlvdXQoKQogewogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6bGF5b3V0KG1fcGFn
ZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdl
UG9wdXBJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBs
LmgKaW5kZXggZmI5N2M3ZDAxZTUzZmFmY2M2YWY2Y2Q0NjVjOTU3N2YxYjI1YWQzOC4uOGM4NzY3
MjNhMGZhMTJjMTk3OWQxNmNlZTFkMTAwNmIxZDhiMDAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuaApAQCAtNjksOCArNjksNiBAQCBwcml2YXRl
OgogICAgIC8vIFdlYldpZGdldCBmdW5jdGlvbnMKICAgICB2aXJ0dWFsIFdlYlNpemUgc2l6ZSgp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldENvbXBvc2l0b3JTdXJmYWNlUmVhZHkoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBsYXlvdXQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiwg
Y29uc3QgV2ViUmVjdCYsIFBhaW50T3B0aW9ucyA9IFJlYWRiYWNrRnJvbUNvbXBvc2l0b3JJZkF2
YWlsYWJsZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlc2l6ZShjb25zdCBXZWJTaXpl
JikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
b3B1cE1lbnVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVu
dUltcGwuY3BwCmluZGV4IDgzNDQ4NjNmYWNjZWQzODk5ZDc5OTZkMzViMGZkYmYwNmIzMjU2NGYu
Ljk4NWEwM2ViMTMyNzMxNDc0OTRhOTAwZmFhYzcwY2IzYzUwMTQ5OTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCkBAIC0yMTEsMTYgKzIx
MSw2IEBAIHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6dGhlbWVDaGFuZ2VkKCkKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6OnNldENvbXBvc2l0b3JTdXJm
YWNlUmVhZHkoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgV2ViUG9wdXBN
ZW51SW1wbDo6Y29tcG9zaXRlKGJvb2wpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQog
Ym9vbCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZl
bnQmIGlucHV0RXZlbnQpCiB7CiAgICAgaWYgKCFtX3dpZGdldCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaAppbmRleCBjOWYwOGM0YjIzYmQwMzk4M2E4
ZGYwYzM1OGU5MTYwZTkyOGI5MjA4Li41OTIwODU1OTRmMzhmMTViNjZkNmNhNDk4M2QyMDBhMjQ5
YTBjMDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1l
bnVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1w
bC5oCkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNhbnZhcyosIGNvbnN0IFdlYlJl
Y3QmLCBQYWludE9wdGlvbnMgPSBSZWFkYmFja0Zyb21Db21wb3NpdG9ySWZBdmFpbGFibGUpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNoYW5nZWQoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29tcG9zaXRvclN1cmZhY2VSZWFkeSgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Ym9vbCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgbW91c2VDYXB0dXJlTG9zdCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRGb2N1cyhib29sIGVuYWJsZSkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYTM3MWRmMGUzNTE1NjY4ODNjMTcwNDg4ZDMx
NWQwMTlmMGIxMjAxOS4uZjA4ZmEwNjdlYTcxY2E5NWU3MGZkMTdiN2UyZDNjZjMwNGIwNzA2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMTgwNCwx
OCArMTgwNCw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpZEV4aXRGdWxsU2NyZWVuKCkKICNlbmRp
ZgogfQogCi12b2lkIFdlYlZpZXdJbXBsOjppbnN0cnVtZW50QmVnaW5GcmFtZSgpCi17Ci0gICAg
aWYgKG1fZGV2VG9vbHNBZ2VudCkKLSAgICAgICAgbV9kZXZUb29sc0FnZW50LT5kaWRCZWdpbkZy
YW1lKCk7Ci19Ci0KLXZvaWQgV2ViVmlld0ltcGw6Omluc3RydW1lbnRDYW5jZWxGcmFtZSgpCi17
Ci0gICAgaWYgKG1fZGV2VG9vbHNBZ2VudCkKLSAgICAgICAgbV9kZXZUb29sc0FnZW50LT5kaWRD
YW5jZWxGcmFtZSgpOwotfQotCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQogdm9pZCBXZWJW
aWV3SW1wbDo6dXBkYXRlQmF0dGVyeVN0YXR1cyhjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzJiBzdGF0
dXMpCiB7CkBAIC0xODIzLDQxICsxODExLDEyIEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUJh
dHRlcnlTdGF0dXMoY29uc3QgV2ViQmF0dGVyeVN0YXR1cyYgc3RhdHVzKQogfQogI2VuZGlmCiAK
LXZvaWQgV2ViVmlld0ltcGw6OmFuaW1hdGUoZG91YmxlKQordm9pZCBXZWJWaWV3SW1wbDo6YW5p
bWF0ZShkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpCiB7Ci0jaWYgRU5BQkxFKFJFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FKQotICAgIGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgIGlmICghbW9ub3RvbmljRnJhbWVC
ZWdpblRpbWUpCisgICAgICAgIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lID0gbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0g
ICAgLy8gSW4gY29tcG9zaXRlZCBtb2RlLCB3ZSBhbHdheXMgZ28gdGhyb3VnaCB0aGUgY29tcG9z
aXRvciBzbyBpdCBjYW4gYXBwbHkKLSAgICAvLyBhcHByb3ByaWF0ZSBmbG93LWNvbnRyb2wgbWVj
aGFuaXNtcy4KLSAgICBpZiAoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpCi0gICAg
ICAgIG1fbGF5ZXJUcmVlVmlldy0+dXBkYXRlQW5pbWF0aW9ucyhtb25vdG9uaWNGcmFtZUJlZ2lu
VGltZSk7Ci0gICAgZWxzZQotI2VuZGlmCi0gICAgICAgIHVwZGF0ZUFuaW1hdGlvbnMobW9ub3Rv
bmljRnJhbWVCZWdpblRpbWUpOwotI2VuZGlmCi19Ci0KLXZvaWQgV2ViVmlld0ltcGw6OndpbGxC
ZWdpbkZyYW1lKCkKLXsKLSAgICBpbnN0cnVtZW50QmVnaW5GcmFtZSgpOwotICAgIG1fY2xpZW50
LT53aWxsQmVnaW5Db21wb3NpdG9yRnJhbWUoKTsKLX0KLQotdm9pZCBXZWJWaWV3SW1wbDo6ZGlk
QmVnaW5GcmFtZSgpCi17Ci0gICAgaWYgKG1fZGV2VG9vbHNBZ2VudCkKLSAgICAgICAgbV9kZXZU
b29sc0FnZW50LT5kaWRDb21wb3NpdGUoKTsKLQotICAgIGlmIChtX2NvbnRpbnVvdXNQYWludGlu
Z0VuYWJsZWQpCi0gICAgICAgIENvbnRpbnVvdXNQYWludGVyOjpzZXROZWVkc0Rpc3BsYXlSZWN1
cnNpdmUobV9yb290R3JhcGhpY3NMYXllciwgbV9wYWdlT3ZlcmxheXMuZ2V0KCkpOwotfQotCi12
b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJl
Z2luVGltZSkKLXsKLSNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCi0gICAgVFJB
Q0VfRVZFTlQwKCJ3ZWJraXQiLCAiV2ViVmlld0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMiKTsKKyAg
ICBUUkFDRV9FVkVOVDAoIndlYmtpdCIsICJXZWJWaWV3SW1wbDo6YW5pbWF0ZSIpOwogCiAgICAg
Ly8gQ3JlYXRlIHN5bnRoZXRpYyB3aGVlbCBldmVudHMgYXMgbmVjZXNzYXJ5IGZvciBmbGluZy4K
ICAgICBpZiAobV9nZXN0dXJlQW5pbWF0aW9uKSB7CkBAIC0xODc0LDcgKzE4MzMsOSBAQCB2b2lk
IFdlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2lu
VGltZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUGFnZVdpZGdldERlbGVnYXRlOjphbmltYXRl
KG1fcGFnZS5nZXQoKSwgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwotI2VuZGlmCisKKyAgICBp
ZiAobV9jb250aW51b3VzUGFpbnRpbmdFbmFibGVkKQorICAgICAgICBDb250aW51b3VzUGFpbnRl
cjo6c2V0TmVlZHNEaXNwbGF5UmVjdXJzaXZlKG1fcm9vdEdyYXBoaWNzTGF5ZXIsIG1fcGFnZU92
ZXJsYXlzLmdldCgpKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6bGF5b3V0KCkKQEAgLTE5ODAs
MjEgKzE5NDEsNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjp0aGVtZUNoYW5nZWQoKQogICAgIHZpZXct
PmludmFsaWRhdGVSZWN0KGRhbWFnZWRSZWN0KTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6Y29t
cG9zaXRlKGJvb2wpCi17Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlm
IChQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5pc1RocmVhZGluZ0Vu
YWJsZWQoKSkKLSAgICAgICAgbV9sYXllclRyZWVWaWV3LT5zZXROZWVkc1JlZHJhdygpOwotICAg
IGVsc2UgewotICAgICAgICBBU1NFUlQoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkp
OwotICAgICAgICBpZiAoIXBhZ2UoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBt
X2xheWVyVHJlZVZpZXctPmNvbXBvc2l0ZSgpOwotICAgIH0KLSNlbmRpZgotfQotCiB2b2lkIFdl
YlZpZXdJbXBsOjpzZXROZWVkc1JlZHJhdygpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQpAQCAtNDE5NCwxMSArNDE0MCw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldElzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKIAogI2VuZGlmCiAKLVdlYkNv
bXBvc2l0b3JPdXRwdXRTdXJmYWNlKiBXZWJWaWV3SW1wbDo6Y3JlYXRlT3V0cHV0U3VyZmFjZSgp
Ci17Ci0gICAgcmV0dXJuIG1fY2xpZW50LT5jcmVhdGVPdXRwdXRTdXJmYWNlKCk7Ci19Ci0KIFdl
YklucHV0SGFuZGxlciogV2ViVmlld0ltcGw6OmNyZWF0ZUlucHV0SGFuZGxlcigpCiB7CiAgICAg
V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwqIGhhbmRsZXIgPSBuZXcgV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwoKTsKQEAgLTQyMzUsNDggKzQxNzYsMTUgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiBzY3JvbGxEZWx0YSwgZmxv
YXQgcGFnZVNjYWwKICAgICB9CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OndpbGxDb21taXQoKQot
ewotICAgIGlmIChtX2RldlRvb2xzQWdlbnQpCi0gICAgICAgIG1fZGV2VG9vbHNBZ2VudC0+d2ls
bENvbXBvc2l0ZSgpOwotfQotCi12b2lkIFdlYlZpZXdJbXBsOjpkaWRDb21taXQoKQotewotICAg
IGlmIChtX2NsaWVudCkgewotICAgICAgICBtX2NsaWVudC0+ZGlkQ29tbWl0Q29tcG9zaXRvckZy
YW1lKCk7Ci0gICAgICAgIG1fY2xpZW50LT5kaWRCZWNvbWVSZWFkeUZvckFkZGl0aW9uYWxJbnB1
dCgpOwotICAgIH0KLX0KLQotdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ29tbWl0QW5kRHJhd0ZyYW1l
KCkKK3ZvaWQgV2ViVmlld0ltcGw6OmRpZEV4aXRDb21wb3NpdGluZ01vZGUoKQogewotICAgIGlm
IChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRpZENvbW1pdEFuZERyYXdDb21wb3NpdG9y
RnJhbWUoKTsKLX0KLQotdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ29tcGxldGVTd2FwQnVmZmVycygp
Ci17Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcGxldGVTd2Fw
QnVmZmVycygpOwotfQotCi12b2lkIFdlYlZpZXdJbXBsOjpkaWRSZWNyZWF0ZU91dHB1dFN1cmZh
Y2UoYm9vbCBzdWNjZXNzKQotewotICAgIC8vIFN3aXRjaCBiYWNrIHRvIHNvZnR3YXJlIHJlbmRl
cmluZyBtb2RlLCBpZiBuZWNlc3NhcnkKLSAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgQVNT
RVJUKG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKTsKLSAgICAgICAgc2V0SXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGZhbHNlKTsKLSAgICAgICAgbV9jb21wb3NpdG9yQ3Jl
YXRpb25GYWlsZWQgPSB0cnVlOwotICAgICAgICBtX2NsaWVudC0+ZGlkSW52YWxpZGF0ZVJlY3Qo
SW50UmVjdCgwLCAwLCBtX3NpemUud2lkdGgsIG1fc2l6ZS5oZWlnaHQpKTsKLQotICAgICAgICAv
LyBGb3JjZSBhIHN0eWxlIHJlY2FsYyB0byByZW1vdmUgYWxsIHRoZSBjb21wb3NpdGVkIGxheWVy
cy4KLSAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2NoZWR1bGVGb3Jj
ZWRTdHlsZVJlY2FsYygpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIEFTU0VSVChtX2lz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSk7CisgICAgc2V0SXNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQWN0aXZlKGZhbHNlKTsKKyAgICBtX2NvbXBvc2l0b3JDcmVhdGlvbkZhaWxlZCA9IHRy
dWU7CisgICAgbV9jbGllbnQtPmRpZEludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgbV9zaXpl
LndpZHRoLCBtX3NpemUuaGVpZ2h0KSk7CiAKLSAgICBpZiAobV9wYWdlT3ZlcmxheXMpCi0gICAg
ICAgIG1fcGFnZU92ZXJsYXlzLT51cGRhdGUoKTsKKyAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2Fs
YyB0byByZW1vdmUgYWxsIHRoZSBjb21wb3NpdGVkIGxheWVycy4KKyAgICBtX3BhZ2UtPm1haW5G
cmFtZSgpLT5kb2N1bWVudCgpLT5zY2hlZHVsZUZvcmNlZFN0eWxlUmVjYWxjKCk7CiB9CiAKIHZv
aWQgV2ViVmlld0ltcGw6OnNjaGVkdWxlQ29tcG9zaXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDZkY2M0NzM3YTU4ZWVmZDRjMDJjNDViZGZkNjI4ZDEx
M2JkYjA2ZTQuLmY1ODA0MDFjNTcwNGFiYWUwMjA2MzI3OTI5NDJjOWQ5MDc5NjNhODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTQ5LDEwICsxNDksMTEg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMqLCBjb25zdCBXZWJS
ZWN0JiwgUGFpbnRPcHRpb25zID0gUmVhZGJhY2tGcm9tQ29tcG9zaXRvcklmQXZhaWxhYmxlKTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHRoZW1lQ2hhbmdlZCgpOwotICAgIHZpcnR1YWwgdm9pZCBjb21wb3Np
dGUoYm9vbCBmaW5pc2gpOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1JlZHJhdygpOwogICAg
IHZpcnR1YWwgYm9vbCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKTsKICAg
ICB2aXJ0dWFsIGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXJzQXQoY29uc3QgV2ViUG9pbnQmKTsK
KyAgICB2aXJ0dWFsIFdlYklucHV0SGFuZGxlciogY3JlYXRlSW5wdXRIYW5kbGVyKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYs
IGZsb2F0KTsKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VDYXB0dXJlTG9zdCgpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRGb2N1cyhib29sIGVuYWJsZSk7CiAgICAgdmlydHVhbCBib29sIHNldENvbXBv
c2l0aW9uKApAQCAtMTgxLDggKzE4Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Tm90QWNxdWlyZVBvaW50ZXJMb2NrKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZExvc2VQb2ludGVy
TG9jaygpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VXaW5kb3dSZXNpemVyUmVjdCgpOwot
ICAgIHZpcnR1YWwgdm9pZCBpbnN0cnVtZW50QmVnaW5GcmFtZSgpOwotICAgIHZpcnR1YWwgdm9p
ZCBpbnN0cnVtZW50Q2FuY2VsRnJhbWUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdENvbXBv
c2l0aW5nTW9kZSgpOwogCiAgICAgLy8gV2ViVmlldyBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9p
ZCBpbml0aWFsaXplTWFpbkZyYW1lKFdlYkZyYW1lQ2xpZW50Kik7CkBAIC0zMTYsMTcgKzMxNiw2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGludW91c1BhaW50aW5nRW5hYmxl
ZChib29sKTsKIAogICAgIC8vIFdlYkxheWVyVHJlZVZpZXdDbGllbnQKLSAgICB2aXJ0dWFsIHZv
aWQgd2lsbEJlZ2luRnJhbWUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5GcmFtZSgpOwot
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJl
Z2luVGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2Vi
U2l6ZSYsIGZsb2F0KTsKLSAgICB2aXJ0dWFsIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlKiBj
cmVhdGVPdXRwdXRTdXJmYWNlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY3Jl
YXRlT3V0cHV0U3VyZmFjZShib29sIHN1Y2Nlc3MpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2Vi
SW5wdXRIYW5kbGVyKiBjcmVhdGVJbnB1dEhhbmRsZXIoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgd2lsbENvbW1pdCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXQoKTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3Np
dGUoKTsKIAogICAgIC8vIFdlYlZpZXdJbXBsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bVRlc3Qu
Y3BwCmluZGV4IDI2NjdjYjU2NjY5MzJmMTY3MTZmMmRmYmY3YmViOTFmODc2NjQxNTUuLmJjNTY0
N2I4MjRjZjhjYmI5NmM0MjJhYzE4Nzk5MzgzYjUxYzg4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bVRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
aHJvbWl1bVRlc3QuY3BwCkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSB7CiAKIGNsYXNzIEZh
a2VXZWJWaWV3Q2xpZW50IDogcHVibGljIFdlYlZpZXdDbGllbnQgewogcHVibGljOgotICAgIHZp
cnR1YWwgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UqIGNyZWF0ZU91dHB1dFN1cmZhY2UoKSBP
VkVSUklERQorICAgIHZpcnR1YWwgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UqIGNyZWF0ZU91
dHB1dFN1cmZhY2UoKQogICAgIHsKICAgICAgICAgcmV0dXJuIFBsYXRmb3JtOjpjdXJyZW50KCkt
PmNvbXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZU91dHB1dFN1cmZhY2VGb3IzRChDb21wb3NpdG9y
RmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoV2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0
dHJpYnV0ZXMoKSkubGVha1B0cigpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmgKaW5kZXggNDQ2
NjNhMWI0NTA1Mjk0OWNlNDZmMmJiYjc0OTAzNzFlN2YwNjJlMy4uYjQ5NWNkNTEyMGYzMDc4YWM3
NzEzZmUwNjAyZjU5MzM1YmEzZmU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9XZWJMYXllclRyZWVWaWV3VGVzdENvbW1vbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaApAQCAtMzYsMjIgKzM2
LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBNb2NrV2ViTGF5ZXJUcmVlVmlld0NsaWVu
dCA6IHB1YmxpYyBXZWJMYXllclRyZWVWaWV3Q2xpZW50IHsKIHB1YmxpYzoKICAgICBNT0NLX01F
VEhPRDAoc2NoZWR1bGVDb21wb3NpdGUsIHZvaWQoKSk7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSBPVkVSUklERSB7IH0KICAgICBNT0NL
X01FVEhPRDAod2lsbEJlZ2luRnJhbWUsIHZvaWQoKSk7CiAgICAgTU9DS19NRVRIT0QwKGRpZEJl
Z2luRnJhbWUsIHZvaWQoKSk7CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFIHsg
fQotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYlNpemUmIHNj
cm9sbERlbHRhLCBmbG9hdCBzY2FsZUZhY3RvcikgT1ZFUlJJREUgeyB9Ci0KLSAgICB2aXJ0dWFs
IFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlKiBjcmVhdGVPdXRwdXRTdXJmYWNlKCkgT1ZFUlJJ
REUKLSAgICB7Ci0gICAgICAgIHJldHVybiBQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9y
U3VwcG9ydCgpLT5jcmVhdGVPdXRwdXRTdXJmYWNlRm9yM0QoQ29tcG9zaXRvckZha2VXZWJHcmFw
aGljc0NvbnRleHQzRDo6Y3JlYXRlKFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKCkp
LmxlYWtQdHIoKSk7Ci0gICAgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZU91dHB1dFN1
cmZhY2UoYm9vbCkgT1ZFUlJJREUgeyB9Ci0KLSAgICBNT0NLX01FVEhPRDAod2lsbENvbW1pdCwg
dm9pZCgpKTsKLSAgICBNT0NLX01FVEhPRDAoZGlkQ29tbWl0LCB2b2lkKCkpOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgZGlkQ29tcGxldGVTd2FwQnVmZmVycygpIE9WRVJSSURFIHsgfQogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190850</attachid>
            <date>2013-02-28 17:11:15 -0800</date>
            <delta_ts>2013-02-28 17:15:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109125-20130228170727.patch</filename>
            <type>text/plain</type>
            <size>27867</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhNzc5YmFkYmFmZjAz
YWIxNjc2YjdiNjA5ODE1MDFmMzVjMjkyY2ZhLi4wNDg4YjQ5NWJiNDdiZWJlMmViODU3MjAyNDQw
NTE0YzY3OGNjN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0wNiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gQ2xlYW4gdXAgV2ViV2lkZ2V0IC8gV2ViTGF5ZXJUcmVlVmlldyBpbnRlcmFjdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTEyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZGVwcmVj
YXRlcyBtb3N0IG9mIHRoZSBjYWxscyBvbiBXZWJMYXllclRyZWVWaWV3Q2xpZW50IHNpbmNlIHRo
ZXNlIGludGVyYWN0aW9ucyBhcmUgaGFuZGxlZAorICAgICAgICBlbnRpcmVseSBvbiB0aGUgZW1i
ZWRkZXIgc2lkZSBvZiB0aGUgaW50ZXJmYWNlIG5vdy4KKworICAgICAgICAqIGNocm9taXVtL3B1
YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg6CisgICAgICAgIChXZWJMYXllclRyZWVWaWV3KToKKyAg
ICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oOgorICAgICAg
ICAoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJl
ZVZpZXdDbGllbnQ6OndpbGxCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJU
cmVlVmlld0NsaWVudDo6ZGlkQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVy
VHJlZVZpZXdDbGllbnQ6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMYXllclRyZWVWaWV3Q2xpZW50OjpsYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXll
clRyZWVWaWV3Q2xpZW50OjpkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50OjpjcmVhdGVJbnB1dEhhbmRsZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50OjpjcmVhdGVPdXRwdXRTdXJmYWNlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0NsaWVudDo6d2lsbENvbW1pdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbW1pdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbW1pdEFuZERyYXdGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbXBsZXRl
U3dhcEJ1ZmZlcnMpOgorCiAyMDEzLTAyLTI2ICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+
CiAKICAgICAgICAgRVhUX2RyYXdfYnVmZmVycyBuZWVkcyBpbXBsZW1lbnRhdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCAyZjUzMWQ2ZDIzYzA1NjIzNzc3MzBkYTI3YjQ4YmYwNjhk
NDk5MmQ3Li4zMmQzOGJiY2RjOWZhZTkwM2JmNzE4ZGNiODg5OGQ2OWNjNGFlZjk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTAyLTA2ICBKYW1lcyBS
b2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBDbGVh
biB1cCBXZWJXaWRnZXQgLyBXZWJMYXllclRyZWVWaWV3IGludGVyYWN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MTI1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZW1vdmVzIG1vc3Qg
b2YgdGhlIGNvbXBvc2l0aW5nIGNvbnRyb2wgZmxvdyBsb2dpYyBmcm9tIFdlYlZpZXdJbXBsIHNp
bmNlCisgICAgICAgIGl0IGlzIG5vdyBoYW5kbGVkIGluIHRoZSBlbWJlZGRpbmcgbGF5ZXIgKGJ5
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBXZWJWaWV3Q2xpZW50L1dlYldpZGdldENsaWVudCkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJX
aWRnZXQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6
YW5pbWF0ZSk6CisgICAgICAgIChXZWJXaWRnZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRn
ZXQ6OmRpZEV4aXRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6
OmNyZWF0ZUlucHV0SGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6YXBwbHlT
Y3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aW5zdHJ1bWVudEJl
Z2luRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6Omluc3RydW1lbnRXaWxsQmVn
aW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aW5zdHJ1bWVudERpZENhbmNl
bEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0OjppbnN0cnVtZW50RGlkQmVnaW5G
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aW5zdHJ1bWVudFdpbGxDb21wb3Np
dGUpOgorICAgICAgICAqIHNyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcDoKKyAgICAgICAgKiBz
cmMvV2ViSGVscGVyUGx1Z2luSW1wbC5oOgorICAgICAgICAoV2ViSGVscGVyUGx1Z2luSW1wbCk6
CisgICAgICAgICogc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwOgorICAgICAgICAqIHNyYy9XZWJQ
YWdlUG9wdXBJbXBsLmg6CisgICAgICAgIChXZWJQYWdlUG9wdXBJbXBsKToKKyAgICAgICAgKiBz
cmMvV2ViUG9wdXBNZW51SW1wbC5jcHA6CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVudUltcGwu
aDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6aW5zdHJ1bWVudFdpbGxCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6Omluc3RydW1lbnREaWRCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6Omluc3RydW1lbnREaWRDYW5jZWxGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjppbnN0cnVtZW50V2lsbENvbXBvc2l0ZSk6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlQmF0dGVyeVN0YXR1cyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphbmltYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmRpZEV4aXRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5oOgorICAgICAgICAqIHRlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmg6Cisg
ICAgICAgIChNb2NrV2ViTGF5ZXJUcmVlVmlld0NsaWVudCk6CisKIDIwMTMtMDItMjggIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuICBSb2xsZWQgQ2hyb21pdW0gREVQUyB0byByMTg1MzQxLiAgUmVxdWVzdGVkIGJ5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcu
aCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCmlu
ZGV4IGQ1Mjg3MjkwY2YwZDgxYzI5NDMxYmMwZGVkYWI0OTE2NGE4YTNlZWYuLmU1ZmMwZWIwYTE4
YjU5YmUyOTI1YWQxNjg4M2RiODEwN2MxNjA0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCisrKyBiL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCkBAIC0xMzEsNyArMTMxLDcgQEAg
cHVibGljOgogCiAgICAgLy8gRmxvdyBjb250cm9sIGFuZCBzY2hlZHVsaW5nIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0gICAgLy8gUmVxdWVzdHMgYW4gdXBkYXRl
QW5pbWF0aW9ucygpIGNhbGwuCisgICAgLy8gSW5kaWNhdGVzIHRoYXQgYW4gYW5pbWF0aW9uIG5l
ZWRzIHRvIGJlIHVwZGF0ZWQuCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzQW5pbWF0ZSgpID0g
MDsKIAogICAgIC8vIEluZGljYXRlcyB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJlIHJlZHJhd24u
IFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQgd2hlbiB0aGUgZnJvbnRidWZmZXIgaXMgZGFtYWdlZC4K
QEAgLTE0MCwyMCArMTQwLDYgQEAgcHVibGljOgogICAgIC8vIEluZGljYXRlcyB3aGV0aGVyIGEg
Y29tbWl0IGlzIHBlbmRpbmcuCiAgICAgdmlydHVhbCBib29sIGNvbW1pdFJlcXVlc3RlZCgpIGNv
bnN0ID0gMDsKIAotICAgIC8vIFRyaWdnZXJzIGEgY29tcG9zaXRpbmcgcGFzcy4gSWYgdGhlIGNv
bXBvc2l0b3IgdGhyZWFkIHdhcyBub3QKLSAgICAvLyBlbmFibGVkIHZpYSBXZWJDb21wb3NpdG9y
U3VwcG9ydDo6aW5pdGlhbGl6ZSwgdGhlIGNvbXBvc2l0aW5nIHBhc3MgaGFwcGVucwotICAgIC8v
IGltbWVkaWF0ZWx5LiBJZiBpdCBpcyBlbmFibGVkLCB0aGUgY29tcG9zaXRpbmcgcGFzcyB3aWxs
IGhhcHBlbiBhdCBhCi0gICAgLy8gbGF0ZXIgdGltZS4gQmVmb3JlIHRoZSBjb21wb3NpdGluZyBw
YXNzIGhhcHBlbnMgKGkuZS4gYmVmb3JlIGNvbXBvc2l0ZSgpCi0gICAgLy8gcmV0dXJucyB3aGVu
IHRoZSBjb21wb3NpdG9yIHRocmVhZCBpcyBkaXNhYmxlZCksIFdlYkNvbnRlbnRMYXllcnMgd2ls
bCBiZQotICAgIC8vIGFza2VkIHRvIHBhaW50IHRoZWlyIGRpcnR5IHJlZ2lvbiwgdGhyb3VnaAot
ICAgIC8vIFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cy4KLSAgICB2aXJ0dWFs
IHZvaWQgY29tcG9zaXRlKCkgPSAwOwotCi0gICAgLy8gSW1tZWRpYXRlbHkgdXBkYXRlIGFuaW1h
dGlvbnMuIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIGZyYW1lIHNjaGVkdWxpbmcgaXMg
aGFuZGxlZCBieQotICAgIC8vIHRoZSBXZWJMYXllclRyZWVWaWV3IHVzZXIgYW5kIG5vdCBpbnRl
cm5hbGx5IGJ5IHRoZSBjb21wb3NpdG9yLCBtZWFuaW5nIG9ubHkgaW4gc2luZ2xlLXRocmVhZGVk
Ci0gICAgLy8gbW9kZS4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUg
ZnJhbWVCZWdpblRpbWUpID0gMDsKLQogICAgIC8vIFJlbGF5cyB0aGUgZW5kIG9mIGEgZmxpbmcg
YW5pbWF0aW9uLgogICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wRmxpbmdpbmcoKSB7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3
Q2xpZW50LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZp
ZXdDbGllbnQuaAppbmRleCBhZGE1ODljMWNkNTYyMjM5MGM4YWQyYzM3MDg3NWJiMzVhNWY5ZjE5
Li5lNGI5NGIwYWMyYjlkMTA1NWY3ZTZkMWNhODJhMTE2MWY1ZjgxMTc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAor
KysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGll
bnQuaApAQCAtMzcsNDQgKzM3LDEyIEBAIHN0cnVjdCBXZWJTaXplOwogCiBjbGFzcyBXZWJMYXll
clRyZWVWaWV3Q2xpZW50IHsKIHB1YmxpYzoKLSAgICAvLyBJbmRpY2F0ZXMgdG8gdGhlIGVtYmVk
ZGVyIHRoYXQgdGhlIGNvbXBvc2l0b3IgaXMgYWJvdXQgdG8gYmVnaW4gYQotICAgIC8vIGZyYW1l
LiBUaGlzIGlzIGlzIGEgc2lnbmFsIHRvIGZsb3cgY29udHJvbCBtZWNoYW5pc21zIHRoYXQgYSBm
cmFtZSBpcwotICAgIC8vIGJlZ2lubmluZy4gVGhpcyBjYWxsIHdpbGwgYmUgZm9sbG93ZWQgYnkg
dXBkYXRlQW5pbWF0aW9ucyBhbmQgdGhlbgotICAgIC8vIGxheW91dCwgd2hpY2ggc2hvdWxkIGJl
IHVzZWQgZm9yIGFjdHVhbCBhbmltYXRpb24gb3IgdHJlZSBtYW5pcHVsYXRpb24KLSAgICAvLyB0
YXNrcy4gIEZJWE1FOiBtYWtlIHB1cmUgdmlydHVhbCBvbmNlIHVwc3RyZWFtIGRlcHMgYXJlIHNh
dGlzZmllZC4KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWUoKSB7IH0KLQotICAgIC8v
IEluZGljYXRlcyB0aGF0IG1haW4gdGhyZWFkIHRhc2tzIGFzc29jaWF0ZWQgd2l0aCBmcmFtZSBy
ZW5kZXJpbmcgaGF2ZSBjb21wbGV0ZWQuCi0gICAgLy8gSXNzdWVkIHVuY29uZGl0aW9uYWxseSwg
ZXZlbiBpZiB0aGUgY29udGV4dCB3YXMgbG9zdCBpbiB0aGUgcHJvY2Vzcy4KLSAgICB2aXJ0dWFs
IHZvaWQgZGlkQmVnaW5GcmFtZSgpIHsgfQotCi0gICAgLy8gVXBkYXRlcyBhbmltYXRpb24gYW5k
IGxheW91dC4gVGhlc2UgYXJlIGNhbGxlZCBiZWZvcmUgdGhlIGNvbXBvc2l0aW5nCi0gICAgLy8g
cGFzcyBzbyB0aGF0IGxheWVycyBjYW4gYmUgdXBkYXRlZCBhdCB0aGUgZ2l2ZW4gZnJhbWUgdGlt
ZS4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljRnJh
bWVCZWdpblRpbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgPSAwOwotCi0gICAg
Ly8gQXBwbGllcyBhIHNjcm9sbCBkZWx0YSB0byB0aGUgcm9vdCBsYXllciwgd2hpY2ggaXMgYnVu
ZGxlZCB3aXRoIGEgcGFnZQotICAgIC8vIHNjYWxlIGZhY3RvciB0aGF0IG1heSBhcHBseSBhIENT
UyB0cmFuc2Zvcm0gb24gdGhlIHdob2xlIGRvY3VtZW50ICh1c2VkCi0gICAgLy8gZm9yIG1vYmls
ZS1kZXZpY2UgcGluY2ggem9vbWluZykuIFRoaXMgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBzZW50
IHRvIHRoZQotICAgIC8vIGNvbXBvc2l0b3IgdGhyZWFkIHRocm91Z2ggdGhlIFdlYkNvbXBvc2l0
b3IgaW50ZXJmYWNlLgotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0
IFdlYlNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZUZhY3RvcikgPSAwOwotCi0gICAgLy8g
Q3JlYXRlcyB0aGUgb3V0cHV0IHN1cmZhY2UuIFRoaXMgbWF5IGJlIGNhbGxlZCBtb3JlIHRoYW4g
b25jZQotICAgIC8vIGlmIHRoZSBjb250ZXh0IGdldHMgbG9zdC4KLSAgICB2aXJ0dWFsIFdlYkNv
bXBvc2l0b3JPdXRwdXRTdXJmYWNlKiBjcmVhdGVPdXRwdXRTdXJmYWNlKCkgeyByZXR1cm4gMDsg
fQotCi0gICAgLy8gU2lnbmFscyBhIHN1Y2Nlc3NmdWwgcmVjcmVhdGlvbiBvZiB0aGUgb3V0cHV0
IHN1cmZhY2UgKGUuZy4gYWZ0ZXIgYSBsb3N0Ci0gICAgLy8gM0QgY29udGV4dCBldmVudCkuCisg
ICAgLy8gREVQUkVDQVRFRCAtIFdJTEwgQkUgUkVNT1ZFRCBTT09OCisgICAgdmlydHVhbCB2b2lk
IGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNj
YWxlRmFjdG9yKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUg
ZnJhbWVCZWdpblRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZU91dHB1dFN1
cmZhY2UoYm9vbCBzdWNjZXNzKSB7IH0KLQogICAgIHZpcnR1YWwgV2ViSW5wdXRIYW5kbGVyKiBj
cmVhdGVJbnB1dEhhbmRsZXIoKSB7IHJldHVybiAwOyB9CiAKLSAgICAvLyBTY2hlZHVsZXMgYSBj
b21wb3NpdGluZyBwYXNzLCBtZWFuaW5nIHRoZSBjbGllbnQgc2hvdWxkIGNhbGwKLSAgICAvLyBX
ZWJMYXllclRyZWVWaWV3Ojpjb21wb3NpdGUgYXQgYSBsYXRlciB0aW1lLiBUaGlzIGlzIG9ubHkg
Y2FsbGVkIGlmIHRoZQotICAgIC8vIGNvbXBvc2l0b3IgdGhyZWFkIGlzIGRpc2FibGVkOyB3aGVu
IGVuYWJsZWQsIHRoZSBjb21wb3NpdG9yIHdpbGwKLSAgICAvLyBpbnRlcm5hbGx5IHNjaGVkdWxl
IGEgY29tcG9zaXRpbmcgcGFzcyB3aGVuIG5lZWRlZC4KLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVDb21wb3NpdGUoKSA9IDA7Ci0KIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5XZWJMYXllclRy
ZWVWaWV3Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlld0NsaWVudC5oCmluZGV4IDM4YzY2ZGZlODlmOTNmYTg4ZTE4ZDUwNjgwODQ1NjE2NmMw
MjY3MzMuLmU0NDZlMmE2OTNmOTFhMTcxYzVlMmM5M2YzMDE4NjQwZDhkNTVlMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTEyMywxMSAr
MTIzLDYgQEAgcHVibGljOgogICAgIC8vIENyZWF0ZSBhIHNlc3Npb24gc3RvcmFnZSBuYW1lc3Bh
Y2Ugb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIFdlYlZpZXcuCiAgICAgdmlydHVhbCBXZWJT
dG9yYWdlTmFtZXNwYWNlKiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBx
dW90YSkgeyByZXR1cm4gMDsgfQogCi0gICAgLy8gREVQUkVDQVRFRDogQ3JlYXRlcyBhIGdyYXBo
aWNzIGNvbnRleHQgdGhhdCByZW5kZXJzIHRvIHRoZSBjbGllbnQncyBXZWJWaWV3LgotICAgIHZp
cnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKGNvbnN0
IFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzJikgeyByZXR1cm4gMDsgfQotCi0gICAg
Ly8gQ3JlYXRlcyB0aGUgb3V0cHV0IHN1cmZhY2UgdGhhdCByZW5kZXJzIHRvIHRoZSBjbGllbnQn
cyBXZWJWaWV3LgotICAgIHZpcnR1YWwgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UqIGNyZWF0
ZU91dHB1dFN1cmZhY2UoKSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBNaXNjIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAppbmRleCBkY2MxOTIxNzRk
YjBhNWE4NjVmZGUyZDc3N2JlZmExYjkwNTQ2MTRmLi45MTUzZDIyNzVlZDZkMGJhYmNhZmVlMWM2
NWFiNzgzOTY5ZWIzNjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJXaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRn
ZXQuaApAQCAtNDIsNiArNDIsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYklu
cHV0RXZlbnQ7CitjbGFzcyBXZWJJbnB1dEhhbmRsZXI7CiBjbGFzcyBXZWJMYXllclRyZWVWaWV3
OwogY2xhc3MgV2ViTW91c2VFdmVudDsKIGNsYXNzIFdlYlN0cmluZzsKQEAgLTgwLDcgKzgxLDcg
QEAgcHVibGljOgogCiAgICAgLy8gQ2FsbGVkIHRvIHVwZGF0ZSBpbXBlcmF0aXZlIGFuaW1hdGlv
biBzdGF0ZS4gVGhpcyBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZQogICAgIC8vIHBhaW50LCBhbHRo
b3VnaCB0aGUgY2xpZW50IGNhbiByYXRlLWxpbWl0IHRoZXNlIGNhbGxzLgotICAgIHZpcnR1YWwg
dm9pZCBhbmltYXRlKGRvdWJsZSBpZ25vcmVkKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0
ZShkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpIHsgfQogCiAgICAgLy8gQ2FsbGVkIHRv
IGxheW91dCB0aGUgV2ViV2lkZ2V0LiBUaGlzIE1VU1QgYmUgY2FsbGVkIGJlZm9yZSBQYWludCwK
ICAgICAvLyBhbmQgaXQgbWF5IHJlc3VsdCBpbiBjYWxscyB0byBXZWJXaWRnZXRDbGllbnQ6OmRp
ZEludmFsaWRhdGVSZWN0LgpAQCAtOTAsNiArOTEsMTAgQEAgcHVibGljOgogICAgIC8vIHNob3Vs
ZCBiZSBjYWxsZWQgYmVmb3JlIHBhaW50LgogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZvcmNlQ29t
cG9zaXRpbmdNb2RlKGJvb2wgZW50ZXIpIHsgfQogCisgICAgLy8gQ2FsbGVkIHRvIG5vdGlmeSB0
aGUgV2ViV2lkZ2V0IHRoYXQgdGhlIHdpZGdldCBoYXMgZXhpdGVkIGNvbXBvc2l0aW5nCisgICAg
Ly8gbW9kZSBhbmQgY2Fubm90IHJlZW50ZXIuCisgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRDb21w
b3NpdGluZ01vZGUoKSB7IH0KKwogICAgIGVudW0gUGFpbnRPcHRpb25zIHsKICAgICAgICAgLy8g
QXR0ZW1wdCB0byBmdWxmaWxsIHRoZSBwYWludGluZyByZXF1ZXN0IGJ5IHJlYWRpbmcgYmFjayBm
cm9tIHRoZQogICAgICAgICAvLyBjb21wb3NpdG9yLCBhc3N1bWluZyB3ZSdyZSB1c2luZyBhIGNv
bXBvc2l0b3IgdG8gcmVuZGVyLgpAQCAtMTE0LDE2ICsxMTksNiBAQCBwdWJsaWM6CiAgICAgLy8g
d2FycmFudGVkIGJlZm9yZSBwYWludGluZyBhZ2FpbikuCiAgICAgdmlydHVhbCB2b2lkIHBhaW50
KFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmIHZpZXdQb3J0LCBQYWludE9wdGlvbnMgPSBSZWFk
YmFja0Zyb21Db21wb3NpdG9ySWZBdmFpbGFibGUpIHsgfQogCi0gICAgLy8gSW4gbm9uLXRocmVh
ZGVkIGNvbXBvc2l0aW5nIG1vZGUsIHRyaWdnZXJzIGNvbXBvc2l0aW5nIG9mIHRoZSBjdXJyZW50
Ci0gICAgLy8gbGF5ZXJzIG9udG8gdGhlIHNjcmVlbi4gWW91IE1VU1QgY2FsbCBMYXlvdXQgYmVm
b3JlIGNhbGxpbmcgdGhpcyBtZXRob2QsCi0gICAgLy8gZm9yIHRoZSBzYW1lIHJlYXNvbnMgZGVz
Y3JpYmVkIGluIHRoZSBwYWludCBtZXRob2QgYWJvdmUKLSAgICAvLwotICAgIC8vIEluIHRocmVh
ZGVkIGNvbXBvc2l0aW5nIG1vZGUsIGluZGljYXRlcyB0aGF0IHRoZSB3aWRnZXQgc2hvdWxkIHVw
ZGF0ZQotICAgIC8vIGl0c2VsZiwgZm9yIGV4YW1wbGUgZHVlIHRvIHdpbmRvdyBkYW1hZ2UuIFRo
ZSByZWRyYXcgd2lsbCBiZWdpbgotICAgIC8vIGFzeW5jaHJvbm91c2x5IGFuZCBwZXJmb3JtIGxh
eW91dCBhbmQgYW5pbWF0aW9uIGludGVybmFsbHkuIERvIG5vdCBjYWxsCi0gICAgLy8gYW5pbWF0
ZSBvciBsYXlvdXQgaW4gdGhpcyBjYXNlLgotICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9v
bCBmaW5pc2gpID0gMDsKLQogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB3ZSd2ZSBzdGFydGVkIHRy
YWNraW5nIHJlcGFpbnQgcmVjdGFuZ2xlcy4KICAgICB2aXJ0dWFsIGJvb2wgaXNUcmFja2luZ1Jl
cGFpbnRzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApAQCAtMTQ4LDYgKzE0MywxNiBAQCBw
dWJsaWM6CiAgICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gcG9pbnQgaGl0cyBhbnkgcmVn
aXN0ZXJlZCB0b3VjaCBldmVudCBoYW5kbGVycy4KICAgICB2aXJ0dWFsIGJvb2wgaGFzVG91Y2hF
dmVudEhhbmRsZXJzQXQoY29uc3QgV2ViUG9pbnQmKSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICAv
LyBSZXF1ZXN0IHRoYXQgdGhlIFdlYldpZGdldCBjcmVhdGUgYW4gaW5wdXQgaGFuZGxlciBmb3Ig
cHJvY2Vzc2luZyBpbnB1dAorICAgIC8vIGV2ZW50cyBpbnRlbmRlZCBmb3IgdGhpcyB3aWRnZXQg
b2ZmIG9mIHRoZSBtYWluIHRocmVhZC4KKyAgICB2aXJ0dWFsIFdlYklucHV0SGFuZGxlciogY3Jl
YXRlSW5wdXRIYW5kbGVyKCkgeyByZXR1cm4gMDsgfQorCisgICAgLy8gQXBwbGllcyBhIHNjcm9s
bCBkZWx0YSB0byB0aGUgcm9vdCBsYXllciwgd2hpY2ggaXMgYnVuZGxlZCB3aXRoIGEgcGFnZQor
ICAgIC8vIHNjYWxlIGZhY3RvciB0aGF0IG1heSBhcHBseSBhIENTUyB0cmFuc2Zvcm0gb24gdGhl
IHdob2xlIGRvY3VtZW50ICh1c2VkCisgICAgLy8gZm9yIG1vYmlsZS1kZXZpY2UgcGluY2ggem9v
bWluZykuIFRoaXMgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBzZW50IHRvIHRoZQorICAgIC8vIGNv
bXBvc2l0b3IgdGhyZWFkIHRocm91Z2ggdGhlIFdlYklucHV0SGFuZGxlciBpbnRlcmZhY2UuCisg
ICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xs
RGVsdGEsIGZsb2F0IHNjYWxlRmFjdG9yKSB7IH0KKwogICAgIC8vIENhbGxlZCB0byBpbmZvcm0g
dGhlIFdlYldpZGdldCB0aGF0IG1vdXNlIGNhcHR1cmUgd2FzIGxvc3QuCiAgICAgdmlydHVhbCB2
b2lkIG1vdXNlQ2FwdHVyZUxvc3QoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJXaWRnZXRDbGllbnQuaAppbmRleCA0OGZlNTg4MzVjNTE5ODU4MTNmODI2YmNj
OGIxOTU1ODlmMzA0MjRkLi5iZjU5MzU0MTQ5ZjBjMDFkNmY1YzUzOWEzNTY3NWZiNmIyNDMyYjk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGllbnQu
aApAQCAtMTAxLDkgKzEwMSw2IEBAIHB1YmxpYzoKICAgICAvLyBwcm9jZXNzLgogICAgIHZpcnR1
YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCkgeyB9CiAKLSAgICAvLyBDYWxsZWQgd2hl
biBhIGNhbGwgdG8gV2ViV2lkZ2V0Ojpjb21wb3NpdGUgaXMgcmVxdWlyZWQKLSAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVDb21wb3NpdGUoKSB7IH0KLQogICAgIC8vIENhbGxlZCB3aGVuIGEgY2Fs
bCB0byBXZWJXaWRnZXQ6OmFuaW1hdGUgaXMgcmVxdWlyZWQKICAgICB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVBbmltYXRpb24oKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSGVscGVyUGx1Z2luSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcAppbmRleCA5YWY3OTRjNzA3OWE3YzU5OGQ5MjZhYzBl
Yzk5OWRiODQ0Yzg4ZmU1Li41ZGVlMDhjOTFlZDgwYzUxMTZmMzY4YjM1NzkzMjgwNmFiYThlY2Zi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5J
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5J
bXBsLmNwcApAQCAtMjEyLDE0ICsyMTIsNiBAQCB2b2lkIFdlYkhlbHBlclBsdWdpbkltcGw6OmRl
c3RvcnlQYWdlKCkKICAgICBtX3BhZ2UuY2xlYXIoKTsKIH0KIAotdm9pZCBXZWJIZWxwZXJQbHVn
aW5JbXBsOjpzZXRDb21wb3NpdG9yU3VyZmFjZVJlYWR5KCkKLXsKLX0KLQotdm9pZCBXZWJIZWxw
ZXJQbHVnaW5JbXBsOjpjb21wb3NpdGUoYm9vbCkKLXsKLX0KLQogdm9pZCBXZWJIZWxwZXJQbHVn
aW5JbXBsOjpsYXlvdXQoKQogewogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6bGF5b3V0KG1fcGFn
ZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxw
ZXJQbHVnaW5JbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVn
aW5JbXBsLmgKaW5kZXggYzZhNzIxYzc0MGIxNmRhMTg4NGQwYzNmOTk3MTg3YjNiOWMwMmExMS4u
NWUxNjUyYjU5MmFhMGM3OGY0NDM1ZDE4ZGNkZTY3ZWI4MGE0YzcyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSGVscGVyUGx1Z2luSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhlbHBlclBsdWdpbkltcGwuaApAQCAtNjcsOCArNjcs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVzdG9yeVBhZ2UoKTsKIAogICAgIC8vIFdlYldpZGdl
dCBtZXRob2RzOgotICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wb3NpdG9yU3VyZmFjZVJlYWR5KCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0ZShib29sKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldEZv
Y3VzKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIE9WRVJSSURFOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcAppbmRl
eCBlY2JkYTM3OThjYThlMDlhNGQ3ZGNkZjM0NTc0NWJhMDk3NzYxNTdlLi41YTY3ZjQxYjhmZDQw
MjA1OWQ2MWQxNGJmMDU4NjY4N2I0NzFmMDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcApAQCAtMjQ2LDE0ICsyNDYsNiBAQCB2b2lkIFdl
YlBhZ2VQb3B1cEltcGw6OmFuaW1hdGUoZG91YmxlKQogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6
YW5pbWF0ZShtX3BhZ2UuZ2V0KCksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKIH0K
IAotdm9pZCBXZWJQYWdlUG9wdXBJbXBsOjpzZXRDb21wb3NpdG9yU3VyZmFjZVJlYWR5KCkKLXsK
LX0KLQotdm9pZCBXZWJQYWdlUG9wdXBJbXBsOjpjb21wb3NpdGUoYm9vbCkKLXsKLX0KLQogdm9p
ZCBXZWJQYWdlUG9wdXBJbXBsOjpsYXlvdXQoKQogewogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6
bGF5b3V0KG1fcGFnZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJQYWdlUG9wdXBJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
YWdlUG9wdXBJbXBsLmgKaW5kZXggZmI5N2M3ZDAxZTUzZmFmY2M2YWY2Y2Q0NjVjOTU3N2YxYjI1
YWQzOC4uOGM4NzY3MjNhMGZhMTJjMTk3OWQxNmNlZTFkMTAwNmIxZDhiMDAxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuaApAQCAtNjksOCArNjks
NiBAQCBwcml2YXRlOgogICAgIC8vIFdlYldpZGdldCBmdW5jdGlvbnMKICAgICB2aXJ0dWFsIFdl
YlNpemUgc2l6ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbXBvc2l0b3JTdXJmYWNlUmVhZHkoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQo
V2ViQ2FudmFzKiwgY29uc3QgV2ViUmVjdCYsIFBhaW50T3B0aW9ucyA9IFJlYWRiYWNrRnJvbUNv
bXBvc2l0b3JJZkF2YWlsYWJsZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlc2l6ZShj
b25zdCBXZWJTaXplJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlBvcHVwTWVudUltcGwuY3BwCmluZGV4IDgzNDQ4NjNmYWNjZWQzODk5ZDc5OTZkMzViMGZk
YmYwNmIzMjU2NGYuLjk4NWEwM2ViMTMyNzMxNDc0OTRhOTAwZmFhYzcwY2IzYzUwMTQ5OTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCkBA
IC0yMTEsMTYgKzIxMSw2IEBAIHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6dGhlbWVDaGFuZ2VkKCkK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6OnNldENv
bXBvc2l0b3JTdXJmYWNlUmVhZHkoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZv
aWQgV2ViUG9wdXBNZW51SW1wbDo6Y29tcG9zaXRlKGJvb2wpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLX0KLQogYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0
IFdlYklucHV0RXZlbnQmIGlucHV0RXZlbnQpCiB7CiAgICAgaWYgKCFtX3dpZGdldCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaAppbmRleCBjOWYwOGM0
YjIzYmQwMzk4M2E4ZGYwYzM1OGU5MTYwZTkyOGI5MjA4Li41OTIwODU1OTRmMzhmMTViNjZkNmNh
NDk4M2QyMDBhMjQ5YTBjMDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQb3B1cE1lbnVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UG9wdXBNZW51SW1wbC5oCkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgbGF5b3V0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNhbnZhcyos
IGNvbnN0IFdlYlJlY3QmLCBQYWludE9wdGlvbnMgPSBSZWFkYmFja0Zyb21Db21wb3NpdG9ySWZB
dmFpbGFibGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNoYW5nZWQoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcG9zaXRvclN1cmZhY2VSZWFkeSgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VDYXB0dXJlTG9zdCgpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sIGVuYWJsZSkgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNGUxM2ExZWNhZjExNDdm
ZWYyZTM4ZmMzNjJjYTBiMGExNzJlYTZhZS4uMDA0YjgyZTZhZjU5MzQ1YmUyNjVmYTg2OTc3MzI5
ZDg1NmQyMGY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cApAQCAtMTgxNiwyOCArMTgxNiwxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVCYXR0ZXJ5
U3RhdHVzKGNvbnN0IFdlYkJhdHRlcnlTdGF0dXMmIHN0YXR1cykKIAogdm9pZCBXZWJWaWV3SW1w
bDo6YW5pbWF0ZShkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpCiB7Ci0gICAgdXBkYXRl
QW5pbWF0aW9ucyhtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7Ci19Ci0KLXZvaWQgV2ViVmlld0lt
cGw6OndpbGxCZWdpbkZyYW1lKCkKLXsKLSAgICBtX2NsaWVudC0+d2lsbEJlZ2luQ29tcG9zaXRv
ckZyYW1lKCk7Ci19CisgICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiV2ViVmlld0ltcGw6OmFu
aW1hdGUiKTsKIAotdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQmVnaW5GcmFtZSgpCi17Ci0gICAgaWYg
KG1fZGV2VG9vbHNBZ2VudCkKLSAgICAgICAgbV9kZXZUb29sc0FnZW50LT5kaWRDb21wb3NpdGUo
KTsKLX0KLQotdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9ub3Rv
bmljRnJhbWVCZWdpblRpbWUpCi17CiAgICAgaWYgKCFtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkK
ICAgICAgICAgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKTsKIAotI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKLSAgICBUUkFD
RV9FVkVOVDAoIndlYmtpdCIsICJXZWJWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyIpOwotCiAg
ICAgLy8gQ3JlYXRlIHN5bnRoZXRpYyB3aGVlbCBldmVudHMgYXMgbmVjZXNzYXJ5IGZvciBmbGlu
Zy4KICAgICBpZiAobV9nZXN0dXJlQW5pbWF0aW9uKSB7CiAgICAgICAgIGlmIChtX2dlc3R1cmVB
bmltYXRpb24tPmFuaW1hdGUobW9ub3RvbmljRnJhbWVCZWdpblRpbWUpKQpAQCAtMTg1MiwxMyAr
MTgzNSwxNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25v
dG9uaWNGcmFtZUJlZ2luVGltZSkKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuOwog
CisgICAgUGFnZVdpZGdldERlbGVnYXRlOjphbmltYXRlKG1fcGFnZS5nZXQoKSwgbW9ub3Rvbmlj
RnJhbWVCZWdpblRpbWUpOworCiAgICAgaWYgKG1fY29udGludW91c1BhaW50aW5nRW5hYmxlZCkg
ewogICAgICAgICBDb250aW51b3VzUGFpbnRlcjo6c2V0TmVlZHNEaXNwbGF5UmVjdXJzaXZlKG1f
cm9vdEdyYXBoaWNzTGF5ZXIsIG1fcGFnZU92ZXJsYXlzLmdldCgpKTsKICAgICAgICAgbV9jbGll
bnQtPnNjaGVkdWxlQW5pbWF0aW9uKCk7CiAgICAgfQorfQogCi0gICAgUGFnZVdpZGdldERlbGVn
YXRlOjphbmltYXRlKG1fcGFnZS5nZXQoKSwgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwotI2Vu
ZGlmCit2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNG
cmFtZUJlZ2luVGltZSkKK3sKKyAgICBhbmltYXRlKG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsK
IH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6bGF5b3V0KCkKQEAgLTE5NjQsMjEgKzE5NTEsNiBAQCB2
b2lkIFdlYlZpZXdJbXBsOjp0aGVtZUNoYW5nZWQoKQogICAgIHZpZXctPmludmFsaWRhdGVSZWN0
KGRhbWFnZWRSZWN0KTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6Y29tcG9zaXRlKGJvb2wpCi17
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmIChQbGF0Zm9ybTo6Y3Vy
cmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5pc1RocmVhZGluZ0VuYWJsZWQoKSkKLSAgICAg
ICAgbV9sYXllclRyZWVWaWV3LT5zZXROZWVkc1JlZHJhdygpOwotICAgIGVsc2UgewotICAgICAg
ICBBU1NFUlQoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpOwotICAgICAgICBpZiAo
IXBhZ2UoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX2xheWVyVHJlZVZpZXct
PmNvbXBvc2l0ZSgpOwotICAgIH0KLSNlbmRpZgotfQotCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRO
ZWVkc1JlZHJhdygpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAtNDIx
OSwxMSArNDE5MSw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKIAogI2VuZGlmCiAKLVdlYkNvbXBvc2l0b3JPdXRwdXRT
dXJmYWNlKiBXZWJWaWV3SW1wbDo6Y3JlYXRlT3V0cHV0U3VyZmFjZSgpCi17Ci0gICAgcmV0dXJu
IG1fY2xpZW50LT5jcmVhdGVPdXRwdXRTdXJmYWNlKCk7Ci19Ci0KIFdlYklucHV0SGFuZGxlciog
V2ViVmlld0ltcGw6OmNyZWF0ZUlucHV0SGFuZGxlcigpCiB7CiAgICAgV2ViQ29tcG9zaXRvcklu
cHV0SGFuZGxlckltcGwqIGhhbmRsZXIgPSBuZXcgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGwoKTsKQEAgLTQyNjIsMjggKzQyMjksMjQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlTY3Jv
bGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWwKIAog
dm9pZCBXZWJWaWV3SW1wbDo6ZGlkUmVjcmVhdGVPdXRwdXRTdXJmYWNlKGJvb2wgc3VjY2VzcykK
IHsKLSAgICAvLyBTd2l0Y2ggYmFjayB0byBzb2Z0d2FyZSByZW5kZXJpbmcgbW9kZSwgaWYgbmVj
ZXNzYXJ5Ci0gICAgaWYgKCFzdWNjZXNzKSB7Ci0gICAgICAgIEFTU0VSVChtX2lzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0FjdGl2ZSk7Ci0gICAgICAgIHNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0FjdGl2ZShmYWxzZSk7Ci0gICAgICAgIG1fY29tcG9zaXRvckNyZWF0aW9uRmFpbGVkID0gdHJ1
ZTsKLSAgICAgICAgbV9jbGllbnQtPmRpZEludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgbV9z
aXplLndpZHRoLCBtX3NpemUuaGVpZ2h0KSk7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICBk
aWRFeGl0Q29tcG9zaXRpbmdNb2RlKCk7Cit9CiAKLSAgICAgICAgLy8gRm9yY2UgYSBzdHlsZSBy
ZWNhbGMgdG8gcmVtb3ZlIGFsbCB0aGUgY29tcG9zaXRlZCBsYXllcnMuCi0gICAgICAgIG1fcGFn
ZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMoKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KK3ZvaWQgV2ViVmlld0ltcGw6OmRpZEV4aXRDb21wb3Np
dGluZ01vZGUoKQoreworICAgIEFTU0VSVChtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2
ZSk7CisgICAgc2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGZhbHNlKTsKKyAgICBt
X2NvbXBvc2l0b3JDcmVhdGlvbkZhaWxlZCA9IHRydWU7CisgICAgbV9jbGllbnQtPmRpZEludmFs
aWRhdGVSZWN0KEludFJlY3QoMCwgMCwgbV9zaXplLndpZHRoLCBtX3NpemUuaGVpZ2h0KSk7CisK
KyAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2FsYyB0byByZW1vdmUgYWxsIHRoZSBjb21wb3NpdGVk
IGxheWVycy4KKyAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT5zY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKCk7CiAKICAgICBpZiAobV9wYWdlT3ZlcmxheXMpCiAgICAgICAgIG1f
cGFnZU92ZXJsYXlzLT51cGRhdGUoKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c2NoZWR1bGVD
b21wb3NpdGUoKQotewotICAgIEFTU0VSVCghUGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRv
clN1cHBvcnQoKS0+aXNUaHJlYWRpbmdFbmFibGVkKCkpOwotICAgIG1fY2xpZW50LT5zY2hlZHVs
ZUNvbXBvc2l0ZSgpOwotfQotCiB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVMYXllclRyZWVWaWV3
cG9ydCgpCiB7CiAgICAgaWYgKCFwYWdlKCkgfHwgIW1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
IHx8ICFtX2xheWVyVHJlZVZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAppbmRleCBjNDVkY2ZhYWU1ZjBjYzNkMzVlYzVmMWQxNDFhYjAyMmU2YzYwNmQ5Li5lYjdm
NzFlYzlhNDE2MjQyZjExNjMzMjI0MzYxYWZjMjI4NjU5YmEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTE0NCwxNSArMTQ0LDE2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgd2lsbEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoZG91YmxlKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7IC8vIEFsc28gaW1wbGVtZW50cyBXZWJMYXllclRyZWVW
aWV3Q2xpZW50OjpsYXlvdXQoKQorICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKICAgICB2aXJ0
dWFsIHZvaWQgZW50ZXJGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZSkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmLCBQYWlu
dE9wdGlvbnMgPSBSZWFkYmFja0Zyb21Db21wb3NpdG9ySWZBdmFpbGFibGUpOwogICAgIHZpcnR1
YWwgYm9vbCBpc1RyYWNraW5nUmVwYWludHMoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgdGhlbWVDaGFuZ2VkKCk7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0ZShib29sIGZp
bmlzaCk7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3KCk7CiAgICAgdmlydHVhbCBi
b29sIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYpOwogICAgIHZpcnR1YWwg
Ym9vbCBoYXNUb3VjaEV2ZW50SGFuZGxlcnNBdChjb25zdCBXZWJQb2ludCYpOworICAgIHZpcnR1
YWwgV2ViSW5wdXRIYW5kbGVyKiBjcmVhdGVJbnB1dEhhbmRsZXIoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiwgZmxvYXQpOwog
ICAgIHZpcnR1YWwgdm9pZCBtb3VzZUNhcHR1cmVMb3N0KCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEZvY3VzKGJvb2wgZW5hYmxlKTsKICAgICB2aXJ0dWFsIGJvb2wgc2V0Q29tcG9zaXRpb24oCkBA
IC0xODEsNiArMTgyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBY3F1aXJl
UG9pbnRlckxvY2soKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVdpbmRvd1Jlc2l6ZXJSZWN0KCk7CisgICAgdmlydHVh
bCB2b2lkIGRpZEV4aXRDb21wb3NpdGluZ01vZGUoKTsKIAogICAgIC8vIFdlYlZpZXcgbWV0aG9k
czoKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZU1haW5GcmFtZShXZWJGcmFtZUNsaWVudCop
OwpAQCAtMzE2LDE0ICszMTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRp
bnVvdXNQYWludGluZ0VuYWJsZWQoYm9vbCk7CiAKICAgICAvLyBXZWJMYXllclRyZWVWaWV3Q2xp
ZW50Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxCZWdpbkZyYW1lKCk7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZEJlZ2luRnJhbWUoKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3Vi
bGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9s
bEFuZFNjYWxlKGNvbnN0IFdlYlNpemUmLCBmbG9hdCk7Ci0gICAgdmlydHVhbCBXZWJDb21wb3Np
dG9yT3V0cHV0U3VyZmFjZSogY3JlYXRlT3V0cHV0U3VyZmFjZSgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UoYm9vbCBzdWNjZXNzKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIFdlYklucHV0SGFuZGxlciogY3JlYXRlSW5wdXRIYW5kbGVyKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRlKCk7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY3JlYXRlT3V0cHV0U3VyZmFjZShib29sIHN1Y2Nlc3MpOwogCiAgICAgLy8g
V2ViVmlld0ltcGwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9H
cmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggMjY0MTJhNTc3MzlkNWYwZDA0
ZjU2ODEwNmMyZThjZTAyZWY5Yzk1Ni4uMGZiZTVkNzkwYTAxYzk5N2QyYTdjNDA3MzA3NGRhZTg5
OTBiM2QyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9HcmFwaGlj
c0xheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC0zMiw5ICszMiw5IEBACiAjaW5jbHVk
ZSAiUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEu
aCIKICNpbmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKLSNpbmNsdWRlICJX
ZWJMYXllclRyZWVWaWV3VGVzdENvbW1vbi5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAj
aW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0
b3JTdXBwb3J0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkZsb2F0QW5pbWF0aW9uQ3VydmUuaD4K
ICNpbmNsdWRlIDxwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaD4KICNpbmNsdWRlIDxwdWJs
aWMvV2ViTGF5ZXJUcmVlVmlldy5oPgpAQCAtODUsNyArODUsNiBAQCBwcm90ZWN0ZWQ6CiAgICAg
T3duUHRyPEdyYXBoaWNzTGF5ZXJDaHJvbWl1bT4gbV9ncmFwaGljc0xheWVyOwogCiBwcml2YXRl
OgotICAgIE1vY2tXZWJMYXllclRyZWVWaWV3Q2xpZW50IG1fbGF5ZXJUcmVlVmlld0NsaWVudDsK
ICAgICBPd25QdHI8V2ViTGF5ZXJUcmVlVmlldz4gbV9sYXllclRyZWVWaWV3OwogICAgIE1vY2tH
cmFwaGljc0xheWVyQ2xpZW50IG1fY2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bVRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVt
VGVzdC5jcHAKaW5kZXggOGRkMjU1YzhlMjY5MzFjZjM3M2VhNWFmNDM4MWY5YmY2YWJkZTg5MS4u
OTg2MDFiZTdlYTcyNWYxZGJjMzcxMzc2YmE4YzQzZWQwZDZlMWJlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtVGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGlu
YXRvckNocm9taXVtVGVzdC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIHsKIAogY2xh
c3MgRmFrZVdlYlZpZXdDbGllbnQgOiBwdWJsaWMgV2ViVmlld0NsaWVudCB7CiBwdWJsaWM6Ci0g
ICAgdmlydHVhbCBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSogY3JlYXRlT3V0cHV0U3VyZmFj
ZSgpIE9WRVJSSURFCisgICAgdmlydHVhbCBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSogY3Jl
YXRlT3V0cHV0U3VyZmFjZSgpCiAgICAgewogICAgICAgICByZXR1cm4gUGxhdGZvcm06OmN1cnJl
bnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+Y3JlYXRlT3V0cHV0U3VyZmFjZUZvcjNEKENvbXBv
c2l0b3JGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShXZWJHcmFwaGljc0NvbnRleHQz
RDo6QXR0cmlidXRlcygpKS5sZWFrUHRyKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThhNTZjOTY1OWY5NDlmZGY5ODA5ZTRhMGUxMmQy
NDM0OTYzMjdlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9u
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFdlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uX2gKLSNkZWZpbmUgV2ViTGF5ZXJUcmVlVmlld1Rl
c3RDb21tb25faAotCi0jaW5jbHVkZSAiQ29tcG9zaXRvckZha2VXZWJHcmFwaGljc0NvbnRleHQz
RC5oIgotI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+Ci0jaW5jbHVkZSA8cHVibGljL1BsYXRmb3Jt
Lmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0Lmg+Ci0jaW5jbHVkZSA8
cHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0K
LWNsYXNzIE1vY2tXZWJMYXllclRyZWVWaWV3Q2xpZW50IDogcHVibGljIFdlYkxheWVyVHJlZVZp
ZXdDbGllbnQgewotcHVibGljOgotICAgIE1PQ0tfTUVUSE9EMChzY2hlZHVsZUNvbXBvc2l0ZSwg
dm9pZCgpKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVC
ZWdpblRpbWUpIE9WRVJSSURFIHsgfQotICAgIE1PQ0tfTUVUSE9EMCh3aWxsQmVnaW5GcmFtZSwg
dm9pZCgpKTsKLSAgICBNT0NLX01FVEhPRDAoZGlkQmVnaW5GcmFtZSwgdm9pZCgpKTsKLSAgICB2
aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5
U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNjYWxlRmFj
dG9yKSBPVkVSUklERSB7IH0KLQotICAgIHZpcnR1YWwgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZh
Y2UqIGNyZWF0ZU91dHB1dFN1cmZhY2UoKSBPVkVSUklERQotICAgIHsKLSAgICAgICAgcmV0dXJu
IFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZU91dHB1dFN1
cmZhY2VGb3IzRChDb21wb3NpdG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoV2Vi
R3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMoKSkubGVha1B0cigpKTsKLSAgICB9Ci0gICAg
dmlydHVhbCB2b2lkIGRpZFJlY3JlYXRlT3V0cHV0U3VyZmFjZShib29sKSBPVkVSUklERSB7IH0K
LX07Ci0KLX0KLQotI2VuZGlmIC8vIFdlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190852</attachid>
            <date>2013-02-28 17:15:16 -0800</date>
            <delta_ts>2013-03-01 18:49:21 -0800</delta_ts>
            <desc>more fixups to ScrollingCoordinatorChromiumTest</desc>
            <filename>bug-109125-20130228171128.patch</filename>
            <type>text/plain</type>
            <size>29688</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhNzc5YmFkYmFmZjAz
YWIxNjc2YjdiNjA5ODE1MDFmMzVjMjkyY2ZhLi4wNDg4YjQ5NWJiNDdiZWJlMmViODU3MjAyNDQw
NTE0YzY3OGNjN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0wNiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gQ2xlYW4gdXAgV2ViV2lkZ2V0IC8gV2ViTGF5ZXJUcmVlVmlldyBpbnRlcmFjdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTEyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZGVwcmVj
YXRlcyBtb3N0IG9mIHRoZSBjYWxscyBvbiBXZWJMYXllclRyZWVWaWV3Q2xpZW50IHNpbmNlIHRo
ZXNlIGludGVyYWN0aW9ucyBhcmUgaGFuZGxlZAorICAgICAgICBlbnRpcmVseSBvbiB0aGUgZW1i
ZWRkZXIgc2lkZSBvZiB0aGUgaW50ZXJmYWNlIG5vdy4KKworICAgICAgICAqIGNocm9taXVtL3B1
YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg6CisgICAgICAgIChXZWJMYXllclRyZWVWaWV3KToKKyAg
ICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oOgorICAgICAg
ICAoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJl
ZVZpZXdDbGllbnQ6OndpbGxCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJU
cmVlVmlld0NsaWVudDo6ZGlkQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVy
VHJlZVZpZXdDbGllbnQ6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMYXllclRyZWVWaWV3Q2xpZW50OjpsYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXll
clRyZWVWaWV3Q2xpZW50OjpkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50OjpjcmVhdGVJbnB1dEhhbmRsZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50OjpjcmVhdGVPdXRwdXRTdXJmYWNlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0NsaWVudDo6d2lsbENvbW1pdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbW1pdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbW1pdEFuZERyYXdGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbXBsZXRl
U3dhcEJ1ZmZlcnMpOgorCiAyMDEzLTAyLTI2ICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+
CiAKICAgICAgICAgRVhUX2RyYXdfYnVmZmVycyBuZWVkcyBpbXBsZW1lbnRhdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCAyZjUzMWQ2ZDIzYzA1NjIzNzc3MzBkYTI3YjQ4YmYwNjhk
NDk5MmQ3Li4zMmQzOGJiY2RjOWZhZTkwM2JmNzE4ZGNiODg5OGQ2OWNjNGFlZjk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTAyLTA2ICBKYW1lcyBS
b2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBDbGVh
biB1cCBXZWJXaWRnZXQgLyBXZWJMYXllclRyZWVWaWV3IGludGVyYWN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MTI1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZW1vdmVzIG1vc3Qg
b2YgdGhlIGNvbXBvc2l0aW5nIGNvbnRyb2wgZmxvdyBsb2dpYyBmcm9tIFdlYlZpZXdJbXBsIHNp
bmNlCisgICAgICAgIGl0IGlzIG5vdyBoYW5kbGVkIGluIHRoZSBlbWJlZGRpbmcgbGF5ZXIgKGJ5
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBXZWJWaWV3Q2xpZW50L1dlYldpZGdldENsaWVudCkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJX
aWRnZXQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6
YW5pbWF0ZSk6CisgICAgICAgIChXZWJXaWRnZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRn
ZXQ6OmRpZEV4aXRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6
OmNyZWF0ZUlucHV0SGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6YXBwbHlT
Y3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aW5zdHJ1bWVudEJl
Z2luRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6Omluc3RydW1lbnRXaWxsQmVn
aW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aW5zdHJ1bWVudERpZENhbmNl
bEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0OjppbnN0cnVtZW50RGlkQmVnaW5G
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aW5zdHJ1bWVudFdpbGxDb21wb3Np
dGUpOgorICAgICAgICAqIHNyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcDoKKyAgICAgICAgKiBz
cmMvV2ViSGVscGVyUGx1Z2luSW1wbC5oOgorICAgICAgICAoV2ViSGVscGVyUGx1Z2luSW1wbCk6
CisgICAgICAgICogc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwOgorICAgICAgICAqIHNyYy9XZWJQ
YWdlUG9wdXBJbXBsLmg6CisgICAgICAgIChXZWJQYWdlUG9wdXBJbXBsKToKKyAgICAgICAgKiBz
cmMvV2ViUG9wdXBNZW51SW1wbC5jcHA6CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVudUltcGwu
aDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6aW5zdHJ1bWVudFdpbGxCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6Omluc3RydW1lbnREaWRCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6Omluc3RydW1lbnREaWRDYW5jZWxGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjppbnN0cnVtZW50V2lsbENvbXBvc2l0ZSk6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlQmF0dGVyeVN0YXR1cyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphbmltYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmRpZEV4aXRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5oOgorICAgICAgICAqIHRlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmg6Cisg
ICAgICAgIChNb2NrV2ViTGF5ZXJUcmVlVmlld0NsaWVudCk6CisKIDIwMTMtMDItMjggIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuICBSb2xsZWQgQ2hyb21pdW0gREVQUyB0byByMTg1MzQxLiAgUmVxdWVzdGVkIGJ5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcu
aCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCmlu
ZGV4IGQ1Mjg3MjkwY2YwZDgxYzI5NDMxYmMwZGVkYWI0OTE2NGE4YTNlZWYuLmU1ZmMwZWIwYTE4
YjU5YmUyOTI1YWQxNjg4M2RiODEwN2MxNjA0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCisrKyBiL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCkBAIC0xMzEsNyArMTMxLDcgQEAg
cHVibGljOgogCiAgICAgLy8gRmxvdyBjb250cm9sIGFuZCBzY2hlZHVsaW5nIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0gICAgLy8gUmVxdWVzdHMgYW4gdXBkYXRl
QW5pbWF0aW9ucygpIGNhbGwuCisgICAgLy8gSW5kaWNhdGVzIHRoYXQgYW4gYW5pbWF0aW9uIG5l
ZWRzIHRvIGJlIHVwZGF0ZWQuCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzQW5pbWF0ZSgpID0g
MDsKIAogICAgIC8vIEluZGljYXRlcyB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJlIHJlZHJhd24u
IFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQgd2hlbiB0aGUgZnJvbnRidWZmZXIgaXMgZGFtYWdlZC4K
QEAgLTE0MCwyMCArMTQwLDYgQEAgcHVibGljOgogICAgIC8vIEluZGljYXRlcyB3aGV0aGVyIGEg
Y29tbWl0IGlzIHBlbmRpbmcuCiAgICAgdmlydHVhbCBib29sIGNvbW1pdFJlcXVlc3RlZCgpIGNv
bnN0ID0gMDsKIAotICAgIC8vIFRyaWdnZXJzIGEgY29tcG9zaXRpbmcgcGFzcy4gSWYgdGhlIGNv
bXBvc2l0b3IgdGhyZWFkIHdhcyBub3QKLSAgICAvLyBlbmFibGVkIHZpYSBXZWJDb21wb3NpdG9y
U3VwcG9ydDo6aW5pdGlhbGl6ZSwgdGhlIGNvbXBvc2l0aW5nIHBhc3MgaGFwcGVucwotICAgIC8v
IGltbWVkaWF0ZWx5LiBJZiBpdCBpcyBlbmFibGVkLCB0aGUgY29tcG9zaXRpbmcgcGFzcyB3aWxs
IGhhcHBlbiBhdCBhCi0gICAgLy8gbGF0ZXIgdGltZS4gQmVmb3JlIHRoZSBjb21wb3NpdGluZyBw
YXNzIGhhcHBlbnMgKGkuZS4gYmVmb3JlIGNvbXBvc2l0ZSgpCi0gICAgLy8gcmV0dXJucyB3aGVu
IHRoZSBjb21wb3NpdG9yIHRocmVhZCBpcyBkaXNhYmxlZCksIFdlYkNvbnRlbnRMYXllcnMgd2ls
bCBiZQotICAgIC8vIGFza2VkIHRvIHBhaW50IHRoZWlyIGRpcnR5IHJlZ2lvbiwgdGhyb3VnaAot
ICAgIC8vIFdlYkNvbnRlbnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cy4KLSAgICB2aXJ0dWFs
IHZvaWQgY29tcG9zaXRlKCkgPSAwOwotCi0gICAgLy8gSW1tZWRpYXRlbHkgdXBkYXRlIGFuaW1h
dGlvbnMuIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIGZyYW1lIHNjaGVkdWxpbmcgaXMg
aGFuZGxlZCBieQotICAgIC8vIHRoZSBXZWJMYXllclRyZWVWaWV3IHVzZXIgYW5kIG5vdCBpbnRl
cm5hbGx5IGJ5IHRoZSBjb21wb3NpdG9yLCBtZWFuaW5nIG9ubHkgaW4gc2luZ2xlLXRocmVhZGVk
Ci0gICAgLy8gbW9kZS4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUg
ZnJhbWVCZWdpblRpbWUpID0gMDsKLQogICAgIC8vIFJlbGF5cyB0aGUgZW5kIG9mIGEgZmxpbmcg
YW5pbWF0aW9uLgogICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wRmxpbmdpbmcoKSB7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3
Q2xpZW50LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZp
ZXdDbGllbnQuaAppbmRleCBhZGE1ODljMWNkNTYyMjM5MGM4YWQyYzM3MDg3NWJiMzVhNWY5ZjE5
Li5lNGI5NGIwYWMyYjlkMTA1NWY3ZTZkMWNhODJhMTE2MWY1ZjgxMTc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAor
KysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGll
bnQuaApAQCAtMzcsNDQgKzM3LDEyIEBAIHN0cnVjdCBXZWJTaXplOwogCiBjbGFzcyBXZWJMYXll
clRyZWVWaWV3Q2xpZW50IHsKIHB1YmxpYzoKLSAgICAvLyBJbmRpY2F0ZXMgdG8gdGhlIGVtYmVk
ZGVyIHRoYXQgdGhlIGNvbXBvc2l0b3IgaXMgYWJvdXQgdG8gYmVnaW4gYQotICAgIC8vIGZyYW1l
LiBUaGlzIGlzIGlzIGEgc2lnbmFsIHRvIGZsb3cgY29udHJvbCBtZWNoYW5pc21zIHRoYXQgYSBm
cmFtZSBpcwotICAgIC8vIGJlZ2lubmluZy4gVGhpcyBjYWxsIHdpbGwgYmUgZm9sbG93ZWQgYnkg
dXBkYXRlQW5pbWF0aW9ucyBhbmQgdGhlbgotICAgIC8vIGxheW91dCwgd2hpY2ggc2hvdWxkIGJl
IHVzZWQgZm9yIGFjdHVhbCBhbmltYXRpb24gb3IgdHJlZSBtYW5pcHVsYXRpb24KLSAgICAvLyB0
YXNrcy4gIEZJWE1FOiBtYWtlIHB1cmUgdmlydHVhbCBvbmNlIHVwc3RyZWFtIGRlcHMgYXJlIHNh
dGlzZmllZC4KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWUoKSB7IH0KLQotICAgIC8v
IEluZGljYXRlcyB0aGF0IG1haW4gdGhyZWFkIHRhc2tzIGFzc29jaWF0ZWQgd2l0aCBmcmFtZSBy
ZW5kZXJpbmcgaGF2ZSBjb21wbGV0ZWQuCi0gICAgLy8gSXNzdWVkIHVuY29uZGl0aW9uYWxseSwg
ZXZlbiBpZiB0aGUgY29udGV4dCB3YXMgbG9zdCBpbiB0aGUgcHJvY2Vzcy4KLSAgICB2aXJ0dWFs
IHZvaWQgZGlkQmVnaW5GcmFtZSgpIHsgfQotCi0gICAgLy8gVXBkYXRlcyBhbmltYXRpb24gYW5k
IGxheW91dC4gVGhlc2UgYXJlIGNhbGxlZCBiZWZvcmUgdGhlIGNvbXBvc2l0aW5nCi0gICAgLy8g
cGFzcyBzbyB0aGF0IGxheWVycyBjYW4gYmUgdXBkYXRlZCBhdCB0aGUgZ2l2ZW4gZnJhbWUgdGlt
ZS4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljRnJh
bWVCZWdpblRpbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgPSAwOwotCi0gICAg
Ly8gQXBwbGllcyBhIHNjcm9sbCBkZWx0YSB0byB0aGUgcm9vdCBsYXllciwgd2hpY2ggaXMgYnVu
ZGxlZCB3aXRoIGEgcGFnZQotICAgIC8vIHNjYWxlIGZhY3RvciB0aGF0IG1heSBhcHBseSBhIENT
UyB0cmFuc2Zvcm0gb24gdGhlIHdob2xlIGRvY3VtZW50ICh1c2VkCi0gICAgLy8gZm9yIG1vYmls
ZS1kZXZpY2UgcGluY2ggem9vbWluZykuIFRoaXMgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBzZW50
IHRvIHRoZQotICAgIC8vIGNvbXBvc2l0b3IgdGhyZWFkIHRocm91Z2ggdGhlIFdlYkNvbXBvc2l0
b3IgaW50ZXJmYWNlLgotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0
IFdlYlNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZUZhY3RvcikgPSAwOwotCi0gICAgLy8g
Q3JlYXRlcyB0aGUgb3V0cHV0IHN1cmZhY2UuIFRoaXMgbWF5IGJlIGNhbGxlZCBtb3JlIHRoYW4g
b25jZQotICAgIC8vIGlmIHRoZSBjb250ZXh0IGdldHMgbG9zdC4KLSAgICB2aXJ0dWFsIFdlYkNv
bXBvc2l0b3JPdXRwdXRTdXJmYWNlKiBjcmVhdGVPdXRwdXRTdXJmYWNlKCkgeyByZXR1cm4gMDsg
fQotCi0gICAgLy8gU2lnbmFscyBhIHN1Y2Nlc3NmdWwgcmVjcmVhdGlvbiBvZiB0aGUgb3V0cHV0
IHN1cmZhY2UgKGUuZy4gYWZ0ZXIgYSBsb3N0Ci0gICAgLy8gM0QgY29udGV4dCBldmVudCkuCisg
ICAgLy8gREVQUkVDQVRFRCAtIFdJTEwgQkUgUkVNT1ZFRCBTT09OCisgICAgdmlydHVhbCB2b2lk
IGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNj
YWxlRmFjdG9yKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUg
ZnJhbWVCZWdpblRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZU91dHB1dFN1
cmZhY2UoYm9vbCBzdWNjZXNzKSB7IH0KLQogICAgIHZpcnR1YWwgV2ViSW5wdXRIYW5kbGVyKiBj
cmVhdGVJbnB1dEhhbmRsZXIoKSB7IHJldHVybiAwOyB9CiAKLSAgICAvLyBTY2hlZHVsZXMgYSBj
b21wb3NpdGluZyBwYXNzLCBtZWFuaW5nIHRoZSBjbGllbnQgc2hvdWxkIGNhbGwKLSAgICAvLyBX
ZWJMYXllclRyZWVWaWV3Ojpjb21wb3NpdGUgYXQgYSBsYXRlciB0aW1lLiBUaGlzIGlzIG9ubHkg
Y2FsbGVkIGlmIHRoZQotICAgIC8vIGNvbXBvc2l0b3IgdGhyZWFkIGlzIGRpc2FibGVkOyB3aGVu
IGVuYWJsZWQsIHRoZSBjb21wb3NpdG9yIHdpbGwKLSAgICAvLyBpbnRlcm5hbGx5IHNjaGVkdWxl
IGEgY29tcG9zaXRpbmcgcGFzcyB3aGVuIG5lZWRlZC4KLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVDb21wb3NpdGUoKSA9IDA7Ci0KIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5XZWJMYXllclRy
ZWVWaWV3Q2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVmlld0NsaWVudC5oCmluZGV4IDM4YzY2ZGZlODlmOTNmYTg4ZTE4ZDUwNjgwODQ1NjE2NmMw
MjY3MzMuLmU0NDZlMmE2OTNmOTFhMTcxYzVlMmM5M2YzMDE4NjQwZDhkNTVlMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTEyMywxMSAr
MTIzLDYgQEAgcHVibGljOgogICAgIC8vIENyZWF0ZSBhIHNlc3Npb24gc3RvcmFnZSBuYW1lc3Bh
Y2Ugb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIFdlYlZpZXcuCiAgICAgdmlydHVhbCBXZWJT
dG9yYWdlTmFtZXNwYWNlKiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBx
dW90YSkgeyByZXR1cm4gMDsgfQogCi0gICAgLy8gREVQUkVDQVRFRDogQ3JlYXRlcyBhIGdyYXBo
aWNzIGNvbnRleHQgdGhhdCByZW5kZXJzIHRvIHRoZSBjbGllbnQncyBXZWJWaWV3LgotICAgIHZp
cnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKGNvbnN0
IFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzJikgeyByZXR1cm4gMDsgfQotCi0gICAg
Ly8gQ3JlYXRlcyB0aGUgb3V0cHV0IHN1cmZhY2UgdGhhdCByZW5kZXJzIHRvIHRoZSBjbGllbnQn
cyBXZWJWaWV3LgotICAgIHZpcnR1YWwgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UqIGNyZWF0
ZU91dHB1dFN1cmZhY2UoKSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBNaXNjIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAppbmRleCBkY2MxOTIxNzRk
YjBhNWE4NjVmZGUyZDc3N2JlZmExYjkwNTQ2MTRmLi45MTUzZDIyNzVlZDZkMGJhYmNhZmVlMWM2
NWFiNzgzOTY5ZWIzNjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJXaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRn
ZXQuaApAQCAtNDIsNiArNDIsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYklu
cHV0RXZlbnQ7CitjbGFzcyBXZWJJbnB1dEhhbmRsZXI7CiBjbGFzcyBXZWJMYXllclRyZWVWaWV3
OwogY2xhc3MgV2ViTW91c2VFdmVudDsKIGNsYXNzIFdlYlN0cmluZzsKQEAgLTgwLDcgKzgxLDcg
QEAgcHVibGljOgogCiAgICAgLy8gQ2FsbGVkIHRvIHVwZGF0ZSBpbXBlcmF0aXZlIGFuaW1hdGlv
biBzdGF0ZS4gVGhpcyBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZQogICAgIC8vIHBhaW50LCBhbHRo
b3VnaCB0aGUgY2xpZW50IGNhbiByYXRlLWxpbWl0IHRoZXNlIGNhbGxzLgotICAgIHZpcnR1YWwg
dm9pZCBhbmltYXRlKGRvdWJsZSBpZ25vcmVkKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0
ZShkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpIHsgfQogCiAgICAgLy8gQ2FsbGVkIHRv
IGxheW91dCB0aGUgV2ViV2lkZ2V0LiBUaGlzIE1VU1QgYmUgY2FsbGVkIGJlZm9yZSBQYWludCwK
ICAgICAvLyBhbmQgaXQgbWF5IHJlc3VsdCBpbiBjYWxscyB0byBXZWJXaWRnZXRDbGllbnQ6OmRp
ZEludmFsaWRhdGVSZWN0LgpAQCAtOTAsNiArOTEsMTAgQEAgcHVibGljOgogICAgIC8vIHNob3Vs
ZCBiZSBjYWxsZWQgYmVmb3JlIHBhaW50LgogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZvcmNlQ29t
cG9zaXRpbmdNb2RlKGJvb2wgZW50ZXIpIHsgfQogCisgICAgLy8gQ2FsbGVkIHRvIG5vdGlmeSB0
aGUgV2ViV2lkZ2V0IHRoYXQgdGhlIHdpZGdldCBoYXMgZXhpdGVkIGNvbXBvc2l0aW5nCisgICAg
Ly8gbW9kZSBhbmQgY2Fubm90IHJlZW50ZXIuCisgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRDb21w
b3NpdGluZ01vZGUoKSB7IH0KKwogICAgIGVudW0gUGFpbnRPcHRpb25zIHsKICAgICAgICAgLy8g
QXR0ZW1wdCB0byBmdWxmaWxsIHRoZSBwYWludGluZyByZXF1ZXN0IGJ5IHJlYWRpbmcgYmFjayBm
cm9tIHRoZQogICAgICAgICAvLyBjb21wb3NpdG9yLCBhc3N1bWluZyB3ZSdyZSB1c2luZyBhIGNv
bXBvc2l0b3IgdG8gcmVuZGVyLgpAQCAtMTE0LDE2ICsxMTksNiBAQCBwdWJsaWM6CiAgICAgLy8g
d2FycmFudGVkIGJlZm9yZSBwYWludGluZyBhZ2FpbikuCiAgICAgdmlydHVhbCB2b2lkIHBhaW50
KFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmIHZpZXdQb3J0LCBQYWludE9wdGlvbnMgPSBSZWFk
YmFja0Zyb21Db21wb3NpdG9ySWZBdmFpbGFibGUpIHsgfQogCi0gICAgLy8gSW4gbm9uLXRocmVh
ZGVkIGNvbXBvc2l0aW5nIG1vZGUsIHRyaWdnZXJzIGNvbXBvc2l0aW5nIG9mIHRoZSBjdXJyZW50
Ci0gICAgLy8gbGF5ZXJzIG9udG8gdGhlIHNjcmVlbi4gWW91IE1VU1QgY2FsbCBMYXlvdXQgYmVm
b3JlIGNhbGxpbmcgdGhpcyBtZXRob2QsCi0gICAgLy8gZm9yIHRoZSBzYW1lIHJlYXNvbnMgZGVz
Y3JpYmVkIGluIHRoZSBwYWludCBtZXRob2QgYWJvdmUKLSAgICAvLwotICAgIC8vIEluIHRocmVh
ZGVkIGNvbXBvc2l0aW5nIG1vZGUsIGluZGljYXRlcyB0aGF0IHRoZSB3aWRnZXQgc2hvdWxkIHVw
ZGF0ZQotICAgIC8vIGl0c2VsZiwgZm9yIGV4YW1wbGUgZHVlIHRvIHdpbmRvdyBkYW1hZ2UuIFRo
ZSByZWRyYXcgd2lsbCBiZWdpbgotICAgIC8vIGFzeW5jaHJvbm91c2x5IGFuZCBwZXJmb3JtIGxh
eW91dCBhbmQgYW5pbWF0aW9uIGludGVybmFsbHkuIERvIG5vdCBjYWxsCi0gICAgLy8gYW5pbWF0
ZSBvciBsYXlvdXQgaW4gdGhpcyBjYXNlLgotICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9v
bCBmaW5pc2gpID0gMDsKLQogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB3ZSd2ZSBzdGFydGVkIHRy
YWNraW5nIHJlcGFpbnQgcmVjdGFuZ2xlcy4KICAgICB2aXJ0dWFsIGJvb2wgaXNUcmFja2luZ1Jl
cGFpbnRzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApAQCAtMTQ4LDYgKzE0MywxNiBAQCBw
dWJsaWM6CiAgICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gcG9pbnQgaGl0cyBhbnkgcmVn
aXN0ZXJlZCB0b3VjaCBldmVudCBoYW5kbGVycy4KICAgICB2aXJ0dWFsIGJvb2wgaGFzVG91Y2hF
dmVudEhhbmRsZXJzQXQoY29uc3QgV2ViUG9pbnQmKSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICAv
LyBSZXF1ZXN0IHRoYXQgdGhlIFdlYldpZGdldCBjcmVhdGUgYW4gaW5wdXQgaGFuZGxlciBmb3Ig
cHJvY2Vzc2luZyBpbnB1dAorICAgIC8vIGV2ZW50cyBpbnRlbmRlZCBmb3IgdGhpcyB3aWRnZXQg
b2ZmIG9mIHRoZSBtYWluIHRocmVhZC4KKyAgICB2aXJ0dWFsIFdlYklucHV0SGFuZGxlciogY3Jl
YXRlSW5wdXRIYW5kbGVyKCkgeyByZXR1cm4gMDsgfQorCisgICAgLy8gQXBwbGllcyBhIHNjcm9s
bCBkZWx0YSB0byB0aGUgcm9vdCBsYXllciwgd2hpY2ggaXMgYnVuZGxlZCB3aXRoIGEgcGFnZQor
ICAgIC8vIHNjYWxlIGZhY3RvciB0aGF0IG1heSBhcHBseSBhIENTUyB0cmFuc2Zvcm0gb24gdGhl
IHdob2xlIGRvY3VtZW50ICh1c2VkCisgICAgLy8gZm9yIG1vYmlsZS1kZXZpY2UgcGluY2ggem9v
bWluZykuIFRoaXMgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBzZW50IHRvIHRoZQorICAgIC8vIGNv
bXBvc2l0b3IgdGhyZWFkIHRocm91Z2ggdGhlIFdlYklucHV0SGFuZGxlciBpbnRlcmZhY2UuCisg
ICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xs
RGVsdGEsIGZsb2F0IHNjYWxlRmFjdG9yKSB7IH0KKwogICAgIC8vIENhbGxlZCB0byBpbmZvcm0g
dGhlIFdlYldpZGdldCB0aGF0IG1vdXNlIGNhcHR1cmUgd2FzIGxvc3QuCiAgICAgdmlydHVhbCB2
b2lkIG1vdXNlQ2FwdHVyZUxvc3QoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJXaWRnZXRDbGllbnQuaAppbmRleCA0OGZlNTg4MzVjNTE5ODU4MTNmODI2YmNj
OGIxOTU1ODlmMzA0MjRkLi5iZjU5MzU0MTQ5ZjBjMDFkNmY1YzUzOWEzNTY3NWZiNmIyNDMyYjk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGllbnQu
aApAQCAtMTAxLDkgKzEwMSw2IEBAIHB1YmxpYzoKICAgICAvLyBwcm9jZXNzLgogICAgIHZpcnR1
YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCkgeyB9CiAKLSAgICAvLyBDYWxsZWQgd2hl
biBhIGNhbGwgdG8gV2ViV2lkZ2V0Ojpjb21wb3NpdGUgaXMgcmVxdWlyZWQKLSAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVDb21wb3NpdGUoKSB7IH0KLQogICAgIC8vIENhbGxlZCB3aGVuIGEgY2Fs
bCB0byBXZWJXaWRnZXQ6OmFuaW1hdGUgaXMgcmVxdWlyZWQKICAgICB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVBbmltYXRpb24oKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSGVscGVyUGx1Z2luSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcAppbmRleCA5YWY3OTRjNzA3OWE3YzU5OGQ5MjZhYzBl
Yzk5OWRiODQ0Yzg4ZmU1Li41ZGVlMDhjOTFlZDgwYzUxMTZmMzY4YjM1NzkzMjgwNmFiYThlY2Zi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5J
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5J
bXBsLmNwcApAQCAtMjEyLDE0ICsyMTIsNiBAQCB2b2lkIFdlYkhlbHBlclBsdWdpbkltcGw6OmRl
c3RvcnlQYWdlKCkKICAgICBtX3BhZ2UuY2xlYXIoKTsKIH0KIAotdm9pZCBXZWJIZWxwZXJQbHVn
aW5JbXBsOjpzZXRDb21wb3NpdG9yU3VyZmFjZVJlYWR5KCkKLXsKLX0KLQotdm9pZCBXZWJIZWxw
ZXJQbHVnaW5JbXBsOjpjb21wb3NpdGUoYm9vbCkKLXsKLX0KLQogdm9pZCBXZWJIZWxwZXJQbHVn
aW5JbXBsOjpsYXlvdXQoKQogewogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6bGF5b3V0KG1fcGFn
ZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxw
ZXJQbHVnaW5JbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVn
aW5JbXBsLmgKaW5kZXggYzZhNzIxYzc0MGIxNmRhMTg4NGQwYzNmOTk3MTg3YjNiOWMwMmExMS4u
NWUxNjUyYjU5MmFhMGM3OGY0NDM1ZDE4ZGNkZTY3ZWI4MGE0YzcyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSGVscGVyUGx1Z2luSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhlbHBlclBsdWdpbkltcGwuaApAQCAtNjcsOCArNjcs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVzdG9yeVBhZ2UoKTsKIAogICAgIC8vIFdlYldpZGdl
dCBtZXRob2RzOgotICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wb3NpdG9yU3VyZmFjZVJlYWR5KCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0ZShib29sKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldEZv
Y3VzKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIE9WRVJSSURFOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcAppbmRl
eCBlY2JkYTM3OThjYThlMDlhNGQ3ZGNkZjM0NTc0NWJhMDk3NzYxNTdlLi41YTY3ZjQxYjhmZDQw
MjA1OWQ2MWQxNGJmMDU4NjY4N2I0NzFmMDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcApAQCAtMjQ2LDE0ICsyNDYsNiBAQCB2b2lkIFdl
YlBhZ2VQb3B1cEltcGw6OmFuaW1hdGUoZG91YmxlKQogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6
YW5pbWF0ZShtX3BhZ2UuZ2V0KCksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKIH0K
IAotdm9pZCBXZWJQYWdlUG9wdXBJbXBsOjpzZXRDb21wb3NpdG9yU3VyZmFjZVJlYWR5KCkKLXsK
LX0KLQotdm9pZCBXZWJQYWdlUG9wdXBJbXBsOjpjb21wb3NpdGUoYm9vbCkKLXsKLX0KLQogdm9p
ZCBXZWJQYWdlUG9wdXBJbXBsOjpsYXlvdXQoKQogewogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6
bGF5b3V0KG1fcGFnZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJQYWdlUG9wdXBJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
YWdlUG9wdXBJbXBsLmgKaW5kZXggZmI5N2M3ZDAxZTUzZmFmY2M2YWY2Y2Q0NjVjOTU3N2YxYjI1
YWQzOC4uOGM4NzY3MjNhMGZhMTJjMTk3OWQxNmNlZTFkMTAwNmIxZDhiMDAxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuaApAQCAtNjksOCArNjks
NiBAQCBwcml2YXRlOgogICAgIC8vIFdlYldpZGdldCBmdW5jdGlvbnMKICAgICB2aXJ0dWFsIFdl
YlNpemUgc2l6ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbXBvc2l0b3JTdXJmYWNlUmVhZHkoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQo
V2ViQ2FudmFzKiwgY29uc3QgV2ViUmVjdCYsIFBhaW50T3B0aW9ucyA9IFJlYWRiYWNrRnJvbUNv
bXBvc2l0b3JJZkF2YWlsYWJsZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlc2l6ZShj
b25zdCBXZWJTaXplJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlBvcHVwTWVudUltcGwuY3BwCmluZGV4IDgzNDQ4NjNmYWNjZWQzODk5ZDc5OTZkMzViMGZk
YmYwNmIzMjU2NGYuLjk4NWEwM2ViMTMyNzMxNDc0OTRhOTAwZmFhYzcwY2IzYzUwMTQ5OTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCkBA
IC0yMTEsMTYgKzIxMSw2IEBAIHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6dGhlbWVDaGFuZ2VkKCkK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6OnNldENv
bXBvc2l0b3JTdXJmYWNlUmVhZHkoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZv
aWQgV2ViUG9wdXBNZW51SW1wbDo6Y29tcG9zaXRlKGJvb2wpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLX0KLQogYm9vbCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0
IFdlYklucHV0RXZlbnQmIGlucHV0RXZlbnQpCiB7CiAgICAgaWYgKCFtX3dpZGdldCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaAppbmRleCBjOWYwOGM0
YjIzYmQwMzk4M2E4ZGYwYzM1OGU5MTYwZTkyOGI5MjA4Li41OTIwODU1OTRmMzhmMTViNjZkNmNh
NDk4M2QyMDBhMjQ5YTBjMDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQb3B1cE1lbnVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UG9wdXBNZW51SW1wbC5oCkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgbGF5b3V0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNhbnZhcyos
IGNvbnN0IFdlYlJlY3QmLCBQYWludE9wdGlvbnMgPSBSZWFkYmFja0Zyb21Db21wb3NpdG9ySWZB
dmFpbGFibGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNoYW5nZWQoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcG9zaXRvclN1cmZhY2VSZWFkeSgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VDYXB0dXJlTG9zdCgpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sIGVuYWJsZSkgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNGUxM2ExZWNhZjExNDdm
ZWYyZTM4ZmMzNjJjYTBiMGExNzJlYTZhZS4uMDA0YjgyZTZhZjU5MzQ1YmUyNjVmYTg2OTc3MzI5
ZDg1NmQyMGY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cApAQCAtMTgxNiwyOCArMTgxNiwxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVCYXR0ZXJ5
U3RhdHVzKGNvbnN0IFdlYkJhdHRlcnlTdGF0dXMmIHN0YXR1cykKIAogdm9pZCBXZWJWaWV3SW1w
bDo6YW5pbWF0ZShkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpCiB7Ci0gICAgdXBkYXRl
QW5pbWF0aW9ucyhtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7Ci19Ci0KLXZvaWQgV2ViVmlld0lt
cGw6OndpbGxCZWdpbkZyYW1lKCkKLXsKLSAgICBtX2NsaWVudC0+d2lsbEJlZ2luQ29tcG9zaXRv
ckZyYW1lKCk7Ci19CisgICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiV2ViVmlld0ltcGw6OmFu
aW1hdGUiKTsKIAotdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQmVnaW5GcmFtZSgpCi17Ci0gICAgaWYg
KG1fZGV2VG9vbHNBZ2VudCkKLSAgICAgICAgbV9kZXZUb29sc0FnZW50LT5kaWRDb21wb3NpdGUo
KTsKLX0KLQotdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9ub3Rv
bmljRnJhbWVCZWdpblRpbWUpCi17CiAgICAgaWYgKCFtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkK
ICAgICAgICAgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKTsKIAotI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKLSAgICBUUkFD
RV9FVkVOVDAoIndlYmtpdCIsICJXZWJWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyIpOwotCiAg
ICAgLy8gQ3JlYXRlIHN5bnRoZXRpYyB3aGVlbCBldmVudHMgYXMgbmVjZXNzYXJ5IGZvciBmbGlu
Zy4KICAgICBpZiAobV9nZXN0dXJlQW5pbWF0aW9uKSB7CiAgICAgICAgIGlmIChtX2dlc3R1cmVB
bmltYXRpb24tPmFuaW1hdGUobW9ub3RvbmljRnJhbWVCZWdpblRpbWUpKQpAQCAtMTg1MiwxMyAr
MTgzNSwxNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25v
dG9uaWNGcmFtZUJlZ2luVGltZSkKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuOwog
CisgICAgUGFnZVdpZGdldERlbGVnYXRlOjphbmltYXRlKG1fcGFnZS5nZXQoKSwgbW9ub3Rvbmlj
RnJhbWVCZWdpblRpbWUpOworCiAgICAgaWYgKG1fY29udGludW91c1BhaW50aW5nRW5hYmxlZCkg
ewogICAgICAgICBDb250aW51b3VzUGFpbnRlcjo6c2V0TmVlZHNEaXNwbGF5UmVjdXJzaXZlKG1f
cm9vdEdyYXBoaWNzTGF5ZXIsIG1fcGFnZU92ZXJsYXlzLmdldCgpKTsKICAgICAgICAgbV9jbGll
bnQtPnNjaGVkdWxlQW5pbWF0aW9uKCk7CiAgICAgfQorfQogCi0gICAgUGFnZVdpZGdldERlbGVn
YXRlOjphbmltYXRlKG1fcGFnZS5nZXQoKSwgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwotI2Vu
ZGlmCit2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNG
cmFtZUJlZ2luVGltZSkKK3sKKyAgICBhbmltYXRlKG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsK
IH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6bGF5b3V0KCkKQEAgLTE5NjQsMjEgKzE5NTEsNiBAQCB2
b2lkIFdlYlZpZXdJbXBsOjp0aGVtZUNoYW5nZWQoKQogICAgIHZpZXctPmludmFsaWRhdGVSZWN0
KGRhbWFnZWRSZWN0KTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6Y29tcG9zaXRlKGJvb2wpCi17
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmIChQbGF0Zm9ybTo6Y3Vy
cmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5pc1RocmVhZGluZ0VuYWJsZWQoKSkKLSAgICAg
ICAgbV9sYXllclRyZWVWaWV3LT5zZXROZWVkc1JlZHJhdygpOwotICAgIGVsc2UgewotICAgICAg
ICBBU1NFUlQoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpOwotICAgICAgICBpZiAo
IXBhZ2UoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX2xheWVyVHJlZVZpZXct
PmNvbXBvc2l0ZSgpOwotICAgIH0KLSNlbmRpZgotfQotCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRO
ZWVkc1JlZHJhdygpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAtNDIx
OSwxMSArNDE5MSw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKIAogI2VuZGlmCiAKLVdlYkNvbXBvc2l0b3JPdXRwdXRT
dXJmYWNlKiBXZWJWaWV3SW1wbDo6Y3JlYXRlT3V0cHV0U3VyZmFjZSgpCi17Ci0gICAgcmV0dXJu
IG1fY2xpZW50LT5jcmVhdGVPdXRwdXRTdXJmYWNlKCk7Ci19Ci0KIFdlYklucHV0SGFuZGxlciog
V2ViVmlld0ltcGw6OmNyZWF0ZUlucHV0SGFuZGxlcigpCiB7CiAgICAgV2ViQ29tcG9zaXRvcklu
cHV0SGFuZGxlckltcGwqIGhhbmRsZXIgPSBuZXcgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGwoKTsKQEAgLTQyNjIsMjggKzQyMjksMjQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlTY3Jv
bGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWwKIAog
dm9pZCBXZWJWaWV3SW1wbDo6ZGlkUmVjcmVhdGVPdXRwdXRTdXJmYWNlKGJvb2wgc3VjY2VzcykK
IHsKLSAgICAvLyBTd2l0Y2ggYmFjayB0byBzb2Z0d2FyZSByZW5kZXJpbmcgbW9kZSwgaWYgbmVj
ZXNzYXJ5Ci0gICAgaWYgKCFzdWNjZXNzKSB7Ci0gICAgICAgIEFTU0VSVChtX2lzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0FjdGl2ZSk7Ci0gICAgICAgIHNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0FjdGl2ZShmYWxzZSk7Ci0gICAgICAgIG1fY29tcG9zaXRvckNyZWF0aW9uRmFpbGVkID0gdHJ1
ZTsKLSAgICAgICAgbV9jbGllbnQtPmRpZEludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgbV9z
aXplLndpZHRoLCBtX3NpemUuaGVpZ2h0KSk7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICBk
aWRFeGl0Q29tcG9zaXRpbmdNb2RlKCk7Cit9CiAKLSAgICAgICAgLy8gRm9yY2UgYSBzdHlsZSBy
ZWNhbGMgdG8gcmVtb3ZlIGFsbCB0aGUgY29tcG9zaXRlZCBsYXllcnMuCi0gICAgICAgIG1fcGFn
ZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMoKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KK3ZvaWQgV2ViVmlld0ltcGw6OmRpZEV4aXRDb21wb3Np
dGluZ01vZGUoKQoreworICAgIEFTU0VSVChtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2
ZSk7CisgICAgc2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGZhbHNlKTsKKyAgICBt
X2NvbXBvc2l0b3JDcmVhdGlvbkZhaWxlZCA9IHRydWU7CisgICAgbV9jbGllbnQtPmRpZEludmFs
aWRhdGVSZWN0KEludFJlY3QoMCwgMCwgbV9zaXplLndpZHRoLCBtX3NpemUuaGVpZ2h0KSk7CisK
KyAgICAvLyBGb3JjZSBhIHN0eWxlIHJlY2FsYyB0byByZW1vdmUgYWxsIHRoZSBjb21wb3NpdGVk
IGxheWVycy4KKyAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT5zY2hlZHVsZUZv
cmNlZFN0eWxlUmVjYWxjKCk7CiAKICAgICBpZiAobV9wYWdlT3ZlcmxheXMpCiAgICAgICAgIG1f
cGFnZU92ZXJsYXlzLT51cGRhdGUoKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c2NoZWR1bGVD
b21wb3NpdGUoKQotewotICAgIEFTU0VSVCghUGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRv
clN1cHBvcnQoKS0+aXNUaHJlYWRpbmdFbmFibGVkKCkpOwotICAgIG1fY2xpZW50LT5zY2hlZHVs
ZUNvbXBvc2l0ZSgpOwotfQotCiB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVMYXllclRyZWVWaWV3
cG9ydCgpCiB7CiAgICAgaWYgKCFwYWdlKCkgfHwgIW1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
IHx8ICFtX2xheWVyVHJlZVZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAppbmRleCBjNDVkY2ZhYWU1ZjBjYzNkMzVlYzVmMWQxNDFhYjAyMmU2YzYwNmQ5Li5lYjdm
NzFlYzlhNDE2MjQyZjExNjMzMjI0MzYxYWZjMjI4NjU5YmEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTE0NCwxNSArMTQ0LDE2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgd2lsbEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoZG91YmxlKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7IC8vIEFsc28gaW1wbGVtZW50cyBXZWJMYXllclRyZWVW
aWV3Q2xpZW50OjpsYXlvdXQoKQorICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKICAgICB2aXJ0
dWFsIHZvaWQgZW50ZXJGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZSkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmLCBQYWlu
dE9wdGlvbnMgPSBSZWFkYmFja0Zyb21Db21wb3NpdG9ySWZBdmFpbGFibGUpOwogICAgIHZpcnR1
YWwgYm9vbCBpc1RyYWNraW5nUmVwYWludHMoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgdGhlbWVDaGFuZ2VkKCk7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0ZShib29sIGZp
bmlzaCk7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3KCk7CiAgICAgdmlydHVhbCBi
b29sIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYpOwogICAgIHZpcnR1YWwg
Ym9vbCBoYXNUb3VjaEV2ZW50SGFuZGxlcnNBdChjb25zdCBXZWJQb2ludCYpOworICAgIHZpcnR1
YWwgV2ViSW5wdXRIYW5kbGVyKiBjcmVhdGVJbnB1dEhhbmRsZXIoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiwgZmxvYXQpOwog
ICAgIHZpcnR1YWwgdm9pZCBtb3VzZUNhcHR1cmVMb3N0KCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEZvY3VzKGJvb2wgZW5hYmxlKTsKICAgICB2aXJ0dWFsIGJvb2wgc2V0Q29tcG9zaXRpb24oCkBA
IC0xODEsNiArMTgyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBY3F1aXJl
UG9pbnRlckxvY2soKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVdpbmRvd1Jlc2l6ZXJSZWN0KCk7CisgICAgdmlydHVh
bCB2b2lkIGRpZEV4aXRDb21wb3NpdGluZ01vZGUoKTsKIAogICAgIC8vIFdlYlZpZXcgbWV0aG9k
czoKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZU1haW5GcmFtZShXZWJGcmFtZUNsaWVudCop
OwpAQCAtMzE2LDE0ICszMTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRp
bnVvdXNQYWludGluZ0VuYWJsZWQoYm9vbCk7CiAKICAgICAvLyBXZWJMYXllclRyZWVWaWV3Q2xp
ZW50Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxCZWdpbkZyYW1lKCk7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZEJlZ2luRnJhbWUoKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3Vi
bGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9s
bEFuZFNjYWxlKGNvbnN0IFdlYlNpemUmLCBmbG9hdCk7Ci0gICAgdmlydHVhbCBXZWJDb21wb3Np
dG9yT3V0cHV0U3VyZmFjZSogY3JlYXRlT3V0cHV0U3VyZmFjZSgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UoYm9vbCBzdWNjZXNzKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIFdlYklucHV0SGFuZGxlciogY3JlYXRlSW5wdXRIYW5kbGVyKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRlKCk7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY3JlYXRlT3V0cHV0U3VyZmFjZShib29sIHN1Y2Nlc3MpOwogCiAgICAgLy8g
V2ViVmlld0ltcGwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9H
cmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggMjY0MTJhNTc3MzlkNWYwZDA0
ZjU2ODEwNmMyZThjZTAyZWY5Yzk1Ni4uMGZiZTVkNzkwYTAxYzk5N2QyYTdjNDA3MzA3NGRhZTg5
OTBiM2QyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9HcmFwaGlj
c0xheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC0zMiw5ICszMiw5IEBACiAjaW5jbHVk
ZSAiUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEu
aCIKICNpbmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKLSNpbmNsdWRlICJX
ZWJMYXllclRyZWVWaWV3VGVzdENvbW1vbi5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAj
aW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0
b3JTdXBwb3J0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkZsb2F0QW5pbWF0aW9uQ3VydmUuaD4K
ICNpbmNsdWRlIDxwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaD4KICNpbmNsdWRlIDxwdWJs
aWMvV2ViTGF5ZXJUcmVlVmlldy5oPgpAQCAtODUsNyArODUsNiBAQCBwcm90ZWN0ZWQ6CiAgICAg
T3duUHRyPEdyYXBoaWNzTGF5ZXJDaHJvbWl1bT4gbV9ncmFwaGljc0xheWVyOwogCiBwcml2YXRl
OgotICAgIE1vY2tXZWJMYXllclRyZWVWaWV3Q2xpZW50IG1fbGF5ZXJUcmVlVmlld0NsaWVudDsK
ICAgICBPd25QdHI8V2ViTGF5ZXJUcmVlVmlldz4gbV9sYXllclRyZWVWaWV3OwogICAgIE1vY2tH
cmFwaGljc0xheWVyQ2xpZW50IG1fY2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bVRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVt
VGVzdC5jcHAKaW5kZXggOGRkMjU1YzhlMjY5MzFjZjM3M2VhNWFmNDM4MWY5YmY2YWJkZTg5MS4u
ZWZhZDc4MDZkNWMwYjljY2RjYzJmNGZkYTkxNDExMDJjYTU5NzliZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtVGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGlu
YXRvckNocm9taXVtVGVzdC5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKIAogI2luY2x1ZGUgIlNjcm9s
bGluZ0Nvb3JkaW5hdG9yLmgiCiAKLSNpbmNsdWRlICJDb21wb3NpdG9yRmFrZVdlYkdyYXBoaWNz
Q29udGV4dDNELmgiCiAjaW5jbHVkZSAiRnJhbWVUZXN0SGVscGVycy5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgpA
QCAtNDEsOCArNDAsOCBAQAogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAjaW5jbHVkZSA8Z3Rl
c3QvZ3Rlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KLSNpbmNsdWRlIDxwdWJs
aWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXIuaD4K
KyNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oPgogI2luY2x1ZGUgPHB1YmxpYy9X
ZWJVbml0VGVzdFN1cHBvcnQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01Miwx
MSArNTEsNiBAQCBuYW1lc3BhY2UgewogCiBjbGFzcyBGYWtlV2ViVmlld0NsaWVudCA6IHB1Ymxp
YyBXZWJWaWV3Q2xpZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFdlYkNvbXBvc2l0b3JPdXRw
dXRTdXJmYWNlKiBjcmVhdGVPdXRwdXRTdXJmYWNlKCkgT1ZFUlJJREUKLSAgICB7Ci0gICAgICAg
IHJldHVybiBQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVP
dXRwdXRTdXJmYWNlRm9yM0QoQ29tcG9zaXRvckZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6Y3Jl
YXRlKFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKCkpLmxlYWtQdHIoKSk7Ci0gICAg
fQotCiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVMYXllclRyZWVWaWV3KFdlYkxheWVyVHJl
ZVZpZXdDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViTGF5ZXImIHJvb3RMYXllciwgY29uc3QgV2Vi
TGF5ZXJUcmVlVmlldzo6U2V0dGluZ3MmIHNldHRpbmdzKQogICAgIHsKICAgICAgICAgbV9sYXll
clRyZWVWaWV3ID0gYWRvcHRQdHIoUGxhdGZvcm06OmN1cnJlbnQoKS0+dW5pdFRlc3RTdXBwb3J0
KCktPmNyZWF0ZUxheWVyVHJlZVZpZXdGb3JUZXN0aW5nKFdlYlVuaXRUZXN0U3VwcG9ydDo6VGVz
dFZpZXdUeXBlVW5pdFRlc3QpKTsKQEAgLTgwLDkgKzc0LDggQEAgY2xhc3MgU2Nyb2xsaW5nQ29v
cmRpbmF0b3JDaHJvbWl1bVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CiAg
ICAgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bVRlc3QoKQogICAgICAgICA6IG1fYmFzZVVS
TCgiaHR0cDovL3d3dy50ZXN0LmNvbS8iKQorICAgICAgICAsIG1fY29tcG9zaXRvckluaXRpYWxp
emVyKDApCiAgICAgewotICAgICAgICBQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3Vw
cG9ydCgpLT5pbml0aWFsaXplKDApOwotCiAgICAgICAgIC8vIFdlIGNhbm5vdCByZXVzZSBGcmFt
ZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZCBoZXJlIGJlY2F1c2UgdGhlIGNvbXBv
c2l0aW5nCiAgICAgICAgIC8vIHNldHRpbmdzIG5lZWQgdG8gYmUgc2V0IGJlZm9yZSB0aGUgcGFn
ZSBpcyBsb2FkZWQuCiAgICAgICAgIG1fd2ViVmlld0ltcGwgPSBzdGF0aWNfY2FzdDxXZWJWaWV3
SW1wbCo+KFdlYlZpZXc6OmNyZWF0ZSgmbV9tb2NrV2ViVmlld0NsaWVudCkpOwpAQCAtMTAyLDgg
Kzk1LDYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgUGxhdGZvcm06OmN1cnJlbnQoKS0+dW5p
dFRlc3RTdXBwb3J0KCktPnVucmVnaXN0ZXJBbGxNb2NrZWRVUkxzKCk7CiAgICAgICAgIG1fd2Vi
Vmlld0ltcGwtPmNsb3NlKCk7Ci0KLSAgICAgICAgUGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9z
aXRvclN1cHBvcnQoKS0+c2h1dGRvd24oKTsKICAgICB9CiAKICAgICB2b2lkIG5hdmlnYXRlVG8o
Y29uc3Qgc3RkOjpzdHJpbmcmIHVybCkKQEAgLTEzMiw2ICsxMjMsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgTW9ja1dlYkZyYW1lQ2xpZW50IG1fbW9ja1dlYkZyYW1lQ2xpZW50OwogICAgIEZha2VXZWJW
aWV3Q2xpZW50IG1fbW9ja1dlYlZpZXdDbGllbnQ7CiAgICAgV2ViVmlld0ltcGwqIG1fd2ViVmll
d0ltcGw7CisgICAgV2ViS2l0VGVzdHM6OldlYkNvbXBvc2l0b3JJbml0aWFsaXplciBtX2NvbXBv
c2l0b3JJbml0aWFsaXplcjsKIH07CiAKIFRFU1RfRihTY3JvbGxpbmdDb29yZGluYXRvckNocm9t
aXVtVGVzdCwgZmFzdFNjcm9sbGluZ0J5RGVmYXVsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThhNTZjOTY1OWY5NDlmZGY5ODA5ZTRhMGUxMmQyNDM0
OTYzMjdlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdl
YkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uX2gKLSNkZWZpbmUgV2ViTGF5ZXJUcmVlVmlld1Rlc3RD
b21tb25faAotCi0jaW5jbHVkZSAiQ29tcG9zaXRvckZha2VXZWJHcmFwaGljc0NvbnRleHQzRC5o
IgotI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+Ci0jaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+
Ci0jaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0Lmg+Ci0jaW5jbHVkZSA8cHVi
bGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNs
YXNzIE1vY2tXZWJMYXllclRyZWVWaWV3Q2xpZW50IDogcHVibGljIFdlYkxheWVyVHJlZVZpZXdD
bGllbnQgewotcHVibGljOgotICAgIE1PQ0tfTUVUSE9EMChzY2hlZHVsZUNvbXBvc2l0ZSwgdm9p
ZCgpKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVCZWdp
blRpbWUpIE9WRVJSSURFIHsgfQotICAgIE1PQ0tfTUVUSE9EMCh3aWxsQmVnaW5GcmFtZSwgdm9p
ZCgpKTsKLSAgICBNT0NLX01FVEhPRDAoZGlkQmVnaW5GcmFtZSwgdm9pZCgpKTsKLSAgICB2aXJ0
dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Ny
b2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNjYWxlRmFjdG9y
KSBPVkVSUklERSB7IH0KLQotICAgIHZpcnR1YWwgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2Uq
IGNyZWF0ZU91dHB1dFN1cmZhY2UoKSBPVkVSUklERQotICAgIHsKLSAgICAgICAgcmV0dXJuIFBs
YXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZU91dHB1dFN1cmZh
Y2VGb3IzRChDb21wb3NpdG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoV2ViR3Jh
cGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMoKSkubGVha1B0cigpKTsKLSAgICB9Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY3JlYXRlT3V0cHV0U3VyZmFjZShib29sKSBPVkVSUklERSB7IH0KLX07
Ci0KLX0KLQotI2VuZGlmIC8vIFdlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191089</attachid>
            <date>2013-03-01 18:49:25 -0800</date>
            <delta_ts>2013-03-04 14:42:00 -0800</delta_ts>
            <desc>fix WebTestProxy compilation</desc>
            <filename>bug-109125-20130301184535.patch</filename>
            <type>text/plain</type>
            <size>30390</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhNzc5YmFkYmFmZjAz
YWIxNjc2YjdiNjA5ODE1MDFmMzVjMjkyY2ZhLi4wNDg4YjQ5NWJiNDdiZWJlMmViODU3MjAyNDQw
NTE0YzY3OGNjN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0wNiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gQ2xlYW4gdXAgV2ViV2lkZ2V0IC8gV2ViTGF5ZXJUcmVlVmlldyBpbnRlcmFjdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTEyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZGVwcmVj
YXRlcyBtb3N0IG9mIHRoZSBjYWxscyBvbiBXZWJMYXllclRyZWVWaWV3Q2xpZW50IHNpbmNlIHRo
ZXNlIGludGVyYWN0aW9ucyBhcmUgaGFuZGxlZAorICAgICAgICBlbnRpcmVseSBvbiB0aGUgZW1i
ZWRkZXIgc2lkZSBvZiB0aGUgaW50ZXJmYWNlIG5vdy4KKworICAgICAgICAqIGNocm9taXVtL3B1
YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg6CisgICAgICAgIChXZWJMYXllclRyZWVWaWV3KToKKyAg
ICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oOgorICAgICAg
ICAoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJl
ZVZpZXdDbGllbnQ6OndpbGxCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJU
cmVlVmlld0NsaWVudDo6ZGlkQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVy
VHJlZVZpZXdDbGllbnQ6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMYXllclRyZWVWaWV3Q2xpZW50OjpsYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXll
clRyZWVWaWV3Q2xpZW50OjpkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50OjpjcmVhdGVJbnB1dEhhbmRsZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50OjpjcmVhdGVPdXRwdXRTdXJmYWNlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0NsaWVudDo6d2lsbENvbW1pdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbW1pdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbW1pdEFuZERyYXdGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbXBsZXRl
U3dhcEJ1ZmZlcnMpOgorCiAyMDEzLTAyLTI2ICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+
CiAKICAgICAgICAgRVhUX2RyYXdfYnVmZmVycyBuZWVkcyBpbXBsZW1lbnRhdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCA4NTAyZmRjNjQyMGM5ZjlkNjM1MTlmM2U2OTgyMmY1Mzgx
NDA0MThiLi4yOGI4Yzk3YThkNTI5MTdhMmUwYmQ1NTlmOWY0ZjRjYjczZTY2ZGEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTAyLTA2ICBKYW1lcyBS
b2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBDbGVh
biB1cCBXZWJXaWRnZXQgLyBXZWJMYXllclRyZWVWaWV3IGludGVyYWN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MTI1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZW1vdmVzIG1vc3Qg
b2YgdGhlIGNvbXBvc2l0aW5nIGNvbnRyb2wgZmxvdyBsb2dpYyBmcm9tIFdlYlZpZXdJbXBsIHNp
bmNlCisgICAgICAgIGl0IGlzIG5vdyBoYW5kbGVkIGluIHRoZSBlbWJlZGRpbmcgbGF5ZXIgKGJ5
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBXZWJWaWV3Q2xpZW50L1dlYldpZGdldENsaWVudCkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJX
aWRnZXQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6
YW5pbWF0ZSk6CisgICAgICAgIChXZWJXaWRnZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRn
ZXQ6OmRpZEV4aXRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6
OmNyZWF0ZUlucHV0SGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6YXBwbHlT
Y3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aW5zdHJ1bWVudEJl
Z2luRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaWRnZXQ6Omluc3RydW1lbnRXaWxsQmVn
aW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aW5zdHJ1bWVudERpZENhbmNl
bEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0OjppbnN0cnVtZW50RGlkQmVnaW5G
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aW5zdHJ1bWVudFdpbGxDb21wb3Np
dGUpOgorICAgICAgICAqIHNyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcDoKKyAgICAgICAgKiBz
cmMvV2ViSGVscGVyUGx1Z2luSW1wbC5oOgorICAgICAgICAoV2ViSGVscGVyUGx1Z2luSW1wbCk6
CisgICAgICAgICogc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwOgorICAgICAgICAqIHNyYy9XZWJQ
YWdlUG9wdXBJbXBsLmg6CisgICAgICAgIChXZWJQYWdlUG9wdXBJbXBsKToKKyAgICAgICAgKiBz
cmMvV2ViUG9wdXBNZW51SW1wbC5jcHA6CisgICAgICAgICogc3JjL1dlYlBvcHVwTWVudUltcGwu
aDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6aW5zdHJ1bWVudFdpbGxCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6Omluc3RydW1lbnREaWRCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6Omluc3RydW1lbnREaWRDYW5jZWxGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjppbnN0cnVtZW50V2lsbENvbXBvc2l0ZSk6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlQmF0dGVyeVN0YXR1cyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphbmltYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmRpZEV4aXRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3
SW1wbC5oOgorICAgICAgICAqIHRlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmg6Cisg
ICAgICAgIChNb2NrV2ViTGF5ZXJUcmVlVmlld0NsaWVudCk6CisKIDIwMTMtMDMtMDEgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxNDQ0MjIgYW5kIHIxNDQ0MjQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaCBiL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCmluZGV4IGQ1Mjg3MjkwY2Yw
ZDgxYzI5NDMxYmMwZGVkYWI0OTE2NGE4YTNlZWYuLmU1ZmMwZWIwYTE4YjU5YmUyOTI1YWQxNjg4
M2RiODEwN2MxNjA0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViTGF5ZXJUcmVlVmlldy5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViTGF5ZXJUcmVlVmlldy5oCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVibGljOgogCiAgICAg
Ly8gRmxvdyBjb250cm9sIGFuZCBzY2hlZHVsaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCi0gICAgLy8gUmVxdWVzdHMgYW4gdXBkYXRlQW5pbWF0aW9ucygpIGNh
bGwuCisgICAgLy8gSW5kaWNhdGVzIHRoYXQgYW4gYW5pbWF0aW9uIG5lZWRzIHRvIGJlIHVwZGF0
ZWQuCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzQW5pbWF0ZSgpID0gMDsKIAogICAgIC8vIElu
ZGljYXRlcyB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJlIHJlZHJhd24uIFRoaXMgaXMgdHlwaWNh
bGx5IHVzZWQgd2hlbiB0aGUgZnJvbnRidWZmZXIgaXMgZGFtYWdlZC4KQEAgLTE0MCwyMCArMTQw
LDYgQEAgcHVibGljOgogICAgIC8vIEluZGljYXRlcyB3aGV0aGVyIGEgY29tbWl0IGlzIHBlbmRp
bmcuCiAgICAgdmlydHVhbCBib29sIGNvbW1pdFJlcXVlc3RlZCgpIGNvbnN0ID0gMDsKIAotICAg
IC8vIFRyaWdnZXJzIGEgY29tcG9zaXRpbmcgcGFzcy4gSWYgdGhlIGNvbXBvc2l0b3IgdGhyZWFk
IHdhcyBub3QKLSAgICAvLyBlbmFibGVkIHZpYSBXZWJDb21wb3NpdG9yU3VwcG9ydDo6aW5pdGlh
bGl6ZSwgdGhlIGNvbXBvc2l0aW5nIHBhc3MgaGFwcGVucwotICAgIC8vIGltbWVkaWF0ZWx5LiBJ
ZiBpdCBpcyBlbmFibGVkLCB0aGUgY29tcG9zaXRpbmcgcGFzcyB3aWxsIGhhcHBlbiBhdCBhCi0g
ICAgLy8gbGF0ZXIgdGltZS4gQmVmb3JlIHRoZSBjb21wb3NpdGluZyBwYXNzIGhhcHBlbnMgKGku
ZS4gYmVmb3JlIGNvbXBvc2l0ZSgpCi0gICAgLy8gcmV0dXJucyB3aGVuIHRoZSBjb21wb3NpdG9y
IHRocmVhZCBpcyBkaXNhYmxlZCksIFdlYkNvbnRlbnRMYXllcnMgd2lsbCBiZQotICAgIC8vIGFz
a2VkIHRvIHBhaW50IHRoZWlyIGRpcnR5IHJlZ2lvbiwgdGhyb3VnaAotICAgIC8vIFdlYkNvbnRl
bnRMYXllckNsaWVudDo6cGFpbnRDb250ZW50cy4KLSAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRl
KCkgPSAwOwotCi0gICAgLy8gSW1tZWRpYXRlbHkgdXBkYXRlIGFuaW1hdGlvbnMuIFRoaXMgc2hv
dWxkIG9ubHkgYmUgdXNlZCB3aGVuIGZyYW1lIHNjaGVkdWxpbmcgaXMgaGFuZGxlZCBieQotICAg
IC8vIHRoZSBXZWJMYXllclRyZWVWaWV3IHVzZXIgYW5kIG5vdCBpbnRlcm5hbGx5IGJ5IHRoZSBj
b21wb3NpdG9yLCBtZWFuaW5nIG9ubHkgaW4gc2luZ2xlLXRocmVhZGVkCi0gICAgLy8gbW9kZS4K
LSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVCZWdpblRpbWUp
ID0gMDsKLQogICAgIC8vIFJlbGF5cyB0aGUgZW5kIG9mIGEgZmxpbmcgYW5pbWF0aW9uLgogICAg
IHZpcnR1YWwgdm9pZCBkaWRTdG9wRmxpbmdpbmcoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmggYi9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAppbmRl
eCBhZGE1ODljMWNkNTYyMjM5MGM4YWQyYzM3MDg3NWJiMzVhNWY5ZjE5Li5lNGI5NGIwYWMyYjlk
MTA1NWY3ZTZkMWNhODJhMTE2MWY1ZjgxMTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaApAQCAtMzcsNDQg
KzM3LDEyIEBAIHN0cnVjdCBXZWJTaXplOwogCiBjbGFzcyBXZWJMYXllclRyZWVWaWV3Q2xpZW50
IHsKIHB1YmxpYzoKLSAgICAvLyBJbmRpY2F0ZXMgdG8gdGhlIGVtYmVkZGVyIHRoYXQgdGhlIGNv
bXBvc2l0b3IgaXMgYWJvdXQgdG8gYmVnaW4gYQotICAgIC8vIGZyYW1lLiBUaGlzIGlzIGlzIGEg
c2lnbmFsIHRvIGZsb3cgY29udHJvbCBtZWNoYW5pc21zIHRoYXQgYSBmcmFtZSBpcwotICAgIC8v
IGJlZ2lubmluZy4gVGhpcyBjYWxsIHdpbGwgYmUgZm9sbG93ZWQgYnkgdXBkYXRlQW5pbWF0aW9u
cyBhbmQgdGhlbgotICAgIC8vIGxheW91dCwgd2hpY2ggc2hvdWxkIGJlIHVzZWQgZm9yIGFjdHVh
bCBhbmltYXRpb24gb3IgdHJlZSBtYW5pcHVsYXRpb24KLSAgICAvLyB0YXNrcy4gIEZJWE1FOiBt
YWtlIHB1cmUgdmlydHVhbCBvbmNlIHVwc3RyZWFtIGRlcHMgYXJlIHNhdGlzZmllZC4KLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWUoKSB7IH0KLQotICAgIC8vIEluZGljYXRlcyB0aGF0
IG1haW4gdGhyZWFkIHRhc2tzIGFzc29jaWF0ZWQgd2l0aCBmcmFtZSByZW5kZXJpbmcgaGF2ZSBj
b21wbGV0ZWQuCi0gICAgLy8gSXNzdWVkIHVuY29uZGl0aW9uYWxseSwgZXZlbiBpZiB0aGUgY29u
dGV4dCB3YXMgbG9zdCBpbiB0aGUgcHJvY2Vzcy4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5G
cmFtZSgpIHsgfQotCi0gICAgLy8gVXBkYXRlcyBhbmltYXRpb24gYW5kIGxheW91dC4gVGhlc2Ug
YXJlIGNhbGxlZCBiZWZvcmUgdGhlIGNvbXBvc2l0aW5nCi0gICAgLy8gcGFzcyBzbyB0aGF0IGxh
eWVycyBjYW4gYmUgdXBkYXRlZCBhdCB0aGUgZ2l2ZW4gZnJhbWUgdGltZS4KLSAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgPSAwOwotCi0gICAgLy8gQXBwbGllcyBhIHNj
cm9sbCBkZWx0YSB0byB0aGUgcm9vdCBsYXllciwgd2hpY2ggaXMgYnVuZGxlZCB3aXRoIGEgcGFn
ZQotICAgIC8vIHNjYWxlIGZhY3RvciB0aGF0IG1heSBhcHBseSBhIENTUyB0cmFuc2Zvcm0gb24g
dGhlIHdob2xlIGRvY3VtZW50ICh1c2VkCi0gICAgLy8gZm9yIG1vYmlsZS1kZXZpY2UgcGluY2gg
em9vbWluZykuIFRoaXMgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBzZW50IHRvIHRoZQotICAgIC8v
IGNvbXBvc2l0b3IgdGhyZWFkIHRocm91Z2ggdGhlIFdlYkNvbXBvc2l0b3IgaW50ZXJmYWNlLgot
ICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYlNpemUmIHNjcm9s
bERlbHRhLCBmbG9hdCBzY2FsZUZhY3RvcikgPSAwOwotCi0gICAgLy8gQ3JlYXRlcyB0aGUgb3V0
cHV0IHN1cmZhY2UuIFRoaXMgbWF5IGJlIGNhbGxlZCBtb3JlIHRoYW4gb25jZQotICAgIC8vIGlm
IHRoZSBjb250ZXh0IGdldHMgbG9zdC4KLSAgICB2aXJ0dWFsIFdlYkNvbXBvc2l0b3JPdXRwdXRT
dXJmYWNlKiBjcmVhdGVPdXRwdXRTdXJmYWNlKCkgeyByZXR1cm4gMDsgfQotCi0gICAgLy8gU2ln
bmFscyBhIHN1Y2Nlc3NmdWwgcmVjcmVhdGlvbiBvZiB0aGUgb3V0cHV0IHN1cmZhY2UgKGUuZy4g
YWZ0ZXIgYSBsb3N0Ci0gICAgLy8gM0QgY29udGV4dCBldmVudCkuCisgICAgLy8gREVQUkVDQVRF
RCAtIFdJTEwgQkUgUkVNT1ZFRCBTT09OCisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5k
U2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNjYWxlRmFjdG9yKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVCZWdpblRpbWUp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UoYm9vbCBzdWNj
ZXNzKSB7IH0KLQogICAgIHZpcnR1YWwgV2ViSW5wdXRIYW5kbGVyKiBjcmVhdGVJbnB1dEhhbmRs
ZXIoKSB7IHJldHVybiAwOyB9CiAKLSAgICAvLyBTY2hlZHVsZXMgYSBjb21wb3NpdGluZyBwYXNz
LCBtZWFuaW5nIHRoZSBjbGllbnQgc2hvdWxkIGNhbGwKLSAgICAvLyBXZWJMYXllclRyZWVWaWV3
Ojpjb21wb3NpdGUgYXQgYSBsYXRlciB0aW1lLiBUaGlzIGlzIG9ubHkgY2FsbGVkIGlmIHRoZQot
ICAgIC8vIGNvbXBvc2l0b3IgdGhyZWFkIGlzIGRpc2FibGVkOyB3aGVuIGVuYWJsZWQsIHRoZSBj
b21wb3NpdG9yIHdpbGwKLSAgICAvLyBpbnRlcm5hbGx5IHNjaGVkdWxlIGEgY29tcG9zaXRpbmcg
cGFzcyB3aGVuIG5lZWRlZC4KLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGUoKSA9
IDA7Ci0KIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5XZWJMYXllclRyZWVWaWV3Q2xpZW50KCkg
eyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
d0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
CmluZGV4IDM4YzY2ZGZlODlmOTNmYTg4ZTE4ZDUwNjgwODQ1NjE2NmMwMjY3MzMuLmU0NDZlMmE2
OTNmOTFhMTcxYzVlMmM5M2YzMDE4NjQwZDhkNTVlMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTEyMywxMSArMTIzLDYgQEAgcHVibGlj
OgogICAgIC8vIENyZWF0ZSBhIHNlc3Npb24gc3RvcmFnZSBuYW1lc3BhY2Ugb2JqZWN0IGFzc29j
aWF0ZWQgd2l0aCB0aGlzIFdlYlZpZXcuCiAgICAgdmlydHVhbCBXZWJTdG9yYWdlTmFtZXNwYWNl
KiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSkgeyByZXR1cm4g
MDsgfQogCi0gICAgLy8gREVQUkVDQVRFRDogQ3JlYXRlcyBhIGdyYXBoaWNzIGNvbnRleHQgdGhh
dCByZW5kZXJzIHRvIHRoZSBjbGllbnQncyBXZWJWaWV3LgotICAgIHZpcnR1YWwgV2ViR3JhcGhp
Y3NDb250ZXh0M0QqIGNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKGNvbnN0IFdlYkdyYXBoaWNzQ29u
dGV4dDNEOjpBdHRyaWJ1dGVzJikgeyByZXR1cm4gMDsgfQotCi0gICAgLy8gQ3JlYXRlcyB0aGUg
b3V0cHV0IHN1cmZhY2UgdGhhdCByZW5kZXJzIHRvIHRoZSBjbGllbnQncyBXZWJWaWV3LgotICAg
IHZpcnR1YWwgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UqIGNyZWF0ZU91dHB1dFN1cmZhY2Uo
KSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBNaXNjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAppbmRleCBkY2MxOTIxNzRkYjBhNWE4NjVmZGUyZDc3
N2JlZmExYjkwNTQ2MTRmLi45MTUzZDIyNzVlZDZkMGJhYmNhZmVlMWM2NWFiNzgzOTY5ZWIzNjdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaApAQCAtNDIsNiAr
NDIsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYklucHV0RXZlbnQ7CitjbGFz
cyBXZWJJbnB1dEhhbmRsZXI7CiBjbGFzcyBXZWJMYXllclRyZWVWaWV3OwogY2xhc3MgV2ViTW91
c2VFdmVudDsKIGNsYXNzIFdlYlN0cmluZzsKQEAgLTgwLDcgKzgxLDcgQEAgcHVibGljOgogCiAg
ICAgLy8gQ2FsbGVkIHRvIHVwZGF0ZSBpbXBlcmF0aXZlIGFuaW1hdGlvbiBzdGF0ZS4gVGhpcyBz
aG91bGQgYmUgY2FsbGVkIGJlZm9yZQogICAgIC8vIHBhaW50LCBhbHRob3VnaCB0aGUgY2xpZW50
IGNhbiByYXRlLWxpbWl0IHRoZXNlIGNhbGxzLgotICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKGRv
dWJsZSBpZ25vcmVkKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShkb3VibGUgbW9ub3Rv
bmljRnJhbWVCZWdpblRpbWUpIHsgfQogCiAgICAgLy8gQ2FsbGVkIHRvIGxheW91dCB0aGUgV2Vi
V2lkZ2V0LiBUaGlzIE1VU1QgYmUgY2FsbGVkIGJlZm9yZSBQYWludCwKICAgICAvLyBhbmQgaXQg
bWF5IHJlc3VsdCBpbiBjYWxscyB0byBXZWJXaWRnZXRDbGllbnQ6OmRpZEludmFsaWRhdGVSZWN0
LgpAQCAtOTAsNiArOTEsMTAgQEAgcHVibGljOgogICAgIC8vIHNob3VsZCBiZSBjYWxsZWQgYmVm
b3JlIHBhaW50LgogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZvcmNlQ29tcG9zaXRpbmdNb2RlKGJv
b2wgZW50ZXIpIHsgfQogCisgICAgLy8gQ2FsbGVkIHRvIG5vdGlmeSB0aGUgV2ViV2lkZ2V0IHRo
YXQgdGhlIHdpZGdldCBoYXMgZXhpdGVkIGNvbXBvc2l0aW5nCisgICAgLy8gbW9kZSBhbmQgY2Fu
bm90IHJlZW50ZXIuCisgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRDb21wb3NpdGluZ01vZGUoKSB7
IH0KKwogICAgIGVudW0gUGFpbnRPcHRpb25zIHsKICAgICAgICAgLy8gQXR0ZW1wdCB0byBmdWxm
aWxsIHRoZSBwYWludGluZyByZXF1ZXN0IGJ5IHJlYWRpbmcgYmFjayBmcm9tIHRoZQogICAgICAg
ICAvLyBjb21wb3NpdG9yLCBhc3N1bWluZyB3ZSdyZSB1c2luZyBhIGNvbXBvc2l0b3IgdG8gcmVu
ZGVyLgpAQCAtMTE0LDE2ICsxMTksNiBAQCBwdWJsaWM6CiAgICAgLy8gd2FycmFudGVkIGJlZm9y
ZSBwYWludGluZyBhZ2FpbikuCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNhbnZhcyosIGNv
bnN0IFdlYlJlY3QmIHZpZXdQb3J0LCBQYWludE9wdGlvbnMgPSBSZWFkYmFja0Zyb21Db21wb3Np
dG9ySWZBdmFpbGFibGUpIHsgfQogCi0gICAgLy8gSW4gbm9uLXRocmVhZGVkIGNvbXBvc2l0aW5n
IG1vZGUsIHRyaWdnZXJzIGNvbXBvc2l0aW5nIG9mIHRoZSBjdXJyZW50Ci0gICAgLy8gbGF5ZXJz
IG9udG8gdGhlIHNjcmVlbi4gWW91IE1VU1QgY2FsbCBMYXlvdXQgYmVmb3JlIGNhbGxpbmcgdGhp
cyBtZXRob2QsCi0gICAgLy8gZm9yIHRoZSBzYW1lIHJlYXNvbnMgZGVzY3JpYmVkIGluIHRoZSBw
YWludCBtZXRob2QgYWJvdmUKLSAgICAvLwotICAgIC8vIEluIHRocmVhZGVkIGNvbXBvc2l0aW5n
IG1vZGUsIGluZGljYXRlcyB0aGF0IHRoZSB3aWRnZXQgc2hvdWxkIHVwZGF0ZQotICAgIC8vIGl0
c2VsZiwgZm9yIGV4YW1wbGUgZHVlIHRvIHdpbmRvdyBkYW1hZ2UuIFRoZSByZWRyYXcgd2lsbCBi
ZWdpbgotICAgIC8vIGFzeW5jaHJvbm91c2x5IGFuZCBwZXJmb3JtIGxheW91dCBhbmQgYW5pbWF0
aW9uIGludGVybmFsbHkuIERvIG5vdCBjYWxsCi0gICAgLy8gYW5pbWF0ZSBvciBsYXlvdXQgaW4g
dGhpcyBjYXNlLgotICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gpID0gMDsK
LQogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB3ZSd2ZSBzdGFydGVkIHRyYWNraW5nIHJlcGFpbnQg
cmVjdGFuZ2xlcy4KICAgICB2aXJ0dWFsIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIApAQCAtMTQ4LDYgKzE0MywxNiBAQCBwdWJsaWM6CiAgICAgLy8g
Q2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gcG9pbnQgaGl0cyBhbnkgcmVnaXN0ZXJlZCB0b3VjaCBl
dmVudCBoYW5kbGVycy4KICAgICB2aXJ0dWFsIGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXJzQXQo
Y29uc3QgV2ViUG9pbnQmKSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICAvLyBSZXF1ZXN0IHRoYXQg
dGhlIFdlYldpZGdldCBjcmVhdGUgYW4gaW5wdXQgaGFuZGxlciBmb3IgcHJvY2Vzc2luZyBpbnB1
dAorICAgIC8vIGV2ZW50cyBpbnRlbmRlZCBmb3IgdGhpcyB3aWRnZXQgb2ZmIG9mIHRoZSBtYWlu
IHRocmVhZC4KKyAgICB2aXJ0dWFsIFdlYklucHV0SGFuZGxlciogY3JlYXRlSW5wdXRIYW5kbGVy
KCkgeyByZXR1cm4gMDsgfQorCisgICAgLy8gQXBwbGllcyBhIHNjcm9sbCBkZWx0YSB0byB0aGUg
cm9vdCBsYXllciwgd2hpY2ggaXMgYnVuZGxlZCB3aXRoIGEgcGFnZQorICAgIC8vIHNjYWxlIGZh
Y3RvciB0aGF0IG1heSBhcHBseSBhIENTUyB0cmFuc2Zvcm0gb24gdGhlIHdob2xlIGRvY3VtZW50
ICh1c2VkCisgICAgLy8gZm9yIG1vYmlsZS1kZXZpY2UgcGluY2ggem9vbWluZykuIFRoaXMgaXMg
dHJpZ2dlcmVkIGJ5IGV2ZW50cyBzZW50IHRvIHRoZQorICAgIC8vIGNvbXBvc2l0b3IgdGhyZWFk
IHRocm91Z2ggdGhlIFdlYklucHV0SGFuZGxlciBpbnRlcmZhY2UuCisgICAgdmlydHVhbCB2b2lk
IGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNj
YWxlRmFjdG9yKSB7IH0KKwogICAgIC8vIENhbGxlZCB0byBpbmZvcm0gdGhlIFdlYldpZGdldCB0
aGF0IG1vdXNlIGNhcHR1cmUgd2FzIGxvc3QuCiAgICAgdmlydHVhbCB2b2lkIG1vdXNlQ2FwdHVy
ZUxvc3QoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViV2lkZ2V0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRn
ZXRDbGllbnQuaAppbmRleCA0OGZlNTg4MzVjNTE5ODU4MTNmODI2YmNjOGIxOTU1ODlmMzA0MjRk
Li5iZjU5MzU0MTQ5ZjBjMDFkNmY1YzUzOWEzNTY3NWZiNmIyNDMyYjk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGllbnQuaApAQCAtMTAxLDkgKzEw
MSw2IEBAIHB1YmxpYzoKICAgICAvLyBwcm9jZXNzLgogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21w
bGV0ZVN3YXBCdWZmZXJzKCkgeyB9CiAKLSAgICAvLyBDYWxsZWQgd2hlbiBhIGNhbGwgdG8gV2Vi
V2lkZ2V0Ojpjb21wb3NpdGUgaXMgcmVxdWlyZWQKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVD
b21wb3NpdGUoKSB7IH0KLQogICAgIC8vIENhbGxlZCB3aGVuIGEgY2FsbCB0byBXZWJXaWRnZXQ6
OmFuaW1hdGUgaXMgcmVxdWlyZWQKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24o
KSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSGVscGVy
UGx1Z2luSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVn
aW5JbXBsLmNwcAppbmRleCA5YWY3OTRjNzA3OWE3YzU5OGQ5MjZhYzBlYzk5OWRiODQ0Yzg4ZmU1
Li41ZGVlMDhjOTFlZDgwYzUxMTZmMzY4YjM1NzkzMjgwNmFiYThlY2ZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcApAQCAtMjEy
LDE0ICsyMTIsNiBAQCB2b2lkIFdlYkhlbHBlclBsdWdpbkltcGw6OmRlc3RvcnlQYWdlKCkKICAg
ICBtX3BhZ2UuY2xlYXIoKTsKIH0KIAotdm9pZCBXZWJIZWxwZXJQbHVnaW5JbXBsOjpzZXRDb21w
b3NpdG9yU3VyZmFjZVJlYWR5KCkKLXsKLX0KLQotdm9pZCBXZWJIZWxwZXJQbHVnaW5JbXBsOjpj
b21wb3NpdGUoYm9vbCkKLXsKLX0KLQogdm9pZCBXZWJIZWxwZXJQbHVnaW5JbXBsOjpsYXlvdXQo
KQogewogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6bGF5b3V0KG1fcGFnZS5nZXQoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmgKaW5kZXgg
YzZhNzIxYzc0MGIxNmRhMTg4NGQwYzNmOTk3MTg3YjNiOWMwMmExMS4uNWUxNjUyYjU5MmFhMGM3
OGY0NDM1ZDE4ZGNkZTY3ZWI4MGE0YzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSGVscGVyUGx1Z2luSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkhlbHBlclBsdWdpbkltcGwuaApAQCAtNjcsOCArNjcsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGVzdG9yeVBhZ2UoKTsKIAogICAgIC8vIFdlYldpZGdldCBtZXRob2RzOgotICAg
IHZpcnR1YWwgdm9pZCBzZXRDb21wb3NpdG9yU3VyZmFjZVJlYWR5KCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGNvbXBvc2l0ZShib29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
bGF5b3V0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcAppbmRleCBlY2JkYTM3OThjYThl
MDlhNGQ3ZGNkZjM0NTc0NWJhMDk3NzYxNTdlLi41YTY3ZjQxYjhmZDQwMjA1OWQ2MWQxNGJmMDU4
NjY4N2I0NzFmMDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
YWdlUG9wdXBJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdl
UG9wdXBJbXBsLmNwcApAQCAtMjQ2LDE0ICsyNDYsNiBAQCB2b2lkIFdlYlBhZ2VQb3B1cEltcGw6
OmFuaW1hdGUoZG91YmxlKQogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6YW5pbWF0ZShtX3BhZ2Uu
Z2V0KCksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UG9wdXBJbXBsOjpzZXRDb21wb3NpdG9yU3VyZmFjZVJlYWR5KCkKLXsKLX0KLQotdm9pZCBXZWJQ
YWdlUG9wdXBJbXBsOjpjb21wb3NpdGUoYm9vbCkKLXsKLX0KLQogdm9pZCBXZWJQYWdlUG9wdXBJ
bXBsOjpsYXlvdXQoKQogewogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6bGF5b3V0KG1fcGFnZS5n
ZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9w
dXBJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmgK
aW5kZXggZmI5N2M3ZDAxZTUzZmFmY2M2YWY2Y2Q0NjVjOTU3N2YxYjI1YWQzOC4uOGM4NzY3MjNh
MGZhMTJjMTk3OWQxNmNlZTFkMTAwNmIxZDhiMDAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuaApAQCAtNjksOCArNjksNiBAQCBwcml2YXRlOgog
ICAgIC8vIFdlYldpZGdldCBmdW5jdGlvbnMKICAgICB2aXJ0dWFsIFdlYlNpemUgc2l6ZSgpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHNldENvbXBvc2l0b3JTdXJmYWNlUmVhZHkoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBs
YXlvdXQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiwgY29u
c3QgV2ViUmVjdCYsIFBhaW50T3B0aW9ucyA9IFJlYWRiYWNrRnJvbUNvbXBvc2l0b3JJZkF2YWls
YWJsZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlc2l6ZShjb25zdCBXZWJTaXplJikg
T1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1
cE1lbnVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUlt
cGwuY3BwCmluZGV4IDgzNDQ4NjNmYWNjZWQzODk5ZDc5OTZkMzViMGZkYmYwNmIzMjU2NGYuLjk4
NWEwM2ViMTMyNzMxNDc0OTRhOTAwZmFhYzcwY2IzYzUwMTQ5OTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCkBAIC0yMTEsMTYgKzIxMSw2
IEBAIHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6dGhlbWVDaGFuZ2VkKCkKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi12b2lkIFdlYlBvcHVwTWVudUltcGw6OnNldENvbXBvc2l0b3JTdXJmYWNl
UmVhZHkoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgV2ViUG9wdXBNZW51
SW1wbDo6Y29tcG9zaXRlKGJvb2wpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogYm9v
bCBXZWJQb3B1cE1lbnVJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQm
IGlucHV0RXZlbnQpCiB7CiAgICAgaWYgKCFtX3dpZGdldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaAppbmRleCBjOWYwOGM0YjIzYmQwMzk4M2E4ZGYw
YzM1OGU5MTYwZTkyOGI5MjA4Li41OTIwODU1OTRmMzhmMTViNjZkNmNhNDk4M2QyMDBhMjQ5YTBj
MDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5o
CkBAIC03NSw4ICs3NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3Qm
LCBQYWludE9wdGlvbnMgPSBSZWFkYmFja0Zyb21Db21wb3NpdG9ySWZBdmFpbGFibGUpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNoYW5nZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29tcG9zaXRvclN1cmZhY2VSZWFkeSgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBjb21wb3NpdGUoYm9vbCBmaW5pc2gpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgbW91c2VDYXB0dXJlTG9zdCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRGb2N1cyhib29sIGVuYWJsZSkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNGUxM2ExZWNhZjExNDdmZWYyZTM4ZmMzNjJjYTBi
MGExNzJlYTZhZS4uMDA0YjgyZTZhZjU5MzQ1YmUyNjVmYTg2OTc3MzI5ZDg1NmQyMGY3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMTgxNiwyOCAr
MTgxNiwxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVCYXR0ZXJ5U3RhdHVzKGNvbnN0IFdl
YkJhdHRlcnlTdGF0dXMmIHN0YXR1cykKIAogdm9pZCBXZWJWaWV3SW1wbDo6YW5pbWF0ZShkb3Vi
bGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpCiB7Ci0gICAgdXBkYXRlQW5pbWF0aW9ucyhtb25v
dG9uaWNGcmFtZUJlZ2luVGltZSk7Ci19Ci0KLXZvaWQgV2ViVmlld0ltcGw6OndpbGxCZWdpbkZy
YW1lKCkKLXsKLSAgICBtX2NsaWVudC0+d2lsbEJlZ2luQ29tcG9zaXRvckZyYW1lKCk7Ci19Cisg
ICAgVFJBQ0VfRVZFTlQwKCJ3ZWJraXQiLCAiV2ViVmlld0ltcGw6OmFuaW1hdGUiKTsKIAotdm9p
ZCBXZWJWaWV3SW1wbDo6ZGlkQmVnaW5GcmFtZSgpCi17Ci0gICAgaWYgKG1fZGV2VG9vbHNBZ2Vu
dCkKLSAgICAgICAgbV9kZXZUb29sc0FnZW50LT5kaWRDb21wb3NpdGUoKTsKLX0KLQotdm9pZCBX
ZWJWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRp
bWUpCi17CiAgICAgaWYgKCFtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkKICAgICAgICAgbW9ub3Rv
bmljRnJhbWVCZWdpblRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKIAotI2lm
IEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKLSAgICBUUkFDRV9FVkVOVDAoIndlYmtp
dCIsICJXZWJWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyIpOwotCiAgICAgLy8gQ3JlYXRlIHN5
bnRoZXRpYyB3aGVlbCBldmVudHMgYXMgbmVjZXNzYXJ5IGZvciBmbGluZy4KICAgICBpZiAobV9n
ZXN0dXJlQW5pbWF0aW9uKSB7CiAgICAgICAgIGlmIChtX2dlc3R1cmVBbmltYXRpb24tPmFuaW1h
dGUobW9ub3RvbmljRnJhbWVCZWdpblRpbWUpKQpAQCAtMTg1MiwxMyArMTgzNSwxNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2lu
VGltZSkKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgUGFnZVdpZGdl
dERlbGVnYXRlOjphbmltYXRlKG1fcGFnZS5nZXQoKSwgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUp
OworCiAgICAgaWYgKG1fY29udGludW91c1BhaW50aW5nRW5hYmxlZCkgewogICAgICAgICBDb250
aW51b3VzUGFpbnRlcjo6c2V0TmVlZHNEaXNwbGF5UmVjdXJzaXZlKG1fcm9vdEdyYXBoaWNzTGF5
ZXIsIG1fcGFnZU92ZXJsYXlzLmdldCgpKTsKICAgICAgICAgbV9jbGllbnQtPnNjaGVkdWxlQW5p
bWF0aW9uKCk7CiAgICAgfQorfQogCi0gICAgUGFnZVdpZGdldERlbGVnYXRlOjphbmltYXRlKG1f
cGFnZS5nZXQoKSwgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwotI2VuZGlmCit2b2lkIFdlYlZp
ZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkK
K3sKKyAgICBhbmltYXRlKG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKIH0KIAogdm9pZCBXZWJW
aWV3SW1wbDo6bGF5b3V0KCkKQEAgLTE5NjQsMjEgKzE5NTEsNiBAQCB2b2lkIFdlYlZpZXdJbXBs
Ojp0aGVtZUNoYW5nZWQoKQogICAgIHZpZXctPmludmFsaWRhdGVSZWN0KGRhbWFnZWRSZWN0KTsK
IH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6Y29tcG9zaXRlKGJvb2wpCi17Ci0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmIChQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3Np
dG9yU3VwcG9ydCgpLT5pc1RocmVhZGluZ0VuYWJsZWQoKSkKLSAgICAgICAgbV9sYXllclRyZWVW
aWV3LT5zZXROZWVkc1JlZHJhdygpOwotICAgIGVsc2UgewotICAgICAgICBBU1NFUlQoaXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpOwotICAgICAgICBpZiAoIXBhZ2UoKSkKLSAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICBtX2xheWVyVHJlZVZpZXctPmNvbXBvc2l0ZSgpOwot
ICAgIH0KLSNlbmRpZgotfQotCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXROZWVkc1JlZHJhdygpCiB7
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAtNDIxOSwxMSArNDE5MSw2IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29s
IGFjdGl2ZSkKIAogI2VuZGlmCiAKLVdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlKiBXZWJWaWV3
SW1wbDo6Y3JlYXRlT3V0cHV0U3VyZmFjZSgpCi17Ci0gICAgcmV0dXJuIG1fY2xpZW50LT5jcmVh
dGVPdXRwdXRTdXJmYWNlKCk7Ci19Ci0KIFdlYklucHV0SGFuZGxlciogV2ViVmlld0ltcGw6OmNy
ZWF0ZUlucHV0SGFuZGxlcigpCiB7CiAgICAgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwq
IGhhbmRsZXIgPSBuZXcgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwoKTsKQEAgLTQyNjIs
MjggKzQyMjksMjQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlTY3JvbGxBbmRTY2FsZShjb25z
dCBXZWJTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWwKIAogdm9pZCBXZWJWaWV3SW1w
bDo6ZGlkUmVjcmVhdGVPdXRwdXRTdXJmYWNlKGJvb2wgc3VjY2VzcykKIHsKLSAgICAvLyBTd2l0
Y2ggYmFjayB0byBzb2Z0d2FyZSByZW5kZXJpbmcgbW9kZSwgaWYgbmVjZXNzYXJ5Ci0gICAgaWYg
KCFzdWNjZXNzKSB7Ci0gICAgICAgIEFTU0VSVChtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Fj
dGl2ZSk7Ci0gICAgICAgIHNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShmYWxzZSk7
Ci0gICAgICAgIG1fY29tcG9zaXRvckNyZWF0aW9uRmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgbV9j
bGllbnQtPmRpZEludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgbV9zaXplLndpZHRoLCBtX3Np
emUuaGVpZ2h0KSk7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICBkaWRFeGl0Q29tcG9zaXRp
bmdNb2RlKCk7Cit9CiAKLSAgICAgICAgLy8gRm9yY2UgYSBzdHlsZSByZWNhbGMgdG8gcmVtb3Zl
IGFsbCB0aGUgY29tcG9zaXRlZCBsYXllcnMuCi0gICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkt
PmRvY3VtZW50KCktPnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMoKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KK3ZvaWQgV2ViVmlld0ltcGw6OmRpZEV4aXRDb21wb3NpdGluZ01vZGUoKQorewor
ICAgIEFTU0VSVChtX2lzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSk7CisgICAgc2V0SXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGZhbHNlKTsKKyAgICBtX2NvbXBvc2l0b3JDcmVh
dGlvbkZhaWxlZCA9IHRydWU7CisgICAgbV9jbGllbnQtPmRpZEludmFsaWRhdGVSZWN0KEludFJl
Y3QoMCwgMCwgbV9zaXplLndpZHRoLCBtX3NpemUuaGVpZ2h0KSk7CisKKyAgICAvLyBGb3JjZSBh
IHN0eWxlIHJlY2FsYyB0byByZW1vdmUgYWxsIHRoZSBjb21wb3NpdGVkIGxheWVycy4KKyAgICBt
X3BhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT5zY2hlZHVsZUZvcmNlZFN0eWxlUmVjYWxj
KCk7CiAKICAgICBpZiAobV9wYWdlT3ZlcmxheXMpCiAgICAgICAgIG1fcGFnZU92ZXJsYXlzLT51
cGRhdGUoKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c2NoZWR1bGVDb21wb3NpdGUoKQotewot
ICAgIEFTU0VSVCghUGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+aXNU
aHJlYWRpbmdFbmFibGVkKCkpOwotICAgIG1fY2xpZW50LT5zY2hlZHVsZUNvbXBvc2l0ZSgpOwot
fQotCiB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVMYXllclRyZWVWaWV3cG9ydCgpCiB7CiAgICAg
aWYgKCFwYWdlKCkgfHwgIW1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0IHx8ICFtX2xheWVyVHJl
ZVZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCBjNDVk
Y2ZhYWU1ZjBjYzNkMzVlYzVmMWQxNDFhYjAyMmU2YzYwNmQ5Li5lYjdmNzFlYzlhNDE2MjQyZjEx
NjMzMjI0MzYxYWZjMjI4NjU5YmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKQEAgLTE0NCwxNSArMTQ0LDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsU2NyZWVu
KCk7CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoZG91YmxlKTsKLSAgICB2aXJ0dWFsIHZvaWQg
bGF5b3V0KCk7IC8vIEFsc28gaW1wbGVtZW50cyBXZWJMYXllclRyZWVWaWV3Q2xpZW50OjpsYXlv
dXQoKQorICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJG
b3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50KFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmLCBQYWludE9wdGlvbnMgPSBSZWFk
YmFja0Zyb21Db21wb3NpdG9ySWZBdmFpbGFibGUpOwogICAgIHZpcnR1YWwgYm9vbCBpc1RyYWNr
aW5nUmVwYWludHMoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgdGhlbWVDaGFu
Z2VkKCk7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0ZShib29sIGZpbmlzaCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldE5lZWRzUmVkcmF3KCk7CiAgICAgdmlydHVhbCBib29sIGhhbmRsZUlucHV0
RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYpOwogICAgIHZpcnR1YWwgYm9vbCBoYXNUb3VjaEV2
ZW50SGFuZGxlcnNBdChjb25zdCBXZWJQb2ludCYpOworICAgIHZpcnR1YWwgV2ViSW5wdXRIYW5k
bGVyKiBjcmVhdGVJbnB1dEhhbmRsZXIoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYXBw
bHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiwgZmxvYXQpOwogICAgIHZpcnR1YWwgdm9p
ZCBtb3VzZUNhcHR1cmVMb3N0KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wgZW5h
YmxlKTsKICAgICB2aXJ0dWFsIGJvb2wgc2V0Q29tcG9zaXRpb24oCkBAIC0xODEsNiArMTgyLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBY3F1aXJlUG9pbnRlckxvY2soKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKCk7CiAgICAgdmlydHVhbCB2b2lk
IGRpZENoYW5nZVdpbmRvd1Jlc2l6ZXJSZWN0KCk7CisgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRD
b21wb3NpdGluZ01vZGUoKTsKIAogICAgIC8vIFdlYlZpZXcgbWV0aG9kczoKICAgICB2aXJ0dWFs
IHZvaWQgaW5pdGlhbGl6ZU1haW5GcmFtZShXZWJGcmFtZUNsaWVudCopOwpAQCAtMzE2LDE0ICsz
MTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRpbnVvdXNQYWludGluZ0Vu
YWJsZWQoYm9vbCk7CiAKICAgICAvLyBXZWJMYXllclRyZWVWaWV3Q2xpZW50Ci0gICAgdmlydHVh
bCB2b2lkIHdpbGxCZWdpbkZyYW1lKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRnJhbWUo
KTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljRnJh
bWVCZWdpblRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0
IFdlYlNpemUmLCBmbG9hdCk7Ci0gICAgdmlydHVhbCBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFj
ZSogY3JlYXRlT3V0cHV0U3VyZmFjZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNyZWF0ZU91dHB1dFN1cmZhY2UoYm9vbCBzdWNjZXNzKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IFdlYklucHV0SGFuZGxlciogY3JlYXRlSW5wdXRIYW5kbGVyKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRlKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY3Jl
YXRlT3V0cHV0U3VyZmFjZShib29sIHN1Y2Nlc3MpOwogCiAgICAgLy8gV2ViVmlld0ltcGwKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9HcmFwaGljc0xheWVyQ2hy
b21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvR3JhcGhpY3NMYXll
ckNocm9taXVtVGVzdC5jcHAKaW5kZXggMjY0MTJhNTc3MzlkNWYwZDA0ZjU2ODEwNmMyZThjZTAy
ZWY5Yzk1Ni4uMGZiZTVkNzkwYTAxYzk5N2QyYTdjNDA3MzA3NGRhZTg5OTBiM2QyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1U
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0dyYXBoaWNzTGF5ZXJD
aHJvbWl1bVRlc3QuY3BwCkBAIC0zMiw5ICszMiw5IEBACiAjaW5jbHVkZSAiUm90YXRlVHJhbnNm
b3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlICJU
cmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKLSNpbmNsdWRlICJXZWJMYXllclRyZWVWaWV3
VGVzdENvbW1vbi5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGlj
L1BsYXRmb3JtLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0Lmg+CiAj
aW5jbHVkZSA8cHVibGljL1dlYkZsb2F0QW5pbWF0aW9uQ3VydmUuaD4KICNpbmNsdWRlIDxwdWJs
aWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXJUcmVl
Vmlldy5oPgpAQCAtODUsNyArODUsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgT3duUHRyPEdyYXBoaWNz
TGF5ZXJDaHJvbWl1bT4gbV9ncmFwaGljc0xheWVyOwogCiBwcml2YXRlOgotICAgIE1vY2tXZWJM
YXllclRyZWVWaWV3Q2xpZW50IG1fbGF5ZXJUcmVlVmlld0NsaWVudDsKICAgICBPd25QdHI8V2Vi
TGF5ZXJUcmVlVmlldz4gbV9sYXllclRyZWVWaWV3OwogICAgIE1vY2tHcmFwaGljc0xheWVyQ2xp
ZW50IG1fY2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtVGVzdC5jcHAKaW5kZXgg
OGRkMjU1YzhlMjY5MzFjZjM3M2VhNWFmNDM4MWY5YmY2YWJkZTg5MS4uZWZhZDc4MDZkNWMwYjlj
Y2RjYzJmNGZkYTkxNDExMDJjYTU5NzliZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtVGVz
dC5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKIAogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9y
LmgiCiAKLSNpbmNsdWRlICJDb21wb3NpdG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmgiCiAj
aW5jbHVkZSAiRnJhbWVUZXN0SGVscGVycy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgpAQCAtNDEsOCArNDAsOCBA
QAogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KICNp
bmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRv
clN1cHBvcnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXIuaD4KKyNpbmNsdWRlIDxwdWJs
aWMvV2ViTGF5ZXJUcmVlVmlldy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJVbml0VGVzdFN1cHBv
cnQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01MiwxMSArNTEsNiBAQCBuYW1l
c3BhY2UgewogCiBjbGFzcyBGYWtlV2ViVmlld0NsaWVudCA6IHB1YmxpYyBXZWJWaWV3Q2xpZW50
IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlKiBjcmVh
dGVPdXRwdXRTdXJmYWNlKCkgT1ZFUlJJREUKLSAgICB7Ci0gICAgICAgIHJldHVybiBQbGF0Zm9y
bTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVPdXRwdXRTdXJmYWNlRm9y
M0QoQ29tcG9zaXRvckZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKFdlYkdyYXBoaWNz
Q29udGV4dDNEOjpBdHRyaWJ1dGVzKCkpLmxlYWtQdHIoKSk7Ci0gICAgfQotCiAgICAgdmlydHVh
bCB2b2lkIGluaXRpYWxpemVMYXllclRyZWVWaWV3KFdlYkxheWVyVHJlZVZpZXdDbGllbnQqIGNs
aWVudCwgY29uc3QgV2ViTGF5ZXImIHJvb3RMYXllciwgY29uc3QgV2ViTGF5ZXJUcmVlVmlldzo6
U2V0dGluZ3MmIHNldHRpbmdzKQogICAgIHsKICAgICAgICAgbV9sYXllclRyZWVWaWV3ID0gYWRv
cHRQdHIoUGxhdGZvcm06OmN1cnJlbnQoKS0+dW5pdFRlc3RTdXBwb3J0KCktPmNyZWF0ZUxheWVy
VHJlZVZpZXdGb3JUZXN0aW5nKFdlYlVuaXRUZXN0U3VwcG9ydDo6VGVzdFZpZXdUeXBlVW5pdFRl
c3QpKTsKQEAgLTgwLDkgKzc0LDggQEAgY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1
bVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CiAgICAgU2Nyb2xsaW5nQ29v
cmRpbmF0b3JDaHJvbWl1bVRlc3QoKQogICAgICAgICA6IG1fYmFzZVVSTCgiaHR0cDovL3d3dy50
ZXN0LmNvbS8iKQorICAgICAgICAsIG1fY29tcG9zaXRvckluaXRpYWxpemVyKDApCiAgICAgewot
ICAgICAgICBQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5pbml0aWFs
aXplKDApOwotCiAgICAgICAgIC8vIFdlIGNhbm5vdCByZXVzZSBGcmFtZVRlc3RIZWxwZXJzOjpj
cmVhdGVXZWJWaWV3QW5kTG9hZCBoZXJlIGJlY2F1c2UgdGhlIGNvbXBvc2l0aW5nCiAgICAgICAg
IC8vIHNldHRpbmdzIG5lZWQgdG8gYmUgc2V0IGJlZm9yZSB0aGUgcGFnZSBpcyBsb2FkZWQuCiAg
ICAgICAgIG1fd2ViVmlld0ltcGwgPSBzdGF0aWNfY2FzdDxXZWJWaWV3SW1wbCo+KFdlYlZpZXc6
OmNyZWF0ZSgmbV9tb2NrV2ViVmlld0NsaWVudCkpOwpAQCAtMTAyLDggKzk1LDYgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgUGxhdGZvcm06OmN1cnJlbnQoKS0+dW5pdFRlc3RTdXBwb3J0KCkt
PnVucmVnaXN0ZXJBbGxNb2NrZWRVUkxzKCk7CiAgICAgICAgIG1fd2ViVmlld0ltcGwtPmNsb3Nl
KCk7Ci0KLSAgICAgICAgUGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+
c2h1dGRvd24oKTsKICAgICB9CiAKICAgICB2b2lkIG5hdmlnYXRlVG8oY29uc3Qgc3RkOjpzdHJp
bmcmIHVybCkKQEAgLTEzMiw2ICsxMjMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgTW9ja1dlYkZyYW1l
Q2xpZW50IG1fbW9ja1dlYkZyYW1lQ2xpZW50OwogICAgIEZha2VXZWJWaWV3Q2xpZW50IG1fbW9j
a1dlYlZpZXdDbGllbnQ7CiAgICAgV2ViVmlld0ltcGwqIG1fd2ViVmlld0ltcGw7CisgICAgV2Vi
S2l0VGVzdHM6OldlYkNvbXBvc2l0b3JJbml0aWFsaXplciBtX2NvbXBvc2l0b3JJbml0aWFsaXpl
cjsKIH07CiAKIFRFU1RfRihTY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtVGVzdCwgZmFzdFNj
cm9sbGluZ0J5RGVmYXVsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMThhNTZjOTY1OWY5NDlmZGY5ODA5ZTRhMGUxMmQyNDM0OTYzMjdlYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkxheWVyVHJlZVZpZXdU
ZXN0Q29tbW9uX2gKLSNkZWZpbmUgV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb25faAotCi0jaW5j
bHVkZSAiQ29tcG9zaXRvckZha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oIgotI2luY2x1ZGUgPGdt
b2NrL2dtb2NrLmg+Ci0jaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+Ci0jaW5jbHVkZSA8cHVi
bGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0Lmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYkxheWVyVHJl
ZVZpZXdDbGllbnQuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIE1vY2tXZWJMYXll
clRyZWVWaWV3Q2xpZW50IDogcHVibGljIFdlYkxheWVyVHJlZVZpZXdDbGllbnQgewotcHVibGlj
OgotICAgIE1PQ0tfTUVUSE9EMChzY2hlZHVsZUNvbXBvc2l0ZSwgdm9pZCgpKTsKLSAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVCZWdpblRpbWUpIE9WRVJSSURF
IHsgfQotICAgIE1PQ0tfTUVUSE9EMCh3aWxsQmVnaW5GcmFtZSwgdm9pZCgpKTsKLSAgICBNT0NL
X01FVEhPRDAoZGlkQmVnaW5GcmFtZSwgdm9pZCgpKTsKLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0
KCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29u
c3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNjYWxlRmFjdG9yKSBPVkVSUklERSB7IH0K
LQotICAgIHZpcnR1YWwgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UqIGNyZWF0ZU91dHB1dFN1
cmZhY2UoKSBPVkVSUklERQotICAgIHsKLSAgICAgICAgcmV0dXJuIFBsYXRmb3JtOjpjdXJyZW50
KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZU91dHB1dFN1cmZhY2VGb3IzRChDb21wb3Np
dG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoV2ViR3JhcGhpY3NDb250ZXh0M0Q6
OkF0dHJpYnV0ZXMoKSkubGVha1B0cigpKTsKLSAgICB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJl
Y3JlYXRlT3V0cHV0U3VyZmFjZShib29sKSBPVkVSUklERSB7IH0KLX07Ci0KLX0KLQotI2VuZGlm
IC8vIFdlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5oCmluZGV4IDk3NTZjZjJlNjNiODExZjJmZWUwZjQ0YzNjYWQ0
OTE0Mzk3MTkwZDguLmFjMWViNjhiNjg0NThjYWJiNzVkZjIzM2Y3MTQwZjNjYWI0MzBkNzggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApAQCAtMjAyLDYg
KzIwMiw5IEBAIGNsYXNzIFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVu
dCwgcHVibGljIFdlYktpdDo6V2ViRnJhbWVDbGllbnQsCiAgICAgLy8gUGVuZGluZyB0YXNrIGxp
c3QsIE5vdGUgdGFodCB0aGUgbWV0aG9kIGlzIHJlZmVycmVkIGZyb20gV2ViTWV0aG9kVGFzayBj
bGFzcy4KICAgICBXZWJUZXN0UnVubmVyOjpXZWJUYXNrTGlzdCogdGFza0xpc3QoKSB7IHJldHVy
biAmbV90YXNrTGlzdDsgfQogCisgICAgLy8gRXhwb3NlZCBmb3IgV2ViVGVzdFByb3h5LgorICAg
IHZvaWQgc2NoZWR1bGVDb21wb3NpdGUoKSB7IH0KKwogcHJpdmF0ZToKIAogICAgIGNsYXNzIEhv
c3RNZXRob2RUYXNrIDogcHVibGljIFdlYlRlc3RSdW5uZXI6OldlYk1ldGhvZFRhc2s8V2ViVmll
d0hvc3Q+IHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191315</attachid>
            <date>2013-03-04 14:42:04 -0800</date>
            <delta_ts>2013-03-05 11:09:04 -0800</delta_ts>
            <desc>rebased</desc>
            <filename>bug-109125-20130304143812.patch</filename>
            <type>text/plain</type>
            <size>30422</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBkNjEzZTY3NzUwZDk2
YWM0NmU2MmVhOWJkMzBmYWIzMmY0OWRjYmNiLi4wNTJiMjg3NmRkYTFlOTQ5N2MyNTcyMDQ2ZGIx
NWRkZWE5ZTNiOGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0wMi0wNiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gQ2xlYW4gdXAgV2ViV2lkZ2V0IC8gV2ViTGF5ZXJUcmVlVmlldyBpbnRlcmFjdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTEyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZGVwcmVj
YXRlcyBtb3N0IG9mIHRoZSBjYWxscyBvbiBXZWJMYXllclRyZWVWaWV3Q2xpZW50IHNpbmNlIHRo
ZXNlIGludGVyYWN0aW9ucyBhcmUgaGFuZGxlZAorICAgICAgICBlbnRpcmVseSBvbiB0aGUgZW1i
ZWRkZXIgc2lkZSBvZiB0aGUgaW50ZXJmYWNlIG5vdy4KKworICAgICAgICAqIGNocm9taXVtL3B1
YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg6CisgICAgICAgIChXZWJMYXllclRyZWVWaWV3KToKKyAg
ICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oOgorICAgICAg
ICAoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJl
ZVZpZXdDbGllbnQ6OndpbGxCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJU
cmVlVmlld0NsaWVudDo6ZGlkQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVy
VHJlZVZpZXdDbGllbnQ6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMYXllclRyZWVWaWV3Q2xpZW50OjpsYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXll
clRyZWVWaWV3Q2xpZW50OjpkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50OjpjcmVhdGVJbnB1dEhhbmRsZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50OjpjcmVhdGVPdXRwdXRTdXJmYWNlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0NsaWVudDo6d2lsbENvbW1pdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbW1pdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbW1pdEFuZERyYXdGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmRpZENvbXBsZXRl
U3dhcEJ1ZmZlcnMpOgorCiAyMDEzLTAzLTA0ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gcmVtb3ZlIGRlcHJlY2F0ZWQgaHlwaGVu
YXRpb24gbWV0aG9kcyBmcm9tIFBsYXRmb3JtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDkyZmRhYmZjMWY1OThkYTEwNTVjZjUwOGYyMGU5ZmY4NjVmNzk0YTQuLjMwNGMzZDJiZDZhYjk5
YWNmN2I4ZmQ1MmM5MjY1NDc4MjcwNzM1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMTMtMDItMDYgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIENsZWFuIHVwIFdlYldpZGdldCAvIFdlYkxh
eWVyVHJlZVZpZXcgaW50ZXJhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDkxMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHJlbW92ZXMgbW9zdCBvZiB0aGUgY29tcG9zaXRpbmcgY29u
dHJvbCBmbG93IGxvZ2ljIGZyb20gV2ViVmlld0ltcGwgc2luY2UKKyAgICAgICAgaXQgaXMgbm93
IGhhbmRsZWQgaW4gdGhlIGVtYmVkZGluZyBsYXllciAoYnkgdGhlIGltcGxlbWVudGF0aW9uIG9m
IFdlYlZpZXdDbGllbnQvV2ViV2lkZ2V0Q2xpZW50KS4KKworICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Q2xpZW50Lmg6CisgICAgICAgICogcHVibGljL1dlYldpZGdldC5oOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0OjphbmltYXRlKToKKyAgICAgICAgKFdl
YldpZGdldCk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6ZGlkRXhpdENvbXBvc2l0aW5n
TW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6Y3JlYXRlSW5wdXRIYW5kbGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0OjphcHBseVNjcm9sbEFuZFNjYWxlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViV2lkZ2V0OjppbnN0cnVtZW50QmVnaW5GcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYldpZGdldDo6aW5zdHJ1bWVudFdpbGxCZWdpbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViV2lkZ2V0OjppbnN0cnVtZW50RGlkQ2FuY2VsRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJXaWRnZXQ6Omluc3RydW1lbnREaWRCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViV2lkZ2V0OjppbnN0cnVtZW50V2lsbENvbXBvc2l0ZSk6CisgICAgICAgICogc3JjL1dl
YkhlbHBlclBsdWdpbkltcGwuY3BwOgorICAgICAgICAqIHNyYy9XZWJIZWxwZXJQbHVnaW5JbXBs
Lmg6CisgICAgICAgIChXZWJIZWxwZXJQbHVnaW5JbXBsKToKKyAgICAgICAgKiBzcmMvV2ViUGFn
ZVBvcHVwSW1wbC5jcHA6CisgICAgICAgICogc3JjL1dlYlBhZ2VQb3B1cEltcGwuaDoKKyAgICAg
ICAgKFdlYlBhZ2VQb3B1cEltcGwpOgorICAgICAgICAqIHNyYy9XZWJQb3B1cE1lbnVJbXBsLmNw
cDoKKyAgICAgICAgKiBzcmMvV2ViUG9wdXBNZW51SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJW
aWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbnN0cnVtZW50V2ls
bEJlZ2luRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aW5zdHJ1bWVudERp
ZEJlZ2luRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aW5zdHJ1bWVudERp
ZENhbmNlbEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omluc3RydW1lbnRX
aWxsQ29tcG9zaXRlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp1cGRhdGVCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmFuaW1hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlkRXhpdENvbXBv
c2l0aW5nTW9kZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogdGVz
dHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaDoKKyAgICAgICAgKE1vY2tXZWJMYXllclRy
ZWVWaWV3Q2xpZW50KToKKwogMjAxMy0wMy0wNCAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUm9sbCBjaHJvbWl1bSBERVBTIDE4NTY2
MiAtPiAxODU5NjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViTGF5ZXJUcmVlVmlldy5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJM
YXllclRyZWVWaWV3LmgKaW5kZXggZDUyODcyOTBjZjBkODFjMjk0MzFiYzBkZWRhYjQ5MTY0YThh
M2VlZi4uZTVmYzBlYjBhMThiNTliZTI5MjVhZDE2ODgzZGI4MTA3YzE2MDQ5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKKysr
IGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKQEAg
LTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGbG93IGNvbnRyb2wgYW5kIHNjaGVk
dWxpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgICAvLyBS
ZXF1ZXN0cyBhbiB1cGRhdGVBbmltYXRpb25zKCkgY2FsbC4KKyAgICAvLyBJbmRpY2F0ZXMgdGhh
dCBhbiBhbmltYXRpb24gbmVlZHMgdG8gYmUgdXBkYXRlZC4KICAgICB2aXJ0dWFsIHZvaWQgc2V0
TmVlZHNBbmltYXRlKCkgPSAwOwogCiAgICAgLy8gSW5kaWNhdGVzIHRoYXQgdGhlIHZpZXcgbmVl
ZHMgdG8gYmUgcmVkcmF3bi4gVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB3aGVuIHRoZSBmcm9udGJ1
ZmZlciBpcyBkYW1hZ2VkLgpAQCAtMTQwLDIwICsxNDAsNiBAQCBwdWJsaWM6CiAgICAgLy8gSW5k
aWNhdGVzIHdoZXRoZXIgYSBjb21taXQgaXMgcGVuZGluZy4KICAgICB2aXJ0dWFsIGJvb2wgY29t
bWl0UmVxdWVzdGVkKCkgY29uc3QgPSAwOwogCi0gICAgLy8gVHJpZ2dlcnMgYSBjb21wb3NpdGlu
ZyBwYXNzLiBJZiB0aGUgY29tcG9zaXRvciB0aHJlYWQgd2FzIG5vdAotICAgIC8vIGVuYWJsZWQg
dmlhIFdlYkNvbXBvc2l0b3JTdXBwb3J0Ojppbml0aWFsaXplLCB0aGUgY29tcG9zaXRpbmcgcGFz
cyBoYXBwZW5zCi0gICAgLy8gaW1tZWRpYXRlbHkuIElmIGl0IGlzIGVuYWJsZWQsIHRoZSBjb21w
b3NpdGluZyBwYXNzIHdpbGwgaGFwcGVuIGF0IGEKLSAgICAvLyBsYXRlciB0aW1lLiBCZWZvcmUg
dGhlIGNvbXBvc2l0aW5nIHBhc3MgaGFwcGVucyAoaS5lLiBiZWZvcmUgY29tcG9zaXRlKCkKLSAg
ICAvLyByZXR1cm5zIHdoZW4gdGhlIGNvbXBvc2l0b3IgdGhyZWFkIGlzIGRpc2FibGVkKSwgV2Vi
Q29udGVudExheWVycyB3aWxsIGJlCi0gICAgLy8gYXNrZWQgdG8gcGFpbnQgdGhlaXIgZGlydHkg
cmVnaW9uLCB0aHJvdWdoCi0gICAgLy8gV2ViQ29udGVudExheWVyQ2xpZW50OjpwYWludENvbnRl
bnRzLgotICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoKSA9IDA7Ci0KLSAgICAvLyBJbW1lZGlh
dGVseSB1cGRhdGUgYW5pbWF0aW9ucy4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIHdoZW4gZnJh
bWUgc2NoZWR1bGluZyBpcyBoYW5kbGVkIGJ5Ci0gICAgLy8gdGhlIFdlYkxheWVyVHJlZVZpZXcg
dXNlciBhbmQgbm90IGludGVybmFsbHkgYnkgdGhlIGNvbXBvc2l0b3IsIG1lYW5pbmcgb25seSBp
biBzaW5nbGUtdGhyZWFkZWQKLSAgICAvLyBtb2RlLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVB
bmltYXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgPSAwOwotCiAgICAgLy8gUmVsYXlzIHRo
ZSBlbmQgb2YgYSBmbGluZyBhbmltYXRpb24uCiAgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BGbGlu
Z2luZygpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCmluZGV4IGFkYTU4OWMxY2Q1NjIyMzkwYzhhZDJj
MzcwODc1YmIzNWE1ZjlmMTkuLmU0Yjk0YjBhYzJiOWQxMDU1ZjdlNmQxY2E4MmExMTYxZjVmODEx
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJU
cmVlVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
TGF5ZXJUcmVlVmlld0NsaWVudC5oCkBAIC0zNyw0NCArMzcsMTIgQEAgc3RydWN0IFdlYlNpemU7
CiAKIGNsYXNzIFdlYkxheWVyVHJlZVZpZXdDbGllbnQgewogcHVibGljOgotICAgIC8vIEluZGlj
YXRlcyB0byB0aGUgZW1iZWRkZXIgdGhhdCB0aGUgY29tcG9zaXRvciBpcyBhYm91dCB0byBiZWdp
biBhCi0gICAgLy8gZnJhbWUuIFRoaXMgaXMgaXMgYSBzaWduYWwgdG8gZmxvdyBjb250cm9sIG1l
Y2hhbmlzbXMgdGhhdCBhIGZyYW1lIGlzCi0gICAgLy8gYmVnaW5uaW5nLiBUaGlzIGNhbGwgd2ls
bCBiZSBmb2xsb3dlZCBieSB1cGRhdGVBbmltYXRpb25zIGFuZCB0aGVuCi0gICAgLy8gbGF5b3V0
LCB3aGljaCBzaG91bGQgYmUgdXNlZCBmb3IgYWN0dWFsIGFuaW1hdGlvbiBvciB0cmVlIG1hbmlw
dWxhdGlvbgotICAgIC8vIHRhc2tzLiAgRklYTUU6IG1ha2UgcHVyZSB2aXJ0dWFsIG9uY2UgdXBz
dHJlYW0gZGVwcyBhcmUgc2F0aXNmaWVkLgotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVnaW5GcmFt
ZSgpIHsgfQotCi0gICAgLy8gSW5kaWNhdGVzIHRoYXQgbWFpbiB0aHJlYWQgdGFza3MgYXNzb2Np
YXRlZCB3aXRoIGZyYW1lIHJlbmRlcmluZyBoYXZlIGNvbXBsZXRlZC4KLSAgICAvLyBJc3N1ZWQg
dW5jb25kaXRpb25hbGx5LCBldmVuIGlmIHRoZSBjb250ZXh0IHdhcyBsb3N0IGluIHRoZSBwcm9j
ZXNzLgotICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkZyYW1lKCkgeyB9Ci0KLSAgICAvLyBVcGRh
dGVzIGFuaW1hdGlvbiBhbmQgbGF5b3V0LiBUaGVzZSBhcmUgY2FsbGVkIGJlZm9yZSB0aGUgY29t
cG9zaXRpbmcKLSAgICAvLyBwYXNzIHNvIHRoYXQgbGF5ZXJzIGNhbiBiZSB1cGRhdGVkIGF0IHRo
ZSBnaXZlbiBmcmFtZSB0aW1lLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRv
dWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYXlv
dXQoKSA9IDA7Ci0KLSAgICAvLyBBcHBsaWVzIGEgc2Nyb2xsIGRlbHRhIHRvIHRoZSByb290IGxh
eWVyLCB3aGljaCBpcyBidW5kbGVkIHdpdGggYSBwYWdlCi0gICAgLy8gc2NhbGUgZmFjdG9yIHRo
YXQgbWF5IGFwcGx5IGEgQ1NTIHRyYW5zZm9ybSBvbiB0aGUgd2hvbGUgZG9jdW1lbnQgKHVzZWQK
LSAgICAvLyBmb3IgbW9iaWxlLWRldmljZSBwaW5jaCB6b29taW5nKS4gVGhpcyBpcyB0cmlnZ2Vy
ZWQgYnkgZXZlbnRzIHNlbnQgdG8gdGhlCi0gICAgLy8gY29tcG9zaXRvciB0aHJlYWQgdGhyb3Vn
aCB0aGUgV2ViQ29tcG9zaXRvciBpbnRlcmZhY2UuCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Ny
b2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNjYWxlRmFjdG9y
KSA9IDA7Ci0KLSAgICAvLyBDcmVhdGVzIHRoZSBvdXRwdXQgc3VyZmFjZS4gVGhpcyBtYXkgYmUg
Y2FsbGVkIG1vcmUgdGhhbiBvbmNlCi0gICAgLy8gaWYgdGhlIGNvbnRleHQgZ2V0cyBsb3N0Lgot
ICAgIHZpcnR1YWwgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UqIGNyZWF0ZU91dHB1dFN1cmZh
Y2UoKSB7IHJldHVybiAwOyB9Ci0KLSAgICAvLyBTaWduYWxzIGEgc3VjY2Vzc2Z1bCByZWNyZWF0
aW9uIG9mIHRoZSBvdXRwdXQgc3VyZmFjZSAoZS5nLiBhZnRlciBhIGxvc3QKLSAgICAvLyAzRCBj
b250ZXh0IGV2ZW50KS4KKyAgICAvLyBERVBSRUNBVEVEIC0gV0lMTCBCRSBSRU1PVkVEIFNPT04K
KyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiBzY3Jv
bGxEZWx0YSwgZmxvYXQgc2NhbGVGYWN0b3IpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVB
bmltYXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY3JlYXRlT3V0cHV0U3VyZmFjZShib29sIHN1Y2Nlc3MpIHsgfQotCiAgICAgdmlydHVhbCBX
ZWJJbnB1dEhhbmRsZXIqIGNyZWF0ZUlucHV0SGFuZGxlcigpIHsgcmV0dXJuIDA7IH0KIAotICAg
IC8vIFNjaGVkdWxlcyBhIGNvbXBvc2l0aW5nIHBhc3MsIG1lYW5pbmcgdGhlIGNsaWVudCBzaG91
bGQgY2FsbAotICAgIC8vIFdlYkxheWVyVHJlZVZpZXc6OmNvbXBvc2l0ZSBhdCBhIGxhdGVyIHRp
bWUuIFRoaXMgaXMgb25seSBjYWxsZWQgaWYgdGhlCi0gICAgLy8gY29tcG9zaXRvciB0aHJlYWQg
aXMgZGlzYWJsZWQ7IHdoZW4gZW5hYmxlZCwgdGhlIGNvbXBvc2l0b3Igd2lsbAotICAgIC8vIGlu
dGVybmFsbHkgc2NoZWR1bGUgYSBjb21wb3NpdGluZyBwYXNzIHdoZW4gbmVlZGVkLgotICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0ZSgpID0gMDsKLQogcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgfldlYkxheWVyVHJlZVZpZXdDbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5kZXggMzhjNjZkZmU4OWY5M2ZhODhl
MThkNTA2ODA4NDU2MTY2YzAyNjczMy4uZTQ0NmUyYTY5M2Y5MWExNzFjNWUyYzkzZjMwMTg2NDBk
OGQ1NWUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmll
d0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGll
bnQuaApAQCAtMTIzLDExICsxMjMsNiBAQCBwdWJsaWM6CiAgICAgLy8gQ3JlYXRlIGEgc2Vzc2lv
biBzdG9yYWdlIG5hbWVzcGFjZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgV2ViVmlldy4K
ICAgICB2aXJ0dWFsIFdlYlN0b3JhZ2VOYW1lc3BhY2UqIGNyZWF0ZVNlc3Npb25TdG9yYWdlTmFt
ZXNwYWNlKHVuc2lnbmVkIHF1b3RhKSB7IHJldHVybiAwOyB9CiAKLSAgICAvLyBERVBSRUNBVEVE
OiBDcmVhdGVzIGEgZ3JhcGhpY3MgY29udGV4dCB0aGF0IHJlbmRlcnMgdG8gdGhlIGNsaWVudCdz
IFdlYlZpZXcuCi0gICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogY3JlYXRlR3JhcGhp
Y3NDb250ZXh0M0QoY29uc3QgV2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMmKSB7IHJl
dHVybiAwOyB9Ci0KLSAgICAvLyBDcmVhdGVzIHRoZSBvdXRwdXQgc3VyZmFjZSB0aGF0IHJlbmRl
cnMgdG8gdGhlIGNsaWVudCdzIFdlYlZpZXcuCi0gICAgdmlydHVhbCBXZWJDb21wb3NpdG9yT3V0
cHV0U3VyZmFjZSogY3JlYXRlT3V0cHV0U3VyZmFjZSgpIHsgcmV0dXJuIDA7IH0KIAogICAgIC8v
IE1pc2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJXaWRnZXQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5o
CmluZGV4IGRjYzE5MjE3NGRiMGE1YTg2NWZkZTJkNzc3YmVmYTFiOTA1NDYxNGYuLjkxNTNkMjI3
NWVkNmQwYmFiY2FmZWUxYzY1YWI3ODM5NjllYjM2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYldpZGdldC5oCkBAIC00Miw2ICs0Miw3IEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgV2ViSW5wdXRFdmVudDsKK2NsYXNzIFdlYklucHV0SGFuZGxlcjsKIGNsYXNz
IFdlYkxheWVyVHJlZVZpZXc7CiBjbGFzcyBXZWJNb3VzZUV2ZW50OwogY2xhc3MgV2ViU3RyaW5n
OwpAQCAtODAsNyArODEsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDYWxsZWQgdG8gdXBkYXRlIGlt
cGVyYXRpdmUgYW5pbWF0aW9uIHN0YXRlLiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlCiAg
ICAgLy8gcGFpbnQsIGFsdGhvdWdoIHRoZSBjbGllbnQgY2FuIHJhdGUtbGltaXQgdGhlc2UgY2Fs
bHMuCi0gICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoZG91YmxlIGlnbm9yZWQpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkgeyB9CiAK
ICAgICAvLyBDYWxsZWQgdG8gbGF5b3V0IHRoZSBXZWJXaWRnZXQuIFRoaXMgTVVTVCBiZSBjYWxs
ZWQgYmVmb3JlIFBhaW50LAogICAgIC8vIGFuZCBpdCBtYXkgcmVzdWx0IGluIGNhbGxzIHRvIFdl
YldpZGdldENsaWVudDo6ZGlkSW52YWxpZGF0ZVJlY3QuCkBAIC05MCw2ICs5MSwxMCBAQCBwdWJs
aWM6CiAgICAgLy8gc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgcGFpbnQuCiAgICAgdmlydHVhbCB2
b2lkIGVudGVyRm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbnRlcikgeyB9CiAKKyAgICAvLyBD
YWxsZWQgdG8gbm90aWZ5IHRoZSBXZWJXaWRnZXQgdGhhdCB0aGUgd2lkZ2V0IGhhcyBleGl0ZWQg
Y29tcG9zaXRpbmcKKyAgICAvLyBtb2RlIGFuZCBjYW5ub3QgcmVlbnRlci4KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkRXhpdENvbXBvc2l0aW5nTW9kZSgpIHsgfQorCiAgICAgZW51bSBQYWludE9wdGlv
bnMgewogICAgICAgICAvLyBBdHRlbXB0IHRvIGZ1bGZpbGwgdGhlIHBhaW50aW5nIHJlcXVlc3Qg
YnkgcmVhZGluZyBiYWNrIGZyb20gdGhlCiAgICAgICAgIC8vIGNvbXBvc2l0b3IsIGFzc3VtaW5n
IHdlJ3JlIHVzaW5nIGEgY29tcG9zaXRvciB0byByZW5kZXIuCkBAIC0xMTQsMTYgKzExOSw2IEBA
IHB1YmxpYzoKICAgICAvLyB3YXJyYW50ZWQgYmVmb3JlIHBhaW50aW5nIGFnYWluKS4KICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiwgY29uc3QgV2ViUmVjdCYgdmlld1BvcnQsIFBh
aW50T3B0aW9ucyA9IFJlYWRiYWNrRnJvbUNvbXBvc2l0b3JJZkF2YWlsYWJsZSkgeyB9CiAKLSAg
ICAvLyBJbiBub24tdGhyZWFkZWQgY29tcG9zaXRpbmcgbW9kZSwgdHJpZ2dlcnMgY29tcG9zaXRp
bmcgb2YgdGhlIGN1cnJlbnQKLSAgICAvLyBsYXllcnMgb250byB0aGUgc2NyZWVuLiBZb3UgTVVT
VCBjYWxsIExheW91dCBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZCwKLSAgICAvLyBmb3IgdGhl
IHNhbWUgcmVhc29ucyBkZXNjcmliZWQgaW4gdGhlIHBhaW50IG1ldGhvZCBhYm92ZQotICAgIC8v
Ci0gICAgLy8gSW4gdGhyZWFkZWQgY29tcG9zaXRpbmcgbW9kZSwgaW5kaWNhdGVzIHRoYXQgdGhl
IHdpZGdldCBzaG91bGQgdXBkYXRlCi0gICAgLy8gaXRzZWxmLCBmb3IgZXhhbXBsZSBkdWUgdG8g
d2luZG93IGRhbWFnZS4gVGhlIHJlZHJhdyB3aWxsIGJlZ2luCi0gICAgLy8gYXN5bmNocm9ub3Vz
bHkgYW5kIHBlcmZvcm0gbGF5b3V0IGFuZCBhbmltYXRpb24gaW50ZXJuYWxseS4gRG8gbm90IGNh
bGwKLSAgICAvLyBhbmltYXRlIG9yIGxheW91dCBpbiB0aGlzIGNhc2UuCi0gICAgdmlydHVhbCB2
b2lkIGNvbXBvc2l0ZShib29sIGZpbmlzaCkgPSAwOwotCiAgICAgLy8gUmV0dXJucyB0cnVlIGlm
IHdlJ3ZlIHN0YXJ0ZWQgdHJhY2tpbmcgcmVwYWludCByZWN0YW5nbGVzLgogICAgIHZpcnR1YWwg
Ym9vbCBpc1RyYWNraW5nUmVwYWludHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCkBAIC0x
NDgsNiArMTQzLDE2IEBAIHB1YmxpYzoKICAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBw
b2ludCBoaXRzIGFueSByZWdpc3RlcmVkIHRvdWNoIGV2ZW50IGhhbmRsZXJzLgogICAgIHZpcnR1
YWwgYm9vbCBoYXNUb3VjaEV2ZW50SGFuZGxlcnNBdChjb25zdCBXZWJQb2ludCYpIHsgcmV0dXJu
IHRydWU7IH0KIAorICAgIC8vIFJlcXVlc3QgdGhhdCB0aGUgV2ViV2lkZ2V0IGNyZWF0ZSBhbiBp
bnB1dCBoYW5kbGVyIGZvciBwcm9jZXNzaW5nIGlucHV0CisgICAgLy8gZXZlbnRzIGludGVuZGVk
IGZvciB0aGlzIHdpZGdldCBvZmYgb2YgdGhlIG1haW4gdGhyZWFkLgorICAgIHZpcnR1YWwgV2Vi
SW5wdXRIYW5kbGVyKiBjcmVhdGVJbnB1dEhhbmRsZXIoKSB7IHJldHVybiAwOyB9CisKKyAgICAv
LyBBcHBsaWVzIGEgc2Nyb2xsIGRlbHRhIHRvIHRoZSByb290IGxheWVyLCB3aGljaCBpcyBidW5k
bGVkIHdpdGggYSBwYWdlCisgICAgLy8gc2NhbGUgZmFjdG9yIHRoYXQgbWF5IGFwcGx5IGEgQ1NT
IHRyYW5zZm9ybSBvbiB0aGUgd2hvbGUgZG9jdW1lbnQgKHVzZWQKKyAgICAvLyBmb3IgbW9iaWxl
LWRldmljZSBwaW5jaCB6b29taW5nKS4gVGhpcyBpcyB0cmlnZ2VyZWQgYnkgZXZlbnRzIHNlbnQg
dG8gdGhlCisgICAgLy8gY29tcG9zaXRvciB0aHJlYWQgdGhyb3VnaCB0aGUgV2ViSW5wdXRIYW5k
bGVyIGludGVyZmFjZS4KKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25z
dCBXZWJTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgc2NhbGVGYWN0b3IpIHsgfQorCiAgICAgLy8g
Q2FsbGVkIHRvIGluZm9ybSB0aGUgV2ViV2lkZ2V0IHRoYXQgbW91c2UgY2FwdHVyZSB3YXMgbG9z
dC4KICAgICB2aXJ0dWFsIHZvaWQgbW91c2VDYXB0dXJlTG9zdCgpIHsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXRDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5oCmluZGV4IDQ4ZmU1ODgz
NWM1MTk4NTgxM2Y4MjZiY2M4YjE5NTU4OWYzMDQyNGQuLmJmNTkzNTQxNDlmMGMwMWQ2ZjVjNTM5
YTM1Njc1ZmI2YjI0MzJiOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYldpZGdldENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYldpZGdldENsaWVudC5oCkBAIC0xMDEsOSArMTAxLDYgQEAgcHVibGljOgogICAgIC8vIHBy
b2Nlc3MuCiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKSB7IH0KIAot
ICAgIC8vIENhbGxlZCB3aGVuIGEgY2FsbCB0byBXZWJXaWRnZXQ6OmNvbXBvc2l0ZSBpcyByZXF1
aXJlZAotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0ZSgpIHsgfQotCiAgICAgLy8g
Q2FsbGVkIHdoZW4gYSBjYWxsIHRvIFdlYldpZGdldDo6YW5pbWF0ZSBpcyByZXF1aXJlZAogICAg
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhlbHBlclBsdWdpbkltcGwuY3BwCmluZGV4IGIyNDJmOGZm
MTVmODlhYjI4NjU0MzllY2RiODZlY2M2Mjk2YmM2OWQuLmY0MmFkODBkNjBlNWQxNjNmY2I4ZmIw
YWNjNzE4NWQ5NjkyNjIwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkhlbHBlclBsdWdpbkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkhlbHBlclBsdWdpbkltcGwuY3BwCkBAIC0yMTUsMTQgKzIxNSw2IEBAIHZvaWQgV2ViSGVs
cGVyUGx1Z2luSW1wbDo6ZGVzdG9yeVBhZ2UoKQogICAgIG1fcGFnZS5jbGVhcigpOwogfQogCi12
b2lkIFdlYkhlbHBlclBsdWdpbkltcGw6OnNldENvbXBvc2l0b3JTdXJmYWNlUmVhZHkoKQotewot
fQotCi12b2lkIFdlYkhlbHBlclBsdWdpbkltcGw6OmNvbXBvc2l0ZShib29sKQotewotfQotCiB2
b2lkIFdlYkhlbHBlclBsdWdpbkltcGw6OmxheW91dCgpCiB7CiAgICAgUGFnZVdpZGdldERlbGVn
YXRlOjpsYXlvdXQobV9wYWdlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkhlbHBlclBsdWdpbkltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkhlbHBlclBsdWdpbkltcGwuaAppbmRleCBjNmE3MjFjNzQwYjE2ZGExODg0ZDBjM2Y5
OTcxODdiM2I5YzAyYTExLi41ZTE2NTJiNTkyYWEwYzc4ZjQ0MzVkMThkY2RlNjdlYjgwYTRjNzJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5J
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSGVscGVyUGx1Z2luSW1w
bC5oCkBAIC02Nyw4ICs2Nyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXN0b3J5UGFnZSgpOwog
CiAgICAgLy8gV2ViV2lkZ2V0IG1ldGhvZHM6Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbXBvc2l0
b3JTdXJmYWNlUmVhZHkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcG9zaXRlKGJv
b2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNs
b3NlKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJQYWdlUG9wdXBJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQ
b3B1cEltcGwuY3BwCmluZGV4IGVjYmRhMzc5OGNhOGUwOWE0ZDdkY2RmMzQ1NzQ1YmEwOTc3NjE1
N2UuLjVhNjdmNDFiOGZkNDAyMDU5ZDYxZDE0YmYwNTg2Njg3YjQ3MWYwNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCkBAIC0yNDYsMTQg
KzI0Niw2IEBAIHZvaWQgV2ViUGFnZVBvcHVwSW1wbDo6YW5pbWF0ZShkb3VibGUpCiAgICAgUGFn
ZVdpZGdldERlbGVnYXRlOjphbmltYXRlKG1fcGFnZS5nZXQoKSwgbW9ub3RvbmljYWxseUluY3Jl
YXNpbmdUaW1lKCkpOwogfQogCi12b2lkIFdlYlBhZ2VQb3B1cEltcGw6OnNldENvbXBvc2l0b3JT
dXJmYWNlUmVhZHkoKQotewotfQotCi12b2lkIFdlYlBhZ2VQb3B1cEltcGw6OmNvbXBvc2l0ZShi
b29sKQotewotfQotCiB2b2lkIFdlYlBhZ2VQb3B1cEltcGw6OmxheW91dCgpCiB7CiAgICAgUGFn
ZVdpZGdldERlbGVnYXRlOjpsYXlvdXQobV9wYWdlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuaAppbmRleCBmYjk3YzdkMDFlNTNmYWZjYzZh
ZjZjZDQ2NWM5NTc3ZjFiMjVhZDM4Li44Yzg3NjcyM2EwZmExMmMxOTc5ZDE2Y2VlMWQxMDA2YjFk
OGIwMDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9w
dXBJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1w
bC5oCkBAIC02OSw4ICs2OSw2IEBAIHByaXZhdGU6CiAgICAgLy8gV2ViV2lkZ2V0IGZ1bmN0aW9u
cwogICAgIHZpcnR1YWwgV2ViU2l6ZSBzaXplKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGFuaW1hdGUoZG91YmxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcG9zaXRv
clN1cmZhY2VSZWFkeSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21wb3NpdGUoYm9v
bCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0JiwgUGFpbnRPcHRpb25z
ID0gUmVhZGJhY2tGcm9tQ29tcG9zaXRvcklmQXZhaWxhYmxlKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgcmVzaXplKGNvbnN0IFdlYlNpemUmKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKaW5kZXggODM0NDg2M2ZhY2Nl
ZDM4OTlkNzk5NmQzNWIwZmRiZjA2YjMyNTY0Zi4uOTg1YTAzZWIxMzI3MzE0NzQ5NGE5MDBmYWFj
NzBjYjNjNTAxNDk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UG9wdXBNZW51SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9w
dXBNZW51SW1wbC5jcHAKQEAgLTIxMSwxNiArMjExLDYgQEAgdm9pZCBXZWJQb3B1cE1lbnVJbXBs
Ojp0aGVtZUNoYW5nZWQoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViUG9w
dXBNZW51SW1wbDo6c2V0Q29tcG9zaXRvclN1cmZhY2VSZWFkeSgpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpjb21wb3NpdGUoYm9vbCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiBib29sIFdlYlBvcHVwTWVudUltcGw6OmhhbmRs
ZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgaW5wdXRFdmVudCkKIHsKICAgICBpZiAo
IW1fd2lkZ2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9w
dXBNZW51SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1w
bC5oCmluZGV4IGM5ZjA4YzRiMjNiZDAzOTgzYThkZjBjMzU4ZTkxNjBlOTI4YjkyMDguLjU5MjA4
NTU5NGYzOGYxNWI2NmQ2Y2E0OTgzZDIwMGEyNDlhMGMwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmgKQEAgLTc1LDggKzc1LDYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnQoV2ViQ2FudmFzKiwgY29uc3QgV2ViUmVjdCYsIFBhaW50T3B0aW9ucyA9IFJlYWRiYWNr
RnJvbUNvbXBvc2l0b3JJZkF2YWlsYWJsZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHRo
ZW1lQ2hhbmdlZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wb3NpdG9yU3Vy
ZmFjZVJlYWR5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBvc2l0ZShib29sIGZp
bmlzaCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGhhbmRsZUlucHV0RXZlbnQoY29uc3Qg
V2ViSW5wdXRFdmVudCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtb3VzZUNhcHR1cmVM
b3N0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJvb2wgZW5hYmxlKSBP
VkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRl
eCA5Y2ZkNmI5YzcxYjU5NDNhOGU0ZjRjMTUyY2UwNTA1ZTViYWMwOGEyLi5hY2IwNjI2Y2VjY2M1
YWM4NTYwZjZkNjA1MDYzZDIxZWRhMzNlOGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xODE2LDI4ICsxODE2LDExIEBAIHZvaWQgV2ViVmlld0lt
cGw6OnVwZGF0ZUJhdHRlcnlTdGF0dXMoY29uc3QgV2ViQmF0dGVyeVN0YXR1cyYgc3RhdHVzKQog
CiB2b2lkIFdlYlZpZXdJbXBsOjphbmltYXRlKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGlt
ZSkKIHsKLSAgICB1cGRhdGVBbmltYXRpb25zKG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKLX0K
LQotdm9pZCBXZWJWaWV3SW1wbDo6d2lsbEJlZ2luRnJhbWUoKQotewotICAgIG1fY2xpZW50LT53
aWxsQmVnaW5Db21wb3NpdG9yRnJhbWUoKTsKLX0KKyAgICBUUkFDRV9FVkVOVDAoIndlYmtpdCIs
ICJXZWJWaWV3SW1wbDo6YW5pbWF0ZSIpOwogCi12b2lkIFdlYlZpZXdJbXBsOjpkaWRCZWdpbkZy
YW1lKCkKLXsKLSAgICBpZiAobV9kZXZUb29sc0FnZW50KQotICAgICAgICBtX2RldlRvb2xzQWdl
bnQtPmRpZENvbXBvc2l0ZSgpOwotfQotCi12b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRp
b25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkKLXsKICAgICBpZiAoIW1vbm90b25p
Y0ZyYW1lQmVnaW5UaW1lKQogICAgICAgICBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSA9IG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogCi0jaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FKQotICAgIFRSQUNFX0VWRU5UMCgid2Via2l0IiwgIldlYlZpZXdJbXBsOjp1cGRhdGVB
bmltYXRpb25zIik7Ci0KICAgICAvLyBDcmVhdGUgc3ludGhldGljIHdoZWVsIGV2ZW50cyBhcyBu
ZWNlc3NhcnkgZm9yIGZsaW5nLgogICAgIGlmIChtX2dlc3R1cmVBbmltYXRpb24pIHsKICAgICAg
ICAgaWYgKG1fZ2VzdHVyZUFuaW1hdGlvbi0+YW5pbWF0ZShtb25vdG9uaWNGcmFtZUJlZ2luVGlt
ZSkpCkBAIC0xODU0LDEzICsxODM3LDE3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUFuaW1h
dGlvbnMoZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKQogICAgIGlmICghbV9wYWdlKQog
ICAgICAgICByZXR1cm47CiAKKyAgICBQYWdlV2lkZ2V0RGVsZWdhdGU6OmFuaW1hdGUobV9wYWdl
LmdldCgpLCBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7CisKICAgICBpZiAobV9jb250aW51b3Vz
UGFpbnRpbmdFbmFibGVkKSB7CiAgICAgICAgIENvbnRpbnVvdXNQYWludGVyOjpzZXROZWVkc0Rp
c3BsYXlSZWN1cnNpdmUobV9yb290R3JhcGhpY3NMYXllciwgbV9wYWdlT3ZlcmxheXMuZ2V0KCkp
OwogICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVBbmltYXRpb24oKTsKICAgICB9Cit9CiAKLSAg
ICBQYWdlV2lkZ2V0RGVsZWdhdGU6OmFuaW1hdGUobV9wYWdlLmdldCgpLCBtb25vdG9uaWNGcmFt
ZUJlZ2luVGltZSk7Ci0jZW5kaWYKK3ZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMo
ZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKQoreworICAgIGFuaW1hdGUobW9ub3Rvbmlj
RnJhbWVCZWdpblRpbWUpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpsYXlvdXQoKQpAQCAtMTk2
NiwyMSArMTk1Myw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnRoZW1lQ2hhbmdlZCgpCiAgICAgdmll
dy0+aW52YWxpZGF0ZVJlY3QoZGFtYWdlZFJlY3QpOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpj
b21wb3NpdGUoYm9vbCkKLXsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAg
aWYgKFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmlzVGhyZWFkaW5n
RW5hYmxlZCgpKQotICAgICAgICBtX2xheWVyVHJlZVZpZXctPnNldE5lZWRzUmVkcmF3KCk7Ci0g
ICAgZWxzZSB7Ci0gICAgICAgIEFTU0VSVChpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUo
KSk7Ci0gICAgICAgIGlmICghcGFnZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IG1fbGF5ZXJUcmVlVmlldy0+Y29tcG9zaXRlKCk7Ci0gICAgfQotI2VuZGlmCi19Ci0KIHZvaWQg
V2ViVmlld0ltcGw6OnNldE5lZWRzUmVkcmF3KCkKIHsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCkBAIC00MjA3LDExICs0MTc5LDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGJvb2wgYWN0aXZlKQogCiAjZW5kaWYKIAotV2Vi
Q29tcG9zaXRvck91dHB1dFN1cmZhY2UqIFdlYlZpZXdJbXBsOjpjcmVhdGVPdXRwdXRTdXJmYWNl
KCkKLXsKLSAgICByZXR1cm4gbV9jbGllbnQtPmNyZWF0ZU91dHB1dFN1cmZhY2UoKTsKLX0KLQog
V2ViSW5wdXRIYW5kbGVyKiBXZWJWaWV3SW1wbDo6Y3JlYXRlSW5wdXRIYW5kbGVyKCkKIHsKICAg
ICBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCogaGFuZGxlciA9IG5ldyBXZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbCgpOwpAQCAtNDI1MCwyOCArNDIxNywyNCBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYlNpemUmIHNjcm9sbERlbHRhLCBm
bG9hdCBwYWdlU2NhbAogCiB2b2lkIFdlYlZpZXdJbXBsOjpkaWRSZWNyZWF0ZU91dHB1dFN1cmZh
Y2UoYm9vbCBzdWNjZXNzKQogewotICAgIC8vIFN3aXRjaCBiYWNrIHRvIHNvZnR3YXJlIHJlbmRl
cmluZyBtb2RlLCBpZiBuZWNlc3NhcnkKLSAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgQVNT
RVJUKG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKTsKLSAgICAgICAgc2V0SXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGZhbHNlKTsKLSAgICAgICAgbV9jb21wb3NpdG9yQ3Jl
YXRpb25GYWlsZWQgPSB0cnVlOwotICAgICAgICBtX2NsaWVudC0+ZGlkSW52YWxpZGF0ZVJlY3Qo
SW50UmVjdCgwLCAwLCBtX3NpemUud2lkdGgsIG1fc2l6ZS5oZWlnaHQpKTsKKyAgICBpZiAoIXN1
Y2Nlc3MpCisgICAgICAgIGRpZEV4aXRDb21wb3NpdGluZ01vZGUoKTsKK30KIAotICAgICAgICAv
LyBGb3JjZSBhIHN0eWxlIHJlY2FsYyB0byByZW1vdmUgYWxsIHRoZSBjb21wb3NpdGVkIGxheWVy
cy4KLSAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2NoZWR1bGVGb3Jj
ZWRTdHlsZVJlY2FsYygpOwotICAgICAgICByZXR1cm47Ci0gICAgfQordm9pZCBXZWJWaWV3SW1w
bDo6ZGlkRXhpdENvbXBvc2l0aW5nTW9kZSgpCit7CisgICAgQVNTRVJUKG1faXNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQWN0aXZlKTsKKyAgICBzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3Rp
dmUoZmFsc2UpOworICAgIG1fY29tcG9zaXRvckNyZWF0aW9uRmFpbGVkID0gdHJ1ZTsKKyAgICBt
X2NsaWVudC0+ZGlkSW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCBtX3NpemUud2lkdGgsIG1f
c2l6ZS5oZWlnaHQpKTsKKworICAgIC8vIEZvcmNlIGEgc3R5bGUgcmVjYWxjIHRvIHJlbW92ZSBh
bGwgdGhlIGNvbXBvc2l0ZWQgbGF5ZXJzLgorICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPmRvY3Vt
ZW50KCktPnNjaGVkdWxlRm9yY2VkU3R5bGVSZWNhbGMoKTsKIAogICAgIGlmIChtX3BhZ2VPdmVy
bGF5cykKICAgICAgICAgbV9wYWdlT3ZlcmxheXMtPnVwZGF0ZSgpOwogfQogCi12b2lkIFdlYlZp
ZXdJbXBsOjpzY2hlZHVsZUNvbXBvc2l0ZSgpCi17Ci0gICAgQVNTRVJUKCFQbGF0Zm9ybTo6Y3Vy
cmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5pc1RocmVhZGluZ0VuYWJsZWQoKSk7Ci0gICAg
bV9jbGllbnQtPnNjaGVkdWxlQ29tcG9zaXRlKCk7Ci19Ci0KIHZvaWQgV2ViVmlld0ltcGw6OnVw
ZGF0ZUxheWVyVHJlZVZpZXdwb3J0KCkKIHsKICAgICBpZiAoIXBhZ2UoKSB8fCAhbV9ub25Db21w
b3NpdGVkQ29udGVudEhvc3QgfHwgIW1fbGF5ZXJUcmVlVmlldykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGQ0NmEzNzViMzlhNzlhZWM4ZmNkYjAxNzUyMTlh
NjM1MGZmYzE1YWMuLjY0ZjczNmY4MjlkYjQ2ZGVmZGRmMWM4NTlhMjZjZDIzNTNmOTIxZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTQ0LDE1ICsxNDQs
MTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsRXhpdEZ1bGxTY3JlZW4oKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxTY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgYW5p
bWF0ZShkb3VibGUpOwotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsgLy8gQWxzbyBpbXBsZW1l
bnRzIFdlYkxheWVyVHJlZVZpZXdDbGllbnQ6OmxheW91dCgpCisgICAgdmlydHVhbCB2b2lkIGxh
eW91dCgpOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wg
ZW5hYmxlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiwgY29u
c3QgV2ViUmVjdCYsIFBhaW50T3B0aW9ucyA9IFJlYWRiYWNrRnJvbUNvbXBvc2l0b3JJZkF2YWls
YWJsZSk7CiAgICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNoYW5nZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
Y29tcG9zaXRlKGJvb2wgZmluaXNoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXco
KTsKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlSW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50
Jik7CiAgICAgdmlydHVhbCBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVyc0F0KGNvbnN0IFdlYlBv
aW50Jik7CisgICAgdmlydHVhbCBXZWJJbnB1dEhhbmRsZXIqIGNyZWF0ZUlucHV0SGFuZGxlcigp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdl
YlNpemUmLCBmbG9hdCk7CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlQ2FwdHVyZUxvc3QoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCBlbmFibGUpOwogICAgIHZpcnR1YWwgYm9vbCBz
ZXRDb21wb3NpdGlvbigKQEAgLTE4MSw2ICsxODIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRMb3Nl
UG9pbnRlckxvY2soKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlV2luZG93UmVzaXplclJl
Y3QoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdENvbXBvc2l0aW5nTW9kZSgpOwogCiAgICAg
Ly8gV2ViVmlldyBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplTWFpbkZyYW1l
KFdlYkZyYW1lQ2xpZW50Kik7CkBAIC0zMTYsMTQgKzMxOCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29udGludW91c1BhaW50aW5nRW5hYmxlZChib29sKTsKIAogICAgIC8vIFdl
YkxheWVyVHJlZVZpZXdDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWUoKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5GcmFtZSgpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7Ci0gICAgdmlydHVh
bCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYsIGZsb2F0KTsKLSAgICB2
aXJ0dWFsIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlKiBjcmVhdGVPdXRwdXRTdXJmYWNlKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY3JlYXRlT3V0cHV0U3VyZmFjZShib29s
IHN1Y2Nlc3MpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViSW5wdXRIYW5kbGVyKiBjcmVhdGVJ
bnB1dEhhbmRsZXIoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3Np
dGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVPdXRwdXRTdXJmYWNlKGJvb2wgc3Vj
Y2Vzcyk7CiAKICAgICAvLyBXZWJWaWV3SW1wbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCAy
NjQxMmE1NzczOWQ1ZjBkMDRmNTY4MTA2YzJlOGNlMDJlZjljOTU2Li4wZmJlNWQ3OTBhMDFjOTk3
ZDJhN2M0MDczMDc0ZGFlODk5MGIzZDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTMyLDkg
KzMyLDkgQEAKICNpbmNsdWRlICJSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRl
ICJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oIgotI2luY2x1ZGUgIldlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmgiCiAjaW5jbHVkZSA8
Z3Rlc3QvZ3Rlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxw
dWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViRmxvYXRB
bmltYXRpb25DdXJ2ZS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5o
PgogI2luY2x1ZGUgPHB1YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg+CkBAIC04NSw3ICs4NSw2IEBA
IHByb3RlY3RlZDoKICAgICBPd25QdHI8R3JhcGhpY3NMYXllckNocm9taXVtPiBtX2dyYXBoaWNz
TGF5ZXI7CiAKIHByaXZhdGU6Ci0gICAgTW9ja1dlYkxheWVyVHJlZVZpZXdDbGllbnQgbV9sYXll
clRyZWVWaWV3Q2xpZW50OwogICAgIE93blB0cjxXZWJMYXllclRyZWVWaWV3PiBtX2xheWVyVHJl
ZVZpZXc7CiAgICAgTW9ja0dyYXBoaWNzTGF5ZXJDbGllbnQgbV9jbGllbnQ7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRvckNo
cm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yQ2hyb21pdW1UZXN0LmNwcAppbmRleCA4ZGQyNTVjOGUyNjkzMWNmMzczZWE1YWY0
MzgxZjliZjZhYmRlODkxLi5lZmFkNzgwNmQ1YzBiOWNjZGNjMmY0ZmRhOTE0MTEwMmNhNTk3OWJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW1UZXN0LmNwcApAQCAtMjYsNyArMjYsNiBAQAog
CiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKIAotI2luY2x1ZGUgIkNvbXBvc2l0
b3JGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJGcmFtZVRlc3RIZWxwZXJz
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAiUmVuZGVy
TGF5ZXJCYWNraW5nLmgiCkBAIC00MSw4ICs0MCw4IEBACiAjaW5jbHVkZSAiV2ViVmlld0ltcGwu
aCIKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5o
PgotI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oPgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJMYXllci5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg+CiAj
aW5jbHVkZSA8cHVibGljL1dlYlVuaXRUZXN0U3VwcG9ydC5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKQEAgLTUyLDExICs1MSw2IEBAIG5hbWVzcGFjZSB7CiAKIGNsYXNzIEZha2VXZWJW
aWV3Q2xpZW50IDogcHVibGljIFdlYlZpZXdDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwg
V2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UqIGNyZWF0ZU91dHB1dFN1cmZhY2UoKSBPVkVSUklE
RQotICAgIHsKLSAgICAgICAgcmV0dXJuIFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JT
dXBwb3J0KCktPmNyZWF0ZU91dHB1dFN1cmZhY2VGb3IzRChDb21wb3NpdG9yRmFrZVdlYkdyYXBo
aWNzQ29udGV4dDNEOjpjcmVhdGUoV2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMoKSku
bGVha1B0cigpKTsKLSAgICB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUxheWVyVHJl
ZVZpZXcoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCogY2xpZW50LCBjb25zdCBXZWJMYXllciYgcm9v
dExheWVyLCBjb25zdCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAg
ewogICAgICAgICBtX2xheWVyVHJlZVZpZXcgPSBhZG9wdFB0cihQbGF0Zm9ybTo6Y3VycmVudCgp
LT51bml0VGVzdFN1cHBvcnQoKS0+Y3JlYXRlTGF5ZXJUcmVlVmlld0ZvclRlc3RpbmcoV2ViVW5p
dFRlc3RTdXBwb3J0OjpUZXN0Vmlld1R5cGVVbml0VGVzdCkpOwpAQCAtODAsOSArNzQsOCBAQCBj
bGFzcyBTY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpU
ZXN0IHsKIHB1YmxpYzoKICAgICBTY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtVGVzdCgpCiAg
ICAgICAgIDogbV9iYXNlVVJMKCJodHRwOi8vd3d3LnRlc3QuY29tLyIpCisgICAgICAgICwgbV9j
b21wb3NpdG9ySW5pdGlhbGl6ZXIoMCkKICAgICB7Ci0gICAgICAgIFBsYXRmb3JtOjpjdXJyZW50
KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmluaXRpYWxpemUoMCk7Ci0KICAgICAgICAgLy8gV2Ug
Y2Fubm90IHJldXNlIEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2FkIGhlcmUg
YmVjYXVzZSB0aGUgY29tcG9zaXRpbmcKICAgICAgICAgLy8gc2V0dGluZ3MgbmVlZCB0byBiZSBz
ZXQgYmVmb3JlIHRoZSBwYWdlIGlzIGxvYWRlZC4KICAgICAgICAgbV93ZWJWaWV3SW1wbCA9IHN0
YXRpY19jYXN0PFdlYlZpZXdJbXBsKj4oV2ViVmlldzo6Y3JlYXRlKCZtX21vY2tXZWJWaWV3Q2xp
ZW50KSk7CkBAIC0xMDIsOCArOTUsNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBQbGF0Zm9y
bTo6Y3VycmVudCgpLT51bml0VGVzdFN1cHBvcnQoKS0+dW5yZWdpc3RlckFsbE1vY2tlZFVSTHMo
KTsKICAgICAgICAgbV93ZWJWaWV3SW1wbC0+Y2xvc2UoKTsKLQotICAgICAgICBQbGF0Zm9ybTo6
Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5zaHV0ZG93bigpOwogICAgIH0KIAogICAg
IHZvaWQgbmF2aWdhdGVUbyhjb25zdCBzdGQ6OnN0cmluZyYgdXJsKQpAQCAtMTMyLDYgKzEyMyw3
IEBAIHByb3RlY3RlZDoKICAgICBNb2NrV2ViRnJhbWVDbGllbnQgbV9tb2NrV2ViRnJhbWVDbGll
bnQ7CiAgICAgRmFrZVdlYlZpZXdDbGllbnQgbV9tb2NrV2ViVmlld0NsaWVudDsKICAgICBXZWJW
aWV3SW1wbCogbV93ZWJWaWV3SW1wbDsKKyAgICBXZWJLaXRUZXN0czo6V2ViQ29tcG9zaXRvcklu
aXRpYWxpemVyIG1fY29tcG9zaXRvckluaXRpYWxpemVyOwogfTsKIAogVEVTVF9GKFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yQ2hyb21pdW1UZXN0LCBmYXN0U2Nyb2xsaW5nQnlEZWZhdWx0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJMYXllclRyZWVWaWV3VGVzdENv
bW1vbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJMYXllclRyZWVWaWV3VGVz
dENvbW1vbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOGE1NmM5NjU5Zjk0OWZk
Zjk4MDllNGEwZTEyZDI0MzQ5NjMyN2VhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJUcmVl
Vmlld1Rlc3RDb21tb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb25faAotI2RlZmluZSBXZWJM
YXllclRyZWVWaWV3VGVzdENvbW1vbl9oCi0KLSNpbmNsdWRlICJDb21wb3NpdG9yRmFrZVdlYkdy
YXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVkZSA8Z21vY2svZ21vY2suaD4KLSNpbmNsdWRlIDxw
dWJsaWMvUGxhdGZvcm0uaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQu
aD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oPgotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotY2xhc3MgTW9ja1dlYkxheWVyVHJlZVZpZXdDbGllbnQgOiBwdWJsaWMg
V2ViTGF5ZXJUcmVlVmlld0NsaWVudCB7Ci1wdWJsaWM6Ci0gICAgTU9DS19NRVRIT0QwKHNjaGVk
dWxlQ29tcG9zaXRlLCB2b2lkKCkpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25z
KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgT1ZFUlJJREUgeyB9Ci0gICAgTU9DS19NRVRIT0QwKHdp
bGxCZWdpbkZyYW1lLCB2b2lkKCkpOwotICAgIE1PQ0tfTUVUSE9EMChkaWRCZWdpbkZyYW1lLCB2
b2lkKCkpOwotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiBzY3JvbGxEZWx0YSwg
ZmxvYXQgc2NhbGVGYWN0b3IpIE9WRVJSSURFIHsgfQotCi0gICAgdmlydHVhbCBXZWJDb21wb3Np
dG9yT3V0cHV0U3VyZmFjZSogY3JlYXRlT3V0cHV0U3VyZmFjZSgpIE9WRVJSSURFCi0gICAgewot
ICAgICAgICByZXR1cm4gUGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+
Y3JlYXRlT3V0cHV0U3VyZmFjZUZvcjNEKENvbXBvc2l0b3JGYWtlV2ViR3JhcGhpY3NDb250ZXh0
M0Q6OmNyZWF0ZShXZWJHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcygpKS5sZWFrUHRyKCkp
OwotICAgIH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVPdXRwdXRTdXJmYWNlKGJvb2wp
IE9WRVJSSURFIHsgfQotfTsKLQotfQotCi0jZW5kaWYgLy8gV2ViTGF5ZXJUcmVlVmlld1Rlc3RD
b21tb25faApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKaW5k
ZXggYzE2ZDVmZjc4ZTU2ZDE1OGUxNTYyZDA2YTE2YzZkZjJjNzhmMTJmOC4uZmYyZWRhN2ZmZWVm
OGY2NzU5Y2U0YTkzNmJkZDI5ZDdiZDRhYThjOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0yMDIsNiArMjAyLDkgQEAgY2xhc3MgV2ViVmlld0hv
c3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFt
ZUNsaWVudCwKICAgICAvLyBQZW5kaW5nIHRhc2sgbGlzdCwgTm90ZSB0YWh0IHRoZSBtZXRob2Qg
aXMgcmVmZXJyZWQgZnJvbSBXZWJNZXRob2RUYXNrIGNsYXNzLgogICAgIFdlYlRlc3RSdW5uZXI6
OldlYlRhc2tMaXN0KiB0YXNrTGlzdCgpIHsgcmV0dXJuICZtX3Rhc2tMaXN0OyB9CiAKKyAgICAv
LyBFeHBvc2VkIGZvciBXZWJUZXN0UHJveHkuCisgICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0ZSgp
IHsgfQorCiBwcml2YXRlOgogCiAgICAgY2xhc3MgSG9zdE1ldGhvZFRhc2sgOiBwdWJsaWMgV2Vi
VGVzdFJ1bm5lcjo6V2ViTWV0aG9kVGFzazxXZWJWaWV3SG9zdD4gewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>