<?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>224305</bug_id>
          
          <creation_ts>2021-04-07 14:42:49 -0700</creation_ts>
          <short_desc>Create WebIDBServer only when it is needed</short_desc>
          <delta_ts>2021-06-14 20:14:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>226547</dependson>
          <blocked>225089</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>fujii</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1748074</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-07 14:42:49 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748076</commentid>
    <comment_count>1</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-07 14:43:19 -0700</bug_when>
    <thetext>rdar://71962196</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748089</commentid>
    <comment_count>2</comment_count>
      <attachid>425445</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-07 15:02:23 -0700</bug_when>
    <thetext>Created attachment 425445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748200</commentid>
    <comment_count>3</comment_count>
      <attachid>425475</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-07 20:53:15 -0700</bug_when>
    <thetext>Created attachment 425475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748319</commentid>
    <comment_count>4</comment_count>
      <attachid>425475</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-08 09:23:08 -0700</bug_when>
    <thetext>Comment on attachment 425475
Patch

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

&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp:70
&gt; +        postTaskReply(CrossThreadTask([this, callback = WTFMove(callback), origins = crossThreadCopy(m_server-&gt;getOrigins())]() mutable {

Don&apos;t we need either a protected or a weak this here?

&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp:88
&gt; +        postTaskReply(CrossThreadTask([this, callback = WTFMove(callback)]() mutable {

ditto

&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp:106
&gt; +        postTaskReply(CrossThreadTask([this, callback = WTFMove(callback)]() mutable {

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748363</commentid>
    <comment_count>5</comment_count>
      <attachid>425521</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-08 10:58:05 -0700</bug_when>
    <thetext>Created attachment 425521
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748365</commentid>
    <comment_count>6</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-08 11:01:40 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 425475 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425475&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp:70
&gt; &gt; +        postTaskReply(CrossThreadTask([this, callback = WTFMove(callback), origins = crossThreadCopy(m_server-&gt;getOrigins())]() mutable {
&gt; 
&gt; Don&apos;t we need either a protected or a weak this here?
&gt; 

Updated the patch.

By the way do you think revealing sessionID in thread name is a bad idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748370</commentid>
    <comment_count>7</comment_count>
      <attachid>425521</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-08 11:07:05 -0700</bug_when>
    <thetext>Comment on attachment 425521
Patch

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

This looks good. I have some comments. I didn’t set review+ because I am not sure I’m enough of an expert on this area to spot mistakes, but I think it looks right.

&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.h:97
&gt; +    enum class DataTaskCountUpdateType : uint8_t { Decrease, Increase };
&gt; +    void updateDataTaskCount(DataTaskCountUpdateType);

This is a peculiar interface. I suggest two separate named functions rather than a function with an enum class argument.

Also, to try to make this harder to get wrong, I suggest we make an object that increments on creation and decrements on destruction. We can capture that object in lambdas, instead of capturing &quot;protectedThis&quot; and writing an explicit decrement function.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2675
&gt; +    if (auto* webIDBServer = m_webIDBServers.get(sessionID))
&gt; +        webIDBServer-&gt;removeConnection(connection);

In a tight context like this, I really like single word variable names that don’t try to disambiguate or be precise. Like:

    if (auto server = m_webIDBServers.get(sessionID))
        server-&gt;removeConnection(connection);

Sure, the local variable can be named webIDBServer or even webIDBServerForSession, but it doesn’t need to be. Single words work really well to make such code clear and readable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748466</commentid>
    <comment_count>8</comment_count>
      <attachid>425542</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-08 14:21:42 -0700</bug_when>
    <thetext>Created attachment 425542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748467</commentid>
    <comment_count>9</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-08 14:23:02 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 425521 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425521&amp;action=review
&gt; 
&gt; This looks good. I have some comments. I didn’t set review+ because I am not
&gt; sure I’m enough of an expert on this area to spot mistakes, but I think it
&gt; looks right.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.h:97
&gt; &gt; +    enum class DataTaskCountUpdateType : uint8_t { Decrease, Increase };
&gt; &gt; +    void updateDataTaskCount(DataTaskCountUpdateType);
&gt; 
&gt; This is a peculiar interface. I suggest two separate named functions rather
&gt; than a function with an enum class argument.
&gt; 
&gt; Also, to try to make this harder to get wrong, I suggest we make an object
&gt; that increments on creation and decrements on destruction. We can capture
&gt; that object in lambdas, instead of capturing &quot;protectedThis&quot; and writing an
&gt; explicit decrement function.
&gt; 

Thanks for the comments. I&apos;ve replaced it with a RefCounter.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2675
&gt; &gt; +    if (auto* webIDBServer = m_webIDBServers.get(sessionID))
&gt; &gt; +        webIDBServer-&gt;removeConnection(connection);
&gt; 
&gt; In a tight context like this, I really like single word variable names that
&gt; don’t try to disambiguate or be precise. Like:
&gt; 
&gt;     if (auto server = m_webIDBServers.get(sessionID))
&gt;         server-&gt;removeConnection(connection);
&gt; 
&gt; Sure, the local variable can be named webIDBServer or even
&gt; webIDBServerForSession, but it doesn’t need to be. Single words work really
&gt; well to make such code clear and readable.

Updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748511</commentid>
    <comment_count>10</comment_count>
      <attachid>425542</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-08 15:30:46 -0700</bug_when>
    <thetext>Comment on attachment 425542
Patch

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

&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp:44
&gt; +    , m_dataTaskCounter([protectedThis = makeRef(*this)](RefCounterEvent event) { protectedThis-&gt;tryClose(); })

This creates a reference cycle since the WebIDBServer owns its m_dataTaskCounter, which in turn owns this lambda, which in turn references the WebIDBServer, so I think the WebIDBServer will leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748530</commentid>
    <comment_count>11</comment_count>
      <attachid>425555</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-08 16:01:37 -0700</bug_when>
    <thetext>Created attachment 425555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748783</commentid>
    <comment_count>12</comment_count>
      <attachid>425555</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-09 10:55:20 -0700</bug_when>
    <thetext>Comment on attachment 425555
Patch

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

&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp:435
&gt; +    m_closeCallback();

It would probably be worth null checking m_closeCallback to make this more robust in case some tries to call tryClose twice in the future.

&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.h:107
&gt; +    typedef RefCounter&lt;DataTaskCounterType&gt; DataTaskCounter;

&quot;using DataTaskCounter = RefCounter&lt;DataTaskCounterType&gt;&quot; is the cool new way to do this.  Same with DataTaskCounterToken

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2330
&gt;          RefPtr&lt;StorageQuotaManager&gt; storageQuotaManager = weakThis ? this-&gt;storageQuotaManager(sessionID, origin) : nullptr;

If you used weakThis-&gt; instead of this-&gt; then you wouldn&apos;t need to capture this.  That would be better because it wouldn&apos;t allow you to accidentally use an unchecked this pointer (which is easy to do).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748784</commentid>
    <comment_count>13</comment_count>
      <attachid>425555</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-09 10:56:11 -0700</bug_when>
    <thetext>Comment on attachment 425555
Patch

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

&gt; Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:62
&gt; +    send(Messages::NetworkConnectionToWebProcess::AddIDBConnection());

Should there be a corresponding remove idb connection message in the destructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748802</commentid>
    <comment_count>14</comment_count>
      <attachid>425555</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-09 11:32:43 -0700</bug_when>
    <thetext>Comment on attachment 425555
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2330
&gt;&gt;          RefPtr&lt;StorageQuotaManager&gt; storageQuotaManager = weakThis ? this-&gt;storageQuotaManager(sessionID, origin) : nullptr;
&gt; 
&gt; If you used weakThis-&gt; instead of this-&gt; then you wouldn&apos;t need to capture this.  That would be better because it wouldn&apos;t allow you to accidentally use an unchecked this pointer (which is easy to do).

This is excellent advice.

Also, when something is ThreadSafeRefCounted, we typically need to ref it before dereferencing it, not just dereference a weak pointer. There is likely a reason that’s not needed here, but *generally* the idiom would be to put the weak pointer into a RefPtr first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748860</commentid>
    <comment_count>15</comment_count>
      <attachid>425650</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-09 14:07:50 -0700</bug_when>
    <thetext>Created attachment 425650
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748867</commentid>
    <comment_count>16</comment_count>
      <attachid>425652</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-09 14:21:01 -0700</bug_when>
    <thetext>Created attachment 425652
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748868</commentid>
    <comment_count>17</comment_count>
      <attachid>425653</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-09 14:22:27 -0700</bug_when>
    <thetext>Created attachment 425653
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748871</commentid>
    <comment_count>18</comment_count>
      <attachid>425555</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-09 14:29:19 -0700</bug_when>
    <thetext>Comment on attachment 425555
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp:435
&gt;&gt; +    m_closeCallback();
&gt; 
&gt; It would probably be worth null checking m_closeCallback to make this more robust in case some tries to call tryClose twice in the future.

Added.

&gt;&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.h:107
&gt;&gt; +    typedef RefCounter&lt;DataTaskCounterType&gt; DataTaskCounter;
&gt; 
&gt; &quot;using DataTaskCounter = RefCounter&lt;DataTaskCounterType&gt;&quot; is the cool new way to do this.  Same with DataTaskCounterToken

Cool.

&gt;&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2330
&gt;&gt;&gt;          RefPtr&lt;StorageQuotaManager&gt; storageQuotaManager = weakThis ? this-&gt;storageQuotaManager(sessionID, origin) : nullptr;
&gt;&gt; 
&gt;&gt; If you used weakThis-&gt; instead of this-&gt; then you wouldn&apos;t need to capture this.  That would be better because it wouldn&apos;t allow you to accidentally use an unchecked this pointer (which is easy to do).
&gt; 
&gt; This is excellent advice.
&gt; 
&gt; Also, when something is ThreadSafeRefCounted, we typically need to ref it before dereferencing it, not just dereference a weak pointer. There is likely a reason that’s not needed here, but *generally* the idiom would be to put the weak pointer into a RefPtr first.

ah, I think we do need to ref it here. Updated in the patch.

&gt;&gt; Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:62
&gt;&gt; +    send(Messages::NetworkConnectionToWebProcess::AddIDBConnection());
&gt; 
&gt; Should there be a corresponding remove idb connection message in the destructor?

NetworkProcess::connectionToWebProcessClosed should already cover this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748878</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-09 15:05:06 -0700</bug_when>
    <thetext>Committed r275779 (236352@main): &lt;https://commits.webkit.org/236352@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425653.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748914</commentid>
    <comment_count>20</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-09 16:52:37 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748915</commentid>
    <comment_count>21</comment_count>
      <attachid>425666</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-09 16:52:38 -0700</bug_when>
    <thetext>Created attachment 425666
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748916</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-09 16:54:24 -0700</bug_when>
    <thetext>Committed r275784 (236355@main): &lt;https://commits.webkit.org/236355@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425666.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748976</commentid>
    <comment_count>23</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-10 01:30:01 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748977</commentid>
    <comment_count>24</comment_count>
      <attachid>425680</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-10 01:30:02 -0700</bug_when>
    <thetext>Created attachment 425680
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748978</commentid>
    <comment_count>25</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-10 01:33:21 -0700</bug_when>
    <thetext>ChangeLog entry in Source/WebKit/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748979</commentid>
    <comment_count>26</comment_count>
      <attachid>425681</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-10 01:37:52 -0700</bug_when>
    <thetext>Created attachment 425681
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748980</commentid>
    <comment_count>27</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-10 01:39:20 -0700</bug_when>
    <thetext>Committed r275794 (236365@main): &lt;https://commits.webkit.org/236365@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425681.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748999</commentid>
    <comment_count>28</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-10 09:23:22 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749000</commentid>
    <comment_count>29</comment_count>
      <attachid>425685</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-10 09:23:24 -0700</bug_when>
    <thetext>Created attachment 425685
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749001</commentid>
    <comment_count>30</comment_count>
      <attachid>425686</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-10 09:48:14 -0700</bug_when>
    <thetext>Created attachment 425686
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749006</commentid>
    <comment_count>31</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-10 10:20:24 -0700</bug_when>
    <thetext>Patch 425685 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749009</commentid>
    <comment_count>32</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-10 10:57:01 -0700</bug_when>
    <thetext>Committed r275799 (236370@main): &lt;https://commits.webkit.org/236370@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425686.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749048</commentid>
    <comment_count>33</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-10 18:51:15 -0700</bug_when>
    <thetext>Reopened as the patch is reverted in r275799</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749220</commentid>
    <comment_count>34</comment_count>
      <attachid>425748</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-04-12 08:28:41 -0700</bug_when>
    <thetext>Created attachment 425748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749450</commentid>
    <comment_count>35</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-12 16:43:57 -0700</bug_when>
    <thetext>Committed r275846 (236411@main): &lt;https://commits.webkit.org/236411@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425748.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754499</commentid>
    <comment_count>36</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-04-26 23:07:34 -0700</bug_when>
    <thetext>Filed: Bug 225089 – HashTableConstIterator&apos;s consistency assertion fails while closing m_webIDBServers in NetworkProcess::didClose since r275846</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425445</attachid>
            <date>2021-04-07 15:02:23 -0700</date>
            <delta_ts>2021-04-07 20:53:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224305-20210407150222.patch</filename>
            <type>text/plain</type>
            <size>17139</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwODc4MTk1YTllNWY3ZTI1
NGU4YTBiYWYwNmYyZDJhZDljMWVmNjguLjZhY2M0NTljYmIyNGYxNTliNmJlYjIxNWNiYzQ2NzAy
MzIyMzBjZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMDQtMDcgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIFdlYklEQlNlcnZlciBv
bmx5IHdoZW4gaXQgaXMgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjQzMDUKKyAgICAgICAgPHJkYXI6Ly83MTk2MjE5Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgZWFjaCBX
ZWJJREJTZXJ2ZXIgY29tZXMgd2l0aCBhIHRocmVhZCwgc28gd2UgZG9uJ3Qgd2FudCB0byBrZWVw
IFdlYklEQlNlcnZlciBpZiBpdCdzIG5vdCBpbiB1c2UuCisgICAgICAgIE5vdyB0aGVyZSBhcmUg
dHdvIGNhc2VzIHdoZXJlIG5ldHdvcmsgcHJvY2VzcyBuZWVkcyBhIFdlYklEQlNlcnZlcjoKKyAg
ICAgICAgMS4gaGFuZGxlIHJlcXVlc3RzIGZyb20gVUkgcHJvY2VzcyB0byBjb2xsZWN0IG9yIHJl
bW92ZSBkYXRhCisgICAgICAgIDIuIGhhbmRsZSByZXF1ZXN0cyBmcm9tIFdlYiBwcm9jZXNzIHRv
IHBlcmZvcm0gSURCIG9wZXJhdGlvbnMgCisgICAgICAgIFdlIGNyZWF0ZWQgYSBXZWJJREJTZXJ2
ZXIgd2hlbiBuZXR3b3JrIHByb2Nlc3MgY29ubmVjdHMgdG8gYSB3ZWIgcHJvY2VzcywgYW5kIHdl
IHNob3VsZCBjcmVhdGUgaXQgd2hlbiAKKyAgICAgICAgd2ViIHByb2Nlc3MgaXMgYWJvdXQgdG8g
cGVyZm9ybSBJREIgb3BlcmF0aW9ucy4gQWxzbywgd2Ugc2hvdWxkIHJlbW92ZSBXZWJJREJTZXJ2
ZXIgaWYgaXQncyBkb25lIGhhbmRsaW5nCisgICAgICAgIHJlcXVlc3RzLCBpLmUgY291bnQgb2Yg
cGVuZGluZyByZXF1ZXN0cyBmcm9tIFVJIHByb2Nlc3MgaXMgMCBhbmQgV2ViSURCU2VydmVyIGlz
IG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IHdlYiAKKyAgICAgICAgcHJvY2VzcyBjb25uZWN0aW9u
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJT
ZXJ2ZXI6OmdldE9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNsb3Nl
QW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCU2VydmVyOjpyZW5hbWVPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJTZXJ2ZXI6OnJlbW92ZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2
ZXI6OnRyeUNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjp1cGRhdGVEYXRh
VGFza0NvdW50KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6YWRkSURCQ29ubmVjdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpjcmVhdGVXZWJJREJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y29ubmVjdGlvblRvV2ViUHJvY2Vzc0Nsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpyZW1vdmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVy
OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorCiAyMDIxLTA0LTA3ICBNaWNoYWVsIENhdGFu
emFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdW0dUS10gTnVsbCBw
b2ludGVyIGRlcmVmZXJlbmNlIHdoZW4gY2hpbGQgcHJvY2VzcyBleGl0cyBpbW1lZGlhdGVseQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5jcHAKaW5kZXggZDIxZTU3MWViMTdlMWU3MzczNzJiOTQ1MzYwZTk1YTU5MzkwNjVm
Ny4uYjJlZGFkNGJiNzc4ZWEwMWU3ZGI4MDFiMjQyMGQwZThhODljODY1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIu
Y3BwCkBAIC0zNCwxMyArMzQsMTQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxXZWJJ
REJTZXJ2ZXI+IFdlYklEQlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpT
dG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlcikKK1JlZjxX
ZWJJREJTZXJ2ZXI+IFdlYklEQlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVy
OjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYklEQlNlcnZlcihzZXNzaW9uSUQsIGRpcmVjdG9yeSwgV1RGTW92ZShzcGFjZVJl
cXVlc3RlcikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJTZXJ2ZXIoc2Vzc2lv
bklELCBkaXJlY3RvcnksIFdURk1vdmUoc3BhY2VSZXF1ZXN0ZXIpLCBXVEZNb3ZlKGNhbGxiYWNr
KSkpOwogfQogCi1XZWJJREJTZXJ2ZXI6OldlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNl
cnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYgc3BhY2VSZXF1ZXN0ZXIp
Ci0gICAgOiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyKCJjb20uYXBwbGUuV2ViS2l0LkluZGV4ZWRE
QlNlcnZlciIsIFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6QXV0b2RyYWluZWRQb29sRm9y
UnVuTG9vcDo6VXNlKQorV2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVz
dGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCisgICAgOiBDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyKG1ha2VTdHJpbmcoImNvbS5hcHBsZS5XZWJLaXQuSW5kZXhlZERCU2Vy
dmVyLiIsIHNlc3Npb25JRC50b1VJbnQ2NCgpKS5hc2NpaSgpLmRhdGEoKSwgV1RGOjpDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyOjpBdXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wOjpVc2UpCisgICAgLCBt
X2Nsb3NlQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKIApAQCAtNjEsMTIgKzYyLDE1IEBAIHZvaWQgV2ViSURCU2VydmVyOjpnZXRP
cmlnaW5zKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxXZWJDb3JlOjpTZWN1cml0eU9y
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIHVwZGF0ZURhdGFUYXNr
Q291bnQoRGF0YVRhc2tDb3VudFVwZGF0ZVR5cGU6OkluY3JlYXNlKTsKICAgICBwb3N0VGFzayhb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKLSAgICAg
ICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayksIG9yaWdpbnMgPSBjcm9zc1RocmVhZENvcHkobV9zZXJ2ZXItPmdldE9yaWdpbnMoKSld
KCkgbXV0YWJsZSB7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFt0aGlz
LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBvcmlnaW5zID0gY3Jvc3NUaHJlYWRDb3B5
KG1fc2VydmVyLT5nZXRPcmlnaW5zKCkpXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJh
Y2soV1RGTW92ZShvcmlnaW5zKSk7CisKKyAgICAgICAgICAgIHVwZGF0ZURhdGFUYXNrQ291bnQo
RGF0YVRhc2tDb3VudFVwZGF0ZVR5cGU6OkRlY3JlYXNlKTsKICAgICAgICAgfSkpOwogICAgIH0p
OwogfQpAQCAtNzUsMTMgKzc5LDE2IEBAIHZvaWQgV2ViSURCU2VydmVyOjpjbG9zZUFuZERlbGV0
ZURhdGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRpbWUgbW9kaWZpY2F0aW9uVGltCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIHVwZGF0ZURhdGFUYXNrQ291bnQoRGF0
YVRhc2tDb3VudFVwZGF0ZVR5cGU6OkluY3JlYXNlKTsKICAgICBwb3N0VGFzayhbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtb2RpZmljYXRpb25UaW1lLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygp
KTsKICAgICAgICAgbV9zZXJ2ZXItPmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5j
ZShtb2RpZmljYXRpb25UaW1lKTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRh
c2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIHBv
c3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJhY2soKTsKKworICAgICAgICAg
ICAgdXBkYXRlRGF0YVRhc2tDb3VudChEYXRhVGFza0NvdW50VXBkYXRlVHlwZTo6RGVjcmVhc2Up
OwogICAgICAgICB9KSk7CiAgICAgfSk7CiB9CkBAIC05MCwxMyArOTcsMTYgQEAgdm9pZCBXZWJJ
REJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhjb25zdCBWZWN0b3I8
V2ViQ29yZTo6U2VjdXIKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAg
dXBkYXRlRGF0YVRhc2tDb3VudChEYXRhVGFza0NvdW50VXBkYXRlVHlwZTo6SW5jcmVhc2UpOwog
ICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9yaWdp
bkRhdGFzID0gb3JpZ2luRGF0YXMuaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldICgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKICAgICAg
ICAgbV9zZXJ2ZXItPmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhvcmlnaW5EYXRh
cyk7Ci0gICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBwb3N0VGFza1JlcGx5KENyb3Nz
VGhyZWFkVGFzayhbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisKKyAgICAgICAgICAgIHVwZGF0ZURhdGFUYXNr
Q291bnQoRGF0YVRhc2tDb3VudFVwZGF0ZVR5cGU6OkRlY3JlYXNlKTsKICAgICAgICAgfSkpOwog
ICAgIH0pOwogfQpAQCAtMTA1LDEyICsxMTUsMTcgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbmFt
ZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY28K
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgdXBkYXRlRGF0YVRhc2tD
b3VudChEYXRhVGFza0NvdW50VXBkYXRlVHlwZTo6SW5jcmVhc2UpOwogICAgIHBvc3RUYXNrKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9sZE9yaWdpbiA9IG9sZE9yaWdp
bi5pc29sYXRlZENvcHkoKSwgbmV3T3JpZ2luID0gbmV3T3JpZ2luLmlzb2xhdGVkQ29weSgpLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2
ZXItPmxvY2soKSk7CiAgICAgICAgIG1fc2VydmVyLT5yZW5hbWVPcmlnaW4ob2xkT3JpZ2luLCBu
ZXdPcmlnaW4pOwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhXVEZNb3Zl
KGNhbGxiYWNrKSkpOworICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbdGhp
cywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IGNhbGxiYWNrKCk7CisKKyAgICAgICAgICAgIHVwZGF0ZURhdGFUYXNrQ291bnQoRGF0YVRhc2tD
b3VudFVwZGF0ZVR5cGU6OkRlY3JlYXNlKTsKKyAgICAgICAgfSkpOwogICAgIH0pOwogfQogCkBA
IC0zNzAsMTUgKzM4NSwxOSBAQCB2b2lkIFdlYklEQlNlcnZlcjo6cmVtb3ZlQ29ubmVjdGlvbihJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKIAotICAgIG1fY29ubmVjdGlvbnMucmVtb3ZlKCZjb25uZWN0aW9uKTsKLSAgICBjb25u
ZWN0aW9uLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURCU2VydmVy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAgIGF1dG8qIHRha2VuQ29ubmVjdGlvbiA9IG1f
Y29ubmVjdGlvbnMudGFrZSgmY29ubmVjdGlvbik7CisgICAgaWYgKCF0YWtlbkNvbm5lY3Rpb24p
CisgICAgICAgIHJldHVybjsKKworICAgIHRha2VuQ29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSk7CiAgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y29ubmVjdGlvbklEID0gY29ubmVjdGlvbi51bmlxdWVJRCgpXSB7CiAgICAgICAgIGF1dG8gY29u
bmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC50YWtlKGNvbm5lY3Rpb25JRCk7Ci0KICAgICAgICAg
QVNTRVJUKGNvbm5lY3Rpb24pOwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVy
LT5sb2NrKCkpOwogICAgICAgICBtX3NlcnZlci0+dW5yZWdpc3RlckNvbm5lY3Rpb24oY29ubmVj
dGlvbi0+Y29ubmVjdGlvblRvQ2xpZW50KCkpOworCisgICAgICAgIHRyeUNsb3NlKCk7CiAgICAg
fSk7CiB9CiAKQEAgLTQxNSw0ICs0MzQsMjMgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OmNsb3NlKCkK
ICAgICB9KTsKIH0KIAordm9pZCBXZWJJREJTZXJ2ZXI6OnRyeUNsb3NlKCkKK3sKKyAgICBpZiAo
IW1fY29ubmVjdGlvbnMuaXNFbXB0eSgpIHx8IG1fZGF0YVRhc2tDb3VudCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgY2xvc2UoKTsKKyAgICBtX2Nsb3NlQ2FsbGJhY2soKTsKK30KKwordm9pZCBX
ZWJJREJTZXJ2ZXI6OnVwZGF0ZURhdGFUYXNrQ291bnQoRGF0YVRhc2tDb3VudFVwZGF0ZVR5cGUg
dHlwZSkKK3sKKyAgICBpZiAodHlwZSA9PSBEYXRhVGFza0NvdW50VXBkYXRlVHlwZTo6SW5jcmVh
c2UpCisgICAgICAgICsrbV9kYXRhVGFza0NvdW50OworICAgIGVsc2UKKyAgICAgICAgLS1tX2Rh
dGFUYXNrQ291bnQ7CisKKyAgICB0cnlDbG9zZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQlNlcnZlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCU2VydmVyLmgKaW5kZXggMjU2ZTI5NTY1MGE2MjBkODNjZjVjYTg3YThiYzBjYzMxMTRhMWQy
ZS4uMGJiMWU4M2RiYTI2Nzc4MjBiZWE1Yjg3MjUzMDdlODYzZTg3N2QxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgK
QEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYklEQlNlcnZl
ciBmaW5hbCA6IHB1YmxpYyBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLCBwdWJsaWMgSVBDOjpDb25u
ZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFdlYklEQlNlcnZlcj4gY3JlYXRlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90
YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmKTsKKyAgICBzdGF0aWMgUmVmPFdlYklEQlNlcnZlcj4g
Y3JlYXRlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCBnZXRPcmlnaW5zKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+
JiYpPiYmKTsKICAgICB2b2lkIGNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShX
YWxsVGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKTsKQEAgLTg2LDIw
ICs4NiwyNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogICAgIHZvaWQgZGlzcGF0Y2hUb1RocmVhZChXVEY6
OkZ1bmN0aW9uPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBjbG9zZSgpOwogCi0gICAgYm9vbCBoYXND
b25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gIW1fY29ubmVjdGlvbnMuaXNFbXB0eSgpOyB9CiBw
cml2YXRlOgotICAgIFdlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBk
aXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5h
Z2VyU3BhY2VSZXF1ZXN0ZXImJik7CisgICAgV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0
b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIH5XZWJJREJTZXJ2ZXIoKTsKIAogICAgIHZvaWQgcG9zdFRhc2soV1RGOjpG
dW5jdGlvbjx2b2lkKCk+JiYpOwogCisgICAgZW51bSBjbGFzcyBEYXRhVGFza0NvdW50VXBkYXRl
VHlwZSA6IHVpbnQ4X3QgeyBEZWNyZWFzZSwgSW5jcmVhc2UgfTsKKyAgICB2b2lkIHVwZGF0ZURh
dGFUYXNrQ291bnQoRGF0YVRhc2tDb3VudFVwZGF0ZVR5cGUpOworICAgIHZvaWQgY2xvc2UoKTsK
KyAgICB2b2lkIHRyeUNsb3NlKCk7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SURC
U2VydmVyOjpJREJTZXJ2ZXI+IG1fc2VydmVyOwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZh
bHNlIH07CiAKICAgICBIYXNoTWFwPElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIHN0ZDo6dW5p
cXVlX3B0cjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+PiBtX2Nvbm5lY3Rpb25NYXA7CiAgICAg
SGFzaFNldDxJUEM6OkNvbm5lY3Rpb24qPiBtX2Nvbm5lY3Rpb25zOworCisgICAgdWludDY0X3Qg
bV9kYXRhVGFza0NvdW50IHsgMCB9OworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gbV9j
bG9zZUNhbGxiYWNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCmluZGV4IDA1MTU1MGU3NzdlNTA3YTNhZGE3M2MxYmU5Mjk4Mjc1MDE3YTIw
YmMuLjc5YTNkZDc4NmNmZDkwOTljZTI1M2M3OTZkM2U4ODA3Zjc1NDczMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0xMjQxLDYgKzEyNDEsMTAgQEAgdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPFJlc291
cmNlTG9hZEkKICAgICBzZXNzaW9uLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpLnByaW9yaXRpemVM
b2Fkcyhsb2Fkcyk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmFk
ZElEQkNvbm5lY3Rpb24oKQoreworICAgIG1fbmV0d29ya1Byb2Nlc3MtPndlYklEQlNlcnZlciht
X3Nlc3Npb25JRCkuYWRkQ29ubmVjdGlvbihtX2Nvbm5lY3Rpb24uZ2V0KCksIG1fd2ViUHJvY2Vz
c0lkZW50aWZpZXIpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oCmluZGV4IDJlYzdkMTFjYTBlYTk0MDJhNGNhN2E5MjhjNzNkODNiMWU2ZWYyZjYu
LjI4MTVlZGVjNzNkYjViOWM3NGVlMjg2NDFmYmEzZmI0NzI0NmZkZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKQEAgLTE4Niw2ICsxODYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGJyb2Fk
Y2FzdENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAKKyAgICB2b2lkIGFkZElEQkNvbm5lY3Rpb24oKTsK
KwogcHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3b3JrUHJv
Y2VzcyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCwgSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KaW5kZXggYTA5ODQxMmE1ZjNkNTVmZTM4NDhiMjIzZjlkZmZhOThjMzY2MTRj
Ni4uMDdiZmNlNDQ5MWNkNTMwNmI0ZmFhMjhiYzRjODVhNTNjZWYwZWFiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMDcsNCArMTA3LDYgQEAgbWVz
c2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewog
I2VuZGlmCiAgICAgU2V0UmVzb3VyY2VMb2FkU2NoZWR1bGluZ01vZGUoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgd2ViUGFnZUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TG9hZFNjaGVkdWxpbmdN
b2RlIG1vZGUpCiAgICAgUHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPHVpbnQ2NF90PiBs
b2FkSWRlbnRpZmllcnMpCisKKyAgICBBZGRJREJDb25uZWN0aW9uKCkKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMTVjNGU0YzBk
NzA3MGE4MWJkZjgwYmUxMDZiNjllNjBhY2JiNjU5ZC4uOTgzYTk3Y2M1NDMxOGYzYzg5MTkxYjlh
NmIzMjk3MTU1ZjBhMDIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTM5MSw4ICszOTEsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
OjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmllciBp
ZGVudAogICAgIGNvbm5lY3Rpb24uc2V0T25MaW5lU3RhdGUoTmV0d29ya1N0YXRlTm90aWZpZXI6
OnNpbmdsZXRvbigpLm9uTGluZSgpKTsKIAogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQtPmFkZENv
bm5lY3Rpb24oY29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOwotCi0gICAgd2ViSURCU2VydmVyKHNl
c3Npb25JRCkuYWRkQ29ubmVjdGlvbihjb25uZWN0aW9uLmNvbm5lY3Rpb24oKSwgaWRlbnRpZmll
cik7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpAQCAtNTUyLDggKzU1MCw2IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICNlbmRpZgog
CiAgICAgbV9zdG9yYWdlTWFuYWdlclNldC0+cmVtb3ZlKHNlc3Npb25JRCk7Ci0KLSAgICByZW1v
dmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKHNlc3Npb25JRCk7CiB9CiAKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpAQCAtMjMzMCwxMCArMjMyNiwxNSBAQCBSZWY8V2ViSURC
U2VydmVyPiBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKICAgICAgICAgcGF0aCA9IG1faWRiRGF0YWJhc2VQYXRocy5nZXQoc2Vzc2lv
bklEKTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklE
LCBwYXRoLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgc2Vzc2lvbklEXShj
b25zdCBhdXRvJiBvcmlnaW4sIHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSB7CisgICAgYXV0byBz
cGFjZVJlcXVlc3RlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzZXNz
aW9uSURdKGNvbnN0IGF1dG8mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQpIHsKICAg
ICAgICAgUmVmUHRyPFN0b3JhZ2VRdW90YU1hbmFnZXI+IHN0b3JhZ2VRdW90YU1hbmFnZXIgPSB3
ZWFrVGhpcyA/IHRoaXMtPnN0b3JhZ2VRdW90YU1hbmFnZXIoc2Vzc2lvbklELCBvcmlnaW4pIDog
bnVsbHB0cjsKICAgICAgICAgcmV0dXJuIHN0b3JhZ2VRdW90YU1hbmFnZXIgPyBzdG9yYWdlUXVv
dGFNYW5hZ2VyLT5yZXF1ZXN0U3BhY2VPbkJhY2tncm91bmRUaHJlYWQoc3BhY2VSZXF1ZXN0ZWQp
IDogU3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb246OkRlbnk7Ci0gICAgfSk7CisgICAgfTsK
KyAgICBhdXRvIGNsb3NlSGFuZGxlciA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBz
ZXNzaW9uSURdKCkgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhp
cy0+bV93ZWJJREJTZXJ2ZXJzLnJlbW92ZShzZXNzaW9uSUQpOworICAgIH07CisgICAgcmV0dXJu
IFdlYklEQlNlcnZlcjo6Y3JlYXRlKHNlc3Npb25JRCwgcGF0aCwgV1RGTW92ZShzcGFjZVJlcXVl
c3RlciksIFdURk1vdmUoY2xvc2VIYW5kbGVyKSk7CiB9CiAKIFdlYklEQlNlcnZlciYgTmV0d29y
a1Byb2Nlc3M6OndlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCkBAIC0yMzYz
LDI0ICsyMzY0LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2Vzc2lvblN0b3JhZ2VRdW90
YU1hbmFnZXJJREJSb290UGF0aChQQUw6OlNlc3Npb25JRCBzZXMKICAgICBzZXNzaW9uU3RvcmFn
ZVF1b3RhTWFuYWdlci0+c2V0SURCUm9vdFBhdGgoaWRiUm9vdFBhdGgpOwogfQogCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpyZW1vdmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgYXV0
byBpdGVyYXRvciA9IG1fd2ViSURCU2VydmVycy5maW5kKHNlc3Npb25JRCk7Ci0gICAgaWYgKGl0
ZXJhdG9yID09IG1fd2ViSURCU2VydmVycy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
aWYgKG1fbmV0d29ya1Nlc3Npb25zLmNvbnRhaW5zKHNlc3Npb25JRCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmIChpdGVyYXRvci0+dmFsdWUtPmhhc0Nvbm5lY3Rpb24oKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaXRlcmF0b3ItPnZhbHVlLT5jbG9zZSgpOwotICAgIG1fd2ViSURCU2Vy
dmVycy5yZW1vdmUoaXRlcmF0b3IpOwotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzeW5jTG9j
YWxTdG9yYWdlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBtX3N0b3JhZ2VNYW5hZ2VyU2V0LT53YWl0VW50aWxTeW5jaW5nTG9jYWxTdG9yYWdl
RmluaXNoZWQoKTsKQEAgLTI2ODgsMTAgKzI2NzEsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpj
b25uZWN0aW9uVG9XZWJQcm9jZXNzQ2xvc2VkKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
UAogewogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQtPnJlbW92ZUNvbm5lY3Rpb24oY29ubmVjdGlv
bik7CiAKLSAgICBhdXRvKiB3ZWJJREJTZXJ2ZXIgPSBtX3dlYklEQlNlcnZlcnMuZ2V0KHNlc3Np
b25JRCk7Ci0gICAgQVNTRVJUKHdlYklEQlNlcnZlcik7Ci0gICAgd2ViSURCU2VydmVyLT5yZW1v
dmVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwotICAgIHJlbW92ZVdlYklEQlNlcnZlcklmUG9zc2li
bGUoc2Vzc2lvbklEKTsKKyAgICBpZiAoYXV0byogd2ViSURCU2VydmVyID0gbV93ZWJJREJTZXJ2
ZXJzLmdldChzZXNzaW9uSUQpKQorICAgICAgICB3ZWJJREJTZXJ2ZXItPnJlbW92ZUNvbm5lY3Rp
b24oY29ubmVjdGlvbik7CiB9CiAKIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBOZXR3
b3JrUHJvY2Vzczo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb24oUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRp
ZmllcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwCmluZGV4IGYwNjI5NzVlNDMwNTI1YzlhZDlmYmRjMzVlZjYwNTk3ZDZhZmYwNTguLmUzOWUx
YzQ1MmJlZDY5Y2MxNGFmNGNjYTc3YTIwNDYzODcwOWYwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtNTksNiArNTksNyBAQCBSZWY8V2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyPiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZSgp
CiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcigpCiAg
ICAgOiBtX2Nvbm5lY3Rpb25Ub1NlcnZlcihJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6Y3JlYXRlKCp0aGlzKSkKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6QWRkSURCQ29ubmVjdGlvbigpKTsKIH0KIAogV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyOjp+V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425475</attachid>
            <date>2021-04-07 20:53:15 -0700</date>
            <delta_ts>2021-04-08 10:58:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224305-20210407205314.patch</filename>
            <type>text/plain</type>
            <size>17569</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwODc4MTk1YTllNWY3ZTI1
NGU4YTBiYWYwNmYyZDJhZDljMWVmNjguLjZhY2M0NTljYmIyNGYxNTliNmJlYjIxNWNiYzQ2NzAy
MzIyMzBjZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMDQtMDcgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIFdlYklEQlNlcnZlciBv
bmx5IHdoZW4gaXQgaXMgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjQzMDUKKyAgICAgICAgPHJkYXI6Ly83MTk2MjE5Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgZWFjaCBX
ZWJJREJTZXJ2ZXIgY29tZXMgd2l0aCBhIHRocmVhZCwgc28gd2UgZG9uJ3Qgd2FudCB0byBrZWVw
IFdlYklEQlNlcnZlciBpZiBpdCdzIG5vdCBpbiB1c2UuCisgICAgICAgIE5vdyB0aGVyZSBhcmUg
dHdvIGNhc2VzIHdoZXJlIG5ldHdvcmsgcHJvY2VzcyBuZWVkcyBhIFdlYklEQlNlcnZlcjoKKyAg
ICAgICAgMS4gaGFuZGxlIHJlcXVlc3RzIGZyb20gVUkgcHJvY2VzcyB0byBjb2xsZWN0IG9yIHJl
bW92ZSBkYXRhCisgICAgICAgIDIuIGhhbmRsZSByZXF1ZXN0cyBmcm9tIFdlYiBwcm9jZXNzIHRv
IHBlcmZvcm0gSURCIG9wZXJhdGlvbnMgCisgICAgICAgIFdlIGNyZWF0ZWQgYSBXZWJJREJTZXJ2
ZXIgd2hlbiBuZXR3b3JrIHByb2Nlc3MgY29ubmVjdHMgdG8gYSB3ZWIgcHJvY2VzcywgYW5kIHdl
IHNob3VsZCBjcmVhdGUgaXQgd2hlbiAKKyAgICAgICAgd2ViIHByb2Nlc3MgaXMgYWJvdXQgdG8g
cGVyZm9ybSBJREIgb3BlcmF0aW9ucy4gQWxzbywgd2Ugc2hvdWxkIHJlbW92ZSBXZWJJREJTZXJ2
ZXIgaWYgaXQncyBkb25lIGhhbmRsaW5nCisgICAgICAgIHJlcXVlc3RzLCBpLmUgY291bnQgb2Yg
cGVuZGluZyByZXF1ZXN0cyBmcm9tIFVJIHByb2Nlc3MgaXMgMCBhbmQgV2ViSURCU2VydmVyIGlz
IG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IHdlYiAKKyAgICAgICAgcHJvY2VzcyBjb25uZWN0aW9u
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJT
ZXJ2ZXI6OmdldE9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNsb3Nl
QW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCU2VydmVyOjpyZW5hbWVPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJTZXJ2ZXI6OnJlbW92ZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2
ZXI6OnRyeUNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjp1cGRhdGVEYXRh
VGFza0NvdW50KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6YWRkSURCQ29ubmVjdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpjcmVhdGVXZWJJREJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y29ubmVjdGlvblRvV2ViUHJvY2Vzc0Nsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpyZW1vdmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVy
OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorCiAyMDIxLTA0LTA3ICBNaWNoYWVsIENhdGFu
emFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdW0dUS10gTnVsbCBw
b2ludGVyIGRlcmVmZXJlbmNlIHdoZW4gY2hpbGQgcHJvY2VzcyBleGl0cyBpbW1lZGlhdGVseQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5jcHAKaW5kZXggZDIxZTU3MWViMTdlMWU3MzczNzJiOTQ1MzYwZTk1YTU5MzkwNjVm
Ny4uNWUwN2Q5MjNmZGVmNGEwYmI4ZDllNjQ5YmMwMzliNzZkMGRmYjM3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIu
Y3BwCkBAIC0zNCwxMyArMzQsMTQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxXZWJJ
REJTZXJ2ZXI+IFdlYklEQlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpT
dG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlcikKK1JlZjxX
ZWJJREJTZXJ2ZXI+IFdlYklEQlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVy
OjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYklEQlNlcnZlcihzZXNzaW9uSUQsIGRpcmVjdG9yeSwgV1RGTW92ZShzcGFjZVJl
cXVlc3RlcikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJTZXJ2ZXIoc2Vzc2lv
bklELCBkaXJlY3RvcnksIFdURk1vdmUoc3BhY2VSZXF1ZXN0ZXIpLCBXVEZNb3ZlKGNhbGxiYWNr
KSkpOwogfQogCi1XZWJJREJTZXJ2ZXI6OldlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNl
cnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYgc3BhY2VSZXF1ZXN0ZXIp
Ci0gICAgOiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyKCJjb20uYXBwbGUuV2ViS2l0LkluZGV4ZWRE
QlNlcnZlciIsIFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6QXV0b2RyYWluZWRQb29sRm9y
UnVuTG9vcDo6VXNlKQorV2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVz
dGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCisgICAgOiBDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyKG1ha2VTdHJpbmcoImNvbS5hcHBsZS5XZWJLaXQuSW5kZXhlZERCU2Vy
dmVyLiIsIHNlc3Npb25JRC50b1VJbnQ2NCgpKS5hc2NpaSgpLmRhdGEoKSwgV1RGOjpDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyOjpBdXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wOjpVc2UpCisgICAgLCBt
X2Nsb3NlQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKIApAQCAtNjEsMTIgKzYyLDE1IEBAIHZvaWQgV2ViSURCU2VydmVyOjpnZXRP
cmlnaW5zKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxXZWJDb3JlOjpTZWN1cml0eU9y
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIHVwZGF0ZURhdGFUYXNr
Q291bnQoRGF0YVRhc2tDb3VudFVwZGF0ZVR5cGU6OkluY3JlYXNlKTsKICAgICBwb3N0VGFzayhb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKLSAgICAg
ICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayksIG9yaWdpbnMgPSBjcm9zc1RocmVhZENvcHkobV9zZXJ2ZXItPmdldE9yaWdpbnMoKSld
KCkgbXV0YWJsZSB7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFt0aGlz
LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBvcmlnaW5zID0gY3Jvc3NUaHJlYWRDb3B5
KG1fc2VydmVyLT5nZXRPcmlnaW5zKCkpXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJh
Y2soV1RGTW92ZShvcmlnaW5zKSk7CisKKyAgICAgICAgICAgIHVwZGF0ZURhdGFUYXNrQ291bnQo
RGF0YVRhc2tDb3VudFVwZGF0ZVR5cGU6OkRlY3JlYXNlKTsKICAgICAgICAgfSkpOwogICAgIH0p
OwogfQpAQCAtNzUsMTMgKzc5LDE2IEBAIHZvaWQgV2ViSURCU2VydmVyOjpjbG9zZUFuZERlbGV0
ZURhdGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRpbWUgbW9kaWZpY2F0aW9uVGltCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIHVwZGF0ZURhdGFUYXNrQ291bnQoRGF0
YVRhc2tDb3VudFVwZGF0ZVR5cGU6OkluY3JlYXNlKTsKICAgICBwb3N0VGFzayhbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtb2RpZmljYXRpb25UaW1lLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygp
KTsKICAgICAgICAgbV9zZXJ2ZXItPmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5j
ZShtb2RpZmljYXRpb25UaW1lKTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRh
c2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIHBv
c3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJhY2soKTsKKworICAgICAgICAg
ICAgdXBkYXRlRGF0YVRhc2tDb3VudChEYXRhVGFza0NvdW50VXBkYXRlVHlwZTo6RGVjcmVhc2Up
OwogICAgICAgICB9KSk7CiAgICAgfSk7CiB9CkBAIC05MCwxMyArOTcsMTYgQEAgdm9pZCBXZWJJ
REJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhjb25zdCBWZWN0b3I8
V2ViQ29yZTo6U2VjdXIKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAg
dXBkYXRlRGF0YVRhc2tDb3VudChEYXRhVGFza0NvdW50VXBkYXRlVHlwZTo6SW5jcmVhc2UpOwog
ICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9yaWdp
bkRhdGFzID0gb3JpZ2luRGF0YXMuaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldICgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKICAgICAg
ICAgbV9zZXJ2ZXItPmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhvcmlnaW5EYXRh
cyk7Ci0gICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBwb3N0VGFza1JlcGx5KENyb3Nz
VGhyZWFkVGFzayhbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisKKyAgICAgICAgICAgIHVwZGF0ZURhdGFUYXNr
Q291bnQoRGF0YVRhc2tDb3VudFVwZGF0ZVR5cGU6OkRlY3JlYXNlKTsKICAgICAgICAgfSkpOwog
ICAgIH0pOwogfQpAQCAtMTA1LDEyICsxMTUsMTcgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbmFt
ZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY28K
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgdXBkYXRlRGF0YVRhc2tD
b3VudChEYXRhVGFza0NvdW50VXBkYXRlVHlwZTo6SW5jcmVhc2UpOwogICAgIHBvc3RUYXNrKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9sZE9yaWdpbiA9IG9sZE9yaWdp
bi5pc29sYXRlZENvcHkoKSwgbmV3T3JpZ2luID0gbmV3T3JpZ2luLmlzb2xhdGVkQ29weSgpLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2
ZXItPmxvY2soKSk7CiAgICAgICAgIG1fc2VydmVyLT5yZW5hbWVPcmlnaW4ob2xkT3JpZ2luLCBu
ZXdPcmlnaW4pOwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhXVEZNb3Zl
KGNhbGxiYWNrKSkpOworICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbdGhp
cywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IGNhbGxiYWNrKCk7CisKKyAgICAgICAgICAgIHVwZGF0ZURhdGFUYXNrQ291bnQoRGF0YVRhc2tD
b3VudFVwZGF0ZVR5cGU6OkRlY3JlYXNlKTsKKyAgICAgICAgfSkpOwogICAgIH0pOwogfQogCkBA
IC0zNzAsMTYgKzM4NSwxOSBAQCB2b2lkIFdlYklEQlNlcnZlcjo6cmVtb3ZlQ29ubmVjdGlvbihJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKIAotICAgIG1fY29ubmVjdGlvbnMucmVtb3ZlKCZjb25uZWN0aW9uKTsKLSAgICBjb25u
ZWN0aW9uLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURCU2VydmVy
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAgIGF1dG8qIHRha2VuQ29ubmVjdGlvbiA9IG1f
Y29ubmVjdGlvbnMudGFrZSgmY29ubmVjdGlvbik7CisgICAgaWYgKCF0YWtlbkNvbm5lY3Rpb24p
CisgICAgICAgIHJldHVybjsKKworICAgIHRha2VuQ29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSk7CiAgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y29ubmVjdGlvbklEID0gY29ubmVjdGlvbi51bmlxdWVJRCgpXSB7CiAgICAgICAgIGF1dG8gY29u
bmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC50YWtlKGNvbm5lY3Rpb25JRCk7Ci0KICAgICAgICAg
QVNTRVJUKGNvbm5lY3Rpb24pOwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVy
LT5sb2NrKCkpOwogICAgICAgICBtX3NlcnZlci0+dW5yZWdpc3RlckNvbm5lY3Rpb24oY29ubmVj
dGlvbi0+Y29ubmVjdGlvblRvQ2xpZW50KCkpOwogICAgIH0pOworICAgIHRyeUNsb3NlKCk7CiB9
CiAKIHZvaWQgV2ViSURCU2VydmVyOjpwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykK
QEAgLTQwMyw2ICs0MjEsNyBAQCB2b2lkIFdlYklEQlNlcnZlcjo6Y2xvc2UoKQogICAgICAgICBj
b25uZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYklEQlNl
cnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIAogICAgIENyb3NzVGhyZWFkVGFza0hhbmRs
ZXI6OnNldENvbXBsZXRpb25DYWxsYmFjayhbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
XSgpIG11dGFibGUgeworICAgICAgICAKICAgICAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShw
cm90ZWN0ZWRUaGlzKV0oKSBtdXRhYmxlIHsgfSk7CiAgICAgfSk7CkBAIC00MTUsNCArNDM0LDIz
IEBAIHZvaWQgV2ViSURCU2VydmVyOjpjbG9zZSgpCiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViSURC
U2VydmVyOjp0cnlDbG9zZSgpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb25zLmlzRW1wdHkoKSB8
fCBtX2RhdGFUYXNrQ291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGNsb3NlKCk7CisgICAg
bV9jbG9zZUNhbGxiYWNrKCk7Cit9CisKK3ZvaWQgV2ViSURCU2VydmVyOjp1cGRhdGVEYXRhVGFz
a0NvdW50KERhdGFUYXNrQ291bnRVcGRhdGVUeXBlIHR5cGUpCit7CisgICAgaWYgKHR5cGUgPT0g
RGF0YVRhc2tDb3VudFVwZGF0ZVR5cGU6OkluY3JlYXNlKQorICAgICAgICArK21fZGF0YVRhc2tD
b3VudDsKKyAgICBlbHNlCisgICAgICAgIC0tbV9kYXRhVGFza0NvdW50OworCisgICAgdHJ5Q2xv
c2UoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCmluZGV4IDI1NmUyOTU2
NTBhNjIwZDgzY2Y1Y2E4N2E4YmMwY2MzMTE0YTFkMmUuLjBiYjFlODNkYmEyNjc3ODIwYmVhNWI4
NzI1MzA3ZTg2M2U4NzdkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBXZWJJREJTZXJ2ZXIgZmluYWwgOiBwdWJsaWMgQ3Jvc3NUaHJl
YWRUYXNrSGFuZGxlciwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2Vp
dmVyUmVmQ291bnRlZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJJREJTZXJ2ZXI+IGNy
ZWF0ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklE
QlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJik7
CisgICAgc3RhdGljIFJlZjxXZWJJREJTZXJ2ZXI+IGNyZWF0ZShQQUw6OlNlc3Npb25JRCwgY29u
c3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9y
YWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKIAogICAgIHZvaWQgZ2V0T3JpZ2lucyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hT
ZXQ8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZUFu
ZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRpbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjYWxsYmFjayk7CkBAIC04NiwyMCArODYsMjYgQEAgcHVibGljOgogCiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsK
ICAgICB2b2lkIGRpc3BhdGNoVG9UaHJlYWQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpOwotICAg
IHZvaWQgY2xvc2UoKTsKIAotICAgIGJvb2wgaGFzQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJu
ICFtX2Nvbm5lY3Rpb25zLmlzRW1wdHkoKTsgfQogcHJpdmF0ZToKLSAgICBXZWJJREJTZXJ2ZXIo
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2
ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYpOworICAg
IFdlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdl
YkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1
ZXN0ZXImJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB+V2ViSURCU2VydmVy
KCk7CiAKICAgICB2b2lkIHBvc3RUYXNrKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKIAorICAg
IGVudW0gY2xhc3MgRGF0YVRhc2tDb3VudFVwZGF0ZVR5cGUgOiB1aW50OF90IHsgRGVjcmVhc2Us
IEluY3JlYXNlIH07CisgICAgdm9pZCB1cGRhdGVEYXRhVGFza0NvdW50KERhdGFUYXNrQ291bnRV
cGRhdGVUeXBlKTsKKyAgICB2b2lkIGNsb3NlKCk7CisgICAgdm9pZCB0cnlDbG9zZSgpOworCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyPiBtX3NlcnZl
cjsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogCiAgICAgSGFzaE1hcDxJUEM6
OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50Pj4gbV9jb25uZWN0aW9uTWFwOwogICAgIEhhc2hTZXQ8SVBDOjpDb25uZWN0aW9uKj4g
bV9jb25uZWN0aW9uczsKKworICAgIHVpbnQ2NF90IG1fZGF0YVRhc2tDb3VudCB7IDAgfTsKKyAg
ICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IG1fY2xvc2VDYWxsYmFjazsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAwNTE1NTBl
Nzc3ZTUwN2EzYWRhNzNjMWJlOTI5ODI3NTAxN2EyMGJjLi43OWEzZGQ3ODZjZmQ5MDk5Y2UyNTNj
Nzk2ZDNlODgwN2Y3NTQ3MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMTI0
MSw2ICsxMjQxLDEwIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByaW9y
aXRpemVSZXNvdXJjZUxvYWRzKFZlY3RvcjxSZXNvdXJjZUxvYWRJCiAgICAgc2Vzc2lvbi0+bmV0
d29ya0xvYWRTY2hlZHVsZXIoKS5wcmlvcml0aXplTG9hZHMobG9hZHMpOwogfQogCit2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphZGRJREJDb25uZWN0aW9uKCkKK3sKKyAgICBt
X25ldHdvcmtQcm9jZXNzLT53ZWJJREJTZXJ2ZXIobV9zZXNzaW9uSUQpLmFkZENvbm5lY3Rpb24o
bV9jb25uZWN0aW9uLmdldCgpLCBtX3dlYlByb2Nlc3NJZGVudGlmaWVyKTsKK30KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAyZWM3ZDExY2Ew
ZWE5NDAyYTRjYTdhOTI4YzczZDgzYjFlNmVmMmY2Li4yODE1ZWRlYzczZGI1YjljNzRlZTI4NjQx
ZmJhM2ZiNDcyNDZmZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xODYsNiArMTg2
LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBicm9hZGNhc3RDb25zb2xlTWVzc2FnZShKU0M6Ok1l
c3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwog
CisgICAgdm9pZCBhZGRJREJDb25uZWN0aW9uKCk7CisKIHByaXZhdGU6CiAgICAgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29ya1Byb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGEwOTg0MTJh
NWYzZDU1ZmUzODQ4YjIyM2Y5ZGZmYTk4YzM2NjE0YzYuLjA3YmZjZTQ0OTFjZDUzMDZiNGZhYTI4
YmM0Yzg1YTUzY2VmMGVhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgpAQCAtMTA3LDQgKzEwNyw2IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogICAgIFNldFJlc291cmNlTG9h
ZFNjaGVkdWxpbmdNb2RlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgZW51bTp1
aW50OF90IFdlYkNvcmU6OkxvYWRTY2hlZHVsaW5nTW9kZSBtb2RlKQogICAgIFByaW9yaXRpemVS
ZXNvdXJjZUxvYWRzKFZlY3Rvcjx1aW50NjRfdD4gbG9hZElkZW50aWZpZXJzKQorCisgICAgQWRk
SURCQ29ubmVjdGlvbigpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCmluZGV4IDE1YzRlNGMwZDcwNzBhODFiZGY4MGJlMTA2YjY5ZTYwYWNi
YjY1OWQuLjk4M2E5N2NjNTQzMThmM2M4OTE5MWI5YTZiMzI5NzE1NWYwYTAyMTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0zOTEs
OCArMzkxLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnQKICAgICBjb25uZWN0aW9uLnNldE9u
TGluZVN0YXRlKE5ldHdvcmtTdGF0ZU5vdGlmaWVyOjpzaW5nbGV0b24oKS5vbkxpbmUoKSk7CiAK
ICAgICBtX3N0b3JhZ2VNYW5hZ2VyU2V0LT5hZGRDb25uZWN0aW9uKGNvbm5lY3Rpb24uY29ubmVj
dGlvbigpKTsKLQotICAgIHdlYklEQlNlcnZlcihzZXNzaW9uSUQpLmFkZENvbm5lY3Rpb24oY29u
bmVjdGlvbi5jb25uZWN0aW9uKCksIGlkZW50aWZpZXIpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpjbGVhckNhY2hlZENyZWRlbnRpYWxzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKQEAg
LTU1Miw4ICs1NTAsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbihQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAjZW5kaWYKIAogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQt
PnJlbW92ZShzZXNzaW9uSUQpOwotCi0gICAgcmVtb3ZlV2ViSURCU2VydmVySWZQb3NzaWJsZShz
ZXNzaW9uSUQpOwogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKQEAg
LTIzMzAsMTAgKzIzMjYsMTUgQEAgUmVmPFdlYklEQlNlcnZlcj4gTmV0d29ya1Byb2Nlc3M6OmNy
ZWF0ZVdlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgICAgIHBhdGgg
PSBtX2lkYkRhdGFiYXNlUGF0aHMuZ2V0KHNlc3Npb25JRCk7CiAgICAgfQogCi0gICAgcmV0dXJu
IFdlYklEQlNlcnZlcjo6Y3JlYXRlKHNlc3Npb25JRCwgcGF0aCwgW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIodGhpcyksIHNlc3Npb25JRF0oY29uc3QgYXV0byYgb3JpZ2luLCB1aW50NjRf
dCBzcGFjZVJlcXVlc3RlZCkgeworICAgIGF1dG8gc3BhY2VSZXF1ZXN0ZXIgPSBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgc2Vzc2lvbklEXShjb25zdCBhdXRvJiBvcmlnaW4s
IHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSB7CiAgICAgICAgIFJlZlB0cjxTdG9yYWdlUXVvdGFN
YW5hZ2VyPiBzdG9yYWdlUXVvdGFNYW5hZ2VyID0gd2Vha1RoaXMgPyB0aGlzLT5zdG9yYWdlUXVv
dGFNYW5hZ2VyKHNlc3Npb25JRCwgb3JpZ2luKSA6IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBz
dG9yYWdlUXVvdGFNYW5hZ2VyID8gc3RvcmFnZVF1b3RhTWFuYWdlci0+cmVxdWVzdFNwYWNlT25C
YWNrZ3JvdW5kVGhyZWFkKHNwYWNlUmVxdWVzdGVkKSA6IFN0b3JhZ2VRdW90YU1hbmFnZXI6OkRl
Y2lzaW9uOjpEZW55OwotICAgIH0pOworICAgIH07CisgICAgYXV0byBjbG9zZUhhbmRsZXIgPSBb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgc2Vzc2lvbklEXSgpIHsKKyAgICAgICAgaWYg
KHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fd2ViSURCU2VydmVycy5yZW1vdmUo
c2Vzc2lvbklEKTsKKyAgICB9OworICAgIHJldHVybiBXZWJJREJTZXJ2ZXI6OmNyZWF0ZShzZXNz
aW9uSUQsIHBhdGgsIFdURk1vdmUoc3BhY2VSZXF1ZXN0ZXIpLCBXVEZNb3ZlKGNsb3NlSGFuZGxl
cikpOwogfQogCiBXZWJJREJTZXJ2ZXImIE5ldHdvcmtQcm9jZXNzOjp3ZWJJREJTZXJ2ZXIoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpAQCAtMjM2MywyNCArMjM2NCw2IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnNldFNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VySURCUm9vdFBhdGgoUEFMOjpT
ZXNzaW9uSUQgc2VzCiAgICAgc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXItPnNldElEQlJvb3RQ
YXRoKGlkYlJvb3RQYXRoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlV2ViSURC
U2VydmVySWZQb3NzaWJsZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi17Ci0gICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGF1dG8gaXRlcmF0b3IgPSBtX3dlYklEQlNlcnZl
cnMuZmluZChzZXNzaW9uSUQpOwotICAgIGlmIChpdGVyYXRvciA9PSBtX3dlYklEQlNlcnZlcnMu
ZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX25ldHdvcmtTZXNzaW9ucy5jb250
YWlucyhzZXNzaW9uSUQpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoaXRlcmF0b3ItPnZh
bHVlLT5oYXNDb25uZWN0aW9uKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGl0ZXJhdG9yLT52
YWx1ZS0+Y2xvc2UoKTsKLSAgICBtX3dlYklEQlNlcnZlcnMucmVtb3ZlKGl0ZXJhdG9yKTsKLX0K
LQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c3luY0xvY2FsU3RvcmFnZShDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9zdG9yYWdlTWFuYWdlclNl
dC0+d2FpdFVudGlsU3luY2luZ0xvY2FsU3RvcmFnZUZpbmlzaGVkKCk7CkBAIC0yNjg4LDEwICsy
NjcxLDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y29ubmVjdGlvblRvV2ViUHJvY2Vzc0Nsb3Nl
ZChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFAKIHsKICAgICBtX3N0b3JhZ2VNYW5hZ2Vy
U2V0LT5yZW1vdmVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwogCi0gICAgYXV0byogd2ViSURCU2Vy
dmVyID0gbV93ZWJJREJTZXJ2ZXJzLmdldChzZXNzaW9uSUQpOwotICAgIEFTU0VSVCh3ZWJJREJT
ZXJ2ZXIpOwotICAgIHdlYklEQlNlcnZlci0+cmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9uKTsK
LSAgICByZW1vdmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKHNlc3Npb25JRCk7CisgICAgaWYgKGF1
dG8qIHdlYklEQlNlcnZlciA9IG1fd2ViSURCU2VydmVycy5nZXQoc2Vzc2lvbklEKSkKKyAgICAg
ICAgd2ViSURCU2VydmVyLT5yZW1vdmVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwogfQogCiBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogTmV0d29ya1Byb2Nlc3M6OndlYlByb2Nlc3NDb25u
ZWN0aW9uKFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCBmMDYyOTc1ZTQzMDUyNWM5
YWQ5ZmJkYzM1ZWY2MDU5N2Q2YWZmMDU4Li5lMzllMWM0NTJiZWQ2OWNjMTRhZjRjY2E3N2EyMDQ2
Mzg3MDlmMDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5jcHAKQEAgLTU5LDYgKzU5LDcgQEAgUmVmPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGUoKQogV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKQogICAgIDogbV9jb25uZWN0aW9uVG9TZXJ2ZXIo
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZSgqdGhpcykpCiB7CisgICAg
c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkFkZElEQkNvbm5l
Y3Rpb24oKSk7CiB9CiAKIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6fldlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlcigpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425521</attachid>
            <date>2021-04-08 10:58:05 -0700</date>
            <delta_ts>2021-04-08 14:21:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224305-20210408105804.patch</filename>
            <type>text/plain</type>
            <size>17349</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwODc4MTk1YTllNWY3ZTI1
NGU4YTBiYWYwNmYyZDJhZDljMWVmNjguLjZhY2M0NTljYmIyNGYxNTliNmJlYjIxNWNiYzQ2NzAy
MzIyMzBjZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMDQtMDcgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIFdlYklEQlNlcnZlciBv
bmx5IHdoZW4gaXQgaXMgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjQzMDUKKyAgICAgICAgPHJkYXI6Ly83MTk2MjE5Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgZWFjaCBX
ZWJJREJTZXJ2ZXIgY29tZXMgd2l0aCBhIHRocmVhZCwgc28gd2UgZG9uJ3Qgd2FudCB0byBrZWVw
IFdlYklEQlNlcnZlciBpZiBpdCdzIG5vdCBpbiB1c2UuCisgICAgICAgIE5vdyB0aGVyZSBhcmUg
dHdvIGNhc2VzIHdoZXJlIG5ldHdvcmsgcHJvY2VzcyBuZWVkcyBhIFdlYklEQlNlcnZlcjoKKyAg
ICAgICAgMS4gaGFuZGxlIHJlcXVlc3RzIGZyb20gVUkgcHJvY2VzcyB0byBjb2xsZWN0IG9yIHJl
bW92ZSBkYXRhCisgICAgICAgIDIuIGhhbmRsZSByZXF1ZXN0cyBmcm9tIFdlYiBwcm9jZXNzIHRv
IHBlcmZvcm0gSURCIG9wZXJhdGlvbnMgCisgICAgICAgIFdlIGNyZWF0ZWQgYSBXZWJJREJTZXJ2
ZXIgd2hlbiBuZXR3b3JrIHByb2Nlc3MgY29ubmVjdHMgdG8gYSB3ZWIgcHJvY2VzcywgYW5kIHdl
IHNob3VsZCBjcmVhdGUgaXQgd2hlbiAKKyAgICAgICAgd2ViIHByb2Nlc3MgaXMgYWJvdXQgdG8g
cGVyZm9ybSBJREIgb3BlcmF0aW9ucy4gQWxzbywgd2Ugc2hvdWxkIHJlbW92ZSBXZWJJREJTZXJ2
ZXIgaWYgaXQncyBkb25lIGhhbmRsaW5nCisgICAgICAgIHJlcXVlc3RzLCBpLmUgY291bnQgb2Yg
cGVuZGluZyByZXF1ZXN0cyBmcm9tIFVJIHByb2Nlc3MgaXMgMCBhbmQgV2ViSURCU2VydmVyIGlz
IG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IHdlYiAKKyAgICAgICAgcHJvY2VzcyBjb25uZWN0aW9u
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJT
ZXJ2ZXI6OmdldE9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNsb3Nl
QW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCU2VydmVyOjpyZW5hbWVPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJTZXJ2ZXI6OnJlbW92ZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2
ZXI6OnRyeUNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjp1cGRhdGVEYXRh
VGFza0NvdW50KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6YWRkSURCQ29ubmVjdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpjcmVhdGVXZWJJREJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y29ubmVjdGlvblRvV2ViUHJvY2Vzc0Nsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpyZW1vdmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVy
OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorCiAyMDIxLTA0LTA3ICBNaWNoYWVsIENhdGFu
emFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdW0dUS10gTnVsbCBw
b2ludGVyIGRlcmVmZXJlbmNlIHdoZW4gY2hpbGQgcHJvY2VzcyBleGl0cyBpbW1lZGlhdGVseQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5jcHAKaW5kZXggZDIxZTU3MWViMTdlMWU3MzczNzJiOTQ1MzYwZTk1YTU5MzkwNjVm
Ny4uNDRiOWI5MzczZTY3ZGFmY2EzMTUwOTYwMmE4ZTM1NmIzMTBjNzA1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIu
Y3BwCkBAIC0zNCwxMyArMzQsMTQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxXZWJJ
REJTZXJ2ZXI+IFdlYklEQlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpT
dG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlcikKK1JlZjxX
ZWJJREJTZXJ2ZXI+IFdlYklEQlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVy
OjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYklEQlNlcnZlcihzZXNzaW9uSUQsIGRpcmVjdG9yeSwgV1RGTW92ZShzcGFjZVJl
cXVlc3RlcikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJTZXJ2ZXIoc2Vzc2lv
bklELCBkaXJlY3RvcnksIFdURk1vdmUoc3BhY2VSZXF1ZXN0ZXIpLCBXVEZNb3ZlKGNhbGxiYWNr
KSkpOwogfQogCi1XZWJJREJTZXJ2ZXI6OldlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNl
cnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYgc3BhY2VSZXF1ZXN0ZXIp
Ci0gICAgOiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyKCJjb20uYXBwbGUuV2ViS2l0LkluZGV4ZWRE
QlNlcnZlciIsIFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6QXV0b2RyYWluZWRQb29sRm9y
UnVuTG9vcDo6VXNlKQorV2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVz
dGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCisgICAgOiBDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyKG1ha2VTdHJpbmcoImNvbS5hcHBsZS5XZWJLaXQuSW5kZXhlZERCU2Vy
dmVyLiIsIHNlc3Npb25JRC50b1VJbnQ2NCgpKS5hc2NpaSgpLmRhdGEoKSwgV1RGOjpDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyOjpBdXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wOjpVc2UpCisgICAgLCBt
X2Nsb3NlQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKIApAQCAtNjEsMTIgKzYyLDE1IEBAIHZvaWQgV2ViSURCU2VydmVyOjpnZXRP
cmlnaW5zKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxXZWJDb3JlOjpTZWN1cml0eU9y
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIHVwZGF0ZURhdGFUYXNr
Q291bnQoRGF0YVRhc2tDb3VudFVwZGF0ZVR5cGU6OkluY3JlYXNlKTsKICAgICBwb3N0VGFzayhb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKLSAgICAg
ICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayksIG9yaWdpbnMgPSBjcm9zc1RocmVhZENvcHkobV9zZXJ2ZXItPmdldE9yaWdpbnMoKSld
KCkgbXV0YWJsZSB7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKSwgb3JpZ2lucyA9IGNyb3NzVGhyZWFkQ29weShtX3NlcnZlci0+Z2V0T3Jp
Z2lucygpKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUob3JpZ2lu
cykpOworCisgICAgICAgICAgICB1cGRhdGVEYXRhVGFza0NvdW50KERhdGFUYXNrQ291bnRVcGRh
dGVUeXBlOjpEZWNyZWFzZSk7CiAgICAgICAgIH0pKTsKICAgICB9KTsKIH0KQEAgLTc1LDEzICs3
OSwxNiBAQCB2b2lkIFdlYklEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmll
ZFNpbmNlKFdhbGxUaW1lIG1vZGlmaWNhdGlvblRpbQogewogICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CiAKKyAgICB1cGRhdGVEYXRhVGFza0NvdW50KERhdGFUYXNrQ291bnRVcGRhdGVU
eXBlOjpJbmNyZWFzZSk7CiAgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgbW9kaWZpY2F0aW9uVGltZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7CiAgICAgICAgIG1fc2Vy
dmVyLT5jbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UobW9kaWZpY2F0aW9uVGlt
ZSk7Ci0gICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBwb3N0VGFza1JlcGx5KENyb3Nz
VGhyZWFkVGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyks
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBj
YWxsYmFjaygpOworCisgICAgICAgICAgICB1cGRhdGVEYXRhVGFza0NvdW50KERhdGFUYXNrQ291
bnRVcGRhdGVUeXBlOjpEZWNyZWFzZSk7CiAgICAgICAgIH0pKTsKICAgICB9KTsKIH0KQEAgLTkw
LDEzICs5NywxNiBAQCB2b2lkIFdlYklEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNG
b3JPcmlnaW5zKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cgogewogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAKKyAgICB1cGRhdGVEYXRhVGFza0NvdW50KERhdGFUYXNrQ291bnRV
cGRhdGVUeXBlOjpJbmNyZWFzZSk7CiAgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgb3JpZ2luRGF0YXMgPSBvcmlnaW5EYXRhcy5pc29sYXRlZENvcHko
KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c2VydmVyLT5sb2NrKCkpOwogICAgICAgICBtX3NlcnZlci0+Y2xvc2VBbmREZWxldGVEYXRhYmFz
ZXNGb3JPcmlnaW5zKG9yaWdpbkRhdGFzKTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1Ro
cmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAg
ICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBt
dXRhYmxlIHsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisKKyAgICAgICAgICAgIHVwZGF0ZURh
dGFUYXNrQ291bnQoRGF0YVRhc2tDb3VudFVwZGF0ZVR5cGU6OkRlY3JlYXNlKTsKICAgICAgICAg
fSkpOwogICAgIH0pOwogfQpAQCAtMTA1LDEyICsxMTUsMTcgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6
OnJlbmFtZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdp
biwgY28KIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgdXBkYXRlRGF0
YVRhc2tDb3VudChEYXRhVGFza0NvdW50VXBkYXRlVHlwZTo6SW5jcmVhc2UpOwogICAgIHBvc3RU
YXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9sZE9yaWdpbiA9IG9s
ZE9yaWdpbi5pc29sYXRlZENvcHkoKSwgbmV3T3JpZ2luID0gbmV3T3JpZ2luLmlzb2xhdGVkQ29w
eSgpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoKSBtdXRhYmxlIHsKICAgICAgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9zZXJ2ZXItPmxvY2soKSk7CiAgICAgICAgIG1fc2VydmVyLT5yZW5hbWVPcmlnaW4ob2xkT3Jp
Z2luLCBuZXdPcmlnaW4pOwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhX
VEZNb3ZlKGNhbGxiYWNrKSkpOworICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFz
ayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjYWxsYmFjaygp
OworCisgICAgICAgICAgICB1cGRhdGVEYXRhVGFza0NvdW50KERhdGFUYXNrQ291bnRVcGRhdGVU
eXBlOjpEZWNyZWFzZSk7CisgICAgICAgIH0pKTsKICAgICB9KTsKIH0KIApAQCAtMzcwLDE2ICsz
ODUsMjAgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAg
ICBtX2Nvbm5lY3Rpb25zLnJlbW92ZSgmY29ubmVjdGlvbik7Ci0gICAgY29ubmVjdGlvbi5yZW1v
dmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYklEQlNlcnZlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKTsKKyAgICBhdXRvKiB0YWtlbkNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25z
LnRha2UoJmNvbm5lY3Rpb24pOworICAgIGlmICghdGFrZW5Db25uZWN0aW9uKQorICAgICAgICBy
ZXR1cm47CisKKyAgICB0YWtlbkNvbm5lY3Rpb24tPnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6V2ViSURCU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogICAgIHBv
c3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbm5lY3Rpb25J
RCA9IGNvbm5lY3Rpb24udW5pcXVlSUQoKV0gewogICAgICAgICBhdXRvIGNvbm5lY3Rpb24gPSBt
X2Nvbm5lY3Rpb25NYXAudGFrZShjb25uZWN0aW9uSUQpOwotCiAgICAgICAgIEFTU0VSVChjb25u
ZWN0aW9uKTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsK
ICAgICAgICAgbV9zZXJ2ZXItPnVucmVnaXN0ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb24tPmNvbm5l
Y3Rpb25Ub0NsaWVudCgpKTsKICAgICB9KTsKKworICAgIHRyeUNsb3NlKCk7CiB9CiAKIHZvaWQg
V2ViSURCU2VydmVyOjpwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKQEAgLTQxNSw0
ICs0MzQsMjMgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OmNsb3NlKCkKICAgICB9KTsKIH0KIAordm9p
ZCBXZWJJREJTZXJ2ZXI6OnRyeUNsb3NlKCkKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbnMuaXNF
bXB0eSgpIHx8IG1fZGF0YVRhc2tDb3VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2xvc2Uo
KTsKKyAgICBtX2Nsb3NlQ2FsbGJhY2soKTsKK30KKwordm9pZCBXZWJJREJTZXJ2ZXI6OnVwZGF0
ZURhdGFUYXNrQ291bnQoRGF0YVRhc2tDb3VudFVwZGF0ZVR5cGUgdHlwZSkKK3sKKyAgICBpZiAo
dHlwZSA9PSBEYXRhVGFza0NvdW50VXBkYXRlVHlwZTo6SW5jcmVhc2UpCisgICAgICAgICsrbV9k
YXRhVGFza0NvdW50OworICAgIGVsc2UKKyAgICAgICAgLS1tX2RhdGFUYXNrQ291bnQ7CisKKyAg
ICB0cnlDbG9zZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKaW5kZXgg
MjU2ZTI5NTY1MGE2MjBkODNjZjVjYTg3YThiYzBjYzMxMTRhMWQyZS4uMGJiMWU4M2RiYTI2Nzc4
MjBiZWE1Yjg3MjUzMDdlODYzZTg3N2QxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKQEAgLTQzLDcgKzQzLDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYklEQlNlcnZlciBmaW5hbCA6IHB1YmxpYyBD
cm9zc1RocmVhZFRhc2tIYW5kbGVyLCBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNz
YWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYklEQlNl
cnZlcj4gY3JlYXRlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2Vi
Q29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVl
c3RlciYmKTsKKyAgICBzdGF0aWMgUmVmPFdlYklEQlNlcnZlcj4gY3JlYXRlKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2
ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCBnZXRPcmlnaW5zKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoSGFzaFNldDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiYpPiYmKTsKICAgICB2b2lk
IGNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShXYWxsVGltZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKTsKQEAgLTg2LDIwICs4NiwyNiBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpOwogICAgIHZvaWQgZGlzcGF0Y2hUb1RocmVhZChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4m
Jik7Ci0gICAgdm9pZCBjbG9zZSgpOwogCi0gICAgYm9vbCBoYXNDb25uZWN0aW9uKCkgY29uc3Qg
eyByZXR1cm4gIW1fY29ubmVjdGlvbnMuaXNFbXB0eSgpOyB9CiBwcml2YXRlOgotICAgIFdlYklE
QlNlcnZlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6
OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXIm
Jik7CisgICAgV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVj
dG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJT
cGFjZVJlcXVlc3RlciYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIH5XZWJJ
REJTZXJ2ZXIoKTsKIAogICAgIHZvaWQgcG9zdFRhc2soV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYp
OwogCisgICAgZW51bSBjbGFzcyBEYXRhVGFza0NvdW50VXBkYXRlVHlwZSA6IHVpbnQ4X3QgeyBE
ZWNyZWFzZSwgSW5jcmVhc2UgfTsKKyAgICB2b2lkIHVwZGF0ZURhdGFUYXNrQ291bnQoRGF0YVRh
c2tDb3VudFVwZGF0ZVR5cGUpOworICAgIHZvaWQgY2xvc2UoKTsKKyAgICB2b2lkIHRyeUNsb3Nl
KCk7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI+
IG1fc2VydmVyOwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAKICAgICBIYXNo
TWFwPElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ+PiBtX2Nvbm5lY3Rpb25NYXA7CiAgICAgSGFzaFNldDxJUEM6OkNvbm5l
Y3Rpb24qPiBtX2Nvbm5lY3Rpb25zOworCisgICAgdWludDY0X3QgbV9kYXRhVGFza0NvdW50IHsg
MCB9OworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gbV9jbG9zZUNhbGxiYWNrOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4
IDA1MTU1MGU3NzdlNTA3YTNhZGE3M2MxYmU5Mjk4Mjc1MDE3YTIwYmMuLjc5YTNkZDc4NmNmZDkw
OTljZTI1M2M3OTZkM2U4ODA3Zjc1NDczMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CkBAIC0xMjQxLDYgKzEyNDEsMTAgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6cHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPFJlc291cmNlTG9hZEkKICAgICBzZXNz
aW9uLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpLnByaW9yaXRpemVMb2Fkcyhsb2Fkcyk7CiB9CiAK
K3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmFkZElEQkNvbm5lY3Rpb24oKQor
eworICAgIG1fbmV0d29ya1Byb2Nlc3MtPndlYklEQlNlcnZlcihtX3Nlc3Npb25JRCkuYWRkQ29u
bmVjdGlvbihtX2Nvbm5lY3Rpb24uZ2V0KCksIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIpOworfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDJl
YzdkMTFjYTBlYTk0MDJhNGNhN2E5MjhjNzNkODNiMWU2ZWYyZjYuLjI4MTVlZGVjNzNkYjViOWM3
NGVlMjg2NDFmYmEzZmI0NzI0NmZkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE4
Niw2ICsxODYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGJyb2FkY2FzdENvbnNvbGVNZXNzYWdl
KEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSk7CiAKKyAgICB2b2lkIGFkZElEQkNvbm5lY3Rpb24oKTsKKwogcHJpdmF0ZToKICAgICBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
YTA5ODQxMmE1ZjNkNTVmZTM4NDhiMjIzZjlkZmZhOThjMzY2MTRjNi4uMDdiZmNlNDQ5MWNkNTMw
NmI0ZmFhMjhiYzRjODVhNTNjZWYwZWFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCkBAIC0xMDcsNCArMTA3LDYgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAgICAgU2V0UmVz
b3VyY2VMb2FkU2NoZWR1bGluZ01vZGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlE
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TG9hZFNjaGVkdWxpbmdNb2RlIG1vZGUpCiAgICAgUHJp
b3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPHVpbnQ2NF90PiBsb2FkSWRlbnRpZmllcnMpCisK
KyAgICBBZGRJREJDb25uZWN0aW9uKCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMTVjNGU0YzBkNzA3MGE4MWJkZjgwYmUxMDZi
NjllNjBhY2JiNjU5ZC4uOTgzYTk3Y2M1NDMxOGYzYzg5MTkxYjlhNmIzMjk3MTU1ZjBhMDIxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
QEAgLTM5MSw4ICszOTEsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmllciBpZGVudAogICAgIGNvbm5lY3Rp
b24uc2V0T25MaW5lU3RhdGUoTmV0d29ya1N0YXRlTm90aWZpZXI6OnNpbmdsZXRvbigpLm9uTGlu
ZSgpKTsKIAogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQtPmFkZENvbm5lY3Rpb24oY29ubmVjdGlv
bi5jb25uZWN0aW9uKCkpOwotCi0gICAgd2ViSURCU2VydmVyKHNlc3Npb25JRCkuYWRkQ29ubmVj
dGlvbihjb25uZWN0aW9uLmNvbm5lY3Rpb24oKSwgaWRlbnRpZmllcik7CiB9CiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQpAQCAtNTUyLDggKzU1MCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNz
aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICNlbmRpZgogCiAgICAgbV9zdG9yYWdlTWFu
YWdlclNldC0+cmVtb3ZlKHNlc3Npb25JRCk7Ci0KLSAgICByZW1vdmVXZWJJREJTZXJ2ZXJJZlBv
c3NpYmxlKHNlc3Npb25JRCk7CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQpAQCAtMjMzMCwxMCArMjMyNiwxNSBAQCBSZWY8V2ViSURCU2VydmVyPiBOZXR3b3JrUHJv
Y2Vzczo6Y3JlYXRlV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAg
ICAgcGF0aCA9IG1faWRiRGF0YWJhc2VQYXRocy5nZXQoc2Vzc2lvbklEKTsKICAgICB9CiAKLSAg
ICByZXR1cm4gV2ViSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBwYXRoLCBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgc2Vzc2lvbklEXShjb25zdCBhdXRvJiBvcmlnaW4s
IHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSB7CisgICAgYXV0byBzcGFjZVJlcXVlc3RlciA9IFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzZXNzaW9uSURdKGNvbnN0IGF1dG8m
IG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQpIHsKICAgICAgICAgUmVmUHRyPFN0b3Jh
Z2VRdW90YU1hbmFnZXI+IHN0b3JhZ2VRdW90YU1hbmFnZXIgPSB3ZWFrVGhpcyA/IHRoaXMtPnN0
b3JhZ2VRdW90YU1hbmFnZXIoc2Vzc2lvbklELCBvcmlnaW4pIDogbnVsbHB0cjsKICAgICAgICAg
cmV0dXJuIHN0b3JhZ2VRdW90YU1hbmFnZXIgPyBzdG9yYWdlUXVvdGFNYW5hZ2VyLT5yZXF1ZXN0
U3BhY2VPbkJhY2tncm91bmRUaHJlYWQoc3BhY2VSZXF1ZXN0ZWQpIDogU3RvcmFnZVF1b3RhTWFu
YWdlcjo6RGVjaXNpb246OkRlbnk7Ci0gICAgfSk7CisgICAgfTsKKyAgICBhdXRvIGNsb3NlSGFu
ZGxlciA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzZXNzaW9uSURdKCkgeworICAg
ICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV93ZWJJREJTZXJ2ZXJz
LnJlbW92ZShzZXNzaW9uSUQpOworICAgIH07CisgICAgcmV0dXJuIFdlYklEQlNlcnZlcjo6Y3Jl
YXRlKHNlc3Npb25JRCwgcGF0aCwgV1RGTW92ZShzcGFjZVJlcXVlc3RlciksIFdURk1vdmUoY2xv
c2VIYW5kbGVyKSk7CiB9CiAKIFdlYklEQlNlcnZlciYgTmV0d29ya1Byb2Nlc3M6OndlYklEQlNl
cnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCkBAIC0yMzYzLDI0ICsyMzY0LDYgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXJJREJSb290UGF0
aChQQUw6OlNlc3Npb25JRCBzZXMKICAgICBzZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlci0+c2V0
SURCUm9vdFBhdGgoaWRiUm9vdFBhdGgpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpyZW1v
dmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKLXsKLSAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgYXV0byBpdGVyYXRvciA9IG1fd2Vi
SURCU2VydmVycy5maW5kKHNlc3Npb25JRCk7Ci0gICAgaWYgKGl0ZXJhdG9yID09IG1fd2ViSURC
U2VydmVycy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fbmV0d29ya1Nlc3Np
b25zLmNvbnRhaW5zKHNlc3Npb25JRCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChpdGVy
YXRvci0+dmFsdWUtPmhhc0Nvbm5lY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaXRl
cmF0b3ItPnZhbHVlLT5jbG9zZSgpOwotICAgIG1fd2ViSURCU2VydmVycy5yZW1vdmUoaXRlcmF0
b3IpOwotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzeW5jTG9jYWxTdG9yYWdlKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3N0b3JhZ2VN
YW5hZ2VyU2V0LT53YWl0VW50aWxTeW5jaW5nTG9jYWxTdG9yYWdlRmluaXNoZWQoKTsKQEAgLTI2
ODgsMTAgKzI2NzEsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjb25uZWN0aW9uVG9XZWJQcm9j
ZXNzQ2xvc2VkKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUAogewogICAgIG1fc3RvcmFn
ZU1hbmFnZXJTZXQtPnJlbW92ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiAKLSAgICBhdXRvKiB3
ZWJJREJTZXJ2ZXIgPSBtX3dlYklEQlNlcnZlcnMuZ2V0KHNlc3Npb25JRCk7Ci0gICAgQVNTRVJU
KHdlYklEQlNlcnZlcik7Ci0gICAgd2ViSURCU2VydmVyLT5yZW1vdmVDb25uZWN0aW9uKGNvbm5l
Y3Rpb24pOwotICAgIHJlbW92ZVdlYklEQlNlcnZlcklmUG9zc2libGUoc2Vzc2lvbklEKTsKKyAg
ICBpZiAoYXV0byogd2ViSURCU2VydmVyID0gbV93ZWJJREJTZXJ2ZXJzLmdldChzZXNzaW9uSUQp
KQorICAgICAgICB3ZWJJREJTZXJ2ZXItPnJlbW92ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiB9
CiAKIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBOZXR3b3JrUHJvY2Vzczo6d2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcikgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IGYwNjI5NzVl
NDMwNTI1YzlhZDlmYmRjMzVlZjYwNTk3ZDZhZmYwNTguLmUzOWUxYzQ1MmJlZDY5Y2MxNGFmNGNj
YTc3YTIwNDYzODcwOWYwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyLmNwcApAQCAtNTksNiArNTksNyBAQCBSZWY8V2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyPiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZSgpCiBXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcigpCiAgICAgOiBtX2Nvbm5lY3Rpb25U
b1NlcnZlcihJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKCp0aGlzKSkK
IHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QWRk
SURCQ29ubmVjdGlvbigpKTsKIH0KIAogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjp+V2ViSURC
Q29ubmVjdGlvblRvU2VydmVyKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425542</attachid>
            <date>2021-04-08 14:21:42 -0700</date>
            <delta_ts>2021-04-08 16:01:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224305-20210408142140.patch</filename>
            <type>text/plain</type>
            <size>17789</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwODc4MTk1YTllNWY3ZTI1
NGU4YTBiYWYwNmYyZDJhZDljMWVmNjguLjgwNTExZjZmNjY1MTBjNDM2MDZhN2E2NjlkY2Q2ZWFm
NWJkYzFkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjEtMDQtMDggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIFdlYklEQlNlcnZlciBv
bmx5IHdoZW4gaXQgaXMgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjQzMDUKKyAgICAgICAgcmRhcjovLzcxOTYyMTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IGVhY2ggV2Vi
SURCU2VydmVyIGNvbWVzIHdpdGggYSB0aHJlYWQsIHNvIHdlIGRvbid0IHdhbnQgdG8ga2VlcCBX
ZWJJREJTZXJ2ZXIgaWYgaXQncyBub3QgaW4gdXNlLgorICAgICAgICBOb3cgdGhlcmUgYXJlIHR3
byBjYXNlcyB3aGVyZSBuZXR3b3JrIHByb2Nlc3MgbmVlZHMgYSBXZWJJREJTZXJ2ZXI6CisgICAg
ICAgIDEuIGhhbmRsZSByZXF1ZXN0cyBmcm9tIFVJIHByb2Nlc3MgdG8gY29sbGVjdCBvciByZW1v
dmUgZGF0YQorICAgICAgICAyLiBoYW5kbGUgcmVxdWVzdHMgZnJvbSBXZWIgcHJvY2VzcyB0byBw
ZXJmb3JtIElEQiBvcGVyYXRpb25zIAorICAgICAgICBXZSBjcmVhdGVkIGEgV2ViSURCU2VydmVy
IHdoZW4gbmV0d29yayBwcm9jZXNzIGNvbm5lY3RzIHRvIGEgd2ViIHByb2Nlc3MsIGFuZCB3ZSBz
aG91bGQgY3JlYXRlIGl0IHdoZW4gCisgICAgICAgIHdlYiBwcm9jZXNzIGlzIGFib3V0IHRvIHBl
cmZvcm0gSURCIG9wZXJhdGlvbnMuIEFsc28sIHdlIHNob3VsZCByZW1vdmUgV2ViSURCU2VydmVy
IGlmIGl0J3MgZG9uZSBoYW5kbGluZworICAgICAgICByZXF1ZXN0cywgaS5lIGNvdW50IG9mIHBl
bmRpbmcgcmVxdWVzdHMgZnJvbSBVSSBwcm9jZXNzIGlzIDAgYW5kIFdlYklEQlNlcnZlciBpcyBu
b3QgYXNzb2NpYXRlZCB3aXRoIGFueSB3ZWIgCisgICAgICAgIHByb2Nlc3MgY29ubmVjdGlvbi4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQlNlcnZlcjo6V2ViSURCU2VydmVyKTogQWRkIFNlc3Npb25JRCB0byB0aHJlYWQgbmFt
ZSBzbyB3ZSBrbm93IHdoaWNoIHNlc3Npb24gdG8gYmxhbWUgaW4gY3Jhc2ggCisgICAgICAgIHRy
YWNlcy4gCisgICAgICAgIChXZWJLaXQ6Om1fY2xvc2VDYWxsYmFjayk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQlNlcnZlcjo6Z2V0T3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNl
cnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OnJlbmFtZU9yaWdpbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQlNlcnZlcjo6cmVtb3ZlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQlNlcnZlcjo6dHJ5Q2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJTZXJ2ZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjphZGRJREJDb25uZWN0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOiBBZGQgYSBt
ZXNzYWdlIGZvciB3ZWIgcHJvY2VzcyB0byBhc2sgbmV0d29yayBwcm9jZXNzCisgICAgICAgIHRv
IGNyZWF0ZSBXZWJJREJTZXJ2ZXIgaWYgbm90IGV4aXN0cywgYW5kIGFzc29jaWF0ZSB0aGUgd2Vi
IHByb2Nlc3MgY29ubmVjdGlvbiB3aXRoIFdlYklEQlNlcnZlci4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpjcmVhdGVXZWJJREJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6Y29ubmVjdGlvblRvV2ViUHJvY2Vzc0Nsb3NlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZW1vdmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKTogRGVsZXRl
ZC4gTW92ZSB0aGUgcmVtb3ZhbCBjb2RlIHRvIFdlYklEQlNlcnZlci4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXIpOgorCiAyMDIxLTA0LTA3ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnph
cm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdW0dUS10gTnVsbCBwb2ludGVyIGRlcmVmZXJl
bmNlIHdoZW4gY2hpbGQgcHJvY2VzcyBleGl0cyBpbW1lZGlhdGVseQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKaW5k
ZXggZDIxZTU3MWViMTdlMWU3MzczNzJiOTQ1MzYwZTk1YTU5MzkwNjVmNy4uMWQ1YzRiZjQzMTc5
ZTdhMTdiNWNlOTExZGQ0MTFkNDY3MTMxNWI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCkBAIC0zNCwxMyAr
MzQsMTUgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxXZWJJREJTZXJ2ZXI+IFdlYklE
QlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBk
aXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5h
Z2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlcikKK1JlZjxXZWJJREJTZXJ2ZXI+IFdl
YklEQlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFN
YW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYklEQlNl
cnZlcihzZXNzaW9uSUQsIGRpcmVjdG9yeSwgV1RGTW92ZShzcGFjZVJlcXVlc3RlcikpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJTZXJ2ZXIoc2Vzc2lvbklELCBkaXJlY3Rvcnks
IFdURk1vdmUoc3BhY2VSZXF1ZXN0ZXIpLCBXVEZNb3ZlKGNhbGxiYWNrKSkpOwogfQogCi1XZWJJ
REJTZXJ2ZXI6OldlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1
b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYgc3BhY2VSZXF1ZXN0ZXIpCi0gICAgOiBDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyKCJjb20uYXBwbGUuV2ViS2l0LkluZGV4ZWREQlNlcnZlciIsIFdURjo6
Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6QXV0b2RyYWluZWRQb29sRm9yUnVuTG9vcDo6VXNlKQor
V2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3Jh
Z2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVzdGVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCisgICAgOiBDcm9zc1RocmVhZFRhc2tIYW5kbGVy
KG1ha2VTdHJpbmcoImNvbS5hcHBsZS5XZWJLaXQuSW5kZXhlZERCU2VydmVyLiIsIHNlc3Npb25J
RC50b1VJbnQ2NCgpKS5hc2NpaSgpLmRhdGEoKSwgV1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVy
OjpBdXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wOjpVc2UpCisgICAgLCBtX2RhdGFUYXNrQ291bnRl
cihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShSZWZDb3VudGVyRXZlbnQgZXZlbnQp
IHsgcHJvdGVjdGVkVGhpcy0+dHJ5Q2xvc2UoKTsgfSkKKyAgICAsIG1fY2xvc2VDYWxsYmFjayhX
VEZNb3ZlKGNhbGxiYWNrKSkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBA
IC02MSwxMSArNjMsMTEgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OmdldE9yaWdpbnMoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3IKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxl
IHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IG1fZGF0YVRhc2tDb3VudGVyLmNv
dW50KCldKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwotICAgICAgICBw
b3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KSwgb3JpZ2lucyA9IGNyb3NzVGhyZWFkQ29weShtX3NlcnZlci0+Z2V0T3JpZ2lucygpKV0oKSBt
dXRhYmxlIHsKKyAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gV1RGTW92ZSh0b2tlbiksIG9yaWdpbnMgPSBj
cm9zc1RocmVhZENvcHkobV9zZXJ2ZXItPmdldE9yaWdpbnMoKSldKCkgbXV0YWJsZSB7CiAgICAg
ICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKG9yaWdpbnMpKTsKICAgICAgICAgfSkpOwogICAgIH0p
OwpAQCAtNzUsMTIgKzc3LDEyIEBAIHZvaWQgV2ViSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURh
dGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRpbWUgbW9kaWZpY2F0aW9uVGltCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIG1vZGlmaWNhdGlvblRpbWUsIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgbW9kaWZpY2F0aW9uVGltZSwgY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKSwgdG9rZW4gPSBtX2RhdGFUYXNrQ291bnRlci5jb3VudCgpXSgpIG11dGFibGUg
ewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKICAgICAgICAgbV9zZXJ2ZXItPmNsb3NlQW5k
RGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShtb2RpZmljYXRpb25UaW1lKTsKLSAgICAgICAg
cG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKCkgbXV0YWJsZSB7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11
dGFibGUgewogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgfSkpOwogICAgIH0pOwpA
QCAtOTAsMTIgKzkyLDEyIEBAIHZvaWQgV2ViSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFi
YXNlc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyCiB7CiAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIG9yaWdpbkRhdGFzID0gb3JpZ2luRGF0YXMuaXNvbGF0ZWRDb3B5
KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFibGUgeworICAgIHBvc3RU
YXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9yaWdpbkRhdGFzID0g
b3JpZ2luRGF0YXMuaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayks
IHRva2VuID0gbV9kYXRhVGFza0NvdW50ZXIuY291bnQoKV0gKCkgbXV0YWJsZSB7CiAgICAgICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fc2VydmVyLT5sb2NrKCkpOwogICAgICAgICBtX3NlcnZlci0+Y2xvc2VBbmREZWxldGVEYXRh
YmFzZXNGb3JPcmlnaW5zKG9yaWdpbkRhdGFzKTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9z
c1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7Cisg
ICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spLCB0b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11dGFibGUgewogICAgICAgICAg
ICAgY2FsbGJhY2soKTsKICAgICAgICAgfSkpOwogICAgIH0pOwpAQCAtMTA1LDEyICsxMDcsMTQg
QEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbmFtZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY28KIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgb2xkT3JpZ2luID0gb2xkT3JpZ2luLmlzb2xhdGVkQ29weSgpLCBuZXdPcmlnaW4gPSBuZXdP
cmlnaW4uaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11
dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIG9sZE9yaWdpbiA9IG9sZE9yaWdpbi5pc29sYXRlZENvcHkoKSwgbmV3T3JpZ2luID0gbmV3
T3JpZ2luLmlzb2xhdGVkQ29weSgpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tl
biA9IG1fZGF0YVRhc2tDb3VudGVyLmNvdW50KCldICgpIG11dGFibGUgewogICAgICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Nl
cnZlci0+bG9jaygpKTsKICAgICAgICAgbV9zZXJ2ZXItPnJlbmFtZU9yaWdpbihvbGRPcmlnaW4s
IG5ld09yaWdpbik7Ci0gICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFdURk1v
dmUoY2FsbGJhY2spKSk7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11
dGFibGUgeworICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfSkpOwogICAgIH0pOwog
fQogCkBAIC0zNzAsMTYgKzM3NCwyMCBAQCB2b2lkIFdlYklEQlNlcnZlcjo6cmVtb3ZlQ29ubmVj
dGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKIAotICAgIG1fY29ubmVjdGlvbnMucmVtb3ZlKCZjb25uZWN0aW9uKTsKLSAg
ICBjb25uZWN0aW9uLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURC
U2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAgIGF1dG8qIHRha2VuQ29ubmVjdGlv
biA9IG1fY29ubmVjdGlvbnMudGFrZSgmY29ubmVjdGlvbik7CisgICAgaWYgKCF0YWtlbkNvbm5l
Y3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHRha2VuQ29ubmVjdGlvbi0+cmVtb3ZlVGhy
ZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSk7CiAgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgY29ubmVjdGlvbklEID0gY29ubmVjdGlvbi51bmlxdWVJRCgpXSB7CiAgICAgICAgIGF1
dG8gY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC50YWtlKGNvbm5lY3Rpb25JRCk7Ci0KICAg
ICAgICAgQVNTRVJUKGNvbm5lY3Rpb24pOwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c2VydmVyLT5sb2NrKCkpOwogICAgICAgICBtX3NlcnZlci0+dW5yZWdpc3RlckNvbm5lY3Rpb24o
Y29ubmVjdGlvbi0+Y29ubmVjdGlvblRvQ2xpZW50KCkpOwogICAgIH0pOworCisgICAgdHJ5Q2xv
c2UoKTsKIH0KIAogdm9pZCBXZWJJREJTZXJ2ZXI6OnBvc3RUYXNrKEZ1bmN0aW9uPHZvaWQoKT4m
JiB0YXNrKQpAQCAtNDE1LDQgKzQyMywxMyBAQCB2b2lkIFdlYklEQlNlcnZlcjo6Y2xvc2UoKQog
ICAgIH0pOwogfQogCit2b2lkIFdlYklEQlNlcnZlcjo6dHJ5Q2xvc2UoKQoreworICAgIGlmICgh
bV9jb25uZWN0aW9ucy5pc0VtcHR5KCkgfHwgbV9kYXRhVGFza0NvdW50ZXIudmFsdWUoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY2xvc2UoKTsKKyAgICBtX2Nsb3NlQ2FsbGJhY2soKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCmluZGV4IDI1NmUyOTU2NTBhNjIwZDgz
Y2Y1Y2E4N2E4YmMwY2MzMTE0YTFkMmUuLjQzNGZmMTNiZWQ3N2RkYTc3Nzk2MGNhZDFhYzcxNzY2
MjcxYzBmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQlNlcnZlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9JREJTZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VRdW90YU1hbmFnZXIuaD4K
ICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFN0b3JhZ2VRdW90YU1h
bmFnZXI7CkBAIC00Myw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJJ
REJTZXJ2ZXIgZmluYWwgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlciwgcHVibGljIElQ
Qzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxXZWJJREJTZXJ2ZXI+IGNyZWF0ZShQQUw6OlNlc3Npb25JRCwgY29u
c3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9y
YWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJik7CisgICAgc3RhdGljIFJlZjxXZWJJREJT
ZXJ2ZXI+IGNyZWF0ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdl
YkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1
ZXN0ZXImJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgZ2V0T3Jp
Z2lucyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVk
U2luY2UoV2FsbFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjayk7CkBA
IC04NiwyMCArODcsMjcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAgICB2b2lkIGRpc3BhdGNoVG9UaHJl
YWQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpOwotICAgIHZvaWQgY2xvc2UoKTsKIAotICAgIGJv
b2wgaGFzQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuICFtX2Nvbm5lY3Rpb25zLmlzRW1wdHko
KTsgfQogcHJpdmF0ZToKLSAgICBXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1
b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYpOworICAgIFdlYklEQlNlcnZlcihQQUw6OlNlc3Np
b25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2Vy
dmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB+V2ViSURCU2VydmVyKCk7CiAKICAgICB2b2lkIHBvc3RUYXNr
KFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKIAorICAgIHZvaWQgY2xvc2UoKTsKKyAgICB2b2lk
IHRyeUNsb3NlKCk7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI+IG1fc2VydmVyOwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAK
ICAgICBIYXNoTWFwPElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+PiBtX2Nvbm5lY3Rpb25NYXA7CiAgICAgSGFzaFNldDxJ
UEM6OkNvbm5lY3Rpb24qPiBtX2Nvbm5lY3Rpb25zOworCisgICAgZW51bSBEYXRhVGFza0NvdW50
ZXJUeXBlIHsgfTsKKyAgICB0eXBlZGVmIFJlZkNvdW50ZXI8RGF0YVRhc2tDb3VudGVyVHlwZT4g
RGF0YVRhc2tDb3VudGVyOworICAgIHR5cGVkZWYgRGF0YVRhc2tDb3VudGVyOjpUb2tlbiBEYXRh
VGFza0NvdW50ZXJUb2tlbjsKKyAgICBEYXRhVGFza0NvdW50ZXIgbV9kYXRhVGFza0NvdW50ZXI7
CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiBtX2Nsb3NlQ2FsbGJhY2s7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMDUx
NTUwZTc3N2U1MDdhM2FkYTczYzFiZTkyOTgyNzUwMTdhMjBiYy4uNzlhM2RkNzg2Y2ZkOTA5OWNl
MjUzYzc5NmQzZTg4MDdmNzU0NzMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTEyNDEsNiArMTI0MSwxMCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpw
cmlvcml0aXplUmVzb3VyY2VMb2FkcyhWZWN0b3I8UmVzb3VyY2VMb2FkSQogICAgIHNlc3Npb24t
Pm5ldHdvcmtMb2FkU2NoZWR1bGVyKCkucHJpb3JpdGl6ZUxvYWRzKGxvYWRzKTsKIH0KIAordm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YWRkSURCQ29ubmVjdGlvbigpCit7Cisg
ICAgbV9uZXR3b3JrUHJvY2Vzcy0+d2ViSURCU2VydmVyKG1fc2Vzc2lvbklEKS5hZGRDb25uZWN0
aW9uKG1fY29ubmVjdGlvbi5nZXQoKSwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcik7Cit9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMmVjN2Qx
MWNhMGVhOTQwMmE0Y2E3YTkyOGM3M2Q4M2IxZTZlZjJmNi4uMjgxNWVkZWM3M2RiNWI5Yzc0ZWUy
ODY0MWZiYTNmYjQ3MjQ2ZmRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMTg2LDYg
KzE4Niw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoSlND
OjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KTsKIAorICAgIHZvaWQgYWRkSURCQ29ubmVjdGlvbigpOworCiBwcml2YXRlOgogICAgIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhMDk4
NDEyYTVmM2Q1NWZlMzg0OGIyMjNmOWRmZmE5OGMzNjYxNGM2Li4wN2JmY2U0NDkxY2Q1MzA2YjRm
YWEyOGJjNGM4NWE1M2NlZjBlYWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KQEAgLTEwNyw0ICsxMDcsNiBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKICAgICBTZXRSZXNvdXJj
ZUxvYWRTY2hlZHVsaW5nTW9kZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIGVu
dW06dWludDhfdCBXZWJDb3JlOjpMb2FkU2NoZWR1bGluZ01vZGUgbW9kZSkKICAgICBQcmlvcml0
aXplUmVzb3VyY2VMb2FkcyhWZWN0b3I8dWludDY0X3Q+IGxvYWRJZGVudGlmaWVycykKKworICAg
IEFkZElEQkNvbm5lY3Rpb24oKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAxNWM0ZTRjMGQ3MDcwYTgxYmRmODBiZTEwNmI2OWU2
MGFjYmI2NTlkLi44MDg0NTg3ZWYxYzcwNTA3NDdkNmVjZGIxMWNhYzBmZjNjNWE5OTYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAt
MzkxLDggKzM5MSw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKFByb2Nlc3NJZGVudGlmaWVyIGlkZW50CiAgICAgY29ubmVjdGlvbi5z
ZXRPbkxpbmVTdGF0ZShOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2luZ2xldG9uKCkub25MaW5lKCkp
OwogCiAgICAgbV9zdG9yYWdlTWFuYWdlclNldC0+YWRkQ29ubmVjdGlvbihjb25uZWN0aW9uLmNv
bm5lY3Rpb24oKSk7Ci0KLSAgICB3ZWJJREJTZXJ2ZXIoc2Vzc2lvbklEKS5hZGRDb25uZWN0aW9u
KGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLCBpZGVudGlmaWVyKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y2xlYXJDYWNoZWRDcmVkZW50aWFscyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CkBAIC01NTIsOCArNTUwLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2VuZGlmCiAKICAgICBtX3N0b3JhZ2VNYW5hZ2Vy
U2V0LT5yZW1vdmUoc2Vzc2lvbklEKTsKLQotICAgIHJlbW92ZVdlYklEQlNlcnZlcklmUG9zc2li
bGUoc2Vzc2lvbklEKTsKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CkBAIC0yMzMwLDEwICsyMzI2LDE1IEBAIFJlZjxXZWJJREJTZXJ2ZXI+IE5ldHdvcmtQcm9jZXNz
OjpjcmVhdGVXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgICAgICBw
YXRoID0gbV9pZGJEYXRhYmFzZVBhdGhzLmdldChzZXNzaW9uSUQpOwogICAgIH0KIAotICAgIHJl
dHVybiBXZWJJREJTZXJ2ZXI6OmNyZWF0ZShzZXNzaW9uSUQsIHBhdGgsIFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzZXNzaW9uSURdKGNvbnN0IGF1dG8mIG9yaWdpbiwgdWlu
dDY0X3Qgc3BhY2VSZXF1ZXN0ZWQpIHsKKyAgICBhdXRvIHNwYWNlUmVxdWVzdGVyID0gW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHNlc3Npb25JRF0oY29uc3QgYXV0byYgb3Jp
Z2luLCB1aW50NjRfdCBzcGFjZVJlcXVlc3RlZCkgewogICAgICAgICBSZWZQdHI8U3RvcmFnZVF1
b3RhTWFuYWdlcj4gc3RvcmFnZVF1b3RhTWFuYWdlciA9IHdlYWtUaGlzID8gdGhpcy0+c3RvcmFn
ZVF1b3RhTWFuYWdlcihzZXNzaW9uSUQsIG9yaWdpbikgOiBudWxscHRyOwogICAgICAgICByZXR1
cm4gc3RvcmFnZVF1b3RhTWFuYWdlciA/IHN0b3JhZ2VRdW90YU1hbmFnZXItPnJlcXVlc3RTcGFj
ZU9uQmFja2dyb3VuZFRocmVhZChzcGFjZVJlcXVlc3RlZCkgOiBTdG9yYWdlUXVvdGFNYW5hZ2Vy
OjpEZWNpc2lvbjo6RGVueTsKLSAgICB9KTsKKyAgICB9OworICAgIGF1dG8gY2xvc2VIYW5kbGVy
ID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHNlc3Npb25JRF0oKSB7CisgICAgICAg
IGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3dlYklEQlNlcnZlcnMucmVt
b3ZlKHNlc3Npb25JRCk7CisgICAgfTsKKyAgICByZXR1cm4gV2ViSURCU2VydmVyOjpjcmVhdGUo
c2Vzc2lvbklELCBwYXRoLCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSwgV1RGTW92ZShjbG9zZUhh
bmRsZXIpKTsKIH0KIAogV2ViSURCU2VydmVyJiBOZXR3b3JrUHJvY2Vzczo6d2ViSURCU2VydmVy
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKQEAgLTIzNjMsMjQgKzIzNjQsNiBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcklEQlJvb3RQYXRoKFBB
TDo6U2Vzc2lvbklEIHNlcwogICAgIHNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyLT5zZXRJREJS
b290UGF0aChpZGJSb290UGF0aCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlbW92ZVdl
YklEQlNlcnZlcklmUG9zc2libGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQotewotICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBhdXRvIGl0ZXJhdG9yID0gbV93ZWJJREJT
ZXJ2ZXJzLmZpbmQoc2Vzc2lvbklEKTsKLSAgICBpZiAoaXRlcmF0b3IgPT0gbV93ZWJJREJTZXJ2
ZXJzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9uZXR3b3JrU2Vzc2lvbnMu
Y29udGFpbnMoc2Vzc2lvbklEKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGl0ZXJhdG9y
LT52YWx1ZS0+aGFzQ29ubmVjdGlvbigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpdGVyYXRv
ci0+dmFsdWUtPmNsb3NlKCk7Ci0gICAgbV93ZWJJREJTZXJ2ZXJzLnJlbW92ZShpdGVyYXRvcik7
Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnN5bmNMb2NhbFN0b3JhZ2UoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fc3RvcmFnZU1hbmFn
ZXJTZXQtPndhaXRVbnRpbFN5bmNpbmdMb2NhbFN0b3JhZ2VGaW5pc2hlZCgpOwpAQCAtMjY4OCwx
MCArMjY3MSw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3ND
bG9zZWQoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQCiB7CiAgICAgbV9zdG9yYWdlTWFu
YWdlclNldC0+cmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIAotICAgIGF1dG8qIHdlYklE
QlNlcnZlciA9IG1fd2ViSURCU2VydmVycy5nZXQoc2Vzc2lvbklEKTsKLSAgICBBU1NFUlQod2Vi
SURCU2VydmVyKTsKLSAgICB3ZWJJREJTZXJ2ZXItPnJlbW92ZUNvbm5lY3Rpb24oY29ubmVjdGlv
bik7Ci0gICAgcmVtb3ZlV2ViSURCU2VydmVySWZQb3NzaWJsZShzZXNzaW9uSUQpOworICAgIGlm
IChhdXRvKiBzZXJ2ZXIgPSBtX3dlYklEQlNlcnZlcnMuZ2V0KHNlc3Npb25JRCkpCisgICAgICAg
IHNlcnZlci0+cmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIH0KIAogTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MqIE5ldHdvcmtQcm9jZXNzOjp3ZWJQcm9jZXNzQ29ubmVjdGlvbihQ
cm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKaW5kZXggZjA2Mjk3NWU0MzA1MjVjOWFkOWZiZGMz
NWVmNjA1OTdkNmFmZjA1OC4uZTM5ZTFjNDUyYmVkNjljYzE0YWY0Y2NhNzdhMjA0NjM4NzA5ZjA0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBA
IC01OSw2ICs1OSw3IEBAIFJlZjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKCkKIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6V2ViSURC
Q29ubmVjdGlvblRvU2VydmVyKCkKICAgICA6IG1fY29ubmVjdGlvblRvU2VydmVyKElEQkNsaWVu
dDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGUoKnRoaXMpKQogeworICAgIHNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpBZGRJREJDb25uZWN0aW9uKCkp
OwogfQogCiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6On5XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425555</attachid>
            <date>2021-04-08 16:01:37 -0700</date>
            <delta_ts>2021-04-09 14:07:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224305-20210408160135.patch</filename>
            <type>text/plain</type>
            <size>17817</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwODc4MTk1YTllNWY3ZTI1
NGU4YTBiYWYwNmYyZDJhZDljMWVmNjguLjgwNTExZjZmNjY1MTBjNDM2MDZhN2E2NjlkY2Q2ZWFm
NWJkYzFkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjEtMDQtMDggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIFdlYklEQlNlcnZlciBv
bmx5IHdoZW4gaXQgaXMgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjQzMDUKKyAgICAgICAgcmRhcjovLzcxOTYyMTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IGVhY2ggV2Vi
SURCU2VydmVyIGNvbWVzIHdpdGggYSB0aHJlYWQsIHNvIHdlIGRvbid0IHdhbnQgdG8ga2VlcCBX
ZWJJREJTZXJ2ZXIgaWYgaXQncyBub3QgaW4gdXNlLgorICAgICAgICBOb3cgdGhlcmUgYXJlIHR3
byBjYXNlcyB3aGVyZSBuZXR3b3JrIHByb2Nlc3MgbmVlZHMgYSBXZWJJREJTZXJ2ZXI6CisgICAg
ICAgIDEuIGhhbmRsZSByZXF1ZXN0cyBmcm9tIFVJIHByb2Nlc3MgdG8gY29sbGVjdCBvciByZW1v
dmUgZGF0YQorICAgICAgICAyLiBoYW5kbGUgcmVxdWVzdHMgZnJvbSBXZWIgcHJvY2VzcyB0byBw
ZXJmb3JtIElEQiBvcGVyYXRpb25zIAorICAgICAgICBXZSBjcmVhdGVkIGEgV2ViSURCU2VydmVy
IHdoZW4gbmV0d29yayBwcm9jZXNzIGNvbm5lY3RzIHRvIGEgd2ViIHByb2Nlc3MsIGFuZCB3ZSBz
aG91bGQgY3JlYXRlIGl0IHdoZW4gCisgICAgICAgIHdlYiBwcm9jZXNzIGlzIGFib3V0IHRvIHBl
cmZvcm0gSURCIG9wZXJhdGlvbnMuIEFsc28sIHdlIHNob3VsZCByZW1vdmUgV2ViSURCU2VydmVy
IGlmIGl0J3MgZG9uZSBoYW5kbGluZworICAgICAgICByZXF1ZXN0cywgaS5lIGNvdW50IG9mIHBl
bmRpbmcgcmVxdWVzdHMgZnJvbSBVSSBwcm9jZXNzIGlzIDAgYW5kIFdlYklEQlNlcnZlciBpcyBu
b3QgYXNzb2NpYXRlZCB3aXRoIGFueSB3ZWIgCisgICAgICAgIHByb2Nlc3MgY29ubmVjdGlvbi4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQlNlcnZlcjo6V2ViSURCU2VydmVyKTogQWRkIFNlc3Npb25JRCB0byB0aHJlYWQgbmFt
ZSBzbyB3ZSBrbm93IHdoaWNoIHNlc3Npb24gdG8gYmxhbWUgaW4gY3Jhc2ggCisgICAgICAgIHRy
YWNlcy4gCisgICAgICAgIChXZWJLaXQ6Om1fY2xvc2VDYWxsYmFjayk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQlNlcnZlcjo6Z2V0T3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNl
cnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OnJlbmFtZU9yaWdpbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQlNlcnZlcjo6cmVtb3ZlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQlNlcnZlcjo6dHJ5Q2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJTZXJ2ZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjphZGRJREJDb25uZWN0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOiBBZGQgYSBt
ZXNzYWdlIGZvciB3ZWIgcHJvY2VzcyB0byBhc2sgbmV0d29yayBwcm9jZXNzCisgICAgICAgIHRv
IGNyZWF0ZSBXZWJJREJTZXJ2ZXIgaWYgbm90IGV4aXN0cywgYW5kIGFzc29jaWF0ZSB0aGUgd2Vi
IHByb2Nlc3MgY29ubmVjdGlvbiB3aXRoIFdlYklEQlNlcnZlci4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpjcmVhdGVXZWJJREJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6Y29ubmVjdGlvblRvV2ViUHJvY2Vzc0Nsb3NlZCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZW1vdmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKTogRGVsZXRl
ZC4gTW92ZSB0aGUgcmVtb3ZhbCBjb2RlIHRvIFdlYklEQlNlcnZlci4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXIpOgorCiAyMDIxLTA0LTA3ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnph
cm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdW0dUS10gTnVsbCBwb2ludGVyIGRlcmVmZXJl
bmNlIHdoZW4gY2hpbGQgcHJvY2VzcyBleGl0cyBpbW1lZGlhdGVseQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKaW5k
ZXggZDIxZTU3MWViMTdlMWU3MzczNzJiOTQ1MzYwZTk1YTU5MzkwNjVmNy4uN2VlMDVhZmE2NWY0
ODgwMTk2MWFiMTA2MzVlOGMyMGQzZmNmNzUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCkBAIC0zNCwxMyAr
MzQsMTggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxXZWJJREJTZXJ2ZXI+IFdlYklE
QlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBk
aXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5h
Z2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlcikKK1JlZjxXZWJJREJTZXJ2ZXI+IFdl
YklEQlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFN
YW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYklEQlNl
cnZlcihzZXNzaW9uSUQsIGRpcmVjdG9yeSwgV1RGTW92ZShzcGFjZVJlcXVlc3RlcikpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJTZXJ2ZXIoc2Vzc2lvbklELCBkaXJlY3Rvcnks
IFdURk1vdmUoc3BhY2VSZXF1ZXN0ZXIpLCBXVEZNb3ZlKGNhbGxiYWNrKSkpOwogfQogCi1XZWJJ
REJTZXJ2ZXI6OldlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1
b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYgc3BhY2VSZXF1ZXN0ZXIpCi0gICAgOiBDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyKCJjb20uYXBwbGUuV2ViS2l0LkluZGV4ZWREQlNlcnZlciIsIFdURjo6
Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6QXV0b2RyYWluZWRQb29sRm9yUnVuTG9vcDo6VXNlKQor
V2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3Jh
Z2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVzdGVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCisgICAgOiBDcm9zc1RocmVhZFRhc2tIYW5kbGVy
KG1ha2VTdHJpbmcoImNvbS5hcHBsZS5XZWJLaXQuSW5kZXhlZERCU2VydmVyLiIsIHNlc3Npb25J
RC50b1VJbnQ2NCgpKS5hc2NpaSgpLmRhdGEoKSwgV1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVy
OjpBdXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wOjpVc2UpCisgICAgLCBtX2RhdGFUYXNrQ291bnRl
cihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oUmVmQ291bnRlckV2ZW50KSB7CisgICAg
ICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT50cnlDbG9zZSgpOworICAg
IH0pCisgICAgLCBtX2Nsb3NlQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtNjEsMTEgKzY2LDExIEBAIHZvaWQgV2ViSURC
U2VydmVyOjpnZXRPcmlnaW5zKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxXZWJDb3Jl
OjpTZWN1cml0eU9yCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHBv
c3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwg
dG9rZW4gPSBtX2RhdGFUYXNrQ291bnRlci5jb3VudCgpXSgpIG11dGFibGUgewogICAgICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3NlcnZlci0+bG9jaygpKTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2so
W2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIG9yaWdpbnMgPSBjcm9zc1RocmVhZENvcHko
bV9zZXJ2ZXItPmdldE9yaWdpbnMoKSldKCkgbXV0YWJsZSB7CisgICAgICAgIHBvc3RUYXNrUmVw
bHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9
IFdURk1vdmUodG9rZW4pLCBvcmlnaW5zID0gY3Jvc3NUaHJlYWRDb3B5KG1fc2VydmVyLT5nZXRP
cmlnaW5zKCkpXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShvcmln
aW5zKSk7CiAgICAgICAgIH0pKTsKICAgICB9KTsKQEAgLTc1LDEyICs4MCwxMiBAQCB2b2lkIFdl
YklEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1l
IG1vZGlmaWNhdGlvblRpbQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAg
ICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtb2RpZmlj
YXRpb25UaW1lLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAg
IHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1vZGlmaWNh
dGlvblRpbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gbV9kYXRhVGFz
a0NvdW50ZXIuY291bnQoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CiAKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7
CiAgICAgICAgIG1fc2VydmVyLT5jbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2Uo
bW9kaWZpY2F0aW9uVGltZSk7Ci0gICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNr
KFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBwb3N0
VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwg
dG9rZW4gPSBXVEZNb3ZlKHRva2VuKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNhbGxiYWNr
KCk7CiAgICAgICAgIH0pKTsKICAgICB9KTsKQEAgLTkwLDEyICs5NSwxMiBAQCB2b2lkIFdlYklE
QlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpTZWN1cgogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBw
b3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBvcmlnaW5EYXRh
cyA9IG9yaWdpbkRhdGFzLmlzb2xhdGVkQ29weSgpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXSAoKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBvcmlnaW5EYXRhcyA9IG9yaWdpbkRhdGFzLmlzb2xhdGVkQ29weSgpLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IG1fZGF0YVRhc2tDb3VudGVyLmNv
dW50KCldICgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
IAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKICAgICAgICAg
bV9zZXJ2ZXItPmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhvcmlnaW5EYXRhcyk7
Ci0gICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhy
ZWFkVGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBXVEZNb3ZlKHRv
a2VuKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0pKTsK
ICAgICB9KTsKQEAgLTEwNSwxMiArMTEwLDE0IEBAIHZvaWQgV2ViSURCU2VydmVyOjpyZW5hbWVP
cmlnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvbGRPcmlnaW4sIGNvCiB7
CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHBvc3RUYXNrKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9sZE9yaWdpbiA9IG9sZE9yaWdpbi5pc29s
YXRlZENvcHkoKSwgbmV3T3JpZ2luID0gbmV3T3JpZ2luLmlzb2xhdGVkQ29weSgpLCBjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXSAoKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBvbGRPcmlnaW4gPSBvbGRPcmlnaW4uaXNv
bGF0ZWRDb3B5KCksIG5ld09yaWdpbiA9IG5ld09yaWdpbi5pc29sYXRlZENvcHkoKSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBtX2RhdGFUYXNrQ291bnRlci5jb3VudCgp
XSAoKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7CiAgICAgICAgIG1fc2Vy
dmVyLT5yZW5hbWVPcmlnaW4ob2xkT3JpZ2luLCBuZXdPcmlnaW4pOwotICAgICAgICBwb3N0VGFz
a1JlcGx5KENyb3NzVGhyZWFkVGFzayhXVEZNb3ZlKGNhbGxiYWNrKSkpOworICAgICAgICBwb3N0
VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwg
dG9rZW4gPSBXVEZNb3ZlKHRva2VuKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNhbGxiYWNr
KCk7CisgICAgICAgIH0pKTsKICAgICB9KTsKIH0KIApAQCAtMzcwLDE2ICszNzcsMjAgQEAgdm9p
ZCBXZWJJREJTZXJ2ZXI6OnJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBtX2Nvbm5lY3Rp
b25zLnJlbW92ZSgmY29ubmVjdGlvbik7Ci0gICAgY29ubmVjdGlvbi5yZW1vdmVUaHJlYWRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYklEQlNlcnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KTsKKyAgICBhdXRvKiB0YWtlbkNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25zLnRha2UoJmNvbm5l
Y3Rpb24pOworICAgIGlmICghdGFrZW5Db25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAg
ICB0YWtlbkNvbm5lY3Rpb24tPnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
V2ViSURCU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogICAgIHBvc3RUYXNrKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbm5lY3Rpb25JRCA9IGNvbm5lY3Rp
b24udW5pcXVlSUQoKV0gewogICAgICAgICBhdXRvIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25N
YXAudGFrZShjb25uZWN0aW9uSUQpOwotCiAgICAgICAgIEFTU0VSVChjb25uZWN0aW9uKTsKIAog
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKICAgICAgICAgbV9z
ZXJ2ZXItPnVucmVnaXN0ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb24tPmNvbm5lY3Rpb25Ub0NsaWVu
dCgpKTsKICAgICB9KTsKKworICAgIHRyeUNsb3NlKCk7CiB9CiAKIHZvaWQgV2ViSURCU2VydmVy
Ojpwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKQEAgLTQxNSw0ICs0MjYsMTMgQEAg
dm9pZCBXZWJJREJTZXJ2ZXI6OmNsb3NlKCkKICAgICB9KTsKIH0KIAordm9pZCBXZWJJREJTZXJ2
ZXI6OnRyeUNsb3NlKCkKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbnMuaXNFbXB0eSgpIHx8IG1f
ZGF0YVRhc2tDb3VudGVyLnZhbHVlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNsb3NlKCk7
CisgICAgbV9jbG9zZUNhbGxiYWNrKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2
ZXIuaAppbmRleCAyNTZlMjk1NjUwYTYyMGQ4M2NmNWNhODdhOGJjMGNjMzExNGExZDJlLi40MzRm
ZjEzYmVkNzdkZGE3Nzc5NjBjYWQxYWM3MTc2NjI3MWMwZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSURCU2VydmVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFz
a0hhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBTdG9yYWdlUXVvdGFNYW5hZ2VyOwpAQCAtNDMsNyArNDQsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSURCU2VydmVyIGZpbmFsIDogcHVibGljIENyb3Nz
VGhyZWFkVGFza0hhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VS
ZWNlaXZlclJlZkNvdW50ZWQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViSURCU2VydmVy
PiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3Jl
OjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVy
JiYpOworICAgIHN0YXRpYyBSZWY8V2ViSURCU2VydmVyPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6
U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAKICAgICB2b2lkIGdldE9yaWdpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChI
YXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mJik+JiYpOwogICAgIHZvaWQgY2xv
c2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spOwpAQCAtODYsMjAgKzg3LDI3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jik7CiAgICAgdm9pZCBkaXNwYXRjaFRvVGhyZWFkKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsK
LSAgICB2b2lkIGNsb3NlKCk7CiAKLSAgICBib29sIGhhc0Nvbm5lY3Rpb24oKSBjb25zdCB7IHJl
dHVybiAhbV9jb25uZWN0aW9ucy5pc0VtcHR5KCk7IH0KIHByaXZhdGU6Ci0gICAgV2ViSURCU2Vy
dmVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURC
U2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmKTsK
KyAgICBXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5
LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNl
UmVxdWVzdGVyJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgfldlYklEQlNl
cnZlcigpOwogCiAgICAgdm9pZCBwb3N0VGFzayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAK
KyAgICB2b2lkIGNsb3NlKCk7CisgICAgdm9pZCB0cnlDbG9zZSgpOworCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyPiBtX3NlcnZlcjsKICAgICBib29s
IG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogCiAgICAgSGFzaE1hcDxJUEM6OkNvbm5lY3Rpb246
OlVuaXF1ZUlELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pj4gbV9j
b25uZWN0aW9uTWFwOwogICAgIEhhc2hTZXQ8SVBDOjpDb25uZWN0aW9uKj4gbV9jb25uZWN0aW9u
czsKKworICAgIGVudW0gRGF0YVRhc2tDb3VudGVyVHlwZSB7IH07CisgICAgdHlwZWRlZiBSZWZD
b3VudGVyPERhdGFUYXNrQ291bnRlclR5cGU+IERhdGFUYXNrQ291bnRlcjsKKyAgICB0eXBlZGVm
IERhdGFUYXNrQ291bnRlcjo6VG9rZW4gRGF0YVRhc2tDb3VudGVyVG9rZW47CisgICAgRGF0YVRh
c2tDb3VudGVyIG1fZGF0YVRhc2tDb3VudGVyOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4gbV9jbG9zZUNhbGxiYWNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDA1MTU1MGU3NzdlNTA3YTNhZGE3M2MxYmU5Mjk4Mjc1
MDE3YTIwYmMuLjc5YTNkZDc4NmNmZDkwOTljZTI1M2M3OTZkM2U4ODA3Zjc1NDczMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0xMjQxLDYgKzEyNDEsMTAgQEAgdm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9y
PFJlc291cmNlTG9hZEkKICAgICBzZXNzaW9uLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpLnByaW9y
aXRpemVMb2Fkcyhsb2Fkcyk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmFkZElEQkNvbm5lY3Rpb24oKQoreworICAgIG1fbmV0d29ya1Byb2Nlc3MtPndlYklEQlNl
cnZlcihtX3Nlc3Npb25JRCkuYWRkQ29ubmVjdGlvbihtX2Nvbm5lY3Rpb24uZ2V0KCksIG1fd2Vi
UHJvY2Vzc0lkZW50aWZpZXIpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCmluZGV4IDJlYzdkMTFjYTBlYTk0MDJhNGNhN2E5MjhjNzNkODNiMWU2
ZWYyZjYuLjI4MTVlZGVjNzNkYjViOWM3NGVlMjg2NDFmYmEzZmI0NzI0NmZkZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE4Niw2ICsxODYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAKKyAgICB2b2lkIGFkZElEQkNvbm5lY3Rp
b24oKTsKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3
b3JrUHJvY2VzcyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCwg
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYTA5ODQxMmE1ZjNkNTVmZTM4NDhiMjIzZjlkZmZhOThj
MzY2MTRjNi4uMDdiZmNlNDQ5MWNkNTMwNmI0ZmFhMjhiYzRjODVhNTNjZWYwZWFiNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMDcsNCArMTA3LDYg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2
ZXIgewogI2VuZGlmCiAgICAgU2V0UmVzb3VyY2VMb2FkU2NoZWR1bGluZ01vZGUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TG9hZFNjaGVk
dWxpbmdNb2RlIG1vZGUpCiAgICAgUHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPHVpbnQ2
NF90PiBsb2FkSWRlbnRpZmllcnMpCisKKyAgICBBZGRJREJDb25uZWN0aW9uKCkKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMTVj
NGU0YzBkNzA3MGE4MWJkZjgwYmUxMDZiNjllNjBhY2JiNjU5ZC4uODA4NDU4N2VmMWM3MDUwNzQ3
ZDZlY2RiMTFjYWMwZmYzYzVhOTk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTM5MSw4ICszOTEsNiBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRp
ZmllciBpZGVudAogICAgIGNvbm5lY3Rpb24uc2V0T25MaW5lU3RhdGUoTmV0d29ya1N0YXRlTm90
aWZpZXI6OnNpbmdsZXRvbigpLm9uTGluZSgpKTsKIAogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQt
PmFkZENvbm5lY3Rpb24oY29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOwotCi0gICAgd2ViSURCU2Vy
dmVyKHNlc3Npb25JRCkuYWRkQ29ubmVjdGlvbihjb25uZWN0aW9uLmNvbm5lY3Rpb24oKSwgaWRl
bnRpZmllcik7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyQ2FjaGVkQ3JlZGVudGlh
bHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpAQCAtNTUyLDggKzU1MCw2IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICNl
bmRpZgogCiAgICAgbV9zdG9yYWdlTWFuYWdlclNldC0+cmVtb3ZlKHNlc3Npb25JRCk7Ci0KLSAg
ICByZW1vdmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKHNlc3Npb25JRCk7CiB9CiAKICNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpAQCAtMjMzMCwxMCArMjMyNiwxNSBAQCBSZWY8
V2ViSURCU2VydmVyPiBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlV2ViSURCU2VydmVyKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgcGF0aCA9IG1faWRiRGF0YWJhc2VQYXRocy5nZXQo
c2Vzc2lvbklEKTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViSURCU2VydmVyOjpjcmVhdGUoc2Vz
c2lvbklELCBwYXRoLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgc2Vzc2lv
bklEXShjb25zdCBhdXRvJiBvcmlnaW4sIHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSB7CisgICAg
YXV0byBzcGFjZVJlcXVlc3RlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
LCBzZXNzaW9uSURdKGNvbnN0IGF1dG8mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQp
IHsKICAgICAgICAgUmVmUHRyPFN0b3JhZ2VRdW90YU1hbmFnZXI+IHN0b3JhZ2VRdW90YU1hbmFn
ZXIgPSB3ZWFrVGhpcyA/IHRoaXMtPnN0b3JhZ2VRdW90YU1hbmFnZXIoc2Vzc2lvbklELCBvcmln
aW4pIDogbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIHN0b3JhZ2VRdW90YU1hbmFnZXIgPyBzdG9y
YWdlUXVvdGFNYW5hZ2VyLT5yZXF1ZXN0U3BhY2VPbkJhY2tncm91bmRUaHJlYWQoc3BhY2VSZXF1
ZXN0ZWQpIDogU3RvcmFnZVF1b3RhTWFuYWdlcjo6RGVjaXNpb246OkRlbnk7Ci0gICAgfSk7Cisg
ICAgfTsKKyAgICBhdXRvIGNsb3NlSGFuZGxlciA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRo
aXMpLCBzZXNzaW9uSURdKCkgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3
ZWFrVGhpcy0+bV93ZWJJREJTZXJ2ZXJzLnJlbW92ZShzZXNzaW9uSUQpOworICAgIH07CisgICAg
cmV0dXJuIFdlYklEQlNlcnZlcjo6Y3JlYXRlKHNlc3Npb25JRCwgcGF0aCwgV1RGTW92ZShzcGFj
ZVJlcXVlc3RlciksIFdURk1vdmUoY2xvc2VIYW5kbGVyKSk7CiB9CiAKIFdlYklEQlNlcnZlciYg
TmV0d29ya1Byb2Nlc3M6OndlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCkBA
IC0yMzYzLDI0ICsyMzY0LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2Vzc2lvblN0b3Jh
Z2VRdW90YU1hbmFnZXJJREJSb290UGF0aChQQUw6OlNlc3Npb25JRCBzZXMKICAgICBzZXNzaW9u
U3RvcmFnZVF1b3RhTWFuYWdlci0+c2V0SURCUm9vdFBhdGgoaWRiUm9vdFBhdGgpOwogfQogCi12
b2lkIE5ldHdvcmtQcm9jZXNzOjpyZW1vdmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0g
ICAgYXV0byBpdGVyYXRvciA9IG1fd2ViSURCU2VydmVycy5maW5kKHNlc3Npb25JRCk7Ci0gICAg
aWYgKGl0ZXJhdG9yID09IG1fd2ViSURCU2VydmVycy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgaWYgKG1fbmV0d29ya1Nlc3Npb25zLmNvbnRhaW5zKHNlc3Npb25JRCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGlmIChpdGVyYXRvci0+dmFsdWUtPmhhc0Nvbm5lY3Rpb24oKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgaXRlcmF0b3ItPnZhbHVlLT5jbG9zZSgpOwotICAgIG1fd2Vi
SURCU2VydmVycy5yZW1vdmUoaXRlcmF0b3IpOwotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpz
eW5jTG9jYWxTdG9yYWdlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBtX3N0b3JhZ2VNYW5hZ2VyU2V0LT53YWl0VW50aWxTeW5jaW5nTG9jYWxT
dG9yYWdlRmluaXNoZWQoKTsKQEAgLTI2ODgsMTAgKzI2NzEsOCBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpjb25uZWN0aW9uVG9XZWJQcm9jZXNzQ2xvc2VkKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgUAogewogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQtPnJlbW92ZUNvbm5lY3Rpb24oY29u
bmVjdGlvbik7CiAKLSAgICBhdXRvKiB3ZWJJREJTZXJ2ZXIgPSBtX3dlYklEQlNlcnZlcnMuZ2V0
KHNlc3Npb25JRCk7Ci0gICAgQVNTRVJUKHdlYklEQlNlcnZlcik7Ci0gICAgd2ViSURCU2VydmVy
LT5yZW1vdmVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwotICAgIHJlbW92ZVdlYklEQlNlcnZlcklm
UG9zc2libGUoc2Vzc2lvbklEKTsKKyAgICBpZiAoYXV0byogc2VydmVyID0gbV93ZWJJREJTZXJ2
ZXJzLmdldChzZXNzaW9uSUQpKQorICAgICAgICBzZXJ2ZXItPnJlbW92ZUNvbm5lY3Rpb24oY29u
bmVjdGlvbik7CiB9CiAKIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBOZXR3b3JrUHJv
Y2Vzczo6d2ViUHJvY2Vzc0Nvbm5lY3Rpb24oUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcikg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmlu
ZGV4IGYwNjI5NzVlNDMwNTI1YzlhZDlmYmRjMzVlZjYwNTk3ZDZhZmYwNTguLmUzOWUxYzQ1MmJl
ZDY5Y2MxNGFmNGNjYTc3YTIwNDYzODcwOWYwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtNTksNiArNTksNyBAQCBSZWY8V2ViSURCQ29u
bmVjdGlvblRvU2VydmVyPiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZSgpCiBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcigpCiAgICAgOiBt
X2Nvbm5lY3Rpb25Ub1NlcnZlcihJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3Jl
YXRlKCp0aGlzKSkKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6QWRkSURCQ29ubmVjdGlvbigpKTsKIH0KIAogV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjp+V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425650</attachid>
            <date>2021-04-09 14:07:50 -0700</date>
            <delta_ts>2021-04-09 14:20:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224305-20210409140749.patch</filename>
            <type>text/plain</type>
            <size>17989</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwODc4MTk1YTllNWY3ZTI1
NGU4YTBiYWYwNmYyZDJhZDljMWVmNjguLjdhMTlkYmZjZGMyNjYxN2JjZmVlNzBjMGQ3YzhmNGM5
YTkzNzY0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjEtMDQtMDggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIFdlYklEQlNlcnZlciBv
bmx5IHdoZW4gaXQgaXMgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjQzMDUKKyAgICAgICAgcmRhcjovLzcxOTYyMTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBDdXJyZW50bHkgZWFjaCBX
ZWJJREJTZXJ2ZXIgY29tZXMgd2l0aCBhIHRocmVhZCwgc28gd2UgZG9uJ3Qgd2FudCB0byBrZWVw
IFdlYklEQlNlcnZlciBpZiBpdCdzIG5vdCBpbiB1c2UuCisgICAgICAgIE5vdyB0aGVyZSBhcmUg
dHdvIGNhc2VzIHdoZXJlIG5ldHdvcmsgcHJvY2VzcyBuZWVkcyBhIFdlYklEQlNlcnZlcjoKKyAg
ICAgICAgMS4gaGFuZGxlIHJlcXVlc3RzIGZyb20gVUkgcHJvY2VzcyB0byBjb2xsZWN0IG9yIHJl
bW92ZSBkYXRhCisgICAgICAgIDIuIGhhbmRsZSByZXF1ZXN0cyBmcm9tIFdlYiBwcm9jZXNzIHRv
IHBlcmZvcm0gSURCIG9wZXJhdGlvbnMgCisgICAgICAgIFdlIGNyZWF0ZWQgYSBXZWJJREJTZXJ2
ZXIgd2hlbiBuZXR3b3JrIHByb2Nlc3MgY29ubmVjdHMgdG8gYSB3ZWIgcHJvY2VzcywgYW5kIHdl
IHNob3VsZCBjcmVhdGUgaXQgd2hlbiAKKyAgICAgICAgd2ViIHByb2Nlc3MgaXMgYWJvdXQgdG8g
cGVyZm9ybSBJREIgb3BlcmF0aW9ucy4gQWxzbywgd2Ugc2hvdWxkIHJlbW92ZSBXZWJJREJTZXJ2
ZXIgaWYgaXQncyBkb25lIGhhbmRsaW5nCisgICAgICAgIHJlcXVlc3RzLCBpLmUgY291bnQgb2Yg
cGVuZGluZyByZXF1ZXN0cyBmcm9tIFVJIHByb2Nlc3MgaXMgMCBhbmQgV2ViSURCU2VydmVyIGlz
IG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IHdlYiAKKyAgICAgICAgcHJvY2VzcyBjb25uZWN0aW9u
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIpOiBBZGQgU2Vzc2lvbklEIHRvIHRocmVhZCBu
YW1lIHNvIHdlIGtub3cgd2hpY2ggc2Vzc2lvbiB0byBibGFtZSBpbiBjcmFzaCAKKyAgICAgICAg
dHJhY2VzLiAKKyAgICAgICAgKFdlYktpdDo6bV9jbG9zZUNhbGxiYWNrKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCU2VydmVyOjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
U2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCU2VydmVyOjpyZW1vdmVDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCU2VydmVyOjp0cnlDbG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQlNlcnZlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmFkZElEQkNvbm5lY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46IEFkZCBh
IG1lc3NhZ2UgZm9yIHdlYiBwcm9jZXNzIHRvIGFzayBuZXR3b3JrIHByb2Nlc3MKKyAgICAgICAg
dG8gY3JlYXRlIFdlYklEQlNlcnZlciBpZiBub3QgZXhpc3RzLCBhbmQgYXNzb2NpYXRlIHRoZSB3
ZWIgcHJvY2VzcyBjb25uZWN0aW9uIHdpdGggV2ViSURCU2VydmVyLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OmNyZWF0ZVdlYklEQlNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpjb25uZWN0aW9uVG9XZWJQcm9jZXNzQ2xvc2VkKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OnJlbW92ZVdlYklEQlNlcnZlcklmUG9zc2libGUpOiBEZWxl
dGVkLiBNb3ZlIHRoZSByZW1vdmFsIGNvZGUgdG8gV2ViSURCU2VydmVyLgorICAgICAgICAqIFdl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcik6CisKIDIwMjEtMDQtMDcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFu
emFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW1dQRV1bR1RLXSBOdWxsIHBvaW50ZXIgZGVyZWZl
cmVuY2Ugd2hlbiBjaGlsZCBwcm9jZXNzIGV4aXRzIGltbWVkaWF0ZWx5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcApp
bmRleCBkMjFlNTcxZWIxN2UxZTczNzM3MmI5NDUzNjBlOTVhNTkzOTA2NWY3Li5hNmVkY2E4MWFh
MjFiZDkyYjE1YWZlYTQ0MDA1MjZjMDQ2YTMwMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTM0LDEz
ICszNCwxOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPFdlYklEQlNlcnZlcj4gV2Vi
SURCU2VydmVyOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1h
bmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVzdGVyKQorUmVmPFdlYklEQlNlcnZlcj4g
V2ViSURCU2VydmVyOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90
YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVzdGVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURC
U2VydmVyKHNlc3Npb25JRCwgZGlyZWN0b3J5LCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYklEQlNlcnZlcihzZXNzaW9uSUQsIGRpcmVjdG9y
eSwgV1RGTW92ZShzcGFjZVJlcXVlc3RlciksIFdURk1vdmUoY2FsbGJhY2spKSk7CiB9CiAKLVdl
YklEQlNlcnZlcjo6V2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
U3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdl
UXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlcikKLSAgICA6IENyb3Nz
VGhyZWFkVGFza0hhbmRsZXIoImNvbS5hcHBsZS5XZWJLaXQuSW5kZXhlZERCU2VydmVyIiwgV1RG
OjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpBdXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wOjpVc2Up
CitXZWJJREJTZXJ2ZXI6OldlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3Rv
cmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYgc3BhY2VSZXF1ZXN0ZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKKyAgICA6IENyb3NzVGhyZWFkVGFza0hhbmRs
ZXIobWFrZVN0cmluZygiY29tLmFwcGxlLldlYktpdC5JbmRleGVkREJTZXJ2ZXIuIiwgc2Vzc2lv
bklELnRvVUludDY0KCkpLmFzY2lpKCkuZGF0YSgpLCBXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRs
ZXI6OkF1dG9kcmFpbmVkUG9vbEZvclJ1bkxvb3A6OlVzZSkKKyAgICAsIG1fZGF0YVRhc2tDb3Vu
dGVyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShSZWZDb3VudGVyRXZlbnQpIHsKKyAg
ICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPnRyeUNsb3NlKCk7Cisg
ICAgfSkKKyAgICAsIG1fY2xvc2VDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC02MSwxMSArNjYsMTEgQEAgdm9pZCBXZWJJ
REJTZXJ2ZXI6OmdldE9yaWdpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYkNv
cmU6OlNlY3VyaXR5T3IKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAg
cG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
LCB0b2tlbiA9IG1fZGF0YVRhc2tDb3VudGVyLmNvdW50KCldKCkgbXV0YWJsZSB7CiAgICAgICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fc2VydmVyLT5sb2NrKCkpOwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFz
ayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgb3JpZ2lucyA9IGNyb3NzVGhyZWFkQ29w
eShtX3NlcnZlci0+Z2V0T3JpZ2lucygpKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgcG9zdFRhc2tS
ZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2Vu
ID0gV1RGTW92ZSh0b2tlbiksIG9yaWdpbnMgPSBjcm9zc1RocmVhZENvcHkobV9zZXJ2ZXItPmdl
dE9yaWdpbnMoKSldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKG9y
aWdpbnMpKTsKICAgICAgICAgfSkpOwogICAgIH0pOwpAQCAtNzUsMTIgKzgwLDEyIEBAIHZvaWQg
V2ViSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRp
bWUgbW9kaWZpY2F0aW9uVGltCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAot
ICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1vZGlm
aWNhdGlvblRpbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7Cisg
ICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbW9kaWZp
Y2F0aW9uVGltZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBtX2RhdGFU
YXNrQ291bnRlci5jb3VudCgpXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygp
KTsKICAgICAgICAgbV9zZXJ2ZXItPmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5j
ZShtb2RpZmljYXRpb25UaW1lKTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRh
c2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIHBv
c3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
LCB0b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJh
Y2soKTsKICAgICAgICAgfSkpOwogICAgIH0pOwpAQCAtOTAsMTIgKzk1LDEyIEBAIHZvaWQgV2Vi
SURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9y
PFdlYkNvcmU6OlNlY3VyCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAg
IHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9yaWdpbkRh
dGFzID0gb3JpZ2luRGF0YXMuaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayldICgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIG9yaWdpbkRhdGFzID0gb3JpZ2luRGF0YXMuaXNvbGF0ZWRDb3B5KCks
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gbV9kYXRhVGFza0NvdW50ZXIu
Y291bnQoKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwogICAgICAg
ICBtX3NlcnZlci0+Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKG9yaWdpbkRhdGFz
KTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NU
aHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IFdURk1vdmUo
dG9rZW4pXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgfSkp
OwogICAgIH0pOwpAQCAtMTA1LDEyICsxMTAsMTQgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbmFt
ZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY28K
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb2xkT3JpZ2luID0gb2xkT3JpZ2luLmlz
b2xhdGVkQ29weSgpLCBuZXdPcmlnaW4gPSBuZXdPcmlnaW4uaXNvbGF0ZWRDb3B5KCksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9sZE9yaWdpbiA9IG9sZE9yaWdpbi5p
c29sYXRlZENvcHkoKSwgbmV3T3JpZ2luID0gbmV3T3JpZ2luLmlzb2xhdGVkQ29weSgpLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IG1fZGF0YVRhc2tDb3VudGVyLmNvdW50
KCldICgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAog
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKICAgICAgICAgbV9z
ZXJ2ZXItPnJlbmFtZU9yaWdpbihvbGRPcmlnaW4sIG5ld09yaWdpbik7Ci0gICAgICAgIHBvc3RU
YXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFdURk1vdmUoY2FsbGJhY2spKSk7CisgICAgICAgIHBv
c3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
LCB0b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11dGFibGUgeworICAgICAgICAgICAgY2FsbGJh
Y2soKTsKKyAgICAgICAgfSkpOwogICAgIH0pOwogfQogCkBAIC0zNzAsMTYgKzM3NywyMCBAQCB2
b2lkIFdlYklEQlNlcnZlcjo6cmVtb3ZlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIG1fY29ubmVj
dGlvbnMucmVtb3ZlKCZjb25uZWN0aW9uKTsKLSAgICBjb25uZWN0aW9uLnJlbW92ZVRocmVhZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURCU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpOworICAgIGF1dG8qIHRha2VuQ29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbnMudGFrZSgmY29u
bmVjdGlvbik7CisgICAgaWYgKCF0YWtlbkNvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKwor
ICAgIHRha2VuQ29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpXZWJJREJTZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAgICAgcG9zdFRhc2soW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29ubmVjdGlvbklEID0gY29ubmVj
dGlvbi51bmlxdWVJRCgpXSB7CiAgICAgICAgIGF1dG8gY29ubmVjdGlvbiA9IG1fY29ubmVjdGlv
bk1hcC50YWtlKGNvbm5lY3Rpb25JRCk7Ci0KICAgICAgICAgQVNTRVJUKGNvbm5lY3Rpb24pOwog
CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwogICAgICAgICBt
X3NlcnZlci0+dW5yZWdpc3RlckNvbm5lY3Rpb24oY29ubmVjdGlvbi0+Y29ubmVjdGlvblRvQ2xp
ZW50KCkpOwogICAgIH0pOworCisgICAgdHJ5Q2xvc2UoKTsKIH0KIAogdm9pZCBXZWJJREJTZXJ2
ZXI6OnBvc3RUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQpAQCAtNDE1LDQgKzQyNiwxNiBA
QCB2b2lkIFdlYklEQlNlcnZlcjo6Y2xvc2UoKQogICAgIH0pOwogfQogCit2b2lkIFdlYklEQlNl
cnZlcjo6dHJ5Q2xvc2UoKQoreworICAgIGlmICghbV9jb25uZWN0aW9ucy5pc0VtcHR5KCkgfHwg
bV9kYXRhVGFza0NvdW50ZXIudmFsdWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFt
X2Nsb3NlQ2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIGNsb3NlKCk7CisgICAgbV9j
bG9zZUNhbGxiYWNrKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAppbmRl
eCAyNTZlMjk1NjUwYTYyMGQ4M2NmNWNhODdhOGJjMGNjMzExNGExZDJlLi5mZjFiMWI2ZDk0N2I4
MTQxNmIxZTQ1N2NiMWNjYTFiODk2YzhiNDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvSURCU2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9y
YWdlUXVvdGFNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBTdG9yYWdlUXVvdGFNYW5hZ2VyOwpAQCAtNDMsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViSURCU2VydmVyIGZpbmFsIDogcHVibGljIENyb3NzVGhyZWFkVGFz
a0hhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJl
ZkNvdW50ZWQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViSURCU2VydmVyPiBjcmVhdGUo
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2
ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYpOworICAg
IHN0YXRpYyBSZWY8V2ViSURCU2VydmVyPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1
b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAKICAgICB2b2lkIGdldE9yaWdpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mJik+JiYpOwogICAgIHZvaWQgY2xvc2VBbmREZWxl
dGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY2FsbGJhY2spOwpAQCAtODYsMjAgKzg3LDI3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAg
dm9pZCBkaXNwYXRjaFRvVGhyZWFkKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKLSAgICB2b2lk
IGNsb3NlKCk7CiAKLSAgICBib29sIGhhc0Nvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiAhbV9j
b25uZWN0aW9ucy5pc0VtcHR5KCk7IH0KIHByaXZhdGU6Ci0gICAgV2ViSURCU2VydmVyKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmKTsKKyAgICBXZWJJ
REJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3Jl
OjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVy
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgfldlYklEQlNlcnZlcigpOwog
CiAgICAgdm9pZCBwb3N0VGFzayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKKyAgICB2b2lk
IGNsb3NlKCk7CisgICAgdm9pZCB0cnlDbG9zZSgpOworCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyPiBtX3NlcnZlcjsKICAgICBib29sIG1faXNTdXNw
ZW5kZWQgeyBmYWxzZSB9OwogCiAgICAgSGFzaE1hcDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlE
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pj4gbV9jb25uZWN0aW9u
TWFwOwogICAgIEhhc2hTZXQ8SVBDOjpDb25uZWN0aW9uKj4gbV9jb25uZWN0aW9uczsKKworICAg
IGVudW0gRGF0YVRhc2tDb3VudGVyVHlwZSB7IH07CisgICAgdXNpbmcgRGF0YVRhc2tDb3VudGVy
ID0gUmVmQ291bnRlcjxEYXRhVGFza0NvdW50ZXJUeXBlPjsKKyAgICB1c2luZyBEYXRhVGFza0Nv
dW50ZXJUb2tlbiA9IERhdGFUYXNrQ291bnRlcjo6VG9rZW47CisgICAgRGF0YVRhc2tDb3VudGVy
IG1fZGF0YVRhc2tDb3VudGVyOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gbV9jbG9z
ZUNhbGxiYWNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDA1MTU1MGU3NzdlNTA3YTNhZGE3M2MxYmU5Mjk4Mjc1MDE3YTIwYmMu
Ljc5YTNkZDc4NmNmZDkwOTljZTI1M2M3OTZkM2U4ODA3Zjc1NDczMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCkBAIC0xMjQxLDYgKzEyNDEsMTAgQEAgdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6cHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPFJlc291cmNl
TG9hZEkKICAgICBzZXNzaW9uLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpLnByaW9yaXRpemVMb2Fk
cyhsb2Fkcyk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmFkZElE
QkNvbm5lY3Rpb24oKQoreworICAgIG1fbmV0d29ya1Byb2Nlc3MtPndlYklEQlNlcnZlcihtX3Nl
c3Npb25JRCkuYWRkQ29ubmVjdGlvbihtX2Nvbm5lY3Rpb24uZ2V0KCksIG1fd2ViUHJvY2Vzc0lk
ZW50aWZpZXIpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDJlYzdkMTFjYTBlYTk0MDJhNGNhN2E5MjhjNzNkODNiMWU2ZWYyZjYuLjI4
MTVlZGVjNzNkYjViOWM3NGVlMjg2NDFmYmEzZmI0NzI0NmZkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKQEAgLTE4Niw2ICsxODYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSk7CiAKKyAgICB2b2lkIGFkZElEQkNvbm5lY3Rpb24oKTsKKwog
cHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3b3JrUHJvY2Vz
cyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCwgSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KaW5kZXggYTA5ODQxMmE1ZjNkNTVmZTM4NDhiMjIzZjlkZmZhOThjMzY2MTRjNi4u
MDdiZmNlNDQ5MWNkNTMwNmI0ZmFhMjhiYzRjODVhNTNjZWYwZWFiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMDcsNCArMTA3LDYgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2Vu
ZGlmCiAgICAgU2V0UmVzb3VyY2VMb2FkU2NoZWR1bGluZ01vZGUoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TG9hZFNjaGVkdWxpbmdNb2Rl
IG1vZGUpCiAgICAgUHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPHVpbnQ2NF90PiBsb2Fk
SWRlbnRpZmllcnMpCisKKyAgICBBZGRJREJDb25uZWN0aW9uKCkKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMTVjNGU0YzBkNzA3
MGE4MWJkZjgwYmUxMDZiNjllNjBhY2JiNjU5ZC4uYWRjYzBlMzdmNTkwMzk3ZDVjNWNmNjc1ZGUx
MzU5ODBkMmUyODZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKQEAgLTM5MSw4ICszOTEsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpj
cmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmllciBpZGVu
dAogICAgIGNvbm5lY3Rpb24uc2V0T25MaW5lU3RhdGUoTmV0d29ya1N0YXRlTm90aWZpZXI6OnNp
bmdsZXRvbigpLm9uTGluZSgpKTsKIAogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQtPmFkZENvbm5l
Y3Rpb24oY29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOwotCi0gICAgd2ViSURCU2VydmVyKHNlc3Np
b25JRCkuYWRkQ29ubmVjdGlvbihjb25uZWN0aW9uLmNvbm5lY3Rpb24oKSwgaWRlbnRpZmllcik7
CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQpAQCAtNTUyLDggKzU1MCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICNlbmRpZgogCiAg
ICAgbV9zdG9yYWdlTWFuYWdlclNldC0+cmVtb3ZlKHNlc3Npb25JRCk7Ci0KLSAgICByZW1vdmVX
ZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKHNlc3Npb25JRCk7CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQpAQCAtMjMzMCwxMCArMjMyNiwxNSBAQCBSZWY8V2ViSURCU2Vy
dmVyPiBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICAgICAgcGF0aCA9IG1faWRiRGF0YWJhc2VQYXRocy5nZXQoc2Vzc2lvbklE
KTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBw
YXRoLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgc2Vzc2lvbklEXShjb25z
dCBhdXRvJiBvcmlnaW4sIHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSB7Ci0gICAgICAgIFJlZlB0
cjxTdG9yYWdlUXVvdGFNYW5hZ2VyPiBzdG9yYWdlUXVvdGFNYW5hZ2VyID0gd2Vha1RoaXMgPyB0
aGlzLT5zdG9yYWdlUXVvdGFNYW5hZ2VyKHNlc3Npb25JRCwgb3JpZ2luKSA6IG51bGxwdHI7Cisg
ICAgYXV0byBzcGFjZVJlcXVlc3RlciA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBz
ZXNzaW9uSURdKGNvbnN0IGF1dG8mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQpIHsK
KyAgICAgICAgUmVmUHRyPFN0b3JhZ2VRdW90YU1hbmFnZXI+IHN0b3JhZ2VRdW90YU1hbmFnZXIg
PSB3ZWFrVGhpcyA/IHdlYWtUaGlzLT5zdG9yYWdlUXVvdGFNYW5hZ2VyKHNlc3Npb25JRCwgb3Jp
Z2luKSA6IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBzdG9yYWdlUXVvdGFNYW5hZ2VyID8gc3Rv
cmFnZVF1b3RhTWFuYWdlci0+cmVxdWVzdFNwYWNlT25CYWNrZ3JvdW5kVGhyZWFkKHNwYWNlUmVx
dWVzdGVkKSA6IFN0b3JhZ2VRdW90YU1hbmFnZXI6OkRlY2lzaW9uOjpEZW55OwotICAgIH0pOwor
ICAgIH07CisgICAgYXV0byBjbG9zZUhhbmRsZXIgPSBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKSwgc2Vzc2lvbklEXSgpIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAg
d2Vha1RoaXMtPm1fd2ViSURCU2VydmVycy5yZW1vdmUoc2Vzc2lvbklEKTsKKyAgICB9OworICAg
IHJldHVybiBXZWJJREJTZXJ2ZXI6OmNyZWF0ZShzZXNzaW9uSUQsIHBhdGgsIFdURk1vdmUoc3Bh
Y2VSZXF1ZXN0ZXIpLCBXVEZNb3ZlKGNsb3NlSGFuZGxlcikpOwogfQogCiBXZWJJREJTZXJ2ZXIm
IE5ldHdvcmtQcm9jZXNzOjp3ZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpA
QCAtMjM2MywyNCArMjM2NCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNlc3Npb25TdG9y
YWdlUXVvdGFNYW5hZ2VySURCUm9vdFBhdGgoUEFMOjpTZXNzaW9uSUQgc2VzCiAgICAgc2Vzc2lv
blN0b3JhZ2VRdW90YU1hbmFnZXItPnNldElEQlJvb3RQYXRoKGlkYlJvb3RQYXRoKTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlV2ViSURCU2VydmVySWZQb3NzaWJsZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLQot
ICAgIGF1dG8gaXRlcmF0b3IgPSBtX3dlYklEQlNlcnZlcnMuZmluZChzZXNzaW9uSUQpOwotICAg
IGlmIChpdGVyYXRvciA9PSBtX3dlYklEQlNlcnZlcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGlmIChtX25ldHdvcmtTZXNzaW9ucy5jb250YWlucyhzZXNzaW9uSUQpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoaXRlcmF0b3ItPnZhbHVlLT5oYXNDb25uZWN0aW9uKCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGl0ZXJhdG9yLT52YWx1ZS0+Y2xvc2UoKTsKLSAgICBtX3dl
YklEQlNlcnZlcnMucmVtb3ZlKGl0ZXJhdG9yKTsKLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6
c3luY0xvY2FsU3RvcmFnZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgbV9zdG9yYWdlTWFuYWdlclNldC0+d2FpdFVudGlsU3luY2luZ0xvY2Fs
U3RvcmFnZUZpbmlzaGVkKCk7CkBAIC0yNjg4LDEwICsyNjcxLDggQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6Y29ubmVjdGlvblRvV2ViUHJvY2Vzc0Nsb3NlZChJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIFAKIHsKICAgICBtX3N0b3JhZ2VNYW5hZ2VyU2V0LT5yZW1vdmVDb25uZWN0aW9uKGNv
bm5lY3Rpb24pOwogCi0gICAgYXV0byogd2ViSURCU2VydmVyID0gbV93ZWJJREJTZXJ2ZXJzLmdl
dChzZXNzaW9uSUQpOwotICAgIEFTU0VSVCh3ZWJJREJTZXJ2ZXIpOwotICAgIHdlYklEQlNlcnZl
ci0+cmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKLSAgICByZW1vdmVXZWJJREJTZXJ2ZXJJ
ZlBvc3NpYmxlKHNlc3Npb25JRCk7CisgICAgaWYgKGF1dG8qIHNlcnZlciA9IG1fd2ViSURCU2Vy
dmVycy5nZXQoc2Vzc2lvbklEKSkKKyAgICAgICAgc2VydmVyLT5yZW1vdmVDb25uZWN0aW9uKGNv
bm5lY3Rpb24pOwogfQogCiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogTmV0d29ya1By
b2Nlc3M6OndlYlByb2Nlc3NDb25uZWN0aW9uKFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApp
bmRleCBmMDYyOTc1ZTQzMDUyNWM5YWQ5ZmJkYzM1ZWY2MDU5N2Q2YWZmMDU4Li5lMzllMWM0NTJi
ZWQ2OWNjMTRhZjRjY2E3N2EyMDQ2Mzg3MDlmMDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKQEAgLTU5LDYgKzU5LDcgQEAgUmVmPFdlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcj4gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGUoKQogV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKQogICAgIDog
bV9jb25uZWN0aW9uVG9TZXJ2ZXIoSURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNy
ZWF0ZSgqdGhpcykpCiB7CisgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OkFkZElEQkNvbm5lY3Rpb24oKSk7CiB9CiAKIFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6fldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcigpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425652</attachid>
            <date>2021-04-09 14:21:01 -0700</date>
            <delta_ts>2021-04-09 14:22:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224305-20210409142101.patch</filename>
            <type>text/plain</type>
            <size>18083</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwODc4MTk1YTllNWY3ZTI1
NGU4YTBiYWYwNmYyZDJhZDljMWVmNjguLjdhMTlkYmZjZGMyNjYxN2JjZmVlNzBjMGQ3YzhmNGM5
YTkzNzY0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjEtMDQtMDggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIFdlYklEQlNlcnZlciBv
bmx5IHdoZW4gaXQgaXMgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjQzMDUKKyAgICAgICAgcmRhcjovLzcxOTYyMTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBDdXJyZW50bHkgZWFjaCBX
ZWJJREJTZXJ2ZXIgY29tZXMgd2l0aCBhIHRocmVhZCwgc28gd2UgZG9uJ3Qgd2FudCB0byBrZWVw
IFdlYklEQlNlcnZlciBpZiBpdCdzIG5vdCBpbiB1c2UuCisgICAgICAgIE5vdyB0aGVyZSBhcmUg
dHdvIGNhc2VzIHdoZXJlIG5ldHdvcmsgcHJvY2VzcyBuZWVkcyBhIFdlYklEQlNlcnZlcjoKKyAg
ICAgICAgMS4gaGFuZGxlIHJlcXVlc3RzIGZyb20gVUkgcHJvY2VzcyB0byBjb2xsZWN0IG9yIHJl
bW92ZSBkYXRhCisgICAgICAgIDIuIGhhbmRsZSByZXF1ZXN0cyBmcm9tIFdlYiBwcm9jZXNzIHRv
IHBlcmZvcm0gSURCIG9wZXJhdGlvbnMgCisgICAgICAgIFdlIGNyZWF0ZWQgYSBXZWJJREJTZXJ2
ZXIgd2hlbiBuZXR3b3JrIHByb2Nlc3MgY29ubmVjdHMgdG8gYSB3ZWIgcHJvY2VzcywgYW5kIHdl
IHNob3VsZCBjcmVhdGUgaXQgd2hlbiAKKyAgICAgICAgd2ViIHByb2Nlc3MgaXMgYWJvdXQgdG8g
cGVyZm9ybSBJREIgb3BlcmF0aW9ucy4gQWxzbywgd2Ugc2hvdWxkIHJlbW92ZSBXZWJJREJTZXJ2
ZXIgaWYgaXQncyBkb25lIGhhbmRsaW5nCisgICAgICAgIHJlcXVlc3RzLCBpLmUgY291bnQgb2Yg
cGVuZGluZyByZXF1ZXN0cyBmcm9tIFVJIHByb2Nlc3MgaXMgMCBhbmQgV2ViSURCU2VydmVyIGlz
IG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IHdlYiAKKyAgICAgICAgcHJvY2VzcyBjb25uZWN0aW9u
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIpOiBBZGQgU2Vzc2lvbklEIHRvIHRocmVhZCBu
YW1lIHNvIHdlIGtub3cgd2hpY2ggc2Vzc2lvbiB0byBibGFtZSBpbiBjcmFzaCAKKyAgICAgICAg
dHJhY2VzLiAKKyAgICAgICAgKFdlYktpdDo6bV9jbG9zZUNhbGxiYWNrKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCU2VydmVyOjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
U2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCU2VydmVyOjpyZW1vdmVDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCU2VydmVyOjp0cnlDbG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQlNlcnZlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmFkZElEQkNvbm5lY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46IEFkZCBh
IG1lc3NhZ2UgZm9yIHdlYiBwcm9jZXNzIHRvIGFzayBuZXR3b3JrIHByb2Nlc3MKKyAgICAgICAg
dG8gY3JlYXRlIFdlYklEQlNlcnZlciBpZiBub3QgZXhpc3RzLCBhbmQgYXNzb2NpYXRlIHRoZSB3
ZWIgcHJvY2VzcyBjb25uZWN0aW9uIHdpdGggV2ViSURCU2VydmVyLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OmNyZWF0ZVdlYklEQlNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpjb25uZWN0aW9uVG9XZWJQcm9jZXNzQ2xvc2VkKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OnJlbW92ZVdlYklEQlNlcnZlcklmUG9zc2libGUpOiBEZWxl
dGVkLiBNb3ZlIHRoZSByZW1vdmFsIGNvZGUgdG8gV2ViSURCU2VydmVyLgorICAgICAgICAqIFdl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcik6CisKIDIwMjEtMDQtMDcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFu
emFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW1dQRV1bR1RLXSBOdWxsIHBvaW50ZXIgZGVyZWZl
cmVuY2Ugd2hlbiBjaGlsZCBwcm9jZXNzIGV4aXRzIGltbWVkaWF0ZWx5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcApp
bmRleCBkMjFlNTcxZWIxN2UxZTczNzM3MmI5NDUzNjBlOTVhNTkzOTA2NWY3Li5hNmVkY2E4MWFh
MjFiZDkyYjE1YWZlYTQ0MDA1MjZjMDQ2YTMwMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTM0LDEz
ICszNCwxOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPFdlYklEQlNlcnZlcj4gV2Vi
SURCU2VydmVyOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1h
bmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVzdGVyKQorUmVmPFdlYklEQlNlcnZlcj4g
V2ViSURCU2VydmVyOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90
YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVzdGVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURC
U2VydmVyKHNlc3Npb25JRCwgZGlyZWN0b3J5LCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYklEQlNlcnZlcihzZXNzaW9uSUQsIGRpcmVjdG9y
eSwgV1RGTW92ZShzcGFjZVJlcXVlc3RlciksIFdURk1vdmUoY2FsbGJhY2spKSk7CiB9CiAKLVdl
YklEQlNlcnZlcjo6V2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
U3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdl
UXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlcikKLSAgICA6IENyb3Nz
VGhyZWFkVGFza0hhbmRsZXIoImNvbS5hcHBsZS5XZWJLaXQuSW5kZXhlZERCU2VydmVyIiwgV1RG
OjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpBdXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wOjpVc2Up
CitXZWJJREJTZXJ2ZXI6OldlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3Rv
cmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYgc3BhY2VSZXF1ZXN0ZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKKyAgICA6IENyb3NzVGhyZWFkVGFza0hhbmRs
ZXIobWFrZVN0cmluZygiY29tLmFwcGxlLldlYktpdC5JbmRleGVkREJTZXJ2ZXIuIiwgc2Vzc2lv
bklELnRvVUludDY0KCkpLmFzY2lpKCkuZGF0YSgpLCBXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRs
ZXI6OkF1dG9kcmFpbmVkUG9vbEZvclJ1bkxvb3A6OlVzZSkKKyAgICAsIG1fZGF0YVRhc2tDb3Vu
dGVyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShSZWZDb3VudGVyRXZlbnQpIHsKKyAg
ICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPnRyeUNsb3NlKCk7Cisg
ICAgfSkKKyAgICAsIG1fY2xvc2VDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC02MSwxMSArNjYsMTEgQEAgdm9pZCBXZWJJ
REJTZXJ2ZXI6OmdldE9yaWdpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYkNv
cmU6OlNlY3VyaXR5T3IKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAg
cG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
LCB0b2tlbiA9IG1fZGF0YVRhc2tDb3VudGVyLmNvdW50KCldKCkgbXV0YWJsZSB7CiAgICAgICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fc2VydmVyLT5sb2NrKCkpOwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFz
ayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgb3JpZ2lucyA9IGNyb3NzVGhyZWFkQ29w
eShtX3NlcnZlci0+Z2V0T3JpZ2lucygpKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgcG9zdFRhc2tS
ZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2Vu
ID0gV1RGTW92ZSh0b2tlbiksIG9yaWdpbnMgPSBjcm9zc1RocmVhZENvcHkobV9zZXJ2ZXItPmdl
dE9yaWdpbnMoKSldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKG9y
aWdpbnMpKTsKICAgICAgICAgfSkpOwogICAgIH0pOwpAQCAtNzUsMTIgKzgwLDEyIEBAIHZvaWQg
V2ViSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRp
bWUgbW9kaWZpY2F0aW9uVGltCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAot
ICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1vZGlm
aWNhdGlvblRpbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7Cisg
ICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbW9kaWZp
Y2F0aW9uVGltZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBtX2RhdGFU
YXNrQ291bnRlci5jb3VudCgpXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygp
KTsKICAgICAgICAgbV9zZXJ2ZXItPmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5j
ZShtb2RpZmljYXRpb25UaW1lKTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRh
c2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIHBv
c3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
LCB0b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJh
Y2soKTsKICAgICAgICAgfSkpOwogICAgIH0pOwpAQCAtOTAsMTIgKzk1LDEyIEBAIHZvaWQgV2Vi
SURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9y
PFdlYkNvcmU6OlNlY3VyCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAg
IHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9yaWdpbkRh
dGFzID0gb3JpZ2luRGF0YXMuaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayldICgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIG9yaWdpbkRhdGFzID0gb3JpZ2luRGF0YXMuaXNvbGF0ZWRDb3B5KCks
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gbV9kYXRhVGFza0NvdW50ZXIu
Y291bnQoKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwogICAgICAg
ICBtX3NlcnZlci0+Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKG9yaWdpbkRhdGFz
KTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NU
aHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IFdURk1vdmUo
dG9rZW4pXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgfSkp
OwogICAgIH0pOwpAQCAtMTA1LDEyICsxMTAsMTQgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbmFt
ZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY28K
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb2xkT3JpZ2luID0gb2xkT3JpZ2luLmlz
b2xhdGVkQ29weSgpLCBuZXdPcmlnaW4gPSBuZXdPcmlnaW4uaXNvbGF0ZWRDb3B5KCksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9sZE9yaWdpbiA9IG9sZE9yaWdpbi5p
c29sYXRlZENvcHkoKSwgbmV3T3JpZ2luID0gbmV3T3JpZ2luLmlzb2xhdGVkQ29weSgpLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IG1fZGF0YVRhc2tDb3VudGVyLmNvdW50
KCldICgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAog
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKICAgICAgICAgbV9z
ZXJ2ZXItPnJlbmFtZU9yaWdpbihvbGRPcmlnaW4sIG5ld09yaWdpbik7Ci0gICAgICAgIHBvc3RU
YXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFdURk1vdmUoY2FsbGJhY2spKSk7CisgICAgICAgIHBv
c3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
LCB0b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11dGFibGUgeworICAgICAgICAgICAgY2FsbGJh
Y2soKTsKKyAgICAgICAgfSkpOwogICAgIH0pOwogfQogCkBAIC0zNzAsMTYgKzM3NywyMCBAQCB2
b2lkIFdlYklEQlNlcnZlcjo6cmVtb3ZlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIG1fY29ubmVj
dGlvbnMucmVtb3ZlKCZjb25uZWN0aW9uKTsKLSAgICBjb25uZWN0aW9uLnJlbW92ZVRocmVhZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURCU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpOworICAgIGF1dG8qIHRha2VuQ29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbnMudGFrZSgmY29u
bmVjdGlvbik7CisgICAgaWYgKCF0YWtlbkNvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKwor
ICAgIHRha2VuQ29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpXZWJJREJTZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAgICAgcG9zdFRhc2soW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29ubmVjdGlvbklEID0gY29ubmVj
dGlvbi51bmlxdWVJRCgpXSB7CiAgICAgICAgIGF1dG8gY29ubmVjdGlvbiA9IG1fY29ubmVjdGlv
bk1hcC50YWtlKGNvbm5lY3Rpb25JRCk7Ci0KICAgICAgICAgQVNTRVJUKGNvbm5lY3Rpb24pOwog
CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwogICAgICAgICBt
X3NlcnZlci0+dW5yZWdpc3RlckNvbm5lY3Rpb24oY29ubmVjdGlvbi0+Y29ubmVjdGlvblRvQ2xp
ZW50KCkpOwogICAgIH0pOworCisgICAgdHJ5Q2xvc2UoKTsKIH0KIAogdm9pZCBXZWJJREJTZXJ2
ZXI6OnBvc3RUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQpAQCAtNDE1LDQgKzQyNiwxNiBA
QCB2b2lkIFdlYklEQlNlcnZlcjo6Y2xvc2UoKQogICAgIH0pOwogfQogCit2b2lkIFdlYklEQlNl
cnZlcjo6dHJ5Q2xvc2UoKQoreworICAgIGlmICghbV9jb25uZWN0aW9ucy5pc0VtcHR5KCkgfHwg
bV9kYXRhVGFza0NvdW50ZXIudmFsdWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFt
X2Nsb3NlQ2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIGNsb3NlKCk7CisgICAgbV9j
bG9zZUNhbGxiYWNrKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAppbmRl
eCAyNTZlMjk1NjUwYTYyMGQ4M2NmNWNhODdhOGJjMGNjMzExNGExZDJlLi5mZjFiMWI2ZDk0N2I4
MTQxNmIxZTQ1N2NiMWNjYTFiODk2YzhiNDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvSURCU2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9y
YWdlUXVvdGFNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBTdG9yYWdlUXVvdGFNYW5hZ2VyOwpAQCAtNDMsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViSURCU2VydmVyIGZpbmFsIDogcHVibGljIENyb3NzVGhyZWFkVGFz
a0hhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJl
ZkNvdW50ZWQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViSURCU2VydmVyPiBjcmVhdGUo
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2
ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYpOworICAg
IHN0YXRpYyBSZWY8V2ViSURCU2VydmVyPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1
b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAKICAgICB2b2lkIGdldE9yaWdpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mJik+JiYpOwogICAgIHZvaWQgY2xvc2VBbmREZWxl
dGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY2FsbGJhY2spOwpAQCAtODYsMjAgKzg3LDI3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAg
dm9pZCBkaXNwYXRjaFRvVGhyZWFkKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKLSAgICB2b2lk
IGNsb3NlKCk7CiAKLSAgICBib29sIGhhc0Nvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiAhbV9j
b25uZWN0aW9ucy5pc0VtcHR5KCk7IH0KIHByaXZhdGU6Ci0gICAgV2ViSURCU2VydmVyKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmKTsKKyAgICBXZWJJ
REJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3Jl
OjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVy
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgfldlYklEQlNlcnZlcigpOwog
CiAgICAgdm9pZCBwb3N0VGFzayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKKyAgICB2b2lk
IGNsb3NlKCk7CisgICAgdm9pZCB0cnlDbG9zZSgpOworCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyPiBtX3NlcnZlcjsKICAgICBib29sIG1faXNTdXNw
ZW5kZWQgeyBmYWxzZSB9OwogCiAgICAgSGFzaE1hcDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlE
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pj4gbV9jb25uZWN0aW9u
TWFwOwogICAgIEhhc2hTZXQ8SVBDOjpDb25uZWN0aW9uKj4gbV9jb25uZWN0aW9uczsKKworICAg
IGVudW0gRGF0YVRhc2tDb3VudGVyVHlwZSB7IH07CisgICAgdXNpbmcgRGF0YVRhc2tDb3VudGVy
ID0gUmVmQ291bnRlcjxEYXRhVGFza0NvdW50ZXJUeXBlPjsKKyAgICB1c2luZyBEYXRhVGFza0Nv
dW50ZXJUb2tlbiA9IERhdGFUYXNrQ291bnRlcjo6VG9rZW47CisgICAgRGF0YVRhc2tDb3VudGVy
IG1fZGF0YVRhc2tDb3VudGVyOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gbV9jbG9z
ZUNhbGxiYWNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDA1MTU1MGU3NzdlNTA3YTNhZGE3M2MxYmU5Mjk4Mjc1MDE3YTIwYmMu
Ljc5YTNkZDc4NmNmZDkwOTljZTI1M2M3OTZkM2U4ODA3Zjc1NDczMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCkBAIC0xMjQxLDYgKzEyNDEsMTAgQEAgdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6cHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPFJlc291cmNl
TG9hZEkKICAgICBzZXNzaW9uLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpLnByaW9yaXRpemVMb2Fk
cyhsb2Fkcyk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmFkZElE
QkNvbm5lY3Rpb24oKQoreworICAgIG1fbmV0d29ya1Byb2Nlc3MtPndlYklEQlNlcnZlcihtX3Nl
c3Npb25JRCkuYWRkQ29ubmVjdGlvbihtX2Nvbm5lY3Rpb24uZ2V0KCksIG1fd2ViUHJvY2Vzc0lk
ZW50aWZpZXIpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDJlYzdkMTFjYTBlYTk0MDJhNGNhN2E5MjhjNzNkODNiMWU2ZWYyZjYuLjI4
MTVlZGVjNzNkYjViOWM3NGVlMjg2NDFmYmEzZmI0NzI0NmZkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKQEAgLTE4Niw2ICsxODYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSk7CiAKKyAgICB2b2lkIGFkZElEQkNvbm5lY3Rpb24oKTsKKwog
cHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3b3JrUHJvY2Vz
cyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCwgSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KaW5kZXggYTA5ODQxMmE1ZjNkNTVmZTM4NDhiMjIzZjlkZmZhOThjMzY2MTRjNi4u
MDdiZmNlNDQ5MWNkNTMwNmI0ZmFhMjhiYzRjODVhNTNjZWYwZWFiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMDcsNCArMTA3LDYgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2Vu
ZGlmCiAgICAgU2V0UmVzb3VyY2VMb2FkU2NoZWR1bGluZ01vZGUoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TG9hZFNjaGVkdWxpbmdNb2Rl
IG1vZGUpCiAgICAgUHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPHVpbnQ2NF90PiBsb2Fk
SWRlbnRpZmllcnMpCisKKyAgICBBZGRJREJDb25uZWN0aW9uKCkKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMTVjNGU0YzBkNzA3
MGE4MWJkZjgwYmUxMDZiNjllNjBhY2JiNjU5ZC4uY2VkM2Q0NzZkNjRlNGM5NzkxZDRmYzdhNzhj
ODVmOWRkYWVhYmM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKQEAgLTM5MSw4ICszOTEsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpj
cmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmllciBpZGVu
dAogICAgIGNvbm5lY3Rpb24uc2V0T25MaW5lU3RhdGUoTmV0d29ya1N0YXRlTm90aWZpZXI6OnNp
bmdsZXRvbigpLm9uTGluZSgpKTsKIAogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQtPmFkZENvbm5l
Y3Rpb24oY29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOwotCi0gICAgd2ViSURCU2VydmVyKHNlc3Np
b25JRCkuYWRkQ29ubmVjdGlvbihjb25uZWN0aW9uLmNvbm5lY3Rpb24oKSwgaWRlbnRpZmllcik7
CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQpAQCAtNTUyLDggKzU1MCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICNlbmRpZgogCiAg
ICAgbV9zdG9yYWdlTWFuYWdlclNldC0+cmVtb3ZlKHNlc3Npb25JRCk7Ci0KLSAgICByZW1vdmVX
ZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKHNlc3Npb25JRCk7CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQpAQCAtMjMzMCwxMCArMjMyNiwxOSBAQCBSZWY8V2ViSURCU2Vy
dmVyPiBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICAgICAgcGF0aCA9IG1faWRiRGF0YWJhc2VQYXRocy5nZXQoc2Vzc2lvbklE
KTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBw
YXRoLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgc2Vzc2lvbklEXShjb25z
dCBhdXRvJiBvcmlnaW4sIHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSB7Ci0gICAgICAgIFJlZlB0
cjxTdG9yYWdlUXVvdGFNYW5hZ2VyPiBzdG9yYWdlUXVvdGFNYW5hZ2VyID0gd2Vha1RoaXMgPyB0
aGlzLT5zdG9yYWdlUXVvdGFNYW5hZ2VyKHNlc3Npb25JRCwgb3JpZ2luKSA6IG51bGxwdHI7Cisg
ICAgYXV0byBzcGFjZVJlcXVlc3RlciA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBz
ZXNzaW9uSURdKGNvbnN0IGF1dG8mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQpIHsK
KyAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih3ZWFrVGhpcy5nZXQoKSk7
CisgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBSZWZQdHI8U3RvcmFnZVF1b3RhTWFuYWdlcj4gc3RvcmFnZVF1b3RhTWFuYWdlciA9IHBy
b3RlY3RlZFRoaXMtPnN0b3JhZ2VRdW90YU1hbmFnZXIoc2Vzc2lvbklELCBvcmlnaW4pOwogICAg
ICAgICByZXR1cm4gc3RvcmFnZVF1b3RhTWFuYWdlciA/IHN0b3JhZ2VRdW90YU1hbmFnZXItPnJl
cXVlc3RTcGFjZU9uQmFja2dyb3VuZFRocmVhZChzcGFjZVJlcXVlc3RlZCkgOiBTdG9yYWdlUXVv
dGFNYW5hZ2VyOjpEZWNpc2lvbjo6RGVueTsKLSAgICB9KTsKKyAgICB9OworICAgIGF1dG8gY2xv
c2VIYW5kbGVyID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHNlc3Npb25JRF0oKSB7
CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3dlYklEQlNl
cnZlcnMucmVtb3ZlKHNlc3Npb25JRCk7CisgICAgfTsKKyAgICByZXR1cm4gV2ViSURCU2VydmVy
OjpjcmVhdGUoc2Vzc2lvbklELCBwYXRoLCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSwgV1RGTW92
ZShjbG9zZUhhbmRsZXIpKTsKIH0KIAogV2ViSURCU2VydmVyJiBOZXR3b3JrUHJvY2Vzczo6d2Vi
SURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKQEAgLTIzNjMsMjQgKzIzNjgsNiBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcklEQlJv
b3RQYXRoKFBBTDo6U2Vzc2lvbklEIHNlcwogICAgIHNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2Vy
LT5zZXRJREJSb290UGF0aChpZGJSb290UGF0aCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6
OnJlbW92ZVdlYklEQlNlcnZlcklmUG9zc2libGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQot
ewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBhdXRvIGl0ZXJhdG9yID0g
bV93ZWJJREJTZXJ2ZXJzLmZpbmQoc2Vzc2lvbklEKTsKLSAgICBpZiAoaXRlcmF0b3IgPT0gbV93
ZWJJREJTZXJ2ZXJzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9uZXR3b3Jr
U2Vzc2lvbnMuY29udGFpbnMoc2Vzc2lvbklEKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYg
KGl0ZXJhdG9yLT52YWx1ZS0+aGFzQ29ubmVjdGlvbigpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpdGVyYXRvci0+dmFsdWUtPmNsb3NlKCk7Ci0gICAgbV93ZWJJREJTZXJ2ZXJzLnJlbW92ZShp
dGVyYXRvcik7Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnN5bmNMb2NhbFN0b3JhZ2UoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fc3Rv
cmFnZU1hbmFnZXJTZXQtPndhaXRVbnRpbFN5bmNpbmdMb2NhbFN0b3JhZ2VGaW5pc2hlZCgpOwpA
QCAtMjY4OCwxMCArMjY3NSw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NDbG9zZWQoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQCiB7CiAgICAgbV9z
dG9yYWdlTWFuYWdlclNldC0+cmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIAotICAgIGF1
dG8qIHdlYklEQlNlcnZlciA9IG1fd2ViSURCU2VydmVycy5nZXQoc2Vzc2lvbklEKTsKLSAgICBB
U1NFUlQod2ViSURCU2VydmVyKTsKLSAgICB3ZWJJREJTZXJ2ZXItPnJlbW92ZUNvbm5lY3Rpb24o
Y29ubmVjdGlvbik7Ci0gICAgcmVtb3ZlV2ViSURCU2VydmVySWZQb3NzaWJsZShzZXNzaW9uSUQp
OworICAgIGlmIChhdXRvKiBzZXJ2ZXIgPSBtX3dlYklEQlNlcnZlcnMuZ2V0KHNlc3Npb25JRCkp
CisgICAgICAgIHNlcnZlci0+cmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIH0KIAogTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIE5ldHdvcmtQcm9jZXNzOjp3ZWJQcm9jZXNzQ29u
bmVjdGlvbihQcm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKaW5kZXggZjA2Mjk3NWU0MzA1MjVj
OWFkOWZiZGMzNWVmNjA1OTdkNmFmZjA1OC4uZTM5ZTFjNDUyYmVkNjljYzE0YWY0Y2NhNzdhMjA0
NjM4NzA5ZjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwCkBAIC01OSw2ICs1OSw3IEBAIFJlZjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKCkKIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKCkKICAgICA6IG1fY29ubmVjdGlvblRvU2VydmVy
KElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGUoKnRoaXMpKQogeworICAg
IHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpBZGRJREJDb25u
ZWN0aW9uKCkpOwogfQogCiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6On5XZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXIoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425653</attachid>
            <date>2021-04-09 14:22:27 -0700</date>
            <delta_ts>2021-04-10 09:23:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224305-20210409142226.patch</filename>
            <type>text/plain</type>
            <size>18056</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwODc4MTk1YTllNWY3ZTI1
NGU4YTBiYWYwNmYyZDJhZDljMWVmNjguLjdhMTlkYmZjZGMyNjYxN2JjZmVlNzBjMGQ3YzhmNGM5
YTkzNzY0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjEtMDQtMDggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIFdlYklEQlNlcnZlciBv
bmx5IHdoZW4gaXQgaXMgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjQzMDUKKyAgICAgICAgcmRhcjovLzcxOTYyMTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBDdXJyZW50bHkgZWFjaCBX
ZWJJREJTZXJ2ZXIgY29tZXMgd2l0aCBhIHRocmVhZCwgc28gd2UgZG9uJ3Qgd2FudCB0byBrZWVw
IFdlYklEQlNlcnZlciBpZiBpdCdzIG5vdCBpbiB1c2UuCisgICAgICAgIE5vdyB0aGVyZSBhcmUg
dHdvIGNhc2VzIHdoZXJlIG5ldHdvcmsgcHJvY2VzcyBuZWVkcyBhIFdlYklEQlNlcnZlcjoKKyAg
ICAgICAgMS4gaGFuZGxlIHJlcXVlc3RzIGZyb20gVUkgcHJvY2VzcyB0byBjb2xsZWN0IG9yIHJl
bW92ZSBkYXRhCisgICAgICAgIDIuIGhhbmRsZSByZXF1ZXN0cyBmcm9tIFdlYiBwcm9jZXNzIHRv
IHBlcmZvcm0gSURCIG9wZXJhdGlvbnMgCisgICAgICAgIFdlIGNyZWF0ZWQgYSBXZWJJREJTZXJ2
ZXIgd2hlbiBuZXR3b3JrIHByb2Nlc3MgY29ubmVjdHMgdG8gYSB3ZWIgcHJvY2VzcywgYW5kIHdl
IHNob3VsZCBjcmVhdGUgaXQgd2hlbiAKKyAgICAgICAgd2ViIHByb2Nlc3MgaXMgYWJvdXQgdG8g
cGVyZm9ybSBJREIgb3BlcmF0aW9ucy4gQWxzbywgd2Ugc2hvdWxkIHJlbW92ZSBXZWJJREJTZXJ2
ZXIgaWYgaXQncyBkb25lIGhhbmRsaW5nCisgICAgICAgIHJlcXVlc3RzLCBpLmUgY291bnQgb2Yg
cGVuZGluZyByZXF1ZXN0cyBmcm9tIFVJIHByb2Nlc3MgaXMgMCBhbmQgV2ViSURCU2VydmVyIGlz
IG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IHdlYiAKKyAgICAgICAgcHJvY2VzcyBjb25uZWN0aW9u
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIpOiBBZGQgU2Vzc2lvbklEIHRvIHRocmVhZCBu
YW1lIHNvIHdlIGtub3cgd2hpY2ggc2Vzc2lvbiB0byBibGFtZSBpbiBjcmFzaCAKKyAgICAgICAg
dHJhY2VzLiAKKyAgICAgICAgKFdlYktpdDo6bV9jbG9zZUNhbGxiYWNrKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCU2VydmVyOjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
U2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCU2VydmVyOjpyZW1vdmVDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCU2VydmVyOjp0cnlDbG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQlNlcnZlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmFkZElEQkNvbm5lY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46IEFkZCBh
IG1lc3NhZ2UgZm9yIHdlYiBwcm9jZXNzIHRvIGFzayBuZXR3b3JrIHByb2Nlc3MKKyAgICAgICAg
dG8gY3JlYXRlIFdlYklEQlNlcnZlciBpZiBub3QgZXhpc3RzLCBhbmQgYXNzb2NpYXRlIHRoZSB3
ZWIgcHJvY2VzcyBjb25uZWN0aW9uIHdpdGggV2ViSURCU2VydmVyLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OmNyZWF0ZVdlYklEQlNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpjb25uZWN0aW9uVG9XZWJQcm9jZXNzQ2xvc2VkKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OnJlbW92ZVdlYklEQlNlcnZlcklmUG9zc2libGUpOiBEZWxl
dGVkLiBNb3ZlIHRoZSByZW1vdmFsIGNvZGUgdG8gV2ViSURCU2VydmVyLgorICAgICAgICAqIFdl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcik6CisKIDIwMjEtMDQtMDcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFu
emFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW1dQRV1bR1RLXSBOdWxsIHBvaW50ZXIgZGVyZWZl
cmVuY2Ugd2hlbiBjaGlsZCBwcm9jZXNzIGV4aXRzIGltbWVkaWF0ZWx5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcApp
bmRleCBkMjFlNTcxZWIxN2UxZTczNzM3MmI5NDUzNjBlOTVhNTkzOTA2NWY3Li5hNmVkY2E4MWFh
MjFiZDkyYjE1YWZlYTQ0MDA1MjZjMDQ2YTMwMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTM0LDEz
ICszNCwxOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPFdlYklEQlNlcnZlcj4gV2Vi
SURCU2VydmVyOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1h
bmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVzdGVyKQorUmVmPFdlYklEQlNlcnZlcj4g
V2ViSURCU2VydmVyOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90
YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVzdGVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURC
U2VydmVyKHNlc3Npb25JRCwgZGlyZWN0b3J5LCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYklEQlNlcnZlcihzZXNzaW9uSUQsIGRpcmVjdG9y
eSwgV1RGTW92ZShzcGFjZVJlcXVlc3RlciksIFdURk1vdmUoY2FsbGJhY2spKSk7CiB9CiAKLVdl
YklEQlNlcnZlcjo6V2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
U3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdl
UXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlcikKLSAgICA6IENyb3Nz
VGhyZWFkVGFza0hhbmRsZXIoImNvbS5hcHBsZS5XZWJLaXQuSW5kZXhlZERCU2VydmVyIiwgV1RG
OjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpBdXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wOjpVc2Up
CitXZWJJREJTZXJ2ZXI6OldlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3Rv
cmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYgc3BhY2VSZXF1ZXN0ZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKKyAgICA6IENyb3NzVGhyZWFkVGFza0hhbmRs
ZXIobWFrZVN0cmluZygiY29tLmFwcGxlLldlYktpdC5JbmRleGVkREJTZXJ2ZXIuIiwgc2Vzc2lv
bklELnRvVUludDY0KCkpLmFzY2lpKCkuZGF0YSgpLCBXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRs
ZXI6OkF1dG9kcmFpbmVkUG9vbEZvclJ1bkxvb3A6OlVzZSkKKyAgICAsIG1fZGF0YVRhc2tDb3Vu
dGVyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShSZWZDb3VudGVyRXZlbnQpIHsKKyAg
ICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPnRyeUNsb3NlKCk7Cisg
ICAgfSkKKyAgICAsIG1fY2xvc2VDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC02MSwxMSArNjYsMTEgQEAgdm9pZCBXZWJJ
REJTZXJ2ZXI6OmdldE9yaWdpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYkNv
cmU6OlNlY3VyaXR5T3IKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAg
cG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
LCB0b2tlbiA9IG1fZGF0YVRhc2tDb3VudGVyLmNvdW50KCldKCkgbXV0YWJsZSB7CiAgICAgICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fc2VydmVyLT5sb2NrKCkpOwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFz
ayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgb3JpZ2lucyA9IGNyb3NzVGhyZWFkQ29w
eShtX3NlcnZlci0+Z2V0T3JpZ2lucygpKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgcG9zdFRhc2tS
ZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2Vu
ID0gV1RGTW92ZSh0b2tlbiksIG9yaWdpbnMgPSBjcm9zc1RocmVhZENvcHkobV9zZXJ2ZXItPmdl
dE9yaWdpbnMoKSldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKG9y
aWdpbnMpKTsKICAgICAgICAgfSkpOwogICAgIH0pOwpAQCAtNzUsMTIgKzgwLDEyIEBAIHZvaWQg
V2ViSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRp
bWUgbW9kaWZpY2F0aW9uVGltCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAot
ICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1vZGlm
aWNhdGlvblRpbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7Cisg
ICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbW9kaWZp
Y2F0aW9uVGltZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBtX2RhdGFU
YXNrQ291bnRlci5jb3VudCgpXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKIAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygp
KTsKICAgICAgICAgbV9zZXJ2ZXItPmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5j
ZShtb2RpZmljYXRpb25UaW1lKTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRh
c2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIHBv
c3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
LCB0b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJh
Y2soKTsKICAgICAgICAgfSkpOwogICAgIH0pOwpAQCAtOTAsMTIgKzk1LDEyIEBAIHZvaWQgV2Vi
SURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9y
PFdlYkNvcmU6OlNlY3VyCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAg
IHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9yaWdpbkRh
dGFzID0gb3JpZ2luRGF0YXMuaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayldICgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIG9yaWdpbkRhdGFzID0gb3JpZ2luRGF0YXMuaXNvbGF0ZWRDb3B5KCks
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gbV9kYXRhVGFza0NvdW50ZXIu
Y291bnQoKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwogICAgICAg
ICBtX3NlcnZlci0+Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKG9yaWdpbkRhdGFz
KTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NU
aHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IFdURk1vdmUo
dG9rZW4pXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgfSkp
OwogICAgIH0pOwpAQCAtMTA1LDEyICsxMTAsMTQgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbmFt
ZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY28K
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb2xkT3JpZ2luID0gb2xkT3JpZ2luLmlz
b2xhdGVkQ29weSgpLCBuZXdPcmlnaW4gPSBuZXdPcmlnaW4uaXNvbGF0ZWRDb3B5KCksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9sZE9yaWdpbiA9IG9sZE9yaWdpbi5p
c29sYXRlZENvcHkoKSwgbmV3T3JpZ2luID0gbmV3T3JpZ2luLmlzb2xhdGVkQ29weSgpLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IG1fZGF0YVRhc2tDb3VudGVyLmNvdW50
KCldICgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAog
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKICAgICAgICAgbV9z
ZXJ2ZXItPnJlbmFtZU9yaWdpbihvbGRPcmlnaW4sIG5ld09yaWdpbik7Ci0gICAgICAgIHBvc3RU
YXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFdURk1vdmUoY2FsbGJhY2spKSk7CisgICAgICAgIHBv
c3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
LCB0b2tlbiA9IFdURk1vdmUodG9rZW4pXSgpIG11dGFibGUgeworICAgICAgICAgICAgY2FsbGJh
Y2soKTsKKyAgICAgICAgfSkpOwogICAgIH0pOwogfQogCkBAIC0zNzAsMTYgKzM3NywyMCBAQCB2
b2lkIFdlYklEQlNlcnZlcjo6cmVtb3ZlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIG1fY29ubmVj
dGlvbnMucmVtb3ZlKCZjb25uZWN0aW9uKTsKLSAgICBjb25uZWN0aW9uLnJlbW92ZVRocmVhZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSURCU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpOworICAgIGF1dG8qIHRha2VuQ29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbnMudGFrZSgmY29u
bmVjdGlvbik7CisgICAgaWYgKCF0YWtlbkNvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKwor
ICAgIHRha2VuQ29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpXZWJJREJTZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAgICAgcG9zdFRhc2soW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29ubmVjdGlvbklEID0gY29ubmVj
dGlvbi51bmlxdWVJRCgpXSB7CiAgICAgICAgIGF1dG8gY29ubmVjdGlvbiA9IG1fY29ubmVjdGlv
bk1hcC50YWtlKGNvbm5lY3Rpb25JRCk7Ci0KICAgICAgICAgQVNTRVJUKGNvbm5lY3Rpb24pOwog
CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwogICAgICAgICBt
X3NlcnZlci0+dW5yZWdpc3RlckNvbm5lY3Rpb24oY29ubmVjdGlvbi0+Y29ubmVjdGlvblRvQ2xp
ZW50KCkpOwogICAgIH0pOworCisgICAgdHJ5Q2xvc2UoKTsKIH0KIAogdm9pZCBXZWJJREJTZXJ2
ZXI6OnBvc3RUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQpAQCAtNDE1LDQgKzQyNiwxNiBA
QCB2b2lkIFdlYklEQlNlcnZlcjo6Y2xvc2UoKQogICAgIH0pOwogfQogCit2b2lkIFdlYklEQlNl
cnZlcjo6dHJ5Q2xvc2UoKQoreworICAgIGlmICghbV9jb25uZWN0aW9ucy5pc0VtcHR5KCkgfHwg
bV9kYXRhVGFza0NvdW50ZXIudmFsdWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFt
X2Nsb3NlQ2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIGNsb3NlKCk7CisgICAgbV9j
bG9zZUNhbGxiYWNrKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAppbmRl
eCAyNTZlMjk1NjUwYTYyMGQ4M2NmNWNhODdhOGJjMGNjMzExNGExZDJlLi5mZjFiMWI2ZDk0N2I4
MTQxNmIxZTQ1N2NiMWNjYTFiODk2YzhiNDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvSURCU2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9y
YWdlUXVvdGFNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBTdG9yYWdlUXVvdGFNYW5hZ2VyOwpAQCAtNDMsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViSURCU2VydmVyIGZpbmFsIDogcHVibGljIENyb3NzVGhyZWFkVGFz
a0hhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJl
ZkNvdW50ZWQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViSURCU2VydmVyPiBjcmVhdGUo
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2
ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYpOworICAg
IHN0YXRpYyBSZWY8V2ViSURCU2VydmVyPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0
cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1
b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAKICAgICB2b2lkIGdldE9yaWdpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mJik+JiYpOwogICAgIHZvaWQgY2xvc2VBbmREZWxl
dGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY2FsbGJhY2spOwpAQCAtODYsMjAgKzg3LDI3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAg
dm9pZCBkaXNwYXRjaFRvVGhyZWFkKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKLSAgICB2b2lk
IGNsb3NlKCk7CiAKLSAgICBib29sIGhhc0Nvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiAhbV9j
b25uZWN0aW9ucy5pc0VtcHR5KCk7IH0KIHByaXZhdGU6Ci0gICAgV2ViSURCU2VydmVyKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmKTsKKyAgICBXZWJJ
REJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3Jl
OjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVy
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgfldlYklEQlNlcnZlcigpOwog
CiAgICAgdm9pZCBwb3N0VGFzayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKKyAgICB2b2lk
IGNsb3NlKCk7CisgICAgdm9pZCB0cnlDbG9zZSgpOworCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyPiBtX3NlcnZlcjsKICAgICBib29sIG1faXNTdXNw
ZW5kZWQgeyBmYWxzZSB9OwogCiAgICAgSGFzaE1hcDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlE
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pj4gbV9jb25uZWN0aW9u
TWFwOwogICAgIEhhc2hTZXQ8SVBDOjpDb25uZWN0aW9uKj4gbV9jb25uZWN0aW9uczsKKworICAg
IGVudW0gRGF0YVRhc2tDb3VudGVyVHlwZSB7IH07CisgICAgdXNpbmcgRGF0YVRhc2tDb3VudGVy
ID0gUmVmQ291bnRlcjxEYXRhVGFza0NvdW50ZXJUeXBlPjsKKyAgICB1c2luZyBEYXRhVGFza0Nv
dW50ZXJUb2tlbiA9IERhdGFUYXNrQ291bnRlcjo6VG9rZW47CisgICAgRGF0YVRhc2tDb3VudGVy
IG1fZGF0YVRhc2tDb3VudGVyOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gbV9jbG9z
ZUNhbGxiYWNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDA1MTU1MGU3NzdlNTA3YTNhZGE3M2MxYmU5Mjk4Mjc1MDE3YTIwYmMu
Ljc5YTNkZDc4NmNmZDkwOTljZTI1M2M3OTZkM2U4ODA3Zjc1NDczMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCkBAIC0xMjQxLDYgKzEyNDEsMTAgQEAgdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6cHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPFJlc291cmNl
TG9hZEkKICAgICBzZXNzaW9uLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpLnByaW9yaXRpemVMb2Fk
cyhsb2Fkcyk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmFkZElE
QkNvbm5lY3Rpb24oKQoreworICAgIG1fbmV0d29ya1Byb2Nlc3MtPndlYklEQlNlcnZlcihtX3Nl
c3Npb25JRCkuYWRkQ29ubmVjdGlvbihtX2Nvbm5lY3Rpb24uZ2V0KCksIG1fd2ViUHJvY2Vzc0lk
ZW50aWZpZXIpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDJlYzdkMTFjYTBlYTk0MDJhNGNhN2E5MjhjNzNkODNiMWU2ZWYyZjYuLjI4
MTVlZGVjNzNkYjViOWM3NGVlMjg2NDFmYmEzZmI0NzI0NmZkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKQEAgLTE4Niw2ICsxODYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSk7CiAKKyAgICB2b2lkIGFkZElEQkNvbm5lY3Rpb24oKTsKKwog
cHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3b3JrUHJvY2Vz
cyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCwgSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KaW5kZXggYTA5ODQxMmE1ZjNkNTVmZTM4NDhiMjIzZjlkZmZhOThjMzY2MTRjNi4u
MDdiZmNlNDQ5MWNkNTMwNmI0ZmFhMjhiYzRjODVhNTNjZWYwZWFiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMDcsNCArMTA3LDYgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2Vu
ZGlmCiAgICAgU2V0UmVzb3VyY2VMb2FkU2NoZWR1bGluZ01vZGUoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TG9hZFNjaGVkdWxpbmdNb2Rl
IG1vZGUpCiAgICAgUHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPHVpbnQ2NF90PiBsb2Fk
SWRlbnRpZmllcnMpCisKKyAgICBBZGRJREJDb25uZWN0aW9uKCkKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMTVjNGU0YzBkNzA3
MGE4MWJkZjgwYmUxMDZiNjllNjBhY2JiNjU5ZC4uOGYxZTdhMTYzZGQ0MjJhZDMzM2ZiZTEwMzA3
MzdkYTMzMjBiNTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKQEAgLTM5MSw4ICszOTEsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpj
cmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmllciBpZGVu
dAogICAgIGNvbm5lY3Rpb24uc2V0T25MaW5lU3RhdGUoTmV0d29ya1N0YXRlTm90aWZpZXI6OnNp
bmdsZXRvbigpLm9uTGluZSgpKTsKIAogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQtPmFkZENvbm5l
Y3Rpb24oY29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOwotCi0gICAgd2ViSURCU2VydmVyKHNlc3Np
b25JRCkuYWRkQ29ubmVjdGlvbihjb25uZWN0aW9uLmNvbm5lY3Rpb24oKSwgaWRlbnRpZmllcik7
CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQpAQCAtNTUyLDggKzU1MCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICNlbmRpZgogCiAg
ICAgbV9zdG9yYWdlTWFuYWdlclNldC0+cmVtb3ZlKHNlc3Npb25JRCk7Ci0KLSAgICByZW1vdmVX
ZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKHNlc3Npb25JRCk7CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQpAQCAtMjMzMCwxMCArMjMyNiwxNiBAQCBSZWY8V2ViSURCU2Vy
dmVyPiBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICAgICAgcGF0aCA9IG1faWRiRGF0YWJhc2VQYXRocy5nZXQoc2Vzc2lvbklE
KTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBw
YXRoLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgc2Vzc2lvbklEXShjb25z
dCBhdXRvJiBvcmlnaW4sIHVpbnQ2NF90IHNwYWNlUmVxdWVzdGVkKSB7Ci0gICAgICAgIFJlZlB0
cjxTdG9yYWdlUXVvdGFNYW5hZ2VyPiBzdG9yYWdlUXVvdGFNYW5hZ2VyID0gd2Vha1RoaXMgPyB0
aGlzLT5zdG9yYWdlUXVvdGFNYW5hZ2VyKHNlc3Npb25JRCwgb3JpZ2luKSA6IG51bGxwdHI7Cisg
ICAgYXV0byBzcGFjZVJlcXVlc3RlciA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBz
ZXNzaW9uSURdKGNvbnN0IGF1dG8mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQpIHsK
KyAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih3ZWFrVGhpcy5nZXQoKSk7
CisgICAgICAgIFJlZlB0cjxTdG9yYWdlUXVvdGFNYW5hZ2VyPiBzdG9yYWdlUXVvdGFNYW5hZ2Vy
ID0gcHJvdGVjdGVkVGhpcz8gcHJvdGVjdGVkVGhpcy0+c3RvcmFnZVF1b3RhTWFuYWdlcihzZXNz
aW9uSUQsIG9yaWdpbikgOiBudWxscHRyOwogICAgICAgICByZXR1cm4gc3RvcmFnZVF1b3RhTWFu
YWdlciA/IHN0b3JhZ2VRdW90YU1hbmFnZXItPnJlcXVlc3RTcGFjZU9uQmFja2dyb3VuZFRocmVh
ZChzcGFjZVJlcXVlc3RlZCkgOiBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpEZWNpc2lvbjo6RGVueTsK
LSAgICB9KTsKKyAgICB9OworICAgIGF1dG8gY2xvc2VIYW5kbGVyID0gW3dlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyksIHNlc3Npb25JRF0oKSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAg
ICAgICAgICAgIHdlYWtUaGlzLT5tX3dlYklEQlNlcnZlcnMucmVtb3ZlKHNlc3Npb25JRCk7Cisg
ICAgfTsKKyAgICByZXR1cm4gV2ViSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBwYXRoLCBX
VEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSwgV1RGTW92ZShjbG9zZUhhbmRsZXIpKTsKIH0KIAogV2Vi
SURCU2VydmVyJiBOZXR3b3JrUHJvY2Vzczo6d2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKQEAgLTIzNjMsMjQgKzIzNjUsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRT
ZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcklEQlJvb3RQYXRoKFBBTDo6U2Vzc2lvbklEIHNlcwog
ICAgIHNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyLT5zZXRJREJSb290UGF0aChpZGJSb290UGF0
aCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlbW92ZVdlYklEQlNlcnZlcklmUG9zc2li
bGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0KLSAgICBhdXRvIGl0ZXJhdG9yID0gbV93ZWJJREJTZXJ2ZXJzLmZpbmQoc2Vzc2lv
bklEKTsKLSAgICBpZiAoaXRlcmF0b3IgPT0gbV93ZWJJREJTZXJ2ZXJzLmVuZCgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAobV9uZXR3b3JrU2Vzc2lvbnMuY29udGFpbnMoc2Vzc2lvbklE
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGl0ZXJhdG9yLT52YWx1ZS0+aGFzQ29ubmVj
dGlvbigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpdGVyYXRvci0+dmFsdWUtPmNsb3NlKCk7
Ci0gICAgbV93ZWJJREJTZXJ2ZXJzLnJlbW92ZShpdGVyYXRvcik7Ci19Ci0KIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnN5bmNMb2NhbFN0b3JhZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQtPndhaXRVbnRpbFN5
bmNpbmdMb2NhbFN0b3JhZ2VGaW5pc2hlZCgpOwpAQCAtMjY4OCwxMCArMjY3Miw4IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NDbG9zZWQoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBQCiB7CiAgICAgbV9zdG9yYWdlTWFuYWdlclNldC0+cmVtb3ZlQ29u
bmVjdGlvbihjb25uZWN0aW9uKTsKIAotICAgIGF1dG8qIHdlYklEQlNlcnZlciA9IG1fd2ViSURC
U2VydmVycy5nZXQoc2Vzc2lvbklEKTsKLSAgICBBU1NFUlQod2ViSURCU2VydmVyKTsKLSAgICB3
ZWJJREJTZXJ2ZXItPnJlbW92ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7Ci0gICAgcmVtb3ZlV2Vi
SURCU2VydmVySWZQb3NzaWJsZShzZXNzaW9uSUQpOworICAgIGlmIChhdXRvKiBzZXJ2ZXIgPSBt
X3dlYklEQlNlcnZlcnMuZ2V0KHNlc3Npb25JRCkpCisgICAgICAgIHNlcnZlci0+cmVtb3ZlQ29u
bmVjdGlvbihjb25uZWN0aW9uKTsKIH0KIAogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mq
IE5ldHdvcmtQcm9jZXNzOjp3ZWJQcm9jZXNzQ29ubmVjdGlvbihQcm9jZXNzSWRlbnRpZmllciBp
ZGVudGlmaWVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5jcHAKaW5kZXggZjA2Mjk3NWU0MzA1MjVjOWFkOWZiZGMzNWVmNjA1OTdkNmFmZjA1OC4u
ZTM5ZTFjNDUyYmVkNjljYzE0YWY0Y2NhNzdhMjA0NjM4NzA5ZjA0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC01OSw2ICs1OSw3IEBAIFJl
ZjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3Jl
YXRlKCkKIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVy
KCkKICAgICA6IG1fY29ubmVjdGlvblRvU2VydmVyKElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRv
U2VydmVyOjpjcmVhdGUoKnRoaXMpKQogeworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpBZGRJREJDb25uZWN0aW9uKCkpOwogfQogCiBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6On5XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425666</attachid>
            <date>2021-04-09 16:52:38 -0700</date>
            <delta_ts>2021-04-10 09:23:18 -0700</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-224305-20210409165237.patch</filename>
            <type>text/plain</type>
            <size>1999</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ2M2RkYWZlYTUxZTA1M2Vk
NWFiNWI1YWE5NGI4YmYzYTU3MzRkYTEuLmFjOWU5ZGQ0YjQ4YzRmOTQwM2MzOGNhYjdjOGEyNzQ4
YWNlZTY4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDQtMDkgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgZml4IGZvciB0
ZXN0IGNyYXNoZXMgYWZ0ZXIgcjI3NTc3OS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNDMwNQorICAgICAgICByZGFyOi8vNzE5NjIxOTYKKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OmNyZWF0ZVdlYklEQlNlcnZlcik6IGhpdHRpbmcgYW4gYXNzZXJ0
aW9uIHdoZW4gZGVyZWYgdGhlIFdlYWtQdHIsIHNvIHJvbGxpbmcgYmFjayB0bworICAgICAgICBv
bGQgaW1wbC4KKwogMjAyMS0wNC0wOSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4K
IAogICAgICAgICBDcmVhdGUgV2ViSURCU2VydmVyIG9ubHkgd2hlbiBpdCBpcyBuZWVkZWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXgg
MjIwMDdhZGM0MmE5YzhjNjkwYTQxMTVlOWJmMzQ4OGI1YWMzMzY4Ny4uNTZjMDYyNzA1ZTYzYTc1
ODg2YmFhMGM2YThiOGJmYjUzNTg1Y2QzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIzMjYsOSArMjMyNiw4IEBAIFJlZjxXZWJJ
REJTZXJ2ZXI+IE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgICAgICBwYXRoID0gbV9pZGJEYXRhYmFzZVBhdGhzLmdldChzZXNz
aW9uSUQpOwogICAgIH0KIAotICAgIGF1dG8gc3BhY2VSZXF1ZXN0ZXIgPSBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKSwgc2Vzc2lvbklEXShjb25zdCBhdXRvJiBvcmlnaW4sIHVpbnQ2NF90
IHNwYWNlUmVxdWVzdGVkKSB7Ci0gICAgICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQ
dHIod2Vha1RoaXMuZ2V0KCkpOwotICAgICAgICBSZWZQdHI8U3RvcmFnZVF1b3RhTWFuYWdlcj4g
c3RvcmFnZVF1b3RhTWFuYWdlciA9IHByb3RlY3RlZFRoaXM/IHByb3RlY3RlZFRoaXMtPnN0b3Jh
Z2VRdW90YU1hbmFnZXIoc2Vzc2lvbklELCBvcmlnaW4pIDogbnVsbHB0cjsKKyAgICBhdXRvIHNw
YWNlUmVxdWVzdGVyID0gW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHNlc3Np
b25JRF0oY29uc3QgYXV0byYgb3JpZ2luLCB1aW50NjRfdCBzcGFjZVJlcXVlc3RlZCkgeworICAg
ICAgICBSZWZQdHI8U3RvcmFnZVF1b3RhTWFuYWdlcj4gc3RvcmFnZVF1b3RhTWFuYWdlciA9IHdl
YWtUaGlzID8gdGhpcy0+c3RvcmFnZVF1b3RhTWFuYWdlcihzZXNzaW9uSUQsIG9yaWdpbikgOiBu
dWxscHRyOwogICAgICAgICByZXR1cm4gc3RvcmFnZVF1b3RhTWFuYWdlciA/IHN0b3JhZ2VRdW90
YU1hbmFnZXItPnJlcXVlc3RTcGFjZU9uQmFja2dyb3VuZFRocmVhZChzcGFjZVJlcXVlc3RlZCkg
OiBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpEZWNpc2lvbjo6RGVueTsKICAgICB9OwogICAgIGF1dG8g
Y2xvc2VIYW5kbGVyID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHNlc3Npb25JRF0o
KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425680</attachid>
            <date>2021-04-10 01:30:02 -0700</date>
            <delta_ts>2021-04-10 02:19:15 -0700</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-224305-20210410013001.patch</filename>
            <type>text/plain</type>
            <size>1882</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVhYjU3OTU3NTg5ZmYyZjJm
ZmMzNGQ1YmVkYzg2ZjRhNDMxOThmYTguLjA2ZjkwZWNkMDQ5ZGFkZTc1YjY1MTE0ZjcxN2EzYWQ1
N2EyOTQzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDQtMTAgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgYW5vdGhlciBm
aXggZm9yIGNyYXNoZXMgYWZ0ZXIgcjI3NTc3OS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDMwNQorICAgICAgICByZGFyOi8vNzE5NjIxOTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJTZXJ2ZXI6OldlYklEQlNlcnZlcik6IHJvbGxpbmcgYmFjayBjaGFuZ2Ugb24gc2V0dGluZyB0
aHJlYWQgbmFtZSBhcyB3ZSBzZWUgY3Jhc2ggaW4gCisgICAgICAgIHB0aHJlYWRfc2V0bmFtZV9u
cC4KKwogMjAyMS0wNC0wOSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCBmaXggZm9yIHRlc3QgY3Jhc2hlcyBhZnRlciByMjc1Nzc5LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNl
cnZlci5jcHAKaW5kZXggYTZlZGNhODFhYTIxYmQ5MmIxNWFmZWE0NDAwNTI2YzA0NmEzMDIzOC4u
NzNmMGM0YjcyYThmNGUzYzkzMmQ4YjI1NDVjNzYzYWJhMzJlYTg2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3Bw
CkBAIC00MCw3ICs0MCw3IEBAIFJlZjxXZWJJREJTZXJ2ZXI+IFdlYklEQlNlcnZlcjo6Y3JlYXRl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkCiB9CiAKIFdlYklEQlNl
cnZlcjo6V2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFN
YW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNhbGxiYWNrKQotICAgIDogQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlcihtYWtlU3Ry
aW5nKCJjb20uYXBwbGUuV2ViS2l0LkluZGV4ZWREQlNlcnZlci4iLCBzZXNzaW9uSUQudG9VSW50
NjQoKSkuYXNjaWkoKS5kYXRhKCksIFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6QXV0b2Ry
YWluZWRQb29sRm9yUnVuTG9vcDo6VXNlKQorICAgIDogQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlcigi
Y29tLmFwcGxlLldlYktpdC5JbmRleGVkREJTZXJ2ZXIiLCBXVEY6OkNyb3NzVGhyZWFkVGFza0hh
bmRsZXI6OkF1dG9kcmFpbmVkUG9vbEZvclJ1bkxvb3A6OlVzZSkKICAgICAsIG1fZGF0YVRhc2tD
b3VudGVyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShSZWZDb3VudGVyRXZlbnQpIHsK
ICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPnRyeUNsb3NlKCk7
Cg==
</data>
<flag name="commit-queue"
          id="445713"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425681</attachid>
            <date>2021-04-10 01:37:52 -0700</date>
            <delta_ts>2021-04-10 09:23:20 -0700</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-224305-20210410013751.patch</filename>
            <type>text/plain</type>
            <size>1860</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdkNzg2YWQ5Mjg2YzVkZGYz
MTc5Mjc2ZTM0ZjEwYjZkMjdmZDI0ZTguLjYzOGM4ZGRhMzQ5OWQ3M2VkYzRmNzI2NzIwZDRlYzE2
YTk0NWMzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDQtMTAgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRlc3Qg
Y3Jhc2hlcyBhZnRlciByMjc1Nzc5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjQzMDUKKyAgICAgICAgcmRhcjovLzcxOTYyMTk2CisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIpOiByb2xsaW5nIGJhY2sgY2hhbmdlIG9u
IHNldHRpbmcgdGhyZWFkIG5hbWUgYXMgd2Ugc2VlIGNyYXNoIGluIAorICAgICAgICBwdGhyZWFk
X3NldG5hbWVfbnAuCisKIDIwMjEtMDQtMDkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBXSzJdIENBRGlzcGxheUxpbmsgaW4gdGhlIHdlYiBw
cm9jZXNzIGlzIHVzZWQgdW5pbnRlbnRpb25hbGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAppbmRleCBhNmVkY2E4
MWFhMjFiZDkyYjE1YWZlYTQ0MDA1MjZjMDQ2YTMwMjM4Li43M2YwYzRiNzJhOGY0ZTNjOTMyZDhi
MjU0NWM3NjNhYmEzMmVhODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgUmVm
PFdlYklEQlNlcnZlcj4gV2ViSURCU2VydmVyOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBTdHJpbmcmIGQKIH0KIAogV2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYm
IHNwYWNlUmVxdWVzdGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCi0g
ICAgOiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyKG1ha2VTdHJpbmcoImNvbS5hcHBsZS5XZWJLaXQu
SW5kZXhlZERCU2VydmVyLiIsIHNlc3Npb25JRC50b1VJbnQ2NCgpKS5hc2NpaSgpLmRhdGEoKSwg
V1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpBdXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wOjpV
c2UpCisgICAgOiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyKCJjb20uYXBwbGUuV2ViS2l0LkluZGV4
ZWREQlNlcnZlciIsIFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6QXV0b2RyYWluZWRQb29s
Rm9yUnVuTG9vcDo6VXNlKQogICAgICwgbV9kYXRhVGFza0NvdW50ZXIoW3dlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyldKFJlZkNvdW50ZXJFdmVudCkgewogICAgICAgICBpZiAod2Vha1RoaXMp
CiAgICAgICAgICAgICB3ZWFrVGhpcy0+dHJ5Q2xvc2UoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425685</attachid>
            <date>2021-04-10 09:23:24 -0700</date>
            <delta_ts>2021-04-10 09:48:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224305-20210410092323.patch</filename>
            <type>text/plain</type>
            <size>15005</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYzOGM4ZGRhMzQ5OWQ3M2Vk
YzRmNzI2NzIwZDRlYzE2YTk0NWMzNjIuLjdiNTU0YjgxYjM1MDZkNmY1MTY0MTc5OTZhYmEyMjJl
ZmU3Njk2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDQtMTAgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5n
IHIyNzU3OTQsIHIyNzU3ODQsIHIyNzU3NzkKKworICAgICAgICByMjc1Nzc5IGNhdXNlZCBib3Rz
IHRvIGNyYXNoIGFuZCByMjc1Nzk0LCByMjc1Nzg0IGRpZG4ndCBmdWxseSBmaXggaXQ7IHJldmVy
dGluZyB0aGUgcGF0Y2hlcyB0byBpbnZlc3RpZ2F0ZS4KKworICAgICAgICBSZXZlcnRlZCBjaGFu
Z2VzZXQ6CisKKyAgICAgICAgIkNyZWF0ZSBXZWJJREJTZXJ2ZXIgb25seSB3aGVuIGl0IGlzIG5l
ZWRlZCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDMwNQorICAgICAgICBodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9yMjc1Nzc5CisKIDIwMjEt
MDQtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgZml4IHRlc3QgY3Jhc2hlcyBhZnRlciByMjc1Nzc5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAppbmRleCA3
M2YwYzRiNzJhOGY0ZTNjOTMyZDhiMjU0NWM3NjNhYmEzMmVhODYxLi5lMDk5NTUyYzViZTZlNWI0
OTMzOTA5MzIyZmEzMTIwYzBmOThiNzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTM0LDkgKzM0LDkg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxXZWJJREJTZXJ2ZXI+IFdlYklEQlNlcnZl
cjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3Rv
cnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3Bh
Y2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNhbGxiYWNrKQorUmVmPFdlYklEQlNlcnZlcj4gV2ViSURCU2VydmVyOjpjcmVhdGUoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURC
U2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmIHNw
YWNlUmVxdWVzdGVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYklEQlNlcnZlcihz
ZXNzaW9uSUQsIGRpcmVjdG9yeSwgV1RGTW92ZShzcGFjZVJlcXVlc3RlciksIFdURk1vdmUoY2Fs
bGJhY2spKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURCU2VydmVyKHNlc3Npb25J
RCwgZGlyZWN0b3J5LCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSkpOwogfQogCiBXZWJJREJTZXJ2
ZXI6OldlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYg
ZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFu
YWdlclNwYWNlUmVxdWVzdGVyJiYgc3BhY2VSZXF1ZXN0ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjYWxsYmFjaykKQEAgLTY2LDExICs2NiwxMSBAQCB2b2lkIFdlYklEQlNlcnZlcjo6
Z2V0T3JpZ2lucyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6U2VjdXJp
dHlPcgogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBwb3N0VGFzayhb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spLCB0b2tlbiA9IG1fZGF0YVRhc2tDb3VudGVyLmNvdW50KCldKCkgbXV0YWJsZSB7
CisgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CiAKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2ZXIt
PmxvY2soKSk7Ci0gICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IFdURk1vdmUodG9rZW4pLCBvcmlnaW5zID0g
Y3Jvc3NUaHJlYWRDb3B5KG1fc2VydmVyLT5nZXRPcmlnaW5zKCkpXSgpIG11dGFibGUgeworICAg
ICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKSwgb3JpZ2lucyA9IGNyb3NzVGhyZWFkQ29weShtX3NlcnZlci0+Z2V0T3JpZ2lucygp
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUob3JpZ2lucykpOwog
ICAgICAgICB9KSk7CiAgICAgfSk7CkBAIC04MCwxMiArODAsMTIgQEAgdm9pZCBXZWJJREJTZXJ2
ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmlj
YXRpb25UaW0KIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRh
c2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbW9kaWZpY2F0aW9uVGlt
ZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBtX2RhdGFUYXNrQ291bnRl
ci5jb3VudCgpXSgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIG1vZGlmaWNhdGlvblRpbWUsIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwogICAgICAg
ICBtX3NlcnZlci0+Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKG1vZGlmaWNh
dGlvblRpbWUpOwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBXVEZNb3ZlKHRva2VuKV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAg
ICAgICB9KSk7CiAgICAgfSk7CkBAIC05NSwxMiArOTUsMTIgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6
OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6
U2VjdXIKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2so
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb3JpZ2luRGF0YXMgPSBvcmln
aW5EYXRhcy5pc29sYXRlZENvcHkoKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9r
ZW4gPSBtX2RhdGFUYXNrQ291bnRlci5jb3VudCgpXSAoKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFz
ayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBvcmlnaW5EYXRhcyA9IG9y
aWdpbkRhdGFzLmlzb2xhdGVkQ29weSgpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAo
KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7CiAgICAgICAgIG1fc2VydmVy
LT5jbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMob3JpZ2luRGF0YXMpOwotICAgICAg
ICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKSwgdG9rZW4gPSBXVEZNb3ZlKHRva2VuKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgcG9zdFRh
c2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAgICB9KSk7CiAgICAgfSk7
CkBAIC0xMTAsMTQgKzExMCwxMiBAQCB2b2lkIFdlYklEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjbwogewogICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBvbGRPcmlnaW4gPSBvbGRPcmlnaW4uaXNvbGF0ZWRDb3B5
KCksIG5ld09yaWdpbiA9IG5ld09yaWdpbi5pc29sYXRlZENvcHkoKSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBtX2RhdGFUYXNrQ291bnRlci5jb3VudCgpXSAoKSBtdXRh
YmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBvbGRPcmlnaW4gPSBvbGRPcmlnaW4uaXNvbGF0ZWRDb3B5KCksIG5ld09yaWdpbiA9IG5ld09y
aWdpbi5pc29sYXRlZENvcHkoKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0
YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwogICAgICAgICBtX3NlcnZlci0+cmVu
YW1lT3JpZ2luKG9sZE9yaWdpbiwgbmV3T3JpZ2luKTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShD
cm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gV1RG
TW92ZSh0b2tlbildKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAg
ICB9KSk7CisgICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFdURk1vdmUoY2Fs
bGJhY2spKSk7CiAgICAgfSk7CiB9CiAKQEAgLTM3NywyMCArMzc1LDE2IEBAIHZvaWQgV2ViSURC
U2VydmVyOjpyZW1vdmVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgYXV0byogdGFrZW5Db25uZWN0
aW9uID0gbV9jb25uZWN0aW9ucy50YWtlKCZjb25uZWN0aW9uKTsKLSAgICBpZiAoIXRha2VuQ29u
bmVjdGlvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdGFrZW5Db25uZWN0aW9uLT5yZW1vdmVU
aHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYklEQlNlcnZlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKTsKKyAgICBtX2Nvbm5lY3Rpb25zLnJlbW92ZSgmY29ubmVjdGlvbik7CisgICAg
Y29ubmVjdGlvbi5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYklEQlNl
cnZlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKICAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb25uZWN0aW9uSUQgPSBjb25uZWN0aW9uLnVuaXF1
ZUlEKCldIHsKICAgICAgICAgYXV0byBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uTWFwLnRha2Uo
Y29ubmVjdGlvbklEKTsKKwogICAgICAgICBBU1NFUlQoY29ubmVjdGlvbik7CiAKICAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7CiAgICAgICAgIG1fc2VydmVyLT51
bnJlZ2lzdGVyQ29ubmVjdGlvbihjb25uZWN0aW9uLT5jb25uZWN0aW9uVG9DbGllbnQoKSk7CiAg
ICAgfSk7Ci0KLSAgICB0cnlDbG9zZSgpOwogfQogCiB2b2lkIFdlYklEQlNlcnZlcjo6cG9zdFRh
c2soRnVuY3Rpb248dm9pZCgpPiYmIHRhc2spCkBAIC00MjYsMTYgKzQyMCw0IEBAIHZvaWQgV2Vi
SURCU2VydmVyOjpjbG9zZSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVyOjp0cnlD
bG9zZSgpCi17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb25zLmlzRW1wdHkoKSB8fCBtX2RhdGFUYXNr
Q291bnRlci52YWx1ZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIW1fY2xvc2VDYWxs
YmFjaykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY2xvc2UoKTsKLSAgICBtX2Nsb3NlQ2FsbGJh
Y2soKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCmluZGV4IGZmMWIxYjZk
OTQ3YjgxNDE2YjFlNDU3Y2IxY2NhMWI4OTZjOGI0MjMuLjI1NmUyOTU2NTBhNjIwZDgzY2Y1Y2E4
N2E4YmMwY2MzMTE0YTFkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9JREJTZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VRdW90YU1h
bmFnZXIuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFN0b3Jh
Z2VRdW90YU1hbmFnZXI7CkBAIC00NCw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBXZWJJREJTZXJ2ZXIgZmluYWwgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlciwg
cHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJJREJTZXJ2ZXI+IGNyZWF0ZShQQUw6OlNlc3Np
b25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2Vy
dmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKKyAgICBzdGF0aWMgUmVmPFdlYklEQlNlcnZlcj4gY3JlYXRlKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmKTsKIAogICAgIHZv
aWQgZ2V0T3JpZ2lucyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZUFuZERlbGV0ZURhdGFiYXNl
c01vZGlmaWVkU2luY2UoV2FsbFRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxs
YmFjayk7CkBAIC04NywyNyArODYsMjAgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAgICB2b2lkIGRpc3Bh
dGNoVG9UaHJlYWQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpOworICAgIHZvaWQgY2xvc2UoKTsK
IAorICAgIGJvb2wgaGFzQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuICFtX2Nvbm5lY3Rpb25z
LmlzRW1wdHkoKTsgfQogcHJpdmF0ZToKLSAgICBXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6
U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisgICAgV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1h
bmFnZXJTcGFjZVJlcXVlc3RlciYmKTsKICAgICB+V2ViSURCU2VydmVyKCk7CiAKICAgICB2b2lk
IHBvc3RUYXNrKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKIAotICAgIHZvaWQgY2xvc2UoKTsK
LSAgICB2b2lkIHRyeUNsb3NlKCk7Ci0KICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SURC
U2VydmVyOjpJREJTZXJ2ZXI+IG1fc2VydmVyOwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZh
bHNlIH07CiAKICAgICBIYXNoTWFwPElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIHN0ZDo6dW5p
cXVlX3B0cjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+PiBtX2Nvbm5lY3Rpb25NYXA7CiAgICAg
SGFzaFNldDxJUEM6OkNvbm5lY3Rpb24qPiBtX2Nvbm5lY3Rpb25zOwotCi0gICAgZW51bSBEYXRh
VGFza0NvdW50ZXJUeXBlIHsgfTsKLSAgICB1c2luZyBEYXRhVGFza0NvdW50ZXIgPSBSZWZDb3Vu
dGVyPERhdGFUYXNrQ291bnRlclR5cGU+OwotICAgIHVzaW5nIERhdGFUYXNrQ291bnRlclRva2Vu
ID0gRGF0YVRhc2tDb3VudGVyOjpUb2tlbjsKLSAgICBEYXRhVGFza0NvdW50ZXIgbV9kYXRhVGFz
a0NvdW50ZXI7Ci0gICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiBtX2Nsb3NlQ2FsbGJhY2s7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggNzlhM2RkNzg2Y2ZkOTA5OWNlMjUzYzc5NmQzZTg4MDdmNzU0NzMzNi4uMDUxNTUwZTc3
N2U1MDdhM2FkYTczYzFiZTkyOTgyNzUwMTdhMjBiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKQEAgLTEyNDEsMTAgKzEyNDEsNiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpwcmlvcml0aXplUmVzb3VyY2VMb2FkcyhWZWN0b3I8UmVzb3VyY2VMb2FkSQogICAg
IHNlc3Npb24tPm5ldHdvcmtMb2FkU2NoZWR1bGVyKCkucHJpb3JpdGl6ZUxvYWRzKGxvYWRzKTsK
IH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YWRkSURCQ29ubmVjdGlv
bigpCi17Ci0gICAgbV9uZXR3b3JrUHJvY2Vzcy0+d2ViSURCU2VydmVyKG1fc2Vzc2lvbklEKS5h
ZGRDb25uZWN0aW9uKG1fY29ubmVjdGlvbi5nZXQoKSwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcik7
Ci19CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5k
ZXggMjgxNWVkZWM3M2RiNWI5Yzc0ZWUyODY0MWZiYTNmYjQ3MjQ2ZmRkMi4uMmVjN2QxMWNhMGVh
OTQwMmE0Y2E3YTkyOGM3M2Q4M2IxZTZlZjJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApA
QCAtMTg2LDggKzE4Niw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYnJvYWRjYXN0Q29uc29sZU1l
c3NhZ2UoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKTsKIAotICAgIHZvaWQgYWRkSURCQ29ubmVjdGlvbigpOwotCiBwcml2YXRlOgog
ICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpp
bmRleCAwN2JmY2U0NDkxY2Q1MzA2YjRmYWEyOGJjNGM4NWE1M2NlZjBlYWI3Li5hMDk4NDEyYTVm
M2Q1NWZlMzg0OGIyMjNmOWRmZmE5OGMzNjYxNGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTEwNyw2ICsxMDcsNCBAQCBtZXNzYWdlcyAtPiBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKICAgICBT
ZXRSZXNvdXJjZUxvYWRTY2hlZHVsaW5nTW9kZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpMb2FkU2NoZWR1bGluZ01vZGUgbW9kZSkKICAg
ICBQcmlvcml0aXplUmVzb3VyY2VMb2FkcyhWZWN0b3I8dWludDY0X3Q+IGxvYWRJZGVudGlmaWVy
cykKLQotICAgIEFkZElEQkNvbm5lY3Rpb24oKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA1NmMwNjI3MDVlNjNhNzU4ODZiYWEw
YzZhOGI4YmZiNTM1ODVjZDM1Li4wM2YyOTUxMjAzNmY5YmQzNjU3YTg3M2NhZTg4NDhmYTY4NDdh
N2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcApAQCAtMzkxLDYgKzM5MSw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNyZWF0ZU5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFByb2Nlc3NJZGVudGlmaWVyIGlkZW50CiAgICAgY29u
bmVjdGlvbi5zZXRPbkxpbmVTdGF0ZShOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2luZ2xldG9uKCku
b25MaW5lKCkpOwogCiAgICAgbV9zdG9yYWdlTWFuYWdlclNldC0+YWRkQ29ubmVjdGlvbihjb25u
ZWN0aW9uLmNvbm5lY3Rpb24oKSk7CisKKyAgICB3ZWJJREJTZXJ2ZXIoc2Vzc2lvbklEKS5hZGRD
b25uZWN0aW9uKGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLCBpZGVudGlmaWVyKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJDYWNoZWRDcmVkZW50aWFscyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCkBAIC01NTAsNiArNTUyLDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJv
eVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2VuZGlmCiAKICAgICBtX3N0b3Jh
Z2VNYW5hZ2VyU2V0LT5yZW1vdmUoc2Vzc2lvbklEKTsKKworICAgIHJlbW92ZVdlYklEQlNlcnZl
cklmUG9zc2libGUoc2Vzc2lvbklEKTsKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCkBAIC0yMzI2LDE1ICsyMzMwLDEwIEBAIFJlZjxXZWJJREJTZXJ2ZXI+IE5ldHdv
cmtQcm9jZXNzOjpjcmVhdGVXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ICAgICAgICBwYXRoID0gbV9pZGJEYXRhYmFzZVBhdGhzLmdldChzZXNzaW9uSUQpOwogICAgIH0K
IAotICAgIGF1dG8gc3BhY2VSZXF1ZXN0ZXIgPSBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKSwgc2Vzc2lvbklEXShjb25zdCBhdXRvJiBvcmlnaW4sIHVpbnQ2NF90IHNwYWNlUmVx
dWVzdGVkKSB7CisgICAgcmV0dXJuIFdlYklEQlNlcnZlcjo6Y3JlYXRlKHNlc3Npb25JRCwgcGF0
aCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHNlc3Npb25JRF0oY29uc3Qg
YXV0byYgb3JpZ2luLCB1aW50NjRfdCBzcGFjZVJlcXVlc3RlZCkgewogICAgICAgICBSZWZQdHI8
U3RvcmFnZVF1b3RhTWFuYWdlcj4gc3RvcmFnZVF1b3RhTWFuYWdlciA9IHdlYWtUaGlzID8gdGhp
cy0+c3RvcmFnZVF1b3RhTWFuYWdlcihzZXNzaW9uSUQsIG9yaWdpbikgOiBudWxscHRyOwogICAg
ICAgICByZXR1cm4gc3RvcmFnZVF1b3RhTWFuYWdlciA/IHN0b3JhZ2VRdW90YU1hbmFnZXItPnJl
cXVlc3RTcGFjZU9uQmFja2dyb3VuZFRocmVhZChzcGFjZVJlcXVlc3RlZCkgOiBTdG9yYWdlUXVv
dGFNYW5hZ2VyOjpEZWNpc2lvbjo6RGVueTsKLSAgICB9OwotICAgIGF1dG8gY2xvc2VIYW5kbGVy
ID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHNlc3Npb25JRF0oKSB7Ci0gICAgICAg
IGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtUaGlzLT5tX3dlYklEQlNlcnZlcnMucmVt
b3ZlKHNlc3Npb25JRCk7Ci0gICAgfTsKLSAgICByZXR1cm4gV2ViSURCU2VydmVyOjpjcmVhdGUo
c2Vzc2lvbklELCBwYXRoLCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSwgV1RGTW92ZShjbG9zZUhh
bmRsZXIpKTsKKyAgICB9KTsKIH0KIAogV2ViSURCU2VydmVyJiBOZXR3b3JrUHJvY2Vzczo6d2Vi
SURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKQEAgLTIzNjQsNiArMjM2MywyNCBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcklEQlJv
b3RQYXRoKFBBTDo6U2Vzc2lvbklEIHNlcwogICAgIHNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2Vy
LT5zZXRJREJSb290UGF0aChpZGJSb290UGF0aCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6
OnJlbW92ZVdlYklEQlNlcnZlcklmUG9zc2libGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQor
eworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBhdXRvIGl0ZXJhdG9yID0g
bV93ZWJJREJTZXJ2ZXJzLmZpbmQoc2Vzc2lvbklEKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV93
ZWJJREJTZXJ2ZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9uZXR3b3Jr
U2Vzc2lvbnMuY29udGFpbnMoc2Vzc2lvbklEKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KGl0ZXJhdG9yLT52YWx1ZS0+aGFzQ29ubmVjdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpdGVyYXRvci0+dmFsdWUtPmNsb3NlKCk7CisgICAgbV93ZWJJREJTZXJ2ZXJzLnJlbW92ZShp
dGVyYXRvcik7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnN5bmNMb2NhbFN0b3JhZ2UoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fc3Rv
cmFnZU1hbmFnZXJTZXQtPndhaXRVbnRpbFN5bmNpbmdMb2NhbFN0b3JhZ2VGaW5pc2hlZCgpOwpA
QCAtMjY1MCw4ICsyNjY3LDEwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NDbG9zZWQoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQCiB7CiAgICAgbV9z
dG9yYWdlTWFuYWdlclNldC0+cmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIAotICAgIGlm
IChhdXRvKiBzZXJ2ZXIgPSBtX3dlYklEQlNlcnZlcnMuZ2V0KHNlc3Npb25JRCkpCi0gICAgICAg
IHNlcnZlci0+cmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKKyAgICBhdXRvKiB3ZWJJREJT
ZXJ2ZXIgPSBtX3dlYklEQlNlcnZlcnMuZ2V0KHNlc3Npb25JRCk7CisgICAgQVNTRVJUKHdlYklE
QlNlcnZlcik7CisgICAgd2ViSURCU2VydmVyLT5yZW1vdmVDb25uZWN0aW9uKGNvbm5lY3Rpb24p
OworICAgIHJlbW92ZVdlYklEQlNlcnZlcklmUG9zc2libGUoc2Vzc2lvbklEKTsKIH0KIAogTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIE5ldHdvcmtQcm9jZXNzOjp3ZWJQcm9jZXNzQ29u
bmVjdGlvbihQcm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKaW5kZXggZTM5ZTFjNDUyYmVkNjlj
YzE0YWY0Y2NhNzdhMjA0NjM4NzA5ZjA0ZS4uZjA2Mjk3NWU0MzA1MjVjOWFkOWZiZGMzNWVmNjA1
OTdkNmFmZjA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwCkBAIC01OSw3ICs1OSw2IEBAIFJlZjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKCkKIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKCkKICAgICA6IG1fY29ubmVjdGlvblRvU2VydmVy
KElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGUoKnRoaXMpKQogewotICAg
IHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpBZGRJREJDb25u
ZWN0aW9uKCkpOwogfQogCiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6On5XZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXIoKQo=
</data>
<flag name="commit-queue"
          id="445721"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425686</attachid>
            <date>2021-04-10 09:48:14 -0700</date>
            <delta_ts>2021-04-12 08:28:39 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-224305-20210410094813.patch</filename>
            <type>text/plain</type>
            <size>15516</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Nzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYzOGM4ZGRhMzQ5OWQ3M2Vk
YzRmNzI2NzIwZDRlYzE2YTk0NWMzNjIuLjdiNTU0YjgxYjM1MDZkNmY1MTY0MTc5OTZhYmEyMjJl
ZmU3Njk2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDQtMTAgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5n
IHIyNzU3OTQsIHIyNzU3ODQsIHIyNzU3NzkKKworICAgICAgICByMjc1Nzc5IGNhdXNlZCBib3Rz
IHRvIGNyYXNoIGFuZCByMjc1Nzk0LCByMjc1Nzg0IGRpZG4ndCBmdWxseSBmaXggaXQ7IHJldmVy
dGluZyB0aGUgcGF0Y2hlcyB0byBpbnZlc3RpZ2F0ZS4KKworICAgICAgICBSZXZlcnRlZCBjaGFu
Z2VzZXQ6CisKKyAgICAgICAgIkNyZWF0ZSBXZWJJREJTZXJ2ZXIgb25seSB3aGVuIGl0IGlzIG5l
ZWRlZCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDMwNQorICAgICAgICBodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9yMjc1Nzc5CisKIDIwMjEt
MDQtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgZml4IHRlc3QgY3Jhc2hlcyBhZnRlciByMjc1Nzc5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAppbmRleCA3
M2YwYzRiNzJhOGY0ZTNjOTMyZDhiMjU0NWM3NjNhYmEzMmVhODYxLi5kMjFlNTcxZWIxN2UxZTcz
NzM3MmI5NDUzNjBlOTVhNTkzOTA2NWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTM0LDE4ICszNCwx
MyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPFdlYklEQlNlcnZlcj4gV2ViSURCU2Vy
dmVyOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVj
dG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJT
cGFjZVJlcXVlc3RlciYmIHNwYWNlUmVxdWVzdGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY2FsbGJhY2spCitSZWY8V2ViSURCU2VydmVyPiBXZWJJREJTZXJ2ZXI6OmNyZWF0ZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYg
c3BhY2VSZXF1ZXN0ZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURCU2VydmVy
KHNlc3Npb25JRCwgZGlyZWN0b3J5LCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSwgV1RGTW92ZShj
YWxsYmFjaykpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJTZXJ2ZXIoc2Vzc2lv
bklELCBkaXJlY3RvcnksIFdURk1vdmUoc3BhY2VSZXF1ZXN0ZXIpKSk7CiB9CiAKLVdlYklEQlNl
cnZlcjo6V2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFN
YW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJlcXVlc3RlciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNhbGxiYWNrKQorV2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2Vy
dmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmIHNwYWNl
UmVxdWVzdGVyKQogICAgIDogQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlcigiY29tLmFwcGxlLldlYktp
dC5JbmRleGVkREJTZXJ2ZXIiLCBXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRsZXI6OkF1dG9kcmFp
bmVkUG9vbEZvclJ1bkxvb3A6OlVzZSkKLSAgICAsIG1fZGF0YVRhc2tDb3VudGVyKFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKHRoaXMpXShSZWZDb3VudGVyRXZlbnQpIHsKLSAgICAgICAgaWYgKHdl
YWtUaGlzKQotICAgICAgICAgICAgd2Vha1RoaXMtPnRyeUNsb3NlKCk7Ci0gICAgfSkKLSAgICAs
IG1fY2xvc2VDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogCkBAIC02NiwxMSArNjEsMTEgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6Omdl
dE9yaWdpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5
T3IKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKSwgdG9rZW4gPSBtX2RhdGFUYXNrQ291bnRlci5jb3VudCgpXSgpIG11dGFibGUgewor
ICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5s
b2NrKCkpOwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBXVEZNb3ZlKHRva2VuKSwgb3JpZ2lucyA9IGNy
b3NzVGhyZWFkQ29weShtX3NlcnZlci0+Z2V0T3JpZ2lucygpKV0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayksIG9yaWdpbnMgPSBjcm9zc1RocmVhZENvcHkobV9zZXJ2ZXItPmdldE9yaWdpbnMoKSld
KCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKG9yaWdpbnMpKTsKICAg
ICAgICAgfSkpOwogICAgIH0pOwpAQCAtODAsMTIgKzc1LDEyIEBAIHZvaWQgV2ViSURCU2VydmVy
OjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRpbWUgbW9kaWZpY2F0
aW9uVGltCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHBvc3RUYXNr
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1vZGlmaWNhdGlvblRpbWUs
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gbV9kYXRhVGFza0NvdW50ZXIu
Y291bnQoKV0oKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBtb2RpZmljYXRpb25UaW1lLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
IAogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKICAgICAgICAg
bV9zZXJ2ZXItPmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShtb2RpZmljYXRp
b25UaW1lKTsKLSAgICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gV1RGTW92ZSh0b2tlbildKCkgbXV0YWJsZSB7
CisgICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spXSgpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAg
ICAgfSkpOwogICAgIH0pOwpAQCAtOTUsMTIgKzkwLDEyIEBAIHZvaWQgV2ViSURCU2VydmVyOjpj
bG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNl
Y3VyCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHBvc3RUYXNrKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG9yaWdpbkRhdGFzID0gb3JpZ2lu
RGF0YXMuaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2Vu
ID0gbV9kYXRhVGFza0NvdW50ZXIuY291bnQoKV0gKCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2so
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb3JpZ2luRGF0YXMgPSBvcmln
aW5EYXRhcy5pc29sYXRlZENvcHkoKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkg
bXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwogICAgICAgICBtX3NlcnZlci0+
Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKG9yaWdpbkRhdGFzKTsKLSAgICAgICAg
cG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayksIHRva2VuID0gV1RGTW92ZSh0b2tlbildKCkgbXV0YWJsZSB7CisgICAgICAgIHBvc3RUYXNr
UmVwbHkoQ3Jvc3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11
dGFibGUgewogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgfSkpOwogICAgIH0pOwpA
QCAtMTEwLDE0ICsxMDUsMTIgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbmFtZU9yaWdpbihjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY28KIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgb2xkT3JpZ2luID0gb2xkT3JpZ2luLmlzb2xhdGVkQ29weSgp
LCBuZXdPcmlnaW4gPSBuZXdPcmlnaW4uaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayksIHRva2VuID0gbV9kYXRhVGFza0NvdW50ZXIuY291bnQoKV0gKCkgbXV0YWJs
ZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
b2xkT3JpZ2luID0gb2xkT3JpZ2luLmlzb2xhdGVkQ29weSgpLCBuZXdPcmlnaW4gPSBuZXdPcmln
aW4uaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFi
bGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKICAgICAgICAgbV9zZXJ2ZXItPnJlbmFt
ZU9yaWdpbihvbGRPcmlnaW4sIG5ld09yaWdpbik7Ci0gICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jv
c3NUaHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9IFdURk1v
dmUodG9rZW4pXSgpIG11dGFibGUgewotICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAg
fSkpOworICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhXVEZNb3ZlKGNhbGxi
YWNrKSkpOwogICAgIH0pOwogfQogCkBAIC0zNzcsMjAgKzM3MCwxNiBAQCB2b2lkIFdlYklEQlNl
cnZlcjo6cmVtb3ZlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGF1dG8qIHRha2VuQ29ubmVjdGlv
biA9IG1fY29ubmVjdGlvbnMudGFrZSgmY29ubmVjdGlvbik7Ci0gICAgaWYgKCF0YWtlbkNvbm5l
Y3Rpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIHRha2VuQ29ubmVjdGlvbi0+cmVtb3ZlVGhy
ZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSk7CisgICAgbV9jb25uZWN0aW9ucy5yZW1vdmUoJmNvbm5lY3Rpb24pOworICAgIGNv
bm5lY3Rpb24ucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJREJTZXJ2
ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiAgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29ubmVjdGlvbklEID0gY29ubmVjdGlvbi51bmlxdWVJ
RCgpXSB7CiAgICAgICAgIGF1dG8gY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC50YWtlKGNv
bm5lY3Rpb25JRCk7CisKICAgICAgICAgQVNTRVJUKGNvbm5lY3Rpb24pOwogCiAgICAgICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwogICAgICAgICBtX3NlcnZlci0+dW5y
ZWdpc3RlckNvbm5lY3Rpb24oY29ubmVjdGlvbi0+Y29ubmVjdGlvblRvQ2xpZW50KCkpOwogICAg
IH0pOwotCi0gICAgdHJ5Q2xvc2UoKTsKIH0KIAogdm9pZCBXZWJJREJTZXJ2ZXI6OnBvc3RUYXNr
KEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQpAQCAtNDI2LDE2ICs0MTUsNCBAQCB2b2lkIFdlYklE
QlNlcnZlcjo6Y2xvc2UoKQogICAgIH0pOwogfQogCi12b2lkIFdlYklEQlNlcnZlcjo6dHJ5Q2xv
c2UoKQotewotICAgIGlmICghbV9jb25uZWN0aW9ucy5pc0VtcHR5KCkgfHwgbV9kYXRhVGFza0Nv
dW50ZXIudmFsdWUoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFtX2Nsb3NlQ2FsbGJh
Y2spCi0gICAgICAgIHJldHVybjsKLQotICAgIGNsb3NlKCk7Ci0gICAgbV9jbG9zZUNhbGxiYWNr
KCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAppbmRleCBmZjFiMWI2ZDk0
N2I4MTQxNmIxZTQ1N2NiMWNjYTFiODk2YzhiNDIzLi4yNTZlMjk1NjUwYTYyMGQ4M2NmNWNhODdh
OGJjMGNjMzExNGExZDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvSURCU2VydmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yYWdlUXVvdGFNYW5h
Z2VyLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuaD4KLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTdG9yYWdl
UXVvdGFNYW5hZ2VyOwpAQCAtNDQsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgV2ViSURCU2VydmVyIGZpbmFsIDogcHVibGljIENyb3NzVGhyZWFkVGFza0hhbmRsZXIsIHB1
YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViSURCU2VydmVyPiBjcmVhdGUoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZl
cjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVyJiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CisgICAgc3RhdGljIFJlZjxXZWJJREJTZXJ2ZXI+IGNyZWF0ZShQQUw6OlNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURC
U2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJik7CiAKICAgICB2b2lk
IGdldE9yaWdpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YT4mJik+JiYpOwogICAgIHZvaWQgY2xvc2VBbmREZWxldGVEYXRhYmFzZXNN
b2RpZmllZFNpbmNlKFdhbGxUaW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJh
Y2spOwpAQCAtODcsMjcgKzg2LDIwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAgdm9pZCBkaXNwYXRj
aFRvVGhyZWFkKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICB2b2lkIGNsb3NlKCk7CiAK
KyAgICBib29sIGhhc0Nvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiAhbV9jb25uZWN0aW9ucy5p
c0VtcHR5KCk7IH0KIHByaXZhdGU6Ci0gICAgV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0
b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOworICAgIFdlYklEQlNlcnZlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBk
aXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5h
Z2VyU3BhY2VSZXF1ZXN0ZXImJik7CiAgICAgfldlYklEQlNlcnZlcigpOwogCiAgICAgdm9pZCBw
b3N0VGFzayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKLSAgICB2b2lkIGNsb3NlKCk7Ci0g
ICAgdm9pZCB0cnlDbG9zZSgpOwotCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklEQlNl
cnZlcjo6SURCU2VydmVyPiBtX3NlcnZlcjsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxz
ZSB9OwogCiAgICAgSGFzaE1hcDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pj4gbV9jb25uZWN0aW9uTWFwOwogICAgIEhh
c2hTZXQ8SVBDOjpDb25uZWN0aW9uKj4gbV9jb25uZWN0aW9uczsKLQotICAgIGVudW0gRGF0YVRh
c2tDb3VudGVyVHlwZSB7IH07Ci0gICAgdXNpbmcgRGF0YVRhc2tDb3VudGVyID0gUmVmQ291bnRl
cjxEYXRhVGFza0NvdW50ZXJUeXBlPjsKLSAgICB1c2luZyBEYXRhVGFza0NvdW50ZXJUb2tlbiA9
IERhdGFUYXNrQ291bnRlcjo6VG9rZW47Ci0gICAgRGF0YVRhc2tDb3VudGVyIG1fZGF0YVRhc2tD
b3VudGVyOwotICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gbV9jbG9zZUNhbGxiYWNrOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDc5YTNkZDc4NmNmZDkwOTljZTI1M2M3OTZkM2U4ODA3Zjc1NDczMzYuLjA1MTU1MGU3Nzdl
NTA3YTNhZGE3M2MxYmU5Mjk4Mjc1MDE3YTIwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCkBAIC0xMjQxLDEwICsxMjQxLDYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6cHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPFJlc291cmNlTG9hZEkKICAgICBz
ZXNzaW9uLT5uZXR3b3JrTG9hZFNjaGVkdWxlcigpLnByaW9yaXRpemVMb2Fkcyhsb2Fkcyk7CiB9
CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmFkZElEQkNvbm5lY3Rpb24o
KQotewotICAgIG1fbmV0d29ya1Byb2Nlc3MtPndlYklEQlNlcnZlcihtX3Nlc3Npb25JRCkuYWRk
Q29ubmVjdGlvbihtX2Nvbm5lY3Rpb24uZ2V0KCksIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIpOwot
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4
IDI4MTVlZGVjNzNkYjViOWM3NGVlMjg2NDFmYmEzZmI0NzI0NmZkZDIuLjJlYzdkMTFjYTBlYTk0
MDJhNGNhN2E5MjhjNzNkODNiMWU2ZWYyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAg
LTE4Niw4ICsxODYsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGJyb2FkY2FzdENvbnNvbGVNZXNz
YWdlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSk7CiAKLSAgICB2b2lkIGFkZElEQkNvbm5lY3Rpb24oKTsKLQogcHJpdmF0ZToKICAg
ICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCwgSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5k
ZXggMDdiZmNlNDQ5MWNkNTMwNmI0ZmFhMjhiYzRjODVhNTNjZWYwZWFiNy4uYTA5ODQxMmE1ZjNk
NTVmZTM4NDhiMjIzZjlkZmZhOThjMzY2MTRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMDcsNiArMTA3LDQgQEAgbWVzc2FnZXMgLT4gTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAgICAgU2V0
UmVzb3VyY2VMb2FkU2NoZWR1bGluZ01vZGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TG9hZFNjaGVkdWxpbmdNb2RlIG1vZGUpCiAgICAg
UHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPHVpbnQ2NF90PiBsb2FkSWRlbnRpZmllcnMp
Ci0KLSAgICBBZGRJREJDb25uZWN0aW9uKCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNTZjMDYyNzA1ZTYzYTc1ODg2YmFhMGM2
YThiOGJmYjUzNTg1Y2QzNS4uMDNmMjk1MTIwMzZmOWJkMzY1N2E4NzNjYWU4ODQ4ZmE2ODQ3YTdm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKQEAgLTM5MSw2ICszOTEsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmllciBpZGVudAogICAgIGNvbm5l
Y3Rpb24uc2V0T25MaW5lU3RhdGUoTmV0d29ya1N0YXRlTm90aWZpZXI6OnNpbmdsZXRvbigpLm9u
TGluZSgpKTsKIAogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQtPmFkZENvbm5lY3Rpb24oY29ubmVj
dGlvbi5jb25uZWN0aW9uKCkpOworCisgICAgd2ViSURCU2VydmVyKHNlc3Npb25JRCkuYWRkQ29u
bmVjdGlvbihjb25uZWN0aW9uLmNvbm5lY3Rpb24oKSwgaWRlbnRpZmllcik7CiB9CiAKIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQpAQCAtNTUwLDYgKzU1Miw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICNlbmRpZgogCiAgICAgbV9zdG9yYWdl
TWFuYWdlclNldC0+cmVtb3ZlKHNlc3Npb25JRCk7CisKKyAgICByZW1vdmVXZWJJREJTZXJ2ZXJJ
ZlBvc3NpYmxlKHNlc3Npb25JRCk7CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQpAQCAtMjMyNiwxNSArMjMzMCwxMCBAQCBSZWY8V2ViSURCU2VydmVyPiBOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAg
ICAgICAgcGF0aCA9IG1faWRiRGF0YWJhc2VQYXRocy5nZXQoc2Vzc2lvbklEKTsKICAgICB9CiAK
LSAgICBhdXRvIHNwYWNlUmVxdWVzdGVyID0gW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyksIHNlc3Npb25JRF0oY29uc3QgYXV0byYgb3JpZ2luLCB1aW50NjRfdCBzcGFjZVJlcXVl
c3RlZCkgeworICAgIHJldHVybiBXZWJJREJTZXJ2ZXI6OmNyZWF0ZShzZXNzaW9uSUQsIHBhdGgs
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzZXNzaW9uSURdKGNvbnN0IGF1
dG8mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQpIHsKICAgICAgICAgUmVmUHRyPFN0
b3JhZ2VRdW90YU1hbmFnZXI+IHN0b3JhZ2VRdW90YU1hbmFnZXIgPSB3ZWFrVGhpcyA/IHRoaXMt
PnN0b3JhZ2VRdW90YU1hbmFnZXIoc2Vzc2lvbklELCBvcmlnaW4pIDogbnVsbHB0cjsKICAgICAg
ICAgcmV0dXJuIHN0b3JhZ2VRdW90YU1hbmFnZXIgPyBzdG9yYWdlUXVvdGFNYW5hZ2VyLT5yZXF1
ZXN0U3BhY2VPbkJhY2tncm91bmRUaHJlYWQoc3BhY2VSZXF1ZXN0ZWQpIDogU3RvcmFnZVF1b3Rh
TWFuYWdlcjo6RGVjaXNpb246OkRlbnk7Ci0gICAgfTsKLSAgICBhdXRvIGNsb3NlSGFuZGxlciA9
IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzZXNzaW9uSURdKCkgewotICAgICAgICBp
ZiAod2Vha1RoaXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+bV93ZWJJREJTZXJ2ZXJzLnJlbW92
ZShzZXNzaW9uSUQpOwotICAgIH07Ci0gICAgcmV0dXJuIFdlYklEQlNlcnZlcjo6Y3JlYXRlKHNl
c3Npb25JRCwgcGF0aCwgV1RGTW92ZShzcGFjZVJlcXVlc3RlciksIFdURk1vdmUoY2xvc2VIYW5k
bGVyKSk7CisgICAgfSk7CiB9CiAKIFdlYklEQlNlcnZlciYgTmV0d29ya1Byb2Nlc3M6OndlYklE
QlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCkBAIC0yMzY0LDYgKzIzNjMsMjQgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXJJREJSb290
UGF0aChQQUw6OlNlc3Npb25JRCBzZXMKICAgICBzZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlci0+
c2V0SURCUm9vdFBhdGgoaWRiUm9vdFBhdGgpOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpy
ZW1vdmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK3sK
KyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBpdGVyYXRvciA9IG1f
d2ViSURCU2VydmVycy5maW5kKHNlc3Npb25JRCk7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fd2Vi
SURCU2VydmVycy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fbmV0d29ya1Nl
c3Npb25zLmNvbnRhaW5zKHNlc3Npb25JRCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChp
dGVyYXRvci0+dmFsdWUtPmhhc0Nvbm5lY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aXRlcmF0b3ItPnZhbHVlLT5jbG9zZSgpOworICAgIG1fd2ViSURCU2VydmVycy5yZW1vdmUoaXRl
cmF0b3IpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzeW5jTG9jYWxTdG9yYWdlKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3N0b3Jh
Z2VNYW5hZ2VyU2V0LT53YWl0VW50aWxTeW5jaW5nTG9jYWxTdG9yYWdlRmluaXNoZWQoKTsKQEAg
LTI2NTAsOCArMjY2NywxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjb25uZWN0aW9uVG9XZWJQ
cm9jZXNzQ2xvc2VkKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUAogewogICAgIG1fc3Rv
cmFnZU1hbmFnZXJTZXQtPnJlbW92ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiAKLSAgICBpZiAo
YXV0byogc2VydmVyID0gbV93ZWJJREJTZXJ2ZXJzLmdldChzZXNzaW9uSUQpKQotICAgICAgICBz
ZXJ2ZXItPnJlbW92ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CisgICAgYXV0byogd2ViSURCU2Vy
dmVyID0gbV93ZWJJREJTZXJ2ZXJzLmdldChzZXNzaW9uSUQpOworICAgIEFTU0VSVCh3ZWJJREJT
ZXJ2ZXIpOworICAgIHdlYklEQlNlcnZlci0+cmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9uKTsK
KyAgICByZW1vdmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKHNlc3Npb25JRCk7CiB9CiAKIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBOZXR3b3JrUHJvY2Vzczo6d2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcikgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IGUzOWUxYzQ1MmJlZDY5Y2Mx
NGFmNGNjYTc3YTIwNDYzODcwOWYwNGUuLmYwNjI5NzVlNDMwNTI1YzlhZDlmYmRjMzVlZjYwNTk3
ZDZhZmYwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
LmNwcApAQCAtNTksNyArNTksNiBAQCBSZWY8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZSgpCiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcigpCiAgICAgOiBtX2Nvbm5lY3Rpb25Ub1NlcnZlcihJ
REJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKCp0aGlzKSkKIHsKLSAgICBz
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QWRkSURCQ29ubmVj
dGlvbigpKTsKIH0KIAogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjp+V2ViSURCQ29ubmVjdGlv
blRvU2VydmVyKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425748</attachid>
            <date>2021-04-12 08:28:41 -0700</date>
            <delta_ts>2021-04-12 16:43:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224305-20210412082840.patch</filename>
            <type>text/plain</type>
            <size>19121</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdiNTU0YjgxYjM1MDZkNmY1
MTY0MTc5OTZhYmEyMjJlZmU3Njk2ZTIuLjRjNzcyNzA0ZWFmMDc2NjhhZTkxNzBjOWY1MWEzNGFi
YTViZjYzODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjEtMDQtMTIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIFdlYklEQlNlcnZlciBv
bmx5IHdoZW4gaXQgaXMgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjQzMDUKKyAgICAgICAgcmRhcjovLzcxOTYyMTk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IGVhY2ggV2Vi
SURCU2VydmVyIGhhcyBhIHNlcGFyYXRlIHRocmVhZCwgc28gd2UgZG9uJ3Qgd2FudCB0byBjcmVh
dGUgb3Iga2VlcCBXZWJJREJTZXJ2ZXIgaWYgaXQncyBub3QgCisgICAgICAgIGluIHVzZS4gVGhl
cmUgYXJlIHR3byBjYXNlcyB3aGVyZSBuZXR3b3JrIHByb2Nlc3MgbmVlZHMgYSBXZWJJREJTZXJ2
ZXI6CisgICAgICAgIDEuIGhhbmRsZSByZXF1ZXN0cyBmcm9tIFVJIHByb2Nlc3MgdG8gY29sbGVj
dCBvciByZW1vdmUgZGF0YQorICAgICAgICAyLiBoYW5kbGUgcmVxdWVzdHMgZnJvbSBXZWIgcHJv
Y2VzcyB0byBwZXJmb3JtIElEQiBvcGVyYXRpb25zIAorCisgICAgICAgIFByZXZpb3VzbHksIHdl
IGNyZWF0ZWQgYSBXZWJJREJTZXJ2ZXIgd2hlbiBuZXR3b3JrIHByb2Nlc3MgY29ubmVjdHMgdG8g
YSB3ZWIgcHJvY2VzcywgYnV0IHRoYXQgZG9lcyBub3QgbWVhbiB3ZWIKKyAgICAgICAgcHJvY2Vz
cyB3aWxsIHBlcmZvcm0gSURCIG9wZXJhdGlvbnMgYW5kIHdlIG1heSBjcmVhdGUgYSB0aHJlYWQg
dGhhdCdzIG5vdCB1c2VkLiBUbyBhdm9pZCB0aGlzLCBhZGQgYSBuZXcgbWVzc2FnZQorICAgICAg
ICBBZGRJREJDb25uZWN0aW9uIGZvciB3ZWIgcHJvY2VzcyB0byBlbnN1cmUgbmV0d29yayBwcm9j
ZXNzIGhhcyBXZWJJREJTZXJ2ZXIgd2hlbiBpdCdzIGFib3V0IHRvIHBlcmZvcm0gb3BlcmF0aW9u
LgorCisgICAgICAgIEFsc28sIHByZXZpb3VzbHkgbmV0d29yayBwcm9jZXNzIHJlbW92ZXMgYSBX
ZWJJREJTZXJ2ZXIgd2hlbiBzZXNzaW9uIGlzIHJlbW92ZWQgYW5kIFdlYklEQlNlcnZlciBpcyBu
b3QgYmluZGVkIAorICAgICAgICB3aXRoIGFueSB3ZWIgcHJvY2VzcyBjb25uZWN0aW9uLiBOb3cg
d2UgcmVtb3ZlIFdlYklEQlNlcnZlciB3aGVuIGl0J3MgZG9uZSBoYW5kbGluZyByZXF1ZXN0cywg
dGhhdCBpcyBjb3VudCBvZgorICAgICAgICBwZW5kaW5nIHJlcXVlc3RzIGZyb20gVUkgcHJvY2Vz
cyBpcyAwIGFuZCBXZWJJREJTZXJ2ZXIgaXMgbm90IGJpbmRlZCB3aXRoIHdlYiBwcm9jZXNzIGNv
bm5lY3Rpb24uIFdlIGFsc28gcmVtb3ZlCisgICAgICAgIFdlYklEQlNlcnZlciBhdCB3aGVuIG5l
dHdvcmsgcHJvY2VzcyBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQgKE5ldHdvcmtQcm9jZXNzOjpk
aWRDbG9zZSkgc28gd2UgY2FuIGJyZWFrIHRoZSAKKyAgICAgICAgcmVmZXJlbmNlIGN5Y2xlIG9m
IE5ldHdvcmtQcm9jZXNzLVdlYklEQlNlcnZlci1JREJTZXJ2ZXIsIGFuZCBtYWtlIHN1cmUgdGhy
ZWFkIGV4aXRzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNl
cnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0
OjptX2Nsb3NlQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6On5XZWJJ
REJTZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmdldE9yaWdpbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9k
aWZpZWRTaW5jZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Y2xvc2VBbmREZWxl
dGVEYXRhYmFzZXNGb3JPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpy
ZW5hbWVPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OnJlbW92ZUNvbm5l
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmNsb3NlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCU2VydmVyOjp0cnlDbG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmFkZElEQkNvbm5lY3Rpb24pOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24pOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlV2ViSURCU2VydmVyKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NDbG9zZWQpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlV2ViSURCU2VydmVySWZQb3NzaWJsZSk6
IERlbGV0ZWQuIE1vdmUgdGhlIHJlbW92YWwgY29kZSB0byBXZWJJREJTZXJ2ZXIuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6V2ViSURC
Q29ubmVjdGlvblRvU2VydmVyKToKKwogMjAyMS0wNC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3NTc5NCwgcjI3
NTc4NCwgcjI3NTc3OQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKaW5kZXggZDIxZTU3MWViMTdlMWU3MzczNzJiOTQ1
MzYwZTk1YTU5MzkwNjVmNy4uNmFmNTk1ZmZjMTA2NTkwZGE4MTdkNzE1NDYyNGZiMWZmNmVlNjU5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWRE
Qi9XZWJJREJTZXJ2ZXIuY3BwCkBAIC0zNCwxMyArMzQsMTUgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLVJlZjxXZWJJREJTZXJ2ZXI+IFdlYklEQlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZl
cjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFjZVJl
cXVlc3RlcikKK1JlZjxXZWJJREJTZXJ2ZXI+IFdlYklEQlNlcnZlcjo6Y3JlYXRlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNl
cnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJiBzcGFj
ZVJlcXVlc3RlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNsb3NlQ2FsbGJhY2spCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURCU2VydmVyKHNlc3Npb25JRCwgZGlyZWN0
b3J5LCBXVEZNb3ZlKHNwYWNlUmVxdWVzdGVyKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYklEQlNlcnZlcihzZXNzaW9uSUQsIGRpcmVjdG9yeSwgV1RGTW92ZShzcGFjZVJlcXVlc3Rl
ciksIFdURk1vdmUoY2xvc2VDYWxsYmFjaykpKTsKIH0KIAotV2ViSURCU2VydmVyOjpXZWJJREJT
ZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwg
V2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJl
cXVlc3RlciYmIHNwYWNlUmVxdWVzdGVyKQorV2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYm
IHNwYWNlUmVxdWVzdGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2xvc2VDYWxsYmFj
aykKICAgICA6IENyb3NzVGhyZWFkVGFza0hhbmRsZXIoImNvbS5hcHBsZS5XZWJLaXQuSW5kZXhl
ZERCU2VydmVyIiwgV1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpBdXRvZHJhaW5lZFBvb2xG
b3JSdW5Mb29wOjpVc2UpCisgICAgLCBtX2RhdGFUYXNrQ291bnRlcihbdGhpc10oUmVmQ291bnRl
ckV2ZW50KSB7IHRyeUNsb3NlKCk7IH0pCisgICAgLCBtX2Nsb3NlQ2FsbGJhY2soV1RGTW92ZShj
bG9zZUNhbGxiYWNrKSkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC01
NSwxNyArNTcsMTkgQEAgV2ViSURCU2VydmVyOjpXZWJJREJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2UKIFdlYklEQlNlcnZlcjo6fldl
YklEQlNlcnZlcigpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAvLyBj
bG9zZSgpIGhhcyB0byBiZSBjYWxsZWQgdG8gbWFrZSBzdXJlIHRocmVhZCBleGl0cy4KKyAgICBB
U1NFUlQoIW1fY2xvc2VDYWxsYmFjayk7CiB9CiAKIHZvaWQgV2ViSURCU2VydmVyOjpnZXRPcmln
aW5zKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGE+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CiAKLSAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayksIHRva2VuID0gbV9kYXRhVGFza0NvdW50ZXIuY291bnQoKV0oKSBtdXRhYmxlIHsK
ICAgICAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7Ci0gICAgICAgIHBvc3RUYXNrUmVwbHkoQ3Jvc3NU
aHJlYWRUYXNrKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBvcmlnaW5zID0gY3Jvc3NU
aHJlYWRDb3B5KG1fc2VydmVyLT5nZXRPcmlnaW5zKCkpXSgpIG11dGFibGUgeworICAgICAgICBw
b3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KSwgdG9rZW4gPSBXVEZNb3ZlKHRva2VuKSwgb3JpZ2lucyA9IGNyb3NzVGhyZWFkQ29weShtX3Nl
cnZlci0+Z2V0T3JpZ2lucygpKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNhbGxiYWNrKFdU
Rk1vdmUob3JpZ2lucykpOwogICAgICAgICB9KSk7CiAgICAgfSk7CkBAIC03NSwxMiArNzksMTIg
QEAgdm9pZCBXZWJJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5j
ZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW0KIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgbW9kaWZpY2F0aW9uVGltZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRh
YmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBtb2RpZmljYXRpb25UaW1lLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b2tlbiA9
IG1fZGF0YVRhc2tDb3VudGVyLmNvdW50KCldKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVy
LT5sb2NrKCkpOwogICAgICAgICBtX3NlcnZlci0+Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2Rp
ZmllZFNpbmNlKG1vZGlmaWNhdGlvblRpbWUpOwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3Nz
VGhyZWFkVGFzayhbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayksIHRva2VuID0gV1RGTW92ZSh0b2tlbildKCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICBjYWxsYmFjaygpOwogICAgICAgICB9KSk7CiAgICAgfSk7CkBAIC05MCwxMiArOTQsMTIgQEAg
dm9pZCBXZWJJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhjb25z
dCBWZWN0b3I8V2ViQ29yZTo6U2VjdXIKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwogCi0gICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
b3JpZ2luRGF0YXMgPSBvcmlnaW5EYXRhcy5pc29sYXRlZENvcHkoKSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb3JpZ2luRGF0YXMgPSBvcmlnaW5EYXRhcy5pc29sYXRl
ZENvcHkoKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9rZW4gPSBtX2RhdGFUYXNr
Q291bnRlci5jb3VudCgpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CiAKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7
CiAgICAgICAgIG1fc2VydmVyLT5jbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMob3Jp
Z2luRGF0YXMpOwotICAgICAgICBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFzayhbY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgcG9zdFRhc2tSZXBs
eShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0g
V1RGTW92ZSh0b2tlbildKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAg
ICAgICB9KSk7CiAgICAgfSk7CkBAIC0xMDUsMTIgKzEwOSwxNCBAQCB2b2lkIFdlYklEQlNlcnZl
cjo6cmVuYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb2xkT3Jp
Z2luLCBjbwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBwb3N0VGFz
ayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBvbGRPcmlnaW4gPSBvbGRP
cmlnaW4uaXNvbGF0ZWRDb3B5KCksIG5ld09yaWdpbiA9IG5ld09yaWdpbi5pc29sYXRlZENvcHko
KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7CisgICAgcG9zdFRh
c2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgb2xkT3JpZ2luID0gb2xk
T3JpZ2luLmlzb2xhdGVkQ29weSgpLCBuZXdPcmlnaW4gPSBuZXdPcmlnaW4uaXNvbGF0ZWRDb3B5
KCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRva2VuID0gbV9kYXRhVGFza0NvdW50
ZXIuY291bnQoKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwogICAg
ICAgICBtX3NlcnZlci0+cmVuYW1lT3JpZ2luKG9sZE9yaWdpbiwgbmV3T3JpZ2luKTsKLSAgICAg
ICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soV1RGTW92ZShjYWxsYmFjaykpKTsKKyAg
ICAgICAgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2soW2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayksIHRva2VuID0gV1RGTW92ZSh0b2tlbildKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBjYWxsYmFjaygpOworICAgICAgICB9KSk7CiAgICAgfSk7CiB9CiAKQEAgLTM3MCw4ICszNzYs
MTEgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6OnJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBt
X2Nvbm5lY3Rpb25zLnJlbW92ZSgmY29ubmVjdGlvbik7Ci0gICAgY29ubmVjdGlvbi5yZW1vdmVU
aHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYklEQlNlcnZlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKTsKKyAgICBhdXRvKiB0YWtlbkNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25zLnRh
a2UoJmNvbm5lY3Rpb24pOworICAgIGlmICghdGFrZW5Db25uZWN0aW9uKQorICAgICAgICByZXR1
cm47CisKKyAgICB0YWtlbkNvbm5lY3Rpb24tPnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6V2ViSURCU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogICAgIHBvc3RU
YXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbm5lY3Rpb25JRCA9
IGNvbm5lY3Rpb24udW5pcXVlSUQoKV0gewogICAgICAgICBhdXRvIGNvbm5lY3Rpb24gPSBtX2Nv
bm5lY3Rpb25NYXAudGFrZShjb25uZWN0aW9uSUQpOwogCkBAIC0zODAsNiArMzg5LDggQEAgdm9p
ZCBXZWJJREJTZXJ2ZXI6OnJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uKQogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9jaygpKTsKICAgICAg
ICAgbV9zZXJ2ZXItPnVucmVnaXN0ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb24tPmNvbm5lY3Rpb25U
b0NsaWVudCgpKTsKICAgICB9KTsKKworICAgIHRyeUNsb3NlKCk7CiB9CiAKIHZvaWQgV2ViSURC
U2VydmVyOjpwb3N0VGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKQEAgLTM5Nyw2ICs0MDgs
OCBAQCB2b2lkIFdlYklEQlNlcnZlcjo6ZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlvbjx2b2lkKCk+
JiYgdGFzaykKIHZvaWQgV2ViSURCU2VydmVyOjpjbG9zZSgpCiB7CiAgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKKyAgICBpZiAoIW1fY2xvc2VDYWxsYmFjaykKKyAgICAgICAgcmV0dXJu
OwogCiAgICAgLy8gUmVtb3ZlIHRoZSByZWZlcmVuY2VzIGhlbGQgYnkgSVBDOjpDb25uZWN0aW9u
LgogICAgIGZvciAoYXV0byogY29ubmVjdGlvbiA6IG1fY29ubmVjdGlvbnMpCkBAIC00MTMsNiAr
NDI2LDE2IEBAIHZvaWQgV2ViSURCU2VydmVyOjpjbG9zZSgpCiAKICAgICAgICAgQ3Jvc3NUaHJl
YWRUYXNrSGFuZGxlcjo6a2lsbCgpOwogICAgIH0pOworCisgICAgbV9jbG9zZUNhbGxiYWNrKCk7
Cit9CisKK3ZvaWQgV2ViSURCU2VydmVyOjp0cnlDbG9zZSgpCit7CisgICAgaWYgKCFtX2Nvbm5l
Y3Rpb25zLmlzRW1wdHkoKSB8fCBtX2RhdGFUYXNrQ291bnRlci52YWx1ZSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBjbG9zZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZl
ci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVy
LmgKaW5kZXggMjU2ZTI5NTY1MGE2MjBkODNjZjVjYTg3YThiYzBjYzMxMTRhMWQyZS4uNjJmZTcw
MDhhMGNhOWFjMGMxZjJiZDFkN2E0OTE3Mjc2MjMxZWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0lEQlNlcnZlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU3RvcmFnZVF1b3RhTWFuYWdlci5oPgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2tI
YW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgU3RvcmFnZVF1b3RhTWFuYWdlcjsKQEAgLTQzLDcgKzQ0LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYklEQlNlcnZlciBmaW5hbCA6IHB1YmxpYyBDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyLCBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVj
ZWl2ZXJSZWZDb3VudGVkIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYklEQlNlcnZlcj4g
Y3JlYXRlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYm
KTsKKyAgICBzdGF0aWMgUmVmPFdlYklEQlNlcnZlcj4gY3JlYXRlKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OlN0
b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogCiAgICAgdm9pZCBnZXRPcmlnaW5zKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFz
aFNldDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiYpPiYmKTsKICAgICB2b2lkIGNsb3Nl
QW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShXYWxsVGltZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNhbGxiYWNrKTsKQEAgLTg4LDE4ICs4OSwyNSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaXNwYXRjaFRvVGhyZWFkKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lk
IGNsb3NlKCk7CiAKLSAgICBib29sIGhhc0Nvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiAhbV9j
b25uZWN0aW9ucy5pc0VtcHR5KCk7IH0KIHByaXZhdGU6Ci0gICAgV2ViSURCU2VydmVyKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OlN0b3JhZ2VRdW90YU1hbmFnZXJTcGFjZVJlcXVlc3RlciYmKTsKKyAgICBXZWJJ
REJTZXJ2ZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJDb3Jl
OjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVzdGVy
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgfldlYklEQlNlcnZlcigpOwog
CiAgICAgdm9pZCBwb3N0VGFzayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKKyAgICB2b2lk
IHRyeUNsb3NlKCk7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI+IG1fc2VydmVyOwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAK
ICAgICBIYXNoTWFwPElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+PiBtX2Nvbm5lY3Rpb25NYXA7CiAgICAgSGFzaFNldDxJ
UEM6OkNvbm5lY3Rpb24qPiBtX2Nvbm5lY3Rpb25zOworCisgICAgZW51bSBEYXRhVGFza0NvdW50
ZXJUeXBlIHsgfTsKKyAgICB1c2luZyBEYXRhVGFza0NvdW50ZXIgPSBSZWZDb3VudGVyPERhdGFU
YXNrQ291bnRlclR5cGU+OworICAgIHVzaW5nIERhdGFUYXNrQ291bnRlclRva2VuID0gRGF0YVRh
c2tDb3VudGVyOjpUb2tlbjsKKyAgICBEYXRhVGFza0NvdW50ZXIgbV9kYXRhVGFza0NvdW50ZXI7
CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiBtX2Nsb3NlQ2FsbGJhY2s7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMDUx
NTUwZTc3N2U1MDdhM2FkYTczYzFiZTkyOTgyNzUwMTdhMjBiYy4uNzlhM2RkNzg2Y2ZkOTA5OWNl
MjUzYzc5NmQzZTg4MDdmNzU0NzMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTEyNDEsNiArMTI0MSwxMCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpw
cmlvcml0aXplUmVzb3VyY2VMb2FkcyhWZWN0b3I8UmVzb3VyY2VMb2FkSQogICAgIHNlc3Npb24t
Pm5ldHdvcmtMb2FkU2NoZWR1bGVyKCkucHJpb3JpdGl6ZUxvYWRzKGxvYWRzKTsKIH0KIAordm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YWRkSURCQ29ubmVjdGlvbigpCit7Cisg
ICAgbV9uZXR3b3JrUHJvY2Vzcy0+d2ViSURCU2VydmVyKG1fc2Vzc2lvbklEKS5hZGRDb25uZWN0
aW9uKG1fY29ubmVjdGlvbi5nZXQoKSwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcik7Cit9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMmVjN2Qx
MWNhMGVhOTQwMmE0Y2E3YTkyOGM3M2Q4M2IxZTZlZjJmNi4uMjgxNWVkZWM3M2RiNWI5Yzc0ZWUy
ODY0MWZiYTNmYjQ3MjQ2ZmRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMTg2LDYg
KzE4Niw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoSlND
OjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KTsKIAorICAgIHZvaWQgYWRkSURCQ29ubmVjdGlvbigpOworCiBwcml2YXRlOgogICAgIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhMDk4
NDEyYTVmM2Q1NWZlMzg0OGIyMjNmOWRmZmE5OGMzNjYxNGM2Li4wN2JmY2U0NDkxY2Q1MzA2YjRm
YWEyOGJjNGM4NWE1M2NlZjBlYWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KQEAgLTEwNyw0ICsxMDcsNiBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKICAgICBTZXRSZXNvdXJj
ZUxvYWRTY2hlZHVsaW5nTW9kZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIGVu
dW06dWludDhfdCBXZWJDb3JlOjpMb2FkU2NoZWR1bGluZ01vZGUgbW9kZSkKICAgICBQcmlvcml0
aXplUmVzb3VyY2VMb2FkcyhWZWN0b3I8dWludDY0X3Q+IGxvYWRJZGVudGlmaWVycykKKworICAg
IEFkZElEQkNvbm5lY3Rpb24oKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAwM2YyOTUxMjAzNmY5YmQzNjU3YTg3M2NhZTg4NDhm
YTY4NDdhN2ZmLi4xMjZlMDI1NjZjNmE4MzhiZmU0Mzg3MWFjYTk3YWUwYmU4OWY3YTZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAt
MjcyLDYgKzI3MiwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5l
Y3Rpb24mKQogICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbJl0gKGF1dG8mIG5ldHdvcmtTZXNz
aW9uKSB7CiAgICAgICAgIHBsYXRmb3JtRmx1c2hDb29raWVzKG5ldHdvcmtTZXNzaW9uLnNlc3Np
b25JRCgpLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogICAgIH0pOworCisgICAgLy8gTWFr
ZSBzdXJlIHJlZmVyZW5jZXMgdG8gTmV0d29ya1Byb2Nlc3MgaW4gc3BhY2VSZXF1ZXN0ZXIgYW5k
IGNsb3NlSGFuZGxlciBpcyByZW1vdmVkLgorICAgIGZvciAoYXV0byYgc2VydmVyIDogbV93ZWJJ
REJTZXJ2ZXJzLnZhbHVlcygpKQorICAgICAgICBzZXJ2ZXItPmNsb3NlKCk7CiB9CiAKIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmRpZENyZWF0ZURvd25sb2FkKCkKQEAgLTM5MSw4ICszOTUsNiBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhQ
cm9jZXNzSWRlbnRpZmllciBpZGVudAogICAgIGNvbm5lY3Rpb24uc2V0T25MaW5lU3RhdGUoTmV0
d29ya1N0YXRlTm90aWZpZXI6OnNpbmdsZXRvbigpLm9uTGluZSgpKTsKIAogICAgIG1fc3RvcmFn
ZU1hbmFnZXJTZXQtPmFkZENvbm5lY3Rpb24oY29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOwotCi0g
ICAgd2ViSURCU2VydmVyKHNlc3Npb25JRCkuYWRkQ29ubmVjdGlvbihjb25uZWN0aW9uLmNvbm5l
Y3Rpb24oKSwgaWRlbnRpZmllcik7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyQ2Fj
aGVkQ3JlZGVudGlhbHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpAQCAtNTUyLDggKzU1NCw2
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICNlbmRpZgogCiAgICAgbV9zdG9yYWdlTWFuYWdlclNldC0+cmVtb3ZlKHNlc3Np
b25JRCk7Ci0KLSAgICByZW1vdmVXZWJJREJTZXJ2ZXJJZlBvc3NpYmxlKHNlc3Npb25JRCk7CiB9
CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpAQCAtMjMzMCwxMCArMjMz
MCwxMyBAQCBSZWY8V2ViSURCU2VydmVyPiBOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlV2ViSURCU2Vy
dmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgcGF0aCA9IG1faWRiRGF0YWJh
c2VQYXRocy5nZXQoc2Vzc2lvbklEKTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViSURCU2VydmVy
OjpjcmVhdGUoc2Vzc2lvbklELCBwYXRoLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKSwgc2Vzc2lvbklEXShjb25zdCBhdXRvJiBvcmlnaW4sIHVpbnQ2NF90IHNwYWNlUmVxdWVz
dGVkKSB7Ci0gICAgICAgIFJlZlB0cjxTdG9yYWdlUXVvdGFNYW5hZ2VyPiBzdG9yYWdlUXVvdGFN
YW5hZ2VyID0gd2Vha1RoaXMgPyB0aGlzLT5zdG9yYWdlUXVvdGFNYW5hZ2VyKHNlc3Npb25JRCwg
b3JpZ2luKSA6IG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBzdG9yYWdlUXVvdGFNYW5hZ2VyID8g
c3RvcmFnZVF1b3RhTWFuYWdlci0+cmVxdWVzdFNwYWNlT25CYWNrZ3JvdW5kVGhyZWFkKHNwYWNl
UmVxdWVzdGVkKSA6IFN0b3JhZ2VRdW90YU1hbmFnZXI6OkRlY2lzaW9uOjpEZW55OwotICAgIH0p
OworICAgIGF1dG8gc3BhY2VSZXF1ZXN0ZXIgPSBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpLCBzZXNzaW9uSURdKGNvbnN0IGF1dG8mIG9yaWdpbiwgdWludDY0X3Qgc3BhY2VSZXF1ZXN0
ZWQpIHsKKyAgICAgICAgcmV0dXJuIHByb3RlY3RlZFRoaXMtPnN0b3JhZ2VRdW90YU1hbmFnZXIo
c2Vzc2lvbklELCBvcmlnaW4pLT5yZXF1ZXN0U3BhY2VPbkJhY2tncm91bmRUaHJlYWQoc3BhY2VS
ZXF1ZXN0ZWQpOworICAgIH07CisgICAgYXV0byBjbG9zZUhhbmRsZXIgPSBbcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBzZXNzaW9uSURdKCkgeworICAgICAgICBwcm90ZWN0ZWRUaGlz
LT5tX3dlYklEQlNlcnZlcnMucmVtb3ZlKHNlc3Npb25JRCk7CisgICAgfTsKKyAgICByZXR1cm4g
V2ViSURCU2VydmVyOjpjcmVhdGUoc2Vzc2lvbklELCBwYXRoLCBXVEZNb3ZlKHNwYWNlUmVxdWVz
dGVyKSwgV1RGTW92ZShjbG9zZUhhbmRsZXIpKTsKIH0KIAogV2ViSURCU2VydmVyJiBOZXR3b3Jr
UHJvY2Vzczo6d2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKQEAgLTIzNjMs
MjQgKzIzNjYsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uU3RvcmFnZVF1b3Rh
TWFuYWdlcklEQlJvb3RQYXRoKFBBTDo6U2Vzc2lvbklEIHNlcwogICAgIHNlc3Npb25TdG9yYWdl
UXVvdGFNYW5hZ2VyLT5zZXRJREJSb290UGF0aChpZGJSb290UGF0aCk7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OnJlbW92ZVdlYklEQlNlcnZlcklmUG9zc2libGUoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBhdXRv
IGl0ZXJhdG9yID0gbV93ZWJJREJTZXJ2ZXJzLmZpbmQoc2Vzc2lvbklEKTsKLSAgICBpZiAoaXRl
cmF0b3IgPT0gbV93ZWJJREJTZXJ2ZXJzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAobV9uZXR3b3JrU2Vzc2lvbnMuY29udGFpbnMoc2Vzc2lvbklEKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaWYgKGl0ZXJhdG9yLT52YWx1ZS0+aGFzQ29ubmVjdGlvbigpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBpdGVyYXRvci0+dmFsdWUtPmNsb3NlKCk7Ci0gICAgbV93ZWJJREJTZXJ2
ZXJzLnJlbW92ZShpdGVyYXRvcik7Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnN5bmNMb2Nh
bFN0b3JhZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIG1fc3RvcmFnZU1hbmFnZXJTZXQtPndhaXRVbnRpbFN5bmNpbmdMb2NhbFN0b3JhZ2VG
aW5pc2hlZCgpOwpAQCAtMjY2NywxMCArMjY1Miw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NDbG9zZWQoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQ
CiB7CiAgICAgbV9zdG9yYWdlTWFuYWdlclNldC0+cmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9u
KTsKIAotICAgIGF1dG8qIHdlYklEQlNlcnZlciA9IG1fd2ViSURCU2VydmVycy5nZXQoc2Vzc2lv
bklEKTsKLSAgICBBU1NFUlQod2ViSURCU2VydmVyKTsKLSAgICB3ZWJJREJTZXJ2ZXItPnJlbW92
ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7Ci0gICAgcmVtb3ZlV2ViSURCU2VydmVySWZQb3NzaWJs
ZShzZXNzaW9uSUQpOworICAgIGlmIChhdXRvKiBzZXJ2ZXIgPSBtX3dlYklEQlNlcnZlcnMuZ2V0
KHNlc3Npb25JRCkpCisgICAgICAgIHNlcnZlci0+cmVtb3ZlQ29ubmVjdGlvbihjb25uZWN0aW9u
KTsKIH0KIAogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIE5ldHdvcmtQcm9jZXNzOjp3
ZWJQcm9jZXNzQ29ubmVjdGlvbihQcm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKaW5kZXggZjA2
Mjk3NWU0MzA1MjVjOWFkOWZiZGMzNWVmNjA1OTdkNmFmZjA1OC4uZTM5ZTFjNDUyYmVkNjljYzE0
YWY0Y2NhNzdhMjA0NjM4NzA5ZjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC01OSw2ICs1OSw3IEBAIFJlZjxXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI+IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKCkKIFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKCkKICAgICA6IG1fY29ubmVj
dGlvblRvU2VydmVyKElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGUoKnRo
aXMpKQogeworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpBZGRJREJDb25uZWN0aW9uKCkpOwogfQogCiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6On5X
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>