<?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>108653</bug_id>
          
          <creation_ts>2013-02-01 09:54:00 -0800</creation_ts>
          <short_desc>Web Inspector: Split Profiler domain in protocol into Profiler and HeapProfiler</short_desc>
          <delta_ts>2013-02-12 03:22:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexei Filippov">alph</reporter>
          <assigned_to name="Alexei Filippov">alph</assigned_to>
          <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>joepeck</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kadam</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>marja</cc>
    
    <cc>ossy</cc>
    
    <cc>pfeldman</cc>
    
    <cc>philn</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
    
    <cc>zarvai</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>822898</commentid>
    <comment_count>0</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-01 09:54:00 -0800</bug_when>
    <thetext>Currently CPU and heap profilers share the same domain &apos;Profiler&apos; in the protocol.
In fact these two profile types have not too much in common. So put each into its own domain.
It should also help when Profiles panel gets split into several tools.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822915</commentid>
    <comment_count>1</comment_count>
      <attachid>186073</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-01 10:19:01 -0800</bug_when>
    <thetext>Created attachment 186073
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823117</commentid>
    <comment_count>2</comment_count>
      <attachid>186073</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 12:20:04 -0800</bug_when>
    <thetext>Comment on attachment 186073
Patch

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

New failing tests:
inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.html
inspector-protocol/heap-profiler/heap-snapshot-with-detached-dom-tree.html
inspector-protocol/nmi-webaudio-leak-test.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823212</commentid>
    <comment_count>3</comment_count>
      <attachid>186073</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 13:37:42 -0800</bug_when>
    <thetext>Comment on attachment 186073
Patch

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

New failing tests:
inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.html
inspector-protocol/heap-profiler/heap-snapshot-with-detached-dom-tree.html
inspector-protocol/nmi-webaudio-leak-test.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824258</commentid>
    <comment_count>4</comment_count>
      <attachid>186353</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-04 04:55:35 -0800</bug_when>
    <thetext>Created attachment 186353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824346</commentid>
    <comment_count>5</comment_count>
      <attachid>186353</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 07:37:50 -0800</bug_when>
    <thetext>Comment on attachment 186353
Patch

Attachment 186353 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16368242</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824352</commentid>
    <comment_count>6</comment_count>
      <attachid>186353</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-04 07:53:34 -0800</bug_when>
    <thetext>Comment on attachment 186353
Patch

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

Can you split the change into smaller pieces?

&gt; Source/WebCore/inspector/InspectorController.h:151
&gt; +    InspectorHeapProfilerAgent* m_heapProfilerAgent;

What is the reason for having this field?

&gt; Source/WebCore/inspector/InspectorProfilerAgent.cpp:285
&gt; +        &amp;&amp; m_profiles.begin() == m_profiles.end())

m_profiles.isEmpty() and please put the condition on one line

&gt; Source/WebCore/inspector/InspectorProfilerAgent.h:129
&gt; +class InspectorHeapProfilerAgent : public InspectorBaseAgent&lt;InspectorHeapProfilerAgent&gt;, public InspectorBackendDispatcher::HeapProfilerCommandHandler {

This should go into its own file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824353</commentid>
    <comment_count>7</comment_count>
      <attachid>186353</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-04 07:54:57 -0800</bug_when>
    <thetext>Comment on attachment 186353
Patch

Note, that this change will break Chromium pyauto tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824372</commentid>
    <comment_count>8</comment_count>
      <attachid>186380</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-04 08:23:57 -0800</bug_when>
    <thetext>Created attachment 186380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824379</commentid>
    <comment_count>9</comment_count>
      <attachid>186353</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-04 08:27:29 -0800</bug_when>
    <thetext>Comment on attachment 186353
Patch

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

Moved InspectorHeapProfilerAgent functions back to their original locations in InspectorProfilerAgent, so it was easier to see the diffs. i will move them to a separate file with a next patch.

&gt;&gt; Source/WebCore/inspector/InspectorController.h:151
&gt;&gt; +    InspectorHeapProfilerAgent* m_heapProfilerAgent;
&gt; 
&gt; What is the reason for having this field?

No reason so far. Removed.

&gt;&gt; Source/WebCore/inspector/InspectorProfilerAgent.cpp:285
&gt;&gt; +        &amp;&amp; m_profiles.begin() == m_profiles.end())
&gt; 
&gt; m_profiles.isEmpty() and please put the condition on one line

done.

&gt;&gt; Source/WebCore/inspector/InspectorProfilerAgent.h:129
&gt;&gt; +class InspectorHeapProfilerAgent : public InspectorBaseAgent&lt;InspectorHeapProfilerAgent&gt;, public InspectorBackendDispatcher::HeapProfilerCommandHandler {
&gt; 
&gt; This should go into its own file.

Yes. Will do this in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824381</commentid>
    <comment_count>10</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-04 08:28:42 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 186353 [details])
&gt; Note, that this change will break Chromium pyauto tests

I&apos;m readying patch to remote_inspector_client.py
that will be able to work with both versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825475</commentid>
    <comment_count>11</comment_count>
      <attachid>186380</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-05 07:36:27 -0800</bug_when>
    <thetext>Comment on attachment 186380
Patch

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

&gt; Source/WebCore/inspector/InspectorController.cpp:156
&gt; +    OwnPtr&lt;InspectorHeapProfilerAgent&gt; heapProfilerAgentPtr(InspectorHeapProfilerAgent::create(m_instrumentingAgents.get(), m_state.get(), m_injectedScriptManager.get()));

Inline this call.

&gt; Source/WebCore/inspector/InspectorProfilerAgent.cpp:571
&gt; +    m_frontend = 0;

You should reset m_headersRequested field here. Or even better get rid of it as it looks like redundant optimization. If so, can you remove it in a separate patch to reduce the size of this change?

&gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:1115
&gt; +        function populateHeapSnapshotsCallback(error, profileHeaders) {

This function is almost identical to populateProfilesCallback, can we reuse common part?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825477</commentid>
    <comment_count>12</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-05 07:38:32 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 186353 [details] [details])
&gt; &gt; Note, that this change will break Chromium pyauto tests
&gt; 
&gt; I&apos;m readying patch to remote_inspector_client.py
&gt; that will be able to work with both versions.

Can you share a link to the patch? I don&apos;t quite understand how you can remove the old command and add the new one to the protocol in one patch without breaking the client for a couple of days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826125</commentid>
    <comment_count>13</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-05 23:53:39 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; (From update of attachment 186353 [details] [details] [details])
&gt; &gt; &gt; Note, that this change will break Chromium pyauto tests
&gt; &gt; 
&gt; &gt; I&apos;m readying patch to remote_inspector_client.py
&gt; &gt; that will be able to work with both versions.
&gt; 
&gt; Can you share a link to the patch? I don&apos;t quite understand how you can remove the old command and add the new one to the protocol in one patch without breaking the client for a couple of days.

It will be broken for couple days. I&apos;m doing it the same way Zhenya did that in https://bugs.webkit.org/show_bug.cgi?id=104545</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826128</commentid>
    <comment_count>14</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-05 23:57:20 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (In reply to comment #10)
&gt; &gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; &gt; (From update of attachment 186353 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; Note, that this change will break Chromium pyauto tests
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;m readying patch to remote_inspector_client.py
&gt; &gt; &gt; that will be able to work with both versions.
&gt; &gt; 
&gt; &gt; Can you share a link to the patch? I don&apos;t quite understand how you can remove the old command and add the new one to the protocol in one patch without breaking the client for a couple of days.
&gt; 
&gt; It will be broken for couple days. I&apos;m doing it the same way Zhenya did that in https://bugs.webkit.org/show_bug.cgi?id=104545

As I understand Zhenya had a different premise as he could break the clients for a short period until the next version is rolled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826529</commentid>
    <comment_count>15</comment_count>
      <attachid>186874</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-06 10:24:31 -0800</bug_when>
    <thetext>Created attachment 186874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826537</commentid>
    <comment_count>16</comment_count>
      <attachid>186874</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-06 10:36:51 -0800</bug_when>
    <thetext>Comment on attachment 186874
Patch

Attachment 186874 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16396288</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826543</commentid>
    <comment_count>17</comment_count>
      <attachid>186874</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-06 10:38:00 -0800</bug_when>
    <thetext>Comment on attachment 186874
Patch

Attachment 186874 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16388401</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826560</commentid>
    <comment_count>18</comment_count>
      <attachid>186874</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-06 10:56:46 -0800</bug_when>
    <thetext>Comment on attachment 186874
Patch

Attachment 186874 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16390371</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826571</commentid>
    <comment_count>19</comment_count>
      <attachid>186878</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-06 11:08:45 -0800</bug_when>
    <thetext>Created attachment 186878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826760</commentid>
    <comment_count>20</comment_count>
      <attachid>186878</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-06 14:33:52 -0800</bug_when>
    <thetext>Comment on attachment 186878
Patch

Attachment 186878 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16394381</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827129</commentid>
    <comment_count>21</comment_count>
      <attachid>186380</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-07 00:53:04 -0800</bug_when>
    <thetext>Comment on attachment 186380
Patch

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

Kept the InspectorProfilerAgent heap snapshotting functionality. Will drop it in the phase 2 patch.

&gt;&gt; Source/WebCore/inspector/InspectorController.cpp:156
&gt;&gt; +    OwnPtr&lt;InspectorHeapProfilerAgent&gt; heapProfilerAgentPtr(InspectorHeapProfilerAgent::create(m_instrumentingAgents.get(), m_state.get(), m_injectedScriptManager.get()));
&gt; 
&gt; Inline this call.

done.

&gt;&gt; Source/WebCore/inspector/InspectorProfilerAgent.cpp:571
&gt;&gt; +    m_frontend = 0;
&gt; 
&gt; You should reset m_headersRequested field here. Or even better get rid of it as it looks like redundant optimization. If so, can you remove it in a separate patch to reduce the size of this change?

reset it for now.

&gt;&gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:1115
&gt;&gt; +        function populateHeapSnapshotsCallback(error, profileHeaders) {
&gt; 
&gt; This function is almost identical to populateProfilesCallback, can we reuse common part?

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827358</commentid>
    <comment_count>22</comment_count>
      <attachid>187071</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-07 05:32:29 -0800</bug_when>
    <thetext>Created attachment 187071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828564</commentid>
    <comment_count>23</comment_count>
      <attachid>187071</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-08 07:41:10 -0800</bug_when>
    <thetext>Comment on attachment 187071
Patch

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

&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.cpp:2
&gt; + * Copyright (C) 2010 Apple Inc. All rights reserved.

2013. Please use Google copyright header for new files(it is slightly different from this one).

&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.cpp:131
&gt; +public:

Please move classes in the anonymous namespace to the top of the file.

&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.h:2
&gt; + * Copyright (C) 2010 Apple Inc. All rights reserved.

Same comment about copyright header as above.

&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.h:58
&gt; +    void addProfileFinishedMessageToConsole(PassRefPtr&lt;ScriptProfile&gt;, unsigned lineNumber, const String&amp; sourceURL);

Remove these methods, they don&apos;t even have implementation in this class.

&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.h:85
&gt; +    InspectorHeapProfilerAgent(InstrumentingAgents*, InspectorCompositeState*, InjectedScriptManager*);

Why is it not private?

&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.h:88
&gt; +    typedef HashMap&lt;unsigned, RefPtr&lt;ScriptHeapSnapshot&gt; &gt; HeapSnapshotsMap;

IsToHeapSnapshotMap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828585</commentid>
    <comment_count>24</comment_count>
      <attachid>187071</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-08 08:11:04 -0800</bug_when>
    <thetext>Comment on attachment 187071
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.cpp:2
&gt;&gt; + * Copyright (C) 2010 Apple Inc. All rights reserved.
&gt; 
&gt; 2013. Please use Google copyright header for new files(it is slightly different from this one).

done

&gt;&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.cpp:131
&gt;&gt; +public:
&gt; 
&gt; Please move classes in the anonymous namespace to the top of the file.

Moved them into functions.

&gt;&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.h:2
&gt;&gt; + * Copyright (C) 2010 Apple Inc. All rights reserved.
&gt; 
&gt; Same comment about copyright header as above.

done

&gt;&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.h:58
&gt;&gt; +    void addProfileFinishedMessageToConsole(PassRefPtr&lt;ScriptProfile&gt;, unsigned lineNumber, const String&amp; sourceURL);
&gt; 
&gt; Remove these methods, they don&apos;t even have implementation in this class.

done

&gt;&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.h:85
&gt;&gt; +    InspectorHeapProfilerAgent(InstrumentingAgents*, InspectorCompositeState*, InjectedScriptManager*);
&gt; 
&gt; Why is it not private?

made private

&gt;&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.h:88
&gt;&gt; +    typedef HashMap&lt;unsigned, RefPtr&lt;ScriptHeapSnapshot&gt; &gt; HeapSnapshotsMap;
&gt; 
&gt; IsToHeapSnapshotMap

You meant IdToHeapSnapshotMap?
done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828595</commentid>
    <comment_count>25</comment_count>
      <attachid>187323</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-08 08:21:47 -0800</bug_when>
    <thetext>Created attachment 187323
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829518</commentid>
    <comment_count>26</comment_count>
      <attachid>187323</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-11 02:14:49 -0800</bug_when>
    <thetext>Comment on attachment 187323
Patch

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

&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.h:79
&gt; +    void willProcessTask();

Please remove declaration of these methods, they don&apos;t have implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829528</commentid>
    <comment_count>27</comment_count>
      <attachid>187323</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-11 02:41:13 -0800</bug_when>
    <thetext>Comment on attachment 187323
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorHeapProfilerAgent.h:79
&gt;&gt; +    void willProcessTask();
&gt; 
&gt; Please remove declaration of these methods, they don&apos;t have implementation.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829530</commentid>
    <comment_count>28</comment_count>
      <attachid>187533</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2013-02-11 02:42:56 -0800</bug_when>
    <thetext>Created attachment 187533
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829605</commentid>
    <comment_count>29</comment_count>
      <attachid>187533</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 05:55:40 -0800</bug_when>
    <thetext>Comment on attachment 187533
Patch

Clearing flags on attachment: 187533

Committed r142460: &lt;http://trac.webkit.org/changeset/142460&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829606</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 05:55:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829730</commentid>
    <comment_count>31</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-02-11 08:43:17 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; (From update of attachment 187533 [details])
&gt; Clearing flags on attachment: 187533
&gt; 
&gt; Committed r142460: &lt;http://trac.webkit.org/changeset/142460&gt;

It broke the Windows builds: (Apple Windows and Qt Windows)

6&gt;c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\InspectorProfilerAgent.cpp(67) : error C2370: &apos;WebCore::UserInitiatedProfileName&apos; : redefinition; different storage class
6&gt;        c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\InspectorHeapProfilerAgent.cpp(45) : see declaration of &apos;WebCore::UserInitiatedProfileName&apos;
6&gt;c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\InspectorProfilerAgent.cpp(69) : error C2370: &apos;WebCore::HeapProfileType&apos; : redefinition; different storage class
6&gt;        c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\InspectorHeapProfilerAgent.cpp(46) : see declaration of &apos;WebCore::HeapProfileType&apos;
6&gt;c:\cygwin\home\buildbot\slave\win-release\build\source\webcore\inspector\InspectorProfilerAgent.cpp(323) : error C2088: &apos;==&apos; : illegal for class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830343</commentid>
    <comment_count>32</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-02-11 16:59:21 -0800</bug_when>
    <thetext>Fix landed in http://trac.webkit.org/changeset/142517 ( without any references to this bug :-/ )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830754</commentid>
    <comment_count>33</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-12 03:22:15 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; Fix landed in http://trac.webkit.org/changeset/142517 ( without any references to this bug :-/ )

Thanks for fixing this!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186073</attachid>
            <date>2013-02-01 10:19:01 -0800</date>
            <delta_ts>2013-02-04 04:55:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108653-20130201221543.patch</filename>
            <type>text/plain</type>
            <size>62842</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI4ZWQzOTM5MjI1MDNk
OTI4YjQ2Yzg3OTgwNzFmMTJlYmJmZjI5Mi4uZjkzNTg3M2Y4MThmNzE2MTc0MzEzOGZkODFmYWQ3
YjZjZTY1NGJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDEzLTAyLTAxICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wgaW50byBQcm9maWxlciBhbmQgSGVh
cFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0aGUgc2FtZSBkb21haW4g
J1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIEluIGZhY3QgdGhlc2UgdHdvIHBy
b2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29tbW9uLiBTbyBwdXQgZWFjaCBpbnRv
IGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQgYWxzbyBoZWxwIHdoZW4gUHJvZmls
ZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9vbHMuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVj
dG9yQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5zcGVjdG9yQ29udHJvbGxlcik6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ29tbWl0TG9hZEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9m
aWxlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VQcm9maWxlckFnZW50OjpQYWdl
UHJvZmlsZXJBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUHJvZmlsZXJBZ2VudDo6V29ya2Vy
UHJvZmlsZXJBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50
OjpJbnNwZWN0b3JQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBy
b2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGVIZWFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQ6OnJlbW92ZVByb2ZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yUHJvZmlsZXJBZ2VudDo6cmVzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JQcm9maWxlckFnZW50OjpyZXNldEZyb250ZW5kUHJvZmlsZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6dG9nZ2xlUmVjb3JkQnV0dG9uKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJB
Z2VudDo6d2lsbFByb2Nlc3NUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2Zp
bGVyQWdlbnQ6OmRpZFByb2Nlc3NUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojp+SW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNv
bGxlY3RHYXJiYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50OjpjcmVhdGVTbmFwc2hvdEhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudDo6aGFzSGVhcFByb2ZpbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRQcm9maWxlSGVhZGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Z2V0SGVhcFNuYXBzaG90KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZW1vdmVQcm9maWxl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZXNldFN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZXNl
dEZyb250ZW5kUHJvZmlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQ6OnNldEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50OjpjbGVhckZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50OjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50Ojp0YWtlSGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRPYmplY3RCeUhlYXBPYmplY3RJZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Z2V0SGVhcE9iamVj
dElkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZXBv
cnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdl
bnQuaDoKKyAgICAgICAgKEluc3BlY3RvclByb2ZpbGVyQWdlbnQpOgorICAgICAgICAoSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQ6OmNsZWFyUHJvZmlsZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSW5zdHJ1bWVudGluZ0FnZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVt
ZW50aW5nQWdlbnRzOjppbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk6
CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6V29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RE
YXRhR3JpZHMuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RH
cmlkTm9kZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09i
amVjdE5vZGUucHJvdG90eXBlLnF1ZXJ5T2JqZWN0Q29udGVudCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5zdGFydFNuYXBzaG90VHJhbnNmZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5zYXZlVG9GaWxl
Lm9uT3Blbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90
eXBlLnNhdmVUb0ZpbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQ
YW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5fY2xlYXJQcm9maWxlcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX2dhcmJhZ2VDb2xs
ZWN0QnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUuX3JlbW92ZVByb2ZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZVByb2ZpbGVzLnZhcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlUHJvZmlsZXMucG9w
dWxhdGVIZWFwU25hcHNob3RzQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZVByb2ZpbGVzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS50YWtlSGVhcFNuYXBzaG90KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5yZXZlYWxJblZpZXcpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUuc2V0UmVjb3Jk
aW5nUHJvZmlsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXJEaXNwYXRjaGVyLnBy
b3RvdHlwZS5yZXNldFByb2ZpbGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmls
ZXJEaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZXJEaXNwYXRj
aGVyLnByb3RvdHlwZS5hZGRQcm9maWxlSGVhZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5I
ZWFwUHJvZmlsZXJEaXNwYXRjaGVyLnByb3RvdHlwZS5hZGRIZWFwU25hcHNob3RDaHVuayk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUuZmlu
aXNoSGVhcFNuYXBzaG90KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUu
X2dhcmJhZ2VDb2xsZWN0QnV0dG9uQ2xpY2tlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lKToK
KwogMjAxMy0wMi0wMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZGVkIFRyaVN0YXRlIHRvIFdURiBhbmQgc3RhcnRlZCB1c2luZyBpdCBpbiBvbmUgcGxh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZWNkYjFiZTczZDlkZGQzOGI1MTIzN2Zl
OThkZDA2NzFlMDU5MDY3My4uYzJlMWFjYjY0YjFkNzRlMWUzMjkxYmE1MDU4YzMzYmNkOTE1MjIy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0w
MSAgQWxleGVpIEZpbGlwcG92ICA8YWxwaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogU3BsaXQgUHJvZmlsZXIgZG9tYWluIGluIHByb3RvY29sIGludG8gUHJvZmlsZXIg
YW5kIEhlYXBQcm9maWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA4NjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ3VycmVudGx5IENQVSBhbmQgaGVhcCBwcm9maWxlcnMgc2hhcmUgdGhlIHNhbWUg
ZG9tYWluICdQcm9maWxlcicgaW4gdGhlIHByb3RvY29sLgorICAgICAgICBJbiBmYWN0IHRoZXNl
IHR3byBwcm9maWxlIHR5cGVzIGhhdmUgbm90IHRvbyBtdWNoIGluIGNvbW1vbi4gU28gcHV0IGVh
Y2ggaW50byBpdHMgb3duIGRvbWFpbi4KKyAgICAgICAgSXQgc2hvdWxkIGFsc28gaGVscCB3aGVu
IFByb2ZpbGVzIHBhbmVsIGdldHMgc3BsaXQgaW50byBzZXZlcmFsIHRvb2xzLgorCisgICAgICAg
ICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2
VG9vbHNBZ2VudDo6c2hvdWxkSW50ZXJydXB0Rm9yTWVzc2FnZSk6CisKIDIwMTMtMDItMDEgIEFs
ZXhpcyBNZW5hcmQgIDxhbGV4aXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBFbmFibGUgdW5wcmVm
aXhlZCBDU1MgdHJhbnNpdGlvbnMgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgppbmRleCA2ZTI0YWI3NzE0MTA1ZjkzYTVhNWJjODkyNzQ1NTU0NTk1Nzc0
YmI5Li40YjA1YTc0ZDhlZjk5ZTc5ODg0YjM4MDkxOGRmMTlmMjY2NWVkYzIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0zMDQ3LDEwICszMDQ3LDkgQEAKICAg
ICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJQcm9maWxlIGhlYWRlci4iLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjog
WwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGVJZCIsICJ0eXBlIjogInN0cmlu
ZyIsICJlbnVtIjogWyJDUFUiLCAiQ1NTIiwgIkhFQVAiXSwgImRlc2NyaXB0aW9uIjogIlByb2Zp
bGUgdHlwZSBuYW1lLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlSWQi
LCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsiQ1BVIiwgIkNTUyJdLCAiZGVzY3JpcHRpb24i
OiAiUHJvZmlsZSB0eXBlIG5hbWUuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InRpdGxlIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlByb2ZpbGUgdGl0bGUu
IiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0eXBlIjogImludGVn
ZXIiLCAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHByb2ZpbGUuIiB9
LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1heEpTT2JqZWN0SWQiLCAidHlwZSI6
ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkxhc3Qgc2VlbiBK
UyBvYmplY3QgSWQuIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwgInR5
cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUg
cHJvZmlsZS4iIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgewpAQCAtMzA3OCwxMSArMzA3Nyw2IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiYm90dG9tVXBIZWFkIiwgIiRyZWYiOiAiQ1BVUHJvZmlsZU5vZGUiLCAib3B0aW9uYWwiOiB0
cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWRsZVRpbWUiLCAidHlwZSI6
ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0KICAgICAgICAgICAgICAgICBdCi0gICAgICAg
ICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJpZCI6ICJIZWFwU25hcHNo
b3RPYmplY3RJZCIsCi0gICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiSGVhcCBzbmFzaG90IG9iamVjdCBpZC4iCiAgICAgICAg
ICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJjb21tYW5kcyI6IFsKQEAgLTMwOTksMTIgKzMw
OTMsNiBAQAogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAiaGFzSGVhcFByb2ZpbGVyIiwKLSAgICAgICAgICAg
ICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQi
LCAidHlwZSI6ICJib29sZWFuIiB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJlbmFibGUiCiAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgewpAQCAtMzEzMiw2ICszMTIwLDY4IEBACiAgICAgICAgICAg
ICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
bmFtZSI6ICJyZW1vdmVQcm9maWxlIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5nIiB9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0eXBlIjogImludGVnZXIi
IH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICJuYW1lIjogImNsZWFyUHJvZmlsZXMiCisgICAgICAgICAgICB9CisgICAg
ICAgIF0sCisgICAgICAgICJldmVudHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgIm5hbWUiOiAiYWRkUHJvZmlsZUhlYWRlciIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGVhZGVyIiwgIiRyZWYiOiAi
UHJvZmlsZUhlYWRlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAic2V0UmVjb3JkaW5nUHJvZmlsZSIs
CisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaXNQcm9maWxpbmciLCAidHlwZSI6ICJib29sZWFuIiB9CisgICAgICAgICAgICAg
ICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFt
ZSI6ICJyZXNldFByb2ZpbGVzIgorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfSwKKyAg
ICB7CisgICAgICAgICJkb21haW4iOiAiSGVhcFByb2ZpbGVyIiwKKyAgICAgICAgImhpZGRlbiI6
IHRydWUsCisgICAgICAgICJ0eXBlcyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAiaWQiOiAiUHJvZmlsZUhlYWRlciIsCisgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0
IiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUHJvZmlsZSBoZWFkZXIuIiwKKyAg
ICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJ0aXRsZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJQcm9maWxlIHRp
dGxlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1aWQiLCAidHlwZSI6ICJp
bnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9maWxl
LiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtYXhKU09iamVjdElkIiwgInR5
cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJMYXN0IHNl
ZW4gSlMgb2JqZWN0IElkLiIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImlkIjogIkhlYXBTbmFwc2hvdE9iamVjdElk
IiwKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJIZWFwIHNuYXNob3Qgb2JqZWN0IGlkLiIKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgXSwKKyAgICAgICAgImNvbW1hbmRzIjogWworICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICJuYW1lIjogImhhc0hlYXBQcm9maWxlciIsCisgICAgICAgICAgICAgICAgInJldHVy
bnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAi
Ym9vbGVhbiIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0UHJvZmlsZUhlYWRlcnMiLAorICAgICAg
ICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhl
YWRlcnMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiUHJvZmlsZUhlYWRl
ciJ9IH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICJuYW1lIjogImdldEhlYXBTbmFwc2hvdCIsCiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwg
InR5cGUiOiAiaW50ZWdlciIgfQpAQCAtMzE0MCw3ICszMTkwLDYgQEAKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAibmFtZSI6ICJyZW1vdmVQcm9maWxlIiwKICAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwg
InR5cGUiOiAic3RyaW5nIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIs
ICJ0eXBlIjogImludGVnZXIiIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LApA
QCAtMzE5NywxMiArMzI0Niw2IEBACiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRSZWNvcmRpbmdQcm9m
aWxlIiwKLSAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJpc1Byb2ZpbGluZyIsICJ0eXBlIjogImJvb2xlYW4iIH0KLSAgICAgICAg
ICAgICAgICBdCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICJuYW1lIjogInJlc2V0UHJvZmlsZXMiCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDNjNjVhOGE2MDgyZjI0Mjc4ZDE3Yzc0MWM3Mzk2OGQzMTBiOTc3ZDMuLjUwNWQ1ZDNiN2Nm
N2Q5Zjk0Y2U3MDNhY2ViMmE5YjhiMjg2YTNlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTE0OSw5ICsxNDksMTQgQEAgSW5z
cGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0
b3JDbGllbnQqIGluc3BlY3RvckMKICAgICBtX2RvbURlYnVnZ2VyQWdlbnQgPSBkb21EZWJ1Z2dl
ckFnZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChkb21EZWJ1Z2dlckFnZW50UHRy
LnJlbGVhc2UoKSk7CiAKLSAgICBPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gcHJvZmls
ZXJBZ2VudFB0cihJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQsIHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdl
bnQ+IHByb2ZpbGVyQWdlbnRQdHIoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5z
dHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgY29uc29sZUFnZW50LCBwYWdlLCBtX3N0YXRlLmdldCgp
KSk7CiAgICAgbV9wcm9maWxlckFnZW50ID0gcHJvZmlsZXJBZ2VudFB0ci5nZXQoKTsKICAgICBt
X2FnZW50cy5hcHBlbmQocHJvZmlsZXJBZ2VudFB0ci5yZWxlYXNlKCkpOworCisgICAgT3duUHRy
PEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50PiBoZWFwUHJvZmlsZXJBZ2VudFB0cihJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKKyAgICBtX2hl
YXBQcm9maWxlckFnZW50ID0gaGVhcFByb2ZpbGVyQWdlbnRQdHIuZ2V0KCk7CisgICAgbV9hZ2Vu
dHMuYXBwZW5kKGhlYXBQcm9maWxlckFnZW50UHRyLnJlbGVhc2UoKSk7CisKICNlbmRpZgogCiAj
aWYgRU5BQkxFKFdPUktFUlMpCkBAIC00MTMsNiArNDE4LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKQogICAgIGluZm8uYWRkTWVtYmVyKG1fZGVidWdnZXJBZ2VudCwgImRlYnVnZ2VyQWdlbnQi
KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2RvbURlYnVnZ2VyQWdlbnQsICJkb21EZWJ1Z2dlckFn
ZW50Iik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wcm9maWxlckFnZW50LCAicHJvZmlsZXJBZ2Vu
dCIpOworICAgIGluZm8uYWRkTWVtYmVyKG1faGVhcFByb2ZpbGVyQWdlbnQsICJoZWFwUHJvZmls
ZXJBZ2VudCIpOwogI2VuZGlmCiAKICAgICBpbmZvLmFkZE1lbWJlcihtX2luc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyLCAiaW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIiKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGVjZTYzN2FjYWEy
ZWRlOGJkYTI1MmVlY2RlNmExYTQ1OGQ1Yjg1MDMuLjM5NjAxOGE2OGQyNGUwYTQwM2IyM2I2NDgw
OTZmNDNiNzBhNzFiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuaApAQCAtNTYsNiArNTYsNyBAQCBjbGFzcyBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWw7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudDsKK2NsYXNzIEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50OwogY2xhc3MgSW5zcGVjdG9yTWVtb3J5QWdlbnQ7CiBjbGFzcyBJbnNw
ZWN0b3JPdmVybGF5OwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwpAQCAtMTQ3LDYgKzE0OCw3
IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogbV9kZWJ1Z2dlckFnZW50
OwogICAgIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQqIG1fZG9tRGVidWdnZXJBZ2VudDsKICAg
ICBJbnNwZWN0b3JQcm9maWxlckFnZW50KiBtX3Byb2ZpbGVyQWdlbnQ7CisgICAgSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQqIG1faGVhcFByb2ZpbGVyQWdlbnQ7CiAjZW5kaWYKIAogICAgIFJl
ZlB0cjxJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcj4gbV9pbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKaW5kZXggYTFmNTAxZDI0MDU1OGI4Y2ViOGNiMGRlZjEwMDZkYWI1Y2Mw
ODlkNS4uZWUzNDg4MmQ1MGMwYWQwYzExMGE0MGFmZTgxNzEyZGRmYWY4ZTljZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKQEAgLTkyNCw2ICs5MjQsOCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudAogI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBVU0UoSlNDKQogICAgICAgICBpZiAoSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudCogcHJvZmlsZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQoKSkKICAgICAgICAgICAgIHByb2ZpbGVyQWdlbnQtPnJlc2V0U3Rh
dGUoKTsKKyAgICAgICAgaWYgKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KiBoZWFwUHJvZmls
ZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
KCkpCisgICAgICAgICAgICBoZWFwUHJvZmlsZXJBZ2VudC0+cmVzZXRTdGF0ZSgpOwogI2VuZGlm
CiAgICAgICAgIGlmIChJbnNwZWN0b3JDU1NBZ2VudCogY3NzQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLT5pbnNwZWN0b3JDU1NBZ2VudCgpKQogICAgICAgICAgICAgY3NzQWdlbnQtPnJlc2V0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudC5jcHAKaW5kZXggMmQ3YjA4M2VmNGUwZDE0Njc5NmIwZjI0NjE5MjEwYWJjYmQyMjcwZC4u
MGNhNWE4YzNkZjg1OWNmZmQzZjBkYTVhODNiNzM1ZmM5ODA0MGQzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApAQCAtNzEs
OCArNzEsOSBAQCBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgSGVhcFByb2ZpbGVUeXBlID0gIkhF
QVAiOwogCiBjbGFzcyBQYWdlUHJvZmlsZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JQcm9maWxl
ckFnZW50IHsKIHB1YmxpYzoKLSAgICBQYWdlUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVB
Z2VudCwgUGFnZSogaW5zcGVjdGVkUGFnZSwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRl
LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKLSAgICAgICAg
OiBJbnNwZWN0b3JQcm9maWxlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnNvbGVBZ2Vu
dCwgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlciksIG1faW5zcGVjdGVkUGFnZShpbnNwZWN0
ZWRQYWdlKSB7IH0KKyAgICBQYWdlUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCwg
UGFnZSogaW5zcGVjdGVkUGFnZSwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQorICAg
ICAgICA6IEluc3BlY3RvclByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc29s
ZUFnZW50LCBzdGF0ZSkKKyAgICAgICAgLCBtX2luc3BlY3RlZFBhZ2UoaW5zcGVjdGVkUGFnZSkg
eyB9CiAgICAgdmlydHVhbCB+UGFnZVByb2ZpbGVyQWdlbnQoKSB7IH0KIAogcHJpdmF0ZToKQEAg
LTk0LDE2ICs5NSwxNyBAQCBwcml2YXRlOgogICAgIFBhZ2UqIG1faW5zcGVjdGVkUGFnZTsKIH07
CiAKLVBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIElu
c3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBQYWdlKiBpbnNwZWN0ZWRQYWdlLCBJ
bnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFu
YWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxl
ckFnZW50PiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdl
bnQsIFBhZ2UqIGluc3BlY3RlZFBhZ2UsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0
b3JTdGF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VQcm9maWxlckFnZW50KGlu
c3RydW1lbnRpbmdBZ2VudHMsIGNvbnNvbGVBZ2VudCwgaW5zcGVjdGVkUGFnZSwgaW5zcGVjdG9y
U3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcg
UGFnZVByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc29sZUFnZW50LCBpbnNw
ZWN0ZWRQYWdlLCBpbnNwZWN0b3JTdGF0ZSkpOwogfQogCiAjaWYgRU5BQkxFKFdPUktFUlMpCiBj
bGFzcyBXb3JrZXJQcm9maWxlckFnZW50IDogcHVibGljIEluc3BlY3RvclByb2ZpbGVyQWdlbnQg
ewogcHVibGljOgotICAgIFdvcmtlclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQs
IFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBz
dGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAg
ICAgIDogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zb2xl
QWdlbnQsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpLCBtX3dvcmtlckNvbnRleHQod29y
a2VyQ29udGV4dCkgeyB9CisgICAgV29ya2VyUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVB
Z2VudCwgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCwgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqIHN0YXRlKQorICAgICAgICA6IEluc3BlY3RvclByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGlu
Z0FnZW50cywgY29uc29sZUFnZW50LCBzdGF0ZSkKKyAgICAgICAgLCBtX3dvcmtlckNvbnRleHQo
d29ya2VyQ29udGV4dCkgeyB9CiAgICAgdmlydHVhbCB+V29ya2VyUHJvZmlsZXJBZ2VudCgpIHsg
fQogCiBwcml2YXRlOgpAQCAtMTIyLDIzICsxMjQsMjEgQEAgcHJpdmF0ZToKICAgICBXb3JrZXJD
b250ZXh0KiBtX3dvcmtlckNvbnRleHQ7CiB9OwogCi1QYXNzT3duUHRyPEluc3BlY3RvclByb2Zp
bGVyQWdlbnQ+IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVB
Z2VudCwgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCwgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0
TWFuYWdlcikKK1Bhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBXb3JrZXJDb250ZXh0KiB3
b3JrZXJDb250ZXh0LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJQcm9maWxlckFnZW50KGluc3RydW1lbnRp
bmdBZ2VudHMsIGNvbnNvbGVBZ2VudCwgd29ya2VyQ29udGV4dCwgaW5zcGVjdG9yU3RhdGUsIGlu
amVjdGVkU2NyaXB0TWFuYWdlcikpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyUHJv
ZmlsZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zb2xlQWdlbnQsIHdvcmtlckNvbnRl
eHQsIGluc3BlY3RvclN0YXRlKSk7CiB9CiAjZW5kaWYKIAotSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCwgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGlu
amVjdGVkU2NyaXB0TWFuYWdlcikKK0luc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclBy
b2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRl
KiBpbnNwZWN0b3JTdGF0ZSkKICAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JQcm9m
aWxlckFnZW50PigiUHJvZmlsZXIiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0
ZSkKICAgICAsIG1fY29uc29sZUFnZW50KGNvbnNvbGVBZ2VudCkKLSAgICAsIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fZnJvbnRlbmQoMCkK
ICAgICAsIG1fZW5hYmxlZChmYWxzZSkKICAgICAsIG1fcmVjb3JkaW5nQ1BVUHJvZmlsZShmYWxz
ZSkKICAgICAsIG1faGVhZGVyc1JlcXVlc3RlZChmYWxzZSkKICAgICAsIG1fY3VycmVudFVzZXJJ
bml0aWF0ZWRQcm9maWxlTnVtYmVyKC0xKQogICAgICwgbV9uZXh0VXNlckluaXRpYXRlZFByb2Zp
bGVOdW1iZXIoMSkKLSAgICAsIG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1iZXIo
MSkKICAgICAsIG1fcHJvZmlsZU5hbWVJZGxlVGltZU1hcChTY3JpcHRQcm9maWxlcjo6Y3VycmVu
dFByb2ZpbGVOYW1lSWRsZVRpbWVNYXAoKSkKICAgICAsIG1fcHJldmlvdXNUYXNrRW5kVGltZSgw
LjApCiB7CkBAIC0xNzcsMTEgKzE3Nyw2IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
YWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgdGl0CiAgICAg
bV9jb25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoQ29uc29sZUFQSU1lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBEZWJ1Z01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgc291cmNlVVJM
LCBsaW5lTnVtYmVyKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpjb2xsZWN0
R2FyYmFnZShXZWJDb3JlOjpFcnJvclN0cmluZyopCi17Ci0gICAgU2NyaXB0UHJvZmlsZXI6OmNv
bGxlY3RHYXJiYWdlKCk7Ci19Ci0KIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpQ
cm9maWxlSGVhZGVyPiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGVQcm9maWxlSGVhZGVy
KGNvbnN0IFNjcmlwdFByb2ZpbGUmIHByb2ZpbGUpCiB7CiAgICAgcmV0dXJuIFR5cGVCdWlsZGVy
OjpQcm9maWxlcjo6UHJvZmlsZUhlYWRlcjo6Y3JlYXRlKCkKQEAgLTE5MSwxNiArMTg2LDYgQEAg
UGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+IEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ6OmNyZWF0ZVAKICAgICAgICAgLnJlbGVhc2UoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxUeXBlQnVpbGRlcjo6UHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+IEluc3BlY3RvclByb2Zp
bGVyQWdlbnQ6OmNyZWF0ZVNuYXBzaG90SGVhZGVyKGNvbnN0IFNjcmlwdEhlYXBTbmFwc2hvdCYg
c25hcHNob3QpCi17Ci0gICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpQcm9maWxlcjo6UHJvZmlsZUhl
YWRlcj4gaGVhZGVyID0gVHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpQcm9maWxlSGVhZGVyOjpjcmVh
dGUoKQotICAgICAgICAuc2V0VHlwZUlkKFR5cGVCdWlsZGVyOjpQcm9maWxlcjo6UHJvZmlsZUhl
YWRlcjo6VHlwZUlkOjpIRUFQKQotICAgICAgICAuc2V0VWlkKHNuYXBzaG90LnVpZCgpKQotICAg
ICAgICAuc2V0VGl0bGUoc25hcHNob3QudGl0bGUoKSk7Ci0gICAgaGVhZGVyLT5zZXRNYXhKU09i
amVjdElkKHNuYXBzaG90Lm1heFNuYXBzaG90SlNPYmplY3RJZCgpKTsKLSAgICByZXR1cm4gaGVh
ZGVyLnJlbGVhc2UoKTsKLX0KLQogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjYXVzZXNS
ZWNvbXBpbGF0aW9uKEVycm9yU3RyaW5nKiwgYm9vbCogcmVzdWx0KQogewogICAgICpyZXN1bHQg
PSBTY3JpcHRQcm9maWxlcjo6Y2F1c2VzUmVjb21waWxhdGlvbigpOwpAQCAtMjExLDExICsxOTYs
NiBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmlzU2FtcGxpbmcoRXJyb3JTdHJpbmcq
LCBib29sKiByZXN1bHQpCiAgICAgKnJlc3VsdCA9IFNjcmlwdFByb2ZpbGVyOjppc1NhbXBsaW5n
KCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6aGFzSGVhcFByb2ZpbGVyKEVy
cm9yU3RyaW5nKiwgYm9vbCogcmVzdWx0KQotewotICAgICpyZXN1bHQgPSBTY3JpcHRQcm9maWxl
cjo6aGFzSGVhcFByb2ZpbGVyKCk7Ci19Ci0KIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
ZW5hYmxlKEVycm9yU3RyaW5nKikKIHsKICAgICBpZiAoZW5hYmxlZCgpKQpAQCAtMjY0LDI2ICsy
NDQsOCBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGVIZWFkZXJzKEVy
cm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOgogICAgIFByb2ZpbGVzTWFwOjppdGVyYXRv
ciBwcm9maWxlc0VuZCA9IG1fcHJvZmlsZXMuZW5kKCk7CiAgICAgZm9yIChQcm9maWxlc01hcDo6
aXRlcmF0b3IgaXQgPSBtX3Byb2ZpbGVzLmJlZ2luKCk7IGl0ICE9IHByb2ZpbGVzRW5kOyArK2l0
KQogICAgICAgICBoZWFkZXJzLT5hZGRJdGVtKGNyZWF0ZVByb2ZpbGVIZWFkZXIoKml0LT52YWx1
ZSkpOwotICAgIEhlYXBTbmFwc2hvdHNNYXA6Oml0ZXJhdG9yIHNuYXBzaG90c0VuZCA9IG1fc25h
cHNob3RzLmVuZCgpOwotICAgIGZvciAoSGVhcFNuYXBzaG90c01hcDo6aXRlcmF0b3IgaXQgPSBt
X3NuYXBzaG90cy5iZWdpbigpOyBpdCAhPSBzbmFwc2hvdHNFbmQ7ICsraXQpCi0gICAgICAgIGhl
YWRlcnMtPmFkZEl0ZW0oY3JlYXRlU25hcHNob3RIZWFkZXIoKml0LT52YWx1ZSkpOwogfQogCi1u
YW1lc3BhY2UgewotCi1jbGFzcyBPdXRwdXRTdHJlYW0gOiBwdWJsaWMgU2NyaXB0SGVhcFNuYXBz
aG90OjpPdXRwdXRTdHJlYW0gewotcHVibGljOgotICAgIE91dHB1dFN0cmVhbShJbnNwZWN0b3JG
cm9udGVuZDo6UHJvZmlsZXIqIGZyb250ZW5kLCB1bnNpZ25lZCB1aWQpCi0gICAgICAgIDogbV9m
cm9udGVuZChmcm9udGVuZCksIG1fdWlkKHVpZCkgeyB9Ci0gICAgdm9pZCBXcml0ZShjb25zdCBT
dHJpbmcmIGNodW5rKSB7IG1fZnJvbnRlbmQtPmFkZEhlYXBTbmFwc2hvdENodW5rKG1fdWlkLCBj
aHVuayk7IH0KLSAgICB2b2lkIENsb3NlKCkgeyBtX2Zyb250ZW5kLT5maW5pc2hIZWFwU25hcHNo
b3QobV91aWQpOyB9Ci1wcml2YXRlOgotICAgIEluc3BlY3RvckZyb250ZW5kOjpQcm9maWxlciog
bV9mcm9udGVuZDsKLSAgICBpbnQgbV91aWQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZQotCiB2b2lk
IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmdldENQVVByb2ZpbGUoRXJyb3JTdHJpbmcqIGVycm9y
U3RyaW5nLCBpbnQgcmF3VWlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpDUFVQcm9m
aWxlPiYgcHJvZmlsZU9iamVjdCkKIHsKICAgICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4ocmF3VWlkKTsKQEAgLTI5OSwzMCArMjYxLDEyIEBAIHZvaWQgSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6Z2V0Q1BVUHJvZmlsZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBy
YXdVaWQsCiAgICAgcHJvZmlsZU9iamVjdC0+c2V0SWRsZVRpbWUoaXQtPnZhbHVlLT5pZGxlVGlt
ZSgpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpnZXRIZWFwU25hcHNob3Qo
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgcmF3VWlkKQotewotICAgIHVuc2lnbmVkIHVp
ZCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihyYXdVaWQpOwotICAgIEhlYXBTbmFwc2hvdHNNYXA6
Oml0ZXJhdG9yIGl0ID0gbV9zbmFwc2hvdHMuZmluZCh1aWQpOwotICAgIGlmIChpdCA9PSBtX3Nu
YXBzaG90cy5lbmQoKSkgewotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiUHJvZmlsZSB3YXNuJ3Qg
Zm91bmQiOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIFJlZlB0cjxTY3JpcHRIZWFwU25h
cHNob3Q+IHNuYXBzaG90ID0gaXQtPnZhbHVlOwotICAgIGlmIChtX2Zyb250ZW5kKSB7Ci0gICAg
ICAgIE91dHB1dFN0cmVhbSBzdHJlYW0obV9mcm9udGVuZCwgdWlkKTsKLSAgICAgICAgc25hcHNo
b3QtPndyaXRlSlNPTigmc3RyZWFtKTsKLSAgICB9Ci19Ci0KIHZvaWQgSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6cmVtb3ZlUHJvZmlsZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdHlwZSwg
aW50IHJhd1VpZCkKIHsKICAgICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
cmF3VWlkKTsKICAgICBpZiAodHlwZSA9PSBDUFVQcm9maWxlVHlwZSkgewogICAgICAgICBpZiAo
bV9wcm9maWxlcy5jb250YWlucyh1aWQpKQogICAgICAgICAgICAgbV9wcm9maWxlcy5yZW1vdmUo
dWlkKTsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gSGVhcFByb2ZpbGVUeXBlKSB7Ci0gICAgICAg
IGlmIChtX3NuYXBzaG90cy5jb250YWlucyh1aWQpKQotICAgICAgICAgICAgbV9zbmFwc2hvdHMu
cmVtb3ZlKHVpZCk7CiAgICAgfQogfQogCkBAIC0zMzAsMTkgKzI3NCwxNSBAQCB2b2lkIEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQ6OnJlc2V0U3RhdGUoKQogewogICAgIHN0b3AoKTsKICAgICBtX3By
b2ZpbGVzLmNsZWFyKCk7Ci0gICAgbV9zbmFwc2hvdHMuY2xlYXIoKTsKICAgICBtX2N1cnJlbnRV
c2VySW5pdGlhdGVkUHJvZmlsZU51bWJlciA9IDE7CiAgICAgbV9uZXh0VXNlckluaXRpYXRlZFBy
b2ZpbGVOdW1iZXIgPSAxOwotICAgIG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1i
ZXIgPSAxOwogICAgIHJlc2V0RnJvbnRlbmRQcm9maWxlcygpOwotICAgIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+Y2xlYXJJbnNwZWN0ZWRPYmplY3RzKCk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVz
KCkKIHsKICAgICBpZiAobV9oZWFkZXJzUmVxdWVzdGVkICYmIG1fZnJvbnRlbmQKLSAgICAgICAg
JiYgbV9wcm9maWxlcy5iZWdpbigpID09IG1fcHJvZmlsZXMuZW5kKCkKLSAgICAgICAgJiYgbV9z
bmFwc2hvdHMuYmVnaW4oKSA9PSBtX3NuYXBzaG90cy5lbmQoKSkKKyAgICAgICAgJiYgbV9wcm9m
aWxlcy5iZWdpbigpID09IG1fcHJvZmlsZXMuZW5kKCkpCiAgICAgICAgIG1fZnJvbnRlbmQtPnJl
c2V0UHJvZmlsZXMoKTsKIH0KIApAQCAtNDA4LDMyICszNDgsMTgzIEBAIHZvaWQgSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudDo6c3RvcChFcnJvclN0cmluZyopCiAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVh
bihQcm9maWxlckFnZW50U3RhdGU6OnVzZXJJbml0aWF0ZWRQcm9maWxpbmcsIGZhbHNlKTsKIH0K
IAordm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojp0b2dnbGVSZWNvcmRCdXR0b24oYm9vbCBp
c1Byb2ZpbGluZykKK3sKKyAgICBpZiAobV9mcm9udGVuZCkKKyAgICAgICAgbV9mcm9udGVuZC0+
c2V0UmVjb3JkaW5nUHJvZmlsZShpc1Byb2ZpbGluZyk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQpOwor
ICAgIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JQcm9maWxlckFnZW50Pjo6cmVwb3J0TWVt
b3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb25zb2xl
QWdlbnQsICJjb25zb2xlQWdlbnQiKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fZnJvbnRl
bmQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcHJvZmlsZXMsICJwcm9maWxlcyIpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fcHJvZmlsZU5hbWVJZGxlVGltZU1hcCwgInByb2ZpbGVOYW1lSWRsZVRp
bWVNYXAiKTsKK30KKwordm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojp3aWxsUHJvY2Vzc1Rh
c2soKQoreworICAgIGlmICghbV9wcm9maWxlTmFtZUlkbGVUaW1lTWFwIHx8ICFtX3Byb2ZpbGVO
YW1lSWRsZVRpbWVNYXAtPnNpemUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghbV9wcmV2
aW91c1Rhc2tFbmRUaW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBkb3VibGUgaWRsZVRpbWUg
PSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gbV9wcmV2aW91c1Rhc2tFbmRU
aW1lOworICAgIG1fcHJldmlvdXNUYXNrRW5kVGltZSA9IDAuMDsKKyAgICBQcm9maWxlTmFtZUlk
bGVUaW1lTWFwOjppdGVyYXRvciBlbmQgPSBtX3Byb2ZpbGVOYW1lSWRsZVRpbWVNYXAtPmVuZCgp
OworICAgIGZvciAoUHJvZmlsZU5hbWVJZGxlVGltZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3Byb2Zp
bGVOYW1lSWRsZVRpbWVNYXAtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgaXQt
PnZhbHVlICs9IGlkbGVUaW1lOworfQorCit2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmRp
ZFByb2Nlc3NUYXNrKCkKK3sKKyAgICBpZiAoIW1fcHJvZmlsZU5hbWVJZGxlVGltZU1hcCB8fCAh
bV9wcm9maWxlTmFtZUlkbGVUaW1lTWFwLT5zaXplKCkpCisgICAgICAgIHJldHVybjsKKyAgICBt
X3ByZXZpb3VzVGFza0VuZFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OworfQorCitQYXNzT3duUHRyPEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50PiBJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCit7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBpbnNwZWN0b3JTdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSk7Cit9CisKK0luc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50OjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSog
aW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
PigiSGVhcFByb2ZpbGVyIiwgaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUpCisg
ICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAg
LCBtX2Zyb250ZW5kKDApCisgICAgLCBtX2hlYWRlcnNSZXF1ZXN0ZWQoZmFsc2UpCisgICAgLCBt
X25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBzaG90TnVtYmVyKDEpCit7CisgICAgbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCh0aGlzKTsKK30KKwor
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6On5JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCgp
Cit7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudCgwKTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y29sbGVjdEdh
cmJhZ2UoV2ViQ29yZTo6RXJyb3JTdHJpbmcqKQoreworICAgIFNjcmlwdFByb2ZpbGVyOjpjb2xs
ZWN0R2FyYmFnZSgpOworfQorCitQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpIZWFwUHJvZmlsZXI6
OlByb2ZpbGVIZWFkZXI+IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjcmVhdGVTbmFwc2hv
dEhlYWRlcihjb25zdCBTY3JpcHRIZWFwU25hcHNob3QmIHNuYXBzaG90KQoreworICAgIFJlZlB0
cjxUeXBlQnVpbGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiBoZWFkZXIgPSBUeXBl
QnVpbGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyOjpjcmVhdGUoKQorICAgICAgICAu
c2V0VWlkKHNuYXBzaG90LnVpZCgpKQorICAgICAgICAuc2V0VGl0bGUoc25hcHNob3QudGl0bGUo
KSk7CisgICAgaGVhZGVyLT5zZXRNYXhKU09iamVjdElkKHNuYXBzaG90Lm1heFNuYXBzaG90SlNP
YmplY3RJZCgpKTsKKyAgICByZXR1cm4gaGVhZGVyLnJlbGVhc2UoKTsKK30KKwordm9pZCBJbnNw
ZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6aGFzSGVhcFByb2ZpbGVyKEVycm9yU3RyaW5nKiwgYm9v
bCogcmVzdWx0KQoreworICAgICpyZXN1bHQgPSBTY3JpcHRQcm9maWxlcjo6aGFzSGVhcFByb2Zp
bGVyKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGVI
ZWFkZXJzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRl
cjo6SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiA+JiBoZWFkZXJzKQoreworICAgIG1faGVh
ZGVyc1JlcXVlc3RlZCA9IHRydWU7CisgICAgaGVhZGVycyA9IFR5cGVCdWlsZGVyOjpBcnJheTxU
eXBlQnVpbGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPjo6Y3JlYXRlKCk7CisKKyAg
ICBIZWFwU25hcHNob3RzTWFwOjppdGVyYXRvciBzbmFwc2hvdHNFbmQgPSBtX3NuYXBzaG90cy5l
bmQoKTsKKyAgICBmb3IgKEhlYXBTbmFwc2hvdHNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zbmFwc2hv
dHMuYmVnaW4oKTsgaXQgIT0gc25hcHNob3RzRW5kOyArK2l0KQorICAgICAgICBoZWFkZXJzLT5h
ZGRJdGVtKGNyZWF0ZVNuYXBzaG90SGVhZGVyKCppdC0+dmFsdWUpKTsKK30KKwogbmFtZXNwYWNl
IHsKIAotY2xhc3MgSGVhcFNuYXBzaG90UHJvZ3Jlc3M6IHB1YmxpYyBTY3JpcHRQcm9maWxlcjo6
SGVhcFNuYXBzaG90UHJvZ3Jlc3MgeworY2xhc3MgT3V0cHV0U3RyZWFtIDogcHVibGljIFNjcmlw
dEhlYXBTbmFwc2hvdDo6T3V0cHV0U3RyZWFtIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBIZWFw
U25hcHNob3RQcm9ncmVzcyhJbnNwZWN0b3JGcm9udGVuZDo6UHJvZmlsZXIqIGZyb250ZW5kKQot
ICAgICAgICA6IG1fZnJvbnRlbmQoZnJvbnRlbmQpIHsgfQotICAgIHZvaWQgU3RhcnQoaW50IHRv
dGFsV29yaykKLSAgICB7Ci0gICAgICAgIG1fdG90YWxXb3JrID0gdG90YWxXb3JrOwotICAgIH0K
LSAgICB2b2lkIFdvcmtlZChpbnQgd29ya0RvbmUpCi0gICAgewotICAgICAgICBpZiAobV9mcm9u
dGVuZCkKLSAgICAgICAgICAgIG1fZnJvbnRlbmQtPnJlcG9ydEhlYXBTbmFwc2hvdFByb2dyZXNz
KHdvcmtEb25lLCBtX3RvdGFsV29yayk7Ci0gICAgfQotICAgIHZvaWQgRG9uZSgpIHsgfQotICAg
IGJvb2wgaXNDYW5jZWxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgT3V0cHV0U3RyZWFtKElu
c3BlY3RvckZyb250ZW5kOjpIZWFwUHJvZmlsZXIqIGZyb250ZW5kLCB1bnNpZ25lZCB1aWQpCisg
ICAgICAgIDogbV9mcm9udGVuZChmcm9udGVuZCksIG1fdWlkKHVpZCkgeyB9CisgICAgdm9pZCBX
cml0ZShjb25zdCBTdHJpbmcmIGNodW5rKSB7IG1fZnJvbnRlbmQtPmFkZEhlYXBTbmFwc2hvdENo
dW5rKG1fdWlkLCBjaHVuayk7IH0KKyAgICB2b2lkIENsb3NlKCkgeyBtX2Zyb250ZW5kLT5maW5p
c2hIZWFwU25hcHNob3QobV91aWQpOyB9CiBwcml2YXRlOgotICAgIEluc3BlY3RvckZyb250ZW5k
OjpQcm9maWxlciogbV9mcm9udGVuZDsKLSAgICBpbnQgbV90b3RhbFdvcms7CisgICAgSW5zcGVj
dG9yRnJvbnRlbmQ6OkhlYXBQcm9maWxlciogbV9mcm9udGVuZDsKKyAgICBpbnQgbV91aWQ7CiB9
OwogCi19OworfSAvLyBuYW1lc3BhY2UKKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dDo6Z2V0SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IHJhd1VpZCkK
K3sKKyAgICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmF3VWlkKTsKKyAg
ICBIZWFwU25hcHNob3RzTWFwOjppdGVyYXRvciBpdCA9IG1fc25hcHNob3RzLmZpbmQodWlkKTsK
KyAgICBpZiAoaXQgPT0gbV9zbmFwc2hvdHMuZW5kKCkpIHsKKyAgICAgICAgKmVycm9yU3RyaW5n
ID0gIlByb2ZpbGUgd2Fzbid0IGZvdW5kIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBS
ZWZQdHI8U2NyaXB0SGVhcFNuYXBzaG90PiBzbmFwc2hvdCA9IGl0LT52YWx1ZTsKKyAgICBpZiAo
bV9mcm9udGVuZCkgeworICAgICAgICBPdXRwdXRTdHJlYW0gc3RyZWFtKG1fZnJvbnRlbmQsIHVp
ZCk7CisgICAgICAgIHNuYXBzaG90LT53cml0ZUpTT04oJnN0cmVhbSk7CisgICAgfQorfQorCit2
b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZW1vdmVQcm9maWxlKEVycm9yU3RyaW5n
KiwgaW50IHJhd1VpZCkKK3sKKyAgICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4ocmF3VWlkKTsKKyAgICBpZiAobV9zbmFwc2hvdHMuY29udGFpbnModWlkKSkKKyAgICAgICAg
bV9zbmFwc2hvdHMucmVtb3ZlKHVpZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQ6OnJlc2V0U3RhdGUoKQoreworICAgIG1fc25hcHNob3RzLmNsZWFyKCk7CisgICAgbV9u
ZXh0VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlciA9IDE7CisgICAgcmVzZXRGcm9udGVu
ZFByb2ZpbGVzKCk7CisgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0
SG9zdCgpLT5jbGVhckluc3BlY3RlZE9iamVjdHMoKTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVzKCkKK3sKKyAgICBpZiAobV9oZWFk
ZXJzUmVxdWVzdGVkICYmIG1fZnJvbnRlbmQKKyAgICAgICAgJiYgbV9zbmFwc2hvdHMuYmVnaW4o
KSA9PSBtX3NuYXBzaG90cy5lbmQoKSkKKyAgICAgICAgbV9mcm9udGVuZC0+cmVzZXRQcm9maWxl
cygpOworfQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpzZXRGcm9udGVuZChJ
bnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCit7CisgICAgbV9mcm9udGVuZCA9IGZyb250ZW5k
LT5oZWFwcHJvZmlsZXIoKTsKK30KIAotdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojp0YWtl
SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgY29uc3QgYm9vbCogcmVwb3J0UHJvZ3Jlc3MpCit2
b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjbGVhckZyb250ZW5kKCkKIHsKKyAgICBt
X2Zyb250ZW5kID0gMDsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVz
dG9yZSgpCit7CisgICAgLy8gUmV2aXNpdCB0aGlzLgorICAgIG1faGVhZGVyc1JlcXVlc3RlZCA9
IHRydWU7CisgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OnRha2VIZWFwU25hcHNob3QoRXJyb3JTdHJpbmcqLCBjb25zdCBi
b29sKiByZXBvcnRQcm9ncmVzcykKK3sKKyAgICBjbGFzcyBIZWFwU25hcHNob3RQcm9ncmVzczog
cHVibGljIFNjcmlwdFByb2ZpbGVyOjpIZWFwU25hcHNob3RQcm9ncmVzcyB7CisgICAgcHVibGlj
OgorICAgICAgICBleHBsaWNpdCBIZWFwU25hcHNob3RQcm9ncmVzcyhJbnNwZWN0b3JGcm9udGVu
ZDo6SGVhcFByb2ZpbGVyKiBmcm9udGVuZCkKKyAgICAgICAgICAgIDogbV9mcm9udGVuZChmcm9u
dGVuZCkgeyB9CisgICAgICAgIHZvaWQgU3RhcnQoaW50IHRvdGFsV29yaykKKyAgICAgICAgewor
ICAgICAgICAgICAgbV90b3RhbFdvcmsgPSB0b3RhbFdvcms7CisgICAgICAgIH0KKyAgICAgICAg
dm9pZCBXb3JrZWQoaW50IHdvcmtEb25lKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAobV9m
cm9udGVuZCkKKyAgICAgICAgICAgICAgICBtX2Zyb250ZW5kLT5yZXBvcnRIZWFwU25hcHNob3RQ
cm9ncmVzcyh3b3JrRG9uZSwgbV90b3RhbFdvcmspOworICAgICAgICB9CisgICAgICAgIHZvaWQg
RG9uZSgpIHsgfQorICAgICAgICBib29sIGlzQ2FuY2VsZWQoKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHByaXZhdGU6CisgICAgICAgIEluc3BlY3RvckZyb250ZW5kOjpIZWFwUHJvZmlsZXIqIG1f
ZnJvbnRlbmQ7CisgICAgICAgIGludCBtX3RvdGFsV29yazsKKyAgICB9OworCiAgICAgU3RyaW5n
IHRpdGxlID0gbWFrZVN0cmluZyhVc2VySW5pdGlhdGVkUHJvZmlsZU5hbWUsICcuJywgU3RyaW5n
OjpudW1iZXIobV9uZXh0VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlcikpOwogICAgICsr
bV9uZXh0VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlcjsKIApAQCAtNDQ2LDEzICs1Mzcs
NyBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnRha2VIZWFwU25hcHNob3QoRXJyb3JT
dHJpbmcqLCBjb25zdCBib29sKiByZXBvcnRQcgogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JQ
cm9maWxlckFnZW50Ojp0b2dnbGVSZWNvcmRCdXR0b24oYm9vbCBpc1Byb2ZpbGluZykKLXsKLSAg
ICBpZiAobV9mcm9udGVuZCkKLSAgICAgICAgbV9mcm9udGVuZC0+c2V0UmVjb3JkaW5nUHJvZmls
ZShpc1Byb2ZpbGluZyk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Z2V0T2Jq
ZWN0QnlIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIGhlYXBT
bmFwc2hvdE9iamVjdElkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8VHlwZUJ1
aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCkKK3ZvaWQgSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQ6OmdldE9iamVjdEJ5SGVhcE9iamVjdElkKEVycm9yU3RyaW5nKiBlcnJv
ciwgY29uc3QgU3RyaW5nJiBoZWFwU25hcHNob3RPYmplY3RJZCwgY29uc3QgU3RyaW5nKiBvYmpl
Y3RHcm91cCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1
bHQpCiB7CiAgICAgYm9vbCBvazsKICAgICB1bnNpZ25lZCBpZCA9IGhlYXBTbmFwc2hvdE9iamVj
dElkLnRvVUludCgmb2spOwpAQCAtNDc1LDcgKzU2MCw3IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6Z2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25z
dCBTCiAgICAgICAgICplcnJvciA9ICJGYWlsZWQgdG8gd3JhcCBvYmplY3QiOwogfQogCi12b2lk
IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmdldEhlYXBPYmplY3RJZChFcnJvclN0cmluZyogZXJy
b3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIFN0cmluZyogaGVhcFNuYXBzaG90T2Jq
ZWN0SWQpCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRIZWFwT2JqZWN0SWQo
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBTdHJpbmcq
IGhlYXBTbmFwc2hvdE9iamVjdElkKQogewogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2Ny
aXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQo
b2JqZWN0SWQpOwogICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKQEAgLTQ5
MSwzNyArNTc2LDEzIEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Z2V0SGVhcE9iamVj
dElkKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyCiAgICAgKmhlYXBTbmFwc2hv
dE9iamVjdElkID0gU3RyaW5nOjpudW1iZXIoaWQpOwogfQogCi12b2lkIEluc3BlY3RvclByb2Zp
bGVyQWdlbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0Cit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAg
IE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1v
cnlUeXBlczo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudCk7Ci0gICAgSW5zcGVjdG9yQmFzZUFnZW50
PEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJ
bmZvKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnNvbGVBZ2VudCwgImNvbnNvbGVBZ2VudCIp
OworICAgIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD46OnJl
cG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVyKG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCAiaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyIik7CiAgICAgaW5m
by5hZGRXZWFrUG9pbnRlcihtX2Zyb250ZW5kKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX3Byb2Zp
bGVzLCAicHJvZmlsZXMiKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3NuYXBzaG90cywgInNuYXBz
aG90cyIpOwotICAgIGluZm8uYWRkTWVtYmVyKG1fcHJvZmlsZU5hbWVJZGxlVGltZU1hcCwgInBy
b2ZpbGVOYW1lSWRsZVRpbWVNYXAiKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50
Ojp3aWxsUHJvY2Vzc1Rhc2soKQotewotICAgIGlmICghbV9wcm9maWxlTmFtZUlkbGVUaW1lTWFw
IHx8ICFtX3Byb2ZpbGVOYW1lSWRsZVRpbWVNYXAtPnNpemUoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIGlmICghbV9wcmV2aW91c1Rhc2tFbmRUaW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBk
b3VibGUgaWRsZVRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gbV9w
cmV2aW91c1Rhc2tFbmRUaW1lOwotICAgIG1fcHJldmlvdXNUYXNrRW5kVGltZSA9IDAuMDsKLSAg
ICBQcm9maWxlTmFtZUlkbGVUaW1lTWFwOjppdGVyYXRvciBlbmQgPSBtX3Byb2ZpbGVOYW1lSWRs
ZVRpbWVNYXAtPmVuZCgpOwotICAgIGZvciAoUHJvZmlsZU5hbWVJZGxlVGltZU1hcDo6aXRlcmF0
b3IgaXQgPSBtX3Byb2ZpbGVOYW1lSWRsZVRpbWVNYXAtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytp
dCkKLSAgICAgICAgaXQtPnZhbHVlICs9IGlkbGVUaW1lOwotfQotCi12b2lkIEluc3BlY3RvclBy
b2ZpbGVyQWdlbnQ6OmRpZFByb2Nlc3NUYXNrKCkKLXsKLSAgICBpZiAoIW1fcHJvZmlsZU5hbWVJ
ZGxlVGltZU1hcCB8fCAhbV9wcm9maWxlTmFtZUlkbGVUaW1lTWFwLT5zaXplKCkpCi0gICAgICAg
IHJldHVybjsKLSAgICBtX3ByZXZpb3VzVGFza0VuZFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAppbmRleCBmYTAz
YzIxMDI1NjQxMzM2NjRiOTdmYjA0ZWYwMThkMDE3YTM1MTVmLi5mNWMwNzdhODZiZjc1OWVmNWM0
Yzk1MDk1NDI3OWE0NjhkZjhkMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKQEAgLTU5LDIzICs1OSwyMSBAQCB0eXBlZGVmIFN0
cmluZyBFcnJvclN0cmluZzsKIGNsYXNzIEluc3BlY3RvclByb2ZpbGVyQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+LCBwdWJsaWMgSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXI6OlByb2ZpbGVyQ29tbWFuZEhhbmRsZXIgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKEluc3BlY3RvclByb2ZpbGVyQWdlbnQpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxl
ckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dCosIFBhZ2UqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdl
ciopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0
ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgUGFnZSosIElu
c3BlY3RvckNvbXBvc2l0ZVN0YXRlKik7CiAjaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgc3RhdGlj
IFBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdB
Z2VudHMqLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBXb3JrZXJDb250ZXh0KiwgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKKyAgICBzdGF0aWMgUGFz
c093blB0cjxJbnNwZWN0b3JQcm9maWxlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50
cyosIEluc3BlY3RvckNvbnNvbGVBZ2VudCosIFdvcmtlckNvbnRleHQqLCBJbnNwZWN0b3JDb21w
b3NpdGVTdGF0ZSopOwogI2VuZGlmCiAgICAgdmlydHVhbCB+SW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dCgpOwogCiAgICAgdm9pZCBhZGRQcm9maWxlKFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZT4gcHJw
UHJvZmlsZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwog
ICAgIHZvaWQgYWRkUHJvZmlsZUZpbmlzaGVkTWVzc2FnZVRvQ29uc29sZShQYXNzUmVmUHRyPFNj
cmlwdFByb2ZpbGU+LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCk7CiAgICAgdm9pZCBhZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0NvbnNvbGUoY29uc3QgU3Ry
aW5nJiB0aXRsZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwp
OwotICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0R2FyYmFnZShFcnJvclN0cmluZyopOwogICAgIHZp
cnR1YWwgdm9pZCBjbGVhclByb2ZpbGVzKEVycm9yU3RyaW5nKikgeyByZXNldFN0YXRlKCk7IH0K
ICAgICB2b2lkIHJlc2V0U3RhdGUoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBjYXVzZXNSZWNvbXBp
bGF0aW9uKEVycm9yU3RyaW5nKiwgYm9vbCopOwogICAgIHZpcnR1YWwgdm9pZCByZWNvbXBpbGVT
Y3JpcHQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGlzU2FtcGxpbmcoRXJyb3JTdHJpbmcqLCBi
b29sKik7Ci0gICAgdmlydHVhbCB2b2lkIGhhc0hlYXBQcm9maWxlcihFcnJvclN0cmluZyosIGJv
b2wqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopOwpAQCAtODgsNTYgKzg2LDk2IEBAIHB1Ymxp
YzoKICAgICBTdHJpbmcgZ2V0Q3VycmVudFVzZXJJbml0aWF0ZWRQcm9maWxlTmFtZShib29sIGlu
Y3JlbWVudFByb2ZpbGVOdW1iZXIgPSBmYWxzZSk7CiAgICAgdmlydHVhbCB2b2lkIGdldFByb2Zp
bGVIZWFkZXJzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVp
bGRlcjo6UHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+ID4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
Q1BVUHJvZmlsZShFcnJvclN0cmluZyosIGludCB1aWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6UHJv
ZmlsZXI6OkNQVVByb2ZpbGU+Jik7Ci0gICAgdmlydHVhbCB2b2lkIGdldEhlYXBTbmFwc2hvdChF
cnJvclN0cmluZyosIGludCB1aWQpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQcm9maWxlKEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB0eXBlLCBpbnQgdWlkKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopOwogICAgIHZpcnR1YWwgdm9pZCBj
bGVhckZyb250ZW5kKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmUoKTsKIAotICAgIHZpcnR1
YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgY29uc3QgYm9vbCogcmVwb3J0
UHJvZ3Jlc3MpOwogICAgIHZvaWQgdG9nZ2xlUmVjb3JkQnV0dG9uKGJvb2wgaXNQcm9maWxpbmcp
OwogCi0gICAgdmlydHVhbCB2b2lkIGdldE9iamVjdEJ5SGVhcE9iamVjdElkKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBoZWFwU25hcHNob3RPYmplY3RJZCwgY29uc3QgU3RyaW5nKiBvYmpl
Y3RHcm91cCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1
bHQpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqLCBjb25z
dCBTdHJpbmcmIG9iamVjdElkLCBTdHJpbmcqIGhlYXBTbmFwc2hvdE9iamVjdElkKTsKLQogICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Qg
T1ZFUlJJREU7CiAKICAgICB2b2lkIHdpbGxQcm9jZXNzVGFzaygpOwogICAgIHZvaWQgZGlkUHJv
Y2Vzc1Rhc2soKTsKIAogcHJvdGVjdGVkOgotICAgIEluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNvbGVBZ2VudCosIEluc3BlY3RvckNvbXBv
c2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAgSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgSW5z
cGVjdG9yQ29tcG9zaXRlU3RhdGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQcm9maWxpbmco
Y29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTY3JpcHRQ
cm9maWxlPiBzdG9wUHJvZmlsaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpID0gMDsKIAogcHJpdmF0
ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQgaW50LCBSZWZQdHI8U2NyaXB0UHJvZmls
ZT4gPiBQcm9maWxlc01hcDsKLSAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQgaW50LCBSZWZQ
dHI8U2NyaXB0SGVhcFNuYXBzaG90PiA+IEhlYXBTbmFwc2hvdHNNYXA7CiAKICAgICB2b2lkIHJl
c2V0RnJvbnRlbmRQcm9maWxlcygpOwogICAgIHZvaWQgcmVzdG9yZUVuYWJsZW1lbnQoKTsKIAog
ICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiBjcmVh
dGVQcm9maWxlSGVhZGVyKGNvbnN0IFNjcmlwdFByb2ZpbGUmKTsKLSAgICBQYXNzUmVmUHRyPFR5
cGVCdWlsZGVyOjpQcm9maWxlcjo6UHJvZmlsZUhlYWRlcj4gY3JlYXRlU25hcHNob3RIZWFkZXIo
Y29uc3QgU2NyaXB0SGVhcFNuYXBzaG90Jik7CiAKICAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQq
IG1fY29uc29sZUFnZW50OwotICAgIEluamVjdGVkU2NyaXB0TWFuYWdlciogbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXI7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OlByb2ZpbGVyKiBtX2Zyb250ZW5k
OwogICAgIGJvb2wgbV9lbmFibGVkOwogICAgIGJvb2wgbV9yZWNvcmRpbmdDUFVQcm9maWxlOwog
ICAgIGJvb2wgbV9oZWFkZXJzUmVxdWVzdGVkOwogICAgIGludCBtX2N1cnJlbnRVc2VySW5pdGlh
dGVkUHJvZmlsZU51bWJlcjsKICAgICB1bnNpZ25lZCBtX25leHRVc2VySW5pdGlhdGVkUHJvZmls
ZU51bWJlcjsKLSAgICB1bnNpZ25lZCBtX25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBzaG90TnVt
YmVyOwogICAgIFByb2ZpbGVzTWFwIG1fcHJvZmlsZXM7Ci0gICAgSGVhcFNuYXBzaG90c01hcCBt
X3NuYXBzaG90czsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIGRvdWJsZT4gUHJvZmls
ZU5hbWVJZGxlVGltZU1hcDsKICAgICBQcm9maWxlTmFtZUlkbGVUaW1lTWFwKiBtX3Byb2ZpbGVO
YW1lSWRsZVRpbWVNYXA7CiAgICAgZG91YmxlIG1fcHJldmlvdXNUYXNrRW5kVGltZTsKIH07CiAK
K2NsYXNzIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VB
Z2VudDxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4sIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlcjo6SGVhcFByb2ZpbGVyQ29tbWFuZEhhbmRsZXIgeworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudCgpOworCisgICAgdm9pZCBhZGRQcm9maWxlKFBhc3NSZWZQdHI8U2Ny
aXB0UHJvZmlsZT4gcHJwUHJvZmlsZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwpOworICAgIHZvaWQgYWRkUHJvZmlsZUZpbmlzaGVkTWVzc2FnZVRvQ29uc29s
ZShQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCk7CisgICAgdm9pZCBhZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0Nv
bnNvbGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwpOworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0R2FyYmFnZShFcnJvclN0
cmluZyopOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclByb2ZpbGVzKEVycm9yU3RyaW5nKikgeyBy
ZXNldFN0YXRlKCk7IH0KKyAgICB2b2lkIHJlc2V0U3RhdGUoKTsKKworICAgIHZpcnR1YWwgdm9p
ZCBoYXNIZWFwUHJvZmlsZXIoRXJyb3JTdHJpbmcqLCBib29sKik7CisKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0UHJvZmlsZUhlYWRlcnMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFy
cmF5PFR5cGVCdWlsZGVyOjpIZWFwUHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+ID4mKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZ2V0SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgaW50IHVpZCk7CisgICAg
dmlydHVhbCB2b2lkIHJlbW92ZVByb2ZpbGUoRXJyb3JTdHJpbmcqLCBpbnQgdWlkKTsKKworICAg
IHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopOworICAgIHZpcnR1
YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmUoKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgY29uc3QgYm9v
bCogcmVwb3J0UHJvZ3Jlc3MpOworCisgICAgdmlydHVhbCB2b2lkIGdldE9iamVjdEJ5SGVhcE9i
amVjdElkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBoZWFwU25hcHNob3RPYmplY3RJZCwg
Y29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpS
ZW1vdGVPYmplY3Q+JiByZXN1bHQpOworICAgIHZpcnR1YWwgdm9pZCBnZXRIZWFwT2JqZWN0SWQo
RXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBTdHJpbmcqIGhlYXBTbmFwc2hv
dE9iamVjdElkKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKKyAgICB2b2lkIHdpbGxQcm9jZXNzVGFzaygp
OworICAgIHZvaWQgZGlkUHJvY2Vzc1Rhc2soKTsKKworcHJvdGVjdGVkOgorICAgIEluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3Np
dGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOworCitwcml2YXRlOgorICAgIHR5cGVk
ZWYgSGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPFNjcmlwdEhlYXBTbmFwc2hvdD4gPiBIZWFwU25h
cHNob3RzTWFwOworCisgICAgdm9pZCByZXNldEZyb250ZW5kUHJvZmlsZXMoKTsKKworICAgIFBh
c3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkhlYXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcj4gY3JlYXRl
U25hcHNob3RIZWFkZXIoY29uc3QgU2NyaXB0SGVhcFNuYXBzaG90Jik7CisKKyAgICBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOworICAgIEluc3BlY3RvckZy
b250ZW5kOjpIZWFwUHJvZmlsZXIqIG1fZnJvbnRlbmQ7CisgICAgYm9vbCBtX2hlYWRlcnNSZXF1
ZXN0ZWQ7CisgICAgdW5zaWduZWQgbV9uZXh0VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJl
cjsKKyAgICBIZWFwU25hcHNob3RzTWFwIG1fc25hcHNob3RzOworfTsKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVO
QUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
dHJ1bWVudGluZ0FnZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRp
bmdBZ2VudHMuaAppbmRleCAyYTgyODdlZWM2MDlmZmZmOTAzNGY4ZGYyMjAzMzJhNjRjYjZhMzU5
Li5jZDhhMmQ5Mjc4NGYyNGZmMjJjNjY0NDVjYzM0MmRiMWM1NGEyYjBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKQEAgLTQ5LDYgKzQ5LDcg
QEAgY2xhc3MgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRGF0YWJh
c2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQ7CitjbGFzcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDsKIGNsYXNz
IEluc3BlY3RvckxheWVyVHJlZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwogY2xh
c3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDsKQEAgLTEyNyw2ICsxMjgsOSBAQCBwdWJsaWM6CiAK
ICAgICBJbnNwZWN0b3JQcm9maWxlckFnZW50KiBpbnNwZWN0b3JQcm9maWxlckFnZW50KCkgY29u
c3QgeyByZXR1cm4gbV9pbnNwZWN0b3JQcm9maWxlckFnZW50OyB9CiAgICAgdm9pZCBzZXRJbnNw
ZWN0b3JQcm9maWxlckFnZW50KEluc3BlY3RvclByb2ZpbGVyQWdlbnQqIGFnZW50KSB7IG1faW5z
cGVjdG9yUHJvZmlsZXJBZ2VudCA9IGFnZW50OyB9CisKKyAgICBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudCogaW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2lu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50OyB9CisgICAgdm9pZCBzZXRJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudChJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudCA9IGFnZW50OyB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXT1JL
RVJTKQpAQCAtMTcwLDYgKzE3NCw3IEBAIHByaXZhdGU6CiAgICAgUGFnZURlYnVnZ2VyQWdlbnQq
IG1fcGFnZURlYnVnZ2VyQWdlbnQ7CiAgICAgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCogbV9p
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OwogICAgIEluc3BlY3RvclByb2ZpbGVyQWdlbnQqIG1f
aW5zcGVjdG9yUHJvZmlsZXJBZ2VudDsKKyAgICBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCog
bV9pbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDsKICNlbmRpZgogI2lmIEVOQUJMRShXT1JLRVJT
KQogICAgIEluc3BlY3RvcldvcmtlckFnZW50KiBtX2luc3BlY3RvcldvcmtlckFnZW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCmluZGV4IDljNzVjOTM3ZDEzOGU5OTExNzE4OTk2YmE4NjNjNWUzMzVmYmM0ZGEuLjkz
NjJiZTZiMGFmNTMwYzZlNDZhZjg5NmUyYTUwYjliNzM5MmIxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAg
LTEwOSw3ICsxMDksOCBAQCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyKFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleAogICAgIG1fcnVudGltZUFn
ZW50LT5zZXRTY3JpcHREZWJ1Z1NlcnZlcigmZGVidWdnZXJBZ2VudC0+c2NyaXB0RGVidWdTZXJ2
ZXIoKSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRlYnVnZ2VyQWdlbnQucmVsZWFzZSgpKTsKIAot
ICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0
cnVtZW50aW5nQWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQuZ2V0KCksIHdvcmtlckNvbnRleHQs
IG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9h
Z2VudHMuYXBwZW5kKEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRp
bmdBZ2VudHMuZ2V0KCksIGNvbnNvbGVBZ2VudC5nZXQoKSwgd29ya2VyQ29udGV4dCwgbV9zdGF0
ZS5nZXQoKSkpOworICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKICNlbmRpZgogICAgIG1fYWdlbnRzLmFwcGVu
ZChJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdl
dCgpLCAwLCBtX3N0YXRlLmdldCgpLCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpXb3JrZXJJbnNw
ZWN0b3IsIDApKTsKICAgICBtX2FnZW50cy5hcHBlbmQoY29uc29sZUFnZW50LnJlbGVhc2UoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFw
c2hvdERhdGFHcmlkcy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90RGF0YUdyaWRzLmpzCmluZGV4IDExYjM0OWE0MTU1YmJmNmQ2N2I0YTJiY2EyNWM3
ZTA5YWY3MGIxYjUuLmRlMzhiYzY5ODRmYWI5MTQ1OWExMTQ5Y2ZiNzYxZDY3NGQ4ZmNhMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90
RGF0YUdyaWRzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90RGF0YUdyaWRzLmpzCkBAIC0xMzQsNyArMTM0LDcgQEAgV2ViSW5zcGVjdG9yLkhl
YXBTbmFwc2hvdFNvcnRhYmxlRGF0YUdyaWQucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKLSAgICAgKiBAcGFyYW0ge1Byb2ZpbGVyQWdlbnQuSGVhcFNuYXBzaG90T2JqZWN0SWR9IGhl
YXBTbmFwc2hvdE9iamVjdElkCisgICAgICogQHBhcmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5IZWFw
U25hcHNob3RPYmplY3RJZH0gaGVhcFNuYXBzaG90T2JqZWN0SWQKICAgICAgKi8KICAgICBoaWdo
bGlnaHRPYmplY3RCeUhlYXBTbmFwc2hvdElkOiBmdW5jdGlvbihoZWFwU25hcHNob3RPYmplY3RJ
ZCkKICAgICB7CkBAIC01MjgsNyArNTI4LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdENv
bnN0cnVjdG9yc0RhdGFHcmlkLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVy
cmlkZQotICAgICAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5IZWFwU25hcHNob3RPYmplY3RJZH0g
aWQKKyAgICAgKiBAcGFyYW0ge0hlYXBQcm9maWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElk
fSBpZAogICAgICAqLwogICAgIGhpZ2hsaWdodE9iamVjdEJ5SGVhcFNuYXBzaG90SWQ6IGZ1bmN0
aW9uKGlkKQogICAgIHsKQEAgLTczNCw3ICs3MzQsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBz
aG90RG9taW5hdG9yc0RhdGFHcmlkLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBv
dmVycmlkZQotICAgICAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5IZWFwU25hcHNob3RPYmplY3RJ
ZH0gaWQKKyAgICAgKiBAcGFyYW0ge0hlYXBQcm9maWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVj
dElkfSBpZAogICAgICAqLwogICAgIGhpZ2hsaWdodE9iamVjdEJ5SGVhcFNuYXBzaG90SWQ6IGZ1
bmN0aW9uKGlkKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSGVhcFNuYXBzaG90R3JpZE5vZGVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanMKaW5kZXggZjI5NDFjNzZhMWYy
OTQxNDdjZWFjMGI4MDQ2ODc3NGZkODk1Njg2Yy4uYzllNDAwYjhlZThmOGM0OTQ3ZDdmMGE3YmNj
ZmI4NjczMjI2NmI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanMKQEAgLTQ2NSw3ICs0NjUsNyBA
QCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5vZGUucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUHJpbWl0aXZlVmFsdWUoV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJOb3QgYXZhaWxhYmxlIikpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFBy
b2ZpbGVyQWdlbnQuZ2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQoU3RyaW5nKHRoaXMuc25hcHNob3RO
b2RlSWQpLCBvYmplY3RHcm91cE5hbWUsIGZvcm1hdFJlc3VsdCk7CisgICAgICAgICAgICBIZWFw
UHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBPYmplY3RJZChTdHJpbmcodGhpcy5zbmFwc2hv
dE5vZGVJZCksIG9iamVjdEdyb3VwTmFtZSwgZm9ybWF0UmVzdWx0KTsKICAgICAgICAgfQogICAg
IH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90Vmlldy5qcwppbmRleCBiYTBiOTRmMmMzZmFmNGExM2VmZWVjMjI2NjE0NjQ2MWQ1
ZDhlMGM4Li43OTM3OWQ5MGUzMTdkZjc0NjQxMGZkYWM2NjgzMjc5MTJjNTIyODQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RW
aWV3LmpzCkBAIC04MDEsNyArODAxLDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2Zp
bGVUeXBlLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQotICAgICAq
IEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5Qcm9maWxlSGVhZGVyfSBwcm9maWxlCisgICAgICogQHBh
cmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5Qcm9maWxlSGVhZGVyfSBwcm9maWxlCiAgICAgICogQHJl
dHVybiB7V2ViSW5zcGVjdG9yLlByb2ZpbGVIZWFkZXJ9CiAgICAgICovCiAgICAgY3JlYXRlUHJv
ZmlsZTogZnVuY3Rpb24ocHJvZmlsZSkKQEAgLTg3OSw3ICs4NzksNyBAQCBXZWJJbnNwZWN0b3Iu
SGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogCiAgICAgc3RhcnRTbmFwc2hvdFRyYW5z
ZmVyOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBQcm9maWxlckFnZW50LmdldEhlYXBTbmFw
c2hvdCh0aGlzLnVpZCk7CisgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hv
dCh0aGlzLnVpZCk7CiAgICAgfSwKIAogICAgIHNuYXBzaG90Q29uc3RydWN0b3JOYW1lOiBmdW5j
dGlvbigpCkBAIC05ODYsNyArOTg2LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVy
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX3JlY2VpdmVyID0gZmlsZU91dHB1dFN0
cmVhbTsKICAgICAgICAgICAgIHRoaXMuX3NhdmVkQ2h1bmtzID0gMDsKICAgICAgICAgICAgIHRo
aXMuX3VwZGF0ZVRyYW5zZmVyUHJvZ3Jlc3MoMCwgdGhpcy5fdG90YWxOdW1iZXJPZkNodW5rcyk7
Ci0gICAgICAgICAgICBQcm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hvdCh0aGlzLnVpZCk7Cisg
ICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5nZXRIZWFwU25hcHNob3QodGhpcy51aWQpOwog
ICAgICAgICB9CiAgICAgICAgIHRoaXMuX3NhdmluZ1RvRmlsZSA9IHRydWU7CiAgICAgICAgIHRo
aXMuX2ZpbGVOYW1lID0gdGhpcy5fZmlsZU5hbWUgfHwgIkhlYXAtIiArIG5ldyBEYXRlKCkudG9J
U084NjAxQ29tcGFjdCgpICsgIi5oZWFwc25hcHNob3QiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IGVjODkyYTZlMDQz
ZGY5MDA4MjNkZWUzNzM3OTViZjkwZDRjNDA1OTkuLjlhNGRiNjgwZjIzOTJmZTA3NTZhOTUzMjU1
OTk1MTNmZGFlYjcxMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTMwMyw2ICszMDMsNyBAQCBXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxl
VHlwZShuZXcgV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVUeXBlKCkpOwogCiAgICAgSW5zcGVj
dG9yQmFja2VuZC5yZWdpc3RlclByb2ZpbGVyRGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9yLlBy
b2ZpbGVyRGlzcGF0Y2hlcih0aGlzKSk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3Rlckhl
YXBQcm9maWxlckRpc3BhdGNoZXIobmV3IFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZXJEaXNwYXRj
aGVyKHRoaXMpKTsKIAogICAgIHRoaXMuX2NyZWF0ZUZpbGVTZWxlY3RvckVsZW1lbnQoKTsKICAg
ICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLl9oYW5k
bGVDb250ZXh0TWVudUV2ZW50LmJpbmQodGhpcyksIHRydWUpOwpAQCAtNDY3LDEyICs0NjgsMTMg
QEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgIF9jbGVhclBy
b2ZpbGVzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBQcm9maWxlckFnZW50LmNsZWFyUHJv
ZmlsZXMoKTsKKyAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuY2xlYXJQcm9maWxlcygpOwogICAg
ICAgICB0aGlzLl9yZXNldCgpOwogICAgIH0sCiAKICAgICBfZ2FyYmFnZUNvbGxlY3RCdXR0b25D
bGlja2VkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBQcm9maWxlckFnZW50LmNvbGxlY3RH
YXJiYWdlKCk7CisgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmNvbGxlY3RHYXJiYWdlKCk7CiAg
ICAgfSwKIAogICAgIC8qKgpAQCAtNjI1LDggKzYyNywxMiBAQCBXZWJJbnNwZWN0b3IuUHJvZmls
ZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgc2lkZWJhclBhcmVudC5yZW1vdmVDaGls
ZChwcm9maWxlLl9wcm9maWxlc1RyZWVFbGVtZW50KTsKIAotICAgICAgICBpZiAoIXByb2ZpbGUu
aXNUZW1wb3JhcnkpCi0gICAgICAgICAgICBQcm9maWxlckFnZW50LnJlbW92ZVByb2ZpbGUocHJv
ZmlsZS5wcm9maWxlVHlwZSgpLmlkLCBwcm9maWxlLnVpZCk7CisgICAgICAgIGlmICghcHJvZmls
ZS5pc1RlbXBvcmFyeSkgeworICAgICAgICAgICAgaWYgKHByb2ZpbGUucHJvZmlsZVR5cGUoKS5p
ZCA9PSBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlkKQorICAgICAg
ICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LnJlbW92ZVByb2ZpbGUocHJvZmlsZS51aWQpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQucmVtb3ZlUHJv
ZmlsZShwcm9maWxlLnByb2ZpbGVUeXBlKCkuaWQsIHByb2ZpbGUudWlkKTsKKyAgICAgICAgfQog
CiAgICAgICAgIC8vIE5vIG90aGVyIGl0ZW0gd2lsbCBiZSBzZWxlY3RlZCBpZiB0aGVyZSBhcmVu
J3QgYW55IG90aGVyIHByb2ZpbGVzLCBzbwogICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCB2aWV3
IGdldHMgY2xlYXJlZCB3aGVuIHRoZSBsYXN0IHByb2ZpbGUgaXMgcmVtb3ZlZC4KQEAgLTY4NCw3
ICs2OTAsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
fSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5IZWFwU25hcHNob3RP
YmplY3RJZH0gc25hcHNob3RPYmplY3RJZAorICAgICAqIEBwYXJhbSB7SGVhcFByb2ZpbGVyQWdl
bnQuSGVhcFNuYXBzaG90T2JqZWN0SWR9IHNuYXBzaG90T2JqZWN0SWQKICAgICAgKiBAcGFyYW0g
e3N0cmluZ30gdmlld05hbWUKICAgICAgKi8KICAgICBzaG93T2JqZWN0OiBmdW5jdGlvbihzbmFw
c2hvdE9iamVjdElkLCB2aWV3TmFtZSkKQEAgLTEwOTAsNyArMTA5Niw3IEBAIFdlYkluc3BlY3Rv
ci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICogQHBhcmFtIHs/c3RyaW5n
fSBlcnJvcgogICAgICAgICAgKiBAcGFyYW0ge0FycmF5LjxQcm9maWxlckFnZW50LlByb2ZpbGVI
ZWFkZXI+fSBwcm9maWxlSGVhZGVycwogICAgICAgICAgKi8KLSAgICAgICAgZnVuY3Rpb24gcG9w
dWxhdGVDYWxsYmFjayhlcnJvciwgcHJvZmlsZUhlYWRlcnMpIHsKKyAgICAgICAgZnVuY3Rpb24g
cG9wdWxhdGVQcm9maWxlc0NhbGxiYWNrKGVycm9yLCBwcm9maWxlSGVhZGVycykgewogICAgICAg
ICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHBy
b2ZpbGVIZWFkZXJzLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS51aWQgLSBiLnVpZDsg
fSk7CkBAIC0xMTAyLDcgKzExMDgsMjQgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgUHJvZmlsZXJB
Z2VudC5nZXRQcm9maWxlSGVhZGVycyhwb3B1bGF0ZUNhbGxiYWNrLmJpbmQodGhpcykpOworICAg
ICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHs/c3RyaW5nfSBlcnJvcgorICAgICAgICAgKiBA
cGFyYW0ge0FycmF5LjxIZWFwUHJvZmlsZXJBZ2VudC5Qcm9maWxlSGVhZGVyPn0gcHJvZmlsZUhl
YWRlcnMKKyAgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9uIHBvcHVsYXRlSGVhcFNuYXBzaG90
c0NhbGxiYWNrKGVycm9yLCBwcm9maWxlSGVhZGVycykgeworICAgICAgICAgICAgaWYgKGVycm9y
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHByb2ZpbGVIZWFkZXJzLnNv
cnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS51aWQgLSBiLnVpZDsgfSk7CisgICAgICAgICAg
ICB2YXIgcHJvZmlsZUhlYWRlcnNMZW5ndGggPSBwcm9maWxlSGVhZGVycy5sZW5ndGg7CisgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2ZpbGVIZWFkZXJzTGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgICAgICAgICB2YXIgcHJvZmlsZUhlYWRlciA9IHByb2ZpbGVIZWFkZXJzW2ldOwor
ICAgICAgICAgICAgICAgIHZhciBwcm9maWxlVHlwZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUoV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJZCk7CisgICAgICAgICAgICAg
ICAgdGhpcy5hZGRQcm9maWxlSGVhZGVyKHByb2ZpbGVUeXBlLmNyZWF0ZVByb2ZpbGUocHJvZmls
ZUhlYWRlcikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgUHJvZmlsZXJB
Z2VudC5nZXRQcm9maWxlSGVhZGVycyhwb3B1bGF0ZVByb2ZpbGVzQ2FsbGJhY2suYmluZCh0aGlz
KSk7CisgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldFByb2ZpbGVIZWFkZXJzKHBvcHVsYXRl
SGVhcFNuYXBzaG90c0NhbGxiYWNrLmJpbmQodGhpcykpOwogCiAgICAgICAgIHRoaXMuX3Byb2Zp
bGVzV2VyZVJlcXVlc3RlZCA9IHRydWU7CiAgICAgfSwKQEAgLTExNjksNyArMTE5Miw3IEBAIFdl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZnVuY3Rpb24g
ZG9uZSgpIHsKICAgICAgICAgICAgIHRoaXMuX2xhdW5jaGVyVmlldy5wcm9maWxlRmluaXNoZWQo
KTsKICAgICAgICAgfQotICAgICAgICBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3QodHJ1
ZSwgZG9uZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQudGFrZUhlYXBT
bmFwc2hvdCh0cnVlLCBkb25lLmJpbmQodGhpcykpOwogICAgICAgICBXZWJJbnNwZWN0b3IudXNl
ck1ldHJpY3MuUHJvZmlsZXNIZWFwUHJvZmlsZVRha2VuLnJlY29yZCgpOwogICAgIH0sCiAKQEAg
LTEyMDgsNyArMTIzMSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9
IHsKIAogICAgICAgICBmdW5jdGlvbiByZXZlYWxJblZpZXcodmlld05hbWUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0SGVhcE9iamVjdElkKG9iamVjdElkLCBkaWRS
ZWNlaXZlSGVhcE9iamVjdElkLmJpbmQodGhpcywgdmlld05hbWUpKTsKKyAgICAgICAgICAgIEhl
YXBQcm9maWxlckFnZW50LmdldEhlYXBPYmplY3RJZChvYmplY3RJZCwgZGlkUmVjZWl2ZUhlYXBP
YmplY3RJZC5iaW5kKHRoaXMsIHZpZXdOYW1lKSk7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5j
dGlvbiBkaWRSZWNlaXZlSGVhcE9iamVjdElkKHZpZXdOYW1lLCBlcnJvciwgcmVzdWx0KQpAQCAt
MTI0OCwzMCArMTI3MSw1OSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXJEaXNwYXRjaGVyLnByb3Rv
dHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQotICAgICAqIEBwYXJhbSB7bnVt
YmVyfSB1aWQKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gY2h1bmsKKyAgICAgKiBAcGFyYW0ge2Jv
b2xlYW59IGlzUHJvZmlsaW5nCiAgICAgICovCi0gICAgYWRkSGVhcFNuYXBzaG90Q2h1bms6IGZ1
bmN0aW9uKHVpZCwgY2h1bmspCisgICAgc2V0UmVjb3JkaW5nUHJvZmlsZTogZnVuY3Rpb24oaXNQ
cm9maWxpbmcpCiAgICAgewotICAgICAgICB0aGlzLl9wcm9maWxlc1BhbmVsLl9hZGRIZWFwU25h
cHNob3RDaHVuayh1aWQsIGNodW5rKTsKKyAgICAgICAgdGhpcy5fcHJvZmlsZXNQYW5lbC5zZXRS
ZWNvcmRpbmdQcm9maWxlKFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZS5UeXBlSWQsIGlzUHJv
ZmlsaW5nKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQG92ZXJyaWRlCisgICAgICovCisg
ICAgcmVzZXRQcm9maWxlczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJvZmls
ZXNQYW5lbC5fcmVzZXQoKTsKKyAgICB9LAorfQorCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICog
QGltcGxlbWVudHMge0hlYXBQcm9maWxlckFnZW50LkRpc3BhdGNoZXJ9CisgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBwcm9maWxlc1BhbmVsCisgKi8KK1dlYkluc3BlY3Rv
ci5IZWFwUHJvZmlsZXJEaXNwYXRjaGVyID0gZnVuY3Rpb24ocHJvZmlsZXNQYW5lbCkKK3sKKyAg
ICB0aGlzLl9wcm9maWxlc1BhbmVsID0gcHJvZmlsZXNQYW5lbDsKK30KKworV2ViSW5zcGVjdG9y
LkhlYXBQcm9maWxlckRpc3BhdGNoZXIucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBw
YXJhbSB7SGVhcFByb2ZpbGVyQWdlbnQuUHJvZmlsZUhlYWRlcn0gcHJvZmlsZQorICAgICAqLwor
ICAgIGFkZFByb2ZpbGVIZWFkZXI6IGZ1bmN0aW9uKHByb2ZpbGUpCisgICAgeworICAgICAgICB2
YXIgcHJvZmlsZVR5cGUgPSB0aGlzLl9wcm9maWxlc1BhbmVsLmdldFByb2ZpbGVUeXBlKFdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZS5UeXBlSWQpOworICAgICAgICB0aGlzLl9w
cm9maWxlc1BhbmVsLmFkZFByb2ZpbGVIZWFkZXIocHJvZmlsZVR5cGUuY3JlYXRlUHJvZmlsZShw
cm9maWxlKSk7CiAgICAgfSwKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQogICAgICAqIEBw
YXJhbSB7bnVtYmVyfSB1aWQKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gY2h1bmsKICAgICAgKi8K
LSAgICBmaW5pc2hIZWFwU25hcHNob3Q6IGZ1bmN0aW9uKHVpZCkKKyAgICBhZGRIZWFwU25hcHNo
b3RDaHVuazogZnVuY3Rpb24odWlkLCBjaHVuaykKICAgICB7Ci0gICAgICAgIHRoaXMuX3Byb2Zp
bGVzUGFuZWwuX2ZpbmlzaEhlYXBTbmFwc2hvdCh1aWQpOworICAgICAgICB0aGlzLl9wcm9maWxl
c1BhbmVsLl9hZGRIZWFwU25hcHNob3RDaHVuayh1aWQsIGNodW5rKTsKICAgICB9LAogCiAgICAg
LyoqCiAgICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtib29sZWFufSBpc1Byb2ZpbGlu
ZworICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1aWQKICAgICAgKi8KLSAgICBzZXRSZWNvcmRpbmdQ
cm9maWxlOiBmdW5jdGlvbihpc1Byb2ZpbGluZykKKyAgICBmaW5pc2hIZWFwU25hcHNob3Q6IGZ1
bmN0aW9uKHVpZCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwuc2V0UmVjb3Jk
aW5nUHJvZmlsZShXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUuVHlwZUlkLCBpc1Byb2ZpbGlu
Zyk7CisgICAgICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwuX2ZpbmlzaEhlYXBTbmFwc2hvdCh1aWQp
OwogICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCBhMzNiZWVlNDQ2NDZkYWJiOGM5NDM5MGFl
YzcyOTgzZTc5MTRjZjBiLi5mMWIzMmVhYmI4N2ZjMzBlM2NjNTAyMTM1MTkyOTExODJhYTlmZWYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZVBhbmVsLmpzCkBAIC01ODAsNyArNTgwLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlID0gewogCiAgICAgX2dhcmJhZ2VDb2xsZWN0QnV0dG9uQ2xpY2tlZDogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgUHJvZmlsZXJBZ2VudC5jb2xsZWN0R2FyYmFnZSgpOworICAg
ICAgICBIZWFwUHJvZmlsZXJBZ2VudC5jb2xsZWN0R2FyYmFnZSgpOwogICAgIH0sCiAKICAgICBf
Z2x1ZVBhcmVudEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggYjg4MzVmZTM2MDRlZTI4YzY0
NWI5Yjk4ODhlYTE2ZTMyZDRjNzBkMC4uNWM1MDc1YzgxZGJkYTMxMjE2MjI2NDg3N2EwNmUzNTY1
YmQ2MDczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuanMKQEAgLTM2OCw3ICszNjgsNyBAQCBXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lID0g
ZnVuY3Rpb24oKQogICAgIERlYnVnZ2VyQWdlbnQuc3VwcG9ydHNTZXBhcmF0ZVNjcmlwdENvbXBp
bGF0aW9uQW5kRXhlY3V0aW9uKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHkuYmlu
ZChXZWJJbnNwZWN0b3IsICJzZXBhcmF0ZVNjcmlwdENvbXBpbGF0aW9uQW5kRXhlY3V0aW9uRW5h
YmxlZCIsIG51bGwpKTsKICAgICBQcm9maWxlckFnZW50LmNhdXNlc1JlY29tcGlsYXRpb24oV2Vi
SW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3RvciwgInByb2Zp
bGVyQ2F1c2VzUmVjb21waWxhdGlvbiIsIG51bGwpKTsKICAgICBQcm9maWxlckFnZW50LmlzU2Ft
cGxpbmcoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3Rv
ciwgInNhbXBsaW5nQ1BVUHJvZmlsZXIiLCBudWxsKSk7Ci0gICAgUHJvZmlsZXJBZ2VudC5oYXNI
ZWFwUHJvZmlsZXIoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYklu
c3BlY3RvciwgImhlYXBQcm9maWxlclByZXNlbnQiLCBudWxsKSk7CisgICAgSGVhcFByb2ZpbGVy
QWdlbnQuaGFzSGVhcFByb2ZpbGVyKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHku
YmluZChXZWJJbnNwZWN0b3IsICJoZWFwUHJvZmlsZXJQcmVzZW50IiwgbnVsbCkpOwogICAgIFRp
bWVsaW5lQWdlbnQuc3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlvbihXZWJJbnNwZWN0b3IuX2lu
aXRpYWxpemVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAidGltZWxpbmVTdXBwb3J0c0Zy
YW1lSW5zdHJ1bWVudGF0aW9uIiwgbnVsbCkpOwogICAgIFRpbWVsaW5lQWdlbnQuY2FuTW9uaXRv
ck1haW5UaHJlYWQoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYklu
c3BlY3RvciwgInRpbWVsaW5lQ2FuTW9uaXRvck1haW5UaHJlYWQiLCBudWxsKSk7CiAgICAgUGFn
ZUFnZW50LmNhblNob3dGUFNDb3VudGVyKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxp
dHkuYmluZChXZWJJbnNwZWN0b3IsICJjYW5TaG93RlBTQ291bnRlciIsIG51bGwpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApp
bmRleCA0ZWE0NjBhMTBiNjA4OTFjYTVlZWVjZGFhOGYzNzM1NTljZTgxOGIzLi42MDgzZDk2N2Ix
ZTlkMjZlY2Q1NjNlYzk5Yzk4ODBjNTM3NGI0MDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC03NzgsNyArNzc4LDcg
QEAgYm9vbCBXZWJEZXZUb29sc0FnZW50OjpzaG91bGRJbnRlcnJ1cHRGb3JNZXNzYWdlKGNvbnN0
IFdlYlN0cmluZyYgbWVzc2FnZSkKICAgICAgICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmROYW1lc1tJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
cjo6a1Byb2ZpbGVyX3N0YXJ0Q21kXQogICAgICAgICB8fCBjb21tYW5kTmFtZSA9PSBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Y29tbWFuZE5hbWVzW0luc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyOjprUHJvZmlsZXJfc3RvcENtZF0KICAgICAgICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmROYW1lc1tJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcjo6a1Byb2ZpbGVyX2dldENQVVByb2ZpbGVDbWRdCi0gICAgICAgIHx8IGNvbW1hbmROYW1l
ID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpjb21tYW5kTmFtZXNbSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXI6OmtQcm9maWxlcl9nZXRIZWFwU25hcHNob3RDbWRdOworICAgICAgICB8
fCBjb21tYW5kTmFtZSA9PSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Y29tbWFuZE5hbWVz
W0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjprSGVhcFByb2ZpbGVyX2dldEhlYXBTbmFwc2hv
dENtZF07CiB9CiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudDo6cHJvY2Vzc1BlbmRpbmdNZXNzYWdl
cygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggODI4MTBmMzdhNTdlNjg5ZGQ5ZjU2ZjNjOTQ2NDE2ZjBhNDQ2ZTEwYy4uZDAx
NWU5NzNkYmIxYzZkMDVhZGJlMTI1NGNjY2UyNjI5NGEzYzA5NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEzLTAyLTAxICBBbGV4ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wg
aW50byBQcm9maWxlciBhbmQgSGVhcFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBz
aGFyZSB0aGUgc2FtZSBkb21haW4gJ1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAg
IEluIGZhY3QgdGhlc2UgdHdvIHByb2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29t
bW9uLiBTbyBwdXQgZWFjaCBpbnRvIGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQg
YWxzbyBoZWxwIHdoZW4gUHJvZmlsZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9v
bHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJv
ZmlsZS1jcmFzaC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9IZWFwU25hcHNo
b3RUZXN0KToKKwogMjAxMy0wMi0wMSAgU3VkYXJzYW5hIE5hZ2luZW5pICA8c3VkYXJzYW5hLm5h
Z2luZW5pQGludGVsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEVGTCBnYXJkZW5pbmcuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1n
ZXQtcHJvZmlsZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3QtZ2V0LXByb2ZpbGUtY3Jhc2guaHRtbAppbmRleCA4NTYxYmNiODExZjMxMDNh
M2M1N2E2NTFjMmI2Y2NlMjgxYTA1MTgwLi41NDRjYjEyMjE4OGYzM2QxNDc1MTQ4NDkyZmRjNWRk
ZmVjOWYzZGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWwKQEAgLTE0
LDcgKzE0LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgY29uc29sZS5sb2co
ZXJyb3JTdHJpbmcpOwogICAgICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KC0xLCBmaW5pc2gpOworICAg
ICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KC0xLCBmaW5pc2gpOwog
ICAgICAgICB9CiAgICAgXSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRvbS13cmFwcGVyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRvbS13cmFwcGVy
Lmh0bWwKaW5kZXggMzgyMDdmYjk1NjIwNzJlNTNjNTc3ZGZhODY1YWEwMDFiOWM3MTgxYi4uMDM1
ZmM0Y2U3YjQ5NTc5OTMxOTQzMzAwMjUzOGIzNGZlNzU5MzE4NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1kb20td3JhcHBl
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbApAQCAtMTQsNyArMTQsNyBAQCBmdW5jdGlvbiBoYW5k
bGVMb2FkKCkKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwo
InByb2ZpbGVzIik7Ci0gICAgUHJvZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KHN0ZXAwKTsK
KyAgICBIZWFwUHJvZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KHN0ZXAwKTsKIAogICAgIGZ1
bmN0aW9uIHN0ZXAwKCkKICAgICB7CkBAIC00Miw3ICs0Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICAgICAgICAgIGJvZHlXcmFwcGVySWRzLnB1c2goaXQubm9kZS5pZCk7CiAgICAgICAg
IH0KICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib2R5V3JhcHBlcklkcy5sZW5ndGg7IGkr
KykKLSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQoYm9k
eVdyYXBwZXJJZHNbaV0sIHVuZGVmaW5lZCwgZGlkR2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQpOwor
ICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuZ2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQoYm9k
eVdyYXBwZXJJZHNbaV0sIHVuZGVmaW5lZCwgZGlkR2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQpOwog
CiAgICAgICAgIHZhciByZXNvbHZlZE9iamVjdHNDb3VudCA9IDA7CiAgICAgICAgIHZhciByZW1v
dGVPYmplY3RzID0gW107CkBAIC02OSw3ICs2OSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAgICAgaWYgKCsrZGlkR2V0T3duUHJvcGVydGllc0NvdW50ICE9PSByZW1vdGVPYmplY3RzLmxl
bmd0aCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIFByb2ZpbGVyQWdl
bnQuY2xlYXJQcm9maWxlcyhkb25lKTsKKyAgICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmNs
ZWFyUHJvZmlsZXMoZG9uZSk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2Zp
bGVzLl9yZXNldCgpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbAppbmRleCA5NDBi
NjRiZDI2ODBmMzJiZTVlMzM5ZWJhYzIzYmMwNTI0OWU3NGVjLi5jZDg2NWJlMDdhNjlmN2E5Nzkx
NjBhZGNhOGVlMjk4MmNiYWZkYjBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbApAQCAtMTcsNyArMTcsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICB2YXIgcGFydFNpemUgPSBzb3VyY2VTdHJpbmdpZmllZC5s
ZW5ndGggPj4gMzsKIAogICAgIGZ1bmN0aW9uIGluamVjdE1vY2tQcm9maWxlKG92ZXJyaWRlR2V0
UHJvZmlsZSwgY2FsbGJhY2spIHsKLSAgICAgICAgdmFyIGRpc3BhdGNoZXIgPSBJbnNwZWN0b3JC
YWNrZW5kLl9kb21haW5EaXNwYXRjaGVyc1siUHJvZmlsZXIiXTsKKyAgICAgICAgdmFyIGRpc3Bh
dGNoZXIgPSBJbnNwZWN0b3JCYWNrZW5kLl9kb21haW5EaXNwYXRjaGVyc1siSGVhcFByb2ZpbGVy
Il07CiAgICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXM7CiAg
ICAgICAgIHBhbmVsLl9yZXNldCgpOwogCkBAIC0zOSwxMiArMzksMTIgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgIGZ1bmN0aW9uIHNuYXBzaG90TG9hZGVkKCkKICAgICAgICAgewogICAgICAg
ICAgICAgaWYgKG92ZXJyaWRlR2V0UHJvZmlsZSkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0Lm92ZXJyaWRlKFByb2ZpbGVyQWdlbnQsICJnZXRIZWFwU25hcHNob3QiLCBnZXRIZWFwU25h
cHNob3RNb2NrKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKEhlYXBQ
cm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgZ2V0SGVhcFNuYXBzaG90TW9jayk7CiAg
ICAgICAgICAgICBjYWxsYmFjayhwcm9maWxlSGVhZGVyKTsKICAgICAgICAgfQogICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIocHJvZmlsZUhlYWRlciwgIl9zbmFwc2hvdFJlY2VpdmVk
Iiwgc25hcHNob3RMb2FkZWQpOwogCi0gICAgICAgIEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoUHJv
ZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIsIGdldEhlYXBTbmFwc2hvdE1vY2spOworICAg
ICAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKEhlYXBQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNu
YXBzaG90IiwgZ2V0SGVhcFNuYXBzaG90TW9jayk7CiAgICAgICAgIHBhbmVsLnNob3dQcm9maWxl
KHByb2ZpbGVIZWFkZXIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtdGVzdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanMKaW5kZXggMTU1NTRkMmNjMmJiYTg2MDVh
NjJhYTA0YTdiZjIxMmQzMDM3YjgwMi4uY2JkNjY2M2M0NzU4NmFkZWFiMjkxNWZmZTAxNjhhYTNi
Yjc1ZmMxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC10ZXN0LmpzCkBAIC0xNzIsNyArMTcyLDcgQEAgSW5zcGVjdG9yVGVzdC5zdGFy
dFByb2ZpbGVyVGVzdCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIGZ1bmN0aW9uIHByb2ZpbGVy
RW5hYmxlZCgpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUHJvZmls
ZXIgd2FzIGVuYWJsZWQuIik7Ci0gICAgICAgIC8vIFdlIG1vY2sgb3V0IFByb2ZpbGVyQWdlbnQg
LS0gYXMgRFJUIHJ1bnMgaW4gc2luZ2xlLXByb2Nlc3MgbW9kZSwgSW5zcGVjdG9yCisgICAgICAg
IC8vIFdlIG1vY2sgb3V0IEhlYXBQcm9maWxlckFnZW50IC0tIGFzIERSVCBydW5zIGluIHNpbmds
ZS1wcm9jZXNzIG1vZGUsIEluc3BlY3RvcgogICAgICAgICAvLyBhbmQgdGVzdCBzaGFyZSB0aGUg
c2FtZSBoZWFwLiBUYWtpbmcgYSBzbmFwc2hvdCB0YWtlcyB0b28gbG9uZyBmb3IgYSB0ZXN0LAog
ICAgICAgICAvLyBzbyB3ZSBwcm92aWRlIHN5bnRoZXRpYyBzbmFwc2hvdHMuCiAgICAgICAgIElu
c3BlY3RvclRlc3QuX3BhbmVsUmVzZXQgPSBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKFdlYkluc3Bl
Y3Rvci5wYW5lbHMucHJvZmlsZXMsICJfcmVzZXQiLCBmdW5jdGlvbigpe30sIHRydWUpOwpAQCAt
NzM1LDcgKzczNSw3IEBAIEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdCA9IGZ1bmN0
aW9uKGdlbmVyYXRvciwgY2FsbGJhY2spCiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJv
ZmlsZXMuX2FkZEhlYXBTbmFwc2hvdENodW5rKHVpZCwgSlNPTi5zdHJpbmdpZnkoc25hcHNob3Qp
KTsKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5fZmluaXNoSGVhcFNuYXBz
aG90KHVpZCk7CiAgICAgfQotICAgIEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoUHJvZmlsZXJBZ2Vu
dCwgImdldEhlYXBTbmFwc2hvdCIsIHB1c2hHZW5lcmF0ZWRTbmFwc2hvdCk7CisgICAgSW5zcGVj
dG9yVGVzdC5vdmVycmlkZShIZWFwUHJvZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIsIHB1
c2hHZW5lcmF0ZWRTbmFwc2hvdCk7CiAgICAgSW5zcGVjdG9yVGVzdC5fdGFrZUFuZE9wZW5TbmFw
c2hvdENhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxl
cy5hZGRQcm9maWxlSGVhZGVyKHByb2ZpbGUpOwogICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJv
ZmlsZXMuc2hvd1Byb2ZpbGUocHJvZmlsZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186353</attachid>
            <date>2013-02-04 04:55:35 -0800</date>
            <delta_ts>2013-02-04 08:27:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108653-20130204165214.patch</filename>
            <type>text/plain</type>
            <size>66021</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI4ZWQzOTM5MjI1MDNk
OTI4YjQ2Yzg3OTgwNzFmMTJlYmJmZjI5Mi4uNjRkM2Q1NTkzNjUwNWU4M2M0ZTg3MTU4YjM2Y2Vi
YTE3YTliZjViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDEzLTAyLTA0ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wgaW50byBQcm9maWxlciBhbmQgSGVh
cFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0aGUgc2FtZSBkb21haW4g
J1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIEluIGZhY3QgdGhlc2UgdHdvIHBy
b2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29tbW9uLiBTbyBwdXQgZWFjaCBpbnRv
IGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQgYWxzbyBoZWxwIHdoZW4gUHJvZmls
ZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9vbHMuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVj
dG9yQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5zcGVjdG9yQ29udHJvbGxlcik6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ29tbWl0TG9hZEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9m
aWxlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VQcm9maWxlckFnZW50OjpQYWdl
UHJvZmlsZXJBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUHJvZmlsZXJBZ2VudDo6V29ya2Vy
UHJvZmlsZXJBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50
OjpJbnNwZWN0b3JQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBy
b2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGVIZWFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQ6OnJlbW92ZVByb2ZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yUHJvZmlsZXJBZ2VudDo6cmVzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JQcm9maWxlckFnZW50OjpyZXNldEZyb250ZW5kUHJvZmlsZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6dG9nZ2xlUmVjb3JkQnV0dG9uKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJB
Z2VudDo6d2lsbFByb2Nlc3NUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2Zp
bGVyQWdlbnQ6OmRpZFByb2Nlc3NUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojp+SW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNv
bGxlY3RHYXJiYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50OjpjcmVhdGVTbmFwc2hvdEhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudDo6aGFzSGVhcFByb2ZpbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRQcm9maWxlSGVhZGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Z2V0SGVhcFNuYXBzaG90KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZW1vdmVQcm9maWxl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZXNldFN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZXNl
dEZyb250ZW5kUHJvZmlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQ6OnNldEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50OjpjbGVhckZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50OjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50Ojp0YWtlSGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRPYmplY3RCeUhlYXBPYmplY3RJZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Z2V0SGVhcE9iamVj
dElkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZXBv
cnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdl
bnQuaDoKKyAgICAgICAgKEluc3BlY3RvclByb2ZpbGVyQWdlbnQpOgorICAgICAgICAoSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQ6OmNsZWFyUHJvZmlsZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSW5zdHJ1bWVudGluZ0FnZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVt
ZW50aW5nQWdlbnRzOjppbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk6
CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6V29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RE
YXRhR3JpZHMuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RH
cmlkTm9kZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09i
amVjdE5vZGUucHJvdG90eXBlLnF1ZXJ5T2JqZWN0Q29udGVudCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5zdGFydFNuYXBzaG90VHJhbnNmZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5zYXZlVG9GaWxl
Lm9uT3Blbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90
eXBlLnNhdmVUb0ZpbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQ
YW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5fY2xlYXJQcm9maWxlcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX2dhcmJhZ2VDb2xs
ZWN0QnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUuX3JlbW92ZVByb2ZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZVByb2ZpbGVzLnZhcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlUHJvZmlsZXMucG9w
dWxhdGVIZWFwU25hcHNob3RzQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZVByb2ZpbGVzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS50YWtlSGVhcFNuYXBzaG90KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5yZXZlYWxJblZpZXcpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUuc2V0UmVjb3Jk
aW5nUHJvZmlsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXJEaXNwYXRjaGVyLnBy
b3RvdHlwZS5yZXNldFByb2ZpbGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmls
ZXJEaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZXJEaXNwYXRj
aGVyLnByb3RvdHlwZS5hZGRQcm9maWxlSGVhZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5I
ZWFwUHJvZmlsZXJEaXNwYXRjaGVyLnByb3RvdHlwZS5hZGRIZWFwU25hcHNob3RDaHVuayk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUuZmlu
aXNoSGVhcFNuYXBzaG90KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUu
X2dhcmJhZ2VDb2xsZWN0QnV0dG9uQ2xpY2tlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lKToK
KwogMjAxMy0wMi0wMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZGVkIFRyaVN0YXRlIHRvIFdURiBhbmQgc3RhcnRlZCB1c2luZyBpdCBpbiBvbmUgcGxh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZWNkYjFiZTczZDlkZGQzOGI1MTIzN2Zl
OThkZDA2NzFlMDU5MDY3My4uN2FkZDA3ZWRiZDhlNWQ1ZjQwMWQxODUyNmFmZWQ2MjRiMmU3M2Yw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMi0w
NCAgQWxleGVpIEZpbGlwcG92ICA8YWxwaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogU3BsaXQgUHJvZmlsZXIgZG9tYWluIGluIHByb3RvY29sIGludG8gUHJvZmlsZXIg
YW5kIEhlYXBQcm9maWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA4NjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ3VycmVudGx5IENQVSBhbmQgaGVhcCBwcm9maWxlcnMgc2hhcmUgdGhlIHNhbWUg
ZG9tYWluICdQcm9maWxlcicgaW4gdGhlIHByb3RvY29sLgorICAgICAgICBJbiBmYWN0IHRoZXNl
IHR3byBwcm9maWxlIHR5cGVzIGhhdmUgbm90IHRvbyBtdWNoIGluIGNvbW1vbi4gU28gcHV0IGVh
Y2ggaW50byBpdHMgb3duIGRvbWFpbi4KKyAgICAgICAgSXQgc2hvdWxkIGFsc28gaGVscCB3aGVu
IFByb2ZpbGVzIHBhbmVsIGdldHMgc3BsaXQgaW50byBzZXZlcmFsIHRvb2xzLgorCisgICAgICAg
ICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2
VG9vbHNBZ2VudDo6c2hvdWxkSW50ZXJydXB0Rm9yTWVzc2FnZSk6CisKIDIwMTMtMDItMDEgIEFs
ZXhpcyBNZW5hcmQgIDxhbGV4aXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBFbmFibGUgdW5wcmVm
aXhlZCBDU1MgdHJhbnNpdGlvbnMgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgppbmRleCA2ZTI0YWI3NzE0MTA1ZjkzYTVhNWJjODkyNzQ1NTU0NTk1Nzc0
YmI5Li40YjA1YTc0ZDhlZjk5ZTc5ODg0YjM4MDkxOGRmMTlmMjY2NWVkYzIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0zMDQ3LDEwICszMDQ3LDkgQEAKICAg
ICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJQcm9maWxlIGhlYWRlci4iLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjog
WwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGVJZCIsICJ0eXBlIjogInN0cmlu
ZyIsICJlbnVtIjogWyJDUFUiLCAiQ1NTIiwgIkhFQVAiXSwgImRlc2NyaXB0aW9uIjogIlByb2Zp
bGUgdHlwZSBuYW1lLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlSWQi
LCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsiQ1BVIiwgIkNTUyJdLCAiZGVzY3JpcHRpb24i
OiAiUHJvZmlsZSB0eXBlIG5hbWUuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InRpdGxlIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlByb2ZpbGUgdGl0bGUu
IiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0eXBlIjogImludGVn
ZXIiLCAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHByb2ZpbGUuIiB9
LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1heEpTT2JqZWN0SWQiLCAidHlwZSI6
ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkxhc3Qgc2VlbiBK
UyBvYmplY3QgSWQuIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwgInR5
cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUg
cHJvZmlsZS4iIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgewpAQCAtMzA3OCwxMSArMzA3Nyw2IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiYm90dG9tVXBIZWFkIiwgIiRyZWYiOiAiQ1BVUHJvZmlsZU5vZGUiLCAib3B0aW9uYWwiOiB0
cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWRsZVRpbWUiLCAidHlwZSI6
ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0KICAgICAgICAgICAgICAgICBdCi0gICAgICAg
ICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJpZCI6ICJIZWFwU25hcHNo
b3RPYmplY3RJZCIsCi0gICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiSGVhcCBzbmFzaG90IG9iamVjdCBpZC4iCiAgICAgICAg
ICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJjb21tYW5kcyI6IFsKQEAgLTMwOTksMTIgKzMw
OTMsNiBAQAogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAiaGFzSGVhcFByb2ZpbGVyIiwKLSAgICAgICAgICAg
ICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQi
LCAidHlwZSI6ICJib29sZWFuIiB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJlbmFibGUiCiAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgewpAQCAtMzEzMiw2ICszMTIwLDY4IEBACiAgICAgICAgICAg
ICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
bmFtZSI6ICJyZW1vdmVQcm9maWxlIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5nIiB9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0eXBlIjogImludGVnZXIi
IH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICJuYW1lIjogImNsZWFyUHJvZmlsZXMiCisgICAgICAgICAgICB9CisgICAg
ICAgIF0sCisgICAgICAgICJldmVudHMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgIm5hbWUiOiAiYWRkUHJvZmlsZUhlYWRlciIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGVhZGVyIiwgIiRyZWYiOiAi
UHJvZmlsZUhlYWRlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAic2V0UmVjb3JkaW5nUHJvZmlsZSIs
CisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaXNQcm9maWxpbmciLCAidHlwZSI6ICJib29sZWFuIiB9CisgICAgICAgICAgICAg
ICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFt
ZSI6ICJyZXNldFByb2ZpbGVzIgorICAgICAgICAgICAgfQorICAgICAgICBdCisgICAgfSwKKyAg
ICB7CisgICAgICAgICJkb21haW4iOiAiSGVhcFByb2ZpbGVyIiwKKyAgICAgICAgImhpZGRlbiI6
IHRydWUsCisgICAgICAgICJ0eXBlcyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAiaWQiOiAiUHJvZmlsZUhlYWRlciIsCisgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0
IiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUHJvZmlsZSBoZWFkZXIuIiwKKyAg
ICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJ0aXRsZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJQcm9maWxlIHRp
dGxlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1aWQiLCAidHlwZSI6ICJp
bnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9maWxl
LiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtYXhKU09iamVjdElkIiwgInR5
cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJMYXN0IHNl
ZW4gSlMgb2JqZWN0IElkLiIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImlkIjogIkhlYXBTbmFwc2hvdE9iamVjdElk
IiwKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJIZWFwIHNuYXNob3Qgb2JqZWN0IGlkLiIKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgXSwKKyAgICAgICAgImNvbW1hbmRzIjogWworICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICJuYW1lIjogImhhc0hlYXBQcm9maWxlciIsCisgICAgICAgICAgICAgICAgInJldHVy
bnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAi
Ym9vbGVhbiIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0UHJvZmlsZUhlYWRlcnMiLAorICAgICAg
ICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhl
YWRlcnMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiUHJvZmlsZUhlYWRl
ciJ9IH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICJuYW1lIjogImdldEhlYXBTbmFwc2hvdCIsCiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwg
InR5cGUiOiAiaW50ZWdlciIgfQpAQCAtMzE0MCw3ICszMTkwLDYgQEAKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAibmFtZSI6ICJyZW1vdmVQcm9maWxlIiwKICAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwg
InR5cGUiOiAic3RyaW5nIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIs
ICJ0eXBlIjogImludGVnZXIiIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LApA
QCAtMzE5NywxMiArMzI0Niw2IEBACiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRSZWNvcmRpbmdQcm9m
aWxlIiwKLSAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJpc1Byb2ZpbGluZyIsICJ0eXBlIjogImJvb2xlYW4iIH0KLSAgICAgICAg
ICAgICAgICBdCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICJuYW1lIjogInJlc2V0UHJvZmlsZXMiCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDNjNjVhOGE2MDgyZjI0Mjc4ZDE3Yzc0MWM3Mzk2OGQzMTBiOTc3ZDMuLjUwNWQ1ZDNiN2Nm
N2Q5Zjk0Y2U3MDNhY2ViMmE5YjhiMjg2YTNlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTE0OSw5ICsxNDksMTQgQEAgSW5z
cGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0
b3JDbGllbnQqIGluc3BlY3RvckMKICAgICBtX2RvbURlYnVnZ2VyQWdlbnQgPSBkb21EZWJ1Z2dl
ckFnZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChkb21EZWJ1Z2dlckFnZW50UHRy
LnJlbGVhc2UoKSk7CiAKLSAgICBPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gcHJvZmls
ZXJBZ2VudFB0cihJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQsIHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdl
bnQ+IHByb2ZpbGVyQWdlbnRQdHIoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5z
dHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgY29uc29sZUFnZW50LCBwYWdlLCBtX3N0YXRlLmdldCgp
KSk7CiAgICAgbV9wcm9maWxlckFnZW50ID0gcHJvZmlsZXJBZ2VudFB0ci5nZXQoKTsKICAgICBt
X2FnZW50cy5hcHBlbmQocHJvZmlsZXJBZ2VudFB0ci5yZWxlYXNlKCkpOworCisgICAgT3duUHRy
PEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50PiBoZWFwUHJvZmlsZXJBZ2VudFB0cihJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKKyAgICBtX2hl
YXBQcm9maWxlckFnZW50ID0gaGVhcFByb2ZpbGVyQWdlbnRQdHIuZ2V0KCk7CisgICAgbV9hZ2Vu
dHMuYXBwZW5kKGhlYXBQcm9maWxlckFnZW50UHRyLnJlbGVhc2UoKSk7CisKICNlbmRpZgogCiAj
aWYgRU5BQkxFKFdPUktFUlMpCkBAIC00MTMsNiArNDE4LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKQogICAgIGluZm8uYWRkTWVtYmVyKG1fZGVidWdnZXJBZ2VudCwgImRlYnVnZ2VyQWdlbnQi
KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2RvbURlYnVnZ2VyQWdlbnQsICJkb21EZWJ1Z2dlckFn
ZW50Iik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wcm9maWxlckFnZW50LCAicHJvZmlsZXJBZ2Vu
dCIpOworICAgIGluZm8uYWRkTWVtYmVyKG1faGVhcFByb2ZpbGVyQWdlbnQsICJoZWFwUHJvZmls
ZXJBZ2VudCIpOwogI2VuZGlmCiAKICAgICBpbmZvLmFkZE1lbWJlcihtX2luc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyLCAiaW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIiKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGVjZTYzN2FjYWEy
ZWRlOGJkYTI1MmVlY2RlNmExYTQ1OGQ1Yjg1MDMuLjM5NjAxOGE2OGQyNGUwYTQwM2IyM2I2NDgw
OTZmNDNiNzBhNzFiN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuaApAQCAtNTYsNiArNTYsNyBAQCBjbGFzcyBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWw7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudDsKK2NsYXNzIEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50OwogY2xhc3MgSW5zcGVjdG9yTWVtb3J5QWdlbnQ7CiBjbGFzcyBJbnNw
ZWN0b3JPdmVybGF5OwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwpAQCAtMTQ3LDYgKzE0OCw3
IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogbV9kZWJ1Z2dlckFnZW50
OwogICAgIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQqIG1fZG9tRGVidWdnZXJBZ2VudDsKICAg
ICBJbnNwZWN0b3JQcm9maWxlckFnZW50KiBtX3Byb2ZpbGVyQWdlbnQ7CisgICAgSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQqIG1faGVhcFByb2ZpbGVyQWdlbnQ7CiAjZW5kaWYKIAogICAgIFJl
ZlB0cjxJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcj4gbV9pbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKaW5kZXggYTFmNTAxZDI0MDU1OGI4Y2ViOGNiMGRlZjEwMDZkYWI1Y2Mw
ODlkNS4uZWUzNDg4MmQ1MGMwYWQwYzExMGE0MGFmZTgxNzEyZGRmYWY4ZTljZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKQEAgLTkyNCw2ICs5MjQsOCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudAogI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBVU0UoSlNDKQogICAgICAgICBpZiAoSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudCogcHJvZmlsZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQoKSkKICAgICAgICAgICAgIHByb2ZpbGVyQWdlbnQtPnJlc2V0U3Rh
dGUoKTsKKyAgICAgICAgaWYgKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KiBoZWFwUHJvZmls
ZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
KCkpCisgICAgICAgICAgICBoZWFwUHJvZmlsZXJBZ2VudC0+cmVzZXRTdGF0ZSgpOwogI2VuZGlm
CiAgICAgICAgIGlmIChJbnNwZWN0b3JDU1NBZ2VudCogY3NzQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLT5pbnNwZWN0b3JDU1NBZ2VudCgpKQogICAgICAgICAgICAgY3NzQWdlbnQtPnJlc2V0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudC5jcHAKaW5kZXggMmQ3YjA4M2VmNGUwZDE0Njc5NmIwZjI0NjE5MjEwYWJjYmQyMjcwZC4u
MGNhNWE4YzNkZjg1OWNmZmQzZjBkYTVhODNiNzM1ZmM5ODA0MGQzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApAQCAtNzEs
OCArNzEsOSBAQCBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgSGVhcFByb2ZpbGVUeXBlID0gIkhF
QVAiOwogCiBjbGFzcyBQYWdlUHJvZmlsZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JQcm9maWxl
ckFnZW50IHsKIHB1YmxpYzoKLSAgICBQYWdlUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVB
Z2VudCwgUGFnZSogaW5zcGVjdGVkUGFnZSwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRl
LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKLSAgICAgICAg
OiBJbnNwZWN0b3JQcm9maWxlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnNvbGVBZ2Vu
dCwgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlciksIG1faW5zcGVjdGVkUGFnZShpbnNwZWN0
ZWRQYWdlKSB7IH0KKyAgICBQYWdlUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCwg
UGFnZSogaW5zcGVjdGVkUGFnZSwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQorICAg
ICAgICA6IEluc3BlY3RvclByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc29s
ZUFnZW50LCBzdGF0ZSkKKyAgICAgICAgLCBtX2luc3BlY3RlZFBhZ2UoaW5zcGVjdGVkUGFnZSkg
eyB9CiAgICAgdmlydHVhbCB+UGFnZVByb2ZpbGVyQWdlbnQoKSB7IH0KIAogcHJpdmF0ZToKQEAg
LTk0LDE2ICs5NSwxNyBAQCBwcml2YXRlOgogICAgIFBhZ2UqIG1faW5zcGVjdGVkUGFnZTsKIH07
CiAKLVBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIElu
c3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBQYWdlKiBpbnNwZWN0ZWRQYWdlLCBJ
bnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFu
YWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxl
ckFnZW50PiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdl
bnQsIFBhZ2UqIGluc3BlY3RlZFBhZ2UsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0
b3JTdGF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VQcm9maWxlckFnZW50KGlu
c3RydW1lbnRpbmdBZ2VudHMsIGNvbnNvbGVBZ2VudCwgaW5zcGVjdGVkUGFnZSwgaW5zcGVjdG9y
U3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcg
UGFnZVByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc29sZUFnZW50LCBpbnNw
ZWN0ZWRQYWdlLCBpbnNwZWN0b3JTdGF0ZSkpOwogfQogCiAjaWYgRU5BQkxFKFdPUktFUlMpCiBj
bGFzcyBXb3JrZXJQcm9maWxlckFnZW50IDogcHVibGljIEluc3BlY3RvclByb2ZpbGVyQWdlbnQg
ewogcHVibGljOgotICAgIFdvcmtlclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQs
IFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBz
dGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAg
ICAgIDogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zb2xl
QWdlbnQsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpLCBtX3dvcmtlckNvbnRleHQod29y
a2VyQ29udGV4dCkgeyB9CisgICAgV29ya2VyUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVB
Z2VudCwgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCwgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqIHN0YXRlKQorICAgICAgICA6IEluc3BlY3RvclByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGlu
Z0FnZW50cywgY29uc29sZUFnZW50LCBzdGF0ZSkKKyAgICAgICAgLCBtX3dvcmtlckNvbnRleHQo
d29ya2VyQ29udGV4dCkgeyB9CiAgICAgdmlydHVhbCB+V29ya2VyUHJvZmlsZXJBZ2VudCgpIHsg
fQogCiBwcml2YXRlOgpAQCAtMTIyLDIzICsxMjQsMjEgQEAgcHJpdmF0ZToKICAgICBXb3JrZXJD
b250ZXh0KiBtX3dvcmtlckNvbnRleHQ7CiB9OwogCi1QYXNzT3duUHRyPEluc3BlY3RvclByb2Zp
bGVyQWdlbnQ+IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVB
Z2VudCwgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCwgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0
TWFuYWdlcikKK1Bhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBXb3JrZXJDb250ZXh0KiB3
b3JrZXJDb250ZXh0LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJQcm9maWxlckFnZW50KGluc3RydW1lbnRp
bmdBZ2VudHMsIGNvbnNvbGVBZ2VudCwgd29ya2VyQ29udGV4dCwgaW5zcGVjdG9yU3RhdGUsIGlu
amVjdGVkU2NyaXB0TWFuYWdlcikpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyUHJv
ZmlsZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zb2xlQWdlbnQsIHdvcmtlckNvbnRl
eHQsIGluc3BlY3RvclN0YXRlKSk7CiB9CiAjZW5kaWYKIAotSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCwgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGlu
amVjdGVkU2NyaXB0TWFuYWdlcikKK0luc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclBy
b2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRl
KiBpbnNwZWN0b3JTdGF0ZSkKICAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JQcm9m
aWxlckFnZW50PigiUHJvZmlsZXIiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0
ZSkKICAgICAsIG1fY29uc29sZUFnZW50KGNvbnNvbGVBZ2VudCkKLSAgICAsIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fZnJvbnRlbmQoMCkK
ICAgICAsIG1fZW5hYmxlZChmYWxzZSkKICAgICAsIG1fcmVjb3JkaW5nQ1BVUHJvZmlsZShmYWxz
ZSkKICAgICAsIG1faGVhZGVyc1JlcXVlc3RlZChmYWxzZSkKICAgICAsIG1fY3VycmVudFVzZXJJ
bml0aWF0ZWRQcm9maWxlTnVtYmVyKC0xKQogICAgICwgbV9uZXh0VXNlckluaXRpYXRlZFByb2Zp
bGVOdW1iZXIoMSkKLSAgICAsIG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1iZXIo
MSkKICAgICAsIG1fcHJvZmlsZU5hbWVJZGxlVGltZU1hcChTY3JpcHRQcm9maWxlcjo6Y3VycmVu
dFByb2ZpbGVOYW1lSWRsZVRpbWVNYXAoKSkKICAgICAsIG1fcHJldmlvdXNUYXNrRW5kVGltZSgw
LjApCiB7CkBAIC0xNzcsMTEgKzE3Nyw2IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
YWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgdGl0CiAgICAg
bV9jb25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoQ29uc29sZUFQSU1lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBEZWJ1Z01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgc291cmNlVVJM
LCBsaW5lTnVtYmVyKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpjb2xsZWN0
R2FyYmFnZShXZWJDb3JlOjpFcnJvclN0cmluZyopCi17Ci0gICAgU2NyaXB0UHJvZmlsZXI6OmNv
bGxlY3RHYXJiYWdlKCk7Ci19Ci0KIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpQ
cm9maWxlSGVhZGVyPiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGVQcm9maWxlSGVhZGVy
KGNvbnN0IFNjcmlwdFByb2ZpbGUmIHByb2ZpbGUpCiB7CiAgICAgcmV0dXJuIFR5cGVCdWlsZGVy
OjpQcm9maWxlcjo6UHJvZmlsZUhlYWRlcjo6Y3JlYXRlKCkKQEAgLTE5MSwxNiArMTg2LDYgQEAg
UGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+IEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ6OmNyZWF0ZVAKICAgICAgICAgLnJlbGVhc2UoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxUeXBlQnVpbGRlcjo6UHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+IEluc3BlY3RvclByb2Zp
bGVyQWdlbnQ6OmNyZWF0ZVNuYXBzaG90SGVhZGVyKGNvbnN0IFNjcmlwdEhlYXBTbmFwc2hvdCYg
c25hcHNob3QpCi17Ci0gICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpQcm9maWxlcjo6UHJvZmlsZUhl
YWRlcj4gaGVhZGVyID0gVHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpQcm9maWxlSGVhZGVyOjpjcmVh
dGUoKQotICAgICAgICAuc2V0VHlwZUlkKFR5cGVCdWlsZGVyOjpQcm9maWxlcjo6UHJvZmlsZUhl
YWRlcjo6VHlwZUlkOjpIRUFQKQotICAgICAgICAuc2V0VWlkKHNuYXBzaG90LnVpZCgpKQotICAg
ICAgICAuc2V0VGl0bGUoc25hcHNob3QudGl0bGUoKSk7Ci0gICAgaGVhZGVyLT5zZXRNYXhKU09i
amVjdElkKHNuYXBzaG90Lm1heFNuYXBzaG90SlNPYmplY3RJZCgpKTsKLSAgICByZXR1cm4gaGVh
ZGVyLnJlbGVhc2UoKTsKLX0KLQogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjYXVzZXNS
ZWNvbXBpbGF0aW9uKEVycm9yU3RyaW5nKiwgYm9vbCogcmVzdWx0KQogewogICAgICpyZXN1bHQg
PSBTY3JpcHRQcm9maWxlcjo6Y2F1c2VzUmVjb21waWxhdGlvbigpOwpAQCAtMjExLDExICsxOTYs
NiBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmlzU2FtcGxpbmcoRXJyb3JTdHJpbmcq
LCBib29sKiByZXN1bHQpCiAgICAgKnJlc3VsdCA9IFNjcmlwdFByb2ZpbGVyOjppc1NhbXBsaW5n
KCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6aGFzSGVhcFByb2ZpbGVyKEVy
cm9yU3RyaW5nKiwgYm9vbCogcmVzdWx0KQotewotICAgICpyZXN1bHQgPSBTY3JpcHRQcm9maWxl
cjo6aGFzSGVhcFByb2ZpbGVyKCk7Ci19Ci0KIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
ZW5hYmxlKEVycm9yU3RyaW5nKikKIHsKICAgICBpZiAoZW5hYmxlZCgpKQpAQCAtMjY0LDI2ICsy
NDQsOCBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGVIZWFkZXJzKEVy
cm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOgogICAgIFByb2ZpbGVzTWFwOjppdGVyYXRv
ciBwcm9maWxlc0VuZCA9IG1fcHJvZmlsZXMuZW5kKCk7CiAgICAgZm9yIChQcm9maWxlc01hcDo6
aXRlcmF0b3IgaXQgPSBtX3Byb2ZpbGVzLmJlZ2luKCk7IGl0ICE9IHByb2ZpbGVzRW5kOyArK2l0
KQogICAgICAgICBoZWFkZXJzLT5hZGRJdGVtKGNyZWF0ZVByb2ZpbGVIZWFkZXIoKml0LT52YWx1
ZSkpOwotICAgIEhlYXBTbmFwc2hvdHNNYXA6Oml0ZXJhdG9yIHNuYXBzaG90c0VuZCA9IG1fc25h
cHNob3RzLmVuZCgpOwotICAgIGZvciAoSGVhcFNuYXBzaG90c01hcDo6aXRlcmF0b3IgaXQgPSBt
X3NuYXBzaG90cy5iZWdpbigpOyBpdCAhPSBzbmFwc2hvdHNFbmQ7ICsraXQpCi0gICAgICAgIGhl
YWRlcnMtPmFkZEl0ZW0oY3JlYXRlU25hcHNob3RIZWFkZXIoKml0LT52YWx1ZSkpOwogfQogCi1u
YW1lc3BhY2UgewotCi1jbGFzcyBPdXRwdXRTdHJlYW0gOiBwdWJsaWMgU2NyaXB0SGVhcFNuYXBz
aG90OjpPdXRwdXRTdHJlYW0gewotcHVibGljOgotICAgIE91dHB1dFN0cmVhbShJbnNwZWN0b3JG
cm9udGVuZDo6UHJvZmlsZXIqIGZyb250ZW5kLCB1bnNpZ25lZCB1aWQpCi0gICAgICAgIDogbV9m
cm9udGVuZChmcm9udGVuZCksIG1fdWlkKHVpZCkgeyB9Ci0gICAgdm9pZCBXcml0ZShjb25zdCBT
dHJpbmcmIGNodW5rKSB7IG1fZnJvbnRlbmQtPmFkZEhlYXBTbmFwc2hvdENodW5rKG1fdWlkLCBj
aHVuayk7IH0KLSAgICB2b2lkIENsb3NlKCkgeyBtX2Zyb250ZW5kLT5maW5pc2hIZWFwU25hcHNo
b3QobV91aWQpOyB9Ci1wcml2YXRlOgotICAgIEluc3BlY3RvckZyb250ZW5kOjpQcm9maWxlciog
bV9mcm9udGVuZDsKLSAgICBpbnQgbV91aWQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZQotCiB2b2lk
IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmdldENQVVByb2ZpbGUoRXJyb3JTdHJpbmcqIGVycm9y
U3RyaW5nLCBpbnQgcmF3VWlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpDUFVQcm9m
aWxlPiYgcHJvZmlsZU9iamVjdCkKIHsKICAgICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4ocmF3VWlkKTsKQEAgLTI5OSwzMCArMjYxLDEyIEBAIHZvaWQgSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6Z2V0Q1BVUHJvZmlsZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBy
YXdVaWQsCiAgICAgcHJvZmlsZU9iamVjdC0+c2V0SWRsZVRpbWUoaXQtPnZhbHVlLT5pZGxlVGlt
ZSgpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpnZXRIZWFwU25hcHNob3Qo
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgcmF3VWlkKQotewotICAgIHVuc2lnbmVkIHVp
ZCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihyYXdVaWQpOwotICAgIEhlYXBTbmFwc2hvdHNNYXA6
Oml0ZXJhdG9yIGl0ID0gbV9zbmFwc2hvdHMuZmluZCh1aWQpOwotICAgIGlmIChpdCA9PSBtX3Nu
YXBzaG90cy5lbmQoKSkgewotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiUHJvZmlsZSB3YXNuJ3Qg
Zm91bmQiOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIFJlZlB0cjxTY3JpcHRIZWFwU25h
cHNob3Q+IHNuYXBzaG90ID0gaXQtPnZhbHVlOwotICAgIGlmIChtX2Zyb250ZW5kKSB7Ci0gICAg
ICAgIE91dHB1dFN0cmVhbSBzdHJlYW0obV9mcm9udGVuZCwgdWlkKTsKLSAgICAgICAgc25hcHNo
b3QtPndyaXRlSlNPTigmc3RyZWFtKTsKLSAgICB9Ci19Ci0KIHZvaWQgSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6cmVtb3ZlUHJvZmlsZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdHlwZSwg
aW50IHJhd1VpZCkKIHsKICAgICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
cmF3VWlkKTsKICAgICBpZiAodHlwZSA9PSBDUFVQcm9maWxlVHlwZSkgewogICAgICAgICBpZiAo
bV9wcm9maWxlcy5jb250YWlucyh1aWQpKQogICAgICAgICAgICAgbV9wcm9maWxlcy5yZW1vdmUo
dWlkKTsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gSGVhcFByb2ZpbGVUeXBlKSB7Ci0gICAgICAg
IGlmIChtX3NuYXBzaG90cy5jb250YWlucyh1aWQpKQotICAgICAgICAgICAgbV9zbmFwc2hvdHMu
cmVtb3ZlKHVpZCk7CiAgICAgfQogfQogCkBAIC0zMzAsMTkgKzI3NCwxNSBAQCB2b2lkIEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQ6OnJlc2V0U3RhdGUoKQogewogICAgIHN0b3AoKTsKICAgICBtX3By
b2ZpbGVzLmNsZWFyKCk7Ci0gICAgbV9zbmFwc2hvdHMuY2xlYXIoKTsKICAgICBtX2N1cnJlbnRV
c2VySW5pdGlhdGVkUHJvZmlsZU51bWJlciA9IDE7CiAgICAgbV9uZXh0VXNlckluaXRpYXRlZFBy
b2ZpbGVOdW1iZXIgPSAxOwotICAgIG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1i
ZXIgPSAxOwogICAgIHJlc2V0RnJvbnRlbmRQcm9maWxlcygpOwotICAgIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+Y2xlYXJJbnNwZWN0ZWRPYmplY3RzKCk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVz
KCkKIHsKICAgICBpZiAobV9oZWFkZXJzUmVxdWVzdGVkICYmIG1fZnJvbnRlbmQKLSAgICAgICAg
JiYgbV9wcm9maWxlcy5iZWdpbigpID09IG1fcHJvZmlsZXMuZW5kKCkKLSAgICAgICAgJiYgbV9z
bmFwc2hvdHMuYmVnaW4oKSA9PSBtX3NuYXBzaG90cy5lbmQoKSkKKyAgICAgICAgJiYgbV9wcm9m
aWxlcy5iZWdpbigpID09IG1fcHJvZmlsZXMuZW5kKCkpCiAgICAgICAgIG1fZnJvbnRlbmQtPnJl
c2V0UHJvZmlsZXMoKTsKIH0KIApAQCAtNDA4LDMyICszNDgsMTgzIEBAIHZvaWQgSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudDo6c3RvcChFcnJvclN0cmluZyopCiAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVh
bihQcm9maWxlckFnZW50U3RhdGU6OnVzZXJJbml0aWF0ZWRQcm9maWxpbmcsIGZhbHNlKTsKIH0K
IAordm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojp0b2dnbGVSZWNvcmRCdXR0b24oYm9vbCBp
c1Byb2ZpbGluZykKK3sKKyAgICBpZiAobV9mcm9udGVuZCkKKyAgICAgICAgbV9mcm9udGVuZC0+
c2V0UmVjb3JkaW5nUHJvZmlsZShpc1Byb2ZpbGluZyk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQpOwor
ICAgIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JQcm9maWxlckFnZW50Pjo6cmVwb3J0TWVt
b3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb25zb2xl
QWdlbnQsICJjb25zb2xlQWdlbnQiKTsKKyAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fZnJvbnRl
bmQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcHJvZmlsZXMsICJwcm9maWxlcyIpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fcHJvZmlsZU5hbWVJZGxlVGltZU1hcCwgInByb2ZpbGVOYW1lSWRsZVRp
bWVNYXAiKTsKK30KKwordm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojp3aWxsUHJvY2Vzc1Rh
c2soKQoreworICAgIGlmICghbV9wcm9maWxlTmFtZUlkbGVUaW1lTWFwIHx8ICFtX3Byb2ZpbGVO
YW1lSWRsZVRpbWVNYXAtPnNpemUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghbV9wcmV2
aW91c1Rhc2tFbmRUaW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBkb3VibGUgaWRsZVRpbWUg
PSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gbV9wcmV2aW91c1Rhc2tFbmRU
aW1lOworICAgIG1fcHJldmlvdXNUYXNrRW5kVGltZSA9IDAuMDsKKyAgICBQcm9maWxlTmFtZUlk
bGVUaW1lTWFwOjppdGVyYXRvciBlbmQgPSBtX3Byb2ZpbGVOYW1lSWRsZVRpbWVNYXAtPmVuZCgp
OworICAgIGZvciAoUHJvZmlsZU5hbWVJZGxlVGltZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3Byb2Zp
bGVOYW1lSWRsZVRpbWVNYXAtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgaXQt
PnZhbHVlICs9IGlkbGVUaW1lOworfQorCit2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmRp
ZFByb2Nlc3NUYXNrKCkKK3sKKyAgICBpZiAoIW1fcHJvZmlsZU5hbWVJZGxlVGltZU1hcCB8fCAh
bV9wcm9maWxlTmFtZUlkbGVUaW1lTWFwLT5zaXplKCkpCisgICAgICAgIHJldHVybjsKKyAgICBt
X3ByZXZpb3VzVGFza0VuZFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OworfQorCitQYXNzT3duUHRyPEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50PiBJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCit7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBpbnNwZWN0b3JTdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSk7Cit9CisKK0luc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50OjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSog
aW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKQorICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
PigiSGVhcFByb2ZpbGVyIiwgaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUpCisg
ICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAg
LCBtX2Zyb250ZW5kKDApCisgICAgLCBtX2hlYWRlcnNSZXF1ZXN0ZWQoZmFsc2UpCisgICAgLCBt
X25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBzaG90TnVtYmVyKDEpCit7CisgICAgbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCh0aGlzKTsKK30KKwor
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6On5JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCgp
Cit7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudCgwKTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y29sbGVjdEdh
cmJhZ2UoV2ViQ29yZTo6RXJyb3JTdHJpbmcqKQoreworICAgIFNjcmlwdFByb2ZpbGVyOjpjb2xs
ZWN0R2FyYmFnZSgpOworfQorCitQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpIZWFwUHJvZmlsZXI6
OlByb2ZpbGVIZWFkZXI+IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjcmVhdGVTbmFwc2hv
dEhlYWRlcihjb25zdCBTY3JpcHRIZWFwU25hcHNob3QmIHNuYXBzaG90KQoreworICAgIFJlZlB0
cjxUeXBlQnVpbGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiBoZWFkZXIgPSBUeXBl
QnVpbGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyOjpjcmVhdGUoKQorICAgICAgICAu
c2V0VWlkKHNuYXBzaG90LnVpZCgpKQorICAgICAgICAuc2V0VGl0bGUoc25hcHNob3QudGl0bGUo
KSk7CisgICAgaGVhZGVyLT5zZXRNYXhKU09iamVjdElkKHNuYXBzaG90Lm1heFNuYXBzaG90SlNP
YmplY3RJZCgpKTsKKyAgICByZXR1cm4gaGVhZGVyLnJlbGVhc2UoKTsKK30KKwordm9pZCBJbnNw
ZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6aGFzSGVhcFByb2ZpbGVyKEVycm9yU3RyaW5nKiwgYm9v
bCogcmVzdWx0KQoreworICAgICpyZXN1bHQgPSBTY3JpcHRQcm9maWxlcjo6aGFzSGVhcFByb2Zp
bGVyKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGVI
ZWFkZXJzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRl
cjo6SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiA+JiBoZWFkZXJzKQoreworICAgIG1faGVh
ZGVyc1JlcXVlc3RlZCA9IHRydWU7CisgICAgaGVhZGVycyA9IFR5cGVCdWlsZGVyOjpBcnJheTxU
eXBlQnVpbGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPjo6Y3JlYXRlKCk7CisKKyAg
ICBIZWFwU25hcHNob3RzTWFwOjppdGVyYXRvciBzbmFwc2hvdHNFbmQgPSBtX3NuYXBzaG90cy5l
bmQoKTsKKyAgICBmb3IgKEhlYXBTbmFwc2hvdHNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zbmFwc2hv
dHMuYmVnaW4oKTsgaXQgIT0gc25hcHNob3RzRW5kOyArK2l0KQorICAgICAgICBoZWFkZXJzLT5h
ZGRJdGVtKGNyZWF0ZVNuYXBzaG90SGVhZGVyKCppdC0+dmFsdWUpKTsKK30KKwogbmFtZXNwYWNl
IHsKIAotY2xhc3MgSGVhcFNuYXBzaG90UHJvZ3Jlc3M6IHB1YmxpYyBTY3JpcHRQcm9maWxlcjo6
SGVhcFNuYXBzaG90UHJvZ3Jlc3MgeworY2xhc3MgT3V0cHV0U3RyZWFtIDogcHVibGljIFNjcmlw
dEhlYXBTbmFwc2hvdDo6T3V0cHV0U3RyZWFtIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBIZWFw
U25hcHNob3RQcm9ncmVzcyhJbnNwZWN0b3JGcm9udGVuZDo6UHJvZmlsZXIqIGZyb250ZW5kKQot
ICAgICAgICA6IG1fZnJvbnRlbmQoZnJvbnRlbmQpIHsgfQotICAgIHZvaWQgU3RhcnQoaW50IHRv
dGFsV29yaykKLSAgICB7Ci0gICAgICAgIG1fdG90YWxXb3JrID0gdG90YWxXb3JrOwotICAgIH0K
LSAgICB2b2lkIFdvcmtlZChpbnQgd29ya0RvbmUpCi0gICAgewotICAgICAgICBpZiAobV9mcm9u
dGVuZCkKLSAgICAgICAgICAgIG1fZnJvbnRlbmQtPnJlcG9ydEhlYXBTbmFwc2hvdFByb2dyZXNz
KHdvcmtEb25lLCBtX3RvdGFsV29yayk7Ci0gICAgfQotICAgIHZvaWQgRG9uZSgpIHsgfQotICAg
IGJvb2wgaXNDYW5jZWxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgT3V0cHV0U3RyZWFtKElu
c3BlY3RvckZyb250ZW5kOjpIZWFwUHJvZmlsZXIqIGZyb250ZW5kLCB1bnNpZ25lZCB1aWQpCisg
ICAgICAgIDogbV9mcm9udGVuZChmcm9udGVuZCksIG1fdWlkKHVpZCkgeyB9CisgICAgdm9pZCBX
cml0ZShjb25zdCBTdHJpbmcmIGNodW5rKSB7IG1fZnJvbnRlbmQtPmFkZEhlYXBTbmFwc2hvdENo
dW5rKG1fdWlkLCBjaHVuayk7IH0KKyAgICB2b2lkIENsb3NlKCkgeyBtX2Zyb250ZW5kLT5maW5p
c2hIZWFwU25hcHNob3QobV91aWQpOyB9CiBwcml2YXRlOgotICAgIEluc3BlY3RvckZyb250ZW5k
OjpQcm9maWxlciogbV9mcm9udGVuZDsKLSAgICBpbnQgbV90b3RhbFdvcms7CisgICAgSW5zcGVj
dG9yRnJvbnRlbmQ6OkhlYXBQcm9maWxlciogbV9mcm9udGVuZDsKKyAgICBpbnQgbV91aWQ7CiB9
OwogCi19OworfSAvLyBuYW1lc3BhY2UKKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dDo6Z2V0SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IHJhd1VpZCkK
K3sKKyAgICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmF3VWlkKTsKKyAg
ICBIZWFwU25hcHNob3RzTWFwOjppdGVyYXRvciBpdCA9IG1fc25hcHNob3RzLmZpbmQodWlkKTsK
KyAgICBpZiAoaXQgPT0gbV9zbmFwc2hvdHMuZW5kKCkpIHsKKyAgICAgICAgKmVycm9yU3RyaW5n
ID0gIlByb2ZpbGUgd2Fzbid0IGZvdW5kIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBS
ZWZQdHI8U2NyaXB0SGVhcFNuYXBzaG90PiBzbmFwc2hvdCA9IGl0LT52YWx1ZTsKKyAgICBpZiAo
bV9mcm9udGVuZCkgeworICAgICAgICBPdXRwdXRTdHJlYW0gc3RyZWFtKG1fZnJvbnRlbmQsIHVp
ZCk7CisgICAgICAgIHNuYXBzaG90LT53cml0ZUpTT04oJnN0cmVhbSk7CisgICAgfQorfQorCit2
b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZW1vdmVQcm9maWxlKEVycm9yU3RyaW5n
KiwgaW50IHJhd1VpZCkKK3sKKyAgICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4ocmF3VWlkKTsKKyAgICBpZiAobV9zbmFwc2hvdHMuY29udGFpbnModWlkKSkKKyAgICAgICAg
bV9zbmFwc2hvdHMucmVtb3ZlKHVpZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQ6OnJlc2V0U3RhdGUoKQoreworICAgIG1fc25hcHNob3RzLmNsZWFyKCk7CisgICAgbV9u
ZXh0VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlciA9IDE7CisgICAgcmVzZXRGcm9udGVu
ZFByb2ZpbGVzKCk7CisgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0
SG9zdCgpLT5jbGVhckluc3BlY3RlZE9iamVjdHMoKTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVzKCkKK3sKKyAgICBpZiAobV9oZWFk
ZXJzUmVxdWVzdGVkICYmIG1fZnJvbnRlbmQKKyAgICAgICAgJiYgbV9zbmFwc2hvdHMuYmVnaW4o
KSA9PSBtX3NuYXBzaG90cy5lbmQoKSkKKyAgICAgICAgbV9mcm9udGVuZC0+cmVzZXRQcm9maWxl
cygpOworfQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpzZXRGcm9udGVuZChJ
bnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCit7CisgICAgbV9mcm9udGVuZCA9IGZyb250ZW5k
LT5oZWFwcHJvZmlsZXIoKTsKK30KIAotdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojp0YWtl
SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgY29uc3QgYm9vbCogcmVwb3J0UHJvZ3Jlc3MpCit2
b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjbGVhckZyb250ZW5kKCkKIHsKKyAgICBt
X2Zyb250ZW5kID0gMDsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVz
dG9yZSgpCit7CisgICAgLy8gUmV2aXNpdCB0aGlzLgorICAgIG1faGVhZGVyc1JlcXVlc3RlZCA9
IHRydWU7CisgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OnRha2VIZWFwU25hcHNob3QoRXJyb3JTdHJpbmcqLCBjb25zdCBi
b29sKiByZXBvcnRQcm9ncmVzcykKK3sKKyAgICBjbGFzcyBIZWFwU25hcHNob3RQcm9ncmVzczog
cHVibGljIFNjcmlwdFByb2ZpbGVyOjpIZWFwU25hcHNob3RQcm9ncmVzcyB7CisgICAgcHVibGlj
OgorICAgICAgICBleHBsaWNpdCBIZWFwU25hcHNob3RQcm9ncmVzcyhJbnNwZWN0b3JGcm9udGVu
ZDo6SGVhcFByb2ZpbGVyKiBmcm9udGVuZCkKKyAgICAgICAgICAgIDogbV9mcm9udGVuZChmcm9u
dGVuZCkgeyB9CisgICAgICAgIHZvaWQgU3RhcnQoaW50IHRvdGFsV29yaykKKyAgICAgICAgewor
ICAgICAgICAgICAgbV90b3RhbFdvcmsgPSB0b3RhbFdvcms7CisgICAgICAgIH0KKyAgICAgICAg
dm9pZCBXb3JrZWQoaW50IHdvcmtEb25lKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAobV9m
cm9udGVuZCkKKyAgICAgICAgICAgICAgICBtX2Zyb250ZW5kLT5yZXBvcnRIZWFwU25hcHNob3RQ
cm9ncmVzcyh3b3JrRG9uZSwgbV90b3RhbFdvcmspOworICAgICAgICB9CisgICAgICAgIHZvaWQg
RG9uZSgpIHsgfQorICAgICAgICBib29sIGlzQ2FuY2VsZWQoKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHByaXZhdGU6CisgICAgICAgIEluc3BlY3RvckZyb250ZW5kOjpIZWFwUHJvZmlsZXIqIG1f
ZnJvbnRlbmQ7CisgICAgICAgIGludCBtX3RvdGFsV29yazsKKyAgICB9OworCiAgICAgU3RyaW5n
IHRpdGxlID0gbWFrZVN0cmluZyhVc2VySW5pdGlhdGVkUHJvZmlsZU5hbWUsICcuJywgU3RyaW5n
OjpudW1iZXIobV9uZXh0VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlcikpOwogICAgICsr
bV9uZXh0VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlcjsKIApAQCAtNDQ2LDEzICs1Mzcs
NyBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnRha2VIZWFwU25hcHNob3QoRXJyb3JT
dHJpbmcqLCBjb25zdCBib29sKiByZXBvcnRQcgogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JQ
cm9maWxlckFnZW50Ojp0b2dnbGVSZWNvcmRCdXR0b24oYm9vbCBpc1Byb2ZpbGluZykKLXsKLSAg
ICBpZiAobV9mcm9udGVuZCkKLSAgICAgICAgbV9mcm9udGVuZC0+c2V0UmVjb3JkaW5nUHJvZmls
ZShpc1Byb2ZpbGluZyk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Z2V0T2Jq
ZWN0QnlIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIGhlYXBT
bmFwc2hvdE9iamVjdElkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8VHlwZUJ1
aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCkKK3ZvaWQgSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQ6OmdldE9iamVjdEJ5SGVhcE9iamVjdElkKEVycm9yU3RyaW5nKiBlcnJv
ciwgY29uc3QgU3RyaW5nJiBoZWFwU25hcHNob3RPYmplY3RJZCwgY29uc3QgU3RyaW5nKiBvYmpl
Y3RHcm91cCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1
bHQpCiB7CiAgICAgYm9vbCBvazsKICAgICB1bnNpZ25lZCBpZCA9IGhlYXBTbmFwc2hvdE9iamVj
dElkLnRvVUludCgmb2spOwpAQCAtNDc1LDcgKzU2MCw3IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6Z2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25z
dCBTCiAgICAgICAgICplcnJvciA9ICJGYWlsZWQgdG8gd3JhcCBvYmplY3QiOwogfQogCi12b2lk
IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmdldEhlYXBPYmplY3RJZChFcnJvclN0cmluZyogZXJy
b3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIFN0cmluZyogaGVhcFNuYXBzaG90T2Jq
ZWN0SWQpCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRIZWFwT2JqZWN0SWQo
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBTdHJpbmcq
IGhlYXBTbmFwc2hvdE9iamVjdElkKQogewogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2Ny
aXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQo
b2JqZWN0SWQpOwogICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKQEAgLTQ5
MSwzNyArNTc2LDEzIEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Z2V0SGVhcE9iamVj
dElkKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyCiAgICAgKmhlYXBTbmFwc2hv
dE9iamVjdElkID0gU3RyaW5nOjpudW1iZXIoaWQpOwogfQogCi12b2lkIEluc3BlY3RvclByb2Zp
bGVyQWdlbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0Cit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAg
IE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1v
cnlUeXBlczo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudCk7Ci0gICAgSW5zcGVjdG9yQmFzZUFnZW50
PEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJ
bmZvKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnNvbGVBZ2VudCwgImNvbnNvbGVBZ2VudCIp
OworICAgIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD46OnJl
cG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVyKG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCAiaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyIik7CiAgICAgaW5m
by5hZGRXZWFrUG9pbnRlcihtX2Zyb250ZW5kKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX3Byb2Zp
bGVzLCAicHJvZmlsZXMiKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3NuYXBzaG90cywgInNuYXBz
aG90cyIpOwotICAgIGluZm8uYWRkTWVtYmVyKG1fcHJvZmlsZU5hbWVJZGxlVGltZU1hcCwgInBy
b2ZpbGVOYW1lSWRsZVRpbWVNYXAiKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50
Ojp3aWxsUHJvY2Vzc1Rhc2soKQotewotICAgIGlmICghbV9wcm9maWxlTmFtZUlkbGVUaW1lTWFw
IHx8ICFtX3Byb2ZpbGVOYW1lSWRsZVRpbWVNYXAtPnNpemUoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIGlmICghbV9wcmV2aW91c1Rhc2tFbmRUaW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBk
b3VibGUgaWRsZVRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gbV9w
cmV2aW91c1Rhc2tFbmRUaW1lOwotICAgIG1fcHJldmlvdXNUYXNrRW5kVGltZSA9IDAuMDsKLSAg
ICBQcm9maWxlTmFtZUlkbGVUaW1lTWFwOjppdGVyYXRvciBlbmQgPSBtX3Byb2ZpbGVOYW1lSWRs
ZVRpbWVNYXAtPmVuZCgpOwotICAgIGZvciAoUHJvZmlsZU5hbWVJZGxlVGltZU1hcDo6aXRlcmF0
b3IgaXQgPSBtX3Byb2ZpbGVOYW1lSWRsZVRpbWVNYXAtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytp
dCkKLSAgICAgICAgaXQtPnZhbHVlICs9IGlkbGVUaW1lOwotfQotCi12b2lkIEluc3BlY3RvclBy
b2ZpbGVyQWdlbnQ6OmRpZFByb2Nlc3NUYXNrKCkKLXsKLSAgICBpZiAoIW1fcHJvZmlsZU5hbWVJ
ZGxlVGltZU1hcCB8fCAhbV9wcm9maWxlTmFtZUlkbGVUaW1lTWFwLT5zaXplKCkpCi0gICAgICAg
IHJldHVybjsKLSAgICBtX3ByZXZpb3VzVGFza0VuZFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAppbmRleCBmYTAz
YzIxMDI1NjQxMzM2NjRiOTdmYjA0ZWYwMThkMDE3YTM1MTVmLi5mNWMwNzdhODZiZjc1OWVmNWM0
Yzk1MDk1NDI3OWE0NjhkZjhkMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKQEAgLTU5LDIzICs1OSwyMSBAQCB0eXBlZGVmIFN0
cmluZyBFcnJvclN0cmluZzsKIGNsYXNzIEluc3BlY3RvclByb2ZpbGVyQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+LCBwdWJsaWMgSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXI6OlByb2ZpbGVyQ29tbWFuZEhhbmRsZXIgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKEluc3BlY3RvclByb2ZpbGVyQWdlbnQpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxl
ckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dCosIFBhZ2UqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdl
ciopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0
ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgUGFnZSosIElu
c3BlY3RvckNvbXBvc2l0ZVN0YXRlKik7CiAjaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgc3RhdGlj
IFBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdB
Z2VudHMqLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBXb3JrZXJDb250ZXh0KiwgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKKyAgICBzdGF0aWMgUGFz
c093blB0cjxJbnNwZWN0b3JQcm9maWxlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50
cyosIEluc3BlY3RvckNvbnNvbGVBZ2VudCosIFdvcmtlckNvbnRleHQqLCBJbnNwZWN0b3JDb21w
b3NpdGVTdGF0ZSopOwogI2VuZGlmCiAgICAgdmlydHVhbCB+SW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dCgpOwogCiAgICAgdm9pZCBhZGRQcm9maWxlKFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZT4gcHJw
UHJvZmlsZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwog
ICAgIHZvaWQgYWRkUHJvZmlsZUZpbmlzaGVkTWVzc2FnZVRvQ29uc29sZShQYXNzUmVmUHRyPFNj
cmlwdFByb2ZpbGU+LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCk7CiAgICAgdm9pZCBhZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0NvbnNvbGUoY29uc3QgU3Ry
aW5nJiB0aXRsZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwp
OwotICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0R2FyYmFnZShFcnJvclN0cmluZyopOwogICAgIHZp
cnR1YWwgdm9pZCBjbGVhclByb2ZpbGVzKEVycm9yU3RyaW5nKikgeyByZXNldFN0YXRlKCk7IH0K
ICAgICB2b2lkIHJlc2V0U3RhdGUoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBjYXVzZXNSZWNvbXBp
bGF0aW9uKEVycm9yU3RyaW5nKiwgYm9vbCopOwogICAgIHZpcnR1YWwgdm9pZCByZWNvbXBpbGVT
Y3JpcHQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGlzU2FtcGxpbmcoRXJyb3JTdHJpbmcqLCBi
b29sKik7Ci0gICAgdmlydHVhbCB2b2lkIGhhc0hlYXBQcm9maWxlcihFcnJvclN0cmluZyosIGJv
b2wqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopOwpAQCAtODgsNTYgKzg2LDk2IEBAIHB1Ymxp
YzoKICAgICBTdHJpbmcgZ2V0Q3VycmVudFVzZXJJbml0aWF0ZWRQcm9maWxlTmFtZShib29sIGlu
Y3JlbWVudFByb2ZpbGVOdW1iZXIgPSBmYWxzZSk7CiAgICAgdmlydHVhbCB2b2lkIGdldFByb2Zp
bGVIZWFkZXJzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVp
bGRlcjo6UHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+ID4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
Q1BVUHJvZmlsZShFcnJvclN0cmluZyosIGludCB1aWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6UHJv
ZmlsZXI6OkNQVVByb2ZpbGU+Jik7Ci0gICAgdmlydHVhbCB2b2lkIGdldEhlYXBTbmFwc2hvdChF
cnJvclN0cmluZyosIGludCB1aWQpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQcm9maWxlKEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB0eXBlLCBpbnQgdWlkKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopOwogICAgIHZpcnR1YWwgdm9pZCBj
bGVhckZyb250ZW5kKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmUoKTsKIAotICAgIHZpcnR1
YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgY29uc3QgYm9vbCogcmVwb3J0
UHJvZ3Jlc3MpOwogICAgIHZvaWQgdG9nZ2xlUmVjb3JkQnV0dG9uKGJvb2wgaXNQcm9maWxpbmcp
OwogCi0gICAgdmlydHVhbCB2b2lkIGdldE9iamVjdEJ5SGVhcE9iamVjdElkKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBoZWFwU25hcHNob3RPYmplY3RJZCwgY29uc3QgU3RyaW5nKiBvYmpl
Y3RHcm91cCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1
bHQpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqLCBjb25z
dCBTdHJpbmcmIG9iamVjdElkLCBTdHJpbmcqIGhlYXBTbmFwc2hvdE9iamVjdElkKTsKLQogICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Qg
T1ZFUlJJREU7CiAKICAgICB2b2lkIHdpbGxQcm9jZXNzVGFzaygpOwogICAgIHZvaWQgZGlkUHJv
Y2Vzc1Rhc2soKTsKIAogcHJvdGVjdGVkOgotICAgIEluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNvbGVBZ2VudCosIEluc3BlY3RvckNvbXBv
c2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAgSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgSW5z
cGVjdG9yQ29tcG9zaXRlU3RhdGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQcm9maWxpbmco
Y29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTY3JpcHRQ
cm9maWxlPiBzdG9wUHJvZmlsaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpID0gMDsKIAogcHJpdmF0
ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQgaW50LCBSZWZQdHI8U2NyaXB0UHJvZmls
ZT4gPiBQcm9maWxlc01hcDsKLSAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQgaW50LCBSZWZQ
dHI8U2NyaXB0SGVhcFNuYXBzaG90PiA+IEhlYXBTbmFwc2hvdHNNYXA7CiAKICAgICB2b2lkIHJl
c2V0RnJvbnRlbmRQcm9maWxlcygpOwogICAgIHZvaWQgcmVzdG9yZUVuYWJsZW1lbnQoKTsKIAog
ICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiBjcmVh
dGVQcm9maWxlSGVhZGVyKGNvbnN0IFNjcmlwdFByb2ZpbGUmKTsKLSAgICBQYXNzUmVmUHRyPFR5
cGVCdWlsZGVyOjpQcm9maWxlcjo6UHJvZmlsZUhlYWRlcj4gY3JlYXRlU25hcHNob3RIZWFkZXIo
Y29uc3QgU2NyaXB0SGVhcFNuYXBzaG90Jik7CiAKICAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQq
IG1fY29uc29sZUFnZW50OwotICAgIEluamVjdGVkU2NyaXB0TWFuYWdlciogbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXI7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OlByb2ZpbGVyKiBtX2Zyb250ZW5k
OwogICAgIGJvb2wgbV9lbmFibGVkOwogICAgIGJvb2wgbV9yZWNvcmRpbmdDUFVQcm9maWxlOwog
ICAgIGJvb2wgbV9oZWFkZXJzUmVxdWVzdGVkOwogICAgIGludCBtX2N1cnJlbnRVc2VySW5pdGlh
dGVkUHJvZmlsZU51bWJlcjsKICAgICB1bnNpZ25lZCBtX25leHRVc2VySW5pdGlhdGVkUHJvZmls
ZU51bWJlcjsKLSAgICB1bnNpZ25lZCBtX25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBzaG90TnVt
YmVyOwogICAgIFByb2ZpbGVzTWFwIG1fcHJvZmlsZXM7Ci0gICAgSGVhcFNuYXBzaG90c01hcCBt
X3NuYXBzaG90czsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIGRvdWJsZT4gUHJvZmls
ZU5hbWVJZGxlVGltZU1hcDsKICAgICBQcm9maWxlTmFtZUlkbGVUaW1lTWFwKiBtX3Byb2ZpbGVO
YW1lSWRsZVRpbWVNYXA7CiAgICAgZG91YmxlIG1fcHJldmlvdXNUYXNrRW5kVGltZTsKIH07CiAK
K2NsYXNzIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VB
Z2VudDxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4sIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlcjo6SGVhcFByb2ZpbGVyQ29tbWFuZEhhbmRsZXIgeworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudCgpOworCisgICAgdm9pZCBhZGRQcm9maWxlKFBhc3NSZWZQdHI8U2Ny
aXB0UHJvZmlsZT4gcHJwUHJvZmlsZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwpOworICAgIHZvaWQgYWRkUHJvZmlsZUZpbmlzaGVkTWVzc2FnZVRvQ29uc29s
ZShQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCk7CisgICAgdm9pZCBhZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0Nv
bnNvbGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwpOworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0R2FyYmFnZShFcnJvclN0
cmluZyopOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclByb2ZpbGVzKEVycm9yU3RyaW5nKikgeyBy
ZXNldFN0YXRlKCk7IH0KKyAgICB2b2lkIHJlc2V0U3RhdGUoKTsKKworICAgIHZpcnR1YWwgdm9p
ZCBoYXNIZWFwUHJvZmlsZXIoRXJyb3JTdHJpbmcqLCBib29sKik7CisKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0UHJvZmlsZUhlYWRlcnMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFy
cmF5PFR5cGVCdWlsZGVyOjpIZWFwUHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+ID4mKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZ2V0SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgaW50IHVpZCk7CisgICAg
dmlydHVhbCB2b2lkIHJlbW92ZVByb2ZpbGUoRXJyb3JTdHJpbmcqLCBpbnQgdWlkKTsKKworICAg
IHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopOworICAgIHZpcnR1
YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmUoKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgY29uc3QgYm9v
bCogcmVwb3J0UHJvZ3Jlc3MpOworCisgICAgdmlydHVhbCB2b2lkIGdldE9iamVjdEJ5SGVhcE9i
amVjdElkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBoZWFwU25hcHNob3RPYmplY3RJZCwg
Y29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpS
ZW1vdGVPYmplY3Q+JiByZXN1bHQpOworICAgIHZpcnR1YWwgdm9pZCBnZXRIZWFwT2JqZWN0SWQo
RXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBTdHJpbmcqIGhlYXBTbmFwc2hv
dE9iamVjdElkKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKKyAgICB2b2lkIHdpbGxQcm9jZXNzVGFzaygp
OworICAgIHZvaWQgZGlkUHJvY2Vzc1Rhc2soKTsKKworcHJvdGVjdGVkOgorICAgIEluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3Np
dGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOworCitwcml2YXRlOgorICAgIHR5cGVk
ZWYgSGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPFNjcmlwdEhlYXBTbmFwc2hvdD4gPiBIZWFwU25h
cHNob3RzTWFwOworCisgICAgdm9pZCByZXNldEZyb250ZW5kUHJvZmlsZXMoKTsKKworICAgIFBh
c3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkhlYXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcj4gY3JlYXRl
U25hcHNob3RIZWFkZXIoY29uc3QgU2NyaXB0SGVhcFNuYXBzaG90Jik7CisKKyAgICBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOworICAgIEluc3BlY3RvckZy
b250ZW5kOjpIZWFwUHJvZmlsZXIqIG1fZnJvbnRlbmQ7CisgICAgYm9vbCBtX2hlYWRlcnNSZXF1
ZXN0ZWQ7CisgICAgdW5zaWduZWQgbV9uZXh0VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJl
cjsKKyAgICBIZWFwU25hcHNob3RzTWFwIG1fc25hcHNob3RzOworfTsKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVO
QUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
dHJ1bWVudGluZ0FnZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRp
bmdBZ2VudHMuaAppbmRleCAyYTgyODdlZWM2MDlmZmZmOTAzNGY4ZGYyMjAzMzJhNjRjYjZhMzU5
Li5jZDhhMmQ5Mjc4NGYyNGZmMjJjNjY0NDVjYzM0MmRiMWM1NGEyYjBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKQEAgLTQ5LDYgKzQ5LDcg
QEAgY2xhc3MgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRGF0YWJh
c2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQ7CitjbGFzcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDsKIGNsYXNz
IEluc3BlY3RvckxheWVyVHJlZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwogY2xh
c3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDsKQEAgLTEyNyw2ICsxMjgsOSBAQCBwdWJsaWM6CiAK
ICAgICBJbnNwZWN0b3JQcm9maWxlckFnZW50KiBpbnNwZWN0b3JQcm9maWxlckFnZW50KCkgY29u
c3QgeyByZXR1cm4gbV9pbnNwZWN0b3JQcm9maWxlckFnZW50OyB9CiAgICAgdm9pZCBzZXRJbnNw
ZWN0b3JQcm9maWxlckFnZW50KEluc3BlY3RvclByb2ZpbGVyQWdlbnQqIGFnZW50KSB7IG1faW5z
cGVjdG9yUHJvZmlsZXJBZ2VudCA9IGFnZW50OyB9CisKKyAgICBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudCogaW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2lu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50OyB9CisgICAgdm9pZCBzZXRJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudChJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudCA9IGFnZW50OyB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXT1JL
RVJTKQpAQCAtMTcwLDYgKzE3NCw3IEBAIHByaXZhdGU6CiAgICAgUGFnZURlYnVnZ2VyQWdlbnQq
IG1fcGFnZURlYnVnZ2VyQWdlbnQ7CiAgICAgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCogbV9p
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OwogICAgIEluc3BlY3RvclByb2ZpbGVyQWdlbnQqIG1f
aW5zcGVjdG9yUHJvZmlsZXJBZ2VudDsKKyAgICBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCog
bV9pbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDsKICNlbmRpZgogI2lmIEVOQUJMRShXT1JLRVJT
KQogICAgIEluc3BlY3RvcldvcmtlckFnZW50KiBtX2luc3BlY3RvcldvcmtlckFnZW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCmluZGV4IDljNzVjOTM3ZDEzOGU5OTExNzE4OTk2YmE4NjNjNWUzMzVmYmM0ZGEuLjkz
NjJiZTZiMGFmNTMwYzZlNDZhZjg5NmUyYTUwYjliNzM5MmIxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAg
LTEwOSw3ICsxMDksOCBAQCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyKFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleAogICAgIG1fcnVudGltZUFn
ZW50LT5zZXRTY3JpcHREZWJ1Z1NlcnZlcigmZGVidWdnZXJBZ2VudC0+c2NyaXB0RGVidWdTZXJ2
ZXIoKSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRlYnVnZ2VyQWdlbnQucmVsZWFzZSgpKTsKIAot
ICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0
cnVtZW50aW5nQWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQuZ2V0KCksIHdvcmtlckNvbnRleHQs
IG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9h
Z2VudHMuYXBwZW5kKEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRp
bmdBZ2VudHMuZ2V0KCksIGNvbnNvbGVBZ2VudC5nZXQoKSwgd29ya2VyQ29udGV4dCwgbV9zdGF0
ZS5nZXQoKSkpOworICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKICNlbmRpZgogICAgIG1fYWdlbnRzLmFwcGVu
ZChJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdl
dCgpLCAwLCBtX3N0YXRlLmdldCgpLCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpXb3JrZXJJbnNw
ZWN0b3IsIDApKTsKICAgICBtX2FnZW50cy5hcHBlbmQoY29uc29sZUFnZW50LnJlbGVhc2UoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFw
c2hvdERhdGFHcmlkcy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90RGF0YUdyaWRzLmpzCmluZGV4IDExYjM0OWE0MTU1YmJmNmQ2N2I0YTJiY2EyNWM3
ZTA5YWY3MGIxYjUuLmRlMzhiYzY5ODRmYWI5MTQ1OWExMTQ5Y2ZiNzYxZDY3NGQ4ZmNhMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90
RGF0YUdyaWRzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90RGF0YUdyaWRzLmpzCkBAIC0xMzQsNyArMTM0LDcgQEAgV2ViSW5zcGVjdG9yLkhl
YXBTbmFwc2hvdFNvcnRhYmxlRGF0YUdyaWQucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKLSAgICAgKiBAcGFyYW0ge1Byb2ZpbGVyQWdlbnQuSGVhcFNuYXBzaG90T2JqZWN0SWR9IGhl
YXBTbmFwc2hvdE9iamVjdElkCisgICAgICogQHBhcmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5IZWFw
U25hcHNob3RPYmplY3RJZH0gaGVhcFNuYXBzaG90T2JqZWN0SWQKICAgICAgKi8KICAgICBoaWdo
bGlnaHRPYmplY3RCeUhlYXBTbmFwc2hvdElkOiBmdW5jdGlvbihoZWFwU25hcHNob3RPYmplY3RJ
ZCkKICAgICB7CkBAIC01MjgsNyArNTI4LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdENv
bnN0cnVjdG9yc0RhdGFHcmlkLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVy
cmlkZQotICAgICAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5IZWFwU25hcHNob3RPYmplY3RJZH0g
aWQKKyAgICAgKiBAcGFyYW0ge0hlYXBQcm9maWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElk
fSBpZAogICAgICAqLwogICAgIGhpZ2hsaWdodE9iamVjdEJ5SGVhcFNuYXBzaG90SWQ6IGZ1bmN0
aW9uKGlkKQogICAgIHsKQEAgLTczNCw3ICs3MzQsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBz
aG90RG9taW5hdG9yc0RhdGFHcmlkLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBv
dmVycmlkZQotICAgICAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5IZWFwU25hcHNob3RPYmplY3RJ
ZH0gaWQKKyAgICAgKiBAcGFyYW0ge0hlYXBQcm9maWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVj
dElkfSBpZAogICAgICAqLwogICAgIGhpZ2hsaWdodE9iamVjdEJ5SGVhcFNuYXBzaG90SWQ6IGZ1
bmN0aW9uKGlkKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSGVhcFNuYXBzaG90R3JpZE5vZGVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanMKaW5kZXggZjI5NDFjNzZhMWYy
OTQxNDdjZWFjMGI4MDQ2ODc3NGZkODk1Njg2Yy4uYzllNDAwYjhlZThmOGM0OTQ3ZDdmMGE3YmNj
ZmI4NjczMjI2NmI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanMKQEAgLTQ2NSw3ICs0NjUsNyBA
QCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5vZGUucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUHJpbWl0aXZlVmFsdWUoV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJOb3QgYXZhaWxhYmxlIikpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFBy
b2ZpbGVyQWdlbnQuZ2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQoU3RyaW5nKHRoaXMuc25hcHNob3RO
b2RlSWQpLCBvYmplY3RHcm91cE5hbWUsIGZvcm1hdFJlc3VsdCk7CisgICAgICAgICAgICBIZWFw
UHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBPYmplY3RJZChTdHJpbmcodGhpcy5zbmFwc2hv
dE5vZGVJZCksIG9iamVjdEdyb3VwTmFtZSwgZm9ybWF0UmVzdWx0KTsKICAgICAgICAgfQogICAg
IH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVh
cFNuYXBzaG90Vmlldy5qcwppbmRleCBiYTBiOTRmMmMzZmFmNGExM2VmZWVjMjI2NjE0NjQ2MWQ1
ZDhlMGM4Li43OTM3OWQ5MGUzMTdkZjc0NjQxMGZkYWM2NjgzMjc5MTJjNTIyODQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RW
aWV3LmpzCkBAIC04MDEsNyArODAxLDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2Zp
bGVUeXBlLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQotICAgICAq
IEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5Qcm9maWxlSGVhZGVyfSBwcm9maWxlCisgICAgICogQHBh
cmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5Qcm9maWxlSGVhZGVyfSBwcm9maWxlCiAgICAgICogQHJl
dHVybiB7V2ViSW5zcGVjdG9yLlByb2ZpbGVIZWFkZXJ9CiAgICAgICovCiAgICAgY3JlYXRlUHJv
ZmlsZTogZnVuY3Rpb24ocHJvZmlsZSkKQEAgLTg3OSw3ICs4NzksNyBAQCBXZWJJbnNwZWN0b3Iu
SGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogCiAgICAgc3RhcnRTbmFwc2hvdFRyYW5z
ZmVyOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBQcm9maWxlckFnZW50LmdldEhlYXBTbmFw
c2hvdCh0aGlzLnVpZCk7CisgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hv
dCh0aGlzLnVpZCk7CiAgICAgfSwKIAogICAgIHNuYXBzaG90Q29uc3RydWN0b3JOYW1lOiBmdW5j
dGlvbigpCkBAIC05ODYsNyArOTg2LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVy
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX3JlY2VpdmVyID0gZmlsZU91dHB1dFN0
cmVhbTsKICAgICAgICAgICAgIHRoaXMuX3NhdmVkQ2h1bmtzID0gMDsKICAgICAgICAgICAgIHRo
aXMuX3VwZGF0ZVRyYW5zZmVyUHJvZ3Jlc3MoMCwgdGhpcy5fdG90YWxOdW1iZXJPZkNodW5rcyk7
Ci0gICAgICAgICAgICBQcm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hvdCh0aGlzLnVpZCk7Cisg
ICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5nZXRIZWFwU25hcHNob3QodGhpcy51aWQpOwog
ICAgICAgICB9CiAgICAgICAgIHRoaXMuX3NhdmluZ1RvRmlsZSA9IHRydWU7CiAgICAgICAgIHRo
aXMuX2ZpbGVOYW1lID0gdGhpcy5fZmlsZU5hbWUgfHwgIkhlYXAtIiArIG5ldyBEYXRlKCkudG9J
U084NjAxQ29tcGFjdCgpICsgIi5oZWFwc25hcHNob3QiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IGVjODkyYTZlMDQz
ZGY5MDA4MjNkZWUzNzM3OTViZjkwZDRjNDA1OTkuLjlhNGRiNjgwZjIzOTJmZTA3NTZhOTUzMjU1
OTk1MTNmZGFlYjcxMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTMwMyw2ICszMDMsNyBAQCBXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxl
VHlwZShuZXcgV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVUeXBlKCkpOwogCiAgICAgSW5zcGVj
dG9yQmFja2VuZC5yZWdpc3RlclByb2ZpbGVyRGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9yLlBy
b2ZpbGVyRGlzcGF0Y2hlcih0aGlzKSk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3Rlckhl
YXBQcm9maWxlckRpc3BhdGNoZXIobmV3IFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZXJEaXNwYXRj
aGVyKHRoaXMpKTsKIAogICAgIHRoaXMuX2NyZWF0ZUZpbGVTZWxlY3RvckVsZW1lbnQoKTsKICAg
ICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLl9oYW5k
bGVDb250ZXh0TWVudUV2ZW50LmJpbmQodGhpcyksIHRydWUpOwpAQCAtNDY3LDEyICs0NjgsMTMg
QEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgIF9jbGVhclBy
b2ZpbGVzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBQcm9maWxlckFnZW50LmNsZWFyUHJv
ZmlsZXMoKTsKKyAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuY2xlYXJQcm9maWxlcygpOwogICAg
ICAgICB0aGlzLl9yZXNldCgpOwogICAgIH0sCiAKICAgICBfZ2FyYmFnZUNvbGxlY3RCdXR0b25D
bGlja2VkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBQcm9maWxlckFnZW50LmNvbGxlY3RH
YXJiYWdlKCk7CisgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmNvbGxlY3RHYXJiYWdlKCk7CiAg
ICAgfSwKIAogICAgIC8qKgpAQCAtNjI1LDggKzYyNywxMiBAQCBXZWJJbnNwZWN0b3IuUHJvZmls
ZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgc2lkZWJhclBhcmVudC5yZW1vdmVDaGls
ZChwcm9maWxlLl9wcm9maWxlc1RyZWVFbGVtZW50KTsKIAotICAgICAgICBpZiAoIXByb2ZpbGUu
aXNUZW1wb3JhcnkpCi0gICAgICAgICAgICBQcm9maWxlckFnZW50LnJlbW92ZVByb2ZpbGUocHJv
ZmlsZS5wcm9maWxlVHlwZSgpLmlkLCBwcm9maWxlLnVpZCk7CisgICAgICAgIGlmICghcHJvZmls
ZS5pc1RlbXBvcmFyeSkgeworICAgICAgICAgICAgaWYgKHByb2ZpbGUucHJvZmlsZVR5cGUoKS5p
ZCA9PSBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlkKQorICAgICAg
ICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LnJlbW92ZVByb2ZpbGUocHJvZmlsZS51aWQpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQucmVtb3ZlUHJv
ZmlsZShwcm9maWxlLnByb2ZpbGVUeXBlKCkuaWQsIHByb2ZpbGUudWlkKTsKKyAgICAgICAgfQog
CiAgICAgICAgIC8vIE5vIG90aGVyIGl0ZW0gd2lsbCBiZSBzZWxlY3RlZCBpZiB0aGVyZSBhcmVu
J3QgYW55IG90aGVyIHByb2ZpbGVzLCBzbwogICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCB2aWV3
IGdldHMgY2xlYXJlZCB3aGVuIHRoZSBsYXN0IHByb2ZpbGUgaXMgcmVtb3ZlZC4KQEAgLTY4NCw3
ICs2OTAsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
fSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5IZWFwU25hcHNob3RP
YmplY3RJZH0gc25hcHNob3RPYmplY3RJZAorICAgICAqIEBwYXJhbSB7SGVhcFByb2ZpbGVyQWdl
bnQuSGVhcFNuYXBzaG90T2JqZWN0SWR9IHNuYXBzaG90T2JqZWN0SWQKICAgICAgKiBAcGFyYW0g
e3N0cmluZ30gdmlld05hbWUKICAgICAgKi8KICAgICBzaG93T2JqZWN0OiBmdW5jdGlvbihzbmFw
c2hvdE9iamVjdElkLCB2aWV3TmFtZSkKQEAgLTEwOTAsNyArMTA5Niw3IEBAIFdlYkluc3BlY3Rv
ci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICogQHBhcmFtIHs/c3RyaW5n
fSBlcnJvcgogICAgICAgICAgKiBAcGFyYW0ge0FycmF5LjxQcm9maWxlckFnZW50LlByb2ZpbGVI
ZWFkZXI+fSBwcm9maWxlSGVhZGVycwogICAgICAgICAgKi8KLSAgICAgICAgZnVuY3Rpb24gcG9w
dWxhdGVDYWxsYmFjayhlcnJvciwgcHJvZmlsZUhlYWRlcnMpIHsKKyAgICAgICAgZnVuY3Rpb24g
cG9wdWxhdGVQcm9maWxlc0NhbGxiYWNrKGVycm9yLCBwcm9maWxlSGVhZGVycykgewogICAgICAg
ICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHBy
b2ZpbGVIZWFkZXJzLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS51aWQgLSBiLnVpZDsg
fSk7CkBAIC0xMTAyLDcgKzExMDgsMjQgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgUHJvZmlsZXJB
Z2VudC5nZXRQcm9maWxlSGVhZGVycyhwb3B1bGF0ZUNhbGxiYWNrLmJpbmQodGhpcykpOworICAg
ICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHs/c3RyaW5nfSBlcnJvcgorICAgICAgICAgKiBA
cGFyYW0ge0FycmF5LjxIZWFwUHJvZmlsZXJBZ2VudC5Qcm9maWxlSGVhZGVyPn0gcHJvZmlsZUhl
YWRlcnMKKyAgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9uIHBvcHVsYXRlSGVhcFNuYXBzaG90
c0NhbGxiYWNrKGVycm9yLCBwcm9maWxlSGVhZGVycykgeworICAgICAgICAgICAgaWYgKGVycm9y
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHByb2ZpbGVIZWFkZXJzLnNv
cnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS51aWQgLSBiLnVpZDsgfSk7CisgICAgICAgICAg
ICB2YXIgcHJvZmlsZUhlYWRlcnNMZW5ndGggPSBwcm9maWxlSGVhZGVycy5sZW5ndGg7CisgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2ZpbGVIZWFkZXJzTGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgICAgICAgICB2YXIgcHJvZmlsZUhlYWRlciA9IHByb2ZpbGVIZWFkZXJzW2ldOwor
ICAgICAgICAgICAgICAgIHZhciBwcm9maWxlVHlwZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUoV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJZCk7CisgICAgICAgICAgICAg
ICAgdGhpcy5hZGRQcm9maWxlSGVhZGVyKHByb2ZpbGVUeXBlLmNyZWF0ZVByb2ZpbGUocHJvZmls
ZUhlYWRlcikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgUHJvZmlsZXJB
Z2VudC5nZXRQcm9maWxlSGVhZGVycyhwb3B1bGF0ZVByb2ZpbGVzQ2FsbGJhY2suYmluZCh0aGlz
KSk7CisgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldFByb2ZpbGVIZWFkZXJzKHBvcHVsYXRl
SGVhcFNuYXBzaG90c0NhbGxiYWNrLmJpbmQodGhpcykpOwogCiAgICAgICAgIHRoaXMuX3Byb2Zp
bGVzV2VyZVJlcXVlc3RlZCA9IHRydWU7CiAgICAgfSwKQEAgLTExNjksNyArMTE5Miw3IEBAIFdl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZnVuY3Rpb24g
ZG9uZSgpIHsKICAgICAgICAgICAgIHRoaXMuX2xhdW5jaGVyVmlldy5wcm9maWxlRmluaXNoZWQo
KTsKICAgICAgICAgfQotICAgICAgICBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3QodHJ1
ZSwgZG9uZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQudGFrZUhlYXBT
bmFwc2hvdCh0cnVlLCBkb25lLmJpbmQodGhpcykpOwogICAgICAgICBXZWJJbnNwZWN0b3IudXNl
ck1ldHJpY3MuUHJvZmlsZXNIZWFwUHJvZmlsZVRha2VuLnJlY29yZCgpOwogICAgIH0sCiAKQEAg
LTEyMDgsNyArMTIzMSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9
IHsKIAogICAgICAgICBmdW5jdGlvbiByZXZlYWxJblZpZXcodmlld05hbWUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0SGVhcE9iamVjdElkKG9iamVjdElkLCBkaWRS
ZWNlaXZlSGVhcE9iamVjdElkLmJpbmQodGhpcywgdmlld05hbWUpKTsKKyAgICAgICAgICAgIEhl
YXBQcm9maWxlckFnZW50LmdldEhlYXBPYmplY3RJZChvYmplY3RJZCwgZGlkUmVjZWl2ZUhlYXBP
YmplY3RJZC5iaW5kKHRoaXMsIHZpZXdOYW1lKSk7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5j
dGlvbiBkaWRSZWNlaXZlSGVhcE9iamVjdElkKHZpZXdOYW1lLCBlcnJvciwgcmVzdWx0KQpAQCAt
MTI0OCwzMCArMTI3MSw1OSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXJEaXNwYXRjaGVyLnByb3Rv
dHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQotICAgICAqIEBwYXJhbSB7bnVt
YmVyfSB1aWQKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gY2h1bmsKKyAgICAgKiBAcGFyYW0ge2Jv
b2xlYW59IGlzUHJvZmlsaW5nCiAgICAgICovCi0gICAgYWRkSGVhcFNuYXBzaG90Q2h1bms6IGZ1
bmN0aW9uKHVpZCwgY2h1bmspCisgICAgc2V0UmVjb3JkaW5nUHJvZmlsZTogZnVuY3Rpb24oaXNQ
cm9maWxpbmcpCiAgICAgewotICAgICAgICB0aGlzLl9wcm9maWxlc1BhbmVsLl9hZGRIZWFwU25h
cHNob3RDaHVuayh1aWQsIGNodW5rKTsKKyAgICAgICAgdGhpcy5fcHJvZmlsZXNQYW5lbC5zZXRS
ZWNvcmRpbmdQcm9maWxlKFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZS5UeXBlSWQsIGlzUHJv
ZmlsaW5nKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQG92ZXJyaWRlCisgICAgICovCisg
ICAgcmVzZXRQcm9maWxlczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJvZmls
ZXNQYW5lbC5fcmVzZXQoKTsKKyAgICB9LAorfQorCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICog
QGltcGxlbWVudHMge0hlYXBQcm9maWxlckFnZW50LkRpc3BhdGNoZXJ9CisgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBwcm9maWxlc1BhbmVsCisgKi8KK1dlYkluc3BlY3Rv
ci5IZWFwUHJvZmlsZXJEaXNwYXRjaGVyID0gZnVuY3Rpb24ocHJvZmlsZXNQYW5lbCkKK3sKKyAg
ICB0aGlzLl9wcm9maWxlc1BhbmVsID0gcHJvZmlsZXNQYW5lbDsKK30KKworV2ViSW5zcGVjdG9y
LkhlYXBQcm9maWxlckRpc3BhdGNoZXIucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBw
YXJhbSB7SGVhcFByb2ZpbGVyQWdlbnQuUHJvZmlsZUhlYWRlcn0gcHJvZmlsZQorICAgICAqLwor
ICAgIGFkZFByb2ZpbGVIZWFkZXI6IGZ1bmN0aW9uKHByb2ZpbGUpCisgICAgeworICAgICAgICB2
YXIgcHJvZmlsZVR5cGUgPSB0aGlzLl9wcm9maWxlc1BhbmVsLmdldFByb2ZpbGVUeXBlKFdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZS5UeXBlSWQpOworICAgICAgICB0aGlzLl9w
cm9maWxlc1BhbmVsLmFkZFByb2ZpbGVIZWFkZXIocHJvZmlsZVR5cGUuY3JlYXRlUHJvZmlsZShw
cm9maWxlKSk7CiAgICAgfSwKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQogICAgICAqIEBw
YXJhbSB7bnVtYmVyfSB1aWQKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gY2h1bmsKICAgICAgKi8K
LSAgICBmaW5pc2hIZWFwU25hcHNob3Q6IGZ1bmN0aW9uKHVpZCkKKyAgICBhZGRIZWFwU25hcHNo
b3RDaHVuazogZnVuY3Rpb24odWlkLCBjaHVuaykKICAgICB7Ci0gICAgICAgIHRoaXMuX3Byb2Zp
bGVzUGFuZWwuX2ZpbmlzaEhlYXBTbmFwc2hvdCh1aWQpOworICAgICAgICB0aGlzLl9wcm9maWxl
c1BhbmVsLl9hZGRIZWFwU25hcHNob3RDaHVuayh1aWQsIGNodW5rKTsKICAgICB9LAogCiAgICAg
LyoqCiAgICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtib29sZWFufSBpc1Byb2ZpbGlu
ZworICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1aWQKICAgICAgKi8KLSAgICBzZXRSZWNvcmRpbmdQ
cm9maWxlOiBmdW5jdGlvbihpc1Byb2ZpbGluZykKKyAgICBmaW5pc2hIZWFwU25hcHNob3Q6IGZ1
bmN0aW9uKHVpZCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwuc2V0UmVjb3Jk
aW5nUHJvZmlsZShXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUuVHlwZUlkLCBpc1Byb2ZpbGlu
Zyk7CisgICAgICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwuX2ZpbmlzaEhlYXBTbmFwc2hvdCh1aWQp
OwogICAgIH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCBhMzNiZWVlNDQ2NDZkYWJiOGM5NDM5MGFl
YzcyOTgzZTc5MTRjZjBiLi5mMWIzMmVhYmI4N2ZjMzBlM2NjNTAyMTM1MTkyOTExODJhYTlmZWYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZVBhbmVsLmpzCkBAIC01ODAsNyArNTgwLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlID0gewogCiAgICAgX2dhcmJhZ2VDb2xsZWN0QnV0dG9uQ2xpY2tlZDogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgUHJvZmlsZXJBZ2VudC5jb2xsZWN0R2FyYmFnZSgpOworICAg
ICAgICBIZWFwUHJvZmlsZXJBZ2VudC5jb2xsZWN0R2FyYmFnZSgpOwogICAgIH0sCiAKICAgICBf
Z2x1ZVBhcmVudEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggYjg4MzVmZTM2MDRlZTI4YzY0
NWI5Yjk4ODhlYTE2ZTMyZDRjNzBkMC4uNWM1MDc1YzgxZGJkYTMxMjE2MjI2NDg3N2EwNmUzNTY1
YmQ2MDczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuanMKQEAgLTM2OCw3ICszNjgsNyBAQCBXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lID0g
ZnVuY3Rpb24oKQogICAgIERlYnVnZ2VyQWdlbnQuc3VwcG9ydHNTZXBhcmF0ZVNjcmlwdENvbXBp
bGF0aW9uQW5kRXhlY3V0aW9uKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHkuYmlu
ZChXZWJJbnNwZWN0b3IsICJzZXBhcmF0ZVNjcmlwdENvbXBpbGF0aW9uQW5kRXhlY3V0aW9uRW5h
YmxlZCIsIG51bGwpKTsKICAgICBQcm9maWxlckFnZW50LmNhdXNlc1JlY29tcGlsYXRpb24oV2Vi
SW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3RvciwgInByb2Zp
bGVyQ2F1c2VzUmVjb21waWxhdGlvbiIsIG51bGwpKTsKICAgICBQcm9maWxlckFnZW50LmlzU2Ft
cGxpbmcoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3Rv
ciwgInNhbXBsaW5nQ1BVUHJvZmlsZXIiLCBudWxsKSk7Ci0gICAgUHJvZmlsZXJBZ2VudC5oYXNI
ZWFwUHJvZmlsZXIoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYklu
c3BlY3RvciwgImhlYXBQcm9maWxlclByZXNlbnQiLCBudWxsKSk7CisgICAgSGVhcFByb2ZpbGVy
QWdlbnQuaGFzSGVhcFByb2ZpbGVyKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHku
YmluZChXZWJJbnNwZWN0b3IsICJoZWFwUHJvZmlsZXJQcmVzZW50IiwgbnVsbCkpOwogICAgIFRp
bWVsaW5lQWdlbnQuc3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlvbihXZWJJbnNwZWN0b3IuX2lu
aXRpYWxpemVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAidGltZWxpbmVTdXBwb3J0c0Zy
YW1lSW5zdHJ1bWVudGF0aW9uIiwgbnVsbCkpOwogICAgIFRpbWVsaW5lQWdlbnQuY2FuTW9uaXRv
ck1haW5UaHJlYWQoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYklu
c3BlY3RvciwgInRpbWVsaW5lQ2FuTW9uaXRvck1haW5UaHJlYWQiLCBudWxsKSk7CiAgICAgUGFn
ZUFnZW50LmNhblNob3dGUFNDb3VudGVyKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxp
dHkuYmluZChXZWJJbnNwZWN0b3IsICJjYW5TaG93RlBTQ291bnRlciIsIG51bGwpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApp
bmRleCA0ZWE0NjBhMTBiNjA4OTFjYTVlZWVjZGFhOGYzNzM1NTljZTgxOGIzLi42MDgzZDk2N2Ix
ZTlkMjZlY2Q1NjNlYzk5Yzk4ODBjNTM3NGI0MDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC03NzgsNyArNzc4LDcg
QEAgYm9vbCBXZWJEZXZUb29sc0FnZW50OjpzaG91bGRJbnRlcnJ1cHRGb3JNZXNzYWdlKGNvbnN0
IFdlYlN0cmluZyYgbWVzc2FnZSkKICAgICAgICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmROYW1lc1tJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
cjo6a1Byb2ZpbGVyX3N0YXJ0Q21kXQogICAgICAgICB8fCBjb21tYW5kTmFtZSA9PSBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Y29tbWFuZE5hbWVzW0luc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyOjprUHJvZmlsZXJfc3RvcENtZF0KICAgICAgICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmROYW1lc1tJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcjo6a1Byb2ZpbGVyX2dldENQVVByb2ZpbGVDbWRdCi0gICAgICAgIHx8IGNvbW1hbmROYW1l
ID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpjb21tYW5kTmFtZXNbSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXI6OmtQcm9maWxlcl9nZXRIZWFwU25hcHNob3RDbWRdOworICAgICAgICB8
fCBjb21tYW5kTmFtZSA9PSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Y29tbWFuZE5hbWVz
W0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjprSGVhcFByb2ZpbGVyX2dldEhlYXBTbmFwc2hv
dENtZF07CiB9CiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudDo6cHJvY2Vzc1BlbmRpbmdNZXNzYWdl
cygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggODI4MTBmMzdhNTdlNjg5ZGQ5ZjU2ZjNjOTQ2NDE2ZjBhNDQ2ZTEwYy4uNWE1
NTQxYmU4MWM4NmQyYjBhZGE1MzRhMTUyYjI5NmM1M2QyNzljYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEzLTAyLTA0ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wg
aW50byBQcm9maWxlciBhbmQgSGVhcFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBz
aGFyZSB0aGUgc2FtZSBkb21haW4gJ1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAg
IEluIGZhY3QgdGhlc2UgdHdvIHByb2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29t
bW9uLiBTbyBwdXQgZWFjaCBpbnRvIGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQg
YWxzbyBoZWxwIHdoZW4gUHJvZmlsZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9v
bHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvaGVhcC1wcm9maWxlci9yZXNvdXJj
ZXMvaGVhcC1zbmFwc2hvdC1jb21tb24uanM6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LnRha2VI
ZWFwU25hcHNob3QuSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXIuc3RyaW5nX2FwcGVhcmVkX2hl
cmUpOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC50YWtlSGVhcFNuYXBzaG90KToKKyAgICAgICAg
KiBpbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWxlYWstdGVzdC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1k
b20td3JhcHBlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LWxvYWRlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0hlYXBTbmFwc2hvdFRlc3QpOgorCiAy
MDEzLTAyLTAxICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEubmFnaW5lbmlAaW50ZWwu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgRUZMIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9oZWFwLXByb2ZpbGVyL3Jlc291cmNlcy9oZWFw
LXNuYXBzaG90LWNvbW1vbi5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9oZWFw
LXByb2ZpbGVyL3Jlc291cmNlcy9oZWFwLXNuYXBzaG90LWNvbW1vbi5qcwppbmRleCA3YjNiOWYx
OGE5NzFmYzUwNjRjMDBmMjk5ZDViMTQxODU2NGYzMDFiLi45ZTk4ODQ5N2QxNTY5YWFmZjE2OGJm
YTZjMDc4YzNmN2Y3ZGU4NjhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvaGVhcC1wcm9maWxlci9yZXNvdXJjZXMvaGVhcC1zbmFwc2hvdC1jb21tb24uanMKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2hlYXAtcHJvZmlsZXIvcmVzb3VyY2Vz
L2hlYXAtc25hcHNob3QtY29tbW9uLmpzCkBAIC05LDEwICs5LDEwIEBAIEluc3BlY3RvclRlc3Qu
aW1wb3J0U2NyaXB0KCIuLi8uLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0pTCiAKIEluc3BlY3RvclRlc3QudGFrZUhlYXBTbmFwc2hvdCA9IGZ1bmN0aW9uKGNh
bGxiYWNrKQogewotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQcm9maWxlci5hZGRQ
cm9maWxlSGVhZGVyIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIEluc3BlY3RvclRl
c3QuZXZlbnRIYW5kbGVyWyJIZWFwUHJvZmlsZXIuYWRkUHJvZmlsZUhlYWRlciJdID0gZnVuY3Rp
b24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIHZhciBwcm9maWxlSWQgPSBtZXNzYWdl
T2JqZWN0WyJwYXJhbXMiXVsiaGVhZGVyIl1bInVpZCJdOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJQcm9maWxlci5nZXRIZWFwU25hcHNob3QiLCB7ICJ1aWQiOiBwcm9maWxl
SWQgfSwgZGlkR2V0SGVhcFNuYXBzaG90KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiSGVhcFByb2ZpbGVyLmdldEhlYXBTbmFwc2hvdCIsIHsgInVpZCI6IHByb2ZpbGVJZCB9
LCBkaWRHZXRIZWFwU25hcHNob3QpOwogCiAgICAgICAgIGZ1bmN0aW9uIGRpZEdldEhlYXBTbmFw
c2hvdChtZXNzYWdlT2JqZWN0KQogICAgICAgICB7CkBAIC0yMiwxMiArMjIsMTIgQEAgSW5zcGVj
dG9yVGVzdC50YWtlSGVhcFNuYXBzaG90ID0gZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgfQogCiAg
ICAgdmFyIGNodW5rcyA9IFtdOwotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQcm9m
aWxlci5hZGRIZWFwU25hcHNob3RDaHVuayJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAg
ICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiSGVhcFByb2ZpbGVyLmFkZEhlYXBTbmFwc2hv
dENodW5rIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAgICAgY2h1bmtz
LnB1c2gobWVzc2FnZU9iamVjdFsicGFyYW1zIl1bImNodW5rIl0pOwogICAgIH0KIAotICAgIElu
c3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQcm9maWxlci5maW5pc2hIZWFwU25hcHNob3QiXSA9
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJb
IkhlYXBQcm9maWxlci5maW5pc2hIZWFwU25hcHNob3QiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmpl
Y3QpCiAgICAgewogICAgICAgICB2YXIgc2VyaWFsaXplZFNuYXBzaG90ID0gY2h1bmtzLmpvaW4o
IiIpOwogICAgICAgICB2YXIgcGFyc2VkID0gSlNPTi5wYXJzZShzZXJpYWxpemVkU25hcHNob3Qp
OwpAQCAtMzUsNSArMzUsNSBAQCBJbnNwZWN0b3JUZXN0LnRha2VIZWFwU25hcHNob3QgPSBmdW5j
dGlvbihjYWxsYmFjaykKICAgICAgICAgY2FsbGJhY2soc25hcHNob3QpOwogICAgIH0KIAotICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlByb2ZpbGVyLnRha2VIZWFwU25hcHNob3QiLCB7
fSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiSGVhcFByb2ZpbGVyLnRha2VIZWFw
U25hcHNob3QiLCB7fSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvbm1pLXdlYmF1ZGlvLWxlYWstdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL25taS13ZWJhdWRpby1sZWFrLXRlc3QuaHRtbAppbmRleCAyM2FjY2M3NGNiOGY4
NjE5NGM3OWVjNTM2ZjkxZTE5YWVkNjNmYjY0Li5hMDg1MDU3MzJjNTA2ZmVmNDk0ODdjMzkzNTBi
YjU3MWVjNDMzZjBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
bm1pLXdlYmF1ZGlvLWxlYWstdGVzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9ubWktd2ViYXVkaW8tbGVhay10ZXN0Lmh0bWwKQEAgLTYwLDcgKzYwLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBpRnJhbWVOYXZpZ2F0ZWQobWVzc2FnZU9iamVj
dCkgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogSUZyYW1lIHdhcyBuYXZpZ2F0
ZWQgdG8gcmVzb3VyY2VzL2JsYW5rLmh0bWwiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgnUHJvZmlsZXIuY29sbGVjdEdhcmJhZ2UnLCB7fSwgZnVuY3Rpb24oKSB7IH0gKTsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgnSGVhcFByb2ZpbGVyLmNvbGxlY3RH
YXJiYWdlJywge30sIGZ1bmN0aW9uKCkgeyB9ICk7CiAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJBY3Rpb246IFJ1biBHQyBhbmQgY2hlY2sgUGFnZS5BdWRpbyBkYXRhIHNpemUiKTsKICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgnTWVtb3J5LmdldFByb2Nlc3NNZW1vcnlEaXN0
cmlidXRpb24nLCB7fSwgbm9BdWRpb1NoYXJlZERhdGEpOwogICAgIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxlLWNy
YXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1n
ZXQtcHJvZmlsZS1jcmFzaC5odG1sCmluZGV4IDg1NjFiY2I4MTFmMzEwM2EzYzU3YTY1MWMyYjZj
Y2UyODFhMDUxODAuLjU0NGNiMTIyMTg4ZjMzZDE0NzUxNDg0OTJmZGM1ZGRmZWM5ZjNkYzAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdl
dC1wcm9maWxlLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2hlYXAtc25hcHNob3QtZ2V0LXByb2ZpbGUtY3Jhc2guaHRtbApAQCAtMTQsNyArMTQsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvclN0cmluZyk7
CiAgICAgICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgUHJv
ZmlsZXJBZ2VudC5nZXRIZWFwU25hcHNob3QoLTEsIGZpbmlzaCk7CisgICAgICAgICAgICBIZWFw
UHJvZmlsZXJBZ2VudC5nZXRIZWFwU25hcHNob3QoLTEsIGZpbmlzaCk7CiAgICAgICAgIH0KICAg
ICBdKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFw
LXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbAppbmRleCAz
ODIwN2ZiOTU2MjA3MmU1M2M1NzdkZmE4NjVhYTAwMWI5YzcxODFiLi4wMzVmYzRjZTdiNDk1Nzk5
MzE5NDMzMDAyNTM4YjM0ZmU3NTkzMTg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRvbS13cmFwcGVyLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1kb20t
d3JhcHBlci5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIGhhbmRsZUxvYWQoKQogZnVu
Y3Rpb24gdGVzdCgpCiB7CiAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgicHJvZmlsZXMiKTsK
LSAgICBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3Qoc3RlcDApOworICAgIEhlYXBQcm9m
aWxlckFnZW50LnRha2VIZWFwU25hcHNob3Qoc3RlcDApOwogCiAgICAgZnVuY3Rpb24gc3RlcDAo
KQogICAgIHsKQEAgLTQyLDcgKzQyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAg
ICAgYm9keVdyYXBwZXJJZHMucHVzaChpdC5ub2RlLmlkKTsKICAgICAgICAgfQogICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGJvZHlXcmFwcGVySWRzLmxlbmd0aDsgaSsrKQotICAgICAgICAg
ICAgUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBPYmplY3RJZChib2R5V3JhcHBlcklkc1tp
XSwgdW5kZWZpbmVkLCBkaWRHZXRPYmplY3RCeUhlYXBPYmplY3RJZCk7CisgICAgICAgICAgICBI
ZWFwUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBPYmplY3RJZChib2R5V3JhcHBlcklkc1tp
XSwgdW5kZWZpbmVkLCBkaWRHZXRPYmplY3RCeUhlYXBPYmplY3RJZCk7CiAKICAgICAgICAgdmFy
IHJlc29sdmVkT2JqZWN0c0NvdW50ID0gMDsKICAgICAgICAgdmFyIHJlbW90ZU9iamVjdHMgPSBb
XTsKQEAgLTY5LDcgKzY5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBpZiAoKytk
aWRHZXRPd25Qcm9wZXJ0aWVzQ291bnQgIT09IHJlbW90ZU9iamVjdHMubGVuZ3RoKQogICAgICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5jbGVhclByb2Zp
bGVzKGRvbmUpOworICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuY2xlYXJQcm9maWxlcyhk
b25lKTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuX3Jlc2V0KCk7
CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sCmluZGV4IDk0MGI2NGJkMjY4MGYzMmJl
NWUzMzllYmFjMjNiYzA1MjQ5ZTc0ZWMuLmNkODY1YmUwN2E2OWY3YTk3OTE2MGFkY2E4ZWUyOTgy
Y2JhZmRiMGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFw
LXNuYXBzaG90LWxvYWRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgIHZhciBwYXJ0U2l6ZSA9IHNvdXJjZVN0cmluZ2lmaWVkLmxlbmd0aCA+PiAzOwog
CiAgICAgZnVuY3Rpb24gaW5qZWN0TW9ja1Byb2ZpbGUob3ZlcnJpZGVHZXRQcm9maWxlLCBjYWxs
YmFjaykgewotICAgICAgICB2YXIgZGlzcGF0Y2hlciA9IEluc3BlY3RvckJhY2tlbmQuX2RvbWFp
bkRpc3BhdGNoZXJzWyJQcm9maWxlciJdOworICAgICAgICB2YXIgZGlzcGF0Y2hlciA9IEluc3Bl
Y3RvckJhY2tlbmQuX2RvbWFpbkRpc3BhdGNoZXJzWyJIZWFwUHJvZmlsZXIiXTsKICAgICAgICAg
dmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlczsKICAgICAgICAgcGFuZWwu
X3Jlc2V0KCk7CiAKQEAgLTM5LDEyICszOSwxMiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAg
ZnVuY3Rpb24gc25hcHNob3RMb2FkZWQoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAob3Zl
cnJpZGVHZXRQcm9maWxlKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qub3ZlcnJpZGUo
UHJvZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIsIGdldEhlYXBTbmFwc2hvdE1vY2spOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoSGVhcFByb2ZpbGVyQWdlbnQs
ICJnZXRIZWFwU25hcHNob3QiLCBnZXRIZWFwU25hcHNob3RNb2NrKTsKICAgICAgICAgICAgIGNh
bGxiYWNrKHByb2ZpbGVIZWFkZXIpOwogICAgICAgICB9CiAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkU25pZmZlcihwcm9maWxlSGVhZGVyLCAiX3NuYXBzaG90UmVjZWl2ZWQiLCBzbmFwc2hvdExv
YWRlZCk7CiAKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5vdmVycmlkZShQcm9maWxlckFnZW50LCAi
Z2V0SGVhcFNuYXBzaG90IiwgZ2V0SGVhcFNuYXBzaG90TW9jayk7CisgICAgICAgIEluc3BlY3Rv
clRlc3Qub3ZlcnJpZGUoSGVhcFByb2ZpbGVyQWdlbnQsICJnZXRIZWFwU25hcHNob3QiLCBnZXRI
ZWFwU25hcHNob3RNb2NrKTsKICAgICAgICAgcGFuZWwuc2hvd1Byb2ZpbGUocHJvZmlsZUhlYWRl
cik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3QtdGVzdC5qcwppbmRleCAxNTU1NGQyY2MyYmJhODYwNWE2MmFhMDRhN2JmMjEy
ZDMwMzdiODAyLi5jYmQ2NjYzYzQ3NTg2YWRlYWIyOTE1ZmZlMDE2OGFhM2JiNzVmYzE2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0
LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXRl
c3QuanMKQEAgLTE3Miw3ICsxNzIsNyBAQCBJbnNwZWN0b3JUZXN0LnN0YXJ0UHJvZmlsZXJUZXN0
ID0gZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgZnVuY3Rpb24gcHJvZmlsZXJFbmFibGVkKCkKICAg
ICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJQcm9maWxlciB3YXMgZW5hYmxl
ZC4iKTsKLSAgICAgICAgLy8gV2UgbW9jayBvdXQgUHJvZmlsZXJBZ2VudCAtLSBhcyBEUlQgcnVu
cyBpbiBzaW5nbGUtcHJvY2VzcyBtb2RlLCBJbnNwZWN0b3IKKyAgICAgICAgLy8gV2UgbW9jayBv
dXQgSGVhcFByb2ZpbGVyQWdlbnQgLS0gYXMgRFJUIHJ1bnMgaW4gc2luZ2xlLXByb2Nlc3MgbW9k
ZSwgSW5zcGVjdG9yCiAgICAgICAgIC8vIGFuZCB0ZXN0IHNoYXJlIHRoZSBzYW1lIGhlYXAuIFRh
a2luZyBhIHNuYXBzaG90IHRha2VzIHRvbyBsb25nIGZvciBhIHRlc3QsCiAgICAgICAgIC8vIHNv
IHdlIHByb3ZpZGUgc3ludGhldGljIHNuYXBzaG90cy4KICAgICAgICAgSW5zcGVjdG9yVGVzdC5f
cGFuZWxSZXNldCA9IEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoV2ViSW5zcGVjdG9yLnBhbmVscy5w
cm9maWxlcywgIl9yZXNldCIsIGZ1bmN0aW9uKCl7fSwgdHJ1ZSk7CkBAIC03MzUsNyArNzM1LDcg
QEAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90ID0gZnVuY3Rpb24oZ2VuZXJhdG9y
LCBjYWxsYmFjaykKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5fYWRkSGVh
cFNuYXBzaG90Q2h1bmsodWlkLCBKU09OLnN0cmluZ2lmeShzbmFwc2hvdCkpOwogICAgICAgICBX
ZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLl9maW5pc2hIZWFwU25hcHNob3QodWlkKTsKICAg
ICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5vdmVycmlkZShQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNu
YXBzaG90IiwgcHVzaEdlbmVyYXRlZFNuYXBzaG90KTsKKyAgICBJbnNwZWN0b3JUZXN0Lm92ZXJy
aWRlKEhlYXBQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgcHVzaEdlbmVyYXRlZFNu
YXBzaG90KTsKICAgICBJbnNwZWN0b3JUZXN0Ll90YWtlQW5kT3BlblNuYXBzaG90Q2FsbGJhY2sg
PSBjYWxsYmFjazsKICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLmFkZFByb2ZpbGVI
ZWFkZXIocHJvZmlsZSk7CiAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5zaG93UHJv
ZmlsZShwcm9maWxlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186380</attachid>
            <date>2013-02-04 08:23:57 -0800</date>
            <delta_ts>2013-02-07 00:53:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108653-20130204202036.patch</filename>
            <type>text/plain</type>
            <size>60049</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI4ZWQzOTM5MjI1MDNk
OTI4YjQ2Yzg3OTgwNzFmMTJlYmJmZjI5Mi4uZTFkMWRiY2RhM2U5NDNhOGM3MGNmODFhYmRlODk0
MTQ3NTVhZjMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEzLTAyLTA0ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wgaW50byBQcm9maWxlciBhbmQgSGVh
cFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0aGUgc2FtZSBkb21haW4g
J1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIEluIGZhY3QgdGhlc2UgdHdvIHBy
b2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29tbW9uLiBTbyBwdXQgZWFjaCBpbnRv
IGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQgYWxzbyBoZWxwIHdoZW4gUHJvZmls
ZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9vbHMuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVj
dG9yQ29udHJvbGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlUHJvZmlsZXJBZ2VudDo6UGFnZVByb2ZpbGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clByb2ZpbGVyQWdlbnQ6OldvcmtlclByb2ZpbGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y29sbGVjdEdhcmJhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZVNuYXBz
aG90SGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
OjpoYXNIZWFwUHJvZmlsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJB
Z2VudDo6Z2V0UHJvZmlsZUhlYWRlcnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Z2V0UHJvZmlsZUhlYWRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmdldEhlYXBTbmFw
c2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpyZW1vdmVQ
cm9maWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojpy
ZW1vdmVQcm9maWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6
OnJlc2V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
cmVzZXRGcm9udGVuZFByb2ZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50Ojp0YWtlSGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRPYmplY3RCeUhlYXBPYmplY3RJZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Z2V0SGVhcE9iamVjdElkKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6Okluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50Ojp+SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJlc2V0U3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJlc2V0RnJvbnRlbmRQcm9maWxl
cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6c2V0RnJv
bnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNs
ZWFyRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnQ6OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCk6CisgICAgICAg
IChJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y2xlYXJQcm9maWxlcyk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChJbnN0cnVtZW50aW5nQWdlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3RydW1lbnRpbmdBZ2VudHM6Omluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OnNldEluc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBT
bmFwc2hvdERhdGFHcmlkcy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBT
bmFwc2hvdEdyaWROb2Rlcy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RH
ZW5lcmljT2JqZWN0Tm9kZS5wcm90b3R5cGUucXVlcnlPYmplY3RDb250ZW50KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLnN0YXJ0U25hcHNob3RUcmFuc2Zl
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLnNh
dmVUb0ZpbGUub25PcGVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRl
ci5wcm90b3R5cGUuc2F2ZVRvRmlsZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Q
cm9maWxlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9jbGVhclByb2Zp
bGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5fZ2Fy
YmFnZUNvbGxlY3RCdXR0b25DbGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsLnByb3RvdHlwZS5fcmVtb3ZlUHJvZmlsZUhlYWRlcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlUHJvZmlsZXMudmFyKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVQcm9m
aWxlcy5wb3B1bGF0ZUhlYXBTbmFwc2hvdHNDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlUHJvZmlsZXMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnRha2VIZWFwU25hcHNob3QpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnJldmVhbEluVmll
dyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXJEaXNwYXRjaGVyLnByb3RvdHlwZS5z
ZXRSZWNvcmRpbmdQcm9maWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlckRpc3Bh
dGNoZXIucHJvdG90eXBlLnJlc2V0UHJvZmlsZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhl
YXBQcm9maWxlckRpc3BhdGNoZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxl
ckRpc3BhdGNoZXIucHJvdG90eXBlLmFkZFByb2ZpbGVIZWFkZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkhlYXBQcm9maWxlckRpc3BhdGNoZXIucHJvdG90eXBlLmFkZEhlYXBTbmFwc2hvdENo
dW5rKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZXJEaXNwYXRjaGVyLnByb3Rv
dHlwZS5maW5pc2hIZWFwU25hcHNob3QpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
VGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnBy
b3RvdHlwZS5fZ2FyYmFnZUNvbGxlY3RCdXR0b25DbGlja2VkKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kb0xvYWRl
ZERvbmUpOgorCiAyMDEzLTAyLTAxICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkZWQgVHJpU3RhdGUgdG8gV1RGIGFuZCBzdGFydGVkIHVzaW5nIGl0IGlu
IG9uZSBwbGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBlY2RiMWJlNzNkOWRkZDM4
YjUxMjM3ZmU5OGRkMDY3MWUwNTkwNjczLi43YWRkMDdlZGJkOGU1ZDVmNDAxZDE4NTI2YWZlZDYy
NGIyZTczZjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDEzLTAyLTA0ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wgaW50byBQ
cm9maWxlciBhbmQgSGVhcFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0
aGUgc2FtZSBkb21haW4gJ1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIEluIGZh
Y3QgdGhlc2UgdHdvIHByb2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29tbW9uLiBT
byBwdXQgZWFjaCBpbnRvIGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQgYWxzbyBo
ZWxwIHdoZW4gUHJvZmlsZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9vbHMuCisK
KyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJEZXZUb29sc0FnZW50OjpzaG91bGRJbnRlcnJ1cHRGb3JNZXNzYWdlKToKKwogMjAxMy0w
Mi0wMSAgQWxleGlzIE1lbmFyZCAgPGFsZXhpc0B3ZWJraXQub3JnPgogCiAgICAgICAgIEVuYWJs
ZSB1bnByZWZpeGVkIENTUyB0cmFuc2l0aW9ucyBieSBkZWZhdWx0LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDZlMjRhYjc3MTQxMDVmOTNhNWE1YmM4OTI3NDU1
NTQ1OTU3NzRiYjkuLjRiMDVhNzRkOGVmOTllNzk4ODRiMzgwOTE4ZGYxOWYyNjY1ZWRjMjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTMwNDcsMTAgKzMwNDcs
OSBAQAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIlByb2ZpbGUgaGVhZGVyLiIsCiAgICAgICAgICAgICAgICAgInByb3Bl
cnRpZXMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidHlwZUlkIiwgInR5cGUi
OiAic3RyaW5nIiwgImVudW0iOiBbIkNQVSIsICJDU1MiLCAiSEVBUCJdLCAiZGVzY3JpcHRpb24i
OiAiUHJvZmlsZSB0eXBlIG5hbWUuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InR5cGVJZCIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJDUFUiLCAiQ1NTIl0sICJkZXNj
cmlwdGlvbiI6ICJQcm9maWxlIHR5cGUgbmFtZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidGl0bGUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUHJvZmls
ZSB0aXRsZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwgInR5cGUi
OiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcHJv
ZmlsZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWF4SlNPYmplY3RJZCIs
ICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiTGFz
dCBzZWVuIEpTIG9iamVjdCBJZC4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1
aWQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBpZGVudGlmaWVy
IG9mIHRoZSBwcm9maWxlLiIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCiAg
ICAgICAgICAgICB7CkBAIC0zMDc4LDExICszMDc3LDYgQEAKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJib3R0b21VcEhlYWQiLCAiJHJlZiI6ICJDUFVQcm9maWxlTm9kZSIsICJvcHRp
b25hbCI6IHRydWUgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZGxlVGltZSIs
ICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfQogICAgICAgICAgICAgICAgIF0K
LSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgImlkIjogIkhl
YXBTbmFwc2hvdE9iamVjdElkIiwKLSAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAot
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIZWFwIHNuYXNob3Qgb2JqZWN0IGlkLiIK
ICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImNvbW1hbmRzIjogWwpAQCAtMzA5
OSwxMiArMzA5Myw2IEBACiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJoYXNIZWFwUHJvZmlsZXIiLAotICAg
ICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InJlc3VsdCIsICJ0eXBlIjogImJvb2xlYW4iIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAg
ICAgICB9LAotICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImVuYWJsZSIK
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CkBAIC0zMTMyLDYgKzMxMjAsNjggQEAKICAg
ICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICJuYW1lIjogInJlbW92ZVByb2ZpbGUiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAidHlwZSI6ICJz
dHJpbmciIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwgInR5cGUiOiAi
aW50ZWdlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiY2xlYXJQcm9maWxlcyIKKyAgICAgICAgICAg
IH0KKyAgICAgICAgXSwKKyAgICAgICAgImV2ZW50cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAibmFtZSI6ICJhZGRQcm9maWxlSGVhZGVyIiwKKyAgICAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoZWFkZXIiLCAi
JHJlZiI6ICJQcm9maWxlSGVhZGVyIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRSZWNvcmRpbmdQ
cm9maWxlIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJpc1Byb2ZpbGluZyIsICJ0eXBlIjogImJvb2xlYW4iIH0KKyAgICAg
ICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJuYW1lIjogInJlc2V0UHJvZmlsZXMiCisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAg
ICB9LAorICAgIHsKKyAgICAgICAgImRvbWFpbiI6ICJIZWFwUHJvZmlsZXIiLAorICAgICAgICAi
aGlkZGVuIjogdHJ1ZSwKKyAgICAgICAgInR5cGVzIjogWworICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJpZCI6ICJQcm9maWxlSGVhZGVyIiwKKyAgICAgICAgICAgICAgICAidHlwZSI6
ICJvYmplY3QiLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQcm9maWxlIGhlYWRl
ci4iLAorICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInRpdGxlIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlBy
b2ZpbGUgdGl0bGUuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0
eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhl
IHByb2ZpbGUuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1heEpTT2JqZWN0
SWQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
Ikxhc3Qgc2VlbiBKUyBvYmplY3QgSWQuIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiaWQiOiAiSGVhcFNuYXBzaG90
T2JqZWN0SWQiLAorICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkhlYXAgc25hc2hvdCBvYmplY3QgaWQuIgorICAgICAgICAg
ICAgfQorICAgICAgICBdLAorICAgICAgICAiY29tbWFuZHMiOiBbCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgIm5hbWUiOiAiaGFzSGVhcFByb2ZpbGVyIiwKKyAgICAgICAgICAgICAg
ICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAi
dHlwZSI6ICJib29sZWFuIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRQcm9maWxlSGVhZGVycyIs
CisgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaGVhZGVycyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJQcm9m
aWxlSGVhZGVyIn0gfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0SGVhcFNuYXBzaG90IiwKICAgICAg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ1aWQiLCAidHlwZSI6ICJpbnRlZ2VyIiB9CkBAIC0zMTQwLDcgKzMxOTAsNiBAQAogICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogInJlbW92ZVByb2ZpbGUiLAogICAgICAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InR5cGUiLCAidHlwZSI6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAidWlkIiwgInR5cGUiOiAiaW50ZWdlciIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAg
ICAgIH0sCkBAIC0zMTk3LDEyICszMjQ2LDYgQEAKICAgICAgICAgICAgICAgICBdCiAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjogInNldFJlY29y
ZGluZ1Byb2ZpbGUiLAotICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImlzUHJvZmlsaW5nIiwgInR5cGUiOiAiYm9vbGVhbiIgfQot
ICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgIm5hbWUiOiAicmVzZXRQcm9maWxlcyIKICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKaW5kZXggM2M2NWE4YTYwODJmMjQyNzhkMTdjNzQxYzczOTY4ZDMxMGI5NzdkMy4uMGJl
YzZmZWJiMGE5ODQ2MmFjNzI5NjIzMzJjZWU0ZTY3Zjg2MzBjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTQ5LDkgKzE0OSwx
MyBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBhZ2Us
IEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogICAgIG1fZG9tRGVidWdnZXJBZ2VudCA9IGRv
bURlYnVnZ2VyQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRvbURlYnVnZ2Vy
QWdlbnRQdHIucmVsZWFzZSgpKTsKIAotICAgIE93blB0cjxJbnNwZWN0b3JQcm9maWxlckFnZW50
PiBwcm9maWxlckFnZW50UHRyKEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIGNvbnNvbGVBZ2VudCwgcGFnZSwgbV9zdGF0ZS5nZXQoKSwg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKKyAgICBPd25QdHI8SW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudD4gcHJvZmlsZXJBZ2VudFB0cihJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVh
dGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQsIHBhZ2UsIG1fc3Rh
dGUuZ2V0KCkpKTsKICAgICBtX3Byb2ZpbGVyQWdlbnQgPSBwcm9maWxlckFnZW50UHRyLmdldCgp
OwogICAgIG1fYWdlbnRzLmFwcGVuZChwcm9maWxlckFnZW50UHRyLnJlbGVhc2UoKSk7CisKKyAg
ICBPd25QdHI8SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ+IGhlYXBQcm9maWxlckFnZW50UHRy
KEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRz
LmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOwor
ICAgIG1fYWdlbnRzLmFwcGVuZChoZWFwUHJvZmlsZXJBZ2VudFB0ci5yZWxlYXNlKCkpOworCiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShXT1JLRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggZWNlNjM3YWNhYTJlZGU4YmRhMjUyZWVjZGU2
YTFhNDU4ZDViODUwMy4uM2M5ODlmNzJkZDEzOTc5MzQ3YmZkODJkN2QwMzc4M2IxNTI0ZmJmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBA
IC01Niw2ICs1Niw3IEBAIGNsYXNzIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ7CiBjbGFzcyBJbnNw
ZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbDsKIGNsYXNzIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50OworY2xhc3MgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ7
CiBjbGFzcyBJbnNwZWN0b3JNZW1vcnlBZ2VudDsKIGNsYXNzIEluc3BlY3Rvck92ZXJsYXk7CiBj
bGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IGExZjUwMWQyNDA1NThiOGNl
YjhjYjBkZWYxMDA2ZGFiNWNjMDg5ZDUuLmVlMzQ4ODJkNTBjMGFkMGMxMTBhNDBhZmU4MTcxMmRk
ZmFmOGU5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC05MjQsNiArOTI0LDggQEAgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnQKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgVVNFKEpTQykKICAg
ICAgICAgaWYgKEluc3BlY3RvclByb2ZpbGVyQWdlbnQqIHByb2ZpbGVyQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQcm9maWxlckFnZW50KCkpCiAgICAgICAgICAgICBwcm9m
aWxlckFnZW50LT5yZXNldFN0YXRlKCk7CisgICAgICAgIGlmIChJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudCogaGVhcFByb2ZpbGVyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudCgpKQorICAgICAgICAgICAgaGVhcFByb2ZpbGVyQWdlbnQtPnJl
c2V0U3RhdGUoKTsKICNlbmRpZgogICAgICAgICBpZiAoSW5zcGVjdG9yQ1NTQWdlbnQqIGNzc0Fn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQ1NTQWdlbnQoKSkKICAgICAgICAg
ICAgIGNzc0FnZW50LT5yZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IDJkN2IwODNlZjRlMGQxNDY3OTZiMGYy
NDYxOTIxMGFiY2JkMjI3MGQuLmZkOTE1YjI2NTRmZTQ5NTBkOTFiMDBiNTViOGNhNzdkMmU3ODYy
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxl
ckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5jcHAKQEAgLTcxLDggKzcxLDkgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IEhl
YXBQcm9maWxlVHlwZSA9ICJIRUFQIjsKIAogY2xhc3MgUGFnZVByb2ZpbGVyQWdlbnQgOiBwdWJs
aWMgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCB7CiBwdWJsaWM6Ci0gICAgUGFnZVByb2ZpbGVyQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29u
c29sZUFnZW50KiBjb25zb2xlQWdlbnQsIFBhZ2UqIGluc3BlY3RlZFBhZ2UsIEluc3BlY3RvckNv
bXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlw
dE1hbmFnZXIpCi0gICAgICAgIDogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50aW5n
QWdlbnRzLCBjb25zb2xlQWdlbnQsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpLCBtX2lu
c3BlY3RlZFBhZ2UoaW5zcGVjdGVkUGFnZSkgeyB9CisgICAgUGFnZVByb2ZpbGVyQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFn
ZW50KiBjb25zb2xlQWdlbnQsIFBhZ2UqIGluc3BlY3RlZFBhZ2UsIEluc3BlY3RvckNvbXBvc2l0
ZVN0YXRlKiBzdGF0ZSkKKyAgICAgICAgOiBJbnNwZWN0b3JQcm9maWxlckFnZW50KGluc3RydW1l
bnRpbmdBZ2VudHMsIGNvbnNvbGVBZ2VudCwgc3RhdGUpCisgICAgICAgICwgbV9pbnNwZWN0ZWRQ
YWdlKGluc3BlY3RlZFBhZ2UpIHsgfQogICAgIHZpcnR1YWwgflBhZ2VQcm9maWxlckFnZW50KCkg
eyB9CiAKIHByaXZhdGU6CkBAIC05NCwxNiArOTUsMTcgQEAgcHJpdmF0ZToKICAgICBQYWdlKiBt
X2luc3BlY3RlZFBhZ2U7CiB9OwogCi1QYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+
IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCwgUGFn
ZSogaW5zcGVjdGVkUGFnZSwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRl
LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKK1Bhc3NPd25Q
dHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRl
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNv
bGVBZ2VudCogY29uc29sZUFnZW50LCBQYWdlKiBpbnNwZWN0ZWRQYWdlLCBJbnNwZWN0b3JDb21w
b3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQ
YWdlUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zb2xlQWdlbnQsIGluc3Bl
Y3RlZFBhZ2UsIGluc3BlY3RvclN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKKyAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VQcm9maWxlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMs
IGNvbnNvbGVBZ2VudCwgaW5zcGVjdGVkUGFnZSwgaW5zcGVjdG9yU3RhdGUpKTsKIH0KIAogI2lm
IEVOQUJMRShXT1JLRVJTKQogY2xhc3MgV29ya2VyUHJvZmlsZXJBZ2VudCA6IHB1YmxpYyBJbnNw
ZWN0b3JQcm9maWxlckFnZW50IHsKIHB1YmxpYzoKLSAgICBXb3JrZXJQcm9maWxlckFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVB
Z2VudCogY29uc29sZUFnZW50LCBXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0LCBJbnNwZWN0
b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKQotICAgICAgICA6IEluc3BlY3RvclByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVu
dGluZ0FnZW50cywgY29uc29sZUFnZW50LCBzdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSwg
bV93b3JrZXJDb250ZXh0KHdvcmtlckNvbnRleHQpIHsgfQorICAgIFdvcmtlclByb2ZpbGVyQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29u
c29sZUFnZW50KiBjb25zb2xlQWdlbnQsIFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQsIElu
c3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSkKKyAgICAgICAgOiBJbnNwZWN0b3JQcm9maWxl
ckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnNvbGVBZ2VudCwgc3RhdGUpCisgICAgICAg
ICwgbV93b3JrZXJDb250ZXh0KHdvcmtlckNvbnRleHQpIHsgfQogICAgIHZpcnR1YWwgfldvcmtl
clByb2ZpbGVyQWdlbnQoKSB7IH0KIAogcHJpdmF0ZToKQEAgLTEyMiwyMyArMTI0LDIxIEBAIHBy
aXZhdGU6CiAgICAgV29ya2VyQ29udGV4dCogbV93b3JrZXJDb250ZXh0OwogfTsKIAotUGFzc093
blB0cjxJbnNwZWN0b3JQcm9maWxlckFnZW50PiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVh
dGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29u
c29sZUFnZW50KiBjb25zb2xlQWdlbnQsIFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQsIElu
c3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCitQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVy
QWdlbnQ+IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2Vu
dCwgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUq
IGluc3BlY3RvclN0YXRlKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyUHJvZmls
ZXJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zb2xlQWdlbnQsIHdvcmtlckNvbnRleHQs
IGluc3BlY3RvclN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKKyAgICByZXR1cm4gYWRv
cHRQdHIobmV3IFdvcmtlclByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc29s
ZUFnZW50LCB3b3JrZXJDb250ZXh0LCBpbnNwZWN0b3JTdGF0ZSkpOwogfQogI2VuZGlmCiAKLUlu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25z
b2xlQWdlbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCitJbnNwZWN0b3JQcm9maWxl
ckFnZW50OjpJbnNwZWN0b3JQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBJbnNw
ZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUpCiAgICAgOiBJbnNwZWN0b3JCYXNl
QWdlbnQ8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4oIlByb2ZpbGVyIiwgaW5zdHJ1bWVudGluZ0Fn
ZW50cywgaW5zcGVjdG9yU3RhdGUpCiAgICAgLCBtX2NvbnNvbGVBZ2VudChjb25zb2xlQWdlbnQp
Ci0gICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAg
ICAgLCBtX2Zyb250ZW5kKDApCiAgICAgLCBtX2VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3JlY29y
ZGluZ0NQVVByb2ZpbGUoZmFsc2UpCiAgICAgLCBtX2hlYWRlcnNSZXF1ZXN0ZWQoZmFsc2UpCiAg
ICAgLCBtX2N1cnJlbnRVc2VySW5pdGlhdGVkUHJvZmlsZU51bWJlcigtMSkKICAgICAsIG1fbmV4
dFVzZXJJbml0aWF0ZWRQcm9maWxlTnVtYmVyKDEpCi0gICAgLCBtX25leHRVc2VySW5pdGlhdGVk
SGVhcFNuYXBzaG90TnVtYmVyKDEpCiAgICAgLCBtX3Byb2ZpbGVOYW1lSWRsZVRpbWVNYXAoU2Ny
aXB0UHJvZmlsZXI6OmN1cnJlbnRQcm9maWxlTmFtZUlkbGVUaW1lTWFwKCkpCiAgICAgLCBtX3By
ZXZpb3VzVGFza0VuZFRpbWUoMC4wKQogewpAQCAtMTc3LDcgKzE3Nyw3IEBAIHZvaWQgSW5zcGVj
dG9yUHJvZmlsZXJBZ2VudDo6YWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xlKGNvbnN0
IFN0cmluZyYgdGl0CiAgICAgbV9jb25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoQ29u
c29sZUFQSU1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBEZWJ1Z01lc3NhZ2VMZXZlbCwg
bWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JQcm9m
aWxlckFnZW50Ojpjb2xsZWN0R2FyYmFnZShXZWJDb3JlOjpFcnJvclN0cmluZyopCit2b2lkIElu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojpjb2xsZWN0R2FyYmFnZShXZWJDb3JlOjpFcnJvclN0
cmluZyopCiB7CiAgICAgU2NyaXB0UHJvZmlsZXI6OmNvbGxlY3RHYXJiYWdlKCk7CiB9CkBAIC0x
OTEsMTAgKzE5MSw5IEBAIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpQcm9maWxl
SGVhZGVyPiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGVQCiAgICAgICAgIC5yZWxlYXNl
KCk7CiB9CiAKLVBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpQcm9maWxlSGVhZGVy
PiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGVTbmFwc2hvdEhlYWRlcihjb25zdCBTY3Jp
cHRIZWFwU25hcHNob3QmIHNuYXBzaG90KQorUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6SGVhcFBy
b2ZpbGVyOjpQcm9maWxlSGVhZGVyPiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRl
U25hcHNob3RIZWFkZXIoY29uc3QgU2NyaXB0SGVhcFNuYXBzaG90JiBzbmFwc2hvdCkKIHsKLSAg
ICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiBoZWFkZXIgPSBU
eXBlQnVpbGRlcjo6UHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI6OmNyZWF0ZSgpCi0gICAgICAgIC5z
ZXRUeXBlSWQoVHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpQcm9maWxlSGVhZGVyOjpUeXBlSWQ6OkhF
QVApCisgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpIZWFwUHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+
IGhlYWRlciA9IFR5cGVCdWlsZGVyOjpIZWFwUHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI6OmNyZWF0
ZSgpCiAgICAgICAgIC5zZXRVaWQoc25hcHNob3QudWlkKCkpCiAgICAgICAgIC5zZXRUaXRsZShz
bmFwc2hvdC50aXRsZSgpKTsKICAgICBoZWFkZXItPnNldE1heEpTT2JqZWN0SWQoc25hcHNob3Qu
bWF4U25hcHNob3RKU09iamVjdElkKCkpOwpAQCAtMjExLDcgKzIxMCw3IEBAIHZvaWQgSW5zcGVj
dG9yUHJvZmlsZXJBZ2VudDo6aXNTYW1wbGluZyhFcnJvclN0cmluZyosIGJvb2wqIHJlc3VsdCkK
ICAgICAqcmVzdWx0ID0gU2NyaXB0UHJvZmlsZXI6OmlzU2FtcGxpbmcoKTsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JQcm9maWxlckFnZW50OjpoYXNIZWFwUHJvZmlsZXIoRXJyb3JTdHJpbmcqLCBib29s
KiByZXN1bHQpCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpoYXNIZWFwUHJvZmls
ZXIoRXJyb3JTdHJpbmcqLCBib29sKiByZXN1bHQpCiB7CiAgICAgKnJlc3VsdCA9IFNjcmlwdFBy
b2ZpbGVyOjpoYXNIZWFwUHJvZmlsZXIoKTsKIH0KQEAgLTI2NCw2ICsyNjMsMTMgQEAgdm9pZCBJ
bnNwZWN0b3JQcm9maWxlckFnZW50OjpnZXRQcm9maWxlSGVhZGVycyhFcnJvclN0cmluZyosIFJl
ZlB0cjxUeXBlQnVpbGRlcjoKICAgICBQcm9maWxlc01hcDo6aXRlcmF0b3IgcHJvZmlsZXNFbmQg
PSBtX3Byb2ZpbGVzLmVuZCgpOwogICAgIGZvciAoUHJvZmlsZXNNYXA6Oml0ZXJhdG9yIGl0ID0g
bV9wcm9maWxlcy5iZWdpbigpOyBpdCAhPSBwcm9maWxlc0VuZDsgKytpdCkKICAgICAgICAgaGVh
ZGVycy0+YWRkSXRlbShjcmVhdGVQcm9maWxlSGVhZGVyKCppdC0+dmFsdWUpKTsKK30KKwordm9p
ZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Z2V0UHJvZmlsZUhlYWRlcnMoRXJyb3JTdHJp
bmcqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpIZWFwUHJvZmlsZXI6
OlByb2ZpbGVIZWFkZXI+ID4mIGhlYWRlcnMpCit7CisgICAgbV9oZWFkZXJzUmVxdWVzdGVkID0g
dHJ1ZTsKKyAgICBoZWFkZXJzID0gVHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpIZWFw
UHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+OjpjcmVhdGUoKTsKKwogICAgIEhlYXBTbmFwc2hvdHNN
YXA6Oml0ZXJhdG9yIHNuYXBzaG90c0VuZCA9IG1fc25hcHNob3RzLmVuZCgpOwogICAgIGZvciAo
SGVhcFNuYXBzaG90c01hcDo6aXRlcmF0b3IgaXQgPSBtX3NuYXBzaG90cy5iZWdpbigpOyBpdCAh
PSBzbmFwc2hvdHNFbmQ7ICsraXQpCiAgICAgICAgIGhlYWRlcnMtPmFkZEl0ZW0oY3JlYXRlU25h
cHNob3RIZWFkZXIoKml0LT52YWx1ZSkpOwpAQCAtMjczLDEyICsyNzksMTIgQEAgbmFtZXNwYWNl
IHsKIAogY2xhc3MgT3V0cHV0U3RyZWFtIDogcHVibGljIFNjcmlwdEhlYXBTbmFwc2hvdDo6T3V0
cHV0U3RyZWFtIHsKIHB1YmxpYzoKLSAgICBPdXRwdXRTdHJlYW0oSW5zcGVjdG9yRnJvbnRlbmQ6
OlByb2ZpbGVyKiBmcm9udGVuZCwgdW5zaWduZWQgdWlkKQorICAgIE91dHB1dFN0cmVhbShJbnNw
ZWN0b3JGcm9udGVuZDo6SGVhcFByb2ZpbGVyKiBmcm9udGVuZCwgdW5zaWduZWQgdWlkKQogICAg
ICAgICA6IG1fZnJvbnRlbmQoZnJvbnRlbmQpLCBtX3VpZCh1aWQpIHsgfQogICAgIHZvaWQgV3Jp
dGUoY29uc3QgU3RyaW5nJiBjaHVuaykgeyBtX2Zyb250ZW5kLT5hZGRIZWFwU25hcHNob3RDaHVu
ayhtX3VpZCwgY2h1bmspOyB9CiAgICAgdm9pZCBDbG9zZSgpIHsgbV9mcm9udGVuZC0+ZmluaXNo
SGVhcFNuYXBzaG90KG1fdWlkKTsgfQogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JGcm9udGVuZDo6
UHJvZmlsZXIqIG1fZnJvbnRlbmQ7CisgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OkhlYXBQcm9maWxl
ciogbV9mcm9udGVuZDsKICAgICBpbnQgbV91aWQ7CiB9OwogCkBAIC0yOTksNyArMzA1LDcgQEAg
dm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpnZXRDUFVQcm9maWxlKEVycm9yU3RyaW5nKiBl
cnJvclN0cmluZywgaW50IHJhd1VpZCwKICAgICBwcm9maWxlT2JqZWN0LT5zZXRJZGxlVGltZShp
dC0+dmFsdWUtPmlkbGVUaW1lKCkpOwogfQogCi12b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6
OmdldEhlYXBTbmFwc2hvdChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCByYXdVaWQpCit2
b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRIZWFwU25hcHNob3QoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBpbnQgcmF3VWlkKQogewogICAgIHVuc2lnbmVkIHVpZCA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihyYXdVaWQpOwogICAgIEhlYXBTbmFwc2hvdHNNYXA6Oml0ZXJhdG9y
IGl0ID0gbV9zbmFwc2hvdHMuZmluZCh1aWQpOwpAQCAtMzIwLDI5ICszMjYsMjggQEAgdm9pZCBJ
bnNwZWN0b3JQcm9maWxlckFnZW50OjpyZW1vdmVQcm9maWxlKEVycm9yU3RyaW5nKiwgY29uc3Qg
U3RyaW5nJiB0eXBlLCBpbnQKICAgICBpZiAodHlwZSA9PSBDUFVQcm9maWxlVHlwZSkgewogICAg
ICAgICBpZiAobV9wcm9maWxlcy5jb250YWlucyh1aWQpKQogICAgICAgICAgICAgbV9wcm9maWxl
cy5yZW1vdmUodWlkKTsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gSGVhcFByb2ZpbGVUeXBlKSB7
Ci0gICAgICAgIGlmIChtX3NuYXBzaG90cy5jb250YWlucyh1aWQpKQotICAgICAgICAgICAgbV9z
bmFwc2hvdHMucmVtb3ZlKHVpZCk7CiAgICAgfQogfQogCit2b2lkIEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpyZW1vdmVQcm9maWxlKEVycm9yU3RyaW5nKiwgaW50IHJhd1VpZCkKK3sKKyAg
ICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmF3VWlkKTsKKyAgICBpZiAo
bV9zbmFwc2hvdHMuY29udGFpbnModWlkKSkKKyAgICAgICAgbV9zbmFwc2hvdHMucmVtb3ZlKHVp
ZCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6cmVzZXRTdGF0ZSgpCiB7CiAg
ICAgc3RvcCgpOwogICAgIG1fcHJvZmlsZXMuY2xlYXIoKTsKLSAgICBtX3NuYXBzaG90cy5jbGVh
cigpOwogICAgIG1fY3VycmVudFVzZXJJbml0aWF0ZWRQcm9maWxlTnVtYmVyID0gMTsKICAgICBt
X25leHRVc2VySW5pdGlhdGVkUHJvZmlsZU51bWJlciA9IDE7Ci0gICAgbV9uZXh0VXNlckluaXRp
YXRlZEhlYXBTbmFwc2hvdE51bWJlciA9IDE7CiAgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7
Ci0gICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgpLT5jbGVh
ckluc3BlY3RlZE9iamVjdHMoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpy
ZXNldEZyb250ZW5kUHJvZmlsZXMoKQogewotICAgIGlmIChtX2hlYWRlcnNSZXF1ZXN0ZWQgJiYg
bV9mcm9udGVuZAotICAgICAgICAmJiBtX3Byb2ZpbGVzLmJlZ2luKCkgPT0gbV9wcm9maWxlcy5l
bmQoKQotICAgICAgICAmJiBtX3NuYXBzaG90cy5iZWdpbigpID09IG1fc25hcHNob3RzLmVuZCgp
KQorICAgIGlmIChtX2hlYWRlcnNSZXF1ZXN0ZWQgJiYgbV9mcm9udGVuZCAmJiBtX3Byb2ZpbGVz
LmlzRW1wdHkoKSkKICAgICAgICAgbV9mcm9udGVuZC0+cmVzZXRQcm9maWxlcygpOwogfQogCkBA
IC00MTIsNyArNDE3LDcgQEAgbmFtZXNwYWNlIHsKIAogY2xhc3MgSGVhcFNuYXBzaG90UHJvZ3Jl
c3M6IHB1YmxpYyBTY3JpcHRQcm9maWxlcjo6SGVhcFNuYXBzaG90UHJvZ3Jlc3MgewogcHVibGlj
OgotICAgIGV4cGxpY2l0IEhlYXBTbmFwc2hvdFByb2dyZXNzKEluc3BlY3RvckZyb250ZW5kOjpQ
cm9maWxlciogZnJvbnRlbmQpCisgICAgZXhwbGljaXQgSGVhcFNuYXBzaG90UHJvZ3Jlc3MoSW5z
cGVjdG9yRnJvbnRlbmQ6OkhlYXBQcm9maWxlciogZnJvbnRlbmQpCiAgICAgICAgIDogbV9mcm9u
dGVuZChmcm9udGVuZCkgeyB9CiAgICAgdm9pZCBTdGFydChpbnQgdG90YWxXb3JrKQogICAgIHsK
QEAgLTQyNiwxMyArNDMxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIERvbmUoKSB7IH0KICAgICBi
b29sIGlzQ2FuY2VsZWQoKSB7IHJldHVybiBmYWxzZTsgfQogcHJpdmF0ZToKLSAgICBJbnNwZWN0
b3JGcm9udGVuZDo6UHJvZmlsZXIqIG1fZnJvbnRlbmQ7CisgICAgSW5zcGVjdG9yRnJvbnRlbmQ6
OkhlYXBQcm9maWxlciogbV9mcm9udGVuZDsKICAgICBpbnQgbV90b3RhbFdvcms7CiB9OwogCiB9
OwogCi12b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnRha2VIZWFwU25hcHNob3QoRXJyb3JT
dHJpbmcqLCBjb25zdCBib29sKiByZXBvcnRQcm9ncmVzcykKK3ZvaWQgSW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQ6OnRha2VIZWFwU25hcHNob3QoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiBy
ZXBvcnRQcm9ncmVzcykKIHsKICAgICBTdHJpbmcgdGl0bGUgPSBtYWtlU3RyaW5nKFVzZXJJbml0
aWF0ZWRQcm9maWxlTmFtZSwgJy4nLCBTdHJpbmc6Om51bWJlcihtX25leHRVc2VySW5pdGlhdGVk
SGVhcFNuYXBzaG90TnVtYmVyKSk7CiAgICAgKyttX25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBz
aG90TnVtYmVyOwpAQCAtNDUyLDcgKzQ1Nyw3IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDo6dG9nZ2xlUmVjb3JkQnV0dG9uKGJvb2wgaXNQcm9maWxpbmcpCiAgICAgICAgIG1fZnJvbnRl
bmQtPnNldFJlY29yZGluZ1Byb2ZpbGUoaXNQcm9maWxpbmcpOwogfQogCi12b2lkIEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ6OmdldE9iamVjdEJ5SGVhcE9iamVjdElkKEVycm9yU3RyaW5nKiBlcnJv
ciwgY29uc3QgU3RyaW5nJiBoZWFwU25hcHNob3RPYmplY3RJZCwgY29uc3QgU3RyaW5nKiBvYmpl
Y3RHcm91cCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1
bHQpCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRPYmplY3RCeUhlYXBPYmpl
Y3RJZChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgaGVhcFNuYXBzaG90T2JqZWN0
SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGlt
ZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0KQogewogICAgIGJvb2wgb2s7CiAgICAgdW5zaWduZWQg
aWQgPSBoZWFwU25hcHNob3RPYmplY3RJZC50b1VJbnQoJm9rKTsKQEAgLTQ3NSw3ICs0ODAsNyBA
QCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmdldE9iamVjdEJ5SGVhcE9iamVjdElkKEVy
cm9yU3RyaW5nKiBlcnJvciwgY29uc3QgUwogICAgICAgICAqZXJyb3IgPSAiRmFpbGVkIHRvIHdy
YXAgb2JqZWN0IjsKIH0KIAotdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpnZXRIZWFwT2Jq
ZWN0SWQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBT
dHJpbmcqIGhlYXBTbmFwc2hvdE9iamVjdElkKQordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudDo6Z2V0SGVhcE9iamVjdElkKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3Ry
aW5nJiBvYmplY3RJZCwgU3RyaW5nKiBoZWFwU25hcHNob3RPYmplY3RJZCkKIHsKICAgICBJbmpl
Y3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmpl
Y3RlZFNjcmlwdEZvck9iamVjdElkKG9iamVjdElkKTsKICAgICBpZiAoaW5qZWN0ZWRTY3JpcHQu
aGFzTm9WYWx1ZSgpKSB7CkBAIC00OTYsMTAgKzUwMSw4IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mCiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JQcm9maWxlckFnZW50KTsKICAgICBJbnNwZWN0b3JC
YXNlQWdlbnQ8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD46OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9y
eU9iamVjdEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVyKG1fY29uc29sZUFnZW50LCAiY29uc29s
ZUFnZW50Iik7Ci0gICAgaW5mby5hZGRNZW1iZXIobV9pbmplY3RlZFNjcmlwdE1hbmFnZXIsICJp
bmplY3RlZFNjcmlwdE1hbmFnZXIiKTsKICAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fZnJvbnRl
bmQpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcHJvZmlsZXMsICJwcm9maWxlcyIpOwotICAgIGlu
Zm8uYWRkTWVtYmVyKG1fc25hcHNob3RzLCAic25hcHNob3RzIik7CiAgICAgaW5mby5hZGRNZW1i
ZXIobV9wcm9maWxlTmFtZUlkbGVUaW1lTWFwLCAicHJvZmlsZU5hbWVJZGxlVGltZU1hcCIpOwog
fQogCkBAIC01MjQsNiArNTI3LDY2IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZGlk
UHJvY2Vzc1Rhc2soKQogICAgIG1fcHJldmlvdXNUYXNrRW5kVGltZSA9IFdURjo6bW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCk7CiB9CiAKK1Bhc3NPd25QdHI8SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQ+IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGlu
c3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdl
cikKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFn
ZXIpKTsKK30KKworSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQ+KCJIZWFwUHJvZmlsZXIiLCBpbnN0cnVtZW50aW5nQWdlbnRz
LCBpbnNwZWN0b3JTdGF0ZSkKKyAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVk
U2NyaXB0TWFuYWdlcikKKyAgICAsIG1fZnJvbnRlbmQoMCkKKyAgICAsIG1faGVhZGVyc1JlcXVl
c3RlZChmYWxzZSkKKyAgICAsIG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1iZXIo
MSkKK3sKKyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50KHRoaXMpOworfQorCitJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6fkluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50KCkKK3sKKyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldElu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50KDApOworfQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpyZXNldFN0YXRlKCkKK3sKKyAgICBtX3NuYXBzaG90cy5jbGVhcigpOworICAg
IG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1iZXIgPSAxOworICAgIHJlc2V0RnJv
bnRlbmRQcm9maWxlcygpOworICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNj
cmlwdEhvc3QoKS0+Y2xlYXJJbnNwZWN0ZWRPYmplY3RzKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OnJlc2V0RnJvbnRlbmRQcm9maWxlcygpCit7CisgICAgaWYgKG1f
aGVhZGVyc1JlcXVlc3RlZCAmJiBtX2Zyb250ZW5kICYmIG1fc25hcHNob3RzLmlzRW1wdHkoKSkK
KyAgICAgICAgbV9mcm9udGVuZC0+cmVzZXRQcm9maWxlcygpOworfQorCit2b2lkIEluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQpCit7CisgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5oZWFwcHJvZmlsZXIoKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y2xlYXJGcm9udGVuZCgpCit7CisgICAg
bV9mcm9udGVuZCA9IDA7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJl
c3RvcmUoKQoreworICAgIC8vIFJldmlzaXQgdGhpcy4KKyAgICBtX2hlYWRlcnNSZXF1ZXN0ZWQg
PSB0cnVlOworICAgIHJlc2V0RnJvbnRlbmRQcm9maWxlcygpOworfQorCit2b2lkIEluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yUHJvZmlsZXJB
Z2VudCk7CisgICAgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
Pjo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9pbmplY3RlZFNjcmlwdE1hbmFnZXIsICJpbmplY3RlZFNjcmlwdE1hbmFnZXIiKTsKKyAg
ICBpbmZvLmFkZFdlYWtQb2ludGVyKG1fZnJvbnRlbmQpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
c25hcHNob3RzLCAic25hcHNob3RzIik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9S
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVy
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50
LmgKaW5kZXggZmEwM2MyMTAyNTY0MTMzNjY0Yjk3ZmIwNGVmMDE4ZDAxN2EzNTE1Zi4uZjVjMDc3
YTg2YmY3NTllZjVjNGM5NTA5NTQyNzlhNDY4ZGY4ZDE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCkBAIC01OSwyMyArNTksMjEg
QEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiBjbGFzcyBJbnNwZWN0b3JQcm9maWxlckFn
ZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JQcm9maWxlckFnZW50Piwg
cHVibGljIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpQcm9maWxlckNvbW1hbmRIYW5kbGVy
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JQcm9maWxlckFnZW50KTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5z
cGVjdG9yUHJvZmlsZXJBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0
b3JDb25zb2xlQWdlbnQqLCBQYWdlKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxl
ckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dCosIFBhZ2UqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSopOwogI2lmIEVOQUJMRShXT1JLRVJT
KQotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgV29ya2VyQ29udGV4
dCosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7Cisg
ICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gY3JlYXRlKEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBXb3JrZXJDb250ZXh0Kiwg
SW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqKTsKICNlbmRpZgogICAgIHZpcnR1YWwgfkluc3BlY3Rv
clByb2ZpbGVyQWdlbnQoKTsKIAogICAgIHZvaWQgYWRkUHJvZmlsZShQYXNzUmVmUHRyPFNjcmlw
dFByb2ZpbGU+IHBycFByb2ZpbGUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMKTsKICAgICB2b2lkIGFkZFByb2ZpbGVGaW5pc2hlZE1lc3NhZ2VUb0NvbnNvbGUo
UGFzc1JlZlB0cjxTY3JpcHRQcm9maWxlPiwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwpOwogICAgIHZvaWQgYWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25z
b2xlKGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdEdhcmJhZ2UoRXJyb3JTdHJp
bmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJQcm9maWxlcyhFcnJvclN0cmluZyopIHsgcmVz
ZXRTdGF0ZSgpOyB9CiAgICAgdm9pZCByZXNldFN0YXRlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
Y2F1c2VzUmVjb21waWxhdGlvbihFcnJvclN0cmluZyosIGJvb2wqKTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVjb21waWxlU2NyaXB0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc1NhbXBsaW5nKEVy
cm9yU3RyaW5nKiwgYm9vbCopOwotICAgIHZpcnR1YWwgdm9pZCBoYXNIZWFwUHJvZmlsZXIoRXJy
b3JTdHJpbmcqLCBib29sKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
Kik7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKTsKQEAgLTg4LDU2ICs4
Niw5NiBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGdldEN1cnJlbnRVc2VySW5pdGlhdGVkUHJvZmls
ZU5hbWUoYm9vbCBpbmNyZW1lbnRQcm9maWxlTnVtYmVyID0gZmFsc2UpOwogICAgIHZpcnR1YWwg
dm9pZCBnZXRQcm9maWxlSGVhZGVycyhFcnJvclN0cmluZyosIFJlZlB0cjxUeXBlQnVpbGRlcjo6
QXJyYXk8VHlwZUJ1aWxkZXI6OlByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiA+Jik7CiAgICAgdmly
dHVhbCB2b2lkIGdldENQVVByb2ZpbGUoRXJyb3JTdHJpbmcqLCBpbnQgdWlkLCBSZWZQdHI8VHlw
ZUJ1aWxkZXI6OlByb2ZpbGVyOjpDUFVQcm9maWxlPiYpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRI
ZWFwU25hcHNob3QoRXJyb3JTdHJpbmcqLCBpbnQgdWlkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlUHJvZmlsZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdHlwZSwgaW50IHVpZCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKICAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgdGFrZUhlYXBTbmFwc2hvdChFcnJvclN0cmluZyosIGNvbnN0
IGJvb2wqIHJlcG9ydFByb2dyZXNzKTsKICAgICB2b2lkIHRvZ2dsZVJlY29yZEJ1dHRvbihib29s
IGlzUHJvZmlsaW5nKTsKIAotICAgIHZpcnR1YWwgdm9pZCBnZXRPYmplY3RCeUhlYXBPYmplY3RJ
ZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaGVhcFNuYXBzaG90T2JqZWN0SWQsIGNvbnN0
IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3Rl
T2JqZWN0PiYgcmVzdWx0KTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0SGVhcE9iamVjdElkKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgU3RyaW5nKiBoZWFwU25hcHNob3RPYmpl
Y3RJZCk7Ci0KICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyopIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdm9pZCB3aWxsUHJvY2Vzc1Rhc2soKTsKICAg
ICB2b2lkIGRpZFByb2Nlc3NUYXNrKCk7CiAKIHByb3RlY3RlZDoKLSAgICBJbnNwZWN0b3JQcm9m
aWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBJ
bnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNv
bGVBZ2VudCosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKik7CiAgICAgdmlydHVhbCB2b2lkIHN0
YXJ0UHJvZmlsaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8U2NyaXB0UHJvZmlsZT4gc3RvcFByb2ZpbGluZyhjb25zdCBTdHJpbmcmIHRpdGxlKSA9
IDA7CiAKIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkIGludCwgUmVmUHRy
PFNjcmlwdFByb2ZpbGU+ID4gUHJvZmlsZXNNYXA7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPHVuc2ln
bmVkIGludCwgUmVmUHRyPFNjcmlwdEhlYXBTbmFwc2hvdD4gPiBIZWFwU25hcHNob3RzTWFwOwog
CiAgICAgdm9pZCByZXNldEZyb250ZW5kUHJvZmlsZXMoKTsKICAgICB2b2lkIHJlc3RvcmVFbmFi
bGVtZW50KCk7CiAKICAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpQcm9maWxlcjo6UHJvZmls
ZUhlYWRlcj4gY3JlYXRlUHJvZmlsZUhlYWRlcihjb25zdCBTY3JpcHRQcm9maWxlJik7Ci0gICAg
UGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+IGNyZWF0ZVNu
YXBzaG90SGVhZGVyKGNvbnN0IFNjcmlwdEhlYXBTbmFwc2hvdCYpOwogCiAgICAgSW5zcGVjdG9y
Q29uc29sZUFnZW50KiBtX2NvbnNvbGVBZ2VudDsKLSAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXIq
IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogICAgIEluc3BlY3RvckZyb250ZW5kOjpQcm9maWxl
ciogbV9mcm9udGVuZDsKICAgICBib29sIG1fZW5hYmxlZDsKICAgICBib29sIG1fcmVjb3JkaW5n
Q1BVUHJvZmlsZTsKICAgICBib29sIG1faGVhZGVyc1JlcXVlc3RlZDsKICAgICBpbnQgbV9jdXJy
ZW50VXNlckluaXRpYXRlZFByb2ZpbGVOdW1iZXI7CiAgICAgdW5zaWduZWQgbV9uZXh0VXNlcklu
aXRpYXRlZFByb2ZpbGVOdW1iZXI7Ci0gICAgdW5zaWduZWQgbV9uZXh0VXNlckluaXRpYXRlZEhl
YXBTbmFwc2hvdE51bWJlcjsKICAgICBQcm9maWxlc01hcCBtX3Byb2ZpbGVzOwotICAgIEhlYXBT
bmFwc2hvdHNNYXAgbV9zbmFwc2hvdHM7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBk
b3VibGU+IFByb2ZpbGVOYW1lSWRsZVRpbWVNYXA7CiAgICAgUHJvZmlsZU5hbWVJZGxlVGltZU1h
cCogbV9wcm9maWxlTmFtZUlkbGVUaW1lTWFwOwogICAgIGRvdWJsZSBtX3ByZXZpb3VzVGFza0Vu
ZFRpbWU7CiB9OwogCitjbGFzcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCA6IHB1YmxpYyBJ
bnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ+LCBwdWJsaWMgSW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OkhlYXBQcm9maWxlckNvbW1hbmRIYW5kbGVyIHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAgdmlydHVh
bCB+SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoKTsKKworICAgIHZvaWQgYWRkUHJvZmlsZShQ
YXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+IHBycFByb2ZpbGUsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKyAgICB2b2lkIGFkZFByb2ZpbGVGaW5pc2hlZE1l
c3NhZ2VUb0NvbnNvbGUoUGFzc1JlZlB0cjxTY3JpcHRQcm9maWxlPiwgdW5zaWduZWQgbGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOworICAgIHZvaWQgYWRkU3RhcnRQcm9maWxp
bmdNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdEdh
cmJhZ2UoRXJyb3JTdHJpbmcqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJQcm9maWxlcyhFcnJv
clN0cmluZyopIHsgcmVzZXRTdGF0ZSgpOyB9CisgICAgdm9pZCByZXNldFN0YXRlKCk7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgaGFzSGVhcFByb2ZpbGVyKEVycm9yU3RyaW5nKiwgYm9vbCopOworCisg
ICAgdmlydHVhbCB2b2lkIGdldFByb2ZpbGVIZWFkZXJzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5
cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVy
PiA+Jik7CisgICAgdmlydHVhbCB2b2lkIGdldEhlYXBTbmFwc2hvdChFcnJvclN0cmluZyosIGlu
dCB1aWQpOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQcm9maWxlKEVycm9yU3RyaW5nKiwgaW50
IHVpZCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOworICAgIHZpcnR1YWwgdm9pZCBy
ZXN0b3JlKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgdGFrZUhlYXBTbmFwc2hvdChFcnJvclN0cmlu
ZyosIGNvbnN0IGJvb2wqIHJlcG9ydFByb2dyZXNzKTsKKworICAgIHZpcnR1YWwgdm9pZCBnZXRP
YmplY3RCeUhlYXBPYmplY3RJZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaGVhcFNuYXBz
aG90T2JqZWN0SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxUeXBlQnVpbGRl
cjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
SGVhcE9iamVjdElkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgU3RyaW5n
KiBoZWFwU25hcHNob3RPYmplY3RJZCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCisgICAgdm9pZCB3aWxs
UHJvY2Vzc1Rhc2soKTsKKyAgICB2b2lkIGRpZFByb2Nlc3NUYXNrKCk7CisKK3Byb3RlY3RlZDoK
KyAgICBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5z
cGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKKworcHJpdmF0
ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIFJlZlB0cjxTY3JpcHRIZWFwU25hcHNo
b3Q+ID4gSGVhcFNuYXBzaG90c01hcDsKKworICAgIHZvaWQgcmVzZXRGcm9udGVuZFByb2ZpbGVz
KCk7CisKKyAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpIZWFwUHJvZmlsZXI6OlByb2ZpbGVI
ZWFkZXI+IGNyZWF0ZVNuYXBzaG90SGVhZGVyKGNvbnN0IFNjcmlwdEhlYXBTbmFwc2hvdCYpOwor
CisgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKKyAg
ICBJbnNwZWN0b3JGcm9udGVuZDo6SGVhcFByb2ZpbGVyKiBtX2Zyb250ZW5kOworICAgIGJvb2wg
bV9oZWFkZXJzUmVxdWVzdGVkOworICAgIHVuc2lnbmVkIG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFw
U25hcHNob3ROdW1iZXI7CisgICAgSGVhcFNuYXBzaG90c01hcCBtX3NuYXBzaG90czsKK307CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RF
QlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKaW5kZXggMmE4Mjg3ZWVjNjA5ZmZmZjkwMzRmOGRmMjIw
MzMyYTY0Y2I2YTM1OS4uY2Q4YTJkOTI3ODRmMjRmZjIyYzY2NDQ1Y2MzNDJkYjFjNTRhMmIwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCkBA
IC00OSw2ICs0OSw3IEBAIGNsYXNzIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDsKIGNsYXNzIElu
c3BlY3RvckRhdGFiYXNlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OwogY2xh
c3MgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OworY2xhc3MgSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDsKIGNsYXNzIEluc3BlY3RvclBh
Z2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ7CkBAIC0xMjcsNiArMTI4LDkg
QEAgcHVibGljOgogCiAgICAgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCogaW5zcGVjdG9yUHJvZmls
ZXJBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yUHJvZmlsZXJBZ2VudDsgfQogICAg
IHZvaWQgc2V0SW5zcGVjdG9yUHJvZmlsZXJBZ2VudChJbnNwZWN0b3JQcm9maWxlckFnZW50KiBh
Z2VudCkgeyBtX2luc3BlY3RvclByb2ZpbGVyQWdlbnQgPSBhZ2VudDsgfQorCisgICAgSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQqIGluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9pbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDsgfQorICAgIHZvaWQgc2V0SW5z
cGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQqIGFnZW50
KSB7IG1faW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQgPSBhZ2VudDsgfQogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoV09SS0VSUykKQEAgLTE3MCw2ICsxNzQsNyBAQCBwcml2YXRlOgogICAgIFBhZ2VE
ZWJ1Z2dlckFnZW50KiBtX3BhZ2VEZWJ1Z2dlckFnZW50OwogICAgIEluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQqIG1faW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDsKICAgICBJbnNwZWN0b3JQcm9m
aWxlckFnZW50KiBtX2luc3BlY3RvclByb2ZpbGVyQWdlbnQ7CisgICAgSW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQqIG1faW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ7CiAjZW5kaWYKICNpZiBF
TkFCTEUoV09SS0VSUykKICAgICBJbnNwZWN0b3JXb3JrZXJBZ2VudCogbV9pbnNwZWN0b3JXb3Jr
ZXJBZ2VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA5Yzc1YzkzN2QxMzhlOTkxMTcxODk5NmJhODYzYzVl
MzM1ZmJjNGRhLi45MzYyYmU2YjBhZjUzMGM2ZTQ2YWY4OTZlMmE1MGI5YjczOTJiMWYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIuY3BwCkBAIC0xMDksNyArMTA5LDggQEAgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXgKICAg
ICBtX3J1bnRpbWVBZ2VudC0+c2V0U2NyaXB0RGVidWdTZXJ2ZXIoJmRlYnVnZ2VyQWdlbnQtPnNj
cmlwdERlYnVnU2VydmVyKCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChkZWJ1Z2dlckFnZW50LnJl
bGVhc2UoKSk7CiAKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgY29uc29sZUFnZW50LmdldCgpLCB3
b3JrZXJDb250ZXh0LCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQo
KSkpOworICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUo
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQuZ2V0KCksIHdvcmtlckNv
bnRleHQsIG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3Rh
dGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CiAjZW5kaWYKICAgICBt
X2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSwgMCwgbV9zdGF0ZS5nZXQoKSwgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6V29ya2VySW5zcGVjdG9yLCAwKSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKGNvbnNvbGVBZ2Vu
dC5yZWxlYXNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0hlYXBTbmFwc2hvdERhdGFHcmlkcy5qcwppbmRleCAxMWIzNDlhNDE1NWJiZjZk
NjdiNGEyYmNhMjVjN2UwOWFmNzBiMWI1Li5kZTM4YmM2OTg0ZmFiOTE0NTlhMTE0OWNmYjc2MWQ2
NzRkOGZjYTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0hlYXBTbmFwc2hvdERhdGFHcmlkcy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0hlYXBTbmFwc2hvdERhdGFHcmlkcy5qcwpAQCAtMTM0LDcgKzEzNCw3IEBAIFdl
Ykluc3BlY3Rvci5IZWFwU25hcHNob3RTb3J0YWJsZURhdGFHcmlkLnByb3RvdHlwZSA9IHsKICAg
ICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50LkhlYXBTbmFwc2hv
dE9iamVjdElkfSBoZWFwU25hcHNob3RPYmplY3RJZAorICAgICAqIEBwYXJhbSB7SGVhcFByb2Zp
bGVyQWdlbnQuSGVhcFNuYXBzaG90T2JqZWN0SWR9IGhlYXBTbmFwc2hvdE9iamVjdElkCiAgICAg
ICovCiAgICAgaGlnaGxpZ2h0T2JqZWN0QnlIZWFwU25hcHNob3RJZDogZnVuY3Rpb24oaGVhcFNu
YXBzaG90T2JqZWN0SWQpCiAgICAgewpAQCAtNTI4LDcgKzUyOCw3IEBAIFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3RDb25zdHJ1Y3RvcnNEYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAKICAgICAvKioK
ICAgICAgKiBAb3ZlcnJpZGUKLSAgICAgKiBAcGFyYW0ge1Byb2ZpbGVyQWdlbnQuSGVhcFNuYXBz
aG90T2JqZWN0SWR9IGlkCisgICAgICogQHBhcmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5IZWFwU25h
cHNob3RPYmplY3RJZH0gaWQKICAgICAgKi8KICAgICBoaWdobGlnaHRPYmplY3RCeUhlYXBTbmFw
c2hvdElkOiBmdW5jdGlvbihpZCkKICAgICB7CkBAIC03MzQsNyArNzM0LDcgQEAgV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdERvbWluYXRvcnNEYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAKICAgICAv
KioKICAgICAgKiBAb3ZlcnJpZGUKLSAgICAgKiBAcGFyYW0ge1Byb2ZpbGVyQWdlbnQuSGVhcFNu
YXBzaG90T2JqZWN0SWR9IGlkCisgICAgICogQHBhcmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5IZWFw
U25hcHNob3RPYmplY3RJZH0gaWQKICAgICAgKi8KICAgICBoaWdobGlnaHRPYmplY3RCeUhlYXBT
bmFwc2hvdElkOiBmdW5jdGlvbihpZCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rlcy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90R3JpZE5vZGVzLmpzCmluZGV4
IGYyOTQxYzc2YTFmMjk0MTQ3Y2VhYzBiODA0Njg3NzRmZDg5NTY4NmMuLmM5ZTQwMGI4ZWU4Zjhj
NDk0N2Q3ZjBhN2JjY2ZiODY3MzIyNjZiNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90R3JpZE5vZGVzLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90R3JpZE5vZGVzLmpzCkBAIC00
NjUsNyArNDY1LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEdlbmVyaWNPYmplY3ROb2Rl
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
IGNhbGxiYWNrKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVByaW1pdGl2ZVZhbHVlKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiTm90IGF2YWlsYWJsZSIpKSk7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBQcm9maWxlckFnZW50LmdldE9iamVjdEJ5SGVhcE9iamVjdElkKFN0cmluZyh0
aGlzLnNuYXBzaG90Tm9kZUlkKSwgb2JqZWN0R3JvdXBOYW1lLCBmb3JtYXRSZXN1bHQpOworICAg
ICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuZ2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQoU3RyaW5n
KHRoaXMuc25hcHNob3ROb2RlSWQpLCBvYmplY3RHcm91cE5hbWUsIGZvcm1hdFJlc3VsdCk7CiAg
ICAgICAgIH0KICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKaW5kZXggYmEwYjk0ZjJjM2ZhZjRhMTNlZmVl
YzIyNjYxNDY0NjFkNWQ4ZTBjOC4uNzkzNzlkOTBlMzE3ZGY3NDY0MTBmZGFjNjY4MzI3OTEyYzUy
Mjg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFw
U25hcHNob3RWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SGVhcFNuYXBzaG90Vmlldy5qcwpAQCAtODAxLDcgKzgwMSw3IEBAIFdlYkluc3BlY3Rvci5IZWFw
U25hcHNob3RQcm9maWxlVHlwZS5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAb3Zl
cnJpZGUKLSAgICAgKiBAcGFyYW0ge1Byb2ZpbGVyQWdlbnQuUHJvZmlsZUhlYWRlcn0gcHJvZmls
ZQorICAgICAqIEBwYXJhbSB7SGVhcFByb2ZpbGVyQWdlbnQuUHJvZmlsZUhlYWRlcn0gcHJvZmls
ZQogICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyfQogICAgICAqLwog
ICAgIGNyZWF0ZVByb2ZpbGU6IGZ1bmN0aW9uKHByb2ZpbGUpCkBAIC04NzksNyArODc5LDcgQEAg
V2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZSA9IHsKIAogICAgIHN0YXJ0
U25hcHNob3RUcmFuc2ZlcjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgUHJvZmlsZXJBZ2Vu
dC5nZXRIZWFwU25hcHNob3QodGhpcy51aWQpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5n
ZXRIZWFwU25hcHNob3QodGhpcy51aWQpOwogICAgIH0sCiAKICAgICBzbmFwc2hvdENvbnN0cnVj
dG9yTmFtZTogZnVuY3Rpb24oKQpAQCAtOTg2LDcgKzk4Niw3IEBAIFdlYkluc3BlY3Rvci5IZWFw
UHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9yZWNlaXZlciA9
IGZpbGVPdXRwdXRTdHJlYW07CiAgICAgICAgICAgICB0aGlzLl9zYXZlZENodW5rcyA9IDA7CiAg
ICAgICAgICAgICB0aGlzLl91cGRhdGVUcmFuc2ZlclByb2dyZXNzKDAsIHRoaXMuX3RvdGFsTnVt
YmVyT2ZDaHVua3MpOwotICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRIZWFwU25hcHNob3Qo
dGhpcy51aWQpOworICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90
KHRoaXMudWlkKTsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9zYXZpbmdUb0ZpbGUgPSB0cnVl
OwogICAgICAgICB0aGlzLl9maWxlTmFtZSA9IHRoaXMuX2ZpbGVOYW1lIHx8ICJIZWFwLSIgKyBu
ZXcgRGF0ZSgpLnRvSVNPODYwMUNvbXBhY3QoKSArICIuaGVhcHNuYXBzaG90IjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwppbmRl
eCBlYzg5MmE2ZTA0M2RmOTAwODIzZGVlMzczNzk1YmY5MGQ0YzQwNTk5Li45YTRkYjY4MGYyMzky
ZmUwNzU2YTk1MzI1NTk5NTEzZmRhZWI3MTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCkBAIC0zMDMsNiArMzAzLDcgQEAg
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgICAgIHRoaXMuX3Jl
Z2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVHlwZSgpKTsK
IAogICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJQcm9maWxlckRpc3BhdGNoZXIobmV3IFdl
Ykluc3BlY3Rvci5Qcm9maWxlckRpc3BhdGNoZXIodGhpcykpOworICAgIEluc3BlY3RvckJhY2tl
bmQucmVnaXN0ZXJIZWFwUHJvZmlsZXJEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuSGVhcFBy
b2ZpbGVyRGlzcGF0Y2hlcih0aGlzKSk7CiAKICAgICB0aGlzLl9jcmVhdGVGaWxlU2VsZWN0b3JF
bGVtZW50KCk7CiAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51
IiwgdGhpcy5faGFuZGxlQ29udGV4dE1lbnVFdmVudC5iaW5kKHRoaXMpLCB0cnVlKTsKQEAgLTQ2
NywxMiArNDY4LDEzIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICBfY2xlYXJQcm9maWxlczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgUHJvZmlsZXJB
Z2VudC5jbGVhclByb2ZpbGVzKCk7CisgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmNsZWFyUHJv
ZmlsZXMoKTsKICAgICAgICAgdGhpcy5fcmVzZXQoKTsKICAgICB9LAogCiAgICAgX2dhcmJhZ2VD
b2xsZWN0QnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgUHJvZmlsZXJB
Z2VudC5jb2xsZWN0R2FyYmFnZSgpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5jb2xsZWN0
R2FyYmFnZSgpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTYyNSw4ICs2MjcsMTIgQEAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIHNpZGViYXJQYXJl
bnQucmVtb3ZlQ2hpbGQocHJvZmlsZS5fcHJvZmlsZXNUcmVlRWxlbWVudCk7CiAKLSAgICAgICAg
aWYgKCFwcm9maWxlLmlzVGVtcG9yYXJ5KQotICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5yZW1v
dmVQcm9maWxlKHByb2ZpbGUucHJvZmlsZVR5cGUoKS5pZCwgcHJvZmlsZS51aWQpOworICAgICAg
ICBpZiAoIXByb2ZpbGUuaXNUZW1wb3JhcnkpIHsKKyAgICAgICAgICAgIGlmIChwcm9maWxlLnBy
b2ZpbGVUeXBlKCkuaWQgPT0gV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlLlR5
cGVJZCkKKyAgICAgICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5yZW1vdmVQcm9maWxlKHBy
b2ZpbGUudWlkKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBQcm9maWxlckFn
ZW50LnJlbW92ZVByb2ZpbGUocHJvZmlsZS5wcm9maWxlVHlwZSgpLmlkLCBwcm9maWxlLnVpZCk7
CisgICAgICAgIH0KIAogICAgICAgICAvLyBObyBvdGhlciBpdGVtIHdpbGwgYmUgc2VsZWN0ZWQg
aWYgdGhlcmUgYXJlbid0IGFueSBvdGhlciBwcm9maWxlcywgc28KICAgICAgICAgLy8gbWFrZSBz
dXJlIHRoYXQgdmlldyBnZXRzIGNsZWFyZWQgd2hlbiB0aGUgbGFzdCBwcm9maWxlIGlzIHJlbW92
ZWQuCkBAIC02ODQsNyArNjkwLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90
eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge1Byb2ZpbGVyQWdlbnQu
SGVhcFNuYXBzaG90T2JqZWN0SWR9IHNuYXBzaG90T2JqZWN0SWQKKyAgICAgKiBAcGFyYW0ge0hl
YXBQcm9maWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElkfSBzbmFwc2hvdE9iamVjdElkCiAg
ICAgICogQHBhcmFtIHtzdHJpbmd9IHZpZXdOYW1lCiAgICAgICovCiAgICAgc2hvd09iamVjdDog
ZnVuY3Rpb24oc25hcHNob3RPYmplY3RJZCwgdmlld05hbWUpCkBAIC0xMDkwLDcgKzEwOTYsNyBA
QCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAqIEBw
YXJhbSB7P3N0cmluZ30gZXJyb3IKICAgICAgICAgICogQHBhcmFtIHtBcnJheS48UHJvZmlsZXJB
Z2VudC5Qcm9maWxlSGVhZGVyPn0gcHJvZmlsZUhlYWRlcnMKICAgICAgICAgICovCi0gICAgICAg
IGZ1bmN0aW9uIHBvcHVsYXRlQ2FsbGJhY2soZXJyb3IsIHByb2ZpbGVIZWFkZXJzKSB7CisgICAg
ICAgIGZ1bmN0aW9uIHBvcHVsYXRlUHJvZmlsZXNDYWxsYmFjayhlcnJvciwgcHJvZmlsZUhlYWRl
cnMpIHsKICAgICAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICBwcm9maWxlSGVhZGVycy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEu
dWlkIC0gYi51aWQ7IH0pOwpAQCAtMTEwMiw3ICsxMTA4LDI0IEBAIFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAg
ICAgIFByb2ZpbGVyQWdlbnQuZ2V0UHJvZmlsZUhlYWRlcnMocG9wdWxhdGVDYWxsYmFjay5iaW5k
KHRoaXMpKTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7P3N0cmluZ30gZXJyb3IK
KyAgICAgICAgICogQHBhcmFtIHtBcnJheS48SGVhcFByb2ZpbGVyQWdlbnQuUHJvZmlsZUhlYWRl
cj59IHByb2ZpbGVIZWFkZXJzCisgICAgICAgICAqLworICAgICAgICBmdW5jdGlvbiBwb3B1bGF0
ZUhlYXBTbmFwc2hvdHNDYWxsYmFjayhlcnJvciwgcHJvZmlsZUhlYWRlcnMpIHsKKyAgICAgICAg
ICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBwcm9m
aWxlSGVhZGVycy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEudWlkIC0gYi51aWQ7IH0p
OworICAgICAgICAgICAgdmFyIHByb2ZpbGVIZWFkZXJzTGVuZ3RoID0gcHJvZmlsZUhlYWRlcnMu
bGVuZ3RoOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9maWxlSGVhZGVyc0xl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFyIHByb2ZpbGVIZWFkZXIgPSBwcm9maWxl
SGVhZGVyc1tpXTsKKyAgICAgICAgICAgICAgICB2YXIgcHJvZmlsZVR5cGUgPSB0aGlzLmdldFBy
b2ZpbGVUeXBlKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZS5UeXBlSWQpOwor
ICAgICAgICAgICAgICAgIHRoaXMuYWRkUHJvZmlsZUhlYWRlcihwcm9maWxlVHlwZS5jcmVhdGVQ
cm9maWxlKHByb2ZpbGVIZWFkZXIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIFByb2ZpbGVyQWdlbnQuZ2V0UHJvZmlsZUhlYWRlcnMocG9wdWxhdGVQcm9maWxlc0NhbGxi
YWNrLmJpbmQodGhpcykpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5nZXRQcm9maWxlSGVh
ZGVycyhwb3B1bGF0ZUhlYXBTbmFwc2hvdHNDYWxsYmFjay5iaW5kKHRoaXMpKTsKIAogICAgICAg
ICB0aGlzLl9wcm9maWxlc1dlcmVSZXF1ZXN0ZWQgPSB0cnVlOwogICAgIH0sCkBAIC0xMTY5LDcg
KzExOTIsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIGZ1bmN0aW9uIGRvbmUoKSB7CiAgICAgICAgICAgICB0aGlzLl9sYXVuY2hlclZpZXcucHJv
ZmlsZUZpbmlzaGVkKCk7CiAgICAgICAgIH0KLSAgICAgICAgUHJvZmlsZXJBZ2VudC50YWtlSGVh
cFNuYXBzaG90KHRydWUsIGRvbmUuYmluZCh0aGlzKSk7CisgICAgICAgIEhlYXBQcm9maWxlckFn
ZW50LnRha2VIZWFwU25hcHNob3QodHJ1ZSwgZG9uZS5iaW5kKHRoaXMpKTsKICAgICAgICAgV2Vi
SW5zcGVjdG9yLnVzZXJNZXRyaWNzLlByb2ZpbGVzSGVhcFByb2ZpbGVUYWtlbi5yZWNvcmQoKTsK
ICAgICB9LAogCkBAIC0xMjA4LDcgKzEyMzEsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5l
bC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVuY3Rpb24gcmV2ZWFsSW5WaWV3KHZpZXdOYW1l
KQogICAgICAgICB7Ci0gICAgICAgICAgICBQcm9maWxlckFnZW50LmdldEhlYXBPYmplY3RJZChv
YmplY3RJZCwgZGlkUmVjZWl2ZUhlYXBPYmplY3RJZC5iaW5kKHRoaXMsIHZpZXdOYW1lKSk7Cisg
ICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5nZXRIZWFwT2JqZWN0SWQob2JqZWN0SWQsIGRp
ZFJlY2VpdmVIZWFwT2JqZWN0SWQuYmluZCh0aGlzLCB2aWV3TmFtZSkpOwogICAgICAgICB9CiAK
ICAgICAgICAgZnVuY3Rpb24gZGlkUmVjZWl2ZUhlYXBPYmplY3RJZCh2aWV3TmFtZSwgZXJyb3Is
IHJlc3VsdCkKQEAgLTEyNDgsMzAgKzEyNzEsNTkgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVyRGlz
cGF0Y2hlci5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAb3ZlcnJpZGUKLSAgICAg
KiBAcGFyYW0ge251bWJlcn0gdWlkCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IGNodW5rCisgICAg
ICogQHBhcmFtIHtib29sZWFufSBpc1Byb2ZpbGluZwogICAgICAqLwotICAgIGFkZEhlYXBTbmFw
c2hvdENodW5rOiBmdW5jdGlvbih1aWQsIGNodW5rKQorICAgIHNldFJlY29yZGluZ1Byb2ZpbGU6
IGZ1bmN0aW9uKGlzUHJvZmlsaW5nKQogICAgIHsKLSAgICAgICAgdGhpcy5fcHJvZmlsZXNQYW5l
bC5fYWRkSGVhcFNuYXBzaG90Q2h1bmsodWlkLCBjaHVuayk7CisgICAgICAgIHRoaXMuX3Byb2Zp
bGVzUGFuZWwuc2V0UmVjb3JkaW5nUHJvZmlsZShXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5cGUu
VHlwZUlkLCBpc1Byb2ZpbGluZyk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBvdmVycmlk
ZQorICAgICAqLworICAgIHJlc2V0UHJvZmlsZXM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IHRoaXMuX3Byb2ZpbGVzUGFuZWwuX3Jlc2V0KCk7CisgICAgfSwKK30KKworLyoqCisgKiBAY29u
c3RydWN0b3IKKyAqIEBpbXBsZW1lbnRzIHtIZWFwUHJvZmlsZXJBZ2VudC5EaXNwYXRjaGVyfQor
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0gcHJvZmlsZXNQYW5lbAorICov
CitXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlciA9IGZ1bmN0aW9uKHByb2ZpbGVz
UGFuZWwpCit7CisgICAgdGhpcy5fcHJvZmlsZXNQYW5lbCA9IHByb2ZpbGVzUGFuZWw7Cit9CisK
K1dlYkluc3BlY3Rvci5IZWFwUHJvZmlsZXJEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge0hlYXBQcm9maWxlckFnZW50LlByb2ZpbGVIZWFkZXJ9IHByb2Zp
bGUKKyAgICAgKi8KKyAgICBhZGRQcm9maWxlSGVhZGVyOiBmdW5jdGlvbihwcm9maWxlKQorICAg
IHsKKyAgICAgICAgdmFyIHByb2ZpbGVUeXBlID0gdGhpcy5fcHJvZmlsZXNQYW5lbC5nZXRQcm9m
aWxlVHlwZShXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlkKTsKKyAg
ICAgICAgdGhpcy5fcHJvZmlsZXNQYW5lbC5hZGRQcm9maWxlSGVhZGVyKHByb2ZpbGVUeXBlLmNy
ZWF0ZVByb2ZpbGUocHJvZmlsZSkpOwogICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAb3ZlcnJp
ZGUKICAgICAgKiBAcGFyYW0ge251bWJlcn0gdWlkCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGNo
dW5rCiAgICAgICovCi0gICAgZmluaXNoSGVhcFNuYXBzaG90OiBmdW5jdGlvbih1aWQpCisgICAg
YWRkSGVhcFNuYXBzaG90Q2h1bms6IGZ1bmN0aW9uKHVpZCwgY2h1bmspCiAgICAgewotICAgICAg
ICB0aGlzLl9wcm9maWxlc1BhbmVsLl9maW5pc2hIZWFwU25hcHNob3QodWlkKTsKKyAgICAgICAg
dGhpcy5fcHJvZmlsZXNQYW5lbC5fYWRkSGVhcFNuYXBzaG90Q2h1bmsodWlkLCBjaHVuayk7CiAg
ICAgfSwKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQotICAgICAqIEBwYXJhbSB7Ym9vbGVh
bn0gaXNQcm9maWxpbmcKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gdWlkCiAgICAgICovCi0gICAg
c2V0UmVjb3JkaW5nUHJvZmlsZTogZnVuY3Rpb24oaXNQcm9maWxpbmcpCisgICAgZmluaXNoSGVh
cFNuYXBzaG90OiBmdW5jdGlvbih1aWQpCiAgICAgewotICAgICAgICB0aGlzLl9wcm9maWxlc1Bh
bmVsLnNldFJlY29yZGluZ1Byb2ZpbGUoV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLlR5cGVJ
ZCwgaXNQcm9maWxpbmcpOworICAgICAgICB0aGlzLl9wcm9maWxlc1BhbmVsLl9maW5pc2hIZWFw
U25hcHNob3QodWlkKTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggYTMzYmVlZTQ0NjQ2
ZGFiYjhjOTQzOTBhZWM3Mjk4M2U3OTE0Y2YwYi4uZjFiMzJlYWJiODdmYzMwZTNjYzUwMjEzNTE5
MjkxMTgyYWE5ZmVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtNTgwLDcgKzU4MCw3IEBAIFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9nYXJiYWdlQ29sbGVjdEJ1dHRvbkNs
aWNrZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFByb2ZpbGVyQWdlbnQuY29sbGVjdEdh
cmJhZ2UoKTsKKyAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuY29sbGVjdEdhcmJhZ2UoKTsKICAg
ICB9LAogCiAgICAgX2dsdWVQYXJlbnRCdXR0b25DbGlja2VkOiBmdW5jdGlvbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGI4ODM1
ZmUzNjA0ZWUyOGM2NDViOWI5ODg4ZWExNmUzMmQ0YzcwZDAuLjVjNTA3NWM4MWRiZGEzMTIxNjIy
NjQ4NzdhMDZlMzU2NWJkNjA3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0zNjgsNyArMzY4LDcgQEAgV2ViSW5zcGVjdG9yLmRv
TG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKICAgICBEZWJ1Z2dlckFnZW50LnN1cHBvcnRzU2VwYXJh
dGVTY3JpcHRDb21waWxhdGlvbkFuZEV4ZWN1dGlvbihXZWJJbnNwZWN0b3IuX2luaXRpYWxpemVD
YXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAic2VwYXJhdGVTY3JpcHRDb21waWxhdGlvbkFu
ZEV4ZWN1dGlvbkVuYWJsZWQiLCBudWxsKSk7CiAgICAgUHJvZmlsZXJBZ2VudC5jYXVzZXNSZWNv
bXBpbGF0aW9uKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNw
ZWN0b3IsICJwcm9maWxlckNhdXNlc1JlY29tcGlsYXRpb24iLCBudWxsKSk7CiAgICAgUHJvZmls
ZXJBZ2VudC5pc1NhbXBsaW5nKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHkuYmlu
ZChXZWJJbnNwZWN0b3IsICJzYW1wbGluZ0NQVVByb2ZpbGVyIiwgbnVsbCkpOwotICAgIFByb2Zp
bGVyQWdlbnQuaGFzSGVhcFByb2ZpbGVyKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxp
dHkuYmluZChXZWJJbnNwZWN0b3IsICJoZWFwUHJvZmlsZXJQcmVzZW50IiwgbnVsbCkpOworICAg
IEhlYXBQcm9maWxlckFnZW50Lmhhc0hlYXBQcm9maWxlcihXZWJJbnNwZWN0b3IuX2luaXRpYWxp
emVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAiaGVhcFByb2ZpbGVyUHJlc2VudCIsIG51
bGwpKTsKICAgICBUaW1lbGluZUFnZW50LnN1cHBvcnRzRnJhbWVJbnN0cnVtZW50YXRpb24oV2Vi
SW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3RvciwgInRpbWVs
aW5lU3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlvbiIsIG51bGwpKTsKICAgICBUaW1lbGluZUFn
ZW50LmNhbk1vbml0b3JNYWluVGhyZWFkKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxp
dHkuYmluZChXZWJJbnNwZWN0b3IsICJ0aW1lbGluZUNhbk1vbml0b3JNYWluVGhyZWFkIiwgbnVs
bCkpOwogICAgIFBhZ2VBZ2VudC5jYW5TaG93RlBTQ291bnRlcihXZWJJbnNwZWN0b3IuX2luaXRp
YWxpemVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAiY2FuU2hvd0ZQU0NvdW50ZXIiLCBu
dWxsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29s
c0FnZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0Fn
ZW50SW1wbC5jcHAKaW5kZXggNGVhNDYwYTEwYjYwODkxY2E1ZWVlY2RhYThmMzczNTU5Y2U4MThi
My4uNjA4M2Q5NjdiMWU5ZDI2ZWNkNTYzZWM5OWM5ODgwYzUzNzRiNDAxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAt
Nzc4LDcgKzc3OCw3IEBAIGJvb2wgV2ViRGV2VG9vbHNBZ2VudDo6c2hvdWxkSW50ZXJydXB0Rm9y
TWVzc2FnZShjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiAgICAgICAgIHx8IGNvbW1hbmROYW1l
ID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpjb21tYW5kTmFtZXNbSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXI6OmtQcm9maWxlcl9zdGFydENtZF0KICAgICAgICAgfHwgY29tbWFuZE5h
bWUgPT0gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmROYW1lc1tJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlcjo6a1Byb2ZpbGVyX3N0b3BDbWRdCiAgICAgICAgIHx8IGNvbW1hbmRO
YW1lID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpjb21tYW5kTmFtZXNbSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXI6OmtQcm9maWxlcl9nZXRDUFVQcm9maWxlQ21kXQotICAgICAgICB8
fCBjb21tYW5kTmFtZSA9PSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Y29tbWFuZE5hbWVz
W0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjprUHJvZmlsZXJfZ2V0SGVhcFNuYXBzaG90Q21k
XTsKKyAgICAgICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6
OmNvbW1hbmROYW1lc1tJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6a0hlYXBQcm9maWxlcl9n
ZXRIZWFwU25hcHNob3RDbWRdOwogfQogCiB2b2lkIFdlYkRldlRvb2xzQWdlbnQ6OnByb2Nlc3NQ
ZW5kaW5nTWVzc2FnZXMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDgyODEwZjM3YTU3ZTY4OWRkOWY1NmYzYzk0NjQxNmYw
YTQ0NmUxMGMuLjVhNTU0MWJlODFjODZkMmIwYWRhNTM0YTE1MmIyOTZjNTNkMjc5Y2IgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAxMy0wMi0wNCAgQWxleGVpIEZpbGlwcG92ICA8YWxwaEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU3BsaXQgUHJvZmlsZXIgZG9tYWlu
IGluIHByb3RvY29sIGludG8gUHJvZmlsZXIgYW5kIEhlYXBQcm9maWxlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NjUzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IENQVSBhbmQgaGVh
cCBwcm9maWxlcnMgc2hhcmUgdGhlIHNhbWUgZG9tYWluICdQcm9maWxlcicgaW4gdGhlIHByb3Rv
Y29sLgorICAgICAgICBJbiBmYWN0IHRoZXNlIHR3byBwcm9maWxlIHR5cGVzIGhhdmUgbm90IHRv
byBtdWNoIGluIGNvbW1vbi4gU28gcHV0IGVhY2ggaW50byBpdHMgb3duIGRvbWFpbi4KKyAgICAg
ICAgSXQgc2hvdWxkIGFsc28gaGVscCB3aGVuIFByb2ZpbGVzIHBhbmVsIGdldHMgc3BsaXQgaW50
byBzZXZlcmFsIHRvb2xzLgorCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL2hlYXAtcHJv
ZmlsZXIvcmVzb3VyY2VzL2hlYXAtc25hcHNob3QtY29tbW9uLmpzOgorICAgICAgICAoSW5zcGVj
dG9yVGVzdC50YWtlSGVhcFNuYXBzaG90Lkluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyLnN0cmlu
Z19hcHBlYXJlZF9oZXJlKToKKyAgICAgICAgKEluc3BlY3RvclRlc3QudGFrZUhlYXBTbmFwc2hv
dCk6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby1sZWFrLXRlc3Qu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJv
ZmlsZS1jcmFzaC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9IZWFwU25hcHNo
b3RUZXN0KToKKwogMjAxMy0wMi0wMSAgU3VkYXJzYW5hIE5hZ2luZW5pICA8c3VkYXJzYW5hLm5h
Z2luZW5pQGludGVsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEVGTCBnYXJkZW5pbmcuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvaGVhcC1wcm9maWxlci9y
ZXNvdXJjZXMvaGVhcC1zbmFwc2hvdC1jb21tb24uanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvaGVhcC1wcm9maWxlci9yZXNvdXJjZXMvaGVhcC1zbmFwc2hvdC1jb21tb24uanMK
aW5kZXggN2IzYjlmMThhOTcxZmM1MDY0YzAwZjI5OWQ1YjE0MTg1NjRmMzAxYi4uOWU5ODg0OTdk
MTU2OWFhZmYxNjhiZmE2YzA3OGMzZjdmN2RlODY4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2hlYXAtcHJvZmlsZXIvcmVzb3VyY2VzL2hlYXAtc25hcHNob3Qt
Y29tbW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9oZWFwLXByb2Zp
bGVyL3Jlc291cmNlcy9oZWFwLXNuYXBzaG90LWNvbW1vbi5qcwpAQCAtOSwxMCArOSwxMCBAQCBJ
bnNwZWN0b3JUZXN0LmltcG9ydFNjcmlwdCgiLi4vLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9KUwogCiBJbnNwZWN0b3JUZXN0LnRha2VIZWFwU25hcHNob3Qg
PSBmdW5jdGlvbihjYWxsYmFjaykKIHsKLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsi
UHJvZmlsZXIuYWRkUHJvZmlsZUhlYWRlciJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAg
ICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiSGVhcFByb2ZpbGVyLmFkZFByb2ZpbGVIZWFk
ZXIiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewogICAgICAgICB2YXIgcHJvZmls
ZUlkID0gbWVzc2FnZU9iamVjdFsicGFyYW1zIl1bImhlYWRlciJdWyJ1aWQiXTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUHJvZmlsZXIuZ2V0SGVhcFNuYXBzaG90IiwgeyAi
dWlkIjogcHJvZmlsZUlkIH0sIGRpZEdldEhlYXBTbmFwc2hvdCk7CisgICAgICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkhlYXBQcm9maWxlci5nZXRIZWFwU25hcHNob3QiLCB7ICJ1aWQi
OiBwcm9maWxlSWQgfSwgZGlkR2V0SGVhcFNuYXBzaG90KTsKIAogICAgICAgICBmdW5jdGlvbiBk
aWRHZXRIZWFwU25hcHNob3QobWVzc2FnZU9iamVjdCkKICAgICAgICAgewpAQCAtMjIsMTIgKzIy
LDEyIEBAIEluc3BlY3RvclRlc3QudGFrZUhlYXBTbmFwc2hvdCA9IGZ1bmN0aW9uKGNhbGxiYWNr
KQogICAgIH0KIAogICAgIHZhciBjaHVua3MgPSBbXTsKLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50
SGFuZGxlclsiUHJvZmlsZXIuYWRkSGVhcFNuYXBzaG90Q2h1bmsiXSA9IGZ1bmN0aW9uKG1lc3Nh
Z2VPYmplY3QpCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkhlYXBQcm9maWxlci5h
ZGRIZWFwU25hcHNob3RDaHVuayJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAg
ICAgICAgIGNodW5rcy5wdXNoKG1lc3NhZ2VPYmplY3RbInBhcmFtcyJdWyJjaHVuayJdKTsKICAg
ICB9CiAKLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUHJvZmlsZXIuZmluaXNoSGVh
cFNuYXBzaG90Il0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIEluc3BlY3RvclRlc3Qu
ZXZlbnRIYW5kbGVyWyJIZWFwUHJvZmlsZXIuZmluaXNoSGVhcFNuYXBzaG90Il0gPSBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAgICAgdmFyIHNlcmlhbGl6ZWRTbmFwc2hvdCA9
IGNodW5rcy5qb2luKCIiKTsKICAgICAgICAgdmFyIHBhcnNlZCA9IEpTT04ucGFyc2Uoc2VyaWFs
aXplZFNuYXBzaG90KTsKQEAgLTM1LDUgKzM1LDUgQEAgSW5zcGVjdG9yVGVzdC50YWtlSGVhcFNu
YXBzaG90ID0gZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgICAgIGNhbGxiYWNrKHNuYXBzaG90KTsK
ICAgICB9CiAKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQcm9maWxlci50YWtlSGVh
cFNuYXBzaG90Iiwge30pOworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkhlYXBQcm9m
aWxlci50YWtlSGVhcFNuYXBzaG90Iiwge30pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby1sZWFrLXRlc3QuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8tbGVhay10ZXN0Lmh0bWwKaW5kZXgg
MjNhY2NjNzRjYjhmODYxOTRjNzllYzUzNmY5MWUxOWFlZDYzZmI2NC4uYTA4NTA1NzMyYzUwNmZl
ZjQ5NDg3YzM5MzUwYmI1NzFlYzQzM2YwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL25taS13ZWJhdWRpby1sZWFrLXRlc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWxlYWstdGVzdC5odG1sCkBAIC02MCw3
ICs2MCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gaUZyYW1lTmF2aWdhdGVk
KG1lc3NhZ2VPYmplY3QpIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IElGcmFt
ZSB3YXMgbmF2aWdhdGVkIHRvIHJlc291cmNlcy9ibGFuay5odG1sIik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoJ1Byb2ZpbGVyLmNvbGxlY3RHYXJiYWdlJywge30sIGZ1bmN0
aW9uKCkgeyB9ICk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoJ0hlYXBQcm9m
aWxlci5jb2xsZWN0R2FyYmFnZScsIHt9LCBmdW5jdGlvbigpIHsgfSApOwogICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiQWN0aW9uOiBSdW4gR0MgYW5kIGNoZWNrIFBhZ2UuQXVkaW8gZGF0YSBz
aXplIik7CiAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoJ01lbW9yeS5nZXRQcm9j
ZXNzTWVtb3J5RGlzdHJpYnV0aW9uJywge30sIG5vQXVkaW9TaGFyZWREYXRhKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1n
ZXQtcHJvZmlsZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3QtZ2V0LXByb2ZpbGUtY3Jhc2guaHRtbAppbmRleCA4NTYxYmNiODExZjMxMDNh
M2M1N2E2NTFjMmI2Y2NlMjgxYTA1MTgwLi41NDRjYjEyMjE4OGYzM2QxNDc1MTQ4NDkyZmRjNWRk
ZmVjOWYzZGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWwKQEAgLTE0
LDcgKzE0LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgY29uc29sZS5sb2co
ZXJyb3JTdHJpbmcpOwogICAgICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KC0xLCBmaW5pc2gpOworICAg
ICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KC0xLCBmaW5pc2gpOwog
ICAgICAgICB9CiAgICAgXSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRvbS13cmFwcGVyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRvbS13cmFwcGVy
Lmh0bWwKaW5kZXggMzgyMDdmYjk1NjIwNzJlNTNjNTc3ZGZhODY1YWEwMDFiOWM3MTgxYi4uMDM1
ZmM0Y2U3YjQ5NTc5OTMxOTQzMzAwMjUzOGIzNGZlNzU5MzE4NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1kb20td3JhcHBl
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90
LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbApAQCAtMTQsNyArMTQsNyBAQCBmdW5jdGlvbiBoYW5k
bGVMb2FkKCkKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwo
InByb2ZpbGVzIik7Ci0gICAgUHJvZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KHN0ZXAwKTsK
KyAgICBIZWFwUHJvZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KHN0ZXAwKTsKIAogICAgIGZ1
bmN0aW9uIHN0ZXAwKCkKICAgICB7CkBAIC00Miw3ICs0Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICAgICAgICAgIGJvZHlXcmFwcGVySWRzLnB1c2goaXQubm9kZS5pZCk7CiAgICAgICAg
IH0KICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib2R5V3JhcHBlcklkcy5sZW5ndGg7IGkr
KykKLSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQoYm9k
eVdyYXBwZXJJZHNbaV0sIHVuZGVmaW5lZCwgZGlkR2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQpOwor
ICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuZ2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQoYm9k
eVdyYXBwZXJJZHNbaV0sIHVuZGVmaW5lZCwgZGlkR2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQpOwog
CiAgICAgICAgIHZhciByZXNvbHZlZE9iamVjdHNDb3VudCA9IDA7CiAgICAgICAgIHZhciByZW1v
dGVPYmplY3RzID0gW107CkBAIC02OSw3ICs2OSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAgICAgaWYgKCsrZGlkR2V0T3duUHJvcGVydGllc0NvdW50ICE9PSByZW1vdGVPYmplY3RzLmxl
bmd0aCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIFByb2ZpbGVyQWdl
bnQuY2xlYXJQcm9maWxlcyhkb25lKTsKKyAgICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmNs
ZWFyUHJvZmlsZXMoZG9uZSk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2Zp
bGVzLl9yZXNldCgpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbAppbmRleCA5NDBi
NjRiZDI2ODBmMzJiZTVlMzM5ZWJhYzIzYmMwNTI0OWU3NGVjLi5jZDg2NWJlMDdhNjlmN2E5Nzkx
NjBhZGNhOGVlMjk4MmNiYWZkYjBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbApAQCAtMTcsNyArMTcsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICB2YXIgcGFydFNpemUgPSBzb3VyY2VTdHJpbmdpZmllZC5s
ZW5ndGggPj4gMzsKIAogICAgIGZ1bmN0aW9uIGluamVjdE1vY2tQcm9maWxlKG92ZXJyaWRlR2V0
UHJvZmlsZSwgY2FsbGJhY2spIHsKLSAgICAgICAgdmFyIGRpc3BhdGNoZXIgPSBJbnNwZWN0b3JC
YWNrZW5kLl9kb21haW5EaXNwYXRjaGVyc1siUHJvZmlsZXIiXTsKKyAgICAgICAgdmFyIGRpc3Bh
dGNoZXIgPSBJbnNwZWN0b3JCYWNrZW5kLl9kb21haW5EaXNwYXRjaGVyc1siSGVhcFByb2ZpbGVy
Il07CiAgICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXM7CiAg
ICAgICAgIHBhbmVsLl9yZXNldCgpOwogCkBAIC0zOSwxMiArMzksMTIgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgIGZ1bmN0aW9uIHNuYXBzaG90TG9hZGVkKCkKICAgICAgICAgewogICAgICAg
ICAgICAgaWYgKG92ZXJyaWRlR2V0UHJvZmlsZSkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0Lm92ZXJyaWRlKFByb2ZpbGVyQWdlbnQsICJnZXRIZWFwU25hcHNob3QiLCBnZXRIZWFwU25h
cHNob3RNb2NrKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKEhlYXBQ
cm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgZ2V0SGVhcFNuYXBzaG90TW9jayk7CiAg
ICAgICAgICAgICBjYWxsYmFjayhwcm9maWxlSGVhZGVyKTsKICAgICAgICAgfQogICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIocHJvZmlsZUhlYWRlciwgIl9zbmFwc2hvdFJlY2VpdmVk
Iiwgc25hcHNob3RMb2FkZWQpOwogCi0gICAgICAgIEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoUHJv
ZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIsIGdldEhlYXBTbmFwc2hvdE1vY2spOworICAg
ICAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKEhlYXBQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNu
YXBzaG90IiwgZ2V0SGVhcFNuYXBzaG90TW9jayk7CiAgICAgICAgIHBhbmVsLnNob3dQcm9maWxl
KHByb2ZpbGVIZWFkZXIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtdGVzdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanMKaW5kZXggMTU1NTRkMmNjMmJiYTg2MDVh
NjJhYTA0YTdiZjIxMmQzMDM3YjgwMi4uY2JkNjY2M2M0NzU4NmFkZWFiMjkxNWZmZTAxNjhhYTNi
Yjc1ZmMxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC10ZXN0LmpzCkBAIC0xNzIsNyArMTcyLDcgQEAgSW5zcGVjdG9yVGVzdC5zdGFy
dFByb2ZpbGVyVGVzdCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIGZ1bmN0aW9uIHByb2ZpbGVy
RW5hYmxlZCgpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUHJvZmls
ZXIgd2FzIGVuYWJsZWQuIik7Ci0gICAgICAgIC8vIFdlIG1vY2sgb3V0IFByb2ZpbGVyQWdlbnQg
LS0gYXMgRFJUIHJ1bnMgaW4gc2luZ2xlLXByb2Nlc3MgbW9kZSwgSW5zcGVjdG9yCisgICAgICAg
IC8vIFdlIG1vY2sgb3V0IEhlYXBQcm9maWxlckFnZW50IC0tIGFzIERSVCBydW5zIGluIHNpbmds
ZS1wcm9jZXNzIG1vZGUsIEluc3BlY3RvcgogICAgICAgICAvLyBhbmQgdGVzdCBzaGFyZSB0aGUg
c2FtZSBoZWFwLiBUYWtpbmcgYSBzbmFwc2hvdCB0YWtlcyB0b28gbG9uZyBmb3IgYSB0ZXN0LAog
ICAgICAgICAvLyBzbyB3ZSBwcm92aWRlIHN5bnRoZXRpYyBzbmFwc2hvdHMuCiAgICAgICAgIElu
c3BlY3RvclRlc3QuX3BhbmVsUmVzZXQgPSBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKFdlYkluc3Bl
Y3Rvci5wYW5lbHMucHJvZmlsZXMsICJfcmVzZXQiLCBmdW5jdGlvbigpe30sIHRydWUpOwpAQCAt
NzM1LDcgKzczNSw3IEBAIEluc3BlY3RvclRlc3QudGFrZUFuZE9wZW5TbmFwc2hvdCA9IGZ1bmN0
aW9uKGdlbmVyYXRvciwgY2FsbGJhY2spCiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJv
ZmlsZXMuX2FkZEhlYXBTbmFwc2hvdENodW5rKHVpZCwgSlNPTi5zdHJpbmdpZnkoc25hcHNob3Qp
KTsKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5fZmluaXNoSGVhcFNuYXBz
aG90KHVpZCk7CiAgICAgfQotICAgIEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoUHJvZmlsZXJBZ2Vu
dCwgImdldEhlYXBTbmFwc2hvdCIsIHB1c2hHZW5lcmF0ZWRTbmFwc2hvdCk7CisgICAgSW5zcGVj
dG9yVGVzdC5vdmVycmlkZShIZWFwUHJvZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIsIHB1
c2hHZW5lcmF0ZWRTbmFwc2hvdCk7CiAgICAgSW5zcGVjdG9yVGVzdC5fdGFrZUFuZE9wZW5TbmFw
c2hvdENhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxl
cy5hZGRQcm9maWxlSGVhZGVyKHByb2ZpbGUpOwogICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJv
ZmlsZXMuc2hvd1Byb2ZpbGUocHJvZmlsZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186874</attachid>
            <date>2013-02-06 10:24:31 -0800</date>
            <delta_ts>2013-02-06 11:08:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108653-20130206222107.patch</filename>
            <type>text/plain</type>
            <size>66520</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjIzMzZjMTYyNTE5ZjUy
NjYyMzRkMjc2ZmExODE2YzRkMjIwZmJjMC4uMGQ1YTQxNGQ0YjZlMTQ4MWU4M2E5OWZlYWU4MDU0
MTg3MTNiMWQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDEzLTAyLTA2ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wgaW50byBQcm9maWxlciBhbmQgSGVh
cFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0aGUgc2FtZSBkb21haW4g
J1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIEluIGZhY3QgdGhlc2UgdHdvIHBy
b2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29tbW9uLiBTbyBwdXQgZWFjaCBpbnRv
IGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQgYWxzbyBoZWxwIHdoZW4gUHJvZmls
ZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9vbHMuCisgICAgICAgIFRoaXMgaXMg
dGhlIHBoYXNlIDEgd2hpY2ggYWRkcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCBidXQgZG9l
c24ndAorICAgICAgICBjaGFuZ2UgdGhlIG9yaWdpbmFsIEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6
On5JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVzKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpzZXRGcm9udGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y2xlYXJGcm9udGVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzdG9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y29sbGVjdEdh
cmJhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNy
ZWF0ZVNuYXBzaG90SGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpoYXNIZWFwUHJvZmlsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGVIZWFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRIZWFwU25hcHNob3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJlbW92ZVByb2ZpbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnRha2VIZWFwU25hcHNo
b3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmdldE9i
amVjdEJ5SGVhcE9iamVjdElkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpnZXRIZWFwT2JqZWN0SWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjbGVhclByb2ZpbGVzKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21t
aXRMb2FkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5zdHJ1bWVudGluZ0FnZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjppbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5vZGUucHJvdG90eXBlLnF1ZXJ5T2JqZWN0Q29udGVu
dCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5zdGFydFNu
YXBzaG90VHJhbnNmZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVy
LnByb3RvdHlwZS5zYXZlVG9GaWxlLm9uT3Blbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVh
cFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLnNhdmVUb0ZpbGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZS5fY2xlYXJQcm9maWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUuX2dhcmJhZ2VDb2xsZWN0QnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3JlbW92ZVByb2ZpbGVIZWFkZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZVByb2Zp
bGVzLnZhcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUu
X3BvcHVsYXRlUHJvZmlsZXMucG9wdWxhdGVDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlUHJvZmlsZXMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnRha2VIZWFwU25hcHNob3QpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnJldmVhbEluVmll
dyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUuYWRkUHJv
ZmlsZUhlYWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hl
ci5wcm90b3R5cGUuYWRkSGVhcFNuYXBzaG90Q2h1bmspOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkhlYXBQcm9maWxlckRpc3BhdGNoZXIucHJvdG90eXBlLmZpbmlzaEhlYXBTbmFwc2hvdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUucmVz
ZXRQcm9maWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hl
ci5wcm90b3R5cGUucmVwb3J0SGVhcFNuYXBzaG90UHJvZ3Jlc3MpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsLnByb3RvdHlwZS5fZ2FyYmFnZUNvbGxlY3RCdXR0b25DbGlja2VkKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5kb0xvYWRlZERvbmUpOgorCiAyMDEzLTAyLTA2ICBEZWFuIEphY2tzb24gIDxkaW5v
QGFwcGxlLmNvbT4KIAogICAgICAgICBNaW5vciB1cGRhdGVzIHRvIGNhcHRpb25zIG1lbnUgVUkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggY2MyYmEzNTFiYWM3NTU1YjQ3MmE4NGJiMWQw
YmJmOWI2OGM0YjU0OS4uZDEyMDU1YWY1YjkyMjY0MjExMGRhZGM3ODljMTczZGY5NzhjMDVjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMi0wNiAg
QWxleGVpIEZpbGlwcG92ICA8YWxwaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogU3BsaXQgUHJvZmlsZXIgZG9tYWluIGluIHByb3RvY29sIGludG8gUHJvZmlsZXIgYW5k
IEhlYXBQcm9maWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA4NjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ3VycmVudGx5IENQVSBhbmQgaGVhcCBwcm9maWxlcnMgc2hhcmUgdGhlIHNhbWUgZG9t
YWluICdQcm9maWxlcicgaW4gdGhlIHByb3RvY29sLgorICAgICAgICBJbiBmYWN0IHRoZXNlIHR3
byBwcm9maWxlIHR5cGVzIGhhdmUgbm90IHRvbyBtdWNoIGluIGNvbW1vbi4gU28gcHV0IGVhY2gg
aW50byBpdHMgb3duIGRvbWFpbi4KKyAgICAgICAgSXQgc2hvdWxkIGFsc28gaGVscCB3aGVuIFBy
b2ZpbGVzIHBhbmVsIGdldHMgc3BsaXQgaW50byBzZXZlcmFsIHRvb2xzLgorICAgICAgICBUaGlz
IGlzIHRoZSBwaGFzZSAxIHdoaWNoIGFkZHMgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQgYnV0
IGRvZXNuJ3QKKyAgICAgICAgY2hhbmdlIHRoZSBvcmlnaW5hbCBJbnNwZWN0b3JQcm9maWxlckFn
ZW50LgorCisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudDo6c2hvdWxkSW50ZXJydXB0Rm9yTWVzc2FnZSk6CisK
IDIwMTMtMDItMDYgIFN0ZXBoZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBBZGQgU2tpYSBjb2RlIHN1cHByZXNzaW9uIGZsYWdzIHRvIFdlYktpdCBza2lhLmd5
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjOTMzZDJkMWZmYjEyNTA0NDk3ZmM2Mzg2YTYxNWYy
MTE4YTE0ZTkzLi5hMzVhZWQzZjA2MjMwNjgxMzlhMDgzNDFlYTZjYmNkZTg0MjQyMzQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYzNSw2ICsxNjM1LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNF
UwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5jcHAKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckhpc3RvcnkuY3BwCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JJ
bnB1dEFnZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNmU3ZDZmNzYy
MTZlZjY1NDVkNTFjNjc2Yzc5YzYwNTYwZTNlMTdiNi4uMzY4M2ZkMmNmYzFlZTA1YzRlOWVjZjk4
Yjc2MDRmNmEzN2FhNGY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODIy
LDYgKzM4MjIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggXAogCVNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JIaXN0b3J5LmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bmRleGVkREJBZ2VudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDUyOTNjYWQ1NGNiMWZjYWU2OGVkYWM5
YmFjZDFlZDU5NjBiMTcwZTEuLmU0NTBhZGIwZDY2ZTE1MjcxMTA5MjM1OTA0NTYyZDY0NDYyYTgx
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQpAQCAtNzk5LDYgKzc5OSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwIFwKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuY3BwIFwKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5jcHAgXAogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAgXApAQCAtMTk4OCw2ICsxOTg5LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuaCBcCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JIaXN0b3J5LmggXAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckxh
eWVyVHJlZUFnZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDE4MDQxNTZmZDQwNGEyMDQ1MTQw
ZDljMWMwOTMzMmNkNDJjZjYwZGMuLmQ0M2QyN2E4OTFiNjY2M2E5MWQ2YTI3NzQ3NDMyZGFhZGY1
MDlhZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4NzIsNiArMTg3Miw4IEBACiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCcsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oJywKKyAgICAgICAgICAgICdpbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L0luc3BlY3Rvckhpc3RvcnkuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9y
SGlzdG9yeS5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggMDk3Mzg0NTZhMWQyMjBlMTE4YTJiN2E3YWY0OTlhMzViMjFjZWQ5NC4uZjBmYWZlYjA5
YjdkOTQzMjAxYWRjMjIzNDYxYTYzYzIwNDI5NGM5MyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTc2MDI3LDYgKzc2MDI3LDMwIEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxp
bnNwZWN0b3JcSW5zcGVjdG9ySGlzdG9yeS5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
aW5kZXggZDJlYTUzODg0MmMzM2VkNjFhNTBlZDQ4NTlkNGI1YmY4YzRmOTQwMS4uNjRjMDRiOTA4
NmQ3OTZjM2E0MjRlNmI2YWQyZDQxMjc4NGNmY2I3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC01Njg5LDYgKzU2ODksOSBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kSG9zdC5j
cHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9y
XEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySGlzdG9yeS5jcHAiPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgpAQCAtODM2NCw2ICs4MzY3LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVu
ZEhvc3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5z
cGVjdG9yXEluc3BlY3Rvckhpc3RvcnkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGluc3BlY3RvclxJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvcklucHV0QWdlbnQuaCIgLz4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cwppbmRleCAwMjk5NjNjZjFkNTRhYjllNWQzNWEyZGNkMTUzNzQwMTZkZWQzNDhjLi5kMTJjZGVk
NjM4MDk5MWI4ZDAxOWE5NWU5ZjMwNzc3ZTJiODMzNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02NDgz
LDYgKzY0ODMsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvckZyb250ZW5kSG9zdC5jcHAiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAiPgorICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGlu
c3BlY3RvclxJbnNwZWN0b3JIaXN0b3J5LmNwcCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3Rvcjwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTM3NjQsNiArMTM3NjcsOSBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kSG9zdC5oIj4K
ICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnQuaCI+CisgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRl
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3Rvckhpc3Rvcnku
aCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGMyYWZlZmRlMTU5NTk1YWQ1ZWM3YTM5MzAzYTFmZWEwZWM2OWI5ZjcuLmZlMzI5NThjYTMz
ZGQ3OWQxNmVkODY0MGVhZmJlZWMxYzRjMjQyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4MDksNiArMzgwOSw4IEBACiAJ
CTlCRjlBODgxMTY0OEREMkYwMDFDNkIyMyAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkY5QTg3
RjE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oICovOyB9
OwogCQk5RjBENkIyRTEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjBENkIy
QzEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgKi87IH07CiAJ
CTlGMEQ2QjJGMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjBENkIyRDEyMUJG
RUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oICovOyB9OworCQk1MTEyOTM1
RjNENTRCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMjkzNjEzRDZEQjRC
NTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCAqLzsgfTsKKwkJNTEx
MjkzNjAzRDYwQjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEyOTM2MjNEODVC
NEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCAqLzsgfTsKIAkJOUYz
Qjk0N0UxMjI0MTc1ODAwNTMwNEU3IC8qIFNjcmlwdEhlYXBTbmFwc2hvdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUYzQjk0N0QxMjI0MTc1ODAwNTMw
NEU3IC8qIFNjcmlwdEhlYXBTbmFwc2hvdC5oICovOyB9OwogCQk5RjZGQzE5NjExMjJFODJBMDBF
ODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUY2RkMxOTQxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERl
YnVnU2VydmVyLmNwcCAqLzsgfTsKIAkJOUY2RkMxOTcxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlw
dERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5RjZGQzE5NTExMjJFODJBMDBFODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTEyNDcsNiAr
MTEyNDksOCBAQAogCQk5QkY5QTg3RjE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRy
b2xzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxG
b3JtQ29udHJvbHNDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlG
MEQ2QjJDMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjBENkIyRDEyMUJGRUJBMDA2QzAy
ODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbnNwZWN0b3JQcm9maWxlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxMTI5MzYxM0Q2REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMTI5
MzYyM0Q4NUI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjNCOTQ3RDEyMjQxNzU4MDA1MzA0RTcg
LyogU2NyaXB0SGVhcFNuYXBzaG90LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNjcmlwdEhlYXBTbmFwc2hvdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjZG
QzE5NDExMjJFODJBMDBFODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5RjZGQzE5NTExMjJFODJBMDBFODAxOTYgLyogU2NyaXB0
RGVidWdTZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RGVi
dWdTZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MTQ2LDYgKzE1MTUw
LDggQEAKIAkJCQk3QTBFNzcwQjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmNwcCAqLywKIAkJCQk3QTBFNzcwQzEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmggKi8sCiAJCQkJN0EwRTc3MEQxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3Rv
ckZyb250ZW5kSG9zdC5pZGwgKi8sCisJCQkJNTExMjkzNjEzRDZEQjRCNTJGQUY5NzNGIC8qIElu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCAqLywKKwkJCQk1MTEyOTM2MjNEODVCNEI1MkZB
Rjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCAqLywKIAkJCQk3QTU0ODU3RDE0
RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5jcHAgKi8sCiAJCQkJN0E1NDg1N0Ux
NEUwMkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuaCAqLywKIAkJCQk3QUNEODhEMTE0
QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwICovLApAQCAtMjQ1
NDIsNiArMjQ1NDgsNyBAQAogCQkJCUYzNDRDNzE0MTEyNUI4MkMwMEYyNkVFRSAvKiBJbnNwZWN0
b3JGcm9udGVuZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3NTMxMTI5NEQ5RDAw
RjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdBMEU3NzBGMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCTUxMTI5MzYwM0Q2MEI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E1NDg1ODAxNEUwMkQ1MTAw
NkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQ0Q4OEQ0
MTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNEQyNzNDRkExNjY5NDIwODAwMjU5Q0ExIC8qIEluc3BlY3RvcklucHV0QWdlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjc4MTEsNiArMjc4MTgsNyBAQAogCQkJCTRGNEY1RkZCMTFD
QkQyRTEwMEExODZCRiAvKiBJbnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUgLyogSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMTI5MzVGM0Q1NEI0
QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QTU0ODU3RjE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3QUNEODhEMzE0QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEQyNzNDRjkxNjY5NDIwODAw
MjU5Q0ExIC8qIEluc3BlY3RvcklucHV0QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggZWNmY2ZlNzRiZGFjMTdlOWFlYzIy
ODEyZWQ2YjlhZWNlN2E1OTFiZC4uZWIwOWM1NGI3MjMxYzA0ZmE2NDc4YjE3MjdjOGQyODRmOTlk
Y2IxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMzIyMyw2
ICszMjIzLDExNSBAQAogICAgICAgICBdCiAgICAgfSwKICAgICB7CisgICAgICAgICJkb21haW4i
OiAiSGVhcFByb2ZpbGVyIiwKKyAgICAgICAgImhpZGRlbiI6IHRydWUsCisgICAgICAgICJ0eXBl
cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiaWQiOiAiUHJvZmlsZUhlYWRl
ciIsCisgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiUHJvZmlsZSBoZWFkZXIuIiwKKyAgICAgICAgICAgICAgICAicHJvcGVy
dGllcyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aXRsZSIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJQcm9maWxlIHRpdGxlLiIgfSwKKyAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ1aWQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9u
IjogIlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9maWxlLiIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJtYXhKU09iamVjdElkIiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJMYXN0IHNlZW4gSlMgb2JqZWN0IElkLiIgfQor
ICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgImlkIjogIkhlYXBTbmFwc2hvdE9iamVjdElkIiwKKyAgICAgICAgICAgICAgICAi
dHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIZWFwIHNu
YXNob3Qgb2JqZWN0IGlkLiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgImNv
bW1hbmRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImhhc0hl
YXBQcm9maWxlciIsCisgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAiYm9vbGVhbiIgfQorICAgICAgICAg
ICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Im5hbWUiOiAiZ2V0UHJvZmlsZUhlYWRlcnMiLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjog
WworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhlYWRlcnMiLCAidHlwZSI6ICJhcnJh
eSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiUHJvZmlsZUhlYWRlciJ9IH0KKyAgICAgICAgICAgICAg
ICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1l
IjogImdldEhlYXBTbmFwc2hvdCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwgInR5cGUiOiAiaW50ZWdlciIgfQor
ICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgIm5hbWUiOiAicmVtb3ZlUHJvZmlsZSIsCisgICAgICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwgInR5cGUiOiAi
aW50ZWdlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiY2xlYXJQcm9maWxlcyIKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAidGFrZUhlYXBTbmFw
c2hvdCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAicmVwb3J0UHJvZ3Jlc3MiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRydWUgJ3JlcG9ydEhlYXBTbmFwc2hvdFBy
b2dyZXNzJyBldmVudHMgd2lsbCBiZSBnZW5lcmF0ZWQgd2hpbGUgc25hcHNob3QgaXMgYmVpbmcg
dGFrZW4uIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJjb2xsZWN0R2FyYmFnZSIKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0T2JqZWN0QnlI
ZWFwT2JqZWN0SWQiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdElkIiwgIiRyZWYiOiAiSGVhcFNuYXBzaG90T2Jq
ZWN0SWQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0R3JvdXAiLCAi
dHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3ltYm9s
aWMgZ3JvdXAgbmFtZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlbGVhc2UgbXVsdGlwbGUgb2JqZWN0
cy4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIkcmVmIjogIlJ1bnRpbWUu
UmVtb3RlT2JqZWN0IiwgImRlc2NyaXB0aW9uIjogIkV2YWx1YXRpb24gcmVzdWx0LiIgfQorICAg
ICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgIm5hbWUiOiAiZ2V0SGVhcE9iamVjdElkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVm
IjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0SWQiLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBv
ZiB0aGUgb2JqZWN0IHRvIGdldCBoZWFwIG9iamVjdCBpZCBmb3IuIiB9CisgICAgICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJoZWFwU25hcHNob3RPYmplY3RJZCIsICIkcmVmIjogIkhlYXBTbmFwc2hvdE9i
amVjdElkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBoZWFwIHNuYXBzaG90IG9iamVjdCBj
b3JyZXNwb25kaW5nIHRvIHRoZSBwYXNzZWQgcmVtb3RlIG9iamVjdCBpZC4iIH0KKyAgICAgICAg
ICAgICAgICBdCisgICAgICAgICAgICB9CisgICAgICAgIF0sCisgICAgICAgICJldmVudHMiOiBb
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiYWRkUHJvZmlsZUhlYWRl
ciIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaGVhZGVyIiwgIiRyZWYiOiAiUHJvZmlsZUhlYWRlciIgfQorICAgICAgICAg
ICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Im5hbWUiOiAiYWRkSGVhcFNuYXBzaG90Q2h1bmsiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0eXBlIjogImlu
dGVnZXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2h1bmsiLCAidHlwZSI6
ICJzdHJpbmciIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImZpbmlzaEhlYXBTbmFwc2hvdCIsCisgICAg
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAidWlkIiwgInR5cGUiOiAiaW50ZWdlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVzZXRQcm9m
aWxlcyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5h
bWUiOiAicmVwb3J0SGVhcFNuYXBzaG90UHJvZ3Jlc3MiLAorICAgICAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbmUiLCAidHlwZSI6
ICJpbnRlZ2VyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRvdGFsIiwgInR5
cGUiOiAiaW50ZWdlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgXQorICAgIH0sCisgICAgewogICAgICAgICAiZG9tYWluIjogIldvcmtlciIsCiAgICAgICAg
ICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAidHlwZXMiOiBbXSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCmluZGV4IDljOWZmMjA4NTljMmQ4Y2I4
NTYzNDdkNjdiODExMzFhN2JiODllYmYuLjY3Y2VhNDYwZTIwZTE5ZjJkYWZjZmM5NWNkZDNhNjc2
YjgyMDk5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JB
bGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbElu
T25lLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckZpbGVTeXN0ZW1B
Z2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCIKKyNpbmNsdWRlICJJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySGlzdG9yeS5jcHAiCiAj
aW5jbHVkZSAiSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3Rv
cklucHV0QWdlbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCmluZGV4IDNjNjVhOGE2MDgyZjI0Mjc4ZDE3Yzc0MWM3Mzk2OGQzMTBi
OTc3ZDMuLjA1NjkyMDcwY2IzZThjNzUyODRkZTE2MTMwMDJlNzMxZjEwN2YwZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTU0
LDYgKzU0LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvcklucHV0QWdl
bnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKQEAgLTE1Miw2ICsx
NTMsOSBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBh
Z2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogICAgIE93blB0cjxJbnNwZWN0b3JQcm9m
aWxlckFnZW50PiBwcm9maWxlckFnZW50UHRyKEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIGNvbnNvbGVBZ2VudCwgcGFnZSwgbV9zdGF0
ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKICAgICBtX3Byb2ZpbGVy
QWdlbnQgPSBwcm9maWxlckFnZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChwcm9m
aWxlckFnZW50UHRyLnJlbGVhc2UoKSk7CisKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
c3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFdPUktFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGM0OTg0ZmNj
MTA5NzZmOTI3ZTk4N2FmYzcwMzA5YTYyNjMwNTRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcApAQCAtMCww
ICsxLDI1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSkFWQVNDUklQVF9E
RUJVR0dFUikgJiYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIkluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50LmgiCisKKyNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgorI2luY2x1ZGUg
IkluamVjdGVkU2NyaXB0SG9zdC5oIgorI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIK
KyNpbmNsdWRlICJTY3JpcHRQcm9maWxlci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3QgY2hh
ciogY29uc3QgVXNlckluaXRpYXRlZFByb2ZpbGVOYW1lID0gIm9yZy53ZWJraXQucHJvZmlsZXMu
dXNlci1pbml0aWF0ZWQiOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IEhlYXBQcm9maWxlVHlw
ZSA9ICJIRUFQIjsKKworUGFzc093blB0cjxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4gSW5z
cGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUs
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQoreworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGlu
Z0FnZW50cywgaW5zcGVjdG9yU3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOworfQorCitJ
bnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2Ny
aXB0TWFuYWdlcikKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudD4oIkhlYXBQcm9maWxlciIsIGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0
YXRlKQorICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KQorICAgICwgbV9mcm9udGVuZCgwKQorICAgICwgbV9oZWFkZXJzUmVxdWVzdGVkKGZhbHNlKQor
ICAgICwgbV9uZXh0VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlcigxKQoreworICAgIG1f
aW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQodGhpcyk7
Cit9CisKK0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojp+SW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQoKQoreworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQoMCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJl
c2V0U3RhdGUoKQoreworICAgIG1fc25hcHNob3RzLmNsZWFyKCk7CisgICAgbV9uZXh0VXNlcklu
aXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlciA9IDE7CisgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVz
KCk7CisgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgpLT5j
bGVhckluc3BlY3RlZE9iamVjdHMoKTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVzKCkKK3sKKyAgICBpZiAobV9oZWFkZXJzUmVxdWVz
dGVkICYmIG1fZnJvbnRlbmQgJiYgbV9zbmFwc2hvdHMuaXNFbXB0eSgpKQorICAgICAgICBtX2Zy
b250ZW5kLT5yZXNldFByb2ZpbGVzKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKK3sKKyAgICBt
X2Zyb250ZW5kID0gZnJvbnRlbmQtPmhlYXBwcm9maWxlcigpOworfQorCit2b2lkIEluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50OjpjbGVhckZyb250ZW5kKCkKK3sKKyAgICBtX2hlYWRlcnNSZXF1
ZXN0ZWQgPSBmYWxzZTsKKyAgICBtX2Zyb250ZW5kID0gMDsKK30KKwordm9pZCBJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudDo6cmVzdG9yZSgpCit7CisgICAgLy8gUmV2aXNpdCB0aGlzLgorICAg
IG1faGVhZGVyc1JlcXVlc3RlZCA9IHRydWU7CisgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7
Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNvbGxlY3RHYXJiYWdlKFdl
YkNvcmU6OkVycm9yU3RyaW5nKikKK3sKKyAgICBTY3JpcHRQcm9maWxlcjo6Y29sbGVjdEdhcmJh
Z2UoKTsKK30KKworUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9maWxl
SGVhZGVyPiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlU25hcHNob3RIZWFkZXIo
Y29uc3QgU2NyaXB0SGVhcFNuYXBzaG90JiBzbmFwc2hvdCkKK3sKKyAgICBSZWZQdHI8VHlwZUJ1
aWxkZXI6OkhlYXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcj4gaGVhZGVyID0gVHlwZUJ1aWxkZXI6
OkhlYXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcjo6Y3JlYXRlKCkKKyAgICAgICAgLnNldFVpZChz
bmFwc2hvdC51aWQoKSkKKyAgICAgICAgLnNldFRpdGxlKHNuYXBzaG90LnRpdGxlKCkpOworICAg
IGhlYWRlci0+c2V0TWF4SlNPYmplY3RJZChzbmFwc2hvdC5tYXhTbmFwc2hvdEpTT2JqZWN0SWQo
KSk7CisgICAgcmV0dXJuIGhlYWRlci5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQ6Omhhc0hlYXBQcm9maWxlcihFcnJvclN0cmluZyosIGJvb2wqIHJlc3Vs
dCkKK3sKKyAgICAqcmVzdWx0ID0gU2NyaXB0UHJvZmlsZXI6Omhhc0hlYXBQcm9maWxlcigpOwor
fQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRQcm9maWxlSGVhZGVycyhF
cnJvclN0cmluZyosIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkhlYXBQ
cm9maWxlcjo6UHJvZmlsZUhlYWRlcj4gPiYgaGVhZGVycykKK3sKKyAgICBtX2hlYWRlcnNSZXF1
ZXN0ZWQgPSB0cnVlOworICAgIGhlYWRlcnMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxk
ZXI6OkhlYXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcj46OmNyZWF0ZSgpOworCisgICAgSGVhcFNu
YXBzaG90c01hcDo6aXRlcmF0b3Igc25hcHNob3RzRW5kID0gbV9zbmFwc2hvdHMuZW5kKCk7Cisg
ICAgZm9yIChIZWFwU25hcHNob3RzTWFwOjppdGVyYXRvciBpdCA9IG1fc25hcHNob3RzLmJlZ2lu
KCk7IGl0ICE9IHNuYXBzaG90c0VuZDsgKytpdCkKKyAgICAgICAgaGVhZGVycy0+YWRkSXRlbShj
cmVhdGVTbmFwc2hvdEhlYWRlcigqaXQtPnZhbHVlKSk7Cit9CisKK25hbWVzcGFjZSB7CisKK2Ns
YXNzIE91dHB1dFN0cmVhbSA6IHB1YmxpYyBTY3JpcHRIZWFwU25hcHNob3Q6Ok91dHB1dFN0cmVh
bSB7CitwdWJsaWM6CisgICAgT3V0cHV0U3RyZWFtKEluc3BlY3RvckZyb250ZW5kOjpIZWFwUHJv
ZmlsZXIqIGZyb250ZW5kLCB1bnNpZ25lZCB1aWQpCisgICAgICAgIDogbV9mcm9udGVuZChmcm9u
dGVuZCksIG1fdWlkKHVpZCkgeyB9CisgICAgdm9pZCBXcml0ZShjb25zdCBTdHJpbmcmIGNodW5r
KSB7IG1fZnJvbnRlbmQtPmFkZEhlYXBTbmFwc2hvdENodW5rKG1fdWlkLCBjaHVuayk7IH0KKyAg
ICB2b2lkIENsb3NlKCkgeyBtX2Zyb250ZW5kLT5maW5pc2hIZWFwU25hcHNob3QobV91aWQpOyB9
Citwcml2YXRlOgorICAgIEluc3BlY3RvckZyb250ZW5kOjpIZWFwUHJvZmlsZXIqIG1fZnJvbnRl
bmQ7CisgICAgaW50IG1fdWlkOworfTsKKworfSAvLyBuYW1lc3BhY2UKKwordm9pZCBJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudDo6Z2V0SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZywgaW50IHJhd1VpZCkKK3sKKyAgICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4ocmF3VWlkKTsKKyAgICBIZWFwU25hcHNob3RzTWFwOjppdGVyYXRvciBpdCA9IG1fc25h
cHNob3RzLmZpbmQodWlkKTsKKyAgICBpZiAoaXQgPT0gbV9zbmFwc2hvdHMuZW5kKCkpIHsKKyAg
ICAgICAgKmVycm9yU3RyaW5nID0gIlByb2ZpbGUgd2Fzbid0IGZvdW5kIjsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBSZWZQdHI8U2NyaXB0SGVhcFNuYXBzaG90PiBzbmFwc2hvdCA9IGl0
LT52YWx1ZTsKKyAgICBpZiAobV9mcm9udGVuZCkgeworICAgICAgICBPdXRwdXRTdHJlYW0gc3Ry
ZWFtKG1fZnJvbnRlbmQsIHVpZCk7CisgICAgICAgIHNuYXBzaG90LT53cml0ZUpTT04oJnN0cmVh
bSk7CisgICAgfQorfQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZW1vdmVQ
cm9maWxlKEVycm9yU3RyaW5nKiwgaW50IHJhd1VpZCkKK3sKKyAgICB1bnNpZ25lZCB1aWQgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4ocmF3VWlkKTsKKyAgICBpZiAobV9zbmFwc2hvdHMuY29udGFp
bnModWlkKSkKKyAgICAgICAgbV9zbmFwc2hvdHMucmVtb3ZlKHVpZCk7Cit9CisKK25hbWVzcGFj
ZSB7CisKK2NsYXNzIEhlYXBTbmFwc2hvdFByb2dyZXNzOiBwdWJsaWMgU2NyaXB0UHJvZmlsZXI6
OkhlYXBTbmFwc2hvdFByb2dyZXNzIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBIZWFwU25hcHNo
b3RQcm9ncmVzcyhJbnNwZWN0b3JGcm9udGVuZDo6SGVhcFByb2ZpbGVyKiBmcm9udGVuZCkKKyAg
ICAgICAgOiBtX2Zyb250ZW5kKGZyb250ZW5kKSB7IH0KKyAgICB2b2lkIFN0YXJ0KGludCB0b3Rh
bFdvcmspCisgICAgeworICAgICAgICBtX3RvdGFsV29yayA9IHRvdGFsV29yazsKKyAgICB9Cisg
ICAgdm9pZCBXb3JrZWQoaW50IHdvcmtEb25lKQorICAgIHsKKyAgICAgICAgaWYgKG1fZnJvbnRl
bmQpCisgICAgICAgICAgICBtX2Zyb250ZW5kLT5yZXBvcnRIZWFwU25hcHNob3RQcm9ncmVzcyh3
b3JrRG9uZSwgbV90b3RhbFdvcmspOworICAgIH0KKyAgICB2b2lkIERvbmUoKSB7IH0KKyAgICBi
b29sIGlzQ2FuY2VsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorcHJpdmF0ZToKKyAgICBJbnNwZWN0
b3JGcm9udGVuZDo6SGVhcFByb2ZpbGVyKiBtX2Zyb250ZW5kOworICAgIGludCBtX3RvdGFsV29y
azsKK307CisKK307CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnRha2VIZWFw
U25hcHNob3QoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiByZXBvcnRQcm9ncmVzcykKK3sKKyAg
ICBTdHJpbmcgdGl0bGUgPSBtYWtlU3RyaW5nKFVzZXJJbml0aWF0ZWRQcm9maWxlTmFtZSwgJy4n
LCBTdHJpbmc6Om51bWJlcihtX25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBzaG90TnVtYmVyKSk7
CisgICAgKyttX25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBzaG90TnVtYmVyOworCisgICAgSGVh
cFNuYXBzaG90UHJvZ3Jlc3MgcHJvZ3Jlc3MocmVwb3J0UHJvZ3Jlc3MgJiYgKnJlcG9ydFByb2dy
ZXNzID8gbV9mcm9udGVuZCA6IDApOworICAgIFJlZlB0cjxTY3JpcHRIZWFwU25hcHNob3Q+IHNu
YXBzaG90ID0gU2NyaXB0UHJvZmlsZXI6OnRha2VIZWFwU25hcHNob3QodGl0bGUsICZwcm9ncmVz
cyk7CisgICAgaWYgKHNuYXBzaG90KSB7CisgICAgICAgIG1fc25hcHNob3RzLmFkZChzbmFwc2hv
dC0+dWlkKCksIHNuYXBzaG90KTsKKyAgICAgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgICAg
ICBtX2Zyb250ZW5kLT5hZGRQcm9maWxlSGVhZGVyKGNyZWF0ZVNuYXBzaG90SGVhZGVyKCpzbmFw
c2hvdCkpOworICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Z2V0
T2JqZWN0QnlIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIGhl
YXBTbmFwc2hvdE9iamVjdElkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8VHlw
ZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCkKK3sKKyAgICBib29sIG9r
OworICAgIHVuc2lnbmVkIGlkID0gaGVhcFNuYXBzaG90T2JqZWN0SWQudG9VSW50KCZvayk7Cisg
ICAgaWYgKCFvaykgeworICAgICAgICAqZXJyb3IgPSAiSW52YWxpZCBoZWFwIHNuYXBzaG90IG9i
amVjdCBpZCI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgU2NyaXB0T2JqZWN0IGhlYXBP
YmplY3QgPSBTY3JpcHRQcm9maWxlcjo6b2JqZWN0QnlIZWFwT2JqZWN0SWQoaWQpOworICAgIGlm
IChoZWFwT2JqZWN0Lmhhc05vVmFsdWUoKSkgeworICAgICAgICAqZXJyb3IgPSAiT2JqZWN0IGlz
IG5vdCBhdmFpbGFibGUiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEluamVjdGVkU2Ny
aXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2Ny
aXB0Rm9yKGhlYXBPYmplY3Quc2NyaXB0U3RhdGUoKSk7CisgICAgaWYgKGluamVjdGVkU2NyaXB0
Lmhhc05vVmFsdWUoKSkgeworICAgICAgICAqZXJyb3IgPSAiT2JqZWN0IGlzIG5vdCBhdmFpbGFi
bGUuIEluc3BlY3RlZCBjb250ZXh0IGlzIGdvbmUiOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIHJlc3VsdCA9IGluamVjdGVkU2NyaXB0LndyYXBPYmplY3QoaGVhcE9iamVjdCwgb2JqZWN0
R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiAiIik7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICpl
cnJvciA9ICJGYWlsZWQgdG8gd3JhcCBvYmplY3QiOworfQorCit2b2lkIEluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50OjpnZXRIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBj
b25zdCBTdHJpbmcmIG9iamVjdElkLCBTdHJpbmcqIGhlYXBTbmFwc2hvdE9iamVjdElkKQorewor
ICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOworICAgIGlmIChpbmplY3Rl
ZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIkluc3BlY3Rl
ZCBjb250ZXh0IGhhcyBnb25lIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBTY3JpcHRW
YWx1ZSB2YWx1ZSA9IGluamVjdGVkU2NyaXB0LmZpbmRPYmplY3RCeUlkKG9iamVjdElkKTsKKyAg
ICBpZiAodmFsdWUuaGFzTm9WYWx1ZSgpIHx8IHZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAg
ICAgKmVycm9yU3RyaW5nID0gIk9iamVjdCB3aXRoIGdpdmVuIGlkIG5vdCBmb3VuZCI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgdW5zaWduZWQgaWQgPSBTY3JpcHRQcm9maWxlcjo6Z2V0
SGVhcE9iamVjdElkKHZhbHVlKTsKKyAgICAqaGVhcFNuYXBzaG90T2JqZWN0SWQgPSBTdHJpbmc6
Om51bWJlcihpZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7
CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JQcm9maWxlckFnZW50KTsKKyAgICBJbnNwZWN0b3JCYXNl
QWdlbnQ8SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ+OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1v
cnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2luamVjdGVkU2NyaXB0TWFuYWdl
ciwgImluamVjdGVkU2NyaXB0TWFuYWdlciIpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9m
cm9udGVuZCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zbmFwc2hvdHMsICJzbmFwc2hvdHMiKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3
ZWY3MWNjYjI3MWRlZDhhN2U2ODZlYjg5MTgyOGZkZWE0YzA5ODIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaApA
QCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisg
KiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50X2gKKyNk
ZWZpbmUgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnRfaAorCisjaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJbnNwZWN0b3JC
YXNlQWdlbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEluamVjdGVk
U2NyaXB0TWFuYWdlcjsKK2NsYXNzIFNjcmlwdEhlYXBTbmFwc2hvdDsKK2NsYXNzIFNjcmlwdFBy
b2ZpbGU7CisKK3R5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOworCitjbGFzcyBJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OkhlYXBQ
cm9maWxlckNvbW1hbmRIYW5kbGVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50PiBjcmVhdGUo
SW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKik7CisgICAgdmlydHVhbCB+SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQo
KTsKKworICAgIHZvaWQgYWRkUHJvZmlsZShQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+IHBycFBy
b2ZpbGUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKyAg
ICB2b2lkIGFkZFByb2ZpbGVGaW5pc2hlZE1lc3NhZ2VUb0NvbnNvbGUoUGFzc1JlZlB0cjxTY3Jp
cHRQcm9maWxlPiwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwp
OworICAgIHZvaWQgYWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsK
KyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdEdhcmJhZ2UoRXJyb3JTdHJpbmcqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJQcm9maWxlcyhFcnJvclN0cmluZyopIHsgcmVzZXRTdGF0ZSgpOyB9Cisg
ICAgdm9pZCByZXNldFN0YXRlKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgaGFzSGVhcFByb2ZpbGVy
KEVycm9yU3RyaW5nKiwgYm9vbCopOworCisgICAgdmlydHVhbCB2b2lkIGdldFByb2ZpbGVIZWFk
ZXJzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6
SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiA+Jik7CisgICAgdmlydHVhbCB2b2lkIGdldEhl
YXBTbmFwc2hvdChFcnJvclN0cmluZyosIGludCB1aWQpOworICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVQcm9maWxlKEVycm9yU3RyaW5nKiwgaW50IHVpZCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9u
dGVuZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQg
dGFrZUhlYXBTbmFwc2hvdChFcnJvclN0cmluZyosIGNvbnN0IGJvb2wqIHJlcG9ydFByb2dyZXNz
KTsKKworICAgIHZpcnR1YWwgdm9pZCBnZXRPYmplY3RCeUhlYXBPYmplY3RJZChFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgaGVhcFNuYXBzaG90T2JqZWN0SWQsIGNvbnN0IFN0cmluZyogb2Jq
ZWN0R3JvdXAsIFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVz
dWx0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0SGVhcE9iamVjdElkKEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiBvYmplY3RJZCwgU3RyaW5nKiBoZWFwU25hcHNob3RPYmplY3RJZCk7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
IE9WRVJSSURFOworCisgICAgdm9pZCB3aWxsUHJvY2Vzc1Rhc2soKTsKKyAgICB2b2lkIGRpZFBy
b2Nlc3NUYXNrKCk7CisKK3Byb3RlY3RlZDoKKyAgICBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWdu
ZWQsIFJlZlB0cjxTY3JpcHRIZWFwU25hcHNob3Q+ID4gSGVhcFNuYXBzaG90c01hcDsKKworICAg
IHZvaWQgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7CisKKyAgICBQYXNzUmVmUHRyPFR5cGVCdWls
ZGVyOjpIZWFwUHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+IGNyZWF0ZVNuYXBzaG90SGVhZGVyKGNv
bnN0IFNjcmlwdEhlYXBTbmFwc2hvdCYpOworCisgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBt
X2luamVjdGVkU2NyaXB0TWFuYWdlcjsKKyAgICBJbnNwZWN0b3JGcm9udGVuZDo6SGVhcFByb2Zp
bGVyKiBtX2Zyb250ZW5kOworICAgIGJvb2wgbV9oZWFkZXJzUmVxdWVzdGVkOworICAgIHVuc2ln
bmVkIG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1iZXI7CisgICAgSGVhcFNuYXBz
aG90c01hcCBtX3NuYXBzaG90czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQor
CisjZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnRfaCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKaW5kZXggYTFmNTAxZDI0MDU1OGI4Y2ViOGNiMGRlZjEwMDZkYWI1Y2MwODlkNS4uZWUzNDg4
MmQ1MGMwYWQwYzExMGE0MGFmZTgxNzEyZGRmYWY4ZTljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTkyNCw2
ICs5MjQsOCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudAogI2lmIEVOQUJMRShKQVZBU0NSSVBU
X0RFQlVHR0VSKSAmJiBVU0UoSlNDKQogICAgICAgICBpZiAoSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dCogcHJvZmlsZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclByb2ZpbGVy
QWdlbnQoKSkKICAgICAgICAgICAgIHByb2ZpbGVyQWdlbnQtPnJlc2V0U3RhdGUoKTsKKyAgICAg
ICAgaWYgKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KiBoZWFwUHJvZmlsZXJBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KCkpCisgICAgICAg
ICAgICBoZWFwUHJvZmlsZXJBZ2VudC0+cmVzZXRTdGF0ZSgpOwogI2VuZGlmCiAgICAgICAgIGlm
IChJbnNwZWN0b3JDU1NBZ2VudCogY3NzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNw
ZWN0b3JDU1NBZ2VudCgpKQogICAgICAgICAgICAgY3NzQWdlbnQtPnJlc2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaAppbmRleCAyYTgyODdl
ZWM2MDlmZmZmOTAzNGY4ZGYyMjAzMzJhNjRjYjZhMzU5Li5jZDhhMmQ5Mjc4NGYyNGZmMjJjNjY0
NDVjYzM0MmRiMWM1NGEyYjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zdHJ1bWVudGluZ0FnZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0
cnVtZW50aW5nQWdlbnRzLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDsKIGNsYXNzIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ7CitjbGFzcyBJ
bnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDsKIGNsYXNzIEluc3BlY3RvckxheWVyVHJlZUFnZW50
OwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDsKQEAgLTEyNyw2ICsxMjgsOSBAQCBwdWJsaWM6CiAKICAgICBJbnNwZWN0b3JQcm9maWxlckFn
ZW50KiBpbnNwZWN0b3JQcm9maWxlckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JQ
cm9maWxlckFnZW50OyB9CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JQcm9maWxlckFnZW50KEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQqIGFnZW50KSB7IG1faW5zcGVjdG9yUHJvZmlsZXJBZ2VudCA9IGFn
ZW50OyB9CisKKyAgICBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCogaW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckhlYXBQcm9maWxlckFnZW50
OyB9CisgICAgdm9pZCBzZXRJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudChJbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCA9IGFn
ZW50OyB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXT1JLRVJTKQpAQCAtMTcwLDYgKzE3NCw3IEBA
IHByaXZhdGU6CiAgICAgUGFnZURlYnVnZ2VyQWdlbnQqIG1fcGFnZURlYnVnZ2VyQWdlbnQ7CiAg
ICAgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCogbV9pbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
OwogICAgIEluc3BlY3RvclByb2ZpbGVyQWdlbnQqIG1faW5zcGVjdG9yUHJvZmlsZXJBZ2VudDsK
KyAgICBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCogbV9pbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudDsKICNlbmRpZgogI2lmIEVOQUJMRShXT1JLRVJTKQogICAgIEluc3BlY3RvcldvcmtlckFn
ZW50KiBtX2luc3BlY3RvcldvcmtlckFnZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDljNzVjOTM3ZDEz
OGU5OTExNzE4OTk2YmE4NjNjNWUzMzVmYmM0ZGEuLjcwMDRhZTlmOWFjMDY1NWZhNmYzMzJkY2Q1
ODQyYzdhYjEyNzI4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRl
ICJJbnNwZWN0b3JDb25zb2xlQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5o
IgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgorI2luY2x1ZGUgIkluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3Rh
dGVDbGllbnQuaCIKQEAgLTExMCw2ICsxMTEsNyBAQCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
OjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleAog
ICAgIG1fYWdlbnRzLmFwcGVuZChkZWJ1Z2dlckFnZW50LnJlbGVhc2UoKSk7CiAKICAgICBtX2Fn
ZW50cy5hcHBlbmQoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGlu
Z0FnZW50cy5nZXQoKSwgY29uc29sZUFnZW50LmdldCgpLCB3b3JrZXJDb250ZXh0LCBtX3N0YXRl
LmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOworICAgIG1fYWdlbnRzLmFw
cGVuZChJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkp
KTsKICNlbmRpZgogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpj
cmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCAwLCBtX3N0YXRlLmdldCgpLCBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpXb3JrZXJJbnNwZWN0b3IsIDApKTsKICAgICBtX2FnZW50cy5h
cHBlbmQoY29uc29sZUFnZW50LnJlbGVhc2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdERhdGFHcmlkcy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90RGF0YUdyaWRzLmpzCmluZGV4
IDExYjM0OWE0MTU1YmJmNmQ2N2I0YTJiY2EyNWM3ZTA5YWY3MGIxYjUuLmRlMzhiYzY5ODRmYWI5
MTQ1OWExMTQ5Y2ZiNzYxZDY3NGQ4ZmNhMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90RGF0YUdyaWRzLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90RGF0YUdyaWRzLmpzCkBAIC0x
MzQsNyArMTM0LDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFNvcnRhYmxlRGF0YUdyaWQu
cHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge1Byb2ZpbGVy
QWdlbnQuSGVhcFNuYXBzaG90T2JqZWN0SWR9IGhlYXBTbmFwc2hvdE9iamVjdElkCisgICAgICog
QHBhcmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5IZWFwU25hcHNob3RPYmplY3RJZH0gaGVhcFNuYXBz
aG90T2JqZWN0SWQKICAgICAgKi8KICAgICBoaWdobGlnaHRPYmplY3RCeUhlYXBTbmFwc2hvdElk
OiBmdW5jdGlvbihoZWFwU25hcHNob3RPYmplY3RJZCkKICAgICB7CkBAIC01MjgsNyArNTI4LDcg
QEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdENvbnN0cnVjdG9yc0RhdGFHcmlkLnByb3RvdHlw
ZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQotICAgICAqIEBwYXJhbSB7UHJvZmls
ZXJBZ2VudC5IZWFwU25hcHNob3RPYmplY3RJZH0gaWQKKyAgICAgKiBAcGFyYW0ge0hlYXBQcm9m
aWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElkfSBpZAogICAgICAqLwogICAgIGhpZ2hsaWdo
dE9iamVjdEJ5SGVhcFNuYXBzaG90SWQ6IGZ1bmN0aW9uKGlkKQogICAgIHsKQEAgLTczNCw3ICs3
MzQsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RG9taW5hdG9yc0RhdGFHcmlkLnByb3Rv
dHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBvdmVycmlkZQotICAgICAqIEBwYXJhbSB7UHJv
ZmlsZXJBZ2VudC5IZWFwU25hcHNob3RPYmplY3RJZH0gaWQKKyAgICAgKiBAcGFyYW0ge0hlYXBQ
cm9maWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElkfSBpZAogICAgICAqLwogICAgIGhpZ2hs
aWdodE9iamVjdEJ5SGVhcFNuYXBzaG90SWQ6IGZ1bmN0aW9uKGlkKQogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90R3JpZE5v
ZGVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RH
cmlkTm9kZXMuanMKaW5kZXggZjI5NDFjNzZhMWYyOTQxNDdjZWFjMGI4MDQ2ODc3NGZkODk1Njg2
Yy4uYzllNDAwYjhlZThmOGM0OTQ3ZDdmMGE3YmNjZmI4NjczMjI2NmI0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RH
cmlkTm9kZXMuanMKQEAgLTQ2NSw3ICs0NjUsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
R2VuZXJpY09iamVjdE5vZGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICAgICAgY2FsbGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9t
UHJpbWl0aXZlVmFsdWUoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOb3QgYXZhaWxhYmxlIikpKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0T2JqZWN0QnlIZWFw
T2JqZWN0SWQoU3RyaW5nKHRoaXMuc25hcHNob3ROb2RlSWQpLCBvYmplY3RHcm91cE5hbWUsIGZv
cm1hdFJlc3VsdCk7CisgICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhl
YXBPYmplY3RJZChTdHJpbmcodGhpcy5zbmFwc2hvdE5vZGVJZCksIG9iamVjdEdyb3VwTmFtZSwg
Zm9ybWF0UmVzdWx0KTsKICAgICAgICAgfQogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcwppbmRleCBiYTBi
OTRmMmMzZmFmNGExM2VmZWVjMjI2NjE0NjQ2MWQ1ZDhlMGM4Li43OTM3OWQ5MGUzMTdkZjc0NjQx
MGZkYWM2NjgzMjc5MTJjNTIyODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCkBAIC04MDEsNyArODAxLDcgQEAg
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlLnByb3RvdHlwZSA9IHsKIAogICAg
IC8qKgogICAgICAqIEBvdmVycmlkZQotICAgICAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5Qcm9m
aWxlSGVhZGVyfSBwcm9maWxlCisgICAgICogQHBhcmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5Qcm9m
aWxlSGVhZGVyfSBwcm9maWxlCiAgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlByb2ZpbGVI
ZWFkZXJ9CiAgICAgICovCiAgICAgY3JlYXRlUHJvZmlsZTogZnVuY3Rpb24ocHJvZmlsZSkKQEAg
LTg3OSw3ICs4NzksNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBl
ID0gewogCiAgICAgc3RhcnRTbmFwc2hvdFRyYW5zZmVyOiBmdW5jdGlvbigpCiAgICAgewotICAg
ICAgICBQcm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hvdCh0aGlzLnVpZCk7CisgICAgICAgIEhl
YXBQcm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hvdCh0aGlzLnVpZCk7CiAgICAgfSwKIAogICAg
IHNuYXBzaG90Q29uc3RydWN0b3JOYW1lOiBmdW5jdGlvbigpCkBAIC05ODYsNyArOTg2LDcgQEAg
V2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IHRoaXMuX3JlY2VpdmVyID0gZmlsZU91dHB1dFN0cmVhbTsKICAgICAgICAgICAgIHRoaXMuX3Nh
dmVkQ2h1bmtzID0gMDsKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVRyYW5zZmVyUHJvZ3Jlc3Mo
MCwgdGhpcy5fdG90YWxOdW1iZXJPZkNodW5rcyk7Ci0gICAgICAgICAgICBQcm9maWxlckFnZW50
LmdldEhlYXBTbmFwc2hvdCh0aGlzLnVpZCk7CisgICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2Vu
dC5nZXRIZWFwU25hcHNob3QodGhpcy51aWQpOwogICAgICAgICB9CiAgICAgICAgIHRoaXMuX3Nh
dmluZ1RvRmlsZSA9IHRydWU7CiAgICAgICAgIHRoaXMuX2ZpbGVOYW1lID0gdGhpcy5fZmlsZU5h
bWUgfHwgIkhlYXAtIiArIG5ldyBEYXRlKCkudG9JU084NjAxQ29tcGFjdCgpICsgIi5oZWFwc25h
cHNob3QiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Q
cm9maWxlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9m
aWxlc1BhbmVsLmpzCmluZGV4IDA4NDQ0MmM5NTRlZjllYmQzYjBhZmM4MTIzZWEwNjZhNzI0Mjk2
YWUuLjhjZTQ2YWI4YWQ3OTA0YjM5NmQxYjA2ZjZjOTQ2MzA3M2ZjMDA4ODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAg
LTMwNiw2ICszMDYsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLkNhbnZh
c1Byb2ZpbGVUeXBlKCkpOwogCiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlclByb2ZpbGVy
RGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9yLlByb2ZpbGVyRGlzcGF0Y2hlcih0aGlzKSk7Cisg
ICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckhlYXBQcm9maWxlckRpc3BhdGNoZXIobmV3IFdl
Ykluc3BlY3Rvci5IZWFwUHJvZmlsZXJEaXNwYXRjaGVyKHRoaXMpKTsKIAogICAgIHRoaXMuX2Ny
ZWF0ZUZpbGVTZWxlY3RvckVsZW1lbnQoKTsKICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50LmJpbmQodGhp
cyksIHRydWUpOwpAQCAtNDcwLDEyICs0NzEsMTMgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwucHJvdG90eXBlID0gewogICAgIF9jbGVhclByb2ZpbGVzOiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICBQcm9maWxlckFnZW50LmNsZWFyUHJvZmlsZXMoKTsKKyAgICAgICAgSGVhcFByb2Zp
bGVyQWdlbnQuY2xlYXJQcm9maWxlcygpOwogICAgICAgICB0aGlzLl9yZXNldCgpOwogICAgIH0s
CiAKICAgICBfZ2FyYmFnZUNvbGxlY3RCdXR0b25DbGlja2VkOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBQcm9maWxlckFnZW50LmNvbGxlY3RHYXJiYWdlKCk7CisgICAgICAgIEhlYXBQcm9m
aWxlckFnZW50LmNvbGxlY3RHYXJiYWdlKCk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtNjI4LDgg
KzYzMCwxMiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAg
ICAgICAgc2lkZWJhclBhcmVudC5yZW1vdmVDaGlsZChwcm9maWxlLl9wcm9maWxlc1RyZWVFbGVt
ZW50KTsKIAotICAgICAgICBpZiAoIXByb2ZpbGUuaXNUZW1wb3JhcnkpCi0gICAgICAgICAgICBQ
cm9maWxlckFnZW50LnJlbW92ZVByb2ZpbGUocHJvZmlsZS5wcm9maWxlVHlwZSgpLmlkLCBwcm9m
aWxlLnVpZCk7CisgICAgICAgIGlmICghcHJvZmlsZS5pc1RlbXBvcmFyeSkgeworICAgICAgICAg
ICAgaWYgKHByb2ZpbGUucHJvZmlsZVR5cGUoKS5pZCA9PSBXZWJJbnNwZWN0b3IuSGVhcFNuYXBz
aG90UHJvZmlsZVR5cGUuVHlwZUlkKQorICAgICAgICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50
LnJlbW92ZVByb2ZpbGUocHJvZmlsZS51aWQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIFByb2ZpbGVyQWdlbnQucmVtb3ZlUHJvZmlsZShwcm9maWxlLnByb2ZpbGVUeXBlKCku
aWQsIHByb2ZpbGUudWlkKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIE5vIG90aGVyIGl0ZW0g
d2lsbCBiZSBzZWxlY3RlZCBpZiB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHByb2ZpbGVzLCBzbwog
ICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCB2aWV3IGdldHMgY2xlYXJlZCB3aGVuIHRoZSBsYXN0
IHByb2ZpbGUgaXMgcmVtb3ZlZC4KQEAgLTY4Nyw3ICs2OTMsNyBAQCBXZWJJbnNwZWN0b3IuUHJv
ZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJh
bSB7UHJvZmlsZXJBZ2VudC5IZWFwU25hcHNob3RPYmplY3RJZH0gc25hcHNob3RPYmplY3RJZAor
ICAgICAqIEBwYXJhbSB7SGVhcFByb2ZpbGVyQWdlbnQuSGVhcFNuYXBzaG90T2JqZWN0SWR9IHNu
YXBzaG90T2JqZWN0SWQKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmlld05hbWUKICAgICAgKi8K
ICAgICBzaG93T2JqZWN0OiBmdW5jdGlvbihzbmFwc2hvdE9iamVjdElkLCB2aWV3TmFtZSkKQEAg
LTEwOTAsMjIgKzEwOTYsMjQgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFy
YW0gez9zdHJpbmd9IHR5cGUKICAgICAgICAgICogQHBhcmFtIHs/c3RyaW5nfSBlcnJvcgogICAg
ICAgICAgKiBAcGFyYW0ge0FycmF5LjxQcm9maWxlckFnZW50LlByb2ZpbGVIZWFkZXI+fSBwcm9m
aWxlSGVhZGVycwogICAgICAgICAgKi8KLSAgICAgICAgZnVuY3Rpb24gcG9wdWxhdGVDYWxsYmFj
ayhlcnJvciwgcHJvZmlsZUhlYWRlcnMpIHsKKyAgICAgICAgZnVuY3Rpb24gcG9wdWxhdGVDYWxs
YmFjayh0eXBlLCBlcnJvciwgcHJvZmlsZUhlYWRlcnMpIHsKICAgICAgICAgICAgIGlmIChlcnJv
cikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBwcm9maWxlSGVhZGVycy5z
b3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEudWlkIC0gYi51aWQ7IH0pOwogICAgICAgICAg
ICAgdmFyIHByb2ZpbGVIZWFkZXJzTGVuZ3RoID0gcHJvZmlsZUhlYWRlcnMubGVuZ3RoOwogICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9maWxlSGVhZGVyc0xlbmd0aDsgKytpKSB7
CiAgICAgICAgICAgICAgICAgdmFyIHByb2ZpbGVIZWFkZXIgPSBwcm9maWxlSGVhZGVyc1tpXTsK
LSAgICAgICAgICAgICAgICB2YXIgcHJvZmlsZVR5cGUgPSB0aGlzLmdldFByb2ZpbGVUeXBlKHBy
b2ZpbGVIZWFkZXIudHlwZUlkKTsKKyAgICAgICAgICAgICAgICB2YXIgcHJvZmlsZVR5cGUgPSB0
aGlzLmdldFByb2ZpbGVUeXBlKHR5cGUgfHwgcHJvZmlsZUhlYWRlci50eXBlSWQpOwogICAgICAg
ICAgICAgICAgIHRoaXMuYWRkUHJvZmlsZUhlYWRlcihwcm9maWxlVHlwZS5jcmVhdGVQcm9maWxl
KHByb2ZpbGVIZWFkZXIpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIFBy
b2ZpbGVyQWdlbnQuZ2V0UHJvZmlsZUhlYWRlcnMocG9wdWxhdGVDYWxsYmFjay5iaW5kKHRoaXMp
KTsKKyAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRQcm9maWxlSGVhZGVycyhwb3B1bGF0ZUNhbGxi
YWNrLmJpbmQodGhpcywgbnVsbCkpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5nZXRQcm9m
aWxlSGVhZGVycyhwb3B1bGF0ZUNhbGxiYWNrLmJpbmQodGhpcywgV2ViSW5zcGVjdG9yLkhlYXBT
bmFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJZCkpOwogCiAgICAgICAgIHRoaXMuX3Byb2ZpbGVzV2Vy
ZVJlcXVlc3RlZCA9IHRydWU7CiAgICAgfSwKQEAgLTExNjcsNyArMTE3NSw3IEBAIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZnVuY3Rpb24gZG9uZSgp
IHsKICAgICAgICAgICAgIHRoaXMuX2xhdW5jaGVyVmlldy5wcm9maWxlRmluaXNoZWQoKTsKICAg
ICAgICAgfQotICAgICAgICBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3QodHJ1ZSwgZG9u
ZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFwc2hv
dCh0cnVlLCBkb25lLmJpbmQodGhpcykpOwogICAgICAgICBXZWJJbnNwZWN0b3IudXNlck1ldHJp
Y3MuUHJvZmlsZXNIZWFwUHJvZmlsZVRha2VuLnJlY29yZCgpOwogICAgIH0sCiAKQEAgLTEyMDYs
NyArMTIxNCw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAog
ICAgICAgICBmdW5jdGlvbiByZXZlYWxJblZpZXcodmlld05hbWUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0SGVhcE9iamVjdElkKG9iamVjdElkLCBkaWRSZWNlaXZl
SGVhcE9iamVjdElkLmJpbmQodGhpcywgdmlld05hbWUpKTsKKyAgICAgICAgICAgIEhlYXBQcm9m
aWxlckFnZW50LmdldEhlYXBPYmplY3RJZChvYmplY3RJZCwgZGlkUmVjZWl2ZUhlYXBPYmplY3RJ
ZC5iaW5kKHRoaXMsIHZpZXdOYW1lKSk7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBk
aWRSZWNlaXZlSGVhcE9iamVjdElkKHZpZXdOYW1lLCBlcnJvciwgcmVzdWx0KQpAQCAtMTI5Myw2
ICsxMzAxLDY0IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlckRpc3BhdGNoZXIucHJvdG90eXBlID0g
ewogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgorICogQGltcGxlbWVudHMge0hlYXBQcm9maWxlckFn
ZW50LkRpc3BhdGNoZXJ9CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSBw
cm9maWxlc1BhbmVsCisgKi8KK1dlYkluc3BlY3Rvci5IZWFwUHJvZmlsZXJEaXNwYXRjaGVyID0g
ZnVuY3Rpb24ocHJvZmlsZXNQYW5lbCkKK3sKKyAgICB0aGlzLl9wcm9maWxlc1BhbmVsID0gcHJv
ZmlsZXNQYW5lbDsKK30KKworV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlckRpc3BhdGNoZXIucHJv
dG90eXBlID0geworICAgIC8qKgorICAgICAqIEBwYXJhbSB7SGVhcFByb2ZpbGVyQWdlbnQuUHJv
ZmlsZUhlYWRlcn0gcHJvZmlsZQorICAgICAqLworICAgIGFkZFByb2ZpbGVIZWFkZXI6IGZ1bmN0
aW9uKHByb2ZpbGUpCisgICAgeworICAgICAgICB2YXIgcHJvZmlsZVR5cGUgPSB0aGlzLl9wcm9m
aWxlc1BhbmVsLmdldFByb2ZpbGVUeXBlKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxl
VHlwZS5UeXBlSWQpOworICAgICAgICB0aGlzLl9wcm9maWxlc1BhbmVsLmFkZFByb2ZpbGVIZWFk
ZXIocHJvZmlsZVR5cGUuY3JlYXRlUHJvZmlsZShwcm9maWxlKSk7CisgICAgfSwKKworICAgIC8q
KgorICAgICAqIEBvdmVycmlkZQorICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1aWQKKyAgICAgKiBA
cGFyYW0ge3N0cmluZ30gY2h1bmsKKyAgICAgKi8KKyAgICBhZGRIZWFwU25hcHNob3RDaHVuazog
ZnVuY3Rpb24odWlkLCBjaHVuaykKKyAgICB7CisgICAgICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwu
X2FkZEhlYXBTbmFwc2hvdENodW5rKHVpZCwgY2h1bmspOworICAgIH0sCisKKyAgICAvKioKKyAg
ICAgKiBAb3ZlcnJpZGUKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gdWlkCisgICAgICovCisgICAg
ZmluaXNoSGVhcFNuYXBzaG90OiBmdW5jdGlvbih1aWQpCisgICAgeworICAgICAgICB0aGlzLl9w
cm9maWxlc1BhbmVsLl9maW5pc2hIZWFwU25hcHNob3QodWlkKTsKKyAgICB9LAorCisgICAgLyoq
CisgICAgICogQG92ZXJyaWRlCisgICAgICovCisgICAgcmVzZXRQcm9maWxlczogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJvZmlsZXNQYW5lbC5fcmVzZXQoKTsKKyAgICB9LAor
CisgICAgLyoqCisgICAgICogQG92ZXJyaWRlCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGRvbmUK
KyAgICAgKiBAcGFyYW0ge251bWJlcn0gdG90YWwKKyAgICAgKi8KKyAgICByZXBvcnRIZWFwU25h
cHNob3RQcm9ncmVzczogZnVuY3Rpb24oZG9uZSwgdG90YWwpCisgICAgeworICAgICAgICB0aGlz
Ll9wcm9maWxlc1BhbmVsLl9yZXBvcnRIZWFwU25hcHNob3RQcm9ncmVzcyhkb25lLCB0b3RhbCk7
CisgICAgfQorfQorCisvKioKKyAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3Bl
Y3Rvci5TaWRlYmFyVHJlZUVsZW1lbnR9CiAgKiBAcGFyYW0geyFXZWJJbnNwZWN0b3IuUHJvZmls
ZUhlYWRlcn0gcHJvZmlsZQogICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlRm9ybWF0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5k
ZXggYTMzYmVlZTQ0NjQ2ZGFiYjhjOTQzOTBhZWM3Mjk4M2U3OTE0Y2YwYi4uZjFiMzJlYWJiODdm
YzMwZTNjYzUwMjEzNTE5MjkxMTgyYWE5ZmVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtNTgwLDcgKzU4MCw3IEBA
IFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9nYXJiYWdl
Q29sbGVjdEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFByb2ZpbGVy
QWdlbnQuY29sbGVjdEdhcmJhZ2UoKTsKKyAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuY29sbGVj
dEdhcmJhZ2UoKTsKICAgICB9LAogCiAgICAgX2dsdWVQYXJlbnRCdXR0b25DbGlja2VkOiBmdW5j
dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmpzCmluZGV4IGQ5NGUyODU0OTUzZmM0ZDllOGJhYTE1NzI1ODk4OTJkYjIxNTQxOTAuLmEwYmNj
MmRhMmRiMzc2ZGM1ODZjYmEwNTQ0NTk0Zjg4YTQ5NTEwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0zNjgsNyArMzY4LDcgQEAg
V2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKICAgICBEZWJ1Z2dlckFnZW50
LnN1cHBvcnRzU2VwYXJhdGVTY3JpcHRDb21waWxhdGlvbkFuZEV4ZWN1dGlvbihXZWJJbnNwZWN0
b3IuX2luaXRpYWxpemVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAic2VwYXJhdGVTY3Jp
cHRDb21waWxhdGlvbkFuZEV4ZWN1dGlvbkVuYWJsZWQiLCBudWxsKSk7CiAgICAgUHJvZmlsZXJB
Z2VudC5jYXVzZXNSZWNvbXBpbGF0aW9uKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxp
dHkuYmluZChXZWJJbnNwZWN0b3IsICJwcm9maWxlckNhdXNlc1JlY29tcGlsYXRpb24iLCBudWxs
KSk7CiAgICAgUHJvZmlsZXJBZ2VudC5pc1NhbXBsaW5nKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6
ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJzYW1wbGluZ0NQVVByb2ZpbGVyIiwgbnVs
bCkpOwotICAgIFByb2ZpbGVyQWdlbnQuaGFzSGVhcFByb2ZpbGVyKFdlYkluc3BlY3Rvci5faW5p
dGlhbGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJoZWFwUHJvZmlsZXJQcmVzZW50
IiwgbnVsbCkpOworICAgIEhlYXBQcm9maWxlckFnZW50Lmhhc0hlYXBQcm9maWxlcihXZWJJbnNw
ZWN0b3IuX2luaXRpYWxpemVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAiaGVhcFByb2Zp
bGVyUHJlc2VudCIsIG51bGwpKTsKICAgICBUaW1lbGluZUFnZW50LnN1cHBvcnRzRnJhbWVJbnN0
cnVtZW50YXRpb24oV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYklu
c3BlY3RvciwgInRpbWVsaW5lU3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlvbiIsIG51bGwpKTsK
ICAgICBUaW1lbGluZUFnZW50LmNhbk1vbml0b3JNYWluVGhyZWFkKFdlYkluc3BlY3Rvci5faW5p
dGlhbGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJ0aW1lbGluZUNhbk1vbml0b3JN
YWluVGhyZWFkIiwgbnVsbCkpOwogICAgIFBhZ2VBZ2VudC5jYW5TaG93RlBTQ291bnRlcihXZWJJ
bnNwZWN0b3IuX2luaXRpYWxpemVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAiY2FuU2hv
d0ZQU0NvdW50ZXIiLCBudWxsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKaW5kZXggNGVhNDYwYTEwYjYwODkxY2E1ZWVlY2Rh
YThmMzczNTU5Y2U4MThiMy4uNjA4M2Q5NjdiMWU5ZDI2ZWNkNTYzZWM5OWM5ODgwYzUzNzRiNDAx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2Vu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdl
bnRJbXBsLmNwcApAQCAtNzc4LDcgKzc3OCw3IEBAIGJvb2wgV2ViRGV2VG9vbHNBZ2VudDo6c2hv
dWxkSW50ZXJydXB0Rm9yTWVzc2FnZShjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiAgICAgICAg
IHx8IGNvbW1hbmROYW1lID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpjb21tYW5kTmFt
ZXNbSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmtQcm9maWxlcl9zdGFydENtZF0KICAgICAg
ICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmRO
YW1lc1tJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6a1Byb2ZpbGVyX3N0b3BDbWRdCiAgICAg
ICAgIHx8IGNvbW1hbmROYW1lID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpjb21tYW5k
TmFtZXNbSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmtQcm9maWxlcl9nZXRDUFVQcm9maWxl
Q21kXQotICAgICAgICB8fCBjb21tYW5kTmFtZSA9PSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
cjo6Y29tbWFuZE5hbWVzW0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjprUHJvZmlsZXJfZ2V0
SGVhcFNuYXBzaG90Q21kXTsKKyAgICAgICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXI6OmNvbW1hbmROYW1lc1tJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6
a0hlYXBQcm9maWxlcl9nZXRIZWFwU25hcHNob3RDbWRdOwogfQogCiB2b2lkIFdlYkRldlRvb2xz
QWdlbnQ6OnByb2Nlc3NQZW5kaW5nTWVzc2FnZXMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU5NzA3ZTdjZDM4YzVkODhk
YWRiNWEyNzU2ZjU4MmE0MmQ4MGNhZjIuLmVmOWU5NjE2ZmUyNmQ2ZDRiMTdlMWE3ODQzMjZiOTBl
ZDY1OTcxODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wMi0wNiAgQWxleGVpIEZpbGlw
cG92ICA8YWxwaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU3BsaXQg
UHJvZmlsZXIgZG9tYWluIGluIHByb3RvY29sIGludG8gUHJvZmlsZXIgYW5kIEhlYXBQcm9maWxl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NjUz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVu
dGx5IENQVSBhbmQgaGVhcCBwcm9maWxlcnMgc2hhcmUgdGhlIHNhbWUgZG9tYWluICdQcm9maWxl
cicgaW4gdGhlIHByb3RvY29sLgorICAgICAgICBJbiBmYWN0IHRoZXNlIHR3byBwcm9maWxlIHR5
cGVzIGhhdmUgbm90IHRvbyBtdWNoIGluIGNvbW1vbi4gU28gcHV0IGVhY2ggaW50byBpdHMgb3du
IGRvbWFpbi4KKyAgICAgICAgSXQgc2hvdWxkIGFsc28gaGVscCB3aGVuIFByb2ZpbGVzIHBhbmVs
IGdldHMgc3BsaXQgaW50byBzZXZlcmFsIHRvb2xzLgorICAgICAgICBUaGlzIGlzIHRoZSBwaGFz
ZSAxIHdoaWNoIGFkZHMgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQgYnV0IGRvZXNuJ3QKKyAg
ICAgICAgY2hhbmdlIHRoZSBvcmlnaW5hbCBJbnNwZWN0b3JQcm9maWxlckFnZW50LgorCisgICAg
ICAgICogaW5zcGVjdG9yLXByb3RvY29sL2hlYXAtcHJvZmlsZXIvcmVzb3VyY2VzL2hlYXAtc25h
cHNob3QtY29tbW9uLmpzOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC50YWtlSGVhcFNuYXBzaG90
Lkluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyLnN0cmluZ19hcHBlYXJlZF9oZXJlKToKKyAgICAg
ICAgKEluc3BlY3RvclRlc3QudGFrZUhlYXBTbmFwc2hvdCk6CisgICAgICAgICogaW5zcGVjdG9y
LXByb3RvY29sL25taS13ZWJhdWRpby1sZWFrLXRlc3QuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0Lmpz
OgorICAgICAgICAoaW5pdGlhbGl6ZV9IZWFwU25hcHNob3RUZXN0KToKKwogMjAxMy0wMi0wNiAg
RGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgTWlub3IgdXBkYXRlcyB0
byBjYXB0aW9ucyBtZW51IFVJCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvaGVhcC1wcm9maWxlci9yZXNvdXJjZXMvaGVhcC1zbmFwc2hvdC1jb21tb24uanMgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvaGVhcC1wcm9maWxlci9yZXNvdXJjZXMvaGVh
cC1zbmFwc2hvdC1jb21tb24uanMKaW5kZXggN2IzYjlmMThhOTcxZmM1MDY0YzAwZjI5OWQ1YjE0
MTg1NjRmMzAxYi4uOWU5ODg0OTdkMTU2OWFhZmYxNjhiZmE2YzA3OGMzZjdmN2RlODY4ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2hlYXAtcHJvZmlsZXIvcmVz
b3VyY2VzL2hlYXAtc25hcHNob3QtY29tbW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9oZWFwLXByb2ZpbGVyL3Jlc291cmNlcy9oZWFwLXNuYXBzaG90LWNvbW1vbi5q
cwpAQCAtOSwxMCArOSwxMCBAQCBJbnNwZWN0b3JUZXN0LmltcG9ydFNjcmlwdCgiLi4vLi4vLi4v
Li4vLi4vU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KUwogCiBJbnNwZWN0b3JU
ZXN0LnRha2VIZWFwU25hcHNob3QgPSBmdW5jdGlvbihjYWxsYmFjaykKIHsKLSAgICBJbnNwZWN0
b3JUZXN0LmV2ZW50SGFuZGxlclsiUHJvZmlsZXIuYWRkUHJvZmlsZUhlYWRlciJdID0gZnVuY3Rp
b24obWVzc2FnZU9iamVjdCkKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiSGVhcFBy
b2ZpbGVyLmFkZFByb2ZpbGVIZWFkZXIiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAg
ewogICAgICAgICB2YXIgcHJvZmlsZUlkID0gbWVzc2FnZU9iamVjdFsicGFyYW1zIl1bImhlYWRl
ciJdWyJ1aWQiXTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUHJvZmlsZXIu
Z2V0SGVhcFNuYXBzaG90IiwgeyAidWlkIjogcHJvZmlsZUlkIH0sIGRpZEdldEhlYXBTbmFwc2hv
dCk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkhlYXBQcm9maWxlci5nZXRI
ZWFwU25hcHNob3QiLCB7ICJ1aWQiOiBwcm9maWxlSWQgfSwgZGlkR2V0SGVhcFNuYXBzaG90KTsK
IAogICAgICAgICBmdW5jdGlvbiBkaWRHZXRIZWFwU25hcHNob3QobWVzc2FnZU9iamVjdCkKICAg
ICAgICAgewpAQCAtMjIsMTIgKzIyLDEyIEBAIEluc3BlY3RvclRlc3QudGFrZUhlYXBTbmFwc2hv
dCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIH0KIAogICAgIHZhciBjaHVua3MgPSBbXTsKLSAg
ICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUHJvZmlsZXIuYWRkSGVhcFNuYXBzaG90Q2h1
bmsiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhh
bmRsZXJbIkhlYXBQcm9maWxlci5hZGRIZWFwU25hcHNob3RDaHVuayJdID0gZnVuY3Rpb24obWVz
c2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIGNodW5rcy5wdXNoKG1lc3NhZ2VPYmplY3RbInBh
cmFtcyJdWyJjaHVuayJdKTsKICAgICB9CiAKLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxl
clsiUHJvZmlsZXIuZmluaXNoSGVhcFNuYXBzaG90Il0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0
KQorICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJIZWFwUHJvZmlsZXIuZmluaXNoSGVh
cFNuYXBzaG90Il0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAgICAgdmFy
IHNlcmlhbGl6ZWRTbmFwc2hvdCA9IGNodW5rcy5qb2luKCIiKTsKICAgICAgICAgdmFyIHBhcnNl
ZCA9IEpTT04ucGFyc2Uoc2VyaWFsaXplZFNuYXBzaG90KTsKQEAgLTM1LDUgKzM1LDUgQEAgSW5z
cGVjdG9yVGVzdC50YWtlSGVhcFNuYXBzaG90ID0gZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgICAg
IGNhbGxiYWNrKHNuYXBzaG90KTsKICAgICB9CiAKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJQcm9maWxlci50YWtlSGVhcFNuYXBzaG90Iiwge30pOworICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkhlYXBQcm9maWxlci50YWtlSGVhcFNuYXBzaG90Iiwge30pOwogfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby1sZWFr
LXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8t
bGVhay10ZXN0Lmh0bWwKaW5kZXggMjNhY2NjNzRjYjhmODYxOTRjNzllYzUzNmY5MWUxOWFlZDYz
ZmI2NC4uYTA4NTA1NzMyYzUwNmZlZjQ5NDg3YzM5MzUwYmI1NzFlYzQzM2YwZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby1sZWFrLXRlc3Qu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWxl
YWstdGVzdC5odG1sCkBAIC02MCw3ICs2MCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVu
Y3Rpb24gaUZyYW1lTmF2aWdhdGVkKG1lc3NhZ2VPYmplY3QpIHsKICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlBBU1M6IElGcmFtZSB3YXMgbmF2aWdhdGVkIHRvIHJlc291cmNlcy9ibGFuay5o
dG1sIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoJ1Byb2ZpbGVyLmNvbGxl
Y3RHYXJiYWdlJywge30sIGZ1bmN0aW9uKCkgeyB9ICk7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoJ0hlYXBQcm9maWxlci5jb2xsZWN0R2FyYmFnZScsIHt9LCBmdW5jdGlvbigp
IHsgfSApOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQWN0aW9uOiBSdW4gR0MgYW5kIGNo
ZWNrIFBhZ2UuQXVkaW8gZGF0YSBzaXplIik7CiAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoJ01lbW9yeS5nZXRQcm9jZXNzTWVtb3J5RGlzdHJpYnV0aW9uJywge30sIG5vQXVkaW9T
aGFyZWREYXRhKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZ2V0LXByb2ZpbGUtY3Jhc2guaHRtbApp
bmRleCA4NTYxYmNiODExZjMxMDNhM2M1N2E2NTFjMmI2Y2NlMjgxYTA1MTgwLi41NDRjYjEyMjE4
OGYzM2QxNDc1MTQ4NDkyZmRjNWRkZmVjOWYzZGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9m
aWxlLWNyYXNoLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
ICAgICAgICAgY29uc29sZS5sb2coZXJyb3JTdHJpbmcpOwogICAgICAgICAgICAgICAgIG5leHQo
KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNuYXBz
aG90KC0xLCBmaW5pc2gpOworICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNu
YXBzaG90KC0xLCBmaW5pc2gpOwogICAgICAgICB9CiAgICAgXSk7CiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRvbS13
cmFwcGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hv
dC1pbnNwZWN0LWRvbS13cmFwcGVyLmh0bWwKaW5kZXggMzgyMDdmYjk1NjIwNzJlNTNjNTc3ZGZh
ODY1YWEwMDFiOWM3MTgxYi4uMDM1ZmM0Y2U3YjQ5NTc5OTMxOTQzMzAwMjUzOGIzNGZlNzU5MzE4
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QtaW5zcGVjdC1kb20td3JhcHBlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbApAQCAtMTQsNyAr
MTQsNyBAQCBmdW5jdGlvbiBoYW5kbGVMb2FkKCkKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIFdl
Ykluc3BlY3Rvci5zaG93UGFuZWwoInByb2ZpbGVzIik7Ci0gICAgUHJvZmlsZXJBZ2VudC50YWtl
SGVhcFNuYXBzaG90KHN0ZXAwKTsKKyAgICBIZWFwUHJvZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBz
aG90KHN0ZXAwKTsKIAogICAgIGZ1bmN0aW9uIHN0ZXAwKCkKICAgICB7CkBAIC00Miw3ICs0Miw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIGJvZHlXcmFwcGVySWRzLnB1c2go
aXQubm9kZS5pZCk7CiAgICAgICAgIH0KICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib2R5
V3JhcHBlcklkcy5sZW5ndGg7IGkrKykKLSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0T2Jq
ZWN0QnlIZWFwT2JqZWN0SWQoYm9keVdyYXBwZXJJZHNbaV0sIHVuZGVmaW5lZCwgZGlkR2V0T2Jq
ZWN0QnlIZWFwT2JqZWN0SWQpOworICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuZ2V0T2Jq
ZWN0QnlIZWFwT2JqZWN0SWQoYm9keVdyYXBwZXJJZHNbaV0sIHVuZGVmaW5lZCwgZGlkR2V0T2Jq
ZWN0QnlIZWFwT2JqZWN0SWQpOwogCiAgICAgICAgIHZhciByZXNvbHZlZE9iamVjdHNDb3VudCA9
IDA7CiAgICAgICAgIHZhciByZW1vdGVPYmplY3RzID0gW107CkBAIC02OSw3ICs2OSw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgaWYgKCsrZGlkR2V0T3duUHJvcGVydGllc0NvdW50
ICE9PSByZW1vdGVPYmplY3RzLmxlbmd0aCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgICAgIFByb2ZpbGVyQWdlbnQuY2xlYXJQcm9maWxlcyhkb25lKTsKKyAgICAgICAgICAg
IEhlYXBQcm9maWxlckFnZW50LmNsZWFyUHJvZmlsZXMoZG9uZSk7CiAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLl9yZXNldCgpOwogICAgICAgICB9CiAgICAgfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtbG9h
ZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1s
b2FkZXIuaHRtbAppbmRleCA5NDBiNjRiZDI2ODBmMzJiZTVlMzM5ZWJhYzIzYmMwNTI0OWU3NGVj
Li5jZDg2NWJlMDdhNjlmN2E5NzkxNjBhZGNhOGVlMjk4MmNiYWZkYjBkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIu
aHRtbApAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB2YXIgcGFydFNpemUg
PSBzb3VyY2VTdHJpbmdpZmllZC5sZW5ndGggPj4gMzsKIAogICAgIGZ1bmN0aW9uIGluamVjdE1v
Y2tQcm9maWxlKG92ZXJyaWRlR2V0UHJvZmlsZSwgY2FsbGJhY2spIHsKLSAgICAgICAgdmFyIGRp
c3BhdGNoZXIgPSBJbnNwZWN0b3JCYWNrZW5kLl9kb21haW5EaXNwYXRjaGVyc1siUHJvZmlsZXIi
XTsKKyAgICAgICAgdmFyIGRpc3BhdGNoZXIgPSBJbnNwZWN0b3JCYWNrZW5kLl9kb21haW5EaXNw
YXRjaGVyc1siSGVhcFByb2ZpbGVyIl07CiAgICAgICAgIHZhciBwYW5lbCA9IFdlYkluc3BlY3Rv
ci5wYW5lbHMucHJvZmlsZXM7CiAgICAgICAgIHBhbmVsLl9yZXNldCgpOwogCkBAIC0zOSwxMiAr
MzksMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIGZ1bmN0aW9uIHNuYXBzaG90TG9hZGVk
KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKG92ZXJyaWRlR2V0UHJvZmlsZSkKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKFByb2ZpbGVyQWdlbnQsICJnZXRIZWFw
U25hcHNob3QiLCBnZXRIZWFwU25hcHNob3RNb2NrKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0Lm92ZXJyaWRlKEhlYXBQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgZ2V0
SGVhcFNuYXBzaG90TW9jayk7CiAgICAgICAgICAgICBjYWxsYmFjayhwcm9maWxlSGVhZGVyKTsK
ICAgICAgICAgfQogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIocHJvZmlsZUhlYWRl
ciwgIl9zbmFwc2hvdFJlY2VpdmVkIiwgc25hcHNob3RMb2FkZWQpOwogCi0gICAgICAgIEluc3Bl
Y3RvclRlc3Qub3ZlcnJpZGUoUHJvZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIsIGdldEhl
YXBTbmFwc2hvdE1vY2spOworICAgICAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKEhlYXBQcm9m
aWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgZ2V0SGVhcFNuYXBzaG90TW9jayk7CiAgICAg
ICAgIHBhbmVsLnNob3dQcm9maWxlKHByb2ZpbGVIZWFkZXIpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtdGVzdC5qcyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanMKaW5k
ZXggMTU1NTRkMmNjMmJiYTg2MDVhNjJhYTA0YTdiZjIxMmQzMDM3YjgwMi4uY2JkNjY2M2M0NzU4
NmFkZWFiMjkxNWZmZTAxNjhhYTNiYjc1ZmMxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzCkBAIC0xNzIsNyArMTcyLDcg
QEAgSW5zcGVjdG9yVGVzdC5zdGFydFByb2ZpbGVyVGVzdCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQog
ICAgIGZ1bmN0aW9uIHByb2ZpbGVyRW5hYmxlZCgpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiUHJvZmlsZXIgd2FzIGVuYWJsZWQuIik7Ci0gICAgICAgIC8vIFdlIG1v
Y2sgb3V0IFByb2ZpbGVyQWdlbnQgLS0gYXMgRFJUIHJ1bnMgaW4gc2luZ2xlLXByb2Nlc3MgbW9k
ZSwgSW5zcGVjdG9yCisgICAgICAgIC8vIFdlIG1vY2sgb3V0IEhlYXBQcm9maWxlckFnZW50IC0t
IGFzIERSVCBydW5zIGluIHNpbmdsZS1wcm9jZXNzIG1vZGUsIEluc3BlY3RvcgogICAgICAgICAv
LyBhbmQgdGVzdCBzaGFyZSB0aGUgc2FtZSBoZWFwLiBUYWtpbmcgYSBzbmFwc2hvdCB0YWtlcyB0
b28gbG9uZyBmb3IgYSB0ZXN0LAogICAgICAgICAvLyBzbyB3ZSBwcm92aWRlIHN5bnRoZXRpYyBz
bmFwc2hvdHMuCiAgICAgICAgIEluc3BlY3RvclRlc3QuX3BhbmVsUmVzZXQgPSBJbnNwZWN0b3JU
ZXN0Lm92ZXJyaWRlKFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMsICJfcmVzZXQiLCBmdW5j
dGlvbigpe30sIHRydWUpOwpAQCAtNzM1LDcgKzczNSw3IEBAIEluc3BlY3RvclRlc3QudGFrZUFu
ZE9wZW5TbmFwc2hvdCA9IGZ1bmN0aW9uKGdlbmVyYXRvciwgY2FsbGJhY2spCiAgICAgICAgIFdl
Ykluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuX2FkZEhlYXBTbmFwc2hvdENodW5rKHVpZCwgSlNP
Ti5zdHJpbmdpZnkoc25hcHNob3QpKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9m
aWxlcy5fZmluaXNoSGVhcFNuYXBzaG90KHVpZCk7CiAgICAgfQotICAgIEluc3BlY3RvclRlc3Qu
b3ZlcnJpZGUoUHJvZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIsIHB1c2hHZW5lcmF0ZWRT
bmFwc2hvdCk7CisgICAgSW5zcGVjdG9yVGVzdC5vdmVycmlkZShIZWFwUHJvZmlsZXJBZ2VudCwg
ImdldEhlYXBTbmFwc2hvdCIsIHB1c2hHZW5lcmF0ZWRTbmFwc2hvdCk7CiAgICAgSW5zcGVjdG9y
VGVzdC5fdGFrZUFuZE9wZW5TbmFwc2hvdENhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgV2ViSW5z
cGVjdG9yLnBhbmVscy5wcm9maWxlcy5hZGRQcm9maWxlSGVhZGVyKHByb2ZpbGUpOwogICAgIFdl
Ykluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuc2hvd1Byb2ZpbGUocHJvZmlsZSk7CmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDE5NDAzNGQxMTA4N2Q1OTIyMTc3YjEwMzhiNjI2MWZjZWZjZDRkYTQuLjFhNjg2
NDA1ZWVhODA3YzgxM2NkYTFhZTUxNmVmY2M5ZDIwNTg5ZTkgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTMtMDItMDYgIEFsZXhlaSBGaWxpcHBvdiAgPGFscGhAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNwbGl0IFByb2ZpbGVyIGRvbWFpbiBpbiBw
cm90b2NvbCBpbnRvIFByb2ZpbGVyIGFuZCBIZWFwUHJvZmlsZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODY1MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSBDUFUgYW5kIGhlYXAgcHJv
ZmlsZXJzIHNoYXJlIHRoZSBzYW1lIGRvbWFpbiAnUHJvZmlsZXInIGluIHRoZSBwcm90b2NvbC4K
KyAgICAgICAgSW4gZmFjdCB0aGVzZSB0d28gcHJvZmlsZSB0eXBlcyBoYXZlIG5vdCB0b28gbXVj
aCBpbiBjb21tb24uIFNvIHB1dCBlYWNoIGludG8gaXRzIG93biBkb21haW4uCisgICAgICAgIEl0
IHNob3VsZCBhbHNvIGhlbHAgd2hlbiBQcm9maWxlcyBwYW5lbCBnZXRzIHNwbGl0IGludG8gc2V2
ZXJhbCB0b29scy4KKyAgICAgICAgVGhpcyBpcyB0aGUgcGhhc2UgMSB3aGljaCBhZGRzIEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50IGJ1dCBkb2Vzbid0CisgICAgICAgIGNoYW5nZSB0aGUgb3Jp
Z2luYWwgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC4KKworICAgICAgICAqIGluc3BlY3Rvci9oZWFw
LXNuYXBzaG90LXBlcmZvcm1hbmNlLXRlc3QuanM6CisgICAgICAgICh0ZXN0LnBlcmZvcm1hbmNl
VGVzdC5jbGVhbnVwKToKKwogMjAxMy0wMi0wNSAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5p
ay5yb3R0c2NoZXNAaW50ZWwuY29tPgogCiAgICAgICAgIEFkZCBhIHBlcmZvcm1hbmNlIHRlc3Qg
Zm9yIGFyYWJpYyBsaW5lIGJyZWFraW5nCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL2lu
c3BlY3Rvci9oZWFwLXNuYXBzaG90LXBlcmZvcm1hbmNlLXRlc3QuanMgYi9QZXJmb3JtYW5jZVRl
c3RzL2luc3BlY3Rvci9oZWFwLXNuYXBzaG90LXBlcmZvcm1hbmNlLXRlc3QuanMKaW5kZXggOWMz
OTU4MjYxODVjMmY0YjFlOTk3MDkzNDlkMGNhYzkxMWU3NzVlZS4uYWQ5NDdiODFjNWYwMGJjY2Zm
Nzc5MmM4ZjllMDg3MWQwM2YyNGYxOSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9pbnNw
ZWN0b3IvaGVhcC1zbmFwc2hvdC1wZXJmb3JtYW5jZS10ZXN0LmpzCisrKyBiL1BlcmZvcm1hbmNl
VGVzdHMvaW5zcGVjdG9yL2hlYXAtc25hcHNob3QtcGVyZm9ybWFuY2UtdGVzdC5qcwpAQCAtMjcs
NyArMjcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgdmFyIHRlc3ROYW1lID0gLyhbXlwv
XSspXC5odG1sJC8uZXhlYyhXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTClbMV07CiAgICAg
ICAgIHZhciBmdWxsVGltZXJDb29raWUgPSB0aW1lci5zdGFydCgiZnVsbC1zdW1tYXJ5LXNuYXBz
aG90LXRpbWUiKTsKICAgICAgICAgdmFyIGJhY2tlbmRUaW1lckNvb2tpZSA9IHRpbWVyLnN0YXJ0
KCJ0YWtlLXNuYXBzaG90Iik7Ci0gICAgICAgIFByb2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFwc2hv
dChzdGVwMCk7CisgICAgICAgIEhlYXBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3Qoc3Rl
cDApOwogCiAgICAgICAgIGZ1bmN0aW9uIHN0ZXAwKCkKICAgICAgICAgewpAQCAtNTksNyArNTks
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHRpbWVyLmZpbmlzaChjaGFuZ2VWaWV3
VGltZXJDb29raWUpOwogICAgICAgICAgICAgdGltZXIuZmluaXNoKGZ1bGxUaW1lckNvb2tpZSk7
CiAgICAgICAgICAgICBjbGVhclRpbWVyQ29va2llID0gdGltZXIuc3RhcnQoImNsZWFyLXNuYXBz
aG90Iik7Ci0gICAgICAgICAgICBQcm9maWxlckFnZW50LmNsZWFyUHJvZmlsZXMoZG9uZSk7Cisg
ICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5jbGVhclByb2ZpbGVzKGRvbmUpOwogICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5fcmVzZXQoKTsKICAgICAgICAgfQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186878</attachid>
            <date>2013-02-06 11:08:45 -0800</date>
            <delta_ts>2013-02-07 05:32:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108653-20130206230521.patch</filename>
            <type>text/plain</type>
            <size>66795</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjIzMzZjMTYyNTE5ZjUy
NjYyMzRkMjc2ZmExODE2YzRkMjIwZmJjMC4uMGQ1YTQxNGQ0YjZlMTQ4MWU4M2E5OWZlYWU4MDU0
MTg3MTNiMWQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDEzLTAyLTA2ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wgaW50byBQcm9maWxlciBhbmQgSGVh
cFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0aGUgc2FtZSBkb21haW4g
J1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIEluIGZhY3QgdGhlc2UgdHdvIHBy
b2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29tbW9uLiBTbyBwdXQgZWFjaCBpbnRv
IGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQgYWxzbyBoZWxwIHdoZW4gUHJvZmls
ZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9vbHMuCisgICAgICAgIFRoaXMgaXMg
dGhlIHBoYXNlIDEgd2hpY2ggYWRkcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCBidXQgZG9l
c24ndAorICAgICAgICBjaGFuZ2UgdGhlIG9yaWdpbmFsIEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6
On5JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVzKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpzZXRGcm9udGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y2xlYXJGcm9udGVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzdG9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y29sbGVjdEdh
cmJhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNy
ZWF0ZVNuYXBzaG90SGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpoYXNIZWFwUHJvZmlsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGVIZWFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRIZWFwU25hcHNob3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJlbW92ZVByb2ZpbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnRha2VIZWFwU25hcHNo
b3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmdldE9i
amVjdEJ5SGVhcE9iamVjdElkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpnZXRIZWFwT2JqZWN0SWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjbGVhclByb2ZpbGVzKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21t
aXRMb2FkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5zdHJ1bWVudGluZ0FnZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjppbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5vZGUucHJvdG90eXBlLnF1ZXJ5T2JqZWN0Q29udGVu
dCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5zdGFydFNu
YXBzaG90VHJhbnNmZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVy
LnByb3RvdHlwZS5zYXZlVG9GaWxlLm9uT3Blbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVh
cFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLnNhdmVUb0ZpbGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZS5fY2xlYXJQcm9maWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUuX2dhcmJhZ2VDb2xsZWN0QnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3JlbW92ZVByb2ZpbGVIZWFkZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZVByb2Zp
bGVzLnZhcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUu
X3BvcHVsYXRlUHJvZmlsZXMucG9wdWxhdGVDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlUHJvZmlsZXMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnRha2VIZWFwU25hcHNob3QpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnJldmVhbEluVmll
dyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUuYWRkUHJv
ZmlsZUhlYWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hl
ci5wcm90b3R5cGUuYWRkSGVhcFNuYXBzaG90Q2h1bmspOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkhlYXBQcm9maWxlckRpc3BhdGNoZXIucHJvdG90eXBlLmZpbmlzaEhlYXBTbmFwc2hvdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUucmVz
ZXRQcm9maWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hl
ci5wcm90b3R5cGUucmVwb3J0SGVhcFNuYXBzaG90UHJvZ3Jlc3MpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsLnByb3RvdHlwZS5fZ2FyYmFnZUNvbGxlY3RCdXR0b25DbGlja2VkKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5kb0xvYWRlZERvbmUpOgorCiAyMDEzLTAyLTA2ICBEZWFuIEphY2tzb24gIDxkaW5v
QGFwcGxlLmNvbT4KIAogICAgICAgICBNaW5vciB1cGRhdGVzIHRvIGNhcHRpb25zIG1lbnUgVUkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggY2MyYmEzNTFiYWM3NTU1YjQ3MmE4NGJiMWQw
YmJmOWI2OGM0YjU0OS4uZDEyMDU1YWY1YjkyMjY0MjExMGRhZGM3ODljMTczZGY5NzhjMDVjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMi0wNiAg
QWxleGVpIEZpbGlwcG92ICA8YWxwaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogU3BsaXQgUHJvZmlsZXIgZG9tYWluIGluIHByb3RvY29sIGludG8gUHJvZmlsZXIgYW5k
IEhlYXBQcm9maWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA4NjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ3VycmVudGx5IENQVSBhbmQgaGVhcCBwcm9maWxlcnMgc2hhcmUgdGhlIHNhbWUgZG9t
YWluICdQcm9maWxlcicgaW4gdGhlIHByb3RvY29sLgorICAgICAgICBJbiBmYWN0IHRoZXNlIHR3
byBwcm9maWxlIHR5cGVzIGhhdmUgbm90IHRvbyBtdWNoIGluIGNvbW1vbi4gU28gcHV0IGVhY2gg
aW50byBpdHMgb3duIGRvbWFpbi4KKyAgICAgICAgSXQgc2hvdWxkIGFsc28gaGVscCB3aGVuIFBy
b2ZpbGVzIHBhbmVsIGdldHMgc3BsaXQgaW50byBzZXZlcmFsIHRvb2xzLgorICAgICAgICBUaGlz
IGlzIHRoZSBwaGFzZSAxIHdoaWNoIGFkZHMgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQgYnV0
IGRvZXNuJ3QKKyAgICAgICAgY2hhbmdlIHRoZSBvcmlnaW5hbCBJbnNwZWN0b3JQcm9maWxlckFn
ZW50LgorCisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudDo6c2hvdWxkSW50ZXJydXB0Rm9yTWVzc2FnZSk6CisK
IDIwMTMtMDItMDYgIFN0ZXBoZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBBZGQgU2tpYSBjb2RlIHN1cHByZXNzaW9uIGZsYWdzIHRvIFdlYktpdCBza2lhLmd5
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjOTMzZDJkMWZmYjEyNTA0NDk3ZmM2Mzg2YTYxNWYy
MTE4YTE0ZTkzLi5hMzVhZWQzZjA2MjMwNjgxMzlhMDgzNDFlYTZjYmNkZTg0MjQyMzQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYzNSw2ICsxNjM1LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNF
UwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5jcHAKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckhpc3RvcnkuY3BwCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JJ
bnB1dEFnZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNmU3ZDZmNzYy
MTZlZjY1NDVkNTFjNjc2Yzc5YzYwNTYwZTNlMTdiNi4uMzY4M2ZkMmNmYzFlZTA1YzRlOWVjZjk4
Yjc2MDRmNmEzN2FhNGY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODIy
LDYgKzM4MjIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggXAogCVNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JIaXN0b3J5LmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bmRleGVkREJBZ2VudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDUyOTNjYWQ1NGNiMWZjYWU2OGVkYWM5
YmFjZDFlZDU5NjBiMTcwZTEuLmU0NTBhZGIwZDY2ZTE1MjcxMTA5MjM1OTA0NTYyZDY0NDYyYTgx
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQpAQCAtNzk5LDYgKzc5OSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwIFwKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuY3BwIFwKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5jcHAgXAogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAgXApAQCAtMTk4OCw2ICsxOTg5LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuaCBcCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JIaXN0b3J5LmggXAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckxh
eWVyVHJlZUFnZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDE4MDQxNTZmZDQwNGEyMDQ1MTQw
ZDljMWMwOTMzMmNkNDJjZjYwZGMuLmQ0M2QyN2E4OTFiNjY2M2E5MWQ2YTI3NzQ3NDMyZGFhZGY1
MDlhZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4NzIsNiArMTg3Miw4IEBACiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCcsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oJywKKyAgICAgICAgICAgICdpbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L0luc3BlY3Rvckhpc3RvcnkuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9y
SGlzdG9yeS5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggMDk3Mzg0NTZhMWQyMjBlMTE4YTJiN2E3YWY0OTlhMzViMjFjZWQ5NC4uZjBmYWZlYjA5
YjdkOTQzMjAxYWRjMjIzNDYxYTYzYzIwNDI5NGM5MyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTc2MDI3LDYgKzc2MDI3LDMwIEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxp
bnNwZWN0b3JcSW5zcGVjdG9ySGlzdG9yeS5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
aW5kZXggZDJlYTUzODg0MmMzM2VkNjFhNTBlZDQ4NTlkNGI1YmY4YzRmOTQwMS4uNjRjMDRiOTA4
NmQ3OTZjM2E0MjRlNmI2YWQyZDQxMjc4NGNmY2I3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC01Njg5LDYgKzU2ODksOSBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kSG9zdC5j
cHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9y
XEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySGlzdG9yeS5jcHAiPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgpAQCAtODM2NCw2ICs4MzY3LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVu
ZEhvc3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5z
cGVjdG9yXEluc3BlY3Rvckhpc3RvcnkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGluc3BlY3RvclxJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvcklucHV0QWdlbnQuaCIgLz4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cwppbmRleCAwMjk5NjNjZjFkNTRhYjllNWQzNWEyZGNkMTUzNzQwMTZkZWQzNDhjLi5kMTJjZGVk
NjM4MDk5MWI4ZDAxOWE5NWU5ZjMwNzc3ZTJiODMzNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02NDgz
LDYgKzY0ODMsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvckZyb250ZW5kSG9zdC5jcHAiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAiPgorICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGlu
c3BlY3RvclxJbnNwZWN0b3JIaXN0b3J5LmNwcCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3Rvcjwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTM3NjQsNiArMTM3NjcsOSBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kSG9zdC5oIj4K
ICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnQuaCI+CisgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRl
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3Rvckhpc3Rvcnku
aCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGMyYWZlZmRlMTU5NTk1YWQ1ZWM3YTM5MzAzYTFmZWEwZWM2OWI5ZjcuLmZlMzI5NThjYTMz
ZGQ3OWQxNmVkODY0MGVhZmJlZWMxYzRjMjQyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4MDksNiArMzgwOSw4IEBACiAJ
CTlCRjlBODgxMTY0OEREMkYwMDFDNkIyMyAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkY5QTg3
RjE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oICovOyB9
OwogCQk5RjBENkIyRTEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjBENkIy
QzEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgKi87IH07CiAJ
CTlGMEQ2QjJGMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjBENkIyRDEyMUJG
RUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oICovOyB9OworCQk1MTEyOTM1
RjNENTRCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMjkzNjEzRDZEQjRC
NTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCAqLzsgfTsKKwkJNTEx
MjkzNjAzRDYwQjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEyOTM2MjNEODVC
NEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCAqLzsgfTsKIAkJOUYz
Qjk0N0UxMjI0MTc1ODAwNTMwNEU3IC8qIFNjcmlwdEhlYXBTbmFwc2hvdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUYzQjk0N0QxMjI0MTc1ODAwNTMw
NEU3IC8qIFNjcmlwdEhlYXBTbmFwc2hvdC5oICovOyB9OwogCQk5RjZGQzE5NjExMjJFODJBMDBF
ODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUY2RkMxOTQxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERl
YnVnU2VydmVyLmNwcCAqLzsgfTsKIAkJOUY2RkMxOTcxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlw
dERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5RjZGQzE5NTExMjJFODJBMDBFODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTEyNDcsNiAr
MTEyNDksOCBAQAogCQk5QkY5QTg3RjE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRy
b2xzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxG
b3JtQ29udHJvbHNDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlG
MEQ2QjJDMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjBENkIyRDEyMUJGRUJBMDA2QzAy
ODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbnNwZWN0b3JQcm9maWxlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxMTI5MzYxM0Q2REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMTI5
MzYyM0Q4NUI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjNCOTQ3RDEyMjQxNzU4MDA1MzA0RTcg
LyogU2NyaXB0SGVhcFNuYXBzaG90LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNjcmlwdEhlYXBTbmFwc2hvdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjZG
QzE5NDExMjJFODJBMDBFODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5RjZGQzE5NTExMjJFODJBMDBFODAxOTYgLyogU2NyaXB0
RGVidWdTZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RGVi
dWdTZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MTQ2LDYgKzE1MTUw
LDggQEAKIAkJCQk3QTBFNzcwQjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmNwcCAqLywKIAkJCQk3QTBFNzcwQzEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmggKi8sCiAJCQkJN0EwRTc3MEQxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3Rv
ckZyb250ZW5kSG9zdC5pZGwgKi8sCisJCQkJNTExMjkzNjEzRDZEQjRCNTJGQUY5NzNGIC8qIElu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCAqLywKKwkJCQk1MTEyOTM2MjNEODVCNEI1MkZB
Rjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCAqLywKIAkJCQk3QTU0ODU3RDE0
RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5jcHAgKi8sCiAJCQkJN0E1NDg1N0Ux
NEUwMkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuaCAqLywKIAkJCQk3QUNEODhEMTE0
QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwICovLApAQCAtMjQ1
NDIsNiArMjQ1NDgsNyBAQAogCQkJCUYzNDRDNzE0MTEyNUI4MkMwMEYyNkVFRSAvKiBJbnNwZWN0
b3JGcm9udGVuZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3NTMxMTI5NEQ5RDAw
RjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdBMEU3NzBGMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCTUxMTI5MzYwM0Q2MEI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E1NDg1ODAxNEUwMkQ1MTAw
NkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQ0Q4OEQ0
MTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNEQyNzNDRkExNjY5NDIwODAwMjU5Q0ExIC8qIEluc3BlY3RvcklucHV0QWdlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjc4MTEsNiArMjc4MTgsNyBAQAogCQkJCTRGNEY1RkZCMTFD
QkQyRTEwMEExODZCRiAvKiBJbnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUgLyogSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMTI5MzVGM0Q1NEI0
QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QTU0ODU3RjE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3QUNEODhEMzE0QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEQyNzNDRjkxNjY5NDIwODAw
MjU5Q0ExIC8qIEluc3BlY3RvcklucHV0QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggZWNmY2ZlNzRiZGFjMTdlOWFlYzIy
ODEyZWQ2YjlhZWNlN2E1OTFiZC4uZWIwOWM1NGI3MjMxYzA0ZmE2NDc4YjE3MjdjOGQyODRmOTlk
Y2IxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMzIyMyw2
ICszMjIzLDExNSBAQAogICAgICAgICBdCiAgICAgfSwKICAgICB7CisgICAgICAgICJkb21haW4i
OiAiSGVhcFByb2ZpbGVyIiwKKyAgICAgICAgImhpZGRlbiI6IHRydWUsCisgICAgICAgICJ0eXBl
cyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiaWQiOiAiUHJvZmlsZUhlYWRl
ciIsCisgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiUHJvZmlsZSBoZWFkZXIuIiwKKyAgICAgICAgICAgICAgICAicHJvcGVy
dGllcyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aXRsZSIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJQcm9maWxlIHRpdGxlLiIgfSwKKyAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ1aWQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9u
IjogIlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9maWxlLiIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJtYXhKU09iamVjdElkIiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJMYXN0IHNlZW4gSlMgb2JqZWN0IElkLiIgfQor
ICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgImlkIjogIkhlYXBTbmFwc2hvdE9iamVjdElkIiwKKyAgICAgICAgICAgICAgICAi
dHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIZWFwIHNu
YXNob3Qgb2JqZWN0IGlkLiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgImNv
bW1hbmRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImhhc0hl
YXBQcm9maWxlciIsCisgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAiYm9vbGVhbiIgfQorICAgICAgICAg
ICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Im5hbWUiOiAiZ2V0UHJvZmlsZUhlYWRlcnMiLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjog
WworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhlYWRlcnMiLCAidHlwZSI6ICJhcnJh
eSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiUHJvZmlsZUhlYWRlciJ9IH0KKyAgICAgICAgICAgICAg
ICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1l
IjogImdldEhlYXBTbmFwc2hvdCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwgInR5cGUiOiAiaW50ZWdlciIgfQor
ICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgIm5hbWUiOiAicmVtb3ZlUHJvZmlsZSIsCisgICAgICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwgInR5cGUiOiAi
aW50ZWdlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiY2xlYXJQcm9maWxlcyIKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAidGFrZUhlYXBTbmFw
c2hvdCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAicmVwb3J0UHJvZ3Jlc3MiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRydWUgJ3JlcG9ydEhlYXBTbmFwc2hvdFBy
b2dyZXNzJyBldmVudHMgd2lsbCBiZSBnZW5lcmF0ZWQgd2hpbGUgc25hcHNob3QgaXMgYmVpbmcg
dGFrZW4uIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJjb2xsZWN0R2FyYmFnZSIKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0T2JqZWN0QnlI
ZWFwT2JqZWN0SWQiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdElkIiwgIiRyZWYiOiAiSGVhcFNuYXBzaG90T2Jq
ZWN0SWQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0R3JvdXAiLCAi
dHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3ltYm9s
aWMgZ3JvdXAgbmFtZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlbGVhc2UgbXVsdGlwbGUgb2JqZWN0
cy4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIkcmVmIjogIlJ1bnRpbWUu
UmVtb3RlT2JqZWN0IiwgImRlc2NyaXB0aW9uIjogIkV2YWx1YXRpb24gcmVzdWx0LiIgfQorICAg
ICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgIm5hbWUiOiAiZ2V0SGVhcE9iamVjdElkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVm
IjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0SWQiLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBv
ZiB0aGUgb2JqZWN0IHRvIGdldCBoZWFwIG9iamVjdCBpZCBmb3IuIiB9CisgICAgICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJoZWFwU25hcHNob3RPYmplY3RJZCIsICIkcmVmIjogIkhlYXBTbmFwc2hvdE9i
amVjdElkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBoZWFwIHNuYXBzaG90IG9iamVjdCBj
b3JyZXNwb25kaW5nIHRvIHRoZSBwYXNzZWQgcmVtb3RlIG9iamVjdCBpZC4iIH0KKyAgICAgICAg
ICAgICAgICBdCisgICAgICAgICAgICB9CisgICAgICAgIF0sCisgICAgICAgICJldmVudHMiOiBb
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiYWRkUHJvZmlsZUhlYWRl
ciIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaGVhZGVyIiwgIiRyZWYiOiAiUHJvZmlsZUhlYWRlciIgfQorICAgICAgICAg
ICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Im5hbWUiOiAiYWRkSGVhcFNuYXBzaG90Q2h1bmsiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0eXBlIjogImlu
dGVnZXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2h1bmsiLCAidHlwZSI6
ICJzdHJpbmciIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImZpbmlzaEhlYXBTbmFwc2hvdCIsCisgICAg
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAidWlkIiwgInR5cGUiOiAiaW50ZWdlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVzZXRQcm9m
aWxlcyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5h
bWUiOiAicmVwb3J0SGVhcFNuYXBzaG90UHJvZ3Jlc3MiLAorICAgICAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbmUiLCAidHlwZSI6
ICJpbnRlZ2VyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRvdGFsIiwgInR5
cGUiOiAiaW50ZWdlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgXQorICAgIH0sCisgICAgewogICAgICAgICAiZG9tYWluIjogIldvcmtlciIsCiAgICAgICAg
ICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAidHlwZXMiOiBbXSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCmluZGV4IDljOWZmMjA4NTljMmQ4Y2I4
NTYzNDdkNjdiODExMzFhN2JiODllYmYuLjY3Y2VhNDYwZTIwZTE5ZjJkYWZjZmM5NWNkZDNhNjc2
YjgyMDk5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JB
bGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbElu
T25lLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckZpbGVTeXN0ZW1B
Z2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCIKKyNpbmNsdWRlICJJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySGlzdG9yeS5jcHAiCiAj
aW5jbHVkZSAiSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3Rv
cklucHV0QWdlbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCmluZGV4IDNjNjVhOGE2MDgyZjI0Mjc4ZDE3Yzc0MWM3Mzk2OGQzMTBi
OTc3ZDMuLjA1NjkyMDcwY2IzZThjNzUyODRkZTE2MTMwMDJlNzMxZjEwN2YwZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTU0
LDYgKzU0LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvcklucHV0QWdl
bnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKQEAgLTE1Miw2ICsx
NTMsOSBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBh
Z2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogICAgIE93blB0cjxJbnNwZWN0b3JQcm9m
aWxlckFnZW50PiBwcm9maWxlckFnZW50UHRyKEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIGNvbnNvbGVBZ2VudCwgcGFnZSwgbV9zdGF0
ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKICAgICBtX3Byb2ZpbGVy
QWdlbnQgPSBwcm9maWxlckFnZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChwcm9m
aWxlckFnZW50UHRyLnJlbGVhc2UoKSk7CisKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
c3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFdPUktFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGM0OTg0ZmNj
MTA5NzZmOTI3ZTk4N2FmYzcwMzA5YTYyNjMwNTRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcApAQCAtMCww
ICsxLDI1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSkFWQVNDUklQVF9E
RUJVR0dFUikgJiYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIkluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50LmgiCisKKyNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgorI2luY2x1ZGUg
IkluamVjdGVkU2NyaXB0SG9zdC5oIgorI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIK
KyNpbmNsdWRlICJTY3JpcHRQcm9maWxlci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3QgY2hh
ciogY29uc3QgVXNlckluaXRpYXRlZFByb2ZpbGVOYW1lID0gIm9yZy53ZWJraXQucHJvZmlsZXMu
dXNlci1pbml0aWF0ZWQiOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IEhlYXBQcm9maWxlVHlw
ZSA9ICJIRUFQIjsKKworUGFzc093blB0cjxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4gSW5z
cGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUs
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQoreworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGlu
Z0FnZW50cywgaW5zcGVjdG9yU3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOworfQorCitJ
bnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2Ny
aXB0TWFuYWdlcikKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudD4oIkhlYXBQcm9maWxlciIsIGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0
YXRlKQorICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KQorICAgICwgbV9mcm9udGVuZCgwKQorICAgICwgbV9oZWFkZXJzUmVxdWVzdGVkKGZhbHNlKQor
ICAgICwgbV9uZXh0VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlcigxKQoreworICAgIG1f
aW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQodGhpcyk7
Cit9CisKK0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojp+SW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQoKQoreworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQoMCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJl
c2V0U3RhdGUoKQoreworICAgIG1fc25hcHNob3RzLmNsZWFyKCk7CisgICAgbV9uZXh0VXNlcklu
aXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlciA9IDE7CisgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVz
KCk7CisgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgpLT5j
bGVhckluc3BlY3RlZE9iamVjdHMoKTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVzKCkKK3sKKyAgICBpZiAobV9oZWFkZXJzUmVxdWVz
dGVkICYmIG1fZnJvbnRlbmQgJiYgbV9zbmFwc2hvdHMuaXNFbXB0eSgpKQorICAgICAgICBtX2Zy
b250ZW5kLT5yZXNldFByb2ZpbGVzKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKK3sKKyAgICBt
X2Zyb250ZW5kID0gZnJvbnRlbmQtPmhlYXBwcm9maWxlcigpOworfQorCit2b2lkIEluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50OjpjbGVhckZyb250ZW5kKCkKK3sKKyAgICBtX2hlYWRlcnNSZXF1
ZXN0ZWQgPSBmYWxzZTsKKyAgICBtX2Zyb250ZW5kID0gMDsKK30KKwordm9pZCBJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudDo6cmVzdG9yZSgpCit7CisgICAgLy8gUmV2aXNpdCB0aGlzLgorICAg
IG1faGVhZGVyc1JlcXVlc3RlZCA9IHRydWU7CisgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7
Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNvbGxlY3RHYXJiYWdlKFdl
YkNvcmU6OkVycm9yU3RyaW5nKikKK3sKKyAgICBTY3JpcHRQcm9maWxlcjo6Y29sbGVjdEdhcmJh
Z2UoKTsKK30KKworUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9maWxl
SGVhZGVyPiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlU25hcHNob3RIZWFkZXIo
Y29uc3QgU2NyaXB0SGVhcFNuYXBzaG90JiBzbmFwc2hvdCkKK3sKKyAgICBSZWZQdHI8VHlwZUJ1
aWxkZXI6OkhlYXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcj4gaGVhZGVyID0gVHlwZUJ1aWxkZXI6
OkhlYXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcjo6Y3JlYXRlKCkKKyAgICAgICAgLnNldFVpZChz
bmFwc2hvdC51aWQoKSkKKyAgICAgICAgLnNldFRpdGxlKHNuYXBzaG90LnRpdGxlKCkpOworICAg
IGhlYWRlci0+c2V0TWF4SlNPYmplY3RJZChzbmFwc2hvdC5tYXhTbmFwc2hvdEpTT2JqZWN0SWQo
KSk7CisgICAgcmV0dXJuIGhlYWRlci5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQ6Omhhc0hlYXBQcm9maWxlcihFcnJvclN0cmluZyosIGJvb2wqIHJlc3Vs
dCkKK3sKKyAgICAqcmVzdWx0ID0gU2NyaXB0UHJvZmlsZXI6Omhhc0hlYXBQcm9maWxlcigpOwor
fQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRQcm9maWxlSGVhZGVycyhF
cnJvclN0cmluZyosIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkhlYXBQ
cm9maWxlcjo6UHJvZmlsZUhlYWRlcj4gPiYgaGVhZGVycykKK3sKKyAgICBtX2hlYWRlcnNSZXF1
ZXN0ZWQgPSB0cnVlOworICAgIGhlYWRlcnMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxk
ZXI6OkhlYXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcj46OmNyZWF0ZSgpOworCisgICAgSGVhcFNu
YXBzaG90c01hcDo6aXRlcmF0b3Igc25hcHNob3RzRW5kID0gbV9zbmFwc2hvdHMuZW5kKCk7Cisg
ICAgZm9yIChIZWFwU25hcHNob3RzTWFwOjppdGVyYXRvciBpdCA9IG1fc25hcHNob3RzLmJlZ2lu
KCk7IGl0ICE9IHNuYXBzaG90c0VuZDsgKytpdCkKKyAgICAgICAgaGVhZGVycy0+YWRkSXRlbShj
cmVhdGVTbmFwc2hvdEhlYWRlcigqaXQtPnZhbHVlKSk7Cit9CisKK25hbWVzcGFjZSB7CisKK2Ns
YXNzIE91dHB1dFN0cmVhbSA6IHB1YmxpYyBTY3JpcHRIZWFwU25hcHNob3Q6Ok91dHB1dFN0cmVh
bSB7CitwdWJsaWM6CisgICAgT3V0cHV0U3RyZWFtKEluc3BlY3RvckZyb250ZW5kOjpIZWFwUHJv
ZmlsZXIqIGZyb250ZW5kLCB1bnNpZ25lZCB1aWQpCisgICAgICAgIDogbV9mcm9udGVuZChmcm9u
dGVuZCksIG1fdWlkKHVpZCkgeyB9CisgICAgdm9pZCBXcml0ZShjb25zdCBTdHJpbmcmIGNodW5r
KSB7IG1fZnJvbnRlbmQtPmFkZEhlYXBTbmFwc2hvdENodW5rKG1fdWlkLCBjaHVuayk7IH0KKyAg
ICB2b2lkIENsb3NlKCkgeyBtX2Zyb250ZW5kLT5maW5pc2hIZWFwU25hcHNob3QobV91aWQpOyB9
Citwcml2YXRlOgorICAgIEluc3BlY3RvckZyb250ZW5kOjpIZWFwUHJvZmlsZXIqIG1fZnJvbnRl
bmQ7CisgICAgaW50IG1fdWlkOworfTsKKworfSAvLyBuYW1lc3BhY2UKKwordm9pZCBJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudDo6Z2V0SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZywgaW50IHJhd1VpZCkKK3sKKyAgICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4ocmF3VWlkKTsKKyAgICBIZWFwU25hcHNob3RzTWFwOjppdGVyYXRvciBpdCA9IG1fc25h
cHNob3RzLmZpbmQodWlkKTsKKyAgICBpZiAoaXQgPT0gbV9zbmFwc2hvdHMuZW5kKCkpIHsKKyAg
ICAgICAgKmVycm9yU3RyaW5nID0gIlByb2ZpbGUgd2Fzbid0IGZvdW5kIjsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBSZWZQdHI8U2NyaXB0SGVhcFNuYXBzaG90PiBzbmFwc2hvdCA9IGl0
LT52YWx1ZTsKKyAgICBpZiAobV9mcm9udGVuZCkgeworICAgICAgICBPdXRwdXRTdHJlYW0gc3Ry
ZWFtKG1fZnJvbnRlbmQsIHVpZCk7CisgICAgICAgIHNuYXBzaG90LT53cml0ZUpTT04oJnN0cmVh
bSk7CisgICAgfQorfQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZW1vdmVQ
cm9maWxlKEVycm9yU3RyaW5nKiwgaW50IHJhd1VpZCkKK3sKKyAgICB1bnNpZ25lZCB1aWQgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4ocmF3VWlkKTsKKyAgICBpZiAobV9zbmFwc2hvdHMuY29udGFp
bnModWlkKSkKKyAgICAgICAgbV9zbmFwc2hvdHMucmVtb3ZlKHVpZCk7Cit9CisKK25hbWVzcGFj
ZSB7CisKK2NsYXNzIEhlYXBTbmFwc2hvdFByb2dyZXNzOiBwdWJsaWMgU2NyaXB0UHJvZmlsZXI6
OkhlYXBTbmFwc2hvdFByb2dyZXNzIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBIZWFwU25hcHNo
b3RQcm9ncmVzcyhJbnNwZWN0b3JGcm9udGVuZDo6SGVhcFByb2ZpbGVyKiBmcm9udGVuZCkKKyAg
ICAgICAgOiBtX2Zyb250ZW5kKGZyb250ZW5kKSB7IH0KKyAgICB2b2lkIFN0YXJ0KGludCB0b3Rh
bFdvcmspCisgICAgeworICAgICAgICBtX3RvdGFsV29yayA9IHRvdGFsV29yazsKKyAgICB9Cisg
ICAgdm9pZCBXb3JrZWQoaW50IHdvcmtEb25lKQorICAgIHsKKyAgICAgICAgaWYgKG1fZnJvbnRl
bmQpCisgICAgICAgICAgICBtX2Zyb250ZW5kLT5yZXBvcnRIZWFwU25hcHNob3RQcm9ncmVzcyh3
b3JrRG9uZSwgbV90b3RhbFdvcmspOworICAgIH0KKyAgICB2b2lkIERvbmUoKSB7IH0KKyAgICBi
b29sIGlzQ2FuY2VsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorcHJpdmF0ZToKKyAgICBJbnNwZWN0
b3JGcm9udGVuZDo6SGVhcFByb2ZpbGVyKiBtX2Zyb250ZW5kOworICAgIGludCBtX3RvdGFsV29y
azsKK307CisKK307CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnRha2VIZWFw
U25hcHNob3QoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiByZXBvcnRQcm9ncmVzcykKK3sKKyAg
ICBTdHJpbmcgdGl0bGUgPSBtYWtlU3RyaW5nKFVzZXJJbml0aWF0ZWRQcm9maWxlTmFtZSwgJy4n
LCBTdHJpbmc6Om51bWJlcihtX25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBzaG90TnVtYmVyKSk7
CisgICAgKyttX25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBzaG90TnVtYmVyOworCisgICAgSGVh
cFNuYXBzaG90UHJvZ3Jlc3MgcHJvZ3Jlc3MocmVwb3J0UHJvZ3Jlc3MgJiYgKnJlcG9ydFByb2dy
ZXNzID8gbV9mcm9udGVuZCA6IDApOworICAgIFJlZlB0cjxTY3JpcHRIZWFwU25hcHNob3Q+IHNu
YXBzaG90ID0gU2NyaXB0UHJvZmlsZXI6OnRha2VIZWFwU25hcHNob3QodGl0bGUsICZwcm9ncmVz
cyk7CisgICAgaWYgKHNuYXBzaG90KSB7CisgICAgICAgIG1fc25hcHNob3RzLmFkZChzbmFwc2hv
dC0+dWlkKCksIHNuYXBzaG90KTsKKyAgICAgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgICAg
ICBtX2Zyb250ZW5kLT5hZGRQcm9maWxlSGVhZGVyKGNyZWF0ZVNuYXBzaG90SGVhZGVyKCpzbmFw
c2hvdCkpOworICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Z2V0
T2JqZWN0QnlIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIGhl
YXBTbmFwc2hvdE9iamVjdElkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8VHlw
ZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCkKK3sKKyAgICBib29sIG9r
OworICAgIHVuc2lnbmVkIGlkID0gaGVhcFNuYXBzaG90T2JqZWN0SWQudG9VSW50KCZvayk7Cisg
ICAgaWYgKCFvaykgeworICAgICAgICAqZXJyb3IgPSAiSW52YWxpZCBoZWFwIHNuYXBzaG90IG9i
amVjdCBpZCI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgU2NyaXB0T2JqZWN0IGhlYXBP
YmplY3QgPSBTY3JpcHRQcm9maWxlcjo6b2JqZWN0QnlIZWFwT2JqZWN0SWQoaWQpOworICAgIGlm
IChoZWFwT2JqZWN0Lmhhc05vVmFsdWUoKSkgeworICAgICAgICAqZXJyb3IgPSAiT2JqZWN0IGlz
IG5vdCBhdmFpbGFibGUiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEluamVjdGVkU2Ny
aXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2Ny
aXB0Rm9yKGhlYXBPYmplY3Quc2NyaXB0U3RhdGUoKSk7CisgICAgaWYgKGluamVjdGVkU2NyaXB0
Lmhhc05vVmFsdWUoKSkgeworICAgICAgICAqZXJyb3IgPSAiT2JqZWN0IGlzIG5vdCBhdmFpbGFi
bGUuIEluc3BlY3RlZCBjb250ZXh0IGlzIGdvbmUiOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIHJlc3VsdCA9IGluamVjdGVkU2NyaXB0LndyYXBPYmplY3QoaGVhcE9iamVjdCwgb2JqZWN0
R3JvdXAgPyAqb2JqZWN0R3JvdXAgOiAiIik7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICpl
cnJvciA9ICJGYWlsZWQgdG8gd3JhcCBvYmplY3QiOworfQorCit2b2lkIEluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50OjpnZXRIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBj
b25zdCBTdHJpbmcmIG9iamVjdElkLCBTdHJpbmcqIGhlYXBTbmFwc2hvdE9iamVjdElkKQorewor
ICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOworICAgIGlmIChpbmplY3Rl
ZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIkluc3BlY3Rl
ZCBjb250ZXh0IGhhcyBnb25lIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBTY3JpcHRW
YWx1ZSB2YWx1ZSA9IGluamVjdGVkU2NyaXB0LmZpbmRPYmplY3RCeUlkKG9iamVjdElkKTsKKyAg
ICBpZiAodmFsdWUuaGFzTm9WYWx1ZSgpIHx8IHZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAg
ICAgKmVycm9yU3RyaW5nID0gIk9iamVjdCB3aXRoIGdpdmVuIGlkIG5vdCBmb3VuZCI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgdW5zaWduZWQgaWQgPSBTY3JpcHRQcm9maWxlcjo6Z2V0
SGVhcE9iamVjdElkKHZhbHVlKTsKKyAgICAqaGVhcFNuYXBzaG90T2JqZWN0SWQgPSBTdHJpbmc6
Om51bWJlcihpZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7
CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JQcm9maWxlckFnZW50KTsKKyAgICBJbnNwZWN0b3JCYXNl
QWdlbnQ8SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ+OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1v
cnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2luamVjdGVkU2NyaXB0TWFuYWdl
ciwgImluamVjdGVkU2NyaXB0TWFuYWdlciIpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9m
cm9udGVuZCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zbmFwc2hvdHMsICJzbmFwc2hvdHMiKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3
ZWY3MWNjYjI3MWRlZDhhN2U2ODZlYjg5MTgyOGZkZWE0YzA5ODIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaApA
QCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisg
KiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50X2gKKyNk
ZWZpbmUgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnRfaAorCisjaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJbnNwZWN0b3JC
YXNlQWdlbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEluamVjdGVk
U2NyaXB0TWFuYWdlcjsKK2NsYXNzIFNjcmlwdEhlYXBTbmFwc2hvdDsKK2NsYXNzIFNjcmlwdFBy
b2ZpbGU7CisKK3R5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOworCitjbGFzcyBJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OkhlYXBQ
cm9maWxlckNvbW1hbmRIYW5kbGVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50PiBjcmVhdGUo
SW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKik7CisgICAgdmlydHVhbCB+SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQo
KTsKKworICAgIHZvaWQgYWRkUHJvZmlsZShQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+IHBycFBy
b2ZpbGUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKyAg
ICB2b2lkIGFkZFByb2ZpbGVGaW5pc2hlZE1lc3NhZ2VUb0NvbnNvbGUoUGFzc1JlZlB0cjxTY3Jp
cHRQcm9maWxlPiwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwp
OworICAgIHZvaWQgYWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsK
KyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdEdhcmJhZ2UoRXJyb3JTdHJpbmcqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJQcm9maWxlcyhFcnJvclN0cmluZyopIHsgcmVzZXRTdGF0ZSgpOyB9Cisg
ICAgdm9pZCByZXNldFN0YXRlKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgaGFzSGVhcFByb2ZpbGVy
KEVycm9yU3RyaW5nKiwgYm9vbCopOworCisgICAgdmlydHVhbCB2b2lkIGdldFByb2ZpbGVIZWFk
ZXJzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6
SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiA+Jik7CisgICAgdmlydHVhbCB2b2lkIGdldEhl
YXBTbmFwc2hvdChFcnJvclN0cmluZyosIGludCB1aWQpOworICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVQcm9maWxlKEVycm9yU3RyaW5nKiwgaW50IHVpZCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9u
dGVuZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQg
dGFrZUhlYXBTbmFwc2hvdChFcnJvclN0cmluZyosIGNvbnN0IGJvb2wqIHJlcG9ydFByb2dyZXNz
KTsKKworICAgIHZpcnR1YWwgdm9pZCBnZXRPYmplY3RCeUhlYXBPYmplY3RJZChFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgaGVhcFNuYXBzaG90T2JqZWN0SWQsIGNvbnN0IFN0cmluZyogb2Jq
ZWN0R3JvdXAsIFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVz
dWx0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0SGVhcE9iamVjdElkKEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiBvYmplY3RJZCwgU3RyaW5nKiBoZWFwU25hcHNob3RPYmplY3RJZCk7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
IE9WRVJSSURFOworCisgICAgdm9pZCB3aWxsUHJvY2Vzc1Rhc2soKTsKKyAgICB2b2lkIGRpZFBy
b2Nlc3NUYXNrKCk7CisKK3Byb3RlY3RlZDoKKyAgICBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWdu
ZWQsIFJlZlB0cjxTY3JpcHRIZWFwU25hcHNob3Q+ID4gSGVhcFNuYXBzaG90c01hcDsKKworICAg
IHZvaWQgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7CisKKyAgICBQYXNzUmVmUHRyPFR5cGVCdWls
ZGVyOjpIZWFwUHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+IGNyZWF0ZVNuYXBzaG90SGVhZGVyKGNv
bnN0IFNjcmlwdEhlYXBTbmFwc2hvdCYpOworCisgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBt
X2luamVjdGVkU2NyaXB0TWFuYWdlcjsKKyAgICBJbnNwZWN0b3JGcm9udGVuZDo6SGVhcFByb2Zp
bGVyKiBtX2Zyb250ZW5kOworICAgIGJvb2wgbV9oZWFkZXJzUmVxdWVzdGVkOworICAgIHVuc2ln
bmVkIG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1iZXI7CisgICAgSGVhcFNuYXBz
aG90c01hcCBtX3NuYXBzaG90czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQor
CisjZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnRfaCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKaW5kZXggYTFmNTAxZDI0MDU1OGI4Y2ViOGNiMGRlZjEwMDZkYWI1Y2MwODlkNS4uYTMwZDE1
ZjJmNjIzMjhhN2UzNDM2ZDM4YmU3YjEwZjc3YWFkYzA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTU2LDYg
KzU2LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgogI2luY2x1ZGUgIkluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRlYnVnZ2VyQWdlbnQu
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckxheWVyVHJlZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50Lmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIgpAQCAtOTI0LDYgKzkyNSw4IEBA
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
ICYmIFVTRShKU0MpCiAgICAgICAgIGlmIChJbnNwZWN0b3JQcm9maWxlckFnZW50KiBwcm9maWxl
ckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUHJvZmlsZXJBZ2VudCgpKQog
ICAgICAgICAgICAgcHJvZmlsZXJBZ2VudC0+cmVzZXRTdGF0ZSgpOworICAgICAgICBpZiAoSW5z
cGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQqIGhlYXBQcm9maWxlckFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy0+aW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoKSkKKyAgICAgICAgICAgIGhlYXBQ
cm9maWxlckFnZW50LT5yZXNldFN0YXRlKCk7CiAjZW5kaWYKICAgICAgICAgaWYgKEluc3BlY3Rv
ckNTU0FnZW50KiBjc3NBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckNTU0Fn
ZW50KCkpCiAgICAgICAgICAgICBjc3NBZ2VudC0+cmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCmluZGV4IDJhODI4N2VlYzYwOWZmZmY5
MDM0ZjhkZjIyMDMzMmE2NGNiNmEzNTkuLmNkOGEyZDkyNzg0ZjI0ZmYyMmM2NjQ0NWNjMzQyZGIx
YzU0YTJiMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50
aW5nQWdlbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdB
Z2VudHMuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ7
CiBjbGFzcyBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDsKIGNsYXNzIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDsKK2NsYXNzIEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50OwogY2xhc3MgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ7CiBjbGFzcyBJ
bnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JQcm9maWxlckFnZW50OwpAQCAtMTI3
LDYgKzEyOCw5IEBAIHB1YmxpYzoKIAogICAgIEluc3BlY3RvclByb2ZpbGVyQWdlbnQqIGluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvclByb2ZpbGVyQWdl
bnQ7IH0KICAgICB2b2lkIHNldEluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JQcm9maWxlckFnZW50ID0gYWdlbnQ7IH0KKwor
ICAgIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KiBpbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ7IH0KKyAgICB2
b2lkIHNldEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KEluc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50KiBhZ2VudCkgeyBtX2luc3BlY3RvckhlYXBQcm9maWxlckFnZW50ID0gYWdlbnQ7IH0KICNl
bmRpZgogCiAjaWYgRU5BQkxFKFdPUktFUlMpCkBAIC0xNzAsNiArMTc0LDcgQEAgcHJpdmF0ZToK
ICAgICBQYWdlRGVidWdnZXJBZ2VudCogbV9wYWdlRGVidWdnZXJBZ2VudDsKICAgICBJbnNwZWN0
b3JET01EZWJ1Z2dlckFnZW50KiBtX2luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ7CiAgICAgSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudCogbV9pbnNwZWN0b3JQcm9maWxlckFnZW50OworICAgIEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50KiBtX2luc3BlY3RvckhlYXBQcm9maWxlckFnZW50OwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgSW5zcGVjdG9yV29ya2VyQWdlbnQqIG1faW5z
cGVjdG9yV29ya2VyQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggOWM3NWM5MzdkMTM4ZTk5MTE3MTg5
OTZiYTg2M2M1ZTMzNWZiYzRkYS4uNzAwNGFlOWY5YWMwNjU1ZmE2ZjMzMmRjZDU4NDJjN2FiMTI3
MjgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkluc3BlY3Rv
ckNvbnNvbGVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JQcm9maWxlckFnZW50LmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZUNsaWVudC5o
IgpAQCAtMTEwLDYgKzExMSw3IEBAIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4CiAgICAgbV9hZ2Vu
dHMuYXBwZW5kKGRlYnVnZ2VyQWdlbnQucmVsZWFzZSgpKTsKIAogICAgIG1fYWdlbnRzLmFwcGVu
ZChJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdl
dCgpLCBjb25zb2xlQWdlbnQuZ2V0KCksIHdvcmtlckNvbnRleHQsIG1fc3RhdGUuZ2V0KCksIG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOwogI2VuZGlm
CiAgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIDAsIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6Oldvcmtlckluc3BlY3RvciwgMCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChjb25z
b2xlQWdlbnQucmVsZWFzZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvSGVhcFNuYXBzaG90RGF0YUdyaWRzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanMKaW5kZXggMTFiMzQ5YTQx
NTViYmY2ZDY3YjRhMmJjYTI1YzdlMDlhZjcwYjFiNS4uZGUzOGJjNjk4NGZhYjkxNDU5YTExNDlj
ZmI3NjFkNjc0ZDhmY2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanMKQEAgLTEzNCw3ICsxMzQs
NyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90U29ydGFibGVEYXRhR3JpZC5wcm90b3R5cGUg
PSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5IZWFw
U25hcHNob3RPYmplY3RJZH0gaGVhcFNuYXBzaG90T2JqZWN0SWQKKyAgICAgKiBAcGFyYW0ge0hl
YXBQcm9maWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElkfSBoZWFwU25hcHNob3RPYmplY3RJ
ZAogICAgICAqLwogICAgIGhpZ2hsaWdodE9iamVjdEJ5SGVhcFNuYXBzaG90SWQ6IGZ1bmN0aW9u
KGhlYXBTbmFwc2hvdE9iamVjdElkKQogICAgIHsKQEAgLTUyOCw3ICs1MjgsNyBAQCBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90Q29uc3RydWN0b3JzRGF0YUdyaWQucHJvdG90eXBlID0gewogCiAg
ICAgLyoqCiAgICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50Lkhl
YXBTbmFwc2hvdE9iamVjdElkfSBpZAorICAgICAqIEBwYXJhbSB7SGVhcFByb2ZpbGVyQWdlbnQu
SGVhcFNuYXBzaG90T2JqZWN0SWR9IGlkCiAgICAgICovCiAgICAgaGlnaGxpZ2h0T2JqZWN0QnlI
ZWFwU25hcHNob3RJZDogZnVuY3Rpb24oaWQpCiAgICAgewpAQCAtNzM0LDcgKzczNCw3IEBAIFdl
Ykluc3BlY3Rvci5IZWFwU25hcHNob3REb21pbmF0b3JzRGF0YUdyaWQucHJvdG90eXBlID0gewog
CiAgICAgLyoqCiAgICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50
LkhlYXBTbmFwc2hvdE9iamVjdElkfSBpZAorICAgICAqIEBwYXJhbSB7SGVhcFByb2ZpbGVyQWdl
bnQuSGVhcFNuYXBzaG90T2JqZWN0SWR9IGlkCiAgICAgICovCiAgICAgaGlnaGxpZ2h0T2JqZWN0
QnlIZWFwU25hcHNob3RJZDogZnVuY3Rpb24oaWQpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rlcy5q
cwppbmRleCBmMjk0MWM3NmExZjI5NDE0N2NlYWMwYjgwNDY4Nzc0ZmQ4OTU2ODZjLi5jOWU0MDBi
OGVlOGY4YzQ5NDdkN2YwYTdiY2NmYjg2NzMyMjY2YjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rlcy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rlcy5q
cwpAQCAtNDY1LDcgKzQ2NSw3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RHZW5lcmljT2Jq
ZWN0Tm9kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QcmltaXRpdmVW
YWx1ZShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vdCBhdmFpbGFibGUiKSkpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBPYmplY3RJZChT
dHJpbmcodGhpcy5zbmFwc2hvdE5vZGVJZCksIG9iamVjdEdyb3VwTmFtZSwgZm9ybWF0UmVzdWx0
KTsKKyAgICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldE9iamVjdEJ5SGVhcE9iamVjdElk
KFN0cmluZyh0aGlzLnNuYXBzaG90Tm9kZUlkKSwgb2JqZWN0R3JvdXBOYW1lLCBmb3JtYXRSZXN1
bHQpOwogICAgICAgICB9CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCmluZGV4IGJhMGI5NGYyYzNmYWY0
YTEzZWZlZWMyMjY2MTQ2NDYxZDVkOGUwYzguLjc5Mzc5ZDkwZTMxN2RmNzQ2NDEwZmRhYzY2ODMy
NzkxMmM1MjI4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSGVhcFNuYXBzaG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKQEAgLTgwMSw3ICs4MDEsNyBAQCBXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAgICAg
ICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50LlByb2ZpbGVIZWFkZXJ9
IHByb2ZpbGUKKyAgICAgKiBAcGFyYW0ge0hlYXBQcm9maWxlckFnZW50LlByb2ZpbGVIZWFkZXJ9
IHByb2ZpbGUKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlcn0KICAg
ICAgKi8KICAgICBjcmVhdGVQcm9maWxlOiBmdW5jdGlvbihwcm9maWxlKQpAQCAtODc5LDcgKzg3
OSw3IEBAIFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAKICAg
ICBzdGFydFNuYXBzaG90VHJhbnNmZXI6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFByb2Zp
bGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KHRoaXMudWlkKTsKKyAgICAgICAgSGVhcFByb2ZpbGVy
QWdlbnQuZ2V0SGVhcFNuYXBzaG90KHRoaXMudWlkKTsKICAgICB9LAogCiAgICAgc25hcHNob3RD
b25zdHJ1Y3Rvck5hbWU6IGZ1bmN0aW9uKCkKQEAgLTk4Niw3ICs5ODYsNyBAQCBXZWJJbnNwZWN0
b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fcmVj
ZWl2ZXIgPSBmaWxlT3V0cHV0U3RyZWFtOwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRDaHVua3Mg
PSAwOwogICAgICAgICAgICAgdGhpcy5fdXBkYXRlVHJhbnNmZXJQcm9ncmVzcygwLCB0aGlzLl90
b3RhbE51bWJlck9mQ2h1bmtzKTsKLSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNu
YXBzaG90KHRoaXMudWlkKTsKKyAgICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldEhlYXBT
bmFwc2hvdCh0aGlzLnVpZCk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fc2F2aW5nVG9GaWxl
ID0gdHJ1ZTsKICAgICAgICAgdGhpcy5fZmlsZU5hbWUgPSB0aGlzLl9maWxlTmFtZSB8fCAiSGVh
cC0iICsgbmV3IERhdGUoKS50b0lTTzg2MDFDb21wYWN0KCkgKyAiLmhlYXBzbmFwc2hvdCI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFu
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwu
anMKaW5kZXggMDg0NDQyYzk1NGVmOWViZDNiMGFmYzgxMjNlYTA2NmE3MjQyOTZhZS4uOGNlNDZh
YjhhZDc5MDRiMzk2ZDFiMDZmNmM5NDYzMDczZmMwMDg4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtMzA2LDYgKzMw
Niw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24oKQogICAgICAgICB0
aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVR5
cGUoKSk7CiAKICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyUHJvZmlsZXJEaXNwYXRjaGVy
KG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZXJEaXNwYXRjaGVyKHRoaXMpKTsKKyAgICBJbnNwZWN0
b3JCYWNrZW5kLnJlZ2lzdGVySGVhcFByb2ZpbGVyRGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9y
LkhlYXBQcm9maWxlckRpc3BhdGNoZXIodGhpcykpOwogCiAgICAgdGhpcy5fY3JlYXRlRmlsZVNl
bGVjdG9yRWxlbWVudCgpOwogICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250
ZXh0bWVudSIsIHRoaXMuX2hhbmRsZUNvbnRleHRNZW51RXZlbnQuYmluZCh0aGlzKSwgdHJ1ZSk7
CkBAIC00NzAsMTIgKzQ3MSwxMyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5
cGUgPSB7CiAgICAgX2NsZWFyUHJvZmlsZXM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFBy
b2ZpbGVyQWdlbnQuY2xlYXJQcm9maWxlcygpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5j
bGVhclByb2ZpbGVzKCk7CiAgICAgICAgIHRoaXMuX3Jlc2V0KCk7CiAgICAgfSwKIAogICAgIF9n
YXJiYWdlQ29sbGVjdEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFBy
b2ZpbGVyQWdlbnQuY29sbGVjdEdhcmJhZ2UoKTsKKyAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQu
Y29sbGVjdEdhcmJhZ2UoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC02MjgsOCArNjMwLDEyIEBA
IFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBzaWRl
YmFyUGFyZW50LnJlbW92ZUNoaWxkKHByb2ZpbGUuX3Byb2ZpbGVzVHJlZUVsZW1lbnQpOwogCi0g
ICAgICAgIGlmICghcHJvZmlsZS5pc1RlbXBvcmFyeSkKLSAgICAgICAgICAgIFByb2ZpbGVyQWdl
bnQucmVtb3ZlUHJvZmlsZShwcm9maWxlLnByb2ZpbGVUeXBlKCkuaWQsIHByb2ZpbGUudWlkKTsK
KyAgICAgICAgaWYgKCFwcm9maWxlLmlzVGVtcG9yYXJ5KSB7CisgICAgICAgICAgICBpZiAocHJv
ZmlsZS5wcm9maWxlVHlwZSgpLmlkID09IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxl
VHlwZS5UeXBlSWQpCisgICAgICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQucmVtb3ZlUHJv
ZmlsZShwcm9maWxlLnVpZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgUHJv
ZmlsZXJBZ2VudC5yZW1vdmVQcm9maWxlKHByb2ZpbGUucHJvZmlsZVR5cGUoKS5pZCwgcHJvZmls
ZS51aWQpOworICAgICAgICB9CiAKICAgICAgICAgLy8gTm8gb3RoZXIgaXRlbSB3aWxsIGJlIHNl
bGVjdGVkIGlmIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgcHJvZmlsZXMsIHNvCiAgICAgICAgIC8v
IG1ha2Ugc3VyZSB0aGF0IHZpZXcgZ2V0cyBjbGVhcmVkIHdoZW4gdGhlIGxhc3QgcHJvZmlsZSBp
cyByZW1vdmVkLgpAQCAtNjg3LDcgKzY5Myw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVs
LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtQcm9maWxl
ckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElkfSBzbmFwc2hvdE9iamVjdElkCisgICAgICogQHBh
cmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5IZWFwU25hcHNob3RPYmplY3RJZH0gc25hcHNob3RPYmpl
Y3RJZAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2aWV3TmFtZQogICAgICAqLwogICAgIHNob3dP
YmplY3Q6IGZ1bmN0aW9uKHNuYXBzaG90T2JqZWN0SWQsIHZpZXdOYW1lKQpAQCAtMTA5MCwyMiAr
MTA5NiwyNCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7P3N0cmlu
Z30gdHlwZQogICAgICAgICAgKiBAcGFyYW0gez9zdHJpbmd9IGVycm9yCiAgICAgICAgICAqIEBw
YXJhbSB7QXJyYXkuPFByb2ZpbGVyQWdlbnQuUHJvZmlsZUhlYWRlcj59IHByb2ZpbGVIZWFkZXJz
CiAgICAgICAgICAqLwotICAgICAgICBmdW5jdGlvbiBwb3B1bGF0ZUNhbGxiYWNrKGVycm9yLCBw
cm9maWxlSGVhZGVycykgeworICAgICAgICBmdW5jdGlvbiBwb3B1bGF0ZUNhbGxiYWNrKHR5cGUs
IGVycm9yLCBwcm9maWxlSGVhZGVycykgewogICAgICAgICAgICAgaWYgKGVycm9yKQogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHByb2ZpbGVIZWFkZXJzLnNvcnQoZnVuY3Rp
b24oYSwgYikgeyByZXR1cm4gYS51aWQgLSBiLnVpZDsgfSk7CiAgICAgICAgICAgICB2YXIgcHJv
ZmlsZUhlYWRlcnNMZW5ndGggPSBwcm9maWxlSGVhZGVycy5sZW5ndGg7CiAgICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHByb2ZpbGVIZWFkZXJzTGVuZ3RoOyArK2kpIHsKICAgICAgICAg
ICAgICAgICB2YXIgcHJvZmlsZUhlYWRlciA9IHByb2ZpbGVIZWFkZXJzW2ldOwotICAgICAgICAg
ICAgICAgIHZhciBwcm9maWxlVHlwZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUocHJvZmlsZUhlYWRl
ci50eXBlSWQpOworICAgICAgICAgICAgICAgIHZhciBwcm9maWxlVHlwZSA9IHRoaXMuZ2V0UHJv
ZmlsZVR5cGUodHlwZSB8fCBwcm9maWxlSGVhZGVyLnR5cGVJZCk7CiAgICAgICAgICAgICAgICAg
dGhpcy5hZGRQcm9maWxlSGVhZGVyKHByb2ZpbGVUeXBlLmNyZWF0ZVByb2ZpbGUocHJvZmlsZUhl
YWRlcikpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgUHJvZmlsZXJBZ2Vu
dC5nZXRQcm9maWxlSGVhZGVycyhwb3B1bGF0ZUNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAg
ICBQcm9maWxlckFnZW50LmdldFByb2ZpbGVIZWFkZXJzKHBvcHVsYXRlQ2FsbGJhY2suYmluZCh0
aGlzLCBudWxsKSk7CisgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldFByb2ZpbGVIZWFkZXJz
KHBvcHVsYXRlQ2FsbGJhY2suYmluZCh0aGlzLCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJv
ZmlsZVR5cGUuVHlwZUlkKSk7CiAKICAgICAgICAgdGhpcy5fcHJvZmlsZXNXZXJlUmVxdWVzdGVk
ID0gdHJ1ZTsKICAgICB9LApAQCAtMTE2Nyw3ICsxMTc1LDcgQEAgV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBmdW5jdGlvbiBkb25lKCkgewogICAgICAg
ICAgICAgdGhpcy5fbGF1bmNoZXJWaWV3LnByb2ZpbGVGaW5pc2hlZCgpOwogICAgICAgICB9Ci0g
ICAgICAgIFByb2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFwc2hvdCh0cnVlLCBkb25lLmJpbmQodGhp
cykpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KHRydWUsIGRv
bmUuYmluZCh0aGlzKSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci51c2VyTWV0cmljcy5Qcm9maWxl
c0hlYXBQcm9maWxlVGFrZW4ucmVjb3JkKCk7CiAgICAgfSwKIApAQCAtMTIwNiw3ICsxMjE0LDcg
QEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIGZ1
bmN0aW9uIHJldmVhbEluVmlldyh2aWV3TmFtZSkKICAgICAgICAgewotICAgICAgICAgICAgUHJv
ZmlsZXJBZ2VudC5nZXRIZWFwT2JqZWN0SWQob2JqZWN0SWQsIGRpZFJlY2VpdmVIZWFwT2JqZWN0
SWQuYmluZCh0aGlzLCB2aWV3TmFtZSkpOworICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQu
Z2V0SGVhcE9iamVjdElkKG9iamVjdElkLCBkaWRSZWNlaXZlSGVhcE9iamVjdElkLmJpbmQodGhp
cywgdmlld05hbWUpKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGRpZFJlY2VpdmVI
ZWFwT2JqZWN0SWQodmlld05hbWUsIGVycm9yLCByZXN1bHQpCkBAIC0xMjkzLDYgKzEzMDEsNjQg
QEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAKIC8qKgog
ICogQGNvbnN0cnVjdG9yCisgKiBAaW1wbGVtZW50cyB7SGVhcFByb2ZpbGVyQWdlbnQuRGlzcGF0
Y2hlcn0KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWx9IHByb2ZpbGVzUGFu
ZWwKKyAqLworV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlckRpc3BhdGNoZXIgPSBmdW5jdGlvbihw
cm9maWxlc1BhbmVsKQoreworICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwgPSBwcm9maWxlc1BhbmVs
OworfQorCitXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5Qcm9maWxlSGVhZGVy
fSBwcm9maWxlCisgICAgICovCisgICAgYWRkUHJvZmlsZUhlYWRlcjogZnVuY3Rpb24ocHJvZmls
ZSkKKyAgICB7CisgICAgICAgIHZhciBwcm9maWxlVHlwZSA9IHRoaXMuX3Byb2ZpbGVzUGFuZWwu
Z2V0UHJvZmlsZVR5cGUoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJ
ZCk7CisgICAgICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwuYWRkUHJvZmlsZUhlYWRlcihwcm9maWxl
VHlwZS5jcmVhdGVQcm9maWxlKHByb2ZpbGUpKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICog
QG92ZXJyaWRlCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHVpZAorICAgICAqIEBwYXJhbSB7c3Ry
aW5nfSBjaHVuaworICAgICAqLworICAgIGFkZEhlYXBTbmFwc2hvdENodW5rOiBmdW5jdGlvbih1
aWQsIGNodW5rKQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJvZmlsZXNQYW5lbC5fYWRkSGVhcFNu
YXBzaG90Q2h1bmsodWlkLCBjaHVuayk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBvdmVy
cmlkZQorICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1aWQKKyAgICAgKi8KKyAgICBmaW5pc2hIZWFw
U25hcHNob3Q6IGZ1bmN0aW9uKHVpZCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Byb2ZpbGVzUGFu
ZWwuX2ZpbmlzaEhlYXBTbmFwc2hvdCh1aWQpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBA
b3ZlcnJpZGUKKyAgICAgKi8KKyAgICByZXNldFByb2ZpbGVzOiBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICB0aGlzLl9wcm9maWxlc1BhbmVsLl9yZXNldCgpOworICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAb3ZlcnJpZGUKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gZG9uZQorICAgICAqIEBw
YXJhbSB7bnVtYmVyfSB0b3RhbAorICAgICAqLworICAgIHJlcG9ydEhlYXBTbmFwc2hvdFByb2dy
ZXNzOiBmdW5jdGlvbihkb25lLCB0b3RhbCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Byb2ZpbGVz
UGFuZWwuX3JlcG9ydEhlYXBTbmFwc2hvdFByb2dyZXNzKGRvbmUsIHRvdGFsKTsKKyAgICB9Cit9
CisKKy8qKgorICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNpZGVi
YXJUcmVlRWxlbWVudH0KICAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyfSBw
cm9maWxlCiAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGVGb3JtYXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCBhMzNiZWVl
NDQ2NDZkYWJiOGM5NDM5MGFlYzcyOTgzZTc5MTRjZjBiLi5mMWIzMmVhYmI4N2ZjMzBlM2NjNTAy
MTM1MTkyOTExODJhYTlmZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC01ODAsNyArNTgwLDcgQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2dhcmJhZ2VDb2xsZWN0QnV0
dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgUHJvZmlsZXJBZ2VudC5jb2xs
ZWN0R2FyYmFnZSgpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5jb2xsZWN0R2FyYmFnZSgp
OwogICAgIH0sCiAKICAgICBfZ2x1ZVBhcmVudEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXgg
ZDk0ZTI4NTQ5NTNmYzRkOWU4YmFhMTU3MjU4OTg5MmRiMjE1NDE5MC4uYTBiY2MyZGEyZGIzNzZk
YzU4NmNiYTA1NDQ1OTRmODhhNDk1MTA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTM2OCw3ICszNjgsNyBAQCBXZWJJbnNwZWN0
b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rpb24oKQogICAgIERlYnVnZ2VyQWdlbnQuc3VwcG9ydHNT
ZXBhcmF0ZVNjcmlwdENvbXBpbGF0aW9uQW5kRXhlY3V0aW9uKFdlYkluc3BlY3Rvci5faW5pdGlh
bGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJzZXBhcmF0ZVNjcmlwdENvbXBpbGF0
aW9uQW5kRXhlY3V0aW9uRW5hYmxlZCIsIG51bGwpKTsKICAgICBQcm9maWxlckFnZW50LmNhdXNl
c1JlY29tcGlsYXRpb24oV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdl
Ykluc3BlY3RvciwgInByb2ZpbGVyQ2F1c2VzUmVjb21waWxhdGlvbiIsIG51bGwpKTsKICAgICBQ
cm9maWxlckFnZW50LmlzU2FtcGxpbmcoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0
eS5iaW5kKFdlYkluc3BlY3RvciwgInNhbXBsaW5nQ1BVUHJvZmlsZXIiLCBudWxsKSk7Ci0gICAg
UHJvZmlsZXJBZ2VudC5oYXNIZWFwUHJvZmlsZXIoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2Fw
YWJpbGl0eS5iaW5kKFdlYkluc3BlY3RvciwgImhlYXBQcm9maWxlclByZXNlbnQiLCBudWxsKSk7
CisgICAgSGVhcFByb2ZpbGVyQWdlbnQuaGFzSGVhcFByb2ZpbGVyKFdlYkluc3BlY3Rvci5faW5p
dGlhbGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJoZWFwUHJvZmlsZXJQcmVzZW50
IiwgbnVsbCkpOwogICAgIFRpbWVsaW5lQWdlbnQuc3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlv
bihXZWJJbnNwZWN0b3IuX2luaXRpYWxpemVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAi
dGltZWxpbmVTdXBwb3J0c0ZyYW1lSW5zdHJ1bWVudGF0aW9uIiwgbnVsbCkpOwogICAgIFRpbWVs
aW5lQWdlbnQuY2FuTW9uaXRvck1haW5UaHJlYWQoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2Fw
YWJpbGl0eS5iaW5kKFdlYkluc3BlY3RvciwgInRpbWVsaW5lQ2FuTW9uaXRvck1haW5UaHJlYWQi
LCBudWxsKSk7CiAgICAgUGFnZUFnZW50LmNhblNob3dGUFNDb3VudGVyKFdlYkluc3BlY3Rvci5f
aW5pdGlhbGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJjYW5TaG93RlBTQ291bnRl
ciIsIG51bGwpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRv
b2xzQWdlbnRJbXBsLmNwcAppbmRleCA0ZWE0NjBhMTBiNjA4OTFjYTVlZWVjZGFhOGYzNzM1NTlj
ZTgxOGIzLi42MDgzZDk2N2IxZTlkMjZlY2Q1NjNlYzk5Yzk4ODBjNTM3NGI0MDE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3Bw
CkBAIC03NzgsNyArNzc4LDcgQEAgYm9vbCBXZWJEZXZUb29sc0FnZW50OjpzaG91bGRJbnRlcnJ1
cHRGb3JNZXNzYWdlKGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSkKICAgICAgICAgfHwgY29tbWFu
ZE5hbWUgPT0gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmROYW1lc1tJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcjo6a1Byb2ZpbGVyX3N0YXJ0Q21kXQogICAgICAgICB8fCBjb21t
YW5kTmFtZSA9PSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Y29tbWFuZE5hbWVzW0luc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyOjprUHJvZmlsZXJfc3RvcENtZF0KICAgICAgICAgfHwgY29t
bWFuZE5hbWUgPT0gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmROYW1lc1tJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6a1Byb2ZpbGVyX2dldENQVVByb2ZpbGVDbWRdCi0gICAg
ICAgIHx8IGNvbW1hbmROYW1lID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpjb21tYW5k
TmFtZXNbSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmtQcm9maWxlcl9nZXRIZWFwU25hcHNo
b3RDbWRdOworICAgICAgICB8fCBjb21tYW5kTmFtZSA9PSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcjo6Y29tbWFuZE5hbWVzW0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjprSGVhcFByb2Zp
bGVyX2dldEhlYXBTbmFwc2hvdENtZF07CiB9CiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudDo6cHJv
Y2Vzc1BlbmRpbmdNZXNzYWdlcygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTk3MDdlN2NkMzhjNWQ4OGRhZGI1YTI3NTZm
NTgyYTQyZDgwY2FmMi4uZWY5ZTk2MTZmZTI2ZDZkNGIxN2UxYTc4NDMyNmI5MGVkNjU5NzE4NCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTA2ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbHBo
QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTcGxpdCBQcm9maWxlciBk
b21haW4gaW4gcHJvdG9jb2wgaW50byBQcm9maWxlciBhbmQgSGVhcFByb2ZpbGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg2NTMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgQ1BVIGFu
ZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0aGUgc2FtZSBkb21haW4gJ1Byb2ZpbGVyJyBpbiB0aGUg
cHJvdG9jb2wuCisgICAgICAgIEluIGZhY3QgdGhlc2UgdHdvIHByb2ZpbGUgdHlwZXMgaGF2ZSBu
b3QgdG9vIG11Y2ggaW4gY29tbW9uLiBTbyBwdXQgZWFjaCBpbnRvIGl0cyBvd24gZG9tYWluLgor
ICAgICAgICBJdCBzaG91bGQgYWxzbyBoZWxwIHdoZW4gUHJvZmlsZXMgcGFuZWwgZ2V0cyBzcGxp
dCBpbnRvIHNldmVyYWwgdG9vbHMuCisgICAgICAgIFRoaXMgaXMgdGhlIHBoYXNlIDEgd2hpY2gg
YWRkcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCBidXQgZG9lc24ndAorICAgICAgICBjaGFu
Z2UgdGhlIG9yaWdpbmFsIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvaGVhcC1wcm9maWxlci9yZXNvdXJjZXMvaGVhcC1zbmFwc2hvdC1jb21t
b24uanM6CisgICAgICAgIChJbnNwZWN0b3JUZXN0LnRha2VIZWFwU25hcHNob3QuSW5zcGVjdG9y
VGVzdC5ldmVudEhhbmRsZXIuc3RyaW5nX2FwcGVhcmVkX2hlcmUpOgorICAgICAgICAoSW5zcGVj
dG9yVGVzdC50YWtlSGVhcFNuYXBzaG90KToKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wv
bm1pLXdlYmF1ZGlvLWxlYWstdGVzdC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1kb20td3JhcHBlci5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanM6CisgICAgICAg
IChpbml0aWFsaXplX0hlYXBTbmFwc2hvdFRlc3QpOgorCiAyMDEzLTAyLTA2ICBEZWFuIEphY2tz
b24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBNaW5vciB1cGRhdGVzIHRvIGNhcHRpb25z
IG1lbnUgVUkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9oZWFw
LXByb2ZpbGVyL3Jlc291cmNlcy9oZWFwLXNuYXBzaG90LWNvbW1vbi5qcyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9oZWFwLXByb2ZpbGVyL3Jlc291cmNlcy9oZWFwLXNuYXBzaG90
LWNvbW1vbi5qcwppbmRleCA3YjNiOWYxOGE5NzFmYzUwNjRjMDBmMjk5ZDViMTQxODU2NGYzMDFi
Li45ZTk4ODQ5N2QxNTY5YWFmZjE2OGJmYTZjMDc4YzNmN2Y3ZGU4NjhkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvaGVhcC1wcm9maWxlci9yZXNvdXJjZXMvaGVh
cC1zbmFwc2hvdC1jb21tb24uanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2hlYXAtcHJvZmlsZXIvcmVzb3VyY2VzL2hlYXAtc25hcHNob3QtY29tbW9uLmpzCkBAIC05LDEw
ICs5LDEwIEBAIEluc3BlY3RvclRlc3QuaW1wb3J0U2NyaXB0KCIuLi8uLi8uLi8uLi8uLi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0pTCiAKIEluc3BlY3RvclRlc3QudGFrZUhl
YXBTbmFwc2hvdCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogewotICAgIEluc3BlY3RvclRlc3QuZXZl
bnRIYW5kbGVyWyJQcm9maWxlci5hZGRQcm9maWxlSGVhZGVyIl0gPSBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KQorICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJIZWFwUHJvZmlsZXIuYWRk
UHJvZmlsZUhlYWRlciJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAgICAg
IHZhciBwcm9maWxlSWQgPSBtZXNzYWdlT2JqZWN0WyJwYXJhbXMiXVsiaGVhZGVyIl1bInVpZCJd
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQcm9maWxlci5nZXRIZWFwU25h
cHNob3QiLCB7ICJ1aWQiOiBwcm9maWxlSWQgfSwgZGlkR2V0SGVhcFNuYXBzaG90KTsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiSGVhcFByb2ZpbGVyLmdldEhlYXBTbmFwc2hv
dCIsIHsgInVpZCI6IHByb2ZpbGVJZCB9LCBkaWRHZXRIZWFwU25hcHNob3QpOwogCiAgICAgICAg
IGZ1bmN0aW9uIGRpZEdldEhlYXBTbmFwc2hvdChtZXNzYWdlT2JqZWN0KQogICAgICAgICB7CkBA
IC0yMiwxMiArMjIsMTIgQEAgSW5zcGVjdG9yVGVzdC50YWtlSGVhcFNuYXBzaG90ID0gZnVuY3Rp
b24oY2FsbGJhY2spCiAgICAgfQogCiAgICAgdmFyIGNodW5rcyA9IFtdOwotICAgIEluc3BlY3Rv
clRlc3QuZXZlbnRIYW5kbGVyWyJQcm9maWxlci5hZGRIZWFwU25hcHNob3RDaHVuayJdID0gZnVu
Y3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiSGVh
cFByb2ZpbGVyLmFkZEhlYXBTbmFwc2hvdENodW5rIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0
KQogICAgIHsKICAgICAgICAgY2h1bmtzLnB1c2gobWVzc2FnZU9iamVjdFsicGFyYW1zIl1bImNo
dW5rIl0pOwogICAgIH0KIAotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQcm9maWxl
ci5maW5pc2hIZWFwU25hcHNob3QiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgSW5z
cGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkhlYXBQcm9maWxlci5maW5pc2hIZWFwU25hcHNob3Qi
XSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewogICAgICAgICB2YXIgc2VyaWFsaXpl
ZFNuYXBzaG90ID0gY2h1bmtzLmpvaW4oIiIpOwogICAgICAgICB2YXIgcGFyc2VkID0gSlNPTi5w
YXJzZShzZXJpYWxpemVkU25hcHNob3QpOwpAQCAtMzUsNSArMzUsNSBAQCBJbnNwZWN0b3JUZXN0
LnRha2VIZWFwU25hcHNob3QgPSBmdW5jdGlvbihjYWxsYmFjaykKICAgICAgICAgY2FsbGJhY2so
c25hcHNob3QpOwogICAgIH0KIAotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlByb2Zp
bGVyLnRha2VIZWFwU25hcHNob3QiLCB7fSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiSGVhcFByb2ZpbGVyLnRha2VIZWFwU25hcHNob3QiLCB7fSk7CiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWxlYWstdGVzdC5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby1sZWFrLXRlc3Qu
aHRtbAppbmRleCAyM2FjY2M3NGNiOGY4NjE5NGM3OWVjNTM2ZjkxZTE5YWVkNjNmYjY0Li5hMDg1
MDU3MzJjNTA2ZmVmNDk0ODdjMzkzNTBiYjU3MWVjNDMzZjBkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWxlYWstdGVzdC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8tbGVhay10ZXN0Lmh0
bWwKQEAgLTYwLDcgKzYwLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBpRnJh
bWVOYXZpZ2F0ZWQobWVzc2FnZU9iamVjdCkgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
UEFTUzogSUZyYW1lIHdhcyBuYXZpZ2F0ZWQgdG8gcmVzb3VyY2VzL2JsYW5rLmh0bWwiKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgnUHJvZmlsZXIuY29sbGVjdEdhcmJhZ2Un
LCB7fSwgZnVuY3Rpb24oKSB7IH0gKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgnSGVhcFByb2ZpbGVyLmNvbGxlY3RHYXJiYWdlJywge30sIGZ1bmN0aW9uKCkgeyB9ICk7CiAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJBY3Rpb246IFJ1biBHQyBhbmQgY2hlY2sgUGFnZS5B
dWRpbyBkYXRhIHNpemUiKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgnTWVt
b3J5LmdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb24nLCB7fSwgbm9BdWRpb1NoYXJlZERhdGEp
OwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFw
LXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC5odG1sCmluZGV4IDg1NjFi
Y2I4MTFmMzEwM2EzYzU3YTY1MWMyYjZjY2UyODFhMDUxODAuLjU0NGNiMTIyMTg4ZjMzZDE0NzUx
NDg0OTJmZGM1ZGRmZWM5ZjNkYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZ2V0LXByb2ZpbGUtY3Jhc2gu
aHRtbApAQCAtMTQsNyArMTQsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICBj
b25zb2xlLmxvZyhlcnJvclN0cmluZyk7CiAgICAgICAgICAgICAgICAgbmV4dCgpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRIZWFwU25hcHNob3QoLTEsIGZp
bmlzaCk7CisgICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5nZXRIZWFwU25hcHNob3QoLTEs
IGZpbmlzaCk7CiAgICAgICAgIH0KICAgICBdKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3Qt
ZG9tLXdyYXBwZXIuaHRtbAppbmRleCAzODIwN2ZiOTU2MjA3MmU1M2M1NzdkZmE4NjVhYTAwMWI5
YzcxODFiLi4wMzVmYzRjZTdiNDk1Nzk5MzE5NDMzMDAyNTM4YjM0ZmU3NTkzMTg0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1pbnNwZWN0
LWRvbS13cmFwcGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3QtaW5zcGVjdC1kb20td3JhcHBlci5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIGZ1
bmN0aW9uIGhhbmRsZUxvYWQoKQogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgV2ViSW5zcGVjdG9y
LnNob3dQYW5lbCgicHJvZmlsZXMiKTsKLSAgICBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNo
b3Qoc3RlcDApOworICAgIEhlYXBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3Qoc3RlcDAp
OwogCiAgICAgZnVuY3Rpb24gc3RlcDAoKQogICAgIHsKQEAgLTQyLDcgKzQyLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgICAgICAgICAgYm9keVdyYXBwZXJJZHMucHVzaChpdC5ub2RlLmlk
KTsKICAgICAgICAgfQogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJvZHlXcmFwcGVySWRz
Lmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBP
YmplY3RJZChib2R5V3JhcHBlcklkc1tpXSwgdW5kZWZpbmVkLCBkaWRHZXRPYmplY3RCeUhlYXBP
YmplY3RJZCk7CisgICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBP
YmplY3RJZChib2R5V3JhcHBlcklkc1tpXSwgdW5kZWZpbmVkLCBkaWRHZXRPYmplY3RCeUhlYXBP
YmplY3RJZCk7CiAKICAgICAgICAgdmFyIHJlc29sdmVkT2JqZWN0c0NvdW50ID0gMDsKICAgICAg
ICAgdmFyIHJlbW90ZU9iamVjdHMgPSBbXTsKQEAgLTY5LDcgKzY5LDcgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgICAgICBpZiAoKytkaWRHZXRPd25Qcm9wZXJ0aWVzQ291bnQgIT09IHJlbW90
ZU9iamVjdHMubGVuZ3RoKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAg
UHJvZmlsZXJBZ2VudC5jbGVhclByb2ZpbGVzKGRvbmUpOworICAgICAgICAgICAgSGVhcFByb2Zp
bGVyQWdlbnQuY2xlYXJQcm9maWxlcyhkb25lKTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5w
YW5lbHMucHJvZmlsZXMuX3Jlc2V0KCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1s
CmluZGV4IDk0MGI2NGJkMjY4MGYzMmJlNWUzMzllYmFjMjNiYzA1MjQ5ZTc0ZWMuLmNkODY1YmUw
N2E2OWY3YTk3OTE2MGFkY2E4ZWUyOTgyY2JhZmRiMGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sCkBAIC0x
Nyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHZhciBwYXJ0U2l6ZSA9IHNvdXJjZVN0
cmluZ2lmaWVkLmxlbmd0aCA+PiAzOwogCiAgICAgZnVuY3Rpb24gaW5qZWN0TW9ja1Byb2ZpbGUo
b3ZlcnJpZGVHZXRQcm9maWxlLCBjYWxsYmFjaykgewotICAgICAgICB2YXIgZGlzcGF0Y2hlciA9
IEluc3BlY3RvckJhY2tlbmQuX2RvbWFpbkRpc3BhdGNoZXJzWyJQcm9maWxlciJdOworICAgICAg
ICB2YXIgZGlzcGF0Y2hlciA9IEluc3BlY3RvckJhY2tlbmQuX2RvbWFpbkRpc3BhdGNoZXJzWyJI
ZWFwUHJvZmlsZXIiXTsKICAgICAgICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnBhbmVscy5w
cm9maWxlczsKICAgICAgICAgcGFuZWwuX3Jlc2V0KCk7CiAKQEAgLTM5LDEyICszOSwxMiBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgZnVuY3Rpb24gc25hcHNob3RMb2FkZWQoKQogICAgICAg
ICB7CiAgICAgICAgICAgICBpZiAob3ZlcnJpZGVHZXRQcm9maWxlKQotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoUHJvZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIs
IGdldEhlYXBTbmFwc2hvdE1vY2spOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qub3Zl
cnJpZGUoSGVhcFByb2ZpbGVyQWdlbnQsICJnZXRIZWFwU25hcHNob3QiLCBnZXRIZWFwU25hcHNo
b3RNb2NrKTsKICAgICAgICAgICAgIGNhbGxiYWNrKHByb2ZpbGVIZWFkZXIpOwogICAgICAgICB9
CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihwcm9maWxlSGVhZGVyLCAiX3NuYXBz
aG90UmVjZWl2ZWQiLCBzbmFwc2hvdExvYWRlZCk7CiAKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5v
dmVycmlkZShQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgZ2V0SGVhcFNuYXBzaG90
TW9jayk7CisgICAgICAgIEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoSGVhcFByb2ZpbGVyQWdlbnQs
ICJnZXRIZWFwU25hcHNob3QiLCBnZXRIZWFwU25hcHNob3RNb2NrKTsKICAgICAgICAgcGFuZWwu
c2hvd1Byb2ZpbGUocHJvZmlsZUhlYWRlcik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtdGVzdC5qcwppbmRleCAxNTU1NGQy
Y2MyYmJhODYwNWE2MmFhMDRhN2JmMjEyZDMwMzdiODAyLi5jYmQ2NjYzYzQ3NTg2YWRlYWIyOTE1
ZmZlMDE2OGFhM2JiNzVmYzE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanMKQEAgLTE3Miw3ICsxNzIsNyBAQCBJbnNwZWN0
b3JUZXN0LnN0YXJ0UHJvZmlsZXJUZXN0ID0gZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgZnVuY3Rp
b24gcHJvZmlsZXJFbmFibGVkKCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJQcm9maWxlciB3YXMgZW5hYmxlZC4iKTsKLSAgICAgICAgLy8gV2UgbW9jayBvdXQgUHJv
ZmlsZXJBZ2VudCAtLSBhcyBEUlQgcnVucyBpbiBzaW5nbGUtcHJvY2VzcyBtb2RlLCBJbnNwZWN0
b3IKKyAgICAgICAgLy8gV2UgbW9jayBvdXQgSGVhcFByb2ZpbGVyQWdlbnQgLS0gYXMgRFJUIHJ1
bnMgaW4gc2luZ2xlLXByb2Nlc3MgbW9kZSwgSW5zcGVjdG9yCiAgICAgICAgIC8vIGFuZCB0ZXN0
IHNoYXJlIHRoZSBzYW1lIGhlYXAuIFRha2luZyBhIHNuYXBzaG90IHRha2VzIHRvbyBsb25nIGZv
ciBhIHRlc3QsCiAgICAgICAgIC8vIHNvIHdlIHByb3ZpZGUgc3ludGhldGljIHNuYXBzaG90cy4K
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5fcGFuZWxSZXNldCA9IEluc3BlY3RvclRlc3Qub3ZlcnJp
ZGUoV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcywgIl9yZXNldCIsIGZ1bmN0aW9uKCl7fSwg
dHJ1ZSk7CkBAIC03MzUsNyArNzM1LDcgQEAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBz
aG90ID0gZnVuY3Rpb24oZ2VuZXJhdG9yLCBjYWxsYmFjaykKICAgICAgICAgV2ViSW5zcGVjdG9y
LnBhbmVscy5wcm9maWxlcy5fYWRkSGVhcFNuYXBzaG90Q2h1bmsodWlkLCBKU09OLnN0cmluZ2lm
eShzbmFwc2hvdCkpOwogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLl9maW5p
c2hIZWFwU25hcHNob3QodWlkKTsKICAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5vdmVycmlkZShQ
cm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgcHVzaEdlbmVyYXRlZFNuYXBzaG90KTsK
KyAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKEhlYXBQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNu
YXBzaG90IiwgcHVzaEdlbmVyYXRlZFNuYXBzaG90KTsKICAgICBJbnNwZWN0b3JUZXN0Ll90YWtl
QW5kT3BlblNuYXBzaG90Q2FsbGJhY2sgPSBjYWxsYmFjazsKICAgICBXZWJJbnNwZWN0b3IucGFu
ZWxzLnByb2ZpbGVzLmFkZFByb2ZpbGVIZWFkZXIocHJvZmlsZSk7CiAgICAgV2ViSW5zcGVjdG9y
LnBhbmVscy5wcm9maWxlcy5zaG93UHJvZmlsZShwcm9maWxlKTsKZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MTk0MDM0ZDExMDg3ZDU5MjIxNzdiMTAzOGI2MjYxZmNlZmNkNGRhNC4uMWE2ODY0MDVlZWE4MDdj
ODEzY2RhMWFlNTE2ZWZjYzlkMjA1ODllOSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAxMy0wMi0wNiAgQWxleGVpIEZpbGlwcG92ICA8YWxwaEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogU3BsaXQgUHJvZmlsZXIgZG9tYWluIGluIHByb3RvY29sIGlu
dG8gUHJvZmlsZXIgYW5kIEhlYXBQcm9maWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IENQVSBhbmQgaGVhcCBwcm9maWxlcnMgc2hh
cmUgdGhlIHNhbWUgZG9tYWluICdQcm9maWxlcicgaW4gdGhlIHByb3RvY29sLgorICAgICAgICBJ
biBmYWN0IHRoZXNlIHR3byBwcm9maWxlIHR5cGVzIGhhdmUgbm90IHRvbyBtdWNoIGluIGNvbW1v
bi4gU28gcHV0IGVhY2ggaW50byBpdHMgb3duIGRvbWFpbi4KKyAgICAgICAgSXQgc2hvdWxkIGFs
c28gaGVscCB3aGVuIFByb2ZpbGVzIHBhbmVsIGdldHMgc3BsaXQgaW50byBzZXZlcmFsIHRvb2xz
LgorICAgICAgICBUaGlzIGlzIHRoZSBwaGFzZSAxIHdoaWNoIGFkZHMgSW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQgYnV0IGRvZXNuJ3QKKyAgICAgICAgY2hhbmdlIHRoZSBvcmlnaW5hbCBJbnNw
ZWN0b3JQcm9maWxlckFnZW50LgorCisgICAgICAgICogaW5zcGVjdG9yL2hlYXAtc25hcHNob3Qt
cGVyZm9ybWFuY2UtdGVzdC5qczoKKyAgICAgICAgKHRlc3QucGVyZm9ybWFuY2VUZXN0LmNsZWFu
dXApOgorCiAyMDEzLTAyLTA1ICBEb21pbmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hl
c0BpbnRlbC5jb20+CiAKICAgICAgICAgQWRkIGEgcGVyZm9ybWFuY2UgdGVzdCBmb3IgYXJhYmlj
IGxpbmUgYnJlYWtpbmcKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvaW5zcGVjdG9yL2hl
YXAtc25hcHNob3QtcGVyZm9ybWFuY2UtdGVzdC5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvaW5zcGVj
dG9yL2hlYXAtc25hcHNob3QtcGVyZm9ybWFuY2UtdGVzdC5qcwppbmRleCA5YzM5NTgyNjE4NWMy
ZjRiMWU5OTcwOTM0OWQwY2FjOTExZTc3NWVlLi5hZDk0N2I4MWM1ZjAwYmNjZmY3NzkyYzhmOWUw
ODcxZDAzZjI0ZjE5IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL2luc3BlY3Rvci9oZWFw
LXNuYXBzaG90LXBlcmZvcm1hbmNlLXRlc3QuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9pbnNw
ZWN0b3IvaGVhcC1zbmFwc2hvdC1wZXJmb3JtYW5jZS10ZXN0LmpzCkBAIC0yNyw3ICsyNyw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB2YXIgdGVzdE5hbWUgPSAvKFteXC9dKylcLmh0bWwk
Ly5leGVjKFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlVVJMKVsxXTsKICAgICAgICAgdmFyIGZ1
bGxUaW1lckNvb2tpZSA9IHRpbWVyLnN0YXJ0KCJmdWxsLXN1bW1hcnktc25hcHNob3QtdGltZSIp
OwogICAgICAgICB2YXIgYmFja2VuZFRpbWVyQ29va2llID0gdGltZXIuc3RhcnQoInRha2Utc25h
cHNob3QiKTsKLSAgICAgICAgUHJvZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KHN0ZXAwKTsK
KyAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFwc2hvdChzdGVwMCk7CiAKICAg
ICAgICAgZnVuY3Rpb24gc3RlcDAoKQogICAgICAgICB7CkBAIC01OSw3ICs1OSw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgdGltZXIuZmluaXNoKGNoYW5nZVZpZXdUaW1lckNvb2tp
ZSk7CiAgICAgICAgICAgICB0aW1lci5maW5pc2goZnVsbFRpbWVyQ29va2llKTsKICAgICAgICAg
ICAgIGNsZWFyVGltZXJDb29raWUgPSB0aW1lci5zdGFydCgiY2xlYXItc25hcHNob3QiKTsKLSAg
ICAgICAgICAgIFByb2ZpbGVyQWdlbnQuY2xlYXJQcm9maWxlcyhkb25lKTsKKyAgICAgICAgICAg
IEhlYXBQcm9maWxlckFnZW50LmNsZWFyUHJvZmlsZXMoZG9uZSk7CiAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLl9yZXNldCgpOwogICAgICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187071</attachid>
            <date>2013-02-07 05:32:29 -0800</date>
            <delta_ts>2013-02-08 08:21:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108653-20130207172904.patch</filename>
            <type>text/plain</type>
            <size>66849</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM2Njk2M2Y4MmNjODIx
MGEyMTE5MWU5MWIzYzVhOWQ1ZTNiYTM1MS4uNWIwOTQ5MDM1NjgwYjdhODVmMmJlMThmN2I3Njkx
YjdjNmU4ZDExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDEzLTAyLTA3ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wgaW50byBQcm9maWxlciBhbmQgSGVh
cFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0aGUgc2FtZSBkb21haW4g
J1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIEluIGZhY3QgdGhlc2UgdHdvIHBy
b2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29tbW9uLiBTbyBwdXQgZWFjaCBpbnRv
IGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQgYWxzbyBoZWxwIHdoZW4gUHJvZmls
ZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9vbHMuCisgICAgICAgIFRoaXMgaXMg
dGhlIHBoYXNlIDEgd2hpY2ggYWRkcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCBidXQgZG9l
c24ndAorICAgICAgICBjaGFuZ2UgdGhlIG9yaWdpbmFsIEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6
On5JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVzKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpzZXRGcm9udGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y2xlYXJGcm9udGVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzdG9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y29sbGVjdEdh
cmJhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNy
ZWF0ZVNuYXBzaG90SGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpoYXNIZWFwUHJvZmlsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGVIZWFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRIZWFwU25hcHNob3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJlbW92ZVByb2ZpbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnRha2VIZWFwU25hcHNo
b3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmdldE9i
amVjdEJ5SGVhcE9iamVjdElkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpnZXRIZWFwT2JqZWN0SWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjbGVhclByb2ZpbGVzKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21t
aXRMb2FkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5zdHJ1bWVudGluZ0FnZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjppbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5vZGUucHJvdG90eXBlLnF1ZXJ5T2JqZWN0Q29udGVu
dCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5zdGFydFNu
YXBzaG90VHJhbnNmZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVy
LnByb3RvdHlwZS5zYXZlVG9GaWxlLm9uT3Blbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVh
cFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLnNhdmVUb0ZpbGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZS5fY2xlYXJQcm9maWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUuX2dhcmJhZ2VDb2xsZWN0QnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3JlbW92ZVByb2ZpbGVIZWFkZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZVByb2Zp
bGVzLnZhcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUu
X3BvcHVsYXRlUHJvZmlsZXMucG9wdWxhdGVDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlUHJvZmlsZXMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnRha2VIZWFwU25hcHNob3QpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnJldmVhbEluVmll
dyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUuYWRkUHJv
ZmlsZUhlYWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hl
ci5wcm90b3R5cGUuYWRkSGVhcFNuYXBzaG90Q2h1bmspOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkhlYXBQcm9maWxlckRpc3BhdGNoZXIucHJvdG90eXBlLmZpbmlzaEhlYXBTbmFwc2hvdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUucmVz
ZXRQcm9maWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hl
ci5wcm90b3R5cGUucmVwb3J0SGVhcFNuYXBzaG90UHJvZ3Jlc3MpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsLnByb3RvdHlwZS5fZ2FyYmFnZUNvbGxlY3RCdXR0b25DbGlja2VkKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5kb0xvYWRlZERvbmUpOgorCiAyMDEzLTAyLTA3ICBDaGFuZ1Nlb2sgT2ggIDxzaGl2
YW1pZG93QGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXVtBQ10gSW1wbGVtZW50IG9wYWNpdHkg
YW5pbWF0aW9uIHdpdGggY2x1dHRlciBhYyBiYWNrZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDU2NTQ2NDdkYjc4Njg5YmY0NTRlMTI4ZjA0ZWMwYTE3N2U3NzQ0ZTAuLmM5ZTM0YjRi
NGRmNDk0Mzc5NDc0MDg0ZWM4MzI5NDgwMTg3YTYyZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDItMDcgIEFsZXhlaSBGaWxpcHBvdiAgPGFscGhA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNwbGl0IFByb2ZpbGVyIGRv
bWFpbiBpbiBwcm90b2NvbCBpbnRvIFByb2ZpbGVyIGFuZCBIZWFwUHJvZmlsZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODY1MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSBDUFUgYW5k
IGhlYXAgcHJvZmlsZXJzIHNoYXJlIHRoZSBzYW1lIGRvbWFpbiAnUHJvZmlsZXInIGluIHRoZSBw
cm90b2NvbC4KKyAgICAgICAgSW4gZmFjdCB0aGVzZSB0d28gcHJvZmlsZSB0eXBlcyBoYXZlIG5v
dCB0b28gbXVjaCBpbiBjb21tb24uIFNvIHB1dCBlYWNoIGludG8gaXRzIG93biBkb21haW4uCisg
ICAgICAgIEl0IHNob3VsZCBhbHNvIGhlbHAgd2hlbiBQcm9maWxlcyBwYW5lbCBnZXRzIHNwbGl0
IGludG8gc2V2ZXJhbCB0b29scy4KKyAgICAgICAgVGhpcyBpcyB0aGUgcGhhc2UgMSB3aGljaCBh
ZGRzIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50IGJ1dCBkb2Vzbid0CisgICAgICAgIGNoYW5n
ZSB0aGUgb3JpZ2luYWwgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC4KKworICAgICAgICAqIHNyYy9X
ZWJEZXZUb29sc0FnZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdl
bnQ6OnNob3VsZEludGVycnVwdEZvck1lc3NhZ2UpOgorCiAyMDEzLTAyLTA3ICBEYXZpZCBUcmFp
bm9yICA8ZHRyYWlub3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBudWxsIGNoZWNrIHRv
IGVkaXRhYmxlIGluIG1vdmVDYXJldFNlbGVjdGlvblRvd2FyZHNXaW5kb3dQb2ludApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCBiZmQ1MWZkODFhMzQ2MjcyMmM4MjQzMmUzYTNlZDg0YTkyYWUxYTdk
Li5iNDFhNTI3ZWViYTgwZWNiZjUxNDI2ZDc4MGI0ZjA0ODU5MTg5YTBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMTYzNyw2ICsxNjM3LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3Bw
CiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckhpc3RvcnkuY3BwCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckluZGV4ZWREQkFnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZTA3MWJjYzJmM2Y5MjI2MGY3
MjMxYzdiYzE0OTdmYzUzZGY0OTg3My4uNGUyOTEyZGM4ZjZjZDRjYTEyYTFlMWIzMGYwM2RkODY3
ZjFiYzkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODI3LDYgKzM4Mjcs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmggXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySGlzdG9yeS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JI
aXN0b3J5LmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJB
Z2VudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGI2OTgzYmE2NWIzZTBiYTA4ZjQzNjkxOWM5ODFiYWU1
ZmE1ZjNmYzYuLjRkZTY1ZGFkMTE1MzU3MDRhYmRmMWE4ZTQ1NWJiMTJkZWY2NjZjZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtODAwLDYgKzgwMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuY3BwIFwKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3Bw
IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5jcHAgXAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JJbnB1dEFnZW50LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAgXApAQCAtMTk5MCw2ICsxOTkxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuaCBcCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggXAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JIaXN0b3J5LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDI4YzhlN2QxZmI4ZWRiY2Y2ZmRhM2UwNmUyMTI4
NzdjMWUxNTExNzEuLmYwZGM2MjNiMmJkYjk5NGE5MGQ5ZGMzMWM5NGE4ZWU2NzMzYjlkMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTE4NzMsNiArMTg3Myw4IEBACiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kSG9zdC5oJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rv
ckhpc3RvcnkuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5o
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMDk3
Mzg0NTZhMWQyMjBlMTE4YTJiN2E3YWY0OTlhMzViMjFjZWQ5NC4uZjBmYWZlYjA5YjdkOTQzMjAx
YWRjMjIzNDYxYTYzYzIwNDI5NGM5MyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKQEAgLTc2MDI3LDYgKzc2MDI3LDMwIEBACiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3Jc
SW5zcGVjdG9ySGlzdG9yeS5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZDJl
YTUzODg0MmMzM2VkNjFhNTBlZDQ4NTlkNGI1YmY4YzRmOTQwMS4uNjRjMDRiOTA4NmQ3OTZjM2E0
MjRlNmI2YWQyZDQxMjc4NGNmY2I3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC01Njg5LDYgKzU2ODksOSBAQAogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kSG9zdC5jcHAiPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50LmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySGlzdG9yeS5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxl
PgpAQCAtODM2NCw2ICs4MzY3LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3Bl
Y3RvclxJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCIg
Lz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXElu
c3BlY3Rvckhpc3RvcnkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3Rv
clxJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caW5zcGVjdG9yXEluc3BlY3RvcklucHV0QWdlbnQuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAw
Mjk5NjNjZjFkNTRhYjllNWQzNWEyZGNkMTUzNzQwMTZkZWQzNDhjLi5kMTJjZGVkNjM4MDk5MWI4
ZDAxOWE5NWU5ZjMwNzc3ZTJiODMzNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02NDgzLDYgKzY0ODMs
OSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5jcHAiPgorICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4K
KyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JIaXN0b3J5LmNwcCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgpAQCAtMTM3NjQsNiArMTM3NjcsOSBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kSG9zdC5oIj4KICAgICAgIDxG
aWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCI+Cisg
ICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3Rvckhpc3RvcnkuaCI+CiAgICAg
ICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI2MjY3
MzZkMDI0ZjdmYjZjNDQzYmY2Zjk1NTc1ZTA4YTM3MDFmYzMuLmYxOWU4MGY5NGI5ZmZhMTMwYjJm
MWVjYTZkZThiNzRjOWVkNWI5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4MDksNiArMzgwOSw4IEBACiAJCTlCRjlBODgx
MTY0OEREMkYwMDFDNkIyMyAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkY5QTg3RjE2NDhERDJG
MDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5RjBE
NkIyRTEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjBENkIyQzEyMUJGRUJB
MDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgKi87IH07CiAJCTlGMEQ2QjJG
MTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjBENkIyRDEyMUJGRUJBMDA2QzAy
ODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oICovOyB9OworCQk1MTEyOTM1RjNENTRCNEI1
MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMjkzNjEzRDZEQjRCNTJGQUY5NzNG
IC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCAqLzsgfTsKKwkJNTExMjkzNjAzRDYw
QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEyOTM2MjNEODVCNEI1MkZBRjk3
M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCAqLzsgfTsKIAkJOUYzQjk0N0UxMjI0
MTc1ODAwNTMwNEU3IC8qIFNjcmlwdEhlYXBTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUYzQjk0N0QxMjI0MTc1ODAwNTMwNEU3IC8qIFNj
cmlwdEhlYXBTbmFwc2hvdC5oICovOyB9OwogCQk5RjZGQzE5NjExMjJFODJBMDBFODAxOTYgLyog
U2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUY2RkMxOTQxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVy
LmNwcCAqLzsgfTsKIAkJOUY2RkMxOTcxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2Vy
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjZG
QzE5NTExMjJFODJBMDBFODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTEyNTEsNiArMTEyNTMsOCBA
QAogCQk5QkY5QTg3RjE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVj
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxGb3JtQ29udHJv
bHNDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGMEQ2QjJDMTIx
QkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjBENkIyRDEyMUJGRUJBMDA2QzAyODggLyogSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JQcm9maWxlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
MTI5MzYxM0Q2REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMTI5MzYyM0Q4NUI0
QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5RjNCOTQ3RDEyMjQxNzU4MDA1MzA0RTcgLyogU2NyaXB0
SGVhcFNuYXBzaG90LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEhl
YXBTbmFwc2hvdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjZGQzE5NDExMjJF
ODJBMDBFODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5RjZGQzE5NTExMjJFODJBMDBFODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RGVidWdTZXJ2ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MTU1LDYgKzE1MTU5LDggQEAKIAkJ
CQk3QTBFNzcwQjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCAq
LywKIAkJCQk3QTBFNzcwQzEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LmggKi8sCiAJCQkJN0EwRTc3MEQxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5k
SG9zdC5pZGwgKi8sCisJCQkJNTExMjkzNjEzRDZEQjRCNTJGQUY5NzNGIC8qIEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50LmNwcCAqLywKKwkJCQk1MTEyOTM2MjNEODVCNEI1MkZBRjk3M0YgLyog
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCAqLywKIAkJCQk3QTU0ODU3RDE0RTAyRDUxMDA2
QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5jcHAgKi8sCiAJCQkJN0E1NDg1N0UxNEUwMkQ1MTAw
NkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuaCAqLywKIAkJCQk3QUNEODhEMTE0QzA4QkQ2MDA4
NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwICovLApAQCAtMjQ1NTcsNiArMjQ1
NjMsNyBAQAogCQkJCUYzNDRDNzE0MTEyNUI4MkMwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3NTMxMTI5NEQ5RDAwRjI2RUVFIC8q
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBMEU3
NzBGMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTUxMTI5MzYwM0Q2MEI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E1NDg1ODAxNEUwMkQ1MTAwNkFFMDVBIC8q
IEluc3BlY3Rvckhpc3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQ0Q4OEQ0MTRDMDhCRDYw
MDg0RUREMiAvKiBJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NEQyNzNDRkExNjY5NDIwODAwMjU5Q0ExIC8qIEluc3BlY3RvcklucHV0QWdlbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjc4MjgsNiArMjc4MzUsNyBAQAogCQkJCTRGNEY1RkZCMTFDQkQyRTEwMEEx
ODZCRiAvKiBJbnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzQ0Qzc1
ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMTI5MzVGM0Q1NEI0QjUyRkFGOTcz
RiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
QTU0ODU3RjE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QUNEODhEMzE0QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERC
QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEQyNzNDRjkxNjY5NDIwODAwMjU5Q0ExIC8q
IEluc3BlY3RvcklucHV0QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggMjJmMjc1MWIxMWE0OTQzNzUyOWVmZjc3YmM0NjU5
YTdhZWYzZGRjMi4uMTBlNjE2NWU1NjBkOTUzZWZlZjI3YjI1MTk1YjIyYzNkOTNjYzVmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMzI0MCw2ICszMjQwLDEx
NSBAQAogICAgICAgICBdCiAgICAgfSwKICAgICB7CisgICAgICAgICJkb21haW4iOiAiSGVhcFBy
b2ZpbGVyIiwKKyAgICAgICAgImhpZGRlbiI6IHRydWUsCisgICAgICAgICJ0eXBlcyI6IFsKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiaWQiOiAiUHJvZmlsZUhlYWRlciIsCisgICAg
ICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiUHJvZmlsZSBoZWFkZXIuIiwKKyAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aXRsZSIsICJ0eXBlIjogInN0cmluZyIs
ICJkZXNjcmlwdGlvbiI6ICJQcm9maWxlIHRpdGxlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJ1aWQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlVuaXF1
ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9maWxlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJtYXhKU09iamVjdElkIiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJMYXN0IHNlZW4gSlMgb2JqZWN0IElkLiIgfQorICAgICAgICAg
ICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ImlkIjogIkhlYXBTbmFwc2hvdE9iamVjdElkIiwKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJz
dHJpbmciLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIZWFwIHNuYXNob3Qgb2Jq
ZWN0IGlkLiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgImNvbW1hbmRzIjog
WworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImhhc0hlYXBQcm9maWxl
ciIsCisgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAiYm9vbGVhbiIgfQorICAgICAgICAgICAgICAgIF0K
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAi
Z2V0UHJvZmlsZUhlYWRlcnMiLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImhlYWRlcnMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVt
cyI6IHsgIiRyZWYiOiAiUHJvZmlsZUhlYWRlciJ9IH0KKyAgICAgICAgICAgICAgICBdCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImdldEhl
YXBTbmFwc2hvdCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwgInR5cGUiOiAiaW50ZWdlciIgfQorICAgICAgICAg
ICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Im5hbWUiOiAicmVtb3ZlUHJvZmlsZSIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBb
CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwgInR5cGUiOiAiaW50ZWdlciIg
fQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgIm5hbWUiOiAiY2xlYXJQcm9maWxlcyIKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAidGFrZUhlYXBTbmFwc2hvdCIsCisg
ICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicmVwb3J0UHJvZ3Jlc3MiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1
ZSwgImRlc2NyaXB0aW9uIjogIklmIHRydWUgJ3JlcG9ydEhlYXBTbmFwc2hvdFByb2dyZXNzJyBl
dmVudHMgd2lsbCBiZSBnZW5lcmF0ZWQgd2hpbGUgc25hcHNob3QgaXMgYmVpbmcgdGFrZW4uIiB9
CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAibmFtZSI6ICJjb2xsZWN0R2FyYmFnZSIKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0T2JqZWN0QnlIZWFwT2JqZWN0
SWQiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogIm9iamVjdElkIiwgIiRyZWYiOiAiSGVhcFNuYXBzaG90T2JqZWN0SWQiIH0s
CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0R3JvdXAiLCAidHlwZSI6ICJz
dHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3ltYm9saWMgZ3JvdXAg
bmFtZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlbGVhc2UgbXVsdGlwbGUgb2JqZWN0cy4iIH0KKyAg
ICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIkcmVmIjogIlJ1bnRpbWUuUmVtb3RlT2Jq
ZWN0IiwgImRlc2NyaXB0aW9uIjogIkV2YWx1YXRpb24gcmVzdWx0LiIgfQorICAgICAgICAgICAg
ICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5h
bWUiOiAiZ2V0SGVhcE9iamVjdElkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjogIlJ1bnRp
bWUuUmVtb3RlT2JqZWN0SWQiLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0aGUgb2Jq
ZWN0IHRvIGdldCBoZWFwIG9iamVjdCBpZCBmb3IuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAg
ICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJoZWFwU25hcHNob3RPYmplY3RJZCIsICIkcmVmIjogIkhlYXBTbmFwc2hvdE9iamVjdElkIiwg
ImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBoZWFwIHNuYXBzaG90IG9iamVjdCBjb3JyZXNwb25k
aW5nIHRvIHRoZSBwYXNzZWQgcmVtb3RlIG9iamVjdCBpZC4iIH0KKyAgICAgICAgICAgICAgICBd
CisgICAgICAgICAgICB9CisgICAgICAgIF0sCisgICAgICAgICJldmVudHMiOiBbCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiYWRkUHJvZmlsZUhlYWRlciIsCisgICAg
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiaGVhZGVyIiwgIiRyZWYiOiAiUHJvZmlsZUhlYWRlciIgfQorICAgICAgICAgICAgICAgIF0K
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAi
YWRkSGVhcFNuYXBzaG90Q2h1bmsiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0eXBlIjogImludGVnZXIiIH0s
CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2h1bmsiLCAidHlwZSI6ICJzdHJpbmci
IH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICJuYW1lIjogImZpbmlzaEhlYXBTbmFwc2hvdCIsCisgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwg
InR5cGUiOiAiaW50ZWdlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVzZXRQcm9maWxlcyIKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVw
b3J0SGVhcFNuYXBzaG90UHJvZ3Jlc3MiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbmUiLCAidHlwZSI6ICJpbnRlZ2Vy
IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRvdGFsIiwgInR5cGUiOiAiaW50
ZWdlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0KKyAgICAgICAgXQorICAg
IH0sCisgICAgewogICAgICAgICAiZG9tYWluIjogIldvcmtlciIsCiAgICAgICAgICJoaWRkZW4i
OiB0cnVlLAogICAgICAgICAidHlwZXMiOiBbXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCmluZGV4IDljOWZmMjA4NTljMmQ4Y2I4NTYzNDdkNjdi
ODExMzFhN2JiODllYmYuLjY3Y2VhNDYwZTIwZTE5ZjJkYWZjZmM5NWNkZDNhNjc2YjgyMDk5Mzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcApA
QCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCIKKyNpbmNsdWRlICJJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySGlzdG9yeS5jcHAiCiAjaW5jbHVkZSAi
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvcklucHV0QWdl
bnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCmluZGV4IGYzZGE4MDhjMjkzZjNjNjQwYTNlOTBmZjcwZjc5ZTNmMGVmYmZmMmEuLmRm
NTBkMGUxNjIzZDhmMjAwNzMzMzM5MzI0MmM1M2YyYjc3OWUxN2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTU0LDYgKzU0LDcg
QEAKICNpbmNsdWRlICJJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmgiCisj
aW5jbHVkZSAiSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JJbmRleGVkREJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvcklucHV0QWdlbnQuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKQEAgLTE1Miw2ICsxNTMsOSBAQCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBhZ2UsIEluc3Bl
Y3RvckNsaWVudCogaW5zcGVjdG9yQwogICAgIE93blB0cjxJbnNwZWN0b3JQcm9maWxlckFnZW50
PiBwcm9maWxlckFnZW50UHRyKEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIGNvbnNvbGVBZ2VudCwgcGFnZSwgbV9zdGF0ZS5nZXQoKSwg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKICAgICBtX3Byb2ZpbGVyQWdlbnQgPSBw
cm9maWxlckFnZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChwcm9maWxlckFnZW50
UHRyLnJlbGVhc2UoKSk7CisKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0
KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisKICNlbmRpZgogCiAjaWYgRU5B
QkxFKFdPUktFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGM0OTg0ZmNjMTA5NzZmOTI3
ZTk4N2FmYzcwMzA5YTYyNjMwNTRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcApAQCAtMCwwICsxLDI1MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENv
bXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikg
JiYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIkluc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50LmgiCisKKyNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgorI2luY2x1ZGUgIkluamVjdGVk
U2NyaXB0SG9zdC5oIgorI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKKyNpbmNsdWRl
ICJTY3JpcHRQcm9maWxlci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3QgY2hhciogY29uc3Qg
VXNlckluaXRpYXRlZFByb2ZpbGVOYW1lID0gIm9yZy53ZWJraXQucHJvZmlsZXMudXNlci1pbml0
aWF0ZWQiOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IEhlYXBQcm9maWxlVHlwZSA9ICJIRUFQ
IjsKKworUGFzc093blB0cjxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVk
U2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQoreworICAgIHJldHVybiBhZG9w
dFB0cihuZXcgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywg
aW5zcGVjdG9yU3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOworfQorCitJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGlu
c3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdl
cikKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4o
IkhlYXBQcm9maWxlciIsIGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQorICAg
ICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgICwg
bV9mcm9udGVuZCgwKQorICAgICwgbV9oZWFkZXJzUmVxdWVzdGVkKGZhbHNlKQorICAgICwgbV9u
ZXh0VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlcigxKQoreworICAgIG1faW5zdHJ1bWVu
dGluZ0FnZW50cy0+c2V0SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQodGhpcyk7Cit9CisKK0lu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojp+SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoKQor
eworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnQoMCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJlc2V0U3RhdGUo
KQoreworICAgIG1fc25hcHNob3RzLmNsZWFyKCk7CisgICAgbV9uZXh0VXNlckluaXRpYXRlZEhl
YXBTbmFwc2hvdE51bWJlciA9IDE7CisgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7CisgICAg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgpLT5jbGVhckluc3Bl
Y3RlZE9iamVjdHMoKTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVz
ZXRGcm9udGVuZFByb2ZpbGVzKCkKK3sKKyAgICBpZiAobV9oZWFkZXJzUmVxdWVzdGVkICYmIG1f
ZnJvbnRlbmQgJiYgbV9zbmFwc2hvdHMuaXNFbXB0eSgpKQorICAgICAgICBtX2Zyb250ZW5kLT5y
ZXNldFByb2ZpbGVzKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnNl
dEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKK3sKKyAgICBtX2Zyb250ZW5k
ID0gZnJvbnRlbmQtPmhlYXBwcm9maWxlcigpOworfQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpjbGVhckZyb250ZW5kKCkKK3sKKyAgICBtX2hlYWRlcnNSZXF1ZXN0ZWQgPSBm
YWxzZTsKKyAgICBtX2Zyb250ZW5kID0gMDsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudDo6cmVzdG9yZSgpCit7CisgICAgLy8gUmV2aXNpdCB0aGlzLgorICAgIG1faGVhZGVy
c1JlcXVlc3RlZCA9IHRydWU7CisgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNvbGxlY3RHYXJiYWdlKFdlYkNvcmU6OkVy
cm9yU3RyaW5nKikKK3sKKyAgICBTY3JpcHRQcm9maWxlcjo6Y29sbGVjdEdhcmJhZ2UoKTsKK30K
KworUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiBJ
bnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlU25hcHNob3RIZWFkZXIoY29uc3QgU2Ny
aXB0SGVhcFNuYXBzaG90JiBzbmFwc2hvdCkKK3sKKyAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6Okhl
YXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcj4gaGVhZGVyID0gVHlwZUJ1aWxkZXI6OkhlYXBQcm9m
aWxlcjo6UHJvZmlsZUhlYWRlcjo6Y3JlYXRlKCkKKyAgICAgICAgLnNldFVpZChzbmFwc2hvdC51
aWQoKSkKKyAgICAgICAgLnNldFRpdGxlKHNuYXBzaG90LnRpdGxlKCkpOworICAgIGhlYWRlci0+
c2V0TWF4SlNPYmplY3RJZChzbmFwc2hvdC5tYXhTbmFwc2hvdEpTT2JqZWN0SWQoKSk7CisgICAg
cmV0dXJuIGhlYWRlci5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQ6Omhhc0hlYXBQcm9maWxlcihFcnJvclN0cmluZyosIGJvb2wqIHJlc3VsdCkKK3sKKyAg
ICAqcmVzdWx0ID0gU2NyaXB0UHJvZmlsZXI6Omhhc0hlYXBQcm9maWxlcigpOworfQorCit2b2lk
IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRQcm9maWxlSGVhZGVycyhFcnJvclN0cmlu
ZyosIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkhlYXBQcm9maWxlcjo6
UHJvZmlsZUhlYWRlcj4gPiYgaGVhZGVycykKK3sKKyAgICBtX2hlYWRlcnNSZXF1ZXN0ZWQgPSB0
cnVlOworICAgIGhlYWRlcnMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkhlYXBQ
cm9maWxlcjo6UHJvZmlsZUhlYWRlcj46OmNyZWF0ZSgpOworCisgICAgSGVhcFNuYXBzaG90c01h
cDo6aXRlcmF0b3Igc25hcHNob3RzRW5kID0gbV9zbmFwc2hvdHMuZW5kKCk7CisgICAgZm9yIChI
ZWFwU25hcHNob3RzTWFwOjppdGVyYXRvciBpdCA9IG1fc25hcHNob3RzLmJlZ2luKCk7IGl0ICE9
IHNuYXBzaG90c0VuZDsgKytpdCkKKyAgICAgICAgaGVhZGVycy0+YWRkSXRlbShjcmVhdGVTbmFw
c2hvdEhlYWRlcigqaXQtPnZhbHVlKSk7Cit9CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIE91dHB1
dFN0cmVhbSA6IHB1YmxpYyBTY3JpcHRIZWFwU25hcHNob3Q6Ok91dHB1dFN0cmVhbSB7CitwdWJs
aWM6CisgICAgT3V0cHV0U3RyZWFtKEluc3BlY3RvckZyb250ZW5kOjpIZWFwUHJvZmlsZXIqIGZy
b250ZW5kLCB1bnNpZ25lZCB1aWQpCisgICAgICAgIDogbV9mcm9udGVuZChmcm9udGVuZCksIG1f
dWlkKHVpZCkgeyB9CisgICAgdm9pZCBXcml0ZShjb25zdCBTdHJpbmcmIGNodW5rKSB7IG1fZnJv
bnRlbmQtPmFkZEhlYXBTbmFwc2hvdENodW5rKG1fdWlkLCBjaHVuayk7IH0KKyAgICB2b2lkIENs
b3NlKCkgeyBtX2Zyb250ZW5kLT5maW5pc2hIZWFwU25hcHNob3QobV91aWQpOyB9Citwcml2YXRl
OgorICAgIEluc3BlY3RvckZyb250ZW5kOjpIZWFwUHJvZmlsZXIqIG1fZnJvbnRlbmQ7CisgICAg
aW50IG1fdWlkOworfTsKKworfSAvLyBuYW1lc3BhY2UKKwordm9pZCBJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudDo6Z2V0SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50
IHJhd1VpZCkKK3sKKyAgICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmF3
VWlkKTsKKyAgICBIZWFwU25hcHNob3RzTWFwOjppdGVyYXRvciBpdCA9IG1fc25hcHNob3RzLmZp
bmQodWlkKTsKKyAgICBpZiAoaXQgPT0gbV9zbmFwc2hvdHMuZW5kKCkpIHsKKyAgICAgICAgKmVy
cm9yU3RyaW5nID0gIlByb2ZpbGUgd2Fzbid0IGZvdW5kIjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBSZWZQdHI8U2NyaXB0SGVhcFNuYXBzaG90PiBzbmFwc2hvdCA9IGl0LT52YWx1ZTsK
KyAgICBpZiAobV9mcm9udGVuZCkgeworICAgICAgICBPdXRwdXRTdHJlYW0gc3RyZWFtKG1fZnJv
bnRlbmQsIHVpZCk7CisgICAgICAgIHNuYXBzaG90LT53cml0ZUpTT04oJnN0cmVhbSk7CisgICAg
fQorfQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpyZW1vdmVQcm9maWxlKEVy
cm9yU3RyaW5nKiwgaW50IHJhd1VpZCkKK3sKKyAgICB1bnNpZ25lZCB1aWQgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4ocmF3VWlkKTsKKyAgICBpZiAobV9zbmFwc2hvdHMuY29udGFpbnModWlkKSkK
KyAgICAgICAgbV9zbmFwc2hvdHMucmVtb3ZlKHVpZCk7Cit9CisKK25hbWVzcGFjZSB7CisKK2Ns
YXNzIEhlYXBTbmFwc2hvdFByb2dyZXNzOiBwdWJsaWMgU2NyaXB0UHJvZmlsZXI6OkhlYXBTbmFw
c2hvdFByb2dyZXNzIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBIZWFwU25hcHNob3RQcm9ncmVz
cyhJbnNwZWN0b3JGcm9udGVuZDo6SGVhcFByb2ZpbGVyKiBmcm9udGVuZCkKKyAgICAgICAgOiBt
X2Zyb250ZW5kKGZyb250ZW5kKSB7IH0KKyAgICB2b2lkIFN0YXJ0KGludCB0b3RhbFdvcmspCisg
ICAgeworICAgICAgICBtX3RvdGFsV29yayA9IHRvdGFsV29yazsKKyAgICB9CisgICAgdm9pZCBX
b3JrZWQoaW50IHdvcmtEb25lKQorICAgIHsKKyAgICAgICAgaWYgKG1fZnJvbnRlbmQpCisgICAg
ICAgICAgICBtX2Zyb250ZW5kLT5yZXBvcnRIZWFwU25hcHNob3RQcm9ncmVzcyh3b3JrRG9uZSwg
bV90b3RhbFdvcmspOworICAgIH0KKyAgICB2b2lkIERvbmUoKSB7IH0KKyAgICBib29sIGlzQ2Fu
Y2VsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorcHJpdmF0ZToKKyAgICBJbnNwZWN0b3JGcm9udGVu
ZDo6SGVhcFByb2ZpbGVyKiBtX2Zyb250ZW5kOworICAgIGludCBtX3RvdGFsV29yazsKK307CisK
K307CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnRha2VIZWFwU25hcHNob3Qo
RXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiByZXBvcnRQcm9ncmVzcykKK3sKKyAgICBTdHJpbmcg
dGl0bGUgPSBtYWtlU3RyaW5nKFVzZXJJbml0aWF0ZWRQcm9maWxlTmFtZSwgJy4nLCBTdHJpbmc6
Om51bWJlcihtX25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBzaG90TnVtYmVyKSk7CisgICAgKytt
X25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBzaG90TnVtYmVyOworCisgICAgSGVhcFNuYXBzaG90
UHJvZ3Jlc3MgcHJvZ3Jlc3MocmVwb3J0UHJvZ3Jlc3MgJiYgKnJlcG9ydFByb2dyZXNzID8gbV9m
cm9udGVuZCA6IDApOworICAgIFJlZlB0cjxTY3JpcHRIZWFwU25hcHNob3Q+IHNuYXBzaG90ID0g
U2NyaXB0UHJvZmlsZXI6OnRha2VIZWFwU25hcHNob3QodGl0bGUsICZwcm9ncmVzcyk7CisgICAg
aWYgKHNuYXBzaG90KSB7CisgICAgICAgIG1fc25hcHNob3RzLmFkZChzbmFwc2hvdC0+dWlkKCks
IHNuYXBzaG90KTsKKyAgICAgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgICAgICBtX2Zyb250
ZW5kLT5hZGRQcm9maWxlSGVhZGVyKGNyZWF0ZVNuYXBzaG90SGVhZGVyKCpzbmFwc2hvdCkpOwor
ICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Z2V0T2JqZWN0QnlI
ZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcmIGhlYXBTbmFwc2hv
dE9iamVjdElkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8VHlwZUJ1aWxkZXI6
OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCkKK3sKKyAgICBib29sIG9rOworICAgIHVu
c2lnbmVkIGlkID0gaGVhcFNuYXBzaG90T2JqZWN0SWQudG9VSW50KCZvayk7CisgICAgaWYgKCFv
aykgeworICAgICAgICAqZXJyb3IgPSAiSW52YWxpZCBoZWFwIHNuYXBzaG90IG9iamVjdCBpZCI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgU2NyaXB0T2JqZWN0IGhlYXBPYmplY3QgPSBT
Y3JpcHRQcm9maWxlcjo6b2JqZWN0QnlIZWFwT2JqZWN0SWQoaWQpOworICAgIGlmIChoZWFwT2Jq
ZWN0Lmhhc05vVmFsdWUoKSkgeworICAgICAgICAqZXJyb3IgPSAiT2JqZWN0IGlzIG5vdCBhdmFp
bGFibGUiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEluamVjdGVkU2NyaXB0IGluamVj
dGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yKGhl
YXBPYmplY3Quc2NyaXB0U3RhdGUoKSk7CisgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05vVmFs
dWUoKSkgeworICAgICAgICAqZXJyb3IgPSAiT2JqZWN0IGlzIG5vdCBhdmFpbGFibGUuIEluc3Bl
Y3RlZCBjb250ZXh0IGlzIGdvbmUiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHJlc3Vs
dCA9IGluamVjdGVkU2NyaXB0LndyYXBPYmplY3QoaGVhcE9iamVjdCwgb2JqZWN0R3JvdXAgPyAq
b2JqZWN0R3JvdXAgOiAiIik7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICplcnJvciA9ICJG
YWlsZWQgdG8gd3JhcCBvYmplY3QiOworfQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50OjpnZXRIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJp
bmcmIG9iamVjdElkLCBTdHJpbmcqIGhlYXBTbmFwc2hvdE9iamVjdElkKQoreworICAgIEluamVj
dGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVj
dGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOworICAgIGlmIChpbmplY3RlZFNjcmlwdC5o
YXNOb1ZhbHVlKCkpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIkluc3BlY3RlZCBjb250ZXh0
IGhhcyBnb25lIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBTY3JpcHRWYWx1ZSB2YWx1
ZSA9IGluamVjdGVkU2NyaXB0LmZpbmRPYmplY3RCeUlkKG9iamVjdElkKTsKKyAgICBpZiAodmFs
dWUuaGFzTm9WYWx1ZSgpIHx8IHZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAgICAgKmVycm9y
U3RyaW5nID0gIk9iamVjdCB3aXRoIGdpdmVuIGlkIG5vdCBmb3VuZCI7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgdW5zaWduZWQgaWQgPSBTY3JpcHRQcm9maWxlcjo6Z2V0SGVhcE9iamVj
dElkKHZhbHVlKTsKKyAgICAqaGVhcFNuYXBzaG90T2JqZWN0SWQgPSBTdHJpbmc6Om51bWJlcihp
ZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVt
b3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5
cGVzOjpJbnNwZWN0b3JQcm9maWxlckFnZW50KTsKKyAgICBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5z
cGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ+OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJ
bmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2luamVjdGVkU2NyaXB0TWFuYWdlciwgImluamVj
dGVkU2NyaXB0TWFuYWdlciIpOworICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9mcm9udGVuZCk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9zbmFwc2hvdHMsICJzbmFwc2hvdHMiKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdH
RVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3ZWY3MWNjYjI3
MWRlZDhhN2U2ODZlYjg5MTgyOGZkZWE0YzA5ODIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaApAQCAtMCwwICsx
LDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50X2gKKyNkZWZpbmUgSW5z
cGVjdG9ySGVhcFByb2ZpbGVyQWdlbnRfaAorCisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdH
RVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJbnNwZWN0b3JCYXNlQWdlbnQu
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEluamVjdGVkU2NyaXB0TWFu
YWdlcjsKK2NsYXNzIFNjcmlwdEhlYXBTbmFwc2hvdDsKK2NsYXNzIFNjcmlwdFByb2ZpbGU7CisK
K3R5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOworCitjbGFzcyBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OkhlYXBQcm9maWxlckNv
bW1hbmRIYW5kbGVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzT3duUHRyPEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKik7CisgICAgdmlydHVhbCB+SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoKTsKKworICAg
IHZvaWQgYWRkUHJvZmlsZShQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+IHBycFByb2ZpbGUsIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKyAgICB2b2lkIGFk
ZFByb2ZpbGVGaW5pc2hlZE1lc3NhZ2VUb0NvbnNvbGUoUGFzc1JlZlB0cjxTY3JpcHRQcm9maWxl
PiwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOworICAgIHZv
aWQgYWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgdGl0bGUs
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKKyAgICB2aXJ0
dWFsIHZvaWQgY29sbGVjdEdhcmJhZ2UoRXJyb3JTdHJpbmcqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJQcm9maWxlcyhFcnJvclN0cmluZyopIHsgcmVzZXRTdGF0ZSgpOyB9CisgICAgdm9pZCBy
ZXNldFN0YXRlKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgaGFzSGVhcFByb2ZpbGVyKEVycm9yU3Ry
aW5nKiwgYm9vbCopOworCisgICAgdmlydHVhbCB2b2lkIGdldFByb2ZpbGVIZWFkZXJzKEVycm9y
U3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6SGVhcFByb2Zp
bGVyOjpQcm9maWxlSGVhZGVyPiA+Jik7CisgICAgdmlydHVhbCB2b2lkIGdldEhlYXBTbmFwc2hv
dChFcnJvclN0cmluZyosIGludCB1aWQpOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQcm9maWxl
KEVycm9yU3RyaW5nKiwgaW50IHVpZCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQo
SW5zcGVjdG9yRnJvbnRlbmQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOwor
ICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgdGFrZUhlYXBT
bmFwc2hvdChFcnJvclN0cmluZyosIGNvbnN0IGJvb2wqIHJlcG9ydFByb2dyZXNzKTsKKworICAg
IHZpcnR1YWwgdm9pZCBnZXRPYmplY3RCeUhlYXBPYmplY3RJZChFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgaGVhcFNuYXBzaG90T2JqZWN0SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAs
IFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0KTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0SGVhcE9iamVjdElkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
JiBvYmplY3RJZCwgU3RyaW5nKiBoZWFwU25hcHNob3RPYmplY3RJZCk7CisKKyAgICB2aXJ0dWFs
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURF
OworCisgICAgdm9pZCB3aWxsUHJvY2Vzc1Rhc2soKTsKKyAgICB2b2lkIGRpZFByb2Nlc3NUYXNr
KCk7CisKK3Byb3RlY3RlZDoKKyAgICBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1h
bmFnZXIqKTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIFJlZlB0
cjxTY3JpcHRIZWFwU25hcHNob3Q+ID4gSGVhcFNuYXBzaG90c01hcDsKKworICAgIHZvaWQgcmVz
ZXRGcm9udGVuZFByb2ZpbGVzKCk7CisKKyAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpIZWFw
UHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+IGNyZWF0ZVNuYXBzaG90SGVhZGVyKGNvbnN0IFNjcmlw
dEhlYXBTbmFwc2hvdCYpOworCisgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBtX2luamVjdGVk
U2NyaXB0TWFuYWdlcjsKKyAgICBJbnNwZWN0b3JGcm9udGVuZDo6SGVhcFByb2ZpbGVyKiBtX2Zy
b250ZW5kOworICAgIGJvb2wgbV9oZWFkZXJzUmVxdWVzdGVkOworICAgIHVuc2lnbmVkIG1fbmV4
dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1iZXI7CisgICAgSGVhcFNuYXBzaG90c01hcCBt
X3NuYXBzaG90czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQorCisjZW5kaWYg
Ly8gIWRlZmluZWQoSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnRfaCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXgg
YTFmNTAxZDI0MDU1OGI4Y2ViOGNiMGRlZjEwMDZkYWI1Y2MwODlkNS4uYTMwZDE1ZjJmNjIzMjhh
N2UzNDM2ZDM4YmU3YjEwZjc3YWFkYzA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTU2LDYgKzU2LDcgQEAK
ICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckxh
eWVyVHJlZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIgpAQCAtOTI0LDYgKzkyNSw4IEBAIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIFVTRShK
U0MpCiAgICAgICAgIGlmIChJbnNwZWN0b3JQcm9maWxlckFnZW50KiBwcm9maWxlckFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUHJvZmlsZXJBZ2VudCgpKQogICAgICAgICAg
ICAgcHJvZmlsZXJBZ2VudC0+cmVzZXRTdGF0ZSgpOworICAgICAgICBpZiAoSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQqIGhlYXBQcm9maWxlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+
aW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoKSkKKyAgICAgICAgICAgIGhlYXBQcm9maWxlckFn
ZW50LT5yZXNldFN0YXRlKCk7CiAjZW5kaWYKICAgICAgICAgaWYgKEluc3BlY3RvckNTU0FnZW50
KiBjc3NBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckNTU0FnZW50KCkpCiAg
ICAgICAgICAgICBjc3NBZ2VudC0+cmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCmluZGV4IDJhODI4N2VlYzYwOWZmZmY5MDM0ZjhkZjIy
MDMzMmE2NGNiNmEzNTkuLmNkOGEyZDkyNzg0ZjI0ZmYyMmM2NjQ0NWNjMzQyZGIxYzU0YTJiMGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaApA
QCAtNDksNiArNDksNyBAQCBjbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ7CiBjbGFzcyBJ
bnNwZWN0b3JEYXRhYmFzZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDsKIGNs
YXNzIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDsKK2NsYXNzIEluc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50OwogY2xhc3MgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JQ
YWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JQcm9maWxlckFnZW50OwpAQCAtMTI3LDYgKzEyOCw5
IEBAIHB1YmxpYzoKIAogICAgIEluc3BlY3RvclByb2ZpbGVyQWdlbnQqIGluc3BlY3RvclByb2Zp
bGVyQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvclByb2ZpbGVyQWdlbnQ7IH0KICAg
ICB2b2lkIHNldEluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCog
YWdlbnQpIHsgbV9pbnNwZWN0b3JQcm9maWxlckFnZW50ID0gYWdlbnQ7IH0KKworICAgIEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50KiBpbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCgpIGNvbnN0
IHsgcmV0dXJuIG1faW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ7IH0KKyAgICB2b2lkIHNldElu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50KEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KiBhZ2Vu
dCkgeyBtX2luc3BlY3RvckhlYXBQcm9maWxlckFnZW50ID0gYWdlbnQ7IH0KICNlbmRpZgogCiAj
aWYgRU5BQkxFKFdPUktFUlMpCkBAIC0xNzAsNiArMTc0LDcgQEAgcHJpdmF0ZToKICAgICBQYWdl
RGVidWdnZXJBZ2VudCogbV9wYWdlRGVidWdnZXJBZ2VudDsKICAgICBJbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50KiBtX2luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ7CiAgICAgSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudCogbV9pbnNwZWN0b3JQcm9maWxlckFnZW50OworICAgIEluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50KiBtX2luc3BlY3RvckhlYXBQcm9maWxlckFnZW50OwogI2VuZGlmCiAjaWYg
RU5BQkxFKFdPUktFUlMpCiAgICAgSW5zcGVjdG9yV29ya2VyQWdlbnQqIG1faW5zcGVjdG9yV29y
a2VyQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggOWM3NWM5MzdkMTM4ZTk5MTE3MTg5OTZiYTg2M2M1
ZTMzNWZiYzRkYS4uNzAwNGFlOWY5YWMwNjU1ZmE2ZjMzMmRjZDU4NDJjN2FiMTI3MjgzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVB
Z2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JQcm9maWxlckFnZW50LmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZUNsaWVudC5oIgpAQCAtMTEw
LDYgKzExMSw3IEBAIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlckluc3BlY3RvckNv
bnRyb2xsZXIoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4CiAgICAgbV9hZ2VudHMuYXBwZW5k
KGRlYnVnZ2VyQWdlbnQucmVsZWFzZSgpKTsKIAogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0
b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBjb25z
b2xlQWdlbnQuZ2V0KCksIHdvcmtlckNvbnRleHQsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRl
LmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOwogI2VuZGlmCiAgICAgbV9h
Z2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRp
bmdBZ2VudHMuZ2V0KCksIDAsIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
Oldvcmtlckluc3BlY3RvciwgMCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChjb25zb2xlQWdlbnQu
cmVsZWFzZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSGVhcFNuYXBzaG90RGF0YUdyaWRzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanMKaW5kZXggMTFiMzQ5YTQxNTViYmY2ZDY3
YjRhMmJjYTI1YzdlMDlhZjcwYjFiNS4uZGUzOGJjNjk4NGZhYjkxNDU5YTExNDljZmI3NjFkNjc0
ZDhmY2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9I
ZWFwU25hcHNob3REYXRhR3JpZHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanMKQEAgLTEzNCw3ICsxMzQsNyBAQCBXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90U29ydGFibGVEYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAgICAg
fSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5IZWFwU25hcHNob3RP
YmplY3RJZH0gaGVhcFNuYXBzaG90T2JqZWN0SWQKKyAgICAgKiBAcGFyYW0ge0hlYXBQcm9maWxl
ckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElkfSBoZWFwU25hcHNob3RPYmplY3RJZAogICAgICAq
LwogICAgIGhpZ2hsaWdodE9iamVjdEJ5SGVhcFNuYXBzaG90SWQ6IGZ1bmN0aW9uKGhlYXBTbmFw
c2hvdE9iamVjdElkKQogICAgIHsKQEAgLTUyOCw3ICs1MjgsNyBAQCBXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90Q29uc3RydWN0b3JzRGF0YUdyaWQucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAg
ICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50LkhlYXBTbmFwc2hv
dE9iamVjdElkfSBpZAorICAgICAqIEBwYXJhbSB7SGVhcFByb2ZpbGVyQWdlbnQuSGVhcFNuYXBz
aG90T2JqZWN0SWR9IGlkCiAgICAgICovCiAgICAgaGlnaGxpZ2h0T2JqZWN0QnlIZWFwU25hcHNo
b3RJZDogZnVuY3Rpb24oaWQpCiAgICAgewpAQCAtNzM0LDcgKzczNCw3IEBAIFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3REb21pbmF0b3JzRGF0YUdyaWQucHJvdG90eXBlID0gewogCiAgICAgLyoq
CiAgICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50LkhlYXBTbmFw
c2hvdE9iamVjdElkfSBpZAorICAgICAqIEBwYXJhbSB7SGVhcFByb2ZpbGVyQWdlbnQuSGVhcFNu
YXBzaG90T2JqZWN0SWR9IGlkCiAgICAgICovCiAgICAgaGlnaGxpZ2h0T2JqZWN0QnlIZWFwU25h
cHNob3RJZDogZnVuY3Rpb24oaWQpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rlcy5qcwppbmRleCBm
Mjk0MWM3NmExZjI5NDE0N2NlYWMwYjgwNDY4Nzc0ZmQ4OTU2ODZjLi5jOWU0MDBiOGVlOGY4YzQ5
NDdkN2YwYTdiY2NmYjg2NzMyMjY2YjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rlcy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rlcy5qcwpAQCAtNDY1
LDcgKzQ2NSw3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RHZW5lcmljT2JqZWN0Tm9kZS5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBj
YWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QcmltaXRpdmVWYWx1ZShXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIk5vdCBhdmFpbGFibGUiKSkpOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBPYmplY3RJZChTdHJpbmcodGhp
cy5zbmFwc2hvdE5vZGVJZCksIG9iamVjdEdyb3VwTmFtZSwgZm9ybWF0UmVzdWx0KTsKKyAgICAg
ICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldE9iamVjdEJ5SGVhcE9iamVjdElkKFN0cmluZyh0
aGlzLnNuYXBzaG90Tm9kZUlkKSwgb2JqZWN0R3JvdXBOYW1lLCBmb3JtYXRSZXN1bHQpOwogICAg
ICAgICB9CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCmluZGV4IGJhMGI5NGYyYzNmYWY0YTEzZWZlZWMy
MjY2MTQ2NDYxZDVkOGUwYzguLjc5Mzc5ZDkwZTMxN2RmNzQ2NDEwZmRhYzY2ODMyNzkxMmM1MjI4
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNu
YXBzaG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hl
YXBTbmFwc2hvdFZpZXcuanMKQEAgLTgwMSw3ICs4MDEsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNu
YXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQG92ZXJy
aWRlCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50LlByb2ZpbGVIZWFkZXJ9IHByb2ZpbGUK
KyAgICAgKiBAcGFyYW0ge0hlYXBQcm9maWxlckFnZW50LlByb2ZpbGVIZWFkZXJ9IHByb2ZpbGUK
ICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlcn0KICAgICAgKi8KICAg
ICBjcmVhdGVQcm9maWxlOiBmdW5jdGlvbihwcm9maWxlKQpAQCAtODc5LDcgKzg3OSw3IEBAIFdl
Ykluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAKICAgICBzdGFydFNu
YXBzaG90VHJhbnNmZXI6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFByb2ZpbGVyQWdlbnQu
Z2V0SGVhcFNuYXBzaG90KHRoaXMudWlkKTsKKyAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuZ2V0
SGVhcFNuYXBzaG90KHRoaXMudWlkKTsKICAgICB9LAogCiAgICAgc25hcHNob3RDb25zdHJ1Y3Rv
ck5hbWU6IGZ1bmN0aW9uKCkKQEAgLTk4Niw3ICs5ODYsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFBy
b2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fcmVjZWl2ZXIgPSBm
aWxlT3V0cHV0U3RyZWFtOwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRDaHVua3MgPSAwOwogICAg
ICAgICAgICAgdGhpcy5fdXBkYXRlVHJhbnNmZXJQcm9ncmVzcygwLCB0aGlzLl90b3RhbE51bWJl
ck9mQ2h1bmtzKTsKLSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KHRo
aXMudWlkKTsKKyAgICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hvdCh0
aGlzLnVpZCk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fc2F2aW5nVG9GaWxlID0gdHJ1ZTsK
ICAgICAgICAgdGhpcy5fZmlsZU5hbWUgPSB0aGlzLl9maWxlTmFtZSB8fCAiSGVhcC0iICsgbmV3
IERhdGUoKS50b0lTTzg2MDFDb21wYWN0KCkgKyAiLmhlYXBzbmFwc2hvdCI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKaW5kZXgg
ZjcxYTJkMjRlMDhlNWZhODc3ZDAzNjAzZjg5MThiMWIyNTAxMmE5OC4uMDdlYzkyNTdmZTU0MTkx
NTljYmUwMzk3ZWFmZjczZjM2ZDU2OGUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtMzA2LDYgKzMwNiw3IEBAIFdl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24oKQogICAgICAgICB0aGlzLl9yZWdp
c3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVR5cGUoKSk7CiAK
ICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyUHJvZmlsZXJEaXNwYXRjaGVyKG5ldyBXZWJJ
bnNwZWN0b3IuUHJvZmlsZXJEaXNwYXRjaGVyKHRoaXMpKTsKKyAgICBJbnNwZWN0b3JCYWNrZW5k
LnJlZ2lzdGVySGVhcFByb2ZpbGVyRGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9yLkhlYXBQcm9m
aWxlckRpc3BhdGNoZXIodGhpcykpOwogICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJNZW1v
cnlEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuTWVtb3J5RGlzcGF0Y2hlcih0aGlzKSk7CiAK
ICAgICB0aGlzLl9jcmVhdGVGaWxlU2VsZWN0b3JFbGVtZW50KCk7CkBAIC00NzEsMTIgKzQ3Miwx
MyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgX2NsZWFy
UHJvZmlsZXM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFByb2ZpbGVyQWdlbnQuY2xlYXJQ
cm9maWxlcygpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5jbGVhclByb2ZpbGVzKCk7CiAg
ICAgICAgIHRoaXMuX3Jlc2V0KCk7CiAgICAgfSwKIAogICAgIF9nYXJiYWdlQ29sbGVjdEJ1dHRv
bkNsaWNrZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFByb2ZpbGVyQWdlbnQuY29sbGVj
dEdhcmJhZ2UoKTsKKyAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuY29sbGVjdEdhcmJhZ2UoKTsK
ICAgICB9LAogCiAgICAgLyoqCkBAIC02MjksOCArNjMxLDEyIEBAIFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBzaWRlYmFyUGFyZW50LnJlbW92ZUNo
aWxkKHByb2ZpbGUuX3Byb2ZpbGVzVHJlZUVsZW1lbnQpOwogCi0gICAgICAgIGlmICghcHJvZmls
ZS5pc1RlbXBvcmFyeSkKLSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQucmVtb3ZlUHJvZmlsZShw
cm9maWxlLnByb2ZpbGVUeXBlKCkuaWQsIHByb2ZpbGUudWlkKTsKKyAgICAgICAgaWYgKCFwcm9m
aWxlLmlzVGVtcG9yYXJ5KSB7CisgICAgICAgICAgICBpZiAocHJvZmlsZS5wcm9maWxlVHlwZSgp
LmlkID09IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZS5UeXBlSWQpCisgICAg
ICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQucmVtb3ZlUHJvZmlsZShwcm9maWxlLnVpZCk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5yZW1vdmVQ
cm9maWxlKHByb2ZpbGUucHJvZmlsZVR5cGUoKS5pZCwgcHJvZmlsZS51aWQpOworICAgICAgICB9
CiAKICAgICAgICAgLy8gTm8gb3RoZXIgaXRlbSB3aWxsIGJlIHNlbGVjdGVkIGlmIHRoZXJlIGFy
ZW4ndCBhbnkgb3RoZXIgcHJvZmlsZXMsIHNvCiAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHZp
ZXcgZ2V0cyBjbGVhcmVkIHdoZW4gdGhlIGxhc3QgcHJvZmlsZSBpcyByZW1vdmVkLgpAQCAtNjg4
LDcgKzY5NCw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50LkhlYXBTbmFwc2hv
dE9iamVjdElkfSBzbmFwc2hvdE9iamVjdElkCisgICAgICogQHBhcmFtIHtIZWFwUHJvZmlsZXJB
Z2VudC5IZWFwU25hcHNob3RPYmplY3RJZH0gc25hcHNob3RPYmplY3RJZAogICAgICAqIEBwYXJh
bSB7c3RyaW5nfSB2aWV3TmFtZQogICAgICAqLwogICAgIHNob3dPYmplY3Q6IGZ1bmN0aW9uKHNu
YXBzaG90T2JqZWN0SWQsIHZpZXdOYW1lKQpAQCAtMTA5MSwyMiArMTA5NywyNCBAQCBXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7P3N0cmluZ30gdHlwZQogICAgICAgICAg
KiBAcGFyYW0gez9zdHJpbmd9IGVycm9yCiAgICAgICAgICAqIEBwYXJhbSB7QXJyYXkuPFByb2Zp
bGVyQWdlbnQuUHJvZmlsZUhlYWRlcj59IHByb2ZpbGVIZWFkZXJzCiAgICAgICAgICAqLwotICAg
ICAgICBmdW5jdGlvbiBwb3B1bGF0ZUNhbGxiYWNrKGVycm9yLCBwcm9maWxlSGVhZGVycykgewor
ICAgICAgICBmdW5jdGlvbiBwb3B1bGF0ZUNhbGxiYWNrKHR5cGUsIGVycm9yLCBwcm9maWxlSGVh
ZGVycykgewogICAgICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIHByb2ZpbGVIZWFkZXJzLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4g
YS51aWQgLSBiLnVpZDsgfSk7CiAgICAgICAgICAgICB2YXIgcHJvZmlsZUhlYWRlcnNMZW5ndGgg
PSBwcm9maWxlSGVhZGVycy5sZW5ndGg7CiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHByb2ZpbGVIZWFkZXJzTGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICB2YXIgcHJvZmls
ZUhlYWRlciA9IHByb2ZpbGVIZWFkZXJzW2ldOwotICAgICAgICAgICAgICAgIHZhciBwcm9maWxl
VHlwZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUocHJvZmlsZUhlYWRlci50eXBlSWQpOworICAgICAg
ICAgICAgICAgIHZhciBwcm9maWxlVHlwZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUodHlwZSB8fCBw
cm9maWxlSGVhZGVyLnR5cGVJZCk7CiAgICAgICAgICAgICAgICAgdGhpcy5hZGRQcm9maWxlSGVh
ZGVyKHByb2ZpbGVUeXBlLmNyZWF0ZVByb2ZpbGUocHJvZmlsZUhlYWRlcikpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAKLSAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRQcm9maWxlSGVhZGVy
cyhwb3B1bGF0ZUNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBQcm9maWxlckFnZW50Lmdl
dFByb2ZpbGVIZWFkZXJzKHBvcHVsYXRlQ2FsbGJhY2suYmluZCh0aGlzLCBudWxsKSk7CisgICAg
ICAgIEhlYXBQcm9maWxlckFnZW50LmdldFByb2ZpbGVIZWFkZXJzKHBvcHVsYXRlQ2FsbGJhY2su
YmluZCh0aGlzLCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlkKSk7
CiAKICAgICAgICAgdGhpcy5fcHJvZmlsZXNXZXJlUmVxdWVzdGVkID0gdHJ1ZTsKICAgICB9LApA
QCAtMTE2OCw3ICsxMTc2LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICBmdW5jdGlvbiBkb25lKCkgewogICAgICAgICAgICAgdGhpcy5fbGF1bmNo
ZXJWaWV3LnByb2ZpbGVGaW5pc2hlZCgpOwogICAgICAgICB9Ci0gICAgICAgIFByb2ZpbGVyQWdl
bnQudGFrZUhlYXBTbmFwc2hvdCh0cnVlLCBkb25lLmJpbmQodGhpcykpOworICAgICAgICBIZWFw
UHJvZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KHRydWUsIGRvbmUuYmluZCh0aGlzKSk7CiAg
ICAgICAgIFdlYkluc3BlY3Rvci51c2VyTWV0cmljcy5Qcm9maWxlc0hlYXBQcm9maWxlVGFrZW4u
cmVjb3JkKCk7CiAgICAgfSwKIApAQCAtMTIwNyw3ICsxMjE1LDcgQEAgV2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIHJldmVhbEluVmll
dyh2aWV3TmFtZSkKICAgICAgICAgewotICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRIZWFw
T2JqZWN0SWQob2JqZWN0SWQsIGRpZFJlY2VpdmVIZWFwT2JqZWN0SWQuYmluZCh0aGlzLCB2aWV3
TmFtZSkpOworICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuZ2V0SGVhcE9iamVjdElkKG9i
amVjdElkLCBkaWRSZWNlaXZlSGVhcE9iamVjdElkLmJpbmQodGhpcywgdmlld05hbWUpKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGRpZFJlY2VpdmVIZWFwT2JqZWN0SWQodmlld05h
bWUsIGVycm9yLCByZXN1bHQpCkBAIC0xMzIwLDYgKzEzMjgsNjQgQEAgV2ViSW5zcGVjdG9yLlBy
b2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCisg
KiBAaW1wbGVtZW50cyB7SGVhcFByb2ZpbGVyQWdlbnQuRGlzcGF0Y2hlcn0KKyAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWx9IHByb2ZpbGVzUGFuZWwKKyAqLworV2ViSW5zcGVj
dG9yLkhlYXBQcm9maWxlckRpc3BhdGNoZXIgPSBmdW5jdGlvbihwcm9maWxlc1BhbmVsKQorewor
ICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwgPSBwcm9maWxlc1BhbmVsOworfQorCitXZWJJbnNwZWN0
b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICog
QHBhcmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5Qcm9maWxlSGVhZGVyfSBwcm9maWxlCisgICAgICov
CisgICAgYWRkUHJvZmlsZUhlYWRlcjogZnVuY3Rpb24ocHJvZmlsZSkKKyAgICB7CisgICAgICAg
IHZhciBwcm9maWxlVHlwZSA9IHRoaXMuX3Byb2ZpbGVzUGFuZWwuZ2V0UHJvZmlsZVR5cGUoV2Vi
SW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJZCk7CisgICAgICAgIHRoaXMu
X3Byb2ZpbGVzUGFuZWwuYWRkUHJvZmlsZUhlYWRlcihwcm9maWxlVHlwZS5jcmVhdGVQcm9maWxl
KHByb2ZpbGUpKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQG92ZXJyaWRlCisgICAgICog
QHBhcmFtIHtudW1iZXJ9IHVpZAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjaHVuaworICAgICAq
LworICAgIGFkZEhlYXBTbmFwc2hvdENodW5rOiBmdW5jdGlvbih1aWQsIGNodW5rKQorICAgIHsK
KyAgICAgICAgdGhpcy5fcHJvZmlsZXNQYW5lbC5fYWRkSGVhcFNuYXBzaG90Q2h1bmsodWlkLCBj
aHVuayk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBvdmVycmlkZQorICAgICAqIEBwYXJh
bSB7bnVtYmVyfSB1aWQKKyAgICAgKi8KKyAgICBmaW5pc2hIZWFwU25hcHNob3Q6IGZ1bmN0aW9u
KHVpZCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwuX2ZpbmlzaEhlYXBTbmFw
c2hvdCh1aWQpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAb3ZlcnJpZGUKKyAgICAgKi8K
KyAgICByZXNldFByb2ZpbGVzOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9wcm9m
aWxlc1BhbmVsLl9yZXNldCgpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAb3ZlcnJpZGUK
KyAgICAgKiBAcGFyYW0ge251bWJlcn0gZG9uZQorICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0b3Rh
bAorICAgICAqLworICAgIHJlcG9ydEhlYXBTbmFwc2hvdFByb2dyZXNzOiBmdW5jdGlvbihkb25l
LCB0b3RhbCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwuX3JlcG9ydEhlYXBT
bmFwc2hvdFByb2dyZXNzKGRvbmUsIHRvdGFsKTsKKyAgICB9Cit9CisKKy8qKgorICogQGNvbnN0
cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNpZGViYXJUcmVlRWxlbWVudH0KICAq
IEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyfSBwcm9maWxlCiAgKiBAcGFyYW0g
e3N0cmluZ30gdGl0bGVGb3JtYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCBhMzNiZWVlNDQ2NDZkYWJiOGM5NDM5MGFl
YzcyOTgzZTc5MTRjZjBiLi5mMWIzMmVhYmI4N2ZjMzBlM2NjNTAyMTM1MTkyOTExODJhYTlmZWYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGlu
ZVBhbmVsLmpzCkBAIC01ODAsNyArNTgwLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlID0gewogCiAgICAgX2dhcmJhZ2VDb2xsZWN0QnV0dG9uQ2xpY2tlZDogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgUHJvZmlsZXJBZ2VudC5jb2xsZWN0R2FyYmFnZSgpOworICAg
ICAgICBIZWFwUHJvZmlsZXJBZ2VudC5jb2xsZWN0R2FyYmFnZSgpOwogICAgIH0sCiAKICAgICBf
Z2x1ZVBhcmVudEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggZDk0ZTI4NTQ5NTNmYzRkOWU4
YmFhMTU3MjU4OTg5MmRiMjE1NDE5MC4uYTBiY2MyZGEyZGIzNzZkYzU4NmNiYTA1NDQ1OTRmODhh
NDk1MTA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuanMKQEAgLTM2OCw3ICszNjgsNyBAQCBXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lID0g
ZnVuY3Rpb24oKQogICAgIERlYnVnZ2VyQWdlbnQuc3VwcG9ydHNTZXBhcmF0ZVNjcmlwdENvbXBp
bGF0aW9uQW5kRXhlY3V0aW9uKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHkuYmlu
ZChXZWJJbnNwZWN0b3IsICJzZXBhcmF0ZVNjcmlwdENvbXBpbGF0aW9uQW5kRXhlY3V0aW9uRW5h
YmxlZCIsIG51bGwpKTsKICAgICBQcm9maWxlckFnZW50LmNhdXNlc1JlY29tcGlsYXRpb24oV2Vi
SW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3RvciwgInByb2Zp
bGVyQ2F1c2VzUmVjb21waWxhdGlvbiIsIG51bGwpKTsKICAgICBQcm9maWxlckFnZW50LmlzU2Ft
cGxpbmcoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3Rv
ciwgInNhbXBsaW5nQ1BVUHJvZmlsZXIiLCBudWxsKSk7Ci0gICAgUHJvZmlsZXJBZ2VudC5oYXNI
ZWFwUHJvZmlsZXIoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYklu
c3BlY3RvciwgImhlYXBQcm9maWxlclByZXNlbnQiLCBudWxsKSk7CisgICAgSGVhcFByb2ZpbGVy
QWdlbnQuaGFzSGVhcFByb2ZpbGVyKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHku
YmluZChXZWJJbnNwZWN0b3IsICJoZWFwUHJvZmlsZXJQcmVzZW50IiwgbnVsbCkpOwogICAgIFRp
bWVsaW5lQWdlbnQuc3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlvbihXZWJJbnNwZWN0b3IuX2lu
aXRpYWxpemVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAidGltZWxpbmVTdXBwb3J0c0Zy
YW1lSW5zdHJ1bWVudGF0aW9uIiwgbnVsbCkpOwogICAgIFRpbWVsaW5lQWdlbnQuY2FuTW9uaXRv
ck1haW5UaHJlYWQoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYklu
c3BlY3RvciwgInRpbWVsaW5lQ2FuTW9uaXRvck1haW5UaHJlYWQiLCBudWxsKSk7CiAgICAgUGFn
ZUFnZW50LmNhblNob3dGUFNDb3VudGVyKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxp
dHkuYmluZChXZWJJbnNwZWN0b3IsICJjYW5TaG93RlBTQ291bnRlciIsIG51bGwpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApp
bmRleCA0ZWE0NjBhMTBiNjA4OTFjYTVlZWVjZGFhOGYzNzM1NTljZTgxOGIzLi42MDgzZDk2N2Ix
ZTlkMjZlY2Q1NjNlYzk5Yzk4ODBjNTM3NGI0MDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC03NzgsNyArNzc4LDcg
QEAgYm9vbCBXZWJEZXZUb29sc0FnZW50OjpzaG91bGRJbnRlcnJ1cHRGb3JNZXNzYWdlKGNvbnN0
IFdlYlN0cmluZyYgbWVzc2FnZSkKICAgICAgICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmROYW1lc1tJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
cjo6a1Byb2ZpbGVyX3N0YXJ0Q21kXQogICAgICAgICB8fCBjb21tYW5kTmFtZSA9PSBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Y29tbWFuZE5hbWVzW0luc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyOjprUHJvZmlsZXJfc3RvcENtZF0KICAgICAgICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmROYW1lc1tJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcjo6a1Byb2ZpbGVyX2dldENQVVByb2ZpbGVDbWRdCi0gICAgICAgIHx8IGNvbW1hbmROYW1l
ID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpjb21tYW5kTmFtZXNbSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXI6OmtQcm9maWxlcl9nZXRIZWFwU25hcHNob3RDbWRdOworICAgICAgICB8
fCBjb21tYW5kTmFtZSA9PSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Y29tbWFuZE5hbWVz
W0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjprSGVhcFByb2ZpbGVyX2dldEhlYXBTbmFwc2hv
dENtZF07CiB9CiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudDo6cHJvY2Vzc1BlbmRpbmdNZXNzYWdl
cygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMTgwYjE2ZjUwMjM2OTc0ZmM3Y2YyOGY4ZTUxNzRlZjI0NDAzNWFlMS4uZGQw
ZTNiNGYwOTIwYWY5MzZhYjFlYjE1YTQyYWQ0MDAzY2VmYjk0OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDEzLTAyLTA3ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wg
aW50byBQcm9maWxlciBhbmQgSGVhcFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBz
aGFyZSB0aGUgc2FtZSBkb21haW4gJ1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAg
IEluIGZhY3QgdGhlc2UgdHdvIHByb2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29t
bW9uLiBTbyBwdXQgZWFjaCBpbnRvIGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQg
YWxzbyBoZWxwIHdoZW4gUHJvZmlsZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9v
bHMuCisgICAgICAgIFRoaXMgaXMgdGhlIHBoYXNlIDEgd2hpY2ggYWRkcyBJbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudCBidXQgZG9lc24ndAorICAgICAgICBjaGFuZ2UgdGhlIG9yaWdpbmFsIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQuCisKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvaGVh
cC1wcm9maWxlci9yZXNvdXJjZXMvaGVhcC1zbmFwc2hvdC1jb21tb24uanM6CisgICAgICAgIChJ
bnNwZWN0b3JUZXN0LnRha2VIZWFwU25hcHNob3QuSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXIu
c3RyaW5nX2FwcGVhcmVkX2hlcmUpOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC50YWtlSGVhcFNu
YXBzaG90KToKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWxlYWst
dGVzdC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdl
dC1wcm9maWxlLWNyYXNoLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtaW5zcGVjdC1kb20td3JhcHBlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0hlYXBT
bmFwc2hvdFRlc3QpOgorCiAyMDEzLTAyLTA3ICBHcmVnZyBUYXZhcmVzICA8Z21hbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgQWRkIFdlYkdMIENvbmZvcm1hbmNlIFRlc3RzIHVuaWZvcm1zIGZv
bGRlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9oZWFwLXBy
b2ZpbGVyL3Jlc291cmNlcy9oZWFwLXNuYXBzaG90LWNvbW1vbi5qcyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9oZWFwLXByb2ZpbGVyL3Jlc291cmNlcy9oZWFwLXNuYXBzaG90LWNv
bW1vbi5qcwppbmRleCA3YjNiOWYxOGE5NzFmYzUwNjRjMDBmMjk5ZDViMTQxODU2NGYzMDFiLi45
ZTk4ODQ5N2QxNTY5YWFmZjE2OGJmYTZjMDc4YzNmN2Y3ZGU4NjhkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvaGVhcC1wcm9maWxlci9yZXNvdXJjZXMvaGVhcC1z
bmFwc2hvdC1jb21tb24uanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2hl
YXAtcHJvZmlsZXIvcmVzb3VyY2VzL2hlYXAtc25hcHNob3QtY29tbW9uLmpzCkBAIC05LDEwICs5
LDEwIEBAIEluc3BlY3RvclRlc3QuaW1wb3J0U2NyaXB0KCIuLi8uLi8uLi8uLi8uLi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0pTCiAKIEluc3BlY3RvclRlc3QudGFrZUhlYXBT
bmFwc2hvdCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogewotICAgIEluc3BlY3RvclRlc3QuZXZlbnRI
YW5kbGVyWyJQcm9maWxlci5hZGRQcm9maWxlSGVhZGVyIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQorICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJIZWFwUHJvZmlsZXIuYWRkUHJv
ZmlsZUhlYWRlciJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIHZh
ciBwcm9maWxlSWQgPSBtZXNzYWdlT2JqZWN0WyJwYXJhbXMiXVsiaGVhZGVyIl1bInVpZCJdOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQcm9maWxlci5nZXRIZWFwU25hcHNo
b3QiLCB7ICJ1aWQiOiBwcm9maWxlSWQgfSwgZGlkR2V0SGVhcFNuYXBzaG90KTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiSGVhcFByb2ZpbGVyLmdldEhlYXBTbmFwc2hvdCIs
IHsgInVpZCI6IHByb2ZpbGVJZCB9LCBkaWRHZXRIZWFwU25hcHNob3QpOwogCiAgICAgICAgIGZ1
bmN0aW9uIGRpZEdldEhlYXBTbmFwc2hvdChtZXNzYWdlT2JqZWN0KQogICAgICAgICB7CkBAIC0y
MiwxMiArMjIsMTIgQEAgSW5zcGVjdG9yVGVzdC50YWtlSGVhcFNuYXBzaG90ID0gZnVuY3Rpb24o
Y2FsbGJhY2spCiAgICAgfQogCiAgICAgdmFyIGNodW5rcyA9IFtdOwotICAgIEluc3BlY3RvclRl
c3QuZXZlbnRIYW5kbGVyWyJQcm9maWxlci5hZGRIZWFwU25hcHNob3RDaHVuayJdID0gZnVuY3Rp
b24obWVzc2FnZU9iamVjdCkKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiSGVhcFBy
b2ZpbGVyLmFkZEhlYXBTbmFwc2hvdENodW5rIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQog
ICAgIHsKICAgICAgICAgY2h1bmtzLnB1c2gobWVzc2FnZU9iamVjdFsicGFyYW1zIl1bImNodW5r
Il0pOwogICAgIH0KIAotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQcm9maWxlci5m
aW5pc2hIZWFwU25hcHNob3QiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgSW5zcGVj
dG9yVGVzdC5ldmVudEhhbmRsZXJbIkhlYXBQcm9maWxlci5maW5pc2hIZWFwU25hcHNob3QiXSA9
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewogICAgICAgICB2YXIgc2VyaWFsaXplZFNu
YXBzaG90ID0gY2h1bmtzLmpvaW4oIiIpOwogICAgICAgICB2YXIgcGFyc2VkID0gSlNPTi5wYXJz
ZShzZXJpYWxpemVkU25hcHNob3QpOwpAQCAtMzUsNSArMzUsNSBAQCBJbnNwZWN0b3JUZXN0LnRh
a2VIZWFwU25hcHNob3QgPSBmdW5jdGlvbihjYWxsYmFjaykKICAgICAgICAgY2FsbGJhY2soc25h
cHNob3QpOwogICAgIH0KIAotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlByb2ZpbGVy
LnRha2VIZWFwU25hcHNob3QiLCB7fSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
SGVhcFByb2ZpbGVyLnRha2VIZWFwU25hcHNob3QiLCB7fSk7CiB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWxlYWstdGVzdC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby1sZWFrLXRlc3QuaHRt
bAppbmRleCAyM2FjY2M3NGNiOGY4NjE5NGM3OWVjNTM2ZjkxZTE5YWVkNjNmYjY0Li5hMDg1MDU3
MzJjNTA2ZmVmNDk0ODdjMzkzNTBiYjU3MWVjNDMzZjBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWxlYWstdGVzdC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8tbGVhay10ZXN0Lmh0bWwK
QEAgLTYwLDcgKzYwLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiBpRnJhbWVO
YXZpZ2F0ZWQobWVzc2FnZU9iamVjdCkgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFT
UzogSUZyYW1lIHdhcyBuYXZpZ2F0ZWQgdG8gcmVzb3VyY2VzL2JsYW5rLmh0bWwiKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgnUHJvZmlsZXIuY29sbGVjdEdhcmJhZ2UnLCB7
fSwgZnVuY3Rpb24oKSB7IH0gKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgn
SGVhcFByb2ZpbGVyLmNvbGxlY3RHYXJiYWdlJywge30sIGZ1bmN0aW9uKCkgeyB9ICk7CiAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJBY3Rpb246IFJ1biBHQyBhbmQgY2hlY2sgUGFnZS5BdWRp
byBkYXRhIHNpemUiKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgnTWVtb3J5
LmdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb24nLCB7fSwgbm9BdWRpb1NoYXJlZERhdGEpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNu
YXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC5odG1sCmluZGV4IDg1NjFiY2I4
MTFmMzEwM2EzYzU3YTY1MWMyYjZjY2UyODFhMDUxODAuLjU0NGNiMTIyMTg4ZjMzZDE0NzUxNDg0
OTJmZGM1ZGRmZWM5ZjNkYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZ2V0LXByb2ZpbGUtY3Jhc2guaHRt
bApAQCAtMTQsNyArMTQsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICBjb25z
b2xlLmxvZyhlcnJvclN0cmluZyk7CiAgICAgICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRIZWFwU25hcHNob3QoLTEsIGZpbmlz
aCk7CisgICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5nZXRIZWFwU25hcHNob3QoLTEsIGZp
bmlzaCk7CiAgICAgICAgIH0KICAgICBdKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9t
LXdyYXBwZXIuaHRtbAppbmRleCAzODIwN2ZiOTU2MjA3MmU1M2M1NzdkZmE4NjVhYTAwMWI5Yzcx
ODFiLi4wMzVmYzRjZTdiNDk1Nzk5MzE5NDMzMDAyNTM4YjM0ZmU3NTkzMTg0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRv
bS13cmFwcGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAt
c25hcHNob3QtaW5zcGVjdC1kb20td3JhcHBlci5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0
aW9uIGhhbmRsZUxvYWQoKQogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgV2ViSW5zcGVjdG9yLnNo
b3dQYW5lbCgicHJvZmlsZXMiKTsKLSAgICBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3Qo
c3RlcDApOworICAgIEhlYXBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3Qoc3RlcDApOwog
CiAgICAgZnVuY3Rpb24gc3RlcDAoKQogICAgIHsKQEAgLTQyLDcgKzQyLDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgICAgICAgICAgYm9keVdyYXBwZXJJZHMucHVzaChpdC5ub2RlLmlkKTsK
ICAgICAgICAgfQogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJvZHlXcmFwcGVySWRzLmxl
bmd0aDsgaSsrKQotICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBPYmpl
Y3RJZChib2R5V3JhcHBlcklkc1tpXSwgdW5kZWZpbmVkLCBkaWRHZXRPYmplY3RCeUhlYXBPYmpl
Y3RJZCk7CisgICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBPYmpl
Y3RJZChib2R5V3JhcHBlcklkc1tpXSwgdW5kZWZpbmVkLCBkaWRHZXRPYmplY3RCeUhlYXBPYmpl
Y3RJZCk7CiAKICAgICAgICAgdmFyIHJlc29sdmVkT2JqZWN0c0NvdW50ID0gMDsKICAgICAgICAg
dmFyIHJlbW90ZU9iamVjdHMgPSBbXTsKQEAgLTY5LDcgKzY5LDcgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgICAgICBpZiAoKytkaWRHZXRPd25Qcm9wZXJ0aWVzQ291bnQgIT09IHJlbW90ZU9i
amVjdHMubGVuZ3RoKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgUHJv
ZmlsZXJBZ2VudC5jbGVhclByb2ZpbGVzKGRvbmUpOworICAgICAgICAgICAgSGVhcFByb2ZpbGVy
QWdlbnQuY2xlYXJQcm9maWxlcyhkb25lKTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5l
bHMucHJvZmlsZXMuX3Jlc2V0KCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sCmlu
ZGV4IDk0MGI2NGJkMjY4MGYzMmJlNWUzMzllYmFjMjNiYzA1MjQ5ZTc0ZWMuLmNkODY1YmUwN2E2
OWY3YTk3OTE2MGFkY2E4ZWUyOTgyY2JhZmRiMGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sCkBAIC0xNyw3
ICsxNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHZhciBwYXJ0U2l6ZSA9IHNvdXJjZVN0cmlu
Z2lmaWVkLmxlbmd0aCA+PiAzOwogCiAgICAgZnVuY3Rpb24gaW5qZWN0TW9ja1Byb2ZpbGUob3Zl
cnJpZGVHZXRQcm9maWxlLCBjYWxsYmFjaykgewotICAgICAgICB2YXIgZGlzcGF0Y2hlciA9IElu
c3BlY3RvckJhY2tlbmQuX2RvbWFpbkRpc3BhdGNoZXJzWyJQcm9maWxlciJdOworICAgICAgICB2
YXIgZGlzcGF0Y2hlciA9IEluc3BlY3RvckJhY2tlbmQuX2RvbWFpbkRpc3BhdGNoZXJzWyJIZWFw
UHJvZmlsZXIiXTsKICAgICAgICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9m
aWxlczsKICAgICAgICAgcGFuZWwuX3Jlc2V0KCk7CiAKQEAgLTM5LDEyICszOSwxMiBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgZnVuY3Rpb24gc25hcHNob3RMb2FkZWQoKQogICAgICAgICB7
CiAgICAgICAgICAgICBpZiAob3ZlcnJpZGVHZXRQcm9maWxlKQotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3Qub3ZlcnJpZGUoUHJvZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIsIGdl
dEhlYXBTbmFwc2hvdE1vY2spOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qub3ZlcnJp
ZGUoSGVhcFByb2ZpbGVyQWdlbnQsICJnZXRIZWFwU25hcHNob3QiLCBnZXRIZWFwU25hcHNob3RN
b2NrKTsKICAgICAgICAgICAgIGNhbGxiYWNrKHByb2ZpbGVIZWFkZXIpOwogICAgICAgICB9CiAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihwcm9maWxlSGVhZGVyLCAiX3NuYXBzaG90
UmVjZWl2ZWQiLCBzbmFwc2hvdExvYWRlZCk7CiAKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5vdmVy
cmlkZShQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgZ2V0SGVhcFNuYXBzaG90TW9j
ayk7CisgICAgICAgIEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoSGVhcFByb2ZpbGVyQWdlbnQsICJn
ZXRIZWFwU25hcHNob3QiLCBnZXRIZWFwU25hcHNob3RNb2NrKTsKICAgICAgICAgcGFuZWwuc2hv
d1Byb2ZpbGUocHJvZmlsZUhlYWRlcik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtdGVzdC5qcwppbmRleCAxNTU1NGQyY2My
YmJhODYwNWE2MmFhMDRhN2JmMjEyZDMwMzdiODAyLi5jYmQ2NjYzYzQ3NTg2YWRlYWIyOTE1ZmZl
MDE2OGFhM2JiNzVmYzE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanMKQEAgLTE3Miw3ICsxNzIsNyBAQCBJbnNwZWN0b3JU
ZXN0LnN0YXJ0UHJvZmlsZXJUZXN0ID0gZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgZnVuY3Rpb24g
cHJvZmlsZXJFbmFibGVkKCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJQcm9maWxlciB3YXMgZW5hYmxlZC4iKTsKLSAgICAgICAgLy8gV2UgbW9jayBvdXQgUHJvZmls
ZXJBZ2VudCAtLSBhcyBEUlQgcnVucyBpbiBzaW5nbGUtcHJvY2VzcyBtb2RlLCBJbnNwZWN0b3IK
KyAgICAgICAgLy8gV2UgbW9jayBvdXQgSGVhcFByb2ZpbGVyQWdlbnQgLS0gYXMgRFJUIHJ1bnMg
aW4gc2luZ2xlLXByb2Nlc3MgbW9kZSwgSW5zcGVjdG9yCiAgICAgICAgIC8vIGFuZCB0ZXN0IHNo
YXJlIHRoZSBzYW1lIGhlYXAuIFRha2luZyBhIHNuYXBzaG90IHRha2VzIHRvbyBsb25nIGZvciBh
IHRlc3QsCiAgICAgICAgIC8vIHNvIHdlIHByb3ZpZGUgc3ludGhldGljIHNuYXBzaG90cy4KICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5fcGFuZWxSZXNldCA9IEluc3BlY3RvclRlc3Qub3ZlcnJpZGUo
V2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcywgIl9yZXNldCIsIGZ1bmN0aW9uKCl7fSwgdHJ1
ZSk7CkBAIC03MzUsNyArNzM1LDcgQEAgSW5zcGVjdG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90
ID0gZnVuY3Rpb24oZ2VuZXJhdG9yLCBjYWxsYmFjaykKICAgICAgICAgV2ViSW5zcGVjdG9yLnBh
bmVscy5wcm9maWxlcy5fYWRkSGVhcFNuYXBzaG90Q2h1bmsodWlkLCBKU09OLnN0cmluZ2lmeShz
bmFwc2hvdCkpOwogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLl9maW5pc2hI
ZWFwU25hcHNob3QodWlkKTsKICAgICB9Ci0gICAgSW5zcGVjdG9yVGVzdC5vdmVycmlkZShQcm9m
aWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgcHVzaEdlbmVyYXRlZFNuYXBzaG90KTsKKyAg
ICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKEhlYXBQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBz
aG90IiwgcHVzaEdlbmVyYXRlZFNuYXBzaG90KTsKICAgICBJbnNwZWN0b3JUZXN0Ll90YWtlQW5k
T3BlblNuYXBzaG90Q2FsbGJhY2sgPSBjYWxsYmFjazsKICAgICBXZWJJbnNwZWN0b3IucGFuZWxz
LnByb2ZpbGVzLmFkZFByb2ZpbGVIZWFkZXIocHJvZmlsZSk7CiAgICAgV2ViSW5zcGVjdG9yLnBh
bmVscy5wcm9maWxlcy5zaG93UHJvZmlsZShwcm9maWxlKTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTk0
MDM0ZDExMDg3ZDU5MjIxNzdiMTAzOGI2MjYxZmNlZmNkNGRhNC4uYTUwZDIxYTFhZDIxN2ZmZDQw
ZjYzMzc4OGQxMGQ2NjlkMThkNjE3ZiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxMy0wMi0wNyAgQWxleGVpIEZpbGlwcG92ICA8YWxwaEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogU3BsaXQgUHJvZmlsZXIgZG9tYWluIGluIHByb3RvY29sIGludG8g
UHJvZmlsZXIgYW5kIEhlYXBQcm9maWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IENQVSBhbmQgaGVhcCBwcm9maWxlcnMgc2hhcmUg
dGhlIHNhbWUgZG9tYWluICdQcm9maWxlcicgaW4gdGhlIHByb3RvY29sLgorICAgICAgICBJbiBm
YWN0IHRoZXNlIHR3byBwcm9maWxlIHR5cGVzIGhhdmUgbm90IHRvbyBtdWNoIGluIGNvbW1vbi4g
U28gcHV0IGVhY2ggaW50byBpdHMgb3duIGRvbWFpbi4KKyAgICAgICAgSXQgc2hvdWxkIGFsc28g
aGVscCB3aGVuIFByb2ZpbGVzIHBhbmVsIGdldHMgc3BsaXQgaW50byBzZXZlcmFsIHRvb2xzLgor
ICAgICAgICBUaGlzIGlzIHRoZSBwaGFzZSAxIHdoaWNoIGFkZHMgSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQgYnV0IGRvZXNuJ3QKKyAgICAgICAgY2hhbmdlIHRoZSBvcmlnaW5hbCBJbnNwZWN0
b3JQcm9maWxlckFnZW50LgorCisgICAgICAgICogaW5zcGVjdG9yL2hlYXAtc25hcHNob3QtcGVy
Zm9ybWFuY2UtdGVzdC5qczoKKyAgICAgICAgKHRlc3QucGVyZm9ybWFuY2VUZXN0LmNsZWFudXAp
OgorCiAyMDEzLTAyLTA1ICBEb21pbmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0Bp
bnRlbC5jb20+CiAKICAgICAgICAgQWRkIGEgcGVyZm9ybWFuY2UgdGVzdCBmb3IgYXJhYmljIGxp
bmUgYnJlYWtpbmcKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvaW5zcGVjdG9yL2hlYXAt
c25hcHNob3QtcGVyZm9ybWFuY2UtdGVzdC5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvaW5zcGVjdG9y
L2hlYXAtc25hcHNob3QtcGVyZm9ybWFuY2UtdGVzdC5qcwppbmRleCA5YzM5NTgyNjE4NWMyZjRi
MWU5OTcwOTM0OWQwY2FjOTExZTc3NWVlLi5hZDk0N2I4MWM1ZjAwYmNjZmY3NzkyYzhmOWUwODcx
ZDAzZjI0ZjE5IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL2luc3BlY3Rvci9oZWFwLXNu
YXBzaG90LXBlcmZvcm1hbmNlLXRlc3QuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9pbnNwZWN0
b3IvaGVhcC1zbmFwc2hvdC1wZXJmb3JtYW5jZS10ZXN0LmpzCkBAIC0yNyw3ICsyNyw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgICAgICB2YXIgdGVzdE5hbWUgPSAvKFteXC9dKylcLmh0bWwkLy5l
eGVjKFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlVVJMKVsxXTsKICAgICAgICAgdmFyIGZ1bGxU
aW1lckNvb2tpZSA9IHRpbWVyLnN0YXJ0KCJmdWxsLXN1bW1hcnktc25hcHNob3QtdGltZSIpOwog
ICAgICAgICB2YXIgYmFja2VuZFRpbWVyQ29va2llID0gdGltZXIuc3RhcnQoInRha2Utc25hcHNo
b3QiKTsKLSAgICAgICAgUHJvZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KHN0ZXAwKTsKKyAg
ICAgICAgSGVhcFByb2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFwc2hvdChzdGVwMCk7CiAKICAgICAg
ICAgZnVuY3Rpb24gc3RlcDAoKQogICAgICAgICB7CkBAIC01OSw3ICs1OSw3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAgICAgdGltZXIuZmluaXNoKGNoYW5nZVZpZXdUaW1lckNvb2tpZSk7
CiAgICAgICAgICAgICB0aW1lci5maW5pc2goZnVsbFRpbWVyQ29va2llKTsKICAgICAgICAgICAg
IGNsZWFyVGltZXJDb29raWUgPSB0aW1lci5zdGFydCgiY2xlYXItc25hcHNob3QiKTsKLSAgICAg
ICAgICAgIFByb2ZpbGVyQWdlbnQuY2xlYXJQcm9maWxlcyhkb25lKTsKKyAgICAgICAgICAgIEhl
YXBQcm9maWxlckFnZW50LmNsZWFyUHJvZmlsZXMoZG9uZSk7CiAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IucGFuZWxzLnByb2ZpbGVzLl9yZXNldCgpOwogICAgICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187323</attachid>
            <date>2013-02-08 08:21:47 -0800</date>
            <delta_ts>2013-02-11 02:42:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108653-20130208201820.patch</filename>
            <type>text/plain</type>
            <size>66449</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTgwYTllN2FiZTNkMmZj
N2NiMGY5YmQzZmE3YmQyMjA5ODdjYmZkYi4uMTdhYThhY2YwOTc0NTM5N2FmN2QwNjMzMzY4ZTI4
ZjhhOTIxOWQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDEzLTAyLTA4ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wgaW50byBQcm9maWxlciBhbmQgSGVh
cFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0aGUgc2FtZSBkb21haW4g
J1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIEluIGZhY3QgdGhlc2UgdHdvIHBy
b2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29tbW9uLiBTbyBwdXQgZWFjaCBpbnRv
IGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQgYWxzbyBoZWxwIHdoZW4gUHJvZmls
ZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9vbHMuCisgICAgICAgIFRoaXMgaXMg
dGhlIHBoYXNlIDEgd2hpY2ggYWRkcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCBidXQgZG9l
c24ndAorICAgICAgICBjaGFuZ2UgdGhlIG9yaWdpbmFsIEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6
On5JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVzKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpzZXRGcm9udGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y2xlYXJGcm9udGVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzdG9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y29sbGVjdEdh
cmJhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNy
ZWF0ZVNuYXBzaG90SGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpoYXNIZWFwUHJvZmlsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGVIZWFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRIZWFwU25hcHNob3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJlbW92ZVByb2ZpbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnRha2VIZWFwU25hcHNo
b3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmdldE9i
amVjdEJ5SGVhcE9iamVjdElkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpnZXRIZWFwT2JqZWN0SWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjbGVhclByb2ZpbGVzKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21t
aXRMb2FkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5zdHJ1bWVudGluZ0FnZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjppbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5vZGUucHJvdG90eXBlLnF1ZXJ5T2JqZWN0Q29udGVu
dCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5zdGFydFNu
YXBzaG90VHJhbnNmZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVy
LnByb3RvdHlwZS5zYXZlVG9GaWxlLm9uT3Blbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVh
cFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLnNhdmVUb0ZpbGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZS5fY2xlYXJQcm9maWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUuX2dhcmJhZ2VDb2xsZWN0QnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3JlbW92ZVByb2ZpbGVIZWFkZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZVByb2Zp
bGVzLnZhcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUu
X3BvcHVsYXRlUHJvZmlsZXMucG9wdWxhdGVDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlUHJvZmlsZXMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnRha2VIZWFwU25hcHNob3QpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnJldmVhbEluVmll
dyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUuYWRkUHJv
ZmlsZUhlYWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hl
ci5wcm90b3R5cGUuYWRkSGVhcFNuYXBzaG90Q2h1bmspOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkhlYXBQcm9maWxlckRpc3BhdGNoZXIucHJvdG90eXBlLmZpbmlzaEhlYXBTbmFwc2hvdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUucmVz
ZXRQcm9maWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hl
ci5wcm90b3R5cGUucmVwb3J0SGVhcFNuYXBzaG90UHJvZ3Jlc3MpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsLnByb3RvdHlwZS5fZ2FyYmFnZUNvbGxlY3RCdXR0b25DbGlja2VkKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5kb0xvYWRlZERvbmUpOgorCiAyMDEzLTAyLTA4ICBNaWtlIFdlc3QgIDxta3dzdEBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGEgbmV3IElHTk9SRV9FWENFUFRJT04gaGVscGVy
IHRvIGlnbm9yZSBFeGNlcHRpb25Db2RlcyB3aGVuIHRoZXkgYXJlIGV4cGVjdGVkIGJ1dCB1bmlu
dGVyZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDhhNWFmYmU2MWEzMTI3ZTlh
MzQ5NmQyOWQ4N2IyYTRjYjFkYjA5ODguLjRiYTUzNjYxMjJmOTM2OTA2MjE2NmNmMjU4Y2FlNWJj
OTk5MzgwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTMtMDItMDggIEFsZXhlaSBGaWxpcHBvdiAgPGFscGhAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFNwbGl0IFByb2ZpbGVyIGRvbWFpbiBpbiBwcm90b2NvbCBpbnRvIFBy
b2ZpbGVyIGFuZCBIZWFwUHJvZmlsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwODY1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEN1cnJlbnRseSBDUFUgYW5kIGhlYXAgcHJvZmlsZXJzIHNoYXJlIHRo
ZSBzYW1lIGRvbWFpbiAnUHJvZmlsZXInIGluIHRoZSBwcm90b2NvbC4KKyAgICAgICAgSW4gZmFj
dCB0aGVzZSB0d28gcHJvZmlsZSB0eXBlcyBoYXZlIG5vdCB0b28gbXVjaCBpbiBjb21tb24uIFNv
IHB1dCBlYWNoIGludG8gaXRzIG93biBkb21haW4uCisgICAgICAgIEl0IHNob3VsZCBhbHNvIGhl
bHAgd2hlbiBQcm9maWxlcyBwYW5lbCBnZXRzIHNwbGl0IGludG8gc2V2ZXJhbCB0b29scy4KKyAg
ICAgICAgVGhpcyBpcyB0aGUgcGhhc2UgMSB3aGljaCBhZGRzIEluc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50IGJ1dCBkb2Vzbid0CisgICAgICAgIGNoYW5nZSB0aGUgb3JpZ2luYWwgSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudC4KKworICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnQ6OnNob3VsZEludGVycnVwdEZvck1l
c3NhZ2UpOgorCiAyMDEzLTAyLTA4ICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIFNraWEgY29kZSBzdXBwcmVzc2lvbnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggM2E0OWY2ZjJjNjJiYmM5MzQ1MDViOGQ0NWEyMzg0OWQzMGY1MjdjNi4u
NGZiMmEzMDRjMDRlZjZlYTQxZjlhZmIyYjUzZWNiYjNlZTdlZjdmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE2NDAsNiArMTY0MCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBpbnNw
ZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuY3BwCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JIaXN0b3J5LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JJbmRleGVkREJBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDk5OTk2NzFmOGI5NmYzYmY2N2Rm
NmQ0MjA0MzZhYjMzYzMyZjI0NTIuLjYzNzcyYTFlZWFjOTgzYjYwMTM1YTcwMzVmZGQ5YTI0MmEz
ZGI2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzgzMSw2ICszODMxLDgg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckhpc3RvcnkuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGlz
dG9yeS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQppbmRleCBkZDMxM2FhNjQ4NjFmZTM5ZDIzZWQ0MWRmNWM2MmJhNjg0
NmJmMjEyLi42MzdmMGZmMTVjYzMyNTE5ODI5NGQxNDdhZWNiZmFmNTFmNWJlYzg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKQEAgLTgwMCw2ICs4MDAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmNwcCBcCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCBc
CiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckhpc3RvcnkuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9ySW5wdXRBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwIFwKQEAgLTE5OTIsNiArMTk5Myw3IEBAIEhFQURFUlMgKz0gXAogICAgIGluc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmggXAorICAgIGluc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIFwKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhMTJlNzZkMGI0MWRkZjBlZTcxZDhkMjZhZjQ3Njc1
YTZmYzQ4MzAzLi4wYjUyNWZkOWViNDk5MzZhMjA3OTczNzNlNzFjODE3NDUxMTM1NjljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0xODc4LDYgKzE4NzgsOCBAQAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuaCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50LmNwcCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50LmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JI
aXN0b3J5LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rvckhpc3RvcnkuaCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGY2OTVj
MmNmMmJlYjRkOTk2YzUwNTc0NTM1OTRlNzM4ZTIzMDFiYWYuLjM5YTFlY2U1YTMzNzdmMTcyNGI5
NWQ3YTJjOWQ3ZmJlNDc4NDA0NzUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC03NjA0Myw2ICs3NjA0MywzMCBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXElu
c3BlY3Rvckhpc3RvcnkuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDI3YTNl
ZGFmMjQ4NzUyMzNmY2Y3YTM4Yjk2YWIzYzFhMTQ2Y2NhMzkuLjQ1MDYxZmMzZjdhZGEyNmRjYTQx
MzY4MDJkZDlmZGYyM2YyZTA3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagpAQCAtNTY5MSw2ICs1NjkxLDkgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIj4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3Rvckhpc3RvcnkuY3BwIj4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4K
QEAgLTgzNjgsNiArODM3MSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0
b3JcSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgiIC8+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNw
ZWN0b3JIaXN0b3J5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3Jc
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGluc3BlY3RvclxJbnNwZWN0b3JJbnB1dEFnZW50LmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggOWFk
OGFkZTdiZGJhZTE5ZjY4ZWMxYjgyMWE0MTMwMjZkODg5ZTg0Ni4uYzNhZGVkOGYzMjhmNzJmYzc0
MDM0Zjk3MGRiYmI5OWQxZGE3Y2FhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNjQ5Miw2ICs2NDkyLDkg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVu
ZEhvc3QuY3BwIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Cisg
ICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5z
cGVjdG9ySGlzdG9yeS5jcHAiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAg
ICA8L0NsQ29tcGlsZT4KQEAgLTEzNzc5LDYgKzEzNzgyLDkgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCI+CiAgICAgICA8Rmls
dGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgiPgorICAg
ICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JIaXN0b3J5LmgiPgogICAgICAg
PEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NDBlOGQz
MjNhODJmMmUyNmRiYWE2MmYyMDNjYzI4MGQzZjA4ZjcxLi5hMWZjMzY4ODQwNTkzOTI5YjY4ZDk4
MTI2ZTc2NjJhMWIwMjc1MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zODEzLDYgKzM4MTMsOCBAQAogCQk5QkY5QTg4MTE2
NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUJGOUE4N0YxNjQ4REQyRjAw
MUM2QjIzIC8qIEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJOUYwRDZC
MkUxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUYwRDZCMkMxMjFCRkVCQTAw
NkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwICovOyB9OwogCQk5RjBENkIyRjEy
MUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUYwRDZCMkQxMjFCRkVCQTAwNkMwMjg4
IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuaCAqLzsgfTsKKwkJNTExMjkzNUYzRDU0QjRCNTJG
QUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTI5MzYxM0Q2REI0QjUyRkFGOTczRiAv
KiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgKi87IH07CisJCTUxMTI5MzYwM0Q2MEI0
QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMjkzNjIzRDg1QjRCNTJGQUY5NzNG
IC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggKi87IH07CiAJCTlGM0I5NDdFMTIyNDE3
NTgwMDUzMDRFNyAvKiBTY3JpcHRIZWFwU25hcHNob3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGM0I5NDdEMTIyNDE3NTgwMDUzMDRFNyAvKiBTY3Jp
cHRIZWFwU25hcHNob3QuaCAqLzsgfTsKIAkJOUY2RkMxOTYxMTIyRTgyQTAwRTgwMTk2IC8qIFNj
cmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlGNkZDMTk0MTEyMkU4MkEwMEU4MDE5NiAvKiBTY3JpcHREZWJ1Z1NlcnZlci5j
cHAgKi87IH07CiAJCTlGNkZDMTk3MTEyMkU4MkEwMEU4MDE5NiAvKiBTY3JpcHREZWJ1Z1NlcnZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUY2RkMx
OTUxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExMjU5LDYgKzExMjYxLDggQEAK
IAkJOUJGOUE4N0YxNjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRm9ybUNvbnRyb2xz
Q29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjBENkIyQzEyMUJG
RUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUYwRDZCMkQxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTEy
OTM2MTNENkRCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTEyOTM2MjNEODVCNEI1
MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUYzQjk0N0QxMjI0MTc1ODAwNTMwNEU3IC8qIFNjcmlwdEhl
YXBTbmFwc2hvdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRIZWFw
U25hcHNob3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUY2RkMxOTQxMTIyRTgy
QTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNjcmlwdERlYnVnU2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUY2RkMxOTUxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdERlYnVnU2VydmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTE2Myw2ICsxNTE2Nyw4IEBACiAJCQkJ
N0EwRTc3MEIxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgKi8s
CiAJCQkJN0EwRTc3MEMxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5o
ICovLAogCQkJCTdBMEU3NzBEMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhv
c3QuaWRsICovLAorCQkJCTUxMTI5MzYxM0Q2REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudC5jcHAgKi8sCisJCQkJNTExMjkzNjIzRDg1QjRCNTJGQUY5NzNGIC8qIElu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggKi8sCiAJCQkJN0E1NDg1N0QxNEUwMkQ1MTAwNkFF
MDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuY3BwICovLAogCQkJCTdBNTQ4NTdFMTRFMDJENTEwMDZB
RTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5LmggKi8sCiAJCQkJN0FDRDg4RDExNEMwOEJENjAwODRF
REQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCAqLywKQEAgLTI0NTY5LDYgKzI0NTc1
LDcgQEAKIAkJCQlGMzQ0QzcxNDExMjVCODJDMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDRDNzUzMTEyOTREOUQwMEYyNkVFRSAvKiBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTBFNzcw
RjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggaW4gSGVhZGVycyAq
LywKKwkJCQk1MTEyOTM2MDNENjBCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBNTQ4NTgwMTRFMDJENTEwMDZBRTA1QSAvKiBJ
bnNwZWN0b3JIaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUNEODhENDE0QzA4QkQ2MDA4
NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTRE
MjczQ0ZBMTY2OTQyMDgwMDI1OUNBMSAvKiBJbnNwZWN0b3JJbnB1dEFnZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTI3ODQyLDYgKzI3ODQ5LDcgQEAKIAkJCQk0RjRGNUZGQjExQ0JEMkUxMDBBMTg2
QkYgLyogSW5zcGVjdG9yRnJvbnRlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM0NEM3NTgx
MTI5NEZGNjAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0EwRTc3MEUxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTEyOTM1RjNENTRCNEI1MkZBRjk3M0Yg
LyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E1
NDg1N0YxNEUwMkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0FDRDg4RDMxNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTREMjczQ0Y5MTY2OTQyMDgwMDI1OUNBMSAvKiBJ
bnNwZWN0b3JJbnB1dEFnZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDhkZmRjNTVjMDAxZWVjMTdkZGRmYTEwM2Y5NWM3YzVk
MzMwYjg2ZGYuLjdkZGYwMWJlNjQzMzM2Yzc3NjcxMWI4YjI1NjQyZWIwYWRmNTI1ZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTMyOTIsNiArMzI5MiwxMTUg
QEAKICAgICAgICAgXQogICAgIH0sCiAgICAgeworICAgICAgICAiZG9tYWluIjogIkhlYXBQcm9m
aWxlciIsCisgICAgICAgICJoaWRkZW4iOiB0cnVlLAorICAgICAgICAidHlwZXMiOiBbCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgImlkIjogIlByb2ZpbGVIZWFkZXIiLAorICAgICAg
ICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlByb2ZpbGUgaGVhZGVyLiIsCisgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGl0bGUiLCAidHlwZSI6ICJzdHJpbmciLCAi
ZGVzY3JpcHRpb24iOiAiUHJvZmlsZSB0aXRsZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidWlkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUg
aWRlbnRpZmllciBvZiB0aGUgcHJvZmlsZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAibWF4SlNPYmplY3RJZCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiTGFzdCBzZWVuIEpTIG9iamVjdCBJZC4iIH0KKyAgICAgICAgICAg
ICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJp
ZCI6ICJIZWFwU25hcHNob3RPYmplY3RJZCIsCisgICAgICAgICAgICAgICAgInR5cGUiOiAic3Ry
aW5nIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSGVhcCBzbmFzaG90IG9iamVj
dCBpZC4iCisgICAgICAgICAgICB9CisgICAgICAgIF0sCisgICAgICAgICJjb21tYW5kcyI6IFsK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJoYXNIZWFwUHJvZmlsZXIi
LAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInJlc3VsdCIsICJ0eXBlIjogImJvb2xlYW4iIH0KKyAgICAgICAgICAgICAgICBdCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImdl
dFByb2ZpbGVIZWFkZXJzIiwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJoZWFkZXJzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMi
OiB7ICIkcmVmIjogIlByb2ZpbGVIZWFkZXIifSB9CisgICAgICAgICAgICAgICAgXQorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRIZWFw
U25hcHNob3QiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0eXBlIjogImludGVnZXIiIH0KKyAgICAgICAgICAg
ICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJu
YW1lIjogInJlbW92ZVByb2ZpbGUiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0eXBlIjogImludGVnZXIiIH0K
KyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJuYW1lIjogImNsZWFyUHJvZmlsZXMiCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogInRha2VIZWFwU25hcHNob3QiLAorICAg
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInJlcG9ydFByb2dyZXNzIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUs
ICJkZXNjcmlwdGlvbiI6ICJJZiB0cnVlICdyZXBvcnRIZWFwU25hcHNob3RQcm9ncmVzcycgZXZl
bnRzIHdpbGwgYmUgZ2VuZXJhdGVkIHdoaWxlIHNuYXBzaG90IGlzIGJlaW5nIHRha2VuLiIgfQor
ICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgIm5hbWUiOiAiY29sbGVjdEdhcmJhZ2UiCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImdldE9iamVjdEJ5SGVhcE9iamVjdElk
IiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjogIkhlYXBTbmFwc2hvdE9iamVjdElkIiB9LAor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdEdyb3VwIiwgInR5cGUiOiAic3Ry
aW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN5bWJvbGljIGdyb3VwIG5h
bWUgdGhhdCBjYW4gYmUgdXNlZCB0byByZWxlYXNlIG11bHRpcGxlIG9iamVjdHMuIiB9CisgICAg
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVj
dCIsICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0aW9uIHJlc3VsdC4iIH0KKyAgICAgICAgICAgICAg
ICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1l
IjogImdldEhlYXBPYmplY3RJZCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0SWQiLCAiJHJlZiI6ICJSdW50aW1l
LlJlbW90ZU9iamVjdElkIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIG9iamVj
dCB0byBnZXQgaGVhcCBvYmplY3QgaWQgZm9yLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
aGVhcFNuYXBzaG90T2JqZWN0SWQiLCAiJHJlZiI6ICJIZWFwU25hcHNob3RPYmplY3RJZCIsICJk
ZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgaGVhcCBzbmFwc2hvdCBvYmplY3QgY29ycmVzcG9uZGlu
ZyB0byB0aGUgcGFzc2VkIHJlbW90ZSBvYmplY3QgaWQuIiB9CisgICAgICAgICAgICAgICAgXQor
ICAgICAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICAiZXZlbnRzIjogWworICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImFkZFByb2ZpbGVIZWFkZXIiLAorICAgICAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImhlYWRlciIsICIkcmVmIjogIlByb2ZpbGVIZWFkZXIiIH0KKyAgICAgICAgICAgICAgICBdCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImFk
ZEhlYXBTbmFwc2hvdENodW5rIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1aWQiLCAidHlwZSI6ICJpbnRlZ2VyIiB9LAor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNodW5rIiwgInR5cGUiOiAic3RyaW5nIiB9
CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAibmFtZSI6ICJmaW5pc2hIZWFwU25hcHNob3QiLAorICAgICAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0
eXBlIjogImludGVnZXIiIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogInJlc2V0UHJvZmlsZXMiCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogInJlcG9y
dEhlYXBTbmFwc2hvdFByb2dyZXNzIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb25lIiwgInR5cGUiOiAiaW50ZWdlciIg
fSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0b3RhbCIsICJ0eXBlIjogImludGVn
ZXIiIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9CisgICAgICAgIF0KKyAgICB9
LAorICAgIHsKICAgICAgICAgImRvbWFpbiI6ICJXb3JrZXIiLAogICAgICAgICAiaGlkZGVuIjog
dHJ1ZSwKICAgICAgICAgInR5cGVzIjogW10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFsbEluT25lLmNwcAppbmRleCA5YzlmZjIwODU5YzJkOGNiODU2MzQ3ZDY3Yjgx
MTMxYTdiYjg5ZWJmLi42N2NlYTQ2MGUyMGUxOWYyZGFmY2ZjOTVjZGQzYTY3NmI4MjA5OTM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKQEAg
LTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwIgog
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIgogI2luY2x1ZGUgIklu
c3BlY3RvckZyb250ZW5kSG9zdC5jcHAiCisjaW5jbHVkZSAiSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3Rvckhpc3RvcnkuY3BwIgogI2luY2x1ZGUgIklu
c3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnB1dEFnZW50
LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcAppbmRleCBmM2RhODA4YzI5M2YzYzY0MGEzZTkwZmY3MGY3OWUzZjBlZmJmZjJhLi5kZjUw
ZDBlMTYyM2Q4ZjIwMDczMzMzOTMyNDJjNTNmMmI3NzllMTdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC01NCw2ICs1NCw3IEBA
CiAjaW5jbHVkZSAiSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIgorI2lu
Y2x1ZGUgIkluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnB1dEFnZW50LmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCkBAIC0xNTIsNiArMTUzLDkgQEAgSW5z
cGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0
b3JDbGllbnQqIGluc3BlY3RvckMKICAgICBPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4g
cHJvZmlsZXJBZ2VudFB0cihJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQsIHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CiAgICAgbV9wcm9maWxlckFnZW50ID0gcHJv
ZmlsZXJBZ2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQocHJvZmlsZXJBZ2VudFB0
ci5yZWxlYXNlKCkpOworCisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgp
LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOworCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShXT1JLRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY1YjM0NGMwZjVjZjliZmVjYmFl
NGRhOGI0OTk0MDYxNGUyMWJiNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAKQEAgLTAsMCArMSwyNDYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYg
RU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIkluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
LmgiCisKKyNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgorI2luY2x1ZGUgIkluamVjdGVkU2Ny
aXB0SG9zdC5oIgorI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKKyNpbmNsdWRlICJT
Y3JpcHRQcm9maWxlci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24u
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgVXNl
ckluaXRpYXRlZFByb2ZpbGVOYW1lID0gIm9yZy53ZWJraXQucHJvZmlsZXMudXNlci1pbml0aWF0
ZWQiOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IEhlYXBQcm9maWxlVHlwZSA9ICJIRUFQIjsK
KworUGFzc093blB0cjxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2Ny
aXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQoreworICAgIHJldHVybiBhZG9wdFB0
cihuZXcgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5z
cGVjdG9yU3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOworfQorCitJbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGluc3Bl
Y3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikK
KyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4oIkhl
YXBQcm9maWxlciIsIGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQorICAgICwg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgICwgbV9m
cm9udGVuZCgwKQorICAgICwgbV9oZWFkZXJzUmVxdWVzdGVkKGZhbHNlKQorICAgICwgbV9uZXh0
VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlcigxKQoreworICAgIG1faW5zdHJ1bWVudGlu
Z0FnZW50cy0+c2V0SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQodGhpcyk7Cit9CisKK0luc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50Ojp+SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoKQorewor
ICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQo
MCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJlc2V0U3RhdGUoKQor
eworICAgIG1fc25hcHNob3RzLmNsZWFyKCk7CisgICAgbV9uZXh0VXNlckluaXRpYXRlZEhlYXBT
bmFwc2hvdE51bWJlciA9IDE7CisgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7CisgICAgbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgpLT5jbGVhckluc3BlY3Rl
ZE9iamVjdHMoKTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzZXRG
cm9udGVuZFByb2ZpbGVzKCkKK3sKKyAgICBpZiAobV9oZWFkZXJzUmVxdWVzdGVkICYmIG1fZnJv
bnRlbmQgJiYgbV9zbmFwc2hvdHMuaXNFbXB0eSgpKQorICAgICAgICBtX2Zyb250ZW5kLT5yZXNl
dFByb2ZpbGVzKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnNldEZy
b250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKK3sKKyAgICBtX2Zyb250ZW5kID0g
ZnJvbnRlbmQtPmhlYXBwcm9maWxlcigpOworfQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50OjpjbGVhckZyb250ZW5kKCkKK3sKKyAgICBtX2hlYWRlcnNSZXF1ZXN0ZWQgPSBmYWxz
ZTsKKyAgICBtX2Zyb250ZW5kID0gMDsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudDo6cmVzdG9yZSgpCit7CisgICAgLy8gUmV2aXNpdCB0aGlzLgorICAgIG1faGVhZGVyc1Jl
cXVlc3RlZCA9IHRydWU7CisgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7Cit9CisKK3ZvaWQg
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNvbGxlY3RHYXJiYWdlKFdlYkNvcmU6OkVycm9y
U3RyaW5nKikKK3sKKyAgICBTY3JpcHRQcm9maWxlcjo6Y29sbGVjdEdhcmJhZ2UoKTsKK30KKwor
UGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiBJbnNw
ZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlU25hcHNob3RIZWFkZXIoY29uc3QgU2NyaXB0
SGVhcFNuYXBzaG90JiBzbmFwc2hvdCkKK3sKKyAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkhlYXBQ
cm9maWxlcjo6UHJvZmlsZUhlYWRlcj4gaGVhZGVyID0gVHlwZUJ1aWxkZXI6OkhlYXBQcm9maWxl
cjo6UHJvZmlsZUhlYWRlcjo6Y3JlYXRlKCkKKyAgICAgICAgLnNldFVpZChzbmFwc2hvdC51aWQo
KSkKKyAgICAgICAgLnNldFRpdGxlKHNuYXBzaG90LnRpdGxlKCkpOworICAgIGhlYWRlci0+c2V0
TWF4SlNPYmplY3RJZChzbmFwc2hvdC5tYXhTbmFwc2hvdEpTT2JqZWN0SWQoKSk7CisgICAgcmV0
dXJuIGhlYWRlci5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnQ6Omhhc0hlYXBQcm9maWxlcihFcnJvclN0cmluZyosIGJvb2wqIHJlc3VsdCkKK3sKKyAgICAq
cmVzdWx0ID0gU2NyaXB0UHJvZmlsZXI6Omhhc0hlYXBQcm9maWxlcigpOworfQorCit2b2lkIElu
c3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRQcm9maWxlSGVhZGVycyhFcnJvclN0cmluZyos
IFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkhlYXBQcm9maWxlcjo6UHJv
ZmlsZUhlYWRlcj4gPiYgaGVhZGVycykKK3sKKyAgICBtX2hlYWRlcnNSZXF1ZXN0ZWQgPSB0cnVl
OworICAgIGhlYWRlcnMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkhlYXBQcm9m
aWxlcjo6UHJvZmlsZUhlYWRlcj46OmNyZWF0ZSgpOworCisgICAgSWRUb0hlYXBTbmFwc2hvdE1h
cDo6aXRlcmF0b3Igc25hcHNob3RzRW5kID0gbV9zbmFwc2hvdHMuZW5kKCk7CisgICAgZm9yIChJ
ZFRvSGVhcFNuYXBzaG90TWFwOjppdGVyYXRvciBpdCA9IG1fc25hcHNob3RzLmJlZ2luKCk7IGl0
ICE9IHNuYXBzaG90c0VuZDsgKytpdCkKKyAgICAgICAgaGVhZGVycy0+YWRkSXRlbShjcmVhdGVT
bmFwc2hvdEhlYWRlcigqaXQtPnZhbHVlKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQ6OmdldEhlYXBTbmFwc2hvdChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBy
YXdVaWQpCit7CisgICAgY2xhc3MgT3V0cHV0U3RyZWFtIDogcHVibGljIFNjcmlwdEhlYXBTbmFw
c2hvdDo6T3V0cHV0U3RyZWFtIHsKKyAgICBwdWJsaWM6CisgICAgICAgIE91dHB1dFN0cmVhbShJ
bnNwZWN0b3JGcm9udGVuZDo6SGVhcFByb2ZpbGVyKiBmcm9udGVuZCwgdW5zaWduZWQgdWlkKQor
ICAgICAgICAgICAgOiBtX2Zyb250ZW5kKGZyb250ZW5kKSwgbV91aWQodWlkKSB7IH0KKyAgICAg
ICAgdm9pZCBXcml0ZShjb25zdCBTdHJpbmcmIGNodW5rKSB7IG1fZnJvbnRlbmQtPmFkZEhlYXBT
bmFwc2hvdENodW5rKG1fdWlkLCBjaHVuayk7IH0KKyAgICAgICAgdm9pZCBDbG9zZSgpIHsgbV9m
cm9udGVuZC0+ZmluaXNoSGVhcFNuYXBzaG90KG1fdWlkKTsgfQorICAgIHByaXZhdGU6CisgICAg
ICAgIEluc3BlY3RvckZyb250ZW5kOjpIZWFwUHJvZmlsZXIqIG1fZnJvbnRlbmQ7CisgICAgICAg
IGludCBtX3VpZDsKKyAgICB9OworCisgICAgdW5zaWduZWQgdWlkID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHJhd1VpZCk7CisgICAgSWRUb0hlYXBTbmFwc2hvdE1hcDo6aXRlcmF0b3IgaXQgPSBt
X3NuYXBzaG90cy5maW5kKHVpZCk7CisgICAgaWYgKGl0ID09IG1fc25hcHNob3RzLmVuZCgpKSB7
CisgICAgICAgICplcnJvclN0cmluZyA9ICJQcm9maWxlIHdhc24ndCBmb3VuZCI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgUmVmUHRyPFNjcmlwdEhlYXBTbmFwc2hvdD4gc25hcHNob3Qg
PSBpdC0+dmFsdWU7CisgICAgaWYgKG1fZnJvbnRlbmQpIHsKKyAgICAgICAgT3V0cHV0U3RyZWFt
IHN0cmVhbShtX2Zyb250ZW5kLCB1aWQpOworICAgICAgICBzbmFwc2hvdC0+d3JpdGVKU09OKCZz
dHJlYW0pOworICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVt
b3ZlUHJvZmlsZShFcnJvclN0cmluZyosIGludCByYXdVaWQpCit7CisgICAgdW5zaWduZWQgdWlk
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJhd1VpZCk7CisgICAgaWYgKG1fc25hcHNob3RzLmNv
bnRhaW5zKHVpZCkpCisgICAgICAgIG1fc25hcHNob3RzLnJlbW92ZSh1aWQpOworfQorCit2b2lk
IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojp0YWtlSGVhcFNuYXBzaG90KEVycm9yU3RyaW5n
KiwgY29uc3QgYm9vbCogcmVwb3J0UHJvZ3Jlc3MpCit7CisgICAgY2xhc3MgSGVhcFNuYXBzaG90
UHJvZ3Jlc3M6IHB1YmxpYyBTY3JpcHRQcm9maWxlcjo6SGVhcFNuYXBzaG90UHJvZ3Jlc3Mgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQgSGVhcFNuYXBzaG90UHJvZ3Jlc3MoSW5zcGVj
dG9yRnJvbnRlbmQ6OkhlYXBQcm9maWxlciogZnJvbnRlbmQpCisgICAgICAgICAgICA6IG1fZnJv
bnRlbmQoZnJvbnRlbmQpIHsgfQorICAgICAgICB2b2lkIFN0YXJ0KGludCB0b3RhbFdvcmspCisg
ICAgICAgIHsKKyAgICAgICAgICAgIG1fdG90YWxXb3JrID0gdG90YWxXb3JrOworICAgICAgICB9
CisgICAgICAgIHZvaWQgV29ya2VkKGludCB3b3JrRG9uZSkKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgICAgICAgICAgbV9mcm9udGVuZC0+cmVwb3J0SGVh
cFNuYXBzaG90UHJvZ3Jlc3Mod29ya0RvbmUsIG1fdG90YWxXb3JrKTsKKyAgICAgICAgfQorICAg
ICAgICB2b2lkIERvbmUoKSB7IH0KKyAgICAgICAgYm9vbCBpc0NhbmNlbGVkKCkgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICBwcml2YXRlOgorICAgICAgICBJbnNwZWN0b3JGcm9udGVuZDo6SGVhcFBy
b2ZpbGVyKiBtX2Zyb250ZW5kOworICAgICAgICBpbnQgbV90b3RhbFdvcms7CisgICAgfTsKKwor
ICAgIFN0cmluZyB0aXRsZSA9IG1ha2VTdHJpbmcoVXNlckluaXRpYXRlZFByb2ZpbGVOYW1lLCAn
LicsIFN0cmluZzo6bnVtYmVyKG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1iZXIp
KTsKKyAgICArK21fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1iZXI7CisKKyAgICBI
ZWFwU25hcHNob3RQcm9ncmVzcyBwcm9ncmVzcyhyZXBvcnRQcm9ncmVzcyAmJiAqcmVwb3J0UHJv
Z3Jlc3MgPyBtX2Zyb250ZW5kIDogMCk7CisgICAgUmVmUHRyPFNjcmlwdEhlYXBTbmFwc2hvdD4g
c25hcHNob3QgPSBTY3JpcHRQcm9maWxlcjo6dGFrZUhlYXBTbmFwc2hvdCh0aXRsZSwgJnByb2dy
ZXNzKTsKKyAgICBpZiAoc25hcHNob3QpIHsKKyAgICAgICAgbV9zbmFwc2hvdHMuYWRkKHNuYXBz
aG90LT51aWQoKSwgc25hcHNob3QpOworICAgICAgICBpZiAobV9mcm9udGVuZCkKKyAgICAgICAg
ICAgIG1fZnJvbnRlbmQtPmFkZFByb2ZpbGVIZWFkZXIoY3JlYXRlU25hcHNob3RIZWFkZXIoKnNu
YXBzaG90KSk7CisgICAgfQorfQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojpn
ZXRPYmplY3RCeUhlYXBPYmplY3RJZChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYg
aGVhcFNuYXBzaG90T2JqZWN0SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxU
eXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0KQoreworICAgIGJvb2wg
b2s7CisgICAgdW5zaWduZWQgaWQgPSBoZWFwU25hcHNob3RPYmplY3RJZC50b1VJbnQoJm9rKTsK
KyAgICBpZiAoIW9rKSB7CisgICAgICAgICplcnJvciA9ICJJbnZhbGlkIGhlYXAgc25hcHNob3Qg
b2JqZWN0IGlkIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBTY3JpcHRPYmplY3QgaGVh
cE9iamVjdCA9IFNjcmlwdFByb2ZpbGVyOjpvYmplY3RCeUhlYXBPYmplY3RJZChpZCk7CisgICAg
aWYgKGhlYXBPYmplY3QuaGFzTm9WYWx1ZSgpKSB7CisgICAgICAgICplcnJvciA9ICJPYmplY3Qg
aXMgbm90IGF2YWlsYWJsZSI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgSW5qZWN0ZWRT
Y3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRT
Y3JpcHRGb3IoaGVhcE9iamVjdC5zY3JpcHRTdGF0ZSgpKTsKKyAgICBpZiAoaW5qZWN0ZWRTY3Jp
cHQuaGFzTm9WYWx1ZSgpKSB7CisgICAgICAgICplcnJvciA9ICJPYmplY3QgaXMgbm90IGF2YWls
YWJsZS4gSW5zcGVjdGVkIGNvbnRleHQgaXMgZ29uZSI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgcmVzdWx0ID0gaW5qZWN0ZWRTY3JpcHQud3JhcE9iamVjdChoZWFwT2JqZWN0LCBvYmpl
Y3RHcm91cCA/ICpvYmplY3RHcm91cCA6ICIiKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAg
KmVycm9yID0gIkZhaWxlZCB0byB3cmFwIG9iamVjdCI7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQ6OmdldEhlYXBPYmplY3RJZChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIFN0cmluZyogaGVhcFNuYXBzaG90T2JqZWN0SWQpCit7
CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFu
YWdlci0+aW5qZWN0ZWRTY3JpcHRGb3JPYmplY3RJZChvYmplY3RJZCk7CisgICAgaWYgKGluamVj
dGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkgeworICAgICAgICAqZXJyb3JTdHJpbmcgPSAiSW5zcGVj
dGVkIGNvbnRleHQgaGFzIGdvbmUiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFNjcmlw
dFZhbHVlIHZhbHVlID0gaW5qZWN0ZWRTY3JpcHQuZmluZE9iamVjdEJ5SWQob2JqZWN0SWQpOwor
ICAgIGlmICh2YWx1ZS5oYXNOb1ZhbHVlKCkgfHwgdmFsdWUuaXNVbmRlZmluZWQoKSkgeworICAg
ICAgICAqZXJyb3JTdHJpbmcgPSAiT2JqZWN0IHdpdGggZ2l2ZW4gaWQgbm90IGZvdW5kIjsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICB1bnNpZ25lZCBpZCA9IFNjcmlwdFByb2ZpbGVyOjpn
ZXRIZWFwT2JqZWN0SWQodmFsdWUpOworICAgICpoZWFwU25hcHNob3RPYmplY3RJZCA9IFN0cmlu
Zzo6bnVtYmVyKGlkKTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
K3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJD
b3JlTWVtb3J5VHlwZXM6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQpOworICAgIEluc3BlY3RvckJh
c2VBZ2VudDxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD46OnJlcG9ydE1lbW9yeVVzYWdlKG1l
bW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLCAiaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyIik7CisgICAgaW5mby5hZGRXZWFrUG9pbnRlciht
X2Zyb250ZW5kKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NuYXBzaG90cywgInNuYXBzaG90cyIp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikgJiYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODg0MWI4MGNjNWZjMzY1ZWJlYWNlMjhhMWQxMDFiNWIyMjc5YWQ0YQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5o
CkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudF9oCisj
ZGVmaW5lIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50X2gKKworI2lmIEVOQUJMRShKQVZBU0NS
SVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiSW5zcGVjdG9y
QmFzZUFnZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXI7CitjbGFzcyBTY3JpcHRIZWFwU25hcHNob3Q7CitjbGFzcyBTY3JpcHRQ
cm9maWxlOworCit0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKKworY2xhc3MgSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50PiwgcHVibGljIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpIZWFw
UHJvZmlsZXJDb21tYW5kSGFuZGxlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4gY3JlYXRl
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVk
U2NyaXB0TWFuYWdlciopOworICAgIHZpcnR1YWwgfkluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdEdhcmJhZ2UoRXJyb3JTdHJpbmcqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJQcm9maWxlcyhFcnJvclN0cmluZyopIHsgcmVzZXRTdGF0ZSgp
OyB9CisgICAgdm9pZCByZXNldFN0YXRlKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgaGFzSGVhcFBy
b2ZpbGVyKEVycm9yU3RyaW5nKiwgYm9vbCopOworCisgICAgdmlydHVhbCB2b2lkIGdldFByb2Zp
bGVIZWFkZXJzKEVycm9yU3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVp
bGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9maWxlSGVhZGVyPiA+Jik7CisgICAgdmlydHVhbCB2b2lk
IGdldEhlYXBTbmFwc2hvdChFcnJvclN0cmluZyosIGludCB1aWQpOworICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVQcm9maWxlKEVycm9yU3RyaW5nKiwgaW50IHVpZCk7CisKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xl
YXJGcm9udGVuZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCk7CisKKyAgICB2aXJ0dWFs
IHZvaWQgdGFrZUhlYXBTbmFwc2hvdChFcnJvclN0cmluZyosIGNvbnN0IGJvb2wqIHJlcG9ydFBy
b2dyZXNzKTsKKworICAgIHZpcnR1YWwgdm9pZCBnZXRPYmplY3RCeUhlYXBPYmplY3RJZChFcnJv
clN0cmluZyosIGNvbnN0IFN0cmluZyYgaGVhcFNuYXBzaG90T2JqZWN0SWQsIGNvbnN0IFN0cmlu
Zyogb2JqZWN0R3JvdXAsIFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0
PiYgcmVzdWx0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0SGVhcE9iamVjdElkKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgU3RyaW5nKiBoZWFwU25hcHNob3RPYmplY3RJZCk7
CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyop
IGNvbnN0IE9WRVJSSURFOworCisgICAgdm9pZCB3aWxsUHJvY2Vzc1Rhc2soKTsKKyAgICB2b2lk
IGRpZFByb2Nlc3NUYXNrKCk7CisKK3ByaXZhdGU6CisgICAgSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisKKyAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIFJl
ZlB0cjxTY3JpcHRIZWFwU25hcHNob3Q+ID4gSWRUb0hlYXBTbmFwc2hvdE1hcDsKKworICAgIHZv
aWQgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7CisKKyAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVy
OjpIZWFwUHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+IGNyZWF0ZVNuYXBzaG90SGVhZGVyKGNvbnN0
IFNjcmlwdEhlYXBTbmFwc2hvdCYpOworCisgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBtX2lu
amVjdGVkU2NyaXB0TWFuYWdlcjsKKyAgICBJbnNwZWN0b3JGcm9udGVuZDo6SGVhcFByb2ZpbGVy
KiBtX2Zyb250ZW5kOworICAgIGJvb2wgbV9oZWFkZXJzUmVxdWVzdGVkOworICAgIHVuc2lnbmVk
IG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1iZXI7CisgICAgSWRUb0hlYXBTbmFw
c2hvdE1hcCBtX3NuYXBzaG90czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQor
CisjZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnRfaCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKaW5kZXggYTFmNTAxZDI0MDU1OGI4Y2ViOGNiMGRlZjEwMDZkYWI1Y2MwODlkNS4uYTMwZDE1
ZjJmNjIzMjhhN2UzNDM2ZDM4YmU3YjEwZjc3YWFkYzA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTU2LDYg
KzU2LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgogI2luY2x1ZGUgIkluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRlYnVnZ2VyQWdlbnQu
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckxheWVyVHJlZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50Lmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIgpAQCAtOTI0LDYgKzkyNSw4IEBA
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
ICYmIFVTRShKU0MpCiAgICAgICAgIGlmIChJbnNwZWN0b3JQcm9maWxlckFnZW50KiBwcm9maWxl
ckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUHJvZmlsZXJBZ2VudCgpKQog
ICAgICAgICAgICAgcHJvZmlsZXJBZ2VudC0+cmVzZXRTdGF0ZSgpOworICAgICAgICBpZiAoSW5z
cGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQqIGhlYXBQcm9maWxlckFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy0+aW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoKSkKKyAgICAgICAgICAgIGhlYXBQ
cm9maWxlckFnZW50LT5yZXNldFN0YXRlKCk7CiAjZW5kaWYKICAgICAgICAgaWYgKEluc3BlY3Rv
ckNTU0FnZW50KiBjc3NBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckNTU0Fn
ZW50KCkpCiAgICAgICAgICAgICBjc3NBZ2VudC0+cmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCmluZGV4IDJhODI4N2VlYzYwOWZmZmY5
MDM0ZjhkZjIyMDMzMmE2NGNiNmEzNTkuLmNkOGEyZDkyNzg0ZjI0ZmYyMmM2NjQ0NWNjMzQyZGIx
YzU0YTJiMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50
aW5nQWdlbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdB
Z2VudHMuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ7
CiBjbGFzcyBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDsKIGNsYXNzIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDsKK2NsYXNzIEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50OwogY2xhc3MgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ7CiBjbGFzcyBJ
bnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JQcm9maWxlckFnZW50OwpAQCAtMTI3
LDYgKzEyOCw5IEBAIHB1YmxpYzoKIAogICAgIEluc3BlY3RvclByb2ZpbGVyQWdlbnQqIGluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvclByb2ZpbGVyQWdl
bnQ7IH0KICAgICB2b2lkIHNldEluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JQcm9maWxlckFnZW50ID0gYWdlbnQ7IH0KKwor
ICAgIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KiBpbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ7IH0KKyAgICB2
b2lkIHNldEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KEluc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50KiBhZ2VudCkgeyBtX2luc3BlY3RvckhlYXBQcm9maWxlckFnZW50ID0gYWdlbnQ7IH0KICNl
bmRpZgogCiAjaWYgRU5BQkxFKFdPUktFUlMpCkBAIC0xNzAsNiArMTc0LDcgQEAgcHJpdmF0ZToK
ICAgICBQYWdlRGVidWdnZXJBZ2VudCogbV9wYWdlRGVidWdnZXJBZ2VudDsKICAgICBJbnNwZWN0
b3JET01EZWJ1Z2dlckFnZW50KiBtX2luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ7CiAgICAgSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudCogbV9pbnNwZWN0b3JQcm9maWxlckFnZW50OworICAgIEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50KiBtX2luc3BlY3RvckhlYXBQcm9maWxlckFnZW50OwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgSW5zcGVjdG9yV29ya2VyQWdlbnQqIG1faW5z
cGVjdG9yV29ya2VyQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggOWM3NWM5MzdkMTM4ZTk5MTE3MTg5
OTZiYTg2M2M1ZTMzNWZiYzRkYS4uNzAwNGFlOWY5YWMwNjU1ZmE2ZjMzMmRjZDU4NDJjN2FiMTI3
MjgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkluc3BlY3Rv
ckNvbnNvbGVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JQcm9maWxlckFnZW50LmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZUNsaWVudC5o
IgpAQCAtMTEwLDYgKzExMSw3IEBAIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4CiAgICAgbV9hZ2Vu
dHMuYXBwZW5kKGRlYnVnZ2VyQWdlbnQucmVsZWFzZSgpKTsKIAogICAgIG1fYWdlbnRzLmFwcGVu
ZChJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdl
dCgpLCBjb25zb2xlQWdlbnQuZ2V0KCksIHdvcmtlckNvbnRleHQsIG1fc3RhdGUuZ2V0KCksIG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOwogI2VuZGlm
CiAgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIDAsIG1fc3RhdGUuZ2V0KCksIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6Oldvcmtlckluc3BlY3RvciwgMCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChjb25z
b2xlQWdlbnQucmVsZWFzZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvSGVhcFNuYXBzaG90RGF0YUdyaWRzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanMKaW5kZXggMTFiMzQ5YTQx
NTViYmY2ZDY3YjRhMmJjYTI1YzdlMDlhZjcwYjFiNS4uZGUzOGJjNjk4NGZhYjkxNDU5YTExNDlj
ZmI3NjFkNjc0ZDhmY2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanMKQEAgLTEzNCw3ICsxMzQs
NyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90U29ydGFibGVEYXRhR3JpZC5wcm90b3R5cGUg
PSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7UHJvZmlsZXJBZ2VudC5IZWFw
U25hcHNob3RPYmplY3RJZH0gaGVhcFNuYXBzaG90T2JqZWN0SWQKKyAgICAgKiBAcGFyYW0ge0hl
YXBQcm9maWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElkfSBoZWFwU25hcHNob3RPYmplY3RJ
ZAogICAgICAqLwogICAgIGhpZ2hsaWdodE9iamVjdEJ5SGVhcFNuYXBzaG90SWQ6IGZ1bmN0aW9u
KGhlYXBTbmFwc2hvdE9iamVjdElkKQogICAgIHsKQEAgLTUyOCw3ICs1MjgsNyBAQCBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90Q29uc3RydWN0b3JzRGF0YUdyaWQucHJvdG90eXBlID0gewogCiAg
ICAgLyoqCiAgICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50Lkhl
YXBTbmFwc2hvdE9iamVjdElkfSBpZAorICAgICAqIEBwYXJhbSB7SGVhcFByb2ZpbGVyQWdlbnQu
SGVhcFNuYXBzaG90T2JqZWN0SWR9IGlkCiAgICAgICovCiAgICAgaGlnaGxpZ2h0T2JqZWN0QnlI
ZWFwU25hcHNob3RJZDogZnVuY3Rpb24oaWQpCiAgICAgewpAQCAtNzM0LDcgKzczNCw3IEBAIFdl
Ykluc3BlY3Rvci5IZWFwU25hcHNob3REb21pbmF0b3JzRGF0YUdyaWQucHJvdG90eXBlID0gewog
CiAgICAgLyoqCiAgICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50
LkhlYXBTbmFwc2hvdE9iamVjdElkfSBpZAorICAgICAqIEBwYXJhbSB7SGVhcFByb2ZpbGVyQWdl
bnQuSGVhcFNuYXBzaG90T2JqZWN0SWR9IGlkCiAgICAgICovCiAgICAgaGlnaGxpZ2h0T2JqZWN0
QnlIZWFwU25hcHNob3RJZDogZnVuY3Rpb24oaWQpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rlcy5q
cwppbmRleCBmMjk0MWM3NmExZjI5NDE0N2NlYWMwYjgwNDY4Nzc0ZmQ4OTU2ODZjLi5jOWU0MDBi
OGVlOGY4YzQ5NDdkN2YwYTdiY2NmYjg2NzMyMjY2YjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rlcy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rlcy5q
cwpAQCAtNDY1LDcgKzQ2NSw3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RHZW5lcmljT2Jq
ZWN0Tm9kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QcmltaXRpdmVW
YWx1ZShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vdCBhdmFpbGFibGUiKSkpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhlYXBPYmplY3RJZChT
dHJpbmcodGhpcy5zbmFwc2hvdE5vZGVJZCksIG9iamVjdEdyb3VwTmFtZSwgZm9ybWF0UmVzdWx0
KTsKKyAgICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldE9iamVjdEJ5SGVhcE9iamVjdElk
KFN0cmluZyh0aGlzLnNuYXBzaG90Tm9kZUlkKSwgb2JqZWN0R3JvdXBOYW1lLCBmb3JtYXRSZXN1
bHQpOwogICAgICAgICB9CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCmluZGV4IGRmOThkYjE2ZDA2ZTll
N2Q4NDcyZGU1NmVlYjkxYzQyMmM4ZDY5NzMuLjE3MjBlOWE4YjFiMjE0MDUzZTc3YWY0MThlOTM5
YjBmY2E5ZTNlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSGVhcFNuYXBzaG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKQEAgLTgwMSw3ICs4MDEsNyBAQCBXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAgICAg
ICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50LlByb2ZpbGVIZWFkZXJ9
IHByb2ZpbGUKKyAgICAgKiBAcGFyYW0ge0hlYXBQcm9maWxlckFnZW50LlByb2ZpbGVIZWFkZXJ9
IHByb2ZpbGUKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlcn0KICAg
ICAgKi8KICAgICBjcmVhdGVQcm9maWxlOiBmdW5jdGlvbihwcm9maWxlKQpAQCAtODc5LDcgKzg3
OSw3IEBAIFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5wcm90b3R5cGUgPSB7CiAKICAg
ICBzdGFydFNuYXBzaG90VHJhbnNmZXI6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFByb2Zp
bGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KHRoaXMudWlkKTsKKyAgICAgICAgSGVhcFByb2ZpbGVy
QWdlbnQuZ2V0SGVhcFNuYXBzaG90KHRoaXMudWlkKTsKICAgICB9LAogCiAgICAgc25hcHNob3RD
b25zdHJ1Y3Rvck5hbWU6IGZ1bmN0aW9uKCkKQEAgLTk4Niw3ICs5ODYsNyBAQCBXZWJJbnNwZWN0
b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fcmVj
ZWl2ZXIgPSBmaWxlT3V0cHV0U3RyZWFtOwogICAgICAgICAgICAgdGhpcy5fc2F2ZWRDaHVua3Mg
PSAwOwogICAgICAgICAgICAgdGhpcy5fdXBkYXRlVHJhbnNmZXJQcm9ncmVzcygwLCB0aGlzLl90
b3RhbE51bWJlck9mQ2h1bmtzKTsKLSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNu
YXBzaG90KHRoaXMudWlkKTsKKyAgICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldEhlYXBT
bmFwc2hvdCh0aGlzLnVpZCk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fc2F2aW5nVG9GaWxl
ID0gdHJ1ZTsKICAgICAgICAgdGhpcy5fZmlsZU5hbWUgPSB0aGlzLl9maWxlTmFtZSB8fCAiSGVh
cC0iICsgbmV3IERhdGUoKS50b0lTTzg2MDFDb21wYWN0KCkgKyAiLmhlYXBzbmFwc2hvdCI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFu
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwu
anMKaW5kZXggNWI0MThkZWYzMTI4MzA2Y2YwM2E0OTZiMTZiYmVhZTBhOGUwNjk1Yi4uYjkxNmE2
ZTI5ODg0OTZmN2U5MTM4MzQxNjljNDM1YWMzNjIzMjE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtMzA2LDYgKzMw
Niw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24oKQogICAgICAgICB0
aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVR5
cGUoKSk7CiAKICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyUHJvZmlsZXJEaXNwYXRjaGVy
KG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZXJEaXNwYXRjaGVyKHRoaXMpKTsKKyAgICBJbnNwZWN0
b3JCYWNrZW5kLnJlZ2lzdGVySGVhcFByb2ZpbGVyRGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9y
LkhlYXBQcm9maWxlckRpc3BhdGNoZXIodGhpcykpOwogICAgIEluc3BlY3RvckJhY2tlbmQucmVn
aXN0ZXJNZW1vcnlEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuTWVtb3J5RGlzcGF0Y2hlcih0
aGlzKSk7CiAKICAgICB0aGlzLl9jcmVhdGVGaWxlU2VsZWN0b3JFbGVtZW50KCk7CkBAIC00Njcs
MTIgKzQ2OCwxMyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgX2NsZWFyUHJvZmlsZXM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFByb2ZpbGVyQWdl
bnQuY2xlYXJQcm9maWxlcygpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5jbGVhclByb2Zp
bGVzKCk7CiAgICAgICAgIHRoaXMuX3Jlc2V0KCk7CiAgICAgfSwKIAogICAgIF9nYXJiYWdlQ29s
bGVjdEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFByb2ZpbGVyQWdl
bnQuY29sbGVjdEdhcmJhZ2UoKTsKKyAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuY29sbGVjdEdh
cmJhZ2UoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC02MjUsOCArNjI3LDEyIEBAIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBzaWRlYmFyUGFyZW50
LnJlbW92ZUNoaWxkKHByb2ZpbGUuX3Byb2ZpbGVzVHJlZUVsZW1lbnQpOwogCi0gICAgICAgIGlm
ICghcHJvZmlsZS5pc1RlbXBvcmFyeSkKLSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQucmVtb3Zl
UHJvZmlsZShwcm9maWxlLnByb2ZpbGVUeXBlKCkuaWQsIHByb2ZpbGUudWlkKTsKKyAgICAgICAg
aWYgKCFwcm9maWxlLmlzVGVtcG9yYXJ5KSB7CisgICAgICAgICAgICBpZiAocHJvZmlsZS5wcm9m
aWxlVHlwZSgpLmlkID09IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZS5UeXBl
SWQpCisgICAgICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQucmVtb3ZlUHJvZmlsZShwcm9m
aWxlLnVpZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgUHJvZmlsZXJBZ2Vu
dC5yZW1vdmVQcm9maWxlKHByb2ZpbGUucHJvZmlsZVR5cGUoKS5pZCwgcHJvZmlsZS51aWQpOwor
ICAgICAgICB9CiAKICAgICAgICAgLy8gTm8gb3RoZXIgaXRlbSB3aWxsIGJlIHNlbGVjdGVkIGlm
IHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgcHJvZmlsZXMsIHNvCiAgICAgICAgIC8vIG1ha2Ugc3Vy
ZSB0aGF0IHZpZXcgZ2V0cyBjbGVhcmVkIHdoZW4gdGhlIGxhc3QgcHJvZmlsZSBpcyByZW1vdmVk
LgpAQCAtNjg0LDcgKzY5MCw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50Lkhl
YXBTbmFwc2hvdE9iamVjdElkfSBzbmFwc2hvdE9iamVjdElkCisgICAgICogQHBhcmFtIHtIZWFw
UHJvZmlsZXJBZ2VudC5IZWFwU25hcHNob3RPYmplY3RJZH0gc25hcHNob3RPYmplY3RJZAogICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSB2aWV3TmFtZQogICAgICAqLwogICAgIHNob3dPYmplY3Q6IGZ1
bmN0aW9uKHNuYXBzaG90T2JqZWN0SWQsIHZpZXdOYW1lKQpAQCAtMTA4NywyMiArMTA5MywyNCBA
QCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7P3N0cmluZ30gdHlwZQog
ICAgICAgICAgKiBAcGFyYW0gez9zdHJpbmd9IGVycm9yCiAgICAgICAgICAqIEBwYXJhbSB7QXJy
YXkuPFByb2ZpbGVyQWdlbnQuUHJvZmlsZUhlYWRlcj59IHByb2ZpbGVIZWFkZXJzCiAgICAgICAg
ICAqLwotICAgICAgICBmdW5jdGlvbiBwb3B1bGF0ZUNhbGxiYWNrKGVycm9yLCBwcm9maWxlSGVh
ZGVycykgeworICAgICAgICBmdW5jdGlvbiBwb3B1bGF0ZUNhbGxiYWNrKHR5cGUsIGVycm9yLCBw
cm9maWxlSGVhZGVycykgewogICAgICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIHByb2ZpbGVIZWFkZXJzLnNvcnQoZnVuY3Rpb24oYSwgYikg
eyByZXR1cm4gYS51aWQgLSBiLnVpZDsgfSk7CiAgICAgICAgICAgICB2YXIgcHJvZmlsZUhlYWRl
cnNMZW5ndGggPSBwcm9maWxlSGVhZGVycy5sZW5ndGg7CiAgICAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHByb2ZpbGVIZWFkZXJzTGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICB2
YXIgcHJvZmlsZUhlYWRlciA9IHByb2ZpbGVIZWFkZXJzW2ldOwotICAgICAgICAgICAgICAgIHZh
ciBwcm9maWxlVHlwZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUocHJvZmlsZUhlYWRlci50eXBlSWQp
OworICAgICAgICAgICAgICAgIHZhciBwcm9maWxlVHlwZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUo
dHlwZSB8fCBwcm9maWxlSGVhZGVyLnR5cGVJZCk7CiAgICAgICAgICAgICAgICAgdGhpcy5hZGRQ
cm9maWxlSGVhZGVyKHByb2ZpbGVUeXBlLmNyZWF0ZVByb2ZpbGUocHJvZmlsZUhlYWRlcikpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRQcm9m
aWxlSGVhZGVycyhwb3B1bGF0ZUNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBQcm9maWxl
ckFnZW50LmdldFByb2ZpbGVIZWFkZXJzKHBvcHVsYXRlQ2FsbGJhY2suYmluZCh0aGlzLCBudWxs
KSk7CisgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldFByb2ZpbGVIZWFkZXJzKHBvcHVsYXRl
Q2FsbGJhY2suYmluZCh0aGlzLCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUu
VHlwZUlkKSk7CiAKICAgICAgICAgdGhpcy5fcHJvZmlsZXNXZXJlUmVxdWVzdGVkID0gdHJ1ZTsK
ICAgICB9LApAQCAtMTE2NCw3ICsxMTcyLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICBmdW5jdGlvbiBkb25lKCkgewogICAgICAgICAgICAgdGhp
cy5fbGF1bmNoZXJWaWV3LnByb2ZpbGVGaW5pc2hlZCgpOwogICAgICAgICB9Ci0gICAgICAgIFBy
b2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFwc2hvdCh0cnVlLCBkb25lLmJpbmQodGhpcykpOworICAg
ICAgICBIZWFwUHJvZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KHRydWUsIGRvbmUuYmluZCh0
aGlzKSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci51c2VyTWV0cmljcy5Qcm9maWxlc0hlYXBQcm9m
aWxlVGFrZW4ucmVjb3JkKCk7CiAgICAgfSwKIApAQCAtMTIwMyw3ICsxMjExLDcgQEAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIHJl
dmVhbEluVmlldyh2aWV3TmFtZSkKICAgICAgICAgewotICAgICAgICAgICAgUHJvZmlsZXJBZ2Vu
dC5nZXRIZWFwT2JqZWN0SWQob2JqZWN0SWQsIGRpZFJlY2VpdmVIZWFwT2JqZWN0SWQuYmluZCh0
aGlzLCB2aWV3TmFtZSkpOworICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQuZ2V0SGVhcE9i
amVjdElkKG9iamVjdElkLCBkaWRSZWNlaXZlSGVhcE9iamVjdElkLmJpbmQodGhpcywgdmlld05h
bWUpKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGRpZFJlY2VpdmVIZWFwT2JqZWN0
SWQodmlld05hbWUsIGVycm9yLCByZXN1bHQpCkBAIC0xMzE2LDYgKzEzMjQsNjQgQEAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAKIC8qKgogICogQGNvbnN0
cnVjdG9yCisgKiBAaW1wbGVtZW50cyB7SGVhcFByb2ZpbGVyQWdlbnQuRGlzcGF0Y2hlcn0KKyAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWx9IHByb2ZpbGVzUGFuZWwKKyAqLwor
V2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlckRpc3BhdGNoZXIgPSBmdW5jdGlvbihwcm9maWxlc1Bh
bmVsKQoreworICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwgPSBwcm9maWxlc1BhbmVsOworfQorCitX
ZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CisgICAgLyoq
CisgICAgICogQHBhcmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5Qcm9maWxlSGVhZGVyfSBwcm9maWxl
CisgICAgICovCisgICAgYWRkUHJvZmlsZUhlYWRlcjogZnVuY3Rpb24ocHJvZmlsZSkKKyAgICB7
CisgICAgICAgIHZhciBwcm9maWxlVHlwZSA9IHRoaXMuX3Byb2ZpbGVzUGFuZWwuZ2V0UHJvZmls
ZVR5cGUoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJZCk7CisgICAg
ICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwuYWRkUHJvZmlsZUhlYWRlcihwcm9maWxlVHlwZS5jcmVh
dGVQcm9maWxlKHByb2ZpbGUpKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQG92ZXJyaWRl
CisgICAgICogQHBhcmFtIHtudW1iZXJ9IHVpZAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjaHVu
aworICAgICAqLworICAgIGFkZEhlYXBTbmFwc2hvdENodW5rOiBmdW5jdGlvbih1aWQsIGNodW5r
KQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJvZmlsZXNQYW5lbC5fYWRkSGVhcFNuYXBzaG90Q2h1
bmsodWlkLCBjaHVuayk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBvdmVycmlkZQorICAg
ICAqIEBwYXJhbSB7bnVtYmVyfSB1aWQKKyAgICAgKi8KKyAgICBmaW5pc2hIZWFwU25hcHNob3Q6
IGZ1bmN0aW9uKHVpZCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwuX2Zpbmlz
aEhlYXBTbmFwc2hvdCh1aWQpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAb3ZlcnJpZGUK
KyAgICAgKi8KKyAgICByZXNldFByb2ZpbGVzOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0
aGlzLl9wcm9maWxlc1BhbmVsLl9yZXNldCgpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBA
b3ZlcnJpZGUKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gZG9uZQorICAgICAqIEBwYXJhbSB7bnVt
YmVyfSB0b3RhbAorICAgICAqLworICAgIHJlcG9ydEhlYXBTbmFwc2hvdFByb2dyZXNzOiBmdW5j
dGlvbihkb25lLCB0b3RhbCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwuX3Jl
cG9ydEhlYXBTbmFwc2hvdFByb2dyZXNzKGRvbmUsIHRvdGFsKTsKKyAgICB9Cit9CisKKy8qKgor
ICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNpZGViYXJUcmVlRWxl
bWVudH0KICAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyfSBwcm9maWxlCiAg
KiBAcGFyYW0ge3N0cmluZ30gdGl0bGVGb3JtYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCBhMzNiZWVlNDQ2NDZkYWJi
OGM5NDM5MGFlYzcyOTgzZTc5MTRjZjBiLi5mMWIzMmVhYmI4N2ZjMzBlM2NjNTAyMTM1MTkyOTEx
ODJhYTlmZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UaW1lbGluZVBhbmVsLmpzCkBAIC01ODAsNyArNTgwLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2dhcmJhZ2VDb2xsZWN0QnV0dG9uQ2xpY2tl
ZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgUHJvZmlsZXJBZ2VudC5jb2xsZWN0R2FyYmFn
ZSgpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5jb2xsZWN0R2FyYmFnZSgpOwogICAgIH0s
CiAKICAgICBfZ2x1ZVBhcmVudEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggOGEyN2IwOWU2
NTczNGM2ZmE1MjAyMmQ2OThmMGE2MTU0Y2NmOTI3Mi4uMjlmNDNhNzY1MGU2MjllZGExZTc2YzVm
ZmVhNDFhYzk3OWQzZjBlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuanMKQEAgLTM2OCw3ICszNjgsNyBAQCBXZWJJbnNwZWN0b3IuZG9Mb2Fk
ZWREb25lID0gZnVuY3Rpb24oKQogICAgIERlYnVnZ2VyQWdlbnQuc3VwcG9ydHNTZXBhcmF0ZVNj
cmlwdENvbXBpbGF0aW9uQW5kRXhlY3V0aW9uKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFi
aWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJzZXBhcmF0ZVNjcmlwdENvbXBpbGF0aW9uQW5kRXhl
Y3V0aW9uRW5hYmxlZCIsIG51bGwpKTsKICAgICBQcm9maWxlckFnZW50LmNhdXNlc1JlY29tcGls
YXRpb24oV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3Rv
ciwgInByb2ZpbGVyQ2F1c2VzUmVjb21waWxhdGlvbiIsIG51bGwpKTsKICAgICBQcm9maWxlckFn
ZW50LmlzU2FtcGxpbmcoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdl
Ykluc3BlY3RvciwgInNhbXBsaW5nQ1BVUHJvZmlsZXIiLCBudWxsKSk7Ci0gICAgUHJvZmlsZXJB
Z2VudC5oYXNIZWFwUHJvZmlsZXIoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5i
aW5kKFdlYkluc3BlY3RvciwgImhlYXBQcm9maWxlclByZXNlbnQiLCBudWxsKSk7CisgICAgSGVh
cFByb2ZpbGVyQWdlbnQuaGFzSGVhcFByb2ZpbGVyKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNh
cGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJoZWFwUHJvZmlsZXJQcmVzZW50IiwgbnVsbCkp
OwogICAgIFRpbWVsaW5lQWdlbnQuc3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlvbihXZWJJbnNw
ZWN0b3IuX2luaXRpYWxpemVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAidGltZWxpbmVT
dXBwb3J0c0ZyYW1lSW5zdHJ1bWVudGF0aW9uIiwgbnVsbCkpOwogICAgIFRpbWVsaW5lQWdlbnQu
Y2FuTW9uaXRvck1haW5UaHJlYWQoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5i
aW5kKFdlYkluc3BlY3RvciwgInRpbWVsaW5lQ2FuTW9uaXRvck1haW5UaHJlYWQiLCBudWxsKSk7
CiAgICAgUGFnZUFnZW50LmNhblNob3dEZWJ1Z0JvcmRlcnMoV2ViSW5zcGVjdG9yLl9pbml0aWFs
aXplQ2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3RvciwgImNhblNob3dEZWJ1Z0JvcmRlcnMiLCBu
dWxsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29s
c0FnZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0Fn
ZW50SW1wbC5jcHAKaW5kZXggNGVhNDYwYTEwYjYwODkxY2E1ZWVlY2RhYThmMzczNTU5Y2U4MThi
My4uNjA4M2Q5NjdiMWU5ZDI2ZWNkNTYzZWM5OWM5ODgwYzUzNzRiNDAxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAt
Nzc4LDcgKzc3OCw3IEBAIGJvb2wgV2ViRGV2VG9vbHNBZ2VudDo6c2hvdWxkSW50ZXJydXB0Rm9y
TWVzc2FnZShjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiAgICAgICAgIHx8IGNvbW1hbmROYW1l
ID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpjb21tYW5kTmFtZXNbSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXI6OmtQcm9maWxlcl9zdGFydENtZF0KICAgICAgICAgfHwgY29tbWFuZE5h
bWUgPT0gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmROYW1lc1tJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlcjo6a1Byb2ZpbGVyX3N0b3BDbWRdCiAgICAgICAgIHx8IGNvbW1hbmRO
YW1lID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpjb21tYW5kTmFtZXNbSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXI6OmtQcm9maWxlcl9nZXRDUFVQcm9maWxlQ21kXQotICAgICAgICB8
fCBjb21tYW5kTmFtZSA9PSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Y29tbWFuZE5hbWVz
W0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjprUHJvZmlsZXJfZ2V0SGVhcFNuYXBzaG90Q21k
XTsKKyAgICAgICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6
OmNvbW1hbmROYW1lc1tJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6a0hlYXBQcm9maWxlcl9n
ZXRIZWFwU25hcHNob3RDbWRdOwogfQogCiB2b2lkIFdlYkRldlRvb2xzQWdlbnQ6OnByb2Nlc3NQ
ZW5kaW5nTWVzc2FnZXMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFhMzlkN2YwNDgxYTkzYjhkNzc5YTUzZTc1Y2U1Nzc5
YjZkZTMyMzYuLmQyNzRjZjIwNzZlZGNiOGExMTY1MTg2ZGZjMThjMWE5OWE3ZjE4ZTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNiBAQAorMjAxMy0wMi0wOCAgQWxleGVpIEZpbGlwcG92ICA8YWxwaEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU3BsaXQgUHJvZmlsZXIgZG9tYWlu
IGluIHByb3RvY29sIGludG8gUHJvZmlsZXIgYW5kIEhlYXBQcm9maWxlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NjUzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IENQVSBhbmQgaGVh
cCBwcm9maWxlcnMgc2hhcmUgdGhlIHNhbWUgZG9tYWluICdQcm9maWxlcicgaW4gdGhlIHByb3Rv
Y29sLgorICAgICAgICBJbiBmYWN0IHRoZXNlIHR3byBwcm9maWxlIHR5cGVzIGhhdmUgbm90IHRv
byBtdWNoIGluIGNvbW1vbi4gU28gcHV0IGVhY2ggaW50byBpdHMgb3duIGRvbWFpbi4KKyAgICAg
ICAgSXQgc2hvdWxkIGFsc28gaGVscCB3aGVuIFByb2ZpbGVzIHBhbmVsIGdldHMgc3BsaXQgaW50
byBzZXZlcmFsIHRvb2xzLgorICAgICAgICBUaGlzIGlzIHRoZSBwaGFzZSAxIHdoaWNoIGFkZHMg
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQgYnV0IGRvZXNuJ3QKKyAgICAgICAgY2hhbmdlIHRo
ZSBvcmlnaW5hbCBJbnNwZWN0b3JQcm9maWxlckFnZW50LgorCisgICAgICAgICogaW5zcGVjdG9y
LXByb3RvY29sL2hlYXAtcHJvZmlsZXIvcmVzb3VyY2VzL2hlYXAtc25hcHNob3QtY29tbW9uLmpz
OgorICAgICAgICAoSW5zcGVjdG9yVGVzdC50YWtlSGVhcFNuYXBzaG90Lkluc3BlY3RvclRlc3Qu
ZXZlbnRIYW5kbGVyLnN0cmluZ19hcHBlYXJlZF9oZXJlKToKKyAgICAgICAgKEluc3BlY3RvclRl
c3QudGFrZUhlYXBTbmFwc2hvdCk6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL25taS13
ZWJhdWRpby1sZWFrLXRlc3QuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzOgorICAgICAgICAoaW5p
dGlhbGl6ZV9IZWFwU25hcHNob3RUZXN0KToKKwogMjAxMy0wMi0wOCAgw4Fkw6FtIEthbGxhaSAg
PGthZGFtQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVu
aW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2hlYXAtcHJv
ZmlsZXIvcmVzb3VyY2VzL2hlYXAtc25hcHNob3QtY29tbW9uLmpzIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2hlYXAtcHJvZmlsZXIvcmVzb3VyY2VzL2hlYXAtc25hcHNob3QtY29t
bW9uLmpzCmluZGV4IDdiM2I5ZjE4YTk3MWZjNTA2NGMwMGYyOTlkNWIxNDE4NTY0ZjMwMWIuLjll
OTg4NDk3ZDE1NjlhYWZmMTY4YmZhNmMwNzhjM2Y3ZjdkZTg2OGQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9oZWFwLXByb2ZpbGVyL3Jlc291cmNlcy9oZWFwLXNu
YXBzaG90LWNvbW1vbi5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvaGVh
cC1wcm9maWxlci9yZXNvdXJjZXMvaGVhcC1zbmFwc2hvdC1jb21tb24uanMKQEAgLTksMTAgKzks
MTAgQEAgSW5zcGVjdG9yVGVzdC5pbXBvcnRTY3JpcHQoIi4uLy4uLy4uLy4uLy4uL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSlMKIAogSW5zcGVjdG9yVGVzdC50YWtlSGVhcFNu
YXBzaG90ID0gZnVuY3Rpb24oY2FsbGJhY2spCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhh
bmRsZXJbIlByb2ZpbGVyLmFkZFByb2ZpbGVIZWFkZXIiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmpl
Y3QpCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkhlYXBQcm9maWxlci5hZGRQcm9m
aWxlSGVhZGVyIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAgICAgdmFy
IHByb2ZpbGVJZCA9IG1lc3NhZ2VPYmplY3RbInBhcmFtcyJdWyJoZWFkZXIiXVsidWlkIl07Ci0g
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlByb2ZpbGVyLmdldEhlYXBTbmFwc2hv
dCIsIHsgInVpZCI6IHByb2ZpbGVJZCB9LCBkaWRHZXRIZWFwU25hcHNob3QpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJIZWFwUHJvZmlsZXIuZ2V0SGVhcFNuYXBzaG90Iiwg
eyAidWlkIjogcHJvZmlsZUlkIH0sIGRpZEdldEhlYXBTbmFwc2hvdCk7CiAKICAgICAgICAgZnVu
Y3Rpb24gZGlkR2V0SGVhcFNuYXBzaG90KG1lc3NhZ2VPYmplY3QpCiAgICAgICAgIHsKQEAgLTIy
LDEyICsyMiwxMiBAQCBJbnNwZWN0b3JUZXN0LnRha2VIZWFwU25hcHNob3QgPSBmdW5jdGlvbihj
YWxsYmFjaykKICAgICB9CiAKICAgICB2YXIgY2h1bmtzID0gW107Ci0gICAgSW5zcGVjdG9yVGVz
dC5ldmVudEhhbmRsZXJbIlByb2ZpbGVyLmFkZEhlYXBTbmFwc2hvdENodW5rIl0gPSBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KQorICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJIZWFwUHJv
ZmlsZXIuYWRkSGVhcFNuYXBzaG90Q2h1bmsiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAg
ICAgewogICAgICAgICBjaHVua3MucHVzaChtZXNzYWdlT2JqZWN0WyJwYXJhbXMiXVsiY2h1bmsi
XSk7CiAgICAgfQogCi0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlByb2ZpbGVyLmZp
bmlzaEhlYXBTbmFwc2hvdCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICBJbnNwZWN0
b3JUZXN0LmV2ZW50SGFuZGxlclsiSGVhcFByb2ZpbGVyLmZpbmlzaEhlYXBTbmFwc2hvdCJdID0g
ZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIHZhciBzZXJpYWxpemVkU25h
cHNob3QgPSBjaHVua3Muam9pbigiIik7CiAgICAgICAgIHZhciBwYXJzZWQgPSBKU09OLnBhcnNl
KHNlcmlhbGl6ZWRTbmFwc2hvdCk7CkBAIC0zNSw1ICszNSw1IEBAIEluc3BlY3RvclRlc3QudGFr
ZUhlYXBTbmFwc2hvdCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgICAgICBjYWxsYmFjayhzbmFw
c2hvdCk7CiAgICAgfQogCi0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUHJvZmlsZXIu
dGFrZUhlYXBTbmFwc2hvdCIsIHt9KTsKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJI
ZWFwUHJvZmlsZXIudGFrZUhlYXBTbmFwc2hvdCIsIHt9KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8tbGVhay10ZXN0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWxlYWstdGVzdC5odG1s
CmluZGV4IDI5ZGM5Mzc5NzNhNzU1ZWM2OGQ3ZWMwNzMzN2VkYWE4MmJmMmY4MjkuLmIzZmMyMThm
ZWFjODNiNzc5MTYwMGIyMzNmZTZkODg4OTcwMmUyZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8tbGVhay10ZXN0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby1sZWFrLXRlc3QuaHRtbApA
QCAtNjAsNyArNjAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIGlGcmFtZU5h
dmlnYXRlZChtZXNzYWdlT2JqZWN0KSB7CiAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNT
OiBJRnJhbWUgd2FzIG5hdmlnYXRlZCB0byByZXNvdXJjZXMvYmxhbmsuaHRtbCIpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCdQcm9maWxlci5jb2xsZWN0R2FyYmFnZScsIHt9
LCBmdW5jdGlvbigpIHsgfSApOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCdI
ZWFwUHJvZmlsZXIuY29sbGVjdEdhcmJhZ2UnLCB7fSwgZnVuY3Rpb24oKSB7IH0gKTsKICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkFjdGlvbjogUnVuIEdDIGFuZCBjaGVjayBQYWdlLkF1ZGlv
IGRhdGEgc2l6ZSIpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCdNZW1vcnku
Z2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbicsIHt9LCBub0F1ZGlvU2hhcmVkRGF0YSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25h
cHNob3QtZ2V0LXByb2ZpbGUtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9oZWFwLXNuYXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWwKaW5kZXggODU2MWJjYjgx
MWYzMTAzYTNjNTdhNjUxYzJiNmNjZTI4MWEwNTE4MC4uNTQ0Y2IxMjIxODhmMzNkMTQ3NTE0ODQ5
MmZkYzVkZGZlYzlmM2RjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL2hlYXAtc25hcHNob3QtZ2V0LXByb2ZpbGUtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC5odG1s
CkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIGNvbnNv
bGUubG9nKGVycm9yU3RyaW5nKTsKICAgICAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBQcm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hvdCgtMSwgZmluaXNo
KTsKKyAgICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hvdCgtMSwgZmlu
aXNoKTsKICAgICAgICAgfQogICAgIF0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1kb20td3JhcHBlci5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1kb20t
d3JhcHBlci5odG1sCmluZGV4IDM4MjA3ZmI5NTYyMDcyZTUzYzU3N2RmYTg2NWFhMDAxYjljNzE4
MWIuLjAzNWZjNGNlN2I0OTU3OTkzMTk0MzMwMDI1MzhiMzRmZTc1OTMxODQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9t
LXdyYXBwZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1z
bmFwc2hvdC1pbnNwZWN0LWRvbS13cmFwcGVyLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAgZnVuY3Rp
b24gaGFuZGxlTG9hZCgpCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBXZWJJbnNwZWN0b3Iuc2hv
d1BhbmVsKCJwcm9maWxlcyIpOwotICAgIFByb2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFwc2hvdChz
dGVwMCk7CisgICAgSGVhcFByb2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFwc2hvdChzdGVwMCk7CiAK
ICAgICBmdW5jdGlvbiBzdGVwMCgpCiAgICAgewpAQCAtNDIsNyArNDIsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICAgICAgICAgICAgICBib2R5V3JhcHBlcklkcy5wdXNoKGl0Lm5vZGUuaWQpOwog
ICAgICAgICB9CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm9keVdyYXBwZXJJZHMubGVu
Z3RoOyBpKyspCi0gICAgICAgICAgICBQcm9maWxlckFnZW50LmdldE9iamVjdEJ5SGVhcE9iamVj
dElkKGJvZHlXcmFwcGVySWRzW2ldLCB1bmRlZmluZWQsIGRpZEdldE9iamVjdEJ5SGVhcE9iamVj
dElkKTsKKyAgICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldE9iamVjdEJ5SGVhcE9iamVj
dElkKGJvZHlXcmFwcGVySWRzW2ldLCB1bmRlZmluZWQsIGRpZEdldE9iamVjdEJ5SGVhcE9iamVj
dElkKTsKIAogICAgICAgICB2YXIgcmVzb2x2ZWRPYmplY3RzQ291bnQgPSAwOwogICAgICAgICB2
YXIgcmVtb3RlT2JqZWN0cyA9IFtdOwpAQCAtNjksNyArNjksNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIGlmICgrK2RpZEdldE93blByb3BlcnRpZXNDb3VudCAhPT0gcmVtb3RlT2Jq
ZWN0cy5sZW5ndGgpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBQcm9m
aWxlckFnZW50LmNsZWFyUHJvZmlsZXMoZG9uZSk7CisgICAgICAgICAgICBIZWFwUHJvZmlsZXJB
Z2VudC5jbGVhclByb2ZpbGVzKGRvbmUpOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVs
cy5wcm9maWxlcy5fcmVzZXQoKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWwKaW5k
ZXggOTQwYjY0YmQyNjgwZjMyYmU1ZTMzOWViYWMyM2JjMDUyNDllNzRlYy4uY2Q4NjViZTA3YTY5
ZjdhOTc5MTYwYWRjYThlZTI5ODJjYmFmZGIwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWwKQEAgLTE3LDcg
KzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgdmFyIHBhcnRTaXplID0gc291cmNlU3RyaW5n
aWZpZWQubGVuZ3RoID4+IDM7CiAKICAgICBmdW5jdGlvbiBpbmplY3RNb2NrUHJvZmlsZShvdmVy
cmlkZUdldFByb2ZpbGUsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHZhciBkaXNwYXRjaGVyID0gSW5z
cGVjdG9yQmFja2VuZC5fZG9tYWluRGlzcGF0Y2hlcnNbIlByb2ZpbGVyIl07CisgICAgICAgIHZh
ciBkaXNwYXRjaGVyID0gSW5zcGVjdG9yQmFja2VuZC5fZG9tYWluRGlzcGF0Y2hlcnNbIkhlYXBQ
cm9maWxlciJdOwogICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2Zp
bGVzOwogICAgICAgICBwYW5lbC5fcmVzZXQoKTsKIApAQCAtMzksMTIgKzM5LDEyIEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICBmdW5jdGlvbiBzbmFwc2hvdExvYWRlZCgpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIGlmIChvdmVycmlkZUdldFByb2ZpbGUpCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5vdmVycmlkZShQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgZ2V0
SGVhcFNuYXBzaG90TW9jayk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5vdmVycmlk
ZShIZWFwUHJvZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIsIGdldEhlYXBTbmFwc2hvdE1v
Y2spOwogICAgICAgICAgICAgY2FsbGJhY2socHJvZmlsZUhlYWRlcik7CiAgICAgICAgIH0KICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKHByb2ZpbGVIZWFkZXIsICJfc25hcHNob3RS
ZWNlaXZlZCIsIHNuYXBzaG90TG9hZGVkKTsKIAotICAgICAgICBJbnNwZWN0b3JUZXN0Lm92ZXJy
aWRlKFByb2ZpbGVyQWdlbnQsICJnZXRIZWFwU25hcHNob3QiLCBnZXRIZWFwU25hcHNob3RNb2Nr
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5vdmVycmlkZShIZWFwUHJvZmlsZXJBZ2VudCwgImdl
dEhlYXBTbmFwc2hvdCIsIGdldEhlYXBTbmFwc2hvdE1vY2spOwogICAgICAgICBwYW5lbC5zaG93
UHJvZmlsZShwcm9maWxlSGVhZGVyKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanMgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzCmluZGV4IDE1NTU0ZDJjYzJi
YmE4NjA1YTYyYWEwNGE3YmYyMTJkMzAzN2I4MDIuLmNiZDY2NjNjNDc1ODZhZGVhYjI5MTVmZmUw
MTY4YWEzYmI3NWZjMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL2hlYXAtc25hcHNob3QtdGVzdC5qcwpAQCAtMTcyLDcgKzE3Miw3IEBAIEluc3BlY3RvclRl
c3Quc3RhcnRQcm9maWxlclRlc3QgPSBmdW5jdGlvbihjYWxsYmFjaykKICAgICBmdW5jdGlvbiBw
cm9maWxlckVuYWJsZWQoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlByb2ZpbGVyIHdhcyBlbmFibGVkLiIpOwotICAgICAgICAvLyBXZSBtb2NrIG91dCBQcm9maWxl
ckFnZW50IC0tIGFzIERSVCBydW5zIGluIHNpbmdsZS1wcm9jZXNzIG1vZGUsIEluc3BlY3Rvcgor
ICAgICAgICAvLyBXZSBtb2NrIG91dCBIZWFwUHJvZmlsZXJBZ2VudCAtLSBhcyBEUlQgcnVucyBp
biBzaW5nbGUtcHJvY2VzcyBtb2RlLCBJbnNwZWN0b3IKICAgICAgICAgLy8gYW5kIHRlc3Qgc2hh
cmUgdGhlIHNhbWUgaGVhcC4gVGFraW5nIGEgc25hcHNob3QgdGFrZXMgdG9vIGxvbmcgZm9yIGEg
dGVzdCwKICAgICAgICAgLy8gc28gd2UgcHJvdmlkZSBzeW50aGV0aWMgc25hcHNob3RzLgogICAg
ICAgICBJbnNwZWN0b3JUZXN0Ll9wYW5lbFJlc2V0ID0gSW5zcGVjdG9yVGVzdC5vdmVycmlkZShX
ZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLCAiX3Jlc2V0IiwgZnVuY3Rpb24oKXt9LCB0cnVl
KTsKQEAgLTczNSw3ICs3MzUsNyBAQCBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3Qg
PSBmdW5jdGlvbihnZW5lcmF0b3IsIGNhbGxiYWNrKQogICAgICAgICBXZWJJbnNwZWN0b3IucGFu
ZWxzLnByb2ZpbGVzLl9hZGRIZWFwU25hcHNob3RDaHVuayh1aWQsIEpTT04uc3RyaW5naWZ5KHNu
YXBzaG90KSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuX2ZpbmlzaEhl
YXBTbmFwc2hvdCh1aWQpOwogICAgIH0KLSAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKFByb2Zp
bGVyQWdlbnQsICJnZXRIZWFwU25hcHNob3QiLCBwdXNoR2VuZXJhdGVkU25hcHNob3QpOworICAg
IEluc3BlY3RvclRlc3Qub3ZlcnJpZGUoSGVhcFByb2ZpbGVyQWdlbnQsICJnZXRIZWFwU25hcHNo
b3QiLCBwdXNoR2VuZXJhdGVkU25hcHNob3QpOwogICAgIEluc3BlY3RvclRlc3QuX3Rha2VBbmRP
cGVuU25hcHNob3RDYWxsYmFjayA9IGNhbGxiYWNrOwogICAgIFdlYkluc3BlY3Rvci5wYW5lbHMu
cHJvZmlsZXMuYWRkUHJvZmlsZUhlYWRlcihwcm9maWxlKTsKICAgICBXZWJJbnNwZWN0b3IucGFu
ZWxzLnByb2ZpbGVzLnNob3dQcm9maWxlKHByb2ZpbGUpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCAxOTQw
MzRkMTEwODdkNTkyMjE3N2IxMDM4YjYyNjFmY2VmY2Q0ZGE0Li5kN2QzNGJlYjY5NDkzMDJhODRm
Mjg3ZjQ1MDNlNTZlZWNkYTM5ZWIyIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5n
ZUxvZworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDEzLTAyLTA4ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wgaW50byBQ
cm9maWxlciBhbmQgSGVhcFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0
aGUgc2FtZSBkb21haW4gJ1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIEluIGZh
Y3QgdGhlc2UgdHdvIHByb2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29tbW9uLiBT
byBwdXQgZWFjaCBpbnRvIGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQgYWxzbyBo
ZWxwIHdoZW4gUHJvZmlsZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9vbHMuCisg
ICAgICAgIFRoaXMgaXMgdGhlIHBoYXNlIDEgd2hpY2ggYWRkcyBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudCBidXQgZG9lc24ndAorICAgICAgICBjaGFuZ2UgdGhlIG9yaWdpbmFsIEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvaGVhcC1zbmFwc2hvdC1wZXJm
b3JtYW5jZS10ZXN0LmpzOgorICAgICAgICAodGVzdC5wZXJmb3JtYW5jZVRlc3QuY2xlYW51cCk6
CisKIDIwMTMtMDItMDUgIERvbWluaWsgUsO2dHRzY2hlcyAgPGRvbWluaWsucm90dHNjaGVzQGlu
dGVsLmNvbT4KIAogICAgICAgICBBZGQgYSBwZXJmb3JtYW5jZSB0ZXN0IGZvciBhcmFiaWMgbGlu
ZSBicmVha2luZwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9pbnNwZWN0b3IvaGVhcC1z
bmFwc2hvdC1wZXJmb3JtYW5jZS10ZXN0LmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9pbnNwZWN0b3Iv
aGVhcC1zbmFwc2hvdC1wZXJmb3JtYW5jZS10ZXN0LmpzCmluZGV4IDljMzk1ODI2MTg1YzJmNGIx
ZTk5NzA5MzQ5ZDBjYWM5MTFlNzc1ZWUuLmFkOTQ3YjgxYzVmMDBiY2NmZjc3OTJjOGY5ZTA4NzFk
MDNmMjRmMTkgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvaW5zcGVjdG9yL2hlYXAtc25h
cHNob3QtcGVyZm9ybWFuY2UtdGVzdC5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL2luc3BlY3Rv
ci9oZWFwLXNuYXBzaG90LXBlcmZvcm1hbmNlLXRlc3QuanMKQEAgLTI3LDcgKzI3LDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgICAgIHZhciB0ZXN0TmFtZSA9IC8oW15cL10rKVwuaHRtbCQvLmV4
ZWMoV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkwpWzFdOwogICAgICAgICB2YXIgZnVsbFRp
bWVyQ29va2llID0gdGltZXIuc3RhcnQoImZ1bGwtc3VtbWFyeS1zbmFwc2hvdC10aW1lIik7CiAg
ICAgICAgIHZhciBiYWNrZW5kVGltZXJDb29raWUgPSB0aW1lci5zdGFydCgidGFrZS1zbmFwc2hv
dCIpOwotICAgICAgICBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3Qoc3RlcDApOworICAg
ICAgICBIZWFwUHJvZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KHN0ZXAwKTsKIAogICAgICAg
ICBmdW5jdGlvbiBzdGVwMCgpCiAgICAgICAgIHsKQEAgLTU5LDcgKzU5LDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgICAgICB0aW1lci5maW5pc2goY2hhbmdlVmlld1RpbWVyQ29va2llKTsK
ICAgICAgICAgICAgIHRpbWVyLmZpbmlzaChmdWxsVGltZXJDb29raWUpOwogICAgICAgICAgICAg
Y2xlYXJUaW1lckNvb2tpZSA9IHRpbWVyLnN0YXJ0KCJjbGVhci1zbmFwc2hvdCIpOwotICAgICAg
ICAgICAgUHJvZmlsZXJBZ2VudC5jbGVhclByb2ZpbGVzKGRvbmUpOworICAgICAgICAgICAgSGVh
cFByb2ZpbGVyQWdlbnQuY2xlYXJQcm9maWxlcyhkb25lKTsKICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5wYW5lbHMucHJvZmlsZXMuX3Jlc2V0KCk7CiAgICAgICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187533</attachid>
            <date>2013-02-11 02:42:56 -0800</date>
            <delta_ts>2013-02-11 05:55:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108653-20130211143927.patch</filename>
            <type>text/plain</type>
            <size>66437</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDliN2MxNjMxZGNhOTJk
NzY1NDIzMGZjNzkwMzRhMDhjZjZiNDEzZC4uYTIwMWY3MzMxMzYyNDc2MjdlYjZmMmIwOTQwNTFm
OTcwY2M0N2ZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDEzLTAyLTExICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wgaW50byBQcm9maWxlciBhbmQgSGVh
cFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0aGUgc2FtZSBkb21haW4g
J1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIEluIGZhY3QgdGhlc2UgdHdvIHBy
b2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29tbW9uLiBTbyBwdXQgZWFjaCBpbnRv
IGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQgYWxzbyBoZWxwIHdoZW4gUHJvZmls
ZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9vbHMuCisgICAgICAgIFRoaXMgaXMg
dGhlIHBoYXNlIDEgd2hpY2ggYWRkcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCBidXQgZG9l
c24ndAorICAgICAgICBjaGFuZ2UgdGhlIG9yaWdpbmFsIEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6
On5JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzZXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVzKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpzZXRGcm9udGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y2xlYXJGcm9udGVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzdG9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y29sbGVjdEdh
cmJhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNy
ZWF0ZVNuYXBzaG90SGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpoYXNIZWFwUHJvZmlsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGVIZWFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRIZWFwU25hcHNob3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnJlbW92ZVByb2ZpbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OnRha2VIZWFwU25hcHNo
b3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmdldE9i
amVjdEJ5SGVhcE9iamVjdElkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50OjpnZXRIZWFwT2JqZWN0SWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjbGVhclByb2ZpbGVzKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21t
aXRMb2FkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5zdHJ1bWVudGluZ0FnZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjppbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpzZXRJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWFwU25hcHNob3RHcmlkTm9kZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SGVhcFNuYXBzaG90R2VuZXJpY09iamVjdE5vZGUucHJvdG90eXBlLnF1ZXJ5T2JqZWN0Q29udGVu
dCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVyLnByb3RvdHlwZS5zdGFydFNu
YXBzaG90VHJhbnNmZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlSGVhZGVy
LnByb3RvdHlwZS5zYXZlVG9GaWxlLm9uT3Blbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVh
cFByb2ZpbGVIZWFkZXIucHJvdG90eXBlLnNhdmVUb0ZpbGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9m
aWxlc1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZS5fY2xlYXJQcm9maWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUuX2dhcmJhZ2VDb2xsZWN0QnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3JlbW92ZVByb2ZpbGVIZWFkZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZVByb2Zp
bGVzLnZhcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUu
X3BvcHVsYXRlUHJvZmlsZXMucG9wdWxhdGVDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlUHJvZmlsZXMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnRha2VIZWFwU25hcHNob3QpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLnJldmVhbEluVmll
dyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUuYWRkUHJv
ZmlsZUhlYWRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hl
ci5wcm90b3R5cGUuYWRkSGVhcFNuYXBzaG90Q2h1bmspOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkhlYXBQcm9maWxlckRpc3BhdGNoZXIucHJvdG90eXBlLmZpbmlzaEhlYXBTbmFwc2hvdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUucmVz
ZXRQcm9maWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hl
ci5wcm90b3R5cGUucmVwb3J0SGVhcFNuYXBzaG90UHJvZ3Jlc3MpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsLnByb3RvdHlwZS5fZ2FyYmFnZUNvbGxlY3RCdXR0b25DbGlja2VkKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5kb0xvYWRlZERvbmUpOgorCiAyMDEzLTAyLTExICBQYW4gRGVuZyAgPHBhbi5kZW5n
QGludGVsLmNvbT4KIAogICAgICAgICBbV2ViIEluc3BlY3Rvcl0gTmV0d29yayBwYW5lbCwgc29y
dCBieSAidHJhbnNmZXJTaXplIiBpbnN0ZWFkIG9mICJyZXNvdXJjZVNpemUiLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCA5ZjY3ZjAzNDFhMzYyMDkwODgzNzgxZDA0M2NjODBmMTA2MTVl
OTViLi42YmIxZmU1NGEwMDYwOTk3MjNlMGI3YzAzNmI1MTExZDM5NjBjNzBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTExICBBbGV4ZWkgRmls
aXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTcGxp
dCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wgaW50byBQcm9maWxlciBhbmQgSGVhcFByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg2
NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJy
ZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0aGUgc2FtZSBkb21haW4gJ1Byb2Zp
bGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIEluIGZhY3QgdGhlc2UgdHdvIHByb2ZpbGUg
dHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29tbW9uLiBTbyBwdXQgZWFjaCBpbnRvIGl0cyBv
d24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQgYWxzbyBoZWxwIHdoZW4gUHJvZmlsZXMgcGFu
ZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9vbHMuCisgICAgICAgIFRoaXMgaXMgdGhlIHBo
YXNlIDEgd2hpY2ggYWRkcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCBidXQgZG9lc24ndAor
ICAgICAgICBjaGFuZ2UgdGhlIG9yaWdpbmFsIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuCisKKyAg
ICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJEZXZUb29sc0FnZW50OjpzaG91bGRJbnRlcnJ1cHRGb3JNZXNzYWdlKToKKwogMjAxMy0wMi0x
MSAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTiB0byBkZXRlY3Qgb3V0IG9mIGJvdW5kcyBh
Y2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDhkMTU2NTZhZWZjNzc1YmM5NjMyZTk4OGE0
MjkwODQxNDdiYzkwNS4uMDNlMDhlZjgzMmIwMjA3NzNhNTM1YjBjNmFhMmU2ODJhMGFlZmE4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2NDEsNiArMTY0MSw3IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JIaXN0b3J5LmNwcAogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVj
dG9ySW5wdXRBZ2VudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDcyNTY0
M2I2YjU2MGMzZjQ2NmExYzQxNDM5ZWNlMmVlM2RkMTk4MDIuLjE5N2U4MmU3Nzk5YzhmNTkzOTBi
ZGZhZmE4YzEyNzgxM2VjNzc3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
MzgzMyw2ICszODMzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckhpc3RvcnkuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySGlzdG9yeS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA5N2NkZDBiOGE3MzJmMGYzNTc5
N2RlODFmNTA1ZmMyOGVmNTBlYWE3Li5jZWEzMDk1Y2M3Zjg2ZWNhOGE2YzlkZWZkYzY1YjE0OWMx
MDUxYjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTc5OSw2ICs3OTksNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCBcCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBcCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckhpc3RvcnkuY3BwIFwKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIFwKQEAgLTE5OTIsNiArMTk5Myw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIFwKICAgICBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIFwKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmggXAorICAgIGluc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9ySGlzdG9yeS5oIFwKICAgICBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JMYXllclRyZWVBZ2VudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyODg1ZjA3MmM0ZTZlOTMz
YWU0M2I4ZDEyY2ZhNWNhZDczMjVmODYyLi4yYTRmYzA5Y2ViNThhYmM3ZjBiM2NlZTQzNzgxZjc3
ZTc0MDc0ZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODc4LDYgKzE4NzgsOCBAQAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCcsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCcsCisgICAgICAgICAgICAnaW5z
cGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCcsCisgICAgICAgICAgICAnaW5z
cGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9JbnNwZWN0b3JIaXN0b3J5LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3Bl
Y3Rvckhpc3RvcnkuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWRE
QkFnZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IDNlYzY3ZWIyODYyNGU1Yzg3Y2M2NjY0NjFlYzM3OTQ4ZmZlYjc4ZDQuLmNmMGI1
MzU1MzhiYjQ1ZTdkNTIzNjM2MTE5M2NiYjM3ZDMyM2U0MjQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03NjA1MSw2ICs3NjA1MSwzMCBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0
b3JcSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5caW5zcGVjdG9yXEluc3BlY3Rvckhpc3RvcnkuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCmluZGV4IDJhMmYzNjllNDM2YTNhNzlhZGRiZWY3YWMyODFiNTBlODlhNmIzZjEuLmE0YjJm
YWEwZDIxNTVlNzViNTdiYjZjYzIyMTEwNTg2ZjNlMGMzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtNTY5Miw2ICs1NjkyLDkgQEAK
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZEhv
c3QuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3Bl
Y3RvclxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3Rvckhpc3RvcnkuY3BwIj4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICA8L0NsQ29tcGlsZT4KQEAgLTgzNzAsNiArODM3Myw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5z
cGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGluc3BlY3RvclxJbnNwZWN0b3JIaXN0b3J5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JJbnB1dEFnZW50LmgiIC8+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnMKaW5kZXggOWFkOGFkZTdiZGJhZTE5ZjY4ZWMxYjgyMWE0MTMwMjZkODg5ZTg0Ni4uYzNh
ZGVkOGYzMjhmNzJmYzc0MDM0Zjk3MGRiYmI5OWQxZGE3Y2FhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAt
NjQ5Miw2ICs2NDkyLDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0
b3JcSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+aW5zcGVj
dG9yPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxpbnNwZWN0b3JcSW5zcGVjdG9ySGlzdG9yeS5jcHAiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0
b3I8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEzNzc5LDYgKzEzNzgyLDkgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
aCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50LmgiPgorICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KKyAgICA8L0NsSW5j
bHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JIaXN0
b3J5LmgiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVk
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAxNmE3OGUwMjA0MDJmNWQ0YjRlNGQyOGZkNDU3Nzk1ZTIzYjViZTg5Li45NTM4MDgx
Nzc2MzBmYmFkMDc3Yjg1OTM1YjI3ZTBiMjVhZWE3YWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zODE1LDYgKzM4MTUsOCBA
QAogCQk5QkY5QTg4MTE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVj
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUJG
OUE4N0YxNjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaCAq
LzsgfTsKIAkJOUYwRDZCMkUxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUYw
RDZCMkMxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwICovOyB9
OwogCQk5RjBENkIyRjEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUYwRDZCMkQx
MjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuaCAqLzsgfTsKKwkJNTEx
MjkzNUYzRDU0QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTI5MzYxM0Q2
REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgKi87IH07CisJ
CTUxMTI5MzYwM0Q2MEI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMjkzNjIz
RDg1QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggKi87IH07CiAJ
CTlGM0I5NDdFMTIyNDE3NTgwMDUzMDRFNyAvKiBTY3JpcHRIZWFwU25hcHNob3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGM0I5NDdEMTIyNDE3NTgw
MDUzMDRFNyAvKiBTY3JpcHRIZWFwU25hcHNob3QuaCAqLzsgfTsKIAkJOUY2RkMxOTYxMTIyRTgy
QTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNkZDMTk0MTEyMkU4MkEwMEU4MDE5NiAvKiBTY3Jp
cHREZWJ1Z1NlcnZlci5jcHAgKi87IH07CiAJCTlGNkZDMTk3MTEyMkU4MkEwMEU4MDE5NiAvKiBT
Y3JpcHREZWJ1Z1NlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUY2RkMxOTUxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExMjgw
LDYgKzExMjgyLDggQEAKIAkJOUJGOUE4N0YxNjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1D
b250cm9sc0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNI
VE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5RjBENkIyQzEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JQcm9maWxlckFn
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUYwRDZCMkQxMjFCRkVCQTAw
NkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MTEyOTM2MTNENkRCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTEyOTM2MjNEODVCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUYzQjk0N0QxMjI0MTc1ODAwNTMw
NEU3IC8qIFNjcmlwdEhlYXBTbmFwc2hvdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JpcHRIZWFwU25hcHNob3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUY2RkMxOTQxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdERlYnVnU2VydmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUY2RkMxOTUxMTIyRTgyQTAwRTgwMTk2IC8qIFNj
cmlwdERlYnVnU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlw
dERlYnVnU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTIxNSw2ICsx
NTIxOSw4IEBACiAJCQkJN0EwRTc3MEIxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAgKi8sCiAJCQkJN0EwRTc3MEMxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3Rv
ckZyb250ZW5kSG9zdC5oICovLAogCQkJCTdBMEU3NzBEMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNw
ZWN0b3JGcm9udGVuZEhvc3QuaWRsICovLAorCQkJCTUxMTI5MzYxM0Q2REI0QjUyRkFGOTczRiAv
KiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgKi8sCisJCQkJNTExMjkzNjIzRDg1QjRC
NTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggKi8sCiAJCQkJN0E1NDg1
N0QxNEUwMkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuY3BwICovLAogCQkJCTdBNTQ4
NTdFMTRFMDJENTEwMDZBRTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5LmggKi8sCiAJCQkJN0FDRDg4
RDExNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCAqLywKQEAg
LTI0NjYyLDYgKzI0NjY4LDcgQEAKIAkJCQlGMzQ0QzcxNDExMjVCODJDMDBGMjZFRUUgLyogSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDRDNzUzMTEyOTRE
OUQwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3QTBFNzcwRjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTEyOTM2MDNENjBCNEI1MkZBRjk3M0YgLyogSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBNTQ4NTgwMTRFMDJE
NTEwMDZBRTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUNE
ODhENDE0QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTREMjczQ0ZBMTY2OTQyMDgwMDI1OUNBMSAvKiBJbnNwZWN0b3JJbnB1dEFn
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI3OTQwLDYgKzI3OTQ3LDcgQEAKIAkJCQk0RjRGNUZG
QjExQ0JEMkUxMDBBMTg2QkYgLyogSW5zcGVjdG9yRnJvbnRlbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRjM0NEM3NTgxMTI5NEZGNjAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0EwRTc3MEUxMEMwMEE4ODAwQTAyNzZFIC8q
IEluc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTEyOTM1RjNE
NTRCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0E1NDg1N0YxNEUwMkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3Rvcnku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FDRDg4RDMxNEMwOEJENjAwODRFREQyIC8qIEluc3Bl
Y3RvckluZGV4ZWREQkFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTREMjczQ0Y5MTY2OTQy
MDgwMDI1OUNBMSAvKiBJbnNwZWN0b3JJbnB1dEFnZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDE0MTRmNjRjODIyNmM5NjA3
OWUyMGU5N2Y3NTQ3ODQzZTI2NDM1M2EuLjU0MGQyYmFlZmU2ZjY4MzM5M2FiZGRhYzNhOTBlOWQz
NjhmZGFiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
anNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTMy
NDYsNiArMzI0NiwxMTUgQEAKICAgICAgICAgXQogICAgIH0sCiAgICAgeworICAgICAgICAiZG9t
YWluIjogIkhlYXBQcm9maWxlciIsCisgICAgICAgICJoaWRkZW4iOiB0cnVlLAorICAgICAgICAi
dHlwZXMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImlkIjogIlByb2ZpbGVI
ZWFkZXIiLAorICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlByb2ZpbGUgaGVhZGVyLiIsCisgICAgICAgICAgICAgICAgInBy
b3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGl0bGUiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUHJvZmlsZSB0aXRsZS4iIH0sCisgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAidWlkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlw
dGlvbiI6ICJVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcHJvZmlsZS4iIH0sCisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAibWF4SlNPYmplY3RJZCIsICJ0eXBlIjogImludGVnZXIiLCAi
b3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiTGFzdCBzZWVuIEpTIG9iamVjdCBJZC4i
IH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICJpZCI6ICJIZWFwU25hcHNob3RPYmplY3RJZCIsCisgICAgICAgICAgICAg
ICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSGVh
cCBzbmFzaG90IG9iamVjdCBpZC4iCisgICAgICAgICAgICB9CisgICAgICAgIF0sCisgICAgICAg
ICJjb21tYW5kcyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJo
YXNIZWFwUHJvZmlsZXIiLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICJ0eXBlIjogImJvb2xlYW4iIH0KKyAgICAg
ICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJuYW1lIjogImdldFByb2ZpbGVIZWFkZXJzIiwKKyAgICAgICAgICAgICAgICAicmV0dXJu
cyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoZWFkZXJzIiwgInR5cGUiOiAi
YXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIlByb2ZpbGVIZWFkZXIifSB9CisgICAgICAgICAg
ICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
bmFtZSI6ICJnZXRIZWFwU25hcHNob3QiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0eXBlIjogImludGVnZXIi
IH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICJuYW1lIjogInJlbW92ZVByb2ZpbGUiLAorICAgICAgICAgICAgICAgICJw
YXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVpZCIsICJ0eXBl
IjogImludGVnZXIiIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImNsZWFyUHJvZmlsZXMiCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogInRha2VIZWFw
U25hcHNob3QiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInJlcG9ydFByb2dyZXNzIiwgInR5cGUiOiAiYm9vbGVhbiIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZiB0cnVlICdyZXBvcnRIZWFwU25hcHNo
b3RQcm9ncmVzcycgZXZlbnRzIHdpbGwgYmUgZ2VuZXJhdGVkIHdoaWxlIHNuYXBzaG90IGlzIGJl
aW5nIHRha2VuLiIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiY29sbGVjdEdhcmJhZ2UiCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImdldE9iamVj
dEJ5SGVhcE9iamVjdElkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjogIkhlYXBTbmFwc2hv
dE9iamVjdElkIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdEdyb3Vw
IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN5
bWJvbGljIGdyb3VwIG5hbWUgdGhhdCBjYW4gYmUgdXNlZCB0byByZWxlYXNlIG11bHRpcGxlIG9i
amVjdHMuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6
IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJSdW50
aW1lLlJlbW90ZU9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0aW9uIHJlc3VsdC4iIH0K
KyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJuYW1lIjogImdldEhlYXBPYmplY3RJZCIsCisgICAgICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0SWQiLCAi
JHJlZiI6ICJSdW50aW1lLlJlbW90ZU9iamVjdElkIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZp
ZXIgb2YgdGhlIG9iamVjdCB0byBnZXQgaGVhcCBvYmplY3QgaWQgZm9yLiIgfQorICAgICAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiaGVhcFNuYXBzaG90T2JqZWN0SWQiLCAiJHJlZiI6ICJIZWFwU25hcHNo
b3RPYmplY3RJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgaGVhcCBzbmFwc2hvdCBvYmpl
Y3QgY29ycmVzcG9uZGluZyB0byB0aGUgcGFzc2VkIHJlbW90ZSBvYmplY3QgaWQuIiB9CisgICAg
ICAgICAgICAgICAgXQorICAgICAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICAiZXZlbnRz
IjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImFkZFByb2ZpbGVI
ZWFkZXIiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImhlYWRlciIsICIkcmVmIjogIlByb2ZpbGVIZWFkZXIiIH0KKyAgICAg
ICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJuYW1lIjogImFkZEhlYXBTbmFwc2hvdENodW5rIiwKKyAgICAgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1aWQiLCAidHlwZSI6
ICJpbnRlZ2VyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNodW5rIiwgInR5
cGUiOiAic3RyaW5nIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJmaW5pc2hIZWFwU25hcHNob3QiLAor
ICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInVpZCIsICJ0eXBlIjogImludGVnZXIiIH0KKyAgICAgICAgICAgICAgICBdCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogInJlc2V0
UHJvZmlsZXMiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICJuYW1lIjogInJlcG9ydEhlYXBTbmFwc2hvdFByb2dyZXNzIiwKKyAgICAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb25lIiwgInR5
cGUiOiAiaW50ZWdlciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0b3RhbCIs
ICJ0eXBlIjogImludGVnZXIiIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9Cisg
ICAgICAgIF0KKyAgICB9LAorICAgIHsKICAgICAgICAgImRvbWFpbiI6ICJXb3JrZXIiLAogICAg
ICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgInR5cGVzIjogW10sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAppbmRleCA5YzlmZjIwODU5YzJk
OGNiODU2MzQ3ZDY3YjgxMTMxYTdiYjg5ZWJmLi42N2NlYTQ2MGUyMGUxOWYyZGFmY2ZjOTVjZGQz
YTY3NmI4MjA5OTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JB
bGxJbk9uZS5jcHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JGaWxlU3lz
dGVtQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3Bw
IgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kSG9zdC5jcHAiCisjaW5jbHVkZSAiSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3Rvckhpc3RvcnkuY3Bw
IgogI2luY2x1ZGUgIkluc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JJbnB1dEFnZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBmM2RhODA4YzI5M2YzYzY0MGEzZTkwZmY3MGY3OWUz
ZjBlZmJmZjJhLi5kZjUwZDBlMTYyM2Q4ZjIwMDczMzMzOTMyNDJjNTNmMmI3NzllMTdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBA
IC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnB1
dEFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCkBAIC0xNTIs
NiArMTUzLDkgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdl
KiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICAgICBPd25QdHI8SW5zcGVjdG9y
UHJvZmlsZXJBZ2VudD4gcHJvZmlsZXJBZ2VudFB0cihJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpj
cmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQsIHBhZ2UsIG1f
c3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CiAgICAgbV9wcm9m
aWxlckFnZW50ID0gcHJvZmlsZXJBZ2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQo
cHJvZmlsZXJBZ2VudFB0ci5yZWxlYXNlKCkpOworCisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOworCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShXT1JLRVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY1YjM0
NGMwZjVjZjliZmVjYmFlNGRhOGI0OTk0MDYxNGUyMWJiNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAKQEAg
LTAsMCArMSwyNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSkFWQVNDUklQ
VF9ERUJVR0dFUikgJiYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIkluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50LmgiCisKKyNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgorI2luY2x1
ZGUgIkluamVjdGVkU2NyaXB0SG9zdC5oIgorI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMu
aCIKKyNpbmNsdWRlICJTY3JpcHRQcm9maWxlci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3Qg
Y2hhciogY29uc3QgVXNlckluaXRpYXRlZFByb2ZpbGVOYW1lID0gIm9yZy53ZWJraXQucHJvZmls
ZXMudXNlci1pbml0aWF0ZWQiOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IEhlYXBQcm9maWxl
VHlwZSA9ICJIRUFQIjsKKworUGFzc093blB0cjxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD4g
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3Rh
dGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQoreworICAg
IHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVu
dGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOworfQor
CitJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9z
aXRlU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVk
U2NyaXB0TWFuYWdlcikKKyAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudD4oIkhlYXBQcm9maWxlciIsIGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3Rv
clN0YXRlKQorICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKQorICAgICwgbV9mcm9udGVuZCgwKQorICAgICwgbV9oZWFkZXJzUmVxdWVzdGVkKGZhbHNl
KQorICAgICwgbV9uZXh0VXNlckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlcigxKQoreworICAg
IG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQodGhp
cyk7Cit9CisKK0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojp+SW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQoKQoreworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQoMCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6
OnJlc2V0U3RhdGUoKQoreworICAgIG1fc25hcHNob3RzLmNsZWFyKCk7CisgICAgbV9uZXh0VXNl
ckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlciA9IDE7CisgICAgcmVzZXRGcm9udGVuZFByb2Zp
bGVzKCk7CisgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgp
LT5jbGVhckluc3BlY3RlZE9iamVjdHMoKTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVzKCkKK3sKKyAgICBpZiAobV9oZWFkZXJzUmVx
dWVzdGVkICYmIG1fZnJvbnRlbmQgJiYgbV9zbmFwc2hvdHMuaXNFbXB0eSgpKQorICAgICAgICBt
X2Zyb250ZW5kLT5yZXNldFByb2ZpbGVzKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKK3sKKyAg
ICBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPmhlYXBwcm9maWxlcigpOworfQorCit2b2lkIEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50OjpjbGVhckZyb250ZW5kKCkKK3sKKyAgICBtX2hlYWRlcnNS
ZXF1ZXN0ZWQgPSBmYWxzZTsKKyAgICBtX2Zyb250ZW5kID0gMDsKK30KKwordm9pZCBJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudDo6cmVzdG9yZSgpCit7CisgICAgLy8gUmV2aXNpdCB0aGlzLgor
ICAgIG1faGVhZGVyc1JlcXVlc3RlZCA9IHRydWU7CisgICAgcmVzZXRGcm9udGVuZFByb2ZpbGVz
KCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmNvbGxlY3RHYXJiYWdl
KFdlYkNvcmU6OkVycm9yU3RyaW5nKikKK3sKKyAgICBTY3JpcHRQcm9maWxlcjo6Y29sbGVjdEdh
cmJhZ2UoKTsKK30KKworUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6SGVhcFByb2ZpbGVyOjpQcm9m
aWxlSGVhZGVyPiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDo6Y3JlYXRlU25hcHNob3RIZWFk
ZXIoY29uc3QgU2NyaXB0SGVhcFNuYXBzaG90JiBzbmFwc2hvdCkKK3sKKyAgICBSZWZQdHI8VHlw
ZUJ1aWxkZXI6OkhlYXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcj4gaGVhZGVyID0gVHlwZUJ1aWxk
ZXI6OkhlYXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcjo6Y3JlYXRlKCkKKyAgICAgICAgLnNldFVp
ZChzbmFwc2hvdC51aWQoKSkKKyAgICAgICAgLnNldFRpdGxlKHNuYXBzaG90LnRpdGxlKCkpOwor
ICAgIGhlYWRlci0+c2V0TWF4SlNPYmplY3RJZChzbmFwc2hvdC5tYXhTbmFwc2hvdEpTT2JqZWN0
SWQoKSk7CisgICAgcmV0dXJuIGhlYWRlci5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQ6Omhhc0hlYXBQcm9maWxlcihFcnJvclN0cmluZyosIGJvb2wqIHJl
c3VsdCkKK3sKKyAgICAqcmVzdWx0ID0gU2NyaXB0UHJvZmlsZXI6Omhhc0hlYXBQcm9maWxlcigp
OworfQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpnZXRQcm9maWxlSGVhZGVy
cyhFcnJvclN0cmluZyosIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6Okhl
YXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcj4gPiYgaGVhZGVycykKK3sKKyAgICBtX2hlYWRlcnNS
ZXF1ZXN0ZWQgPSB0cnVlOworICAgIGhlYWRlcnMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1
aWxkZXI6OkhlYXBQcm9maWxlcjo6UHJvZmlsZUhlYWRlcj46OmNyZWF0ZSgpOworCisgICAgSWRU
b0hlYXBTbmFwc2hvdE1hcDo6aXRlcmF0b3Igc25hcHNob3RzRW5kID0gbV9zbmFwc2hvdHMuZW5k
KCk7CisgICAgZm9yIChJZFRvSGVhcFNuYXBzaG90TWFwOjppdGVyYXRvciBpdCA9IG1fc25hcHNo
b3RzLmJlZ2luKCk7IGl0ICE9IHNuYXBzaG90c0VuZDsgKytpdCkKKyAgICAgICAgaGVhZGVycy0+
YWRkSXRlbShjcmVhdGVTbmFwc2hvdEhlYWRlcigqaXQtPnZhbHVlKSk7Cit9CisKK3ZvaWQgSW5z
cGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmdldEhlYXBTbmFwc2hvdChFcnJvclN0cmluZyogZXJy
b3JTdHJpbmcsIGludCByYXdVaWQpCit7CisgICAgY2xhc3MgT3V0cHV0U3RyZWFtIDogcHVibGlj
IFNjcmlwdEhlYXBTbmFwc2hvdDo6T3V0cHV0U3RyZWFtIHsKKyAgICBwdWJsaWM6CisgICAgICAg
IE91dHB1dFN0cmVhbShJbnNwZWN0b3JGcm9udGVuZDo6SGVhcFByb2ZpbGVyKiBmcm9udGVuZCwg
dW5zaWduZWQgdWlkKQorICAgICAgICAgICAgOiBtX2Zyb250ZW5kKGZyb250ZW5kKSwgbV91aWQo
dWlkKSB7IH0KKyAgICAgICAgdm9pZCBXcml0ZShjb25zdCBTdHJpbmcmIGNodW5rKSB7IG1fZnJv
bnRlbmQtPmFkZEhlYXBTbmFwc2hvdENodW5rKG1fdWlkLCBjaHVuayk7IH0KKyAgICAgICAgdm9p
ZCBDbG9zZSgpIHsgbV9mcm9udGVuZC0+ZmluaXNoSGVhcFNuYXBzaG90KG1fdWlkKTsgfQorICAg
IHByaXZhdGU6CisgICAgICAgIEluc3BlY3RvckZyb250ZW5kOjpIZWFwUHJvZmlsZXIqIG1fZnJv
bnRlbmQ7CisgICAgICAgIGludCBtX3VpZDsKKyAgICB9OworCisgICAgdW5zaWduZWQgdWlkID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJhd1VpZCk7CisgICAgSWRUb0hlYXBTbmFwc2hvdE1hcDo6
aXRlcmF0b3IgaXQgPSBtX3NuYXBzaG90cy5maW5kKHVpZCk7CisgICAgaWYgKGl0ID09IG1fc25h
cHNob3RzLmVuZCgpKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJQcm9maWxlIHdhc24ndCBm
b3VuZCI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgUmVmUHRyPFNjcmlwdEhlYXBTbmFw
c2hvdD4gc25hcHNob3QgPSBpdC0+dmFsdWU7CisgICAgaWYgKG1fZnJvbnRlbmQpIHsKKyAgICAg
ICAgT3V0cHV0U3RyZWFtIHN0cmVhbShtX2Zyb250ZW5kLCB1aWQpOworICAgICAgICBzbmFwc2hv
dC0+d3JpdGVKU09OKCZzdHJlYW0pOworICAgIH0KK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudDo6cmVtb3ZlUHJvZmlsZShFcnJvclN0cmluZyosIGludCByYXdVaWQpCit7Cisg
ICAgdW5zaWduZWQgdWlkID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJhd1VpZCk7CisgICAgaWYg
KG1fc25hcHNob3RzLmNvbnRhaW5zKHVpZCkpCisgICAgICAgIG1fc25hcHNob3RzLnJlbW92ZSh1
aWQpOworfQorCit2b2lkIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50Ojp0YWtlSGVhcFNuYXBz
aG90KEVycm9yU3RyaW5nKiwgY29uc3QgYm9vbCogcmVwb3J0UHJvZ3Jlc3MpCit7CisgICAgY2xh
c3MgSGVhcFNuYXBzaG90UHJvZ3Jlc3M6IHB1YmxpYyBTY3JpcHRQcm9maWxlcjo6SGVhcFNuYXBz
aG90UHJvZ3Jlc3MgeworICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQgSGVhcFNuYXBzaG90
UHJvZ3Jlc3MoSW5zcGVjdG9yRnJvbnRlbmQ6OkhlYXBQcm9maWxlciogZnJvbnRlbmQpCisgICAg
ICAgICAgICA6IG1fZnJvbnRlbmQoZnJvbnRlbmQpIHsgfQorICAgICAgICB2b2lkIFN0YXJ0KGlu
dCB0b3RhbFdvcmspCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdG90YWxXb3JrID0gdG90YWxX
b3JrOworICAgICAgICB9CisgICAgICAgIHZvaWQgV29ya2VkKGludCB3b3JrRG9uZSkKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAgICAgICAgICAgbV9mcm9u
dGVuZC0+cmVwb3J0SGVhcFNuYXBzaG90UHJvZ3Jlc3Mod29ya0RvbmUsIG1fdG90YWxXb3JrKTsK
KyAgICAgICAgfQorICAgICAgICB2b2lkIERvbmUoKSB7IH0KKyAgICAgICAgYm9vbCBpc0NhbmNl
bGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBwcml2YXRlOgorICAgICAgICBJbnNwZWN0b3JG
cm9udGVuZDo6SGVhcFByb2ZpbGVyKiBtX2Zyb250ZW5kOworICAgICAgICBpbnQgbV90b3RhbFdv
cms7CisgICAgfTsKKworICAgIFN0cmluZyB0aXRsZSA9IG1ha2VTdHJpbmcoVXNlckluaXRpYXRl
ZFByb2ZpbGVOYW1lLCAnLicsIFN0cmluZzo6bnVtYmVyKG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFw
U25hcHNob3ROdW1iZXIpKTsKKyAgICArK21fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3RO
dW1iZXI7CisKKyAgICBIZWFwU25hcHNob3RQcm9ncmVzcyBwcm9ncmVzcyhyZXBvcnRQcm9ncmVz
cyAmJiAqcmVwb3J0UHJvZ3Jlc3MgPyBtX2Zyb250ZW5kIDogMCk7CisgICAgUmVmUHRyPFNjcmlw
dEhlYXBTbmFwc2hvdD4gc25hcHNob3QgPSBTY3JpcHRQcm9maWxlcjo6dGFrZUhlYXBTbmFwc2hv
dCh0aXRsZSwgJnByb2dyZXNzKTsKKyAgICBpZiAoc25hcHNob3QpIHsKKyAgICAgICAgbV9zbmFw
c2hvdHMuYWRkKHNuYXBzaG90LT51aWQoKSwgc25hcHNob3QpOworICAgICAgICBpZiAobV9mcm9u
dGVuZCkKKyAgICAgICAgICAgIG1fZnJvbnRlbmQtPmFkZFByb2ZpbGVIZWFkZXIoY3JlYXRlU25h
cHNob3RIZWFkZXIoKnNuYXBzaG90KSk7CisgICAgfQorfQorCit2b2lkIEluc3BlY3RvckhlYXBQ
cm9maWxlckFnZW50OjpnZXRPYmplY3RCeUhlYXBPYmplY3RJZChFcnJvclN0cmluZyogZXJyb3Is
IGNvbnN0IFN0cmluZyYgaGVhcFNuYXBzaG90T2JqZWN0SWQsIGNvbnN0IFN0cmluZyogb2JqZWN0
R3JvdXAsIFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0
KQoreworICAgIGJvb2wgb2s7CisgICAgdW5zaWduZWQgaWQgPSBoZWFwU25hcHNob3RPYmplY3RJ
ZC50b1VJbnQoJm9rKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgICplcnJvciA9ICJJbnZhbGlk
IGhlYXAgc25hcHNob3Qgb2JqZWN0IGlkIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBT
Y3JpcHRPYmplY3QgaGVhcE9iamVjdCA9IFNjcmlwdFByb2ZpbGVyOjpvYmplY3RCeUhlYXBPYmpl
Y3RJZChpZCk7CisgICAgaWYgKGhlYXBPYmplY3QuaGFzTm9WYWx1ZSgpKSB7CisgICAgICAgICpl
cnJvciA9ICJPYmplY3QgaXMgbm90IGF2YWlsYWJsZSI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFu
YWdlci0+aW5qZWN0ZWRTY3JpcHRGb3IoaGVhcE9iamVjdC5zY3JpcHRTdGF0ZSgpKTsKKyAgICBp
ZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKSB7CisgICAgICAgICplcnJvciA9ICJPYmpl
Y3QgaXMgbm90IGF2YWlsYWJsZS4gSW5zcGVjdGVkIGNvbnRleHQgaXMgZ29uZSI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgcmVzdWx0ID0gaW5qZWN0ZWRTY3JpcHQud3JhcE9iamVjdCho
ZWFwT2JqZWN0LCBvYmplY3RHcm91cCA/ICpvYmplY3RHcm91cCA6ICIiKTsKKyAgICBpZiAoIXJl
c3VsdCkKKyAgICAgICAgKmVycm9yID0gIkZhaWxlZCB0byB3cmFwIG9iamVjdCI7Cit9CisKK3Zv
aWQgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ6OmdldEhlYXBPYmplY3RJZChFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIFN0cmluZyogaGVhcFNuYXBz
aG90T2JqZWN0SWQpCit7CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2lu
amVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3JPYmplY3RJZChvYmplY3RJZCk7
CisgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkgeworICAgICAgICAqZXJyb3JT
dHJpbmcgPSAiSW5zcGVjdGVkIGNvbnRleHQgaGFzIGdvbmUiOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIFNjcmlwdFZhbHVlIHZhbHVlID0gaW5qZWN0ZWRTY3JpcHQuZmluZE9iamVjdEJ5
SWQob2JqZWN0SWQpOworICAgIGlmICh2YWx1ZS5oYXNOb1ZhbHVlKCkgfHwgdmFsdWUuaXNVbmRl
ZmluZWQoKSkgeworICAgICAgICAqZXJyb3JTdHJpbmcgPSAiT2JqZWN0IHdpdGggZ2l2ZW4gaWQg
bm90IGZvdW5kIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB1bnNpZ25lZCBpZCA9IFNj
cmlwdFByb2ZpbGVyOjpnZXRIZWFwT2JqZWN0SWQodmFsdWUpOworICAgICpoZWFwU25hcHNob3RP
YmplY3RJZCA9IFN0cmluZzo6bnVtYmVyKGlkKTsKK30KKwordm9pZCBJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQpOwor
ICAgIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudD46OnJlcG9y
dE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLCAiaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyIik7CisgICAgaW5mby5h
ZGRXZWFrUG9pbnRlcihtX2Zyb250ZW5kKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NuYXBzaG90
cywgInNuYXBzaG90cyIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmQ3ODI5NDk0ZGIwMTEyOWUxZWQzYWJiZThmZTU3YTVmOTgwZTUwNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudC5oCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50X2gKKyNkZWZpbmUgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnRfaAorCisjaWYg
RU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNs
dWRlICJJbnNwZWN0b3JCYXNlQWdlbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5o
IgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEluamVjdGVkU2NyaXB0TWFuYWdlcjsKK2NsYXNzIFNjcmlwdEhlYXBTbmFwc2hvdDsK
K2NsYXNzIFNjcmlwdFByb2ZpbGU7CisKK3R5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOworCitj
bGFzcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdl
bnQ8SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXI6OkhlYXBQcm9maWxlckNvbW1hbmRIYW5kbGVyIHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0
YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAgdmlydHVhbCB+SW5zcGVjdG9ySGVh
cFByb2ZpbGVyQWdlbnQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0R2FyYmFnZShFcnJv
clN0cmluZyopOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclByb2ZpbGVzKEVycm9yU3RyaW5nKikg
eyByZXNldFN0YXRlKCk7IH0KKyAgICB2b2lkIHJlc2V0U3RhdGUoKTsKKworICAgIHZpcnR1YWwg
dm9pZCBoYXNIZWFwUHJvZmlsZXIoRXJyb3JTdHJpbmcqLCBib29sKik7CisKKyAgICB2aXJ0dWFs
IHZvaWQgZ2V0UHJvZmlsZUhlYWRlcnMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6
OkFycmF5PFR5cGVCdWlsZGVyOjpIZWFwUHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+ID4mKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgaW50IHVpZCk7Cisg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZVByb2ZpbGUoRXJyb3JTdHJpbmcqLCBpbnQgdWlkKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopOworICAgIHZp
cnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmUoKTsK
KworICAgIHZpcnR1YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgY29uc3Qg
Ym9vbCogcmVwb3J0UHJvZ3Jlc3MpOworCisgICAgdmlydHVhbCB2b2lkIGdldE9iamVjdEJ5SGVh
cE9iamVjdElkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBoZWFwU25hcHNob3RPYmplY3RJ
ZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1l
OjpSZW1vdGVPYmplY3Q+JiByZXN1bHQpOworICAgIHZpcnR1YWwgdm9pZCBnZXRIZWFwT2JqZWN0
SWQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBTdHJpbmcqIGhlYXBTbmFw
c2hvdE9iamVjdElkKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKK3ByaXZhdGU6CisgICAgSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0
ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisKKyAgICB0eXBlZGVmIEhhc2hNYXA8
dW5zaWduZWQsIFJlZlB0cjxTY3JpcHRIZWFwU25hcHNob3Q+ID4gSWRUb0hlYXBTbmFwc2hvdE1h
cDsKKworICAgIHZvaWQgcmVzZXRGcm9udGVuZFByb2ZpbGVzKCk7CisKKyAgICBQYXNzUmVmUHRy
PFR5cGVCdWlsZGVyOjpIZWFwUHJvZmlsZXI6OlByb2ZpbGVIZWFkZXI+IGNyZWF0ZVNuYXBzaG90
SGVhZGVyKGNvbnN0IFNjcmlwdEhlYXBTbmFwc2hvdCYpOworCisgICAgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKKyAgICBJbnNwZWN0b3JGcm9udGVuZDo6
SGVhcFByb2ZpbGVyKiBtX2Zyb250ZW5kOworICAgIGJvb2wgbV9oZWFkZXJzUmVxdWVzdGVkOwor
ICAgIHVuc2lnbmVkIG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1iZXI7CisgICAg
SWRUb0hlYXBTbmFwc2hvdE1hcCBtX3NuYXBzaG90czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUo
SU5TUEVDVE9SKQorCisjZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKaW5kZXggYTFmNTAxZDI0MDU1OGI4Y2ViOGNiMGRlZjEwMDZkYWI1Y2Mw
ODlkNS4uYTMwZDE1ZjJmNjIzMjhhN2UzNDM2ZDM4YmU3YjEwZjc3YWFkYzA0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRl
YnVnZ2VyQWdlbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckxheWVyVHJlZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
UGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIgpAQCAtOTI0
LDYgKzkyNSw4IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2Fk
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50CiAjaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpICYmIFVTRShKU0MpCiAgICAgICAgIGlmIChJbnNwZWN0b3JQcm9maWxlckFn
ZW50KiBwcm9maWxlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUHJvZmls
ZXJBZ2VudCgpKQogICAgICAgICAgICAgcHJvZmlsZXJBZ2VudC0+cmVzZXRTdGF0ZSgpOworICAg
ICAgICBpZiAoSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQqIGhlYXBQcm9maWxlckFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQoKSkKKyAgICAg
ICAgICAgIGhlYXBQcm9maWxlckFnZW50LT5yZXNldFN0YXRlKCk7CiAjZW5kaWYKICAgICAgICAg
aWYgKEluc3BlY3RvckNTU0FnZW50KiBjc3NBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmlu
c3BlY3RvckNTU0FnZW50KCkpCiAgICAgICAgICAgICBjc3NBZ2VudC0+cmVzZXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCmluZGV4IDJhODI4
N2VlYzYwOWZmZmY5MDM0ZjhkZjIyMDMzMmE2NGNiNmEzNTkuLmNkOGEyZDkyNzg0ZjI0ZmYyMmM2
NjQ0NWNjMzQyZGIxYzU0YTJiMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3RydW1lbnRpbmdBZ2VudHMuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OwogY2xhc3MgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDsKIGNsYXNzIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDsKK2NsYXNz
IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OwogY2xhc3MgSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQ7CiBjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JQcm9maWxlckFn
ZW50OwpAQCAtMTI3LDYgKzEyOCw5IEBAIHB1YmxpYzoKIAogICAgIEluc3BlY3RvclByb2ZpbGVy
QWdlbnQqIGluc3BlY3RvclByb2ZpbGVyQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3Rv
clByb2ZpbGVyQWdlbnQ7IH0KICAgICB2b2lkIHNldEluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JQcm9maWxlckFnZW50ID0g
YWdlbnQ7IH0KKworICAgIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KiBpbnNwZWN0b3JIZWFw
UHJvZmlsZXJBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnQ7IH0KKyAgICB2b2lkIHNldEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50KiBhZ2VudCkgeyBtX2luc3BlY3RvckhlYXBQcm9maWxlckFnZW50ID0g
YWdlbnQ7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKFdPUktFUlMpCkBAIC0xNzAsNiArMTc0LDcg
QEAgcHJpdmF0ZToKICAgICBQYWdlRGVidWdnZXJBZ2VudCogbV9wYWdlRGVidWdnZXJBZ2VudDsK
ICAgICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KiBtX2luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQ7CiAgICAgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCogbV9pbnNwZWN0b3JQcm9maWxlckFnZW50
OworICAgIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50KiBtX2luc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50OwogI2VuZGlmCiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgSW5zcGVjdG9yV29ya2Vy
QWdlbnQqIG1faW5zcGVjdG9yV29ya2VyQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggOWM3NWM5Mzdk
MTM4ZTk5MTE3MTg5OTZiYTg2M2M1ZTMzNWZiYzRkYS4uNzAwNGFlOWY5YWMwNjU1ZmE2ZjMzMmRj
ZDU4NDJjN2FiMTI3MjgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1
ZGUgIkluc3BlY3RvckNvbnNvbGVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5k
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCisjaW5jbHVkZSAiSW5z
cGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JQcm9maWxlckFn
ZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JT
dGF0ZUNsaWVudC5oIgpAQCAtMTEwLDYgKzExMSw3IEBAIFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXI6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4
CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRlYnVnZ2VyQWdlbnQucmVsZWFzZSgpKTsKIAogICAgIG1f
YWdlbnRzLmFwcGVuZChJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50
aW5nQWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQuZ2V0KCksIHdvcmtlckNvbnRleHQsIG1fc3Rh
dGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9hZ2VudHMu
YXBwZW5kKEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQo
KSkpOwogI2VuZGlmCiAgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIDAsIG1fc3RhdGUuZ2V0KCksIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6Oldvcmtlckluc3BlY3RvciwgMCkpOwogICAgIG1fYWdlbnRz
LmFwcGVuZChjb25zb2xlQWdlbnQucmVsZWFzZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90RGF0YUdyaWRzLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanMKaW5k
ZXggMTFiMzQ5YTQxNTViYmY2ZDY3YjRhMmJjYTI1YzdlMDlhZjcwYjFiNS4uZGUzOGJjNjk4NGZh
YjkxNDU5YTExNDljZmI3NjFkNjc0ZDhmY2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3REYXRhR3JpZHMuanMKQEAg
LTEzNCw3ICsxMzQsNyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90U29ydGFibGVEYXRhR3Jp
ZC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7UHJvZmls
ZXJBZ2VudC5IZWFwU25hcHNob3RPYmplY3RJZH0gaGVhcFNuYXBzaG90T2JqZWN0SWQKKyAgICAg
KiBAcGFyYW0ge0hlYXBQcm9maWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElkfSBoZWFwU25h
cHNob3RPYmplY3RJZAogICAgICAqLwogICAgIGhpZ2hsaWdodE9iamVjdEJ5SGVhcFNuYXBzaG90
SWQ6IGZ1bmN0aW9uKGhlYXBTbmFwc2hvdE9iamVjdElkKQogICAgIHsKQEAgLTUyOCw3ICs1Mjgs
NyBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Q29uc3RydWN0b3JzRGF0YUdyaWQucHJvdG90
eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtQcm9m
aWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElkfSBpZAorICAgICAqIEBwYXJhbSB7SGVhcFBy
b2ZpbGVyQWdlbnQuSGVhcFNuYXBzaG90T2JqZWN0SWR9IGlkCiAgICAgICovCiAgICAgaGlnaGxp
Z2h0T2JqZWN0QnlIZWFwU25hcHNob3RJZDogZnVuY3Rpb24oaWQpCiAgICAgewpAQCAtNzM0LDcg
KzczNCw3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3REb21pbmF0b3JzRGF0YUdyaWQucHJv
dG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtQ
cm9maWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElkfSBpZAorICAgICAqIEBwYXJhbSB7SGVh
cFByb2ZpbGVyQWdlbnQuSGVhcFNuYXBzaG90T2JqZWN0SWR9IGlkCiAgICAgICovCiAgICAgaGln
aGxpZ2h0T2JqZWN0QnlIZWFwU25hcHNob3RJZDogZnVuY3Rpb24oaWQpCiAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RHcmlk
Tm9kZXMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hv
dEdyaWROb2Rlcy5qcwppbmRleCBmMjk0MWM3NmExZjI5NDE0N2NlYWMwYjgwNDY4Nzc0ZmQ4OTU2
ODZjLi5jOWU0MDBiOGVlOGY4YzQ5NDdkN2YwYTdiY2NmYjg2NzMyMjY2YjQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rl
cy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hv
dEdyaWROb2Rlcy5qcwpAQCAtNDY1LDcgKzQ2NSw3IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNo
b3RHZW5lcmljT2JqZWN0Tm9kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZy
b21QcmltaXRpdmVWYWx1ZShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vdCBhdmFpbGFibGUiKSkp
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5nZXRPYmplY3RCeUhl
YXBPYmplY3RJZChTdHJpbmcodGhpcy5zbmFwc2hvdE5vZGVJZCksIG9iamVjdEdyb3VwTmFtZSwg
Zm9ybWF0UmVzdWx0KTsKKyAgICAgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldE9iamVjdEJ5
SGVhcE9iamVjdElkKFN0cmluZyh0aGlzLnNuYXBzaG90Tm9kZUlkKSwgb2JqZWN0R3JvdXBOYW1l
LCBmb3JtYXRSZXN1bHQpOwogICAgICAgICB9CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RWaWV3LmpzCmluZGV4IGRm
OThkYjE2ZDA2ZTllN2Q4NDcyZGU1NmVlYjkxYzQyMmM4ZDY5NzMuLjE3MjBlOWE4YjFiMjE0MDUz
ZTc3YWY0MThlOTM5YjBmY2E5ZTNlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFZpZXcuanMKQEAgLTgwMSw3ICs4MDEsNyBA
QCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJvZmlsZVR5cGUucHJvdG90eXBlID0gewogCiAg
ICAgLyoqCiAgICAgICogQG92ZXJyaWRlCi0gICAgICogQHBhcmFtIHtQcm9maWxlckFnZW50LlBy
b2ZpbGVIZWFkZXJ9IHByb2ZpbGUKKyAgICAgKiBAcGFyYW0ge0hlYXBQcm9maWxlckFnZW50LlBy
b2ZpbGVIZWFkZXJ9IHByb2ZpbGUKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUHJvZmls
ZUhlYWRlcn0KICAgICAgKi8KICAgICBjcmVhdGVQcm9maWxlOiBmdW5jdGlvbihwcm9maWxlKQpA
QCAtODc5LDcgKzg3OSw3IEBAIFdlYkluc3BlY3Rvci5IZWFwUHJvZmlsZUhlYWRlci5wcm90b3R5
cGUgPSB7CiAKICAgICBzdGFydFNuYXBzaG90VHJhbnNmZXI6IGZ1bmN0aW9uKCkKICAgICB7Ci0g
ICAgICAgIFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KHRoaXMudWlkKTsKKyAgICAgICAg
SGVhcFByb2ZpbGVyQWdlbnQuZ2V0SGVhcFNuYXBzaG90KHRoaXMudWlkKTsKICAgICB9LAogCiAg
ICAgc25hcHNob3RDb25zdHJ1Y3Rvck5hbWU6IGZ1bmN0aW9uKCkKQEAgLTk4Niw3ICs5ODYsNyBA
QCBXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVIZWFkZXIucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgdGhpcy5fcmVjZWl2ZXIgPSBmaWxlT3V0cHV0U3RyZWFtOwogICAgICAgICAgICAgdGhpcy5f
c2F2ZWRDaHVua3MgPSAwOwogICAgICAgICAgICAgdGhpcy5fdXBkYXRlVHJhbnNmZXJQcm9ncmVz
cygwLCB0aGlzLl90b3RhbE51bWJlck9mQ2h1bmtzKTsKLSAgICAgICAgICAgIFByb2ZpbGVyQWdl
bnQuZ2V0SGVhcFNuYXBzaG90KHRoaXMudWlkKTsKKyAgICAgICAgICAgIEhlYXBQcm9maWxlckFn
ZW50LmdldEhlYXBTbmFwc2hvdCh0aGlzLnVpZCk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5f
c2F2aW5nVG9GaWxlID0gdHJ1ZTsKICAgICAgICAgdGhpcy5fZmlsZU5hbWUgPSB0aGlzLl9maWxl
TmFtZSB8fCAiSGVhcC0iICsgbmV3IERhdGUoKS50b0lTTzg2MDFDb21wYWN0KCkgKyAiLmhlYXBz
bmFwc2hvdCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Byb2ZpbGVzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVzUGFuZWwuanMKaW5kZXggNWI0MThkZWYzMTI4MzA2Y2YwM2E0OTZiMTZiYmVhZTBhOGUw
Njk1Yi4uYjkxNmE2ZTI5ODg0OTZmN2U5MTM4MzQxNjljNDM1YWMzNjIzMjE5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpA
QCAtMzA2LDYgKzMwNiw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24o
KQogICAgICAgICB0aGlzLl9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuQ2Fu
dmFzUHJvZmlsZVR5cGUoKSk7CiAKICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyUHJvZmls
ZXJEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZXJEaXNwYXRjaGVyKHRoaXMpKTsK
KyAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVySGVhcFByb2ZpbGVyRGlzcGF0Y2hlcihuZXcg
V2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlckRpc3BhdGNoZXIodGhpcykpOwogICAgIEluc3BlY3Rv
ckJhY2tlbmQucmVnaXN0ZXJNZW1vcnlEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuTWVtb3J5
RGlzcGF0Y2hlcih0aGlzKSk7CiAKICAgICB0aGlzLl9jcmVhdGVGaWxlU2VsZWN0b3JFbGVtZW50
KCk7CkBAIC00NjcsMTIgKzQ2OCwxMyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgX2NsZWFyUHJvZmlsZXM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAg
IFByb2ZpbGVyQWdlbnQuY2xlYXJQcm9maWxlcygpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2Vu
dC5jbGVhclByb2ZpbGVzKCk7CiAgICAgICAgIHRoaXMuX3Jlc2V0KCk7CiAgICAgfSwKIAogICAg
IF9nYXJiYWdlQ29sbGVjdEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IFByb2ZpbGVyQWdlbnQuY29sbGVjdEdhcmJhZ2UoKTsKKyAgICAgICAgSGVhcFByb2ZpbGVyQWdl
bnQuY29sbGVjdEdhcmJhZ2UoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC02MjUsOCArNjI3LDEy
IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBz
aWRlYmFyUGFyZW50LnJlbW92ZUNoaWxkKHByb2ZpbGUuX3Byb2ZpbGVzVHJlZUVsZW1lbnQpOwog
Ci0gICAgICAgIGlmICghcHJvZmlsZS5pc1RlbXBvcmFyeSkKLSAgICAgICAgICAgIFByb2ZpbGVy
QWdlbnQucmVtb3ZlUHJvZmlsZShwcm9maWxlLnByb2ZpbGVUeXBlKCkuaWQsIHByb2ZpbGUudWlk
KTsKKyAgICAgICAgaWYgKCFwcm9maWxlLmlzVGVtcG9yYXJ5KSB7CisgICAgICAgICAgICBpZiAo
cHJvZmlsZS5wcm9maWxlVHlwZSgpLmlkID09IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9m
aWxlVHlwZS5UeXBlSWQpCisgICAgICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdlbnQucmVtb3Zl
UHJvZmlsZShwcm9maWxlLnVpZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
UHJvZmlsZXJBZ2VudC5yZW1vdmVQcm9maWxlKHByb2ZpbGUucHJvZmlsZVR5cGUoKS5pZCwgcHJv
ZmlsZS51aWQpOworICAgICAgICB9CiAKICAgICAgICAgLy8gTm8gb3RoZXIgaXRlbSB3aWxsIGJl
IHNlbGVjdGVkIGlmIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgcHJvZmlsZXMsIHNvCiAgICAgICAg
IC8vIG1ha2Ugc3VyZSB0aGF0IHZpZXcgZ2V0cyBjbGVhcmVkIHdoZW4gdGhlIGxhc3QgcHJvZmls
ZSBpcyByZW1vdmVkLgpAQCAtNjg0LDcgKzY5MCw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtQcm9m
aWxlckFnZW50LkhlYXBTbmFwc2hvdE9iamVjdElkfSBzbmFwc2hvdE9iamVjdElkCisgICAgICog
QHBhcmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5IZWFwU25hcHNob3RPYmplY3RJZH0gc25hcHNob3RP
YmplY3RJZAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2aWV3TmFtZQogICAgICAqLwogICAgIHNo
b3dPYmplY3Q6IGZ1bmN0aW9uKHNuYXBzaG90T2JqZWN0SWQsIHZpZXdOYW1lKQpAQCAtMTA4Nywy
MiArMTA5MywyNCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7P3N0
cmluZ30gdHlwZQogICAgICAgICAgKiBAcGFyYW0gez9zdHJpbmd9IGVycm9yCiAgICAgICAgICAq
IEBwYXJhbSB7QXJyYXkuPFByb2ZpbGVyQWdlbnQuUHJvZmlsZUhlYWRlcj59IHByb2ZpbGVIZWFk
ZXJzCiAgICAgICAgICAqLwotICAgICAgICBmdW5jdGlvbiBwb3B1bGF0ZUNhbGxiYWNrKGVycm9y
LCBwcm9maWxlSGVhZGVycykgeworICAgICAgICBmdW5jdGlvbiBwb3B1bGF0ZUNhbGxiYWNrKHR5
cGUsIGVycm9yLCBwcm9maWxlSGVhZGVycykgewogICAgICAgICAgICAgaWYgKGVycm9yKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHByb2ZpbGVIZWFkZXJzLnNvcnQoZnVu
Y3Rpb24oYSwgYikgeyByZXR1cm4gYS51aWQgLSBiLnVpZDsgfSk7CiAgICAgICAgICAgICB2YXIg
cHJvZmlsZUhlYWRlcnNMZW5ndGggPSBwcm9maWxlSGVhZGVycy5sZW5ndGg7CiAgICAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2ZpbGVIZWFkZXJzTGVuZ3RoOyArK2kpIHsKICAgICAg
ICAgICAgICAgICB2YXIgcHJvZmlsZUhlYWRlciA9IHByb2ZpbGVIZWFkZXJzW2ldOwotICAgICAg
ICAgICAgICAgIHZhciBwcm9maWxlVHlwZSA9IHRoaXMuZ2V0UHJvZmlsZVR5cGUocHJvZmlsZUhl
YWRlci50eXBlSWQpOworICAgICAgICAgICAgICAgIHZhciBwcm9maWxlVHlwZSA9IHRoaXMuZ2V0
UHJvZmlsZVR5cGUodHlwZSB8fCBwcm9maWxlSGVhZGVyLnR5cGVJZCk7CiAgICAgICAgICAgICAg
ICAgdGhpcy5hZGRQcm9maWxlSGVhZGVyKHByb2ZpbGVUeXBlLmNyZWF0ZVByb2ZpbGUocHJvZmls
ZUhlYWRlcikpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgUHJvZmlsZXJB
Z2VudC5nZXRQcm9maWxlSGVhZGVycyhwb3B1bGF0ZUNhbGxiYWNrLmJpbmQodGhpcykpOworICAg
ICAgICBQcm9maWxlckFnZW50LmdldFByb2ZpbGVIZWFkZXJzKHBvcHVsYXRlQ2FsbGJhY2suYmlu
ZCh0aGlzLCBudWxsKSk7CisgICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldFByb2ZpbGVIZWFk
ZXJzKHBvcHVsYXRlQ2FsbGJhY2suYmluZCh0aGlzLCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
UHJvZmlsZVR5cGUuVHlwZUlkKSk7CiAKICAgICAgICAgdGhpcy5fcHJvZmlsZXNXZXJlUmVxdWVz
dGVkID0gdHJ1ZTsKICAgICB9LApAQCAtMTE2NCw3ICsxMTcyLDcgQEAgV2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBmdW5jdGlvbiBkb25lKCkgewogICAg
ICAgICAgICAgdGhpcy5fbGF1bmNoZXJWaWV3LnByb2ZpbGVGaW5pc2hlZCgpOwogICAgICAgICB9
Ci0gICAgICAgIFByb2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFwc2hvdCh0cnVlLCBkb25lLmJpbmQo
dGhpcykpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KHRydWUs
IGRvbmUuYmluZCh0aGlzKSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci51c2VyTWV0cmljcy5Qcm9m
aWxlc0hlYXBQcm9maWxlVGFrZW4ucmVjb3JkKCk7CiAgICAgfSwKIApAQCAtMTIwMyw3ICsxMjEx
LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAg
IGZ1bmN0aW9uIHJldmVhbEluVmlldyh2aWV3TmFtZSkKICAgICAgICAgewotICAgICAgICAgICAg
UHJvZmlsZXJBZ2VudC5nZXRIZWFwT2JqZWN0SWQob2JqZWN0SWQsIGRpZFJlY2VpdmVIZWFwT2Jq
ZWN0SWQuYmluZCh0aGlzLCB2aWV3TmFtZSkpOworICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdl
bnQuZ2V0SGVhcE9iamVjdElkKG9iamVjdElkLCBkaWRSZWNlaXZlSGVhcE9iamVjdElkLmJpbmQo
dGhpcywgdmlld05hbWUpKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGRpZFJlY2Vp
dmVIZWFwT2JqZWN0SWQodmlld05hbWUsIGVycm9yLCByZXN1bHQpCkBAIC0xMzE2LDYgKzEzMjQs
NjQgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAKIC8q
KgogICogQGNvbnN0cnVjdG9yCisgKiBAaW1wbGVtZW50cyB7SGVhcFByb2ZpbGVyQWdlbnQuRGlz
cGF0Y2hlcn0KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWx9IHByb2ZpbGVz
UGFuZWwKKyAqLworV2ViSW5zcGVjdG9yLkhlYXBQcm9maWxlckRpc3BhdGNoZXIgPSBmdW5jdGlv
bihwcm9maWxlc1BhbmVsKQoreworICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwgPSBwcm9maWxlc1Bh
bmVsOworfQorCitXZWJJbnNwZWN0b3IuSGVhcFByb2ZpbGVyRGlzcGF0Y2hlci5wcm90b3R5cGUg
PSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtIZWFwUHJvZmlsZXJBZ2VudC5Qcm9maWxlSGVh
ZGVyfSBwcm9maWxlCisgICAgICovCisgICAgYWRkUHJvZmlsZUhlYWRlcjogZnVuY3Rpb24ocHJv
ZmlsZSkKKyAgICB7CisgICAgICAgIHZhciBwcm9maWxlVHlwZSA9IHRoaXMuX3Byb2ZpbGVzUGFu
ZWwuZ2V0UHJvZmlsZVR5cGUoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb2ZpbGVUeXBlLlR5
cGVJZCk7CisgICAgICAgIHRoaXMuX3Byb2ZpbGVzUGFuZWwuYWRkUHJvZmlsZUhlYWRlcihwcm9m
aWxlVHlwZS5jcmVhdGVQcm9maWxlKHByb2ZpbGUpKTsKKyAgICB9LAorCisgICAgLyoqCisgICAg
ICogQG92ZXJyaWRlCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHVpZAorICAgICAqIEBwYXJhbSB7
c3RyaW5nfSBjaHVuaworICAgICAqLworICAgIGFkZEhlYXBTbmFwc2hvdENodW5rOiBmdW5jdGlv
bih1aWQsIGNodW5rKQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJvZmlsZXNQYW5lbC5fYWRkSGVh
cFNuYXBzaG90Q2h1bmsodWlkLCBjaHVuayk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBv
dmVycmlkZQorICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1aWQKKyAgICAgKi8KKyAgICBmaW5pc2hI
ZWFwU25hcHNob3Q6IGZ1bmN0aW9uKHVpZCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Byb2ZpbGVz
UGFuZWwuX2ZpbmlzaEhlYXBTbmFwc2hvdCh1aWQpOworICAgIH0sCisKKyAgICAvKioKKyAgICAg
KiBAb3ZlcnJpZGUKKyAgICAgKi8KKyAgICByZXNldFByb2ZpbGVzOiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICB0aGlzLl9wcm9maWxlc1BhbmVsLl9yZXNldCgpOworICAgIH0sCisKKyAgICAv
KioKKyAgICAgKiBAb3ZlcnJpZGUKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gZG9uZQorICAgICAq
IEBwYXJhbSB7bnVtYmVyfSB0b3RhbAorICAgICAqLworICAgIHJlcG9ydEhlYXBTbmFwc2hvdFBy
b2dyZXNzOiBmdW5jdGlvbihkb25lLCB0b3RhbCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Byb2Zp
bGVzUGFuZWwuX3JlcG9ydEhlYXBTbmFwc2hvdFByb2dyZXNzKGRvbmUsIHRvdGFsKTsKKyAgICB9
Cit9CisKKy8qKgorICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNp
ZGViYXJUcmVlRWxlbWVudH0KICAqIEBwYXJhbSB7IVdlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVy
fSBwcm9maWxlCiAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGVGb3JtYXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCBhMzNi
ZWVlNDQ2NDZkYWJiOGM5NDM5MGFlYzcyOTgzZTc5MTRjZjBiLi5mMWIzMmVhYmI4N2ZjMzBlM2Nj
NTAyMTM1MTkyOTExODJhYTlmZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC01ODAsNyArNTgwLDcgQEAgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2dhcmJhZ2VDb2xsZWN0
QnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgUHJvZmlsZXJBZ2VudC5j
b2xsZWN0R2FyYmFnZSgpOworICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5jb2xsZWN0R2FyYmFn
ZSgpOwogICAgIH0sCiAKICAgICBfZ2x1ZVBhcmVudEJ1dHRvbkNsaWNrZWQ6IGZ1bmN0aW9uKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5k
ZXggOGEyN2IwOWU2NTczNGM2ZmE1MjAyMmQ2OThmMGE2MTU0Y2NmOTI3Mi4uMjlmNDNhNzY1MGU2
MjllZGExZTc2YzVmZmVhNDFhYzk3OWQzZjBlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTM2OCw3ICszNjgsNyBAQCBXZWJJbnNw
ZWN0b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rpb24oKQogICAgIERlYnVnZ2VyQWdlbnQuc3VwcG9y
dHNTZXBhcmF0ZVNjcmlwdENvbXBpbGF0aW9uQW5kRXhlY3V0aW9uKFdlYkluc3BlY3Rvci5faW5p
dGlhbGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJzZXBhcmF0ZVNjcmlwdENvbXBp
bGF0aW9uQW5kRXhlY3V0aW9uRW5hYmxlZCIsIG51bGwpKTsKICAgICBQcm9maWxlckFnZW50LmNh
dXNlc1JlY29tcGlsYXRpb24oV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5k
KFdlYkluc3BlY3RvciwgInByb2ZpbGVyQ2F1c2VzUmVjb21waWxhdGlvbiIsIG51bGwpKTsKICAg
ICBQcm9maWxlckFnZW50LmlzU2FtcGxpbmcoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJp
bGl0eS5iaW5kKFdlYkluc3BlY3RvciwgInNhbXBsaW5nQ1BVUHJvZmlsZXIiLCBudWxsKSk7Ci0g
ICAgUHJvZmlsZXJBZ2VudC5oYXNIZWFwUHJvZmlsZXIoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXpl
Q2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3RvciwgImhlYXBQcm9maWxlclByZXNlbnQiLCBudWxs
KSk7CisgICAgSGVhcFByb2ZpbGVyQWdlbnQuaGFzSGVhcFByb2ZpbGVyKFdlYkluc3BlY3Rvci5f
aW5pdGlhbGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJoZWFwUHJvZmlsZXJQcmVz
ZW50IiwgbnVsbCkpOwogICAgIFRpbWVsaW5lQWdlbnQuc3VwcG9ydHNGcmFtZUluc3RydW1lbnRh
dGlvbihXZWJJbnNwZWN0b3IuX2luaXRpYWxpemVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9y
LCAidGltZWxpbmVTdXBwb3J0c0ZyYW1lSW5zdHJ1bWVudGF0aW9uIiwgbnVsbCkpOwogICAgIFRp
bWVsaW5lQWdlbnQuY2FuTW9uaXRvck1haW5UaHJlYWQoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXpl
Q2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3RvciwgInRpbWVsaW5lQ2FuTW9uaXRvck1haW5UaHJl
YWQiLCBudWxsKSk7CiAgICAgUGFnZUFnZW50LmNhblNob3dEZWJ1Z0JvcmRlcnMoV2ViSW5zcGVj
dG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3RvciwgImNhblNob3dEZWJ1
Z0JvcmRlcnMiLCBudWxsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKaW5kZXggNGVhNDYwYTEwYjYwODkxY2E1ZWVlY2RhYThm
MzczNTU5Y2U4MThiMy4uNjA4M2Q5NjdiMWU5ZDI2ZWNkNTYzZWM5OWM5ODgwYzUzNzRiNDAxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJ
bXBsLmNwcApAQCAtNzc4LDcgKzc3OCw3IEBAIGJvb2wgV2ViRGV2VG9vbHNBZ2VudDo6c2hvdWxk
SW50ZXJydXB0Rm9yTWVzc2FnZShjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiAgICAgICAgIHx8
IGNvbW1hbmROYW1lID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpjb21tYW5kTmFtZXNb
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmtQcm9maWxlcl9zdGFydENtZF0KICAgICAgICAg
fHwgY29tbWFuZE5hbWUgPT0gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmROYW1l
c1tJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6a1Byb2ZpbGVyX3N0b3BDbWRdCiAgICAgICAg
IHx8IGNvbW1hbmROYW1lID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpjb21tYW5kTmFt
ZXNbSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OmtQcm9maWxlcl9nZXRDUFVQcm9maWxlQ21k
XQotICAgICAgICB8fCBjb21tYW5kTmFtZSA9PSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6
Y29tbWFuZE5hbWVzW0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjprUHJvZmlsZXJfZ2V0SGVh
cFNuYXBzaG90Q21kXTsKKyAgICAgICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXI6OmNvbW1hbmROYW1lc1tJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6a0hl
YXBQcm9maWxlcl9nZXRIZWFwU25hcHNob3RDbWRdOwogfQogCiB2b2lkIFdlYkRldlRvb2xzQWdl
bnQ6OnByb2Nlc3NQZW5kaW5nTWVzc2FnZXMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlkYzg1MzUzMjdhM2IzNDhlOWYz
MmEzNWJjMWY0NjU5YWRkZDI0ZDIuLjhjYTQ3YzQxMWJkNTg3NTRjOGIzNWUwYzBmY2I0NjM2Nzgy
YzE4ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wMi0xMSAgQWxleGVpIEZpbGlwcG92
ICA8YWxwaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU3BsaXQgUHJv
ZmlsZXIgZG9tYWluIGluIHByb3RvY29sIGludG8gUHJvZmlsZXIgYW5kIEhlYXBQcm9maWxlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NjUzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5
IENQVSBhbmQgaGVhcCBwcm9maWxlcnMgc2hhcmUgdGhlIHNhbWUgZG9tYWluICdQcm9maWxlcicg
aW4gdGhlIHByb3RvY29sLgorICAgICAgICBJbiBmYWN0IHRoZXNlIHR3byBwcm9maWxlIHR5cGVz
IGhhdmUgbm90IHRvbyBtdWNoIGluIGNvbW1vbi4gU28gcHV0IGVhY2ggaW50byBpdHMgb3duIGRv
bWFpbi4KKyAgICAgICAgSXQgc2hvdWxkIGFsc28gaGVscCB3aGVuIFByb2ZpbGVzIHBhbmVsIGdl
dHMgc3BsaXQgaW50byBzZXZlcmFsIHRvb2xzLgorICAgICAgICBUaGlzIGlzIHRoZSBwaGFzZSAx
IHdoaWNoIGFkZHMgSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQgYnV0IGRvZXNuJ3QKKyAgICAg
ICAgY2hhbmdlIHRoZSBvcmlnaW5hbCBJbnNwZWN0b3JQcm9maWxlckFnZW50LgorCisgICAgICAg
ICogaW5zcGVjdG9yLXByb3RvY29sL2hlYXAtcHJvZmlsZXIvcmVzb3VyY2VzL2hlYXAtc25hcHNo
b3QtY29tbW9uLmpzOgorICAgICAgICAoSW5zcGVjdG9yVGVzdC50YWtlSGVhcFNuYXBzaG90Lklu
c3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyLnN0cmluZ19hcHBlYXJlZF9oZXJlKToKKyAgICAgICAg
KEluc3BlY3RvclRlc3QudGFrZUhlYXBTbmFwc2hvdCk6CisgICAgICAgICogaW5zcGVjdG9yLXBy
b3RvY29sL25taS13ZWJhdWRpby1sZWFrLXRlc3QuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzOgor
ICAgICAgICAoaW5pdGlhbGl6ZV9IZWFwU25hcHNob3RUZXN0KToKKwogMjAxMy0wMi0xMSAgS2Vu
dGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBn
YXJkZW5pbmcuIE1hcmsgc3ZnL2N1c3RvbS9mb3JlaWduLW9iamVjdC1za2V3LnN2ZwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2hlYXAtcHJvZmlsZXIvcmVzb3Vy
Y2VzL2hlYXAtc25hcHNob3QtY29tbW9uLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2hlYXAtcHJvZmlsZXIvcmVzb3VyY2VzL2hlYXAtc25hcHNob3QtY29tbW9uLmpzCmluZGV4
IDdiM2I5ZjE4YTk3MWZjNTA2NGMwMGYyOTlkNWIxNDE4NTY0ZjMwMWIuLjllOTg4NDk3ZDE1Njlh
YWZmMTY4YmZhNmMwNzhjM2Y3ZjdkZTg2OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9oZWFwLXByb2ZpbGVyL3Jlc291cmNlcy9oZWFwLXNuYXBzaG90LWNvbW1v
bi5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvaGVhcC1wcm9maWxlci9y
ZXNvdXJjZXMvaGVhcC1zbmFwc2hvdC1jb21tb24uanMKQEAgLTksMTAgKzksMTAgQEAgSW5zcGVj
dG9yVGVzdC5pbXBvcnRTY3JpcHQoIi4uLy4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvSlMKIAogSW5zcGVjdG9yVGVzdC50YWtlSGVhcFNuYXBzaG90ID0gZnVu
Y3Rpb24oY2FsbGJhY2spCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlByb2Zp
bGVyLmFkZFByb2ZpbGVIZWFkZXIiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgSW5z
cGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkhlYXBQcm9maWxlci5hZGRQcm9maWxlSGVhZGVyIl0g
PSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogICAgIHsKICAgICAgICAgdmFyIHByb2ZpbGVJZCA9
IG1lc3NhZ2VPYmplY3RbInBhcmFtcyJdWyJoZWFkZXIiXVsidWlkIl07Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlByb2ZpbGVyLmdldEhlYXBTbmFwc2hvdCIsIHsgInVpZCI6
IHByb2ZpbGVJZCB9LCBkaWRHZXRIZWFwU25hcHNob3QpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJIZWFwUHJvZmlsZXIuZ2V0SGVhcFNuYXBzaG90IiwgeyAidWlkIjogcHJv
ZmlsZUlkIH0sIGRpZEdldEhlYXBTbmFwc2hvdCk7CiAKICAgICAgICAgZnVuY3Rpb24gZGlkR2V0
SGVhcFNuYXBzaG90KG1lc3NhZ2VPYmplY3QpCiAgICAgICAgIHsKQEAgLTIyLDEyICsyMiwxMiBA
QCBJbnNwZWN0b3JUZXN0LnRha2VIZWFwU25hcHNob3QgPSBmdW5jdGlvbihjYWxsYmFjaykKICAg
ICB9CiAKICAgICB2YXIgY2h1bmtzID0gW107Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRs
ZXJbIlByb2ZpbGVyLmFkZEhlYXBTbmFwc2hvdENodW5rIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQorICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJIZWFwUHJvZmlsZXIuYWRkSGVh
cFNuYXBzaG90Q2h1bmsiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCiAgICAgewogICAgICAg
ICBjaHVua3MucHVzaChtZXNzYWdlT2JqZWN0WyJwYXJhbXMiXVsiY2h1bmsiXSk7CiAgICAgfQog
Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlByb2ZpbGVyLmZpbmlzaEhlYXBTbmFw
c2hvdCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50
SGFuZGxlclsiSGVhcFByb2ZpbGVyLmZpbmlzaEhlYXBTbmFwc2hvdCJdID0gZnVuY3Rpb24obWVz
c2FnZU9iamVjdCkKICAgICB7CiAgICAgICAgIHZhciBzZXJpYWxpemVkU25hcHNob3QgPSBjaHVu
a3Muam9pbigiIik7CiAgICAgICAgIHZhciBwYXJzZWQgPSBKU09OLnBhcnNlKHNlcmlhbGl6ZWRT
bmFwc2hvdCk7CkBAIC0zNSw1ICszNSw1IEBAIEluc3BlY3RvclRlc3QudGFrZUhlYXBTbmFwc2hv
dCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgICAgICBjYWxsYmFjayhzbmFwc2hvdCk7CiAgICAg
fQogCi0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUHJvZmlsZXIudGFrZUhlYXBTbmFw
c2hvdCIsIHt9KTsKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJIZWFwUHJvZmlsZXIu
dGFrZUhlYXBTbmFwc2hvdCIsIHt9KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8tbGVhay10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWxlYWstdGVzdC5odG1sCmluZGV4IDI5ZGM5
Mzc5NzNhNzU1ZWM2OGQ3ZWMwNzMzN2VkYWE4MmJmMmY4MjkuLmIzZmMyMThmZWFjODNiNzc5MTYw
MGIyMzNmZTZkODg4OTcwMmUyZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9ubWktd2ViYXVkaW8tbGVhay10ZXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby1sZWFrLXRlc3QuaHRtbApAQCAtNjAsNyArNjAs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIGlGcmFtZU5hdmlnYXRlZChtZXNz
YWdlT2JqZWN0KSB7CiAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBJRnJhbWUgd2Fz
IG5hdmlnYXRlZCB0byByZXNvdXJjZXMvYmxhbmsuaHRtbCIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCdQcm9maWxlci5jb2xsZWN0R2FyYmFnZScsIHt9LCBmdW5jdGlvbigp
IHsgfSApOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCdIZWFwUHJvZmlsZXIu
Y29sbGVjdEdhcmJhZ2UnLCB7fSwgZnVuY3Rpb24oKSB7IH0gKTsKICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkFjdGlvbjogUnVuIEdDIGFuZCBjaGVjayBQYWdlLkF1ZGlvIGRhdGEgc2l6ZSIp
OwogICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCdNZW1vcnkuZ2V0UHJvY2Vzc01l
bW9yeURpc3RyaWJ1dGlvbicsIHt9LCBub0F1ZGlvU2hhcmVkRGF0YSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZ2V0LXBy
b2ZpbGUtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNu
YXBzaG90LWdldC1wcm9maWxlLWNyYXNoLmh0bWwKaW5kZXggODU2MWJjYjgxMWYzMTAzYTNjNTdh
NjUxYzJiNmNjZTI4MWEwNTE4MC4uNTQ0Y2IxMjIxODhmMzNkMTQ3NTE0ODQ5MmZkYzVkZGZlYzlm
M2RjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25h
cHNob3QtZ2V0LXByb2ZpbGUtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1nZXQtcHJvZmlsZS1jcmFzaC5odG1sCkBAIC0xNCw3ICsx
NCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9y
U3RyaW5nKTsKICAgICAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBQcm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hvdCgtMSwgZmluaXNoKTsKKyAgICAgICAg
ICAgIEhlYXBQcm9maWxlckFnZW50LmdldEhlYXBTbmFwc2hvdCgtMSwgZmluaXNoKTsKICAgICAg
ICAgfQogICAgIF0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1kb20td3JhcHBlci5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVjdC1kb20td3JhcHBlci5odG1s
CmluZGV4IDM4MjA3ZmI5NTYyMDcyZTUzYzU3N2RmYTg2NWFhMDAxYjljNzE4MWIuLjAzNWZjNGNl
N2I0OTU3OTkzMTk0MzMwMDI1MzhiMzRmZTc1OTMxODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1pbnNw
ZWN0LWRvbS13cmFwcGVyLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAgZnVuY3Rpb24gaGFuZGxlTG9h
ZCgpCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJwcm9m
aWxlcyIpOwotICAgIFByb2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFwc2hvdChzdGVwMCk7CisgICAg
SGVhcFByb2ZpbGVyQWdlbnQudGFrZUhlYXBTbmFwc2hvdChzdGVwMCk7CiAKICAgICBmdW5jdGlv
biBzdGVwMCgpCiAgICAgewpAQCAtNDIsNyArNDIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAg
ICAgICAgICAgICBib2R5V3JhcHBlcklkcy5wdXNoKGl0Lm5vZGUuaWQpOwogICAgICAgICB9CiAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm9keVdyYXBwZXJJZHMubGVuZ3RoOyBpKyspCi0g
ICAgICAgICAgICBQcm9maWxlckFnZW50LmdldE9iamVjdEJ5SGVhcE9iamVjdElkKGJvZHlXcmFw
cGVySWRzW2ldLCB1bmRlZmluZWQsIGRpZEdldE9iamVjdEJ5SGVhcE9iamVjdElkKTsKKyAgICAg
ICAgICAgIEhlYXBQcm9maWxlckFnZW50LmdldE9iamVjdEJ5SGVhcE9iamVjdElkKGJvZHlXcmFw
cGVySWRzW2ldLCB1bmRlZmluZWQsIGRpZEdldE9iamVjdEJ5SGVhcE9iamVjdElkKTsKIAogICAg
ICAgICB2YXIgcmVzb2x2ZWRPYmplY3RzQ291bnQgPSAwOwogICAgICAgICB2YXIgcmVtb3RlT2Jq
ZWN0cyA9IFtdOwpAQCAtNjksNyArNjksNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAg
IGlmICgrK2RpZEdldE93blByb3BlcnRpZXNDb3VudCAhPT0gcmVtb3RlT2JqZWN0cy5sZW5ndGgp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBQcm9maWxlckFnZW50LmNs
ZWFyUHJvZmlsZXMoZG9uZSk7CisgICAgICAgICAgICBIZWFwUHJvZmlsZXJBZ2VudC5jbGVhclBy
b2ZpbGVzKGRvbmUpOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5f
cmVzZXQoKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWwKaW5kZXggOTQwYjY0YmQy
NjgwZjMyYmU1ZTMzOWViYWMyM2JjMDUyNDllNzRlYy4uY2Q4NjViZTA3YTY5ZjdhOTc5MTYwYWRj
YThlZTI5ODJjYmFmZGIwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgdmFyIHBhcnRTaXplID0gc291cmNlU3RyaW5naWZpZWQubGVuZ3Ro
ID4+IDM7CiAKICAgICBmdW5jdGlvbiBpbmplY3RNb2NrUHJvZmlsZShvdmVycmlkZUdldFByb2Zp
bGUsIGNhbGxiYWNrKSB7Ci0gICAgICAgIHZhciBkaXNwYXRjaGVyID0gSW5zcGVjdG9yQmFja2Vu
ZC5fZG9tYWluRGlzcGF0Y2hlcnNbIlByb2ZpbGVyIl07CisgICAgICAgIHZhciBkaXNwYXRjaGVy
ID0gSW5zcGVjdG9yQmFja2VuZC5fZG9tYWluRGlzcGF0Y2hlcnNbIkhlYXBQcm9maWxlciJdOwog
ICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzOwogICAgICAg
ICBwYW5lbC5fcmVzZXQoKTsKIApAQCAtMzksMTIgKzM5LDEyIEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICBmdW5jdGlvbiBzbmFwc2hvdExvYWRlZCgpCiAgICAgICAgIHsKICAgICAgICAgICAg
IGlmIChvdmVycmlkZUdldFByb2ZpbGUpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5v
dmVycmlkZShQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90IiwgZ2V0SGVhcFNuYXBzaG90
TW9jayk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5vdmVycmlkZShIZWFwUHJvZmls
ZXJBZ2VudCwgImdldEhlYXBTbmFwc2hvdCIsIGdldEhlYXBTbmFwc2hvdE1vY2spOwogICAgICAg
ICAgICAgY2FsbGJhY2socHJvZmlsZUhlYWRlcik7CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRTbmlmZmVyKHByb2ZpbGVIZWFkZXIsICJfc25hcHNob3RSZWNlaXZlZCIsIHNu
YXBzaG90TG9hZGVkKTsKIAotICAgICAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKFByb2ZpbGVy
QWdlbnQsICJnZXRIZWFwU25hcHNob3QiLCBnZXRIZWFwU25hcHNob3RNb2NrKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5vdmVycmlkZShIZWFwUHJvZmlsZXJBZ2VudCwgImdldEhlYXBTbmFwc2hv
dCIsIGdldEhlYXBTbmFwc2hvdE1vY2spOwogICAgICAgICBwYW5lbC5zaG93UHJvZmlsZShwcm9m
aWxlSGVhZGVyKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzCmluZGV4IDE1NTU0ZDJjYzJiYmE4NjA1YTYyYWEw
NGE3YmYyMTJkMzAzN2I4MDIuLmNiZDY2NjNjNDc1ODZhZGVhYjI5MTVmZmUwMTY4YWEzYmI3NWZj
MTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25h
cHNob3QtdGVzdC5qcwpAQCAtMTcyLDcgKzE3Miw3IEBAIEluc3BlY3RvclRlc3Quc3RhcnRQcm9m
aWxlclRlc3QgPSBmdW5jdGlvbihjYWxsYmFjaykKICAgICBmdW5jdGlvbiBwcm9maWxlckVuYWJs
ZWQoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlByb2ZpbGVyIHdh
cyBlbmFibGVkLiIpOwotICAgICAgICAvLyBXZSBtb2NrIG91dCBQcm9maWxlckFnZW50IC0tIGFz
IERSVCBydW5zIGluIHNpbmdsZS1wcm9jZXNzIG1vZGUsIEluc3BlY3RvcgorICAgICAgICAvLyBX
ZSBtb2NrIG91dCBIZWFwUHJvZmlsZXJBZ2VudCAtLSBhcyBEUlQgcnVucyBpbiBzaW5nbGUtcHJv
Y2VzcyBtb2RlLCBJbnNwZWN0b3IKICAgICAgICAgLy8gYW5kIHRlc3Qgc2hhcmUgdGhlIHNhbWUg
aGVhcC4gVGFraW5nIGEgc25hcHNob3QgdGFrZXMgdG9vIGxvbmcgZm9yIGEgdGVzdCwKICAgICAg
ICAgLy8gc28gd2UgcHJvdmlkZSBzeW50aGV0aWMgc25hcHNob3RzLgogICAgICAgICBJbnNwZWN0
b3JUZXN0Ll9wYW5lbFJlc2V0ID0gSW5zcGVjdG9yVGVzdC5vdmVycmlkZShXZWJJbnNwZWN0b3Iu
cGFuZWxzLnByb2ZpbGVzLCAiX3Jlc2V0IiwgZnVuY3Rpb24oKXt9LCB0cnVlKTsKQEAgLTczNSw3
ICs3MzUsNyBAQCBJbnNwZWN0b3JUZXN0LnRha2VBbmRPcGVuU25hcHNob3QgPSBmdW5jdGlvbihn
ZW5lcmF0b3IsIGNhbGxiYWNrKQogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVz
Ll9hZGRIZWFwU25hcHNob3RDaHVuayh1aWQsIEpTT04uc3RyaW5naWZ5KHNuYXBzaG90KSk7CiAg
ICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuX2ZpbmlzaEhlYXBTbmFwc2hvdCh1
aWQpOwogICAgIH0KLSAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKFByb2ZpbGVyQWdlbnQsICJn
ZXRIZWFwU25hcHNob3QiLCBwdXNoR2VuZXJhdGVkU25hcHNob3QpOworICAgIEluc3BlY3RvclRl
c3Qub3ZlcnJpZGUoSGVhcFByb2ZpbGVyQWdlbnQsICJnZXRIZWFwU25hcHNob3QiLCBwdXNoR2Vu
ZXJhdGVkU25hcHNob3QpOwogICAgIEluc3BlY3RvclRlc3QuX3Rha2VBbmRPcGVuU25hcHNob3RD
YWxsYmFjayA9IGNhbGxiYWNrOwogICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuYWRk
UHJvZmlsZUhlYWRlcihwcm9maWxlKTsKICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVz
LnNob3dQcm9maWxlKHByb2ZpbGUpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFu
Z2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCAxOTQwMzRkMTEwODdkNTky
MjE3N2IxMDM4YjYyNjFmY2VmY2Q0ZGE0Li4yMzI3NmY0MTJiNjFmNzJkZjE0YTczMzUxN2QyMzgz
MzQ2MWI3YzU4IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTExICBB
bGV4ZWkgRmlsaXBwb3YgIDxhbHBoQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBTcGxpdCBQcm9maWxlciBkb21haW4gaW4gcHJvdG9jb2wgaW50byBQcm9maWxlciBhbmQg
SGVhcFByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDg2NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDdXJyZW50bHkgQ1BVIGFuZCBoZWFwIHByb2ZpbGVycyBzaGFyZSB0aGUgc2FtZSBkb21h
aW4gJ1Byb2ZpbGVyJyBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIEluIGZhY3QgdGhlc2UgdHdv
IHByb2ZpbGUgdHlwZXMgaGF2ZSBub3QgdG9vIG11Y2ggaW4gY29tbW9uLiBTbyBwdXQgZWFjaCBp
bnRvIGl0cyBvd24gZG9tYWluLgorICAgICAgICBJdCBzaG91bGQgYWxzbyBoZWxwIHdoZW4gUHJv
ZmlsZXMgcGFuZWwgZ2V0cyBzcGxpdCBpbnRvIHNldmVyYWwgdG9vbHMuCisgICAgICAgIFRoaXMg
aXMgdGhlIHBoYXNlIDEgd2hpY2ggYWRkcyBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudCBidXQg
ZG9lc24ndAorICAgICAgICBjaGFuZ2UgdGhlIG9yaWdpbmFsIEluc3BlY3RvclByb2ZpbGVyQWdl
bnQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvaGVhcC1zbmFwc2hvdC1wZXJmb3JtYW5jZS10ZXN0
LmpzOgorICAgICAgICAodGVzdC5wZXJmb3JtYW5jZVRlc3QuY2xlYW51cCk6CisKIDIwMTMtMDIt
MDUgIERvbWluaWsgUsO2dHRzY2hlcyAgPGRvbWluaWsucm90dHNjaGVzQGludGVsLmNvbT4KIAog
ICAgICAgICBBZGQgYSBwZXJmb3JtYW5jZSB0ZXN0IGZvciBhcmFiaWMgbGluZSBicmVha2luZwpk
aWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9pbnNwZWN0b3IvaGVhcC1zbmFwc2hvdC1wZXJm
b3JtYW5jZS10ZXN0LmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9pbnNwZWN0b3IvaGVhcC1zbmFwc2hv
dC1wZXJmb3JtYW5jZS10ZXN0LmpzCmluZGV4IDljMzk1ODI2MTg1YzJmNGIxZTk5NzA5MzQ5ZDBj
YWM5MTFlNzc1ZWUuLmFkOTQ3YjgxYzVmMDBiY2NmZjc3OTJjOGY5ZTA4NzFkMDNmMjRmMTkgMTAw
NjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvaW5zcGVjdG9yL2hlYXAtc25hcHNob3QtcGVyZm9y
bWFuY2UtdGVzdC5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL2luc3BlY3Rvci9oZWFwLXNuYXBz
aG90LXBlcmZvcm1hbmNlLXRlc3QuanMKQEAgLTI3LDcgKzI3LDcgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgIHZhciB0ZXN0TmFtZSA9IC8oW15cL10rKVwuaHRtbCQvLmV4ZWMoV2ViSW5zcGVj
dG9yLmluc3BlY3RlZFBhZ2VVUkwpWzFdOwogICAgICAgICB2YXIgZnVsbFRpbWVyQ29va2llID0g
dGltZXIuc3RhcnQoImZ1bGwtc3VtbWFyeS1zbmFwc2hvdC10aW1lIik7CiAgICAgICAgIHZhciBi
YWNrZW5kVGltZXJDb29raWUgPSB0aW1lci5zdGFydCgidGFrZS1zbmFwc2hvdCIpOwotICAgICAg
ICBQcm9maWxlckFnZW50LnRha2VIZWFwU25hcHNob3Qoc3RlcDApOworICAgICAgICBIZWFwUHJv
ZmlsZXJBZ2VudC50YWtlSGVhcFNuYXBzaG90KHN0ZXAwKTsKIAogICAgICAgICBmdW5jdGlvbiBz
dGVwMCgpCiAgICAgICAgIHsKQEAgLTU5LDcgKzU5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
ICAgICAgICB0aW1lci5maW5pc2goY2hhbmdlVmlld1RpbWVyQ29va2llKTsKICAgICAgICAgICAg
IHRpbWVyLmZpbmlzaChmdWxsVGltZXJDb29raWUpOwogICAgICAgICAgICAgY2xlYXJUaW1lckNv
b2tpZSA9IHRpbWVyLnN0YXJ0KCJjbGVhci1zbmFwc2hvdCIpOwotICAgICAgICAgICAgUHJvZmls
ZXJBZ2VudC5jbGVhclByb2ZpbGVzKGRvbmUpOworICAgICAgICAgICAgSGVhcFByb2ZpbGVyQWdl
bnQuY2xlYXJQcm9maWxlcyhkb25lKTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMu
cHJvZmlsZXMuX3Jlc2V0KCk7CiAgICAgICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>